flujo-ai 3.38.0 → 3.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (997) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +617 -433
  3. package/.next/app-path-routes-manifest.json +42 -26
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +90 -18
  6. package/.next/react-loadable-manifest.json +40 -47
  7. package/.next/routes-manifest.json +34 -0
  8. package/.next/server/app/_not-found/page.js +3 -4
  9. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  10. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/_not-found.html +1 -1
  12. package/.next/server/app/_not-found.rsc +5 -5
  13. package/.next/server/app/api/approvals/[id]/route.js +1 -1
  14. package/.next/server/app/api/approvals/[id]/route.js.nft.json +1 -1
  15. package/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/approvals/route.js +2 -2
  17. package/.next/server/app/api/approvals/route.js.nft.json +1 -1
  18. package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/backup/route.js +1 -1
  20. package/.next/server/app/api/backup/route.js.nft.json +1 -1
  21. package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/bugs/enhance/route.js +2 -2
  24. package/.next/server/app/api/bugs/enhance/route.js.nft.json +1 -1
  25. package/.next/server/app/api/bugs/enhance/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/encryption/secure/route.js +1 -1
  28. package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
  29. package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/env/route.js +2 -2
  31. package/.next/server/app/api/env/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/flow/[id]/convert-process-to-subflow/route.js +1 -0
  33. package/.next/server/app/api/flow/[id]/convert-process-to-subflow/route.js.nft.json +1 -0
  34. package/.next/server/app/api/flow/[id]/convert-process-to-subflow/route_client-reference-manifest.js +1 -0
  35. package/.next/server/app/api/flow/[id]/route.js +1 -1
  36. package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
  37. package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js +1 -1
  39. package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js.nft.json +1 -1
  40. package/.next/server/app/api/flow/[id]/versions/[versionId]/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/flow/[id]/versions/route.js +1 -1
  42. package/.next/server/app/api/flow/[id]/versions/route.js.nft.json +1 -1
  43. package/.next/server/app/api/flow/[id]/versions/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/flow/assist/route.js +1 -0
  45. package/.next/server/app/api/flow/assist/route.js.nft.json +1 -0
  46. package/.next/server/app/api/flow/assist/route_client-reference-manifest.js +1 -0
  47. package/.next/server/app/api/flow/compile/route.js +1 -1
  48. package/.next/server/app/api/flow/compile/route.js.nft.json +1 -1
  49. package/.next/server/app/api/flow/compile/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/flow/generate/route.js +1 -1
  51. package/.next/server/app/api/flow/generate/route.js.nft.json +1 -1
  52. package/.next/server/app/api/flow/generate/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/flow/generator/route.js +2 -2
  54. package/.next/server/app/api/flow/generator/route.js.nft.json +1 -1
  55. package/.next/server/app/api/flow/generator/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/flow/improve/route.js +1 -1
  57. package/.next/server/app/api/flow/improve/route.js.nft.json +1 -1
  58. package/.next/server/app/api/flow/improve/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/flow/prompt-renderer/route.js +2 -2
  60. package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
  61. package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/flow/quick-chat/route.js +1 -1
  63. package/.next/server/app/api/flow/quick-chat/route.js.nft.json +1 -1
  64. package/.next/server/app/api/flow/quick-chat/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/flow/repair/route.js +1 -1
  66. package/.next/server/app/api/flow/repair/route.js.nft.json +1 -1
  67. package/.next/server/app/api/flow/repair/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/flow/route.js +1 -1
  69. package/.next/server/app/api/flow/route.js.nft.json +1 -1
  70. package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/git/route.js +6 -6
  72. package/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/init/route.js +1 -1
  74. package/.next/server/app/api/init/route.js.nft.json +1 -1
  75. package/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/local-models/capability/route.js +1 -1
  77. package/.next/server/app/api/local-models/capability/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/local-models/pull/route.js +1 -1
  79. package/.next/server/app/api/local-models/pull/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/local-models/suggest/route.js +1 -1
  81. package/.next/server/app/api/local-models/suggest/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/mcp/app-sandbox/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/mcp/cancel/route.js +2 -2
  84. package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
  85. package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/mcp/flujo/authoring/route.js +1 -0
  87. package/.next/server/app/api/mcp/flujo/authoring/route.js.nft.json +1 -0
  88. package/.next/server/app/api/mcp/flujo/authoring/route_client-reference-manifest.js +1 -0
  89. package/.next/server/app/api/mcp/flujo/automation/route.js +1 -0
  90. package/.next/server/app/api/mcp/flujo/automation/route.js.nft.json +1 -0
  91. package/.next/server/app/api/mcp/flujo/automation/route_client-reference-manifest.js +1 -0
  92. package/.next/server/app/api/mcp/flujo/flows/route.js +1 -0
  93. package/.next/server/app/api/mcp/flujo/flows/route.js.nft.json +1 -0
  94. package/.next/server/app/api/mcp/flujo/flows/route_client-reference-manifest.js +1 -0
  95. package/.next/server/app/api/mcp/flujo/resources/read/route.js +1 -0
  96. package/.next/server/app/api/mcp/flujo/resources/read/route.js.nft.json +1 -0
  97. package/.next/server/app/api/mcp/flujo/resources/read/route_client-reference-manifest.js +1 -0
  98. package/.next/server/app/api/mcp/flujo/resources/route.js +1 -0
  99. package/.next/server/app/api/mcp/flujo/resources/route.js.nft.json +1 -0
  100. package/.next/server/app/api/mcp/flujo/resources/route_client-reference-manifest.js +1 -0
  101. package/.next/server/app/api/mcp/flujo/servers/route.js +1 -0
  102. package/.next/server/app/api/mcp/flujo/servers/route.js.nft.json +1 -0
  103. package/.next/server/app/api/mcp/flujo/servers/route_client-reference-manifest.js +1 -0
  104. package/.next/server/app/api/mcp/flujo/state/route.js +1 -0
  105. package/.next/server/app/api/mcp/flujo/state/route.js.nft.json +1 -0
  106. package/.next/server/app/api/mcp/flujo/state/route_client-reference-manifest.js +1 -0
  107. package/.next/server/app/api/mcp/flujo/tools/route.js +1 -0
  108. package/.next/server/app/api/mcp/flujo/tools/route.js.nft.json +1 -0
  109. package/.next/server/app/api/mcp/flujo/tools/route_client-reference-manifest.js +1 -0
  110. package/.next/server/app/api/mcp/oauth-capability/route.js +1 -1
  111. package/.next/server/app/api/mcp/oauth-capability/route.js.nft.json +1 -1
  112. package/.next/server/app/api/mcp/oauth-capability/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -1
  114. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
  115. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -1
  117. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
  118. package/.next/server/app/api/mcp/servers/[name]/prompts/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -1
  120. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
  121. package/.next/server/app/api/mcp/servers/[name]/resources/read/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -1
  123. package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
  124. package/.next/server/app/api/mcp/servers/[name]/resources/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
  126. package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
  127. package/.next/server/app/api/mcp/servers/[name]/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -1
  129. package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
  130. package/.next/server/app/api/mcp/servers/[name]/status/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -1
  132. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
  133. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -1
  135. package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
  136. package/.next/server/app/api/mcp/servers/[name]/tools/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/mcp/servers/route.js +1 -1
  138. package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
  139. package/.next/server/app/api/mcp/servers/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/mcp/test-connection/route.js +1 -1
  141. package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
  142. package/.next/server/app/api/mcp/test-connection/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
  144. package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
  145. package/.next/server/app/api/mcp/test-connection/stream/route_client-reference-manifest.js +1 -1
  146. package/.next/server/app/api/mcp-registry/route.js +2 -2
  147. package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
  148. package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/model/[id]/route.js +1 -1
  151. package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
  152. package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/model/provider/route.js +2 -2
  154. package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
  155. package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/model/route.js +1 -1
  157. package/.next/server/app/api/model/route.js.nft.json +1 -1
  158. package/.next/server/app/api/model/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/model/test/route.js +2 -2
  160. package/.next/server/app/api/model/test/route.js.nft.json +1 -1
  161. package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/oauth/callback/route.js +1 -1
  163. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/oauth/initiate/route.js +1 -1
  165. package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/oauth/reset/route.js +2 -2
  167. package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
  168. package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -1
  169. package/.next/server/app/api/packages/build/route.js +1 -1
  170. package/.next/server/app/api/packages/build/route.js.nft.json +1 -1
  171. package/.next/server/app/api/packages/build/route_client-reference-manifest.js +1 -1
  172. package/.next/server/app/api/packages/derive-secrets/route.js +1 -1
  173. package/.next/server/app/api/packages/derive-secrets/route.js.nft.json +1 -1
  174. package/.next/server/app/api/packages/derive-secrets/route_client-reference-manifest.js +1 -1
  175. package/.next/server/app/api/packages/install/route.js +1 -1
  176. package/.next/server/app/api/packages/install/route.js.nft.json +1 -1
  177. package/.next/server/app/api/packages/install/route_client-reference-manifest.js +1 -1
  178. package/.next/server/app/api/packages/install/status/route.js +1 -1
  179. package/.next/server/app/api/packages/install/status/route.js.nft.json +1 -1
  180. package/.next/server/app/api/packages/install/status/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/api/packages/installed/route.js +1 -1
  182. package/.next/server/app/api/packages/installed/route.js.nft.json +1 -1
  183. package/.next/server/app/api/packages/installed/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/api/packages/resolve/route.js +1 -1
  185. package/.next/server/app/api/packages/resolve/route.js.nft.json +1 -1
  186. package/.next/server/app/api/packages/resolve/route_client-reference-manifest.js +1 -1
  187. package/.next/server/app/api/packages/scan-targets/route.js +1 -1
  188. package/.next/server/app/api/packages/scan-targets/route.js.nft.json +1 -1
  189. package/.next/server/app/api/packages/scan-targets/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/api/packages/search/route_client-reference-manifest.js +1 -1
  191. package/.next/server/app/api/packages/uninstall/route.js +1 -1
  192. package/.next/server/app/api/packages/uninstall/route.js.nft.json +1 -1
  193. package/.next/server/app/api/packages/uninstall/route_client-reference-manifest.js +1 -1
  194. package/.next/server/app/api/planned-executions/[id]/route.js +2 -2
  195. package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
  196. package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/api/planned-executions/[id]/run/route.js +2 -2
  198. package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
  199. package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/api/planned-executions/[id]/runs/route.js +2 -2
  201. package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
  202. package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -1
  203. package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/planned-executions/reconcile/route.js +1 -1
  205. package/.next/server/app/api/planned-executions/reconcile/route.js.nft.json +1 -1
  206. package/.next/server/app/api/planned-executions/reconcile/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/planned-executions/route.js +1 -1
  208. package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
  209. package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
  210. package/.next/server/app/api/registry/auth/resend/route.js +1 -1
  211. package/.next/server/app/api/registry/auth/resend/route_client-reference-manifest.js +1 -1
  212. package/.next/server/app/api/registry/auth/reset/route.js +1 -1
  213. package/.next/server/app/api/registry/auth/reset/route_client-reference-manifest.js +1 -1
  214. package/.next/server/app/api/registry/auth/route.js +1 -1
  215. package/.next/server/app/api/registry/auth/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/registry/feedback/route_client-reference-manifest.js +1 -1
  217. package/.next/server/app/api/registry/oauth/callback/route.js +1 -1
  218. package/.next/server/app/api/registry/oauth/callback/route_client-reference-manifest.js +1 -1
  219. package/.next/server/app/api/registry/oauth/initiate/route.js +1 -1
  220. package/.next/server/app/api/registry/oauth/initiate/route_client-reference-manifest.js +1 -1
  221. package/.next/server/app/api/registry/packages/route.js +1 -1
  222. package/.next/server/app/api/registry/packages/route_client-reference-manifest.js +1 -1
  223. package/.next/server/app/api/registry/publish/route.js +1 -1
  224. package/.next/server/app/api/registry/publish/route_client-reference-manifest.js +1 -1
  225. package/.next/server/app/api/registry/settings/route.js +1 -1
  226. package/.next/server/app/api/registry/settings/route_client-reference-manifest.js +1 -1
  227. package/.next/server/app/api/restore/route.js +1 -1
  228. package/.next/server/app/api/restore/route.js.nft.json +1 -1
  229. package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
  230. package/.next/server/app/api/runs/active/route.js +2 -2
  231. package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
  232. package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -1
  233. package/.next/server/app/api/setup/ai-cli/route.js +3 -0
  234. package/.next/server/app/api/setup/ai-cli/route.js.nft.json +1 -0
  235. package/.next/server/app/api/setup/ai-cli/route_client-reference-manifest.js +1 -0
  236. package/.next/server/app/api/statistics/route.js +2 -0
  237. package/.next/server/app/api/statistics/route.js.nft.json +1 -0
  238. package/.next/server/app/api/statistics/route_client-reference-manifest.js +1 -0
  239. package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
  240. package/.next/server/app/api/telemetry/daily-active/route.js +1 -1
  241. package/.next/server/app/api/telemetry/daily-active/route_client-reference-manifest.js +1 -1
  242. package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/waves/route.js +1 -1
  244. package/.next/server/app/api/waves/route.js.nft.json +1 -1
  245. package/.next/server/app/api/waves/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/api/webhooks/[id]/route.js +1 -1
  247. package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
  248. package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
  249. package/.next/server/app/automation/triggers/page.js +2 -0
  250. package/.next/server/app/automation/triggers/page.js.nft.json +1 -0
  251. package/.next/server/app/automation/triggers/page_client-reference-manifest.js +1 -0
  252. package/.next/server/app/automation/triggers.html +1 -0
  253. package/.next/server/app/automation/triggers.meta +7 -0
  254. package/.next/server/app/automation/triggers.rsc +23 -0
  255. package/.next/server/app/automation/waves/page.js +2 -0
  256. package/.next/server/app/automation/waves/page.js.nft.json +1 -0
  257. package/.next/server/app/automation/waves/page_client-reference-manifest.js +1 -0
  258. package/.next/server/app/automation/waves.html +1 -0
  259. package/.next/server/app/automation/waves.meta +7 -0
  260. package/.next/server/app/automation/waves.rsc +22 -0
  261. package/.next/server/app/chat/page.js +6 -58
  262. package/.next/server/app/chat/page.js.nft.json +1 -1
  263. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  264. package/.next/server/app/chat.html +1 -1
  265. package/.next/server/app/chat.rsc +7 -6
  266. package/.next/server/app/docs/page.js +3 -4
  267. package/.next/server/app/docs/page.js.nft.json +1 -1
  268. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  269. package/.next/server/app/docs.html +1 -1
  270. package/.next/server/app/docs.rsc +6 -6
  271. package/.next/server/app/executions/page.js +2 -3
  272. package/.next/server/app/executions/page.js.nft.json +1 -1
  273. package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
  274. package/.next/server/app/executions.html +1 -1
  275. package/.next/server/app/executions.rsc +7 -6
  276. package/.next/server/app/flows/page.js +3 -3
  277. package/.next/server/app/flows/page.js.nft.json +1 -1
  278. package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
  279. package/.next/server/app/flows.html +1 -1
  280. package/.next/server/app/flows.rsc +7 -7
  281. package/.next/server/app/index.html +1 -1
  282. package/.next/server/app/index.rsc +6 -6
  283. package/.next/server/app/mcp/page.js +6 -57
  284. package/.next/server/app/mcp/page.js.nft.json +1 -1
  285. package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
  286. package/.next/server/app/mcp-flows/route.js +2 -1
  287. package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
  288. package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -1
  289. package/.next/server/app/mcp-proxy/[server]/route.js +2 -1
  290. package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
  291. package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -1
  292. package/.next/server/app/mcp.html +1 -1
  293. package/.next/server/app/mcp.rsc +7 -6
  294. package/.next/server/app/models/page.js +64 -2
  295. package/.next/server/app/models/page.js.nft.json +1 -1
  296. package/.next/server/app/models/page_client-reference-manifest.js +1 -1
  297. package/.next/server/app/packages/page.js +2 -2
  298. package/.next/server/app/packages/page.js.nft.json +1 -1
  299. package/.next/server/app/packages/page_client-reference-manifest.js +1 -1
  300. package/.next/server/app/packages.html +1 -1
  301. package/.next/server/app/packages.rsc +6 -6
  302. package/.next/server/app/page.js +3 -4
  303. package/.next/server/app/page.js.nft.json +1 -1
  304. package/.next/server/app/page_client-reference-manifest.js +1 -1
  305. package/.next/server/app/settings/page.js +2 -2
  306. package/.next/server/app/settings/page.js.nft.json +1 -1
  307. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  308. package/.next/server/app/settings.html +1 -1
  309. package/.next/server/app/settings.rsc +6 -6
  310. package/.next/server/app/statistics/page.js +54 -0
  311. package/.next/server/app/statistics/page.js.nft.json +1 -0
  312. package/.next/server/app/statistics/page_client-reference-manifest.js +1 -0
  313. package/.next/server/app/statistics.html +1 -0
  314. package/.next/server/app/statistics.meta +7 -0
  315. package/.next/server/app/statistics.rsc +22 -0
  316. package/.next/server/app/v1/chat/completions/route.js +1 -1
  317. package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
  318. package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -1
  319. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +2 -2
  320. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
  321. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
  322. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +2 -2
  323. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
  324. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -1
  325. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
  326. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
  327. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -1
  328. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
  329. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
  330. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -1
  331. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +2 -2
  332. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
  333. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
  334. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +3 -3
  335. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
  336. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
  337. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js +2 -2
  338. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js.nft.json +1 -1
  339. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route_client-reference-manifest.js +1 -1
  340. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route.js +1 -1
  341. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route.js.nft.json +1 -1
  342. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route_client-reference-manifest.js +1 -1
  343. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js +1 -1
  344. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js.nft.json +1 -1
  345. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route_client-reference-manifest.js +1 -1
  346. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
  347. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
  348. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
  349. package/.next/server/app/v1/chat/conversations/[conversationId]/revert/route.js +2 -0
  350. package/.next/server/app/v1/chat/conversations/[conversationId]/revert/route.js.nft.json +1 -0
  351. package/.next/server/app/v1/chat/conversations/[conversationId]/revert/route_client-reference-manifest.js +1 -0
  352. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +2 -2
  353. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
  354. package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  355. package/.next/server/app/v1/chat/conversations/route.js +2 -2
  356. package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
  357. package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
  358. package/.next/server/app/v1/chat/events/route.js +6 -6
  359. package/.next/server/app/v1/chat/events/route.js.nft.json +1 -1
  360. package/.next/server/app/v1/chat/events/route_client-reference-manifest.js +1 -1
  361. package/.next/server/app/v1/models/route.js +2 -2
  362. package/.next/server/app/v1/models/route.js.nft.json +1 -1
  363. package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -1
  364. package/.next/server/app/waves/page.js +2 -4
  365. package/.next/server/app/waves/page.js.nft.json +1 -1
  366. package/.next/server/app/waves/page_client-reference-manifest.js +1 -1
  367. package/.next/server/app/waves.html +1 -1
  368. package/.next/server/app/waves.rsc +6 -6
  369. package/.next/server/app-paths-manifest.json +42 -26
  370. package/.next/server/chunks/1227.js +1 -1
  371. package/.next/server/chunks/1314.js +1 -1
  372. package/.next/server/chunks/1403.js +3 -0
  373. package/.next/server/chunks/{180.js → 1532.js} +1 -1
  374. package/.next/server/chunks/1539.js +1 -0
  375. package/.next/server/chunks/1662.js +2 -0
  376. package/.next/server/chunks/1805.js +1 -1
  377. package/.next/server/chunks/1925.js +1 -1
  378. package/.next/server/chunks/2069.js +1 -0
  379. package/.next/server/chunks/227.js +1 -1
  380. package/.next/server/chunks/2372.js +2 -2
  381. package/.next/server/chunks/2446.js +1 -0
  382. package/.next/server/chunks/2828.js +2 -0
  383. package/.next/server/chunks/2949.js +1 -0
  384. package/.next/server/chunks/{6034.js → 300.js} +15 -15
  385. package/.next/server/chunks/3032.js +29 -0
  386. package/.next/server/chunks/3206.js +2 -0
  387. package/.next/server/chunks/3262.js +90 -0
  388. package/.next/server/chunks/3418.js +1 -0
  389. package/.next/server/chunks/3945.js +10 -0
  390. package/.next/server/chunks/{6967.js → 3954.js} +3 -3
  391. package/.next/server/chunks/3963.js +6 -0
  392. package/.next/server/chunks/3991.js +2 -0
  393. package/.next/server/chunks/4265.js +1 -1
  394. package/.next/server/chunks/4306.js +1 -1
  395. package/.next/server/chunks/4671.js +1 -1
  396. package/.next/server/chunks/4681.js +1 -1
  397. package/.next/server/chunks/4771.js +2 -2
  398. package/.next/server/chunks/5096.js +1 -1
  399. package/.next/server/chunks/5141.js +2 -0
  400. package/.next/server/chunks/519.js +2 -2
  401. package/.next/server/chunks/5444.js +2 -0
  402. package/.next/server/chunks/5446.js +1 -0
  403. package/.next/server/chunks/{7058.js → 5494.js} +2 -2
  404. package/.next/server/chunks/558.js +1 -1
  405. package/.next/server/chunks/5591.js +1 -0
  406. package/.next/server/chunks/{3312.js → 5642.js} +1 -1
  407. package/.next/server/chunks/566.js +2 -0
  408. package/.next/server/chunks/5750.js +1 -0
  409. package/.next/server/chunks/{7519.js → 5807.js} +1 -1
  410. package/.next/server/chunks/5858.js +1 -0
  411. package/.next/server/chunks/5918.js +436 -0
  412. package/.next/server/chunks/5936.js +1 -0
  413. package/.next/server/chunks/6033.js +1 -0
  414. package/.next/server/chunks/6226.js +4 -4
  415. package/.next/server/chunks/6607.js +1 -0
  416. package/.next/server/chunks/6687.js +1 -0
  417. package/.next/server/chunks/701.js +2 -2
  418. package/.next/server/chunks/7031.js +1 -0
  419. package/.next/server/chunks/7147.js +1 -0
  420. package/.next/server/chunks/7480.js +2 -0
  421. package/.next/server/chunks/{8284.js → 7498.js} +2 -2
  422. package/.next/server/chunks/7506.js +2 -2
  423. package/.next/server/chunks/7508.js +5 -0
  424. package/.next/server/chunks/7628.js +1 -1
  425. package/.next/server/chunks/7630.js +1 -1
  426. package/.next/server/chunks/773.js +9 -0
  427. package/.next/server/chunks/7821.js +1 -1
  428. package/.next/server/chunks/7883.js +1 -0
  429. package/.next/server/chunks/7969.js +1 -1
  430. package/.next/server/chunks/8001.js +1 -1
  431. package/.next/server/chunks/8092.js +1 -1
  432. package/.next/server/chunks/8291.js +1 -0
  433. package/.next/server/chunks/8598.js +1 -0
  434. package/.next/server/chunks/8645.js +1 -1
  435. package/.next/server/chunks/{3489.js → 8730.js} +1 -1
  436. package/.next/server/chunks/8897.js +1 -0
  437. package/.next/server/chunks/8903.js +4 -0
  438. package/.next/server/chunks/8940.js +1 -0
  439. package/.next/server/chunks/9088.js +6 -0
  440. package/.next/server/chunks/9543.js +8 -0
  441. package/.next/server/chunks/9624.js +136 -0
  442. package/.next/server/functions-config-manifest.json +4 -3
  443. package/.next/server/instrumentation.js +1 -1
  444. package/.next/server/instrumentation.js.nft.json +1 -1
  445. package/.next/server/middleware-build-manifest.js +1 -1
  446. package/.next/server/middleware-manifest.json +1 -1
  447. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  448. package/.next/server/pages/404.html +1 -1
  449. package/.next/server/pages/500.html +1 -1
  450. package/.next/server/server-reference-manifest.js +1 -1
  451. package/.next/server/server-reference-manifest.json +1 -1
  452. package/.next/static/b1aMk0634gkkiunttd1SQ/_buildManifest.js +1 -0
  453. package/.next/static/chunks/1161-19176c3e7c655121.js +1 -0
  454. package/.next/static/chunks/1521-1c98c9a56726e053.js +1 -0
  455. package/.next/static/chunks/155-12f2a537db5dacec.js +1 -0
  456. package/.next/static/chunks/1576.bc6ae6c9e6d939d8.js +1 -0
  457. package/.next/static/chunks/1871-dd8c10ed9d37100b.js +1 -0
  458. package/.next/static/chunks/1983-242862b3dc022a26.js +1 -0
  459. package/.next/static/chunks/2005.300528b5119c2d38.js +1 -0
  460. package/.next/static/chunks/2141-dba0d13715fe1a28.js +1 -0
  461. package/.next/static/chunks/2498-4f7f5de1cac6feba.js +1 -0
  462. package/.next/static/chunks/2499-92cd97ce4993999f.js +1 -0
  463. package/.next/static/chunks/3272-42d1acae08d1ef0a.js +1 -0
  464. package/.next/static/chunks/3303-febfba58226aebed.js +1 -0
  465. package/.next/static/chunks/{361.bb75b03b740930cd.js → 361.51d642c530c84295.js} +1 -1
  466. package/.next/static/chunks/3731-64070760ae44448f.js +1 -0
  467. package/.next/static/chunks/3776.72638b35ce9bb874.js +1 -0
  468. package/.next/static/chunks/3816-807978463638bb71.js +1 -0
  469. package/.next/static/chunks/4122-d82fad8d1fca26d6.js +1 -0
  470. package/.next/static/chunks/4123-906362aeb986d6db.js +1 -0
  471. package/.next/static/chunks/4156-3823d1c89c4a7e3d.js +1 -0
  472. package/.next/static/chunks/{4555-c9070f8c79bccfad.js → 4483-00dc5c1b601ec898.js} +3 -3
  473. package/.next/static/chunks/4755-83df83d0dbd97483.js +1 -0
  474. package/.next/static/chunks/4814-31eb5f3b10c651c1.js +1 -0
  475. package/.next/static/chunks/4965.39e24b54c3c6ca58.js +1 -0
  476. package/.next/static/chunks/57-64bab7d5db89c9cc.js +1 -0
  477. package/.next/static/chunks/5954-dd2b25224f389fc0.js +1 -0
  478. package/.next/static/chunks/5962-8c59d06b3ee1c42a.js +1 -0
  479. package/.next/static/chunks/5967-59fde8c214c9ca9f.js +1 -0
  480. package/.next/static/chunks/6417.70056fe81ca21682.js +1 -0
  481. package/.next/static/chunks/6420-25dd04f98f3b34b8.js +1 -0
  482. package/.next/static/chunks/6547-2adc20e1ace927fc.js +1 -0
  483. package/.next/static/chunks/684-289a73150568def2.js +1 -0
  484. package/.next/static/chunks/7203-2704865539fa551d.js +1 -0
  485. package/.next/static/chunks/760-2ad13a61701630da.js +1 -0
  486. package/.next/static/chunks/7711-4b017720ec49c96d.js +1 -0
  487. package/.next/static/chunks/7758-42ab0b9cce1dc0e3.js +1 -0
  488. package/.next/static/chunks/8124-94140ee1dd8ed87c.js +1 -0
  489. package/.next/static/chunks/8135-5b975b9014f8920b.js +1 -0
  490. package/.next/static/chunks/{8198.cd0d3f8429c02862.js → 8198.a9cc35771b354b03.js} +1 -1
  491. package/.next/static/chunks/8326-4915403bc93459d2.js +1 -0
  492. package/.next/static/chunks/8529.b5a43e728bb5bb8a.js +1 -0
  493. package/.next/static/chunks/{6428-951188daa6f74b86.js → 8620-c9fa9d75cdc18a5e.js} +3 -3
  494. package/.next/static/chunks/8853-b80e50cbec6fd13c.js +1 -0
  495. package/.next/static/chunks/8862-0e37dd5488b21c77.js +1 -0
  496. package/.next/static/chunks/889-e64385ddb2259b1b.js +1 -0
  497. package/.next/static/chunks/9001-4c27a608feddb878.js +1 -0
  498. package/.next/static/chunks/9050-fcb7a0c89314acb4.js +1 -0
  499. package/.next/static/chunks/9053-283dd8d615f904a5.js +8 -0
  500. package/.next/static/chunks/9136-9c415453ec02519c.js +1 -0
  501. package/.next/static/chunks/9140.6502327a2c098d33.js +1 -0
  502. package/.next/static/chunks/9195-3c9c4300e7505d9e.js +1 -0
  503. package/.next/static/chunks/9524-b9d2c7e4426edd07.js +1 -0
  504. package/.next/static/chunks/9562-5494feecd8c6f7a3.js +1 -0
  505. package/.next/static/chunks/9611-190b55ade8b3af3c.js +1 -0
  506. package/.next/static/chunks/app/api/approvals/[id]/route-e70b5e2b4e09002b.js +1 -0
  507. package/.next/static/chunks/app/api/approvals/route-e70b5e2b4e09002b.js +1 -0
  508. package/.next/static/chunks/app/api/backup/route-e70b5e2b4e09002b.js +1 -0
  509. package/.next/static/chunks/app/api/browse/route-e70b5e2b4e09002b.js +1 -0
  510. package/.next/static/chunks/app/api/bugs/enhance/route-e70b5e2b4e09002b.js +1 -0
  511. package/.next/static/chunks/app/api/cwd/route-e70b5e2b4e09002b.js +1 -0
  512. package/.next/static/chunks/app/api/encryption/secure/route-e70b5e2b4e09002b.js +1 -0
  513. package/.next/static/chunks/app/api/env/route-e70b5e2b4e09002b.js +1 -0
  514. package/.next/static/chunks/app/api/flow/[id]/convert-process-to-subflow/route-e70b5e2b4e09002b.js +1 -0
  515. package/.next/static/chunks/app/api/flow/[id]/route-e70b5e2b4e09002b.js +1 -0
  516. package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-e70b5e2b4e09002b.js +1 -0
  517. package/.next/static/chunks/app/api/flow/[id]/versions/route-e70b5e2b4e09002b.js +1 -0
  518. package/.next/static/chunks/app/api/flow/assist/route-e70b5e2b4e09002b.js +1 -0
  519. package/.next/static/chunks/app/api/flow/compile/route-e70b5e2b4e09002b.js +1 -0
  520. package/.next/static/chunks/app/api/flow/generate/route-e70b5e2b4e09002b.js +1 -0
  521. package/.next/static/chunks/app/api/flow/generator/route-e70b5e2b4e09002b.js +1 -0
  522. package/.next/static/chunks/app/api/flow/improve/route-e70b5e2b4e09002b.js +1 -0
  523. package/.next/static/chunks/app/api/flow/prompt-renderer/route-e70b5e2b4e09002b.js +1 -0
  524. package/.next/static/chunks/app/api/flow/quick-chat/route-e70b5e2b4e09002b.js +1 -0
  525. package/.next/static/chunks/app/api/flow/repair/route-e70b5e2b4e09002b.js +1 -0
  526. package/.next/static/chunks/app/api/flow/route-e70b5e2b4e09002b.js +1 -0
  527. package/.next/static/chunks/app/api/git/route-e70b5e2b4e09002b.js +1 -0
  528. package/.next/static/chunks/app/api/init/route-e70b5e2b4e09002b.js +1 -0
  529. package/.next/static/chunks/app/api/local-models/capability/route-e70b5e2b4e09002b.js +1 -0
  530. package/.next/static/chunks/app/api/local-models/pull/route-e70b5e2b4e09002b.js +1 -0
  531. package/.next/static/chunks/app/api/local-models/suggest/route-e70b5e2b4e09002b.js +1 -0
  532. package/.next/static/chunks/app/api/mcp/app-sandbox/route-e70b5e2b4e09002b.js +1 -0
  533. package/.next/static/chunks/app/api/mcp/cancel/route-e70b5e2b4e09002b.js +1 -0
  534. package/.next/static/chunks/app/api/mcp/flujo/authoring/route-e70b5e2b4e09002b.js +1 -0
  535. package/.next/static/chunks/app/api/mcp/flujo/automation/route-e70b5e2b4e09002b.js +1 -0
  536. package/.next/static/chunks/app/api/mcp/flujo/flows/route-e70b5e2b4e09002b.js +1 -0
  537. package/.next/static/chunks/app/api/mcp/flujo/resources/read/route-e70b5e2b4e09002b.js +1 -0
  538. package/.next/static/chunks/app/api/mcp/flujo/resources/route-e70b5e2b4e09002b.js +1 -0
  539. package/.next/static/chunks/app/api/mcp/flujo/servers/route-e70b5e2b4e09002b.js +1 -0
  540. package/.next/static/chunks/app/api/mcp/flujo/state/route-e70b5e2b4e09002b.js +1 -0
  541. package/.next/static/chunks/app/api/mcp/flujo/tools/route-e70b5e2b4e09002b.js +1 -0
  542. package/.next/static/chunks/app/api/mcp/oauth-capability/route-e70b5e2b4e09002b.js +1 -0
  543. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-e70b5e2b4e09002b.js +1 -0
  544. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-e70b5e2b4e09002b.js +1 -0
  545. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-e70b5e2b4e09002b.js +1 -0
  546. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-e70b5e2b4e09002b.js +1 -0
  547. package/.next/static/chunks/app/api/mcp/servers/[name]/route-e70b5e2b4e09002b.js +1 -0
  548. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-e70b5e2b4e09002b.js +1 -0
  549. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-e70b5e2b4e09002b.js +1 -0
  550. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-e70b5e2b4e09002b.js +1 -0
  551. package/.next/static/chunks/app/api/mcp/servers/route-e70b5e2b4e09002b.js +1 -0
  552. package/.next/static/chunks/app/api/mcp/test-connection/route-e70b5e2b4e09002b.js +1 -0
  553. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-e70b5e2b4e09002b.js +1 -0
  554. package/.next/static/chunks/app/api/mcp-registry/route-e70b5e2b4e09002b.js +1 -0
  555. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-e70b5e2b4e09002b.js +1 -0
  556. package/.next/static/chunks/app/api/model/[id]/route-e70b5e2b4e09002b.js +1 -0
  557. package/.next/static/chunks/app/api/model/provider/route-e70b5e2b4e09002b.js +1 -0
  558. package/.next/static/chunks/app/api/model/route-e70b5e2b4e09002b.js +1 -0
  559. package/.next/static/chunks/app/api/model/test/route-e70b5e2b4e09002b.js +1 -0
  560. package/.next/static/chunks/app/api/oauth/callback/route-e70b5e2b4e09002b.js +1 -0
  561. package/.next/static/chunks/app/api/oauth/initiate/route-e70b5e2b4e09002b.js +1 -0
  562. package/.next/static/chunks/app/api/oauth/reset/route-e70b5e2b4e09002b.js +1 -0
  563. package/.next/static/chunks/app/api/packages/build/route-e70b5e2b4e09002b.js +1 -0
  564. package/.next/static/chunks/app/api/packages/derive-secrets/route-e70b5e2b4e09002b.js +1 -0
  565. package/.next/static/chunks/app/api/packages/install/route-e70b5e2b4e09002b.js +1 -0
  566. package/.next/static/chunks/app/api/packages/install/status/route-e70b5e2b4e09002b.js +1 -0
  567. package/.next/static/chunks/app/api/packages/installed/route-e70b5e2b4e09002b.js +1 -0
  568. package/.next/static/chunks/app/api/packages/resolve/route-e70b5e2b4e09002b.js +1 -0
  569. package/.next/static/chunks/app/api/packages/scan-targets/route-e70b5e2b4e09002b.js +1 -0
  570. package/.next/static/chunks/app/api/packages/search/route-e70b5e2b4e09002b.js +1 -0
  571. package/.next/static/chunks/app/api/packages/uninstall/route-e70b5e2b4e09002b.js +1 -0
  572. package/.next/static/chunks/app/api/planned-executions/[id]/route-e70b5e2b4e09002b.js +1 -0
  573. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-e70b5e2b4e09002b.js +1 -0
  574. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-e70b5e2b4e09002b.js +1 -0
  575. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-e70b5e2b4e09002b.js +1 -0
  576. package/.next/static/chunks/app/api/planned-executions/reconcile/route-e70b5e2b4e09002b.js +1 -0
  577. package/.next/static/chunks/app/api/planned-executions/route-e70b5e2b4e09002b.js +1 -0
  578. package/.next/static/chunks/app/api/registry/auth/resend/route-e70b5e2b4e09002b.js +1 -0
  579. package/.next/static/chunks/app/api/registry/auth/reset/route-e70b5e2b4e09002b.js +1 -0
  580. package/.next/static/chunks/app/api/registry/auth/route-e70b5e2b4e09002b.js +1 -0
  581. package/.next/static/chunks/app/api/registry/feedback/route-e70b5e2b4e09002b.js +1 -0
  582. package/.next/static/chunks/app/api/registry/oauth/callback/route-e70b5e2b4e09002b.js +1 -0
  583. package/.next/static/chunks/app/api/registry/oauth/initiate/route-e70b5e2b4e09002b.js +1 -0
  584. package/.next/static/chunks/app/api/registry/packages/route-e70b5e2b4e09002b.js +1 -0
  585. package/.next/static/chunks/app/api/registry/publish/route-e70b5e2b4e09002b.js +1 -0
  586. package/.next/static/chunks/app/api/registry/settings/route-e70b5e2b4e09002b.js +1 -0
  587. package/.next/static/chunks/app/api/restore/route-e70b5e2b4e09002b.js +1 -0
  588. package/.next/static/chunks/app/api/runs/active/route-e70b5e2b4e09002b.js +1 -0
  589. package/.next/static/chunks/app/api/setup/ai-cli/route-e70b5e2b4e09002b.js +1 -0
  590. package/.next/static/chunks/app/api/statistics/route-e70b5e2b4e09002b.js +1 -0
  591. package/.next/static/chunks/app/api/storage/route-e70b5e2b4e09002b.js +1 -0
  592. package/.next/static/chunks/app/api/telemetry/daily-active/route-e70b5e2b4e09002b.js +1 -0
  593. package/.next/static/chunks/app/api/update/route-e70b5e2b4e09002b.js +1 -0
  594. package/.next/static/chunks/app/api/waves/route-e70b5e2b4e09002b.js +1 -0
  595. package/.next/static/chunks/app/api/webhooks/[id]/route-e70b5e2b4e09002b.js +1 -0
  596. package/.next/static/chunks/app/automation/triggers/page-594a6294c58344bf.js +1 -0
  597. package/.next/static/chunks/app/automation/waves/page-ce2fef4996cad8e6.js +1 -0
  598. package/.next/static/chunks/app/chat/page-203cb7bf21638ada.js +1 -0
  599. package/.next/static/chunks/app/docs/page-c466a58caf5e3336.js +1 -0
  600. package/.next/static/chunks/app/executions/page-fcc848de86714386.js +1 -0
  601. package/.next/static/chunks/app/flows/page-172c759ca81ba02f.js +1 -0
  602. package/.next/static/chunks/app/layout-a6ca531683a518a7.js +1 -0
  603. package/.next/static/chunks/app/mcp/page-0a96e6b30e45b1e6.js +1 -0
  604. package/.next/static/chunks/app/mcp-flows/route-e70b5e2b4e09002b.js +1 -0
  605. package/.next/static/chunks/app/mcp-proxy/[server]/route-e70b5e2b4e09002b.js +1 -0
  606. package/.next/static/chunks/app/models/error-1964203c5c6e7d0e.js +1 -0
  607. package/.next/static/chunks/app/models/{loading-1687ae86584f5b1b.js → loading-0cdcf9bae7d3b8f3.js} +1 -1
  608. package/.next/static/chunks/app/models/page-ad1cbea6d3324966.js +1 -0
  609. package/.next/static/chunks/app/packages/page-dda48425be9fc137.js +1 -0
  610. package/.next/static/chunks/app/page-04189aa1b1318c2d.js +1 -0
  611. package/.next/static/chunks/app/settings/page-906c229c87011ead.js +1 -0
  612. package/.next/static/chunks/app/statistics/page-9b13a95549f438c0.js +1 -0
  613. package/.next/static/chunks/app/v1/chat/completions/route-e70b5e2b4e09002b.js +1 -0
  614. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-e70b5e2b4e09002b.js +1 -0
  615. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-e70b5e2b4e09002b.js +1 -0
  616. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-e70b5e2b4e09002b.js +1 -0
  617. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-e70b5e2b4e09002b.js +1 -0
  618. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-e70b5e2b4e09002b.js +1 -0
  619. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-e70b5e2b4e09002b.js +1 -0
  620. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/inject/route-e70b5e2b4e09002b.js +1 -0
  621. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route-e70b5e2b4e09002b.js +1 -0
  622. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-e70b5e2b4e09002b.js +1 -0
  623. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-e70b5e2b4e09002b.js +1 -0
  624. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/revert/route-e70b5e2b4e09002b.js +1 -0
  625. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-e70b5e2b4e09002b.js +1 -0
  626. package/.next/static/chunks/app/v1/chat/conversations/route-e70b5e2b4e09002b.js +1 -0
  627. package/.next/static/chunks/app/v1/chat/events/route-e70b5e2b4e09002b.js +1 -0
  628. package/.next/static/chunks/app/v1/models/route-e70b5e2b4e09002b.js +1 -0
  629. package/.next/static/chunks/app/waves/page-5b53af3eb9409414.js +1 -0
  630. package/.next/static/chunks/webpack-9fbd3587b9ef4dca.js +1 -0
  631. package/.next/static/css/400b1b927c3ffaf6.css +1 -0
  632. package/.next/static/css/82efa7d39b03a714.css +1 -0
  633. package/.next/trace +11 -10
  634. package/.next/types/app/api/flow/[id]/convert-process-to-subflow/route.ts +347 -0
  635. package/.next/types/app/api/flow/assist/route.ts +347 -0
  636. package/.next/types/app/api/mcp/flujo/authoring/route.ts +347 -0
  637. package/.next/types/app/api/mcp/flujo/automation/route.ts +347 -0
  638. package/.next/types/app/api/mcp/flujo/flows/route.ts +347 -0
  639. package/.next/types/app/api/mcp/flujo/resources/read/route.ts +347 -0
  640. package/.next/types/app/api/mcp/flujo/resources/route.ts +347 -0
  641. package/.next/types/app/api/mcp/flujo/servers/route.ts +347 -0
  642. package/.next/types/app/api/mcp/flujo/state/route.ts +347 -0
  643. package/.next/types/app/api/mcp/flujo/tools/route.ts +347 -0
  644. package/.next/types/app/api/setup/ai-cli/route.ts +347 -0
  645. package/.next/types/app/api/statistics/route.ts +347 -0
  646. package/.next/types/app/{layout.ts → automation/triggers/page.ts} +6 -6
  647. package/.next/types/app/{waves → automation/waves}/page.ts +3 -3
  648. package/.next/types/app/{executions → statistics}/page.ts +3 -3
  649. package/.next/types/app/v1/chat/conversations/[conversationId]/revert/route.ts +347 -0
  650. package/.next/types/routes.d.ts +18 -2
  651. package/.next/types/validator.ts +144 -0
  652. package/README.md +79 -52
  653. package/bin/flujo.mjs +42 -5
  654. package/mcp-servers/README.md +94 -0
  655. package/mcp-servers/bash/dist/index.d.ts +3 -0
  656. package/mcp-servers/bash/dist/index.js +85 -0
  657. package/mcp-servers/bash/dist/index.js.map +1 -0
  658. package/mcp-servers/bash/dist/resources.d.ts +13 -0
  659. package/mcp-servers/bash/dist/resources.js +298 -0
  660. package/mcp-servers/bash/dist/resources.js.map +1 -0
  661. package/mcp-servers/bash/dist/shared.d.ts +24 -0
  662. package/mcp-servers/bash/dist/shared.js +161 -0
  663. package/mcp-servers/bash/dist/shared.js.map +1 -0
  664. package/mcp-servers/bash/dist/tools.d.ts +59 -0
  665. package/mcp-servers/bash/dist/tools.js +1493 -0
  666. package/mcp-servers/bash/dist/tools.js.map +1 -0
  667. package/mcp-servers/bash/package.json +33 -0
  668. package/mcp-servers/browser/dist/index.d.ts +4 -0
  669. package/mcp-servers/browser/dist/index.js +34 -0
  670. package/mcp-servers/browser/dist/index.js.map +1 -0
  671. package/mcp-servers/browser/dist/resources.d.ts +6 -0
  672. package/mcp-servers/browser/dist/resources.js +78 -0
  673. package/mcp-servers/browser/dist/resources.js.map +1 -0
  674. package/mcp-servers/browser/dist/runtime.d.ts +26 -0
  675. package/mcp-servers/browser/dist/runtime.js +343 -0
  676. package/mcp-servers/browser/dist/runtime.js.map +1 -0
  677. package/mcp-servers/browser/dist/tools.d.ts +3 -0
  678. package/mcp-servers/browser/dist/tools.js +283 -0
  679. package/mcp-servers/browser/dist/tools.js.map +1 -0
  680. package/mcp-servers/browser/package.json +31 -0
  681. package/mcp-servers/filesystem/dist/index.d.ts +3 -0
  682. package/mcp-servers/filesystem/dist/index.js +56 -0
  683. package/mcp-servers/filesystem/dist/index.js.map +1 -0
  684. package/mcp-servers/filesystem/dist/resources.d.ts +49 -0
  685. package/{.next/server/chunks/9724.js → mcp-servers/filesystem/dist/resources.js} +592 -391
  686. package/mcp-servers/filesystem/dist/resources.js.map +1 -0
  687. package/mcp-servers/filesystem/dist/shared.d.ts +24 -0
  688. package/mcp-servers/filesystem/dist/shared.js +161 -0
  689. package/mcp-servers/filesystem/dist/shared.js.map +1 -0
  690. package/mcp-servers/filesystem/dist/tools.d.ts +3 -0
  691. package/mcp-servers/filesystem/dist/tools.js +1229 -0
  692. package/mcp-servers/filesystem/dist/tools.js.map +1 -0
  693. package/mcp-servers/filesystem/package.json +30 -0
  694. package/mcp-servers/flujo/dist/client.d.ts +12 -0
  695. package/mcp-servers/flujo/dist/client.js +144 -0
  696. package/mcp-servers/flujo/dist/client.js.map +1 -0
  697. package/mcp-servers/flujo/dist/index.d.ts +2 -0
  698. package/mcp-servers/flujo/dist/index.js +31 -0
  699. package/mcp-servers/flujo/dist/index.js.map +1 -0
  700. package/mcp-servers/flujo/package.json +29 -0
  701. package/mcp-servers/mcp-whatsapp-web/dist/auth/link-page.d.ts +11 -0
  702. package/mcp-servers/mcp-whatsapp-web/dist/auth/link-page.js +161 -0
  703. package/mcp-servers/mcp-whatsapp-web/dist/auth/link-page.js.map +1 -0
  704. package/mcp-servers/mcp-whatsapp-web/dist/auth/oauth-provider.d.ts +53 -0
  705. package/mcp-servers/mcp-whatsapp-web/dist/auth/oauth-provider.js +206 -0
  706. package/mcp-servers/mcp-whatsapp-web/dist/auth/oauth-provider.js.map +1 -0
  707. package/mcp-servers/mcp-whatsapp-web/dist/index.d.ts +2 -0
  708. package/mcp-servers/mcp-whatsapp-web/dist/index.js +128 -0
  709. package/mcp-servers/mcp-whatsapp-web/dist/index.js.map +1 -0
  710. package/mcp-servers/mcp-whatsapp-web/dist/server.d.ts +28 -0
  711. package/mcp-servers/mcp-whatsapp-web/dist/server.js +268 -0
  712. package/mcp-servers/mcp-whatsapp-web/dist/server.js.map +1 -0
  713. package/mcp-servers/mcp-whatsapp-web/dist/services/whatsapp.d.ts +149 -0
  714. package/mcp-servers/mcp-whatsapp-web/dist/services/whatsapp.js +818 -0
  715. package/mcp-servers/mcp-whatsapp-web/dist/services/whatsapp.js.map +1 -0
  716. package/mcp-servers/mcp-whatsapp-web/dist/tools/auth.d.ts +8 -0
  717. package/mcp-servers/mcp-whatsapp-web/dist/tools/auth.js +232 -0
  718. package/mcp-servers/mcp-whatsapp-web/dist/tools/auth.js.map +1 -0
  719. package/mcp-servers/mcp-whatsapp-web/dist/tools/chats.d.ts +3 -0
  720. package/mcp-servers/mcp-whatsapp-web/dist/tools/chats.js +90 -0
  721. package/mcp-servers/mcp-whatsapp-web/dist/tools/chats.js.map +1 -0
  722. package/mcp-servers/mcp-whatsapp-web/dist/tools/contacts.d.ts +3 -0
  723. package/mcp-servers/mcp-whatsapp-web/dist/tools/contacts.js +65 -0
  724. package/mcp-servers/mcp-whatsapp-web/dist/tools/contacts.js.map +1 -0
  725. package/mcp-servers/mcp-whatsapp-web/dist/tools/media.d.ts +3 -0
  726. package/mcp-servers/mcp-whatsapp-web/dist/tools/media.js +245 -0
  727. package/mcp-servers/mcp-whatsapp-web/dist/tools/media.js.map +1 -0
  728. package/mcp-servers/mcp-whatsapp-web/dist/tools/messages.d.ts +3 -0
  729. package/mcp-servers/mcp-whatsapp-web/dist/tools/messages.js +141 -0
  730. package/mcp-servers/mcp-whatsapp-web/dist/tools/messages.js.map +1 -0
  731. package/mcp-servers/mcp-whatsapp-web/dist/types/index.d.ts +1 -0
  732. package/mcp-servers/mcp-whatsapp-web/dist/types/index.js +3 -0
  733. package/mcp-servers/mcp-whatsapp-web/dist/types/index.js.map +1 -0
  734. package/mcp-servers/mcp-whatsapp-web/dist/types/whatsapp.d.ts +16 -0
  735. package/mcp-servers/mcp-whatsapp-web/dist/types/whatsapp.js +5 -0
  736. package/mcp-servers/mcp-whatsapp-web/dist/types/whatsapp.js.map +1 -0
  737. package/mcp-servers/mcp-whatsapp-web/dist/utils/audio.d.ts +23 -0
  738. package/mcp-servers/mcp-whatsapp-web/dist/utils/audio.js +99 -0
  739. package/mcp-servers/mcp-whatsapp-web/dist/utils/audio.js.map +1 -0
  740. package/mcp-servers/mcp-whatsapp-web/dist/utils/browser-finder.d.ts +12 -0
  741. package/mcp-servers/mcp-whatsapp-web/dist/utils/browser-finder.js +72 -0
  742. package/mcp-servers/mcp-whatsapp-web/dist/utils/browser-finder.js.map +1 -0
  743. package/mcp-servers/mcp-whatsapp-web/dist/utils/browser-process-manager.d.ts +84 -0
  744. package/mcp-servers/mcp-whatsapp-web/dist/utils/browser-process-manager.js +297 -0
  745. package/mcp-servers/mcp-whatsapp-web/dist/utils/browser-process-manager.js.map +1 -0
  746. package/mcp-servers/mcp-whatsapp-web/dist/utils/cleanup-browsers.d.ts +12 -0
  747. package/mcp-servers/mcp-whatsapp-web/dist/utils/cleanup-browsers.js +141 -0
  748. package/mcp-servers/mcp-whatsapp-web/dist/utils/cleanup-browsers.js.map +1 -0
  749. package/mcp-servers/mcp-whatsapp-web/dist/utils/logger.d.ts +2 -0
  750. package/mcp-servers/mcp-whatsapp-web/dist/utils/logger.js +69 -0
  751. package/mcp-servers/mcp-whatsapp-web/dist/utils/logger.js.map +1 -0
  752. package/mcp-servers/mcp-whatsapp-web/package.json +75 -0
  753. package/mcp-servers/mcp-windows-desktop-automation/dist/index.d.ts +8 -0
  754. package/mcp-servers/mcp-windows-desktop-automation/dist/index.js +95 -0
  755. package/mcp-servers/mcp-windows-desktop-automation/dist/index.js.map +1 -0
  756. package/mcp-servers/mcp-windows-desktop-automation/dist/prompts/index.d.ts +8 -0
  757. package/mcp-servers/mcp-windows-desktop-automation/dist/prompts/index.js +195 -0
  758. package/mcp-servers/mcp-windows-desktop-automation/dist/prompts/index.js.map +1 -0
  759. package/mcp-servers/mcp-windows-desktop-automation/dist/resources/index.d.ts +8 -0
  760. package/mcp-servers/mcp-windows-desktop-automation/dist/resources/index.js +214 -0
  761. package/mcp-servers/mcp-windows-desktop-automation/dist/resources/index.js.map +1 -0
  762. package/mcp-servers/mcp-windows-desktop-automation/dist/server/server.d.ts +21 -0
  763. package/mcp-servers/mcp-windows-desktop-automation/dist/server/server.js +108 -0
  764. package/mcp-servers/mcp-windows-desktop-automation/dist/server/server.js.map +1 -0
  765. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/control.d.ts +8 -0
  766. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/control.js +301 -0
  767. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/control.js.map +1 -0
  768. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/index.d.ts +8 -0
  769. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/index.js +22 -0
  770. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/index.js.map +1 -0
  771. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/keyboard.d.ts +8 -0
  772. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/keyboard.js +146 -0
  773. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/keyboard.js.map +1 -0
  774. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/mouse.d.ts +8 -0
  775. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/mouse.js +179 -0
  776. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/mouse.js.map +1 -0
  777. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/process.d.ts +8 -0
  778. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/process.js +236 -0
  779. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/process.js.map +1 -0
  780. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/window.d.ts +8 -0
  781. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/window.js +300 -0
  782. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/window.js.map +1 -0
  783. package/mcp-servers/mcp-windows-desktop-automation/dist/utils/logger/logger.d.ts +50 -0
  784. package/mcp-servers/mcp-windows-desktop-automation/dist/utils/logger/logger.js +78 -0
  785. package/mcp-servers/mcp-windows-desktop-automation/dist/utils/logger/logger.js.map +1 -0
  786. package/mcp-servers/mcp-windows-desktop-automation/dist/utils/types.d.ts +51 -0
  787. package/mcp-servers/mcp-windows-desktop-automation/dist/utils/types.js +61 -0
  788. package/mcp-servers/mcp-windows-desktop-automation/dist/utils/types.js.map +1 -0
  789. package/mcp-servers/mcp-windows-desktop-automation/package.json +38 -0
  790. package/mcp-servers/patchright-mcp/package.json +32 -0
  791. package/mcp-servers/reddit-mcp-server/package.json +88 -0
  792. package/mcp-servers/servers/package.json +31 -0
  793. package/mcp-servers/shared/dist/index.d.ts +24 -0
  794. package/mcp-servers/shared/dist/index.js +161 -0
  795. package/mcp-servers/shared/dist/index.js.map +1 -0
  796. package/mcp-servers/shared/package.json +26 -0
  797. package/package.json +119 -99
  798. package/scripts/launch-next.mjs +13 -1
  799. package/.next/server/chunks/1114.js +0 -1
  800. package/.next/server/chunks/1439.js +0 -1
  801. package/.next/server/chunks/1578.js +0 -5
  802. package/.next/server/chunks/1634.js +0 -1
  803. package/.next/server/chunks/166.js +0 -5
  804. package/.next/server/chunks/1664.js +0 -2
  805. package/.next/server/chunks/1690.js +0 -1
  806. package/.next/server/chunks/2859.js +0 -1
  807. package/.next/server/chunks/3629.js +0 -1
  808. package/.next/server/chunks/3653.js +0 -2
  809. package/.next/server/chunks/366.js +0 -2
  810. package/.next/server/chunks/3717.js +0 -1
  811. package/.next/server/chunks/3935.js +0 -4
  812. package/.next/server/chunks/3984.js +0 -9
  813. package/.next/server/chunks/4013.js +0 -1
  814. package/.next/server/chunks/4436.js +0 -1
  815. package/.next/server/chunks/4466.js +0 -1
  816. package/.next/server/chunks/4551.js +0 -6
  817. package/.next/server/chunks/4663.js +0 -1
  818. package/.next/server/chunks/4822.js +0 -1
  819. package/.next/server/chunks/5200.js +0 -1
  820. package/.next/server/chunks/5285.js +0 -1
  821. package/.next/server/chunks/5309.js +0 -78
  822. package/.next/server/chunks/544.js +0 -136
  823. package/.next/server/chunks/5463.js +0 -1
  824. package/.next/server/chunks/5544.js +0 -5
  825. package/.next/server/chunks/5880.js +0 -1
  826. package/.next/server/chunks/6747.js +0 -435
  827. package/.next/server/chunks/6793.js +0 -1
  828. package/.next/server/chunks/7069.js +0 -6
  829. package/.next/server/chunks/7104.js +0 -1
  830. package/.next/server/chunks/7634.js +0 -4
  831. package/.next/server/chunks/793.js +0 -403
  832. package/.next/server/chunks/7965.js +0 -39
  833. package/.next/server/chunks/7993.js +0 -2
  834. package/.next/server/chunks/8356.js +0 -1
  835. package/.next/server/chunks/8387.js +0 -1
  836. package/.next/server/chunks/87.js +0 -1
  837. package/.next/server/chunks/9085.js +0 -2
  838. package/.next/server/chunks/9174.js +0 -1
  839. package/.next/server/chunks/9235.js +0 -29
  840. package/.next/server/chunks/94.js +0 -1
  841. package/.next/server/chunks/9983.js +0 -2
  842. package/.next/static/chunks/1871-14c3e63ca865d85e.js +0 -1
  843. package/.next/static/chunks/2003-f826c607d609d1fa.js +0 -1
  844. package/.next/static/chunks/2005.4eea65c00d9a29cd.js +0 -1
  845. package/.next/static/chunks/2318-13ef0d3048e97834.js +0 -1
  846. package/.next/static/chunks/3077-565833c67440a7fa.js +0 -1
  847. package/.next/static/chunks/3217.260785c2198d1e9d.js +0 -1
  848. package/.next/static/chunks/3272-fd8d59523f61da96.js +0 -1
  849. package/.next/static/chunks/3429-34fb1a84aed96703.js +0 -1
  850. package/.next/static/chunks/3545.353a62a68d3b7fd1.js +0 -1
  851. package/.next/static/chunks/3659-0ab9580d5ee5deea.js +0 -1
  852. package/.next/static/chunks/3772-20197853c04a6993.js +0 -1
  853. package/.next/static/chunks/422-61b173ba64cf0c94.js +0 -1
  854. package/.next/static/chunks/4523-a540747aa2ed34e8.js +0 -1
  855. package/.next/static/chunks/454.5fc2f8eef98483e3.js +0 -1
  856. package/.next/static/chunks/488-7ab54d8ae2b4b550.js +0 -1
  857. package/.next/static/chunks/4919-6c8a48e3cc642349.js +0 -1
  858. package/.next/static/chunks/4929-150b03595474c9d8.js +0 -1
  859. package/.next/static/chunks/5733-1419095a28c1ddc3.js +0 -1
  860. package/.next/static/chunks/639-90ed75d402dc872b.js +0 -1
  861. package/.next/static/chunks/6404-86615a5f5ce5c00f.js +0 -1
  862. package/.next/static/chunks/6430-8c6dac4a758119f2.js +0 -1
  863. package/.next/static/chunks/6539-118a0084e0bfae34.js +0 -1
  864. package/.next/static/chunks/7264-91d1fa99abcd91ad.js +0 -1
  865. package/.next/static/chunks/7328-c8a51bb8c7470d77.js +0 -1
  866. package/.next/static/chunks/7391-5a0abd837ba241f5.js +0 -1
  867. package/.next/static/chunks/7445-d8a8be6e451c522e.js +0 -1
  868. package/.next/static/chunks/7561-2b366ddcbc3cc0ec.js +0 -1
  869. package/.next/static/chunks/8124-4a80e3201b8e51b0.js +0 -1
  870. package/.next/static/chunks/8345.bc5534ec13abc9ee.js +0 -1
  871. package/.next/static/chunks/8404-5aa8ea49197b98b8.js +0 -1
  872. package/.next/static/chunks/8405.a425f94b6b13d2be.js +0 -1
  873. package/.next/static/chunks/8470-72cf748472d4d501.js +0 -1
  874. package/.next/static/chunks/8551-a28272acfda62ac9.js +0 -1
  875. package/.next/static/chunks/8650-f879564a0ed89bc3.js +0 -1
  876. package/.next/static/chunks/8989-5fa9c7c670eb9a1a.js +0 -1
  877. package/.next/static/chunks/9164-de1d167d87614a6d.js +0 -1
  878. package/.next/static/chunks/9195.294887f083b1a11b.js +0 -1
  879. package/.next/static/chunks/9203-786f457ecf60b49c.js +0 -1
  880. package/.next/static/chunks/9244-3281f7fd02003a2c.js +0 -1
  881. package/.next/static/chunks/9345-11d6e48d892b1862.js +0 -8
  882. package/.next/static/chunks/9562-f8371be653010627.js +0 -1
  883. package/.next/static/chunks/9581-6d2523fd68a5e3c4.js +0 -1
  884. package/.next/static/chunks/9611-9867e6e8e65172ec.js +0 -1
  885. package/.next/static/chunks/9951-566fc6b05c12209e.js +0 -1
  886. package/.next/static/chunks/app/api/approvals/[id]/route-b9c783850b4c2acf.js +0 -1
  887. package/.next/static/chunks/app/api/approvals/route-b9c783850b4c2acf.js +0 -1
  888. package/.next/static/chunks/app/api/backup/route-b9c783850b4c2acf.js +0 -1
  889. package/.next/static/chunks/app/api/browse/route-b9c783850b4c2acf.js +0 -1
  890. package/.next/static/chunks/app/api/bugs/enhance/route-b9c783850b4c2acf.js +0 -1
  891. package/.next/static/chunks/app/api/cwd/route-b9c783850b4c2acf.js +0 -1
  892. package/.next/static/chunks/app/api/encryption/secure/route-b9c783850b4c2acf.js +0 -1
  893. package/.next/static/chunks/app/api/env/route-b9c783850b4c2acf.js +0 -1
  894. package/.next/static/chunks/app/api/flow/[id]/route-b9c783850b4c2acf.js +0 -1
  895. package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-b9c783850b4c2acf.js +0 -1
  896. package/.next/static/chunks/app/api/flow/[id]/versions/route-b9c783850b4c2acf.js +0 -1
  897. package/.next/static/chunks/app/api/flow/compile/route-b9c783850b4c2acf.js +0 -1
  898. package/.next/static/chunks/app/api/flow/generate/route-b9c783850b4c2acf.js +0 -1
  899. package/.next/static/chunks/app/api/flow/generator/route-b9c783850b4c2acf.js +0 -1
  900. package/.next/static/chunks/app/api/flow/improve/route-b9c783850b4c2acf.js +0 -1
  901. package/.next/static/chunks/app/api/flow/prompt-renderer/route-b9c783850b4c2acf.js +0 -1
  902. package/.next/static/chunks/app/api/flow/quick-chat/route-b9c783850b4c2acf.js +0 -1
  903. package/.next/static/chunks/app/api/flow/repair/route-b9c783850b4c2acf.js +0 -1
  904. package/.next/static/chunks/app/api/flow/route-b9c783850b4c2acf.js +0 -1
  905. package/.next/static/chunks/app/api/git/route-b9c783850b4c2acf.js +0 -1
  906. package/.next/static/chunks/app/api/init/route-b9c783850b4c2acf.js +0 -1
  907. package/.next/static/chunks/app/api/local-models/capability/route-b9c783850b4c2acf.js +0 -1
  908. package/.next/static/chunks/app/api/local-models/pull/route-b9c783850b4c2acf.js +0 -1
  909. package/.next/static/chunks/app/api/local-models/suggest/route-b9c783850b4c2acf.js +0 -1
  910. package/.next/static/chunks/app/api/mcp/app-sandbox/route-b9c783850b4c2acf.js +0 -1
  911. package/.next/static/chunks/app/api/mcp/cancel/route-b9c783850b4c2acf.js +0 -1
  912. package/.next/static/chunks/app/api/mcp/oauth-capability/route-b9c783850b4c2acf.js +0 -1
  913. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-b9c783850b4c2acf.js +0 -1
  914. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-b9c783850b4c2acf.js +0 -1
  915. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-b9c783850b4c2acf.js +0 -1
  916. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-b9c783850b4c2acf.js +0 -1
  917. package/.next/static/chunks/app/api/mcp/servers/[name]/route-b9c783850b4c2acf.js +0 -1
  918. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-b9c783850b4c2acf.js +0 -1
  919. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-b9c783850b4c2acf.js +0 -1
  920. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-b9c783850b4c2acf.js +0 -1
  921. package/.next/static/chunks/app/api/mcp/servers/route-b9c783850b4c2acf.js +0 -1
  922. package/.next/static/chunks/app/api/mcp/test-connection/route-b9c783850b4c2acf.js +0 -1
  923. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-b9c783850b4c2acf.js +0 -1
  924. package/.next/static/chunks/app/api/mcp-registry/route-b9c783850b4c2acf.js +0 -1
  925. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-b9c783850b4c2acf.js +0 -1
  926. package/.next/static/chunks/app/api/model/[id]/route-b9c783850b4c2acf.js +0 -1
  927. package/.next/static/chunks/app/api/model/provider/route-b9c783850b4c2acf.js +0 -1
  928. package/.next/static/chunks/app/api/model/route-b9c783850b4c2acf.js +0 -1
  929. package/.next/static/chunks/app/api/model/test/route-b9c783850b4c2acf.js +0 -1
  930. package/.next/static/chunks/app/api/oauth/callback/route-b9c783850b4c2acf.js +0 -1
  931. package/.next/static/chunks/app/api/oauth/initiate/route-b9c783850b4c2acf.js +0 -1
  932. package/.next/static/chunks/app/api/oauth/reset/route-b9c783850b4c2acf.js +0 -1
  933. package/.next/static/chunks/app/api/packages/build/route-b9c783850b4c2acf.js +0 -1
  934. package/.next/static/chunks/app/api/packages/derive-secrets/route-b9c783850b4c2acf.js +0 -1
  935. package/.next/static/chunks/app/api/packages/install/route-b9c783850b4c2acf.js +0 -1
  936. package/.next/static/chunks/app/api/packages/install/status/route-b9c783850b4c2acf.js +0 -1
  937. package/.next/static/chunks/app/api/packages/installed/route-b9c783850b4c2acf.js +0 -1
  938. package/.next/static/chunks/app/api/packages/resolve/route-b9c783850b4c2acf.js +0 -1
  939. package/.next/static/chunks/app/api/packages/scan-targets/route-b9c783850b4c2acf.js +0 -1
  940. package/.next/static/chunks/app/api/packages/search/route-b9c783850b4c2acf.js +0 -1
  941. package/.next/static/chunks/app/api/packages/uninstall/route-b9c783850b4c2acf.js +0 -1
  942. package/.next/static/chunks/app/api/planned-executions/[id]/route-b9c783850b4c2acf.js +0 -1
  943. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-b9c783850b4c2acf.js +0 -1
  944. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-b9c783850b4c2acf.js +0 -1
  945. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-b9c783850b4c2acf.js +0 -1
  946. package/.next/static/chunks/app/api/planned-executions/reconcile/route-b9c783850b4c2acf.js +0 -1
  947. package/.next/static/chunks/app/api/planned-executions/route-b9c783850b4c2acf.js +0 -1
  948. package/.next/static/chunks/app/api/registry/auth/resend/route-b9c783850b4c2acf.js +0 -1
  949. package/.next/static/chunks/app/api/registry/auth/reset/route-b9c783850b4c2acf.js +0 -1
  950. package/.next/static/chunks/app/api/registry/auth/route-b9c783850b4c2acf.js +0 -1
  951. package/.next/static/chunks/app/api/registry/feedback/route-b9c783850b4c2acf.js +0 -1
  952. package/.next/static/chunks/app/api/registry/oauth/callback/route-b9c783850b4c2acf.js +0 -1
  953. package/.next/static/chunks/app/api/registry/oauth/initiate/route-b9c783850b4c2acf.js +0 -1
  954. package/.next/static/chunks/app/api/registry/packages/route-b9c783850b4c2acf.js +0 -1
  955. package/.next/static/chunks/app/api/registry/publish/route-b9c783850b4c2acf.js +0 -1
  956. package/.next/static/chunks/app/api/registry/settings/route-b9c783850b4c2acf.js +0 -1
  957. package/.next/static/chunks/app/api/restore/route-b9c783850b4c2acf.js +0 -1
  958. package/.next/static/chunks/app/api/runs/active/route-b9c783850b4c2acf.js +0 -1
  959. package/.next/static/chunks/app/api/storage/route-b9c783850b4c2acf.js +0 -1
  960. package/.next/static/chunks/app/api/telemetry/daily-active/route-b9c783850b4c2acf.js +0 -1
  961. package/.next/static/chunks/app/api/update/route-b9c783850b4c2acf.js +0 -1
  962. package/.next/static/chunks/app/api/waves/route-b9c783850b4c2acf.js +0 -1
  963. package/.next/static/chunks/app/api/webhooks/[id]/route-b9c783850b4c2acf.js +0 -1
  964. package/.next/static/chunks/app/chat/page-e37bbc561f40ce60.js +0 -1
  965. package/.next/static/chunks/app/docs/page-3b9ce48854b2147d.js +0 -1
  966. package/.next/static/chunks/app/executions/page-8296fd69c439ccee.js +0 -1
  967. package/.next/static/chunks/app/flows/page-e52c8943555e38dd.js +0 -1
  968. package/.next/static/chunks/app/layout-abed1f211e03152f.js +0 -1
  969. package/.next/static/chunks/app/mcp/page-4a3e5a643d84ee89.js +0 -1
  970. package/.next/static/chunks/app/mcp-flows/route-b9c783850b4c2acf.js +0 -1
  971. package/.next/static/chunks/app/mcp-proxy/[server]/route-b9c783850b4c2acf.js +0 -1
  972. package/.next/static/chunks/app/models/error-1718b538d6967e56.js +0 -1
  973. package/.next/static/chunks/app/models/page-595597042e227970.js +0 -1
  974. package/.next/static/chunks/app/packages/page-2f2d29c17841b3cf.js +0 -1
  975. package/.next/static/chunks/app/page-2f9da78a4891731a.js +0 -1
  976. package/.next/static/chunks/app/settings/page-f35e939032b0277d.js +0 -1
  977. package/.next/static/chunks/app/v1/chat/completions/route-b9c783850b4c2acf.js +0 -1
  978. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-b9c783850b4c2acf.js +0 -1
  979. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-b9c783850b4c2acf.js +0 -1
  980. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-b9c783850b4c2acf.js +0 -1
  981. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-b9c783850b4c2acf.js +0 -1
  982. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-b9c783850b4c2acf.js +0 -1
  983. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-b9c783850b4c2acf.js +0 -1
  984. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/inject/route-b9c783850b4c2acf.js +0 -1
  985. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route-b9c783850b4c2acf.js +0 -1
  986. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-b9c783850b4c2acf.js +0 -1
  987. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-b9c783850b4c2acf.js +0 -1
  988. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-b9c783850b4c2acf.js +0 -1
  989. package/.next/static/chunks/app/v1/chat/conversations/route-b9c783850b4c2acf.js +0 -1
  990. package/.next/static/chunks/app/v1/chat/events/route-b9c783850b4c2acf.js +0 -1
  991. package/.next/static/chunks/app/v1/models/route-b9c783850b4c2acf.js +0 -1
  992. package/.next/static/chunks/app/waves/page-dc99a16141dd902b.js +0 -1
  993. package/.next/static/chunks/webpack-9d09d53b271f49e2.js +0 -1
  994. package/.next/static/css/30253fcfa8035221.css +0 -1
  995. package/.next/static/css/69ab44eb350e0b6c.css +0 -1
  996. package/.next/static/kIFnN4S0HHOnvpPGsSzi9/_buildManifest.js +0 -1
  997. /package/.next/static/{kIFnN4S0HHOnvpPGsSzi9 → b1aMk0634gkkiunttd1SQ}/_ssgManifest.js +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";exports.id=519,exports.ids=[519],exports.modules={3391:(a,b,c)=>{c.d(b,{A:()=>w});var d=c(21124),e=c(38301),f=c(81637),g=c(37674),h=c(67101),i=c(43312),j=c(44079),k=c(79515),l=c(73520),m=c(95587),n=c(77028),o=c(88745),p=c(61628),q=c(19787),r=c(95803),s=c(17332),t=c(30717),u=c(32720);let v=[{value:"add",label:"A file appears"},{value:"change",label:"A file changes"},{value:"unlink",label:"A file is deleted"}],w=({config:a,onChange:b})=>{let[c,w]=(0,e.useState)(!1);return(0,d.jsxs)(f.default,{sx:{mt:1},children:[(0,d.jsx)(g.A,{fullWidth:!0,label:"Folder (or file) to watch",value:a.path,onChange:c=>b({...a,path:c.target.value}),placeholder:"e.g. C:\\Users\\me\\Documents\\inbox",margin:"normal",InputProps:{endAdornment:(0,d.jsx)(h.A,{position:"end",children:(0,d.jsx)(i.A,{title:"Browse folders (on the FLUJO machine)",children:(0,d.jsx)(j.A,{edge:"end",onClick:()=>w(!0),children:(0,d.jsx)(t.A,{})})})})}}),(0,d.jsx)(u.A,{open:c,title:"Choose what to watch",selectFiles:!0,initialPath:a.path||void 0,onClose:()=>w(!1),onSelect:c=>b({...a,path:c})}),(0,d.jsx)(g.A,{fullWidth:!0,label:"Only files matching (optional)",value:a.glob||"",onChange:c=>b({...a,glob:c.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,d.jsx)(k.default,{variant:"subtitle2",sx:{mt:1},children:"Run when…"}),(0,d.jsx)(l.A,{row:!0,children:v.map(c=>(0,d.jsx)(m.A,{control:(0,d.jsx)(n.A,{checked:a.events.includes(c.value),onChange:d=>((c,d)=>{let e=d?[...a.events,c]:a.events.filter(a=>a!==c);b({...a,events:e})})(c.value,d.target.checked)}),label:c.label},c.value))}),(0,d.jsx)(o.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,d.jsxs)(p.A,{disableGutters:!0,elevation:0,sx:{mt:1,"&:before":{display:"none"}},children:[(0,d.jsx)(q.A,{expandIcon:(0,d.jsx)(s.A,{}),sx:{px:0},children:(0,d.jsx)(k.default,{variant:"body2",color:"text.secondary",children:"Advanced"})}),(0,d.jsx)(r.A,{sx:{px:0},children:(0,d.jsx)(g.A,{label:"Quiet window (ms)",type:"number",value:a.debounceMs??2e3,onChange:c=>b({...a,debounceMs:Math.max(0,Number(c.target.value)||0)}),helperText:"How long to wait after the last change before running.",inputProps:{min:0,step:500},sx:{width:220}})})]})]})}},17128:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M21 10.12h-6.78l2.74-2.82c-2.73-2.7-7.15-2.8-9.88-.1-2.73 2.71-2.73 7.08 0 9.79s7.15 2.71 9.88 0C18.32 15.65 19 14.08 19 12.1h2c0 1.98-.88 4.55-2.64 6.29-3.51 3.48-9.21 3.48-12.72 0-3.5-3.47-3.53-9.11-.02-12.58s9.14-3.47 12.65 0L21 3zM12.5 8v4.25l3.5 2.08-.72 1.21L11 13V8z"}),"Update")},21704:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M10 15h5.88c.27-.31.67-.5 1.12-.5.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5c-.44 0-.84-.19-1.12-.5H11.9c-.46 2.28-2.48 4-4.9 4-2.76 0-5-2.24-5-5 0-2.42 1.72-4.44 4-4.9v2.07c-1.16.41-2 1.53-2 2.83 0 1.65 1.35 3 3 3s3-1.35 3-3zm2.5-11c1.65 0 3 1.35 3 3h2c0-2.76-2.24-5-5-5s-5 2.24-5 5c0 1.43.6 2.71 1.55 3.62l-2.35 3.9c-.68.14-1.2.75-1.2 1.48 0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5c0-.16-.02-.31-.07-.45l3.38-5.63C10.49 9.61 9.5 8.42 9.5 7c0-1.65 1.35-3 3-3m4.5 9c-.64 0-1.23.2-1.72.54l-3.05-5.07C11.53 8.35 11 7.74 11 7c0-.83.67-1.5 1.5-1.5S14 6.17 14 7c0 .15-.02.29-.06.43l2.19 3.65c.28-.05.57-.08.87-.08 2.76 0 5 2.24 5 5s-2.24 5-5 5c-1.85 0-3.47-1.01-4.33-2.5h2.67c.48.32 1.05.5 1.66.5 1.65 0 3-1.35 3-3s-1.35-3-3-3"}),"Webhook")},34413:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"m9.78 11.16-1.42 1.42c-.68-.69-1.34-1.58-1.79-2.94l1.94-.49c.32.89.77 1.5 1.27 2.01M11 6 7 2 3 6h3.02c.02.81.08 1.54.19 2.17l1.94-.49C8.08 7.2 8.03 6.63 8.02 6zm10 0-4-4-4 4h2.99c-.1 3.68-1.28 4.75-2.54 5.88-.5.44-1.01.92-1.45 1.55-.34-.49-.73-.88-1.13-1.24L9.46 13.6c.93.85 1.54 1.54 1.54 3.4v5h2v-5c0-2.02.71-2.66 1.79-3.63 1.38-1.24 3.08-2.78 3.2-7.37z"}),"AltRoute")},62185:(a,b,c)=>{c.d(b,{A:()=>v});var d=c(21124),e=c(38301),f=c(81637),g=c(82605),h=c(50062),i=c(7675),j=c(94367),k=c(37674),l=c(88745),m=c(79515),n=c(95587),o=c(77028),p=c(61628),q=c(19787),r=c(95803),s=c(17332),t=c(63654);let u=a=>String(a).padStart(2,"0"),v=({cron:a,timezone:b,onChange:c,verb:v="Runs",catchUp:w,onCatchUpChange:x})=>{let y=(0,e.useMemo)(()=>(function(a){let b=/^\*\/(\d+) \* \* \* \* \*$/.exec(a);return b?{mode:"seconds",n:Number(b[1]),time:"09:00"}:(b=/^\*\/(\d+) \* \* \* \*$/.exec(a))?{mode:"minutes",n:Number(b[1]),time:"09:00"}:(b=/^0 \*\/(\d+) \* \* \*$/.exec(a))?{mode:"hours",n:Number(b[1]),time:"09:00"}:(b=/^(\d+) (\d+) \* \* \*$/.exec(a))?{mode:"daily",n:1,time:`${u(Number(b[2]))}:${u(Number(b[1]))}`}:(b=/^(\d+) (\d+) \* \* 1-5$/.exec(a))?{mode:"weekdays",n:1,time:`${u(Number(b[2]))}:${u(Number(b[1]))}`}:{mode:"custom",n:15,time:"09:00"}})(a),[]),[z,A]=(0,e.useState)(y.mode),[B,C]=(0,e.useState)(y.n),[D,E]=(0,e.useState)(y.time),[F,G]=(0,e.useState)(a),[H,I]=(0,e.useState)(null),J=function(a,b,c,d){let[e,f]=c.split(":").map(Number);switch(a){case"seconds":return`*/${Math.max(1,Math.min(59,Math.floor(b)||1))} * * * * *`;case"minutes":return`*/${Math.max(1,Math.min(59,Math.floor(b)||1))} * * * *`;case"hours":return`0 */${Math.max(1,Math.min(23,Math.floor(b)||1))} * * *`;case"daily":return`${f||0} ${e||0} * * *`;case"weekdays":return`${f||0} ${e||0} * * 1-5`;default:return d}}(z,B,D,F);return(0,e.useEffect)(()=>{J!==a&&c({cron:J,timezone:b})},[J]),(0,e.useEffect)(()=>{let a=!1,c=setTimeout(()=>{t.P.previewSchedule(J,b).then(b=>{a||I(b)})},300);return()=>{a=!0,clearTimeout(c)}},[J,b]),(0,d.jsxs)(f.default,{children:[(0,d.jsxs)(f.default,{sx:{display:"flex",gap:2,flexWrap:"wrap",alignItems:"center",mt:1},children:[(0,d.jsxs)(g.A,{sx:{minWidth:180},children:[(0,d.jsx)(h.A,{id:"schedule-preset-label",children:v}),(0,d.jsxs)(i.A,{labelId:"schedule-preset-label",label:v,value:z,onChange:a=>A(a.target.value),children:[(0,d.jsx)(j.A,{value:"seconds",children:"Every N seconds"}),(0,d.jsx)(j.A,{value:"minutes",children:"Every N minutes"}),(0,d.jsx)(j.A,{value:"hours",children:"Every N hours"}),(0,d.jsx)(j.A,{value:"daily",children:"Daily at a time"}),(0,d.jsx)(j.A,{value:"weekdays",children:"Weekdays at a time"}),(0,d.jsx)(j.A,{value:"custom",children:"Custom (cron)"})]})]}),("seconds"===z||"minutes"===z||"hours"===z)&&(0,d.jsx)(k.A,{label:"seconds"===z?"Seconds":"minutes"===z?"Minutes":"Hours",type:"number",value:B,onChange:a=>C(Number(a.target.value)),inputProps:{min:1,max:"hours"===z?23:59},sx:{width:120}}),("daily"===z||"weekdays"===z)&&(0,d.jsx)(k.A,{label:"Time",type:"time",value:D,onChange:a=>E(a.target.value),sx:{width:150},InputLabelProps:{shrink:!0}}),"custom"===z&&(0,d.jsx)(k.A,{label:"Cron pattern",value:F,onChange:a=>G(a.target.value),sx:{minWidth:220},placeholder:"*/15 * * * *"})]}),H&&!H.valid&&(0,d.jsx)(l.A,{severity:"error",sx:{mt:2},children:H.error||"This schedule is not valid."}),H&&H.valid&&H.nextRuns.length>0&&(0,d.jsxs)(m.default,{variant:"body2",color:"text.secondary",sx:{mt:2},children:["Next: ",H.nextRuns.map(a=>new Date(a).toLocaleString()).join(" \xb7 ")]}),x&&(0,d.jsx)(n.A,{sx:{mt:1,display:"flex"},control:(0,d.jsx)(o.A,{checked:!0===w,onChange:a=>x(a.target.checked)}),label:"If FLUJO was closed at a scheduled time, run once on startup"}),(0,d.jsxs)(p.A,{disableGutters:!0,elevation:0,sx:{mt:1,"&:before":{display:"none"}},children:[(0,d.jsx)(q.A,{expandIcon:(0,d.jsx)(s.A,{}),sx:{px:0},children:(0,d.jsx)(m.default,{variant:"body2",color:"text.secondary",children:"Advanced"})}),(0,d.jsx)(r.A,{sx:{px:0},children:(0,d.jsxs)(f.default,{sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[(0,d.jsx)(k.A,{label:"Timezone (optional)",value:b||"",onChange:a=>c({cron:J,timezone:a.target.value||void 0}),placeholder:"e.g. Europe/Berlin",helperText:"IANA timezone name. Empty = this computer's timezone.",sx:{minWidth:260}}),(0,d.jsx)(k.A,{label:"Generated cron pattern",value:J,InputProps:{readOnly:"custom"!==z},onChange:a=>{A("custom"),G(a.target.value)},helperText:"Editing switches to Custom mode.",sx:{minWidth:220}})]})})]})]})}},62350:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M19.3 16.9c.4-.7.7-1.5.7-2.4 0-2.5-2-4.5-4.5-4.5S11 12 11 14.5s2 4.5 4.5 4.5c.9 0 1.7-.3 2.4-.7l3.2 3.2 1.4-1.4zm-3.8.1c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5M12 20v2C6.48 22 2 17.52 2 12S6.48 2 12 2c4.84 0 8.87 3.44 9.8 8h-2.07c-.64-2.46-2.4-4.47-4.73-5.41V5c0 1.1-.9 2-2 2h-2v2c0 .55-.45 1-1 1H8v2h2v3H9l-4.79-4.79C4.08 10.79 4 11.38 4 12c0 4.41 3.59 8 8 8"}),"TravelExplore")},72535:(a,b,c)=>{c.d(b,{A:()=>v});var d=c(21124),e=c(38301),f=c(81637),g=c(79515),h=c(82605),i=c(50062),j=c(7675),k=c(94367),l=c(41808),m=c(37674),n=c(73520),o=c(95587),p=c(77028),q=c(91059),r=c(88745),s=c(63654);function t(a){if(!a||!Array.isArray(a.nodes))return[];let b=[];for(let c of a.nodes){if(c?.data?.type!=="signal")continue;let a=c.data.properties?.topic;"string"==typeof a&&a.trim()&&b.push(a.trim())}return b}let u=(0,c(19815).h)("frontend/components/PlannedExecutions/FlowEventPanel"),v=({config:a,onChange:b,flows:c,currentExecutionId:v})=>{let[w,x]=(0,e.useState)([]),[y,z]=(0,e.useState)(void 0!==a.maxChainDepth||void 0!==a.minIntervalMs),A=a.source?.topic!==void 0?"topic":a.source?.executionId!==void 0?"execution":"flow",B="topic"===A,C=(0,e.useMemo)(()=>(function(a,b=10){let c=new Map;for(let b of a)b&&"string"==typeof b.id&&c.set(b.id,b);let d=new Map,e=(a,b)=>{d.has(a)||d.set(a,[]),d.get(a).push(b)};for(let d of a){if(!d||"string"!=typeof d.id)continue;let a=new Map;for(let b of t(d))a.set(b,(a.get(b)??0)+1);for(let[b,c]of a)e(b,{flowId:d.id,flowName:d.name,signalNodeCount:c,viaSubflow:!1});for(let f of function(a,b,c=10){let d=new Set,e=new Set,f=(a,g)=>{if(e.has(a)||g>c)return;e.add(a);let h=b.get(a);for(let a of t(h))d.add(a);for(let a of function(a){if(!a||!Array.isArray(a.nodes))return[];let b=[];for(let c of a.nodes){if(c?.data?.type!=="subflow")continue;let a=c.data.properties??{};if("string"==typeof a.subflowId&&a.subflowId.trim()&&b.push(a.subflowId.trim()),Array.isArray(a.parallelSubflowIds))for(let c of a.parallelSubflowIds)"string"==typeof c&&c.trim()&&b.push(c.trim())}return Array.from(new Set(b))}(h))f(a,g+1)};return f(a,0),d}(d.id,c,b))a.has(f)||e(f,{flowId:d.id,flowName:d.name,signalNodeCount:0,viaSubflow:!0})}return d})(c),[c]),D=(0,e.useMemo)(()=>{let a=new Map;for(let b of c)b?.id&&a.set(b.id,b.name);return a},[c]),E=(0,e.useMemo)(()=>{let a=new Map;for(let b of w){let c=b.execution;if(c.id===v||c.trigger?.type!=="flow-event")continue;let d=c.trigger.source?.topic;if("string"!=typeof d||!d.trim())continue;let e=d.trim();a.has(e)||a.set(e,[]),a.get(e).push({executionId:c.id,executionName:c.name,flowId:c.flowId,flowName:D.get(c.flowId)})}return a},[w,v,D]),F=(0,e.useMemo)(()=>Array.from(new Set([...C.keys(),...E.keys()])).sort((a,b)=>a.localeCompare(b)),[C,E]),G=a=>{let b=C.get(a);if(!b||0===b.length)return null;let c=Array.from(new Set(b.map(a=>(a.flowName||a.flowId)+(a.viaSubflow?" (via subflow)":""))));return`Emitted in: ${c.join(", ")}`},H=(a.source?.topic??"").trim(),I=!H||C.has(H);(0,e.useEffect)(()=>{let a=!1;return s.P.list().then(b=>{a||x(b.executions||[])}).catch(b=>{u.warn("Failed to load planned executions for source picker",b),a||x([])}),()=>{a=!0}},[]);let J=(c,d)=>{let e=new Set(a.on??[]);d?e.add(c):e.delete(c),b({...a,on:Array.from(e)})};return(0,d.jsxs)(f.default,{sx:{mt:1},children:[(0,d.jsx)(g.default,{variant:"subtitle2",sx:{mt:1},children:"React to"}),(0,d.jsxs)(f.default,{sx:{display:"flex",gap:2,mt:1},children:[(0,d.jsxs)(h.A,{sx:{minWidth:180},children:[(0,d.jsx)(i.A,{id:"flow-event-source-kind",children:"Source"}),(0,d.jsxs)(j.A,{labelId:"flow-event-source-kind",label:"Source",value:A,onChange:c=>(c=>{b({...a,source:"flow"===c?{flowId:""}:"execution"===c?{executionId:""}:{topic:""}})})(c.target.value),children:[(0,d.jsx)(k.A,{value:"flow",children:"A flow (any run)"}),(0,d.jsx)(k.A,{value:"execution",children:"A planned execution"}),(0,d.jsx)(k.A,{value:"topic",children:"A signal topic"})]})]}),"topic"===A?(0,d.jsx)(h.A,{fullWidth:!0,children:(0,d.jsx)(l.A,{freeSolo:!0,autoHighlight:!0,options:F,value:a.source?.topic??"",inputValue:a.source?.topic??"",onInputChange:(c,d)=>b({...a,source:{topic:d}}),renderOption:(a,b)=>{let c=G(b),h=(a=>{let b=E.get(a);if(!b||0===b.length)return null;let c=Array.from(new Set(b.map(a=>a.flowName||a.flowId)));return`Used by ${b.length} trigger${1===b.length?"":"s"} → starts ${c.join(", ")}`})(b);return(0,e.createElement)(f.default,{component:"li",...a,key:b},(0,d.jsxs)(f.default,{sx:{display:"flex",flexDirection:"column",py:.25},children:[(0,d.jsx)(g.default,{variant:"body2",sx:{fontWeight:600},children:b}),c&&(0,d.jsx)(g.default,{variant:"caption",color:"text.secondary",children:c}),h&&(0,d.jsx)(g.default,{variant:"caption",color:"text.secondary",children:h}),!c&&(0,d.jsx)(g.default,{variant:"caption",color:"warning.main",children:"No flow currently emits this signal"})]}))},renderInput:a=>(0,d.jsx)(m.A,{...a,label:"Signal topic",placeholder:"e.g. review-blocked",helperText:H?I?G(H)??"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"===A?(0,d.jsxs)(h.A,{fullWidth:!0,children:[(0,d.jsx)(i.A,{id:"flow-event-flow",children:"Flow to watch"}),(0,d.jsxs)(j.A,{labelId:"flow-event-flow",label:"Flow to watch",value:a.source?.flowId??"",onChange:c=>b({...a,source:{flowId:c.target.value}}),displayEmpty:!0,children:[0===c.length&&(0,d.jsx)(k.A,{value:"",disabled:!0,children:"No flows available"}),c.map(a=>(0,d.jsx)(k.A,{value:a.id,children:a.name},a.id))]})]}):(0,d.jsxs)(h.A,{fullWidth:!0,children:[(0,d.jsx)(i.A,{id:"flow-event-execution",children:"Planned execution to watch"}),(0,d.jsxs)(j.A,{labelId:"flow-event-execution",label:"Planned execution to watch",value:a.source?.executionId??"",onChange:c=>b({...a,source:{executionId:c.target.value}}),displayEmpty:!0,children:[0===w.filter(a=>a.execution.id!==v).length&&(0,d.jsx)(k.A,{value:"",disabled:!0,children:"No other planned executions"}),w.filter(a=>a.execution.id!==v).map(a=>(0,d.jsx)(k.A,{value:a.execution.id,children:a.execution.name},a.execution.id))]})]})]}),!B&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.default,{variant:"subtitle2",sx:{mt:2},children:"When it…"}),(0,d.jsxs)(n.A,{row:!0,children:[(0,d.jsx)(o.A,{control:(0,d.jsx)(p.A,{checked:(a.on??[]).includes("completed"),onChange:a=>J("completed",a.target.checked)}),label:"completes"}),(0,d.jsx)(o.A,{control:(0,d.jsx)(p.A,{checked:(a.on??[]).includes("error"),onChange:a=>J("error",a.target.checked)}),label:"errors"})]})]}),(0,d.jsx)(m.A,{fullWidth:!0,label:B?"Only when the payload contains (optional)":"Only when the output contains (optional)",value:a.outputMatch?.contains??"",onChange:c=>{let d=c.target.value,e={...a.outputMatch,contains:d||void 0},f=e.contains||e.regex?e:void 0;b({...a,outputMatch:f})},margin:"normal",placeholder:"e.g. FAILED, or leave empty to react to every matching run"}),(0,d.jsx)(o.A,{sx:{mt:1},control:(0,d.jsx)(p.A,{checked:y,onChange:a=>z(a.target.checked)}),label:"Advanced (loop safety)"}),y&&(0,d.jsxs)(f.default,{sx:{display:"flex",gap:2,mt:1},children:[(0,d.jsx)(m.A,{label:"Max chain depth",type:"number",value:a.maxChainDepth??"",onChange:c=>b({...a,maxChainDepth:""===c.target.value?void 0:Number(c.target.value)}),helperText:"Stop after this many hops (default 5)",inputProps:{min:1}}),(0,d.jsx)(m.A,{label:"Cooldown (ms)",type:"number",value:a.minIntervalMs??"",onChange:c=>b({...a,minIntervalMs:""===c.target.value?void 0:Number(c.target.value)}),helperText:"Minimum gap between fires",inputProps:{min:0}})]}),(0,d.jsx)(q.A,{sx:{mt:2}}),(0,d.jsx)(r.A,{severity:"info",sx:{mt:2},children:B?"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."})]})}},72748:(a,b,c)=>{c.d(b,{A:()=>j});var d=c(21124);c(38301);var e=c(81637),f=c(37674),g=c(79515),h=c(88745),i=c(62185);let j=({config:a,onChange:b})=>(0,d.jsxs)(e.default,{sx:{mt:1},children:[(0,d.jsx)(f.A,{fullWidth:!0,label:"URL to watch",value:a.url,onChange:c=>b({...a,url:c.target.value}),placeholder:"https://example.com/status or an API/feed URL",margin:"normal",type:"url"}),(0,d.jsx)(g.default,{variant:"subtitle2",sx:{mt:1},children:"How often to check"}),(0,d.jsx)(i.A,{verb:"Check",cron:a.cron,timezone:a.timezone,onChange:({cron:c,timezone:d})=>b({...a,cron:c,timezone:d})}),(0,d.jsx)(h.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."})]})},87113:(a,b,c)=>{c.d(b,{A:()=>h});var d=c(21124);c(38301);var e=c(81637),f=c(79515),g=c(8165);let h=({selected:a,icon:b,title:c,description:h,onClick:i})=>(0,d.jsxs)(e.default,{role:"radio","aria-checked":a,tabIndex:0,onClick:i,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),i())},sx:{flex:1,minWidth:200,position:"relative",p:2,borderRadius:2,border:2,borderColor:a?"primary.main":"divider",bgcolor:a?"action.selected":"background.paper",cursor:"pointer",transition:"border-color 120ms, background-color 120ms","&:hover":{borderColor:a?"primary.main":"text.disabled"},outline:"none","&:focus-visible":{boxShadow:a=>`0 0 0 3px ${a.palette.primary.light}`}},children:[a&&(0,d.jsx)(g.A,{color:"primary",fontSize:"small",sx:{position:"absolute",top:8,right:8}}),(0,d.jsxs)(e.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:.5,color:a?"primary.main":"text.secondary"},children:[b,(0,d.jsx)(f.default,{variant:"subtitle1",sx:{fontWeight:600,color:"text.primary"},children:c})]}),(0,d.jsx)(f.default,{variant:"body2",color:"text.secondary",children:h})]})},88839:(a,b,c)=>{c.d(b,{A:()=>D});var d=c(21124),e=c(38301),f=c(81637),g=c(79515),h=c(68730),i=c(82605),j=c(50062),k=c(7675),l=c(94367),m=c(37674),n=c(8521),o=c(88745),p=c(11801);let q=(0,p.A)((0,d.jsx)("path",{d:"M18 23H4c-1.1 0-2-.9-2-2V7h2v14h14zM15 1H8c-1.1 0-1.99.9-1.99 2L6 17c0 1.1.89 2 1.99 2H19c1.1 0 2-.9 2-2V7zm1.5 14h-6v-2h6zm0-6h-2v2h-2V9h-2V7h2V5h2v2h2z"}),"Difference"),r=(0,p.A)([(0,d.jsx)("path",{d:"M13 8.57c-.79 0-1.43.64-1.43 1.43s.64 1.43 1.43 1.43 1.43-.64 1.43-1.43-.64-1.43-1.43-1.43"},"0"),(0,d.jsx)("path",{d:"M13 3C9.25 3 6.2 5.94 6.02 9.64L4.1 12.2c-.25.33-.01.8.4.8H6v3c0 1.1.9 2 2 2h1v3h7v-4.68c2.36-1.12 4-3.53 4-6.32 0-3.87-3.13-7-7-7m3 7c0 .13-.01.26-.02.39l.83.66c.08.06.1.16.05.25l-.8 1.39c-.05.09-.16.12-.24.09l-.99-.4c-.21.16-.43.29-.67.39L14 13.83c-.01.1-.1.17-.2.17h-1.6c-.1 0-.18-.07-.2-.17l-.15-1.06c-.25-.1-.47-.23-.68-.39l-.99.4c-.09.03-.2 0-.25-.09l-.8-1.39c-.05-.08-.03-.19.05-.25l.84-.66c-.01-.13-.02-.26-.02-.39s.02-.27.04-.39l-.85-.66c-.08-.06-.1-.16-.05-.26l.8-1.38c.05-.09.15-.12.24-.09l1 .4c.2-.15.43-.29.67-.39L12 6.17c.02-.1.1-.17.2-.17h1.6c.1 0 .18.07.2.17l.15 1.06c.24.1.46.23.67.39l1-.4c.09-.03.2 0 .24.09l.8 1.38c.05.09.03.2-.05.26l-.85.66c.03.12.04.25.04.39"},"1")],"Psychology");var s=c(28055),t=c(83434),u=c(63281),v=c(19815),w=c(87113),x=c(62185),y=c(31411),z=c(21570),A=c(35070),B=c(45231);let C=(0,v.h)("frontend/components/PlannedExecutions/WatchToolPanel"),D=({config:a,onChange:b})=>{let[c,p]=(0,e.useState)([]),[v,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)([]),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useState)(Object.keys(a.args||{}).length>0?JSON.stringify(a.args,null,2):""),[K,L]=(0,e.useState)(null),[M,N]=(0,e.useState)(!1),[O,P]=(0,e.useState)(null),[Q,R]=(0,e.useState)(null),[S,T]=(0,e.useState)([]),[U,V]=(0,e.useState)([]);(0,e.useEffect)(()=>{let a=!1;return s.S.loadServerConfigs().then(b=>{a||(Array.isArray(b)?p(b.filter(a=>!a.disabled)):(C.warn("Failed to load MCP servers for watch-tool panel",b),p([])))}),()=>{a=!0}},[]),(0,e.useEffect)(()=>{if(!a.serverName)return void F([]);let b=!1;return H(!0),s.S.listServerTools(a.serverName).then(({tools:a})=>{b||F(a||[])}).finally(()=>{b||H(!1)}),()=>{b=!0}},[a.serverName]),(0,e.useEffect)(()=>{let a=!1;return t.N.loadModels().then(b=>{a||T(Array.isArray(b)?b:[])}).catch(()=>{a||T([])}),u.g.loadFlows().then(b=>{a||V(b||[])}).catch(()=>{a||V([])}),()=>{a=!0}},[]);let W=async()=>{N(!0),P(null),R(null);try{let b=await s.S.callTool(a.serverName,a.toolName,a.args||{});if(b?.error)R("string"==typeof b.error?b.error:"Tool call failed");else{let a=b?.data??b,c=JSON.stringify(a,null,2)??"";P(c.length>6e3?`${c.slice(0,6e3)}
2
- … (truncated)`:c)}}catch(a){R(a instanceof Error?a.message:"Tool call failed")}finally{N(!1)}},X=a.evaluate,Y=E.find(b=>b.name===a.toolName),Z=(0,B.E)("mcp",c),$=c=>({key:c.name,content:(c=>(0,d.jsx)(A.A,{name:c.name,status:c.status||"disconnected",path:c.rootPath||"",enabled:!c.disabled,transport:c.transport||"stdio",pickerMode:!0,selected:a.serverName===c.name,onClick:()=>{var d;return d=c.name,void(b({...a,serverName:d,toolName:""}),D(!1))}}))(c)}),_=Z.items.map($),aa=Z.groups?Z.groups.map(a=>({...a,items:a.items.map($)})):null;return(0,d.jsxs)(f.default,{sx:{mt:1},children:[(0,d.jsxs)(f.default,{sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[(0,d.jsxs)(f.default,{sx:{minWidth:220,flex:1,mt:2,mb:1},children:[(0,d.jsx)(g.default,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Server"}),(0,d.jsx)(h.A,{variant:"outlined",fullWidth:!0,onClick:()=>D(!0),sx:{justifyContent:"flex-start",textTransform:"none"},children:a.serverName?`${a.serverName} — change`:"Choose an MCP server…"}),(0,d.jsx)(z.A,{open:v,onClose:()=>D(!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:Z.searchTerm,onSearchChange:Z.setSearchTerm,columns:{xs:12,sm:6},items:_,groups:aa,collapsedKeys:Z.collapsedKeys,onToggleGroup:Z.toggleGroup})]}),(0,d.jsxs)(i.A,{sx:{minWidth:220,flex:1},margin:"normal",disabled:!a.serverName,children:[(0,d.jsx)(j.A,{id:"watch-tool-label",children:"Tool"}),(0,d.jsxs)(k.A,{labelId:"watch-tool-label",label:"Tool",value:E.some(b=>b.name===a.toolName)?a.toolName:"",onChange:c=>b({...a,toolName:c.target.value,args:{}}),children:[0===E.length&&(0,d.jsx)(l.A,{value:"",disabled:!0,children:G?"Loading tools…":"Pick a server first"}),E.map(a=>(0,d.jsx)(l.A,{value:a.name,children:a.name},a.name))]})]})]}),(0,d.jsx)(g.default,{variant:"subtitle2",sx:{mt:1},children:"How often to check"}),(0,d.jsx)(x.A,{verb:"Check",cron:a.cron??function(a){let b=Math.max(5,Math.round((a??6e4)/1e3));if(b<60)return`*/${b} * * * * *`;let c=Math.max(1,Math.round(b/60));if(c<60)return`*/${c} * * * *`;let d=Math.max(1,Math.min(23,Math.round(c/60)));return`0 */${d} * * *`}(a.intervalMs),timezone:a.timezone,onChange:({cron:c,timezone:d})=>b({...a,cron:c,timezone:d})}),Y?(0,d.jsxs)(f.default,{sx:{my:1.5},children:[(0,d.jsx)(g.default,{variant:"subtitle2",sx:{mb:1.5},children:"Tool parameters — sent on every check"}),(0,d.jsx)(y.A,{schema:Y.inputSchema,values:a.args||{},onChange:c=>b({...a,args:c})})]}):(0,d.jsx)(m.A,{fullWidth:!0,label:"Tool arguments (JSON, optional)",value:I,onChange:c=>(c=>{if(J(c),!c.trim()){L(null),b({...a,args:{}});return}try{let d=JSON.parse(c);if(null===d||"object"!=typeof d||Array.isArray(d))return void L('Arguments must be a JSON object, e.g. { "query": "…" }');L(null),b({...a,args:d})}catch{L("Not valid JSON yet")}})(c.target.value),margin:"normal",multiline:!0,minRows:2,placeholder:'{ "query": "is:unread" }',error:!!K,helperText:K??"Sent to the tool on every check.",slotProps:{input:{sx:{fontFamily:"monospace",fontSize:14}}}}),(0,d.jsxs)(f.default,{sx:{display:"flex",alignItems:"center",gap:2,mb:1},children:[(0,d.jsx)(h.A,{variant:"outlined",size:"small",onClick:W,disabled:!a.serverName||!a.toolName||M||!!K,startIcon:M?(0,d.jsx)(n.default,{size:16}):void 0,children:"Test: call the tool now"}),(0,d.jsx)(g.default,{variant:"caption",color:"text.secondary",children:"See what the result looks like — useful for the settings below."})]}),Q&&(0,d.jsx)(o.A,{severity:"error",sx:{mb:1},children:Q}),O&&(0,d.jsx)(f.default,{component:"pre",sx:{maxHeight:240,overflow:"auto",bgcolor:"action.hover",borderRadius:1,p:1.5,fontSize:12,m:0,mb:1},children:O}),(0,d.jsx)(g.default,{variant:"subtitle2",sx:{mt:2,mb:1},children:"Run the flow when…"}),(0,d.jsxs)(f.default,{role:"radiogroup","aria-label":"Poll condition",sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[(0,d.jsx)(w.A,{selected:"on-change"===X.mode,onClick:()=>b({...a,evaluate:{mode:"on-change"}}),icon:(0,d.jsx)(q,{}),title:"The result changes",description:"Any difference from the last check runs the flow. Simplest — no setup."}),(0,d.jsx)(w.A,{selected:"llm-gate"===X.mode||"flow-gate"===X.mode,onClick:()=>{"llm-gate"!==X.mode&&"flow-gate"!==X.mode&&b({...a,evaluate:{mode:"llm-gate",condition:"",modelId:""}})},icon:(0,d.jsx)(r,{}),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"===X.mode||"flow-gate"===X.mode)&&(0,d.jsxs)(f.default,{sx:{mt:1},children:[(0,d.jsx)(m.A,{fullWidth:!0,label:"Run the flow if…",value:X.condition,onChange:c=>b({...a,evaluate:{...X,condition:c.target.value}}),multiline:!0,minRows:2,margin:"normal",placeholder:"e.g. any email mentions an invoice or a payment reminder"}),(0,d.jsxs)(f.default,{sx:{display:"flex",gap:2,flexWrap:"wrap",alignItems:"flex-start"},children:[(0,d.jsxs)(i.A,{sx:{minWidth:170},children:[(0,d.jsx)(j.A,{id:"gate-checker-label",children:"Checked by"}),(0,d.jsxs)(k.A,{labelId:"gate-checker-label",label:"Checked by",value:X.mode,onChange:c=>{let d=c.target.value;if(d===X.mode)return;let e={condition:X.condition,maxCallsPerDay:X.maxCallsPerDay};b({...a,evaluate:"llm-gate"===d?{mode:d,...e,modelId:""}:{mode:d,...e,flowId:""}})},children:[(0,d.jsx)(l.A,{value:"llm-gate",children:"A model"}),(0,d.jsx)(l.A,{value:"flow-gate",children:"One of my flows"})]})]}),"llm-gate"===X.mode&&(0,d.jsxs)(i.A,{sx:{minWidth:240,flex:1},children:[(0,d.jsx)(j.A,{id:"gate-model-label",children:"Model that checks"}),(0,d.jsxs)(k.A,{labelId:"gate-model-label",label:"Model that checks",value:S.some(a=>a.id===X.modelId)?X.modelId:"",onChange:c=>b({...a,evaluate:{...X,modelId:c.target.value}}),children:[0===S.length&&(0,d.jsx)(l.A,{value:"",disabled:!0,children:"No models configured"}),S.map(a=>(0,d.jsx)(l.A,{value:a.id,children:a.displayName||a.name},a.id))]})]}),"flow-gate"===X.mode&&(0,d.jsxs)(i.A,{sx:{minWidth:240,flex:1},children:[(0,d.jsx)(j.A,{id:"gate-flow-label",children:"Flow that checks"}),(0,d.jsxs)(k.A,{labelId:"gate-flow-label",label:"Flow that checks",value:U.some(a=>a.id===X.flowId)?X.flowId:"",onChange:c=>b({...a,evaluate:{...X,flowId:c.target.value}}),children:[0===U.length&&(0,d.jsx)(l.A,{value:"",disabled:!0,children:"No flows available"}),U.map(a=>(0,d.jsx)(l.A,{value:a.id,children:a.name},a.id))]})]}),(0,d.jsx)(m.A,{label:"Max checks per day",type:"number",value:X.maxCallsPerDay??500,onChange:c=>b({...a,evaluate:{...X,maxCallsPerDay:Math.max(1,Number(c.target.value)||1)}}),inputProps:{min:1},helperText:"Cost guard per check.",sx:{width:180}})]}),(0,d.jsx)(g.default,{variant:"caption",color:"text.secondary",sx:{display:"block",mt:.5},children:"flow-gate"===X.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,d.jsx)(o.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."})]})}},91283:(a,b,c)=>{c.d(b,{A:()=>q});var d=c(21124),e=c(38301),f=c(81637),g=c(88745),h=c(37674),i=c(43312),j=c(44079),k=c(68730),l=c(79515),m=c(95587),n=c(77028),o=c(38941),p=c(36698);let q=({config:a,onChange:b,executionId:c,saved:q})=>{let[r,s]=(0,e.useState)(null),t=`/api/webhooks/${c}`,u=async(a,b)=>{try{await navigator.clipboard.writeText(b),s(a),setTimeout(()=>s(null),1500)}catch{}};return(0,d.jsxs)(f.default,{sx:{mt:1},children:[!q&&(0,d.jsx)(g.A,{severity:"info",sx:{mb:2},children:"This URL and token are ready to copy now — they become active when you save."}),(0,d.jsxs)(f.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,d.jsx)(h.A,{fullWidth:!0,label:"Webhook URL",value:t,InputProps:{readOnly:!0},size:"small"}),(0,d.jsx)(i.A,{title:"Copy URL",children:(0,d.jsx)(j.A,{onClick:()=>u("url",t),children:"url"===r?(0,d.jsx)(p.A,{color:"success"}):(0,d.jsx)(o.A,{})})})]}),(0,d.jsxs)(f.default,{sx:{display:"flex",alignItems:"center",gap:1,mt:2},children:[(0,d.jsx)(h.A,{fullWidth:!0,label:"Secret token",value:a.token,InputProps:{readOnly:!0},size:"small",type:"password"}),(0,d.jsx)(i.A,{title:"Copy token",children:(0,d.jsx)(j.A,{onClick:()=>u("token",a.token),disabled:!a.token,children:"token"===r?(0,d.jsx)(p.A,{color:"success"}):(0,d.jsx)(o.A,{})})}),(0,d.jsx)(k.A,{size:"small",onClick:()=>b({...a,token:crypto.randomUUID()}),sx:{whiteSpace:"nowrap"},children:"New token"})]}),(0,d.jsx)(l.default,{variant:"caption",color:"text.secondary",children:q?"A new token takes effect when you save — callers using the old one are cut off.":""}),(0,d.jsxs)(l.default,{variant:"body2",color:"text.secondary",sx:{mt:1.5},children:["Callers send a POST with the token in the ",(0,d.jsx)("code",{children:"X-Flujo-Token"})," ","header (or ",(0,d.jsx)("code",{children:"?token=…"}),"). The request body becomes part of the flow's input — treat it as untrusted data in your prompt."]}),(0,d.jsx)(m.A,{sx:{mt:1,display:"flex"},control:(0,d.jsx)(n.A,{checked:!0===a.allowExternal,onChange:c=>b({...a,allowExternal:c.target.checked})}),label:"Allow calls from other machines (default: this computer only)"}),a.allowExternal&&(0,d.jsx)(g.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."})]})}}};
1
+ "use strict";exports.id=519,exports.ids=[519],exports.modules={3391:(a,b,c)=>{c.d(b,{A:()=>w});var d=c(21124),e=c(38301),f=c(81637),g=c(37674),h=c(67101),i=c(43312),j=c(44079),k=c(79515),l=c(73520),m=c(95587),n=c(77028),o=c(88745),p=c(61628),q=c(19787),r=c(95803),s=c(17332),t=c(30717),u=c(32720);let v=[{value:"add",label:"A file appears"},{value:"change",label:"A file changes"},{value:"unlink",label:"A file is deleted"}],w=({config:a,onChange:b})=>{let[c,w]=(0,e.useState)(!1);return(0,d.jsxs)(f.default,{sx:{mt:1},children:[(0,d.jsx)(g.A,{fullWidth:!0,label:"Folder (or file) to watch",value:a.path,onChange:c=>b({...a,path:c.target.value}),placeholder:"e.g. C:\\Users\\me\\Documents\\inbox",margin:"normal",InputProps:{endAdornment:(0,d.jsx)(h.A,{position:"end",children:(0,d.jsx)(i.A,{title:"Browse folders (on the FLUJO machine)",children:(0,d.jsx)(j.A,{edge:"end",onClick:()=>w(!0),children:(0,d.jsx)(t.A,{})})})})}}),(0,d.jsx)(u.A,{open:c,title:"Choose what to watch",selectFiles:!0,initialPath:a.path||void 0,onClose:()=>w(!1),onSelect:c=>b({...a,path:c})}),(0,d.jsx)(g.A,{fullWidth:!0,label:"Only files matching (optional)",value:a.glob||"",onChange:c=>b({...a,glob:c.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,d.jsx)(k.A,{variant:"subtitle2",sx:{mt:1},children:"Run when…"}),(0,d.jsx)(l.A,{row:!0,children:v.map(c=>(0,d.jsx)(m.A,{control:(0,d.jsx)(n.A,{checked:a.events.includes(c.value),onChange:d=>((c,d)=>{let e=d?[...a.events,c]:a.events.filter(a=>a!==c);b({...a,events:e})})(c.value,d.target.checked)}),label:c.label},c.value))}),(0,d.jsx)(o.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,d.jsxs)(p.A,{disableGutters:!0,elevation:0,sx:{mt:1,"&:before":{display:"none"}},children:[(0,d.jsx)(q.A,{expandIcon:(0,d.jsx)(s.A,{}),sx:{px:0},children:(0,d.jsx)(k.A,{variant:"body2",color:"text.secondary",children:"Advanced"})}),(0,d.jsx)(r.A,{sx:{px:0},children:(0,d.jsx)(g.A,{label:"Quiet window (ms)",type:"number",value:a.debounceMs??2e3,onChange:c=>b({...a,debounceMs:Math.max(0,Number(c.target.value)||0)}),helperText:"How long to wait after the last change before running.",inputProps:{min:0,step:500},sx:{width:220}})})]})]})}},17128:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M21 10.12h-6.78l2.74-2.82c-2.73-2.7-7.15-2.8-9.88-.1-2.73 2.71-2.73 7.08 0 9.79s7.15 2.71 9.88 0C18.32 15.65 19 14.08 19 12.1h2c0 1.98-.88 4.55-2.64 6.29-3.51 3.48-9.21 3.48-12.72 0-3.5-3.47-3.53-9.11-.02-12.58s9.14-3.47 12.65 0L21 3zM12.5 8v4.25l3.5 2.08-.72 1.21L11 13V8z"}),"Update")},21704:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M10 15h5.88c.27-.31.67-.5 1.12-.5.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5c-.44 0-.84-.19-1.12-.5H11.9c-.46 2.28-2.48 4-4.9 4-2.76 0-5-2.24-5-5 0-2.42 1.72-4.44 4-4.9v2.07c-1.16.41-2 1.53-2 2.83 0 1.65 1.35 3 3 3s3-1.35 3-3zm2.5-11c1.65 0 3 1.35 3 3h2c0-2.76-2.24-5-5-5s-5 2.24-5 5c0 1.43.6 2.71 1.55 3.62l-2.35 3.9c-.68.14-1.2.75-1.2 1.48 0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5c0-.16-.02-.31-.07-.45l3.38-5.63C10.49 9.61 9.5 8.42 9.5 7c0-1.65 1.35-3 3-3m4.5 9c-.64 0-1.23.2-1.72.54l-3.05-5.07C11.53 8.35 11 7.74 11 7c0-.83.67-1.5 1.5-1.5S14 6.17 14 7c0 .15-.02.29-.06.43l2.19 3.65c.28-.05.57-.08.87-.08 2.76 0 5 2.24 5 5s-2.24 5-5 5c-1.85 0-3.47-1.01-4.33-2.5h2.67c.48.32 1.05.5 1.66.5 1.65 0 3-1.35 3-3s-1.35-3-3-3"}),"Webhook")},34413:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"m9.78 11.16-1.42 1.42c-.68-.69-1.34-1.58-1.79-2.94l1.94-.49c.32.89.77 1.5 1.27 2.01M11 6 7 2 3 6h3.02c.02.81.08 1.54.19 2.17l1.94-.49C8.08 7.2 8.03 6.63 8.02 6zm10 0-4-4-4 4h2.99c-.1 3.68-1.28 4.75-2.54 5.88-.5.44-1.01.92-1.45 1.55-.34-.49-.73-.88-1.13-1.24L9.46 13.6c.93.85 1.54 1.54 1.54 3.4v5h2v-5c0-2.02.71-2.66 1.79-3.63 1.38-1.24 3.08-2.78 3.2-7.37z"}),"AltRoute")},62185:(a,b,c)=>{c.d(b,{A:()=>v});var d=c(21124),e=c(38301),f=c(81637),g=c(82605),h=c(50062),i=c(7675),j=c(94367),k=c(37674),l=c(88745),m=c(79515),n=c(95587),o=c(77028),p=c(61628),q=c(19787),r=c(95803),s=c(17332),t=c(63654);let u=a=>String(a).padStart(2,"0"),v=({cron:a,timezone:b,onChange:c,verb:v="Runs",catchUp:w,onCatchUpChange:x})=>{let y=(0,e.useMemo)(()=>(function(a){let b=/^\*\/(\d+) \* \* \* \* \*$/.exec(a);return b?{mode:"seconds",n:Number(b[1]),time:"09:00"}:(b=/^\*\/(\d+) \* \* \* \*$/.exec(a))?{mode:"minutes",n:Number(b[1]),time:"09:00"}:(b=/^0 \*\/(\d+) \* \* \*$/.exec(a))?{mode:"hours",n:Number(b[1]),time:"09:00"}:(b=/^(\d+) (\d+) \* \* \*$/.exec(a))?{mode:"daily",n:1,time:`${u(Number(b[2]))}:${u(Number(b[1]))}`}:(b=/^(\d+) (\d+) \* \* 1-5$/.exec(a))?{mode:"weekdays",n:1,time:`${u(Number(b[2]))}:${u(Number(b[1]))}`}:{mode:"custom",n:15,time:"09:00"}})(a),[]),[z,A]=(0,e.useState)(y.mode),[B,C]=(0,e.useState)(y.n),[D,E]=(0,e.useState)(y.time),[F,G]=(0,e.useState)(a),[H,I]=(0,e.useState)(null),J=function(a,b,c,d){let[e,f]=c.split(":").map(Number);switch(a){case"seconds":return`*/${Math.max(1,Math.min(59,Math.floor(b)||1))} * * * * *`;case"minutes":return`*/${Math.max(1,Math.min(59,Math.floor(b)||1))} * * * *`;case"hours":return`0 */${Math.max(1,Math.min(23,Math.floor(b)||1))} * * *`;case"daily":return`${f||0} ${e||0} * * *`;case"weekdays":return`${f||0} ${e||0} * * 1-5`;default:return d}}(z,B,D,F);return(0,e.useEffect)(()=>{J!==a&&c({cron:J,timezone:b})},[J]),(0,e.useEffect)(()=>{let a=!1,c=setTimeout(()=>{t.P.previewSchedule(J,b).then(b=>{a||I(b)})},300);return()=>{a=!0,clearTimeout(c)}},[J,b]),(0,d.jsxs)(f.default,{children:[(0,d.jsxs)(f.default,{sx:{display:"flex",gap:2,flexWrap:"wrap",alignItems:"center",mt:1},children:[(0,d.jsxs)(g.A,{sx:{minWidth:180},children:[(0,d.jsx)(h.A,{id:"schedule-preset-label",children:v}),(0,d.jsxs)(i.A,{labelId:"schedule-preset-label",label:v,value:z,onChange:a=>A(a.target.value),children:[(0,d.jsx)(j.A,{value:"seconds",children:"Every N seconds"}),(0,d.jsx)(j.A,{value:"minutes",children:"Every N minutes"}),(0,d.jsx)(j.A,{value:"hours",children:"Every N hours"}),(0,d.jsx)(j.A,{value:"daily",children:"Daily at a time"}),(0,d.jsx)(j.A,{value:"weekdays",children:"Weekdays at a time"}),(0,d.jsx)(j.A,{value:"custom",children:"Custom (cron)"})]})]}),("seconds"===z||"minutes"===z||"hours"===z)&&(0,d.jsx)(k.A,{label:"seconds"===z?"Seconds":"minutes"===z?"Minutes":"Hours",type:"number",value:B,onChange:a=>C(Number(a.target.value)),inputProps:{min:1,max:"hours"===z?23:59},sx:{width:120}}),("daily"===z||"weekdays"===z)&&(0,d.jsx)(k.A,{label:"Time",type:"time",value:D,onChange:a=>E(a.target.value),sx:{width:150},InputLabelProps:{shrink:!0}}),"custom"===z&&(0,d.jsx)(k.A,{label:"Cron pattern",value:F,onChange:a=>G(a.target.value),sx:{minWidth:220},placeholder:"*/15 * * * *"})]}),H&&!H.valid&&(0,d.jsx)(l.A,{severity:"error",sx:{mt:2},children:H.error||"This schedule is not valid."}),H&&H.valid&&H.nextRuns.length>0&&(0,d.jsxs)(m.A,{variant:"body2",color:"text.secondary",sx:{mt:2},children:["Next: ",H.nextRuns.map(a=>new Date(a).toLocaleString()).join(" \xb7 ")]}),x&&(0,d.jsx)(n.A,{sx:{mt:1,display:"flex"},control:(0,d.jsx)(o.A,{checked:!0===w,onChange:a=>x(a.target.checked)}),label:"If FLUJO was closed when this trigger was scheduled, run it once on startup"}),(0,d.jsxs)(p.A,{disableGutters:!0,elevation:0,sx:{mt:1,"&:before":{display:"none"}},children:[(0,d.jsx)(q.A,{expandIcon:(0,d.jsx)(s.A,{}),sx:{px:0},children:(0,d.jsx)(m.A,{variant:"body2",color:"text.secondary",children:"Advanced"})}),(0,d.jsx)(r.A,{sx:{px:0},children:(0,d.jsxs)(f.default,{sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[(0,d.jsx)(k.A,{label:"Timezone (optional)",value:b||"",onChange:a=>c({cron:J,timezone:a.target.value||void 0}),placeholder:"e.g. Europe/Berlin",helperText:"IANA timezone name. Empty = this computer's timezone.",sx:{minWidth:260}}),(0,d.jsx)(k.A,{label:"Generated cron pattern",value:J,InputProps:{readOnly:"custom"!==z},onChange:a=>{A("custom"),G(a.target.value)},helperText:"Editing switches to Custom mode.",sx:{minWidth:220}})]})})]})]})}},62350:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M19.3 16.9c.4-.7.7-1.5.7-2.4 0-2.5-2-4.5-4.5-4.5S11 12 11 14.5s2 4.5 4.5 4.5c.9 0 1.7-.3 2.4-.7l3.2 3.2 1.4-1.4zm-3.8.1c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5M12 20v2C6.48 22 2 17.52 2 12S6.48 2 12 2c4.84 0 8.87 3.44 9.8 8h-2.07c-.64-2.46-2.4-4.47-4.73-5.41V5c0 1.1-.9 2-2 2h-2v2c0 .55-.45 1-1 1H8v2h2v3H9l-4.79-4.79C4.08 10.79 4 11.38 4 12c0 4.41 3.59 8 8 8"}),"TravelExplore")},72535:(a,b,c)=>{c.d(b,{A:()=>v});var d=c(21124),e=c(38301),f=c(81637),g=c(79515),h=c(82605),i=c(50062),j=c(7675),k=c(94367),l=c(15426),m=c(37674),n=c(73520),o=c(95587),p=c(77028),q=c(91059),r=c(88745),s=c(63654);function t(a){if(!a||!Array.isArray(a.nodes))return[];let b=[];for(let c of a.nodes){if(c?.data?.type!=="signal")continue;let a=c.data.properties?.topic;"string"==typeof a&&a.trim()&&b.push(a.trim())}return b}let u=(0,c(42819).h)("frontend/components/PlannedExecutions/FlowEventPanel"),v=({config:a,onChange:b,flows:c,currentExecutionId:v})=>{let[w,x]=(0,e.useState)([]),[y,z]=(0,e.useState)(void 0!==a.maxChainDepth||void 0!==a.minIntervalMs),A=a.source?.topic!==void 0?"topic":a.source?.executionId!==void 0?"execution":"flow",B="topic"===A,C=(0,e.useMemo)(()=>(function(a,b=10){let c=new Map;for(let b of a)b&&"string"==typeof b.id&&c.set(b.id,b);let d=new Map,e=(a,b)=>{d.has(a)||d.set(a,[]),d.get(a).push(b)};for(let d of a){if(!d||"string"!=typeof d.id)continue;let a=new Map;for(let b of t(d))a.set(b,(a.get(b)??0)+1);for(let[b,c]of a)e(b,{flowId:d.id,flowName:d.name,signalNodeCount:c,viaSubflow:!1});for(let f of function(a,b,c=10){let d=new Set,e=new Set,f=(a,g)=>{if(e.has(a)||g>c)return;e.add(a);let h=b.get(a);for(let a of t(h))d.add(a);for(let a of function(a){if(!a||!Array.isArray(a.nodes))return[];let b=[];for(let c of a.nodes){if(c?.data?.type!=="subflow")continue;let a=c.data.properties??{};if("string"==typeof a.subflowId&&a.subflowId.trim()&&b.push(a.subflowId.trim()),Array.isArray(a.parallelSubflowIds))for(let c of a.parallelSubflowIds)"string"==typeof c&&c.trim()&&b.push(c.trim())}return Array.from(new Set(b))}(h))f(a,g+1)};return f(a,0),d}(d.id,c,b))a.has(f)||e(f,{flowId:d.id,flowName:d.name,signalNodeCount:0,viaSubflow:!0})}return d})(c),[c]),D=(0,e.useMemo)(()=>{let a=new Map;for(let b of c)b?.id&&a.set(b.id,b.name);return a},[c]),E=(0,e.useMemo)(()=>{let a=new Map;for(let b of w){let c=b.execution;if(c.id===v||c.trigger?.type!=="flow-event")continue;let d=c.trigger.source?.topic;if("string"!=typeof d||!d.trim())continue;let e=d.trim();a.has(e)||a.set(e,[]),a.get(e).push({executionId:c.id,executionName:c.name,flowId:c.flowId,flowName:D.get(c.flowId)})}return a},[w,v,D]),F=(0,e.useMemo)(()=>Array.from(new Set([...C.keys(),...E.keys()])).sort((a,b)=>a.localeCompare(b)),[C,E]),G=a=>{let b=C.get(a);if(!b||0===b.length)return null;let c=Array.from(new Set(b.map(a=>(a.flowName||a.flowId)+(a.viaSubflow?" (via subflow)":""))));return`Emitted in: ${c.join(", ")}`},H=(a.source?.topic??"").trim(),I=!H||C.has(H);(0,e.useEffect)(()=>{let a=!1;return s.P.list().then(b=>{a||x(b.executions||[])}).catch(b=>{u.warn("Failed to load planned executions for source picker",b),a||x([])}),()=>{a=!0}},[]);let J=(c,d)=>{let e=new Set(a.on??[]);d?e.add(c):e.delete(c),b({...a,on:Array.from(e)})};return(0,d.jsxs)(f.default,{sx:{mt:1},children:[(0,d.jsx)(g.A,{variant:"subtitle2",sx:{mt:1},children:"React to"}),(0,d.jsxs)(f.default,{sx:{display:"flex",gap:2,mt:1},children:[(0,d.jsxs)(h.A,{sx:{minWidth:180},children:[(0,d.jsx)(i.A,{id:"flow-event-source-kind",children:"Source"}),(0,d.jsxs)(j.A,{labelId:"flow-event-source-kind",label:"Source",value:A,onChange:c=>(c=>{b({...a,source:"flow"===c?{flowId:""}:"execution"===c?{executionId:""}:{topic:""}})})(c.target.value),children:[(0,d.jsx)(k.A,{value:"flow",children:"A flow (any run)"}),(0,d.jsx)(k.A,{value:"execution",children:"A planned execution"}),(0,d.jsx)(k.A,{value:"topic",children:"A signal topic"})]})]}),"topic"===A?(0,d.jsx)(h.A,{fullWidth:!0,children:(0,d.jsx)(l.A,{freeSolo:!0,autoHighlight:!0,options:F,value:a.source?.topic??"",inputValue:a.source?.topic??"",onInputChange:(c,d)=>b({...a,source:{topic:d}}),renderOption:(a,b)=>{let c=G(b),h=(a=>{let b=E.get(a);if(!b||0===b.length)return null;let c=Array.from(new Set(b.map(a=>a.flowName||a.flowId)));return`Used by ${b.length} trigger${1===b.length?"":"s"} → starts ${c.join(", ")}`})(b);return(0,e.createElement)(f.default,{component:"li",...a,key:b},(0,d.jsxs)(f.default,{sx:{display:"flex",flexDirection:"column",py:.25},children:[(0,d.jsx)(g.A,{variant:"body2",sx:{fontWeight:600},children:b}),c&&(0,d.jsx)(g.A,{variant:"caption",color:"text.secondary",children:c}),h&&(0,d.jsx)(g.A,{variant:"caption",color:"text.secondary",children:h}),!c&&(0,d.jsx)(g.A,{variant:"caption",color:"warning.main",children:"No flow currently emits this signal"})]}))},renderInput:a=>(0,d.jsx)(m.A,{...a,label:"Signal topic",placeholder:"e.g. review-blocked",helperText:H?I?G(H)??"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"===A?(0,d.jsxs)(h.A,{fullWidth:!0,children:[(0,d.jsx)(i.A,{id:"flow-event-flow",children:"Flow to watch"}),(0,d.jsxs)(j.A,{labelId:"flow-event-flow",label:"Flow to watch",value:a.source?.flowId??"",onChange:c=>b({...a,source:{flowId:c.target.value}}),displayEmpty:!0,children:[0===c.length&&(0,d.jsx)(k.A,{value:"",disabled:!0,children:"No flows available"}),c.map(a=>(0,d.jsx)(k.A,{value:a.id,children:a.name},a.id))]})]}):(0,d.jsxs)(h.A,{fullWidth:!0,children:[(0,d.jsx)(i.A,{id:"flow-event-execution",children:"Planned execution to watch"}),(0,d.jsxs)(j.A,{labelId:"flow-event-execution",label:"Planned execution to watch",value:a.source?.executionId??"",onChange:c=>b({...a,source:{executionId:c.target.value}}),displayEmpty:!0,children:[0===w.filter(a=>a.execution.id!==v).length&&(0,d.jsx)(k.A,{value:"",disabled:!0,children:"No other planned executions"}),w.filter(a=>a.execution.id!==v).map(a=>(0,d.jsx)(k.A,{value:a.execution.id,children:a.execution.name},a.execution.id))]})]})]}),!B&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.A,{variant:"subtitle2",sx:{mt:2},children:"When it…"}),(0,d.jsxs)(n.A,{row:!0,children:[(0,d.jsx)(o.A,{control:(0,d.jsx)(p.A,{checked:(a.on??[]).includes("completed"),onChange:a=>J("completed",a.target.checked)}),label:"completes"}),(0,d.jsx)(o.A,{control:(0,d.jsx)(p.A,{checked:(a.on??[]).includes("error"),onChange:a=>J("error",a.target.checked)}),label:"errors"})]})]}),(0,d.jsx)(m.A,{fullWidth:!0,label:B?"Only when the payload contains (optional)":"Only when the output contains (optional)",value:a.outputMatch?.contains??"",onChange:c=>{let d=c.target.value,e={...a.outputMatch,contains:d||void 0},f=e.contains||e.regex?e:void 0;b({...a,outputMatch:f})},margin:"normal",placeholder:"e.g. FAILED, or leave empty to react to every matching run"}),(0,d.jsx)(o.A,{sx:{mt:1},control:(0,d.jsx)(p.A,{checked:y,onChange:a=>z(a.target.checked)}),label:"Advanced (loop safety)"}),y&&(0,d.jsxs)(f.default,{sx:{display:"flex",gap:2,mt:1},children:[(0,d.jsx)(m.A,{label:"Max chain depth",type:"number",value:a.maxChainDepth??"",onChange:c=>b({...a,maxChainDepth:""===c.target.value?void 0:Number(c.target.value)}),helperText:"Stop after this many hops (default 100)",inputProps:{min:1}}),(0,d.jsx)(m.A,{label:"Cooldown (ms)",type:"number",value:a.minIntervalMs??"",onChange:c=>b({...a,minIntervalMs:""===c.target.value?void 0:Number(c.target.value)}),helperText:"Minimum gap between fires",inputProps:{min:0}})]}),(0,d.jsx)(q.A,{sx:{mt:2}}),(0,d.jsx)(r.A,{severity:"info",sx:{mt:2},children:B?"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."})]})}},72748:(a,b,c)=>{c.d(b,{A:()=>j});var d=c(21124);c(38301);var e=c(81637),f=c(37674),g=c(79515),h=c(88745),i=c(62185);let j=({config:a,onChange:b})=>(0,d.jsxs)(e.default,{sx:{mt:1},children:[(0,d.jsx)(f.A,{fullWidth:!0,label:"URL to watch",value:a.url,onChange:c=>b({...a,url:c.target.value}),placeholder:"https://example.com/status or an API/feed URL",margin:"normal",type:"url"}),(0,d.jsx)(g.A,{variant:"subtitle2",sx:{mt:1},children:"How often to check"}),(0,d.jsx)(i.A,{verb:"Check",cron:a.cron,timezone:a.timezone,onChange:({cron:c,timezone:d})=>b({...a,cron:c,timezone:d})}),(0,d.jsx)(h.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."})]})},87113:(a,b,c)=>{c.d(b,{A:()=>h});var d=c(21124);c(38301);var e=c(81637),f=c(79515),g=c(8165);let h=({selected:a,icon:b,title:c,description:h,onClick:i})=>(0,d.jsxs)(e.default,{role:"radio","aria-checked":a,tabIndex:0,onClick:i,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),i())},sx:{flex:1,minWidth:200,position:"relative",p:2,borderRadius:2,border:2,borderColor:a?"primary.main":"divider",bgcolor:a?"action.selected":"background.paper",cursor:"pointer",transition:"border-color 120ms, background-color 120ms","&:hover":{borderColor:a?"primary.main":"text.disabled"},outline:"none","&:focus-visible":{boxShadow:a=>`0 0 0 3px ${a.palette.primary.light}`}},children:[a&&(0,d.jsx)(g.A,{color:"primary",fontSize:"small",sx:{position:"absolute",top:8,right:8}}),(0,d.jsxs)(e.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:.5,color:a?"primary.main":"text.secondary"},children:[b,(0,d.jsx)(f.A,{variant:"subtitle1",sx:{fontWeight:600,color:"text.primary"},children:c})]}),(0,d.jsx)(f.A,{variant:"body2",color:"text.secondary",children:h})]})},88839:(a,b,c)=>{c.d(b,{A:()=>D});var d=c(21124),e=c(38301),f=c(81637),g=c(79515),h=c(68730),i=c(82605),j=c(50062),k=c(7675),l=c(94367),m=c(37674),n=c(8521),o=c(88745),p=c(11801);let q=(0,p.A)((0,d.jsx)("path",{d:"M18 23H4c-1.1 0-2-.9-2-2V7h2v14h14zM15 1H8c-1.1 0-1.99.9-1.99 2L6 17c0 1.1.89 2 1.99 2H19c1.1 0 2-.9 2-2V7zm1.5 14h-6v-2h6zm0-6h-2v2h-2V9h-2V7h2V5h2v2h2z"}),"Difference"),r=(0,p.A)([(0,d.jsx)("path",{d:"M13 8.57c-.79 0-1.43.64-1.43 1.43s.64 1.43 1.43 1.43 1.43-.64 1.43-1.43-.64-1.43-1.43-1.43"},"0"),(0,d.jsx)("path",{d:"M13 3C9.25 3 6.2 5.94 6.02 9.64L4.1 12.2c-.25.33-.01.8.4.8H6v3c0 1.1.9 2 2 2h1v3h7v-4.68c2.36-1.12 4-3.53 4-6.32 0-3.87-3.13-7-7-7m3 7c0 .13-.01.26-.02.39l.83.66c.08.06.1.16.05.25l-.8 1.39c-.05.09-.16.12-.24.09l-.99-.4c-.21.16-.43.29-.67.39L14 13.83c-.01.1-.1.17-.2.17h-1.6c-.1 0-.18-.07-.2-.17l-.15-1.06c-.25-.1-.47-.23-.68-.39l-.99.4c-.09.03-.2 0-.25-.09l-.8-1.39c-.05-.08-.03-.19.05-.25l.84-.66c-.01-.13-.02-.26-.02-.39s.02-.27.04-.39l-.85-.66c-.08-.06-.1-.16-.05-.26l.8-1.38c.05-.09.15-.12.24-.09l1 .4c.2-.15.43-.29.67-.39L12 6.17c.02-.1.1-.17.2-.17h1.6c.1 0 .18.07.2.17l.15 1.06c.24.1.46.23.67.39l1-.4c.09-.03.2 0 .24.09l.8 1.38c.05.09.03.2-.05.26l-.85.66c.03.12.04.25.04.39"},"1")],"Psychology");var s=c(28055),t=c(83434),u=c(63281),v=c(42819),w=c(87113),x=c(62185),y=c(31411),z=c(21570),A=c(68774),B=c(45231);let C=(0,v.h)("frontend/components/PlannedExecutions/WatchToolPanel"),D=({config:a,onChange:b})=>{let[c,p]=(0,e.useState)([]),[v,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)([]),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useState)(Object.keys(a.args||{}).length>0?JSON.stringify(a.args,null,2):""),[K,L]=(0,e.useState)(null),[M,N]=(0,e.useState)(!1),[O,P]=(0,e.useState)(null),[Q,R]=(0,e.useState)(null),[S,T]=(0,e.useState)([]),[U,V]=(0,e.useState)([]);(0,e.useEffect)(()=>{let a=!1;return s.S.loadServerConfigs().then(b=>{a||(Array.isArray(b)?p(b.filter(a=>!a.disabled)):(C.warn("Failed to load MCP servers for watch-tool panel",b),p([])))}),()=>{a=!0}},[]),(0,e.useEffect)(()=>{if(!a.serverName)return void F([]);let b=!1;return H(!0),s.S.listServerTools(a.serverName).then(({tools:a})=>{b||F(a||[])}).finally(()=>{b||H(!1)}),()=>{b=!0}},[a.serverName]),(0,e.useEffect)(()=>{let a=!1;return t.N.loadModels().then(b=>{a||T(Array.isArray(b)?b:[])}).catch(()=>{a||T([])}),u.g.loadFlows().then(b=>{a||V(b||[])}).catch(()=>{a||V([])}),()=>{a=!0}},[]);let W=async()=>{N(!0),P(null),R(null);try{let b=await s.S.callTool(a.serverName,a.toolName,a.args||{});if(b?.error)R("string"==typeof b.error?b.error:"Tool call failed");else{let a=b?.data??b,c=JSON.stringify(a,null,2)??"";P(c.length>6e3?`${c.slice(0,6e3)}
2
+ … (truncated)`:c)}}catch(a){R(a instanceof Error?a.message:"Tool call failed")}finally{N(!1)}},X=a.evaluate,Y=E.find(b=>b.name===a.toolName),Z=(0,B.E)("mcp",c),$=c=>({key:c.name,content:(c=>(0,d.jsx)(A.A,{name:c.name,status:c.status||"disconnected",path:c.rootPath||"",enabled:!c.disabled,transport:c.transport||"stdio",pickerMode:!0,selected:a.serverName===c.name,onClick:()=>{var d;return d=c.name,void(b({...a,serverName:d,toolName:""}),D(!1))}}))(c)}),_=Z.items.map($),aa=Z.groups?Z.groups.map(a=>({...a,items:a.items.map($)})):null;return(0,d.jsxs)(f.default,{sx:{mt:1},children:[(0,d.jsxs)(f.default,{sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[(0,d.jsxs)(f.default,{sx:{minWidth:220,flex:1,mt:2,mb:1},children:[(0,d.jsx)(g.A,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Server"}),(0,d.jsx)(h.A,{variant:"outlined",fullWidth:!0,onClick:()=>D(!0),sx:{justifyContent:"flex-start",textTransform:"none"},children:a.serverName?`${a.serverName} — change`:"Choose an MCP server…"}),(0,d.jsx)(z.A,{open:v,onClose:()=>D(!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:Z.searchTerm,onSearchChange:Z.setSearchTerm,columns:{xs:12,sm:6},items:_,groups:aa,collapsedKeys:Z.collapsedKeys,onToggleGroup:Z.toggleGroup})]}),(0,d.jsxs)(i.A,{sx:{minWidth:220,flex:1},margin:"normal",disabled:!a.serverName,children:[(0,d.jsx)(j.A,{id:"watch-tool-label",children:"Tool"}),(0,d.jsxs)(k.A,{labelId:"watch-tool-label",label:"Tool",value:E.some(b=>b.name===a.toolName)?a.toolName:"",onChange:c=>b({...a,toolName:c.target.value,args:{}}),children:[0===E.length&&(0,d.jsx)(l.A,{value:"",disabled:!0,children:G?"Loading tools…":"Pick a server first"}),E.map(a=>(0,d.jsx)(l.A,{value:a.name,children:a.name},a.name))]})]})]}),(0,d.jsx)(g.A,{variant:"subtitle2",sx:{mt:1},children:"How often to check"}),(0,d.jsx)(x.A,{verb:"Check",cron:a.cron??function(a){let b=Math.max(5,Math.round((a??6e4)/1e3));if(b<60)return`*/${b} * * * * *`;let c=Math.max(1,Math.round(b/60));if(c<60)return`*/${c} * * * *`;let d=Math.max(1,Math.min(23,Math.round(c/60)));return`0 */${d} * * *`}(a.intervalMs),timezone:a.timezone,onChange:({cron:c,timezone:d})=>b({...a,cron:c,timezone:d})}),Y?(0,d.jsxs)(f.default,{sx:{my:1.5},children:[(0,d.jsx)(g.A,{variant:"subtitle2",sx:{mb:1.5},children:"Tool parameters — sent on every check"}),(0,d.jsx)(y.A,{schema:Y.inputSchema,values:a.args||{},onChange:c=>b({...a,args:c})})]}):(0,d.jsx)(m.A,{fullWidth:!0,label:"Tool arguments (JSON, optional)",value:I,onChange:c=>(c=>{if(J(c),!c.trim()){L(null),b({...a,args:{}});return}try{let d=JSON.parse(c);if(null===d||"object"!=typeof d||Array.isArray(d))return void L('Arguments must be a JSON object, e.g. { "query": "…" }');L(null),b({...a,args:d})}catch{L("Not valid JSON yet")}})(c.target.value),margin:"normal",multiline:!0,minRows:2,placeholder:'{ "query": "is:unread" }',error:!!K,helperText:K??"Sent to the tool on every check.",slotProps:{input:{sx:{fontFamily:"monospace",fontSize:14}}}}),(0,d.jsxs)(f.default,{sx:{display:"flex",alignItems:"center",gap:2,mb:1},children:[(0,d.jsx)(h.A,{variant:"outlined",size:"small",onClick:W,disabled:!a.serverName||!a.toolName||M||!!K,startIcon:M?(0,d.jsx)(n.default,{size:16}):void 0,children:"Test: call the tool now"}),(0,d.jsx)(g.A,{variant:"caption",color:"text.secondary",children:"See what the result looks like — useful for the settings below."})]}),Q&&(0,d.jsx)(o.A,{severity:"error",sx:{mb:1},children:Q}),O&&(0,d.jsx)(f.default,{component:"pre",sx:{maxHeight:240,overflow:"auto",bgcolor:"action.hover",borderRadius:1,p:1.5,fontSize:12,m:0,mb:1},children:O}),(0,d.jsx)(g.A,{variant:"subtitle2",sx:{mt:2,mb:1},children:"Run the flow when…"}),(0,d.jsxs)(f.default,{role:"radiogroup","aria-label":"Poll condition",sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[(0,d.jsx)(w.A,{selected:"on-change"===X.mode,onClick:()=>b({...a,evaluate:{mode:"on-change"}}),icon:(0,d.jsx)(q,{}),title:"The result changes",description:"Any difference from the last check runs the flow. Simplest — no setup."}),(0,d.jsx)(w.A,{selected:"llm-gate"===X.mode||"flow-gate"===X.mode,onClick:()=>{"llm-gate"!==X.mode&&"flow-gate"!==X.mode&&b({...a,evaluate:{mode:"llm-gate",condition:"",modelId:""}})},icon:(0,d.jsx)(r,{}),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"===X.mode||"flow-gate"===X.mode)&&(0,d.jsxs)(f.default,{sx:{mt:1},children:[(0,d.jsx)(m.A,{fullWidth:!0,label:"Run the flow if…",value:X.condition,onChange:c=>b({...a,evaluate:{...X,condition:c.target.value}}),multiline:!0,minRows:2,margin:"normal",placeholder:"e.g. any email mentions an invoice or a payment reminder"}),(0,d.jsxs)(f.default,{sx:{display:"flex",gap:2,flexWrap:"wrap",alignItems:"flex-start"},children:[(0,d.jsxs)(i.A,{sx:{minWidth:170},children:[(0,d.jsx)(j.A,{id:"gate-checker-label",children:"Checked by"}),(0,d.jsxs)(k.A,{labelId:"gate-checker-label",label:"Checked by",value:X.mode,onChange:c=>{let d=c.target.value;if(d===X.mode)return;let e={condition:X.condition,maxCallsPerDay:X.maxCallsPerDay};b({...a,evaluate:"llm-gate"===d?{mode:d,...e,modelId:""}:{mode:d,...e,flowId:""}})},children:[(0,d.jsx)(l.A,{value:"llm-gate",children:"A model"}),(0,d.jsx)(l.A,{value:"flow-gate",children:"One of my flows"})]})]}),"llm-gate"===X.mode&&(0,d.jsxs)(i.A,{sx:{minWidth:240,flex:1},children:[(0,d.jsx)(j.A,{id:"gate-model-label",children:"Model that checks"}),(0,d.jsxs)(k.A,{labelId:"gate-model-label",label:"Model that checks",value:S.some(a=>a.id===X.modelId)?X.modelId:"",onChange:c=>b({...a,evaluate:{...X,modelId:c.target.value}}),children:[0===S.length&&(0,d.jsx)(l.A,{value:"",disabled:!0,children:"No models configured"}),S.map(a=>(0,d.jsx)(l.A,{value:a.id,children:a.displayName||a.name},a.id))]})]}),"flow-gate"===X.mode&&(0,d.jsxs)(i.A,{sx:{minWidth:240,flex:1},children:[(0,d.jsx)(j.A,{id:"gate-flow-label",children:"Flow that checks"}),(0,d.jsxs)(k.A,{labelId:"gate-flow-label",label:"Flow that checks",value:U.some(a=>a.id===X.flowId)?X.flowId:"",onChange:c=>b({...a,evaluate:{...X,flowId:c.target.value}}),children:[0===U.length&&(0,d.jsx)(l.A,{value:"",disabled:!0,children:"No flows available"}),U.map(a=>(0,d.jsx)(l.A,{value:a.id,children:a.name},a.id))]})]}),(0,d.jsx)(m.A,{label:"Max checks per day",type:"number",value:X.maxCallsPerDay??500,onChange:c=>b({...a,evaluate:{...X,maxCallsPerDay:Math.max(1,Number(c.target.value)||1)}}),inputProps:{min:1},helperText:"Cost guard per check.",sx:{width:180}})]}),(0,d.jsx)(g.A,{variant:"caption",color:"text.secondary",sx:{display:"block",mt:.5},children:"flow-gate"===X.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,d.jsx)(o.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."})]})}},91283:(a,b,c)=>{c.d(b,{A:()=>q});var d=c(21124),e=c(38301),f=c(81637),g=c(88745),h=c(37674),i=c(43312),j=c(44079),k=c(68730),l=c(79515),m=c(95587),n=c(77028),o=c(38941),p=c(36698);let q=({config:a,onChange:b,executionId:c,saved:q})=>{let[r,s]=(0,e.useState)(null),t=`/api/webhooks/${c}`,u=async(a,b)=>{try{await navigator.clipboard.writeText(b),s(a),setTimeout(()=>s(null),1500)}catch{}};return(0,d.jsxs)(f.default,{sx:{mt:1},children:[!q&&(0,d.jsx)(g.A,{severity:"info",sx:{mb:2},children:"This URL and token are ready to copy now — they become active when you save."}),(0,d.jsxs)(f.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,d.jsx)(h.A,{fullWidth:!0,label:"Webhook URL",value:t,InputProps:{readOnly:!0},size:"small"}),(0,d.jsx)(i.A,{title:"Copy URL",children:(0,d.jsx)(j.A,{onClick:()=>u("url",t),children:"url"===r?(0,d.jsx)(p.A,{color:"success"}):(0,d.jsx)(o.A,{})})})]}),(0,d.jsxs)(f.default,{sx:{display:"flex",alignItems:"center",gap:1,mt:2},children:[(0,d.jsx)(h.A,{fullWidth:!0,label:"Secret token",value:a.token,InputProps:{readOnly:!0},size:"small",type:"password"}),(0,d.jsx)(i.A,{title:"Copy token",children:(0,d.jsx)(j.A,{onClick:()=>u("token",a.token),disabled:!a.token,children:"token"===r?(0,d.jsx)(p.A,{color:"success"}):(0,d.jsx)(o.A,{})})}),(0,d.jsx)(k.A,{size:"small",onClick:()=>b({...a,token:crypto.randomUUID()}),sx:{whiteSpace:"nowrap"},children:"New token"})]}),(0,d.jsx)(l.A,{variant:"caption",color:"text.secondary",children:q?"A new token takes effect when you save — callers using the old one are cut off.":""}),(0,d.jsxs)(l.A,{variant:"body2",color:"text.secondary",sx:{mt:1.5},children:["Callers send a POST with the token in the ",(0,d.jsx)("code",{children:"X-Flujo-Token"})," ","header (or ",(0,d.jsx)("code",{children:"?token=…"}),"). The request body becomes part of the flow's input — treat it as untrusted data in your prompt."]}),(0,d.jsx)(m.A,{sx:{mt:1,display:"flex"},control:(0,d.jsx)(n.A,{checked:!0===a.allowExternal,onChange:c=>b({...a,allowExternal:c.target.checked})}),label:"Allow calls from other machines (default: this computer only)"}),a.allowExternal&&(0,d.jsx)(g.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."})]})}}};
@@ -0,0 +1,2 @@
1
+ exports.id=5444,exports.ids=[5444],exports.modules={9718:(a,b,c)=>{"use strict";c.d(b,{Zg:()=>d.Z,Mj:()=>g});var d=c(60418),e=c(38301);let f=(0,c(42819).h)("utils/storage/frontend.ts");function g(a,b){f.verbose("useLocalStorage: Entering method");let[c,d]=(0,e.useState)(b),[g,h]=(0,e.useState)(!0),i=(0,e.useRef)(c);return[c,(0,e.useCallback)(async b=>{f.verbose("setValue: Entering method");try{let c=b instanceof Function?b(i.current):b;if(d(c),!(await fetch("/api/storage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:a,value:c})})).ok)throw Error("Failed to save value")}catch(b){f.warn(`Error setting storage key "${a}":`,b)}},[a]),g]}},18400:()=>{},20225:(a,b,c)=>{Promise.resolve().then(c.bind(c,41306))},32631:(a,b,c)=>{"use strict";c.d(b,{D:()=>h}),c(21124);var d=c(38301),e=c(42819);c(84040),c(77360),c(9718);let f=(0,e.h)("frontend/contexts/ThemeContext"),g=(0,d.createContext)(void 0),h=()=>{let a=(0,d.useContext)(g);if(!a)throw f.error("useTheme hook used outside of ThemeProvider"),Error("useTheme must be used within a ThemeProvider");return f.debug("useTheme hook accessed"),a}},41306:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"C:\\\\Users\\\\Moe\\\\Documents\\\\GitHub\\\\FLUJO\\\\src\\\\frontend\\\\components\\\\AppWrapper.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\frontend\\components\\AppWrapper.tsx","default")},42819:(a,b,c)=>{"use strict";c.d(b,{h:()=>i});var d=c(65690);let e={VERBOSE:-1,DEBUG:0,INFO:1,WARN:2,ERROR:3},f="number"==typeof d.G.LOG_LEVEL?d.G.LOG_LEVEL:e.ERROR;function g(a,b=0){if(b>6)return String(a);if(!(a instanceof Error))return a;let c={name:a.name,message:a.message};for(let d of Object.getOwnPropertyNames(a)){if("name"===d||"message"===d)continue;let e=a[d];"function"!=typeof e&&("stack"===d?c.stack=e:"cause"===d?c.cause=g(e,b+1):"errors"===d&&Array.isArray(e)?c.errors=e.map(a=>g(a,b+1)):c[d]=e)}return c}function h(a,b,c,d,h){if(a>=("number"==typeof h?h:f)){if("function"==typeof d)try{d=d()}catch{d="[lazy log data threw]"}let f=new Date().toISOString(),h=`[${f}] [${b}]`,i=`${h} ${c}`;if(void 0!==d)if(d instanceof Error||"object"==typeof d)try{let a=d instanceof Error?g(d):d,b=JSON.stringify(a,(a,b)=>b instanceof Error?g(b):b,2);i+=`:
2
+ ${b}`}catch(a){i+=": [Object cannot be stringified]"}else i+=`: ${d}`;switch(a){case e.VERBOSE:console.debug(`[VERBOSE] ${i}`);break;case e.DEBUG:console.debug(i);break;case e.INFO:console.info(i);break;case e.WARN:console.warn(i);break;case e.ERROR:console.error(i);break;default:console.log(i)}}}function i(a,b){let c,d=((c=a.replace(/^src\//,"")).startsWith("/")&&(c=c.substring(1)),c);return{verbose:(a,c)=>{h(e.VERBOSE,d,a,c,b)},debug:(a,c)=>{h(e.DEBUG,d,a,c,b)},info:(a,c)=>{h(e.INFO,d,a,c,b)},warn:(a,c)=>{h(e.WARN,d,a,c,b)},error:(a,c)=>{h(e.ERROR,d,a,c,b)}}}},46152:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,54160,23)),Promise.resolve().then(c.t.bind(c,31603,23)),Promise.resolve().then(c.t.bind(c,68495,23)),Promise.resolve().then(c.t.bind(c,75170,23)),Promise.resolve().then(c.t.bind(c,55145,23)),Promise.resolve().then(c.t.bind(c,78922,23)),Promise.resolve().then(c.t.bind(c,29234,23)),Promise.resolve().then(c.t.bind(c,34644,23)),Promise.resolve().then(c.bind(c,82146))},49938:(a,b,c)=>{"use strict";c.d(b,{rX:()=>f}),c(21124);var d=c(38301);c(9718),(0,c(42819).h)("frontend/contexts/StorageContext");let e=(0,d.createContext)({setKey:async()=>{},changeKey:async()=>!1,verifyKey:async()=>!1,isEncryptionInitialized:async()=>!1,globalEnvVars:{},setGlobalEnvVars:async()=>{},deleteGlobalEnvVar:async()=>{},encryptValue:async()=>null,decryptValue:async()=>null,isUserEncryptionEnabled:async()=>!1,isLoading:!0,settings:{speech:{enabled:!0},update:{checkOnStartup:!1}},settingsHydrated:!1,updateSettings:async()=>{}}),f=()=>(0,d.useContext)(e)},51472:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>n,metadata:()=>l,viewport:()=>m});var d=c(75338),e=c(94294),f=c.n(e),g=c(81464),h=c.n(g);c(61135),c(18400);var i=c(50846),j=c(41306);let k=(0,i.h)("app/layout"),l={title:{default:"FLUJO — Local AI Operations",template:"%s \xb7 FLUJO"},description:"Design, connect, and run private AI systems from one local operations studio."},m={width:"device-width",initialScale:1,themeColor:[{media:"(prefers-color-scheme: light)",color:"#F5F7FF"},{media:"(prefers-color-scheme: dark)",color:"#070912"}]};function n({children:a}){return k.debug("Rendering RootLayout"),(0,d.jsx)("html",{lang:"en",className:"modern-theme","data-visual-style":"modern",style:{colorScheme:"light"},suppressHydrationWarning:!0,children:(0,d.jsx)("body",{className:`${f().variable} ${h().variable} antialiased`,children:(0,d.jsx)(j.default,{children:a})})})}},56673:(a,b,c)=>{Promise.resolve().then(c.bind(c,66587))},60418:(a,b,c)=>{"use strict";c.d(b,{Z:()=>d});var d=function(a){return a.MODELS="models",a.FLOWS="flows",a.CHAT_HISTORY="history",a.THEME="theme",a.THEME_STYLE="theme_style",a.ENCRYPTION_KEY="encryption_key",a.MCP_SERVERS="mcp_servers",a.GLOBAL_ENV_VARS="global_env_vars",a.CURRENT_CONVERSATION_ID="current_conversation_id",a.SELECTED_FLOW_ID="selected_flow_id",a.LAST_PICKED_FLOW_ID="last_picked_flow_id",a.SPEECH_SETTINGS="speech_settings",a.SPOTLIGHT_SERVERS="spotlight_servers",a.PLANNED_EXECUTIONS="planned_executions",a.MCP_AUTO_INSTALL_SETTINGS="mcp_auto_install_settings",a.MCP_QUALITY_SETTINGS="mcp_quality_settings",a.RUN_RESOURCE_SETTINGS="run_resource_settings",a.KV_STORE_SETTINGS="kv_store_settings",a.PENDING_APPROVALS="pending_approvals",a.MCP_INTERNAL_OVERRIDES="mcp_internal_overrides",a.MCP_INTERNAL_SERVERS_MIGRATION_V1="mcp_internal_servers_migration_v1",a.MCP_INTERNAL_CAPABILITIES_MIGRATION_V2="mcp_internal_capabilities_migration_v2",a.MCP_INTERNAL_BROWSER_MIGRATION_V3="mcp_internal_browser_migration_v3",a.MCP_SHIPPED_SERVERS_MIGRATION_V4="mcp_shipped_servers_migration_v4",a.PACKAGE_INSTALLS="package_installs",a.EXPERIMENTAL_SETTINGS="experimental_settings",a.REGISTRY_ACCOUNT="registry_account",a.REGISTRY_SETTINGS="registry_settings",a.TELEMETRY_STATE="telemetry_state",a}({})},61135:()=>{},65690:(a,b,c)=>{"use strict";c.d(b,{G:()=>d});let d={LOG_LEVEL:3,INCLUDE_TOOL_CALLS_IN_RESPONSE:!0,ENABLE_EXECUTION_TRACKER:!1,ENABLE_REVERT_TO_HERE:!1}},66587:(a,b,c)=>{"use strict";c.d(b,{default:()=>y});var d=c(21124),e=c(38301),f=c.n(e),g=c(13973),h=c(49938),i=c(32631);let j=(0,g.default)(async()=>{},{loadableGenerated:{modules:["frontend\\components\\AmbientWorld\\LivingWorldGate.tsx -> ./RiverWorld"]},ssr:!1,loading:()=>null});function k(){let{settings:a,settingsHydrated:b}=(0,h.rX)(),{visualStyle:c}=(0,i.D)();return b&&a?.experimental?.enabled===!0&&"modern"===c?(0,d.jsx)(j,{}):null}var l=c(42378),m=c(90392);function n({children:a}){(0,l.usePathname)();let{settings:b,settingsHydrated:c}=(0,h.rX)(),{visualStyle:d}=(0,i.D)();return(0,e.useRef)(null),c&&b.experimental?.enabled,a}m.L.dark.resource,m.L.dark.mcp,m.L.light.resource,m.L.dark.subflow,m.L.dark.process,m.L.light.trigger,m.L.light.process,m.L.light.subflow,m.L.dark.finish,m.L.dark.signal,m.L.dark.start;let o=(0,c(42819).h)("frontend/components/AppWrapper");function p({label:a="Preparing your workspace",compact:b=!1}){return b?(0,d.jsx)("div",{"aria-label":a,style:{height:"var(--app-bar-height)",borderBottom:"1px solid var(--border)",background:"var(--surface-glass)",backdropFilter:"blur(20px)"}}):(0,d.jsx)("div",{className:"app-loading",role:"status","aria-live":"polite",children:(0,d.jsxs)("div",{className:"app-loading__content",children:[(0,d.jsx)("div",{className:"app-loading__mark","aria-hidden":"true",children:(0,d.jsx)("span",{children:"F"})}),(0,d.jsx)("span",{children:a})]})})}let q=(0,g.default)(async()=>{},{loadableGenerated:{modules:["frontend\\components\\AppWrapper.tsx -> ../contexts/ThemeContext"]},ssr:!1,loading:()=>(0,d.jsx)(p,{label:"Lighting up FLUJO"})}),r=(0,g.default)(async()=>{},{loadableGenerated:{modules:["frontend\\components\\AppWrapper.tsx -> ../contexts/StorageContext"]},ssr:!1,loading:()=>(0,d.jsx)(p,{label:"Opening your workspace"})}),s=(0,g.default)(async()=>{},{loadableGenerated:{modules:["frontend\\components\\AppWrapper.tsx -> ./Navigation"]},ssr:!1,loading:()=>(0,d.jsx)(p,{label:"Loading navigation",compact:!0})}),t=(0,g.default)(async()=>{},{loadableGenerated:{modules:["frontend\\components\\AppWrapper.tsx -> ./EncryptionAuthDialog"]},ssr:!1,loading:()=>null}),u=(0,g.default)(async()=>{},{loadableGenerated:{modules:["frontend\\components\\AppWrapper.tsx -> ../contexts/TourContext"]},ssr:!1,loading:()=>null}),v=(0,g.default)(async()=>{},{loadableGenerated:{modules:["frontend\\components\\AppWrapper.tsx -> ./Tour/TourOverlay"]},ssr:!1,loading:()=>null}),w=(0,g.default)(async()=>{},{loadableGenerated:{modules:["frontend\\components\\AppWrapper.tsx -> ./TelemetryNotice"]},ssr:!1,loading:()=>null});class x extends f().Component{constructor(a){super(a),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(a){o.error("AppWrapper error boundary caught an error:",a)}render(){return this.state.hasError?(0,d.jsx)("div",{className:"app-loading",children:(0,d.jsxs)("div",{className:"premium-surface",style:{width:"min(92vw, 520px)",padding:"42px",borderRadius:"28px",textAlign:"center"},children:[(0,d.jsx)("div",{className:"app-loading__mark",style:{margin:"0 auto 24px"},"aria-hidden":"true",children:(0,d.jsx)("span",{children:"!"})}),(0,d.jsx)("h2",{style:{margin:"0 0 10px",letterSpacing:"-0.035em"},children:"The workspace hit a snag"}),(0,d.jsx)("p",{style:{margin:"0 auto 24px",maxWidth:380,color:"var(--text-secondary)"},children:"Your data is safe. Reload FLUJO to reconnect the interface to the local runtime."}),(0,d.jsx)("button",{onClick:()=>window.location.reload(),style:{minHeight:46,padding:"0 22px",border:0,borderRadius:14,cursor:"pointer",color:"#fff",background:"linear-gradient(135deg, #9b8cff, #6253e8 55%, #18b8d7)",boxShadow:"0 14px 34px rgba(102, 87, 245, 0.32)",fontWeight:700},children:"Reload workspace"})]})}):this.props.children}}function y({children:a}){return o.debug("Rendering AppWrapper"),(0,d.jsx)(x,{children:(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)(p,{}),children:(0,d.jsx)(q,{children:(0,d.jsx)(r,{children:(0,d.jsx)(u,{children:(0,d.jsxs)("div",{className:"app-shell",children:[(0,d.jsx)("a",{className:"skip-link",href:"#main-content",children:"Skip to content"}),(0,d.jsx)(k,{}),(0,d.jsxs)(e.Suspense,{fallback:(0,d.jsx)(p,{label:"Loading navigation",compact:!0}),children:[(0,d.jsx)(s,{}),(0,d.jsx)(t,{}),(0,d.jsx)(w,{})]}),(0,d.jsx)("main",{id:"main-content",className:"app-main",tabIndex:-1,children:(0,d.jsx)(n,{children:a})}),(0,d.jsx)(v,{})]})})})})})})}},77360:(a,b,c)=>{"use strict";c.d(b,{k:()=>d,z:()=>e});let d={light:{background:"#F5F7FF",foreground:"#171A2B",surface:"#FFFFFF",surfaceRaised:"#F8FAFF",paperBackground:"#FFFFFF",textSecondary:"#606A84",textDisabled:"#929BB1",border:"#DEE3F0",heading:"#121424",text:"#20243A",secondaryText:"#606A84",error:{background:"#FFF2F5",border:"#FFC7D2",text:"#C62847"},domain:{resource:"#008D83",resourceSoft:"#36B9AD",signal:"#7157D9",startNode:"#7A5C50",codeBackground:"#F2F4FA",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:"#070912",foreground:"#F4F6FF",surface:"#12182C",surfaceRaised:"#1C243B",paperBackground:"#12182C",textSecondary:"#ADB6CC",textDisabled:"#69738C",border:"#2A324B",heading:"#F8F9FF",text:"#F4F6FF",secondaryText:"#ADB6CC",error:{background:"#2D151F",border:"#633044",text:"#FF8298"},domain:{resource:"#38C9BC",resourceSoft:"#6BDED4",signal:"#A694FF",startNode:"#C6A69A",codeBackground:"#181E32",http:{get:"#66bb6a",post:"#5b9dff",put:"#ffa726",patch:"#ba68c8",delete:"#ef5350"},transport:{stdio:{fg:"#9DCCFF",bg:"#17243A"},websocket:{fg:"#9DE3B3",bg:"#172D24"},sse:{fg:"#FFD18A",bg:"#322718"},streamable:{fg:"#82E2D9",bg:"#15312F"},default:{fg:"#ADB6CC",bg:"#1C243B"}}}}},e={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"}}}}}},82600:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81170,23)),Promise.resolve().then(c.t.bind(c,23597,23)),Promise.resolve().then(c.t.bind(c,36893,23)),Promise.resolve().then(c.t.bind(c,89748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,69576,23)),Promise.resolve().then(c.t.bind(c,73041,23)),Promise.resolve().then(c.t.bind(c,51384,23))},84040:(a,b,c)=>{"use strict";c.d(b,{Ic:()=>h});var d=c(32631),e=c(42819),f=c(77360);let g=(0,e.h)("frontend/utils/theme");function h(){let{isDarkMode:a,visualStyle:b}=(0,d.D)();return g.debug(`useThemeUtils called with isDarkMode: ${a}`),{getThemeValue:(b,c)=>a?c:b,getThemeColor:c=>{let d=c.split("."),e=("legacy"===b?f.z:f.k)[a?"dark":"light"];for(let a of d)if(!e||"object"!=typeof e||!(a in e))return g.warn(`Theme color path not found: ${c}`),"";else e=e[a];return e},colors:"legacy"===b?a?f.z.dark:f.z.light:a?f.k.dark:f.k.light,isDarkMode:a,visualStyle:b}}},90392:(a,b,c)=>{"use strict";c.d(b,{L:()=>d,Z:()=>e});let d={light:{start:"#7E889E",process:"#6355E8",finish:"#15885A",mcp:"#129DB8",subflow:"#C67A13",resource:"#18AFA3",signal:"#9A78FF",trigger:"#EF5D8E"},dark:{start:"#B7C0D2",process:"#8B7CFF",finish:"#57D59B",mcp:"#31D2ED",subflow:"#F6BC66",resource:"#63D8CE",signal:"#C4B2FF",trigger:"#FF9ABD"}},e={resource:"#63D8CE",signal:"#C4B2FF",trigger:"#FF9ABD"}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=5446,exports.ids=[5446],exports.modules={15059:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2m6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56M12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96M4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56m2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8M12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96M14.34 14H9.66c-.09-.66-.16-1.32-.16-2s.07-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2m.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2z"}),"Language")},23744:(a,b,c)=>{c.d(b,{A:()=>E});var d=c(38301),e=c(2783),f=c(74846),g=c(62383),h=c(69979);let i=function(a={}){let{autoHideDuration:b=null,disableWindowBlurListener:c=!1,onClose:e,open:i,resumeHideDuration:j}=a,k=(0,f.A)();d.useEffect(()=>{if(i)return document.addEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)};function a(a){a.defaultPrevented||"Escape"!==a.key||e?.(a,"escapeKeyDown")}},[i,e]);let l=(0,g.A)((a,b)=>{e?.(a,b)}),m=(0,g.A)(a=>{e&&null!=a&&k.start(a,()=>{l(null,"timeout")})});d.useEffect(()=>(i&&m(b),k.clear),[i,b,m,k]);let n=k.clear,o=d.useCallback(()=>{null!=b&&m(null!=j?j:.5*b)},[b,j,m]);return d.useEffect(()=>{if(!c&&i)return window.addEventListener("focus",o),window.addEventListener("blur",n),()=>{window.removeEventListener("focus",o),window.removeEventListener("blur",n)}},[c,i,o,n]),{getRootProps:(b={})=>{let c={...(0,h.A)(a),...(0,h.A)(b)};return{role:"presentation",...b,...c,onBlur:a=>{let b=c.onBlur;b?.(a),o()},onFocus:a=>{let b=c.onFocus;b?.(a),n()},onMouseEnter:a=>{let b=c.onMouseEnter;b?.(a),n()},onMouseLeave:a=>{let b=c.onMouseLeave;b?.(a),o()}}},onClickAway:a=>{e?.(a,"clickaway")}}};var j=c(21903),k=c(18168),l=c(60839),m=c(68333),n=c(6636),o=c(6638),p=c(4927),q=c(43249),r=c(37489),s=c(54573),t=c(29565),u=c(33105);function v(a){return(0,u.Ay)("MuiSnackbarContent",a)}(0,t.A)("MuiSnackbarContent",["root","message","action"]);var w=c(21124);let x=(0,k.Ay)(s.A,{name:"MuiSnackbarContent",slot:"Root",overridesResolver:(a,b)=>b.root})((0,m.A)(({theme:a})=>{let b="light"===a.palette.mode?.8:.98,c=(0,r.tL)(a.palette.background.default,b);return{...a.typography.body2,color:a.vars?a.vars.palette.SnackbarContent.color:a.palette.getContrastText(c),backgroundColor:a.vars?a.vars.palette.SnackbarContent.bg:c,display:"flex",alignItems:"center",flexWrap:"wrap",padding:"6px 16px",borderRadius:(a.vars||a).shape.borderRadius,flexGrow:1,[a.breakpoints.up("sm")]:{flexGrow:"initial",minWidth:288}}})),y=(0,k.Ay)("div",{name:"MuiSnackbarContent",slot:"Message",overridesResolver:(a,b)=>b.message})({padding:"8px 0"}),z=(0,k.Ay)("div",{name:"MuiSnackbarContent",slot:"Action",overridesResolver:(a,b)=>b.action})({display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:16,marginRight:-8}),A=d.forwardRef(function(a,b){let c=(0,n.b)({props:a,name:"MuiSnackbarContent"}),{action:d,className:f,message:g,role:h="alert",...i}=c,j=(a=>{let{classes:b}=a;return(0,e.A)({root:["root"],action:["action"],message:["message"]},v,b)})(c);return(0,w.jsxs)(x,{role:h,square:!0,elevation:6,className:(0,q.A)(j.root,f),ownerState:c,ref:b,...i,children:[(0,w.jsx)(y,{className:j.message,ownerState:c,children:g}),d?(0,w.jsx)(z,{className:j.action,ownerState:c,children:d}):null]})});function B(a){return(0,u.Ay)("MuiSnackbar",a)}(0,t.A)("MuiSnackbar",["root","anchorOriginTopCenter","anchorOriginBottomCenter","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft"]);var C=c(20385);let D=(0,k.Ay)("div",{name:"MuiSnackbar",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,b[`anchorOrigin${(0,o.A)(c.anchorOrigin.vertical)}${(0,o.A)(c.anchorOrigin.horizontal)}`]]}})((0,m.A)(({theme:a})=>({zIndex:(a.vars||a).zIndex.snackbar,position:"fixed",display:"flex",left:8,right:8,justifyContent:"center",alignItems:"center",variants:[{props:({ownerState:a})=>"top"===a.anchorOrigin.vertical,style:{top:8,[a.breakpoints.up("sm")]:{top:24}}},{props:({ownerState:a})=>"top"!==a.anchorOrigin.vertical,style:{bottom:8,[a.breakpoints.up("sm")]:{bottom:24}}},{props:({ownerState:a})=>"left"===a.anchorOrigin.horizontal,style:{justifyContent:"flex-start",[a.breakpoints.up("sm")]:{left:24,right:"auto"}}},{props:({ownerState:a})=>"right"===a.anchorOrigin.horizontal,style:{justifyContent:"flex-end",[a.breakpoints.up("sm")]:{right:24,left:"auto"}}},{props:({ownerState:a})=>"center"===a.anchorOrigin.horizontal,style:{[a.breakpoints.up("sm")]:{left:"50%",right:"auto",transform:"translateX(-50%)"}}}]}))),E=d.forwardRef(function(a,b){let c=(0,n.b)({props:a,name:"MuiSnackbar"}),f=(0,l.A)(),g={enter:f.transitions.duration.enteringScreen,exit:f.transitions.duration.leavingScreen},{action:h,anchorOrigin:{vertical:k,horizontal:m}={vertical:"bottom",horizontal:"left"},autoHideDuration:q=null,children:r,className:s,ClickAwayListenerProps:t,ContentProps:u,disableWindowBlurListener:v=!1,message:x,onBlur:y,onClose:z,onFocus:E,onMouseEnter:F,onMouseLeave:G,open:H,resumeHideDuration:I,slots:J={},slotProps:K={},TransitionComponent:L,transitionDuration:M=g,TransitionProps:{onEnter:N,onExited:O,...P}={},...Q}=c,R={...c,anchorOrigin:{vertical:k,horizontal:m},autoHideDuration:q,disableWindowBlurListener:v,TransitionComponent:L,transitionDuration:M},S=(a=>{let{classes:b,anchorOrigin:c}=a,d={root:["root",`anchorOrigin${(0,o.A)(c.vertical)}${(0,o.A)(c.horizontal)}`]};return(0,e.A)(d,B,b)})(R),{getRootProps:T,onClickAway:U}=i({...R}),[V,W]=d.useState(!0),X={slots:{transition:L,...J},slotProps:{content:u,clickAwayListener:t,transition:P,...K}},[Y,Z]=(0,C.A)("root",{ref:b,className:[S.root,s],elementType:D,getSlotProps:T,externalForwardedProps:{...X,...Q},ownerState:R}),[$,{ownerState:_,...aa}]=(0,C.A)("clickAwayListener",{elementType:j.x,externalForwardedProps:X,getSlotProps:a=>({onClickAway:(...b)=>{a.onClickAway?.(...b),U(...b)}}),ownerState:R}),[ab,ac]=(0,C.A)("content",{elementType:A,shouldForwardComponentProp:!0,externalForwardedProps:X,additionalProps:{message:x,action:h},ownerState:R}),[ad,ae]=(0,C.A)("transition",{elementType:p.A,externalForwardedProps:X,getSlotProps:a=>({onEnter:(...b)=>{a.onEnter?.(...b),((a,b)=>{W(!1),N&&N(a,b)})(...b)},onExited:(...b)=>{a.onExited?.(...b),(a=>{W(!0),O&&O(a)})(...b)}}),additionalProps:{appear:!0,in:H,timeout:M,direction:"top"===k?"down":"up"},ownerState:R});return!H&&V?null:(0,w.jsx)($,{...aa,...J.clickAwayListener&&{ownerState:_},children:(0,w.jsx)(Y,{...Z,children:(0,w.jsx)(ad,{...ae,children:r||(0,w.jsx)(ab,{...ac})})})})})},25750:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"m12 16.5 4-4h-3v-9h-2v9H8zm9-13h-6v1.99h6v14.03H3V5.49h6V3.5H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2"}),"SystemUpdateAlt")},29320:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39"}),"Public")},30717:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8z"}),"Folder")},46410:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2m0 12H4V8h16z"}),"FolderOpen")},51694:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M4 7v2c0 .55-.45 1-1 1H2v4h1c.55 0 1 .45 1 1v2c0 1.65 1.35 3 3 3h3v-2H7c-.55 0-1-.45-1-1v-2c0-1.3-.84-2.42-2-2.83v-.34C5.16 11.42 6 10.3 6 9V7c0-.55.45-1 1-1h3V4H7C5.35 4 4 5.35 4 7m17 3c-.55 0-1-.45-1-1V7c0-1.65-1.35-3-3-3h-3v2h3c.55 0 1 .45 1 1v2c0 1.3.84 2.42 2 2.83v.34c-1.16.41-2 1.52-2 2.83v2c0 .55-.45 1-1 1h-3v2h3c1.65 0 3-1.35 3-3v-2c0-.55.45-1 1-1h1v-4z"}),"DataObject")},52399:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"}),"ArrowUpward")},55641:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M16.91 14.09 17 14l2 2 4-4.04L21 10h-8.17zM3.98 6.81C2.2 7.85 1 9.79 1 12c0 3.31 2.69 6 6 6 2.21 0 4.15-1.2 5.18-2.99l7.59 7.59 1.41-1.41L2.81 2.81 1.39 4.22zm5.93 5.93C9.58 14.03 8.4 15 7 15c-1.65 0-3-1.35-3-3 0-1.4.97-2.58 2.26-2.91z"}),"KeyOff")},64956:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M11 7 9.6 8.4l2.6 2.6H2v2h10.2l-2.6 2.6L11 17l5-5zm9 12h-8v2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-8v2h8z"}),"Login")},71756:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"m1 9 2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9m8 8 3 3 3-3c-1.65-1.66-4.34-1.66-6 0m-4-4 2 2c2.76-2.76 7.24-2.76 10 0l2-2C15.14 9.14 8.87 9.14 5 13"}),"Wifi")},83013:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M4.5 11h-2V9H1v6h1.5v-2.5h2V15H6V9H4.5zm2.5-.5h1.5V15H10v-4.5h1.5V9H7zm5.5 0H14V15h1.5v-4.5H17V9h-4.5zm9-1.5H18v6h1.5v-2h2c.8 0 1.5-.7 1.5-1.5v-1c0-.8-.7-1.5-1.5-1.5m0 2.5h-2v-1h2z"}),"Http")},91314:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"}),"Home")},91901:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)([(0,e.jsx)("circle",{cx:"20",cy:"12",r:"2"},"0"),(0,e.jsx)("circle",{cx:"4",cy:"12",r:"2"},"1"),(0,e.jsx)("circle",{cx:"12",cy:"20",r:"2"},"2"),(0,e.jsx)("path",{d:"M10.05 8.59 6.03 4.55h-.01l-.31-.32-1.42 1.41 4.02 4.05.01-.01.31.32zm3.893.027 4.405-4.392L19.76 5.64l-4.405 4.393zM10.01 15.36l-1.42-1.41-4.03 4.01-.32.33 1.41 1.41 4.03-4.02zm9.75 2.94-3.99-4.01-.36-.35L14 15.35l3.99 4.01.35.35z"},"3"),(0,e.jsx)("circle",{cx:"12",cy:"4",r:"2"},"4")],"Stream")},95786:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2m-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1z"}),"Lock")},98810:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zM6 20V4h7v5h5v11z"}),"InsertDriveFileOutlined")}};