flujo-ai 3.26.0 → 3.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (624) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +367 -274
  3. package/.next/app-path-routes-manifest.json +15 -5
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +24 -0
  6. package/.next/react-loadable-manifest.json +19 -18
  7. package/.next/routes-manifest.json +6 -0
  8. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/_not-found.html +1 -1
  10. package/.next/server/app/_not-found.rsc +2 -2
  11. package/.next/server/app/api/approvals/[id]/route.js +1 -1
  12. package/.next/server/app/api/approvals/[id]/route.js.nft.json +1 -1
  13. package/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/approvals/route.js +2 -2
  15. package/.next/server/app/api/approvals/route.js.nft.json +1 -1
  16. package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/backup/route.js +1 -1
  18. package/.next/server/app/api/backup/route.js.nft.json +1 -1
  19. package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/bugs/enhance/route.js +2 -2
  22. package/.next/server/app/api/bugs/enhance/route.js.nft.json +1 -1
  23. package/.next/server/app/api/bugs/enhance/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/encryption/secure/route.js +1 -1
  26. package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
  27. package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/env/route.js +1 -1
  29. package/.next/server/app/api/env/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/flow/[id]/route.js +1 -1
  31. package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
  32. package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/flow/compile/route.js +1 -1
  34. package/.next/server/app/api/flow/compile/route.js.nft.json +1 -1
  35. package/.next/server/app/api/flow/compile/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/flow/generate/route.js +1 -1
  37. package/.next/server/app/api/flow/generate/route.js.nft.json +1 -1
  38. package/.next/server/app/api/flow/generate/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/flow/improve/route.js +1 -1
  40. package/.next/server/app/api/flow/improve/route.js.nft.json +1 -1
  41. package/.next/server/app/api/flow/improve/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/flow/prompt-renderer/route.js +2 -2
  43. package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
  44. package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/flow/quick-chat/route.js +1 -1
  46. package/.next/server/app/api/flow/quick-chat/route.js.nft.json +1 -1
  47. package/.next/server/app/api/flow/quick-chat/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/flow/repair/route.js +1 -1
  49. package/.next/server/app/api/flow/repair/route.js.nft.json +1 -1
  50. package/.next/server/app/api/flow/repair/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/flow/route.js +1 -1
  52. package/.next/server/app/api/flow/route.js.nft.json +1 -1
  53. package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/git/route.js +2 -2
  55. package/.next/server/app/api/git/route.js.nft.json +1 -1
  56. package/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/init/route.js +1 -1
  58. package/.next/server/app/api/init/route.js.nft.json +1 -1
  59. package/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/local-models/capability/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/local-models/pull/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/local-models/suggest/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/mcp/cancel/route.js +2 -2
  64. package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
  65. package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -1
  67. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
  68. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -1
  70. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
  71. package/.next/server/app/api/mcp/servers/[name]/prompts/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -1
  73. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
  74. package/.next/server/app/api/mcp/servers/[name]/resources/read/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -1
  76. package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
  77. package/.next/server/app/api/mcp/servers/[name]/resources/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
  79. package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
  80. package/.next/server/app/api/mcp/servers/[name]/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -1
  82. package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
  83. package/.next/server/app/api/mcp/servers/[name]/status/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -1
  85. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
  86. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -1
  88. package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
  89. package/.next/server/app/api/mcp/servers/[name]/tools/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/mcp/servers/route.js +1 -1
  91. package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
  92. package/.next/server/app/api/mcp/servers/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/mcp/test-connection/route.js +1 -1
  94. package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
  95. package/.next/server/app/api/mcp/test-connection/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
  97. package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
  98. package/.next/server/app/api/mcp/test-connection/stream/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/mcp-registry/route.js +2 -2
  100. package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
  101. package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/model/[id]/route.js +1 -1
  104. package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
  105. package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/model/provider/route.js +2 -2
  107. package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
  108. package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/api/model/route.js +1 -1
  110. package/.next/server/app/api/model/route.js.nft.json +1 -1
  111. package/.next/server/app/api/model/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/model/test/route.js +2 -2
  113. package/.next/server/app/api/model/test/route.js.nft.json +1 -1
  114. package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/oauth/callback/route.js +2 -2
  116. package/.next/server/app/api/oauth/callback/route.js.nft.json +1 -1
  117. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/oauth/initiate/route.js +2 -2
  119. package/.next/server/app/api/oauth/initiate/route.js.nft.json +1 -1
  120. package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/oauth/reset/route.js +2 -2
  122. package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
  123. package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/packages/build/route.js +1 -0
  125. package/.next/server/app/api/packages/build/route.js.nft.json +1 -0
  126. package/.next/server/app/api/packages/build/route_client-reference-manifest.js +1 -0
  127. package/.next/server/app/api/packages/derive-secrets/route.js +1 -0
  128. package/.next/server/app/api/packages/derive-secrets/route.js.nft.json +1 -0
  129. package/.next/server/app/api/packages/derive-secrets/route_client-reference-manifest.js +1 -0
  130. package/.next/server/app/api/packages/install/route.js +1 -0
  131. package/.next/server/app/api/packages/install/route.js.nft.json +1 -0
  132. package/.next/server/app/api/packages/install/route_client-reference-manifest.js +1 -0
  133. package/.next/server/app/api/packages/install/status/route.js +1 -0
  134. package/.next/server/app/api/packages/install/status/route.js.nft.json +1 -0
  135. package/.next/server/app/api/packages/install/status/route_client-reference-manifest.js +1 -0
  136. package/.next/server/app/api/packages/resolve/route.js +1 -0
  137. package/.next/server/app/api/packages/resolve/route.js.nft.json +1 -0
  138. package/.next/server/app/api/packages/resolve/route_client-reference-manifest.js +1 -0
  139. package/.next/server/app/api/planned-executions/[id]/route.js +1 -1
  140. package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
  141. package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/planned-executions/[id]/run/route.js +1 -1
  143. package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
  144. package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/planned-executions/[id]/runs/route.js +1 -1
  146. package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
  147. package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/planned-executions/reconcile/route.js +1 -1
  150. package/.next/server/app/api/planned-executions/reconcile/route.js.nft.json +1 -1
  151. package/.next/server/app/api/planned-executions/reconcile/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/planned-executions/route.js +1 -1
  153. package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
  154. package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/api/registry/auth/resend/route.js +1 -0
  156. package/.next/server/app/api/registry/auth/resend/route.js.nft.json +1 -0
  157. package/.next/server/app/api/registry/auth/resend/route_client-reference-manifest.js +1 -0
  158. package/.next/server/app/api/registry/auth/route.js +1 -0
  159. package/.next/server/app/api/registry/auth/route.js.nft.json +1 -0
  160. package/.next/server/app/api/registry/auth/route_client-reference-manifest.js +1 -0
  161. package/.next/server/app/api/registry/publish/route.js +1 -0
  162. package/.next/server/app/api/registry/publish/route.js.nft.json +1 -0
  163. package/.next/server/app/api/registry/publish/route_client-reference-manifest.js +1 -0
  164. package/.next/server/app/api/registry/settings/route.js +1 -0
  165. package/.next/server/app/api/registry/settings/route.js.nft.json +1 -0
  166. package/.next/server/app/api/registry/settings/route_client-reference-manifest.js +1 -0
  167. package/.next/server/app/api/restore/route.js +1 -1
  168. package/.next/server/app/api/restore/route.js.nft.json +1 -1
  169. package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
  170. package/.next/server/app/api/runs/active/route.js +2 -2
  171. package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
  172. package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -1
  173. package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/update/route.js +1 -1
  175. package/.next/server/app/api/update/route.js.nft.json +1 -1
  176. package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/waves/route.js +1 -1
  178. package/.next/server/app/api/waves/route.js.nft.json +1 -1
  179. package/.next/server/app/api/waves/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/webhooks/[id]/route.js +1 -1
  181. package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
  182. package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
  183. package/.next/server/app/chat/page.js +9 -10
  184. package/.next/server/app/chat/page.js.nft.json +1 -1
  185. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  186. package/.next/server/app/chat.html +1 -1
  187. package/.next/server/app/chat.rsc +3 -3
  188. package/.next/server/app/docs/page.js +3 -3
  189. package/.next/server/app/docs/page.js.nft.json +1 -1
  190. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  191. package/.next/server/app/docs.html +1 -1
  192. package/.next/server/app/docs.rsc +3 -3
  193. package/.next/server/app/executions/page.js +3 -3
  194. package/.next/server/app/executions/page.js.nft.json +1 -1
  195. package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
  196. package/.next/server/app/executions.html +1 -1
  197. package/.next/server/app/executions.rsc +3 -3
  198. package/.next/server/app/flows/page.js +3 -3
  199. package/.next/server/app/flows/page.js.nft.json +1 -1
  200. package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
  201. package/.next/server/app/flows.html +1 -1
  202. package/.next/server/app/flows.rsc +4 -4
  203. package/.next/server/app/index.html +1 -1
  204. package/.next/server/app/index.rsc +3 -3
  205. package/.next/server/app/mcp/page.js +6 -6
  206. package/.next/server/app/mcp/page.js.nft.json +1 -1
  207. package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
  208. package/.next/server/app/mcp-flows/route.js +1 -1
  209. package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
  210. package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -1
  211. package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
  212. package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
  213. package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -1
  214. package/.next/server/app/mcp.html +1 -1
  215. package/.next/server/app/mcp.rsc +3 -3
  216. package/.next/server/app/models/page.js +2 -2
  217. package/.next/server/app/models/page.js.nft.json +1 -1
  218. package/.next/server/app/models/page_client-reference-manifest.js +1 -1
  219. package/.next/server/app/packages/page.js +3 -0
  220. package/.next/server/app/packages/page.js.nft.json +1 -0
  221. package/.next/server/app/packages/page_client-reference-manifest.js +1 -0
  222. package/.next/server/app/packages.html +1 -0
  223. package/.next/server/app/packages.meta +7 -0
  224. package/.next/server/app/packages.rsc +22 -0
  225. package/.next/server/app/page.js +1 -1
  226. package/.next/server/app/page.js.nft.json +1 -1
  227. package/.next/server/app/page_client-reference-manifest.js +1 -1
  228. package/.next/server/app/settings/page.js +3 -2
  229. package/.next/server/app/settings/page.js.nft.json +1 -1
  230. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  231. package/.next/server/app/settings.html +1 -1
  232. package/.next/server/app/settings.rsc +3 -3
  233. package/.next/server/app/v1/chat/completions/route.js +1 -1
  234. package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
  235. package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -1
  236. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +2 -2
  237. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
  238. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
  239. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +2 -2
  240. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
  241. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -1
  242. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
  243. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
  244. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -1
  245. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
  246. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
  247. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -1
  248. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +2 -2
  249. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
  250. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
  251. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +2 -2
  252. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
  253. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
  254. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route_client-reference-manifest.js +1 -1
  255. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
  256. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
  257. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
  258. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +2 -2
  259. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
  260. package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  261. package/.next/server/app/v1/chat/conversations/route.js +2 -2
  262. package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
  263. package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
  264. package/.next/server/app/v1/models/route.js +2 -2
  265. package/.next/server/app/v1/models/route.js.nft.json +1 -1
  266. package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -1
  267. package/.next/server/app/waves/page.js +3 -3
  268. package/.next/server/app/waves/page.js.nft.json +1 -1
  269. package/.next/server/app/waves/page_client-reference-manifest.js +1 -1
  270. package/.next/server/app/waves.html +1 -1
  271. package/.next/server/app/waves.rsc +3 -3
  272. package/.next/server/app-paths-manifest.json +15 -5
  273. package/.next/server/chunks/1083.js +1 -1
  274. package/.next/server/chunks/1089.js +1 -0
  275. package/.next/server/chunks/1114.js +1 -1
  276. package/.next/server/chunks/1197.js +1 -1
  277. package/.next/server/chunks/1226.js +1 -1
  278. package/.next/server/chunks/1314.js +1 -0
  279. package/.next/server/chunks/1604.js +65 -0
  280. package/.next/server/chunks/1659.js +1 -1
  281. package/.next/server/chunks/166.js +5 -5
  282. package/.next/server/chunks/1805.js +1 -0
  283. package/.next/server/chunks/1819.js +2 -0
  284. package/.next/server/chunks/1925.js +1 -0
  285. package/.next/server/chunks/237.js +1 -0
  286. package/.next/server/chunks/2373.js +1 -1
  287. package/.next/server/chunks/2388.js +1 -0
  288. package/.next/server/chunks/2434.js +2 -0
  289. package/.next/server/chunks/2666.js +1 -0
  290. package/.next/server/chunks/2859.js +1 -1
  291. package/.next/server/chunks/2940.js +41 -0
  292. package/.next/server/chunks/2985.js +1 -0
  293. package/.next/server/chunks/3298.js +1 -1
  294. package/.next/server/chunks/{8445.js → 3392.js} +2 -2
  295. package/.next/server/chunks/346.js +1 -0
  296. package/.next/server/chunks/3569.js +1 -0
  297. package/.next/server/chunks/3629.js +1 -0
  298. package/.next/server/chunks/4042.js +1 -0
  299. package/.next/server/chunks/4306.js +1 -0
  300. package/.next/server/chunks/4322.js +1 -0
  301. package/.next/server/chunks/{3774.js → 4426.js} +2 -2
  302. package/.next/server/chunks/4545.js +3 -3
  303. package/.next/server/chunks/{6745.js → 4661.js} +1 -1
  304. package/.next/server/chunks/4671.js +1 -1
  305. package/.next/server/chunks/4681.js +1 -0
  306. package/.next/server/chunks/4765.js +1 -0
  307. package/.next/server/chunks/4771.js +1 -1
  308. package/.next/server/chunks/5094.js +2 -0
  309. package/.next/server/chunks/5096.js +1 -0
  310. package/.next/server/chunks/510.js +1 -0
  311. package/.next/server/chunks/{4578.js → 5150.js} +1 -1
  312. package/.next/server/chunks/5463.js +1 -1
  313. package/.next/server/chunks/5544.js +5 -5
  314. package/.next/server/chunks/5708.js +1 -1
  315. package/.next/server/chunks/5880.js +1 -0
  316. package/.next/server/chunks/6005.js +1 -0
  317. package/.next/server/chunks/6529.js +5 -0
  318. package/.next/server/chunks/6537.js +1 -1
  319. package/.next/server/chunks/6826.js +1 -1
  320. package/.next/server/chunks/6996.js +1 -62
  321. package/.next/server/chunks/701.js +1 -1
  322. package/.next/server/chunks/7028.js +1 -0
  323. package/.next/server/chunks/7214.js +2 -2
  324. package/.next/server/chunks/724.js +1 -1
  325. package/.next/server/chunks/7362.js +13 -13
  326. package/.next/server/chunks/7463.js +2 -2
  327. package/.next/server/chunks/7485.js +1 -0
  328. package/.next/server/chunks/7498.js +42 -0
  329. package/.next/server/chunks/7506.js +1 -1
  330. package/.next/server/chunks/7579.js +2 -2
  331. package/.next/server/chunks/{3030.js → 7674.js} +1 -1
  332. package/.next/server/chunks/7764.js +37 -0
  333. package/.next/server/chunks/7821.js +1 -1
  334. package/.next/server/chunks/8192.js +12 -0
  335. package/.next/server/chunks/826.js +52 -0
  336. package/.next/server/chunks/8387.js +1 -1
  337. package/.next/server/chunks/{5662.js → 8522.js} +1 -1
  338. package/.next/server/chunks/8667.js +1 -0
  339. package/.next/server/chunks/869.js +2 -0
  340. package/.next/server/chunks/{3489.js → 8730.js} +1 -1
  341. package/.next/server/chunks/8732.js +62 -0
  342. package/.next/server/chunks/8739.js +1 -1
  343. package/.next/server/chunks/8745.js +1 -1
  344. package/.next/server/chunks/8851.js +1 -0
  345. package/.next/server/chunks/94.js +1 -1
  346. package/.next/server/chunks/{1152.js → 9400.js} +1 -1
  347. package/.next/server/chunks/{4456.js → 9472.js} +2 -2
  348. package/.next/server/chunks/9583.js +1 -0
  349. package/.next/server/instrumentation.js +1 -1
  350. package/.next/server/instrumentation.js.nft.json +1 -1
  351. package/.next/server/middleware-build-manifest.js +1 -1
  352. package/.next/server/middleware-manifest.json +1 -1
  353. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  354. package/.next/server/pages/404.html +1 -1
  355. package/.next/server/pages/500.html +1 -1
  356. package/.next/server/server-reference-manifest.js +1 -1
  357. package/.next/server/server-reference-manifest.json +1 -1
  358. package/.next/static/O-elWbT5rs6ci1CrCqez1/_buildManifest.js +1 -0
  359. package/.next/static/chunks/{2003-7710c23acaef11c9.js → 2003-f826c607d609d1fa.js} +1 -1
  360. package/.next/static/chunks/{4003-3b3768446ae333df.js → 2019-f22580cb726c5dca.js} +1 -1
  361. package/.next/static/chunks/256-a13a59247ac6cc68.js +1 -0
  362. package/.next/static/chunks/2566-60acd5838abd9f3f.js +1 -0
  363. package/.next/static/chunks/2822-8168e3bb8443a1ec.js +1 -0
  364. package/.next/static/chunks/289-98f50bfcf833d661.js +1 -0
  365. package/.next/static/chunks/2981-10313d395eb99645.js +1 -0
  366. package/.next/static/chunks/3028-fc1f04241ed578ff.js +1 -0
  367. package/.next/static/chunks/3089.9e15df4ffd0fe4e8.js +1 -0
  368. package/.next/static/chunks/{3217.f728df99ab5da33c.js → 3217.260785c2198d1e9d.js} +1 -1
  369. package/.next/static/chunks/3392-6dd9ad3be66a7ce9.js +1 -0
  370. package/.next/static/chunks/{3556-3b6f7c99b015b752.js → 3556-b9855146c7506696.js} +1 -1
  371. package/.next/static/chunks/3560-5bdceef09b50e1c3.js +1 -0
  372. package/.next/static/chunks/3574-94e9f20550550a58.js +1 -0
  373. package/.next/static/chunks/4483-463f8bfc6f3dd5fa.js +1 -0
  374. package/.next/static/chunks/{488-623d07c3fbc21e28.js → 488-7ab54d8ae2b4b550.js} +1 -1
  375. package/.next/static/chunks/{5512.d01d565f73109a1a.js → 5512.682bef7fd3a7c286.js} +1 -1
  376. package/.next/static/chunks/5578-49bc150686c13b6f.js +1 -0
  377. package/.next/static/chunks/5766-dbd21cb8435605aa.js +1 -0
  378. package/.next/static/chunks/5866-6834cbc4ab02d86f.js +1 -0
  379. package/.next/static/chunks/6669-012c73587a6628fc.js +1 -0
  380. package/.next/static/chunks/6961-a40e97c06e616300.js +1 -0
  381. package/.next/static/chunks/7111-44538f8a64241b74.js +1 -0
  382. package/.next/static/chunks/7445-2802e158c9093556.js +1 -0
  383. package/.next/static/chunks/7554-db290baed5782cab.js +8 -0
  384. package/.next/static/chunks/795-704a0e742ecc2ef6.js +1 -0
  385. package/.next/static/chunks/8041-05830e887c133085.js +1 -0
  386. package/.next/static/chunks/{812-624e93f4c0f671c7.js → 812-8b3d4e0f6546d6f9.js} +1 -1
  387. package/.next/static/chunks/{8345.fbc0af16acce7256.js → 8345.bc5534ec13abc9ee.js} +1 -1
  388. package/.next/static/chunks/8401-0f39d91810180a88.js +1 -0
  389. package/.next/static/chunks/{8405.e728bc83a7c9fed6.js → 8405.73e8be2c8e5b55c5.js} +1 -1
  390. package/.next/static/chunks/{8989-401559d9f3bc80a0.js → 8989-5fa9c7c670eb9a1a.js} +1 -1
  391. package/.next/static/chunks/{9164-829ab5b085ec06d6.js → 9164-840f056a0e11d979.js} +1 -1
  392. package/.next/static/chunks/9562-ef0ddd4e6b9023cf.js +1 -0
  393. package/.next/static/chunks/9720-5ecb48f1a28808fe.js +1 -0
  394. package/.next/static/chunks/app/api/approvals/[id]/route-3e3cc52436d34625.js +1 -0
  395. package/.next/static/chunks/app/api/approvals/route-3e3cc52436d34625.js +1 -0
  396. package/.next/static/chunks/app/api/backup/route-3e3cc52436d34625.js +1 -0
  397. package/.next/static/chunks/app/api/browse/route-3e3cc52436d34625.js +1 -0
  398. package/.next/static/chunks/app/api/bugs/enhance/route-3e3cc52436d34625.js +1 -0
  399. package/.next/static/chunks/app/api/cwd/route-3e3cc52436d34625.js +1 -0
  400. package/.next/static/chunks/app/api/encryption/secure/route-3e3cc52436d34625.js +1 -0
  401. package/.next/static/chunks/app/api/env/route-3e3cc52436d34625.js +1 -0
  402. package/.next/static/chunks/app/api/flow/[id]/route-3e3cc52436d34625.js +1 -0
  403. package/.next/static/chunks/app/api/flow/compile/route-3e3cc52436d34625.js +1 -0
  404. package/.next/static/chunks/app/api/flow/generate/route-3e3cc52436d34625.js +1 -0
  405. package/.next/static/chunks/app/api/flow/improve/route-3e3cc52436d34625.js +1 -0
  406. package/.next/static/chunks/app/api/flow/prompt-renderer/route-3e3cc52436d34625.js +1 -0
  407. package/.next/static/chunks/app/api/flow/quick-chat/route-3e3cc52436d34625.js +1 -0
  408. package/.next/static/chunks/app/api/flow/repair/route-3e3cc52436d34625.js +1 -0
  409. package/.next/static/chunks/app/api/flow/route-3e3cc52436d34625.js +1 -0
  410. package/.next/static/chunks/app/api/git/route-3e3cc52436d34625.js +1 -0
  411. package/.next/static/chunks/app/api/init/route-3e3cc52436d34625.js +1 -0
  412. package/.next/static/chunks/app/api/local-models/capability/route-3e3cc52436d34625.js +1 -0
  413. package/.next/static/chunks/app/api/local-models/pull/route-3e3cc52436d34625.js +1 -0
  414. package/.next/static/chunks/app/api/local-models/suggest/route-3e3cc52436d34625.js +1 -0
  415. package/.next/static/chunks/app/api/mcp/cancel/route-3e3cc52436d34625.js +1 -0
  416. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-3e3cc52436d34625.js +1 -0
  417. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-3e3cc52436d34625.js +1 -0
  418. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-3e3cc52436d34625.js +1 -0
  419. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-3e3cc52436d34625.js +1 -0
  420. package/.next/static/chunks/app/api/mcp/servers/[name]/route-3e3cc52436d34625.js +1 -0
  421. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-3e3cc52436d34625.js +1 -0
  422. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-3e3cc52436d34625.js +1 -0
  423. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-3e3cc52436d34625.js +1 -0
  424. package/.next/static/chunks/app/api/mcp/servers/route-3e3cc52436d34625.js +1 -0
  425. package/.next/static/chunks/app/api/mcp/test-connection/route-3e3cc52436d34625.js +1 -0
  426. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-3e3cc52436d34625.js +1 -0
  427. package/.next/static/chunks/app/api/mcp-registry/route-3e3cc52436d34625.js +1 -0
  428. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-3e3cc52436d34625.js +1 -0
  429. package/.next/static/chunks/app/api/model/[id]/route-3e3cc52436d34625.js +1 -0
  430. package/.next/static/chunks/app/api/model/provider/route-3e3cc52436d34625.js +1 -0
  431. package/.next/static/chunks/app/api/model/route-3e3cc52436d34625.js +1 -0
  432. package/.next/static/chunks/app/api/model/test/route-3e3cc52436d34625.js +1 -0
  433. package/.next/static/chunks/app/api/oauth/callback/route-3e3cc52436d34625.js +1 -0
  434. package/.next/static/chunks/app/api/oauth/initiate/route-3e3cc52436d34625.js +1 -0
  435. package/.next/static/chunks/app/api/oauth/reset/route-3e3cc52436d34625.js +1 -0
  436. package/.next/static/chunks/app/api/packages/build/route-3e3cc52436d34625.js +1 -0
  437. package/.next/static/chunks/app/api/packages/derive-secrets/route-3e3cc52436d34625.js +1 -0
  438. package/.next/static/chunks/app/api/packages/install/route-3e3cc52436d34625.js +1 -0
  439. package/.next/static/chunks/app/api/packages/install/status/route-3e3cc52436d34625.js +1 -0
  440. package/.next/static/chunks/app/api/packages/resolve/route-3e3cc52436d34625.js +1 -0
  441. package/.next/static/chunks/app/api/planned-executions/[id]/route-3e3cc52436d34625.js +1 -0
  442. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-3e3cc52436d34625.js +1 -0
  443. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-3e3cc52436d34625.js +1 -0
  444. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-3e3cc52436d34625.js +1 -0
  445. package/.next/static/chunks/app/api/planned-executions/reconcile/route-3e3cc52436d34625.js +1 -0
  446. package/.next/static/chunks/app/api/planned-executions/route-3e3cc52436d34625.js +1 -0
  447. package/.next/static/chunks/app/api/registry/auth/resend/route-3e3cc52436d34625.js +1 -0
  448. package/.next/static/chunks/app/api/registry/auth/route-3e3cc52436d34625.js +1 -0
  449. package/.next/static/chunks/app/api/registry/publish/route-3e3cc52436d34625.js +1 -0
  450. package/.next/static/chunks/app/api/registry/settings/route-3e3cc52436d34625.js +1 -0
  451. package/.next/static/chunks/app/api/restore/route-3e3cc52436d34625.js +1 -0
  452. package/.next/static/chunks/app/api/runs/active/route-3e3cc52436d34625.js +1 -0
  453. package/.next/static/chunks/app/api/storage/route-3e3cc52436d34625.js +1 -0
  454. package/.next/static/chunks/app/api/update/route-3e3cc52436d34625.js +1 -0
  455. package/.next/static/chunks/app/api/waves/route-3e3cc52436d34625.js +1 -0
  456. package/.next/static/chunks/app/api/webhooks/[id]/route-3e3cc52436d34625.js +1 -0
  457. package/.next/static/chunks/app/chat/page-93403b0e520ba8d3.js +1 -0
  458. package/.next/static/chunks/app/docs/page-2c972a639cd9a41c.js +1 -0
  459. package/.next/static/chunks/app/executions/page-bb2fef60b2240f69.js +1 -0
  460. package/.next/static/chunks/app/flows/page-d60c5b47c923564a.js +1 -0
  461. package/.next/static/chunks/app/layout-eea7078d7553c21a.js +1 -0
  462. package/.next/static/chunks/app/mcp/page-92c03186d566a4f5.js +1 -0
  463. package/.next/static/chunks/app/mcp-flows/route-3e3cc52436d34625.js +1 -0
  464. package/.next/static/chunks/app/mcp-proxy/[server]/route-3e3cc52436d34625.js +1 -0
  465. package/.next/static/chunks/app/models/page-d71e5606a8e29479.js +1 -0
  466. package/.next/static/chunks/app/packages/page-e64480d78312edd0.js +1 -0
  467. package/.next/static/chunks/app/{page-0a95c40a65dbd2eb.js → page-d3ea90b065b95d1e.js} +1 -1
  468. package/.next/static/chunks/app/settings/page-d067a3a624ec2fa0.js +1 -0
  469. package/.next/static/chunks/app/v1/chat/completions/route-3e3cc52436d34625.js +1 -0
  470. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-3e3cc52436d34625.js +1 -0
  471. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-3e3cc52436d34625.js +1 -0
  472. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-3e3cc52436d34625.js +1 -0
  473. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-3e3cc52436d34625.js +1 -0
  474. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-3e3cc52436d34625.js +1 -0
  475. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-3e3cc52436d34625.js +1 -0
  476. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-3e3cc52436d34625.js +1 -0
  477. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-3e3cc52436d34625.js +1 -0
  478. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-3e3cc52436d34625.js +1 -0
  479. package/.next/static/chunks/app/v1/chat/conversations/route-3e3cc52436d34625.js +1 -0
  480. package/.next/static/chunks/app/v1/models/route-3e3cc52436d34625.js +1 -0
  481. package/.next/static/chunks/app/waves/page-ff15db2f75fb5d62.js +1 -0
  482. package/.next/static/chunks/webpack-2b2d7505a2ac6538.js +1 -0
  483. package/.next/static/css/{64cb1f185b52a623.css → 69ab44eb350e0b6c.css} +1 -1
  484. package/.next/trace +9 -10
  485. package/.next/types/app/api/packages/build/route.ts +347 -0
  486. package/.next/types/app/api/packages/derive-secrets/route.ts +347 -0
  487. package/.next/types/app/api/packages/install/route.ts +347 -0
  488. package/.next/types/app/api/packages/install/status/route.ts +347 -0
  489. package/.next/types/app/api/packages/resolve/route.ts +347 -0
  490. package/.next/types/app/api/registry/auth/resend/route.ts +347 -0
  491. package/.next/types/app/api/registry/auth/route.ts +347 -0
  492. package/.next/types/app/api/registry/publish/route.ts +347 -0
  493. package/.next/types/app/api/registry/settings/route.ts +347 -0
  494. package/.next/types/app/packages/page.ts +84 -0
  495. package/.next/types/routes.d.ts +12 -2
  496. package/.next/types/validator.ts +90 -0
  497. package/README.md +1 -1
  498. package/package.json +6 -1
  499. package/.next/server/chunks/1223.js +0 -1
  500. package/.next/server/chunks/1377.js +0 -1
  501. package/.next/server/chunks/289.js +0 -1
  502. package/.next/server/chunks/3823.js +0 -41
  503. package/.next/server/chunks/3855.js +0 -1
  504. package/.next/server/chunks/3924.js +0 -52
  505. package/.next/server/chunks/4372.js +0 -1
  506. package/.next/server/chunks/4561.js +0 -65
  507. package/.next/server/chunks/4677.js +0 -37
  508. package/.next/server/chunks/472.js +0 -1
  509. package/.next/server/chunks/4793.js +0 -2
  510. package/.next/server/chunks/4836.js +0 -1
  511. package/.next/server/chunks/5148.js +0 -1
  512. package/.next/server/chunks/5311.js +0 -1
  513. package/.next/server/chunks/584.js +0 -1
  514. package/.next/server/chunks/62.js +0 -1
  515. package/.next/server/chunks/6240.js +0 -1
  516. package/.next/server/chunks/6306.js +0 -1
  517. package/.next/server/chunks/6793.js +0 -1
  518. package/.next/server/chunks/6908.js +0 -12
  519. package/.next/server/chunks/8216.js +0 -1
  520. package/.next/server/chunks/856.js +0 -5
  521. package/.next/server/chunks/8652.js +0 -42
  522. package/.next/server/chunks/9165.js +0 -1
  523. package/.next/server/chunks/9427.js +0 -1
  524. package/.next/static/Il6IDWxf3CN0dv-P6QQrp/_buildManifest.js +0 -1
  525. package/.next/static/chunks/1675-773454288de4309d.js +0 -1
  526. package/.next/static/chunks/1731-6e45fb529f9044a3.js +0 -1
  527. package/.next/static/chunks/2318-76fcb6c769b1a569.js +0 -1
  528. package/.next/static/chunks/2403-5c26e0abd76095b1.js +0 -1
  529. package/.next/static/chunks/2566-6e2b9d9349814789.js +0 -1
  530. package/.next/static/chunks/2734-59fbe2f62a59df86.js +0 -1
  531. package/.next/static/chunks/3089.6b4e21e1faa304e2.js +0 -1
  532. package/.next/static/chunks/3109-11bdec9bdfd996c3.js +0 -1
  533. package/.next/static/chunks/333-5f3c5be57c80c48c.js +0 -1
  534. package/.next/static/chunks/3333-b7b3e5758a568013.js +0 -1
  535. package/.next/static/chunks/4635-0fe310d3be64e71e.js +0 -1
  536. package/.next/static/chunks/4690-ec7d397cfacedac3.js +0 -1
  537. package/.next/static/chunks/4775-cb9c0be621363a08.js +0 -8
  538. package/.next/static/chunks/5336-81da1080de29ebfc.js +0 -1
  539. package/.next/static/chunks/7274-1184563607f2b5f5.js +0 -1
  540. package/.next/static/chunks/8166-e75acdc559b34fcd.js +0 -1
  541. package/.next/static/chunks/8607-5787e42775fc3acb.js +0 -1
  542. package/.next/static/chunks/8610-660d5088bc1dd7a7.js +0 -1
  543. package/.next/static/chunks/9240-d0a51f4d504f34b1.js +0 -1
  544. package/.next/static/chunks/9562-b7922ceb400ec536.js +0 -1
  545. package/.next/static/chunks/9704-6b7415964d7c042a.js +0 -1
  546. package/.next/static/chunks/app/api/approvals/[id]/route-6b442f97c5062f2c.js +0 -1
  547. package/.next/static/chunks/app/api/approvals/route-6b442f97c5062f2c.js +0 -1
  548. package/.next/static/chunks/app/api/backup/route-6b442f97c5062f2c.js +0 -1
  549. package/.next/static/chunks/app/api/browse/route-6b442f97c5062f2c.js +0 -1
  550. package/.next/static/chunks/app/api/bugs/enhance/route-6b442f97c5062f2c.js +0 -1
  551. package/.next/static/chunks/app/api/cwd/route-6b442f97c5062f2c.js +0 -1
  552. package/.next/static/chunks/app/api/encryption/secure/route-6b442f97c5062f2c.js +0 -1
  553. package/.next/static/chunks/app/api/env/route-6b442f97c5062f2c.js +0 -1
  554. package/.next/static/chunks/app/api/flow/[id]/route-6b442f97c5062f2c.js +0 -1
  555. package/.next/static/chunks/app/api/flow/compile/route-6b442f97c5062f2c.js +0 -1
  556. package/.next/static/chunks/app/api/flow/generate/route-6b442f97c5062f2c.js +0 -1
  557. package/.next/static/chunks/app/api/flow/improve/route-6b442f97c5062f2c.js +0 -1
  558. package/.next/static/chunks/app/api/flow/prompt-renderer/route-6b442f97c5062f2c.js +0 -1
  559. package/.next/static/chunks/app/api/flow/quick-chat/route-6b442f97c5062f2c.js +0 -1
  560. package/.next/static/chunks/app/api/flow/repair/route-6b442f97c5062f2c.js +0 -1
  561. package/.next/static/chunks/app/api/flow/route-6b442f97c5062f2c.js +0 -1
  562. package/.next/static/chunks/app/api/git/route-6b442f97c5062f2c.js +0 -1
  563. package/.next/static/chunks/app/api/init/route-6b442f97c5062f2c.js +0 -1
  564. package/.next/static/chunks/app/api/local-models/capability/route-6b442f97c5062f2c.js +0 -1
  565. package/.next/static/chunks/app/api/local-models/pull/route-6b442f97c5062f2c.js +0 -1
  566. package/.next/static/chunks/app/api/local-models/suggest/route-6b442f97c5062f2c.js +0 -1
  567. package/.next/static/chunks/app/api/mcp/cancel/route-6b442f97c5062f2c.js +0 -1
  568. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-6b442f97c5062f2c.js +0 -1
  569. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-6b442f97c5062f2c.js +0 -1
  570. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-6b442f97c5062f2c.js +0 -1
  571. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-6b442f97c5062f2c.js +0 -1
  572. package/.next/static/chunks/app/api/mcp/servers/[name]/route-6b442f97c5062f2c.js +0 -1
  573. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-6b442f97c5062f2c.js +0 -1
  574. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-6b442f97c5062f2c.js +0 -1
  575. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-6b442f97c5062f2c.js +0 -1
  576. package/.next/static/chunks/app/api/mcp/servers/route-6b442f97c5062f2c.js +0 -1
  577. package/.next/static/chunks/app/api/mcp/test-connection/route-6b442f97c5062f2c.js +0 -1
  578. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-6b442f97c5062f2c.js +0 -1
  579. package/.next/static/chunks/app/api/mcp-registry/route-6b442f97c5062f2c.js +0 -1
  580. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-6b442f97c5062f2c.js +0 -1
  581. package/.next/static/chunks/app/api/model/[id]/route-6b442f97c5062f2c.js +0 -1
  582. package/.next/static/chunks/app/api/model/provider/route-6b442f97c5062f2c.js +0 -1
  583. package/.next/static/chunks/app/api/model/route-6b442f97c5062f2c.js +0 -1
  584. package/.next/static/chunks/app/api/model/test/route-6b442f97c5062f2c.js +0 -1
  585. package/.next/static/chunks/app/api/oauth/callback/route-6b442f97c5062f2c.js +0 -1
  586. package/.next/static/chunks/app/api/oauth/initiate/route-6b442f97c5062f2c.js +0 -1
  587. package/.next/static/chunks/app/api/oauth/reset/route-6b442f97c5062f2c.js +0 -1
  588. package/.next/static/chunks/app/api/planned-executions/[id]/route-6b442f97c5062f2c.js +0 -1
  589. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-6b442f97c5062f2c.js +0 -1
  590. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-6b442f97c5062f2c.js +0 -1
  591. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-6b442f97c5062f2c.js +0 -1
  592. package/.next/static/chunks/app/api/planned-executions/reconcile/route-6b442f97c5062f2c.js +0 -1
  593. package/.next/static/chunks/app/api/planned-executions/route-6b442f97c5062f2c.js +0 -1
  594. package/.next/static/chunks/app/api/restore/route-6b442f97c5062f2c.js +0 -1
  595. package/.next/static/chunks/app/api/runs/active/route-6b442f97c5062f2c.js +0 -1
  596. package/.next/static/chunks/app/api/storage/route-6b442f97c5062f2c.js +0 -1
  597. package/.next/static/chunks/app/api/update/route-6b442f97c5062f2c.js +0 -1
  598. package/.next/static/chunks/app/api/waves/route-6b442f97c5062f2c.js +0 -1
  599. package/.next/static/chunks/app/api/webhooks/[id]/route-6b442f97c5062f2c.js +0 -1
  600. package/.next/static/chunks/app/chat/page-04ad1fad78048afb.js +0 -1
  601. package/.next/static/chunks/app/docs/page-5475c616764dbb18.js +0 -1
  602. package/.next/static/chunks/app/executions/page-c18708ed96d228ec.js +0 -1
  603. package/.next/static/chunks/app/flows/page-f7e44aa545bcc56e.js +0 -1
  604. package/.next/static/chunks/app/layout-e6fbae80e0f456a6.js +0 -1
  605. package/.next/static/chunks/app/mcp/page-3638fbee04a3a6ea.js +0 -1
  606. package/.next/static/chunks/app/mcp-flows/route-6b442f97c5062f2c.js +0 -1
  607. package/.next/static/chunks/app/mcp-proxy/[server]/route-6b442f97c5062f2c.js +0 -1
  608. package/.next/static/chunks/app/models/page-e690a986047b1e62.js +0 -1
  609. package/.next/static/chunks/app/settings/page-3ef9b95187e18a5a.js +0 -1
  610. package/.next/static/chunks/app/v1/chat/completions/route-6b442f97c5062f2c.js +0 -1
  611. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-6b442f97c5062f2c.js +0 -1
  612. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-6b442f97c5062f2c.js +0 -1
  613. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-6b442f97c5062f2c.js +0 -1
  614. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-6b442f97c5062f2c.js +0 -1
  615. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-6b442f97c5062f2c.js +0 -1
  616. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-6b442f97c5062f2c.js +0 -1
  617. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-6b442f97c5062f2c.js +0 -1
  618. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-6b442f97c5062f2c.js +0 -1
  619. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-6b442f97c5062f2c.js +0 -1
  620. package/.next/static/chunks/app/v1/chat/conversations/route-6b442f97c5062f2c.js +0 -1
  621. package/.next/static/chunks/app/v1/models/route-6b442f97c5062f2c.js +0 -1
  622. package/.next/static/chunks/app/waves/page-c9a307e2236423a4.js +0 -1
  623. package/.next/static/chunks/webpack-a6844e1074885c2f.js +0 -1
  624. /package/.next/static/{Il6IDWxf3CN0dv-P6QQrp → O-elWbT5rs6ci1CrCqez1}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ exports.id=5880,exports.ids=[5880],exports.modules={8188:(a,b,c)=>{"use strict";c.d(b,{A:()=>O});var d=c(21124),e=c(38301),f=c(60839),g=c(43312),h=c(44079),i=c(37489),j=c(27114),k=c(79515),l=c(81637),m=c(41893),n=c(30818),o=c(423),p=c(98463),q=c(12033),r=c(91034),s=c(56667),t=c(96955),u=c(18467),v=c(5501),w=c(99587),x=c(76133),y=c(83434),z=c(19815),A=c(40512),B=c(83899),C=c(52327),D=c(8521),E=c(88745),F=c(91059),G=c(19925),H=c(68730),I=c(8165),J=c(65343);let K=({title:a,attempt:b})=>(0,d.jsxs)(l.default,{sx:{mb:2},children:[(0,d.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:.5},children:[b.ok?(0,d.jsx)(I.A,{color:"success",fontSize:"small"}):(0,d.jsx)(J.A,{color:"error",fontSize:"small"}),(0,d.jsx)(k.default,{variant:"subtitle2",children:a}),"number"==typeof b.status&&(0,d.jsx)(m.A,{size:"small",label:`HTTP ${b.status}`}),(0,d.jsx)(m.A,{size:"small",variant:"outlined",label:`${b.durationMs} ms`})]}),b.ok?(0,d.jsxs)(k.default,{variant:"body2",color:"text.secondary",sx:{pl:3},children:["Response: ",b.content?`"${b.content}"`:"(empty)"]}):(0,d.jsxs)(l.default,{sx:{pl:3},children:[(0,d.jsx)(k.default,{variant:"body2",color:"error.main",children:b.error?.message}),(b.error?.code||b.error?.type)&&(0,d.jsxs)(k.default,{variant:"caption",color:"text.secondary",display:"block",children:[b.error?.type?`type: ${b.error.type}`:"",b.error?.type&&b.error?.code?" \xb7 ":"",b.error?.code?`code: ${b.error.code}`:""]}),b.error?.retryAfter&&(0,d.jsxs)(k.default,{variant:"caption",color:"text.secondary",display:"block",children:["retry-after: ",b.error.retryAfter,"s"]}),b.error?.body!==void 0&&(0,d.jsx)(l.default,{component:"pre",sx:{mt:.5,p:1,bgcolor:"action.hover",borderRadius:1,fontSize:"0.7rem",overflowX:"auto",maxHeight:160},children:JSON.stringify(b.error.body,null,2)})]})]}),L=({open:a,modelLabel:b,loading:c,result:e,error:f,onClose:g,onRetry:h})=>(0,d.jsxs)(A.A,{open:a,onClose:g,maxWidth:"sm",fullWidth:!0,children:[(0,d.jsxs)(B.A,{children:["Test model: ",b]}),(0,d.jsx)(C.A,{dividers:!0,children:c?(0,d.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",gap:2,py:3},children:[(0,d.jsx)(D.default,{size:24}),(0,d.jsx)(k.default,{variant:"body2",children:"Sending a direct test request (SDK + axios)…"})]}):f?(0,d.jsx)(E.A,{severity:"error",children:f}):e?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(E.A,{severity:e.ok?"success":"warning",sx:{mb:2},children:e.diagnosis}),(0,d.jsxs)(k.default,{variant:"caption",color:"text.secondary",display:"block",sx:{mb:2},children:["model: ",e.model,e.baseUrl?` \xb7 ${e.baseUrl}`:"",e.provider?` \xb7 ${e.provider}`:""]}),(0,d.jsx)(F.A,{sx:{mb:2}}),(0,d.jsx)(K,{title:"OpenAI SDK (used by flows)",attempt:e.sdk}),(0,d.jsx)(K,{title:"axios (independent cross-check)",attempt:e.axios})]}):null}),(0,d.jsxs)(G.A,{children:[(0,d.jsx)(H.A,{onClick:h,disabled:c,children:"Run again"}),(0,d.jsx)(H.A,{onClick:g,variant:"contained",children:"Close"})]})]});var M=c(78352);let N=(0,z.h)("frontend/components/models/list/ModelCard"),O=({model:a,onEdit:b,onDelete:c,folder:z,folders:A=[],onSetFolder:B,selectable:C=!1,selected:D=!1,onSelect:E,onToggleFavorite:F})=>{let G=(0,f.A)(),[H,I]=(0,e.useState)(!1),[J,K]=(0,e.useState)(!1),[O,P]=(0,e.useState)(null),[Q,R]=(0,e.useState)(null),[S,T]=(0,e.useState)(null),U=async()=>{K(!0),R(null),P(null);try{let b=await (0,y.X)().testModel({modelId:a.id});P(b)}catch(b){N.error("Model test failed",{modelId:a.id,error:b}),R(b instanceof Error?b.message:"Failed to run test")}finally{K(!1)}},V=F?(0,d.jsx)(g.A,{title:a.favorite?"Remove from favorites":"Add to favorites",arrow:!0,placement:"top",children:(0,d.jsx)(h.A,{size:"small","aria-label":a.favorite?"remove from favorites":"add to favorites",onClick:b=>{b.stopPropagation(),F?.(a.id)},sx:{position:"absolute",top:4,left:4,zIndex:2,color:a.favorite?G.palette.warning.main:G.palette.text.secondary,backgroundColor:(0,i.X4)(G.palette.background.paper,.6),"&:hover":{backgroundColor:(0,i.X4)(G.palette.background.paper,.9)}},children:a.favorite?(0,d.jsx)(v.A,{fontSize:"small"}):(0,d.jsx)(w.A,{fontSize:"small"})})}):null,W=(0,d.jsx)(d.Fragment,{children:(0,d.jsxs)(j.A,{sx:{flexGrow:1},children:[(0,d.jsx)(k.default,{variant:"h6",gutterBottom:!0,children:a.displayName||a.name}),(0,d.jsx)(k.default,{variant:"body2",color:"text.secondary",sx:{mb:2},style:{display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",overflow:"hidden",textOverflow:"ellipsis"},children:a.description}),(0,d.jsxs)(l.default,{sx:{mb:1},children:[(0,d.jsxs)(k.default,{variant:"body2",color:"text.secondary",children:["Provider: ",(0,x.T_)(a.provider,a.adapter).label]}),a.displayName&&(0,d.jsxs)(k.default,{variant:"body2",color:"text.secondary",noWrap:!0,children:["Model: ",a.name]}),"number"==typeof a.contextWindow&&(0,d.jsxs)(k.default,{variant:"body2",color:"text.secondary",children:["Context: ",a.contextWindow.toLocaleString()," tokens"]})]}),a.baseUrl&&(0,d.jsx)(g.A,{title:a.baseUrl,arrow:!0,placement:"top",children:(0,d.jsxs)(k.default,{variant:"body2",color:"text.secondary",noWrap:!0,children:["Base URL: ",a.baseUrl]})}),z&&(0,d.jsx)(m.A,{icon:(0,d.jsx)(u.A,{}),label:z,size:"small",variant:"outlined",sx:{mt:1,maxWidth:"100%"}})]})});return C?(0,d.jsxs)(n.A,{elevation:D?4:2,role:"radio","aria-checked":D,sx:{height:"100%",display:"flex",flexDirection:"column",position:"relative",border:a=>D?`2px solid ${a.palette.primary.main}`:"2px solid transparent",transition:"border-color 120ms, box-shadow 120ms"},children:[V,(0,d.jsx)(o.A,{onClick:()=>E?.(a.id),sx:{height:"100%",display:"flex",flexDirection:"column",alignItems:"stretch"},children:W})]}):(0,d.jsxs)(n.A,{elevation:2,sx:{height:"100%",display:"flex",flexDirection:"column",position:"relative"},children:[V,W,(0,d.jsxs)(p.A,{disableSpacing:!0,children:[(0,d.jsx)(g.A,{title:"Test model (direct SDK call, no flow)",arrow:!0,children:(0,d.jsx)(h.A,{"aria-label":"test",onClick:()=>{I(!0),U()},children:(0,d.jsx)(s.A,{})})}),(0,d.jsx)(h.A,{"aria-label":"edit",onClick:b,children:(0,d.jsx)(q.A,{})}),(0,d.jsx)(h.A,{"aria-label":"delete",onClick:c,children:(0,d.jsx)(r.A,{})}),B&&(0,d.jsx)(g.A,{title:"Move to folder…",arrow:!0,children:(0,d.jsx)(h.A,{"aria-label":"move to folder",onClick:a=>T(a.currentTarget),sx:{ml:"auto"},children:(0,d.jsx)(t.A,{})})})]}),B&&(0,d.jsx)(M.A,{anchorEl:S,open:!!S,currentFolder:z,folders:A,onClose:()=>T(null),onAssign:B}),(0,d.jsx)(L,{open:H,modelLabel:a.displayName||a.name,loading:J,result:O,error:Q,onClose:()=>I(!1),onRetry:U})]})}},43010:()=>{},49351:(a,b,c)=>{"use strict";c.d(b,{A:()=>h});var d=c(21124);c(38301);var e=c(49565),f=c(51100),g=c(73198);function h({show:a,onClick:b,sx:c}){return(0,d.jsx)(e.A,{in:a,unmountOnExit:!0,children:(0,d.jsx)(f.A,{size:"small",color:"primary","aria-label":"Back to top",onClick:b,sx:{position:"fixed",bottom:24,right:24,zIndex:1200,...c},children:(0,d.jsx)(g.A,{})})})}},61560:(a,b,c)=>{"use strict";c.d(b,{R:()=>e});var d=c(38301);function e(a,b={}){let{threshold:c=200,deps:f=[]}=b,g=(0,d.useRef)(null),[h,i]=(0,d.useState)(!1);(0,d.useRef)(!1);let j=(0,d.useCallback)(()=>{let a=g.current;return a&&a.scrollHeight>a.clientHeight+1?a:null},[]);return(0,d.useCallback)(()=>{let a=j();return a?a.scrollTop:0},[j]),(0,d.useCallback)(a=>{let b=j();b&&(b.scrollTop=a)},[j]),{ref:g,showBackToTop:h,scrollToTop:(0,d.useCallback)(()=>{let a=j();a&&a.scrollTo({top:0,behavior:"smooth"}),i(!1)},[j])}}c(2560)},64535:(a,b,c)=>{"use strict";c.d(b,{A$:()=>j,X8:()=>g,YP:()=>k,js:()=>i});let d="_-_-_",e=/^(tool|resource):(.+)$/,f=/\$\{((?:tool|resource):[^}]+|_-_-_[^}]+)\}/g;function g(a,b,c){return`\${${a}:${b}__${c}}`}function h(a){let b=e.exec(a);if(b){let a=b[1],c=function(a){let b=a.indexOf("__");if(b<=0)return null;let c=a.slice(b+2);return c?{server:a.slice(0,b),name:c}:null}(b[2]);return c?{kind:a,server:c.server,name:c.name}:null}if(a.startsWith(d)){let b=a.split(d);if(3===b.length&&b[1]&&b[2])return{kind:"tool",server:b[1],name:b[2]}}return null}function i(a){return a.startsWith("${")&&a.endsWith("}")?h(a.slice(2,-1)):null}function j(a){let b,c=[];for(f.lastIndex=0;null!==(b=f.exec(a));){let a=h(b[1]);a&&c.push({...a,fullMatch:b[0],index:b.index})}return c}function k(a){var b,c;return"tool"===a.kind&&"handoff"===a.server?`handoff:${a.name}`:`${a.kind}:${b=a.server,c=a.name,`${b}__${c}`}`}},80518:(a,b,c)=>{"use strict";c.d(b,{CN:()=>i,Pj:()=>h,jX:()=>j,sE:()=>f,y4:()=>g});var d=c(64535);let e=/\$\{res:([^}]+)\}/g;function f(a){let b,c=(0,d.A$)(a).map(a=>({kind:a.kind,server:a.server,name:a.name,fullMatch:a.fullMatch,index:a.index}));for(e.lastIndex=0;null!==(b=e.exec(a));)c.push({kind:"runres",server:"",name:b[1],fullMatch:b[0],index:b.index});return c.sort((a,b)=>a.index-b.index)}function g(a){if(a.startsWith("${res:")&&a.endsWith("}")){let b=a.slice(6,-1);return b?{kind:"runres",server:"",name:b}:null}let b=(0,d.js)(a);return b?{kind:b.kind,server:b.server,name:b.name}:null}function h(a,b,c){return"runres"===a?`\${res:${c}}`:(0,d.X8)(a,b,c)}function i(a){return"runres"===a.kind?`res:${a.name}`:(0,d.YP)({kind:a.kind,server:a.server,name:a.name})}function j(a){let b=new Set;for(let c of a){let a;if("string"==typeof c&&0!==c.length)for(e.lastIndex=0;null!==(a=e.exec(c));){let c=a[1].trim();c&&b.add(c)}}return[...b].sort((a,b)=>a.localeCompare(b))}},85838:(a,b,c)=>{"use strict";c.d(b,{A:()=>D});var d=c(21124),e=c(38301),f=c(19815),g=c(90647),h=c(49257),i=c(74576),j=c(81637),k=c(79515),l=c(48317),m=c(7499),n=c(54573),o=c(9604),p=c(22813),q=c(28055);c(43010);var r=c(80518);let s=(0,f.h)("frontend/components/shared/PromptBuilder"),t=a=>{s.debug("Deserializing markdown to Slate value");let b=a.split("\n").map(a=>({type:"paragraph",children:(a=>{let b=(0,r.sE)(a);if(0===b.length)return[{text:a}];let c=[],d=0;for(let e of b)e.index>d&&c.push({text:a.slice(d,e.index)}),c.push({type:"binding-reference",kind:e.kind,server:e.server,name:e.name,children:[{text:""}]}),d=e.index+e.fullMatch.length;return d<a.length&&c.push({text:a.slice(d)}),c})(a)}));return b.length>0?b:[{type:"paragraph",children:[{text:""}]}]},u=a=>{s.debug("Serializing Slate value to markdown");let b=0,c=a.map(a=>a.children?a.children.map(a=>g.EY.isText(a)?a.text:"binding-reference"===a.type?(b++,(0,r.Pj)(a.kind,a.server,a.name)):"").join(""):"").join("\n");return b>0&&s.debug(`Serialized ${b} binding references`),c},v=a=>{let{attributes:b,children:c,element:e}=a;return"binding-reference"===e.type?(0,d.jsxs)("span",{...b,className:"tool-reference-wrapper",children:[(0,d.jsx)(()=>{let a=(0,h.Zi)(),b=(a=>"tool"===a.kind&&"handoff"===a.server)(e),c="runres"===e.kind?"runres":"resource"===e.kind?"resource":b?"handoff":"",f=()=>{let b=h.rL.findPath(a,e);s.debug(`Removing binding reference: ${e.kind}:${e.server}:${e.name}`),g.gB.removeNodes(a,{at:b})};return(0,d.jsxs)("span",{contentEditable:!1,className:`tool-reference-container ${c}`,children:[(0,d.jsx)("span",{className:`tool-reference ${c}`,children:(0,r.CN)(e)}),(0,d.jsx)("span",{className:`tool-reference-delete ${c}`,role:"button",tabIndex:0,onClick:a=>{a.preventDefault(),a.stopPropagation(),f()},onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),a.stopPropagation(),f())},children:"\xd7"})]})},{}),c," "]}):(0,d.jsx)("p",{...b,children:c})},w=a=>{let{attributes:b,children:c,leaf:e}=a,f=c;return e.bold&&(f=(0,d.jsx)("strong",{children:f})),e.italic&&(f=(0,d.jsx)("em",{children:f})),e.code&&(f=(0,d.jsx)("code",{children:f})),(0,d.jsx)("span",{...b,children:f})},x=({server:a,name:b})=>{let c="handoff"===a,[f,g]=(0,e.useState)(null),[h,i]=(0,e.useState)(!0);return((0,e.useEffect)(()=>{let c=!1;return(async()=>{try{i(!0);let d=await q.S.listServerTools(a),e=d.tools?.find(a=>a.name===b);c||g(e||null)}catch(c){s.error(`Failed to fetch tool info for ${a}:${b}`,c)}finally{c||i(!1)}})(),()=>{c=!0}},[a,b]),h)?(0,d.jsx)("span",{className:`tool-reference-preview loading ${c?"handoff":""}`,children:`tool:${a}__${b}`}):f?(0,d.jsxs)("span",{className:`tool-reference-preview ${c?"handoff":""}`,children:["[The user is referencing a ",c?"handoff":"tool"," `tool:",a,"__",b,"` (",f.description||"No description",")]"]}):(0,d.jsx)("span",{className:`tool-reference-preview not-found ${c?"handoff":""}`,children:`tool:${a}__${b} (Tool not found)`})},y=({server:a,name:b})=>{let[c,f]=(0,e.useState)(null),[g,h]=(0,e.useState)(!0);return((0,e.useEffect)(()=>{let c=!1;return(async()=>{try{h(!0);let d=await q.S.listServerResources(a),e=[...d.resources||[],...d.resourceTemplates||[]].find(a=>a.uri===b||a.uriTemplate===b);c||f(e?.description||e?.name||null)}catch(c){s.error(`Failed to fetch resource info for ${a}:${b}`,c)}finally{c||h(!1)}})(),()=>{c=!0}},[a,b]),g)?(0,d.jsx)("span",{className:"tool-reference-preview loading resource",children:`resource:${a}__${b}`}):(0,d.jsxs)("span",{className:"tool-reference-preview resource",children:["[The contents of resource `",b,"` from `",a,"`",c?` (${c})`:""," will be inserted here]"]})},z=({name:a})=>(0,d.jsxs)("span",{className:"tool-reference-preview runres",children:["[The contents of the Temporary Data `",a,"` will be inserted here at run time]"]}),A=({binding:a})=>"runres"===a.kind?(0,d.jsx)(z,{name:a.name}):"resource"===a.kind?(0,d.jsx)(y,{server:a.server,name:a.name}):(0,d.jsx)(x,{server:a.server,name:a.name}),B=({value:a})=>{s.debug("Rendering preview");let b=[],c=0;for(let d of(0,r.sE)(a))d.index>c&&b.push({type:"text",value:a.slice(c,d.index)}),b.push({type:"binding",binding:d,key:d.index}),c=d.index+d.fullMatch.length;c<a.length&&b.push({type:"text",value:a.slice(c)});let e=[],f=[],g=()=>{e.push((0,d.jsx)("p",{children:f},`p-${e.length}`)),f=[]};for(let a of b)if("text"===a.type){let b=a.value.split("\n");for(let a=0;a<b.length;a++)f.push(b[a]),a<b.length-1&&g()}else f.push((0,d.jsx)(A,{binding:a.binding},`binding-${a.key}`));return f.length>0&&g(),(0,d.jsx)("div",{className:"preview-content",children:e})},C=(0,e.forwardRef)(({value:a,onChange:b,label:c="Prompt Builder",height:f=300,onModeChange:q,customPreviewRenderer:x},y)=>{s.info("PromptBuilder initialized");let z=(0,e.useMemo)(()=>{let a=(0,i.$k)((0,h.o$)((0,g.ie)())),{isInline:b,isVoid:c}=a;return a.isInline=a=>"binding-reference"===a.type||b(a),a.isVoid=a=>"binding-reference"===a.type||c(a),a},[]),[A,C]=(0,e.useState)("raw"),[D,E]=(0,e.useState)(()=>t(a||"")),F=(0,e.useRef)(!1),[,G]=(0,e.useState)(0);(0,e.useImperativeHandle)(y,()=>({insertText:a=>{s.info(`insertText called with text length: ${a.length}`);let c=(0,r.y4)(a);if(c){s.info(`Inserting ${c.kind} reference: ${c.server}:${c.name}`);let a={type:"binding-reference",kind:c.kind,server:c.server,name:c.name,children:[{text:""}]};z.selection||g.gB.select(z,g.KE.end(z,[])),g.gB.insertNodes(z,a),g.gB.move(z),G(a=>a+1),E([...z.children])}else z.selection||g.gB.select(z,g.KE.end(z,[])),g.gB.insertText(z,a);b(u(z.children)),s.info("insertText completed successfully")},getMode:()=>A})),(0,e.useEffect)(()=>{u(D)!==u(t(a||""))&&(s.debug("External value change detected"),F.current=!0,E(t(a||"")))},[a,D]);let H=(0,e.useCallback)(a=>{if(F.current){F.current=!1;return}E(a),b(u(a))},[b]);return(0,d.jsxs)(j.default,{sx:{width:"100%",height:"100%",display:"flex",flexDirection:"column"},children:[c&&(0,d.jsx)(k.default,{variant:"subtitle1",gutterBottom:!0,sx:{fontWeight:"medium",mb:1},children:c}),(0,d.jsx)(j.default,{sx:{mb:1},children:(0,d.jsxs)(l.A,{value:A,exclusive:!0,onChange:(a,b)=>{null!==b&&(s.info(`Mode changed from ${A} to ${b}`),C(b),q&&q(b))},size:"small",children:[(0,d.jsxs)(m.A,{value:"raw",children:[(0,d.jsx)(o.A,{fontSize:"small",sx:{mr:.5}}),"Raw"]}),(0,d.jsxs)(m.A,{value:"preview",children:[(0,d.jsx)(p.A,{fontSize:"small",sx:{mr:.5}}),"Preview"]})]})}),(0,d.jsx)(n.A,{elevation:0,sx:{border:"1px solid rgba(0, 0, 0, 0.12)",borderRadius:1,overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column"},children:"raw"===A?(0,d.jsx)(j.default,{className:"slate-editor-container",sx:{height:"number"==typeof f?f:"100%",overflow:"auto",p:2},children:(0,d.jsx)(h.A,{editor:z,initialValue:D,onChange:H,children:(0,d.jsx)(h.Fo,{className:"slate-editor",renderElement:v,renderLeaf:w,placeholder:"Write your prompt here..."})})}):x?(0,d.jsx)(j.default,{className:"custom-preview-container",sx:{height:"number"==typeof f?f:"100%",overflow:"auto"},children:x()}):(0,d.jsx)(j.default,{className:"preview-container",sx:{height:"number"==typeof f?f:"100%",overflow:"auto",p:2},children:(0,d.jsx)(B,{value:a})})})]})});C.displayName="PromptBuilder";let D=C}};
@@ -0,0 +1 @@
1
+ exports.id=6005,exports.ids=[1925,4306,6005],exports.modules={1925:(a,b,c)=>{"use strict";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()},3676:(a,b,c)=>{"use strict";c.d(b,{Wj:()=>h,ln:()=>g});var d=c(10641),e=c(58739);let f="encryption_locked";async function g(){return(0,e.isEncryptionLocked)()}async function h(a){return await g()?a?.openai?d.NextResponse.json({error:{message:"Encryption is locked. Unlock FLUJO to continue.",type:f,code:f,param:null}},{status:423}):d.NextResponse.json({error:f},{status:423}):null}},37426:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"40ec842092ea232b6d4aa599a380d422184da5e1ca":()=>d.c,"602ea7ca289a8eaa1000fb321a71e292e6c766b6bb":()=>d.G});var d=c(73456)},41115:(a,b,c)=>{"use strict";c.d(b,{$:()=>h,v5:()=>g});var d=c(10641);let e=new Set(["localhost","127.0.0.1","::1"]);function f(a){let b=a.toLowerCase();return!!e.has(b)||(function(){let a=process.env.FLUJO_EXTRA_LOCAL_HOSTS;return a?a.split(",").map(a=>a.trim().toLowerCase()).filter(a=>a.length>0&&"."!==a):[]})().some(a=>a.startsWith(".")?b.endsWith(a):b===a)}function g(a,b){let c=function(a){if(!a)return null;let b=a.trim();if(b.startsWith("[")){let a=b.indexOf("]");return a>0?b.slice(1,a):null}return b.split(":")[0]||null}(a);if(!c||!f(c))return!1;if(b)try{if(!f(new URL(b).hostname))return!1}catch{return!1}return!0}function h(a){return g(a.headers.get("host"),a.headers.get("origin"))?null:d.NextResponse.json({error:"Forbidden: this endpoint only accepts local requests."},{status:403})}},42398:(a,b,c)=>{"use strict";c.d(b,{QE:()=>k,_u:()=>m,aZ:()=>j,qf:()=>n,v5:()=>g.v5,xK:()=>l,xV:()=>o});var d=c(50846),e=c(61397),f=c(3676),g=c(41115);let h=(0,d.h)("backend/services/mcp/proxyForward"),i="FLUJO encryption is locked (encryption_locked). Unlock FLUJO to continue.";async function j(a){let b=await e.mcpService.loadServerConfigs();if(!Array.isArray(b))return h.warn("isServerExposed: failed to load server configs",{error:b.error}),!1;let c=b.find(b=>b.name===a);return!!c&&!c.disabled&&!0===c.exposeAsMcpServer}async function k(a){if(await (0,f.ln)())throw Error(i);let b=await e.mcpService.connectServer(a);if(!b.success)throw Error(`Failed to connect to MCP server '${a}': ${b.error}`);let c=await e.mcpService.listServerTools(a);if(c.error)throw Error(`Failed to list tools for '${a}': ${c.error}`);return{tools:c.tools??[]}}async function l(a,b,c){if(await (0,f.ln)())return{content:[{type:"text",text:i}],isError:!0};let d=await e.mcpService.connectServer(a);if(!d.success)return{content:[{type:"text",text:`Error connecting to '${a}': ${d.error}`}],isError:!0};let g=await e.mcpService.callTool(a,b,c);return g.success?g.data:{content:[{type:"text",text:`Error: ${g.error??"Unknown error"}`}],isError:!0}}async function m(a){if(await (0,f.ln)())throw Error(i);let b=await e.mcpService.connectServer(a);if(!b.success)throw Error(`Failed to connect to MCP server '${a}': ${b.error}`);let c=await e.mcpService.listServerResources(a);if(c.error)throw Error(`Failed to list resources for '${a}': ${c.error}`);return{resources:c.resources??[]}}async function n(a){if(await (0,f.ln)())throw Error(i);let b=await e.mcpService.connectServer(a);if(!b.success)throw Error(`Failed to connect to MCP server '${a}': ${b.error}`);let c=await e.mcpService.listServerResourceTemplates(a);if(c.error)throw Error(`Failed to list resource templates for '${a}': ${c.error}`);return{resourceTemplates:c.resourceTemplates??[]}}async function o(a,b){if(await (0,f.ln)())throw Error(i);let c=await e.mcpService.connectServer(a);if(!c.success)throw Error(`Failed to connect to MCP server '${a}': ${c.error}`);let d=await e.mcpService.readResource(a,b);if(!d.success||!d.data)throw Error(`Failed to read resource '${b}' from '${a}': ${d.error??"unknown error"}`);return d.data}},73456:(a,b,c)=>{"use strict";c.d(b,{G:()=>l,c:()=>k});var d=c(75879);c(68633);var e=c(50846),f=c(92372),g=c(46480),h=c(58739),i=c(51669);let j=(0,e.h)("backend/utils/resolveGlobalVars");async function k(a){j.debug("Entering resolveGlobalVars method");let b=await (0,f.YM)(g.Z.GLOBAL_ENV_VARS,{}),c=function(a){if(!a||"object"!=typeof a)return!1;let b=Object.keys(a);if(0===b.length)return!0;let c=a[b[0]];return c&&"object"==typeof c&&"value"in c&&"metadata"in c&&"object"==typeof c.metadata&&"isSecret"in c.metadata}(b);j.debug(`Loaded ${Object.keys(b).length} global environment variables (${c?"new":"old"} format)`);let d={};if(c)for(let[a,c]of Object.entries(b))d[a]=c.value;else d={...b};let e=async a=>{let b=a.match(/\$\{global:([^}]+)\}/g);if(!b)return a;let c=a;for(let a of b){let b=a.substring(9,a.length-1);if(void 0!==d[b]){let e=d[b];if(e.startsWith("encrypted:")){j.debug(`Decrypting encrypted global variable: ${b}`);try{let a=e.substring(10),c=await (0,h.decryptWithPassword)(a);if(c)e=c,j.debug(`Successfully decrypted global variable: ${b}`);else{j.warn(`Failed to decrypt global variable: ${b}`);continue}}catch(a){j.error(`Error decrypting global variable: ${b}`,a);continue}}else if(e.startsWith("encrypted_failed:")){j.warn(`Skipping failed encrypted global variable: ${b}`);continue}j.debug(`Resolved global variable: ${b}`),c=c.replace(a,e)}else j.warn(`Global variable not found: ${b}`)}return c},i=async a=>{if("string"==typeof a)return await e(a);if(Array.isArray(a))return await Promise.all(a.map(a=>i(a)));if(null!==a&&"object"==typeof a){let b={};for(let[c,d]of Object.entries(a))b[c]=await i(d);return b}return a},k=await i(a);return"object"==typeof a&&null!==a&&j.debug("Resolved global variables result:",JSON.stringify(k,null,2)),j.debug("Completed global variable resolution"),k}async function l(a,b=0){if(j.debug(`Entering resolveAndDecryptApiKey method (depth: ${b})`),!a)return j.warn("Empty value provided"),null;if(b>=10)return j.warn(`Maximum resolution depth reached (10) for value: ${a}`),a;let c=a;if(c.startsWith("encrypted:")){j.debug(`Decrypting encrypted value at depth ${b}`);try{let a=c.substring(10),d=await (0,h.decryptWithPassword)(a);if(!d)return j.warn(`Failed to decrypt value at depth ${b}`),null;j.debug(`Successfully decrypted value at depth ${b}`),j.verbose(d),c=d}catch(a){return j.error(`Error decrypting value at depth ${b}:`,a),null}}else c.startsWith("encrypted_failed:")&&(j.warn(`Skipping failed encrypted value at depth ${b}`),c=c.substring(17));if(c.includes("${global:")){j.debug(`Resolving global variables at depth ${b}`);try{let a=await k(c);if(j.verbose(a),a!==c)return j.debug(`Value changed after resolving globals at depth ${b}, processing recursively`),l(a,b+1);c=a}catch(a){return j.error(`Error resolving global variables at depth ${b}:`,a),null}}return j.debug(`Completed resolveAndDecryptApiKey at depth ${b}`),c}(0,i.D)([k,l]),(0,d.A)(k,"40ec842092ea232b6d4aa599a380d422184da5e1ca",null),(0,d.A)(l,"602ea7ca289a8eaa1000fb321a71e292e6c766b6bb",null)},78335:()=>{},96487:()=>{}};
@@ -0,0 +1,5 @@
1
+ "use strict";exports.id=6529,exports.ids=[6529],exports.modules={32631:(a,b,c)=>{c.d(b,{D:()=>h}),c(21124);var d=c(38301),e=c(19815);c(48748),c(9718);let f=(0,e.h)("frontend/contexts/ThemeContext"),g=(0,d.createContext)(void 0),h=()=>{let a=(0,d.useContext)(g);if(!a)throw f.error("useTheme hook used outside of ThemeProvider"),Error("useTheme must be used within a ThemeProvider");return f.debug("useTheme hook accessed"),a}},32720:(a,b,c)=>{c.d(b,{A:()=>B});var d=c(21124),e=c(38301),f=c(40512),g=c(83899),h=c(52327),i=c(81637),j=c(43312),k=c(44079),l=c(37674),m=c(41893),n=c(88745),o=c(8521),p=c(79515),q=c(89490),r=c(75983),s=c(50553),t=c(84233),u=c(19925),v=c(68730),w=c(30717),x=c(98810),y=c(52399),z=c(91314);let A=(0,c(19815).h)("frontend/components/shared/FolderPickerDialog"),B=({open:a,title:b="Choose a folder",selectFiles:c=!1,initialPath:B,onClose:C,onSelect:D})=>{let[E,F]=(0,e.useState)(null),[G,H]=(0,e.useState)(""),[I,J]=(0,e.useState)(!1),[K,L]=(0,e.useState)(null),M=(0,e.useCallback)(async a=>{J(!0),L(null);try{let b=a?`?path=${encodeURIComponent(a)}`:"",c=await fetch(`/api/browse${b}`),d=await c.json();if(!c.ok||d.error)return void L(d.error||`HTTP ${c.status}`);F(d),H(d.path)}catch(a){A.warn("Browse failed",a),L("Could not reach the backend to browse folders.")}finally{J(!1)}},[]);(0,e.useEffect)(()=>{a?M(B||void 0):(F(null),L(null))},[a,B,M]);let N=a=>{D(a),C()};return(0,d.jsxs)(f.A,{open:a,onClose:C,maxWidth:"sm",fullWidth:!0,children:[(0,d.jsx)(g.A,{children:b}),(0,d.jsxs)(h.A,{dividers:!0,sx:{display:"flex",flexDirection:"column",gap:1.5},children:[(0,d.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,d.jsx)(j.A,{title:"Up one folder",children:(0,d.jsx)("span",{children:(0,d.jsx)(k.A,{size:"small",disabled:!E?.parent||I,onClick:()=>E?.parent&&void M(E.parent),children:(0,d.jsx)(y.A,{fontSize:"small"})})})}),(0,d.jsx)(j.A,{title:"Home folder",children:(0,d.jsx)("span",{children:(0,d.jsx)(k.A,{size:"small",disabled:I,onClick:()=>void M(),children:(0,d.jsx)(z.A,{fontSize:"small"})})})}),(0,d.jsx)(l.A,{fullWidth:!0,size:"small",value:G,onChange:a=>H(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),M(G))},placeholder:"Type a path and press Enter"})]}),E&&E.drives.length>0&&(0,d.jsx)(i.default,{sx:{display:"flex",gap:.75,flexWrap:"wrap"},children:E.drives.map(a=>(0,d.jsx)(m.A,{label:a,size:"small",variant:E.path.toLowerCase().startsWith(a.toLowerCase())?"filled":"outlined",onClick:()=>void M(a)},a))}),K&&(0,d.jsx)(n.A,{severity:"error",children:K}),(0,d.jsxs)(i.default,{sx:{minHeight:240,maxHeight:"45vh",overflow:"auto",border:1,borderColor:"divider",borderRadius:1},children:[I&&(0,d.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,d.jsx)(o.default,{size:24})}),!I&&E&&0===E.entries.length&&(0,d.jsx)(p.default,{variant:"body2",color:"text.secondary",sx:{p:2},children:"This folder is empty."}),!I&&(0,d.jsx)(q.A,{dense:!0,disablePadding:!0,children:E?.entries.map(a=>(0,d.jsxs)(r.A,{disabled:!a.isDirectory&&!c,onClick:()=>a.isDirectory?void M(a.path):N(a.path),children:[(0,d.jsx)(s.A,{sx:{minWidth:34},children:a.isDirectory?(0,d.jsx)(w.A,{fontSize:"small",color:"primary"}):(0,d.jsx)(x.A,{fontSize:"small"})}),(0,d.jsx)(t.A,{primary:a.name,primaryTypographyProps:{noWrap:!0}})]},a.path))})]})]}),(0,d.jsxs)(u.A,{children:[(0,d.jsx)(v.A,{onClick:C,children:"Cancel"}),(0,d.jsx)(v.A,{variant:"contained",disabled:!E||I,onClick:()=>E&&N(E.path),children:"Select this folder"})]})]})}},33799:(a,b,c)=>{c.d(b,{b:()=>f,c:()=>g});var d=c(50648);async function e(a,b){try{let c=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!c.ok||!c.body)return null;let e=null;return await (0,d.z)(c,a=>{"stdout"===a.type||"stderr"===a.type?b(a.data):"result"===a.type&&(e={success:a.success,output:a.commandOutput??""})}),e}catch(a){return console.error("Error streaming git command:",a),null}}let f=async(a,b,c)=>{if(c){let d=await e({action:"installStream",savePath:a,installCommand:b},c);if(d)return{success:d.success,message:d.success?{type:"success",text:"Dependencies installed successfully. You can now build the server."}:{type:"error",text:"Error installing dependencies. You can still try to build the server."},output:d.output||"No output was returned from the installation process."}}try{let c=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"install",savePath:a,installCommand:b})}),d=await c.json();if(!c.ok)throw Error(d.error||"Failed to install dependencies");return{success:!0,message:{type:"success",text:"Dependencies installed successfully. You can now build the server."},output:d.commandOutput||"No output was returned from the installation process."}}catch(a){return console.error("Error installing dependencies:",a),{success:!1,message:{type:"error",text:`Error installing dependencies: ${a.message||"Unknown error"}. You can still try to build the server.`},output:a instanceof Response?await a.text():a?.message||"Unknown error"}}},g=async(a,b,c)=>{if(c){let d=await e({action:"buildStream",savePath:a,buildCommand:b},c);if(d)return{success:d.success,message:d.success?{type:"success",text:"Server built successfully."}:{type:"error",text:"Error building server."},output:d.output||"No output was returned from the build process."}}try{let c=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"build",savePath:a,buildCommand:b})}),d=await c.json();if(!c.ok)throw Error(d.error||"Failed to build repository");return{success:!0,message:{type:"success",text:"Server built successfully."},output:d.commandOutput||"No output was returned from the build process."}}catch(a){return console.error("Error building server:",a),{success:!1,message:{type:"error",text:`Error building server: ${a.message||"Unknown error"}.`},output:a instanceof Response?await a.text():a?.message||"Unknown error"}}}},35070:(a,b,c)=>{c.d(b,{A:()=>ao});var d=c(21124),e=c(38301),f=c(19815),g=c(48748),h=c(8165),i=c(93083),j=c(65343),k=c(53222),l=c(12033),m=c(91034),n=c(95786),o=c(64956),p=c(55641),q=c(29320),r=c(5748),s=c(38941),t=c(51694),u=c(1312),v=c(25750),w=c(5501),x=c(99587),y=c(61615),z=c(78352),A=c(28055),B=c(44920),C=c(46410),D=c(41893),E=c(56685),F=c(71756),G=c(91901),H=c(83013);let I=({transport:a,size:b="small"})=>{let{colors:c}=(0,g.Ic)(),e=c.domain.transport,f=(()=>{switch(a){case"stdio":return{label:"STDIO",icon:(0,d.jsx)(E.A,{fontSize:"small"}),color:e.stdio.fg,bgColor:e.stdio.bg};case"websocket":return{label:"WebSocket",icon:(0,d.jsx)(F.A,{fontSize:"small"}),color:e.websocket.fg,bgColor:e.websocket.bg};case"sse":return{label:"SSE",icon:(0,d.jsx)(G.A,{fontSize:"small"}),color:e.sse.fg,bgColor:e.sse.bg};case"streamable":return{label:"HTTP Stream",icon:(0,d.jsx)(H.A,{fontSize:"small"}),color:e.streamable.fg,bgColor:e.streamable.bg};default:return{label:"UNKNOWN",icon:(0,d.jsx)(E.A,{fontSize:"small"}),color:e.default.fg,bgColor:e.default.bg}}})();return(0,d.jsx)(D.A,{icon:f.icon,label:f.label,size:b,sx:{backgroundColor:f.bgColor,color:f.color,fontWeight:500,fontSize:"small"===b?"0.75rem":"0.875rem",height:"small"===b?24:32,"& .MuiChip-icon":{color:f.color}}})};var J=c(40512),K=c(83899),L=c(52327),M=c(19925),N=c(68730),O=c(81637),P=c(79515),Q=c(88745),R=c(95587),S=c(77028),T=c(89490),U=c(71439),V=c(50553),W=c(84233),X=c(72264),Y=c(53455),Z=c(33799);let $=(0,f.h)("frontend/components/mcp/MCPServerManager/ServerUpdateDialog"),_=({open:a,onClose:b,serverName:c,rootPath:f,installCommand:g,buildCommand:i,enabled:k,updateInfo:l,onToggle:m,onUpdated:n})=>{let[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(!1),[u,w]=(0,e.useState)(!1),[x,z]=(0,e.useState)(null),[A,B]=(0,e.useState)({}),[C,E]=(0,e.useState)(""),F=!!(g&&g.trim()),G=!!(i&&i.trim()),H=[{key:"stop",label:"Stop server",active:k},{key:"pull",label:"Pull latest changes",active:!0},{key:"install",label:`Install dependencies (${g})`,active:F},{key:"build",label:`Build (${i})`,active:G},{key:"restart",label:"Restart server",active:k}];(0,e.useEffect)(()=>{a&&(r(!1),t(!1),w(!1),z(null),B({}),E(""))},[a,c]),(0,e.useEffect)(()=>{if(a&&l.remoteUrl&&l.localSha&&l.remoteSha){let a=!1;return(0,Y.Qz)(l.remoteUrl,l.localSha,l.remoteSha).then(b=>{a||p(b)}),()=>{a=!0}}p(null)},[a,l.remoteUrl,l.localSha,l.remoteSha]);let I=(0,e.useCallback)((a,b)=>{B(c=>({...c,[a]:b}))},[]),_=(0,e.useCallback)((a,b)=>{E(c=>c+(c?"\n":"")+`--- ${a} ---
2
+ `+(b||"").trim()+"\n")},[]),aa=async()=>{t(!0),z(null),$.info(`Starting update for server ${c}`);let a=(a,b)=>{I(a,"error"),z(b),t(!1)};try{k&&(I("stop","running"),await Promise.resolve(m(!1)),I("stop","done")),I("pull","running");let b=await (0,Y.Qv)(f);if(!b.success)return void a("pull",b.error||"Failed to pull updates");if(_("Pull",`Updated ${(0,Y.Fu)(b.oldSha)} -> ${(0,Y.Fu)(b.newSha)}`),I("pull","done"),F){I("install","running");let b=await (0,Z.b)(f,g.trim());if(_("Install",b.output),!b.success)return void a("install",b.message.text);I("install","done")}if(G){I("build","running");let b=await (0,Z.c)(f,i.trim());if(_("Build",b.output),!b.success)return void a("build",b.message.text);I("build","done")}k&&(I("restart","running"),await Promise.resolve(m(!0)),I("restart","done")),$.info(`Update completed for server ${c}`),w(!0),t(!1),n?.()}catch(a){$.error(`Update failed for server ${c}`,a),z(a.message||"Update failed"),t(!1)}},ab=s||u||Object.keys(A).length>0,ac=l.hasLocalChanges&&!q;return(0,d.jsxs)(J.A,{open:a,onClose:s?void 0:b,maxWidth:"sm",fullWidth:!0,onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)(K.A,{component:"div",sx:{display:"flex",alignItems:"center",gap:1},children:[(0,d.jsx)(v.A,{color:"primary"}),"Update ",c]}),(0,d.jsxs)(L.A,{children:[(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:1,flexWrap:"wrap"},children:[(0,d.jsx)(D.A,{size:"small",label:(0,Y.Fu)(l.localSha),sx:{fontFamily:"monospace"}}),(0,d.jsx)(P.default,{variant:"body2",color:"text.secondary",children:"→"}),(0,d.jsx)(D.A,{size:"small",color:"primary",label:(0,Y.Fu)(l.remoteSha),sx:{fontFamily:"monospace"}}),l.branch&&"HEAD"!==l.branch&&(0,d.jsxs)(P.default,{variant:"body2",color:"text.secondary",children:["on ",(0,d.jsx)("code",{children:l.branch})]}),o?.behindBy!=null&&(0,d.jsxs)(P.default,{variant:"body2",color:"text.secondary",children:["(",o.behindBy," commit",1===o.behindBy?"":"s"," behind)"]})]}),l.repoRoot&&l.repoRoot.replace(/\\/g,"/").replace(/\/+$/,"").toLowerCase()!==f.replace(/\\/g,"/").replace(/\/+$/,"").toLowerCase()&&(0,d.jsxs)(P.default,{variant:"body2",color:"text.secondary",sx:{mb:1},children:["This server lives inside a larger repository — the update pulls"," ",(0,d.jsx)("code",{children:l.repoRoot})," as a whole (other servers from the same repository are updated along with it)."]}),o&&o.commits.length>0&&!ab&&(0,d.jsx)(O.default,{sx:{mb:2,p:1,borderRadius:1,border:"1px solid",borderColor:"divider",maxHeight:160,overflow:"auto"},children:o.commits.map(a=>(0,d.jsxs)(P.default,{variant:"body2",sx:{fontSize:"0.8rem"},noWrap:!0,title:a.message,children:[(0,d.jsx)("code",{children:a.sha})," ",a.message]},a.sha))}),l.hasLocalChanges&&!ab&&(0,d.jsxs)(Q.A,{severity:"warning",sx:{mb:2},children:[(0,d.jsxs)(P.default,{variant:"body2",sx:{mb:1},children:["This repository has local changes to tracked files. Updating will ",(0,d.jsx)("strong",{children:"discard"})," them. Untracked files (e.g. a ",(0,d.jsx)("code",{children:".env"})," you created) and all FLUJO settings for this server are kept."]}),(0,d.jsx)(O.default,{component:"ul",sx:{m:0,pl:3,maxHeight:100,overflow:"auto"},children:l.dirtyFiles.map(a=>(0,d.jsx)("li",{children:(0,d.jsx)(P.default,{variant:"body2",component:"span",sx:{fontFamily:"monospace",fontSize:"0.8rem"},children:a})},a))}),(0,d.jsx)(R.A,{sx:{mt:1},control:(0,d.jsx)(S.A,{size:"small",checked:q,onChange:a=>r(a.target.checked)}),label:(0,d.jsx)(P.default,{variant:"body2",children:"Discard my local changes and update"})})]}),(0,d.jsx)(T.A,{dense:!0,disablePadding:!0,children:H.filter(a=>a.active).map(a=>(0,d.jsxs)(U.Ay,{disableGutters:!0,sx:{py:.25},children:[(0,d.jsx)(V.A,{sx:{minWidth:32},children:(a=>{switch(a){case"running":return(0,d.jsx)(y.default,{size:"small",color:"primary"});case"done":return(0,d.jsx)(h.A,{color:"success",fontSize:"small"});case"error":return(0,d.jsx)(j.A,{color:"error",fontSize:"small"});default:return(0,d.jsx)(X.A,{color:"disabled",fontSize:"small"})}})(A[a.key])}),(0,d.jsx)(W.A,{primary:a.label,primaryTypographyProps:{variant:"body2",noWrap:!0,title:a.label}})]},a.key))}),x&&(0,d.jsxs)(Q.A,{severity:"error",sx:{mt:2,whiteSpace:"pre-wrap"},children:[x,k&&(0,d.jsx)(P.default,{variant:"body2",sx:{mt:1},children:"The server was left stopped. Adjust the install/build commands via Edit, then re-enable it."})]}),u&&(0,d.jsxs)(Q.A,{severity:"success",sx:{mt:2},children:["Server updated successfully",k?" and restarted":"","."]}),C&&(0,d.jsx)(O.default,{sx:{mt:2,p:1,borderRadius:1,bgcolor:"background.paper",border:"1px solid",borderColor:"divider",fontFamily:"monospace",fontSize:"0.75rem",whiteSpace:"pre-wrap",overflow:"auto",maxHeight:200},children:C})]}),(0,d.jsxs)(M.A,{children:[(0,d.jsx)(N.A,{onClick:b,disabled:s,children:u?"Close":"Cancel"}),!u&&(0,d.jsx)(N.A,{variant:"contained",color:"primary",startIcon:(0,d.jsx)(v.A,{}),onClick:aa,disabled:s||ac,children:s?"Updating…":x?"Retry Update":"Update"})]})]})};var aa=c(37674),ab=c(44079),ac=c(47902);let ad=(0,f.h)("frontend/components/mcp/MCPServerManager/FilesystemRootsModal"),ae=({open:a,serverName:b,initialRoots:c,onClose:f,onSaved:g})=>{let[h,i]=(0,e.useState)([]),[j,k]=(0,e.useState)(""),[l,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(null),q="bash"===b;(0,e.useEffect)(()=>{a&&(i(Array.isArray(c)?[...c]:[]),k(""),p(null))},[a,c]);let r=()=>{let a=j.trim();if(a){if(h.includes(a))return void p("That root is already in the list.");i(b=>[...b,a]),k(""),p(null)}},s=async()=>{n(!0),p(null);try{let a=await A.S.updateServerConfig(b,{roots:h});if(a&&"error"in a&&a.error)return void p("string"==typeof a.error?a.error:"Failed to save roots.");ad.info(`Saved ${h.length} root(s) for ${b}`),g?.(h),f()}catch(a){ad.warn("Failed to save filesystem roots",a),p(a instanceof Error?a.message:"Failed to save roots.")}finally{n(!1)}};return(0,d.jsxs)(J.A,{open:a,onClose:f,maxWidth:"sm",fullWidth:!0,onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)(K.A,{children:["Configure ",b," roots"]}),(0,d.jsxs)(L.A,{children:[(0,d.jsxs)(P.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:["Confine the built-in ",(0,d.jsx)("b",{children:b})," server to these folders. Leave the list empty for full host access (unless the ",(0,d.jsx)("code",{children:q?"FLUJO_BASH_ROOTS":"FLUJO_FS_ROOTS"})," environment variable is set, which always acts as a hard ceiling)."]}),q&&(0,d.jsxs)(Q.A,{severity:"info",sx:{mb:2},children:["The bash ",(0,d.jsx)("code",{children:"cwd"})," fence is best-effort: a shell can still ",(0,d.jsx)("code",{children:"cd"})," elsewhere or use absolute paths, so ",(0,d.jsx)("code",{children:"FLUJO_FS_ROOTS"}),"/",(0,d.jsx)("code",{children:"FLUJO_BASH_ROOTS"})," and OS permissions remain the real boundary."]}),o&&(0,d.jsx)(Q.A,{severity:"error",sx:{mb:2},onClose:()=>p(null),children:o}),(0,d.jsxs)(O.default,{sx:{display:"flex",gap:1,mb:1},children:[(0,d.jsx)(aa.A,{fullWidth:!0,size:"small",label:"Add a root folder (absolute path)",value:j,onChange:a=>k(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),r())},placeholder:"e.g. C:\\\\Users\\\\me\\\\project or /home/me/project"}),(0,d.jsx)(N.A,{variant:"outlined",startIcon:(0,d.jsx)(ac.A,{}),onClick:r,disabled:!j.trim(),children:"Add"})]}),0===h.length?(0,d.jsx)(P.default,{variant:"body2",color:"text.secondary",sx:{mt:1},children:"No roots configured — the server has full host access."}):(0,d.jsx)(T.A,{dense:!0,children:h.map((a,b)=>(0,d.jsx)(U.Ay,{secondaryAction:(0,d.jsx)(ab.A,{edge:"end","aria-label":"remove root",onClick:()=>{i(a=>a.filter((a,c)=>c!==b))},children:(0,d.jsx)(m.A,{fontSize:"small"})}),children:(0,d.jsx)(P.default,{variant:"body2",sx:{wordBreak:"break-all"},children:a})},`${a}-${b}`))})]}),(0,d.jsxs)(M.A,{children:[(0,d.jsx)(N.A,{onClick:f,disabled:l,children:"Cancel"}),(0,d.jsx)(N.A,{onClick:s,variant:"contained",disabled:l,children:l?"Saving…":"Save"})]})]})};var af=c(30873),ag=c(60839),ah=c(30818),ai=c(43312),aj=c(37489),ak=c(27114),al=c(67191),am=c(98463);let an=(0,f.h)("frontend/components/mcp/MCPServerManager/ServerCard"),ao=({name:a,status:b,path:f,enabled:E,transport:F,onToggle:G=()=>{},onRetry:H=()=>{},onDelete:R=()=>{},onClick:T,onEdit:U=()=>{},onAuthenticate:V,pickerMode:W=!1,error:X,stderrOutput:Z,authorizationUrl:$,selected:aa=!1,onSelect:ac,selectionMode:ad=!1,hasOAuthTokens:ao=!1,exposeAsMcpServer:ap=!1,enableMcpApps:aq=!1,updateInfo:ar,installCommand:as,buildCommand:at,onUpdated:au,folder:av,folders:aw=[],onSetFolder:ax,favorite:ay=!1,onToggleFavorite:az,builtIn:aA=!1,serverConfig:aB})=>{let[aC,aD]=(0,e.useState)(!1),[aE,aF]=(0,e.useState)(null),[aG,aH]=(0,e.useState)(!1),[aI,aJ]=(0,e.useState)(!1),[aK,aL]=(0,e.useState)(""),[aM,aN]=(0,e.useState)("success"),[aO,aP]=(0,e.useState)(!1),[aQ,aR]=(0,e.useState)(!1),[aS,aT]=(0,e.useState)(!1),[aU,aV]=(0,e.useState)(aB?.roots);(0,e.useEffect)(()=>{aV(aB?.roots)},[aB?.roots]);let[aW,aX]=(0,e.useState)(ap),[aY,aZ]=(0,e.useState)(aq),a$=(0,ag.A)();(0,e.useEffect)(()=>{aX(ap)},[ap]),(0,e.useEffect)(()=>{aZ(aq)},[aq]);let a_=async b=>{aX(b);let c=await A.S.updateServerConfig(a,{exposeAsMcpServer:b});"success"in c&&c.success?(aL(b?"Server is now exposed to external apps.":"Server is no longer exposed."),aN("success")):(aX(!b),aL("Failed to update exposure setting."),aN("error")),aJ(!0)},a0=async b=>{aZ(b);let c=await A.S.updateServerConfig(a,{enableMcpApps:b});"success"in c&&c.success?(aL(b?"This server may now render interactive apps in chat (sandboxed).":"Interactive apps disabled for this server."),aN("success")):(aZ(!b),aL("Failed to update the MCP Apps setting."),aN("error")),aJ(!0)},a1=()=>{navigator.clipboard.writeText(""),aL("Endpoint URL copied to clipboard."),aN("success"),aJ(!0)},a2=()=>{navigator.clipboard.writeText((0,B.CZ)(a,aB,"")),aL("Server JSON copied to clipboard."),aN("success"),aJ(!0)},a3={connected:"success.main",disconnected:"text.secondary",error:"error.main",connecting:"info.main",initialization:"info.main",requires_authentication:"warning.main"}[b];(0,e.useEffect)(()=>{if(("connecting"===b||"initialization"===b)&&E&&!W){aP(!0);let b=setTimeout(()=>{an.debug(`Polling status for server: ${a}`),H()},2e3);return()=>{clearTimeout(b),aP(!1)}}"connecting"!==b&&"initialization"!==b&&aP(!1)},[b,E,a,H]);let[a4,a5]=(0,e.useState)(null);(0,e.useEffect)(()=>()=>{a4&&clearTimeout(a4)},[a4]);let a6=async b=>{b.stopPropagation(),an.debug(`Reset OAuth tokens button clicked for server: ${a}`),aR(!0);try{let b=await fetch("/api/oauth/reset",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverName:a})});if(!b.ok){let a=await b.json();throw Error(a.error||"Failed to reset OAuth tokens")}let c=await b.json();an.info(`OAuth tokens reset successfully for ${a}`,c),aL("OAuth tokens reset successfully. Server will require re-authentication."),aN("success"),aJ(!0),setTimeout(()=>{H()},500)}catch(b){an.error(`Failed to reset OAuth tokens for ${a}`,b),aL(`Failed to reset OAuth tokens: ${b instanceof Error?b.message:"Unknown error"}`),aN("error"),aJ(!0)}finally{aR(!1)}},{getThemeValue:a7,getThemeColor:a8,colors:a9}=(0,g.Ic)(),ba=()=>{an.debug(`Server restart initiated for: ${a}`),G(!1),setTimeout(()=>{G(!0),an.info(`Server ${a} restarted`)},1e3)};return(0,d.jsxs)(ah.A,{role:W?"button":void 0,"aria-pressed":W?aa:void 0,sx:{cursor:"pointer",position:"relative",height:W?"100%":void 0,transition:"box-shadow 0.3s ease, border-color 0.12s ease",border:a=>W&&aa?`2px solid ${a.palette.primary.main}`:"2px solid transparent","&:hover":{boxShadow:3}},onClick:()=>{an.debug(`Server card clicked: ${a}`),T()},children:[az&&!aA&&(0,d.jsx)(ai.A,{title:ay?"Remove from favorites":"Add to favorites",arrow:!0,placement:"top",children:(0,d.jsx)(ab.A,{size:"small","aria-label":ay?"remove from favorites":"add to favorites",onClick:a=>{a.stopPropagation(),az()},sx:{position:"absolute",top:4,left:4,zIndex:2,color:ay?a$.palette.warning.main:a$.palette.text.secondary,backgroundColor:(0,aj.X4)(a$.palette.background.paper,.6),"&:hover":{backgroundColor:(0,aj.X4)(a$.palette.background.paper,.9)}},children:ay?(0,d.jsx)(w.A,{fontSize:"small"}):(0,d.jsx)(x.A,{fontSize:"small"})})}),(0,d.jsxs)(ak.A,{sx:{pb:1},children:[(0,d.jsxs)(O.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",mb:1},children:[(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center",flex:1},children:[ad&&ac&&(0,d.jsx)(S.A,{checked:aa,onClick:a=>a.stopPropagation(),onChange:a=>ac(a.target.checked),size:"small",sx:{mr:1,p:.5}}),(0,d.jsx)(P.default,{variant:"h6",component:"h3",sx:{flex:1},children:a})]}),(0,d.jsxs)(O.default,{sx:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:.5},children:[(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center",gap:.5},children:[ar?.updateAvailable&&(0,d.jsx)(ai.A,{title:`Update available: ${(0,Y.Fu)(ar.localSha)} → ${(0,Y.Fu)(ar.remoteSha)}. Click to update.`,children:(0,d.jsx)(D.A,{icon:(0,d.jsx)(v.A,{}),label:"Update",color:"warning",size:"small",onClick:b=>{b.stopPropagation(),an.debug(`Update badge clicked for server: ${a}`),aH(!0)}})}),aA?(0,d.jsx)(ai.A,{title:"FLUJO's built-in server — can be enabled or disabled below, but not edited or removed.",children:(0,d.jsx)(D.A,{label:"Built-in",color:"primary",size:"small"})}):(0,d.jsx)(I,{transport:F,size:"small"})]}),(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center"},children:["connected"===b&&(0,d.jsx)(h.A,{color:"success",sx:{mr:.5},fontSize:"small"}),"disconnected"===b&&(0,d.jsx)(i.A,{color:"action",sx:{mr:.5},fontSize:"small"}),"error"===b&&(0,d.jsx)(j.A,{color:"error",sx:{mr:.5},fontSize:"small"}),"requires_authentication"===b&&(0,d.jsx)(n.A,{color:"warning",sx:{mr:.5},fontSize:"small"}),("connecting"===b||"initialization"===b)&&(0,d.jsx)(y.default,{size:"small",color:"primary",sx:{mr:.5}}),(0,d.jsx)(P.default,{variant:"body2",color:a3,children:"requires_authentication"===b?"Requires Authentication":b})]})]})]}),(0,d.jsx)(P.default,{variant:"body2",color:"text.secondary",sx:{mb:1,fontSize:"0.875rem"},noWrap:!0,title:aA?void 0:f,children:aA?"FLUJO's own backend API — flow authoring, execution and server management as MCP tools.":f}),aA&&!W&&(0,d.jsxs)(O.default,{sx:{mt:1,mb:1,p:1,borderRadius:1,border:"1px solid",borderColor:"divider"},onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center"},children:[(0,d.jsx)(q.A,{fontSize:"small",sx:{mr:.5,color:"primary.main"}}),(0,d.jsx)(ai.A,{title:"External MCP clients (Claude Code, Claude Desktop, Cursor, …) can drive FLUJO through this local endpoint.",children:(0,d.jsx)(P.default,{variant:"body2",sx:{fontWeight:500},children:"Exposed to external apps"})})]}),(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center",mt:.5},children:[(0,d.jsx)(P.default,{variant:"caption",sx:{flex:1,fontFamily:"monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:"",children:""}),(0,d.jsx)(ai.A,{title:"Copy endpoint URL",children:(0,d.jsx)(ab.A,{size:"small",onClick:a1,children:(0,d.jsx)(s.A,{fontSize:"small"})})}),(0,d.jsx)(ai.A,{title:"Copy MCP server JSON",children:(0,d.jsx)(ab.A,{size:"small",onClick:a2,children:(0,d.jsx)(t.A,{fontSize:"small"})})})]})]}),!aA&&!W&&(0,d.jsxs)(O.default,{sx:{mt:1,mb:1,p:1,borderRadius:1,border:"1px solid",borderColor:"divider"},onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center"},children:[(0,d.jsx)(q.A,{fontSize:"small",sx:{mr:.5,color:aW?"primary.main":"text.disabled"}}),(0,d.jsx)(al.A,{checked:aW,onChange:a=>a_(a.target.checked),size:"small"}),(0,d.jsx)(ai.A,{title:"Re-expose this server's tools to external MCP clients (Claude Desktop, Cursor, …) at a local URL.",children:(0,d.jsx)(P.default,{variant:"body2",sx:{fontWeight:500},children:"Expose to external apps"})})]}),aW&&(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center",mt:.5},children:[(0,d.jsx)(P.default,{variant:"caption",sx:{flex:1,fontFamily:"monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:"",children:""}),(0,d.jsx)(ai.A,{title:"Copy endpoint URL",children:(0,d.jsx)(ab.A,{size:"small",onClick:a1,children:(0,d.jsx)(s.A,{fontSize:"small"})})}),(0,d.jsx)(ai.A,{title:"Copy MCP server JSON",children:(0,d.jsx)(ab.A,{size:"small",onClick:a2,children:(0,d.jsx)(t.A,{fontSize:"small"})})})]})]}),!aA&&!W&&(0,d.jsx)(O.default,{sx:{mt:1,mb:1,p:1,borderRadius:1,border:"1px solid",borderColor:"divider"},onClick:a=>a.stopPropagation(),children:(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center"},children:[(0,d.jsx)(r.A,{fontSize:"small",sx:{mr:.5,color:aY?"primary.main":"text.disabled"}}),(0,d.jsx)(al.A,{checked:aY,onChange:a=>a0(a.target.checked),size:"small"}),(0,d.jsx)(ai.A,{title:"Allow this server's tools to render interactive apps (MCP Apps / ui:// resources) in chat. Rendered read-only in a strict sandbox. Only enable for servers you trust.",children:(0,d.jsx)(P.default,{variant:"body2",sx:{fontWeight:500},children:"Render interactive apps"})})]})}),"error"===b&&(0,d.jsxs)(O.default,{sx:{mt:1,mb:1},children:[(0,d.jsxs)(O.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:.5},children:[(0,d.jsx)(P.default,{variant:"body2",fontWeight:"medium",color:"error",children:"Error:"}),(0,d.jsx)(N.A,{size:"small",color:"primary",onClick:b=>{b.stopPropagation(),an.debug(`View full error clicked for server: ${a}`),aD(!0)},children:"View Full Error"})]}),(0,d.jsx)(O.default,{sx:{maxHeight:"80px",overflow:"auto",p:1,borderRadius:1,bgcolor:a=>a8("error.background"),color:a=>a8("error.text"),border:"1px solid",borderColor:a=>a8("error.border"),fontSize:"0.75rem",fontWeight:500,whiteSpace:"pre-wrap"},children:X||"Unknown error"})]}),"requires_authentication"===b&&!W&&(0,d.jsxs)(O.default,{sx:{mt:1,mb:1},children:[(0,d.jsx)(O.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:1},children:(0,d.jsx)(P.default,{variant:"body2",fontWeight:"medium",color:"warning.main",children:"Authentication Required"})}),(0,d.jsxs)(N.A,{variant:"contained",color:"warning",size:"small",startIcon:(0,d.jsx)(o.A,{}),onClick:async b=>{if(b.stopPropagation(),an.debug(`Authenticate button clicked for server: ${a}`),V)V();else try{let b=await fetch("/api/oauth/initiate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverName:a})});if(!b.ok){let a=await b.json();throw Error(a.error||"Failed to initiate OAuth")}let{authorizationUrl:d,alreadyAuthorized:e}=await b.json();if(e||!d){an.info(`Server ${a} already authorized, no popup needed`),ba();return}let{openOAuthPopup:f}=await c.e(558).then(c.bind(c,60558));await f({url:d,windowName:`oauth_${a}`,onSuccess:b=>{an.info(`OAuth authentication successful for ${a}`,b),an.info(`Automatically restarting server ${a} after OAuth completion`),ba()},onError:b=>{an.error(`OAuth authentication failed for ${a}`,b),aL("OAuth authentication failed"),aN("error"),aJ(!0)}})}catch(b){an.error(`Failed to start OAuth authentication for ${a}`,b),aL("Failed to start OAuth authentication"),aN("error"),aJ(!0)}},sx:{width:"100%"},children:["Authenticate with ",a]})]})]}),aA&&!W&&G&&(0,d.jsx)(am.A,{sx:{justifyContent:"flex-start",px:2,py:1},onClick:a=>a.stopPropagation(),children:(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center"},children:[(0,d.jsx)(al.A,{checked:E,onClick:a=>a.stopPropagation(),onChange:b=>{an.debug(`Built-in server ${a} toggle changed to: ${b.target.checked}`),G(b.target.checked)},color:"primary",size:"small"}),(0,d.jsx)(P.default,{variant:"body2",sx:{ml:.5,fontWeight:500,color:E?"primary.main":"text.secondary"},children:E?"Enabled":"Disabled"}),("filesystem"===a||"bash"===a)&&(0,d.jsx)(ai.A,{title:`Configure ${a} roots`,children:(0,d.jsxs)(N.A,{size:"small",variant:"text",startIcon:(0,d.jsx)(C.A,{fontSize:"small"}),sx:{ml:1.5,textTransform:"none"},onClick:a=>{a.stopPropagation(),aT(!0)},children:["Configure roots",aU&&aU.length?` (${aU.length})`:""]})})]})}),("filesystem"===a||"bash"===a)&&(0,d.jsx)(ae,{open:aS,serverName:a,initialRoots:aU,onClose:()=>aT(!1),onSaved:a=>aV(a)}),!aA&&!W&&(0,d.jsxs)(am.A,{sx:{justifyContent:"space-between",px:2,py:1},children:[(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center"},children:[(0,d.jsx)(al.A,{checked:E,onClick:a=>a.stopPropagation(),onChange:b=>{an.debug(`Server ${a} toggle changed to: ${b.target.checked}`),G(b.target.checked)},color:"primary",size:"small"}),(0,d.jsx)(P.default,{variant:"body2",sx:{ml:.5,fontWeight:500,color:E?"primary.main":"text.secondary"},children:E?"Enabled":"Disabled"}),E&&(0,d.jsx)(ai.A,{title:"Restart server",children:(0,d.jsx)(ab.A,{size:"small",onClick:b=>{b.stopPropagation(),an.debug(`Restart button clicked for server: ${a}`),ba()},sx:{ml:1},children:(0,d.jsx)(k.A,{fontSize:"small"})})})]}),(0,d.jsxs)(O.default,{children:[(0,d.jsx)(ai.A,{title:"Retry connection",children:(0,d.jsx)(ab.A,{color:"primary",onClick:c=>{c.stopPropagation(),an.debug(`Retry button clicked for server: ${a}`),a4&&clearTimeout(a4),aP(!0),H();let d=setTimeout(()=>{"connecting"!==b&&"initialization"!==b&&aP(!1),a5(null)},1e4);a5(d)},disabled:aO,size:"small",children:aO?(0,d.jsx)(y.default,{size:"small",color:"primary"}):(0,d.jsx)(k.A,{})})}),"streamable"===F&&ao&&(0,d.jsx)(ai.A,{title:"Reset OAuth tokens",children:(0,d.jsx)(ab.A,{color:"warning",onClick:a6,disabled:aQ,size:"small",children:aQ?(0,d.jsx)(y.default,{size:"small",color:"primary"}):(0,d.jsx)(p.A,{})})}),ax&&(0,d.jsx)(ai.A,{title:av?`Folder: ${av}`:"Move to folder",children:(0,d.jsx)(ab.A,{color:av?"primary":"default",onClick:a=>{a.stopPropagation(),aF(a.currentTarget)},size:"small",children:(0,d.jsx)(u.A,{})})}),(0,d.jsx)(ai.A,{title:"Edit server",children:(0,d.jsx)(ab.A,{color:"primary",onClick:a=>{a.stopPropagation(),U()},size:"small",children:(0,d.jsx)(l.A,{})})}),(0,d.jsx)(ai.A,{title:"Delete server",children:(0,d.jsx)(ab.A,{color:"error",onClick:a=>{a.stopPropagation(),R()},size:"small",children:(0,d.jsx)(m.A,{})})})]})]}),ax&&(0,d.jsx)(z.A,{anchorEl:aE,open:!!aE,currentFolder:av,folders:aw,onClose:()=>aF(null),onAssign:a=>ax(a)}),(0,d.jsxs)(J.A,{open:aC,onClose:()=>{an.debug(`Error modal closed for server: ${a}`),aD(!1)},maxWidth:"md",fullWidth:!0,onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)(K.A,{component:"div",children:["Error Details for ",a]}),(0,d.jsxs)(L.A,{children:[(0,d.jsx)(O.default,{sx:{p:2,borderRadius:1,bgcolor:a=>a8("error.background"),color:a=>a8("error.text"),border:"1px solid",borderColor:a=>a8("error.border"),fontFamily:"monospace",fontSize:"0.875rem",fontWeight:500,whiteSpace:"pre-wrap",overflow:"auto",maxHeight:"300px",mb:2},children:X||"Unknown error"}),Z&&(0,d.jsxs)(O.default,{sx:{mt:2},children:[(0,d.jsx)(P.default,{variant:"h6",gutterBottom:!0,children:"Stderr Output:"}),(0,d.jsx)(O.default,{sx:{p:2,borderRadius:1,bgcolor:"background.paper",border:"1px solid",borderColor:"divider",fontFamily:"monospace",fontSize:"0.875rem",whiteSpace:"pre-wrap",overflow:"auto",maxHeight:"300px"},children:Z})]})]}),(0,d.jsxs)(M.A,{children:[(0,d.jsx)(N.A,{onClick:()=>aD(!1),children:"Close"}),(0,d.jsx)(N.A,{onClick:()=>{let b=[X||"Unknown error",Z?`
3
+
4
+ Stderr Output:
5
+ ${Z}`:""].join("");navigator.clipboard.writeText(b),an.debug(`Error copied to clipboard for server: ${a}`),aL("Error message copied to clipboard"),aN("success"),aJ(!0)},color:"primary",children:"Copy to Clipboard"})]})]}),ar&&(0,d.jsx)(_,{open:aG,onClose:()=>aH(!1),serverName:a,rootPath:f,installCommand:as,buildCommand:at,enabled:E,updateInfo:ar,onToggle:G,onUpdated:au}),(0,d.jsx)(af.A,{open:aI,autoHideDuration:3e3,onClose:()=>aJ(!1),anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,d.jsx)(Q.A,{onClose:()=>aJ(!1),severity:aM,sx:{width:"100%"},children:aK||"Error message copied to clipboard"})})]})}},44920:(a,b,c)=>{function d(a){let b={};if(!a)return b;for(let[c,d]of Object.entries(a))b[c]=d&&"object"==typeof d&&"value"in d?d.value:"string"==typeof d?d:"";return b}function e(a){let b,c=[],d=[];if("string"==typeof a)try{b=JSON.parse(a)}catch(a){return{servers:d,errors:[`Invalid JSON: ${a.message}`]}}else b=a;if(!b||"object"!=typeof b)return{servers:d,errors:["Expected a JSON object."]};let e=b,f=e.mcpServers&&"object"==typeof e.mcpServers?e.mcpServers:e;if(0===Object.keys(f).length)return{servers:d,errors:['No servers found. Expected an "mcpServers" object.']};for(let[a,b]of Object.entries(f)){if(!b||"object"!=typeof b){c.push(`"${a}": entry is not an object.`);continue}let e=function(a){let b=(a.transport||a.type||"").toString().toLowerCase().trim();if(!b)return"stdio";switch(b){case"stdio":return"stdio";case"http":case"streamable-http":case"streamable":case"streamablehttp":return"streamable";case"sse":return"sse";case"ws":case"websocket":return"websocket";default:return null}}(b);if(!e){c.push(`"${a}": unknown transport type "${b.type||b.transport}".`);continue}let f={};if(b.env&&"object"==typeof b.env)for(let[a,c]of Object.entries(b.env))f[a]="string"==typeof c?c:String(c??"");let g={name:a,env:f,disabled:b.disabled??!1,autoApprove:Array.isArray(b.autoApprove)?b.autoApprove:[],rootPath:"",_buildCommand:"",_installCommand:""};if("stdio"===e){if(!b.command||"string"!=typeof b.command){c.push(`"${a}": stdio server is missing a "command".`);continue}d.push({...g,transport:"stdio",command:b.command,args:Array.isArray(b.args)?b.args:[]})}else if("websocket"===e){let e=b.url||b.websocketUrl;if(!e){c.push(`"${a}": websocket server is missing a "url".`);continue}d.push({...g,transport:"websocket",websocketUrl:e})}else{let f=b.url||b.serverUrl;if(!f){c.push(`"${a}": ${e} server is missing a "url".`);continue}let h=b.headers&&"object"==typeof b.headers?b.headers:void 0;d.push({...g,transport:e,serverUrl:f,...h?{headers:h}:{}})}}return{servers:d,errors:c}}c.d(b,{_i:()=>f,CZ:()=>h,Kt:()=>g});let f=[{id:"claude",label:"Claude",fileName:"mcp_config.json",export:function(a,b={}){let c=(b.proxyBaseUrl||"").replace(/\/$/,""),e={};for(let b of a){if(b.exposeAsMcpServer){e[b.name]={type:"http",url:`${c}/mcp-proxy/${b.name}`};continue}let a={},f=d(b.env);switch(b.transport){case"stdio":a.command=b.command,a.args=b.args||[],Object.keys(f).length>0&&(a.env=f);break;case"streamable":a.type="http",a.url=b.serverUrl,b.headers&&Object.keys(b.headers).length>0&&(a.headers=d(b.headers)),Object.keys(f).length>0&&(a.env=f);break;case"sse":a.type="sse",a.url=b.serverUrl,b.headers&&Object.keys(b.headers).length>0&&(a.headers=d(b.headers)),Object.keys(f).length>0&&(a.env=f);break;case"websocket":a.type="ws",a.url=b.websocketUrl,Object.keys(f).length>0&&(a.env=f);break;default:Object.keys(f).length>0&&(a.env=f)}e[b.name]=a}return{mcpServers:e}},import:e},{id:"cline",label:"Cline",fileName:"cline_mcp_settings.json",export:function(a,b={}){let c=(b.proxyBaseUrl||"").replace(/\/$/,""),e={};for(let b of a){let a={disabled:b.disabled??!1,autoApprove:b.autoApprove??[],timeout:60};if(b.exposeAsMcpServer){e[b.name]={...a,type:"streamableHttp",url:`${c}/mcp-proxy/${b.name}`};continue}let f=d(b.env),g={...a};switch(b.transport){case"stdio":g.command=b.command,g.args=b.args||[],Object.keys(f).length>0&&(g.env=f);break;case"streamable":g.type="streamableHttp",g.url=b.serverUrl,b.headers&&Object.keys(b.headers).length>0&&(g.headers=d(b.headers));break;case"sse":g.type="sse",g.url=b.serverUrl,b.headers&&Object.keys(b.headers).length>0&&(g.headers=d(b.headers));break;case"websocket":g.type="ws",g.url=b.websocketUrl;break;default:Object.keys(f).length>0&&(g.env=f)}e[b.name]=g}return{mcpServers:e}},import:function(a){return e(a)}}];function g(a){return f.find(b=>b.id===a)??f[0]}function h(a,b,c,d="claude"){let e=(c||"").replace(/\/$/,"");return JSON.stringify(b?g(d).export([b],{proxyBaseUrl:e}):{mcpServers:{[a]:{type:"http",url:`${e}/mcp-proxy/${a}`}}},null,2)}},48748:(a,b,c)=>{c.d(b,{Ic:()=>h});var d=c(32631),e=c(19815);let f={light:{background:"#FFFFFF",foreground:"#2C3E50",surface:"#F5F6FA",surfaceRaised:"#FFFFFF",paperBackground:"#F5F6FA",textSecondary:"#7F8C8D",textDisabled:"#9CA3AF",border:"#e5e7eb",heading:"#111",text:"#333",secondaryText:"#666",error:{background:"#fef2f2",border:"#fecaca",text:"#dc2626"},domain:{resource:"#009688",resourceSoft:"#4DB6AC",signal:"#7E57C2",startNode:"#795548",codeBackground:"#f5f5f5",http:{get:"#2e7d32",post:"#1565c0",put:"#e65100",patch:"#6a1b9a",delete:"#c62828"},transport:{stdio:{fg:"#1976d2",bg:"#e3f2fd"},websocket:{fg:"#2e7d32",bg:"#e8f5e8"},sse:{fg:"#f57c00",bg:"#fff3e0"},streamable:{fg:"#00796b",bg:"#e0f2f1"},default:{fg:"#757575",bg:"#f5f5f5"}}}},dark:{background:"#0f1319",foreground:"#eef1f5",surface:"#1a212b",surfaceRaised:"#242d3a",paperBackground:"#1a212b",textSecondary:"#b4bdca",textDisabled:"#6b7280",border:"#37404e",heading:"#f5f7fa",text:"#eef1f5",secondaryText:"#b4bdca",error:{background:"#2a1618",border:"#5a2a2e",text:"#ff6b6b"},domain:{resource:"#26a69a",resourceSoft:"#4DB6AC",signal:"#9575CD",startNode:"#a1887f",codeBackground:"#242d3a",http:{get:"#66bb6a",post:"#5b9dff",put:"#ffa726",patch:"#ba68c8",delete:"#ef5350"},transport:{stdio:{fg:"#90caf9",bg:"#1e2a3a"},websocket:{fg:"#a5d6a7",bg:"#1e2e22"},sse:{fg:"#ffcc80",bg:"#33281a"},streamable:{fg:"#80cbc4",bg:"#17322e"},default:{fg:"#b4bdca",bg:"#242d3a"}}}}},g=(0,e.h)("frontend/utils/theme");function h(){let{isDarkMode:a}=(0,d.D)();return g.debug(`useThemeUtils called with isDarkMode: ${a}`),{getThemeValue:(b,c)=>a?c:b,getThemeColor:b=>{let c=b.split("."),d=f[a?"dark":"light"];for(let a of c)if(!d||"object"!=typeof d||!(a in d))return g.warn(`Theme color path not found: ${b}`),"";else d=d[a];return d},colors:a?f.dark:f.light,isDarkMode:a}}},53455:(a,b,c)=>{c.d(b,{Fu:()=>i,M8:()=>f,Qv:()=>g,Qz:()=>h});let d=(0,c(19815).h)("frontend/components/mcp/MCPServerManager/utils/serverUpdates"),e=new Map;async function f(a,b=!1){let c=Date.now(),g={},h=[];for(let d of new Set(a.filter(Boolean))){let a=e.get(d);!b&&a&&c-a.at<6e5?g[d]=a.info:h.push(d)}if(h.length>0)try{let a=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"checkUpdatesBatch",paths:h})}),b=await a.json();if(a.ok&&b.results)for(let[a,d]of Object.entries(b.results))e.set(a,{at:c,info:d}),g[a]=d;else d.warn("Batch update check failed",b.error)}catch(a){d.warn("Batch update check request failed",a)}return g}async function g(a){try{let b=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"pullUpdates",savePath:a})}),c=await b.json();if(!b.ok)return{success:!1,error:c.error||"Failed to pull updates"};return{success:!0,oldSha:c.oldSha,newSha:c.newSha,updated:c.updated}}catch(a){return{success:!1,error:a.message||"Failed to pull updates"}}}async function h(a,b,c){let e=a.match(/github\.com[:/]([^/]+)\/([^/]+?)(?:\.git)?\/?$/i);if(!e)return null;try{let a=await fetch(`https://api.github.com/repos/${e[1]}/${e[2]}/compare/${b}...${c}`);if(!a.ok)return null;let d=await a.json(),f=Array.isArray(d.commits)?d.commits:[];return{behindBy:"number"==typeof d.total_commits?d.total_commits:null,commits:f.slice(-10).reverse().map(a=>({sha:(a.sha||"").slice(0,7),message:(a.commit?.message||"").split("\n")[0]}))}}catch(a){return d.debug("GitHub compare preview failed (non-fatal)",a),null}}function i(a){return a?a.slice(0,7):""}}};
@@ -1 +1 @@
1
- "use strict";exports.id=6537,exports.ids=[6537,6793],exports.modules={28001:(a,b,c)=>{c.d(b,{internalListResourceTemplates:()=>k,internalListResources:()=>j,internalReadResource:()=>l});var d=c(50846),e=c(2826),f=c(61539),g=c(14214),h=c(81495);let i=(0,d.h)("backend/services/mcp/internalResources");async function j(){try{return{resources:(await (0,f.yP)(200)).map(a=>({uri:a.uri,name:a.name??`${a.kind}-${a.id.slice(0,8)}`,mimeType:a.mimeType,description:function(a){let b=a.producedBy;switch(b.source){case"tool-result":return`Tool result of ${b.server??"?"}/${b.toolName??"?"}${b.nodeId?` (node ${b.nodeId})`:""}`;case"capture":return`Captured output of node ${b.nodeName??b.nodeId??"?"}`;case"mcp-link":return`Resource link from ${b.server??"?"}/${b.toolName??"?"}`;default:return"Run resource"}}(a),size:a.size}))}}catch(a){return i.error("internalListResources failed",a),{resources:[],error:a instanceof Error?a.message:String(a)}}}function k(){return{resourceTemplates:[{uriTemplate:`${e.j}{conversationId}/{resourceId}`,name:"Run-scoped resource",description:"A data artifact captured during a flow run (tool result, node output). List concrete URIs via resources/list."}]}}async function l(a){let b=(0,f.Ns)(a);if(!b)return{success:!1,error:`Not a run-resource URI: ${a}`,statusCode:400};try{let c=await (0,f.gy)(a,{at:Date.now(),source:"mcp-read"});if(!c)return{success:!1,error:`Run resource not found: ${a}`,statusCode:404};try{g.$.emitterFor(b.conversationId)({type:"resource:read",server:h._,uri:a,name:c.entry.name,mimeType:c.entry.mimeType,size:c.entry.size,source:"mcp-read"})}catch{}return{success:!0,data:c.contents}}catch(b){return i.error(`internalReadResource failed for ${a}`,b),{success:!1,error:b instanceof Error?b.message:String(b),statusCode:500}}}},56793:(a,b,c)=>{c.d(b,{eh:()=>g,ru:()=>e});let d=(0,c(50846).h)("backend/services/scheduler/flowRunEventBus");function e(a){return"signal"===a.kind}class f{publish(a){if(0===this.listeners.size)return;let b=e(a)?`signal topic=${a.topic} emitter=${a.emitterFlowId}`:`flow=${a.flowId} status=${a.status}`;for(let c of(d.debug(`Publishing flow event: ${b} firedBy=${a.firedBy} depth=${a.chainDepth} listeners=${this.listeners.size}`),[...this.listeners]))try{c(a)}catch(a){d.warn("A flow-run event listener threw:",a)}}subscribe(a){return this.listeners.add(a),()=>{this.listeners.delete(a)}}get listenerCount(){return this.listeners.size}constructor(){this.listeners=new Set}}function g(){return global.__flujo_flow_run_event_bus||(global.__flujo_flow_run_event_bus=new f),global.__flujo_flow_run_event_bus}}};
1
+ "use strict";exports.id=6537,exports.ids=[6537],exports.modules={28001:(a,b,c)=>{c.d(b,{internalListResourceTemplates:()=>k,internalListResources:()=>j,internalReadResource:()=>l});var d=c(50846),e=c(2826),f=c(61539),g=c(14214),h=c(81495);let i=(0,d.h)("backend/services/mcp/internalResources");async function j(){try{return{resources:(await (0,f.yP)(200)).map(a=>({uri:a.uri,name:a.name??`${a.kind}-${a.id.slice(0,8)}`,mimeType:a.mimeType,description:function(a){let b=a.producedBy;switch(b.source){case"tool-result":return`Tool result of ${b.server??"?"}/${b.toolName??"?"}${b.nodeId?` (node ${b.nodeId})`:""}`;case"capture":return`Captured output of node ${b.nodeName??b.nodeId??"?"}`;case"mcp-link":return`Resource link from ${b.server??"?"}/${b.toolName??"?"}`;default:return"Run resource"}}(a),size:a.size}))}}catch(a){return i.error("internalListResources failed",a),{resources:[],error:a instanceof Error?a.message:String(a)}}}function k(){return{resourceTemplates:[{uriTemplate:`${e.j}{conversationId}/{resourceId}`,name:"Run-scoped resource",description:"A data artifact captured during a flow run (tool result, node output). List concrete URIs via resources/list."}]}}async function l(a){let b=(0,f.Ns)(a);if(!b)return{success:!1,error:`Not a run-resource URI: ${a}`,statusCode:400};try{let c=await (0,f.gy)(a,{at:Date.now(),source:"mcp-read"});if(!c)return{success:!1,error:`Run resource not found: ${a}`,statusCode:404};try{g.$.emitterFor(b.conversationId)({type:"resource:read",server:h._,uri:a,name:c.entry.name,mimeType:c.entry.mimeType,size:c.entry.size,source:"mcp-read"})}catch{}return{success:!0,data:c.contents}}catch(b){return i.error(`internalReadResource failed for ${a}`,b),{success:!1,error:b instanceof Error?b.message:String(b),statusCode:500}}}},56793:(a,b,c)=>{c.d(b,{eh:()=>g,ru:()=>e});let d=(0,c(50846).h)("backend/services/scheduler/flowRunEventBus");function e(a){return"signal"===a.kind}class f{publish(a){if(0===this.listeners.size)return;let b=e(a)?`signal topic=${a.topic} emitter=${a.emitterFlowId}`:`flow=${a.flowId} status=${a.status}`;for(let c of(d.debug(`Publishing flow event: ${b} firedBy=${a.firedBy} depth=${a.chainDepth} listeners=${this.listeners.size}`),[...this.listeners]))try{c(a)}catch(a){d.warn("A flow-run event listener threw:",a)}}subscribe(a){return this.listeners.add(a),()=>{this.listeners.delete(a)}}get listenerCount(){return this.listeners.size}constructor(){this.listeners=new Set}}function g(){return global.__flujo_flow_run_event_bus||(global.__flujo_flow_run_event_bus=new f),global.__flujo_flow_run_event_bus}}};
@@ -1 +1 @@
1
- "use strict";exports.id=6826,exports.ids=[6826],exports.modules={8665:(a,b,c)=>{c.d(b,{ED:()=>i,Ws:()=>j,jD:()=>g});var d=c(73496),e=c.n(d);let f=(0,c(50846).h)("backend/utils/registryClient"),g="https://registry.modelcontextprotocol.io";async function h(a,b){let c=new AbortController,d=setTimeout(()=>c.abort(),b);try{let b=await fetch(a,{headers:{Accept:"application/json"},signal:c.signal,cache:"no-store"});return{status:b.status,body:await b.text()}}finally{clearTimeout(d)}}async function i(a,b){try{return await new Promise((c,d)=>{let f=e().connect(a.origin),g=!1,h=a=>{g||(g=!0,a(),f.close())};f.setTimeout(b,()=>h(()=>d(Error(`HTTP/2 session timed out after ${b}ms`)))),f.on("error",a=>h(()=>d(a)));let i=f.request({":method":"GET",":path":a.pathname+a.search,accept:"application/json"});i.setTimeout(b,()=>h(()=>d(Error(`HTTP/2 request timed out after ${b}ms`)))),i.on("error",a=>h(()=>d(a)));let j=0,k="";i.setEncoding("utf8"),i.on("response",a=>{j=Number(a[":status"]||0)}),i.on("data",a=>{k+=a}),i.on("end",()=>h(()=>c({status:j,body:k}))),i.end()})}catch(c){return f.warn("HTTP/2 request to registry failed, retrying over HTTP/1.1",c instanceof Error?c.message:c),await h(a,b)}}async function j(a,b){let c=await i(a,b);if(c.status<200||c.status>=300)throw Error(`MCP Registry responded with status ${c.status}`);return JSON.parse(c.body)}},25250:(a,b,c)=>{c.d(b,{AH:()=>f,O$:()=>p,XQ:()=>q,Yr:()=>m,cy:()=>s,jg:()=>t,nO:()=>n,vf:()=>o,zz:()=>r});let d={npm:"npx",pypi:"uvx",oci:"docker",nuget:"dnx"},e={npm:"npm",pypi:"PyPI",oci:"Docker",nuget:"NuGet",mcpb:"MCPB",cargo:"Cargo"};function f(a){var b;let c=[];for(let f of a.packages??[])(function(a){if(!a.identifier||!d[a.registryType]&&!a.runtimeHint)return!1;let b=a.transport?.type;return!b||"stdio"===b})(f)&&c.push({kind:"package",label:`${e[b=f.registryType]||b}: ${f.identifier}`,pkg:f});for(let b of a.remotes??[])b.url&&("streamable-http"===b.type||"sse"===b.type)&&c.push({kind:"remote",label:`Remote (${"sse"===b.type?"SSE":"Streamable HTTP"}): ${b.url}`,remote:b});return c}let g=new Set(["mcp","server","mcp-server","mcpserver"]);function h(a){return(function(a){let b=a.indexOf("/"),c=b>=0?a.slice(0,b):"",d=b>=0?a.slice(b+1):a;if(!g.has(d.toLowerCase())||!c)return d;let e=c.split(".").pop()||"";return e?`${e}-${d}`:d})(a).replace(/[^a-zA-Z0-9_-]+/g,"-").replace(/^-+|-+$/g,"")||"mcp-server"}function i(a){let b=a.value??a.default;return"named"===a.type?a.name?void 0!==b&&""!==b?[a.name,b]:a.isRequired&&a.valueHint?[a.name,`<${a.valueHint}>`]:a.isRequired?[a.name]:[]:[]:void 0!==b&&""!==b?[b]:a.isRequired?[`<${a.valueHint||"value"}>`]:[]}function j(a){return(a??[]).flatMap(i)}function k(a){return{name:h(a.name),disabled:!1,autoApprove:[],env:{},_buildCommand:"",_installCommand:""}}function l(a){return a.version?`${a.identifier}@${a.version}`:a.identifier}function m(a,b){return"package"===b.kind?function(a,b){let c,e=b.runtimeHint||d[b.registryType],f=j(b.packageArguments),g=j(b.runtimeArguments),h=function(a){let b={};for(let c of a??[]){if(!c.name)continue;let a=c.value??c.default??"";b[c.name]=c.isSecret?{value:a,metadata:{isSecret:!0}}:a}return b}(b.environmentVariables);switch(b.registryType){case"npm":c=[...g,"-y",l(b),...f];break;case"pypi":c=[...g,b.version?`${b.identifier}==${b.version}`:b.identifier,...f];break;case"oci":{let a=Object.keys(h).flatMap(a=>["-e",a]);c=[..."run"===g[0]?[]:["run","-i","--rm"],...g,...a,function(a){let b=a.identifier.split("/").pop()||a.identifier;return!(b.includes(":")||b.includes("@"))&&a.version?`${a.identifier}:${a.version}`:a.identifier}(b),...f];break}case"nuget":c=[...g,l(b),"--yes",...f];break;default:c=[...g,l(b),...f]}return{...k(a),transport:"stdio",command:e,args:c,env:h,rootPath:"."}}(a,b.pkg):function(a,b){let c={};for(let a of b.headers??[])a.name&&(c[a.name]=a.value??a.default??"");let d=k(a);return{...d,transport:"sse"===b.type?"sse":"streamable",serverUrl:b.url,headers:c,rootPath:`mcp-servers/${d.name}`}}(a,b.remote)}function n(a){return"active"===a}function o(a){let b=a?._meta?.["io.modelcontextprotocol.registry/official"]?.status;return"string"==typeof b&&b.length>0?b:"unverified"}function p(a,b,c,d){let e=m(b,c),f=e.transport??"stdio";return{registryName:a,resolvedName:b.name,serverName:e.name??h(b.name),transport:f,...e.command?{command:e.command}:{},...Array.isArray(e.args)?{args:e.args}:{},...e.serverUrl?{serverUrl:e.serverUrl}:{},requiredEnvNames:"package"===c.kind?(c.pkg.environmentVariables??[]).filter(a=>a.isRequired&&a.name).map(a=>a.name):(c.remote.headers??[]).filter(a=>a.isRequired&&a.name).map(a=>a.name),verificationStatus:d}}function q(a){let b;try{b=new URL(a)}catch{return null}let c=b.searchParams.get("q");if(c)return`/v0.1/servers?search=${encodeURIComponent(c)}&version=latest&limit=1`;if(/^\/v[\d.]+\/servers\/[^/]+\/versions\/[^/]+$/.test(b.pathname))return b.pathname;let d=b.pathname.match(/^\/v[\d.]+\/servers\/([^/]+)(?:\/versions)?\/?$/);if(d){let a=decodeURIComponent(d[1]);return`/v0.1/servers?search=${encodeURIComponent(a)}&version=latest&limit=1`}return null}function r(a){return a?.servers&&a.servers.length>0?a.servers[0]:a?.server?.name?a:null}function s(a,b){if(!b||0===Object.keys(b).length)return a;let c={...a.env??{}};for(let[a,d]of Object.entries(b)){let b=c[a];b&&"object"==typeof b&&b.metadata?.isSecret?c[a]={value:d,metadata:{isSecret:!0}}:c[a]=d}return{...a,env:c}}function t(a,b){return"package"===a.kind?(a.pkg.environmentVariables??[]).filter(a=>a.isRequired&&!(a.value??a.default)&&!b?.[a.name]).map(a=>a.name):(a.remote.headers??[]).filter(a=>a.isRequired&&!(a.value??a.default)).map(a=>a.name)}}};
1
+ "use strict";exports.id=6826,exports.ids=[6826],exports.modules={8665:(a,b,c)=>{c.d(b,{ED:()=>i,Ws:()=>j,jD:()=>g});var d=c(73496),e=c.n(d);let f=(0,c(50846).h)("backend/utils/registryClient"),g="https://registry.modelcontextprotocol.io";async function h(a,b){let c=new AbortController,d=setTimeout(()=>c.abort(),b);try{let b=await fetch(a,{headers:{Accept:"application/json"},signal:c.signal,cache:"no-store"});return{status:b.status,body:await b.text()}}finally{clearTimeout(d)}}async function i(a,b){try{return await new Promise((c,d)=>{let f=e().connect(a.origin),g=!1,h=a=>{g||(g=!0,a(),f.close())};f.setTimeout(b,()=>h(()=>d(Error(`HTTP/2 session timed out after ${b}ms`)))),f.on("error",a=>h(()=>d(a)));let i=f.request({":method":"GET",":path":a.pathname+a.search,accept:"application/json"});i.setTimeout(b,()=>h(()=>d(Error(`HTTP/2 request timed out after ${b}ms`)))),i.on("error",a=>h(()=>d(a)));let j=0,k="";i.setEncoding("utf8"),i.on("response",a=>{j=Number(a[":status"]||0)}),i.on("data",a=>{k+=a}),i.on("end",()=>h(()=>c({status:j,body:k}))),i.end()})}catch(c){return f.warn("HTTP/2 request to registry failed, retrying over HTTP/1.1",c instanceof Error?c.message:c),await h(a,b)}}async function j(a,b){let c=await i(a,b);if(c.status<200||c.status>=300)throw Error(`MCP Registry responded with status ${c.status}`);return JSON.parse(c.body)}},25250:(a,b,c)=>{c.d(b,{AH:()=>f,O$:()=>p,XQ:()=>q,Yr:()=>m,cy:()=>s,jg:()=>t,nO:()=>n,vf:()=>o,zz:()=>r});let d={npm:"npx",pypi:"uvx",oci:"docker",nuget:"dnx"},e={npm:"npm",pypi:"PyPI",oci:"Docker",nuget:"NuGet",mcpb:"MCPB",cargo:"Cargo"};function f(a){var b;let c=[];for(let f of a.packages??[])(function(a){if(!a.identifier||!d[a.registryType]&&!a.runtimeHint)return!1;let b=a.transport?.type;return!b||"stdio"===b})(f)&&c.push({kind:"package",label:`${e[b=f.registryType]||b}: ${f.identifier}`,pkg:f});for(let b of a.remotes??[])b.url&&("streamable-http"===b.type||"sse"===b.type)&&c.push({kind:"remote",label:`Remote (${"sse"===b.type?"SSE":"Streamable HTTP"}): ${b.url}`,remote:b});return c}let g=new Set(["mcp","server","mcp-server","mcpserver"]);function h(a){return(function(a){let b=a.indexOf("/"),c=b>=0?a.slice(0,b):"",d=b>=0?a.slice(b+1):a;if(!g.has(d.toLowerCase())||!c)return d;let e=c.split(".").pop()||"";return e?`${e}-${d}`:d})(a).replace(/[^a-zA-Z0-9_-]+/g,"-").replace(/^-+|-+$/g,"")||"mcp-server"}function i(a){let b=a.value??a.default;return"named"===a.type?a.name?void 0!==b&&""!==b?[a.name,b]:a.isRequired&&a.valueHint?[a.name,`<${a.valueHint}>`]:a.isRequired?[a.name]:[]:[]:void 0!==b&&""!==b?[b]:a.isRequired?[`<${a.valueHint||"value"}>`]:[]}function j(a){return(a??[]).flatMap(i)}function k(a){return{name:h(a.name),disabled:!1,autoApprove:[],env:{},_buildCommand:"",_installCommand:""}}function l(a){return a.version?`${a.identifier}@${a.version}`:a.identifier}function m(a,b){let c="package"===b.kind?function(a,b){let c,e=b.runtimeHint||d[b.registryType],f=j(b.packageArguments),g=j(b.runtimeArguments),h=function(a){let b={};for(let c of a??[]){if(!c.name)continue;let a=c.value??c.default??"";b[c.name]=c.isSecret?{value:a,metadata:{isSecret:!0}}:a}return b}(b.environmentVariables);switch(b.registryType){case"npm":c=[...g,"-y",l(b),...f];break;case"pypi":c=[...g,b.version?`${b.identifier}==${b.version}`:b.identifier,...f];break;case"oci":{let a=Object.keys(h).flatMap(a=>["-e",a]);c=[..."run"===g[0]?[]:["run","-i","--rm"],...g,...a,function(a){let b=a.identifier.split("/").pop()||a.identifier;return!(b.includes(":")||b.includes("@"))&&a.version?`${a.identifier}:${a.version}`:a.identifier}(b),...f];break}case"nuget":c=[...g,l(b),"--yes",...f];break;default:c=[...g,l(b),...f]}return{...k(a),transport:"stdio",command:e,args:c,env:h,rootPath:"."}}(a,b.pkg):function(a,b){let c={};for(let a of b.headers??[])a.name&&(c[a.name]=a.value??a.default??"");let d=k(a);return{...d,transport:"sse"===b.type?"sse":"streamable",serverUrl:b.url,headers:c,rootPath:`mcp-servers/${d.name}`}}(a,b.remote),e="package"===b.kind?b.pkg.version??a.version:a.version,f={type:"registry",registryName:a.name,...e?{version:e}:{}};return{...c,source:f}}function n(a){return"active"===a}function o(a){let b=a?._meta?.["io.modelcontextprotocol.registry/official"]?.status;return"string"==typeof b&&b.length>0?b:"unverified"}function p(a,b,c,d){let e=m(b,c),f=e.transport??"stdio";return{registryName:a,resolvedName:b.name,serverName:e.name??h(b.name),transport:f,...e.command?{command:e.command}:{},...Array.isArray(e.args)?{args:e.args}:{},...e.serverUrl?{serverUrl:e.serverUrl}:{},requiredEnvNames:"package"===c.kind?(c.pkg.environmentVariables??[]).filter(a=>a.isRequired&&a.name).map(a=>a.name):(c.remote.headers??[]).filter(a=>a.isRequired&&a.name).map(a=>a.name),verificationStatus:d}}function q(a){let b;try{b=new URL(a)}catch{return null}let c=b.searchParams.get("q");if(c)return`/v0.1/servers?search=${encodeURIComponent(c)}&version=latest&limit=1`;if(/^\/v[\d.]+\/servers\/[^/]+\/versions\/[^/]+$/.test(b.pathname))return b.pathname;let d=b.pathname.match(/^\/v[\d.]+\/servers\/([^/]+)(?:\/versions)?\/?$/);if(d){let a=decodeURIComponent(d[1]);return`/v0.1/servers?search=${encodeURIComponent(a)}&version=latest&limit=1`}return null}function r(a){return a?.servers&&a.servers.length>0?a.servers[0]:a?.server?.name?a:null}function s(a,b){if(!b||0===Object.keys(b).length)return a;let c={...a.env??{}};for(let[a,d]of Object.entries(b)){let b=c[a];b&&"object"==typeof b&&b.metadata?.isSecret?c[a]={value:d,metadata:{isSecret:!0}}:c[a]=d}return{...a,env:c}}function t(a,b){return"package"===a.kind?(a.pkg.environmentVariables??[]).filter(a=>a.isRequired&&!(a.value??a.default)&&!b?.[a.name]).map(a=>a.name):(a.remote.headers??[]).filter(a=>a.isRequired&&!(a.value??a.default)).map(a=>a.name)}}};