@exulu/frontend 1.3.2 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/dist/.next/BUILD_ID +1 -1
  2. package/dist/.next/app-build-manifest.json +185 -174
  3. package/dist/.next/app-path-routes-manifest.json +1 -1
  4. package/dist/.next/build-manifest.json +2 -2
  5. package/dist/.next/prerender-manifest.json +1 -1
  6. package/dist/.next/server/app/(application)/agents/edit/[id]/page.js +1 -1
  7. package/dist/.next/server/app/(application)/agents/edit/[id]/page.js.nft.json +1 -1
  8. package/dist/.next/server/app/(application)/agents/edit/[id]/page_client-reference-manifest.js +1 -1
  9. package/dist/.next/server/app/(application)/agents/page.js +1 -2
  10. package/dist/.next/server/app/(application)/agents/page.js.nft.json +1 -1
  11. package/dist/.next/server/app/(application)/agents/page_client-reference-manifest.js +1 -1
  12. package/dist/.next/server/app/(application)/chat/[agent]/[session]/page.js +1 -1
  13. package/dist/.next/server/app/(application)/chat/[agent]/[session]/page.js.nft.json +1 -1
  14. package/dist/.next/server/app/(application)/chat/[agent]/[session]/page_client-reference-manifest.js +1 -1
  15. package/dist/.next/server/app/(application)/chat/[agent]/page.js +1 -1
  16. package/dist/.next/server/app/(application)/chat/[agent]/page.js.nft.json +1 -1
  17. package/dist/.next/server/app/(application)/chat/[agent]/page_client-reference-manifest.js +1 -1
  18. package/dist/.next/server/app/(application)/chat/page.js +1 -1
  19. package/dist/.next/server/app/(application)/chat/page.js.nft.json +1 -1
  20. package/dist/.next/server/app/(application)/chat/page_client-reference-manifest.js +1 -1
  21. package/dist/.next/server/app/(application)/configuration/page.js +1 -1
  22. package/dist/.next/server/app/(application)/configuration/page.js.nft.json +1 -1
  23. package/dist/.next/server/app/(application)/configuration/page_client-reference-manifest.js +1 -1
  24. package/dist/.next/server/app/(application)/dashboard/page.js +5 -1
  25. package/dist/.next/server/app/(application)/dashboard/page.js.nft.json +1 -1
  26. package/dist/.next/server/app/(application)/dashboard/page_client-reference-manifest.js +1 -1
  27. package/dist/.next/server/app/(application)/data/[[...query]]/page.js +5 -1
  28. package/dist/.next/server/app/(application)/data/[[...query]]/page.js.nft.json +1 -1
  29. package/dist/.next/server/app/(application)/data/[[...query]]/page_client-reference-manifest.js +1 -1
  30. package/dist/.next/server/app/(application)/evals/[id]/page.js +1 -1
  31. package/dist/.next/server/app/(application)/evals/[id]/page.js.nft.json +1 -1
  32. package/dist/.next/server/app/(application)/evals/[id]/page_client-reference-manifest.js +1 -1
  33. package/dist/.next/server/app/(application)/evals/[id]/runs/page.js +1 -1
  34. package/dist/.next/server/app/(application)/evals/[id]/runs/page.js.nft.json +1 -1
  35. package/dist/.next/server/app/(application)/evals/[id]/runs/page_client-reference-manifest.js +1 -1
  36. package/dist/.next/server/app/(application)/evals/cases/page.js +1 -1
  37. package/dist/.next/server/app/(application)/evals/cases/page.js.nft.json +1 -1
  38. package/dist/.next/server/app/(application)/evals/cases/page_client-reference-manifest.js +1 -1
  39. package/dist/.next/server/app/(application)/evals/page.js +1 -1
  40. package/dist/.next/server/app/(application)/evals/page.js.nft.json +1 -1
  41. package/dist/.next/server/app/(application)/evals/page_client-reference-manifest.js +1 -1
  42. package/dist/.next/server/app/(application)/explorer/page.js +1 -1
  43. package/dist/.next/server/app/(application)/explorer/page.js.nft.json +1 -1
  44. package/dist/.next/server/app/(application)/explorer/page_client-reference-manifest.js +1 -1
  45. package/dist/.next/server/app/(application)/jobs/page.js +1 -1
  46. package/dist/.next/server/app/(application)/jobs/page.js.nft.json +1 -1
  47. package/dist/.next/server/app/(application)/jobs/page_client-reference-manifest.js +1 -1
  48. package/dist/.next/server/app/(application)/keys/page.js +1 -1
  49. package/dist/.next/server/app/(application)/keys/page.js.nft.json +1 -1
  50. package/dist/.next/server/app/(application)/keys/page_client-reference-manifest.js +1 -1
  51. package/dist/.next/server/app/(application)/page.js +1 -1
  52. package/dist/.next/server/app/(application)/page.js.nft.json +1 -1
  53. package/dist/.next/server/app/(application)/page_client-reference-manifest.js +1 -1
  54. package/dist/.next/server/app/(application)/projects/[project]/page.js +1 -1
  55. package/dist/.next/server/app/(application)/projects/[project]/page.js.nft.json +1 -1
  56. package/dist/.next/server/app/(application)/projects/[project]/page_client-reference-manifest.js +1 -1
  57. package/dist/.next/server/app/(application)/projects/page.js +1 -1
  58. package/dist/.next/server/app/(application)/projects/page.js.nft.json +1 -1
  59. package/dist/.next/server/app/(application)/projects/page_client-reference-manifest.js +1 -1
  60. package/dist/.next/server/app/(application)/roles/page.js +1 -1
  61. package/dist/.next/server/app/(application)/roles/page.js.nft.json +1 -1
  62. package/dist/.next/server/app/(application)/roles/page_client-reference-manifest.js +1 -1
  63. package/dist/.next/server/app/(application)/token/page.js +1 -1
  64. package/dist/.next/server/app/(application)/token/page.js.nft.json +1 -1
  65. package/dist/.next/server/app/(application)/token/page_client-reference-manifest.js +1 -1
  66. package/dist/.next/server/app/(application)/users/page.js +1 -1
  67. package/dist/.next/server/app/(application)/users/page.js.nft.json +1 -1
  68. package/dist/.next/server/app/(application)/users/page_client-reference-manifest.js +1 -1
  69. package/dist/.next/server/app/(application)/variables/create/page.js +1 -1
  70. package/dist/.next/server/app/(application)/variables/create/page.js.nft.json +1 -1
  71. package/dist/.next/server/app/(application)/variables/create/page_client-reference-manifest.js +1 -1
  72. package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page.js +1 -1
  73. package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page.js.nft.json +1 -1
  74. package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page_client-reference-manifest.js +1 -1
  75. package/dist/.next/server/app/(application)/variables/page.js +1 -1
  76. package/dist/.next/server/app/(application)/variables/page.js.nft.json +1 -1
  77. package/dist/.next/server/app/(application)/variables/page_client-reference-manifest.js +1 -1
  78. package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page.js +1 -1
  79. package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page.js.nft.json +1 -1
  80. package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page_client-reference-manifest.js +1 -1
  81. package/dist/.next/server/app/(application)/workflows/page.js +1 -1
  82. package/dist/.next/server/app/(application)/workflows/page.js.nft.json +1 -1
  83. package/dist/.next/server/app/(application)/workflows/page_client-reference-manifest.js +1 -1
  84. package/dist/.next/server/app/(authentication)/login/page_client-reference-manifest.js +1 -1
  85. package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  86. package/dist/.next/server/app/_not-found.html +1 -1
  87. package/dist/.next/server/app/_not-found.rsc +1 -1
  88. package/dist/.next/server/app/api/auth/[...nextauth]/route.js +9 -9
  89. package/dist/.next/server/app-paths-manifest.json +5 -5
  90. package/dist/.next/server/chunks/1051.js +16 -16
  91. package/dist/.next/server/chunks/2270.js +188 -100
  92. package/dist/.next/server/chunks/{8838.js → 2875.js} +1 -1
  93. package/dist/.next/server/chunks/2916.js +1 -1
  94. package/dist/.next/server/chunks/3503.js +1 -0
  95. package/dist/.next/server/chunks/{7544.js → 4552.js} +1 -1
  96. package/dist/.next/server/chunks/{3393.js → 4739.js} +1 -1
  97. package/dist/.next/server/chunks/5192.js +1 -1
  98. package/dist/.next/server/chunks/5999.js +2 -0
  99. package/dist/.next/server/chunks/6282.js +1 -0
  100. package/dist/.next/server/chunks/6623.js +1 -0
  101. package/dist/.next/server/chunks/7721.js +1 -0
  102. package/dist/.next/server/chunks/7944.js +2 -2
  103. package/dist/.next/server/chunks/8050.js +1 -0
  104. package/dist/.next/server/chunks/8206.js +1 -0
  105. package/dist/.next/server/chunks/8679.js +5 -0
  106. package/dist/.next/server/middleware-manifest.json +5 -5
  107. package/dist/.next/server/pages/404.html +1 -1
  108. package/dist/.next/server/pages/500.html +1 -1
  109. package/dist/.next/server/server-reference-manifest.json +1 -1
  110. package/dist/.next/static/chunks/1294-368dc8ec59054da4.js +2 -0
  111. package/dist/.next/static/chunks/1294-368dc8ec59054da4.js.map +1 -0
  112. package/dist/.next/static/chunks/{1645-e5fd10236c0183ce.js → 1645-570e014100772437.js} +1 -1
  113. package/dist/.next/static/chunks/{1645-e5fd10236c0183ce.js.map → 1645-570e014100772437.js.map} +1 -1
  114. package/dist/.next/static/chunks/1957-5867716304ecd208.js +2 -0
  115. package/dist/.next/static/chunks/1957-5867716304ecd208.js.map +1 -0
  116. package/dist/.next/static/chunks/{2293-59b4bbce0c5bd2f2.js → 2293-1681cdef5b8c0c0b.js} +1 -1
  117. package/dist/.next/static/chunks/{2293-59b4bbce0c5bd2f2.js.map → 2293-1681cdef5b8c0c0b.js.map} +1 -1
  118. package/dist/.next/static/chunks/3475-28ce4fce960656bd.js +2 -0
  119. package/dist/.next/static/chunks/3475-28ce4fce960656bd.js.map +1 -0
  120. package/dist/.next/static/chunks/3832-a5e8fc6647e2be65.js +2 -0
  121. package/dist/.next/static/chunks/3832-a5e8fc6647e2be65.js.map +1 -0
  122. package/dist/.next/static/chunks/{4386-a36fe9c65884f025.js → 4386-c7690667749bff6a.js} +1 -1
  123. package/dist/.next/static/chunks/{4386-a36fe9c65884f025.js.map → 4386-c7690667749bff6a.js.map} +1 -1
  124. package/dist/.next/static/chunks/4750-4d5c13bbc96bc19b.js +2 -0
  125. package/dist/.next/static/chunks/4750-4d5c13bbc96bc19b.js.map +1 -0
  126. package/dist/.next/static/chunks/5243-1aaa41b2cd0ea87c.js +2 -0
  127. package/dist/.next/static/chunks/5243-1aaa41b2cd0ea87c.js.map +1 -0
  128. package/dist/.next/static/chunks/5978-814d6900645d2fcc.js +2 -0
  129. package/dist/.next/static/chunks/5978-814d6900645d2fcc.js.map +1 -0
  130. package/dist/.next/static/chunks/6373-651cb258c9e2b57b.js +2 -0
  131. package/dist/.next/static/chunks/6373-651cb258c9e2b57b.js.map +1 -0
  132. package/dist/.next/static/chunks/{7564-44a20b31206685e1.js → 6545-5a1d7cf4d5ca770e.js} +21 -21
  133. package/dist/.next/static/chunks/6545-5a1d7cf4d5ca770e.js.map +1 -0
  134. package/dist/.next/static/chunks/6839-0f4cfb48058a5ab6.js +2 -0
  135. package/dist/.next/static/chunks/6839-0f4cfb48058a5ab6.js.map +1 -0
  136. package/dist/.next/static/chunks/723-94e596796cbf911d.js +2 -0
  137. package/dist/.next/static/chunks/723-94e596796cbf911d.js.map +1 -0
  138. package/dist/.next/static/chunks/8202-db2cc384c66bc1be.js +2 -0
  139. package/dist/.next/static/chunks/8202-db2cc384c66bc1be.js.map +1 -0
  140. package/dist/.next/static/chunks/8269-37dd07515eb44201.js +2 -0
  141. package/dist/.next/static/chunks/8269-37dd07515eb44201.js.map +1 -0
  142. package/dist/.next/static/chunks/8469-ba31cbd7acab5f94.js +2 -0
  143. package/dist/.next/static/chunks/8469-ba31cbd7acab5f94.js.map +1 -0
  144. package/dist/.next/static/chunks/8824-20030459012376a3.js +2 -0
  145. package/dist/.next/static/chunks/8824-20030459012376a3.js.map +1 -0
  146. package/dist/.next/static/chunks/9105-3800f721d38e2b9a.js +2 -0
  147. package/dist/.next/static/chunks/9105-3800f721d38e2b9a.js.map +1 -0
  148. package/dist/.next/static/chunks/9183-a51605ff26b92fed.js +41 -0
  149. package/dist/.next/static/chunks/9183-a51605ff26b92fed.js.map +1 -0
  150. package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-511f168123f85285.js +2 -0
  151. package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-511f168123f85285.js.map +1 -0
  152. package/dist/.next/static/chunks/app/(application)/agents/{page-499ac3bd1044306c.js → page-63643deabdaa6b2c.js} +2 -2
  153. package/dist/.next/static/chunks/app/(application)/agents/{page-499ac3bd1044306c.js.map → page-63643deabdaa6b2c.js.map} +1 -1
  154. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/{page-3807a8bc2ae87548.js → page-62c7321ba26632af.js} +2 -2
  155. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-62c7321ba26632af.js.map +1 -0
  156. package/dist/.next/static/chunks/app/(application)/chat/{layout-53796525bd3e2443.js → layout-5eb1d22ddcbc0b55.js} +2 -2
  157. package/dist/.next/static/chunks/app/(application)/chat/{layout-53796525bd3e2443.js.map → layout-5eb1d22ddcbc0b55.js.map} +1 -1
  158. package/dist/.next/static/chunks/app/(application)/configuration/{page-2d8a0e2664ab9a94.js → page-8f92af5318feb84f.js} +1 -1
  159. package/dist/.next/static/chunks/app/(application)/configuration/{page-2d8a0e2664ab9a94.js.map → page-8f92af5318feb84f.js.map} +1 -1
  160. package/dist/.next/static/chunks/app/(application)/dashboard/page-00e425d942e0d769.js +2 -0
  161. package/dist/.next/static/chunks/app/(application)/dashboard/page-00e425d942e0d769.js.map +1 -0
  162. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-a460a56d3efac658.js +2 -0
  163. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-a460a56d3efac658.js.map +1 -0
  164. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-bb06a9553c9ed178.js +2 -0
  165. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-bb06a9553c9ed178.js.map +1 -0
  166. package/dist/.next/static/chunks/app/(application)/evals/[id]/{page-2238f1fb73d93328.js → page-ef82e92ca7d0da6c.js} +2 -2
  167. package/dist/.next/static/chunks/app/(application)/evals/[id]/{page-2238f1fb73d93328.js.map → page-ef82e92ca7d0da6c.js.map} +1 -1
  168. package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-6622dd1b22a7885d.js +2 -0
  169. package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-6622dd1b22a7885d.js.map +1 -0
  170. package/dist/.next/static/chunks/app/(application)/evals/cases/{page-ea5faf58b368feae.js → page-6246be9d6592d1d3.js} +2 -2
  171. package/dist/.next/static/chunks/app/(application)/evals/cases/{page-ea5faf58b368feae.js.map → page-6246be9d6592d1d3.js.map} +1 -1
  172. package/dist/.next/static/chunks/app/(application)/evals/{page-f79e1a90384ba618.js → page-b1e1fd7dba1e675f.js} +2 -2
  173. package/dist/.next/static/chunks/app/(application)/evals/{page-f79e1a90384ba618.js.map → page-b1e1fd7dba1e675f.js.map} +1 -1
  174. package/dist/.next/static/chunks/app/(application)/jobs/{page-e6f02a338bec4806.js → page-a96441a0bc654d68.js} +1 -1
  175. package/dist/.next/static/chunks/app/(application)/jobs/{page-e6f02a338bec4806.js.map → page-a96441a0bc654d68.js.map} +1 -1
  176. package/dist/.next/static/chunks/app/(application)/keys/{page-59ee4e0281131cbc.js → page-163aadfe9ad0d794.js} +1 -1
  177. package/dist/.next/static/chunks/app/(application)/keys/{page-59ee4e0281131cbc.js.map → page-163aadfe9ad0d794.js.map} +1 -1
  178. package/dist/.next/static/chunks/app/(application)/{layout-73d93420d0c6661c.js → layout-694c53aca85ef437.js} +2 -2
  179. package/dist/.next/static/chunks/app/(application)/{layout-73d93420d0c6661c.js.map → layout-694c53aca85ef437.js.map} +1 -1
  180. package/dist/.next/static/chunks/app/(application)/projects/[project]/page-e69828fde85c50af.js +2 -0
  181. package/dist/.next/static/chunks/app/(application)/projects/[project]/page-e69828fde85c50af.js.map +1 -0
  182. package/dist/.next/static/chunks/app/(application)/projects/{layout-f73ad7daf4825f1b.js → layout-d7642b25bf6d33b3.js} +2 -2
  183. package/dist/.next/static/chunks/app/(application)/projects/{layout-f73ad7daf4825f1b.js.map → layout-d7642b25bf6d33b3.js.map} +1 -1
  184. package/dist/.next/static/chunks/app/(application)/roles/page-5d5e5142f0997122.js +2 -0
  185. package/dist/.next/static/chunks/app/(application)/roles/page-5d5e5142f0997122.js.map +1 -0
  186. package/dist/.next/static/chunks/app/(application)/users/{page-e0a04fda52138aa0.js → page-b862cb199fd72525.js} +2 -2
  187. package/dist/.next/static/chunks/app/(application)/users/{page-e0a04fda52138aa0.js.map → page-b862cb199fd72525.js.map} +1 -1
  188. package/dist/.next/static/chunks/app/(application)/variables/create/{page-6c6076f3f253190d.js → page-d79d5c1c1ecabdb5.js} +1 -1
  189. package/dist/.next/static/chunks/app/(application)/variables/create/{page-6c6076f3f253190d.js.map → page-d79d5c1c1ecabdb5.js.map} +1 -1
  190. package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/{page-a3fa477fead5609a.js → page-72cf3aa95776ab96.js} +1 -1
  191. package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/{page-a3fa477fead5609a.js.map → page-72cf3aa95776ab96.js.map} +1 -1
  192. package/dist/.next/static/chunks/app/(application)/variables/{page-ddeff54a8b19bdbe.js → page-67864b471b48c950.js} +2 -2
  193. package/dist/.next/static/chunks/app/(application)/variables/{page-ddeff54a8b19bdbe.js.map → page-67864b471b48c950.js.map} +1 -1
  194. package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/{page-ed6d136e7ee3a591.js → page-208b4c9cc64abf2e.js} +1 -1
  195. package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/{page-ed6d136e7ee3a591.js.map → page-208b4c9cc64abf2e.js.map} +1 -1
  196. package/dist/.next/static/chunks/app/(application)/workflows/page-5b1ffc7c5012fdf6.js +2 -0
  197. package/dist/.next/static/chunks/app/(application)/workflows/page-5b1ffc7c5012fdf6.js.map +1 -0
  198. package/dist/.next/static/css/006966ab2edd0ebc.css +4 -0
  199. package/dist/.next/static/css/006966ab2edd0ebc.css.map +1 -0
  200. package/dist/.next/static/css/e3f2a16ab7676b05.css.map +1 -1
  201. package/dist/package.json +4 -1
  202. package/package.json +1 -1
  203. package/dist/.next/server/chunks/3743.js +0 -1
  204. package/dist/.next/server/chunks/4375.js +0 -1
  205. package/dist/.next/server/chunks/4680.js +0 -1
  206. package/dist/.next/server/chunks/7203.js +0 -5
  207. package/dist/.next/server/chunks/7598.js +0 -5
  208. package/dist/.next/server/chunks/8806.js +0 -1
  209. package/dist/.next/static/chunks/1957-670ddf66742d95f2.js +0 -2
  210. package/dist/.next/static/chunks/1957-670ddf66742d95f2.js.map +0 -1
  211. package/dist/.next/static/chunks/3397-5a704b2e12e9e883.js +0 -2
  212. package/dist/.next/static/chunks/3397-5a704b2e12e9e883.js.map +0 -1
  213. package/dist/.next/static/chunks/3832-10b779e2f89f162f.js +0 -2
  214. package/dist/.next/static/chunks/3832-10b779e2f89f162f.js.map +0 -1
  215. package/dist/.next/static/chunks/3998-c1c5bec61ce07357.js +0 -2
  216. package/dist/.next/static/chunks/3998-c1c5bec61ce07357.js.map +0 -1
  217. package/dist/.next/static/chunks/428-61741966c36f4f72.js +0 -2
  218. package/dist/.next/static/chunks/428-61741966c36f4f72.js.map +0 -1
  219. package/dist/.next/static/chunks/5585-4f0c084850210a82.js +0 -2
  220. package/dist/.next/static/chunks/5585-4f0c084850210a82.js.map +0 -1
  221. package/dist/.next/static/chunks/5615-042f927b657e6db1.js +0 -41
  222. package/dist/.next/static/chunks/5615-042f927b657e6db1.js.map +0 -1
  223. package/dist/.next/static/chunks/5978-f3b8475a2d9f9299.js +0 -2
  224. package/dist/.next/static/chunks/5978-f3b8475a2d9f9299.js.map +0 -1
  225. package/dist/.next/static/chunks/6242-c1c2f1479529e9d4.js +0 -2
  226. package/dist/.next/static/chunks/6242-c1c2f1479529e9d4.js.map +0 -1
  227. package/dist/.next/static/chunks/6373-fc4799cc7a13474a.js +0 -2
  228. package/dist/.next/static/chunks/6373-fc4799cc7a13474a.js.map +0 -1
  229. package/dist/.next/static/chunks/7398-c6de1642586049cd.js +0 -2
  230. package/dist/.next/static/chunks/7398-c6de1642586049cd.js.map +0 -1
  231. package/dist/.next/static/chunks/7564-44a20b31206685e1.js.map +0 -1
  232. package/dist/.next/static/chunks/79-1d568f3c4cd45bd4.js +0 -2
  233. package/dist/.next/static/chunks/79-1d568f3c4cd45bd4.js.map +0 -1
  234. package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-b66390eb4a95ac1a.js +0 -2
  235. package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-b66390eb4a95ac1a.js.map +0 -1
  236. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-3807a8bc2ae87548.js.map +0 -1
  237. package/dist/.next/static/chunks/app/(application)/dashboard/page-85d3f8d2bd28ae4b.js +0 -2
  238. package/dist/.next/static/chunks/app/(application)/dashboard/page-85d3f8d2bd28ae4b.js.map +0 -1
  239. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-822dad4cb57f62e2.js +0 -2
  240. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-822dad4cb57f62e2.js.map +0 -1
  241. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-3efd7701534078ea.js +0 -2
  242. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-3efd7701534078ea.js.map +0 -1
  243. package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-b6a3cb8435be3ade.js +0 -2
  244. package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-b6a3cb8435be3ade.js.map +0 -1
  245. package/dist/.next/static/chunks/app/(application)/projects/[project]/page-19382bb263f85fda.js +0 -2
  246. package/dist/.next/static/chunks/app/(application)/projects/[project]/page-19382bb263f85fda.js.map +0 -1
  247. package/dist/.next/static/chunks/app/(application)/roles/page-acd9ef282bc53557.js +0 -2
  248. package/dist/.next/static/chunks/app/(application)/roles/page-acd9ef282bc53557.js.map +0 -1
  249. package/dist/.next/static/chunks/app/(application)/workflows/page-38488c44d89b32f4.js +0 -2
  250. package/dist/.next/static/chunks/app/(application)/workflows/page-38488c44d89b32f4.js.map +0 -1
  251. package/dist/.next/static/css/a7092ddec8ffd4fb.css +0 -4
  252. package/dist/.next/static/css/a7092ddec8ffd4fb.css.map +0 -1
  253. /package/dist/.next/static/{HHwzgh0RLIMeodnSs4vIv → soJPoIxCmlpJ75t9n-Q9V}/_buildManifest.js +0 -0
  254. /package/dist/.next/static/{HHwzgh0RLIMeodnSs4vIv → soJPoIxCmlpJ75t9n-Q9V}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- "use strict";exports.id=8806,exports.ids=[8806],exports.modules={51602:(e,s,t)=>{t.d(s,{d:()=>x,f:()=>h});var r=t(10326),a=t(90772),n=t(77863),l=t(32933),i=t(43810),o=t(17577),d=t(54390),c=t(35057),m=t(48818);let u=(0,o.createContext)({code:""}),x=({code:e,language:s,showLineNumbers:t=!1,className:a,children:l,...i})=>r.jsx(u.Provider,{value:{code:e},children:r.jsx("div",{className:(0,n.cn)("relative w-full overflow-hidden rounded-md border bg-background text-foreground",a),...i,children:(0,r.jsxs)("div",{className:"relative",children:[r.jsx(d.Z,{className:"overflow-hidden dark:hidden",codeTagProps:{className:"font-mono text-sm"},customStyle:{margin:0,padding:"1rem",fontSize:"0.875rem",background:"hsl(var(--background))",color:"hsl(var(--foreground))"},language:s,lineNumberStyle:{color:"hsl(var(--muted-foreground))",paddingRight:"1rem",minWidth:"2.5rem"},showLineNumbers:t,style:c.Z,children:e}),r.jsx(d.Z,{className:"hidden overflow-hidden dark:block",codeTagProps:{className:"font-mono text-sm"},customStyle:{margin:0,padding:"1rem",fontSize:"0.875rem",background:"hsl(var(--background))",color:"hsl(var(--foreground))"},language:s,lineNumberStyle:{color:"hsl(var(--muted-foreground))",paddingRight:"1rem",minWidth:"2.5rem"},showLineNumbers:t,style:m.Z,children:e}),l&&r.jsx("div",{className:"absolute top-2 right-2 flex items-center gap-2",children:l})]})})}),h=({onCopy:e,onError:s,timeout:t=2e3,children:d,className:c,...m})=>{let[x,h]=(0,o.useState)(!1),{code:p}=(0,o.useContext)(u),f=async()=>{s?.(Error("Clipboard API not available"))},g=x?l.Z:i.Z;return r.jsx(a.z,{className:(0,n.cn)("shrink-0",c),onClick:f,size:"icon",variant:"ghost",...m,children:d??r.jsx(g,{size:14})})}},15728:(e,s,t)=>{t.d(s,{iG:()=>i,ri:()=>l});var r=t(10326);t(90772);var a=t(77863);t(17577);var n=t(30778);let l=({className:e,...s})=>r.jsx(n.h,{className:(0,a.cn)("relative flex-1 overflow-y-auto",e),initial:"smooth",resize:"smooth",role:"log",...s}),i=({className:e,...s})=>r.jsx(n.h.Content,{className:(0,a.cn)("p-4",e),...s})},36931:(e,s,t)=>{t.d(s,{H:()=>x});var r=t(10326),a=t(77863),n=t(17577),l=t(16476),i=t(79283),o=t(70285),d=t(7833),c=t(51602);t(32289);let m=(0,t(39499).Z)(l.UG),u={ol:({node:e,children:s,className:t,...n})=>r.jsx("ol",{className:(0,a.cn)("ml-4 list-outside list-decimal",t),...n,children:s}),li:({node:e,children:s,className:t,...n})=>r.jsx("li",{className:(0,a.cn)("py-1",t),...n,children:s}),ul:({node:e,children:s,className:t,...n})=>r.jsx("ul",{className:(0,a.cn)("ml-4 list-outside list-disc",t),...n,children:s}),hr:({node:e,className:s,...t})=>r.jsx("hr",{className:(0,a.cn)("my-6 border-border",s),...t}),strong:({node:e,children:s,className:t,...n})=>r.jsx("span",{className:(0,a.cn)("font-semibold",t),...n,children:s}),a:({node:e,children:s,className:t,...n})=>r.jsx("a",{className:(0,a.cn)("font-medium text-primary underline",t),rel:"noreferrer",target:"_blank",...n,children:s}),h1:({node:e,children:s,className:t,...n})=>r.jsx("h1",{className:(0,a.cn)("mt-6 mb-2 font-semibold text-3xl",t),...n,children:s}),h2:({node:e,children:s,className:t,...n})=>r.jsx("h2",{className:(0,a.cn)("mt-6 mb-2 font-semibold text-2xl",t),...n,children:s}),h3:({node:e,children:s,className:t,...n})=>r.jsx("h3",{className:(0,a.cn)("mt-6 mb-2 font-semibold text-xl",t),...n,children:s}),h4:({node:e,children:s,className:t,...n})=>r.jsx("h4",{className:(0,a.cn)("mt-6 mb-2 font-semibold text-lg",t),...n,children:s}),h5:({node:e,children:s,className:t,...n})=>r.jsx("h5",{className:(0,a.cn)("mt-6 mb-2 font-semibold text-base",t),...n,children:s}),h6:({node:e,children:s,className:t,...n})=>r.jsx("h6",{className:(0,a.cn)("mt-6 mb-2 font-semibold text-sm",t),...n,children:s}),table:({node:e,children:s,className:t,...n})=>r.jsx("div",{className:"my-4 overflow-x-auto",children:r.jsx("table",{className:(0,a.cn)("w-full border-collapse border border-border",t),...n,children:s})}),thead:({node:e,children:s,className:t,...n})=>r.jsx("thead",{className:(0,a.cn)("bg-muted/50",t),...n,children:s}),tbody:({node:e,children:s,className:t,...n})=>r.jsx("tbody",{className:(0,a.cn)("divide-y divide-border",t),...n,children:s}),tr:({node:e,children:s,className:t,...n})=>r.jsx("tr",{className:(0,a.cn)("border-border border-b",t),...n,children:s}),th:({node:e,children:s,className:t,...n})=>r.jsx("th",{className:(0,a.cn)("px-4 py-2 text-left font-semibold text-sm",t),...n,children:s}),td:({node:e,children:s,className:t,...n})=>r.jsx("td",{className:(0,a.cn)("px-4 py-2 text-sm",t),...n,children:s}),blockquote:({node:e,children:s,className:t,...n})=>r.jsx("blockquote",{className:(0,a.cn)("my-4 border-muted-foreground/30 border-l-4 pl-4 text-muted-foreground italic",t),...n,children:s}),code:({node:e,className:s,...t})=>e?.position?.start.line!==e?.position?.end.line?r.jsx("code",{className:s,...t}):r.jsx("code",{className:(0,a.cn)("rounded bg-muted px-1.5 py-0.5 font-mono text-sm",s),...t}),pre:({node:e,className:s,children:t})=>{let l="javascript";"string"==typeof e?.properties?.className&&(l=e.properties.className.replace("language-",""));let i="";return(0,n.isValidElement)(t)&&t.props&&"string"==typeof t.props.children?i=t.props.children:"string"==typeof t&&(i=t),r.jsx(c.d,{className:(0,a.cn)("my-4 h-auto",s),code:i,language:l,children:r.jsx(c.f,{onCopy:()=>console.log("Copied code to clipboard"),onError:()=>console.error("Failed to copy code to clipboard")})})}},x=(0,n.memo)(({className:e,options:s,children:t,allowedImagePrefixes:n,allowedLinkPrefixes:l,defaultOrigin:c,parseIncompleteMarkdown:x=!0,...h})=>{let p="string"==typeof t&&x?function(e){if(!e||"string"!=typeof e)return e;let s=e,t=s.match(/(!?\[)([^\]]*?)$/);if(t){let e=s.lastIndexOf(t[1]);s=s.substring(0,e)}if(s.match(/(\*\*)([^*]*?)$/)&&(s.match(/\*\*/g)||[]).length%2==1&&(s=`${s}**`),s.match(/(__)([^_]*?)$/)&&(s.match(/__/g)||[]).length%2==1&&(s=`${s}__`),s.match(/(\*)([^*]*?)$/)&&s.split("").reduce((e,t,r)=>{if("*"===t){let t=s[r-1],a=s[r+1];if("*"!==t&&"*"!==a)return e+1}return e},0)%2==1&&(s=`${s}*`),s.match(/(_)([^_]*?)$/)&&s.split("").reduce((e,t,r)=>{if("_"===t){let t=s[r-1],a=s[r+1];if("_"!==t&&"_"!==a)return e+1}return e},0)%2==1&&(s=`${s}_`),s.match(/(`)([^`]*?)$/)&&(s.includes("```"),(s.match(/```[\s\S]*?```/g)||[]).length,(s.match(/```/g)||[]).length%2!=1)){let e=0;for(let t=0;t<s.length;t++)if("`"===s[t]){let r="```"===s.substring(t,t+3),a=t>0&&"```"===s.substring(t-1,t+2),n=t>1&&"```"===s.substring(t-2,t+1);!(r||a||n)&&e++}e%2==1&&(s=`${s}\``)}return s.match(/(~~)([^~]*?)$/)&&(s.match(/~~/g)||[]).length%2==1&&(s=`${s}~~`),s}(t):t;return r.jsx("div",{className:(0,a.cn)("size-full [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",e),...h,children:r.jsx(m,{allowedImagePrefixes:n??["*"],allowedLinkPrefixes:l??["*"],components:u,defaultOrigin:c,rehypePlugins:[i.Z],remarkPlugins:[o.Z,d.Z],...s,children:p})})},(e,s)=>e.children===s.children);x.displayName="Response"},98131:(e,s,t)=>{t.d(s,{K:()=>_});var r=t(10326);t(28758);var a=t(77863);let n=({className:e,from:s,...t})=>r.jsx("div",{className:(0,a.cn)("group flex w-full items-end justify-end gap-2 py-4","user"===s?"is-user flex-row-reverse justify-end":"is-assistant flex-row-reverse justify-end","[&>div]:max-w-[80%]",e),...t}),l=({children:e,className:s,...t})=>r.jsx("div",{className:(0,a.cn)("flex flex-col gap-2 overflow-hidden rounded-lg py-3 text-foreground text-sm","group-[.is-user]:bg-secondary group-[.is-user]:text-primary-foreground group-[.is-user]:px-4","group-[.is-assistant]:bg-transparent group-[.is-assistant]:text-foreground",s),...t,children:r.jsx("div",{className:"is-user:dark",children:e})});var i=t(90772),o=t(68232);let d=({className:e,children:s,...t})=>r.jsx("div",{className:(0,a.cn)("flex items-center gap-1",e),...t,children:s}),c=({tooltip:e,children:s,label:t,className:n,variant:l="ghost",size:d="sm",...c})=>{let m=(0,r.jsxs)(i.z,{className:(0,a.cn)("size-9 p-1.5 text-muted-foreground hover:text-foreground",n),size:d,type:"button",variant:l,...c,children:[s,r.jsx("span",{className:"sr-only",children:t||e})]});return e?r.jsx(o.pn,{children:(0,r.jsxs)(o.u,{children:[r.jsx(o.aJ,{asChild:!0,children:m}),r.jsx(o._v,{children:r.jsx("p",{children:e})})]})}):m};var m=t(36931),u=t(52067),x=t(24295),h=t(98360),p=t(941),f=t(17577);let g=(0,f.createContext)(null),j=()=>{let e=(0,f.useContext)(g);if(!e)throw Error("Reasoning components must be used within Reasoning");return e},b=(0,f.memo)(({className:e,isStreaming:s=!1,open:t,defaultOpen:n=!1,onOpenChange:l,duration:i,children:o,...d})=>{let[c,m]=(0,u.T)({prop:t,defaultProp:n,onChange:l}),[h,p]=(0,u.T)({prop:i,defaultProp:0}),[j,b]=(0,f.useState)(!1),[N,v]=(0,f.useState)(null);return(0,f.useEffect)(()=>{s?null===N&&v(Date.now()):null!==N&&(p(Math.round((Date.now()-N)/1e3)),v(null))},[s,N,p]),(0,f.useEffect)(()=>{if(s&&!c)m(!0);else if(!s&&c&&!n&&!j){let e=setTimeout(()=>{m(!1),b(!0)},1e3);return()=>clearTimeout(e)}},[s,c,n,m,j]),r.jsx(g.Provider,{value:{isStreaming:s,isOpen:c,setIsOpen:m,duration:h},children:r.jsx(x.zF,{className:(0,a.cn)("not-prose mb-4",e),onOpenChange:e=>{m(e)},open:c,...d,children:o})})}),N=(0,f.memo)(({className:e,title:s="Reasoning",children:t,...n})=>{let{isStreaming:l,isOpen:i,duration:o}=j();return r.jsx(x.wy,{className:(0,a.cn)("flex items-center gap-2 text-muted-foreground text-sm",e),...n,children:t??(0,r.jsxs)(r.Fragment,{children:[r.jsx(h.Z,{className:"size-4"}),l||0===o?r.jsx("p",{children:"Thinking..."}):(0,r.jsxs)("p",{children:["Thought for ",o," seconds"]}),r.jsx(p.Z,{className:(0,a.cn)("size-4 text-muted-foreground transition-transform",i?"rotate-180":"rotate-0")})]})})}),v=(0,f.memo)(({className:e,children:s,...t})=>r.jsx(x.Fw,{className:(0,a.cn)("mt-4 text-sm","data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",e),...t,children:r.jsx(m.H,{className:"grid gap-2",children:s})}));b.displayName="Reasoning",N.displayName="ReasoningTrigger",v.displayName="ReasoningContent";var y=t(71876);let w=({className:e,...s})=>r.jsx(x.zF,{className:(0,a.cn)("not-prose mb-4 text-primary text-xs",e),...s}),k=({className:e,count:s,children:t,...a})=>r.jsx(x.wy,{className:"flex items-center gap-2",...a,children:t??(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("p",{className:"font-medium",children:["Used ",s," sources"]}),r.jsx(p.Z,{className:"h-4 w-4"})]})}),C=({className:e,...s})=>r.jsx(x.Fw,{className:(0,a.cn)("mt-3 flex w-fit flex-col gap-2","data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",e),...s}),$=({href:e,title:s,children:t,...a})=>r.jsx("a",{className:"flex items-center gap-2",href:e,rel:"noreferrer",target:"_blank",...a,children:t??(0,r.jsxs)(r.Fragment,{children:[r.jsx(y.Z,{className:"h-4 w-4"}),r.jsx("span",{className:"block font-medium",children:s})]})});var T=t(91468),z=t(43810),F=t(46226),Z=t(34789);function _({messages:e,status:s="idle",className:t,showActions:i=!0,onRegenerate:o,onAddToolResult:u,UntypedToolPartComponent:x,addToContext:h,writeAccess:p=!0,config:f}){let{toast:g}=(0,Z.pm)();return r.jsx(r.Fragment,{children:e?.map((j,y)=>{let Z=j.metadata;return e.length,r.jsx(n,{className:a.cn("assistant"===j.role&&(f?.customAssistantClassnames?f?.customAssistantClassnames:""),0===y&&(f?.marginTopFirstMessage?f?.marginTopFirstMessage:"mt-12"),t),from:j.role,children:r.jsxs(l,{children:[j.parts.map((e,t)=>{if("step-start"===e.type)return null;if("text"===e.type)return r.jsx("div",{children:r.jsx(m.H,{className:"chat-response-container",children:e.text})},`${j.id}-${t}`);if("tool-askForConfirmation"===e.type&&u){let s=e.toolCallId;switch(e.state){case"input-streaming":return r.jsx("div",{children:"Loading confirmation request..."},s);case"input-available":return r.jsxs("div",{children:[e.input.message,r.jsxs("div",{children:[r.jsx("button",{onClick:()=>u({tool:"askForConfirmation",toolCallId:s,output:"Yes, confirmed"}),children:"Yes"}),r.jsx("button",{onClick:()=>u({tool:"askForConfirmation",toolCallId:s,output:"No, denied"}),children:"No"})]})]},s);case"output-available":return r.jsxs("div",{children:["Tool call allowed: ",e.output]},s);case"output-error":return r.jsxs("div",{children:["Error: ",e.errorText]},s)}}if((e.type.startsWith("tool-")||"dynamic-tool"===e.type)&&x&&h){let s=e.toolCallId;return r.jsx(x,{untypedToolPart:e,callId:s,addToContext:h},s)}return"file"===e.type&&e.mediaType?.startsWith("image/")?r.jsx(F.default,{src:e.url,width:300,height:300,alt:"Generated image"},`${j.id}-${t}`):"source-url"===e.type?r.jsxs(w,{children:[r.jsx(k,{count:j.parts.filter(e=>"source-url"===e.type).length}),r.jsx(C,{children:j.parts.map((e,s)=>{if("source-url"===e.type)return r.jsx($,{href:e.url,title:e.title},`${j.id}-${s}`)})},`${j.id}`)]},`${j.id}-${t}`):"reasoning"===e.type?r.jsxs(b,{className:"w-full",isStreaming:"streaming"===s,children:[r.jsx(N,{}),r.jsx(v,{children:e.text})]},`${j.id}-${t}`):null}),i&&"assistant"===j.role&&r.jsxs(d,{className:"mt-2",children:[o&&r.jsx(c,{onClick:()=>o(),label:"Retry",disabled:!p,children:r.jsx(T.Z,{className:"size-3"})}),r.jsx(c,{onClick:()=>{navigator.clipboard.writeText(j.parts.map(e=>e?.text||"").join("\n")),g({title:"Copied message",description:"The message was copied to your clipboard."})},label:"Copy",children:r.jsx(z.Z,{className:"size-3"})}),Z?.totalTokens&&r.jsxs("small",{className:"text-muted-foreground",children:[Intl.NumberFormat("en-US").format(Z?.totalTokens)," tokens"]})]})]})},j.id)})})}},24295:(e,s,t)=>{t.d(s,{Fw:()=>l,wy:()=>n,zF:()=>a});var r=t(35663);let a=r.fC,n=r.wy,l=r.Fw},79210:(e,s,t)=>{t.d(s,{SP:()=>d,dr:()=>o,mQ:()=>i,nU:()=>c});var r=t(10326),a=t(28407),n=t(17577),l=t(77863);let i=a.fC,o=n.forwardRef(({className:e,...s},t)=>r.jsx(a.aV,{ref:t,className:(0,l.cn)("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",e),...s}));o.displayName=a.aV.displayName;let d=n.forwardRef(({className:e,...s},t)=>r.jsx(a.xz,{ref:t,className:(0,l.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",e),...s}));d.displayName=a.xz.displayName;let c=n.forwardRef(({className:e,...s},t)=>r.jsx(a.VY,{ref:t,className:(0,l.cn)("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...s}));c.displayName=a.VY.displayName}};
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1957],{53245:function(e,s,t){t.d(s,{d:function(){return h},f:function(){return x}});var a=t(57437),l=t(62869),r=t(94508),n=t(30401),i=t(78867),d=t(2265),o=t(34996),c=t(1479),m=t(9880);let u=(0,d.createContext)({code:""}),h=e=>{let{code:s,language:t,showLineNumbers:l=!1,className:n,children:i,...d}=e;return(0,a.jsx)(u.Provider,{value:{code:s},children:(0,a.jsx)("div",{className:(0,r.cn)("relative w-full overflow-hidden rounded-md border bg-background text-foreground",n),...d,children:(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)(o.Z,{className:"overflow-hidden dark:hidden",codeTagProps:{className:"font-mono text-sm"},customStyle:{margin:0,padding:"1rem",fontSize:"0.875rem",background:"hsl(var(--background))",color:"hsl(var(--foreground))"},language:t,lineNumberStyle:{color:"hsl(var(--muted-foreground))",paddingRight:"1rem",minWidth:"2.5rem"},showLineNumbers:l,style:c.Z,children:s}),(0,a.jsx)(o.Z,{className:"hidden overflow-hidden dark:block",codeTagProps:{className:"font-mono text-sm"},customStyle:{margin:0,padding:"1rem",fontSize:"0.875rem",background:"hsl(var(--background))",color:"hsl(var(--foreground))"},language:t,lineNumberStyle:{color:"hsl(var(--muted-foreground))",paddingRight:"1rem",minWidth:"2.5rem"},showLineNumbers:l,style:m.Z,children:s}),i&&(0,a.jsx)("div",{className:"absolute top-2 right-2 flex items-center gap-2",children:i})]})})})},x=e=>{let{onCopy:s,onError:t,timeout:o=2e3,children:c,className:m,...h}=e,[x,p]=(0,d.useState)(!1),{code:f}=(0,d.useContext)(u),v=async()=>{if(!navigator.clipboard.writeText){null==t||t(Error("Clipboard API not available"));return}try{await navigator.clipboard.writeText(f),p(!0),null==s||s(),setTimeout(()=>p(!1),o)}catch(e){null==t||t(e)}},g=x?n.Z:i.Z;return(0,a.jsx)(l.z,{className:(0,r.cn)("shrink-0",m),onClick:v,size:"icon",variant:"ghost",...h,children:null!=c?c:(0,a.jsx)(g,{size:14})})}},35629:function(e,s,t){t.d(s,{H:function(){return h}});var a=t(57437),l=t(94508),r=t(2265),n=t(86816),i=t(67245),d=t(58146),o=t(85020),c=t(53245);t(2446);let m=(0,t(86589).Z)(n.UG),u={ol:e=>{let{node:s,children:t,className:r,...n}=e;return(0,a.jsx)("ol",{className:(0,l.cn)("ml-4 list-outside list-decimal",r),...n,children:t})},li:e=>{let{node:s,children:t,className:r,...n}=e;return(0,a.jsx)("li",{className:(0,l.cn)("py-1",r),...n,children:t})},ul:e=>{let{node:s,children:t,className:r,...n}=e;return(0,a.jsx)("ul",{className:(0,l.cn)("ml-4 list-outside list-disc",r),...n,children:t})},hr:e=>{let{node:s,className:t,...r}=e;return(0,a.jsx)("hr",{className:(0,l.cn)("my-6 border-border",t),...r})},strong:e=>{let{node:s,children:t,className:r,...n}=e;return(0,a.jsx)("span",{className:(0,l.cn)("font-semibold",r),...n,children:t})},a:e=>{let{node:s,children:t,className:r,...n}=e;return(0,a.jsx)("a",{className:(0,l.cn)("font-medium text-primary underline",r),rel:"noreferrer",target:"_blank",...n,children:t})},h1:e=>{let{node:s,children:t,className:r,...n}=e;return(0,a.jsx)("h1",{className:(0,l.cn)("mt-6 mb-2 font-semibold text-3xl",r),...n,children:t})},h2:e=>{let{node:s,children:t,className:r,...n}=e;return(0,a.jsx)("h2",{className:(0,l.cn)("mt-6 mb-2 font-semibold text-2xl",r),...n,children:t})},h3:e=>{let{node:s,children:t,className:r,...n}=e;return(0,a.jsx)("h3",{className:(0,l.cn)("mt-6 mb-2 font-semibold text-xl",r),...n,children:t})},h4:e=>{let{node:s,children:t,className:r,...n}=e;return(0,a.jsx)("h4",{className:(0,l.cn)("mt-6 mb-2 font-semibold text-lg",r),...n,children:t})},h5:e=>{let{node:s,children:t,className:r,...n}=e;return(0,a.jsx)("h5",{className:(0,l.cn)("mt-6 mb-2 font-semibold text-base",r),...n,children:t})},h6:e=>{let{node:s,children:t,className:r,...n}=e;return(0,a.jsx)("h6",{className:(0,l.cn)("mt-6 mb-2 font-semibold text-sm",r),...n,children:t})},table:e=>{let{node:s,children:t,className:r,...n}=e;return(0,a.jsx)("div",{className:"my-4 overflow-x-auto",children:(0,a.jsx)("table",{className:(0,l.cn)("w-full border-collapse border border-border",r),...n,children:t})})},thead:e=>{let{node:s,children:t,className:r,...n}=e;return(0,a.jsx)("thead",{className:(0,l.cn)("bg-muted/50",r),...n,children:t})},tbody:e=>{let{node:s,children:t,className:r,...n}=e;return(0,a.jsx)("tbody",{className:(0,l.cn)("divide-y divide-border",r),...n,children:t})},tr:e=>{let{node:s,children:t,className:r,...n}=e;return(0,a.jsx)("tr",{className:(0,l.cn)("border-border border-b",r),...n,children:t})},th:e=>{let{node:s,children:t,className:r,...n}=e;return(0,a.jsx)("th",{className:(0,l.cn)("px-4 py-2 text-left font-semibold text-sm",r),...n,children:t})},td:e=>{let{node:s,children:t,className:r,...n}=e;return(0,a.jsx)("td",{className:(0,l.cn)("px-4 py-2 text-sm",r),...n,children:t})},blockquote:e=>{let{node:s,children:t,className:r,...n}=e;return(0,a.jsx)("blockquote",{className:(0,l.cn)("my-4 border-muted-foreground/30 border-l-4 pl-4 text-muted-foreground italic",r),...n,children:t})},code:e=>{var s,t;let{node:r,className:n,...i}=e;return(null==r?void 0:null===(s=r.position)||void 0===s?void 0:s.start.line)!==(null==r?void 0:null===(t=r.position)||void 0===t?void 0:t.end.line)?(0,a.jsx)("code",{className:n,...i}):(0,a.jsx)("code",{className:(0,l.cn)("rounded bg-muted px-1.5 py-0.5 font-mono text-sm",n),...i})},pre:e=>{var s;let{node:t,className:n,children:i}=e,d="javascript";"string"==typeof(null==t?void 0:null===(s=t.properties)||void 0===s?void 0:s.className)&&(d=t.properties.className.replace("language-",""));let o="";return(0,r.isValidElement)(i)&&i.props&&"string"==typeof i.props.children?o=i.props.children:"string"==typeof i&&(o=i),(0,a.jsx)(c.d,{className:(0,l.cn)("my-4 h-auto",n),code:o,language:d,children:(0,a.jsx)(c.f,{onCopy:()=>console.log("Copied code to clipboard"),onError:()=>console.error("Failed to copy code to clipboard")})})}},h=(0,r.memo)(e=>{let{className:s,options:t,children:r,allowedImagePrefixes:n,allowedLinkPrefixes:c,defaultOrigin:h,parseIncompleteMarkdown:x=!0,...p}=e,f="string"==typeof r&&x?function(e){if(!e||"string"!=typeof e)return e;let s=e,t=s.match(/(!?\[)([^\]]*?)$/);if(t){let e=s.lastIndexOf(t[1]);s=s.substring(0,e)}if(s.match(/(\*\*)([^*]*?)$/)&&(s.match(/\*\*/g)||[]).length%2==1&&(s="".concat(s,"**")),s.match(/(__)([^_]*?)$/)&&(s.match(/__/g)||[]).length%2==1&&(s="".concat(s,"__")),s.match(/(\*)([^*]*?)$/)&&s.split("").reduce((e,t,a)=>{if("*"===t){let t=s[a-1],l=s[a+1];if("*"!==t&&"*"!==l)return e+1}return e},0)%2==1&&(s="".concat(s,"*")),s.match(/(_)([^_]*?)$/)&&s.split("").reduce((e,t,a)=>{if("_"===t){let t=s[a-1],l=s[a+1];if("_"!==t&&"_"!==l)return e+1}return e},0)%2==1&&(s="".concat(s,"_")),s.match(/(`)([^`]*?)$/)&&(s.includes("```"),(s.match(/```[\s\S]*?```/g)||[]).length,(s.match(/```/g)||[]).length%2!=1)){let e=0;for(let t=0;t<s.length;t++)if("`"===s[t]){let a="```"===s.substring(t,t+3),l=t>0&&"```"===s.substring(t-1,t+2),r=t>1&&"```"===s.substring(t-2,t+1);!(a||l||r)&&e++}e%2==1&&(s="".concat(s,"`"))}return s.match(/(~~)([^~]*?)$/)&&(s.match(/~~/g)||[]).length%2==1&&(s="".concat(s,"~~")),s}(r):r;return(0,a.jsx)("div",{className:(0,l.cn)("size-full [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",s),...p,children:(0,a.jsx)(m,{allowedImagePrefixes:null!=n?n:["*"],allowedLinkPrefixes:null!=c?c:["*"],components:u,defaultOrigin:h,rehypePlugins:[i.Z],remarkPlugins:[d.Z,o.Z],...t,children:f})})},(e,s)=>e.children===s.children);h.displayName="Response"},8014:function(e,s,t){t.d(s,{P:function(){return S}});var a=t(57437),l=t(27689),r=t(2265),n=t(63251),i=t(7211),d=t(53647),o=t(66337),c=t(95805),m=t(98728),u=t(29202),h=t(14924),x=t(24156),p=t(30401),f=t(15863),v=t(18930),g=t(95186),j=t(26110),b=t(19378),N=t(94508),y=t(57054),w=t(23518),k=t(62869),C=t(26815);let _=[{value:"private",label:"Private",description:"Only you can see this agent",icon:o.Z},{value:"users",label:"Shared with Users",description:"Share with specific users",icon:c.Z},{value:"roles",label:"Shared with Roles",description:"Share with specific roles",icon:m.Z},{value:"public",label:"Public",description:"Anyone can see this agent",icon:u.Z},{value:"projects",label:"Projects",description:"Share with specific projects",icon:h.Z}];function S(e){var s,t;let{allowedModes:o,initialRightsMode:c,initialUsers:m,initialRoles:u,initialProjects:h,onChange:S}=e,[z,Z]=(0,r.useState)(c),[P,R]=(0,r.useState)(m||[]),[E,A]=(0,r.useState)(u||[]),[U,D]=(0,r.useState)([]),[V,Y]=(0,r.useState)(!1),[B,W]=(0,r.useState)([]),[I,M]=(0,r.useState)(""),[O,$]=(0,r.useState)(!1),[q,F]=(0,r.useState)(!1),L=(0,n.x)(),{data:Q,loading:T,refetch:G}=(0,i.aM)(l.fo,{variables:{page:1,limit:5,filters:B},skip:"users"!==z||!I}),H=(0,i.aM)(l.l1,{fetchPolicy:"cache-first",nextFetchPolicy:"network-only",variables:{page:1,limit:30,filters:[{type:{ne:"api"}}]}}),J=(0,r.useCallback)(e=>{M(e);let s=[...B,{type:{ne:"api"}}],t=s.find(e=>e.email);(null==t?void 0:t.email)?t.email.contains=e:s.push({email:{contains:e}}),W(s),G()},[B,G]),K=async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5;if(F(!0),!P||0===P.length){D([]),F(!1);return}let s=null==P?void 0:P.slice(0,e).map(async e=>{let{id:s,rights:t}=e;return{...(await L.query({query:l.L5,variables:{id:s}})).data.userById,rights:t}});D(await Promise.all(s)),F(!1)};(0,r.useEffect)(()=>{K(5)},[]),(0,r.useEffect)(()=>{console.log("selectedUsers",P),console.log("hydratedUsers",U),S(z,P,E,[])},[z,P,E]);let X=null==U?void 0:U.slice(0,5).filter(e=>!!(null==e?void 0:e.id)),ee=_;return(null==o?void 0:o.length)&&(ee=_.filter(e=>o.includes(e.value))),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(C._,{className:"text-sm font-medium",children:"Visibility & sharing"}),(0,a.jsxs)(y.J2,{open:V,onOpenChange:Y,children:[(0,a.jsx)(y.xo,{asChild:!0,children:(0,a.jsxs)(k.z,{variant:"outline",role:"combobox","aria-expanded":V,className:"w-full justify-between text-sm capitalize",children:[(null===(s=ee.find(e=>e.value===z))||void 0===s?void 0:s.label)||"Select visibility...",(0,a.jsx)(x.Z,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,a.jsx)(y.yk,{className:"w-full p-0",children:(0,a.jsxs)(w.mY,{children:[(0,a.jsx)(w.sZ,{placeholder:"Search options..."}),(0,a.jsxs)(w.e8,{children:[(0,a.jsx)(w.rb,{children:"No options found."}),(0,a.jsx)(w.fu,{children:ee.map(e=>(0,a.jsxs)(w.di,{onSelect:()=>{"users"!==e.value&&R([]),"roles"!==e.value&&A([]),Z(e.value),Y(!1)},children:[(0,a.jsx)(p.Z,{className:(0,N.cn)("mr-2 h-4 w-4",z===e.value?"opacity-100":"opacity-0")}),(0,a.jsxs)("div",{className:"flex flex-col",children:[(0,a.jsx)("span",{children:e.label}),(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:e.description})]})]},e.value))})]})]})})]})]}),"users"===z&&(0,a.jsx)("div",{className:"space-y-3 pt-3",children:(0,a.jsxs)("div",{children:[(0,a.jsx)(C._,{className:"text-sm font-medium",children:"Share with users"}),(0,a.jsx)("div",{className:"mt-2",children:(0,a.jsx)(g.I,{placeholder:"Search users by email...",value:I,onChange:e=>J(e.target.value),className:"text-sm"})}),T&&(0,a.jsxs)("div",{className:"mt-2 flex items-center justify-center py-4",children:[(0,a.jsx)(f.Z,{className:"h-4 w-4 animate-spin mr-2"}),(0,a.jsx)("span",{className:"text-sm text-muted-foreground",children:"Loading users..."})]}),!T&&Q&&(null===(t=Q.usersPagination)||void 0===t?void 0:t.items.length)>0&&(0,a.jsxs)("div",{className:"mt-2",children:[(0,a.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:"Search Results:"}),(0,a.jsx)("div",{className:"max-h-50 overflow-y-auto border rounded-lg",children:Q.usersPagination.items.filter(e=>!P.some(s=>s.id===e.id)).map(e=>(0,a.jsxs)("label",{className:"flex items-center space-x-2 p-2 hover:bg-muted/50 cursor-pointer",children:[(0,a.jsx)("input",{type:"checkbox",checked:P.some(s=>s.id===e.id),onChange:s=>{R(s=>[...s,{id:e.id,rights:"read"}]),D(s=>[...s,{...e,rights:"read"}])}}),(0,a.jsx)("span",{className:"text-sm",children:e.email})]},e.id))}),(0,a.jsxs)("div",{className:"text-xs text-muted-foreground mt-2",children:[(0,a.jsx)("span",{className:"font-medium",children:"Note:"})," Only the first 5 users are shown, use the Search bar to find more users."]})]}),!T&&I&&Q&&0===Q.usersPagination.items.length&&(0,a.jsx)("div",{className:"mt-2 text-center py-4",children:(0,a.jsx)("span",{className:"text-sm text-muted-foreground",children:"No users found"})}),(null==X?void 0:X.length)>0?(0,a.jsxs)("div",{className:"mt-2",children:[(0,a.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:"Selected Users:"}),(0,a.jsxs)("div",{className:"space-y-1",children:[X.map(e=>(0,a.jsxs)("div",{className:"flex items-center gap-2 border p-2 rounded-lg text-sm",children:[(0,a.jsx)("span",{className:"flex-1 pl-2",children:e.email}),(0,a.jsxs)(d.Ph,{value:e.rights,onValueChange:s=>{R(t=>t.map(t=>t.id===e.id?{...t,rights:s}:t)),D(t=>t.map(t=>t.id===e.id?{...t,rights:s}:t))},children:[(0,a.jsx)(d.i4,{className:"h-6 w-20 text-xs",children:(0,a.jsx)(d.ki,{})}),(0,a.jsxs)(d.Bw,{children:[(0,a.jsx)(d.Ql,{value:"read",children:"Read"}),(0,a.jsx)(d.Ql,{value:"write",children:"Write"})]})]}),(0,a.jsx)(k.z,{size:"sm",variant:"ghost",className:"h-5 w-5 p-0 hover:bg-blue-100",onClick:()=>{R(s=>s.filter(s=>s.id!==e.id)),D(s=>s.filter(s=>s.id!==e.id))},children:(0,a.jsx)(v.Z,{className:"w-3 h-3"})})]},e.id)),P&&P.length>5&&(0,a.jsxs)(k.z,{variant:"link",type:"button",className:"h-auto p-0 text-blue-600 hover:text-blue-800 text-xs",onClick:()=>{K(50),$(!0)},children:["+ ",P.length-5," more users"]})]})]}):(0,a.jsx)("div",{className:"mt-2 text-center py-4",children:(0,a.jsx)("span",{className:"text-sm text-muted-foreground",children:"No users selected."})})]})}),"roles"===z&&(0,a.jsx)("div",{className:"space-y-3",children:(0,a.jsxs)("div",{children:[(0,a.jsxs)(C._,{className:"text-sm font-medium",children:["Share with roles (",(null==E?void 0:E.length)||0,")"]}),(0,a.jsxs)("div",{className:"mt-2",children:[(0,a.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:"Available Roles"}),H.loading&&(0,a.jsxs)("div",{className:"flex items-center justify-center py-4 border rounded-lg",children:[(0,a.jsx)(f.Z,{className:"h-4 w-4 animate-spin mr-2"}),(0,a.jsx)("span",{className:"text-sm text-muted-foreground",children:"Loading roles..."})]}),!H.loading&&H.data&&(0,a.jsx)("div",{className:"max-h-24 overflow-y-auto border rounded-lg",children:H.data.rolesPagination.items.map(e=>(0,a.jsxs)("label",{className:"flex items-center space-x-2 p-2 hover:bg-muted/50 cursor-pointer",children:[(0,a.jsx)("input",{type:"checkbox",checked:E.some(s=>s.id===e.id),onChange:s=>{s.target.checked?A(s=>[...s,{id:e.id,rights:"read"}]):A(s=>s.filter(s=>s.id!==e.id))}}),(0,a.jsx)("span",{className:"text-sm capitalize",children:e.name})]},e.id))})]}),E.length>0&&H.data&&(0,a.jsxs)("div",{className:"mt-2",children:[(0,a.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:"Selected Roles:"}),(0,a.jsx)("div",{className:"space-y-1",children:E.map(e=>{let s=H.data.rolesPagination.items.find(s=>s.id===e.id);return(0,a.jsxs)("div",{className:"flex items-center gap-2 border p-2 rounded-lg text-sm",children:[(0,a.jsx)("span",{className:"flex-1 pl-2 capitalize",children:null==s?void 0:s.name}),(0,a.jsxs)(d.Ph,{value:e.rights,onValueChange:s=>{A(t=>t.map(t=>t.id===e.id?{...t,rights:s}:t))},children:[(0,a.jsx)(d.i4,{className:"h-6 text-xs w-20 border-none",children:(0,a.jsx)(d.ki,{})}),(0,a.jsxs)(d.Bw,{children:[(0,a.jsx)(d.Ql,{value:"read",children:(0,a.jsx)("span",{className:"pr-7",children:"Read"})}),(0,a.jsx)(d.Ql,{value:"write",children:(0,a.jsx)("span",{className:"pr-7",children:"Write"})})]})]}),(0,a.jsx)(k.z,{size:"sm",variant:"ghost",className:"h-5 w-5 p-0 hover:bg-blue-100",onClick:()=>{A(s=>s.filter(s=>s.id!==e.id))},children:(0,a.jsx)(v.Z,{className:"w-3 h-3"})})]},e.id)})})]})]})}),(0,a.jsx)(j.Vq,{open:O,onOpenChange:$,children:(0,a.jsxs)(j.cZ,{className:"sm:max-w-2xl max-h-[85vh] flex flex-col",children:[(0,a.jsxs)(j.fK,{children:[(0,a.jsxs)(j.$N,{children:["All Selected Users (",(null==P?void 0:P.length)||0,")"]}),(0,a.jsx)(j.Be,{children:"View and manage all selected users and their permissions"})]}),(0,a.jsxs)(b.x,{className:"flex-1 pr-4",children:[q&&(0,a.jsxs)("div",{className:"flex items-center justify-center py-8",children:[(0,a.jsx)(f.Z,{className:"h-6 w-6 animate-spin mr-2"}),(0,a.jsx)("span",{className:"text-sm text-muted-foreground",children:"Loading users..."})]}),!q&&U.length>0&&(0,a.jsx)("div",{className:"space-y-2",children:U.map(e=>(0,a.jsxs)("div",{className:"flex items-center gap-3 border p-3 rounded-lg",children:[(0,a.jsx)("span",{className:"flex-1",children:e.email}),(0,a.jsxs)(d.Ph,{value:e.rights,onValueChange:s=>{R(t=>t.map(t=>t.id===e.id?{...t,rights:s}:t)),D(t=>t.map(t=>t.id===e.id?{...t,rights:s}:t))},children:[(0,a.jsx)(d.i4,{className:"w-24",children:(0,a.jsx)(d.ki,{})}),(0,a.jsxs)(d.Bw,{children:[(0,a.jsx)(d.Ql,{value:"read",children:"Read"}),(0,a.jsx)(d.Ql,{value:"write",children:"Write"})]})]}),(0,a.jsx)(k.z,{size:"sm",variant:"ghost",className:"h-8 w-8 p-0 hover:bg-destructive/10",onClick:()=>{R(s=>s.filter(s=>s.id!==e.id)),D(s=>s.filter(s=>s.id!==e.id))},children:(0,a.jsx)(v.Z,{className:"w-4 h-4"})})]},e.id))}),!q&&0===U.length&&(0,a.jsx)("div",{className:"text-center py-8",children:(0,a.jsx)("span",{className:"text-sm text-muted-foreground",children:"No users selected"})})]})]})})]})}},27699:function(e,s,t){t.d(s,{x:function(){return N}});var a=t(57437),l=t(2265),r=t(12199),n=t(13832),i=t(27689),d=t(26110),o=t(62869),c=t(95186),m=t(76818),u=t(26815),h=t(40875),x=t(88893),p=t(18930),f=t(77992),v=t(94508),g=t(8014),j=t(12339),b=t(35629);function N(e){var s,t,N,y,w,k;let{isOpen:C,onClose:_,messages:S,sessionTitle:z,existingWorkflow:Z,isReadOnly:P=!1}=e,{user:R}=(0,l.useContext)(n.S),{toast:E}=(0,f.pm)(),[A,U]=(0,l.useState)({rights_mode:(null==Z?void 0:Z.rights_mode)||"private",users:(null==Z?void 0:null===(s=Z.RBAC)||void 0===s?void 0:s.users)||[],roles:(null==Z?void 0:null===(t=Z.RBAC)||void 0===t?void 0:t.roles)||[],projects:(null==Z?void 0:null===(N=Z.RBAC)||void 0===N?void 0:N.projects)||[]}),D=!!Z,[V,Y]=(0,l.useState)((null==Z?void 0:Z.name)||""),[B,W]=(0,l.useState)((null==Z?void 0:Z.description)||""),[I,M]=(0,l.useState)((null==Z?void 0:Z.variables)||[]),[O,$]=(0,l.useState)((null==Z?void 0:Z.steps_json)||[]),[q,F]=(0,l.useState)(!1),[L,Q]=(0,l.useState)("setup"),[T,G]=(0,l.useState)(!1),[H,J]=(0,l.useState)(null),[K,X]=(0,l.useState)(""),[ee]=(0,r.D)(i.B_),[es]=(0,r.D)(i._J);l.useEffect(()=>{if(S.length>0){let e=[];S.forEach((s,t)=>{let a=s.content||(s.parts?s.parts.filter(e=>"text"===e.type).map(e=>e.text).join("\n"):"");"user"===s.role?e.push({id:"step_".concat(t+1),type:"user",content:a,variablesUsed:[]}):"assistant"===s.role?e.push({id:"step_".concat(t+1),type:"assistant",contentExample:a}):"system"===s.role&&s.parts&&s.parts.forEach((s,a)=>{"tool-invocation"===s.type&&s.toolInvocation&&e.push({id:"step_".concat(t+1,"_").concat(a),type:"tool",toolName:s.toolInvocation.toolName})})}),console.log("transformedSteps",e),$(e),Y(z||"My Workflow")}},[S,z,O.length]);let et=(0,l.useCallback)((e,s)=>{if(!e.match(/^[A-Za-z_][A-Za-z0-9_]{1,63}$/))return E({title:"Invalid variable name",description:"Variable name must start with a letter or underscore, contain only letters, numbers, and underscores, and be 2-64 characters long.",variant:"destructive"}),!1;if(I.some(s=>s.name===e))return!0;let t={name:e,type:"string",required:!0,description:s||"Auto-detected variable"};return M(e=>[...e,t]),!0},[I,E]),ea=(0,l.useCallback)((e,s)=>{let t=(s.match(/\{([A-Za-z_][A-Za-z0-9_]{1,63})\}/g)||[]).map(e=>e.slice(1,-1));t.forEach(e=>{et(e)}),$(a=>a.map(a=>a.id===e?{...a,content:s,variablesUsed:t}:a));let a=new Set;O.forEach(t=>{t.id===e?(s.match(/\{([A-Za-z_][A-Za-z0-9_]{1,63})\}/g)||[]).forEach(e=>a.add(e.slice(1,-1))):t.variablesUsed&&t.variablesUsed.forEach(e=>a.add(e))}),M(e=>e.filter(e=>a.has(e.name)))},[O,et]),el=(0,l.useCallback)(e=>{M(s=>s.filter(s=>s.name!==e)),$(s=>s.map(s=>{var t,a;return{...s,content:null===(t=s.content)||void 0===t?void 0:t.replace(RegExp("\\{".concat(e,"\\}"),"g"),""),variablesUsed:(null===(a=s.variablesUsed)||void 0===a?void 0:a.filter(s=>s!==e))||[]}}))},[]),er=(0,l.useCallback)((e,s)=>s.match(/^[A-Za-z_][A-Za-z0-9_]{1,63}$/)?I.some(t=>t.name===s&&t.name!==e)?(E({title:"Variable name already exists",description:"A variable with this name already exists.",variant:"destructive"}),!1):(M(t=>t.map(t=>t.name===e?{...t,name:s}:t)),$(t=>t.map(t=>{var a,l;return{...t,content:null===(a=t.content)||void 0===a?void 0:a.replace(RegExp("\\{".concat(e,"\\}"),"g"),"{".concat(s,"}")),variablesUsed:(null===(l=t.variablesUsed)||void 0===l?void 0:l.map(t=>t===e?s:t))||[]}})),!0):(E({title:"Invalid variable name",description:"Variable name must start with a letter or underscore and contain only letters, numbers, and underscores.",variant:"destructive"}),!1),[I,E]),en=(0,l.useMemo)(()=>{var e,s,t;return!!V.trim()&&0!==O.length&&("users"!==A.rights_mode||(null===(e=A.users)||void 0===e?void 0:e.length)!==0)&&("roles"!==A.rights_mode||(null===(s=A.roles)||void 0===s?void 0:s.length)!==0)&&("projects"!==A.rights_mode||(null===(t=A.projects)||void 0===t?void 0:t.length)!==0)&&O.filter(e=>"user"===e.type).every(e=>(e.content||"").replace(/\{[^}]+\}/g,"").trim().length>0)},[V,O,A]),ei=(0,l.useCallback)(async()=>{if(en&&(null==R?void 0:R.id)){F(!0);try{let e=O.map(e=>({id:e.id,type:e.type,..."user"===e.type&&{content:e.content},..."assistant"===e.type&&{contentExample:e.contentExample},..."tool"===e.type&&{toolName:e.toolName}}));D&&Z?(await es({variables:{id:Z.id,name:V.trim(),description:B.trim()||null,rights_mode:A.rights_mode,RBAC:{users:A.users,roles:A.roles,projects:A.projects},variables:I,steps_json:e}}),E({title:"Workflow updated!",description:'"'.concat(V,'" has been updated successfully.')})):(await ee({variables:{name:V.trim(),description:B.trim()||null,owner:R.id,rights_mode:A.rights_mode,RBAC:{users:A.users,roles:A.roles,projects:A.projects},variables:I,steps_json:e}}),E({title:"Workflow created!",description:'"'.concat(V,'" has been saved as a workflow template.')})),_()}catch(e){console.error("Error saving workflow:",e),E({title:"Error saving workflow",description:"There was an error saving your workflow. Please try again.",variant:"destructive"})}finally{F(!1)}}},[en,null==R?void 0:R.id,V,B,A,I,O,ee,es,E,_,D,Z]);return C?(0,a.jsx)(d.Vq,{open:C,onOpenChange:_,children:(0,a.jsxs)(d.cZ,{className:"max-w-4xl max-h-[92vh] flex flex-col",children:[(0,a.jsxs)(d.fK,{className:"pb-4",children:[(0,a.jsx)(d.$N,{className:"text-lg",children:D?P?"View Workflow":"Edit Workflow":"Save as Workflow"}),(0,a.jsx)(d.Be,{className:"text-sm",children:D?P?"View workflow details and configuration.":"Modify this workflow template. Edit your messages and use {variable_name} syntax to create variables.":"Convert this conversation into a reusable workflow template. Edit your messages and use {variable_name} syntax to create variables."})]}),(0,a.jsx)("div",{className:"flex-1 mt-6",children:(0,a.jsxs)(j.mQ,{value:L,onValueChange:Q,className:"h-full flex flex-col",children:[(0,a.jsxs)(j.dr,{className:"grid w-full grid-cols-2 mb-6",children:[(0,a.jsx)(j.SP,{value:"setup",className:"data-[state=active]:bg-background",children:"Setup & Permissions"}),(0,a.jsx)(j.SP,{value:"workflow",className:"data-[state=active]:bg-background",children:"Workflow Steps & Variables"})]}),(0,a.jsxs)("div",{className:"flex-1 pb-6",children:[(0,a.jsx)(j.nU,{value:"setup",className:"mt-0 h-full",children:(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(u._,{htmlFor:"workflow-name",className:"text-base font-semibold",children:"Workflow Name *"}),(0,a.jsx)(c.I,{id:"workflow-name",value:V,onChange:e=>Y(e.target.value),placeholder:"My Workflow",className:"mt-2 h-11",readOnly:P}),!V.trim()&&(0,a.jsxs)("p",{className:"text-sm text-destructive mt-1 flex items-center",children:[(0,a.jsx)("span",{className:"mr-1",children:"⚠️"}),"Workflow name is required"]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(u._,{htmlFor:"workflow-description",className:"text-base font-semibold",children:"Description"}),(0,a.jsx)(m.g,{id:"workflow-description",value:B,onChange:e=>W(e.target.value),placeholder:"Describe what this workflow does and when to use it...",rows:3,className:"mt-2 resize-none",readOnly:P})]})]}),(0,a.jsxs)("div",{className:"border-t pt-6",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-base font-semibold mb-1",children:"Sharing & Permissions"}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"Control who can view and edit this workflow"})]}),(0,a.jsxs)(o.z,{type:"button",variant:"outline",size:"sm",onClick:()=>G(!T),className:"ml-4",children:[T?"Hide Advanced":"Show Advanced",(0,a.jsx)(h.Z,{className:(0,v.cn)("w-4 h-4 ml-1 transition-transform",T&&"rotate-180")})]})]}),T&&(0,a.jsx)(g.P,{initialRightsMode:null==Z?void 0:Z.rights_mode,initialUsers:null==Z?void 0:null===(y=Z.RBAC)||void 0===y?void 0:y.users,initialRoles:null==Z?void 0:null===(w=Z.RBAC)||void 0===w?void 0:w.roles,initialProjects:null==Z?void 0:null===(k=Z.RBAC)||void 0===k?void 0:k.projects,onChange:(e,s,t,a)=>{U({rights_mode:e,users:s,roles:t,projects:a})}}),!T&&(0,a.jsx)("div",{className:"text-sm text-muted-foreground bg-muted/30 p-3 rounded-md",children:"Using default permissions (private to you)"})]})]})}),(0,a.jsx)(j.nU,{value:"workflow",className:"mt-0 h-full",children:(0,a.jsxs)("div",{className:"h-full flex gap-6",children:[(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsxs)("div",{className:"mb-4",children:[(0,a.jsx)("h3",{className:"text-base font-semibold mb-2",children:"Conversation Steps"}),(0,a.jsx)("div",{className:"border rounded-lg p-3 mb-4",children:(0,a.jsxs)("p",{className:"text-sm",children:["\uD83D\uDCA1 ",(0,a.jsx)("strong",{children:"Pro tip:"})," Use ","{variable_name}"," syntax in your messages to create reusable variables. For example you can use ","{company_name}"," to create a variable for the company name so you can reuse this flow template with different companies."]})})]}),(0,a.jsx)("div",{className:"space-y-4 max-h-[500px] overflow-y-auto pr-2",children:O.map((e,s)=>(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"border rounded-lg p-4 bg-card",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3 mb-3",children:[(0,a.jsx)("span",{className:(0,v.cn)("text-sm font-medium px-3 py-1 rounded-full","user"===e.type?"bg-blue-100 text-blue-700":"assistant"===e.type?"bg-green-100 text-green-700":"bg-purple-100 text-purple-700"),children:"user"===e.type?"\uD83D\uDC64 User":"assistant"===e.type?"\uD83E\uDD16 Assistant":"\uD83D\uDD27 ".concat(e.toolName)}),e.variablesUsed&&e.variablesUsed.length>0&&(0,a.jsx)("div",{className:"flex gap-1 flex-wrap",children:e.variablesUsed.map(e=>(0,a.jsx)("span",{className:"text-xs bg-blue-50 text-blue-600 px-2 py-1 rounded font-mono border border-blue-200",children:"{".concat(e,"}")},e))})]}),"user"===e.type?(0,a.jsx)("div",{children:(0,a.jsx)(m.g,{value:e.content||"",onChange:s=>ea(e.id,s.target.value),placeholder:"Enter your message...",className:"min-h-[80px] resize-none",rows:3,readOnly:P})}):(0,a.jsx)("div",{className:"bg-muted/50 p-3 rounded-md",children:"assistant"===e.type?(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-xs font-medium text-muted-foreground mb-2",children:"Example response (will be regenerated):"}),(0,a.jsx)(b.H,{children:e.contentExample})]}):(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"text-xs font-medium text-muted-foreground mb-1",children:["Tool: ",e.toolName]}),(0,a.jsx)("div",{className:"text-sm text-muted-foreground",children:"Parameters will be generated dynamically"})]})})]}),s<O.length-1&&(0,a.jsx)("div",{className:"flex justify-center my-3",children:(0,a.jsx)(h.Z,{className:"w-5 h-5 text-muted-foreground/50"})})]},e.id))})]}),(0,a.jsxs)("div",{className:"w-80",children:[(0,a.jsxs)("div",{className:"mb-4",children:[(0,a.jsxs)("h3",{className:"text-base font-semibold mb-2",children:["Variables (",I.length,")"]}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"Auto-detected from your messages"})]}),I.length>0?(0,a.jsx)("div",{className:"space-y-3 max-h-[500px] overflow-y-auto",children:I.map(e=>(0,a.jsxs)("div",{className:"border rounded-lg p-3 bg-card",children:[(0,a.jsxs)("div",{className:"flex items-start justify-between mb-2",children:[(0,a.jsx)("div",{className:"font-mono text-blue-600 font-medium text-sm",children:"{".concat(e.name,"}")}),!P&&(0,a.jsx)("div",{className:"flex gap-1",children:H===e.name?(0,a.jsx)(c.I,{value:K,onChange:e=>X(e.target.value),className:"h-6 text-xs font-mono w-20",placeholder:"variable_name",autoFocus:!0,onKeyDown:s=>{"Enter"===s.key?(K&&K!==e.name&&er(e.name,K),J(null),X("")):"Escape"===s.key&&(J(null),X(""))},onBlur:()=>{K&&K!==e.name&&er(e.name,K),J(null),X("")}}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.z,{size:"sm",variant:"ghost",className:"h-6 w-6 p-0",onClick:()=>{J(e.name),X(e.name)},children:(0,a.jsx)(x.Z,{className:"w-3 h-3"})}),(0,a.jsx)(o.z,{size:"sm",variant:"ghost",className:"h-6 w-6 p-0 text-destructive hover:bg-destructive/10",onClick:()=>el(e.name),children:(0,a.jsx)(p.Z,{className:"w-3 h-3"})})]})})]}),(0,a.jsx)("div",{className:"text-xs text-muted-foreground mb-2",children:e.description}),(0,a.jsxs)("div",{className:"flex gap-1",children:[(0,a.jsx)("span",{className:"text-xs bg-gray-100 text-gray-700 px-1.5 py-0.5 rounded",children:e.type}),e.required&&(0,a.jsx)("span",{className:"text-xs bg-orange-100 text-orange-700 px-1.5 py-0.5 rounded",children:"required"})]})]},e.name))}):(0,a.jsxs)("div",{className:"text-center py-8 text-muted-foreground border-2 border-dashed rounded-lg",children:[(0,a.jsx)("div",{className:"mb-3",children:(0,a.jsx)("span",{className:"text-3xl",children:"\uD83D\uDCDD"})}),(0,a.jsx)("div",{className:"text-sm mb-1 font-medium",children:"No variables yet"}),(0,a.jsxs)("div",{className:"text-xs",children:["Use ","{variable_name}"," syntax in your messages"]})]})]})]})})]})]})}),(0,a.jsx)("div",{className:"border-t p-4 bg-background",children:(0,a.jsxs)(d.cN,{children:[(0,a.jsx)(o.z,{variant:"outline",onClick:_,children:P?"Close":"Cancel"}),!P&&(0,a.jsx)(a.Fragment,{children:(0,a.jsx)(o.z,{onClick:ei,disabled:!en||q,className:(0,v.cn)("min-w-[140px]",!en&&"opacity-50 cursor-not-allowed"),children:q?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"animate-spin rounded-full h-4 w-4 border-b-2 border-white mr-2"}),D?"Updating...":"Saving..."]}):D?"Update Workflow":"Save Workflow"})})]})})]})}):null}},23518:function(e,s,t){t.d(s,{di:function(){return x},e8:function(){return c},fu:function(){return u},mY:function(){return d},rb:function(){return m},sZ:function(){return o},zz:function(){return h}});var a=t(57437),l=t(83918),r=t(73247),n=t(2265);t(26110);var i=t(94508);let d=n.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)(l.mY,{ref:s,className:(0,i.cn)("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",t),...r})});d.displayName=l.mY.displayName;let o=n.forwardRef((e,s)=>{let{className:t,...n}=e;return(0,a.jsxs)("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[(0,a.jsx)(r.Z,{className:"mr-2 size-4 shrink-0 opacity-50"}),(0,a.jsx)(l.mY.Input,{ref:s,className:(0,i.cn)("flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",t),...n})]})});o.displayName=l.mY.Input.displayName;let c=n.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)(l.mY.List,{ref:s,className:(0,i.cn)("max-h-[300px] overflow-y-auto overflow-x-hidden",t),...r})});c.displayName=l.mY.List.displayName;let m=n.forwardRef((e,s)=>(0,a.jsx)(l.mY.Empty,{ref:s,className:"py-6 text-center text-sm",...e}));m.displayName=l.mY.Empty.displayName;let u=n.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)(l.mY.Group,{ref:s,className:(0,i.cn)("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",t),...r})});u.displayName=l.mY.Group.displayName;let h=n.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)(l.mY.Separator,{ref:s,className:(0,i.cn)("-mx-1 h-px bg-border",t),...r})});h.displayName=l.mY.Separator.displayName;let x=n.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)(l.mY.Item,{ref:s,className:(0,i.cn)("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...r})});x.displayName=l.mY.Item.displayName},10492:function(e,s,t){t.d(s,{g:function(){return r}});var a=t(57437),l=t(94508);let r=e=>{let{className:s}=e;return(0,a.jsxs)("svg",{"aria-hidden":"true",role:"status",className:(0,l.cn)("inline w-4 h-4 text-white animate-spin fill-inherit",s),viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,a.jsx)("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",className:"fill-inherit opacity-20"}),(0,a.jsx)("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",className:"fill-inherit"})]})}},57054:function(e,s,t){t.d(s,{J2:function(){return i},xo:function(){return d},yk:function(){return o}});var a=t(57437),l=t(27312),r=t(2265),n=t(94508);let i=l.fC,d=l.xz,o=r.forwardRef((e,s)=>{let{className:t,align:r="center",sideOffset:i=4,...d}=e;return(0,a.jsx)(l.h_,{children:(0,a.jsx)(l.VY,{ref:s,align:r,sideOffset:i,className:(0,n.cn)("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...d})})});o.displayName=l.VY.displayName},12339:function(e,s,t){t.d(s,{SP:function(){return o},dr:function(){return d},mQ:function(){return i},nU:function(){return c}});var a=t(57437),l=t(20271),r=t(2265),n=t(94508);let i=l.fC,d=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)(l.aV,{ref:s,className:(0,n.cn)("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",t),...r})});d.displayName=l.aV.displayName;let o=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)(l.xz,{ref:s,className:(0,n.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",t),...r})});o.displayName=l.xz.displayName;let c=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)(l.VY,{ref:s,className:(0,n.cn)("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",t),...r})});c.displayName=l.VY.displayName}}]);
2
- //# sourceMappingURL=1957-670ddf66742d95f2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"static/chunks/1957-670ddf66742d95f2.js","mappings":"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","sources":["webpack://_N_E/./components/ai-elements/code-block.tsx","webpack://_N_E/./components/ai-elements/response.tsx","webpack://_N_E/./components/rbac.tsx","webpack://_N_E/./components/save-workflow-modal.tsx","webpack://_N_E/./components/ui/command.tsx","webpack://_N_E/./components/ui/loading.tsx","webpack://_N_E/./components/ui/popover.tsx","webpack://_N_E/./components/ui/tabs.tsx"],"sourcesContent":["'use client';\n\nimport { Button } from '@/components/ui/button';\nimport { cn } from '@/lib/utils';\nimport { CheckIcon, CopyIcon } from 'lucide-react';\nimport type { ComponentProps, HTMLAttributes, ReactNode } from 'react';\nimport { createContext, useContext, useState } from 'react';\nimport { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';\nimport {\n oneDark,\n oneLight,\n} from 'react-syntax-highlighter/dist/esm/styles/prism';\n\ntype CodeBlockContextType = {\n code: string;\n};\n\nconst CodeBlockContext = createContext<CodeBlockContextType>({\n code: '',\n});\n\nexport type CodeBlockProps = HTMLAttributes<HTMLDivElement> & {\n code: string;\n language: string;\n showLineNumbers?: boolean;\n children?: ReactNode;\n};\n\nexport const CodeBlock = ({\n code,\n language,\n showLineNumbers = false,\n className,\n children,\n ...props\n}: CodeBlockProps) => (\n <CodeBlockContext.Provider value={{ code }}>\n <div\n className={cn(\n 'relative w-full overflow-hidden rounded-md border bg-background text-foreground',\n className\n )}\n {...props}\n >\n <div className=\"relative\">\n <SyntaxHighlighter\n className=\"overflow-hidden dark:hidden\"\n codeTagProps={{\n className: 'font-mono text-sm',\n }}\n customStyle={{\n margin: 0,\n padding: '1rem',\n fontSize: '0.875rem',\n background: 'hsl(var(--background))',\n color: 'hsl(var(--foreground))',\n }}\n language={language}\n lineNumberStyle={{\n color: 'hsl(var(--muted-foreground))',\n paddingRight: '1rem',\n minWidth: '2.5rem',\n }}\n showLineNumbers={showLineNumbers}\n style={oneLight}\n >\n {code}\n </SyntaxHighlighter>\n <SyntaxHighlighter\n className=\"hidden overflow-hidden dark:block\"\n codeTagProps={{\n className: 'font-mono text-sm',\n }}\n customStyle={{\n margin: 0,\n padding: '1rem',\n fontSize: '0.875rem',\n background: 'hsl(var(--background))',\n color: 'hsl(var(--foreground))',\n }}\n language={language}\n lineNumberStyle={{\n color: 'hsl(var(--muted-foreground))',\n paddingRight: '1rem',\n minWidth: '2.5rem',\n }}\n showLineNumbers={showLineNumbers}\n style={oneDark}\n >\n {code}\n </SyntaxHighlighter>\n {children && (\n <div className=\"absolute top-2 right-2 flex items-center gap-2\">\n {children}\n </div>\n )}\n </div>\n </div>\n </CodeBlockContext.Provider>\n);\n\nexport type CodeBlockCopyButtonProps = ComponentProps<typeof Button> & {\n onCopy?: () => void;\n onError?: (error: Error) => void;\n timeout?: number;\n};\n\nexport const CodeBlockCopyButton = ({\n onCopy,\n onError,\n timeout = 2000,\n children,\n className,\n ...props\n}: CodeBlockCopyButtonProps) => {\n const [isCopied, setIsCopied] = useState(false);\n const { code } = useContext(CodeBlockContext);\n\n const copyToClipboard = async () => {\n if (typeof window === 'undefined' || !navigator.clipboard.writeText) {\n onError?.(new Error('Clipboard API not available'));\n return;\n }\n\n try {\n await navigator.clipboard.writeText(code);\n setIsCopied(true);\n onCopy?.();\n setTimeout(() => setIsCopied(false), timeout);\n } catch (error) {\n onError?.(error as Error);\n }\n };\n\n const Icon = isCopied ? CheckIcon : CopyIcon;\n\n return (\n <Button\n className={cn('shrink-0', className)}\n onClick={copyToClipboard}\n size=\"icon\"\n variant=\"ghost\"\n {...props}\n >\n {children ?? <Icon size={14} />}\n </Button>\n );\n};\n","'use client';\n\nimport { cn } from '@/lib/utils';\nimport type { ComponentProps, HTMLAttributes } from 'react';\nimport { isValidElement, memo } from 'react';\nimport ReactMarkdown, { type Options } from 'react-markdown';\nimport rehypeKatex from 'rehype-katex';\nimport remarkGfm from 'remark-gfm';\nimport remarkMath from 'remark-math';\nimport { CodeBlock, CodeBlockCopyButton } from './code-block';\nimport 'katex/dist/katex.min.css';\nimport hardenReactMarkdown from 'harden-react-markdown';\n\n/**\n * Parses markdown text and removes incomplete tokens to prevent partial rendering\n * of links, images, bold, and italic formatting during streaming.\n */\nfunction parseIncompleteMarkdown(text: string): string {\n if (!text || typeof text !== 'string') {\n return text;\n }\n\n let result = text;\n\n // Handle incomplete links and images\n // Pattern: [...] or ![...] where the closing ] is missing\n const linkImagePattern = /(!?\\[)([^\\]]*?)$/;\n const linkMatch = result.match(linkImagePattern);\n if (linkMatch) {\n // If we have an unterminated [ or ![, remove it and everything after\n const startIndex = result.lastIndexOf(linkMatch[1]);\n result = result.substring(0, startIndex);\n }\n\n // Handle incomplete bold formatting (**)\n const boldPattern = /(\\*\\*)([^*]*?)$/;\n const boldMatch = result.match(boldPattern);\n if (boldMatch) {\n // Count the number of ** in the entire string\n const asteriskPairs = (result.match(/\\*\\*/g) || []).length;\n // If odd number of **, we have an incomplete bold - complete it\n if (asteriskPairs % 2 === 1) {\n result = `${result}**`;\n }\n }\n\n // Handle incomplete italic formatting (__)\n const italicPattern = /(__)([^_]*?)$/;\n const italicMatch = result.match(italicPattern);\n if (italicMatch) {\n // Count the number of __ in the entire string\n const underscorePairs = (result.match(/__/g) || []).length;\n // If odd number of __, we have an incomplete italic - complete it\n if (underscorePairs % 2 === 1) {\n result = `${result}__`;\n }\n }\n\n // Handle incomplete single asterisk italic (*)\n const singleAsteriskPattern = /(\\*)([^*]*?)$/;\n const singleAsteriskMatch = result.match(singleAsteriskPattern);\n if (singleAsteriskMatch) {\n // Count single asterisks that aren't part of **\n const singleAsterisks = result.split('').reduce((acc, char, index) => {\n if (char === '*') {\n // Check if it's part of a ** pair\n const prevChar = result[index - 1];\n const nextChar = result[index + 1];\n if (prevChar !== '*' && nextChar !== '*') {\n return acc + 1;\n }\n }\n return acc;\n }, 0);\n\n // If odd number of single *, we have an incomplete italic - complete it\n if (singleAsterisks % 2 === 1) {\n result = `${result}*`;\n }\n }\n\n // Handle incomplete single underscore italic (_)\n const singleUnderscorePattern = /(_)([^_]*?)$/;\n const singleUnderscoreMatch = result.match(singleUnderscorePattern);\n if (singleUnderscoreMatch) {\n // Count single underscores that aren't part of __\n const singleUnderscores = result.split('').reduce((acc, char, index) => {\n if (char === '_') {\n // Check if it's part of a __ pair\n const prevChar = result[index - 1];\n const nextChar = result[index + 1];\n if (prevChar !== '_' && nextChar !== '_') {\n return acc + 1;\n }\n }\n return acc;\n }, 0);\n\n // If odd number of single _, we have an incomplete italic - complete it\n if (singleUnderscores % 2 === 1) {\n result = `${result}_`;\n }\n }\n\n // Handle incomplete inline code blocks (`) - but avoid code blocks (```)\n const inlineCodePattern = /(`)([^`]*?)$/;\n const inlineCodeMatch = result.match(inlineCodePattern);\n if (inlineCodeMatch) {\n // Check if we're dealing with a code block (triple backticks)\n const hasCodeBlockStart = result.includes('```');\n const codeBlockPattern = /```[\\s\\S]*?```/g;\n const completeCodeBlocks = (result.match(codeBlockPattern) || []).length;\n const allTripleBackticks = (result.match(/```/g) || []).length;\n\n // If we have an odd number of ``` sequences, we're inside an incomplete code block\n // In this case, don't complete inline code\n const insideIncompleteCodeBlock = allTripleBackticks % 2 === 1;\n\n if (!insideIncompleteCodeBlock) {\n // Count the number of single backticks that are NOT part of triple backticks\n let singleBacktickCount = 0;\n for (let i = 0; i < result.length; i++) {\n if (result[i] === '`') {\n // Check if this backtick is part of a triple backtick sequence\n const isTripleStart = result.substring(i, i + 3) === '```';\n const isTripleMiddle =\n i > 0 && result.substring(i - 1, i + 2) === '```';\n const isTripleEnd = i > 1 && result.substring(i - 2, i + 1) === '```';\n\n if (!(isTripleStart || isTripleMiddle || isTripleEnd)) {\n singleBacktickCount++;\n }\n }\n }\n\n // If odd number of single backticks, we have an incomplete inline code - complete it\n if (singleBacktickCount % 2 === 1) {\n result = `${result}\\``;\n }\n }\n }\n\n // Handle incomplete strikethrough formatting (~~)\n const strikethroughPattern = /(~~)([^~]*?)$/;\n const strikethroughMatch = result.match(strikethroughPattern);\n if (strikethroughMatch) {\n // Count the number of ~~ in the entire string\n const tildePairs = (result.match(/~~/g) || []).length;\n // If odd number of ~~, we have an incomplete strikethrough - complete it\n if (tildePairs % 2 === 1) {\n result = `${result}~~`;\n }\n }\n\n return result;\n}\n\n// Create a hardened version of ReactMarkdown\nconst HardenedMarkdown = hardenReactMarkdown(ReactMarkdown);\n\nexport type ResponseProps = HTMLAttributes<HTMLDivElement> & {\n options?: Options;\n children: Options['children'];\n allowedImagePrefixes?: ComponentProps<\n ReturnType<typeof hardenReactMarkdown>\n >['allowedImagePrefixes'];\n allowedLinkPrefixes?: ComponentProps<\n ReturnType<typeof hardenReactMarkdown>\n >['allowedLinkPrefixes'];\n defaultOrigin?: ComponentProps<\n ReturnType<typeof hardenReactMarkdown>\n >['defaultOrigin'];\n parseIncompleteMarkdown?: boolean;\n};\n\nconst components: Options['components'] = {\n ol: ({ node, children, className, ...props }) => (\n <ol className={cn('ml-4 list-outside list-decimal', className)} {...props}>\n {children}\n </ol>\n ),\n li: ({ node, children, className, ...props }) => (\n <li className={cn('py-1', className)} {...props}>\n {children}\n </li>\n ),\n ul: ({ node, children, className, ...props }) => (\n <ul className={cn('ml-4 list-outside list-disc', className)} {...props}>\n {children}\n </ul>\n ),\n hr: ({ node, className, ...props }) => (\n <hr className={cn('my-6 border-border', className)} {...props} />\n ),\n strong: ({ node, children, className, ...props }) => (\n <span className={cn('font-semibold', className)} {...props}>\n {children}\n </span>\n ),\n a: ({ node, children, className, ...props }) => (\n <a\n className={cn('font-medium text-primary underline', className)}\n rel=\"noreferrer\"\n target=\"_blank\"\n {...props}\n >\n {children}\n </a>\n ),\n h1: ({ node, children, className, ...props }) => (\n <h1\n className={cn('mt-6 mb-2 font-semibold text-3xl', className)}\n {...props}\n >\n {children}\n </h1>\n ),\n h2: ({ node, children, className, ...props }) => (\n <h2\n className={cn('mt-6 mb-2 font-semibold text-2xl', className)}\n {...props}\n >\n {children}\n </h2>\n ),\n h3: ({ node, children, className, ...props }) => (\n <h3 className={cn('mt-6 mb-2 font-semibold text-xl', className)} {...props}>\n {children}\n </h3>\n ),\n h4: ({ node, children, className, ...props }) => (\n <h4 className={cn('mt-6 mb-2 font-semibold text-lg', className)} {...props}>\n {children}\n </h4>\n ),\n h5: ({ node, children, className, ...props }) => (\n <h5\n className={cn('mt-6 mb-2 font-semibold text-base', className)}\n {...props}\n >\n {children}\n </h5>\n ),\n h6: ({ node, children, className, ...props }) => (\n <h6 className={cn('mt-6 mb-2 font-semibold text-sm', className)} {...props}>\n {children}\n </h6>\n ),\n table: ({ node, children, className, ...props }) => (\n <div className=\"my-4 overflow-x-auto\">\n <table\n className={cn('w-full border-collapse border border-border', className)}\n {...props}\n >\n {children}\n </table>\n </div>\n ),\n thead: ({ node, children, className, ...props }) => (\n <thead className={cn('bg-muted/50', className)} {...props}>\n {children}\n </thead>\n ),\n tbody: ({ node, children, className, ...props }) => (\n <tbody className={cn('divide-y divide-border', className)} {...props}>\n {children}\n </tbody>\n ),\n tr: ({ node, children, className, ...props }) => (\n <tr className={cn('border-border border-b', className)} {...props}>\n {children}\n </tr>\n ),\n th: ({ node, children, className, ...props }) => (\n <th\n className={cn('px-4 py-2 text-left font-semibold text-sm', className)}\n {...props}\n >\n {children}\n </th>\n ),\n td: ({ node, children, className, ...props }) => (\n <td className={cn('px-4 py-2 text-sm', className)} {...props}>\n {children}\n </td>\n ),\n blockquote: ({ node, children, className, ...props }) => (\n <blockquote\n className={cn(\n 'my-4 border-muted-foreground/30 border-l-4 pl-4 text-muted-foreground italic',\n className\n )}\n {...props}\n >\n {children}\n </blockquote>\n ),\n code: ({ node, className, ...props }) => {\n const inline = node?.position?.start.line === node?.position?.end.line;\n\n if (!inline) {\n return <code className={className} {...props} />;\n }\n\n return (\n <code\n className={cn(\n 'rounded bg-muted px-1.5 py-0.5 font-mono text-sm',\n className\n )}\n {...props}\n />\n );\n },\n pre: ({ node, className, children }) => {\n let language = 'javascript';\n\n if (typeof node?.properties?.className === 'string') {\n language = node.properties.className.replace('language-', '');\n }\n\n // Extract code content from children safely\n let code = '';\n if (\n isValidElement(children) &&\n children.props &&\n typeof children.props.children === 'string'\n ) {\n code = children.props.children;\n } else if (typeof children === 'string') {\n code = children;\n }\n\n return (\n <CodeBlock\n className={cn('my-4 h-auto', className)}\n code={code}\n language={language}\n >\n <CodeBlockCopyButton\n onCopy={() => console.log('Copied code to clipboard')}\n onError={() => console.error('Failed to copy code to clipboard')}\n />\n </CodeBlock>\n );\n },\n};\n\nexport const Response = memo(\n ({\n className,\n options,\n children,\n allowedImagePrefixes,\n allowedLinkPrefixes,\n defaultOrigin,\n parseIncompleteMarkdown: shouldParseIncompleteMarkdown = true,\n ...props\n }: ResponseProps) => {\n // Parse the children to remove incomplete markdown tokens if enabled\n const parsedChildren =\n typeof children === 'string' && shouldParseIncompleteMarkdown\n ? parseIncompleteMarkdown(children)\n : children;\n\n return (\n <div\n className={cn(\n 'size-full [&>*:first-child]:mt-0 [&>*:last-child]:mb-0',\n className\n )}\n {...props}\n >\n <HardenedMarkdown\n allowedImagePrefixes={allowedImagePrefixes ?? ['*']}\n allowedLinkPrefixes={allowedLinkPrefixes ?? ['*']}\n components={components}\n defaultOrigin={defaultOrigin}\n rehypePlugins={[rehypeKatex]}\n remarkPlugins={[remarkGfm, remarkMath]}\n {...options}\n >\n {parsedChildren}\n </HardenedMarkdown>\n </div>\n );\n },\n (prevProps, nextProps) => prevProps.children === nextProps.children\n);\n\nResponse.displayName = 'Response';\n","\nimport {\n GET_USER_ROLES,\n GET_USERS,\n GET_USER_BY_ID\n} from \"@/queries/queries\";\nimport { useState, useEffect, useCallback } from \"react\";\nimport { useApolloClient, useQuery } from \"@apollo/client\";\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\";\nimport { User } from \"@/types/models/user\";\nimport { Check, ChevronsUpDown, Users, Lock, Globe, Settings, Trash2, Loader2, Folder } from \"lucide-react\";\nimport { Input } from \"@/components/ui/input\";\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogDescription,\n} from \"@/components/ui/dialog\";\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\nimport { cn } from \"@/lib/utils\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\";\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\";\nimport { Button } from \"@/components/ui/button\";\nimport { Label } from \"./ui/label\";\n\nconst VISIBILITY_OPTIONS = [\n { value: 'private', label: 'Private', description: 'Only you can see this agent', icon: Lock },\n { value: 'users', label: 'Shared with Users', description: 'Share with specific users', icon: Users },\n { value: 'roles', label: 'Shared with Roles', description: 'Share with specific roles', icon: Settings },\n { value: 'public', label: 'Public', description: 'Anyone can see this agent', icon: Globe },\n { value: 'projects', label: 'Projects', description: 'Share with specific projects', icon: Folder }\n]\n\ntype Modes = 'private' | 'users' | 'roles' | 'public' | 'projects'\n\nexport function RBACControl({\n allowedModes,\n initialRightsMode,\n initialUsers,\n initialRoles,\n initialProjects,\n onChange\n}: {\n allowedModes?: Modes[],\n initialRightsMode: 'private' | 'users' | 'roles' | 'public' | 'projects' | undefined,\n initialUsers: { id: number, rights: 'read' | 'write' }[] | undefined,\n initialRoles: { id: string, rights: 'read' | 'write' }[] | undefined,\n initialProjects: { id: string, rights: 'read' | 'write' }[] | undefined,\n onChange: (rights_mode: Modes, users: { id: number, rights: 'read' | 'write' }[], roles: { id: string, rights: 'read' | 'write' }[], projects: { id: string, rights: 'read' | 'write' }[]) => void\n}) {\n const [visibility, setVisibility] = useState<Modes | undefined>(initialRightsMode)\n const [selectedUsers, setSelectedUsers] = useState<{ id: number, rights: 'read' | 'write' }[]>(initialUsers || [])\n const [selectedRoles, setSelectedRoles] = useState<{ id: string, rights: 'read' | 'write' }[]>(initialRoles || [])\n const [hydratedUsers, setHydratedUsers] = useState<User[]>([])\n const [visibilitySelectorOpen, setVisibilitySelectorOpen] = useState(false)\n const [userFilters, setUserFilters] = useState<any[]>([])\n const [userSearchValue, setUserSearchValue] = useState('')\n const [modalOpen, setModalOpen] = useState(false)\n const [modalLoading, setModalLoading] = useState(false)\n const client = useApolloClient()\n\n // GraphQL queries for RBAC\n const { data: usersData, loading: usersLoading, refetch: refetchUsers } = useQuery(GET_USERS, {\n variables: { page: 1, limit: 5, filters: userFilters },\n skip: visibility !== 'users' || !userSearchValue\n })\n\n const roles = useQuery(GET_USER_ROLES, {\n fetchPolicy: \"cache-first\",\n nextFetchPolicy: \"network-only\",\n variables: {\n page: 1,\n limit: 30,\n filters: [\n {\n type: {\n ne: \"api\"\n }\n }\n ]\n },\n });\n\n\n // User search function\n const searchUsers = useCallback((value: string) => {\n setUserSearchValue(value)\n const copy = [...userFilters, {\n type: {\n ne: \"api\"\n }\n }]\n const exists = copy.find((filter) => filter.email)\n if (exists?.email) {\n exists.email.contains = value\n } else {\n copy.push({\n email: {\n contains: value,\n },\n })\n }\n setUserFilters(copy)\n refetchUsers()\n }, [userFilters, refetchUsers])\n\n const hydrateUsers = async (max: number = 5) => {\n setModalLoading(true)\n if (!selectedUsers || selectedUsers.length === 0) {\n setHydratedUsers([])\n setModalLoading(false)\n return\n }\n\n const promises = selectedUsers?.slice(0, max).map(async ({ id, rights }) => {\n const user = await client.query({\n query: GET_USER_BY_ID,\n variables: {\n id\n }\n })\n return {\n ...user.data.userById,\n rights\n };\n })\n const results = await Promise.all(promises)\n setHydratedUsers(results)\n setModalLoading(false)\n }\n\n useEffect(() => {\n hydrateUsers(5)\n }, [])\n\n useEffect(() => {\n console.log(\"selectedUsers\", selectedUsers)\n console.log(\"hydratedUsers\", hydratedUsers)\n onChange(visibility as 'private' | 'users' | 'roles' | 'public', selectedUsers, selectedRoles, [])\n }, [visibility, selectedUsers, selectedRoles])\n\n const filteredUsers = hydratedUsers?.slice(0, 5).filter(user => !!user?.id)\n\n let visibilityOptions = VISIBILITY_OPTIONS\n if (allowedModes?.length) {\n visibilityOptions = VISIBILITY_OPTIONS.filter(option => allowedModes.includes(option.value as Modes))\n }\n\n return (\n <>\n <div className=\"space-y-2\">\n <Label className=\"text-sm font-medium\">Visibility & sharing</Label>\n <Popover open={visibilitySelectorOpen} onOpenChange={setVisibilitySelectorOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={visibilitySelectorOpen}\n className=\"w-full justify-between text-sm capitalize\"\n >\n {visibilityOptions.find(option => option.value === visibility)?.label || \"Select visibility...\"}\n <ChevronsUpDown className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-full p-0\">\n <Command>\n <CommandInput placeholder=\"Search options...\" />\n <CommandList>\n <CommandEmpty>No options found.</CommandEmpty>\n <CommandGroup>\n {visibilityOptions.map((option: any) => (\n <CommandItem\n key={option.value}\n onSelect={() => {\n if (option.value !== \"users\") {\n setSelectedUsers([])\n }\n if (option.value !== \"roles\") {\n setSelectedRoles([])\n }\n setVisibility(option.value)\n setVisibilitySelectorOpen(false)\n }}\n >\n <Check\n className={cn(\n \"mr-2 h-4 w-4\",\n visibility === option.value ? \"opacity-100\" : \"opacity-0\"\n )}\n />\n <div className=\"flex flex-col\">\n <span>{option.label}</span>\n <span className=\"text-xs text-muted-foreground\">{option.description}</span>\n </div>\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n </div>\n\n {/* Users sharing section */}\n {visibility === 'users' && (\n <div className=\"space-y-3 pt-3\">\n <div>\n <Label className=\"text-sm font-medium\">Share with users</Label>\n {/* Search bar */}\n <div className=\"mt-2\">\n <Input\n placeholder=\"Search users by email...\"\n value={userSearchValue}\n onChange={(e) => searchUsers(e.target.value)}\n className=\"text-sm\"\n />\n </div>\n\n {/* Search results */}\n {usersLoading && (\n <div className=\"mt-2 flex items-center justify-center py-4\">\n <Loader2 className=\"h-4 w-4 animate-spin mr-2\" />\n <span className=\"text-sm text-muted-foreground\">Loading users...</span>\n </div>\n )}\n {!usersLoading && usersData && usersData.usersPagination?.items.length > 0 && (\n <div className=\"mt-2\">\n <div className=\"text-xs text-muted-foreground mb-1\">Search Results:</div>\n <div className=\"max-h-50 overflow-y-auto border rounded-lg\">\n {usersData.usersPagination.items.filter(user => !selectedUsers.some(selected => selected.id === user.id)).map((user: any) => (\n <label key={user.id} className=\"flex items-center space-x-2 p-2 hover:bg-muted/50 cursor-pointer\">\n <input\n type=\"checkbox\"\n checked={selectedUsers.some(selected => selected.id === user.id)}\n onChange={(e) => {\n setSelectedUsers(prev => [...prev, { id: user.id, rights: 'read' }])\n setHydratedUsers(prev => [...prev, {\n ...user,\n rights: 'read'\n }])\n }}\n />\n <span className=\"text-sm\">{user.email}</span>\n </label>\n ))}\n </div>\n <div className=\"text-xs text-muted-foreground mt-2\">\n <span className=\"font-medium\">Note:</span> Only the first 5 users are shown, use the Search bar to find more users.\n </div>\n </div>\n )}\n {!usersLoading && userSearchValue && usersData && usersData.usersPagination.items.length === 0 && (\n <div className=\"mt-2 text-center py-4\">\n <span className=\"text-sm text-muted-foreground\">No users found</span>\n </div>\n )}\n\n {/* Selected users list */}\n {filteredUsers?.length > 0 ? (\n <div className=\"mt-2\">\n <div className=\"text-xs text-muted-foreground mb-1\">Selected Users:</div>\n <div className=\"space-y-1\">\n {filteredUsers.map((user: any) => (\n <div key={user.id} className=\"flex items-center gap-2 border p-2 rounded-lg text-sm\">\n <span className=\"flex-1 pl-2\">{user.email}</span>\n <Select\n value={user.rights}\n onValueChange={(value: 'read' | 'write') => {\n setSelectedUsers(prev =>\n prev.map(selected =>\n selected.id === user.id\n ? { ...selected, rights: value }\n : selected\n )\n )\n setHydratedUsers(prev =>\n prev.map(hydratedUser =>\n hydratedUser.id === user.id\n ? { ...hydratedUser, rights: value }\n : hydratedUser\n )\n )\n }}\n >\n <SelectTrigger className=\"h-6 w-20 text-xs\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"read\">Read</SelectItem>\n <SelectItem value=\"write\">Write</SelectItem>\n </SelectContent>\n </Select>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"h-5 w-5 p-0 hover:bg-blue-100\"\n onClick={() => {\n setSelectedUsers(prev => prev.filter(selected => selected.id !== user.id))\n setHydratedUsers(prev => prev.filter(hydratedUser => hydratedUser.id !== user.id))\n }}\n >\n <Trash2 className=\"w-3 h-3\" />\n </Button>\n </div>\n ))}\n {selectedUsers && selectedUsers.length > 5 && (\n <Button\n variant=\"link\"\n type=\"button\"\n className=\"h-auto p-0 text-blue-600 hover:text-blue-800 text-xs\"\n onClick={() => {\n hydrateUsers(50)\n setModalOpen(true)\n }}\n >\n + {selectedUsers.length - 5} more users\n </Button>\n )}\n </div>\n </div>\n ) : (\n <div className=\"mt-2 text-center py-4\">\n <span className=\"text-sm text-muted-foreground\">No users selected.</span>\n </div>\n )}\n </div>\n </div>\n )}\n\n {/* Roles sharing section */}\n {visibility === 'roles' && (\n <div className=\"space-y-3\">\n <div>\n <Label className=\"text-sm font-medium\">Share with roles ({selectedRoles?.length || 0})</Label>\n\n {/* Available roles list */}\n <div className=\"mt-2\">\n <div className=\"text-xs text-muted-foreground mb-1\">Available Roles</div>\n {roles.loading && (\n <div className=\"flex items-center justify-center py-4 border rounded-lg\">\n <Loader2 className=\"h-4 w-4 animate-spin mr-2\" />\n <span className=\"text-sm text-muted-foreground\">Loading roles...</span>\n </div>\n )}\n {!roles.loading && roles.data && (\n <div className=\"max-h-24 overflow-y-auto border rounded-lg\">\n {roles.data.rolesPagination.items.map((role: any) => (\n <label key={role.id} className=\"flex items-center space-x-2 p-2 hover:bg-muted/50 cursor-pointer\">\n <input\n type=\"checkbox\"\n checked={selectedRoles.some(selected => selected.id === role.id)}\n onChange={(e) => {\n if (e.target.checked) {\n setSelectedRoles(prev => [...prev, { id: role.id, rights: 'read' }])\n } else {\n setSelectedRoles(prev => prev.filter(selected => selected.id !== role.id))\n }\n }}\n />\n <span className=\"text-sm capitalize\">{role.name}</span>\n </label>\n ))}\n </div>\n )}\n </div>\n\n {/* Selected roles list */}\n {selectedRoles.length > 0 && roles.data && (\n <div className=\"mt-2\">\n <div className=\"text-xs text-muted-foreground mb-1\">Selected Roles:</div>\n <div className=\"space-y-1\">\n {selectedRoles.map((selectedRole: any) => {\n const role = roles.data.rolesPagination.items.find((r: any) => r.id === selectedRole.id)\n return (\n <div key={selectedRole.id} className=\"flex items-center gap-2 border p-2 rounded-lg text-sm\">\n <span className=\"flex-1 pl-2 capitalize\">{role?.name}</span>\n <Select\n value={selectedRole.rights}\n onValueChange={(value: 'read' | 'write') => {\n setSelectedRoles(prev =>\n prev.map(selected =>\n selected.id === selectedRole.id\n ? { ...selected, rights: value }\n : selected\n )\n )\n }}\n >\n <SelectTrigger className=\"h-6 text-xs w-20 border-none\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"read\">\n <span className=\"pr-7\">Read</span>\n </SelectItem>\n <SelectItem value=\"write\">\n <span className=\"pr-7\">Write</span>\n </SelectItem>\n </SelectContent>\n </Select>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"h-5 w-5 p-0 hover:bg-blue-100\"\n onClick={() => {\n setSelectedRoles(prev => prev.filter(selected => selected.id !== selectedRole.id))\n }}\n >\n <Trash2 className=\"w-3 h-3\" />\n </Button>\n </div>\n )\n })}\n </div>\n </div>\n )}\n </div>\n </div>\n )}\n\n {/* Modal for viewing all selected users */}\n <Dialog open={modalOpen} onOpenChange={setModalOpen} >\n <DialogContent className=\"sm:max-w-2xl max-h-[85vh] flex flex-col\">\n <DialogHeader>\n <DialogTitle>All Selected Users ({selectedUsers?.length || 0})</DialogTitle>\n <DialogDescription>\n View and manage all selected users and their permissions\n </DialogDescription>\n </DialogHeader>\n\n <ScrollArea className=\"flex-1 pr-4\">\n {modalLoading && (\n <div className=\"flex items-center justify-center py-8\">\n <Loader2 className=\"h-6 w-6 animate-spin mr-2\" />\n <span className=\"text-sm text-muted-foreground\">Loading users...</span>\n </div>\n )}\n\n {!modalLoading && hydratedUsers.length > 0 && (\n <div className=\"space-y-2\">\n {hydratedUsers.map((user: any) => (\n <div key={user.id} className=\"flex items-center gap-3 border p-3 rounded-lg\">\n <span className=\"flex-1\">{user.email}</span>\n <Select\n value={user.rights}\n onValueChange={(value: 'read' | 'write') => {\n // Update selectedUsers state\n setSelectedUsers(prev =>\n prev.map(selected =>\n selected.id === user.id\n ? { ...selected, rights: value }\n : selected\n )\n )\n // Update hydratedUsers state if this user is in the first 5\n setHydratedUsers(prev =>\n prev.map(hydratedUser =>\n hydratedUser.id === user.id\n ? { ...hydratedUser, rights: value }\n : hydratedUser\n )\n )\n }}\n >\n <SelectTrigger className=\"w-24\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"read\">Read</SelectItem>\n <SelectItem value=\"write\">Write</SelectItem>\n </SelectContent>\n </Select>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"h-8 w-8 p-0 hover:bg-destructive/10\"\n onClick={() => {\n setSelectedUsers(prev => prev.filter(selected => selected.id !== user.id))\n setHydratedUsers(prev => prev.filter(hydratedUser => hydratedUser.id !== user.id))\n }}\n >\n <Trash2 className=\"w-4 h-4\" />\n </Button>\n </div>\n ))}\n </div>\n )}\n\n {!modalLoading && hydratedUsers.length === 0 && (\n <div className=\"text-center py-8\">\n <span className=\"text-sm text-muted-foreground\">No users selected</span>\n </div>\n )}\n </ScrollArea>\n </DialogContent>\n </Dialog >\n </>\n )\n}","\"use client\"\n\nimport React, { useState, useCallback, useContext, useMemo } from 'react'\nimport type { UIMessage as Message } from 'ai'\nimport { useMutation } from '@apollo/client'\nimport { UserContext } from '@/app/(application)/authenticated'\nimport { CREATE_WORKFLOW_TEMPLATE, UPDATE_WORKFLOW_TEMPLATE } from '@/queries/queries'\nimport { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Textarea } from '@/components/ui/textarea'\nimport { Label } from '@/components/ui/label'\nimport { Trash2, Edit2, ChevronDown } from 'lucide-react'\nimport { useToast } from '@/components/ui/use-toast'\nimport { cn } from '@/lib/utils'\nimport { RBACControl } from './rbac'\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'\nimport { Response } from '@/components/ai-elements/response';\n\ninterface WorkflowVariable {\n name: string\n description?: string\n type: 'string'\n required: boolean\n defaultValue?: string\n}\n\ninterface WorkflowStep {\n id: string\n type: 'user' | 'assistant' | 'tool'\n content?: string\n contentExample?: string\n toolName?: string\n variablesUsed?: string[]\n}\n\ninterface WorkflowTemplate {\n id: string\n name: string\n description?: string\n rights_mode?: 'private' | 'users' | 'roles' | 'public' | 'projects'\n RBAC?: {\n users?: Array<{ id: number; rights: 'read' | 'write' }>\n roles?: Array<{ id: string; rights: 'read' | 'write' }>\n projects?: Array<{ id: string; rights: 'read' | 'write' }>\n }\n variables?: WorkflowVariable[]\n steps_json?: WorkflowStep[]\n}\n\ninterface SaveWorkflowModalProps {\n isOpen: boolean\n onClose: () => void\n messages: Message[]\n sessionTitle?: string\n existingWorkflow?: WorkflowTemplate\n isReadOnly?: boolean\n}\n\nexport function SaveWorkflowModal({ isOpen, onClose, messages, sessionTitle, existingWorkflow, isReadOnly = false }: SaveWorkflowModalProps) {\n const { user } = useContext(UserContext)\n const { toast } = useToast()\n const [rbac, setRbac] = useState({\n rights_mode: existingWorkflow?.rights_mode || 'private',\n users: existingWorkflow?.RBAC?.users || [],\n roles: existingWorkflow?.RBAC?.roles || [],\n projects: existingWorkflow?.RBAC?.projects || []\n })\n const isEditing = Boolean(existingWorkflow)\n\n // Form state\n const [workflowName, setWorkflowName] = useState(existingWorkflow?.name || '')\n const [workflowDescription, setWorkflowDescription] = useState(existingWorkflow?.description || '')\n const [variables, setVariables] = useState<WorkflowVariable[]>(existingWorkflow?.variables || [])\n const [steps, setSteps] = useState<WorkflowStep[]>(existingWorkflow?.steps_json || [])\n const [isCreating, setIsCreating] = useState(false)\n const [activeTab, setActiveTab] = useState('setup')\n const [showAdvanced, setShowAdvanced] = useState(false)\n const [editingVariable, setEditingVariable] = useState<string | null>(null)\n const [editingValue, setEditingValue] = useState('')\n const [createWorkflowTemplate] = useMutation(CREATE_WORKFLOW_TEMPLATE)\n const [updateWorkflowTemplate] = useMutation(UPDATE_WORKFLOW_TEMPLATE)\n\n // Initialize steps from messages\n React.useEffect(() => {\n if (messages.length > 0) {\n const transformedSteps: WorkflowStep[] = []\n\n messages.forEach((message, index) => {\n const messageContent = (message as any).content || (message.parts ? message.parts.filter(p => p.type === 'text').map((p: any) => p.text).join('\\n') : '')\n\n if (message.role === 'user') {\n transformedSteps.push({\n id: `step_${index + 1}`,\n type: 'user',\n content: messageContent,\n variablesUsed: []\n })\n } else if (message.role === 'assistant') {\n transformedSteps.push({\n id: `step_${index + 1}`,\n type: 'assistant',\n contentExample: messageContent\n })\n } else if (message.role === 'system') {\n // Handle tool calls from message parts\n if (message.parts) {\n message.parts.forEach((part: any, partIndex: number) => {\n if (part.type === 'tool-invocation' && part.toolInvocation) {\n transformedSteps.push({\n id: `step_${index + 1}_${partIndex}`,\n type: 'tool',\n toolName: part.toolInvocation.toolName\n })\n }\n })\n }\n }\n })\n console.log(\"transformedSteps\", transformedSteps)\n setSteps(transformedSteps)\n setWorkflowName(sessionTitle || 'My Workflow')\n }\n }, [messages, sessionTitle, steps.length])\n\n // Variable management functions\n const createVariable = useCallback((name: string, description?: string) => {\n if (!name.match(/^[A-Za-z_][A-Za-z0-9_]{1,63}$/)) {\n toast({\n title: \"Invalid variable name\",\n description: \"Variable name must start with a letter or underscore, contain only letters, numbers, and underscores, and be 2-64 characters long.\",\n variant: \"destructive\"\n })\n return false\n }\n\n if (variables.some(v => v.name === name)) {\n return true // Variable already exists, that's fine\n }\n\n const newVariable: WorkflowVariable = {\n name,\n type: 'string',\n required: true,\n description: description || `Auto-detected variable`\n }\n\n setVariables(prev => [...prev, newVariable])\n return true\n }, [variables, toast])\n\n // Auto-detect variables from {variable_name} syntax and update content\n const handleStepContentChange = useCallback((stepId: string, content: string) => {\n // Extract all variables from the content\n const variableMatches = content.match(/\\{([A-Za-z_][A-Za-z0-9_]{1,63})\\}/g) || []\n const variableNames = variableMatches.map((match: string) => match.slice(1, -1)) // Remove { and }\n\n // Create variables that don't exist yet\n variableNames.forEach(name => {\n createVariable(name)\n })\n\n // Update the step content\n setSteps(prev => prev.map(step =>\n step.id === stepId\n ? { ...step, content, variablesUsed: variableNames }\n : step\n ))\n\n // Remove unused variables\n const allUsedVariables = new Set<string>()\n steps.forEach(step => {\n if (step.id === stepId) {\n // Use the new content for this step\n const matches = content.match(/\\{([A-Za-z_][A-Za-z0-9_]{1,63})\\}/g) || []\n matches.forEach((match: string) => allUsedVariables.add(match.slice(1, -1)))\n } else if (step.variablesUsed) {\n step.variablesUsed.forEach(varName => allUsedVariables.add(varName))\n }\n })\n\n // Remove variables that are no longer used anywhere\n setVariables(prev => prev.filter(variable => allUsedVariables.has(variable.name)))\n }, [steps, createVariable])\n\n const deleteVariable = useCallback((variableName: string) => {\n // Remove variable from variables list\n setVariables(prev => prev.filter(v => v.name !== variableName))\n\n // Remove variable references from steps\n setSteps(prev => prev.map(step => ({\n ...step,\n content: step.content?.replace(new RegExp(`\\\\{${variableName}\\\\}`, 'g'), ''),\n variablesUsed: step.variablesUsed?.filter(v => v !== variableName) || []\n })))\n }, [])\n\n const renameVariable = useCallback((oldName: string, newName: string) => {\n if (!newName.match(/^[A-Za-z_][A-Za-z0-9_]{1,63}$/)) {\n toast({\n title: \"Invalid variable name\",\n description: \"Variable name must start with a letter or underscore and contain only letters, numbers, and underscores.\",\n variant: \"destructive\"\n })\n return false\n }\n\n if (variables.some(v => v.name === newName && v.name !== oldName)) {\n toast({\n title: \"Variable name already exists\",\n description: \"A variable with this name already exists.\",\n variant: \"destructive\"\n })\n return false\n }\n\n // Update variable name\n setVariables(prev => prev.map(v =>\n v.name === oldName ? { ...v, name: newName } : v\n ))\n\n // Update variable references in steps\n setSteps(prev => prev.map(step => ({\n ...step,\n content: step.content?.replace(new RegExp(`\\\\{${oldName}\\\\}`, 'g'), `{${newName}}`),\n variablesUsed: step.variablesUsed?.map(v => v === oldName ? newName : v) || []\n })))\n\n return true\n }, [variables, toast])\n\n // Validation\n const isValid = useMemo(() => {\n if (!workflowName.trim()) return false\n if (steps.length === 0) return false\n if (rbac.rights_mode === 'users' && rbac.users?.length === 0) return false\n if (rbac.rights_mode === 'roles' && rbac.roles?.length === 0) return false\n if (rbac.rights_mode === 'projects' && rbac.projects?.length === 0) return false\n\n // Check that all user steps have non-empty content after variable replacement\n const userSteps = steps.filter(s => s.type === 'user')\n return userSteps.every(step => {\n const content = step.content || ''\n const withoutVariables = content.replace(/\\{[^}]+\\}/g, '')\n return withoutVariables.trim().length > 0\n })\n }, [workflowName, steps, rbac])\n\n // Save workflow\n const handleSave = useCallback(async () => {\n if (!isValid || !user?.id) return\n\n setIsCreating(true)\n\n try {\n\n const stepsJson = steps.map(step => ({\n id: step.id,\n type: step.type,\n ...(step.type === 'user' && { content: step.content }),\n ...(step.type === 'assistant' && { contentExample: step.contentExample }),\n ...(step.type === 'tool' && { toolName: step.toolName })\n }))\n\n if (isEditing && existingWorkflow) {\n await updateWorkflowTemplate({\n variables: {\n id: existingWorkflow.id,\n name: workflowName.trim(),\n description: workflowDescription.trim() || null,\n rights_mode: rbac.rights_mode,\n RBAC: {\n users: rbac.users,\n roles: rbac.roles,\n projects: rbac.projects\n },\n variables,\n steps_json: stepsJson\n }\n })\n\n toast({\n title: \"Workflow updated!\",\n description: `\"${workflowName}\" has been updated successfully.`\n })\n } else {\n await createWorkflowTemplate({\n variables: {\n name: workflowName.trim(),\n description: workflowDescription.trim() || null,\n owner: user.id,\n rights_mode: rbac.rights_mode,\n RBAC: {\n users: rbac.users,\n roles: rbac.roles,\n projects: rbac.projects\n },\n variables,\n steps_json: stepsJson\n }\n })\n\n toast({\n title: \"Workflow created!\",\n description: `\"${workflowName}\" has been saved as a workflow template.`\n })\n }\n\n onClose()\n } catch (error) {\n console.error('Error saving workflow:', error)\n toast({\n title: \"Error saving workflow\",\n description: \"There was an error saving your workflow. Please try again.\",\n variant: \"destructive\"\n })\n } finally {\n setIsCreating(false)\n }\n }, [isValid, user?.id, workflowName, workflowDescription, rbac, variables, steps, createWorkflowTemplate, updateWorkflowTemplate, toast, onClose, isEditing, existingWorkflow])\n\n if (!isOpen) return null\n\n return (\n <Dialog open={isOpen} onOpenChange={onClose}>\n <DialogContent className=\"max-w-4xl max-h-[92vh] flex flex-col\">\n <DialogHeader className=\"pb-4\">\n <DialogTitle className=\"text-lg\">\n {isEditing ? (isReadOnly ? 'View Workflow' : 'Edit Workflow') : 'Save as Workflow'}\n </DialogTitle>\n <DialogDescription className=\"text-sm\">\n {isEditing\n ? (isReadOnly\n ? 'View workflow details and configuration.'\n : 'Modify this workflow template. Edit your messages and use {variable_name} syntax to create variables.'\n )\n : 'Convert this conversation into a reusable workflow template. Edit your messages and use {variable_name} syntax to create variables.'\n }\n </DialogDescription>\n </DialogHeader>\n\n <div className=\"flex-1 mt-6\">\n <Tabs value={activeTab} onValueChange={setActiveTab} className=\"h-full flex flex-col\">\n <TabsList className=\"grid w-full grid-cols-2 mb-6\">\n <TabsTrigger value=\"setup\" className=\"data-[state=active]:bg-background\">\n Setup & Permissions\n </TabsTrigger>\n <TabsTrigger value=\"workflow\" className=\"data-[state=active]:bg-background\">\n Workflow Steps & Variables\n </TabsTrigger>\n </TabsList>\n\n <div className=\"flex-1 pb-6\">\n <TabsContent value=\"setup\" className=\"mt-0 h-full\">\n <div className=\"space-y-6\">\n <div className=\"space-y-4\">\n <div>\n <Label htmlFor=\"workflow-name\" className=\"text-base font-semibold\">Workflow Name *</Label>\n <Input\n id=\"workflow-name\"\n value={workflowName}\n onChange={(e) => setWorkflowName(e.target.value)}\n placeholder=\"My Workflow\"\n className=\"mt-2 h-11\"\n readOnly={isReadOnly}\n />\n {!workflowName.trim() && (\n <p className=\"text-sm text-destructive mt-1 flex items-center\">\n <span className=\"mr-1\">⚠️</span>\n Workflow name is required\n </p>\n )}\n </div>\n\n <div>\n <Label htmlFor=\"workflow-description\" className=\"text-base font-semibold\">Description</Label>\n <Textarea\n id=\"workflow-description\"\n value={workflowDescription}\n onChange={(e) => setWorkflowDescription(e.target.value)}\n placeholder=\"Describe what this workflow does and when to use it...\"\n rows={3}\n className=\"mt-2 resize-none\"\n readOnly={isReadOnly}\n />\n </div>\n </div>\n\n <div className=\"border-t pt-6\">\n <div className=\"flex items-center justify-between mb-4\">\n <div>\n <h3 className=\"text-base font-semibold mb-1\">Sharing & Permissions</h3>\n <p className=\"text-sm text-muted-foreground\">Control who can view and edit this workflow</p>\n </div>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n onClick={() => setShowAdvanced(!showAdvanced)}\n className=\"ml-4\"\n >\n {showAdvanced ? 'Hide Advanced' : 'Show Advanced'}\n <ChevronDown className={cn(\"w-4 h-4 ml-1 transition-transform\", showAdvanced && \"rotate-180\")} />\n </Button>\n </div>\n {showAdvanced && (\n <RBACControl\n initialRightsMode={existingWorkflow?.rights_mode}\n initialUsers={existingWorkflow?.RBAC?.users}\n initialRoles={existingWorkflow?.RBAC?.roles}\n initialProjects={existingWorkflow?.RBAC?.projects}\n onChange={(rights_mode, users, roles, projects) => {\n setRbac({\n rights_mode,\n users,\n roles,\n projects\n })\n }}\n />\n )}\n {!showAdvanced && (\n <div className=\"text-sm text-muted-foreground bg-muted/30 p-3 rounded-md\">\n Using default permissions (private to you)\n </div>\n )}\n </div>\n </div>\n </TabsContent>\n\n <TabsContent value=\"workflow\" className=\"mt-0 h-full\">\n <div className=\"h-full flex gap-6\">\n {/* Left side - Messages */}\n <div className=\"flex-1\">\n <div className=\"mb-4\">\n <h3 className=\"text-base font-semibold mb-2\">Conversation Steps</h3>\n <div className=\"border rounded-lg p-3 mb-4\">\n <p className=\"text-sm\">\n 💡 <strong>Pro tip:</strong> Use {`{variable_name}`} syntax in your messages to create reusable variables. For example you can use {`{company_name}`} to create a variable for the company name\n so you can reuse this flow template with different companies.\n </p>\n </div>\n </div>\n\n <div className=\"space-y-4 max-h-[500px] overflow-y-auto pr-2\">\n {steps.map((step, index) => (\n <div key={step.id}>\n <div className=\"border rounded-lg p-4 bg-card\">\n <div className=\"flex items-center gap-3 mb-3\">\n <span className={cn(\n \"text-sm font-medium px-3 py-1 rounded-full\",\n step.type === 'user' ? \"bg-blue-100 text-blue-700\" :\n step.type === 'assistant' ? \"bg-green-100 text-green-700\" :\n \"bg-purple-100 text-purple-700\"\n )}>\n {step.type === 'user' ? '👤 User' :\n step.type === 'assistant' ? '🤖 Assistant' :\n `🔧 ${step.toolName}`}\n </span>\n {step.variablesUsed && step.variablesUsed.length > 0 && (\n <div className=\"flex gap-1 flex-wrap\">\n {step.variablesUsed.map(varName => (\n <span key={varName} className=\"text-xs bg-blue-50 text-blue-600 px-2 py-1 rounded font-mono border border-blue-200\">\n {`{${varName}}`}\n </span>\n ))}\n </div>\n )}\n </div>\n\n {step.type === 'user' ? (\n <div>\n <Textarea\n value={step.content || ''}\n onChange={(e) => handleStepContentChange(step.id, e.target.value)}\n placeholder=\"Enter your message...\"\n className=\"min-h-[80px] resize-none\"\n rows={3}\n readOnly={isReadOnly}\n />\n </div>\n ) : (\n <div className=\"bg-muted/50 p-3 rounded-md\">\n {step.type === 'assistant' ? (\n <div>\n <div className=\"text-xs font-medium text-muted-foreground mb-2\">Example response (will be regenerated):</div>\n <Response>\n {step.contentExample}\n </Response>\n </div>\n ) : (\n <div>\n <div className=\"text-xs font-medium text-muted-foreground mb-1\">Tool: {step.toolName}</div>\n <div className=\"text-sm text-muted-foreground\">Parameters will be generated dynamically</div>\n </div>\n )}\n </div>\n )}\n </div>\n {index < steps.length - 1 && (\n <div className=\"flex justify-center my-3\">\n <ChevronDown className=\"w-5 h-5 text-muted-foreground/50\" />\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n\n {/* Right side - Variables */}\n <div className=\"w-80\">\n <div className=\"mb-4\">\n <h3 className=\"text-base font-semibold mb-2\">Variables ({variables.length})</h3>\n <p className=\"text-sm text-muted-foreground\">Auto-detected from your messages</p>\n </div>\n\n {variables.length > 0 ? (\n <div className=\"space-y-3 max-h-[500px] overflow-y-auto\">\n {variables.map((variable) => (\n <div key={variable.name} className=\"border rounded-lg p-3 bg-card\">\n <div className=\"flex items-start justify-between mb-2\">\n <div className=\"font-mono text-blue-600 font-medium text-sm\">\n {`{${variable.name}}`}\n </div>\n {!isReadOnly && (\n <div className=\"flex gap-1\">\n {editingVariable === variable.name ? (\n <Input\n value={editingValue}\n onChange={(e) => setEditingValue(e.target.value)}\n className=\"h-6 text-xs font-mono w-20\"\n placeholder=\"variable_name\"\n autoFocus\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n if (editingValue && editingValue !== variable.name) {\n renameVariable(variable.name, editingValue)\n }\n setEditingVariable(null)\n setEditingValue('')\n } else if (e.key === 'Escape') {\n setEditingVariable(null)\n setEditingValue('')\n }\n }}\n onBlur={() => {\n if (editingValue && editingValue !== variable.name) {\n renameVariable(variable.name, editingValue)\n }\n setEditingVariable(null)\n setEditingValue('')\n }}\n />\n ) : (\n <>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"h-6 w-6 p-0\"\n onClick={() => {\n setEditingVariable(variable.name)\n setEditingValue(variable.name)\n }}\n >\n <Edit2 className=\"w-3 h-3\" />\n </Button>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"h-6 w-6 p-0 text-destructive hover:bg-destructive/10\"\n onClick={() => deleteVariable(variable.name)}\n >\n <Trash2 className=\"w-3 h-3\" />\n </Button>\n </>\n )}\n </div>\n )}\n </div>\n <div className=\"text-xs text-muted-foreground mb-2\">\n {variable.description}\n </div>\n <div className=\"flex gap-1\">\n <span className=\"text-xs bg-gray-100 text-gray-700 px-1.5 py-0.5 rounded\">\n {variable.type}\n </span>\n {variable.required && (\n <span className=\"text-xs bg-orange-100 text-orange-700 px-1.5 py-0.5 rounded\">\n required\n </span>\n )}\n </div>\n </div>\n ))}\n </div>\n ) : (\n <div className=\"text-center py-8 text-muted-foreground border-2 border-dashed rounded-lg\">\n <div className=\"mb-3\">\n <span className=\"text-3xl\">📝</span>\n </div>\n <div className=\"text-sm mb-1 font-medium\">No variables yet</div>\n <div className=\"text-xs\">\n Use {`{variable_name}`} syntax in your messages\n </div>\n </div>\n )}\n </div>\n </div>\n </TabsContent>\n </div>\n </Tabs>\n </div>\n\n <div className=\"border-t p-4 bg-background\">\n <DialogFooter>\n <Button variant=\"outline\" onClick={onClose}>\n {isReadOnly ? 'Close' : 'Cancel'}\n </Button>\n {!isReadOnly && (\n <>\n <Button\n onClick={handleSave}\n disabled={!isValid || isCreating}\n className={cn(\n \"min-w-[140px]\",\n !isValid && \"opacity-50 cursor-not-allowed\"\n )}\n >\n {isCreating ? (\n <>\n <div className=\"animate-spin rounded-full h-4 w-4 border-b-2 border-white mr-2\"></div>\n {isEditing ? 'Updating...' : 'Saving...'}\n </>\n ) : (\n isEditing ? 'Update Workflow' : 'Save Workflow'\n )}\n </Button>\n\n </>\n\n )}\n </DialogFooter>\n </div>\n </DialogContent>\n </Dialog>\n )\n}","\"use client\";\n\nimport { type DialogProps } from \"@radix-ui/react-dialog\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport { Search } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { Dialog, DialogContent } from \"@/components/ui/dialog\";\nimport { cn } from \"@/lib/utils\";\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className,\n )}\n {...props}\n />\n));\nCommand.displayName = CommandPrimitive.displayName;\n\ninterface CommandDialogProps extends DialogProps {}\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:size-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:size-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n};\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n </div>\n));\n\nCommandInput.displayName = CommandPrimitive.Input.displayName;\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n));\n\nCommandList.displayName = CommandPrimitive.List.displayName;\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty\n ref={ref}\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n));\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className,\n )}\n {...props}\n />\n));\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n />\n));\n\nCommandItem.displayName = CommandPrimitive.Item.displayName;\n\nconst CommandShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n};\nCommandShortcut.displayName = \"CommandShortcut\";\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n","import { cn } from \"@/lib/utils\";\n\nexport const Loading = ({ className }: { className?: null | string }) => {\n return (\n <svg\n aria-hidden=\"true\"\n role=\"status\"\n className={cn(\"inline w-4 h-4 text-white animate-spin fill-inherit\", className)}\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n className=\"fill-inherit opacity-20\"\n ></path>\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n className=\"fill-inherit\"\n ></path>\n </svg>\n );\n};\n","\"use client\";\n\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Popover = PopoverPrimitive.Root;\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\nexport { Popover, PopoverTrigger, PopoverContent };\n","\"use client\";\n\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground\",\n className,\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm\",\n className,\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className,\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n"],"names":["CodeBlockContext","createContext","code","CodeBlock","language","showLineNumbers","className","children","props","param","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","Provider","value","div","cn","jsxs","SyntaxHighlighter","codeTagProps","customStyle","margin","padding","fontSize","background","color","lineNumberStyle","paddingRight","minWidth","style","oneLight","oneDark","CodeBlockCopyButton","onCopy","onError","timeout","isCopied","setIsCopied","useState","useContext","copyToClipboard","navigator","clipboard","writeText","setTimeout","error","Icon","CheckIcon","CopyIcon","Button","onClick","size","variant","HardenedMarkdown","hardenReactMarkdown","ReactMarkdown","components","ol","node","li","ul","hr","strong","span","a","rel","target","h1","h2","h3","h4","h5","h6","table","thead","tbody","tr","th","td","blockquote","position","start","line","end","pre","properties","replace","isValidElement","console","log","Response","memo","options","allowedImagePrefixes","allowedLinkPrefixes","defaultOrigin","parseIncompleteMarkdown","shouldParseIncompleteMarkdown","parsedChildren","text","result","linkMatch","match","startIndex","lastIndexOf","substring","asteriskPairs","length","concat","underscorePairs","singleAsterisks","split","reduce","acc","char","index","prevChar","nextChar","singleUnderscores","includes","singleBacktickCount","i","isTripleStart","isTripleMiddle","isTripleEnd","tildePairs","rehypePlugins","rehypeKatex","remarkPlugins","remarkGfm","remarkMath","prevProps","nextProps","displayName","VISIBILITY_OPTIONS","label","description","icon","Lock","Users","Settings","Globe","Folder","RBACControl","visibilityOptions","usersData","allowedModes","initialRightsMode","initialUsers","initialRoles","initialProjects","onChange","visibility","setVisibility","selectedUsers","setSelectedUsers","selectedRoles","setSelectedRoles","hydratedUsers","setHydratedUsers","visibilitySelectorOpen","setVisibilitySelectorOpen","userFilters","setUserFilters","userSearchValue","setUserSearchValue","modalOpen","setModalOpen","modalLoading","setModalLoading","client","useApolloClient","data","loading","usersLoading","refetch","refetchUsers","useQuery","GET_USERS","variables","page","limit","filters","skip","roles","GET_USER_ROLES","fetchPolicy","nextFetchPolicy","type","ne","searchUsers","useCallback","copy","exists","find","filter","email","contains","push","hydrateUsers","max","promises","slice","map","id","rights","user","query","GET_USER_BY_ID","userById","Promise","all","useEffect","filteredUsers","option","Fragment","Label","Popover","open","onOpenChange","PopoverTrigger","asChild","role","aria-expanded","ChevronsUpDown","PopoverContent","Command","CommandInput","placeholder","CommandList","CommandEmpty","CommandGroup","CommandItem","onSelect","Check","Input","e","Loader2","usersPagination","items","some","selected","input","checked","prev","Select","onValueChange","hydratedUser","SelectTrigger","SelectValue","SelectContent","SelectItem","Trash2","rolesPagination","name","r","selectedRole","Dialog","DialogContent","DialogHeader","DialogTitle","DialogDescription","ScrollArea","SaveWorkflowModal","existingWorkflow","isOpen","onClose","messages","sessionTitle","isReadOnly","UserContext","toast","useToast","rbac","setRbac","rights_mode","users","RBAC","projects","isEditing","Boolean","workflowName","setWorkflowName","workflowDescription","setWorkflowDescription","setVariables","steps","setSteps","steps_json","isCreating","setIsCreating","activeTab","setActiveTab","showAdvanced","setShowAdvanced","editingVariable","setEditingVariable","editingValue","setEditingValue","createWorkflowTemplate","useMutation","CREATE_WORKFLOW_TEMPLATE","updateWorkflowTemplate","UPDATE_WORKFLOW_TEMPLATE","React","transformedSteps","forEach","message","messageContent","content","parts","p","join","variablesUsed","contentExample","part","partIndex","toolInvocation","toolName","createVariable","title","v","newVariable","required","handleStepContentChange","stepId","variableNames","variableMatches","step","allUsedVariables","Set","matches","add","varName","variable","has","deleteVariable","variableName","renameVariable","oldName","newName","isValid","useMemo","trim","userSteps","s","every","withoutVariables","handleSave","stepsJson","owner","Tabs","TabsList","TabsTrigger","TabsContent","htmlFor","readOnly","Textarea","rows","ChevronDown","autoFocus","onKeyDown","key","onBlur","Edit2","DialogFooter","disabled","ref","CommandPrimitive","cmdk-input-wrapper","Search","List","Empty","Group","CommandSeparator","Separator","Item","Loading","svg","aria-hidden","viewBox","fill","xmlns","path","d","PopoverPrimitive","align","sideOffset","TabsPrimitive"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3397],{12199:function(e,t,r){r.d(t,{D:function(){return d}});var n=r(5853),o=r(79285),l=r(49466),i=r(36628),a=r(59058),u=r(77828),s=r(63251),c=r(59394).Nq?o.useLayoutEffect:o.useEffect;function d(e,t){var r=(0,s.x)(null==t?void 0:t.client);(0,a.Vp)(e,a.n_.Mutation);var d=o.useState({called:!1,loading:!1,client:r}),f=d[0],p=d[1],v=o.useRef({result:f,mutationId:0,isMounted:!0,client:r,mutation:e,options:t});c(function(){Object.assign(v.current,{client:r,options:t,mutation:e})});var w=o.useCallback(function(e){void 0===e&&(e={});var t=v.current,r=t.options,o=t.mutation,a=(0,n.pi)((0,n.pi)({},r),{mutation:o}),s=e.client||v.current.client;v.current.result.loading||a.ignoreResults||!v.current.isMounted||p(v.current.result={loading:!0,error:void 0,data:void 0,called:!0,client:s});var c=++v.current.mutationId,d=(0,l.J)(a,e);return s.mutate(d).then(function(t){var r,n,o=t.data,l=t.errors,a=l&&l.length>0?new u.cA({graphQLErrors:l}):void 0,f=e.onError||(null===(r=v.current.options)||void 0===r?void 0:r.onError);if(a&&f&&f(a,d),c===v.current.mutationId&&!d.ignoreResults){var w={called:!0,loading:!1,data:o,error:a,client:s};v.current.isMounted&&!(0,i.D)(v.current.result,w)&&p(v.current.result=w)}var h=e.onCompleted||(null===(n=v.current.options)||void 0===n?void 0:n.onCompleted);return a||null==h||h(t.data,d),t},function(t){if(c===v.current.mutationId&&v.current.isMounted){var r,n={loading:!1,error:t,data:void 0,called:!0,client:s};(0,i.D)(v.current.result,n)||p(v.current.result=n)}var o=e.onError||(null===(r=v.current.options)||void 0===r?void 0:r.onError);if(o)return o(t,d),{data:void 0,errors:t};throw t})},[]),h=o.useCallback(function(){if(v.current.isMounted){var e={called:!1,loading:!1,client:v.current.client};Object.assign(v.current,{mutationId:0,result:e}),p(e)}},[]);return o.useEffect(function(){var e=v.current;return e.isMounted=!0,function(){e.isMounted=!1}},[]),[w,(0,n.pi)({reset:h},f)]}},14488:function(e,t,r){r.d(t,{Ns:function(){return G},fC:function(){return J},gb:function(){return C},q4:function(){return W},l_:function(){return Q}});var n=r(2265),o=r(66840),l=r(98575),i=r(61188),a=e=>{var t,r;let o,a;let{present:s,children:c}=e,d=function(e){var t,r;let[o,l]=n.useState(),a=n.useRef(null),s=n.useRef(e),c=n.useRef("none"),[d,f]=(t=e?"mounted":"unmounted",r={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},n.useReducer((e,t)=>{let n=r[e][t];return null!=n?n:e},t));return n.useEffect(()=>{let e=u(a.current);c.current="mounted"===d?e:"none"},[d]),(0,i.b)(()=>{let t=a.current,r=s.current;if(r!==e){let n=c.current,o=u(t);e?f("MOUNT"):"none"===o||(null==t?void 0:t.display)==="none"?f("UNMOUNT"):r&&n!==o?f("ANIMATION_OUT"):f("UNMOUNT"),s.current=e}},[e,f]),(0,i.b)(()=>{if(o){var e;let t;let r=null!==(e=o.ownerDocument.defaultView)&&void 0!==e?e:window,n=e=>{let n=u(a.current).includes(CSS.escape(e.animationName));if(e.target===o&&n&&(f("ANIMATION_END"),!s.current)){let e=o.style.animationFillMode;o.style.animationFillMode="forwards",t=r.setTimeout(()=>{"forwards"===o.style.animationFillMode&&(o.style.animationFillMode=e)})}},l=e=>{e.target===o&&(c.current=u(a.current))};return o.addEventListener("animationstart",l),o.addEventListener("animationcancel",n),o.addEventListener("animationend",n),()=>{r.clearTimeout(t),o.removeEventListener("animationstart",l),o.removeEventListener("animationcancel",n),o.removeEventListener("animationend",n)}}f("ANIMATION_END")},[o,f]),{isPresent:["mounted","unmountSuspended"].includes(d),ref:n.useCallback(e=>{a.current=e?getComputedStyle(e):null,l(e)},[])}}(s),f="function"==typeof c?c({present:d.isPresent}):n.Children.only(c),p=(0,l.e)(d.ref,(o=null===(t=Object.getOwnPropertyDescriptor(f.props,"ref"))||void 0===t?void 0:t.get)&&"isReactWarning"in o&&o.isReactWarning?f.ref:(o=null===(r=Object.getOwnPropertyDescriptor(f,"ref"))||void 0===r?void 0:r.get)&&"isReactWarning"in o&&o.isReactWarning?f.props.ref:f.props.ref||f.ref);return"function"==typeof c||d.isPresent?n.cloneElement(f,{ref:p}):null};function u(e){return(null==e?void 0:e.animationName)||"none"}a.displayName="Presence";var s=r(73966),c=r(26606),d=r(29114),f=r(62484);function p(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n.defaultPrevented)return t?.(n)}}"undefined"!=typeof window&&window.document&&window.document.createElement;var v=r(57437),w="ScrollArea",[h,m]=(0,s.b)(w),[g,b]=h(w),S=n.forwardRef((e,t)=>{let{__scopeScrollArea:r,type:i="hover",dir:a,scrollHideDelay:u=600,...s}=e,[c,f]=n.useState(null),[p,w]=n.useState(null),[h,m]=n.useState(null),[b,S]=n.useState(null),[E,y]=n.useState(null),[T,C]=n.useState(0),[R,x]=n.useState(0),[N,L]=n.useState(!1),[P,_]=n.useState(!1),D=(0,l.e)(t,e=>f(e)),A=(0,d.gm)(a);return(0,v.jsx)(g,{scope:r,type:i,dir:A,scrollHideDelay:u,scrollArea:c,viewport:p,onViewportChange:w,content:h,onContentChange:m,scrollbarX:b,onScrollbarXChange:S,scrollbarXEnabled:N,onScrollbarXEnabledChange:L,scrollbarY:E,onScrollbarYChange:y,scrollbarYEnabled:P,onScrollbarYEnabledChange:_,onCornerWidthChange:C,onCornerHeightChange:x,children:(0,v.jsx)(o.WV.div,{dir:A,...s,ref:D,style:{position:"relative","--radix-scroll-area-corner-width":T+"px","--radix-scroll-area-corner-height":R+"px",...e.style}})})});S.displayName=w;var E="ScrollAreaViewport",y=n.forwardRef((e,t)=>{let{__scopeScrollArea:r,children:i,nonce:a,...u}=e,s=b(E,r),c=n.useRef(null),d=(0,l.e)(t,c,s.onViewportChange);return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),(0,v.jsx)(o.WV.div,{"data-radix-scroll-area-viewport":"",...u,ref:d,style:{overflowX:s.scrollbarXEnabled?"scroll":"hidden",overflowY:s.scrollbarYEnabled?"scroll":"hidden",...e.style},children:(0,v.jsx)("div",{ref:s.onContentChange,style:{minWidth:"100%",display:"table"},children:i})})]})});y.displayName=E;var T="ScrollAreaScrollbar",C=n.forwardRef((e,t)=>{let{forceMount:r,...o}=e,l=b(T,e.__scopeScrollArea),{onScrollbarXEnabledChange:i,onScrollbarYEnabledChange:a}=l,u="horizontal"===e.orientation;return n.useEffect(()=>(u?i(!0):a(!0),()=>{u?i(!1):a(!1)}),[u,i,a]),"hover"===l.type?(0,v.jsx)(R,{...o,ref:t,forceMount:r}):"scroll"===l.type?(0,v.jsx)(x,{...o,ref:t,forceMount:r}):"auto"===l.type?(0,v.jsx)(N,{...o,ref:t,forceMount:r}):"always"===l.type?(0,v.jsx)(L,{...o,ref:t}):null});C.displayName=T;var R=n.forwardRef((e,t)=>{let{forceMount:r,...o}=e,l=b(T,e.__scopeScrollArea),[i,u]=n.useState(!1);return n.useEffect(()=>{let e=l.scrollArea,t=0;if(e){let r=()=>{window.clearTimeout(t),u(!0)},n=()=>{t=window.setTimeout(()=>u(!1),l.scrollHideDelay)};return e.addEventListener("pointerenter",r),e.addEventListener("pointerleave",n),()=>{window.clearTimeout(t),e.removeEventListener("pointerenter",r),e.removeEventListener("pointerleave",n)}}},[l.scrollArea,l.scrollHideDelay]),(0,v.jsx)(a,{present:r||i,children:(0,v.jsx)(N,{"data-state":i?"visible":"hidden",...o,ref:t})})}),x=n.forwardRef((e,t)=>{var r,o;let{forceMount:l,...i}=e,u=b(T,e.__scopeScrollArea),s="horizontal"===e.orientation,c=B(()=>f("SCROLL_END"),100),[d,f]=(r="hidden",o={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},n.useReducer((e,t)=>{let r=o[e][t];return null!=r?r:e},r));return n.useEffect(()=>{if("idle"===d){let e=window.setTimeout(()=>f("HIDE"),u.scrollHideDelay);return()=>window.clearTimeout(e)}},[d,u.scrollHideDelay,f]),n.useEffect(()=>{let e=u.viewport,t=s?"scrollLeft":"scrollTop";if(e){let r=e[t],n=()=>{let n=e[t];r!==n&&(f("SCROLL"),c()),r=n};return e.addEventListener("scroll",n),()=>e.removeEventListener("scroll",n)}},[u.viewport,s,f,c]),(0,v.jsx)(a,{present:l||"hidden"!==d,children:(0,v.jsx)(L,{"data-state":"hidden"===d?"hidden":"visible",...i,ref:t,onPointerEnter:p(e.onPointerEnter,()=>f("POINTER_ENTER")),onPointerLeave:p(e.onPointerLeave,()=>f("POINTER_LEAVE"))})})}),N=n.forwardRef((e,t)=>{let r=b(T,e.__scopeScrollArea),{forceMount:o,...l}=e,[i,u]=n.useState(!1),s="horizontal"===e.orientation,c=B(()=>{if(r.viewport){let e=r.viewport.offsetWidth<r.viewport.scrollWidth,t=r.viewport.offsetHeight<r.viewport.scrollHeight;u(s?e:t)}},10);return q(r.viewport,c),q(r.content,c),(0,v.jsx)(a,{present:o||i,children:(0,v.jsx)(L,{"data-state":i?"visible":"hidden",...l,ref:t})})}),L=n.forwardRef((e,t)=>{let{orientation:r="vertical",...o}=e,l=b(T,e.__scopeScrollArea),i=n.useRef(null),a=n.useRef(0),[u,s]=n.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),c=k(u.viewport,u.content),d={...o,sizes:u,onSizesChange:s,hasThumb:!!(c>0&&c<1),onThumbChange:e=>i.current=e,onThumbPointerUp:()=>a.current=0,onThumbPointerDown:e=>a.current=e};function f(e,t){return function(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"ltr",o=V(r),l=t||o/2,i=r.scrollbar.paddingStart+l,a=r.scrollbar.size-r.scrollbar.paddingEnd-(o-l),u=r.content-r.viewport;return Y([i,a],"ltr"===n?[0,u]:[-1*u,0])(e)}(e,a.current,u,t)}return"horizontal"===r?(0,v.jsx)(P,{...d,ref:t,onThumbPositionChange:()=>{if(l.viewport&&i.current){let e=X(l.viewport.scrollLeft,u,l.dir);i.current.style.transform="translate3d(".concat(e,"px, 0, 0)")}},onWheelScroll:e=>{l.viewport&&(l.viewport.scrollLeft=e)},onDragScroll:e=>{l.viewport&&(l.viewport.scrollLeft=f(e,l.dir))}}):"vertical"===r?(0,v.jsx)(_,{...d,ref:t,onThumbPositionChange:()=>{if(l.viewport&&i.current){let e=X(l.viewport.scrollTop,u);i.current.style.transform="translate3d(0, ".concat(e,"px, 0)")}},onWheelScroll:e=>{l.viewport&&(l.viewport.scrollTop=e)},onDragScroll:e=>{l.viewport&&(l.viewport.scrollTop=f(e))}}):null}),P=n.forwardRef((e,t)=>{let{sizes:r,onSizesChange:o,...i}=e,a=b(T,e.__scopeScrollArea),[u,s]=n.useState(),c=n.useRef(null),d=(0,l.e)(t,c,a.onScrollbarXChange);return n.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,v.jsx)(j,{"data-orientation":"horizontal",...i,ref:d,sizes:r,style:{bottom:0,left:"rtl"===a.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===a.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":V(r)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,r)=>{if(a.viewport){let n=a.viewport.scrollLeft+t.deltaX;e.onWheelScroll(n),n>0&&n<r&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&u&&o({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:H(u.paddingLeft),paddingEnd:H(u.paddingRight)}})}})}),_=n.forwardRef((e,t)=>{let{sizes:r,onSizesChange:o,...i}=e,a=b(T,e.__scopeScrollArea),[u,s]=n.useState(),c=n.useRef(null),d=(0,l.e)(t,c,a.onScrollbarYChange);return n.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,v.jsx)(j,{"data-orientation":"vertical",...i,ref:d,sizes:r,style:{top:0,right:"ltr"===a.dir?0:void 0,left:"rtl"===a.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":V(r)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,r)=>{if(a.viewport){let n=a.viewport.scrollTop+t.deltaY;e.onWheelScroll(n),n>0&&n<r&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&u&&o({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:H(u.paddingTop),paddingEnd:H(u.paddingBottom)}})}})}),[D,A]=h(T),j=n.forwardRef((e,t)=>{let{__scopeScrollArea:r,sizes:i,hasThumb:a,onThumbChange:u,onThumbPointerUp:s,onThumbPointerDown:d,onThumbPositionChange:f,onDragScroll:w,onWheelScroll:h,onResize:m,...g}=e,S=b(T,r),[E,y]=n.useState(null),C=(0,l.e)(t,e=>y(e)),R=n.useRef(null),x=n.useRef(""),N=S.viewport,L=i.content-i.viewport,P=(0,c.W)(h),_=(0,c.W)(f),A=B(m,10);function j(e){R.current&&w({x:e.clientX-R.current.left,y:e.clientY-R.current.top})}return n.useEffect(()=>{let e=e=>{let t=e.target;(null==E?void 0:E.contains(t))&&P(e,L)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})},[N,E,L,P]),n.useEffect(_,[i,_]),q(E,A),q(S.content,A),(0,v.jsx)(D,{scope:r,scrollbar:E,hasThumb:a,onThumbChange:(0,c.W)(u),onThumbPointerUp:(0,c.W)(s),onThumbPositionChange:_,onThumbPointerDown:(0,c.W)(d),children:(0,v.jsx)(o.WV.div,{...g,ref:C,style:{position:"absolute",...g.style},onPointerDown:p(e.onPointerDown,e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),R.current=E.getBoundingClientRect(),x.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",S.viewport&&(S.viewport.style.scrollBehavior="auto"),j(e))}),onPointerMove:p(e.onPointerMove,j),onPointerUp:p(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=x.current,S.viewport&&(S.viewport.style.scrollBehavior=""),R.current=null})})})}),O="ScrollAreaThumb",W=n.forwardRef((e,t)=>{let{forceMount:r,...n}=e,o=A(O,e.__scopeScrollArea);return(0,v.jsx)(a,{present:r||o.hasThumb,children:(0,v.jsx)(I,{ref:t,...n})})}),I=n.forwardRef((e,t)=>{let{__scopeScrollArea:r,style:i,...a}=e,u=b(O,r),s=A(O,r),{onThumbPositionChange:c}=s,d=(0,l.e)(t,e=>s.onThumbChange(e)),f=n.useRef(void 0),w=B(()=>{f.current&&(f.current(),f.current=void 0)},100);return n.useEffect(()=>{let e=u.viewport;if(e){let t=()=>{if(w(),!f.current){let t=F(e,c);f.current=t,c()}};return c(),e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}},[u.viewport,w,c]),(0,v.jsx)(o.WV.div,{"data-state":s.hasThumb?"visible":"hidden",...a,ref:d,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...i},onPointerDownCapture:p(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),r=e.clientX-t.left,n=e.clientY-t.top;s.onThumbPointerDown({x:r,y:n})}),onPointerUp:p(e.onPointerUp,s.onThumbPointerUp)})});W.displayName=O;var M="ScrollAreaCorner",U=n.forwardRef((e,t)=>{let r=b(M,e.__scopeScrollArea),n=!!(r.scrollbarX&&r.scrollbarY);return"scroll"!==r.type&&n?(0,v.jsx)(z,{...e,ref:t}):null});U.displayName=M;var z=n.forwardRef((e,t)=>{let{__scopeScrollArea:r,...l}=e,i=b(M,r),[a,u]=n.useState(0),[s,c]=n.useState(0),d=!!(a&&s);return q(i.scrollbarX,()=>{var e;let t=(null===(e=i.scrollbarX)||void 0===e?void 0:e.offsetHeight)||0;i.onCornerHeightChange(t),c(t)}),q(i.scrollbarY,()=>{var e;let t=(null===(e=i.scrollbarY)||void 0===e?void 0:e.offsetWidth)||0;i.onCornerWidthChange(t),u(t)}),d?(0,v.jsx)(o.WV.div,{...l,ref:t,style:{width:a,height:s,position:"absolute",right:"ltr"===i.dir?0:void 0,left:"rtl"===i.dir?0:void 0,bottom:0,...e.style}}):null});function H(e){return e?parseInt(e,10):0}function k(e,t){let r=e/t;return isNaN(r)?0:r}function V(e){let t=k(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd;return Math.max((e.scrollbar.size-r)*t,18)}function X(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"ltr",n=V(t),o=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,l=t.scrollbar.size-o,i=t.content-t.viewport,a=(0,f.u)(e,"ltr"===r?[0,i]:[-1*i,0]);return Y([0,i],[0,l-n])(a)}function Y(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let n=(t[1]-t[0])/(e[1]-e[0]);return t[0]+n*(r-e[0])}}var F=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:()=>{},r={left:e.scrollLeft,top:e.scrollTop},n=0;return!function o(){let l={left:e.scrollLeft,top:e.scrollTop},i=r.left!==l.left,a=r.top!==l.top;(i||a)&&t(),r=l,n=window.requestAnimationFrame(o)}(),()=>window.cancelAnimationFrame(n)};function B(e,t){let r=(0,c.W)(e),o=n.useRef(0);return n.useEffect(()=>()=>window.clearTimeout(o.current),[]),n.useCallback(()=>{window.clearTimeout(o.current),o.current=window.setTimeout(r,t)},[r,t])}function q(e,t){let r=(0,c.W)(t);(0,i.b)(()=>{let t=0;if(e){let n=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(r)});return n.observe(e),()=>{window.cancelAnimationFrame(t),n.unobserve(e)}}},[e,r])}var J=S,Q=y,G=U}}]);
2
- //# sourceMappingURL=3397-5a704b2e12e9e883.js.map