@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/chunks/3832-a5e8fc6647e2be65.js","mappings":"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","sources":["webpack://_N_E/./components/ui/sidebar.tsx","webpack://_N_E/./components/custom/main-nav.tsx","webpack://_N_E/./app/(application)/authenticated.tsx","webpack://_N_E/./components/config-context.tsx","webpack://_N_E/./components/logo.tsx","webpack://_N_E/./components/ui/avatar.tsx","webpack://_N_E/./components/ui/dropdown-menu.tsx","webpack://_N_E/./components/ui/input.tsx","webpack://_N_E/./components/ui/separator.tsx","webpack://_N_E/./components/ui/sheet.tsx","webpack://_N_E/./components/ui/skeleton.tsx","webpack://_N_E/./components/ui/tooltip.tsx","webpack://_N_E/./hooks/use-mobile.tsx","webpack://_N_E/./util/api.ts"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { VariantProps, cva } from \"class-variance-authority\"\nimport { PanelLeft } from \"lucide-react\"\nimport { useIsMobile } from \"@/hooks/use-mobile\"\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Separator } from \"@/components/ui/separator\"\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"@/components/ui/sheet\"\nimport { Skeleton } from \"@/components/ui/skeleton\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\"\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\"\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nconst SIDEBAR_WIDTH = \"16rem\"\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\"\nconst SIDEBAR_WIDTH_ICON = \"3rem\"\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\"\n\ntype SidebarContextProps = {\n state: \"expanded\" | \"collapsed\"\n open: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n isMobile: boolean\n toggleSidebar: () => void\n}\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null)\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext)\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\")\n }\n\n return context\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n }\n>(\n (\n {\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n },\n ref\n ) => {\n const isMobile = useIsMobile()\n const [openMobile, setOpenMobile] = React.useState(false)\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen)\n const open = openProp ?? _open\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n },\n [setOpenProp, open]\n )\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile\n ? setOpenMobile((open) => !open)\n : setOpen((open) => !open)\n }, [isMobile, setOpen, setOpenMobile])\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault()\n toggleSidebar()\n }\n }\n\n window.addEventListener(\"keydown\", handleKeyDown)\n return () => window.removeEventListener(\"keydown\", handleKeyDown)\n }, [toggleSidebar])\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\"\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n }\n)\nSidebarProvider.displayName = \"SidebarProvider\"\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\"\n variant?: \"sidebar\" | \"floating\" | \"inset\"\n collapsible?: \"offcanvas\" | \"icon\" | \"none\"\n }\n>(\n (\n {\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n ...props\n },\n ref\n ) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === \"none\") {\n return (\n <div\n className={cn(\n \"flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n \"relative w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]\"\n : \"group-data-[collapsible=icon]:w-[--sidebar-width-icon]\"\n )}\n />\n <div\n className={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]\"\n : \"group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\"\n >\n {children}\n </div>\n </div>\n </div>\n )\n }\n)\nSidebar.displayName = \"Sidebar\"\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n React.ComponentProps<typeof Button>\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"h-7 w-7\", className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n )\n})\nSidebarTrigger.displayName = \"SidebarTrigger\"\n\nconst SidebarRail = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\">\n>(({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex\",\n \"[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarRail.displayName = \"SidebarRail\"\n\nconst SidebarInset = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"main\">\n>(({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n \"relative flex w-full flex-1 flex-col bg-background\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarInset.displayName = \"SidebarInset\"\n\nconst SidebarInput = React.forwardRef<\n React.ElementRef<typeof Input>,\n React.ComponentProps<typeof Input>\n>(({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n \"h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarInput.displayName = \"SidebarInput\"\n\nconst SidebarHeader = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n )\n})\nSidebarHeader.displayName = \"SidebarHeader\"\n\nconst SidebarFooter = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n )\n})\nSidebarFooter.displayName = \"SidebarFooter\"\n\nconst SidebarSeparator = React.forwardRef<\n React.ElementRef<typeof Separator>,\n React.ComponentProps<typeof Separator>\n>(({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn(\"mx-2 w-auto bg-sidebar-border\", className)}\n {...props}\n />\n )\n})\nSidebarSeparator.displayName = \"SidebarSeparator\"\n\nconst SidebarContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarContent.displayName = \"SidebarContent\"\n\nconst SidebarGroup = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-0\", className)}\n {...props}\n />\n )\n})\nSidebarGroup.displayName = \"SidebarGroup\"\n\nconst SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"div\"\n\n return (\n <Comp\n // @ts-ignore\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n \"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\"\n\nconst SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n // @ts-ignore\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n \"absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroupAction.displayName = \"SidebarGroupAction\"\n\nconst SidebarGroupContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n))\nSidebarGroupContent.displayName = \"SidebarGroupContent\"\n\nconst SidebarMenu = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n))\nSidebarMenu.displayName = \"SidebarMenu\"\n\nconst SidebarMenuItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n))\nSidebarMenuItem.displayName = \"SidebarMenuItem\"\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-[0.40rem] [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:!p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : \"button\"\n const { isMobile, state } = useSidebar()\n\n const button = (\n <Comp\n // @ts-ignore\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n )\n\n if (!tooltip) {\n return button\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n }\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltip}\n />\n </Tooltip>\n )\n }\n)\nSidebarMenuButton.displayName = \"SidebarMenuButton\"\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean\n showOnHover?: boolean\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n // @ts-ignore\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n \"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarMenuAction.displayName = \"SidebarMenuAction\"\n\nconst SidebarMenuBadge = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n \"pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n))\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\"\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n showIcon?: boolean\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n }, [])\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-[--skeleton-width] flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n )\n})\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\"\n\nconst SidebarMenuSub = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n))\nSidebarMenuSub.displayName = \"SidebarMenuSub\"\n\nconst SidebarMenuSubItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ ...props }, ref) => <li ref={ref} {...props} />)\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\"\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<\"a\"> & {\n asChild?: boolean\n size?: \"sm\" | \"md\"\n isActive?: boolean\n }\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\"\n\n return (\n <Comp\n // @ts-ignore\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\"\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n}\n","\"use client\";\n\nimport Link from \"next/link\";\nimport { useParams, usePathname } from \"next/navigation\";\nimport * as React from \"react\";\nimport { useContext, useEffect } from \"react\";\nimport { UserContext } from \"@/app/(application)/authenticated\";\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupContent,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n SidebarTrigger,\n useSidebar\n} from \"@/components/ui/sidebar\";\nimport { cn } from \"@/lib/utils\";\nimport { UserRole } from \"@/types/models/user-role\";\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from \"../ui/dropdown-menu\";\nimport { ChevronUp, Moon, Sun, Code, MessageCircle, Users, Key, LayoutDashboard, Database, ListTodo, Bot, Route, Variable, FileCheck, Sparkles, Settings, LogOut, FileText, FolderOpen, Brain } from \"lucide-react\";\nimport { useRouter } from \"next/navigation\";\nimport { useTheme } from \"next-themes\";\nimport { Avatar, AvatarFallback } from \"../ui/avatar\";\nimport Logo from \"../logo\";\n\ninterface User {\n email: string;\n super_admin: boolean;\n role: UserRole;\n}\n\nconst buildNavigation = (user: User, role: UserRole) => {\n const navigationItems: { label: string; path: string; icon: React.ReactNode }[] = [];\n\n if (user.super_admin) {\n navigationItems.push({\n label: \"Dashboard\",\n path: \"dashboard\",\n icon: <LayoutDashboard />,\n });\n }\n\n navigationItems.push({\n label: \"Contexts\",\n path: \"data\",\n icon: <Database />,\n });\n\n navigationItems.push({\n label: \"Jobs\",\n path: \"jobs\",\n icon: <ListTodo />,\n });\n\n if (user.super_admin || role.agents === \"write\") {\n navigationItems.push({\n label: \"Agents\",\n path: \"agents\",\n icon: <Bot />,\n });\n }\n\n navigationItems.push({\n label: \"Projects\",\n path: \"projects\",\n icon: <FolderOpen />,\n });\n\n navigationItems.push({\n label: \"Chat\",\n path: \"chat\",\n icon: <MessageCircle />,\n });\n\n if (user.super_admin || role.evals === \"read\" || role.evals === \"write\") {\n navigationItems.push({\n label: \"Evals\",\n path: \"evals\",\n icon: <Brain />,\n });\n }\n\n if (user.super_admin || role.workflows === \"write\") {\n navigationItems.push({\n label: \"Workflows\",\n path: \"workflows\",\n icon: <Route />,\n });\n }\n\n if (user.super_admin || role.users === \"write\") {\n navigationItems.push({\n label: \"Users\",\n path: \"users\",\n icon: <Users />,\n });\n }\n\n if (user.super_admin || role.api === \"write\") {\n navigationItems.push({\n label: \"Keys\",\n path: \"keys\",\n icon: <Key />,\n });\n }\n\n if (user.super_admin || role.variables === \"write\") {\n navigationItems.push({\n label: \"Variables\",\n path: \"variables\",\n icon: <Variable />,\n });\n }\n\n if (user.super_admin || role.api === \"write\") {\n navigationItems.push({\n label: \"API\",\n path: \"explorer\",\n icon: <Code />,\n });\n }\n\n if (user.super_admin) {\n navigationItems.push({\n label: \"Configurations\",\n path: \"configuration\",\n icon: <Settings />,\n });\n }\n\n return navigationItems;\n}\n\nfunction NavigationItems({ items }: { items: { label: string; path: string; icon: React.ReactNode }[] }) {\n const pathname = usePathname();\n\n return (\n <SidebarMenu className=\"space-y-1\">\n {items.map((navItem, index) => {\n const isActive = pathname.includes(navItem.path);\n return (\n <SidebarMenuItem key={index}>\n <SidebarMenuButton\n asChild\n isActive={isActive}\n tooltip={navItem.label}\n className={cn(\n \"h-10 transition-all duration-200\"\n )}\n >\n <Link href={`/${navItem.path}`} className=\"flex items-center gap-3\">\n <div className={cn(\n \"flex h-5 w-5 items-center justify-center transition-colors\",\n )}>\n {navItem.icon}\n </div>\n <span className={cn(\n \"font-medium transition-colors\",\n )}>\n {navItem.label}\n </span>\n </Link>\n </SidebarMenuButton>\n </SidebarMenuItem>\n );\n })}\n </SidebarMenu>\n );\n}\n\nexport function MainNavSidebar({ sidebarDefaultOpen }: { sidebarDefaultOpen: boolean }) {\n \n const { user } = useContext(UserContext);\n const navigationItems = buildNavigation(user, user.role);\n const router = useRouter();\n const { setTheme, theme } = useTheme();\n const params = useParams()\n const sidebar = useSidebar()\n\n useEffect(() => {\n if (params.agent && sidebarDefaultOpen === undefined) {\n sidebar.setOpen(false)\n }\n }, [params.agent])\n\n return (\n <Sidebar collapsible=\"icon\" className=\"border-r\">\n <div className=\"flex items-center gap-3 border-b bg-background/80 backdrop-blur-sm p-[12px] sticky top-0 z-10\">\n <SidebarTrigger />\n <div className=\"flex items-center gap-2\">\n <Logo alt=\"Logo\" width={100} height={40} />\n </div>\n </div>\n <SidebarContent className=\"px-2\">\n <SidebarGroup className=\"mt-4\">\n <SidebarGroupContent>\n <NavigationItems items={navigationItems} />\n </SidebarGroupContent>\n </SidebarGroup>\n </SidebarContent>\n <SidebarFooter className=\"border-t bg-muted/20 p-[5px]\">\n <div className=\"px-2 pb-1 group-data-[collapsible=icon]:hidden\">\n <div className=\"inline-flex items-center gap-1.5 rounded-full border border-primary/20 bg-primary/5 px-2.5 py-0.5\">\n <Sparkles className=\"h-3 w-3 text-primary\" />\n <span className=\"text-xs font-medium text-primary\">Beta</span>\n </div>\n </div>\n <SidebarMenu>\n <SidebarMenuItem>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <SidebarMenuButton className=\"h-12 hover:bg-accent/50\">\n <Avatar className=\"h-5 w-5\">\n <AvatarFallback className=\"bg-gradient-to-br from-primary/20 to-primary/60 text-white text-sm\">\n {user.email.charAt(0).toUpperCase()}\n </AvatarFallback>\n </Avatar>\n <div className=\"flex flex-col items-start group-data-[collapsible=icon]:hidden\">\n <span className=\"text-sm font-medium capitalize\">{user.email.split('@')[0]}</span>\n <div className=\"flex items-center gap-1\">\n <span className=\"text-xs text-muted-foreground\">{user.email.split('@')[1]}</span>\n </div>\n </div>\n <ChevronUp className=\"ml-auto h-4 w-4 group-data-[collapsible=icon]:hidden\" />\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n side=\"top\"\n className=\"w-[--radix-popper-anchor-width] mb-2\"\n align=\"start\"\n >\n <DropdownMenuItem onClick={() => setTheme(theme === \"dark\" ? \"light\" : \"dark\")}>\n <div className=\"flex items-center gap-2 w-full\">\n {theme === \"dark\" ? <Sun className=\"h-4 w-4\" /> : <Moon className=\"h-4 w-4\" />}\n <span>Theme</span>\n </div>\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => router.push(\"/api/auth/signout\")}>\n <div className=\"flex items-center gap-2 w-full\">\n <LogOut className=\"h-4 w-4\" />\n <span>Logout</span>\n </div>\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => window.open(\"https://www.exulu.com/toc\", \"_blank\")}>\n <div className=\"flex items-center gap-2 w-full\">\n <FileText className=\"h-4 w-4\" />\n <span>Terms</span>\n </div>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </SidebarMenuItem>\n </SidebarMenu>\n </SidebarFooter>\n </Sidebar>\n );\n}\n\nexport function MainNavProvider({ children, sidebarDefaultOpen }: { children: React.ReactNode, sidebarDefaultOpen: boolean }) {\n console.log(\"sidebarDefaultOpen\", sidebarDefaultOpen)\n return (\n <SidebarProvider defaultOpen={sidebarDefaultOpen}>\n <div className=\"flex h-screen w-full bg-background overflow-hidden\">\n <MainNavSidebar sidebarDefaultOpen={sidebarDefaultOpen} />\n <main className=\"flex-1 overflow-auto\">\n {children}\n </main>\n </div>\n </SidebarProvider>\n );\n}\n","\"use client\";\n\nimport {\n ApolloClient,\n ApolloLink,\n ApolloProvider,\n HttpLink,\n InMemoryCache,\n} from \"@apollo/client\";\nimport { setContext } from \"@apollo/client/link/context\";\nimport { SessionProvider } from \"next-auth/react\";\nimport * as React from \"react\";\nimport { MainNavProvider } from \"@/components/custom/main-nav\";\nimport { getToken } from \"@/util/api\";\nimport { ConfigContext } from \"@/components/config-context\";\nimport { type User } from \"@/types/models/user\";\n\ninterface AuthenticatedProps {\n children: React.ReactNode;\n user: User & { role: { id: string } };\n sidebarDefaultOpen: boolean;\n}\n\nexport const UserContext = React.createContext<any>(null);\n\nconst User = ({ children, user, sidebarDefaultOpen }: AuthenticatedProps) => {\n\n return (\n <UserContext.Provider value={{ user }}>\n <MainNavProvider sidebarDefaultOpen={sidebarDefaultOpen}>\n {children}\n </MainNavProvider>\n\n </UserContext.Provider>\n );\n};\nconst Authenticated = ({ children, user, sidebarDefaultOpen }: AuthenticatedProps) => {\n\n const configContext = React.useContext(ConfigContext);\n\n const uri = configContext?.backend\n ? configContext?.backend + \"/graphql\"\n : \"http://localhost:9001/graphql\";\n\n const basic = setContext((operation, context) => ({\n headers: {\n Accept: \"charset=utf-8\",\n },\n }));\n\n const authLink = setContext(async (operation, context) => {\n const token = await getToken();\n return {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n };\n });\n\n const link = ApolloLink.from([basic, authLink, new HttpLink({ uri: uri })]);\n\n const client = new ApolloClient({\n uri: uri,\n cache: new InMemoryCache({\n addTypename: false,\n }),\n link: link,\n defaultOptions: {\n watchQuery: {\n fetchPolicy: \"no-cache\",\n errorPolicy: \"ignore\",\n },\n query: {\n fetchPolicy: \"no-cache\",\n errorPolicy: \"all\",\n },\n },\n });\n\n return (\n <ApolloProvider client={client}>\n <SessionProvider>\n <User sidebarDefaultOpen={sidebarDefaultOpen} user={user}>\n {children}\n </User>\n </SessionProvider>\n </ApolloProvider>\n );\n};\n\nexport default Authenticated;\n","\"use client\"\nimport { BackendConfigType } from \"@/util/api\";\nimport { createContext } from \"react\";\n\nexport type ConfigContextType = {\n backend: string;\n google_client_id: string;\n auth_mode: string;\n} & BackendConfigType;\n\nexport const ConfigContext = createContext<ConfigContextType | null>(null);\n\nexport function ConfigContextProvider({ children, config }: {\n children: React.ReactNode;\n config: ConfigContextType;\n}) {\n\n console.log(\"[EXULU] Config: \", config);\n\n if (!config) {\n throw new Error(\"Config not found\");\n }\n\n return (\n <ConfigContext.Provider value={config}>\n {children}\n </ConfigContext.Provider>\n );\n}\n","\"use client\";\n\nimport { ConfigContext } from \"./config-context\";\nimport { useContext } from \"react\";\n\ninterface LogoProps {\n width?: number;\n height?: number;\n className?: string;\n alt?: string;\n}\n\nconst Logo = ({ width = 64, height = 32, className = \"\", alt = \"Logo\" }: LogoProps) => {\n const configContext = useContext(ConfigContext);\n return (\n <>\n <img\n src={configContext?.backend + \"/logo_dark.png\"}\n alt={alt}\n width={width}\n height={height}\n className={className + \"hidden dark:block\"}\n />\n <img\n src={configContext?.backend + \"/logo_light.png\"}\n alt={alt}\n width={width}\n height={height}\n className={className + \"block dark:hidden\"}\n />\n </>\n )\n}\n\nexport default Logo;","\"use client\";\n\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className,\n )}\n {...props}\n />\n));\nAvatar.displayName = AvatarPrimitive.Root.displayName;\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n));\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full bg-muted\",\n className,\n )}\n {...props}\n />\n));\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n\nexport { Avatar, AvatarImage, AvatarFallback };\n","\"use client\";\n\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst DropdownMenu = DropdownMenuPrimitive.Root;\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto size-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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));\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName;\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md 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 </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.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 transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)}\n {...props}\n />\n );\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n};\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n","\"use client\";\n\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref,\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className,\n )}\n {...props}\n />\n ),\n);\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n","\"use client\";\n\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { X } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Sheet = SheetPrimitive.Root;\n\nconst SheetTrigger = SheetPrimitive.Trigger;\n\nconst SheetClose = SheetPrimitive.Close;\n\nconst SheetPortal = SheetPrimitive.Portal;\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n ref={ref}\n />\n));\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\n\nconst sheetVariants = cva(\n \"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom:\n \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n right:\n \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n },\n);\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = \"right\", className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <X className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n));\nSheetContent.displayName = SheetPrimitive.Content.displayName;\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className,\n )}\n {...props}\n />\n);\nSheetHeader.displayName = \"SheetHeader\";\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className,\n )}\n {...props}\n />\n);\nSheetFooter.displayName = \"SheetFooter\";\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...props}\n />\n));\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\n","import { cn } from \"@/lib/utils\";\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","\"use client\";\n\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst TooltipProvider = TooltipPrimitive.Provider;\n\nconst Tooltip = TooltipPrimitive.Root;\n\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","import * as React from \"react\"\n\nconst MOBILE_BREAKPOINT = 768\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n }\n mql.addEventListener(\"change\", onChange)\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n return () => mql.removeEventListener(\"change\", onChange)\n }, [])\n\n return !!isMobile\n}\n","import { getSession } from \"next-auth/react\";\n\nexport type ImageStyle = \"origami\" | \"anime\" | \"japanese_anime\" | \"vaporwave\" | \"lego\" | \"paper_cut\" | \"felt_puppet\" | \"3d\" | \"app_icon\" | \"pixel_art\" | \"isometric\";\n\nconst getUris = async () => {\n // Server-side: use environment variable directly\n if (typeof window === 'undefined') {\n const backend = process.env.BACKEND;\n if (!backend) {\n throw new Error(\"No backend set.\")\n }\n return {\n files: backend,\n base: backend\n }\n }\n\n // Client-side: fetch from API\n const context = await fetch(\"/api/config\").then(res => res.json());\n if (!context.backend) {\n throw new Error(\"No backend set.\")\n }\n return {\n files: context.backend,\n base: context.backend\n }\n}\n\nexport const getToken = async () => {\n const session = await getSession()\n // @ts-ignore\n return session?.user?.jwt;\n}\n\nexport type BackendConfigType = {\n fileUploads?: {\n s3endpoint: string;\n }\n workers?: {\n redisHost: string;\n enabled: boolean;\n }\n}\n\nexport type ThemeConfig = {\n light?: Record<string, string>;\n dark?: Record<string, string>;\n}\n\nexport const config = {\n backend: async (): Promise<Response> => {\n const uris = await getUris();\n const url = `${uris.base}/config`\n return fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n })\n },\n theme: async (): Promise<ThemeConfig> => {\n try {\n const token = await getToken();\n const uris = await getUris();\n const res = await fetch(`${uris.base}/theme`, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${token}`,\n },\n })\n const json = await res.json();\n return json.theme;\n } catch (error) {\n console.error(\"Error fetching theme config:\", error);\n return { light: {}, dark: {} };\n }\n }\n}\n\nexport const agents = {\n image: {\n generate: async (parameters: {\n name: string,\n description: string,\n style?: ImageStyle\n }): Promise<any> => {\n\n const uris = await getUris();\n const url = `${uris.base}/generate/agent/image`;\n const token = await getToken()\n\n if (!token) {\n throw new Error(\"No valid session token available.\")\n }\n\n return fetch(url, {\n method: \"POST\",\n body: JSON.stringify(parameters),\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${token}`,\n },\n });\n }\n }\n}\n\nexport type S3FileListOutput = {\n \"$metadata\": {\n \"httpStatusCode\": number,\n \"attempts\": number,\n \"totalRetryDelay\": number\n },\n \"Contents\": {\n \"Key\": string,\n \"LastModified\": string,\n \"ETag\": string,\n \"Size\": number\n }[]\n \"IsTruncated\": boolean,\n \"NextContinuationToken\": string,\n \"KeyCount\": number,\n \"MaxKeys\": number,\n \"Name\": string,\n \"Prefix\": string\n}\n\nexport type S3ObjectOutput = {\n \"$metadata\": {\n \"httpStatusCode\": number,\n \"attempts\": number,\n \"totalRetryDelay\": number\n },\n \"AcceptRanges\": \"bytes\",\n \"LastModified\": string,\n \"ContentLength\": number,\n \"ChecksumCRC32C\": string,\n \"ETag\": string,\n \"CacheControl\": string,\n \"ContentType\": string,\n \"Expires\": string,\n \"ExpiresString\": string\n}\n\nexport const files = {\n object: async (key: string): Promise<S3ObjectOutput> => {\n const uris = await getUris();\n let url = `${uris.files}/s3/object`;\n const token = await getToken()\n const response = await fetch(url, {\n method: \"POST\",\n body: JSON.stringify({ key }),\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${token}`,\n },\n });\n return response.json();\n },\n list: async ({ search, continuationToken }: { search?: string, continuationToken?: string }): Promise<S3FileListOutput> => {\n const uris = await getUris();\n let url = `${uris.files}/s3/list`;\n const token = await getToken()\n\n if (!token) {\n throw new Error(\"No valid session token available.\")\n }\n\n if (search) {\n url += `?search=${search}`;\n }\n\n if (continuationToken) {\n url += `?continuationToken=${continuationToken}`;\n }\n\n const response = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${token}`,\n },\n });\n return response.json();\n },\n download: async (key: string) => {\n\n const uris = await getUris();\n let url = `${uris.files}/s3/download?key=${key}`;\n\n const token = await getToken()\n\n if (!token) {\n throw new Error(\"No valid session token available.\")\n }\n\n return fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${token}`,\n },\n });\n },\n delete: async (key: string) => {\n\n const uris = await getUris();\n let url = `${uris.files}/s3/delete?key=${key}`;\n const token = await getToken()\n\n if (!token) {\n throw new Error(\"No valid session token available.\")\n }\n\n return fetch(url, {\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${token}`,\n },\n });\n }\n}\n"],"names":["SidebarContext","React","useSidebar","context","SidebarProvider","param","ref","defaultOpen","open","openProp","onOpenChange","setOpenProp","className","style","children","props","isMobile","useIsMobile","openMobile","setOpenMobile","_open","_setOpen","setOpen","openState","value","document","cookie","SIDEBAR_COOKIE_MAX_AGE","concat","toggleSidebar","handleKeyDown","event","key","metaKey","ctrlKey","preventDefault","window","addEventListener","removeEventListener","state","contextValue","jsx_runtime","jsx","Provider","TooltipProvider","delayDuration","div","cn","displayName","Sidebar","side","variant","collapsible","Sheet","jsxs","SheetContent","data-sidebar","data-mobile","SheetHeader","SheetTitle","SheetDescription","data-state","data-collapsible","data-variant","data-side","SidebarTrigger","onClick","Button","size","PanelLeft","span","SidebarRail","button","aria-label","tabIndex","title","SidebarInset","main","SidebarInput","Input","SidebarHeader","SidebarFooter","SidebarSeparator","Separator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Comp","Slot","SidebarGroupAction","SidebarGroupContent","SidebarMenu","ul","SidebarMenuItem","li","sidebarMenuButtonVariants","cva","variants","default","outline","sm","lg","defaultVariants","SidebarMenuButton","isActive","tooltip","data-size","data-active","Tooltip","TooltipTrigger","TooltipContent","align","hidden","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","Math","floor","random","Skeleton","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton","buildNavigation","user","role","navigationItems","super_admin","push","label","path","icon","LayoutDashboard","Database","ListTodo","agents","Bot","FolderOpen","MessageCircle","evals","Brain","workflows","Route","users","Users","api","Key","variables","Variable","Code","Settings","NavigationItems","items","pathname","usePathname","map","navItem","index","includes","Link","href","MainNavSidebar","sidebarDefaultOpen","useContext","UserContext","router","useRouter","setTheme","theme","useTheme","params","useParams","sidebar","useEffect","agent","undefined","Logo","alt","height","Sparkles","DropdownMenu","DropdownMenuTrigger","Avatar","AvatarFallback","email","charAt","toUpperCase","split","ChevronUp","DropdownMenuContent","DropdownMenuItem","Sun","Moon","LogOut","FileText","MainNavProvider","console","log","User","authenticated","configContext","ConfigContext","uri","backend","basic","setContext","operation","headers","Accept","authLink","token","getToken","Authorization","link","ApolloLink","from","HttpLink","client","ApolloClient","cache","InMemoryCache","addTypename","defaultOptions","watchQuery","fetchPolicy","errorPolicy","query","ApolloProvider","SessionProvider","createContext","ConfigContextProvider","config","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","__webpack_exports__","Fragment","img","src","AvatarPrimitive","AvatarImage","DropdownMenuPrimitive","DropdownMenuSubTrigger","inset","ChevronRight","DropdownMenuSubContent","sideOffset","DropdownMenuCheckboxItem","checked","Check","DropdownMenuRadioItem","Circle","DropdownMenuLabel","DropdownMenuSeparator","type","input","orientation","decorative","SeparatorPrimitive","SheetPrimitive","SheetTrigger","SheetPortal","SheetOverlay","sheetVariants","top","bottom","left","right","X","TooltipPrimitive","setIsMobile","mql","matchMedia","MOBILE_BREAKPOINT","onChange","innerWidth","getUris","fetch","then","res","json","files","base","session","getSession","jwt","image","generate","parameters","uris","url","method","body","JSON","stringify","object","response","list","search","continuationToken","download","delete"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
1
  "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4386],{23518:function(e,t,a){a.d(t,{di:function(){return p},e8:function(){return c},fu:function(){return f},mY:function(){return l},rb:function(){return u},sZ:function(){return i},zz:function(){return m}});var s=a(57437),r=a(83918),n=a(73247),o=a(2265);a(26110);var d=a(94508);let l=o.forwardRef((e,t)=>{let{className:a,...n}=e;return(0,s.jsx)(r.mY,{ref:t,className:(0,d.cn)("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",a),...n})});l.displayName=r.mY.displayName;let i=o.forwardRef((e,t)=>{let{className:a,...o}=e;return(0,s.jsxs)("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[(0,s.jsx)(n.Z,{className:"mr-2 size-4 shrink-0 opacity-50"}),(0,s.jsx)(r.mY.Input,{ref:t,className:(0,d.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",a),...o})]})});i.displayName=r.mY.Input.displayName;let c=o.forwardRef((e,t)=>{let{className:a,...n}=e;return(0,s.jsx)(r.mY.List,{ref:t,className:(0,d.cn)("max-h-[300px] overflow-y-auto overflow-x-hidden",a),...n})});c.displayName=r.mY.List.displayName;let u=o.forwardRef((e,t)=>(0,s.jsx)(r.mY.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));u.displayName=r.mY.Empty.displayName;let f=o.forwardRef((e,t)=>{let{className:a,...n}=e;return(0,s.jsx)(r.mY.Group,{ref:t,className:(0,d.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",a),...n})});f.displayName=r.mY.Group.displayName;let m=o.forwardRef((e,t)=>{let{className:a,...n}=e;return(0,s.jsx)(r.mY.Separator,{ref:t,className:(0,d.cn)("-mx-1 h-px bg-border",a),...n})});m.displayName=r.mY.Separator.displayName;let p=o.forwardRef((e,t)=>{let{className:a,...n}=e;return(0,s.jsx)(r.mY.Item,{ref:t,className:(0,d.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",a),...n})});p.displayName=r.mY.Item.displayName},26110:function(e,t,a){a.d(t,{$N:function(){return x},Be:function(){return h},Vq:function(){return l},cN:function(){return p},cZ:function(){return f},fK:function(){return m},hg:function(){return i}});var s=a(57437),r=a(34567),n=a(32489),o=a(2265),d=a(94508);let l=r.fC,i=r.xz,c=r.h_;r.x8;let u=o.forwardRef((e,t)=>{let{className:a,...n}=e;return(0,s.jsx)(r.aV,{ref:t,className:(0,d.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...n})});u.displayName=r.aV.displayName;let f=o.forwardRef((e,t)=>{let{className:a,children:o,...l}=e;return(0,s.jsxs)(c,{children:[(0,s.jsx)(u,{}),(0,s.jsxs)(r.VY,{ref:t,className:(0,d.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",a),...l,children:[o,(0,s.jsxs)(r.x8,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,s.jsx)(n.Z,{className:"size-4"}),(0,s.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});f.displayName=r.VY.displayName;let m=e=>{let{className:t,...a}=e;return(0,s.jsx)("div",{className:(0,d.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...a})};m.displayName="DialogHeader";let p=e=>{let{className:t,...a}=e;return(0,s.jsx)("div",{className:(0,d.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...a})};p.displayName="DialogFooter";let x=o.forwardRef((e,t)=>{let{className:a,...n}=e;return(0,s.jsx)(r.Dx,{ref:t,className:(0,d.cn)("text-lg font-semibold leading-none tracking-tight",a),...n})});x.displayName=r.Dx.displayName;let h=o.forwardRef((e,t)=>{let{className:a,...n}=e;return(0,s.jsx)(r.dk,{ref:t,className:(0,d.cn)("text-sm text-muted-foreground",a),...n})});h.displayName=r.dk.displayName},57054:function(e,t,a){a.d(t,{J2:function(){return d},xo:function(){return l},yk:function(){return i}});var s=a(57437),r=a(27312),n=a(2265),o=a(94508);let d=r.fC,l=r.xz,i=n.forwardRef((e,t)=>{let{className:a,align:n="center",sideOffset:d=4,...l}=e;return(0,s.jsx)(r.h_,{children:(0,s.jsx)(r.VY,{ref:t,align:n,sideOffset:d,className:(0,o.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",a),...l})})});i.displayName=r.VY.displayName},84426:function(e,t,a){a.d(t,{u:function(){return p}});var s=a(57437),r=a(2265),n=a(7211),o=a(15863),d=a(40875),l=a(30401),i=a(94508),c=a(62869),u=a(23518),f=a(57054),m=a(27689);function p(e){var t;let{value:a,onChange:p,placeholder:x="Select role...",className:h}=e,[N,g]=(0,r.useState)(!1),{data:w,loading:y}=(0,n.aM)(m.l1,{variables:{page:1,limit:100},fetchPolicy:"cache-first"}),b=(null==w?void 0:null===(t=w.rolesPagination)||void 0===t?void 0:t.items)||[],j=b.find(e=>e.id===a),v=e=>{let t=[];if(e.agents){let a=e.agents.toLowerCase();a.includes("write")||a.includes("create")||a.includes("update")||a.includes("delete")?t.push("Agents: Read/Write"):(a.includes("read")||a.includes("view"))&&t.push("Agents: Read")}if(e.workflows){let a=e.workflows.toLowerCase();a.includes("write")||a.includes("create")||a.includes("update")||a.includes("delete")?t.push("Workflows: Read/Write"):(a.includes("read")||a.includes("view"))&&t.push("Workflows: Read")}if(e.variables){let a=e.variables.toLowerCase();a.includes("write")||a.includes("create")||a.includes("update")||a.includes("delete")?t.push("Variables: Read/Write"):(a.includes("read")||a.includes("view"))&&t.push("Variables: Read")}if(e.users){let a=e.users.toLowerCase();a.includes("write")||a.includes("create")||a.includes("update")||a.includes("delete")?t.push("Users: Read/Write"):(a.includes("read")||a.includes("view"))&&t.push("Users: Read")}return t.length>0?t:["No specific permissions configured"]};return(0,s.jsxs)(f.J2,{open:N,onOpenChange:g,children:[(0,s.jsx)(f.xo,{asChild:!0,children:(0,s.jsxs)(c.z,{variant:"outline",role:"combobox","aria-expanded":N,className:(0,i.cn)("w-full justify-between",h),disabled:y,children:[y?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.Z,{className:"mr-2 h-4 w-4 animate-spin"}),"Loading roles..."]}):j?j.name:x,(0,s.jsx)(d.Z,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,s.jsx)(f.yk,{className:"w-full p-0",children:(0,s.jsxs)(u.mY,{children:[(0,s.jsx)(u.sZ,{placeholder:"Search roles..."}),(0,s.jsx)(u.rb,{children:"No roles found."}),(0,s.jsx)(u.fu,{children:b.map(e=>(0,s.jsxs)(u.di,{value:e.name,onSelect:()=>{p(e.id),g(!1)},children:[(0,s.jsx)(l.Z,{className:(0,i.cn)("mr-2 h-4 w-4",a===e.id?"opacity-100":"opacity-0")}),(0,s.jsxs)("div",{className:"flex-1",children:[(0,s.jsx)("div",{className:"font-medium",children:e.name}),(0,s.jsx)("div",{className:"text-xs text-muted-foreground",children:v(e).join(", ")})]})]},e.id))})]})})]})}},73578:function(e,t,a){a.d(t,{RM:function(){return l},Rn:function(){return f},SC:function(){return i},iA:function(){return o},pj:function(){return u},ss:function(){return c},xD:function(){return d}});var s=a(57437),r=a(2265),n=a(94508);let o=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("div",{className:"relative w-full overflow-auto",children:(0,s.jsx)("table",{ref:t,className:(0,n.cn)("w-full caption-bottom text-sm",a),...r})})});o.displayName="Table";let d=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("thead",{ref:t,className:(0,n.cn)("[&_tr]:border-b",a),...r})});d.displayName="TableHeader";let l=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("tbody",{ref:t,className:(0,n.cn)("[&_tr:last-child]:border-0",a),...r})});l.displayName="TableBody",r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("tfoot",{ref:t,className:(0,n.cn)("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",a),...r})}).displayName="TableFooter";let i=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("tr",{ref:t,className:(0,n.cn)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",a),...r})});i.displayName="TableRow";let c=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("th",{ref:t,className:(0,n.cn)("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&:has([role=checkbox])]:w-[40px]",a),...r})});c.displayName="TableHead";let u=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("td",{ref:t,className:(0,n.cn)("p-4 align-middle [&:has([role=checkbox])]:pr-0 [&:has([role=checkbox])]:w-[40px]",a),...r})});u.displayName="TableCell";let f=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("caption",{ref:t,className:(0,n.cn)("mt-4 text-sm text-muted-foreground",a),...r})});f.displayName="TableCaption"},77992:function(e,t,a){a.d(t,{Am:function(){return u},pm:function(){return f}});var s=a(2265);let r=0,n=new Map,o=e=>{if(n.has(e))return;let t=setTimeout(()=>{n.delete(e),c({type:"REMOVE_TOAST",toastId:e})},1e6);n.set(e,t)},d=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:a}=t;return a?o(a):e.toasts.forEach(e=>{o(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===a||void 0===a?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},l=[],i={toasts:[]};function c(e){i=d(i,e),l.forEach(e=>{e(i)})}function u(e){let{...t}=e,a=(r=(r+1)%Number.MAX_SAFE_INTEGER).toString(),s=()=>c({type:"DISMISS_TOAST",toastId:a});return c({type:"ADD_TOAST",toast:{...t,id:a,open:!0,onOpenChange:e=>{e||s()}}}),{id:a,dismiss:s,update:e=>c({type:"UPDATE_TOAST",toast:{...e,id:a}})}}function f(){let[e,t]=s.useState(i);return s.useEffect(()=>(l.push(t),()=>{let e=l.indexOf(t);e>-1&&l.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>c({type:"DISMISS_TOAST",toastId:e})}}}}]);
2
- //# sourceMappingURL=4386-a36fe9c65884f025.js.map
2
+ //# sourceMappingURL=4386-c7690667749bff6a.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"static/chunks/4386-a36fe9c65884f025.js","mappings":"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","sources":["webpack://_N_E/./components/ui/command.tsx","webpack://_N_E/./components/ui/dialog.tsx","webpack://_N_E/./components/ui/popover.tsx","webpack://_N_E/./components/ui/role-selector.tsx","webpack://_N_E/./components/ui/table.tsx","webpack://_N_E/./components/ui/use-toast.ts"],"sourcesContent":["\"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","\"use client\";\n\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className,\n )}\n {...props}\n />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className,\n )}\n {...props}\n />\n);\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\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 { useState } from \"react\"\nimport { useQuery } from \"@apollo/client\"\nimport { Check, ChevronDown, Loader2 } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n} from \"@/components/ui/command\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\nimport { GET_USER_ROLES } from \"@/queries/queries\"\n\ninterface Role {\n id: string\n name: string\n agents?: string\n workflows?: string\n variables?: string\n users?: string\n}\n\ninterface RoleSelectorProps {\n value?: string\n onChange: (roleId: string) => void\n placeholder?: string\n className?: string\n}\n\nexport function RoleSelector({\n value,\n onChange,\n placeholder = \"Select role...\",\n className,\n}: RoleSelectorProps) {\n const [open, setOpen] = useState(false)\n\n const { data, loading } = useQuery(GET_USER_ROLES, {\n variables: { page: 1, limit: 100 },\n fetchPolicy: \"cache-first\",\n })\n\n const roles: Role[] = data?.rolesPagination?.items || []\n const selectedRole = roles.find((role) => role.id === value)\n\n const formatPermissions = (role: Role) => {\n const permissions: string[] = []\n\n // Parse permission strings and determine read/write access\n if (role.agents) {\n const agentPerms = role.agents.toLowerCase()\n if (agentPerms.includes('write') || agentPerms.includes('create') || agentPerms.includes('update') || agentPerms.includes('delete')) {\n permissions.push(\"Agents: Read/Write\")\n } else if (agentPerms.includes('read') || agentPerms.includes('view')) {\n permissions.push(\"Agents: Read\")\n }\n }\n\n if (role.workflows) {\n const workflowPerms = role.workflows.toLowerCase()\n if (workflowPerms.includes('write') || workflowPerms.includes('create') || workflowPerms.includes('update') || workflowPerms.includes('delete')) {\n permissions.push(\"Workflows: Read/Write\")\n } else if (workflowPerms.includes('read') || workflowPerms.includes('view')) {\n permissions.push(\"Workflows: Read\")\n }\n }\n\n if (role.variables) {\n const variablePerms = role.variables.toLowerCase()\n if (variablePerms.includes('write') || variablePerms.includes('create') || variablePerms.includes('update') || variablePerms.includes('delete')) {\n permissions.push(\"Variables: Read/Write\")\n } else if (variablePerms.includes('read') || variablePerms.includes('view')) {\n permissions.push(\"Variables: Read\")\n }\n }\n\n if (role.users) {\n const userPerms = role.users.toLowerCase()\n if (userPerms.includes('write') || userPerms.includes('create') || userPerms.includes('update') || userPerms.includes('delete')) {\n permissions.push(\"Users: Read/Write\")\n } else if (userPerms.includes('read') || userPerms.includes('view')) {\n permissions.push(\"Users: Read\")\n }\n }\n\n return permissions.length > 0 ? permissions : [\"No specific permissions configured\"]\n }\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n className={cn(\"w-full justify-between\", className)}\n disabled={loading}\n >\n {loading ? (\n <>\n <Loader2 className=\"mr-2 h-4 w-4 animate-spin\" />\n Loading roles...\n </>\n ) : selectedRole ? (\n selectedRole.name\n ) : (\n placeholder\n )}\n <ChevronDown 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 roles...\" />\n <CommandEmpty>No roles found.</CommandEmpty>\n <CommandGroup>\n {roles.map((role) => (\n <CommandItem\n key={role.id}\n value={role.name}\n onSelect={() => {\n onChange(role.id)\n setOpen(false)\n }}\n >\n <Check\n className={cn(\n \"mr-2 h-4 w-4\",\n value === role.id ? \"opacity-100\" : \"opacity-0\"\n )}\n />\n <div className=\"flex-1\">\n <div className=\"font-medium\">{role.name}</div>\n <div className=\"text-xs text-muted-foreground\">\n {formatPermissions(role).join(\", \")}\n </div>\n </div>\n </CommandItem>\n ))}\n </CommandGroup>\n </Command>\n </PopoverContent>\n </Popover>\n )\n}","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n));\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\n));\nTableHeader.displayName = \"TableHeader\";\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n));\nTableBody.displayName = \"TableBody\";\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className,\n )}\n {...props}\n />\n));\nTableFooter.displayName = \"TableFooter\";\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className,\n )}\n {...props}\n />\n));\nTableRow.displayName = \"TableRow\";\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&:has([role=checkbox])]:w-[40px]\",\n className,\n )}\n {...props}\n />\n));\nTableHead.displayName = \"TableHead\";\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"p-4 align-middle [&:has([role=checkbox])]:pr-0 [&:has([role=checkbox])]:w-[40px]\",\n className,\n )}\n {...props}\n />\n));\nTableCell.displayName = \"TableCell\";\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nTableCaption.displayName = \"TableCaption\";\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","\"use client\";\n\n// Inspired by react-hot-toast library\nimport * as React from \"react\";\n\nimport type { ToastActionElement, ToastProps } from \"@/components/ui/toast\";\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"];\n toast: ToasterToast;\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t,\n ),\n };\n\n case \"DISMISS_TOAST\": {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t,\n ),\n };\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, \"id\">;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: \"UPDATE_TOAST\",\n toast: { ...props, id },\n });\n const dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id });\n\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n };\n}\n\nexport { useToast, toast };\n"],"names":["Command","React","param","ref","className","props","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","CommandPrimitive","cn","displayName","CommandInput","jsxs","div","cmdk-input-wrapper","Search","Input","CommandList","List","CommandEmpty","Empty","CommandGroup","Group","CommandSeparator","Separator","CommandItem","Item","Dialog","DialogPrimitive","DialogTrigger","DialogPortal","DialogOverlay","DialogContent","children","X","span","DialogHeader","DialogFooter","DialogTitle","DialogDescription","Popover","PopoverPrimitive","PopoverTrigger","PopoverContent","align","sideOffset","RoleSelector","data","value","onChange","placeholder","open","setOpen","useState","loading","useQuery","GET_USER_ROLES","variables","page","limit","fetchPolicy","roles","rolesPagination","items","selectedRole","find","role","id","formatPermissions","permissions","agents","agentPerms","toLowerCase","includes","push","workflows","workflowPerms","variablePerms","users","userPerms","length","onOpenChange","asChild","Button","variant","aria-expanded","disabled","Fragment","Loader2","name","ChevronDown","map","onSelect","Check","join","Table","table","TableHeader","thead","TableBody","tbody","TableFooter","tfoot","TableRow","tr","TableHead","th","TableCell","td","TableCaption","caption","count","toastTimeouts","Map","addToRemoveQueue","has","toastId","timeout","setTimeout","delete","dispatch","type","set","reducer","state","action","toasts","toast","slice","t","forEach","undefined","filter","listeners","memoryState","listener","Number","MAX_SAFE_INTEGER","toString","dismiss","update","useToast","setState","index","indexOf","splice"],"sourceRoot":""}
1
+ {"version":3,"file":"static/chunks/4386-c7690667749bff6a.js","mappings":"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","sources":["webpack://_N_E/./components/ui/command.tsx","webpack://_N_E/./components/ui/dialog.tsx","webpack://_N_E/./components/ui/popover.tsx","webpack://_N_E/./components/ui/role-selector.tsx","webpack://_N_E/./components/ui/table.tsx","webpack://_N_E/./components/ui/use-toast.ts"],"sourcesContent":["\"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","\"use client\";\n\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className,\n )}\n {...props}\n />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className,\n )}\n {...props}\n />\n);\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\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 { useState } from \"react\"\nimport { useQuery } from \"@apollo/client\"\nimport { Check, ChevronDown, Loader2 } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n} from \"@/components/ui/command\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\nimport { GET_USER_ROLES } from \"@/queries/queries\"\n\ninterface Role {\n id: string\n name: string\n agents?: string\n workflows?: string\n variables?: string\n users?: string\n}\n\ninterface RoleSelectorProps {\n value?: string\n onChange: (roleId: string) => void\n placeholder?: string\n className?: string\n}\n\nexport function RoleSelector({\n value,\n onChange,\n placeholder = \"Select role...\",\n className,\n}: RoleSelectorProps) {\n const [open, setOpen] = useState(false)\n\n const { data, loading } = useQuery(GET_USER_ROLES, {\n variables: { page: 1, limit: 100 },\n fetchPolicy: \"cache-first\",\n })\n\n const roles: Role[] = data?.rolesPagination?.items || []\n const selectedRole = roles.find((role) => role.id === value)\n\n const formatPermissions = (role: Role) => {\n const permissions: string[] = []\n\n // Parse permission strings and determine read/write access\n if (role.agents) {\n const agentPerms = role.agents.toLowerCase()\n if (agentPerms.includes('write') || agentPerms.includes('create') || agentPerms.includes('update') || agentPerms.includes('delete')) {\n permissions.push(\"Agents: Read/Write\")\n } else if (agentPerms.includes('read') || agentPerms.includes('view')) {\n permissions.push(\"Agents: Read\")\n }\n }\n\n if (role.workflows) {\n const workflowPerms = role.workflows.toLowerCase()\n if (workflowPerms.includes('write') || workflowPerms.includes('create') || workflowPerms.includes('update') || workflowPerms.includes('delete')) {\n permissions.push(\"Workflows: Read/Write\")\n } else if (workflowPerms.includes('read') || workflowPerms.includes('view')) {\n permissions.push(\"Workflows: Read\")\n }\n }\n\n if (role.variables) {\n const variablePerms = role.variables.toLowerCase()\n if (variablePerms.includes('write') || variablePerms.includes('create') || variablePerms.includes('update') || variablePerms.includes('delete')) {\n permissions.push(\"Variables: Read/Write\")\n } else if (variablePerms.includes('read') || variablePerms.includes('view')) {\n permissions.push(\"Variables: Read\")\n }\n }\n\n if (role.users) {\n const userPerms = role.users.toLowerCase()\n if (userPerms.includes('write') || userPerms.includes('create') || userPerms.includes('update') || userPerms.includes('delete')) {\n permissions.push(\"Users: Read/Write\")\n } else if (userPerms.includes('read') || userPerms.includes('view')) {\n permissions.push(\"Users: Read\")\n }\n }\n\n return permissions.length > 0 ? permissions : [\"No specific permissions configured\"]\n }\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n className={cn(\"w-full justify-between\", className)}\n disabled={loading}\n >\n {loading ? (\n <>\n <Loader2 className=\"mr-2 h-4 w-4 animate-spin\" />\n Loading roles...\n </>\n ) : selectedRole ? (\n selectedRole.name\n ) : (\n placeholder\n )}\n <ChevronDown 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 roles...\" />\n <CommandEmpty>No roles found.</CommandEmpty>\n <CommandGroup>\n {roles.map((role) => (\n <CommandItem\n key={role.id}\n value={role.name}\n onSelect={() => {\n onChange(role.id)\n setOpen(false)\n }}\n >\n <Check\n className={cn(\n \"mr-2 h-4 w-4\",\n value === role.id ? \"opacity-100\" : \"opacity-0\"\n )}\n />\n <div className=\"flex-1\">\n <div className=\"font-medium\">{role.name}</div>\n <div className=\"text-xs text-muted-foreground\">\n {formatPermissions(role).join(\", \")}\n </div>\n </div>\n </CommandItem>\n ))}\n </CommandGroup>\n </Command>\n </PopoverContent>\n </Popover>\n )\n}","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n));\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\n));\nTableHeader.displayName = \"TableHeader\";\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n));\nTableBody.displayName = \"TableBody\";\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className,\n )}\n {...props}\n />\n));\nTableFooter.displayName = \"TableFooter\";\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className,\n )}\n {...props}\n />\n));\nTableRow.displayName = \"TableRow\";\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&:has([role=checkbox])]:w-[40px]\",\n className,\n )}\n {...props}\n />\n));\nTableHead.displayName = \"TableHead\";\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"p-4 align-middle [&:has([role=checkbox])]:pr-0 [&:has([role=checkbox])]:w-[40px]\",\n className,\n )}\n {...props}\n />\n));\nTableCell.displayName = \"TableCell\";\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nTableCaption.displayName = \"TableCaption\";\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","\"use client\";\n\n// Inspired by react-hot-toast library\nimport * as React from \"react\";\n\nimport type { ToastActionElement, ToastProps } from \"@/components/ui/toast\";\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"];\n toast: ToasterToast;\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t,\n ),\n };\n\n case \"DISMISS_TOAST\": {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t,\n ),\n };\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, \"id\">;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: \"UPDATE_TOAST\",\n toast: { ...props, id },\n });\n const dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id });\n\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n };\n}\n\nexport { useToast, toast };\n"],"names":["Command","React","param","ref","className","props","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","CommandPrimitive","cn","displayName","CommandInput","jsxs","div","cmdk-input-wrapper","Search","Input","CommandList","List","CommandEmpty","Empty","CommandGroup","Group","CommandSeparator","Separator","CommandItem","Item","Dialog","DialogPrimitive","DialogTrigger","DialogPortal","DialogOverlay","DialogContent","children","X","span","DialogHeader","DialogFooter","DialogTitle","DialogDescription","Popover","PopoverPrimitive","PopoverTrigger","PopoverContent","align","sideOffset","RoleSelector","data","value","onChange","placeholder","open","setOpen","useState","loading","useQuery","GET_USER_ROLES","variables","page","limit","fetchPolicy","roles","rolesPagination","items","selectedRole","find","role","id","formatPermissions","permissions","agents","agentPerms","toLowerCase","includes","push","workflows","workflowPerms","variablePerms","users","userPerms","length","onOpenChange","asChild","Button","variant","aria-expanded","disabled","Fragment","Loader2","name","ChevronDown","map","onSelect","Check","join","Table","table","TableHeader","thead","TableBody","tbody","TableFooter","tfoot","TableRow","tr","TableHead","th","TableCell","td","TableCaption","caption","count","toastTimeouts","Map","addToRemoveQueue","has","toastId","timeout","setTimeout","delete","dispatch","type","set","reducer","state","action","toasts","toast","slice","t","forEach","undefined","filter","listeners","memoryState","listener","Number","MAX_SAFE_INTEGER","toString","dismiss","update","useToast","setState","index","indexOf","splice"],"sourceRoot":""}