flujo-ai 3.26.0 → 3.27.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 (624) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +367 -274
  3. package/.next/app-path-routes-manifest.json +15 -5
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +24 -0
  6. package/.next/react-loadable-manifest.json +19 -18
  7. package/.next/routes-manifest.json +6 -0
  8. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/_not-found.html +1 -1
  10. package/.next/server/app/_not-found.rsc +2 -2
  11. package/.next/server/app/api/approvals/[id]/route.js +1 -1
  12. package/.next/server/app/api/approvals/[id]/route.js.nft.json +1 -1
  13. package/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/approvals/route.js +2 -2
  15. package/.next/server/app/api/approvals/route.js.nft.json +1 -1
  16. package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/backup/route.js +1 -1
  18. package/.next/server/app/api/backup/route.js.nft.json +1 -1
  19. package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/bugs/enhance/route.js +2 -2
  22. package/.next/server/app/api/bugs/enhance/route.js.nft.json +1 -1
  23. package/.next/server/app/api/bugs/enhance/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/encryption/secure/route.js +1 -1
  26. package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
  27. package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/env/route.js +1 -1
  29. package/.next/server/app/api/env/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/flow/[id]/route.js +1 -1
  31. package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
  32. package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/flow/compile/route.js +1 -1
  34. package/.next/server/app/api/flow/compile/route.js.nft.json +1 -1
  35. package/.next/server/app/api/flow/compile/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/flow/generate/route.js +1 -1
  37. package/.next/server/app/api/flow/generate/route.js.nft.json +1 -1
  38. package/.next/server/app/api/flow/generate/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/flow/improve/route.js +1 -1
  40. package/.next/server/app/api/flow/improve/route.js.nft.json +1 -1
  41. package/.next/server/app/api/flow/improve/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/flow/prompt-renderer/route.js +2 -2
  43. package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
  44. package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/flow/quick-chat/route.js +1 -1
  46. package/.next/server/app/api/flow/quick-chat/route.js.nft.json +1 -1
  47. package/.next/server/app/api/flow/quick-chat/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/flow/repair/route.js +1 -1
  49. package/.next/server/app/api/flow/repair/route.js.nft.json +1 -1
  50. package/.next/server/app/api/flow/repair/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/flow/route.js +1 -1
  52. package/.next/server/app/api/flow/route.js.nft.json +1 -1
  53. package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/git/route.js +2 -2
  55. package/.next/server/app/api/git/route.js.nft.json +1 -1
  56. package/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/init/route.js +1 -1
  58. package/.next/server/app/api/init/route.js.nft.json +1 -1
  59. package/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/local-models/capability/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/local-models/pull/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/local-models/suggest/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/mcp/cancel/route.js +2 -2
  64. package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
  65. package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -1
  67. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
  68. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -1
  70. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
  71. package/.next/server/app/api/mcp/servers/[name]/prompts/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -1
  73. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
  74. package/.next/server/app/api/mcp/servers/[name]/resources/read/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -1
  76. package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
  77. package/.next/server/app/api/mcp/servers/[name]/resources/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
  79. package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
  80. package/.next/server/app/api/mcp/servers/[name]/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -1
  82. package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
  83. package/.next/server/app/api/mcp/servers/[name]/status/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -1
  85. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
  86. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -1
  88. package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
  89. package/.next/server/app/api/mcp/servers/[name]/tools/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/mcp/servers/route.js +1 -1
  91. package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
  92. package/.next/server/app/api/mcp/servers/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/mcp/test-connection/route.js +1 -1
  94. package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
  95. package/.next/server/app/api/mcp/test-connection/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
  97. package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
  98. package/.next/server/app/api/mcp/test-connection/stream/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/mcp-registry/route.js +2 -2
  100. package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
  101. package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/model/[id]/route.js +1 -1
  104. package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
  105. package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/model/provider/route.js +2 -2
  107. package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
  108. package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/api/model/route.js +1 -1
  110. package/.next/server/app/api/model/route.js.nft.json +1 -1
  111. package/.next/server/app/api/model/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/model/test/route.js +2 -2
  113. package/.next/server/app/api/model/test/route.js.nft.json +1 -1
  114. package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/oauth/callback/route.js +2 -2
  116. package/.next/server/app/api/oauth/callback/route.js.nft.json +1 -1
  117. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/oauth/initiate/route.js +2 -2
  119. package/.next/server/app/api/oauth/initiate/route.js.nft.json +1 -1
  120. package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/oauth/reset/route.js +2 -2
  122. package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
  123. package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/packages/build/route.js +1 -0
  125. package/.next/server/app/api/packages/build/route.js.nft.json +1 -0
  126. package/.next/server/app/api/packages/build/route_client-reference-manifest.js +1 -0
  127. package/.next/server/app/api/packages/derive-secrets/route.js +1 -0
  128. package/.next/server/app/api/packages/derive-secrets/route.js.nft.json +1 -0
  129. package/.next/server/app/api/packages/derive-secrets/route_client-reference-manifest.js +1 -0
  130. package/.next/server/app/api/packages/install/route.js +1 -0
  131. package/.next/server/app/api/packages/install/route.js.nft.json +1 -0
  132. package/.next/server/app/api/packages/install/route_client-reference-manifest.js +1 -0
  133. package/.next/server/app/api/packages/install/status/route.js +1 -0
  134. package/.next/server/app/api/packages/install/status/route.js.nft.json +1 -0
  135. package/.next/server/app/api/packages/install/status/route_client-reference-manifest.js +1 -0
  136. package/.next/server/app/api/packages/resolve/route.js +1 -0
  137. package/.next/server/app/api/packages/resolve/route.js.nft.json +1 -0
  138. package/.next/server/app/api/packages/resolve/route_client-reference-manifest.js +1 -0
  139. package/.next/server/app/api/planned-executions/[id]/route.js +1 -1
  140. package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
  141. package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/planned-executions/[id]/run/route.js +1 -1
  143. package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
  144. package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/planned-executions/[id]/runs/route.js +1 -1
  146. package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
  147. package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/planned-executions/reconcile/route.js +1 -1
  150. package/.next/server/app/api/planned-executions/reconcile/route.js.nft.json +1 -1
  151. package/.next/server/app/api/planned-executions/reconcile/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/planned-executions/route.js +1 -1
  153. package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
  154. package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/api/registry/auth/resend/route.js +1 -0
  156. package/.next/server/app/api/registry/auth/resend/route.js.nft.json +1 -0
  157. package/.next/server/app/api/registry/auth/resend/route_client-reference-manifest.js +1 -0
  158. package/.next/server/app/api/registry/auth/route.js +1 -0
  159. package/.next/server/app/api/registry/auth/route.js.nft.json +1 -0
  160. package/.next/server/app/api/registry/auth/route_client-reference-manifest.js +1 -0
  161. package/.next/server/app/api/registry/publish/route.js +1 -0
  162. package/.next/server/app/api/registry/publish/route.js.nft.json +1 -0
  163. package/.next/server/app/api/registry/publish/route_client-reference-manifest.js +1 -0
  164. package/.next/server/app/api/registry/settings/route.js +1 -0
  165. package/.next/server/app/api/registry/settings/route.js.nft.json +1 -0
  166. package/.next/server/app/api/registry/settings/route_client-reference-manifest.js +1 -0
  167. package/.next/server/app/api/restore/route.js +1 -1
  168. package/.next/server/app/api/restore/route.js.nft.json +1 -1
  169. package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
  170. package/.next/server/app/api/runs/active/route.js +2 -2
  171. package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
  172. package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -1
  173. package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/update/route.js +1 -1
  175. package/.next/server/app/api/update/route.js.nft.json +1 -1
  176. package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/waves/route.js +1 -1
  178. package/.next/server/app/api/waves/route.js.nft.json +1 -1
  179. package/.next/server/app/api/waves/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/webhooks/[id]/route.js +1 -1
  181. package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
  182. package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
  183. package/.next/server/app/chat/page.js +9 -10
  184. package/.next/server/app/chat/page.js.nft.json +1 -1
  185. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  186. package/.next/server/app/chat.html +1 -1
  187. package/.next/server/app/chat.rsc +3 -3
  188. package/.next/server/app/docs/page.js +3 -3
  189. package/.next/server/app/docs/page.js.nft.json +1 -1
  190. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  191. package/.next/server/app/docs.html +1 -1
  192. package/.next/server/app/docs.rsc +3 -3
  193. package/.next/server/app/executions/page.js +3 -3
  194. package/.next/server/app/executions/page.js.nft.json +1 -1
  195. package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
  196. package/.next/server/app/executions.html +1 -1
  197. package/.next/server/app/executions.rsc +3 -3
  198. package/.next/server/app/flows/page.js +3 -3
  199. package/.next/server/app/flows/page.js.nft.json +1 -1
  200. package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
  201. package/.next/server/app/flows.html +1 -1
  202. package/.next/server/app/flows.rsc +4 -4
  203. package/.next/server/app/index.html +1 -1
  204. package/.next/server/app/index.rsc +3 -3
  205. package/.next/server/app/mcp/page.js +6 -6
  206. package/.next/server/app/mcp/page.js.nft.json +1 -1
  207. package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
  208. package/.next/server/app/mcp-flows/route.js +1 -1
  209. package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
  210. package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -1
  211. package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
  212. package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
  213. package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -1
  214. package/.next/server/app/mcp.html +1 -1
  215. package/.next/server/app/mcp.rsc +3 -3
  216. package/.next/server/app/models/page.js +2 -2
  217. package/.next/server/app/models/page.js.nft.json +1 -1
  218. package/.next/server/app/models/page_client-reference-manifest.js +1 -1
  219. package/.next/server/app/packages/page.js +3 -0
  220. package/.next/server/app/packages/page.js.nft.json +1 -0
  221. package/.next/server/app/packages/page_client-reference-manifest.js +1 -0
  222. package/.next/server/app/packages.html +1 -0
  223. package/.next/server/app/packages.meta +7 -0
  224. package/.next/server/app/packages.rsc +22 -0
  225. package/.next/server/app/page.js +1 -1
  226. package/.next/server/app/page.js.nft.json +1 -1
  227. package/.next/server/app/page_client-reference-manifest.js +1 -1
  228. package/.next/server/app/settings/page.js +3 -2
  229. package/.next/server/app/settings/page.js.nft.json +1 -1
  230. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  231. package/.next/server/app/settings.html +1 -1
  232. package/.next/server/app/settings.rsc +3 -3
  233. package/.next/server/app/v1/chat/completions/route.js +1 -1
  234. package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
  235. package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -1
  236. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +2 -2
  237. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
  238. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
  239. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +2 -2
  240. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
  241. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -1
  242. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
  243. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
  244. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -1
  245. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
  246. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
  247. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -1
  248. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +2 -2
  249. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
  250. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
  251. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +2 -2
  252. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
  253. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
  254. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route_client-reference-manifest.js +1 -1
  255. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
  256. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
  257. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
  258. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +2 -2
  259. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
  260. package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  261. package/.next/server/app/v1/chat/conversations/route.js +2 -2
  262. package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
  263. package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
  264. package/.next/server/app/v1/models/route.js +2 -2
  265. package/.next/server/app/v1/models/route.js.nft.json +1 -1
  266. package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -1
  267. package/.next/server/app/waves/page.js +3 -3
  268. package/.next/server/app/waves/page.js.nft.json +1 -1
  269. package/.next/server/app/waves/page_client-reference-manifest.js +1 -1
  270. package/.next/server/app/waves.html +1 -1
  271. package/.next/server/app/waves.rsc +3 -3
  272. package/.next/server/app-paths-manifest.json +15 -5
  273. package/.next/server/chunks/1083.js +1 -1
  274. package/.next/server/chunks/1089.js +1 -0
  275. package/.next/server/chunks/1114.js +1 -1
  276. package/.next/server/chunks/1197.js +1 -1
  277. package/.next/server/chunks/1226.js +1 -1
  278. package/.next/server/chunks/1314.js +1 -0
  279. package/.next/server/chunks/1604.js +65 -0
  280. package/.next/server/chunks/1659.js +1 -1
  281. package/.next/server/chunks/166.js +5 -5
  282. package/.next/server/chunks/1805.js +1 -0
  283. package/.next/server/chunks/1819.js +2 -0
  284. package/.next/server/chunks/1925.js +1 -0
  285. package/.next/server/chunks/237.js +1 -0
  286. package/.next/server/chunks/2373.js +1 -1
  287. package/.next/server/chunks/2388.js +1 -0
  288. package/.next/server/chunks/2434.js +2 -0
  289. package/.next/server/chunks/2666.js +1 -0
  290. package/.next/server/chunks/2859.js +1 -1
  291. package/.next/server/chunks/2940.js +41 -0
  292. package/.next/server/chunks/2985.js +1 -0
  293. package/.next/server/chunks/3298.js +1 -1
  294. package/.next/server/chunks/{8445.js → 3392.js} +2 -2
  295. package/.next/server/chunks/346.js +1 -0
  296. package/.next/server/chunks/3569.js +1 -0
  297. package/.next/server/chunks/3629.js +1 -0
  298. package/.next/server/chunks/4042.js +1 -0
  299. package/.next/server/chunks/4306.js +1 -0
  300. package/.next/server/chunks/4322.js +1 -0
  301. package/.next/server/chunks/{3774.js → 4426.js} +2 -2
  302. package/.next/server/chunks/4545.js +3 -3
  303. package/.next/server/chunks/{6745.js → 4661.js} +1 -1
  304. package/.next/server/chunks/4671.js +1 -1
  305. package/.next/server/chunks/4681.js +1 -0
  306. package/.next/server/chunks/4765.js +1 -0
  307. package/.next/server/chunks/4771.js +1 -1
  308. package/.next/server/chunks/5094.js +2 -0
  309. package/.next/server/chunks/5096.js +1 -0
  310. package/.next/server/chunks/510.js +1 -0
  311. package/.next/server/chunks/{4578.js → 5150.js} +1 -1
  312. package/.next/server/chunks/5463.js +1 -1
  313. package/.next/server/chunks/5544.js +5 -5
  314. package/.next/server/chunks/5708.js +1 -1
  315. package/.next/server/chunks/5880.js +1 -0
  316. package/.next/server/chunks/6005.js +1 -0
  317. package/.next/server/chunks/6529.js +5 -0
  318. package/.next/server/chunks/6537.js +1 -1
  319. package/.next/server/chunks/6826.js +1 -1
  320. package/.next/server/chunks/6996.js +1 -62
  321. package/.next/server/chunks/701.js +1 -1
  322. package/.next/server/chunks/7028.js +1 -0
  323. package/.next/server/chunks/7214.js +2 -2
  324. package/.next/server/chunks/724.js +1 -1
  325. package/.next/server/chunks/7362.js +13 -13
  326. package/.next/server/chunks/7463.js +2 -2
  327. package/.next/server/chunks/7485.js +1 -0
  328. package/.next/server/chunks/7498.js +42 -0
  329. package/.next/server/chunks/7506.js +1 -1
  330. package/.next/server/chunks/7579.js +2 -2
  331. package/.next/server/chunks/{3030.js → 7674.js} +1 -1
  332. package/.next/server/chunks/7764.js +37 -0
  333. package/.next/server/chunks/7821.js +1 -1
  334. package/.next/server/chunks/8192.js +12 -0
  335. package/.next/server/chunks/826.js +52 -0
  336. package/.next/server/chunks/8387.js +1 -1
  337. package/.next/server/chunks/{5662.js → 8522.js} +1 -1
  338. package/.next/server/chunks/8667.js +1 -0
  339. package/.next/server/chunks/869.js +2 -0
  340. package/.next/server/chunks/{3489.js → 8730.js} +1 -1
  341. package/.next/server/chunks/8732.js +62 -0
  342. package/.next/server/chunks/8739.js +1 -1
  343. package/.next/server/chunks/8745.js +1 -1
  344. package/.next/server/chunks/8851.js +1 -0
  345. package/.next/server/chunks/94.js +1 -1
  346. package/.next/server/chunks/{1152.js → 9400.js} +1 -1
  347. package/.next/server/chunks/{4456.js → 9472.js} +2 -2
  348. package/.next/server/chunks/9583.js +1 -0
  349. package/.next/server/instrumentation.js +1 -1
  350. package/.next/server/instrumentation.js.nft.json +1 -1
  351. package/.next/server/middleware-build-manifest.js +1 -1
  352. package/.next/server/middleware-manifest.json +1 -1
  353. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  354. package/.next/server/pages/404.html +1 -1
  355. package/.next/server/pages/500.html +1 -1
  356. package/.next/server/server-reference-manifest.js +1 -1
  357. package/.next/server/server-reference-manifest.json +1 -1
  358. package/.next/static/O-elWbT5rs6ci1CrCqez1/_buildManifest.js +1 -0
  359. package/.next/static/chunks/{2003-7710c23acaef11c9.js → 2003-f826c607d609d1fa.js} +1 -1
  360. package/.next/static/chunks/{4003-3b3768446ae333df.js → 2019-f22580cb726c5dca.js} +1 -1
  361. package/.next/static/chunks/256-a13a59247ac6cc68.js +1 -0
  362. package/.next/static/chunks/2566-60acd5838abd9f3f.js +1 -0
  363. package/.next/static/chunks/2822-8168e3bb8443a1ec.js +1 -0
  364. package/.next/static/chunks/289-98f50bfcf833d661.js +1 -0
  365. package/.next/static/chunks/2981-10313d395eb99645.js +1 -0
  366. package/.next/static/chunks/3028-fc1f04241ed578ff.js +1 -0
  367. package/.next/static/chunks/3089.9e15df4ffd0fe4e8.js +1 -0
  368. package/.next/static/chunks/{3217.f728df99ab5da33c.js → 3217.260785c2198d1e9d.js} +1 -1
  369. package/.next/static/chunks/3392-6dd9ad3be66a7ce9.js +1 -0
  370. package/.next/static/chunks/{3556-3b6f7c99b015b752.js → 3556-b9855146c7506696.js} +1 -1
  371. package/.next/static/chunks/3560-5bdceef09b50e1c3.js +1 -0
  372. package/.next/static/chunks/3574-94e9f20550550a58.js +1 -0
  373. package/.next/static/chunks/4483-463f8bfc6f3dd5fa.js +1 -0
  374. package/.next/static/chunks/{488-623d07c3fbc21e28.js → 488-7ab54d8ae2b4b550.js} +1 -1
  375. package/.next/static/chunks/{5512.d01d565f73109a1a.js → 5512.682bef7fd3a7c286.js} +1 -1
  376. package/.next/static/chunks/5578-49bc150686c13b6f.js +1 -0
  377. package/.next/static/chunks/5766-dbd21cb8435605aa.js +1 -0
  378. package/.next/static/chunks/5866-6834cbc4ab02d86f.js +1 -0
  379. package/.next/static/chunks/6669-012c73587a6628fc.js +1 -0
  380. package/.next/static/chunks/6961-a40e97c06e616300.js +1 -0
  381. package/.next/static/chunks/7111-44538f8a64241b74.js +1 -0
  382. package/.next/static/chunks/7445-2802e158c9093556.js +1 -0
  383. package/.next/static/chunks/7554-db290baed5782cab.js +8 -0
  384. package/.next/static/chunks/795-704a0e742ecc2ef6.js +1 -0
  385. package/.next/static/chunks/8041-05830e887c133085.js +1 -0
  386. package/.next/static/chunks/{812-624e93f4c0f671c7.js → 812-8b3d4e0f6546d6f9.js} +1 -1
  387. package/.next/static/chunks/{8345.fbc0af16acce7256.js → 8345.bc5534ec13abc9ee.js} +1 -1
  388. package/.next/static/chunks/8401-0f39d91810180a88.js +1 -0
  389. package/.next/static/chunks/{8405.e728bc83a7c9fed6.js → 8405.73e8be2c8e5b55c5.js} +1 -1
  390. package/.next/static/chunks/{8989-401559d9f3bc80a0.js → 8989-5fa9c7c670eb9a1a.js} +1 -1
  391. package/.next/static/chunks/{9164-829ab5b085ec06d6.js → 9164-840f056a0e11d979.js} +1 -1
  392. package/.next/static/chunks/9562-ef0ddd4e6b9023cf.js +1 -0
  393. package/.next/static/chunks/9720-5ecb48f1a28808fe.js +1 -0
  394. package/.next/static/chunks/app/api/approvals/[id]/route-3e3cc52436d34625.js +1 -0
  395. package/.next/static/chunks/app/api/approvals/route-3e3cc52436d34625.js +1 -0
  396. package/.next/static/chunks/app/api/backup/route-3e3cc52436d34625.js +1 -0
  397. package/.next/static/chunks/app/api/browse/route-3e3cc52436d34625.js +1 -0
  398. package/.next/static/chunks/app/api/bugs/enhance/route-3e3cc52436d34625.js +1 -0
  399. package/.next/static/chunks/app/api/cwd/route-3e3cc52436d34625.js +1 -0
  400. package/.next/static/chunks/app/api/encryption/secure/route-3e3cc52436d34625.js +1 -0
  401. package/.next/static/chunks/app/api/env/route-3e3cc52436d34625.js +1 -0
  402. package/.next/static/chunks/app/api/flow/[id]/route-3e3cc52436d34625.js +1 -0
  403. package/.next/static/chunks/app/api/flow/compile/route-3e3cc52436d34625.js +1 -0
  404. package/.next/static/chunks/app/api/flow/generate/route-3e3cc52436d34625.js +1 -0
  405. package/.next/static/chunks/app/api/flow/improve/route-3e3cc52436d34625.js +1 -0
  406. package/.next/static/chunks/app/api/flow/prompt-renderer/route-3e3cc52436d34625.js +1 -0
  407. package/.next/static/chunks/app/api/flow/quick-chat/route-3e3cc52436d34625.js +1 -0
  408. package/.next/static/chunks/app/api/flow/repair/route-3e3cc52436d34625.js +1 -0
  409. package/.next/static/chunks/app/api/flow/route-3e3cc52436d34625.js +1 -0
  410. package/.next/static/chunks/app/api/git/route-3e3cc52436d34625.js +1 -0
  411. package/.next/static/chunks/app/api/init/route-3e3cc52436d34625.js +1 -0
  412. package/.next/static/chunks/app/api/local-models/capability/route-3e3cc52436d34625.js +1 -0
  413. package/.next/static/chunks/app/api/local-models/pull/route-3e3cc52436d34625.js +1 -0
  414. package/.next/static/chunks/app/api/local-models/suggest/route-3e3cc52436d34625.js +1 -0
  415. package/.next/static/chunks/app/api/mcp/cancel/route-3e3cc52436d34625.js +1 -0
  416. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-3e3cc52436d34625.js +1 -0
  417. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-3e3cc52436d34625.js +1 -0
  418. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-3e3cc52436d34625.js +1 -0
  419. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-3e3cc52436d34625.js +1 -0
  420. package/.next/static/chunks/app/api/mcp/servers/[name]/route-3e3cc52436d34625.js +1 -0
  421. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-3e3cc52436d34625.js +1 -0
  422. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-3e3cc52436d34625.js +1 -0
  423. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-3e3cc52436d34625.js +1 -0
  424. package/.next/static/chunks/app/api/mcp/servers/route-3e3cc52436d34625.js +1 -0
  425. package/.next/static/chunks/app/api/mcp/test-connection/route-3e3cc52436d34625.js +1 -0
  426. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-3e3cc52436d34625.js +1 -0
  427. package/.next/static/chunks/app/api/mcp-registry/route-3e3cc52436d34625.js +1 -0
  428. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-3e3cc52436d34625.js +1 -0
  429. package/.next/static/chunks/app/api/model/[id]/route-3e3cc52436d34625.js +1 -0
  430. package/.next/static/chunks/app/api/model/provider/route-3e3cc52436d34625.js +1 -0
  431. package/.next/static/chunks/app/api/model/route-3e3cc52436d34625.js +1 -0
  432. package/.next/static/chunks/app/api/model/test/route-3e3cc52436d34625.js +1 -0
  433. package/.next/static/chunks/app/api/oauth/callback/route-3e3cc52436d34625.js +1 -0
  434. package/.next/static/chunks/app/api/oauth/initiate/route-3e3cc52436d34625.js +1 -0
  435. package/.next/static/chunks/app/api/oauth/reset/route-3e3cc52436d34625.js +1 -0
  436. package/.next/static/chunks/app/api/packages/build/route-3e3cc52436d34625.js +1 -0
  437. package/.next/static/chunks/app/api/packages/derive-secrets/route-3e3cc52436d34625.js +1 -0
  438. package/.next/static/chunks/app/api/packages/install/route-3e3cc52436d34625.js +1 -0
  439. package/.next/static/chunks/app/api/packages/install/status/route-3e3cc52436d34625.js +1 -0
  440. package/.next/static/chunks/app/api/packages/resolve/route-3e3cc52436d34625.js +1 -0
  441. package/.next/static/chunks/app/api/planned-executions/[id]/route-3e3cc52436d34625.js +1 -0
  442. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-3e3cc52436d34625.js +1 -0
  443. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-3e3cc52436d34625.js +1 -0
  444. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-3e3cc52436d34625.js +1 -0
  445. package/.next/static/chunks/app/api/planned-executions/reconcile/route-3e3cc52436d34625.js +1 -0
  446. package/.next/static/chunks/app/api/planned-executions/route-3e3cc52436d34625.js +1 -0
  447. package/.next/static/chunks/app/api/registry/auth/resend/route-3e3cc52436d34625.js +1 -0
  448. package/.next/static/chunks/app/api/registry/auth/route-3e3cc52436d34625.js +1 -0
  449. package/.next/static/chunks/app/api/registry/publish/route-3e3cc52436d34625.js +1 -0
  450. package/.next/static/chunks/app/api/registry/settings/route-3e3cc52436d34625.js +1 -0
  451. package/.next/static/chunks/app/api/restore/route-3e3cc52436d34625.js +1 -0
  452. package/.next/static/chunks/app/api/runs/active/route-3e3cc52436d34625.js +1 -0
  453. package/.next/static/chunks/app/api/storage/route-3e3cc52436d34625.js +1 -0
  454. package/.next/static/chunks/app/api/update/route-3e3cc52436d34625.js +1 -0
  455. package/.next/static/chunks/app/api/waves/route-3e3cc52436d34625.js +1 -0
  456. package/.next/static/chunks/app/api/webhooks/[id]/route-3e3cc52436d34625.js +1 -0
  457. package/.next/static/chunks/app/chat/page-93403b0e520ba8d3.js +1 -0
  458. package/.next/static/chunks/app/docs/page-2c972a639cd9a41c.js +1 -0
  459. package/.next/static/chunks/app/executions/page-bb2fef60b2240f69.js +1 -0
  460. package/.next/static/chunks/app/flows/page-d60c5b47c923564a.js +1 -0
  461. package/.next/static/chunks/app/layout-eea7078d7553c21a.js +1 -0
  462. package/.next/static/chunks/app/mcp/page-92c03186d566a4f5.js +1 -0
  463. package/.next/static/chunks/app/mcp-flows/route-3e3cc52436d34625.js +1 -0
  464. package/.next/static/chunks/app/mcp-proxy/[server]/route-3e3cc52436d34625.js +1 -0
  465. package/.next/static/chunks/app/models/page-d71e5606a8e29479.js +1 -0
  466. package/.next/static/chunks/app/packages/page-e64480d78312edd0.js +1 -0
  467. package/.next/static/chunks/app/{page-0a95c40a65dbd2eb.js → page-d3ea90b065b95d1e.js} +1 -1
  468. package/.next/static/chunks/app/settings/page-d067a3a624ec2fa0.js +1 -0
  469. package/.next/static/chunks/app/v1/chat/completions/route-3e3cc52436d34625.js +1 -0
  470. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-3e3cc52436d34625.js +1 -0
  471. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-3e3cc52436d34625.js +1 -0
  472. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-3e3cc52436d34625.js +1 -0
  473. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-3e3cc52436d34625.js +1 -0
  474. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-3e3cc52436d34625.js +1 -0
  475. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-3e3cc52436d34625.js +1 -0
  476. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-3e3cc52436d34625.js +1 -0
  477. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-3e3cc52436d34625.js +1 -0
  478. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-3e3cc52436d34625.js +1 -0
  479. package/.next/static/chunks/app/v1/chat/conversations/route-3e3cc52436d34625.js +1 -0
  480. package/.next/static/chunks/app/v1/models/route-3e3cc52436d34625.js +1 -0
  481. package/.next/static/chunks/app/waves/page-ff15db2f75fb5d62.js +1 -0
  482. package/.next/static/chunks/webpack-2b2d7505a2ac6538.js +1 -0
  483. package/.next/static/css/{64cb1f185b52a623.css → 69ab44eb350e0b6c.css} +1 -1
  484. package/.next/trace +9 -10
  485. package/.next/types/app/api/packages/build/route.ts +347 -0
  486. package/.next/types/app/api/packages/derive-secrets/route.ts +347 -0
  487. package/.next/types/app/api/packages/install/route.ts +347 -0
  488. package/.next/types/app/api/packages/install/status/route.ts +347 -0
  489. package/.next/types/app/api/packages/resolve/route.ts +347 -0
  490. package/.next/types/app/api/registry/auth/resend/route.ts +347 -0
  491. package/.next/types/app/api/registry/auth/route.ts +347 -0
  492. package/.next/types/app/api/registry/publish/route.ts +347 -0
  493. package/.next/types/app/api/registry/settings/route.ts +347 -0
  494. package/.next/types/app/packages/page.ts +84 -0
  495. package/.next/types/routes.d.ts +12 -2
  496. package/.next/types/validator.ts +90 -0
  497. package/README.md +1 -1
  498. package/package.json +6 -1
  499. package/.next/server/chunks/1223.js +0 -1
  500. package/.next/server/chunks/1377.js +0 -1
  501. package/.next/server/chunks/289.js +0 -1
  502. package/.next/server/chunks/3823.js +0 -41
  503. package/.next/server/chunks/3855.js +0 -1
  504. package/.next/server/chunks/3924.js +0 -52
  505. package/.next/server/chunks/4372.js +0 -1
  506. package/.next/server/chunks/4561.js +0 -65
  507. package/.next/server/chunks/4677.js +0 -37
  508. package/.next/server/chunks/472.js +0 -1
  509. package/.next/server/chunks/4793.js +0 -2
  510. package/.next/server/chunks/4836.js +0 -1
  511. package/.next/server/chunks/5148.js +0 -1
  512. package/.next/server/chunks/5311.js +0 -1
  513. package/.next/server/chunks/584.js +0 -1
  514. package/.next/server/chunks/62.js +0 -1
  515. package/.next/server/chunks/6240.js +0 -1
  516. package/.next/server/chunks/6306.js +0 -1
  517. package/.next/server/chunks/6793.js +0 -1
  518. package/.next/server/chunks/6908.js +0 -12
  519. package/.next/server/chunks/8216.js +0 -1
  520. package/.next/server/chunks/856.js +0 -5
  521. package/.next/server/chunks/8652.js +0 -42
  522. package/.next/server/chunks/9165.js +0 -1
  523. package/.next/server/chunks/9427.js +0 -1
  524. package/.next/static/Il6IDWxf3CN0dv-P6QQrp/_buildManifest.js +0 -1
  525. package/.next/static/chunks/1675-773454288de4309d.js +0 -1
  526. package/.next/static/chunks/1731-6e45fb529f9044a3.js +0 -1
  527. package/.next/static/chunks/2318-76fcb6c769b1a569.js +0 -1
  528. package/.next/static/chunks/2403-5c26e0abd76095b1.js +0 -1
  529. package/.next/static/chunks/2566-6e2b9d9349814789.js +0 -1
  530. package/.next/static/chunks/2734-59fbe2f62a59df86.js +0 -1
  531. package/.next/static/chunks/3089.6b4e21e1faa304e2.js +0 -1
  532. package/.next/static/chunks/3109-11bdec9bdfd996c3.js +0 -1
  533. package/.next/static/chunks/333-5f3c5be57c80c48c.js +0 -1
  534. package/.next/static/chunks/3333-b7b3e5758a568013.js +0 -1
  535. package/.next/static/chunks/4635-0fe310d3be64e71e.js +0 -1
  536. package/.next/static/chunks/4690-ec7d397cfacedac3.js +0 -1
  537. package/.next/static/chunks/4775-cb9c0be621363a08.js +0 -8
  538. package/.next/static/chunks/5336-81da1080de29ebfc.js +0 -1
  539. package/.next/static/chunks/7274-1184563607f2b5f5.js +0 -1
  540. package/.next/static/chunks/8166-e75acdc559b34fcd.js +0 -1
  541. package/.next/static/chunks/8607-5787e42775fc3acb.js +0 -1
  542. package/.next/static/chunks/8610-660d5088bc1dd7a7.js +0 -1
  543. package/.next/static/chunks/9240-d0a51f4d504f34b1.js +0 -1
  544. package/.next/static/chunks/9562-b7922ceb400ec536.js +0 -1
  545. package/.next/static/chunks/9704-6b7415964d7c042a.js +0 -1
  546. package/.next/static/chunks/app/api/approvals/[id]/route-6b442f97c5062f2c.js +0 -1
  547. package/.next/static/chunks/app/api/approvals/route-6b442f97c5062f2c.js +0 -1
  548. package/.next/static/chunks/app/api/backup/route-6b442f97c5062f2c.js +0 -1
  549. package/.next/static/chunks/app/api/browse/route-6b442f97c5062f2c.js +0 -1
  550. package/.next/static/chunks/app/api/bugs/enhance/route-6b442f97c5062f2c.js +0 -1
  551. package/.next/static/chunks/app/api/cwd/route-6b442f97c5062f2c.js +0 -1
  552. package/.next/static/chunks/app/api/encryption/secure/route-6b442f97c5062f2c.js +0 -1
  553. package/.next/static/chunks/app/api/env/route-6b442f97c5062f2c.js +0 -1
  554. package/.next/static/chunks/app/api/flow/[id]/route-6b442f97c5062f2c.js +0 -1
  555. package/.next/static/chunks/app/api/flow/compile/route-6b442f97c5062f2c.js +0 -1
  556. package/.next/static/chunks/app/api/flow/generate/route-6b442f97c5062f2c.js +0 -1
  557. package/.next/static/chunks/app/api/flow/improve/route-6b442f97c5062f2c.js +0 -1
  558. package/.next/static/chunks/app/api/flow/prompt-renderer/route-6b442f97c5062f2c.js +0 -1
  559. package/.next/static/chunks/app/api/flow/quick-chat/route-6b442f97c5062f2c.js +0 -1
  560. package/.next/static/chunks/app/api/flow/repair/route-6b442f97c5062f2c.js +0 -1
  561. package/.next/static/chunks/app/api/flow/route-6b442f97c5062f2c.js +0 -1
  562. package/.next/static/chunks/app/api/git/route-6b442f97c5062f2c.js +0 -1
  563. package/.next/static/chunks/app/api/init/route-6b442f97c5062f2c.js +0 -1
  564. package/.next/static/chunks/app/api/local-models/capability/route-6b442f97c5062f2c.js +0 -1
  565. package/.next/static/chunks/app/api/local-models/pull/route-6b442f97c5062f2c.js +0 -1
  566. package/.next/static/chunks/app/api/local-models/suggest/route-6b442f97c5062f2c.js +0 -1
  567. package/.next/static/chunks/app/api/mcp/cancel/route-6b442f97c5062f2c.js +0 -1
  568. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-6b442f97c5062f2c.js +0 -1
  569. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-6b442f97c5062f2c.js +0 -1
  570. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-6b442f97c5062f2c.js +0 -1
  571. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-6b442f97c5062f2c.js +0 -1
  572. package/.next/static/chunks/app/api/mcp/servers/[name]/route-6b442f97c5062f2c.js +0 -1
  573. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-6b442f97c5062f2c.js +0 -1
  574. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-6b442f97c5062f2c.js +0 -1
  575. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-6b442f97c5062f2c.js +0 -1
  576. package/.next/static/chunks/app/api/mcp/servers/route-6b442f97c5062f2c.js +0 -1
  577. package/.next/static/chunks/app/api/mcp/test-connection/route-6b442f97c5062f2c.js +0 -1
  578. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-6b442f97c5062f2c.js +0 -1
  579. package/.next/static/chunks/app/api/mcp-registry/route-6b442f97c5062f2c.js +0 -1
  580. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-6b442f97c5062f2c.js +0 -1
  581. package/.next/static/chunks/app/api/model/[id]/route-6b442f97c5062f2c.js +0 -1
  582. package/.next/static/chunks/app/api/model/provider/route-6b442f97c5062f2c.js +0 -1
  583. package/.next/static/chunks/app/api/model/route-6b442f97c5062f2c.js +0 -1
  584. package/.next/static/chunks/app/api/model/test/route-6b442f97c5062f2c.js +0 -1
  585. package/.next/static/chunks/app/api/oauth/callback/route-6b442f97c5062f2c.js +0 -1
  586. package/.next/static/chunks/app/api/oauth/initiate/route-6b442f97c5062f2c.js +0 -1
  587. package/.next/static/chunks/app/api/oauth/reset/route-6b442f97c5062f2c.js +0 -1
  588. package/.next/static/chunks/app/api/planned-executions/[id]/route-6b442f97c5062f2c.js +0 -1
  589. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-6b442f97c5062f2c.js +0 -1
  590. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-6b442f97c5062f2c.js +0 -1
  591. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-6b442f97c5062f2c.js +0 -1
  592. package/.next/static/chunks/app/api/planned-executions/reconcile/route-6b442f97c5062f2c.js +0 -1
  593. package/.next/static/chunks/app/api/planned-executions/route-6b442f97c5062f2c.js +0 -1
  594. package/.next/static/chunks/app/api/restore/route-6b442f97c5062f2c.js +0 -1
  595. package/.next/static/chunks/app/api/runs/active/route-6b442f97c5062f2c.js +0 -1
  596. package/.next/static/chunks/app/api/storage/route-6b442f97c5062f2c.js +0 -1
  597. package/.next/static/chunks/app/api/update/route-6b442f97c5062f2c.js +0 -1
  598. package/.next/static/chunks/app/api/waves/route-6b442f97c5062f2c.js +0 -1
  599. package/.next/static/chunks/app/api/webhooks/[id]/route-6b442f97c5062f2c.js +0 -1
  600. package/.next/static/chunks/app/chat/page-04ad1fad78048afb.js +0 -1
  601. package/.next/static/chunks/app/docs/page-5475c616764dbb18.js +0 -1
  602. package/.next/static/chunks/app/executions/page-c18708ed96d228ec.js +0 -1
  603. package/.next/static/chunks/app/flows/page-f7e44aa545bcc56e.js +0 -1
  604. package/.next/static/chunks/app/layout-e6fbae80e0f456a6.js +0 -1
  605. package/.next/static/chunks/app/mcp/page-3638fbee04a3a6ea.js +0 -1
  606. package/.next/static/chunks/app/mcp-flows/route-6b442f97c5062f2c.js +0 -1
  607. package/.next/static/chunks/app/mcp-proxy/[server]/route-6b442f97c5062f2c.js +0 -1
  608. package/.next/static/chunks/app/models/page-e690a986047b1e62.js +0 -1
  609. package/.next/static/chunks/app/settings/page-3ef9b95187e18a5a.js +0 -1
  610. package/.next/static/chunks/app/v1/chat/completions/route-6b442f97c5062f2c.js +0 -1
  611. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-6b442f97c5062f2c.js +0 -1
  612. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-6b442f97c5062f2c.js +0 -1
  613. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-6b442f97c5062f2c.js +0 -1
  614. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-6b442f97c5062f2c.js +0 -1
  615. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-6b442f97c5062f2c.js +0 -1
  616. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-6b442f97c5062f2c.js +0 -1
  617. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-6b442f97c5062f2c.js +0 -1
  618. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-6b442f97c5062f2c.js +0 -1
  619. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-6b442f97c5062f2c.js +0 -1
  620. package/.next/static/chunks/app/v1/chat/conversations/route-6b442f97c5062f2c.js +0 -1
  621. package/.next/static/chunks/app/v1/models/route-6b442f97c5062f2c.js +0 -1
  622. package/.next/static/chunks/app/waves/page-c9a307e2236423a4.js +0 -1
  623. package/.next/static/chunks/webpack-a6844e1074885c2f.js +0 -1
  624. /package/.next/static/{Il6IDWxf3CN0dv-P6QQrp → O-elWbT5rs6ci1CrCqez1}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- "use strict";exports.id=4372,exports.ids=[4372],exports.modules={7681:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0});let e=c(29021),f=d(c(11223)).default("@kwsites/file-exists");b.exists=function(a,c=b.READABLE){return function(a,b,c){f("checking %s",a);try{let d=e.statSync(a);if(d.isFile()&&b)return f("[OK] path represents a file"),!0;if(d.isDirectory()&&c)return f("[OK] path represents a directory"),!0;return f("[FAIL] path represents something other than a file or directory"),!1}catch(a){if("ENOENT"===a.code)return f("[FAIL] path is not accessible: %o",a),!1;throw f("[FATAL] %o",a),a}}(a,(c&b.FILE)>0,(c&b.FOLDER)>0)},b.FILE=1,b.FOLDER=2,b.READABLE=b.FILE+b.FOLDER},31716:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{isRequestAPICallableInsideAfter:function(){return i},throwForSearchParamsAccessInUseCache:function(){return h},throwWithStaticGenerationBailoutError:function(){return f},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return g}});let d=c(11938),e=c(3295);function f(a,b){throw Object.defineProperty(new d.StaticGenBailoutError(`Route ${a} couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E576",enumerable:!1,configurable:!0})}function g(a,b){throw Object.defineProperty(new d.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function h(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used "searchParams" inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await "searchParams" outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E779",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function i(){let a=e.afterTaskAsyncStorage.getStore();return(null==a?void 0:a.rootTaskSpawnPhase)==="action"}},34322:(a,b,c)=>{c.d(b,{Ay:()=>eZ});var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aI,aJ,aK,aL,aM,aN,aO,aP,aQ,aR,aS,aT,aU,aV,aW,aX,aY=c(80512);let aZ=new WeakMap;function a$(...a){let b=new String(a);return aZ.set(b,a),b}function a_(a){return a instanceof String&&aZ.has(a)}function a0(a){return aZ.get(a)??[]}var a1=c(11223),a2=c(79646),a3=c(49722),a4=c(76760);function*a5(a,b){let c="global"===b;for(let b of a)b.isGlobal===c&&(yield b)}let a6=new Set(["--add","--edit","--remove-section","--rename-section","--replace-all","--unset","--unset-all","-e"]),a7=new Set(["--get","--get-all","--get-color","--get-colorbool","--get-regexp","--get-urlmatch","--list","-l"]),a8=new Set(["edit","remove-section","rename-section","set","unset"]),a9=new Set(["get","get-color","get-colorbool","list"]);function ba(a=!1,b=[]){let c=b.at(0)?.toLowerCase();return void 0===c?null:{isWrite:a,isRead:!a,key:c,value:b.at(1)}}let bb={short:new Map([["c",!0]])},bc={short:new Map([["C",!0],["P",!1],["h",!1],["p",!1],["v",!1],...bb.short.entries()]),long:new Set(["attr-source","config-env","exec-path","git-dir","list-cmds","namespace","super-prefix","work-tree"])},bd={clone:{short:new Map([["b",!0],["j",!0],["l",!1],["n",!1],["o",!0],["q",!1],["s",!1],["u",!0]]),long:new Set(["branch","config","jobs","origin","upload-pack","u","template"])},commit:{short:new Map([["C",!0],["F",!0],["c",!0],["m",!0],["t",!0]]),long:new Set(["file","message","reedit-message","reuse-message","template"])},config:{short:new Map([["e",!1],["f",!0],["l",!1]]),long:new Set(["blob","comment","default","file","type","value"])},fetch:{short:new Map,long:new Set(["upload-pack"])},init:{short:new Map,long:new Set(["template"])},pull:{short:new Map,long:new Set(["upload-pack"])},push:{short:new Map,long:new Set(["exec","receive-pack"])}},be={short:new Map,long:new Set};function bf(a,b=bc){if(a.startsWith("--")){let c=a.indexOf("=");if(c>2)return[{name:a.slice(0,c),value:a.slice(c+1),needsNext:!1}];let d=a.slice(2);return[{name:a,needsNext:b.long.has(d)}]}if(2===a.length){let c=a.charAt(1);return[{name:a,needsNext:!0===b.short.get(c)}]}return function(a,b){let c=a.slice(1).split(""),d=[];for(let e=0;e<c.length;e++){let f=c[e],g=b.get(f);if(void 0===g)return[{name:a,needsNext:!1}];if(g){let a=c.slice(e+1).join("");if(a&&![...a].every(a=>b.has(a)))return d.push({name:`-${f}`,value:a,needsNext:!1}),d}d.push({name:`-${f}`,needsNext:g})}return d}(a,b.short)}function bg(a,b,c=String(a)){let d="string"==typeof a?RegExp(`\\s*${a.toLowerCase()}`):a;return function(a){if(d.test(a))return{category:b,message:`Configuring ${c} is not permitted without enabling ${b}`}}}function bh(a,b){return bg(RegExp(`\\s*${a.toLowerCase().replace(/\./g,"(..+)?.")}`),b,a)}let bi=[bg("alias","allowUnsafeAlias"),bg("core.askPass","allowUnsafeAskPass"),bg("core.editor","allowUnsafeEditor"),bg("core.fsmonitor","allowUnsafeFsMonitor"),bg("core.gitProxy","allowUnsafeGitProxy"),bg("core.hooksPath","allowUnsafeHooksPath"),bg("core.pager","allowUnsafePager"),bg("core.sshCommand","allowUnsafeSshCommand"),bh("credential.helper","allowUnsafeCredentialHelper"),bh("diff.command","allowUnsafeDiffExternal"),bg("diff.external","allowUnsafeDiffExternal"),bh("diff.textconv","allowUnsafeDiffTextConv"),bh("filter.clean","allowUnsafeFilter"),bh("filter.smudge","allowUnsafeFilter"),bh("gpg.program","allowUnsafeGpgProgram"),bg("init.templateDir","allowUnsafeTemplateDir"),bh("merge.driver","allowUnsafeMergeDriver"),bh("mergetool.path","allowUnsafeMergeDriver"),bh("mergetool.cmd","allowUnsafeMergeDriver"),bh("protocol.allow","allowUnsafeProtocolOverride"),bh("remote.receivepack","allowUnsafePack"),bh("remote.uploadpack","allowUnsafePack"),bg("sequence.editor","allowUnsafeEditor")];function bj(a,b,c,d=String(b)){let e="string"==typeof b?RegExp(`\\s*${b.toLowerCase()}`):b,f=`Use of ${a?`${a} with option `:""}${d} is not permitted without enabling ${c}`;return function(b,d){if((!a||b===a)&&e.test(d))return{category:c,message:f}}}let bk=[bj(null,/--(upload|receive)-pack/,"allowUnsafePack","--upload-pack or --receive-pack"),bj("clone",/^-\w*u/,"allowUnsafePack"),bj("clone","--u","allowUnsafePack"),bj("push","--exec","allowUnsafePack"),bj(null,"--template","allowUnsafeTemplateDir")];function bl(a,b,c){return[...function*(a,b){for(let c of b)for(let b of bk){let d=b(a,c.name);d&&(yield d)}}(a,b),...function*({write:a}){for(let b of a)for(let a of bi){let c=a(b.key);c&&(yield c)}}(c)]}function bm({value:a,name:b}){return void 0!==a?{name:b,value:a}:{name:b}}let bn={editor:"allowUnsafeEditor",git_askpass:"allowUnsafeAskPass",git_config_global:"allowUnsafeConfigPaths",git_config_system:"allowUnsafeConfigPaths",git_config_count:"allowUnsafeConfigEnvCount",git_config:"allowUnsafeConfigPaths",git_editor:"allowUnsafeEditor",git_exec_path:"allowUnsafeConfigPaths",git_external_diff:"allowUnsafeDiffExternal",git_pager:"allowUnsafePager",git_proxy_command:"allowUnsafeGitProxy",git_template_dir:"allowUnsafeTemplateDir",git_sequence_editor:"allowUnsafeEditor",git_ssh:"allowUnsafeSshCommand",git_ssh_command:"allowUnsafeSshCommand",pager:"allowUnsafePager",prefix:"allowUnsafeConfigPaths",ssh_askpass:"allowUnsafeAskPass"};function bo(a){return Object.hasOwn(bn,a)}var bp=c(78474),bq=Object.defineProperty,br=Object.getOwnPropertyDescriptor,bs=Object.getOwnPropertyNames,bt=Object.prototype.hasOwnProperty,bu=(a,b)=>function(){return a&&(b=(0,a[bs(a)[0]])(a=0)),b},bv=(a,b)=>{for(var c in b)bq(a,c,{get:b[c],enumerable:!0})},bw=a=>((a,b,c,d)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let e of bs(b))bt.call(a,e)||e===c||bq(a,e,{get:()=>b[e],enumerable:!(d=br(b,e))||d.enumerable});return a})(bq({},"__esModule",{value:!0}),a),bx=bu({"src/lib/errors/git-error.ts"(){d=class extends Error{constructor(a,b){super(b),this.task=a,Object.setPrototypeOf(this,new.target.prototype)}}}}),by=bu({"src/lib/errors/git-response-error.ts"(){bx(),e=class extends d{constructor(a,b){super(void 0,b||String(a)),this.git=a}}}}),bz=bu({"src/lib/errors/task-configuration-error.ts"(){bx(),f=class extends d{constructor(a){super(void 0,a)}}}});function bA(a){return"function"!=typeof a?h:a}function bB(a){return"function"==typeof a&&a!==h}function bC(a,b){let c=a.indexOf(b);return c<=0?[a,""]:[a.substr(0,c),a.substr(c+1)]}function bD(a,b=0){return n(a)&&a.length>b?a[b]:void 0}function bE(a,b=0){if(n(a)&&a.length>b)return a[a.length-1-b]}function bF(a="",b=!0,c="\n"){return a.split(c).reduce((a,c)=>{let d=b?c.trim():c;return d&&a.push(d),a},[])}function bG(a,b){return bF(a,!0).map(a=>b(a))}function bH(a){return(0,aY.exists)(a,aY.FOLDER)}function bI(a,b){return Array.isArray(a)?a.includes(b)||a.push(b):a.add(b),b}function bJ(a,b){return Array.isArray(a)&&!a.includes(b)&&a.push(b),a}function bK(a,b){if(Array.isArray(a)){let c=a.indexOf(b);c>=0&&a.splice(c,1)}else a.delete(b);return b}function bL(a){return Array.isArray(a)?a:[a]}function bM(a){return a.replace(/[\s-]+(.)/g,(a,b)=>b.toUpperCase())}function bN(a){return bL(a).map(a=>a instanceof String?a:String(a))}function bO(a,b=0){if(null==a)return b;let c=parseInt(a,10);return Number.isNaN(c)?b:c}function bP(a,b){let c=[];for(let d=0,e=a.length;d<e;d++)c.push(b,a[d]);return c}function bQ(a){return(Array.isArray(a)?Buffer.concat(a):a).toString("utf-8")}function bR(a,b){let c={};return b.forEach(b=>{void 0!==a[b]&&(c[b]=a[b])}),c}function bS(a=0){return new Promise(b=>setTimeout(b,a))}function bT(a){if(!1!==a)return a}var bU=bu({"src/lib/utils/util.ts"(){bZ(),g="\0",h=()=>{},i=Object.prototype.toString.call.bind(Object.prototype.toString)}});function bV(a,b,c){return b(a)?a:arguments.length>2?c:void 0}function bW(a,b){let c=a_(a)?"string":typeof a;return/number|string|boolean/.test(c)&&(!b||!b.includes(c))}function bX(a){return!!a&&"[object Object]"===i(a)}function bY(a){return"function"==typeof a}var bZ=bu({"src/lib/utils/argument-filters.ts"(){bU(),j=a=>Array.isArray(a),k=a=>"number"==typeof a,l=a=>"string"==typeof a||a_(a),m=a=>l(a)||Array.isArray(a)&&a.every(l),n=a=>!(null==a||"number|boolean|function".includes(typeof a))&&"number"==typeof a.length}}),b$=bu({"src/lib/utils/exit-codes.ts"(){var a;(a=o||{})[a.SUCCESS=0]="SUCCESS",a[a.ERROR=1]="ERROR",a[a.NOT_FOUND=-2]="NOT_FOUND",a[a.UNCLEAN=128]="UNCLEAN",o=a}}),b_=bu({"src/lib/utils/git-output-streams.ts"(){p=class a{constructor(a,b){this.stdOut=a,this.stdErr=b}asStrings(){return new a(this.stdOut.toString("utf8"),this.stdErr.toString("utf8"))}}}});function b0(){throw Error("LineParser:useMatches not implemented")}var b1=bu({"src/lib/utils/line-parser.ts"(){q=class{constructor(a,b){this.matches=[],this.useMatches=b0,this.parse=(a,b)=>(this.resetMatches(),!!this._regExp.every((b,c)=>this.addMatch(b,c,a(c)))&&!1!==this.useMatches(b,this.prepareMatches())),this._regExp=Array.isArray(a)?a:[a],b&&(this.useMatches=b)}resetMatches(){this.matches.length=0}prepareMatches(){return this.matches}addMatch(a,b,c){let d=c&&a.exec(c);return d&&this.pushMatch(b,d),!!d}pushMatch(a,b){this.matches.push(...b.slice(1))}},r=class extends q{addMatch(a,b,c){return/^remote:\s/.test(String(c))&&super.addMatch(a,b,c)}pushMatch(a,b){(a>0||b.length>1)&&super.pushMatch(a,b)}}}});function b2(...a){let b=process.cwd(),c=Object.assign({baseDir:b,...s},...a.filter(a=>"object"==typeof a&&a));return c.baseDir=c.baseDir||b,c.trimmed=!0===c.trimmed,c}var b3=bu({"src/lib/utils/simple-git-options.ts"(){s={binary:"git",maxConcurrentProcesses:5,config:[],trimmed:!1}}});function b4(a,b=[]){return bX(a)?Object.keys(a).reduce((b,c)=>{let d=a[c];if(a_(d))b.push(d);else if(bW(d,["boolean"]))b.push(c+"="+d);else if(Array.isArray(d))for(let a of d)bW(a,["string","number"])||b.push(c+"="+a);else b.push(c);return b},b):b}function b5(a,b=0,c=!1){let d=[];for(let c=0,e=b<0?a.length:b;c<e;c++)"string|number".includes(typeof a[c])&&d.push(String(a[c]));return b4(b6(a),d),c||d.push(...function(a){let b="function"==typeof bE(a);return bN(bV(bE(a,+!!b),j,[]))}(a)),d}function b6(a){let b=bY(bE(a));return bV(bE(a,+!!b),bX)}function b7(a,b=!0){let c=bA(bE(a));return b||bB(c)?c:void 0}var b8=bu({"src/lib/utils/task-options.ts"(){bZ(),bU()}});function b9(a,b){return a(b.stdOut,b.stdErr)}function ca(a,b,c,d=!0){return bL(c).forEach(c=>{for(let e=bF(c,d),f=0,g=e.length;f<g;f++){let c=(a=0)=>{if(!(f+a>=g))return e[f+a]};b.some(({parse:b})=>b(c,a))}}),a}var cb=bu({"src/lib/utils/task-parser.ts"(){bU()}}),cc={};bv(cc,{ExitCodes:()=>o,GitOutputStreams:()=>p,LineParser:()=>q,NOOP:()=>h,NULL:()=>g,RemoteLineParser:()=>r,append:()=>bI,appendTaskOptions:()=>b4,asArray:()=>bL,asCamelCase:()=>bM,asFunction:()=>bA,asNumber:()=>bO,asStringArray:()=>bN,bufferToString:()=>bQ,callTaskParser:()=>b9,createInstanceConfig:()=>b2,delay:()=>bS,filterArray:()=>j,filterFunction:()=>bY,filterHasLength:()=>n,filterNumber:()=>k,filterPlainObject:()=>bX,filterPrimitives:()=>bW,filterString:()=>l,filterStringOrStringArray:()=>m,filterType:()=>bV,first:()=>bD,folderExists:()=>bH,forEachLineWithContent:()=>bG,getTrailingOptions:()=>b5,including:()=>bJ,isUserFunction:()=>bB,last:()=>bE,objectToString:()=>i,orVoid:()=>bT,parseStringResponse:()=>ca,pick:()=>bR,prefixedArray:()=>bP,remove:()=>bK,splitOn:()=>bC,toLinesWithContent:()=>bF,trailingFunctionArgument:()=>b7,trailingOptionsArgument:()=>b6});var cd=bu({"src/lib/utils/index.ts"(){bZ(),b$(),b_(),b1(),b3(),b8(),cb(),bU()}}),ce={};function cf(a){switch(a){case"bare":return ch();case"root":return cg()}return{commands:["rev-parse","--is-inside-work-tree"],format:"utf-8",onError:u,parser:v}}function cg(){return{commands:["rev-parse","--git-dir"],format:"utf-8",onError:u,parser:a=>/^\.(git)?$/.test(a.trim())}}function ch(){return{commands:["rev-parse","--is-bare-repository"],format:"utf-8",onError:u,parser:v}}bv(ce,{CheckRepoActions:()=>t,checkIsBareRepoTask:()=>ch,checkIsRepoRootTask:()=>cg,checkIsRepoTask:()=>cf});var ci=bu({"src/lib/tasks/check-is-repo.ts"(){var a;cd(),(a=t||{}).BARE="bare",a.IN_TREE="tree",a.IS_REPO_ROOT="root",t=a,u=({exitCode:a},b,c,d)=>{if(128===a&&/(Not a git repository|Kein Git-Repository)/i.test(String(b)))return c(Buffer.from("false"));d(b)},v=a=>"true"===a.trim()}}),cj=bu({"src/lib/responses/CleanSummary.ts"(){cd(),w=class{constructor(a){this.dryRun=a,this.paths=[],this.files=[],this.folders=[]}},x=/^[a-z]+\s*/i,y=/^[a-z]+\s+[a-z]+\s*/i,z=/\/$/}}),ck={};function cl(a){return{commands:A,format:"empty",parser:a}}function cm(a){return{commands:A,format:"empty",parser(){throw"string"==typeof a?new f(a):a}}}function cn(a,b=!1){return{commands:a,format:"utf-8",parser:a=>b?String(a).trim():a}}function co(a){return{commands:a,format:"buffer",parser:a=>a}}function cp(a){return"buffer"===a.format}function cq(a){return"empty"===a.format||!a.commands.length}bv(ck,{EMPTY_COMMANDS:()=>A,adhocExecTask:()=>cl,configurationErrorTask:()=>cm,isBufferTask:()=>cp,isEmptyTask:()=>cq,straightThroughBufferTask:()=>co,straightThroughStringTask:()=>cn});var cr=bu({"src/lib/tasks/task.ts"(){bz(),A=[]}}),cs={};function ct(a,b){let c,d,e,{cleanMode:f,options:g,valid:h}=(d=[],e={cleanMode:!1,options:!0},a.replace(/[^a-z]i/g,"").split("").forEach(a=>{var b,f;"f"===(b=a)||"n"===b?(c=a,e.cleanMode=!0):e.options=e.options&&(f=d[d.length]=`-${a}`,/^-[a-z]$/i.test(f)&&F.has(f.charAt(1)))}),{cleanMode:c,options:d,valid:e});return f?h.options?(g.push(...b),g.some(cw))?cm(B):cu(f,g):cm(D+JSON.stringify(a)):cm(C)}function cu(a,b){return{commands:["clean",`-${a}`,...b],format:"utf-8",parser:b=>(function(a,b){let c=new w(a),d=a?y:x;return bF(b).forEach(a=>{let b=a.replace(d,"");c.paths.push(b),(z.test(b)?c.folders:c.files).push(b)}),c})("n"===a,b)}}function cv(a){return Array.isArray(a)&&a.every(a=>F.has(a))}function cw(a){return/^-[^\-]/.test(a)?a.indexOf("i")>0:"--interactive"===a}bv(cs,{CONFIG_ERROR_INTERACTIVE_MODE:()=>B,CONFIG_ERROR_MODE_REQUIRED:()=>C,CONFIG_ERROR_UNKNOWN_OPTION:()=>D,CleanOptions:()=>E,cleanTask:()=>cu,cleanWithOptionsTask:()=>ct,isCleanOptionsArray:()=>cv});var cx=bu({"src/lib/tasks/clean.ts"(){var a;cj(),cd(),cr(),B="Git clean interactive mode is not supported",C='Git clean mode parameter ("n" or "f") is required',D="Git clean unknown option found in: ",(a=E||{}).DRY_RUN="n",a.FORCE="f",a.IGNORED_INCLUDED="x",a.IGNORED_ONLY="X",a.EXCLUDING="e",a.QUIET="q",a.RECURSIVE="d",F=new Set(["i",...bN(Object.values(E=a))])}});function*cy(a,b=null){let c=a.split("\0");for(let a=0,d=c.length-1;a<d;){let d=c[a++].replace(/^(file):/,""),e=c[a++],f=b;if(e.includes("\n")){let a=bC(e,"\n");f=a[0],e=a[1]}yield{file:d,key:f,value:e}}}var cz=bu({"src/lib/responses/ConfigList.ts"(){cd(),G=class{constructor(){this.files=[],this.values=Object.create(null)}get all(){return this._all||(this._all=this.files.reduce((a,b)=>Object.assign(a,this.values[b]),{})),this._all}addFile(a){if(!(a in this.values)){let b=bE(this.files);this.values[a]=b?Object.create(this.values[b]):{},this.files.push(a)}return this.values[a]}addValue(a,b,c){let d=this.addFile(a);Object.hasOwn(d,b)?Array.isArray(d[b])?d[b].push(c):d[b]=[d[b],c]:d[b]=c,this._all=void 0}}}});function cA(a,b){return"string"==typeof a&&Object.hasOwn(H,a)?a:b}var cB=bu({"src/lib/tasks/config.ts"(){var a;cz(),cd(),(a=H||{}).system="system",a.global="global",a.local="local",a.worktree="worktree",H=a}}),cC=bu({"src/lib/tasks/diff-name-status.ts"(){var a;(a=I||{}).ADDED="A",a.COPIED="C",a.DELETED="D",a.MODIFIED="M",a.RENAMED="R",a.CHANGED="T",a.UNMERGED="U",a.UNKNOWN="X",a.BROKEN="B",J=new Set(Object.values(I=a))}}),cD=bu({"src/lib/tasks/grep.ts"(){cd(),cr(),K=["-h"],L=Symbol("grepQuery"),N=class{constructor(){this[M]=[]}*[(M=L,Symbol.iterator)](){for(let a of this[L])yield a}and(...a){return a.length&&this[L].push("--and","(",...bP(a,"-e"),")"),this}param(...a){return this[L].push(...bP(a,"-e")),this}}}}),cE={};function cF(a,b){let c=["reset"];return cH(a)&&c.push(`--${a}`),c.push(...b),cn(c)}function cG(a){if(cH(a))return a;switch(typeof a){case"string":case"undefined":return"soft"}}function cH(a){return"string"==typeof a&&P.includes(a)}bv(cE,{ResetMode:()=>O,getResetMode:()=>cG,resetTask:()=>cF});var cI=bu({"src/lib/tasks/reset.ts"(){var a;cd(),cr(),(a=O||{}).MIXED="mixed",a.SOFT="soft",a.HARD="hard",a.MERGE="merge",a.KEEP="keep",P=bN(Object.values(O=a))}});function cJ(a,b,c){return b&&String(b).replace(/\s*/,"")?(d,...e)=>{a(`%s ${d}`,b,...e),c&&c(d,...e)}:c?(b,...d)=>{a(b,...d),c(b,...d)}:a}function cK(a,b,c,d=a1("simple-git")){let e=a&&`[${a}]`||"",f=[],g="string"==typeof b?d.extend(b):b,i=function(a,b,{namespace:c}){if("string"==typeof a)return a;let d=b&&b.namespace||"";return d.startsWith(c)?d.substr(c.length+1):d||c}(bV(b,l),g,d);return function b(c){let f=c&&`[${c}]`||"",i=g&&cJ(g,f)||h,k=cJ(d,`${e} ${f}`,i);return Object.assign(g?i:k,{label:a,sibling:j,info:k,step:b})}(c);function j(b,c){return bI(f,cK(a,i.replace(/^[^:]+/,b),c,d))}}var cL=bu({"src/lib/git-logger.ts"(){cd(),a1.formatters.L=a=>String(n(a)?a.length:"-"),a1.formatters.B=a=>Buffer.isBuffer(a)?a.toString("utf8"):i(a)}}),cM=bu({"src/lib/runners/tasks-pending-queue.ts"(){bx(),cL(),Q=class a{constructor(a="GitExecutor"){this.logLabel=a,this._queue=new Map}withProgress(a){return this._queue.get(a)}createProgress(b){let c=a.getName(b.commands[0]);return{task:b,logger:cK(this.logLabel,c),name:c}}push(a){let b=this.createProgress(a);return b.logger("Adding task to the queue, commands = %o",a.commands),this._queue.set(a,b),b}fatal(a){for(let[b,{logger:c}]of Array.from(this._queue.entries()))b===a.task?(c.info("Failed %o",a),c("Fatal exception, any as-yet un-started tasks run through this executor will not be attempted")):c.info("A fatal exception occurred in a previous task, the queue has been purged: %o",a.message),this.complete(b);if(0!==this._queue.size)throw Error(`Queue size should be zero after fatal: ${this._queue.size}`)}complete(a){this.withProgress(a)&&this._queue.delete(a)}attempt(a){let b=this.withProgress(a);if(!b)throw new d(void 0,"TasksPendingQueue: attempt called for an unknown task");return b.logger("Starting task"),b}static getName(b="empty"){return`task:${b}:${++a.counter}`}static{this.counter=0}}}});function cN(a,b){return{method:bD(a.commands)||"",commands:b}}function cO(a,b,c,d){return e=>{c("%s received %L bytes",b,e),d("%B",e),a.push(e)}}var cP=bu({"src/lib/runners/git-executor-chain.ts"(){bx(),cr(),cd(),cM(),R=class{constructor(a,b,c){this._executor=a,this._scheduler=b,this._plugins=c,this._chain=Promise.resolve(),this._queue=new Q}get cwd(){return this._cwd||this._executor.cwd}set cwd(a){this._cwd=a}get env(){return this._executor.env}get outputHandler(){return this._executor.outputHandler}chain(){return this}push(a){return this._queue.push(a),this._chain=this._chain.then(()=>this.attemptTask(a))}async attemptTask(a){let b=await this._scheduler.next(),c=()=>this._queue.complete(a);try{let{logger:b}=this._queue.attempt(a);return await (cq(a)?this.attemptEmptyTask(a,b):this.attemptRemoteTask(a,b))}catch(b){throw this.onFatalException(a,b)}finally{c(),b()}}onFatalException(a,b){let c=b instanceof d?Object.assign(b,{task:a}):new d(a,b&&String(b));return this._chain=Promise.resolve(),this._queue.fatal(c),c}async attemptRemoteTask(a,b){let c=this._plugins.exec("spawn.binary","",cN(a,a.commands)),d=this._plugins.exec("spawn.args",[...a.commands],{...cN(a,a.commands),env:{...this.env}}),e=await this.gitResponse(a,c,d,this.outputHandler,b.step("SPAWN")),f=await this.handleTaskData(a,d,e,b.step("HANDLE"));return(b("passing response to task's parser as a %s",a.format),cp(a))?b9(a.parser,f):b9(a.parser,f.asStrings())}async attemptEmptyTask(a,b){return b("empty task bypassing child process to call to task's parser"),a.parser(this)}handleTaskData(a,b,c,d){let{exitCode:e,rejection:f,stdOut:g,stdErr:h}=c;return new Promise((j,k)=>{d("Preparing to handle process response exitCode=%d stdOut=",e);let{error:l}=this._plugins.exec("task.error",{error:f},{...cN(a,b),...c});return l&&a.onError?(d.info("exitCode=%s handling with custom error handler"),a.onError(c,l,a=>{d.info("custom error handler treated as success"),d("custom error returned a %s",i(a)),j(new p(Array.isArray(a)?Buffer.concat(a):a,Buffer.concat(h)))},k)):l?(d.info("handling as error: exitCode=%s stdErr=%s rejection=%o",e,h.length,f),k(l)):void(d.info("retrieving task output complete"),j(new p(Buffer.concat(g),Buffer.concat(h))))})}async gitResponse(a,b,c,d,e){let f=e.sibling("output"),g=this._plugins.exec("spawn.options",{cwd:this.cwd,env:this.env,windowsHide:!0},cN(a,a.commands));return new Promise(h=>{let i=[],j=[];e.info("%s %o",b,c),e("%O",g);let k=this._beforeSpawn(a,c);if(k)return h({stdOut:i,stdErr:j,exitCode:9901,rejection:k});this._plugins.exec("spawn.before",void 0,{...cN(a,c),kill(a){k=a||k}});let l=(0,a2.spawn)(b,c,g);l.stdout.on("data",cO(i,"stdOut",e,f.step("stdOut"))),l.stderr.on("data",cO(j,"stdErr",e,f.step("stdErr"))),l.on("error",a=>{e("[ERROR] child process exception %o",a),j.push(Buffer.from(String(a.stack),"ascii"))}),d&&(e("Passing child process stdOut/stdErr to custom outputHandler"),d(b,l.stdout,l.stderr,[...c])),this._plugins.exec("spawn.after",void 0,{...cN(a,c),spawned:l,close(a,b){h({stdOut:i,stdErr:j,exitCode:a,rejection:k||b})},kill(a){l.killed||(k=a,l.kill("SIGINT"))}})})}_beforeSpawn(a,b){let c;return this._plugins.exec("spawn.before",void 0,{...cN(a,b),kill(a){c=a||c}}),c}}}}),cQ={};bv(cQ,{GitExecutor:()=>S});var cR=bu({"src/lib/runners/git-executor.ts"(){cP(),S=class{constructor(a,b,c){this.cwd=a,this._scheduler=b,this._plugins=c,this._chain=new R(this,this._scheduler,this._plugins)}chain(){return new R(this,this._scheduler,this._plugins)}push(a){return this._chain.push(a)}}}}),cS=bu({"src/lib/task-callback.ts"(){by(),cd()}});function cT(a,b){return cl(c=>{if(!bH(a))throw Error(`Git.cwd: cannot change to non-directory "${a}"`);return(b||c).cwd=a})}var cU=bu({"src/lib/tasks/change-working-directory.ts"(){cd(),cr()}});function cV(a){let b=["checkout",...a];return"-b"===b[1]&&b.includes("-B")&&(b[1]=bK(b,"-B")),cn(b)}var cW=bu({"src/lib/tasks/checkout.ts"(){cd(),cr()}}),cX=bu({"src/lib/tasks/count-objects.ts"(){cd(),T=new q(/([a-z-]+): (\d+)$/,(a,[b,c])=>{let d=bM(b);Object.hasOwn(a,d)&&(a[d]=bO(c))})}});function cY(a){return ca({author:null,branch:"",commit:"",root:!1,summary:{changes:0,insertions:0,deletions:0}},U,a)}var cZ=bu({"src/lib/parsers/parse-commit.ts"(){cd(),U=[new q(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/,(a,[b,c,d])=>{a.branch=b,a.commit=d,a.root=!!c}),new q(/\s*Author:\s(.+)/i,(a,[b])=>{let c=b.split("<"),d=c.pop();d&&d.includes("@")&&(a.author={email:d.substr(0,d.length-1),name:c.join("<").trim()})}),new q(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g,(a,[b,c,d])=>{a.summary.changes=parseInt(b,10)||0,a.summary.insertions=parseInt(c,10)||0,a.summary.deletions=parseInt(d,10)||0}),new q(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/,(a,[b,c,d])=>{a.summary.changes=parseInt(b,10)||0;let e=parseInt(c,10)||0;"-"===d?a.summary.deletions=e:"+"===d&&(a.summary.insertions=e)})]}}),c$=bu({"src/lib/tasks/commit.ts"(){cZ(),cd(),cr()}}),c_=bu({"src/lib/tasks/first-commit.ts"(){cd(),cr()}}),c0=bu({"src/lib/tasks/hash-object.ts"(){cr()}}),c1=bu({"src/lib/responses/InitSummary.ts"(){V=class{constructor(a,b,c,d){this.bare=a,this.path=b,this.existing=c,this.gitDir=d}},W=/^Init.+ repository in (.+)$/,X=/^Rein.+ in (.+)$/}}),c2=bu({"src/lib/tasks/init.ts"(){c1(),Y="--bare"}});function c3(a){for(let b=0;b<a.length;b++){let c=Z.exec(a[b]);if(c)return`--${c[1]}`}return""}function c4(a){return Z.test(a)}var c5=bu({"src/lib/args/log-format.ts"(){Z=/^--(stat|numstat|name-only|name-status)(=|$)/}}),c6=bu({"src/lib/responses/DiffSummary.ts"(){$=class{constructor(){this.changed=0,this.deletions=0,this.insertions=0,this.files=[]}}}});function c7(a=""){let b=ac[a];return a=>ca(new $,b,a,!1)}var c8=bu({"src/lib/parsers/parse-diff-summary.ts"(){c5(),c6(),cC(),cd(),_=[new q(/^(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/,(a,[b,c,d=""])=>{a.files.push({file:b.trim(),changes:bO(c),insertions:d.replace(/[^+]/g,"").length,deletions:d.replace(/[^-]/g,"").length,binary:!1})}),new q(/^(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)/,(a,[b,c,d])=>{a.files.push({file:b.trim(),before:bO(c),after:bO(d),binary:!0})}),new q(/(\d+) files? changed\s*((?:, \d+ [^,]+){0,2})/,(a,[b,c])=>{let d=/(\d+) i/.exec(c),e=/(\d+) d/.exec(c);a.changed=bO(b),a.insertions=bO(d?.[1]),a.deletions=bO(e?.[1])})],aa=[new q(/(\d+)\t(\d+)\t(.+)$/,(a,[b,c,d])=>{let e=bO(b),f=bO(c);a.changed++,a.insertions+=e,a.deletions+=f,a.files.push({file:d,changes:e+f,insertions:e,deletions:f,binary:!1})}),new q(/-\t-\t(.+)$/,(a,[b])=>{a.changed++,a.files.push({file:b,after:0,before:0,binary:!0})})],ab=[new q(/(.+)$/,(a,[b])=>{a.changed++,a.files.push({file:b,changes:0,insertions:0,deletions:0,binary:!1})})],ac={"":_,"--stat":_,"--numstat":aa,"--name-status":[new q(/([ACDMRTUXB])([0-9]{0,3})\t(.[^\t]*)(\t(.[^\t]*))?$/,(a,[b,c,d,e,f])=>{a.changed++,a.files.push({file:f??d,changes:0,insertions:0,deletions:0,binary:!1,status:bT(J.has(b)&&b),from:bT(!!f&&d!==f&&d),similarity:bO(c)})})],"--name-only":ab}}});function c9(a=af,b=ag,c=""){let d=c7(c);return function(c){let e=bF(c.trim(),!1,ad).map(function(c){var e;let f=c.split(ae),g=(e=f[0].split(a),b.reduce((a,b,c)=>(a[b]=e[c]||"",a),Object.create({diff:null})));return f.length>1&&f[1].trim()&&(g.diff=d(f[1])),g});return{all:e,latest:e.length&&e[0]||null,total:e.length}}}var da=bu({"src/lib/parsers/parse-list-log-summary.ts"(){cd(),c8(),c5(),ad="\xf2\xf2\xf2\xf2\xf2\xf2 ",ae=" \xf2\xf2",af=" \xf2 ",ag=["hash","date","message","refs","author_name","author_email"]}}),db={};function dc(a){let b=c3(a),c=["diff"];return""===b&&(b="--stat",c.push("--stat=4096")),c.push(...a),dd(c)||{commands:c,format:"utf-8",parser:c7(b)}}function dd(a){let b=a.filter(c4);return b.length>1?cm(`Summary flags are mutually exclusive - pick one of ${b.join(",")}`):b.length&&a.includes("-z")?cm(`Summary flag ${b} parsing is not compatible with null termination option '-z'`):void 0}bv(db,{diffSummaryTask:()=>dc,validateLogFormatConfig:()=>dd});var de=bu({"src/lib/tasks/diff.ts"(){c5(),c8(),cr()}});function df(a={},b=[]){let c=bV(a.splitter,l,af),[d,e]=function(a,b){let c=[],d=[];return Object.keys(a).forEach(b=>{c.push(b),d.push(String(a[b]))}),[c,d.join(b)]}(bX(a.format)?a.format:{hash:"%H",date:!1===a.strictDate?"%ai":"%aI",message:"%s",refs:"%D",body:a.multiLine?"%B":"%b",author_name:!1!==a.mailMap?"%aN":"%an",author_email:!1!==a.mailMap?"%aE":"%ae"},c),f=[],g=[`--pretty=format:${ad}${e}${ae}`,...b],h=a.n||a["max-count"]||a.maxCount;if(h&&g.push(`--max-count=${h}`),a.from||a.to){let b=!1!==a.symmetric?"...":"..";f.push(`${a.from||""}${b}${a.to||""}`)}return l(a.file)&&g.push("--follow",a$(a.file)),b4(Object.keys(a).reduce((b,c)=>(c in ah||(b[c]=a[c]),b),{}),g),{fields:d,splitter:c,commands:[...g,...f]}}var dg=bu({"src/lib/tasks/log.ts"(){var a;c5(),da(),cd(),cr(),de(),(a=ah||{})[a["--pretty"]=0]="--pretty",a[a["max-count"]=1]="max-count",a[a.maxCount=2]="maxCount",a[a.n=3]="n",a[a.file=4]="file",a[a.format=5]="format",a[a.from=6]="from",a[a.to=7]="to",a[a.splitter=8]="splitter",a[a.symmetric=9]="symmetric",a[a.mailMap=10]="mailMap",a[a.multiLine=11]="multiLine",a[a.strictDate=12]="strictDate",ah=a}}),dh=bu({"src/lib/responses/MergeSummary.ts"(){ai=class{constructor(a,b=null,c){this.reason=a,this.file=b,this.meta=c}toString(){return`${this.file}:${this.reason}`}},aj=class{constructor(){this.conflicts=[],this.merges=[],this.result="success"}get failed(){return this.conflicts.length>0}get reason(){return this.result}toString(){return this.conflicts.length?`CONFLICTS: ${this.conflicts.join(", ")}`:"OK"}}}}),di=bu({"src/lib/responses/PullSummary.ts"(){ak=class{constructor(){this.remoteMessages={all:[]},this.created=[],this.deleted=[],this.files=[],this.deletions={},this.insertions={},this.summary={changes:0,deletions:0,insertions:0}}},al=class{constructor(){this.remote="",this.hash={local:"",remote:""},this.branch={local:"",remote:""},this.message=""}toString(){return this.message}}}});function dj(a){return a.objects=a.objects||{compressing:0,counting:0,enumerating:0,packReused:0,reused:{count:0,delta:0},total:{count:0,delta:0}}}function dk(a){let b=/^\s*(\d+)/.exec(a),c=/delta (\d+)/i.exec(a);return{count:bO(b&&b[1]||"0"),delta:bO(c&&c[1]||"0")}}var dl=bu({"src/lib/parsers/parse-remote-objects.ts"(){cd(),am=[new r(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i,(a,[b,c])=>{let d=b.toLowerCase();Object.assign(dj(a.remoteMessages),{[d]:bO(c)})}),new r(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i,(a,[b,c])=>{let d=b.toLowerCase();Object.assign(dj(a.remoteMessages),{[d]:bO(c)})}),new r(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i,(a,[b,c,d])=>{let e=dj(a.remoteMessages);e.total=dk(b),e.reused=dk(c),e.packReused=bO(d)})]}});function dm(a,b){return ca({remoteMessages:new ao},an,b)}var dn=bu({"src/lib/parsers/parse-remote-messages.ts"(){cd(),dl(),an=[new r(/^remote:\s*(.+)$/,(a,[b])=>(a.remoteMessages.all.push(b.trim()),!1)),...am,new r([/create a (?:pull|merge) request/i,/\s(https?:\/\/\S+)$/],(a,[b])=>{a.remoteMessages.pullRequestUrl=b}),new r([/found (\d+) vulnerabilities.+\(([^)]+)\)/i,/\s(https?:\/\/\S+)$/],(a,[b,c,d])=>{a.remoteMessages.vulnerabilities={count:bO(b),summary:c,url:d}})],ao=class{constructor(){this.all=[]}}}}),dp=bu({"src/lib/parsers/parse-pull.ts"(){di(),cd(),dn(),ap=/(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/,aq=/^(create|delete) mode \d+ (.+)/,ar=[new q(/^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/,(a,[b,c,d])=>{a.files.push(b),c&&(a.insertions[b]=c.length),d&&(a.deletions[b]=d.length)}),new q(ap,(a,[b,,c,,d])=>(void 0!==c||void 0!==d)&&(a.summary.changes=+b||0,a.summary.insertions=+c||0,a.summary.deletions=+d||0,!0)),new q(aq,(a,[b,c])=>{bI(a.files,c),bI("create"===b?a.created:a.deleted,c)})],as=[new q(/^from\s(.+)$/i,(a,[b])=>void(a.remote=b)),new q(/^fatal:\s(.+)$/,(a,[b])=>void(a.message=b)),new q(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/,(a,[b,c,d,e])=>{a.branch.local=d,a.hash.local=b,a.branch.remote=e,a.hash.remote=c})],at=(a,b)=>Object.assign(new ak,ca(new ak,ar,[a,b]),dm(a,b))}}),dq=bu({"src/lib/parsers/parse-merge.ts"(){dh(),cd(),dp(),au=[new q(/^Auto-merging\s+(.+)$/,(a,[b])=>{a.merges.push(b)}),new q(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/,(a,[b,c])=>{a.conflicts.push(new ai(b,c))}),new q(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/,(a,[b,c,d])=>{a.conflicts.push(new ai(b,c,{deleteRef:d}))}),new q(/^CONFLICT\s+\((.+)\):/,(a,[b])=>{a.conflicts.push(new ai(b,null))}),new q(/^Automatic merge failed;\s+(.+)$/,(a,[b])=>{a.result=b})],av=(a,b)=>Object.assign(aw(a,b),at(a,b)),aw=a=>ca(new aj,au,a)}});function dr(a){return a.length?{commands:["merge",...a],format:"utf-8",parser(a,b){let c=av(a,b);if(c.failed)throw new e(c);return c}}:cm("Git.merge requires at least one option")}var ds=bu({"src/lib/tasks/merge.ts"(){by(),dq(),cr()}}),dt=bu({"src/lib/parsers/parse-push.ts"(){cd(),dn(),ax=[new q(/^Pushing to (.+)$/,(a,[b])=>{a.repo=b}),new q(/^updating local tracking ref '(.+)'/,(a,[b])=>{a.ref={...a.ref||{},local:b}}),new q(/^[=*-]\s+([^:]+):(\S+)\s+\[(.+)]$/,(a,[b,c,d])=>{a.pushed.push(function(a,b,c){let d=c.includes("deleted"),e=c.includes("tag")||/^refs\/tags/.test(a),f=!c.includes("new");return{deleted:d,tag:e,branch:!e,new:!f,alreadyUpdated:f,local:a,remote:b}}(b,c,d))}),new q(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/,(a,[b,c,d])=>{a.branch={...a.branch||{},local:b,remote:c,remoteName:d}}),new q(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/,(a,[b,c,d,e])=>{a.update={head:{local:b,remote:c},hash:{from:d,to:e}}})],ay=(a,b)=>{let c=az(a,b),d=dm(a,b);return{...c,...d}},az=(a,b)=>ca({pushed:[]},ax,[a,b])}}),du={};function dv(a={},b){return bI(b,"--tags"),dw(a,b)}function dw(a={},b){let c=["push",...b];return a.branch&&c.splice(1,0,a.branch),a.remote&&c.splice(1,0,a.remote),bK(c,"-v"),bI(c,"--verbose"),bI(c,"--porcelain"),{commands:c,format:"utf-8",parser:ay}}bv(du,{pushTagsTask:()=>dv,pushTask:()=>dw});var dx=bu({"src/lib/tasks/push.ts"(){dt(),cd()}}),dy=bu({"src/lib/tasks/show.ts"(){cd(),cr()}}),dz=bu({"src/lib/responses/FileStatusSummary.ts"(){aA=/^(.+)\0(.+)$/,aB=class{constructor(a,b,c){if(this.path=a,this.index=b,this.working_dir=c,"R"===b||"R"===c){let b=aA.exec(a)||[null,a,a];this.from=b[2]||"",this.path=b[1]||""}}}}});function dA(a){let[b,c]=a.split(g);return{from:c||b,to:b}}function dB(a,b,c){return[`${a}${b}`,c]}function dC(a,...b){return b.map(b=>dB(a,b,(a,b)=>a.conflicted.push(b)))}var dD=bu({"src/lib/responses/StatusSummary.ts"(){cd(),dz(),aC=class{constructor(){this.not_added=[],this.conflicted=[],this.created=[],this.deleted=[],this.ignored=void 0,this.modified=[],this.renamed=[],this.files=[],this.staged=[],this.ahead=0,this.behind=0,this.current=null,this.tracking=null,this.detached=!1,this.isClean=()=>!this.files.length}},aD=new Map([dB(" ","A",(a,b)=>a.created.push(b)),dB(" ","D",(a,b)=>a.deleted.push(b)),dB(" ","M",(a,b)=>a.modified.push(b)),dB("A"," ",(a,b)=>{a.created.push(b),a.staged.push(b)}),dB("A","M",(a,b)=>{a.created.push(b),a.staged.push(b),a.modified.push(b)}),dB("D"," ",(a,b)=>{a.deleted.push(b),a.staged.push(b)}),dB("M"," ",(a,b)=>{a.modified.push(b),a.staged.push(b)}),dB("M","M",(a,b)=>{a.modified.push(b),a.staged.push(b)}),dB("R"," ",(a,b)=>{a.renamed.push(dA(b))}),dB("R","M",(a,b)=>{let c=dA(b);a.renamed.push(c),a.modified.push(c.to)}),dB("!","!",(a,b)=>{(a.ignored=a.ignored||[]).push(b)}),dB("?","?",(a,b)=>a.not_added.push(b)),...dC("A","A","U"),...dC("D","D","U"),...dC("U","A","D","U"),["##",(a,b)=>{let c=/ahead (\d+)/.exec(b);a.ahead=c&&+c[1]||0,a.behind=(c=/behind (\d+)/.exec(b))&&+c[1]||0,c=/^(.+?(?=(?:\.{3}|\s|$)))/.exec(b),a.current=bV(c?.[1],l,null),c=/\.{3}(\S*)/.exec(b),a.tracking=bV(c?.[1],l,null),(c=/\son\s(\S+?)(?=\.{3}|$)/.exec(b))&&(a.current=bV(c?.[1],l,a.current)),a.detached=/\(no branch\)/.test(b)}]]),aE=function(a){let b=a.split(g),c=new aC;for(let a=0,d=b.length;a<d;){let d=b[a++].trim();d&&("R"===d.charAt(0)&&(d+=g+(b[a++]||"")),function(a,b){let c=b.trim();switch(" "){case c.charAt(2):return d(c.charAt(0),c.charAt(1),c.slice(3));case c.charAt(1):return d(" ",c.charAt(0),c.slice(2));default:return}function d(b,c,d){let e=`${b}${c}`,f=aD.get(e);f&&f(a,d),"##"!==e&&"!!"!==e&&a.files.push(new aB(d,b,c))}}(c,d))}return c}}}),dE=bu({"src/lib/tasks/status.ts"(){dD(),aF=["--null","-z"]}});function dF(a=0,b=0,c=0,d="",e=!0){return Object.defineProperty({major:a,minor:b,patch:c,agent:d,installed:e},"toString",{value(){return`${this.major}.${this.minor}.${this.patch}`},configurable:!1,enumerable:!1})}function dG(a){return a===aG?dF(0,0,0,"",!1):ca(dF(0,0,0,a),aH,a)}var dH=bu({"src/lib/tasks/version.ts"(){cd(),aG="installed=false",aH=[new q(/version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/,(a,[b,c,d,e=""])=>{Object.assign(a,dF(bO(b),bO(c),bO(d),e))}),new q(/version (\d+)\.(\d+)\.(\D+)(.+)?$/,(a,[b,c,d,e=""])=>{Object.assign(a,dF(bO(b),bO(c),d,e))})]}});function dI(a,b,c,...d){return l(c)?b(c,bV(d[0],l),b5(arguments)):cm(`git.${a}() requires a string 'repoPath'`)}var dJ=bu({"src/lib/tasks/clone.ts"(){cr(),cd(),aI=(a,b,c)=>{let d=["clone",...c];return l(a)&&d.push(a$(a)),l(b)&&d.push(a$(b)),cn(d)},aJ=(a,b,c)=>(bI(c,"--mirror"),aI(a,b,c))}}),dK={};bv(dK,{SimpleGitApi:()=>aK});var dL=bu({"src/lib/simple-git-api.ts"(){cS(),cU(),cW(),cX(),c$(),cB(),c_(),cD(),c0(),c2(),dg(),ds(),dx(),dy(),dE(),cr(),dH(),cd(),dJ(),Object.assign((aK=class{constructor(a){this._executor=a}_runTask(a,b){let c=this._executor.chain(),d=c.push(a);return b&&function(a,b,c=h){b.then(a=>{c(null,a)},b=>{var d;let f;b?.task===a&&c(b instanceof e?(d=b,f=a=>{console.warn(`simple-git deprecation notice: accessing GitResponseError.${a} should be GitResponseError.git.${a}, this will no longer be available in version 3`),f=h},Object.create(d,Object.getOwnPropertyNames(d.git).reduce(function(a,b){return b in d||(a[b]={enumerable:!1,configurable:!1,get:()=>(f(b),d.git[b])}),a},{}))):b,void 0)})}(a,d,b),Object.create(this,{then:{value:d.then.bind(d)},catch:{value:d.catch.bind(d)},_executor:{value:c}})}add(a){return this._runTask(cn(["add",...bL(a)]),b7(arguments))}cwd(a){let b=b7(arguments);return"string"==typeof a?this._runTask(cT(a,this._executor),b):"string"==typeof a?.path?this._runTask(cT(a.path,a.root&&this._executor||void 0),b):this._runTask(cm("Git.cwd: workingDirectory must be supplied as a string"),b)}hashObject(a,b){return this._runTask(function(a,b){let c=["hash-object",a];return b&&c.push("-w"),cn(c,!0)}(a,!0===b),b7(arguments))}init(a){return this._runTask(function(a=!1,b,c){let d=["init",...c];return a&&!d.includes(Y)&&d.splice(1,0,Y),{commands:d,format:"utf-8",parser:a=>(function(a,b,c){let d,e=String(c).trim();if(d=W.exec(e))return new V(a,b,!1,d[1]);if(d=X.exec(e))return new V(a,b,!0,d[1]);let f="",g=e.split(" ");for(;g.length;)if("in"===g.shift()){f=g.join(" ");break}return new V(a,b,/^re/i.test(e),f)})(d.includes("--bare"),b,a)}}(!0===a,this._executor.cwd,b5(arguments)),b7(arguments))}merge(){return this._runTask(dr(b5(arguments)),b7(arguments))}mergeFromTo(a,b){return l(a)&&l(b)?this._runTask(dr([a,b,...b5(arguments)]),b7(arguments,!1)):this._runTask(cm("Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings"))}outputHandler(a){return this._executor.outputHandler=a,this}push(){let a=dw({remote:bV(arguments[0],l),branch:bV(arguments[1],l)},b5(arguments));return this._runTask(a,b7(arguments))}stash(){return this._runTask(cn(["stash",...b5(arguments)]),b7(arguments))}status(){var a;return this._runTask((a=b5(arguments),{format:"utf-8",commands:["status","--porcelain","-b","-u","--null",...a.filter(a=>!aF.includes(a))],parser:a=>aE(a)}),b7(arguments))}}).prototype,{checkout(){return this._runTask(cV(b5(arguments,1)),b7(arguments))},checkoutBranch(a,b){return this._runTask(cV(["-b",a,b,...b5(arguments)]),b7(arguments))},checkoutLocalBranch(a){return this._runTask(cV(["-b",a,...b5(arguments)]),b7(arguments))}},{clone(a,...b){return this._runTask(dI("clone",aI,bV(a,l),...b),b7(arguments))},mirror(a,...b){return this._runTask(dI("mirror",aJ,bV(a,l),...b),b7(arguments))}},{commit(a,...b){var c,d,e;let f=b7(arguments),g=!m(a)&&cm("git.commit: requires the commit message to be supplied as a string/string[]")||(c=bL(a),d=bL(bV(b[0],m,[])),e=[...bN(bV(b[1],j,[])),...b5(arguments,0,!0)],{commands:["-c","core.abbrev=40","commit",...bP(c,"-m"),...d,...e],format:"utf-8",parser:cY});return this._runTask(g,f)}},{addConfig(a,b,...c){return this._runTask(function(a,b,c,d){let e=["config",`--${d}`];return c&&e.push("--add"),e.push(a,b),{commands:e,format:"utf-8",parser:a=>a}}(a,b,!0===c[0],cA(c[1],"local")),b7(arguments))},getConfig(a,b){return this._runTask(function(a,b){let c=["config","--null","--show-origin","--get-all",a];return b&&c.splice(1,0,`--${b}`),{commands:c,format:"utf-8",parser:b=>(function(a,b){let c=null,d=[],e=new Map;for(let f of cy(a,b))f.key===b&&(d.push(c=f.value),e.has(f.file)||e.set(f.file,[]),e.get(f.file).push(c));return{key:b,paths:Array.from(e.keys()),scopes:e,value:c,values:d}})(b,a)}}(a,cA(b,void 0)),b7(arguments))},listConfig(...a){return this._runTask(function(a){let b=["config","--list","--show-origin","--null"];return a&&b.push(`--${a}`),{commands:b,format:"utf-8",parser:a=>(function(a){let b=new G;for(let c of cy(a))b.addValue(c.file,String(c.key),c.value);return b})(a)}}(cA(a[0],void 0)),b7(arguments))}},{countObjects(){return this._runTask({commands:["count-objects","--verbose"],format:"utf-8",parser:a=>ca({count:0,garbage:0,inPack:0,packs:0,prunePackable:0,size:0,sizeGarbage:0,sizePack:0},[T],a)})}},{firstCommit(){return this._runTask(cn(["rev-list","--max-parents=0","HEAD"],!0),b7(arguments))}},{grep(a){let b=b7(arguments),c=b5(arguments);for(let a of K)if(c.includes(a))return this._runTask(cm(`git.grep: use of "${a}" is not supported.`),b);"string"==typeof a&&(a=(function(...a){return new N().param(...a)})().param(a));let d=["grep","--null","-n","--full-name",...c,...a];return this._runTask({commands:d,format:"utf-8",parser:a=>(function(a){let b=new Set,c={};return bG(a,a=>{let[d,e,f]=a.split(g);b.add(d),(c[d]=c[d]||[]).push({line:bO(e),path:d,preview:f})}),{paths:b,results:c}})(a)},b)}},{log(...a){var b;let c=b7(arguments),d=df(b6(arguments),bN(bV(arguments[0],j,[]))),e=function(a,b){return l(a)&&l(b)&&cm("git.log(string, string) should be replaced with git.log({ from: string, to: string })")}(...a)||dd(d.commands)||function(a,b,c){let d=c9(a,b,c3(c));return{commands:["log",...c],format:"utf-8",parser:d}}((b=d).splitter,b.fields,b.commands);return this._runTask(e,c)}},{showBuffer(){let a=["show",...b5(arguments,1)];return a.includes("--binary")||a.splice(1,0,"--binary"),this._runTask(co(a),b7(arguments))},show(){let a=["show",...b5(arguments,1)];return this._runTask(cn(a),b7(arguments))}},{version(){return this._runTask({commands:["--version"],format:"utf-8",parser:dG,onError(a,b,c,d){if(-2===a.exitCode)return c(Buffer.from(aG));d(b)}})}})}}),dM={};bv(dM,{Scheduler:()=>aL});var dN=bu({"src/lib/runners/scheduler.ts"(){let a;cd(),cL(),a=0,aL=class{constructor(a=2){this.concurrency=a,this.logger=cK("","scheduler"),this.pending=[],this.running=[],this.logger("Constructed, concurrency=%s",a)}schedule(){if(!this.pending.length||this.running.length>=this.concurrency)return void this.logger("Schedule attempt ignored, pending=%s running=%s concurrency=%s",this.pending.length,this.running.length,this.concurrency);let a=bI(this.running,this.pending.shift());this.logger("Attempting id=%s",a.id),a.done(()=>{this.logger("Completing id=",a.id),bK(this.running,a),this.schedule()})}next(){let{promise:b,id:c}=bI(this.pending,(()=>{a++;let{promise:b,done:c}=(0,a3.ud)();return{promise:b,done:c,id:a}})());return this.logger("Scheduling id=%s",c),this.schedule(),b}}}}),dO={};function dP(a,b){return cn(["apply",...b,...a])}bv(dO,{applyPatchTask:()=>dP});var dQ=bu({"src/lib/tasks/apply-patch.ts"(){cr()}}),dR=bu({"src/lib/responses/BranchDeleteSummary.ts"(){aM=class{constructor(){this.all=[],this.branches={},this.errors=[]}get success(){return!this.errors.length}}}});function dS(a,b){return 1===b&&aN.test(a)}var dT=bu({"src/lib/parsers/parse-branch-delete.ts"(){dR(),cd(),aN=/^error[^']+'([^']+)'/m,aO=[new q(/(\S+)\s+\(\S+\s([^)]+)\)/,(a,[b,c])=>{let d={branch:b,hash:c,success:!0};a.all.push(d),a.branches[b]=d}),new q(aN,(a,[b])=>{let c={branch:b,hash:null,success:!1};a.errors.push(c),a.all.push(c),a.branches[b]=c})],aP=(a,b)=>ca(new aM,aO,[a,b])}}),dU=bu({"src/lib/responses/BranchSummary.ts"(){aQ=class{constructor(){this.all=[],this.branches={},this.current="",this.detached=!1}push(a,b,c,d,e){"*"===a&&(this.detached=b,this.current=c),this.all.push(c),this.branches[c]={current:"*"===a,linkedWorkTree:"+"===a,name:c,commit:d,label:e}}}}});function dV(a){return a?a.charAt(0):""}function dW(a,b=!1){return ca(new aQ,b?[aS]:aR,a)}var dX=bu({"src/lib/parsers/parse-branch.ts"(){dU(),cd(),aR=[new q(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/,(a,[b,c,d,e])=>{a.push(dV(b),!0,c,d,e)}),new q(/^([*+]\s)?(\S+)\s+([a-z0-9]+)\s?(.*)$/s,(a,[b,c,d,e])=>{a.push(dV(b),!1,c,d,e)})],aS=new q(/^(\S+)$/s,(a,[b])=>{a.push("*",!1,b,"","")})}}),dY={};function dZ(a){let b=["-d","-D","--delete"];return a.some(a=>b.includes(a))}function d$(a){let b=dZ(a),c=a.includes("--show-current"),d=["branch",...a];return 1===d.length&&d.push("-a"),d.includes("-v")||d.splice(1,0,"-v"),{format:"utf-8",commands:d,parser:(a,d)=>b?aP(a,d).all[0]:dW(a,c)}}function d_(){return{format:"utf-8",commands:["branch","-v"],parser:a=>dW(a)}}function d0(a,b=!1){return{format:"utf-8",commands:["branch","-v",b?"-D":"-d",...a],parser:(a,b)=>aP(a,b),onError({exitCode:a,stdOut:b},c,d,e){if(!dS(String(c),a))return e(c);d(b)}}}function d1(a,b=!1){let c={format:"utf-8",commands:["branch","-v",b?"-D":"-d",a],parser:(b,c)=>aP(b,c).branches[a],onError({exitCode:a,stdErr:b,stdOut:d},f,g,h){if(!dS(String(f),a))return h(f);throw new e(c.parser(bQ(d),bQ(b)),String(f))}};return c}bv(dY,{branchLocalTask:()=>d_,branchTask:()=>d$,containsDeleteBranchCommand:()=>dZ,deleteBranchTask:()=>d1,deleteBranchesTask:()=>d0});var d2=bu({"src/lib/tasks/branch.ts"(){by(),dT(),dX(),cd()}});function d3(a){let b=a.trim().replace(/^["']|["']$/g,"");return b&&(0,a4.normalize)(b)}var d4=bu({"src/lib/responses/CheckIgnore.ts"(){aT=a=>a.split(/\n/g).map(d3).filter(Boolean)}}),d5={};function d6(a){return{commands:["check-ignore",...a],format:"utf-8",parser:aT}}bv(d5,{checkIgnoreTask:()=>d6});var d7=bu({"src/lib/tasks/check-ignore.ts"(){d4()}});function d8(a,b){return ca({raw:a,remote:null,branches:[],tags:[],updated:[],deleted:[]},aU,[a,b])}var d9=bu({"src/lib/parsers/parse-fetch.ts"(){cd(),aU=[new q(/From (.+)$/,(a,[b])=>{a.remote=b}),new q(/\* \[new branch]\s+(\S+)\s*-> (.+)$/,(a,[b,c])=>{a.branches.push({name:b,tracking:c})}),new q(/\* \[new tag]\s+(\S+)\s*-> (.+)$/,(a,[b,c])=>{a.tags.push({name:b,tracking:c})}),new q(/- \[deleted]\s+\S+\s*-> (.+)$/,(a,[b])=>{a.deleted.push({tracking:b})}),new q(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/,(a,[b,c,d,e])=>{a.updated.push({name:d,tracking:e,to:c,from:b})})]}}),ea={};function eb(a){return/^--upload-pack(=|$)/.test(a)}function ec(a,b,c){let d=["fetch",...c];return(a&&b&&d.push(a,b),d.find(eb))?cm("git.fetch: potential exploit argument blocked."):{commands:d,format:"utf-8",parser:d8}}bv(ea,{fetchTask:()=>ec});var ed=bu({"src/lib/tasks/fetch.ts"(){d9(),cr()}});function ee(a){return ca({moves:[]},aV,a)}var ef=bu({"src/lib/parsers/parse-move.ts"(){cd(),aV=[new q(/^Renaming (.+) to (.+)$/,(a,[b,c])=>{a.moves.push({from:b,to:c})})]}}),eg={};function eh(a,b){return{commands:["mv","-v",...bL(a),b],format:"utf-8",parser:ee}}bv(eg,{moveTask:()=>eh});var ei=bu({"src/lib/tasks/move.ts"(){ef(),cd()}}),ej={};function ek(a,b,c){let d=["pull",...c];return a&&b&&d.splice(1,0,a,b),{commands:d,format:"utf-8",parser:(a,b)=>at(a,b),onError(a,b,c,d){let f=function(a,b){let c=ca(new al,as,[a,b]);return c.message&&c}(bQ(a.stdOut),bQ(a.stdErr));if(f)return d(new e(f));d(b)}}}bv(ej,{pullTask:()=>ek});var el=bu({"src/lib/tasks/pull.ts"(){by(),dp(),cd()}});function em(a){let b={};return eo(a,([a])=>b[a]={name:a}),Object.values(b)}function en(a){let b={};return eo(a,([a,c,d])=>{Object.hasOwn(b,a)||(b[a]={name:a,refs:{fetch:"",push:""}}),d&&c&&(b[a].refs[d.replace(/[^a-z]/g,"")]=c)}),Object.values(b)}function eo(a,b){bG(a,a=>b(a.split(/\s+/)))}var ep=bu({"src/lib/responses/GetRemoteSummary.ts"(){cd()}}),eq={};function er(a,b,c){return cn(["remote","add",...c,a,b])}function es(a){let b=["remote"];return a&&b.push("-v"),{commands:b,format:"utf-8",parser:a?en:em}}function et(a){let b=[...a];return"ls-remote"!==b[0]&&b.unshift("ls-remote"),cn(b)}function eu(a){let b=[...a];return"remote"!==b[0]&&b.unshift("remote"),cn(b)}function ev(a){return cn(["remote","remove",a])}bv(eq,{addRemoteTask:()=>er,getRemotesTask:()=>es,listRemotesTask:()=>et,remoteTask:()=>eu,removeRemoteTask:()=>ev});var ew=bu({"src/lib/tasks/remote.ts"(){ep(),cr()}}),ex={};function ey(a={},b){let c=df(a),d=["stash","list",...c.commands,...b],e=c9(c.splitter,c.fields,c3(d));return dd(d)||{commands:d,format:"utf-8",parser:e}}bv(ex,{stashListTask:()=>ey});var ez=bu({"src/lib/tasks/stash-list.ts"(){c5(),da(),de(),dg()}}),eA={};function eB(a,b){return eD(["add",a,b])}function eC(a){return eD(["init",...a])}function eD(a){let b=[...a];return"submodule"!==b[0]&&b.unshift("submodule"),cn(b)}function eE(a){return eD(["update",...a])}bv(eA,{addSubModuleTask:()=>eB,initSubModuleTask:()=>eC,subModuleTask:()=>eD,updateSubModuleTask:()=>eE});var eF=bu({"src/lib/tasks/sub-module.ts"(){cr()}});function eG(a,b){return a===b?0:a>b?1:-1}function eH(a){return a.trim()}function eI(a){return"string"==typeof a&&parseInt(a.replace(/^\D+/g,""),10)||0}var eJ=bu({"src/lib/responses/TagList.ts"(){aW=class{constructor(a,b){this.all=a,this.latest=b}},aX=function(a,b=!1){let c=a.split("\n").map(eH).filter(Boolean);b||c.sort(function(a,b){let c=a.split("."),d=b.split(".");if(1===c.length||1===d.length)return function(a,b){let c=Number.isNaN(a);return c!==Number.isNaN(b)?c?1:-1:c?eG(a,b):0}(eI(c[0]),eI(d[0]));for(let a=0,b=Math.max(c.length,d.length);a<b;a++){let b=eG(eI(c[a]),eI(d[a]));if(b)return b}return 0});let d=b?c[0]:[...c].reverse().find(a=>a.indexOf(".")>=0);return new aW(c,d)}}}),eK={};function eL(a=[]){let b=a.some(a=>/^--sort=/.test(a));return{format:"utf-8",commands:["tag","-l",...a],parser:a=>aX(a,b)}}function eM(a){return{format:"utf-8",commands:["tag",a],parser:()=>({name:a})}}function eN(a,b){return{format:"utf-8",commands:["tag","-a","-m",b,a],parser:()=>({name:a})}}bv(eK,{addAnnotatedTagTask:()=>eN,addTagTask:()=>eM,tagListTask:()=>eL});var eO=bu({"src/lib/tasks/tag.ts"(){eJ()}}),eP=((a,b)=>function(){return b||(0,a[bs(a)[0]])((b={exports:{}}).exports,b),b.exports})({"src/git.js"(a,b){var{GitExecutor:c}=(cR(),bw(cQ)),{SimpleGitApi:d}=(dL(),bw(dK)),{Scheduler:e}=(dN(),bw(dM)),{adhocExecTask:f,configurationErrorTask:g}=(cr(),bw(ck)),{asArray:h,filterArray:i,filterPrimitives:j,filterString:k,filterStringOrStringArray:l,filterType:m,getTrailingOptions:n,trailingFunctionArgument:o,trailingOptionsArgument:p}=(cd(),bw(cc)),{applyPatchTask:q}=(dQ(),bw(dO)),{branchTask:r,branchLocalTask:s,deleteBranchesTask:t,deleteBranchTask:u}=(d2(),bw(dY)),{checkIgnoreTask:v}=(d7(),bw(d5)),{checkIsRepoTask:w}=(ci(),bw(ce)),{cleanWithOptionsTask:x,isCleanOptionsArray:y}=(cx(),bw(cs)),{diffSummaryTask:z}=(de(),bw(db)),{fetchTask:A}=(ed(),bw(ea)),{moveTask:B}=(ei(),bw(eg)),{pullTask:C}=(el(),bw(ej)),{pushTagsTask:D}=(dx(),bw(du)),{addRemoteTask:E,getRemotesTask:F,listRemotesTask:G,remoteTask:H,removeRemoteTask:I}=(ew(),bw(eq)),{getResetMode:J,resetTask:K}=(cI(),bw(cE)),{stashListTask:L}=(ez(),bw(ex)),{addSubModuleTask:M,initSubModuleTask:N,subModuleTask:O,updateSubModuleTask:P}=(eF(),bw(eA)),{addAnnotatedTagTask:Q,addTagTask:R,tagListTask:S}=(eO(),bw(eK)),{straightThroughBufferTask:T,straightThroughStringTask:U}=(cr(),bw(ck));function V(a,b){this._plugins=b,this._executor=new c(a.baseDir,new e(a.maxConcurrentProcesses),b),this._trimmed=a.trimmed}(V.prototype=Object.create(d.prototype)).constructor=V,V.prototype.customBinary=function(a){return this._plugins.reconfigure("binary",a),this},V.prototype.env=function(a,b){return 1==arguments.length&&"object"==typeof a?this._executor.env=a:(this._executor.env=this._executor.env||{})[a]=b,this},V.prototype.stashList=function(a){return this._runTask(L(p(arguments)||{},i(a)&&a||[]),o(arguments))},V.prototype.mv=function(a,b){return this._runTask(B(a,b),o(arguments))},V.prototype.checkoutLatestTag=function(a){var b=this;return this.pull(function(){b.tags(function(c,d){b.checkout(d.latest,a)})})},V.prototype.pull=function(a,b,c,d){return this._runTask(C(m(a,k),m(b,k),n(arguments)),o(arguments))},V.prototype.fetch=function(a,b){return this._runTask(A(m(a,k),m(b,k),n(arguments)),o(arguments))},V.prototype.silent=function(a){return this._runTask(f(()=>console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this method will be removed.")))},V.prototype.tags=function(a,b){return this._runTask(S(n(arguments)),o(arguments))},V.prototype.rebase=function(){return this._runTask(U(["rebase",...n(arguments)]),o(arguments))},V.prototype.reset=function(a){return this._runTask(K(J(a),n(arguments)),o(arguments))},V.prototype.revert=function(a){let b=o(arguments);return"string"!=typeof a?this._runTask(g("Commit must be a string"),b):this._runTask(U(["revert",...n(arguments,0,!0),a]),b)},V.prototype.addTag=function(a){let b="string"==typeof a?R(a):g("Git.addTag requires a tag name");return this._runTask(b,o(arguments))},V.prototype.addAnnotatedTag=function(a,b){return this._runTask(Q(a,b),o(arguments))},V.prototype.deleteLocalBranch=function(a,b,c){return this._runTask(u(a,"boolean"==typeof b&&b),o(arguments))},V.prototype.deleteLocalBranches=function(a,b,c){return this._runTask(t(a,"boolean"==typeof b&&b),o(arguments))},V.prototype.branch=function(a,b){return this._runTask(r(n(arguments)),o(arguments))},V.prototype.branchLocal=function(a){return this._runTask(s(),o(arguments))},V.prototype.raw=function(a){let b=!Array.isArray(a),c=[].slice.call(b?arguments:a,0);for(let a=0;a<c.length&&b;a++)if(!j(c[a])){c.splice(a,c.length-a);break}c.push(...n(arguments,0,!0));var d=o(arguments);return c.length?this._runTask(U(c,this._trimmed),d):this._runTask(g("Raw: must supply one or more command to execute"),d)},V.prototype.submoduleAdd=function(a,b,c){return this._runTask(M(a,b),o(arguments))},V.prototype.submoduleUpdate=function(a,b){return this._runTask(P(n(arguments,!0)),o(arguments))},V.prototype.submoduleInit=function(a,b){return this._runTask(N(n(arguments,!0)),o(arguments))},V.prototype.subModule=function(a,b){return this._runTask(O(n(arguments)),o(arguments))},V.prototype.listRemote=function(){return this._runTask(G(n(arguments)),o(arguments))},V.prototype.addRemote=function(a,b,c){return this._runTask(E(a,b,n(arguments)),o(arguments))},V.prototype.removeRemote=function(a,b){return this._runTask(I(a),o(arguments))},V.prototype.getRemotes=function(a,b){return this._runTask(F(!0===a),o(arguments))},V.prototype.remote=function(a,b){return this._runTask(H(n(arguments)),o(arguments))},V.prototype.tag=function(a,b){let c=n(arguments);return"tag"!==c[0]&&c.unshift("tag"),this._runTask(U(c),o(arguments))},V.prototype.updateServerInfo=function(a){return this._runTask(U(["update-server-info"]),o(arguments))},V.prototype.pushTags=function(a,b){let c=D({remote:m(a,k)},n(arguments));return this._runTask(c,o(arguments))},V.prototype.rm=function(a){return this._runTask(U(["rm","-f",...h(a)]),o(arguments))},V.prototype.rmKeepLocal=function(a){return this._runTask(U(["rm","--cached",...h(a)]),o(arguments))},V.prototype.catFile=function(a,b){return this._catFile("utf-8",arguments)},V.prototype.binaryCatFile=function(){return this._catFile("buffer",arguments)},V.prototype._catFile=function(a,b){var c=o(b),d=["cat-file"],e=b[0];if("string"==typeof e)return this._runTask(g("Git.catFile: options must be supplied as an array of strings"),c);Array.isArray(e)&&d.push.apply(d,e);let f="buffer"===a?T(d):U(d);return this._runTask(f,c)},V.prototype.diff=function(a,b){let c=k(a)?g("git.diff: supplying options as a single string is no longer supported, switch to an array of strings"):U(["diff",...n(arguments)]);return this._runTask(c,o(arguments))},V.prototype.diffSummary=function(){return this._runTask(z(n(arguments,1)),o(arguments))},V.prototype.applyPatch=function(a){let b=l(a)?q(h(a),n([].slice.call(arguments,1))):g("git.applyPatch requires one or more string patches as the first argument");return this._runTask(b,o(arguments))},V.prototype.revparse=function(){let a=["rev-parse",...n(arguments,!0)];return this._runTask(U(a,!0),o(arguments))},V.prototype.clean=function(a,b,c){let d=y(a),e=d&&a.join("")||m(a,k)||"",f=n([].slice.call(arguments,+!!d));return this._runTask(x(e,f),o(arguments))},V.prototype.exec=function(a){return this._runTask({commands:[],format:"utf-8",parser(){"function"==typeof a&&a()}})},V.prototype.clearQueue=function(){return this._runTask(f(()=>console.warn("simple-git deprecation notice: clearQueue() is deprecated and will be removed, switch to using the abortPlugin instead.")))},V.prototype.checkIgnore=function(a,b){return this._runTask(v(h(m(a,l,[]))),o(arguments))},V.prototype.checkIsRepo=function(a,b){return this._runTask(w(m(a,k)),o(arguments))},b.exports=V}});bx();var eQ=class extends d{constructor(a,b){super(void 0,b),this.config=a}};bx(),bx();var eR=class extends d{constructor(a,b,c){super(a,c),this.task=a,this.plugin=b,Object.setPrototypeOf(this,new.target.prototype)}};by(),bz(),ci(),cx(),cB(),cC(),cD(),cI(),cd(),cd();var eS=(0,a3.yX)().promise;cd();var eT="Invalid value supplied for custom binary, restricted characters must be removed or supply the unsafe.allowUnsafeCustomBinary option";function eU(a){return!a||!/^([a-z]:)?([a-z0-9/.\\_~-]+)$/i.test(a)}function eV(a,b){if(a.length<1||a.length>2)throw new eR(void 0,"binary","Invalid value supplied for custom binary, requires a single string or an array containing either one or two strings");if(a.some(eU))if(b)console.warn(eT);else throw new eR(void 0,"binary",eT);let[c,d]=a;return{binary:c,prefix:d}}function eW(a){return{type:"task.error",action(b,c){let e=a(b.error,{stdErr:c.stdErr,stdOut:c.stdOut,exitCode:c.exitCode});return Buffer.isBuffer(e)?{error:new d(void 0,e.toString("utf-8"))}:{error:e}}}}bx(),cd();var eX=class{constructor(){this.plugins=new Set,this.events=new bp.EventEmitter}on(a,b){this.events.on(a,b)}reconfigure(a,b){this.events.emit(a,b)}append(a,b){let c=bI(this.plugins,{type:a,action:b});return()=>this.plugins.delete(c)}add(a){let b=[];return bL(a).forEach(a=>a&&this.plugins.add(bI(b,a))),()=>{b.forEach(a=>this.plugins.delete(a))}}exec(a,b,c){let d=b,e=Object.freeze(Object.create(c));for(let b of this.plugins)b.type===a&&(d=b.action(d,e));return d}};cd(),cd(),cd();var eY=eP();by();var eZ=function(a,b){let c=new eX,d=b2(a&&("string"==typeof a?{baseDir:a}:a)||{},b);if(!bH(d.baseDir))throw new eQ(d,"Cannot use simple-git on a directory that does not exist");return Array.isArray(d.config)&&c.add(function(a){let b=bP(a,"-c");return{type:"spawn.args",action:a=>[...b,...a]}}(d.config)),c.add(function(a={}){return{type:"spawn.args",action(b,{env:c}){for(let d of[...function(...a){var b;let{flags:c,taskIndex:d}=function(a,b=[]){let c=0;for(;c<a.length;){let d=String(a[c]);if(!d.startsWith("-")||d.length<2)break;let e=bf(d),f=c+1;for(let c of e){let d={name:c.name,value:c.value,absorbedNext:!1,isGlobal:!0};c.needsNext&&void 0===d.value&&f<a.length&&(d.value=String(a[f]),d.absorbedNext=!0,f++),b.push(d)}c=f}return{flags:b,taskIndex:c}}(a),e=d<a.length?String(a[d]).toLowerCase():null,{positionals:f,pathspecs:g}=function(a,b,c=[]){let d=function(a){let b=bd[a??""]??be;return{short:new Map([...bb.short.entries(),...b.short.entries()]),long:b.long}}(b),e=[],f=[],g=0;for(;g<a.length;){let b=a[g];if(a_(b)){f.push(...a0(b)),g++;continue}let h=String(b);if("--"===h){for(let b=g+1;b<a.length;b++){let c=a[b];a_(c)?f.push(...a0(c)):f.push(String(c))}break}if(!h.startsWith("-")||h.length<2){e.push(h),g++;continue}let i=bf(h,d),j=g+1;for(let b of i){let d={name:b.name,value:b.value,absorbedNext:!1,isGlobal:!1};b.needsNext&&void 0===d.value&&j<a.length&&!a_(a[j])&&(d.value=String(a[j]),d.absorbedNext=!0,j++),c.push(d)}g=j}return{flags:c,positionals:e,pathspecs:f}}(null!==e?a.slice(d+1):[],e,c),h=function(a,b,c){let d={read:[],write:[...function*(a){for(let b of a){let a=function({name:a}){return"-c"===a||"--config"===a?"inline":"--config-env"===a?"env":void 0}(b),c=a&&function(a){let b=a?.indexOf("=")||-1;return!a||b<0?null:{key:a.slice(0,b).trim().toLowerCase(),value:a.slice(b+1)}}(b.value);c&&(yield{...c,scope:a})}}(b)]};return"config"===a&&function(a,b,c){if(null===c)return;let d=c.isWrite&&void 0!==c.value?{key:c.key,value:c.value,scope:b}:{key:c.key,scope:b};c.isWrite?a.write.push(d):a.read.push(d)}(d,function(a){for(let{name:b}of a5(a,"task"))switch(b){case"--global":return"global";case"--system":return"system";case"--worktree":return"worktree";case"--local":return"local";case"--file":case"-f":return"file"}return"local"}(b),function(a,b){for(let{name:c}of a5(a,"task")){if(a6.has(c))return ba(!0,b);if(a7.has(c))return ba(!1,b)}let c=b.at(0)?.toLowerCase();return void 0===c?null:a8.has(c)?ba(!0,b.slice(1)):a9.has(c)?ba(!1,b.slice(1)):1===b.length?ba(!1,b):ba(!0,b)}(b,c)),d}(e,c,f);return{task:e,flags:c.map(bm),paths:g,config:h,vulnerabilities:Object.defineProperty(b=bl(e,c,h),"vulnerabilities",{value:b})}}(...b).vulnerabilities,...function(a){let b=function(a){let b={};for(let[c,d]of Object.entries(a)){let a=c.toLowerCase().trim();(bo(a)||a.startsWith("git"))&&(b[a]=String(d))}return b}(a),c={read:[],write:[...function*(a){let b=parseInt(a.git_config_count??"0",10);for(let c=0;c<b;c++){let b=a[`git_config_key_${c}`],d=a[`git_config_value_${c}`];void 0!==b&&(yield{key:b.toLowerCase().trim(),value:d,scope:"env"})}}(b)]},d=[...function*(a){for(let b of Object.keys(a))if(bo(b)){let a=bn[b];yield{category:a,message:`Use of "${b.toUpperCase()}" is not permitted without enabling ${a}`}}}(b),...bl(null,[],c)];return{config:c,vulnerabilities:d}}(c).vulnerabilities])if(!0!==a[d.category])throw new eR(void 0,"unsafe",d.message);return b}}}(d.unsafe)),c.add(function({onClose:a=!0,onExit:b=50}={}){function c(a,b,c){!1!==a&&(!0===a?b.promise:b.promise.then(()=>bS(a))).then(c.done)}return{type:"spawn.after",async action(d,{spawned:e,close:f}){let g=function(){let d=-1,e={close:(0,a3.yX)(),closeTimeout:(0,a3.yX)(),exit:(0,a3.yX)(),exitTimeout:(0,a3.yX)()},f=Promise.race([!1===a?eS:e.closeTimeout.promise,!1===b?eS:e.exitTimeout.promise]);return c(a,e.close,e.closeTimeout),c(b,e.exit,e.exitTimeout),{close(a){d=a,e.close.done()},exit(a){d=a,e.exit.done()},get exitCode(){return d},result:f}}(),h=!0,i=()=>void(h=!1);e.stdout?.on("data",i),e.stderr?.on("data",i),e.on("error",i),e.on("close",a=>g.close(a)),e.on("exit",a=>g.exit(a));try{await g.result,h&&await bS(50),f(g.exitCode)}catch(a){f(g.exitCode,a)}}}}(d.completion)),d.abort&&c.add(function(a){if(a)return[{type:"spawn.before",action(b,c){a.aborted&&c.kill(new eR(void 0,"abort","Abort already signaled"))}},{type:"spawn.after",action(b,c){function d(){c.kill(new eR(void 0,"abort","Abort signal received"))}a.addEventListener("abort",d),c.spawned.on("close",()=>a.removeEventListener("abort",d))}}]}(d.abort)),d.progress&&c.add(function(a){let b="--progress",c=["checkout","clone","fetch","pull","push"];return[{type:"spawn.args",action:(a,d)=>c.includes(d.method)?bJ(a,b):a},{type:"spawn.after",action(c,d){d.commands.includes(b)&&d.spawned.stderr?.on("data",b=>{let c=/^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(b.toString("utf8"));c&&a({method:d.method,stage:String(c[1].toLowerCase().split(" ",1))||"unknown",progress:bO(c[2]),processed:bO(c[3]),total:bO(c[4])})})}}]}(d.progress)),d.timeout&&c.add(function({block:a,stdErr:b=!0,stdOut:c=!0}){if(a>0)return{type:"spawn.after",action(d,e){let f;function g(){f&&clearTimeout(f),f=setTimeout(i,a)}function h(){e.spawned.stdout?.off("data",g),e.spawned.stderr?.off("data",g),e.spawned.off("exit",h),e.spawned.off("close",h),f&&clearTimeout(f)}function i(){h(),e.kill(new eR(void 0,"timeout","block timeout reached"))}c&&e.spawned.stdout?.on("data",g),b&&e.spawned.stderr?.on("data",g),e.spawned.on("exit",h),e.spawned.on("close",h),g()}}}(d.timeout)),d.spawnOptions&&c.add(function(a){let b=bR(a,["uid","gid"]);return{type:"spawn.options",action:a=>({...b,...a})}}(d.spawnOptions)),c.add({type:"spawn.args",action(a){let b,c=[];function d(a){(b=b||[]).push(...a)}for(let b=0;b<a.length;b++){let e=a[b];if(a_(e)){d(a0(e));continue}if("--"===e){d(a.slice(b+1).flatMap(a=>a_(a)&&a0(a)||a));break}c.push(e)}return b?[...c,"--",...b.map(String)]:c}}),c.add(eW(function(a=!1,b=function(a){return!!(a.exitCode&&a.stdErr.length)},c=function(a){return Buffer.concat([...a.stdOut,...a.stdErr])}){return(d,e)=>(a||!d)&&b(e)?c(e):d}(!0))),d.errors&&c.add(eW(d.errors)),!function(a,b=["git"],c=!1){let d=eV(bL(b),c);a.on("binary",a=>{d=eV(bL(a),c)}),a.append("spawn.binary",()=>d.binary),a.append("spawn.args",a=>d.prefix?[d.prefix,...a]:a)}(c,d.binary,d.unsafe?.allowUnsafeCustomBinary),new eY(d,c)}},49722:(a,b)=>{function c(){let a,b,c="pending";return{promise:new Promise((c,d)=>{a=c,b=d}),done(b){"pending"===c&&(c="resolved",a(b))},fail(a){"pending"===c&&(c="rejected",b(a))},get fulfilled(){return"pending"!==c},get status(){return c}}}b.ud=b.yX=void 0,b.yX=c,b.ud=c},80512:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),function(a){for(var c in a)b.hasOwnProperty(c)||(b[c]=a[c])}(c(7681))},84226:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{describeHasCheckingStringProperty:function(){return e},describeStringPropertyAccess:function(){return d},wellKnownProperties:function(){return f}});let c=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function d(a,b){return c.test(b)?"`"+a+"."+b+"`":"`"+a+"["+JSON.stringify(b)+"]`"}function e(a,b){let c=JSON.stringify(b);return"`Reflect.has("+a+", "+c+")`, `"+c+" in "+a+"`, or similar"}let f=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toString","valueOf","toLocaleString","then","catch","finally","status","displayName","_debugInfo","toJSON","$$typeof","__esModule"])}};
@@ -1,65 +0,0 @@
1
- "use strict";exports.id=4561,exports.ids=[4561],exports.modules={8336:(a,b,c)=>{c.d(b,{A$:()=>g});let d="_-_-_",e=/^(tool|resource):(.+)$/,f=/\$\{((?:tool|resource):[^}]+|_-_-_[^}]+)\}/g;function g(a){let b,c=[];for(f.lastIndex=0;null!==(b=f.exec(a));){let a=function(a){let b=e.exec(a);if(b){let a=b[1],c=function(a){let b=a.indexOf("__");if(b<=0)return null;let c=a.slice(b+2);return c?{server:a.slice(0,b),name:c}:null}(b[2]);return c?{kind:a,server:c.server,name:c.name}:null}if(a.startsWith(d)){let b=a.split(d);if(3===b.length&&b[1]&&b[2])return{kind:"tool",server:b[1],name:b[2]}}return null}(b[1]);a&&c.push({...a,fullMatch:b[0],index:b.index})}return c}},8918:(a,b,c)=>{c.d(b,{Fp:()=>f,M5:()=>d,Po:()=>e});let d=(a,b,c,d,e)=>({type:"model",code:a,message:b,modelId:c,requestId:d,details:e}),e=(a,b,c,d,e)=>({type:"tool",code:a,message:b,toolName:c,toolArgs:d,details:e}),f=(a,b,c,d,e)=>({type:"mcp",code:a,message:b,serverName:c,operation:d,details:e})},18975:(a,b,c)=>{function d(a){return"assistant"===a.role&&Array.isArray(a.tool_calls)&&a.tool_calls.length>0}function e(a){let b=a.length-1;for(;b>=0;b--){let c=a[b];if(!("tool"===c.role||d(c)))break}let c=a.slice(b+1);return c.some(d)?c:[]}function f(a,b,c){if(!b||"full-history"===b)return a;let d=a.filter(a=>"system"===a.role);if("isolated"===b)return[...d,{role:"user",content:c??"",id:"isolated-input",timestamp:0},...e(a)];let f=-1;for(let b=a.length-1;b>=0;b--)if("user"===a[b].role){f=b;break}return -1===f?a:[...d,...a.slice(f)]}function g(a){return a.tool_calls.some(a=>"function"===a.type&&i(a.function.name))}function h(a,b){if(0===b.size)return a;let c=a.length-e(a).length,f=Array(c).fill(!1);for(let b=0;b<c;){let e=a[b].processNodeId,h=b;for(;h<c&&a[h].processNodeId===e;)h++;let i=!1;if(e)for(let c=b;c<h;c++){let b=a[c];if("assistant"===b.role&&k(b)&&(!d(b)||g(b))){i=!0;break}}for(let a=b;a<h;a++)f[a]=i;b=h}let h=new Set,i=[],j=!1;for(let e=0;e<a.length;e++){let l=a[e];if(e<c){if(d(l)&&l.processNodeId&&b.has(l.processNodeId)&&f[e]){for(let a of l.tool_calls)h.add(a.id);if(j=!0,g(l)&&k(l)){let{tool_calls:a,...b}=l;i.push(b)}continue}if("tool"===l.role&&l.tool_call_id&&h.has(l.tool_call_id)){j=!0;continue}}i.push(l)}return j?i:a}function i(a){return"handoff"===a||a.startsWith("handoff_to_")}function j(a,b){return[b,...a.filter(a=>"system"!==a.role)]}function k(a){return"string"==typeof a.content?a.content.trim().length>0:!!Array.isArray(a.content)&&a.content.length>0}function l(a){let b=new Set;for(let c of a)if("assistant"===c.role&&Array.isArray(c.tool_calls))for(let a of c.tool_calls)"function"===a.type&&i(a.function.name)&&b.add(a.id);let c=[];for(let d of a)if(("user"!==d.role||"string"!=typeof d.content||"The handoff was successful. Continue"!==d.content.trim())&&!("tool"===d.role&&d.tool_call_id&&b.has(d.tool_call_id))){if("assistant"===d.role&&Array.isArray(d.tool_calls)&&d.tool_calls.some(a=>"function"===a.type&&i(a.function.name))){let a=d.tool_calls.filter(a=>!("function"===a.type&&i(a.function.name)));if(a.length>0)c.push({...d,tool_calls:a});else if(k(d)){let{tool_calls:a,...b}=d;c.push(b)}continue}c.push(d)}return c}function m(a){return l(a).map(({id:a,timestamp:b,disabled:c,processNodeId:d,depth:e,usage:f,...g})=>g)}function n(a){return"string"==typeof a.content&&a.content.length>4e3?{...a,content:`${a.content.slice(0,4e3)}
2
- …[truncated ${a.content.length-4e3} chars]`}:a}function o(a){let b=new Set;for(let c of a)c.id&&b.add(c.id);return b}function p(a){let{threaded:b,foldedView:c,scopedView:d,systemContent:e,inputMode:f}=a,g=l(d),h=o(c),i=o(d),j=o(g),k=[],m=0,p=0,q=0,r=0;for(let a of b){let b={id:a.id,role:a.role,status:"sent",preview:function(a,b){if("string"==typeof a.content)return a.content.slice(0,300);if(Array.isArray(a.content))try{return JSON.stringify(a.content).slice(0,300)}catch{}return""}(a,300),toolCallNames:function(a){if("assistant"===a.role&&Array.isArray(a.tool_calls)&&a.tool_calls.length>0){let b=a.tool_calls.map(a=>"function"===a.type?a.function.name:void 0).filter(a=>!!a);return b.length>0?b:void 0}}(a)};"system"===a.role?b.status="system":a.id&&j.has(a.id)?(b.status="sent",m++):a.id&&i.has(a.id)?(b.status="handoff-stripped",b.reason='Removed as FLUJO handoff plumbing (handoff tool-call / result, or synthetic "Continue").',r++):a.id&&h.has(a.id)?(b.status="scoped-out",b.reason=`Outside this node's input scope (inputMode: ${f??"full-history"}).`,q++):(b.status="folded",b.reason="Settled tool exchange folded away (a node with outputMode: latest-message).",p++),k.push(b)}return{systemMessage:null!=e?{content:e}:null,wireMessages:g.map(n),provenance:k,counts:{threaded:b.length,sent:m,folded:p,scopedOut:q,handoffStripped:r},inputMode:f}}c.d(b,{Qv:()=>h,Ui:()=>j,ae:()=>m,ij:()=>f,oH:()=>p})},22861:(a,b,c)=>{c.d(b,{R:()=>e,j:()=>d});let d="flujo://run/",e={autoCaptureEnabled:!0,textThresholdChars:8192,maxResourceBytes:0x3200000,maxConversationBytes:0x10000000,replaceLargeTextWithStub:!1}},26485:(a,b,c)=>{c.d(b,{E5:()=>g,Jp:()=>d,O:()=>f,g4:()=>e});let d="TOOL_CALL",e="FINAL_RESPONSE",f="ERROR",g="STAY_ON_NODE"},27386:(a,b,c)=>{c.d(b,{S$:()=>e,T9:()=>f,qW:()=>h});let d=/\$\{var:([^}]+)\}/g;function e(a,b){if("string"!=typeof a||0===a.length||!d.test(a))return a;let c=b??{};return a.replace(d,(a,b)=>{let d=b.trim(),e=c[d];return"string"==typeof e?e:(console.warn(`[resolveRunVars] unknown variable "${d}"; substituting empty string`),"")})}function f(a){let b;if("string"!=typeof a||0===a.length)return[];let c=new Set;for(d.lastIndex=0;null!==(b=d.exec(a));){let a=b[1].trim();a&&c.add(a)}return[...c]}let g=/^[A-Za-z_][\w-]*$/;function h(a){return"string"==typeof a&&g.test(a)}},33132:(a,b,c)=>{c.d(b,{Ul:()=>g,g2:()=>f,ng:()=>j,pf:()=>h});let d=/\$\{kv:([^}]+)\}/g,e=["global","flow","folder"];function f(a){let b=(a??"").trim(),c=b.indexOf("/");if(c>0){let a=b.slice(0,c);if(e.includes(a))return{scope:a,key:b.slice(c+1).trim()}}return{scope:"folder",key:b}}function g(a,b){if("string"!=typeof a||0===a.length||!d.test(a))return a;let c=b??{};return a.replace(d,(a,b)=>{let d=b.trim(),e=c[d];return"string"==typeof e?e:(console.warn(`[resolveKvRefs] unknown kv reference "${d}"; substituting empty string`),"")})}function h(a){let b;if("string"!=typeof a||0===a.length)return[];let c=new Set;for(d.lastIndex=0;null!==(b=d.exec(a));){let a=b[1].trim();a&&c.add(a)}return[...c]}let i=/^[A-Za-z_][\w-]*$/;function j(a){return"string"==typeof a&&i.test(a)}},34115:(a,b,c)=>{c.d(b,{LB:()=>r,Os:()=>u,UG:()=>x,cc:()=>v,jM:()=>y,u8:()=>t});var d=c(29021),e=c(33873),f=c.n(e),g=c(44479),h=c(18230),i=c(63129);let j=(0,h.h)("backend/execution/flow/conversationLog"),k=new Set(["run:start","run:done","node:enter","node:exit","handoff","message","message:removed","tool:call","tool:result","usage","subflow:start","subflow:done","resource:read","resource:write","error"]),l=/^[A-Za-z0-9_-]+$/,m=f().join((0,i.ok)(),"db","conversation-logs");function n(a){return f().join(m,`${a}.jsonl`)}let o=new Map;function p(a,b){let c=(o.get(a)??Promise.resolve()).catch(()=>{}).then(async()=>{await d.promises.mkdir(m,{recursive:!0}),await d.promises.appendFile(n(a),b)});return o.set(a,c),c.finally(()=>{o.get(a)===c&&o.delete(a)})}function q(a){return`${JSON.stringify(a)}
3
- `}function r(a){if(k.has(a.type)){if(!l.test(a.conversationId))return void j.warn("Refusing to log event for unsafe conversation id",{conversationId:a.conversationId});(function(a){try{if((0,g.isConversationDeleted)(a))return!1;let{FlowExecutor:b}=c(44561),d=b.conversationStates.get(a);if(!d)return!1;return!d.ephemeral}catch(b){return j.warn(`Could not resolve persistence policy for ${a}; not persisting.`,{err:b}),!1}})(a.conversationId)&&p(a.conversationId,q(a)).catch(b=>j.warn(`Failed to append event to conversation log ${a.conversationId}`,{err:b}))}}async function s(a,b){if(0===b.length||a.ephemeral)return;let c=a.conversationId;if(!c||!l.test(c)||(0,g.isConversationDeleted)(c))return;let d=b.map(a=>q({...a,conversationId:c,seq:-1,timestamp:Date.now()})).join("");try{await p(c,d)}catch(a){j.warn(`Failed to append ${b.length} event(s) to conversation log ${c}`,{err:a})}}function t(a){let b=o.get(a);return b?b.then(()=>void 0,()=>void 0):Promise.resolve()}async function u(a){let b;if(!l.test(a))return;try{b=await d.promises.readFile(n(a),"utf-8")}catch(b){if("ENOENT"===b.code)return;j.error(`Error reading conversation log ${a}:`,b);return}let c=[],e=0;for(let a of b.split("\n"))if(0!==a.trim().length)try{c.push(JSON.parse(a))}catch{e++}return e>0&&j.warn(`Skipped ${e} unparseable line(s) in conversation log ${a} (truncated append?)`),c}function v(a){let b=[],c=new Map;for(let d of a)if("message"===d.type){let a=d.message;if(!a||!a.id||"system"===a.role)continue;let e=d.depth??0,f=e>0?{...a,depth:e}:{...a},g=c.get(a.id);void 0!==g?b[g]=f:(c.set(a.id,b.length),b.push(f))}else if("message:removed"===d.type){let a=c.get(d.messageId);if(void 0===a)continue;for(let[e,f]of(b.splice(a,1),c.delete(d.messageId),c))f>a&&c.set(e,f-1)}return b}function w(a){return JSON.stringify([a.role,a.content,a.tool_calls??null,a.disabled??!1,a.processNodeId??null])}async function x(a,b){if(a.ephemeral)return;let c=a.conversationId;if(!c||!l.test(c))return;let d=(a.messages??[]).filter(a=>"system"!==a.role&&!!a.id),e=await z(c)?b.filter(a=>"system"!==a.role&&!!a.id):[],f=new Map(e.map(a=>[a.id,a])),g=new Set(d.map(a=>a.id)),h=[];for(let a of d){let b=f.get(a.id);b&&w(b)===w(a)||h.push({type:"message",message:a})}for(let a of e)g.has(a.id)||h.push({type:"message:removed",messageId:a.id});await s(a,h)}async function y(a){if(a.ephemeral)return!1;let b=a.conversationId;if(!b||!l.test(b))return!1;let c=await u(b);if(!c)return!1;let d=v(c).filter(a=>!((a.depth??0)>0)),e=(a.messages??[]).filter(a=>"system"!==a.role&&!!a.id).map(a=>a.id);if(d.length<=e.length)return!1;let f=new Set(d.map(a=>a.id));return!!e.every(a=>f.has(a))&&(j.info(`Recovered ${d.length-e.length} message(s) from the conversation log for ${b} (snapshot was behind).`),a.messages=d,!0)}async function z(a){if(!l.test(a))return!1;try{return await d.promises.access(n(a)),!0}catch{return!1}}},35796:(a,b,c)=>{c.d(b,{oO:()=>d});function d(a){let b=(a??"").replace(/\s+/g," ").trim();if(!b)return"New Conversation";let c=b,d=!1,e=c.split(" ");if(e.length>10&&(c=e.slice(0,10).join(" "),d=!0),c.length>60){let a=c.slice(0,60),b=a.lastIndexOf(" ");c=(b>0?a.slice(0,b):a).trimEnd(),d=!0}return d?`${c}…`:c}},43736:(a,b,c)=>{c.d(b,{B1:()=>k,J2:()=>j,JM:()=>h,W5:()=>g,ll:()=>l,pb:()=>i});var d=c(18230),e=c(71966);let f=(0,d.h)("backend/flow/execution/handlers/runResourceTools"),g="write_resource",h="read_resource";function i(a){return a===g||a===h}function j(){return{name:h,description:"Read the FULL content of a run resource by its flujo://run/... URI. When a prior tool result or tool-call argument was too large to include inline, the conversation shows a head excerpt plus a flujo://run/... marker; call this tool with that exact URI to retrieve the complete content.",inputSchema:{type:"object",properties:{uri:{type:"string",description:"The flujo://run/<conversationId>/<id> URI of the run resource to read."}},required:["uri"]}}}function k(a){let b=(a??[]).filter(a=>"produce"===a.role&&a.properties?.scope==="run"&&!!a.properties?.runName?.trim());if(0===b.length)return[];let c=Array.from(new Set(b.map(a=>a.properties.runName.trim()))),d=c.map(a=>`"${a}"`).join(", ");return[{name:g,description:`Produce/update a run artifact — a named data output of this flow run that later steps can read via \${res:NAME} and that appears in the run-data panel. Write the artifact's FULL content here rather than only describing it in your reply. This step is wired to produce: ${d}. Writing the same name again replaces the previous content (last write wins).`,inputSchema:{type:"object",properties:{name:{type:"string",description:`The artifact name to write. Use one of: ${c.join(", ")}.`},content:{type:"string",description:"The full content of the artifact (text/markdown)."}},required:["name","content"]}}]}async function l(a,b,c){if(a===h)return m(b,c);if(a!==g)return{success:!1,error:`Unknown run-resource tool: ${a}`};if(!c.conversationId||c.ephemeral)return{success:!1,error:"Run artifacts are not available in this run."};let d="string"==typeof b?.name?b.name.trim():"";if(!d)return{success:!1,error:'write_resource requires a non-empty "name".'};let i="string"==typeof b?.content?b.content:"";try{let a=await (0,e.tm)({conversationId:c.conversationId,name:d,mimeType:"text/markdown",kind:"text",data:{text:i},producedBy:{source:"capture",nodeId:c.node?.nodeId,nodeName:c.node?.nodeName}});if("skipped"in a)return f.warn("write_resource skipped by store cap",{name:d,reason:a.skipped}),{success:!1,error:`Artifact not stored (${a.skipped}).`};return c.emit?.({type:"resource:write",node:c.node,server:"flujo",uri:a.uri,name:d,mimeType:a.mimeType,size:a.size,source:"capture"}),f.info("write_resource stored run artifact",{name:d,uri:a.uri,size:a.size}),{success:!0,data:{written:!0,name:d,uri:a.uri,size:a.size}}}catch(a){return f.error("write_resource failed",a),{success:!1,error:a instanceof Error?a.message:String(a)}}}async function m(a,b){let c="string"==typeof a?.uri?a.uri.trim():"";if(!c)return{success:!1,error:'read_resource requires a non-empty "uri".'};let d=(0,e.Ns)(c);if(!d)return{success:!1,error:`Not a run-resource URI: ${c}`};if(b.conversationId&&d.conversationId!==b.conversationId)return{success:!1,error:`Run resource ${c} is not part of this run.`};try{let a=await (0,e.gy)(c,{at:Date.now(),source:"tool-read",nodeId:b.node?.nodeId});if(!a)return{success:!1,error:`Run resource not found: ${c}`};let{entry:d,contents:g}=a;b.emit?.({type:"resource:read",node:b.node,server:"flujo",uri:d.uri,name:d.name,mimeType:d.mimeType,size:d.size,source:"tool-read"});let h=(g.contents??[]).map(a=>"string"==typeof a.text?a.text:"").filter(a=>a.length>0),i=h.length>0?h.join("\n"):`[binary run resource ${d.mimeType??d.kind} (${d.size} bytes) at ${d.uri}]`;return f.info("read_resource served run resource",{uri:d.uri,size:d.size}),{success:!0,data:{uri:d.uri,name:d.name,mimeType:d.mimeType,content:i}}}catch(a){return f.error("read_resource failed",a),{success:!1,error:a instanceof Error?a.message:String(a)}}}},44479:(a,b,c)=>{c.r(b),c.d(b,{isCancelledByAncestry:()=>e,isConversationDeleted:()=>i,markConversationDeleted:()=>g,unmarkConversationDeleted:()=>h});var d=c(85701);function e(a,b){let c=a,e=new Set;for(let a=0;a<=d.A+1&&!(!c||e.has(c));a++){e.add(c);let a=b.get(c);if(!a)break;if(a.isCancelled)return!0;c=a.parentRunId}return!1}let f=new Set;function g(a){f.add(a)}function h(a){f.delete(a)}function i(a){return!!a&&f.has(a)}},44561:(a,b,c)=>{c.r(b),c.d(b,{FlowExecutor:()=>aG});var d=c(18230),e=c(26485),f=c(43304),g=c.n(f),h=c(86028),i=c(11659);let j=(0,d.h)("backend/execution/flow/pocketflow"),k="default";class l{constructor(){j.debug("BaseNode constructor called"),this.flow_params={},this.node_params={},this.successors=new Map}setParams(a,b){j.debug("setParams called with params",{params:a}),j.verbose("setParams input",{params:a,node_params:b}),this.flow_params=a,b&&(this.node_params=b),j.debug("setParams finished. flow_params count",{flow_params:this.flow_params?.length,node_params:this.node_params?.length}),j.verbose("setParams result",{flow_params:this.flow_params,node_params:this.node_params})}clone(){j.debug("clone called");let a=this._clone();return j.verbose("_clone result",{newNode:a}),a.flow_params=g()(this.flow_params),j.verbose("Cloned flow_params",{flow_params:a.flow_params}),a.node_params=g()(this.node_params),j.verbose("Cloned node_params",{node_params:a.node_params}),a.successors=new Map(this.successors),j.verbose("Cloned successors",{successors:a.successors}),j.verbose("clone finished"),a}addSuccessor(a,b=k){if(j.verbose(`addSuccessor called with action: ${b}`),this.successors.has(b))throw j.error(`Action ${b} already exists`),Error(`Action ${b} already exists`);this.successors.set(b,a),j.debug("addSuccessor finished. Successors",{successors:this.successors})}getSuccessor(a){if(j.debug(`getSuccessor called with name: ${a}`),!this.successors.has(a))return void j.error(`Successor ${a} not found`);let b=this.successors.get(a).clone();return j.debug("getSuccessor finished. Returning successor",{successor:b}),b}async execWrapper(a,b){j.debug("execWrapper called with prepResult",{prepResult:a}),j.verbose("execWrapper input",{prepResult:a,node_params:b});let c=await this.execCore(a,b);return j.debug("execWrapper finished. Result",{result:c}),j.verbose("execWrapper result",c),c}async run(a){j.debug("run called with sharedState",{sharedState:a}),j.debug("Current flow_params at start of run",{flow_params:this.flow_params}),j.verbose("run input",{sharedState:a,flow_params:this.flow_params,node_params:this.node_params});let b=await this.prep(a,this.node_params);j.verbose("run prepResult",b);let c=await this.execWrapper(b,this.node_params);j.verbose("run execResult",c);let d=await this.post(b,c,a,this.node_params);return j.debug("action",{action:d}),j.debug(`run finished. Returning action: ${d}`),j.verbose("run action result",{action:d,prepResult:b,execResult:c}),{action:d,prepResult:b,execResult:c}}}class m extends l{constructor(a){j.debug("Flow constructor called with start",{start:a}),super(),this.start=a}_clone(){j.debug("Flow _clone called");let a=new m(this.start);return j.debug("Flow _clone finished. Returning",{newFlow:a}),a}async getStartNode(){j.debug("getStartNode called");let a=this.start.clone();return j.debug("getStartNode finished. Returning",{clonedStart:a}),a}async execCore(a){throw j.error("Flow node does not support direct execution"),j.verbose("Flow execCore error",{error:"Flow node does not support direct execution"}),Error("Flow node does not support direct execution")}async prep(a,b){return j.debug("Flow prep called with sharedState",{sharedState:a}),j.verbose("Flow prep input",{sharedState:a,node_params:b}),j.debug("Flow prep finished. Returning empty object"),j.verbose("Flow prep result",{}),{}}async post(a,b,c,d){return j.debug("Flow post called with prepResult, execResult, and sharedState",{prepResult:a,execResult:b,sharedState:c}),j.verbose("Flow post input",{prepResult:a,execResult:b,node_params:d}),j.debug("Flow post finished. Returning DEFAULT_ACTION"),j.verbose("Flow post result",{action:k}),k}}let n=(0,d.h)("execution/nodes/StartNode.ts");class o extends l{async prep(a,b){n.info("prep() started");let c=b?.properties?.promptTemplate||"";n.info("Extracted promptTemplate",{promptTemplateLength:c.length,promptTemplatePreview:c.length>100?c.substring(0,100)+"...":c});let d={nodeId:b?.id||"",nodeType:"start",systemPrompt:c};return n.info("prep() completed"),d}async execCore(a,b){n.info("execCore() started"),n.verbose("execCore() prepResult",JSON.stringify(a));let c={success:!0};return n.verbose("execCore() execResult",JSON.stringify(c)),n.info("execCore() completed"),c}async post(a,b,c,d){if(n.info("post() started"),n.verbose("post() inputs",JSON.stringify({prepResult:a,execResult:b,nodeParams:d})),h.G.ENABLE_EXECUTION_TRACKER&&Array.isArray(c.trackingInfo.nodeExecutionTracker)&&(c.trackingInfo.nodeExecutionTracker.push({nodeType:"StartNode",nodeId:d?.id||"unknown",nodeName:d?.properties?.name||"Start Node",timestamp:new Date().toISOString()}),n.info("Added StartNode tracking information")),a.systemPrompt){let b={role:"system",content:a.systemPrompt,id:crypto.randomUUID(),timestamp:Date.now()};c.messages.some(a=>"system"===a.role)||(c.messages.push(b),n.debug("Added system message",{contentLength:"string"==typeof b.content?b.content.length:"non-string content",contentPreview:"string"==typeof b.content&&b.content.length>50?b.content.substring(0,50)+"...":b.content}))}n.info("Successors object:",{hasSuccessors:!!this.successors,isMap:this.successors instanceof Map,type:typeof this.successors});let e=this.successors instanceof Map?Array.from(this.successors.keys()):Object.keys(this.successors||{});if(n.info("Actions:",{actionsCount:e.length,actions:e}),e.length>0){let a=e[0];return n.info(`post() completed, returning action: ${a}`),a}return n.info("post() completed, returning default action"),"default"}_clone(){return new o}}var p=c(12763),q=c(82464),r=c(8336);c(87507);let s=(0,d.h)("backend/utils/PromptRenderer");class t{async renderPrompt(a,b,c){let d=c?.renderMode||"rendered",e=c?.includeConversationHistory||!1;s.info(`Rendering prompt for node ${b} in flow ${a}`,{renderMode:d,includeConversationHistory:e});let{prompt:f,excludeModelPrompt:g,excludeStartNodePrompt:h,excludeSystemPrompt:i}=await this.findNodePrompt(b,a),j=c?.excludeModelPrompt!==void 0?c?.excludeModelPrompt:g,k=c?.excludeStartNodePrompt!==void 0?c?.excludeStartNodePrompt:h,l=c?.excludeSystemPrompt!==void 0?c?.excludeSystemPrompt:i;s.debug("Exclusion settings",{excludeModelPrompt:j,excludeStartNodePrompt:k,excludeSystemPrompt:l,fromOptions:{excludeModelPrompt:c?.excludeModelPrompt!==void 0,excludeStartNodePrompt:c?.excludeStartNodePrompt!==void 0,excludeSystemPrompt:c?.excludeSystemPrompt!==void 0}});let m="",n=null;if(!k){let b=await this.findStartNodePrompt(a);b&&(s.debug("Adding start node prompt",{length:b.length}),m+=b+"\n\n")}if(!j){let c=await this.findModelPrompt(b,a);c.prompt&&(s.debug("Adding model prompt",{modelId:c.modelId,length:c.prompt.length}),m+=c.prompt+"\n\n"),n=c.functionCallingSchema,c.reasoningSchema&&(m+=`Please use the following pattern to mark your reasoning: ${c.reasoningSchema}
4
-
5
- `),n&&(m+=`Please use the following pattern to use a tool: ${n}
6
-
7
- `)}return l||(m+=`# GENERAL INFORMATION:
8
- `,m+=`You are operating in a workflow with other agents, each with it's own responsibilities.
9
- `,m+=`You will receive a message from the user which may contain tasks that are outside of your scope.
10
- `,m+=`Focus on the part of the user-message that can be accomplished using the tools provided to you.
11
-
12
- `,m+=`You may do multiple tool calls.
13
-
14
- `,m+=`After you completed the user's request to the best of your ability, you can use the 'handoff_to_xxxx' tool.
15
-
16
- `,m+=`The processing may be handed back to you as part of a loop. In this case repeat processing your instructions as if you were executing them for the first time.
17
-
18
- `),f&&(m+=`# YOUR OPERATIONAL INSTRUCTION:
19
- `,s.debug("Adding node prompt",{length:f.length}),m+=f+`
20
- `),m=await this.resolveBindings(m,d,n,c?.onResourceRead),e&&(s.debug("Adding conversation history placeholder"),m+="\n\n[Conversation History will be included here]"),s.info("Prompt rendering completed",{totalLength:m.length,hasStartNodePrompt:!k,hasModelPrompt:!j,hasSystemPrompt:!l,hasNodePrompt:!!f,includesConversationHistory:e}),m}async findStartNodePrompt(a){s.debug(`Finding start node prompt for flow ${a}`);let b=await i.flowService.getFlow(a);if(!b)return s.warn(`Flow not found: ${a}`),"";let c=b.nodes.find(a=>"start"===a.type);if(!c)return s.warn(`Start node not found in flow: ${a}`),"";let d=c.data.properties?.promptTemplate||"";return s.debug("Found start node prompt",{nodeId:c.id,length:d.length}),d}async findModelPrompt(a,b){s.debug(`Finding model prompt for node ${a} in flow ${b}`);let c=await i.flowService.getFlow(b);if(!c)return s.warn(`Flow not found: ${b}`),{prompt:"",modelId:null,reasoningSchema:null,functionCallingSchema:null};let d=c.nodes.find(b=>b.id===a);if(!d)return s.warn(`Node not found: ${a} in flow: ${b}`),{prompt:"",modelId:null,reasoningSchema:null,functionCallingSchema:null};let e=d.data.properties?.boundModel;if(!e)return s.debug(`No model bound to node ${a}`),{prompt:"",modelId:null,reasoningSchema:null,functionCallingSchema:null};let f=await p.modelService.getModel(e);if(!f)return s.warn(`Model not found: ${e}`),{prompt:"",modelId:null,reasoningSchema:null,functionCallingSchema:null};let g=f.promptTemplate||"",h=f.reasoningSchema||null,j=f.functionCallingSchema||null;return s.debug("Found model prompt",{modelId:e,modelName:f.name,length:g.length}),{prompt:g,modelId:e,reasoningSchema:h,functionCallingSchema:j}}async findNodePrompt(a,b){s.debug(`Finding node prompt for node ${a} in flow ${b}`);let c=await i.flowService.getFlow(b);if(!c)return s.warn(`Flow not found: ${b}`),{prompt:"",excludeModelPrompt:!1,excludeStartNodePrompt:!1,excludeSystemPrompt:!1};let d=c.nodes.find(b=>b.id===a);if(!d)return s.warn(`Node not found: ${a} in flow: ${b}`),{prompt:"",excludeModelPrompt:!1,excludeStartNodePrompt:!1,excludeSystemPrompt:!1};let e=d.data.properties?.promptTemplate||"",f=d.data.properties?.excludeModelPrompt||!1,g=d.data.properties?.excludeStartNodePrompt||!1,h=d.data.properties?.excludeSystemPrompt||!1;return s.debug("Found node prompt and settings",{length:e.length,excludeModelPrompt:f,excludeStartNodePrompt:g,excludeSystemPrompt:h}),{prompt:e,excludeModelPrompt:f,excludeStartNodePrompt:g,excludeSystemPrompt:h}}async resolveBindings(a,b,c,d){b="raw";let e=(0,r.A$)(a);if(0===e.length)return a;s.debug(`Resolving ${e.length} binding pills`,{renderMode:b});let f=this.resolveFormatType(c),g="",h=0;for(let c of e)g+=a.slice(h,c.index),h=c.index+c.fullMatch.length,"resource"===c.kind?g+=await this.renderResourceBinding(c.server,c.name,d):"raw"===b?g+=c.fullMatch:g+=await this.renderToolBinding(c.server,c.name,f,c.fullMatch);return g+=a.slice(h),s.debug("Resolved binding pills"),g}resolveFormatType(a){return a?a.includes('"tool"')&&a.includes('"parameters"')?"json":a.includes("<")&&a.includes("</")?"xml":"text":"text"}async ensureConnected(a){let b=await q.mcpService.getServerStatus(a);return"connected"!==b.status&&(s.debug(`force connect ${a}`),await q.mcpService.connectServer(a),b=await q.mcpService.getServerStatus(a)),"connected"===b.status}async renderToolBinding(a,b,c,d){for(let e=0;e<3;e++){try{if(await this.ensureConnected(a)){let d=await q.mcpService.listServerTools(a),e=d.tools?.find(a=>a.name===b);if(e)switch(c){case"json":return this.formatToolDescriptionJSON(a,b,e);case"xml":return this.formatToolDescriptionXML(a,b,e);default:{let c=this.formatToolParameters(e);return`[The user is referencing a tool \`tool:${a}__${b}\` (${e.description||"No description"})${c}]`}}s.warn(`Tool not found: ${b} in server ${a}`)}else s.warn(`Server not connected: ${a}`)}catch(a){s.warn(`Error resolving tool pill (attempt ${e+1}): ${d}`,a)}await this.delay(100*Math.pow(2,e+1))}return s.error(`Failed to resolve tool pill after multiple retries: ${d}`),d}async renderResourceBinding(a,b,c){for(let d=0;d<3;d++){try{if(await this.ensureConnected(a)){let d=await q.mcpService.readResource(a,b);if(d.success&&d.data){let e=this.formatResourceContents(d.data);try{let e=d.data?.contents?.[0];c?.({server:a,uri:b,mimeType:e?.mimeType,size:"string"==typeof e?.text?e.text.length:"string"==typeof e?.blob?Math.floor(3*e.blob.length/4):void 0})}catch{}return`
21
- [Resource ${b} (from ${a})]:
22
- ${e}
23
- `}return s.warn(`Failed to read resource ${b} from ${a}: ${d.error}`),`[Resource ${b} from ${a} could not be read: ${d.error||"unknown error"}]`}s.warn(`Server not connected for resource read: ${a}`)}catch(a){s.warn(`Error resolving resource pill (attempt ${d+1}): ${b}`,a)}await this.delay(100*Math.pow(2,d+1))}return`[Resource ${b} from ${a} is currently unavailable]`}formatResourceContents(a){let b=a?.contents;return Array.isArray(b)&&0!==b.length?b.map(a=>{if("string"==typeof a.text)return a.text;if("string"==typeof a.blob){let b=Math.round(3*a.blob.length/4/1024);return`[binary ${a.mimeType||"data"} (~${b} KB)${a.uri?` at ${a.uri}`:""} — not inlined; readable via MCP resources/read]`}return JSON.stringify(a)}).join("\n\n"):"(empty resource)"}formatToolDescriptionJSON(a,b,c){let d={tool:`${b}`,parameters:{}};if(c.inputSchema?.properties)for(let a in c.inputSchema.properties){let b=c.inputSchema.properties[a];d.parameters[a]=b.description||a}return`[Tool: \`tool:${a}__${b}\` (${c.description||"No description"})
24
- Example usage:
25
- ${JSON.stringify(d,null,2)}]`}formatToolDescriptionXML(a,b,c){let d=`<${b}>
26
- `;if(c.inputSchema?.properties)for(let a in c.inputSchema.properties){let b=c.inputSchema.properties[a];d+=` <${a}>${b.description||a}</${a}>
27
- `}return d+=`</${b}>`,`[Tool: \`tool:${a}__${b}\` (${c.description||"No description"})
28
- Example usage:
29
- ${d}]`}formatToolParameters(a){if(!a.inputSchema||!a.inputSchema.properties)return"";let b=[];for(let c in a.inputSchema.properties){let d=a.inputSchema.properties[c],e=d.description?`(${d.description})`:"";b.push(`\`${c}\` ${e}`)}return b.length>0?` with parameters ${b.join(", ")}`:""}delay(a){return new Promise(b=>setTimeout(b,a))}}let u=new t;var v=c(70834),w=c(80808),x=c(71966);let y=(0,d.h)("backend/flow/execution/handlers/ResourceHandler");function z(a,b,c){let d=Array.isArray(c?.contents)?c.contents:[];if(0===d.length)return`### ${a}
30
- (empty resource — ${b})
31
- `;let e=d.map(a=>{if("string"==typeof a.text)return a.text;if("string"==typeof a.blob){let b=Math.round(3*a.blob.length/4/1024);return`[binary ${a.mimeType||"data"} (~${b} KB)${a.uri?` at ${a.uri}`:""} — not inlined; readable via MCP resources/read]`}return JSON.stringify(a)}).join("\n\n");return`### ${a} (${b})
32
- ${e}
33
- `}class A{static async processResourceNodes(a){let b=(a.resourceNodes??[]).filter(a=>"consume"===a.role);if(0===b.length)return"";let c=[];for(let d of b){let b=d.properties??{},e=b.name||b.runName||b.uri||d.id;try{if("run"===b.scope){let f=b.runName?.trim();if(!f){c.push(`### ${e}
34
- (run artifact with no name — configure the resource node)
35
- `);continue}if(!a.conversationId){c.push(`### ${e}
36
- (run artifact "${f}" is not available in this run)
37
- `);continue}let g=await (0,x.FA)(a.conversationId,f);if(!g){c.push(`### ${e}
38
- (run artifact "${f}" has not been produced yet)
39
- `);continue}let h=await (0,x.gy)(g.uri,{at:Date.now(),source:"node",nodeId:d.id});if(!h){c.push(`### ${e}
40
- (run artifact "${f}" could not be read)
41
- `);continue}c.push(z(e,g.uri,h.contents)),a.emit?.({type:"resource:read",node:{nodeId:d.id,nodeName:b.name,nodeType:"resource"},server:"flujo",uri:g.uri,name:f,mimeType:g.mimeType,size:g.size,source:"node"})}else{let f=b.boundServer,g=b.uri;if(!f||!g){c.push(`### ${e}
42
- (resource node is not fully bound — set server and uri)
43
- `);continue}let h=await q.mcpService.readResource(f,g);if(!h.success||!h.data){c.push(`### ${e}
44
- (resource ${g} on ${f} could not be read: ${h.error??"unknown error"})
45
- `);continue}c.push(z(e,`${g} from ${f}`,h.data));let i=h.data.contents?.[0];a.emit?.({type:"resource:read",node:{nodeId:d.id,nodeName:b.name,nodeType:"resource"},server:f,uri:g,name:b.name,mimeType:i?.mimeType??b.mimeType,size:"string"==typeof i?.text?i.text.length:"string"==typeof i?.blob?Math.floor(3*i.blob.length/4):void 0,source:"node"})}}catch(a){y.error(`Failed to read resource node ${d.id}; injecting a note`,a),c.push(`### ${e}
46
- (resource is currently unavailable)
47
- `)}}return`
48
-
49
- ## Resources
50
- The following data artifacts are wired to this step:
51
-
52
- ${c.join("\n")}`}}var B=c(43736),C=c(22861),D=c(18975),E=c(85701);function F(a,b){let c=a.replace(/\s+/g," ").trim();if(c.length<=b)return c;let d=c.slice(0,b),e=d.lastIndexOf(" ");return`${(e>.6*b?d.slice(0,e):d).trimEnd()}…`}let G=(0,d.h)("backend/execution/flow/buildHandoffDescription");async function H(a,b){if(!a)return;if(b.modelNames.has(a))return b.modelNames.get(a);let c=a;try{let b=await p.modelService.getModel(a);b&&(c=b.displayName&&b.displayName.trim()||b.name||a)}catch(b){G.debug("resolveModelName failed; using raw id",{modelId:a,err:b})}return b.modelNames.set(a,c),c}async function I(a,b){if(b.serverConnected.has(a))return b.serverConnected.get(a);let c=!1;try{let b=await q.mcpService.getServerStatus(a);c=b?.status==="connected"}catch(b){G.debug("getServerStatus failed; treating server as offline",{server:a,err:b})}return b.serverConnected.set(a,c),c}async function J(a,b){if(b.flows.has(a))return b.flows.get(a);let c=null;try{c=await i.flowService.getFlow(a)}catch(b){G.debug("getFlow failed while summarising subflow",{flowId:a,err:b})}return b.flows.set(a,c),c}async function K(a,b){let c=Array.isArray(a.mcpNodes)?a.mcpNodes:[],d=[],e=new Set;for(let a of c){let c=a?.properties?.boundServer;if(!c||e.has(c))continue;e.add(c);let f=await I(c,b),g=Array.isArray(a?.properties?.enabledTools)?a.properties.enabledTools:[];d.push({name:c,connected:f,tools:f?g:void 0})}return d}async function L(a,b,c,d){let e=a.data?.type||a.type||"unknown",f=a.data?.label||"Unknown Node",g=a.data?.properties||{},h=a.data?.description,i={label:f,type:e,userDescription:h};if(h&&h.trim())return i;if("subflow"===e){let a=g.subflowId;if(!a)return i.subflowMissing=!0,i;if(b+1>E.A||d.has(a)){i.depthCapReached=!0;let b=await J(a,c);return i.subflowName=b?.name,i}let e=await J(a,c);if(!e)return i.subflowMissing=!0,i;i.subflowName=e.name;let f=new Set(d);f.add(a);let h=(e.nodes||[]).filter(a=>a.data?.type==="process"||a.data?.type==="subflow"||"process"===a.type||"subflow"===a.type);for(let a of(i.children=[],h))i.children.push(await L(a,b+1,c,f));return i}i.modelName=await H(g.boundModel,c);let j=g.promptTemplate;return"string"==typeof j&&j.trim()&&(i.promptSummary=j),i.servers=await K(g,c),i}async function M(a){try{let b=await L(a,0,{modelNames:new Map,serverConnected:new Map,flows:new Map},new Set);return function(a){if(a.userDescription&&a.userDescription.trim())return F(a.userDescription,1500);let b=`Hand off execution to ${a.label} (${a.type}).`,c=[];!function a(b,c,d){let e=" ".repeat(c);if(b.userDescription&&b.userDescription.trim())return void d.push(`${e}${F(b.userDescription,200)}`);if("subflow"===b.type){if(b.subflowMissing)return void d.push(`${e}Runs a subflow (referenced flow not found).`);if(b.subflowDetailsUnavailable){let a=b.subflowName?` "${b.subflowName}"`:"";d.push(`${e}Runs a subflow${a} (contents summarised when the flow runs).`);return}if(d.push(`${e}Runs the subflow "${b.subflowName??"unknown"}", which contains:`),b.depthCapReached)return void d.push(`${e} (nested subflows omitted — recursion depth limit reached)`);let f=b.children??[];if(0===f.length)return void d.push(`${e} (no process or subflow steps)`);for(let b of f.slice(0,10))d.push(`${e} - ${b.label}:`),a(b,c+2,d);return void(f.length>10&&d.push(`${e} - …and ${f.length-10} more step(s)`))}if(b.modelName&&d.push(`${e}Model: ${b.modelName}`),b.promptSummary&&d.push(`${e}Role: ${F(b.promptSummary,200)}`),b.servers&&b.servers.length>0)for(let a of b.servers)if(a.connected&&a.tools&&a.tools.length>0){let b=a.tools.slice(0,10),c=a.tools.length-b.length,f=c>0?`, +${c} more`:"";d.push(`${e}Tools (${a.name}): ${b.join(", ")}${f}`)}else d.push(`${e}Tools (${a.name}): server not connected`)}(a,0,c);let d=c.join("\n").trim(),e=d?`${b}
53
- ${d}`:b;if(e.length<=1500)return e;let f=1500-b.length-2;return f<=0?b:`${b}
54
- ${F(d,f)}`}(b)}catch(d){let b=a.data?.label||"Unknown Node",c=a.data?.type||a.type||"unknown";return G.warn("buildHandoffDescription failed; falling back to basic description",{label:b,type:c,err:d}),`Hand off execution to ${b} (${c})`}}let N="handoff_to_";var O=c(78606),P=c(27386);let Q=(0,d.h)("backend/flow/execution/resolveRunResourceRefs"),R=/\$\{res:([^}]+)\}/g;async function S(a,b,c,d){if(!a||!a.includes("${res:")||!b)return a?a.replace(R,""):a;R.lastIndex=0;let e=new Set;for(let b=R.exec(a);b;b=R.exec(a))e.add(b[1]);let f=new Map;for(let a of e){let e="";try{let f=await (0,x.FA)(b,a.trim());if(f){let b=await (0,x.gy)(f.uri,{at:Date.now(),source:"res-ref",nodeId:d?.nodeId});if(b){let h=b.contents.contents[0];if(h&&"string"==typeof h.text&&"link"!==f.kind)e=`
55
- --- resource ${a} (${f.uri}) ---
56
- ${h.text}
57
- --- end resource ${a} ---
58
- `;else{var g;e=`[run resource "${a}": ${f.mimeType??f.kind} (${(g=f.size)<1024?`${g} B`:g<1048576?`${Math.round(g/1024)} KB`:`${(g/1048576).toFixed(1)} MB`}) at ${f.uri} — readable via the 'flujo' MCP server]`}c?.({type:"resource:read",node:d,server:"flujo",uri:f.uri,name:a,mimeType:f.mimeType,size:f.size,source:"res-ref"})}else Q.warn(`\${res:${a}} entry exists but payload read failed; resolving to ''`,{uri:f.uri})}else Q.warn(`\${res:${a}} has no matching run resource; resolving to ''`,{conversationId:b})}catch(b){Q.error(`Failed to resolve \${res:${a}}; resolving to ''`,b)}f.set(a,e)}return a.replace(R,(a,b)=>f.get(b)??"")}var T=c(55511),U=c(33132),V=c(51172);let W=(0,d.h)("backend/flow/execution/resolveKvNodeRefs"),X=/^[A-Za-z0-9_-]{1,64}$/;function Y(a,b){if("global"===a)return"global";let c=()=>{let a=b.flowId;return a&&X.test(a)?`flow-${a}`:"global"};if("flow"===a)return c();let d=b.folder?.trim();if(d){let a=(0,T.createHash)("sha256").update(d).digest("hex").slice(0,32);return`folder-${a}`}return c()}async function Z(a,b){if("string"!=typeof a||!a.includes("${kv:"))return a;let c=(0,U.pf)(a),d={};for(let a of c){let{scope:c,key:e}=(0,U.g2)(a);if(!(0,U.ng)(e)){W.warn(`\${kv:${a}} has an invalid key; resolving to ''`),d[a]="";continue}try{let f=await (0,V.M3)(Y(c,b),e);d[a]=f??""}catch(b){W.error(`Failed to resolve \${kv:${a}}; resolving to ''`,b),d[a]=""}}return(0,U.Ul)(a,d)}async function $(a,b,c){let{scope:d,key:e}=(0,U.g2)(a);return(0,U.ng)(e)?(0,V.or)(Y(d,c),e,b??""):{skipped:"invalid-name"}}var _=c(89850);let aa=(0,d.h)("backend/flow/execution/nodes/ProcessNode");class ab extends l{async generateHandoffTools(a){aa.info("Generating handoff tools");let b=(this.successors instanceof Map?Array.from(this.successors.keys()):Object.keys(this.successors||{})).filter(a=>!a.includes("-mcpEdge")&&!a.endsWith("mcpEdge")&&!a.includes("-mcp"));aa.debug("Found standard actions for handoff tools",{actionsCount:b.length,actions:b});let c=[],d=new Set;for(let a of b){let b=this.successors instanceof Map?this.successors.get(a):this.successors[a];if(!b){aa.warn(`Target node not found for edge ${a}`);continue}let e=b.node_params?.id||"unknown";d.has(e)||(d.add(e),c.push({id:e,label:b.node_params?.label||"Unknown Node",type:b.node_params?.type||"unknown"}))}let e=function(a){let b=new Set,c=new Map;for(let d of a){if(c.has(d.id))continue;let a=function(a,b){let c=(a&&a.trim()||b&&b.trim()||"node").toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/_+/g,"_").replace(/^_+|_+$/g,"");return c.length>48&&(c=c.slice(0,48).replace(/_+$/g,"")),c||(c=b&&b.trim().toLowerCase().replace(/[^a-z0-9]+/g,"_")||"node"),c||"node"}(d.label,d.type),e=`${N}${a}`;if(b.has(e)){let c=2;for(;b.has(`${N}${a}_${c}`);)c++;e=`${N}${a}_${c}`}b.add(e),c.set(d.id,e)}return c}(c);a.handoffNameMap=a.handoffNameMap||{};let f=null;try{let b=await i.flowService.getFlow(a.flowId);b&&(f=new Map(b.nodes.map(a=>[a.id,a])))}catch(a){aa.warn("Could not load flow for handoff descriptions; using basic descriptions",{err:a})}let g=[];for(let b of c){let c=e.get(b.id)||`handoff_to_${b.id}`;a.handoffNameMap[c]=b.id;let d=f?.get(b.id),h=d?await M(d):`Hand off execution to ${b.label} (${b.type})`,i=d?.data?.properties,j="subflow"===b.type&&i?.allowCallerFanout===!0,k="subflow"===b.type&&i?.inputMode==="isolated"&&i?.allowCallerPrompt===!0,l=k&&i?.allowCallerFanout!==!0&&!i?.promptTemplate?.trim(),m={},n=[],o=[];j?(m.task={type:"string",description:"The brief for this spawned instance of the sub-agent: what this one copy should work on. Optional; omit it (and call the tool once) for a plain handoff."},o.push('PARALLEL SPAWNING: You may call this tool MULTIPLE TIMES in the SAME response — each call spawns one parallel instance of this sub-agent, briefed with that call\'s "task". All instances run concurrently in the background; their results are merged in call order and the flow continues once every instance has finished. To split work, make one call per sub-task, each with a specific, self-contained "task".')):k&&(m.prompt={type:"string",description:l?"REQUIRED initial brief/instruction for the target subflow (isolated mode). The subflow has no authored message of its own, so you MUST supply what it should work on — omitting it makes the subflow start with an empty prompt and stall.":"Instruction/prompt to run the target subflow with (isolated mode). Optional; omitted falls back to the subflow's default prompt."},l?(n.push("prompt"),o.push('You MUST pass a "prompt" argument instructing the target subflow — it has no authored message of its own.')):o.push('Optionally pass a "prompt" argument to instruct the target subflow; omit it to use its default prompt.'));let p=Object.keys(m).length>0;g.push({name:c,description:o.length>0?`${h}
59
-
60
- ${o.join("\n\n")}`:h,inputSchema:{type:"object",properties:p?m:{},required:n}}),aa.debug("Created handoff tool",{toolName:c,targetNodeId:b.id,targetNodeLabel:b.label})}return aa.info("Generated handoff tools",{toolsCount:g.length}),g}async prep(a,b){aa.info("prep() started");let c=b?.id,d=a.flowId,e=b?.properties?.boundModel,f=b?.properties?.excludeModelPrompt||!1,g=b?.properties?.excludeStartNodePrompt||!1,j=b?.properties?.excludeSystemPrompt||!1;if(aa.debug("Extracted properties",{nodeId:c,flowId:d,boundModel:e,excludeModelPrompt:f,excludeStartNodePrompt:g,excludeSystemPrompt:j}),!c||!d)throw aa.error("Missing required node or flow ID",{nodeId:c,flowId:d}),Error("Process node requires node ID and flow ID");if(!e)throw aa.error("Missing bound model"),Error("Process node requires a bound model");aa.info("Using promptRenderer to build the complete prompt");let k=await u.renderPrompt(d,c,{renderMode:"rendered",includeConversationHistory:!1,excludeModelPrompt:f,excludeStartNodePrompt:g,excludeSystemPrompt:j,onResourceRead:b=>a.emit?.({type:"resource:read",node:{nodeId:c},source:"pill",...b})}),l=await S((0,P.S$)(k,a.variables),a.ephemeral?void 0:a.conversationId,a.emit,{nodeId:c}),m=null,n=async()=>{let a;if(m)return m;try{a=(await i.flowService.getFlow(d))?.folder}catch{}return m={flowId:d,folder:a}};l.includes("${kv:")&&(l=await Z(l,await n()));let o=b?.properties?.resourceNodes||[];o.length>0&&(l+=await A.processResourceNodes({resourceNodes:o,conversationId:a.ephemeral?void 0:a.conversationId,emit:a.emit})),aa.debug("Prompt rendered successfully",{completePromptLength:l.length,completePromptPreview:l.length>100?l.substring(0,100)+"...":l}),a.currentNodeId=c;let p=[];if(a.mcpContext&&a.mcpContext.availableTools&&a.mcpContext.availableTools.length>0)aa.info("Using MCP tools from shared state",{toolsCount:a.mcpContext.availableTools.length}),p=a.mcpContext.availableTools;else{let a=b?.properties?.mcpNodes||[];if(a.length>0){aa.info("No MCP tools found in shared state, processing MCP nodes",{mcpNodesCount:a.length});let b=await v.ToolHandler.processMCPNodes({mcpNodes:a});if(!b.success)throw aa.error("Failed to process MCP nodes",{error:b.error}),Error(`Failed to process MCP nodes: ${b.error.message}`);p=b.value.availableTools}}p=[...p,...await this.generateHandoffTools(a)];let q=(0,B.B1)(b?.properties?.resourceNodes);for(let b of(q.length>0&&(p=[...p,...q]),a.toolNameMap=a.toolNameMap||{},p))b.server&&b.originalName&&(a.toolNameMap[b.name]={server:b.server,tool:b.originalName,timeout:b.timeout});let r={nodeId:c,nodeType:"process",currentPrompt:l,boundModel:e,availableTools:p,messages:[],conversationId:a.conversationId,requireToolApproval:a.requireApproval??!1},s={id:(0,_.A)(),role:"system",content:l,timestamp:Date.now()};aa.info("Added system message from prompt template",{contentLength:l.length,contentPreview:l.length>100?l.substring(0,100)+"...":l}),r.messages=(0,D.Ui)(a.messages,s);let t=b?.properties?.inputMode??"full-history",w=r.messages;try{let a=await i.flowService.getFlow(d),b=new Set((a?.nodes??[]).filter(a=>"process"===a.type&&a.data?.properties?.outputMode==="latest-message").map(a=>a.id));w=(0,D.Qv)(r.messages,b)}catch(a){aa.warn("Could not resolve outputMode collapse set; sending the full wire view",{err:a})}if("full-history"!==t||w!==r.messages){let d=b?.properties?.isolatedPrompt,e=void 0!==d?await S((0,P.S$)(d,a.variables),a.ephemeral?void 0:a.conversationId,a.emit,{nodeId:c}):d;"string"==typeof e&&e.includes("${kv:")&&(e=await Z(e,await n())),r.wireMessages=(0,D.ij)(w,t,e)}if((r.wireMessages??w).some(a=>JSON.stringify(a).includes(C.j))&&!p.some(a=>a.name===B.JM)&&p.push((0,B.J2)()),aa.info("Assembled node context",{systemMessageCount:1,totalMessageCount:r.messages.length,inputMode:t,wireMessageCount:r.wireMessages?.length}),a.debugMode||h.G.ENABLE_EXECUTION_TRACKER)try{r.modelInput=(0,D.oH)({threaded:r.messages,foldedView:w,scopedView:r.wireMessages??w,systemContent:l,inputMode:t}),r.modelInputs=[r.modelInput]}catch(a){aa.warn("Could not derive model-input debug view",{err:a})}return aa.info("prep() completed",{completePromptLength:l.length,boundModel:e,hasTools:!!r.availableTools?.length,toolsCount:r.availableTools?.length||0,messagesCount:r.messages.length}),r}async execCore(a,b){aa.info("execCore() started",{boundModel:a.boundModel,promptLength:a.currentPrompt?.length,messagesCount:a.messages?.length||0}),aa.debug("execCore() prepResult",a);try{let c,d;if(a.availableTools&&a.availableTools.length>0){let b=v.ToolHandler.prepareTools({availableTools:a.availableTools});if(!b.success)throw aa.error("Failed to prepare tools",{error:b.error}),Error(`Failed to prepare tools: ${b.error.message}`);d=b.value.tools}let e={};for(let b of a.availableTools??[])b.server&&b.originalName&&(e[b.name]={server:b.server,tool:b.originalName,timeout:b.timeout});let f=b?.label||b?.properties?.name||"Process Node",g=a.messages&&a.messages.length>0?a.messages[a.messages.length-1]:null;aa.debug(`[ProcessNode ${a.nodeId}] Calling ModelHandler.callModel`,{modelId:a.boundModel,messageCount:a.messages?.length||0,toolCount:d?.length||0,lastMessageType:g?.role,lastMessageToolCallId:g?.role==="tool"?g.tool_call_id:void 0,lastMessageContentPreview:"string"==typeof g?.content?g.content.substring(0,100)+"...":"(non-string content)"});try{(c=await w.s.callModel({modelId:a.boundModel,prompt:a.currentPrompt,messages:a.messages,wireMessages:a.wireMessages,tools:d,iteration:1,maxIterations:1,maxTurns:b?.properties?.maxTurns,nodeName:f,nodeId:a.nodeId,toolNameMap:e,conversationId:a.conversationId,requireToolApproval:a.requireToolApproval})).success?aa.debug(`[ProcessNode ${a.nodeId}] ModelHandler.callModel returned successfully`,{success:!0,hasContent:!!c.value?.content,contentLength:c.value?.content?.length||0,toolCallsCount:c.value?.toolCalls?.length||0}):aa.warn(`[ProcessNode ${a.nodeId}] ModelHandler.callModel returned failure state unexpectedly here`,{success:!1,error:c.error})}catch(b){throw aa.error(`[ProcessNode ${a.nodeId}] Error calling ModelHandler.callModel`,{error:b}),b}finally{aa.debug(`[ProcessNode ${a.nodeId}] Finished attempt to call ModelHandler.callModel`)}if(!c||!c.success){let a=c?.error||{message:"Unknown model execution error after call attempt."};aa.error("Model execution error after call attempt",{error:a});let b=Error(`Model execution failed: ${c.error.message}`);throw b.isModelError=!0,b.details={message:c.error.message,type:c.error.type,code:c.error.code,..."model"===c.error.type?{modelId:c.error.modelId}:{},param:"string"==typeof c.error.details?.param?c.error.details.param:void 0,status:"number"==typeof c.error.details?.status?c.error.details.status:void 0,...c.error.details},aa.error("Throwing critical model error to abort flow execution",{error:c.error.message,type:c.error.type,code:c.error.code}),b}let h=c.value,i={success:!0,content:h.content||"",messages:h.messages,fullResponse:h.fullResponse,toolCalls:h.toolCalls};return h.toolCalls&&h.toolCalls.length>0&&aa.info("Tool calls found in model response",{toolCallsCount:h.toolCalls.length,toolNames:h.toolCalls.map(a=>a.name).join(", ")}),aa.info("execCore() completed",{responseLength:i.content?.length||0,messagesCount:i.messages?.length||0,hasToolCalls:!!i.toolCalls?.length}),aa.verbose("execCore() execResult",i),i}catch(b){if(b&&"object"==typeof b&&("isCriticalToolError"in b||"isModelError"in b)){let a=b instanceof Error?b.message:String(b);throw aa.error("Critical error detected - propagating to abort flow:",{error:a,isModelError:"isModelError"in b,isCriticalToolError:"isCriticalToolError"in b}),b}let a={success:!1,error:b instanceof Error?b.message:String(b),errorDetails:b instanceof Error?{message:b.message,name:b.name,stack:b.stack}:{message:String(b)}};return aa.error("execCore() failed",{error:a.error,errorDetails:a.errorDetails}),aa.verbose("execCore() errorResult",a),a}}processHandoffToolCalls(a,b){if(!a||0===a.length)return!1;aa.info("Processing tool calls for handoff requests",{toolCallsCount:a.length});let c=(this.successors instanceof Map?Array.from(this.successors.keys()):Object.keys(this.successors||{})).filter(a=>!a.includes("-mcpEdge")&&!a.endsWith("mcpEdge")&&!a.includes("-mcp"));for(let d of a){let{name:a}=d;if(a.startsWith("handoff_to_")){let d=b.handoffNameMap?.[a]||a.replace("handoff_to_","");for(let e of c){let c=this.successors instanceof Map?this.successors.get(e):this.successors[e];if(c&&c.node_params?.id===d)return b.handoffRequested={edgeId:e,targetNodeId:d},aa.info(`Handoff requested to node ${d}`,{edgeId:e,toolName:a}),!0}}}return!1}orderedControlEdges(a){let b=a?.orderedOutgoingEdges;return Array.isArray(b)&&b.length>0?b:(this.successors instanceof Map?Array.from(this.successors.keys()):Object.keys(this.successors||{})).filter(a=>!a.includes("-mcpEdge")&&!a.endsWith("mcpEdge")&&!a.includes("-mcp"))}async post(a,b,c,d){if(aa.debug(`[ProcessNode ${d?.id}] post() method started.`),aa.info("post() started",{execResultSuccess:b.success,execResultContentLength:b.content?.length||0,messagesCount:b.messages?.length||0,toolCallsCount:b.toolCalls?.length||0}),!b.success)return c.lastResponse={success:!1,error:b.error,errorDetails:b.errorDetails},Array.isArray(c.trackingInfo.nodeExecutionTracker),aa.warn(`Execution failed for node ${d?.id}. Returning ERROR_ACTION.`),e.O;c.lastResponse=b.content||"";let f=d?.properties?.captureVariable?.trim();b.success&&f&&(c.variables=c.variables??{},c.variables[f]=b.content??"",aa.info("Captured node output into run variable",{captureVariable:f,nodeId:d?.id}));let g=d?.properties?.captureKv?.trim();if(b.success&&g)try{let a;try{a=(await i.flowService.getFlow(c.flowId))?.folder}catch{}let e=await $(g,b.content??"",{flowId:c.flowId,folder:a});"skipped"in e?aa.warn("captureKv skipped",{captureKv:g,reason:e.skipped}):aa.info("Captured node output into persistent kv",{captureKv:g,nodeId:d?.id})}catch(a){aa.error("captureKv failed; continuing run",a)}if(b.messages&&b.messages.length>0&&(c.messages=b.messages.filter(a=>"system"!==a.role),aa.info("Updated messages in sharedState (system prompt excluded)",{messagesCount:c.messages.length})),h.G.ENABLE_EXECUTION_TRACKER&&Array.isArray(c.trackingInfo.nodeExecutionTracker)&&(c.trackingInfo.nodeExecutionTracker.push({nodeType:"ProcessNode",nodeId:d?.id||"unknown",nodeName:d?.properties?.name||"Process Node",modelDisplayName:a.modelDisplayName||"Unknown Model",modelTechnicalName:a.boundModel||"unknown",allowedTools:d?.properties?.allowedTools?.join(", "),timestamp:new Date().toISOString()}),aa.info("Added ProcessNode tracking information",{modelDisplayName:a.modelDisplayName,modelTechnicalName:a.boundModel})),this.processHandoffToolCalls(b.toolCalls,c)&&c.handoffRequested){let a=c.handoffRequested.edgeId;return aa.info(`Handoff requested via tool call, returning edge ID: ${a}`),a}let j=b.toolCalls?.filter(a=>!a.name.startsWith("handoff_to_"));if(j&&j.length>0)return aa.info("Non-handoff tool calls detected, returning TOOL_CALL_ACTION"),e.Jp;let k=d?.edgeConditions;if(k&&Object.keys(k).length>0){let a=this.orderedControlEdges(d);for(let b of a){let a=k[b];if(!a)continue;let d=(0,O.PP)(c.messages,a.target);if((0,O.F9)(a,d))return aa.info("Deterministic edge condition matched; routing",{edgeId:b,kind:a.kind}),b}let b=a.find(a=>!k[a]);if(b)return aa.info("No edge condition matched; routing to bare fallback edge",{edgeId:b}),b;aa.info("Conditioned node: no predicate matched and no bare fallback; terminating")}return aa.info("No tool calls or handoff requested, returning FINAL_RESPONSE_ACTION"),e.g4}_clone(){return new ab}}var ac=c(8918);let ad=(0,d.h)("backend/flow/execution/handlers/MCPHandler");class ae{static async executeMCP(a){let{mcpServer:b,enabledTools:c,nodeId:d,nodeRoots:e}=a;ad.verbose("executeMCP input",JSON.stringify(a));try{d&&q.mcpService.setNodeRoots(b,d,e);let a=await q.mcpService.getServerStatus(b);if("connected"!==a.status){let a=await q.mcpService.connectServer(b);if(!a.success){let c={success:!1,error:(0,ac.Fp)("server_connection_failed",`Failed to connect to MCP server: ${a.error}`,b,"connect")};return ad.verbose("executeMCP connection error",JSON.stringify(c)),c}}let f=await q.mcpService.listServerTools(b);if(f.error){let a={success:!1,error:(0,ac.Fp)("list_tools_failed",`Failed to list tools for server: ${f.error}`,b,"listTools")};return ad.verbose("executeMCP list tools error",JSON.stringify(a)),a}let g={success:!0,value:{server:b,tools:f.tools||[],enabledTools:c}};return ad.verbose("executeMCP success result",JSON.stringify(g)),g}catch(c){let a={success:!1,error:(0,ac.Fp)("mcp_execution_failed",c instanceof Error?c.message:String(c),b,"executeMCP")};return ad.verbose("executeMCP execution error",JSON.stringify(a)),a}}}var af=c(59448);let ag=(0,d.h)("backend/flow/execution/nodes/MCPNode");class ah extends l{async prep(a,b){ag.info("prep() started");let c=b?.id||"",d=b?.properties?.boundServer,e=b?.properties?.enabledTools||[],f=b?.properties?.roots||[];if(!d)throw ag.error("Missing bound server"),Error("MCP node requires a bound server");return ag.info("prep() completed",{mcpServer:d,enabledToolsCount:e.length,nodeRootsCount:f.length}),{nodeId:c,nodeType:"mcp",mcpServer:d,enabledTools:e,nodeRoots:f}}async execCore(a,b){ag.info("execCore() started",{mcpServer:a.mcpServer}),ag.verbose("execCore() prepResult",JSON.stringify(a));try{let b=await ae.executeMCP({mcpServer:a.mcpServer,enabledTools:a.enabledTools,nodeId:a.nodeId,nodeRoots:a.nodeRoots});if(!b.success)throw ag.error("MCP execution failed",{error:b.error}),Error(`MCP execution failed: ${b.error.message}`);let c={success:!0,server:b.value.server,tools:b.value.tools,enabledTools:b.value.enabledTools};return ag.info("execCore() completed",{server:c.server,toolsCount:c.tools?.length||0,enabledToolsCount:c.enabledTools?.length||0}),ag.verbose("execCore() execResult",JSON.stringify(c)),c}catch(b){let a={success:!1,error:b instanceof Error?b.message:String(b)};return ag.error("execCore() failed",{error:a.error}),ag.verbose("execCore() errorResult",JSON.stringify(a)),a}}async post(a,b,c,d){if(ag.info("post() started",{server:b.server,toolsCount:b.tools?.length||0,enabledToolsCount:b.enabledTools?.length||0}),ag.verbose("post() inputs",JSON.stringify({prepResult:a,execResult:b,nodeParams:d})),h.G.ENABLE_EXECUTION_TRACKER&&Array.isArray(c.trackingInfo.nodeExecutionTracker)&&(c.trackingInfo.nodeExecutionTracker.push({nodeType:"MCPNode",nodeId:d?.id||"unknown",nodeName:d?.properties?.name||"MCP Node",timestamp:new Date().toISOString()}),ag.info("Added MCPNode tracking information")),b.success&&b.server&&b.tools){let a=d?.properties?.toolTimeout,e=b.tools.filter(a=>b.enabledTools?.includes(a.name)).map(c=>({...c,originalName:c.name,server:b.server,name:(0,af.Y6)(b.server,c.name),timeout:a}));if(c.mcpContext){let a=[...c.mcpContext.availableTools||[]];for(let b of e)a.some(a=>a.name===b.name)||a.push(b);c.mcpContext.availableTools=a}else c.mcpContext={server:b.server,availableTools:e};for(let a of(c.toolNameMap=c.toolNameMap||{},e))c.toolNameMap[a.name]={server:b.server,tool:a.originalName,timeout:a.timeout};let f=e.map(a=>a.name);ag.info("Stored MCP context in shared state",{server:b.server,availableToolsCount:e.length,availableToolNames:f.length>10?f.slice(0,10).join(", ")+"...":f.join(", "),totalToolsCount:c.mcpContext.availableTools.length})}ag.info("post() completed"),ag.info("Successors object:",{hasSuccessors:!!this.successors,isMap:this.successors instanceof Map,type:typeof this.successors});let e=this.successors instanceof Map?Array.from(this.successors.keys()):Object.keys(this.successors||{});if(ag.info("Actions:",{actionsCount:e.length,actions:e}),e.length>0){let a=e[0];return ag.info(`Returning action: ${a}`),a}return"default"}_clone(){return new ah}}let ai=(0,d.h)("backend/flow/execution/nodes/FinishNode");class aj extends l{async prep(a,b){ai.debug("prep() started");let c={nodeId:b?.id||"",nodeType:"finish",messages:a.messages};return ai.debug("prep() completed",{messagesCount:c.messages.length,hasSystemPrompt:c.messages.some(a=>"system"===a.role)}),c}async execCore(a,b){ai.debug("execCore() started",{messagesCount:a.messages.length}),ai.verbose("execCore() prepResult",JSON.stringify(a));let c={success:!0};return ai.verbose("execCore() execResult",JSON.stringify(c)),ai.info("execCore() completed"),c}async post(a,b,c,d){ai.info("post() started",{messagesCount:a.messages.length}),ai.verbose("post() inputs",JSON.stringify({prepResult:a,execResult:b,nodeParams:d})),h.G.ENABLE_EXECUTION_TRACKER&&Array.isArray(c.trackingInfo.nodeExecutionTracker)&&(c.trackingInfo.nodeExecutionTracker.push({nodeType:"FinishNode",nodeId:d?.id||"unknown",nodeName:d?.properties?.name||"Finish Node",timestamp:new Date().toISOString()}),ai.info("Added FinishNode tracking information"));let f=a.messages[a.messages.length-1];f&&"assistant"===f.role&&f.content&&("string"==typeof f.content?c.lastResponse=f.content:c.lastResponse={content:f.content,role:f.role}),ai.info("Successors object:",{hasSuccessors:!!this.successors,isMap:this.successors instanceof Map,type:typeof this.successors});let g=this.successors instanceof Map?Array.from(this.successors.keys()):Object.keys(this.successors||{});if(ai.info("Actions:",{actionsCount:g.length,actions:g}),g.length>0){let a=g[0];return ai.info(`post() completed, returning action: ${a}`),a}return ai.info("post() completed, returning FINAL_RESPONSE_ACTION"),e.g4}_clone(){return new aj}}var ak=c(44479),al=c(35796);let am=(0,d.h)("backend/execution/flow/nodes/SubflowNode");function an(a){for(let b=a.length-1;b>=0;b--)if("user"===a[b].role)return a.slice(b);return a}function ao(a,b){let c;if("lines"===b)return a.split(/\r?\n/).map(a=>a.trim()).filter(a=>a.length>0);try{c=JSON.parse(a)}catch{return[]}return Array.isArray(c)?c.map(a=>"string"==typeof a?a:JSON.stringify(a)):[]}function ap(a,b,c){if("string"!=typeof a||""===a.trim())return[];let d=new Set,e=[];for(let f of ao(a,b)){let a=f.trim();if(!(!a||d.has(a))){if(d.add(a),c&&a===c){am.warn("Dynamic fan-out target refers to the running flow itself; skipping (recursion guard)",{id:a});continue}if(e.push(a),e.length>=32)break}}return e}async function aq(a,b,d){let e=await S((0,P.S$)(a,b.variables),b.ephemeral?void 0:b.conversationId,b.emit,d?{nodeId:d,nodeType:"subflow"}:void 0);if(e.includes("${kv:")){let a;try{let{flowService:d}=await Promise.resolve().then(c.bind(c,11659));a=(await d.getFlow(b.flowId))?.folder}catch{}e=await Z(e,{flowId:b.flowId,folder:a})}return e}function ar(a,b,c,d,e,f){if(!a||!b)return;let g=f?{laneIndex:f.index,laneCount:f.count}:{},h=f?{...f.title?{laneTitle:f.title}:{},...f.conversationId?{laneConversationId:f.conversationId}:{}}:{};return b=>{let f=(b.depth??0)+1;return"run:start"===b.type?void a({type:"subflow:start",node:c,subflowId:d,subflowName:e,depth:f,...g,...h}):"run:done"===b.type?void a({type:"subflow:done",node:c,subflowId:d,status:b.status,depth:f,...g,...h}):"message"===b.type?void a({...b,depth:f,message:{...b.message,depth:f},...g}):void a({...b,depth:f,...g})}}class as extends l{async prep(a,b){let d,e=b?.properties?.subflowId,f=a.handoffInput&&a.handoffInput.targetNodeId===b?.id?a.handoffInput:void 0;f&&(a.handoffInput=void 0);let g=(b?.properties?.parallelSubflowIds??[]).filter(a=>"string"==typeof a&&""!==a.trim()),h=b?.properties?.mapOverList===!0,i=b?.properties?.itemSplit==="lines"?"lines":"json-array",j=b?.properties?.sequential===!0,k=b?.properties?.parallelSubflowIdsVar?.trim(),l=!1;if(k){let b=ap(a.variables?.[k],i,a.flowId);b.length>0?(g=b,l=!0,am.info("Dynamic fan-out targets resolved from run variable",{variable:k,count:b.length})):am.info("Dynamic fan-out variable resolved to no targets; using static parallelSubflowIds",{variable:k,staticCount:g.length})}let m=!1,n=b?.properties?.allowCallerFanout===!0;if(n&&f?.parallelFlows&&f.parallelFlows.length>0){let c=ap(JSON.stringify(f.parallelFlows),"json-array",a.flowId);c.length>0&&(g=c,l=!0,m=!0,am.info("Caller-chosen fan-out targets resolved from handoff tool",{count:c.length,nodeId:b?.id}))}"number"==typeof f?.concurrencyLimit&&f.concurrencyLimit>=1&&(d=Math.floor(f.concurrencyLimit));let o=n&&f?.tasks&&f.tasks.length>0?f.tasks:void 0,p=(b?.properties?.spawnBriefs??[]).map(a=>"string"==typeof a?a.trim():"").filter(a=>""!==a),q=o??(p.length>0?p:void 0);q&&q.length>32&&(am.warn("Spawn briefs exceed the fan-out lane cap; truncating",{requested:q.length,cap:32}),q=q.slice(0,32));let r=b?.properties?.promptTemplate?.trim(),s=b?.properties?.inputMode??(r?"isolated":"full-history"),t=b?.properties?.outputMode!=="final-only",u=b?.properties?.saveConversation!==!1,v={nodeId:b?.id||"",nodeType:"subflow",subflowId:e,depth:(a.runDepth??0)+1,chainDepth:a.chainDepth??0,parentRunId:a.conversationId,showSteps:t,persistConversation:u,emit:a.emit,nodeName:b?.properties?.name};if("isolated"===s)b?.properties?.allowCallerPrompt!==!1&&f?.prompt.trim()?(v.inputText=f.prompt,am.info("Using caller-supplied prompt for isolated subflow",{nodeId:b?.id})):v.inputText=r??"";else{let b=function(a){let b=[];for(let d of a){var c;if("system"===d.role||"tool"===d.role||"assistant"===d.role&&Array.isArray(d.tool_calls)&&d.tool_calls.length>0||!("string"==typeof(c=d.content)?c.trim().length>0:!!Array.isArray(c)&&c.length>0))continue;let{processNodeId:a,...e}=d;b.push({...e})}return b}(a.messages);v.messages="latest-message"===s?an(b):b}if(void 0!==v.inputText&&(v.inputText=await aq(v.inputText,a,b?.id)),h&&g.length>0&&am.warn("SubflowNode sets both mapOverList and parallelSubflowIds; ignoring mapOverList (fan-out precedence)",{nodeId:b?.id}),q&&q.length>0&&!e&&(am.warn("Spawn briefs received but the node has no subflowId; briefs are ignored",{nodeId:b?.id,briefCount:q.length}),q=void 0),q&&q.length>0&&e){let f;g.length>0&&am.warn("SubflowNode has both spawn briefs and parallelSubflowIds; spawn briefs win for this visit",{nodeId:b?.id});try{let{flowService:a}=await Promise.resolve().then(c.bind(c,11659));f=(await a.getFlow(e))?.name}catch{}let h=await Promise.all(q.map(c=>aq(c,a,b?.id)));v.lanes=h.map((a,b)=>({subflowId:e,subflowName:f,input:void 0!==v.messages?{messages:[...v.messages,{role:"user",content:a,id:crypto.randomUUID(),timestamp:Date.now()}]}:{prompt:a},itemIndex:b,itemCount:h.length,laneTitle:(0,al.oO)(a)})),v.concurrencyLimit=Math.max(1,d??b?.properties?.concurrencyLimit??4),v.joinSeparator=b?.properties?.joinSeparator??"\n\n",v.errorStrategy=b?.properties?.errorStrategy??"collect-all",am.info("Spawn-with-brief lanes resolved",{nodeId:b?.id,laneCount:h.length,source:o?"caller":"author"})}else if(g.length>0){let a=g.map(a=>({subflowId:a}));try{let{flowService:b}=await Promise.resolve().then(c.bind(c,11659)),d=new Set;await Promise.all(a.map(async a=>{try{let c=await b.getFlow(a.subflowId);c?.name?a.subflowName=c.name:l&&!c&&d.add(a.subflowId)}catch{l&&d.add(a.subflowId)}})),l&&d.size>0&&(am.warn("Dropping unknown dynamic fan-out target id(s)",{dropped:[...d]}),a=a.filter(a=>!d.has(a.subflowId)))}catch{}l&&0===a.length&&(m?v.laneResolutionError=`None of the requested parallel flows exist: ${g.join(", ")}. The handoff "parallelFlows" argument must name existing flows; to run several copies of THIS sub-agent, call the handoff tool once per task instead.`:v.fanOutResolvedEmpty=!0),v.lanes=a,v.concurrencyLimit=Math.max(1,d??b?.properties?.concurrencyLimit??4),v.joinSeparator=b?.properties?.joinSeparator??"\n\n",v.errorStrategy=b?.properties?.errorStrategy??"collect-all"}else if(h&&e){var w;let a,d=ao((void 0!==v.inputText?v.inputText:"string"==typeof(w=an(v.messages??[])[0]?.content)?w:Array.isArray(w)?w.map(a=>"string"==typeof a?a:"string"==typeof a?.text?a.text:"").join(""):"")??"",i);try{let{flowService:b}=await Promise.resolve().then(c.bind(c,11659)),d=await b.getFlow(e);d?.name&&(a=d.name)}catch{}v.lanes=d.map((b,c)=>({subflowId:e,subflowName:a,input:{prompt:b},itemIndex:c,itemCount:d.length,laneTitle:(0,al.oO)(b)})),v.mapOverList=!0,v.concurrencyLimit=j?1:Math.max(1,b?.properties?.concurrencyLimit??4),v.joinSeparator=b?.properties?.joinSeparator??"\n\n",v.errorStrategy=b?.properties?.errorStrategy??"collect-all"}else if(e)try{let{flowService:a}=await Promise.resolve().then(c.bind(c,11659)),b=await a.getFlow(e);b?.name&&(v.subflowName=b.name)}catch{}return am.info("prep() completed",{subflowId:e,depth:v.depth,mode:s,historyCount:v.messages?.length,laneCount:v.lanes?.length,showSteps:t}),v}async execCore(a,b){let{runFlow:d}=await c.e(7463).then(c.bind(c,67463)),e={nodeId:a.nodeId,nodeName:a.nodeName,nodeType:"subflow"},f=a.messages?{messages:a.messages}:{prompt:a.inputText??""};if(a.laneResolutionError)return{success:!1,error:a.laneResolutionError};if(a.lanes&&a.lanes.length>0)return this.execParallel(a,d,e,f);if(a.mapOverList||a.fanOutResolvedEmpty)return am.info("execCore() resolved no lanes → nothing to run",{subflowId:a.subflowId,reason:a.fanOutResolvedEmpty?"dynamic-fanout-empty":"map-over-list-empty"}),{success:!0,outputText:"",subStatus:"completed",lanes:[]};if(!a.subflowId)return{success:!1,error:"Subflow node has no flow selected (subflowId is empty)."};let g=ar(a.emit,a.showSteps,e,a.subflowId,a.subflowName);am.info("execCore() running subflow",{subflowId:a.subflowId,depth:a.depth,showSteps:a.showSteps,foldingEvents:!!g});let h=await d({flowId:a.subflowId,...f,mode:a.persistConversation?"conversation":"ephemeral",flujo:!0,requireApproval:!1,debug:!1,depth:a.depth,chainDepth:a.chainDepth,parentRunId:a.parentRunId,...g?{emit:g}:{}});return"error"===h.status?{success:!1,error:h.error?.message||"Subflow execution failed",errorDetails:h.error?.details,subStatus:h.status}:{success:!0,outputText:h.outputText,subStatus:h.status}}async execParallel(a,b,d,e){let f=a.lanes??[],g=f.length,h=Math.max(1,a.concurrencyLimit??4),i=a.joinSeparator??"\n\n",j=a.errorStrategy??"collect-all";am.info("execCore() running parallel subflows",{laneCount:g,concurrencyLimit:h,errorStrategy:j,depth:a.depth});let k=Array(g),l=0,m=!1,n=async c=>{let h=f[c],i=a.persistConversation?crypto.randomUUID():void 0,l=h.laneTitle??h.subflowName,n=ar(a.emit,a.showSteps,d,h.subflowId,h.subflowName,{index:h.itemIndex??c,count:h.itemCount??g,title:l,conversationId:i});try{let d=await b({flowId:h.subflowId,...h.input??e,mode:a.persistConversation?"conversation":"ephemeral",...i?{conversationId:i}:{},...a.persistConversation&&l?{title:l}:{},flujo:!0,requireApproval:!1,debug:!1,depth:a.depth,chainDepth:a.chainDepth,parentRunId:a.parentRunId,...n?{emit:n}:{}});k[c]="error"===d.status?{subflowId:h.subflowId,success:!1,error:d.error?.message||"Subflow execution failed"}:{subflowId:h.subflowId,success:!0,outputText:d.outputText}}catch(a){k[c]={subflowId:h.subflowId,success:!1,error:a instanceof Error?a.message:String(a)},n?.({type:"run:done",status:"error"})}k[c].success||"fail-fast"!==j||(m=!0)},{FlowExecutor:o}=await Promise.resolve().then(c.bind(c,44561)),p=()=>(0,ak.isCancelledByAncestry)(a.parentRunId,o.conversationStates),q=async()=>{for(;;){if(m)return;if(p()){m=!0;return}let a=l++;if(a>=g)return;await n(a)}},r=Math.min(h,g);await Promise.all(Array.from({length:r},()=>q()));let s=k.filter(a=>void 0!==a),t=s.filter(a=>a.success),u=s.filter(a=>!a.success),v=u.length>0;if("fail-fast"===j&&v){let a=s.find(a=>!a.success);return{success:!1,error:a?.error||"A parallel subflow lane failed",subStatus:"error",lanes:s}}if(0===t.length)return{success:!1,error:"All parallel subflows failed",subStatus:"error",lanes:s};let w=t.map(a=>a.outputText??"").join(i);if(v){let a=u.map(a=>`- ${a.subflowId}: ${a.error??"unknown error"}`).join("\n");w+=`${i}[${u.length} parallel subflow(s) failed:
61
- ${a}]`}return{success:!0,outputText:w,subStatus:"completed",lanes:s,partial:v}}async post(a,b,d,f){if(h.G.ENABLE_EXECUTION_TRACKER&&Array.isArray(d.trackingInfo.nodeExecutionTracker)&&d.trackingInfo.nodeExecutionTracker.push({nodeType:"SubflowNode",nodeId:f?.id||"unknown",nodeName:f?.properties?.name||"Subflow Node",timestamp:new Date().toISOString()}),!b.success)return am.error("Subflow failed",{subflowId:a.subflowId,error:b.error}),d.lastResponse={success:!1,error:b.error||"Subflow execution failed",errorDetails:b.errorDetails},e.O;let g=b.outputText??"",i={role:"assistant",content:g,id:crypto.randomUUID(),timestamp:Date.now(),processNodeId:f?.id};d.messages.push(i),d.lastResponse=g;let j=f?.properties?.captureVariable?.trim();j&&(d.variables=d.variables??{},d.variables[j]=g,am.info("Captured subflow output into run variable",{captureVariable:j,nodeId:f?.id}));let k=f?.properties?.captureResource?.trim();if(k&&d.conversationId&&!d.ephemeral)try{let a=await (0,x.tm)({conversationId:d.conversationId,name:k,mimeType:"text/markdown",kind:"text",data:{text:g},producedBy:{source:"capture",nodeId:f?.id,nodeName:f?.properties?.name}});"skipped"in a?am.warn("captureResource skipped by store cap",{captureResource:k,reason:a.skipped}):(d.emit?.({type:"resource:write",node:{nodeId:f?.id??"unknown",nodeName:f?.properties?.name,nodeType:"subflow"},server:"flujo",uri:a.uri,name:k,mimeType:a.mimeType,size:a.size,source:"capture"}),am.info("Captured subflow output into run resource",{captureResource:k,uri:a.uri,nodeId:f?.id}))}catch(a){am.error("captureResource failed; continuing run",a)}let l=f?.properties?.captureKv?.trim();if(l)try{let a;try{let{flowService:b}=await Promise.resolve().then(c.bind(c,11659));a=(await b.getFlow(d.flowId))?.folder}catch{}let b=await $(l,g,{flowId:d.flowId,folder:a});"skipped"in b?am.warn("captureKv skipped",{captureKv:l,reason:b.skipped}):am.info("Captured subflow output into persistent kv",{captureKv:l,nodeId:f?.id})}catch(a){am.error("captureKv failed; continuing run",a)}let m=this.successors instanceof Map?Array.from(this.successors.keys()):Object.keys(this.successors||{});if(m.length>0){let a=m[0];return am.info(`post() completed, handing off via action: ${a}`),a}return am.info("post() completed, no successor → FINAL_RESPONSE_ACTION"),e.g4}_clone(){return new as}}let at=(0,d.h)("backend/flow/execution/nodes/ResourceNode");class au extends l{async prep(a,b){return at.warn("ResourceNode.prep() reached — resource nodes are config holders and should never execute",{nodeId:b?.id}),{}}async execCore(){return{}}async post(a,b,c,d){let e=this.successors instanceof Map?Array.from(this.successors.keys()):Object.keys(this.successors||{});return e.length>0?e[0]:"default"}_clone(){return new au}}var av=c(37860);let aw=(0,d.h)("backend/flow/execution/nodes/SignalNode");class ax extends l{async prep(a,b){let c=(b?.properties?.topic??"").trim(),d=b?.properties?.payloadTemplate??"";return aw.info("prep() started",{nodeId:b?.id,topic:c,payloadTemplateLength:d.length}),{topic:c,payloadTemplate:d}}async execCore(){return{}}async post(a,b,c,d){aw.info("post() started",{nodeId:d?.id,topic:a.topic}),h.G.ENABLE_EXECUTION_TRACKER&&Array.isArray(c.trackingInfo?.nodeExecutionTracker)&&c.trackingInfo.nodeExecutionTracker.push({nodeType:"SignalNode",nodeId:d?.id||"unknown",nodeName:d?.properties?.name||"Signal Node",timestamp:new Date().toISOString()});let e=a.topic;if(e)try{let b=(0,P.S$)(a.payloadTemplate??"",c.variables),d="schedule"===c.source?"schedule":"api"===c.source?"api":"chat";(0,av.eh)().publish({kind:"signal",topic:e,payload:b,emitterFlowId:c.flowId,runId:c.conversationId||"",conversationId:c.conversationId||"",firedBy:d,chainDepth:c.chainDepth??0,timestamp:new Date().toISOString()}),aw.info("Emitted signal",{topic:e,payloadLength:b.length,chainDepth:c.chainDepth??0})}catch(a){aw.warn("Signal emit failed (ignored so the run continues):",a)}else aw.warn("Signal node has no topic; nothing emitted",{nodeId:d?.id});let f=this.successors instanceof Map?Array.from(this.successors.keys()):Object.keys(this.successors||{});return f.length>0?f[0]:"default"}_clone(){return new ax}}let ay=(0,d.h)("backend/flow/execution/FlowConverter");class az{static convert(a){ay.info("Converting React Flow to Pocket Flow",{flowName:a.name,nodeCount:a.nodes.length,edgeCount:a.edges.length}),ay.verbose("convert input",JSON.stringify({flowName:a.name,nodeCount:a.nodes.length,edgeCount:a.edges.length}));let b=new Map;for(let c of a.nodes){ay.debug(`Creating node: ${c.id} (${c.type})`);let a=this.createNode(c);b.set(c.id,a)}for(let c of a.edges){ay.debug(`Connecting edge: ${c.id} (${c.source} -> ${c.target})`);let a=b.get(c.source),d=b.get(c.target);if(a&&d)if(c.data?.edgeType==="mcp"){let b,e;ay.info(`Handling MCP connection: ${c.id} (${c.source} -> ${c.target})`),a instanceof ab?(b=a,e=d):d instanceof ab&&(b=d,e=a),b&&e?(b.node_params.properties||(b.node_params.properties={}),b.node_params.properties.mcpNodes||(b.node_params.properties.mcpNodes=[]),b.node_params.properties.mcpNodes.push({id:e.node_params.id,properties:e.node_params.properties}),ay.info("Stored MCP node in Process node properties",{processNodeId:b.node_params.id,mcpNodeId:e.node_params.id})):ay.warn(`Invalid MCP connection: ${c.id}. Could not find Process and MCP nodes.`,{sourceNodeType:a.constructor.name,targetNodeType:d.constructor.name})}else if(c.data?.edgeType==="resource"){let b,e,f;if(ay.info(`Handling resource connection: ${c.id} (${c.source} -> ${c.target})`),a instanceof au&&d instanceof ab?(e=a,b=d,f="consume"):a instanceof ab&&d instanceof au&&(b=a,e=d,f="produce"),b&&e&&f){b.node_params.properties||(b.node_params.properties={}),b.node_params.properties.resourceNodes||(b.node_params.properties.resourceNodes=[]);let a=e.node_params.properties??{};b.node_params.properties.resourceNodes.push({id:e.node_params.id,role:f,properties:a}),ay.info("Stored resource node in Process node properties",{processNodeId:b.node_params.id,resourceNodeId:e.node_params.id,role:f})}else ay.warn(`Invalid resource connection: ${c.id}. Could not find Process and Resource nodes.`,{sourceNodeType:a.constructor.name,targetNodeType:d.constructor.name})}else{let b=c.id||"default";a.addSuccessor(d,b),a.node_params.orderedOutgoingEdges=a.node_params.orderedOutgoingEdges||[],a.node_params.orderedOutgoingEdges.push(b);let e=c.data?.condition;if(e&&"object"==typeof e&&(a.node_params.edgeConditions=a.node_params.edgeConditions||{},a.node_params.edgeConditions[b]=e,ay.info("Retained edge condition for routing",{edgeId:b,source:c.source})),c.data?.bidirectional){let e=`${b}__reverse`;d.addSuccessor(a,e),d.node_params.orderedOutgoingEdges=d.node_params.orderedOutgoingEdges||[],d.node_params.orderedOutgoingEdges.push(e),ay.info(`Connected nodes (bidirectional): ${c.target} -> ${c.source} with action: ${e}`)}ay.info(`Connected nodes: ${c.source} -> ${c.target} with action: ${b}`),a.successors instanceof Map?ay.debug("Source node successors after connection:",{sourceNodeId:c.source,successorsCount:a.successors.size,successorsKeys:Array.from(a.successors.keys()),hasTargetNode:a.successors.has(b)}):ay.warn("Source node successors is not a Map:",{sourceNodeId:c.source,successorsType:typeof a.successors})}else ay.warn(`Failed to connect edge: ${c.id}`,{sourceExists:!!a,targetExists:!!d})}let c=a.nodes.find(a=>"start"===a.type);if(!c)throw ay.error("No start node found in flow"),Error("Flow must have a start node");ay.debug(`Found start node: ${c.id}`);let d=b.get(c.id);if(!d)throw ay.error(`Failed to retrieve start node from map: ${c.id}`),Error("Failed to create start node");let e=new m(d);return ay.debug("Created Pocket Flow with start node"),ay.info("Flow conversion completed successfully",{nodeCount:b.size}),ay.verbose("convert result",JSON.stringify({flowStartNodeId:e.node_params?.id||"unknown",nodesCount:b.size})),e}static createNode(a){let b,c;switch(ay.debug(`Creating node of type: ${a.type}`,{nodeId:a.id,label:a.data.label}),ay.verbose("createNode input",JSON.stringify({nodeId:a.id,nodeType:a.type,label:a.data.label,properties:a.data.properties})),a.type){case"start":b=new o,c={id:a.id,label:a.data.label,type:"start",properties:a.data.properties||{name:a.data.label}};break;case"process":b=new ab,c={id:a.id,label:a.data.label,type:"process",properties:a.data.properties||{name:a.data.label}};break;case"mcp":b=new ah,c={id:a.id,label:a.data.label,type:"mcp",properties:a.data.properties||{name:a.data.label}};break;case"finish":b=new aj,c={id:a.id,label:a.data.label,type:"finish",properties:a.data.properties||{name:a.data.label}};break;case"subflow":b=new as,c={id:a.id,label:a.data.label,type:"subflow",properties:a.data.properties||{name:a.data.label}};break;case"resource":b=new au,c={id:a.id,label:a.data.label,type:"resource",properties:a.data.properties||{name:a.data.label}};break;case"signal":b=new ax,c={id:a.id,label:a.data.label,type:"signal",properties:a.data.properties||{name:a.data.label}};break;default:throw ay.error(`Unknown node type: ${a.type}`,{nodeId:a.id}),Error(`Unknown node type: ${a.type}`)}return b.setParams({},c),ay.debug("Node created and parameters set",{nodeId:a.id,type:a.type,propertiesKeys:Object.keys(c.properties||{})}),ay.verbose("createNode result",JSON.stringify({nodeId:a.id,nodeType:a.type,nodeParams:c})),b}}let aA=(0,d.h)("backend/execution/flow/engine/PocketflowEngine");class aB{clearCache(a){a?this.pocketFlowCache.delete(a):this.pocketFlowCache.clear()}async resolveFlowDefinition(a){let b=a.flowId;if(this.pocketFlowCache.has(b))return aA.debug(`Using cached Pocket Flow for flowId: ${b}`),this.pocketFlowCache.get(b).clone();let c=a.flowSnapshot;if(c)aA.verbose(`Resolving flow ${b} from an in-memory quick-chat snapshot.`);else if(aA.verbose(`Loading and converting flow for flowId: ${b}`),!(c=await i.flowService.getFlow(b)??void 0))throw aA.error(`Flow not found for flowId: ${b}`),Error(`Flow not found: ${b}`);aA.info(`Found flow: ${c.name}`,{flowId:c.id,nodeCount:c.nodes.length,edgeCount:c.edges.length});let d=az.convert(c);return this.pocketFlowCache.set(b,d),aA.verbose(`Flow ${b} converted and cached.`),d.clone()}async findNodeById(a,b){aA.verbose(`Searching for node ${b} in flow ${a.node_params?.id}`);let c=await a.getStartNode(),d=[c],e=new Set,f=c.node_params?.id;for(f?e.add(f):aA.warn("Start node is missing an ID in its parameters.");d.length>0;){let a=d.shift();if(a.node_params?.id===b)return aA.verbose(`Found node ${b}`),a;if(a.successors instanceof Map)for(let b of a.successors.values()){let a=b.node_params?.id;"string"==typeof a&&a.length>0&&!e.has(a)&&(e.add(a),d.push(b.clone()))}}aA.warn(`Node ${b} not found in flow.`)}async resolveNode(a){let b,{conversationId:c,currentNodeId:d}=a,e=await this.resolveFlowDefinition(a);if(d)(b=await this.findNodeById(e,d))?aA.info(`Resuming conversation ${c} at node ${d}`):(aA.warn(`Resuming conversation ${c}, but node ${d} not found. Starting from beginning.`),b=await e.getStartNode());else{let d=a.messages.length>0?a.messages[a.messages.length-1]:null;d?.processNodeId?(aA.info(`Found processNodeId ${d.processNodeId} in last message. Attempting to resume from this node.`),(b=await this.findNodeById(e,d.processNodeId))?aA.info(`Resuming conversation ${c} from node ${d.processNodeId} based on last message.`):(aA.warn(`Could not find node ${d.processNodeId} from last message. Starting from beginning.`),b=await e.getStartNode())):(b=await e.getStartNode(),aA.info(`Starting conversation ${c} from the beginning.`))}if(!b)throw Error("Execution error: Cannot find starting node.");let f=b.node_params?.id;if("string"!=typeof f||0===f.length)throw Error(`Execution error: Node ${b.constructor.name} is missing an ID.`);return{handle:b,id:f,type:b.node_params?.type||"unknown",name:b.node_params?.label||"Unknown Node"}}async resolveHandoff(a,b){let{currentNodeId:c}=a;if(!c||!b)return{isSuccessorEdge:!1,targetNodeId:null};let d=await this.resolveFlowDefinition(a),e=await this.findNodeById(d,c);if(!e||!e.successors.has(b))return{isSuccessorEdge:!1,targetNodeId:null};let f=e.getSuccessor(b),g=f?.node_params?.id,h=f?.node_params?.type;return{isSuccessorEdge:!0,targetNodeId:"string"==typeof g&&g.length>0?g:null,targetNodeType:"string"==typeof h?h:null}}async runNode(a,b,c){let d=a.handle;c&&(b.emit=c);try{aA.debug(`[PocketflowEngine] Calling run() on node ${a.id} (${a.type})`);let c=await d.run(b);return aA.debug(`[PocketflowEngine] Node ${a.id} returned action: "${c.action}"`),{action:c.action,prepResult:c.prepResult,execResult:c.execResult}}finally{delete b.emit}}constructor(){this.pocketFlowCache=new Map}}let aC=(0,d.h)("backend/execution/flow/FlowExecutor"),aD=["messages","availableTools","fullResponse","emit","modelInput","modelInputs"];function aE(a){let{messages:b,executionTrace:c,emit:d,mcpContext:e,...f}=a,h=g()(f);return h.messageCount=b?.length??0,e&&(h.mcpContext={server:e.server,availableTools:[]}),h}function aF(a){if(!a||"object"!=typeof a)return a;let b=g()(a);for(let a of aD)a in b&&delete b[a];return b}class aG{static get conversationStates(){return global.__flujo_conversation_states||(global.__flujo_conversation_states=new Map),global.__flujo_conversation_states}static get engine(){return global.__flujo_flow_engine||(global.__flujo_flow_engine=new aB),global.__flujo_flow_engine}static set engine(a){global.__flujo_flow_engine=a}static clearFlowCache(a){this.engine.clearCache(a)}static resolveHandoff(a,b){return this.engine.resolveHandoff(a,b)}static async peekNextNodeId(a){try{return(await this.engine.resolveNode(a)).id}catch{return null}}static async executeStep(a,b){let c,d,f,{conversationId:g,flowId:i,currentNodeId:j}=a;if("string"!=typeof g||0===g.length)return aC.error("executeStep called without a valid conversationId in sharedState."),a.lastResponse={success:!1,error:"Internal error: Missing conversationId."},{sharedState:a,action:e.O};aC.debug(`executeStep called for conversation ${g}`,{flowId:i,currentNodeId:j});let k=h.G.ENABLE_EXECUTION_TRACKER||!!a.debugMode,l=j;try{let e=await this.engine.resolveNode(a);l=e.id,a.currentNodeId=e.id,aC.info(`Executing step for node ${e.id} (${e.type}) in conversation ${g}`),k&&!a.executionTrace&&(a.executionTrace=[]),c=aE(a),b?.({type:"node:enter",node:{nodeId:e.id,nodeName:e.name,nodeType:e.type}});let h=await this.engine.runNode(e,a,b),i=h.action;d=h.prepResult,f=h.execResult,b?.({type:"node:exit",node:{nodeId:e.id,nodeName:e.name,nodeType:e.type},action:i}),aC.debug(`Node ${e.id} finished with action: ${i} for conversation ${g}`);let j=aE(a);if(k&&a.executionTrace){let b=a.executionTrace.length,h={stepIndex:b,nodeId:e.id,nodeType:e.type,nodeName:e.name,timestamp:new Date().toISOString(),actionTaken:i,stateBefore:c,stateAfter:j,prepResultSnapshot:aF(d),execResultSnapshot:aF(f),modelInput:d?.modelInput,modelInputs:d?.modelInputs};a.executionTrace.push(h),aC.verbose(`Appended step ${b} to execution trace for conversation ${g}`)}return this.conversationStates.set(g,a),aC.debug(`[FlowExecutor] Returning from executeStep for node ${e.id} with action: "${i}"`),{sharedState:a,action:i}}catch(i){let f=l||"unknown node";aC.error(`Error during node execution step for ${f} in conversation ${g}`,{error:i});let h=i?.details;if(a.lastResponse={success:!1,error:i instanceof Error?i.message:String(i),errorDetails:i instanceof Error?{name:i.name,message:i.message,stack:i.stack,...h&&"object"==typeof h?h:{}}:{message:String(i)}},a.currentNodeId=l,b?.({type:"error",node:l?{nodeId:l}:void 0,message:i instanceof Error?i.message:String(i)}),k&&a.executionTrace){let b=a.executionTrace.length,h={stepIndex:b,nodeId:f,nodeType:"unknown",nodeName:"Unknown Node",timestamp:new Date().toISOString(),actionTaken:e.O,stateBefore:c??aE(a),stateAfter:aE(a),prepResultSnapshot:d?aF(d):null,execResultSnapshot:{success:!1,error:a.lastResponse},modelInput:d?.modelInput,modelInputs:d?.modelInputs};a.executionTrace.push(h),aC.verbose(`Appended ERROR step ${b} to execution trace for conversation ${g}`)}return this.conversationStates.set(g,a),{sharedState:a,action:e.O}}}}},51172:(a,b,c)=>{c.d(b,{M3:()=>y,or:()=>x});var d=c(29021),e=c(33873),f=c.n(e),g=c(18230),h=c(63129),i=c(79111),j=c(89392);let k={enabled:!0,maxValueBytes:65536,maxKeysPerScope:512,maxScopeBytes:8388608},l=(0,g.h)("backend/services/kvStore"),m=f().join((0,h.ok)(),"db","kv-store"),n=/^[A-Za-z0-9_-]{1,64}$/;function o(a){if("string"!=typeof a||!n.test(a))throw Error(`Unsafe kv scope id: ${JSON.stringify(a)}`)}function p(a){if("string"!=typeof a||!n.test(a))throw Error(`Unsafe kv key name: ${JSON.stringify(a)}`)}let q=a=>f().join(m,a),r=a=>f().join(q(a),"index.json"),s=null;async function t(){let a;if(s&&Date.now()-s.at<3e4)return s.value;try{let b=await (0,i.YM)(j.Z.KV_STORE_SETTINGS,k);a={...k,...b}}catch(b){l.warn("Failed to load kv-store settings; using defaults",b),a=k}return s={value:a,at:Date.now()},a}let u=global.__flujo_kv_store??(global.__flujo_kv_store=new Map);async function v(a){let b=u.get(a);if(b)return b;let c=[];try{let b=await d.promises.readFile(r(a),"utf-8");if(b.trim().length>0){let a=JSON.parse(b);Array.isArray(a)&&(c=a)}}catch(b){"ENOENT"!==b.code&&l.error(`Failed to read kv index for scope ${a}; treating as empty`,b)}return u.set(a,c),c}async function w(a,b){return(0,i.l_)(`kv-store/${a}`,async()=>{let c=await v(a),{next:e,result:f}=b(c);return e!==c&&(u.set(a,e),await d.promises.mkdir(q(a),{recursive:!0}),await (0,i.Zf)(r(a),JSON.stringify(e,null,2))),f})}async function x(a,b,c,d){o(a),p(b);let e=await t();if(!e.enabled)return{skipped:"disabled"};let f="string"==typeof c?c:String(c??""),g=Buffer.byteLength(f,"utf8");return g>e.maxValueBytes?(l.warn(`kv write skipped (size ${g} > cap ${e.maxValueBytes})`,{scope:a,name:b}),{skipped:"size-cap"}):w(a,c=>{let h=c.find(a=>a.name===b);if(!h&&c.length>=e.maxKeysPerScope)return l.warn(`kv write skipped (keys ${c.length} >= cap ${e.maxKeysPerScope})`,{scope:a,name:b}),{next:c,result:{skipped:"keys-cap"}};let i=c.reduce((a,b)=>a+(b===h?0:b.size),0);if(i+g>e.maxScopeBytes)return l.warn(`kv write skipped (scope budget ${i}+${g} > ${e.maxScopeBytes})`,{scope:a,name:b}),{next:c,result:{skipped:"scope-cap"}};let j=Date.now(),k={scope:a,name:b,value:f,size:g,createdAt:h?.createdAt??j,updatedAt:j,expiresAt:d?.expiresAt},m=h?c.map(a=>a===h?k:a):[...c,k];return l.debug(`Set kv ${a}/${b}`,{size:g}),{next:m,result:k}})}async function y(a,b){var c;o(a),p(b);let d=(await v(a)).find(a=>a.name===b);if(d&&(c=Date.now(),"number"!=typeof d.expiresAt||d.expiresAt>c))return d.value}},59448:(a,b,c)=>{c.d(b,{$9:()=>g,Y6:()=>e,ud:()=>f});let d="_-_-_";function e(a,b){let c=function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c++)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193);return(b>>>0).toString(36)}(`${a}\0${b}`),d=64-(5+c.length),e=b.replace(/[^a-zA-Z0-9_-]/g,"_").slice(0,Math.max(0,d));return`mcp_${e}_${c}`}function f(a,b){if(b&&b[a])return b[a];if(a.includes(d)){let b=a.split(d);if(3===b.length)return{server:b[1],tool:b[2]}}return null}function g(a,b){return!!b&&!!b[a]||a.includes(d)}},70834:(a,b,c)=>{c.r(b),c.d(b,{ToolHandler:()=>i});var d=c(18230),e=c(8918),f=c(82464),g=c(59448);let h=(0,d.h)("backend/flow/execution/handlers/ToolHandler");class i{static sanitizeSchema(a){if(!a||"object"!=typeof a)return a;let b=JSON.parse(JSON.stringify(a));return"string"===b.type&&b.format&&"enum"!==b.format&&"date-time"!==b.format&&(b.description||(b.description=""),b.description+=` (format: ${b.format})`,delete b.format),b.properties&&Object.keys(b.properties).forEach(a=>{b.properties[a]=i.sanitizeSchema(b.properties[a])}),b.items&&(b.items=i.sanitizeSchema(b.items)),["oneOf","anyOf","allOf"].forEach(a=>{Array.isArray(b[a])&&(b[a]=b[a].map(a=>i.sanitizeSchema(a)))}),b}static prepareTools(a){let{availableTools:b}=a;if(h.verbose("prepareTools input",JSON.stringify(a)),!b||0===b.length){let a={success:!0,value:{tools:[]}};return h.verbose("prepareTools empty result",JSON.stringify(a)),a}try{for(let a of b){if(!a.name)return{success:!1,error:(0,e.Po)("invalid_tool","Tool missing required 'name' property","unknown")};if(!a.inputSchema)return{success:!1,error:(0,e.Po)("invalid_tool",`Tool '${a.name}' missing required 'inputSchema' property`,a.name)}}let a=[...b].sort((a,b)=>a.name<b.name?-1:+(a.name>b.name)).map(a=>({type:"function",function:{name:a.name,description:a.description||`Tool: ${a.name}`,parameters:i.sanitizeSchema(a.inputSchema)}})),c={success:!0,value:{tools:a}};return h.verbose("prepareTools success result",JSON.stringify(c)),c}catch(b){let a={success:!1,error:(0,e.Po)("tool_preparation_failed",b instanceof Error?b.message:String(b),"unknown")};return h.verbose("prepareTools error result",JSON.stringify(a)),a}}static async processMCPNodes(a){let{mcpNodes:b}=a;if(h.verbose("processMCPNodes input",JSON.stringify(a)),!b||0===b.length){let a={success:!0,value:{availableTools:[]}};return h.verbose("processMCPNodes empty result",JSON.stringify(a)),a}try{let a=[];for(let c of b){let b=c.properties;if(b&&b.boundServer){let d=b.boundServer,h=b.enabledTools||[],i=b.toolTimeout;f.mcpService.setNodeRoots(d,c.id,b.roots);let j=await f.mcpService.connectServer(d);if(!j.success)return{success:!1,error:(0,e.Fp)("server_connection_failed",`Failed to connect to MCP server '${d}': ${j.error}`,d,"connect")};let k=await f.mcpService.listServerTools(d);if(k.error)return{success:!1,error:(0,e.Fp)("list_tools_failed",`Failed to list tools for MCP server '${d}': ${k.error}`,d,"listTools")};for(let b of(k.tools||[]).filter(a=>h.includes(a.name)).map(a=>({originalName:a.name,server:d,name:(0,g.Y6)(d,a.name),timeout:i,description:a.description,inputSchema:a.inputSchema})))a.some(a=>a.name===b.name)||a.push(b)}}let c={success:!0,value:{availableTools:a}};return h.verbose("processMCPNodes success result",JSON.stringify(c)),c}catch(b){let a={success:!1,error:(0,e.Fp)("mcp_processing_failed",b instanceof Error?b.message:String(b),"unknown","processMCPNodes")};return h.verbose("processMCPNodes error result",JSON.stringify(a)),a}}}},71966:(a,b,c)=>{c.d(b,{Bt:()=>A,FA:()=>C,Ns:()=>t,gy:()=>D,jR:()=>v,tm:()=>z,yP:()=>B});var d=c(29021),e=c(33873),f=c.n(e),g=c(55511),h=c(18230),i=c(63129),j=c(79111),k=c(89392),l=c(22861);let m=(0,h.h)("backend/services/runResources"),n=f().join((0,i.ok)(),"db","run-resources"),o=/^[A-Za-z0-9_-]{1,64}$/;function p(a,b){if("string"!=typeof a||!o.test(a))throw Error(`Unsafe run-resource ${b}: ${JSON.stringify(a)}`)}let q=a=>f().join(n,a),r=a=>f().join(q(a),"index.json"),s=(a,b)=>f().join(q(a),`${b}.dat`);function t(a){if("string"!=typeof a||!a.startsWith(l.j))return null;let b=a.slice(l.j.length).split("/");if(2!==b.length)return null;let[c,d]=b;return o.test(c)&&o.test(d)?{conversationId:c,id:d}:null}let u=null;async function v(){let a;if(u&&Date.now()-u.at<3e4)return u.value;try{let b=await (0,j.YM)(k.Z.RUN_RESOURCE_SETTINGS,l.R);a={...l.R,...b}}catch(b){m.warn("Failed to load run-resource settings; using defaults",b),a=l.R}return u={value:a,at:Date.now()},a}let w=global.__flujo_run_resources??(global.__flujo_run_resources=new Map);async function x(a){let b=w.get(a);if(b)return b;let c=[];try{let b=await d.promises.readFile(r(a),"utf-8");if(b.trim().length>0){let a=JSON.parse(b);Array.isArray(a)&&(c=a)}}catch(b){"ENOENT"!==b.code&&m.error(`Failed to read run-resource index for ${a}; treating as empty`,b)}return w.set(a,c),c}async function y(a,b){return(0,j.l_)(`run-resources/${a}`,async()=>{let c=await x(a),{next:d,result:e}=await b(c);return d!==c&&(w.set(a,d),await (0,j.Zf)(r(a),JSON.stringify(d,null,2))),e})}async function z(a){let b;p(a.conversationId,"conversationId");let c=await v(),e=null,f="utf8";a.data&&("text"in a.data?(e=Buffer.from(a.data.text,"utf8"),f="utf8"):(e=Buffer.from(a.data.base64,"base64"),f="base64"));let h=e?.byteLength??0;if(h>c.maxResourceBytes)return m.warn(`Run-resource write skipped (size ${h} > cap ${c.maxResourceBytes})`,{conversationId:a.conversationId,name:a.name,kind:a.kind}),{skipped:"size-cap"};let i=(0,g.randomUUID)(),j=await y(a.conversationId,async g=>{var j;let k=a.name?g.find(b=>b.name===a.name):void 0,n=g.reduce((a,b)=>a+(b===k?0:b.size),0);if(n+h>c.maxConversationBytes)return m.warn(`Run-resource write skipped (conversation budget ${n}+${h} > ${c.maxConversationBytes})`,{conversationId:a.conversationId,name:a.name,kind:a.kind}),{next:g,result:{skipped:"conversation-cap"}};let o={id:i,uri:(j=a.conversationId,`${l.j}${j}/${i}`),conversationId:a.conversationId,name:a.name,mimeType:a.mimeType,size:h,kind:a.kind,encoding:f,createdAt:Date.now(),producedBy:a.producedBy,origin:a.origin,readBy:[]};e&&(await d.promises.mkdir(q(a.conversationId),{recursive:!0}),await d.promises.writeFile(s(a.conversationId,i),e));let p=k?g.filter(a=>a!==k):g.slice();return p.push(o),b=k&&k.size>0?k:void 0,m.debug(`Stored run resource ${o.uri}`,{kind:o.kind,size:h,name:o.name}),{next:p,result:o}});return b&&d.promises.unlink(s(a.conversationId,b.id)).catch(()=>{}),j}async function A(a){return p(a,"conversationId"),(await x(a)).slice()}async function B(a=200){let b=[];try{b=(await d.promises.readdir(n,{withFileTypes:!0})).filter(a=>a.isDirectory()&&o.test(a.name)).map(a=>a.name)}catch(a){if("ENOENT"===a.code)return[];throw a}let c=[];for(let a of b)c.push(...await x(a));return c.sort((a,b)=>b.createdAt-a.createdAt),c.slice(0,a)}async function C(a,b){return p(a,"conversationId"),(await x(a)).find(a=>a.name===b)??null}async function D(a,b){let c,e=t(a);if(!e)return null;let f=(await x(e.conversationId)).find(a=>a.id===e.id);if(!f)return null;if("link"===f.kind)c={contents:[{uri:f.uri,mimeType:f.mimeType??"text/plain",text:`Run resource link → ${f.origin?`${f.origin.server}: ${f.origin.uri}`:"unknown origin"}`}]};else{let b;try{b=await d.promises.readFile(s(e.conversationId,e.id))}catch(b){return m.error(`Run-resource payload missing for ${a}`,b),null}c="utf8"===f.encoding?{contents:[{uri:f.uri,mimeType:f.mimeType??"text/plain",text:b.toString("utf8")}]}:{contents:[{uri:f.uri,mimeType:f.mimeType??"application/octet-stream",blob:b.toString("base64")}]}}if(b)try{await y(e.conversationId,async a=>{let c=a.find(a=>a.id===e.id);if(!c)return{next:a,result:void 0};let d={...c,readBy:[...c.readBy,b]};return{next:a.map(a=>a===c?d:a),result:void 0}}),f.readBy.push(b)}catch(b){m.warn(`Failed to persist readBy for ${a}`,b)}return{entry:f,contents:c}}},78606:(a,b,c)=>{c.d(b,{C:()=>e,F9:()=>i,PP:()=>h,wM:()=>f});let d=["contains","regex","equals","always"];function e(a){return"string"==typeof a&&d.includes(a)}function f(a){try{return new RegExp(a),!0}catch{return!1}}function g(a){return"string"==typeof a?a:Array.isArray(a)?a.map(a=>"string"==typeof a?a:a&&"object"==typeof a&&"text"in a&&"string"==typeof a.text?a.text:"").join(""):""}function h(a,b="last-assistant"){if(!Array.isArray(a)||0===a.length)return null;if("last-message"===b)return g(a[a.length-1]?.content);for(let b=a.length-1;b>=0;b--)if(a[b]?.role==="assistant")return g(a[b]?.content);return null}function i(a,b){let c;if(!a)return!1;let d="string"==typeof b?b:"",e="string"==typeof a.value?a.value:String(a.value??"");switch(a.kind){case"contains":c=a.ignoreCase?d.toLowerCase().includes(e.toLowerCase()):d.includes(e);break;case"equals":c=a.ignoreCase?d.toLowerCase()===e.toLowerCase():d===e;break;case"regex":{let b;try{b=new RegExp(e,a.ignoreCase?"i":void 0)}catch(a){return console.warn("[edgeConditions] invalid regex predicate; treating as no-match",e,a),!1}c=b.test(d);break}case"always":c=!0;break;default:return console.warn("[edgeConditions] unknown condition kind; treating as no-match",a.kind),!1}return a.negate?!c:c}},80808:(a,b,c)=>{c.d(b,{s:()=>x});var d=c(18230),e=c(8918),f=c(59448),g=c(18975),h=c(1191),i=c(12763),j=c(22124),k=c(36303),l=c(82464),m=c(69088),n=c(71966);let o=(0,d.h)("backend/services/runResources/capture");function p(a){var b;return`[FLUJO stored this ${a.mimeType??a.kind} (${(b=a.size)<1024?`${b} B`:b<1048576?`${Math.round(b/1024)} KB`:`${(b/1048576).toFixed(1)} MB`}) as run resource ${a.uri}. Read it back with the 'read_resource' tool (or the 'flujo' MCP server's resources/read) if needed.]`}async function q(a){let{conversationId:b,server:c,toolName:d,toolCallId:e,nodeId:f,result:g,settings:h}=a,i=[];if(g.isError||!Array.isArray(g.content))return{result:g,captured:i};let j={source:"tool-result",nodeId:f,server:c,toolName:d,toolCallId:e},k=async(a,e,f,g)=>{try{let h=await (0,n.tm)({conversationId:b,mimeType:f,kind:a,data:e,producedBy:g?{...j,source:"mcp-link"}:j,origin:g});if("skipped"in h)return o.warn(`Auto-capture skipped (${h.skipped}) for ${c}/${d}`),null;return i.push(h),h}catch(a){return o.error(`Auto-capture failed for ${c}/${d}; keeping inline content`,a),null}},l=[];for(let a of g.content)switch(a.type){case"image":case"audio":{let b=await k(a.type,{base64:a.data},a.mimeType);l.push(b?{type:"text",text:p(b)}:a);break}case"resource_link":await k("link",void 0,a.mimeType,{server:c,uri:a.uri}),l.push(a);break;case"resource":{let b=a.resource;if("string"==typeof b.blob){let d=b.blob,e=await k("blob",{base64:d},b.mimeType,{server:c,uri:b.uri});l.push(e?{type:"text",text:p(e)}:a)}else if("string"==typeof b.text){let d=b.text;if(d.length>=h.textThresholdChars){let e=await k("text",{text:d},b.mimeType??"text/plain",{server:c,uri:b.uri});e&&h.replaceLargeTextWithStub?l.push({type:"text",text:`${d.slice(0,1024)}
62
- …
63
- ${p(e)}`}):l.push(a)}else l.push(a)}else l.push(a);break}case"text":if("string"==typeof a.text&&a.text.length>=h.textThresholdChars){let b=await k("text",{text:a.text},"text/plain");b&&h.replaceLargeTextWithStub?l.push({type:"text",text:`${a.text.slice(0,1024)}
64
- …
65
- ${p(b)}`}):l.push(a)}else l.push(a);break;default:l.push(a)}return 0===i.length?{result:g,captured:i}:{result:{...g,content:l},captured:i}}var r=c(43736),s=c(96249);let t=globalThis,u=t.__flujoToolApprovals??(t.__flujoToolApprovals=new Map);var v=c(89850);let w=(0,d.h)("backend/flow/execution/handlers/ModelHandler");class x{static async resolveToolUiLink(a,b){let c=function(a){if(a&&"object"==typeof a){for(let b of[a.ui,a["io.modelcontextprotocol/ui"]])if(b&&"object"==typeof b){let a=b.resourceUri;if("string"==typeof a&&a.trim().toLowerCase().startsWith("ui://"))return a}}}(b?._meta);if(c)try{let b=await l.mcpService.loadServerConfigs();if(!Array.isArray(b))return;let d=b.find(b=>b.name===a);if(!d?.enableMcpApps)return;return{uri:c,serverName:a}}catch(b){w.warn(`resolveToolUiLink: failed to check MCP Apps opt-in for ${a}`,b);return}}static extractProviderErrorDetails(a,b){let c=b||a?.message||"Provider returned an unspecified error in the response body.";b&&"string"==typeof a?.message&&a.message&&a.message!==b&&(c=`${b} - ${a.message}`);let d=a?.metadata;if(d){let a;if("string"==typeof d.raw)try{let b=JSON.parse(d.raw);a=b?.error?.message||b?.message||d.raw}catch{a=d.raw}else d.raw&&"object"==typeof d.raw&&(a=d.raw.error?.message||d.raw.message);let b=[];d.provider_name&&b.push(String(d.provider_name)),a&&b.push(a),b.length>0&&(c=`${c} (upstream: ${b.join(": ")})`)}return"string"==typeof a?.origin&&a.origin&&(c=`${c} (origin: ${a.origin})`),{message:c,code:a?.code,type:a?.type,param:a?.param,retryAfter:d?.retry_after_seconds!=null?String(d.retry_after_seconds):void 0,providerError:a}}static isConversationCancelled(a){try{let{FlowExecutor:b}=c(44561),{isCancelledByAncestry:d}=c(44479);return d(a,b.conversationStates)}catch(b){return w.warn(`Cancellation check failed for conversation ${a}`,{err:b}),!1}}static persistStreamedMessage(a,b){try{let{FlowExecutor:d}=c(44561),e=d.conversationStates.get(a);if(!e||!Array.isArray(e.messages))return;!function(a,b){let c=a.findIndex(a=>a.id===b.id);c>=0?a[c]=b:a.push(b)}(e.messages,b),e.updatedAt=Date.now()}catch(b){w.warn(`Failed to fold streamed message into conversation ${a}`,{err:b})}}static async buildRunResourceMarkers(a){try{let b;for(let c of(await (0,n.Bt)(a))){let a=c.producedBy?.toolCallId;if(!a)continue;let d=c.producedBy.source;if("tool-result"!==d&&"tool-args"!==d)continue;b||(b=new Map);let e=b.get(a)??{};"tool-result"===d?e.result=c:e.args=c,b.set(a,e)}return b}catch(b){w.warn(`Failed to build run-resource markers for conversation ${a}`,b);return}}static async callModel(a){let b,{modelId:c,prompt:d,messages:e,wireMessages:f,tools:g,nodeName:h,nodeId:k,toolNameMap:l,maxTurns:m,conversationId:n,requireToolApproval:o}=a;try{let a=await i.modelService.getModel(c);a&&(a.displayName||a.name,a.name,b=a.maxTurns)}catch(a){w.warn(`Failed to fetch model information for prefix: ${a instanceof Error?a.message:String(a)}`)}let p=function(a,b,c=j.m){return"number"==typeof a&&Number.isFinite(a)&&a>0?a:"number"==typeof b&&Number.isFinite(b)&&b>0?b:c}(m,b);w.info("callModel - Single execution",{modelId:c,messagesCount:e.length,toolsCount:g?.length||0,nodeName:h,nodeId:k}),w.verbose("callModel input",a);let q=n?s.$.emitterFor(n):void 0,t=o&&q&&n?async a=>{let b={id:a.id,type:"function",function:{name:a.name,arguments:JSON.stringify(a.args??{})}};return new Promise(a=>{let c;(c=u.get(n))||(c=new Map,u.set(n,c)),c.set(b.id,{toolCall:b,resolve:a}),q({type:"run:awaiting_approval",pendingToolCalls:function(a){let b=u.get(a);return b?Array.from(b.values(),a=>a.toolCall):[]}(n)})})}:void 0,y=q?a=>{let b=k?{...a,processNodeId:k}:a;q({type:"message",message:b,node:k?{nodeId:k}:void 0}),n&&x.persistStreamedMessage(n,b)}:void 0,z=n?()=>x.isConversationCancelled(n):void 0,A=k?{nodeId:k,nodeName:h,nodeType:"process"}:void 0,B=n&&(g??[]).some(a=>"function"===a.type&&(0,r.pb)(a.function.name))?{[r.W5]:async a=>{let b=await (0,r.ll)(r.W5,a,{conversationId:n,node:A,emit:q});if(!b.success)throw Error(b.error??"write_resource failed");return b.data},[r.JM]:async a=>{let b=await (0,r.ll)(r.JM,a,{conversationId:n,node:A,emit:q});if(!b.success)throw Error(b.error??"read_resource failed");return b.data}}:void 0,C=n?await x.buildRunResourceMarkers(n):void 0,D=await this.generateCompletion(c,d,f??e,g,{toolNameMap:l,maxTurns:p,requestToolApproval:t,onTranscriptMessage:y,shouldAbort:z,conversationId:n,nodeId:k,localToolExecutors:B,runResourceMarkers:C});if(!D.success)return w.verbose("callModel error response",D),{success:!1,error:D.error};let E=D.value,F=E.content||"",G=[...e],H=function(a){if(!a)return;let b=a.prompt_tokens_details?.cached_tokens;return{promptTokens:a.prompt_tokens??0,completionTokens:a.completion_tokens??0,totalTokens:a.total_tokens??0,...null!=b?{cacheReadTokens:b}:{}}}(E.fullResponse?.usage);if(E.transcript&&E.transcript.length>0){let a=Date.now(),b=E.transcript;b.forEach((c,d)=>{let e=d===b.length-1;G.push({...c,id:c.id??(0,v.A)(),timestamp:c.timestamp??a+d,processNodeId:k,...e&&H?{usage:H}:{}})})}else{let a={id:(0,v.A)(),role:"assistant",content:F,tool_calls:E.fullResponse?.choices?.[0]?.message?.tool_calls,timestamp:Date.now(),processNodeId:k,...H?{usage:H}:{}};G.push(a)}let I=E.fullResponse?.choices?.[0]?.message?.tool_calls?.map(a=>{try{return{name:a.function.name,args:JSON.parse(a.function.arguments),id:a.id,result:""}}catch(b){return w.warn(`Failed to parse tool arguments for call ${a.id}`,{args:a.function.arguments,error:b}),{name:a.function.name,args:{},id:a.id,result:""}}}).filter(Boolean),J={success:!0,value:{content:F,messages:G,fullResponse:E.fullResponse,toolCalls:I}};return w.verbose("callModel single step result",J),J}static async generateCompletion(a,b,d,f,j){let l;w.verbose("generateCompletion input",{modelId:a,prompt:b,messages:d,tools:f});let m=new AbortController,n=()=>{l&&(clearInterval(l),l=void 0)};try{let b,h,o,p=await i.modelService.getModel(a);if(!p)return{success:!1,error:(0,e.M5)("model_not_found",`Model not found: ${a}`,a)};let q=p.temperature?parseFloat(p.temperature):0,r=await i.modelService.resolveAndDecryptApiKey(p.ApiKey);if(!r)return{success:!1,error:(0,e.M5)("api_key_error","Failed to resolve or decrypt API key",a)};w.verbose(`decrypted api key ${r}`),w.verbose(` baseurl ${p.baseUrl}`);let s=(0,g.ae)(d);if(f&&f.length>0){let{ToolHandler:a}=c(70834);b=f.map(b=>"function"===b.type&&b.function.parameters?{...b,function:{...b.function,parameters:a.sanitizeSchema(b.function.parameters)}}:b)}let t=(0,k.getCompletionAdapter)(p);if(w.debug("calling chatcompletion"),w.verbose("calling chatcompletion now with ADAPTER",p.adapter||"openai"),w.verbose("calling chatcompletion now with MODEL",p.name),w.verbose("calling chatcompletion now with TEMP",q),w.verbose("calling chatcompletion now with MESSAGES",s),w.verbose("calling chatcompletion now with TOOLS",b),w.debug("[ModelHandler.generateCompletion] Sending request via adapter",{adapter:p.adapter||"openai",model:p.name}),j?.shouldAbort&&(j.shouldAbort()?m.abort():(l=setInterval(()=>{j.shouldAbort()&&(w.info("Cancellation detected mid-completion; aborting the provider call.",{modelId:a}),m.abort(),n())},250),l.unref?.())),m.signal.aborted)return{success:!1,error:(0,e.M5)("cancelled","Execution cancelled by user.",a)};try{({completion:h,transcript:o}=await t.createCompletion({model:p,apiKey:r,messages:s,tools:b,temperature:q,toolNameMap:j?.toolNameMap,localToolExecutors:j?.localToolExecutors,maxTurns:j?.maxTurns,requestToolApproval:j?.requestToolApproval,onTranscriptMessage:j?.onTranscriptMessage,signal:m.signal,conversationId:j?.conversationId,nodeId:j?.nodeId,runResourceMarkers:j?.runResourceMarkers}))}finally{n()}if(w.debug("[ModelHandler.generateCompletion] Received raw response from OpenAI API",{response:h}),w.verbose("chatcompletion returned"),w.verbose("chatcompletion returned",h),h&&"object"==typeof h&&"error"in h&&h.error){w.warn("API call returned successfully but contained an error object:",JSON.stringify(h.error));let b=h.error,c=x.extractProviderErrorDetails(b),d={success:!1,error:(0,e.M5)("api_error",c.message,a,void 0,{code:c.code,type:c.type,param:c.param,retryAfter:c.retryAfter,providerError:c.providerError})};return w.verbose("generateCompletion returning error from response body",d),d}let u=h?.choices?.[0];if(!u)return w.error("API response missing choices array or first choice.",{response:h}),{success:!1,error:(0,e.M5)("api_error","Invalid response structure from API: Missing choices.",a,void 0,{rawResponse:h})};let v={success:!0,value:{content:u.message?.content||"",messages:[...d],fullResponse:h,transcript:o}};return w.verbose("generateCompletion success result",v),v}catch(c){if(n(),m.signal.aborted)return w.info("Provider call aborted by user cancellation.",{modelId:a}),{success:!1,error:(0,e.M5)("cancelled","Execution cancelled by user.",a)};if(w.error("[ModelHandler.generateCompletion] Caught error during OpenAI API call",{rawError:c}),w.error("--- Error during openai.chat.completions.create ---"),c instanceof Error?(w.error(`Error Name: ${c.name}`),w.error(`Error Message: ${c.message}`),w.error(`Error Stack: ${c.stack}`)):w.error("Caught non-Error object:",c),c instanceof h.Ay.APIError&&(w.error(`API Error Status: ${c.status}`),w.error(`API Error Type: ${c.type}`),w.error(`API Error Code: ${c.code}`),w.error(`API Error Param: ${c.param}`),w.error(`API Error Headers: ${JSON.stringify(c.headers)}`)),w.error("--- End Error Details ---"),c instanceof h.Ay.APIError){let b=c.error,d=x.extractProviderErrorDetails(b,c.message),f=c.headers||{},g=f["retry-after"]??f["Retry-After"],h=void 0!==g?String(g):d.retryAfter,i=f["x-ratelimit-reset"]??f["x-ratelimit-reset-requests"],j={success:!1,error:(0,e.M5)("api_error",d.message,a,void 0,{status:c.status,type:d.type??c.type,code:d.code??c.code,param:d.param??c.param,retryAfter:h,rateLimitReset:void 0!==i?String(i):void 0,providerError:d.providerError,stack:c.stack})};return w.verbose("generateCompletion API error",j),j}let b={success:!1,error:(0,e.M5)("unknown_error",c instanceof Error?c.message:String(c),a,void 0,{stack:c instanceof Error?c.stack:void 0})};return w.verbose("generateCompletion unknown error",b),b}}static async processToolCalls(a){let{toolCalls:b,toolNameMap:c,emit:d,conversationId:g,node:h}=a;if(w.verbose("processToolCalls input",a),!b||0===b.length){let a={success:!0,value:{toolCallMessages:[],processedToolCalls:[]}};return w.verbose("processToolCalls empty result",a),a}try{let e=[],i=[];for(let j=0;j<b.length;j++){let{id:k,function:{name:o,arguments:p}}=b[j];if(a.shouldAbort?.()){for(let a of(w.info(`Cancellation detected before tool call ${o}; skipping the remaining ${b.length-j} call(s).`),b.slice(j)))e.push({id:(0,v.A)(),role:"tool",tool_call_id:a.id,content:"Execution cancelled by user before this tool call ran.",timestamp:Date.now()});break}try{let a,b=JSON.parse(p);if(w.info("trying to call tool",o),o.startsWith("handoff_to_")||"handoff"===o){w.info(`Processing handoff tool: ${o}`);let a={handoff:!0,args:b},c=JSON.stringify(a);e.push({id:(0,v.A)(),role:"tool",tool_call_id:k,content:c,timestamp:Date.now()}),i.push({name:o,args:b,id:k,result:c});continue}if((0,r.pb)(o)){d?.({type:"tool:call",toolCallId:k,name:o,args:p});let a=await (0,r.ll)(o,b,{conversationId:g,node:h,emit:d}),c=a.success?JSON.stringify(a.data):`Error: ${a.error}`;d?.({type:"tool:result",toolCallId:k,name:o,result:c.length>500?`${c.slice(0,500)}…`:c,isError:!a.success}),e.push({id:(0,v.A)(),role:"tool",tool_call_id:k,content:c,timestamp:Date.now()}),i.push({name:o,args:b,id:k,result:c});continue}let j=(0,f.ud)(o,c);if(!j)throw w.error("invalid tool format",o),Error(`Invalid tool name format: ${o}`);let s=j.server,t=j.tool;if(d?.({type:"tool:call",toolCallId:k,name:o,args:p}),g)try{a=await (0,n.jR)()}catch(a){w.warn("Failed to load run-resource settings; skipping capture",a)}if(g&&a?.autoCaptureEnabled&&"string"==typeof p&&p.length>=a.textThresholdChars)try{let a=await (0,n.tm)({conversationId:g,mimeType:"application/json",kind:"text",data:{text:p},producedBy:{source:"tool-args",nodeId:h?.nodeId,server:s,toolName:t,toolCallId:k}});"skipped"in a||d?.({type:"resource:write",node:h,server:"flujo",uri:a.uri,name:a.name,mimeType:a.mimeType,size:a.size,source:"tool-args",toolCallId:k})}catch(a){w.error("Tool-args capture failed; continuing with the call",a)}let u=j.timeout??m.aI,y=await l.mcpService.callTool(s,t,b,u,a=>d?.({type:"tool:progress",toolCallId:k,name:o,progress:a.progress,total:a.total,message:a.message})),z=y.data;if(y.success&&g&&a)try{if(a.autoCaptureEnabled){let b=await q({conversationId:g,server:s,toolName:t,toolCallId:k,nodeId:h?.nodeId,result:y.data,settings:a});for(let a of(z=b.result,b.captured))d?.({type:"resource:write",node:h,server:"flujo",uri:a.uri,name:a.name,mimeType:a.mimeType,size:a.size,source:"tool-result",toolCallId:k})}}catch(a){w.error("Run-resource auto-capture failed; keeping original tool result",a),z=y.data}let A=y.success?JSON.stringify(z):`Error: ${y.error}`;d?.({type:"tool:result",toolCallId:k,name:o,result:A.length>500?`${A.slice(0,500)}…`:A,isError:!y.success});let B=y.success?await x.resolveToolUiLink(s,y.data):void 0;e.push({id:(0,v.A)(),role:"tool",tool_call_id:k,content:A,timestamp:Date.now(),...B?{ui:B}:{}}),i.push({name:o,args:b,id:k,result:A})}catch(b){let a=`Error: ${b instanceof Error?b.message:"Unknown error"}`;d?.({type:"tool:result",toolCallId:k,name:o,result:a,isError:!0}),e.push({id:(0,v.A)(),role:"tool",tool_call_id:k,content:a,timestamp:Date.now()}),i.push({name:o,args:{},id:k,result:a})}}let j={success:!0,value:{toolCallMessages:e,processedToolCalls:i}};return w.verbose("processToolCalls success result",j),j}catch(b){let a={success:!1,error:(0,e.Po)("tool_processing_failed",b instanceof Error?b.message:String(b),"unknown")};return w.verbose("processToolCalls error result",a),a}}static hasToolCalls(a){return!!(a.fullResponse?.choices?.[0]?.message?.tool_calls&&a.fullResponse.choices[0].message.tool_calls.length>0)}}},85701:(a,b,c)=>{c.d(b,{A:()=>d});let d=8},96249:(a,b,c)=>{c.d(b,{$:()=>i});var d=c(94735),e=c(34115);let f=(0,c(18230).h)("backend/execution/flow/engine/ExecutionEventBus");class g{getChannel(a){let b=this.channels.get(a);if(!b){let c=new d.EventEmitter;c.setMaxListeners(0),b={emitter:c,seq:0,buffer:[]},this.channels.set(a,b)}return b}cancelCleanup(a){let b=this.cleanupTimers.get(a);b&&(clearTimeout(b),this.cleanupTimers.delete(a))}scheduleCleanup(a,b){this.cancelCleanup(a);let c=setTimeout(()=>{this.cleanupTimers.delete(a);let c=this.channels.get(a);c&&c.seq===b&&(c.emitter.listenerCount("event")>0||this.channels.delete(a))},3e5);"function"==typeof c.unref&&c.unref(),this.cleanupTimers.set(a,c)}emit(a,b){let c=this.getChannel(a),d={...b,conversationId:a,seq:c.seq++,timestamp:Date.now()};return c.buffer.push(d),c.buffer.length>1e3&&c.buffer.shift(),c.emitter.emit("event",d),(0,e.LB)(d),"run:done"===d.type?this.scheduleCleanup(a,c.seq):this.cancelCleanup(a),d}emitterFor(a){return b=>{try{this.emit(a,b)}catch(b){f.warn(`Failed to emit execution event for ${a}`,{err:b})}}}getBufferedSince(a,b){let c=this.channels.get(a);return c?c.buffer.filter(a=>a.seq>=b):[]}currentSeq(a){return this.channels.get(a)?.seq??0}subscribe(a,b){let c=this.getChannel(a);return c.emitter.on("event",b),()=>{c.emitter.off("event",b)}}constructor(){this.channels=new Map,this.cleanupTimers=new Map}}let h=globalThis,i=h.__flujoExecutionEventBus??(h.__flujoExecutionEventBus=new g)}};
@@ -1,37 +0,0 @@
1
- "use strict";exports.id=4677,exports.ids=[4677],exports.modules={2117:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},22797:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8"}),"ErrorOutline")},40216:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M22 11V3h-7v3H9V3H2v8h7V8h2v10h4v3h7v-8h-7v3h-2V8h2v3zM7 9H4V5h3zm10 6h3v4h-3zm0-10h3v4h-3z"}),"AccountTreeOutlined")},48823:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2M6 9h12v2H6zm8 5H6v-2h8zm4-6H6V6h12z"}),"Chat")},63908:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"}),"ExpandLess")},72197:(a,b,c)=>{c.d(b,{A:()=>u});var d=c(38301),e=c(43249),f=c(2783),g=c(37489),h=c(78871),i=c(18168),j=c(68333),k=c(6636),l=c(29565),m=c(33105);function n(a){return(0,m.Ay)("MuiSkeleton",a)}(0,l.A)("MuiSkeleton",["root","text","rectangular","rounded","circular","pulse","wave","withChildren","fitContent","heightAuto"]);var o=c(21124);let p=(0,h.i7)`
2
- 0% {
3
- opacity: 1;
4
- }
5
-
6
- 50% {
7
- opacity: 0.4;
8
- }
9
-
10
- 100% {
11
- opacity: 1;
12
- }
13
- `,q=(0,h.i7)`
14
- 0% {
15
- transform: translateX(-100%);
16
- }
17
-
18
- 50% {
19
- /* +0.5s of delay between each loop */
20
- transform: translateX(100%);
21
- }
22
-
23
- 100% {
24
- transform: translateX(100%);
25
- }
26
- `,r="string"!=typeof p?(0,h.AH)`
27
- animation: ${p} 2s ease-in-out 0.5s infinite;
28
- `:null,s="string"!=typeof q?(0,h.AH)`
29
- &::after {
30
- animation: ${q} 2s linear 0.5s infinite;
31
- }
32
- `:null,t=(0,i.Ay)("span",{name:"MuiSkeleton",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,b[c.variant],!1!==c.animation&&b[c.animation],c.hasChildren&&b.withChildren,c.hasChildren&&!c.width&&b.fitContent,c.hasChildren&&!c.height&&b.heightAuto]}})((0,j.A)(({theme:a})=>{let b=String(a.shape.borderRadius).match(/[\d.\-+]*\s*(.*)/)[1]||"px",c=parseFloat(a.shape.borderRadius);return{display:"block",backgroundColor:a.vars?a.vars.palette.Skeleton.bg:(0,g.X4)(a.palette.text.primary,"light"===a.palette.mode?.11:.13),height:"1.2em",variants:[{props:{variant:"text"},style:{marginTop:0,marginBottom:0,height:"auto",transformOrigin:"0 55%",transform:"scale(1, 0.60)",borderRadius:`${c}${b}/${Math.round(c/.6*10)/10}${b}`,"&:empty:before":{content:'"\\00a0"'}}},{props:{variant:"circular"},style:{borderRadius:"50%"}},{props:{variant:"rounded"},style:{borderRadius:(a.vars||a).shape.borderRadius}},{props:({ownerState:a})=>a.hasChildren,style:{"& > *":{visibility:"hidden"}}},{props:({ownerState:a})=>a.hasChildren&&!a.width,style:{maxWidth:"fit-content"}},{props:({ownerState:a})=>a.hasChildren&&!a.height,style:{height:"auto"}},{props:{animation:"pulse"},style:r||{animation:`${p} 2s ease-in-out 0.5s infinite`}},{props:{animation:"wave"},style:{position:"relative",overflow:"hidden",WebkitMaskImage:"-webkit-radial-gradient(white, black)","&::after":{background:`linear-gradient(
33
- 90deg,
34
- transparent,
35
- ${(a.vars||a).palette.action.hover},
36
- transparent
37
- )`,content:'""',position:"absolute",transform:"translateX(-100%)",bottom:0,left:0,right:0,top:0}}},{props:{animation:"wave"},style:s||{"&::after":{animation:`${q} 2s linear 0.5s infinite`}}}]}})),u=d.forwardRef(function(a,b){let c=(0,k.b)({props:a,name:"MuiSkeleton"}),{animation:d="pulse",className:g,component:h="span",height:i,style:j,variant:l="text",width:m,...p}=c,q={...c,animation:d,component:h,variant:l,hasChildren:!!p.children},r=(a=>{let{classes:b,variant:c,animation:d,hasChildren:e,width:g,height:h}=a;return(0,f.A)({root:["root",c,d,e&&"withChildren",e&&!g&&"fitContent",e&&!h&&"heightAuto"]},n,b)})(q);return(0,o.jsx)(t,{as:h,ref:b,className:(0,e.A)(r.root,g),ownerState:q,...p,style:{width:m,height:i,...j}})})},83144:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)([(0,e.jsx)("path",{d:"m17 17 5-5-5-5-1.41 1.41L18.17 11H9v2h9.17l-2.58 2.59z"},"0"),(0,e.jsx)("path",{d:"M19 19H5V5h14v2h2V5c0-1.1-.89-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.11 0 2-.9 2-2v-2h-2z"},"1")],"Output")},87351:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),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-2V8zm2 16H8v-2h8zm0-4H8v-2h8zm-3-5V3.5L18.5 9z"}),"Description")},93995:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M7.58 4.08 6.15 2.65C3.75 4.48 2.17 7.3 2.03 10.5h2c.15-2.65 1.51-4.97 3.55-6.42m12.39 6.42h2c-.15-3.2-1.73-6.02-4.12-7.85l-1.42 1.43c2.02 1.45 3.39 3.77 3.54 6.42M18 11c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2zm-6 11c.14 0 .27-.01.4-.04.65-.14 1.18-.58 1.44-1.18q.15-.36.15-.78h-4c.01 1.1.9 2 2.01 2"}),"NotificationsActive")},98540:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6"}),"Settings")}};