flujo-ai 3.48.6 → 3.48.7

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 (510) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +60 -60
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/react-loadable-manifest.json +2 -2
  6. package/.next/server/app/_global-error.html +1 -1
  7. package/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/.next/server/app/api/approvals/[id]/route.js +1 -1
  12. package/.next/server/app/api/approvals/[id]/route.js.nft.json +1 -1
  13. package/.next/server/app/api/approvals/route.js +1 -1
  14. package/.next/server/app/api/approvals/route.js.nft.json +1 -1
  15. package/.next/server/app/api/automation-map/route.js +1 -1
  16. package/.next/server/app/api/automation-map/route.js.nft.json +1 -1
  17. package/.next/server/app/api/avatar/[voiceAction]/route.js +1 -1
  18. package/.next/server/app/api/avatar/[voiceAction]/route.js.nft.json +1 -1
  19. package/.next/server/app/api/avatar/connections/route.js +1 -1
  20. package/.next/server/app/api/avatar/connections/route.js.nft.json +1 -1
  21. package/.next/server/app/api/avatar/local-speech/route.js +1 -1
  22. package/.next/server/app/api/avatar/local-speech/route.js.nft.json +1 -1
  23. package/.next/server/app/api/avatar/remote/[voiceAction]/route.js +1 -1
  24. package/.next/server/app/api/avatar/remote/[voiceAction]/route.js.nft.json +1 -1
  25. package/.next/server/app/api/avatar/remote/availability/route.js +1 -1
  26. package/.next/server/app/api/avatar/remote/availability/route.js.nft.json +1 -1
  27. package/.next/server/app/api/avatar/voice/route.js +1 -1
  28. package/.next/server/app/api/avatar/voice/route.js.nft.json +1 -1
  29. package/.next/server/app/api/avatar/work-model/route.js +1 -1
  30. package/.next/server/app/api/avatar/work-model/route.js.nft.json +1 -1
  31. package/.next/server/app/api/avatar/world/route.js +1 -1
  32. package/.next/server/app/api/avatar/world/route.js.nft.json +1 -1
  33. package/.next/server/app/api/backup/route.js +1 -1
  34. package/.next/server/app/api/backup/route.js.nft.json +1 -1
  35. package/.next/server/app/api/browse/route.js +1 -1
  36. package/.next/server/app/api/browse/route.js.nft.json +1 -1
  37. package/.next/server/app/api/bugs/enhance/route.js +1 -1
  38. package/.next/server/app/api/bugs/enhance/route.js.nft.json +1 -1
  39. package/.next/server/app/api/credential-migration/route.js +1 -1
  40. package/.next/server/app/api/credential-migration/route.js.nft.json +1 -1
  41. package/.next/server/app/api/credential-transfer/restore/route.js +1 -1
  42. package/.next/server/app/api/credential-transfer/restore/route.js.nft.json +1 -1
  43. package/.next/server/app/api/credential-transfer/route.js +1 -1
  44. package/.next/server/app/api/credential-transfer/route.js.nft.json +1 -1
  45. package/.next/server/app/api/cwd/route.js +1 -1
  46. package/.next/server/app/api/cwd/route.js.nft.json +1 -1
  47. package/.next/server/app/api/encryption/secure/route.js +1 -1
  48. package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
  49. package/.next/server/app/api/env/route.js +1 -1
  50. package/.next/server/app/api/env/route.js.nft.json +1 -1
  51. package/.next/server/app/api/factory-observatory/route.js +1 -1
  52. package/.next/server/app/api/factory-observatory/route.js.nft.json +1 -1
  53. package/.next/server/app/api/flow/[id]/convert-process-to-subflow/route.js +1 -1
  54. package/.next/server/app/api/flow/[id]/convert-process-to-subflow/route.js.nft.json +1 -1
  55. package/.next/server/app/api/flow/[id]/models/route.js +1 -1
  56. package/.next/server/app/api/flow/[id]/models/route.js.nft.json +1 -1
  57. package/.next/server/app/api/flow/[id]/route.js +1 -1
  58. package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
  59. package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js +1 -1
  60. package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js.nft.json +1 -1
  61. package/.next/server/app/api/flow/[id]/versions/route.js +1 -1
  62. package/.next/server/app/api/flow/[id]/versions/route.js.nft.json +1 -1
  63. package/.next/server/app/api/flow/assist/route.js +1 -1
  64. package/.next/server/app/api/flow/assist/route.js.nft.json +1 -1
  65. package/.next/server/app/api/flow/compile/route.js +1 -1
  66. package/.next/server/app/api/flow/compile/route.js.nft.json +1 -1
  67. package/.next/server/app/api/flow/generate/route.js +1 -1
  68. package/.next/server/app/api/flow/generate/route.js.nft.json +1 -1
  69. package/.next/server/app/api/flow/generate/visual/route.js +1 -1
  70. package/.next/server/app/api/flow/generate/visual/route.js.nft.json +1 -1
  71. package/.next/server/app/api/flow/generator/route.js +1 -1
  72. package/.next/server/app/api/flow/generator/route.js.nft.json +1 -1
  73. package/.next/server/app/api/flow/improve/route.js +1 -1
  74. package/.next/server/app/api/flow/improve/route.js.nft.json +1 -1
  75. package/.next/server/app/api/flow/model-agent/route.js +1 -1
  76. package/.next/server/app/api/flow/model-agent/route.js.nft.json +1 -1
  77. package/.next/server/app/api/flow/prompt-renderer/route.js +1 -1
  78. package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
  79. package/.next/server/app/api/flow/quick-chat/route.js +1 -1
  80. package/.next/server/app/api/flow/quick-chat/route.js.nft.json +1 -1
  81. package/.next/server/app/api/flow/repair/route.js +1 -1
  82. package/.next/server/app/api/flow/repair/route.js.nft.json +1 -1
  83. package/.next/server/app/api/flow/route.js +1 -1
  84. package/.next/server/app/api/flow/route.js.nft.json +1 -1
  85. package/.next/server/app/api/git/route.js +1 -1
  86. package/.next/server/app/api/git/route.js.nft.json +1 -1
  87. package/.next/server/app/api/harness/[id]/route.js +1 -1
  88. package/.next/server/app/api/harness/[id]/route.js.nft.json +1 -1
  89. package/.next/server/app/api/harness/comparisons/[id]/route.js +1 -1
  90. package/.next/server/app/api/harness/comparisons/[id]/route.js.nft.json +1 -1
  91. package/.next/server/app/api/harness/comparisons/route.js +1 -1
  92. package/.next/server/app/api/harness/comparisons/route.js.nft.json +1 -1
  93. package/.next/server/app/api/harness/profiles/route.js +1 -1
  94. package/.next/server/app/api/harness/profiles/route.js.nft.json +1 -1
  95. package/.next/server/app/api/harness/route.js +1 -1
  96. package/.next/server/app/api/harness/route.js.nft.json +1 -1
  97. package/.next/server/app/api/init/route.js +1 -1
  98. package/.next/server/app/api/init/route.js.nft.json +1 -1
  99. package/.next/server/app/api/local-models/capability/route.js +1 -1
  100. package/.next/server/app/api/local-models/capability/route.js.nft.json +1 -1
  101. package/.next/server/app/api/local-models/pull/route.js +1 -1
  102. package/.next/server/app/api/local-models/pull/route.js.nft.json +1 -1
  103. package/.next/server/app/api/local-models/suggest/route.js +1 -1
  104. package/.next/server/app/api/local-models/suggest/route.js.nft.json +1 -1
  105. package/.next/server/app/api/mcp/app-consent/route.js +1 -1
  106. package/.next/server/app/api/mcp/app-consent/route.js.nft.json +1 -1
  107. package/.next/server/app/api/mcp/app-sandbox/route.js +1 -1
  108. package/.next/server/app/api/mcp/app-sandbox/route.js.nft.json +1 -1
  109. package/.next/server/app/api/mcp/assistant/route.js +1 -1
  110. package/.next/server/app/api/mcp/assistant/route.js.nft.json +1 -1
  111. package/.next/server/app/api/mcp/cancel/route.js +1 -1
  112. package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
  113. package/.next/server/app/api/mcp/flujo/authoring/route.js +1 -1
  114. package/.next/server/app/api/mcp/flujo/authoring/route.js.nft.json +1 -1
  115. package/.next/server/app/api/mcp/flujo/automation/route.js +1 -1
  116. package/.next/server/app/api/mcp/flujo/automation/route.js.nft.json +1 -1
  117. package/.next/server/app/api/mcp/flujo/flows/route.js +1 -1
  118. package/.next/server/app/api/mcp/flujo/flows/route.js.nft.json +1 -1
  119. package/.next/server/app/api/mcp/flujo/resources/read/route.js +1 -1
  120. package/.next/server/app/api/mcp/flujo/resources/read/route.js.nft.json +1 -1
  121. package/.next/server/app/api/mcp/flujo/resources/route.js +1 -1
  122. package/.next/server/app/api/mcp/flujo/resources/route.js.nft.json +1 -1
  123. package/.next/server/app/api/mcp/flujo/servers/route.js +1 -1
  124. package/.next/server/app/api/mcp/flujo/servers/route.js.nft.json +1 -1
  125. package/.next/server/app/api/mcp/flujo/skills/route.js +1 -1
  126. package/.next/server/app/api/mcp/flujo/skills/route.js.nft.json +1 -1
  127. package/.next/server/app/api/mcp/flujo/state/route.js +1 -1
  128. package/.next/server/app/api/mcp/flujo/state/route.js.nft.json +1 -1
  129. package/.next/server/app/api/mcp/flujo/tools/route.js +1 -1
  130. package/.next/server/app/api/mcp/flujo/tools/route.js.nft.json +1 -1
  131. package/.next/server/app/api/mcp/model-risk-assessment/route.js +1 -1
  132. package/.next/server/app/api/mcp/model-risk-assessment/route.js.nft.json +1 -1
  133. package/.next/server/app/api/mcp/oauth-capability/route.js +1 -1
  134. package/.next/server/app/api/mcp/oauth-capability/route.js.nft.json +1 -1
  135. package/.next/server/app/api/mcp/security-review/route.js +1 -1
  136. package/.next/server/app/api/mcp/security-review/route.js.nft.json +1 -1
  137. package/.next/server/app/api/mcp/servers/[name]/host-consent/route.js +1 -1
  138. package/.next/server/app/api/mcp/servers/[name]/host-consent/route.js.nft.json +1 -1
  139. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -1
  140. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
  141. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -1
  142. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
  143. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -1
  144. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
  145. package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -1
  146. package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
  147. package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
  148. package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
  149. package/.next/server/app/api/mcp/servers/[name]/skills/approve/route.js +1 -1
  150. package/.next/server/app/api/mcp/servers/[name]/skills/approve/route.js.nft.json +1 -1
  151. package/.next/server/app/api/mcp/servers/[name]/skills/get/route.js +1 -1
  152. package/.next/server/app/api/mcp/servers/[name]/skills/get/route.js.nft.json +1 -1
  153. package/.next/server/app/api/mcp/servers/[name]/skills/load/route.js +1 -1
  154. package/.next/server/app/api/mcp/servers/[name]/skills/load/route.js.nft.json +1 -1
  155. package/.next/server/app/api/mcp/servers/[name]/skills/route.js +1 -1
  156. package/.next/server/app/api/mcp/servers/[name]/skills/route.js.nft.json +1 -1
  157. package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -1
  158. package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
  159. package/.next/server/app/api/mcp/servers/[name]/stdio-oauth/confirm/route.js +1 -1
  160. package/.next/server/app/api/mcp/servers/[name]/stdio-oauth/confirm/route.js.nft.json +1 -1
  161. package/.next/server/app/api/mcp/servers/[name]/stdio-oauth/start/route.js +1 -1
  162. package/.next/server/app/api/mcp/servers/[name]/stdio-oauth/start/route.js.nft.json +1 -1
  163. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -1
  164. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
  165. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/stream/route.js +1 -1
  166. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/stream/route.js.nft.json +1 -1
  167. package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -1
  168. package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
  169. package/.next/server/app/api/mcp/servers/route.js +1 -1
  170. package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
  171. package/.next/server/app/api/mcp/test-connection/route.js +1 -1
  172. package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
  173. package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
  174. package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
  175. package/.next/server/app/api/mcp-registry/route.js +1 -1
  176. package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
  177. package/.next/server/app/api/mcp-registry/spotlight/route.js +1 -1
  178. package/.next/server/app/api/mcp-registry/spotlight/route.js.nft.json +1 -1
  179. package/.next/server/app/api/model/[id]/route.js +1 -1
  180. package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
  181. package/.next/server/app/api/model/allowance/route.js +1 -1
  182. package/.next/server/app/api/model/allowance/route.js.nft.json +1 -1
  183. package/.next/server/app/api/model/provider/route.js +1 -1
  184. package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
  185. package/.next/server/app/api/model/route.js +1 -1
  186. package/.next/server/app/api/model/route.js.nft.json +1 -1
  187. package/.next/server/app/api/model/test/route.js +1 -1
  188. package/.next/server/app/api/model/test/route.js.nft.json +1 -1
  189. package/.next/server/app/api/network-exposure/route.js +1 -1
  190. package/.next/server/app/api/network-exposure/route.js.nft.json +1 -1
  191. package/.next/server/app/api/oauth/callback/route.js +1 -1
  192. package/.next/server/app/api/oauth/callback/route.js.nft.json +1 -1
  193. package/.next/server/app/api/oauth/initiate/route.js +1 -1
  194. package/.next/server/app/api/oauth/initiate/route.js.nft.json +1 -1
  195. package/.next/server/app/api/oauth/reset/route.js +1 -1
  196. package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
  197. package/.next/server/app/api/operations/status/route.js +1 -1
  198. package/.next/server/app/api/operations/status/route.js.nft.json +1 -1
  199. package/.next/server/app/api/original-owner/route.js +1 -1
  200. package/.next/server/app/api/original-owner/route.js.nft.json +1 -1
  201. package/.next/server/app/api/packages/build/route.js +1 -1
  202. package/.next/server/app/api/packages/build/route.js.nft.json +1 -1
  203. package/.next/server/app/api/packages/derive-secrets/route.js +1 -1
  204. package/.next/server/app/api/packages/derive-secrets/route.js.nft.json +1 -1
  205. package/.next/server/app/api/packages/install/route.js +1 -1
  206. package/.next/server/app/api/packages/install/route.js.nft.json +1 -1
  207. package/.next/server/app/api/packages/install/status/route.js +1 -1
  208. package/.next/server/app/api/packages/install/status/route.js.nft.json +1 -1
  209. package/.next/server/app/api/packages/installed/route.js +1 -1
  210. package/.next/server/app/api/packages/installed/route.js.nft.json +1 -1
  211. package/.next/server/app/api/packages/resolve/route.js +1 -1
  212. package/.next/server/app/api/packages/resolve/route.js.nft.json +1 -1
  213. package/.next/server/app/api/packages/scan-targets/route.js +1 -1
  214. package/.next/server/app/api/packages/scan-targets/route.js.nft.json +1 -1
  215. package/.next/server/app/api/packages/search/route.js +1 -1
  216. package/.next/server/app/api/packages/search/route.js.nft.json +1 -1
  217. package/.next/server/app/api/packages/uninstall/route.js +1 -1
  218. package/.next/server/app/api/packages/uninstall/route.js.nft.json +1 -1
  219. package/.next/server/app/api/persona-recovery/route.js +2 -2
  220. package/.next/server/app/api/persona-recovery/route.js.nft.json +1 -1
  221. package/.next/server/app/api/planned-executions/[id]/route.js +1 -1
  222. package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
  223. package/.next/server/app/api/planned-executions/[id]/run/route.js +1 -1
  224. package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
  225. package/.next/server/app/api/planned-executions/[id]/runs/route.js +1 -1
  226. package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
  227. package/.next/server/app/api/planned-executions/[id]/worker-recovery/route.js +1 -1
  228. package/.next/server/app/api/planned-executions/[id]/worker-recovery/route.js.nft.json +1 -1
  229. package/.next/server/app/api/planned-executions/preview-schedule/route.js +1 -1
  230. package/.next/server/app/api/planned-executions/preview-schedule/route.js.nft.json +1 -1
  231. package/.next/server/app/api/planned-executions/reconcile/route.js +1 -1
  232. package/.next/server/app/api/planned-executions/reconcile/route.js.nft.json +1 -1
  233. package/.next/server/app/api/planned-executions/route.js +1 -1
  234. package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
  235. package/.next/server/app/api/projects/route.js +1 -1
  236. package/.next/server/app/api/projects/route.js.nft.json +1 -1
  237. package/.next/server/app/api/reference-search/files/route.js +1 -1
  238. package/.next/server/app/api/reference-search/files/route.js.nft.json +1 -1
  239. package/.next/server/app/api/registry/auth/resend/route.js +1 -1
  240. package/.next/server/app/api/registry/auth/resend/route.js.nft.json +1 -1
  241. package/.next/server/app/api/registry/auth/reset/route.js +1 -1
  242. package/.next/server/app/api/registry/auth/reset/route.js.nft.json +1 -1
  243. package/.next/server/app/api/registry/auth/route.js +1 -1
  244. package/.next/server/app/api/registry/auth/route.js.nft.json +1 -1
  245. package/.next/server/app/api/registry/feedback/route.js +1 -1
  246. package/.next/server/app/api/registry/feedback/route.js.nft.json +1 -1
  247. package/.next/server/app/api/registry/oauth/callback/route.js +1 -1
  248. package/.next/server/app/api/registry/oauth/callback/route.js.nft.json +1 -1
  249. package/.next/server/app/api/registry/oauth/initiate/route.js +1 -1
  250. package/.next/server/app/api/registry/oauth/initiate/route.js.nft.json +1 -1
  251. package/.next/server/app/api/registry/packages/route.js +1 -1
  252. package/.next/server/app/api/registry/packages/route.js.nft.json +1 -1
  253. package/.next/server/app/api/registry/publish/route.js +1 -1
  254. package/.next/server/app/api/registry/publish/route.js.nft.json +1 -1
  255. package/.next/server/app/api/registry/settings/route.js +1 -1
  256. package/.next/server/app/api/registry/settings/route.js.nft.json +1 -1
  257. package/.next/server/app/api/restore/route.js +1 -1
  258. package/.next/server/app/api/restore/route.js.nft.json +1 -1
  259. package/.next/server/app/api/runs/active/route.js +1 -1
  260. package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
  261. package/.next/server/app/api/runtime-environment/route.js +1 -1
  262. package/.next/server/app/api/runtime-environment/route.js.nft.json +1 -1
  263. package/.next/server/app/api/setup/ai-cli/route.js +1 -1
  264. package/.next/server/app/api/setup/ai-cli/route.js.nft.json +1 -1
  265. package/.next/server/app/api/snapshot/abort/route.js +1 -1
  266. package/.next/server/app/api/snapshot/abort/route.js.nft.json +1 -1
  267. package/.next/server/app/api/snapshot/begin/route.js +1 -1
  268. package/.next/server/app/api/snapshot/begin/route.js.nft.json +1 -1
  269. package/.next/server/app/api/snapshot/download/route.js +1 -1
  270. package/.next/server/app/api/snapshot/download/route.js.nft.json +1 -1
  271. package/.next/server/app/api/snapshot/finalize/route.js +1 -1
  272. package/.next/server/app/api/snapshot/finalize/route.js.nft.json +1 -1
  273. package/.next/server/app/api/snapshot/info/route.js +1 -1
  274. package/.next/server/app/api/snapshot/info/route.js.nft.json +1 -1
  275. package/.next/server/app/api/snapshot/status/route.js +1 -1
  276. package/.next/server/app/api/snapshot/status/route.js.nft.json +1 -1
  277. package/.next/server/app/api/snapshots/cleanup/route.js +1 -1
  278. package/.next/server/app/api/snapshots/cleanup/route.js.nft.json +1 -1
  279. package/.next/server/app/api/snapshots/open-folder/route.js +1 -1
  280. package/.next/server/app/api/snapshots/open-folder/route.js.nft.json +1 -1
  281. package/.next/server/app/api/snapshots/route.js +1 -1
  282. package/.next/server/app/api/snapshots/route.js.nft.json +1 -1
  283. package/.next/server/app/api/statistics/route.js +1 -1
  284. package/.next/server/app/api/statistics/route.js.nft.json +1 -1
  285. package/.next/server/app/api/storage/route.js +1 -1
  286. package/.next/server/app/api/storage/route.js.nft.json +1 -1
  287. package/.next/server/app/api/telemetry/daily-active/route.js +1 -1
  288. package/.next/server/app/api/telemetry/daily-active/route.js.nft.json +1 -1
  289. package/.next/server/app/api/tickets/[id]/route.js +1 -1
  290. package/.next/server/app/api/tickets/[id]/route.js.nft.json +1 -1
  291. package/.next/server/app/api/tickets/route.js +1 -1
  292. package/.next/server/app/api/tickets/route.js.nft.json +1 -1
  293. package/.next/server/app/api/transcription/route.js +1 -1
  294. package/.next/server/app/api/transcription/route.js.nft.json +1 -1
  295. package/.next/server/app/api/update/route.js +1 -1
  296. package/.next/server/app/api/update/route.js.nft.json +1 -1
  297. package/.next/server/app/api/waves/route.js +1 -1
  298. package/.next/server/app/api/waves/route.js.nft.json +1 -1
  299. package/.next/server/app/api/webhooks/[id]/route.js +1 -1
  300. package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
  301. package/.next/server/app/api/workspaces/route.js +1 -1
  302. package/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  303. package/.next/server/app/chat/page.js +1 -1
  304. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  305. package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
  306. package/.next/server/app/mcp/page.js +1 -1
  307. package/.next/server/app/mcp/page.js.nft.json +1 -1
  308. package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
  309. package/.next/server/app/mcp-flows/route.js +1 -1
  310. package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
  311. package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
  312. package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
  313. package/.next/server/app/settings/page.js +1 -1
  314. package/.next/server/app/settings/page.js.nft.json +1 -1
  315. package/.next/server/app/v1/chat/completions/route.js +1 -1
  316. package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
  317. package/.next/server/app/v1/chat/conversation-chains/route.js +1 -1
  318. package/.next/server/app/v1/chat/conversation-chains/route.js.nft.json +1 -1
  319. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +1 -1
  320. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
  321. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +1 -1
  322. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
  323. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/attach/route.js +1 -1
  324. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/attach/route.js.nft.json +1 -1
  325. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
  326. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
  327. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/state/route.js +1 -1
  328. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/state/route.js.nft.json +1 -1
  329. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
  330. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
  331. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +1 -1
  332. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
  333. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +1 -1
  334. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
  335. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js +1 -1
  336. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js.nft.json +1 -1
  337. package/.next/server/app/v1/chat/conversations/[conversationId]/model-turns/[dispatchId]/media/[mediaId]/route.js +1 -1
  338. package/.next/server/app/v1/chat/conversations/[conversationId]/model-turns/[dispatchId]/media/[mediaId]/route.js.nft.json +1 -1
  339. package/.next/server/app/v1/chat/conversations/[conversationId]/model-turns/[dispatchId]/route.js +1 -1
  340. package/.next/server/app/v1/chat/conversations/[conversationId]/model-turns/[dispatchId]/route.js.nft.json +1 -1
  341. package/.next/server/app/v1/chat/conversations/[conversationId]/model-turns/route.js +1 -1
  342. package/.next/server/app/v1/chat/conversations/[conversationId]/model-turns/route.js.nft.json +1 -1
  343. package/.next/server/app/v1/chat/conversations/[conversationId]/recovery/route.js +1 -1
  344. package/.next/server/app/v1/chat/conversations/[conversationId]/recovery/route.js.nft.json +1 -1
  345. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route.js +1 -1
  346. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route.js.nft.json +1 -1
  347. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js +1 -1
  348. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js.nft.json +1 -1
  349. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
  350. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
  351. package/.next/server/app/v1/chat/conversations/[conversationId]/revert/route.js +1 -1
  352. package/.next/server/app/v1/chat/conversations/[conversationId]/revert/route.js.nft.json +1 -1
  353. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +1 -1
  354. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
  355. package/.next/server/app/v1/chat/conversations/[conversationId]/wire-preview/route.js +1 -1
  356. package/.next/server/app/v1/chat/conversations/[conversationId]/wire-preview/route.js.nft.json +1 -1
  357. package/.next/server/app/v1/chat/conversations/route.js +1 -1
  358. package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
  359. package/.next/server/app/v1/chat/events/route.js +1 -1
  360. package/.next/server/app/v1/chat/events/route.js.nft.json +1 -1
  361. package/.next/server/app/v1/flows/[flowRef]/readiness/route.js +1 -1
  362. package/.next/server/app/v1/flows/[flowRef]/readiness/route.js.nft.json +1 -1
  363. package/.next/server/app/v1/meetings/[meetingId]/cancel/route.js +1 -1
  364. package/.next/server/app/v1/meetings/[meetingId]/cancel/route.js.nft.json +1 -1
  365. package/.next/server/app/v1/meetings/[meetingId]/events/route.js +1 -1
  366. package/.next/server/app/v1/meetings/[meetingId]/events/route.js.nft.json +1 -1
  367. package/.next/server/app/v1/meetings/[meetingId]/interventions/route.js +1 -1
  368. package/.next/server/app/v1/meetings/[meetingId]/interventions/route.js.nft.json +1 -1
  369. package/.next/server/app/v1/meetings/[meetingId]/private-notes/route.js +1 -1
  370. package/.next/server/app/v1/meetings/[meetingId]/private-notes/route.js.nft.json +1 -1
  371. package/.next/server/app/v1/meetings/[meetingId]/resume/route.js +1 -1
  372. package/.next/server/app/v1/meetings/[meetingId]/resume/route.js.nft.json +1 -1
  373. package/.next/server/app/v1/meetings/[meetingId]/route.js +1 -1
  374. package/.next/server/app/v1/meetings/[meetingId]/route.js.nft.json +1 -1
  375. package/.next/server/app/v1/meetings/[meetingId]/start/route.js +1 -1
  376. package/.next/server/app/v1/meetings/[meetingId]/start/route.js.nft.json +1 -1
  377. package/.next/server/app/v1/meetings/route.js +1 -1
  378. package/.next/server/app/v1/meetings/route.js.nft.json +1 -1
  379. package/.next/server/app/v1/models/route.js +1 -1
  380. package/.next/server/app/v1/models/route.js.nft.json +1 -1
  381. package/.next/server/app/v1/persona-drafts/[draftId]/route.js +1 -1
  382. package/.next/server/app/v1/persona-drafts/[draftId]/route.js.nft.json +1 -1
  383. package/.next/server/app/v1/persona-drafts/route.js +1 -1
  384. package/.next/server/app/v1/persona-drafts/route.js.nft.json +1 -1
  385. package/.next/server/app/v1/personas/[personaId]/app-grants/[grantId]/launch/route.js +1 -1
  386. package/.next/server/app/v1/personas/[personaId]/app-grants/[grantId]/launch/route.js.nft.json +1 -1
  387. package/.next/server/app/v1/personas/[personaId]/app-grants/[grantId]/route.js +1 -1
  388. package/.next/server/app/v1/personas/[personaId]/app-grants/[grantId]/route.js.nft.json +1 -1
  389. package/.next/server/app/v1/personas/[personaId]/app-grants/route.js +1 -1
  390. package/.next/server/app/v1/personas/[personaId]/app-grants/route.js.nft.json +1 -1
  391. package/.next/server/app/v1/personas/[personaId]/behaviors/[behaviorId]/activate/route.js +1 -1
  392. package/.next/server/app/v1/personas/[personaId]/behaviors/[behaviorId]/activate/route.js.nft.json +1 -1
  393. package/.next/server/app/v1/personas/[personaId]/composition/behaviors/route.js +1 -1
  394. package/.next/server/app/v1/personas/[personaId]/composition/behaviors/route.js.nft.json +1 -1
  395. package/.next/server/app/v1/personas/[personaId]/composition/copy/route.js +1 -1
  396. package/.next/server/app/v1/personas/[personaId]/composition/copy/route.js.nft.json +1 -1
  397. package/.next/server/app/v1/personas/[personaId]/composition/route.js +1 -1
  398. package/.next/server/app/v1/personas/[personaId]/composition/route.js.nft.json +1 -1
  399. package/.next/server/app/v1/personas/[personaId]/core/reconcile/route.js +1 -1
  400. package/.next/server/app/v1/personas/[personaId]/core/reconcile/route.js.nft.json +1 -1
  401. package/.next/server/app/v1/personas/[personaId]/deletion-preview/route.js +1 -1
  402. package/.next/server/app/v1/personas/[personaId]/deletion-preview/route.js.nft.json +1 -1
  403. package/.next/server/app/v1/personas/[personaId]/execution-preview/route.js +1 -1
  404. package/.next/server/app/v1/personas/[personaId]/execution-preview/route.js.nft.json +1 -1
  405. package/.next/server/app/v1/personas/[personaId]/export/route.js +1 -1
  406. package/.next/server/app/v1/personas/[personaId]/export/route.js.nft.json +1 -1
  407. package/.next/server/app/v1/personas/[personaId]/export-preview/route.js +1 -1
  408. package/.next/server/app/v1/personas/[personaId]/export-preview/route.js.nft.json +1 -1
  409. package/.next/server/app/v1/personas/[personaId]/goal-admissions/[admissionKey]/route.js +1 -1
  410. package/.next/server/app/v1/personas/[personaId]/goal-admissions/[admissionKey]/route.js.nft.json +1 -1
  411. package/.next/server/app/v1/personas/[personaId]/improvements/[proposalId]/apply/route.js +1 -1
  412. package/.next/server/app/v1/personas/[personaId]/improvements/[proposalId]/apply/route.js.nft.json +1 -1
  413. package/.next/server/app/v1/personas/[personaId]/improvements/[proposalId]/promote/route.js +1 -1
  414. package/.next/server/app/v1/personas/[personaId]/improvements/[proposalId]/promote/route.js.nft.json +1 -1
  415. package/.next/server/app/v1/personas/[personaId]/improvements/[proposalId]/reject/route.js +1 -1
  416. package/.next/server/app/v1/personas/[personaId]/improvements/[proposalId]/reject/route.js.nft.json +1 -1
  417. package/.next/server/app/v1/personas/[personaId]/improvements/[proposalId]/undo/route.js +1 -1
  418. package/.next/server/app/v1/personas/[personaId]/improvements/[proposalId]/undo/route.js.nft.json +1 -1
  419. package/.next/server/app/v1/personas/[personaId]/improvements/route.js +1 -1
  420. package/.next/server/app/v1/personas/[personaId]/improvements/route.js.nft.json +1 -1
  421. package/.next/server/app/v1/personas/[personaId]/memories/[memoryId]/activate/route.js +1 -1
  422. package/.next/server/app/v1/personas/[personaId]/memories/[memoryId]/activate/route.js.nft.json +1 -1
  423. package/.next/server/app/v1/personas/[personaId]/memories/[memoryId]/correct/route.js +1 -1
  424. package/.next/server/app/v1/personas/[personaId]/memories/[memoryId]/correct/route.js.nft.json +1 -1
  425. package/.next/server/app/v1/personas/[personaId]/memories/[memoryId]/pin/route.js +1 -1
  426. package/.next/server/app/v1/personas/[personaId]/memories/[memoryId]/pin/route.js.nft.json +1 -1
  427. package/.next/server/app/v1/personas/[personaId]/memories/[memoryId]/resolve-conflict/route.js +1 -1
  428. package/.next/server/app/v1/personas/[personaId]/memories/[memoryId]/resolve-conflict/route.js.nft.json +1 -1
  429. package/.next/server/app/v1/personas/[personaId]/memories/[memoryId]/route.js +1 -1
  430. package/.next/server/app/v1/personas/[personaId]/memories/[memoryId]/route.js.nft.json +1 -1
  431. package/.next/server/app/v1/personas/[personaId]/memories/route.js +1 -1
  432. package/.next/server/app/v1/personas/[personaId]/memories/route.js.nft.json +1 -1
  433. package/.next/server/app/v1/personas/[personaId]/route.js +1 -1
  434. package/.next/server/app/v1/personas/[personaId]/route.js.nft.json +1 -1
  435. package/.next/server/app/v1/personas/[personaId]/runtime-recovery/route.js +1 -1
  436. package/.next/server/app/v1/personas/[personaId]/runtime-recovery/route.js.nft.json +1 -1
  437. package/.next/server/app/v1/personas/[personaId]/storage-stats/route.js +1 -1
  438. package/.next/server/app/v1/personas/[personaId]/storage-stats/route.js.nft.json +1 -1
  439. package/.next/server/app/v1/personas/[personaId]/work-items/[workItemId]/assign/route.js +1 -1
  440. package/.next/server/app/v1/personas/[personaId]/work-items/[workItemId]/assign/route.js.nft.json +1 -1
  441. package/.next/server/app/v1/personas/[personaId]/work-items/[workItemId]/control/route.js +1 -1
  442. package/.next/server/app/v1/personas/[personaId]/work-items/[workItemId]/control/route.js.nft.json +1 -1
  443. package/.next/server/app/v1/personas/[personaId]/work-items/[workItemId]/route.js +1 -1
  444. package/.next/server/app/v1/personas/[personaId]/work-items/[workItemId]/route.js.nft.json +1 -1
  445. package/.next/server/app/v1/personas/[personaId]/work-items/[workItemId]/runtime/route.js +1 -1
  446. package/.next/server/app/v1/personas/[personaId]/work-items/[workItemId]/runtime/route.js.nft.json +1 -1
  447. package/.next/server/app/v1/personas/[personaId]/work-items/[workItemId]/source/route.js +1 -1
  448. package/.next/server/app/v1/personas/[personaId]/work-items/[workItemId]/source/route.js.nft.json +1 -1
  449. package/.next/server/app/v1/personas/[personaId]/work-items/promote-todo/route.js +1 -1
  450. package/.next/server/app/v1/personas/[personaId]/work-items/promote-todo/route.js.nft.json +1 -1
  451. package/.next/server/app/v1/personas/[personaId]/work-items/route.js +1 -1
  452. package/.next/server/app/v1/personas/[personaId]/work-items/route.js.nft.json +1 -1
  453. package/.next/server/app/v1/personas/readiness/route.js +1 -1
  454. package/.next/server/app/v1/personas/readiness/route.js.nft.json +1 -1
  455. package/.next/server/app/v1/personas/route.js +1 -1
  456. package/.next/server/app/v1/personas/route.js.nft.json +1 -1
  457. package/.next/server/app/v1/personas/settings-options/route.js +1 -1
  458. package/.next/server/app/v1/personas/settings-options/route.js.nft.json +1 -1
  459. package/.next/server/app/v1/personas/summary/route.js +1 -1
  460. package/.next/server/app/v1/personas/summary/route.js.nft.json +1 -1
  461. package/.next/server/app/v1/roles/[roleId]/duplicate/route.js +1 -1
  462. package/.next/server/app/v1/roles/[roleId]/duplicate/route.js.nft.json +1 -1
  463. package/.next/server/app/v1/roles/[roleId]/impact/route.js +1 -1
  464. package/.next/server/app/v1/roles/[roleId]/impact/route.js.nft.json +1 -1
  465. package/.next/server/app/v1/roles/[roleId]/restore/route.js +1 -1
  466. package/.next/server/app/v1/roles/[roleId]/restore/route.js.nft.json +1 -1
  467. package/.next/server/app/v1/roles/[roleId]/rollback/route.js +1 -1
  468. package/.next/server/app/v1/roles/[roleId]/rollback/route.js.nft.json +1 -1
  469. package/.next/server/app/v1/roles/[roleId]/route.js +1 -1
  470. package/.next/server/app/v1/roles/[roleId]/route.js.nft.json +1 -1
  471. package/.next/server/app/v1/roles/[roleId]/versions/route.js +1 -1
  472. package/.next/server/app/v1/roles/[roleId]/versions/route.js.nft.json +1 -1
  473. package/.next/server/app/v1/roles/route.js +1 -1
  474. package/.next/server/app/v1/roles/route.js.nft.json +1 -1
  475. package/.next/server/app/v1/tasks/[taskId]/route.js +1 -1
  476. package/.next/server/app/v1/tasks/[taskId]/route.js.nft.json +1 -1
  477. package/.next/server/app-paths-manifest.json +60 -60
  478. package/.next/server/chunks/14645.js +1 -1
  479. package/.next/server/chunks/21392.js +3 -3
  480. package/.next/server/chunks/{83503.js → 25847.js} +3 -3
  481. package/.next/server/chunks/31519.js +3 -3
  482. package/.next/server/chunks/34679.js +1 -1
  483. package/.next/server/chunks/52152.js +3 -3
  484. package/.next/server/chunks/73633.js +1 -1
  485. package/.next/server/chunks/81306.js +1 -1
  486. package/.next/server/chunks/82300.js +3 -3
  487. package/.next/server/chunks/83718.js +1 -1
  488. package/.next/server/chunks/8464.js +1 -1
  489. package/.next/server/chunks/{78608.js → 87864.js} +3 -3
  490. package/.next/server/chunks/89031.js +1 -1
  491. package/.next/server/chunks/97235.js +1 -1
  492. package/.next/server/middleware-build-manifest.js +1 -1
  493. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  494. package/.next/server/pages/500.html +1 -1
  495. package/.next/server/preview-props.json +3 -3
  496. package/.next/server/server-reference-manifest.js +1 -1
  497. package/.next/server/server-reference-manifest.json +1 -1
  498. package/.next/static/chunks/{2103-5f61569b0629e957.js → 2103-be5e06316fbab625.js} +1 -1
  499. package/.next/static/chunks/app/chat/{page-569fe5a097bb2c06.js → page-314d31c432c2d88b.js} +1 -1
  500. package/.next/static/chunks/webpack-1449ea081feba501.js +1 -0
  501. package/.next/trace-build +1 -1
  502. package/README.md +1 -1
  503. package/mcp-servers/bash/package.json +1 -1
  504. package/mcp-servers/browser/package.json +1 -1
  505. package/mcp-servers/filesystem/package.json +1 -1
  506. package/mcp-servers/flujo/package.json +1 -1
  507. package/package.json +5 -5
  508. package/.next/static/chunks/webpack-d7e41a6b1b459ed1.js +0 -1
  509. /package/.next/static/{QzwOWTB7GKoP7AaFNpYr5 → dA-lF06zcBoG4LavbX9MD}/_buildManifest.js +0 -0
  510. /package/.next/static/{QzwOWTB7GKoP7AaFNpYr5 → dA-lF06zcBoG4LavbX9MD}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8457],{399:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a5});var a=n(95155),r=n(12115),o=n(58776);function s(e,t){return e?.elicitationId===t?null:e}function i(e,t){return e?.questionId===t?null:e}var l=n(73321),d=n(7848),c=n(4550),u=n(52673),h=n(89009),p=n(37911),m=n(99306),g=n(9098),f=n(94771),x=n(97407),v=n(98935),y=n(66149),b=n(61125),w=n(16769),j=n(68204),A=n(14039),k=n(38644),S=n(85970),I=n(19777),C=n(28683),$=n(4061),z=n(74786),T=n(66301);let M=["top","up","bottom"];var E=n(74708),R=n(76304),N=n(56461),W=n(36885),P=n(40741),O=n(35275),D=n(3244),F=n(11652),_=n(42953),q=n(34812),B=n(78154),H=n(24102),L=n(41955),U=n(91452),K=n(17473),J=n(16079),V=n(87296),X=n(61315),G=n(65013),Y=n(2847),Q=n(1717),Z=n(10527),ee=n(31973),et=n(58687),en=n(70668),ea=n(62402),er=n(97788),eo=n(88496),es=n(285),ei=n(95746),el=n(39734),ed=n(88078),ec=n(11683),eu=n(61378),eh=n(95495),ep=n(46485),em=n(9123),eg=n(78366),ef=n(59299),ex=n(94580),ev=n(67226),ey=n(92053),eb=n(34253),ew=n(44855),ej=n(9828),eA=n(92279),ek=n(91295),eS=n(66737),eI=n(47494);function eC(e){return"string"==typeof e&&e.startsWith("quickchat-")}n(77483);var e$=n(62510),ez=n(72968),eT=n(29598);let eM="wave:__adhoc__",eE="wave:__archived__";var eR=n(90015),eN=n(83363),eW=n(6310);function eP({nodes:e,childrenByParent:t,renderItem:n,expanded:r,onToggle:o,depth:s=0,visited:i,maxDepth:l=20}){let{t:d}=(0,eW.s9)(),u=(0,C.A)();if(!e||0===e.length||s>l)return null;let h=i??new Set;return(0,a.jsx)(a.Fragment,{children:e.map((i,p)=>{if(h.has(i.id))return null;let m=t.get(i.id)??[],g=m.length>0&&s<l,x=!1!==r[i.id],v=new Set(h);v.add(i.id);let y=p===e.length-1,b=(0,eN.X4)(u.palette.primary.main,"dark"===u.palette.mode?.5:.34);return(0,a.jsxs)(c.default,{"data-tree-depth":s,sx:{position:"relative",pl:3.25*(s>0),...s>0?{"&::before":{content:'""',position:"absolute",left:12,top:0,bottom:y?"calc(100% - 31px)":0,borderLeft:`2px solid ${b}`},"&::after":{content:'""',position:"absolute",left:12,top:30,width:14,borderTop:`2px solid ${b}`,borderTopLeftRadius:6}}:{}},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"flex-start"},children:[g?(0,a.jsx)(f.A,{size:"small",onClick:()=>o(i.id),"aria-label":x?d("chat.chain.collapse"):d("chat.chain.expand"),sx:{mt:.5,flexShrink:0,zIndex:1,border:"1px solid",borderColor:b,bgcolor:"background.paper","&:hover":{bgcolor:"action.hover"}},children:x?(0,a.jsx)(ed.A,{fontSize:"small"}):(0,a.jsx)(el.A,{fontSize:"small"})}):(0,a.jsx)(c.default,{sx:{width:34,flexShrink:0}}),(0,a.jsx)(c.default,{sx:{flex:1,minWidth:0},children:n(i,s)})]}),g&&(0,a.jsx)(en.A,{in:x,timeout:"auto",unmountOnExit:!0,children:(0,a.jsx)(eP,{nodes:m,childrenByParent:t,renderItem:n,expanded:r,onToggle:o,depth:s+1,visited:v,maxDepth:l})})]},i.id)})})}var eO=n(89228);let eD="flujo-ui:chat-sidebar:pinned";var eF=n(94370);let e_={chat:{label:"User chat",description:"Started interactively from the chat workspace"},api:{label:"API",description:"Started through the chat completions API"},schedule:{label:"Automation",description:"Started by a planned execution or automation trigger"},trigger:{label:"Trigger",description:"Started by an unattended runtime trigger"},subflow:{label:"Subagent",description:"Spawned as a subagent by another conversation"},mcp:{label:"MCP run",description:"Started through FLUJO's MCP interface"},internal:{label:"Internal",description:"Started by an internal FLUJO tool"},meeting:{label:"Meeting",description:"Participated in a multi-flow meeting"},unknown:{label:"Unknown origin",description:"Origin metadata was not recorded for this older conversation"}};function eq(e,t){return{key:e,...e_[e],inferred:t}}function eB(e){return e.source&&e.source in e_?eq(e.source,!1):e.parentConversationId?eq("subflow",!0):e.plannedExecutionId?eq("schedule",!0):eq("unknown",!0)}var eH=n(94111),eL=n(96890),eU=n(57643),eK=n(22821),eJ=n(14999),eV=n(77311),eX=n(40337),eG=n(50062),eY=n(83299),eQ=n(43830),eZ=n(88038);let e0="flujo:projects-changed";function e1(e){let t=e.split(/[\\/]+/).filter(Boolean);return t[t.length-1]??e}function e2(e){let[t,n]=(0,r.useState)(null),[a,o]=(0,r.useState)(!0),[s,i]=(0,r.useState)(null),l=(0,r.useRef)(e);l.current=e;let d=(0,r.useRef)({}),c=(0,r.useCallback)(async()=>{let e=l.current;try{let t=await fetch(e?`/api/projects?conversationId=${encodeURIComponent(e)}`:"/api/projects"),a=await t.json().catch(()=>({}));if(e!==l.current)return;if(!t.ok)return void i(a.error||"Projects are unavailable.");n({projects:a.projects??[],activeProject:a.activeProject??null,chat:a.chat??null}),i(null)}catch{}finally{e===l.current&&o(!1)}},[]);return(0,r.useEffect)(()=>{o(!0),c()},[e,c]),(0,r.useEffect)(()=>{let e=e=>{e.detail!==d.current&&c()},t=()=>{c()},n=()=>{"visible"===document.visibilityState&&c()},a=window.setInterval(()=>{"visible"===document.visibilityState&&c()},15e3);return window.addEventListener(e0,e),window.addEventListener("focus",t),document.addEventListener("visibilitychange",n),()=>{window.clearInterval(a),window.removeEventListener(e0,e),window.removeEventListener("focus",t),document.removeEventListener("visibilitychange",n)}},[c]),{state:t,loading:a,error:s,refresh:c,act:(0,r.useCallback)(async(e,t={})=>{let a=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,conversationId:l.current??void 0,...t})}),r=await a.json().catch(()=>({}));if(!a.ok)throw Error(r.error||"The project could not be updated.");let o={projects:r.projects??[],activeProject:r.activeProject??null,chat:r.chat??null};return n(o),window.dispatchEvent(new CustomEvent(e0,{detail:d.current})),o},[])}}var e5=n(11755);let e4="flujo-ui:chat-sidebar:projects-collapsed",e6=e=>e.worktrees.filter(e=>e.managed).length,e3=function(){let e=(0,C.A)(),{t}=(0,eW.s9)(),{state:n,act:o}=e2(),[s,i]=(0,r.useState)(()=>(0,eR.Aq)(e4,!1)),[l,d]=(0,r.useState)(!1),[h,x]=(0,r.useState)(null),[v,y]=(0,r.useState)(null),b=async(e,t)=>{y(null);try{await o(e,t)}catch(e){y(e instanceof Error?e.message:String(e))}},w=n?.projects??[],$=w.find(e=>e.path===h);return(0,a.jsxs)(c.default,{"data-chat-projects-panel":!0,sx:{px:1.5,pt:1.2,pb:.6},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,a.jsxs)(u.A,{size:"small",color:"inherit",onClick:()=>{i(e=>((0,eR.vi)(e4,!e),!e))},"aria-expanded":!s,"aria-label":s?t("projects.show"):t("projects.hide"),endIcon:s?(0,a.jsx)(eJ.A,{}):(0,a.jsx)(eV.A,{}),sx:{flex:1,justifyContent:"flex-start",color:"text.secondary",fontWeight:760,letterSpacing:".08em",fontSize:"0.72rem"},children:[t("projects.title").toUpperCase(),w.length>0&&(0,a.jsx)(c.default,{component:"span",sx:{ml:.8,fontWeight:600},children:w.length})]}),(0,a.jsx)(g.A,{title:t("projects.add"),children:(0,a.jsx)(f.A,{size:"small","aria-label":t("projects.add"),onClick:()=>d(!0),children:(0,a.jsx)(eX.A,{fontSize:"small"})})})]}),v&&(0,a.jsx)(m.A,{severity:"error",onClose:()=>y(null),sx:{my:.8,wordBreak:"break-word"},children:v}),(0,a.jsxs)(en.A,{in:!s,children:[n&&0===w.length&&(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",component:"p",sx:{px:1,pb:.8},children:t("projects.empty")}),(0,a.jsx)(ea.A,{dense:!0,disablePadding:!0,sx:{maxHeight:220,overflowY:"auto"},children:w.map(r=>{let o=r.path===n?.activeProject,s=r.git;return(0,a.jsxs)(X.A,{selected:o,onClick:()=>{o||b("activate",{project:r.path})},"aria-current":o?"true":void 0,"aria-label":o?`${r.name} — ${t("projects.newChatsHere")}`:t("projects.makeActive",{project:r.name}),title:r.path,sx:{borderRadius:1.5,pr:.5,"& .project-remove":{opacity:0},"&:hover .project-remove, &:focus-within .project-remove":{opacity:1},...o?{bgcolor:`${(0,eN.X4)(e.palette.primary.main,.1)} !important`}:{}},children:[(0,a.jsx)(eK.A,{sx:{minWidth:30},children:o?(0,a.jsx)(eG.A,{fontSize:"small",color:"primary"}):(0,a.jsx)(eY.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:r.name,secondary:s?(0,a.jsxs)(c.default,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.4,minWidth:0},children:[(0,a.jsx)(eQ.A,{sx:{fontSize:"0.85rem"},"aria-hidden":"true"}),(0,a.jsx)(c.default,{component:"span",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:s.branch??s.head}),s.changes>0&&(0,a.jsxs)(c.default,{component:"span",sx:{color:"warning.main",fontWeight:700},"aria-label":t("projects.changes",{count:s.changes}),children:["•",s.changes]}),e6(s)>0&&(0,a.jsxs)(c.default,{component:"span",sx:{color:"text.disabled"},children:["+",e6(s)]})]}):t("projects.notGit"),slotProps:{primary:{noWrap:!0,sx:{fontWeight:o?750:600,fontSize:"0.84rem"}},secondary:{component:"span",sx:{display:"block",fontSize:"0.72rem"}}}}),o&&(0,a.jsx)(p.A,{variant:"caption",color:"primary",sx:{fontSize:"0.64rem",fontWeight:700,whiteSpace:"nowrap",mx:.5},children:t("projects.newChatsHere")}),(0,a.jsx)(g.A,{title:t("projects.remove"),children:(0,a.jsx)(f.A,{className:"project-remove",size:"small","aria-label":t("projects.remove"),onClick:e=>{e.stopPropagation(),x(r.path)},children:(0,a.jsx)(eZ.A,{fontSize:"small"})})})]},r.path)})})]}),(0,a.jsx)(e5.A,{open:l,title:t("projects.chooseFolder"),onClose:()=>d(!1),onSelect:e=>void b("add",{path:e})}),(0,a.jsxs)(j.A,{open:!!h,onClose:()=>x(null),fullWidth:!0,maxWidth:"xs",children:[(0,a.jsx)(A.A,{children:$?.name??h}),(0,a.jsxs)(k.A,{children:[(0,a.jsx)(S.A,{sx:{wordBreak:"break-word"},children:t("projects.remove")}),(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",sx:{fontFamily:"monospace",wordBreak:"break-all"},children:h})]}),(0,a.jsxs)(I.A,{children:[(0,a.jsx)(u.A,{onClick:()=>x(null),children:t("common.cancel")}),(0,a.jsx)(u.A,{color:"error",variant:"contained",onClick:()=>{x(null),b("remove",{project:h})},children:t("projects.dialog.removeAction")})]})]})]})};var e7=n(43409);let e9=["all","running","awaiting_tool_approval","paused_debug","completed","error"],e8=["all","today","7d","30d"],te=["none","date","flow","origin","wave","chain"],tt=["all","chat","schedule","subflow","meeting"],tn={chat:U.A,api:eg.A,schedule:eh.A,trigger:em.A,subflow:ep.A,mcp:ef.A,internal:ex.A,meeting:ev.A,unknown:ey.A},ta=r.memo(({conversations:e,totalConversations:t=e.length,hasMoreConversations:n=!1,isLoadingMore:o=!1,onLoadMore:s,onLoadAll:i,onPinsChanged:l,currentConversationId:d,revealRequest:m=null,onSelectConversation:x,onDeleteConversation:b,onBulkDelete:w,onStopConversation:$,onNewConversation:z,onQuickChat:T,onCollapse:M,collapsed:R=!1,flowNames:N={},personaNames:W={}})=>{let{t:O,tp:D,formatDate:_}=(0,eW.s9)(),q=(0,C.A)(),{visualStyle:B}=(0,eF.useTheme)(),H="modern"===B,[L,U]=r.useState(""),K=(0,e7.j)(),[J,eh]=r.useState({open:!1,ids:[],label:""}),[ep,em]=r.useState(!1),[eg,ef]=r.useState(null),[ex,ev]=r.useState({open:!1,parent:null,descendantIds:[],lookupFailed:!1}),[ey,e_]=(0,eR.Io)("flujo-ui:chat-sidebar:search-dim","title"),[eq,eK]=r.useState(null),[eJ,eV]=r.useState(!1),[eX,eG]=r.useState(!1),[eY,eQ]=r.useState(null),eZ=r.useRef(null),[e0,e1]=(0,eR.Io)("flujo-ui:chat-sidebar:group","none"),[e2,e5]=(0,eR.Io)(eD,[]),e4=r.useRef(e2);r.useEffect(()=>{e4.current!==e2&&(e4.current=e2,l?.())},[e2,l]);let[e6,ta]=(0,eR.Io)("flujo-ui:chat-sidebar:status","all"),[tr,to]=(0,eR.Io)("flujo-ui:chat-sidebar:flow","all"),[ts,ti]=(0,eR.Io)("flujo-ui:chat-sidebar:date","all"),[tl,td]=(0,eR.Io)("flujo-ui:chat-sidebar:origin","all"),[tc,tu]=(0,eR.Io)("flujo-ui:chat-sidebar:filters-open",!1),[th,tp]=(0,eR.Io)("flujo-ui:chat-sidebar:collapsed",{}),tm=L.trim(),tg=`${ey}\0${tl}\0${tm}`,tf=tm.length>0&&eq?.key===tg?eq:null,tx=tm.length>0?tf?.items??[]:e,[tv,ty]=r.useState(null),tb=(0,r.useMemo)(()=>tx.map(e=>`${e.id}:${e.plannedExecutionId??""}`).join("\0"),[tx]);r.useEffect(()=>{if("wave"!==e0)return;let e=!1;return fetch("/api/waves").then(e=>e.ok?e.json():null).then(t=>{!e&&t&&ty(t)}).catch(()=>{}),()=>{e=!0}},[e0,tb]);let tw=(0,r.useMemo)(()=>(function(e){let t=new Map;if(!e?.waves)return t;for(let n of e.waves){let e=n.rootExecutionIds?.[0],a=e&&n.nodes.find(t=>t.executionId===e)||n.nodes[0],r=a?.name||a?.flowName||n.id;for(let e of n.nodes)t.set(e.executionId,{waveId:n.id,label:r})}return t})(tv),[tv]);r.useEffect(()=>{if(0===tm.length){eZ.current?.abort(),eZ.current=null,eK(null),eQ(null),eV(!1),eG(!1);return}let e=`${ey}\0${tl}\0${tm}`,t=new AbortController;eZ.current?.abort(),eZ.current=t,eK(null),eQ(null),eV(!0),eG(!1);let n=setTimeout(()=>{eL.O.listConversationPage({limit:50,search:tm,dimension:ey,..."all"!==tl?{origin:tl}:{},signal:t.signal}).then(n=>{t.signal.aborted||eK({key:e,...n})}).catch(n=>{t.signal.aborted||n?.name==="AbortError"||(eK({key:e,items:[],total:0,hasMore:!1}),eQ(e))}).finally(()=>{eZ.current!==t||t.signal.aborted||eV(!1)})},300);return()=>{clearTimeout(n),t.abort(),eZ.current===t&&(eZ.current=null)}},[tm,ey,tl]);let tj=r.useCallback(async()=>{let e=eZ.current;if(tf?.hasMore&&tf.nextCursor&&e&&!e.signal.aborted&&!eX){eG(!0),eQ(null);try{let t=await eL.O.listConversationPage({limit:50,cursor:tf.nextCursor,search:tm,dimension:ey,..."all"!==tl?{origin:tl}:{},signal:e.signal});if(e.signal.aborted)return;eK(e=>{if(!e||e.key!==tg)return e;let n=new Set(e.items.map(e=>e.id)),a=t.items.filter(e=>!n.has(e.id));return{key:tg,...t,items:[...e.items,...a]}})}catch(t){if(e.signal.aborted||t?.name==="AbortError")return;eQ(tg)}finally{eZ.current!==e||e.signal.aborted||eG(!1)}}},[tf,eX,tl,ey,tg,tm]),tA=r.useCallback(e=>O(`chat.origin.${e}`),[O]),tk=r.useCallback(e=>O(`chat.origin.description.${e}`),[O]),tS=r.useCallback(e=>"all"===e?O("chat.history.anyOrigin"):"subflow"===e?O("chat.history.originSubflow"):tA(e),[tA,O]),tI=r.useCallback(({flowId:e,personaId:t,personaArchived:n})=>n?{key:"persona:__archived__",label:O("chat.history.archivedPersona")}:t?{key:`persona:${t}`,label:W[t]??O("chat.target.persona")}:e?eC(e)?{key:"flow:__quickchat__",label:O("chat.quick.title")}:{key:`flow:${e}`,label:N[e]??O("chat.history.unknownAgent")}:{key:"flow:__none__",label:O("chat.history.noAgent")},[N,W,O]),tC=(0,r.useMemo)(()=>{let e=new Map;for(let t of tx){let n=tI(t);e.has(n.key)||e.set(n.key,n.label)}return Array.from(e.entries()).map(([e,t])=>({key:e,label:t})).sort((e,t)=>e.label.localeCompare(t.label))},[tx,tI]),t$=r.useCallback(e=>{let t=Date.now(),n="today"===ts?t-864e5:"7d"===ts?t-6048e5:"30d"===ts?t-2592e6:0;return e.filter(e=>("all"===e6||e.status===e6)&&("all"===tr||tI(e).key===tr)&&("all"===tl||eB(e).key===tl)&&(!n||!(e.updatedAt<n))).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt))},[e6,tr,tl,ts,tI]),tz=(0,r.useMemo)(()=>t$(tx),[t$,tx]),tT=(0,r.useMemo)(()=>(function(e,t){let n=new Map(e.map(e=>[e.id,e])),a=new Map;for(let e of n.values()){let t=e.parentConversationId;if(!t||t===e.id)continue;let r=e.rootConversationId?n.get(e.rootConversationId):void 0;n.has(t)||!r||r.parentConversationId&&r.parentConversationId!==r.id||(t=r.id);let o=a.get(t)??[];o.push(e.id),a.set(t,o)}let r=new Set,o=t.filter(e=>n.has(e));for(;o.length>0;){let e=o.pop();r.has(e)||(r.add(e),o.push(...a.get(e)??[]))}return r})([...e,...tx],e2),[e,tx,e2]),tM=(0,r.useMemo)(()=>tz.filter(e=>tT.has(e.id)),[tz,tT]),tE=(0,r.useMemo)(()=>tz.filter(e=>!tT.has(e.id)),[tz,tT]),tR=(0,r.useMemo)(()=>(0,eO.C)(tM),[tM]),tN=(0,r.useMemo)(()=>{if("none"===e0)return[{key:"all",label:"",items:tE}];if("wave"===e0){var e;let t;return(e=(0,eT.Az)(tE,e=>(function(e,t){if(!e)return{key:eM,label:"Ad-hoc"};let n=t.get(e);return n?{key:`wave:${n.waveId}`,label:n.label}:{key:eE,label:"Archived / no longer scheduled"}})(e.plannedExecutionId,tw)),t=new Set([eM,eE]),[...e.filter(e=>!t.has(e.key)),...e.filter(e=>t.has(e.key))]).map(e=>({...e,label:"wave:__adhoc__"===e.key?O("chat.group.adhoc"):"wave:__archived__"===e.key?O("chat.group.archived"):e.label}))}return(0,eT.Az)(tE,e=>{if("date"===e0){let t=(0,ez.K)(e.updatedAt),n={"recency:unknown":O("flows.group.noDate"),"recency:today":O("flows.group.today"),"recency:week":O("flows.group.week"),"recency:month":O("flows.group.month"),"recency:older":O("flows.group.older")};return{...t,label:n[t.key]??t.label}}if("origin"===e0){let t=eB(e);return{key:`origin:${t.key}`,label:tA(t.key)}}return tI(e)})},[tE,e0,tI,tw,tA,O]),tW=(0,r.useMemo)(()=>"chain"===e0?(0,eO.C)(tE):{roots:[],childrenByParent:new Map,detachedIds:new Set},[e0,tE]),[tP,tO]=r.useState({}),tD=r.useCallback(e=>{tO(t=>({...t,[e]:!1===t[e]}))},[]),tF=(0,r.useMemo)(()=>{let e=new Map;if("wave"!==e0)return e;for(let t of tN)t.key!==eM&&t.key!==eE&&e.set(t.key,(0,eO.C)(t.items));return e},[e0,tN]),t_=(0,r.useMemo)(()=>{let e=new Set(tR.childrenByParent.keys());return"chain"===e0?tW.childrenByParent.forEach((t,n)=>e.add(n)):"wave"===e0&&tF.forEach(t=>{t.childrenByParent.forEach((t,n)=>e.add(n))}),[...e]},[tW,e0,tF,tR]),tq=r.useCallback(e=>{tO(t=>{let n={...t};return t_.forEach(t=>{n[t]=e}),n}),"wave"===e0&&tp(t=>{let n={...t};return tN.forEach(t=>{n[t.key]=!e}),n})},[t_,e0,tN,tp]),tB=t_.length>0||"wave"===e0&&tN.length>0,tH=r.useRef(null),tL=r.useRef(null),tU=r.useRef(null),tK=r.useRef(0),[tJ,tV]=r.useState(0);r.useEffect(()=>{if(!m)return;let{id:e,requestKey:t}=m;if(tL.current===t||e!==d||(tU.current!==t&&(tU.current=t,tK.current=0),!tz.some(t=>t.id===e)))return;let n="none"!==e0&&"chain"!==e0?tN.find(t=>t.items.some(t=>t.id===e)):void 0;if(n&&th[n.key])return void tp(e=>e[n.key]?{...e,[n.key]:!1}:e);let a=tT.has(e)?tR:"chain"===e0?tW:n?tF.get(n.key):void 0;if(a){let t=new Map;for(let[e,n]of a.childrenByParent)for(let a of n)t.set(a.id,e);let n=[],r=new Set([e]),o=t.get(e);for(;o&&!r.has(o);)r.add(o),!1===tP[o]&&n.push(o),o=t.get(o);if(n.length>0)return void tO(e=>{let t={...e};for(let e of n)t[e]=!0;return t})}let r=window.requestAnimationFrame(()=>{let n=tH.current?Array.from(tH.current.querySelectorAll("[data-conversation-id]")).find(t=>t.getAttribute("data-conversation-id")===e):void 0;if(n){tL.current=t,n.scrollIntoView({block:"nearest",behavior:"auto"});return}if(tK.current+=1,tK.current>=10){tL.current=t;return}tV(e=>e+1)});return()=>window.cancelAnimationFrame(r)},[m,d,tz,tN,e0,th,tp,tW,tT,tR,tF,tP,tJ]);let tX=+("all"!==e6)+ +("all"!==tr)+ +("all"!==tl)+ +("all"!==ts),tG=tX+ +("none"!==e0),tY=(e,t)=>{let n,r,o=t?.detached===!0,s=e2.includes(e.id),i=O(s?"chat.history.unpin":"chat.history.pin"),l=!!$&&("running"===e.status||"awaiting_tool_approval"===e.status),u=tI(e),m=u.key.startsWith("persona:"),v="flow:__quickchat__"===u.key,b=e.id===d,w=eB(e),j=tA(w.key),A=tk(w.key),k=tn[w.key],S=function(e,t){switch(e){case"subflow":return t.palette.warning.main;case"schedule":case"trigger":return eH.L.light.signal;case"mcp":return t.palette.info.main;case"meeting":return t.palette.secondary.main;default:return t.palette.primary.main}}(w.key,q),I=function(e,t){switch(e){case"running":return t.palette.primary.main;case"awaiting_tool_approval":return t.palette.warning.main;case"paused_debug":return t.palette.secondary.main;case"completed":return t.palette.success.main;case"capped":return t.palette.info.main;case"error":return t.palette.error.main;default:return t.palette.text.disabled}}(e.status,q),C=b?"dark"===q.palette.mode?.38:.3:"dark"===q.palette.mode?.3:.23;return(0,a.jsx)(V.Ay,{"data-conversation-id":e.id,"data-conversation-origin":w.key,disablePadding:!0,secondaryAction:(0,a.jsxs)(c.default,{className:"conversation-card-actions",sx:H?{display:"flex",zIndex:2,gap:.25,opacity:+!!b,transition:"opacity 160ms ease",bgcolor:(0,eN.X4)(q.palette.background.paper,.72),borderRadius:2,backdropFilter:"blur(12px)","& .MuiIconButton-root":{width:30,height:30}}:{display:"flex"},children:[(0,a.jsx)(g.A,{title:i,children:(0,a.jsx)(f.A,{size:"small","aria-label":i,"aria-pressed":s,onClick:t=>{t.stopPropagation(),e5(t=>t.includes(e.id)?t.filter(t=>t!==e.id):[...t,e.id])},children:s?(0,a.jsx)(eS.A,{color:"primary",fontSize:"small"}):(0,a.jsx)(eI.A,{fontSize:"small"})})}),l&&(0,a.jsx)(g.A,{title:O("chat.history.stop"),children:(0,a.jsx)(f.A,{edge:"end",size:"small","aria-label":O("chat.history.stop"),onClick:t=>{t.stopPropagation(),$(e.id)},children:(0,a.jsx)(P.A,{color:"error",fontSize:"small"})})}),(0,a.jsx)(e$.A,{target:{kind:"conversation",id:e.id}}),(0,a.jsx)(g.A,{title:O("chat.history.delete"),children:(0,a.jsx)(f.A,{edge:"end",size:"small","aria-label":O("chat.history.delete"),disabled:eg===e.id,onClick:t=>{t.stopPropagation(),t5(e)},children:eg===e.id?(0,a.jsx)(h.default,{size:16}):(0,a.jsx)(er.A,{fontSize:"small"})})})]}),sx:H?{contentVisibility:"auto",contain:"layout paint style",containIntrinsicSize:"0 104px",position:"relative",mb:.9,border:"1px solid",borderColor:b?(0,eN.X4)(S,.68):(0,eN.X4)(S,.32),borderRadius:2.5,overflow:"hidden",opacity:1,bgcolor:(0,eN.X4)(q.palette.background.paper,"dark"===q.palette.mode?.72:.82),backgroundImage:(n=(0,eN.X4)(S,C),r=(0,eN.X4)(I,C),`linear-gradient(90deg, ${n} 0%, ${n} 90%, ${r} 90%, ${r} 100%)`),boxShadow:b?`0 10px 30px ${(0,eN.X4)(S,.24)}`:`0 5px 20px ${(0,eN.X4)(S,"dark"===q.palette.mode?.12:.08)}`,transition:"transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease","&::before":{content:'""',position:"absolute",inset:"10px auto 10px 0",width:b?4:3,borderRadius:"0 4px 4px 0",bgcolor:S},"&::after":{content:'""',position:"absolute",zIndex:0,top:0,bottom:0,left:"90%",width:1,bgcolor:(0,eN.X4)(I,.5),pointerEvents:"none"},"&:hover":{transform:"translateY(-1px)",borderColor:(0,eN.X4)(S,.58),boxShadow:`0 10px 28px ${(0,eN.X4)(S,"dark"===q.palette.mode?.2:.14)}`,"& .conversation-card-actions":{opacity:1}},"&:focus-within .conversation-card-actions":{opacity:1},"@media (hover: none)":{"& .conversation-card-actions":{opacity:1}},"& > .MuiListItemSecondaryAction-root":{zIndex:2}}:{contentVisibility:"auto",contain:"layout paint style",containIntrinsicSize:"0 88px",opacity:b?1:.7,"& > .MuiListItemSecondaryAction-root":{zIndex:2}},children:(0,a.jsx)(X.A,{selected:b,onClick:()=>x(e.id),"aria-label":O("chat.history.openAria",{title:e.title,origin:j,status:(e=>{switch(e){case"running":return O("chat.status.processing");case"awaiting_tool_approval":return O("chat.status.waitingTooltip");case"paused_debug":return O("chat.status.pausedTooltip");case"completed":return O("chat.status.completed");case"capped":return O("chat.status.capped");case"error":return O("chat.status.error");default:return""}})(e.status)||O("chat.history.unknown")}),sx:{position:"relative",zIndex:1,px:H?1.5:2,pr:l?17:13,py:H?1.25:1,alignItems:"flex-start",borderRadius:"inherit","&.Mui-selected":{bgcolor:"transparent"},"&.Mui-selected:hover":{bgcolor:(0,eN.X4)(q.palette.primary.main,.04)}},children:(0,a.jsx)(G.A,{sx:{my:0,minWidth:0},primary:(0,a.jsx)(c.default,{sx:{display:"flex",alignItems:"center"},children:(0,a.jsx)(g.A,{title:e.title,enterDelay:500,children:(0,a.jsx)(p.A,{component:"span",sx:{fontWeight:b?760:H?650:"normal",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden",wordBreak:"break-word",fontSize:H?"0.9rem":void 0,lineHeight:H?1.35:void 0},children:e.title})})}),secondary:(0,a.jsxs)(c.default,{component:"span",sx:{display:"flex",alignItems:"center",gap:.75,mt:.8,flexWrap:"wrap"},children:["origin"!==e0&&(0,a.jsx)(g.A,{title:`${A}${w.inferred?` (${O("chat.history.inferred")})`:""}`,children:(0,a.jsx)(y.A,{icon:(0,a.jsx)(k,{}),label:j,size:"small",variant:"outlined",sx:{height:H?22:20,color:H?S:void 0,borderColor:H?(0,eN.X4)(S,.72):void 0,bgcolor:H?(0,eN.X4)(S,.13):void 0,"& .MuiChip-icon":{fontSize:14,color:H?S:void 0},"& .MuiChip-label":{px:.75,fontSize:"0.68rem",fontWeight:H?700:500}}})}),e.sessionKey&&(0,a.jsx)(g.A,{title:O("chat.history.session",{key:e.sessionKey}),children:(0,a.jsx)(y.A,{label:O("chat.history.session",{key:e.sessionKey}),size:"small",variant:"outlined",sx:{minWidth:0,maxWidth:"100%",height:H?22:20,"& .MuiChip-label":{overflow:"hidden",textOverflow:"ellipsis",px:.75,fontSize:"0.68rem"}}})}),o&&(0,a.jsx)(g.A,{title:O("chat.chain.detachedHelp"),children:(0,a.jsx)(y.A,{icon:(0,a.jsx)(ew.A,{}),label:O("chat.chain.detached"),size:"small",variant:"outlined",sx:{height:H?22:20,color:q.palette.text.secondary,borderColor:(0,eN.X4)(q.palette.text.secondary,.45),borderStyle:"dashed","& .MuiChip-icon":{fontSize:14,color:q.palette.text.secondary},"& .MuiChip-label":{px:.75,fontSize:"0.68rem",fontWeight:H?700:500}}})}),"flow"!==e0&&(0,a.jsx)(g.A,{title:v?O("chat.history.quickNoAgent"):m?O("chat.history.personaNamed",{persona:u.label}):O("chat.history.agentNamed",{agent:u.label}),children:(0,a.jsx)(y.A,{icon:v?(0,a.jsx)(E.A,{}):void 0,label:u.label,size:"small",variant:"outlined",color:v?"secondary":"default",sx:{maxWidth:"100%",height:H?22:20,"& .MuiChip-icon":{fontSize:14},"& .MuiChip-label":{px:.75,fontSize:"0.68rem"}}})}),(0,a.jsxs)(c.default,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.35,ml:"auto"},children:[H&&(0,a.jsx)(eb.A,{"aria-hidden":"true",sx:{fontSize:13,color:"text.disabled"}}),(0,a.jsx)(p.A,{component:"span",variant:"caption",color:"text.secondary",sx:{whiteSpace:"nowrap"},children:_(e.updatedAt,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})})]})]}),slotProps:{secondary:{component:"div"}}})})},e.id)},tQ=tm.length>0,tZ=eY===tg,t0=tQ&&!tf&&!tZ,t1=tQ?tf?.total??0:t,t2=tz.length,t5=async a=>{if(eg)return;ef(a.id);let r=new Set(function(e,t){let n=new Map;for(let t of e){let e=t.parentConversationId;if(!e||e===t.id)continue;let a=n.get(e)??[];a.push(t.id),n.set(e,a)}let a=new Set,r=[...n.get(t)??[]];for(;r.length>0;){let e=r.pop();e===t||a.has(e)||(a.add(e),r.push(...n.get(e)??[]))}return[...a]}(Array.from(new Map([...e,...tx].map(e=>[e.id,e])).values()),a.id)),o=!n&&e.length>=t;try{o||(await eL.O.listAllConversationPages({descendantsOf:a.id})).forEach(e=>r.add(e.id));let e=[...r];if(0===e.length)return void b(a.id);ev({open:!0,parent:a,descendantIds:e,lookupFailed:!1})}catch{ev({open:!0,parent:a,descendantIds:[...r],lookupFailed:!0})}finally{ef(null)}},t4=async()=>{em(!0);try{let t=i?await i():e;eh({open:!0,ids:t.map(e=>e.id),label:D("chat.history.deleteAllQuestion",t.length)})}finally{em(!1)}},t6=async()=>{em(!0);try{let t=tQ?await eL.O.listAllConversationPages({search:tm,dimension:ey,..."all"!==tl?{origin:tl}:{}}):i?await i():e,n=t$(t);eh({open:!0,ids:n.map(e=>e.id),label:D("chat.history.deleteVisibleQuestion",n.length)})}finally{em(!1)}};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(c.default,{sx:{p:H?2:1.5,display:"flex",justifyContent:"space-between",alignItems:"center",gap:H?1:.7,background:H?`linear-gradient(135deg, ${(0,eN.X4)(q.palette.primary.main,.14)}, ${(0,eN.X4)(q.palette.secondary.main,.05)} 58%, transparent)`:"linear-gradient(120deg, rgba(139,124,255,.09), transparent 62%)"},children:[M&&(0,a.jsx)(g.A,{title:R?O("chat.history.expand"):O("chat.history.collapse"),children:(0,a.jsx)(f.A,{size:"small",onClick:M,"aria-label":R?O("chat.history.expand"):O("chat.history.collapse"),children:(0,a.jsx)(F.A,{})})}),(0,a.jsxs)(c.default,{sx:{flex:1,minWidth:0},children:[(0,a.jsx)(p.A,{variant:"caption",sx:{display:"block",color:"primary.light",fontWeight:760,letterSpacing:".1em"},children:O("chat.history.agentRuns")}),(0,a.jsx)(p.A,{variant:"h6",noWrap:!0,children:O("chat.history.title")})]}),t>0&&(0,a.jsx)(g.A,{title:O("chat.history.deleteAll"),children:(0,a.jsx)("span",{children:(0,a.jsx)(f.A,{size:"small",color:"error","aria-label":O("chat.history.deleteAll"),disabled:ep,onClick:()=>void t4(),children:(0,a.jsx)(ec.A,{fontSize:"small"})})})}),tz.length>0&&(tQ||tX>0)&&(0,a.jsx)(g.A,{title:O("chat.history.deleteVisible"),children:(0,a.jsx)("span",{children:(0,a.jsx)(f.A,{size:"small",color:"error","aria-label":O("chat.history.deleteVisible"),disabled:ep,onClick:()=>void t6(),children:(0,a.jsx)(eu.A,{fontSize:"small"})})})}),T&&(0,a.jsx)(g.A,{title:O("chat.history.quickHelp"),children:(0,a.jsx)(u.A,{variant:"outlined",color:"primary",startIcon:(0,a.jsx)(E.A,{}),onClick:T,size:"small",children:O("chat.history.quick")})}),(0,a.jsx)(u.A,{variant:"contained",color:"primary","data-tour":"chat-new-conversation",startIcon:(0,a.jsx)(eo.A,{}),onClick:z,size:"small",children:O("chat.history.new")})]}),(0,a.jsx)(Y.A,{}),(0,a.jsx)(e3,{}),(0,a.jsxs)(c.default,{sx:{px:1.5,pt:1.5,pb:1.2,display:"flex",flexDirection:"column",gap:1,bgcolor:H?(0,eN.X4)(q.palette.background.paper,.22):"rgba(127,127,160,.035)"},children:[(0,a.jsx)(eU.A,{mode:"container",children:(0,a.jsxs)(c.default,{sx:{display:"flex",gap:1},children:[(0,a.jsx)(v.A,{size:"small",sx:{flex:1},inputRef:K,placeholder:"content"===ey?O("chat.history.searchContent"):O("chat.history.searchTitle"),value:L,onChange:e=>U(e.target.value),slotProps:{input:{startAdornment:(0,a.jsx)(Q.A,{position:"start",children:(0,a.jsx)(es.A,{fontSize:"small"})}),endAdornment:L||eJ?(0,a.jsxs)(Q.A,{position:"end",children:[eJ&&(0,a.jsx)(h.default,{size:16,"aria-label":O("chat.history.searching")}),L&&(0,a.jsx)(f.A,{size:"small","aria-label":O("chat.history.clearSearch"),onClick:()=>U(""),children:(0,a.jsx)(ei.A,{fontSize:"small"})})]}):void 0}}}),(0,a.jsx)(Z.A,{size:"small",sx:{minWidth:100},children:(0,a.jsxs)(ee.A,{value:ey,onChange:e=>e_(e.target.value),inputProps:{"aria-label":O("chat.history.searchDimension")},children:[(0,a.jsx)(et.A,{value:"title",children:O("chat.history.searchTitleOption")}),(0,a.jsx)(et.A,{value:"content",children:O("chat.history.searchContentOption")})]})})]})}),(0,a.jsxs)(u.A,{size:"small",color:"inherit",startIcon:(0,a.jsx)(ej.A,{}),endIcon:tc?(0,a.jsx)(ed.A,{}):(0,a.jsx)(el.A,{}),"aria-expanded":tc,"aria-controls":"chat-sidebar-filter-controls",onClick:()=>tu(e=>!e),sx:{alignSelf:"stretch",justifyContent:"flex-start",color:"text.secondary"},children:[O("chat.history.filters"),tG>0&&(0,a.jsx)(y.A,{label:tG,size:"small",color:"primary",sx:{ml:1,height:20,"& .MuiChip-label":{px:.75}}})]}),(0,a.jsx)(en.A,{in:tc,timeout:"auto",children:(0,a.jsxs)(c.default,{id:"chat-sidebar-filter-controls",sx:{display:"flex",flexWrap:"wrap",gap:1},children:[(0,a.jsx)(Z.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,a.jsx)(ee.A,{value:e0,onChange:e=>e1(e.target.value),inputProps:{"aria-label":O("chat.history.groupAria")},children:te.map(e=>(0,a.jsx)(et.A,{value:e,children:{none:O("chat.group.none"),date:O("chat.group.date"),flow:O("chat.group.agent"),origin:O("chat.group.origin"),wave:O("chat.group.wave"),chain:O("chat.group.chain")}[e]},e))})}),(0,a.jsx)(Z.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,a.jsx)(ee.A,{value:e6,onChange:e=>ta(e.target.value),inputProps:{"aria-label":O("chat.history.filterStatus")},children:e9.map(e=>(0,a.jsx)(et.A,{value:e,children:{all:O("chat.status.any"),running:O("chat.status.processing"),awaiting_tool_approval:O("chat.status.awaiting"),paused_debug:O("chat.status.paused"),completed:O("chat.status.completed"),capped:O("chat.status.capped"),error:O("chat.status.error")}[e]},e))})}),(0,a.jsx)(Z.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,a.jsxs)(ee.A,{value:tC.some(e=>e.key===tr)?tr:"all",onChange:e=>to(e.target.value),inputProps:{"aria-label":O("chat.history.filterAgent")},children:[(0,a.jsx)(et.A,{value:"all",children:O("chat.history.anyAgent")}),tC.map(e=>(0,a.jsx)(et.A,{value:e.key,children:e.label},e.key))]})}),(0,a.jsx)(Z.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,a.jsx)(ee.A,{value:tl,onChange:e=>td(e.target.value),inputProps:{"aria-label":O("chat.history.filterOrigin")},children:tt.map(e=>(0,a.jsx)(et.A,{value:e,children:tS(e)},e))})}),(0,a.jsx)(Z.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,a.jsx)(ee.A,{value:ts,onChange:e=>ti(e.target.value),inputProps:{"aria-label":O("chat.history.filterDate")},children:e8.map(e=>(0,a.jsx)(et.A,{value:e,children:{all:O("chat.date.any"),today:O("chat.date.day"),"7d":O("chat.date.week"),"30d":O("chat.date.month")}[e]},e))})})]})}),(tQ||tX>0)&&(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:t0||eJ?O("chat.history.searching"):tZ?O("chat.history.searchFailed"):O("chat.history.matchCount",{shown:t2,total:t1})}),(0,a.jsx)(u.A,{size:"small",onClick:()=>{U(""),ta("all"),to("all"),td("all"),ti("all")},children:O("chat.history.clearFilters")})]})]}),(0,a.jsx)(Y.A,{}),tB&&(0,a.jsxs)(c.default,{sx:{px:1.5,py:.75,display:"flex",alignItems:"center",justifyContent:"space-between",gap:1,bgcolor:(0,eN.X4)(q.palette.primary.main,H?.055:.025)},children:[(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",sx:{fontWeight:700},children:O("chat.chain.hierarchy")}),(0,a.jsxs)(c.default,{sx:{display:"flex",gap:.5},children:[(0,a.jsx)(u.A,{size:"small",startIcon:(0,a.jsx)(eA.A,{}),onClick:()=>tq(!0),children:O("chat.chain.expandAll")}),(0,a.jsx)(u.A,{size:"small",startIcon:(0,a.jsx)(ek.A,{}),onClick:()=>tq(!1),children:O("chat.chain.collapseAll")})]})]}),(0,a.jsxs)(ea.A,{ref:tH,"aria-label":O("chat.history.title"),"aria-busy":t0||eJ||eX,sx:{overflow:"auto",flex:1,px:H?1.25:1,py:H?1.5:1,scrollbarGutter:"stable"},children:[tM.length>0&&!t0&&!eJ&&(0,a.jsxs)(c.default,{role:"group","aria-label":O("chat.history.pinned"),sx:{mb:1},children:[(0,a.jsxs)(p.A,{variant:"overline",sx:{display:"flex",alignItems:"center",gap:.75,px:1,mb:.5},children:[(0,a.jsx)(eS.A,{sx:{fontSize:16}}),O("chat.history.pinned")]}),(0,a.jsx)(eP,{nodes:tR.roots,childrenByParent:tR.childrenByParent,renderItem:e=>tY(e,{detached:tR.detachedIds.has(e.id)}),expanded:tP,onToggle:tD}),tE.length>0&&(0,a.jsx)(Y.A,{sx:{my:1}})]}),t0||eJ?(0,a.jsxs)(V.Ay,{sx:{justifyContent:"center",gap:1,py:3},children:[(0,a.jsx)(h.default,{size:18}),(0,a.jsx)(p.A,{variant:"body2",color:"text.secondary",children:O("chat.history.searching")})]}):tZ&&0===tx.length?(0,a.jsx)(V.Ay,{children:(0,a.jsx)(G.A,{primary:O("chat.history.searchFailed"),secondary:O("chat.history.searchFailedHelp"),slotProps:{primary:{align:"center"},secondary:{align:"center"}}})}):tQ||0!==t1?0===t2?(0,a.jsx)(V.Ay,{children:(0,a.jsx)(G.A,{primary:O("chat.history.noMatch"),secondary:O("chat.history.noMatchHelp"),slotProps:{primary:{align:"center"},secondary:{align:"center"}}})}):"chain"===e0?(0,a.jsx)(eP,{nodes:tW.roots,childrenByParent:tW.childrenByParent,renderItem:e=>tY(e,{detached:tW.detachedIds.has(e.id)}),expanded:tP,onToggle:tD}):"none"===e0?tE.map(e=>tY(e)):tN.map(e=>{let t=!!th[e.key],n="wave"===e0?tF.get(e.key):void 0;return(0,a.jsxs)(c.default,{children:[(0,a.jsxs)(X.A,{onClick:()=>{var t;return t=e.key,void tp(e=>({...e,[t]:!e[t]}))},sx:{py:.5,bgcolor:"action.hover"},children:[t?(0,a.jsx)(el.A,{fontSize:"small"}):(0,a.jsx)(ed.A,{fontSize:"small"}),(0,a.jsx)(p.A,{variant:"overline",sx:{ml:.5,flex:1,lineHeight:1.6},noWrap:!0,children:e.label}),(0,a.jsx)(y.A,{label:e.items.length,size:"small",sx:{height:18,"& .MuiChip-label":{px:.75,fontSize:"0.7rem"}}})]}),(0,a.jsx)(en.A,{in:!t,timeout:"auto",unmountOnExit:!0,children:n?(0,a.jsx)(eP,{nodes:n.roots,childrenByParent:n.childrenByParent,renderItem:e=>tY(e,{detached:n.detachedIds.has(e.id)}),expanded:tP,onToggle:tD}):e.items.map(e=>tY(e))})]},e.key)}):(0,a.jsx)(V.Ay,{children:(0,a.jsx)(G.A,{primary:O("chat.history.empty"),secondary:O("chat.history.emptyHelp"),slotProps:{primary:{align:"center"},secondary:{align:"center"}}})}),tQ&&tf?.hasMore&&(0,a.jsx)(c.default,{sx:{display:"flex",justifyContent:"center",py:1.5},children:(0,a.jsx)(u.A,{size:"small",variant:"outlined",disabled:eX,startIcon:eX?(0,a.jsx)(h.default,{size:14}):void 0,onClick:()=>void tj(),children:O("chat.history.loadMore")})}),!tQ&&n&&s&&(0,a.jsx)(c.default,{sx:{display:"flex",justifyContent:"center",py:1.5},children:(0,a.jsx)(u.A,{size:"small",variant:"outlined",disabled:o,startIcon:o?(0,a.jsx)(h.default,{size:14}):void 0,onClick:()=>void s(),children:O("chat.history.loadMore")})})]}),(0,a.jsxs)(j.A,{open:ex.open,onClose:()=>ev(e=>({...e,open:!1})),"aria-labelledby":"delete-family-dialog-title",children:[(0,a.jsx)(A.A,{id:"delete-family-dialog-title",children:O("chat.history.deleteFamilyTitle")}),(0,a.jsx)(k.A,{children:(0,a.jsx)(S.A,{children:ex.lookupFailed?O("chat.history.deleteFamilyLookupFailed"):O("chat.history.deleteFamilyQuestion",{title:ex.parent?.title??"",count:ex.descendantIds.length})})}),(0,a.jsxs)(I.A,{children:[(0,a.jsx)(u.A,{onClick:()=>ev(e=>({...e,open:!1})),children:O("common.cancel")}),!ex.lookupFailed&&ex.parent&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(u.A,{color:"error",onClick:()=>{let e=ex.parent.id;ev(e=>({...e,open:!1})),b(e)},children:O("chat.history.deleteParentOnly")}),(0,a.jsx)(u.A,{variant:"contained",color:"error",onClick:()=>{let e=[ex.parent.id,...ex.descendantIds];ev(e=>({...e,open:!1})),w(e)},children:O("chat.history.deleteFamilyAction",{count:ex.descendantIds.length})})]})]})]}),(0,a.jsxs)(j.A,{open:J.open,onClose:()=>eh(e=>({...e,open:!1})),"aria-labelledby":"bulk-delete-dialog-title",children:[(0,a.jsx)(A.A,{id:"bulk-delete-dialog-title",children:O("chat.history.confirmDelete")}),(0,a.jsx)(k.A,{children:(0,a.jsxs)(S.A,{children:[J.label," ",O("chat.history.cannotUndo")]})}),(0,a.jsxs)(I.A,{children:[(0,a.jsx)(u.A,{onClick:()=>eh(e=>({...e,open:!1})),children:O("common.cancel")}),(0,a.jsx)(u.A,{color:"error",onClick:async()=>{eh(e=>({...e,open:!1})),await w(J.ids)},autoFocus:!0,children:O("chat.history.deleteAction")})]})]})]})});var tr=n(1339),to=n(92230),ts=n(84282),ti=n(17683),tl=n(48825),td=n(92308),tc=n(97738),tu=n(69421),th=n(99925),tp=n(56586),tm=n(65947);let tg=function({open:e,mode:t,git:n,folder:o,onClose:s,onSubmit:i}){let{t:l}=(0,eW.s9)(),[d,c]=(0,r.useState)(""),[p,g]=(0,r.useState)(!1),[f,x]=(0,r.useState)(null);(0,r.useEffect)(()=>{e&&(c(""),x(null),g(!1))},[e,t]);let y=(0,r.useMemo)(()=>(function(e){if(!e)return[];let t=new Set(e.branches);for(let n of e.remoteBranches)t.add(n.slice(n.indexOf("/")+1));return[...t].sort((e,t)=>e.localeCompare(t))})(n),[n]),b=(0,r.useMemo)(()=>{if("create"===t)return y;let e=new Set(n?.worktrees.map(e=>e.branch).filter(Boolean));return n?.branch&&e.add(n.branch),y.filter(t=>!e.has(t))},[y,n,t]),w=d.trim(),C=y.includes(w)||w===n?.branch,$="create"===t||"worktree"===t&&!C,z=!!w&&!p&&("switch"!==t||w!==n?.branch)&&!("create"===t&&C),T=n?.worktrees.find(e=>e.main)?.path??o,M=async e=>{if(e.preventDefault(),z){g(!0),x(null);try{await i(w,$),s()}catch(e){x(e instanceof Error?e.message:String(e))}finally{g(!1)}}},E="switch"===t?l("projects.dialog.switchTitle"):"create"===t?l("projects.dialog.createTitle"):l("projects.dialog.worktreeTitle"),R="switch"===t?l("projects.dialog.switchHelp",{path:o}):"create"===t?l("projects.dialog.createHelp"):l("projects.dialog.worktreeHelp",{folder:`${e1(T)}.worktrees`});return(0,a.jsx)(j.A,{open:e,onClose:p?void 0:s,fullWidth:!0,maxWidth:"xs",children:(0,a.jsxs)("form",{onSubmit:M,children:[(0,a.jsx)(A.A,{children:E}),(0,a.jsxs)(k.A,{children:[(0,a.jsx)(S.A,{variant:"body2",sx:{mb:2,wordBreak:"break-word"},children:R}),"create"===t?(0,a.jsx)(v.A,{autoFocus:!0,fullWidth:!0,size:"small",label:l("projects.dialog.branch"),value:d,disabled:p,error:!!w&&C,onChange:e=>c(e.target.value),slotProps:{htmlInput:{spellCheck:!1,autoCapitalize:"off"}}}):(0,a.jsx)(tm.A,{freeSolo:!0,options:b,inputValue:d,onInputChange:(e,t)=>c(t),disabled:p,renderInput:e=>(0,a.jsx)(v.A,{...e,autoFocus:!0,size:"small",label:l("projects.dialog.branch")})}),"worktree"===t&&w&&$&&(0,a.jsx)(m.A,{severity:"info",sx:{mt:1.5},children:l("projects.dialog.newBranchNote",{branch:w})}),f&&(0,a.jsx)(m.A,{severity:"error",sx:{mt:1.5,wordBreak:"break-word"},children:f})]}),(0,a.jsxs)(I.A,{children:[(0,a.jsx)(u.A,{onClick:s,disabled:p,children:l("common.cancel")}),(0,a.jsxs)(u.A,{type:"submit",variant:"contained",disabled:!z,children:[p&&(0,a.jsx)(h.default,{size:16,color:"inherit",sx:{mr:1}}),"switch"===t?l("projects.dialog.switchAction"):l("projects.dialog.createAction")]})]})]})})};function tf(e,t){if(!e||!t)return!1;let n=e=>e.replace(/\\/g,"/").replace(/\/+$/,"").toLowerCase();return n(e)===n(t)}let tx=function({conversationId:e,large:t=!1}){let{t:n}=(0,eW.s9)(),{state:o,act:s}=e2(e),[i,l]=(0,r.useState)(null),[d,h]=(0,r.useState)(null),[x,v]=(0,r.useState)(!1),[b,w]=(0,r.useState)(null),[C,$]=(0,r.useState)(!1),[z,T]=(0,r.useState)(null),M=o?.chat??null,E=M?.git??null,R=!!(M&&!tf(M.path,M.project)),N=async(e,t,n=!0)=>{T(null);try{await s(e,t),n&&l(null)}catch(e){T(e instanceof Error?e.message:String(e))}};if(!o)return null;if(!M)return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(g.A,{title:n("projects.chip.noneHelp"),children:(0,a.jsx)(y.A,{icon:(0,a.jsx)(eY.A,{}),label:n("projects.chip.none"),size:t?"medium":"small",variant:"outlined",onClick:e=>{T(null),o.projects.length>0?l(e.currentTarget):v(!0)},"aria-haspopup":o.projects.length>0?"menu":"dialog","data-chat-project-chip":!0})}),(0,a.jsxs)(ts.A,{anchorEl:i,open:!!i,onClose:()=>l(null),anchorOrigin:{vertical:"top",horizontal:"left"},transformOrigin:{vertical:"bottom",horizontal:"left"},slotProps:{paper:{sx:{width:320,maxWidth:"calc(100vw - 24px)"}}},children:[z&&(0,a.jsx)(m.A,{severity:"error",sx:{mx:2,my:1,wordBreak:"break-word"},children:z}),(0,a.jsx)(ti.A,{sx:{lineHeight:"32px"},children:n("projects.menu.project")}),o.projects.map(t=>(0,a.jsxs)(et.A,{dense:!0,onClick:()=>void N(e?"bindChat":"activate",{project:t.path}),children:[(0,a.jsx)(eK.A,{children:(0,a.jsx)(eY.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:t.name,secondary:t.path,slotProps:{secondary:{noWrap:!0}}})]},t.path)),(0,a.jsx)(Y.A,{}),(0,a.jsxs)(et.A,{dense:!0,onClick:()=>{l(null),v(!0)},children:[(0,a.jsx)(eK.A,{children:(0,a.jsx)(eX.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:n("projects.add")})]})]}),(0,a.jsx)(e5.A,{open:x,title:n("projects.chooseFolder"),onClose:()=>v(!1),onSelect:t=>void(async()=>{T(null);try{let n=await s("add",{path:t});e&&n.activeProject&&await s("bindChat",{project:n.activeProject})}catch(e){T(e instanceof Error?e.message:String(e))}})()}),(0,a.jsx)(tl.A,{open:!!z&&!i,autoHideDuration:8e3,onClose:(e,t)=>{"clickaway"!==t&&T(null)},anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,a.jsx)(m.A,{severity:"error",onClose:()=>T(null),sx:{wordBreak:"break-word"},children:z})})]});let W=E?E.branch??E.head??"":null,P=(0,a.jsxs)(c.default,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.6,minWidth:0},children:[(0,a.jsx)(c.default,{component:"span",sx:{fontWeight:700,overflow:"hidden",textOverflow:"ellipsis"},children:e1(M.path)}),null!==W&&(0,a.jsxs)(c.default,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.25,color:"text.secondary",minWidth:0},children:[(0,a.jsx)(eQ.A,{sx:{fontSize:"0.95rem"},"aria-hidden":"true"}),(0,a.jsx)(c.default,{component:"span",sx:{overflow:"hidden",textOverflow:"ellipsis",maxWidth:160},children:W})]}),E&&E.changes>0&&(0,a.jsxs)(c.default,{component:"span",sx:{color:"warning.main",fontWeight:700},"aria-label":n("projects.changes",{count:E.changes}),children:["•",E.changes]})]}),O=E?.worktrees.find(e=>tf(e.path,b)),D=e=>e.main||e.managed||tf(e.path,M.path),F=E?.worktrees.filter(D)??[],_=E?.worktrees.filter(e=>!D(e))??[],q=t=>(0,a.jsxs)(et.A,{dense:!0,disabled:!e,selected:tf(t.path,M.path),onClick:()=>void N("bindChat",{path:t.path}),children:[(0,a.jsx)(eK.A,{children:t.main?(0,a.jsx)(eY.A,{fontSize:"small"}):(0,a.jsx)(td.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:t.main?n("projects.menu.mainCheckout"):e1(t.path),secondary:t.branch??t.head,slotProps:{primary:{noWrap:!0},secondary:{noWrap:!0}}}),tf(t.path,M.path)&&(0,a.jsx)(tc.A,{fontSize:"small",color:"primary"}),t.managed&&(0,a.jsx)(g.A,{title:n("projects.menu.removeWorktree",{name:e1(t.path)}),children:(0,a.jsx)(f.A,{size:"small",edge:"end","aria-label":n("projects.menu.removeWorktree",{name:e1(t.path)}),onClick:e=>{e.stopPropagation(),w(t.path)},children:(0,a.jsx)(tu.A,{fontSize:"small"})})})]},t.path);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(g.A,{title:n("projects.chip.tooltip",{path:M.path}),children:(0,a.jsx)(y.A,{icon:R?(0,a.jsx)(td.A,{}):(0,a.jsx)(eY.A,{}),label:P,size:t?"medium":"small",variant:"outlined",color:R?"secondary":"default",onClick:e=>{T(null),l(e.currentTarget)},"aria-haspopup":"menu","aria-expanded":i?"true":void 0,"data-chat-project-chip":!0,sx:{maxWidth:"100%"}})}),(0,a.jsxs)(ts.A,{anchorEl:i,open:!!i,onClose:()=>l(null),anchorOrigin:{vertical:"top",horizontal:"left"},transformOrigin:{vertical:"bottom",horizontal:"left"},slotProps:{paper:{sx:{width:360,maxWidth:"calc(100vw - 24px)",maxHeight:"70vh"}}},children:[(0,a.jsxs)(c.default,{sx:{px:2,pt:1,pb:1},children:[(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",sx:{display:"block",fontFamily:"monospace",wordBreak:"break-all"},children:M.path}),E&&(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",sx:{display:"block"},children:[E.branch?null:n("projects.detached",{head:E.head??""}),E.changes>0?n("projects.changes",{count:E.changes}):null,E.upstream&&(E.ahead||E.behind)?n("projects.aheadBehind",{ahead:E.ahead,behind:E.behind,upstream:E.upstream}):null].filter(Boolean).join(" \xb7 ")}),z&&(0,a.jsx)(m.A,{severity:"error",sx:{mt:1,wordBreak:"break-word"},children:z})]}),(0,a.jsx)(ti.A,{sx:{lineHeight:"32px"},children:n("projects.menu.project")}),o.projects.map(t=>(0,a.jsxs)(et.A,{dense:!0,selected:tf(t.path,M.project),onClick:()=>tf(t.path,M.project)?l(null):void N(e?"bindChat":"activate",{project:t.path}),children:[(0,a.jsx)(eK.A,{children:(0,a.jsx)(eY.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:t.name,secondary:t.git?t.git.branch??t.git.head:n("projects.notGit")}),tf(t.path,M.project)&&(0,a.jsx)(tc.A,{fontSize:"small",color:"primary"})]},t.path)),E&&[(0,a.jsx)(ti.A,{sx:{lineHeight:"32px"},children:n("projects.menu.folder")},"folder-heading"),...F.map(q),..._.length>0?[(0,a.jsxs)(et.A,{dense:!0,onClick:()=>$(e=>!e),"aria-expanded":C,children:[(0,a.jsx)(eK.A,{children:C?(0,a.jsx)(eV.A,{fontSize:"small"}):(0,a.jsx)(eJ.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:n("projects.menu.otherWorktrees",{count:_.length})})]},"other-worktrees"),...C?_.map(q):[]]:[],(0,a.jsxs)(et.A,{dense:!0,disabled:!e,onClick:()=>h("worktree"),children:[(0,a.jsx)(eK.A,{children:(0,a.jsx)(eX.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:n("projects.menu.newWorktree")})]},"new-worktree"),(0,a.jsx)(ti.A,{sx:{lineHeight:"32px"},children:n("projects.menu.branch")},"branch-heading"),(0,a.jsxs)(et.A,{dense:!0,disabled:E.changes>0,onClick:()=>h("switch"),children:[(0,a.jsx)(eK.A,{children:(0,a.jsx)(th.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:n("projects.menu.switchBranch")})]},"switch-branch"),(0,a.jsxs)(et.A,{dense:!0,onClick:()=>h("create"),children:[(0,a.jsx)(eK.A,{children:(0,a.jsx)(eQ.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:n("projects.menu.newBranch")})]},"new-branch"),(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",component:"p",sx:{px:2,py:.5,maxWidth:360},children:E.changes>0?n("projects.menu.dirtyHint"):n("projects.menu.sharedHint")},"branch-hint")],(0,a.jsx)(Y.A,{}),(0,a.jsxs)(et.A,{dense:!0,onClick:()=>{navigator.clipboard?.writeText(M.path),l(null)},children:[(0,a.jsx)(eK.A,{children:(0,a.jsx)(tp.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:n("projects.menu.copyPath")})]})]}),(0,a.jsx)(tg,{open:null!==d,mode:d??"switch",git:E,folder:M.path,onClose:()=>h(null),onSubmit:async(e,t)=>{"switch"===d?await s("switchBranch",{path:M.path,branch:e}):"create"===d?await s("createBranch",{path:M.path,branch:e}):await s("addWorktree",{path:M.path,branch:e,createBranch:t}),l(null)}}),(0,a.jsxs)(j.A,{open:!!b,onClose:()=>w(null),fullWidth:!0,maxWidth:"xs",children:[(0,a.jsx)(A.A,{children:n("projects.dialog.removeWorktreeTitle")}),(0,a.jsxs)(k.A,{children:[(0,a.jsx)(S.A,{sx:{wordBreak:"break-word"},children:n("projects.dialog.removeWorktreeBody",{path:b??""})}),O?.branch&&(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:O.branch})]}),(0,a.jsxs)(I.A,{children:[(0,a.jsx)(u.A,{onClick:()=>w(null),children:n("common.cancel")}),(0,a.jsx)(u.A,{color:"error",variant:"contained",onClick:()=>{w(null),N("removeWorktree",{path:M.project,worktree:b},!1)},children:n("projects.dialog.removeAction")})]})]})]})};var tv=n(82755),ty=n(75210),tb=n(82683),tw=n(88254),tj=n(43391),tA=n(6209);function tk(e){return(0,tA.BC)(e.identity.serverName,e.identity.skillUri,e.manifest.digest)}let tS=({conversationId:e,skills:t,selectedKeys:n,onSelectionChange:o})=>{let{t:s}=(0,eW.s9)(),i=(0,r.useMemo)(()=>new Set(t.map(tk)),[t]);return((0,r.useEffect)(()=>{let e=new Set([...n].filter(e=>i.has(e)));(e.size!==n.size||[...e].some(e=>!n.has(e)))&&o(e)},[o,n,i]),t.length)?(0,a.jsx)(tv.A,{variant:"outlined","data-testid":"approved-mcp-skills","data-conversation-id":e,sx:{mb:1,px:1.25,py:.75},children:(0,a.jsxs)(ty.A,{spacing:.25,children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.75},children:[(0,a.jsx)(tj.A,{color:"warning",fontSize:"small"}),(0,a.jsx)(p.A,{variant:"caption",sx:{fontWeight:700},children:s("mcp.skills.chatTitle")}),(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:s("mcp.skills.chatWarning")})]}),(0,a.jsx)(c.default,{sx:{display:"flex",flexWrap:"wrap",gap:.5},children:t.map(e=>{let t=tk(e);return(0,a.jsx)(tb.A,{sx:{m:0,mr:1},control:(0,a.jsx)(tw.A,{size:"small",checked:n.has(t),disabled:!n.has(t)&&n.size>=tA.$Z,onChange:e=>{let a=new Set(n);e.target.checked?a.add(t):a.delete(t),o(a)}}),label:(0,a.jsxs)(c.default,{sx:{minWidth:0},children:[(0,a.jsxs)(p.A,{variant:"caption",sx:{display:"block"},children:[e.entry.frontmatter.name," \xb7 ",e.identity.serverName]}),(0,a.jsxs)(p.A,{variant:"caption",color:"text.secondary",sx:{display:"block",maxWidth:360,overflow:"hidden",textOverflow:"ellipsis"},children:[e.identity.skillUri," \xb7 ",e.manifest.digest]})]})},t)})})]})}):null};var tI=n(47186),tC=n(94437),t$=n(22103);function tz(e,t){if(!(t in e))return e;let n={...e};return delete n[t],n}function tT(e,t,n){let a=e[t]??[],r=a.filter(e=>e.id!==n);if(r.length===a.length)return e;let o={...e};return r.length>0?o[t]=r:delete o[t],o}var tM=n(33641),tE=n(2915),tR=n(73842);let tN={byIndex:{}};function tW(e,t,n){for(let a=0;a<t;a++)e[a]||(e[a]={laneIndex:a,laneCount:t,label:`Lane ${a+1}/${t}`,status:"pending",lastEventAt:n})}function tP(e,t,n=Date.now()){let a=t.laneIndex,r=t.laneCount;if(null==a||null==r)return e;let o=("subflow:start"===t.type||"subflow:done"===t.type)&&1===t.depth;if(o&&"subflow:start"===t.type){let o,s=t.node?.nodeId,i=e.ownerNodeId&&s&&e.ownerNodeId!==s?{}:{...e.byIndex};return tW(i,r,n),i[a]={laneIndex:a,laneCount:r,label:t.laneTitle||((o=t.subflowName||t.subflowId)?`${o} ${a+1}/${r}`:`Lane ${a+1}/${r}`),laneConversationId:t.laneConversationId??i[a]?.laneConversationId,sessionKey:t.sessionKey??i[a]?.sessionKey,sessionVisit:t.sessionVisit??i[a]?.sessionVisit,status:"running",lastEventAt:n},{ownerNodeId:s??e.ownerNodeId,byIndex:i}}if(o&&"subflow:done"===t.type){let o={...e.byIndex};tW(o,r,n);let s=o[a];return o[a]={...s,label:s.label&&"pending"!==s.status?s.label:t.laneTitle||s.label,laneConversationId:s.laneConversationId??t.laneConversationId,sessionKey:t.sessionKey??s.sessionKey,sessionVisit:t.sessionVisit??s.sessionVisit,status:"capped"===t.status?"completed":t.status,activity:void 0,lastEventAt:n},{ownerNodeId:e.ownerNodeId??t.node?.nodeId,byIndex:o}}let s=function(e){switch(e.type){case"node:enter":return e.node?.nodeName||e.node?.nodeId||void 0;case"tool:call":return e.name;case"tool:progress":return e.message?`${e.name} — ${e.message}`:e.name;case"subflow:start":return`↳ ${e.subflowName||e.subflowId}`;case"handoff":return`→ ${e.toNodeId}`;default:return}}(t);if(void 0===s)return e;let i=e.byIndex[a];if(i&&i.activity===s&&"pending"!==i.status||i&&("completed"===i.status||"error"===i.status))return e;let l={...e.byIndex};tW(l,r,n);let d=l[a];return l[a]={...d,status:"pending"===d.status?"running":d.status,activity:s,lastEventAt:n},{ownerNodeId:e.ownerNodeId,byIndex:l}}let tO=["the moon janitor","a time-hopping intern","three union pigeons","the office wizard","a skeptical goldfish","the museum ghost","an off-duty oracle","the last polite pirate","a raccoon committee","the cryptid expert","a calm astronaut","the royal beekeeper","the lighthouse cat","a future detective","the backup dragon","a jetpack accountant","the submarine butler","a retired villain","the support goose","a help-desk knight","an imaginary conductor","an archaeology intern","the weather crow","a receipt philosopher"],tD=["the moon ladder","a diplomatic sock","the royal stapler","an indoor umbrella","the lunch compass","a warm snow globe","the last teaspoon","a fictional map","the folding napkin","a jar of thunder","the Wi-Fi wand","a lawyered sandwich","the spare sun","a jar of silence","the haunted printer","a load-bearing baguette","the tiny drawbridge","the wrong key","the inflatable anvil","a prophecy coupon","the reverse telescope","classified confetti","the nervous pendulum","a pocket volcano"],tF=["on the Moon","at the seafloor post office","at the Bermuda gift shop","at the Wi-Fi castle","behind the second attic","at North Pole support","on platform nine-ish","beside a black hole","inside the mood library","under the cloud","in the office kitchen","inside spreadsheet forest","at volcano reception","behind the old clock","in Lost Luggage","on the snack balcony","in the shallow moat","at the desert hotel","inside the failed museum","in lab number two","at tomorrow station","inside dragon training","on Tuesday Island","past the supply closet"],t_=["sorting moon rocks","looking for lunch","testing the fire alarm","folding space-time","counting invisible sheep","polishing the eclipse","fixing yesterday","mapping the snack drawer","questioning the compass","training the pigeons","debugging the horoscope","watering plastic plants","auditing the pirates","rewinding the sundial","interviewing a shadow","filing dragon taxes","calibrating breakfast","alphabetizing fog","measuring gossip","rehearsing the alibi","charging the crystal ball","untangling gravity","translating whale mail","backing up the Moon"],tq=["fold a fitted sheet","whistle in binary","park a gondola","alphabetize fog","moonwalk quietly","invoice a dragon","juggle theories","read the room","argue with a door","brew orbital tea","translate sarcasm","defeat a sundial","smuggle daylight","assemble a prophecy","locate north","interview tomorrow","budget on a unicycle","write in zero gravity","herd digital cats","repair a metaphor","land a paper plane","greet the abyss","exit a time loop","explain medieval taxes"],tB=["the Moon’s back door","Wednesday’s location","gravity’s fine print","the missing socks","the Morse-code plant","the speakerphone echo","the pigeon payroll","the painted horizon","the absent staircase","Tuesday’s sequel","the Gary compass","the second ocean","the dramatic copier","tomorrow’s mail","the extra five minutes","the licensed ghost","the reviewed treasure map","the hungry plot hole","the sorted stars","the sighing elevator","the thunder receipts","the lunch eclipse","the freelance mirror","the exit to 1843"],tH=["a bent paperclip","a rubber chicken","the good magnifier","one brave teaspoon","a future abacus","a cat laser","an accordion","a dishonest ruler","a memo compass","the royal whisk","a pocket sundial","two magnets","a Latin wrench","the tiny hammer","tenured tape","a crystal ball","a haunted slide rule","the backup kazoo","a gloomy spirit level","the left telescope","a stern clipboard","emergency string","a weather vane","the manual page"],tL=["the eclipse rehearsal","emergency teatime","the gravity inspection","the office moon landing","the password ceremony","yesterday’s reopening","the hiding finals","the underwater fire drill","the time-traveler meeting","the lighthouse picnic","the backup launch","the horizon retirement","the expedition talent show","bring-your-ghost night","Coincidence Day","Small Ben’s unveiling","the silent concert","the endless ribbon-cutting","the volcano open house","breakfast rehearsal","the maritime spelling bee","the ancient Wi-Fi demo","the alibi parade","the surprise-party audit"],tU=["the inspector walks in","the inventor denies it","the footnote calls","the lights blink in Morse","tomorrow asks for help","the witness appears","the smoke alarm passes","the prophecy arrives","every clock coughs","the fire drill gets real","the squirrels object","the Moon calls back","the red lever starts counting","the alibi walks past","next door repeats it","the backup plan resigns","the weather apologizes","the map says “you first”","the missing page falls out","Coincidence Day is canceled","the goose takes charge","the empty box takes notes","a comet arrives early","the narrator gets fired"],tK=["the goose approves","the timeline objects","the manual shrugs","lunch takes priority","the pigeons demand credit","the chart looks worried","the calendar resigns","history asks for a redo","the printer applauds","gravity clocks out","the map denies everything","the ghost files a claim","the budget grows a moat","the experiment gets renewed","the floor adds a door","the ducks peer-review it","management calls it tradition","confetti is deployed","the loop requests closure","a plaque is ordered","physics grants an exception","the cupboard applauds","the conclusion needs edits","the universe closes the ticket"],tJ=(e,t)=>({count:e.reduce((e,t)=>e*t.length,1),render:n=>{let a=n,r=e.map(e=>{let t=e[a%e.length];return a=Math.floor(a/e.length),t});return`${t(...r)}…`}}),tV=e=>`${e[0].toUpperCase()}${e.slice(1)}`,tX=[tJ([tO,tq],(e,t)=>`Teaching ${e} to ${t}`),tJ([tD,tF],(e,t)=>`Finding ${e} ${t}`),tJ([t_,tK],(e,t)=>`${tV(e)}; ${t}`),tJ([tB,tH],(e,t)=>`Solving ${e} with ${t}`),tJ([tD,tH],(e,t)=>`Repairing ${e} with ${t}`),tJ([tL,tO],(e,t)=>`Rehearsing ${e} with ${t}`),tJ([tO,t_],(e,t)=>`Helping ${e} finish ${t}`),tJ([tD,tK],(e,t)=>`Showing off ${e}; ${t}`),tJ([tB,tF],(e,t)=>`Investigating ${e} ${t}`),tJ([tq,tH],(e,t)=>`Trying to ${e} with ${t}`),tJ([tD,tU],(e,t)=>`Hiding ${e} just as ${t}`),tJ([tL,tU],(e,t)=>`Starting ${e} as ${t}`),tJ([tO,tD],(e,t)=>`${tV(e)} arrives carrying ${t}`),tJ([t_,tU],(e,t)=>`While ${e}, ${t}`),tJ([tB,tO],(e,t)=>`Discovering ${e}; ${t} takes credit`),tJ([tD,tK],(e,t)=>`Testing ${e}; ${t}`),tJ([tF,tO],(e,t)=>`Arriving ${e}; ${t} was already there`),tJ([tL,tU],(e,t)=>`${tV(e)} begins moments before ${t}`),tJ([tO,tB],(e,t)=>`Asking ${e} about ${t}`),tJ([tq,tU],(e,t)=>`Learning to ${e} seconds before ${t}`),tJ([tD,tO],(e,t)=>`Returning ${e} to ${t}`),tJ([tL,tF],(e,t)=>`Booking ${e} ${t}`),tJ([tB,tU],(e,t)=>`Checking ${e} when ${t}`),tJ([t_,tO],(e,t)=>`${tV(e)} with ${t}`),tJ([tD,tK],(e,t)=>`Calibrating ${e}; ${t}`),tJ([tL,tH],(e,t)=>`Running ${e} with ${t}`),tJ([tO,tF],(e,t)=>`Following ${e} ${t}`),tJ([tB,tK],(e,t)=>`Explaining ${e}; ${t}`),tJ([t_,tH],(e,t)=>`${tV(e)} with ${t}`),tJ([tD,tL],(e,t)=>`Preparing ${e} for ${t}`),tJ([tF,tH],(e,t)=>`Taking notes ${e} with ${t}`),tJ([tO,tL],(e,t)=>`Briefing ${e} on ${t}`),tJ([tD,tB],(e,t)=>`Checking ${e} against ${t}`),tJ([tF,tK],(e,t)=>`Mapping ${e}; ${t}`),tJ([tO,tH],(e,t)=>`Helping ${e} use ${t}`),tJ([tL,tB],(e,t)=>`Linking ${e} to ${t}`),tJ([tq,tO],(e,t)=>`Watching ${t} learn to ${e}`),tJ([t_,tL],(e,t)=>`${tV(e)} before ${t}`),tJ([tD,tF],(e,t)=>`Delivering ${e} ${t}`),tJ([tO,tF],(e,t)=>`Meeting ${e} ${t}`),tJ([tB,tL],(e,t)=>`Discussing ${e} at ${t}`),tJ([tq,tF],(e,t)=>`Trying to ${e} ${t}`),tJ([t_,tD],(e,t)=>`${tV(e)} around ${t}`),tJ([tL,tF],(e,t)=>`Hosting ${e} ${t}`),tJ([tD,tB],(e,t)=>`Comparing ${e} with ${t}`),tJ([tO,tU],(e,t)=>`Meeting ${e} just as ${t}`),tJ([tH,tK],(e,t)=>`Pointing ${e} north; ${t}`),tJ([tq,tL],(e,t)=>`Practicing how to ${e} at ${t}`)];tX.reduce((e,t)=>e+t.count,0);let tG=(e,t)=>{let n=Math.abs(e),a=Math.abs(t);for(;0!==a;)[n,a]=[a,n%a];return n},tY=e=>{let t=0|e;return((t=Math.imul((t=Math.imul(t^t>>>16,0x21f0aaad))^t>>>15,0x735a2d97))^t>>>15)>>>0},tQ=(e,t)=>{let n=tY(t)%(e-1)+1;for(;1!==tG(n,e);)n=n%(e-1)+1;return n},tZ=({lane:e,onOpenLane:t})=>{let{t:n}=(0,eW.s9)(),r=!!e.laneConversationId&&!!t,o="pending"===e.status;return(0,a.jsxs)(c.default,{onClick:r?()=>t(e.laneConversationId):void 0,sx:{display:"flex",alignItems:"center",gap:1,px:1,py:.25,borderRadius:1,...r&&{cursor:"pointer","&:hover":{bgcolor:"action.hover",textDecoration:"underline"}}},children:["running"===e.status&&(0,a.jsx)(h.default,{size:14,sx:{flexShrink:0}}),"completed"===e.status&&(0,a.jsx)(N.A,{sx:{fontSize:16,flexShrink:0},color:"success"}),"error"===e.status&&(0,a.jsx)(tE.A,{sx:{fontSize:16,flexShrink:0},color:"error"}),o&&(0,a.jsx)(tR.A,{sx:{fontSize:16,flexShrink:0},color:"disabled"}),(0,a.jsxs)(p.A,{variant:"caption",color:o?"text.disabled":"textSecondary",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[e.label,o&&` — ${n("chat.live.queued")}`,"running"===e.status&&e.activity&&(0,a.jsxs)(p.A,{component:"span",variant:"caption",color:"text.disabled",children:[" \xb7 ",e.activity]})]}),e.sessionKey&&void 0!==e.sessionVisit&&(0,a.jsx)(g.A,{title:n("chat.live.sessionVisit",{key:e.sessionKey,visit:e.sessionVisit}),children:(0,a.jsx)(y.A,{label:n("chat.live.sessionVisit",{key:e.sessionKey,visit:e.sessionVisit}),size:"small",variant:"outlined",sx:{flexShrink:1,minWidth:0,maxWidth:220,height:20,"& .MuiChip-label":{overflow:"hidden",textOverflow:"ellipsis",px:.75,fontSize:"0.68rem"}}})})]})},t0=({liveStats:e,onStop:t,stopDisabled:n,awaitingApproval:o,lanes:s,onOpenLane:i,retryWait:l,compact:d=!1})=>{let m,x,v,y,b,w,j,{locale:A,t:k,tp:S,formatNumber:I,formatList:C}=(0,eW.s9)(),[$,z]=(0,r.useState)(()=>Date.now()),[T]=(0,r.useState)(()=>Date.now()),[M,E]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=setInterval(()=>z(Date.now()),1e3);return()=>clearInterval(e)},[]);let R=e?Math.max(0,Math.round(($-e.startedAt)/1e3)):0,N=e?Math.round(($-e.lastEventAt)/1e3):0,W=!o&&!l&&!!e&&N>=60,P=e?.startedAt??T,O=Math.floor(Math.max(0,$-P)/1e4),D="en"===A?(m=Math.max(0,Math.floor(O)),x=Math.floor(P),v=tX.length,b=tX[y=(tY(x)%v+m*tQ(v,0x6d2b79f5^x))%v],w=Math.floor(m/v),j=(tY(x^Math.imul(y+1,0x9e3779b1))%b.count+w*tQ(b.count,x^Math.imul(y+1,0x85ebca6b)))%b.count,b.render(j)):k(`chat.live.working.${O%6}`),F=l?Math.max(0,Math.ceil((l.retryAt-$)/1e3)):0,_=l?l.maxAttempts?k("chat.live.retryWaitAttempt",{seconds:I(F),attempt:I(l.attempt),total:I(l.maxAttempts)}):k("chat.live.retryWait",{seconds:I(F)}):null,q=s?Object.values(s.byIndex).sort((e,t)=>e.laneIndex-t.laneIndex):[],B=q.length>0?(()=>{let e=q.filter(e=>"running"===e.status).length,t=q.filter(e=>"pending"===e.status).length,n=q.filter(e=>"completed"===e.status).length,a=q.filter(e=>"error"===e.status).length;if(0===e&&0===t&&a>0)return{text:k("chat.live.partialFailure",{failed:I(a),total:I(q.length)}),warning:!0};let r=[e>0?S("chat.live.laneRunning",e):"",t>0?S("chat.live.laneQueued",t):"",n>0?S("chat.live.laneDone",n):"",a>0?S("chat.live.laneFailed",a):""].filter(Boolean);return{text:S("chat.live.lanes",q.length,{states:C(r)}),warning:a>0}})():null;if(d){let r=o?k("chat.live.waitingApproval"):e?.activeNode?k("chat.live.running",{node:e.activeNode}):k("chat.live.working");return(0,a.jsxs)(c.default,{"data-testid":"compact-live-run",sx:{flexShrink:0,bgcolor:"background.paper",borderTop:1,borderBottom:1,borderColor:"divider",boxShadow:"0 -8px 24px rgba(0,0,0,.10)",position:"relative",zIndex:3},children:[(0,a.jsxs)(c.default,{sx:{minHeight:44,px:1,display:"flex",alignItems:"center",gap:.75},children:[o?(0,a.jsx)(tM.A,{fontSize:"small",color:"warning"}):(0,a.jsx)(h.default,{size:18,color:W?"warning":"primary"}),(0,a.jsx)(p.A,{variant:"body2",noWrap:!0,role:"status","aria-live":"polite","aria-atomic":"true","data-testid":_?"retry-wait":"run-status",color:_?"warning.main":void 0,sx:{flex:1,minWidth:0},children:_??r}),!o&&(0,a.jsxs)(p.A,{variant:"caption",color:W?"warning.main":"text.secondary",sx:{whiteSpace:"nowrap"},children:[I(e?.totalTokens??0)," \xb7 ",I(R),"s"]}),B&&(0,a.jsx)(g.A,{title:B.text,children:(0,a.jsx)(f.A,{size:"small",onClick:()=>E(e=>!e),"aria-label":B.text,"aria-expanded":M,children:M?(0,a.jsx)(ed.A,{}):(0,a.jsx)(el.A,{})})}),(0,a.jsx)(u.A,{variant:"outlined",color:"secondary",size:"small",onClick:t,disabled:n,sx:{minWidth:"auto",px:1},children:k("chat.live.stop")})]}),!o&&(0,a.jsx)(p.A,{"data-testid":"compact-working-message",variant:"body2",color:"text.primary","aria-hidden":"true",sx:{px:1.5,pb:.75,fontSize:"0.8125rem",fontWeight:500,lineHeight:1.35,textAlign:"center",overflowWrap:"anywhere"},children:D}),B&&(0,a.jsx)(en.A,{in:M,unmountOnExit:!0,children:(0,a.jsxs)(c.default,{sx:{px:1,pb:1},children:[(0,a.jsx)(p.A,{variant:"caption",color:B.warning?"warning.main":"text.secondary",sx:{display:"block",mb:.25},children:B.text}),q.map(e=>(0,a.jsx)(tZ,{lane:e,onOpenLane:i},e.laneIndex))]})})]})}let H=_??(o?k("chat.live.waitingApproval"):e?.activeNode?k("chat.live.running",{node:e.activeNode}):k("chat.live.working"));return(0,a.jsxs)(c.default,{sx:{display:"flex",flexDirection:"column",alignItems:"center",my:2,gap:.5,minWidth:0,maxWidth:"100%"},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:2,minWidth:0,maxWidth:"100%",px:1},children:[o?(0,a.jsx)(tM.A,{fontSize:"small",color:"warning"}):(0,a.jsx)(h.default,{size:20,color:W?"warning":"primary",sx:{flexShrink:0}}),(0,a.jsx)(g.A,{title:H,placement:"top",children:(0,a.jsx)(p.A,{variant:"body2",noWrap:!0,color:_?"warning.main":"textSecondary","data-testid":_?"retry-wait":"run-status",role:"status","aria-live":"polite","aria-atomic":"true",sx:{minWidth:0,maxWidth:{xs:"60vw",md:640}},children:H})}),(0,a.jsx)(u.A,{variant:"outlined",color:"secondary",size:"small",onClick:t,disabled:n,children:k("chat.live.stop")})]}),!o&&(0,a.jsx)(p.A,{"data-testid":"working-message",variant:"body2",color:"text.primary",sx:{maxWidth:680,px:2,py:.5,borderRadius:1,bgcolor:"action.hover",fontSize:"0.875rem",fontWeight:500,lineHeight:1.45,textAlign:"center",overflowWrap:"anywhere"},"aria-hidden":"true",children:D}),B&&(0,a.jsxs)(c.default,{sx:{display:"flex",flexDirection:"column",alignItems:"stretch",minWidth:280,maxWidth:520},children:[(0,a.jsx)(p.A,{variant:"caption",color:B.warning?"warning.main":"textSecondary",sx:{px:1,fontWeight:500},children:B.text}),q.map(e=>(0,a.jsx)(tZ,{lane:e,onOpenLane:i},e.laneIndex))]}),!o&&(0,a.jsxs)(p.A,{variant:"caption",color:W?"warning.main":"textSecondary",children:[S("chat.live.elapsed",R,{tokens:k("chat.stats.tokens",{count:I(e?.totalTokens??0)})}),W?` \xb7 ${S("chat.live.inactive",N)}`:""]})]})};var t1=n(64915),t2=n(96209);let t5=({todos:e})=>{let{t,formatNumber:n}=(0,eW.s9)();if(!e||0===e.length)return null;let r=e.filter(e=>"done"===e.status).length,o=e.length>0?Math.round(r/e.length*100):0;return(0,a.jsxs)(tv.A,{variant:"outlined",sx:{mt:2,p:1.5,borderRadius:2},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:1},children:[(0,a.jsx)(p.A,{variant:"subtitle2",sx:{fontWeight:600},children:t("chat.todo.title")}),(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:t("chat.todo.progress",{done:n(r),total:n(e.length)})})]}),(0,a.jsx)(t1.A,{variant:"determinate",value:o,sx:{mb:1,borderRadius:1}}),(0,a.jsx)(c.default,{component:"ul",sx:{listStyle:"none",m:0,p:0},children:e.map(e=>(0,a.jsxs)(c.default,{component:"li",sx:{display:"flex",alignItems:"center",gap:1,py:.25},children:[function(e){switch(e){case"done":return(0,a.jsx)(N.A,{fontSize:"small",color:"success"});case"in_progress":return(0,a.jsx)(t2.A,{fontSize:"small",color:"info"});case"cancelled":return(0,a.jsx)(tE.A,{fontSize:"small",color:"disabled"});default:return(0,a.jsx)(tR.A,{fontSize:"small",color:"disabled"})}}(e.status),(0,a.jsx)(p.A,{variant:"body2",sx:{textDecoration:"done"===e.status||"cancelled"===e.status?"line-through":"none",color:"done"===e.status||"cancelled"===e.status?"text.secondary":"text.primary"},children:e.content})]},e.id))})]})};var t4=n(22779),t6=n(92533),t3=n(28565),t7=n(70722),t9=n(53296),t8=n(36493),ne=n(97388),nt=n(25601);let nn=e=>e>=1e6?`${(e/1e6).toFixed(2).replace(/\.?0+$/,"")}M`:e>=1e3?`${(e/1e3).toFixed(e>=1e5?0:1)}k`:`${e}`,na=({usage:e,contextInfo:t,availableNodes:n,compact:o=!1})=>{let{t:s,formatNumber:i}=(0,eW.s9)(),[l,d]=(0,r.useState)(null);if(!e&&!t)return null;let u=e?.byNode?Object.entries(e.byNode):[],h=e?(0,nt.g)(e):void 0,m=h?.cacheReadTokens??0,f=h?.cacheWriteTokens??0,x=e?.promptTokens??0,v=t?.totalTokens??t?.promptTokens,b="number"==typeof v&&Number.isFinite(v)&&v>=0,w=b&&t?.contextWindow&&t.contextWindow>0?Math.round(v/t.contextWindow*100):void 0,j=b&&t?.contextWindow?`${s("chat.stats.context",{model:t.modelDisplayName?s("chat.stats.model",{model:t.modelDisplayName}):"",used:i(v),total:i(t.contextWindow)})}${"configured"===t.contextWindowSource?` ${s("chat.stats.configuredWindow")}`:""}`:"";return(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:o?.5:1.5,flexShrink:0},children:[e&&h.processedTotalTokens>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(g.A,{title:s("chat.stats.tooltip",{prompt:i(x),completion:i(e.completionTokens),cached:m>0?s("chat.stats.cached",{count:i(m)}):"",written:f>0?s("chat.stats.written",{count:i(f)}):""}),children:(0,a.jsx)(y.A,{icon:(0,a.jsx)(ne.A,{}),label:s(o?"chat.stats.inputOutputCompact":"chat.stats.inputOutput",{input:nn(x),output:nn(h.completionTokens)}),size:"small",variant:"outlined",onClick:e=>d(e.currentTarget),sx:{cursor:"pointer"}})}),(0,a.jsx)(t4.Ay,{open:!!l,anchorEl:l,onClose:()=>d(null),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:(0,a.jsxs)(c.default,{sx:{p:2,maxWidth:"min(680px, calc(100vw - 24px))",overflowX:"auto"},children:[(0,a.jsx)(p.A,{variant:"subtitle2",sx:{mb:1},children:s("chat.stats.title")}),(0,a.jsxs)(t6.A,{size:"small",children:[(0,a.jsx)(t3.A,{children:(0,a.jsxs)(t7.A,{children:[(0,a.jsx)(t9.A,{children:s("chat.stats.node")}),(0,a.jsx)(t9.A,{align:"right",children:s("chat.stats.prompt")}),(0,a.jsx)(t9.A,{align:"right",children:s("chat.stats.completion")}),(0,a.jsx)(t9.A,{align:"right",children:s("chat.stats.cachedRead")}),(0,a.jsx)(t9.A,{align:"right",children:s("chat.stats.cacheWrite")}),(0,a.jsx)(t9.A,{align:"right",children:s("chat.stats.total")})]})}),(0,a.jsxs)(t8.A,{children:[u.map(([e,t])=>{let r=(0,nt.g)(t);return(0,a.jsxs)(t7.A,{children:[(0,a.jsx)(t9.A,{children:(0,a.jsx)(g.A,{title:e,children:(0,a.jsx)("span",{children:n.find(t=>t.id===e)?.label||`${e.substring(0,8)}…`})})}),(0,a.jsx)(t9.A,{align:"right",children:i(t.promptTokens)}),(0,a.jsx)(t9.A,{align:"right",children:i(r.completionTokens)}),(0,a.jsx)(t9.A,{align:"right",children:null==t.cacheReadTokens?"—":i(r.cacheReadTokens)}),(0,a.jsx)(t9.A,{align:"right",children:null==t.cacheWriteTokens?"—":i(r.cacheWriteTokens)}),(0,a.jsx)(t9.A,{align:"right",children:i(r.processedTotalTokens)})]},e)}),(0,a.jsxs)(t7.A,{children:[(0,a.jsx)(t9.A,{sx:{fontWeight:"bold"},children:s("chat.stats.total")}),(0,a.jsx)(t9.A,{align:"right",sx:{fontWeight:"bold"},children:i(x)}),(0,a.jsx)(t9.A,{align:"right",sx:{fontWeight:"bold"},children:i(e.completionTokens)}),(0,a.jsx)(t9.A,{align:"right",sx:{fontWeight:"bold"},children:null==e.cacheReadTokens?"—":i(m)}),(0,a.jsx)(t9.A,{align:"right",sx:{fontWeight:"bold"},children:null==e.cacheWriteTokens?"—":i(f)}),(0,a.jsx)(t9.A,{align:"right",sx:{fontWeight:"bold"},children:i(h.processedTotalTokens)})]})]})]}),m>0&&(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",sx:{display:"block",mt:1},children:s("chat.stats.cacheHelp",{cached:i(m)})}),f>0&&(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",sx:{display:"block",mt:.5},children:s("chat.stats.cacheWriteHelp",{written:i(f)})})]})})]}),t&&void 0!==w&&!o&&(0,a.jsx)(g.A,{title:j,children:(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:1,minWidth:140},children:[(0,a.jsx)(t1.A,{variant:"determinate",value:Math.min(100,w),color:w>=90?"error":w>=70?"warning":"primary",sx:{flex:1,height:6,borderRadius:3}}),(0,a.jsxs)(p.A,{variant:"caption",color:"text.secondary",sx:{whiteSpace:"nowrap"},children:[s("chat.stats.contextLabel")," ",nn(v),"/",nn(t.contextWindow)," (",w,"%)"]})]})}),t&&void 0!==w&&o&&(0,a.jsx)(g.A,{title:j,children:(0,a.jsxs)(p.A,{variant:"caption",color:w>=90?"error.main":"text.secondary",sx:{whiteSpace:"nowrap"},children:["ctx ",w,"%"]})}),t&&b&&void 0===w&&(0,a.jsx)(g.A,{title:s("chat.stats.noWindow",{model:t.modelDisplayName?s("chat.stats.model",{model:t.modelDisplayName}):""}),children:(0,a.jsxs)(p.A,{variant:"caption",color:"text.secondary",sx:{whiteSpace:"nowrap"},children:[s("chat.stats.contextLabel")," ",nn(v)]})}),t&&!b&&(0,a.jsx)(g.A,{title:s("chat.stats.contextUnavailableHelp"),children:(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",sx:{whiteSpace:"nowrap"},children:s("chat.stats.contextUnavailable")})})]})};var nr=n(86065),no=n(60199),ns=n(24571),ni=n(41178),nl=n(609),nd=n(64959),nc=n(16007),nu=n(8901);let nh=e=>"pending"!==e.provisioningState&&"disabled"!==e.lifecycleState&&"error"!==e.lifecycleState,np=({selectedFlowId:e,selectedPersonaId:t=null,selectedPersonaBehaviorSlotKey:n=null,onSelectFlow:o,onSelectPersona:s,onPersonaNamesLoaded:i,disabled:l=!1,compact:d=!1,fullScreenPicker:f=!1})=>{let{t:x}=(0,eW.s9)(),[v,b]=(0,r.useState)([]),[w,S]=(0,r.useState)(!0),[C,$]=(0,r.useState)(null),[z,T]=(0,r.useState)(!1),[M,E]=(0,r.useState)(null),[R,N]=(0,r.useState)(null),[W,P]=(0,r.useState)(!1),[O,D]=(0,r.useState)(null),[F,_]=(0,r.useState)(0),[q,H]=(0,r.useState)(null),[L,U]=(0,r.useState)("agents"),[K,J]=(0,r.useState)(""),[V,Y]=(0,r.useState)();(0,r.useEffect)(()=>{let e=new AbortController;return(S(!0),$(null),"function"!=typeof fetch)?($(x("chat.target.loadFailed")),S(!1),()=>e.abort()):(fetch((0,nc.TA)("/v1/personas"),{signal:e.signal}).then(async e=>{if(!e.ok)throw Error(`Persona list failed (${e.status})`);return e.json()}).then(t=>{if(e.signal.aborted)return;let n=Array.isArray(t)?t:[];b(n),i?.(Object.fromEntries(n.map(({id:e,name:t})=>[e,t])))}).catch(t=>{e.signal.aborted||t?.name==="AbortError"||(b([]),i?.({}),$(x("chat.target.loadFailed")))}).finally(()=>{e.signal.aborted||S(!1)}),()=>e.abort())},[x,i]),(0,r.useEffect)(()=>{if(!M){N(null),D(null),P(!1);return}let e=!1;return N(null),D(null),P(!0),nd.t.getComposition(M.id).then(t=>{e||N(t)}).catch(()=>{e||D(x("chat.target.behaviorsLoadFailed"))}).finally(()=>{e||P(!1)}),()=>{e=!0}},[M,F,x]),(0,r.useEffect)(()=>{if(!t||!n||"primary"===n)return void H(null);let e=!1;return H(null),nd.t.getComposition(t).then(t=>{e||H(t.behaviorCards.find(e=>e.slotKey===n)?.name??null)}).catch(()=>void 0),()=>{e=!0}},[n,t]),(0,r.useEffect)(()=>{let e=e=>{(0,nu.Ri)(e)&&"open-chat-flow-picker"===e.detail.type&&(U("agents"),Y(e.detail.query),T(!0))};return window.addEventListener(nu.dD,e),()=>window.removeEventListener(nu.dD,e)},[]);let Q=(0,r.useMemo)(()=>v.filter(nh),[v]),Z=v.find(e=>e.id===t),ee=()=>{T(!1),E(null)},et=e=>{M&&(s(M.id,e),ee())};if(t){let e=Z?.name??x("chat.target.persona"),t="primary"===n?x("chat.target.mainRole"):q??x("chat.target.specialistBehavior"),r=n?`${e} \xb7 ${t}`:e;return(0,a.jsx)(g.A,{title:x("chat.target.locked"),children:(0,a.jsx)(c.default,{component:"span",sx:{display:"inline-flex",minWidth:0,maxWidth:"100%"},children:(0,a.jsx)(u.A,{variant:"outlined",size:d?"small":"medium",startIcon:(0,a.jsx)(ns.A,{}),endIcon:(0,a.jsx)(ni.A,{fontSize:"small"}),disabled:!0,sx:{textTransform:"none",maxWidth:"100%",minWidth:0},children:(0,a.jsx)(c.default,{component:"span",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r})})})})}return(0,a.jsxs)(c.default,{sx:{minWidth:0},children:[(0,a.jsx)(g.A,{title:x("chat.target.chooseTarget"),children:(0,a.jsx)("span",{children:(0,a.jsx)(u.A,{"data-tour":"chat-flow-picker-button",variant:"outlined",size:d?"small":"medium",startIcon:(0,a.jsx)(B.A,{}),disabled:l,onClick:()=>{E(null),U("agents"),Y(void 0),T(!0)},sx:{textTransform:"none",maxWidth:"100%",minWidth:0,...d&&{minHeight:36,px:1.25}},children:(0,a.jsx)(c.default,{component:"span",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e?K||x("chat.selector.title"):x("chat.target.chooseTarget")})})})}),(0,a.jsxs)(j.A,{open:z,onClose:ee,fullScreen:f,fullWidth:!0,maxWidth:"md",keepMounted:!0,children:[(0,a.jsx)(A.A,{children:x("chat.target.chooseTarget")}),(0,a.jsx)(c.default,{sx:{borderBottom:1,borderColor:"divider",px:{xs:1,sm:3}},children:(0,a.jsxs)(nr.A,{value:L,onChange:(e,t)=>U(t),"aria-label":x("chat.target.tabs"),children:[(0,a.jsx)(no.A,{value:"agents",label:x("chat.target.agents")}),(0,a.jsx)(no.A,{value:"personas",label:x("chat.target.personas")})]})}),(0,a.jsx)(k.A,{dividers:!0,sx:{p:{xs:2,sm:3}},children:"agents"===L?(0,a.jsxs)(c.default,{children:[(0,a.jsx)(p.A,{variant:"body2",color:"text.secondary",sx:{mb:2},children:x("chat.selector.dialogHelp")}),(0,a.jsx)(nl.A,{embedded:!0,selectedFlowId:e,onSelectFlow:e=>{o(e),ee()},externalSearchTerm:V,onSelectedFlowNameChange:J})]}):M?(0,a.jsxs)(c.default,{children:[(0,a.jsx)(p.A,{variant:"h6",sx:{mb:1},children:x("chat.target.chooseHow",{persona:M.name})}),(0,a.jsx)(u.A,{size:"small",onClick:()=>E(null),sx:{mb:1.5,textTransform:"none"},children:x("chat.target.backToPersonas")}),W?(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:1.5,py:3},children:[(0,a.jsx)(h.default,{size:20}),(0,a.jsx)(p.A,{color:"text.secondary",children:x("chat.target.loadingBehaviors")})]}):O?(0,a.jsx)(m.A,{severity:"error",action:(0,a.jsx)(u.A,{color:"inherit",size:"small",onClick:()=>_(e=>e+1),children:x("chat.target.retry")}),children:O}):R?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(ea.A,{disablePadding:!0,children:(0,a.jsxs)(X.A,{onClick:()=>et("primary"),disabled:R.core?.readiness.state!=="ready",children:[(0,a.jsx)(G.A,{primary:x("chat.target.mainRole"),secondary:R.core?.readiness.state==="ready"?x("chat.target.mainRoleHelp"):x("chat.target.notReady")}),(0,a.jsx)(y.A,{size:"small",label:x("chat.target.recommended"),color:"primary",variant:"outlined"})]})}),(0,a.jsx)(p.A,{variant:"subtitle2",sx:{mt:2.5,mb:.5},children:x("chat.target.specialistBehaviors")}),(0,a.jsx)(p.A,{variant:"body2",color:"text.secondary",sx:{mb:1},children:x("chat.target.specialistHelp")}),0===R.behaviorCards.length?(0,a.jsx)(p.A,{color:"text.secondary",children:x("chat.target.noBehaviors")}):(0,a.jsx)(ea.A,{disablePadding:!0,children:[...R.behaviorCards].sort((e,t)=>e.order-t.order).map(e=>(0,a.jsx)(X.A,{onClick:()=>et(e.slotKey),disabled:"ready"!==e.readiness.state,children:(0,a.jsx)(G.A,{primary:e.name,secondary:"ready"===e.readiness.state?e.description||x("chat.target.specialistBehavior"):x("chat.target.notReady")})},e.ref))})]}):null]}):w?(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:1.5,py:3},children:[(0,a.jsx)(h.default,{size:20}),(0,a.jsx)(p.A,{color:"text.secondary",children:x("chat.target.loading")})]}):C?(0,a.jsx)(m.A,{severity:"error",children:C}):0===Q.length?(0,a.jsx)(p.A,{color:"text.secondary",children:x("chat.target.empty")}):(0,a.jsxs)(c.default,{children:[(0,a.jsx)(p.A,{variant:"body2",color:"text.secondary",sx:{mb:1.5},children:x("chat.target.choosePersona")}),(0,a.jsx)(ea.A,{disablePadding:!0,children:Q.map(e=>(0,a.jsxs)(X.A,{onClick:()=>E(e),selected:e.id===t,children:[(0,a.jsx)(ns.A,{sx:{mr:1.5,color:"primary.main"}}),(0,a.jsx)(G.A,{primary:e.name,secondary:e.mission||void 0})]},e.id))})]})}),(0,a.jsx)(I.A,{children:(0,a.jsx)(u.A,{onClick:ee,children:x("common.cancel")})})]})]})};var nm=n(96172),ng=n(90337),nf=n(86293),nx=n(49239),nv=n(80105),ny=n(59238),nb=n(73254),nw=n(98598),nj=n(6931),nA=n(84542),nk=n(31383),nS=n(1928),nI=n(83347),nC=n(86670),n$=n(81750),nz=n(65614),nT=n(49103),nM=n(21129),nE=n(42727);let nR={byNode:{},byResource:{},byResourceName:{},resourceVersion:0},nN="root",nW=e=>"subflow:start"===e.type||"subflow:done"===e.type?e.depth??1:e.depth??0,nP=(e,t)=>null==t.laneIndex||null==e.laneIndex||e.laneIndex===t.laneIndex,nO=(e,t)=>{for(let n=e.order.length-1;n>=0;n-=1){let a=e.frames[e.order[n]];if(a&&t(a))return a}},nD=(e,t,n)=>n<=1?e.frames[e.rootKey]:nO(e,e=>"active"===e.status&&e.depth===n-1&&nP(e,t))??e.frames[e.rootKey],nF=(e,t)=>{let n=nW(t);return n<=0?e.frames[e.rootKey]:nO(e,e=>"active"===e.status&&e.depth===n&&nP(e,t))??e.frames[e.rootKey]},n_=e=>"node"in e?e.node?.nodeId:void 0,nq=e=>"resource:read"===e.type?"resource-read":"resource:write"===e.type?"resource-write":"active",nB="tool:",nH="tool-node:",nL="tool:*",nU=e=>(e??[]).filter(e=>"*"!==e&&!(e.startsWith(nB)||e.startsWith(nH)));var nK=n(58143),nJ=n(79078),nV=n(55322),nX=n(42061);let nG=(0,nT.h)("frontend/components/Chat/RunResourcesPanel"),nY=({conversationId:e,refreshToken:t})=>{let{t:n,formatNumber:o}=(0,eW.s9)(),[s,i]=(0,r.useState)(null),[l,d]=(0,r.useState)(null);return((0,r.useEffect)(()=>{if(!e)return;let t=!1;return fetch(`/v1/chat/conversations/${encodeURIComponent(e)}/resources`).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return e.json()}).then(e=>{t||(i(Array.isArray(e.resources)?e.resources:[]),d(null))}).catch(e=>{t||(nG.warn("Failed to load run resources",e),d(e instanceof Error?e.message:String(e)))}),()=>{t=!0}},[e,t]),l)?(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:n("chat.resources.unavailable",{error:l})}):null===s?(0,a.jsx)(c.default,{sx:{display:"flex",justifyContent:"center",p:1},children:(0,a.jsx)(h.default,{size:16})}):0===s.length?(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:n("chat.resources.empty")}):(0,a.jsx)(ea.A,{dense:!0,disablePadding:!0,children:[...s].sort((e,t)=>t.createdAt-e.createdAt).map(e=>{var t;return(0,a.jsxs)(V.Ay,{disableGutters:!0,sx:{alignItems:"flex-start"},children:[(0,a.jsx)(eK.A,{sx:{minWidth:30,mt:.5},children:function(e){switch(e){case"image":return(0,a.jsx)(nJ.A,{fontSize:"small",sx:{color:"#009688"}});case"audio":return(0,a.jsx)(nV.A,{fontSize:"small",sx:{color:"#009688"}});case"link":return(0,a.jsx)(nX.A,{fontSize:"small",sx:{color:"#009688"}});default:return(0,a.jsx)(nK.A,{fontSize:"small",sx:{color:"#009688"}})}}(e.kind)}),(0,a.jsx)(G.A,{primary:(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.5,flexWrap:"wrap"},children:[(0,a.jsx)(p.A,{variant:"body2",sx:{fontWeight:500},children:e.name??`${e.kind}-${e.id.slice(0,8)}`}),e.mimeType&&(0,a.jsx)(y.A,{label:e.mimeType,size:"small",variant:"outlined",sx:{height:18,fontSize:"0.65rem"}}),e.archive&&(0,a.jsx)(y.A,{label:"page"===e.archive.role?n("chat.resources.archivePage",{page:(e.archive.pageIndex??0)+1,total:e.archive.pageCount??"?"}):n("chat.resources.archiveSource"),size:"small",color:"info",variant:"outlined",sx:{height:18,fontSize:"0.65rem"}}),(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:(t=e.size)<1024?`${o(t)} B`:t<1048576?`${o(Math.round(t/1024))} KB`:`${o(t/1048576,{maximumFractionDigits:1})} MB`})]}),secondary:(0,a.jsxs)(p.A,{variant:"caption",color:"text.secondary",component:"span",sx:{wordBreak:"break-all"},children:[n("chat.resources.by",{producer:(e=>{let t=e.producedBy;switch(t.source){case"tool-result":return n("chat.resources.producer.toolResult",{server:t.server??"?",tool:t.toolName??"?"});case"tool-args":return n("chat.resources.producer.toolArgs",{server:t.server??"?",tool:t.toolName??"?"});case"capture":return n("chat.resources.producer.step",{step:t.nodeName??t.nodeId??"?"});case"mcp-link":return n("chat.resources.producer.link",{server:t.server??"?"});case"visual-archive":return n("chat.resources.producer.archive");default:return n("chat.resources.producer.run")}})(e)}),e.readBy.length>0?` \xb7 ${n("chat.resources.read",{count:e.readBy.length})}`:"",(e.verifications?.length??0)>0?` \xb7 ${n("chat.resources.verified",{ok:e.verifications.filter(e=>e.ok).length,total:e.verifications.length})}`:"",e.sha256?` \xb7 sha256 ${e.sha256.slice(0,12)}…`:""," \xb7 ",e.uri]})})]},e.id)})})},nQ=(0,nT.h)("frontend/components/Chat/DebuggerCanvas"),nZ={start:nM.vm,process:nM.Uw,finish:nM.IK,mcp:nM.v2,subflow:nM.lA,resource:nM.z9},n0={custom:nE.jY,mcpEdge:nE.oY,resourceEdge:nE.sZ},n1=[];function n2(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}let n5=["tracker","detail"],n4="flujo-debugger-section-order",n6="flujo-debugger-section-visible",n3="flujo-debugger-detail-width",n7=(0,nC.Ay)(tv.A)(({theme:e})=>({display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",padding:e.spacing(1)})),n9=(0,nC.Ay)(c.default)(({theme:e})=>({padding:e.spacing(1,2),borderBottom:`1px solid ${e.palette.divider}`})),n8=(0,nC.Ay)(c.default)({flexGrow:1,display:"flex",overflow:"hidden",minHeight:0}),ae=(0,nC.Ay)(c.default)(({theme:e})=>({width:"200px",flexShrink:0,borderRight:`1px solid ${e.palette.divider}`,overflowY:"auto",padding:e.spacing(1)})),at=(0,nC.Ay)(c.default)({flexGrow:1,position:"relative",height:"100%"}),an=(0,nC.Ay)(c.default)(({theme:e})=>({padding:e.spacing(1,2),borderTop:`1px solid ${e.palette.divider}`,display:"flex",gap:e.spacing(1),justifyContent:"center"})),aa=(0,nC.Ay)(c.default)(({theme:e})=>({width:"6px",flexShrink:0,cursor:"col-resize",backgroundColor:e.palette.divider,transition:"background-color 120ms",touchAction:"none","&:hover":{backgroundColor:e.palette.primary.main}})),ar=({debugState:e,conversationId:t,onStep:n,onContinue:o,onCancel:s,isLoading:i,breakpoints:l,onToggleBreakpoint:d,onSetBreakpoints:x,onClose:v,isExpanded:b,onToggleExpand:w,liveActivity:j,executionEvents:A=n1,onStepSelectionChange:k})=>{let S=(0,C.A)(),{t:I,tp:$,formatDate:z}=(0,eW.s9)(),T={tracker:I("chat.debug.section.tracker"),detail:I("chat.debug.section.detail")},[M,E]=(0,r.useState)(e.executionTrace&&e.executionTrace.length>0?e.executionTrace.length-1:-1),[R,N]=(0,r.useState)(()=>(function(){try{let e=JSON.parse(window.localStorage.getItem(n4)||"null");if(Array.isArray(e)){let t=e.filter(e=>n5.includes(e)),n=n5.filter(e=>!t.includes(e));if(t.length+n.length===n5.length)return[...t,...n]}}catch{}return[...n5]})()),[W,P]=(0,r.useState)(()=>(function(){let e={tracker:!0,detail:!0};try{let t=JSON.parse(window.localStorage.getItem(n6)||"null");if(t&&"object"==typeof t)for(let n of n5)"boolean"==typeof t[n]&&(e[n]=t[n])}catch{}return e})()),[F,_]=(0,r.useState)(()=>{let e;return Number.isFinite(e=Number(window.localStorage.getItem(n3)))&&e>=240?e:320}),q=(0,r.useMemo)(()=>(function(e,t){let n={key:nN,parentKey:null,flowId:e,displayName:"Root flow",depth:0,status:"active",startedSeq:0,nodeActivity:{}},a={rootKey:n.key,activeFrameKey:n.key,frames:{[n.key]:n},order:[n.key]};for(let e of t){let t=nW(e);if(t<0||t>8)continue;if("run:start"===e.type){a.activeFrameKey=n.key;continue}if("subflow:start"===e.type){if(!e.subflowId||t<=0)continue;let n=nD(a,e,t),r=null==e.laneIndex?"":`:lane-${e.laneIndex}`,o=`${n.key}:${e.node?.nodeId??"subflow"}:${e.subflowId}${r}:seq-${e.seq}`,s={key:o,parentKey:n.key,flowId:e.subflowId,invokingNodeId:e.node?.nodeId,displayName:e.laneTitle||e.subflowName||e.subflowId,depth:t,laneIndex:e.laneIndex,laneCount:e.laneCount,laneTitle:e.laneTitle,status:"active",startedSeq:e.seq,nodeActivity:{}};a.frames[o]=s,a.order.push(o),a.activeFrameKey=o,e.node?.nodeId&&(n.nodeActivity[e.node.nodeId]={kind:"active",ts:e.timestamp});continue}if("subflow:done"===e.type){let r=nO(a,n=>"active"===n.status&&n.depth===t&&n.flowId===e.subflowId&&(e.node?.nodeId==null||n.invokingNodeId===e.node.nodeId)&&nP(n,e));if(!r)continue;r.status=e.status,r.endedSeq=e.seq,a.activeFrameKey=r.parentKey??n.key;let o=a.frames[r.parentKey??n.key];r.invokingNodeId&&o&&(o.nodeActivity[r.invokingNodeId]={kind:"active",ts:e.timestamp});continue}let r=nF(a,e);a.activeFrameKey=r.key;let o=n_(e);o&&(r.nodeActivity[o]={kind:nq(e),ts:e.timestamp})}return a})(e.flowId??"",A),[e.flowId,A]),[H,L]=(0,r.useState)(nN),[U,K]=(0,r.useState)({}),J=(0,r.useRef)(new Set),Y=(0,r.useRef)(0),[Q,Z,ee]=(0,n$.ck)([]),[en,er,eo]=(0,n$.fM)([]);(0,r.useEffect)(()=>{window.localStorage.setItem(n4,JSON.stringify(R))},[R]),(0,r.useEffect)(()=>{window.localStorage.setItem(n6,JSON.stringify(W))},[W]),(0,r.useEffect)(()=>{window.localStorage.setItem(n3,String(Math.round(F)))},[F]),(0,r.useEffect)(()=>{let t=e.executionTrace?.length||0;t>0?(E(e=>Math.min(e,t-1)),M<t-1&&E(t-1)):E(-1)},[e.executionTrace]),(0,r.useEffect)(()=>{k?.(M)},[M,k]),(0,r.useEffect)(()=>{L(q.activeFrameKey)},[q.activeFrameKey,A.length]);let es=(0,r.useMemo)(()=>Array.from(new Set(q.order.map(e=>q.frames[e]?.flowId).filter(Boolean))),[q]);(0,r.useEffect)(()=>{Y.current+=1,J.current.clear(),K({}),L(nN)},[t,e.flowId]),(0,r.useEffect)(()=>{let e=Y.current;for(let t of es)!t||J.current.has(t)||(J.current.add(t),K(e=>({...e,[t]:{status:"loading"}})),nz.g.getFlow(t).then(n=>{Y.current===e&&K(e=>({...e,[t]:n?{status:"ready",flow:n}:{status:"missing"}}))}).catch(n=>{if(Y.current!==e)return;let a=n instanceof Error?n.message:I("chat.debug.loadFlowFailed",{id:t});nQ.error("Error loading debugger flow definition:",n),K(e=>({...e,[t]:{status:"error",message:a}}))}))},[t,e.flowId,es,I]);let ei=q.frames[H]??q.frames[q.activeFrameKey]??q.frames[nN],ed=U[ei.flowId],ec=ei;for(;U[ec.flowId]?.status!=="ready"&&ec.parentKey;)ec=q.frames[ec.parentKey]??q.frames[nN];let eu=U[ec.flowId],eh=eu?.status==="ready"?eu.flow:null,ep=U[e.flowId??""],em=!!e.flowId&&!eh&&(!ep||"loading"===ep.status),eg=e.flowId?ep?.status==="missing"?I("chat.debug.flowNotFound",{id:e.flowId}):ep?.status==="error"?ep.message:null:I("chat.debug.flowMissingId"),ef=ei.key!==nN&&ed?.status!=="ready"?ed?.status!=="loading"&&ed?I("chat.debug.childUnavailable",{agent:ei.displayName}):I("chat.debug.loadingChild",{agent:ei.displayName}):null;(0,r.useEffect)(()=>{if(!eh){Z([]),er([]);return}nQ.debug(`Setting debugger graph for flow ${eh.id}`),Z(eh.nodes.map(e=>({...e,draggable:!1,selectable:!1,connectable:!1}))),er(eh.edges.map(e=>({...e,selectable:!1})))},[eh,Z,er]);let ex=(0,r.useCallback)(()=>{if(nQ.debug(`Previous button clicked. Current index: ${M}`),M>0){let e=M-1;nQ.debug(`Setting current step index to: ${e}`),E(e)}else nQ.debug("Already at the first step, cannot go previous.")},[M]),ev=(0,r.useCallback)(()=>{if(nQ.debug(`Next button clicked. Current index: ${M}, Trace length: ${e.executionTrace?.length}`),e.executionTrace&&M<e.executionTrace.length-1){let e=M+1;nQ.debug(`Navigating to next trace step: ${e}`),E(e)}else nQ.info("At end of trace, triggering API call for next step."),n()},[M,e.executionTrace,n]),ey=(0,r.useMemo)(()=>{if(e.executionTrace&&M>=0&&M<e.executionTrace.length)return e.executionTrace[M]},[e.executionTrace,M]),eb=ey?.execResultSnapshot&&"object"==typeof ey.execResultSnapshot?ey.execResultSnapshot:void 0,ew=e.debugBoundary,ej=ew?.phase==="before"?S.palette.warning.main:S.palette.success.main,eA=(e,t)=>I(`chat.debug.boundary.${e}`,{operation:I(`chat.debug.boundary.operation.${t}`)}),ek=ew?ew.previousOperation?I("chat.debug.boundary.transition",{from:eA("after",ew.previousOperation),to:eA("before",ew.operation)}):ew.nextOperation?I("chat.debug.boundary.transition",{from:eA("after",ew.operation),to:eA("before",ew.nextOperation)}):eA(ew.phase,ew.operation):"",eS=(0,r.useMemo)(()=>(function(e,t){if(!e)return new Set;if(e.edgeId)return new Set(t.some(t=>t.id===e.edgeId)?[e.edgeId]:[]);if("tool"!==e.operation||!e.toolNodeIds?.length)return new Set;let n=new Set(e.toolNodeIds);return new Set(t.filter(t=>{let a=!e.nodeId||t.source===e.nodeId||t.target===e.nodeId,r=n.has(t.source)||n.has(t.target);return a&&r}).map(e=>e.id))})(ew,en),[ew,en]),eI=(0,r.useMemo)(()=>en.filter(e=>eS.has(e.id)),[en,eS]),eC=(0,r.useMemo)(()=>en.map(e=>ew&&eS.has(e.id)?{...e,data:{...e.data??{},debuggerActivity:{phase:ew.phase,operation:ew.operation}}}:e),[en,ew,eS]),e$=(0,r.useMemo)(()=>{let e={};for(let t of eI)for(let n of[{nodeId:t.source,handleId:t.sourceHandle},{nodeId:t.target,handleId:t.targetHandle}]){if(!n.handleId)continue;let t=n2(n.nodeId),a=n2(n.handleId);e[`& .react-flow__node[data-id="${t}"] [data-handleid="${a}"]`]={backgroundColor:ej,borderColor:S.palette.background.paper,boxShadow:`0 0 0 4px ${(0,eN.X4)(ej,.24)}, 0 0 14px ${ej}`,transform:"scale(1.28)",transition:"transform 140ms ease, box-shadow 140ms ease",zIndex:20}}return e},[eI,ej,S.palette.background.paper]),[ez,eT]=(0,r.useState)(()=>Date.now());(0,r.useEffect)(()=>{eT(Date.now())},[A.length]),(0,r.useEffect)(()=>{if(!j)return;let e=()=>{let e=Date.now();return[...Object.values(j.byNode),...Object.values(j.byResource),...Object.values(j.byResourceName)].some(t=>e-t.ts<4e3)};if(!e())return;let t=setInterval(()=>{eT(Date.now()),e()||clearInterval(t)},350);return()=>clearInterval(t)},[j]);let eM=(0,r.useCallback)(e=>{var t,n;let a=ec.nodeActivity[e.id];if(a&&ez-a.ts<4e3)return a;if(ec.key!==nN||!j)return null;let r=j.byNode[e.id];if(r&&ez-r.ts<4e3)return r;let o=e.data;if((o?.type??e.type)!=="resource")return null;let s=o?.properties??{},i="run"===s.scope?"string"==typeof s.runName?j.byResourceName[s.runName]:void 0:"string"==typeof s.boundServer&&"string"==typeof s.uri?j.byResource[t=s.boundServer,n=s.uri,`${t} ${n}`]:void 0;return i&&ez-i.ts<4e3?{kind:"read"===i.kind?"resource-read":"resource-write",ts:i.ts}:null},[ec,j,ez]),eE=(0,r.useCallback)(e=>{if(ec.key!==nN)return null;let t="string"==typeof e.data?.type?e.data.type:e.type;return"mcp"===t?`${nH}${e.id}`:"resource"===t||"trigger"===t?null:e.id},[ec.key]),eR=(0,r.useMemo)(()=>{let e=ec.key===nN?ey?.nodeId:void 0;return Q.map(t=>{let n=t.id===e,a=ec.key===nN&&!!ew&&(t.id===ew.nodeId||t.id===ew.targetNodeId),r=eE(t),o=!!r&&!!l?.includes(r),s=n||a?null:eM(t),i=s?Math.max(.25,1-(ez-s.ts)/4e3):0,d=s?.kind==="active"?S.palette.primary.main:"#009688";return{...t,className:[t.className,o?"flujo-breakpoint":null,a?`flujo-debug-boundary flujo-debug-${ew?.phase}`:null].filter(Boolean).join(" ")||void 0,style:{...t.style,border:a?`3px solid ${ej}`:n?`2px solid ${S.palette.warning.main}`:s?`2px solid ${d}`:t.style?.border,boxShadow:a?`0 0 0 5px ${(0,eN.X4)(ej,.18)}, 0 0 16px ${ej}`:n?`0 0 10px ${S.palette.warning.light}`:s?`0 0 ${"resource-write"===s.kind?14:10}px ${d}${Math.round(255*i).toString(16).padStart(2,"0")}`:void 0}}})},[Q,ec.key,ey,ew,ej,l,S,eM,ez,eE]),[eP,eO]=(0,r.useState)(null),eD=(0,r.useCallback)(()=>eO(null),[]),eF=l??[],e_=eF.includes(nL),eq=(0,r.useCallback)((e,t)=>{e.preventDefault();let n="string"==typeof t.data?.label?t.data.label:t.id,a=eE(t);eO({x:e.clientX,y:e.clientY,...a?{breakpointKey:a}:{},nodeLabel:n,...!a?{unavailableReason:ec.key===nN?I("chat.debug.breakpointPassiveNode"):I("chat.debug.breakpointChildRun")}:{}})},[eE,ec.key,I]),eB=(0,r.useCallback)(e=>{e.preventDefault(),eO({x:e.clientX,y:e.clientY})},[]),eH=(0,r.useCallback)(()=>{x&&(x(e_?eF.filter(e=>e!==nL):[...eF,nL]),eD())},[x,e_,eF,eD]),eL=(0,r.useCallback)(()=>{x?.([]),eD()},[x,eD]),eU=(0,r.useMemo)(()=>(function(e,t){let n=[],a=new Set,r=e.frames[t];for(;r&&!a.has(r.key)&&n.length<=8;)n.unshift(r),a.add(r.key),r=r.parentKey?e.frames[r.parentKey]:void 0;return n})(q,ei.key),[q,ei.key]),eJ=(0,r.useCallback)(e=>{let t=U[e.flowId],n=e.key===nN&&t?.status==="ready"?t.flow.name:e.displayName;return null==e.laneIndex?n:`${n} \xb7 lane ${e.laneIndex+1}`},[U]),eV=(0,r.useMemo)(()=>R.filter(e=>W[e]),[R,W]),eX=(0,r.useCallback)(e=>{P(t=>({...t,[e]:!t[e]}))},[]),eG=(0,r.useCallback)((e,t)=>{N(n=>{let a=n.indexOf(e),r=a+t;if(a<0||r<0||r>=n.length)return n;let o=[...n];return[o[a],o[r]]=[o[r],o[a]],o})},[]),eY=(0,r.useCallback)((e,t)=>{t.preventDefault();let n=t.clientX,a=document.body.style.userSelect,r=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";let o=t=>{_(Math.min(Math.max(F+e*(t.clientX-n),240),1100))},s=()=>{window.removeEventListener("pointermove",o),window.removeEventListener("pointerup",s),document.body.style.userSelect=a,document.body.style.cursor=r};window.addEventListener("pointermove",o),window.addEventListener("pointerup",s)},[F]),eQ={tracker:(0,a.jsxs)(c.default,{sx:{flexGrow:1,display:"flex",overflow:"hidden",minHeight:0},children:[(0,a.jsxs)(ae,{children:[(0,a.jsx)(p.A,{variant:"caption",color:"textSecondary",gutterBottom:!0,sx:{display:"block"},children:I("chat.debug.executionTrace")}),(0,a.jsxs)(ea.A,{dense:!0,disablePadding:!0,children:[e.executionTrace?.map((t,n)=>(0,a.jsx)(V.Ay,{disablePadding:!0,children:(0,a.jsx)(X.A,{selected:n===M,onClick:()=>{e.executionTrace&&n>=0&&n<e.executionTrace.length?(nQ.debug(`Trace step selected: ${n}`),E(n)):nQ.warn(`Invalid step index selected: ${n}`)},children:(0,a.jsx)(G.A,{primary:`${t.stepIndex}: ${t.nodeName||t.nodeId}`,secondary:t.nodeType})})},t.stepIndex)),ew&&(0,a.jsx)(V.Ay,{disablePadding:!0,"data-testid":"debug-boundary-row",children:(0,a.jsx)(X.A,{selected:!0,disableRipple:!0,sx:{cursor:"default",borderLeft:`3px solid ${ej}`,bgcolor:(0,eN.X4)(ej,.1)},children:(0,a.jsx)(G.A,{primary:`B${ew.index}: ${ek}`,secondary:ew.targetNodeId?`${ew.nodeId??"?"} → ${ew.targetNodeId}`:ew.nodeId})})}),i&&(0,a.jsx)(V.Ay,{children:(0,a.jsx)(h.default,{size:20,sx:{margin:"auto"}})})]})]}),(0,a.jsx)(at,{children:(0,a.jsxs)(c.default,{sx:{height:"100%",minHeight:0,display:"flex",flexDirection:"column"},children:[(0,a.jsxs)(c.default,{sx:{px:1,py:.5,borderBottom:`1px solid ${S.palette.divider}`,flexShrink:0},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.25,overflowX:"auto"},children:[ei.parentKey&&(0,a.jsx)(g.A,{title:I("chat.debug.backToParent"),children:(0,a.jsx)(f.A,{size:"small",onClick:()=>L(ei.parentKey??nN),"aria-label":I("chat.debug.backToParent"),children:(0,a.jsx)(O.A,{fontSize:"small"})})}),eU.map((e,t)=>(0,a.jsxs)(r.Fragment,{children:[t>0&&(0,a.jsx)(D.A,{color:"disabled",fontSize:"small"}),(0,a.jsx)(u.A,{size:"small",variant:e.key===ei.key?"contained":"text",onClick:()=>L(e.key),sx:{minWidth:0,whiteSpace:"nowrap",textTransform:"none"},children:eJ(e)})]},e.key))]}),q.order.length>1&&(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.5,mt:.25,overflowX:"auto"},children:[(0,a.jsx)(p.A,{variant:"caption",color:"textSecondary",sx:{flexShrink:0},children:I("chat.debug.frames")}),q.order.slice(1).map(e=>{let t=q.frames[e];return(0,a.jsxs)(u.A,{size:"small",variant:t.key===ei.key?"outlined":"text",color:"error"===t.status?"error":"inherit",onClick:()=>L(t.key),sx:{minWidth:0,py:0,whiteSpace:"nowrap",textTransform:"none",fontSize:"0.7rem"},children:[eJ(t)," \xb7 ",t.status]},e)})]})]}),ef&&(0,a.jsx)(m.A,{severity:ed?.status!=="loading"&&ed?"warning":"info",sx:{m:1,mb:0,py:0,flexShrink:0},children:ef}),(0,a.jsxs)(c.default,{sx:{flexGrow:1,minHeight:0,position:"relative","& .react-flow__node.flujo-breakpoint":{outline:`3px solid ${S.palette.error.main}`,outlineOffset:"2px",borderRadius:"8px",boxShadow:`0 0 0 7px ${(0,eN.X4)(S.palette.error.main,.16)}, 0 0 14px ${(0,eN.X4)(S.palette.error.main,.5)}`},"& .react-flow__node.flujo-breakpoint::before":{content:'""',position:"absolute",top:"-11px",left:"-11px",width:"16px",height:"16px",borderRadius:"50%",backgroundColor:S.palette.error.main,border:`2px solid ${S.palette.background.paper}`,boxShadow:`0 0 8px ${S.palette.error.main}`,zIndex:12,pointerEvents:"none"},...e$},onContextMenu:e=>{e.target.closest(".react-flow__node")||eB(e)},children:[em?(0,a.jsx)(c.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"},children:(0,a.jsx)(h.default,{})}):eg?(0,a.jsx)(m.A,{severity:"error",sx:{margin:2},children:eg}):(0,a.jsx)(n$.Ln,{children:(0,a.jsx)(n$.Gc,{nodes:eR,edges:eC,onNodesChange:ee,onEdgesChange:eo,nodeTypes:nZ,edgeTypes:n0,fitView:!0,attributionPosition:"bottom-right",nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!1,panOnDrag:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!1,onNodeClick:(e,t)=>{e.preventDefault();let n=eE(t);d&&n&&d(n)},onNodeContextMenu:eq,onPaneContextMenu:eB,onEdgeClick:e=>e.preventDefault(),onPaneClick:()=>{}})}),(0,a.jsxs)(ts.A,{open:!!eP,onClose:eD,anchorReference:"anchorPosition",anchorPosition:eP?{top:eP.y,left:eP.x}:void 0,children:[eP?.nodeLabel&&(0,a.jsxs)(et.A,{onClick:()=>{eP.breakpointKey&&d?.(eP.breakpointKey),eD()},disabled:!d||!eP.breakpointKey,children:[(0,a.jsx)(eK.A,{children:eP.breakpointKey&&eF.includes(eP.breakpointKey)?(0,a.jsx)(nk.A,{fontSize:"small",color:"error"}):(0,a.jsx)(nA.A,{fontSize:"small",color:eP.breakpointKey?"error":"disabled"})}),(0,a.jsx)(G.A,{primary:eP.breakpointKey&&eF.includes(eP.breakpointKey)?I("chat.debug.menu.removeBreakpoint"):I("chat.debug.menu.addBreakpoint"),secondary:eP.unavailableReason||eP.nodeLabel})]}),(0,a.jsxs)(et.A,{onClick:eH,disabled:!x,children:[(0,a.jsx)(eK.A,{children:(0,a.jsx)(nI.A,{fontSize:"small",color:e_?"error":"inherit"})}),(0,a.jsx)(G.A,{primary:e_?I("chat.debug.menu.toolBreakpointOff"):I("chat.debug.menu.toolBreakpointOn"),secondary:I("chat.debug.menu.toolBreakpointHelp")})]}),(0,a.jsxs)(et.A,{onClick:eL,disabled:!x||0===eF.length,children:[(0,a.jsx)(eK.A,{children:(0,a.jsx)(nS.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:I("chat.debug.menu.clearAll")})]})]})]})]})})]}),detail:(0,a.jsxs)(c.default,{sx:{flexGrow:1,overflowY:"auto",minHeight:0,p:2},children:[ew&&(0,a.jsxs)(c.default,{"data-testid":"debug-boundary-detail",sx:{mb:2*!!ey},children:[(0,a.jsx)(m.A,{severity:"before"===ew.phase?"warning":"success",variant:"outlined",sx:{alignItems:"flex-start"},children:(0,a.jsxs)(c.default,{sx:{display:"flex",flexDirection:"column",gap:.5,minWidth:0},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.75,flexWrap:"wrap"},children:[(0,a.jsx)(y.A,{size:"small",color:"before"===ew.phase?"warning":"success",label:ew.phase.toUpperCase()}),(0,a.jsx)(p.A,{variant:"subtitle2",children:ek})]}),ew.edgeId&&(0,a.jsxs)(p.A,{variant:"caption",sx:{wordBreak:"break-all"},children:[I("chat.debug.boundary.edge"),": ",ew.edgeId]}),(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:ew.targetNodeId?`${ew.nodeId??"?"} → ${ew.targetNodeId}`:ew.nodeId??I("chat.debug.boundary.noNode")}),(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:I("chat.debug.boundary.conversationCount",{count:ew.stateSnapshot.messageCount})})]})}),!!ew.toolCalls?.length&&(0,a.jsxs)(nf.A,{defaultExpanded:!0,sx:{mt:1,boxShadow:"none","&:before":{display:"none"}},children:[(0,a.jsx)(nx.A,{expandIcon:(0,a.jsx)(el.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,a.jsx)(p.A,{variant:"caption",children:I("chat.debug.boundary.parameters")})}),(0,a.jsx)(nv.A,{sx:{p:0,display:"flex",flexDirection:"column",gap:1},children:ew.toolCalls.map(e=>(0,a.jsxs)(c.default,{sx:{minWidth:0},children:[(0,a.jsx)(p.A,{variant:"caption",sx:{fontWeight:700,wordBreak:"break-all"},children:e.function.name}),(0,a.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"180px",overflowY:"auto",background:"var(--surface-raised)",color:"var(--foreground)",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:function(e){try{return JSON.stringify(JSON.parse(e||"{}"),null,2)}catch{return e}}(e.function.arguments)})]},e.id))})]}),ew.modelInput&&(0,a.jsxs)(nf.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,a.jsx)(nx.A,{expandIcon:(0,a.jsx)(el.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,a.jsx)(p.A,{variant:"caption",children:I("chat.debug.boundary.modelInput")})}),(0,a.jsx)(nv.A,{sx:{p:0},children:(0,a.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"260px",overflowY:"auto",background:"var(--surface-raised)",color:"var(--foreground)",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(ew.modelInput,null,2)})})]}),(0,a.jsxs)(nf.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,a.jsx)(nx.A,{expandIcon:(0,a.jsx)(el.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,a.jsx)(p.A,{variant:"caption",children:I("chat.debug.boundary.state")})}),(0,a.jsx)(nv.A,{sx:{p:0},children:(0,a.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"220px",overflowY:"auto",background:"var(--surface-raised)",color:"var(--foreground)",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(ew.stateSnapshot,null,2)})})]})]}),ey?(0,a.jsxs)(c.default,{children:[(0,a.jsxs)(p.A,{variant:"body2",children:[(0,a.jsx)("b",{children:I("chat.debug.node")})," ",ey.nodeName," (",ey.nodeId,")"]}),(0,a.jsxs)(p.A,{variant:"body2",children:[(0,a.jsx)("b",{children:I("chat.debug.type")})," ",ey.nodeType]}),(0,a.jsxs)(p.A,{variant:"body2",children:[(0,a.jsx)("b",{children:I("chat.debug.timestamp")})," ",z(new Date(ey.timestamp),{dateStyle:"medium",timeStyle:"medium"})]}),(0,a.jsxs)(p.A,{variant:"body2",children:[(0,a.jsx)("b",{children:I("chat.debug.actionTaken")})," ",ey.actionTaken]}),(0,a.jsxs)(nf.A,{sx:{mt:2,boxShadow:"none","&:before":{display:"none"}},children:[(0,a.jsx)(nx.A,{expandIcon:(0,a.jsx)(el.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,a.jsx)(p.A,{variant:"caption",children:I("chat.debug.prepResult")})}),(0,a.jsx)(nv.A,{sx:{p:0},children:(0,a.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"200px",overflowY:"auto",background:"var(--surface-raised)",color:"var(--foreground)",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(ey.prepResultSnapshot,null,2)})})]}),(0,a.jsxs)(nf.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,a.jsx)(nx.A,{expandIcon:(0,a.jsx)(el.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,a.jsx)(p.A,{variant:"caption",color:eb?.success===!1?"error":"inherit",children:eb?.success===!1?I("chat.debug.execResultError"):I("chat.debug.execResult")})}),(0,a.jsx)(nv.A,{sx:{p:0},children:eb?.success===!1?(0,a.jsxs)(c.default,{sx:{p:1,background:S.palette.error.light,borderRadius:1},children:[(0,a.jsxs)(p.A,{variant:"body2",color:"error",gutterBottom:!0,children:[(0,a.jsx)("b",{children:I("chat.debug.error")})," ","string"==typeof eb.error?eb.error:I("chat.debug.unknownError")]}),void 0!==eb.errorDetails&&(0,a.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"150px",overflowY:"auto",background:"var(--surface-raised)",color:"var(--foreground)",padding:"4px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(eb.errorDetails,null,2)})]}):(0,a.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"200px",overflowY:"auto",background:"var(--surface-raised)",color:"var(--foreground)",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(ey.execResultSnapshot,null,2)})})]}),(0,a.jsxs)(nf.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,a.jsx)(nx.A,{expandIcon:(0,a.jsx)(el.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,a.jsx)(p.A,{variant:"caption",children:I("chat.debug.stateBefore")})}),(0,a.jsx)(nv.A,{sx:{p:0},children:(0,a.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"200px",overflowY:"auto",background:"var(--surface-raised)",color:"var(--foreground)",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(ey.stateBefore,null,2)})})]}),(0,a.jsxs)(nf.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,a.jsx)(nx.A,{expandIcon:(0,a.jsx)(el.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,a.jsx)(p.A,{variant:"caption",children:I("chat.debug.stateAfter")})}),(0,a.jsx)(nv.A,{sx:{p:0},children:(0,a.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"200px",overflowY:"auto",background:"var(--surface-raised)",color:"var(--foreground)",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(ey.stateAfter,null,2)})})]})]}):ew?null:(0,a.jsx)(p.A,{variant:"body2",color:"textSecondary",children:I("chat.debug.selectStep")}),(0,a.jsxs)(nf.A,{defaultExpanded:!0,sx:{mt:2,boxShadow:"none","&:before":{display:"none"}},children:[(0,a.jsx)(nx.A,{expandIcon:(0,a.jsx)(el.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,a.jsx)(p.A,{variant:"caption",children:I("chat.debug.runData")})}),(0,a.jsx)(nv.A,{sx:{p:0},children:(0,a.jsx)(nY,{conversationId:t,refreshToken:j?.resourceVersion})})]})]})};return(0,a.jsxs)(n7,{elevation:2,children:[(0,a.jsxs)(n9,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"space-between"},children:[(0,a.jsxs)(c.default,{children:[(0,a.jsx)(p.A,{variant:"h6",children:I("chat.debug.title")}),(0,a.jsxs)(p.A,{variant:"caption",color:"textSecondary",sx:{display:"block"},children:[I("chat.debug.breakpointHelp"),eF.length>0?` \xb7 ${$("chat.debug.activeBreakpoints",eF.length)}`:""]}),eF.length>0&&(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.5,mt:.5,flexWrap:"wrap"},children:[nU(eF).length>0&&(0,a.jsx)(y.A,{size:"small",variant:"outlined",color:"error",icon:(0,a.jsx)(nA.A,{}),label:$("chat.debug.nodeBreakpoints",nU(eF).length)}),(eF??[]).filter(e=>e.startsWith(nB)).map(e=>e.slice(nB.length)).map(e=>(0,a.jsx)(y.A,{size:"small",variant:"outlined",color:"error",icon:(0,a.jsx)(nI.A,{}),label:"*"===e?I("chat.debug.anyToolBreakpoint"):e,onDelete:x?()=>x(eF.filter(t=>t!==`tool:${e}`)):void 0},e)),(eF??[]).filter(e=>e.startsWith(nH)).map(e=>e.slice(nH.length)).map(e=>(0,a.jsx)(y.A,{size:"small",variant:"outlined",color:"error",icon:(0,a.jsx)(nI.A,{}),label:I("chat.debug.toolNodeBreakpoint",{id:e.slice(0,8)}),onDelete:x?()=>x(eF.filter(t=>t!==`${nH}${e}`)):void 0},`tool-node:${e}`))]})]}),(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,a.jsx)(g.A,{title:W.tracker?I("chat.debug.hideSection",{section:T.tracker}):I("chat.debug.showSection",{section:T.tracker}),children:(0,a.jsx)(f.A,{size:"small",onClick:()=>eX("tracker"),color:W.tracker?"primary":"default","aria-label":W.tracker?I("chat.debug.hideSection",{section:T.tracker}):I("chat.debug.showSection",{section:T.tracker}),children:(0,a.jsx)(B.A,{fontSize:"small"})})}),(0,a.jsx)(g.A,{title:W.detail?I("chat.debug.hideSection",{section:T.detail}):I("chat.debug.showSection",{section:T.detail}),children:(0,a.jsx)(f.A,{size:"small",onClick:()=>eX("detail"),color:W.detail?"primary":"default","aria-label":W.detail?I("chat.debug.hideSection",{section:T.detail}):I("chat.debug.showSection",{section:T.detail}),children:(0,a.jsx)(nj.A,{fontSize:"small"})})}),w&&(0,a.jsx)(g.A,{title:b?I("chat.debug.exitFullscreen"):I("chat.debug.enterFullscreen"),children:(0,a.jsx)(f.A,{size:"small",onClick:w,"aria-label":b?I("chat.debug.exitFullscreen"):I("chat.debug.enterFullscreen"),children:b?(0,a.jsx)(nw.A,{fontSize:"small"}):(0,a.jsx)(nb.A,{fontSize:"small"})})}),v&&(0,a.jsx)(g.A,{title:I("chat.debug.close"),children:(0,a.jsx)(f.A,{size:"small",onClick:v,"aria-label":I("chat.debug.close"),children:(0,a.jsx)(ny.A,{fontSize:"small"})})})]})]}),(0,a.jsx)(n8,{children:0===eV.length?(0,a.jsx)(c.default,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",p:3},children:(0,a.jsx)(p.A,{variant:"body2",color:"textSecondary",children:I("chat.debug.allHidden")})}):eV.map((e,t)=>{var n;let o,s,i,l;return(0,a.jsxs)(r.Fragment,{children:[(s=(o="detail"===e)?F:void 0,(0,a.jsxs)(c.default,{sx:{...o?{width:s,flexShrink:0}:{flexGrow:1,minWidth:300},display:"flex",flexDirection:"column",overflow:"hidden",minHeight:0},children:[(i=eV.indexOf(e),(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:1,py:.5,borderBottom:`1px solid ${S.palette.divider}`},children:[(0,a.jsx)(p.A,{variant:"subtitle2",noWrap:!0,children:T[e]}),(0,a.jsxs)(c.default,{sx:{display:"flex"},children:[(0,a.jsx)(g.A,{title:I("chat.debug.moveLeft",{section:T[e]}),children:(0,a.jsx)("span",{children:(0,a.jsx)(f.A,{size:"small",onClick:()=>eG(e,-1),disabled:i<=0,"aria-label":I("chat.debug.moveLeft",{section:T[e]}),children:(0,a.jsx)(O.A,{fontSize:"small"})})})}),(0,a.jsx)(g.A,{title:I("chat.debug.moveRight",{section:T[e]}),children:(0,a.jsx)("span",{children:(0,a.jsx)(f.A,{size:"small",onClick:()=>eG(e,1),disabled:i<0||i>=eV.length-1,"aria-label":I("chat.debug.moveRight",{section:T[e]}),children:(0,a.jsx)(D.A,{fontSize:"small"})})})}),(0,a.jsx)(g.A,{title:I("chat.debug.hideSection",{section:T[e]}),children:(0,a.jsx)(f.A,{size:"small",onClick:()=>eX(e),"aria-label":I("chat.debug.hideSection",{section:T[e]}),children:(0,a.jsx)(ny.A,{fontSize:"small"})})})]})]})),eQ[e]]},e)),t<eV.length-1&&(n=eV[t+1],l="tracker"!==e?1:-1,(0,a.jsx)(aa,{onPointerDown:e=>eY(l,e),"aria-label":I("chat.debug.resizeSection",{section:T.detail})},`resizer-${e}-${n}`))]},e)})}),(0,a.jsxs)(an,{children:[(0,a.jsx)(u.A,{variant:"outlined",size:"small",onClick:ex,disabled:i||M<=0,children:I("chat.debug.previous")}),(0,a.jsx)(u.A,{variant:"contained",size:"small",onClick:ev,disabled:i||-1===M&&!ew,children:e.executionTrace&&M<e.executionTrace.length-1?I("chat.debug.nextTrace"):I("chat.debug.stepNext")}),(0,a.jsx)(u.A,{variant:"contained",color:"secondary",size:"small",onClick:o,disabled:i,children:I("chat.debug.continue")}),(0,a.jsx)(u.A,{variant:"outlined",color:"error",size:"small",onClick:s,disabled:i,children:I("chat.debug.stop")})]})]})},ao={system:{color:"secondary"},sent:{color:"success"},folded:{color:"warning"},"scoped-out":{color:"info"},"handoff-stripped":{color:"default"},summarized:{color:"secondary"},"visually-archived":{color:"primary"},"emergency-stripped":{color:"error"},"content-truncated":{color:"warning"}},as={whiteSpace:"pre-wrap",wordBreak:"break-word",margin:0,fontSize:"0.75rem",fontFamily:"inherit"},ai=({role:e,content:t,toolCallNames:n,status:r,faded:o})=>{let{t:s}=(0,eW.s9)(),i="user"===e?s("chat.messages.you"):"assistant"===e?s("chat.messages.agent"):"tool"===e?s("chat.messages.tool"):"system"===e?s("chat.messages.system"):e,l=r?({system:s("chat.debug.status.system"),sent:s("chat.debug.status.sent"),folded:s("chat.debug.status.folded"),"scoped-out":s("chat.debug.status.scoped"),"handoff-stripped":s("chat.debug.status.handoff"),summarized:s("chat.debug.status.summarized"),"visually-archived":s("chat.debug.status.visuallyArchived"),"emergency-stripped":s("chat.debug.status.emergencyStripped"),"content-truncated":s("chat.debug.status.contentTruncated")})[r]:"";return(0,a.jsxs)(tv.A,{variant:"outlined",sx:{p:1,mb:.75,opacity:o?.55:1,borderStyle:o?"dashed":"solid"},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.5,mb:.5,flexWrap:"wrap"},children:[(0,a.jsx)(y.A,{size:"small",label:i,color:function(e){switch(e){case"system":return"secondary";case"user":return"primary";case"assistant":return"success";case"tool":return"info";default:return"default"}}(e),variant:"outlined"}),n&&n.length>0&&(0,a.jsx)(y.A,{size:"small",variant:"outlined",label:`🔧 ${n.join(", ")}`,sx:{maxWidth:"100%"}}),r&&"sent"!==r&&"system"!==r&&(0,a.jsx)(y.A,{size:"small",color:ao[r].color,label:l})]}),t.trim().length>0?(0,a.jsx)("pre",{style:as,children:t}):(0,a.jsx)(p.A,{variant:"caption",color:"textSecondary",children:s("chat.debug.noText")})]})},al=({provenance:e})=>{let{t}=(0,eW.s9)();return(0,a.jsxs)(c.default,{children:[(0,a.jsx)(p.A,{variant:"caption",color:"textSecondary",sx:{display:"block",mb:.5},children:t("chat.debug.historyHelp")}),e.map((e,t)=>(0,a.jsx)(ai,{role:e.role,content:e.preview??"",toolCallNames:e.toolCallNames,status:e.status,faded:!["sent","system","content-truncated"].includes(e.status)},e.id??`hist-${t}`)),e.some(e=>"sent"!==e.status&&"system"!==e.status)&&(0,a.jsx)(p.A,{variant:"caption",color:"textSecondary",sx:{display:"block",mt:1},children:t("chat.debug.badgeHelp")})]})},ad=({diagnostic:e})=>{let{t}=(0,eW.s9)();return e?.events.length?(0,a.jsxs)(tv.A,{variant:"outlined",sx:{p:1,mb:1,borderColor:"warning.main"},children:[(0,a.jsx)(p.A,{variant:"caption",sx:{display:"block",fontWeight:700,mb:.5},children:t("chat.debug.contextCompaction")}),e.events.map((e,n)=>(0,a.jsxs)(c.default,{sx:{display:"flex",gap:.5,flexWrap:"wrap",alignItems:"center",mb:.5},children:[(0,a.jsx)(y.A,{size:"small",color:"emergency-refit"===e.kind?"error":"warning",label:e.kind}),void 0!==e.before&&void 0!==e.after&&(0,a.jsx)(y.A,{size:"small",variant:"outlined",label:`${e.before.toLocaleString()} → ${e.after.toLocaleString()} ${e.unit??""}`}),e.omittedMessages?(0,a.jsx)(y.A,{size:"small",variant:"outlined",label:t("chat.debug.omittedMessages",{count:e.omittedMessages})}):null,e.truncatedMessages?(0,a.jsx)(y.A,{size:"small",variant:"outlined",label:t("chat.debug.truncatedMessages",{count:e.truncatedMessages})}):null,(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:e.reason})]},`${e.kind}-${n}`))]}):null},ac=()=>{},au=({modelInput:e,conversationId:t,source:n="historical-request",warnings:o=[]})=>{let{t:s}=(0,eW.s9)(),[i,l]=(0,r.useState)("wire"),{systemMessage:d,wireMessages:u,provenance:h,counts:g,inputMode:f}=e,x=(0,r.useMemo)(()=>(u||[]).filter(e=>"system"!==e.role),[u]);return(0,a.jsxs)(c.default,{sx:{display:"flex",flexDirection:"column",p:1},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.5,flexWrap:"wrap",mb:1},children:[(0,a.jsx)(y.A,{size:"small",color:"current-preview"===n?"warning":"default",label:s("current-preview"===n?"chat.preview.current":"chat.preview.historicalRequest")}),(0,a.jsx)(p.A,{variant:"caption",color:"textSecondary",children:s?[s("chat.debug.summary",{history:g.threaded,sent:g.sent}),g.folded?s("chat.debug.foldedCount",{count:g.folded}):"",g.scopedOut?s("chat.debug.scopedCount",{count:g.scopedOut}):"",g.handoffStripped?s("chat.debug.handoffCount",{count:g.handoffStripped}):"",g.summarized?s("chat.debug.summarizedCount",{count:g.summarized}):"",g.visuallyArchived?s("chat.debug.visuallyArchivedCount",{count:g.visuallyArchived}):"",g.emergencyStripped?s("chat.debug.emergencyStrippedCount",{count:g.emergencyStripped}):"",g.contentTruncated?s("chat.debug.contentTruncatedCount",{count:g.contentTruncated}):""].filter(Boolean).join(" \xb7 "):`${g.threaded} in history → ${g.sent} sent`+(g.folded?` \xb7 ${g.folded} folded`:"")+(g.scopedOut?` \xb7 ${g.scopedOut} scoped out`:"")+(g.handoffStripped?` \xb7 ${g.handoffStripped} handoff-stripped`:"")+(g.summarized?` \xb7 ${g.summarized} summarized`:"")+(g.visuallyArchived?` \xb7 ${g.visuallyArchived} visually archived`:"")+(g.emergencyStripped?` \xb7 ${g.emergencyStripped} emergency-stripped`:"")+(g.contentTruncated?` \xb7 ${g.contentTruncated} content-truncated`:"")}),f&&"full-history"!==f&&(0,a.jsx)(y.A,{size:"small",variant:"outlined",label:`inputMode: ${f}`})]}),o.map((e,t)=>(0,a.jsx)(m.A,{severity:"current_state"===e.code?"info":"warning",variant:"outlined",sx:{mb:1},children:e.message},`${e.code}-${t}`)),(0,a.jsx)(ad,{diagnostic:e.contextCompaction}),e.visualCompaction&&(0,a.jsxs)(m.A,{severity:"image"===e.visualCompaction.route?"warning":"info",variant:"outlined",sx:{mb:1},children:["Visual context route: ",e.visualCompaction.route,e.visualCompaction.candidate?` \xb7 ${e.visualCompaction.candidate.messageCount} old messages evaluated`:"",e.visualCompaction.fallbackReason?` \xb7 ${e.visualCompaction.fallbackReason}`:""]}),(0,a.jsxs)(nf.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,a.jsx)(nx.A,{expandIcon:(0,a.jsx)(el.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,a.jsx)(p.A,{variant:"caption",children:(0,a.jsx)("b",{children:s("chat.debug.systemMessage")})})}),(0,a.jsx)(nv.A,{sx:{p:0},children:d&&d.content.trim().length>0?(0,a.jsx)(tv.A,{variant:"outlined",sx:{p:1,maxHeight:220,overflowY:"auto"},children:(0,a.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",margin:0,fontSize:"0.75rem",fontFamily:"inherit"},children:d.content})}):(0,a.jsx)(p.A,{variant:"caption",color:"textSecondary",children:s("chat.debug.noSystem")})})]}),(0,a.jsxs)(b.A,{size:"small",exclusive:!0,value:i,onChange:(e,t)=>{t&&l(t)},sx:{my:1},children:[(0,a.jsx)(w.A,{value:"wire",children:s("chat.debug.modelView")}),(0,a.jsx)(w.A,{value:"annotated",children:s("chat.debug.fullHistory")})]}),(0,a.jsx)(c.default,{children:"wire"===i?0===x.length?(0,a.jsx)(p.A,{variant:"body2",color:"textSecondary",sx:{p:1},children:s("chat.debug.noConversation")}):(0,a.jsx)(tr.Ay,{messages:x,conversationId:t?`debug-${t}`:void 0,onToggleDisabled:ac,onSplitConversation:ac}):(0,a.jsx)(al,{provenance:h})})]})};var ah=n(2933);let ap=({mode:e,onClose:t,isExpanded:n,onToggleExpand:r})=>{let{t:o}=(0,eW.s9)();return(0,a.jsxs)(tv.A,{elevation:0,square:!0,sx:{height:"100%",display:"flex",flexDirection:"column",minHeight:0,bgcolor:"background.default"},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:1,px:1,py:.5,borderBottom:1,borderColor:"divider",flexShrink:0},children:[(0,a.jsx)(ah.A,{fontSize:"small",color:"primary"}),(0,a.jsx)(p.A,{variant:"subtitle2",sx:{flexGrow:1},children:o("chat.debug.title")}),r&&(0,a.jsx)(g.A,{title:o(n?"chat.debug.exitFullscreen":"chat.debug.enterFullscreen"),children:(0,a.jsx)(f.A,{size:"small",onClick:r,"aria-label":o(n?"chat.debug.exitFullscreen":"chat.debug.enterFullscreen"),children:n?(0,a.jsx)(nw.A,{fontSize:"small"}):(0,a.jsx)(nb.A,{fontSize:"small"})})}),(0,a.jsx)(g.A,{title:o("chat.debug.close"),children:(0,a.jsx)(f.A,{size:"small",onClick:t,"aria-label":o("chat.debug.close"),children:(0,a.jsx)(ny.A,{fontSize:"small"})})})]}),(0,a.jsxs)(c.default,{sx:{flexGrow:1,minHeight:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:2,p:3,textAlign:"center"},"data-testid":"debugger-pending",children:[(0,a.jsx)(h.default,{size:32}),(0,a.jsx)(p.A,{variant:"body2",color:"textSecondary",children:o("attaching"===e?"chat.debug.pendingAttaching":"chat.debug.pendingArmed")}),(0,a.jsx)(p.A,{variant:"caption",color:"textSecondary",sx:{maxWidth:420},children:o("attaching"===e?"chat.debug.pendingAttachingHelp":"chat.debug.pendingArmedHelp")})]}),(0,a.jsxs)(c.default,{sx:{display:"flex",gap:1,p:1,borderTop:1,borderColor:"divider",flexShrink:0},children:[(0,a.jsx)(u.A,{variant:"outlined",size:"small",disabled:!0,children:o("chat.debug.previous")}),(0,a.jsx)(u.A,{variant:"contained",size:"small",disabled:!0,children:o("chat.debug.stepNext")}),(0,a.jsx)(u.A,{variant:"contained",color:"secondary",size:"small",disabled:!0,children:o("chat.debug.continue")})]})]})},am=(0,nT.h)("frontend/components/Chat/ExecutedFlowPanel"),ag={start:nM.vm,process:nM.Uw,finish:nM.IK,mcp:nM.v2,subflow:nM.lA,resource:nM.z9,signal:nM.z3},af={custom:nE.jY,mcpEdge:nE.oY,resourceEdge:nE.sZ},ax=({flowId:e,flowSnapshot:t,executedNodeIds:n,liveActivity:o,selectedNodeId:s,onSelectNode:i,onClose:l})=>{let{t:d}=(0,eW.s9)(),u=(0,C.A)(),[x,v]=(0,r.useState)(null),[y,b]=(0,r.useState)(!0),[w,j]=(0,r.useState)(null),[A,k,S]=(0,n$.ck)([]),[I,$,z]=(0,n$.fM)([]);(0,r.useEffect)(()=>{let n=!1;return(async()=>{b(!0),j(null);try{if(t&&Array.isArray(t.nodes)){n||v(t);return}if(!e)throw Error(d("chat.executed.noAgent"));am.debug(`Loading flow definition for ID: ${e}`);let a=await nz.g.getFlow(e);if(!a)throw Error(d("chat.executed.notFound",{id:e}));n||v(a)}catch(e){am.error("Error loading flow definition:",e),n||(j(e instanceof Error?e.message:d("chat.executed.loadFailed")),v(null))}finally{n||b(!1)}})(),()=>{n=!0}},[e,t,d]),(0,r.useEffect)(()=>{x&&(k(x.nodes.map(e=>({...e,draggable:!1,selectable:!0,connectable:!1}))),$(x.edges.map(e=>({...e,selectable:!1}))))},[x,k,$]);let T=(0,r.useMemo)(()=>new Set(n),[n]),[M,E]=(0,r.useState)(()=>Date.now());(0,r.useEffect)(()=>{if(!o)return;let e=()=>Object.values(o.byNode).some(e=>Date.now()-e.ts<4e3);if(!e())return;let t=setInterval(()=>{E(Date.now()),e()||clearInterval(t)},350);return()=>clearInterval(t)},[o]);let R=(0,r.useMemo)(()=>A.map(e=>{let t=T.has(e.id),n=e.id===s,a=o?.byNode[e.id],r=!!a&&M-a.ts<4e3;return{...e,selected:n,selectable:t,ariaLabel:t?d("chat.preview.selectNode",{node:String(e.data?.label??e.id)}):void 0,style:{...e.style,opacity:t||r?1:.4,cursor:t?"pointer":"default",border:n?`3px solid ${u.palette.secondary.main}`:r?`2px solid ${u.palette.primary.main}`:t?`2px solid ${u.palette.success.main}`:`1px solid ${u.palette.divider}`,boxShadow:n?`0 0 12px ${u.palette.secondary.light}`:r?`0 0 10px ${u.palette.primary.light}`:t?`0 0 8px ${u.palette.success.light}`:void 0}}}),[A,T,s,o,M,u,d]);return(0,a.jsxs)(c.default,{sx:{display:"flex",flexDirection:"column",height:"100%",borderLeft:1,borderColor:"divider",minWidth:0},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:1,px:1.5,py:1,borderBottom:1,borderColor:"divider",flexShrink:0},children:[(0,a.jsx)(B.A,{fontSize:"small",color:"action"}),(0,a.jsx)(p.A,{variant:"subtitle2",sx:{flex:1,minWidth:0},noWrap:!0,children:d("chat.executed.title")}),(0,a.jsx)(g.A,{title:d("chat.executed.hide"),children:(0,a.jsx)(f.A,{size:"small",onClick:l,"aria-label":d("chat.executed.hide"),children:(0,a.jsx)(ny.A,{fontSize:"small"})})})]}),(0,a.jsx)(c.default,{sx:{flex:1,minHeight:0,position:"relative"},children:y?(0,a.jsx)(c.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"},children:(0,a.jsx)(h.default,{})}):w?(0,a.jsx)(m.A,{severity:"info",sx:{m:2},children:w}):(0,a.jsx)(n$.Ln,{children:(0,a.jsx)(n$.Gc,{nodes:R,edges:I,onNodesChange:S,onEdgesChange:z,nodeTypes:ag,edgeTypes:af,fitView:!0,attributionPosition:"bottom-right",nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!0,onNodeClick:(e,t)=>{T.has(t.id)&&i?.(t.id)},panOnDrag:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!1})})})]})};function av({turns:e,selectedId:t,followLive:n,unseenCount:o,onSelect:s}){let i=(0,r.useRef)(null),l=(0,r.useMemo)(()=>{let n=e.findIndex(e=>e.id===t);return n>=0?n:e.length-1},[t,e]);if((0,r.useEffect)(()=>{let e=i.current?.querySelector('[aria-current="step"]');e?.scrollIntoView({block:"nearest",inline:"nearest",behavior:"smooth"})},[t,e.length]),0===e.length)return null;let d=t=>{let n=Math.max(0,Math.min(e.length-1,t)),a=e[n];a&&s(a,n===e.length-1)};return(0,a.jsxs)(c.default,{"data-testid":"model-turn-timeline",sx:{display:"flex",alignItems:"center",minWidth:0,flex:{xs:"1 1 100%",md:"1 1 360px"},gap:.75},children:[(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",sx:{display:{xs:"none",lg:"block"},whiteSpace:"nowrap"},children:"Model turns"}),(0,a.jsx)(c.default,{ref:i,role:"listbox","aria-label":"Model turn timeline",tabIndex:0,onWheel:e=>{(0!==e.deltaY||0!==e.deltaX)&&(e.preventDefault(),d(l+(e.deltaY+e.deltaX>0?1:-1)))},onKeyDown:t=>{"ArrowRight"===t.key?(t.preventDefault(),d(l+1)):"ArrowLeft"===t.key?(t.preventDefault(),d(l-1)):"End"===t.key?(t.preventDefault(),d(e.length-1)):"Home"===t.key&&(t.preventDefault(),d(0))},sx:{position:"relative",display:"flex",alignItems:"center",gap:"5px",minWidth:80,maxWidth:{xs:"100%",md:360},px:1,py:.5,overflowX:"auto",scrollbarWidth:"none",borderRadius:999,bgcolor:"action.hover","&::-webkit-scrollbar":{display:"none"},"&::before":{content:'""',position:"absolute",left:12,right:12,top:"50%",height:1,bgcolor:"divider"}},children:e.map((e,n)=>{var r;let o=e.id===t,s=`${n+1}. ${e.node.nodeName||e.node.nodeId} \xb7 ${e.modelName} \xb7 ${new Date(e.timestamp).toLocaleTimeString()}`;return(0,a.jsx)(g.A,{title:s,arrow:!0,children:(0,a.jsx)(c.default,{component:"button",type:"button",role:"option","aria-selected":o,"aria-current":o?"step":void 0,"aria-label":s,onClick:()=>d(n),sx:{position:"relative",zIndex:1,flex:"0 0 auto",width:o?10:7,height:o?22:14,p:0,border:0,borderRadius:999,cursor:"pointer",bgcolor:"error"===(r=e.outcome)?"error.main":"cancelled"===r?"warning.main":"running"===r?"info.main":"success.main",opacity:o?1:.62,boxShadow:o?e=>`0 0 0 3px ${e.palette.background.paper}`:"none",transition:"height 120ms ease, width 120ms ease, opacity 120ms ease","&:hover, &:focus-visible":{opacity:1,outline:"none"}}})},e.id)})}),(0,a.jsx)(y.A,{size:"small",color:n?"success":o>0?"primary":"default",variant:n?"filled":"outlined",label:n?"Live":o>0?`${o} new`:"History",onClick:o>0?()=>d(e.length-1):void 0,sx:{flexShrink:0,height:22}})]})}var ay=n(37464);function*ab(e){yield'"';for(let t=0;t<e.length;){let n=Math.min(t+4096,e.length),a=e.charCodeAt(n-1);n<e.length&&a>=55296&&a<=56319&&n--,yield JSON.stringify(e.slice(t,n)).slice(1,-1),t=n}yield'"'}function*aw(e,t){if("string"==typeof e)return void(yield*ab(e));if(null===e||"object"!=typeof e)return void(yield JSON.stringify(e)??"null");let n=Array.isArray(e);yield n?"[":"{";let a=!0,r=" ".repeat(Math.min((t+1)*2,256)),o=function*(e,n){yield(a?"\n":",\n")+r,a=!1,void 0!==n&&(yield*ab(n),yield": "),yield{value:e,depth:t+1}};if(n)for(let t=0;t<e.length;t++)yield*o(e[t]);else for(let t in e){if(!Object.prototype.hasOwnProperty.call(e,t))continue;let n=e[t];void 0!==n&&"function"!=typeof n&&"symbol"!=typeof n&&(yield*o(n,t))}a||(yield"\n"+" ".repeat(Math.min(2*t,256))),yield n?"]":"}"}function aj({value:e,testId:t}){let[n,o]=(0,r.useState)(0);(0,r.useEffect)(()=>{o(0)},[e]);let s=(0,r.useMemo)(()=>(function(e,t){if(!Number.isSafeInteger(t)||t<0)throw RangeError("Invalid inspector page");if(void 0===e)return{text:"",hasNext:!1};if(e instanceof ay.OM)return e.readPage(t);let n=65536*t,a=n+65536;if("string"==typeof e)return{text:e.slice(n,a),hasNext:e.length>a};let r=0,o=[],s=[aw(e,0)];for(;s.length;){let e=s[s.length-1].next();if(e.done){s.pop();continue}if("string"!=typeof e.value){s.push(aw(e.value.value,e.value.depth));continue}let t=e.value,i=r+t.length;if(i>n&&r<a&&o.push(t.slice(Math.max(0,n-r),a-r)),i>a)return{text:o.join(""),hasNext:!0};r=i}return{text:o.join(""),hasNext:!1}})(e,n),[e,n]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.default,{component:"pre","data-testid":t,sx:{m:0,p:1.5,maxHeight:"55vh",overflow:"auto",whiteSpace:"pre-wrap",overflowWrap:"anywhere",fontFamily:"var(--font-mono, ui-monospace, monospace)",fontSize:12,lineHeight:1.55,bgcolor:"action.hover"},children:s.text}),(n>0||s.hasNext)&&(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:1,px:1.5,py:.5},children:[(0,a.jsx)(u.A,{disabled:0===n,onClick:()=>o(e=>e-1),children:"Previous text page"}),(0,a.jsxs)(p.A,{variant:"caption",children:["Page ",n+1]}),(0,a.jsx)(u.A,{disabled:!s.hasNext,onClick:()=>o(e=>e+1),children:"Next text page"})]})]})}function aA({name:e,selected:t,onSelect:n}){return(0,a.jsx)(c.default,{component:"button",type:"button",onClick:n,"aria-label":`Inspect ${e}`,"aria-pressed":t,sx:{appearance:"none",border:0,borderRadius:.75,px:.35,py:.1,mx:.1,color:t?"primary.contrastText":"primary.light",bgcolor:t?"primary.main":"transparent",font:"inherit",cursor:"pointer","&:hover":{bgcolor:t?"primary.dark":"action.selected"},"&:focus-visible":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:2}},children:e})}function ak({snapshot:e}){let t=(0,r.useMemo)(()=>(function(e){let t,n=e.sdkRequest instanceof ay.OM?e.sdkRequest:void 0,a=n||null===(t=e.sdkRequest)||"object"!=typeof t||Array.isArray(t)?void 0:t,r=e=>n?n.child(e):a?.[e],o=a||n?.isObject,s=e.entry.operation.replace(/\(stream\)$/,"");if("codex-cli"===e.entry.adapter&&o)return{callee:"thread.runStreamed",parameters:[{name:"input",value:r("input")},{name:"options",value:r("options")}],argumentSource:"input, options"};if("claude-cli"===e.entry.adapter&&o)return{before:"const prompt = promptStream();",callee:"query",parameters:[{name:"prompt",value:r("prompt")},{name:"options",value:r("options")}],argumentSource:"{ prompt, options }"};if("openrouter-media"===e.entry.adapter)return{callee:"fetch",parameters:[{name:"request",value:e.sdkRequest}],argumentSource:'url, { method: "POST", body: JSON.stringify(request) }'};let i="gemini"===e.entry.adapter?"ai":"anthropic"===e.entry.adapter?"client":"openai";return{callee:`${i}.${s}`,parameters:[{name:"request",value:e.sdkRequest}],argumentSource:"request"}})(e),[e]),[n,o]=(0,r.useState)(t.parameters[0]?.name??"request");(0,r.useEffect)(()=>{o(t.parameters[0]?.name??"request")},[t]);let s=t.parameters.find(e=>e.name===n)??t.parameters[0];return(0,a.jsxs)(tv.A,{variant:"outlined",sx:{overflow:"hidden"},"data-testid":"request-code-canvas",children:[(0,a.jsxs)(c.default,{sx:{px:1.5,py:1,display:"flex",alignItems:"baseline",gap:1,flexWrap:"wrap"},children:[(0,a.jsx)(p.A,{variant:"subtitle2",children:"Adapter call"}),(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:"Click a parameter to inspect the value captured at dispatch."})]}),(0,a.jsx)(Y.A,{}),(0,a.jsxs)(c.default,{sx:{p:2,overflowX:"auto",bgcolor:"#111827",color:"#e5e7eb",fontFamily:"var(--font-mono, ui-monospace, monospace)",fontSize:13,lineHeight:1.8,whiteSpace:"pre"},children:[t.before&&(0,a.jsx)(c.default,{sx:{color:"#9ca3af"},children:t.before}),(0,a.jsx)(c.default,{component:"span",sx:{color:"#c084fc"},children:"const"})," response = ",(0,a.jsx)(c.default,{component:"span",sx:{color:"#c084fc"},children:"await"}),` ${t.callee}(`,"input, options"===t.argumentSource?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(aA,{name:"input",selected:"input"===n,onSelect:()=>o("input")}),", ",(0,a.jsx)(aA,{name:"options",selected:"options"===n,onSelect:()=>o("options")})]}):"{ prompt, options }"===t.argumentSource?(0,a.jsxs)(a.Fragment,{children:["{ ",(0,a.jsx)(aA,{name:"prompt",selected:"prompt"===n,onSelect:()=>o("prompt")}),", ",(0,a.jsx)(aA,{name:"options",selected:"options"===n,onSelect:()=>o("options")})," }"]}):t.argumentSource.includes("JSON.stringify")?(0,a.jsxs)(a.Fragment,{children:['url, { method: "POST", body: JSON.stringify(',(0,a.jsx)(aA,{name:"request",selected:"request"===n,onSelect:()=>o("request")}),") }"]}):(0,a.jsx)(aA,{name:"request",selected:"request"===n,onSelect:()=>o("request")}),");"]}),(0,a.jsx)(c.default,{sx:{px:1.5,py:.9,bgcolor:"action.hover",borderTop:1,borderColor:"divider"},children:(0,a.jsx)(p.A,{variant:"caption",sx:{fontFamily:"var(--font-mono, ui-monospace, monospace)",fontWeight:700},children:s?.name})}),(0,a.jsx)(aj,{value:s?.value,testId:"request-parameter-value"},`${e.entry.id}:${s?.name}`)]})}function aS({messages:e,provenance:t}){let[n,o]=(0,r.useState)(0);(0,r.useEffect)(()=>{o(0)},[e]);let s=(0,r.useMemo)(()=>e.slice(16*n,(n+1)*16),[e,n]),i=(0,r.useMemo)(()=>{let e=new Set(s.map(e=>e.id)),n=new Map;for(let a of t??[])a.id&&e.has(a.id)&&n.set(a.id,a);return n},[t,s]);return(0,a.jsxs)(c.default,{sx:{display:"grid",gap:1.25},children:[s.map((e,t)=>{let r="string"==typeof e.id?e.id:void 0,o="string"==typeof e.role?e.role:"unknown",s=r?i.get(r):void 0;return(0,a.jsxs)(tv.A,{variant:"outlined",sx:{overflow:"hidden"},children:[(0,a.jsxs)(c.default,{sx:{px:1.25,py:.75,display:"flex",gap:.75,alignItems:"center"},children:[(0,a.jsx)(y.A,{size:"small",label:o,variant:"outlined"}),s&&(0,a.jsx)(y.A,{size:"small",label:s.status,color:"sent"===s.status||"system"===s.status?"success":"emergency-stripped"===s.status?"error":"content-truncated"===s.status?"warning":"default",variant:"outlined"}),(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",sx:{ml:"auto"},children:16*n+t+1})]}),(0,a.jsx)(Y.A,{}),(0,a.jsx)(aj,{value:e})]},r??t)}),e.length>16&&(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,a.jsx)(u.A,{disabled:0===n,onClick:()=>o(e=>e-1),children:"Previous messages"}),(0,a.jsxs)(p.A,{variant:"caption",children:["Messages ",16*n+1,"–",Math.min((n+1)*16,e.length)," of ",e.length]}),(0,a.jsx)(u.A,{disabled:(n+1)*16>=e.length,onClick:()=>o(e=>e+1),children:"Next messages"})]})]})}function aI({snapshot:e,conversationId:t,tab:n,onTabChange:r}){let{entry:o}=e;return(0,a.jsxs)(c.default,{"data-testid":"model-turn-inspector",sx:{maxWidth:1100,mx:"auto",pb:4},children:[(0,a.jsxs)(tv.A,{"data-testid":"model-turn-inspector-header",variant:"outlined",sx:{position:"sticky",top:0,zIndex:3,mb:1.5,p:1.25,bgcolor:"background.paper",boxShadow:2},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:1},children:[(0,a.jsxs)(b.A,{exclusive:!0,size:"small",value:n,onChange:(e,t)=>t&&r(t),"aria-label":"Model turn detail",sx:{flexShrink:0},children:[(0,a.jsx)(w.A,{value:"canonical",children:"Canonical"}),(0,a.jsx)(w.A,{value:"wire",children:"Wired"}),(0,a.jsx)(w.A,{value:"request",children:"Request Detail"}),(0,ay.ZN)(e)&&(0,a.jsx)(w.A,{value:"archive",children:"Original JSON"})]}),(0,a.jsx)(Y.A,{orientation:"vertical",flexItem:!0,sx:{display:{xs:"none",sm:"block"}}}),(0,a.jsx)(p.A,{variant:"subtitle2",children:o.node.nodeName||o.node.nodeId}),(0,a.jsx)(y.A,{size:"small",label:o.modelName,variant:"outlined"}),(0,a.jsx)(y.A,{size:"small",label:`${o.adapter} \xb7 ${o.operation}`,variant:"outlined"}),(0,a.jsx)(y.A,{size:"small",label:o.outcome,color:"completed"===o.outcome?"success":"error"===o.outcome?"error":"default"}),(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",sx:{ml:{sm:"auto"}},children:new Date(o.timestamp).toLocaleString()})]}),(0,a.jsxs)(p.A,{variant:"caption",color:"text.secondary",sx:{display:"block",mt:.75},children:["Dispatch ",o.attempt," \xb7 ",o.canonicalMessageCount," canonical \xb7 ",o.wireMessageCount," wire \xb7 ",o.mediaCount," media"]})]}),e.contextCompaction?.events.map((e,t)=>(0,a.jsxs)(m.A,{severity:"emergency-refit"===e.kind?"warning":"info",variant:"outlined",sx:{mb:1},children:[(0,a.jsx)("b",{children:e.kind}),": ",e.reason,void 0!==e.before&&void 0!==e.after?` (${e.before.toLocaleString()} → ${e.after.toLocaleString()} ${e.unit??""})`:"",e.omittedMessages?` \xb7 ${e.omittedMessages} omitted`:"",e.truncatedMessages?` \xb7 ${e.truncatedMessages} truncated`:""]},`${e.kind}-${t}`)),e.visualCompaction&&(0,a.jsxs)(m.A,{severity:"image"===e.visualCompaction.route?"warning":"info",variant:"outlined",sx:{mb:1},children:["Visual context route: ",e.visualCompaction.route,e.visualCompaction.candidate?` \xb7 ${e.visualCompaction.candidate.messageCount} old messages evaluated`:"",e.visualCompaction.fallbackReason?` \xb7 ${e.visualCompaction.fallbackReason}`:""]}),"canonical"===n&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(m.A,{severity:"info",variant:"outlined",sx:{mb:1.25},children:"The canonical node-threaded conversation before provider wire shaping."}),(0,ay.ZN)(e)?(0,a.jsx)(aj,{value:e.canonical}):(0,a.jsx)(aS,{messages:e.canonicalMessages,provenance:e.provenance})]}),"wire"===n&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(m.A,{severity:"info",variant:"outlined",sx:{mb:1.25},children:"The final hydrated provider-neutral conversation supplied to the adapter."}),(0,ay.ZN)(e)?(0,a.jsx)(aj,{value:e.wire}):(0,a.jsx)(aS,{messages:e.genericWire})]}),"archive"===n&&(0,ay.ZN)(e)&&(0,a.jsx)(aj,{value:e.source}),(0,ay.ZN)(e)&&e.additionalMetadata&&(0,a.jsx)(m.A,{severity:"info",children:"Additional captured metadata is available in Original JSON."}),"request"===n&&(0,a.jsxs)(c.default,{sx:{display:"grid",gap:1.5},children:[e.media.length>0&&(0,a.jsxs)(c.default,{children:[(0,a.jsx)(p.A,{variant:"subtitle2",sx:{mb:.75},children:"SDK media parameters"}),(0,a.jsx)(c.default,{sx:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:1},children:e.media.map(e=>{var n;let r=eL.O.modelTurnMediaUrl(t,o.id,e.id);return(0,a.jsxs)(tv.A,{variant:"outlined",sx:{p:1,minWidth:0},children:["image"===e.kind?(0,a.jsx)(c.default,{component:"img",src:r,alt:e.parameterPath,sx:{width:"100%",maxHeight:220,objectFit:"contain",borderRadius:1,bgcolor:"action.hover"}}):"audio"===e.kind?(0,a.jsx)(c.default,{component:"audio",controls:!0,src:r,sx:{width:"100%"}}):"video"===e.kind?(0,a.jsx)(c.default,{component:"video",controls:!0,src:r,sx:{width:"100%",maxHeight:240,borderRadius:1}}):(0,a.jsx)(p.A,{component:"a",href:r,target:"_blank",rel:"noreferrer",variant:"body2",children:"Open archived file"}),(0,a.jsx)(p.A,{variant:"caption",sx:{display:"block",mt:.75,overflowWrap:"anywhere"},children:e.parameterPath}),(0,a.jsxs)(p.A,{variant:"caption",color:"text.secondary",children:[e.mimeType," \xb7 ",(n=e.byteLength)<1024?`${n} B`:n<1048576?`${(n/1024).toFixed(1)} KB`:`${(n/1048576).toFixed(1)} MB`]})]},e.id)})})]}),(0,a.jsx)(ak,{snapshot:e})]})]})}function aC({snapshot:e,conversationId:t}){let[n,o]=(0,r.useState)("canonical");return(0,a.jsx)(aI,{snapshot:e,conversationId:t,tab:n,onTabChange:o})}var a$=n(66159);let az={authentication:"chat.page.errorClass.authentication",authorization:"chat.page.errorClass.authorization",cancelled:"chat.page.errorClass.cancelled",configuration:"chat.page.errorClass.configuration",context_limit:"chat.page.errorClass.context_limit",network:"chat.page.errorClass.network",provider:"chat.page.errorClass.provider",rate_limit:"chat.page.errorClass.rate_limit",timeout:"chat.page.errorClass.timeout",validation:"chat.page.errorClass.validation",unknown:"chat.page.errorClass.unknown"};function aT({error:e,fallbackMessage:t,compact:n}){let{t:o}=(0,eW.s9)(),[s,i]=(0,r.useState)(!1),[l,d]=(0,r.useState)(!1),u=e?.message||t||o("chat.page.endedError"),h=!!(e&&(e.code||e.httpStatus||e.errorClass||e.retryAfter)),m=async()=>{try{let t=JSON.stringify(e??{message:u},null,2);await navigator.clipboard.writeText(t),d(!0)}catch{}};return(0,a.jsxs)(c.default,{sx:{minWidth:0},children:[(0,a.jsx)(p.A,{variant:"body2",component:"span",sx:{wordBreak:"break-word"},children:u}),h&&(0,a.jsxs)(ty.A,{direction:"row",spacing:.5,sx:{flexWrap:"wrap",mt:.5},children:[e?.code&&(0,a.jsx)(y.A,{size:"small",variant:"outlined",label:o("chat.page.errorCode",{code:e.code})}),e?.httpStatus!==void 0&&(0,a.jsx)(y.A,{size:"small",variant:"outlined",label:o("chat.page.errorStatus",{status:e.httpStatus})}),e?.errorClass&&(0,a.jsx)(y.A,{size:"small",variant:"outlined",label:o(az[e.errorClass])}),e?.retryAfter&&(0,a.jsx)(y.A,{size:"small",variant:"outlined",label:o("chat.page.errorRetryAfter",{seconds:e.retryAfter})})]}),!n&&e&&(e.details||h)&&(0,a.jsxs)(c.default,{sx:{mt:.5},children:[(0,a.jsxs)(ty.A,{direction:"row",spacing:1.5,sx:{alignItems:"center"},children:[(0,a.jsxs)(a$.A,{component:"button",type:"button",variant:"caption",underline:"hover",onClick:()=>i(e=>!e),sx:{color:"inherit"},children:[o("chat.page.errorDetails")," ",s?"▾":"▸"]}),(0,a.jsx)(a$.A,{component:"button",type:"button",variant:"caption",underline:"hover",onClick:m,sx:{color:"inherit"},children:o("chat.page.errorCopy")})]}),s&&e.details&&(0,a.jsx)(c.default,{component:"pre",sx:{mt:.5,p:1,maxHeight:240,overflow:"auto",fontSize:"0.7rem",bgcolor:"action.hover",borderRadius:1,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:JSON.stringify(e.details,null,2)})]}),(0,a.jsx)(tl.A,{open:l,autoHideDuration:2e3,onClose:()=>d(!1),message:o("chat.page.errorCopied")})]})}function aM(e){return e?.nodes?.find(e=>(e?.type??e?.data?.type)==="start")}var aE=n(19260),aR=n(26449);class aN extends Map{set(e,t){return this.clear(),super.set(e,t)}}var aW=n(80967),aP=n(45355),aO=n(22766),aD=n(51893),aF=n(60317),a_=n(81220),aq=n(13286),aB=n(47160);function aH(e){return(0,nc.BV)(`flujo-ui:mcp-canvas:dismissed:${e}`)}function aL(e){let t=(0,eR.Aq)(aH(e),[]);return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}function aU(e,t,n){if(0===t.length)return;let a=new Set(aL(e));for(let e of t)n?a.add(e):a.delete(e);(0,eR.vi)(aH(e),[...a])}function aK(e){return(0,nc.BV)(`flujo-ui:mcp-canvas:auto-open-suppressed:${e}`)}function aJ(e){return!0===(0,eR.Aq)(aK(e),!1)}let aV=(0,nT.h)("frontend/components/Chat/index");function aX(e){let t=(0,r.useRef)(e);return t.current=e,(0,r.useCallback)((...e)=>t.current(...e),[])}let aG=(e,t)=>e.length===t.length&&e.every((e,n)=>{let a=t[n];return e.id===a.id&&e.title===a.title&&e.flowId===a.flowId&&e.personaId===a.personaId&&e.activityId===a.activityId&&e.behaviorRevisionId===a.behaviorRevisionId&&e.personaArchived===a.personaArchived&&e.status===a.status&&e.recovery?.classification===a.recovery?.classification&&e.recovery?.updatedAt===a.recovery?.updatedAt&&e.plannedExecutionId===a.plannedExecutionId&&e.source===a.source&&e.parentConversationId===a.parentConversationId&&e.rootConversationId===a.rootConversationId&&e.sessionKey===a.sessionKey&&e.sessionIdentity===a.sessionIdentity&&e.createdAt===a.createdAt&&e.updatedAt===a.updatedAt&&e.lastUserMessageAt===a.lastUserMessageAt}),aY=/cancelled by user|execution cancelled/i,aQ=e=>e?.code==="cancelled"||e?.error?.code==="cancelled"||[e?.message,"string"==typeof e?.body?.error?e.body.error:void 0].some(e=>"string"==typeof e&&aY.test(e));function aZ(e){let t=e.body&&"object"==typeof e.body?e.body:void 0;return"string"==typeof t?.error?t.error:e.message}let a0=()=>{var e;let t,n,o=(0,r.useRef)(null),V=(0,l.useRouter)(),X=(0,C.A)(),{t:G,tp:Y}=(0,eW.s9)(),{settings:Q}=(0,aW.useStorage)(),Z=Q?.experimental?.requireMcpAppLaunchClick!==!0,ee=(0,d.A)(X.breakpoints.down("lg"),{noSsr:!0}),et=(0,d.A)(X.breakpoints.down("sm"),{noSsr:!0}),[en,ea]=(0,r.useState)([]),[er,eo]=(0,r.useState)(!0),[es,ei]=(0,r.useState)(!1),[el,ed]=(0,r.useState)(null),[ec,eu]=(0,r.useState)({total:0,hasMore:!1}),eh=(0,r.useRef)(ec),ep=(0,r.useRef)(0),em=(0,r.useCallback)(e=>{eh.current=e,eu(e)},[]),[eg,ef]=(0,r.useState)(null),[ex,ev]=(0,r.useState)(!1),[ey,eb]=(0,r.useState)(!1),[ew,ej]=(0,r.useState)(null),[eA,ek]=(0,J.Mj)(J.Zg.CURRENT_CONVERSATION_ID,null),eS=(0,r.useRef)(eA),[eI,e$]=(0,r.useState)([]),[ez,eT]=(0,r.useState)(()=>new Set),eM=(0,r.useMemo)(()=>eI.filter(e=>ez.has((0,tA.BC)(e.identity.serverName,e.identity.skillUri,e.manifest.digest))).map(e=>({serverName:e.identity.serverName,skillUri:e.identity.skillUri,manifestDigest:e.manifest.digest})),[eI,ez]);(0,r.useEffect)(()=>{(0,aB.HQ)(eA),eT(new Set);let e=()=>e$(eA?(0,aB.k0)(eA):[]);return e(),(0,aB.Wx)(e)},[eA]);let eE=(0,r.useRef)(!1),[eN,eP]=(0,r.useState)({});(0,r.useEffect)(()=>{eP({})},[eA]);let eO=(0,r.useRef)(new Map),[eF,e_]=(0,r.useState)(()=>new Set),[eq,eB]=(0,r.useState)(0),eH=(0,r.useMemo)(()=>eA?new Set(aL(eA)):new Set,[eA,eq]),eU=(0,r.useCallback)((e,t,n)=>{let a;a=new Set(aL(e)),n?a.add(t):a.delete(t),(0,eR.vi)(aH(e),[...a]),eB(e=>e+1)},[]),eK=(0,r.useCallback)(e=>{let t=eS.current;t&&eU(t,e,!1)},[eU]),[eJ,eV]=(0,r.useState)(0),eX=(0,r.useMemo)(()=>!!eA&&aJ(eA),[eA,eJ]),eG=(0,r.useCallback)((e,t)=>{(0,eR.vi)(aK(e),t),eV(e=>e+1)},[]),eY=(0,r.useRef)(new Map),eQ=(0,r.useRef)(0),eZ=(0,r.useCallback)(e=>{let t=eQ.current+1;eQ.current=t;let n=eS.current;if(n===e)return void ek(e);let a=n?`${n}\0`:null,r=a?[...eY.current.entries()].filter(([e])=>e.startsWith(a)).map(([,e])=>e):[];if(0===r.length){eS.current=e,ek(e);return}Promise.allSettled(r.map(e=>e())).then(()=>{eQ.current===t&&(eS.current=e,ek(e))})},[ek]),[e0,e1]=(0,J.Mj)(J.Zg.LAST_PICKED_FLOW_ID,null),[e2,e5]=(0,r.useState)(!1),[e4,e6]=(0,r.useState)(new Set),e3=(0,r.useCallback)((e,t)=>{e&&e6(n=>{if(t===n.has(e))return n;let a=new Set(n);return t?a.add(e):a.delete(e),a})},[]),[e7,e9]=(0,r.useState)({}),e8=(0,r.useRef)(!1),te={"question-answer":"chat.page.inputResponseFailed","question-decline":"chat.page.inputDeclineFailed","elicitation-submit":"chat.page.inputSubmitFailed","elicitation-cancel":"chat.page.inputCancelFailed"},[tt,tn]=(0,r.useState)(0),[ts,ti]=(0,r.useState)(null),tl=Object.values(te).find(e=>e===ts),[td,tc]=(0,r.useState)(null),[tu,th]=(0,r.useState)(null),[tp,tm]=(0,r.useState)(null),[tg,tf]=(0,r.useState)([]),[tv,ty]=(0,r.useState)(!1),[tb,tw]=(0,r.useState)(!1),[tj,tk]=(0,r.useState)(""),[tM,tE]=(0,r.useState)(!1),[tR,tW]=(0,r.useState)(null),[tO,tD]=(0,r.useState)(null),[tF,t_]=(0,r.useState)(null),[tq,tB]=(0,r.useState)(null),[tH,tL]=(0,r.useState)(null),[tU,tK]=(0,r.useState)(null),[tJ,tV]=(0,r.useState)(!1),[tX,tG]=(0,r.useState)(null),[tY,tQ]=(0,r.useState)(-1),[tZ,t1]=(0,r.useState)(0),[t2,t4]=(0,r.useState)("chat"),[t6,t3]=(0,r.useState)(null),[t7,t9]=(0,r.useState)(null),[t8,ne]=(0,r.useState)(!1),[nt,nn]=(0,r.useState)(null),[nr,no]=(0,r.useState)(0),ns=(0,r.useRef)(null),ni=(0,r.useRef)(0),[nl,nd]=(0,r.useState)([]),[nh,nf]=(0,r.useState)(null),[nx,nv]=(0,r.useState)(null),[ny,nb]=(0,r.useState)(!1),[nw,nj]=(0,r.useState)(null),[nA,nk]=(0,r.useState)(0),[nS,nI]=(0,r.useState)("wire"),[nC,n$]=(0,r.useState)(!0),[nT,nM]=(0,r.useState)(0),nE=(0,r.useRef)(!0),nN=(0,r.useRef)(new aN),nW=(0,r.useRef)(new Set),nP=(0,r.useRef)([]),[nO,nD]=(0,r.useState)(!1),[nF,n_]=(0,r.useState)(!1),[nq,nB]=(0,r.useState)(!1),[nH,nL]=(0,r.useState)(()=>{let e=Number(window.localStorage.getItem("flujo-debugger-width"));return Number.isFinite(e)&&e>0?e:0}),[nU,nK]=(0,r.useState)(()=>"1"===window.localStorage.getItem("flujo-debugger-expanded"));(0,r.useEffect)(()=>{window.localStorage.setItem("flujo-debugger-expanded",nU?"1":"0")},[nU]),(0,r.useEffect)(()=>{ns.current?.abort(),ni.current+=1,t4("chat"),tQ(-1),t1(0),t3(null),t9(null),ne(!1),nn(null),nd([]),nf(null),nv(null),nb(!1),nj(null),nk(0),n$(!0),nE.current=!0,nM(0),nN.current.clear(),nW.current.clear(),nP.current=[]},[eA]),(0,r.useEffect)(()=>{tX||(t4("chat"),tQ(-1),t1(0))},[tX]),(0,r.useEffect)(()=>{if(!eA)return;let e=new AbortController;return eL.O.getModelTurns(eA,{signal:e.signal}).then(({turns:t})=>{if(e.signal.aborted)return;let n=new Map(t.map(e=>[e.id,e]));for(let e of nP.current)n.set(e.id,e);let a=[...n.values()].sort((e,t)=>e.timestamp-t.timestamp);if(nP.current=a,nW.current=new Set(a.map(e=>e.id)),nd(a),nE.current){let e=a[a.length-1];nf(e?.id??null),nM(0)}}).catch(t=>{e.signal.aborted||aV.warn("Could not load model-turn timeline",t)}),()=>e.abort()},[eA]);let[nJ,nV]=(0,r.useState)(()=>"1"===window.localStorage.getItem("flujo-workflow-panel-visible"));(0,r.useEffect)(()=>{window.localStorage.setItem("flujo-workflow-panel-visible",nJ?"1":"0")},[nJ]);let[nX,nG]=(0,r.useState)(()=>{let e=Number(window.localStorage.getItem("flujo-workflow-panel-width"));return Number.isFinite(e)&&e>0?e:320}),nY=(0,r.useCallback)(e=>{e.preventDefault();let t=e.clientX,n=0;nG(e=>(n=e,e));let a=document.body.style.userSelect,r=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";let o=e=>{nG(Math.min(Math.max(n+(t-e.clientX),240),Math.round(.7*window.innerWidth)))},s=()=>{window.removeEventListener("pointermove",o),window.removeEventListener("pointerup",s),document.body.style.userSelect=a,document.body.style.cursor=r,nG(e=>(e>0&&window.localStorage.setItem("flujo-workflow-panel-width",String(Math.round(e))),e))};window.addEventListener("pointermove",o),window.addEventListener("pointerup",s)},[]),nQ=(0,r.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 a=e=>{nL(Math.min(Math.max(window.innerWidth-e.clientX,360),Math.round(.85*window.innerWidth)))},r=()=>{window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",r),document.body.style.userSelect=t,document.body.style.cursor=n,nL(e=>(e>0&&window.localStorage.setItem("flujo-debugger-width",String(Math.round(e))),e))};window.addEventListener("pointermove",a),window.addEventListener("pointerup",r)},[]),[nZ,n0]=(0,r.useState)(()=>{let e=Number(window.localStorage.getItem("flujo-chat-sidebar-width"));return Number.isFinite(e)&&e>0?e:300}),[n1,n2]=(0,r.useState)(()=>"1"===window.localStorage.getItem("flujo-chat-sidebar-collapsed")),[n5,n4]=(0,r.useState)(!1),n6=ee?!n5:n1,n3=(0,r.useCallback)(()=>{ee?n4(e=>!e):n2(e=>{let t=!e;return window.localStorage.setItem("flujo-chat-sidebar-collapsed",t?"1":"0"),t})},[ee]),n7=aX(e=>{eZ(e),ee&&n4(!1)}),n9=(0,r.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 a=e=>{n0(Math.min(Math.max(e.clientX,220),560))},r=()=>{window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",r),document.body.style.userSelect=t,document.body.style.cursor=n,n0(e=>(e>0&&window.localStorage.setItem("flujo-chat-sidebar-width",String(Math.round(e))),e))};window.addEventListener("pointermove",a),window.addEventListener("pointerup",r)},[]),[n8,ae]=(0,r.useState)(null),[at,an]=(0,r.useState)(null),[aa,ao]=(0,r.useState)(null),[as,ai]=(0,r.useState)(nR),[al,ad]=(0,r.useState)([]),[ac,ah]=(0,r.useState)(tN),[am,ag]=(0,r.useState)([]),[af,ab]=(0,r.useState)(new Set),[aw,aj]=(0,r.useState)([]),[aA,ak]=(0,r.useState)(null),aS=(0,r.useRef)(null),a$=(0,r.useRef)(null),az=(0,r.useRef)(null),a0=(0,r.useRef)([]),a1=(0,r.useRef)(null),a2=(0,r.useRef)(()=>void 0),a5=(0,r.useRef)(0),a4=(0,r.useRef)(null),a6=(0,r.useRef)(null),a3=(0,r.useRef)(null),a7=(0,r.useRef)(null),a9=(0,r.useRef)(-1),a8=(0,r.useRef)({conversationId:null,seq:-1}),re=(0,r.useRef)(0),rt=(0,r.useRef)(new Map);(0,r.useEffect)(()=>{eS.current=eA},[eA]);let rn=(0,r.useRef)(new Set),ra=(0,r.useRef)(null),rr=(0,r.useRef)(!1),ro=(0,r.useRef)(new Set),rs=(0,r.useRef)(new Set),[ri,rl]=(0,r.useState)(new Set),rd=(0,r.useCallback)((e,t)=>{e&&(t?rs.current.add(e):rs.current.delete(e),rl(new Set(rs.current)))},[]),rc=function(e={}){let{conversationId:t,messages:n,autoHideEnabled:a,idleMs:o}=e,s=(0,C.A)(),i=(0,d.A)(s.breakpoints.down("sm")),l=function({enabled:e,idleMs:t=2500}){let[n,a]=(0,r.useState)(!1),o=(0,r.useRef)(null),s=(0,r.useCallback)(()=>{o.current&&(clearTimeout(o.current),o.current=null)},[]),i=(0,r.useCallback)(()=>{s(),o.current=setTimeout(()=>{o.current=null,a(!0)},t)},[s,t]),l=(0,r.useCallback)(()=>{(a(!1),e)?i():s()},[i,s,e]);return(0,r.useEffect)(()=>(e?(a(!1),i()):(s(),a(!1)),s),[e,t,i,s]),{visible:!e||!n,poke:l}}({enabled:a??i,...void 0===o?{}:{idleMs:o}}),c=(0,z.Q)({bottomThreshold:80,anchorSelector:"[data-ask-flujo-message-id]",deps:[t,n]}),u=c.ref,h=(0,r.useRef)(!0),p=(0,r.useCallback)((e="auto")=>{let t=u.current;t&&(t.scrollTo({top:t.scrollHeight,behavior:(0,T.ik)(e)}),c.measure())},[u,c]),m=(0,r.useCallback)(()=>{let e=u.current;e&&(h.current=e.scrollHeight-e.scrollTop-e.clientHeight<80),c.onScroll(),l.poke()},[u,c,l]),g=(0,r.useCallback)(()=>{l.poke()},[l]),f=(0,r.useCallback)(()=>{h.current=!1;let e=u.current;e&&e.scrollTo({top:0,behavior:(0,T.ik)("smooth")}),c.measure()},[u,c]),x=(0,r.useCallback)(()=>{h.current=!1,c.scrollToPreviousAnchor()},[c]),v=(0,r.useCallback)(()=>{h.current=!0,p("smooth")},[p]),y=(0,r.useCallback)(e=>{l.poke(),"top"===e?f():"up"===e?x():"bottom"===e&&v()},[l,f,x,v]);(0,r.useEffect)(()=>{h.current=!0,p("auto")},[t]),(0,r.useEffect)(()=>{h.current&&p("auto")},[n]);let b=(0,r.useMemo)(()=>({top:c.atTop,up:c.atTop,bottom:c.atBottom}),[c.atTop,c.atBottom]);return{containerProps:{ref:u,onScroll:m,onPointerDown:g},scrollRef:u,show:c.scrollable&&l.visible,actions:M,disabled:b,onAction:y,jumpToLatest:v,isPinnedToBottom:()=>h.current}}({conversationId:eA,messages:eg?.messages}),ru=(0,r.useRef)(null);(0,r.useEffect)(()=>{ru.current=aA},[aA]),(0,r.useEffect)(()=>{var e;e=window.location.origin,aS.current=new aR.Ay({baseURL:new URL(e).origin+"/v1",apiKey:"FLUJO",defaultHeaders:{Authorization:null},dangerouslyAllowBrowser:!0,maxRetries:0,timeout:18e6,...{}})},[]),(0,r.useEffect)(()=>{(async()=>{aV.debug("Loading flows");try{let e=await nz.g.loadFlows();tf(e)}catch(e){aV.error("Error loading flows:",e)}})()},[]);let rh=(0,r.useCallback)((e,t)=>{let n=t?.silent??!1,a=async()=>{aV.debug("Fetching conversation list from backend",{silent:n}),n||(eo(!0),ed(null));let t=[],a=!1;try{let e=n?Math.max(50,ep.current):50,a=await eL.O.listConversationPage({limit:Math.min(200,e),pinnedIds:(0,eR.F0)(eD,[])}),r=a.pinnedItems??[],o=[...a.items];for(;o.length<e&&a.nextCursor;)a=await eL.O.listConversationPage({limit:Math.min(200,e-o.length),cursor:a.nextCursor}),o.push(...a.items);for(let e of(t=[...new Map([...r,...o].map(e=>[e.id,e])).values()].filter(e=>!ro.current.has(e.id)).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt)),ep.current=o.length,em({total:a.total,hasMore:a.hasMore,nextCursor:a.nextCursor}),t))rn.current.delete(e.id);ea(e=>{let n=e.filter(e=>rn.current.has(e.id)),a=e.find(e=>e.id===eS.current&&!rn.current.has(e.id)&&!t.some(t=>t.id===e.id)),r=[...n,...t,...a?[a]:[]].sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt));return aG(e,r)?e:r}),aV.info(`Fetched ${t.length} conversations for the list`)}catch(e){a=!0,aV.error("Error fetching conversation list:",e),n||(ed(G("chat.page.historyLoadFailed")),ea([]),ep.current=0,em({total:0,hasMore:!1}))}finally{if(n||eo(!1),n||a)return;let r=void 0!==e?e:eS.current,o=eS.current;if(r&&(t.some(e=>e.id===r)||rn.current.has(r)||void 0===e))r!==o&&(aV.debug(`Setting currentConversationId to ${r} after fetch/operation.`),eZ(r));else if(t.length>0){let e=t[0].id;e!==o&&(aV.debug(`Selecting most recent conversation ${e} after fetch/operation.`),eZ(e))}else null===o||rn.current.has(o)||(aV.debug("No conversations available after fetch/operation, clearing selection."),eZ(null))}};if(!n)return a();if(ra.current)return rr.current=!0,ra.current;let r=(async()=>{do rr.current=!1,await a();while(rr.current)})().finally(()=>{ra.current===r&&(ra.current=null)});return ra.current=r,r},[eZ,G,em]),rp=(0,r.useCallback)(async()=>{let e=eh.current.nextCursor;if(e&&!es){ei(!0);try{let t=await eL.O.listConversationPage({limit:50,cursor:e}),n=t.items.filter(e=>!ro.current.has(e.id));ea(e=>{let t=new Map(e.map(e=>[e.id,e]));for(let e of n)t.set(e.id,e);let a=[...t.values()].sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt));return aG(e,a)?e:a}),ep.current+=n.filter(e=>!rn.current.has(e.id)).length,em({total:t.total,hasMore:t.hasMore,nextCursor:t.nextCursor})}catch(e){aV.error("Could not load the next conversation page",e),ed(G("chat.page.historyLoadFailed"))}finally{ei(!1)}}},[es,G,em]),rm=(0,r.useCallback)(async()=>{let e=(await eL.O.listAllConversationPages()).filter(e=>!ro.current.has(e.id)).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt));ep.current=e.length,em({total:e.length,hasMore:!1});let t=[...en.filter(e=>rn.current.has(e.id)),...e].sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt));return ea(e=>aG(e,t)?e:t),t},[en,em]);(0,r.useEffect)(()=>{rh()},[]),(0,r.useEffect)(()=>{let e=null,t=null,n=null,a=!1,r=0,o=()=>{e&&clearTimeout(e),t&&clearTimeout(t),e=null,t=null},s=()=>{e&&clearTimeout(e),a||"visible"!==document.visibilityState||(e=setTimeout(()=>{e=null,r=Date.now(),rh(void 0,{silent:!0}).finally(s)},3e4))},i=()=>{a||"visible"!==document.visibilityState||t||(t=setTimeout(()=>{t=null,r=Date.now(),rh(void 0,{silent:!0}).finally(s)},Math.max(200,5e3-(Date.now()-r))))},l=()=>{n||a||"visible"!==document.visibilityState||(n=eL.O.subscribeToSidebarEvents({onEvent:i,onReset:()=>{a||(o(),d(),r=Date.now(),rh(void 0,{silent:!0}).finally(()=>{a||"visible"!==document.visibilityState||n||(t=setTimeout(()=>{t=null,l(),s()},3e3))}))}}))},d=()=>{n?.close(),n=null},c=()=>{if("visible"!==document.visibilityState){o(),d();return}l(),r=Date.now(),rh(void 0,{silent:!0}).finally(s)};return r=Date.now(),l(),s(),document.addEventListener("visibilitychange",c),()=>{a=!0,o(),d(),document.removeEventListener("visibilitychange",c)}},[rh]);let rg=(0,r.useCallback)((e,t,n)=>{var a,r;if(!t||n!==re.current||rs.current.has(e))return;let o=a8.current,s=o.conversationId===e?o.seq:-1;a=eS.current,r=t.nextSeq,a===e&&Number.isSafeInteger(r)&&r>=0&&r>s&&(a8.current={conversationId:e,seq:t.nextSeq-1},t_(t.questions.at(-1)??null),tD(t.elicitations.at(-1)??null))},[]),rf=(0,r.useCallback)(async e=>{if(eS.current!==e)return;let t=re.current;try{let n=await eL.O.getConversation(e,{messageLimit:1});rg(e,n.pendingInputs,t)}catch(t){aV.warn("Failed to refresh pending conversation input",{conversationId:e,error:t})}},[rg]),rx=aX(async e=>{if(rn.current.has(e))return void aV.debug("Skipping detail fetch for client-only conversation",{conversationId:e});if(eS.current!==e){aV.debug("Detail fetch requested for non-viewed conversation; refreshing list instead",{conversationId:e}),rh(void 0,{silent:!0});return}aV.debug("Fetching detailed conversation",{conversationId:e});let t=re.current;ev(!0),ej(null);try{let n=await eL.O.getConversation(e,{messageLimit:200});if(eS.current!==e)return void aV.debug("Discarding stale detailed conversation response",{fetchedId:e,currentId:eS.current});void 0===n.mcpAppContexts||rt.current.has(e)||rt.current.set(e,{...n.mcpAppContexts}),ef(n),rg(e,n.pendingInputs,t),"error"===n.status&&n.lastError?tc(n.lastError):"error"!==n.status&&tc(null),ea(t=>t.map(t=>t.id===e?{...t,title:n.title,flowId:n.flowId,personaId:n.personaId,activityId:n.activityId,behaviorRevisionId:n.behaviorRevisionId,updatedAt:n.updatedAt,status:n.status??t.status}:t).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt))),aV.info("Fetched detailed conversation successfully",{conversationId:e})}catch(t){if(aV.error("Error fetching detailed conversation:",{conversationId:e,err:t}),eS.current!==e)return;t instanceof eL.b&&404===t.status?(ej(G("chat.page.conversationNotFound",{id:e})),eZ(null),rh()):ej(G("chat.page.detailsLoadFailed",{id:e})),ef(null)}finally{eS.current===e&&ev(!1)}}),rv=(0,r.useCallback)(async()=>{let e=eS.current;if(e&&!ey){eb(!0);try{let t=await eL.O.getConversation(e);if(eS.current!==e)return;ef(n=>{if(!n||n.id!==e)return n;let a=new Map(n.messages.map(e=>[e.id,e])),r=t.messages.map(e=>a.get(e.id)??e),o=new Set(t.messages.map(e=>e.id));for(let e of n.messages)o.has(e.id)||r.push(e);return{...t,messages:r,transcriptWindow:{truncated:!1,loadedCount:r.length,totalCount:r.length,source:"durable-log"}}})}catch(t){aV.error("Failed to load full transcript",{conversationId:e,error:t}),eS.current===e&&ti(G("chat.page.detailsLoadFailed",{id:e}))}finally{eb(!1)}}},[ey,G]);(0,r.useEffect)(()=>{tW(null),t_(null),tD(null),re.current++,a8.current={conversationId:eA,seq:-1},tL(null),eA?rx(eA):(ef(null),ev(!1),ej(null))},[eA,rx]),(0,r.useEffect)(()=>{let e=eg?.id;if(!e||e!==eA)return void e_(e=>0===e.size?e:new Set);let t=(0,aq.fT)(eO.current,e,eg.messages);0!==t.length&&e_(new Set((0,aq.pv)(eg.messages,t)))},[eA,eg?.id,eg?.messages]),(0,r.useEffect)(()=>{if(0===eF.size)return;let e=window.setTimeout(()=>e_(new Set),1500);return()=>window.clearTimeout(e)},[eF]);let ry=eg?.parentConversationId?en.find(e=>e.id===eg.parentConversationId):void 0;(0,r.useEffect)(()=>{let e=eg?.id;if(!(e&&eg?.status==="error")||!e)return void th(null);let t=!1,n=new AbortController;return eL.O.getSubflowRecoveryOptions(e,n.signal).then(e=>{t||th(e.hasRecoverableFamily?e:null)}).catch(n=>{aV.warn("Could not load subflow recovery options",{conversationId:e,err:n}),t||th(null)}),()=>{t=!0,n.abort()}},[eg?.id,eg?.parentConversationId,eg?.status,ry?.status,ry?.updatedAt,ry?.recovery?.updatedAt]),(0,r.useEffect)(()=>{eg&&ty(eg.requireApproval??!1)},[eg?.id]);let rb=(0,r.useCallback)(async e=>{if(ty(e),eA)try{await eL.O.updateConversationApproval(eA,e)}catch(e){aV.warn("Failed to persist requireApproval setting",{conversationId:eA,err:e})}},[eA]),rw=en.find(e=>e.id===eA)||null,rj=(0,r.useMemo)(()=>{let e={};for(let t of tg)t.id&&(e[t.id]=t.name);return e},[tg]),[rA,rk]=(0,r.useState)({}),rS=(0,r.useMemo)(()=>eg?.personaId?null:tg.find(e=>e.id===eg?.flowId)||null,[tg,eg?.flowId,eg?.personaId]),rI=(0,r.useCallback)(e=>{if("chat-message"===e.target.kind&&e.target.id&&"highlight"===e.type){let t=[...document.querySelectorAll("[data-ask-flujo-message-id]")].find(t=>t.getAttribute("data-ask-flujo-message-id")===e.target.id)??null,n=(0,aO.g_)(t);return{success:n,message:n?"Highlighted the conversation message.":"That message is not currently visible."}}if("chat-field"===e.target.kind&&"title"===e.target.field){if("highlight"===e.type){let e=(0,aO.g_)(document.querySelector("[data-ask-flujo-chat-title]"));return{success:e,message:e?"Highlighted the conversation title.":"The title is not currently visible."}}return"string"==typeof e.value&&e.value.trim()?(tk(e.value),tw(!0),{success:!0,message:"Updated the title field. Confirm it with the normal save control."}):{success:!1,message:"The conversation title must be non-empty text."}}return{success:!1,message:"That conversation UI target is not supported."}},[]);(0,aP.qz)({scopeId:eg?`chat:${eg.id}`:"chat:none",pageType:"chat",route:"/chat",title:eg?.title??G("nav.talk"),identifiers:{conversationId:eg?.id??eA,flowId:eg?.flowId??null,personaId:eg?.personaId??null},data:{conversation:eg,selectedFlow:rS,requireApproval:tv,executeInDebugger:tM},capabilities:{highlightTargets:[...(eg?.messages??[]).map(e=>({kind:"chat-message",id:e.id,role:e.role,processNodeId:e.processNodeId})),{kind:"chat-field",field:"title"}],editableTargets:[{kind:"chat-field",field:"title"}],notes:["The conversation id and selected Flow or Persona are supplied explicitly."]}},rI,100);let rC=(0,r.useMemo)(()=>rS?.nodes?.map(e=>({id:e.id,label:e.data.label||e.id}))||[],[rS]),r$=(0,r.useMemo)(()=>{var e;let t;return e={messages:eg?.messages,nodeExecutionTracker:tX?.trackingInfo?.nodeExecutionTracker,executionTrace:tX?.executionTrace,sseVisitedIds:af},t=new Set,e.messages?.forEach(e=>{e?.processNodeId&&t.add(e.processNodeId)}),e.nodeExecutionTracker?.forEach(e=>{e?.nodeId&&t.add(e.nodeId)}),e.executionTrace?.forEach(e=>{e?.nodeId&&t.add(e.nodeId)}),e.sseVisitedIds?.forEach(e=>{e&&t.add(e)}),Array.from(t)},[eg?.messages,tX,af]);(0,r.useEffect)(()=>{ab(new Set),ad([])},[eg?.id]);let rz=(0,r.useMemo)(()=>{let e=e=>!!e&&rC.some(t=>t.id===e);if(e(tH))return tH;if(e(eg?.currentNodeId))return eg.currentNodeId;let t=eg?.messages??[];for(let n=t.length-1;n>=0;n--){let a=t[n];if("assistant"===a.role&&e(a.processNodeId))return a.processNodeId}return rC[0]?.id??null},[tH,eg,rC]),rT=e=>{ea(t=>[e,...t].sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt))),eZ(e.id),ef({id:e.id,title:e.title,flowId:e.flowId,...e.personaId?{personaId:e.personaId}:{},...e.personaBehaviorSlotKey?{personaBehaviorSlotKey:e.personaBehaviorSlotKey}:{},...e.activityId?{activityId:e.activityId}:{},...e.behaviorRevisionId?{behaviorRevisionId:e.behaviorRevisionId}:{},createdAt:e.createdAt,updatedAt:e.updatedAt,messages:[]}),ev(!1),ej(null)},rM=async e=>{aV.debug("Attempting to create new conversation"),ti(null),tc(null);let t="string"!=typeof e||eC(e)?void 0:tg.find(t=>t.id===e),n=e0&&!eC(e0)?tg.find(e=>e.id===e0):void 0,a=(t??n??tg.find(e=>e.favorite)??tg[0])?.id||null;if(!a){aV.debug("No Flow target available; showing the Flow/Persona chooser."),eZ(null),ef(null);return}let r=(0,aE.A)(),o=Date.now(),s={id:r,title:G("chat.page.newTitle"),flowId:a,createdAt:o,updatedAt:o};try{aV.info("Sending request to create conversation on backend",{payload:JSON.stringify(s)});let e=await eL.O.createConversation(s);aV.info("Successfully created conversation on backend",{conversationId:e.id}),rT(e),ev(!1),ej(null),(0,nu.IU)({type:"conversation-created",conversationId:e.id})}catch(t){aV.error("Error creating conversation on backend:",t);let e=G("chat.page.createFailed");t instanceof eL.b?e+=` (${aZ(t)})`:t instanceof Error&&(e+=` (${t.message})`),ti(e)}},rE=async(e,t)=>{if(eE.current)return;eE.current=!0,ti(null),tc(null);let n=Date.now(),a={id:(0,aE.A)(),title:G("chat.page.newTitle"),flowId:null,personaTargetId:e,personaBehaviorSlotKey:t,createdAt:n,updatedAt:n};try{let e=await eL.O.createConversation(a);rT(e)}catch(t){aV.error("Error creating Persona conversation on backend:",t);let e=t instanceof eL.b?aZ(t):t instanceof Error?t.message:"";ti(`${G("chat.page.createFailed")}${e?` (${e})`:""}`)}finally{eE.current=!1}};(0,aD.R)({param:"flow",ready:tg.length>0,exists:e=>tg.some(t=>t.id===e)&&!eC(e),onResolve:e=>rM(e),consume:!0,replacePath:"/chat"});let rR=aX(()=>{rM()});(0,aD.R)({param:a_.AW,ready:tg.length>0,exists:e=>(0,a_.k2)(e),onResolve:e=>{(0,a_.pP)(e)&&rR()},consume:!0,replacePath:"/chat"}),(0,r.useEffect)(()=>(0,a_.lP)(e=>{(0,a_.pP)(e)&&rR()}),[rR]);let[rN,rW]=(0,r.useState)(null),rP=(0,r.useRef)(0),rO=(0,r.useCallback)(e=>{rP.current+=1,rW({id:e,requestKey:rP.current})},[]),rD=(0,r.useRef)(null),rF=(0,r.useRef)(!1),r_=(0,r.useCallback)(e=>{if(rD.current=e,en.some(t=>t.id===e)){eZ(e),rO(e);return}!eh.current.hasMore||rF.current?aV.warn("Conversation deep link target does not exist, ignoring",{id:e}):(rF.current=!0,rm().then(t=>{if(rD.current===e){if(!t.some(t=>t.id===e))return void aV.warn("Conversation deep link target does not exist, ignoring",{id:e});eZ(e),rO(e)}}).catch(t=>{aV.warn("Could not materialize conversation deep link target",{id:e,error:t})}).finally(()=>{rF.current=!1}))},[en,rm,rO,eZ]);(0,aD.R)({param:"conversation",ready:!er,exists:e=>en.some(t=>t.id===e)||eh.current.hasMore,onResolve:e=>r_(e)});let[rq,rB]=(0,r.useState)(null);(0,aD.R)({param:"message",ready:!ex&&!!eg&&eg.id===eA,exists:e=>!!eg?.messages?.some(t=>t.id===e),onResolve:e=>rB(e),consume:!0,replacePath:eA?(0,aF.F)({kind:"conversation",id:eA}):"/chat"}),(0,r.useEffect)(()=>{if(er||rF.current)return;let e=new URLSearchParams(window.location.search);if(e.get("flow")||e.get("message")||e.get(a_.AW))return;let t=eS.current,n=e.get("conversation");if(t){n!==t&&V.replace((0,aF.F)({kind:"conversation",id:t}));return}n&&V.replace("/chat")},[eA,en,er,V]),(0,r.useEffect)(()=>{if(!rq)return;let e=window.setTimeout(()=>rB(null),4e3);return()=>window.clearTimeout(e)},[rq]),(0,r.useEffect)(()=>{rB(null)},[eA]);let[rH,rL]=(0,r.useState)(!1),rU=async e=>{ti(null),tc(null);let t=(0,aE.A)(),{flow:n}=await eL.O.synthesizeQuickChat({conversationId:t,modelId:e.modelId,servers:e.servers,systemPrompt:e.systemPrompt}),a=Date.now(),r=await eL.O.createConversation({id:t,title:G("chat.page.quickChat"),flowId:n.id,flowSnapshot:n,createdAt:a,updatedAt:a});ea(e=>[r,...e].sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt))),eZ(r.id),ef({id:r.id,title:r.title,flowId:r.flowId,createdAt:r.createdAt,updatedAt:r.updatedAt,messages:[]}),ev(!1),ej(null),rL(!1)},rK=(0,r.useCallback)(e=>{aV.debug("Updating detailed conversation state locally",{conversationId:e.id});let t={...e,updatedAt:Date.now()};ef(t),ea(e=>e.map(e=>e.id===t.id?{...e,title:t.title,updatedAt:t.updatedAt}:e).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt)))},[]),rJ=(0,r.useCallback)(()=>{null!==a3.current&&(clearTimeout(a3.current),a3.current=null);let e=a6.current;a6.current=null,e&&(null!=e.laneIndex&&ah(t=>tP(t,e)),ae(t=>({totalTokens:t?.totalTokens??0,activeNode:function(e,t){if(!t)return e;let n=t.split(/\r?\n/).map(e=>e.replace(/\s+/g," ").trim()).filter(Boolean).at(-1);if(!n)return e;let a=n.length>160?`${n.slice(0,159)}…`:n;return`${e} — ${a}`}(e.name,e.message),startedAt:t?.startedAt??Date.now(),lastEventAt:Date.now()})))},[]),rV=(0,r.useCallback)(e=>{a6.current=e,null===a3.current&&(a3.current=setTimeout(rJ,100))},[rJ]),rX=(0,r.useCallback)(()=>{a5.current++,null!==a4.current&&clearTimeout(a4.current),a4.current=null,a2.current(),null!==a3.current&&(clearTimeout(a3.current),a3.current=null),a6.current=null,az.current&&(aV.debug("Closing execution event stream"),az.current.close(),az.current=null)},[]),rG=(0,r.useCallback)((e,t)=>{ea(n=>{let a=n.findIndex(t=>t.id===e);if(-1===a||n[a].status===t)return n;let r=[...n];return r[a]={...r[a],status:t},r})},[]),rY=(0,r.useCallback)(()=>{null!==a1.current&&(clearTimeout(a1.current),a1.current=null);let e=a0.current;0!==e.length&&(a0.current=[],ef(t=>t?function(e,t){if(0===t.length)return e;let n=e.messages,a=!1,r=new Map(n.map((e,t)=>[e.id,t]));for(let o of t.length>1?[...t].sort((e,t)=>e.seq-t.seq):t){if(o.conversationId!==e.id)continue;let t=r.get(o.messageId)??-1,s=t>=0?n[t]:{id:o.messageId,role:"assistant",content:"",timestamp:o.timestamp,processNodeId:o.node?.nodeId};if("assistant"!==s.role)continue;let i=[...s.tool_calls??[]],l=o.toolCallDelta;if(l){let e=i[l.index];i[l.index]={id:l.id??e?.id??`pending_${o.messageId}_${l.index}`,type:"function",function:{name:`${e?.function.name??""}${l.nameDelta??""}`,arguments:`${e?.function.arguments??""}${l.argumentsDelta??""}`}}}let d=o.mediaPart?[...s.media??[],...(s.media??[]).some(e=>e.type===o.mediaPart?.type&&e.url===o.mediaPart?.url&&e.resourceUri===o.mediaPart?.resourceUri)?[]:[o.mediaPart]]:s.media,c={...s,content:`${"string"==typeof s.content?s.content:""}${o.delta??""}`,...d?{media:d}:{},...i.length>0?{tool_calls:i}:{}};a||(n=[...n],a=!0),t>=0?n[t]=c:(r.set(o.messageId,n.length),n.push(c))}return a?{...e,messages:n}:e}(t,e):t),ae(e=>({totalTokens:e?.totalTokens??0,activeNode:e?.activeNode??null,startedAt:e?.startedAt??Date.now(),lastEventAt:Date.now()})))},[]);a2.current=rY;let rQ=(0,r.useCallback)(e=>{a0.current.push(e),null===a1.current&&(a1.current=setTimeout(rY,125))},[rY]),rZ=(0,r.useCallback)(e=>{if("number"==typeof e.seq){if(e.seq<=a9.current)return;a9.current=e.seq}let t="run:awaiting_question"===e.type||"run:question_resolved"===e.type||"run:awaiting_elicitation"===e.type||"run:elicitation_resolved"===e.type||"run:elicitation_cancelled"===e.type||"run:done"===e.type,n=a8.current,a=e.conversationId===eS.current&&(n.conversationId!==e.conversationId||e.seq>n.seq);if(t&&a&&(a8.current={conversationId:e.conversationId,seq:e.seq}),"model:delta"===e.type){ao(t=>t?.conversationId===e.conversationId?null:t),rQ(e);return}if("tool:progress"===e.type){rV(e),an(t=>t&&(!e.conversationId||t.conversationId===e.conversationId)?null:t);return}rJ(),rY(),("run:start"===e.type||"run:done"===e.type||"run:paused"===e.type||"breakpoint:hit"===e.type||"subflow:start"===e.type||"subflow:done"===e.type||"node:enter"===e.type||"node:exit"===e.type||"handoff"===e.type||"resource:read"===e.type||"resource:write"===e.type||"error"===e.type)&&ad(t=>{if("run:start"===e.type)return[e];let n=[...t,e];return n.length>2e3?n.slice(n.length-2e3):n}),"recovery:retry"!==e.type&&an(t=>t&&(!e.conversationId||t.conversationId===e.conversationId)?null:t);let r=e=>ae(t=>({totalTokens:e.totalTokens??t?.totalTokens??0,activeNode:void 0!==e.activeNode?e.activeNode:t?.activeNode??null,startedAt:t?.startedAt??Date.now(),lastEventAt:Date.now()})),o=e=>ai(t=>{let n,a=Date.now(),r={byNode:{...t.byNode},byResource:{...t.byResource},byResourceName:{...t.byResourceName},resourceVersion:t.resourceVersion};return e(r),{byNode:(n=e=>{let t={};for(let[n,r]of Object.entries(e))a-r.ts<4e3&&(t[n]=r);return t})(r.byNode),byResource:n(r.byResource),byResourceName:n(r.byResourceName),resourceVersion:r.resourceVersion}});if(null!=e.laneIndex)switch(ah(t=>tP(t,e)),e.type){case"node:enter":if(e.node?.nodeId){let t=e.node.nodeId;o(e=>{e.byNode[t]={kind:"active",ts:Date.now()}}),ab(e=>e.has(t)?e:new Set(e).add(t))}r({});return;case"tool:call":case"subflow:start":case"handoff":r({});return}switch(e.type){case"run:start":ao(null),ae({totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),ai(nR),ah(tN),ag([]),e.conversationId&&(rG(e.conversationId,"running"),rd(e.conversationId,!1));break;case"model:status":{if(e.depth||void 0!==e.laneIndex)break;let t="requires_action"===e.state?G("chat.sdk.requiresAction"):"compacting"===e.state?G("chat.sdk.compacting"):"api_retry"===e.kind?G("chat.sdk.retry",{attempt:e.attempt??1}):"rate_limit_event"===e.kind&&"rejected"===e.state?G("chat.sdk.rateLimit"):null;ao(t?{conversationId:e.conversationId,text:t}:null),r({});break}case"model:dispatch":if(r({activeNode:e.turn.node.nodeName||e.turn.node.nodeId}),!nW.current.has(e.turn.id)){nW.current.add(e.turn.id);let t=[...nP.current,e.turn].sort((e,t)=>e.timestamp-t.timestamp);nP.current=t,nd(t),nE.current?(nf(e.turn.id),t3(null),nv(null),nj(null),nM(0)):nM(e=>e+1)}break;case"model:dispatch-result":for(let t of(r({}),nP.current=nP.current.map(t=>t.id===e.dispatchId?{...t,outcome:e.outcome}:t),nd(nP.current),nv(t=>t?.entry.id===e.dispatchId?{...t,entry:{...t.entry,outcome:e.outcome}}:t),nN.current.keys()))t.endsWith(`:${e.dispatchId}`)&&nN.current.delete(t);break;case"model:end":r({}),e.discard&&e.messageId&&ef(t=>{if(!t||t.id!==e.conversationId)return t;let n=t.messages.filter(t=>t.id!==e.messageId);return n.length===t.messages.length?t:{...t,messages:n}});break;case"message":{let t=e.message;r({}),ef(n=>{let a;if(!n||n.id!==e.conversationId)return n;let r=n.messages.findIndex(e=>e.id===t.id);return r>=0?(a=[...n.messages])[r]={...a[r],...t}:a=[...n.messages,t],{...n,messages:a}});break}case"node:changed-files":{r({});let t=e.node?.nodeId;if(!t||0===e.changedFiles.length)break;ef(n=>{if(!n||n.id!==e.conversationId)return n;let a=n.messages.findLastIndex(e=>e.processNodeId===t);if(a<0)return n;let r=[...n.messages];return r[a]={...r[a],changedFiles:e.changedFiles.map(({path:e,status:t})=>({path:e,status:t}))},{...n,messages:r}});break}case"usage":ae(t=>({totalTokens:(t?.totalTokens??0)+Math.max(0,(e.totalTokens||0)-(e.cacheReadTokens||0)),activeNode:t?.activeNode??null,startedAt:t?.startedAt??Date.now(),lastEventAt:Date.now()}));break;case"node:enter":if(r({activeNode:e.node?.nodeName||e.node?.nodeId||null}),e.node?.nodeId){let t=e.node.nodeId;o(e=>{e.byNode[t]={kind:"active",ts:Date.now()}}),ab(e=>e.has(t)?e:new Set(e).add(t))}break;case"resource:read":case"resource:write":{let t="resource:read"===e.type?"read":"write";if("resource:write"===e.type&&"tool-result"===e.source&&e.toolCallId&&e.uri.startsWith("flujo://run/")&&e.conversationId===eS.current){let t=e.toolCallId,n={uri:e.uri,..."number"==typeof e.size?{size:e.size}:{},...e.mimeType?{mimeType:e.mimeType}:{}};eP(e=>{let a=e[t];return a?.uri===n.uri&&a.size===n.size&&a.mimeType===n.mimeType?e:{...e,[t]:n}})}if("resource:write"===e.type&&"snapshot"===e.source&&e.snapshot&&e.node?.nodeId&&e.conversationId===eS.current){let t=e.node.nodeId,n=e.snapshot.root;os(e.conversationId),or(a=>(0,tC.aE)(a,{serverName:"filesystem",uri:"ui://devcanvas/diff",instanceKey:`snapshot::${t}::${n}`,toolName:"snapshot_diff",resultContent:JSON.stringify({snapshotDiff:{nodeId:t,nodeName:e.node?.nodeName,root:n,startSnapshot:e.snapshot?.startSnapshot,endSnapshot:e.snapshot?.endSnapshot,changedFiles:e.snapshot?.changedFiles,resourceUri:e.uri}}),updateId:e.seq},Date.now(),Number.MAX_SAFE_INTEGER).state)}o(n=>{var a,r;let o=Date.now();e.node?.nodeId&&(n.byNode[e.node.nodeId]={kind:"read"===t?"resource-read":"resource-write",ts:o}),e.server&&e.uri&&(n.byResource[a=e.server,r=e.uri,`${a} ${r}`]={kind:t,ts:o}),e.name&&(n.byResourceName[e.name]={kind:t,ts:o}),"write"===t&&(n.resourceVersion=n.resourceVersion+1)}),r({});break}case"todo:update":ag(e.todos??[]),r({});break;case"tool:call":r({activeNode:e.name});break;case"subflow:start":r({activeNode:`↳ ${e.subflowName||e.subflowId}`});break;case"handoff":r({activeNode:`→ ${e.toNodeId}`});break;case"run:awaiting_approval":e.conversationId&&e.conversationId===eS.current&&tW(e.pendingToolCalls||[]),e.conversationId&&rG(e.conversationId,e.pendingToolCalls?.length?"awaiting_tool_approval":"running");break;case"run:awaiting_elicitation":a&&tD({elicitationId:e.elicitationId,message:e.message,requestedSchema:e.requestedSchema});break;case"run:elicitation_cancelled":case"run:elicitation_resolved":a&&(tD(t=>s(t,e.elicitationId)),rf(e.conversationId));break;case"run:awaiting_question":a&&t_({questionId:e.questionId,questions:e.questions});break;case"run:question_resolved":a&&(t_(t=>i(t,e.questionId)),rf(e.conversationId));break;case"breakpoint:hit":case"run:paused":e5(!1),e.conversationId&&(e3(e.conversationId,!1),rG(e.conversationId,"paused_debug")),tV(!0);break;case"run:done":if(e.conversationId&&(e3(e.conversationId,!1),rG(e.conversationId,e.status)),"error"===e.status&&e.error&&e.conversationId===eS.current&&tc(e.error),a&&(tD(null),t_(null)),e.conversationId&&ru.current&&e.conversationId!==ru.current)break;ae(null),ai(nR),ah(tN),e5(!1),ak(null),rX(),e.conversationId&&e.conversationId===eS.current?rx(e.conversationId):rh(void 0,{silent:!0});break;case"recovery:retry":e.conversationId&&(an({conversationId:e.conversationId,attempt:e.attempt,maxAttempts:e.maxAttempts,retryAt:e.retryAt}),rG(e.conversationId,"running")),r({});break;case"error":ti(e.message||G("chat.page.executionError")),tc(e.error??{message:e.message||G("chat.page.executionError")});break;default:r({})}},[rX,rQ,rV,rx,rh,rY,rJ,e3,rG,rd,rf,G]),r0=(0,r.useCallback)((e,t,n)=>{rX();let a=a5.current;return a9.current=void 0!==t?t-1:-1,ah(tN),new Promise(r=>{let o=!1,s=()=>{o||(o=!0,r())};try{az.current=eL.O.subscribeToEvents(e,{onEvent:e=>{a5.current===a&&rZ(e)},onOpen:()=>{s(),a5.current===a&&eS.current===e&&(re.current++,a8.current={conversationId:e,seq:-1},rf(e))},onReset:t=>{if(s(),a5.current!==a)return;rX(),re.current++,a8.current={conversationId:e,seq:-1};let n=a5.current;rx(e).then(()=>{a5.current===n&&eS.current===e&&(a4.current=setTimeout(()=>{a4.current=null,a5.current===n&&eS.current===e&&r0(e,t.nextSeq,{activityOnly:!0})},3e3))}).catch(t=>aV.warn("Failed to recover execution snapshot",{conversationId:e,err:t}))}},t,n),setTimeout(s,1500)}catch(t){aV.error("Failed to open execution event stream",{conversationId:e,err:t}),s()}})},[rZ,rX,rx,rf]);(0,r.useEffect)(()=>{if(eA&&rw?.status==="running"&&ru.current!==eA){if(rs.current.has(eA))return void aV.debug("Skipping re-attach to a conversation the user just stopped",{conversationId:eA});aV.info("Re-attaching to in-progress run",{conversationId:eA}),ru.current=eA,e5(!0),ak(eA),e3(eA,!0),ae(e=>e??{totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),r0(eA,0,{activityOnly:!0})}},[eA,rw?.status,r0]);let r1=async e=>{aV.debug("Attempting to delete conversation",{conversationId:e}),ti(null),tc(null),ro.current.add(e);let t=rn.current.delete(e);ru.current===e&&(rX(),e5(!1),ak(null),ae(null),ah(tN),an(null)),e3(e,!1),e9(t=>tz(t,e));let n=en.filter(t=>t.id!==e);ea(n);let a=eA;eA===e&&(n.length>0?(a=n[0].id,aV.debug("Deleted current conversation, selecting next most recent",{nextSelectionId:a})):(a=null,aV.debug("Deleted last conversation, clearing selection")),eZ(a));try{await eL.O.deleteConversation(e),aV.info("Successfully deleted conversation on backend",{conversationId:e}),t||(ep.current=Math.max(0,ep.current-1),em({...eh.current,total:Math.max(0,eh.current.total-1)}))}catch(a){aV.error("Error deleting conversation:",{conversationId:e,err:a});let n=a instanceof eL.b?aZ(a):a instanceof Error?a.message:"";ti(G("chat.page.deleteFailed",{id:e})+(n?` (${n})`:"")),ro.current.delete(e),t&&rn.current.add(e),ea(en),eZ(eA)}},r2=async e=>{if(!e.length)return;ti(null),tc(null);let t=new Set(e),n=new Set(e.filter(e=>rn.current.has(e))),a=en.filter(e=>t.has(e.id)&&!n.has(e.id)).length;e.forEach(e=>ro.current.add(e)),e.forEach(e=>rn.current.delete(e));let r=eS.current;r&&t.has(r)&&ru.current===r&&(rX(),e5(!1),ak(null),ae(null),ah(tN),an(null)),e.forEach(e=>{e3(e,!1),e9(t=>tz(t,e))}),ea(e=>e.filter(e=>!t.has(e.id))),r&&t.has(r)&&eZ(null);try{let t=await eL.O.deleteConversations(e);aV.info("Bulk delete succeeded",{requested:e.length,...t}),ep.current=Math.max(0,ep.current-a);let r=e.length-n.size;em({...eh.current,total:Math.max(0,eh.current.total-Math.min(t.deleted,r))})}catch(t){aV.error("Bulk delete failed",{err:t}),ti(G("chat.page.bulkDeleteFailed")),e.forEach(e=>ro.current.delete(e)),n.forEach(e=>rn.current.add(e)),ea(en),eZ(eA)}},r5=async e=>{if(aV.debug("Flow selected, attempting to update",{flowId:e,currentConversationId:eA}),ti(null),tc(null),!eA){aV.warn("Cannot update flow: No conversation selected."),ti(G("chat.page.selectFirst"));return}eg&&eg.id===eA&&ef({...eg,flowId:e,updatedAt:Date.now()}),ea(t=>t.map(t=>t.id===eA?{...t,flowId:e,updatedAt:Date.now()}:t).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt)));try{let t=await eL.O.updateConversationFlow(eA,e);aV.info("Successfully updated flowId on backend",{conversationId:eA,flowId:e}),ef(e=>e&&e.id===eA?(aV.debug("Confirming detailedConversation update from server response",{conversationId:eA,flowId:t.flowId}),{...e,flowId:t.flowId,updatedAt:t.updatedAt}):(aV.debug("Skipping detailedConversation update, ID mismatch or null state",{currentDetailedId:e?.id,targetId:eA}),e)),ea(e=>e.map(e=>e.id===eA?t:e).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt)))}catch(n){aV.error("Error updating flowId on backend:",{conversationId:eA,flowId:e,err:n});let t=G("chat.page.updateAgentFailed");n instanceof eL.b?t+=` (${aZ(n)})`:n instanceof Error&&(t+=` (${n.message})`),ti(t),ef(eg),ea(en)}},r4=()=>{tk(eg?.title??rw?.title??""),tw(!0)},r6=async()=>{if(tw(!1),!eA)return;let e=eg?.title??rw?.title??"",t=tj.trim().slice(0,200);if(t&&t!==e){ef(e=>e&&e.id===eA?{...e,title:t}:e),ea(e=>e.map(e=>e.id===eA?{...e,title:t}:e));try{let e=await eL.O.updateConversationTitle(eA,t);ef(t=>t&&t.id===eA?{...t,title:e.title}:t),ea(t=>t.map(t=>t.id===eA?{...t,title:e.title}:t))}catch(t){aV.warn("Failed to rename conversation",{conversationId:eA,err:t}),ef(t=>t&&t.id===eA?{...t,title:e}:t),ea(t=>t.map(t=>t.id===eA?{...t,title:e}:t)),ti(G("chat.page.renameFailed"))}}},r3=async(e,t=[],n)=>{let a;if(!e.trim()&&0===t.length)return;if(!eg){aV.error("Cannot send message, detailed conversation not loaded."),ti(G("chat.page.detailsMissing")),eS.current&&(0,nu.IU)({type:"chat-run-status",conversationId:eS.current,status:"error"});return}if(!n?.fromQueue&&e4.has(eg.id)){let n=eg.id;if(0!==t.length||tH){let a={id:(0,aE.A)(),content:e,attachments:t,nodeOverride:tH??null,mcpSkillSelections:eM,timestamp:Date.now()};e9(e=>{var t,r,o;return t=e,r=n,o=a,{...t,[r]:[...t[r]??[],o]}}),tL(null),aV.debug("Run in progress — queued message (not steerable)",{conversationId:n,queuedId:a.id,reason:t.length>0?"attachments":"node-override"});return}{let t=(0,aE.A)(),{delivered:a}=await eL.O.injectMessage(n,e,t);if(a){let a={id:t,role:"user",content:e,timestamp:Date.now()};rK({...eg,messages:[...eg.messages,a]}),aV.debug("Run in progress — injected steering message into the live run",{conversationId:n,messageId:t});return}aV.debug("Steering rejected (run no longer live) — sending as a normal turn",{conversationId:n})}}aV.debug("Sending message",{conversationId:eg.id,contentLength:e.length,attachmentsCount:t.length});let r=eg.messages,o=!r.some(e=>"user"===e.role),s=eg.flowId,i=n?.fromQueue?n.nodeOverride??null:tH;if(eg.personaId)n?.fromQueue||tL(null);else if(i)a=i,n?.fromQueue||tL(null),aV.debug(`Assigning manually picked node ID to user message: ${a}`);else if(o){let e=aM(tg.find(e=>e.id===s));e?(a=e.id,aV.debug(`Assigning start node ID to first user message: ${a}`)):aV.warn(`Could not find start node for flow ${s}. User message will not have a processNodeId.`)}else if(rw?.status==="error"){let e=aM(tg.find(e=>e.id===s));e?(a=e.id,aV.debug(`Post-error message: re-driving turn from start node ID: ${a}`)):aV.warn(`Could not find start node for post-error message in flow ${s}. User message will not have a processNodeId.`)}else{for(let e=r.length-1;e>=0;e--){let t=r[e];if("assistant"===t.role&&t.processNodeId){a=t.processNodeId,aV.debug(`Assigning last assistant node ID to user message: ${a}`);break}}if(!a){let e=aM(tg.find(e=>e.id===s));e?(a=e.id,aV.debug(`No prior assistant node ID found, falling back to start node ID: ${a}`)):aV.warn(`Could not find start node for fallback in flow ${s}. User message will not have a processNodeId.`)}}let l={id:(0,aE.A)(),role:"user",content:e,timestamp:Date.now(),attachments:t.length>0?t:void 0,processNodeId:a},d={...eg,messages:[...eg.messages,l]};if(rK(d),d.personaId||d.flowId){let e=n?.fromQueue?n.mcpSkillSelections:eM;await r8(d,{appendMessage:l,mcpSkillSelections:e})}else ti(G("chat.page.chooseAgent")),(0,nu.IU)({type:"chat-run-status",conversationId:d.id,status:"error"}),ef(eg)},r7=(0,r.useCallback)((e,t)=>{aV.verbose("Handling API response data",JSON.stringify(e)),e3(t,"running"===e.status);let n=ru.current===t,a=eS.current===t;if("paused_debug"===e.status&&e.debugState){let r=e.debugState;return(aV.info("API Response: Paused for debugging",{conversationId:t}),a)?(tG(r),tV(!0),nD(!0),e5(!1),ak(null),rX(),r9(),ef(e=>e?.id===t&&r.messages&&JSON.stringify(e.messages)!==JSON.stringify(r.messages)?(aV.debug("Updating detailed conversation messages from debug state"),{...e,messages:r.messages,updatedAt:r.updatedAt}):e),ea(e=>e.map(e=>e.id===t?{...e,title:r.title??e.title,flowId:r.flowId??e.flowId,status:"paused_debug",updatedAt:r.updatedAt}:e).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt)))):(rG(t,"paused_debug"),n&&(e5(!1),ak(null),rX(),r9())),!0}if(("completed"===e.status||"error"===e.status)&&a?(aV.info(`API Response: Execution completed or errored (Status: ${e.status}). Hiding debugger panel.`,{conversationId:t}),n_(!1),nB(!1),tE(!1),tV(!1),tG(null),nD(!1),aj([]),(0,nu.IU)({type:"chat-run-status",conversationId:t,status:e.status})):aV.debug(`API Response: Status is '${e.status}'. Debugger panel visibility unchanged (currently ${tJ?"visible":"hidden"}).`,{conversationId:t}),e.messages&&e.conversation_id===t){let n=e.messages.map((e,n)=>"number"!=typeof e.timestamp||isNaN(e.timestamp)?(aV.warn(`Invalid timestamp found in message index ${n} from API response. Defaulting to Date.now().`,{conversationId:t,messageId:e.id,invalidTimestamp:e.timestamp}),{...e,timestamp:Date.now()}):e);ef(a=>{let r=a;return a?.id===t&&JSON.stringify(a.messages)!==JSON.stringify(n)&&(aV.info("API Response/Polling: Updating detailed conversation messages",{conversationId:t,newMessageCount:n.length}),r={...a,messages:n,updatedAt:e.updatedAt||a.updatedAt}),aV.debug("Polling: setDetailedConversation callback executed.",{conversationId:t,messagesChanged:r!==a,newMessageCount:r?.messages?.length??"N/A"}),r})}if("awaiting_tool_approval"===e.status)aV.info("API Response/Polling: Pausing for tool approval",{conversationId:t}),a&&tW(e.pendingToolCalls||[]),n&&(e5(!1),ak(null),rX(),r9());else if("completed"===e.status||"error"===e.status){if(aV.info("API Response/Polling: Stopping due to final status",{conversationId:t,status:e.status}),n&&(r9(),e5(!1),ak(null),rX()),"error"===e.status){let r="object"==typeof e.lastResponse&&null!==e.lastResponse&&"string"==typeof e.lastResponse.error?e.lastResponse.error:void 0,o=e.error?.message||r||G("chat.page.unknownExecutionError");aY.test(o)||rs.current.has(t)?(rd(t,!0),(n||a)&&ti(null),tc(null),aV.info("API Response/Polling: Execution cancelled by user",{conversationId:t})):(ti(o),aV.error("API Response/Polling: Execution resulted in error",{conversationId:t,error:e.error||e.lastResponse}))}rx(t)}else"running"!==e.status||tJ?a&&tW(null):(a&&tW(null),n&&!a$.current&&e5(!0));return e.conversation_id===t&&ea(n=>n.map(n=>n.id===t?{...n,title:e.title??n.title,flowId:e.flowId??n.flowId,status:e.status??n.status,updatedAt:e.updatedAt||n.updatedAt}:n).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt))),!1},[ef,tW,e5,ti,tV,tG,ea,rx,rX,e3,rG,rd,G]),r9=()=>{a$.current&&(aV.debug("Stopping polling interval"),clearInterval(a$.current),a$.current=null)};(0,r.useEffect)(()=>()=>{rX()},[rX]);let r8=async(e,t)=>{if(!e?.id||!e.personaId&&!e.flowId||!aS.current)return aV.error("Cannot send to completions: Missing conversation ID or target.",{id:e?.id,flowId:e?.flowId,personaId:e?.personaId}),ti(G("chat.page.agentMissing")),!1;if(!t?.appendMessage&&e.transcriptWindow?.truncated)try{e=await eL.O.getConversation(e.id)}catch(t){return aV.error("Could not hydrate history required for transcript mutation",{conversationId:e.id,error:t}),ti(G("chat.page.detailsLoadFailed",{id:e.id})),!1}let n=!!(t?.appendMessage&&!rn.current.has(e.id));tW(null),ti(null),tc(null),e5(!0),ak(e.id),e3(e.id,!0),rG(e.id,"running"),rd(e.id,!1);let a=rn.current.delete(e.id);ae({totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),await r0(e.id);let r=!1;try{let a,o,s,i,l;if(e.personaId)a="flow-Persona",aV.debug("Sending Persona-targeted chat to completions",{personaId:e.personaId,conversationId:e.id});else if(eC(e.flowId))a="flow-Quick Chat",aV.debug("Sending quick chat to completions",{flowId:e.flowId,conversationId:e.id});else{if(!e.flowId)throw Error("Conversation Flow is missing.");let t=await nz.g.getFlow(e.flowId);if(!t)throw Error(`Flow with ID ${e.flowId} not found`);a=`flow-${t.name}`,aV.debug("Sending to chat completions",{flowId:e.flowId,flowName:t.name,conversationId:e.id})}let d=(n&&t?.appendMessage?[t.appendMessage]:e.messages).filter(e=>!e.disabled&&!((e.depth??0)>0)).map(e=>{let t=function(e){if(Array.isArray(e.content))return e.content;let t="string"==typeof e.content?e.content:"",n=e.attachments??[],a=n.filter(e=>"document"===e.type&&!e.content.startsWith("data:")),r=n.filter(e=>"image"===e.type),o=n.filter(e=>"image"!==e.type&&!a.includes(e));if(a.length>0&&(t+="\n\n"+a.map(e=>`[DOCUMENT]: ${e.content}`).join("\n\n")),0===r.length&&0===o.length)return t;let s=[];for(let e of(t.trim()&&s.push({type:"text",text:t}),r))s.push({type:"image_url",image_url:{url:e.content}});for(let e of o)if("audio"===e.type){let t=/^data:([^;,]+);base64,([\s\S]*)$/.exec(e.content),n=e.mimeType??t?.[1];t&&("audio/wav"===n||"audio/mpeg"===n)?s.push({type:"input_audio",input_audio:{data:t[2],format:"audio/mpeg"===n?"mp3":"wav"}}):s.push({type:"audio_url",audio_url:{url:e.content,mime_type:n}}),e.transcript&&s.push({type:"text",text:`[Audio transcript]: ${e.transcript}`})}else"video"===e.type?s.push({type:"video_url",video_url:{url:e.content,mime_type:e.mimeType}}):s.push({type:"file",file:{file_data:e.content,filename:e.originalName,mime_type:e.mimeType}});return s}(e),n=e.processNodeId,a={id:e.id,timestamp:e.timestamp};return"user"===e.role?{role:"user",content:t,...a,processNodeId:n}:"assistant"===e.role?{role:"assistant",content:t,tool_calls:e.tool_calls,toolPayloads:e.toolPayloads,...a,processNodeId:n}:"system"===e.role?{role:"system",content:t,...a,processNodeId:n}:"tool"===e.role?e.tool_call_id?{role:"tool",content:t,tool_call_id:e.tool_call_id,toolPayloads:e.toolPayloads,...a,processNodeId:n}:{role:"user",content:"string"==typeof t?`Tool result: ${t}`:t,...a,processNodeId:n}:{role:"user",content:t,...a,processNodeId:n}}),c=await aS.current.chat.completions.create({model:a,messages:d,stream:!1,metadata:(o=rt.current.get(e.id),s=(0,nm.s)(e),i={flujo:"true",requireApproval:tv?"true":void 0,flujodebug:tM?"true":void 0,conversationId:e.id,compactToolPayloads:"true",appendMessages:n?"true":void 0,processNodeId:t?.processNodeId,...s,mcpAppContexts:void 0===o?void 0:JSON.stringify(o),mcpSkills:t?.mcpSkillSelections?.length?JSON.stringify(t.mcpSkillSelections):void 0},l={},i.flujo&&(l.flujo=i.flujo),i.requireApproval&&(l.requireApproval=i.requireApproval),i.flujodebug&&(l.flujodebug=i.flujodebug),i.conversationId&&(l.conversationId=i.conversationId),i.compactToolPayloads&&(l.compactToolPayloads=i.compactToolPayloads),i.appendMessages&&(l.appendMessages=i.appendMessages),i.processNodeId&&(l.processNodeId=i.processNodeId),i.personaId&&(l.personaId=i.personaId),i.behaviorSlotKey&&(l.behaviorSlotKey=i.behaviorSlotKey),void 0!==i.mcpAppContexts&&(l.mcpAppContexts=i.mcpAppContexts),void 0!==i.mcpSkills&&(l.mcpSkills=i.mcpSkills),l)});aV.debug("Chat completion initial response received",{completionId:c.id}),r=!0;let u={status:c.status||"completed",conversation_id:e.id,messages:c.messages||e.messages,pendingToolCalls:c.pendingToolCalls,debugState:c.debugState,error:c.error,lastResponse:c.lastResponse,updatedAt:c.updatedAt||Date.now()},h=r7(u,e.id);h||a$.current?h&&aV.debug("Debug state handled, polling remains stopped."):aV.debug("Starting polling after initial non-debug response.")}catch(n){if(aQ(n)||rs.current.has(e.id))return aV.info("Chat completion cancelled by user",{conversationId:e.id}),(0,nu.IU)({type:"chat-run-status",conversationId:e.id,status:"error"}),r=!1,e3(e.id,!1),rd(e.id,!0),ru.current===e.id&&(r9(),e5(!1),ak(null),rX(),ti(null),tc(null)),r;aV.error("Error calling chat completions API:",n),(0,nu.IU)({type:"chat-run-status",conversationId:e.id,status:"error"}),r=!1;let t="An error occurred while sending the message.";if(n instanceof aR.LG)t=`API Error: ${n.message} (Status: ${n.status})`,n.code&&(t+=` (Code: ${n.code})`),n.type&&(t+=` [Type: ${n.type}]`),aV.verbose("APIError details",JSON.stringify(n));else if(n instanceof aR.vc){t=`OpenAI Error: ${n.message}`;let e="error"in n&&n.error&&"object"==typeof n.error?n.error:void 0;e&&"object"==typeof e&&(e.code&&(t+=` (Code: ${e.code})`),e.type&&(t+=` [Type: ${e.type}]`)),aV.verbose("OpenAIError details",JSON.stringify(n))}else n instanceof eL.b?(t=`Error: ${aZ(n)}`,n.status&&(t+=` (Status: ${n.status})`),aV.verbose("ChatApiError details",JSON.stringify(n.body))):n instanceof Error&&(t=n.message);ti(t),e3(e.id,!1),ru.current===e.id&&(r9(),e5(!1),ak(null),rX()),a&&rn.current.add(e.id)}finally{}return r},oe=(0,r.useRef)(r3);oe.current=r3,(0,r.useEffect)(()=>{let e=e=>{if(!(0,nu.Ri)(e)||"send-example"!==e.detail.type)return;let{conversationId:t,message:n}=e.detail;eS.current!==t?(0,nu.IU)({type:"chat-run-status",conversationId:t,status:"error"}):((0,nu.IU)({type:"chat-run-status",conversationId:t,status:"running"}),oe.current(n).catch(()=>{(0,nu.IU)({type:"chat-run-status",conversationId:t,status:"error"})}))};return window.addEventListener(nu.dD,e),()=>window.removeEventListener(nu.dD,e)},[]);let ot=(0,r.useCallback)(e=>!!eA&&eS.current===eA&&(oe.current(e),!0),[eA]),on=(0,r.useCallback)((e,t)=>{if(!eA||eS.current!==eA)return!1;let n={...rt.current.get(eA)??{}};return(void 0===t.content&&void 0===t.structuredContent?delete n[e]:n[e]=t,(0,t$.Yw)(n)>t$.uJ)?(aV.warn("Rejected oversized aggregate MCP App model context",{conversationId:eA,appKey:e}),!1):(rt.current.set(eA,n),!0)},[eA]),[oa,or]=(0,r.useState)(tC.zs),[oo,os]=(0,r.useState)(eA),[oi,ol]=(0,r.useState)({placement:"bottom",reservedWidth:0,reservedHeight:0}),od=(0,r.useCallback)(e=>{ol(t=>t.placement===e.placement&&t.reservedWidth===e.reservedWidth&&t.reservedHeight===e.reservedHeight?t:e)},[]),oc=(0,r.useRef)(new Set),ou=(0,r.useCallback)((e,t,n)=>{let a=`${e}\0${t}`;n?eY.current.set(a,n):eY.current.delete(a)},[]),oh=(0,r.useCallback)((e,t)=>{eA&&ou(eA,e,t)},[eA,ou]),op=(0,r.useCallback)(e=>{let t=eS.current;if(!t)return;let n=(0,tC.cb)(e.serverName,e.uri);(0,tC.h)({automatic:!!e.automatic,dismissed:aL(t).includes(n),suppressed:aJ(t),healthy:e.healthy})&&(e.automatic||(eU(t,n,!1),eG(t,!1)),os(t),or(t=>{let{state:n}=(0,tC.aE)(t,e,Date.now(),Number.MAX_SAFE_INTEGER);return n}))},[eG,eU]),om=(0,r.useCallback)(e=>{let t=eS.current;t&&(e?(aU(t,(0,tC.dd)(oa).map(e=>e.key),!0),eG(t,!0)):eG(t,!1))},[oa,eG]),og=(0,r.useCallback)(()=>{let e=eS.current;if(!e)return;let t=(0,tC.dd)(oa).map(e=>e.key);0===t.length||(aU(e,t,!0),eG(e,!0),Promise.allSettled(t.map(t=>{let n=eY.current.get(`${e}\0${t}`);return n?n():Promise.resolve()})).finally(()=>{eS.current===e&&or(e=>{let n=e;for(let e of t)n=(0,tC.o4)(n,e);return n})}))},[oa,eG]),of=(0,r.useCallback)(e=>{or(t=>(0,tC.Az)(t,e))},[]),ox=(0,r.useCallback)(e=>{if(!eA)return;eU(eA,e,!0);let t=eY.current.get(`${eA}\0${e}`),n=()=>{eS.current===eA&&or(t=>(0,tC.o4)(t,e))};t?t().finally(n):n()},[eA,eU]);(0,r.useEffect)(()=>{os(eA),or(tC.zs),ol({placement:"bottom",reservedWidth:0,reservedHeight:0})},[eA]);let ov=oa.order.join("|");(0,r.useEffect)(()=>{let e=eg?.messages;if(!e||!eg||eg.id!==eA||oo!==eA)return;let t=new Map;for(let n of e)if("assistant"===n.role&&Array.isArray(n.tool_calls))for(let e of n.tool_calls)"function"===e.type&&e.id&&t.set(e.id,e);let n=new Map;for(let a of e){let e=a.ui;if("tool"===a.role&&e?.uri&&e?.serverName&&"string"==typeof a.content){let r="string"==typeof a.tool_call_id?t.get(a.tool_call_id):void 0,o={serverName:e.serverName,uri:e.uri,toolName:e.toolName??(r?.type==="function"?r.function.name:void 0),toolArgs:e.toolArgs??(r?.type==="function"?r.function.arguments:void 0),resultContent:a.content,toolOwnerScope:e.toolOwnerScope,cancelledReason:e.cancelledReason,isError:e.isError,updateId:a.id};n.set(`${e.serverName}::${e.uri}`,o)}}or(e=>{let t=e;for(let e of t.order){let a=t.entries[e],r=n.get(e);a&&r&&(r.updateId!==a.latestToolUpdateId||r.toolOwnerScope!==a.latestToolOwnerScope||r.toolArgs!==a.latestToolArgs||void 0===r.cancelledReason&&r.resultContent!==a.latestResultContent||r.cancelledReason!==a.latestToolCancelledReason||r.isError!==a.latestToolIsError)&&(t=(0,tC.hx)(t,r))}return t})},[ov,oo,eA,eg?.id,eg?.messages]),(0,r.useEffect)(()=>{if(!eA||oo!==eA||oa.order.length<=tC.Yb)return;let{evicted:e}=(0,tC.lR)(oa,tC.Yb,oa.activeKey??void 0);for(let t of e){let e=`${eA}\0${t}`;if(oc.current.has(e))continue;oc.current.add(e),aV.info(`Canvas tab cap reached — gracefully evicting (LRU): ${t}`);let n=eY.current.get(e);(n?n():Promise.resolve()).finally(()=>{oc.current.delete(e),eS.current===eA&&or(e=>(0,tC.o4)(e,t))})}},[oa,oo,eA]);let oy=async(e,t,n)=>{if(!eg)return;aV.debug("Editing message",{messageId:e,contentLength:t.length,processNodeId:n});let a=eg;if(a.transcriptWindow?.truncated){try{a=await eL.O.getConversation(a.id)}catch(e){aV.error("Could not load full transcript before editing",{conversationId:a.id,error:e}),ti(G("chat.page.sendEditedFailed"));return}if(eS.current!==a.id)return}let r=a.messages.findIndex(t=>t.id===e);if(-1===r)return;let o={...a.messages[r],content:t,timestamp:Date.now(),processNodeId:n||void 0},s={...a,messages:[...a.messages.slice(0,r),o],transcriptWindow:{truncated:!1,loadedCount:r+1,totalCount:r+1,source:"durable-log"}};rK(s),await r8(s,{processNodeId:s.personaId?void 0:n||void 0})},ob=(0,r.useCallback)(e=>{let t=eg?.messages.find(t=>t.id===e);t&&"user"===t.role&&"string"==typeof t.content&&tK({messageId:e,content:t.content,nodeId:t.processNodeId??rC[0]?.id??null})},[eg,rC]),ow=(0,r.useCallback)(e=>{tK(t=>t?{...t,content:e}:t)},[]),oj=(0,r.useCallback)(e=>{tK(t=>t?{...t,nodeId:e}:t)},[]),oA=(0,r.useCallback)(()=>tK(null),[]),ok=(e,t="head")=>{var n;if(!eg)return;aV.debug("Splitting conversation at message",{messageId:e,half:t});let a=eg.messages.findIndex(t=>t.id===e);if(-1===a)return;let r=(n=eg.messages,"head"===t?n.slice(0,a+1):function(e,t){let n=e.slice(0,t).filter(e=>"system"===e.role),a=new Set,r=[];for(let n of e.slice(t)){if("assistant"===n.role&&Array.isArray(n.tool_calls))for(let e of n.tool_calls)e?.id&&a.add(e.id);("tool"!==n.role||!n.tool_call_id||a.has(n.tool_call_id))&&r.push(n)}return[...n,...r]}(n,a));if(0===r.length)return void aV.debug("Split produced no messages — ignoring",{messageId:e,half:t});let o=(0,aE.A)(),s={id:o,title:G("head"===t?"chat.page.splitTitle":"chat.page.splitTailTitle",{title:eg.title}),messages:r,flowId:eg.flowId,...eg.personaId?{personaId:eg.personaId}:{},...eg.personaBehaviorSlotKey?{personaBehaviorSlotKey:eg.personaBehaviorSlotKey}:{},createdAt:Date.now(),updatedAt:Date.now()},i={id:o,title:s.title,flowId:s.flowId,...s.personaId?{personaId:s.personaId}:{},...s.personaBehaviorSlotKey?{personaBehaviorSlotKey:s.personaBehaviorSlotKey}:{},createdAt:s.createdAt,updatedAt:s.updatedAt};rn.current.add(o),ea(e=>[i,...e].sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt))),eZ(o),ef(s),ev(!1),ej(null)},oS=async(e,t)=>{if(eA){aV.info(`Handling tool response: ${e}`,{conversationId:eA,toolCallId:t}),tW(null),e5(!0),ak(eA),e3(eA,!0),rG(eA,"running"),ti(null),tc(null),await r0(eA);try{let n=await eL.O.respondToToolCall(eA,e,t);aV.debug("Tool response successful",{conversationId:eA,action:e,toolCallId:t}),r7(n,eA)}catch(a){if(aQ(a)||rs.current.has(eA)){aV.info("Tool-response resume cancelled by user",{conversationId:eA}),rd(eA,!0),ru.current===eA&&e5(!1),e3(eA,!1);return}aV.error(`Error sending tool response (${e})`,{conversationId:eA,toolCallId:t,err:a});let n="approve"===e?G("chat.page.approveFailed"):G("chat.page.rejectFailed");a instanceof eL.b?n+=` (${aZ(a)})`:a instanceof Error&&(n+=` (${a.message})`),ti(n),ru.current===eA&&e5(!1),e3(eA,!1)}}},oI=async e=>{if(eA){aV.info("Cancelling single tool call",{conversationId:eA,toolCallId:e});try{await eL.O.cancelToolCall(eA,e)}catch(t){aV.warn("Failed to cancel tool call",{conversationId:eA,toolCallId:e,err:t})}}},oC=async e=>{let t=eS.current;if(t){ti(null),tc(null);try{let n=await fetch((0,nc.TA)(`/v1/chat/conversations/${encodeURIComponent(t)}/respond`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.error??"Unable to respond to this request.")}eS.current===t&&(ti(null),tc(null),e.elicitationId&&tD(t=>s(t,e.elicitationId)),e.questionId&&t_(t=>i(t,e.questionId)))}catch(n){aV.warn("Failed to respond to pending input",{conversationId:t,action:e.action,err:n}),eS.current===t&&(tc(null),tn(e=>e+1),ti(te[e.action]))}finally{await rf(t)}}},o$=async(e,t)=>oC({action:"elicitation-submit",elicitationId:e,content:t}),oz=async e=>{await oC({action:"elicitation-cancel",elicitationId:e})},oT=async(e,t)=>{await oC({action:"question-answer",questionId:e,answers:t})},oM=async e=>{await oC({action:"question-decline",questionId:e})},oE=async()=>{if(eA&&tJ){aV.info("Handling debug step request",{conversationId:eA}),e5(!0),ak(eA),e3(eA,!0),ti(null),tc(null),await r0(eA);try{let e=await eL.O.debugStep(eA);r7(e,eA)}catch(e){aV.error("Error during debug step API call",{conversationId:eA,err:e}),ti(e instanceof Error?e.message:G("chat.page.debugStepFailed")),e5(!1),e3(eA,!1),tV(!1),tG(null)}finally{}}},oR=async()=>{if(eA&&tJ){aV.info("Handling debug continue request",{conversationId:eA}),e5(!0),ak(eA),e3(eA,!0),rG(eA,"running"),ti(null),tc(null),n_(!1),nB(!1),tE(!1),tV(!1),tG(null),nD(!1),aj([]),await r0(eA);try{let e=await eL.O.debugContinue(eA);r7(e,eA)}catch(e){aV.error("Error during debug continue API call",{conversationId:eA,err:e}),ti(e instanceof Error?e.message:G("chat.page.debugContinueFailed")),e5(!1),e3(eA,!1)}finally{}}};(0,r.useEffect)(()=>{tX&&aj(tX.breakpoints??[])},[tX]);let oN=(0,r.useCallback)(async e=>{if(eA){aj(e);try{await eL.O.setBreakpoints(eA,e)}catch(e){aV.error("Failed to update breakpoints",{conversationId:eA,err:e}),aj(aw)}}},[aw,eA]),oW=(0,r.useCallback)(async e=>{if(!eA)return;let t=aw.includes(e)?aw.filter(t=>t!==e):[...aw,e];aj(t);try{await eL.O.setBreakpoints(eA,t)}catch(e){aV.error("Failed to update breakpoints",{conversationId:eA,err:e}),aj(aw)}},[aw,eA]),oP=(0,r.useCallback)(async()=>{if(eA){aV.info("Attaching debugger to running conversation",{conversationId:eA}),nB(!0);try{await eL.O.attachDebugger(eA)}catch(e){aV.error("Failed to attach debugger",{conversationId:eA,err:e}),nB(!1),ti(e instanceof Error?e.message:G("chat.page.attachDebuggerFailed"))}}},[eA,G]),oO=(0,r.useCallback)(()=>{nF||nO||tJ?a7.current?.():(n_(!0),tE(!0),(e2&&aA===eA||eA&&e4.has(eA)||rw?.status==="running")&&eA&&(az.current||r0(eA),oP()))},[nF,nO,tJ,e2,aA,eA,e4,rw?.status,oP,r0]),oD=async()=>{if(!eA||!tJ)return;let e=tX?.currentNodeId;e5(!0),ak(eA),e3(eA,!0),ti(null),tc(null),await r0(eA);try{for(let t=0;t<50;t++){let t=await eL.O.debugStep(eA),n=t?.status??t?.debugState?.status,a=t?.debugState?.currentNodeId;if("paused_debug"!==n||a&&a!==e)return void r7(t,eA)}aV.warn("Step Over hit iteration cap",{conversationId:eA}),e5(!1),e3(eA,!1)}catch(e){aV.error("Error during step over",{conversationId:eA,err:e}),ti(e instanceof Error?e.message:G("chat.page.stepOverFailed")),e5(!1),e3(eA,!1)}},oF=async()=>{if(eA){aV.info("Cancelling request",{conversationId:eA}),r9(),e5(!1),ak(null),e3(eA,!1),rd(eA,!0),n_(!1),nB(!1),tE(!1),tV(!1),tG(null),nD(!1),aj([]),rX(),tW(null),t_(null),tD(null),an(null),ti(null),tc(null);try{await eL.O.cancel(eA),aV.debug("Cancel request sent successfully",{conversationId:eA}),await rx(eA)}catch(e){aV.error("Error sending cancel request",{conversationId:eA,err:e}),ti(G("chat.page.cancelFailed"))}}},o_=async e=>{if(e===eA)return void await oF();aV.info("Stopping background conversation",{conversationId:e}),rd(e,!0);try{await eL.O.cancel(e),e3(e,!1),await rh(void 0,{silent:!0})}catch(t){aV.error("Error stopping background conversation",{conversationId:e,err:t}),ti(G("chat.page.cancelFailed"))}},oq=async e=>{if(eA&&!tp){tm(e),ti(null),tc(null);try{let t=await eL.O.retrySubflowRecovery(eA,e);t.failed.length>0?ti(t.failed.map(e=>e.error).join("\n")):rd(eA,!1),await Promise.all([rx(eA),rh(void 0,{silent:!0})]);try{th(await eL.O.getSubflowRecoveryOptions(eA))}catch{th(null)}}catch(t){aV.error("Subflow recovery failed",{conversationId:eA,scope:e,err:t}),ti(t instanceof Error?t.message:G("chat.page.recoveryFailed"))}finally{tm(null)}}},oB=(0,r.useCallback)(async()=>{if(aV.info("Closing debugger panel (detach)",{conversationId:eA,wasPaused:tJ}),n_(!1),nB(!1),tE(!1),tV(!1),tG(null),nD(!1),eA){try{await eL.O.setBreakpoints(eA,[]),aj([])}catch(e){aV.error("Failed to clear breakpoints while detaching",{conversationId:eA,err:e})}if(tJ){e5(!0),ak(eA),e3(eA,!0),rG(eA,"running"),await r0(eA);try{let e=await eL.O.debugContinue(eA);r7(e,eA)}catch(e){aV.error("Failed to resume run while detaching the debugger",{conversationId:eA,err:e}),e5(!1),e3(eA,!1),ti(e instanceof Error?e.message:G("chat.page.debugContinueFailed"))}}}},[eA,tJ,r0,r7,e3,G]);(0,r.useEffect)(()=>{a7.current=oB},[oB]),(0,r.useEffect)(()=>{if(!eA||!nF&&!nO||tX||!(tJ||rw?.status==="paused_debug"))return;let e=!1;return(async()=>{try{let t=await eL.O.getDebugState(eA);if(e||!t?.debugState)return;tG(t.debugState),nD(!0),tV(!0),nB(!1),aj(t.breakpoints??[])}catch(e){aV.error("Failed to hydrate debug state",{conversationId:eA,err:e})}})(),()=>{e=!0}},[eA,nF,nO,tX,tJ,rw?.status]),aV.debug("Rendering Chat component",{currentConversationId:eA,isHandleEditMessageDefined:!0});let oH=(nF||nO||tJ)&&!!eA,oL=nq?"attaching":"armed",oU=(0,r.useCallback)(e=>{tQ(e),t1(0),nf(null),nv(null),n$(!1),nE.current=!1},[]),oK=tX?.executionTrace??[],oJ=0===oK.length?-1:tY>=0&&tY<oK.length?tY:oK.length-1,oV=oJ>=0?oK[oJ]:void 0,oX=tX?.debugBoundary,oG=!!oX&&(0===oK.length||tY<0||oJ===oK.length-1),oY=oG&&oX.modelInput?[oX.modelInput]:[],oQ=oY.length>0?oY:oV?.modelInputs?.length?oV.modelInputs:oV?.modelInput?[oV.modelInput]:[],oZ=oQ.length>0?Math.min(tZ,oQ.length-1):0,o0=oQ[oZ],o1=nl.find(e=>e.id===nh),o2=!!o1,o5=oH&&!!tX&&(oQ.length>0||oJ>=0),o4=!!t6&&!!eA,o6=o2||o5||o4,o3="chat"===t2&&o2&&!nC,o7="wire"===t2&&o2,o9="wire"===t2&&!o2&&o5,o8="wire"===t2&&!o2&&!o5&&o4,se=o7||o9||o8,st=(0,r.useMemo)(()=>(nx&&!(0,ay.ZN)(nx)?nx.canonicalMessages:[]).filter(e=>"system"!==e.role),[nx]);(0,r.useEffect)(()=>{if(!o1)return void nb(!1);let e=`${o1.conversationId}:${o1.id}`,t=nN.current.get(e);if(t){nv(t),nj(null),nb(!1);return}nN.current.clear();let n=new AbortController;return nv(null),nj(null),nb(!0),eL.O.getModelTurnInspection(o1.conversationId,o1.id,{signal:n.signal}).then(t=>{n.signal.aborted||(nN.current.set(e,t),nv(t))}).catch(e=>{n.signal.aborted||nj(e instanceof Error?e.message:"Could not load this model turn.")}).finally(()=>{n.signal.aborted||nb(!1)}),()=>n.abort()},[o1,nA]),(0,r.useEffect)(()=>{ns.current?.abort();let e=++ni.current;if(!o8||!eA||!t6)return void ne(!1);let t=new AbortController;return ns.current=t,t9(null),nn(null),ne(!0),eL.O.getWirePreview(eA,t6,{signal:t.signal}).then(n=>{t.signal.aborted||e!==ni.current||t9(n)}).catch(n=>{t.signal.aborted||e!==ni.current||nn(n instanceof Error?n.message:G("chat.preview.loadFailed"))}).finally(()=>{t.signal.aborted||e!==ni.current||ne(!1)}),()=>t.abort()},[o8,eA,t6,nr,G]);let sn=rw?.status==="awaiting_tool_approval"||!!tR,sa=!(sn||rw?.status==="paused_debug")&&(e2&&aA===eA||!!eA&&e4.has(eA)||rw?.status==="running"),sr=!sa&&!!eA&&ri.has(eA);(0,r.useEffect)(()=>{var e;if(!eA||e8.current||!eg||eg.id!==eA)return;let t=(e7[eA]??[])[0];if(!t||!(!(e={running:e4.has(eA),pendingApproval:!!tR,debugPaused:tJ,hasError:rw?.status==="error",stopped:sr}).running&&!e.pendingApproval&&!e.debugPaused&&!e.hasError&&!e.stopped))return;e8.current=!0;let n=setTimeout(async()=>{try{e9(e=>tT(e,eA,t.id)),await r3(t.content,t.attachments,{fromQueue:!0,nodeOverride:t.nodeOverride,queuedId:t.id,mcpSkillSelections:t.mcpSkillSelections})}catch{e9(e=>{var n,a,r;let o;return n=e,a=eA,r=t,o=(n[a]??[]).filter(e=>e.id!==r.id),{...n,[a]:[r,...o]}})}finally{e8.current=!1}},0);return()=>clearTimeout(n)},[eA,eg,e7,e4,tR,tJ,rw?.status,sr]);let so=aX(r1),ss=aX(r2),si=aX(o_),sl=aX(rM),sd=(0,r.useCallback)(()=>rL(!0),[]),sc=tu?(0,a.jsxs)(c.default,{sx:{display:"flex",gap:.5,flexWrap:"wrap",justifyContent:"flex-end"},children:[(0,a.jsx)(u.A,{color:"inherit",size:"small",startIcon:"branch"===tp?(0,a.jsx)(h.default,{color:"inherit",size:14}):(0,a.jsx)(R.A,{}),disabled:!!tp||!tu.canRetryBranch,onClick:()=>void oq("branch"),children:G("chat.page.recoverBranch")}),tu.canRetrySiblings&&(0,a.jsx)(u.A,{color:"inherit",size:"small",startIcon:"siblings"===tp?(0,a.jsx)(h.default,{color:"inherit",size:14}):(0,a.jsx)(B.A,{}),disabled:!!tp,onClick:()=>void oq("siblings"),children:G("chat.page.recoverLevel",{count:tu.incompleteSiblingCount})}),tu.canRetryDeepest&&tu.deepestFailedCount>1&&(0,a.jsx)(u.A,{color:"inherit",size:"small",startIcon:"deepest"===tp?(0,a.jsx)(h.default,{color:"inherit",size:14}):(0,a.jsx)(q.A,{}),disabled:!!tp,onClick:()=>void oq("deepest"),children:G("chat.page.recoverLeaves",{count:tu.deepestFailedCount})})]}):null,su=er?(0,a.jsxs)(c.default,{role:"status","aria-live":"polite","aria-atomic":"true",sx:{display:"flex",flexDirection:"column",gap:1,justifyContent:"center",alignItems:"center",height:"100%",p:2},children:[(0,a.jsx)(h.default,{size:32,"aria-hidden":"true"}),(0,a.jsx)(p.A,{variant:"body2",color:"text.secondary",children:G("chat.page.loadingConversations")})]}):el?(0,a.jsx)(m.A,{severity:"error",sx:{m:2},children:el}):(0,a.jsx)(ta,{conversations:en,totalConversations:ec.total+rn.current.size,hasMoreConversations:ec.hasMore,isLoadingMore:es,onLoadMore:rp,onLoadAll:rm,onPinsChanged:()=>{rh(void 0,{silent:!0})},flowNames:rj,personaNames:rA,currentConversationId:eA,revealRequest:rN,onSelectConversation:n7,onDeleteConversation:so,onBulkDelete:ss,onStopConversation:si,onNewConversation:sl,onQuickChat:Q?.modelAccess?.quickChat===!1?void 0:sd,onCollapse:n3,collapsed:n6});return(0,a.jsxs)(c.default,{"data-tutorial-conversation-id":eA??void 0,"data-tutorial-chat-status":sa?"running":rw?.status??void 0,sx:{display:"flex",height:`calc(
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8457],{399:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a5});var a=n(95155),r=n(12115),o=n(58776);function s(e,t){return e?.elicitationId===t?null:e}function i(e,t){return e?.questionId===t?null:e}var l=n(73321),d=n(7848),c=n(4550),u=n(52673),h=n(89009),p=n(37911),m=n(99306),g=n(9098),f=n(94771),x=n(97407),v=n(98935),y=n(66149),b=n(61125),w=n(16769),j=n(68204),A=n(14039),k=n(38644),S=n(85970),I=n(19777),C=n(28683),$=n(4061),z=n(74786),T=n(66301);let M=["top","up","bottom"];var E=n(74708),R=n(76304),N=n(56461),W=n(36885),P=n(40741),O=n(35275),D=n(3244),F=n(11652),_=n(42953),q=n(34812),B=n(78154),H=n(24102),L=n(41955),U=n(91452),K=n(17473),J=n(16079),V=n(87296),X=n(61315),G=n(65013),Y=n(2847),Q=n(1717),Z=n(10527),ee=n(31973),et=n(58687),en=n(70668),ea=n(62402),er=n(97788),eo=n(88496),es=n(285),ei=n(95746),el=n(39734),ed=n(88078),ec=n(11683),eu=n(61378),eh=n(95495),ep=n(46485),em=n(9123),eg=n(78366),ef=n(59299),ex=n(94580),ev=n(67226),ey=n(92053),eb=n(34253),ew=n(44855),ej=n(9828),eA=n(92279),ek=n(91295),eS=n(66737),eI=n(47494);function eC(e){return"string"==typeof e&&e.startsWith("quickchat-")}n(77483);var e$=n(62510),ez=n(72968),eT=n(29598);let eM="wave:__adhoc__",eE="wave:__archived__";var eR=n(90015),eN=n(83363),eW=n(6310);function eP({nodes:e,childrenByParent:t,renderItem:n,expanded:r,onToggle:o,depth:s=0,visited:i,maxDepth:l=20}){let{t:d}=(0,eW.s9)(),u=(0,C.A)();if(!e||0===e.length||s>l)return null;let h=i??new Set;return(0,a.jsx)(a.Fragment,{children:e.map((i,p)=>{if(h.has(i.id))return null;let m=t.get(i.id)??[],g=m.length>0&&s<l,x=!1!==r[i.id],v=new Set(h);v.add(i.id);let y=p===e.length-1,b=(0,eN.X4)(u.palette.primary.main,"dark"===u.palette.mode?.5:.34);return(0,a.jsxs)(c.default,{"data-tree-depth":s,sx:{position:"relative",pl:3.25*(s>0),...s>0?{"&::before":{content:'""',position:"absolute",left:12,top:0,bottom:y?"calc(100% - 31px)":0,borderLeft:`2px solid ${b}`},"&::after":{content:'""',position:"absolute",left:12,top:30,width:14,borderTop:`2px solid ${b}`,borderTopLeftRadius:6}}:{}},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"flex-start"},children:[g?(0,a.jsx)(f.A,{size:"small",onClick:()=>o(i.id),"aria-label":x?d("chat.chain.collapse"):d("chat.chain.expand"),sx:{mt:.5,flexShrink:0,zIndex:1,border:"1px solid",borderColor:b,bgcolor:"background.paper","&:hover":{bgcolor:"action.hover"}},children:x?(0,a.jsx)(ed.A,{fontSize:"small"}):(0,a.jsx)(el.A,{fontSize:"small"})}):(0,a.jsx)(c.default,{sx:{width:34,flexShrink:0}}),(0,a.jsx)(c.default,{sx:{flex:1,minWidth:0},children:n(i,s)})]}),g&&(0,a.jsx)(en.A,{in:x,timeout:"auto",unmountOnExit:!0,children:(0,a.jsx)(eP,{nodes:m,childrenByParent:t,renderItem:n,expanded:r,onToggle:o,depth:s+1,visited:v,maxDepth:l})})]},i.id)})})}var eO=n(89228);let eD="flujo-ui:chat-sidebar:pinned";var eF=n(94370);let e_={chat:{label:"User chat",description:"Started interactively from the chat workspace"},api:{label:"API",description:"Started through the chat completions API"},schedule:{label:"Automation",description:"Started by a planned execution or automation trigger"},trigger:{label:"Trigger",description:"Started by an unattended runtime trigger"},subflow:{label:"Subagent",description:"Spawned as a subagent by another conversation"},mcp:{label:"MCP run",description:"Started through FLUJO's MCP interface"},internal:{label:"Internal",description:"Started by an internal FLUJO tool"},meeting:{label:"Meeting",description:"Participated in a multi-flow meeting"},unknown:{label:"Unknown origin",description:"Origin metadata was not recorded for this older conversation"}};function eq(e,t){return{key:e,...e_[e],inferred:t}}function eB(e){return e.source&&e.source in e_?eq(e.source,!1):e.parentConversationId?eq("subflow",!0):e.plannedExecutionId?eq("schedule",!0):eq("unknown",!0)}var eH=n(94111),eL=n(96890),eU=n(57643),eK=n(22821),eJ=n(14999),eV=n(77311),eX=n(40337),eG=n(50062),eY=n(83299),eQ=n(43830),eZ=n(88038);let e0="flujo:projects-changed";function e1(e){let t=e.split(/[\\/]+/).filter(Boolean);return t[t.length-1]??e}function e2(e){let[t,n]=(0,r.useState)(null),[a,o]=(0,r.useState)(!0),[s,i]=(0,r.useState)(null),l=(0,r.useRef)(e);l.current=e;let d=(0,r.useRef)({}),c=(0,r.useCallback)(async()=>{let e=l.current;try{let t=await fetch(e?`/api/projects?conversationId=${encodeURIComponent(e)}`:"/api/projects"),a=await t.json().catch(()=>({}));if(e!==l.current)return;if(!t.ok)return void i(a.error||"Projects are unavailable.");n({projects:a.projects??[],activeProject:a.activeProject??null,chat:a.chat??null}),i(null)}catch{}finally{e===l.current&&o(!1)}},[]);return(0,r.useEffect)(()=>{o(!0),c()},[e,c]),(0,r.useEffect)(()=>{let e=e=>{e.detail!==d.current&&c()},t=()=>{c()},n=()=>{"visible"===document.visibilityState&&c()},a=window.setInterval(()=>{"visible"===document.visibilityState&&c()},15e3);return window.addEventListener(e0,e),window.addEventListener("focus",t),document.addEventListener("visibilitychange",n),()=>{window.clearInterval(a),window.removeEventListener(e0,e),window.removeEventListener("focus",t),document.removeEventListener("visibilitychange",n)}},[c]),{state:t,loading:a,error:s,refresh:c,act:(0,r.useCallback)(async(e,t={})=>{let a=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,conversationId:l.current??void 0,...t})}),r=await a.json().catch(()=>({}));if(!a.ok)throw Error(r.error||"The project could not be updated.");let o={projects:r.projects??[],activeProject:r.activeProject??null,chat:r.chat??null};return n(o),window.dispatchEvent(new CustomEvent(e0,{detail:d.current})),o},[])}}var e5=n(11755);let e4="flujo-ui:chat-sidebar:projects-collapsed",e6=e=>e.worktrees.filter(e=>e.managed).length,e3=function(){let e=(0,C.A)(),{t}=(0,eW.s9)(),{state:n,act:o}=e2(),[s,i]=(0,r.useState)(()=>(0,eR.Aq)(e4,!1)),[l,d]=(0,r.useState)(!1),[h,x]=(0,r.useState)(null),[v,y]=(0,r.useState)(null),b=async(e,t)=>{y(null);try{await o(e,t)}catch(e){y(e instanceof Error?e.message:String(e))}},w=n?.projects??[],$=w.find(e=>e.path===h);return(0,a.jsxs)(c.default,{"data-chat-projects-panel":!0,sx:{px:1.5,pt:1.2,pb:.6},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,a.jsxs)(u.A,{size:"small",color:"inherit",onClick:()=>{i(e=>((0,eR.vi)(e4,!e),!e))},"aria-expanded":!s,"aria-label":s?t("projects.show"):t("projects.hide"),endIcon:s?(0,a.jsx)(eJ.A,{}):(0,a.jsx)(eV.A,{}),sx:{flex:1,justifyContent:"flex-start",color:"text.secondary",fontWeight:760,letterSpacing:".08em",fontSize:"0.72rem"},children:[t("projects.title").toUpperCase(),w.length>0&&(0,a.jsx)(c.default,{component:"span",sx:{ml:.8,fontWeight:600},children:w.length})]}),(0,a.jsx)(g.A,{title:t("projects.add"),children:(0,a.jsx)(f.A,{size:"small","aria-label":t("projects.add"),onClick:()=>d(!0),children:(0,a.jsx)(eX.A,{fontSize:"small"})})})]}),v&&(0,a.jsx)(m.A,{severity:"error",onClose:()=>y(null),sx:{my:.8,wordBreak:"break-word"},children:v}),(0,a.jsxs)(en.A,{in:!s,children:[n&&0===w.length&&(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",component:"p",sx:{px:1,pb:.8},children:t("projects.empty")}),(0,a.jsx)(ea.A,{dense:!0,disablePadding:!0,sx:{maxHeight:220,overflowY:"auto"},children:w.map(r=>{let o=r.path===n?.activeProject,s=r.git;return(0,a.jsxs)(X.A,{selected:o,onClick:()=>{o||b("activate",{project:r.path})},"aria-current":o?"true":void 0,"aria-label":o?`${r.name} — ${t("projects.newChatsHere")}`:t("projects.makeActive",{project:r.name}),title:r.path,sx:{borderRadius:1.5,pr:.5,"& .project-remove":{opacity:0},"&:hover .project-remove, &:focus-within .project-remove":{opacity:1},...o?{bgcolor:`${(0,eN.X4)(e.palette.primary.main,.1)} !important`}:{}},children:[(0,a.jsx)(eK.A,{sx:{minWidth:30},children:o?(0,a.jsx)(eG.A,{fontSize:"small",color:"primary"}):(0,a.jsx)(eY.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:r.name,secondary:s?(0,a.jsxs)(c.default,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.4,minWidth:0},children:[(0,a.jsx)(eQ.A,{sx:{fontSize:"0.85rem"},"aria-hidden":"true"}),(0,a.jsx)(c.default,{component:"span",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:s.branch??s.head}),s.changes>0&&(0,a.jsxs)(c.default,{component:"span",sx:{color:"warning.main",fontWeight:700},"aria-label":t("projects.changes",{count:s.changes}),children:["•",s.changes]}),e6(s)>0&&(0,a.jsxs)(c.default,{component:"span",sx:{color:"text.disabled"},children:["+",e6(s)]})]}):t("projects.notGit"),slotProps:{primary:{noWrap:!0,sx:{fontWeight:o?750:600,fontSize:"0.84rem"}},secondary:{component:"span",sx:{display:"block",fontSize:"0.72rem"}}}}),o&&(0,a.jsx)(p.A,{variant:"caption",color:"primary",sx:{fontSize:"0.64rem",fontWeight:700,whiteSpace:"nowrap",mx:.5},children:t("projects.newChatsHere")}),(0,a.jsx)(g.A,{title:t("projects.remove"),children:(0,a.jsx)(f.A,{className:"project-remove",size:"small","aria-label":t("projects.remove"),onClick:e=>{e.stopPropagation(),x(r.path)},children:(0,a.jsx)(eZ.A,{fontSize:"small"})})})]},r.path)})})]}),(0,a.jsx)(e5.A,{open:l,title:t("projects.chooseFolder"),onClose:()=>d(!1),onSelect:e=>void b("add",{path:e})}),(0,a.jsxs)(j.A,{open:!!h,onClose:()=>x(null),fullWidth:!0,maxWidth:"xs",children:[(0,a.jsx)(A.A,{children:$?.name??h}),(0,a.jsxs)(k.A,{children:[(0,a.jsx)(S.A,{sx:{wordBreak:"break-word"},children:t("projects.remove")}),(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",sx:{fontFamily:"monospace",wordBreak:"break-all"},children:h})]}),(0,a.jsxs)(I.A,{children:[(0,a.jsx)(u.A,{onClick:()=>x(null),children:t("common.cancel")}),(0,a.jsx)(u.A,{color:"error",variant:"contained",onClick:()=>{x(null),b("remove",{project:h})},children:t("projects.dialog.removeAction")})]})]})]})};var e7=n(43409);let e9=["all","running","awaiting_tool_approval","paused_debug","completed","error"],e8=["all","today","7d","30d"],te=["none","date","flow","origin","wave","chain"],tt=["all","chat","schedule","subflow","meeting"],tn={chat:U.A,api:eg.A,schedule:eh.A,trigger:em.A,subflow:ep.A,mcp:ef.A,internal:ex.A,meeting:ev.A,unknown:ey.A},ta=r.memo(({conversations:e,totalConversations:t=e.length,hasMoreConversations:n=!1,isLoadingMore:o=!1,onLoadMore:s,onLoadAll:i,onPinsChanged:l,currentConversationId:d,revealRequest:m=null,onSelectConversation:x,onDeleteConversation:b,onBulkDelete:w,onStopConversation:$,onNewConversation:z,onQuickChat:T,onCollapse:M,collapsed:R=!1,flowNames:N={},personaNames:W={}})=>{let{t:O,tp:D,formatDate:_}=(0,eW.s9)(),q=(0,C.A)(),{visualStyle:B}=(0,eF.useTheme)(),H="modern"===B,[L,U]=r.useState(""),K=(0,e7.j)(),[J,eh]=r.useState({open:!1,ids:[],label:""}),[ep,em]=r.useState(!1),[eg,ef]=r.useState(null),[ex,ev]=r.useState({open:!1,parent:null,descendantIds:[],lookupFailed:!1}),[ey,e_]=(0,eR.Io)("flujo-ui:chat-sidebar:search-dim","title"),[eq,eK]=r.useState(null),[eJ,eV]=r.useState(!1),[eX,eG]=r.useState(!1),[eY,eQ]=r.useState(null),eZ=r.useRef(null),[e0,e1]=(0,eR.Io)("flujo-ui:chat-sidebar:group","none"),[e2,e5]=(0,eR.Io)(eD,[]),e4=r.useRef(e2);r.useEffect(()=>{e4.current!==e2&&(e4.current=e2,l?.())},[e2,l]);let[e6,ta]=(0,eR.Io)("flujo-ui:chat-sidebar:status","all"),[tr,to]=(0,eR.Io)("flujo-ui:chat-sidebar:flow","all"),[ts,ti]=(0,eR.Io)("flujo-ui:chat-sidebar:date","all"),[tl,td]=(0,eR.Io)("flujo-ui:chat-sidebar:origin","all"),[tc,tu]=(0,eR.Io)("flujo-ui:chat-sidebar:filters-open",!1),[th,tp]=(0,eR.Io)("flujo-ui:chat-sidebar:collapsed",{}),tm=L.trim(),tg=`${ey}\0${tl}\0${tm}`,tf=tm.length>0&&eq?.key===tg?eq:null,tx=tm.length>0?tf?.items??[]:e,[tv,ty]=r.useState(null),tb=(0,r.useMemo)(()=>tx.map(e=>`${e.id}:${e.plannedExecutionId??""}`).join("\0"),[tx]);r.useEffect(()=>{if("wave"!==e0)return;let e=!1;return fetch("/api/waves").then(e=>e.ok?e.json():null).then(t=>{!e&&t&&ty(t)}).catch(()=>{}),()=>{e=!0}},[e0,tb]);let tw=(0,r.useMemo)(()=>(function(e){let t=new Map;if(!e?.waves)return t;for(let n of e.waves){let e=n.rootExecutionIds?.[0],a=e&&n.nodes.find(t=>t.executionId===e)||n.nodes[0],r=a?.name||a?.flowName||n.id;for(let e of n.nodes)t.set(e.executionId,{waveId:n.id,label:r})}return t})(tv),[tv]);r.useEffect(()=>{if(0===tm.length){eZ.current?.abort(),eZ.current=null,eK(null),eQ(null),eV(!1),eG(!1);return}let e=`${ey}\0${tl}\0${tm}`,t=new AbortController;eZ.current?.abort(),eZ.current=t,eK(null),eQ(null),eV(!0),eG(!1);let n=setTimeout(()=>{eL.O.listConversationPage({limit:50,search:tm,dimension:ey,..."all"!==tl?{origin:tl}:{},signal:t.signal}).then(n=>{t.signal.aborted||eK({key:e,...n})}).catch(n=>{t.signal.aborted||n?.name==="AbortError"||(eK({key:e,items:[],total:0,hasMore:!1}),eQ(e))}).finally(()=>{eZ.current!==t||t.signal.aborted||eV(!1)})},300);return()=>{clearTimeout(n),t.abort(),eZ.current===t&&(eZ.current=null)}},[tm,ey,tl]);let tj=r.useCallback(async()=>{let e=eZ.current;if(tf?.hasMore&&tf.nextCursor&&e&&!e.signal.aborted&&!eX){eG(!0),eQ(null);try{let t=await eL.O.listConversationPage({limit:50,cursor:tf.nextCursor,search:tm,dimension:ey,..."all"!==tl?{origin:tl}:{},signal:e.signal});if(e.signal.aborted)return;eK(e=>{if(!e||e.key!==tg)return e;let n=new Set(e.items.map(e=>e.id)),a=t.items.filter(e=>!n.has(e.id));return{key:tg,...t,items:[...e.items,...a]}})}catch(t){if(e.signal.aborted||t?.name==="AbortError")return;eQ(tg)}finally{eZ.current!==e||e.signal.aborted||eG(!1)}}},[tf,eX,tl,ey,tg,tm]),tA=r.useCallback(e=>O(`chat.origin.${e}`),[O]),tk=r.useCallback(e=>O(`chat.origin.description.${e}`),[O]),tS=r.useCallback(e=>"all"===e?O("chat.history.anyOrigin"):"subflow"===e?O("chat.history.originSubflow"):tA(e),[tA,O]),tI=r.useCallback(({flowId:e,personaId:t,personaArchived:n})=>n?{key:"persona:__archived__",label:O("chat.history.archivedPersona")}:t?{key:`persona:${t}`,label:W[t]??O("chat.target.persona")}:e?eC(e)?{key:"flow:__quickchat__",label:O("chat.quick.title")}:{key:`flow:${e}`,label:N[e]??O("chat.history.unknownAgent")}:{key:"flow:__none__",label:O("chat.history.noAgent")},[N,W,O]),tC=(0,r.useMemo)(()=>{let e=new Map;for(let t of tx){let n=tI(t);e.has(n.key)||e.set(n.key,n.label)}return Array.from(e.entries()).map(([e,t])=>({key:e,label:t})).sort((e,t)=>e.label.localeCompare(t.label))},[tx,tI]),t$=r.useCallback(e=>{let t=Date.now(),n="today"===ts?t-864e5:"7d"===ts?t-6048e5:"30d"===ts?t-2592e6:0;return e.filter(e=>("all"===e6||e.status===e6)&&("all"===tr||tI(e).key===tr)&&("all"===tl||eB(e).key===tl)&&(!n||!(e.updatedAt<n))).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt))},[e6,tr,tl,ts,tI]),tz=(0,r.useMemo)(()=>t$(tx),[t$,tx]),tT=(0,r.useMemo)(()=>(function(e,t){let n=new Map(e.map(e=>[e.id,e])),a=new Map;for(let e of n.values()){let t=e.parentConversationId;if(!t||t===e.id)continue;let r=e.rootConversationId?n.get(e.rootConversationId):void 0;n.has(t)||!r||r.parentConversationId&&r.parentConversationId!==r.id||(t=r.id);let o=a.get(t)??[];o.push(e.id),a.set(t,o)}let r=new Set,o=t.filter(e=>n.has(e));for(;o.length>0;){let e=o.pop();r.has(e)||(r.add(e),o.push(...a.get(e)??[]))}return r})([...e,...tx],e2),[e,tx,e2]),tM=(0,r.useMemo)(()=>tz.filter(e=>tT.has(e.id)),[tz,tT]),tE=(0,r.useMemo)(()=>tz.filter(e=>!tT.has(e.id)),[tz,tT]),tR=(0,r.useMemo)(()=>(0,eO.C)(tM),[tM]),tN=(0,r.useMemo)(()=>{if("none"===e0)return[{key:"all",label:"",items:tE}];if("wave"===e0){var e;let t;return(e=(0,eT.Az)(tE,e=>(function(e,t){if(!e)return{key:eM,label:"Ad-hoc"};let n=t.get(e);return n?{key:`wave:${n.waveId}`,label:n.label}:{key:eE,label:"Archived / no longer scheduled"}})(e.plannedExecutionId,tw)),t=new Set([eM,eE]),[...e.filter(e=>!t.has(e.key)),...e.filter(e=>t.has(e.key))]).map(e=>({...e,label:"wave:__adhoc__"===e.key?O("chat.group.adhoc"):"wave:__archived__"===e.key?O("chat.group.archived"):e.label}))}return(0,eT.Az)(tE,e=>{if("date"===e0){let t=(0,ez.K)(e.updatedAt),n={"recency:unknown":O("flows.group.noDate"),"recency:today":O("flows.group.today"),"recency:week":O("flows.group.week"),"recency:month":O("flows.group.month"),"recency:older":O("flows.group.older")};return{...t,label:n[t.key]??t.label}}if("origin"===e0){let t=eB(e);return{key:`origin:${t.key}`,label:tA(t.key)}}return tI(e)})},[tE,e0,tI,tw,tA,O]),tW=(0,r.useMemo)(()=>"chain"===e0?(0,eO.C)(tE):{roots:[],childrenByParent:new Map,detachedIds:new Set},[e0,tE]),[tP,tO]=r.useState({}),tD=r.useCallback(e=>{tO(t=>({...t,[e]:!1===t[e]}))},[]),tF=(0,r.useMemo)(()=>{let e=new Map;if("wave"!==e0)return e;for(let t of tN)t.key!==eM&&t.key!==eE&&e.set(t.key,(0,eO.C)(t.items));return e},[e0,tN]),t_=(0,r.useMemo)(()=>{let e=new Set(tR.childrenByParent.keys());return"chain"===e0?tW.childrenByParent.forEach((t,n)=>e.add(n)):"wave"===e0&&tF.forEach(t=>{t.childrenByParent.forEach((t,n)=>e.add(n))}),[...e]},[tW,e0,tF,tR]),tq=r.useCallback(e=>{tO(t=>{let n={...t};return t_.forEach(t=>{n[t]=e}),n}),"wave"===e0&&tp(t=>{let n={...t};return tN.forEach(t=>{n[t.key]=!e}),n})},[t_,e0,tN,tp]),tB=t_.length>0||"wave"===e0&&tN.length>0,tH=r.useRef(null),tL=r.useRef(null),tU=r.useRef(null),tK=r.useRef(0),[tJ,tV]=r.useState(0);r.useEffect(()=>{if(!m)return;let{id:e,requestKey:t}=m;if(tL.current===t||e!==d||(tU.current!==t&&(tU.current=t,tK.current=0),!tz.some(t=>t.id===e)))return;let n="none"!==e0&&"chain"!==e0?tN.find(t=>t.items.some(t=>t.id===e)):void 0;if(n&&th[n.key])return void tp(e=>e[n.key]?{...e,[n.key]:!1}:e);let a=tT.has(e)?tR:"chain"===e0?tW:n?tF.get(n.key):void 0;if(a){let t=new Map;for(let[e,n]of a.childrenByParent)for(let a of n)t.set(a.id,e);let n=[],r=new Set([e]),o=t.get(e);for(;o&&!r.has(o);)r.add(o),!1===tP[o]&&n.push(o),o=t.get(o);if(n.length>0)return void tO(e=>{let t={...e};for(let e of n)t[e]=!0;return t})}let r=window.requestAnimationFrame(()=>{let n=tH.current?Array.from(tH.current.querySelectorAll("[data-conversation-id]")).find(t=>t.getAttribute("data-conversation-id")===e):void 0;if(n){tL.current=t,n.scrollIntoView({block:"nearest",behavior:"auto"});return}if(tK.current+=1,tK.current>=10){tL.current=t;return}tV(e=>e+1)});return()=>window.cancelAnimationFrame(r)},[m,d,tz,tN,e0,th,tp,tW,tT,tR,tF,tP,tJ]);let tX=+("all"!==e6)+ +("all"!==tr)+ +("all"!==tl)+ +("all"!==ts),tG=tX+ +("none"!==e0),tY=(e,t)=>{let n,r,o=t?.detached===!0,s=e2.includes(e.id),i=O(s?"chat.history.unpin":"chat.history.pin"),l=!!$&&("running"===e.status||"awaiting_tool_approval"===e.status),u=tI(e),m=u.key.startsWith("persona:"),v="flow:__quickchat__"===u.key,b=e.id===d,w=eB(e),j=tA(w.key),A=tk(w.key),k=tn[w.key],S=function(e,t){switch(e){case"subflow":return t.palette.warning.main;case"schedule":case"trigger":return eH.L.light.signal;case"mcp":return t.palette.info.main;case"meeting":return t.palette.secondary.main;default:return t.palette.primary.main}}(w.key,q),I=function(e,t){switch(e){case"running":return t.palette.primary.main;case"awaiting_tool_approval":return t.palette.warning.main;case"paused_debug":return t.palette.secondary.main;case"completed":return t.palette.success.main;case"capped":return t.palette.info.main;case"error":return t.palette.error.main;default:return t.palette.text.disabled}}(e.status,q),C=b?"dark"===q.palette.mode?.38:.3:"dark"===q.palette.mode?.3:.23;return(0,a.jsx)(V.Ay,{"data-conversation-id":e.id,"data-conversation-origin":w.key,disablePadding:!0,secondaryAction:(0,a.jsxs)(c.default,{className:"conversation-card-actions",sx:H?{display:"flex",zIndex:2,gap:.25,opacity:+!!b,transition:"opacity 160ms ease",bgcolor:(0,eN.X4)(q.palette.background.paper,.72),borderRadius:2,backdropFilter:"blur(12px)","& .MuiIconButton-root":{width:30,height:30}}:{display:"flex"},children:[(0,a.jsx)(g.A,{title:i,children:(0,a.jsx)(f.A,{size:"small","aria-label":i,"aria-pressed":s,onClick:t=>{t.stopPropagation(),e5(t=>t.includes(e.id)?t.filter(t=>t!==e.id):[...t,e.id])},children:s?(0,a.jsx)(eS.A,{color:"primary",fontSize:"small"}):(0,a.jsx)(eI.A,{fontSize:"small"})})}),l&&(0,a.jsx)(g.A,{title:O("chat.history.stop"),children:(0,a.jsx)(f.A,{edge:"end",size:"small","aria-label":O("chat.history.stop"),onClick:t=>{t.stopPropagation(),$(e.id)},children:(0,a.jsx)(P.A,{color:"error",fontSize:"small"})})}),(0,a.jsx)(e$.A,{target:{kind:"conversation",id:e.id}}),(0,a.jsx)(g.A,{title:O("chat.history.delete"),children:(0,a.jsx)(f.A,{edge:"end",size:"small","aria-label":O("chat.history.delete"),disabled:eg===e.id,onClick:t=>{t.stopPropagation(),t5(e)},children:eg===e.id?(0,a.jsx)(h.default,{size:16}):(0,a.jsx)(er.A,{fontSize:"small"})})})]}),sx:H?{contentVisibility:"auto",contain:"layout paint style",containIntrinsicSize:"0 104px",position:"relative",mb:.9,border:"1px solid",borderColor:b?(0,eN.X4)(S,.68):(0,eN.X4)(S,.32),borderRadius:2.5,overflow:"hidden",opacity:1,bgcolor:(0,eN.X4)(q.palette.background.paper,"dark"===q.palette.mode?.72:.82),backgroundImage:(n=(0,eN.X4)(S,C),r=(0,eN.X4)(I,C),`linear-gradient(90deg, ${n} 0%, ${n} 90%, ${r} 90%, ${r} 100%)`),boxShadow:b?`0 10px 30px ${(0,eN.X4)(S,.24)}`:`0 5px 20px ${(0,eN.X4)(S,"dark"===q.palette.mode?.12:.08)}`,transition:"transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease","&::before":{content:'""',position:"absolute",inset:"10px auto 10px 0",width:b?4:3,borderRadius:"0 4px 4px 0",bgcolor:S},"&::after":{content:'""',position:"absolute",zIndex:0,top:0,bottom:0,left:"90%",width:1,bgcolor:(0,eN.X4)(I,.5),pointerEvents:"none"},"&:hover":{transform:"translateY(-1px)",borderColor:(0,eN.X4)(S,.58),boxShadow:`0 10px 28px ${(0,eN.X4)(S,"dark"===q.palette.mode?.2:.14)}`,"& .conversation-card-actions":{opacity:1}},"&:focus-within .conversation-card-actions":{opacity:1},"@media (hover: none)":{"& .conversation-card-actions":{opacity:1}},"& > .MuiListItemSecondaryAction-root":{zIndex:2}}:{contentVisibility:"auto",contain:"layout paint style",containIntrinsicSize:"0 88px",opacity:b?1:.7,"& > .MuiListItemSecondaryAction-root":{zIndex:2}},children:(0,a.jsx)(X.A,{selected:b,onClick:()=>x(e.id),"aria-label":O("chat.history.openAria",{title:e.title,origin:j,status:(e=>{switch(e){case"running":return O("chat.status.processing");case"awaiting_tool_approval":return O("chat.status.waitingTooltip");case"paused_debug":return O("chat.status.pausedTooltip");case"completed":return O("chat.status.completed");case"capped":return O("chat.status.capped");case"error":return O("chat.status.error");default:return""}})(e.status)||O("chat.history.unknown")}),sx:{position:"relative",zIndex:1,px:H?1.5:2,pr:l?17:13,py:H?1.25:1,alignItems:"flex-start",borderRadius:"inherit","&.Mui-selected":{bgcolor:"transparent"},"&.Mui-selected:hover":{bgcolor:(0,eN.X4)(q.palette.primary.main,.04)}},children:(0,a.jsx)(G.A,{sx:{my:0,minWidth:0},primary:(0,a.jsx)(c.default,{sx:{display:"flex",alignItems:"center"},children:(0,a.jsx)(g.A,{title:e.title,enterDelay:500,children:(0,a.jsx)(p.A,{component:"span",sx:{fontWeight:b?760:H?650:"normal",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden",wordBreak:"break-word",fontSize:H?"0.9rem":void 0,lineHeight:H?1.35:void 0},children:e.title})})}),secondary:(0,a.jsxs)(c.default,{component:"span",sx:{display:"flex",alignItems:"center",gap:.75,mt:.8,flexWrap:"wrap"},children:["origin"!==e0&&(0,a.jsx)(g.A,{title:`${A}${w.inferred?` (${O("chat.history.inferred")})`:""}`,children:(0,a.jsx)(y.A,{icon:(0,a.jsx)(k,{}),label:j,size:"small",variant:"outlined",sx:{height:H?22:20,color:H?S:void 0,borderColor:H?(0,eN.X4)(S,.72):void 0,bgcolor:H?(0,eN.X4)(S,.13):void 0,"& .MuiChip-icon":{fontSize:14,color:H?S:void 0},"& .MuiChip-label":{px:.75,fontSize:"0.68rem",fontWeight:H?700:500}}})}),e.sessionKey&&(0,a.jsx)(g.A,{title:O("chat.history.session",{key:e.sessionKey}),children:(0,a.jsx)(y.A,{label:O("chat.history.session",{key:e.sessionKey}),size:"small",variant:"outlined",sx:{minWidth:0,maxWidth:"100%",height:H?22:20,"& .MuiChip-label":{overflow:"hidden",textOverflow:"ellipsis",px:.75,fontSize:"0.68rem"}}})}),o&&(0,a.jsx)(g.A,{title:O("chat.chain.detachedHelp"),children:(0,a.jsx)(y.A,{icon:(0,a.jsx)(ew.A,{}),label:O("chat.chain.detached"),size:"small",variant:"outlined",sx:{height:H?22:20,color:q.palette.text.secondary,borderColor:(0,eN.X4)(q.palette.text.secondary,.45),borderStyle:"dashed","& .MuiChip-icon":{fontSize:14,color:q.palette.text.secondary},"& .MuiChip-label":{px:.75,fontSize:"0.68rem",fontWeight:H?700:500}}})}),"flow"!==e0&&(0,a.jsx)(g.A,{title:v?O("chat.history.quickNoAgent"):m?O("chat.history.personaNamed",{persona:u.label}):O("chat.history.agentNamed",{agent:u.label}),children:(0,a.jsx)(y.A,{icon:v?(0,a.jsx)(E.A,{}):void 0,label:u.label,size:"small",variant:"outlined",color:v?"secondary":"default",sx:{maxWidth:"100%",height:H?22:20,"& .MuiChip-icon":{fontSize:14},"& .MuiChip-label":{px:.75,fontSize:"0.68rem"}}})}),(0,a.jsxs)(c.default,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.35,ml:"auto"},children:[H&&(0,a.jsx)(eb.A,{"aria-hidden":"true",sx:{fontSize:13,color:"text.disabled"}}),(0,a.jsx)(p.A,{component:"span",variant:"caption",color:"text.secondary",sx:{whiteSpace:"nowrap"},children:_(e.updatedAt,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})})]})]}),slotProps:{secondary:{component:"div"}}})})},e.id)},tQ=tm.length>0,tZ=eY===tg,t0=tQ&&!tf&&!tZ,t1=tQ?tf?.total??0:t,t2=tz.length,t5=async a=>{if(eg)return;ef(a.id);let r=new Set(function(e,t){let n=new Map;for(let t of e){let e=t.parentConversationId;if(!e||e===t.id)continue;let a=n.get(e)??[];a.push(t.id),n.set(e,a)}let a=new Set,r=[...n.get(t)??[]];for(;r.length>0;){let e=r.pop();e===t||a.has(e)||(a.add(e),r.push(...n.get(e)??[]))}return[...a]}(Array.from(new Map([...e,...tx].map(e=>[e.id,e])).values()),a.id)),o=!n&&e.length>=t;try{o||(await eL.O.listAllConversationPages({descendantsOf:a.id})).forEach(e=>r.add(e.id));let e=[...r];if(0===e.length)return void b(a.id);ev({open:!0,parent:a,descendantIds:e,lookupFailed:!1})}catch{ev({open:!0,parent:a,descendantIds:[...r],lookupFailed:!0})}finally{ef(null)}},t4=async()=>{em(!0);try{let t=i?await i():e;eh({open:!0,ids:t.map(e=>e.id),label:D("chat.history.deleteAllQuestion",t.length)})}finally{em(!1)}},t6=async()=>{em(!0);try{let t=tQ?await eL.O.listAllConversationPages({search:tm,dimension:ey,..."all"!==tl?{origin:tl}:{}}):i?await i():e,n=t$(t);eh({open:!0,ids:n.map(e=>e.id),label:D("chat.history.deleteVisibleQuestion",n.length)})}finally{em(!1)}};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(c.default,{sx:{p:H?2:1.5,display:"flex",justifyContent:"space-between",alignItems:"center",gap:H?1:.7,background:H?`linear-gradient(135deg, ${(0,eN.X4)(q.palette.primary.main,.14)}, ${(0,eN.X4)(q.palette.secondary.main,.05)} 58%, transparent)`:"linear-gradient(120deg, rgba(139,124,255,.09), transparent 62%)"},children:[M&&(0,a.jsx)(g.A,{title:R?O("chat.history.expand"):O("chat.history.collapse"),children:(0,a.jsx)(f.A,{size:"small",onClick:M,"aria-label":R?O("chat.history.expand"):O("chat.history.collapse"),children:(0,a.jsx)(F.A,{})})}),(0,a.jsxs)(c.default,{sx:{flex:1,minWidth:0},children:[(0,a.jsx)(p.A,{variant:"caption",sx:{display:"block",color:"primary.light",fontWeight:760,letterSpacing:".1em"},children:O("chat.history.agentRuns")}),(0,a.jsx)(p.A,{variant:"h6",noWrap:!0,children:O("chat.history.title")})]}),t>0&&(0,a.jsx)(g.A,{title:O("chat.history.deleteAll"),children:(0,a.jsx)("span",{children:(0,a.jsx)(f.A,{size:"small",color:"error","aria-label":O("chat.history.deleteAll"),disabled:ep,onClick:()=>void t4(),children:(0,a.jsx)(ec.A,{fontSize:"small"})})})}),tz.length>0&&(tQ||tX>0)&&(0,a.jsx)(g.A,{title:O("chat.history.deleteVisible"),children:(0,a.jsx)("span",{children:(0,a.jsx)(f.A,{size:"small",color:"error","aria-label":O("chat.history.deleteVisible"),disabled:ep,onClick:()=>void t6(),children:(0,a.jsx)(eu.A,{fontSize:"small"})})})}),T&&(0,a.jsx)(g.A,{title:O("chat.history.quickHelp"),children:(0,a.jsx)(u.A,{variant:"outlined",color:"primary",startIcon:(0,a.jsx)(E.A,{}),onClick:T,size:"small",children:O("chat.history.quick")})}),(0,a.jsx)(u.A,{variant:"contained",color:"primary","data-tour":"chat-new-conversation",startIcon:(0,a.jsx)(eo.A,{}),onClick:z,size:"small",children:O("chat.history.new")})]}),(0,a.jsx)(Y.A,{}),(0,a.jsx)(e3,{}),(0,a.jsxs)(c.default,{sx:{px:1.5,pt:1.5,pb:1.2,display:"flex",flexDirection:"column",gap:1,bgcolor:H?(0,eN.X4)(q.palette.background.paper,.22):"rgba(127,127,160,.035)"},children:[(0,a.jsx)(eU.A,{mode:"container",children:(0,a.jsxs)(c.default,{sx:{display:"flex",gap:1},children:[(0,a.jsx)(v.A,{size:"small",sx:{flex:1},inputRef:K,placeholder:"content"===ey?O("chat.history.searchContent"):O("chat.history.searchTitle"),value:L,onChange:e=>U(e.target.value),slotProps:{input:{startAdornment:(0,a.jsx)(Q.A,{position:"start",children:(0,a.jsx)(es.A,{fontSize:"small"})}),endAdornment:L||eJ?(0,a.jsxs)(Q.A,{position:"end",children:[eJ&&(0,a.jsx)(h.default,{size:16,"aria-label":O("chat.history.searching")}),L&&(0,a.jsx)(f.A,{size:"small","aria-label":O("chat.history.clearSearch"),onClick:()=>U(""),children:(0,a.jsx)(ei.A,{fontSize:"small"})})]}):void 0}}}),(0,a.jsx)(Z.A,{size:"small",sx:{minWidth:100},children:(0,a.jsxs)(ee.A,{value:ey,onChange:e=>e_(e.target.value),inputProps:{"aria-label":O("chat.history.searchDimension")},children:[(0,a.jsx)(et.A,{value:"title",children:O("chat.history.searchTitleOption")}),(0,a.jsx)(et.A,{value:"content",children:O("chat.history.searchContentOption")})]})})]})}),(0,a.jsxs)(u.A,{size:"small",color:"inherit",startIcon:(0,a.jsx)(ej.A,{}),endIcon:tc?(0,a.jsx)(ed.A,{}):(0,a.jsx)(el.A,{}),"aria-expanded":tc,"aria-controls":"chat-sidebar-filter-controls",onClick:()=>tu(e=>!e),sx:{alignSelf:"stretch",justifyContent:"flex-start",color:"text.secondary"},children:[O("chat.history.filters"),tG>0&&(0,a.jsx)(y.A,{label:tG,size:"small",color:"primary",sx:{ml:1,height:20,"& .MuiChip-label":{px:.75}}})]}),(0,a.jsx)(en.A,{in:tc,timeout:"auto",children:(0,a.jsxs)(c.default,{id:"chat-sidebar-filter-controls",sx:{display:"flex",flexWrap:"wrap",gap:1},children:[(0,a.jsx)(Z.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,a.jsx)(ee.A,{value:e0,onChange:e=>e1(e.target.value),inputProps:{"aria-label":O("chat.history.groupAria")},children:te.map(e=>(0,a.jsx)(et.A,{value:e,children:{none:O("chat.group.none"),date:O("chat.group.date"),flow:O("chat.group.agent"),origin:O("chat.group.origin"),wave:O("chat.group.wave"),chain:O("chat.group.chain")}[e]},e))})}),(0,a.jsx)(Z.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,a.jsx)(ee.A,{value:e6,onChange:e=>ta(e.target.value),inputProps:{"aria-label":O("chat.history.filterStatus")},children:e9.map(e=>(0,a.jsx)(et.A,{value:e,children:{all:O("chat.status.any"),running:O("chat.status.processing"),awaiting_tool_approval:O("chat.status.awaiting"),paused_debug:O("chat.status.paused"),completed:O("chat.status.completed"),capped:O("chat.status.capped"),error:O("chat.status.error")}[e]},e))})}),(0,a.jsx)(Z.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,a.jsxs)(ee.A,{value:tC.some(e=>e.key===tr)?tr:"all",onChange:e=>to(e.target.value),inputProps:{"aria-label":O("chat.history.filterAgent")},children:[(0,a.jsx)(et.A,{value:"all",children:O("chat.history.anyAgent")}),tC.map(e=>(0,a.jsx)(et.A,{value:e.key,children:e.label},e.key))]})}),(0,a.jsx)(Z.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,a.jsx)(ee.A,{value:tl,onChange:e=>td(e.target.value),inputProps:{"aria-label":O("chat.history.filterOrigin")},children:tt.map(e=>(0,a.jsx)(et.A,{value:e,children:tS(e)},e))})}),(0,a.jsx)(Z.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,a.jsx)(ee.A,{value:ts,onChange:e=>ti(e.target.value),inputProps:{"aria-label":O("chat.history.filterDate")},children:e8.map(e=>(0,a.jsx)(et.A,{value:e,children:{all:O("chat.date.any"),today:O("chat.date.day"),"7d":O("chat.date.week"),"30d":O("chat.date.month")}[e]},e))})})]})}),(tQ||tX>0)&&(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:t0||eJ?O("chat.history.searching"):tZ?O("chat.history.searchFailed"):O("chat.history.matchCount",{shown:t2,total:t1})}),(0,a.jsx)(u.A,{size:"small",onClick:()=>{U(""),ta("all"),to("all"),td("all"),ti("all")},children:O("chat.history.clearFilters")})]})]}),(0,a.jsx)(Y.A,{}),tB&&(0,a.jsxs)(c.default,{sx:{px:1.5,py:.75,display:"flex",alignItems:"center",justifyContent:"space-between",gap:1,bgcolor:(0,eN.X4)(q.palette.primary.main,H?.055:.025)},children:[(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",sx:{fontWeight:700},children:O("chat.chain.hierarchy")}),(0,a.jsxs)(c.default,{sx:{display:"flex",gap:.5},children:[(0,a.jsx)(u.A,{size:"small",startIcon:(0,a.jsx)(eA.A,{}),onClick:()=>tq(!0),children:O("chat.chain.expandAll")}),(0,a.jsx)(u.A,{size:"small",startIcon:(0,a.jsx)(ek.A,{}),onClick:()=>tq(!1),children:O("chat.chain.collapseAll")})]})]}),(0,a.jsxs)(ea.A,{ref:tH,"aria-label":O("chat.history.title"),"aria-busy":t0||eJ||eX,sx:{overflow:"auto",flex:1,px:H?1.25:1,py:H?1.5:1,scrollbarGutter:"stable"},children:[tM.length>0&&!t0&&!eJ&&(0,a.jsxs)(c.default,{role:"group","aria-label":O("chat.history.pinned"),sx:{mb:1},children:[(0,a.jsxs)(p.A,{variant:"overline",sx:{display:"flex",alignItems:"center",gap:.75,px:1,mb:.5},children:[(0,a.jsx)(eS.A,{sx:{fontSize:16}}),O("chat.history.pinned")]}),(0,a.jsx)(eP,{nodes:tR.roots,childrenByParent:tR.childrenByParent,renderItem:e=>tY(e,{detached:tR.detachedIds.has(e.id)}),expanded:tP,onToggle:tD}),tE.length>0&&(0,a.jsx)(Y.A,{sx:{my:1}})]}),t0||eJ?(0,a.jsxs)(V.Ay,{sx:{justifyContent:"center",gap:1,py:3},children:[(0,a.jsx)(h.default,{size:18}),(0,a.jsx)(p.A,{variant:"body2",color:"text.secondary",children:O("chat.history.searching")})]}):tZ&&0===tx.length?(0,a.jsx)(V.Ay,{children:(0,a.jsx)(G.A,{primary:O("chat.history.searchFailed"),secondary:O("chat.history.searchFailedHelp"),slotProps:{primary:{align:"center"},secondary:{align:"center"}}})}):tQ||0!==t1?0===t2?(0,a.jsx)(V.Ay,{children:(0,a.jsx)(G.A,{primary:O("chat.history.noMatch"),secondary:O("chat.history.noMatchHelp"),slotProps:{primary:{align:"center"},secondary:{align:"center"}}})}):"chain"===e0?(0,a.jsx)(eP,{nodes:tW.roots,childrenByParent:tW.childrenByParent,renderItem:e=>tY(e,{detached:tW.detachedIds.has(e.id)}),expanded:tP,onToggle:tD}):"none"===e0?tE.map(e=>tY(e)):tN.map(e=>{let t=!!th[e.key],n="wave"===e0?tF.get(e.key):void 0;return(0,a.jsxs)(c.default,{children:[(0,a.jsxs)(X.A,{onClick:()=>{var t;return t=e.key,void tp(e=>({...e,[t]:!e[t]}))},sx:{py:.5,bgcolor:"action.hover"},children:[t?(0,a.jsx)(el.A,{fontSize:"small"}):(0,a.jsx)(ed.A,{fontSize:"small"}),(0,a.jsx)(p.A,{variant:"overline",sx:{ml:.5,flex:1,lineHeight:1.6},noWrap:!0,children:e.label}),(0,a.jsx)(y.A,{label:e.items.length,size:"small",sx:{height:18,"& .MuiChip-label":{px:.75,fontSize:"0.7rem"}}})]}),(0,a.jsx)(en.A,{in:!t,timeout:"auto",unmountOnExit:!0,children:n?(0,a.jsx)(eP,{nodes:n.roots,childrenByParent:n.childrenByParent,renderItem:e=>tY(e,{detached:n.detachedIds.has(e.id)}),expanded:tP,onToggle:tD}):e.items.map(e=>tY(e))})]},e.key)}):(0,a.jsx)(V.Ay,{children:(0,a.jsx)(G.A,{primary:O("chat.history.empty"),secondary:O("chat.history.emptyHelp"),slotProps:{primary:{align:"center"},secondary:{align:"center"}}})}),tQ&&tf?.hasMore&&(0,a.jsx)(c.default,{sx:{display:"flex",justifyContent:"center",py:1.5},children:(0,a.jsx)(u.A,{size:"small",variant:"outlined",disabled:eX,startIcon:eX?(0,a.jsx)(h.default,{size:14}):void 0,onClick:()=>void tj(),children:O("chat.history.loadMore")})}),!tQ&&n&&s&&(0,a.jsx)(c.default,{sx:{display:"flex",justifyContent:"center",py:1.5},children:(0,a.jsx)(u.A,{size:"small",variant:"outlined",disabled:o,startIcon:o?(0,a.jsx)(h.default,{size:14}):void 0,onClick:()=>void s(),children:O("chat.history.loadMore")})})]}),(0,a.jsxs)(j.A,{open:ex.open,onClose:()=>ev(e=>({...e,open:!1})),"aria-labelledby":"delete-family-dialog-title",children:[(0,a.jsx)(A.A,{id:"delete-family-dialog-title",children:O("chat.history.deleteFamilyTitle")}),(0,a.jsx)(k.A,{children:(0,a.jsx)(S.A,{children:ex.lookupFailed?O("chat.history.deleteFamilyLookupFailed"):O("chat.history.deleteFamilyQuestion",{title:ex.parent?.title??"",count:ex.descendantIds.length})})}),(0,a.jsxs)(I.A,{children:[(0,a.jsx)(u.A,{onClick:()=>ev(e=>({...e,open:!1})),children:O("common.cancel")}),!ex.lookupFailed&&ex.parent&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(u.A,{color:"error",onClick:()=>{let e=ex.parent.id;ev(e=>({...e,open:!1})),b(e)},children:O("chat.history.deleteParentOnly")}),(0,a.jsx)(u.A,{variant:"contained",color:"error",onClick:()=>{let e=[ex.parent.id,...ex.descendantIds];ev(e=>({...e,open:!1})),w(e)},children:O("chat.history.deleteFamilyAction",{count:ex.descendantIds.length})})]})]})]}),(0,a.jsxs)(j.A,{open:J.open,onClose:()=>eh(e=>({...e,open:!1})),"aria-labelledby":"bulk-delete-dialog-title",children:[(0,a.jsx)(A.A,{id:"bulk-delete-dialog-title",children:O("chat.history.confirmDelete")}),(0,a.jsx)(k.A,{children:(0,a.jsxs)(S.A,{children:[J.label," ",O("chat.history.cannotUndo")]})}),(0,a.jsxs)(I.A,{children:[(0,a.jsx)(u.A,{onClick:()=>eh(e=>({...e,open:!1})),children:O("common.cancel")}),(0,a.jsx)(u.A,{color:"error",onClick:async()=>{eh(e=>({...e,open:!1})),await w(J.ids)},autoFocus:!0,children:O("chat.history.deleteAction")})]})]})]})});var tr=n(1339),to=n(92230),ts=n(84282),ti=n(17683),tl=n(48825),td=n(92308),tc=n(97738),tu=n(69421),th=n(99925),tp=n(56586),tm=n(65947);let tg=function({open:e,mode:t,git:n,folder:o,onClose:s,onSubmit:i}){let{t:l}=(0,eW.s9)(),[d,c]=(0,r.useState)(""),[p,g]=(0,r.useState)(!1),[f,x]=(0,r.useState)(null);(0,r.useEffect)(()=>{e&&(c(""),x(null),g(!1))},[e,t]);let y=(0,r.useMemo)(()=>(function(e){if(!e)return[];let t=new Set(e.branches);for(let n of e.remoteBranches)t.add(n.slice(n.indexOf("/")+1));return[...t].sort((e,t)=>e.localeCompare(t))})(n),[n]),b=(0,r.useMemo)(()=>{if("create"===t)return y;let e=new Set(n?.worktrees.map(e=>e.branch).filter(Boolean));return n?.branch&&e.add(n.branch),y.filter(t=>!e.has(t))},[y,n,t]),w=d.trim(),C=y.includes(w)||w===n?.branch,$="create"===t||"worktree"===t&&!C,z=!!w&&!p&&("switch"!==t||w!==n?.branch)&&!("create"===t&&C),T=n?.worktrees.find(e=>e.main)?.path??o,M=async e=>{if(e.preventDefault(),z){g(!0),x(null);try{await i(w,$),s()}catch(e){x(e instanceof Error?e.message:String(e))}finally{g(!1)}}},E="switch"===t?l("projects.dialog.switchTitle"):"create"===t?l("projects.dialog.createTitle"):l("projects.dialog.worktreeTitle"),R="switch"===t?l("projects.dialog.switchHelp",{path:o}):"create"===t?l("projects.dialog.createHelp"):l("projects.dialog.worktreeHelp",{folder:`${e1(T)}.worktrees`});return(0,a.jsx)(j.A,{open:e,onClose:p?void 0:s,fullWidth:!0,maxWidth:"xs",children:(0,a.jsxs)("form",{onSubmit:M,children:[(0,a.jsx)(A.A,{children:E}),(0,a.jsxs)(k.A,{children:[(0,a.jsx)(S.A,{variant:"body2",sx:{mb:2,wordBreak:"break-word"},children:R}),"create"===t?(0,a.jsx)(v.A,{autoFocus:!0,fullWidth:!0,size:"small",label:l("projects.dialog.branch"),value:d,disabled:p,error:!!w&&C,onChange:e=>c(e.target.value),slotProps:{htmlInput:{spellCheck:!1,autoCapitalize:"off"}}}):(0,a.jsx)(tm.A,{freeSolo:!0,options:b,inputValue:d,onInputChange:(e,t)=>c(t),disabled:p,renderInput:e=>(0,a.jsx)(v.A,{...e,autoFocus:!0,size:"small",label:l("projects.dialog.branch")})}),"worktree"===t&&w&&$&&(0,a.jsx)(m.A,{severity:"info",sx:{mt:1.5},children:l("projects.dialog.newBranchNote",{branch:w})}),f&&(0,a.jsx)(m.A,{severity:"error",sx:{mt:1.5,wordBreak:"break-word"},children:f})]}),(0,a.jsxs)(I.A,{children:[(0,a.jsx)(u.A,{onClick:s,disabled:p,children:l("common.cancel")}),(0,a.jsxs)(u.A,{type:"submit",variant:"contained",disabled:!z,children:[p&&(0,a.jsx)(h.default,{size:16,color:"inherit",sx:{mr:1}}),"switch"===t?l("projects.dialog.switchAction"):l("projects.dialog.createAction")]})]})]})})};function tf(e,t){if(!e||!t)return!1;let n=e=>e.replace(/\\/g,"/").replace(/\/+$/,"").toLowerCase();return n(e)===n(t)}let tx=function({conversationId:e,large:t=!1}){let{t:n}=(0,eW.s9)(),{state:o,act:s}=e2(e),[i,l]=(0,r.useState)(null),[d,h]=(0,r.useState)(null),[x,v]=(0,r.useState)(!1),[b,w]=(0,r.useState)(null),[C,$]=(0,r.useState)(!1),[z,T]=(0,r.useState)(null),M=o?.chat??null,E=M?.git??null,R=!!(M&&!tf(M.path,M.project)),N=async(e,t,n=!0)=>{T(null);try{await s(e,t),n&&l(null)}catch(e){T(e instanceof Error?e.message:String(e))}};if(!o)return null;if(!M)return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(g.A,{title:n("projects.chip.noneHelp"),children:(0,a.jsx)(y.A,{icon:(0,a.jsx)(eY.A,{}),label:n("projects.chip.none"),size:t?"medium":"small",variant:"outlined",onClick:e=>{T(null),o.projects.length>0?l(e.currentTarget):v(!0)},"aria-haspopup":o.projects.length>0?"menu":"dialog","data-chat-project-chip":!0})}),(0,a.jsxs)(ts.A,{anchorEl:i,open:!!i,onClose:()=>l(null),anchorOrigin:{vertical:"top",horizontal:"left"},transformOrigin:{vertical:"bottom",horizontal:"left"},slotProps:{paper:{sx:{width:320,maxWidth:"calc(100vw - 24px)"}}},children:[z&&(0,a.jsx)(m.A,{severity:"error",sx:{mx:2,my:1,wordBreak:"break-word"},children:z}),(0,a.jsx)(ti.A,{sx:{lineHeight:"32px"},children:n("projects.menu.project")}),o.projects.map(t=>(0,a.jsxs)(et.A,{dense:!0,onClick:()=>void N(e?"bindChat":"activate",{project:t.path}),children:[(0,a.jsx)(eK.A,{children:(0,a.jsx)(eY.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:t.name,secondary:t.path,slotProps:{secondary:{noWrap:!0}}})]},t.path)),(0,a.jsx)(Y.A,{}),(0,a.jsxs)(et.A,{dense:!0,onClick:()=>{l(null),v(!0)},children:[(0,a.jsx)(eK.A,{children:(0,a.jsx)(eX.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:n("projects.add")})]})]}),(0,a.jsx)(e5.A,{open:x,title:n("projects.chooseFolder"),onClose:()=>v(!1),onSelect:t=>void(async()=>{T(null);try{let n=await s("add",{path:t});e&&n.activeProject&&await s("bindChat",{project:n.activeProject})}catch(e){T(e instanceof Error?e.message:String(e))}})()}),(0,a.jsx)(tl.A,{open:!!z&&!i,autoHideDuration:8e3,onClose:(e,t)=>{"clickaway"!==t&&T(null)},anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,a.jsx)(m.A,{severity:"error",onClose:()=>T(null),sx:{wordBreak:"break-word"},children:z})})]});let W=E?E.branch??E.head??"":null,P=(0,a.jsxs)(c.default,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.6,minWidth:0},children:[(0,a.jsx)(c.default,{component:"span",sx:{fontWeight:700,overflow:"hidden",textOverflow:"ellipsis"},children:e1(M.path)}),null!==W&&(0,a.jsxs)(c.default,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.25,color:"text.secondary",minWidth:0},children:[(0,a.jsx)(eQ.A,{sx:{fontSize:"0.95rem"},"aria-hidden":"true"}),(0,a.jsx)(c.default,{component:"span",sx:{overflow:"hidden",textOverflow:"ellipsis",maxWidth:160},children:W})]}),E&&E.changes>0&&(0,a.jsxs)(c.default,{component:"span",sx:{color:"warning.main",fontWeight:700},"aria-label":n("projects.changes",{count:E.changes}),children:["•",E.changes]})]}),O=E?.worktrees.find(e=>tf(e.path,b)),D=e=>e.main||e.managed||tf(e.path,M.path),F=E?.worktrees.filter(D)??[],_=E?.worktrees.filter(e=>!D(e))??[],q=t=>(0,a.jsxs)(et.A,{dense:!0,disabled:!e,selected:tf(t.path,M.path),onClick:()=>void N("bindChat",{path:t.path}),children:[(0,a.jsx)(eK.A,{children:t.main?(0,a.jsx)(eY.A,{fontSize:"small"}):(0,a.jsx)(td.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:t.main?n("projects.menu.mainCheckout"):e1(t.path),secondary:t.branch??t.head,slotProps:{primary:{noWrap:!0},secondary:{noWrap:!0}}}),tf(t.path,M.path)&&(0,a.jsx)(tc.A,{fontSize:"small",color:"primary"}),t.managed&&(0,a.jsx)(g.A,{title:n("projects.menu.removeWorktree",{name:e1(t.path)}),children:(0,a.jsx)(f.A,{size:"small",edge:"end","aria-label":n("projects.menu.removeWorktree",{name:e1(t.path)}),onClick:e=>{e.stopPropagation(),w(t.path)},children:(0,a.jsx)(tu.A,{fontSize:"small"})})})]},t.path);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(g.A,{title:n("projects.chip.tooltip",{path:M.path}),children:(0,a.jsx)(y.A,{icon:R?(0,a.jsx)(td.A,{}):(0,a.jsx)(eY.A,{}),label:P,size:t?"medium":"small",variant:"outlined",color:R?"secondary":"default",onClick:e=>{T(null),l(e.currentTarget)},"aria-haspopup":"menu","aria-expanded":i?"true":void 0,"data-chat-project-chip":!0,sx:{maxWidth:"100%"}})}),(0,a.jsxs)(ts.A,{anchorEl:i,open:!!i,onClose:()=>l(null),anchorOrigin:{vertical:"top",horizontal:"left"},transformOrigin:{vertical:"bottom",horizontal:"left"},slotProps:{paper:{sx:{width:360,maxWidth:"calc(100vw - 24px)",maxHeight:"70vh"}}},children:[(0,a.jsxs)(c.default,{sx:{px:2,pt:1,pb:1},children:[(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",sx:{display:"block",fontFamily:"monospace",wordBreak:"break-all"},children:M.path}),E&&(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",sx:{display:"block"},children:[E.branch?null:n("projects.detached",{head:E.head??""}),E.changes>0?n("projects.changes",{count:E.changes}):null,E.upstream&&(E.ahead||E.behind)?n("projects.aheadBehind",{ahead:E.ahead,behind:E.behind,upstream:E.upstream}):null].filter(Boolean).join(" \xb7 ")}),z&&(0,a.jsx)(m.A,{severity:"error",sx:{mt:1,wordBreak:"break-word"},children:z})]}),(0,a.jsx)(ti.A,{sx:{lineHeight:"32px"},children:n("projects.menu.project")}),o.projects.map(t=>(0,a.jsxs)(et.A,{dense:!0,selected:tf(t.path,M.project),onClick:()=>tf(t.path,M.project)?l(null):void N(e?"bindChat":"activate",{project:t.path}),children:[(0,a.jsx)(eK.A,{children:(0,a.jsx)(eY.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:t.name,secondary:t.git?t.git.branch??t.git.head:n("projects.notGit")}),tf(t.path,M.project)&&(0,a.jsx)(tc.A,{fontSize:"small",color:"primary"})]},t.path)),E&&[(0,a.jsx)(ti.A,{sx:{lineHeight:"32px"},children:n("projects.menu.folder")},"folder-heading"),...F.map(q),..._.length>0?[(0,a.jsxs)(et.A,{dense:!0,onClick:()=>$(e=>!e),"aria-expanded":C,children:[(0,a.jsx)(eK.A,{children:C?(0,a.jsx)(eV.A,{fontSize:"small"}):(0,a.jsx)(eJ.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:n("projects.menu.otherWorktrees",{count:_.length})})]},"other-worktrees"),...C?_.map(q):[]]:[],(0,a.jsxs)(et.A,{dense:!0,disabled:!e,onClick:()=>h("worktree"),children:[(0,a.jsx)(eK.A,{children:(0,a.jsx)(eX.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:n("projects.menu.newWorktree")})]},"new-worktree"),(0,a.jsx)(ti.A,{sx:{lineHeight:"32px"},children:n("projects.menu.branch")},"branch-heading"),(0,a.jsxs)(et.A,{dense:!0,disabled:E.changes>0,onClick:()=>h("switch"),children:[(0,a.jsx)(eK.A,{children:(0,a.jsx)(th.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:n("projects.menu.switchBranch")})]},"switch-branch"),(0,a.jsxs)(et.A,{dense:!0,onClick:()=>h("create"),children:[(0,a.jsx)(eK.A,{children:(0,a.jsx)(eQ.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:n("projects.menu.newBranch")})]},"new-branch"),(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",component:"p",sx:{px:2,py:.5,maxWidth:360},children:E.changes>0?n("projects.menu.dirtyHint"):n("projects.menu.sharedHint")},"branch-hint")],(0,a.jsx)(Y.A,{}),(0,a.jsxs)(et.A,{dense:!0,onClick:()=>{navigator.clipboard?.writeText(M.path),l(null)},children:[(0,a.jsx)(eK.A,{children:(0,a.jsx)(tp.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:n("projects.menu.copyPath")})]})]}),(0,a.jsx)(tg,{open:null!==d,mode:d??"switch",git:E,folder:M.path,onClose:()=>h(null),onSubmit:async(e,t)=>{"switch"===d?await s("switchBranch",{path:M.path,branch:e}):"create"===d?await s("createBranch",{path:M.path,branch:e}):await s("addWorktree",{path:M.path,branch:e,createBranch:t}),l(null)}}),(0,a.jsxs)(j.A,{open:!!b,onClose:()=>w(null),fullWidth:!0,maxWidth:"xs",children:[(0,a.jsx)(A.A,{children:n("projects.dialog.removeWorktreeTitle")}),(0,a.jsxs)(k.A,{children:[(0,a.jsx)(S.A,{sx:{wordBreak:"break-word"},children:n("projects.dialog.removeWorktreeBody",{path:b??""})}),O?.branch&&(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:O.branch})]}),(0,a.jsxs)(I.A,{children:[(0,a.jsx)(u.A,{onClick:()=>w(null),children:n("common.cancel")}),(0,a.jsx)(u.A,{color:"error",variant:"contained",onClick:()=>{w(null),N("removeWorktree",{path:M.project,worktree:b},!1)},children:n("projects.dialog.removeAction")})]})]})]})};var tv=n(82755),ty=n(75210),tb=n(82683),tw=n(88254),tj=n(43391),tA=n(6209);function tk(e){return(0,tA.BC)(e.identity.serverName,e.identity.skillUri,e.manifest.digest)}let tS=({conversationId:e,skills:t,selectedKeys:n,onSelectionChange:o})=>{let{t:s}=(0,eW.s9)(),i=(0,r.useMemo)(()=>new Set(t.map(tk)),[t]);return((0,r.useEffect)(()=>{let e=new Set([...n].filter(e=>i.has(e)));(e.size!==n.size||[...e].some(e=>!n.has(e)))&&o(e)},[o,n,i]),t.length)?(0,a.jsx)(tv.A,{variant:"outlined","data-testid":"approved-mcp-skills","data-conversation-id":e,sx:{mb:1,px:1.25,py:.75},children:(0,a.jsxs)(ty.A,{spacing:.25,children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.75},children:[(0,a.jsx)(tj.A,{color:"warning",fontSize:"small"}),(0,a.jsx)(p.A,{variant:"caption",sx:{fontWeight:700},children:s("mcp.skills.chatTitle")}),(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:s("mcp.skills.chatWarning")})]}),(0,a.jsx)(c.default,{sx:{display:"flex",flexWrap:"wrap",gap:.5},children:t.map(e=>{let t=tk(e);return(0,a.jsx)(tb.A,{sx:{m:0,mr:1},control:(0,a.jsx)(tw.A,{size:"small",checked:n.has(t),disabled:!n.has(t)&&n.size>=tA.$Z,onChange:e=>{let a=new Set(n);e.target.checked?a.add(t):a.delete(t),o(a)}}),label:(0,a.jsxs)(c.default,{sx:{minWidth:0},children:[(0,a.jsxs)(p.A,{variant:"caption",sx:{display:"block"},children:[e.entry.frontmatter.name," \xb7 ",e.identity.serverName]}),(0,a.jsxs)(p.A,{variant:"caption",color:"text.secondary",sx:{display:"block",maxWidth:360,overflow:"hidden",textOverflow:"ellipsis"},children:[e.identity.skillUri," \xb7 ",e.manifest.digest]})]})},t)})})]})}):null};var tI=n(47186),tC=n(94437),t$=n(22103);function tz(e,t){if(!(t in e))return e;let n={...e};return delete n[t],n}function tT(e,t,n){let a=e[t]??[],r=a.filter(e=>e.id!==n);if(r.length===a.length)return e;let o={...e};return r.length>0?o[t]=r:delete o[t],o}var tM=n(33641),tE=n(2915),tR=n(73842);let tN={byIndex:{}};function tW(e,t,n){for(let a=0;a<t;a++)e[a]||(e[a]={laneIndex:a,laneCount:t,label:`Lane ${a+1}/${t}`,status:"pending",lastEventAt:n})}function tP(e,t,n=Date.now()){let a=t.laneIndex,r=t.laneCount;if(null==a||null==r)return e;let o=("subflow:start"===t.type||"subflow:done"===t.type)&&1===t.depth;if(o&&"subflow:start"===t.type){let o,s=t.node?.nodeId,i=e.ownerNodeId&&s&&e.ownerNodeId!==s?{}:{...e.byIndex};return tW(i,r,n),i[a]={laneIndex:a,laneCount:r,label:t.laneTitle||((o=t.subflowName||t.subflowId)?`${o} ${a+1}/${r}`:`Lane ${a+1}/${r}`),laneConversationId:t.laneConversationId??i[a]?.laneConversationId,sessionKey:t.sessionKey??i[a]?.sessionKey,sessionVisit:t.sessionVisit??i[a]?.sessionVisit,status:"running",lastEventAt:n},{ownerNodeId:s??e.ownerNodeId,byIndex:i}}if(o&&"subflow:done"===t.type){let o={...e.byIndex};tW(o,r,n);let s=o[a];return o[a]={...s,label:s.label&&"pending"!==s.status?s.label:t.laneTitle||s.label,laneConversationId:s.laneConversationId??t.laneConversationId,sessionKey:t.sessionKey??s.sessionKey,sessionVisit:t.sessionVisit??s.sessionVisit,status:"capped"===t.status?"completed":t.status,activity:void 0,lastEventAt:n},{ownerNodeId:e.ownerNodeId??t.node?.nodeId,byIndex:o}}let s=function(e){switch(e.type){case"node:enter":return e.node?.nodeName||e.node?.nodeId||void 0;case"tool:call":return e.name;case"tool:progress":return e.message?`${e.name} — ${e.message}`:e.name;case"subflow:start":return`↳ ${e.subflowName||e.subflowId}`;case"handoff":return`→ ${e.toNodeId}`;default:return}}(t);if(void 0===s)return e;let i=e.byIndex[a];if(i&&i.activity===s&&"pending"!==i.status||i&&("completed"===i.status||"error"===i.status))return e;let l={...e.byIndex};tW(l,r,n);let d=l[a];return l[a]={...d,status:"pending"===d.status?"running":d.status,activity:s,lastEventAt:n},{ownerNodeId:e.ownerNodeId,byIndex:l}}let tO=["the moon janitor","a time-hopping intern","three union pigeons","the office wizard","a skeptical goldfish","the museum ghost","an off-duty oracle","the last polite pirate","a raccoon committee","the cryptid expert","a calm astronaut","the royal beekeeper","the lighthouse cat","a future detective","the backup dragon","a jetpack accountant","the submarine butler","a retired villain","the support goose","a help-desk knight","an imaginary conductor","an archaeology intern","the weather crow","a receipt philosopher"],tD=["the moon ladder","a diplomatic sock","the royal stapler","an indoor umbrella","the lunch compass","a warm snow globe","the last teaspoon","a fictional map","the folding napkin","a jar of thunder","the Wi-Fi wand","a lawyered sandwich","the spare sun","a jar of silence","the haunted printer","a load-bearing baguette","the tiny drawbridge","the wrong key","the inflatable anvil","a prophecy coupon","the reverse telescope","classified confetti","the nervous pendulum","a pocket volcano"],tF=["on the Moon","at the seafloor post office","at the Bermuda gift shop","at the Wi-Fi castle","behind the second attic","at North Pole support","on platform nine-ish","beside a black hole","inside the mood library","under the cloud","in the office kitchen","inside spreadsheet forest","at volcano reception","behind the old clock","in Lost Luggage","on the snack balcony","in the shallow moat","at the desert hotel","inside the failed museum","in lab number two","at tomorrow station","inside dragon training","on Tuesday Island","past the supply closet"],t_=["sorting moon rocks","looking for lunch","testing the fire alarm","folding space-time","counting invisible sheep","polishing the eclipse","fixing yesterday","mapping the snack drawer","questioning the compass","training the pigeons","debugging the horoscope","watering plastic plants","auditing the pirates","rewinding the sundial","interviewing a shadow","filing dragon taxes","calibrating breakfast","alphabetizing fog","measuring gossip","rehearsing the alibi","charging the crystal ball","untangling gravity","translating whale mail","backing up the Moon"],tq=["fold a fitted sheet","whistle in binary","park a gondola","alphabetize fog","moonwalk quietly","invoice a dragon","juggle theories","read the room","argue with a door","brew orbital tea","translate sarcasm","defeat a sundial","smuggle daylight","assemble a prophecy","locate north","interview tomorrow","budget on a unicycle","write in zero gravity","herd digital cats","repair a metaphor","land a paper plane","greet the abyss","exit a time loop","explain medieval taxes"],tB=["the Moon’s back door","Wednesday’s location","gravity’s fine print","the missing socks","the Morse-code plant","the speakerphone echo","the pigeon payroll","the painted horizon","the absent staircase","Tuesday’s sequel","the Gary compass","the second ocean","the dramatic copier","tomorrow’s mail","the extra five minutes","the licensed ghost","the reviewed treasure map","the hungry plot hole","the sorted stars","the sighing elevator","the thunder receipts","the lunch eclipse","the freelance mirror","the exit to 1843"],tH=["a bent paperclip","a rubber chicken","the good magnifier","one brave teaspoon","a future abacus","a cat laser","an accordion","a dishonest ruler","a memo compass","the royal whisk","a pocket sundial","two magnets","a Latin wrench","the tiny hammer","tenured tape","a crystal ball","a haunted slide rule","the backup kazoo","a gloomy spirit level","the left telescope","a stern clipboard","emergency string","a weather vane","the manual page"],tL=["the eclipse rehearsal","emergency teatime","the gravity inspection","the office moon landing","the password ceremony","yesterday’s reopening","the hiding finals","the underwater fire drill","the time-traveler meeting","the lighthouse picnic","the backup launch","the horizon retirement","the expedition talent show","bring-your-ghost night","Coincidence Day","Small Ben’s unveiling","the silent concert","the endless ribbon-cutting","the volcano open house","breakfast rehearsal","the maritime spelling bee","the ancient Wi-Fi demo","the alibi parade","the surprise-party audit"],tU=["the inspector walks in","the inventor denies it","the footnote calls","the lights blink in Morse","tomorrow asks for help","the witness appears","the smoke alarm passes","the prophecy arrives","every clock coughs","the fire drill gets real","the squirrels object","the Moon calls back","the red lever starts counting","the alibi walks past","next door repeats it","the backup plan resigns","the weather apologizes","the map says “you first”","the missing page falls out","Coincidence Day is canceled","the goose takes charge","the empty box takes notes","a comet arrives early","the narrator gets fired"],tK=["the goose approves","the timeline objects","the manual shrugs","lunch takes priority","the pigeons demand credit","the chart looks worried","the calendar resigns","history asks for a redo","the printer applauds","gravity clocks out","the map denies everything","the ghost files a claim","the budget grows a moat","the experiment gets renewed","the floor adds a door","the ducks peer-review it","management calls it tradition","confetti is deployed","the loop requests closure","a plaque is ordered","physics grants an exception","the cupboard applauds","the conclusion needs edits","the universe closes the ticket"],tJ=(e,t)=>({count:e.reduce((e,t)=>e*t.length,1),render:n=>{let a=n,r=e.map(e=>{let t=e[a%e.length];return a=Math.floor(a/e.length),t});return`${t(...r)}…`}}),tV=e=>`${e[0].toUpperCase()}${e.slice(1)}`,tX=[tJ([tO,tq],(e,t)=>`Teaching ${e} to ${t}`),tJ([tD,tF],(e,t)=>`Finding ${e} ${t}`),tJ([t_,tK],(e,t)=>`${tV(e)}; ${t}`),tJ([tB,tH],(e,t)=>`Solving ${e} with ${t}`),tJ([tD,tH],(e,t)=>`Repairing ${e} with ${t}`),tJ([tL,tO],(e,t)=>`Rehearsing ${e} with ${t}`),tJ([tO,t_],(e,t)=>`Helping ${e} finish ${t}`),tJ([tD,tK],(e,t)=>`Showing off ${e}; ${t}`),tJ([tB,tF],(e,t)=>`Investigating ${e} ${t}`),tJ([tq,tH],(e,t)=>`Trying to ${e} with ${t}`),tJ([tD,tU],(e,t)=>`Hiding ${e} just as ${t}`),tJ([tL,tU],(e,t)=>`Starting ${e} as ${t}`),tJ([tO,tD],(e,t)=>`${tV(e)} arrives carrying ${t}`),tJ([t_,tU],(e,t)=>`While ${e}, ${t}`),tJ([tB,tO],(e,t)=>`Discovering ${e}; ${t} takes credit`),tJ([tD,tK],(e,t)=>`Testing ${e}; ${t}`),tJ([tF,tO],(e,t)=>`Arriving ${e}; ${t} was already there`),tJ([tL,tU],(e,t)=>`${tV(e)} begins moments before ${t}`),tJ([tO,tB],(e,t)=>`Asking ${e} about ${t}`),tJ([tq,tU],(e,t)=>`Learning to ${e} seconds before ${t}`),tJ([tD,tO],(e,t)=>`Returning ${e} to ${t}`),tJ([tL,tF],(e,t)=>`Booking ${e} ${t}`),tJ([tB,tU],(e,t)=>`Checking ${e} when ${t}`),tJ([t_,tO],(e,t)=>`${tV(e)} with ${t}`),tJ([tD,tK],(e,t)=>`Calibrating ${e}; ${t}`),tJ([tL,tH],(e,t)=>`Running ${e} with ${t}`),tJ([tO,tF],(e,t)=>`Following ${e} ${t}`),tJ([tB,tK],(e,t)=>`Explaining ${e}; ${t}`),tJ([t_,tH],(e,t)=>`${tV(e)} with ${t}`),tJ([tD,tL],(e,t)=>`Preparing ${e} for ${t}`),tJ([tF,tH],(e,t)=>`Taking notes ${e} with ${t}`),tJ([tO,tL],(e,t)=>`Briefing ${e} on ${t}`),tJ([tD,tB],(e,t)=>`Checking ${e} against ${t}`),tJ([tF,tK],(e,t)=>`Mapping ${e}; ${t}`),tJ([tO,tH],(e,t)=>`Helping ${e} use ${t}`),tJ([tL,tB],(e,t)=>`Linking ${e} to ${t}`),tJ([tq,tO],(e,t)=>`Watching ${t} learn to ${e}`),tJ([t_,tL],(e,t)=>`${tV(e)} before ${t}`),tJ([tD,tF],(e,t)=>`Delivering ${e} ${t}`),tJ([tO,tF],(e,t)=>`Meeting ${e} ${t}`),tJ([tB,tL],(e,t)=>`Discussing ${e} at ${t}`),tJ([tq,tF],(e,t)=>`Trying to ${e} ${t}`),tJ([t_,tD],(e,t)=>`${tV(e)} around ${t}`),tJ([tL,tF],(e,t)=>`Hosting ${e} ${t}`),tJ([tD,tB],(e,t)=>`Comparing ${e} with ${t}`),tJ([tO,tU],(e,t)=>`Meeting ${e} just as ${t}`),tJ([tH,tK],(e,t)=>`Pointing ${e} north; ${t}`),tJ([tq,tL],(e,t)=>`Practicing how to ${e} at ${t}`)];tX.reduce((e,t)=>e+t.count,0);let tG=(e,t)=>{let n=Math.abs(e),a=Math.abs(t);for(;0!==a;)[n,a]=[a,n%a];return n},tY=e=>{let t=0|e;return((t=Math.imul((t=Math.imul(t^t>>>16,0x21f0aaad))^t>>>15,0x735a2d97))^t>>>15)>>>0},tQ=(e,t)=>{let n=tY(t)%(e-1)+1;for(;1!==tG(n,e);)n=n%(e-1)+1;return n},tZ=({lane:e,onOpenLane:t})=>{let{t:n}=(0,eW.s9)(),r=!!e.laneConversationId&&!!t,o="pending"===e.status;return(0,a.jsxs)(c.default,{onClick:r?()=>t(e.laneConversationId):void 0,sx:{display:"flex",alignItems:"center",gap:1,px:1,py:.25,borderRadius:1,...r&&{cursor:"pointer","&:hover":{bgcolor:"action.hover",textDecoration:"underline"}}},children:["running"===e.status&&(0,a.jsx)(h.default,{size:14,sx:{flexShrink:0}}),"completed"===e.status&&(0,a.jsx)(N.A,{sx:{fontSize:16,flexShrink:0},color:"success"}),"error"===e.status&&(0,a.jsx)(tE.A,{sx:{fontSize:16,flexShrink:0},color:"error"}),o&&(0,a.jsx)(tR.A,{sx:{fontSize:16,flexShrink:0},color:"disabled"}),(0,a.jsxs)(p.A,{variant:"caption",color:o?"text.disabled":"textSecondary",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[e.label,o&&` — ${n("chat.live.queued")}`,"running"===e.status&&e.activity&&(0,a.jsxs)(p.A,{component:"span",variant:"caption",color:"text.disabled",children:[" \xb7 ",e.activity]})]}),e.sessionKey&&void 0!==e.sessionVisit&&(0,a.jsx)(g.A,{title:n("chat.live.sessionVisit",{key:e.sessionKey,visit:e.sessionVisit}),children:(0,a.jsx)(y.A,{label:n("chat.live.sessionVisit",{key:e.sessionKey,visit:e.sessionVisit}),size:"small",variant:"outlined",sx:{flexShrink:1,minWidth:0,maxWidth:220,height:20,"& .MuiChip-label":{overflow:"hidden",textOverflow:"ellipsis",px:.75,fontSize:"0.68rem"}}})})]})},t0=({liveStats:e,onStop:t,stopDisabled:n,awaitingApproval:o,lanes:s,onOpenLane:i,retryWait:l,compact:d=!1})=>{let m,x,v,y,b,w,j,{locale:A,t:k,tp:S,formatNumber:I,formatList:C}=(0,eW.s9)(),[$,z]=(0,r.useState)(()=>Date.now()),[T]=(0,r.useState)(()=>Date.now()),[M,E]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=setInterval(()=>z(Date.now()),1e3);return()=>clearInterval(e)},[]);let R=e?Math.max(0,Math.round(($-e.startedAt)/1e3)):0,N=e?Math.round(($-e.lastEventAt)/1e3):0,W=!o&&!l&&!!e&&N>=60,P=e?.startedAt??T,O=Math.floor(Math.max(0,$-P)/1e4),D="en"===A?(m=Math.max(0,Math.floor(O)),x=Math.floor(P),v=tX.length,b=tX[y=(tY(x)%v+m*tQ(v,0x6d2b79f5^x))%v],w=Math.floor(m/v),j=(tY(x^Math.imul(y+1,0x9e3779b1))%b.count+w*tQ(b.count,x^Math.imul(y+1,0x85ebca6b)))%b.count,b.render(j)):k(`chat.live.working.${O%6}`),F=l?Math.max(0,Math.ceil((l.retryAt-$)/1e3)):0,_=l?l.maxAttempts?k("chat.live.retryWaitAttempt",{seconds:I(F),attempt:I(l.attempt),total:I(l.maxAttempts)}):k("chat.live.retryWait",{seconds:I(F)}):null,q=s?Object.values(s.byIndex).sort((e,t)=>e.laneIndex-t.laneIndex):[],B=q.length>0?(()=>{let e=q.filter(e=>"running"===e.status).length,t=q.filter(e=>"pending"===e.status).length,n=q.filter(e=>"completed"===e.status).length,a=q.filter(e=>"error"===e.status).length;if(0===e&&0===t&&a>0)return{text:k("chat.live.partialFailure",{failed:I(a),total:I(q.length)}),warning:!0};let r=[e>0?S("chat.live.laneRunning",e):"",t>0?S("chat.live.laneQueued",t):"",n>0?S("chat.live.laneDone",n):"",a>0?S("chat.live.laneFailed",a):""].filter(Boolean);return{text:S("chat.live.lanes",q.length,{states:C(r)}),warning:a>0}})():null;if(d){let r=o?k("chat.live.waitingApproval"):e?.activeNode?k("chat.live.running",{node:e.activeNode}):k("chat.live.working");return(0,a.jsxs)(c.default,{"data-testid":"compact-live-run",sx:{flexShrink:0,bgcolor:"background.paper",borderTop:1,borderBottom:1,borderColor:"divider",boxShadow:"0 -8px 24px rgba(0,0,0,.10)",position:"relative",zIndex:3},children:[(0,a.jsxs)(c.default,{sx:{minHeight:44,px:1,display:"flex",alignItems:"center",gap:.75},children:[o?(0,a.jsx)(tM.A,{fontSize:"small",color:"warning"}):(0,a.jsx)(h.default,{size:18,color:W?"warning":"primary"}),(0,a.jsx)(p.A,{variant:"body2",noWrap:!0,role:"status","aria-live":"polite","aria-atomic":"true","data-testid":_?"retry-wait":"run-status",color:_?"warning.main":void 0,sx:{flex:1,minWidth:0},children:_??r}),!o&&(0,a.jsxs)(p.A,{variant:"caption",color:W?"warning.main":"text.secondary",sx:{whiteSpace:"nowrap"},children:[I(e?.totalTokens??0)," \xb7 ",I(R),"s"]}),B&&(0,a.jsx)(g.A,{title:B.text,children:(0,a.jsx)(f.A,{size:"small",onClick:()=>E(e=>!e),"aria-label":B.text,"aria-expanded":M,children:M?(0,a.jsx)(ed.A,{}):(0,a.jsx)(el.A,{})})}),(0,a.jsx)(u.A,{variant:"outlined",color:"secondary",size:"small",onClick:t,disabled:n,sx:{minWidth:"auto",px:1},children:k("chat.live.stop")})]}),!o&&(0,a.jsx)(p.A,{"data-testid":"compact-working-message",variant:"body2",color:"text.primary","aria-hidden":"true",sx:{px:1.5,pb:.75,fontSize:"0.8125rem",fontWeight:500,lineHeight:1.35,textAlign:"center",overflowWrap:"anywhere"},children:D}),B&&(0,a.jsx)(en.A,{in:M,unmountOnExit:!0,children:(0,a.jsxs)(c.default,{sx:{px:1,pb:1},children:[(0,a.jsx)(p.A,{variant:"caption",color:B.warning?"warning.main":"text.secondary",sx:{display:"block",mb:.25},children:B.text}),q.map(e=>(0,a.jsx)(tZ,{lane:e,onOpenLane:i},e.laneIndex))]})})]})}let H=_??(o?k("chat.live.waitingApproval"):e?.activeNode?k("chat.live.running",{node:e.activeNode}):k("chat.live.working"));return(0,a.jsxs)(c.default,{sx:{display:"flex",flexDirection:"column",alignItems:"center",my:2,gap:.5,minWidth:0,maxWidth:"100%"},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:2,minWidth:0,maxWidth:"100%",px:1},children:[o?(0,a.jsx)(tM.A,{fontSize:"small",color:"warning"}):(0,a.jsx)(h.default,{size:20,color:W?"warning":"primary",sx:{flexShrink:0}}),(0,a.jsx)(g.A,{title:H,placement:"top",children:(0,a.jsx)(p.A,{variant:"body2",noWrap:!0,color:_?"warning.main":"textSecondary","data-testid":_?"retry-wait":"run-status",role:"status","aria-live":"polite","aria-atomic":"true",sx:{minWidth:0,maxWidth:{xs:"60vw",md:640}},children:H})}),(0,a.jsx)(u.A,{variant:"outlined",color:"secondary",size:"small",onClick:t,disabled:n,children:k("chat.live.stop")})]}),!o&&(0,a.jsx)(p.A,{"data-testid":"working-message",variant:"body2",color:"text.primary",sx:{maxWidth:680,px:2,py:.5,borderRadius:1,bgcolor:"action.hover",fontSize:"0.875rem",fontWeight:500,lineHeight:1.45,textAlign:"center",overflowWrap:"anywhere"},"aria-hidden":"true",children:D}),B&&(0,a.jsxs)(c.default,{sx:{display:"flex",flexDirection:"column",alignItems:"stretch",minWidth:280,maxWidth:520},children:[(0,a.jsx)(p.A,{variant:"caption",color:B.warning?"warning.main":"textSecondary",sx:{px:1,fontWeight:500},children:B.text}),q.map(e=>(0,a.jsx)(tZ,{lane:e,onOpenLane:i},e.laneIndex))]}),!o&&(0,a.jsxs)(p.A,{variant:"caption",color:W?"warning.main":"textSecondary",children:[S("chat.live.elapsed",R,{tokens:k("chat.stats.tokens",{count:I(e?.totalTokens??0)})}),W?` \xb7 ${S("chat.live.inactive",N)}`:""]})]})};var t1=n(64915),t2=n(96209);let t5=({todos:e})=>{let{t,formatNumber:n}=(0,eW.s9)();if(!e||0===e.length)return null;let r=e.filter(e=>"done"===e.status).length,o=e.length>0?Math.round(r/e.length*100):0;return(0,a.jsxs)(tv.A,{variant:"outlined",sx:{mt:2,p:1.5,borderRadius:2},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:1},children:[(0,a.jsx)(p.A,{variant:"subtitle2",sx:{fontWeight:600},children:t("chat.todo.title")}),(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:t("chat.todo.progress",{done:n(r),total:n(e.length)})})]}),(0,a.jsx)(t1.A,{variant:"determinate",value:o,sx:{mb:1,borderRadius:1}}),(0,a.jsx)(c.default,{component:"ul",sx:{listStyle:"none",m:0,p:0},children:e.map(e=>(0,a.jsxs)(c.default,{component:"li",sx:{display:"flex",alignItems:"center",gap:1,py:.25},children:[function(e){switch(e){case"done":return(0,a.jsx)(N.A,{fontSize:"small",color:"success"});case"in_progress":return(0,a.jsx)(t2.A,{fontSize:"small",color:"info"});case"cancelled":return(0,a.jsx)(tE.A,{fontSize:"small",color:"disabled"});default:return(0,a.jsx)(tR.A,{fontSize:"small",color:"disabled"})}}(e.status),(0,a.jsx)(p.A,{variant:"body2",sx:{textDecoration:"done"===e.status||"cancelled"===e.status?"line-through":"none",color:"done"===e.status||"cancelled"===e.status?"text.secondary":"text.primary"},children:e.content})]},e.id))})]})};var t4=n(22779),t6=n(92533),t3=n(28565),t7=n(70722),t9=n(53296),t8=n(36493),ne=n(97388),nt=n(25601);let nn=e=>e>=1e6?`${(e/1e6).toFixed(2).replace(/\.?0+$/,"")}M`:e>=1e3?`${(e/1e3).toFixed(e>=1e5?0:1)}k`:`${e}`,na=({usage:e,contextInfo:t,availableNodes:n,compact:o=!1})=>{let{t:s,formatNumber:i}=(0,eW.s9)(),[l,d]=(0,r.useState)(null);if(!e&&!t)return null;let u=e?.byNode?Object.entries(e.byNode):[],h=e?(0,nt.g)(e):void 0,m=h?.cacheReadTokens??0,f=h?.cacheWriteTokens??0,x=e?.promptTokens??0,v=t?.totalTokens??t?.promptTokens,b="number"==typeof v&&Number.isFinite(v)&&v>=0,w=b&&t?.contextWindow&&t.contextWindow>0?Math.round(v/t.contextWindow*100):void 0,j=b&&t?.contextWindow?`${s("chat.stats.context",{model:t.modelDisplayName?s("chat.stats.model",{model:t.modelDisplayName}):"",used:i(v),total:i(t.contextWindow)})}${"configured"===t.contextWindowSource?` ${s("chat.stats.configuredWindow")}`:""}`:"";return(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:o?.5:1.5,flexShrink:0},children:[e&&h.processedTotalTokens>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(g.A,{title:s("chat.stats.tooltip",{prompt:i(x),completion:i(e.completionTokens),cached:m>0?s("chat.stats.cached",{count:i(m)}):"",written:f>0?s("chat.stats.written",{count:i(f)}):""}),children:(0,a.jsx)(y.A,{icon:(0,a.jsx)(ne.A,{}),label:s(o?"chat.stats.inputOutputCompact":"chat.stats.inputOutput",{input:nn(x),output:nn(h.completionTokens)}),size:"small",variant:"outlined",onClick:e=>d(e.currentTarget),sx:{cursor:"pointer"}})}),(0,a.jsx)(t4.Ay,{open:!!l,anchorEl:l,onClose:()=>d(null),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:(0,a.jsxs)(c.default,{sx:{p:2,maxWidth:"min(680px, calc(100vw - 24px))",overflowX:"auto"},children:[(0,a.jsx)(p.A,{variant:"subtitle2",sx:{mb:1},children:s("chat.stats.title")}),(0,a.jsxs)(t6.A,{size:"small",children:[(0,a.jsx)(t3.A,{children:(0,a.jsxs)(t7.A,{children:[(0,a.jsx)(t9.A,{children:s("chat.stats.node")}),(0,a.jsx)(t9.A,{align:"right",children:s("chat.stats.prompt")}),(0,a.jsx)(t9.A,{align:"right",children:s("chat.stats.completion")}),(0,a.jsx)(t9.A,{align:"right",children:s("chat.stats.cachedRead")}),(0,a.jsx)(t9.A,{align:"right",children:s("chat.stats.cacheWrite")}),(0,a.jsx)(t9.A,{align:"right",children:s("chat.stats.total")})]})}),(0,a.jsxs)(t8.A,{children:[u.map(([e,t])=>{let r=(0,nt.g)(t);return(0,a.jsxs)(t7.A,{children:[(0,a.jsx)(t9.A,{children:(0,a.jsx)(g.A,{title:e,children:(0,a.jsx)("span",{children:n.find(t=>t.id===e)?.label||`${e.substring(0,8)}…`})})}),(0,a.jsx)(t9.A,{align:"right",children:i(t.promptTokens)}),(0,a.jsx)(t9.A,{align:"right",children:i(r.completionTokens)}),(0,a.jsx)(t9.A,{align:"right",children:null==t.cacheReadTokens?"—":i(r.cacheReadTokens)}),(0,a.jsx)(t9.A,{align:"right",children:null==t.cacheWriteTokens?"—":i(r.cacheWriteTokens)}),(0,a.jsx)(t9.A,{align:"right",children:i(r.processedTotalTokens)})]},e)}),(0,a.jsxs)(t7.A,{children:[(0,a.jsx)(t9.A,{sx:{fontWeight:"bold"},children:s("chat.stats.total")}),(0,a.jsx)(t9.A,{align:"right",sx:{fontWeight:"bold"},children:i(x)}),(0,a.jsx)(t9.A,{align:"right",sx:{fontWeight:"bold"},children:i(e.completionTokens)}),(0,a.jsx)(t9.A,{align:"right",sx:{fontWeight:"bold"},children:null==e.cacheReadTokens?"—":i(m)}),(0,a.jsx)(t9.A,{align:"right",sx:{fontWeight:"bold"},children:null==e.cacheWriteTokens?"—":i(f)}),(0,a.jsx)(t9.A,{align:"right",sx:{fontWeight:"bold"},children:i(h.processedTotalTokens)})]})]})]}),m>0&&(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",sx:{display:"block",mt:1},children:s("chat.stats.cacheHelp",{cached:i(m)})}),f>0&&(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",sx:{display:"block",mt:.5},children:s("chat.stats.cacheWriteHelp",{written:i(f)})})]})})]}),t&&void 0!==w&&!o&&(0,a.jsx)(g.A,{title:j,children:(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:1,minWidth:140},children:[(0,a.jsx)(t1.A,{variant:"determinate",value:Math.min(100,w),color:w>=90?"error":w>=70?"warning":"primary",sx:{flex:1,height:6,borderRadius:3}}),(0,a.jsxs)(p.A,{variant:"caption",color:"text.secondary",sx:{whiteSpace:"nowrap"},children:[s("chat.stats.contextLabel")," ",nn(v),"/",nn(t.contextWindow)," (",w,"%)"]})]})}),t&&void 0!==w&&o&&(0,a.jsx)(g.A,{title:j,children:(0,a.jsxs)(p.A,{variant:"caption",color:w>=90?"error.main":"text.secondary",sx:{whiteSpace:"nowrap"},children:["ctx ",w,"%"]})}),t&&b&&void 0===w&&(0,a.jsx)(g.A,{title:s("chat.stats.noWindow",{model:t.modelDisplayName?s("chat.stats.model",{model:t.modelDisplayName}):""}),children:(0,a.jsxs)(p.A,{variant:"caption",color:"text.secondary",sx:{whiteSpace:"nowrap"},children:[s("chat.stats.contextLabel")," ",nn(v)]})}),t&&!b&&(0,a.jsx)(g.A,{title:s("chat.stats.contextUnavailableHelp"),children:(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",sx:{whiteSpace:"nowrap"},children:s("chat.stats.contextUnavailable")})})]})};var nr=n(86065),no=n(60199),ns=n(24571),ni=n(41178),nl=n(609),nd=n(64959),nc=n(16007),nu=n(8901);let nh=e=>"pending"!==e.provisioningState&&"disabled"!==e.lifecycleState&&"error"!==e.lifecycleState,np=({selectedFlowId:e,selectedPersonaId:t=null,selectedPersonaBehaviorSlotKey:n=null,onSelectFlow:o,onSelectPersona:s,onPersonaNamesLoaded:i,disabled:l=!1,compact:d=!1,fullScreenPicker:f=!1})=>{let{t:x}=(0,eW.s9)(),[v,b]=(0,r.useState)([]),[w,S]=(0,r.useState)(!0),[C,$]=(0,r.useState)(null),[z,T]=(0,r.useState)(!1),[M,E]=(0,r.useState)(null),[R,N]=(0,r.useState)(null),[W,P]=(0,r.useState)(!1),[O,D]=(0,r.useState)(null),[F,_]=(0,r.useState)(0),[q,H]=(0,r.useState)(null),[L,U]=(0,r.useState)("agents"),[K,J]=(0,r.useState)(""),[V,Y]=(0,r.useState)();(0,r.useEffect)(()=>{let e=new AbortController;return(S(!0),$(null),"function"!=typeof fetch)?($(x("chat.target.loadFailed")),S(!1),()=>e.abort()):(fetch((0,nc.TA)("/v1/personas"),{signal:e.signal}).then(async e=>{if(!e.ok)throw Error(`Persona list failed (${e.status})`);return e.json()}).then(t=>{if(e.signal.aborted)return;let n=Array.isArray(t)?t:[];b(n),i?.(Object.fromEntries(n.map(({id:e,name:t})=>[e,t])))}).catch(t=>{e.signal.aborted||t?.name==="AbortError"||(b([]),i?.({}),$(x("chat.target.loadFailed")))}).finally(()=>{e.signal.aborted||S(!1)}),()=>e.abort())},[x,i]),(0,r.useEffect)(()=>{if(!M){N(null),D(null),P(!1);return}let e=!1;return N(null),D(null),P(!0),nd.t.getComposition(M.id).then(t=>{e||N(t)}).catch(()=>{e||D(x("chat.target.behaviorsLoadFailed"))}).finally(()=>{e||P(!1)}),()=>{e=!0}},[M,F,x]),(0,r.useEffect)(()=>{if(!t||!n||"primary"===n)return void H(null);let e=!1;return H(null),nd.t.getComposition(t).then(t=>{e||H(t.behaviorCards.find(e=>e.slotKey===n)?.name??null)}).catch(()=>void 0),()=>{e=!0}},[n,t]),(0,r.useEffect)(()=>{let e=e=>{(0,nu.Ri)(e)&&"open-chat-flow-picker"===e.detail.type&&(U("agents"),Y(e.detail.query),T(!0))};return window.addEventListener(nu.dD,e),()=>window.removeEventListener(nu.dD,e)},[]);let Q=(0,r.useMemo)(()=>v.filter(nh),[v]),Z=v.find(e=>e.id===t),ee=()=>{T(!1),E(null)},et=e=>{M&&(s(M.id,e),ee())};if(t){let e=Z?.name??x("chat.target.persona"),t="primary"===n?x("chat.target.mainRole"):q??x("chat.target.specialistBehavior"),r=n?`${e} \xb7 ${t}`:e;return(0,a.jsx)(g.A,{title:x("chat.target.locked"),children:(0,a.jsx)(c.default,{component:"span",sx:{display:"inline-flex",minWidth:0,maxWidth:"100%"},children:(0,a.jsx)(u.A,{variant:"outlined",size:d?"small":"medium",startIcon:(0,a.jsx)(ns.A,{}),endIcon:(0,a.jsx)(ni.A,{fontSize:"small"}),disabled:!0,sx:{textTransform:"none",maxWidth:"100%",minWidth:0},children:(0,a.jsx)(c.default,{component:"span",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r})})})})}return(0,a.jsxs)(c.default,{sx:{minWidth:0},children:[(0,a.jsx)(g.A,{title:x("chat.target.chooseTarget"),children:(0,a.jsx)("span",{children:(0,a.jsx)(u.A,{"data-tour":"chat-flow-picker-button",variant:"outlined",size:d?"small":"medium",startIcon:(0,a.jsx)(B.A,{}),disabled:l,onClick:()=>{E(null),U("agents"),Y(void 0),T(!0)},sx:{textTransform:"none",maxWidth:"100%",minWidth:0,...d&&{minHeight:36,px:1.25}},children:(0,a.jsx)(c.default,{component:"span",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e?K||x("chat.selector.title"):x("chat.target.chooseTarget")})})})}),(0,a.jsxs)(j.A,{open:z,onClose:ee,fullScreen:f,fullWidth:!0,maxWidth:"md",keepMounted:!0,children:[(0,a.jsx)(A.A,{children:x("chat.target.chooseTarget")}),(0,a.jsx)(c.default,{sx:{borderBottom:1,borderColor:"divider",px:{xs:1,sm:3}},children:(0,a.jsxs)(nr.A,{value:L,onChange:(e,t)=>U(t),"aria-label":x("chat.target.tabs"),children:[(0,a.jsx)(no.A,{value:"agents",label:x("chat.target.agents")}),(0,a.jsx)(no.A,{value:"personas",label:x("chat.target.personas")})]})}),(0,a.jsx)(k.A,{dividers:!0,sx:{p:{xs:2,sm:3}},children:"agents"===L?(0,a.jsxs)(c.default,{children:[(0,a.jsx)(p.A,{variant:"body2",color:"text.secondary",sx:{mb:2},children:x("chat.selector.dialogHelp")}),(0,a.jsx)(nl.A,{embedded:!0,selectedFlowId:e,onSelectFlow:e=>{o(e),ee()},externalSearchTerm:V,onSelectedFlowNameChange:J})]}):M?(0,a.jsxs)(c.default,{children:[(0,a.jsx)(p.A,{variant:"h6",sx:{mb:1},children:x("chat.target.chooseHow",{persona:M.name})}),(0,a.jsx)(u.A,{size:"small",onClick:()=>E(null),sx:{mb:1.5,textTransform:"none"},children:x("chat.target.backToPersonas")}),W?(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:1.5,py:3},children:[(0,a.jsx)(h.default,{size:20}),(0,a.jsx)(p.A,{color:"text.secondary",children:x("chat.target.loadingBehaviors")})]}):O?(0,a.jsx)(m.A,{severity:"error",action:(0,a.jsx)(u.A,{color:"inherit",size:"small",onClick:()=>_(e=>e+1),children:x("chat.target.retry")}),children:O}):R?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(ea.A,{disablePadding:!0,children:(0,a.jsxs)(X.A,{onClick:()=>et("primary"),disabled:R.core?.readiness.state!=="ready",children:[(0,a.jsx)(G.A,{primary:x("chat.target.mainRole"),secondary:R.core?.readiness.state==="ready"?x("chat.target.mainRoleHelp"):x("chat.target.notReady")}),(0,a.jsx)(y.A,{size:"small",label:x("chat.target.recommended"),color:"primary",variant:"outlined"})]})}),(0,a.jsx)(p.A,{variant:"subtitle2",sx:{mt:2.5,mb:.5},children:x("chat.target.specialistBehaviors")}),(0,a.jsx)(p.A,{variant:"body2",color:"text.secondary",sx:{mb:1},children:x("chat.target.specialistHelp")}),0===R.behaviorCards.length?(0,a.jsx)(p.A,{color:"text.secondary",children:x("chat.target.noBehaviors")}):(0,a.jsx)(ea.A,{disablePadding:!0,children:[...R.behaviorCards].sort((e,t)=>e.order-t.order).map(e=>(0,a.jsx)(X.A,{onClick:()=>et(e.slotKey),disabled:"ready"!==e.readiness.state,children:(0,a.jsx)(G.A,{primary:e.name,secondary:"ready"===e.readiness.state?e.description||x("chat.target.specialistBehavior"):x("chat.target.notReady")})},e.ref))})]}):null]}):w?(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:1.5,py:3},children:[(0,a.jsx)(h.default,{size:20}),(0,a.jsx)(p.A,{color:"text.secondary",children:x("chat.target.loading")})]}):C?(0,a.jsx)(m.A,{severity:"error",children:C}):0===Q.length?(0,a.jsx)(p.A,{color:"text.secondary",children:x("chat.target.empty")}):(0,a.jsxs)(c.default,{children:[(0,a.jsx)(p.A,{variant:"body2",color:"text.secondary",sx:{mb:1.5},children:x("chat.target.choosePersona")}),(0,a.jsx)(ea.A,{disablePadding:!0,children:Q.map(e=>(0,a.jsxs)(X.A,{onClick:()=>E(e),selected:e.id===t,children:[(0,a.jsx)(ns.A,{sx:{mr:1.5,color:"primary.main"}}),(0,a.jsx)(G.A,{primary:e.name,secondary:e.mission||void 0})]},e.id))})]})}),(0,a.jsx)(I.A,{children:(0,a.jsx)(u.A,{onClick:ee,children:x("common.cancel")})})]})]})};var nm=n(96172),ng=n(90337),nf=n(86293),nx=n(49239),nv=n(80105),ny=n(59238),nb=n(73254),nw=n(98598),nj=n(6931),nA=n(84542),nk=n(31383),nS=n(1928),nI=n(83347),nC=n(86670),n$=n(81750),nz=n(65614),nT=n(49103),nM=n(21129),nE=n(42727);let nR={byNode:{},byResource:{},byResourceName:{},resourceVersion:0},nN="root",nW=e=>"subflow:start"===e.type||"subflow:done"===e.type?e.depth??1:e.depth??0,nP=(e,t)=>null==t.laneIndex||null==e.laneIndex||e.laneIndex===t.laneIndex,nO=(e,t)=>{for(let n=e.order.length-1;n>=0;n-=1){let a=e.frames[e.order[n]];if(a&&t(a))return a}},nD=(e,t,n)=>n<=1?e.frames[e.rootKey]:nO(e,e=>"active"===e.status&&e.depth===n-1&&nP(e,t))??e.frames[e.rootKey],nF=(e,t)=>{let n=nW(t);return n<=0?e.frames[e.rootKey]:nO(e,e=>"active"===e.status&&e.depth===n&&nP(e,t))??e.frames[e.rootKey]},n_=e=>"node"in e?e.node?.nodeId:void 0,nq=e=>"resource:read"===e.type?"resource-read":"resource:write"===e.type?"resource-write":"active",nB="tool:",nH="tool-node:",nL="tool:*",nU=e=>(e??[]).filter(e=>"*"!==e&&!(e.startsWith(nB)||e.startsWith(nH)));var nK=n(58143),nJ=n(79078),nV=n(55322),nX=n(42061);let nG=(0,nT.h)("frontend/components/Chat/RunResourcesPanel"),nY=({conversationId:e,refreshToken:t})=>{let{t:n,formatNumber:o}=(0,eW.s9)(),[s,i]=(0,r.useState)(null),[l,d]=(0,r.useState)(null);return((0,r.useEffect)(()=>{if(!e)return;let t=!1;return fetch(`/v1/chat/conversations/${encodeURIComponent(e)}/resources`).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return e.json()}).then(e=>{t||(i(Array.isArray(e.resources)?e.resources:[]),d(null))}).catch(e=>{t||(nG.warn("Failed to load run resources",e),d(e instanceof Error?e.message:String(e)))}),()=>{t=!0}},[e,t]),l)?(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:n("chat.resources.unavailable",{error:l})}):null===s?(0,a.jsx)(c.default,{sx:{display:"flex",justifyContent:"center",p:1},children:(0,a.jsx)(h.default,{size:16})}):0===s.length?(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:n("chat.resources.empty")}):(0,a.jsx)(ea.A,{dense:!0,disablePadding:!0,children:[...s].sort((e,t)=>t.createdAt-e.createdAt).map(e=>{var t;return(0,a.jsxs)(V.Ay,{disableGutters:!0,sx:{alignItems:"flex-start"},children:[(0,a.jsx)(eK.A,{sx:{minWidth:30,mt:.5},children:function(e){switch(e){case"image":return(0,a.jsx)(nJ.A,{fontSize:"small",sx:{color:"#009688"}});case"audio":return(0,a.jsx)(nV.A,{fontSize:"small",sx:{color:"#009688"}});case"link":return(0,a.jsx)(nX.A,{fontSize:"small",sx:{color:"#009688"}});default:return(0,a.jsx)(nK.A,{fontSize:"small",sx:{color:"#009688"}})}}(e.kind)}),(0,a.jsx)(G.A,{primary:(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.5,flexWrap:"wrap"},children:[(0,a.jsx)(p.A,{variant:"body2",sx:{fontWeight:500},children:e.name??`${e.kind}-${e.id.slice(0,8)}`}),e.mimeType&&(0,a.jsx)(y.A,{label:e.mimeType,size:"small",variant:"outlined",sx:{height:18,fontSize:"0.65rem"}}),e.archive&&(0,a.jsx)(y.A,{label:"page"===e.archive.role?n("chat.resources.archivePage",{page:(e.archive.pageIndex??0)+1,total:e.archive.pageCount??"?"}):n("chat.resources.archiveSource"),size:"small",color:"info",variant:"outlined",sx:{height:18,fontSize:"0.65rem"}}),(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:(t=e.size)<1024?`${o(t)} B`:t<1048576?`${o(Math.round(t/1024))} KB`:`${o(t/1048576,{maximumFractionDigits:1})} MB`})]}),secondary:(0,a.jsxs)(p.A,{variant:"caption",color:"text.secondary",component:"span",sx:{wordBreak:"break-all"},children:[n("chat.resources.by",{producer:(e=>{let t=e.producedBy;switch(t.source){case"tool-result":return n("chat.resources.producer.toolResult",{server:t.server??"?",tool:t.toolName??"?"});case"tool-args":return n("chat.resources.producer.toolArgs",{server:t.server??"?",tool:t.toolName??"?"});case"capture":return n("chat.resources.producer.step",{step:t.nodeName??t.nodeId??"?"});case"mcp-link":return n("chat.resources.producer.link",{server:t.server??"?"});case"visual-archive":return n("chat.resources.producer.archive");default:return n("chat.resources.producer.run")}})(e)}),e.readBy.length>0?` \xb7 ${n("chat.resources.read",{count:e.readBy.length})}`:"",(e.verifications?.length??0)>0?` \xb7 ${n("chat.resources.verified",{ok:e.verifications.filter(e=>e.ok).length,total:e.verifications.length})}`:"",e.sha256?` \xb7 sha256 ${e.sha256.slice(0,12)}…`:""," \xb7 ",e.uri]})})]},e.id)})})},nQ=(0,nT.h)("frontend/components/Chat/DebuggerCanvas"),nZ={start:nM.vm,process:nM.Uw,finish:nM.IK,mcp:nM.v2,subflow:nM.lA,resource:nM.z9},n0={custom:nE.jY,mcpEdge:nE.oY,resourceEdge:nE.sZ},n1=[];function n2(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}let n5=["tracker","detail"],n4="flujo-debugger-section-order",n6="flujo-debugger-section-visible",n3="flujo-debugger-detail-width",n7=(0,nC.Ay)(tv.A)(({theme:e})=>({display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",padding:e.spacing(1)})),n9=(0,nC.Ay)(c.default)(({theme:e})=>({padding:e.spacing(1,2),borderBottom:`1px solid ${e.palette.divider}`})),n8=(0,nC.Ay)(c.default)({flexGrow:1,display:"flex",overflow:"hidden",minHeight:0}),ae=(0,nC.Ay)(c.default)(({theme:e})=>({width:"200px",flexShrink:0,borderRight:`1px solid ${e.palette.divider}`,overflowY:"auto",padding:e.spacing(1)})),at=(0,nC.Ay)(c.default)({flexGrow:1,position:"relative",height:"100%"}),an=(0,nC.Ay)(c.default)(({theme:e})=>({padding:e.spacing(1,2),borderTop:`1px solid ${e.palette.divider}`,display:"flex",gap:e.spacing(1),justifyContent:"center"})),aa=(0,nC.Ay)(c.default)(({theme:e})=>({width:"6px",flexShrink:0,cursor:"col-resize",backgroundColor:e.palette.divider,transition:"background-color 120ms",touchAction:"none","&:hover":{backgroundColor:e.palette.primary.main}})),ar=({debugState:e,conversationId:t,onStep:n,onContinue:o,onCancel:s,isLoading:i,breakpoints:l,onToggleBreakpoint:d,onSetBreakpoints:x,onClose:v,isExpanded:b,onToggleExpand:w,liveActivity:j,executionEvents:A=n1,onStepSelectionChange:k})=>{let S=(0,C.A)(),{t:I,tp:$,formatDate:z}=(0,eW.s9)(),T={tracker:I("chat.debug.section.tracker"),detail:I("chat.debug.section.detail")},[M,E]=(0,r.useState)(e.executionTrace&&e.executionTrace.length>0?e.executionTrace.length-1:-1),[R,N]=(0,r.useState)(()=>(function(){try{let e=JSON.parse(window.localStorage.getItem(n4)||"null");if(Array.isArray(e)){let t=e.filter(e=>n5.includes(e)),n=n5.filter(e=>!t.includes(e));if(t.length+n.length===n5.length)return[...t,...n]}}catch{}return[...n5]})()),[W,P]=(0,r.useState)(()=>(function(){let e={tracker:!0,detail:!0};try{let t=JSON.parse(window.localStorage.getItem(n6)||"null");if(t&&"object"==typeof t)for(let n of n5)"boolean"==typeof t[n]&&(e[n]=t[n])}catch{}return e})()),[F,_]=(0,r.useState)(()=>{let e;return Number.isFinite(e=Number(window.localStorage.getItem(n3)))&&e>=240?e:320}),q=(0,r.useMemo)(()=>(function(e,t){let n={key:nN,parentKey:null,flowId:e,displayName:"Root flow",depth:0,status:"active",startedSeq:0,nodeActivity:{}},a={rootKey:n.key,activeFrameKey:n.key,frames:{[n.key]:n},order:[n.key]};for(let e of t){let t=nW(e);if(t<0||t>8)continue;if("run:start"===e.type){a.activeFrameKey=n.key;continue}if("subflow:start"===e.type){if(!e.subflowId||t<=0)continue;let n=nD(a,e,t),r=null==e.laneIndex?"":`:lane-${e.laneIndex}`,o=`${n.key}:${e.node?.nodeId??"subflow"}:${e.subflowId}${r}:seq-${e.seq}`,s={key:o,parentKey:n.key,flowId:e.subflowId,invokingNodeId:e.node?.nodeId,displayName:e.laneTitle||e.subflowName||e.subflowId,depth:t,laneIndex:e.laneIndex,laneCount:e.laneCount,laneTitle:e.laneTitle,status:"active",startedSeq:e.seq,nodeActivity:{}};a.frames[o]=s,a.order.push(o),a.activeFrameKey=o,e.node?.nodeId&&(n.nodeActivity[e.node.nodeId]={kind:"active",ts:e.timestamp});continue}if("subflow:done"===e.type){let r=nO(a,n=>"active"===n.status&&n.depth===t&&n.flowId===e.subflowId&&(e.node?.nodeId==null||n.invokingNodeId===e.node.nodeId)&&nP(n,e));if(!r)continue;r.status=e.status,r.endedSeq=e.seq,a.activeFrameKey=r.parentKey??n.key;let o=a.frames[r.parentKey??n.key];r.invokingNodeId&&o&&(o.nodeActivity[r.invokingNodeId]={kind:"active",ts:e.timestamp});continue}let r=nF(a,e);a.activeFrameKey=r.key;let o=n_(e);o&&(r.nodeActivity[o]={kind:nq(e),ts:e.timestamp})}return a})(e.flowId??"",A),[e.flowId,A]),[H,L]=(0,r.useState)(nN),[U,K]=(0,r.useState)({}),J=(0,r.useRef)(new Set),Y=(0,r.useRef)(0),[Q,Z,ee]=(0,n$.ck)([]),[en,er,eo]=(0,n$.fM)([]);(0,r.useEffect)(()=>{window.localStorage.setItem(n4,JSON.stringify(R))},[R]),(0,r.useEffect)(()=>{window.localStorage.setItem(n6,JSON.stringify(W))},[W]),(0,r.useEffect)(()=>{window.localStorage.setItem(n3,String(Math.round(F)))},[F]),(0,r.useEffect)(()=>{let t=e.executionTrace?.length||0;t>0?(E(e=>Math.min(e,t-1)),M<t-1&&E(t-1)):E(-1)},[e.executionTrace]),(0,r.useEffect)(()=>{k?.(M)},[M,k]),(0,r.useEffect)(()=>{L(q.activeFrameKey)},[q.activeFrameKey,A.length]);let es=(0,r.useMemo)(()=>Array.from(new Set(q.order.map(e=>q.frames[e]?.flowId).filter(Boolean))),[q]);(0,r.useEffect)(()=>{Y.current+=1,J.current.clear(),K({}),L(nN)},[t,e.flowId]),(0,r.useEffect)(()=>{let e=Y.current;for(let t of es)!t||J.current.has(t)||(J.current.add(t),K(e=>({...e,[t]:{status:"loading"}})),nz.g.getFlow(t).then(n=>{Y.current===e&&K(e=>({...e,[t]:n?{status:"ready",flow:n}:{status:"missing"}}))}).catch(n=>{if(Y.current!==e)return;let a=n instanceof Error?n.message:I("chat.debug.loadFlowFailed",{id:t});nQ.error("Error loading debugger flow definition:",n),K(e=>({...e,[t]:{status:"error",message:a}}))}))},[t,e.flowId,es,I]);let ei=q.frames[H]??q.frames[q.activeFrameKey]??q.frames[nN],ed=U[ei.flowId],ec=ei;for(;U[ec.flowId]?.status!=="ready"&&ec.parentKey;)ec=q.frames[ec.parentKey]??q.frames[nN];let eu=U[ec.flowId],eh=eu?.status==="ready"?eu.flow:null,ep=U[e.flowId??""],em=!!e.flowId&&!eh&&(!ep||"loading"===ep.status),eg=e.flowId?ep?.status==="missing"?I("chat.debug.flowNotFound",{id:e.flowId}):ep?.status==="error"?ep.message:null:I("chat.debug.flowMissingId"),ef=ei.key!==nN&&ed?.status!=="ready"?ed?.status!=="loading"&&ed?I("chat.debug.childUnavailable",{agent:ei.displayName}):I("chat.debug.loadingChild",{agent:ei.displayName}):null;(0,r.useEffect)(()=>{if(!eh){Z([]),er([]);return}nQ.debug(`Setting debugger graph for flow ${eh.id}`),Z(eh.nodes.map(e=>({...e,draggable:!1,selectable:!1,connectable:!1}))),er(eh.edges.map(e=>({...e,selectable:!1})))},[eh,Z,er]);let ex=(0,r.useCallback)(()=>{if(nQ.debug(`Previous button clicked. Current index: ${M}`),M>0){let e=M-1;nQ.debug(`Setting current step index to: ${e}`),E(e)}else nQ.debug("Already at the first step, cannot go previous.")},[M]),ev=(0,r.useCallback)(()=>{if(nQ.debug(`Next button clicked. Current index: ${M}, Trace length: ${e.executionTrace?.length}`),e.executionTrace&&M<e.executionTrace.length-1){let e=M+1;nQ.debug(`Navigating to next trace step: ${e}`),E(e)}else nQ.info("At end of trace, triggering API call for next step."),n()},[M,e.executionTrace,n]),ey=(0,r.useMemo)(()=>{if(e.executionTrace&&M>=0&&M<e.executionTrace.length)return e.executionTrace[M]},[e.executionTrace,M]),eb=ey?.execResultSnapshot&&"object"==typeof ey.execResultSnapshot?ey.execResultSnapshot:void 0,ew=e.debugBoundary,ej=ew?.phase==="before"?S.palette.warning.main:S.palette.success.main,eA=(e,t)=>I(`chat.debug.boundary.${e}`,{operation:I(`chat.debug.boundary.operation.${t}`)}),ek=ew?ew.previousOperation?I("chat.debug.boundary.transition",{from:eA("after",ew.previousOperation),to:eA("before",ew.operation)}):ew.nextOperation?I("chat.debug.boundary.transition",{from:eA("after",ew.operation),to:eA("before",ew.nextOperation)}):eA(ew.phase,ew.operation):"",eS=(0,r.useMemo)(()=>(function(e,t){if(!e)return new Set;if(e.edgeId)return new Set(t.some(t=>t.id===e.edgeId)?[e.edgeId]:[]);if("tool"!==e.operation||!e.toolNodeIds?.length)return new Set;let n=new Set(e.toolNodeIds);return new Set(t.filter(t=>{let a=!e.nodeId||t.source===e.nodeId||t.target===e.nodeId,r=n.has(t.source)||n.has(t.target);return a&&r}).map(e=>e.id))})(ew,en),[ew,en]),eI=(0,r.useMemo)(()=>en.filter(e=>eS.has(e.id)),[en,eS]),eC=(0,r.useMemo)(()=>en.map(e=>ew&&eS.has(e.id)?{...e,data:{...e.data??{},debuggerActivity:{phase:ew.phase,operation:ew.operation}}}:e),[en,ew,eS]),e$=(0,r.useMemo)(()=>{let e={};for(let t of eI)for(let n of[{nodeId:t.source,handleId:t.sourceHandle},{nodeId:t.target,handleId:t.targetHandle}]){if(!n.handleId)continue;let t=n2(n.nodeId),a=n2(n.handleId);e[`& .react-flow__node[data-id="${t}"] [data-handleid="${a}"]`]={backgroundColor:ej,borderColor:S.palette.background.paper,boxShadow:`0 0 0 4px ${(0,eN.X4)(ej,.24)}, 0 0 14px ${ej}`,transform:"scale(1.28)",transition:"transform 140ms ease, box-shadow 140ms ease",zIndex:20}}return e},[eI,ej,S.palette.background.paper]),[ez,eT]=(0,r.useState)(()=>Date.now());(0,r.useEffect)(()=>{eT(Date.now())},[A.length]),(0,r.useEffect)(()=>{if(!j)return;let e=()=>{let e=Date.now();return[...Object.values(j.byNode),...Object.values(j.byResource),...Object.values(j.byResourceName)].some(t=>e-t.ts<4e3)};if(!e())return;let t=setInterval(()=>{eT(Date.now()),e()||clearInterval(t)},350);return()=>clearInterval(t)},[j]);let eM=(0,r.useCallback)(e=>{var t,n;let a=ec.nodeActivity[e.id];if(a&&ez-a.ts<4e3)return a;if(ec.key!==nN||!j)return null;let r=j.byNode[e.id];if(r&&ez-r.ts<4e3)return r;let o=e.data;if((o?.type??e.type)!=="resource")return null;let s=o?.properties??{},i="run"===s.scope?"string"==typeof s.runName?j.byResourceName[s.runName]:void 0:"string"==typeof s.boundServer&&"string"==typeof s.uri?j.byResource[t=s.boundServer,n=s.uri,`${t} ${n}`]:void 0;return i&&ez-i.ts<4e3?{kind:"read"===i.kind?"resource-read":"resource-write",ts:i.ts}:null},[ec,j,ez]),eE=(0,r.useCallback)(e=>{if(ec.key!==nN)return null;let t="string"==typeof e.data?.type?e.data.type:e.type;return"mcp"===t?`${nH}${e.id}`:"resource"===t||"trigger"===t?null:e.id},[ec.key]),eR=(0,r.useMemo)(()=>{let e=ec.key===nN?ey?.nodeId:void 0;return Q.map(t=>{let n=t.id===e,a=ec.key===nN&&!!ew&&(t.id===ew.nodeId||t.id===ew.targetNodeId),r=eE(t),o=!!r&&!!l?.includes(r),s=n||a?null:eM(t),i=s?Math.max(.25,1-(ez-s.ts)/4e3):0,d=s?.kind==="active"?S.palette.primary.main:"#009688";return{...t,className:[t.className,o?"flujo-breakpoint":null,a?`flujo-debug-boundary flujo-debug-${ew?.phase}`:null].filter(Boolean).join(" ")||void 0,style:{...t.style,border:a?`3px solid ${ej}`:n?`2px solid ${S.palette.warning.main}`:s?`2px solid ${d}`:t.style?.border,boxShadow:a?`0 0 0 5px ${(0,eN.X4)(ej,.18)}, 0 0 16px ${ej}`:n?`0 0 10px ${S.palette.warning.light}`:s?`0 0 ${"resource-write"===s.kind?14:10}px ${d}${Math.round(255*i).toString(16).padStart(2,"0")}`:void 0}}})},[Q,ec.key,ey,ew,ej,l,S,eM,ez,eE]),[eP,eO]=(0,r.useState)(null),eD=(0,r.useCallback)(()=>eO(null),[]),eF=l??[],e_=eF.includes(nL),eq=(0,r.useCallback)((e,t)=>{e.preventDefault();let n="string"==typeof t.data?.label?t.data.label:t.id,a=eE(t);eO({x:e.clientX,y:e.clientY,...a?{breakpointKey:a}:{},nodeLabel:n,...!a?{unavailableReason:ec.key===nN?I("chat.debug.breakpointPassiveNode"):I("chat.debug.breakpointChildRun")}:{}})},[eE,ec.key,I]),eB=(0,r.useCallback)(e=>{e.preventDefault(),eO({x:e.clientX,y:e.clientY})},[]),eH=(0,r.useCallback)(()=>{x&&(x(e_?eF.filter(e=>e!==nL):[...eF,nL]),eD())},[x,e_,eF,eD]),eL=(0,r.useCallback)(()=>{x?.([]),eD()},[x,eD]),eU=(0,r.useMemo)(()=>(function(e,t){let n=[],a=new Set,r=e.frames[t];for(;r&&!a.has(r.key)&&n.length<=8;)n.unshift(r),a.add(r.key),r=r.parentKey?e.frames[r.parentKey]:void 0;return n})(q,ei.key),[q,ei.key]),eJ=(0,r.useCallback)(e=>{let t=U[e.flowId],n=e.key===nN&&t?.status==="ready"?t.flow.name:e.displayName;return null==e.laneIndex?n:`${n} \xb7 lane ${e.laneIndex+1}`},[U]),eV=(0,r.useMemo)(()=>R.filter(e=>W[e]),[R,W]),eX=(0,r.useCallback)(e=>{P(t=>({...t,[e]:!t[e]}))},[]),eG=(0,r.useCallback)((e,t)=>{N(n=>{let a=n.indexOf(e),r=a+t;if(a<0||r<0||r>=n.length)return n;let o=[...n];return[o[a],o[r]]=[o[r],o[a]],o})},[]),eY=(0,r.useCallback)((e,t)=>{t.preventDefault();let n=t.clientX,a=document.body.style.userSelect,r=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";let o=t=>{_(Math.min(Math.max(F+e*(t.clientX-n),240),1100))},s=()=>{window.removeEventListener("pointermove",o),window.removeEventListener("pointerup",s),document.body.style.userSelect=a,document.body.style.cursor=r};window.addEventListener("pointermove",o),window.addEventListener("pointerup",s)},[F]),eQ={tracker:(0,a.jsxs)(c.default,{sx:{flexGrow:1,display:"flex",overflow:"hidden",minHeight:0},children:[(0,a.jsxs)(ae,{children:[(0,a.jsx)(p.A,{variant:"caption",color:"textSecondary",gutterBottom:!0,sx:{display:"block"},children:I("chat.debug.executionTrace")}),(0,a.jsxs)(ea.A,{dense:!0,disablePadding:!0,children:[e.executionTrace?.map((t,n)=>(0,a.jsx)(V.Ay,{disablePadding:!0,children:(0,a.jsx)(X.A,{selected:n===M,onClick:()=>{e.executionTrace&&n>=0&&n<e.executionTrace.length?(nQ.debug(`Trace step selected: ${n}`),E(n)):nQ.warn(`Invalid step index selected: ${n}`)},children:(0,a.jsx)(G.A,{primary:`${t.stepIndex}: ${t.nodeName||t.nodeId}`,secondary:t.nodeType})})},t.stepIndex)),ew&&(0,a.jsx)(V.Ay,{disablePadding:!0,"data-testid":"debug-boundary-row",children:(0,a.jsx)(X.A,{selected:!0,disableRipple:!0,sx:{cursor:"default",borderLeft:`3px solid ${ej}`,bgcolor:(0,eN.X4)(ej,.1)},children:(0,a.jsx)(G.A,{primary:`B${ew.index}: ${ek}`,secondary:ew.targetNodeId?`${ew.nodeId??"?"} → ${ew.targetNodeId}`:ew.nodeId})})}),i&&(0,a.jsx)(V.Ay,{children:(0,a.jsx)(h.default,{size:20,sx:{margin:"auto"}})})]})]}),(0,a.jsx)(at,{children:(0,a.jsxs)(c.default,{sx:{height:"100%",minHeight:0,display:"flex",flexDirection:"column"},children:[(0,a.jsxs)(c.default,{sx:{px:1,py:.5,borderBottom:`1px solid ${S.palette.divider}`,flexShrink:0},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.25,overflowX:"auto"},children:[ei.parentKey&&(0,a.jsx)(g.A,{title:I("chat.debug.backToParent"),children:(0,a.jsx)(f.A,{size:"small",onClick:()=>L(ei.parentKey??nN),"aria-label":I("chat.debug.backToParent"),children:(0,a.jsx)(O.A,{fontSize:"small"})})}),eU.map((e,t)=>(0,a.jsxs)(r.Fragment,{children:[t>0&&(0,a.jsx)(D.A,{color:"disabled",fontSize:"small"}),(0,a.jsx)(u.A,{size:"small",variant:e.key===ei.key?"contained":"text",onClick:()=>L(e.key),sx:{minWidth:0,whiteSpace:"nowrap",textTransform:"none"},children:eJ(e)})]},e.key))]}),q.order.length>1&&(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.5,mt:.25,overflowX:"auto"},children:[(0,a.jsx)(p.A,{variant:"caption",color:"textSecondary",sx:{flexShrink:0},children:I("chat.debug.frames")}),q.order.slice(1).map(e=>{let t=q.frames[e];return(0,a.jsxs)(u.A,{size:"small",variant:t.key===ei.key?"outlined":"text",color:"error"===t.status?"error":"inherit",onClick:()=>L(t.key),sx:{minWidth:0,py:0,whiteSpace:"nowrap",textTransform:"none",fontSize:"0.7rem"},children:[eJ(t)," \xb7 ",t.status]},e)})]})]}),ef&&(0,a.jsx)(m.A,{severity:ed?.status!=="loading"&&ed?"warning":"info",sx:{m:1,mb:0,py:0,flexShrink:0},children:ef}),(0,a.jsxs)(c.default,{sx:{flexGrow:1,minHeight:0,position:"relative","& .react-flow__node.flujo-breakpoint":{outline:`3px solid ${S.palette.error.main}`,outlineOffset:"2px",borderRadius:"8px",boxShadow:`0 0 0 7px ${(0,eN.X4)(S.palette.error.main,.16)}, 0 0 14px ${(0,eN.X4)(S.palette.error.main,.5)}`},"& .react-flow__node.flujo-breakpoint::before":{content:'""',position:"absolute",top:"-11px",left:"-11px",width:"16px",height:"16px",borderRadius:"50%",backgroundColor:S.palette.error.main,border:`2px solid ${S.palette.background.paper}`,boxShadow:`0 0 8px ${S.palette.error.main}`,zIndex:12,pointerEvents:"none"},...e$},onContextMenu:e=>{e.target.closest(".react-flow__node")||eB(e)},children:[em?(0,a.jsx)(c.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"},children:(0,a.jsx)(h.default,{})}):eg?(0,a.jsx)(m.A,{severity:"error",sx:{margin:2},children:eg}):(0,a.jsx)(n$.Ln,{children:(0,a.jsx)(n$.Gc,{nodes:eR,edges:eC,onNodesChange:ee,onEdgesChange:eo,nodeTypes:nZ,edgeTypes:n0,fitView:!0,attributionPosition:"bottom-right",nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!1,panOnDrag:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!1,onNodeClick:(e,t)=>{e.preventDefault();let n=eE(t);d&&n&&d(n)},onNodeContextMenu:eq,onPaneContextMenu:eB,onEdgeClick:e=>e.preventDefault(),onPaneClick:()=>{}})}),(0,a.jsxs)(ts.A,{open:!!eP,onClose:eD,anchorReference:"anchorPosition",anchorPosition:eP?{top:eP.y,left:eP.x}:void 0,children:[eP?.nodeLabel&&(0,a.jsxs)(et.A,{onClick:()=>{eP.breakpointKey&&d?.(eP.breakpointKey),eD()},disabled:!d||!eP.breakpointKey,children:[(0,a.jsx)(eK.A,{children:eP.breakpointKey&&eF.includes(eP.breakpointKey)?(0,a.jsx)(nk.A,{fontSize:"small",color:"error"}):(0,a.jsx)(nA.A,{fontSize:"small",color:eP.breakpointKey?"error":"disabled"})}),(0,a.jsx)(G.A,{primary:eP.breakpointKey&&eF.includes(eP.breakpointKey)?I("chat.debug.menu.removeBreakpoint"):I("chat.debug.menu.addBreakpoint"),secondary:eP.unavailableReason||eP.nodeLabel})]}),(0,a.jsxs)(et.A,{onClick:eH,disabled:!x,children:[(0,a.jsx)(eK.A,{children:(0,a.jsx)(nI.A,{fontSize:"small",color:e_?"error":"inherit"})}),(0,a.jsx)(G.A,{primary:e_?I("chat.debug.menu.toolBreakpointOff"):I("chat.debug.menu.toolBreakpointOn"),secondary:I("chat.debug.menu.toolBreakpointHelp")})]}),(0,a.jsxs)(et.A,{onClick:eL,disabled:!x||0===eF.length,children:[(0,a.jsx)(eK.A,{children:(0,a.jsx)(nS.A,{fontSize:"small"})}),(0,a.jsx)(G.A,{primary:I("chat.debug.menu.clearAll")})]})]})]})]})})]}),detail:(0,a.jsxs)(c.default,{sx:{flexGrow:1,overflowY:"auto",minHeight:0,p:2},children:[ew&&(0,a.jsxs)(c.default,{"data-testid":"debug-boundary-detail",sx:{mb:2*!!ey},children:[(0,a.jsx)(m.A,{severity:"before"===ew.phase?"warning":"success",variant:"outlined",sx:{alignItems:"flex-start"},children:(0,a.jsxs)(c.default,{sx:{display:"flex",flexDirection:"column",gap:.5,minWidth:0},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.75,flexWrap:"wrap"},children:[(0,a.jsx)(y.A,{size:"small",color:"before"===ew.phase?"warning":"success",label:ew.phase.toUpperCase()}),(0,a.jsx)(p.A,{variant:"subtitle2",children:ek})]}),ew.edgeId&&(0,a.jsxs)(p.A,{variant:"caption",sx:{wordBreak:"break-all"},children:[I("chat.debug.boundary.edge"),": ",ew.edgeId]}),(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:ew.targetNodeId?`${ew.nodeId??"?"} → ${ew.targetNodeId}`:ew.nodeId??I("chat.debug.boundary.noNode")}),(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:I("chat.debug.boundary.conversationCount",{count:ew.stateSnapshot.messageCount})})]})}),!!ew.toolCalls?.length&&(0,a.jsxs)(nf.A,{defaultExpanded:!0,sx:{mt:1,boxShadow:"none","&:before":{display:"none"}},children:[(0,a.jsx)(nx.A,{expandIcon:(0,a.jsx)(el.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,a.jsx)(p.A,{variant:"caption",children:I("chat.debug.boundary.parameters")})}),(0,a.jsx)(nv.A,{sx:{p:0,display:"flex",flexDirection:"column",gap:1},children:ew.toolCalls.map(e=>(0,a.jsxs)(c.default,{sx:{minWidth:0},children:[(0,a.jsx)(p.A,{variant:"caption",sx:{fontWeight:700,wordBreak:"break-all"},children:e.function.name}),(0,a.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"180px",overflowY:"auto",background:"var(--surface-raised)",color:"var(--foreground)",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:function(e){try{return JSON.stringify(JSON.parse(e||"{}"),null,2)}catch{return e}}(e.function.arguments)})]},e.id))})]}),ew.modelInput&&(0,a.jsxs)(nf.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,a.jsx)(nx.A,{expandIcon:(0,a.jsx)(el.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,a.jsx)(p.A,{variant:"caption",children:I("chat.debug.boundary.modelInput")})}),(0,a.jsx)(nv.A,{sx:{p:0},children:(0,a.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"260px",overflowY:"auto",background:"var(--surface-raised)",color:"var(--foreground)",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(ew.modelInput,null,2)})})]}),(0,a.jsxs)(nf.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,a.jsx)(nx.A,{expandIcon:(0,a.jsx)(el.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,a.jsx)(p.A,{variant:"caption",children:I("chat.debug.boundary.state")})}),(0,a.jsx)(nv.A,{sx:{p:0},children:(0,a.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"220px",overflowY:"auto",background:"var(--surface-raised)",color:"var(--foreground)",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(ew.stateSnapshot,null,2)})})]})]}),ey?(0,a.jsxs)(c.default,{children:[(0,a.jsxs)(p.A,{variant:"body2",children:[(0,a.jsx)("b",{children:I("chat.debug.node")})," ",ey.nodeName," (",ey.nodeId,")"]}),(0,a.jsxs)(p.A,{variant:"body2",children:[(0,a.jsx)("b",{children:I("chat.debug.type")})," ",ey.nodeType]}),(0,a.jsxs)(p.A,{variant:"body2",children:[(0,a.jsx)("b",{children:I("chat.debug.timestamp")})," ",z(new Date(ey.timestamp),{dateStyle:"medium",timeStyle:"medium"})]}),(0,a.jsxs)(p.A,{variant:"body2",children:[(0,a.jsx)("b",{children:I("chat.debug.actionTaken")})," ",ey.actionTaken]}),(0,a.jsxs)(nf.A,{sx:{mt:2,boxShadow:"none","&:before":{display:"none"}},children:[(0,a.jsx)(nx.A,{expandIcon:(0,a.jsx)(el.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,a.jsx)(p.A,{variant:"caption",children:I("chat.debug.prepResult")})}),(0,a.jsx)(nv.A,{sx:{p:0},children:(0,a.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"200px",overflowY:"auto",background:"var(--surface-raised)",color:"var(--foreground)",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(ey.prepResultSnapshot,null,2)})})]}),(0,a.jsxs)(nf.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,a.jsx)(nx.A,{expandIcon:(0,a.jsx)(el.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,a.jsx)(p.A,{variant:"caption",color:eb?.success===!1?"error":"inherit",children:eb?.success===!1?I("chat.debug.execResultError"):I("chat.debug.execResult")})}),(0,a.jsx)(nv.A,{sx:{p:0},children:eb?.success===!1?(0,a.jsxs)(c.default,{sx:{p:1,background:S.palette.error.light,borderRadius:1},children:[(0,a.jsxs)(p.A,{variant:"body2",color:"error",gutterBottom:!0,children:[(0,a.jsx)("b",{children:I("chat.debug.error")})," ","string"==typeof eb.error?eb.error:I("chat.debug.unknownError")]}),void 0!==eb.errorDetails&&(0,a.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"150px",overflowY:"auto",background:"var(--surface-raised)",color:"var(--foreground)",padding:"4px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(eb.errorDetails,null,2)})]}):(0,a.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"200px",overflowY:"auto",background:"var(--surface-raised)",color:"var(--foreground)",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(ey.execResultSnapshot,null,2)})})]}),(0,a.jsxs)(nf.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,a.jsx)(nx.A,{expandIcon:(0,a.jsx)(el.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,a.jsx)(p.A,{variant:"caption",children:I("chat.debug.stateBefore")})}),(0,a.jsx)(nv.A,{sx:{p:0},children:(0,a.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"200px",overflowY:"auto",background:"var(--surface-raised)",color:"var(--foreground)",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(ey.stateBefore,null,2)})})]}),(0,a.jsxs)(nf.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,a.jsx)(nx.A,{expandIcon:(0,a.jsx)(el.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,a.jsx)(p.A,{variant:"caption",children:I("chat.debug.stateAfter")})}),(0,a.jsx)(nv.A,{sx:{p:0},children:(0,a.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"200px",overflowY:"auto",background:"var(--surface-raised)",color:"var(--foreground)",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(ey.stateAfter,null,2)})})]})]}):ew?null:(0,a.jsx)(p.A,{variant:"body2",color:"textSecondary",children:I("chat.debug.selectStep")}),(0,a.jsxs)(nf.A,{defaultExpanded:!0,sx:{mt:2,boxShadow:"none","&:before":{display:"none"}},children:[(0,a.jsx)(nx.A,{expandIcon:(0,a.jsx)(el.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,a.jsx)(p.A,{variant:"caption",children:I("chat.debug.runData")})}),(0,a.jsx)(nv.A,{sx:{p:0},children:(0,a.jsx)(nY,{conversationId:t,refreshToken:j?.resourceVersion})})]})]})};return(0,a.jsxs)(n7,{elevation:2,children:[(0,a.jsxs)(n9,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"space-between"},children:[(0,a.jsxs)(c.default,{children:[(0,a.jsx)(p.A,{variant:"h6",children:I("chat.debug.title")}),(0,a.jsxs)(p.A,{variant:"caption",color:"textSecondary",sx:{display:"block"},children:[I("chat.debug.breakpointHelp"),eF.length>0?` \xb7 ${$("chat.debug.activeBreakpoints",eF.length)}`:""]}),eF.length>0&&(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.5,mt:.5,flexWrap:"wrap"},children:[nU(eF).length>0&&(0,a.jsx)(y.A,{size:"small",variant:"outlined",color:"error",icon:(0,a.jsx)(nA.A,{}),label:$("chat.debug.nodeBreakpoints",nU(eF).length)}),(eF??[]).filter(e=>e.startsWith(nB)).map(e=>e.slice(nB.length)).map(e=>(0,a.jsx)(y.A,{size:"small",variant:"outlined",color:"error",icon:(0,a.jsx)(nI.A,{}),label:"*"===e?I("chat.debug.anyToolBreakpoint"):e,onDelete:x?()=>x(eF.filter(t=>t!==`tool:${e}`)):void 0},e)),(eF??[]).filter(e=>e.startsWith(nH)).map(e=>e.slice(nH.length)).map(e=>(0,a.jsx)(y.A,{size:"small",variant:"outlined",color:"error",icon:(0,a.jsx)(nI.A,{}),label:I("chat.debug.toolNodeBreakpoint",{id:e.slice(0,8)}),onDelete:x?()=>x(eF.filter(t=>t!==`${nH}${e}`)):void 0},`tool-node:${e}`))]})]}),(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,a.jsx)(g.A,{title:W.tracker?I("chat.debug.hideSection",{section:T.tracker}):I("chat.debug.showSection",{section:T.tracker}),children:(0,a.jsx)(f.A,{size:"small",onClick:()=>eX("tracker"),color:W.tracker?"primary":"default","aria-label":W.tracker?I("chat.debug.hideSection",{section:T.tracker}):I("chat.debug.showSection",{section:T.tracker}),children:(0,a.jsx)(B.A,{fontSize:"small"})})}),(0,a.jsx)(g.A,{title:W.detail?I("chat.debug.hideSection",{section:T.detail}):I("chat.debug.showSection",{section:T.detail}),children:(0,a.jsx)(f.A,{size:"small",onClick:()=>eX("detail"),color:W.detail?"primary":"default","aria-label":W.detail?I("chat.debug.hideSection",{section:T.detail}):I("chat.debug.showSection",{section:T.detail}),children:(0,a.jsx)(nj.A,{fontSize:"small"})})}),w&&(0,a.jsx)(g.A,{title:b?I("chat.debug.exitFullscreen"):I("chat.debug.enterFullscreen"),children:(0,a.jsx)(f.A,{size:"small",onClick:w,"aria-label":b?I("chat.debug.exitFullscreen"):I("chat.debug.enterFullscreen"),children:b?(0,a.jsx)(nw.A,{fontSize:"small"}):(0,a.jsx)(nb.A,{fontSize:"small"})})}),v&&(0,a.jsx)(g.A,{title:I("chat.debug.close"),children:(0,a.jsx)(f.A,{size:"small",onClick:v,"aria-label":I("chat.debug.close"),children:(0,a.jsx)(ny.A,{fontSize:"small"})})})]})]}),(0,a.jsx)(n8,{children:0===eV.length?(0,a.jsx)(c.default,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",p:3},children:(0,a.jsx)(p.A,{variant:"body2",color:"textSecondary",children:I("chat.debug.allHidden")})}):eV.map((e,t)=>{var n;let o,s,i,l;return(0,a.jsxs)(r.Fragment,{children:[(s=(o="detail"===e)?F:void 0,(0,a.jsxs)(c.default,{sx:{...o?{width:s,flexShrink:0}:{flexGrow:1,minWidth:300},display:"flex",flexDirection:"column",overflow:"hidden",minHeight:0},children:[(i=eV.indexOf(e),(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:1,py:.5,borderBottom:`1px solid ${S.palette.divider}`},children:[(0,a.jsx)(p.A,{variant:"subtitle2",noWrap:!0,children:T[e]}),(0,a.jsxs)(c.default,{sx:{display:"flex"},children:[(0,a.jsx)(g.A,{title:I("chat.debug.moveLeft",{section:T[e]}),children:(0,a.jsx)("span",{children:(0,a.jsx)(f.A,{size:"small",onClick:()=>eG(e,-1),disabled:i<=0,"aria-label":I("chat.debug.moveLeft",{section:T[e]}),children:(0,a.jsx)(O.A,{fontSize:"small"})})})}),(0,a.jsx)(g.A,{title:I("chat.debug.moveRight",{section:T[e]}),children:(0,a.jsx)("span",{children:(0,a.jsx)(f.A,{size:"small",onClick:()=>eG(e,1),disabled:i<0||i>=eV.length-1,"aria-label":I("chat.debug.moveRight",{section:T[e]}),children:(0,a.jsx)(D.A,{fontSize:"small"})})})}),(0,a.jsx)(g.A,{title:I("chat.debug.hideSection",{section:T[e]}),children:(0,a.jsx)(f.A,{size:"small",onClick:()=>eX(e),"aria-label":I("chat.debug.hideSection",{section:T[e]}),children:(0,a.jsx)(ny.A,{fontSize:"small"})})})]})]})),eQ[e]]},e)),t<eV.length-1&&(n=eV[t+1],l="tracker"!==e?1:-1,(0,a.jsx)(aa,{onPointerDown:e=>eY(l,e),"aria-label":I("chat.debug.resizeSection",{section:T.detail})},`resizer-${e}-${n}`))]},e)})}),(0,a.jsxs)(an,{children:[(0,a.jsx)(u.A,{variant:"outlined",size:"small",onClick:ex,disabled:i||M<=0,children:I("chat.debug.previous")}),(0,a.jsx)(u.A,{variant:"contained",size:"small",onClick:ev,disabled:i||-1===M&&!ew,children:e.executionTrace&&M<e.executionTrace.length-1?I("chat.debug.nextTrace"):I("chat.debug.stepNext")}),(0,a.jsx)(u.A,{variant:"contained",color:"secondary",size:"small",onClick:o,disabled:i,children:I("chat.debug.continue")}),(0,a.jsx)(u.A,{variant:"outlined",color:"error",size:"small",onClick:s,disabled:i,children:I("chat.debug.stop")})]})]})},ao={system:{color:"secondary"},sent:{color:"success"},folded:{color:"warning"},"scoped-out":{color:"info"},"handoff-stripped":{color:"default"},summarized:{color:"secondary"},"visually-archived":{color:"primary"},"emergency-stripped":{color:"error"},"content-truncated":{color:"warning"}},as={whiteSpace:"pre-wrap",wordBreak:"break-word",margin:0,fontSize:"0.75rem",fontFamily:"inherit"},ai=({role:e,content:t,toolCallNames:n,status:r,faded:o})=>{let{t:s}=(0,eW.s9)(),i="user"===e?s("chat.messages.you"):"assistant"===e?s("chat.messages.agent"):"tool"===e?s("chat.messages.tool"):"system"===e?s("chat.messages.system"):e,l=r?({system:s("chat.debug.status.system"),sent:s("chat.debug.status.sent"),folded:s("chat.debug.status.folded"),"scoped-out":s("chat.debug.status.scoped"),"handoff-stripped":s("chat.debug.status.handoff"),summarized:s("chat.debug.status.summarized"),"visually-archived":s("chat.debug.status.visuallyArchived"),"emergency-stripped":s("chat.debug.status.emergencyStripped"),"content-truncated":s("chat.debug.status.contentTruncated")})[r]:"";return(0,a.jsxs)(tv.A,{variant:"outlined",sx:{p:1,mb:.75,opacity:o?.55:1,borderStyle:o?"dashed":"solid"},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.5,mb:.5,flexWrap:"wrap"},children:[(0,a.jsx)(y.A,{size:"small",label:i,color:function(e){switch(e){case"system":return"secondary";case"user":return"primary";case"assistant":return"success";case"tool":return"info";default:return"default"}}(e),variant:"outlined"}),n&&n.length>0&&(0,a.jsx)(y.A,{size:"small",variant:"outlined",label:`🔧 ${n.join(", ")}`,sx:{maxWidth:"100%"}}),r&&"sent"!==r&&"system"!==r&&(0,a.jsx)(y.A,{size:"small",color:ao[r].color,label:l})]}),t.trim().length>0?(0,a.jsx)("pre",{style:as,children:t}):(0,a.jsx)(p.A,{variant:"caption",color:"textSecondary",children:s("chat.debug.noText")})]})},al=({provenance:e})=>{let{t}=(0,eW.s9)();return(0,a.jsxs)(c.default,{children:[(0,a.jsx)(p.A,{variant:"caption",color:"textSecondary",sx:{display:"block",mb:.5},children:t("chat.debug.historyHelp")}),e.map((e,t)=>(0,a.jsx)(ai,{role:e.role,content:e.preview??"",toolCallNames:e.toolCallNames,status:e.status,faded:!["sent","system","content-truncated"].includes(e.status)},e.id??`hist-${t}`)),e.some(e=>"sent"!==e.status&&"system"!==e.status)&&(0,a.jsx)(p.A,{variant:"caption",color:"textSecondary",sx:{display:"block",mt:1},children:t("chat.debug.badgeHelp")})]})},ad=({diagnostic:e})=>{let{t}=(0,eW.s9)();return e?.events.length?(0,a.jsxs)(tv.A,{variant:"outlined",sx:{p:1,mb:1,borderColor:"warning.main"},children:[(0,a.jsx)(p.A,{variant:"caption",sx:{display:"block",fontWeight:700,mb:.5},children:t("chat.debug.contextCompaction")}),e.events.map((e,n)=>(0,a.jsxs)(c.default,{sx:{display:"flex",gap:.5,flexWrap:"wrap",alignItems:"center",mb:.5},children:[(0,a.jsx)(y.A,{size:"small",color:"emergency-refit"===e.kind?"error":"warning",label:e.kind}),void 0!==e.before&&void 0!==e.after&&(0,a.jsx)(y.A,{size:"small",variant:"outlined",label:`${e.before.toLocaleString()} → ${e.after.toLocaleString()} ${e.unit??""}`}),e.omittedMessages?(0,a.jsx)(y.A,{size:"small",variant:"outlined",label:t("chat.debug.omittedMessages",{count:e.omittedMessages})}):null,e.truncatedMessages?(0,a.jsx)(y.A,{size:"small",variant:"outlined",label:t("chat.debug.truncatedMessages",{count:e.truncatedMessages})}):null,(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:e.reason})]},`${e.kind}-${n}`))]}):null},ac=()=>{},au=({modelInput:e,conversationId:t,source:n="historical-request",warnings:o=[]})=>{let{t:s}=(0,eW.s9)(),[i,l]=(0,r.useState)("wire"),{systemMessage:d,wireMessages:u,provenance:h,counts:g,inputMode:f}=e,x=(0,r.useMemo)(()=>(u||[]).filter(e=>"system"!==e.role),[u]);return(0,a.jsxs)(c.default,{sx:{display:"flex",flexDirection:"column",p:1},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:.5,flexWrap:"wrap",mb:1},children:[(0,a.jsx)(y.A,{size:"small",color:"current-preview"===n?"warning":"default",label:s("current-preview"===n?"chat.preview.current":"chat.preview.historicalRequest")}),(0,a.jsx)(p.A,{variant:"caption",color:"textSecondary",children:s?[s("chat.debug.summary",{history:g.threaded,sent:g.sent}),g.folded?s("chat.debug.foldedCount",{count:g.folded}):"",g.scopedOut?s("chat.debug.scopedCount",{count:g.scopedOut}):"",g.handoffStripped?s("chat.debug.handoffCount",{count:g.handoffStripped}):"",g.summarized?s("chat.debug.summarizedCount",{count:g.summarized}):"",g.visuallyArchived?s("chat.debug.visuallyArchivedCount",{count:g.visuallyArchived}):"",g.emergencyStripped?s("chat.debug.emergencyStrippedCount",{count:g.emergencyStripped}):"",g.contentTruncated?s("chat.debug.contentTruncatedCount",{count:g.contentTruncated}):""].filter(Boolean).join(" \xb7 "):`${g.threaded} in history → ${g.sent} sent`+(g.folded?` \xb7 ${g.folded} folded`:"")+(g.scopedOut?` \xb7 ${g.scopedOut} scoped out`:"")+(g.handoffStripped?` \xb7 ${g.handoffStripped} handoff-stripped`:"")+(g.summarized?` \xb7 ${g.summarized} summarized`:"")+(g.visuallyArchived?` \xb7 ${g.visuallyArchived} visually archived`:"")+(g.emergencyStripped?` \xb7 ${g.emergencyStripped} emergency-stripped`:"")+(g.contentTruncated?` \xb7 ${g.contentTruncated} content-truncated`:"")}),f&&"full-history"!==f&&(0,a.jsx)(y.A,{size:"small",variant:"outlined",label:`inputMode: ${f}`})]}),o.map((e,t)=>(0,a.jsx)(m.A,{severity:"current_state"===e.code?"info":"warning",variant:"outlined",sx:{mb:1},children:e.message},`${e.code}-${t}`)),(0,a.jsx)(ad,{diagnostic:e.contextCompaction}),e.visualCompaction&&(0,a.jsxs)(m.A,{severity:"image"===e.visualCompaction.route?"warning":"info",variant:"outlined",sx:{mb:1},children:["Visual context route: ",e.visualCompaction.route,e.visualCompaction.candidate?` \xb7 ${e.visualCompaction.candidate.messageCount} old messages evaluated`:"",e.visualCompaction.fallbackReason?` \xb7 ${e.visualCompaction.fallbackReason}`:""]}),(0,a.jsxs)(nf.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,a.jsx)(nx.A,{expandIcon:(0,a.jsx)(el.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,a.jsx)(p.A,{variant:"caption",children:(0,a.jsx)("b",{children:s("chat.debug.systemMessage")})})}),(0,a.jsx)(nv.A,{sx:{p:0},children:d&&d.content.trim().length>0?(0,a.jsx)(tv.A,{variant:"outlined",sx:{p:1,maxHeight:220,overflowY:"auto"},children:(0,a.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",margin:0,fontSize:"0.75rem",fontFamily:"inherit"},children:d.content})}):(0,a.jsx)(p.A,{variant:"caption",color:"textSecondary",children:s("chat.debug.noSystem")})})]}),(0,a.jsxs)(b.A,{size:"small",exclusive:!0,value:i,onChange:(e,t)=>{t&&l(t)},sx:{my:1},children:[(0,a.jsx)(w.A,{value:"wire",children:s("chat.debug.modelView")}),(0,a.jsx)(w.A,{value:"annotated",children:s("chat.debug.fullHistory")})]}),(0,a.jsx)(c.default,{children:"wire"===i?0===x.length?(0,a.jsx)(p.A,{variant:"body2",color:"textSecondary",sx:{p:1},children:s("chat.debug.noConversation")}):(0,a.jsx)(tr.Ay,{messages:x,conversationId:t?`debug-${t}`:void 0,onToggleDisabled:ac,onSplitConversation:ac}):(0,a.jsx)(al,{provenance:h})})]})};var ah=n(2933);let ap=({mode:e,onClose:t,isExpanded:n,onToggleExpand:r})=>{let{t:o}=(0,eW.s9)();return(0,a.jsxs)(tv.A,{elevation:0,square:!0,sx:{height:"100%",display:"flex",flexDirection:"column",minHeight:0,bgcolor:"background.default"},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:1,px:1,py:.5,borderBottom:1,borderColor:"divider",flexShrink:0},children:[(0,a.jsx)(ah.A,{fontSize:"small",color:"primary"}),(0,a.jsx)(p.A,{variant:"subtitle2",sx:{flexGrow:1},children:o("chat.debug.title")}),r&&(0,a.jsx)(g.A,{title:o(n?"chat.debug.exitFullscreen":"chat.debug.enterFullscreen"),children:(0,a.jsx)(f.A,{size:"small",onClick:r,"aria-label":o(n?"chat.debug.exitFullscreen":"chat.debug.enterFullscreen"),children:n?(0,a.jsx)(nw.A,{fontSize:"small"}):(0,a.jsx)(nb.A,{fontSize:"small"})})}),(0,a.jsx)(g.A,{title:o("chat.debug.close"),children:(0,a.jsx)(f.A,{size:"small",onClick:t,"aria-label":o("chat.debug.close"),children:(0,a.jsx)(ny.A,{fontSize:"small"})})})]}),(0,a.jsxs)(c.default,{sx:{flexGrow:1,minHeight:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:2,p:3,textAlign:"center"},"data-testid":"debugger-pending",children:[(0,a.jsx)(h.default,{size:32}),(0,a.jsx)(p.A,{variant:"body2",color:"textSecondary",children:o("attaching"===e?"chat.debug.pendingAttaching":"chat.debug.pendingArmed")}),(0,a.jsx)(p.A,{variant:"caption",color:"textSecondary",sx:{maxWidth:420},children:o("attaching"===e?"chat.debug.pendingAttachingHelp":"chat.debug.pendingArmedHelp")})]}),(0,a.jsxs)(c.default,{sx:{display:"flex",gap:1,p:1,borderTop:1,borderColor:"divider",flexShrink:0},children:[(0,a.jsx)(u.A,{variant:"outlined",size:"small",disabled:!0,children:o("chat.debug.previous")}),(0,a.jsx)(u.A,{variant:"contained",size:"small",disabled:!0,children:o("chat.debug.stepNext")}),(0,a.jsx)(u.A,{variant:"contained",color:"secondary",size:"small",disabled:!0,children:o("chat.debug.continue")})]})]})},am=(0,nT.h)("frontend/components/Chat/ExecutedFlowPanel"),ag={start:nM.vm,process:nM.Uw,finish:nM.IK,mcp:nM.v2,subflow:nM.lA,resource:nM.z9,signal:nM.z3},af={custom:nE.jY,mcpEdge:nE.oY,resourceEdge:nE.sZ},ax=({flowId:e,flowSnapshot:t,executedNodeIds:n,liveActivity:o,selectedNodeId:s,onSelectNode:i,onClose:l})=>{let{t:d}=(0,eW.s9)(),u=(0,C.A)(),[x,v]=(0,r.useState)(null),[y,b]=(0,r.useState)(!0),[w,j]=(0,r.useState)(null),[A,k,S]=(0,n$.ck)([]),[I,$,z]=(0,n$.fM)([]);(0,r.useEffect)(()=>{let n=!1;return(async()=>{b(!0),j(null);try{if(t&&Array.isArray(t.nodes)){n||v(t);return}if(!e)throw Error(d("chat.executed.noAgent"));am.debug(`Loading flow definition for ID: ${e}`);let a=await nz.g.getFlow(e);if(!a)throw Error(d("chat.executed.notFound",{id:e}));n||v(a)}catch(e){am.error("Error loading flow definition:",e),n||(j(e instanceof Error?e.message:d("chat.executed.loadFailed")),v(null))}finally{n||b(!1)}})(),()=>{n=!0}},[e,t,d]),(0,r.useEffect)(()=>{x&&(k(x.nodes.map(e=>({...e,draggable:!1,selectable:!0,connectable:!1}))),$(x.edges.map(e=>({...e,selectable:!1}))))},[x,k,$]);let T=(0,r.useMemo)(()=>new Set(n),[n]),[M,E]=(0,r.useState)(()=>Date.now());(0,r.useEffect)(()=>{if(!o)return;let e=()=>Object.values(o.byNode).some(e=>Date.now()-e.ts<4e3);if(!e())return;let t=setInterval(()=>{E(Date.now()),e()||clearInterval(t)},350);return()=>clearInterval(t)},[o]);let R=(0,r.useMemo)(()=>A.map(e=>{let t=T.has(e.id),n=e.id===s,a=o?.byNode[e.id],r=!!a&&M-a.ts<4e3;return{...e,selected:n,selectable:t,ariaLabel:t?d("chat.preview.selectNode",{node:String(e.data?.label??e.id)}):void 0,style:{...e.style,opacity:t||r?1:.4,cursor:t?"pointer":"default",border:n?`3px solid ${u.palette.secondary.main}`:r?`2px solid ${u.palette.primary.main}`:t?`2px solid ${u.palette.success.main}`:`1px solid ${u.palette.divider}`,boxShadow:n?`0 0 12px ${u.palette.secondary.light}`:r?`0 0 10px ${u.palette.primary.light}`:t?`0 0 8px ${u.palette.success.light}`:void 0}}}),[A,T,s,o,M,u,d]);return(0,a.jsxs)(c.default,{sx:{display:"flex",flexDirection:"column",height:"100%",borderLeft:1,borderColor:"divider",minWidth:0},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:1,px:1.5,py:1,borderBottom:1,borderColor:"divider",flexShrink:0},children:[(0,a.jsx)(B.A,{fontSize:"small",color:"action"}),(0,a.jsx)(p.A,{variant:"subtitle2",sx:{flex:1,minWidth:0},noWrap:!0,children:d("chat.executed.title")}),(0,a.jsx)(g.A,{title:d("chat.executed.hide"),children:(0,a.jsx)(f.A,{size:"small",onClick:l,"aria-label":d("chat.executed.hide"),children:(0,a.jsx)(ny.A,{fontSize:"small"})})})]}),(0,a.jsx)(c.default,{sx:{flex:1,minHeight:0,position:"relative"},children:y?(0,a.jsx)(c.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"},children:(0,a.jsx)(h.default,{})}):w?(0,a.jsx)(m.A,{severity:"info",sx:{m:2},children:w}):(0,a.jsx)(n$.Ln,{children:(0,a.jsx)(n$.Gc,{nodes:R,edges:I,onNodesChange:S,onEdgesChange:z,nodeTypes:ag,edgeTypes:af,fitView:!0,attributionPosition:"bottom-right",nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!0,onNodeClick:(e,t)=>{T.has(t.id)&&i?.(t.id)},panOnDrag:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!1})})})]})};function av({turns:e,selectedId:t,followLive:n,unseenCount:o,onSelect:s}){let i=(0,r.useRef)(null),l=(0,r.useMemo)(()=>{let n=e.findIndex(e=>e.id===t);return n>=0?n:e.length-1},[t,e]);if((0,r.useEffect)(()=>{let e=i.current?.querySelector('[aria-current="step"]');e?.scrollIntoView({block:"nearest",inline:"nearest",behavior:"smooth"})},[t,e.length]),0===e.length)return null;let d=t=>{let n=Math.max(0,Math.min(e.length-1,t)),a=e[n];a&&s(a,n===e.length-1)};return(0,a.jsxs)(c.default,{"data-testid":"model-turn-timeline",sx:{display:"flex",alignItems:"center",minWidth:0,flex:{xs:"1 1 100%",md:"1 1 360px"},gap:.75},children:[(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",sx:{display:{xs:"none",lg:"block"},whiteSpace:"nowrap"},children:"Model turns"}),(0,a.jsx)(c.default,{ref:i,role:"listbox","aria-label":"Model turn timeline",tabIndex:0,onWheel:e=>{(0!==e.deltaY||0!==e.deltaX)&&(e.preventDefault(),d(l+(e.deltaY+e.deltaX>0?1:-1)))},onKeyDown:t=>{"ArrowRight"===t.key?(t.preventDefault(),d(l+1)):"ArrowLeft"===t.key?(t.preventDefault(),d(l-1)):"End"===t.key?(t.preventDefault(),d(e.length-1)):"Home"===t.key&&(t.preventDefault(),d(0))},sx:{position:"relative",display:"flex",alignItems:"center",gap:"5px",minWidth:80,maxWidth:{xs:"100%",md:360},px:1,py:.5,overflowX:"auto",scrollbarWidth:"none",borderRadius:999,bgcolor:"action.hover","&::-webkit-scrollbar":{display:"none"},"&::before":{content:'""',position:"absolute",left:12,right:12,top:"50%",height:1,bgcolor:"divider"}},children:e.map((e,n)=>{var r;let o=e.id===t,s=`${n+1}. ${e.node.nodeName||e.node.nodeId} \xb7 ${e.modelName} \xb7 ${new Date(e.timestamp).toLocaleTimeString()}`;return(0,a.jsx)(g.A,{title:s,arrow:!0,children:(0,a.jsx)(c.default,{component:"button",type:"button",role:"option","aria-selected":o,"aria-current":o?"step":void 0,"aria-label":s,onClick:()=>d(n),sx:{position:"relative",zIndex:1,flex:"0 0 auto",width:o?10:7,height:o?22:14,p:0,border:0,borderRadius:999,cursor:"pointer",bgcolor:"error"===(r=e.outcome)?"error.main":"cancelled"===r?"warning.main":"running"===r?"info.main":"success.main",opacity:o?1:.62,boxShadow:o?e=>`0 0 0 3px ${e.palette.background.paper}`:"none",transition:"height 120ms ease, width 120ms ease, opacity 120ms ease","&:hover, &:focus-visible":{opacity:1,outline:"none"}}})},e.id)})}),(0,a.jsx)(y.A,{size:"small",color:n?"success":o>0?"primary":"default",variant:n?"filled":"outlined",label:n?"Live":o>0?`${o} new`:"History",onClick:o>0?()=>d(e.length-1):void 0,sx:{flexShrink:0,height:22}})]})}var ay=n(37464);function*ab(e){yield'"';for(let t=0;t<e.length;){let n=Math.min(t+4096,e.length),a=e.charCodeAt(n-1);n<e.length&&a>=55296&&a<=56319&&n--,yield JSON.stringify(e.slice(t,n)).slice(1,-1),t=n}yield'"'}function*aw(e,t){if("string"==typeof e)return void(yield*ab(e));if(null===e||"object"!=typeof e)return void(yield JSON.stringify(e)??"null");let n=Array.isArray(e);yield n?"[":"{";let a=!0,r=" ".repeat(Math.min((t+1)*2,256)),o=function*(e,n){yield(a?"\n":",\n")+r,a=!1,void 0!==n&&(yield*ab(n),yield": "),yield{value:e,depth:t+1}};if(n)for(let t=0;t<e.length;t++)yield*o(e[t]);else for(let t in e){if(!Object.prototype.hasOwnProperty.call(e,t))continue;let n=e[t];void 0!==n&&"function"!=typeof n&&"symbol"!=typeof n&&(yield*o(n,t))}a||(yield"\n"+" ".repeat(Math.min(2*t,256))),yield n?"]":"}"}function aj({value:e,testId:t}){let[n,o]=(0,r.useState)(0);(0,r.useEffect)(()=>{o(0)},[e]);let s=(0,r.useMemo)(()=>(function(e,t){if(!Number.isSafeInteger(t)||t<0)throw RangeError("Invalid inspector page");if(void 0===e)return{text:"",hasNext:!1};if(e instanceof ay.OM)return e.readPage(t);let n=65536*t,a=n+65536;if("string"==typeof e)return{text:e.slice(n,a),hasNext:e.length>a};let r=0,o=[],s=[aw(e,0)];for(;s.length;){let e=s[s.length-1].next();if(e.done){s.pop();continue}if("string"!=typeof e.value){s.push(aw(e.value.value,e.value.depth));continue}let t=e.value,i=r+t.length;if(i>n&&r<a&&o.push(t.slice(Math.max(0,n-r),a-r)),i>a)return{text:o.join(""),hasNext:!0};r=i}return{text:o.join(""),hasNext:!1}})(e,n),[e,n]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.default,{component:"pre","data-testid":t,sx:{m:0,p:1.5,maxHeight:"55vh",overflow:"auto",whiteSpace:"pre-wrap",overflowWrap:"anywhere",fontFamily:"var(--font-mono, ui-monospace, monospace)",fontSize:12,lineHeight:1.55,bgcolor:"action.hover"},children:s.text}),(n>0||s.hasNext)&&(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:1,px:1.5,py:.5},children:[(0,a.jsx)(u.A,{disabled:0===n,onClick:()=>o(e=>e-1),children:"Previous text page"}),(0,a.jsxs)(p.A,{variant:"caption",children:["Page ",n+1]}),(0,a.jsx)(u.A,{disabled:!s.hasNext,onClick:()=>o(e=>e+1),children:"Next text page"})]})]})}function aA({name:e,selected:t,onSelect:n}){return(0,a.jsx)(c.default,{component:"button",type:"button",onClick:n,"aria-label":`Inspect ${e}`,"aria-pressed":t,sx:{appearance:"none",border:0,borderRadius:.75,px:.35,py:.1,mx:.1,color:t?"primary.contrastText":"primary.light",bgcolor:t?"primary.main":"transparent",font:"inherit",cursor:"pointer","&:hover":{bgcolor:t?"primary.dark":"action.selected"},"&:focus-visible":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:2}},children:e})}function ak({snapshot:e}){let t=(0,r.useMemo)(()=>(function(e){let t,n=e.sdkRequest instanceof ay.OM?e.sdkRequest:void 0,a=n||null===(t=e.sdkRequest)||"object"!=typeof t||Array.isArray(t)?void 0:t,r=e=>n?n.child(e):a?.[e],o=a||n?.isObject,s=e.entry.operation.replace(/\(stream\)$/,"");if("codex-cli"===e.entry.adapter&&o)return{callee:"thread.runStreamed",parameters:[{name:"input",value:r("input")},{name:"options",value:r("options")}],argumentSource:"input, options"};if("claude-cli"===e.entry.adapter&&o)return{before:"const prompt = promptStream();",callee:"query",parameters:[{name:"prompt",value:r("prompt")},{name:"options",value:r("options")}],argumentSource:"{ prompt, options }"};if("openrouter-media"===e.entry.adapter)return{callee:"fetch",parameters:[{name:"request",value:e.sdkRequest}],argumentSource:'url, { method: "POST", body: JSON.stringify(request) }'};let i="gemini"===e.entry.adapter?"ai":"anthropic"===e.entry.adapter?"client":"openai";return{callee:`${i}.${s}`,parameters:[{name:"request",value:e.sdkRequest}],argumentSource:"request"}})(e),[e]),[n,o]=(0,r.useState)(t.parameters[0]?.name??"request");(0,r.useEffect)(()=>{o(t.parameters[0]?.name??"request")},[t]);let s=t.parameters.find(e=>e.name===n)??t.parameters[0];return(0,a.jsxs)(tv.A,{variant:"outlined",sx:{overflow:"hidden"},"data-testid":"request-code-canvas",children:[(0,a.jsxs)(c.default,{sx:{px:1.5,py:1,display:"flex",alignItems:"baseline",gap:1,flexWrap:"wrap"},children:[(0,a.jsx)(p.A,{variant:"subtitle2",children:"Adapter call"}),(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",children:"Click a parameter to inspect the value captured at dispatch."})]}),(0,a.jsx)(Y.A,{}),(0,a.jsxs)(c.default,{sx:{p:2,overflowX:"auto",bgcolor:"#111827",color:"#e5e7eb",fontFamily:"var(--font-mono, ui-monospace, monospace)",fontSize:13,lineHeight:1.8,whiteSpace:"pre"},children:[t.before&&(0,a.jsx)(c.default,{sx:{color:"#9ca3af"},children:t.before}),(0,a.jsx)(c.default,{component:"span",sx:{color:"#c084fc"},children:"const"})," response = ",(0,a.jsx)(c.default,{component:"span",sx:{color:"#c084fc"},children:"await"}),` ${t.callee}(`,"input, options"===t.argumentSource?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(aA,{name:"input",selected:"input"===n,onSelect:()=>o("input")}),", ",(0,a.jsx)(aA,{name:"options",selected:"options"===n,onSelect:()=>o("options")})]}):"{ prompt, options }"===t.argumentSource?(0,a.jsxs)(a.Fragment,{children:["{ ",(0,a.jsx)(aA,{name:"prompt",selected:"prompt"===n,onSelect:()=>o("prompt")}),", ",(0,a.jsx)(aA,{name:"options",selected:"options"===n,onSelect:()=>o("options")})," }"]}):t.argumentSource.includes("JSON.stringify")?(0,a.jsxs)(a.Fragment,{children:['url, { method: "POST", body: JSON.stringify(',(0,a.jsx)(aA,{name:"request",selected:"request"===n,onSelect:()=>o("request")}),") }"]}):(0,a.jsx)(aA,{name:"request",selected:"request"===n,onSelect:()=>o("request")}),");"]}),(0,a.jsx)(c.default,{sx:{px:1.5,py:.9,bgcolor:"action.hover",borderTop:1,borderColor:"divider"},children:(0,a.jsx)(p.A,{variant:"caption",sx:{fontFamily:"var(--font-mono, ui-monospace, monospace)",fontWeight:700},children:s?.name})}),(0,a.jsx)(aj,{value:s?.value,testId:"request-parameter-value"},`${e.entry.id}:${s?.name}`)]})}function aS({messages:e,provenance:t}){let[n,o]=(0,r.useState)(0);(0,r.useEffect)(()=>{o(0)},[e]);let s=(0,r.useMemo)(()=>e.slice(16*n,(n+1)*16),[e,n]),i=(0,r.useMemo)(()=>{let e=new Set(s.map(e=>e.id)),n=new Map;for(let a of t??[])a.id&&e.has(a.id)&&n.set(a.id,a);return n},[t,s]);return(0,a.jsxs)(c.default,{sx:{display:"grid",gap:1.25},children:[s.map((e,t)=>{let r="string"==typeof e.id?e.id:void 0,o="string"==typeof e.role?e.role:"unknown",s=r?i.get(r):void 0;return(0,a.jsxs)(tv.A,{variant:"outlined",sx:{overflow:"hidden"},children:[(0,a.jsxs)(c.default,{sx:{px:1.25,py:.75,display:"flex",gap:.75,alignItems:"center"},children:[(0,a.jsx)(y.A,{size:"small",label:o,variant:"outlined"}),s&&(0,a.jsx)(y.A,{size:"small",label:s.status,color:"sent"===s.status||"system"===s.status?"success":"emergency-stripped"===s.status?"error":"content-truncated"===s.status?"warning":"default",variant:"outlined"}),(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",sx:{ml:"auto"},children:16*n+t+1})]}),(0,a.jsx)(Y.A,{}),(0,a.jsx)(aj,{value:e})]},r??t)}),e.length>16&&(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,a.jsx)(u.A,{disabled:0===n,onClick:()=>o(e=>e-1),children:"Previous messages"}),(0,a.jsxs)(p.A,{variant:"caption",children:["Messages ",16*n+1,"–",Math.min((n+1)*16,e.length)," of ",e.length]}),(0,a.jsx)(u.A,{disabled:(n+1)*16>=e.length,onClick:()=>o(e=>e+1),children:"Next messages"})]})]})}function aI({snapshot:e,conversationId:t,tab:n,onTabChange:r}){let{entry:o}=e;return(0,a.jsxs)(c.default,{"data-testid":"model-turn-inspector",sx:{maxWidth:1100,mx:"auto",pb:4},children:[(0,a.jsxs)(tv.A,{"data-testid":"model-turn-inspector-header",variant:"outlined",sx:{position:"sticky",top:0,zIndex:3,mb:1.5,p:1.25,bgcolor:"background.paper",boxShadow:2},children:[(0,a.jsxs)(c.default,{sx:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:1},children:[(0,a.jsxs)(b.A,{exclusive:!0,size:"small",value:n,onChange:(e,t)=>t&&r(t),"aria-label":"Model turn detail",sx:{flexShrink:0},children:[(0,a.jsx)(w.A,{value:"canonical",children:"Canonical"}),(0,a.jsx)(w.A,{value:"wire",children:"Wired"}),(0,a.jsx)(w.A,{value:"request",children:"Request Detail"}),(0,ay.ZN)(e)&&(0,a.jsx)(w.A,{value:"archive",children:"Original JSON"})]}),(0,a.jsx)(Y.A,{orientation:"vertical",flexItem:!0,sx:{display:{xs:"none",sm:"block"}}}),(0,a.jsx)(p.A,{variant:"subtitle2",children:o.node.nodeName||o.node.nodeId}),(0,a.jsx)(y.A,{size:"small",label:o.modelName,variant:"outlined"}),(0,a.jsx)(y.A,{size:"small",label:`${o.adapter} \xb7 ${o.operation}`,variant:"outlined"}),(0,a.jsx)(y.A,{size:"small",label:o.outcome,color:"completed"===o.outcome?"success":"error"===o.outcome?"error":"default"}),(0,a.jsx)(p.A,{variant:"caption",color:"text.secondary",sx:{ml:{sm:"auto"}},children:new Date(o.timestamp).toLocaleString()})]}),(0,a.jsxs)(p.A,{variant:"caption",color:"text.secondary",sx:{display:"block",mt:.75},children:["Dispatch ",o.attempt," \xb7 ",o.canonicalMessageCount," canonical \xb7 ",o.wireMessageCount," wire \xb7 ",o.mediaCount," media"]})]}),e.contextCompaction?.events.map((e,t)=>(0,a.jsxs)(m.A,{severity:"emergency-refit"===e.kind?"warning":"info",variant:"outlined",sx:{mb:1},children:[(0,a.jsx)("b",{children:e.kind}),": ",e.reason,void 0!==e.before&&void 0!==e.after?` (${e.before.toLocaleString()} → ${e.after.toLocaleString()} ${e.unit??""})`:"",e.omittedMessages?` \xb7 ${e.omittedMessages} omitted`:"",e.truncatedMessages?` \xb7 ${e.truncatedMessages} truncated`:""]},`${e.kind}-${t}`)),e.visualCompaction&&(0,a.jsxs)(m.A,{severity:"image"===e.visualCompaction.route?"warning":"info",variant:"outlined",sx:{mb:1},children:["Visual context route: ",e.visualCompaction.route,e.visualCompaction.candidate?` \xb7 ${e.visualCompaction.candidate.messageCount} old messages evaluated`:"",e.visualCompaction.fallbackReason?` \xb7 ${e.visualCompaction.fallbackReason}`:""]}),"canonical"===n&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(m.A,{severity:"info",variant:"outlined",sx:{mb:1.25},children:"The canonical node-threaded conversation before provider wire shaping."}),(0,ay.ZN)(e)?(0,a.jsx)(aj,{value:e.canonical}):(0,a.jsx)(aS,{messages:e.canonicalMessages,provenance:e.provenance})]}),"wire"===n&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(m.A,{severity:"info",variant:"outlined",sx:{mb:1.25},children:"The final hydrated provider-neutral conversation supplied to the adapter."}),(0,ay.ZN)(e)?(0,a.jsx)(aj,{value:e.wire}):(0,a.jsx)(aS,{messages:e.genericWire})]}),"archive"===n&&(0,ay.ZN)(e)&&(0,a.jsx)(aj,{value:e.source}),(0,ay.ZN)(e)&&e.additionalMetadata&&(0,a.jsx)(m.A,{severity:"info",children:"Additional captured metadata is available in Original JSON."}),"request"===n&&(0,a.jsxs)(c.default,{sx:{display:"grid",gap:1.5},children:[e.media.length>0&&(0,a.jsxs)(c.default,{children:[(0,a.jsx)(p.A,{variant:"subtitle2",sx:{mb:.75},children:"SDK media parameters"}),(0,a.jsx)(c.default,{sx:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:1},children:e.media.map(e=>{var n;let r=eL.O.modelTurnMediaUrl(t,o.id,e.id);return(0,a.jsxs)(tv.A,{variant:"outlined",sx:{p:1,minWidth:0},children:["image"===e.kind?(0,a.jsx)(c.default,{component:"img",src:r,alt:e.parameterPath,sx:{width:"100%",maxHeight:220,objectFit:"contain",borderRadius:1,bgcolor:"action.hover"}}):"audio"===e.kind?(0,a.jsx)(c.default,{component:"audio",controls:!0,src:r,sx:{width:"100%"}}):"video"===e.kind?(0,a.jsx)(c.default,{component:"video",controls:!0,src:r,sx:{width:"100%",maxHeight:240,borderRadius:1}}):(0,a.jsx)(p.A,{component:"a",href:r,target:"_blank",rel:"noreferrer",variant:"body2",children:"Open archived file"}),(0,a.jsx)(p.A,{variant:"caption",sx:{display:"block",mt:.75,overflowWrap:"anywhere"},children:e.parameterPath}),(0,a.jsxs)(p.A,{variant:"caption",color:"text.secondary",children:[e.mimeType," \xb7 ",(n=e.byteLength)<1024?`${n} B`:n<1048576?`${(n/1024).toFixed(1)} KB`:`${(n/1048576).toFixed(1)} MB`]})]},e.id)})})]}),(0,a.jsx)(ak,{snapshot:e})]})]})}function aC({snapshot:e,conversationId:t}){let[n,o]=(0,r.useState)("canonical");return(0,a.jsx)(aI,{snapshot:e,conversationId:t,tab:n,onTabChange:o})}var a$=n(66159);let az={authentication:"chat.page.errorClass.authentication",authorization:"chat.page.errorClass.authorization",cancelled:"chat.page.errorClass.cancelled",configuration:"chat.page.errorClass.configuration",context_limit:"chat.page.errorClass.context_limit",network:"chat.page.errorClass.network",provider:"chat.page.errorClass.provider",rate_limit:"chat.page.errorClass.rate_limit",timeout:"chat.page.errorClass.timeout",validation:"chat.page.errorClass.validation",unknown:"chat.page.errorClass.unknown"};function aT({error:e,fallbackMessage:t,compact:n}){let{t:o}=(0,eW.s9)(),[s,i]=(0,r.useState)(!1),[l,d]=(0,r.useState)(!1),u=e?.message||t||o("chat.page.endedError"),h=!!(e&&(e.code||e.httpStatus||e.errorClass||e.retryAfter)),m=async()=>{try{let t=JSON.stringify(e??{message:u},null,2);await navigator.clipboard.writeText(t),d(!0)}catch{}};return(0,a.jsxs)(c.default,{sx:{minWidth:0},children:[(0,a.jsx)(p.A,{variant:"body2",component:"span",sx:{wordBreak:"break-word"},children:u}),h&&(0,a.jsxs)(ty.A,{direction:"row",spacing:.5,sx:{flexWrap:"wrap",mt:.5},children:[e?.code&&(0,a.jsx)(y.A,{size:"small",variant:"outlined",label:o("chat.page.errorCode",{code:e.code})}),e?.httpStatus!==void 0&&(0,a.jsx)(y.A,{size:"small",variant:"outlined",label:o("chat.page.errorStatus",{status:e.httpStatus})}),e?.errorClass&&(0,a.jsx)(y.A,{size:"small",variant:"outlined",label:o(az[e.errorClass])}),e?.retryAfter&&(0,a.jsx)(y.A,{size:"small",variant:"outlined",label:o("chat.page.errorRetryAfter",{seconds:e.retryAfter})})]}),!n&&e&&(e.details||h)&&(0,a.jsxs)(c.default,{sx:{mt:.5},children:[(0,a.jsxs)(ty.A,{direction:"row",spacing:1.5,sx:{alignItems:"center"},children:[(0,a.jsxs)(a$.A,{component:"button",type:"button",variant:"caption",underline:"hover",onClick:()=>i(e=>!e),sx:{color:"inherit"},children:[o("chat.page.errorDetails")," ",s?"▾":"▸"]}),(0,a.jsx)(a$.A,{component:"button",type:"button",variant:"caption",underline:"hover",onClick:m,sx:{color:"inherit"},children:o("chat.page.errorCopy")})]}),s&&e.details&&(0,a.jsx)(c.default,{component:"pre",sx:{mt:.5,p:1,maxHeight:240,overflow:"auto",fontSize:"0.7rem",bgcolor:"action.hover",borderRadius:1,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:JSON.stringify(e.details,null,2)})]}),(0,a.jsx)(tl.A,{open:l,autoHideDuration:2e3,onClose:()=>d(!1),message:o("chat.page.errorCopied")})]})}function aM(e){return e?.nodes?.find(e=>(e?.type??e?.data?.type)==="start")}var aE=n(19260),aR=n(26449);class aN extends Map{set(e,t){return this.clear(),super.set(e,t)}}var aW=n(80967),aP=n(45355),aO=n(22766),aD=n(51893),aF=n(60317),a_=n(81220),aq=n(13286),aB=n(47160);function aH(e){return(0,nc.BV)(`flujo-ui:mcp-canvas:dismissed:${e}`)}function aL(e){let t=(0,eR.Aq)(aH(e),[]);return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}function aU(e,t,n){if(0===t.length)return;let a=new Set(aL(e));for(let e of t)n?a.add(e):a.delete(e);(0,eR.vi)(aH(e),[...a])}function aK(e){return(0,nc.BV)(`flujo-ui:mcp-canvas:auto-open-suppressed:${e}`)}function aJ(e){return!0===(0,eR.Aq)(aK(e),!1)}let aV=(0,nT.h)("frontend/components/Chat/index");function aX(e){let t=(0,r.useRef)(e);return t.current=e,(0,r.useCallback)((...e)=>t.current(...e),[])}let aG=(e,t)=>e.length===t.length&&e.every((e,n)=>{let a=t[n];return e.id===a.id&&e.title===a.title&&e.flowId===a.flowId&&e.personaId===a.personaId&&e.activityId===a.activityId&&e.behaviorRevisionId===a.behaviorRevisionId&&e.personaArchived===a.personaArchived&&e.status===a.status&&e.recovery?.classification===a.recovery?.classification&&e.recovery?.updatedAt===a.recovery?.updatedAt&&e.plannedExecutionId===a.plannedExecutionId&&e.source===a.source&&e.parentConversationId===a.parentConversationId&&e.rootConversationId===a.rootConversationId&&e.sessionKey===a.sessionKey&&e.sessionIdentity===a.sessionIdentity&&e.createdAt===a.createdAt&&e.updatedAt===a.updatedAt&&e.lastUserMessageAt===a.lastUserMessageAt}),aY=/cancelled by user|execution cancelled/i,aQ=e=>e?.code==="cancelled"||e?.error?.code==="cancelled"||[e?.message,"string"==typeof e?.body?.error?e.body.error:void 0].some(e=>"string"==typeof e&&aY.test(e));function aZ(e){let t=e.body&&"object"==typeof e.body?e.body:void 0;return"string"==typeof t?.error?t.error:e.message}let a0=()=>{var e;let t,n,o=(0,r.useRef)(null),V=(0,l.useRouter)(),X=(0,C.A)(),{t:G,tp:Y}=(0,eW.s9)(),{settings:Q}=(0,aW.useStorage)(),Z=Q?.experimental?.requireMcpAppLaunchClick!==!0,ee=(0,d.A)(X.breakpoints.down("lg"),{noSsr:!0}),et=(0,d.A)(X.breakpoints.down("sm"),{noSsr:!0}),[en,ea]=(0,r.useState)([]),[er,eo]=(0,r.useState)(!0),[es,ei]=(0,r.useState)(!1),[el,ed]=(0,r.useState)(null),[ec,eu]=(0,r.useState)({total:0,hasMore:!1}),eh=(0,r.useRef)(ec),ep=(0,r.useRef)(0),em=(0,r.useCallback)(e=>{eh.current=e,eu(e)},[]),[eg,ef]=(0,r.useState)(null),[ex,ev]=(0,r.useState)(!1),[ey,eb]=(0,r.useState)(!1),[ew,ej]=(0,r.useState)(null),[eA,ek]=(0,J.Mj)(J.Zg.CURRENT_CONVERSATION_ID,null),eS=(0,r.useRef)(eA),[eI,e$]=(0,r.useState)([]),[ez,eT]=(0,r.useState)(()=>new Set),eM=(0,r.useMemo)(()=>eI.filter(e=>ez.has((0,tA.BC)(e.identity.serverName,e.identity.skillUri,e.manifest.digest))).map(e=>({serverName:e.identity.serverName,skillUri:e.identity.skillUri,manifestDigest:e.manifest.digest})),[eI,ez]);(0,r.useEffect)(()=>{(0,aB.HQ)(eA),eT(new Set);let e=()=>e$(eA?(0,aB.k0)(eA):[]);return e(),(0,aB.Wx)(e)},[eA]);let eE=(0,r.useRef)(!1),[eN,eP]=(0,r.useState)({});(0,r.useEffect)(()=>{eP({})},[eA]);let eO=(0,r.useRef)(new Map),[eF,e_]=(0,r.useState)(()=>new Set),[eq,eB]=(0,r.useState)(0),eH=(0,r.useMemo)(()=>eA?new Set(aL(eA)):new Set,[eA,eq]),eU=(0,r.useCallback)((e,t,n)=>{let a;a=new Set(aL(e)),n?a.add(t):a.delete(t),(0,eR.vi)(aH(e),[...a]),eB(e=>e+1)},[]),eK=(0,r.useCallback)(e=>{let t=eS.current;t&&eU(t,e,!1)},[eU]),[eJ,eV]=(0,r.useState)(0),eX=(0,r.useMemo)(()=>!!eA&&aJ(eA),[eA,eJ]),eG=(0,r.useCallback)((e,t)=>{(0,eR.vi)(aK(e),t),eV(e=>e+1)},[]),eY=(0,r.useRef)(new Map),eQ=(0,r.useRef)(0),eZ=(0,r.useCallback)(e=>{let t=eQ.current+1;eQ.current=t;let n=eS.current;if(n===e)return void ek(e);let a=n?`${n}\0`:null,r=a?[...eY.current.entries()].filter(([e])=>e.startsWith(a)).map(([,e])=>e):[];if(0===r.length){eS.current=e,ek(e);return}Promise.allSettled(r.map(e=>e())).then(()=>{eQ.current===t&&(eS.current=e,ek(e))})},[ek]),[e0,e1]=(0,J.Mj)(J.Zg.LAST_PICKED_FLOW_ID,null),[e2,e5]=(0,r.useState)(!1),[e4,e6]=(0,r.useState)(new Set),e3=(0,r.useCallback)((e,t)=>{e&&e6(n=>{if(t===n.has(e))return n;let a=new Set(n);return t?a.add(e):a.delete(e),a})},[]),[e7,e9]=(0,r.useState)({}),e8=(0,r.useRef)(!1),te={"question-answer":"chat.page.inputResponseFailed","question-decline":"chat.page.inputDeclineFailed","elicitation-submit":"chat.page.inputSubmitFailed","elicitation-cancel":"chat.page.inputCancelFailed"},[tt,tn]=(0,r.useState)(0),[ts,ti]=(0,r.useState)(null),tl=Object.values(te).find(e=>e===ts),[td,tc]=(0,r.useState)(null),[tu,th]=(0,r.useState)(null),[tp,tm]=(0,r.useState)(null),[tg,tf]=(0,r.useState)([]),[tv,ty]=(0,r.useState)(!1),[tb,tw]=(0,r.useState)(!1),[tj,tk]=(0,r.useState)(""),[tM,tE]=(0,r.useState)(!1),[tR,tW]=(0,r.useState)(null),[tO,tD]=(0,r.useState)(null),[tF,t_]=(0,r.useState)(null),[tq,tB]=(0,r.useState)(null),[tH,tL]=(0,r.useState)(null),[tU,tK]=(0,r.useState)(null),[tJ,tV]=(0,r.useState)(!1),[tX,tG]=(0,r.useState)(null),[tY,tQ]=(0,r.useState)(-1),[tZ,t1]=(0,r.useState)(0),[t2,t4]=(0,r.useState)("chat"),[t6,t3]=(0,r.useState)(null),[t7,t9]=(0,r.useState)(null),[t8,ne]=(0,r.useState)(!1),[nt,nn]=(0,r.useState)(null),[nr,no]=(0,r.useState)(0),ns=(0,r.useRef)(null),ni=(0,r.useRef)(0),[nl,nd]=(0,r.useState)([]),[nh,nf]=(0,r.useState)(null),[nx,nv]=(0,r.useState)(null),[ny,nb]=(0,r.useState)(!1),[nw,nj]=(0,r.useState)(null),[nA,nk]=(0,r.useState)(0),[nS,nI]=(0,r.useState)("wire"),[nC,n$]=(0,r.useState)(!0),[nT,nM]=(0,r.useState)(0),nE=(0,r.useRef)(!0),nN=(0,r.useRef)(new aN),nW=(0,r.useRef)(new Set),nP=(0,r.useRef)([]),[nO,nD]=(0,r.useState)(!1),[nF,n_]=(0,r.useState)(!1),[nq,nB]=(0,r.useState)(!1),[nH,nL]=(0,r.useState)(()=>{let e=Number(window.localStorage.getItem("flujo-debugger-width"));return Number.isFinite(e)&&e>0?e:0}),[nU,nK]=(0,r.useState)(()=>"1"===window.localStorage.getItem("flujo-debugger-expanded"));(0,r.useEffect)(()=>{window.localStorage.setItem("flujo-debugger-expanded",nU?"1":"0")},[nU]),(0,r.useEffect)(()=>{ns.current?.abort(),ni.current+=1,t4("chat"),tQ(-1),t1(0),t3(null),t9(null),ne(!1),nn(null),nd([]),nf(null),nv(null),nb(!1),nj(null),nk(0),n$(!0),nE.current=!0,nM(0),nN.current.clear(),nW.current.clear(),nP.current=[]},[eA]),(0,r.useEffect)(()=>{tX||(t4("chat"),tQ(-1),t1(0))},[tX]),(0,r.useEffect)(()=>{if(!eA)return;let e=new AbortController;return eL.O.getModelTurns(eA,{signal:e.signal}).then(({turns:t})=>{if(e.signal.aborted)return;let n=new Map(t.map(e=>[e.id,e]));for(let e of nP.current)n.set(e.id,e);let a=[...n.values()].sort((e,t)=>e.timestamp-t.timestamp);if(nP.current=a,nW.current=new Set(a.map(e=>e.id)),nd(a),nE.current){let e=a[a.length-1];nf(e?.id??null),nM(0)}}).catch(t=>{e.signal.aborted||aV.warn("Could not load model-turn timeline",t)}),()=>e.abort()},[eA]);let[nJ,nV]=(0,r.useState)(()=>"1"===window.localStorage.getItem("flujo-workflow-panel-visible"));(0,r.useEffect)(()=>{window.localStorage.setItem("flujo-workflow-panel-visible",nJ?"1":"0")},[nJ]);let[nX,nG]=(0,r.useState)(()=>{let e=Number(window.localStorage.getItem("flujo-workflow-panel-width"));return Number.isFinite(e)&&e>0?e:320}),nY=(0,r.useCallback)(e=>{e.preventDefault();let t=e.clientX,n=0;nG(e=>(n=e,e));let a=document.body.style.userSelect,r=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";let o=e=>{nG(Math.min(Math.max(n+(t-e.clientX),240),Math.round(.7*window.innerWidth)))},s=()=>{window.removeEventListener("pointermove",o),window.removeEventListener("pointerup",s),document.body.style.userSelect=a,document.body.style.cursor=r,nG(e=>(e>0&&window.localStorage.setItem("flujo-workflow-panel-width",String(Math.round(e))),e))};window.addEventListener("pointermove",o),window.addEventListener("pointerup",s)},[]),nQ=(0,r.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 a=e=>{nL(Math.min(Math.max(window.innerWidth-e.clientX,360),Math.round(.85*window.innerWidth)))},r=()=>{window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",r),document.body.style.userSelect=t,document.body.style.cursor=n,nL(e=>(e>0&&window.localStorage.setItem("flujo-debugger-width",String(Math.round(e))),e))};window.addEventListener("pointermove",a),window.addEventListener("pointerup",r)},[]),[nZ,n0]=(0,r.useState)(()=>{let e=Number(window.localStorage.getItem("flujo-chat-sidebar-width"));return Number.isFinite(e)&&e>0?e:300}),[n1,n2]=(0,r.useState)(()=>"1"===window.localStorage.getItem("flujo-chat-sidebar-collapsed")),[n5,n4]=(0,r.useState)(!1),n6=ee?!n5:n1,n3=(0,r.useCallback)(()=>{ee?n4(e=>!e):n2(e=>{let t=!e;return window.localStorage.setItem("flujo-chat-sidebar-collapsed",t?"1":"0"),t})},[ee]),n7=aX(e=>{eZ(e),ee&&n4(!1)}),n9=(0,r.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 a=e=>{n0(Math.min(Math.max(e.clientX,220),560))},r=()=>{window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",r),document.body.style.userSelect=t,document.body.style.cursor=n,n0(e=>(e>0&&window.localStorage.setItem("flujo-chat-sidebar-width",String(Math.round(e))),e))};window.addEventListener("pointermove",a),window.addEventListener("pointerup",r)},[]),[n8,ae]=(0,r.useState)(null),[at,an]=(0,r.useState)(null),[aa,ao]=(0,r.useState)(null),[as,ai]=(0,r.useState)(nR),[al,ad]=(0,r.useState)([]),[ac,ah]=(0,r.useState)(tN),[am,ag]=(0,r.useState)([]),[af,ab]=(0,r.useState)(new Set),[aw,aj]=(0,r.useState)([]),[aA,ak]=(0,r.useState)(null),aS=(0,r.useRef)(null),a$=(0,r.useRef)(null),az=(0,r.useRef)(null),a0=(0,r.useRef)([]),a1=(0,r.useRef)(null),a2=(0,r.useRef)(()=>void 0),a5=(0,r.useRef)(0),a4=(0,r.useRef)(null),a6=(0,r.useRef)(null),a3=(0,r.useRef)(null),a7=(0,r.useRef)(null),a9=(0,r.useRef)(-1),a8=(0,r.useRef)({conversationId:null,seq:-1}),re=(0,r.useRef)(0),rt=(0,r.useRef)(new Map);(0,r.useEffect)(()=>{eS.current=eA},[eA]);let rn=(0,r.useRef)(new Set),ra=(0,r.useRef)(null),rr=(0,r.useRef)(!1),ro=(0,r.useRef)(new Set),rs=(0,r.useRef)(new Set),[ri,rl]=(0,r.useState)(new Set),rd=(0,r.useCallback)((e,t)=>{e&&(t?rs.current.add(e):rs.current.delete(e),rl(new Set(rs.current)))},[]),rc=function(e={}){let{conversationId:t,messages:n,autoHideEnabled:a,idleMs:o}=e,s=(0,C.A)(),i=(0,d.A)(s.breakpoints.down("sm")),l=function({enabled:e,idleMs:t=2500}){let[n,a]=(0,r.useState)(!1),o=(0,r.useRef)(null),s=(0,r.useCallback)(()=>{o.current&&(clearTimeout(o.current),o.current=null)},[]),i=(0,r.useCallback)(()=>{s(),o.current=setTimeout(()=>{o.current=null,a(!0)},t)},[s,t]),l=(0,r.useCallback)(()=>{(a(!1),e)?i():s()},[i,s,e]);return(0,r.useEffect)(()=>(e?(a(!1),i()):(s(),a(!1)),s),[e,t,i,s]),{visible:!e||!n,poke:l}}({enabled:a??i,...void 0===o?{}:{idleMs:o}}),c=(0,z.Q)({bottomThreshold:80,anchorSelector:"[data-ask-flujo-message-id]",deps:[t,n]}),u=c.ref,h=(0,r.useRef)(!0),p=(0,r.useCallback)((e="auto")=>{let t=u.current;t&&(t.scrollTo({top:t.scrollHeight,behavior:(0,T.ik)(e)}),c.measure())},[u,c]),m=(0,r.useCallback)(()=>{let e=u.current;e&&(h.current=e.scrollHeight-e.scrollTop-e.clientHeight<80),c.onScroll(),l.poke()},[u,c,l]),g=(0,r.useCallback)(()=>{l.poke()},[l]),f=(0,r.useCallback)(()=>{h.current=!1;let e=u.current;e&&e.scrollTo({top:0,behavior:(0,T.ik)("smooth")}),c.measure()},[u,c]),x=(0,r.useCallback)(()=>{h.current=!1,c.scrollToPreviousAnchor()},[c]),v=(0,r.useCallback)(()=>{h.current=!0,p("smooth")},[p]),y=(0,r.useCallback)(e=>{l.poke(),"top"===e?f():"up"===e?x():"bottom"===e&&v()},[l,f,x,v]);(0,r.useEffect)(()=>{h.current=!0,p("auto")},[t]),(0,r.useEffect)(()=>{h.current&&p("auto")},[n]);let b=(0,r.useMemo)(()=>({top:c.atTop,up:c.atTop,bottom:c.atBottom}),[c.atTop,c.atBottom]);return{containerProps:{ref:u,onScroll:m,onPointerDown:g},scrollRef:u,show:c.scrollable&&l.visible,actions:M,disabled:b,onAction:y,jumpToLatest:v,isPinnedToBottom:()=>h.current}}({conversationId:eA,messages:eg?.messages}),ru=(0,r.useRef)(null);(0,r.useEffect)(()=>{ru.current=aA},[aA]),(0,r.useEffect)(()=>{var e;e=window.location.origin,aS.current=new aR.Ay({baseURL:new URL(e).origin+"/v1",apiKey:"FLUJO",defaultHeaders:{Authorization:null},dangerouslyAllowBrowser:!0,maxRetries:0,timeout:18e6,...{}})},[]),(0,r.useEffect)(()=>{(async()=>{aV.debug("Loading flows");try{let e=await nz.g.loadFlows();tf(e)}catch(e){aV.error("Error loading flows:",e)}})()},[]);let rh=(0,r.useCallback)((e,t)=>{let n=t?.silent??!1,a=async()=>{aV.debug("Fetching conversation list from backend",{silent:n}),n||(eo(!0),ed(null));let t=[],a=!1;try{let e=n?Math.max(50,ep.current):50,a=await eL.O.listConversationPage({limit:Math.min(200,e),pinnedIds:(0,eR.F0)(eD,[])}),r=a.pinnedItems??[],o=[...a.items];for(;o.length<e&&a.nextCursor;)a=await eL.O.listConversationPage({limit:Math.min(200,e-o.length),cursor:a.nextCursor}),o.push(...a.items);for(let e of(t=[...new Map([...r,...o].map(e=>[e.id,e])).values()].filter(e=>!ro.current.has(e.id)).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt)),ep.current=o.length,em({total:a.total,hasMore:a.hasMore,nextCursor:a.nextCursor}),t))rn.current.delete(e.id);ea(e=>{let n=e.filter(e=>rn.current.has(e.id)),a=e.find(e=>e.id===eS.current&&!rn.current.has(e.id)&&!t.some(t=>t.id===e.id)),r=[...n,...t,...a?[a]:[]].sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt));return aG(e,r)?e:r}),aV.info(`Fetched ${t.length} conversations for the list`)}catch(e){a=!0,aV.error("Error fetching conversation list:",e),n||(ed(G("chat.page.historyLoadFailed")),ea([]),ep.current=0,em({total:0,hasMore:!1}))}finally{if(n||eo(!1),n||a)return;let r=void 0!==e?e:eS.current,o=eS.current;if(r&&(t.some(e=>e.id===r)||rn.current.has(r)||void 0===e))r!==o&&(aV.debug(`Setting currentConversationId to ${r} after fetch/operation.`),eZ(r));else if(t.length>0){let e=t[0].id;e!==o&&(aV.debug(`Selecting most recent conversation ${e} after fetch/operation.`),eZ(e))}else null===o||rn.current.has(o)||(aV.debug("No conversations available after fetch/operation, clearing selection."),eZ(null))}};if(!n)return a();if(ra.current)return rr.current=!0,ra.current;let r=(async()=>{do rr.current=!1,await a();while(rr.current)})().finally(()=>{ra.current===r&&(ra.current=null)});return ra.current=r,r},[eZ,G,em]),rp=(0,r.useCallback)(async()=>{let e=eh.current.nextCursor;if(e&&!es){ei(!0);try{let t=await eL.O.listConversationPage({limit:50,cursor:e}),n=t.items.filter(e=>!ro.current.has(e.id));ea(e=>{let t=new Map(e.map(e=>[e.id,e]));for(let e of n)t.set(e.id,e);let a=[...t.values()].sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt));return aG(e,a)?e:a}),ep.current+=n.filter(e=>!rn.current.has(e.id)).length,em({total:t.total,hasMore:t.hasMore,nextCursor:t.nextCursor})}catch(e){aV.error("Could not load the next conversation page",e),ed(G("chat.page.historyLoadFailed"))}finally{ei(!1)}}},[es,G,em]),rm=(0,r.useCallback)(async()=>{let e=(await eL.O.listAllConversationPages()).filter(e=>!ro.current.has(e.id)).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt));ep.current=e.length,em({total:e.length,hasMore:!1});let t=[...en.filter(e=>rn.current.has(e.id)),...e].sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt));return ea(e=>aG(e,t)?e:t),t},[en,em]);(0,r.useEffect)(()=>{rh()},[]),(0,r.useEffect)(()=>{let e=null,t=null,n=null,a=!1,r=0,o=()=>{e&&clearTimeout(e),t&&clearTimeout(t),e=null,t=null},s=()=>{e&&clearTimeout(e),a||"visible"!==document.visibilityState||(e=setTimeout(()=>{e=null,r=Date.now(),rh(void 0,{silent:!0}).finally(s)},3e4))},i=()=>{a||"visible"!==document.visibilityState||t||(t=setTimeout(()=>{t=null,r=Date.now(),rh(void 0,{silent:!0}).finally(s)},Math.max(200,5e3-(Date.now()-r))))},l=()=>{n||a||"visible"!==document.visibilityState||(n=eL.O.subscribeToSidebarEvents({onEvent:i,onReset:()=>{a||(o(),d(),r=Date.now(),rh(void 0,{silent:!0}).finally(()=>{a||"visible"!==document.visibilityState||n||(t=setTimeout(()=>{t=null,l(),s()},3e3))}))}}))},d=()=>{n?.close(),n=null},c=()=>{if("visible"!==document.visibilityState){o(),d();return}l(),r=Date.now(),rh(void 0,{silent:!0}).finally(s)};return r=Date.now(),l(),s(),document.addEventListener("visibilitychange",c),()=>{a=!0,o(),d(),document.removeEventListener("visibilitychange",c)}},[rh]);let rg=(0,r.useCallback)((e,t,n)=>{var a,r;if(!t||n!==re.current||rs.current.has(e))return;let o=a8.current,s=o.conversationId===e?o.seq:-1;a=eS.current,r=t.nextSeq,a===e&&Number.isSafeInteger(r)&&r>=0&&r>s&&(a8.current={conversationId:e,seq:t.nextSeq-1},t_(t.questions.at(-1)??null),tD(t.elicitations.at(-1)??null))},[]),rf=(0,r.useCallback)(async e=>{if(eS.current!==e)return;let t=re.current;try{let n=await eL.O.getConversation(e,{messageLimit:1});rg(e,n.pendingInputs,t)}catch(t){aV.warn("Failed to refresh pending conversation input",{conversationId:e,error:t})}},[rg]),rx=aX(async e=>{if(rn.current.has(e))return void aV.debug("Skipping detail fetch for client-only conversation",{conversationId:e});if(eS.current!==e){aV.debug("Detail fetch requested for non-viewed conversation; refreshing list instead",{conversationId:e}),rh(void 0,{silent:!0});return}aV.debug("Fetching detailed conversation",{conversationId:e});let t=re.current;ev(!0),ej(null);try{let n=await eL.O.getConversation(e,{messageLimit:200});if(eS.current!==e)return void aV.debug("Discarding stale detailed conversation response",{fetchedId:e,currentId:eS.current});void 0===n.mcpAppContexts||rt.current.has(e)||rt.current.set(e,{...n.mcpAppContexts}),ef(n),rg(e,n.pendingInputs,t),"awaiting_tool_approval"===n.status&&n.pendingToolCalls?.length&&ru.current!==e&&tW(n.pendingToolCalls),"error"===n.status&&n.lastError?tc(n.lastError):"error"!==n.status&&tc(null),ea(t=>t.map(t=>t.id===e?{...t,title:n.title,flowId:n.flowId,personaId:n.personaId,activityId:n.activityId,behaviorRevisionId:n.behaviorRevisionId,updatedAt:n.updatedAt,status:n.status??t.status}:t).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt))),aV.info("Fetched detailed conversation successfully",{conversationId:e})}catch(t){if(aV.error("Error fetching detailed conversation:",{conversationId:e,err:t}),eS.current!==e)return;t instanceof eL.b&&404===t.status?(ej(G("chat.page.conversationNotFound",{id:e})),eZ(null),rh()):ej(G("chat.page.detailsLoadFailed",{id:e})),ef(null)}finally{eS.current===e&&ev(!1)}}),rv=(0,r.useCallback)(async()=>{let e=eS.current;if(e&&!ey){eb(!0);try{let t=await eL.O.getConversation(e);if(eS.current!==e)return;ef(n=>{if(!n||n.id!==e)return n;let a=new Map(n.messages.map(e=>[e.id,e])),r=t.messages.map(e=>a.get(e.id)??e),o=new Set(t.messages.map(e=>e.id));for(let e of n.messages)o.has(e.id)||r.push(e);return{...t,messages:r,transcriptWindow:{truncated:!1,loadedCount:r.length,totalCount:r.length,source:"durable-log"}}})}catch(t){aV.error("Failed to load full transcript",{conversationId:e,error:t}),eS.current===e&&ti(G("chat.page.detailsLoadFailed",{id:e}))}finally{eb(!1)}}},[ey,G]);(0,r.useEffect)(()=>{tW(null),t_(null),tD(null),re.current++,a8.current={conversationId:eA,seq:-1},tL(null),eA?rx(eA):(ef(null),ev(!1),ej(null))},[eA,rx]),(0,r.useEffect)(()=>{let e=eg?.id;if(!e||e!==eA)return void e_(e=>0===e.size?e:new Set);let t=(0,aq.fT)(eO.current,e,eg.messages);0!==t.length&&e_(new Set((0,aq.pv)(eg.messages,t)))},[eA,eg?.id,eg?.messages]),(0,r.useEffect)(()=>{if(0===eF.size)return;let e=window.setTimeout(()=>e_(new Set),1500);return()=>window.clearTimeout(e)},[eF]);let ry=eg?.parentConversationId?en.find(e=>e.id===eg.parentConversationId):void 0;(0,r.useEffect)(()=>{let e=eg?.id;if(!(e&&eg?.status==="error")||!e)return void th(null);let t=!1,n=new AbortController;return eL.O.getSubflowRecoveryOptions(e,n.signal).then(e=>{t||th(e.hasRecoverableFamily?e:null)}).catch(n=>{aV.warn("Could not load subflow recovery options",{conversationId:e,err:n}),t||th(null)}),()=>{t=!0,n.abort()}},[eg?.id,eg?.parentConversationId,eg?.status,ry?.status,ry?.updatedAt,ry?.recovery?.updatedAt]),(0,r.useEffect)(()=>{eg&&ty(eg.requireApproval??!1)},[eg?.id]);let rb=(0,r.useCallback)(async e=>{if(ty(e),eA)try{await eL.O.updateConversationApproval(eA,e)}catch(e){aV.warn("Failed to persist requireApproval setting",{conversationId:eA,err:e})}},[eA]),rw=en.find(e=>e.id===eA)||null,rj=(0,r.useMemo)(()=>{let e={};for(let t of tg)t.id&&(e[t.id]=t.name);return e},[tg]),[rA,rk]=(0,r.useState)({}),rS=(0,r.useMemo)(()=>eg?.personaId?null:tg.find(e=>e.id===eg?.flowId)||null,[tg,eg?.flowId,eg?.personaId]),rI=(0,r.useCallback)(e=>{if("chat-message"===e.target.kind&&e.target.id&&"highlight"===e.type){let t=[...document.querySelectorAll("[data-ask-flujo-message-id]")].find(t=>t.getAttribute("data-ask-flujo-message-id")===e.target.id)??null,n=(0,aO.g_)(t);return{success:n,message:n?"Highlighted the conversation message.":"That message is not currently visible."}}if("chat-field"===e.target.kind&&"title"===e.target.field){if("highlight"===e.type){let e=(0,aO.g_)(document.querySelector("[data-ask-flujo-chat-title]"));return{success:e,message:e?"Highlighted the conversation title.":"The title is not currently visible."}}return"string"==typeof e.value&&e.value.trim()?(tk(e.value),tw(!0),{success:!0,message:"Updated the title field. Confirm it with the normal save control."}):{success:!1,message:"The conversation title must be non-empty text."}}return{success:!1,message:"That conversation UI target is not supported."}},[]);(0,aP.qz)({scopeId:eg?`chat:${eg.id}`:"chat:none",pageType:"chat",route:"/chat",title:eg?.title??G("nav.talk"),identifiers:{conversationId:eg?.id??eA,flowId:eg?.flowId??null,personaId:eg?.personaId??null},data:{conversation:eg,selectedFlow:rS,requireApproval:tv,executeInDebugger:tM},capabilities:{highlightTargets:[...(eg?.messages??[]).map(e=>({kind:"chat-message",id:e.id,role:e.role,processNodeId:e.processNodeId})),{kind:"chat-field",field:"title"}],editableTargets:[{kind:"chat-field",field:"title"}],notes:["The conversation id and selected Flow or Persona are supplied explicitly."]}},rI,100);let rC=(0,r.useMemo)(()=>rS?.nodes?.map(e=>({id:e.id,label:e.data.label||e.id}))||[],[rS]),r$=(0,r.useMemo)(()=>{var e;let t;return e={messages:eg?.messages,nodeExecutionTracker:tX?.trackingInfo?.nodeExecutionTracker,executionTrace:tX?.executionTrace,sseVisitedIds:af},t=new Set,e.messages?.forEach(e=>{e?.processNodeId&&t.add(e.processNodeId)}),e.nodeExecutionTracker?.forEach(e=>{e?.nodeId&&t.add(e.nodeId)}),e.executionTrace?.forEach(e=>{e?.nodeId&&t.add(e.nodeId)}),e.sseVisitedIds?.forEach(e=>{e&&t.add(e)}),Array.from(t)},[eg?.messages,tX,af]);(0,r.useEffect)(()=>{ab(new Set),ad([])},[eg?.id]);let rz=(0,r.useMemo)(()=>{let e=e=>!!e&&rC.some(t=>t.id===e);if(e(tH))return tH;if(e(eg?.currentNodeId))return eg.currentNodeId;let t=eg?.messages??[];for(let n=t.length-1;n>=0;n--){let a=t[n];if("assistant"===a.role&&e(a.processNodeId))return a.processNodeId}return rC[0]?.id??null},[tH,eg,rC]),rT=e=>{ea(t=>[e,...t].sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt))),eZ(e.id),ef({id:e.id,title:e.title,flowId:e.flowId,...e.personaId?{personaId:e.personaId}:{},...e.personaBehaviorSlotKey?{personaBehaviorSlotKey:e.personaBehaviorSlotKey}:{},...e.activityId?{activityId:e.activityId}:{},...e.behaviorRevisionId?{behaviorRevisionId:e.behaviorRevisionId}:{},createdAt:e.createdAt,updatedAt:e.updatedAt,messages:[]}),ev(!1),ej(null)},rM=async e=>{aV.debug("Attempting to create new conversation"),ti(null),tc(null);let t="string"!=typeof e||eC(e)?void 0:tg.find(t=>t.id===e),n=e0&&!eC(e0)?tg.find(e=>e.id===e0):void 0,a=(t??n??tg.find(e=>e.favorite)??tg[0])?.id||null;if(!a){aV.debug("No Flow target available; showing the Flow/Persona chooser."),eZ(null),ef(null);return}let r=(0,aE.A)(),o=Date.now(),s={id:r,title:G("chat.page.newTitle"),flowId:a,createdAt:o,updatedAt:o};try{aV.info("Sending request to create conversation on backend",{payload:JSON.stringify(s)});let e=await eL.O.createConversation(s);aV.info("Successfully created conversation on backend",{conversationId:e.id}),rT(e),ev(!1),ej(null),(0,nu.IU)({type:"conversation-created",conversationId:e.id})}catch(t){aV.error("Error creating conversation on backend:",t);let e=G("chat.page.createFailed");t instanceof eL.b?e+=` (${aZ(t)})`:t instanceof Error&&(e+=` (${t.message})`),ti(e)}},rE=async(e,t)=>{if(eE.current)return;eE.current=!0,ti(null),tc(null);let n=Date.now(),a={id:(0,aE.A)(),title:G("chat.page.newTitle"),flowId:null,personaTargetId:e,personaBehaviorSlotKey:t,createdAt:n,updatedAt:n};try{let e=await eL.O.createConversation(a);rT(e)}catch(t){aV.error("Error creating Persona conversation on backend:",t);let e=t instanceof eL.b?aZ(t):t instanceof Error?t.message:"";ti(`${G("chat.page.createFailed")}${e?` (${e})`:""}`)}finally{eE.current=!1}};(0,aD.R)({param:"flow",ready:tg.length>0,exists:e=>tg.some(t=>t.id===e)&&!eC(e),onResolve:e=>rM(e),consume:!0,replacePath:"/chat"});let rR=aX(()=>{rM()});(0,aD.R)({param:a_.AW,ready:tg.length>0,exists:e=>(0,a_.k2)(e),onResolve:e=>{(0,a_.pP)(e)&&rR()},consume:!0,replacePath:"/chat"}),(0,r.useEffect)(()=>(0,a_.lP)(e=>{(0,a_.pP)(e)&&rR()}),[rR]);let[rN,rW]=(0,r.useState)(null),rP=(0,r.useRef)(0),rO=(0,r.useCallback)(e=>{rP.current+=1,rW({id:e,requestKey:rP.current})},[]),rD=(0,r.useRef)(null),rF=(0,r.useRef)(!1),r_=(0,r.useCallback)(e=>{if(rD.current=e,en.some(t=>t.id===e)){eZ(e),rO(e);return}!eh.current.hasMore||rF.current?aV.warn("Conversation deep link target does not exist, ignoring",{id:e}):(rF.current=!0,rm().then(t=>{if(rD.current===e){if(!t.some(t=>t.id===e))return void aV.warn("Conversation deep link target does not exist, ignoring",{id:e});eZ(e),rO(e)}}).catch(t=>{aV.warn("Could not materialize conversation deep link target",{id:e,error:t})}).finally(()=>{rF.current=!1}))},[en,rm,rO,eZ]);(0,aD.R)({param:"conversation",ready:!er,exists:e=>en.some(t=>t.id===e)||eh.current.hasMore,onResolve:e=>r_(e)});let[rq,rB]=(0,r.useState)(null);(0,aD.R)({param:"message",ready:!ex&&!!eg&&eg.id===eA,exists:e=>!!eg?.messages?.some(t=>t.id===e),onResolve:e=>rB(e),consume:!0,replacePath:eA?(0,aF.F)({kind:"conversation",id:eA}):"/chat"}),(0,r.useEffect)(()=>{if(er||rF.current)return;let e=new URLSearchParams(window.location.search);if(e.get("flow")||e.get("message")||e.get(a_.AW))return;let t=eS.current,n=e.get("conversation");if(t){n!==t&&V.replace((0,aF.F)({kind:"conversation",id:t}));return}n&&V.replace("/chat")},[eA,en,er,V]),(0,r.useEffect)(()=>{if(!rq)return;let e=window.setTimeout(()=>rB(null),4e3);return()=>window.clearTimeout(e)},[rq]),(0,r.useEffect)(()=>{rB(null)},[eA]);let[rH,rL]=(0,r.useState)(!1),rU=async e=>{ti(null),tc(null);let t=(0,aE.A)(),{flow:n}=await eL.O.synthesizeQuickChat({conversationId:t,modelId:e.modelId,servers:e.servers,systemPrompt:e.systemPrompt}),a=Date.now(),r=await eL.O.createConversation({id:t,title:G("chat.page.quickChat"),flowId:n.id,flowSnapshot:n,createdAt:a,updatedAt:a});ea(e=>[r,...e].sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt))),eZ(r.id),ef({id:r.id,title:r.title,flowId:r.flowId,createdAt:r.createdAt,updatedAt:r.updatedAt,messages:[]}),ev(!1),ej(null),rL(!1)},rK=(0,r.useCallback)(e=>{aV.debug("Updating detailed conversation state locally",{conversationId:e.id});let t={...e,updatedAt:Date.now()};ef(t),ea(e=>e.map(e=>e.id===t.id?{...e,title:t.title,updatedAt:t.updatedAt}:e).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt)))},[]),rJ=(0,r.useCallback)(()=>{null!==a3.current&&(clearTimeout(a3.current),a3.current=null);let e=a6.current;a6.current=null,e&&(null!=e.laneIndex&&ah(t=>tP(t,e)),ae(t=>({totalTokens:t?.totalTokens??0,activeNode:function(e,t){if(!t)return e;let n=t.split(/\r?\n/).map(e=>e.replace(/\s+/g," ").trim()).filter(Boolean).at(-1);if(!n)return e;let a=n.length>160?`${n.slice(0,159)}…`:n;return`${e} — ${a}`}(e.name,e.message),startedAt:t?.startedAt??Date.now(),lastEventAt:Date.now()})))},[]),rV=(0,r.useCallback)(e=>{a6.current=e,null===a3.current&&(a3.current=setTimeout(rJ,100))},[rJ]),rX=(0,r.useCallback)(()=>{a5.current++,null!==a4.current&&clearTimeout(a4.current),a4.current=null,a2.current(),null!==a3.current&&(clearTimeout(a3.current),a3.current=null),a6.current=null,az.current&&(aV.debug("Closing execution event stream"),az.current.close(),az.current=null)},[]),rG=(0,r.useCallback)((e,t)=>{ea(n=>{let a=n.findIndex(t=>t.id===e);if(-1===a||n[a].status===t)return n;let r=[...n];return r[a]={...r[a],status:t},r})},[]),rY=(0,r.useCallback)(()=>{null!==a1.current&&(clearTimeout(a1.current),a1.current=null);let e=a0.current;0!==e.length&&(a0.current=[],ef(t=>t?function(e,t){if(0===t.length)return e;let n=e.messages,a=!1,r=new Map(n.map((e,t)=>[e.id,t]));for(let o of t.length>1?[...t].sort((e,t)=>e.seq-t.seq):t){if(o.conversationId!==e.id)continue;let t=r.get(o.messageId)??-1,s=t>=0?n[t]:{id:o.messageId,role:"assistant",content:"",timestamp:o.timestamp,processNodeId:o.node?.nodeId};if("assistant"!==s.role)continue;let i=[...s.tool_calls??[]],l=o.toolCallDelta;if(l){let e=i[l.index];i[l.index]={id:l.id??e?.id??`pending_${o.messageId}_${l.index}`,type:"function",function:{name:`${e?.function.name??""}${l.nameDelta??""}`,arguments:`${e?.function.arguments??""}${l.argumentsDelta??""}`}}}let d=o.mediaPart?[...s.media??[],...(s.media??[]).some(e=>e.type===o.mediaPart?.type&&e.url===o.mediaPart?.url&&e.resourceUri===o.mediaPart?.resourceUri)?[]:[o.mediaPart]]:s.media,c={...s,content:`${"string"==typeof s.content?s.content:""}${o.delta??""}`,...d?{media:d}:{},...i.length>0?{tool_calls:i}:{}};a||(n=[...n],a=!0),t>=0?n[t]=c:(r.set(o.messageId,n.length),n.push(c))}return a?{...e,messages:n}:e}(t,e):t),ae(e=>({totalTokens:e?.totalTokens??0,activeNode:e?.activeNode??null,startedAt:e?.startedAt??Date.now(),lastEventAt:Date.now()})))},[]);a2.current=rY;let rQ=(0,r.useCallback)(e=>{a0.current.push(e),null===a1.current&&(a1.current=setTimeout(rY,125))},[rY]),rZ=(0,r.useCallback)(e=>{if("number"==typeof e.seq){if(e.seq<=a9.current)return;a9.current=e.seq}let t="run:awaiting_question"===e.type||"run:question_resolved"===e.type||"run:awaiting_elicitation"===e.type||"run:elicitation_resolved"===e.type||"run:elicitation_cancelled"===e.type||"run:done"===e.type,n=a8.current,a=e.conversationId===eS.current&&(n.conversationId!==e.conversationId||e.seq>n.seq);if(t&&a&&(a8.current={conversationId:e.conversationId,seq:e.seq}),"model:delta"===e.type){ao(t=>t?.conversationId===e.conversationId?null:t),rQ(e);return}if("tool:progress"===e.type){rV(e),an(t=>t&&(!e.conversationId||t.conversationId===e.conversationId)?null:t);return}rJ(),rY(),("run:start"===e.type||"run:done"===e.type||"run:paused"===e.type||"breakpoint:hit"===e.type||"subflow:start"===e.type||"subflow:done"===e.type||"node:enter"===e.type||"node:exit"===e.type||"handoff"===e.type||"resource:read"===e.type||"resource:write"===e.type||"error"===e.type)&&ad(t=>{if("run:start"===e.type)return[e];let n=[...t,e];return n.length>2e3?n.slice(n.length-2e3):n}),"recovery:retry"!==e.type&&an(t=>t&&(!e.conversationId||t.conversationId===e.conversationId)?null:t);let r=e=>ae(t=>({totalTokens:e.totalTokens??t?.totalTokens??0,activeNode:void 0!==e.activeNode?e.activeNode:t?.activeNode??null,startedAt:t?.startedAt??Date.now(),lastEventAt:Date.now()})),o=e=>ai(t=>{let n,a=Date.now(),r={byNode:{...t.byNode},byResource:{...t.byResource},byResourceName:{...t.byResourceName},resourceVersion:t.resourceVersion};return e(r),{byNode:(n=e=>{let t={};for(let[n,r]of Object.entries(e))a-r.ts<4e3&&(t[n]=r);return t})(r.byNode),byResource:n(r.byResource),byResourceName:n(r.byResourceName),resourceVersion:r.resourceVersion}});if(null!=e.laneIndex)switch(ah(t=>tP(t,e)),e.type){case"node:enter":if(e.node?.nodeId){let t=e.node.nodeId;o(e=>{e.byNode[t]={kind:"active",ts:Date.now()}}),ab(e=>e.has(t)?e:new Set(e).add(t))}r({});return;case"tool:call":case"subflow:start":case"handoff":r({});return}switch(e.type){case"run:start":ao(null),ae({totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),ai(nR),ah(tN),ag([]),e.conversationId&&(rG(e.conversationId,"running"),rd(e.conversationId,!1));break;case"model:status":{if(e.depth||void 0!==e.laneIndex)break;let t="requires_action"===e.state?G("chat.sdk.requiresAction"):"compacting"===e.state?G("chat.sdk.compacting"):"api_retry"===e.kind?G("chat.sdk.retry",{attempt:e.attempt??1}):"rate_limit_event"===e.kind&&"rejected"===e.state?G("chat.sdk.rateLimit"):null;ao(t?{conversationId:e.conversationId,text:t}:null),r({});break}case"model:dispatch":if(r({activeNode:e.turn.node.nodeName||e.turn.node.nodeId}),!nW.current.has(e.turn.id)){nW.current.add(e.turn.id);let t=[...nP.current,e.turn].sort((e,t)=>e.timestamp-t.timestamp);nP.current=t,nd(t),nE.current?(nf(e.turn.id),t3(null),nv(null),nj(null),nM(0)):nM(e=>e+1)}break;case"model:dispatch-result":for(let t of(r({}),nP.current=nP.current.map(t=>t.id===e.dispatchId?{...t,outcome:e.outcome}:t),nd(nP.current),nv(t=>t?.entry.id===e.dispatchId?{...t,entry:{...t.entry,outcome:e.outcome}}:t),nN.current.keys()))t.endsWith(`:${e.dispatchId}`)&&nN.current.delete(t);break;case"model:end":r({}),e.discard&&e.messageId&&ef(t=>{if(!t||t.id!==e.conversationId)return t;let n=t.messages.filter(t=>t.id!==e.messageId);return n.length===t.messages.length?t:{...t,messages:n}});break;case"message":{let t=e.message;r({}),ef(n=>{let a;if(!n||n.id!==e.conversationId)return n;let r=n.messages.findIndex(e=>e.id===t.id);return r>=0?(a=[...n.messages])[r]={...a[r],...t}:a=[...n.messages,t],{...n,messages:a}});break}case"node:changed-files":{r({});let t=e.node?.nodeId;if(!t||0===e.changedFiles.length)break;ef(n=>{if(!n||n.id!==e.conversationId)return n;let a=n.messages.findLastIndex(e=>e.processNodeId===t);if(a<0)return n;let r=[...n.messages];return r[a]={...r[a],changedFiles:e.changedFiles.map(({path:e,status:t})=>({path:e,status:t}))},{...n,messages:r}});break}case"usage":ae(t=>({totalTokens:(t?.totalTokens??0)+Math.max(0,(e.totalTokens||0)-(e.cacheReadTokens||0)),activeNode:t?.activeNode??null,startedAt:t?.startedAt??Date.now(),lastEventAt:Date.now()}));break;case"node:enter":if(r({activeNode:e.node?.nodeName||e.node?.nodeId||null}),e.node?.nodeId){let t=e.node.nodeId;o(e=>{e.byNode[t]={kind:"active",ts:Date.now()}}),ab(e=>e.has(t)?e:new Set(e).add(t))}break;case"resource:read":case"resource:write":{let t="resource:read"===e.type?"read":"write";if("resource:write"===e.type&&"tool-result"===e.source&&e.toolCallId&&e.uri.startsWith("flujo://run/")&&e.conversationId===eS.current){let t=e.toolCallId,n={uri:e.uri,..."number"==typeof e.size?{size:e.size}:{},...e.mimeType?{mimeType:e.mimeType}:{}};eP(e=>{let a=e[t];return a?.uri===n.uri&&a.size===n.size&&a.mimeType===n.mimeType?e:{...e,[t]:n}})}if("resource:write"===e.type&&"snapshot"===e.source&&e.snapshot&&e.node?.nodeId&&e.conversationId===eS.current){let t=e.node.nodeId,n=e.snapshot.root;os(e.conversationId),or(a=>(0,tC.aE)(a,{serverName:"filesystem",uri:"ui://devcanvas/diff",instanceKey:`snapshot::${t}::${n}`,toolName:"snapshot_diff",resultContent:JSON.stringify({snapshotDiff:{nodeId:t,nodeName:e.node?.nodeName,root:n,startSnapshot:e.snapshot?.startSnapshot,endSnapshot:e.snapshot?.endSnapshot,changedFiles:e.snapshot?.changedFiles,resourceUri:e.uri}}),updateId:e.seq},Date.now(),Number.MAX_SAFE_INTEGER).state)}o(n=>{var a,r;let o=Date.now();e.node?.nodeId&&(n.byNode[e.node.nodeId]={kind:"read"===t?"resource-read":"resource-write",ts:o}),e.server&&e.uri&&(n.byResource[a=e.server,r=e.uri,`${a} ${r}`]={kind:t,ts:o}),e.name&&(n.byResourceName[e.name]={kind:t,ts:o}),"write"===t&&(n.resourceVersion=n.resourceVersion+1)}),r({});break}case"todo:update":ag(e.todos??[]),r({});break;case"tool:call":r({activeNode:e.name});break;case"subflow:start":r({activeNode:`↳ ${e.subflowName||e.subflowId}`});break;case"handoff":r({activeNode:`→ ${e.toNodeId}`});break;case"run:awaiting_approval":e.conversationId&&e.conversationId===eS.current&&tW(e.pendingToolCalls||[]),e.conversationId&&rG(e.conversationId,e.pendingToolCalls?.length?"awaiting_tool_approval":"running");break;case"run:awaiting_elicitation":a&&tD({elicitationId:e.elicitationId,message:e.message,requestedSchema:e.requestedSchema});break;case"run:elicitation_cancelled":case"run:elicitation_resolved":a&&(tD(t=>s(t,e.elicitationId)),rf(e.conversationId));break;case"run:awaiting_question":a&&t_({questionId:e.questionId,questions:e.questions});break;case"run:question_resolved":a&&(t_(t=>i(t,e.questionId)),rf(e.conversationId));break;case"breakpoint:hit":case"run:paused":e5(!1),e.conversationId&&(e3(e.conversationId,!1),rG(e.conversationId,"paused_debug")),tV(!0);break;case"run:done":if(e.conversationId&&(e3(e.conversationId,!1),rG(e.conversationId,e.status)),"error"===e.status&&e.error&&e.conversationId===eS.current&&tc(e.error),a&&(tD(null),t_(null)),e.conversationId&&ru.current&&e.conversationId!==ru.current)break;ae(null),ai(nR),ah(tN),e5(!1),ak(null),rX(),e.conversationId&&e.conversationId===eS.current?rx(e.conversationId):rh(void 0,{silent:!0});break;case"recovery:retry":e.conversationId&&(an({conversationId:e.conversationId,attempt:e.attempt,maxAttempts:e.maxAttempts,retryAt:e.retryAt}),rG(e.conversationId,"running")),r({});break;case"error":ti(e.message||G("chat.page.executionError")),tc(e.error??{message:e.message||G("chat.page.executionError")});break;default:r({})}},[rX,rQ,rV,rx,rh,rY,rJ,e3,rG,rd,rf,G]),r0=(0,r.useCallback)((e,t,n)=>{rX();let a=a5.current;return a9.current=void 0!==t?t-1:-1,ah(tN),new Promise(r=>{let o=!1,s=()=>{o||(o=!0,r())};try{az.current=eL.O.subscribeToEvents(e,{onEvent:e=>{a5.current===a&&rZ(e)},onOpen:()=>{s(),a5.current===a&&eS.current===e&&(re.current++,a8.current={conversationId:e,seq:-1},rf(e))},onReset:t=>{if(s(),a5.current!==a)return;rX(),re.current++,a8.current={conversationId:e,seq:-1};let n=a5.current;rx(e).then(()=>{a5.current===n&&eS.current===e&&(a4.current=setTimeout(()=>{a4.current=null,a5.current===n&&eS.current===e&&r0(e,t.nextSeq,{activityOnly:!0})},3e3))}).catch(t=>aV.warn("Failed to recover execution snapshot",{conversationId:e,err:t}))}},t,n),setTimeout(s,1500)}catch(t){aV.error("Failed to open execution event stream",{conversationId:e,err:t}),s()}})},[rZ,rX,rx,rf]);(0,r.useEffect)(()=>{if(eA&&rw?.status==="running"&&ru.current!==eA){if(rs.current.has(eA))return void aV.debug("Skipping re-attach to a conversation the user just stopped",{conversationId:eA});aV.info("Re-attaching to in-progress run",{conversationId:eA}),ru.current=eA,e5(!0),ak(eA),e3(eA,!0),ae(e=>e??{totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),r0(eA,0,{activityOnly:!0})}},[eA,rw?.status,r0]);let r1=async e=>{aV.debug("Attempting to delete conversation",{conversationId:e}),ti(null),tc(null),ro.current.add(e);let t=rn.current.delete(e);ru.current===e&&(rX(),e5(!1),ak(null),ae(null),ah(tN),an(null)),e3(e,!1),e9(t=>tz(t,e));let n=en.filter(t=>t.id!==e);ea(n);let a=eA;eA===e&&(n.length>0?(a=n[0].id,aV.debug("Deleted current conversation, selecting next most recent",{nextSelectionId:a})):(a=null,aV.debug("Deleted last conversation, clearing selection")),eZ(a));try{await eL.O.deleteConversation(e),aV.info("Successfully deleted conversation on backend",{conversationId:e}),t||(ep.current=Math.max(0,ep.current-1),em({...eh.current,total:Math.max(0,eh.current.total-1)}))}catch(a){aV.error("Error deleting conversation:",{conversationId:e,err:a});let n=a instanceof eL.b?aZ(a):a instanceof Error?a.message:"";ti(G("chat.page.deleteFailed",{id:e})+(n?` (${n})`:"")),ro.current.delete(e),t&&rn.current.add(e),ea(en),eZ(eA)}},r2=async e=>{if(!e.length)return;ti(null),tc(null);let t=new Set(e),n=new Set(e.filter(e=>rn.current.has(e))),a=en.filter(e=>t.has(e.id)&&!n.has(e.id)).length;e.forEach(e=>ro.current.add(e)),e.forEach(e=>rn.current.delete(e));let r=eS.current;r&&t.has(r)&&ru.current===r&&(rX(),e5(!1),ak(null),ae(null),ah(tN),an(null)),e.forEach(e=>{e3(e,!1),e9(t=>tz(t,e))}),ea(e=>e.filter(e=>!t.has(e.id))),r&&t.has(r)&&eZ(null);try{let t=await eL.O.deleteConversations(e);aV.info("Bulk delete succeeded",{requested:e.length,...t}),ep.current=Math.max(0,ep.current-a);let r=e.length-n.size;em({...eh.current,total:Math.max(0,eh.current.total-Math.min(t.deleted,r))})}catch(t){aV.error("Bulk delete failed",{err:t}),ti(G("chat.page.bulkDeleteFailed")),e.forEach(e=>ro.current.delete(e)),n.forEach(e=>rn.current.add(e)),ea(en),eZ(eA)}},r5=async e=>{if(aV.debug("Flow selected, attempting to update",{flowId:e,currentConversationId:eA}),ti(null),tc(null),!eA){aV.warn("Cannot update flow: No conversation selected."),ti(G("chat.page.selectFirst"));return}eg&&eg.id===eA&&ef({...eg,flowId:e,updatedAt:Date.now()}),ea(t=>t.map(t=>t.id===eA?{...t,flowId:e,updatedAt:Date.now()}:t).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt)));try{let t=await eL.O.updateConversationFlow(eA,e);aV.info("Successfully updated flowId on backend",{conversationId:eA,flowId:e}),ef(e=>e&&e.id===eA?(aV.debug("Confirming detailedConversation update from server response",{conversationId:eA,flowId:t.flowId}),{...e,flowId:t.flowId,updatedAt:t.updatedAt}):(aV.debug("Skipping detailedConversation update, ID mismatch or null state",{currentDetailedId:e?.id,targetId:eA}),e)),ea(e=>e.map(e=>e.id===eA?t:e).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt)))}catch(n){aV.error("Error updating flowId on backend:",{conversationId:eA,flowId:e,err:n});let t=G("chat.page.updateAgentFailed");n instanceof eL.b?t+=` (${aZ(n)})`:n instanceof Error&&(t+=` (${n.message})`),ti(t),ef(eg),ea(en)}},r4=()=>{tk(eg?.title??rw?.title??""),tw(!0)},r6=async()=>{if(tw(!1),!eA)return;let e=eg?.title??rw?.title??"",t=tj.trim().slice(0,200);if(t&&t!==e){ef(e=>e&&e.id===eA?{...e,title:t}:e),ea(e=>e.map(e=>e.id===eA?{...e,title:t}:e));try{let e=await eL.O.updateConversationTitle(eA,t);ef(t=>t&&t.id===eA?{...t,title:e.title}:t),ea(t=>t.map(t=>t.id===eA?{...t,title:e.title}:t))}catch(t){aV.warn("Failed to rename conversation",{conversationId:eA,err:t}),ef(t=>t&&t.id===eA?{...t,title:e}:t),ea(t=>t.map(t=>t.id===eA?{...t,title:e}:t)),ti(G("chat.page.renameFailed"))}}},r3=async(e,t=[],n)=>{let a;if(!e.trim()&&0===t.length)return;if(!eg){aV.error("Cannot send message, detailed conversation not loaded."),ti(G("chat.page.detailsMissing")),eS.current&&(0,nu.IU)({type:"chat-run-status",conversationId:eS.current,status:"error"});return}if(!n?.fromQueue&&e4.has(eg.id)){let n=eg.id;if(0!==t.length||tH){let a={id:(0,aE.A)(),content:e,attachments:t,nodeOverride:tH??null,mcpSkillSelections:eM,timestamp:Date.now()};e9(e=>{var t,r,o;return t=e,r=n,o=a,{...t,[r]:[...t[r]??[],o]}}),tL(null),aV.debug("Run in progress — queued message (not steerable)",{conversationId:n,queuedId:a.id,reason:t.length>0?"attachments":"node-override"});return}{let t=(0,aE.A)(),{delivered:a}=await eL.O.injectMessage(n,e,t);if(a){let a={id:t,role:"user",content:e,timestamp:Date.now()};rK({...eg,messages:[...eg.messages,a]}),aV.debug("Run in progress — injected steering message into the live run",{conversationId:n,messageId:t});return}aV.debug("Steering rejected (run no longer live) — sending as a normal turn",{conversationId:n})}}aV.debug("Sending message",{conversationId:eg.id,contentLength:e.length,attachmentsCount:t.length});let r=eg.messages,o=!r.some(e=>"user"===e.role),s=eg.flowId,i=n?.fromQueue?n.nodeOverride??null:tH;if(eg.personaId)n?.fromQueue||tL(null);else if(i)a=i,n?.fromQueue||tL(null),aV.debug(`Assigning manually picked node ID to user message: ${a}`);else if(o){let e=aM(tg.find(e=>e.id===s));e?(a=e.id,aV.debug(`Assigning start node ID to first user message: ${a}`)):aV.warn(`Could not find start node for flow ${s}. User message will not have a processNodeId.`)}else if(rw?.status==="error"){let e=aM(tg.find(e=>e.id===s));e?(a=e.id,aV.debug(`Post-error message: re-driving turn from start node ID: ${a}`)):aV.warn(`Could not find start node for post-error message in flow ${s}. User message will not have a processNodeId.`)}else{for(let e=r.length-1;e>=0;e--){let t=r[e];if("assistant"===t.role&&t.processNodeId){a=t.processNodeId,aV.debug(`Assigning last assistant node ID to user message: ${a}`);break}}if(!a){let e=aM(tg.find(e=>e.id===s));e?(a=e.id,aV.debug(`No prior assistant node ID found, falling back to start node ID: ${a}`)):aV.warn(`Could not find start node for fallback in flow ${s}. User message will not have a processNodeId.`)}}let l={id:(0,aE.A)(),role:"user",content:e,timestamp:Date.now(),attachments:t.length>0?t:void 0,processNodeId:a},d={...eg,messages:[...eg.messages,l]};if(rK(d),d.personaId||d.flowId){let e=n?.fromQueue?n.mcpSkillSelections:eM;await r8(d,{appendMessage:l,mcpSkillSelections:e})}else ti(G("chat.page.chooseAgent")),(0,nu.IU)({type:"chat-run-status",conversationId:d.id,status:"error"}),ef(eg)},r7=(0,r.useCallback)((e,t)=>{aV.verbose("Handling API response data",JSON.stringify(e)),e3(t,"running"===e.status);let n=ru.current===t,a=eS.current===t;if("paused_debug"===e.status&&e.debugState){let r=e.debugState;return(aV.info("API Response: Paused for debugging",{conversationId:t}),a)?(tG(r),tV(!0),nD(!0),e5(!1),ak(null),rX(),r9(),ef(e=>e?.id===t&&r.messages&&JSON.stringify(e.messages)!==JSON.stringify(r.messages)?(aV.debug("Updating detailed conversation messages from debug state"),{...e,messages:r.messages,updatedAt:r.updatedAt}):e),ea(e=>e.map(e=>e.id===t?{...e,title:r.title??e.title,flowId:r.flowId??e.flowId,status:"paused_debug",updatedAt:r.updatedAt}:e).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt)))):(rG(t,"paused_debug"),n&&(e5(!1),ak(null),rX(),r9())),!0}if(("completed"===e.status||"error"===e.status)&&a?(aV.info(`API Response: Execution completed or errored (Status: ${e.status}). Hiding debugger panel.`,{conversationId:t}),n_(!1),nB(!1),tE(!1),tV(!1),tG(null),nD(!1),aj([]),(0,nu.IU)({type:"chat-run-status",conversationId:t,status:e.status})):aV.debug(`API Response: Status is '${e.status}'. Debugger panel visibility unchanged (currently ${tJ?"visible":"hidden"}).`,{conversationId:t}),e.messages&&e.conversation_id===t){let n=e.messages.map((e,n)=>"number"!=typeof e.timestamp||isNaN(e.timestamp)?(aV.warn(`Invalid timestamp found in message index ${n} from API response. Defaulting to Date.now().`,{conversationId:t,messageId:e.id,invalidTimestamp:e.timestamp}),{...e,timestamp:Date.now()}):e);ef(a=>{let r=a;return a?.id===t&&JSON.stringify(a.messages)!==JSON.stringify(n)&&(aV.info("API Response/Polling: Updating detailed conversation messages",{conversationId:t,newMessageCount:n.length}),r={...a,messages:n,updatedAt:e.updatedAt||a.updatedAt}),aV.debug("Polling: setDetailedConversation callback executed.",{conversationId:t,messagesChanged:r!==a,newMessageCount:r?.messages?.length??"N/A"}),r})}if("awaiting_tool_approval"===e.status)aV.info("API Response/Polling: Pausing for tool approval",{conversationId:t}),a&&tW(e.pendingToolCalls||[]),n&&(e5(!1),ak(null),rX(),r9());else if("completed"===e.status||"error"===e.status){if(aV.info("API Response/Polling: Stopping due to final status",{conversationId:t,status:e.status}),n&&(r9(),e5(!1),ak(null),rX()),"error"===e.status){let r="object"==typeof e.lastResponse&&null!==e.lastResponse&&"string"==typeof e.lastResponse.error?e.lastResponse.error:void 0,o=e.error?.message||r||G("chat.page.unknownExecutionError");aY.test(o)||rs.current.has(t)?(rd(t,!0),(n||a)&&ti(null),tc(null),aV.info("API Response/Polling: Execution cancelled by user",{conversationId:t})):(ti(o),aV.error("API Response/Polling: Execution resulted in error",{conversationId:t,error:e.error||e.lastResponse}))}rx(t)}else"running"!==e.status||tJ?a&&tW(null):(a&&tW(null),n&&!a$.current&&e5(!0));return e.conversation_id===t&&ea(n=>n.map(n=>n.id===t?{...n,title:e.title??n.title,flowId:e.flowId??n.flowId,status:e.status??n.status,updatedAt:e.updatedAt||n.updatedAt}:n).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt))),!1},[ef,tW,e5,ti,tV,tG,ea,rx,rX,e3,rG,rd,G]),r9=()=>{a$.current&&(aV.debug("Stopping polling interval"),clearInterval(a$.current),a$.current=null)};(0,r.useEffect)(()=>()=>{rX()},[rX]);let r8=async(e,t)=>{if(!e?.id||!e.personaId&&!e.flowId||!aS.current)return aV.error("Cannot send to completions: Missing conversation ID or target.",{id:e?.id,flowId:e?.flowId,personaId:e?.personaId}),ti(G("chat.page.agentMissing")),!1;if(!t?.appendMessage&&e.transcriptWindow?.truncated)try{e=await eL.O.getConversation(e.id)}catch(t){return aV.error("Could not hydrate history required for transcript mutation",{conversationId:e.id,error:t}),ti(G("chat.page.detailsLoadFailed",{id:e.id})),!1}let n=!!(t?.appendMessage&&!rn.current.has(e.id));tW(null),ti(null),tc(null),e5(!0),ak(e.id),e3(e.id,!0),rG(e.id,"running"),rd(e.id,!1);let a=rn.current.delete(e.id);ae({totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),await r0(e.id);let r=!1;try{let a,o,s,i,l;if(e.personaId)a="flow-Persona",aV.debug("Sending Persona-targeted chat to completions",{personaId:e.personaId,conversationId:e.id});else if(eC(e.flowId))a="flow-Quick Chat",aV.debug("Sending quick chat to completions",{flowId:e.flowId,conversationId:e.id});else{if(!e.flowId)throw Error("Conversation Flow is missing.");let t=await nz.g.getFlow(e.flowId);if(!t)throw Error(`Flow with ID ${e.flowId} not found`);a=`flow-${t.name}`,aV.debug("Sending to chat completions",{flowId:e.flowId,flowName:t.name,conversationId:e.id})}let d=(n&&t?.appendMessage?[t.appendMessage]:e.messages).filter(e=>!e.disabled&&!((e.depth??0)>0)).map(e=>{let t=function(e){if(Array.isArray(e.content))return e.content;let t="string"==typeof e.content?e.content:"",n=e.attachments??[],a=n.filter(e=>"document"===e.type&&!e.content.startsWith("data:")),r=n.filter(e=>"image"===e.type),o=n.filter(e=>"image"!==e.type&&!a.includes(e));if(a.length>0&&(t+="\n\n"+a.map(e=>`[DOCUMENT]: ${e.content}`).join("\n\n")),0===r.length&&0===o.length)return t;let s=[];for(let e of(t.trim()&&s.push({type:"text",text:t}),r))s.push({type:"image_url",image_url:{url:e.content}});for(let e of o)if("audio"===e.type){let t=/^data:([^;,]+);base64,([\s\S]*)$/.exec(e.content),n=e.mimeType??t?.[1];t&&("audio/wav"===n||"audio/mpeg"===n)?s.push({type:"input_audio",input_audio:{data:t[2],format:"audio/mpeg"===n?"mp3":"wav"}}):s.push({type:"audio_url",audio_url:{url:e.content,mime_type:n}}),e.transcript&&s.push({type:"text",text:`[Audio transcript]: ${e.transcript}`})}else"video"===e.type?s.push({type:"video_url",video_url:{url:e.content,mime_type:e.mimeType}}):s.push({type:"file",file:{file_data:e.content,filename:e.originalName,mime_type:e.mimeType}});return s}(e),n=e.processNodeId,a={id:e.id,timestamp:e.timestamp};return"user"===e.role?{role:"user",content:t,...a,processNodeId:n}:"assistant"===e.role?{role:"assistant",content:t,tool_calls:e.tool_calls,toolPayloads:e.toolPayloads,...a,processNodeId:n}:"system"===e.role?{role:"system",content:t,...a,processNodeId:n}:"tool"===e.role?e.tool_call_id?{role:"tool",content:t,tool_call_id:e.tool_call_id,toolPayloads:e.toolPayloads,...a,processNodeId:n}:{role:"user",content:"string"==typeof t?`Tool result: ${t}`:t,...a,processNodeId:n}:{role:"user",content:t,...a,processNodeId:n}}),c=await aS.current.chat.completions.create({model:a,messages:d,stream:!1,metadata:(o=rt.current.get(e.id),s=(0,nm.s)(e),i={flujo:"true",requireApproval:tv?"true":void 0,flujodebug:tM?"true":void 0,conversationId:e.id,compactToolPayloads:"true",appendMessages:n?"true":void 0,processNodeId:t?.processNodeId,...s,mcpAppContexts:void 0===o?void 0:JSON.stringify(o),mcpSkills:t?.mcpSkillSelections?.length?JSON.stringify(t.mcpSkillSelections):void 0},l={},i.flujo&&(l.flujo=i.flujo),i.requireApproval&&(l.requireApproval=i.requireApproval),i.flujodebug&&(l.flujodebug=i.flujodebug),i.conversationId&&(l.conversationId=i.conversationId),i.compactToolPayloads&&(l.compactToolPayloads=i.compactToolPayloads),i.appendMessages&&(l.appendMessages=i.appendMessages),i.processNodeId&&(l.processNodeId=i.processNodeId),i.personaId&&(l.personaId=i.personaId),i.behaviorSlotKey&&(l.behaviorSlotKey=i.behaviorSlotKey),void 0!==i.mcpAppContexts&&(l.mcpAppContexts=i.mcpAppContexts),void 0!==i.mcpSkills&&(l.mcpSkills=i.mcpSkills),l)});aV.debug("Chat completion initial response received",{completionId:c.id}),r=!0;let u={status:c.status||"completed",conversation_id:e.id,messages:c.messages||e.messages,pendingToolCalls:c.pendingToolCalls,debugState:c.debugState,error:c.error,lastResponse:c.lastResponse,updatedAt:c.updatedAt||Date.now()},h=r7(u,e.id);h||a$.current?h&&aV.debug("Debug state handled, polling remains stopped."):aV.debug("Starting polling after initial non-debug response.")}catch(n){if(aQ(n)||rs.current.has(e.id))return aV.info("Chat completion cancelled by user",{conversationId:e.id}),(0,nu.IU)({type:"chat-run-status",conversationId:e.id,status:"error"}),r=!1,e3(e.id,!1),rd(e.id,!0),ru.current===e.id&&(r9(),e5(!1),ak(null),rX(),ti(null),tc(null)),r;aV.error("Error calling chat completions API:",n),(0,nu.IU)({type:"chat-run-status",conversationId:e.id,status:"error"}),r=!1;let t="An error occurred while sending the message.";if(n instanceof aR.LG)t=`API Error: ${n.message} (Status: ${n.status})`,n.code&&(t+=` (Code: ${n.code})`),n.type&&(t+=` [Type: ${n.type}]`),aV.verbose("APIError details",JSON.stringify(n));else if(n instanceof aR.vc){t=`OpenAI Error: ${n.message}`;let e="error"in n&&n.error&&"object"==typeof n.error?n.error:void 0;e&&"object"==typeof e&&(e.code&&(t+=` (Code: ${e.code})`),e.type&&(t+=` [Type: ${e.type}]`)),aV.verbose("OpenAIError details",JSON.stringify(n))}else n instanceof eL.b?(t=`Error: ${aZ(n)}`,n.status&&(t+=` (Status: ${n.status})`),aV.verbose("ChatApiError details",JSON.stringify(n.body))):n instanceof Error&&(t=n.message);ti(t),e3(e.id,!1),ru.current===e.id&&(r9(),e5(!1),ak(null),rX()),a&&rn.current.add(e.id)}finally{}return r},oe=(0,r.useRef)(r3);oe.current=r3,(0,r.useEffect)(()=>{let e=e=>{if(!(0,nu.Ri)(e)||"send-example"!==e.detail.type)return;let{conversationId:t,message:n}=e.detail;eS.current!==t?(0,nu.IU)({type:"chat-run-status",conversationId:t,status:"error"}):((0,nu.IU)({type:"chat-run-status",conversationId:t,status:"running"}),oe.current(n).catch(()=>{(0,nu.IU)({type:"chat-run-status",conversationId:t,status:"error"})}))};return window.addEventListener(nu.dD,e),()=>window.removeEventListener(nu.dD,e)},[]);let ot=(0,r.useCallback)(e=>!!eA&&eS.current===eA&&(oe.current(e),!0),[eA]),on=(0,r.useCallback)((e,t)=>{if(!eA||eS.current!==eA)return!1;let n={...rt.current.get(eA)??{}};return(void 0===t.content&&void 0===t.structuredContent?delete n[e]:n[e]=t,(0,t$.Yw)(n)>t$.uJ)?(aV.warn("Rejected oversized aggregate MCP App model context",{conversationId:eA,appKey:e}),!1):(rt.current.set(eA,n),!0)},[eA]),[oa,or]=(0,r.useState)(tC.zs),[oo,os]=(0,r.useState)(eA),[oi,ol]=(0,r.useState)({placement:"bottom",reservedWidth:0,reservedHeight:0}),od=(0,r.useCallback)(e=>{ol(t=>t.placement===e.placement&&t.reservedWidth===e.reservedWidth&&t.reservedHeight===e.reservedHeight?t:e)},[]),oc=(0,r.useRef)(new Set),ou=(0,r.useCallback)((e,t,n)=>{let a=`${e}\0${t}`;n?eY.current.set(a,n):eY.current.delete(a)},[]),oh=(0,r.useCallback)((e,t)=>{eA&&ou(eA,e,t)},[eA,ou]),op=(0,r.useCallback)(e=>{let t=eS.current;if(!t)return;let n=(0,tC.cb)(e.serverName,e.uri);(0,tC.h)({automatic:!!e.automatic,dismissed:aL(t).includes(n),suppressed:aJ(t),healthy:e.healthy})&&(e.automatic||(eU(t,n,!1),eG(t,!1)),os(t),or(t=>{let{state:n}=(0,tC.aE)(t,e,Date.now(),Number.MAX_SAFE_INTEGER);return n}))},[eG,eU]),om=(0,r.useCallback)(e=>{let t=eS.current;t&&(e?(aU(t,(0,tC.dd)(oa).map(e=>e.key),!0),eG(t,!0)):eG(t,!1))},[oa,eG]),og=(0,r.useCallback)(()=>{let e=eS.current;if(!e)return;let t=(0,tC.dd)(oa).map(e=>e.key);0===t.length||(aU(e,t,!0),eG(e,!0),Promise.allSettled(t.map(t=>{let n=eY.current.get(`${e}\0${t}`);return n?n():Promise.resolve()})).finally(()=>{eS.current===e&&or(e=>{let n=e;for(let e of t)n=(0,tC.o4)(n,e);return n})}))},[oa,eG]),of=(0,r.useCallback)(e=>{or(t=>(0,tC.Az)(t,e))},[]),ox=(0,r.useCallback)(e=>{if(!eA)return;eU(eA,e,!0);let t=eY.current.get(`${eA}\0${e}`),n=()=>{eS.current===eA&&or(t=>(0,tC.o4)(t,e))};t?t().finally(n):n()},[eA,eU]);(0,r.useEffect)(()=>{os(eA),or(tC.zs),ol({placement:"bottom",reservedWidth:0,reservedHeight:0})},[eA]);let ov=oa.order.join("|");(0,r.useEffect)(()=>{let e=eg?.messages;if(!e||!eg||eg.id!==eA||oo!==eA)return;let t=new Map;for(let n of e)if("assistant"===n.role&&Array.isArray(n.tool_calls))for(let e of n.tool_calls)"function"===e.type&&e.id&&t.set(e.id,e);let n=new Map;for(let a of e){let e=a.ui;if("tool"===a.role&&e?.uri&&e?.serverName&&"string"==typeof a.content){let r="string"==typeof a.tool_call_id?t.get(a.tool_call_id):void 0,o={serverName:e.serverName,uri:e.uri,toolName:e.toolName??(r?.type==="function"?r.function.name:void 0),toolArgs:e.toolArgs??(r?.type==="function"?r.function.arguments:void 0),resultContent:a.content,toolOwnerScope:e.toolOwnerScope,cancelledReason:e.cancelledReason,isError:e.isError,updateId:a.id};n.set(`${e.serverName}::${e.uri}`,o)}}or(e=>{let t=e;for(let e of t.order){let a=t.entries[e],r=n.get(e);a&&r&&(r.updateId!==a.latestToolUpdateId||r.toolOwnerScope!==a.latestToolOwnerScope||r.toolArgs!==a.latestToolArgs||void 0===r.cancelledReason&&r.resultContent!==a.latestResultContent||r.cancelledReason!==a.latestToolCancelledReason||r.isError!==a.latestToolIsError)&&(t=(0,tC.hx)(t,r))}return t})},[ov,oo,eA,eg?.id,eg?.messages]),(0,r.useEffect)(()=>{if(!eA||oo!==eA||oa.order.length<=tC.Yb)return;let{evicted:e}=(0,tC.lR)(oa,tC.Yb,oa.activeKey??void 0);for(let t of e){let e=`${eA}\0${t}`;if(oc.current.has(e))continue;oc.current.add(e),aV.info(`Canvas tab cap reached — gracefully evicting (LRU): ${t}`);let n=eY.current.get(e);(n?n():Promise.resolve()).finally(()=>{oc.current.delete(e),eS.current===eA&&or(e=>(0,tC.o4)(e,t))})}},[oa,oo,eA]);let oy=async(e,t,n)=>{if(!eg)return;aV.debug("Editing message",{messageId:e,contentLength:t.length,processNodeId:n});let a=eg;if(a.transcriptWindow?.truncated){try{a=await eL.O.getConversation(a.id)}catch(e){aV.error("Could not load full transcript before editing",{conversationId:a.id,error:e}),ti(G("chat.page.sendEditedFailed"));return}if(eS.current!==a.id)return}let r=a.messages.findIndex(t=>t.id===e);if(-1===r)return;let o={...a.messages[r],content:t,timestamp:Date.now(),processNodeId:n||void 0},s={...a,messages:[...a.messages.slice(0,r),o],transcriptWindow:{truncated:!1,loadedCount:r+1,totalCount:r+1,source:"durable-log"}};rK(s),await r8(s,{processNodeId:s.personaId?void 0:n||void 0})},ob=(0,r.useCallback)(e=>{let t=eg?.messages.find(t=>t.id===e);t&&"user"===t.role&&"string"==typeof t.content&&tK({messageId:e,content:t.content,nodeId:t.processNodeId??rC[0]?.id??null})},[eg,rC]),ow=(0,r.useCallback)(e=>{tK(t=>t?{...t,content:e}:t)},[]),oj=(0,r.useCallback)(e=>{tK(t=>t?{...t,nodeId:e}:t)},[]),oA=(0,r.useCallback)(()=>tK(null),[]),ok=(e,t="head")=>{var n;if(!eg)return;aV.debug("Splitting conversation at message",{messageId:e,half:t});let a=eg.messages.findIndex(t=>t.id===e);if(-1===a)return;let r=(n=eg.messages,"head"===t?n.slice(0,a+1):function(e,t){let n=e.slice(0,t).filter(e=>"system"===e.role),a=new Set,r=[];for(let n of e.slice(t)){if("assistant"===n.role&&Array.isArray(n.tool_calls))for(let e of n.tool_calls)e?.id&&a.add(e.id);("tool"!==n.role||!n.tool_call_id||a.has(n.tool_call_id))&&r.push(n)}return[...n,...r]}(n,a));if(0===r.length)return void aV.debug("Split produced no messages — ignoring",{messageId:e,half:t});let o=(0,aE.A)(),s={id:o,title:G("head"===t?"chat.page.splitTitle":"chat.page.splitTailTitle",{title:eg.title}),messages:r,flowId:eg.flowId,...eg.personaId?{personaId:eg.personaId}:{},...eg.personaBehaviorSlotKey?{personaBehaviorSlotKey:eg.personaBehaviorSlotKey}:{},createdAt:Date.now(),updatedAt:Date.now()},i={id:o,title:s.title,flowId:s.flowId,...s.personaId?{personaId:s.personaId}:{},...s.personaBehaviorSlotKey?{personaBehaviorSlotKey:s.personaBehaviorSlotKey}:{},createdAt:s.createdAt,updatedAt:s.updatedAt};rn.current.add(o),ea(e=>[i,...e].sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt))),eZ(o),ef(s),ev(!1),ej(null)},oS=async(e,t)=>{if(eA){aV.info(`Handling tool response: ${e}`,{conversationId:eA,toolCallId:t}),tW(null),e5(!0),ak(eA),e3(eA,!0),rG(eA,"running"),ti(null),tc(null),await r0(eA);try{let n=await eL.O.respondToToolCall(eA,e,t);aV.debug("Tool response successful",{conversationId:eA,action:e,toolCallId:t}),r7(n,eA)}catch(a){if(aQ(a)||rs.current.has(eA)){aV.info("Tool-response resume cancelled by user",{conversationId:eA}),rd(eA,!0),ru.current===eA&&e5(!1),e3(eA,!1);return}aV.error(`Error sending tool response (${e})`,{conversationId:eA,toolCallId:t,err:a});let n="approve"===e?G("chat.page.approveFailed"):G("chat.page.rejectFailed");a instanceof eL.b?n+=` (${aZ(a)})`:a instanceof Error&&(n+=` (${a.message})`),ti(n),ru.current===eA&&e5(!1),e3(eA,!1)}}},oI=async e=>{if(eA){aV.info("Cancelling single tool call",{conversationId:eA,toolCallId:e});try{await eL.O.cancelToolCall(eA,e)}catch(t){aV.warn("Failed to cancel tool call",{conversationId:eA,toolCallId:e,err:t})}}},oC=async e=>{let t=eS.current;if(t){ti(null),tc(null);try{let n=await fetch((0,nc.TA)(`/v1/chat/conversations/${encodeURIComponent(t)}/respond`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.error??"Unable to respond to this request.")}eS.current===t&&(ti(null),tc(null),e.elicitationId&&tD(t=>s(t,e.elicitationId)),e.questionId&&t_(t=>i(t,e.questionId)))}catch(n){aV.warn("Failed to respond to pending input",{conversationId:t,action:e.action,err:n}),eS.current===t&&(tc(null),tn(e=>e+1),ti(te[e.action]))}finally{await rf(t)}}},o$=async(e,t)=>oC({action:"elicitation-submit",elicitationId:e,content:t}),oz=async e=>{await oC({action:"elicitation-cancel",elicitationId:e})},oT=async(e,t)=>{await oC({action:"question-answer",questionId:e,answers:t})},oM=async e=>{await oC({action:"question-decline",questionId:e})},oE=async()=>{if(eA&&tJ){aV.info("Handling debug step request",{conversationId:eA}),e5(!0),ak(eA),e3(eA,!0),ti(null),tc(null),await r0(eA);try{let e=await eL.O.debugStep(eA);r7(e,eA)}catch(e){aV.error("Error during debug step API call",{conversationId:eA,err:e}),ti(e instanceof Error?e.message:G("chat.page.debugStepFailed")),e5(!1),e3(eA,!1),tV(!1),tG(null)}finally{}}},oR=async()=>{if(eA&&tJ){aV.info("Handling debug continue request",{conversationId:eA}),e5(!0),ak(eA),e3(eA,!0),rG(eA,"running"),ti(null),tc(null),n_(!1),nB(!1),tE(!1),tV(!1),tG(null),nD(!1),aj([]),await r0(eA);try{let e=await eL.O.debugContinue(eA);r7(e,eA)}catch(e){aV.error("Error during debug continue API call",{conversationId:eA,err:e}),ti(e instanceof Error?e.message:G("chat.page.debugContinueFailed")),e5(!1),e3(eA,!1)}finally{}}};(0,r.useEffect)(()=>{tX&&aj(tX.breakpoints??[])},[tX]);let oN=(0,r.useCallback)(async e=>{if(eA){aj(e);try{await eL.O.setBreakpoints(eA,e)}catch(e){aV.error("Failed to update breakpoints",{conversationId:eA,err:e}),aj(aw)}}},[aw,eA]),oW=(0,r.useCallback)(async e=>{if(!eA)return;let t=aw.includes(e)?aw.filter(t=>t!==e):[...aw,e];aj(t);try{await eL.O.setBreakpoints(eA,t)}catch(e){aV.error("Failed to update breakpoints",{conversationId:eA,err:e}),aj(aw)}},[aw,eA]),oP=(0,r.useCallback)(async()=>{if(eA){aV.info("Attaching debugger to running conversation",{conversationId:eA}),nB(!0);try{await eL.O.attachDebugger(eA)}catch(e){aV.error("Failed to attach debugger",{conversationId:eA,err:e}),nB(!1),ti(e instanceof Error?e.message:G("chat.page.attachDebuggerFailed"))}}},[eA,G]),oO=(0,r.useCallback)(()=>{nF||nO||tJ?a7.current?.():(n_(!0),tE(!0),(e2&&aA===eA||eA&&e4.has(eA)||rw?.status==="running")&&eA&&(az.current||r0(eA),oP()))},[nF,nO,tJ,e2,aA,eA,e4,rw?.status,oP,r0]),oD=async()=>{if(!eA||!tJ)return;let e=tX?.currentNodeId;e5(!0),ak(eA),e3(eA,!0),ti(null),tc(null),await r0(eA);try{for(let t=0;t<50;t++){let t=await eL.O.debugStep(eA),n=t?.status??t?.debugState?.status,a=t?.debugState?.currentNodeId;if("paused_debug"!==n||a&&a!==e)return void r7(t,eA)}aV.warn("Step Over hit iteration cap",{conversationId:eA}),e5(!1),e3(eA,!1)}catch(e){aV.error("Error during step over",{conversationId:eA,err:e}),ti(e instanceof Error?e.message:G("chat.page.stepOverFailed")),e5(!1),e3(eA,!1)}},oF=async()=>{if(eA){aV.info("Cancelling request",{conversationId:eA}),r9(),e5(!1),ak(null),e3(eA,!1),rd(eA,!0),n_(!1),nB(!1),tE(!1),tV(!1),tG(null),nD(!1),aj([]),rX(),tW(null),t_(null),tD(null),an(null),ti(null),tc(null);try{await eL.O.cancel(eA),aV.debug("Cancel request sent successfully",{conversationId:eA}),await rx(eA)}catch(e){aV.error("Error sending cancel request",{conversationId:eA,err:e}),ti(G("chat.page.cancelFailed"))}}},o_=async e=>{if(e===eA)return void await oF();aV.info("Stopping background conversation",{conversationId:e}),rd(e,!0);try{await eL.O.cancel(e),e3(e,!1),await rh(void 0,{silent:!0})}catch(t){aV.error("Error stopping background conversation",{conversationId:e,err:t}),ti(G("chat.page.cancelFailed"))}},oq=async e=>{if(eA&&!tp){tm(e),ti(null),tc(null);try{let t=await eL.O.retrySubflowRecovery(eA,e);t.failed.length>0?ti(t.failed.map(e=>e.error).join("\n")):rd(eA,!1),await Promise.all([rx(eA),rh(void 0,{silent:!0})]);try{th(await eL.O.getSubflowRecoveryOptions(eA))}catch{th(null)}}catch(t){aV.error("Subflow recovery failed",{conversationId:eA,scope:e,err:t}),ti(t instanceof Error?t.message:G("chat.page.recoveryFailed"))}finally{tm(null)}}},oB=(0,r.useCallback)(async()=>{if(aV.info("Closing debugger panel (detach)",{conversationId:eA,wasPaused:tJ}),n_(!1),nB(!1),tE(!1),tV(!1),tG(null),nD(!1),eA){try{await eL.O.setBreakpoints(eA,[]),aj([])}catch(e){aV.error("Failed to clear breakpoints while detaching",{conversationId:eA,err:e})}if(tJ){e5(!0),ak(eA),e3(eA,!0),rG(eA,"running"),await r0(eA);try{let e=await eL.O.debugContinue(eA);r7(e,eA)}catch(e){aV.error("Failed to resume run while detaching the debugger",{conversationId:eA,err:e}),e5(!1),e3(eA,!1),ti(e instanceof Error?e.message:G("chat.page.debugContinueFailed"))}}}},[eA,tJ,r0,r7,e3,G]);(0,r.useEffect)(()=>{a7.current=oB},[oB]),(0,r.useEffect)(()=>{if(!eA||!nF&&!nO||tX||!(tJ||rw?.status==="paused_debug"))return;let e=!1;return(async()=>{try{let t=await eL.O.getDebugState(eA);if(e||!t?.debugState)return;tG(t.debugState),nD(!0),tV(!0),nB(!1),aj(t.breakpoints??[])}catch(e){aV.error("Failed to hydrate debug state",{conversationId:eA,err:e})}})(),()=>{e=!0}},[eA,nF,nO,tX,tJ,rw?.status]),aV.debug("Rendering Chat component",{currentConversationId:eA,isHandleEditMessageDefined:!0});let oH=(nF||nO||tJ)&&!!eA,oL=nq?"attaching":"armed",oU=(0,r.useCallback)(e=>{tQ(e),t1(0),nf(null),nv(null),n$(!1),nE.current=!1},[]),oK=tX?.executionTrace??[],oJ=0===oK.length?-1:tY>=0&&tY<oK.length?tY:oK.length-1,oV=oJ>=0?oK[oJ]:void 0,oX=tX?.debugBoundary,oG=!!oX&&(0===oK.length||tY<0||oJ===oK.length-1),oY=oG&&oX.modelInput?[oX.modelInput]:[],oQ=oY.length>0?oY:oV?.modelInputs?.length?oV.modelInputs:oV?.modelInput?[oV.modelInput]:[],oZ=oQ.length>0?Math.min(tZ,oQ.length-1):0,o0=oQ[oZ],o1=nl.find(e=>e.id===nh),o2=!!o1,o5=oH&&!!tX&&(oQ.length>0||oJ>=0),o4=!!t6&&!!eA,o6=o2||o5||o4,o3="chat"===t2&&o2&&!nC,o7="wire"===t2&&o2,o9="wire"===t2&&!o2&&o5,o8="wire"===t2&&!o2&&!o5&&o4,se=o7||o9||o8,st=(0,r.useMemo)(()=>(nx&&!(0,ay.ZN)(nx)?nx.canonicalMessages:[]).filter(e=>"system"!==e.role),[nx]);(0,r.useEffect)(()=>{if(!o1)return void nb(!1);let e=`${o1.conversationId}:${o1.id}`,t=nN.current.get(e);if(t){nv(t),nj(null),nb(!1);return}nN.current.clear();let n=new AbortController;return nv(null),nj(null),nb(!0),eL.O.getModelTurnInspection(o1.conversationId,o1.id,{signal:n.signal}).then(t=>{n.signal.aborted||(nN.current.set(e,t),nv(t))}).catch(e=>{n.signal.aborted||nj(e instanceof Error?e.message:"Could not load this model turn.")}).finally(()=>{n.signal.aborted||nb(!1)}),()=>n.abort()},[o1,nA]),(0,r.useEffect)(()=>{ns.current?.abort();let e=++ni.current;if(!o8||!eA||!t6)return void ne(!1);let t=new AbortController;return ns.current=t,t9(null),nn(null),ne(!0),eL.O.getWirePreview(eA,t6,{signal:t.signal}).then(n=>{t.signal.aborted||e!==ni.current||t9(n)}).catch(n=>{t.signal.aborted||e!==ni.current||nn(n instanceof Error?n.message:G("chat.preview.loadFailed"))}).finally(()=>{t.signal.aborted||e!==ni.current||ne(!1)}),()=>t.abort()},[o8,eA,t6,nr,G]);let sn=rw?.status==="awaiting_tool_approval"||!!tR,sa=!(sn||rw?.status==="paused_debug")&&(e2&&aA===eA||!!eA&&e4.has(eA)||rw?.status==="running"),sr=!sa&&!!eA&&ri.has(eA);(0,r.useEffect)(()=>{var e;if(!eA||e8.current||!eg||eg.id!==eA)return;let t=(e7[eA]??[])[0];if(!t||!(!(e={running:e4.has(eA),pendingApproval:!!tR,debugPaused:tJ,hasError:rw?.status==="error",stopped:sr}).running&&!e.pendingApproval&&!e.debugPaused&&!e.hasError&&!e.stopped))return;e8.current=!0;let n=setTimeout(async()=>{try{e9(e=>tT(e,eA,t.id)),await r3(t.content,t.attachments,{fromQueue:!0,nodeOverride:t.nodeOverride,queuedId:t.id,mcpSkillSelections:t.mcpSkillSelections})}catch{e9(e=>{var n,a,r;let o;return n=e,a=eA,r=t,o=(n[a]??[]).filter(e=>e.id!==r.id),{...n,[a]:[r,...o]}})}finally{e8.current=!1}},0);return()=>clearTimeout(n)},[eA,eg,e7,e4,tR,tJ,rw?.status,sr]);let so=aX(r1),ss=aX(r2),si=aX(o_),sl=aX(rM),sd=(0,r.useCallback)(()=>rL(!0),[]),sc=tu?(0,a.jsxs)(c.default,{sx:{display:"flex",gap:.5,flexWrap:"wrap",justifyContent:"flex-end"},children:[(0,a.jsx)(u.A,{color:"inherit",size:"small",startIcon:"branch"===tp?(0,a.jsx)(h.default,{color:"inherit",size:14}):(0,a.jsx)(R.A,{}),disabled:!!tp||!tu.canRetryBranch,onClick:()=>void oq("branch"),children:G("chat.page.recoverBranch")}),tu.canRetrySiblings&&(0,a.jsx)(u.A,{color:"inherit",size:"small",startIcon:"siblings"===tp?(0,a.jsx)(h.default,{color:"inherit",size:14}):(0,a.jsx)(B.A,{}),disabled:!!tp,onClick:()=>void oq("siblings"),children:G("chat.page.recoverLevel",{count:tu.incompleteSiblingCount})}),tu.canRetryDeepest&&tu.deepestFailedCount>1&&(0,a.jsx)(u.A,{color:"inherit",size:"small",startIcon:"deepest"===tp?(0,a.jsx)(h.default,{color:"inherit",size:14}):(0,a.jsx)(q.A,{}),disabled:!!tp,onClick:()=>void oq("deepest"),children:G("chat.page.recoverLeaves",{count:tu.deepestFailedCount})})]}):null,su=er?(0,a.jsxs)(c.default,{role:"status","aria-live":"polite","aria-atomic":"true",sx:{display:"flex",flexDirection:"column",gap:1,justifyContent:"center",alignItems:"center",height:"100%",p:2},children:[(0,a.jsx)(h.default,{size:32,"aria-hidden":"true"}),(0,a.jsx)(p.A,{variant:"body2",color:"text.secondary",children:G("chat.page.loadingConversations")})]}):el?(0,a.jsx)(m.A,{severity:"error",sx:{m:2},children:el}):(0,a.jsx)(ta,{conversations:en,totalConversations:ec.total+rn.current.size,hasMoreConversations:ec.hasMore,isLoadingMore:es,onLoadMore:rp,onLoadAll:rm,onPinsChanged:()=>{rh(void 0,{silent:!0})},flowNames:rj,personaNames:rA,currentConversationId:eA,revealRequest:rN,onSelectConversation:n7,onDeleteConversation:so,onBulkDelete:ss,onStopConversation:si,onNewConversation:sl,onQuickChat:Q?.modelAccess?.quickChat===!1?void 0:sd,onCollapse:n3,collapsed:n6});return(0,a.jsxs)(c.default,{"data-tutorial-conversation-id":eA??void 0,"data-tutorial-chat-status":sa?"running":rw?.status??void 0,sx:{display:"flex",height:`calc(
2
2
  100dvh
3
3
  - var(--app-bar-height)
4
4
  - var(--active-subnav-height)