flujo-ai 3.27.0 → 3.29.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 (710) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +410 -329
  3. package/.next/app-path-routes-manifest.json +32 -20
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/react-loadable-manifest.json +17 -4
  6. package/.next/routes-manifest.json +31 -0
  7. package/.next/server/app/_not-found/page.js +2 -2
  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 +3 -3
  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 +3 -3
  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.js +1 -1
  25. package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/encryption/secure/route.js +1 -1
  27. package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
  28. package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/env/route.js +2 -2
  30. package/.next/server/app/api/env/route_client-reference-manifest.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/[id]/versions/[versionId]/route.js +1 -0
  34. package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js.nft.json +1 -0
  35. package/.next/server/app/api/flow/[id]/versions/[versionId]/route_client-reference-manifest.js +1 -0
  36. package/.next/server/app/api/flow/[id]/versions/route.js +1 -0
  37. package/.next/server/app/api/flow/[id]/versions/route.js.nft.json +1 -0
  38. package/.next/server/app/api/flow/[id]/versions/route_client-reference-manifest.js +1 -0
  39. package/.next/server/app/api/flow/compile/route.js +1 -1
  40. package/.next/server/app/api/flow/compile/route.js.nft.json +1 -1
  41. package/.next/server/app/api/flow/compile/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/flow/generate/route.js +1 -1
  43. package/.next/server/app/api/flow/generate/route.js.nft.json +1 -1
  44. package/.next/server/app/api/flow/generate/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/flow/improve/route.js +1 -1
  46. package/.next/server/app/api/flow/improve/route.js.nft.json +1 -1
  47. package/.next/server/app/api/flow/improve/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/flow/prompt-renderer/route.js +2 -2
  49. package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
  50. package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/flow/quick-chat/route.js +1 -1
  52. package/.next/server/app/api/flow/quick-chat/route.js.nft.json +1 -1
  53. package/.next/server/app/api/flow/quick-chat/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/flow/repair/route.js +1 -1
  55. package/.next/server/app/api/flow/repair/route.js.nft.json +1 -1
  56. package/.next/server/app/api/flow/repair/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/flow/route.js.nft.json +1 -1
  58. package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/git/route.js +1 -1
  60. package/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/init/route.js +1 -1
  62. package/.next/server/app/api/init/route.js.nft.json +1 -1
  63. package/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/local-models/capability/route.js +2 -1
  65. package/.next/server/app/api/local-models/capability/route.js.nft.json +1 -1
  66. package/.next/server/app/api/local-models/capability/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/local-models/pull/route.js +2 -1
  68. package/.next/server/app/api/local-models/pull/route.js.nft.json +1 -1
  69. package/.next/server/app/api/local-models/pull/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/local-models/suggest/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/mcp/app-sandbox/route.js +1 -0
  72. package/.next/server/app/api/mcp/app-sandbox/route.js.nft.json +1 -0
  73. package/.next/server/app/api/mcp/app-sandbox/route_client-reference-manifest.js +1 -0
  74. package/.next/server/app/api/mcp/cancel/route.js +2 -2
  75. package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
  76. package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/mcp/oauth-capability/route.js +1 -0
  78. package/.next/server/app/api/mcp/oauth-capability/route.js.nft.json +1 -0
  79. package/.next/server/app/api/mcp/oauth-capability/route_client-reference-manifest.js +1 -0
  80. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -1
  81. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
  82. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -1
  84. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
  85. package/.next/server/app/api/mcp/servers/[name]/prompts/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -1
  87. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
  88. package/.next/server/app/api/mcp/servers/[name]/resources/read/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -1
  90. package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
  91. package/.next/server/app/api/mcp/servers/[name]/resources/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
  93. package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
  94. package/.next/server/app/api/mcp/servers/[name]/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -1
  96. package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
  97. package/.next/server/app/api/mcp/servers/[name]/status/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -1
  99. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
  100. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -1
  102. package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
  103. package/.next/server/app/api/mcp/servers/[name]/tools/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/mcp/servers/route.js +1 -1
  105. package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
  106. package/.next/server/app/api/mcp/servers/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/mcp/test-connection/route.js +1 -1
  108. package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
  109. package/.next/server/app/api/mcp/test-connection/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
  111. package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
  112. package/.next/server/app/api/mcp/test-connection/stream/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/mcp-registry/route.js +2 -2
  114. package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
  115. package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/mcp-registry/spotlight/route.js +1 -1
  117. package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/model/[id]/route.js +1 -1
  119. package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
  120. package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/model/provider/route.js +2 -2
  122. package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
  123. package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/model/route.js +1 -1
  125. package/.next/server/app/api/model/route.js.nft.json +1 -1
  126. package/.next/server/app/api/model/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/model/test/route.js +2 -2
  128. package/.next/server/app/api/model/test/route.js.nft.json +1 -1
  129. package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/oauth/callback/route.js +2 -2
  131. package/.next/server/app/api/oauth/callback/route.js.nft.json +1 -1
  132. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/oauth/initiate/route.js +2 -2
  134. package/.next/server/app/api/oauth/initiate/route.js.nft.json +1 -1
  135. package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/oauth/reset/route.js +2 -2
  137. package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
  138. package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/packages/build/route.js +1 -1
  140. package/.next/server/app/api/packages/build/route.js.nft.json +1 -1
  141. package/.next/server/app/api/packages/build/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/packages/derive-secrets/route.js +1 -1
  143. package/.next/server/app/api/packages/derive-secrets/route.js.nft.json +1 -1
  144. package/.next/server/app/api/packages/derive-secrets/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/packages/install/route.js +1 -1
  146. package/.next/server/app/api/packages/install/route.js.nft.json +1 -1
  147. package/.next/server/app/api/packages/install/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/packages/install/status/route.js +1 -1
  149. package/.next/server/app/api/packages/install/status/route.js.nft.json +1 -1
  150. package/.next/server/app/api/packages/install/status/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/packages/installed/route.js +1 -0
  152. package/.next/server/app/api/packages/installed/route.js.nft.json +1 -0
  153. package/.next/server/app/api/packages/installed/route_client-reference-manifest.js +1 -0
  154. package/.next/server/app/api/packages/resolve/route.js +1 -1
  155. package/.next/server/app/api/packages/resolve/route.js.nft.json +1 -1
  156. package/.next/server/app/api/packages/resolve/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/packages/scan-targets/route.js +1 -0
  158. package/.next/server/app/api/packages/scan-targets/route.js.nft.json +1 -0
  159. package/.next/server/app/api/packages/scan-targets/route_client-reference-manifest.js +1 -0
  160. package/.next/server/app/api/packages/uninstall/route.js +1 -0
  161. package/.next/server/app/api/packages/uninstall/route.js.nft.json +1 -0
  162. package/.next/server/app/api/packages/uninstall/route_client-reference-manifest.js +1 -0
  163. package/.next/server/app/api/planned-executions/[id]/route.js +2 -2
  164. package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
  165. package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/planned-executions/[id]/run/route.js +2 -2
  167. package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
  168. package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
  169. package/.next/server/app/api/planned-executions/[id]/runs/route.js +2 -2
  170. package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
  171. package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -1
  172. package/.next/server/app/api/planned-executions/preview-schedule/route.js +1 -1
  173. package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/planned-executions/reconcile/route.js +1 -1
  175. package/.next/server/app/api/planned-executions/reconcile/route.js.nft.json +1 -1
  176. package/.next/server/app/api/planned-executions/reconcile/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/planned-executions/route.js +1 -1
  178. package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
  179. package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/registry/auth/resend/route.js +1 -1
  181. package/.next/server/app/api/registry/auth/resend/route.js.nft.json +1 -1
  182. package/.next/server/app/api/registry/auth/resend/route_client-reference-manifest.js +1 -1
  183. package/.next/server/app/api/registry/auth/reset/route.js +1 -0
  184. package/.next/server/app/api/registry/auth/reset/route.js.nft.json +1 -0
  185. package/.next/server/app/api/registry/auth/reset/route_client-reference-manifest.js +1 -0
  186. package/.next/server/app/api/registry/auth/route.js +1 -1
  187. package/.next/server/app/api/registry/auth/route.js.nft.json +1 -1
  188. package/.next/server/app/api/registry/auth/route_client-reference-manifest.js +1 -1
  189. package/.next/server/app/api/registry/oauth/callback/route.js +1 -0
  190. package/.next/server/app/api/registry/oauth/callback/route.js.nft.json +1 -0
  191. package/.next/server/app/api/registry/oauth/callback/route_client-reference-manifest.js +1 -0
  192. package/.next/server/app/api/registry/oauth/initiate/route.js +1 -0
  193. package/.next/server/app/api/registry/oauth/initiate/route.js.nft.json +1 -0
  194. package/.next/server/app/api/registry/oauth/initiate/route_client-reference-manifest.js +1 -0
  195. package/.next/server/app/api/registry/publish/route.js +1 -1
  196. package/.next/server/app/api/registry/publish/route.js.nft.json +1 -1
  197. package/.next/server/app/api/registry/publish/route_client-reference-manifest.js +1 -1
  198. package/.next/server/app/api/registry/settings/route.js +1 -1
  199. package/.next/server/app/api/registry/settings/route.js.nft.json +1 -1
  200. package/.next/server/app/api/registry/settings/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/restore/route.js +1 -1
  202. package/.next/server/app/api/restore/route.js.nft.json +1 -1
  203. package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/runs/active/route.js +2 -2
  205. package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
  206. package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/storage/route.js +1 -1
  208. package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
  209. package/.next/server/app/api/update/route.js +1 -1
  210. package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  211. package/.next/server/app/api/waves/route.js +1 -1
  212. package/.next/server/app/api/waves/route.js.nft.json +1 -1
  213. package/.next/server/app/api/waves/route_client-reference-manifest.js +1 -1
  214. package/.next/server/app/api/webhooks/[id]/route.js +1 -1
  215. package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
  216. package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
  217. package/.next/server/app/chat/page.js +8 -8
  218. package/.next/server/app/chat/page.js.nft.json +1 -1
  219. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  220. package/.next/server/app/chat.html +1 -1
  221. package/.next/server/app/chat.rsc +4 -4
  222. package/.next/server/app/docs/page.js +7 -6
  223. package/.next/server/app/docs/page.js.nft.json +1 -1
  224. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  225. package/.next/server/app/docs.html +1 -1
  226. package/.next/server/app/docs.rsc +4 -4
  227. package/.next/server/app/executions/page.js +2 -3
  228. package/.next/server/app/executions/page.js.nft.json +1 -1
  229. package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
  230. package/.next/server/app/executions.html +1 -1
  231. package/.next/server/app/executions.rsc +4 -4
  232. package/.next/server/app/flows/page.js +3 -3
  233. package/.next/server/app/flows/page.js.nft.json +1 -1
  234. package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
  235. package/.next/server/app/flows.html +1 -1
  236. package/.next/server/app/flows.rsc +4 -4
  237. package/.next/server/app/index.html +1 -1
  238. package/.next/server/app/index.rsc +3 -3
  239. package/.next/server/app/mcp/page.js +14 -14
  240. package/.next/server/app/mcp/page.js.nft.json +1 -1
  241. package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
  242. package/.next/server/app/mcp-flows/route.js +1 -1
  243. package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
  244. package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -1
  245. package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
  246. package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
  247. package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -1
  248. package/.next/server/app/mcp.html +1 -1
  249. package/.next/server/app/mcp.rsc +4 -4
  250. package/.next/server/app/models/page.js +2 -2
  251. package/.next/server/app/models/page.js.nft.json +1 -1
  252. package/.next/server/app/models/page_client-reference-manifest.js +1 -1
  253. package/.next/server/app/packages/page.js +2 -3
  254. package/.next/server/app/packages/page.js.nft.json +1 -1
  255. package/.next/server/app/packages/page_client-reference-manifest.js +1 -1
  256. package/.next/server/app/packages.html +1 -1
  257. package/.next/server/app/packages.rsc +4 -4
  258. package/.next/server/app/page_client-reference-manifest.js +1 -1
  259. package/.next/server/app/settings/page.js +2 -3
  260. package/.next/server/app/settings/page.js.nft.json +1 -1
  261. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  262. package/.next/server/app/settings.html +1 -1
  263. package/.next/server/app/settings.rsc +4 -4
  264. package/.next/server/app/v1/chat/completions/route.js +1 -1
  265. package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
  266. package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -1
  267. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +2 -2
  268. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
  269. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
  270. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +2 -2
  271. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
  272. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -1
  273. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
  274. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
  275. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -1
  276. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
  277. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
  278. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -1
  279. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +2 -2
  280. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
  281. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
  282. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +4 -4
  283. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
  284. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
  285. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js +2 -0
  286. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js.nft.json +1 -0
  287. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route_client-reference-manifest.js +1 -0
  288. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js +1 -1
  289. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route_client-reference-manifest.js +1 -1
  290. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
  291. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
  292. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
  293. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +2 -2
  294. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
  295. package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  296. package/.next/server/app/v1/chat/conversations/route.js +2 -2
  297. package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
  298. package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
  299. package/.next/server/app/v1/chat/events/route.js +11 -0
  300. package/.next/server/app/v1/chat/events/route.js.nft.json +1 -0
  301. package/.next/server/app/v1/chat/events/route_client-reference-manifest.js +1 -0
  302. package/.next/server/app/v1/models/route.js +2 -2
  303. package/.next/server/app/v1/models/route.js.nft.json +1 -1
  304. package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -1
  305. package/.next/server/app/waves/page.js +3 -3
  306. package/.next/server/app/waves/page.js.nft.json +1 -1
  307. package/.next/server/app/waves/page_client-reference-manifest.js +1 -1
  308. package/.next/server/app/waves.html +1 -1
  309. package/.next/server/app/waves.rsc +4 -4
  310. package/.next/server/app-paths-manifest.json +32 -20
  311. package/.next/server/chunks/1083.js +1 -1
  312. package/.next/server/chunks/1114.js +1 -1
  313. package/.next/server/chunks/1226.js +1 -1
  314. package/.next/server/chunks/1314.js +1 -1
  315. package/.next/server/chunks/{6529.js → 1578.js} +2 -2
  316. package/.next/server/chunks/1615.js +1 -0
  317. package/.next/server/chunks/1634.js +1 -0
  318. package/.next/server/chunks/166.js +5 -5
  319. package/.next/server/chunks/1805.js +1 -1
  320. package/.next/server/chunks/1819.js +1 -1
  321. package/.next/server/chunks/2180.js +1 -0
  322. package/.next/server/chunks/227.js +2 -2
  323. package/.next/server/chunks/2368.js +2 -0
  324. package/.next/server/chunks/2859.js +1 -1
  325. package/.next/server/chunks/{7674.js → 3030.js} +1 -1
  326. package/.next/server/chunks/3101.js +1 -0
  327. package/.next/server/chunks/3128.js +62 -0
  328. package/.next/server/chunks/3273.js +1 -0
  329. package/.next/server/chunks/3570.js +372 -0
  330. package/.next/server/chunks/3629.js +1 -1
  331. package/.next/server/chunks/38.js +2 -2
  332. package/.next/server/chunks/3951.js +151 -0
  333. package/.next/server/chunks/3984.js +4 -4
  334. package/.next/server/chunks/4239.js +1 -1
  335. package/.next/server/chunks/4265.js +1 -1
  336. package/.next/server/chunks/4366.js +2 -0
  337. package/.next/server/chunks/4426.js +2 -2
  338. package/.next/server/chunks/4551.js +6 -0
  339. package/.next/server/chunks/4663.js +1 -0
  340. package/.next/server/chunks/4671.js +1 -1
  341. package/.next/server/chunks/4681.js +1 -1
  342. package/.next/server/chunks/4685.js +1 -0
  343. package/.next/server/chunks/4771.js +2 -2
  344. package/.next/server/chunks/4961.js +2 -0
  345. package/.next/server/chunks/5040.js +53 -0
  346. package/.next/server/chunks/5067.js +1 -0
  347. package/.next/server/chunks/5096.js +1 -1
  348. package/.next/server/chunks/5148.js +1 -0
  349. package/.next/server/chunks/5200.js +1 -0
  350. package/.next/server/chunks/544.js +135 -0
  351. package/.next/server/chunks/5463.js +1 -1
  352. package/.next/server/chunks/5544.js +5 -5
  353. package/.next/server/chunks/5561.js +1 -0
  354. package/.next/server/chunks/5708.js +5 -4
  355. package/.next/server/chunks/5786.js +2 -0
  356. package/.next/server/chunks/5829.js +1 -0
  357. package/.next/server/chunks/5863.js +37 -0
  358. package/.next/server/chunks/5880.js +1 -1
  359. package/.next/server/chunks/6034.js +77 -0
  360. package/.next/server/chunks/{1089.js → 6219.js} +1 -1
  361. package/.next/server/chunks/6226.js +6 -0
  362. package/.next/server/chunks/6432.js +1 -0
  363. package/.next/server/chunks/6496.js +1 -0
  364. package/.next/server/chunks/6518.js +2 -0
  365. package/.next/server/chunks/6588.js +2 -0
  366. package/.next/server/chunks/6793.js +1 -0
  367. package/.next/server/chunks/688.js +3 -0
  368. package/.next/server/chunks/701.js +1 -1
  369. package/.next/server/chunks/7032.js +1 -1
  370. package/.next/server/chunks/7506.js +1 -1
  371. package/.next/server/chunks/7579.js +8 -7
  372. package/.next/server/chunks/7634.js +4 -0
  373. package/.next/server/chunks/7821.js +1 -1
  374. package/.next/server/chunks/793.js +403 -0
  375. package/.next/server/chunks/7969.js +1 -0
  376. package/.next/server/chunks/{6537.js → 8001.js} +1 -1
  377. package/.next/server/chunks/8092.js +1 -0
  378. package/.next/server/chunks/8165.js +3 -0
  379. package/.next/server/chunks/8321.js +1 -0
  380. package/.next/server/chunks/8339.js +1 -0
  381. package/.next/server/chunks/8356.js +1 -0
  382. package/.next/server/chunks/8387.js +1 -1
  383. package/.next/server/chunks/848.js +39 -0
  384. package/.next/server/chunks/{8192.js → 8568.js} +1 -1
  385. package/.next/server/chunks/8667.js +1 -1
  386. package/.next/server/chunks/8739.js +2 -2
  387. package/.next/server/chunks/9174.js +1 -0
  388. package/.next/server/chunks/9251.js +1 -0
  389. package/.next/server/chunks/9253.js +3 -0
  390. package/.next/server/chunks/9285.js +1 -1
  391. package/.next/server/chunks/94.js +1 -1
  392. package/.next/server/chunks/9537.js +39 -0
  393. package/.next/server/chunks/9671.js +1 -0
  394. package/.next/server/chunks/9724.js +403 -0
  395. package/.next/server/chunks/9857.js +1 -0
  396. package/.next/server/chunks/{3298.js → 9868.js} +2 -2
  397. package/.next/server/chunks/991.js +2 -0
  398. package/.next/server/functions-config-manifest.json +1 -0
  399. package/.next/server/instrumentation.js +1 -1
  400. package/.next/server/instrumentation.js.nft.json +1 -1
  401. package/.next/server/middleware-build-manifest.js +1 -1
  402. package/.next/server/middleware-manifest.json +1 -1
  403. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  404. package/.next/server/pages/404.html +1 -1
  405. package/.next/server/pages/500.html +1 -1
  406. package/.next/server/pages-manifest.json +1 -1
  407. package/.next/server/server-reference-manifest.js +1 -1
  408. package/.next/server/server-reference-manifest.json +1 -1
  409. package/.next/server/src/middleware.js +1 -1
  410. package/.next/server/src/middleware.js.map +1 -1
  411. package/.next/static/JGMk-MwwdpQ94asqw-mUR/_buildManifest.js +1 -0
  412. package/.next/static/chunks/1572-b663a83bba28a0a1.js +8 -0
  413. package/.next/static/chunks/1988-bd73f26184e930c1.js +1 -0
  414. package/.next/static/chunks/2233-1139c1d3ef356980.js +1 -0
  415. package/.next/static/chunks/2266-d812473724cc6643.js +1 -0
  416. package/.next/static/chunks/2988-0b197a9b468a2df9.js +1 -0
  417. package/.next/static/chunks/3089.a0856f8093b90939.js +1 -0
  418. package/.next/static/chunks/3418-a2f5d0c4f29ee2fb.js +1 -0
  419. package/.next/static/chunks/3659-0ab9580d5ee5deea.js +1 -0
  420. package/.next/static/chunks/3672-cd86ace43288da79.js +1 -0
  421. package/.next/static/chunks/{8041-05830e887c133085.js → 3827-9e9a6e11ef808d90.js} +1 -1
  422. package/.next/static/chunks/3910.5c6885d7a5bd753e.js +1 -0
  423. package/.next/static/chunks/3958-5641a828b320f2fe.js +100 -0
  424. package/.next/static/chunks/435-17c79f3b9f8dd38d.js +1 -0
  425. package/.next/static/chunks/454.5fc2f8eef98483e3.js +1 -0
  426. package/.next/static/chunks/4740-62814d07b2b7f760.js +1 -0
  427. package/.next/static/chunks/5418-45aa7e646ad024be.js +1 -0
  428. package/.next/static/chunks/5661-1b976072cc3d2fed.js +1 -0
  429. package/.next/static/chunks/6404-86615a5f5ce5c00f.js +1 -0
  430. package/.next/static/chunks/6947-0ff3545efb53e959.js +1 -0
  431. package/.next/static/chunks/7445-d8a8be6e451c522e.js +1 -0
  432. package/.next/static/chunks/8054-f33d06ecea5d36e4.js +1 -0
  433. package/.next/static/chunks/812-dfe7ba07ddb7a565.js +1 -0
  434. package/.next/static/chunks/8404-14ef0345dc401ac5.js +1 -0
  435. package/.next/static/chunks/8855-02889c9ab4bf0bcf.js +1 -0
  436. package/.next/static/chunks/8863-c140a742178a4a87.js +1 -0
  437. package/.next/static/chunks/9562-5494feecd8c6f7a3.js +1 -0
  438. package/.next/static/chunks/9581-6d2523fd68a5e3c4.js +1 -0
  439. package/.next/static/chunks/app/api/approvals/[id]/route-7d60cffa598f4779.js +1 -0
  440. package/.next/static/chunks/app/api/approvals/route-7d60cffa598f4779.js +1 -0
  441. package/.next/static/chunks/app/api/backup/route-7d60cffa598f4779.js +1 -0
  442. package/.next/static/chunks/app/api/browse/route-7d60cffa598f4779.js +1 -0
  443. package/.next/static/chunks/app/api/bugs/enhance/route-7d60cffa598f4779.js +1 -0
  444. package/.next/static/chunks/app/api/cwd/route-7d60cffa598f4779.js +1 -0
  445. package/.next/static/chunks/app/api/encryption/secure/route-7d60cffa598f4779.js +1 -0
  446. package/.next/static/chunks/app/api/env/route-7d60cffa598f4779.js +1 -0
  447. package/.next/static/chunks/app/api/flow/[id]/route-7d60cffa598f4779.js +1 -0
  448. package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-7d60cffa598f4779.js +1 -0
  449. package/.next/static/chunks/app/api/flow/[id]/versions/route-7d60cffa598f4779.js +1 -0
  450. package/.next/static/chunks/app/api/flow/compile/route-7d60cffa598f4779.js +1 -0
  451. package/.next/static/chunks/app/api/flow/generate/route-7d60cffa598f4779.js +1 -0
  452. package/.next/static/chunks/app/api/flow/improve/route-7d60cffa598f4779.js +1 -0
  453. package/.next/static/chunks/app/api/flow/prompt-renderer/route-7d60cffa598f4779.js +1 -0
  454. package/.next/static/chunks/app/api/flow/quick-chat/route-7d60cffa598f4779.js +1 -0
  455. package/.next/static/chunks/app/api/flow/repair/route-7d60cffa598f4779.js +1 -0
  456. package/.next/static/chunks/app/api/flow/route-7d60cffa598f4779.js +1 -0
  457. package/.next/static/chunks/app/api/git/route-7d60cffa598f4779.js +1 -0
  458. package/.next/static/chunks/app/api/init/route-7d60cffa598f4779.js +1 -0
  459. package/.next/static/chunks/app/api/local-models/capability/route-7d60cffa598f4779.js +1 -0
  460. package/.next/static/chunks/app/api/local-models/pull/route-7d60cffa598f4779.js +1 -0
  461. package/.next/static/chunks/app/api/local-models/suggest/route-7d60cffa598f4779.js +1 -0
  462. package/.next/static/chunks/app/api/mcp/app-sandbox/route-7d60cffa598f4779.js +1 -0
  463. package/.next/static/chunks/app/api/mcp/cancel/route-7d60cffa598f4779.js +1 -0
  464. package/.next/static/chunks/app/api/mcp/oauth-capability/route-7d60cffa598f4779.js +1 -0
  465. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-7d60cffa598f4779.js +1 -0
  466. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-7d60cffa598f4779.js +1 -0
  467. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-7d60cffa598f4779.js +1 -0
  468. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-7d60cffa598f4779.js +1 -0
  469. package/.next/static/chunks/app/api/mcp/servers/[name]/route-7d60cffa598f4779.js +1 -0
  470. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-7d60cffa598f4779.js +1 -0
  471. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-7d60cffa598f4779.js +1 -0
  472. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-7d60cffa598f4779.js +1 -0
  473. package/.next/static/chunks/app/api/mcp/servers/route-7d60cffa598f4779.js +1 -0
  474. package/.next/static/chunks/app/api/mcp/test-connection/route-7d60cffa598f4779.js +1 -0
  475. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-7d60cffa598f4779.js +1 -0
  476. package/.next/static/chunks/app/api/mcp-registry/route-7d60cffa598f4779.js +1 -0
  477. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-7d60cffa598f4779.js +1 -0
  478. package/.next/static/chunks/app/api/model/[id]/route-7d60cffa598f4779.js +1 -0
  479. package/.next/static/chunks/app/api/model/provider/route-7d60cffa598f4779.js +1 -0
  480. package/.next/static/chunks/app/api/model/route-7d60cffa598f4779.js +1 -0
  481. package/.next/static/chunks/app/api/model/test/route-7d60cffa598f4779.js +1 -0
  482. package/.next/static/chunks/app/api/oauth/callback/route-7d60cffa598f4779.js +1 -0
  483. package/.next/static/chunks/app/api/oauth/initiate/route-7d60cffa598f4779.js +1 -0
  484. package/.next/static/chunks/app/api/oauth/reset/route-7d60cffa598f4779.js +1 -0
  485. package/.next/static/chunks/app/api/packages/build/route-7d60cffa598f4779.js +1 -0
  486. package/.next/static/chunks/app/api/packages/derive-secrets/route-7d60cffa598f4779.js +1 -0
  487. package/.next/static/chunks/app/api/packages/install/route-7d60cffa598f4779.js +1 -0
  488. package/.next/static/chunks/app/api/packages/install/status/route-7d60cffa598f4779.js +1 -0
  489. package/.next/static/chunks/app/api/packages/installed/route-7d60cffa598f4779.js +1 -0
  490. package/.next/static/chunks/app/api/packages/resolve/route-7d60cffa598f4779.js +1 -0
  491. package/.next/static/chunks/app/api/packages/scan-targets/route-7d60cffa598f4779.js +1 -0
  492. package/.next/static/chunks/app/api/packages/uninstall/route-7d60cffa598f4779.js +1 -0
  493. package/.next/static/chunks/app/api/planned-executions/[id]/route-7d60cffa598f4779.js +1 -0
  494. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-7d60cffa598f4779.js +1 -0
  495. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-7d60cffa598f4779.js +1 -0
  496. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-7d60cffa598f4779.js +1 -0
  497. package/.next/static/chunks/app/api/planned-executions/reconcile/route-7d60cffa598f4779.js +1 -0
  498. package/.next/static/chunks/app/api/planned-executions/route-7d60cffa598f4779.js +1 -0
  499. package/.next/static/chunks/app/api/registry/auth/resend/route-7d60cffa598f4779.js +1 -0
  500. package/.next/static/chunks/app/api/registry/auth/reset/route-7d60cffa598f4779.js +1 -0
  501. package/.next/static/chunks/app/api/registry/auth/route-7d60cffa598f4779.js +1 -0
  502. package/.next/static/chunks/app/api/registry/oauth/callback/route-7d60cffa598f4779.js +1 -0
  503. package/.next/static/chunks/app/api/registry/oauth/initiate/route-7d60cffa598f4779.js +1 -0
  504. package/.next/static/chunks/app/api/registry/publish/route-7d60cffa598f4779.js +1 -0
  505. package/.next/static/chunks/app/api/registry/settings/route-7d60cffa598f4779.js +1 -0
  506. package/.next/static/chunks/app/api/restore/route-7d60cffa598f4779.js +1 -0
  507. package/.next/static/chunks/app/api/runs/active/route-7d60cffa598f4779.js +1 -0
  508. package/.next/static/chunks/app/api/storage/route-7d60cffa598f4779.js +1 -0
  509. package/.next/static/chunks/app/api/update/route-7d60cffa598f4779.js +1 -0
  510. package/.next/static/chunks/app/api/waves/route-7d60cffa598f4779.js +1 -0
  511. package/.next/static/chunks/app/api/webhooks/[id]/route-7d60cffa598f4779.js +1 -0
  512. package/.next/static/chunks/app/chat/page-2b69c5e35164f553.js +1 -0
  513. package/.next/static/chunks/app/docs/page-250523af44e96120.js +1 -0
  514. package/.next/static/chunks/app/executions/page-1d8557a642114697.js +1 -0
  515. package/.next/static/chunks/app/flows/page-3f0d7cca2edff792.js +1 -0
  516. package/.next/static/chunks/app/layout-81f91fb3b894951a.js +1 -0
  517. package/.next/static/chunks/app/mcp/page-0e90177062130679.js +1 -0
  518. package/.next/static/chunks/app/mcp-flows/route-7d60cffa598f4779.js +1 -0
  519. package/.next/static/chunks/app/mcp-proxy/[server]/route-7d60cffa598f4779.js +1 -0
  520. package/.next/static/chunks/app/models/page-c69e10b83c06535d.js +1 -0
  521. package/.next/static/chunks/app/packages/page-bf8aad441c664433.js +1 -0
  522. package/.next/static/chunks/app/settings/page-4a9952c514f284e0.js +1 -0
  523. package/.next/static/chunks/app/v1/chat/completions/route-7d60cffa598f4779.js +1 -0
  524. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-7d60cffa598f4779.js +1 -0
  525. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-7d60cffa598f4779.js +1 -0
  526. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-7d60cffa598f4779.js +1 -0
  527. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-7d60cffa598f4779.js +1 -0
  528. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-7d60cffa598f4779.js +1 -0
  529. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-7d60cffa598f4779.js +1 -0
  530. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/inject/route-7d60cffa598f4779.js +1 -0
  531. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-7d60cffa598f4779.js +1 -0
  532. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-7d60cffa598f4779.js +1 -0
  533. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-7d60cffa598f4779.js +1 -0
  534. package/.next/static/chunks/app/v1/chat/conversations/route-7d60cffa598f4779.js +1 -0
  535. package/.next/static/chunks/app/v1/chat/events/route-7d60cffa598f4779.js +1 -0
  536. package/.next/static/chunks/app/v1/models/route-7d60cffa598f4779.js +1 -0
  537. package/.next/static/chunks/app/waves/page-3ca939f0f7e817b1.js +1 -0
  538. package/.next/static/chunks/webpack-08eb993682e1fb1a.js +1 -0
  539. package/.next/static/css/30253fcfa8035221.css +1 -0
  540. package/.next/trace +10 -9
  541. package/.next/types/app/api/flow/[id]/versions/[versionId]/route.ts +347 -0
  542. package/.next/types/app/api/flow/[id]/versions/route.ts +347 -0
  543. package/.next/types/app/api/mcp/app-sandbox/route.ts +347 -0
  544. package/.next/types/app/api/mcp/oauth-capability/route.ts +347 -0
  545. package/.next/types/app/api/packages/installed/route.ts +347 -0
  546. package/.next/types/app/api/packages/scan-targets/route.ts +347 -0
  547. package/.next/types/app/api/packages/uninstall/route.ts +347 -0
  548. package/.next/types/app/api/registry/auth/reset/route.ts +347 -0
  549. package/.next/types/app/api/registry/oauth/callback/route.ts +347 -0
  550. package/.next/types/app/api/registry/oauth/initiate/route.ts +347 -0
  551. package/.next/types/app/v1/chat/conversations/[conversationId]/inject/route.ts +347 -0
  552. package/.next/types/app/v1/chat/events/route.ts +347 -0
  553. package/.next/types/routes.d.ts +13 -1
  554. package/.next/types/validator.ts +108 -0
  555. package/README.md +6 -1
  556. package/package.json +98 -95
  557. package/.next/server/chunks/1197.js +0 -2
  558. package/.next/server/chunks/1373.js +0 -1
  559. package/.next/server/chunks/1604.js +0 -65
  560. package/.next/server/chunks/1659.js +0 -1
  561. package/.next/server/chunks/237.js +0 -1
  562. package/.next/server/chunks/2373.js +0 -1
  563. package/.next/server/chunks/2434.js +0 -2
  564. package/.next/server/chunks/2940.js +0 -41
  565. package/.next/server/chunks/3304.js +0 -1
  566. package/.next/server/chunks/346.js +0 -1
  567. package/.next/server/chunks/3569.js +0 -1
  568. package/.next/server/chunks/4042.js +0 -1
  569. package/.next/server/chunks/4545.js +0 -21
  570. package/.next/server/chunks/4661.js +0 -1
  571. package/.next/server/chunks/4765.js +0 -1
  572. package/.next/server/chunks/5094.js +0 -2
  573. package/.next/server/chunks/5734.js +0 -60
  574. package/.next/server/chunks/6005.js +0 -1
  575. package/.next/server/chunks/6996.js +0 -1
  576. package/.next/server/chunks/7028.js +0 -1
  577. package/.next/server/chunks/7214.js +0 -6
  578. package/.next/server/chunks/724.js +0 -27
  579. package/.next/server/chunks/7362.js +0 -158
  580. package/.next/server/chunks/7463.js +0 -6
  581. package/.next/server/chunks/7485.js +0 -1
  582. package/.next/server/chunks/7498.js +0 -42
  583. package/.next/server/chunks/7764.js +0 -37
  584. package/.next/server/chunks/826.js +0 -52
  585. package/.next/server/chunks/8522.js +0 -2
  586. package/.next/server/chunks/8572.js +0 -1
  587. package/.next/server/chunks/869.js +0 -2
  588. package/.next/server/chunks/8732.js +0 -62
  589. package/.next/server/chunks/8851.js +0 -1
  590. package/.next/server/chunks/8994.js +0 -2
  591. package/.next/server/chunks/9387.js +0 -15
  592. package/.next/server/chunks/9400.js +0 -2
  593. package/.next/server/chunks/9472.js +0 -2
  594. package/.next/server/chunks/9583.js +0 -1
  595. package/.next/static/O-elWbT5rs6ci1CrCqez1/_buildManifest.js +0 -1
  596. package/.next/static/chunks/2019-f22580cb726c5dca.js +0 -1
  597. package/.next/static/chunks/256-a13a59247ac6cc68.js +0 -1
  598. package/.next/static/chunks/2566-60acd5838abd9f3f.js +0 -1
  599. package/.next/static/chunks/2822-8168e3bb8443a1ec.js +0 -1
  600. package/.next/static/chunks/2981-10313d395eb99645.js +0 -1
  601. package/.next/static/chunks/3028-fc1f04241ed578ff.js +0 -1
  602. package/.next/static/chunks/3089.9e15df4ffd0fe4e8.js +0 -1
  603. package/.next/static/chunks/3556-b9855146c7506696.js +0 -1
  604. package/.next/static/chunks/3560-5bdceef09b50e1c3.js +0 -1
  605. package/.next/static/chunks/3574-94e9f20550550a58.js +0 -1
  606. package/.next/static/chunks/4483-463f8bfc6f3dd5fa.js +0 -1
  607. package/.next/static/chunks/5512.682bef7fd3a7c286.js +0 -1
  608. package/.next/static/chunks/5578-49bc150686c13b6f.js +0 -1
  609. package/.next/static/chunks/5766-dbd21cb8435605aa.js +0 -1
  610. package/.next/static/chunks/5866-6834cbc4ab02d86f.js +0 -1
  611. package/.next/static/chunks/6669-012c73587a6628fc.js +0 -1
  612. package/.next/static/chunks/6691-117567b2b40cd9f4.js +0 -1
  613. package/.next/static/chunks/6961-a40e97c06e616300.js +0 -1
  614. package/.next/static/chunks/7445-2802e158c9093556.js +0 -1
  615. package/.next/static/chunks/7554-db290baed5782cab.js +0 -8
  616. package/.next/static/chunks/795-704a0e742ecc2ef6.js +0 -1
  617. package/.next/static/chunks/812-8b3d4e0f6546d6f9.js +0 -1
  618. package/.next/static/chunks/9554-cb5bd72cb40e8dbe.js +0 -1
  619. package/.next/static/chunks/9562-ef0ddd4e6b9023cf.js +0 -1
  620. package/.next/static/chunks/9720-5ecb48f1a28808fe.js +0 -1
  621. package/.next/static/chunks/app/api/approvals/[id]/route-3e3cc52436d34625.js +0 -1
  622. package/.next/static/chunks/app/api/approvals/route-3e3cc52436d34625.js +0 -1
  623. package/.next/static/chunks/app/api/backup/route-3e3cc52436d34625.js +0 -1
  624. package/.next/static/chunks/app/api/browse/route-3e3cc52436d34625.js +0 -1
  625. package/.next/static/chunks/app/api/bugs/enhance/route-3e3cc52436d34625.js +0 -1
  626. package/.next/static/chunks/app/api/cwd/route-3e3cc52436d34625.js +0 -1
  627. package/.next/static/chunks/app/api/encryption/secure/route-3e3cc52436d34625.js +0 -1
  628. package/.next/static/chunks/app/api/env/route-3e3cc52436d34625.js +0 -1
  629. package/.next/static/chunks/app/api/flow/[id]/route-3e3cc52436d34625.js +0 -1
  630. package/.next/static/chunks/app/api/flow/compile/route-3e3cc52436d34625.js +0 -1
  631. package/.next/static/chunks/app/api/flow/generate/route-3e3cc52436d34625.js +0 -1
  632. package/.next/static/chunks/app/api/flow/improve/route-3e3cc52436d34625.js +0 -1
  633. package/.next/static/chunks/app/api/flow/prompt-renderer/route-3e3cc52436d34625.js +0 -1
  634. package/.next/static/chunks/app/api/flow/quick-chat/route-3e3cc52436d34625.js +0 -1
  635. package/.next/static/chunks/app/api/flow/repair/route-3e3cc52436d34625.js +0 -1
  636. package/.next/static/chunks/app/api/flow/route-3e3cc52436d34625.js +0 -1
  637. package/.next/static/chunks/app/api/git/route-3e3cc52436d34625.js +0 -1
  638. package/.next/static/chunks/app/api/init/route-3e3cc52436d34625.js +0 -1
  639. package/.next/static/chunks/app/api/local-models/capability/route-3e3cc52436d34625.js +0 -1
  640. package/.next/static/chunks/app/api/local-models/pull/route-3e3cc52436d34625.js +0 -1
  641. package/.next/static/chunks/app/api/local-models/suggest/route-3e3cc52436d34625.js +0 -1
  642. package/.next/static/chunks/app/api/mcp/cancel/route-3e3cc52436d34625.js +0 -1
  643. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-3e3cc52436d34625.js +0 -1
  644. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-3e3cc52436d34625.js +0 -1
  645. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-3e3cc52436d34625.js +0 -1
  646. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-3e3cc52436d34625.js +0 -1
  647. package/.next/static/chunks/app/api/mcp/servers/[name]/route-3e3cc52436d34625.js +0 -1
  648. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-3e3cc52436d34625.js +0 -1
  649. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-3e3cc52436d34625.js +0 -1
  650. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-3e3cc52436d34625.js +0 -1
  651. package/.next/static/chunks/app/api/mcp/servers/route-3e3cc52436d34625.js +0 -1
  652. package/.next/static/chunks/app/api/mcp/test-connection/route-3e3cc52436d34625.js +0 -1
  653. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-3e3cc52436d34625.js +0 -1
  654. package/.next/static/chunks/app/api/mcp-registry/route-3e3cc52436d34625.js +0 -1
  655. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-3e3cc52436d34625.js +0 -1
  656. package/.next/static/chunks/app/api/model/[id]/route-3e3cc52436d34625.js +0 -1
  657. package/.next/static/chunks/app/api/model/provider/route-3e3cc52436d34625.js +0 -1
  658. package/.next/static/chunks/app/api/model/route-3e3cc52436d34625.js +0 -1
  659. package/.next/static/chunks/app/api/model/test/route-3e3cc52436d34625.js +0 -1
  660. package/.next/static/chunks/app/api/oauth/callback/route-3e3cc52436d34625.js +0 -1
  661. package/.next/static/chunks/app/api/oauth/initiate/route-3e3cc52436d34625.js +0 -1
  662. package/.next/static/chunks/app/api/oauth/reset/route-3e3cc52436d34625.js +0 -1
  663. package/.next/static/chunks/app/api/packages/build/route-3e3cc52436d34625.js +0 -1
  664. package/.next/static/chunks/app/api/packages/derive-secrets/route-3e3cc52436d34625.js +0 -1
  665. package/.next/static/chunks/app/api/packages/install/route-3e3cc52436d34625.js +0 -1
  666. package/.next/static/chunks/app/api/packages/install/status/route-3e3cc52436d34625.js +0 -1
  667. package/.next/static/chunks/app/api/packages/resolve/route-3e3cc52436d34625.js +0 -1
  668. package/.next/static/chunks/app/api/planned-executions/[id]/route-3e3cc52436d34625.js +0 -1
  669. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-3e3cc52436d34625.js +0 -1
  670. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-3e3cc52436d34625.js +0 -1
  671. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-3e3cc52436d34625.js +0 -1
  672. package/.next/static/chunks/app/api/planned-executions/reconcile/route-3e3cc52436d34625.js +0 -1
  673. package/.next/static/chunks/app/api/planned-executions/route-3e3cc52436d34625.js +0 -1
  674. package/.next/static/chunks/app/api/registry/auth/resend/route-3e3cc52436d34625.js +0 -1
  675. package/.next/static/chunks/app/api/registry/auth/route-3e3cc52436d34625.js +0 -1
  676. package/.next/static/chunks/app/api/registry/publish/route-3e3cc52436d34625.js +0 -1
  677. package/.next/static/chunks/app/api/registry/settings/route-3e3cc52436d34625.js +0 -1
  678. package/.next/static/chunks/app/api/restore/route-3e3cc52436d34625.js +0 -1
  679. package/.next/static/chunks/app/api/runs/active/route-3e3cc52436d34625.js +0 -1
  680. package/.next/static/chunks/app/api/storage/route-3e3cc52436d34625.js +0 -1
  681. package/.next/static/chunks/app/api/update/route-3e3cc52436d34625.js +0 -1
  682. package/.next/static/chunks/app/api/waves/route-3e3cc52436d34625.js +0 -1
  683. package/.next/static/chunks/app/api/webhooks/[id]/route-3e3cc52436d34625.js +0 -1
  684. package/.next/static/chunks/app/chat/page-93403b0e520ba8d3.js +0 -1
  685. package/.next/static/chunks/app/docs/page-2c972a639cd9a41c.js +0 -1
  686. package/.next/static/chunks/app/executions/page-bb2fef60b2240f69.js +0 -1
  687. package/.next/static/chunks/app/flows/page-d60c5b47c923564a.js +0 -1
  688. package/.next/static/chunks/app/layout-eea7078d7553c21a.js +0 -1
  689. package/.next/static/chunks/app/mcp/page-92c03186d566a4f5.js +0 -1
  690. package/.next/static/chunks/app/mcp-flows/route-3e3cc52436d34625.js +0 -1
  691. package/.next/static/chunks/app/mcp-proxy/[server]/route-3e3cc52436d34625.js +0 -1
  692. package/.next/static/chunks/app/models/page-d71e5606a8e29479.js +0 -1
  693. package/.next/static/chunks/app/packages/page-e64480d78312edd0.js +0 -1
  694. package/.next/static/chunks/app/settings/page-d067a3a624ec2fa0.js +0 -1
  695. package/.next/static/chunks/app/v1/chat/completions/route-3e3cc52436d34625.js +0 -1
  696. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-3e3cc52436d34625.js +0 -1
  697. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-3e3cc52436d34625.js +0 -1
  698. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-3e3cc52436d34625.js +0 -1
  699. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-3e3cc52436d34625.js +0 -1
  700. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-3e3cc52436d34625.js +0 -1
  701. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-3e3cc52436d34625.js +0 -1
  702. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-3e3cc52436d34625.js +0 -1
  703. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-3e3cc52436d34625.js +0 -1
  704. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-3e3cc52436d34625.js +0 -1
  705. package/.next/static/chunks/app/v1/chat/conversations/route-3e3cc52436d34625.js +0 -1
  706. package/.next/static/chunks/app/v1/models/route-3e3cc52436d34625.js +0 -1
  707. package/.next/static/chunks/app/waves/page-ff15db2f75fb5d62.js +0 -1
  708. package/.next/static/chunks/webpack-2b2d7505a2ac6538.js +0 -1
  709. package/.next/static/css/40f9bef305b11bf5.css +0 -1
  710. /package/.next/static/{O-elWbT5rs6ci1CrCqez1 → JGMk-MwwdpQ94asqw-mUR}/_ssgManifest.js +0 -0
@@ -1,5 +1,5 @@
1
- "use strict";exports.id=166,exports.ids=[166],exports.modules={40166:(a,b,c)=>{c.d(b,{bashCallTool:()=>B,bashToolDefinitions:()=>v});var d=c(33873),e=c.n(d),f=c(79646),g=c(18230);let h=(0,g.h)("utils/process/killProcessTree");function i(a,b=2e3){let c=a.pid;if(void 0===c)return()=>{};if("win32"===process.platform){try{(0,f.spawn)("taskkill",["/pid",String(c),"/T","/F"]).on("error",a=>h.debug(`taskkill failed for pid ${c}: ${a.message}`))}catch(a){h.debug(`taskkill spawn threw for pid ${c}: ${a instanceof Error?a.message:String(a)}`)}return()=>{}}try{process.kill(-c,"SIGTERM")}catch{}let d=setTimeout(()=>{try{process.kill(-c,"SIGKILL")}catch{}},b);return d.unref?.(),()=>clearTimeout(d)}var j=c(63129),k=c(94749),l=c(48092);let m=(0,g.h)("backend/services/mcp/internal/bashTools");function n(){return global.__flujo_bash_sessions||(global.__flujo_bash_sessions=new Map),global.__flujo_bash_sessions}function o(a,b=!1){return{content:[{type:"text",text:"string"==typeof a?a:JSON.stringify(a,null,2)}],...b?{isError:!0}:{}}}let p=["FLUJO_BASH_ROOTS","FLUJO_FS_ROOTS"];function q(a,b){let c=(0,j.ok)(),d="string"==typeof a?a.trim():"",f=d?e().isAbsolute(d)?e().resolve(d):e().resolve(c,d):c;if(b&&!b.some(a=>(0,l.FK)(a,f)))throw Error(`cwd "${f}" is outside the configured bash roots.`);return f}let r=new Set(["PATH","Path","HOME","USERPROFILE","TMP","TEMP","TMPDIR","LANG","LC_ALL","SystemRoot","windir","ComSpec","PATHEXT","SystemDrive","NUMBER_OF_PROCESSORS","PROCESSOR_ARCHITECTURE"]);function s(a){return"pwsh"===a||"bash"===a?a:"default"}function t(a,b,c){let{file:d,args:e,useShell:g}="pwsh"===c?{file:"win32"===process.platform?"pwsh.exe":"pwsh",args:["-NoProfile","-NonInteractive","-Command",a],useShell:!1}:"bash"===c?{file:"bash",args:["-c",a],useShell:!1}:{file:a,args:[],useShell:!0},h="win32"!==process.platform;try{return{child:(0,f.spawn)(d,e,{cwd:b,shell:g,env:function(){var a;if("string"==typeof(a=process.env.FLUJO_BASH_INHERIT_ENV)&&/^(1|true|yes|on)$/i.test(a.trim()))return process.env;let b={};for(let a of Object.keys(process.env))(r.has(a)||/^LC_/.test(a))&&(b[a]=process.env[a]);return b}(),detached:h})}}catch(a){return{child:void 0,startError:a instanceof Error?a.message:String(a)}}}function u(a,b){return c=>{let d=a();if(d.length>=1e5)return;let e=!1;(d+=c).length>1e5&&(d=d.slice(0,1e5)+"\n…[output truncated]",e=!0),b(d,e)}}function v(){let a={type:"string",enum:["default","pwsh","bash"],description:'Which shell to use: "default" (the OS shell), "pwsh" (PowerShell 7+), or "bash". Falls back to the default shell if the requested one is unavailable.'},b={type:"string",description:"Working directory. Relative paths resolve against the FLUJO data directory. Defaults to the data directory. When bash roots are configured (via the MCP manager, or the FLUJO_BASH_ROOTS / FLUJO_FS_ROOTS env hard ceiling) a cwd outside them is rejected."};return[{name:"run",description:"Run a shell command to completion and return combined stdout/stderr plus the exit code. Pipes and chained commands work. Killed if it exceeds the timeout; large output is truncated. Returns { exitCode, cwd, shell, output, timedOut }.",inputSchema:{type:"object",properties:{command:{type:"string",description:'The command line to execute, e.g. "grep -r foo ." or "curl -s https://…".'},cwd:b,shell:a,timeout:{type:"number",description:"Timeout in seconds (default 60, max 600)."},normalizeNewlines:{type:"boolean",description:"If true, CRLF/CR in the captured output are normalized to LF."}},required:["command"]}},{name:"start",description:"Start a command in the BACKGROUND and return immediately with a { sessionId }. Use status/wait to observe it, write_stdin to feed it input, and kill to stop it.",inputSchema:{type:"object",properties:{command:{type:"string",description:"The command line to execute in the background."},cwd:b,shell:a},required:["command"]}},{name:"status",description:"Return the current state of a background session: { sessionId, running, exitCode, output, truncated }.",inputSchema:{type:"object",properties:{sessionId:{type:"string",description:"The id returned by start."}},required:["sessionId"]}},{name:"wait",description:"Wait until a background session finishes (or the timeout elapses). Returns { sessionId, running, exitCode, output, truncated, timedOut }.",inputSchema:{type:"object",properties:{sessionId:{type:"string",description:"The id returned by start."},timeout:{type:"number",description:"Max seconds to wait (default 60, max 600)."}},required:["sessionId"]}},{name:"write_stdin",description:'Write a string to a running background session\'s stdin. Pass "newline": false to omit the trailing newline. Returns { sessionId, written }.',inputSchema:{type:"object",properties:{sessionId:{type:"string",description:"The id returned by start."},data:{type:"string",description:"Text to write to stdin."},newline:{type:"boolean",description:"Append a trailing newline (default true)."}},required:["sessionId","data"]}},{name:"kill",description:"Kill a background session (and its whole process tree). Returns { sessionId, killed }.",inputSchema:{type:"object",properties:{sessionId:{type:"string",description:"The id returned by start."}},required:["sessionId"]}},{name:"list_sessions",description:"List all known background sessions with their state. Returns { sessions: [{ sessionId, command, running, exitCode, startedAt, endedAt }] }.",inputSchema:{type:"object",properties:{}}}]}function w(a,b){return b?a.replace(/\r\n?/g,"\n"):a}async function x(a,b){let c=String(a?.command??"").trim();if(!c)return o({error:'Provide "command": a shell command line to run.'},!0);let d=q(a.cwd,b),e=s(a.shell),f=!0===a.normalizeNewlines,g=Math.min(1e3*("number"==typeof a.timeout&&a.timeout>0?a.timeout:60),6e5);return await new Promise(a=>{let b,h="",j=!1,k=!1,l=!1,m=u(()=>h,(a,b)=>{h=a,j=b||j}),{child:n,startError:p}=t(c,d,e);if(p||!n)return void a(o({error:`Failed to start command (${e}): ${p??"unknown error"}`,cwd:d,shell:e},!0));let q=setTimeout(()=>{l=!0,b=i(n)},g),r=c=>{k||(k=!0,clearTimeout(q),b?.(),a(c))};n.stdout?.on("data",a=>m(a.toString())),n.stderr?.on("data",a=>m(a.toString())),n.on("error",a=>{m(`
2
- ${a.message}`),r(o({error:`Command failed to start (${e}): ${a.message}`,cwd:d,shell:e,output:w(h,f)},!0))}),n.on("close",a=>{let b=w(h,f);if(l)return void r(o({timedOut:!0,cwd:d,shell:e,exitCode:a,truncated:j,output:`${b}
3
- [killed after ${g/1e3}s timeout]`},!0));r(o({exitCode:a,cwd:d,shell:e,truncated:j,output:b},0!==a))})})}function y(a){a.reapTimer=setTimeout(()=>{n().delete(a.id)},6e5),a.reapTimer.unref?.()}function z(a,b={}){return{sessionId:a.id,running:a.running,exitCode:a.exitCode,output:a.output,truncated:a.truncated,...b}}async function A(a){let b=String(a?.sessionId??""),c=n().get(b);if(!c)return o({error:`No background session with id "${b}".`},!0);if(!c.running)return o(z(c,{timedOut:!1}));let d=Math.min(1e3*("number"==typeof a.timeout&&a.timeout>0?a.timeout:60),6e5),e=await new Promise(a=>{let b=Date.now(),e=()=>c.running?Date.now()-b>=d?a(!0):void setTimeout(e,100):a(!1);e()});return o(z(c,{timedOut:e}))}async function B(a,b){try{switch(a){case"run":{let a=await (0,l.FN)(k.PA,p);return await x(b,a)}case"start":{let a=await (0,l.FN)(k.PA,p);return function(a,b){let c=String(a?.command??"").trim();if(!c)return o({error:'Provide "command": a shell command line to run.'},!0);let d=n();if(d.size>=25)for(let[a,b]of d)b.running||d.delete(a);if(d.size>=25)return o({error:"Too many active background sessions (max 25). Kill some first."},!0);!function(){if(global.__flujo_bash_cleanup_registered)return;global.__flujo_bash_cleanup_registered=!0;let a=()=>(function(){for(let a of n().values()){if(a.running)try{i(a.child)}catch{}a.reapTimer&&clearTimeout(a.reapTimer)}})();process.on("exit",a),process.on("SIGINT",a),process.on("SIGTERM",a)}();let e=q(a.cwd,b),f=s(a.shell),{child:g,startError:h}=t(c,e,f);if(h||!g)return o({error:`Failed to start command (${f}): ${h??"unknown error"}`,cwd:e,shell:f},!0);let j=`bash-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,k={id:j,command:c,cwd:e,child:g,output:"",truncated:!1,running:!0,exitCode:null,startedAt:Date.now()};d.set(j,k);let l=u(()=>k.output,(a,b)=>{k.output=a,k.truncated=b||k.truncated});return g.stdout?.on("data",a=>l(a.toString())),g.stderr?.on("data",a=>l(a.toString())),g.on("error",a=>{l(`
4
- ${a.message}`),k.running=!1,k.endedAt=Date.now(),y(k)}),g.on("close",a=>{k.running=!1,k.exitCode=a,k.endedAt=Date.now(),y(k)}),o({sessionId:j,cwd:e,shell:f})}(b,a)}case"status":let c=String(b?.sessionId??""),d=n().get(c);return d?o(z(d)):o({error:`No background session with id "${c}".`},!0);case"wait":return await A(b);case"write_stdin":let e=String(b?.sessionId??""),f=n().get(e);if(!f)return o({error:`No background session with id "${e}".`},!0);if(!f.running)return o({error:`Session "${e}" has already exited.`},!0);let g="string"==typeof b.data?b.data:"",h=!1===b.newline?g:`${g}
5
- `;try{f.child.stdin?.write(h)}catch(a){return o({error:`Failed to write to stdin: ${a instanceof Error?a.message:String(a)}`},!0)}return o({sessionId:e,written:Buffer.byteLength(h,"utf8")});case"kill":let j=String(b?.sessionId??""),m=n().get(j);return m?(m.running&&(m.cancelEscalation=i(m.child)),o({sessionId:j,killed:!0})):o({error:`No background session with id "${j}".`},!0);case"list_sessions":return o({sessions:Array.from(n().values()).map(a=>({sessionId:a.id,command:a.command,running:a.running,exitCode:a.exitCode,startedAt:new Date(a.startedAt).toISOString(),endedAt:a.endedAt?new Date(a.endedAt).toISOString():void 0}))});default:return o({error:`Unknown tool on the built-in bash server: ${a}`},!0)}}catch(b){return m.warn("bashCallTool failed",{toolName:a,err:b}),o({error:`Tool failed: ${b instanceof Error?b.message:String(b)}`},!0)}}},48092:(a,b,c)=>{c.d(b,{FK:()=>i,FN:()=>j});var d=c(33873),e=c.n(d),f=c(18230),g=c(94749);let h=(0,f.h)("backend/services/mcp/internal/confinement");function i(a,b){let c=e().relative(a,b);return""===c||!c.startsWith("..")&&!e().isAbsolute(c)}async function j(a,b){let c=function(a){for(let b of Array.isArray(a)?a:[a]){let a=process.env[b];if(!a||!a.trim())continue;let c=a.split(e().delimiter).map(a=>a.trim()).filter(Boolean).map(a=>e().resolve(a));if(c.length)return c}return null}(b),d=[];try{d=(await (0,g.AC)(a)).map(a=>e().resolve(a))}catch(a){h.warn("loadEffectiveRoots: could not read persisted roots",a)}if(!c)return d.length?d:null;let f=d.filter(a=>c.some(b=>i(b,a)));return f.length?f:c}}};
1
+ "use strict";exports.id=166,exports.ids=[166,8092],exports.modules={40166:(a,b,c)=>{let d,e;c.d(b,{bashCallTool:()=>I,bashToolDefinitions:()=>C});var f=c(33873),g=c.n(f),h=c(29021),i=c.n(h),j=c(79646),k=c(18230);let l=(0,k.h)("utils/process/killProcessTree");function m(a,b=2e3){let c=a.pid;if(void 0===c)return()=>{};if("win32"===process.platform){try{(0,j.spawn)("taskkill",["/pid",String(c),"/T","/F"]).on("error",a=>l.debug(`taskkill failed for pid ${c}: ${a.message}`))}catch(a){l.debug(`taskkill spawn threw for pid ${c}: ${a instanceof Error?a.message:String(a)}`)}return()=>{}}try{process.kill(-c,"SIGTERM")}catch{}let d=setTimeout(()=>{try{process.kill(-c,"SIGKILL")}catch{}},b);return d.unref?.(),()=>clearTimeout(d)}var n=c(63129),o=c(94749),p=c(48092),q=c(65858);let r=(0,k.h)("backend/services/mcp/internal/bashTools");function s(a){let b=(process.env.PATH??process.env.Path??"").split(g().delimiter).filter(Boolean),c="win32"===process.platform?(process.env.PATHEXT??".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean):[""];for(let d of b)for(let b of c){let c=g().join(d,`${a}${b}`);try{if(i().statSync(c).isFile())return c}catch{}}return null}function t(){return global.__flujo_bash_sessions||(global.__flujo_bash_sessions=new Map),global.__flujo_bash_sessions}function u(a,b=!1){return{content:[{type:"text",text:"string"==typeof a?a:JSON.stringify(a,null,2)}],...b?{isError:!0}:{}}}let v=["FLUJO_BASH_ROOTS","FLUJO_FS_ROOTS"];function w(a,b){let c=(0,n.getDataDir)(),d="string"==typeof a?a.trim():"",e=d?g().isAbsolute(d)?g().resolve(d):g().resolve(c,d):c,f=(0,q.bz)(e);if(f.denied)throw Error(`cwd "${e}" is within a protected location (${f.matchedRoot}) and is blocked by the FLUJO built-in server protected-path policy. Set ${q.wp}=1 to override (operator only).`);if(0===b.length||!b.some(a=>(0,p.F)(a,e)))throw Error(`cwd "${e}" is outside the configured bash roots.`);return e}function x(a,b,c){let d=[],e=new Set,f=a.match(/(?:[A-Za-z]:[\\/][^\s"']*|\\\\[^\s"']+|~\/[^\s"']*|(?<![\w.])\/[^\s"']+)/g)??[],h=(()=>{try{return(0,n.getHomeDir)()}catch{return""}})();for(let a of f){let f,i=a;i.startsWith("~/")&&h&&(i=g().join(h,i.slice(2)));try{f=g().isAbsolute(i)?g().resolve(i):g().resolve(b,i)}catch{continue}if(e.has(f))continue;e.add(f);let j=(0,q.bz)(f);j.denied?d.push(`Command references "${a}", which is inside a protected location (${j.matchedRoot}).`):c.length>0&&!c.some(a=>(0,p.F)(a,f))&&d.push(`Command references "${a}", which is outside the configured working roots.`)}return d}let y=new Set(["PATH","Path","HOME","USERPROFILE","TMP","TEMP","TMPDIR","LANG","LC_ALL","SystemRoot","windir","ComSpec","PATHEXT","SystemDrive","NUMBER_OF_PROCESSORS","PROCESSOR_ARCHITECTURE"]);function z(a){return"pwsh"===a||"bash"===a?a:"default"}function A(a,b,c){let{file:f,args:h,useShell:k,effectiveShell:l,fallbackFrom:m}=function(a,b){if("pwsh"===b){let b=void 0!==e?e:e=s("pwsh");return b?{file:b,args:["-NoProfile","-NonInteractive","-Command",a],useShell:!1,effectiveShell:"pwsh"}:{file:a,args:[],useShell:!0,effectiveShell:"default",fallbackFrom:"pwsh"}}if("bash"===b){let b=function(){if(void 0!==d)return d;let a=s("bash");return a||"win32"!==process.platform||(a=[process.env.ProgramFiles,process.env["ProgramFiles(x86)"],process.env.LocalAppData].filter(a=>!!a).flatMap(a=>[g().join(a,"Git","bin","bash.exe"),g().join(a,"Git","usr","bin","bash.exe"),g().join(a,"Programs","Git","bin","bash.exe"),g().join(a,"Programs","Git","usr","bin","bash.exe")]).find(a=>{try{return i().statSync(a).isFile()}catch{return!1}})??null),d=a,a}();return b?{file:b,args:["-c",a],useShell:!1,effectiveShell:"bash"}:{file:a,args:[],useShell:!0,effectiveShell:"default",fallbackFrom:"bash"}}return{file:a,args:[],useShell:!0,effectiveShell:"default"}}(a,c),n="win32"!==process.platform;try{return{child:(0,j.spawn)(f,h,{cwd:b,shell:k,env:function(){var a;if("string"==typeof(a=process.env.FLUJO_BASH_INHERIT_ENV)&&/^(1|true|yes|on)$/i.test(a.trim()))return process.env;let b={};for(let a of Object.keys(process.env))(y.has(a)||/^LC_/.test(a))&&(b[a]=process.env[a]);return b}(),detached:n}),effectiveShell:l,fallbackFrom:m}}catch(a){return{child:void 0,startError:a instanceof Error?a.message:String(a),effectiveShell:l,fallbackFrom:m}}}function B(a,b){return c=>{let d=a();if(d.length>=1e5)return;let e=!1;(d+=c).length>1e5&&(d=d.slice(0,1e5)+"\n…[output truncated]",e=!0),b(d,e)}}function C(){let a={type:"string",enum:["default","pwsh","bash"],description:'Which shell to use: "default" (the OS shell), "pwsh" (PowerShell 7+), or "bash". Falls back to the default shell if the requested one is unavailable.'},b={type:"string",description:"Working directory. Relative paths resolve against the FLUJO data directory. Defaults to the data directory. When bash roots are configured (via the MCP manager, or the FLUJO_BASH_ROOTS / FLUJO_FS_ROOTS env hard ceiling) a cwd outside them is rejected."};return[{name:"run",description:"Run a shell command to completion and return combined stdout/stderr plus the exit code. Pipes and chained commands work. Killed if it exceeds the timeout; large output is truncated. Returns { exitCode, cwd, shell, output, timedOut }.",inputSchema:{type:"object",properties:{command:{type:"string",description:'The command line to execute, e.g. "grep -r foo ." or "curl -s https://…".'},cwd:b,shell:a,timeout:{type:"number",description:"Timeout in seconds (default 60, max 600)."},normalizeNewlines:{type:"boolean",description:"If true, CRLF/CR in the captured output are normalized to LF."}},required:["command"]}},{name:"start",description:"Start a command in the BACKGROUND and return immediately with a { sessionId }. Use status/wait to observe it, write_stdin to feed it input, and kill to stop it.",inputSchema:{type:"object",properties:{command:{type:"string",description:"The command line to execute in the background."},cwd:b,shell:a},required:["command"]}},{name:"status",description:"Return the current state of a background session: { sessionId, running, exitCode, output, truncated }.",inputSchema:{type:"object",properties:{sessionId:{type:"string",description:"The id returned by start."}},required:["sessionId"]}},{name:"wait",description:"Wait until a background session finishes (or the timeout elapses). Returns { sessionId, running, exitCode, output, truncated, timedOut }.",inputSchema:{type:"object",properties:{sessionId:{type:"string",description:"The id returned by start."},timeout:{type:"number",description:"Max seconds to wait (default 60, max 600)."}},required:["sessionId"]}},{name:"write_stdin",description:'Write a string to a running background session\'s stdin. Pass "newline": false to omit the trailing newline. Returns { sessionId, written }.',inputSchema:{type:"object",properties:{sessionId:{type:"string",description:"The id returned by start."},data:{type:"string",description:"Text to write to stdin."},newline:{type:"boolean",description:"Append a trailing newline (default true)."}},required:["sessionId","data"]}},{name:"kill",description:"Kill a background session (and its whole process tree). Returns { sessionId, killed }.",inputSchema:{type:"object",properties:{sessionId:{type:"string",description:"The id returned by start."}},required:["sessionId"]}},{name:"list_sessions",description:"List all known background sessions with their state. Returns { sessions: [{ sessionId, command, running, exitCode, startedAt, endedAt }] }.",inputSchema:{type:"object",properties:{}}}]}function D(a,b){return b?a.replace(/\r\n?/g,"\n"):a}async function E(a,b){let c=String(a?.command??"").trim();if(!c)return u({error:'Provide "command": a shell command line to run.'},!0);let d=w(a.cwd,b),e=x(c,d,b),f=e.length?{warnings:e}:{},g=z(a.shell),h=!0===a.normalizeNewlines,i=Math.min(1e3*("number"==typeof a.timeout&&a.timeout>0?a.timeout:60),6e5);return await new Promise(a=>{let b,e="",j=!1,k=!1,l=!1,n=B(()=>e,(a,b)=>{e=a,j=b||j}),{child:o,startError:p,effectiveShell:q,fallbackFrom:r}=A(c,d,g),s=r?{requestedShell:r,usedShell:q}:void 0;if(p||!o)return void a(u({error:`Failed to start command (${q}): ${p??"unknown error"}`,cwd:d,shell:q,shellFallback:s},!0));let t=setTimeout(()=>{l=!0,b=m(o)},i),v=c=>{k||(k=!0,clearTimeout(t),b?.(),a(c))};o.stdout?.on("data",a=>n(a.toString())),o.stderr?.on("data",a=>n(a.toString())),o.on("error",a=>{n(`
2
+ ${a.message}`),v(u({error:`Command failed to start (${q}): ${a.message}`,cwd:d,shell:q,shellFallback:s,output:D(e,h)},!0))}),o.on("close",a=>{let b=D(e,h);if(l)return void v(u({timedOut:!0,cwd:d,shell:q,shellFallback:s,exitCode:a,truncated:j,output:`${b}
3
+ [killed after ${i/1e3}s timeout]`,...f},!0));v(u({exitCode:a,cwd:d,shell:q,shellFallback:s,truncated:j,output:b,...f},0!==a))})})}function F(a){a.reapTimer=setTimeout(()=>{t().delete(a.id)},6e5),a.reapTimer.unref?.()}function G(a,b={}){return{sessionId:a.id,running:a.running,exitCode:a.exitCode,output:a.output,truncated:a.truncated,...b}}async function H(a){let b=String(a?.sessionId??""),c=t().get(b);if(!c)return u({error:`No background session with id "${b}".`},!0);if(!c.running)return u(G(c,{timedOut:!1}));let d=Math.min(1e3*("number"==typeof a.timeout&&a.timeout>0?a.timeout:60),6e5),e=await new Promise(a=>{let b=Date.now(),e=()=>c.running?Date.now()-b>=d?a(!0):void setTimeout(e,100):a(!1);e()});return u(G(c,{timedOut:e}))}async function I(a,b,c){try{switch(a){case"run":{let a=await (0,p.loadEffectiveRoots)(o.PA,v,c);return await E(b,a)}case"start":{let a=await (0,p.loadEffectiveRoots)(o.PA,v,c);return function(a,b){let c=String(a?.command??"").trim();if(!c)return u({error:'Provide "command": a shell command line to run.'},!0);let d=t();if(d.size>=25)for(let[a,b]of d)b.running||d.delete(a);if(d.size>=25)return u({error:"Too many active background sessions (max 25). Kill some first."},!0);!function(){if(global.__flujo_bash_cleanup_registered)return;global.__flujo_bash_cleanup_registered=!0;let a=()=>(function(){for(let a of t().values()){if(a.running)try{m(a.child)}catch{}a.reapTimer&&clearTimeout(a.reapTimer)}})();process.on("exit",a),process.on("SIGINT",a),process.on("SIGTERM",a)}();let e=w(a.cwd,b),f=x(c,e,b),g=f.length?{warnings:f}:{},{child:h,startError:i,effectiveShell:j,fallbackFrom:k}=A(c,e,z(a.shell)),l=k?{requestedShell:k,usedShell:j}:void 0;if(i||!h)return u({error:`Failed to start command (${j}): ${i??"unknown error"}`,cwd:e,shell:j,shellFallback:l},!0);let n=`bash-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,o={id:n,command:c,cwd:e,child:h,output:"",truncated:!1,running:!0,exitCode:null,startedAt:Date.now()};d.set(n,o);let p=B(()=>o.output,(a,b)=>{o.output=a,o.truncated=b||o.truncated});return h.stdout?.on("data",a=>p(a.toString())),h.stderr?.on("data",a=>p(a.toString())),h.on("error",a=>{p(`
4
+ ${a.message}`),o.running=!1,o.endedAt=Date.now(),F(o)}),h.on("close",a=>{o.running=!1,o.exitCode=a,o.endedAt=Date.now(),F(o)}),u({sessionId:n,cwd:e,shell:j,shellFallback:l,...g})}(b,a)}case"status":let d=String(b?.sessionId??""),e=t().get(d);return e?u(G(e)):u({error:`No background session with id "${d}".`},!0);case"wait":return await H(b);case"write_stdin":let f=String(b?.sessionId??""),g=t().get(f);if(!g)return u({error:`No background session with id "${f}".`},!0);if(!g.running)return u({error:`Session "${f}" has already exited.`},!0);let h="string"==typeof b.data?b.data:"",i=!1===b.newline?h:`${h}
5
+ `;try{g.child.stdin?.write(i)}catch(a){return u({error:`Failed to write to stdin: ${a instanceof Error?a.message:String(a)}`},!0)}return u({sessionId:f,written:Buffer.byteLength(i,"utf8")});case"kill":let j=String(b?.sessionId??""),k=t().get(j);return k?(k.running&&(k.cancelEscalation=m(k.child)),u({sessionId:j,killed:!0})):u({error:`No background session with id "${j}".`},!0);case"list_sessions":return u({sessions:Array.from(t().values()).map(a=>({sessionId:a.id,command:a.command,running:a.running,exitCode:a.exitCode,startedAt:new Date(a.startedAt).toISOString(),endedAt:a.endedAt?new Date(a.endedAt).toISOString():void 0}))});default:return u({error:`Unknown tool on the built-in bash server: ${a}`},!0)}}catch(b){return r.warn("bashCallTool failed",{toolName:a,err:b}),u({error:`Tool failed: ${b instanceof Error?b.message:String(b)}`},!0)}}},48092:(a,b,c)=>{c.d(b,{F:()=>j,loadEffectiveRoots:()=>l});var d=c(33873),e=c.n(d),f=c(79551),g=c(18230),h=c(94749);let i=(0,g.h)("backend/services/mcp/internal/confinement");function j(a,b){let c=e().relative(a,b);return""===c||!c.startsWith("..")&&!e().isAbsolute(c)}async function k(a,b){let{resolveGlobalVars:d}=await Promise.resolve().then(c.bind(c,87507)),g=(await d(a)).trim();if(!g)return null;if(g.startsWith("file://"))try{return e().resolve((0,f.fileURLToPath)(g))}catch(a){return i.warn(`resolveRootToPath: could not parse file URI "${g}"`,a),null}return e().isAbsolute(g)?e().resolve(g):e().resolve(b,g)}async function l(a,b,d){let{getDataDir:f}=await Promise.resolve().then(c.bind(c,63129)),g=f(),l=function(a){for(let b of Array.isArray(a)?a:[a]){let a=process.env[b];if(!a||!a.trim())continue;let c=a.split(e().delimiter).map(a=>a.trim()).filter(Boolean).map(a=>e().resolve(a));if(c.length)return c}return null}(b),m=[];try{for(let b of(await (0,h.AC)(a)))m.push(e().isAbsolute(b)?e().resolve(b):e().resolve(g,b))}catch(a){i.warn("loadEffectiveRoots: could not read persisted roots",a)}try{let{getNodeRoots:b,getNodeRootsForId:e}=await Promise.resolve().then(c.bind(c,28181));for(let c of void 0!==d?(()=>{let c=e(a,d);return c.length>0?c:b(a)})():b(a)){let a=await k(c,g);a&&m.push(a)}}catch(a){i.warn("loadEffectiveRoots: could not read node roots",a)}let n=Array.from(new Set(m));if(!l)return 0===n.length?[g]:n;let o=n.filter(a=>l.some(b=>j(b,a)));return o.length?o:l}},65858:(a,b,c)=>{c.d(b,{bz:()=>m,wp:()=>j});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f),h=c(63129),i=c(48092);let j="FLUJO_ALLOW_PROTECTED_PATHS",k=null;function l(a,...b){return e().resolve(a,...b)}function m(a){let b=e().resolve(a);if((function(){let a=[];try{a.push(e().resolve((0,h.getDataDir)()))}catch{}try{a.push(e().resolve(g().tmpdir()))}catch{}return a})().some(a=>(0,i.F)(a,b)))return{denied:!1};for(let a of function(){var a;let b="string"==typeof(a=process.env[j])&&/^(1|true|yes|on)$/i.test(a.trim()),c=(0,h.getHomeDir)(),d=`${b?"off":"on"}::${c}`;if(k&&k.key===d)return k.paths;let f=b?[]:function(a){let b=[];if("win32"===process.platform)for(let c of["AppData","Downloads","Desktop","Documents","Pictures","Music","Videos","OneDrive"])b.push(l(a,c));else if("darwin"===process.platform){for(let c of["Downloads","Desktop","Documents","Pictures","Music","Movies"])b.push(l(a,c));for(let c of["Library/Mail","Library/Messages","Library/Safari","Library/Cookies","Library/Calendars","Library/Application Support/AddressBook","Library/Application Support/com.apple.TCC","Library/PersonalizationPortrait","Library/Metadata/CoreSpotlight","Library/Suggestions"])b.push(l(a,c));for(let a of["/.Spotlight-V100","/.fseventsd","/.DocumentRevisions-V100"])b.push(e().resolve(a))}else for(let c of["Documents","Downloads","Desktop",".ssh",".gnupg",".aws",".config"])b.push(l(a,c));return Array.from(new Set(b))}(c);return k={key:d,paths:f},f}())if((0,i.F)(a,b))return{denied:!0,matchedRoot:a};return{denied:!1}}}};
@@ -1 +1 @@
1
- "use strict";exports.id=1805,exports.ids=[1805],exports.modules={74186:(a,b,c)=>{c.d(b,{loadServerConfigs:()=>q,q:()=>r});var d=c(33873),e=c.n(d),f=c(34322),g=c(92372),h=c(46480),i=c(50846),j=c(43326);let k=(0,i.h)("backend/services/mcp/config"),l=new Set(["streamable","sse","websocket"]),m=e().join((0,j.ok)(),"mcp-servers"),n=new Map;async function o(a){if(n.has(a))return n.get(a);let b=null;try{let c=(0,f.Ay)({baseDir:a,timeout:{block:5e3}});b=(await c.remote(["get-url","origin"])||"").trim()||null}catch{b=null}return n.set(a,b),b}async function p(a){var b;if(l.has(a.transport))return{type:"remote"};let c="string"!=typeof(b=a.rootPath)||""===b.trim()?null:e().isAbsolute(b)?b:e().resolve((0,j.ok)(),b);if(c&&function(a){let b=e().relative(m,a);return""!==b&&!b.startsWith("..")&&!e().isAbsolute(b)}(c)){let a=await o(c);if(a)return{type:"github",repositoryUrl:a}}return{type:"local"}}async function q(){k.debug("Entering loadServerConfigs method");try{let a=await (0,g.YM)(h.Z.MCP_SERVERS,{}),b=Object.entries(a).map(([a,b])=>{let c=b.transport||"stdio";l.has(c)&&function(a){if("string"!=typeof a)return!1;let b=a.trim();return"/"===b||"\\"===b||/^[A-Za-z]:[\\/]?$/.test(b)}(b.rootPath)&&(k.info(`Normalizing filesystem-root rootPath "${b.rootPath}" of remote server ${a} to mcp-servers/${a}`),b={...b,rootPath:`mcp-servers/${a}`});let d={name:a,disabled:!1,autoApprove:[],rootPath:"",env:{},_buildCommand:"",_installCommand:""};return"streamable"===c?{...d,...b,name:a,requestInit:b.requestInit&&"object"==typeof b.requestInit?b.requestInit:void 0,reconnectionOptions:b.reconnectionOptions&&"object"==typeof b.reconnectionOptions?b.reconnectionOptions:void 0,sessionId:b.sessionId||void 0,oauthClientId:b.oauthClientId||"",oauthClientSecret:b.oauthClientSecret||"",oauthScopes:b.oauthScopes||(b.oauthClientId||b.oauthClientInformation?["read"]:void 0),oauthClientMetadata:b.oauthClientMetadata,oauthClientInformation:b.oauthClientInformation,oauthTokens:b.oauthTokens,oauthCodeVerifier:b.oauthCodeVerifier}:"sse"===c?{...d,...b,name:a,eventSourceInit:b.eventSourceInit&&"object"==typeof b.eventSourceInit?b.eventSourceInit:void 0,requestInit:b.requestInit&&"object"==typeof b.requestInit?b.requestInit:void 0}:"websocket"===c?{...d,...b,name:a,websocketUrl:b.websocketUrl||""}:{...d,...b,name:a,command:b.command||"",args:b.args||[],stderr:b.stderr||"pipe"}});return await Promise.all(b.map(async a=>{a.source||(a.source=await p(a))})),b}catch(a){return k.warn("Failed to load server configs",a),{success:!1,error:`Failed to load server configs: ${a instanceof Error?a.message:"Unknown error"}`}}}async function r(a){k.debug("Entering saveConfig method");try{let b=Object.fromEntries(Array.from(a.entries()).filter(([,a])=>!0!==a.builtIn).map(([a,b])=>{let{name:c,...d}=b;return[a,d]}));return await (0,g.VH)(h.Z.MCP_SERVERS,b),{success:!0}}catch(a){return k.warn("Failed to save config",a),{success:!1,error:`Failed to save config: ${a instanceof Error?a.message:"Unknown error"}`}}}}};
1
+ "use strict";exports.id=1805,exports.ids=[1805],exports.modules={74186:(a,b,c)=>{c.d(b,{loadServerConfigs:()=>q,q:()=>r});var d=c(33873),e=c.n(d),f=c(34322),g=c(92372),h=c(38844),i=c(50846),j=c(43326);let k=(0,i.h)("backend/services/mcp/config"),l=new Set(["streamable","sse","websocket"]),m=e().join((0,j.getDataDir)(),"mcp-servers"),n=new Map;async function o(a){if(n.has(a))return n.get(a);let b=null;try{let c=(0,f.Ay)({baseDir:a,timeout:{block:5e3}});b=(await c.remote(["get-url","origin"])||"").trim()||null}catch{b=null}return n.set(a,b),b}async function p(a){var b;if(l.has(a.transport))return{type:"remote"};let c="string"!=typeof(b=a.rootPath)||""===b.trim()?null:e().isAbsolute(b)?b:e().resolve((0,j.getDataDir)(),b);if(c&&function(a){let b=e().relative(m,a);return""!==b&&!b.startsWith("..")&&!e().isAbsolute(b)}(c)){let a=await o(c);if(a)return{type:"github",repositoryUrl:a}}return{type:"local"}}async function q(){k.debug("Entering loadServerConfigs method");try{let a=await (0,g.YM)(h.Z.MCP_SERVERS,{}),b=Object.entries(a).map(([a,b])=>{let c=b.transport||"stdio";l.has(c)&&function(a){if("string"!=typeof a)return!1;let b=a.trim();return"/"===b||"\\"===b||/^[A-Za-z]:[\\/]?$/.test(b)}(b.rootPath)&&(k.info(`Normalizing filesystem-root rootPath "${b.rootPath}" of remote server ${a} to mcp-servers/${a}`),b={...b,rootPath:`mcp-servers/${a}`});let d={name:a,disabled:!1,autoApprove:[],rootPath:"",env:{},_buildCommand:"",_installCommand:""};return"streamable"===c?{...d,...b,name:a,requestInit:b.requestInit&&"object"==typeof b.requestInit?b.requestInit:void 0,reconnectionOptions:b.reconnectionOptions&&"object"==typeof b.reconnectionOptions?b.reconnectionOptions:void 0,sessionId:b.sessionId||void 0,oauthClientId:b.oauthClientId||"",oauthClientSecret:b.oauthClientSecret||"",oauthScopes:b.oauthScopes||(b.oauthClientId||b.oauthClientInformation?["read"]:void 0),oauthClientMetadata:b.oauthClientMetadata,oauthClientInformation:b.oauthClientInformation,oauthTokens:b.oauthTokens,oauthCodeVerifier:b.oauthCodeVerifier}:"sse"===c?{...d,...b,name:a,eventSourceInit:b.eventSourceInit&&"object"==typeof b.eventSourceInit?b.eventSourceInit:void 0,requestInit:b.requestInit&&"object"==typeof b.requestInit?b.requestInit:void 0}:"websocket"===c?{...d,...b,name:a,websocketUrl:b.websocketUrl||""}:{...d,...b,name:a,command:b.command||"",args:b.args||[],stderr:b.stderr||"pipe"}});return await Promise.all(b.map(async a=>{a.source||(a.source=await p(a))})),b}catch(a){return k.warn("Failed to load server configs",a),{success:!1,error:`Failed to load server configs: ${a instanceof Error?a.message:"Unknown error"}`}}}async function r(a){k.debug("Entering saveConfig method");try{let b=Object.fromEntries(Array.from(a.entries()).filter(([,a])=>!0!==a.builtIn).map(([a,b])=>{let{name:c,...d}=b;return[a,d]}));return await (0,g.VH)(h.Z.MCP_SERVERS,b),{success:!0}}catch(a){return k.warn("Failed to save config",a),{success:!1,error:`Failed to save config: ${a instanceof Error?a.message:"Unknown error"}`}}}}};
@@ -1,2 +1,2 @@
1
- "use strict";exports.id=1819,exports.ids=[1819,1925,4306],exports.modules={1925:(a,b,c)=>{c.d(b,{Hm:()=>f,xc:()=>e});let d=["key","secret","token","password"],e=a=>d.some(b=>a.toLowerCase().includes(b)),f=a=>e(a)||"authorization"===a.trim().toLowerCase()},43237:(a,b,c)=>{c.d(b,{SA:()=>D,MH:()=>E,M2:()=>A,HV:()=>C,Xd:()=>w});var d=c(50846),e=c(93868),f=c(25113);function g(a,b,c){if("string"!=typeof c)return;let d=c.trim();0!==d.length&&a.push({location:b,text:d})}function h(a){let b=[];for(let c of a.flows??[])b.push(...function(a){let b=[];for(let d of(g(b,`flow:${a.id}.description`,a.description),a.nodes??[])){var c=a.id;let e=d.id,f=`flow:${c}.node:${e}`;g(b,`${f}.description`,d.data?.description),d.data?.properties&&"object"==typeof d.data.properties&&function a(b,c,d,e,f=0){if(!(f>12)&&null!=d){if("string"==typeof d)return void g(b,c,d);if("object"==typeof d&&!e.has(d)){if(e.add(d),Array.isArray(d))return void d.forEach((d,g)=>a(b,`${c}[${g}]`,d,e,f+1));for(let[g,h]of Object.entries(d))a(b,`${c}.${g}`,h,e,f+1)}}}(b,`${f}.properties`,d.data.properties,new WeakSet)}return b}(c));for(let c of a.models??[])b.push(...function(a){let b=[],c=`model:${a.id}`;return g(b,`${c}.baseUrl`,a.baseUrl),g(b,`${c}.promptTemplate`,a.promptTemplate),g(b,`${c}.displayName`,a.displayName),g(b,`${c}.description`,a.description),g(b,`${c}.name`,a.name),b}(c));for(let c of a.plannedExecutions??[])b.push(...function(a){let b=[],c=`plannedExecution:${a.id}`;return g(b,`${c}.name`,a.name),g(b,`${c}.prompt`,a.prompt),b}(c));return b}var i=c(1925),j=c(45879);function k(a){if(!a)return 0;let b=new Map;for(let c of a)b.set(c,(b.get(c)??0)+1);let c=0;for(let d of b.values()){let b=d/a.length;c-=b*Math.log2(b)}return c}let l=[{re:/\bhttps?:\/\/[^/\s:@]+:[^/\s:@]+@[^\s"'<>]+/gi,kind:"url-cred",priority:1,rationale:"URL with embedded credentials"},{re:/\bBearer\s+([A-Za-z0-9._~+/=-]{16,})/gi,kind:"token",priority:2,rationale:"Bearer token",group:1},{re:/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/g,kind:"email",priority:3,rationale:"Email address"},{re:/\b[A-Za-z]:\\[^\s"'<>|?*]+/g,kind:"path",priority:4,rationale:"Windows absolute file path"},{re:/(?<![A-Za-z0-9._~:/])\/[A-Za-z0-9._-]+(?:\/[A-Za-z0-9._-]+)+/g,kind:"path",priority:5,rationale:"POSIX absolute file path"},{re:/(?<![A-Za-z0-9._/-])[A-Za-z0-9](?:[A-Za-z0-9._-]{0,38})\/[A-Za-z0-9](?:[A-Za-z0-9._-]{0,99})(?![A-Za-z0-9._/-])/g,kind:"repo",priority:6,rationale:"owner/repo slug"}],m=/(?<![A-Za-z0-9_-])([A-Za-z][A-Za-z0-9_-]{1,64})\s*[:=]\s*("[^"]{4,}"|'[^']{4,}'|[^\s"']{6,})/g;function n(a){return new RegExp(e.HQ.source).test(a)}let o={path:"PATH",repo:"REPO",token:"TOKEN",email:"EMAIL","url-cred":"URL",name:"NAME",other:"SECRET"};function p(a,b){let c=b;if("path"===a){let a=b.split(/[\\/]/).filter(Boolean);c=a[a.length-1]||b}else"email"===a?c=b.split("@")[0]||b:"repo"===a?c=b.replace(/\//g,"_"):"url-cred"===a?c=b.replace(/^https?:\/\//i,"").split(/[/:@]/)[0]||b:"token"===a&&(c=b.slice(0,8));return(0,j.bF)(o[a],c)}function q(a,b={}){let c=b.entropyThreshold??3.5,d=!1!==b.enableEntropy,e=[],f=new Set;for(let b of a)for(let a of function(a){let b=[...a].sort((a,b)=>a.priority-b.priority||b.end-b.start-(a.end-a.start)||a.start-b.start),c=[];for(let a of b)c.some(b=>a.start<b.end&&b.start<a.end)||c.push(a);return c.sort((a,b)=>a.start-b.start)}([...function(a){let b=[];for(let c of l){let d,e=new RegExp(c.re.source,c.re.flags);for(;null!==(d=e.exec(a));){let a=c.group??0,f=d[a];if(!f)continue;let g=d.index+(a>0?d[0].indexOf(f):0);b.push({start:g,end:g+f.length,value:f,kind:c.kind,priority:c.priority,rationale:c.rationale}),e.lastIndex===d.index&&e.lastIndex++}}return b}(b.text),...function(a){let b,c=[],d=new RegExp(m.source,m.flags);for(;null!==(b=d.exec(a));){let a=b[1],d=b[2];if(!(0,i.xc)(a)||((d.startsWith('"')&&d.endsWith('"')||d.startsWith("'")&&d.endsWith("'"))&&(d=d.slice(1,-1)),!d||n(d)))continue;let e=b.index+b[0].indexOf(d,a.length);c.push({start:e,end:e+d.length,value:d,kind:"token",priority:2,rationale:`Value assigned to secret-like key "${a}"`})}return c}(b.text),...d?function(a,b){let c,d=[],e=/[A-Za-z0-9._~+/=-]{20,}/g;for(;null!==(c=e.exec(a));){let a=c[0];(function(a,b){if(a.length<20)return!1;let c=/[A-Za-z]/.test(a),d=/[0-9]/.test(a);return!!c&&!!d&&k(a)>=b})(a,b)&&d.push({start:c.index,end:c.index+a.length,value:a,kind:"token",priority:7,rationale:`High-entropy string (${k(a).toFixed(2)} bits/char)`})}return d}(b.text,c):[]].filter(a=>!n(a.value)))){let c=`${b.location}\0${a.value}`;f.has(c)||(f.add(c),e.push({id:(0,j.QG)(b.location,a.value),location:b.location,excerpt:a.value,kind:a.kind,source:"heuristic",suggestedSecretName:p(a.kind,a.value),rationale:a.rationale}))}return e}async function r(a,b){let c,d=[];if(0===a.length)return{proposals:[],warnings:d};let e=b.maxTargets??200,f=b.maxCharsPerTarget??2e3,g=a.slice(0,e).map(a=>({location:a.location,text:a.text.length>f?a.text.slice(0,f):a.text})),h=new Map(a.map(a=>[a.location,a]));try{c=await b.completion({modelIdentifier:b.modelIdentifier,temperature:0,messages:[{role:"system",content:'You are a security assistant helping to package a workflow for sharing.\nYou are given a JSON array of content slices, each { "location", "text" }.\nIdentify substrings that are SECRETS or INSTANCE-SPECIFIC values that should\nNOT be shared verbatim: absolute file paths, owner/repo slugs, API tokens or\nkeys, credential-bearing URLs, email addresses, and similar.\n\nReturn ONLY a JSON array (no prose, no markdown fences). Each element:\n{ "location": string (echo the slice location exactly),\n "excerpt": string (the EXACT substring, copied verbatim from that slice text),\n "kind": one of "path"|"repo"|"token"|"email"|"url-cred"|"name"|"other",\n "suggestedSecretName": UPPER_SNAKE identifier,\n "suggestedDescription": short human description,\n "rationale": one short sentence }.\nDo NOT invent excerpts that are not present in the given text. If nothing\nqualifies, return [].'},{role:"user",content:JSON.stringify(g)}]})}catch(a){return d.push(`Model-driven pass failed: ${a instanceof Error?a.message:String(a)}`),{proposals:[],warnings:d}}if(!c?.success)return d.push(`Model-driven pass returned an error: ${c?.error?.message??"unknown error"}`),{proposals:[],warnings:d};let i=c.completion?.choices?.[0]?.message?.content??"",k=function(a){if("string"!=typeof a)return null;let b=a.trim(),c=/^```(?:json)?\s*([\s\S]*?)\s*```$/i.exec(b);c&&(b=c[1].trim());let d=a=>{try{let b=JSON.parse(a);return Array.isArray(b)?b:null}catch{return null}},e=d(b);if(e)return e;let f=b.indexOf("["),g=b.lastIndexOf("]");return f>=0&&g>f?d(b.slice(f,g+1)):null}("string"==typeof i?i:"");if(!k)return d.push("Model-driven pass returned no parseable JSON; ignoring its output."),{proposals:[],warnings:d};let l=[],m=new Set;for(let a of k){let b=function(a,b){var c;if(!a||"object"!=typeof a)return null;let d="string"==typeof a.location?a.location:"",e="string"==typeof a.excerpt?a.excerpt.trim():"";if(!d||!e)return null;let f=b.get(d);if(!f||!f.text.includes(e))return null;let g="string"==typeof(c=a.kind)&&j.d2.includes(c)?c:"other",h="string"==typeof a.suggestedSecretName&&a.suggestedSecretName.trim()?(0,j.bF)("SECRET",a.suggestedSecretName):p(g,e);return{id:(0,j.QG)(d,e),location:d,excerpt:e,kind:g,source:"model",suggestedSecretName:h,suggestedDescription:"string"==typeof a.suggestedDescription?a.suggestedDescription.slice(0,200):void 0,rationale:"string"==typeof a.rationale?a.rationale.slice(0,200):void 0}}(a,h);if(!b)continue;let c=`${b.location} ${b.excerpt}`;m.has(c)||(m.add(c),l.push(b))}return{proposals:l,warnings:d}}async function s(a,b={}){let c=h(a),d=[],e=q(c,b),f=[];if(b.model){let a=await r(c,{modelIdentifier:b.model.modelIdentifier,completion:b.model.completion});f=a.proposals,d.push(...a.warnings)}return{proposals:function(a,b){let c=new Map,d=a=>`${a.location}\0${a.excerpt}`;for(let b of a)c.set(d(b),b);for(let a of b){let b=d(a);c.has(b)||c.set(b,a)}return Array.from(c.values())}(e,f),warnings:d}}function t(a,b){if("string"==typeof a)return b(a);if(Array.isArray(a))return a.map(a=>t(a,b));if(a&&"object"==typeof a){let c={};for(let[d,e]of Object.entries(a))c[d]=t(e,b);return c}return a}let u=(0,d.h)("backend/services/packages/buildPackage");function v(a){return a?Object.entries(a).map(([a,b])=>({name:a,isSecret:"object"==typeof b&&null!==b&&b.metadata?.isSecret===!0})):[]}function w(a,b){let c=new Map(b.map(a=>[a.name,a])),d=[],e=[];for(let b of a){let a=c.get(b);if(!a){e.push(`MCP server "${b}" was not found.`);continue}let f=function(a){let b=a.source;if(!b||"local"===b.type)return null;switch(b.type){case"github":return{sourceType:"github",ref:b.ref?`${b.repositoryUrl}@${b.ref}`:b.repositoryUrl,name:a.name};case"registry":return{sourceType:"registry",ref:b.registryName,name:a.name};case"marketplace":return{sourceType:"marketplace",ref:b.id,name:a.name};case"remote":return{sourceType:"remote",url:a.serverUrl??a.websocketUrl,name:a.name};default:return null}}(a);if(!f){e.push(`MCP server "${b}" is a local server and cannot be packaged. Re-install it from GitHub, the registry, the marketplace, or as a remote server, then try again.`);continue}let g=v(a.headers);d.push({name:a.name,transport:a.transport,...a.disabled?{disabled:!0}:{},...a.autoApprove&&a.autoApprove.length?{autoApprove:a.autoApprove}:{},...a.folder?{folder:a.folder}:{},installOrigin:f,envDeclarations:v(a.env),...g.length?{headerDeclarations:g}:{}})}return{packaged:d,errors:e}}function x(a,b){let c=`${a}_${b}`.toUpperCase().replace(/[^A-Z0-9_.-]+/g,"_").replace(/^_+|_+$/g,"")||`${a}_SECRET`;return e.IE.test(c)?c:`${a}_SECRET`}function y(a){let b=(a.ApiKey??"").trim();if(!b)return{ref:{kind:"none"}};let c=e.mQ.exec(b);if(c)return{ref:{kind:"global",var:c[1]}};let d=x("MODEL",a.displayName||a.name||a.id);return{ref:{kind:"secret",secret:d},secret:{name:d,description:`API key for model "${a.displayName||a.name}"`,required:!0}}}function z(a){let b=[],c=new Set,d=(a,d)=>{for(let e of d??[]){if(!e.isSecret||e.secretRef)continue;let d=x("MCP",`${a}_${e.name}`);e.secretRef=d,c.has(d)||(c.add(d),b.push({name:d,description:`Secret "${e.name}" for MCP server "${a}"`,required:!0}))}};for(let b of a)d(b.name,b.envDeclarations),d(b.name,b.headerDeclarations);return b}function A(a,b){let c=new Map(b.models.map(a=>[a.id,a])),d=[],e=new Set,f=a=>{a&&!e.has(a.name)&&(e.add(a.name),d.push(a))};for(let b of a.modelIds){let a=c.get(b);a&&f(y(a).secret)}for(let c of z(w(a.mcpServerNames,b.mcpServers).packaged))f(c);return d}async function B(){let{flowService:a}=await c.e(7821).then(c.bind(c,87821)),{modelService:b}=await Promise.all([c.e(4322),c.e(6996),c.e(5734),c.e(5096),c.e(4545)]).then(c.bind(c,20433)),{loadServerConfigs:d}=await Promise.all([c.e(4322),c.e(1805)]).then(c.bind(c,74186)),{getSchedulerService:e}=await Promise.all([c.e(3736),c.e(9794),c.e(4771)]).then(c.bind(c,4771)),[f,g,h,i]=await Promise.all([a.loadFlows(),b.loadModels(),d(),e().list()]);return{flows:f,models:g,mcpServers:Array.isArray(h)?h:[],plannedExecutions:i.map(a=>a.execution)}}async function C(a){let b=await B();return{resolved:function(a,b){let c=new Map(b.flows.map(a=>[a.id,a])),d=new Map(b.models.map(a=>[a.id,a])),e=new Map(b.mcpServers.map(a=>[a.name,a])),g=new Map(b.plannedExecutions.map(a=>[a.id,a])),h=new Set,i=new Set(a.modelIds??[]),j=new Set(a.mcpServerNames??[]),k=new Set(a.plannedExecutionIds??[]),l=[],m=[],n=new Set(a.flowIds??[]),o=new Set(a.modelIds??[]),p=new Set(a.mcpServerNames??[]);for(let a of k){let b=g.get(a);if(!b){m.push(`Planned execution "${a}" was not found and will be skipped.`);continue}!b.flowId||n.has(b.flowId)||h.has(b.flowId)||l.push({type:"flow",id:b.flowId,reason:`used by planned execution "${b.name}"`}),b.flowId&&n.add(b.flowId)}let q=new Set,r=Array.from(n);for(;r.length>0;){let a=r.shift();if(q.has(a))continue;q.add(a);let b=c.get(a);if(!b){m.push(`Referenced flow "${a}" was not found and will be skipped.`);continue}h.add(a);let g=(0,f.Xw)(b);for(let d of g.flowIds??[])q.has(d)||r.push(d),!n.has(d)&&d!==a&&(c.has(d)?l.some(a=>"flow"===a.type&&a.id===d)||l.push({type:"flow",id:d,reason:`subflow of "${b.name}"`}):m.push(`Flow "${b.name}" references missing subflow "${d}".`));for(let a of g.modelIds??[]){if(!d.has(a)){m.push(`Flow "${b.name}" references missing model "${a}".`);continue}!i.has(a)&&(i.add(a),o.has(a)||l.push({type:"model",id:a,reason:`used by flow "${b.name}"`}))}for(let a of g.mcpServerNames??[]){if(!e.has(a)){m.push(`Flow "${b.name}" references missing MCP server "${a}".`);continue}!j.has(a)&&(j.add(a),p.has(a)||l.push({type:"mcpServer",id:a,reason:`used by flow "${b.name}"`}))}}return{flowIds:Array.from(h),modelIds:Array.from(i),mcpServerNames:Array.from(j),plannedExecutionIds:Array.from(k),autoAdded:l,warnings:m}}(a,b),entities:b}}async function D(a,b,c=[]){u.info(`Building package "${b.name}" v${b.version}`);let{resolved:d,entities:g}=await C(a);return function(a,b,c,d=[]){let g=[],i=[...a.warnings],j=new Map(b.flows.map(a=>[a.id,a])),k=new Map(b.models.map(a=>[a.id,a])),l=new Map(b.plannedExecutions.map(a=>[a.id,a])),m=w(a.mcpServerNames,b.mcpServers);g.push(...m.errors);let n=[],o=new Set,p=a=>{a&&!o.has(a.name)&&(o.add(a.name),n.push(a))},r=a.modelIds.map(a=>k.get(a)).filter(a=>!!a),s=a.flowIds.map(a=>j.get(a)).filter(a=>!!a),u=a.plannedExecutionIds.map(a=>l.get(a)).filter(a=>!!a),v=r,x=s,A=u;if(d.length>0){let a=function(a,b){let c=[],d=b.filter(a=>!!a.excerpt&&(!!e.IE.test(a.secretName)||(c.push(`Skipped substitution with invalid secret name "${a.secretName}".`),!1))).sort((a,b)=>b.excerpt.length-a.excerpt.length),f=a=>{let b=a;for(let a of d)b.includes(a.excerpt)&&(b=b.split(a.excerpt).join(`{{secret.${a.secretName}}}`));return b},g={flows:a.flows.map(a=>t(a,f)),models:a.models.map(a=>t(a,f)),plannedExecutions:a.plannedExecutions.map(a=>t(a,f))},h=[],i=new Set;for(let a of d)i.has(a.secretName)||(i.add(a.secretName),h.push({name:a.secretName,description:a.description?f(a.description):`Derived secret ${a.secretName}`,required:!0}));return{entities:g,secrets:h,warnings:c}}({flows:s,models:r,plannedExecutions:u},d);for(let b of(v=a.entities.models,x=a.entities.flows,A=a.entities.plannedExecutions,i.push(...a.warnings),a.secrets))p(b)}let B=v.map(a=>{let{ref:b,secret:c}=y(a);return p(c),{model:a,apiKeyRef:b}});for(let a of z(m.packaged))p(a);if(g.length>0)return{ok:!1,resolved:a,errors:g,warnings:i};try{let{json:b,package:e}=(0,f.Zp)({id:c.id,name:c.name,version:c.version,description:c.description,author:c.author,publisher:c.publisher,tags:c.tags,secrets:n,models:B,mcpServers:m.packaged,flows:x,plannedExecutions:A}),j=(0,f.$j)(e);return j.warnings?.length&&i.push(...j.warnings),d.length>0&&i.push(...function(a,b={}){return q(h(a),b).map(a=>`Possible secret left in package at ${a.location}: "${a.excerpt}" (${a.kind}).`)}({flows:x,models:v,plannedExecutions:A})),{ok:!0,json:b,package:e,resolved:a,errors:g,warnings:i}}catch(b){return g.push(b instanceof Error?b.message:String(b)),{ok:!1,resolved:a,errors:g,warnings:i}}}(d,g,b,c.filter(a=>a.excerpt&&a.suggestedSecretName).map(a=>({excerpt:a.excerpt,secretName:a.suggestedSecretName,description:a.suggestedDescription})))}async function E(a,b={}){let{resolved:d,entities:e}=await C(a),f=function(a,b){let c=new Set(a.flowIds),d=new Set(a.modelIds),e=new Set(a.plannedExecutionIds);return{flows:b.flows.filter(a=>c.has(a.id)),models:b.models.filter(a=>d.has(a.id)),plannedExecutions:b.plannedExecutions.filter(a=>e.has(a.id))}}(d,e),g={entropyThreshold:b.entropyThreshold,enableEntropy:b.enableEntropy};if(b.modelIdentifier){let{modelService:a}=await Promise.all([c.e(4322),c.e(6996),c.e(5734),c.e(5096),c.e(4545)]).then(c.bind(c,20433));g.model={modelIdentifier:b.modelIdentifier,completion:async b=>await a.generateChatCompletion({modelIdentifier:b.modelIdentifier,messages:b.messages,temperature:b.temperature})}}return s(f,g)}},45879:(a,b,c)=>{c.d(b,{QG:()=>f,bF:()=>g,d2:()=>e});var d=c(93868);let e=["path","repo","token","email","url-cred","name","other"];function f(a,b){return`sp_${function(a){let b=5381;for(let c=0;c<a.length;c++)b=(b<<5)+b^a.charCodeAt(c);return(b>>>0).toString(16).padStart(8,"0")}(`${a}\0${b}`)}`}function g(a,b){let c=`${a}_${b}`.toUpperCase().replace(/[^A-Z0-9_.-]+/g,"_").replace(/^[_.-]+|[_.-]+$/g,"")||`${a}_SECRET`;return d.IE.test(c)?c:`${a}_SECRET`}},51669:(a,b)=>{function c(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
1
+ "use strict";exports.id=1819,exports.ids=[1819,1925,4306],exports.modules={1925:(a,b,c)=>{c.d(b,{Hm:()=>f,xc:()=>e});let d=["key","secret","token","password"],e=a=>d.some(b=>a.toLowerCase().includes(b)),f=a=>e(a)||"authorization"===a.trim().toLowerCase()},43237:(a,b,c)=>{c.d(b,{SA:()=>H,MH:()=>J,M2:()=>E,HV:()=>G,$Z:()=>K,Xd:()=>A});var d=c(50846),e=c(93868),f=c(25113);function g(a,b,c){if("string"!=typeof c)return;let d=c.trim();0!==d.length&&a.push({location:b,text:d})}function h(a){let b=[];for(let c of a.flows??[])b.push(...function(a){let b=[];for(let d of(g(b,`flow:${a.id}.description`,a.description),a.nodes??[])){var c=a.id;let e=d.id,f=`flow:${c}.node:${e}`;g(b,`${f}.description`,d.data?.description),d.data?.properties&&"object"==typeof d.data.properties&&function a(b,c,d,e,f=0){if(!(f>12)&&null!=d){if("string"==typeof d)return void g(b,c,d);if("object"==typeof d&&!e.has(d)){if(e.add(d),Array.isArray(d))return void d.forEach((d,g)=>a(b,`${c}[${g}]`,d,e,f+1));for(let[g,h]of Object.entries(d))a(b,`${c}.${g}`,h,e,f+1)}}}(b,`${f}.properties`,d.data.properties,new WeakSet)}return b}(c));for(let c of a.models??[])b.push(...function(a){let b=[],c=`model:${a.id}`;return g(b,`${c}.baseUrl`,a.baseUrl),g(b,`${c}.promptTemplate`,a.promptTemplate),g(b,`${c}.displayName`,a.displayName),g(b,`${c}.description`,a.description),g(b,`${c}.name`,a.name),b}(c));for(let c of a.plannedExecutions??[])b.push(...function(a){let b=[],c=`plannedExecution:${a.id}`;return g(b,`${c}.name`,a.name),g(b,`${c}.prompt`,a.prompt),b}(c));return b}var i=c(1925),j=c(45879);let k=["/usr/","/bin/","/sbin/","/lib/","/lib64/","/etc/","/var/","/opt/","/proc/","/sys/","/dev/","/tmp/","/run/","/boot/","/mnt/","/srv/","/node_modules/"],l=["c:\\windows","c:\\program files","c:\\programdata"];function m(a){if(!a)return 0;let b=new Map;for(let c of a)b.set(c,(b.get(c)??0)+1);let c=0;for(let d of b.values()){let b=d/a.length;c-=b*Math.log2(b)}return c}let n=[{re:/\bhttps?:\/\/[^/\s:@]+:[^/\s:@]+@[^\s"'<>]+/gi,kind:"url-cred",priority:1,rationale:"URL with embedded credentials",confidence:"high"},{re:/\bBearer\s+([A-Za-z0-9._~+/=-]{16,})/gi,kind:"token",priority:2,rationale:"Bearer token",confidence:"high",group:1},{re:/(?:https?:\/\/)?(?:www\.)?(?:github\.com|gitlab\.com|bitbucket\.org)[/:]([A-Za-z0-9](?:[A-Za-z0-9._-]{0,38})\/[A-Za-z0-9](?:[A-Za-z0-9._-]{0,99}?))(?=(?:\.git)?(?![A-Za-z0-9._/-]))/gi,kind:"repo",priority:3,rationale:"owner/repo slug in a VCS URL",confidence:"high",group:1},{re:/\bgit@[A-Za-z0-9.-]+:([A-Za-z0-9](?:[A-Za-z0-9._-]{0,38})\/[A-Za-z0-9](?:[A-Za-z0-9._-]{0,99}?))(?=(?:\.git)?(?![A-Za-z0-9._/-]))/gi,kind:"repo",priority:3,rationale:"owner/repo slug in a git SSH URL",confidence:"high",group:1},{re:/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/g,kind:"email",priority:4,rationale:"Email address",confidence:"medium"},{re:/\b[A-Za-z]:\\[^\s"'<>|?*]+/g,kind:"path",priority:5,rationale:"Windows absolute file path",confidence:"medium"},{re:/(?<![A-Za-z0-9._~:/])\/[A-Za-z0-9._-]+(?:\/[A-Za-z0-9._-]+)+/g,kind:"path",priority:6,rationale:"POSIX absolute file path",confidence:"medium"}],o={re:/(?<![A-Za-z0-9._/-])[A-Za-z0-9](?:[A-Za-z0-9._-]{0,38})\/[A-Za-z0-9](?:[A-Za-z0-9._-]{0,99})(?![A-Za-z0-9._/-])/g,kind:"repo",priority:8,rationale:"owner/repo-shaped slug (opt-in, low confidence)",confidence:"low"},p=new Set(["and/or","input/output","read/write","client/server","tcp/ip","files/folders","yes/no","true/false","on/off","src/utils","a/b"]),q=/(?<![A-Za-z0-9_-])([A-Za-z][A-Za-z0-9_-]{1,64})\s*[:=]\s*("[^"]{4,}"|'[^']{4,}'|[^\s"']{6,})/g;function r(a){return new RegExp(e.HQ.source).test(a)}let s={path:"PATH",repo:"REPO",token:"TOKEN",email:"EMAIL","url-cred":"URL",name:"NAME",other:"SECRET"};function t(a,b){let c=b;if("path"===a){let a=b.split(/[\\/]/).filter(Boolean);c=a[a.length-1]||b}else"email"===a?c=b.split("@")[0]||b:"repo"===a?c=b.replace(/\//g,"_"):"url-cred"===a?c=b.replace(/^https?:\/\//i,"").split(/[/:@]/)[0]||b:"token"===a&&(c=b.slice(0,8));return(0,j.bF)(s[a],c)}function u(a,b={}){let c=b.entropyThreshold??4,d=!0===b.enableEntropy,e=!0===b.enableRepoSlug?[...n,o]:n,f=[],g=new Set;for(let b of a)for(let a of function(a){let b=[...a].sort((a,b)=>a.priority-b.priority||b.end-b.start-(a.end-a.start)||a.start-b.start),c=[];for(let a of b)c.some(b=>a.start<b.end&&b.start<a.end)||c.push(a);return c.sort((a,b)=>a.start-b.start)}([...function(a,b){let c=[];for(let d of b){let b,e=new RegExp(d.re.source,d.re.flags);for(;null!==(b=e.exec(a));){let a=d.group??0,f=b[a];if(!f){e.lastIndex===b.index&&e.lastIndex++;continue}let g=b.index+(a>0?b[0].indexOf(f):0);if("path"===d.kind&&function(a){let b=a.toLowerCase();return!!(b.includes("node_modules/")||b.includes("node_modules\\"))||(/^[a-z]:\\/.test(b)?l.some(a=>b.startsWith(a)):k.some(a=>b.startsWith(a)))}(f)||"repo"===d.kind&&"low"===d.confidence&&p.has(f.toLowerCase())){e.lastIndex===b.index&&e.lastIndex++;continue}c.push({start:g,end:g+f.length,value:f,kind:d.kind,priority:d.priority,rationale:d.rationale,confidence:d.confidence}),e.lastIndex===b.index&&e.lastIndex++}}return c}(b.text,e),...function(a){let b,c=[],d=new RegExp(q.source,q.flags);for(;null!==(b=d.exec(a));){let a=b[1],d=b[2];if(!(0,i.xc)(a)||((d.startsWith('"')&&d.endsWith('"')||d.startsWith("'")&&d.endsWith("'"))&&(d=d.slice(1,-1)),!d||r(d)))continue;let e=b.index+b[0].indexOf(d,a.length);c.push({start:e,end:e+d.length,value:d,kind:"token",priority:2,rationale:`Value assigned to secret-like key "${a}"`,confidence:"high"})}return c}(b.text),...d?function(a,b){let c,d=[],e=/[A-Za-z0-9._~+/=-]{20,}/g;for(;null!==(c=e.exec(a));){let a=c[0];(function(a,b){if(a.length<24)return!1;let c=/[A-Za-z]/.test(a),d=/[0-9]/.test(a);return!!c&&!!d&&m(a)>=b})(a,b)&&d.push({start:c.index,end:c.index+a.length,value:a,kind:"token",priority:7,rationale:`High-entropy string (${m(a).toFixed(2)} bits/char)`,confidence:"low"})}return d}(b.text,c):[]].filter(a=>!r(a.value)))){let c=`${b.location}\0${a.value}`;g.has(c)||(g.add(c),f.push({id:(0,j.QG)(b.location,a.value),location:b.location,excerpt:a.value,kind:a.kind,source:"heuristic",confidence:a.confidence,suggestedSecretName:t(a.kind,a.value),rationale:a.rationale}))}return f}async function v(a,b){let c,d=[];if(0===a.length)return{proposals:[],warnings:d};let e=b.maxTargets??200,f=b.maxCharsPerTarget??2e3,g=a.slice(0,e).map(a=>({location:a.location,text:a.text.length>f?a.text.slice(0,f):a.text})),h=new Map(a.map(a=>[a.location,a]));try{c=await b.completion({modelIdentifier:b.modelIdentifier,temperature:0,messages:[{role:"system",content:'You are a security assistant helping to package a workflow for sharing.\nYou are given a JSON array of content slices, each { "location", "text" }.\nIdentify substrings that are SECRETS or INSTANCE-SPECIFIC values that should\nNOT be shared verbatim: absolute file paths, owner/repo slugs, API tokens or\nkeys, credential-bearing URLs, email addresses, and similar.\n\nReturn ONLY a JSON array (no prose, no markdown fences). Each element:\n{ "location": string (echo the slice location exactly),\n "excerpt": string (the EXACT substring, copied verbatim from that slice text),\n "kind": one of "path"|"repo"|"token"|"email"|"url-cred"|"name"|"other",\n "suggestedSecretName": UPPER_SNAKE identifier,\n "suggestedDescription": short human description,\n "rationale": one short sentence }.\nDo NOT invent excerpts that are not present in the given text. If nothing\nqualifies, return [].'},{role:"user",content:JSON.stringify(g)}]})}catch(a){return d.push(`Model-driven pass failed: ${a instanceof Error?a.message:String(a)}`),{proposals:[],warnings:d}}if(!c?.success)return d.push(`Model-driven pass returned an error: ${c?.error?.message??"unknown error"}`),{proposals:[],warnings:d};let i=c.completion?.choices?.[0]?.message?.content??"",k=function(a){if("string"!=typeof a)return null;let b=a.trim(),c=/^```(?:json)?\s*([\s\S]*?)\s*```$/i.exec(b);c&&(b=c[1].trim());let d=a=>{try{let b=JSON.parse(a);return Array.isArray(b)?b:null}catch{return null}},e=d(b);if(e)return e;let f=b.indexOf("["),g=b.lastIndexOf("]");return f>=0&&g>f?d(b.slice(f,g+1)):null}("string"==typeof i?i:"");if(!k)return d.push("Model-driven pass returned no parseable JSON; ignoring its output."),{proposals:[],warnings:d};let l=[],m=new Set;for(let a of k){let b=function(a,b){var c;if(!a||"object"!=typeof a)return null;let d="string"==typeof a.location?a.location:"",e="string"==typeof a.excerpt?a.excerpt.trim():"";if(!d||!e)return null;let f=b.get(d);if(!f||!f.text.includes(e))return null;let g="string"==typeof(c=a.kind)&&j.d2.includes(c)?c:"other",h="string"==typeof a.suggestedSecretName&&a.suggestedSecretName.trim()?(0,j.bF)("SECRET",a.suggestedSecretName):t(g,e);return{id:(0,j.QG)(d,e),location:d,excerpt:e,kind:g,source:"model",suggestedSecretName:h,suggestedDescription:"string"==typeof a.suggestedDescription?a.suggestedDescription.slice(0,200):void 0,rationale:"string"==typeof a.rationale?a.rationale.slice(0,200):void 0}}(a,h);if(!b)continue;let c=`${b.location} ${b.excerpt}`;m.has(c)||(m.add(c),l.push(b))}return{proposals:l,warnings:d}}async function w(a,b={}){let c=h(a),d=[],e=u(c,b),f=[];if(b.model){let a=await v(c,{modelIdentifier:b.model.modelIdentifier,completion:b.model.completion});f=a.proposals,d.push(...a.warnings)}return{proposals:function(a,b){let c=new Map,d=a=>`${a.location}\0${a.excerpt}`;for(let b of a)c.set(d(b),b);for(let a of b){let b=d(a);c.has(b)||c.set(b,a)}return Array.from(c.values())}(e,f),warnings:d}}function x(a,b){if("string"==typeof a)return b(a);if(Array.isArray(a))return a.map(a=>x(a,b));if(a&&"object"==typeof a){let c={};for(let[d,e]of Object.entries(a))c[d]=x(e,b);return c}return a}let y=(0,d.h)("backend/services/packages/buildPackage");function z(a){return a?Object.entries(a).map(([a,b])=>({name:a,isSecret:"object"==typeof b&&null!==b&&b.metadata?.isSecret===!0})):[]}function A(a,b){let c=new Map(b.map(a=>[a.name,a])),d=[],e=[];for(let b of a){let a=c.get(b);if(!a){e.push(`MCP server "${b}" was not found.`);continue}let f=function(a){let b=a.source;if(!b||"local"===b.type)return null;switch(b.type){case"github":return{sourceType:"github",ref:b.ref?`${b.repositoryUrl}@${b.ref}`:b.repositoryUrl,name:a.name};case"registry":return{sourceType:"registry",ref:b.registryName,name:a.name};case"marketplace":return{sourceType:"marketplace",ref:b.id,name:a.name};case"remote":return{sourceType:"remote",url:a.serverUrl??a.websocketUrl,name:a.name};default:return null}}(a);if(!f){e.push(`MCP server "${b}" is a local server and cannot be packaged. Re-install it from GitHub, the registry, the marketplace, or as a remote server, then try again.`);continue}let g=z(a.headers);d.push({name:a.name,transport:a.transport,...a.disabled?{disabled:!0}:{},...a.autoApprove&&a.autoApprove.length?{autoApprove:a.autoApprove}:{},...a.folder?{folder:a.folder}:{},installOrigin:f,envDeclarations:z(a.env),...g.length?{headerDeclarations:g}:{}})}return{packaged:d,errors:e}}function B(a,b){let c=`${a}_${b}`.toUpperCase().replace(/[^A-Z0-9_.-]+/g,"_").replace(/^_+|_+$/g,"")||`${a}_SECRET`;return e.IE.test(c)?c:`${a}_SECRET`}function C(a){let b=(a.ApiKey??"").trim();if(!b)return{ref:{kind:"none"}};let c=e.mQ.exec(b);if(c)return{ref:{kind:"global",var:c[1]}};let d=B("MODEL",a.displayName||a.name||a.id);return{ref:{kind:"secret",secret:d},secret:{name:d,description:`API key for model "${a.displayName||a.name}"`,required:!0}}}function D(a){let b=[],c=new Set,d=(a,d)=>{for(let e of d??[]){if(!e.isSecret||e.secretRef)continue;let d=B("MCP",`${a}_${e.name}`);e.secretRef=d,c.has(d)||(c.add(d),b.push({name:d,description:`Secret "${e.name}" for MCP server "${a}"`,required:!0}))}};for(let b of a)d(b.name,b.envDeclarations),d(b.name,b.headerDeclarations);return b}function E(a,b){let c=new Map(b.models.map(a=>[a.id,a])),d=[],e=new Set,f=a=>{a&&!e.has(a.name)&&(e.add(a.name),d.push(a))};for(let b of a.modelIds){let a=c.get(b);a&&f(C(a).secret)}for(let c of D(A(a.mcpServerNames,b.mcpServers).packaged))f(c);return d}async function F(){let{flowService:a}=await c.e(7821).then(c.bind(c,87821)),{modelService:b}=await Promise.all([c.e(4322),c.e(5067),c.e(6034),c.e(7821),c.e(5096),c.e(544),c.e(6793)]).then(c.bind(c,20433)),{loadServerConfigs:d}=await Promise.all([c.e(4322),c.e(1805)]).then(c.bind(c,74186)),{getSchedulerService:e}=await Promise.all([c.e(3736),c.e(9794),c.e(4771),c.e(9174)]).then(c.bind(c,4771)),[f,g,h,i]=await Promise.all([a.loadFlows(),b.loadModels(),d(),e().list()]);return{flows:f,models:g,mcpServers:Array.isArray(h)?h:[],plannedExecutions:i.map(a=>a.execution)}}async function G(a){let b=await F();return{resolved:function(a,b){let c=new Map(b.flows.map(a=>[a.id,a])),d=new Map(b.models.map(a=>[a.id,a])),e=new Map(b.mcpServers.map(a=>[a.name,a])),g=new Map(b.plannedExecutions.map(a=>[a.id,a])),h=new Set,i=new Set(a.modelIds??[]),j=new Set(a.mcpServerNames??[]),k=new Set(a.plannedExecutionIds??[]),l=[],m=[],n=new Set(a.flowIds??[]),o=new Set(a.modelIds??[]),p=new Set(a.mcpServerNames??[]);for(let a of k){let b=g.get(a);if(!b){m.push(`Planned execution "${a}" was not found and will be skipped.`);continue}!b.flowId||n.has(b.flowId)||h.has(b.flowId)||l.push({type:"flow",id:b.flowId,reason:`used by planned execution "${b.name}"`}),b.flowId&&n.add(b.flowId)}let q=new Set,r=Array.from(n);for(;r.length>0;){let a=r.shift();if(q.has(a))continue;q.add(a);let b=c.get(a);if(!b){m.push(`Referenced flow "${a}" was not found and will be skipped.`);continue}h.add(a);let g=(0,f.Xw)(b);for(let d of g.flowIds??[])q.has(d)||r.push(d),!n.has(d)&&d!==a&&(c.has(d)?l.some(a=>"flow"===a.type&&a.id===d)||l.push({type:"flow",id:d,reason:`subflow of "${b.name}"`}):m.push(`Flow "${b.name}" references missing subflow "${d}".`));for(let a of g.modelIds??[]){if(!d.has(a)){m.push(`Flow "${b.name}" references missing model "${a}".`);continue}!i.has(a)&&(i.add(a),o.has(a)||l.push({type:"model",id:a,reason:`used by flow "${b.name}"`}))}for(let a of g.mcpServerNames??[]){if(!e.has(a)){m.push(`Flow "${b.name}" references missing MCP server "${a}".`);continue}!j.has(a)&&(j.add(a),p.has(a)||l.push({type:"mcpServer",id:a,reason:`used by flow "${b.name}"`}))}}return{flowIds:Array.from(h),modelIds:Array.from(i),mcpServerNames:Array.from(j),plannedExecutionIds:Array.from(k),autoAdded:l,warnings:m}}(a,b),entities:b}}async function H(a,b,c=[]){y.info(`Building package "${b.name}" v${b.version}`);let{resolved:d,entities:g}=await G(a);return function(a,b,c,d=[]){let g=[],i=[...a.warnings],j=new Map(b.flows.map(a=>[a.id,a])),k=new Map(b.models.map(a=>[a.id,a])),l=new Map(b.plannedExecutions.map(a=>[a.id,a])),m=A(a.mcpServerNames,b.mcpServers);g.push(...m.errors);let n=[],o=new Set,p=a=>{a&&!o.has(a.name)&&(o.add(a.name),n.push(a))},q=a.modelIds.map(a=>k.get(a)).filter(a=>!!a),r=a.flowIds.map(a=>j.get(a)).filter(a=>!!a),s=a.plannedExecutionIds.map(a=>l.get(a)).filter(a=>!!a),t=q,v=r,w=s;if(d.length>0){let a=function(a,b){let c=[],d=b.filter(a=>!!a.excerpt&&(!!e.IE.test(a.secretName)||(c.push(`Skipped substitution with invalid secret name "${a.secretName}".`),!1))).sort((a,b)=>b.excerpt.length-a.excerpt.length),f=a=>{let b=a;for(let a of d)b.includes(a.excerpt)&&(b=b.split(a.excerpt).join(`{{secret.${a.secretName}}}`));return b},g={flows:a.flows.map(a=>x(a,f)),models:a.models.map(a=>x(a,f)),plannedExecutions:a.plannedExecutions.map(a=>x(a,f))},h=[],i=new Set;for(let a of d)i.has(a.secretName)||(i.add(a.secretName),h.push({name:a.secretName,description:a.description?f(a.description):`Derived secret ${a.secretName}`,required:!0}));return{entities:g,secrets:h,warnings:c}}({flows:r,models:q,plannedExecutions:s},d);for(let b of(t=a.entities.models,v=a.entities.flows,w=a.entities.plannedExecutions,i.push(...a.warnings),a.secrets))p(b)}let y=t.map(a=>{let{ref:b,secret:c}=C(a);return p(c),{model:a,apiKeyRef:b}});for(let a of D(m.packaged))p(a);if(g.length>0)return{ok:!1,resolved:a,errors:g,warnings:i};try{let{json:b,package:e}=(0,f.Zp)({id:c.id,name:c.name,version:c.version,description:c.description,author:c.author,publisher:c.publisher,tags:c.tags,secrets:n,models:y,mcpServers:m.packaged,flows:v,plannedExecutions:w}),j=(0,f.$j)(e);return j.warnings?.length&&i.push(...j.warnings),d.length>0&&i.push(...function(a,b={}){return u(h(a),b).map(a=>`Possible secret left in package at ${a.location}: "${a.excerpt}" (${a.kind}).`)}({flows:v,models:t,plannedExecutions:w})),{ok:!0,json:b,package:e,resolved:a,errors:g,warnings:i}}catch(b){return g.push(b instanceof Error?b.message:String(b)),{ok:!1,resolved:a,errors:g,warnings:i}}}(d,g,b,c.filter(a=>a.excerpt&&a.suggestedSecretName).map(a=>({excerpt:a.excerpt,secretName:a.suggestedSecretName,description:a.suggestedDescription})))}function I(a,b){let c=new Set(a.flowIds),d=new Set(a.modelIds),e=new Set(a.plannedExecutionIds);return{flows:b.flows.filter(a=>c.has(a.id)),models:b.models.filter(a=>d.has(a.id)),plannedExecutions:b.plannedExecutions.filter(a=>e.has(a.id))}}async function J(a,b={}){let{resolved:d,entities:e}=await G(a),f=I(d,e),g={entropyThreshold:b.entropyThreshold,enableEntropy:b.enableEntropy,enableRepoSlug:b.enableRepoSlug};if(b.modelIdentifier){let{modelService:a}=await Promise.all([c.e(4322),c.e(5067),c.e(6034),c.e(7821),c.e(5096),c.e(544),c.e(6793)]).then(c.bind(c,20433));g.model={modelIdentifier:b.modelIdentifier,completion:async b=>await a.generateChatCompletion({modelIdentifier:b.modelIdentifier,messages:b.messages,temperature:b.temperature})}}return w(f,g)}async function K(a){let{resolved:b,entities:c}=await G(a),d=h(I(b,c)),e=new Set,f=[];for(let a of d){if(e.has(a.text))continue;e.add(a.text);let b=a.location.split(":")[0]||"other";f.push({source:b,location:a.location,text:a.text})}return f.sort((a,b)=>b.text.length-a.text.length),f}},45879:(a,b,c)=>{c.d(b,{QG:()=>f,bF:()=>g,d2:()=>e});var d=c(93868);let e=["path","repo","token","email","url-cred","name","other"];function f(a,b){return`sp_${function(a){let b=5381;for(let c=0;c<a.length;c++)b=(b<<5)+b^a.charCodeAt(c);return(b>>>0).toString(16).padStart(8,"0")}(`${a}\0${b}`)}`}function g(a,b){let c=`${a}_${b}`.toUpperCase().replace(/[^A-Z0-9_.-]+/g,"_").replace(/^[_.-]+|[_.-]+$/g,"")||`${a}_SECRET`;return d.IE.test(c)?c:`${a}_SECRET`}},51669:(a,b)=>{function c(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
2
  Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(b,"D",{enumerable:!0,get:function(){return c}})},68633:(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,{decryptActionBoundArgs:function(){return s},encryptActionBoundArgs:function(){return r}}),c(77925);let d=c(97954),e=c(27825),f=c(47686),g=c(77533),h=c(63033),i=c(26906),j=function(a){return a&&a.__esModule?a:{default:a}}(c(74515)),k=new TextEncoder,l=new TextDecoder,m=void 0,n=void 0;async function o(a,b){let c=await (0,g.getActionEncryptionKey)();if(void 0===c)throw Object.defineProperty(Error("Missing encryption key for Server Action. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E65",enumerable:!1,configurable:!0});let d=atob(b),e=d.slice(0,16),f=d.slice(16),h=l.decode(await (0,g.decrypt)(c,(0,g.stringToUint8Array)(e),(0,g.stringToUint8Array)(f)));if(!h.startsWith(a))throw Object.defineProperty(Error("Invalid Server Action payload: failed to decrypt."),"__NEXT_ERROR_CODE",{value:"E191",enumerable:!1,configurable:!0});return h.slice(a.length)}async function p(a,b){let c=await (0,g.getActionEncryptionKey)();if(void 0===c)throw Object.defineProperty(Error("Missing encryption key for Server Action. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E65",enumerable:!1,configurable:!0});let d=new Uint8Array(16);h.workUnitAsyncStorage.exit(()=>crypto.getRandomValues(d));let e=(0,g.arrayBufferToString)(d.buffer),f=await (0,g.encrypt)(c,d,k.encode(a+b));return btoa(e+(0,g.arrayBufferToString)(f))}var q=function(a){return a[a.Ready=0]="Ready",a[a.Pending=1]="Pending",a[a.Complete=2]="Complete",a}(q||{});let r=j.default.cache(async function a(b,...c){let e=h.workUnitAsyncStorage.getStore(),j=e?(0,h.getCacheSignal)(e):void 0,{clientModules:k}=(0,g.getClientReferenceManifestForRsc)(),l=Error();Error.captureStackTrace(l,a);let n=!1,o=e?(0,i.createHangingInputAbortSignal)(e):void 0,q=0;function r(){0===q&&(q=1,null==j||j.beginRead())}function s(){1===q&&(null==j||j.endRead()),q=2}o&&j&&o.addEventListener("abort",r,{once:!0});let t=await (0,f.streamToString)((0,d.renderToReadableStream)(c,k,{filterStackFrame:m,signal:o,onError(a){(null==o||!o.aborted)&&(n||(n=!0,l.message=a instanceof Error?a.message:String(a)))}}),o);if(n)throw s(),l;if(!e)return p(b,t);r();let u=(0,h.getPrerenderResumeDataCache)(e),v=(0,h.getRenderResumeDataCache)(e),w=b+t,x=(null==u?void 0:u.encryptedBoundArgs.get(w))??(null==v?void 0:v.encryptedBoundArgs.get(w));if(x)return x;let y=await p(b,t);return s(),null==u||u.encryptedBoundArgs.set(w,y),y});async function s(a,b){let c,d=await b,f=h.workUnitAsyncStorage.getStore();if(f){let b=(0,h.getCacheSignal)(f),e=(0,h.getPrerenderResumeDataCache)(f),g=(0,h.getRenderResumeDataCache)(f);(c=(null==e?void 0:e.decryptedBoundArgs.get(d))??(null==g?void 0:g.decryptedBoundArgs.get(d)))||(null==b||b.beginRead(),c=await o(a,d),null==b||b.endRead(),null==e||e.decryptedBoundArgs.set(d,c))}else c=await o(a,d);let{edgeRscModuleMapping:i,rscModuleMapping:j}=(0,g.getClientReferenceManifestForRsc)();return await (0,e.createFromReadableStream)(new ReadableStream({start(a){switch(a.enqueue(k.encode(c)),null==f?void 0:f.type){case"prerender":case"prerender-runtime":f.renderSignal.aborted?a.close():f.renderSignal.addEventListener("abort",()=>a.close(),{once:!0});break;case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":case void 0:return a.close()}}}),{findSourceMapURL:n,serverConsumerManifest:{moduleLoading:null,moduleMap:j,serverModuleMap:(0,g.getServerModuleMap)()}})}},75879:(a,b,c)=>{Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(97954)}};