flujo-ai 3.30.0 → 3.33.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 (700) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +359 -317
  3. package/.next/app-path-routes-manifest.json +15 -11
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +21 -21
  6. package/.next/react-loadable-manifest.json +28 -13
  7. package/.next/server/app/_not-found/page.js +1 -1
  8. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/_not-found.html +1 -1
  10. package/.next/server/app/_not-found.rsc +2 -2
  11. package/.next/server/app/api/approvals/[id]/route.js +1 -1
  12. package/.next/server/app/api/approvals/[id]/route.js.nft.json +1 -1
  13. package/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/approvals/route.js +2 -2
  15. package/.next/server/app/api/approvals/route.js.nft.json +1 -1
  16. package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/backup/route.js +1 -1
  18. package/.next/server/app/api/backup/route.js.nft.json +1 -1
  19. package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/browse/route.js +1 -1
  21. package/.next/server/app/api/browse/route.js.nft.json +1 -1
  22. package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/bugs/enhance/route.js +3 -3
  24. package/.next/server/app/api/bugs/enhance/route.js.nft.json +1 -1
  25. package/.next/server/app/api/bugs/enhance/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/cwd/route.js +1 -1
  27. package/.next/server/app/api/cwd/route.js.nft.json +1 -1
  28. package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/encryption/secure/route.js +1 -1
  30. package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
  31. package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/env/route.js +2 -2
  33. package/.next/server/app/api/env/route.js.nft.json +1 -1
  34. package/.next/server/app/api/env/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/flow/[id]/route.js +1 -1
  36. package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
  37. package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js +1 -1
  39. package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js.nft.json +1 -1
  40. package/.next/server/app/api/flow/[id]/versions/[versionId]/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/flow/[id]/versions/route.js +1 -1
  42. package/.next/server/app/api/flow/[id]/versions/route.js.nft.json +1 -1
  43. package/.next/server/app/api/flow/[id]/versions/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/flow/compile/route.js +1 -1
  45. package/.next/server/app/api/flow/compile/route.js.nft.json +1 -1
  46. package/.next/server/app/api/flow/compile/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/flow/generate/route.js +1 -1
  48. package/.next/server/app/api/flow/generate/route.js.nft.json +1 -1
  49. package/.next/server/app/api/flow/generate/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/flow/generator/route.js +7 -0
  51. package/.next/server/app/api/flow/generator/route.js.nft.json +1 -0
  52. package/.next/server/app/api/flow/generator/route_client-reference-manifest.js +1 -0
  53. package/.next/server/app/api/flow/improve/route.js +1 -1
  54. package/.next/server/app/api/flow/improve/route.js.nft.json +1 -1
  55. package/.next/server/app/api/flow/improve/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/flow/prompt-renderer/route.js +2 -2
  57. package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
  58. package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/flow/quick-chat/route.js +1 -1
  60. package/.next/server/app/api/flow/quick-chat/route.js.nft.json +1 -1
  61. package/.next/server/app/api/flow/quick-chat/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/flow/repair/route.js +1 -1
  63. package/.next/server/app/api/flow/repair/route.js.nft.json +1 -1
  64. package/.next/server/app/api/flow/repair/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/flow/route.js +1 -1
  66. package/.next/server/app/api/flow/route.js.nft.json +1 -1
  67. package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/git/route.js +1 -1
  69. package/.next/server/app/api/git/route.js.nft.json +1 -1
  70. package/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/init/route.js +1 -1
  72. package/.next/server/app/api/init/route.js.nft.json +1 -1
  73. package/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/local-models/capability/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/local-models/pull/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/local-models/suggest/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/mcp/app-sandbox/route.js +1 -1
  78. package/.next/server/app/api/mcp/app-sandbox/route.js.nft.json +1 -1
  79. package/.next/server/app/api/mcp/app-sandbox/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/mcp/cancel/route.js +2 -2
  81. package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
  82. package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/mcp/oauth-capability/route.js +1 -1
  84. package/.next/server/app/api/mcp/oauth-capability/route.js.nft.json +1 -1
  85. package/.next/server/app/api/mcp/oauth-capability/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -1
  87. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
  88. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -1
  90. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
  91. package/.next/server/app/api/mcp/servers/[name]/prompts/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -1
  93. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
  94. package/.next/server/app/api/mcp/servers/[name]/resources/read/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -1
  96. package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
  97. package/.next/server/app/api/mcp/servers/[name]/resources/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
  99. package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
  100. package/.next/server/app/api/mcp/servers/[name]/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -1
  102. package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
  103. package/.next/server/app/api/mcp/servers/[name]/status/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -1
  105. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
  106. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -1
  108. package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
  109. package/.next/server/app/api/mcp/servers/[name]/tools/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/mcp/servers/route.js +1 -1
  111. package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
  112. package/.next/server/app/api/mcp/servers/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/mcp/test-connection/route.js +1 -1
  114. package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
  115. package/.next/server/app/api/mcp/test-connection/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
  117. package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
  118. package/.next/server/app/api/mcp/test-connection/stream/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/mcp-registry/route.js +2 -2
  120. package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
  121. package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/mcp-registry/spotlight/route.js +1 -1
  123. package/.next/server/app/api/mcp-registry/spotlight/route.js.nft.json +1 -1
  124. package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/model/[id]/route.js +1 -1
  126. package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
  127. package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/model/provider/route.js +2 -2
  129. package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
  130. package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/model/route.js +1 -1
  132. package/.next/server/app/api/model/route.js.nft.json +1 -1
  133. package/.next/server/app/api/model/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/model/test/route.js +2 -2
  135. package/.next/server/app/api/model/test/route.js.nft.json +1 -1
  136. package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/oauth/callback/route.js +2 -2
  138. package/.next/server/app/api/oauth/callback/route.js.nft.json +1 -1
  139. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/oauth/initiate/route.js +2 -2
  141. package/.next/server/app/api/oauth/initiate/route.js.nft.json +1 -1
  142. package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/oauth/reset/route.js +2 -2
  144. package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
  145. package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -1
  146. package/.next/server/app/api/packages/build/route.js +1 -1
  147. package/.next/server/app/api/packages/build/route.js.nft.json +1 -1
  148. package/.next/server/app/api/packages/build/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/packages/derive-secrets/route.js +1 -1
  150. package/.next/server/app/api/packages/derive-secrets/route.js.nft.json +1 -1
  151. package/.next/server/app/api/packages/derive-secrets/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/packages/install/route.js +1 -1
  153. package/.next/server/app/api/packages/install/route.js.nft.json +1 -1
  154. package/.next/server/app/api/packages/install/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/api/packages/install/status/route.js +1 -1
  156. package/.next/server/app/api/packages/install/status/route.js.nft.json +1 -1
  157. package/.next/server/app/api/packages/install/status/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/packages/installed/route.js +1 -1
  159. package/.next/server/app/api/packages/installed/route.js.nft.json +1 -1
  160. package/.next/server/app/api/packages/installed/route_client-reference-manifest.js +1 -1
  161. package/.next/server/app/api/packages/resolve/route.js +1 -1
  162. package/.next/server/app/api/packages/resolve/route.js.nft.json +1 -1
  163. package/.next/server/app/api/packages/resolve/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/packages/scan-targets/route.js +1 -1
  165. package/.next/server/app/api/packages/scan-targets/route.js.nft.json +1 -1
  166. package/.next/server/app/api/packages/scan-targets/route_client-reference-manifest.js +1 -1
  167. package/.next/server/app/api/packages/search/route.js +1 -1
  168. package/.next/server/app/api/packages/search/route.js.nft.json +1 -1
  169. package/.next/server/app/api/packages/search/route_client-reference-manifest.js +1 -1
  170. package/.next/server/app/api/packages/uninstall/route.js +1 -1
  171. package/.next/server/app/api/packages/uninstall/route.js.nft.json +1 -1
  172. package/.next/server/app/api/packages/uninstall/route_client-reference-manifest.js +1 -1
  173. package/.next/server/app/api/planned-executions/[id]/route.js +2 -2
  174. package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
  175. package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -1
  176. package/.next/server/app/api/planned-executions/[id]/run/route.js +2 -2
  177. package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
  178. package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
  179. package/.next/server/app/api/planned-executions/[id]/runs/route.js +2 -2
  180. package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
  181. package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -1
  182. package/.next/server/app/api/planned-executions/preview-schedule/route.js +1 -1
  183. package/.next/server/app/api/planned-executions/preview-schedule/route.js.nft.json +1 -1
  184. package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -1
  185. package/.next/server/app/api/planned-executions/reconcile/route.js +1 -1
  186. package/.next/server/app/api/planned-executions/reconcile/route.js.nft.json +1 -1
  187. package/.next/server/app/api/planned-executions/reconcile/route_client-reference-manifest.js +1 -1
  188. package/.next/server/app/api/planned-executions/route.js +1 -1
  189. package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
  190. package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
  191. package/.next/server/app/api/registry/auth/resend/route.js +1 -1
  192. package/.next/server/app/api/registry/auth/resend/route.js.nft.json +1 -1
  193. package/.next/server/app/api/registry/auth/resend/route_client-reference-manifest.js +1 -1
  194. package/.next/server/app/api/registry/auth/reset/route.js +1 -1
  195. package/.next/server/app/api/registry/auth/reset/route.js.nft.json +1 -1
  196. package/.next/server/app/api/registry/auth/reset/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/api/registry/auth/route.js +1 -1
  198. package/.next/server/app/api/registry/auth/route.js.nft.json +1 -1
  199. package/.next/server/app/api/registry/auth/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/api/registry/feedback/route.js +1 -0
  201. package/.next/server/app/api/registry/feedback/route.js.nft.json +1 -0
  202. package/.next/server/app/api/registry/feedback/route_client-reference-manifest.js +1 -0
  203. package/.next/server/app/api/registry/oauth/callback/route.js +1 -1
  204. package/.next/server/app/api/registry/oauth/callback/route.js.nft.json +1 -1
  205. package/.next/server/app/api/registry/oauth/callback/route_client-reference-manifest.js +1 -1
  206. package/.next/server/app/api/registry/oauth/initiate/route.js +1 -1
  207. package/.next/server/app/api/registry/oauth/initiate/route.js.nft.json +1 -1
  208. package/.next/server/app/api/registry/oauth/initiate/route_client-reference-manifest.js +1 -1
  209. package/.next/server/app/api/registry/packages/route.js +1 -0
  210. package/.next/server/app/api/registry/packages/route.js.nft.json +1 -0
  211. package/.next/server/app/api/registry/packages/route_client-reference-manifest.js +1 -0
  212. package/.next/server/app/api/registry/publish/route.js +1 -1
  213. package/.next/server/app/api/registry/publish/route.js.nft.json +1 -1
  214. package/.next/server/app/api/registry/publish/route_client-reference-manifest.js +1 -1
  215. package/.next/server/app/api/registry/settings/route.js +1 -1
  216. package/.next/server/app/api/registry/settings/route.js.nft.json +1 -1
  217. package/.next/server/app/api/registry/settings/route_client-reference-manifest.js +1 -1
  218. package/.next/server/app/api/restore/route.js +1 -1
  219. package/.next/server/app/api/restore/route.js.nft.json +1 -1
  220. package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
  221. package/.next/server/app/api/runs/active/route.js +2 -2
  222. package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
  223. package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -1
  224. package/.next/server/app/api/storage/route.js +1 -1
  225. package/.next/server/app/api/storage/route.js.nft.json +1 -1
  226. package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
  227. package/.next/server/app/api/telemetry/daily-active/route.js +1 -0
  228. package/.next/server/app/api/telemetry/daily-active/route.js.nft.json +1 -0
  229. package/.next/server/app/api/telemetry/daily-active/route_client-reference-manifest.js +1 -0
  230. package/.next/server/app/api/update/route.js +1 -1
  231. package/.next/server/app/api/update/route.js.nft.json +1 -1
  232. package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  233. package/.next/server/app/api/waves/route.js +1 -1
  234. package/.next/server/app/api/waves/route.js.nft.json +1 -1
  235. package/.next/server/app/api/waves/route_client-reference-manifest.js +1 -1
  236. package/.next/server/app/api/webhooks/[id]/route.js +1 -1
  237. package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
  238. package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
  239. package/.next/server/app/chat/page.js +58 -10
  240. package/.next/server/app/chat/page.js.nft.json +1 -1
  241. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  242. package/.next/server/app/chat.html +1 -1
  243. package/.next/server/app/chat.rsc +3 -3
  244. package/.next/server/app/docs/page.js +4 -5
  245. package/.next/server/app/docs/page.js.nft.json +1 -1
  246. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  247. package/.next/server/app/docs.html +1 -1
  248. package/.next/server/app/docs.rsc +3 -3
  249. package/.next/server/app/executions/page.js +3 -2
  250. package/.next/server/app/executions/page.js.nft.json +1 -1
  251. package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
  252. package/.next/server/app/executions.html +1 -1
  253. package/.next/server/app/executions.rsc +3 -3
  254. package/.next/server/app/flows/page.js +3 -3
  255. package/.next/server/app/flows/page.js.nft.json +1 -1
  256. package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
  257. package/.next/server/app/flows.html +1 -1
  258. package/.next/server/app/flows.rsc +3 -3
  259. package/.next/server/app/index.html +1 -1
  260. package/.next/server/app/index.rsc +3 -3
  261. package/.next/server/app/mcp/page.js +56 -5
  262. package/.next/server/app/mcp/page.js.nft.json +1 -1
  263. package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
  264. package/.next/server/app/mcp-flows/route.js +1 -1
  265. package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
  266. package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -1
  267. package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
  268. package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
  269. package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -1
  270. package/.next/server/app/mcp.html +1 -1
  271. package/.next/server/app/mcp.rsc +3 -3
  272. package/.next/server/app/models/page.js +2 -2
  273. package/.next/server/app/models/page.js.nft.json +1 -1
  274. package/.next/server/app/models/page_client-reference-manifest.js +1 -1
  275. package/.next/server/app/packages/page.js +2 -2
  276. package/.next/server/app/packages/page.js.nft.json +1 -1
  277. package/.next/server/app/packages/page_client-reference-manifest.js +1 -1
  278. package/.next/server/app/packages.html +1 -1
  279. package/.next/server/app/packages.rsc +3 -3
  280. package/.next/server/app/page.js +3 -3
  281. package/.next/server/app/page.js.nft.json +1 -1
  282. package/.next/server/app/page_client-reference-manifest.js +1 -1
  283. package/.next/server/app/settings/page.js +2 -2
  284. package/.next/server/app/settings/page.js.nft.json +1 -1
  285. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  286. package/.next/server/app/settings.html +1 -1
  287. package/.next/server/app/settings.rsc +3 -3
  288. package/.next/server/app/v1/chat/completions/route.js +1 -1
  289. package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
  290. package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -1
  291. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +2 -2
  292. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
  293. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
  294. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +2 -2
  295. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
  296. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -1
  297. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
  298. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
  299. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -1
  300. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
  301. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
  302. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -1
  303. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +2 -2
  304. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
  305. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
  306. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +2 -2
  307. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
  308. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
  309. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js +2 -2
  310. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js.nft.json +1 -1
  311. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route_client-reference-manifest.js +1 -1
  312. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js +1 -1
  313. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js.nft.json +1 -1
  314. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route_client-reference-manifest.js +1 -1
  315. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
  316. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
  317. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
  318. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +2 -2
  319. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
  320. package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  321. package/.next/server/app/v1/chat/conversations/route.js +2 -2
  322. package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
  323. package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
  324. package/.next/server/app/v1/chat/events/route.js +3 -3
  325. package/.next/server/app/v1/chat/events/route.js.nft.json +1 -1
  326. package/.next/server/app/v1/chat/events/route_client-reference-manifest.js +1 -1
  327. package/.next/server/app/v1/models/route.js +2 -2
  328. package/.next/server/app/v1/models/route.js.nft.json +1 -1
  329. package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -1
  330. package/.next/server/app/waves/page.js +3 -3
  331. package/.next/server/app/waves/page.js.nft.json +1 -1
  332. package/.next/server/app/waves/page_client-reference-manifest.js +1 -1
  333. package/.next/server/app/waves.html +1 -1
  334. package/.next/server/app/waves.rsc +3 -3
  335. package/.next/server/app-paths-manifest.json +15 -11
  336. package/.next/server/chunks/1114.js +1 -1
  337. package/.next/server/chunks/1226.js +1 -1
  338. package/.next/server/chunks/1227.js +1 -0
  339. package/.next/server/chunks/1314.js +1 -1
  340. package/.next/server/chunks/1439.js +1 -0
  341. package/.next/server/chunks/1578.js +1 -1
  342. package/.next/server/chunks/1634.js +1 -1
  343. package/.next/server/chunks/166.js +5 -5
  344. package/.next/server/chunks/1664.js +2 -0
  345. package/.next/server/chunks/180.js +12 -0
  346. package/.next/server/chunks/227.js +1 -5
  347. package/.next/server/chunks/2273.js +2 -2
  348. package/.next/server/chunks/2372.js +2 -0
  349. package/.next/server/chunks/2859.js +1 -1
  350. package/.next/server/chunks/2985.js +1 -0
  351. package/.next/server/chunks/3128.js +4 -4
  352. package/.next/server/chunks/3653.js +2 -0
  353. package/.next/server/chunks/3855.js +1 -0
  354. package/.next/server/chunks/4013.js +1 -0
  355. package/.next/server/chunks/4308.js +4 -0
  356. package/.next/server/chunks/{4685.js → 4466.js} +1 -1
  357. package/.next/server/chunks/4551.js +1 -1
  358. package/.next/server/chunks/4663.js +1 -0
  359. package/.next/server/chunks/4822.js +1 -0
  360. package/.next/server/chunks/5040.js +4 -9
  361. package/.next/server/chunks/5067.js +1 -1
  362. package/.next/server/chunks/544.js +38 -37
  363. package/.next/server/chunks/5463.js +1 -1
  364. package/.next/server/chunks/5544.js +5 -5
  365. package/.next/server/chunks/5703.js +2 -0
  366. package/.next/server/chunks/5708.js +2 -3
  367. package/.next/server/chunks/6034.js +1 -1
  368. package/.next/server/chunks/6226.js +1 -1
  369. package/.next/server/chunks/{3570.js → 6747.js} +287 -253
  370. package/.next/server/chunks/6967.js +82 -0
  371. package/.next/server/chunks/701.js +1 -1
  372. package/.next/server/chunks/{5548.js → 7058.js} +2 -2
  373. package/.next/server/chunks/{4566.js → 7069.js} +3 -3
  374. package/.next/server/chunks/{2388.js → 7104.js} +1 -1
  375. package/.next/server/chunks/7506.js +1 -1
  376. package/.next/server/chunks/7519.js +1 -0
  377. package/.next/server/chunks/7628.js +1 -0
  378. package/.next/server/chunks/{3030.js → 7674.js} +1 -1
  379. package/.next/server/chunks/7821.js +1 -1
  380. package/.next/server/chunks/{2866.js → 7891.js} +2 -2
  381. package/.next/server/chunks/793.js +3 -3
  382. package/.next/server/chunks/7965.js +39 -0
  383. package/.next/server/chunks/{6404.js → 7993.js} +2 -2
  384. package/.next/server/chunks/8187.js +78 -0
  385. package/.next/server/chunks/8387.js +1 -1
  386. package/.next/server/chunks/87.js +1 -0
  387. package/.next/server/chunks/8739.js +1 -2
  388. package/.next/server/chunks/{3912.js → 9085.js} +2 -2
  389. package/.next/server/chunks/9235.js +8 -0
  390. package/.next/server/chunks/94.js +1 -1
  391. package/.next/server/chunks/9724.js +3 -3
  392. package/.next/server/chunks/9983.js +1 -1
  393. package/.next/server/functions-config-manifest.json +3 -3
  394. package/.next/server/instrumentation.js +1 -1
  395. package/.next/server/instrumentation.js.nft.json +1 -1
  396. package/.next/server/middleware-build-manifest.js +1 -1
  397. package/.next/server/middleware-manifest.json +5 -5
  398. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  399. package/.next/server/pages/404.html +1 -1
  400. package/.next/server/pages/500.html +1 -1
  401. package/.next/server/server-reference-manifest.js +1 -1
  402. package/.next/server/server-reference-manifest.json +1 -1
  403. package/.next/static/chunks/1675-773454288de4309d.js +1 -0
  404. package/.next/static/chunks/{3189-fa8ec6d719d5e72b.js → 2005-f9d38c39f10c321f.js} +1 -1
  405. package/.next/static/chunks/2318-13ef0d3048e97834.js +1 -0
  406. package/.next/static/chunks/289-98f50bfcf833d661.js +1 -0
  407. package/.next/static/chunks/3089.df88f3b16898aad7.js +1 -0
  408. package/.next/static/chunks/361.bb75b03b740930cd.js +1 -0
  409. package/.next/static/chunks/3772-20197853c04a6993.js +1 -0
  410. package/.next/static/chunks/422-61b173ba64cf0c94.js +1 -0
  411. package/.next/static/chunks/4555-c9070f8c79bccfad.js +39 -0
  412. package/.next/static/chunks/4929-150b03595474c9d8.js +1 -0
  413. package/.next/static/chunks/5733-1419095a28c1ddc3.js +1 -0
  414. package/.next/static/chunks/639-90ed75d402dc872b.js +1 -0
  415. package/.next/static/chunks/{3452-a639f121f2953f50.js → 6428-951188daa6f74b86.js} +3 -3
  416. package/.next/static/chunks/6430-8c6dac4a758119f2.js +1 -0
  417. package/.next/static/chunks/6539-118a0084e0bfae34.js +1 -0
  418. package/.next/static/chunks/6733-c9029143901e62e9.js +1 -0
  419. package/.next/static/chunks/7264-91d1fa99abcd91ad.js +1 -0
  420. package/.next/static/chunks/7328-c8a51bb8c7470d77.js +1 -0
  421. package/.next/static/chunks/7391-5a0abd837ba241f5.js +1 -0
  422. package/.next/static/chunks/8124-4a80e3201b8e51b0.js +1 -0
  423. package/.next/static/chunks/{2969.eb9ff8cd2a5034b0.js → 8345.bc5534ec13abc9ee.js} +1 -1
  424. package/.next/static/chunks/8404-bfa9203e4296f3fb.js +1 -0
  425. package/.next/static/chunks/{8405.73e8be2c8e5b55c5.js → 8405.a425f94b6b13d2be.js} +1 -1
  426. package/.next/static/chunks/8551-a28272acfda62ac9.js +1 -0
  427. package/.next/static/chunks/8650-41c2afc0eba37fb8.js +1 -0
  428. package/.next/static/chunks/{9164-840f056a0e11d979.js → 9164-de1d167d87614a6d.js} +1 -1
  429. package/.next/static/chunks/9203-786f457ecf60b49c.js +1 -0
  430. package/.next/static/chunks/9345-11d6e48d892b1862.js +8 -0
  431. package/.next/static/chunks/95-b9691d3cb15556dc.js +1 -0
  432. package/.next/static/chunks/9562-f8371be653010627.js +1 -0
  433. package/.next/static/chunks/981-dd289e60d81da0d1.js +1 -0
  434. package/.next/static/chunks/9951-566fc6b05c12209e.js +1 -0
  435. package/.next/static/chunks/app/api/approvals/[id]/route-9ea2990be4b67136.js +1 -0
  436. package/.next/static/chunks/app/api/approvals/route-9ea2990be4b67136.js +1 -0
  437. package/.next/static/chunks/app/api/backup/route-9ea2990be4b67136.js +1 -0
  438. package/.next/static/chunks/app/api/browse/route-9ea2990be4b67136.js +1 -0
  439. package/.next/static/chunks/app/api/bugs/enhance/route-9ea2990be4b67136.js +1 -0
  440. package/.next/static/chunks/app/api/cwd/route-9ea2990be4b67136.js +1 -0
  441. package/.next/static/chunks/app/api/encryption/secure/route-9ea2990be4b67136.js +1 -0
  442. package/.next/static/chunks/app/api/env/route-9ea2990be4b67136.js +1 -0
  443. package/.next/static/chunks/app/api/flow/[id]/route-9ea2990be4b67136.js +1 -0
  444. package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-9ea2990be4b67136.js +1 -0
  445. package/.next/static/chunks/app/api/flow/[id]/versions/route-9ea2990be4b67136.js +1 -0
  446. package/.next/static/chunks/app/api/flow/compile/route-9ea2990be4b67136.js +1 -0
  447. package/.next/static/chunks/app/api/flow/generate/route-9ea2990be4b67136.js +1 -0
  448. package/.next/static/chunks/app/api/flow/generator/route-9ea2990be4b67136.js +1 -0
  449. package/.next/static/chunks/app/api/flow/improve/route-9ea2990be4b67136.js +1 -0
  450. package/.next/static/chunks/app/api/flow/prompt-renderer/route-9ea2990be4b67136.js +1 -0
  451. package/.next/static/chunks/app/api/flow/quick-chat/route-9ea2990be4b67136.js +1 -0
  452. package/.next/static/chunks/app/api/flow/repair/route-9ea2990be4b67136.js +1 -0
  453. package/.next/static/chunks/app/api/flow/route-9ea2990be4b67136.js +1 -0
  454. package/.next/static/chunks/app/api/git/route-9ea2990be4b67136.js +1 -0
  455. package/.next/static/chunks/app/api/init/route-9ea2990be4b67136.js +1 -0
  456. package/.next/static/chunks/app/api/local-models/capability/route-9ea2990be4b67136.js +1 -0
  457. package/.next/static/chunks/app/api/local-models/pull/route-9ea2990be4b67136.js +1 -0
  458. package/.next/static/chunks/app/api/local-models/suggest/route-9ea2990be4b67136.js +1 -0
  459. package/.next/static/chunks/app/api/mcp/app-sandbox/route-9ea2990be4b67136.js +1 -0
  460. package/.next/static/chunks/app/api/mcp/cancel/route-9ea2990be4b67136.js +1 -0
  461. package/.next/static/chunks/app/api/mcp/oauth-capability/route-9ea2990be4b67136.js +1 -0
  462. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-9ea2990be4b67136.js +1 -0
  463. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-9ea2990be4b67136.js +1 -0
  464. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-9ea2990be4b67136.js +1 -0
  465. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-9ea2990be4b67136.js +1 -0
  466. package/.next/static/chunks/app/api/mcp/servers/[name]/route-9ea2990be4b67136.js +1 -0
  467. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-9ea2990be4b67136.js +1 -0
  468. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-9ea2990be4b67136.js +1 -0
  469. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-9ea2990be4b67136.js +1 -0
  470. package/.next/static/chunks/app/api/mcp/servers/route-9ea2990be4b67136.js +1 -0
  471. package/.next/static/chunks/app/api/mcp/test-connection/route-9ea2990be4b67136.js +1 -0
  472. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-9ea2990be4b67136.js +1 -0
  473. package/.next/static/chunks/app/api/mcp-registry/route-9ea2990be4b67136.js +1 -0
  474. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-9ea2990be4b67136.js +1 -0
  475. package/.next/static/chunks/app/api/model/[id]/route-9ea2990be4b67136.js +1 -0
  476. package/.next/static/chunks/app/api/model/provider/route-9ea2990be4b67136.js +1 -0
  477. package/.next/static/chunks/app/api/model/route-9ea2990be4b67136.js +1 -0
  478. package/.next/static/chunks/app/api/model/test/route-9ea2990be4b67136.js +1 -0
  479. package/.next/static/chunks/app/api/oauth/callback/route-9ea2990be4b67136.js +1 -0
  480. package/.next/static/chunks/app/api/oauth/initiate/route-9ea2990be4b67136.js +1 -0
  481. package/.next/static/chunks/app/api/oauth/reset/route-9ea2990be4b67136.js +1 -0
  482. package/.next/static/chunks/app/api/packages/build/route-9ea2990be4b67136.js +1 -0
  483. package/.next/static/chunks/app/api/packages/derive-secrets/route-9ea2990be4b67136.js +1 -0
  484. package/.next/static/chunks/app/api/packages/install/route-9ea2990be4b67136.js +1 -0
  485. package/.next/static/chunks/app/api/packages/install/status/route-9ea2990be4b67136.js +1 -0
  486. package/.next/static/chunks/app/api/packages/installed/route-9ea2990be4b67136.js +1 -0
  487. package/.next/static/chunks/app/api/packages/resolve/route-9ea2990be4b67136.js +1 -0
  488. package/.next/static/chunks/app/api/packages/scan-targets/route-9ea2990be4b67136.js +1 -0
  489. package/.next/static/chunks/app/api/packages/search/route-9ea2990be4b67136.js +1 -0
  490. package/.next/static/chunks/app/api/packages/uninstall/route-9ea2990be4b67136.js +1 -0
  491. package/.next/static/chunks/app/api/planned-executions/[id]/route-9ea2990be4b67136.js +1 -0
  492. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-9ea2990be4b67136.js +1 -0
  493. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-9ea2990be4b67136.js +1 -0
  494. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-9ea2990be4b67136.js +1 -0
  495. package/.next/static/chunks/app/api/planned-executions/reconcile/route-9ea2990be4b67136.js +1 -0
  496. package/.next/static/chunks/app/api/planned-executions/route-9ea2990be4b67136.js +1 -0
  497. package/.next/static/chunks/app/api/registry/auth/resend/route-9ea2990be4b67136.js +1 -0
  498. package/.next/static/chunks/app/api/registry/auth/reset/route-9ea2990be4b67136.js +1 -0
  499. package/.next/static/chunks/app/api/registry/auth/route-9ea2990be4b67136.js +1 -0
  500. package/.next/static/chunks/app/api/registry/feedback/route-9ea2990be4b67136.js +1 -0
  501. package/.next/static/chunks/app/api/registry/oauth/callback/route-9ea2990be4b67136.js +1 -0
  502. package/.next/static/chunks/app/api/registry/oauth/initiate/route-9ea2990be4b67136.js +1 -0
  503. package/.next/static/chunks/app/api/registry/packages/route-9ea2990be4b67136.js +1 -0
  504. package/.next/static/chunks/app/api/registry/publish/route-9ea2990be4b67136.js +1 -0
  505. package/.next/static/chunks/app/api/registry/settings/route-9ea2990be4b67136.js +1 -0
  506. package/.next/static/chunks/app/api/restore/route-9ea2990be4b67136.js +1 -0
  507. package/.next/static/chunks/app/api/runs/active/route-9ea2990be4b67136.js +1 -0
  508. package/.next/static/chunks/app/api/storage/route-9ea2990be4b67136.js +1 -0
  509. package/.next/static/chunks/app/api/telemetry/daily-active/route-9ea2990be4b67136.js +1 -0
  510. package/.next/static/chunks/app/api/update/route-9ea2990be4b67136.js +1 -0
  511. package/.next/static/chunks/app/api/waves/route-9ea2990be4b67136.js +1 -0
  512. package/.next/static/chunks/app/api/webhooks/[id]/route-9ea2990be4b67136.js +1 -0
  513. package/.next/static/chunks/app/chat/page-1d100e5d974c919e.js +1 -0
  514. package/.next/static/chunks/app/docs/page-3b9ce48854b2147d.js +1 -0
  515. package/.next/static/chunks/app/executions/page-10ec7d58c7fbdd6f.js +1 -0
  516. package/.next/static/chunks/app/flows/page-9a78a2915268b2f8.js +1 -0
  517. package/.next/static/chunks/app/layout-38b88f3b057f4852.js +1 -0
  518. package/.next/static/chunks/app/mcp/{page-6041156fc67ef361.js → page-56b43b2f8752e9a5.js} +1 -1
  519. package/.next/static/chunks/app/mcp-flows/route-9ea2990be4b67136.js +1 -0
  520. package/.next/static/chunks/app/mcp-proxy/[server]/route-9ea2990be4b67136.js +1 -0
  521. package/.next/static/chunks/app/models/page-808c0568ebc5e2c7.js +1 -0
  522. package/.next/static/chunks/app/packages/page-af6ec89522915206.js +1 -0
  523. package/.next/static/chunks/app/page-30bf4293efa47a47.js +1 -0
  524. package/.next/static/chunks/app/settings/page-59ae1b658838f0bc.js +1 -0
  525. package/.next/static/chunks/app/v1/chat/completions/route-9ea2990be4b67136.js +1 -0
  526. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-9ea2990be4b67136.js +1 -0
  527. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-9ea2990be4b67136.js +1 -0
  528. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-9ea2990be4b67136.js +1 -0
  529. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-9ea2990be4b67136.js +1 -0
  530. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-9ea2990be4b67136.js +1 -0
  531. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-9ea2990be4b67136.js +1 -0
  532. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/inject/route-9ea2990be4b67136.js +1 -0
  533. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-9ea2990be4b67136.js +1 -0
  534. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-9ea2990be4b67136.js +1 -0
  535. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-9ea2990be4b67136.js +1 -0
  536. package/.next/static/chunks/app/v1/chat/conversations/route-9ea2990be4b67136.js +1 -0
  537. package/.next/static/chunks/app/v1/chat/events/route-9ea2990be4b67136.js +1 -0
  538. package/.next/static/chunks/app/v1/models/route-9ea2990be4b67136.js +1 -0
  539. package/.next/static/chunks/app/waves/{page-3cf4b47b12662196.js → page-dc99a16141dd902b.js} +1 -1
  540. package/.next/static/chunks/webpack-dccb4f149ebdedcc.js +1 -0
  541. package/.next/static/jfb1GsjSGMjBmwfa3kM26/_buildManifest.js +1 -0
  542. package/.next/trace +10 -10
  543. package/.next/types/app/api/flow/generator/route.ts +347 -0
  544. package/.next/types/app/api/registry/feedback/route.ts +347 -0
  545. package/.next/types/app/api/registry/packages/route.ts +347 -0
  546. package/.next/types/app/api/telemetry/daily-active/route.ts +347 -0
  547. package/.next/types/routes.d.ts +5 -1
  548. package/.next/types/validator.ts +36 -0
  549. package/README.md +46 -7
  550. package/next.config.mjs +2 -2
  551. package/package.json +4 -3
  552. package/.next/server/chunks/2180.js +0 -1
  553. package/.next/server/chunks/237.js +0 -1
  554. package/.next/server/chunks/3392.js +0 -82
  555. package/.next/server/chunks/4961.js +0 -2
  556. package/.next/server/chunks/510.js +0 -1
  557. package/.next/server/chunks/5150.js +0 -1
  558. package/.next/server/chunks/5561.js +0 -1
  559. package/.next/server/chunks/5705.js +0 -1
  560. package/.next/server/chunks/5829.js +0 -1
  561. package/.next/server/chunks/694.js +0 -3
  562. package/.next/server/chunks/7579.js +0 -83
  563. package/.next/server/chunks/7724.js +0 -1
  564. package/.next/server/chunks/8034.js +0 -1
  565. package/.next/server/chunks/8037.js +0 -1
  566. package/.next/server/chunks/8192.js +0 -12
  567. package/.next/server/chunks/826.js +0 -2
  568. package/.next/server/chunks/8366.js +0 -90
  569. package/.next/server/chunks/848.js +0 -39
  570. package/.next/server/chunks/8615.js +0 -1
  571. package/.next/server/chunks/9313.js +0 -1
  572. package/.next/server/chunks/9537.js +0 -39
  573. package/.next/server/chunks/9576.js +0 -2
  574. package/.next/server/chunks/9632.js +0 -1
  575. package/.next/server/chunks/9671.js +0 -1
  576. package/.next/server/chunks/9857.js +0 -1
  577. package/.next/static/A9jP2ydtYbqx-IayWP2Sg/_buildManifest.js +0 -1
  578. package/.next/static/chunks/1496-d478bce7d7c85080.js +0 -1
  579. package/.next/static/chunks/1572-b663a83bba28a0a1.js +0 -8
  580. package/.next/static/chunks/1641-e5ff8f112da0a335.js +0 -1
  581. package/.next/static/chunks/1988-bd73f26184e930c1.js +0 -1
  582. package/.next/static/chunks/2266-d812473724cc6643.js +0 -1
  583. package/.next/static/chunks/3089.a0856f8093b90939.js +0 -1
  584. package/.next/static/chunks/3560-5bdceef09b50e1c3.js +0 -1
  585. package/.next/static/chunks/3672-cd86ace43288da79.js +0 -1
  586. package/.next/static/chunks/3711-0050bb4d345c2c9c.js +0 -1
  587. package/.next/static/chunks/4147-20897d83b3cd3978.js +0 -39
  588. package/.next/static/chunks/435-17c79f3b9f8dd38d.js +0 -1
  589. package/.next/static/chunks/469-1f043fe082d9f475.js +0 -1
  590. package/.next/static/chunks/4740-62814d07b2b7f760.js +0 -1
  591. package/.next/static/chunks/5441-cb0c31de8bce65c3.js +0 -1
  592. package/.next/static/chunks/7111-44538f8a64241b74.js +0 -1
  593. package/.next/static/chunks/812-dfe7ba07ddb7a565.js +0 -1
  594. package/.next/static/chunks/8401-0f39d91810180a88.js +0 -1
  595. package/.next/static/chunks/8404-14ef0345dc401ac5.js +0 -1
  596. package/.next/static/chunks/8678-c6c6be2672f337f6.js +0 -1
  597. package/.next/static/chunks/8834-faf121e257b517d5.js +0 -1
  598. package/.next/static/chunks/8855-f802599c4af81cca.js +0 -1
  599. package/.next/static/chunks/9562-5494feecd8c6f7a3.js +0 -1
  600. package/.next/static/chunks/app/api/approvals/[id]/route-1a4c9e7a416ccbcf.js +0 -1
  601. package/.next/static/chunks/app/api/approvals/route-1a4c9e7a416ccbcf.js +0 -1
  602. package/.next/static/chunks/app/api/backup/route-1a4c9e7a416ccbcf.js +0 -1
  603. package/.next/static/chunks/app/api/browse/route-1a4c9e7a416ccbcf.js +0 -1
  604. package/.next/static/chunks/app/api/bugs/enhance/route-1a4c9e7a416ccbcf.js +0 -1
  605. package/.next/static/chunks/app/api/cwd/route-1a4c9e7a416ccbcf.js +0 -1
  606. package/.next/static/chunks/app/api/encryption/secure/route-1a4c9e7a416ccbcf.js +0 -1
  607. package/.next/static/chunks/app/api/env/route-1a4c9e7a416ccbcf.js +0 -1
  608. package/.next/static/chunks/app/api/flow/[id]/route-1a4c9e7a416ccbcf.js +0 -1
  609. package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-1a4c9e7a416ccbcf.js +0 -1
  610. package/.next/static/chunks/app/api/flow/[id]/versions/route-1a4c9e7a416ccbcf.js +0 -1
  611. package/.next/static/chunks/app/api/flow/compile/route-1a4c9e7a416ccbcf.js +0 -1
  612. package/.next/static/chunks/app/api/flow/generate/route-1a4c9e7a416ccbcf.js +0 -1
  613. package/.next/static/chunks/app/api/flow/improve/route-1a4c9e7a416ccbcf.js +0 -1
  614. package/.next/static/chunks/app/api/flow/prompt-renderer/route-1a4c9e7a416ccbcf.js +0 -1
  615. package/.next/static/chunks/app/api/flow/quick-chat/route-1a4c9e7a416ccbcf.js +0 -1
  616. package/.next/static/chunks/app/api/flow/repair/route-1a4c9e7a416ccbcf.js +0 -1
  617. package/.next/static/chunks/app/api/flow/route-1a4c9e7a416ccbcf.js +0 -1
  618. package/.next/static/chunks/app/api/git/route-1a4c9e7a416ccbcf.js +0 -1
  619. package/.next/static/chunks/app/api/init/route-1a4c9e7a416ccbcf.js +0 -1
  620. package/.next/static/chunks/app/api/local-models/capability/route-1a4c9e7a416ccbcf.js +0 -1
  621. package/.next/static/chunks/app/api/local-models/pull/route-1a4c9e7a416ccbcf.js +0 -1
  622. package/.next/static/chunks/app/api/local-models/suggest/route-1a4c9e7a416ccbcf.js +0 -1
  623. package/.next/static/chunks/app/api/mcp/app-sandbox/route-1a4c9e7a416ccbcf.js +0 -1
  624. package/.next/static/chunks/app/api/mcp/cancel/route-1a4c9e7a416ccbcf.js +0 -1
  625. package/.next/static/chunks/app/api/mcp/oauth-capability/route-1a4c9e7a416ccbcf.js +0 -1
  626. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-1a4c9e7a416ccbcf.js +0 -1
  627. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-1a4c9e7a416ccbcf.js +0 -1
  628. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-1a4c9e7a416ccbcf.js +0 -1
  629. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-1a4c9e7a416ccbcf.js +0 -1
  630. package/.next/static/chunks/app/api/mcp/servers/[name]/route-1a4c9e7a416ccbcf.js +0 -1
  631. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-1a4c9e7a416ccbcf.js +0 -1
  632. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-1a4c9e7a416ccbcf.js +0 -1
  633. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-1a4c9e7a416ccbcf.js +0 -1
  634. package/.next/static/chunks/app/api/mcp/servers/route-1a4c9e7a416ccbcf.js +0 -1
  635. package/.next/static/chunks/app/api/mcp/test-connection/route-1a4c9e7a416ccbcf.js +0 -1
  636. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-1a4c9e7a416ccbcf.js +0 -1
  637. package/.next/static/chunks/app/api/mcp-registry/route-1a4c9e7a416ccbcf.js +0 -1
  638. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-1a4c9e7a416ccbcf.js +0 -1
  639. package/.next/static/chunks/app/api/model/[id]/route-1a4c9e7a416ccbcf.js +0 -1
  640. package/.next/static/chunks/app/api/model/provider/route-1a4c9e7a416ccbcf.js +0 -1
  641. package/.next/static/chunks/app/api/model/route-1a4c9e7a416ccbcf.js +0 -1
  642. package/.next/static/chunks/app/api/model/test/route-1a4c9e7a416ccbcf.js +0 -1
  643. package/.next/static/chunks/app/api/oauth/callback/route-1a4c9e7a416ccbcf.js +0 -1
  644. package/.next/static/chunks/app/api/oauth/initiate/route-1a4c9e7a416ccbcf.js +0 -1
  645. package/.next/static/chunks/app/api/oauth/reset/route-1a4c9e7a416ccbcf.js +0 -1
  646. package/.next/static/chunks/app/api/packages/build/route-1a4c9e7a416ccbcf.js +0 -1
  647. package/.next/static/chunks/app/api/packages/derive-secrets/route-1a4c9e7a416ccbcf.js +0 -1
  648. package/.next/static/chunks/app/api/packages/install/route-1a4c9e7a416ccbcf.js +0 -1
  649. package/.next/static/chunks/app/api/packages/install/status/route-1a4c9e7a416ccbcf.js +0 -1
  650. package/.next/static/chunks/app/api/packages/installed/route-1a4c9e7a416ccbcf.js +0 -1
  651. package/.next/static/chunks/app/api/packages/resolve/route-1a4c9e7a416ccbcf.js +0 -1
  652. package/.next/static/chunks/app/api/packages/scan-targets/route-1a4c9e7a416ccbcf.js +0 -1
  653. package/.next/static/chunks/app/api/packages/search/route-1a4c9e7a416ccbcf.js +0 -1
  654. package/.next/static/chunks/app/api/packages/uninstall/route-1a4c9e7a416ccbcf.js +0 -1
  655. package/.next/static/chunks/app/api/planned-executions/[id]/route-1a4c9e7a416ccbcf.js +0 -1
  656. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-1a4c9e7a416ccbcf.js +0 -1
  657. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-1a4c9e7a416ccbcf.js +0 -1
  658. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-1a4c9e7a416ccbcf.js +0 -1
  659. package/.next/static/chunks/app/api/planned-executions/reconcile/route-1a4c9e7a416ccbcf.js +0 -1
  660. package/.next/static/chunks/app/api/planned-executions/route-1a4c9e7a416ccbcf.js +0 -1
  661. package/.next/static/chunks/app/api/registry/auth/resend/route-1a4c9e7a416ccbcf.js +0 -1
  662. package/.next/static/chunks/app/api/registry/auth/reset/route-1a4c9e7a416ccbcf.js +0 -1
  663. package/.next/static/chunks/app/api/registry/auth/route-1a4c9e7a416ccbcf.js +0 -1
  664. package/.next/static/chunks/app/api/registry/oauth/callback/route-1a4c9e7a416ccbcf.js +0 -1
  665. package/.next/static/chunks/app/api/registry/oauth/initiate/route-1a4c9e7a416ccbcf.js +0 -1
  666. package/.next/static/chunks/app/api/registry/publish/route-1a4c9e7a416ccbcf.js +0 -1
  667. package/.next/static/chunks/app/api/registry/settings/route-1a4c9e7a416ccbcf.js +0 -1
  668. package/.next/static/chunks/app/api/restore/route-1a4c9e7a416ccbcf.js +0 -1
  669. package/.next/static/chunks/app/api/runs/active/route-1a4c9e7a416ccbcf.js +0 -1
  670. package/.next/static/chunks/app/api/storage/route-1a4c9e7a416ccbcf.js +0 -1
  671. package/.next/static/chunks/app/api/update/route-1a4c9e7a416ccbcf.js +0 -1
  672. package/.next/static/chunks/app/api/waves/route-1a4c9e7a416ccbcf.js +0 -1
  673. package/.next/static/chunks/app/api/webhooks/[id]/route-1a4c9e7a416ccbcf.js +0 -1
  674. package/.next/static/chunks/app/chat/page-558edb21321a32d0.js +0 -1
  675. package/.next/static/chunks/app/docs/page-fc30f613607b8a26.js +0 -1
  676. package/.next/static/chunks/app/executions/page-e71689c7256af1e8.js +0 -1
  677. package/.next/static/chunks/app/flows/page-e90e8d7b4c1bd1c8.js +0 -1
  678. package/.next/static/chunks/app/layout-038b35b382eef11d.js +0 -1
  679. package/.next/static/chunks/app/mcp-flows/route-1a4c9e7a416ccbcf.js +0 -1
  680. package/.next/static/chunks/app/mcp-proxy/[server]/route-1a4c9e7a416ccbcf.js +0 -1
  681. package/.next/static/chunks/app/models/page-d16f2721e7a93b43.js +0 -1
  682. package/.next/static/chunks/app/packages/page-c6b0e7aa95bc1064.js +0 -1
  683. package/.next/static/chunks/app/page-5c7fccd019942d46.js +0 -1
  684. package/.next/static/chunks/app/settings/page-fb336bb049bab72a.js +0 -1
  685. package/.next/static/chunks/app/v1/chat/completions/route-1a4c9e7a416ccbcf.js +0 -1
  686. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-1a4c9e7a416ccbcf.js +0 -1
  687. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-1a4c9e7a416ccbcf.js +0 -1
  688. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-1a4c9e7a416ccbcf.js +0 -1
  689. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-1a4c9e7a416ccbcf.js +0 -1
  690. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-1a4c9e7a416ccbcf.js +0 -1
  691. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-1a4c9e7a416ccbcf.js +0 -1
  692. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/inject/route-1a4c9e7a416ccbcf.js +0 -1
  693. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-1a4c9e7a416ccbcf.js +0 -1
  694. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-1a4c9e7a416ccbcf.js +0 -1
  695. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-1a4c9e7a416ccbcf.js +0 -1
  696. package/.next/static/chunks/app/v1/chat/conversations/route-1a4c9e7a416ccbcf.js +0 -1
  697. package/.next/static/chunks/app/v1/chat/events/route-1a4c9e7a416ccbcf.js +0 -1
  698. package/.next/static/chunks/app/v1/models/route-1a4c9e7a416ccbcf.js +0 -1
  699. package/.next/static/chunks/webpack-2d8e0c13c0b865fe.js +0 -1
  700. /package/.next/static/{A9jP2ydtYbqx-IayWP2Sg → jfb1GsjSGMjBmwfa3kM26}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[435],{14368:(e,t,l)=>{l.d(t,{A:()=>d});var a=l(95155);l(12115);var n=l(94049),o=l(9562),r=l(25635),s=l(22003),i=l(84765);let d=e=>{let{config:t,onChange:l}=e;return(0,a.jsxs)(n.default,{sx:{mt:1},children:[(0,a.jsx)(o.A,{fullWidth:!0,label:"URL to watch",value:t.url,onChange:e=>l({...t,url:e.target.value}),placeholder:"https://example.com/status or an API/feed URL",margin:"normal",type:"url"}),(0,a.jsx)(r.default,{variant:"subtitle2",sx:{mt:1},children:"How often to check"}),(0,a.jsx)(i.A,{verb:"Check",cron:t.cron,timezone:t.timezone,onChange:e=>{let{cron:a,timezone:n}=e;return l({...t,cron:a,timezone:n})}}),(0,a.jsx)(s.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."})]})}},21997:(e,t,l)=>{l.d(t,{A:()=>A});var a=l(95155),n=l(12115),o=l(94049),r=l(9562),s=l(56422),i=l(78470),d=l(41983),c=l(25635),u=l(17325),h=l(99944),m=l(22822),f=l(22003),x=l(98267),p=l(20537),g=l(37960),v=l(63186),y=l(80007),w=l(62640);let b=[{value:"add",label:"A file appears"},{value:"change",label:"A file changes"},{value:"unlink",label:"A file is deleted"}],A=e=>{var t;let{config:l,onChange:A}=e,[j,k]=(0,n.useState)(!1);return(0,a.jsxs)(o.default,{sx:{mt:1},children:[(0,a.jsx)(r.A,{fullWidth:!0,label:"Folder (or file) to watch",value:l.path,onChange:e=>A({...l,path:e.target.value}),placeholder:"e.g. C:\\Users\\me\\Documents\\inbox",margin:"normal",InputProps:{endAdornment:(0,a.jsx)(s.A,{position:"end",children:(0,a.jsx)(i.A,{title:"Browse folders (on the FLUJO machine)",children:(0,a.jsx)(d.A,{edge:"end",onClick:()=>k(!0),children:(0,a.jsx)(y.A,{})})})})}}),(0,a.jsx)(w.A,{open:j,title:"Choose what to watch",selectFiles:!0,initialPath:l.path||void 0,onClose:()=>k(!1),onSelect:e=>A({...l,path:e})}),(0,a.jsx)(r.A,{fullWidth:!0,label:"Only files matching (optional)",value:l.glob||"",onChange:e=>A({...l,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,a.jsx)(c.default,{variant:"subtitle2",sx:{mt:1},children:"Run when…"}),(0,a.jsx)(u.A,{row:!0,children:b.map(e=>(0,a.jsx)(h.A,{control:(0,a.jsx)(m.A,{checked:l.events.includes(e.value),onChange:t=>((e,t)=>{let a=t?[...l.events,e]:l.events.filter(t=>t!==e);A({...l,events:a})})(e.value,t.target.checked)}),label:e.label},e.value))}),(0,a.jsx)(f.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,a.jsxs)(x.A,{disableGutters:!0,elevation:0,sx:{mt:1,"&:before":{display:"none"}},children:[(0,a.jsx)(p.A,{expandIcon:(0,a.jsx)(v.A,{}),sx:{px:0},children:(0,a.jsx)(c.default,{variant:"body2",color:"text.secondary",children:"Advanced"})}),(0,a.jsx)(g.A,{sx:{px:0},children:(0,a.jsx)(r.A,{label:"Quiet window (ms)",type:"number",value:null!=(t=l.debounceMs)?t:2e3,onChange:e=>A({...l,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}})})]})]})}},23143:(e,t,l)=>{l.d(t,{A:()=>s});var a=l(95155);l(12115);var n=l(94049),o=l(25635),r=l(36741);let s=e=>{let{selected:t,icon:l,title:s,description:i,onClick:d}=e;return(0,a.jsxs)(n.default,{role:"radio","aria-checked":t,tabIndex:0,onClick:d,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),d())},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,a.jsx)(r.A,{color:"primary",fontSize:"small",sx:{position:"absolute",top:8,right:8}}),(0,a.jsxs)(n.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:.5,color:t?"primary.main":"text.secondary"},children:[l,(0,a.jsx)(o.default,{variant:"subtitle1",sx:{fontWeight:600,color:"text.primary"},children:s})]}),(0,a.jsx)(o.default,{variant:"body2",color:"text.secondary",children:i})]})}},23833:(e,t,l)=>{l.d(t,{A:()=>b});var a=l(95155),n=l(12115),o=l(94049),r=l(25635),s=l(52641),i=l(95436),d=l(55606),c=l(86973),u=l(63109),h=l(9562),m=l(17325),f=l(99944),x=l(22822),p=l(21067),g=l(22003),v=l(93632);function y(e){if(!e||!Array.isArray(e.nodes))return[];let t=[];for(let n of e.nodes){var l,a;if((null==n||null==(l=n.data)?void 0:l.type)!=="signal")continue;let e=null==(a=n.data.properties)?void 0:a.topic;"string"==typeof e&&e.trim()&&t.push(e.trim())}return t}let w=(0,l(87021).h)("frontend/components/PlannedExecutions/FlowEventPanel"),b=e=>{var t,l,b,A,j,k,S,C,I,N,E,T,_,M,P,R,O,W;let{config:L,onChange:D,flows:F,currentExecutionId:U}=e,[G,z]=(0,n.useState)([]),[J,V]=(0,n.useState)(void 0!==L.maxChainDepth||void 0!==L.minIntervalMs),H=(null==(t=L.source)?void 0:t.topic)!==void 0?"topic":(null==(l=L.source)?void 0:l.executionId)!==void 0?"execution":"flow",K="topic"===H,Y=(0,n.useMemo)(()=>(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,l=new Map;for(let t of e)t&&"string"==typeof t.id&&l.set(t.id,t);let a=new Map,n=(e,t)=>{a.has(e)||a.set(e,[]),a.get(e).push(t)};for(let a of e){if(!a||"string"!=typeof a.id)continue;let e=new Map;for(let t of y(a)){var o;e.set(t,(null!=(o=e.get(t))?o:0)+1)}for(let[t,l]of e)n(t,{flowId:a.id,flowName:a.name,signalNodeCount:l,viaSubflow:!1});for(let o of function(e,t){let l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=new Set,n=new Set,o=(e,r)=>{if(n.has(e)||r>l)return;n.add(e);let s=t.get(e);for(let e of y(s))a.add(e);for(let e of function(e){if(!e||!Array.isArray(e.nodes))return[];let t=[];for(let n of e.nodes){var l,a;if((null==n||null==(l=n.data)?void 0:l.type)!=="subflow")continue;let e=null!=(a=n.data.properties)?a:{};if("string"==typeof e.subflowId&&e.subflowId.trim()&&t.push(e.subflowId.trim()),Array.isArray(e.parallelSubflowIds))for(let l of e.parallelSubflowIds)"string"==typeof l&&l.trim()&&t.push(l.trim())}return Array.from(new Set(t))}(s))o(e,r+1)};return o(e,0),a}(a.id,l,t))e.has(o)||n(o,{flowId:a.id,flowName:a.name,signalNodeCount:0,viaSubflow:!0})}return a})(F),[F]),$=(0,n.useMemo)(()=>{let e=new Map;for(let t of F)(null==t?void 0:t.id)&&e.set(t.id,t.name);return e},[F]),q=(0,n.useMemo)(()=>{let e=new Map;for(let a of G){var t,l;let n=a.execution;if(n.id===U||(null==(t=n.trigger)?void 0:t.type)!=="flow-event")continue;let o=null==(l=n.trigger.source)?void 0:l.topic;if("string"!=typeof o||!o.trim())continue;let r=o.trim();e.has(r)||e.set(r,[]),e.get(r).push({executionId:n.id,executionName:n.name,flowId:n.flowId,flowName:$.get(n.flowId)})}return e},[G,U,$]),B=(0,n.useMemo)(()=>Array.from(new Set([...Y.keys(),...q.keys()])).sort((e,t)=>e.localeCompare(t)),[Y,q]),X=e=>{let t=Y.get(e);if(!t||0===t.length)return null;let l=Array.from(new Set(t.map(e=>(e.flowName||e.flowId)+(e.viaSubflow?" (via subflow)":""))));return"Emitted in: ".concat(l.join(", "))},Z=(null!=(I=null==(b=L.source)?void 0:b.topic)?I:"").trim(),Q=!Z||Y.has(Z);(0,n.useEffect)(()=>{let e=!1;return v.P.list().then(t=>{e||z(t.executions||[])}).catch(t=>{w.warn("Failed to load planned executions for source picker",t),e||z([])}),()=>{e=!0}},[]);let ee=(e,t)=>{var l;let a=new Set(null!=(l=L.on)?l:[]);t?a.add(e):a.delete(e),D({...L,on:Array.from(a)})};return(0,a.jsxs)(o.default,{sx:{mt:1},children:[(0,a.jsx)(r.default,{variant:"subtitle2",sx:{mt:1},children:"React to"}),(0,a.jsxs)(o.default,{sx:{display:"flex",gap:2,mt:1},children:[(0,a.jsxs)(s.A,{sx:{minWidth:180},children:[(0,a.jsx)(i.A,{id:"flow-event-source-kind",children:"Source"}),(0,a.jsxs)(d.A,{labelId:"flow-event-source-kind",label:"Source",value:H,onChange:e=>(e=>{D({...L,source:"flow"===e?{flowId:""}:"execution"===e?{executionId:""}:{topic:""}})})(e.target.value),children:[(0,a.jsx)(c.A,{value:"flow",children:"A flow (any run)"}),(0,a.jsx)(c.A,{value:"execution",children:"A planned execution"}),(0,a.jsx)(c.A,{value:"topic",children:"A signal topic"})]})]}),"topic"===H?(0,a.jsx)(s.A,{fullWidth:!0,children:(0,a.jsx)(u.A,{freeSolo:!0,autoHighlight:!0,options:B,value:null!=(N=null==(A=L.source)?void 0:A.topic)?N:"",inputValue:null!=(E=null==(j=L.source)?void 0:j.topic)?E:"",onInputChange:(e,t)=>D({...L,source:{topic:t}}),renderOption:(e,t)=>{let l=X(t),s=(e=>{let t=q.get(e);if(!t||0===t.length)return null;let l=Array.from(new Set(t.map(e=>e.flowName||e.flowId)));return"Used by ".concat(t.length," trigger").concat(1===t.length?"":"s"," → starts ").concat(l.join(", "))})(t);return(0,n.createElement)(o.default,{component:"li",...e,key:t},(0,a.jsxs)(o.default,{sx:{display:"flex",flexDirection:"column",py:.25},children:[(0,a.jsx)(r.default,{variant:"body2",sx:{fontWeight:600},children:t}),l&&(0,a.jsx)(r.default,{variant:"caption",color:"text.secondary",children:l}),s&&(0,a.jsx)(r.default,{variant:"caption",color:"text.secondary",children:s}),!l&&(0,a.jsx)(r.default,{variant:"caption",color:"warning.main",children:"No flow currently emits this signal"})]}))},renderInput:e=>{var t;return(0,a.jsx)(h.A,{...e,label:"Signal topic",placeholder:"e.g. review-blocked",helperText:Z?Q?null!=(t=X(Z))?t:"React when this signal is emitted.":"No flow currently emits this signal — the trigger will stay idle until one does.":"React when a signal node in any flow emits this topic. Suggestions come from your existing flows."})}})}):"flow"===H?(0,a.jsxs)(s.A,{fullWidth:!0,children:[(0,a.jsx)(i.A,{id:"flow-event-flow",children:"Flow to watch"}),(0,a.jsxs)(d.A,{labelId:"flow-event-flow",label:"Flow to watch",value:null!=(T=null==(k=L.source)?void 0:k.flowId)?T:"",onChange:e=>D({...L,source:{flowId:e.target.value}}),displayEmpty:!0,children:[0===F.length&&(0,a.jsx)(c.A,{value:"",disabled:!0,children:"No flows available"}),F.map(e=>(0,a.jsx)(c.A,{value:e.id,children:e.name},e.id))]})]}):(0,a.jsxs)(s.A,{fullWidth:!0,children:[(0,a.jsx)(i.A,{id:"flow-event-execution",children:"Planned execution to watch"}),(0,a.jsxs)(d.A,{labelId:"flow-event-execution",label:"Planned execution to watch",value:null!=(_=null==(S=L.source)?void 0:S.executionId)?_:"",onChange:e=>D({...L,source:{executionId:e.target.value}}),displayEmpty:!0,children:[0===G.filter(e=>e.execution.id!==U).length&&(0,a.jsx)(c.A,{value:"",disabled:!0,children:"No other planned executions"}),G.filter(e=>e.execution.id!==U).map(e=>(0,a.jsx)(c.A,{value:e.execution.id,children:e.execution.name},e.execution.id))]})]})]}),!K&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.default,{variant:"subtitle2",sx:{mt:2},children:"When it…"}),(0,a.jsxs)(m.A,{row:!0,children:[(0,a.jsx)(f.A,{control:(0,a.jsx)(x.A,{checked:(null!=(M=L.on)?M:[]).includes("completed"),onChange:e=>ee("completed",e.target.checked)}),label:"completes"}),(0,a.jsx)(f.A,{control:(0,a.jsx)(x.A,{checked:(null!=(P=L.on)?P:[]).includes("error"),onChange:e=>ee("error",e.target.checked)}),label:"errors"})]})]}),(0,a.jsx)(h.A,{fullWidth:!0,label:K?"Only when the payload contains (optional)":"Only when the output contains (optional)",value:null!=(R=null==(C=L.outputMatch)?void 0:C.contains)?R:"",onChange:e=>{let t=e.target.value,l={...L.outputMatch,contains:t||void 0},a=l.contains||l.regex?l:void 0;D({...L,outputMatch:a})},margin:"normal",placeholder:"e.g. FAILED, or leave empty to react to every matching run"}),(0,a.jsx)(f.A,{sx:{mt:1},control:(0,a.jsx)(x.A,{checked:J,onChange:e=>V(e.target.checked)}),label:"Advanced (loop safety)"}),J&&(0,a.jsxs)(o.default,{sx:{display:"flex",gap:2,mt:1},children:[(0,a.jsx)(h.A,{label:"Max chain depth",type:"number",value:null!=(O=L.maxChainDepth)?O:"",onChange:e=>D({...L,maxChainDepth:""===e.target.value?void 0:Number(e.target.value)}),helperText:"Stop after this many hops (default 5)",inputProps:{min:1}}),(0,a.jsx)(h.A,{label:"Cooldown (ms)",type:"number",value:null!=(W=L.minIntervalMs)?W:"",onChange:e=>D({...L,minIntervalMs:""===e.target.value?void 0:Number(e.target.value)}),helperText:"Minimum gap between fires",inputProps:{min:0}})]}),(0,a.jsx)(p.A,{sx:{mt:2}}),(0,a.jsx)(g.A,{severity:"info",sx:{mt:2},children:K?"The signal’s payload is handed to this flow. Emit a signal from a signal node in any flow to fire this one — fire-and-forget. To avoid runaway loops, a chain of fires stops at the max depth above, and the overlap-skip prevents a single execution from re-triggering itself while it’s still running.":"The upstream run’s output is handed to this flow, so it can build on what the other flow produced. To avoid runaway loops, a chain of flow-event fires stops at the max depth above, and the existing overlap-skip prevents a single execution from re-triggering itself while it’s still running."})]})}},27156:(e,t,l)=>{l.d(t,{Z:()=>a});var a=function(e){return e.MODELS="models",e.FLOWS="flows",e.CHAT_HISTORY="history",e.THEME="theme",e.ENCRYPTION_KEY="encryption_key",e.MCP_SERVERS="mcp_servers",e.GLOBAL_ENV_VARS="global_env_vars",e.CURRENT_CONVERSATION_ID="current_conversation_id",e.SELECTED_FLOW_ID="selected_flow_id",e.LAST_PICKED_FLOW_ID="last_picked_flow_id",e.SPEECH_SETTINGS="speech_settings",e.SPOTLIGHT_SERVERS="spotlight_servers",e.PLANNED_EXECUTIONS="planned_executions",e.MCP_AUTO_INSTALL_SETTINGS="mcp_auto_install_settings",e.MCP_QUALITY_SETTINGS="mcp_quality_settings",e.RUN_RESOURCE_SETTINGS="run_resource_settings",e.KV_STORE_SETTINGS="kv_store_settings",e.PENDING_APPROVALS="pending_approvals",e.MCP_INTERNAL_OVERRIDES="mcp_internal_overrides",e.PACKAGE_INSTALLS="package_installs",e.EXPERIMENTAL_SETTINGS="experimental_settings",e.REGISTRY_ACCOUNT="registry_account",e.REGISTRY_SETTINGS="registry_settings",e}({})},29692:(e,t,l)=>{l.d(t,{Zg:()=>a.Z,YM:()=>i,VH:()=>s,Mj:()=>r});var a=l(27156),n=l(12115);let o=(0,l(87021).h)("utils/storage/frontend.ts");function r(e,t){o.verbose("useLocalStorage: Entering method");let[l,a]=(0,n.useState)(t),[r,s]=(0,n.useState)(!0),i=(0,n.useRef)(l);return(0,n.useEffect)(()=>{i.current=l},[l]),(0,n.useEffect)(()=>{(async()=>{o.verbose("loadValue: Entering method");try{let l=await fetch("/api/storage?key=".concat(encodeURIComponent(e),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(t)))),n=await l.json();l.ok&&a(n.value)}catch(t){o.warn('Error reading storage key "'.concat(e,'":'),t)}finally{s(!1)}})()},[e]),[l,(0,n.useCallback)(async t=>{o.verbose("setValue: Entering method");try{let l=t instanceof Function?t(i.current):t;if(a(l),!(await fetch("/api/storage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e,value:l})})).ok)throw Error("Failed to save value")}catch(t){o.warn('Error setting storage key "'.concat(e,'":'),t)}},[e]),r]}let s=async(e,t)=>{o.verbose("saveItem: Entering method");try{if(!(await fetch("/api/storage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e,value:t})})).ok)throw Error("Failed to save item")}catch(e){throw o.error("Error saving to storage:",e),e}},i=async(e,t)=>{o.verbose("loadItem: Entering method");try{let l=await fetch("/api/storage?key=".concat(encodeURIComponent(e),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(t))));if(!l.ok)throw Error("Failed to load item");return(await l.json()).value}catch(e){return o.error("Error loading from storage:",e),t}}},43673:(e,t,l)=>{l.d(t,{A:()=>p});var a=l(95155),n=l(12115),o=l(94049),r=l(22003),s=l(9562),i=l(78470),d=l(41983),c=l(91871),u=l(25635),h=l(99944),m=l(22822),f=l(52277),x=l(9693);let p=e=>{let{config:t,onChange:l,executionId:p,saved:g}=e,[v,y]=(0,n.useState)(null),w=window.location.origin,b="".concat(w,"/api/webhooks/").concat(p),A=async(e,t)=>{try{await navigator.clipboard.writeText(t),y(e),setTimeout(()=>y(null),1500)}catch(e){}};return(0,a.jsxs)(o.default,{sx:{mt:1},children:[!g&&(0,a.jsx)(r.A,{severity:"info",sx:{mb:2},children:"This URL and token are ready to copy now — they become active when you save."}),(0,a.jsxs)(o.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,a.jsx)(s.A,{fullWidth:!0,label:"Webhook URL",value:b,InputProps:{readOnly:!0},size:"small"}),(0,a.jsx)(i.A,{title:"Copy URL",children:(0,a.jsx)(d.A,{onClick:()=>A("url",b),children:"url"===v?(0,a.jsx)(x.A,{color:"success"}):(0,a.jsx)(f.A,{})})})]}),(0,a.jsxs)(o.default,{sx:{display:"flex",alignItems:"center",gap:1,mt:2},children:[(0,a.jsx)(s.A,{fullWidth:!0,label:"Secret token",value:t.token,InputProps:{readOnly:!0},size:"small",type:"password"}),(0,a.jsx)(i.A,{title:"Copy token",children:(0,a.jsx)(d.A,{onClick:()=>A("token",t.token),disabled:!t.token,children:"token"===v?(0,a.jsx)(x.A,{color:"success"}):(0,a.jsx)(f.A,{})})}),(0,a.jsx)(c.A,{size:"small",onClick:()=>l({...t,token:crypto.randomUUID()}),sx:{whiteSpace:"nowrap"},children:"New token"})]}),(0,a.jsx)(u.default,{variant:"caption",color:"text.secondary",children:g?"A new token takes effect when you save — callers using the old one are cut off.":""}),(0,a.jsxs)(u.default,{variant:"body2",color:"text.secondary",sx:{mt:1.5},children:["Callers send a POST with the token in the ",(0,a.jsx)("code",{children:"X-Flujo-Token"})," ","header (or ",(0,a.jsx)("code",{children:"?token=…"}),"). The request body becomes part of the flow's input — treat it as untrusted data in your prompt."]}),(0,a.jsx)(h.A,{sx:{mt:1,display:"flex"},control:(0,a.jsx)(m.A,{checked:!0===t.allowExternal,onChange:e=>l({...t,allowExternal:e.target.checked})}),label:"Allow calls from other machines (default: this computer only)"}),t.allowExternal&&(0,a.jsx)(r.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."})]})}},80811:(e,t,l)=>{l.d(t,{A:()=>N});var a=l(95155),n=l(12115),o=l(94049),r=l(25635),s=l(91871),i=l(52641),d=l(95436),c=l(55606),u=l(86973),h=l(9562),m=l(4474),f=l(22003),x=l(41356),p=l(24610),g=l(17897),v=l(43076),y=l(90057),w=l(87021),b=l(23143),A=l(84765),j=l(17427),k=l(96362),S=l(40962),C=l(68503);let I=(0,w.h)("frontend/components/PlannedExecutions/WatchToolPanel"),N=e=>{var t,l;let{config:w,onChange:N}=e,[E,T]=(0,n.useState)([]),[_,M]=(0,n.useState)(!1),[P,R]=(0,n.useState)([]),[O,W]=(0,n.useState)(!1),[L,D]=(0,n.useState)(Object.keys(w.args||{}).length>0?JSON.stringify(w.args,null,2):""),[F,U]=(0,n.useState)(null),[G,z]=(0,n.useState)(!1),[J,V]=(0,n.useState)(null),[H,K]=(0,n.useState)(null),[Y,$]=(0,n.useState)([]),[q,B]=(0,n.useState)([]);(0,n.useEffect)(()=>{let e=!1;return g.S.loadServerConfigs().then(t=>{e||(Array.isArray(t)?T(t.filter(e=>!e.disabled)):(I.warn("Failed to load MCP servers for watch-tool panel",t),T([])))}),()=>{e=!0}},[]),(0,n.useEffect)(()=>{if(!w.serverName)return void R([]);let e=!1;return W(!0),g.S.listServerTools(w.serverName).then(t=>{let{tools:l}=t;e||R(l||[])}).finally(()=>{e||W(!1)}),()=>{e=!0}},[w.serverName]),(0,n.useEffect)(()=>{let e=!1;return v.N.loadModels().then(t=>{e||$(Array.isArray(t)?t:[])}).catch(()=>{e||$([])}),y.g.loadFlows().then(t=>{e||B(t||[])}).catch(()=>{e||B([])}),()=>{e=!0}},[]);let X=async()=>{z(!0),V(null),K(null);try{let l=await g.S.callTool(w.serverName,w.toolName,w.args||{});if(null==l?void 0:l.error)K("string"==typeof l.error?l.error:"Tool call failed");else{var e,t;let a=null!=(e=null==l?void 0:l.data)?e:l,n=null!=(t=JSON.stringify(a,null,2))?t:"";V(n.length>6e3?"".concat(n.slice(0,6e3),"\n… (truncated)"):n)}}catch(e){K(e instanceof Error?e.message:"Tool call failed")}finally{z(!1)}},Z=w.evaluate,Q=P.find(e=>e.name===w.toolName),ee=(0,C.E)("mcp",E),et=e=>({key:e.name,content:(e=>(0,a.jsx)(S.A,{name:e.name,status:e.status||"disconnected",path:e.rootPath||"",enabled:!e.disabled,transport:e.transport||"stdio",pickerMode:!0,selected:w.serverName===e.name,onClick:()=>{var t;return t=e.name,void(N({...w,serverName:t,toolName:""}),M(!1))}}))(e)}),el=ee.items.map(et),ea=ee.groups?ee.groups.map(e=>({...e,items:e.items.map(et)})):null;return(0,a.jsxs)(o.default,{sx:{mt:1},children:[(0,a.jsxs)(o.default,{sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[(0,a.jsxs)(o.default,{sx:{minWidth:220,flex:1,mt:2,mb:1},children:[(0,a.jsx)(r.default,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Server"}),(0,a.jsx)(s.A,{variant:"outlined",fullWidth:!0,onClick:()=>M(!0),sx:{justifyContent:"flex-start",textTransform:"none"},children:w.serverName?"".concat(w.serverName," — change"):"Choose an MCP server…"}),(0,a.jsx)(k.A,{open:_,onClose:()=>M(!1),title:"Choose an MCP server",description:"Pick the server whose tool you want to watch.",emptyMessage:"No MCP servers configured.",searchable:!0,searchPlaceholder:"Search servers…",searchTerm:ee.searchTerm,onSearchChange:ee.setSearchTerm,columns:{xs:12,sm:6},items:el,groups:ea,collapsedKeys:ee.collapsedKeys,onToggleGroup:ee.toggleGroup})]}),(0,a.jsxs)(i.A,{sx:{minWidth:220,flex:1},margin:"normal",disabled:!w.serverName,children:[(0,a.jsx)(d.A,{id:"watch-tool-label",children:"Tool"}),(0,a.jsxs)(c.A,{labelId:"watch-tool-label",label:"Tool",value:P.some(e=>e.name===w.toolName)?w.toolName:"",onChange:e=>N({...w,toolName:e.target.value,args:{}}),children:[0===P.length&&(0,a.jsx)(u.A,{value:"",disabled:!0,children:O?"Loading tools…":"Pick a server first"}),P.map(e=>(0,a.jsx)(u.A,{value:e.name,children:e.name},e.name))]})]})]}),(0,a.jsx)(r.default,{variant:"subtitle2",sx:{mt:1},children:"How often to check"}),(0,a.jsx)(A.A,{verb:"Check",cron:null!=(t=w.cron)?t:function(e){let t=Math.max(5,Math.round((null!=e?e:6e4)/1e3));if(t<60)return"*/".concat(t," * * * * *");let l=Math.max(1,Math.round(t/60));if(l<60)return"*/".concat(l," * * * *");let a=Math.max(1,Math.min(23,Math.round(l/60)));return"0 */".concat(a," * * *")}(w.intervalMs),timezone:w.timezone,onChange:e=>{let{cron:t,timezone:l}=e;return N({...w,cron:t,timezone:l})}}),Q?(0,a.jsxs)(o.default,{sx:{my:1.5},children:[(0,a.jsx)(r.default,{variant:"subtitle2",sx:{mb:1.5},children:"Tool parameters — sent on every check"}),(0,a.jsx)(j.A,{schema:Q.inputSchema,values:w.args||{},onChange:e=>N({...w,args:e})})]}):(0,a.jsx)(h.A,{fullWidth:!0,label:"Tool arguments (JSON, optional)",value:L,onChange:e=>(e=>{if(D(e),!e.trim()){U(null),N({...w,args:{}});return}try{let t=JSON.parse(e);if(null===t||"object"!=typeof t||Array.isArray(t))return void U('Arguments must be a JSON object, e.g. { "query": "…" }');U(null),N({...w,args:t})}catch(e){U("Not valid JSON yet")}})(e.target.value),margin:"normal",multiline:!0,minRows:2,placeholder:'{ "query": "is:unread" }',error:!!F,helperText:null!=F?F:"Sent to the tool on every check.",slotProps:{input:{sx:{fontFamily:"monospace",fontSize:14}}}}),(0,a.jsxs)(o.default,{sx:{display:"flex",alignItems:"center",gap:2,mb:1},children:[(0,a.jsx)(s.A,{variant:"outlined",size:"small",onClick:X,disabled:!w.serverName||!w.toolName||G||!!F,startIcon:G?(0,a.jsx)(m.default,{size:16}):void 0,children:"Test: call the tool now"}),(0,a.jsx)(r.default,{variant:"caption",color:"text.secondary",children:"See what the result looks like — useful for the settings below."})]}),H&&(0,a.jsx)(f.A,{severity:"error",sx:{mb:1},children:H}),J&&(0,a.jsx)(o.default,{component:"pre",sx:{maxHeight:240,overflow:"auto",bgcolor:"action.hover",borderRadius:1,p:1.5,fontSize:12,m:0,mb:1},children:J}),(0,a.jsx)(r.default,{variant:"subtitle2",sx:{mt:2,mb:1},children:"Run the flow when…"}),(0,a.jsxs)(o.default,{role:"radiogroup","aria-label":"Poll condition",sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[(0,a.jsx)(b.A,{selected:"on-change"===Z.mode,onClick:()=>N({...w,evaluate:{mode:"on-change"}}),icon:(0,a.jsx)(x.A,{}),title:"The result changes",description:"Any difference from the last check runs the flow. Simplest — no setup."}),(0,a.jsx)(b.A,{selected:"llm-gate"===Z.mode||"flow-gate"===Z.mode,onClick:()=>{"llm-gate"!==Z.mode&&"flow-gate"!==Z.mode&&N({...w,evaluate:{mode:"llm-gate",condition:"",modelId:""}})},icon:(0,a.jsx)(p.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"===Z.mode||"flow-gate"===Z.mode)&&(0,a.jsxs)(o.default,{sx:{mt:1},children:[(0,a.jsx)(h.A,{fullWidth:!0,label:"Run the flow if…",value:Z.condition,onChange:e=>N({...w,evaluate:{...Z,condition:e.target.value}}),multiline:!0,minRows:2,margin:"normal",placeholder:"e.g. any email mentions an invoice or a payment reminder"}),(0,a.jsxs)(o.default,{sx:{display:"flex",gap:2,flexWrap:"wrap",alignItems:"flex-start"},children:[(0,a.jsxs)(i.A,{sx:{minWidth:170},children:[(0,a.jsx)(d.A,{id:"gate-checker-label",children:"Checked by"}),(0,a.jsxs)(c.A,{labelId:"gate-checker-label",label:"Checked by",value:Z.mode,onChange:e=>{let t=e.target.value;if(t===Z.mode)return;let l={condition:Z.condition,maxCallsPerDay:Z.maxCallsPerDay};N({...w,evaluate:"llm-gate"===t?{mode:t,...l,modelId:""}:{mode:t,...l,flowId:""}})},children:[(0,a.jsx)(u.A,{value:"llm-gate",children:"A model"}),(0,a.jsx)(u.A,{value:"flow-gate",children:"One of my flows"})]})]}),"llm-gate"===Z.mode&&(0,a.jsxs)(i.A,{sx:{minWidth:240,flex:1},children:[(0,a.jsx)(d.A,{id:"gate-model-label",children:"Model that checks"}),(0,a.jsxs)(c.A,{labelId:"gate-model-label",label:"Model that checks",value:Y.some(e=>e.id===Z.modelId)?Z.modelId:"",onChange:e=>N({...w,evaluate:{...Z,modelId:e.target.value}}),children:[0===Y.length&&(0,a.jsx)(u.A,{value:"",disabled:!0,children:"No models configured"}),Y.map(e=>(0,a.jsx)(u.A,{value:e.id,children:e.displayName||e.name},e.id))]})]}),"flow-gate"===Z.mode&&(0,a.jsxs)(i.A,{sx:{minWidth:240,flex:1},children:[(0,a.jsx)(d.A,{id:"gate-flow-label",children:"Flow that checks"}),(0,a.jsxs)(c.A,{labelId:"gate-flow-label",label:"Flow that checks",value:q.some(e=>e.id===Z.flowId)?Z.flowId:"",onChange:e=>N({...w,evaluate:{...Z,flowId:e.target.value}}),children:[0===q.length&&(0,a.jsx)(u.A,{value:"",disabled:!0,children:"No flows available"}),q.map(e=>(0,a.jsx)(u.A,{value:e.id,children:e.name},e.id))]})]}),(0,a.jsx)(h.A,{label:"Max checks per day",type:"number",value:null!=(l=Z.maxCallsPerDay)?l:500,onChange:e=>N({...w,evaluate:{...Z,maxCallsPerDay:Math.max(1,Number(e.target.value)||1)}}),inputProps:{min:1},helperText:"Cost guard per check.",sx:{width:180}})]}),(0,a.jsx)(r.default,{variant:"caption",color:"text.secondary",sx:{display:"block",mt:.5},children:"flow-gate"===Z.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,a.jsx)(f.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."})]})}},84765:(e,t,l)=>{l.d(t,{A:()=>b});var a=l(95155),n=l(12115),o=l(94049),r=l(52641),s=l(95436),i=l(55606),d=l(86973),c=l(9562),u=l(22003),h=l(25635),m=l(99944),f=l(22822),x=l(98267),p=l(20537),g=l(37960),v=l(63186),y=l(93632);let w=e=>String(e).padStart(2,"0"),b=e=>{let{cron:t,timezone:l,onChange:b,verb:A="Runs",catchUp:j,onCatchUpChange:k}=e,S=(0,n.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(w(Number(t[2])),":").concat(w(Number(t[1])))}:(t=/^(\d+) (\d+) \* \* 1-5$/.exec(e))?{mode:"weekdays",n:1,time:"".concat(w(Number(t[2])),":").concat(w(Number(t[1])))}:{mode:"custom",n:15,time:"09:00"}})(t),[]),[C,I]=(0,n.useState)(S.mode),[N,E]=(0,n.useState)(S.n),[T,_]=(0,n.useState)(S.time),[M,P]=(0,n.useState)(t),[R,O]=(0,n.useState)(null),W=function(e,t,l,a){let[n,o]=l.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(o||0," ").concat(n||0," * * *");case"weekdays":return"".concat(o||0," ").concat(n||0," * * 1-5");default:return a}}(C,N,T,M);return(0,n.useEffect)(()=>{W!==t&&b({cron:W,timezone:l})},[W]),(0,n.useEffect)(()=>{let e=!1,t=setTimeout(()=>{y.P.previewSchedule(W,l).then(t=>{e||O(t)})},300);return()=>{e=!0,clearTimeout(t)}},[W,l]),(0,a.jsxs)(o.default,{children:[(0,a.jsxs)(o.default,{sx:{display:"flex",gap:2,flexWrap:"wrap",alignItems:"center",mt:1},children:[(0,a.jsxs)(r.A,{sx:{minWidth:180},children:[(0,a.jsx)(s.A,{id:"schedule-preset-label",children:A}),(0,a.jsxs)(i.A,{labelId:"schedule-preset-label",label:A,value:C,onChange:e=>I(e.target.value),children:[(0,a.jsx)(d.A,{value:"seconds",children:"Every N seconds"}),(0,a.jsx)(d.A,{value:"minutes",children:"Every N minutes"}),(0,a.jsx)(d.A,{value:"hours",children:"Every N hours"}),(0,a.jsx)(d.A,{value:"daily",children:"Daily at a time"}),(0,a.jsx)(d.A,{value:"weekdays",children:"Weekdays at a time"}),(0,a.jsx)(d.A,{value:"custom",children:"Custom (cron)"})]})]}),("seconds"===C||"minutes"===C||"hours"===C)&&(0,a.jsx)(c.A,{label:"seconds"===C?"Seconds":"minutes"===C?"Minutes":"Hours",type:"number",value:N,onChange:e=>E(Number(e.target.value)),inputProps:{min:1,max:"hours"===C?23:59},sx:{width:120}}),("daily"===C||"weekdays"===C)&&(0,a.jsx)(c.A,{label:"Time",type:"time",value:T,onChange:e=>_(e.target.value),sx:{width:150},InputLabelProps:{shrink:!0}}),"custom"===C&&(0,a.jsx)(c.A,{label:"Cron pattern",value:M,onChange:e=>P(e.target.value),sx:{minWidth:220},placeholder:"*/15 * * * *"})]}),R&&!R.valid&&(0,a.jsx)(u.A,{severity:"error",sx:{mt:2},children:R.error||"This schedule is not valid."}),R&&R.valid&&R.nextRuns.length>0&&(0,a.jsxs)(h.default,{variant:"body2",color:"text.secondary",sx:{mt:2},children:["Next: ",R.nextRuns.map(e=>new Date(e).toLocaleString()).join(" \xb7 ")]}),k&&(0,a.jsx)(m.A,{sx:{mt:1,display:"flex"},control:(0,a.jsx)(f.A,{checked:!0===j,onChange:e=>k(e.target.checked)}),label:"If FLUJO was closed at a scheduled time, run once on startup"}),(0,a.jsxs)(x.A,{disableGutters:!0,elevation:0,sx:{mt:1,"&:before":{display:"none"}},children:[(0,a.jsx)(p.A,{expandIcon:(0,a.jsx)(v.A,{}),sx:{px:0},children:(0,a.jsx)(h.default,{variant:"body2",color:"text.secondary",children:"Advanced"})}),(0,a.jsx)(g.A,{sx:{px:0},children:(0,a.jsxs)(o.default,{sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[(0,a.jsx)(c.A,{label:"Timezone (optional)",value:l||"",onChange:e=>b({cron:W,timezone:e.target.value||void 0}),placeholder:"e.g. Europe/Berlin",helperText:"IANA timezone name. Empty = this computer's timezone.",sx:{minWidth:260}}),(0,a.jsx)(c.A,{label:"Generated cron pattern",value:W,InputProps:{readOnly:"custom"!==C},onChange:e=>{I("custom"),P(e.target.value)},helperText:"Editing switches to Custom mode.",sx:{minWidth:220}})]})})]})]})}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[469],{23820:(t,e,r)=>{r.d(e,{Ay:()=>I});var o=r(12115),a=r(2821),n=r(57001),i=r(86251),s=r(48116),l=r(66964),d=r(16625),c=r(43850),u=r(69582),p=r(14028),m=r(85795),v=r(95195);function A(t){return(0,v.Ay)("MuiListItem",t)}(0,m.A)("MuiListItem",["root","container","dense","alignItemsFlexStart","divider","gutters","padding","secondaryAction"]);var g=r(58081);function f(t){return(0,v.Ay)("MuiListItemSecondaryAction",t)}(0,m.A)("MuiListItemSecondaryAction",["root","disableGutters"]);var h=r(95155);let y=(0,s.Ay)("div",{name:"MuiListItemSecondaryAction",slot:"Root",overridesResolver:(t,e)=>{let{ownerState:r}=t;return[e.root,r.disableGutters&&e.disableGutters]}})({position:"absolute",right:16,top:"50%",transform:"translateY(-50%)",variants:[{props:t=>{let{ownerState:e}=t;return e.disableGutters},style:{right:0}}]}),b=o.forwardRef(function(t,e){let r=(0,d.b)({props:t,name:"MuiListItemSecondaryAction"}),{className:i,...s}=r,l=o.useContext(p.A),c={...r,disableGutters:l.disableGutters},u=(t=>{let{disableGutters:e,classes:r}=t;return(0,n.A)({root:["root",e&&"disableGutters"]},f,r)})(c);return(0,h.jsx)(y,{className:(0,a.A)(u.root,i),ownerState:c,ref:e,...s})});b.muiName="ListItemSecondaryAction";let x=(0,s.Ay)("div",{name:"MuiListItem",slot:"Root",overridesResolver:(t,e)=>{let{ownerState:r}=t;return[e.root,r.dense&&e.dense,"flex-start"===r.alignItems&&e.alignItemsFlexStart,r.divider&&e.divider,!r.disableGutters&&e.gutters,!r.disablePadding&&e.padding,r.hasSecondaryAction&&e.secondaryAction]}})((0,l.A)(t=>{let{theme:e}=t;return{display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left",variants:[{props:t=>{let{ownerState:e}=t;return!e.disablePadding},style:{paddingTop:8,paddingBottom:8}},{props:t=>{let{ownerState:e}=t;return!e.disablePadding&&e.dense},style:{paddingTop:4,paddingBottom:4}},{props:t=>{let{ownerState:e}=t;return!e.disablePadding&&!e.disableGutters},style:{paddingLeft:16,paddingRight:16}},{props:t=>{let{ownerState:e}=t;return!e.disablePadding&&!!e.secondaryAction},style:{paddingRight:48}},{props:t=>{let{ownerState:e}=t;return!!e.secondaryAction},style:{["& > .".concat(g.A.root)]:{paddingRight:48}}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:t=>{let{ownerState:e}=t;return e.divider},style:{borderBottom:"1px solid ".concat((e.vars||e).palette.divider),backgroundClip:"padding-box"}},{props:t=>{let{ownerState:e}=t;return e.button},style:{transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}}},{props:t=>{let{ownerState:e}=t;return e.hasSecondaryAction},style:{paddingRight:48}}]}})),C=(0,s.Ay)("li",{name:"MuiListItem",slot:"Container",overridesResolver:(t,e)=>e.container})({position:"relative"}),I=o.forwardRef(function(t,e){let r=(0,d.b)({props:t,name:"MuiListItem"}),{alignItems:s="center",children:l,className:m,component:v,components:g={},componentsProps:f={},ContainerComponent:y="li",ContainerProps:{className:I,...R}={},dense:S=!1,disableGutters:M=!1,disablePadding:w=!1,divider:L=!1,secondaryAction:k,slotProps:j={},slots:N={},...O}=r,P=o.useContext(p.A),F=o.useMemo(()=>({dense:S||P.dense||!1,alignItems:s,disableGutters:M}),[s,P.dense,S,M]),G=o.useRef(null),B=o.Children.toArray(l),V=B.length&&(0,c.A)(B[B.length-1],["ListItemSecondaryAction"]),H={...r,alignItems:s,dense:F.dense,disableGutters:M,disablePadding:w,divider:L,hasSecondaryAction:V},T=(t=>{let{alignItems:e,classes:r,dense:o,disableGutters:a,disablePadding:i,divider:s,hasSecondaryAction:l}=t;return(0,n.A)({root:["root",o&&"dense",!a&&"gutters",!i&&"padding",s&&"divider","flex-start"===e&&"alignItemsFlexStart",l&&"secondaryAction"],container:["container"]},A,r)})(H),z=(0,u.A)(G,e),D=N.root||g.Root||x,X=j.root||f.root||{},_={className:(0,a.A)(T.root,X.className,m),...O},E=v||"li";return V?(E=_.component||v?E:"div","li"===y&&("li"===E?E="div":"li"===_.component&&(_.component="div")),(0,h.jsx)(p.A.Provider,{value:F,children:(0,h.jsxs)(C,{as:y,className:(0,a.A)(T.container,I),ref:z,ownerState:H,...R,children:[(0,h.jsx)(D,{...X,...!(0,i.A)(D)&&{as:E,ownerState:{...H,...X.ownerState}},..._,children:B}),B.pop()]})})):(0,h.jsx)(p.A.Provider,{value:F,children:(0,h.jsxs)(D,{...X,as:E,ref:z,...!(0,i.A)(D)&&{ownerState:{...H,...X.ownerState}},..._,children:[B,k&&(0,h.jsx)(b,{children:k})]})})})},29767:(t,e,r)=>{r.d(e,{A:()=>v});var o=r(12115),a=r(2821),n=r(57001),i=r(48116),s=r(16625),l=r(2300),d=r(85795),c=r(95195);function u(t){return(0,c.Ay)("MuiCard",t)}(0,d.A)("MuiCard",["root"]);var p=r(95155);let m=(0,i.Ay)(l.A,{name:"MuiCard",slot:"Root",overridesResolver:(t,e)=>e.root})({overflow:"hidden"}),v=o.forwardRef(function(t,e){let r=(0,s.b)({props:t,name:"MuiCard"}),{className:o,raised:i=!1,...l}=r,d={...r,raised:i},c=(t=>{let{classes:e}=t;return(0,n.A)({root:["root"]},u,e)})(d);return(0,p.jsx)(m,{className:(0,a.A)(c.root,o),elevation:i?8:void 0,ref:e,ownerState:d,...l})})},49501:(t,e,r)=>{r.d(e,{A:()=>m});var o=r(12115),a=r(2821),n=r(57001),i=r(48116),s=r(66964),l=r(16625),d=r(2319),c=r(14028),u=r(95155);let p=(0,i.Ay)("div",{name:"MuiListItemIcon",slot:"Root",overridesResolver:(t,e)=>{let{ownerState:r}=t;return[e.root,"flex-start"===r.alignItems&&e.alignItemsFlexStart]}})((0,s.A)(t=>{let{theme:e}=t;return{minWidth:56,color:(e.vars||e).palette.action.active,flexShrink:0,display:"inline-flex",variants:[{props:{alignItems:"flex-start"},style:{marginTop:8}}]}})),m=o.forwardRef(function(t,e){let r=(0,l.b)({props:t,name:"MuiListItemIcon"}),{className:i,...s}=r,m=o.useContext(c.A),v={...r,alignItems:m.alignItems},A=(t=>{let{alignItems:e,classes:r}=t;return(0,n.A)({root:["root","flex-start"===e&&"alignItemsFlexStart"]},d.f,r)})(v);return(0,u.jsx)(p,{className:(0,a.A)(A.root,i),ownerState:v,ref:e,...s})})},51611:(t,e,r)=>{r.d(e,{A:()=>n});var o=r(15485),a=r(95155);let n=(0,o.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"}),"Search")},53062:(t,e,r)=>{r.d(e,{A:()=>h});var o=r(12115),a=r(2821),n=r(57001),i=r(48116),s=r(66964),l=r(16625),d=r(85795),c=r(95195);function u(t){return(0,c.Ay)("MuiCardActionArea",t)}let p=(0,d.A)("MuiCardActionArea",["root","focusVisible","focusHighlight"]);var m=r(95070),v=r(77765),A=r(95155);let g=(0,i.Ay)(m.A,{name:"MuiCardActionArea",slot:"Root",overridesResolver:(t,e)=>e.root})((0,s.A)(t=>{let{theme:e}=t;return{display:"block",textAlign:"inherit",borderRadius:"inherit",width:"100%",["&:hover .".concat(p.focusHighlight)]:{opacity:(e.vars||e).palette.action.hoverOpacity,"@media (hover: none)":{opacity:0}},["&.".concat(p.focusVisible," .").concat(p.focusHighlight)]:{opacity:(e.vars||e).palette.action.focusOpacity}}})),f=(0,i.Ay)("span",{name:"MuiCardActionArea",slot:"FocusHighlight",overridesResolver:(t,e)=>e.focusHighlight})((0,s.A)(t=>{let{theme:e}=t;return{overflow:"hidden",pointerEvents:"none",position:"absolute",top:0,right:0,bottom:0,left:0,borderRadius:"inherit",opacity:0,backgroundColor:"currentcolor",transition:e.transitions.create("opacity",{duration:e.transitions.duration.short})}})),h=o.forwardRef(function(t,e){let r=(0,l.b)({props:t,name:"MuiCardActionArea"}),{children:o,className:i,focusVisibleClassName:s,slots:d={},slotProps:c={},...p}=r,m=(t=>{let{classes:e}=t;return(0,n.A)({root:["root"],focusHighlight:["focusHighlight"]},u,e)})(r),h={slots:d,slotProps:c},[y,b]=(0,v.A)("root",{elementType:g,externalForwardedProps:{...h,...p},shouldForwardComponentProp:!0,ownerState:r,ref:e,className:(0,a.A)(m.root,i),additionalProps:{focusVisibleClassName:(0,a.A)(s,m.focusVisible)}}),[x,C]=(0,v.A)("focusHighlight",{elementType:f,externalForwardedProps:h,ownerState:r,ref:e,className:m.focusHighlight});return(0,A.jsxs)(y,{...b,children:[o,(0,A.jsx)(x,{...C})]})})},58081:(t,e,r)=>{r.d(e,{A:()=>i,Y:()=>n});var o=r(85795),a=r(95195);function n(t){return(0,a.Ay)("MuiListItemButton",t)}let i=(0,o.A)("MuiListItemButton",["root","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","selected"])},73707:(t,e,r)=>{r.d(e,{A:()=>h});var o=r(12115),a=r(2821),n=r(57001),i=r(8532),s=r(48116),l=r(66964),d=r(16625),c=r(30424),u=r(95070),p=r(36766),m=r(69582),v=r(14028),A=r(58081),g=r(95155);let f=(0,s.Ay)(u.A,{shouldForwardProp:t=>(0,c.A)(t)||"classes"===t,name:"MuiListItemButton",slot:"Root",overridesResolver:(t,e)=>{let{ownerState:r}=t;return[e.root,r.dense&&e.dense,"flex-start"===r.alignItems&&e.alignItemsFlexStart,r.divider&&e.divider,!r.disableGutters&&e.gutters]}})((0,l.A)(t=>{let{theme:e}=t;return{display:"flex",flexGrow:1,justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minWidth:0,boxSizing:"border-box",textAlign:"left",paddingTop:8,paddingBottom:8,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},["&.".concat(A.A.selected)]:{backgroundColor:e.vars?"rgba(".concat(e.vars.palette.primary.mainChannel," / ").concat(e.vars.palette.action.selectedOpacity,")"):(0,i.X4)(e.palette.primary.main,e.palette.action.selectedOpacity),["&.".concat(A.A.focusVisible)]:{backgroundColor:e.vars?"rgba(".concat(e.vars.palette.primary.mainChannel," / calc(").concat(e.vars.palette.action.selectedOpacity," + ").concat(e.vars.palette.action.focusOpacity,"))"):(0,i.X4)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},["&.".concat(A.A.selected,":hover")]:{backgroundColor:e.vars?"rgba(".concat(e.vars.palette.primary.mainChannel," / calc(").concat(e.vars.palette.action.selectedOpacity," + ").concat(e.vars.palette.action.hoverOpacity,"))"):(0,i.X4)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?"rgba(".concat(e.vars.palette.primary.mainChannel," / ").concat(e.vars.palette.action.selectedOpacity,")"):(0,i.X4)(e.palette.primary.main,e.palette.action.selectedOpacity)}},["&.".concat(A.A.focusVisible)]:{backgroundColor:(e.vars||e).palette.action.focus},["&.".concat(A.A.disabled)]:{opacity:(e.vars||e).palette.action.disabledOpacity},variants:[{props:t=>{let{ownerState:e}=t;return e.divider},style:{borderBottom:"1px solid ".concat((e.vars||e).palette.divider),backgroundClip:"padding-box"}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:t=>{let{ownerState:e}=t;return!e.disableGutters},style:{paddingLeft:16,paddingRight:16}},{props:t=>{let{ownerState:e}=t;return e.dense},style:{paddingTop:4,paddingBottom:4}}]}})),h=o.forwardRef(function(t,e){let r=(0,d.b)({props:t,name:"MuiListItemButton"}),{alignItems:i="center",autoFocus:s=!1,component:l="div",children:c,dense:u=!1,disableGutters:h=!1,divider:y=!1,focusVisibleClassName:b,selected:x=!1,className:C,...I}=r,R=o.useContext(v.A),S=o.useMemo(()=>({dense:u||R.dense||!1,alignItems:i,disableGutters:h}),[i,R.dense,u,h]),M=o.useRef(null);(0,p.A)(()=>{s&&M.current&&M.current.focus()},[s]);let w={...r,alignItems:i,dense:S.dense,disableGutters:h,divider:y,selected:x},L=(t=>{let{alignItems:e,classes:r,dense:o,disabled:a,disableGutters:i,divider:s,selected:l}=t,d=(0,n.A)({root:["root",o&&"dense",!i&&"gutters",s&&"divider",a&&"disabled","flex-start"===e&&"alignItemsFlexStart",l&&"selected"]},A.Y,r);return{...r,...d}})(w),k=(0,m.A)(M,e);return(0,g.jsx)(v.A.Provider,{value:S,children:(0,g.jsx)(f,{ref:k,href:I.href||I.to,component:(I.href||I.to)&&"div"===l?"button":l,focusVisibleClassName:(0,a.A)(L.focusVisible,b),ownerState:w,className:(0,a.A)(L.root,C),...I,classes:L,children:c})})})},76530:(t,e,r)=>{r.d(e,{A:()=>n});var o=r(15485),a=r(95155);let n=(0,o.A)((0,a.jsx)("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"}),"Refresh")},84578:(t,e,r)=>{r.d(e,{A:()=>m});var o=r(12115),a=r(2821),n=r(57001),i=r(48116),s=r(16625),l=r(85795),d=r(95195);function c(t){return(0,d.Ay)("MuiCardContent",t)}(0,l.A)("MuiCardContent",["root"]);var u=r(95155);let p=(0,i.Ay)("div",{name:"MuiCardContent",slot:"Root",overridesResolver:(t,e)=>e.root})({padding:16,"&:last-child":{paddingBottom:24}}),m=o.forwardRef(function(t,e){let r=(0,s.b)({props:t,name:"MuiCardContent"}),{className:o,component:i="div",...l}=r,d={...r,component:i},m=(t=>{let{classes:e}=t;return(0,n.A)({root:["root"]},c,e)})(d);return(0,u.jsx)(p,{as:i,className:(0,a.A)(m.root,o),ownerState:d,ref:e,...l})})}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4740],{748:(e,t,r)=>{r.d(t,{kY:()=>s,Ic:()=>l});var a=r(26796),o=r(87021);let s={light:{background:"#FFFFFF",foreground:"#2C3E50",surface:"#F5F6FA",surfaceRaised:"#FFFFFF",paperBackground:"#F5F6FA",textSecondary:"#7F8C8D",textDisabled:"#9CA3AF",border:"#e5e7eb",heading:"#111",text:"#333",secondaryText:"#666",error:{background:"#fef2f2",border:"#fecaca",text:"#dc2626"},domain:{resource:"#009688",resourceSoft:"#4DB6AC",signal:"#7E57C2",startNode:"#795548",codeBackground:"#f5f5f5",http:{get:"#2e7d32",post:"#1565c0",put:"#e65100",patch:"#6a1b9a",delete:"#c62828"},transport:{stdio:{fg:"#1976d2",bg:"#e3f2fd"},websocket:{fg:"#2e7d32",bg:"#e8f5e8"},sse:{fg:"#f57c00",bg:"#fff3e0"},streamable:{fg:"#00796b",bg:"#e0f2f1"},default:{fg:"#757575",bg:"#f5f5f5"}}}},dark:{background:"#0f1319",foreground:"#eef1f5",surface:"#1a212b",surfaceRaised:"#242d3a",paperBackground:"#1a212b",textSecondary:"#b4bdca",textDisabled:"#6b7280",border:"#37404e",heading:"#f5f7fa",text:"#eef1f5",secondaryText:"#b4bdca",error:{background:"#2a1618",border:"#5a2a2e",text:"#ff6b6b"},domain:{resource:"#26a69a",resourceSoft:"#4DB6AC",signal:"#9575CD",startNode:"#a1887f",codeBackground:"#242d3a",http:{get:"#66bb6a",post:"#5b9dff",put:"#ffa726",patch:"#ba68c8",delete:"#ef5350"},transport:{stdio:{fg:"#90caf9",bg:"#1e2a3a"},websocket:{fg:"#a5d6a7",bg:"#1e2e22"},sse:{fg:"#ffcc80",bg:"#33281a"},streamable:{fg:"#80cbc4",bg:"#17322e"},default:{fg:"#b4bdca",bg:"#242d3a"}}}}},n=(0,o.h)("frontend/utils/theme");function l(){let{isDarkMode:e}=(0,a.useTheme)();return n.debug("useThemeUtils called with isDarkMode: ".concat(e)),{getThemeValue:(t,r)=>e?r:t,getThemeColor:t=>{let r=t.split("."),a=s[e?"dark":"light"];for(let e of r)if(!a||"object"!=typeof a||!(e in a))return n.warn("Theme color path not found: ".concat(t)),"";else a=a[e];return a},colors:e?s.dark:s.light,isDarkMode:e}}},17427:(e,t,r)=>{r.d(t,{A:()=>f});var a=r(95155),o=r(12115),s=r(25635),n=r(94049),l=r(99944),i=r(9957),c=r(52641),d=r(95436),u=r(55606),p=r(86973),h=r(9562);let f=e=>{var t;let{schema:r,values:f,onChange:m,size:x="small"}=e,[b,g]=(0,o.useState)({}),y=null!=(t=null==r?void 0:r.properties)?t:{},v=Array.isArray(null==r?void 0:r.required)?r.required:[],j=Object.keys(y);if(0===j.length)return(0,a.jsx)(s.default,{variant:"body2",color:"text.secondary",children:"This tool takes no parameters."});let k=(e,t)=>{let r={...f};void 0===t?delete r[e]:r[e]=t,m(r)};return(0,a.jsx)(n.default,{sx:{display:"flex",flexDirection:"column",gap:2},children:j.map(e=>{var t,r;let o=null!=(t=y[e])?t:{},m=v.includes(e)?"".concat(e," *"):e,j="string"==typeof o.description?o.description:"";if("boolean"===o.type)return(0,a.jsx)(l.A,{control:(0,a.jsx)(i.A,{size:x,checked:!0===f[e],onChange:t=>k(e,t.target.checked)}),label:(0,a.jsxs)(n.default,{children:[(0,a.jsx)(s.default,{variant:"body2",children:m}),j&&(0,a.jsx)(s.default,{variant:"caption",color:"text.secondary",children:j})]})},e);if(Array.isArray(o.enum)&&o.enum.length>0){let t=f[e];return(0,a.jsxs)(c.A,{size:x,fullWidth:!0,children:[(0,a.jsx)(d.A,{id:"schema-param-".concat(e),children:m}),(0,a.jsx)(u.A,{labelId:"schema-param-".concat(e),label:m,value:o.enum.includes(t)?t:"",onChange:t=>k(e,t.target.value),children:o.enum.map(e=>(0,a.jsx)(p.A,{value:e,children:String(e)},String(e)))}),j&&(0,a.jsx)(s.default,{variant:"caption",color:"text.secondary",sx:{mt:.5,mx:1.75},children:j})]},e)}if("number"===o.type||"integer"===o.type)return(0,a.jsx)(h.A,{fullWidth:!0,size:x,type:"number",label:m,value:void 0!==f[e]?String(f[e]):"",onChange:t=>{let r=t.target.value;if(""===r)return void k(e,void 0);let a="integer"===o.type?parseInt(r,10):parseFloat(r);k(e,Number.isNaN(a)?void 0:a)},helperText:j},e);if("object"===o.type||"array"===o.type){let t=null!=(r=b[e])?r:void 0!==f[e]?JSON.stringify(f[e],null,2):"",s=null;if(t.trim())try{JSON.parse(t)}catch(e){s="Not valid JSON yet"}return(0,a.jsx)(h.A,{fullWidth:!0,size:x,multiline:!0,minRows:2,label:"".concat(m," (JSON ").concat(o.type,")"),value:t,error:!!s,helperText:null!=s?s:j,onChange:t=>{let r=t.target.value;if(g(t=>({...t,[e]:r})),!r.trim())return void k(e,void 0);try{k(e,JSON.parse(r))}catch(e){}},slotProps:{input:{sx:{fontFamily:"monospace",fontSize:13}}}},e)}return(0,a.jsx)(h.A,{fullWidth:!0,size:x,label:m,value:void 0!==f[e]?String(f[e]):"",onChange:t=>k(e,""===t.target.value?void 0:t.target.value),helperText:j},e)})})}},26796:(e,t,r)=>{r.r(t),r.d(t,{ThemeProvider:()=>h,useTheme:()=>f});var a=r(95155),o=r(12115),s=r(87021),n=r(7160),l=r(29197),i=r(748),c=r(84563),d=r(29692);let u=(0,s.h)("frontend/contexts/ThemeContext"),p=(0,o.createContext)(void 0),h=e=>{let{children:t}=e,[r,s]=(0,o.useState)(!1),[h,f]=(0,o.useState)(!1);(0,o.useEffect)(()=>{(async()=>{u.debug("Loading theme preference from storage");let e=await (0,d.YM)(d.Zg.THEME,"light");u.info("Theme loaded from storage: ".concat(e));let t="dark"===e;f(t),t?document.documentElement.classList.add("dark-theme"):document.documentElement.classList.remove("dark-theme"),s(!0)})()},[]);let m=(0,o.useMemo)(()=>(function(e){let t="dark"===e?i.kY.dark:i.kY.light,r="dark"===e;return(0,l.A)({palette:{mode:e,primary:{main:r?"#4f93f5":"#007bff",light:r?"#6aa6f7":"#3395ff",dark:r?"#3a7ad4":"#0056b3"},secondary:{main:r?"#a3adba":"#6c757d"},error:{main:r?"#ff6b6b":"#dc2626",light:r?"#5a2a2e":"#fecaca",dark:r?"#2a1618":"#b91c1c"},warning:{main:r?"#e0a23c":"#f59e0b"},info:{main:r?"#56b6d6":"#3b82f6"},success:{main:r?"#3fae72":"#16a34a"},divider:t.border,background:{default:t.background,paper:t.surface},text:{primary:t.foreground,secondary:t.textSecondary,disabled:t.textDisabled}},typography:{fontFamily:"var(--font-geist-sans), Arial, sans-serif",h1:{fontWeight:700},h2:{fontWeight:700},h3:{fontWeight:600},h4:{fontWeight:600},h5:{fontWeight:600},h6:{fontWeight:600}},components:{MuiButton:{styleOverrides:{root:{textTransform:"none",borderRadius:"0.375rem"}}},MuiPaper:{styleOverrides:{root:{borderRadius:"0.5rem",backgroundImage:"none"}}},MuiTextField:{styleOverrides:{root:{"& .MuiOutlinedInput-root":{borderRadius:"0.375rem"}}}},MuiCard:{styleOverrides:{root:{borderRadius:"0.5rem",border:r?"1px solid ".concat(t.border):void 0,boxShadow:r?"0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -1px rgba(0, 0, 0, 0.3)":"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)"}}},MuiMenu:{styleOverrides:{paper:{backgroundColor:t.surfaceRaised,backgroundImage:"none"}}},MuiPopover:{styleOverrides:{paper:{backgroundColor:t.surfaceRaised,backgroundImage:"none"}}},MuiTooltip:{styleOverrides:{tooltip:r?{backgroundColor:t.surfaceRaised,border:"1px solid ".concat(t.border),color:t.foreground}:void 0}}}})})(h?"dark":"light"),[h]);return u.debug("Rendering ThemeProvider with isDarkMode: ".concat(h)),(0,a.jsx)(p.Provider,{value:{toggleTheme:()=>{f(e=>{let t=!e,r=t?"dark":"light";return u.info("Toggling theme to: ".concat(r)),t?document.documentElement.classList.add("dark-theme"):document.documentElement.classList.remove("dark-theme"),(0,d.VH)(d.Zg.THEME,r),t})},isDarkMode:h},children:(0,a.jsxs)(n.A,{theme:m,children:[(0,a.jsx)(c.Ay,{}),t]})})},f=()=>{let e=(0,o.useContext)(p);if(!e)throw u.error("useTheme hook used outside of ThemeProvider"),Error("useTheme must be used within a ThemeProvider");return u.debug("useTheme hook accessed"),e}},40962:(e,t,r)=>{r.d(t,{A:()=>ef});var a=r(95155),o=r(12115),s=r(87021),n=r(748),l=r(36741),i=r(12857),c=r(48563),d=r(76530),u=r(14915),p=r(4484),h=r(80412),f=r(13548),m=r(20099),x=r(11414),b=r(26188),g=r(52277),y=r(59652),v=r(89296),j=r(97714),k=r(62291),A=r(47529),S=r(94929),w=r(81956),C=r(17897),O=r(70272),z=r(79299),T=r(28548),F=r(67891),P=r(84318),E=r(4543),U=r(8415);let R=e=>{let{transport:t,size:r="small"}=e,{colors:o}=(0,n.Ic)(),s=o.domain.transport,l=(()=>{switch(t){case"stdio":return{label:"STDIO",icon:(0,a.jsx)(F.A,{fontSize:"small"}),color:s.stdio.fg,bgColor:s.stdio.bg};case"websocket":return{label:"WebSocket",icon:(0,a.jsx)(P.A,{fontSize:"small"}),color:s.websocket.fg,bgColor:s.websocket.bg};case"sse":return{label:"SSE",icon:(0,a.jsx)(E.A,{fontSize:"small"}),color:s.sse.fg,bgColor:s.sse.bg};case"streamable":return{label:"HTTP Stream",icon:(0,a.jsx)(U.A,{fontSize:"small"}),color:s.streamable.fg,bgColor:s.streamable.bg};default:return{label:"UNKNOWN",icon:(0,a.jsx)(F.A,{fontSize:"small"}),color:s.default.fg,bgColor:s.default.bg}}})();return(0,a.jsx)(T.A,{icon:l.icon,label:l.label,size:r,sx:{backgroundColor:l.bgColor,color:l.color,fontWeight:500,fontSize:"small"===r?"0.75rem":"0.875rem",height:"small"===r?24:32,"& .MuiChip-icon":{color:l.color}}})};var N=r(2778),W=r(52363),I=r(65036),M=r(75912),D=r(91871),B=r(94049),J=r(25635),_=r(22003),L=r(99944),H=r(22822),q=r(41602),Y=r(23820),$=r(49501),K=r(17681),Q=r(16186),V=r(80411),Z=r(86631);let G=(0,s.h)("frontend/components/mcp/MCPServerManager/ServerUpdateDialog"),X=e=>{let{open:t,onClose:r,serverName:s,rootPath:n,installCommand:i,buildCommand:d,enabled:u,updateInfo:p,onToggle:h,onUpdated:f}=e,[m,x]=(0,o.useState)(null),[b,g]=(0,o.useState)(!1),[y,v]=(0,o.useState)(!1),[k,A]=(0,o.useState)(!1),[w,C]=(0,o.useState)(null),[O,z]=(0,o.useState)({}),[F,P]=(0,o.useState)(""),E=!!(i&&i.trim()),U=!!(d&&d.trim()),R=[{key:"stop",label:"Stop server",active:u},{key:"pull",label:"Pull latest changes",active:!0},{key:"install",label:"Install dependencies (".concat(i,")"),active:E},{key:"build",label:"Build (".concat(d,")"),active:U},{key:"restart",label:"Restart server",active:u}];(0,o.useEffect)(()=>{t&&(g(!1),v(!1),A(!1),C(null),z({}),P(""))},[t,s]),(0,o.useEffect)(()=>{if(t&&p.remoteUrl&&p.localSha&&p.remoteSha){let e=!1;return(0,V.Qz)(p.remoteUrl,p.localSha,p.remoteSha).then(t=>{e||x(t)}),()=>{e=!0}}x(null)},[t,p.remoteUrl,p.localSha,p.remoteSha]);let X=(0,o.useCallback)((e,t)=>{z(r=>({...r,[e]:t}))},[]),ee=(0,o.useCallback)((e,t)=>{P(r=>r+(r?"\n":"")+"--- ".concat(e," ---\n")+(t||"").trim()+"\n")},[]),et=async()=>{v(!0),C(null),G.info("Starting update for server ".concat(s));let e=(e,t)=>{X(e,"error"),C(t),v(!1)};try{u&&(X("stop","running"),await Promise.resolve(h(!1)),X("stop","done")),X("pull","running");let t=await (0,V.Qv)(n);if(!t.success)return void e("pull",t.error||"Failed to pull updates");if(ee("Pull","Updated ".concat((0,V.Fu)(t.oldSha)," -> ").concat((0,V.Fu)(t.newSha))),X("pull","done"),E){X("install","running");let t=await (0,Z.b)(n,i.trim());if(ee("Install",t.output),!t.success)return void e("install",t.message.text);X("install","done")}if(U){X("build","running");let t=await (0,Z.c)(n,d.trim());if(ee("Build",t.output),!t.success)return void e("build",t.message.text);X("build","done")}u&&(X("restart","running"),await Promise.resolve(h(!0)),X("restart","done")),G.info("Update completed for server ".concat(s)),A(!0),v(!1),null==f||f()}catch(e){G.error("Update failed for server ".concat(s),e),C(e.message||"Update failed"),v(!1)}},er=y||k||Object.keys(O).length>0,ea=p.hasLocalChanges&&!b;return(0,a.jsxs)(N.A,{open:t,onClose:y?void 0:r,maxWidth:"sm",fullWidth:!0,onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)(W.A,{component:"div",sx:{display:"flex",alignItems:"center",gap:1},children:[(0,a.jsx)(j.A,{color:"primary"}),"Update ",s]}),(0,a.jsxs)(I.A,{children:[(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:1,flexWrap:"wrap"},children:[(0,a.jsx)(T.A,{size:"small",label:(0,V.Fu)(p.localSha),sx:{fontFamily:"monospace"}}),(0,a.jsx)(J.default,{variant:"body2",color:"text.secondary",children:"→"}),(0,a.jsx)(T.A,{size:"small",color:"primary",label:(0,V.Fu)(p.remoteSha),sx:{fontFamily:"monospace"}}),p.branch&&"HEAD"!==p.branch&&(0,a.jsxs)(J.default,{variant:"body2",color:"text.secondary",children:["on ",(0,a.jsx)("code",{children:p.branch})]}),(null==m?void 0:m.behindBy)!=null&&(0,a.jsxs)(J.default,{variant:"body2",color:"text.secondary",children:["(",m.behindBy," commit",1===m.behindBy?"":"s"," behind)"]})]}),p.repoRoot&&p.repoRoot.replace(/\\/g,"/").replace(/\/+$/,"").toLowerCase()!==n.replace(/\\/g,"/").replace(/\/+$/,"").toLowerCase()&&(0,a.jsxs)(J.default,{variant:"body2",color:"text.secondary",sx:{mb:1},children:["This server lives inside a larger repository — the update pulls"," ",(0,a.jsx)("code",{children:p.repoRoot})," as a whole (other servers from the same repository are updated along with it)."]}),m&&m.commits.length>0&&!er&&(0,a.jsx)(B.default,{sx:{mb:2,p:1,borderRadius:1,border:"1px solid",borderColor:"divider",maxHeight:160,overflow:"auto"},children:m.commits.map(e=>(0,a.jsxs)(J.default,{variant:"body2",sx:{fontSize:"0.8rem"},noWrap:!0,title:e.message,children:[(0,a.jsx)("code",{children:e.sha})," ",e.message]},e.sha))}),p.hasLocalChanges&&!er&&(0,a.jsxs)(_.A,{severity:"warning",sx:{mb:2},children:[(0,a.jsxs)(J.default,{variant:"body2",sx:{mb:1},children:["This repository has local changes to tracked files. Updating will ",(0,a.jsx)("strong",{children:"discard"})," them. Untracked files (e.g. a ",(0,a.jsx)("code",{children:".env"})," you created) and all FLUJO settings for this server are kept."]}),(0,a.jsx)(B.default,{component:"ul",sx:{m:0,pl:3,maxHeight:100,overflow:"auto"},children:p.dirtyFiles.map(e=>(0,a.jsx)("li",{children:(0,a.jsx)(J.default,{variant:"body2",component:"span",sx:{fontFamily:"monospace",fontSize:"0.8rem"},children:e})},e))}),(0,a.jsx)(L.A,{sx:{mt:1},control:(0,a.jsx)(H.A,{size:"small",checked:b,onChange:e=>g(e.target.checked)}),label:(0,a.jsx)(J.default,{variant:"body2",children:"Discard my local changes and update"})})]}),(0,a.jsx)(q.A,{dense:!0,disablePadding:!0,children:R.filter(e=>e.active).map(e=>(0,a.jsxs)(Y.Ay,{disableGutters:!0,sx:{py:.25},children:[(0,a.jsx)($.A,{sx:{minWidth:32},children:(e=>{switch(e){case"running":return(0,a.jsx)(S.default,{size:"small",color:"primary"});case"done":return(0,a.jsx)(l.A,{color:"success",fontSize:"small"});case"error":return(0,a.jsx)(c.A,{color:"error",fontSize:"small"});default:return(0,a.jsx)(Q.A,{color:"disabled",fontSize:"small"})}})(O[e.key])}),(0,a.jsx)(K.A,{primary:e.label,primaryTypographyProps:{variant:"body2",noWrap:!0,title:e.label}})]},e.key))}),w&&(0,a.jsxs)(_.A,{severity:"error",sx:{mt:2,whiteSpace:"pre-wrap"},children:[w,u&&(0,a.jsx)(J.default,{variant:"body2",sx:{mt:1},children:"The server was left stopped. Adjust the install/build commands via Edit, then re-enable it."})]}),k&&(0,a.jsxs)(_.A,{severity:"success",sx:{mt:2},children:["Server updated successfully",u?" and restarted":"","."]}),F&&(0,a.jsx)(B.default,{sx:{mt:2,p:1,borderRadius:1,bgcolor:"background.paper",border:"1px solid",borderColor:"divider",fontFamily:"monospace",fontSize:"0.75rem",whiteSpace:"pre-wrap",overflow:"auto",maxHeight:200},children:F})]}),(0,a.jsxs)(M.A,{children:[(0,a.jsx)(D.A,{onClick:r,disabled:y,children:k?"Close":"Cancel"}),!k&&(0,a.jsx)(D.A,{variant:"contained",color:"primary",startIcon:(0,a.jsx)(j.A,{}),onClick:et,disabled:y||ea,children:y?"Updating…":w?"Retry Update":"Update"})]})]})};var ee=r(9562),et=r(41983),er=r(86946);let ea=(0,s.h)("frontend/components/mcp/MCPServerManager/FilesystemRootsModal"),eo=e=>{let{open:t,serverName:r,initialRoots:s,onClose:n,onSaved:l}=e,[i,c]=(0,o.useState)([]),[d,u]=(0,o.useState)(""),[h,f]=(0,o.useState)(!1),[m,x]=(0,o.useState)(null),b="bash"===r;(0,o.useEffect)(()=>{t&&(c(Array.isArray(s)?[...s]:[]),u(""),x(null))},[t,s]);let g=()=>{let e=d.trim();if(e){if(i.includes(e))return void x("That root is already in the list.");c(t=>[...t,e]),u(""),x(null)}},y=async()=>{f(!0),x(null);try{let e=await C.S.updateServerConfig(r,{roots:i});if(e&&"error"in e&&e.error)return void x("string"==typeof e.error?e.error:"Failed to save roots.");ea.info("Saved ".concat(i.length," root(s) for ").concat(r)),null==l||l(i),n()}catch(e){ea.warn("Failed to save filesystem roots",e),x(e instanceof Error?e.message:"Failed to save roots.")}finally{f(!1)}};return(0,a.jsxs)(N.A,{open:t,onClose:n,maxWidth:"sm",fullWidth:!0,onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)(W.A,{children:["Configure ",r," roots"]}),(0,a.jsxs)(I.A,{children:[(0,a.jsxs)(J.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:["Confine the built-in ",(0,a.jsx)("b",{children:r})," server to these folders. Leave the list empty for full host access (unless the ",(0,a.jsx)("code",{children:b?"FLUJO_BASH_ROOTS":"FLUJO_FS_ROOTS"})," environment variable is set, which always acts as a hard ceiling)."]}),b&&(0,a.jsxs)(_.A,{severity:"info",sx:{mb:2},children:["The bash ",(0,a.jsx)("code",{children:"cwd"})," fence is best-effort: a shell can still ",(0,a.jsx)("code",{children:"cd"})," elsewhere or use absolute paths, so ",(0,a.jsx)("code",{children:"FLUJO_FS_ROOTS"}),"/",(0,a.jsx)("code",{children:"FLUJO_BASH_ROOTS"})," and OS permissions remain the real boundary."]}),m&&(0,a.jsx)(_.A,{severity:"error",sx:{mb:2},onClose:()=>x(null),children:m}),(0,a.jsxs)(B.default,{sx:{display:"flex",gap:1,mb:1},children:[(0,a.jsx)(ee.A,{fullWidth:!0,size:"small",label:"Add a root folder (absolute path)",value:d,onChange:e=>u(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),g())},placeholder:"e.g. C:\\\\Users\\\\me\\\\project or /home/me/project"}),(0,a.jsx)(D.A,{variant:"outlined",startIcon:(0,a.jsx)(er.A,{}),onClick:g,disabled:!d.trim(),children:"Add"})]}),0===i.length?(0,a.jsx)(J.default,{variant:"body2",color:"text.secondary",sx:{mt:1},children:"No roots configured — the server has full host access."}):(0,a.jsx)(q.A,{dense:!0,children:i.map((e,t)=>(0,a.jsx)(Y.Ay,{secondaryAction:(0,a.jsx)(et.A,{edge:"end","aria-label":"remove root",onClick:()=>{c(e=>e.filter((e,r)=>r!==t))},children:(0,a.jsx)(p.A,{fontSize:"small"})}),children:(0,a.jsx)(J.default,{variant:"body2",sx:{wordBreak:"break-all"},children:e})},"".concat(e,"-").concat(t)))})]}),(0,a.jsxs)(M.A,{children:[(0,a.jsx)(D.A,{onClick:n,disabled:h,children:"Cancel"}),(0,a.jsx)(D.A,{onClick:y,variant:"contained",disabled:h,children:h?"Saving…":"Save"})]})]})};var es=r(80422),en=r(33567),el=r(29767),ei=r(78470),ec=r(8532),ed=r(84578),eu=r(9957),ep=r(1702);let eh=(0,s.h)("frontend/components/mcp/MCPServerManager/ServerCard"),ef=e=>{let{name:t,status:s,path:F,enabled:P,transport:E,onToggle:U=()=>{},onRetry:L=()=>{},onDelete:q=()=>{},onClick:Y,onEdit:$=()=>{},onAuthenticate:K,pickerMode:Q=!1,error:Z,stderrOutput:G,authorizationUrl:ee,selected:er=!1,onSelect:ea,selectionMode:ef=!1,hasOAuthTokens:em=!1,exposeAsMcpServer:ex=!1,enableMcpApps:eb=!1,updateInfo:eg,installCommand:ey,buildCommand:ev,onUpdated:ej,folder:ek,folders:eA=[],onSetFolder:eS,favorite:ew=!1,onToggleFavorite:eC,builtIn:eO=!1,serverConfig:ez}=e,[eT,eF]=(0,o.useState)(!1),[eP,eE]=(0,o.useState)(null),[eU,eR]=(0,o.useState)(!1),[eN,eW]=(0,o.useState)(!1),[eI,eM]=(0,o.useState)(""),[eD,eB]=(0,o.useState)("success"),[eJ,e_]=(0,o.useState)(!1),[eL,eH]=(0,o.useState)(!1),[eq,eY]=(0,o.useState)(!1),[e$,eK]=(0,o.useState)(null==ez?void 0:ez.roots);(0,o.useEffect)(()=>{eK(null==ez?void 0:ez.roots)},[null==ez?void 0:ez.roots]);let[eQ,eV]=(0,o.useState)(ex),[eZ,eG]=(0,o.useState)(eb),eX=(0,en.A)();(0,o.useEffect)(()=>{eV(ex)},[ex]),(0,o.useEffect)(()=>{eG(eb)},[eb]);let e0="".concat(window.location.origin,"/mcp-proxy/").concat(encodeURIComponent(t)),e1=async e=>{eV(e);let r=await C.S.updateServerConfig(t,{exposeAsMcpServer:e});"success"in r&&r.success?(eM(e?"Server is now exposed to external apps.":"Server is no longer exposed."),eB("success")):(eV(!e),eM("Failed to update exposure setting."),eB("error")),eW(!0)},e2=async e=>{eG(e);let r=await C.S.updateServerConfig(t,{enableMcpApps:e});"success"in r&&r.success?(eM(e?"This server may now render interactive apps in chat (sandboxed).":"Interactive apps disabled for this server."),eB("success")):(eG(!e),eM("Failed to update the MCP Apps setting."),eB("error")),eW(!0)},e5=()=>{navigator.clipboard.writeText(e0),eM("Endpoint URL copied to clipboard."),eB("success"),eW(!0)},e6=()=>{let e=window.location.origin;navigator.clipboard.writeText((0,O.CZ)(t,ez,e)),eM("Server JSON copied to clipboard."),eB("success"),eW(!0)},e7={connected:"success.main",disconnected:"text.secondary",error:"error.main",connecting:"info.main",initialization:"info.main",requires_authentication:"warning.main"}[s];(0,o.useEffect)(()=>{if(("connecting"===s||"initialization"===s)&&P&&!Q){e_(!0);let e=setTimeout(()=>{eh.debug("Polling status for server: ".concat(t)),L()},2e3);return()=>{clearTimeout(e),e_(!1)}}"connecting"!==s&&"initialization"!==s&&e_(!1)},[s,P,t,L]);let[e4,e8]=(0,o.useState)(null);(0,o.useEffect)(()=>()=>{e4&&clearTimeout(e4)},[e4]);let e9=async e=>{e.stopPropagation(),eh.debug("Reset OAuth tokens button clicked for server: ".concat(t)),eH(!0);try{let e=await fetch("/api/oauth/reset",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverName:t})});if(!e.ok){let t=await e.json();throw Error(t.error||"Failed to reset OAuth tokens")}let r=await e.json();eh.info("OAuth tokens reset successfully for ".concat(t),r),eM("OAuth tokens reset successfully. Server will require re-authentication."),eB("success"),eW(!0),setTimeout(()=>{L()},500)}catch(e){eh.error("Failed to reset OAuth tokens for ".concat(t),e),eM("Failed to reset OAuth tokens: ".concat(e instanceof Error?e.message:"Unknown error")),eB("error"),eW(!0)}finally{eH(!1)}},{getThemeValue:e3,getThemeColor:te,colors:tt}=(0,n.Ic)(),tr=()=>{eh.debug("Server restart initiated for: ".concat(t)),U(!1),setTimeout(()=>{U(!0),eh.info("Server ".concat(t," restarted"))},1e3)};return(0,a.jsxs)(el.A,{role:Q?"button":void 0,"aria-pressed":Q?er:void 0,sx:{cursor:"pointer",position:"relative",height:Q?"100%":void 0,transition:"box-shadow 0.3s ease, border-color 0.12s ease",border:e=>Q&&er?"2px solid ".concat(e.palette.primary.main):"2px solid transparent","&:hover":{boxShadow:3}},onClick:()=>{eh.debug("Server card clicked: ".concat(t)),Y()},children:[eC&&!eO&&(0,a.jsx)(ei.A,{title:ew?"Remove from favorites":"Add to favorites",arrow:!0,placement:"top",children:(0,a.jsx)(et.A,{size:"small","aria-label":ew?"remove from favorites":"add to favorites",onClick:e=>{e.stopPropagation(),eC()},sx:{position:"absolute",top:4,left:4,zIndex:2,color:ew?eX.palette.warning.main:eX.palette.text.secondary,backgroundColor:(0,ec.X4)(eX.palette.background.paper,.6),"&:hover":{backgroundColor:(0,ec.X4)(eX.palette.background.paper,.9)}},children:ew?(0,a.jsx)(k.A,{fontSize:"small"}):(0,a.jsx)(A.A,{fontSize:"small"})})}),(0,a.jsxs)(ed.A,{sx:{pb:1},children:[(0,a.jsxs)(B.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",mb:1},children:[(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center",flex:1},children:[ef&&ea&&(0,a.jsx)(H.A,{checked:er,onClick:e=>e.stopPropagation(),onChange:e=>ea(e.target.checked),size:"small",sx:{mr:1,p:.5}}),(0,a.jsx)(J.default,{variant:"h6",component:"h3",sx:{flex:1},children:t})]}),(0,a.jsxs)(B.default,{sx:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:.5},children:[(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(null==eg?void 0:eg.updateAvailable)&&(0,a.jsx)(ei.A,{title:"Update available: ".concat((0,V.Fu)(eg.localSha)," → ").concat((0,V.Fu)(eg.remoteSha),". Click to update."),children:(0,a.jsx)(T.A,{icon:(0,a.jsx)(j.A,{}),label:"Update",color:"warning",size:"small",onClick:e=>{e.stopPropagation(),eh.debug("Update badge clicked for server: ".concat(t)),eR(!0)}})}),eO?(0,a.jsx)(ei.A,{title:"FLUJO's built-in server — can be enabled or disabled below, but not edited or removed.",children:(0,a.jsx)(T.A,{label:"Built-in",color:"primary",size:"small"})}):(0,a.jsx)(R,{transport:E,size:"small"})]}),(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center"},children:["connected"===s&&(0,a.jsx)(l.A,{color:"success",sx:{mr:.5},fontSize:"small"}),"disconnected"===s&&(0,a.jsx)(i.A,{color:"action",sx:{mr:.5},fontSize:"small"}),"error"===s&&(0,a.jsx)(c.A,{color:"error",sx:{mr:.5},fontSize:"small"}),"requires_authentication"===s&&(0,a.jsx)(h.A,{color:"warning",sx:{mr:.5},fontSize:"small"}),("connecting"===s||"initialization"===s)&&(0,a.jsx)(S.default,{size:"small",color:"primary",sx:{mr:.5}}),(0,a.jsx)(J.default,{variant:"body2",color:e7,children:"requires_authentication"===s?"Requires Authentication":s})]})]})]}),(0,a.jsx)(J.default,{variant:"body2",color:"text.secondary",sx:{mb:1,fontSize:"0.875rem"},noWrap:!0,title:eO?void 0:F,children:eO?"FLUJO's own backend API — flow authoring, execution and server management as MCP tools.":F}),eO&&!Q&&(0,a.jsxs)(B.default,{sx:{mt:1,mb:1,p:1,borderRadius:1,border:"1px solid",borderColor:"divider"},onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center"},children:[(0,a.jsx)(x.A,{fontSize:"small",sx:{mr:.5,color:"primary.main"}}),(0,a.jsx)(ei.A,{title:"External MCP clients (Claude Code, Claude Desktop, Cursor, …) can drive FLUJO through this local endpoint.",children:(0,a.jsx)(J.default,{variant:"body2",sx:{fontWeight:500},children:"Exposed to external apps"})})]}),(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center",mt:.5},children:[(0,a.jsx)(J.default,{variant:"caption",sx:{flex:1,fontFamily:"monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e0,children:e0}),(0,a.jsx)(ei.A,{title:"Copy endpoint URL",children:(0,a.jsx)(et.A,{size:"small",onClick:e5,children:(0,a.jsx)(g.A,{fontSize:"small"})})}),(0,a.jsx)(ei.A,{title:"Copy MCP server JSON",children:(0,a.jsx)(et.A,{size:"small",onClick:e6,children:(0,a.jsx)(y.A,{fontSize:"small"})})})]})]}),!eO&&!Q&&(0,a.jsxs)(B.default,{sx:{mt:1,mb:1,p:1,borderRadius:1,border:"1px solid",borderColor:"divider"},onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center"},children:[(0,a.jsx)(x.A,{fontSize:"small",sx:{mr:.5,color:eQ?"primary.main":"text.disabled"}}),(0,a.jsx)(eu.A,{checked:eQ,onChange:e=>e1(e.target.checked),size:"small"}),(0,a.jsx)(ei.A,{title:"Re-expose this server's tools to external MCP clients (Claude Desktop, Cursor, …) at a local URL.",children:(0,a.jsx)(J.default,{variant:"body2",sx:{fontWeight:500},children:"Expose to external apps"})})]}),eQ&&(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center",mt:.5},children:[(0,a.jsx)(J.default,{variant:"caption",sx:{flex:1,fontFamily:"monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e0,children:e0}),(0,a.jsx)(ei.A,{title:"Copy endpoint URL",children:(0,a.jsx)(et.A,{size:"small",onClick:e5,children:(0,a.jsx)(g.A,{fontSize:"small"})})}),(0,a.jsx)(ei.A,{title:"Copy MCP server JSON",children:(0,a.jsx)(et.A,{size:"small",onClick:e6,children:(0,a.jsx)(y.A,{fontSize:"small"})})})]})]}),!eO&&!Q&&(0,a.jsx)(B.default,{sx:{mt:1,mb:1,p:1,borderRadius:1,border:"1px solid",borderColor:"divider"},onClick:e=>e.stopPropagation(),children:(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center"},children:[(0,a.jsx)(b.A,{fontSize:"small",sx:{mr:.5,color:eZ?"primary.main":"text.disabled"}}),(0,a.jsx)(eu.A,{checked:eZ,onChange:e=>e2(e.target.checked),size:"small"}),(0,a.jsx)(ei.A,{title:"Allow this server's tools to render interactive apps (MCP Apps / ui:// resources) in chat. Rendered read-only in a strict sandbox. Only enable for servers you trust.",children:(0,a.jsx)(J.default,{variant:"body2",sx:{fontWeight:500},children:"Render interactive apps"})})]})}),"error"===s&&(0,a.jsxs)(B.default,{sx:{mt:1,mb:1},children:[(0,a.jsxs)(B.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:.5},children:[(0,a.jsx)(J.default,{variant:"body2",fontWeight:"medium",color:"error",children:"Error:"}),(0,a.jsx)(D.A,{size:"small",color:"primary",onClick:e=>{e.stopPropagation(),eh.debug("View full error clicked for server: ".concat(t)),eF(!0)},children:"View Full Error"})]}),(0,a.jsx)(B.default,{sx:{maxHeight:"80px",overflow:"auto",p:1,borderRadius:1,bgcolor:e=>te("error.background"),color:e=>te("error.text"),border:"1px solid",borderColor:e=>te("error.border"),fontSize:"0.75rem",fontWeight:500,whiteSpace:"pre-wrap"},children:Z||"Unknown error"})]}),"requires_authentication"===s&&!Q&&(0,a.jsxs)(B.default,{sx:{mt:1,mb:1},children:[(0,a.jsx)(B.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:1},children:(0,a.jsx)(J.default,{variant:"body2",fontWeight:"medium",color:"warning.main",children:"Authentication Required"})}),(0,a.jsxs)(D.A,{variant:"contained",color:"warning",size:"small",startIcon:(0,a.jsx)(f.A,{}),onClick:async e=>{if(e.stopPropagation(),eh.debug("Authenticate button clicked for server: ".concat(t)),K)K();else try{let e=await fetch("/api/oauth/initiate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverName:t})});if(!e.ok){let t=await e.json();throw Error(t.error||"Failed to initiate OAuth")}let{authorizationUrl:a,alreadyAuthorized:o}=await e.json();if(o||!a){eh.info("Server ".concat(t," already authorized, no popup needed")),tr();return}let{openOAuthPopup:s}=await r.e(8198).then(r.bind(r,68198));await s({url:a,windowName:"oauth_".concat(t),onSuccess:e=>{eh.info("OAuth authentication successful for ".concat(t),e),eh.info("Automatically restarting server ".concat(t," after OAuth completion")),tr()},onError:e=>{eh.error("OAuth authentication failed for ".concat(t),e),eM("OAuth authentication failed"),eB("error"),eW(!0)}})}catch(e){eh.error("Failed to start OAuth authentication for ".concat(t),e),eM("Failed to start OAuth authentication"),eB("error"),eW(!0)}},sx:{width:"100%"},children:["Authenticate with ",t]})]})]}),eO&&!Q&&U&&(0,a.jsx)(ep.A,{sx:{justifyContent:"flex-start",px:2,py:1},onClick:e=>e.stopPropagation(),children:(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center"},children:[(0,a.jsx)(eu.A,{checked:P,onClick:e=>e.stopPropagation(),onChange:e=>{eh.debug("Built-in server ".concat(t," toggle changed to: ").concat(e.target.checked)),U(e.target.checked)},color:"primary",size:"small"}),(0,a.jsx)(J.default,{variant:"body2",sx:{ml:.5,fontWeight:500,color:P?"primary.main":"text.secondary"},children:P?"Enabled":"Disabled"}),("filesystem"===t||"bash"===t)&&(0,a.jsx)(ei.A,{title:"Configure ".concat(t," roots"),children:(0,a.jsxs)(D.A,{size:"small",variant:"text",startIcon:(0,a.jsx)(z.A,{fontSize:"small"}),sx:{ml:1.5,textTransform:"none"},onClick:e=>{e.stopPropagation(),eY(!0)},children:["Configure roots",e$&&e$.length?" (".concat(e$.length,")"):""]})})]})}),("filesystem"===t||"bash"===t)&&(0,a.jsx)(eo,{open:eq,serverName:t,initialRoots:e$,onClose:()=>eY(!1),onSaved:e=>eK(e)}),!eO&&!Q&&(0,a.jsxs)(ep.A,{sx:{justifyContent:"space-between",px:2,py:1},children:[(0,a.jsxs)(B.default,{sx:{display:"flex",alignItems:"center"},children:[(0,a.jsx)(eu.A,{checked:P,onClick:e=>e.stopPropagation(),onChange:e=>{eh.debug("Server ".concat(t," toggle changed to: ").concat(e.target.checked)),U(e.target.checked)},color:"primary",size:"small"}),(0,a.jsx)(J.default,{variant:"body2",sx:{ml:.5,fontWeight:500,color:P?"primary.main":"text.secondary"},children:P?"Enabled":"Disabled"}),P&&(0,a.jsx)(ei.A,{title:"Restart server",children:(0,a.jsx)(et.A,{size:"small",onClick:e=>{e.stopPropagation(),eh.debug("Restart button clicked for server: ".concat(t)),tr()},sx:{ml:1},children:(0,a.jsx)(d.A,{fontSize:"small"})})})]}),(0,a.jsxs)(B.default,{children:[(0,a.jsx)(ei.A,{title:"Retry connection",children:(0,a.jsx)(et.A,{color:"primary",onClick:e=>{e.stopPropagation(),eh.debug("Retry button clicked for server: ".concat(t)),e4&&clearTimeout(e4),e_(!0),L();let r=setTimeout(()=>{"connecting"!==s&&"initialization"!==s&&e_(!1),e8(null)},1e4);e8(r)},disabled:eJ,size:"small",children:eJ?(0,a.jsx)(S.default,{size:"small",color:"primary"}):(0,a.jsx)(d.A,{})})}),"streamable"===E&&em&&(0,a.jsx)(ei.A,{title:"Reset OAuth tokens",children:(0,a.jsx)(et.A,{color:"warning",onClick:e9,disabled:eL,size:"small",children:eL?(0,a.jsx)(S.default,{size:"small",color:"primary"}):(0,a.jsx)(m.A,{})})}),eS&&(0,a.jsx)(ei.A,{title:ek?"Folder: ".concat(ek):"Move to folder",children:(0,a.jsx)(et.A,{color:ek?"primary":"default",onClick:e=>{e.stopPropagation(),eE(e.currentTarget)},size:"small",children:(0,a.jsx)(v.A,{})})}),(0,a.jsx)(ei.A,{title:"Edit server",children:(0,a.jsx)(et.A,{color:"primary",onClick:e=>{e.stopPropagation(),$()},size:"small",children:(0,a.jsx)(u.A,{})})}),(0,a.jsx)(ei.A,{title:"Delete server",children:(0,a.jsx)(et.A,{color:"error",onClick:e=>{e.stopPropagation(),q()},size:"small",children:(0,a.jsx)(p.A,{})})})]})]}),eS&&(0,a.jsx)(w.A,{anchorEl:eP,open:!!eP,currentFolder:ek,folders:eA,onClose:()=>eE(null),onAssign:e=>eS(e)}),(0,a.jsxs)(N.A,{open:eT,onClose:()=>{eh.debug("Error modal closed for server: ".concat(t)),eF(!1)},maxWidth:"md",fullWidth:!0,onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)(W.A,{component:"div",children:["Error Details for ",t]}),(0,a.jsxs)(I.A,{children:[(0,a.jsx)(B.default,{sx:{p:2,borderRadius:1,bgcolor:e=>te("error.background"),color:e=>te("error.text"),border:"1px solid",borderColor:e=>te("error.border"),fontFamily:"monospace",fontSize:"0.875rem",fontWeight:500,whiteSpace:"pre-wrap",overflow:"auto",maxHeight:"300px",mb:2},children:Z||"Unknown error"}),G&&(0,a.jsxs)(B.default,{sx:{mt:2},children:[(0,a.jsx)(J.default,{variant:"h6",gutterBottom:!0,children:"Stderr Output:"}),(0,a.jsx)(B.default,{sx:{p:2,borderRadius:1,bgcolor:"background.paper",border:"1px solid",borderColor:"divider",fontFamily:"monospace",fontSize:"0.875rem",whiteSpace:"pre-wrap",overflow:"auto",maxHeight:"300px"},children:G})]})]}),(0,a.jsxs)(M.A,{children:[(0,a.jsx)(D.A,{onClick:()=>eF(!1),children:"Close"}),(0,a.jsx)(D.A,{onClick:()=>{let e=[Z||"Unknown error",G?"\n\nStderr Output:\n".concat(G):""].join("");navigator.clipboard.writeText(e),eh.debug("Error copied to clipboard for server: ".concat(t)),eM("Error message copied to clipboard"),eB("success"),eW(!0)},color:"primary",children:"Copy to Clipboard"})]})]}),eg&&(0,a.jsx)(X,{open:eU,onClose:()=>eR(!1),serverName:t,rootPath:F,installCommand:ey,buildCommand:ev,enabled:P,updateInfo:eg,onToggle:U,onUpdated:ej}),(0,a.jsx)(es.A,{open:eN,autoHideDuration:3e3,onClose:()=>eW(!1),anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,a.jsx)(_.A,{onClose:()=>eW(!1),severity:eD,sx:{width:"100%"},children:eI||"Error message copied to clipboard"})})]})}},62640:(e,t,r)=>{r.d(t,{A:()=>O});var a=r(95155),o=r(12115),s=r(2778),n=r(52363),l=r(65036),i=r(94049),c=r(78470),d=r(41983),u=r(9562),p=r(28548),h=r(22003),f=r(4474),m=r(25635),x=r(41602),b=r(73707),g=r(49501),y=r(17681),v=r(75912),j=r(91871),k=r(80007),A=r(74482),S=r(40171),w=r(36944);let C=(0,r(87021).h)("frontend/components/shared/FolderPickerDialog"),O=e=>{let{open:t,title:r="Choose a folder",selectFiles:O=!1,initialPath:z,onClose:T,onSelect:F}=e,[P,E]=(0,o.useState)(null),[U,R]=(0,o.useState)(""),[N,W]=(0,o.useState)(!1),[I,M]=(0,o.useState)(null),D=(0,o.useCallback)(async e=>{W(!0),M(null);try{let t=e?"?path=".concat(encodeURIComponent(e)):"",r=await fetch("/api/browse".concat(t)),a=await r.json();if(!r.ok||a.error)return void M(a.error||"HTTP ".concat(r.status));E(a),R(a.path)}catch(e){C.warn("Browse failed",e),M("Could not reach the backend to browse folders.")}finally{W(!1)}},[]);(0,o.useEffect)(()=>{t?D(z||void 0):(E(null),M(null))},[t,z,D]);let B=e=>{F(e),T()};return(0,a.jsxs)(s.A,{open:t,onClose:T,maxWidth:"sm",fullWidth:!0,children:[(0,a.jsx)(n.A,{children:r}),(0,a.jsxs)(l.A,{dividers:!0,sx:{display:"flex",flexDirection:"column",gap:1.5},children:[(0,a.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,a.jsx)(c.A,{title:"Up one folder",children:(0,a.jsx)("span",{children:(0,a.jsx)(d.A,{size:"small",disabled:!(null==P?void 0:P.parent)||N,onClick:()=>(null==P?void 0:P.parent)&&void D(P.parent),children:(0,a.jsx)(S.A,{fontSize:"small"})})})}),(0,a.jsx)(c.A,{title:"Home folder",children:(0,a.jsx)("span",{children:(0,a.jsx)(d.A,{size:"small",disabled:N,onClick:()=>void D(),children:(0,a.jsx)(w.A,{fontSize:"small"})})})}),(0,a.jsx)(u.A,{fullWidth:!0,size:"small",value:U,onChange:e=>R(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),D(U))},placeholder:"Type a path and press Enter"})]}),P&&P.drives.length>0&&(0,a.jsx)(i.default,{sx:{display:"flex",gap:.75,flexWrap:"wrap"},children:P.drives.map(e=>(0,a.jsx)(p.A,{label:e,size:"small",variant:P.path.toLowerCase().startsWith(e.toLowerCase())?"filled":"outlined",onClick:()=>void D(e)},e))}),I&&(0,a.jsx)(h.A,{severity:"error",children:I}),(0,a.jsxs)(i.default,{sx:{minHeight:240,maxHeight:"45vh",overflow:"auto",border:1,borderColor:"divider",borderRadius:1},children:[N&&(0,a.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,a.jsx)(f.default,{size:24})}),!N&&P&&0===P.entries.length&&(0,a.jsx)(m.default,{variant:"body2",color:"text.secondary",sx:{p:2},children:"This folder is empty."}),!N&&(0,a.jsx)(x.A,{dense:!0,disablePadding:!0,children:null==P?void 0:P.entries.map(e=>(0,a.jsxs)(b.A,{disabled:!e.isDirectory&&!O,onClick:()=>e.isDirectory?void D(e.path):B(e.path),children:[(0,a.jsx)(g.A,{sx:{minWidth:34},children:e.isDirectory?(0,a.jsx)(k.A,{fontSize:"small",color:"primary"}):(0,a.jsx)(A.A,{fontSize:"small"})}),(0,a.jsx)(y.A,{primary:e.name,primaryTypographyProps:{noWrap:!0}})]},e.path))})]})]}),(0,a.jsxs)(v.A,{children:[(0,a.jsx)(j.A,{onClick:T,children:"Cancel"}),(0,a.jsx)(j.A,{variant:"contained",disabled:!P||N,onClick:()=>P&&B(P.path),children:"Select this folder"})]})]})}},65818:(e,t,r)=>{r.d(t,{mO:()=>s,oO:()=>n});var a=r(38459);let o=["stdio","websocket","sse","streamable"];function s(e,t){switch(t){case"name-asc":case"name-desc":return(0,a.po)(e.name);case"status-connected":case"status-disconnected":{let t=e.status;if("connected"===t)return{key:"status:connected",label:"Connected"};if("error"===t)return{key:"status:error",label:"Error"};if("requires_authentication"===t)return{key:"status:auth",label:"Requires authentication"};return{key:"status:disconnected",label:"Disconnected"}}case"transport":{let t=e.transport||"unknown";return{key:"transport:".concat(t),label:({stdio:"Stdio",websocket:"WebSocket",sse:"SSE",streamable:"Streamable HTTP"})[t]||t}}default:return{key:"all",label:"All servers"}}}function n(e,t){let r=(e,r)=>{switch(t){case"name-asc":return e.name.localeCompare(r.name);case"name-desc":return r.name.localeCompare(e.name);case"status-connected":if("connected"===e.status&&"connected"!==r.status)return -1;if("connected"!==e.status&&"connected"===r.status)return 1;return e.name.localeCompare(r.name);case"status-disconnected":if("disconnected"===e.status&&"disconnected"!==r.status)return -1;if("disconnected"!==e.status&&"disconnected"===r.status)return 1;return e.name.localeCompare(r.name);case"transport":{var a,s;let t=o.indexOf(null!=(a=e.transport)?a:""),n=o.indexOf(null!=(s=r.transport)?s:"");if(t!==n)return t-n;return e.name.localeCompare(r.name)}default:return 0}};return[...e].sort((e,t)=>{let a=Number(!!t.favorite)-Number(!!e.favorite);return 0!==a?a:r(e,t)})}},70272:(e,t,r)=>{function a(e){let t={};if(!e)return t;for(let[r,a]of Object.entries(e))t[r]=a&&"object"==typeof a&&"value"in a?a.value:"string"==typeof a?a:"";return t}function o(e){let t,r=[],a=[];if("string"==typeof e)try{t=JSON.parse(e)}catch(e){return{servers:a,errors:["Invalid JSON: ".concat(e.message)]}}else t=e;if(!t||"object"!=typeof t)return{servers:a,errors:["Expected a JSON object."]};let o=t,s=o.mcpServers&&"object"==typeof o.mcpServers?o.mcpServers:o;if(0===Object.keys(s).length)return{servers:a,errors:['No servers found. Expected an "mcpServers" object.']};for(let[e,t]of Object.entries(s)){var n;if(!t||"object"!=typeof t){r.push('"'.concat(e,'": entry is not an object.'));continue}let o=function(e){let t=(e.transport||e.type||"").toString().toLowerCase().trim();if(!t)return"stdio";switch(t){case"stdio":return"stdio";case"http":case"streamable-http":case"streamable":case"streamablehttp":return"streamable";case"sse":return"sse";case"ws":case"websocket":return"websocket";default:return null}}(t);if(!o){r.push('"'.concat(e,'": unknown transport type "').concat(t.type||t.transport,'".'));continue}let s={};if(t.env&&"object"==typeof t.env)for(let[e,r]of Object.entries(t.env))s[e]="string"==typeof r?r:String(null!=r?r:"");let l={name:e,env:s,disabled:null!=(n=t.disabled)&&n,autoApprove:Array.isArray(t.autoApprove)?t.autoApprove:[],rootPath:"",_buildCommand:"",_installCommand:""};if("stdio"===o){if(!t.command||"string"!=typeof t.command){r.push('"'.concat(e,'": stdio server is missing a "command".'));continue}a.push({...l,transport:"stdio",command:t.command,args:Array.isArray(t.args)?t.args:[]})}else if("websocket"===o){let o=t.url||t.websocketUrl;if(!o){r.push('"'.concat(e,'": websocket server is missing a "url".'));continue}a.push({...l,transport:"websocket",websocketUrl:o})}else{let s=t.url||t.serverUrl;if(!s){r.push('"'.concat(e,'": ').concat(o,' server is missing a "url".'));continue}let n=t.headers&&"object"==typeof t.headers?t.headers:void 0;a.push({...l,transport:o,serverUrl:s,...n?{headers:n}:{}})}}return{servers:a,errors:r}}r.d(t,{_i:()=>s,CZ:()=>l,Kt:()=>n});let s=[{id:"claude",label:"Claude",fileName:"mcp_config.json",export:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(t.proxyBaseUrl||"").replace(/\/$/,""),o={};for(let t of e){if(t.exposeAsMcpServer){o[t.name]={type:"http",url:"".concat(r,"/mcp-proxy/").concat(t.name)};continue}let e={},s=a(t.env);switch(t.transport){case"stdio":e.command=t.command,e.args=t.args||[],Object.keys(s).length>0&&(e.env=s);break;case"streamable":e.type="http",e.url=t.serverUrl,t.headers&&Object.keys(t.headers).length>0&&(e.headers=a(t.headers)),Object.keys(s).length>0&&(e.env=s);break;case"sse":e.type="sse",e.url=t.serverUrl,t.headers&&Object.keys(t.headers).length>0&&(e.headers=a(t.headers)),Object.keys(s).length>0&&(e.env=s);break;case"websocket":e.type="ws",e.url=t.websocketUrl,Object.keys(s).length>0&&(e.env=s);break;default:Object.keys(s).length>0&&(e.env=s)}o[t.name]=e}return{mcpServers:o}},import:o},{id:"cline",label:"Cline",fileName:"cline_mcp_settings.json",export:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(t.proxyBaseUrl||"").replace(/\/$/,""),o={};for(let t of e){var s,n;let e={disabled:null!=(s=t.disabled)&&s,autoApprove:null!=(n=t.autoApprove)?n:[],timeout:60};if(t.exposeAsMcpServer){o[t.name]={...e,type:"streamableHttp",url:"".concat(r,"/mcp-proxy/").concat(t.name)};continue}let l=a(t.env),i={...e};switch(t.transport){case"stdio":i.command=t.command,i.args=t.args||[],Object.keys(l).length>0&&(i.env=l);break;case"streamable":i.type="streamableHttp",i.url=t.serverUrl,t.headers&&Object.keys(t.headers).length>0&&(i.headers=a(t.headers));break;case"sse":i.type="sse",i.url=t.serverUrl,t.headers&&Object.keys(t.headers).length>0&&(i.headers=a(t.headers));break;case"websocket":i.type="ws",i.url=t.websocketUrl;break;default:Object.keys(l).length>0&&(i.env=l)}o[t.name]=i}return{mcpServers:o}},import:function(e){return o(e)}}];function n(e){var t;return null!=(t=s.find(t=>t.id===e))?t:s[0]}function l(e,t,r){let a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"claude",o=(r||"").replace(/\/$/,"");return JSON.stringify(t?n(a).export([t],{proxyBaseUrl:o}):{mcpServers:{[e]:{type:"http",url:"".concat(o,"/mcp-proxy/").concat(e)}}},null,2)}},80411:(e,t,r)=>{r.d(t,{Fu:()=>i,M8:()=>s,Qv:()=>n,Qz:()=>l});let a=(0,r(87021).h)("frontend/components/mcp/MCPServerManager/utils/serverUpdates"),o=new Map;async function s(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=Date.now(),s={},n=[];for(let a of new Set(e.filter(Boolean))){let e=o.get(a);!t&&e&&r-e.at<6e5?s[a]=e.info:n.push(a)}if(n.length>0)try{let e=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"checkUpdatesBatch",paths:n})}),t=await e.json();if(e.ok&&t.results)for(let[e,a]of Object.entries(t.results))o.set(e,{at:r,info:a}),s[e]=a;else a.warn("Batch update check failed",t.error)}catch(e){a.warn("Batch update check request failed",e)}return s}async function n(e){try{let t=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"pullUpdates",savePath:e})}),r=await t.json();if(!t.ok)return{success:!1,error:r.error||"Failed to pull updates"};return{success:!0,oldSha:r.oldSha,newSha:r.newSha,updated:r.updated}}catch(e){return{success:!1,error:e.message||"Failed to pull updates"}}}async function l(e,t,r){let o=e.match(/github\.com[:/]([^/]+)\/([^/]+?)(?:\.git)?\/?$/i);if(!o)return null;try{let e=await fetch("https://api.github.com/repos/".concat(o[1],"/").concat(o[2],"/compare/").concat(t,"...").concat(r));if(!e.ok)return null;let a=await e.json(),s=Array.isArray(a.commits)?a.commits:[];return{behindBy:"number"==typeof a.total_commits?a.total_commits:null,commits:s.slice(-10).reverse().map(e=>{var t;return{sha:(e.sha||"").slice(0,7),message:((null==(t=e.commit)?void 0:t.message)||"").split("\n")[0]}})}}catch(e){return a.debug("GitHub compare preview failed (non-fatal)",e),null}}function i(e){return e?e.slice(0,7):""}},86631:(e,t,r)=>{r.d(t,{b:()=>s,c:()=>n});var a=r(56290);async function o(e,t){try{let r=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!r.ok||!r.body)return null;let o=null;return await (0,a.z)(r,e=>{if("stdout"===e.type||"stderr"===e.type)t(e.data);else if("result"===e.type){var r;o={success:e.success,output:null!=(r=e.commandOutput)?r:""}}}),o}catch(e){return console.error("Error streaming git command:",e),null}}let s=async(e,t,r)=>{if(r){let a=await o({action:"installStream",savePath:e,installCommand:t},r);if(a)return{success:a.success,message:a.success?{type:"success",text:"Dependencies installed successfully. You can now build the server."}:{type:"error",text:"Error installing dependencies. You can still try to build the server."},output:a.output||"No output was returned from the installation process."}}try{let r=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"install",savePath:e,installCommand:t})}),a=await r.json();if(!r.ok)throw Error(a.error||"Failed to install dependencies");return{success:!0,message:{type:"success",text:"Dependencies installed successfully. You can now build the server."},output:a.commandOutput||"No output was returned from the installation process."}}catch(e){return console.error("Error installing dependencies:",e),{success:!1,message:{type:"error",text:"Error installing dependencies: ".concat(e.message||"Unknown error",". You can still try to build the server.")},output:e instanceof Response?await e.text():(null==e?void 0:e.message)||"Unknown error"}}},n=async(e,t,r)=>{if(r){let a=await o({action:"buildStream",savePath:e,buildCommand:t},r);if(a)return{success:a.success,message:a.success?{type:"success",text:"Server built successfully."}:{type:"error",text:"Error building server."},output:a.output||"No output was returned from the build process."}}try{let r=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"build",savePath:e,buildCommand:t})}),a=await r.json();if(!r.ok)throw Error(a.error||"Failed to build repository");return{success:!0,message:{type:"success",text:"Server built successfully."},output:a.commandOutput||"No output was returned from the build process."}}catch(e){return console.error("Error building server:",e),{success:!1,message:{type:"error",text:"Error building server: ".concat(e.message||"Unknown error",".")},output:e instanceof Response?await e.text():(null==e?void 0:e.message)||"Unknown error"}}}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5441],{12402:(e,t,r)=>{r.d(t,{A:()=>a});var o=r(15485),n=r(95155);let a=(0,o.A)((0,n.jsx)("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96M19 18H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95C8.08 7.14 9.94 6 12 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11c1.56.1 2.78 1.41 2.78 2.96 0 1.65-1.35 3-3 3m-5.55-8h-2.9v3H8l4 4 4-4h-2.55z"}),"CloudDownloadOutlined")},15712:(e,t,r)=>{r.d(t,{A:()=>d});var o=r(12115),n=r.t(o,2),a=r(89255),l=r(19868),i=r(9027);let s={...n}.useSyncExternalStore;function c(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{themeId:t}=e;return function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,i.A)();n&&t&&(n=n[t]||n);let c="undefined"!=typeof window&&void 0!==window.matchMedia,{defaultMatches:d=!1,matchMedia:p=c?window.matchMedia:null,ssrMatchMedia:u=null,noSsr:v=!1}=(0,l.A)({name:"MuiUseMediaQuery",props:r,theme:n}),m="function"==typeof e?e(n):e;return(m=m.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(e,t,r,n,a){let l=o.useCallback(()=>t,[t]),i=o.useMemo(()=>{if(a&&r)return()=>r(e).matches;if(null!==n){let{matches:t}=n(e);return()=>t}return l},[l,e,n,a,r]),[c,d]=o.useMemo(()=>{if(null===r)return[l,()=>()=>{}];let t=r(e);return[()=>t.matches,e=>(t.addEventListener("change",e),()=>{t.removeEventListener("change",e)})]},[l,r,e]);return s(d,c,i)}:function(e,t,r,n,l){let[i,s]=o.useState(()=>l&&r?r(e).matches:n?n(e).matches:t);return(0,a.A)(()=>{if(!r)return;let t=r(e),o=()=>{s(t.matches)};return o(),t.addEventListener("change",o),()=>{t.removeEventListener("change",o)}},[e,r]),i})(m,d,p,u,v)}}c();let d=c({themeId:r(46892).A})},20063:(e,t,r)=>{var o=r(47260);r.o(o,"usePathname")&&r.d(t,{usePathname:function(){return o.usePathname}}),r.o(o,"useRouter")&&r.d(t,{useRouter:function(){return o.useRouter}}),r.o(o,"useSearchParams")&&r.d(t,{useSearchParams:function(){return o.useSearchParams}})},27414:(e,t,r)=>{r.d(t,{A:()=>o});let o=r(12115).createContext({})},39024:(e,t,r)=>{r.d(t,{A:()=>o});let o=r(12115).createContext({})},40047:(e,t,r)=>{r.d(t,{A:()=>a});var o=r(15485),n=r(95155);let a=(0,o.A)([(0,n.jsx)("path",{d:"M20 2H4c-1 0-2 .9-2 2v3.01c0 .72.43 1.34 1 1.69V20c0 1.1 1.1 2 2 2h14c.9 0 2-.9 2-2V8.7c.57-.35 1-.97 1-1.69V4c0-1.1-1-2-2-2m-1 18H5V9h14zm1-13H4V4h16z"},"0"),(0,n.jsx)("path",{d:"M9 12h6v2H9z"},"1")],"Inventory2Outlined")},41275:(e,t,r)=>{r.d(t,{A:()=>h});var o=r(12115),n=r(2821),a=r(57001),l=r(48116),i=r(66964),s=r(16625),c=r(25635),d=r(85795),p=r(95195);function u(e){return(0,p.Ay)("MuiAlertTitle",e)}(0,d.A)("MuiAlertTitle",["root"]);var v=r(95155);let m=(0,l.Ay)(c.default,{name:"MuiAlertTitle",slot:"Root",overridesResolver:(e,t)=>t.root})((0,i.A)(e=>{let{theme:t}=e;return{fontWeight:t.typography.fontWeightMedium,marginTop:-2}})),h=o.forwardRef(function(e,t){let r=(0,s.b)({props:e,name:"MuiAlertTitle"}),{className:o,...l}=r,i=(e=>{let{classes:t}=e;return(0,a.A)({root:["root"]},u,t)})(r);return(0,v.jsx)(m,{gutterBottom:!0,component:"div",ownerState:r,ref:t,className:(0,n.A)(i.root,o),...l})})},51314:(e,t,r)=>{r.d(t,{A:()=>a});var o=r(15485),n=r(95155);let a=(0,o.A)((0,n.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM8 9h8v10H8zm7.5-5-1-1h-5l-1 1H5v2h14V4z"}),"DeleteOutline")},61563:(e,t,r)=>{r.d(t,{A:()=>a});var o=r(15485),n=r(95155);let a=(0,o.A)((0,n.jsx)("path",{d:"M5 20h14v-2H5zM19 9h-4V3H9v6H5l7 7z"}),"Download")},64246:(e,t,r)=>{r.d(t,{A:()=>H});var o,n=r(57001),a=r(2821),l=r(12115),i=r(39024),s=r(48116),c=r(66964),d=r(16625),p=r(15485),u=r(95155);let v=(0,p.A)((0,u.jsx)("path",{d:"M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z"}),"CheckCircle"),m=(0,p.A)((0,u.jsx)("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"Warning");var h=r(39850),f=r(85795),y=r(95195);function A(e){return(0,y.Ay)("MuiStepIcon",e)}let b=(0,f.A)("MuiStepIcon",["root","active","completed","error","text"]),x=(0,s.Ay)(h.A,{name:"MuiStepIcon",slot:"Root",overridesResolver:(e,t)=>t.root})((0,c.A)(e=>{let{theme:t}=e;return{display:"block",transition:t.transitions.create("color",{duration:t.transitions.duration.shortest}),color:(t.vars||t).palette.text.disabled,["&.".concat(b.completed)]:{color:(t.vars||t).palette.primary.main},["&.".concat(b.active)]:{color:(t.vars||t).palette.primary.main},["&.".concat(b.error)]:{color:(t.vars||t).palette.error.main}}})),M=(0,s.Ay)("text",{name:"MuiStepIcon",slot:"Text",overridesResolver:(e,t)=>t.text})((0,c.A)(e=>{let{theme:t}=e;return{fill:(t.vars||t).palette.primary.contrastText,fontSize:t.typography.caption.fontSize,fontFamily:t.typography.fontFamily}})),g=l.forwardRef(function(e,t){let r=(0,d.b)({props:e,name:"MuiStepIcon"}),{active:l=!1,className:i,completed:s=!1,error:c=!1,icon:p,...h}=r,f={...r,active:l,completed:s,error:c},y=(e=>{let{classes:t,active:r,completed:o,error:a}=e;return(0,n.A)({root:["root",r&&"active",o&&"completed",a&&"error"],text:["text"]},A,t)})(f);if("number"==typeof p||"string"==typeof p){let e=(0,a.A)(i,y.root);return c?(0,u.jsx)(x,{as:m,className:e,ref:t,ownerState:f,...h}):s?(0,u.jsx)(x,{as:v,className:e,ref:t,ownerState:f,...h}):(0,u.jsxs)(x,{className:e,ref:t,ownerState:f,...h,children:[o||(o=(0,u.jsx)("circle",{cx:"12",cy:"12",r:"12"})),(0,u.jsx)(M,{className:y.text,x:"12",y:"12",textAnchor:"middle",dominantBaseline:"central",ownerState:f,children:p})]})}return p});var L=r(27414);function S(e){return(0,y.Ay)("MuiStepLabel",e)}let C=(0,f.A)("MuiStepLabel",["root","horizontal","vertical","label","active","completed","error","disabled","iconContainer","alternativeLabel","labelContainer"]);var w=r(77765);let R=(0,s.Ay)("span",{name:"MuiStepLabel",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,t[r.orientation]]}})({display:"flex",alignItems:"center",["&.".concat(C.alternativeLabel)]:{flexDirection:"column"},["&.".concat(C.disabled)]:{cursor:"default"},variants:[{props:{orientation:"vertical"},style:{textAlign:"left",padding:"8px 0"}}]}),z=(0,s.Ay)("span",{name:"MuiStepLabel",slot:"Label",overridesResolver:(e,t)=>t.label})((0,c.A)(e=>{let{theme:t}=e;return{...t.typography.body2,display:"block",transition:t.transitions.create("color",{duration:t.transitions.duration.shortest}),["&.".concat(C.active)]:{color:(t.vars||t).palette.text.primary,fontWeight:500},["&.".concat(C.completed)]:{color:(t.vars||t).palette.text.primary,fontWeight:500},["&.".concat(C.alternativeLabel)]:{marginTop:16},["&.".concat(C.error)]:{color:(t.vars||t).palette.error.main}}})),j=(0,s.Ay)("span",{name:"MuiStepLabel",slot:"IconContainer",overridesResolver:(e,t)=>t.iconContainer})({flexShrink:0,display:"flex",paddingRight:8,["&.".concat(C.alternativeLabel)]:{paddingRight:0}}),I=(0,s.Ay)("span",{name:"MuiStepLabel",slot:"LabelContainer",overridesResolver:(e,t)=>t.labelContainer})((0,c.A)(e=>{let{theme:t}=e;return{width:"100%",color:(t.vars||t).palette.text.secondary,["&.".concat(C.alternativeLabel)]:{textAlign:"center"}}})),N=l.forwardRef(function(e,t){let r=(0,d.b)({props:e,name:"MuiStepLabel"}),{children:o,className:s,componentsProps:c={},error:p=!1,icon:v,optional:m,slots:h={},slotProps:f={},StepIconComponent:y,StepIconProps:A,...b}=r,{alternativeLabel:x,orientation:M}=l.useContext(L.A),{active:C,disabled:N,completed:H,icon:U}=l.useContext(i.A),V=v||U,T=y;V&&!T&&(T=g);let D={...r,active:C,alternativeLabel:x,completed:H,disabled:N,error:p,orientation:M},P=(e=>{let{classes:t,orientation:r,active:o,completed:a,error:l,disabled:i,alternativeLabel:s}=e;return(0,n.A)({root:["root",r,l&&"error",i&&"disabled",s&&"alternativeLabel"],label:["label",o&&"active",a&&"completed",l&&"error",i&&"disabled",s&&"alternativeLabel"],iconContainer:["iconContainer",o&&"active",a&&"completed",l&&"error",i&&"disabled",s&&"alternativeLabel"],labelContainer:["labelContainer",s&&"alternativeLabel"]},S,t)})(D),k={slots:h,slotProps:{stepIcon:A,...c,...f}},[E,W]=(0,w.A)("root",{elementType:R,externalForwardedProps:{...k,...b},ownerState:D,ref:t,className:(0,a.A)(P.root,s)}),[F,O]=(0,w.A)("label",{elementType:z,externalForwardedProps:k,ownerState:D}),[_,B]=(0,w.A)("stepIcon",{elementType:T,externalForwardedProps:k,ownerState:D});return(0,u.jsxs)(E,{...W,children:[V||_?(0,u.jsx)(j,{className:P.iconContainer,ownerState:D,children:(0,u.jsx)(_,{completed:H,active:C,error:p,icon:V,...B})}):null,(0,u.jsxs)(I,{className:P.labelContainer,ownerState:D,children:[o?(0,u.jsx)(F,{...O,className:(0,a.A)(P.label,null==O?void 0:O.className),children:o}):null,m]})]})});N.muiName="StepLabel";let H=N},66087:(e,t,r)=>{r.d(t,{A:()=>a});var o=r(15485),n=r(95155);let a=(0,o.A)((0,n.jsx)("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zm4 18H6V4h7v5h5zM8 15.01l1.41 1.41L11 14.84V19h2v-4.16l1.59 1.59L16 15.01 12.01 11z"}),"UploadFile")},68212:(e,t,r)=>{r.d(t,{A:()=>a});var o=r(15485),n=r(95155);let a=(0,o.A)((0,n.jsx)("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7M2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2m4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3z"}),"VisibilityOff")},71908:(e,t,r)=>{r.d(t,{A:()=>h});var o=r(12115),n=r(2821),a=r(57001),l=r(27414),i=r(39024),s=r(48116),c=r(16625),d=r(85795),p=r(95195);function u(e){return(0,p.Ay)("MuiStep",e)}(0,d.A)("MuiStep",["root","horizontal","vertical","alternativeLabel","completed"]);var v=r(95155);let m=(0,s.Ay)("div",{name:"MuiStep",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,t[r.orientation],r.alternativeLabel&&t.alternativeLabel,r.completed&&t.completed]}})({variants:[{props:{orientation:"horizontal"},style:{paddingLeft:8,paddingRight:8}},{props:{alternativeLabel:!0},style:{flex:1,position:"relative"}}]}),h=o.forwardRef(function(e,t){let r=(0,c.b)({props:e,name:"MuiStep"}),{active:s,children:d,className:p,component:h="div",completed:f,disabled:y,expanded:A=!1,index:b,last:x,...M}=r,{activeStep:g,connector:L,alternativeLabel:S,orientation:C,nonLinear:w}=o.useContext(l.A),[R=!1,z=!1,j=!1]=[s,f,y];g===b?R=void 0===s||s:!w&&g>b?z=void 0===f||f:!w&&g<b&&(j=void 0===y||y);let I=o.useMemo(()=>({index:b,last:x,expanded:A,icon:b+1,active:R,completed:z,disabled:j}),[b,x,A,R,z,j]),N={...r,active:R,orientation:C,alternativeLabel:S,completed:z,disabled:j,expanded:A,component:h},H=(e=>{let{classes:t,orientation:r,alternativeLabel:o,completed:n}=e;return(0,a.A)({root:["root",r,o&&"alternativeLabel",n&&"completed"]},u,t)})(N),U=(0,v.jsxs)(m,{as:h,className:(0,n.A)(H.root,p),ref:t,ownerState:N,...M,children:[L&&S&&0!==b?L:null,d]});return(0,v.jsx)(i.A.Provider,{value:I,children:L&&!S&&0!==b?(0,v.jsxs)(o.Fragment,{children:[L,U]}):U})})},74879:(e,t,r)=>{let o;r.d(t,{A:()=>i});let n={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)},a=new Uint8Array(16),l=[];for(let e=0;e<256;++e)l.push((e+256).toString(16).slice(1));let i=function(e,t,r){if(n.randomUUID&&!t&&!e)return n.randomUUID();let i=(e=e||{}).random??e.rng?.()??function(){if(!o){if("undefined"==typeof crypto||!crypto.getRandomValues)throw Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");o=crypto.getRandomValues.bind(crypto)}return o(a)}();if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=i[e];return t}return function(e,t=0){return(l[e[t+0]]+l[e[t+1]]+l[e[t+2]]+l[e[t+3]]+"-"+l[e[t+4]]+l[e[t+5]]+"-"+l[e[t+6]]+l[e[t+7]]+"-"+l[e[t+8]]+l[e[t+9]]+"-"+l[e[t+10]]+l[e[t+11]]+l[e[t+12]]+l[e[t+13]]+l[e[t+14]]+l[e[t+15]]).toLowerCase()}(i)}},95844:(e,t,r)=>{r.d(t,{A:()=>g});var o=r(12115),n=r(2821),a=r(57001),l=r(48116),i=r(16625),s=r(85795),c=r(95195);function d(e){return(0,c.Ay)("MuiStepper",e)}(0,s.A)("MuiStepper",["root","horizontal","vertical","nonLinear","alternativeLabel"]);var p=r(81852),u=r(66964),v=r(27414),m=r(39024);function h(e){return(0,c.Ay)("MuiStepConnector",e)}(0,s.A)("MuiStepConnector",["root","horizontal","vertical","alternativeLabel","active","completed","disabled","line","lineHorizontal","lineVertical"]);var f=r(95155);let y=(0,l.Ay)("div",{name:"MuiStepConnector",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,t[r.orientation],r.alternativeLabel&&t.alternativeLabel,r.completed&&t.completed]}})({flex:"1 1 auto",variants:[{props:{orientation:"vertical"},style:{marginLeft:12}},{props:{alternativeLabel:!0},style:{position:"absolute",top:12,left:"calc(-50% + 20px)",right:"calc(50% + 20px)"}}]}),A=(0,l.Ay)("span",{name:"MuiStepConnector",slot:"Line",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.line,t["line".concat((0,p.A)(r.orientation))]]}})((0,u.A)(e=>{let{theme:t}=e,r="light"===t.palette.mode?t.palette.grey[400]:t.palette.grey[600];return{display:"block",borderColor:t.vars?t.vars.palette.StepConnector.border:r,variants:[{props:{orientation:"horizontal"},style:{borderTopStyle:"solid",borderTopWidth:1}},{props:{orientation:"vertical"},style:{borderLeftStyle:"solid",borderLeftWidth:1,minHeight:24}}]}})),b=o.forwardRef(function(e,t){let r=(0,i.b)({props:e,name:"MuiStepConnector"}),{className:l,...s}=r,{alternativeLabel:c,orientation:d="horizontal"}=o.useContext(v.A),{active:u,disabled:b,completed:x}=o.useContext(m.A),M={...r,alternativeLabel:c,orientation:d,active:u,completed:x,disabled:b},g=(e=>{let{classes:t,orientation:r,alternativeLabel:o,active:n,completed:l,disabled:i}=e,s={root:["root",r,o&&"alternativeLabel",n&&"active",l&&"completed",i&&"disabled"],line:["line","line".concat((0,p.A)(r))]};return(0,a.A)(s,h,t)})(M);return(0,f.jsx)(y,{className:(0,n.A)(g.root,l),ref:t,ownerState:M,...s,children:(0,f.jsx)(A,{className:g.line,ownerState:M})})}),x=(0,l.Ay)("div",{name:"MuiStepper",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,t[r.orientation],r.alternativeLabel&&t.alternativeLabel,r.nonLinear&&t.nonLinear]}})({display:"flex",variants:[{props:{orientation:"horizontal"},style:{flexDirection:"row",alignItems:"center"}},{props:{orientation:"vertical"},style:{flexDirection:"column"}},{props:{alternativeLabel:!0},style:{alignItems:"flex-start"}}]}),M=(0,f.jsx)(b,{}),g=o.forwardRef(function(e,t){let r=(0,i.b)({props:e,name:"MuiStepper"}),{activeStep:l=0,alternativeLabel:s=!1,children:c,className:p,component:u="div",connector:m=M,nonLinear:h=!1,orientation:y="horizontal",...A}=r,b={...r,nonLinear:h,alternativeLabel:s,orientation:y,component:u},g=(e=>{let{orientation:t,nonLinear:r,alternativeLabel:o,classes:n}=e;return(0,a.A)({root:["root",t,r&&"nonLinear",o&&"alternativeLabel"]},d,n)})(b),L=o.Children.toArray(c).filter(Boolean),S=L.map((e,t)=>o.cloneElement(e,{index:t,last:t+1===L.length,...e.props})),C=o.useMemo(()=>({activeStep:l,alternativeLabel:s,connector:m,nonLinear:h,orientation:y}),[l,s,m,h,y]);return(0,f.jsx)(v.A.Provider,{value:C,children:(0,f.jsx)(x,{as:u,ownerState:b,className:(0,n.A)(g.root,p),ref:t,...A,children:S})})})}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7111],{5421:(t,n,e)=>{e.d(n,{A:()=>c});var i=e(12115),r=e(9488),o=e(12549),a=e(33567),s=e(47250),u=e(69582),l=e(95155);let d={entering:{opacity:1},entered:{opacity:1}},c=i.forwardRef(function(t,n){let e=(0,a.A)(),c={enter:e.transitions.duration.enteringScreen,exit:e.transitions.duration.leavingScreen},{addEndListener:p,appear:f=!0,children:E,easing:h,in:x,onEnter:m,onEntered:v,onEntering:y,onExit:g,onExited:A,onExiting:b,style:S,timeout:k=c,TransitionComponent:C=r.Ay,...R}=t,T=i.useRef(null),N=(0,u.A)(T,(0,o.A)(E),n),O=t=>n=>{if(t){let e=T.current;void 0===n?t(e):t(e,n)}},D=O(y),w=O((t,n)=>{(0,s.q)(t);let i=(0,s.c)({style:S,timeout:k,easing:h},{mode:"enter"});t.style.webkitTransition=e.transitions.create("opacity",i),t.style.transition=e.transitions.create("opacity",i),m&&m(t,n)}),M=O(v),L=O(b),P=O(t=>{let n=(0,s.c)({style:S,timeout:k,easing:h},{mode:"exit"});t.style.webkitTransition=e.transitions.create("opacity",n),t.style.transition=e.transitions.create("opacity",n),g&&g(t)}),j=O(A);return(0,l.jsx)(C,{appear:f,in:x,nodeRef:T,onEnter:w,onEntered:M,onEntering:D,onExit:P,onExited:j,onExiting:L,addEndListener:t=>{p&&p(T.current,t)},timeout:k,...R,children:(t,n)=>{let{ownerState:e,...r}=n;return i.cloneElement(E,{style:{opacity:0,visibility:"exited"!==t||x?void 0:"hidden",...d[t],...S,...E.props.style},ref:N,...r})}})})},9488:(t,n,e)=>{e.d(n,{Ay:()=>x});var i=e(67810),r=e(20078),o=e(12115),a=e(47650);let s={disabled:!1};var u=e(15673),l="unmounted",d="exited",c="entering",p="entered",f="exiting",E=function(t){function n(n,e){var i,r=t.call(this,n,e)||this,o=e&&!e.isMounting?n.enter:n.appear;return r.appearStatus=null,n.in?o?(i=d,r.appearStatus=c):i=p:i=n.unmountOnExit||n.mountOnEnter?l:d,r.state={status:i},r.nextCallback=null,r}(0,r.A)(n,t),n.getDerivedStateFromProps=function(t,n){return t.in&&n.status===l?{status:d}:null};var e=n.prototype;return e.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},e.componentDidUpdate=function(t){var n=null;if(t!==this.props){var e=this.state.status;this.props.in?e!==c&&e!==p&&(n=c):(e===c||e===p)&&(n=f)}this.updateStatus(!1,n)},e.componentWillUnmount=function(){this.cancelNextCallback()},e.getTimeouts=function(){var t,n,e,i=this.props.timeout;return t=n=e=i,null!=i&&"number"!=typeof i&&(t=i.exit,n=i.enter,e=void 0!==i.appear?i.appear:n),{exit:t,enter:n,appear:e}},e.updateStatus=function(t,n){if(void 0===t&&(t=!1),null!==n)if(this.cancelNextCallback(),n===c){if(this.props.unmountOnExit||this.props.mountOnEnter){var e=this.props.nodeRef?this.props.nodeRef.current:a.findDOMNode(this);e&&e.scrollTop}this.performEnter(t)}else this.performExit();else this.props.unmountOnExit&&this.state.status===d&&this.setState({status:l})},e.performEnter=function(t){var n=this,e=this.props.enter,i=this.context?this.context.isMounting:t,r=this.props.nodeRef?[i]:[a.findDOMNode(this),i],o=r[0],u=r[1],l=this.getTimeouts(),d=i?l.appear:l.enter;if(!t&&!e||s.disabled)return void this.safeSetState({status:p},function(){n.props.onEntered(o)});this.props.onEnter(o,u),this.safeSetState({status:c},function(){n.props.onEntering(o,u),n.onTransitionEnd(d,function(){n.safeSetState({status:p},function(){n.props.onEntered(o,u)})})})},e.performExit=function(){var t=this,n=this.props.exit,e=this.getTimeouts(),i=this.props.nodeRef?void 0:a.findDOMNode(this);if(!n||s.disabled)return void this.safeSetState({status:d},function(){t.props.onExited(i)});this.props.onExit(i),this.safeSetState({status:f},function(){t.props.onExiting(i),t.onTransitionEnd(e.exit,function(){t.safeSetState({status:d},function(){t.props.onExited(i)})})})},e.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},e.safeSetState=function(t,n){n=this.setNextCallback(n),this.setState(t,n)},e.setNextCallback=function(t){var n=this,e=!0;return this.nextCallback=function(i){e&&(e=!1,n.nextCallback=null,t(i))},this.nextCallback.cancel=function(){e=!1},this.nextCallback},e.onTransitionEnd=function(t,n){this.setNextCallback(n);var e=this.props.nodeRef?this.props.nodeRef.current:a.findDOMNode(this),i=null==t&&!this.props.addEndListener;if(!e||i)return void setTimeout(this.nextCallback,0);if(this.props.addEndListener){var r=this.props.nodeRef?[this.nextCallback]:[e,this.nextCallback],o=r[0],s=r[1];this.props.addEndListener(o,s)}null!=t&&setTimeout(this.nextCallback,t)},e.render=function(){var t=this.state.status;if(t===l)return null;var n=this.props,e=n.children,r=(n.in,n.mountOnEnter,n.unmountOnExit,n.appear,n.enter,n.exit,n.timeout,n.addEndListener,n.onEnter,n.onEntering,n.onEntered,n.onExit,n.onExiting,n.onExited,n.nodeRef,(0,i.A)(n,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return o.createElement(u.A.Provider,{value:null},"function"==typeof e?e(t,r):o.cloneElement(o.Children.only(e),r))},n}(o.Component);function h(){}E.contextType=u.A,E.propTypes={},E.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:h,onEntering:h,onEntered:h,onExit:h,onExiting:h,onExited:h},E.UNMOUNTED=l,E.EXITED=d,E.ENTERING=c,E.ENTERED=p,E.EXITING=f;let x=E},12549:(t,n,e)=>{e.d(n,{A:()=>r});var i=e(12115);function r(t){if(parseInt(i.version,10)>=19){var n;return(null==t||null==(n=t.props)?void 0:n.ref)||null}return(null==t?void 0:t.ref)||null}},12699:(t,n,e)=>{e.d(n,{A:()=>i});function i(t){return t&&t.ownerDocument||document}},17576:(t,n,e)=>{e.d(n,{A:()=>i});let i=e(69827).A},22379:(t,n,e)=>{e.d(n,{A:()=>h});var i=e(12115),r=e(47079),o=e(12549),a=e(9488),s=e(33567),u=e(47250),l=e(69582),d=e(95155);function c(t){return"scale(".concat(t,", ").concat(t**2,")")}let p={entering:{opacity:1,transform:c(1)},entered:{opacity:1,transform:"none"}},f="undefined"!=typeof navigator&&/^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent)&&/(os |version\/)15(.|_)4/i.test(navigator.userAgent),E=i.forwardRef(function(t,n){let{addEndListener:e,appear:E=!0,children:h,easing:x,in:m,onEnter:v,onEntered:y,onEntering:g,onExit:A,onExited:b,onExiting:S,style:k,timeout:C="auto",TransitionComponent:R=a.Ay,...T}=t,N=(0,r.A)(),O=i.useRef(),D=(0,s.A)(),w=i.useRef(null),M=(0,l.A)(w,(0,o.A)(h),n),L=t=>n=>{if(t){let e=w.current;void 0===n?t(e):t(e,n)}},P=L(g),j=L((t,n)=>{let e;(0,u.q)(t);let{duration:i,delay:r,easing:o}=(0,u.c)({style:k,timeout:C,easing:x},{mode:"enter"});"auto"===C?O.current=e=D.transitions.getAutoHeightDuration(t.clientHeight):e=i,t.style.transition=[D.transitions.create("opacity",{duration:e,delay:r}),D.transitions.create("transform",{duration:f?e:.666*e,delay:r,easing:o})].join(","),v&&v(t,n)}),I=L(y),_=L(S),H=L(t=>{let n,{duration:e,delay:i,easing:r}=(0,u.c)({style:k,timeout:C,easing:x},{mode:"exit"});"auto"===C?O.current=n=D.transitions.getAutoHeightDuration(t.clientHeight):n=e,t.style.transition=[D.transitions.create("opacity",{duration:n,delay:i}),D.transitions.create("transform",{duration:f?n:.666*n,delay:f?i:i||.333*n,easing:r})].join(","),t.style.opacity=0,t.style.transform=c(.75),A&&A(t)}),U=L(b);return(0,d.jsx)(R,{appear:E,in:m,nodeRef:w,onEnter:j,onEntered:I,onEntering:P,onExit:H,onExited:U,onExiting:_,addEndListener:t=>{"auto"===C&&N.start(O.current||0,t),e&&e(w.current,t)},timeout:"auto"===C?null:C,...T,children:(t,n)=>{let{ownerState:e,...r}=n;return i.cloneElement(h,{style:{opacity:0,transform:c(.75),visibility:"exited"!==t||m?void 0:"hidden",...p[t],...k,...h.props.style},ref:M,...r})}})});E&&(E.muiSupportAuto=!0);let h=E},26281:(t,n,e)=>{e.d(n,{A:()=>l});var i=e(12115),r=e(47650),o=e(30365),a=e(12549),s=e(89255),u=e(65083);let l=i.forwardRef(function(t,n){let{children:e,container:l,disablePortal:d=!1}=t,[c,p]=i.useState(null),f=(0,o.A)(i.isValidElement(e)?(0,a.A)(e):null,n);return((0,s.A)(()=>{d||p(("function"==typeof l?l():l)||document.body)},[l,d]),(0,s.A)(()=>{if(c&&!d)return(0,u.A)(n,c),()=>{(0,u.A)(n,null)}},[n,c,d]),d)?i.isValidElement(e)?i.cloneElement(e,{ref:f}):e:c?r.createPortal(e,c):c})},26915:(t,n,e)=>{e.d(n,{A:()=>s});var i=e(30365),r=e(49808),o=e(25217),a=e(32979);let s=function(t){var n;let{elementType:e,externalSlotProps:s,ownerState:u,skipResolvingSlotProps:l=!1,...d}=t,c=l?{}:(0,a.A)(s,u),{props:p,internalRef:f}=(0,o.A)({...d,externalSlotProps:c}),E=(0,i.A)(f,null==c?void 0:c.ref,null==(n=t.additionalProps)?void 0:n.ref);return(0,r.A)(e,{...p,ref:E},u)}},46320:(t,n,e)=>{e.d(n,{A:()=>s,I:()=>a});var i=e(12115),r=e(95155);let o=i.createContext(),a=()=>{let t=i.useContext(o);return null!=t&&t},s=function(t){let{value:n,...e}=t;return(0,r.jsx)(o.Provider,{value:null==n||n,...e})}},47250:(t,n,e)=>{e.d(n,{c:()=>r,q:()=>i});let i=t=>t.scrollTop;function r(t,n){var e,i;let{timeout:r,easing:o,style:a={}}=t;return{duration:null!=(e=a.transitionDuration)?e:"number"==typeof r?r:r[n.mode]||0,easing:null!=(i=a.transitionTimingFunction)?i:"object"==typeof o?o[n.mode]:o,delay:a.transitionDelay}}},65083:(t,n,e)=>{e.d(n,{A:()=>i});function i(t,n){"function"==typeof t?t(n):t&&(t.current=n)}},69827:(t,n,e)=>{e.d(n,{A:()=>r});var i=e(12115);function r(t){let{controlled:n,default:e,name:r,state:o="value"}=t,{current:a}=i.useRef(void 0!==n),[s,u]=i.useState(e),l=i.useCallback(t=>{a||u(t)},[]);return[a?n:s,l]}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[812],{17897:(e,r,t)=>{t.d(r,{S:()=>n});var o=t(56290);let a=(0,t(87021).h)("frontend/services/mcp/index");class s{async loadServerConfigs(){try{let e=await fetch("/api/mcp/servers"),r=await e.json();if(!e.ok||r&&r.error){let e=r&&r.error||"Failed to load server configs";return a.warn("Failed to load server configs:",e),{error:e}}return r}catch(e){return a.warn("Failed to load server configs:",e),{error:"Failed to load server configs"}}}async listServerTools(e){try{let r=this.toolsCache.get(e),t=Date.now();if(r&&t-r.timestamp<this.CACHE_TTL)return a.debug("Using cached tools for server ".concat(e)),{tools:r.tools};let o=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/tools")),s=await o.json();if(s.error)return a.warn("Error listing tools for server ".concat(e,":"),s.error),{tools:[],error:s.error};let n=Array.isArray(s.tools)?s.tools:[];return this.toolsCache.set(e,{tools:n,timestamp:t}),{tools:n}}catch(r){return a.warn("Failed to list tools for server ".concat(e,":"),r),{tools:[],error:"Failed to list tools: ".concat(r instanceof Error?r.message:"Unknown error")}}}clearToolsCache(e){e?(this.toolsCache.delete(e),a.debug("Cleared tools cache for server ".concat(e))):(this.toolsCache.clear(),a.debug("Cleared all tools cache"))}async listServerResources(e){try{let r=this.resourcesCache.get(e),t=Date.now();if(r&&t-r.timestamp<this.CACHE_TTL)return a.debug("Using cached resources for server ".concat(e)),r.data;let o=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/resources")),s=await o.json(),n={resources:Array.isArray(s.resources)?s.resources:[],resourceTemplates:Array.isArray(s.resourceTemplates)?s.resourceTemplates:[],error:s.error};return n.error||this.resourcesCache.set(e,{data:n,timestamp:t}),n}catch(r){return a.warn("Failed to list resources for server ".concat(e,":"),r),{resources:[],resourceTemplates:[],error:"Failed to list resources: ".concat(r instanceof Error?r.message:"Unknown error")}}}async readResource(e,r){try{let t=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/resources/read?uri=").concat(encodeURIComponent(r)));return await t.json()}catch(t){return a.warn("Failed to read resource ".concat(r," on server ").concat(e,":"),t),{success:!1,error:"Failed to read resource"}}}async listServerPrompts(e){try{let r=this.promptsCache.get(e),t=Date.now();if(r&&t-r.timestamp<this.CACHE_TTL)return a.debug("Using cached prompts for server ".concat(e)),{prompts:r.prompts};let o=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/prompts")),s=await o.json();if(s.error)return a.warn("Error listing prompts for server ".concat(e,":"),s.error),{prompts:[],error:s.error};let n=Array.isArray(s.prompts)?s.prompts:[];return this.promptsCache.set(e,{prompts:n,timestamp:t}),{prompts:n}}catch(r){return a.warn("Failed to list prompts for server ".concat(e,":"),r),{prompts:[],error:"Failed to list prompts: ".concat(r instanceof Error?r.message:"Unknown error")}}}async getPrompt(e,r,t){try{let o=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/prompts/get"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:r,arguments:t})});return await o.json()}catch(t){return a.warn("Failed to get prompt ".concat(r," on server ").concat(e,":"),t),{success:!1,error:"Failed to get prompt"}}}clearCapabilitiesCache(e){e?(this.resourcesCache.delete(e),this.promptsCache.delete(e)):(this.resourcesCache.clear(),this.promptsCache.clear())}checkResourceListVersion(e,r){var t;let o=null!=(t=this.resourceListVersions.get(e))?t:-1;return r>o&&(this.resourceListVersions.set(e,r),this.resourcesCache.delete(e),a.debug("checkResourceListVersion: cache invalidated for ".concat(e," (").concat(o," -> ").concat(r,")")),!0)}async callTool(e,r,t,o){try{let a=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/tools/").concat(encodeURIComponent(r)),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({args:t,timeout:o})});return await a.json()}catch(t){return a.warn("Failed to call tool ".concat(r," on server ").concat(e,":"),t),{error:"Failed to call tool"}}}async updateServerConfig(e,r){try{let t=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e)),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}),o=await t.json();if(t.ok)return a.info("Successfully updated server config for ".concat(e)),{success:!0,data:o};if(void 0!==r.disabled)return a.info("Config update for ".concat(e," treated as success for toggle operation")),{success:!0,data:{...r,name:e},_originalError:o.error};return a.warn("Failed to update server config for ".concat(e,":"),o.error),{success:!1,error:o.error}}catch(r){return a.warn("Failed to update server config for ".concat(e,":"),r),{error:"Failed to update server config"}}}async testConnection(e,r){try{let t=await fetch("/api/mcp/test-connection",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,storedName:r})});return await t.json()}catch(r){return a.warn("Failed to test connection for ".concat(e.name,":"),r),{success:!1,error:"Failed to reach the FLUJO backend to run the connection test: ".concat(r instanceof Error?r.message:"Unknown error")}}}async testConnectionStreaming(e,r,t){try{let s=await fetch("/api/mcp/test-connection/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,storedName:t})});if(!s.ok||!s.body)return a.warn("Streaming test-connection unavailable (status ".concat(s.status,"); falling back")),this.testConnection(e,t);let n=null;if(await (0,o.z)(s,e=>{r(e),"result"===e.type&&(n={success:e.success,error:e.error,requiresAuthentication:e.requiresAuthentication,oauthCapable:e.oauthCapable,data:e.data})}),n)return n;return a.warn("Streaming test-connection ended without a result event"),{success:!1,error:"The connection test stream ended unexpectedly without a result."}}catch(r){return a.warn("Streaming test connection failed for ".concat(e.name,"; falling back to non-streaming:"),r),this.testConnection(e,t)}}async probeOAuthCapability(e){try{let r=await fetch("/api/mcp/oauth-capability",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverUrl:e})});if(!r.ok)return{oauthCapable:!1};return await r.json()}catch(r){return a.warn("Failed to probe OAuth capability for ".concat(e,":"),r),{oauthCapable:!1}}}async getServerStatus(e){try{let r=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/status"),{headers:{Accept:"application/json"}}),t=await r.json();if(t.error)return a.warn("Error getting status for server ".concat(e,":"),t.error),{status:"error",message:t.error};return t}catch(r){return a.warn("Failed to get status for server ".concat(e,":"),r),{status:"error",message:"Failed to get server status: ".concat(r instanceof Error?r.message:"Unknown error")}}}async deleteServerConfig(e){try{let r=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e)),{method:"DELETE"});return await r.json()}catch(r){return a.warn("Failed to delete server config for ".concat(e,":"),r),{error:"Failed to delete server config"}}}async retryServer(e){return a.debug("Retrying server status for: ".concat(e)),this.getServerStatus(e)}async restartServer(e){a.debug("Restarting server: ".concat(e));try{let r=await this.updateServerConfig(e,{disabled:!0});if(r.error)return a.warn("Failed to disable server ".concat(e," during restart:"),r.error),{error:"Failed to restart server: ".concat(r.error)};await new Promise(e=>setTimeout(e,1e3));let t=await this.updateServerConfig(e,{disabled:!1});if(t.error)return a.warn("Failed to enable server ".concat(e," during restart:"),t.error),{error:"Failed to restart server: ".concat(t.error)};return a.info("Successfully restarted server ".concat(e)),{success:!0}}catch(r){return a.warn("Failed to restart server ".concat(e,":"),r),{error:"Failed to restart server: ".concat(r instanceof Error?r.message:"Unknown error")}}}constructor(){this.toolsCache=new Map,this.resourcesCache=new Map,this.promptsCache=new Map,this.CACHE_TTL=6e4,this.resourceListVersions=new Map}}let n=new s},22573:(e,r,t)=>{t.d(r,{A:()=>p});var o=t(95155);t(12115);var a=t(33567),s=t(94049),n=t(41983),c=t(25635),i=t(28548),l=t(50430),d=t(63186),u=t(91665);let p=e=>{let{label:r,count:t,expanded:p,onToggle:h,showFolderIcon:m=!1,children:f}=e,y=(0,a.A)();return(0,o.jsxs)(s.default,{sx:{mb:1.5},children:[(0,o.jsxs)(s.default,{role:"button",tabIndex:0,"aria-expanded":p,onClick:h,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),h())},sx:{display:"flex",alignItems:"center",gap:1,px:1,py:.75,borderRadius:1,cursor:"pointer",userSelect:"none",backgroundColor:y.palette.background.default,border:"1px solid ".concat(y.palette.divider),"&:hover":{backgroundColor:y.palette.action.hover}},children:[(0,o.jsx)(n.A,{size:"small","aria-label":p?"Collapse section":"Expand section",onClick:e=>{e.stopPropagation(),h()},sx:{transition:"transform 0.2s",transform:p?"rotate(0deg)":"rotate(-90deg)"},children:(0,o.jsx)(d.A,{fontSize:"small"})}),m&&(0,o.jsx)(u.A,{fontSize:"small",sx:{color:"text.secondary"}}),(0,o.jsx)(c.default,{variant:"subtitle2",sx:{fontWeight:600},children:r}),(0,o.jsx)(i.A,{label:t,size:"small",sx:{height:20,fontSize:"0.7rem"}})]}),(0,o.jsx)(l.A,{in:p,unmountOnExit:!0,children:(0,o.jsx)(s.default,{sx:{pt:1.5},children:f})})]})}},38459:(e,r,t)=>{function o(e,r){let t=[],o=new Map;for(let a of e){let{key:e,label:s}=r(a),n=o.get(e);n||(n={key:e,label:s,items:[]},o.set(e,n),t.push(n)),n.items.push(a)}return t}function a(e){let r=(null!=e?e:"").trim().charAt(0).toUpperCase();return r>="A"&&r<="Z"?{key:"letter:".concat(r),label:r}:{key:"letter:#",label:"#"}}function s(e,r){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Ungrouped",o=new Map,a=[];for(let t of e){var s;let e=null==(s=r(t))?void 0:s.trim();if(e){let r=o.get(e);r?r.push(t):o.set(e,[t])}else a.push(t)}let n=Array.from(o.keys()).sort((e,r)=>e.localeCompare(r)).map(e=>({key:"folder:".concat(e),label:e,items:o.get(e)}));return a.length>0&&n.push({key:"folder:__ungrouped__",label:t,items:a}),n}function n(e,r){let t=new Set;for(let a of e){var o;let e=null==(o=r(a))?void 0:o.trim();e&&t.add(e)}return Array.from(t).sort((e,r)=>e.localeCompare(r))}t.d(r,{Az:()=>o,Je:()=>s,po:()=>a,yF:()=>n})},43076:(e,r,t)=>{t.d(r,{N:()=>c,X:()=>n});let o=(0,t(87021).h)("frontend/services/model");class a{async fetchWithErrorHandling(e,r){try{o.debug("Making API request",{url:e,method:(null==r?void 0:r.method)||"GET"});let t=await fetch(e,r),a=null;try{if(204!==t.status){let r=t.headers.get("content-type");if(r&&r.includes("application/json"))a=await t.json();else{let s=await t.text();o.warn("Received non-JSON response",{url:e,contentType:r,text:s.substring(0,200)}),a=s}}}catch(r){throw o.error("Failed to parse response",{url:e,status:t.status,contentType:t.headers.get("content-type"),parseError:r}),Error("Invalid response format")}if(!t.ok){let s;throw s="object"==typeof a&&null!==a?a.error||a.message||a.errorMessage||JSON.stringify(a):a||"HTTP error! status: ".concat(t.status),o.error("Request failed",{url:e,method:(null==r?void 0:r.method)||"GET",status:t.status,error:s,data:a}),Error(s)}return o.debug("API request successful",{url:e,method:(null==r?void 0:r.method)||"GET",status:t.status}),a}catch(t){if(t instanceof TypeError&&"Failed to fetch"===t.message)throw o.error("Network error",{url:e,method:(null==r?void 0:r.method)||"GET",error:t}),Error("Unable to connect to the server. Please check your internet connection.");if(t instanceof Error)throw t;throw o.error("API request failed",{url:e,method:(null==r?void 0:r.method)||"GET",error:t}),Error("Failed to complete request")}}async tryLoadModels(){try{let e=await this.fetchWithErrorHandling("/api/model");return Array.isArray(e)?e:null}catch(e){return o.error("Failed to load models",e),null}}async loadModels(){var e;return null!=(e=await this.tryLoadModels())?e:[]}async getModel(e){try{return await this.fetchWithErrorHandling("/api/model/".concat(encodeURIComponent(e)))}catch(r){return o.error("Failed to get model",{id:e,error:r}),null}}async addModel(e){try{if(!e.provider)return{success:!1,error:"Provider is required"};o.debug("Attempting to add model",{displayName:e.displayName,provider:e.provider});let r=await this.fetchWithErrorHandling("/api/model",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});return o.debug("Model added successfully",{modelId:r.id,displayName:r.displayName}),{success:!0,model:r}}catch(t){o.error("Failed to add model",{displayName:e.displayName,provider:e.provider,error:t instanceof Error?t.message:t});let r=t instanceof Error?t.message:"Failed to add model";if(r.includes("display name already exists"))return{success:!1,error:'The display name "'.concat(e.displayName,'" is already in use. Please choose a different name.')};if(r.includes("technical name already exists"))return{success:!1,error:'A model with the name "'.concat(e.name,'" already exists. Please choose a different name.')};return{success:!1,error:r}}}async updateModel(e){try{if(!e.id)return{success:!1,error:"Model ID is required"};o.debug("Attempting to update model",{modelId:e.id,displayName:e.displayName});let r=await this.fetchWithErrorHandling("/api/model/".concat(encodeURIComponent(e.id)),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});return o.debug("Model updated successfully",{modelId:e.id,displayName:e.displayName}),{success:!0,model:r}}catch(t){o.error("Failed to update model",{modelId:e.id,displayName:e.displayName,error:t instanceof Error?t.message:t});let r=t instanceof Error?t.message:"Failed to update model";return r.includes("display name")&&r.includes("already exists"),{success:!1,error:r}}}async deleteModel(e){try{if(!e)return{success:!1,error:"Model ID is required"};let r=await this.getModel(e);if(!r)return{success:!1,error:"Model not found"};return o.debug("Attempting to delete model",{modelId:e,displayName:r.displayName}),await this.fetchWithErrorHandling("/api/model/".concat(encodeURIComponent(e)),{method:"DELETE"}),o.debug("Model deleted successfully",{modelId:e,displayName:r.displayName}),{success:!0}}catch(a){let r;try{let t=await this.getModel(e);r=null==t?void 0:t.displayName}catch(e){}o.error("Failed to delete model",{modelId:e,displayName:r,error:a instanceof Error?a.message:a});let t=a instanceof Error?a.message:"Failed to delete model";if(t.includes("not found"))return{success:!1,error:"The model no longer exists or has already been deleted"};return{success:!1,error:t}}}async updateModelApiKey(e,r){try{let t=await this.getModel(e);if(!t)return{success:!1,error:"Model not found"};return await this.updateModel({...t,ApiKey:r})}catch(r){return o.error("Failed to update model API key",{modelId:e,error:r}),{success:!1,error:r instanceof Error?r.message:"Failed to update API key"}}}async testModel(e){return o.debug("Testing model",{modelId:e.modelId,name:e.name}),await this.fetchWithErrorHandling("/api/model/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async fetchProviderModels(e,r,t,a){try{var s;o.debug("Fetching provider models",{baseUrl:e,modelId:r,searchTerm:t?'"'.concat(t,'"'):"none",apiKey:a?"provided":"not provided"});let n=await this.fetchWithErrorHandling("/api/model/provider",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:e,modelId:r,searchTerm:t,apiKey:a})});return o.debug("Provider models fetched successfully",{baseUrl:e,modelCount:(null==(s=n.models)?void 0:s.length)||0,searchTerm:t?'"'.concat(t,'"'):"none"}),n.models||[]}catch(r){return o.error("Failed to fetch provider models",{baseUrl:e,searchTerm:t,error:r}),[]}}}let s=null,n=()=>(s||(s=new a),s),c=new Proxy({},{get(e,r){let t=n(),o=t[r];return"function"==typeof o?o.bind(t):o}})},56290:(e,r,t)=>{t.d(r,{z:()=>o});async function o(e,r){if(!e.body||"function"!=typeof e.body.getReader)throw Error("Response has no readable body to stream");let t=e.body.getReader(),o=new TextDecoder,a=function(){let e="",r=(e,r)=>{let t=e.trim();if(t)try{r.push(JSON.parse(t))}catch(e){}};return{push(t){let o;e+=t;let a=[];for(;(o=e.indexOf("\n"))>=0;)r(e.slice(0,o),a),e=e.slice(o+1);return a},flush(){let t=[];return r(e,t),e="",t}}}();try{for(;;){let{value:e,done:s}=await t.read();if(s)break;for(let t of a.push(o.decode(e,{stream:!0})))r(t)}let e=o.decode();if(e)for(let t of a.push(e))r(t);for(let e of a.flush())r(e)}finally{try{t.releaseLock()}catch(e){}}}},81956:(e,r,t)=>{t.d(r,{A:()=>b});var o=t(95155),a=t(12115),s=t(36314),n=t(86973),c=t(49501),i=t(17681),l=t(21067),d=t(2778),u=t(52363),p=t(65036),h=t(9562),m=t(75912),f=t(91871),y=t(9693),g=t(91665),w=t(7517),v=t(8190);let b=e=>{let{anchorEl:r,open:t,currentFolder:b,folders:C,onClose:E,onAssign:A}=e,[x,S]=(0,a.useState)(!1),[j,k]=(0,a.useState)(""),F=e=>{A(e),E()},T=()=>{let e=j.trim();e&&(S(!1),F(e))};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(s.A,{anchorEl:r,open:t,onClose:E,children:[C.length>0&&C.map(e=>(0,o.jsxs)(n.A,{onClick:()=>F(e),selected:e===b,children:[(0,o.jsx)(c.A,{children:e===b?(0,o.jsx)(y.A,{fontSize:"small"}):(0,o.jsx)(g.A,{fontSize:"small"})}),(0,o.jsx)(i.A,{primary:e})]},e)),C.length>0&&(0,o.jsx)(l.A,{}),(0,o.jsxs)(n.A,{onClick:()=>{k(""),S(!0)},children:[(0,o.jsx)(c.A,{children:(0,o.jsx)(w.A,{fontSize:"small"})}),(0,o.jsx)(i.A,{primary:"New folder…"})]}),b&&(0,o.jsxs)(n.A,{onClick:()=>F(void 0),children:[(0,o.jsx)(c.A,{children:(0,o.jsx)(v.A,{fontSize:"small"})}),(0,o.jsx)(i.A,{primary:"Remove from folder"})]})]}),(0,o.jsxs)(d.A,{open:x,onClose:()=>S(!1),maxWidth:"xs",fullWidth:!0,children:[(0,o.jsx)(u.A,{children:"New folder"}),(0,o.jsx)(p.A,{children:(0,o.jsx)(h.A,{autoFocus:!0,margin:"dense",label:"Folder name",fullWidth:!0,value:j,onChange:e=>k(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),T())}})}),(0,o.jsxs)(m.A,{children:[(0,o.jsx)(f.A,{onClick:()=>S(!1),children:"Cancel"}),(0,o.jsx)(f.A,{variant:"contained",disabled:!j.trim(),onClick:T,children:"Create"})]})]})]})}},87021:(e,r,t)=>{t.d(r,{h:()=>i});let o={LOG_LEVEL:3},a={VERBOSE:-1,DEBUG:0,INFO:1,WARN:2,ERROR:3},s="number"==typeof o.LOG_LEVEL?o.LOG_LEVEL:a.ERROR;function n(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(r>6)return String(e);if(!(e instanceof Error))return e;let t={name:e.name,message:e.message};for(let o of Object.getOwnPropertyNames(e)){if("name"===o||"message"===o)continue;let a=e[o];"function"!=typeof a&&("stack"===o?t.stack=a:"cause"===o?t.cause=n(a,r+1):"errors"===o&&Array.isArray(a)?t.errors=a.map(e=>n(e,r+1)):t[o]=a)}return t}function c(e,r,t,o,c){if(e>=("number"==typeof c?c:s)){if("function"==typeof o)try{o=o()}catch(e){o="[lazy log data threw]"}let s=new Date().toISOString(),c="[".concat(s,"] [").concat(r,"]"),i="".concat(c," ").concat(t);if(void 0!==o)if(o instanceof Error||"object"==typeof o)try{let e=o instanceof Error?n(o):o,r=JSON.stringify(e,(e,r)=>r instanceof Error?n(r):r,2);i+=":\n".concat(r)}catch(e){i+=": [Object cannot be stringified]"}else i+=": ".concat(o);switch(e){case a.VERBOSE:console.debug("[VERBOSE] ".concat(i));break;case a.DEBUG:console.debug(i);break;case a.INFO:console.info(i);break;case a.WARN:console.warn(i);break;case a.ERROR:console.error(i);break;default:console.log(i)}}}function i(e,r){let t,o=((t=e.replace(/^src\//,"")).startsWith("/")&&(t=t.substring(1)),t);return{verbose:(e,t)=>{c(a.VERBOSE,o,e,t,r)},debug:(e,t)=>{c(a.DEBUG,o,e,t,r)},info:(e,t)=>{c(a.INFO,o,e,t,r)},warn:(e,t)=>{c(a.WARN,o,e,t,r)},error:(e,t)=>{c(a.ERROR,o,e,t,r)}}}},94929:(e,r,t)=>{t.d(r,{default:()=>n});var o=t(95155);t(12115);var a=t(94049),s=t(4474);let n=e=>{let{size:r="medium",color:t="primary",className:n="",sx:c={}}=e,i="white"===t?{color:"#fff",...c}:c;return(0,o.jsxs)(a.default,{component:"span",sx:{display:"inline-block",lineHeight:0,...i},className:n,role:"status",children:[(0,o.jsx)(s.default,{size:{small:16,medium:24,large:36}[r],color:"white"===t?"inherit":t,"aria-hidden":"true"}),(0,o.jsx)(a.default,{component:"span",sx:{position:"absolute",width:"1px",height:"1px",padding:0,margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:0},children:"Loading..."})]})}},97104:(e,r,t)=>{t.d(r,{Aq:()=>a,Xk:()=>n,vi:()=>s});var o=t(12115);function a(e,r){try{let t=window.localStorage.getItem(e);if(null===t)return r;return JSON.parse(t)}catch(e){return r}}function s(e,r){try{window.localStorage.setItem(e,JSON.stringify(r))}catch(e){}}function n(e,r){let[t,n]=(0,o.useState)(()=>a(e,r));return[t,(0,o.useCallback)(r=>{n(t=>{let o="function"==typeof r?r(t):r;return s(e,o),o})},[e])]}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8401],{13622:(t,e,a)=>{a.d(e,{A:()=>o});let o=a(12115).createContext({})},14913:(t,e,a)=>{a.d(e,{A:()=>A});var o=a(12115),r=a(2821),n=a(57001),i=a(17419),l=a(48116),c=a(66964),s=a(16625),d=a(81852),p=a(85795),u=a(95195);function v(t){return(0,u.Ay)("MuiToggleButtonGroup",t)}let h=(0,p.A)("MuiToggleButtonGroup",["root","selected","horizontal","vertical","disabled","grouped","groupedHorizontal","groupedVertical","fullWidth","firstButton","lastButton","middleButton"]);var g=a(13622),b=a(89410),m=a(38267),y=a(95155);let f=(0,l.Ay)("div",{name:"MuiToggleButtonGroup",slot:"Root",overridesResolver:(t,e)=>{let{ownerState:a}=t;return[{["& .".concat(h.grouped)]:e.grouped},{["& .".concat(h.grouped)]:e["grouped".concat((0,d.A)(a.orientation))]},{["& .".concat(h.firstButton)]:e.firstButton},{["& .".concat(h.lastButton)]:e.lastButton},{["& .".concat(h.middleButton)]:e.middleButton},e.root,"vertical"===a.orientation&&e.vertical,a.fullWidth&&e.fullWidth]}})((0,c.A)(t=>{let{theme:e}=t;return{display:"inline-flex",borderRadius:(e.vars||e).shape.borderRadius,variants:[{props:{orientation:"vertical"},style:{flexDirection:"column",["& .".concat(h.grouped)]:{["&.".concat(h.selected," + .").concat(h.grouped,".").concat(h.selected)]:{borderTop:0,marginTop:0}},["& .".concat(h.firstButton,",& .").concat(h.middleButton)]:{borderBottomLeftRadius:0,borderBottomRightRadius:0},["& .".concat(h.lastButton,",& .").concat(h.middleButton)]:{marginTop:-1,borderTop:"1px solid transparent",borderTopLeftRadius:0,borderTopRightRadius:0},["& .".concat(h.lastButton,".").concat(m.A.disabled,",& .").concat(h.middleButton,".").concat(m.A.disabled)]:{borderTop:"1px solid transparent"}}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{orientation:"horizontal"},style:{["& .".concat(h.grouped)]:{["&.".concat(h.selected," + .").concat(h.grouped,".").concat(h.selected)]:{borderLeft:0,marginLeft:0}},["& .".concat(h.firstButton,",& .").concat(h.middleButton)]:{borderTopRightRadius:0,borderBottomRightRadius:0},["& .".concat(h.lastButton,",& .").concat(h.middleButton)]:{marginLeft:-1,borderLeft:"1px solid transparent",borderTopLeftRadius:0,borderBottomLeftRadius:0},["& .".concat(h.lastButton,".").concat(m.A.disabled,",& .").concat(h.middleButton,".").concat(m.A.disabled)]:{borderLeft:"1px solid transparent"}}}]}})),A=o.forwardRef(function(t,e){let a=(0,s.b)({props:t,name:"MuiToggleButtonGroup"}),{children:l,className:c,color:p="standard",disabled:u=!1,exclusive:h=!1,fullWidth:m=!1,onChange:A,orientation:x="horizontal",size:B="medium",value:C,...R}=a,k={...a,disabled:u,fullWidth:m,orientation:x,size:B},w=(t=>{let{classes:e,orientation:a,fullWidth:o,disabled:r}=t,i={root:["root",a,o&&"fullWidth"],grouped:["grouped","grouped".concat((0,d.A)(a)),r&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]};return(0,n.A)(i,v,e)})(k),z=o.useCallback((t,e)=>{let a;if(!A)return;let o=C&&C.indexOf(e);C&&o>=0?(a=C.slice()).splice(o,1):a=C?C.concat(e):[e],A(t,a)},[A,C]),T=o.useCallback((t,e)=>{A&&A(t,C===e?null:e)},[A,C]),O=o.useMemo(()=>({className:w.grouped,onChange:h?T:z,value:C,size:B,fullWidth:m,color:p,disabled:u}),[w.grouped,h,T,z,C,B,m,p,u]),M=(0,i.A)(l),W=M.length;return(0,y.jsx)(f,{role:"group",className:(0,r.A)(w.root,c),ref:e,ownerState:k,...R,children:(0,y.jsx)(g.A.Provider,{value:O,children:M.map((t,e)=>(0,y.jsx)(b.A.Provider,{value:(t=>{let e=0===t,a=t===W-1;return e&&a?"":e?w.firstButton:a?w.lastButton:w.middleButton})(e),children:t},e))})})})},17419:(t,e,a)=>{a.d(e,{A:()=>r});var o=a(12115);function r(t){return o.Children.toArray(t).filter(t=>o.isValidElement(t))}},38267:(t,e,a)=>{a.d(e,{A:()=>i,J:()=>n});var o=a(85795),r=a(95195);function n(t){return(0,r.Ay)("MuiToggleButton",t)}let i=(0,o.A)("MuiToggleButton",["root","disabled","selected","standard","primary","secondary","sizeSmall","sizeMedium","sizeLarge","fullWidth"])},57883:(t,e,a)=>{a.d(e,{A:()=>f});var o=a(12115),r=a(2821),n=a(37821),i=a(57001),l=a(8532),c=a(95070),s=a(81852),d=a(48116),p=a(66964),u=a(74798),v=a(16625),h=a(38267),g=a(13622),b=a(89410),m=a(95155);let y=(0,d.Ay)(c.A,{name:"MuiToggleButton",slot:"Root",overridesResolver:(t,e)=>{let{ownerState:a}=t;return[e.root,e["size".concat((0,s.A)(a.size))]]}})((0,p.A)(t=>{let{theme:e}=t;return{...e.typography.button,borderRadius:(e.vars||e).shape.borderRadius,padding:11,border:"1px solid ".concat((e.vars||e).palette.divider),color:(e.vars||e).palette.action.active,["&.".concat(h.A.disabled)]:{color:(e.vars||e).palette.action.disabled,border:"1px solid ".concat((e.vars||e).palette.action.disabledBackground)},"&:hover":{textDecoration:"none",backgroundColor:e.vars?"rgba(".concat(e.vars.palette.text.primaryChannel," / ").concat(e.vars.palette.action.hoverOpacity,")"):(0,l.X4)(e.palette.text.primary,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[{props:{color:"standard"},style:{["&.".concat(h.A.selected)]:{color:(e.vars||e).palette.text.primary,backgroundColor:e.vars?"rgba(".concat(e.vars.palette.text.primaryChannel," / ").concat(e.vars.palette.action.selectedOpacity,")"):(0,l.X4)(e.palette.text.primary,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?"rgba(".concat(e.vars.palette.text.primaryChannel," / calc(").concat(e.vars.palette.action.selectedOpacity," + ").concat(e.vars.palette.action.hoverOpacity,"))"):(0,l.X4)(e.palette.text.primary,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?"rgba(".concat(e.vars.palette.text.primaryChannel," / ").concat(e.vars.palette.action.selectedOpacity,")"):(0,l.X4)(e.palette.text.primary,e.palette.action.selectedOpacity)}}}}},...Object.entries(e.palette).filter((0,u.A)()).map(t=>{let[a]=t;return{props:{color:a},style:{["&.".concat(h.A.selected)]:{color:(e.vars||e).palette[a].main,backgroundColor:e.vars?"rgba(".concat(e.vars.palette[a].mainChannel," / ").concat(e.vars.palette.action.selectedOpacity,")"):(0,l.X4)(e.palette[a].main,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?"rgba(".concat(e.vars.palette[a].mainChannel," / calc(").concat(e.vars.palette.action.selectedOpacity," + ").concat(e.vars.palette.action.hoverOpacity,"))"):(0,l.X4)(e.palette[a].main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?"rgba(".concat(e.vars.palette[a].mainChannel," / ").concat(e.vars.palette.action.selectedOpacity,")"):(0,l.X4)(e.palette[a].main,e.palette.action.selectedOpacity)}}}}}}),{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{padding:7,fontSize:e.typography.pxToRem(13)}},{props:{size:"large"},style:{padding:15,fontSize:e.typography.pxToRem(15)}}]}})),f=o.forwardRef(function(t,e){var a;let{value:l,...c}=o.useContext(g.A),d=o.useContext(b.A),p=(0,n.A)({...c,selected:(a=t.value,void 0!==l&&void 0!==a&&(Array.isArray(l)?l.includes(a):a===l))},t),u=(0,v.b)({props:p,name:"MuiToggleButton"}),{children:f,className:A,color:x="standard",disabled:B=!1,disableFocusRipple:C=!1,fullWidth:R=!1,onChange:k,onClick:w,selected:z,size:T="medium",value:O,...M}=u,W={...u,color:x,disabled:B,disableFocusRipple:C,fullWidth:R,size:T},L=(t=>{let{classes:e,fullWidth:a,selected:o,disabled:r,size:n,color:l}=t,c={root:["root",o&&"selected",r&&"disabled",a&&"fullWidth","size".concat((0,s.A)(n)),l]};return(0,i.A)(c,h.J,e)})(W);return(0,m.jsx)(y,{className:(0,r.A)(c.className,L.root,A,d||""),disabled:B,focusRipple:!C,ref:e,onClick:t=>{w&&(w(t,O),t.defaultPrevented)||k&&k(t,O)},onChange:k,value:O,ownerState:W,"aria-pressed":z,...M,children:f})})},67895:(t,e,a)=>{a.d(e,{A:()=>f});var o=a(12115),r=a(2821),n=a(57001),i=a(95070),l=a(81852),c=a(85795),s=a(95195);function d(t){return(0,s.Ay)("MuiFab",t)}let p=(0,c.A)("MuiFab",["root","primary","secondary","extended","circular","focusVisible","disabled","colorInherit","sizeSmall","sizeMedium","sizeLarge","info","error","warning","success"]);var u=a(30424),v=a(48116),h=a(66964),g=a(74798),b=a(16625),m=a(95155);let y=(0,v.Ay)(i.A,{name:"MuiFab",slot:"Root",shouldForwardProp:t=>(0,u.A)(t)||"classes"===t,overridesResolver:(t,e)=>{let{ownerState:a}=t;return[e.root,e[a.variant],e["size".concat((0,l.A)(a.size))],"inherit"===a.color&&e.colorInherit,e[(0,l.A)(a.size)],e[a.color]]}})((0,h.A)(t=>{var e,a;let{theme:o}=t;return{...o.typography.button,minHeight:36,transition:o.transitions.create(["background-color","box-shadow","border-color"],{duration:o.transitions.duration.short}),borderRadius:"50%",padding:0,minWidth:0,width:56,height:56,zIndex:(o.vars||o).zIndex.fab,boxShadow:(o.vars||o).shadows[6],"&:active":{boxShadow:(o.vars||o).shadows[12]},color:o.vars?o.vars.palette.text.primary:null==(e=(a=o.palette).getContrastText)?void 0:e.call(a,o.palette.grey[300]),backgroundColor:(o.vars||o).palette.grey[300],"&:hover":{backgroundColor:(o.vars||o).palette.grey.A100,"@media (hover: none)":{backgroundColor:(o.vars||o).palette.grey[300]},textDecoration:"none"},["&.".concat(p.focusVisible)]:{boxShadow:(o.vars||o).shadows[6]},variants:[{props:{size:"small"},style:{width:40,height:40}},{props:{size:"medium"},style:{width:48,height:48}},{props:{variant:"extended"},style:{borderRadius:24,padding:"0 16px",width:"auto",minHeight:"auto",minWidth:48,height:48}},{props:{variant:"extended",size:"small"},style:{width:"auto",padding:"0 8px",borderRadius:17,minWidth:34,height:34}},{props:{variant:"extended",size:"medium"},style:{width:"auto",padding:"0 16px",borderRadius:20,minWidth:40,height:40}},{props:{color:"inherit"},style:{color:"inherit"}}]}}),(0,h.A)(t=>{let{theme:e}=t;return{variants:[...Object.entries(e.palette).filter((0,g.A)(["dark","contrastText"])).map(t=>{let[a]=t;return{props:{color:a},style:{color:(e.vars||e).palette[a].contrastText,backgroundColor:(e.vars||e).palette[a].main,"&:hover":{backgroundColor:(e.vars||e).palette[a].dark,"@media (hover: none)":{backgroundColor:(e.vars||e).palette[a].main}}}}})]}}),(0,h.A)(t=>{let{theme:e}=t;return{["&.".concat(p.disabled)]:{color:(e.vars||e).palette.action.disabled,boxShadow:(e.vars||e).shadows[0],backgroundColor:(e.vars||e).palette.action.disabledBackground}}})),f=o.forwardRef(function(t,e){let a=(0,b.b)({props:t,name:"MuiFab"}),{children:o,className:i,color:c="default",component:s="button",disabled:p=!1,disableFocusRipple:u=!1,focusVisibleClassName:v,size:h="large",variant:g="circular",...f}=a,A={...a,color:c,component:s,disabled:p,disableFocusRipple:u,size:h,variant:g},x=(t=>{let{color:e,variant:a,classes:o,size:r}=t,i={root:["root",a,"size".concat((0,l.A)(r)),"inherit"===e?"colorInherit":e]},c=(0,n.A)(i,d,o);return{...o,...c}})(A);return(0,m.jsx)(y,{className:(0,r.A)(x.root,i),component:s,disabled:p,focusRipple:!u,focusVisibleClassName:(0,r.A)(x.focusVisible,v),ownerState:A,ref:e,...f,classes:x,children:o})})},89410:(t,e,a)=>{a.d(e,{A:()=>o});let o=a(12115).createContext(void 0)}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8404],{9226:(e,t,r)=>{r.d(t,{A:()=>U,o:()=>P});var o=r(95155),a=r(12115),n=r(48116),l=r(29767),s=r(94049),i=r(8532),d=r(33567),c=r(25635),u=r(78470),p=r(41983),h=r(53062),f=r(84578),m=r(28548),g=r(1702),x=r(20699),w=r(4484),y=r(52277),b=r(14915),v=r(89296),j=r(62291),A=r(47529),k=r(12313),C=r(60691),F=r(76808),S=r(33420),T=r(81956);let I=(0,r(87021).h)("components/Flow/FlowDashboard/FlowCard"),E=(0,n.Ay)(l.A,{shouldForwardProp:e=>"selected"!==e})(e=>{let{theme:t,selected:r}=e;return{display:"flex",flexDirection:"column",height:"100%",transition:"all 0.3s cubic-bezier(0.4, 0, 0.2, 1)",position:"relative",border:r?"2px solid ".concat(t.palette.primary.main):"none",boxShadow:r?t.shadows[4]:t.shadows[1],"&:hover":{boxShadow:t.shadows[6],transform:"translateY(-4px)"},"&::before":r?{content:'""',position:"absolute",top:0,left:0,width:"100%",height:"4px",backgroundColor:t.palette.primary.main}:{}}}),N=(0,n.Ay)(s.default)(e=>{let{theme:t}=e;return{height:"140px",backgroundColor:(0,i.X4)(t.palette.background.default,.7),borderRadius:t.shape.borderRadius,display:"flex",alignItems:"center",justifyContent:"center",margin:t.spacing(1),overflow:"hidden",position:"relative"}}),P=()=>(0,o.jsxs)(l.A,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:[(0,o.jsx)(s.default,{sx:{p:1},children:(0,o.jsx)(x.A,{variant:"rectangular",height:140})}),(0,o.jsxs)(f.A,{sx:{flexGrow:1},children:[(0,o.jsx)(x.A,{variant:"text",width:"80%",height:30}),(0,o.jsxs)(s.default,{sx:{display:"flex",gap:1,mt:1},children:[(0,o.jsx)(x.A,{variant:"rectangular",width:60,height:20}),(0,o.jsx)(x.A,{variant:"rectangular",width:90,height:20})]})]}),(0,o.jsxs)(g.A,{sx:{justifyContent:"flex-end",p:1},children:[(0,o.jsx)(x.A,{variant:"circular",width:28,height:28}),(0,o.jsx)(x.A,{variant:"circular",width:28,height:28}),(0,o.jsx)(x.A,{variant:"circular",width:28,height:28})]})]}),U=e=>{var t,r;let{flow:n,selected:l,onSelect:x,onDelete:P,onCopy:U,onEdit:O,onOpenInChat:L,onSetFolder:R,onToggleFavorite:z,folders:D=[],validation:B,pickerMode:X=!1}=e;I.debug("Rendering FlowCard",{flowId:n.id,flowName:n.name});let W=(0,d.A)(),[M,K]=(0,a.useState)(null),H=null!=(t=null==B?void 0:B.errorCount)?t:0,q=null!=(r=null==B?void 0:B.warningCount)?r:0,G=H>0?"error":q>0?"warning":null,J=B?(0,o.jsxs)(s.default,{children:[(0,o.jsx)(c.default,{variant:"caption",sx:{fontWeight:600,display:"block",mb:.5},children:H>0?"".concat(H," problem").concat(1===H?"":"s"," — won't run"):"".concat(q," warning").concat(1===q?"":"s")}),B.issues.slice(0,5).map((e,t)=>(0,o.jsxs)(c.default,{variant:"caption",sx:{display:"block"},children:["• ",e.message]},t)),B.issues.length>5&&(0,o.jsxs)(c.default,{variant:"caption",sx:{display:"block",fontStyle:"italic"},children:["…and ",B.issues.length-5," more"]})]}):null;return(0,o.jsxs)(E,{selected:l,children:[z&&(0,o.jsx)(u.A,{title:n.favorite?"Remove from favorites":"Add to favorites",arrow:!0,placement:"top",children:(0,o.jsx)(p.A,{size:"small",onClick:e=>{e.stopPropagation(),z&&z(n.id)},sx:{position:"absolute",top:4,left:4,zIndex:2,color:n.favorite?W.palette.warning.main:W.palette.text.secondary,backgroundColor:(0,i.X4)(W.palette.background.paper,.6),"&:hover":{backgroundColor:(0,i.X4)(W.palette.background.paper,.9)}},children:n.favorite?(0,o.jsx)(j.A,{fontSize:"small"}):(0,o.jsx)(A.A,{fontSize:"small"})})}),G&&(0,o.jsx)(u.A,{title:J,arrow:!0,placement:"top",children:(0,o.jsxs)(s.default,{sx:{position:"absolute",top:8,right:8,zIndex:2,display:"flex",alignItems:"center",gap:.5,px:.75,py:.25,borderRadius:1,color:"#fff",backgroundColor:"error"===G?W.palette.error.main:W.palette.warning.main,boxShadow:W.shadows[2],pointerEvents:"auto"},children:["error"===G?(0,o.jsx)(C.A,{sx:{fontSize:16}}):(0,o.jsx)(F.A,{sx:{fontSize:16}}),(0,o.jsx)(c.default,{variant:"caption",sx:{fontWeight:700,lineHeight:1},children:"error"===G?H:q})]})}),(0,o.jsxs)(h.A,{onClick:()=>x(n.id),sx:{display:"flex",flexDirection:"column",alignItems:"stretch",height:"100%",position:"relative"},children:[(0,o.jsx)(N,{children:(()=>{if(0===n.nodes.length)return(0,o.jsx)(s.default,{sx:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,o.jsx)(c.default,{color:"textSecondary",align:"center",children:"Empty Flow"})});let e=n.nodes.map(e=>{var t,r;return null!=(r=null==(t=e.position)?void 0:t.x)?r:0}),t=n.nodes.map(e=>{var t,r;return null!=(r=null==(t=e.position)?void 0:t.y)?r:0}),r=Math.min(...e),a=Math.min(...t),l=Math.max(...e)+180,i=Math.max(...t)+70,d="".concat(r-40," ").concat(a-40," ").concat(l-r+80," ").concat(i-a+80),u=e=>{var t,r,o,a;return{cx:(null!=(o=null==(t=e.position)?void 0:t.x)?o:0)+90,cy:(null!=(a=null==(r=e.position)?void 0:r.y)?a:0)+35}};return(0,o.jsx)(s.default,{sx:{width:"100%",height:"100%",p:1},children:(0,o.jsxs)("svg",{width:"100%",height:"100%",viewBox:d,preserveAspectRatio:"xMidYMid meet",style:{display:"block"},children:[n.edges.map((e,t)=>{let r=n.nodes.find(t=>t.id===e.source),a=n.nodes.find(t=>t.id===e.target);if(!r||!a)return null;let l=u(r),s=u(a);return(0,o.jsx)("line",{x1:l.cx,y1:l.cy,x2:s.cx,y2:s.cy,stroke:W.palette.text.secondary,strokeWidth:2,opacity:.5,vectorEffect:"non-scaling-stroke"},e.id||t)}),n.nodes.map(e=>{var t,r,a,n,l,s;let i=null!=(n=null==(t=e.position)?void 0:t.x)?n:0,d=null!=(l=null==(r=e.position)?void 0:r.y)?l:0,c=null!=(s=null==(a=e.data)?void 0:a.type)?s:"process",u=(0,S.M6)(c,W);return(0,o.jsxs)("g",{children:[(0,o.jsx)("rect",{x:i,y:d,width:180,height:70,rx:12,fill:u,opacity:.85,stroke:W.palette.background.paper,strokeWidth:2,vectorEffect:"non-scaling-stroke"}),(0,o.jsx)("text",{x:i+90,y:d+35,textAnchor:"middle",dominantBaseline:"central",fill:"#fff",fontSize:35,fontWeight:"bold",children:c.substring(0,1).toUpperCase()})]},e.id)})]})})})()}),(0,o.jsxs)(f.A,{sx:{flexGrow:1,pb:0},children:[(0,o.jsx)(c.default,{variant:"h6",component:"div",noWrap:!0,children:n.name}),n.description&&(0,o.jsx)(u.A,{title:n.description,placement:"bottom-start",children:(0,o.jsx)(c.default,{variant:"body2",color:"text.secondary",sx:{mt:.5,display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"},children:n.description})}),(0,o.jsxs)(s.default,{sx:{display:"flex",gap:.5,mt:1,flexWrap:"wrap"},children:[(0,o.jsx)(m.A,{size:"small",label:"".concat(n.nodes.length," nodes"),color:"primary",variant:"outlined",sx:{fontSize:"0.7rem",height:20}}),(0,o.jsx)(m.A,{size:"small",label:"".concat(n.edges.length," connections"),color:"secondary",variant:"outlined",sx:{fontSize:"0.7rem",height:20}})]})]})]}),!X&&(0,o.jsxs)(g.A,{sx:{justifyContent:"flex-end",p:1,opacity:.7,"&:hover":{opacity:1}},children:[L&&(0,o.jsx)(u.A,{title:"Start a conversation with this flow",children:(0,o.jsx)(p.A,{size:"small",onClick:e=>{e.stopPropagation(),L&&L(n.id)},color:"primary",children:(0,o.jsx)(k.A,{fontSize:"small"})})}),O&&(0,o.jsx)(u.A,{title:"Edit flow metadata",children:(0,o.jsx)(p.A,{size:"small",onClick:e=>{e.stopPropagation(),O&&O(n.id)},children:(0,o.jsx)(b.A,{fontSize:"small"})})}),U&&(0,o.jsx)(u.A,{title:"Copy flow",children:(0,o.jsx)(p.A,{size:"small",onClick:e=>{e.stopPropagation(),U&&U(n.id)},children:(0,o.jsx)(y.A,{fontSize:"small"})})}),R&&(0,o.jsx)(u.A,{title:n.folder?"Folder: ".concat(n.folder):"Move to folder",children:(0,o.jsx)(p.A,{size:"small",onClick:e=>{e.stopPropagation(),K(e.currentTarget)},color:n.folder?"primary":"default",children:(0,o.jsx)(v.A,{fontSize:"small"})})}),P&&(0,o.jsx)(u.A,{title:"Delete flow",children:(0,o.jsx)(p.A,{size:"small",onClick:e=>{e.stopPropagation(),P&&P(n.id)},color:"error",children:(0,o.jsx)(w.A,{fontSize:"small"})})})]}),!X&&R&&(0,o.jsx)(T.A,{anchorEl:M,open:!!M,currentFolder:n.folder,folders:D,onClose:()=>K(null),onAssign:e=>R(n.id,e)})]})}},33420:(e,t,r)=>{r.d(t,{$Q:()=>C,C2:()=>F,IK:()=>M,M6:()=>O,Uw:()=>W,lA:()=>H,nH:()=>A,pF:()=>J,v2:()=>K,vm:()=>X,vp:()=>k,z3:()=>G,z9:()=>q});var o=r(95155),a=r(12115),n=r(22539),l=r(76122),s=r(48116),i=r(33567),d=r(2300),c=r(94049),u=r(25635),p=r(41983),h=r(50430),f=r(12313),m=r(56350),g=r(77842),x=r(55930),w=r(59323),y=r(20195),b=r(11096),v=r(63186),j=r(62962);let A="#009688",k="#7E57C2",C="#E91E63",F="#F48FB1",S={start:{main:()=>"#795548",light:()=>"#A1887F"},process:{main:e=>e.palette.secondary.main,light:e=>e.palette.secondary.light},finish:{main:e=>e.palette.success.main,light:e=>e.palette.success.light},mcp:{main:e=>e.palette.info.main,light:e=>e.palette.info.light},subflow:{main:e=>e.palette.warning.main,light:e=>e.palette.warning.light},resource:{main:()=>A,light:()=>"#4DB6AC"},signal:{main:()=>k,light:()=>"#B39DDB"},trigger:{main:()=>C,light:()=>F}},T=(e,t)=>{var r;return(null!=(r=S[e])?r:S.start).main(t)},I=(0,s.Ay)(d.A,{shouldForwardProp:e=>!["nodeType","selected"].includes(e)})(e=>{let{theme:t,nodeType:r,selected:o}=e;return{padding:t.spacing(1.5),width:"200px",borderRadius:"8px",backgroundColor:t.palette.background.paper,border:"2px solid ".concat(T(r,t)),boxShadow:o?"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(T(r,t),", 0 3px 10px rgba(0,0,0,0.1)")}}}),E=(0,s.Ay)(c.default,{shouldForwardProp:e=>"nodeType"!==e})(e=>{let{theme:t,nodeType:r}=e;return{display:"flex",alignItems:"center",justifyContent:"space-between",borderBottom:"1px solid ".concat(((e,t)=>{var r;return(null!=(r=S[e])?r:S.start).light(t)})(r,t)),marginBottom:t.spacing(1),paddingBottom:t.spacing(.5)}}),N=(0,s.Ay)(c.default)({display:"flex",alignItems:"center",gap:"8px"}),P=(0,s.Ay)(c.default)(e=>{let{theme:t}=e;return{marginTop:t.spacing(1),fontSize:"0.8rem"}}),U=(0,s.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)")}}),O=(e,t)=>T(e,t),L=e=>({backgroundColor:e.palette.info.main,borderColor:"dark"===e.palette.mode?e.palette.background.paper:"white",width:16,height:16,borderRadius:8,borderWidth:2}),R=e=>({backgroundColor:e.palette.secondary.main,borderColor:"dark"===e.palette.mode?e.palette.background.paper:"white",width:16,height:16,borderRadius:8,borderWidth:2}),z=e=>({backgroundColor:e.palette.primary.main,borderColor:"dark"===e.palette.mode?e.palette.background.paper:"white",width:16,height:16,borderRadius:8,borderWidth:2}),D=e=>({backgroundColor:A,borderColor:"dark"===e.palette.mode?e.palette.background.paper:"white",width:16,height:16,borderRadius:8,borderWidth:2}),B=e=>{let{data:t,nodeType:r,selected:s}=e,d=(0,i.A)(),[c,F]=(0,a.useState)(!1),S=t||{label:"No Label",properties:{}},T=S.properties||{},O="signal"===r?"string"==typeof T.topic&&T.topic.trim()?T.topic.trim():"string"==typeof S.label&&S.label?S.label:"Signal":"string"==typeof S.label?S.label:"No Label",B="signal"===r?Object.fromEntries(Object.entries(T).filter(e=>{let[t]=e;return"topic"!==t})):T,X=Object.keys(B).length;return(0,o.jsx)(o.Fragment,{children:(0,o.jsxs)(I,{elevation:2,nodeType:r,selected:s,children:[(()=>{if("mcp"===r)return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h7,{id:"mcp-top",type:"target",position:l.yX.Top,style:L(d)}),(0,o.jsx)(n.h7,{id:"mcp-right",type:"target",position:l.yX.Right,style:L(d)}),(0,o.jsx)(n.h7,{id:"mcp-bottom",type:"source",position:l.yX.Bottom,style:L(d)}),(0,o.jsx)(n.h7,{id:"mcp-left",type:"target",position:l.yX.Left,style:L(d)})]});if("process"===r)return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h7,{id:"process-top",type:"target",position:l.yX.Top,style:R(d)}),(0,o.jsx)(n.h7,{id:"process-bottom",type:"source",position:l.yX.Bottom,style:R(d)}),(0,o.jsx)(n.h7,{id:"process-left-mcp",type:"source",position:l.yX.Left,style:{...z(d),top:"30%"}}),(0,o.jsx)(n.h7,{id:"process-right-mcp",type:"source",position:l.yX.Right,style:{...z(d),top:"30%"}}),(0,o.jsx)(n.h7,{id:"process-left-resource",type:"source",position:l.yX.Left,style:{...D(d),top:"70%"}}),(0,o.jsx)(n.h7,{id:"process-right-resource",type:"source",position:l.yX.Right,style:{...D(d),top:"70%"}})]});if("resource"===r)return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h7,{id:"resource-in",type:"target",position:l.yX.Left,style:D(d)}),(0,o.jsx)(n.h7,{id:"resource-out",type:"source",position:l.yX.Right,style:D(d)})]});if("start"===r)return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h7,{id:"start-top",type:"target",position:l.yX.Top,style:R(d)}),(0,o.jsx)(n.h7,{id:"start-bottom",type:"source",position:l.yX.Bottom,style:R(d)})]});if("finish"===r)return(0,o.jsx)(n.h7,{id:"finish-top",type:"target",position:l.yX.Top,style:R(d)});else if("subflow"===r)return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h7,{id:"subflow-top",type:"target",position:l.yX.Top,style:R(d)}),(0,o.jsx)(n.h7,{id:"subflow-bottom",type:"source",position:l.yX.Bottom,style:R(d)})]});else if("signal"===r)return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h7,{id:"signal-top",type:"target",position:l.yX.Top,style:R(d)}),(0,o.jsx)(n.h7,{id:"signal-bottom",type:"source",position:l.yX.Bottom,style:R(d)})]});else if("trigger"===r)return(0,o.jsx)(n.h7,{id:"trigger-bottom",type:"source",position:l.yX.Bottom,style:{...R(d),backgroundColor:C}});return null})(),(0,o.jsxs)(E,{nodeType:r,children:[(0,o.jsxs)(N,{children:[(e=>{switch(e){case"start":default:return(0,o.jsx)(f.A,{sx:{color:"#795548"}});case"process":return(0,o.jsx)(m.A,{color:"secondary"});case"finish":return(0,o.jsx)(g.A,{color:"success"});case"mcp":return(0,o.jsx)(m.A,{color:"info"});case"subflow":return(0,o.jsx)(x.A,{sx:{color:"warning.main"}});case"resource":return(0,o.jsx)(w.A,{sx:{color:A}});case"signal":return(0,o.jsx)(y.A,{sx:{color:k}});case"trigger":return(0,o.jsx)(b.A,{sx:{color:C}})}})(r),(0,o.jsx)(u.default,{variant:"subtitle2",fontWeight:"bold",children:O})]}),X>0&&(0,o.jsx)(p.A,{size:"small",onClick:e=>{e.stopPropagation(),F(!c)},sx:{padding:.5},children:c?(0,o.jsx)(j.A,{fontSize:"small"}):(0,o.jsx)(v.A,{fontSize:"small"})})]}),(0,o.jsx)(h.A,{in:c,children:(0,o.jsx)(P,{children:Object.entries(B).map(e=>{let[t,r]=e;return(0,o.jsxs)(U,{children:[(0,o.jsxs)(u.default,{variant:"caption",sx:{fontWeight:"bold"},children:[t,":"]}),(0,o.jsxs)(u.default,{variant:"caption",children:[String(r).substring(0,30),String(r).length>30?"...":""]})]},t)})})}),X>0&&!c&&(0,o.jsx)(u.default,{variant:"caption",color:"text.secondary",children:"".concat(X," properties configured")})]})})},X=(0,a.memo)(function(e){return(0,o.jsx)(B,{...e,nodeType:"start",selected:e.selected})}),W=(0,a.memo)(function(e){return(0,o.jsx)(B,{...e,nodeType:"process",selected:e.selected})}),M=(0,a.memo)(function(e){return(0,o.jsx)(B,{...e,nodeType:"finish",selected:e.selected})}),K=(0,a.memo)(function(e){return(0,o.jsx)(B,{...e,nodeType:"mcp",selected:e.selected})}),H=(0,a.memo)(function(e){return(0,o.jsx)(B,{...e,nodeType:"subflow",selected:e.selected})}),q=(0,a.memo)(function(e){return(0,o.jsx)(B,{...e,nodeType:"resource",selected:e.selected})}),G=(0,a.memo)(function(e){return(0,o.jsx)(B,{...e,nodeType:"signal",selected:e.selected})}),J=(0,a.memo)(function(e){return(0,o.jsx)(B,{...e,nodeType:"trigger",selected:e.selected})})},48072:(e,t,r)=>{r.d(t,{CR:()=>d,Lg:()=>l,eZ:()=>i,fC:()=>n});var o=r(88107),a=r(38459);let n={"name-asc":"Name (A-Z)","name-desc":"Name (Z-A)",provider:"Provider","context-desc":"Context (largest)","context-asc":"Context (smallest)"},l=e=>e.displayName||e.name||"",s=e=>(0,o.T_)(e.provider,e.adapter).label;function i(e,t){switch(t){case"provider":{let t=s(e);return{key:"provider:".concat(t),label:t}}case"context-asc":case"context-desc":var r;return"number"!=typeof(r=e.contextWindow)||Number.isNaN(r)?{key:"ctx:unknown",label:"Unknown context"}:r<=8e3?{key:"ctx:<=8k",label:"≤ 8K tokens"}:r<=32e3?{key:"ctx:8k-32k",label:"8K–32K tokens"}:r<=128e3?{key:"ctx:32k-128k",label:"32K–128K tokens"}:r<=1e6?{key:"ctx:128k-1m",label:"128K–1M tokens"}:{key:"ctx:>1m",label:"> 1M tokens"};default:return(0,a.po)(l(e))}}function d(e,t){let r=(e,r)=>{switch(t){case"name-asc":return l(e).localeCompare(l(r));case"name-desc":return l(r).localeCompare(l(e));case"provider":return s(e).localeCompare(s(r))||l(e).localeCompare(l(r));case"context-desc":case"context-asc":{let o="number"!=typeof e.contextWindow||Number.isNaN(e.contextWindow)?void 0:e.contextWindow,a="number"!=typeof r.contextWindow||Number.isNaN(r.contextWindow)?void 0:r.contextWindow;if(void 0===o&&void 0===a)return l(e).localeCompare(l(r));if(void 0===o)return 1;if(void 0===a)return -1;let n="context-desc"===t?a-o:o-a;return 0!==n?n:l(e).localeCompare(l(r))}default:return 0}};return[...e].sort((e,t)=>{let o=Number(!!t.favorite)-Number(!!e.favorite);return 0!==o?o:r(e,t)})}},68503:(e,t,r)=>{r.d(t,{E:()=>c});var o=r(12115),a=r(97104),n=r(38459),l=r(48072),s=r(65818),i=r(88377);let d={models:{defaultSort:"name-asc",sort:(e,t)=>(0,l.CR)(e,t),deriveSortGroup:(e,t)=>(0,l.eZ)(e,t),getFolder:e=>e.folder,getSearchText:e=>{var t;return"".concat((0,l.Lg)(e)," ").concat(null!=(t=e.name)?t:"")}},mcp:{defaultSort:"name-asc",sort:(e,t)=>(0,s.oO)(e,t),deriveSortGroup:(e,t)=>(0,s.mO)(e,t),getFolder:e=>e.folder,getSearchText:e=>{var t,r,o;return"".concat(null!=(t=e.name)?t:""," ").concat(null!=(o=null!=(r=e.rootPath)?r:e.path)?o:"")}},flows:{defaultSort:"name-asc",sort:(e,t)=>(0,i.NP)(e,t),deriveSortGroup:(e,t)=>(0,i.ts)(e,t),getFolder:e=>e.folder,getSearchText:e=>{var t;return null!=(t=e.name)?t:""}}};function c(e,t){let r=d[e],[l,s]=(0,o.useState)(""),[i]=(0,a.Xk)("flujo-ui:".concat(e,":sort"),r.defaultSort),[c]=(0,a.Xk)("flujo-ui:".concat(e,":group"),"none"),[u,p]=(0,a.Xk)("flujo-ui:".concat(e,":collapsed"),[]),h=(0,o.useMemo)(()=>new Set(u),[u]),f=(0,o.useMemo)(()=>{let e=l.trim().toLowerCase(),o=e?t.filter(t=>r.getSearchText(t).toLowerCase().includes(e)):t;return r.sort([...o],i)},[t,l,i,r]),m=(0,o.useMemo)(()=>"folder"===c?(0,n.Je)(f,e=>r.getFolder(e)):"sort"===c?(0,n.Az)(f,e=>r.deriveSortGroup(e,i)):null,[c,f,i,r]);return{searchTerm:l,setSearchTerm:s,sortOption:i,groupMode:c,items:f,groups:m,collapsedKeys:h,toggleGroup:(0,o.useCallback)(e=>{p(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[p])}}},88107:(e,t,r)=>{r.d(t,{T_:()=>a,xx:()=>o});let o=[{id:"openai",label:"OpenAI",provider:"openai",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://api.openai.com/v1",showBaseUrl:!0},{id:"openai-responses",label:"OpenAI (Responses API)",provider:"openai",adapter:"openai-responses",sdkLabel:"OpenAI SDK (Responses)",baseUrl:"https://api.openai.com/v1",showBaseUrl:!0,defaultModels:["gpt-5","gpt-5-mini","o4-mini","o3"]},{id:"openrouter",label:"OpenRouter",provider:"openrouter",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://openrouter.ai/api/v1",showBaseUrl:!0},{id:"requesty",label:"Requesty",provider:"requesty",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://router.requesty.ai/v1",showBaseUrl:!0},{id:"xai",label:"X.ai",provider:"xai",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://api.x.ai/v1",showBaseUrl:!0},{id:"ollama",label:"Ollama",provider:"ollama",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"http://localhost:11434/v1",showBaseUrl:!0},{id:"litellm",label:"LiteLLM",provider:"litellm",adapter:"openai",sdkLabel:"OpenAI SDK (via LiteLLM Proxy)",baseUrl:"http://localhost:4000/v1",showBaseUrl:!0},{id:"gemini-openai",label:"Gemini (OpenAI Format)",provider:"gemini",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://generativelanguage.googleapis.com/v1beta/openai/",showBaseUrl:!0},{id:"gemini-native",label:"Gemini (Native)",provider:"gemini",adapter:"gemini",sdkLabel:"GenAI SDK",baseUrl:"",showBaseUrl:!1,defaultModels:["gemini-2.5-pro","gemini-2.5-flash","gemini-2.5-flash-lite","gemini-2.0-flash"]},{id:"anthropic-openai",label:"Anthropic (OpenAI Format)",provider:"anthropic",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://api.anthropic.com/v1/",showBaseUrl:!0},{id:"anthropic-native",label:"Anthropic (Native)",provider:"anthropic",adapter:"anthropic",sdkLabel:"Anthropic SDK",baseUrl:"",showBaseUrl:!1,defaultModels:["claude-opus-4-8","claude-sonnet-4-6","claude-haiku-4-5-20251001","claude-fable-5"]},{id:"claude-subscription",label:"Claude Subscription",provider:"claude-subscription",adapter:"claude-cli",sdkLabel:"Claude CLI",baseUrl:"",showBaseUrl:!1,defaultModels:["opus","sonnet","haiku","fable"]},{id:"codex",label:"Codex (OpenAI)",provider:"codex",adapter:"codex-cli",sdkLabel:"Codex SDK",baseUrl:"",showBaseUrl:!1,defaultModels:["gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna","gpt-5.5","gpt-5.4","gpt-5.4-mini"]}];function a(e,t){let r=e||"openai",a=t||"openai";return o.find(e=>e.provider===r&&e.adapter===a)||o.find(e=>e.provider===r)||o[0]}},88377:(e,t,r)=>{r.d(t,{K:()=>n,NP:()=>i,ts:()=>l});var o=r(38459);function a(e){var t,r;return null!=(r=null!=(t=e.updatedAt)?t:e.createdAt)?r:0}function n(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now();if(!e)return{key:"recency:unknown",label:"No date"};let r=t-e;return r<864e5?{key:"recency:today",label:"Today"}:r<6048e5?{key:"recency:week",label:"This week"}:r<2592e6?{key:"recency:month",label:"This month"}:{key:"recency:older",label:"Older"}}function l(e,t){switch(t){case"name-asc":case"name-desc":return(0,o.po)(e.name);case"most-nodes":case"least-nodes":var r;return 0===(r=e.nodes.length)?{key:"nodes:0",label:"0 nodes"}:r<=2?{key:"nodes:1-2",label:"1–2 nodes"}:r<=5?{key:"nodes:3-5",label:"3–5 nodes"}:r<=10?{key:"nodes:6-10",label:"6–10 nodes"}:{key:"nodes:11+",label:"11+ nodes"};case"newest":case"oldest":return n(a(e));default:return{key:"all",label:"All flows"}}}function s(e,t){return e.name.localeCompare(t.name)||e.id.localeCompare(t.id)}function i(e,t){let r=(e,r)=>{switch(t){case"name-asc":return e.name.localeCompare(r.name);case"name-desc":return r.name.localeCompare(e.name);case"most-nodes":return r.nodes.length-e.nodes.length;case"least-nodes":return e.nodes.length-r.nodes.length;case"newest":{let t=a(r)-a(e);return 0!==t?t:s(e,r)}case"oldest":{let t=a(e)-a(r);return 0!==t?t:s(e,r)}default:return 0}};return[...e].sort((e,t)=>{let o=Number(!!t.favorite)-Number(!!e.favorite);return 0!==o?o:r(e,t)})}},90057:(e,t,r)=>{r.d(t,{g:()=>l});var o=r(74879);let a=(0,r(87021).h)("frontend/services/flow/index");class n{async loadFlows(){a.debug("loadFlows: Entering method");try{if(this.flowsCache)return a.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 a.debug("loadFlows: Loaded flows from API",{count:t.length}),this.flowsCache=t,t}catch(e){return a.warn("loadFlows: Failed to load flows:",e),[]}}async getFlow(e){a.debug("getFlow: Entering method",{flowId:e});try{if(this.flowsCache){let t=this.flowsCache.find(t=>t.id===e);if(t)return a.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 a.debug("getFlow: Flow ".concat(e," not found")),null;let r=await t.json();throw Error(r.error||"Failed to get flow: ".concat(e))}let r=await t.json();return a.debug("getFlow: Retrieved flow from API",{flowId:e}),r}catch(t){return a.warn("getFlow: Failed to get flow ".concat(e,":"),t),null}}async addFlow(e){a.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 r=await t.json();return this.flowsCache&&this.flowsCache.push(r),a.debug("addFlow: Flow added successfully",{flowId:e.id}),{success:!0}}catch(e){return a.warn("addFlow: Failed to add flow:",e),{success:!1,error:e instanceof Error?e.message:"Failed to add flow"}}}async generateFlow(e,t,r){a.debug("generateFlow: Entering method",{modelId:t,allowInstall:null==r?void 0:r.allowInstall,allowSubflows:null==r?void 0:r.allowSubflows,maxDepth:null==r?void 0:r.maxDepth});try{var o,n,l,s,i,d,c;let u=await fetch("/api/flow/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:e,modelId:t,allowInstall:(null==r?void 0:r.allowInstall)===!0,allowSubflows:(null==r?void 0:r.allowSubflows)===!0,..."number"==typeof(null==r?void 0:r.maxDepth)?{maxDepth:r.maxDepth}:{}})}),p=await u.json().catch(()=>null);if(!u.ok)return{success:!1,error:(null==p?void 0:p.error)||"Failed to generate flow"};let h=Array.isArray(p.flows)&&p.flows.length>0?p.flows:[{flow:p.flow,validation:p.validation}];return a.debug("generateFlow: Draft generated",{flowId:null==(o=p.flow)?void 0:o.id,flowCount:h.length,attempts:p.attempts,errorCount:null==(n=p.validation)?void 0:n.errorCount,installedServers:null!=(i=null==(l=p.installedServers)?void 0:l.length)?i:0}),{success:!0,flow:p.flow,validation:p.validation,flows:h,rootFlowId:null!=(d=p.rootFlowId)?d:null==(s=p.flow)?void 0:s.id,attempts:p.attempts,installedServers:null!=(c=p.installedServers)?c:[]}}catch(e){return a.warn("generateFlow: Failed to generate flow:",e),{success:!1,error:e instanceof Error?e.message:"Failed to generate flow"}}}async improveFlow(e,t,r,o){a.debug("improveFlow: Entering method",{flowId:null==e?void 0:e.id,modelId:r,allowInstall:null==o?void 0:o.allowInstall});try{var n,l,s,i,d;let c=await fetch("/api/flow/improve",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({flow:e,description:t,modelId:r,allowInstall:(null==o?void 0:o.allowInstall)===!0})}),u=await c.json().catch(()=>null);if(!c.ok)return{success:!1,error:(null==u?void 0:u.error)||"Failed to improve flow"};return a.debug("improveFlow: Draft revised",{flowId:null==(n=u.flow)?void 0:n.id,attempts:u.attempts,errorCount:null==(l=u.validation)?void 0:l.errorCount,installedServers:null!=(i=null==(s=u.installedServers)?void 0:s.length)?i:0}),{success:!0,flow:u.flow,validation:u.validation,attempts:u.attempts,installedServers:null!=(d=u.installedServers)?d:[]}}catch(e){return a.warn("improveFlow: Failed to improve flow:",e),{success:!1,error:e instanceof Error?e.message:"Failed to improve flow"}}}async updateFlow(e){a.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 r=await t.json();if(this.flowsCache){let t=this.flowsCache.findIndex(t=>t.id===e.id);t>=0?this.flowsCache[t]=r:this.flowsCache.push(r)}return a.debug("updateFlow: Flow updated successfully",{flowId:e.id}),{success:!0}}catch(e){return a.warn("updateFlow: Failed to update flow:",e),{success:!1,error:e instanceof Error?e.message:"Failed to update flow"}}}async deleteFlow(e){a.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)),a.debug("deleteFlow: Flow deleted successfully",{flowId:e}),{success:!0}}catch(e){return a.warn("deleteFlow: Failed to delete flow:",e),{success:!1,error:e instanceof Error?e.message:"Failed to delete flow"}}}async listFlowVersions(e){a.debug("listFlowVersions: Entering method",{flowId:e});try{let t=await fetch("/api/flow/".concat(encodeURIComponent(e),"/versions"));if(!t.ok){let e=await t.json().catch(()=>null);throw Error((null==e?void 0:e.error)||"Failed to list flow versions")}let r=await t.json();return Array.isArray(r.versions)?r.versions:[]}catch(t){return a.warn("listFlowVersions: Failed for flow ".concat(e,":"),t),[]}}async getFlowVersion(e,t){a.debug("getFlowVersion: Entering method",{flowId:e,versionId:t});try{let r=await fetch("/api/flow/".concat(encodeURIComponent(e),"/versions/").concat(encodeURIComponent(t)));if(!r.ok){if(404===r.status)return null;let e=await r.json().catch(()=>null);throw Error((null==e?void 0:e.error)||"Failed to get flow version")}return await r.json()}catch(r){return a.warn("getFlowVersion: Failed for ".concat(e,"/").concat(t,":"),r),null}}createNode(e,t){return a.debug("createNode: Entering method",{type:e,position:t}),{id:(0,o.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,o.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";a.debug("createNewFlow: Entering method",{name:e});let t=Date.now();return{id:(0,o.A)(),name:e,createdAt:t,updatedAt:t,nodes:[this.createStartNode()],edges:[]}}createHistoryEntry(e,t){return a.debug("createHistoryEntry: Entering method"),{nodes:[...e],edges:[...t]}}generateSampleFlow(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Sample Flow";return a.debug("generateSampleFlow: Entering method",{name:e}),{id:(0,o.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 l=new n},93632:(e,t,r)=>{r.d(t,{P:()=>n});let o=(0,r(87021).h)("frontend/services/plannedExecutions");class a{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 o.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)}),r=await t.json();if(!t.ok)return{success:!1,error:(null==r?void 0:r.error)||"HTTP ".concat(t.status)};return{success:!0,execution:r.execution}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Request failed"}}}async update(e,t){try{let r=await fetch("/api/planned-executions/".concat(e),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),o=await r.json();if(!r.ok)return{success:!1,error:(null==o?void 0:o.error)||"HTTP ".concat(r.status)};return{success:!0,execution:o.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"}),r=await t.json();if(!t.ok)return{success:!1,error:(null==r?void 0:r.error)||"HTTP ".concat(t.status)};return{success:!0,record:r.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 r=await t.json();return Array.isArray(null==r?void 0:r.runs)?r.runs:[]}catch(t){return o.warn("Failed to load runs for ".concat(e),t),[]}}async previewSchedule(e,t){try{let r=await fetch("/api/planned-executions/preview-schedule",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cron:e,timezone:t})});if(!r.ok)throw Error("HTTP ".concat(r.status));return await r.json()}catch(e){return{valid:!1,error:e instanceof Error?e.message:"Preview failed",nextRuns:[]}}}}let n=new a},96362:(e,t,r)=>{r.d(t,{A:()=>m});var o=r(95155);r(12115);var a=r(2778),n=r(52363),l=r(94049),s=r(25635),i=r(41983),d=r(21067),c=r(65036),u=r(75912),p=r(91871),h=r(77073),f=r(99162);let m=e=>{let{open:t,onClose:r,title:m,description:g,maxWidth:x="md",...w}=e;return(0,o.jsxs)(a.A,{open:t,onClose:r,maxWidth:x,fullWidth:!0,children:[(0,o.jsx)(n.A,{component:"div",children:(0,o.jsxs)(l.default,{display:"flex",alignItems:"center",justifyContent:"space-between",children:[(0,o.jsx)(s.default,{variant:"h6",children:m}),(0,o.jsx)(i.A,{edge:"end",color:"inherit",onClick:r,"aria-label":"close",children:(0,o.jsx)(h.A,{})})]})}),(0,o.jsx)(d.A,{}),(0,o.jsxs)(c.A,{sx:{p:3},children:[g&&(0,o.jsx)(s.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:g}),(0,o.jsx)(f.A,{...w})]}),(0,o.jsx)(u.A,{children:(0,o.jsx)(p.A,{onClick:r,children:"Cancel"})})]})}},99162:(e,t,r)=>{r.d(t,{A:()=>f});var o=r(95155),a=r(12115),n=r(33077),l=r(94049),s=r(9562),i=r(56422),d=r(4474),c=r(25635),u=r(51611),p=r(22573);let h={xs:12,sm:6,md:4},f=e=>{let{isLoading:t=!1,error:r=null,emptyMessage:f="Nothing to choose from.",loadingMessage:m="Loading…",skeleton:g,skeletonCount:x=4,columns:w=h,items:y,searchable:b=!1,searchPlaceholder:v="Search…",searchTerm:j,onSearchChange:A,groups:k,collapsedKeys:C,onToggleGroup:F}=e,S={...h,...w},[T,I]=(0,a.useState)(""),E=void 0!==j,N=E?j:T,[P,U]=(0,a.useState)(new Set),O=null!=C?C:P,L=e=>(0,o.jsx)(n.Ay,{container:!0,spacing:2,alignItems:"stretch",children:e.map(e=>(0,o.jsx)(n.Ay,{item:!0,xs:S.xs,sm:S.sm,md:S.md,lg:S.lg,sx:{display:"flex"},children:(0,o.jsx)(l.default,{sx:{width:"100%"},children:e.content})},e.key))}),R=b?(0,o.jsx)(s.A,{placeholder:v,variant:"outlined",size:"small",fullWidth:!0,value:N,onChange:e=>(e=>{null==A||A(e),E||I(e)})(e.target.value),sx:{mb:2},InputProps:{startAdornment:(0,o.jsx)(i.A,{position:"start",children:(0,o.jsx)(u.A,{fontSize:"small"})})}}):null,z=e=>(0,o.jsxs)(l.default,{children:[R,e]});if(t)return z(g?(0,o.jsx)(n.Ay,{container:!0,spacing:2,children:Array.from({length:x}).map((e,t)=>(0,o.jsx)(n.Ay,{item:!0,xs:S.xs,sm:S.sm,md:S.md,lg:S.lg,children:g},"skeleton-".concat(t)))}):(0,o.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",gap:1,py:2},children:[(0,o.jsx)(d.default,{size:20}),(0,o.jsx)(c.default,{variant:"body2",color:"text.secondary",children:m})]}));if(r)return z((0,o.jsx)(c.default,{color:"error",variant:"body2",sx:{py:2},children:r}));let D=E?"":N.trim().toLowerCase(),B=e=>{var t;return!D||(null!=(t=e.searchText)?t:"").toLowerCase().includes(D)},X=(0,o.jsx)(c.default,{variant:"body2",color:"text.secondary",sx:{py:2},children:f});if(k){let e=k.map(e=>({...e,items:e.items.filter(B)})).filter(e=>e.items.length>0);return z(0===e.length?X:(0,o.jsx)(o.Fragment,{children:e.map(e=>(0,o.jsx)(p.A,{label:e.label,count:e.items.length,expanded:!O.has(e.key),onToggle:()=>(e=>{if(F)return void F(e);U(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})})(e.key),children:L(e.items)},e.key))}))}let W=(null!=y?y:[]).filter(B);return z(0===W.length?X:L(W))}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8678],{4484:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(15485),o=r(95155);let i=(0,n.A)((0,o.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z"}),"Delete")},8567:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=r(17828)},12857:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(15485),o=r(95155);let i=(0,n.A)((0,o.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2m5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12z"}),"Cancel")},17828:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,r(64054).createAsyncLocalStorage)()},24437:(e,t,r)=>{function n(e){let{reason:t,children:r}=e;return r}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return n}}),r(24553)},29767:(e,t,r)=>{r.d(t,{A:()=>v});var n=r(12115),o=r(2821),i=r(57001),a=r(48116),s=r(16625),l=r(2300),d=r(85795),c=r(95195);function u(e){return(0,c.Ay)("MuiCard",e)}(0,d.A)("MuiCard",["root"]);var p=r(95155);let h=(0,a.Ay)(l.A,{name:"MuiCard",slot:"Root",overridesResolver:(e,t)=>t.root})({overflow:"hidden"}),v=n.forwardRef(function(e,t){let r=(0,s.b)({props:e,name:"MuiCard"}),{className:n,raised:a=!1,...l}=r,d={...r,raised:a},c=(e=>{let{classes:t}=e;return(0,i.A)({root:["root"]},u,t)})(d);return(0,p.jsx)(h,{className:(0,o.A)(c.root,n),elevation:a?8:void 0,ref:t,ownerState:d,...l})})},36552:(e,t,r)=>{function n(e){let{moduleIds:t}=e;return null}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return n}}),r(95155),r(47650),r(8567),r(77278)},42063:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(15485),o=r(95155);let i=(0,n.A)((0,o.jsx)("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3"}),"Visibility")},45587:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(15485),o=r(95155);let i=(0,n.A)([(0,o.jsx)("path",{d:"m12 2-5.5 9h11z"},"0"),(0,o.jsx)("circle",{cx:"17.5",cy:"17.5",r:"4.5"},"1"),(0,o.jsx)("path",{d:"M3 13.5h8v8H3z"},"2")],"Category")},48363:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(15485),o=r(95155);let i=(0,n.A)((0,o.jsx)("path",{d:"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5"}),"Link")},49501:(e,t,r)=>{r.d(t,{A:()=>h});var n=r(12115),o=r(2821),i=r(57001),a=r(48116),s=r(66964),l=r(16625),d=r(2319),c=r(14028),u=r(95155);let p=(0,a.Ay)("div",{name:"MuiListItemIcon",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,"flex-start"===r.alignItems&&t.alignItemsFlexStart]}})((0,s.A)(e=>{let{theme:t}=e;return{minWidth:56,color:(t.vars||t).palette.action.active,flexShrink:0,display:"inline-flex",variants:[{props:{alignItems:"flex-start"},style:{marginTop:8}}]}})),h=n.forwardRef(function(e,t){let r=(0,l.b)({props:e,name:"MuiListItemIcon"}),{className:a,...s}=r,h=n.useContext(c.A),v={...r,alignItems:h.alignItems},f=(e=>{let{alignItems:t,classes:r}=e;return(0,i.A)({root:["root","flex-start"===t&&"alignItemsFlexStart"]},d.f,r)})(v);return(0,u.jsx)(p,{className:(0,o.A)(f.root,a),ownerState:v,ref:t,...s})})},50430:(e,t,r)=>{r.d(t,{A:()=>M});var n=r(12115),o=r(2821),i=r(9488),a=r(47079),s=r(57001),l=r(48116),d=r(33567),c=r(66964),u=r(16625),p=r(80813),h=r(47250),v=r(69582),f=r(85795),A=r(95195);function m(e){return(0,A.Ay)("MuiCollapse",e)}(0,f.A)("MuiCollapse",["root","horizontal","vertical","entered","hidden","wrapper","wrapperInner"]);var y=r(95155);let g=(0,l.Ay)("div",{name:"MuiCollapse",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,t[r.orientation],"entered"===r.state&&t.entered,"exited"===r.state&&!r.in&&"0px"===r.collapsedSize&&t.hidden]}})((0,c.A)(e=>{let{theme:t}=e;return{height:0,overflow:"hidden",transition:t.transitions.create("height"),variants:[{props:{orientation:"horizontal"},style:{height:"auto",width:0,transition:t.transitions.create("width")}},{props:{state:"entered"},style:{height:"auto",overflow:"visible"}},{props:{state:"entered",orientation:"horizontal"},style:{width:"auto"}},{props:e=>{let{ownerState:t}=e;return"exited"===t.state&&!t.in&&"0px"===t.collapsedSize},style:{visibility:"hidden"}}]}})),b=(0,l.Ay)("div",{name:"MuiCollapse",slot:"Wrapper",overridesResolver:(e,t)=>t.wrapper})({display:"flex",width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),x=(0,l.Ay)("div",{name:"MuiCollapse",slot:"WrapperInner",overridesResolver:(e,t)=>t.wrapperInner})({width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),w=n.forwardRef(function(e,t){let r=(0,u.b)({props:e,name:"MuiCollapse"}),{addEndListener:l,children:c,className:f,collapsedSize:A="0px",component:w,easing:M,in:C,onEnter:S,onEntered:j,onEntering:R,onExit:z,onExited:H,onExiting:I,orientation:E="vertical",style:P,timeout:_=p.p0.standard,TransitionComponent:L=i.Ay,...O}=r,N={...r,orientation:E,collapsedSize:A},V=(e=>{let{orientation:t,classes:r}=e;return(0,s.A)({root:["root","".concat(t)],entered:["entered"],hidden:["hidden"],wrapper:["wrapper","".concat(t)],wrapperInner:["wrapperInner","".concat(t)]},m,r)})(N),k=(0,d.A)(),T=(0,a.A)(),D=n.useRef(null),F=n.useRef(),W="number"==typeof A?"".concat(A,"px"):A,B="horizontal"===E,X=B?"width":"height",q=n.useRef(null),G=(0,v.A)(t,q),J=e=>t=>{if(e){let r=q.current;void 0===t?e(r):e(r,t)}},K=()=>D.current?D.current[B?"clientWidth":"clientHeight"]:0,Q=J((e,t)=>{D.current&&B&&(D.current.style.position="absolute"),e.style[X]=W,S&&S(e,t)}),U=J((e,t)=>{let r=K();D.current&&B&&(D.current.style.position="");let{duration:n,easing:o}=(0,h.c)({style:P,timeout:_,easing:M},{mode:"enter"});if("auto"===_){let t=k.transitions.getAutoHeightDuration(r);e.style.transitionDuration="".concat(t,"ms"),F.current=t}else e.style.transitionDuration="string"==typeof n?n:"".concat(n,"ms");e.style[X]="".concat(r,"px"),e.style.transitionTimingFunction=o,R&&R(e,t)}),Y=J((e,t)=>{e.style[X]="auto",j&&j(e,t)}),Z=J(e=>{e.style[X]="".concat(K(),"px"),z&&z(e)}),$=J(H),ee=J(e=>{let t=K(),{duration:r,easing:n}=(0,h.c)({style:P,timeout:_,easing:M},{mode:"exit"});if("auto"===_){let r=k.transitions.getAutoHeightDuration(t);e.style.transitionDuration="".concat(r,"ms"),F.current=r}else e.style.transitionDuration="string"==typeof r?r:"".concat(r,"ms");e.style[X]=W,e.style.transitionTimingFunction=n,I&&I(e)});return(0,y.jsx)(L,{in:C,onEnter:Q,onEntered:Y,onEntering:U,onExit:Z,onExited:$,onExiting:ee,addEndListener:e=>{"auto"===_&&T.start(F.current||0,e),l&&l(q.current,e)},nodeRef:q,timeout:"auto"===_?null:_,...O,children:(e,t)=>{let{ownerState:r,...n}=t;return(0,y.jsx)(g,{as:w,className:(0,o.A)(V.root,f,{entered:V.entered,exited:!C&&"0px"===W&&V.hidden}[e]),style:{[B?"minWidth":"minHeight"]:W,...P},ref:G,ownerState:{...N,state:e},...n,children:(0,y.jsx)(b,{ownerState:{...N,state:e},className:V.wrapper,ref:D,children:(0,y.jsx)(x,{ownerState:{...N,state:e},className:V.wrapperInner,children:c})})})}})});w&&(w.muiSupportAuto=!0);let M=w},51611:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(15485),o=r(95155);let i=(0,n.A)((0,o.jsx)("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14"}),"Search")},53062:(e,t,r)=>{r.d(t,{A:()=>y});var n=r(12115),o=r(2821),i=r(57001),a=r(48116),s=r(66964),l=r(16625),d=r(85795),c=r(95195);function u(e){return(0,c.Ay)("MuiCardActionArea",e)}let p=(0,d.A)("MuiCardActionArea",["root","focusVisible","focusHighlight"]);var h=r(95070),v=r(77765),f=r(95155);let A=(0,a.Ay)(h.A,{name:"MuiCardActionArea",slot:"Root",overridesResolver:(e,t)=>t.root})((0,s.A)(e=>{let{theme:t}=e;return{display:"block",textAlign:"inherit",borderRadius:"inherit",width:"100%",["&:hover .".concat(p.focusHighlight)]:{opacity:(t.vars||t).palette.action.hoverOpacity,"@media (hover: none)":{opacity:0}},["&.".concat(p.focusVisible," .").concat(p.focusHighlight)]:{opacity:(t.vars||t).palette.action.focusOpacity}}})),m=(0,a.Ay)("span",{name:"MuiCardActionArea",slot:"FocusHighlight",overridesResolver:(e,t)=>t.focusHighlight})((0,s.A)(e=>{let{theme:t}=e;return{overflow:"hidden",pointerEvents:"none",position:"absolute",top:0,right:0,bottom:0,left:0,borderRadius:"inherit",opacity:0,backgroundColor:"currentcolor",transition:t.transitions.create("opacity",{duration:t.transitions.duration.short})}})),y=n.forwardRef(function(e,t){let r=(0,l.b)({props:e,name:"MuiCardActionArea"}),{children:n,className:a,focusVisibleClassName:s,slots:d={},slotProps:c={},...p}=r,h=(e=>{let{classes:t}=e;return(0,i.A)({root:["root"],focusHighlight:["focusHighlight"]},u,t)})(r),y={slots:d,slotProps:c},[g,b]=(0,v.A)("root",{elementType:A,externalForwardedProps:{...y,...p},shouldForwardComponentProp:!0,ownerState:r,ref:t,className:(0,o.A)(h.root,a),additionalProps:{focusVisibleClassName:(0,o.A)(s,h.focusVisible)}}),[x,w]=(0,v.A)("focusHighlight",{elementType:m,externalForwardedProps:y,ownerState:r,ref:t,className:h.focusHighlight});return(0,f.jsxs)(g,{...b,children:[n,(0,f.jsx)(x,{...w})]})})},56422:(e,t,r)=>{r.d(t,{A:()=>b});var n,o=r(12115),i=r(2821),a=r(57001),s=r(81852),l=r(25635),d=r(45222),c=r(45918),u=r(48116),p=r(66964),h=r(16625),v=r(85795),f=r(95195);function A(e){return(0,f.Ay)("MuiInputAdornment",e)}let m=(0,v.A)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]);var y=r(95155);let g=(0,u.Ay)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,t["position".concat((0,s.A)(r.position))],!0===r.disablePointerEvents&&t.disablePointerEvents,t[r.variant]]}})((0,p.A)(e=>{let{theme:t}=e;return{display:"flex",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:(t.vars||t).palette.action.active,variants:[{props:{variant:"filled"},style:{["&.".concat(m.positionStart,"&:not(.").concat(m.hiddenLabel,")")]:{marginTop:16}}},{props:{position:"start"},style:{marginRight:8}},{props:{position:"end"},style:{marginLeft:8}},{props:{disablePointerEvents:!0},style:{pointerEvents:"none"}}]}})),b=o.forwardRef(function(e,t){let r=(0,h.b)({props:e,name:"MuiInputAdornment"}),{children:u,className:p,component:v="div",disablePointerEvents:f=!1,disableTypography:m=!1,position:b,variant:x,...w}=r,M=(0,c.A)()||{},C=x;x&&M.variant,M&&!C&&(C=M.variant);let S={...r,hiddenLabel:M.hiddenLabel,size:M.size,disablePointerEvents:f,position:b,variant:C},j=(e=>{let{classes:t,disablePointerEvents:r,hiddenLabel:n,position:o,size:i,variant:l}=e,d={root:["root",r&&"disablePointerEvents",o&&"position".concat((0,s.A)(o)),l,n&&"hiddenLabel",i&&"size".concat((0,s.A)(i))]};return(0,a.A)(d,A,t)})(S);return(0,y.jsx)(d.A.Provider,{value:null,children:(0,y.jsx)(g,{as:v,ownerState:S,className:(0,i.A)(j.root,p),ref:t,...w,children:"string"!=typeof u||m?(0,y.jsxs)(o.Fragment,{children:["start"===b?n||(n=(0,y.jsx)("span",{className:"notranslate","aria-hidden":!0,children:"​"})):null,u]}):(0,y.jsx)(l.default,{color:"textSecondary",children:u})})})})},63186:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(15485),o=r(95155);let i=(0,n.A)((0,o.jsx)("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore")},64054:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{bindSnapshot:function(){return a},createAsyncLocalStorage:function(){return i},createSnapshot:function(){return s}});let r=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class n{disable(){throw r}getStore(){}run(){throw r}exit(){throw r}enterWith(){throw r}static bind(e){return e}}let o="undefined"!=typeof globalThis&&globalThis.AsyncLocalStorage;function i(){return o?new o:new n}function a(e){return o?o.bind(e):n.bind(e)}function s(){return o?o.snapshot():function(e,...t){return e(...t)}}},81952:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(15485),o=r(95155);let i=(0,n.A)((0,o.jsx)("path",{d:"M15 9H9v6h6zm-2 4h-2v-2h2zm8-2V9h-2V7c0-1.1-.9-2-2-2h-2V3h-2v2h-2V3H9v2H7c-1.1 0-2 .9-2 2v2H3v2h2v2H3v2h2v2c0 1.1.9 2 2 2h2v2h2v-2h2v2h2v-2h2c1.1 0 2-.9 2-2v-2h2v-2h-2v-2zm-4 6H7V7h10z"}),"Memory")},84578:(e,t,r)=>{r.d(t,{A:()=>h});var n=r(12115),o=r(2821),i=r(57001),a=r(48116),s=r(16625),l=r(85795),d=r(95195);function c(e){return(0,d.Ay)("MuiCardContent",e)}(0,l.A)("MuiCardContent",["root"]);var u=r(95155);let p=(0,a.Ay)("div",{name:"MuiCardContent",slot:"Root",overridesResolver:(e,t)=>t.root})({padding:16,"&:last-child":{paddingBottom:24}}),h=n.forwardRef(function(e,t){let r=(0,s.b)({props:e,name:"MuiCardContent"}),{className:n,component:a="div",...l}=r,d={...r,component:a},h=(e=>{let{classes:t}=e;return(0,i.A)({root:["root"]},c,t)})(d);return(0,u.jsx)(p,{as:a,className:(0,o.A)(h.root,n),ownerState:d,ref:t,...l})})},86946:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(15485),o=r(95155);let i=(0,n.A)((0,o.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z"}),"Add")}}]);