flujo-ai 3.21.0 → 3.22.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 (522) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +267 -225
  3. package/.next/app-path-routes-manifest.json +9 -6
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +36 -12
  6. package/.next/react-loadable-manifest.json +10 -8
  7. package/.next/routes-manifest.json +6 -0
  8. package/.next/server/app/_not-found/page.js +2 -2
  9. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  10. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/_not-found.html +1 -1
  12. package/.next/server/app/_not-found.rsc +5 -3
  13. package/.next/server/app/api/approvals/[id]/route.js +1 -1
  14. package/.next/server/app/api/approvals/[id]/route.js.nft.json +1 -1
  15. package/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/approvals/route.js +2 -2
  17. package/.next/server/app/api/approvals/route.js.nft.json +1 -1
  18. package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/backup/route.js +1 -1
  20. package/.next/server/app/api/backup/route.js.nft.json +1 -1
  21. package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/browse/route.js +1 -1
  23. package/.next/server/app/api/browse/route.js.nft.json +1 -1
  24. package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/bugs/enhance/route.js +14 -0
  26. package/.next/server/app/api/bugs/enhance/route.js.nft.json +1 -0
  27. package/.next/server/app/api/bugs/enhance/route_client-reference-manifest.js +1 -0
  28. package/.next/server/app/api/cwd/route.js +1 -1
  29. package/.next/server/app/api/cwd/route.js.nft.json +1 -1
  30. package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/encryption/secure/route.js +1 -1
  32. package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
  33. package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/env/route.js +1 -1
  35. package/.next/server/app/api/env/route.js.nft.json +1 -1
  36. package/.next/server/app/api/env/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/flow/[id]/route.js +1 -1
  38. package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
  39. package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/flow/compile/route.js +1 -1
  41. package/.next/server/app/api/flow/compile/route.js.nft.json +1 -1
  42. package/.next/server/app/api/flow/compile/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/flow/generate/route.js +1 -1
  44. package/.next/server/app/api/flow/generate/route.js.nft.json +1 -1
  45. package/.next/server/app/api/flow/generate/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/flow/improve/route.js +1 -1
  47. package/.next/server/app/api/flow/improve/route.js.nft.json +1 -1
  48. package/.next/server/app/api/flow/improve/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/flow/prompt-renderer/route.js +1 -1
  50. package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
  51. package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/flow/quick-chat/route.js +1 -1
  53. package/.next/server/app/api/flow/quick-chat/route.js.nft.json +1 -1
  54. package/.next/server/app/api/flow/quick-chat/route_client-reference-manifest.js +1 -1
  55. package/.next/server/app/api/flow/repair/route.js +1 -1
  56. package/.next/server/app/api/flow/repair/route.js.nft.json +1 -1
  57. package/.next/server/app/api/flow/repair/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/flow/route.js +1 -1
  59. package/.next/server/app/api/flow/route.js.nft.json +1 -1
  60. package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/git/route.js +6 -4
  62. package/.next/server/app/api/git/route.js.nft.json +1 -1
  63. package/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/init/route.js +1 -1
  65. package/.next/server/app/api/init/route.js.nft.json +1 -1
  66. package/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/local-models/capability/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/local-models/pull/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/local-models/suggest/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/mcp/cancel/route.js +2 -2
  71. package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
  72. package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -1
  74. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
  75. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -1
  77. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
  78. package/.next/server/app/api/mcp/servers/[name]/prompts/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -1
  80. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
  81. package/.next/server/app/api/mcp/servers/[name]/resources/read/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -1
  83. package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
  84. package/.next/server/app/api/mcp/servers/[name]/resources/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
  86. package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
  87. package/.next/server/app/api/mcp/servers/[name]/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -1
  89. package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
  90. package/.next/server/app/api/mcp/servers/[name]/status/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -1
  92. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
  93. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -1
  95. package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
  96. package/.next/server/app/api/mcp/servers/[name]/tools/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/mcp/servers/route.js +1 -1
  98. package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
  99. package/.next/server/app/api/mcp/servers/route_client-reference-manifest.js +1 -1
  100. package/.next/server/app/api/mcp/test-connection/route.js +1 -1
  101. package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
  102. package/.next/server/app/api/mcp/test-connection/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
  104. package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
  105. package/.next/server/app/api/mcp/test-connection/stream/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/mcp-registry/route.js +1 -1
  107. package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
  108. package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/api/mcp-registry/spotlight/route.js +1 -1
  110. package/.next/server/app/api/mcp-registry/spotlight/route.js.nft.json +1 -1
  111. package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/model/[id]/route.js +1 -1
  113. package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
  114. package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/model/provider/route.js +1 -1
  116. package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
  117. package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/model/route.js +1 -1
  119. package/.next/server/app/api/model/route.js.nft.json +1 -1
  120. package/.next/server/app/api/model/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/model/test/route.js +1 -1
  122. package/.next/server/app/api/model/test/route.js.nft.json +1 -1
  123. package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/oauth/callback/route.js +1 -1
  125. package/.next/server/app/api/oauth/callback/route.js.nft.json +1 -1
  126. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/oauth/initiate/route.js +1 -1
  128. package/.next/server/app/api/oauth/initiate/route.js.nft.json +1 -1
  129. package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/oauth/reset/route.js +1 -1
  131. package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
  132. package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/planned-executions/[id]/route.js +1 -1
  134. package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
  135. package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/planned-executions/[id]/run/route.js +1 -1
  137. package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
  138. package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/planned-executions/[id]/runs/route.js +1 -1
  140. package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
  141. package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/planned-executions/preview-schedule/route.js +1 -1
  143. package/.next/server/app/api/planned-executions/preview-schedule/route.js.nft.json +1 -1
  144. package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/planned-executions/reconcile/route.js +1 -1
  146. package/.next/server/app/api/planned-executions/reconcile/route.js.nft.json +1 -1
  147. package/.next/server/app/api/planned-executions/reconcile/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/planned-executions/route.js +1 -1
  149. package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
  150. package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/restore/route.js +1 -1
  152. package/.next/server/app/api/restore/route.js.nft.json +1 -1
  153. package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/runs/active/route.js +1 -1
  155. package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
  156. package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/storage/route.js +1 -1
  158. package/.next/server/app/api/storage/route.js.nft.json +1 -1
  159. package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
  160. package/.next/server/app/api/update/route.js +1 -1
  161. package/.next/server/app/api/update/route.js.nft.json +1 -1
  162. package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  163. package/.next/server/app/api/waves/route.js +1 -0
  164. package/.next/server/app/api/waves/route.js.nft.json +1 -0
  165. package/.next/server/app/api/waves/route_client-reference-manifest.js +1 -0
  166. package/.next/server/app/api/webhooks/[id]/route.js +1 -1
  167. package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
  168. package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
  169. package/.next/server/app/chat/page.js +3 -3
  170. package/.next/server/app/chat/page.js.nft.json +1 -1
  171. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  172. package/.next/server/app/chat.html +1 -1
  173. package/.next/server/app/chat.rsc +6 -4
  174. package/.next/server/app/docs/page.js +6 -4
  175. package/.next/server/app/docs/page.js.nft.json +1 -1
  176. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  177. package/.next/server/app/docs.html +1 -1
  178. package/.next/server/app/docs.rsc +6 -4
  179. package/.next/server/app/executions/page.js +3 -3
  180. package/.next/server/app/executions/page.js.nft.json +1 -1
  181. package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
  182. package/.next/server/app/executions.html +1 -1
  183. package/.next/server/app/executions.rsc +6 -4
  184. package/.next/server/app/flows/page.js +3 -3
  185. package/.next/server/app/flows/page.js.nft.json +1 -1
  186. package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
  187. package/.next/server/app/flows.html +1 -1
  188. package/.next/server/app/flows.rsc +6 -4
  189. package/.next/server/app/index.html +1 -1
  190. package/.next/server/app/index.rsc +6 -4
  191. package/.next/server/app/mcp/page.js +1 -1
  192. package/.next/server/app/mcp/page.js.nft.json +1 -1
  193. package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
  194. package/.next/server/app/mcp-flows/route.js +1 -1
  195. package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
  196. package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
  198. package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
  199. package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/mcp.html +1 -1
  201. package/.next/server/app/mcp.rsc +6 -4
  202. package/.next/server/app/models/page.js +2 -2
  203. package/.next/server/app/models/page.js.nft.json +1 -1
  204. package/.next/server/app/models/page_client-reference-manifest.js +1 -1
  205. package/.next/server/app/page.js +2 -2
  206. package/.next/server/app/page.js.nft.json +1 -1
  207. package/.next/server/app/page_client-reference-manifest.js +1 -1
  208. package/.next/server/app/settings/page.js +14 -4
  209. package/.next/server/app/settings/page.js.nft.json +1 -1
  210. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  211. package/.next/server/app/settings.html +1 -1
  212. package/.next/server/app/settings.rsc +6 -4
  213. package/.next/server/app/v1/chat/completions/route.js +1 -1
  214. package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
  215. package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +2 -2
  217. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
  218. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
  219. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +2 -2
  220. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
  221. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -1
  222. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
  223. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
  224. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -1
  225. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
  226. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
  227. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +2 -2
  229. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
  230. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
  231. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +1 -1
  232. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
  233. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
  234. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js +1 -1
  235. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js.nft.json +1 -1
  236. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
  238. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
  239. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
  240. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +1 -1
  241. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
  242. package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/v1/chat/conversations/route.js +1 -1
  244. package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
  245. package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/v1/models/route.js +1 -1
  247. package/.next/server/app/v1/models/route.js.nft.json +1 -1
  248. package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -1
  249. package/.next/server/app/waves/page.js +4 -0
  250. package/.next/server/app/waves/page.js.nft.json +1 -0
  251. package/.next/server/app/waves/page_client-reference-manifest.js +1 -0
  252. package/.next/server/app/waves.html +1 -0
  253. package/.next/server/app/waves.meta +7 -0
  254. package/.next/server/app/waves.rsc +22 -0
  255. package/.next/server/app-paths-manifest.json +9 -6
  256. package/.next/server/chunks/1152.js +1 -1
  257. package/.next/server/chunks/1226.js +1 -1
  258. package/.next/server/chunks/1377.js +1 -1
  259. package/.next/server/chunks/1439.js +1 -0
  260. package/.next/server/chunks/1556.js +52 -0
  261. package/.next/server/chunks/1910.js +37 -0
  262. package/.next/server/chunks/{4949.js → 1999.js} +1 -1
  263. package/.next/server/chunks/264.js +17 -0
  264. package/.next/server/chunks/2859.js +1 -1
  265. package/.next/server/chunks/289.js +1 -1
  266. package/.next/server/chunks/{6772.js → 3030.js} +1 -1
  267. package/.next/server/chunks/{6901.js → 3286.js} +1 -1
  268. package/.next/server/chunks/3489.js +1 -0
  269. package/.next/server/chunks/3648.js +1 -0
  270. package/.next/server/chunks/3823.js +5 -5
  271. package/.next/server/chunks/4239.js +1 -0
  272. package/.next/server/chunks/4265.js +1 -1
  273. package/.next/server/chunks/4372.js +1 -0
  274. package/.next/server/chunks/4456.js +1 -1
  275. package/.next/server/chunks/4561.js +3 -3
  276. package/.next/server/chunks/4637.js +5 -3
  277. package/.next/server/chunks/4671.js +1 -1
  278. package/.next/server/chunks/472.js +1 -0
  279. package/.next/server/chunks/4771.js +6 -0
  280. package/.next/server/chunks/5148.js +1 -0
  281. package/.next/server/chunks/5311.js +1 -0
  282. package/.next/server/chunks/5708.js +5 -3
  283. package/.next/server/chunks/6644.js +1 -0
  284. package/.next/server/chunks/6908.js +3 -3
  285. package/.next/server/chunks/7214.js +1 -1
  286. package/.next/server/chunks/724.js +1 -1
  287. package/.next/server/chunks/7362.js +10 -10
  288. package/.next/server/chunks/7427.js +1 -0
  289. package/.next/server/chunks/7463.js +4 -4
  290. package/.next/server/chunks/7506.js +1 -1
  291. package/.next/server/chunks/7821.js +1 -1
  292. package/.next/server/chunks/8357.js +1 -0
  293. package/.next/server/chunks/8518.js +2 -0
  294. package/.next/server/chunks/8745.js +28 -0
  295. package/.next/server/functions-config-manifest.json +2 -2
  296. package/.next/server/middleware-build-manifest.js +1 -1
  297. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  298. package/.next/server/pages/404.html +1 -1
  299. package/.next/server/pages/500.html +1 -1
  300. package/.next/server/server-reference-manifest.js +1 -1
  301. package/.next/server/server-reference-manifest.json +1 -1
  302. package/.next/static/MMmWHUQ3UAJBdRB7G1zGj/_buildManifest.js +1 -0
  303. package/.next/static/chunks/1871-dd8c10ed9d37100b.js +1 -0
  304. package/.next/static/chunks/1983-242862b3dc022a26.js +1 -0
  305. package/.next/static/chunks/2003-460f30484998c05d.js +1 -0
  306. package/.next/static/chunks/4207-41abb9622eb4b4f8.js +1 -0
  307. package/.next/static/chunks/4812-4a9aceb49632a973.js +1 -0
  308. package/.next/static/chunks/5501-f5b093c8dfd74196.js +1 -0
  309. package/.next/static/chunks/5545-2ab6e5d749e103cd.js +1 -0
  310. package/.next/static/chunks/6016.a157e5bde2faa652.js +1 -0
  311. package/.next/static/chunks/6288-a285bbbd701e0dbf.js +1 -0
  312. package/.next/static/chunks/{9114-f8e481157e7d8d16.js → 6730-c330b55cd0fe4f47.js} +1 -1
  313. package/.next/static/chunks/{5619-7ed132269b34f9b6.js → 7430-6e78aaeac66988a9.js} +1 -1
  314. package/.next/static/chunks/8083.16fda2c7f6d10d0c.js +1 -0
  315. package/.next/static/chunks/812-181496bc32cd0cd3.js +1 -0
  316. package/.next/static/chunks/{4742-8501334dffd3b129.js → 8480-229fd353b68b570f.js} +1 -1
  317. package/.next/static/chunks/8834-bda798efab40c60a.js +1 -0
  318. package/.next/static/chunks/9181-8d8ecd3f641b7209.js +8 -0
  319. package/.next/static/chunks/9356-99ba407b60b9dfe9.js +1 -0
  320. package/.next/static/chunks/9451-680fa09f81f18806.js +1 -0
  321. package/.next/static/chunks/9659-a279e3aaba407251.js +1 -0
  322. package/.next/static/chunks/app/api/approvals/[id]/route-6b442f97c5062f2c.js +1 -0
  323. package/.next/static/chunks/app/api/approvals/route-6b442f97c5062f2c.js +1 -0
  324. package/.next/static/chunks/app/api/backup/route-6b442f97c5062f2c.js +1 -0
  325. package/.next/static/chunks/app/api/browse/route-6b442f97c5062f2c.js +1 -0
  326. package/.next/static/chunks/app/api/bugs/enhance/route-6b442f97c5062f2c.js +1 -0
  327. package/.next/static/chunks/app/api/cwd/route-6b442f97c5062f2c.js +1 -0
  328. package/.next/static/chunks/app/api/encryption/secure/route-6b442f97c5062f2c.js +1 -0
  329. package/.next/static/chunks/app/api/env/route-6b442f97c5062f2c.js +1 -0
  330. package/.next/static/chunks/app/api/flow/[id]/route-6b442f97c5062f2c.js +1 -0
  331. package/.next/static/chunks/app/api/flow/compile/route-6b442f97c5062f2c.js +1 -0
  332. package/.next/static/chunks/app/api/flow/generate/route-6b442f97c5062f2c.js +1 -0
  333. package/.next/static/chunks/app/api/flow/improve/route-6b442f97c5062f2c.js +1 -0
  334. package/.next/static/chunks/app/api/flow/prompt-renderer/route-6b442f97c5062f2c.js +1 -0
  335. package/.next/static/chunks/app/api/flow/quick-chat/route-6b442f97c5062f2c.js +1 -0
  336. package/.next/static/chunks/app/api/flow/repair/route-6b442f97c5062f2c.js +1 -0
  337. package/.next/static/chunks/app/api/flow/route-6b442f97c5062f2c.js +1 -0
  338. package/.next/static/chunks/app/api/git/route-6b442f97c5062f2c.js +1 -0
  339. package/.next/static/chunks/app/api/init/route-6b442f97c5062f2c.js +1 -0
  340. package/.next/static/chunks/app/api/local-models/capability/route-6b442f97c5062f2c.js +1 -0
  341. package/.next/static/chunks/app/api/local-models/pull/route-6b442f97c5062f2c.js +1 -0
  342. package/.next/static/chunks/app/api/local-models/suggest/route-6b442f97c5062f2c.js +1 -0
  343. package/.next/static/chunks/app/api/mcp/cancel/route-6b442f97c5062f2c.js +1 -0
  344. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-6b442f97c5062f2c.js +1 -0
  345. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-6b442f97c5062f2c.js +1 -0
  346. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-6b442f97c5062f2c.js +1 -0
  347. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-6b442f97c5062f2c.js +1 -0
  348. package/.next/static/chunks/app/api/mcp/servers/[name]/route-6b442f97c5062f2c.js +1 -0
  349. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-6b442f97c5062f2c.js +1 -0
  350. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-6b442f97c5062f2c.js +1 -0
  351. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-6b442f97c5062f2c.js +1 -0
  352. package/.next/static/chunks/app/api/mcp/servers/route-6b442f97c5062f2c.js +1 -0
  353. package/.next/static/chunks/app/api/mcp/test-connection/route-6b442f97c5062f2c.js +1 -0
  354. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-6b442f97c5062f2c.js +1 -0
  355. package/.next/static/chunks/app/api/mcp-registry/route-6b442f97c5062f2c.js +1 -0
  356. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-6b442f97c5062f2c.js +1 -0
  357. package/.next/static/chunks/app/api/model/[id]/route-6b442f97c5062f2c.js +1 -0
  358. package/.next/static/chunks/app/api/model/provider/route-6b442f97c5062f2c.js +1 -0
  359. package/.next/static/chunks/app/api/model/route-6b442f97c5062f2c.js +1 -0
  360. package/.next/static/chunks/app/api/model/test/route-6b442f97c5062f2c.js +1 -0
  361. package/.next/static/chunks/app/api/oauth/callback/route-6b442f97c5062f2c.js +1 -0
  362. package/.next/static/chunks/app/api/oauth/initiate/route-6b442f97c5062f2c.js +1 -0
  363. package/.next/static/chunks/app/api/oauth/reset/route-6b442f97c5062f2c.js +1 -0
  364. package/.next/static/chunks/app/api/planned-executions/[id]/route-6b442f97c5062f2c.js +1 -0
  365. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-6b442f97c5062f2c.js +1 -0
  366. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-6b442f97c5062f2c.js +1 -0
  367. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-6b442f97c5062f2c.js +1 -0
  368. package/.next/static/chunks/app/api/planned-executions/reconcile/route-6b442f97c5062f2c.js +1 -0
  369. package/.next/static/chunks/app/api/planned-executions/route-6b442f97c5062f2c.js +1 -0
  370. package/.next/static/chunks/app/api/restore/route-6b442f97c5062f2c.js +1 -0
  371. package/.next/static/chunks/app/api/runs/active/route-6b442f97c5062f2c.js +1 -0
  372. package/.next/static/chunks/app/api/storage/route-6b442f97c5062f2c.js +1 -0
  373. package/.next/static/chunks/app/api/update/route-6b442f97c5062f2c.js +1 -0
  374. package/.next/static/chunks/app/api/waves/route-6b442f97c5062f2c.js +1 -0
  375. package/.next/static/chunks/app/api/webhooks/[id]/route-6b442f97c5062f2c.js +1 -0
  376. package/.next/static/chunks/app/chat/page-3a3efba25b59a747.js +1 -0
  377. package/.next/static/chunks/app/docs/page-84a92c3d5d8d5e13.js +1 -0
  378. package/.next/static/chunks/app/executions/{page-98e51554d7b1df19.js → page-445afbf37819e3ce.js} +1 -1
  379. package/.next/static/chunks/app/flows/page-74ebca19957cc6db.js +1 -0
  380. package/.next/static/chunks/app/layout-2ebf01d97702a18a.js +1 -0
  381. package/.next/static/chunks/app/mcp/page-770a870b3d40766b.js +1 -0
  382. package/.next/static/chunks/app/mcp-flows/route-6b442f97c5062f2c.js +1 -0
  383. package/.next/static/chunks/app/mcp-proxy/[server]/route-6b442f97c5062f2c.js +1 -0
  384. package/.next/static/chunks/app/models/error-a3183f168e8a9b04.js +1 -0
  385. package/.next/static/chunks/app/models/page-5a13ea6ff5ac1b9c.js +1 -0
  386. package/.next/static/chunks/app/{page-77e1ba238b0ee1d0.js → page-a859e4dbd180df98.js} +1 -1
  387. package/.next/static/chunks/app/settings/page-7a68583660508ffd.js +1 -0
  388. package/.next/static/chunks/app/v1/chat/completions/route-6b442f97c5062f2c.js +1 -0
  389. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-6b442f97c5062f2c.js +1 -0
  390. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-6b442f97c5062f2c.js +1 -0
  391. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-6b442f97c5062f2c.js +1 -0
  392. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-6b442f97c5062f2c.js +1 -0
  393. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-6b442f97c5062f2c.js +1 -0
  394. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-6b442f97c5062f2c.js +1 -0
  395. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-6b442f97c5062f2c.js +1 -0
  396. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-6b442f97c5062f2c.js +1 -0
  397. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-6b442f97c5062f2c.js +1 -0
  398. package/.next/static/chunks/app/v1/chat/conversations/route-6b442f97c5062f2c.js +1 -0
  399. package/.next/static/chunks/app/v1/models/route-6b442f97c5062f2c.js +1 -0
  400. package/.next/static/chunks/app/waves/page-ec33cf79f6103a9e.js +1 -0
  401. package/.next/static/chunks/webpack-dded92b3d7b33173.js +1 -0
  402. package/.next/static/css/39393a79f7cb0dee.css +1 -0
  403. package/.next/static/css/599369d853c61df7.css +31 -0
  404. package/.next/static/css/b496025c9cd768cc.css +1 -0
  405. package/.next/trace +9 -8
  406. package/.next/types/app/api/bugs/enhance/route.ts +347 -0
  407. package/.next/types/app/api/waves/route.ts +347 -0
  408. package/.next/types/app/waves/page.ts +84 -0
  409. package/.next/types/routes.d.ts +5 -2
  410. package/.next/types/validator.ts +27 -0
  411. package/README.md +1 -1
  412. package/package.json +1 -1
  413. package/.next/server/chunks/1491.js +0 -1
  414. package/.next/server/chunks/1690.js +0 -1
  415. package/.next/server/chunks/1746.js +0 -1
  416. package/.next/server/chunks/2430.js +0 -1
  417. package/.next/server/chunks/3280.js +0 -38
  418. package/.next/server/chunks/3802.js +0 -1
  419. package/.next/server/chunks/4043.js +0 -6
  420. package/.next/server/chunks/4045.js +0 -1
  421. package/.next/server/chunks/4322.js +0 -1
  422. package/.next/server/chunks/5625.js +0 -28
  423. package/.next/server/chunks/7959.js +0 -1
  424. package/.next/server/chunks/8298.js +0 -1
  425. package/.next/server/chunks/9201.js +0 -17
  426. package/.next/server/chunks/9432.js +0 -52
  427. package/.next/server/chunks/9957.js +0 -1
  428. package/.next/static/PgkIffa5DdoRlsKKJyFOk/_buildManifest.js +0 -1
  429. package/.next/static/chunks/1161-970b105d0ab11425.js +0 -1
  430. package/.next/static/chunks/1423-19dafbb953c4992d.js +0 -8
  431. package/.next/static/chunks/1871-14c3e63ca865d85e.js +0 -1
  432. package/.next/static/chunks/1892-5c1e38d89e0a5a9c.js +0 -1
  433. package/.next/static/chunks/2003-7710c23acaef11c9.js +0 -1
  434. package/.next/static/chunks/2720-2a926505ec98a6de.js +0 -1
  435. package/.next/static/chunks/3930-cc8d73c953811b97.js +0 -1
  436. package/.next/static/chunks/4031-ac736d3645071bb6.js +0 -1
  437. package/.next/static/chunks/4058-0d7bba578ece1784.js +0 -1
  438. package/.next/static/chunks/4365-5d0e3d01c1bc0fdc.js +0 -1
  439. package/.next/static/chunks/4480-7fb4d36c17264491.js +0 -1
  440. package/.next/static/chunks/5501-c400aaeaf57e6297.js +0 -1
  441. package/.next/static/chunks/557-dbc9903702465976.js +0 -1
  442. package/.next/static/chunks/7539.41f0448cf9783388.js +0 -1
  443. package/.next/static/chunks/8066-c202a83aef15143a.js +0 -1
  444. package/.next/static/chunks/8187.204e85fb197ddeb1.js +0 -1
  445. package/.next/static/chunks/8345.76f420453fc0dee7.js +0 -1
  446. package/.next/static/chunks/app/api/approvals/[id]/route-0343078cf7f19a65.js +0 -1
  447. package/.next/static/chunks/app/api/approvals/route-0343078cf7f19a65.js +0 -1
  448. package/.next/static/chunks/app/api/backup/route-0343078cf7f19a65.js +0 -1
  449. package/.next/static/chunks/app/api/browse/route-0343078cf7f19a65.js +0 -1
  450. package/.next/static/chunks/app/api/cwd/route-0343078cf7f19a65.js +0 -1
  451. package/.next/static/chunks/app/api/encryption/secure/route-0343078cf7f19a65.js +0 -1
  452. package/.next/static/chunks/app/api/env/route-0343078cf7f19a65.js +0 -1
  453. package/.next/static/chunks/app/api/flow/[id]/route-0343078cf7f19a65.js +0 -1
  454. package/.next/static/chunks/app/api/flow/compile/route-0343078cf7f19a65.js +0 -1
  455. package/.next/static/chunks/app/api/flow/generate/route-0343078cf7f19a65.js +0 -1
  456. package/.next/static/chunks/app/api/flow/improve/route-0343078cf7f19a65.js +0 -1
  457. package/.next/static/chunks/app/api/flow/prompt-renderer/route-0343078cf7f19a65.js +0 -1
  458. package/.next/static/chunks/app/api/flow/quick-chat/route-0343078cf7f19a65.js +0 -1
  459. package/.next/static/chunks/app/api/flow/repair/route-0343078cf7f19a65.js +0 -1
  460. package/.next/static/chunks/app/api/flow/route-0343078cf7f19a65.js +0 -1
  461. package/.next/static/chunks/app/api/git/route-0343078cf7f19a65.js +0 -1
  462. package/.next/static/chunks/app/api/init/route-0343078cf7f19a65.js +0 -1
  463. package/.next/static/chunks/app/api/local-models/capability/route-0343078cf7f19a65.js +0 -1
  464. package/.next/static/chunks/app/api/local-models/pull/route-0343078cf7f19a65.js +0 -1
  465. package/.next/static/chunks/app/api/local-models/suggest/route-0343078cf7f19a65.js +0 -1
  466. package/.next/static/chunks/app/api/mcp/cancel/route-0343078cf7f19a65.js +0 -1
  467. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-0343078cf7f19a65.js +0 -1
  468. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-0343078cf7f19a65.js +0 -1
  469. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-0343078cf7f19a65.js +0 -1
  470. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-0343078cf7f19a65.js +0 -1
  471. package/.next/static/chunks/app/api/mcp/servers/[name]/route-0343078cf7f19a65.js +0 -1
  472. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-0343078cf7f19a65.js +0 -1
  473. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-0343078cf7f19a65.js +0 -1
  474. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-0343078cf7f19a65.js +0 -1
  475. package/.next/static/chunks/app/api/mcp/servers/route-0343078cf7f19a65.js +0 -1
  476. package/.next/static/chunks/app/api/mcp/test-connection/route-0343078cf7f19a65.js +0 -1
  477. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-0343078cf7f19a65.js +0 -1
  478. package/.next/static/chunks/app/api/mcp-registry/route-0343078cf7f19a65.js +0 -1
  479. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-0343078cf7f19a65.js +0 -1
  480. package/.next/static/chunks/app/api/model/[id]/route-0343078cf7f19a65.js +0 -1
  481. package/.next/static/chunks/app/api/model/provider/route-0343078cf7f19a65.js +0 -1
  482. package/.next/static/chunks/app/api/model/route-0343078cf7f19a65.js +0 -1
  483. package/.next/static/chunks/app/api/model/test/route-0343078cf7f19a65.js +0 -1
  484. package/.next/static/chunks/app/api/oauth/callback/route-0343078cf7f19a65.js +0 -1
  485. package/.next/static/chunks/app/api/oauth/initiate/route-0343078cf7f19a65.js +0 -1
  486. package/.next/static/chunks/app/api/oauth/reset/route-0343078cf7f19a65.js +0 -1
  487. package/.next/static/chunks/app/api/planned-executions/[id]/route-0343078cf7f19a65.js +0 -1
  488. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-0343078cf7f19a65.js +0 -1
  489. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-0343078cf7f19a65.js +0 -1
  490. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-0343078cf7f19a65.js +0 -1
  491. package/.next/static/chunks/app/api/planned-executions/reconcile/route-0343078cf7f19a65.js +0 -1
  492. package/.next/static/chunks/app/api/planned-executions/route-0343078cf7f19a65.js +0 -1
  493. package/.next/static/chunks/app/api/restore/route-0343078cf7f19a65.js +0 -1
  494. package/.next/static/chunks/app/api/runs/active/route-0343078cf7f19a65.js +0 -1
  495. package/.next/static/chunks/app/api/storage/route-0343078cf7f19a65.js +0 -1
  496. package/.next/static/chunks/app/api/update/route-0343078cf7f19a65.js +0 -1
  497. package/.next/static/chunks/app/api/webhooks/[id]/route-0343078cf7f19a65.js +0 -1
  498. package/.next/static/chunks/app/chat/page-1367f696bc0ade9b.js +0 -1
  499. package/.next/static/chunks/app/docs/page-10b73b5b2c608484.js +0 -1
  500. package/.next/static/chunks/app/flows/page-edee8e5c15219bc6.js +0 -1
  501. package/.next/static/chunks/app/layout-64fc0ae7efe81e3c.js +0 -1
  502. package/.next/static/chunks/app/mcp/page-3cae88bf0236503e.js +0 -1
  503. package/.next/static/chunks/app/mcp-flows/route-0343078cf7f19a65.js +0 -1
  504. package/.next/static/chunks/app/mcp-proxy/[server]/route-0343078cf7f19a65.js +0 -1
  505. package/.next/static/chunks/app/models/error-5732fbb053e182c5.js +0 -1
  506. package/.next/static/chunks/app/models/page-d2dc022339075a6a.js +0 -1
  507. package/.next/static/chunks/app/settings/page-199d0ffae9ec7263.js +0 -1
  508. package/.next/static/chunks/app/v1/chat/completions/route-0343078cf7f19a65.js +0 -1
  509. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-0343078cf7f19a65.js +0 -1
  510. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-0343078cf7f19a65.js +0 -1
  511. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-0343078cf7f19a65.js +0 -1
  512. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-0343078cf7f19a65.js +0 -1
  513. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-0343078cf7f19a65.js +0 -1
  514. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-0343078cf7f19a65.js +0 -1
  515. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-0343078cf7f19a65.js +0 -1
  516. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-0343078cf7f19a65.js +0 -1
  517. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-0343078cf7f19a65.js +0 -1
  518. package/.next/static/chunks/app/v1/chat/conversations/route-0343078cf7f19a65.js +0 -1
  519. package/.next/static/chunks/app/v1/models/route-0343078cf7f19a65.js +0 -1
  520. package/.next/static/chunks/webpack-fd64460ba6699c85.js +0 -1
  521. package/.next/static/css/d1484588c616b291.css +0 -31
  522. /package/.next/static/{PgkIffa5DdoRlsKKJyFOk → MMmWHUQ3UAJBdRB7G1zGj}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8457],{45960:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>tU});var r=n(95155),o=n(12115),a=n(97322),l=n(94049),s=n(78470),i=n(41983),d=n(22003),c=n(28548),u=n(91871),p=n(25635),f=n(3339),h=n(67895),g=n(2778),m=n(52363),x=n(65036),v=n(50001),b=n(75912),y=n(22719),j=n(11096),w=n(76530),A=n(36741),S=n(60691),I=n(47419),C=n(78410),k=n(29692),E=n(21067),T=n(41602),N=n(23820),R=n(17681),z=n(73707),D=n(4484),P=n(86946),F=n(19219);let M=e=>{let{conversations:t,currentConversationId:n,onSelectConversation:o,onDeleteConversation:a,onStopConversation:d,onNewConversation:c,onQuickChat:f,onCollapse:h}=e;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(l.default,{sx:{p:2,display:"flex",justifyContent:"space-between",alignItems:"center",gap:1},children:[h&&(0,r.jsx)(s.A,{title:"Hide sidebar",children:(0,r.jsx)(i.A,{size:"small",onClick:h,"aria-label":"Hide conversation sidebar",children:(0,r.jsx)(F.A,{})})}),(0,r.jsx)(p.default,{variant:"h6",sx:{flex:1},noWrap:!0,children:"Conversations"}),f&&(0,r.jsx)(s.A,{title:"Quick Chat: a model + optional MCP servers, no saved flow",children:(0,r.jsx)(u.A,{variant:"outlined",color:"primary",startIcon:(0,r.jsx)(j.A,{}),onClick:f,size:"small",children:"Quick"})}),(0,r.jsx)(u.A,{variant:"contained",color:"primary",startIcon:(0,r.jsx)(P.A,{}),onClick:c,size:"small",children:"New"})]}),(0,r.jsx)(E.A,{}),(0,r.jsx)(T.A,{sx:{overflow:"auto",flex:1},children:0===t.length?(0,r.jsx)(N.Ay,{children:(0,r.jsx)(R.A,{primary:"No conversations yet",secondary:"Start a new conversation",primaryTypographyProps:{align:"center"},secondaryTypographyProps:{align:"center"}})}):t.sort((e,t)=>t.updatedAt-e.updatedAt).map(e=>{let t=!!d&&("running"===e.status||"awaiting_tool_approval"===e.status);return(0,r.jsx)(N.Ay,{disablePadding:!0,secondaryAction:(0,r.jsxs)(r.Fragment,{children:[t&&(0,r.jsx)(s.A,{title:"Stop this run",children:(0,r.jsx)(i.A,{edge:"end","aria-label":"stop run",onClick:t=>{t.stopPropagation(),d(e.id)},children:(0,r.jsx)(I.A,{color:"error"})})}),(0,r.jsx)(i.A,{edge:"end","aria-label":"delete",onClick:t=>{t.stopPropagation(),a(e.id)},children:(0,r.jsx)(D.A,{})})]}),sx:{opacity:e.id===n?1:.7},children:(0,r.jsx)(z.A,{selected:e.id===n,onClick:()=>o(e.id),sx:{pr:t?12:7},children:(0,r.jsx)(R.A,{primary:(0,r.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[e.status&&(0,r.jsx)(s.A,{title:(e=>{switch(e){case"running":return"Processing";case"awaiting_tool_approval":return"Waiting for tool approval";case"paused_debug":return"Paused in debug mode";case"completed":return"Completed";case"error":return"Error";default:return""}})(e.status),children:(0,r.jsx)(l.default,{component:"span",sx:{width:8,height:8,borderRadius:"50%",bgcolor:(e=>{switch(e){case"running":return"primary.main";case"awaiting_tool_approval":return"warning.main";case"paused_debug":return"secondary.main";case"completed":return"success.main";case"error":return"error.main";default:return"transparent"}})(e.status),display:"inline-block",flexShrink:0}})}),(0,r.jsx)(p.default,{component:"span",noWrap:!0,fontWeight:e.id===n?"bold":"normal",children:e.title})]}),secondary:new Date(e.updatedAt).toLocaleDateString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})})})},e.id)})})]})};var _=n(4474),O=n(50430),W=n(99944),L=n(9957),H=n(2300),q=n(52641),B=n(51221),U=n(55606),J=n(86973),Y=n(98267),G=n(20537),Q=n(37960),V=n(36314),K=n(49501),X=n(6504),$=n(22133),Z=n(11665),ee=n(97516),et=n(91861),en=n(53612),er=n(3014),eo=n(63186),ea=n(70863),el=n(67891),es=n(12121),ei=n(14915),ed=n(63992),ec=n(59637),eu=n(30949),ep=n(1877),ef=n(18466),eh=n(26188),eg=n(38952),em=n(62962),ex=n(17897),ev=n(81029).hp,eb=n(87021);let ey=(0,eb.h)("frontend/components/Chat/McpAppFrame"),ej=e=>{let{serverName:t,uri:n}=e,[a,i]=(0,o.useState)(!1),[c,f]=(0,o.useState)(!1),[h,g]=(0,o.useState)(null),[m,x]=(0,o.useState)(null),v=(0,o.useCallback)(async()=>{f(!0),g(null);try{let e=await ex.S.readResource(t,n);if(!e||!1===e.success)return void g((null==e?void 0:e.error)||"Failed to read the UI resource.");let r=function(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2097152,r=null==e?void 0:e.contents;if(!Array.isArray(r)||0===r.length)return{error:"Resource has no contents"};let o=r.find(e=>(function(e){if("string"!=typeof e)return!1;let t=e.toLowerCase().replace(/\s+/g,"");return t.startsWith("text/html")&&t.includes("profile=mcp-app")})(e.mimeType)&&"string"==typeof e.text)||r.find(e=>"string"==typeof e.text);if(!o||"string"!=typeof o.text)return{error:"Resource has no HTML text body"};if((void 0!==ev?ev.byteLength(o.text,"utf8"):new TextEncoder().encode(o.text).length)>n)return{error:"Resource exceeds the ".concat(Math.round(n/1024)," KiB size cap")};let a=null==(t=o._meta)?void 0:t.ui;return{html:o.text,meta:a}}(e.data);if("error"in r)return void g(r.error);x(function(e,t){let n='<meta http-equiv="Content-Security-Policy" content="'.concat(function(e){let t=e=>(e||[]).map(e=>"string"==typeof e?e.trim():"").filter(e=>""!==e&&"string"==typeof e&&("'self'"===e||"'none'"===e||!(/[^\x21-\x7e]/.test(e)||/[;,'"`$<>\\()]/.test(e))&&/^(?:https|wss):\/\/(?:\*\.)?(?:[a-z0-9-]+\.)*[a-z0-9-]+(?::\d{1,5})?$/i.test(e))).join(" "),n=t(null==e?void 0:e.connectDomains),r=t(null==e?void 0:e.resourceDomains),o=t(null==e?void 0:e.frameDomains),a=t(null==e?void 0:e.baseUriDomains);return["default-src 'none'","script-src 'unsafe-inline'".concat(r?" ".concat(r):""),"style-src 'unsafe-inline'".concat(r?" ".concat(r):""),"img-src data: blob:".concat(r?" ".concat(r):""),"font-src".concat(r?" ".concat(r):" 'none'"),"media-src data: blob:".concat(r?" ".concat(r):""),"connect-src".concat(n?" ".concat(n):" 'none'"),"frame-src".concat(o?" ".concat(o):" 'none'"),"base-uri".concat(a?" ".concat(a):" 'none'"),"form-action 'none'"].join("; ")}(t),'">');return/<head[\s>]/i.test(e)?e.replace(/<head([^>]*)>/i,(e,t)=>"<head".concat(t,">").concat(n)):'<!DOCTYPE html><html><head><meta charset="utf-8">'.concat(n,"</head><body>").concat(e,"</body></html>")}(r.html,r.meta))}catch(e){ey.warn("Failed to load MCP App resource ".concat(n," from ").concat(t),e),g(e instanceof Error?e.message:"Failed to load the UI resource.")}finally{f(!1)}},[t,n]),b=(0,o.useCallback)(()=>{let e=!a;i(e),e&&null===m&&!c&&v()},[a,m,c,v]);return(0,r.jsxs)(l.default,{sx:{mt:1,border:"1px solid",borderColor:"divider",borderRadius:1,overflow:"hidden"},children:[(0,r.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",gap:1,px:1,py:.5,bgcolor:"action.hover"},children:[(0,r.jsx)(eh.A,{fontSize:"small",color:"primary"}),(0,r.jsxs)(p.default,{variant:"body2",sx:{fontWeight:500},children:["Interactive app from ",t]}),(0,r.jsx)(s.A,{title:"Rendered read-only in a strict sandbox (no same-origin access, no network unless the app declares it). The app cannot call tools in this view.",children:(0,r.jsx)(eg.A,{fontSize:"small",color:"action"})}),(0,r.jsx)(u.A,{size:"small",onClick:b,startIcon:a?(0,r.jsx)(em.A,{}):(0,r.jsx)(eo.A,{}),sx:{ml:"auto"},children:a?"Hide":"Open app"})]}),(0,r.jsx)(O.A,{in:a,unmountOnExit:!0,children:(0,r.jsxs)(l.default,{sx:{p:1},children:[c&&(0,r.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",gap:1,py:2,justifyContent:"center"},children:[(0,r.jsx)(_.default,{size:16,thickness:6}),(0,r.jsx)(p.default,{variant:"body2",color:"text.secondary",children:"Loading the app…"})]}),h&&(0,r.jsx)(d.A,{severity:"error",sx:{my:1},children:h}),!c&&!h&&null!==m&&(0,r.jsx)(l.default,{component:"iframe",title:"MCP App: ".concat(n),srcDoc:m,sandbox:"allow-scripts",referrerPolicy:"no-referrer",sx:{width:"100%",height:420,border:"none",borderRadius:1,bgcolor:"#fff"}})]})})]})},ew=(0,eb.h)("frontend/components/Chat/ChatMessages");function eA(e){return"assistant"===e.role&&"tool_calls"in e&&Array.isArray(e.tool_calls)}function eS(e){if("tool"!==e.role||"string"!=typeof e.content)return!1;try{var t;return(null==(t=JSON.parse(e.content))?void 0:t.handoff)===!0}catch(e){return!1}}let eI={p:e=>(0,r.jsx)(p.default,{variant:"body1",sx:{mb:.5,whiteSpace:"pre-line"},children:e.children}),h1:e=>(0,r.jsx)(p.default,{variant:"h5",sx:{mt:2,mb:.5},children:e.children}),h2:e=>(0,r.jsx)(p.default,{variant:"h6",sx:{mt:2,mb:.5},children:e.children}),h3:e=>(0,r.jsx)(p.default,{variant:"subtitle1",sx:{mt:1.5,mb:.5},children:e.children}),h4:e=>(0,r.jsx)(p.default,{variant:"subtitle2",sx:{mt:1.5,mb:.5},children:e.children}),h5:e=>(0,r.jsx)(p.default,{variant:"body1",sx:{mt:1,mb:.5,fontWeight:"bold"},children:e.children}),h6:e=>(0,r.jsx)(p.default,{variant:"body2",sx:{mt:1,mb:.5,fontWeight:"bold"},children:e.children}),ul:e=>(0,r.jsx)(l.default,{component:"ul",sx:{pl:2,mb:1},children:e.children}),ol:e=>(0,r.jsx)(l.default,{component:"ol",sx:{pl:2,mb:1},children:e.children}),li:e=>(0,r.jsx)(l.default,{component:"li",sx:{mb:.5,whiteSpace:"pre-line"},children:e.children}),a:e=>(0,r.jsx)(p.default,{component:"a",sx:{color:"primary.main"},href:e.href,children:e.children}),blockquote:e=>(0,r.jsx)(l.default,{component:"blockquote",sx:{borderLeft:"4px solid",borderColor:"divider",pl:2,py:.5,my:1,bgcolor:"action.hover",borderRadius:"4px"},children:e.children}),code:e=>{let{node:t,className:n,children:o,...a}=e;return/language-(\w+)/.exec(n||"")||n?(0,r.jsx)(l.default,{component:"pre",sx:{bgcolor:"action.hover",p:1.5,borderRadius:"4px",overflowX:"auto",fontFamily:"monospace",fontSize:"0.875rem",my:1,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:o}):(0,r.jsx)(p.default,{component:"code",sx:{bgcolor:"action.hover",px:.5,py:.25,borderRadius:"4px",fontFamily:"monospace",wordBreak:"break-all"},children:o})}},eC=e=>{let{content:t,showRaw:n}=e;return n?(0,r.jsx)(l.default,{component:"pre",sx:{whiteSpace:"pre-wrap",wordBreak:"break-all",fontSize:"0.8rem",p:1,borderRadius:1,border:1,borderColor:e=>"dark"===e.palette.mode?"#3a3a3a":"#e5e7eb",bgcolor:"action.hover",color:e=>e.palette.text.primary,overflow:"auto",maxHeight:"300px"},children:"string"==typeof t?t:"[Invalid tool content]"}):"string"!=typeof t?(0,r.jsx)(p.default,{variant:"body2",fontStyle:"italic",color:"text.secondary",children:"[Invalid tool content]"}):(0,r.jsx)(l.default,{sx:{width:"100%",minWidth:0},children:(()=>{try{let e=JSON.parse(t);if(e&&Array.isArray(e.content))return(0,r.jsx)(l.default,{sx:{display:"flex",flexDirection:"column",gap:1},children:e.content.map((e,t)=>"text"===e.type?(0,r.jsx)(X.oz,{remarkPlugins:[$.A],children:e.text},t):"image"===e.type&&e.data&&e.mimeType?(0,r.jsx)("img",{src:"data:".concat(e.mimeType,";base64,").concat(e.data),alt:"Tool Result Image ".concat(t+1),style:{maxWidth:"100%",height:"auto",borderRadius:"4px",marginTop:"8px"}},t):"audio"===e.type&&e.data&&e.mimeType?(0,r.jsx)("audio",{controls:!0,src:"data:".concat(e.mimeType,";base64,").concat(e.data),style:{width:"100%",marginTop:"8px"},children:"Your browser does not support the audio element."},t):(0,r.jsx)(l.default,{component:"pre",sx:{whiteSpace:"pre-wrap",wordBreak:"break-all",fontSize:"0.8rem",p:1,borderRadius:1,border:1,borderColor:e=>"dark"===e.palette.mode?"#3a3a3a":"#e5e7eb",bgcolor:"action.hover",color:e=>e.palette.text.primary,overflow:"auto",mt:1},children:"Unsupported content type: ".concat(e.type,"\n").concat(JSON.stringify(e,null,2))},t))});return(0,r.jsx)(X.oz,{remarkPlugins:[$.A],children:"```json\n".concat(JSON.stringify(e,null,2),"\n```")})}catch(e){return(0,r.jsx)(X.oz,{remarkPlugins:[$.A],children:t})}})()})},ek=e=>{let{pairs:t,messageId:n}=e,[a,i]=(0,o.useState)(null),[d,u]=(0,o.useState)({}),f=(e,t)=>e.toolCall.id||"tc-".concat(n,"-").concat(t);return(0,r.jsxs)(l.default,{sx:{mt:1,pt:1,borderTop:"1px solid",borderColor:"divider"},children:[(0,r.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",color:"primary.main",mb:1},children:[(0,r.jsx)(ea.A,{fontSize:"small",sx:{mr:1}}),(0,r.jsx)(p.default,{variant:"body2",children:1===t.length?"The assistant used a tool":"The assistant used ".concat(t.length," tools")})]}),(0,r.jsx)(l.default,{sx:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:.5},children:t.map((e,t)=>{let n=f(e,t),d=function(e){if(!e)return"pending";if("string"==typeof e.content)try{let t=JSON.parse(e.content);if(t&&(!0===t.isError||null!=t.error))return"error"}catch(e){}return"done"}(e.result),u=a===n;return(0,r.jsxs)(o.Fragment,{children:[t>0&&(0,r.jsx)(l.default,{sx:{width:14,height:"2px",bgcolor:"divider",flexShrink:0}}),(0,r.jsx)(s.A,{title:u?"Hide call & result":"Show call & result",children:(0,r.jsx)(c.A,{icon:function(e){return"pending"===e?(0,r.jsx)(_.default,{size:14,thickness:6}):"error"===e?(0,r.jsx)(S.A,{fontSize:"small"}):(0,r.jsx)(es.A,{fontSize:"small"})}(d),label:(0,ep.yo)(e.toolCall.function.name),size:"small",clickable:!0,variant:u?"filled":"outlined",color:"error"===d?"error":"pending"===d?"default":"primary",onClick:()=>i(u?null:n),sx:{maxWidth:"100%"}})})]},n)})}),t.map((e,t)=>{var n,o;let s=f(e,t),i=e.toolCall.function.arguments;try{i=JSON.stringify(JSON.parse(e.toolCall.function.arguments),null,2)}catch(e){}let h=!!d[s];return(0,r.jsx)(O.A,{in:a===s,unmountOnExit:!0,children:(0,r.jsxs)(l.default,{sx:{mt:1,p:1,borderRadius:1,bgcolor:"rgba(0, 0, 0, 0.03)"},children:[(0,r.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",mb:.5},children:[(0,r.jsx)(ea.A,{fontSize:"small",sx:{mr:.5,color:"primary.main"}}),(0,r.jsx)(p.default,{variant:"caption",sx:{fontWeight:"bold"},children:"Parameters"}),(0,r.jsx)(c.A,{label:"ID: ".concat(e.toolCall.id?e.toolCall.id.substring(0,8):"N/A","..."),size:"small",color:"default",variant:"outlined",sx:{ml:1,height:20,fontSize:"0.7rem"}})]}),(0,r.jsx)(l.default,{component:"pre",sx:{bgcolor:"action.hover",p:1,borderRadius:"4px",overflowX:"auto",fontFamily:"monospace",fontSize:"0.75rem",my:.5,maxHeight:"150px",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:i}),(0,r.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",mt:1,mb:.5},children:[(0,r.jsx)(el.A,{fontSize:"small",sx:{mr:.5,color:"text.secondary"}}),(0,r.jsx)(p.default,{variant:"caption",sx:{fontWeight:"bold"},children:"Result"}),e.result&&(0,r.jsx)(W.A,{control:(0,r.jsx)(L.A,{size:"small",checked:h,onChange:e=>u(t=>({...t,[s]:e.target.checked}))}),label:"Raw",sx:{ml:"auto",mr:0,"& .MuiTypography-root":{fontSize:"0.75rem"}}})]}),e.result?(0,r.jsx)(eC,{content:e.result.content,showRaw:h}):(0,r.jsxs)(p.default,{variant:"body2",fontStyle:"italic",color:"text.secondary",sx:{display:"flex",alignItems:"center",gap:1},children:[(0,r.jsx)(_.default,{size:14,thickness:6})," Waiting for the tool to respond…"]}),(null==(o=e.result)||null==(n=o.ui)?void 0:n.uri)&&e.result.ui.serverName&&(0,r.jsx)(ej,{serverName:e.result.ui.serverName,uri:e.result.ui.uri})]})},s)})]})},eE=o.memo(function(e){var t,n;let o,{message:a,nodeLabel:d,availableNodes:f,showRaw:h,toolCallPairs:g,hoistedHandoffs:m,edit:x,onMenuOpen:v,onToggleRaw:b,onEditContentChange:y,onEditNodeChange:j,onSaveEdit:w,onCancelEdit:A}=e,S=null!=(t=a.depth)?t:0;return(0,r.jsxs)(l.default,{sx:{display:"flex",flexDirection:"column",alignItems:"user"===a.role?"flex-end":"flex-start",opacity:a.disabled?.5:1,...S>0&&{pl:3*S,borderLeft:"2px solid",borderColor:"divider",ml:1}},children:[(0,r.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",mb:.5},children:[(0,r.jsxs)(p.default,{variant:"caption",color:"text.secondary",sx:{mr:1},children:["user"===a.role?"You":"assistant"===a.role?"Assistant":"tool"===a.role?"Tool":"System"," • ","number"!=typeof(n=a.timestamp)||isNaN(n)?(ew.warn("formatTime received invalid timestamp:",n),"Invalid Date"):new Date(n).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"})]}),a.processNodeId&&(0,r.jsx)(s.A,{title:"".concat(d?"".concat(d," — "):"","Process Node ID: ").concat(a.processNodeId),children:(0,r.jsx)(c.A,{label:"Node: ".concat(d||"".concat(a.processNodeId.substring(0,6),"...")),size:"small",color:"primary",variant:"outlined",sx:{height:20,fontSize:"0.7rem",mr:1}})}),S>0&&(0,r.jsx)(s.A,{title:"Nested subflow step (depth ".concat(S,")"),children:(0,r.jsx)(c.A,{label:"Subflow step",size:"small",color:"secondary",variant:"outlined",sx:{height:20,fontSize:"0.7rem",mr:1}})}),a.disabled&&(0,r.jsx)(c.A,{label:"Disabled",size:"small",color:"default",variant:"outlined",sx:{height:20,fontSize:"0.7rem"}}),a.usage&&(0,r.jsx)(s.A,{title:"".concat(a.usage.promptTokens.toLocaleString()," prompt + ").concat(a.usage.completionTokens.toLocaleString()," completion tokens (provider-reported)"),children:(0,r.jsx)(c.A,{label:"".concat((o=a.usage.totalTokens)>=1e3?"".concat((o/1e3).toFixed(o>=1e5?0:1),"k"):"".concat(o)," tok"),size:"small",color:"default",variant:"outlined",sx:{height:20,fontSize:"0.7rem",mr:1}})}),(0,r.jsx)(i.A,{size:"small",onClick:e=>v(e,a.id),sx:{ml:1},children:(0,r.jsx)(Z.A,{fontSize:"small"})})]}),(0,r.jsxs)(H.A,{elevation:1,sx:{p:2,maxWidth:"75vw",borderRadius:2,bgcolor:"user"===a.role?"primary.light":"assistant"===a.role||"tool"===a.role?"background.paper":"info.light",color:"user"===a.role?"primary.contrastText":"assistant"===a.role||"tool"===a.role?"text.primary":"info.contrastText",position:"relative",borderLeft:"tool"===a.role?"4px solid":"none",borderColor:"tool"===a.role?"grey.400":"transparent",overflowWrap:"break-word",wordBreak:"break-word",overflow:"hidden"},children:[x?(0,r.jsxs)(l.default,{sx:{display:"flex",flexDirection:"column",gap:1},children:[(0,r.jsx)("textarea",{value:x.content,onChange:e=>y(e.target.value),style:{width:"100%",minHeight:"100px",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontFamily:"inherit",fontSize:"inherit",backgroundColor:"white",color:"black"}}),(0,r.jsxs)(q.A,{fullWidth:!0,size:"small",sx:{mt:1},children:[(0,r.jsx)(B.A,{id:"node-id-select-label",children:"Process Node"}),(0,r.jsx)(U.A,{labelId:"node-id-select-label",id:"node-id-select",value:x.nodeId||(f.length>0?f[0].id:""),label:"Process Node",onChange:e=>j(e.target.value),children:f.map(e=>(0,r.jsx)(J.A,{value:e.id,children:e.label||e.id.substring(0,8)},e.id))})]}),(0,r.jsxs)(l.default,{sx:{display:"flex",justifyContent:"flex-end",gap:1,mt:1},children:[(0,r.jsx)(u.A,{variant:"outlined",size:"small",onClick:A,children:"Cancel"}),(0,r.jsx)(u.A,{variant:"contained",size:"small",onClick:w,children:"Save"})]})]}):(0,r.jsxs)(r.Fragment,{children:["tool"!==a.role&&"string"==typeof a.content&&(0,r.jsx)(X.oz,{remarkPlugins:[$.A],components:eI,children:a.content}),"tool"!==a.role&&Array.isArray(a.content)&&(0,r.jsx)(l.default,{sx:{display:"flex",flexDirection:"column",gap:1},children:a.content.map((e,t)=>{var n;return(null==e?void 0:e.type)==="text"?(0,r.jsx)(X.oz,{remarkPlugins:[$.A],children:e.text},t):(null==e?void 0:e.type)==="image_url"&&(null==(n=e.image_url)?void 0:n.url)?(0,r.jsx)("img",{src:e.image_url.url,alt:"Image ".concat(t+1),style:{maxWidth:"100%",height:"auto",borderRadius:"4px"}},t):null})}),"tool"!==a.role&&"string"!=typeof a.content&&!Array.isArray(a.content)&&!eA(a)&&(0,r.jsx)(p.default,{variant:"body2",fontStyle:"italic",color:"text.secondary",children:"[No text content]"})]}),[...eA(a)?a.tool_calls.filter(e=>{var t;return!!(t=e.function.name)&&(t.startsWith(ef.n9)||"handoff"===t)}):[],...null!=m?m:[]].map((e,t)=>(0,r.jsxs)(l.default,{sx:{mt:1,display:"flex",alignItems:"center",gap:.5,color:"secondary.main",fontStyle:"italic"},children:[(0,r.jsx)(eu.A,{fontSize:"small"}),(0,r.jsxs)(p.default,{variant:"body2",sx:{display:"flex",alignItems:"center",gap:.5},children:["Handoff to",(0,r.jsx)(l.default,{component:"span",sx:{fontWeight:"bold",fontStyle:"normal"},children:function(e,t){let n=e.startsWith(ef.n9)?e.slice(ef.n9.length):e,r=n.replace(/_\d+$/,""),o=t.find(e=>{let t=(0,ef.RN)(e.label);return t===n||t===r});return(null==o?void 0:o.label)?o.label:r.split("_").filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")||"target node"}(e.function.name,f)})]})]},e.id||"handoff-".concat(a.id,"-").concat(t))),g&&g.length>0&&(0,r.jsx)(ek,{pairs:g,messageId:a.id}),"tool"===a.role&&a.tool_call_id&&!eS(a)&&(0,r.jsxs)(l.default,{children:[(0,r.jsxs)(p.default,{variant:"body2",sx:{display:"flex",alignItems:"center",color:"text.secondary",mb:1},children:[(0,r.jsx)(el.A,{fontSize:"small",sx:{mr:1}}),"The tool responded to the assistant"]}),(0,r.jsxs)(Y.A,{defaultExpanded:!1,sx:{mb:.5,"&:before":{display:"none"},boxShadow:"none",bgcolor:"rgba(0, 0, 0, 0.02)"},children:[(0,r.jsx)(G.A,{expandIcon:(0,r.jsx)(eo.A,{}),children:(0,r.jsxs)(l.default,{sx:{display:"flex",alignItems:"center"},children:[(0,r.jsx)(el.A,{fontSize:"small",sx:{mr:1,color:"text.secondary"}}),(0,r.jsx)(p.default,{variant:"subtitle2",children:"Tool Result"}),(0,r.jsx)(c.A,{label:"ID: ".concat(a.tool_call_id.substring(0,8),"..."),size:"small",color:"default",variant:"outlined",sx:{ml:1,height:20,fontSize:"0.7rem"}}),(0,r.jsx)(W.A,{control:(0,r.jsx)(L.A,{size:"small",checked:h,onChange:e=>b(a.id,e.target.checked),onClick:e=>e.stopPropagation()}),label:"Raw",sx:{mr:1,ml:"auto","& .MuiTypography-root":{fontSize:"0.75rem"}},onClick:e=>e.stopPropagation()})]})}),(0,r.jsx)(Q.A,{sx:{pt:0,pb:1,overflow:"hidden"},children:(0,r.jsx)(eC,{content:a.content,showRaw:h})})]})]}),a.attachments&&a.attachments.length>0&&(0,r.jsxs)(l.default,{sx:{mt:1,pt:1,borderTop:"1px solid",borderColor:"divider"},children:[(0,r.jsx)(p.default,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Attachments:"}),a.attachments.map(e=>"image"===e.type?(0,r.jsx)(l.default,{sx:{mb:.5},children:(0,r.jsx)("img",{src:e.content,alt:e.originalName||"image attachment",style:{maxWidth:"100%",height:"auto",borderRadius:"4px"}})},e.id):(0,r.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",p:1,borderRadius:1,bgcolor:"rgba(0, 0, 0, 0.04)",mb:.5},children:["document"===e.type?(0,r.jsx)(en.A,{fontSize:"small",sx:{mr:1}}):(0,r.jsx)(er.A,{fontSize:"small",sx:{mr:1}}),(0,r.jsx)(p.default,{variant:"caption",sx:{wordBreak:"break-all"},children:e.originalName||"".concat(e.type," attachment")})]},e.id))]})]})]})}),eT=e=>{let{messages:t,pendingToolCalls:n,availableNodes:a=[],conversationId:s,onToggleDisabled:i,onSplitConversation:d,onEditMessage:f,onApproveToolCall:h,onRejectToolCall:g}=e,[m,x]=(0,o.useState)(50);(0,o.useEffect)(()=>{x(50)},[s]);let v=Math.max(0,(Array.isArray(t)?t.length:0)-m),b=(0,o.useMemo)(()=>Array.isArray(t)?v>0?t.slice(v):t:[],[t,v]),{pairsByAnchorId:y,handoffsByAnchorId:j,consumedToolCallIds:w,groups:A}=(0,o.useMemo)(()=>(function(e){let t=new Map,n=new Map,r=new Set,o=new Set,a=new Map,l=[];if(!Array.isArray(e))return{pairsByAnchorId:t,handoffsByAnchorId:n,hoistedAssistantIds:r,consumedToolCallIds:o,groups:l};let s=new Map;for(let t of e)"tool"===t.role&&"string"==typeof t.tool_call_id&&t.tool_call_id&&!s.has(t.tool_call_id)&&s.set(t.tool_call_id,t);let i=e=>{let r=a.get(e);return r||(r={anchorId:e,memberIds:[e],hoistedIds:[]},a.set(e,r),l.push(r),t.set(e,[]),n.set(e,[])),r},d=null;for(let a of e){if("user"===a.role||"system"===a.role){d=null;continue}if("assistant"!==a.role)continue;let e=Array.isArray(a.tool_calls)?a.tool_calls:[],l=[],p=[];for(let t of e){var c,u;if("function"!==t.type)continue;if((u=null==(c=t.function)?void 0:c.name)&&(u.startsWith(ef.n9)||"handoff"===u)){p.push(t);continue}let e=t.id,n=e?s.get(e):void 0;e&&o.add(e),l.push({toolCall:t,result:n})}let f=function(e){let t=e.content;return"string"==typeof t?t.trim().length>0:!!Array.isArray(t)&&t.some(e=>{var t,n;return!!e&&"object"==typeof e&&("text"===e.type?"string"==typeof e.text&&e.text.trim().length>0:"image_url"===e.type?!!(null==(t=e.image_url)?void 0:t.url):"input_audio"===e.type&&!!(null==(n=e.input_audio)?void 0:n.data))})}(a),h=l.length>0||p.length>0;if(f){d=a.id,h&&(i(a.id),t.get(a.id).push(...l),n.get(a.id).push(...p));continue}if(h)if(d){let e=i(d);t.get(d).push(...l),n.get(d).push(...p),e.memberIds.push(a.id),e.hoistedIds.push(a.id),r.add(a.id)}else d=a.id,i(a.id),t.get(a.id).push(...l),n.get(a.id).push(...p)}return{pairsByAnchorId:t,handoffsByAnchorId:n,hoistedAssistantIds:r,consumedToolCallIds:o,groups:l}})(t),[t]),S=(0,o.useMemo)(()=>new Set(b.map(e=>e.id)),[b]),{renderPairsById:I,renderHandoffsById:C,suppressedIds:k}=(0,o.useMemo)(()=>{let e=new Map,t=new Map,n=new Set;for(let l of A){var r,o,a;let s=null!=(r=y.get(l.anchorId))?r:[],i=null!=(o=j.get(l.anchorId))?o:[],d=null!=(a=l.memberIds.find(e=>S.has(e)))?a:l.anchorId;for(let r of(s.length>0&&e.set(d,s),i.length>0&&t.set(d,i),l.hoistedIds))r!==d&&n.add(r)}return{renderPairsById:e,renderHandoffsById:t,suppressedIds:n}},[A,y,j,S]),[E,T]=o.useState(null),[N,z]=o.useState(null),[D,P]=o.useState(null),[F,M]=o.useState(!1),[_,O]=o.useState(""),[W,L]=o.useState(null),[q,B]=o.useState({}),U=(0,o.useCallback)((e,t)=>{ew.debug("handleMenuOpen called with messageId: ".concat(t)),T(e.currentTarget),z(t)},[]),X=(0,o.useCallback)((e,t)=>{B(n=>({...n,[e]:t}))},[]),$=(0,o.useCallback)(e=>{O(e)},[]),Z=(0,o.useCallback)(e=>{L(e)},[]),en=()=>{T(null),z(null)},er=()=>{if(N){let e=t.find(e=>e.id===N);e&&"user"===e.role&&"string"==typeof e.content&&(O(e.content),L(e.processNodeId||(a.length>0?a[0].id:"")),P(N),M(!0)),en()}},el=()=>{D&&f&&(f(D,_,W||""),M(!1),P(null),L(null))},es=()=>{M(!1),P(null),L(null)},eu=(0,o.useMemo)(()=>{let e=new Map;for(let t of a)e.set(t.id,t.label);return e},[a]),eh=(0,o.useMemo)(()=>N&&t.find(e=>e.id===N)||null,[N,t]);return(0,r.jsxs)(l.default,{sx:{display:"flex",flexDirection:"column",gap:2},children:[v>0&&(0,r.jsx)(l.default,{sx:{display:"flex",justifyContent:"center"},children:(0,r.jsxs)(u.A,{size:"small",variant:"outlined",onClick:()=>x(e=>e+200),children:["Show earlier messages (",v," more)"]})}),b.map((e,t)=>{if(eS(e)||"tool"===e.role&&"string"==typeof e.tool_call_id&&w.has(e.tool_call_id)||k.has(e.id))return null;let n=F&&e.id===D;return(0,r.jsx)(eE,{message:e,nodeLabel:e.processNodeId?eu.get(e.processNodeId):void 0,availableNodes:a,showRaw:!!q[e.id],toolCallPairs:I.get(e.id),hoistedHandoffs:C.get(e.id),edit:n?{content:_,nodeId:W}:null,onMenuOpen:U,onToggleRaw:X,onEditContentChange:$,onEditNodeChange:Z,onSaveEdit:n?el:void 0,onCancelEdit:n?es:void 0},e.id||"msg-".concat(v+t))}),(0,r.jsxs)(V.A,{anchorEl:E,open:!!E,onClose:en,children:[eh&&(()=>{ew.debug("Entering menu item rendering logic",{activeMessageId:N}),ew.debug("Active message object for menu:",eh),ew.debug("Active message role for menu:",null==eh?void 0:eh.role);try{let e=!!f,t="user"===eh.role&&e;if(ew.debug("Rendering Edit Message menu item check",{activeMessageId:eh.id,messageRole:eh.role,onEditMessagePropType:typeof f,hasOnEditMessageProp:e,shouldShowEdit:t}),t)return(0,r.jsxs)(J.A,{onClick:er,children:[(0,r.jsx)(K.A,{children:(0,r.jsx)(ei.A,{fontSize:"small"})}),(0,r.jsx)(R.A,{children:"Edit Message"})]});return null}catch(e){return ew.error("Error rendering Edit Message menu item",{error:e}),null}})(),(0,r.jsxs)(J.A,{onClick:()=>{N&&(i(N),en())},children:[(0,r.jsx)(K.A,{children:(0,r.jsx)(ee.A,{fontSize:"small"})}),(0,r.jsx)(R.A,{children:(null==eh?void 0:eh.disabled)?"Enable Message":"Disable Message"})]}),(0,r.jsxs)(J.A,{onClick:()=>{N&&(d(N),en())},children:[(0,r.jsx)(K.A,{children:(0,r.jsx)(et.A,{fontSize:"small"})}),(0,r.jsx)(R.A,{children:"Split Conversation Here"})]})]}),n&&n.length>0&&(0,r.jsxs)(H.A,{elevation:2,sx:{p:2,mt:2,bgcolor:"warning.light",border:"1px solid",borderColor:"warning.main",borderRadius:2},children:[(0,r.jsxs)(p.default,{variant:"h6",sx:{mb:1,display:"flex",alignItems:"center"},children:[(0,r.jsx)(ea.A,{sx:{mr:1}})," Tool Approval Required"]}),(0,r.jsx)(p.default,{variant:"body2",sx:{mb:2},children:"The assistant wants to use the following tool(s). Please approve or reject each request."}),n.map((e,t)=>{let n=(0,ep.yo)(e.function.name),o=e.function.arguments;try{let t=JSON.parse(e.function.arguments);o=JSON.stringify(t,null,2)}catch(e){}return(0,r.jsxs)(Y.A,{defaultExpanded:!0,sx:{mb:1,"&:before":{display:"none"},boxShadow:1},children:[(0,r.jsx)(G.A,{expandIcon:(0,r.jsx)(eo.A,{}),children:(0,r.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",width:"100%"},children:[(0,r.jsx)(ea.A,{fontSize:"small",sx:{mr:1,color:"primary.main"}}),(0,r.jsx)(p.default,{variant:"subtitle2",sx:{fontWeight:"bold",flexGrow:1},children:n}),(0,r.jsx)(c.A,{label:"ID: ".concat(e.id?e.id.substring(0,8):"N/A","..."),size:"small",variant:"outlined",sx:{ml:1,height:20,fontSize:"0.7rem"}})]})}),(0,r.jsxs)(Q.A,{sx:{pt:0},children:[(0,r.jsx)(l.default,{component:"pre",sx:{bgcolor:"action.hover",p:1,borderRadius:"4px",overflowX:"auto",fontFamily:"monospace",fontSize:"0.75rem",my:.5,maxHeight:"150px",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:o}),(0,r.jsxs)(l.default,{sx:{display:"flex",justifyContent:"flex-end",gap:1,mt:1},children:[(0,r.jsx)(u.A,{variant:"outlined",color:"error",size:"small",startIcon:(0,r.jsx)(ec.A,{}),onClick:()=>g&&g(e.id),disabled:!g,children:"Reject"}),(0,r.jsx)(u.A,{variant:"contained",color:"success",size:"small",startIcon:(0,r.jsx)(ed.A,{}),onClick:()=>h&&h(e.id),disabled:!h,children:"Approve"})]})]})]},e.id||"ptc-".concat(t))})]})]})};var eN=n(84869);let eR=(0,eb.h)("frontend/services/transcription");async function ez(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{onProgress:n,onStatusChange:r,language:o}=t;try{if(eR.debug("Starting transcription service"),r&&r("Initializing transcription..."),!(0,eN.G)().supported)throw Error("Web Speech API is not supported in this browser");r&&r("Using browser speech recognition...");let t=await (0,eN.S)(e,{language:o,onInterimResult:e=>{r&&r("Transcribing: ".concat(e)),n&&n(50)}});return r&&r("Transcription completed"),eR.debug("Web Speech API transcription completed successfully",{textLength:t.length}),{text:t,success:!0,engine:"webspeech"}}catch(e){return eR.error("Transcription failed",{error:e}),r&&r("Transcription failed"),{text:"Transcription failed. Please check if your browser supports speech recognition.",success:!1,error:e instanceof Error?e.message:String(e)}}}var eD=n(9164),eP=n(9562),eF=n(22822),eM=n(35205),e_=n(77073),eO=n(55930),eW=n(9693),eL=n(4823),eH=n(74879);let eq=(0,eb.h)("frontend/components/Chat/ChatInput"),eB=e=>{var t;let{onSendMessage:n,disabled:a=!1,requireApproval:d=!1,onRequireApprovalChange:f,executeInDebugger:h=!1,onExecuteInDebuggerChange:v,availableNodes:y=[],currentNodeId:j=null,nodeOverrideActive:w=!1,onSelectNode:A}=e,{settings:S}=(0,eD.useStorage)(),[I,C]=(0,o.useState)(""),[k,T]=(0,o.useState)([]),[N,z]=(0,o.useState)(!1),[D,P]=(0,o.useState)(0),[F,M]=(0,o.useState)(null),O=(0,o.useRef)(null),L=(0,o.useRef)(null),q=(0,o.useRef)([]),[B,U]=(0,o.useState)(null),Y=(null==(t=y.find(e=>e.id===j))?void 0:t.label)||(j?"".concat(j.substring(0,6),"..."):"Start"),[G,Q]=(0,o.useState)(!1),[X,$]=(0,o.useState)(""),[Z,ee]=(0,o.useState)(""),[et,eo]=(0,o.useState)("document"),[ea,el]=(0,o.useState)(!1),[es,ei]=(0,o.useState)(0),[ed,ec]=(0,o.useState)(""),eu=()=>{(I.trim()||k.length>0)&&(eq.debug("Sending message",{messageLength:I.length,attachmentsCount:k.length}),n(I,k),C(""),T([]))},ep=async e=>{let t=e.target.files;if(!t||0===t.length)return;let n=t[0];eq.debug("File selected",{fileName:n.name,fileSize:n.size,fileType:n.type}),ee("Processing ".concat(n.name)),eo("document"),$(""),el(!0),Q(!0);try{let e=await ef(n);eq.debug("File read successfully",{contentLength:e.length}),$(e),el(!1)}catch(e){eq.error("Error reading file:",e),$("Error reading file. Please try again with a text file."),el(!1)}O.current&&(O.current.value="")},ef=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=e=>{var r;(null==(r=e.target)?void 0:r.result)?t(e.target.result):n(Error("Failed to read file"))},r.onerror=()=>{n(Error("Error reading file"))},r.readAsText(e)}),eh=async()=>{eq.debug("Starting audio recording");try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});eq.debug("Audio stream obtained successfully"),q.current=[];let t=new MediaRecorder(e);L.current=t,t.ondataavailable=e=>{e.data.size>0&&q.current.push(e.data)},t.onstop=async()=>{let t=new Blob(q.current,{type:"audio/wav"});ee("Audio Recording"),eo("audio"),$(""),el(!0),Q(!0);try{if(((null==S?void 0:S.speech)||{enabled:!0,modelSize:"base",autoDownload:!1}).enabled){ec("Initializing transcription..."),ei(0);let e=await ez(t,{onProgress:ei,onStatusChange:ec,language:navigator.language});if(e.success){let t=e.text;$(t),eq.debug("Transcription successful",{textLength:e.text.length,engine:e.engine})}else $("Error transcribing audio: ".concat(e.error,".")),eq.error("Transcription failed",{error:e.error})}else $("Speech recognition is disabled in settings. Enable it to get automatic transcriptions.")}catch(e){eq.error("Error handling audio recording",{error:e}),$("Failed to process audio: ".concat(e))}finally{el(!1),e.getTracks().forEach(e=>e.stop())}},t.start(),z(!0);let n=setInterval(()=>{P(e=>e+1)},1e3);M(n)}catch(e){eq.error("Error starting recording:",e),alert("Could not access microphone. Please check permissions.")}};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(H.A,{elevation:3,sx:{p:2,display:"flex",flexDirection:"column",borderRadius:2},children:[k.length>0&&(0,r.jsx)(l.default,{sx:{mb:2,display:"flex",flexWrap:"wrap",gap:1},children:k.map(e=>(0,r.jsxs)(H.A,{variant:"outlined",sx:{p:1,display:"flex",alignItems:"center",borderRadius:1,bgcolor:"background.default"},children:["image"===e.type?(0,r.jsx)(l.default,{component:"img",src:e.content,alt:e.originalName||"pasted image",sx:{width:40,height:40,objectFit:"cover",borderRadius:1,mr:1}}):"document"===e.type?(0,r.jsx)(en.A,{fontSize:"small",sx:{mr:1}}):(0,r.jsx)(er.A,{fontSize:"small",sx:{mr:1}}),(0,r.jsx)(p.default,{variant:"body2",noWrap:!0,sx:{maxWidth:150},children:e.originalName||"".concat(e.type," attachment")}),(0,r.jsx)(i.A,{size:"small",onClick:()=>(e=>{eq.debug("Removing attachment",{id:e}),T(k.filter(t=>t.id!==e))})(e.id),sx:{ml:1},children:(0,r.jsx)(e_.A,{fontSize:"small"})})]},e.id))}),(0,r.jsxs)(l.default,{sx:{display:"flex",alignItems:"flex-end"},children:[(0,r.jsx)(eP.A,{fullWidth:!0,multiline:!0,maxRows:4,"data-tour":"chat-input",placeholder:"Type a message...",value:I,onChange:e=>{C(e.target.value)},onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(eq.debug("Enter key pressed, sending message"),e.preventDefault(),eu())},onPaste:e=>{var t;let n=null==(t=e.clipboardData)?void 0:t.items;if(!n)return;let r=[];for(let e=0;e<n.length;e++){let t=n[e];if("file"===t.kind&&t.type.startsWith("image/")){let e=t.getAsFile();e&&r.push(e)}}0!==r.length&&(e.preventDefault(),eq.debug("Pasting image attachment(s)",{count:r.length}),r.forEach(e=>{let t=new FileReader;t.onload=t=>{var n;let r=null==(n=t.target)?void 0:n.result;if("string"!=typeof r)return;let o=(e.type.split("/")[1]||"png").split("+")[0];T(t=>[...t,{id:(0,eH.A)(),type:"image",content:r,originalName:e.name&&!/^image\.\w+$/i.test(e.name)?e.name:"Pasted image.".concat(o)}])},t.onerror=()=>eq.error("Failed to read pasted image"),t.readAsDataURL(e)}))},disabled:a,variant:"outlined",sx:{mr:1},InputProps:{sx:{borderRadius:2}}}),(0,r.jsx)(s.A,{title:"Attach document",children:(0,r.jsx)(i.A,{color:"primary",onClick:()=>{var e;eq.debug("File selection triggered"),null==(e=O.current)||e.click()},disabled:a||N,children:(0,r.jsx)(en.A,{})})}),(0,r.jsx)("input",{type:"file",ref:O,onChange:ep,style:{display:"none"},accept:".txt,.md,.json,.csv,.html,.xml,.js,.ts,.jsx,.tsx,.css,.scss"}),(0,r.jsx)(s.A,{title:N?"Stop recording":"Record audio",children:(0,r.jsxs)(i.A,{color:N?"error":"primary",onClick:N?()=>{eq.debug("Stopping audio recording"),L.current&&"inactive"!==L.current.state&&(L.current.stop(),z(!1),F&&(clearInterval(F),M(null)),P(0))}:eh,disabled:a,children:[(0,r.jsx)(er.A,{}),N&&(0,r.jsx)(p.default,{variant:"caption",sx:{position:"absolute",bottom:-15,fontSize:"0.7rem",color:"error.main"},children:(e=>{let t=Math.floor(e/60);return"".concat(t.toString().padStart(2,"0"),":").concat((e%60).toString().padStart(2,"0"))})(D)})]})}),(0,r.jsx)(s.A,{title:"Send message",children:(0,r.jsx)(i.A,{color:"primary",onClick:eu,disabled:a||!I.trim()&&0===k.length,children:(0,r.jsx)(eM.A,{})})})]})," ",(f||A&&y.length>0)&&(0,r.jsxs)(l.default,{sx:{mt:1,display:"flex",justifyContent:"flex-start",alignItems:"center",flexWrap:"wrap",gap:1},children:[A&&y.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.A,{title:w?"Next message will run on this manually picked node — click to change":"Node the next message will run on — click to pick a different one",children:(0,r.jsx)(c.A,{icon:(0,r.jsx)(eO.A,{}),label:Y,size:"small",color:w?"primary":"default",variant:w?"filled":"outlined",onClick:e=>U(e.currentTarget),disabled:a})}),(0,r.jsxs)(V.A,{anchorEl:B,open:!!B,onClose:()=>U(null),children:[(0,r.jsxs)(J.A,{selected:!w,onClick:()=>{A(null),U(null)},children:[(0,r.jsx)(K.A,{children:(0,r.jsx)(eL.A,{fontSize:"small"})}),(0,r.jsx)(R.A,{primary:"Automatic",secondary:"Follow the conversation",secondaryTypographyProps:{variant:"caption"}})]}),(0,r.jsx)(E.A,{}),y.map(e=>(0,r.jsxs)(J.A,{selected:w&&e.id===j,onClick:()=>{A(e.id),U(null)},children:[(0,r.jsx)(K.A,{children:e.id===j?(0,r.jsx)(eW.A,{fontSize:"small"}):null}),(0,r.jsx)(R.A,{primary:e.label})]},e.id))]})]}),f&&(0,r.jsx)(W.A,{control:(0,r.jsx)(eF.A,{checked:d,onChange:e=>f(e.target.checked),size:"small",disabled:a}),label:(0,r.jsx)(p.default,{variant:"caption",children:"Require Tool Approvals"}),sx:{mr:"auto"}}),v&&(0,r.jsx)(W.A,{control:(0,r.jsx)(eF.A,{checked:h,onChange:e=>v(e.target.checked),size:"small",disabled:a}),label:(0,r.jsx)(p.default,{variant:"caption",children:"Execute in Debugger"}),sx:{ml:2}})]})," "]})," ",(0,r.jsxs)(g.A,{open:G,onClose:()=>!ea&&Q(!1),maxWidth:"md",fullWidth:!0,children:[(0,r.jsxs)(m.A,{children:[Z,!ea&&(0,r.jsx)(i.A,{"aria-label":"close",onClick:()=>Q(!1),sx:{position:"absolute",right:8,top:8},children:(0,r.jsx)(e_.A,{})})]}),(0,r.jsx)(x.A,{dividers:!0,children:ea?(0,r.jsxs)(l.default,{sx:{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",p:4},children:[(0,r.jsx)(_.default,{value:"audio"===et&&es?es:void 0,variant:"audio"===et&&es>0?"determinate":"indeterminate"}),"audio"===et&&(0,r.jsxs)(l.default,{sx:{mt:2,textAlign:"center"},children:[(0,r.jsx)(p.default,{variant:"body2",children:ed||"Processing audio..."}),es>0&&(0,r.jsxs)(p.default,{variant:"body2",color:"text.secondary",sx:{mt:1},children:[Math.round(es),"%"]})]})]}):(0,r.jsx)(eP.A,{multiline:!0,fullWidth:!0,minRows:10,maxRows:20,value:X,onChange:e=>$(e.target.value),variant:"outlined",placeholder:"document"===et?"Document content":"Audio transcription"})}),(0,r.jsxs)(b.A,{children:[(0,r.jsx)(u.A,{onClick:()=>Q(!1),disabled:ea,children:"Cancel"}),(0,r.jsx)(u.A,{onClick:()=>{eq.debug("Adding attachment",{type:et,titleLength:Z.length}),T([...k,{id:(0,eH.A)(),type:et,content:X,originalName:Z}]),Q(!1)},variant:"contained",disabled:ea||!X.trim(),children:"Add to Message"})]})]})]})};var eU=n(25731);let eJ=e=>{var t;let{liveStats:n,onStop:a,stopDisabled:s,awaitingApproval:i}=e,[d,c]=(0,o.useState)(()=>Date.now());(0,o.useEffect)(()=>{let e=setInterval(()=>c(Date.now()),1e3);return()=>clearInterval(e)},[]);let f=n?Math.max(0,Math.round((d-n.startedAt)/1e3)):0,h=n?Math.round((d-n.lastEventAt)/1e3):0,g=!i&&!!n&&h>=60;return(0,r.jsxs)(l.default,{sx:{display:"flex",flexDirection:"column",alignItems:"center",my:2,gap:.5},children:[(0,r.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",gap:2},children:[i?(0,r.jsx)(eU.A,{fontSize:"small",color:"warning"}):(0,r.jsx)(_.default,{size:20,color:g?"warning":"primary"}),(0,r.jsx)(p.default,{variant:"body2",color:"textSecondary",children:i?"Waiting for tool approval":(null==n?void 0:n.activeNode)?"Running: ".concat(n.activeNode):"Working…"}),(0,r.jsx)(u.A,{variant:"outlined",color:"secondary",size:"small",onClick:a,disabled:s,children:"Stop"})]}),!i&&(0,r.jsxs)(p.default,{variant:"caption",color:g?"warning.main":"textSecondary",children:[(null!=(t=null==n?void 0:n.totalTokens)?t:0).toLocaleString()," tokens \xb7 ",f,"s elapsed",g?" \xb7 no activity for ".concat(h,"s — may be stuck"):""]})]})};var eY=n(88538),eG=n(16963),eQ=n(2456),eV=n(64792),eK=n(71356),eX=n(45202),e$=n(52005),eZ=n(77998);let e0=e=>e>=1e3?"".concat((e/1e3).toFixed(e>=1e5?0:1),"k"):"".concat(e),e1=e=>{var t;let{usage:n,contextInfo:a,availableNodes:i}=e,[d,u]=(0,o.useState)(null);if(!n&&!a)return null;let f=(null==n?void 0:n.byNode)?Object.entries(n.byNode):[],h=null!=(t=null==n?void 0:n.cacheReadTokens)?t:0,g=n?Math.max(0,n.promptTokens-h):0,m=n?Math.max(0,n.totalTokens-h):0,x=(null==a?void 0:a.contextWindow)&&a.contextWindow>0?Math.min(100,Math.round(a.promptTokens/a.contextWindow*100)):void 0;return(0,r.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",gap:1.5,flexShrink:0},children:[n&&m>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.A,{title:"Tokens this conversation — ".concat(g.toLocaleString()," prompt / ").concat(n.completionTokens.toLocaleString()," completion").concat(h>0?" (+".concat(h.toLocaleString()," cached reads, not counted)"):"",". Click for the per-node breakdown."),children:(0,r.jsx)(c.A,{icon:(0,r.jsx)(eZ.A,{}),label:"".concat(e0(m)," tokens"),size:"small",variant:"outlined",onClick:e=>u(e.currentTarget),sx:{cursor:"pointer"}})}),(0,r.jsx)(eY.Ay,{open:!!d,anchorEl:d,onClose:()=>u(null),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:(0,r.jsxs)(l.default,{sx:{p:2,maxWidth:420},children:[(0,r.jsx)(p.default,{variant:"subtitle2",sx:{mb:1},children:"Token usage by node"}),(0,r.jsxs)(eG.A,{size:"small",children:[(0,r.jsx)(eQ.A,{children:(0,r.jsxs)(eV.A,{children:[(0,r.jsx)(eK.A,{children:"Node"}),(0,r.jsx)(eK.A,{align:"right",children:"Prompt"}),(0,r.jsx)(eK.A,{align:"right",children:"Completion"}),(0,r.jsx)(eK.A,{align:"right",children:"Total"})]})}),(0,r.jsxs)(eX.A,{children:[f.map(e=>{let[t,n]=e;return(0,r.jsxs)(eV.A,{children:[(0,r.jsx)(eK.A,{children:(0,r.jsx)(s.A,{title:t,children:(0,r.jsx)("span",{children:(e=>{var t;return(null==(t=i.find(t=>t.id===e))?void 0:t.label)||"".concat(e.substring(0,8),"…")})(t)})})}),(0,r.jsx)(eK.A,{align:"right",children:n.promptTokens.toLocaleString()}),(0,r.jsx)(eK.A,{align:"right",children:n.completionTokens.toLocaleString()}),(0,r.jsx)(eK.A,{align:"right",children:n.totalTokens.toLocaleString()})]},t)}),(0,r.jsxs)(eV.A,{children:[(0,r.jsx)(eK.A,{sx:{fontWeight:"bold"},children:"Total"}),(0,r.jsx)(eK.A,{align:"right",sx:{fontWeight:"bold"},children:n.promptTokens.toLocaleString()}),(0,r.jsx)(eK.A,{align:"right",sx:{fontWeight:"bold"},children:n.completionTokens.toLocaleString()}),(0,r.jsx)(eK.A,{align:"right",sx:{fontWeight:"bold"},children:n.totalTokens.toLocaleString()})]})]})]}),h>0&&(0,r.jsxs)(p.default,{variant:"caption",color:"text.secondary",sx:{display:"block",mt:1},children:["Prompt totals include ",h.toLocaleString()," tokens re-read from the prompt cache. The header chip shows the fresh figure (",m.toLocaleString(),") with those cached reads excluded."]})]})})]}),a&&void 0!==x&&(0,r.jsx)(s.A,{title:"Context of the latest call".concat(a.modelDisplayName?" (".concat(a.modelDisplayName,")"):"",": ").concat(a.promptTokens.toLocaleString()," of ").concat(a.contextWindow.toLocaleString()," tokens"),children:(0,r.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",gap:1,minWidth:140},children:[(0,r.jsx)(e$.A,{variant:"determinate",value:x,color:x>=90?"error":x>=70?"warning":"primary",sx:{flex:1,height:6,borderRadius:3}}),(0,r.jsxs)(p.default,{variant:"caption",color:"text.secondary",sx:{whiteSpace:"nowrap"},children:[e0(a.promptTokens),"/",e0(a.contextWindow)," (",x,"%)"]})]})}),a&&void 0===x&&(0,r.jsx)(s.A,{title:"Prompt size of the latest call".concat(a.modelDisplayName?" (".concat(a.modelDisplayName,")"):"",". Set the model's Context Window in its settings to see a usage meter."),children:(0,r.jsxs)(p.default,{variant:"caption",color:"text.secondary",sx:{whiteSpace:"nowrap"},children:["ctx ",e0(a.promptTokens)]})})]})};var e2=n(56900),e5=n(90057),e6=n(96362),e4=n(9226),e8=n(68503);let e3=e=>{let{selectedFlowId:t,onSelectFlow:n,disabled:a=!1}=e,[s,i]=(0,o.useState)([]),[d,c]=(0,o.useState)(!0),[f,h]=(0,o.useState)(null),[g,m]=(0,o.useState)(!1);(0,o.useEffect)(()=>{(async()=>{c(!0),h(null);try{let e=await e5.g.loadFlows();i(e)}catch(e){console.error("Error loading flows:",e),h("Failed to load flows")}finally{c(!1)}})()},[]);let x=e=>{n(e),m(!1)},v=async e=>{let t=s.find(t=>t.id===e);if(!t)return;let n=!t.favorite,r={...t,favorite:n||void 0};try{(await e5.g.updateFlow(r)).success&&i(t=>t.map(t=>t.id===e?r:t))}catch(e){console.error("Error toggling flow favorite:",e)}},b=(0,e8.E)("flows",s),y=e=>({key:e.id,content:(e=>(0,r.jsx)(e4.A,{flow:e,selected:e.id===t,onSelect:x,onToggleFavorite:v,pickerMode:!0}))(e)}),j=b.items.map(y),w=b.groups?b.groups.map(e=>({...e,items:e.items.map(y)})):null,A=(()=>{if(!t)return"";let e=s.find(e=>e.id===t);return e?e.name:""})();return(0,r.jsxs)(l.default,{children:[(0,r.jsx)(p.default,{variant:"subtitle1",gutterBottom:!0,children:"Select Flow"}),d?(0,r.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,r.jsx)(_.default,{size:20}),(0,r.jsx)(p.default,{variant:"body2",color:"text.secondary",children:"Loading flows..."})]}):f?(0,r.jsx)(p.default,{color:"error",variant:"body2",children:f}):0===s.length?(0,r.jsx)(p.default,{variant:"body2",color:"text.secondary",children:"No flows available. Create some flows in the Flow Builder first."}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(u.A,{variant:"outlined",startIcon:(0,r.jsx)(e2.A,{}),onClick:()=>m(!0),disabled:a,sx:{textTransform:"none",maxWidth:"100%"},children:(0,r.jsx)(l.default,{component:"span",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t&&A||"Select a flow"})}),(0,r.jsx)(p.default,{variant:"caption",color:"text.secondary",display:"block",sx:{mt:.5},children:t?'Using "'.concat(A,'" flow for this conversation'):"Select a flow to use for this conversation"}),(0,r.jsx)(e6.A,{open:g,onClose:()=>m(!1),title:"Select a flow",description:"Pick the flow this conversation will run.",skeleton:(0,r.jsx)(e4.o,{}),emptyMessage:"No flows available. Create some flows in the Flow Builder first.",searchable:!0,searchPlaceholder:"Search flows…",searchTerm:b.searchTerm,onSearchChange:b.setSearchTerm,items:j,groups:w,collapsedKeys:b.collapsedKeys,onToggleGroup:b.toggleGroup})]})]})};var e7=n(43076);let e9=(0,eb.h)("frontend/components/Chat/QuickChatDialog"),te=e=>{let{open:t,onClose:n,onStart:a}=e,[s,f]=(0,o.useState)([]),[h,v]=(0,o.useState)([]),[y,j]=(0,o.useState)(!1),[w,A]=(0,o.useState)(null),[S,I]=(0,o.useState)(""),[C,k]=(0,o.useState)(""),[T,N]=(0,o.useState)({}),[R,z]=(0,o.useState)(!1),[D,P]=(0,o.useState)(null);(0,o.useEffect)(()=>{if(!t)return;let e=!1;return j(!0),A(null),(async()=>{try{let[t,n]=await Promise.all([e7.N.loadModels(),ex.S.loadServerConfigs()]);if(e)return;f(t);let r=Array.isArray(n)?n.filter(e=>!e.disabled).map(e=>e.name):[];v(r),I(e=>{var n;return e||(null==(n=t[0])?void 0:n.id)||""})}catch(t){e||(e9.warn("Failed to load models/servers for quick chat",t),A("Could not load models or servers."))}finally{e||j(!1)}})(),()=>{e=!0}},[t]),(0,o.useEffect)(()=>{t||(k(""),N({}),P(null),z(!1))},[t]);let F=(0,o.useCallback)(e=>{N(t=>{let n=t[e];return(null==n?void 0:n.selected)?{...t,[e]:{...n,selected:!1}}:{...t,[e]:{...null!=n?n:{tools:null,expanded:!1},selected:!0}}})},[]),M=(0,o.useCallback)(async e=>{N(t=>{var n;let r=null!=(n=t[e])?n:{selected:!1,tools:null,expanded:!1};return{...t,[e]:{...r,expanded:!r.expanded}}});let t=T[e];if(!(null==t?void 0:t.available)&&!(null==t?void 0:t.loading)){N(t=>{var n;return{...t,[e]:{...null!=(n=t[e])?n:{selected:!1,tools:null,expanded:!0},loading:!0}}});try{let{tools:t}=await ex.S.listServerTools(e),n=Array.isArray(t)?t.map(e=>e.name).filter(Boolean):[];N(t=>{var r;return{...t,[e]:{...null!=(r=t[e])?r:{selected:!1,tools:null,expanded:!0},available:n,loading:!1}}})}catch(t){e9.warn("Failed to load tools for ".concat(e),t),N(t=>{var n;return{...t,[e]:{...null!=(n=t[e])?n:{selected:!1,tools:null,expanded:!0},available:[],loading:!1}}})}}},[T]),L=(0,o.useCallback)((e,t,n)=>{N(r=>{var o,a;let l=null!=(o=r[e])?o:{selected:!0,tools:null,expanded:!0},s=new Set(null!=(a=l.tools)?a:new Set(n));return s.has(t)?s.delete(t):s.add(t),{...r,[e]:{...l,selected:!0,tools:s}}})},[]),H=!!S&&!R&&!y,Y=async()=>{if(!S)return void P("Pick a model to chat with.");z(!0),P(null);let e=h.filter(e=>{var t;return null==(t=T[e])?void 0:t.selected}).map(e=>{let t=T[e];return!t.tools||t.available&&t.tools.size===t.available.length?{name:e}:{name:e,enabledTools:[...t.tools]}});try{await a({modelId:S,servers:e,systemPrompt:C.trim()||void 0})}catch(e){e9.warn("Quick chat failed to start",e),P(e instanceof Error?e.message:"Could not start the quick chat."),z(!1)}};return(0,r.jsxs)(g.A,{open:t,onClose:R?void 0:n,maxWidth:"sm",fullWidth:!0,children:[(0,r.jsx)(m.A,{children:"Quick Chat"}),(0,r.jsxs)(x.A,{children:[(0,r.jsx)(p.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Chat with a model and, optionally, some MCP servers — no need to build and save a flow."}),w&&(0,r.jsx)(d.A,{severity:"error",sx:{mb:2},children:w}),(0,r.jsxs)(q.A,{fullWidth:!0,size:"small",sx:{mb:2},disabled:y,children:[(0,r.jsx)(B.A,{id:"quick-chat-model-label",children:"Model"}),(0,r.jsxs)(U.A,{labelId:"quick-chat-model-label",label:"Model",value:S,onChange:e=>I(e.target.value),children:[0===s.length&&(0,r.jsx)(J.A,{value:"",disabled:!0,children:y?"Loading…":"No models configured"}),s.map(e=>(0,r.jsx)(J.A,{value:e.id,children:e.displayName||e.name},e.id))]})]}),(0,r.jsx)(eP.A,{fullWidth:!0,size:"small",multiline:!0,minRows:2,maxRows:6,label:"System prompt (optional)",placeholder:"e.g. You are a concise coding assistant.",value:C,onChange:e=>k(e.target.value),sx:{mb:2}}),(0,r.jsx)(E.A,{sx:{mb:1}}),(0,r.jsx)(p.default,{variant:"subtitle2",gutterBottom:!0,children:"MCP servers (optional)"}),y?(0,r.jsx)(l.default,{sx:{display:"flex",justifyContent:"center",my:2},children:(0,r.jsx)(_.default,{size:22})}):0===h.length?(0,r.jsx)(p.default,{variant:"body2",color:"text.secondary",children:"No connected MCP servers. You can still chat with the model alone."}):h.map(e=>{let t=T[e],n=!!(null==t?void 0:t.selected),o=null==t?void 0:t.available,a=null==t?void 0:t.tools;return(0,r.jsxs)(l.default,{sx:{mb:.5},children:[(0,r.jsxs)(l.default,{sx:{display:"flex",alignItems:"center"},children:[(0,r.jsx)(W.A,{sx:{flexGrow:1,mr:0},control:(0,r.jsx)(eF.A,{size:"small",checked:n,onChange:()=>F(e)}),label:(0,r.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,r.jsx)(p.default,{variant:"body2",children:e}),n&&(0,r.jsx)(c.A,{size:"small",variant:"outlined",label:a?"".concat(a.size," tool").concat(1===a.size?"":"s"):"all tools"})]})}),(0,r.jsx)(i.A,{size:"small",onClick:()=>M(e),"aria-label":"customize ".concat(e," tools"),children:(null==t?void 0:t.expanded)?(0,r.jsx)(em.A,{fontSize:"small"}):(0,r.jsx)(eo.A,{fontSize:"small"})})]}),(0,r.jsx)(O.A,{in:!!(null==t?void 0:t.expanded),unmountOnExit:!0,children:(0,r.jsx)(l.default,{sx:{pl:4,pb:1},children:(null==t?void 0:t.loading)?(0,r.jsx)(_.default,{size:16}):o&&o.length>0?o.map(t=>{let n=!a||a.has(t);return(0,r.jsx)(W.A,{sx:{display:"flex"},control:(0,r.jsx)(eF.A,{size:"small",checked:n,onChange:()=>L(e,t,o)}),label:(0,r.jsx)(p.default,{variant:"caption",children:t})},t)}):(0,r.jsx)(p.default,{variant:"caption",color:"text.secondary",children:o?"No tools reported (server may be offline).":""})})})]},e)}),D&&(0,r.jsx)(d.A,{severity:"error",sx:{mt:2},children:D})]}),(0,r.jsxs)(b.A,{children:[(0,r.jsx)(u.A,{onClick:n,disabled:R,children:"Cancel"}),(0,r.jsx)(u.A,{variant:"contained",onClick:Y,disabled:!H,startIcon:R?(0,r.jsx)(_.default,{size:16,color:"inherit"}):void 0,children:R?"Starting…":"Start chat"})]})]})};var tt=n(53940),tn=n(48116),tr=n(33567),to=n(22539),ta=n(33420),tl=n(53911);let ts={byNode:{},byResource:{},byResourceName:{},resourceVersion:0};function ti(e,t){return"".concat(e," ").concat(t)}var td=n(59323),tc=n(72308),tu=n(6422),tp=n(48363);let tf=(0,eb.h)("frontend/components/Chat/RunResourcesPanel"),th=e=>{let{conversationId:t,refreshToken:n}=e,[a,s]=(0,o.useState)(null),[i,d]=(0,o.useState)(null);return((0,o.useEffect)(()=>{if(!t)return;let e=!1;return fetch("/v1/chat/conversations/".concat(encodeURIComponent(t),"/resources")).then(async e=>{if(!e.ok)throw Error("HTTP ".concat(e.status));return e.json()}).then(t=>{e||(s(Array.isArray(t.resources)?t.resources:[]),d(null))}).catch(t=>{e||(tf.warn("Failed to load run resources",t),d(t instanceof Error?t.message:String(t)))}),()=>{e=!0}},[t,n]),i)?(0,r.jsxs)(p.default,{variant:"caption",color:"text.secondary",children:["Run data unavailable (",i,")"]}):null===a?(0,r.jsx)(l.default,{sx:{display:"flex",justifyContent:"center",p:1},children:(0,r.jsx)(_.default,{size:16})}):0===a.length?(0,r.jsx)(p.default,{variant:"caption",color:"text.secondary",children:"No data artifacts captured in this run yet."}):(0,r.jsx)(T.A,{dense:!0,disablePadding:!0,children:[...a].sort((e,t)=>t.createdAt-e.createdAt).map(e=>{var t;return(0,r.jsxs)(N.Ay,{disableGutters:!0,sx:{alignItems:"flex-start"},children:[(0,r.jsx)(K.A,{sx:{minWidth:30,mt:.5},children:function(e){switch(e){case"image":return(0,r.jsx)(tc.A,{fontSize:"small",sx:{color:"#009688"}});case"audio":return(0,r.jsx)(tu.A,{fontSize:"small",sx:{color:"#009688"}});case"link":return(0,r.jsx)(tp.A,{fontSize:"small",sx:{color:"#009688"}});default:return(0,r.jsx)(td.A,{fontSize:"small",sx:{color:"#009688"}})}}(e.kind)}),(0,r.jsx)(R.A,{primary:(0,r.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",gap:.5,flexWrap:"wrap"},children:[(0,r.jsx)(p.default,{variant:"body2",sx:{fontWeight:500},children:null!=(t=e.name)?t:"".concat(e.kind,"-").concat(e.id.slice(0,8))}),e.mimeType&&(0,r.jsx)(c.A,{label:e.mimeType,size:"small",variant:"outlined",sx:{height:18,fontSize:"0.65rem"}}),(0,r.jsx)(p.default,{variant:"caption",color:"text.secondary",children:function(e){return e<1024?"".concat(e," B"):e<1048576?"".concat(Math.round(e/1024)," KB"):"".concat((e/1048576).toFixed(1)," MB")}(e.size)})]}),secondary:(0,r.jsxs)(p.default,{variant:"caption",color:"text.secondary",component:"span",sx:{wordBreak:"break-all"},children:["by ",function(e){var t,n,r,o,a;let l=e.producedBy;switch(l.source){case"tool-result":return"tool ".concat(null!=(t=l.server)?t:"?","/").concat(null!=(n=l.toolName)?n:"?");case"capture":return"step ".concat(null!=(o=null!=(r=l.nodeName)?r:l.nodeId)?o:"?");case"mcp-link":return"link from ".concat(null!=(a=l.server)?a:"?");default:return"run"}}(e),e.readBy.length>0?" \xb7 read ".concat(e.readBy.length,"\xd7"):""," \xb7 ",e.uri]})})]},e.id)})})},tg=(0,eb.h)("frontend/components/Chat/DebuggerCanvas"),tm={start:ta.vm,process:ta.Uw,finish:ta.IK,mcp:ta.v2,subflow:ta.lA,resource:ta.z9},tx={custom:tl.jY,mcpEdge:tl.oY,resourceEdge:tl.sZ},tv=(0,tn.Ay)(H.A)(e=>{let{theme:t}=e;return{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",padding:t.spacing(1)}}),tb=(0,tn.Ay)(l.default)(e=>{let{theme:t}=e;return{padding:t.spacing(1,2),borderBottom:"1px solid ".concat(t.palette.divider)}}),ty=(0,tn.Ay)(l.default)({flexGrow:1,display:"flex",overflow:"hidden"}),tj=(0,tn.Ay)(l.default)(e=>{let{theme:t}=e;return{width:"200px",borderRight:"1px solid ".concat(t.palette.divider),overflowY:"auto",padding:t.spacing(1)}}),tw=(0,tn.Ay)(l.default)({flexGrow:1,position:"relative",height:"100%"}),tA=(0,tn.Ay)(l.default)(e=>{let{theme:t}=e;return{width:"300px",borderLeft:"1px solid ".concat(t.palette.divider),overflowY:"auto",padding:t.spacing(2)}}),tS=(0,tn.Ay)(l.default)(e=>{let{theme:t}=e;return{padding:t.spacing(1,2),borderTop:"1px solid ".concat(t.palette.divider),display:"flex",gap:t.spacing(1),justifyContent:"center"}}),tI=e=>{var t,n,a,c;let{debugState:f,conversationId:h,onStep:g,onStepOver:m,onContinue:x,onCancel:v,isLoading:b,breakpoints:y,onToggleBreakpoint:j,onClose:w,liveActivity:A}=e,S=(0,tr.A)(),[I,C]=(0,o.useState)(f.executionTrace&&f.executionTrace.length>0?f.executionTrace.length-1:-1),[k,E]=(0,o.useState)(!0),[D,P]=(0,o.useState)(!0),[F,M]=(0,o.useState)(null),[O,W]=(0,o.useState)(!0),[L,H]=(0,o.useState)(null),[q,B,U]=(0,to.ck)([]),[J,V,K]=(0,to.fM)([]);(0,o.useEffect)(()=>{var e;let t=(null==(e=f.executionTrace)?void 0:e.length)||0;t>0?(C(e=>Math.min(e,t-1)),I<t-1&&C(t-1)):C(-1)},[f.executionTrace]),(0,o.useEffect)(()=>{(async()=>{if(!f.flowId){H("Flow ID is missing in debug state."),W(!1);return}W(!0),H(null);try{tg.debug("Loading flow definition for ID: ".concat(f.flowId));let e=await e5.g.getFlow(f.flowId);if(!e)throw Error("Flow with ID ".concat(f.flowId," not found."));M(e),tg.info("Flow definition loaded: ".concat(e.name))}catch(e){tg.error("Error loading flow definition:",e),H(e instanceof Error?e.message:"Failed to load flow definition."),M(null)}finally{W(!1)}})()},[f.flowId]),(0,o.useEffect)(()=>{if(F){tg.debug("Setting nodes and edges from flow definition");let e=F.nodes.map(e=>({...e,draggable:!1,selectable:!1,connectable:!1})),t=F.edges.map(e=>({...e,selectable:!1}));B(e),V(t)}},[F,B,V]);let X=(0,o.useCallback)(()=>{if(tg.debug("Previous button clicked. Current index: ".concat(I)),I>0){let e=I-1;tg.debug("Setting current step index to: ".concat(e)),C(e)}else tg.debug("Already at the first step, cannot go previous.")},[I]),$=(0,o.useCallback)(()=>{var e;if(tg.debug("Next button clicked. Current index: ".concat(I,", Trace length: ").concat(null==(e=f.executionTrace)?void 0:e.length)),f.executionTrace&&I<f.executionTrace.length-1){let e=I+1;tg.debug("Navigating to next trace step: ".concat(e)),C(e)}else tg.info("At end of trace, triggering API call for next step."),g()},[I,f.executionTrace,g]),Z=(0,o.useMemo)(()=>{if(f.executionTrace&&I>=0&&I<f.executionTrace.length)return f.executionTrace[I]},[f.executionTrace,I]),[ee,et]=(0,o.useState)(()=>Date.now());(0,o.useEffect)(()=>{if(!A)return;let e=()=>{let e=Date.now();return[...Object.values(A.byNode),...Object.values(A.byResource),...Object.values(A.byResourceName)].some(t=>e-t.ts<4e3)};if(!e())return;let t=setInterval(()=>{et(Date.now()),e()||clearInterval(t)},350);return()=>clearInterval(t)},[A]);let en=(0,o.useCallback)(e=>{var t,n;if(!A)return null;let r=A.byNode[e.id];if(r&&ee-r.ts<4e3)return r;let o=e.data;if((null!=(t=null==o?void 0:o.type)?t:e.type)!=="resource")return null;let a=null!=(n=null==o?void 0:o.properties)?n:{},l="run"===a.scope?"string"==typeof a.runName?A.byResourceName[a.runName]:void 0:"string"==typeof a.boundServer&&"string"==typeof a.uri?A.byResource[ti(a.boundServer,a.uri)]:void 0;return l&&ee-l.ts<4e3?{kind:"read"===l.kind?"resource-read":"resource-write",ts:l.ts}:null},[A,ee]),er=(0,o.useMemo)(()=>{let e=null==Z?void 0:Z.nodeId;return q.map(t=>{var n;let r=t.id===e,o=null==y?void 0:y.includes(t.id),a=r?null:en(t),l=a?Math.max(.25,1-(ee-a.ts)/4e3):0,s=(null==a?void 0:a.kind)==="active"?S.palette.primary.main:"#009688";return{...t,style:{...t.style,border:r?"2px solid ".concat(S.palette.warning.main):a?"2px solid ".concat(s):o?"2px dashed ".concat(S.palette.error.main):null==(n=t.style)?void 0:n.border,boxShadow:r?"0 0 10px ".concat(S.palette.warning.light):a?"0 0 ".concat("resource-write"===a.kind?14:10,"px ").concat(s).concat(Math.round(255*l).toString(16).padStart(2,"0")):void 0}}})},[q,Z,y,S,en,ee]);return(0,r.jsxs)(tv,{elevation:2,children:[(0,r.jsxs)(tb,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"space-between"},children:[(0,r.jsxs)(l.default,{children:[(0,r.jsx)(p.default,{variant:"h6",children:"Flow Debugger"}),(0,r.jsxs)(p.default,{variant:"caption",color:"textSecondary",display:"block",children:["Click a node to toggle a breakpoint",y&&y.length>0?" \xb7 ".concat(y.length," active"):""]})]}),(0,r.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,r.jsx)(s.A,{title:k?"Hide execution trace":"Show execution trace",children:(0,r.jsx)(i.A,{size:"small",onClick:()=>E(e=>!e),color:k?"primary":"default","aria-label":k?"Hide execution trace":"Show execution trace",children:(0,r.jsx)(tt.A,{fontSize:"small",sx:{transform:"scaleX(-1)"}})})}),(0,r.jsx)(s.A,{title:D?"Hide step inspector":"Show step inspector",children:(0,r.jsx)(i.A,{size:"small",onClick:()=>P(e=>!e),color:D?"primary":"default","aria-label":D?"Hide step inspector":"Show step inspector",children:(0,r.jsx)(tt.A,{fontSize:"small"})})}),w&&(0,r.jsx)(s.A,{title:"Close debugger",children:(0,r.jsx)(i.A,{size:"small",onClick:w,"aria-label":"Close debugger",children:(0,r.jsx)(e_.A,{fontSize:"small"})})})]})]}),(0,r.jsxs)(ty,{children:[k&&(0,r.jsxs)(tj,{children:[(0,r.jsx)(p.default,{variant:"subtitle2",gutterBottom:!0,children:"Execution Trace"}),(0,r.jsxs)(T.A,{dense:!0,disablePadding:!0,children:[null==(t=f.executionTrace)?void 0:t.map((e,t)=>(0,r.jsx)(N.Ay,{disablePadding:!0,children:(0,r.jsx)(z.A,{selected:t===I,onClick:()=>(e=>{f.executionTrace&&e>=0&&e<f.executionTrace.length?(tg.debug("Trace step selected: ".concat(e)),C(e)):tg.warn("Invalid step index selected: ".concat(e)),C(e),C(e)})(t),children:(0,r.jsx)(R.A,{primary:"".concat(e.stepIndex,": ").concat(e.nodeName||e.nodeId),secondary:e.nodeType})})},e.stepIndex)),b&&(0,r.jsx)(N.Ay,{children:(0,r.jsx)(_.default,{size:20,sx:{margin:"auto"}})})]})]}),(0,r.jsx)(tw,{children:O?(0,r.jsx)(l.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"},children:(0,r.jsx)(_.default,{})}):L?(0,r.jsx)(d.A,{severity:"error",sx:{margin:2},children:L}):(0,r.jsxs)(to.Ln,{children:[" ",(0,r.jsx)(to.Gc,{nodes:er,edges:J,onNodesChange:U,onEdgesChange:K,nodeTypes:tm,edgeTypes:tx,fitView:!0,attributionPosition:"bottom-right",nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!1,panOnDrag:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!1,onNodeClick:(e,t)=>{e.preventDefault(),j&&j(t.id)},onEdgeClick:e=>e.preventDefault(),onPaneClick:()=>{},children:" "})]})}),D&&(0,r.jsxs)(tA,{children:[(0,r.jsx)(p.default,{variant:"subtitle2",gutterBottom:!0,children:"Step Inspector"}),Z?(0,r.jsxs)(l.default,{children:[(0,r.jsxs)(p.default,{variant:"body2",children:[(0,r.jsx)("b",{children:"Node:"})," ",Z.nodeName," (",Z.nodeId,")"]}),(0,r.jsxs)(p.default,{variant:"body2",children:[(0,r.jsx)("b",{children:"Type:"})," ",Z.nodeType]}),(0,r.jsxs)(p.default,{variant:"body2",children:[(0,r.jsx)("b",{children:"Timestamp:"})," ",new Date(Z.timestamp).toLocaleString()]}),(0,r.jsxs)(p.default,{variant:"body2",children:[(0,r.jsx)("b",{children:"Action Taken:"})," ",Z.actionTaken]}),(0,r.jsxs)(Y.A,{sx:{mt:2,boxShadow:"none","&:before":{display:"none"}},children:[(0,r.jsx)(G.A,{expandIcon:(0,r.jsx)(eo.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,r.jsx)(p.default,{variant:"caption",children:"Prep Result"})}),(0,r.jsx)(Q.A,{sx:{p:0},children:(0,r.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"200px",overflowY:"auto",background:"#f5f5f5",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(Z.prepResultSnapshot,null,2)})})]}),(0,r.jsxs)(Y.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,r.jsx)(G.A,{expandIcon:(0,r.jsx)(eo.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,r.jsxs)(p.default,{variant:"caption",color:(null==(n=Z.execResultSnapshot)?void 0:n.success)===!1?"error":"inherit",children:["Exec Result ",(null==(a=Z.execResultSnapshot)?void 0:a.success)===!1?"(Error)":""]})}),(0,r.jsx)(Q.A,{sx:{p:0},children:(null==(c=Z.execResultSnapshot)?void 0:c.success)===!1?(0,r.jsxs)(l.default,{sx:{p:1,background:S.palette.error.light,borderRadius:1},children:[" ",(0,r.jsxs)(p.default,{variant:"body2",color:"error",gutterBottom:!0,children:[(0,r.jsx)("b",{children:"Error:"})," ",Z.execResultSnapshot.error||"Unknown error"]}),Z.execResultSnapshot.errorDetails&&(0,r.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"150px",overflowY:"auto",background:"#f5f5f5",padding:"4px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(Z.execResultSnapshot.errorDetails,null,2)})]}):(0,r.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"200px",overflowY:"auto",background:"#f5f5f5",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(Z.execResultSnapshot,null,2)})})]}),(0,r.jsxs)(Y.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,r.jsx)(G.A,{expandIcon:(0,r.jsx)(eo.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,r.jsx)(p.default,{variant:"caption",children:"State Before"})}),(0,r.jsx)(Q.A,{sx:{p:0},children:(0,r.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"200px",overflowY:"auto",background:"#f5f5f5",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(Z.stateBefore,null,2)})})]}),(0,r.jsxs)(Y.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,r.jsx)(G.A,{expandIcon:(0,r.jsx)(eo.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,r.jsx)(p.default,{variant:"caption",children:"State After"})}),(0,r.jsx)(Q.A,{sx:{p:0},children:(0,r.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"200px",overflowY:"auto",background:"#f5f5f5",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(Z.stateAfter,null,2)})})]})]}):(0,r.jsx)(p.default,{variant:"body2",color:"textSecondary",children:"Select a step from the trace."}),(0,r.jsxs)(Y.A,{defaultExpanded:!0,sx:{mt:2,boxShadow:"none","&:before":{display:"none"}},children:[(0,r.jsx)(G.A,{expandIcon:(0,r.jsx)(eo.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,r.jsx)(p.default,{variant:"caption",children:"Run Data"})}),(0,r.jsx)(Q.A,{sx:{p:0},children:(0,r.jsx)(th,{conversationId:h,refreshToken:null==A?void 0:A.resourceVersion})})]})]})]}),(0,r.jsxs)(tS,{children:[(0,r.jsx)(u.A,{variant:"outlined",size:"small",onClick:X,disabled:b||I<=0,children:"Previous"}),(0,r.jsx)(u.A,{variant:"contained",size:"small",onClick:$,disabled:b||-1===I,children:f.executionTrace&&I<f.executionTrace.length-1?"Next Trace Step":"Step Next"}),m&&(0,r.jsx)(u.A,{variant:"outlined",size:"small",onClick:m,disabled:b,children:"Step Over"}),(0,r.jsx)(u.A,{variant:"contained",color:"secondary",size:"small",onClick:x,disabled:b,children:"Continue"}),(0,r.jsx)(u.A,{variant:"outlined",color:"error",size:"small",onClick:v,disabled:b,children:"Stop"})]})]})};function tC(e){return"string"==typeof e&&e.startsWith("quickchat-")}n(77890);var tk=n(94929),tE=n(29155),tT=n(63650);let tN=(0,eb.h)("frontend/services/chat/index");class tR extends Error{constructor(e,t,n){super(e),this.name="ChatApiError",this.status=t,this.body=n}}let tz="/v1/chat/conversations";async function tD(e){let t;if(204===e.status)return;let n=await e.text();if(n)try{t=JSON.parse(n)}catch(e){t=n}if(!e.ok)throw new tR(t&&"object"==typeof t&&(t.error||t.message)||"Request failed with status ".concat(e.status),e.status,t);return t}class tP{async listConversations(){return tN.debug("listConversations: Entering method"),tD(await fetch(tz))}async getConversation(e){return tN.debug("getConversation: Entering method",{conversationId:e}),tD(await fetch("".concat(tz,"/").concat(encodeURIComponent(e))))}async createConversation(e){return tN.debug("createConversation: Entering method",{conversationId:e.id}),tD(await fetch(tz,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}))}async updateConversationFlow(e,t){return tN.debug("updateConversationFlow: Entering method",{conversationId:e,flowId:t}),tD(await fetch("".concat(tz,"/").concat(encodeURIComponent(e)),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({flowId:t})}))}async updateConversationApproval(e,t){return tN.debug("updateConversationApproval: Entering method",{conversationId:e,requireApproval:t}),tD(await fetch("".concat(tz,"/").concat(encodeURIComponent(e)),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({requireApproval:t})}))}async deleteConversation(e){tN.debug("deleteConversation: Entering method",{conversationId:e});let t=await fetch("".concat(tz,"/").concat(encodeURIComponent(e)),{method:"DELETE"});await tD(t)}async respondToToolCall(e,t,n){return tN.debug("respondToToolCall: Entering method",{conversationId:e,action:t,toolCallId:n}),tD(await fetch("".concat(tz,"/").concat(encodeURIComponent(e),"/respond"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:t,toolCallId:n})}))}async debugStep(e){return tN.debug("debugStep: Entering method",{conversationId:e}),tD(await fetch("".concat(tz,"/").concat(encodeURIComponent(e),"/debug/step"),{method:"POST"}))}async debugContinue(e){return tN.debug("debugContinue: Entering method",{conversationId:e}),tD(await fetch("".concat(tz,"/").concat(encodeURIComponent(e),"/debug/continue"),{method:"POST"}))}async setBreakpoints(e,t){tN.debug("setBreakpoints: Entering method",{conversationId:e,count:t.length});let n=await fetch("".concat(tz,"/").concat(encodeURIComponent(e),"/breakpoints"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({breakpoints:t})});await tD(n)}async synthesizeQuickChat(e){return tN.debug("synthesizeQuickChat: Entering method",{conversationId:e.conversationId}),tD(await fetch("/api/flow/quick-chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}))}async cancel(e){tN.debug("cancel: Entering method",{conversationId:e});let t=await fetch("".concat(tz,"/").concat(encodeURIComponent(e),"/cancel"),{method:"POST"});await tD(t)}subscribeToEvents(e,t,n){let r=new EventSource(void 0!==n?"".concat(tz,"/").concat(encodeURIComponent(e),"/events?fromSeq=").concat(n):"".concat(tz,"/").concat(encodeURIComponent(e),"/events"));return r.onopen=()=>{var n;tN.debug("Execution event stream open",{conversationId:e}),null==(n=t.onOpen)||n.call(t)},r.onmessage=e=>{try{t.onEvent(JSON.parse(e.data))}catch(e){tN.warn("Failed to parse SSE event",{err:e})}},r.onerror=e=>{var n;tN.debug("SSE stream error (browser will retry if still open)"),null==(n=t.onError)||n.call(t,e)},r}}let tF=new tP,tM=(0,eb.h)("frontend/components/Chat/index");function t_(e){var t;if(Array.isArray(e.content))return e.content;let n="string"==typeof e.content?e.content:"",r=null!=(t=e.attachments)?t:[],o=r.filter(e=>"image"!==e.type),a=r.filter(e=>"image"===e.type);if(o.length>0&&(n+="\n\n"+o.map(e=>"[".concat(e.type.toUpperCase(),"]: ").concat(e.content)).join("\n\n")),0===a.length)return n;let l=[];for(let e of(n.trim()&&l.push({type:"text",text:n}),a))l.push({type:"image_url",image_url:{url:e.content}});return l}let tO=/cancelled by user|execution cancelled/i,tW=e=>{var t,n;return(null==e?void 0:e.code)==="cancelled"||(null==e||null==(t=e.error)?void 0:t.code)==="cancelled"||[null==e?void 0:e.message,"string"==typeof(null==e||null==(n=e.body)?void 0:n.error)?e.body.error:void 0].some(e=>"string"==typeof e&&tO.test(e))},tL=()=>{var e;let[t,n]=(0,o.useState)([]),[a,E]=(0,o.useState)(!0),[T,N]=(0,o.useState)(null),[R,z]=(0,o.useState)(null),[D,P]=(0,o.useState)(!1),[F,_]=(0,o.useState)(null),[O,W]=(0,k.Mj)(k.Zg.CURRENT_CONVERSATION_ID,null),[L,H]=(0,o.useState)(!1),[q,B]=(0,o.useState)(new Set),U=(0,o.useCallback)((e,t)=>{e&&B(n=>{if(t===n.has(e))return n;let r=new Set(n);return t?r.add(e):r.delete(e),r})},[]),[J,Y]=(0,o.useState)(null),[G,Q]=(0,o.useState)([]),[V,K]=(0,o.useState)(!1),[X,$]=(0,o.useState)(!1),[Z,ee]=(0,o.useState)(null),[et,en]=(0,o.useState)(null),[er,eo]=(0,o.useState)(null),[ea,el]=(0,o.useState)(!1),[es,ei]=(0,o.useState)(null),[ed,ec]=(0,o.useState)(!1),[eu,ep]=(0,o.useState)(()=>{let e=Number(window.localStorage.getItem("flujo-debugger-width"));return Number.isFinite(e)&&e>0?e:0}),ef=(0,o.useCallback)(e=>{e.preventDefault();let t=document.body.style.userSelect,n=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";let r=e=>{ep(Math.min(Math.max(window.innerWidth-e.clientX,360),Math.round(.85*window.innerWidth)))},o=()=>{window.removeEventListener("pointermove",r),window.removeEventListener("pointerup",o),document.body.style.userSelect=t,document.body.style.cursor=n,ep(e=>(e>0&&window.localStorage.setItem("flujo-debugger-width",String(Math.round(e))),e))};window.addEventListener("pointermove",r),window.addEventListener("pointerup",o)},[]),[eh,eg]=(0,o.useState)(()=>{let e=Number(window.localStorage.getItem("flujo-chat-sidebar-width"));return Number.isFinite(e)&&e>0?e:300}),[em,ex]=(0,o.useState)(()=>"1"===window.localStorage.getItem("flujo-chat-sidebar-collapsed")),ev=(0,o.useCallback)(()=>{ex(e=>{let t=!e;return window.localStorage.setItem("flujo-chat-sidebar-collapsed",t?"1":"0"),t})},[]),eb=(0,o.useCallback)(e=>{e.preventDefault();let t=document.body.style.userSelect,n=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";let r=e=>{eg(Math.min(Math.max(e.clientX,220),560))},o=()=>{window.removeEventListener("pointermove",r),window.removeEventListener("pointerup",o),document.body.style.userSelect=t,document.body.style.cursor=n,eg(e=>(e>0&&window.localStorage.setItem("flujo-chat-sidebar-width",String(Math.round(e))),e))};window.addEventListener("pointermove",r),window.addEventListener("pointerup",o)},[]),[ey,ej]=(0,o.useState)(null),[ew,eA]=(0,o.useState)(ts),[eS,eI]=(0,o.useState)([]),[eC,ek]=(0,o.useState)(null),eE=(0,o.useRef)(null),eN=(0,o.useRef)(null),eR=(0,o.useRef)(null),ez=(0,o.useRef)(-1),eD=(0,o.useRef)(O);(0,o.useEffect)(()=>{eD.current=O},[O]);let eP=(0,o.useRef)(new Set),eF=(0,o.useRef)(new Set),eM=(0,o.useRef)(new Set),[e_,eO]=(0,o.useState)(new Set),eW=(0,o.useCallback)((e,t)=>{e&&(t?eM.current.add(e):eM.current.delete(e),eO(new Set(eM.current)))},[]),eL=(0,o.useRef)(null),eq=(0,o.useRef)(!0),[eU,eY]=(0,o.useState)(!1),eG=(0,o.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"auto",t=eL.current;t&&t.scrollTo({top:t.scrollHeight,behavior:e})},[]),eQ=(0,o.useCallback)(()=>{let e=eL.current;if(!e)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight<80;eq.current=t,eY(!t)},[]),eV=(0,o.useCallback)(()=>{eq.current=!0,eY(!1),eG("smooth")},[eG]);(0,o.useEffect)(()=>{eq.current=!0,eY(!1)},[O]),(0,o.useEffect)(()=>{eq.current&&eG("auto")},[null==R?void 0:R.messages,eG]);let eK=(0,o.useRef)(null);(0,o.useEffect)(()=>{eK.current=eC},[eC]),(0,o.useEffect)(()=>{let e=window.location.origin+"/v1";eE.current=new tE.Ay({baseURL:e,apiKey:"FLUJO",dangerouslyAllowBrowser:!0,maxRetries:0,timeout:18e6})},[]),(0,o.useEffect)(()=>{(async()=>{tM.debug("Loading flows");try{let e=await e5.g.loadFlows();Q(e)}catch(e){tM.error("Error loading flows:",e)}})()},[]);let eX=(0,o.useCallback)(async(e,t)=>{var r;let o=null!=(r=null==t?void 0:t.silent)&&r;tM.debug("Fetching conversation list from backend",{silent:o}),o||(E(!0),N(null));let a=[],l=!1;try{for(let e of a=(await tF.listConversations()).filter(e=>!eF.current.has(e.id)).sort((e,t)=>t.updatedAt-e.updatedAt))eP.current.delete(e.id);n(e=>{let t=e.filter(e=>eP.current.has(e.id)),n=t.length>0?[...t,...a].sort((e,t)=>t.updatedAt-e.updatedAt):a;return((e,t)=>e.length===t.length&&e.every((e,n)=>{let r=t[n];return e.id===r.id&&e.title===r.title&&e.flowId===r.flowId&&e.status===r.status&&e.createdAt===r.createdAt&&e.updatedAt===r.updatedAt}))(e,n)?e:n}),tM.info("Fetched ".concat(a.length," conversations for the list"))}catch(e){l=!0,tM.error("Error fetching conversation list:",e),o||(N("Failed to load conversation history."),n([]))}finally{if(o||E(!1),o||l)return;let t=void 0!==e?e:eD.current,n=eD.current;if(t&&(e=>a.some(t=>t.id===e)||eP.current.has(e))(t))t!==n&&(tM.debug("Setting currentConversationId to ".concat(t," after fetch/operation.")),W(t));else if(a.length>0){let e=a[0].id;e!==n&&(tM.debug("Selecting most recent conversation ".concat(e," after fetch/operation.")),W(e))}else null===n||eP.current.has(n)||(tM.debug("No conversations available after fetch/operation, clearing selection."),W(null))}},[W]);(0,o.useEffect)(()=>{eX()},[]),(0,o.useEffect)(()=>{let e=()=>{("undefined"==typeof document||"visible"===document.visibilityState)&&eX(void 0,{silent:!0})},t=setInterval(e,5e3);return document.addEventListener("visibilitychange",e),()=>{clearInterval(t),document.removeEventListener("visibilitychange",e)}},[eX]);let e$=(0,o.useCallback)(async e=>{if(eP.current.has(e))return void tM.debug("Skipping detail fetch for client-only conversation",{conversationId:e});tM.debug("Fetching detailed conversation",{conversationId:e}),P(!0),_(null),z(null);try{let t=await tF.getConversation(e);if(eD.current!==e)return void tM.debug("Discarding stale detailed conversation response",{fetchedId:e,currentId:eD.current});z(t),n(n=>n.map(n=>{var r;return n.id===e?{...n,title:t.title,flowId:t.flowId,updatedAt:t.updatedAt,status:null!=(r=t.status)?r:n.status}:n}).sort((e,t)=>t.updatedAt-e.updatedAt)),tM.info("Fetched detailed conversation successfully",{conversationId:e})}catch(t){if(tM.error("Error fetching detailed conversation:",{conversationId:e,err:t}),eD.current!==e)return;t instanceof tR&&404===t.status?(_("Conversation ".concat(e," not found.")),W(null),eX()):_("Failed to load details for conversation ".concat(e,".")),z(null)}finally{eD.current===e&&P(!1)}},[eX,W]);(0,o.useEffect)(()=>{ee(null),eo(null),O?e$(O):(z(null),P(!1),_(null))},[O,e$]),(0,o.useEffect)(()=>{if(R){var e;K(null!=(e=R.requireApproval)&&e)}},[null==R?void 0:R.id]);let eZ=(0,o.useCallback)(async e=>{if(K(e),O)try{await tF.updateConversationApproval(O,e)}catch(e){tM.warn("Failed to persist requireApproval setting",{conversationId:O,err:e})}},[O]),e0=t.find(e=>e.id===O)||null,e2=(0,o.useMemo)(()=>{var e,t;return(null==(t=G.find(e=>e.id===(null==R?void 0:R.flowId)))||null==(e=t.nodes)?void 0:e.map(e=>({id:e.id,label:e.data.label||e.id})))||[]},[G,null==R?void 0:R.flowId]),e6=(0,o.useMemo)(()=>{var e,t,n;let r=e=>!!e&&e2.some(t=>t.id===e);if(r(er))return er;if(r(null==R?void 0:R.currentNodeId))return R.currentNodeId;let o=null!=(t=null==R?void 0:R.messages)?t:[];for(let e=o.length-1;e>=0;e--){let t=o[e];if("assistant"===t.role&&r(t.processNodeId))return t.processNodeId}return null!=(n=null==(e=e2[0])?void 0:e.id)?n:null},[er,R,e2]),e4=async()=>{var e,t,r;tM.debug("Attempting to create new conversation"),Y(null);let o=(null==(e=null!=(t=G.find(e=>e.favorite))?t:G[0])?void 0:e.id)||null;if(!o){tM.error("Cannot create conversation: No flows available or first flow has no ID."),Y("Cannot create a new conversation: No flows available.");return}let a=(0,eH.A)(),l=Date.now(),s={id:a,title:"New Conversation",flowId:o,createdAt:l,updatedAt:l};try{tM.info("Sending request to create conversation on backend",{payload:JSON.stringify(s)});let e=await tF.createConversation(s);tM.info("Successfully created conversation on backend",{conversationId:e.id}),n(t=>[e,...t].sort((e,t)=>t.updatedAt-e.updatedAt)),W(e.id),z({id:e.id,title:e.title,flowId:e.flowId,createdAt:e.createdAt,updatedAt:e.updatedAt,messages:[]}),P(!1),_(null)}catch(t){tM.error("Error creating conversation on backend:",t);let e="Failed to create conversation on the server.";t instanceof tR?e+=" Error: ".concat((null==(r=t.body)?void 0:r.error)||t.message):t instanceof Error&&(e+=" Error: ".concat(t.message)),Y(e)}},[e8,e7]=(0,o.useState)(!1),e9=async e=>{Y(null);let t=(0,eH.A)(),{flow:r}=await tF.synthesizeQuickChat({conversationId:t,modelId:e.modelId,servers:e.servers,systemPrompt:e.systemPrompt}),o=Date.now(),a=await tF.createConversation({id:t,title:"Quick Chat",flowId:r.id,flowSnapshot:r,createdAt:o,updatedAt:o});n(e=>[a,...e].sort((e,t)=>t.updatedAt-e.updatedAt)),W(a.id),z({id:a.id,title:a.title,flowId:a.flowId,createdAt:a.createdAt,updatedAt:a.updatedAt,messages:[]}),P(!1),_(null),e7(!1)},tt=(0,o.useCallback)(e=>{tM.debug("Updating detailed conversation state locally",{conversationId:e.id});let t={...e,updatedAt:Date.now()};z(t),n(e=>e.map(e=>e.id===t.id?{...e,title:t.title,updatedAt:t.updatedAt}:e).sort((e,t)=>t.updatedAt-e.updatedAt))},[]),tn=(0,o.useCallback)(()=>{eR.current&&(tM.debug("Closing execution event stream"),eR.current.close(),eR.current=null)},[]),tr=(0,o.useCallback)((e,t)=>{n(n=>{let r=n.findIndex(t=>t.id===e);if(-1===r||n[r].status===t)return n;let o=[...n];return o[r]={...o[r],status:t},o})},[]),to=(0,o.useCallback)(e=>{if("number"==typeof e.seq){if(e.seq<=ez.current)return;ez.current=e.seq}let t=e=>ej(t=>{var n,r,o,a;return{totalTokens:null!=(r=null!=(n=e.totalTokens)?n:null==t?void 0:t.totalTokens)?r:0,activeNode:void 0!==e.activeNode?e.activeNode:null!=(o=null==t?void 0:t.activeNode)?o:null,startedAt:null!=(a=null==t?void 0:t.startedAt)?a:Date.now(),lastEventAt:Date.now()}}),n=e=>eA(t=>{let n=Date.now(),r={byNode:{...t.byNode},byResource:{...t.byResource},byResourceName:{...t.byResourceName},resourceVersion:t.resourceVersion};return e(r),function(e,t){let n=e=>{let n={};for(let[r,o]of Object.entries(e))t-o.ts<4e3&&(n[r]=o);return n};return{byNode:n(e.byNode),byResource:n(e.byResource),byResourceName:n(e.byResourceName),resourceVersion:e.resourceVersion}}(r,n)});switch(e.type){case"run:start":ej({totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),eA(ts),e.conversationId&&(tr(e.conversationId,"running"),eW(e.conversationId,!1));break;case"message":{let n=e.message;t({}),z(t=>{let r;if(!t||t.id!==e.conversationId)return t;let o=t.messages.findIndex(e=>e.id===n.id);return o>=0?(r=[...t.messages])[o]={...r[o],...n}:r=[...t.messages,n],{...t,messages:r}});break}case"usage":ej(t=>{var n,r,o;return{totalTokens:(null!=(n=null==t?void 0:t.totalTokens)?n:0)+(e.totalTokens||0),activeNode:null!=(r=null==t?void 0:t.activeNode)?r:null,startedAt:null!=(o=null==t?void 0:t.startedAt)?o:Date.now(),lastEventAt:Date.now()}});break;case"node:enter":var r,o,a;if(t({activeNode:(null==(r=e.node)?void 0:r.nodeName)||(null==(o=e.node)?void 0:o.nodeId)||null}),null==(a=e.node)?void 0:a.nodeId){let t=e.node.nodeId;n(e=>{e.byNode[t]={kind:"active",ts:Date.now()}})}break;case"resource:read":case"resource:write":{let r="resource:read"===e.type?"read":"write";n(t=>{var n;let o=Date.now();(null==(n=e.node)?void 0:n.nodeId)&&(t.byNode[e.node.nodeId]={kind:"read"===r?"resource-read":"resource-write",ts:o}),e.server&&e.uri&&(t.byResource[ti(e.server,e.uri)]={kind:r,ts:o}),e.name&&(t.byResourceName[e.name]={kind:r,ts:o}),"write"===r&&(t.resourceVersion=t.resourceVersion+1)}),t({});break}case"tool:call":t({activeNode:e.name});break;case"tool:progress":t({activeNode:e.message?"".concat(e.name," — ").concat(e.message):e.name});break;case"subflow:start":t({activeNode:"↳ ".concat(e.subflowName||e.subflowId)});break;case"handoff":t({activeNode:"→ ".concat(e.toNodeId)});break;case"run:awaiting_approval":e.conversationId&&e.conversationId===eD.current&&ee(e.pendingToolCalls||[]),e.conversationId&&tr(e.conversationId,"awaiting_tool_approval");break;case"breakpoint:hit":case"run:paused":H(!1),e.conversationId&&(U(e.conversationId,!1),tr(e.conversationId,"paused_debug")),el(!0);break;case"run:done":ej(null),eA(ts),H(!1),ek(null),e.conversationId&&(U(e.conversationId,!1),tr(e.conversationId,e.status)),tn(),e.conversationId&&e.conversationId===eD.current?e$(e.conversationId):eX(void 0,{silent:!0});break;case"error":Y(e.message||"Execution error");break;default:t({})}},[tn,e$,eX,U,tr,eW]),ta=(0,o.useCallback)((e,t)=>(tn(),ez.current=void 0!==t?t-1:-1,new Promise(n=>{let r=!1,o=()=>{r||(r=!0,n())};try{eR.current=tF.subscribeToEvents(e,{onEvent:to,onOpen:o},t),setTimeout(o,1500)}catch(t){tM.error("Failed to open execution event stream",{conversationId:e,err:t}),o()}})),[to,tn]);(0,o.useEffect)(()=>{O&&(null==e0?void 0:e0.status)==="running"&&eK.current!==O&&(tM.info("Re-attaching to in-progress run",{conversationId:O}),eK.current=O,H(!0),ek(O),U(O,!0),ej(e=>null!=e?e:{totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),ta(O,0))},[O,null==e0?void 0:e0.status,ta]);let tl=async e=>{tM.debug("Attempting to delete conversation",{conversationId:e}),Y(null),eF.current.add(e);let r=eP.current.delete(e);eK.current===e&&(tn(),H(!1),ek(null),ej(null)),U(e,!1);let o=t.filter(t=>t.id!==e);n(o);let a=O;O===e&&(o.length>0?(a=o[0].id,tM.debug("Deleted current conversation, selecting next most recent",{nextSelectionId:a})):(a=null,tM.debug("Deleted last conversation, clearing selection")),W(a));try{await tF.deleteConversation(e),tM.info("Successfully deleted conversation on backend",{conversationId:e})}catch(o){tM.error("Error deleting conversation:",{conversationId:e,err:o}),Y("Failed to delete conversation ".concat(e,". Please try again.")),eF.current.delete(e),r&&eP.current.add(e),n(t),W(O)}},td=async e=>{if(tM.debug("Flow selected, attempting to update",{flowId:e,currentConversationId:O}),Y(null),!O){tM.warn("Cannot update flow: No conversation selected."),Y("Please select a conversation first.");return}R&&R.id===O&&z({...R,flowId:e,updatedAt:Date.now()}),n(t=>t.map(t=>t.id===O?{...t,flowId:e,updatedAt:Date.now()}:t).sort((e,t)=>t.updatedAt-e.updatedAt));try{let t=await tF.updateConversationFlow(O,e);tM.info("Successfully updated flowId on backend",{conversationId:O,flowId:e}),z(e=>e&&e.id===O?(tM.debug("Confirming detailedConversation update from server response",{conversationId:O,flowId:t.flowId}),{...e,flowId:t.flowId,updatedAt:t.updatedAt}):(tM.debug("Skipping detailedConversation update, ID mismatch or null state",{currentDetailedId:null==e?void 0:e.id,targetId:O}),e)),n(e=>e.map(e=>e.id===O?t:e).sort((e,t)=>t.updatedAt-e.updatedAt))}catch(a){tM.error("Error updating flowId on backend:",{conversationId:O,flowId:e,err:a});let o="Failed to update the selected flow.";if(a instanceof tR){var r;o+=" Error: ".concat((null==(r=a.body)?void 0:r.error)||a.message)}else a instanceof Error&&(o+=" Error: ".concat(a.message));Y(o),z(R),n(t)}},tc=async function(e){var t,n;let r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(!e.trim()&&0===o.length)return;if(!R){tM.error("Cannot send message, detailed conversation not loaded."),Y("Cannot send message: conversation details not loaded.");return}tM.debug("Sending message",{conversationId:R.id,contentLength:e.length,attachmentsCount:o.length});let a=R.messages,l=!a.some(e=>"user"===e.role),s=R.flowId;if(er)r=er,eo(null),tM.debug("Assigning manually picked node ID to user message: ".concat(r));else if(l){let e=G.find(e=>e.id===s),n=null==e||null==(t=e.nodes)?void 0:t[0];n?(r=n.id,tM.debug("Assigning start node ID to first user message: ".concat(r))):tM.warn("Could not find start node for flow ".concat(s,". User message will not have a processNodeId."))}else{for(let e=a.length-1;e>=0;e--){let t=a[e];if("assistant"===t.role&&t.processNodeId){r=t.processNodeId,tM.debug("Assigning last assistant node ID to user message: ".concat(r));break}}if(!r){let e=G.find(e=>e.id===s),t=null==e||null==(n=e.nodes)?void 0:n[0];t?(r=t.id,tM.debug("No prior assistant node ID found, falling back to start node ID: ".concat(r))):tM.warn("Could not find start node for fallback in flow ".concat(s,". User message will not have a processNodeId."))}}let i={id:(0,eH.A)(),role:"user",content:e,timestamp:Date.now(),attachments:o.length>0?o:void 0,processNodeId:r},d={...R,messages:[...R.messages,i]};tt(d),d.flowId?await tf(d):(Y("Please select a flow for this conversation before sending messages"),z(R))},tu=(0,o.useCallback)((e,t)=>{if(tM.verbose("Handling API response data",JSON.stringify(e)),U(t,"running"===e.status),"paused_debug"===e.status&&e.debugState)return tM.info("API Response: Paused for debugging",{conversationId:t}),ei(e.debugState),el(!0),ec(!0),H(!1),ek(null),tn(),tp(),z(n=>(null==n?void 0:n.id)===t&&e.debugState.messages&&JSON.stringify(n.messages)!==JSON.stringify(e.debugState.messages)?(tM.debug("Updating detailed conversation messages from debug state"),{...n,messages:e.debugState.messages,updatedAt:e.debugState.updatedAt}):n),n(n=>n.map(n=>{var r,o;return n.id===t?{...n,title:null!=(r=e.debugState.title)?r:n.title,flowId:null!=(o=e.debugState.flowId)?o:n.flowId,status:"paused_debug",updatedAt:e.debugState.updatedAt}:n}).sort((e,t)=>t.updatedAt-e.updatedAt)),!0;if("completed"===e.status||"error"===e.status?(tM.info("API Response: Execution completed or errored (Status: ".concat(e.status,"). Hiding debugger panel."),{conversationId:t}),el(!1),ei(null),ec(!1)):tM.debug("API Response: Status is '".concat(e.status,"'. Debugger panel visibility unchanged (currently ").concat(ea?"visible":"hidden",")."),{conversationId:t}),e.messages&&e.conversation_id===t){let n=e.messages.map((e,n)=>"number"!=typeof e.timestamp||isNaN(e.timestamp)?(tM.warn("Invalid timestamp found in message index ".concat(n," from API response. Defaulting to Date.now()."),{conversationId:t,messageId:e.id,invalidTimestamp:e.timestamp}),{...e,timestamp:Date.now()}):e);z(r=>{var o,a;let l=r;return(null==r?void 0:r.id)===t&&JSON.stringify(r.messages)!==JSON.stringify(n)&&(tM.info("API Response/Polling: Updating detailed conversation messages",{conversationId:t,newMessageCount:n.length}),l={...r,messages:n,updatedAt:e.updatedAt||r.updatedAt}),tM.debug("Polling: setDetailedConversation callback executed.",{conversationId:t,messagesChanged:l!==r,newMessageCount:null!=(a=null==l||null==(o=l.messages)?void 0:o.length)?a:"N/A"}),l})}if("awaiting_tool_approval"===e.status)tM.info("API Response/Polling: Pausing for tool approval",{conversationId:t}),ee(e.pendingToolCalls||[]),H(!1),ek(null),tn(),tp();else if("completed"===e.status||"error"===e.status){if(tM.info("API Response/Polling: Stopping due to final status",{conversationId:t,status:e.status}),tp(),H(!1),ek(null),tn(),"error"===e.status){var r,o;let n=(null==(r=e.error)?void 0:r.message)||(null==(o=e.lastResponse)?void 0:o.error)||"Unknown error during execution";tO.test(n)||eM.current.has(t)?(eW(t,!0),Y(null),tM.info("API Response/Polling: Execution cancelled by user",{conversationId:t})):(Y(n),tM.error("API Response/Polling: Execution resulted in error",{conversationId:t,error:e.error||e.lastResponse}))}e$(t)}else"running"!==e.status||ea?ee(null):(ee(null),eN.current||H(!0));return e.conversation_id===t&&n(n=>n.map(n=>{var r,o,a;return n.id===t?{...n,title:null!=(r=e.title)?r:n.title,flowId:null!=(o=e.flowId)?o:n.flowId,status:null!=(a=e.status)?a:n.status,updatedAt:e.updatedAt||n.updatedAt}:n}).sort((e,t)=>t.updatedAt-e.updatedAt)),!1},[z,ee,H,Y,el,ei,n,e$,tn,U]),tp=()=>{eN.current&&(tM.debug("Stopping polling interval"),clearInterval(eN.current),eN.current=null)};(0,o.useEffect)(()=>()=>{tn()},[tn]);let tf=async e=>{if(!(null==e?void 0:e.id)||!e.flowId||!eE.current)return tM.error("Cannot send to completions: Missing conversation ID or flow ID.",{id:null==e?void 0:e.id,flowId:null==e?void 0:e.flowId}),Y("Cannot send message: Missing conversation ID or flow ID."),!1;ee(null),Y(null),H(!0),ek(e.id),U(e.id,!0);let t=eP.current.delete(e.id);ej({totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),await ta(e.id);let n=!1;try{let t;if(tC(e.flowId))t="flow-Quick Chat",tM.debug("Sending quick chat to completions",{flowId:e.flowId,conversationId:e.id});else{let n=await e5.g.getFlow(e.flowId);if(!n)throw Error("Flow with ID ".concat(e.flowId," not found"));t="flow-".concat(n.name),tM.debug("Sending to chat completions",{flowId:e.flowId,flowName:n.name,conversationId:e.id})}let r=e.messages.filter(e=>{var t;return!e.disabled&&!((null!=(t=e.depth)?t:0)>0)}).map(e=>{let t=t_(e),n=e.processNodeId,r={id:e.id,timestamp:e.timestamp};return"user"===e.role?{role:"user",content:t,...r,processNodeId:n}:"assistant"===e.role?{role:"assistant",content:t,tool_calls:e.tool_calls,...r,processNodeId:n}:"system"===e.role?{role:"system",content:t,...r,processNodeId:n}:"tool"===e.role?e.tool_call_id?{role:"tool",content:t,tool_call_id:e.tool_call_id,...r,processNodeId:n}:{role:"user",content:"string"==typeof t?"Tool result: ".concat(t):t,...r,processNodeId:n}:{role:"user",content:t,...r,processNodeId:n}}),o=await eE.current.chat.completions.create({model:t,messages:r,stream:!1,metadata:(()=>{let t={flujo:"true",requireApproval:V?"true":void 0,flujodebug:X?"true":void 0,conversationId:e.id},n={};return t.flujo&&(n.flujo=t.flujo),t.requireApproval&&(n.requireApproval=t.requireApproval),t.flujodebug&&(n.flujodebug=t.flujodebug),t.conversationId&&(n.conversationId=t.conversationId),n})()});tM.debug("Chat completion initial response received",{completionId:o.id}),n=!0;let a={...o,status:o.status||"completed",conversation_id:e.id,messages:o.messages||e.messages,pendingToolCalls:o.pendingToolCalls,debugState:o.debugState,error:o.error,lastResponse:o.lastResponse,updatedAt:o.updatedAt||Date.now()},l=tu(a,e.id);l||eN.current?l&&tM.debug("Debug state handled, polling remains stopped."):tM.debug("Starting polling after initial non-debug response.")}catch(a){if(tW(a)||eM.current.has(e.id))return tM.info("Chat completion cancelled by user",{conversationId:e.id}),n=!1,tp(),H(!1),ek(null),U(e.id,!1),tn(),Y(null),eW(e.id,!0),n;tM.error("Error calling chat completions API:",a),n=!1;let o="An error occurred while sending the message.";if(a instanceof tT.LG)o="API Error: ".concat(a.message," (Status: ").concat(a.status,")"),a.code&&(o+=" (Code: ".concat(a.code,")")),a.type&&(o+=" [Type: ".concat(a.type,"]")),tM.verbose("APIError details",JSON.stringify(a));else if(a instanceof tT.vc){o="OpenAI Error: ".concat(a.message);let e=a.error;e&&"object"==typeof e&&(e.code&&(o+=" (Code: ".concat(e.code,")")),e.type&&(o+=" [Type: ".concat(e.type,"]"))),tM.verbose("OpenAIError details",JSON.stringify(a))}else if(a instanceof tR){var r;o="Error: ".concat((null==(r=a.body)?void 0:r.error)||a.message),a.status&&(o+=" (Status: ".concat(a.status,")")),tM.verbose("ChatApiError details",JSON.stringify(a.body))}else a instanceof Error&&(o=a.message);Y(o),tp(),H(!1),ek(null),U(e.id,!1),tn(),t&&eP.current.add(e.id)}finally{}return n},th=async(e,t,n)=>{if(!R)return;tM.debug("Editing message",{messageId:e,contentLength:t.length,processNodeId:n});let r=R.messages.findIndex(t=>t.id===e);if(-1===r)return;let o={...R.messages[r],content:t,timestamp:Date.now(),processNodeId:n||void 0},a=[...R.messages.slice(0,r),o],l={...R,messages:a};if(tt(l),l.flowId){let e={flujo:"true",requireApproval:V?"true":void 0,flujodebug:X?"true":void 0,conversationId:l.id,processNodeId:n||void 0};if(!eE.current)return;Y(null),H(!0),ek(l.id),U(l.id,!0),ej({totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),await ta(l.id);try{let t=await e5.g.getFlow(l.flowId);if(!t)throw Error("Flow with ID ".concat(l.flowId," not found"));let n=l.messages.filter(e=>{var t;return!e.disabled&&!((null!=(t=e.depth)?t:0)>0)}).map(e=>{let t=t_(e),n={id:e.id,timestamp:e.timestamp,processNodeId:e.processNodeId};return"user"===e.role?{role:"user",content:t,...n}:"assistant"===e.role?{role:"assistant",content:t,tool_calls:e.tool_calls,...n}:"system"===e.role?{role:"system",content:t,...n}:"tool"===e.role?e.tool_call_id?{role:"tool",content:t,tool_call_id:e.tool_call_id,...n}:{role:"user",content:"string"==typeof t?"Tool result: ".concat(t):t,...n}:{role:"user",content:t,...n}}),r=await eE.current.chat.completions.create({model:"flow-".concat(t.name),messages:n,stream:!1,metadata:(()=>{let t={};return e.flujo&&(t.flujo=e.flujo),e.requireApproval&&(t.requireApproval=e.requireApproval),e.flujodebug&&(t.flujodebug=e.flujodebug),e.conversationId&&(t.conversationId=e.conversationId),e.processNodeId&&(t.processNodeId=e.processNodeId),t})()}),o={...r,status:r.status||"completed",conversation_id:l.id,messages:r.messages||l.messages,pendingToolCalls:r.pendingToolCalls,debugState:r.debugState,error:r.error,updatedAt:r.updatedAt||Date.now()};tu(o,l.id)}catch(e){tW(e)||eM.current.has(l.id)?(tM.info("Edited-message run cancelled by user",{conversationId:l.id}),eW(l.id,!0)):(tM.error("Error sending edited message:",e),Y(e instanceof Error?e.message:"Failed to send edited message")),H(!1),ek(null),U(l.id,!1),tn()}}},tg=async(e,t)=>{if(O){tM.info("Handling tool response: ".concat(e),{conversationId:O,toolCallId:t}),ee(null),H(!0),ek(O),U(O,!0),Y(null),await ta(O);try{let n=await tF.respondToToolCall(O,e,t);tM.debug("Tool response successful",{conversationId:O,action:e,toolCallId:t}),tu(n,O)}catch(o){if(tW(o)||eM.current.has(O)){tM.info("Tool-response resume cancelled by user",{conversationId:O}),eW(O,!0),H(!1),U(O,!1);return}tM.error("Error sending tool response (".concat(e,")"),{conversationId:O,toolCallId:t,err:o});let r="Failed to ".concat(e," tool call.");if(o instanceof tR){var n;r+=" Error: ".concat((null==(n=o.body)?void 0:n.error)||o.message)}else o instanceof Error&&(r+=" Error: ".concat(o.message));Y(r),H(!1),U(O,!1)}}},tm=async()=>{if(O&&ea){tM.info("Handling debug step request",{conversationId:O}),H(!0),ek(O),U(O,!0),Y(null),await ta(O);try{let e=await tF.debugStep(O);tu(e,O)}catch(e){tM.error("Error during debug step API call",{conversationId:O,err:e}),Y(e instanceof Error?e.message:"Failed to execute debug step."),H(!1),U(O,!1),el(!1),ei(null)}finally{}}},tx=async()=>{if(O&&ea){tM.info("Handling debug continue request",{conversationId:O}),H(!0),ek(O),U(O,!0),Y(null),el(!1),await ta(O);try{let e=await tF.debugContinue(O);tu(e,O)}catch(e){tM.error("Error during debug continue API call",{conversationId:O,err:e}),Y(e instanceof Error?e.message:"Failed to continue execution."),H(!1),U(O,!1)}finally{}}};(0,o.useEffect)(()=>{if(es){var e;eI(null!=(e=es.breakpoints)?e:[])}},[es]);let tv=(0,o.useCallback)(async e=>{if(!O)return;let t=eS.includes(e)?eS.filter(t=>t!==e):[...eS,e];eI(t);try{await tF.setBreakpoints(O,t)}catch(e){tM.error("Failed to update breakpoints",{conversationId:O,err:e}),eI(eS)}},[eS,O]),tb=async()=>{if(!O||!ea)return;let e=null==es?void 0:es.currentNodeId;H(!0),ek(O),U(O,!0),Y(null),await ta(O);try{for(let o=0;o<50;o++){var t,n,r;let o=await tF.debugStep(O),a=null!=(r=null==o?void 0:o.status)?r:null==o||null==(t=o.debugState)?void 0:t.status,l=null==o||null==(n=o.debugState)?void 0:n.currentNodeId;if("paused_debug"!==a||l&&l!==e)return void tu(o,O)}tM.warn("Step Over hit iteration cap",{conversationId:O}),H(!1),U(O,!1)}catch(e){tM.error("Error during step over",{conversationId:O,err:e}),Y(e instanceof Error?e.message:"Failed to step over."),H(!1),U(O,!1)}},ty=async()=>{if(O){tM.info("Cancelling request",{conversationId:O}),tp(),H(!1),ek(null),U(O,!1),eW(O,!0),ec(!1),tn(),ee(null),Y(null);try{await tF.cancel(O),tM.debug("Cancel request sent successfully",{conversationId:O}),await e$(O)}catch(e){tM.error("Error sending cancel request",{conversationId:O,err:e}),Y("Failed to send cancel request to the server.")}}},tj=async e=>{if(e===O)return void await ty();tM.info("Stopping background conversation",{conversationId:e}),eW(e,!0);try{await tF.cancel(e),U(e,!1),await eX(void 0,{silent:!0})}catch(t){tM.error("Error stopping background conversation",{conversationId:e,err:t}),Y("Failed to send cancel request to the server.")}},tw=async()=>{tM.info("Closing debugger panel",{conversationId:O}),el(!1),ei(null),ec(!1),await ty()};tM.debug("Rendering Chat component",{currentConversationId:O,isHandleEditMessageDefined:!0});let tA=(ed||ea)&&!!es&&!!O,tS=(null==e0?void 0:e0.status)==="awaiting_tool_approval"||!!Z,tN=!(tS||(null==e0?void 0:e0.status)==="paused_debug")&&(L&&eC===O||!!O&&q.has(O)||(null==e0?void 0:e0.status)==="running"),tz=!tN&&!!O&&e_.has(O);return(0,r.jsxs)(l.default,{sx:{display:"flex",height:"calc(100vh - 64px)"},children:[em&&(0,r.jsx)(l.default,{sx:{width:40,flexShrink:0,borderRight:1,borderColor:"divider",display:"flex",justifyContent:"center",pt:1},children:(0,r.jsx)(s.A,{title:"Show conversation sidebar",children:(0,r.jsx)(i.A,{size:"small",onClick:ev,"aria-label":"Show conversation sidebar",children:(0,r.jsx)(C.A,{fontSize:"small"})})})}),!em&&(0,r.jsx)(l.default,{sx:{width:eh,flexShrink:0,borderRight:1,borderColor:"divider",display:"flex",flexDirection:"column"},children:a?(0,r.jsx)(l.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%",p:2},children:(0,r.jsx)(tk.default,{size:"medium",color:"primary"})}):T?(0,r.jsx)(d.A,{severity:"error",sx:{m:2},children:T}):(0,r.jsx)(M,{conversations:t,currentConversationId:O,onSelectConversation:W,onDeleteConversation:tl,onStopConversation:tj,onNewConversation:e4,onQuickChat:()=>e7(!0),onCollapse:ev})}),!em&&(0,r.jsx)(l.default,{onPointerDown:eb,sx:{width:"6px",flexShrink:0,cursor:"col-resize",bgcolor:"divider",transition:"background-color 120ms","&:hover":{bgcolor:"primary.main"},touchAction:"none"},"aria-label":"Resize conversation sidebar"}),(0,r.jsxs)(l.default,{sx:{flex:1,height:"100%",display:"flex",minWidth:0,minHeight:0},children:[(0,r.jsxs)(l.default,{sx:{flex:1,minWidth:0,display:"flex",flexDirection:"column",height:"100%"},children:[O&&(0,r.jsxs)(l.default,{sx:{p:2,borderBottom:1,borderColor:"divider",display:"flex",alignItems:"center",gap:2},children:[(0,r.jsx)(l.default,{sx:{flex:1,minWidth:0},children:tC((null==e0?void 0:e0.flowId)||(null==R?void 0:R.flowId))?(0,r.jsx)(c.A,{color:"primary",variant:"outlined",icon:(0,r.jsx)(j.A,{}),label:"Quick Chat"}):(0,r.jsx)(e3,{selectedFlowId:(null==e0?void 0:e0.flowId)||(null==R?void 0:R.flowId)||null,onSelectFlow:e=>{var t,n,r,o;if(!O){tM.warn("Cannot update flow: No conversation selected."),Y("Please select a conversation first.");return}let a=null!=(r=null!=(n=null==R?void 0:R.flowId)?n:null==e0?void 0:e0.flowId)?r:null;if((null!=(o=null==R||null==(t=R.messages)?void 0:t.length)?o:0)>0&&a&&e!==a){tM.debug("Flow switch on executed conversation — asking for confirmation",{flowId:e,currentFlowId:a}),en(e);return}td(e)},disabled:ea})}),(0,r.jsx)(e1,{usage:null==R?void 0:R.usage,contextInfo:null==R?void 0:R.contextInfo,availableNodes:e2})]}),(0,r.jsxs)(l.default,{sx:{flex:1,minHeight:0,position:"relative",display:"flex",flexDirection:"column"},children:[(0,r.jsx)(l.default,{ref:eL,onScroll:eQ,sx:{flex:1,overflow:"auto",p:2},children:D?(0,r.jsx)(l.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"},children:(0,r.jsx)(tk.default,{size:"medium",color:"primary"})}):F?(0,r.jsx)(d.A,{severity:"error",sx:{m:2},children:F}):R?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eT,{messages:R.messages,pendingToolCalls:Z,availableNodes:e2,conversationId:R.id,onToggleDisabled:e=>{if(!R)return;tM.debug("Toggling message disabled state",{messageId:e});let t=R.messages.map(t=>t.id===e?{...t,disabled:!t.disabled}:t);tt({...R,messages:t})},onSplitConversation:e=>{if(!R)return;tM.debug("Splitting conversation at message",{messageId:e});let t=R.messages.findIndex(t=>t.id===e);if(-1===t)return;let r=R.messages.slice(0,t+1),o=(0,eH.A)(),a={id:o,title:"Split from ".concat(R.title),messages:r,flowId:R.flowId,createdAt:Date.now(),updatedAt:Date.now()},l={id:o,title:a.title,flowId:a.flowId,createdAt:a.createdAt,updatedAt:a.updatedAt};eP.current.add(o),n(e=>[l,...e].sort((e,t)=>t.updatedAt-e.updatedAt)),W(o),z(a),P(!1),_(null)},onEditMessage:th,onApproveToolCall:e=>{tg("approve",e)},onRejectToolCall:e=>{tg("reject",e)}}),!L&&!ea&&R.messages.length>0&&(null==e0?void 0:e0.status)==="completed"&&(0,r.jsx)(l.default,{sx:{display:"flex",justifyContent:"center",my:2},children:(0,r.jsx)(d.A,{icon:(0,r.jsx)(A.A,{fontSize:"inherit"}),severity:"success",variant:"filled",sx:{borderRadius:2,py:.5},children:"Conversation completed"})}),!L&&!ea&&tz&&(0,r.jsx)(l.default,{sx:{display:"flex",justifyContent:"center",my:2},children:(0,r.jsx)(d.A,{icon:(0,r.jsx)(I.A,{fontSize:"inherit"}),severity:"info",variant:"outlined",sx:{borderRadius:2,py:.5,alignItems:"center"},action:(0,r.jsx)(u.A,{color:"inherit",size:"small",startIcon:(0,r.jsx)(w.A,{}),onClick:()=>tf(R),children:"Resume"}),children:"Conversation stopped"})}),!L&&!ea&&!J&&!tz&&(null==e0?void 0:e0.status)==="error"&&(0,r.jsx)(l.default,{sx:{display:"flex",justifyContent:"center",my:2},children:(0,r.jsx)(d.A,{icon:(0,r.jsx)(S.A,{fontSize:"inherit"}),severity:"error",variant:"filled",sx:{borderRadius:2,py:.5,alignItems:"center"},action:(0,r.jsx)(u.A,{color:"inherit",size:"small",startIcon:(0,r.jsx)(w.A,{}),onClick:()=>{tf(R)},children:"Retry"}),children:"Conversation ended with an error"})}),tN&&!ea&&(0,r.jsx)(eJ,{liveStats:ey,onStop:ty,stopDisabled:!O}),!tN&&tS&&!ea&&(0,r.jsx)(eJ,{liveStats:ey,awaitingApproval:!0,onStop:ty,stopDisabled:!O}),J&&(0,r.jsx)(d.A,{severity:"error",sx:{mt:2},action:(0,r.jsx)(u.A,{color:"inherit",size:"small",startIcon:(0,r.jsx)(w.A,{}),onClick:()=>{R&&tf(R)},children:"Retry"}),children:J})]}):(0,r.jsx)(p.default,{variant:"body1",color:"textSecondary",align:"center",sx:{mt:4},children:t.length>0?"Select a conversation or create a new one.":"Create a new conversation to start chatting."})}),(0,r.jsx)(f.A,{in:eU,unmountOnExit:!0,children:(0,r.jsx)(h.A,{size:"small",color:"primary","aria-label":"Scroll to latest messages",onClick:eV,sx:{position:"absolute",bottom:16,right:24,zIndex:2},children:(0,r.jsx)(y.A,{})})})]}),(0,r.jsx)(l.default,{sx:{p:2,borderTop:1,borderColor:"divider"},children:(0,r.jsx)(eB,{onSendMessage:tc,disabled:D||!!O&&q.has(O)||!((null==R?void 0:R.flowId)||(null==e0?void 0:e0.flowId))||!!Z||ea,requireApproval:V,onRequireApprovalChange:eZ,executeInDebugger:X,onExecuteInDebuggerChange:$,availableNodes:e2,currentNodeId:e6,nodeOverrideActive:!!er,onSelectNode:eo})})]})," ",tA&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(l.default,{onPointerDown:ef,sx:{width:"6px",flexShrink:0,cursor:"col-resize",bgcolor:"divider",transition:"background-color 120ms","&:hover":{bgcolor:"primary.main"},touchAction:"none"},"aria-label":"Resize debugger panel"}),(0,r.jsx)(l.default,{sx:{width:eu?"".concat(eu,"px"):"50%",minWidth:360,maxWidth:"85vw",flexShrink:0,display:"flex",flexDirection:"column",height:"100%"},children:(0,r.jsx)(tI,{debugState:es,conversationId:O,liveActivity:ew,onStep:tm,onStepOver:tb,onContinue:tx,onCancel:ty,isLoading:L,breakpoints:eS,onToggleBreakpoint:tv,onClose:tw})})]})]})," ",(0,r.jsxs)(g.A,{open:!!et,onClose:()=>en(null),children:[(0,r.jsx)(m.A,{children:"Switch flow?"}),(0,r.jsx)(x.A,{children:(0,r.jsxs)(v.A,{children:["This conversation has already been processed with its current flow."," ","If you switch to"," ",(0,r.jsx)("strong",{children:(null==(e=G.find(e=>e.id===et))?void 0:e.name)||"the selected flow"}),","," ","the conversation will continue processing from that flow's Start node again."]})}),(0,r.jsxs)(b.A,{children:[(0,r.jsx)(u.A,{onClick:()=>en(null),children:"Cancel"}),(0,r.jsx)(u.A,{variant:"contained",onClick:()=>{en(null),et&&td(et)},children:"Switch Flow"})]})]}),(0,r.jsx)(te,{open:e8,onClose:()=>e7(!1),onStart:e9})]})},tH=(0,eb.h)("frontend/components/ClientOnly");function tq(e){let{children:t}=e,[n,a]=(0,o.useState)(!1);return((0,o.useEffect)(()=>(tH.debug("ClientOnly component mounted"),a(!0),()=>{tH.debug("ClientOnly component unmounted")}),[]),n)?(tH.debug("ClientOnly component rendering children"),(0,r.jsx)(r.Fragment,{children:t})):(tH.debug("ClientOnly component rendering null (not yet mounted)"),null)}let tB=(0,eb.h)("app/chat/page");function tU(){return tB.debug("Rendering ChatPage"),(0,r.jsx)(a.A,{maxWidth:!1,disableGutters:!0,children:(0,r.jsx)(tq,{children:(0,r.jsx)(tL,{})})})}},65818:(e,t,n)=>{"use strict";n.d(t,{mO:()=>a,rI:()=>l});var r=n(38459);let o=["stdio","websocket","sse","streamable"];function a(e,t){switch(t){case"name-asc":case"name-desc":return(0,r.po)(e.name);case"status-connected":case"status-disconnected":{let t=e.status;if("connected"===t)return{key:"status:connected",label:"Connected"};if("error"===t)return{key:"status:error",label:"Error"};if("requires_authentication"===t)return{key:"status:auth",label:"Requires authentication"};return{key:"status:disconnected",label:"Disconnected"}}case"transport":{let t=e.transport||"unknown";return{key:"transport:".concat(t),label:({stdio:"Stdio",websocket:"WebSocket",sse:"SSE",streamable:"Streamable HTTP"})[t]||t}}default:return{key:"all",label:"All servers"}}}function l(e,t){return[...e].sort((e,n)=>{switch(t){case"name-asc":return e.name.localeCompare(n.name);case"name-desc":return n.name.localeCompare(e.name);case"status-connected":if("connected"===e.status&&"connected"!==n.status)return -1;if("connected"!==e.status&&"connected"===n.status)return 1;return e.name.localeCompare(n.name);case"status-disconnected":if("disconnected"===e.status&&"disconnected"!==n.status)return -1;if("disconnected"!==e.status&&"disconnected"===n.status)return 1;return e.name.localeCompare(n.name);case"transport":{var r,a;let t=o.indexOf(null!=(r=e.transport)?r:""),l=o.indexOf(null!=(a=n.transport)?a:"");if(t!==l)return t-l;return e.name.localeCompare(n.name)}default:return 0}})}},84869:(e,t,n)=>{"use strict";n.d(t,{G:()=>l,S:()=>a});let r=(0,n(87021).h)("frontend/services/transcription/webSpeech"),o=()=>"webkitSpeechRecognition"in window||"SpeechRecognition"in window;async function a(e,t){if(!o())throw Error("Web Speech API is not supported in this browser");r.debug("Starting Web Speech API transcription");try{let n=URL.createObjectURL(e),o=new Audio(n),a=new(window.SpeechRecognition||window.webkitSpeechRecognition);return a.continuous=!0,a.interimResults=!0,(null==t?void 0:t.language)&&(a.lang=t.language),new Promise((e,n)=>{let l="";a.onresult=e=>{let n="";for(let t=e.resultIndex;t<e.results.length;t++){let r=e.results[t][0].transcript;e.results[t].isFinal?l+=r+" ":n+=r}(null==t?void 0:t.onInterimResult)&&t.onInterimResult(l+n),r.debug("Recognition interim result",{finalLength:l.length,interimLength:n.length})},a.onend=()=>{r.debug("Recognition ended",{transcriptLength:l.length}),e(l.trim())},a.onerror=e=>{r.error("Recognition error",{error:e.error}),n(Error("Speech recognition error: ".concat(e.error)))},o.onplay=()=>{a.start(),r.debug("Recognition started")},o.onended=()=>{a.stop(),r.debug("Audio playback ended")},o.onerror=e=>{r.error("Audio playback error",{error:e}),a.stop(),n(Error("Error playing audio"))},o.play().catch(e=>{r.error("Error starting audio playback",{error:e}),n(e)})})}catch(e){throw r.error("Error in Web Speech API transcription",{error:e}),e}}function l(){return{supported:o(),message:o()?"Web Speech API is supported":"Web Speech API is not supported in this browser"}}},97206:(e,t,n)=>{Promise.resolve().then(n.bind(n,45960))}},e=>{e.O(0,[3862,2678,4754,9244,8548,1983,1871,2003,5501,488,3272,3077,9659,9451,2403,7687,9554,8480,2005,6730,9181,9164,812,4207,8441,1255,7358],()=>e(e.s=97206)),_N_E=e.O()}]);