@exulu/frontend 1.0.3 → 1.1.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 (239) hide show
  1. package/dist/.next/BUILD_ID +1 -1
  2. package/dist/.next/app-build-manifest.json +192 -192
  3. package/dist/.next/app-path-routes-manifest.json +1 -1
  4. package/dist/.next/build-manifest.json +3 -3
  5. package/dist/.next/prerender-manifest.json +1 -1
  6. package/dist/.next/required-server-files.json +1 -1
  7. package/dist/.next/server/app/(application)/agents/edit/[id]/page.js +1 -1
  8. package/dist/.next/server/app/(application)/agents/edit/[id]/page.js.nft.json +1 -1
  9. package/dist/.next/server/app/(application)/agents/edit/[id]/page_client-reference-manifest.js +1 -1
  10. package/dist/.next/server/app/(application)/agents/page.js +2 -2
  11. package/dist/.next/server/app/(application)/agents/page.js.nft.json +1 -1
  12. package/dist/.next/server/app/(application)/agents/page_client-reference-manifest.js +1 -1
  13. package/dist/.next/server/app/(application)/chat/[agent]/[session]/page.js +2 -2
  14. package/dist/.next/server/app/(application)/chat/[agent]/[session]/page.js.nft.json +1 -1
  15. package/dist/.next/server/app/(application)/chat/[agent]/[session]/page_client-reference-manifest.js +1 -1
  16. package/dist/.next/server/app/(application)/chat/[agent]/page.js +1 -1
  17. package/dist/.next/server/app/(application)/chat/[agent]/page.js.nft.json +1 -1
  18. package/dist/.next/server/app/(application)/chat/[agent]/page_client-reference-manifest.js +1 -1
  19. package/dist/.next/server/app/(application)/chat/page.js +1 -1
  20. package/dist/.next/server/app/(application)/chat/page.js.nft.json +1 -1
  21. package/dist/.next/server/app/(application)/chat/page_client-reference-manifest.js +1 -1
  22. package/dist/.next/server/app/(application)/configuration/page.js +1 -1
  23. package/dist/.next/server/app/(application)/configuration/page.js.nft.json +1 -1
  24. package/dist/.next/server/app/(application)/configuration/page_client-reference-manifest.js +1 -1
  25. package/dist/.next/server/app/(application)/dashboard/page.js +2 -2
  26. package/dist/.next/server/app/(application)/dashboard/page.js.nft.json +1 -1
  27. package/dist/.next/server/app/(application)/dashboard/page_client-reference-manifest.js +1 -1
  28. package/dist/.next/server/app/(application)/data/[[...query]]/page.js +2 -2
  29. package/dist/.next/server/app/(application)/data/[[...query]]/page.js.nft.json +1 -1
  30. package/dist/.next/server/app/(application)/data/[[...query]]/page_client-reference-manifest.js +1 -1
  31. package/dist/.next/server/app/(application)/evals/[id]/page.js +1 -1
  32. package/dist/.next/server/app/(application)/evals/[id]/page.js.nft.json +1 -1
  33. package/dist/.next/server/app/(application)/evals/[id]/page_client-reference-manifest.js +1 -1
  34. package/dist/.next/server/app/(application)/evals/[id]/runs/page.js +1 -1
  35. package/dist/.next/server/app/(application)/evals/[id]/runs/page.js.nft.json +1 -1
  36. package/dist/.next/server/app/(application)/evals/[id]/runs/page_client-reference-manifest.js +1 -1
  37. package/dist/.next/server/app/(application)/evals/cases/page.js +1 -1
  38. package/dist/.next/server/app/(application)/evals/cases/page.js.nft.json +1 -1
  39. package/dist/.next/server/app/(application)/evals/cases/page_client-reference-manifest.js +1 -1
  40. package/dist/.next/server/app/(application)/evals/page.js +1 -1
  41. package/dist/.next/server/app/(application)/evals/page.js.nft.json +1 -1
  42. package/dist/.next/server/app/(application)/evals/page_client-reference-manifest.js +1 -1
  43. package/dist/.next/server/app/(application)/explorer/page.js +9 -9
  44. package/dist/.next/server/app/(application)/explorer/page.js.nft.json +1 -1
  45. package/dist/.next/server/app/(application)/explorer/page_client-reference-manifest.js +1 -1
  46. package/dist/.next/server/app/(application)/jobs/page.js +1 -1
  47. package/dist/.next/server/app/(application)/jobs/page.js.nft.json +1 -1
  48. package/dist/.next/server/app/(application)/jobs/page_client-reference-manifest.js +1 -1
  49. package/dist/.next/server/app/(application)/keys/page.js +1 -1
  50. package/dist/.next/server/app/(application)/keys/page.js.nft.json +1 -1
  51. package/dist/.next/server/app/(application)/keys/page_client-reference-manifest.js +1 -1
  52. package/dist/.next/server/app/(application)/page.js +1 -1
  53. package/dist/.next/server/app/(application)/page.js.nft.json +1 -1
  54. package/dist/.next/server/app/(application)/page_client-reference-manifest.js +1 -1
  55. package/dist/.next/server/app/(application)/projects/[project]/page.js +1 -1
  56. package/dist/.next/server/app/(application)/projects/[project]/page.js.nft.json +1 -1
  57. package/dist/.next/server/app/(application)/projects/[project]/page_client-reference-manifest.js +1 -1
  58. package/dist/.next/server/app/(application)/projects/page.js +1 -1
  59. package/dist/.next/server/app/(application)/projects/page.js.nft.json +1 -1
  60. package/dist/.next/server/app/(application)/projects/page_client-reference-manifest.js +1 -1
  61. package/dist/.next/server/app/(application)/roles/page.js +1 -1
  62. package/dist/.next/server/app/(application)/roles/page.js.nft.json +1 -1
  63. package/dist/.next/server/app/(application)/roles/page_client-reference-manifest.js +1 -1
  64. package/dist/.next/server/app/(application)/token/page.js +1 -1
  65. package/dist/.next/server/app/(application)/token/page.js.nft.json +1 -1
  66. package/dist/.next/server/app/(application)/token/page_client-reference-manifest.js +1 -1
  67. package/dist/.next/server/app/(application)/users/page.js +1 -1
  68. package/dist/.next/server/app/(application)/users/page.js.nft.json +1 -1
  69. package/dist/.next/server/app/(application)/users/page_client-reference-manifest.js +1 -1
  70. package/dist/.next/server/app/(application)/variables/create/page.js +1 -1
  71. package/dist/.next/server/app/(application)/variables/create/page.js.nft.json +1 -1
  72. package/dist/.next/server/app/(application)/variables/create/page_client-reference-manifest.js +1 -1
  73. package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page.js +1 -1
  74. package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page.js.nft.json +1 -1
  75. package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page_client-reference-manifest.js +1 -1
  76. package/dist/.next/server/app/(application)/variables/page.js +1 -1
  77. package/dist/.next/server/app/(application)/variables/page.js.nft.json +1 -1
  78. package/dist/.next/server/app/(application)/variables/page_client-reference-manifest.js +1 -1
  79. package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page.js +1 -1
  80. package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page.js.nft.json +1 -1
  81. package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page_client-reference-manifest.js +1 -1
  82. package/dist/.next/server/app/(application)/workflows/page.js +1 -1
  83. package/dist/.next/server/app/(application)/workflows/page.js.nft.json +1 -1
  84. package/dist/.next/server/app/(application)/workflows/page_client-reference-manifest.js +1 -1
  85. package/dist/.next/server/app/(authentication)/login/page.js +3 -3
  86. package/dist/.next/server/app/(authentication)/login/page.js.nft.json +1 -1
  87. package/dist/.next/server/app/(authentication)/login/page_client-reference-manifest.js +1 -1
  88. package/dist/.next/server/app/_not-found/page.js +1 -1
  89. package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  90. package/dist/.next/server/app/_not-found.html +1 -1
  91. package/dist/.next/server/app/_not-found.rsc +1 -1
  92. package/dist/.next/server/app/api/auth/[...nextauth]/route.js +2 -2
  93. package/dist/.next/server/app/api/config/route.js +2 -2
  94. package/dist/.next/server/app-paths-manifest.json +9 -9
  95. package/dist/.next/server/chunks/{2711.js → 3575.js} +1 -1
  96. package/dist/.next/server/chunks/{1558.js → 5192.js} +1 -1
  97. package/dist/.next/server/chunks/{9762.js → 7223.js} +5 -5
  98. package/dist/.next/server/chunks/{4470.js → 7944.js} +2 -2
  99. package/dist/.next/server/chunks/9049.js +2 -2
  100. package/dist/.next/server/middleware-build-manifest.js +1 -1
  101. package/dist/.next/server/middleware-manifest.json +5 -5
  102. package/dist/.next/server/middleware.js +2 -2
  103. package/dist/.next/server/next-font-manifest.js +1 -1
  104. package/dist/.next/server/next-font-manifest.json +1 -1
  105. package/dist/.next/server/pages/404.html +1 -1
  106. package/dist/.next/server/pages/500.html +1 -1
  107. package/dist/.next/server/pages-manifest.json +1 -1
  108. package/dist/.next/server/server-reference-manifest.json +1 -1
  109. package/dist/.next/static/chunks/2117-7e0e97ffa5867cf9.js.map +1 -1
  110. package/dist/.next/static/chunks/6111-5ab0e72a466543ea.js.map +1 -1
  111. package/dist/.next/static/chunks/7648-be88d7a414ab6394.js.map +1 -1
  112. package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/{page-7737da0d7329baf0.js → page-e622860a59223955.js} +2 -2
  113. package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-e622860a59223955.js.map +1 -0
  114. package/dist/.next/static/chunks/app/(application)/agents/{page-58d7ecbf04b75ef3.js → page-fe256553444f6e6f.js} +2 -2
  115. package/dist/.next/static/chunks/app/(application)/agents/page-fe256553444f6e6f.js.map +1 -0
  116. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-beaa99a35c9e9bfc.js +2 -0
  117. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-beaa99a35c9e9bfc.js.map +1 -0
  118. package/dist/.next/static/chunks/app/(application)/chat/[agent]/{layout-a701083f64a86849.js → layout-1736d0931ae3f866.js} +2 -2
  119. package/dist/.next/static/chunks/app/(application)/chat/[agent]/layout-1736d0931ae3f866.js.map +1 -0
  120. package/dist/.next/static/chunks/app/(application)/chat/[agent]/{page-2f7e3126e0e76d70.js → page-1538a952e1e99f94.js} +2 -2
  121. package/dist/.next/static/chunks/app/(application)/chat/[agent]/page-1538a952e1e99f94.js.map +1 -0
  122. package/dist/.next/static/chunks/app/(application)/chat/{layout-b934ba4c0a125683.js → layout-3fbafd811d12ed10.js} +2 -2
  123. package/dist/.next/static/chunks/app/(application)/chat/layout-3fbafd811d12ed10.js.map +1 -0
  124. package/dist/.next/static/chunks/app/(application)/configuration/{page-3aa96486933ae5dd.js → page-876d1d43a9cc36e4.js} +2 -2
  125. package/dist/.next/static/chunks/app/(application)/configuration/page-876d1d43a9cc36e4.js.map +1 -0
  126. package/dist/.next/static/chunks/app/(application)/dashboard/{page-2436e355871758ba.js → page-ca746e824cb97052.js} +2 -2
  127. package/dist/.next/static/chunks/app/(application)/dashboard/page-ca746e824cb97052.js.map +1 -0
  128. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/{layout-e073c74bd194e8cc.js → layout-47ad558a66e699c7.js} +2 -2
  129. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-47ad558a66e699c7.js.map +1 -0
  130. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/{page-375a978d25ee3a65.js → page-edcdd8944daaaef8.js} +2 -2
  131. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-edcdd8944daaaef8.js.map +1 -0
  132. package/dist/.next/static/chunks/app/(application)/evals/[id]/{page-b668fca1ba6993e2.js → page-5d4b8e351ee3265f.js} +2 -2
  133. package/dist/.next/static/chunks/app/(application)/evals/[id]/page-5d4b8e351ee3265f.js.map +1 -0
  134. package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/{page-07969d6e5fb01d7b.js → page-4f0d1524fc7936d1.js} +2 -2
  135. package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-4f0d1524fc7936d1.js.map +1 -0
  136. package/dist/.next/static/chunks/app/(application)/evals/cases/{page-0f25ee5d9498cbc5.js → page-47274d92d3daf16b.js} +2 -2
  137. package/dist/.next/static/chunks/app/(application)/evals/cases/page-47274d92d3daf16b.js.map +1 -0
  138. package/dist/.next/static/chunks/app/(application)/evals/page-e25d76c28076b126.js +2 -0
  139. package/dist/.next/static/chunks/app/(application)/evals/page-e25d76c28076b126.js.map +1 -0
  140. package/dist/.next/static/chunks/app/(application)/explorer/{page-d1580ece2ff5ba64.js → page-9f8ab38b5cd68c45.js} +2 -2
  141. package/dist/.next/static/chunks/app/(application)/explorer/page-9f8ab38b5cd68c45.js.map +1 -0
  142. package/dist/.next/static/chunks/app/(application)/jobs/{page-1f32c5e7202301b2.js → page-2d9a06a9959e7977.js} +2 -2
  143. package/dist/.next/static/chunks/app/(application)/jobs/page-2d9a06a9959e7977.js.map +1 -0
  144. package/dist/.next/static/chunks/app/(application)/keys/page-6ecb8218f18773b9.js +2 -0
  145. package/dist/.next/static/chunks/app/(application)/keys/page-6ecb8218f18773b9.js.map +1 -0
  146. package/dist/.next/static/chunks/app/(application)/layout-73d93420d0c6661c.js +2 -0
  147. package/dist/.next/static/chunks/app/(application)/layout-73d93420d0c6661c.js.map +1 -0
  148. package/dist/.next/static/chunks/app/(application)/{page-661f24beb316dabf.js → page-16a518c5864e6963.js} +2 -2
  149. package/dist/.next/static/chunks/app/(application)/page-16a518c5864e6963.js.map +1 -0
  150. package/dist/.next/static/chunks/app/(application)/projects/[project]/{page-cc6f6786682fd877.js → page-870b48a3e7f64f7d.js} +2 -2
  151. package/dist/.next/static/chunks/app/(application)/projects/[project]/page-870b48a3e7f64f7d.js.map +1 -0
  152. package/dist/.next/static/chunks/app/(application)/projects/{layout-3ef4b8519966eee7.js → layout-aa5baaf5cc644e70.js} +2 -2
  153. package/dist/.next/static/chunks/app/(application)/projects/layout-aa5baaf5cc644e70.js.map +1 -0
  154. package/dist/.next/static/chunks/app/(application)/projects/{page-6a38fd92beb3b45a.js → page-055a048a107095ed.js} +2 -2
  155. package/dist/.next/static/chunks/app/(application)/projects/page-055a048a107095ed.js.map +1 -0
  156. package/dist/.next/static/chunks/app/(application)/roles/page-b30682514e63b3f8.js +2 -0
  157. package/dist/.next/static/chunks/app/(application)/roles/page-b30682514e63b3f8.js.map +1 -0
  158. package/dist/.next/static/chunks/app/(application)/token/{page-19921b235606b9f3.js → page-f86eaf8c51fdbe52.js} +2 -2
  159. package/dist/.next/static/chunks/app/(application)/token/page-f86eaf8c51fdbe52.js.map +1 -0
  160. package/dist/.next/static/chunks/app/(application)/users/page-1a686fd83f765d8e.js +2 -0
  161. package/dist/.next/static/chunks/app/(application)/users/page-1a686fd83f765d8e.js.map +1 -0
  162. package/dist/.next/static/chunks/app/(application)/variables/create/{page-3d0e1788a92cba52.js → page-16582f525a24dd45.js} +2 -2
  163. package/dist/.next/static/chunks/app/(application)/variables/create/page-16582f525a24dd45.js.map +1 -0
  164. package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/{page-ad12a1419856c280.js → page-b37d9320812bb8f6.js} +2 -2
  165. package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/page-b37d9320812bb8f6.js.map +1 -0
  166. package/dist/.next/static/chunks/app/(application)/variables/{page-530fff39006ba055.js → page-9b438ce239c07987.js} +2 -2
  167. package/dist/.next/static/chunks/app/(application)/variables/page-9b438ce239c07987.js.map +1 -0
  168. package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/{page-11fc31486ee7764e.js → page-b1fe1791701d361e.js} +2 -2
  169. package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/page-b1fe1791701d361e.js.map +1 -0
  170. package/dist/.next/static/chunks/app/(application)/workflows/{page-feb479eaa043e041.js → page-93969baedc6f38ff.js} +2 -2
  171. package/dist/.next/static/chunks/app/(application)/workflows/page-93969baedc6f38ff.js.map +1 -0
  172. package/dist/.next/static/chunks/app/(authentication)/{layout-ed3d63f0ade93b47.js → layout-2dfa18ea6e6dc5cd.js} +2 -2
  173. package/dist/.next/static/chunks/app/(authentication)/layout-2dfa18ea6e6dc5cd.js.map +1 -0
  174. package/dist/.next/static/chunks/app/(authentication)/login/{error-65d2315c483bed81.js → error-c5f516f76e374400.js} +2 -2
  175. package/dist/.next/static/chunks/app/(authentication)/login/error-c5f516f76e374400.js.map +1 -0
  176. package/dist/.next/static/chunks/app/(authentication)/login/{page-3233ca86dc3297c3.js → page-4de4d6f64507c919.js} +2 -2
  177. package/dist/.next/static/chunks/app/(authentication)/login/page-4de4d6f64507c919.js.map +1 -0
  178. package/dist/.next/static/chunks/app/_not-found/page-3832d1eb6511168a.js.map +1 -1
  179. package/dist/.next/static/chunks/main-83299e0cc175f2ed.js.map +1 -1
  180. package/dist/.next/static/chunks/{main-app-e4276b9c44f225cb.js → main-app-da1df2757744a2ea.js} +2 -2
  181. package/dist/.next/static/chunks/main-app-da1df2757744a2ea.js.map +1 -0
  182. package/dist/.next/static/css/e3f2a16ab7676b05.css.map +1 -1
  183. package/dist/node_modules/sharp/build/Release/sharp-linux-x64.node +0 -0
  184. package/dist/node_modules/sharp/vendor/8.14.5/{darwin-arm64v8/lib/libvips-cpp.42.dylib → linux-x64/lib/libvips-cpp.so.42} +0 -0
  185. package/dist/node_modules/sharp/vendor/8.14.5/linux-x64/platform.json +1 -0
  186. package/dist/node_modules/sharp/vendor/8.14.5/{darwin-arm64v8 → linux-x64}/versions.json +1 -1
  187. package/dist/package.json +3 -2
  188. package/dist/server.js +1 -1
  189. package/index.js +37 -0
  190. package/package.json +7 -6
  191. package/release.config.cjs +30 -0
  192. package/dist/.env +0 -32
  193. package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-7737da0d7329baf0.js.map +0 -1
  194. package/dist/.next/static/chunks/app/(application)/agents/page-58d7ecbf04b75ef3.js.map +0 -1
  195. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-fb7ea4dc4cdb350b.js +0 -2
  196. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-fb7ea4dc4cdb350b.js.map +0 -1
  197. package/dist/.next/static/chunks/app/(application)/chat/[agent]/layout-a701083f64a86849.js.map +0 -1
  198. package/dist/.next/static/chunks/app/(application)/chat/[agent]/page-2f7e3126e0e76d70.js.map +0 -1
  199. package/dist/.next/static/chunks/app/(application)/chat/layout-b934ba4c0a125683.js.map +0 -1
  200. package/dist/.next/static/chunks/app/(application)/configuration/page-3aa96486933ae5dd.js.map +0 -1
  201. package/dist/.next/static/chunks/app/(application)/dashboard/page-2436e355871758ba.js.map +0 -1
  202. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-e073c74bd194e8cc.js.map +0 -1
  203. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-375a978d25ee3a65.js.map +0 -1
  204. package/dist/.next/static/chunks/app/(application)/evals/[id]/page-b668fca1ba6993e2.js.map +0 -1
  205. package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-07969d6e5fb01d7b.js.map +0 -1
  206. package/dist/.next/static/chunks/app/(application)/evals/cases/page-0f25ee5d9498cbc5.js.map +0 -1
  207. package/dist/.next/static/chunks/app/(application)/evals/page-78bbdcf2c04a4ef9.js +0 -2
  208. package/dist/.next/static/chunks/app/(application)/evals/page-78bbdcf2c04a4ef9.js.map +0 -1
  209. package/dist/.next/static/chunks/app/(application)/explorer/page-d1580ece2ff5ba64.js.map +0 -1
  210. package/dist/.next/static/chunks/app/(application)/jobs/page-1f32c5e7202301b2.js.map +0 -1
  211. package/dist/.next/static/chunks/app/(application)/keys/page-9b13ab99042d606c.js +0 -2
  212. package/dist/.next/static/chunks/app/(application)/keys/page-9b13ab99042d606c.js.map +0 -1
  213. package/dist/.next/static/chunks/app/(application)/layout-cff96ce5805f0772.js +0 -2
  214. package/dist/.next/static/chunks/app/(application)/layout-cff96ce5805f0772.js.map +0 -1
  215. package/dist/.next/static/chunks/app/(application)/page-661f24beb316dabf.js.map +0 -1
  216. package/dist/.next/static/chunks/app/(application)/projects/[project]/page-cc6f6786682fd877.js.map +0 -1
  217. package/dist/.next/static/chunks/app/(application)/projects/layout-3ef4b8519966eee7.js.map +0 -1
  218. package/dist/.next/static/chunks/app/(application)/projects/page-6a38fd92beb3b45a.js.map +0 -1
  219. package/dist/.next/static/chunks/app/(application)/roles/page-d4a925d823a3c66c.js +0 -2
  220. package/dist/.next/static/chunks/app/(application)/roles/page-d4a925d823a3c66c.js.map +0 -1
  221. package/dist/.next/static/chunks/app/(application)/token/page-19921b235606b9f3.js.map +0 -1
  222. package/dist/.next/static/chunks/app/(application)/users/page-7cddc0528218c5c8.js +0 -2
  223. package/dist/.next/static/chunks/app/(application)/users/page-7cddc0528218c5c8.js.map +0 -1
  224. package/dist/.next/static/chunks/app/(application)/variables/create/page-3d0e1788a92cba52.js.map +0 -1
  225. package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/page-ad12a1419856c280.js.map +0 -1
  226. package/dist/.next/static/chunks/app/(application)/variables/page-530fff39006ba055.js.map +0 -1
  227. package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/page-11fc31486ee7764e.js.map +0 -1
  228. package/dist/.next/static/chunks/app/(application)/workflows/page-feb479eaa043e041.js.map +0 -1
  229. package/dist/.next/static/chunks/app/(authentication)/layout-ed3d63f0ade93b47.js.map +0 -1
  230. package/dist/.next/static/chunks/app/(authentication)/login/error-65d2315c483bed81.js.map +0 -1
  231. package/dist/.next/static/chunks/app/(authentication)/login/page-3233ca86dc3297c3.js.map +0 -1
  232. package/dist/.next/static/chunks/main-app-e4276b9c44f225cb.js.map +0 -1
  233. package/dist/node_modules/sharp/build/Release/sharp-darwin-arm64v8.node +0 -0
  234. package/dist/node_modules/sharp/vendor/8.14.5/darwin-arm64v8/include/harfbuzz/hb-cplusplus.hh +0 -223
  235. package/dist/node_modules/sharp/vendor/8.14.5/darwin-arm64v8/include/vips/vips8 +0 -60
  236. package/dist/node_modules/sharp/vendor/8.14.5/darwin-arm64v8/platform.json +0 -1
  237. /package/dist/.next/static/{5Vf-v5wyENpLUvLzma2J6 → Wt4IDtB-Xwfc0Z_CpMmtm}/_buildManifest.js +0 -0
  238. /package/dist/.next/static/{5Vf-v5wyENpLUvLzma2J6 → Wt4IDtB-Xwfc0Z_CpMmtm}/_ssgManifest.js +0 -0
  239. /package/dist/node_modules/sharp/vendor/8.14.5/{darwin-arm64v8 → linux-x64}/THIRD-PARTY-NOTICES.md +0 -0
@@ -1,2 +1,2 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9727],{97044:function(e,s,t){Promise.resolve().then(t.bind(t,831))},831:function(e,s,t){"use strict";t.r(s),t.d(s,{default:function(){return A},dynamic:function(){return P}});var a=t(57437),l=t(2265),r=t(99376),i=t(7211),n=t(12199),c=t(13832),d=t(64972),o=t(32660),h=t(82023),u=t(33276),m=t(15863),x=t(83229),v=t(48736),f=t(45554),p=t(99397),j=t(88893),g=t(32489),N=t(65613),y=t(37099),b=t(62869),k=t(95186),w=t(26815),C=t(76818),Z=t(66070),_=t(35974),S=t(93022),E=t(77992),z=t(27689),R=t(73247),T=t(26110),M=t(19060),q=t(19378);function I(e){var s;let{open:t,onClose:r,onSelect:n,excludeIds:c=[]}=e,[d,o]=(0,l.useState)(""),[h,u]=(0,l.useState)([]),{loading:m,data:x}=(0,i.aM)(z.RV,{variables:{page:1,limit:100,filters:d?[{AND:[{name:{contains:d}},{eval_set_id:{eq:null}}]}]:[{eval_set_id:{eq:null}}]},skip:!t});(0,l.useEffect)(()=>{t||(u([]),o(""))},[t]);let v=((null==x?void 0:null===(s=x.test_casesPagination)||void 0===s?void 0:s.items)||[]).filter(e=>!c.includes(e.id)),f=e=>{u(s=>s.includes(e)?s.filter(s=>s!==e):[...s,e])};return(0,a.jsx)(T.Vq,{open:t,onOpenChange:r,children:(0,a.jsxs)(T.cZ,{className:"max-w-3xl max-h-[80vh] flex flex-col",children:[(0,a.jsxs)(T.fK,{children:[(0,a.jsx)(T.$N,{children:"Add Test Cases"}),(0,a.jsx)(T.Be,{children:"Select test cases to add to this eval set. Already added test cases are hidden."})]}),(0,a.jsxs)("div",{className:"space-y-4 flex-1 overflow-hidden flex flex-col",children:[(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)(R.Z,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground"}),(0,a.jsx)(k.I,{placeholder:"Search test cases by name...",value:d,onChange:e=>o(e.target.value),className:"pl-9"})]}),v.length>0&&(0,a.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,a.jsx)(M.X,{id:"select-all-test-cases",checked:h.length===v.length&&v.length>0,onCheckedChange:()=>{h.length===v.length?u([]):u(v.map(e=>e.id))}}),(0,a.jsxs)(w._,{htmlFor:"select-all-test-cases",className:"text-sm text-muted-foreground",children:["Select all (",h.length," selected)"]})]}),(0,a.jsx)(q.x,{className:"flex-1 border rounded-lg",children:(0,a.jsx)("div",{children:m?Array.from({length:3}).map((e,s)=>(0,a.jsx)(S.O,{className:"h-10 w-full"},s)):0===v.length?(0,a.jsx)("div",{className:"text-center py-12 text-muted-foreground mx-5",children:d?"No test cases found matching your search.":"No test cases available to add (note: you can only add test cases that are not already in an eval set, remove them from another eval set first if you want to add them to a new eval set)."}):v.map(e=>(0,a.jsxs)("div",{onClick:()=>{f(e.id)},className:"flex items-start gap-3 p-3 hover:bg-muted/50",children:[(0,a.jsx)(M.X,{checked:h.includes(e.id),id:"select-test-case-".concat(e.id),onCheckedChange:()=>f(e.id)}),(0,a.jsxs)(w._,{htmlFor:"select-test-case-".concat(e.id),className:"text-sm text-muted-foreground flex flex-col",children:[(0,a.jsx)("span",{children:e.name}),(0,a.jsx)("small",{children:e.description})]})]},e.id))})})]}),(0,a.jsxs)(T.cN,{children:[(0,a.jsx)(b.z,{variant:"outline",onClick:r,children:"Cancel"}),(0,a.jsxs)(b.z,{onClick:()=>{n(h)},disabled:0===h.length,children:["Add ",h.length," Test Case",1!==h.length?"s":""]})]})]})})}var O=t(82534);let P="force-dynamic";function A(){var e,s,t,R;let T=(0,r.useParams)(),M=(0,r.useRouter)(),{user:q}=(0,l.useContext)(c.S),{toast:P}=(0,E.pm)(),A=T.id,[V,D]=(0,l.useState)(""),[F,B]=(0,l.useState)(""),[L,X]=(0,l.useState)([]),[Y,$]=(0,l.useState)(!1),[W,H]=(0,l.useState)(!1),[K,G]=(0,l.useState)(null),[J,Q]=(0,l.useState)(null),U=q.super_admin||(null===(e=q.role)||void 0===e?void 0:e.evals)==="read"||(null===(s=q.role)||void 0===s?void 0:s.evals)==="write",ee=q.super_admin||(null===(t=q.role)||void 0===t?void 0:t.evals)==="write",{loading:es,data:et,refetch:ea}=(0,i.aM)(z.iA,{variables:{id:A},skip:!A,onCompleted:e=>{(null==e?void 0:e.eval_setById)&&(D(e.eval_setById.name),B(e.eval_setById.description||""))}}),{data:el,refetch:er}=(0,i.aM)(z.RV,{variables:{page:1,limit:500,filters:[{eval_set_id:{eq:A}}]}}),[ei,{loading:en}]=(0,n.D)(z.vP,{onCompleted:()=>{P({title:"Eval set updated",description:"The eval set has been successfully updated."}),ea()},onError:e=>{P({title:"Failed to update eval set",description:e.message,variant:"destructive"})}}),ec=e=>{G(e)},[ed,{loading:eo}]=(0,n.D)(z.Mh,{onError:e=>{P({title:"Failed to update test case",description:e.message,variant:"destructive"})}});if(!U)return(0,a.jsx)("div",{className:"flex h-full flex-1 flex-col space-y-8 p-8",children:(0,a.jsxs)(N.bZ,{variant:"destructive",children:[(0,a.jsx)(d.Z,{className:"h-4 w-4"}),(0,a.jsx)(N.X,{children:"You don't have permission to access Eval Sets. Contact your administrator to request access."})]})});if(es)return(0,a.jsxs)("div",{className:"flex h-full flex-1 flex-col space-y-8 p-8",children:[(0,a.jsx)(S.O,{className:"h-8 w-64"}),(0,a.jsx)(S.O,{className:"h-64 w-full"})]});let eh=(null==el?void 0:null===(R=el.test_casesPagination)||void 0===R?void 0:R.items)||[];return(0,a.jsxs)("div",{className:"flex h-full flex-1 flex-col space-y-8 p-8",children:[(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)("div",{className:"absolute inset-0 bg-primary/5 rounded-lg blur-xl"}),(0,a.jsxs)("div",{className:"relative flex items-center justify-between p-6 border rounded-lg bg-card/50 backdrop-blur-sm",children:[(0,a.jsxs)("div",{className:"flex items-center gap-4",children:[(0,a.jsx)(b.z,{variant:"ghost",size:"icon",onClick:()=>M.push("/evals"),children:(0,a.jsx)(o.Z,{className:"h-4 w-4"})}),(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("div",{className:"p-2 rounded-lg bg-primary",children:(0,a.jsx)(h.Z,{className:"h-5 w-5 text-primary-foreground"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"text-2xl font-bold tracking-tight",children:"Edit Eval Set"}),(0,a.jsx)("p",{className:"text-muted-foreground",children:"Configure test cases for this evaluation set."})]})]})]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsxs)(b.z,{variant:"outline",onClick:()=>M.push("/evals/".concat(A,"/runs")),children:[(0,a.jsx)(u.Z,{className:"mr-2 h-4 w-4"}),"View Runs"]}),ee&&(0,a.jsxs)(b.z,{onClick:()=>{if(!V.trim()){P({title:"Validation error",description:"Name is required.",variant:"destructive"});return}if(L.length>500){P({title:"Validation error",description:"Maximum 500 test cases allowed per eval set.",variant:"destructive"});return}ei({variables:{id:A,data:{name:V.trim(),description:F.trim()||null}}})},disabled:en,children:[en?(0,a.jsx)(m.Z,{className:"mr-2 h-4 w-4 animate-spin"}):(0,a.jsx)(x.Z,{className:"mr-2 h-4 w-4"}),"Save Changes"]})]})]})]}),(0,a.jsxs)(Z.Zb,{className:"shadow-lg",children:[(0,a.jsx)(Z.Ol,{className:"border-b bg-accent/50",children:(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("div",{className:"p-2 rounded-lg bg-primary/10",children:(0,a.jsx)(v.Z,{className:"h-4 w-4 text-primary"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(Z.ll,{children:"Basic Information"}),(0,a.jsx)(Z.SZ,{children:"Edit the name and description of this eval set."})]})]})}),(0,a.jsxs)(Z.aY,{className:"space-y-4 pt-6",children:[(0,a.jsxs)("div",{className:"grid gap-2",children:[(0,a.jsx)(w._,{htmlFor:"name",className:"text-sm font-semibold",children:"Name *"}),(0,a.jsx)(k.I,{id:"name",placeholder:"Eval set name",value:V,onChange:e=>D(e.target.value),disabled:!ee})]}),(0,a.jsxs)("div",{className:"grid gap-2",children:[(0,a.jsx)(w._,{htmlFor:"description",className:"text-sm font-semibold",children:"Description"}),(0,a.jsx)(C.g,{id:"description",placeholder:"Describe what this eval set tests...",value:F,onChange:e=>B(e.target.value),disabled:!ee,rows:3})]})]})]}),(0,a.jsxs)(Z.Zb,{className:"shadow-lg",children:[(0,a.jsx)(Z.Ol,{className:"border-b bg-accent/50",children:(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("div",{className:"p-2 rounded-lg bg-primary/10",children:(0,a.jsx)(f.Z,{className:"h-4 w-4 text-primary"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(Z.ll,{children:"Test Cases"}),(0,a.jsxs)(Z.SZ,{children:["Add up to 500 test cases to this eval set."," ",(0,a.jsxs)(_.C,{variant:"secondary",className:"ml-1",children:[eh.length,"/500"]})]})]})]}),ee&&(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsxs)(b.z,{variant:"outline",size:"sm",onClick:()=>H(!0),children:[(0,a.jsx)(p.Z,{className:"mr-2 h-4 w-4"}),"Create New"]}),(0,a.jsxs)(b.z,{variant:"secondary",size:"sm",onClick:()=>$(!0),disabled:L.length>=500,children:[(0,a.jsx)(p.Z,{className:"mr-2 h-4 w-4"}),"Add Existing"]})]})]})}),(0,a.jsx)(Z.aY,{className:"pt-6",children:0===eh.length?(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:[(0,a.jsx)("div",{className:"p-4 rounded-full bg-primary/10 mb-4",children:(0,a.jsx)(f.Z,{className:"h-8 w-8 text-primary"})}),(0,a.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"No test cases yet"}),(0,a.jsx)("p",{className:"text-muted-foreground max-w-sm",children:'Click "Create New" or "Add Existing" to start building your evaluation set.'})]}):(0,a.jsx)("div",{className:"space-y-3",children:eh.map(e=>(0,a.jsxs)("div",{className:"group relative flex items-center justify-between p-4 border rounded-lg transition-all hover:shadow-md hover:border-primary/50 hover:scale-[1.01] hover:bg-accent/30",children:[(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("div",{className:"p-1.5 rounded bg-primary/10",children:(0,a.jsx)(v.Z,{className:"h-3.5 w-3.5 text-primary"})}),(0,a.jsx)("span",{className:"font-semibold",children:e.name})]}),e.description&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground mt-2 ml-8",children:e.description})]}),ee&&(0,a.jsxs)("div",{className:"flex gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,a.jsxs)(b.z,{variant:"ghost",size:"sm",onClick:()=>{Q(e),H(!0)},className:"hover:bg-primary/10",children:[(0,a.jsx)(j.Z,{className:"mr-1 h-3.5 w-3.5"}),"Edit"]}),(0,a.jsxs)(b.z,{variant:"ghost",size:"sm",onClick:()=>ec(e.id),className:"hover:bg-destructive/10 hover:text-destructive",children:[(0,a.jsx)(g.Z,{className:"mr-1 h-3.5 w-3.5"}),"Remove"]})]})]},e.id))})})]}),(0,a.jsx)(I,{open:Y,onClose:()=>$(!1),onSelect:e=>{let s=Array.from(new Set([...L,...e]));if(s.length>500){P({title:"Too many test cases",description:"Maximum 500 test cases allowed per eval set.",variant:"destructive"});return}for(let e of(console.log("newTestCases",s),s))ed({variables:{id:e,data:{eval_set_id:A}}});er(),$(!1)},excludeIds:L}),(0,a.jsx)(O.F,{open:W,onClose:()=>H(!1),evalSetId:A,onSuccess:()=>{H(!1),er(),ea()},testCase:J}),(0,a.jsx)(y.aR,{open:!!K,onOpenChange:e=>!e&&G(null),children:(0,a.jsxs)(y._T,{children:[(0,a.jsxs)(y.fY,{children:[(0,a.jsx)(y.f$,{children:"Remove test case from eval set?"}),(0,a.jsx)(y.yT,{children:"This will remove the test case from this eval set. The test case itself will not be deleted and can be added back later."})]}),(0,a.jsxs)(y.xo,{children:[(0,a.jsx)(y.le,{children:"Cancel"}),(0,a.jsx)(y.OL,{onClick:()=>{K&&ed({variables:{id:K,data:{eval_set_id:null}},onCompleted:()=>{P({title:"Test case removed",description:"The test case has been removed from this eval set."}),er(),G(null)}})},children:"Remove"})]})]})})]})}},19060:function(e,s,t){"use strict";t.d(s,{X:function(){return c}});var a=t(57437),l=t(9270),r=t(30401),i=t(2265),n=t(94508);let c=i.forwardRef((e,s)=>{let{className:t,...i}=e;return(0,a.jsx)(l.fC,{ref:s,className:(0,n.cn)("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",t),...i,children:(0,a.jsx)(l.z$,{className:(0,n.cn)("flex items-center justify-center text-current"),children:(0,a.jsx)(r.Z,{className:"size-4"})})})});c.displayName=l.fC.displayName},45554:function(e,s,t){"use strict";t.d(s,{Z:function(){return a}});let a=(0,t(39763).Z)("ListChecks",[["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]])},88893:function(e,s,t){"use strict";t.d(s,{Z:function(){return a}});let a=(0,t(39763).Z)("Pen",[["path",{d:"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z",key:"5qss01"}]])},33276:function(e,s,t){"use strict";t.d(s,{Z:function(){return a}});let a=(0,t(39763).Z)("Play",[["polygon",{points:"5 3 19 12 5 21 5 3",key:"191637"}]])},83229:function(e,s,t){"use strict";t.d(s,{Z:function(){return a}});let a=(0,t(39763).Z)("Save",[["path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z",key:"1owoqh"}],["polyline",{points:"17 21 17 13 7 13 7 21",key:"1md35c"}],["polyline",{points:"7 3 7 8 15 8",key:"8nz8an"}]])},73247:function(e,s,t){"use strict";t.d(s,{Z:function(){return a}});let a=(0,t(39763).Z)("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]])},9270:function(e,s,t){"use strict";t.d(s,{fC:function(){return y},z$:function(){return k}});var a=t(2265),l=t(98575),r=t(73966),i=t(6741),n=t(80886),c=t(6718),d=t(90420),o=t(71599),h=t(66840),u=t(57437),m="Checkbox",[x,v]=(0,r.b)(m),[f,p]=x(m);function j(e){let{__scopeCheckbox:s,checked:t,children:l,defaultChecked:r,disabled:i,form:c,name:d,onCheckedChange:o,required:h,value:x="on",internal_do_not_use_render:v}=e,[p,j]=(0,n.T)({prop:t,defaultProp:null!=r&&r,onChange:o,caller:m}),[g,N]=a.useState(null),[y,b]=a.useState(null),k=a.useRef(!1),w=!g||!!c||!!g.closest("form"),C={checked:p,disabled:i,setChecked:j,control:g,setControl:N,name:d,form:c,value:x,hasConsumerStoppedPropagationRef:k,required:h,defaultChecked:!Z(r)&&r,isFormControl:w,bubbleInput:y,setBubbleInput:b};return(0,u.jsx)(f,{scope:s,...C,children:"function"==typeof v?v(C):l})}var g="CheckboxTrigger",N=a.forwardRef((e,s)=>{let{__scopeCheckbox:t,onKeyDown:r,onClick:n,...c}=e,{control:d,value:o,disabled:m,checked:x,required:v,setControl:f,setChecked:j,hasConsumerStoppedPropagationRef:N,isFormControl:y,bubbleInput:b}=p(g,t),k=(0,l.e)(s,f),w=a.useRef(x);return a.useEffect(()=>{let e=null==d?void 0:d.form;if(e){let s=()=>j(w.current);return e.addEventListener("reset",s),()=>e.removeEventListener("reset",s)}},[d,j]),(0,u.jsx)(h.WV.button,{type:"button",role:"checkbox","aria-checked":Z(x)?"mixed":x,"aria-required":v,"data-state":_(x),"data-disabled":m?"":void 0,disabled:m,value:o,...c,ref:k,onKeyDown:(0,i.M)(r,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:(0,i.M)(n,e=>{j(e=>!!Z(e)||!e),b&&y&&(N.current=e.isPropagationStopped(),N.current||e.stopPropagation())})})});N.displayName=g;var y=a.forwardRef((e,s)=>{let{__scopeCheckbox:t,name:a,checked:l,defaultChecked:r,required:i,disabled:n,value:c,onCheckedChange:d,form:o,...h}=e;return(0,u.jsx)(j,{__scopeCheckbox:t,checked:l,defaultChecked:r,disabled:n,required:i,onCheckedChange:d,name:a,form:o,value:c,internal_do_not_use_render:e=>{let{isFormControl:a}=e;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(N,{...h,ref:s,__scopeCheckbox:t}),a&&(0,u.jsx)(C,{__scopeCheckbox:t})]})}})});y.displayName=m;var b="CheckboxIndicator",k=a.forwardRef((e,s)=>{let{__scopeCheckbox:t,forceMount:a,...l}=e,r=p(b,t);return(0,u.jsx)(o.z,{present:a||Z(r.checked)||!0===r.checked,children:(0,u.jsx)(h.WV.span,{"data-state":_(r.checked),"data-disabled":r.disabled?"":void 0,...l,ref:s,style:{pointerEvents:"none",...e.style}})})});k.displayName=b;var w="CheckboxBubbleInput",C=a.forwardRef((e,s)=>{let{__scopeCheckbox:t,...r}=e,{control:i,hasConsumerStoppedPropagationRef:n,checked:o,defaultChecked:m,required:x,disabled:v,name:f,value:j,form:g,bubbleInput:N,setBubbleInput:y}=p(w,t),b=(0,l.e)(s,y),k=(0,c.D)(o),C=(0,d.t)(i);a.useEffect(()=>{if(!N)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,s=!n.current;if(k!==o&&e){let t=new Event("click",{bubbles:s});N.indeterminate=Z(o),e.call(N,!Z(o)&&o),N.dispatchEvent(t)}},[N,k,o,n]);let _=a.useRef(!Z(o)&&o);return(0,u.jsx)(h.WV.input,{type:"checkbox","aria-hidden":!0,defaultChecked:null!=m?m:_.current,required:x,disabled:v,name:f,value:j,form:g,...r,tabIndex:-1,ref:b,style:{...r.style,...C,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function Z(e){return"indeterminate"===e}function _(e){return Z(e)?"indeterminate":e?"checked":"unchecked"}C.displayName=w}},function(e){e.O(0,[6840,329,8310,3954,9851,7629,7093,6148,847,1942,7648,7823,8068,5799,4567,605,85,4957,7398,1785,3397,9141,1713,6152,3145,428,6373,3832,1002,5978,2971,2117,1744],function(){return e(e.s=97044)}),_N_E=e.O()}]);
2
- //# sourceMappingURL=page-b668fca1ba6993e2.js.map
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9727],{74083:function(e,s,t){Promise.resolve().then(t.bind(t,831))},831:function(e,s,t){"use strict";t.r(s),t.d(s,{default:function(){return A},dynamic:function(){return P}});var a=t(57437),l=t(2265),r=t(99376),i=t(7211),n=t(12199),c=t(13832),d=t(64972),o=t(32660),h=t(82023),u=t(33276),m=t(15863),x=t(83229),v=t(48736),f=t(45554),p=t(99397),j=t(88893),g=t(32489),N=t(65613),y=t(37099),b=t(62869),k=t(95186),w=t(26815),C=t(76818),Z=t(66070),_=t(35974),S=t(93022),E=t(77992),z=t(27689),R=t(73247),T=t(26110),M=t(19060),q=t(19378);function I(e){var s;let{open:t,onClose:r,onSelect:n,excludeIds:c=[]}=e,[d,o]=(0,l.useState)(""),[h,u]=(0,l.useState)([]),{loading:m,data:x}=(0,i.aM)(z.RV,{variables:{page:1,limit:100,filters:d?[{AND:[{name:{contains:d}},{eval_set_id:{eq:null}}]}]:[{eval_set_id:{eq:null}}]},skip:!t});(0,l.useEffect)(()=>{t||(u([]),o(""))},[t]);let v=((null==x?void 0:null===(s=x.test_casesPagination)||void 0===s?void 0:s.items)||[]).filter(e=>!c.includes(e.id)),f=e=>{u(s=>s.includes(e)?s.filter(s=>s!==e):[...s,e])};return(0,a.jsx)(T.Vq,{open:t,onOpenChange:r,children:(0,a.jsxs)(T.cZ,{className:"max-w-3xl max-h-[80vh] flex flex-col",children:[(0,a.jsxs)(T.fK,{children:[(0,a.jsx)(T.$N,{children:"Add Test Cases"}),(0,a.jsx)(T.Be,{children:"Select test cases to add to this eval set. Already added test cases are hidden."})]}),(0,a.jsxs)("div",{className:"space-y-4 flex-1 overflow-hidden flex flex-col",children:[(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)(R.Z,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground"}),(0,a.jsx)(k.I,{placeholder:"Search test cases by name...",value:d,onChange:e=>o(e.target.value),className:"pl-9"})]}),v.length>0&&(0,a.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,a.jsx)(M.X,{id:"select-all-test-cases",checked:h.length===v.length&&v.length>0,onCheckedChange:()=>{h.length===v.length?u([]):u(v.map(e=>e.id))}}),(0,a.jsxs)(w._,{htmlFor:"select-all-test-cases",className:"text-sm text-muted-foreground",children:["Select all (",h.length," selected)"]})]}),(0,a.jsx)(q.x,{className:"flex-1 border rounded-lg",children:(0,a.jsx)("div",{children:m?Array.from({length:3}).map((e,s)=>(0,a.jsx)(S.O,{className:"h-10 w-full"},s)):0===v.length?(0,a.jsx)("div",{className:"text-center py-12 text-muted-foreground mx-5",children:d?"No test cases found matching your search.":"No test cases available to add (note: you can only add test cases that are not already in an eval set, remove them from another eval set first if you want to add them to a new eval set)."}):v.map(e=>(0,a.jsxs)("div",{onClick:()=>{f(e.id)},className:"flex items-start gap-3 p-3 hover:bg-muted/50",children:[(0,a.jsx)(M.X,{checked:h.includes(e.id),id:"select-test-case-".concat(e.id),onCheckedChange:()=>f(e.id)}),(0,a.jsxs)(w._,{htmlFor:"select-test-case-".concat(e.id),className:"text-sm text-muted-foreground flex flex-col",children:[(0,a.jsx)("span",{children:e.name}),(0,a.jsx)("small",{children:e.description})]})]},e.id))})})]}),(0,a.jsxs)(T.cN,{children:[(0,a.jsx)(b.z,{variant:"outline",onClick:r,children:"Cancel"}),(0,a.jsxs)(b.z,{onClick:()=>{n(h)},disabled:0===h.length,children:["Add ",h.length," Test Case",1!==h.length?"s":""]})]})]})})}var O=t(82534);let P="force-dynamic";function A(){var e,s,t,R;let T=(0,r.useParams)(),M=(0,r.useRouter)(),{user:q}=(0,l.useContext)(c.S),{toast:P}=(0,E.pm)(),A=T.id,[V,D]=(0,l.useState)(""),[F,B]=(0,l.useState)(""),[L,X]=(0,l.useState)([]),[Y,$]=(0,l.useState)(!1),[W,H]=(0,l.useState)(!1),[K,G]=(0,l.useState)(null),[J,Q]=(0,l.useState)(null),U=q.super_admin||(null===(e=q.role)||void 0===e?void 0:e.evals)==="read"||(null===(s=q.role)||void 0===s?void 0:s.evals)==="write",ee=q.super_admin||(null===(t=q.role)||void 0===t?void 0:t.evals)==="write",{loading:es,data:et,refetch:ea}=(0,i.aM)(z.iA,{variables:{id:A},skip:!A,onCompleted:e=>{(null==e?void 0:e.eval_setById)&&(D(e.eval_setById.name),B(e.eval_setById.description||""))}}),{data:el,refetch:er}=(0,i.aM)(z.RV,{variables:{page:1,limit:500,filters:[{eval_set_id:{eq:A}}]}}),[ei,{loading:en}]=(0,n.D)(z.vP,{onCompleted:()=>{P({title:"Eval set updated",description:"The eval set has been successfully updated."}),ea()},onError:e=>{P({title:"Failed to update eval set",description:e.message,variant:"destructive"})}}),ec=e=>{G(e)},[ed,{loading:eo}]=(0,n.D)(z.Mh,{onError:e=>{P({title:"Failed to update test case",description:e.message,variant:"destructive"})}});if(!U)return(0,a.jsx)("div",{className:"flex h-full flex-1 flex-col space-y-8 p-8",children:(0,a.jsxs)(N.bZ,{variant:"destructive",children:[(0,a.jsx)(d.Z,{className:"h-4 w-4"}),(0,a.jsx)(N.X,{children:"You don't have permission to access Eval Sets. Contact your administrator to request access."})]})});if(es)return(0,a.jsxs)("div",{className:"flex h-full flex-1 flex-col space-y-8 p-8",children:[(0,a.jsx)(S.O,{className:"h-8 w-64"}),(0,a.jsx)(S.O,{className:"h-64 w-full"})]});let eh=(null==el?void 0:null===(R=el.test_casesPagination)||void 0===R?void 0:R.items)||[];return(0,a.jsxs)("div",{className:"flex h-full flex-1 flex-col space-y-8 p-8",children:[(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)("div",{className:"absolute inset-0 bg-primary/5 rounded-lg blur-xl"}),(0,a.jsxs)("div",{className:"relative flex items-center justify-between p-6 border rounded-lg bg-card/50 backdrop-blur-sm",children:[(0,a.jsxs)("div",{className:"flex items-center gap-4",children:[(0,a.jsx)(b.z,{variant:"ghost",size:"icon",onClick:()=>M.push("/evals"),children:(0,a.jsx)(o.Z,{className:"h-4 w-4"})}),(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("div",{className:"p-2 rounded-lg bg-primary",children:(0,a.jsx)(h.Z,{className:"h-5 w-5 text-primary-foreground"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"text-2xl font-bold tracking-tight",children:"Edit Eval Set"}),(0,a.jsx)("p",{className:"text-muted-foreground",children:"Configure test cases for this evaluation set."})]})]})]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsxs)(b.z,{variant:"outline",onClick:()=>M.push("/evals/".concat(A,"/runs")),children:[(0,a.jsx)(u.Z,{className:"mr-2 h-4 w-4"}),"View Runs"]}),ee&&(0,a.jsxs)(b.z,{onClick:()=>{if(!V.trim()){P({title:"Validation error",description:"Name is required.",variant:"destructive"});return}if(L.length>500){P({title:"Validation error",description:"Maximum 500 test cases allowed per eval set.",variant:"destructive"});return}ei({variables:{id:A,data:{name:V.trim(),description:F.trim()||null}}})},disabled:en,children:[en?(0,a.jsx)(m.Z,{className:"mr-2 h-4 w-4 animate-spin"}):(0,a.jsx)(x.Z,{className:"mr-2 h-4 w-4"}),"Save Changes"]})]})]})]}),(0,a.jsxs)(Z.Zb,{className:"shadow-lg",children:[(0,a.jsx)(Z.Ol,{className:"border-b bg-accent/50",children:(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("div",{className:"p-2 rounded-lg bg-primary/10",children:(0,a.jsx)(v.Z,{className:"h-4 w-4 text-primary"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(Z.ll,{children:"Basic Information"}),(0,a.jsx)(Z.SZ,{children:"Edit the name and description of this eval set."})]})]})}),(0,a.jsxs)(Z.aY,{className:"space-y-4 pt-6",children:[(0,a.jsxs)("div",{className:"grid gap-2",children:[(0,a.jsx)(w._,{htmlFor:"name",className:"text-sm font-semibold",children:"Name *"}),(0,a.jsx)(k.I,{id:"name",placeholder:"Eval set name",value:V,onChange:e=>D(e.target.value),disabled:!ee})]}),(0,a.jsxs)("div",{className:"grid gap-2",children:[(0,a.jsx)(w._,{htmlFor:"description",className:"text-sm font-semibold",children:"Description"}),(0,a.jsx)(C.g,{id:"description",placeholder:"Describe what this eval set tests...",value:F,onChange:e=>B(e.target.value),disabled:!ee,rows:3})]})]})]}),(0,a.jsxs)(Z.Zb,{className:"shadow-lg",children:[(0,a.jsx)(Z.Ol,{className:"border-b bg-accent/50",children:(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("div",{className:"p-2 rounded-lg bg-primary/10",children:(0,a.jsx)(f.Z,{className:"h-4 w-4 text-primary"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(Z.ll,{children:"Test Cases"}),(0,a.jsxs)(Z.SZ,{children:["Add up to 500 test cases to this eval set."," ",(0,a.jsxs)(_.C,{variant:"secondary",className:"ml-1",children:[eh.length,"/500"]})]})]})]}),ee&&(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsxs)(b.z,{variant:"outline",size:"sm",onClick:()=>H(!0),children:[(0,a.jsx)(p.Z,{className:"mr-2 h-4 w-4"}),"Create New"]}),(0,a.jsxs)(b.z,{variant:"secondary",size:"sm",onClick:()=>$(!0),disabled:L.length>=500,children:[(0,a.jsx)(p.Z,{className:"mr-2 h-4 w-4"}),"Add Existing"]})]})]})}),(0,a.jsx)(Z.aY,{className:"pt-6",children:0===eh.length?(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:[(0,a.jsx)("div",{className:"p-4 rounded-full bg-primary/10 mb-4",children:(0,a.jsx)(f.Z,{className:"h-8 w-8 text-primary"})}),(0,a.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"No test cases yet"}),(0,a.jsx)("p",{className:"text-muted-foreground max-w-sm",children:'Click "Create New" or "Add Existing" to start building your evaluation set.'})]}):(0,a.jsx)("div",{className:"space-y-3",children:eh.map(e=>(0,a.jsxs)("div",{className:"group relative flex items-center justify-between p-4 border rounded-lg transition-all hover:shadow-md hover:border-primary/50 hover:scale-[1.01] hover:bg-accent/30",children:[(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("div",{className:"p-1.5 rounded bg-primary/10",children:(0,a.jsx)(v.Z,{className:"h-3.5 w-3.5 text-primary"})}),(0,a.jsx)("span",{className:"font-semibold",children:e.name})]}),e.description&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground mt-2 ml-8",children:e.description})]}),ee&&(0,a.jsxs)("div",{className:"flex gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,a.jsxs)(b.z,{variant:"ghost",size:"sm",onClick:()=>{Q(e),H(!0)},className:"hover:bg-primary/10",children:[(0,a.jsx)(j.Z,{className:"mr-1 h-3.5 w-3.5"}),"Edit"]}),(0,a.jsxs)(b.z,{variant:"ghost",size:"sm",onClick:()=>ec(e.id),className:"hover:bg-destructive/10 hover:text-destructive",children:[(0,a.jsx)(g.Z,{className:"mr-1 h-3.5 w-3.5"}),"Remove"]})]})]},e.id))})})]}),(0,a.jsx)(I,{open:Y,onClose:()=>$(!1),onSelect:e=>{let s=Array.from(new Set([...L,...e]));if(s.length>500){P({title:"Too many test cases",description:"Maximum 500 test cases allowed per eval set.",variant:"destructive"});return}for(let e of(console.log("newTestCases",s),s))ed({variables:{id:e,data:{eval_set_id:A}}});er(),$(!1)},excludeIds:L}),(0,a.jsx)(O.F,{open:W,onClose:()=>H(!1),evalSetId:A,onSuccess:()=>{H(!1),er(),ea()},testCase:J}),(0,a.jsx)(y.aR,{open:!!K,onOpenChange:e=>!e&&G(null),children:(0,a.jsxs)(y._T,{children:[(0,a.jsxs)(y.fY,{children:[(0,a.jsx)(y.f$,{children:"Remove test case from eval set?"}),(0,a.jsx)(y.yT,{children:"This will remove the test case from this eval set. The test case itself will not be deleted and can be added back later."})]}),(0,a.jsxs)(y.xo,{children:[(0,a.jsx)(y.le,{children:"Cancel"}),(0,a.jsx)(y.OL,{onClick:()=>{K&&ed({variables:{id:K,data:{eval_set_id:null}},onCompleted:()=>{P({title:"Test case removed",description:"The test case has been removed from this eval set."}),er(),G(null)}})},children:"Remove"})]})]})})]})}},19060:function(e,s,t){"use strict";t.d(s,{X:function(){return c}});var a=t(57437),l=t(9270),r=t(30401),i=t(2265),n=t(94508);let c=i.forwardRef((e,s)=>{let{className:t,...i}=e;return(0,a.jsx)(l.fC,{ref:s,className:(0,n.cn)("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",t),...i,children:(0,a.jsx)(l.z$,{className:(0,n.cn)("flex items-center justify-center text-current"),children:(0,a.jsx)(r.Z,{className:"size-4"})})})});c.displayName=l.fC.displayName},45554:function(e,s,t){"use strict";t.d(s,{Z:function(){return a}});let a=(0,t(39763).Z)("ListChecks",[["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]])},88893:function(e,s,t){"use strict";t.d(s,{Z:function(){return a}});let a=(0,t(39763).Z)("Pen",[["path",{d:"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z",key:"5qss01"}]])},33276:function(e,s,t){"use strict";t.d(s,{Z:function(){return a}});let a=(0,t(39763).Z)("Play",[["polygon",{points:"5 3 19 12 5 21 5 3",key:"191637"}]])},83229:function(e,s,t){"use strict";t.d(s,{Z:function(){return a}});let a=(0,t(39763).Z)("Save",[["path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z",key:"1owoqh"}],["polyline",{points:"17 21 17 13 7 13 7 21",key:"1md35c"}],["polyline",{points:"7 3 7 8 15 8",key:"8nz8an"}]])},73247:function(e,s,t){"use strict";t.d(s,{Z:function(){return a}});let a=(0,t(39763).Z)("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]])},9270:function(e,s,t){"use strict";t.d(s,{fC:function(){return y},z$:function(){return k}});var a=t(2265),l=t(98575),r=t(73966),i=t(6741),n=t(80886),c=t(6718),d=t(90420),o=t(71599),h=t(66840),u=t(57437),m="Checkbox",[x,v]=(0,r.b)(m),[f,p]=x(m);function j(e){let{__scopeCheckbox:s,checked:t,children:l,defaultChecked:r,disabled:i,form:c,name:d,onCheckedChange:o,required:h,value:x="on",internal_do_not_use_render:v}=e,[p,j]=(0,n.T)({prop:t,defaultProp:null!=r&&r,onChange:o,caller:m}),[g,N]=a.useState(null),[y,b]=a.useState(null),k=a.useRef(!1),w=!g||!!c||!!g.closest("form"),C={checked:p,disabled:i,setChecked:j,control:g,setControl:N,name:d,form:c,value:x,hasConsumerStoppedPropagationRef:k,required:h,defaultChecked:!Z(r)&&r,isFormControl:w,bubbleInput:y,setBubbleInput:b};return(0,u.jsx)(f,{scope:s,...C,children:"function"==typeof v?v(C):l})}var g="CheckboxTrigger",N=a.forwardRef((e,s)=>{let{__scopeCheckbox:t,onKeyDown:r,onClick:n,...c}=e,{control:d,value:o,disabled:m,checked:x,required:v,setControl:f,setChecked:j,hasConsumerStoppedPropagationRef:N,isFormControl:y,bubbleInput:b}=p(g,t),k=(0,l.e)(s,f),w=a.useRef(x);return a.useEffect(()=>{let e=null==d?void 0:d.form;if(e){let s=()=>j(w.current);return e.addEventListener("reset",s),()=>e.removeEventListener("reset",s)}},[d,j]),(0,u.jsx)(h.WV.button,{type:"button",role:"checkbox","aria-checked":Z(x)?"mixed":x,"aria-required":v,"data-state":_(x),"data-disabled":m?"":void 0,disabled:m,value:o,...c,ref:k,onKeyDown:(0,i.M)(r,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:(0,i.M)(n,e=>{j(e=>!!Z(e)||!e),b&&y&&(N.current=e.isPropagationStopped(),N.current||e.stopPropagation())})})});N.displayName=g;var y=a.forwardRef((e,s)=>{let{__scopeCheckbox:t,name:a,checked:l,defaultChecked:r,required:i,disabled:n,value:c,onCheckedChange:d,form:o,...h}=e;return(0,u.jsx)(j,{__scopeCheckbox:t,checked:l,defaultChecked:r,disabled:n,required:i,onCheckedChange:d,name:a,form:o,value:c,internal_do_not_use_render:e=>{let{isFormControl:a}=e;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(N,{...h,ref:s,__scopeCheckbox:t}),a&&(0,u.jsx)(C,{__scopeCheckbox:t})]})}})});y.displayName=m;var b="CheckboxIndicator",k=a.forwardRef((e,s)=>{let{__scopeCheckbox:t,forceMount:a,...l}=e,r=p(b,t);return(0,u.jsx)(o.z,{present:a||Z(r.checked)||!0===r.checked,children:(0,u.jsx)(h.WV.span,{"data-state":_(r.checked),"data-disabled":r.disabled?"":void 0,...l,ref:s,style:{pointerEvents:"none",...e.style}})})});k.displayName=b;var w="CheckboxBubbleInput",C=a.forwardRef((e,s)=>{let{__scopeCheckbox:t,...r}=e,{control:i,hasConsumerStoppedPropagationRef:n,checked:o,defaultChecked:m,required:x,disabled:v,name:f,value:j,form:g,bubbleInput:N,setBubbleInput:y}=p(w,t),b=(0,l.e)(s,y),k=(0,c.D)(o),C=(0,d.t)(i);a.useEffect(()=>{if(!N)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,s=!n.current;if(k!==o&&e){let t=new Event("click",{bubbles:s});N.indeterminate=Z(o),e.call(N,!Z(o)&&o),N.dispatchEvent(t)}},[N,k,o,n]);let _=a.useRef(!Z(o)&&o);return(0,u.jsx)(h.WV.input,{type:"checkbox","aria-hidden":!0,defaultChecked:null!=m?m:_.current,required:x,disabled:v,name:f,value:j,form:g,...r,tabIndex:-1,ref:b,style:{...r.style,...C,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function Z(e){return"indeterminate"===e}function _(e){return Z(e)?"indeterminate":e?"checked":"unchecked"}C.displayName=w}},function(e){e.O(0,[6840,329,8310,3954,9851,7629,7093,6148,847,1942,7648,7823,8068,5799,4567,605,85,4957,7398,1785,3397,9141,1713,6152,3145,428,6373,3832,1002,5978,2971,2117,1744],function(){return e(e.s=74083)}),_N_E=e.O()}]);
2
+ //# sourceMappingURL=page-5d4b8e351ee3265f.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/chunks/app/(application)/evals/[id]/page-5d4b8e351ee3265f.js","mappings":"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","sources":["webpack://_N_E/?c683","webpack://_N_E/./app/(application)/evals/[id]/components/test-case-selection-modal.tsx","webpack://_N_E/./app/(application)/evals/[id]/page.tsx","webpack://_N_E/./components/ui/checkbox.tsx","webpack://_N_E/../../../src/icons/list-checks.ts","webpack://_N_E/../../../src/icons/pen.ts","webpack://_N_E/../../../src/icons/play.ts","webpack://_N_E/../../../src/icons/save.ts","webpack://_N_E/../../../src/icons/search.ts","webpack://_N_E/../src/checkbox.tsx"],"sourcesContent":["import(/* webpackMode: \"eager\" */ \"/home/runner/work/exulu-frontend/exulu-frontend/app/(application)/evals/[id]/page.tsx\");\n","\"use client\";\n\nimport { useState, useEffect } from \"react\";\nimport { useQuery } from \"@apollo/client\";\nimport { Search } from \"lucide-react\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"@/components/ui/dialog\";\nimport { Button } from \"@/components/ui/button\";\nimport { Input } from \"@/components/ui/input\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { GET_TEST_CASES } from \"@/queries/queries\";\nimport { Label } from \"@/components/ui/label\"\n\ninterface TestCaseSelectionModalProps {\n open: boolean;\n onClose: () => void;\n onSelect: (testCaseIds: string[]) => void;\n excludeIds?: string[];\n}\n\nexport function TestCaseSelectionModal({\n open,\n onClose,\n onSelect,\n excludeIds = [],\n}: TestCaseSelectionModalProps) {\n const [search, setSearch] = useState(\"\");\n const [selectedIds, setSelectedIds] = useState<string[]>([]);\n\n const { loading, data } = useQuery(GET_TEST_CASES, {\n variables: {\n page: 1,\n limit: 100,\n filters: search ? [{ AND: [{ name: { contains: search } }, { eval_set_id: { eq: null } }] }] : [{ eval_set_id: { eq: null } }],\n },\n skip: !open,\n });\n\n useEffect(() => {\n if (!open) {\n setSelectedIds([]);\n setSearch(\"\");\n }\n }, [open]);\n\n const testCases = data?.test_casesPagination?.items || [];\n const availableTestCases = testCases.filter((tc: any) => !excludeIds.includes(tc.id));\n\n const handleToggle = (id: string) => {\n setSelectedIds(prev =>\n prev.includes(id)\n ? prev.filter(x => x !== id)\n : [...prev, id]\n );\n };\n\n const handleSelectAll = () => {\n if (selectedIds.length === availableTestCases.length) {\n setSelectedIds([]);\n } else {\n setSelectedIds(availableTestCases.map((tc: any) => tc.id));\n }\n };\n\n const handleSubmit = () => {\n onSelect(selectedIds);\n };\n\n return (\n <Dialog open={open} onOpenChange={onClose}>\n <DialogContent className=\"max-w-3xl max-h-[80vh] flex flex-col\">\n <DialogHeader>\n <DialogTitle>Add Test Cases</DialogTitle>\n <DialogDescription>\n Select test cases to add to this eval set. Already added test cases are hidden.\n </DialogDescription>\n </DialogHeader>\n\n <div className=\"space-y-4 flex-1 overflow-hidden flex flex-col\">\n {/* Search */}\n <div className=\"relative\">\n <Search className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground\" />\n <Input\n placeholder=\"Search test cases by name...\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n className=\"pl-9\"\n />\n </div>\n\n {/* Select All */}\n {availableTestCases.length > 0 && (\n <div className=\"flex items-center gap-2 px-1\">\n <Checkbox\n id=\"select-all-test-cases\"\n checked={selectedIds.length === availableTestCases.length && availableTestCases.length > 0}\n onCheckedChange={handleSelectAll}\n />\n <Label htmlFor=\"select-all-test-cases\" className=\"text-sm text-muted-foreground\">\n Select all ({selectedIds.length} selected)\n </Label>\n </div>\n )}\n\n {/* Test Cases List */}\n <ScrollArea className=\"flex-1 border rounded-lg\">\n <div>\n {loading ? (\n Array.from({ length: 3 }).map((_, i) => (\n <Skeleton key={i} className=\"h-10 w-full\" />\n ))\n ) : availableTestCases.length === 0 ? (\n <div className=\"text-center py-12 text-muted-foreground mx-5\">\n {search ? \"No test cases found matching your search.\" : \"No test cases available to add (note: you can only add test cases that are not already in an eval set, remove them from another eval set first if you want to add them to a new eval set).\"}\n </div>\n ) : (\n availableTestCases.map((testCase: any) => (\n <div\n key={testCase.id}\n onClick={() => {\n handleToggle(testCase.id)\n }}\n className=\"flex items-start gap-3 p-3 hover:bg-muted/50\"\n >\n <Checkbox\n checked={selectedIds.includes(testCase.id)}\n id={`select-test-case-${testCase.id}`}\n onCheckedChange={() => handleToggle(testCase.id)}\n />\n <Label htmlFor={`select-test-case-${testCase.id}`} className=\"text-sm text-muted-foreground flex flex-col\">\n <span>{testCase.name}</span>\n <small>{testCase.description}</small>\n </Label>\n </div>\n ))\n )}\n </div>\n </ScrollArea>\n </div>\n\n <DialogFooter>\n <Button variant=\"outline\" onClick={onClose}>\n Cancel\n </Button>\n <Button\n onClick={handleSubmit}\n disabled={selectedIds.length === 0}\n >\n Add {selectedIds.length} Test Case{selectedIds.length !== 1 ? 's' : ''}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n","\"use client\";\n\nimport { useContext, useState } from \"react\";\nimport { useParams, useRouter } from \"next/navigation\";\nimport { useQuery, useMutation } from \"@apollo/client\";\nimport { UserContext } from \"@/app/(application)/authenticated\";\nimport { Brain, ArrowLeft, Plus, Save, Loader2, Play, FileText, ListChecks, Sparkles, Edit2, X } from \"lucide-react\";\nimport { Alert, AlertDescription } from \"@/components/ui/alert\";\nimport { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle } from \"@/components/ui/alert-dialog\";\nimport { Button } from \"@/components/ui/button\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { useToast } from \"@/components/ui/use-toast\";\nimport { GET_EVAL_SET_BY_ID, UPDATE_EVAL_SET, GET_TEST_CASES, UPDATE_TEST_CASE } from \"@/queries/queries\";\nimport { TestCaseSelectionModal } from \"./components/test-case-selection-modal\";\nimport { TestCaseModal } from \"../cases/components/test-case-modal\";\nimport { TestCase } from \"@/types/models/test-case\";\n\nexport const dynamic = \"force-dynamic\";\n\nexport default function EvalSetEditorPage() {\n const params = useParams();\n const router = useRouter();\n const { user } = useContext(UserContext);\n const { toast } = useToast();\n const evalSetId = params.id as string;\n\n const [name, setName] = useState(\"\");\n const [description, setDescription] = useState(\"\");\n const [testCases, setTestCases] = useState<string[]>([]);\n const [showSelectionModal, setShowSelectionModal] = useState(false);\n const [showCreateModal, setShowCreateModal] = useState(false);\n const [testCaseToRemove, setTestCaseToRemove] = useState<string | null>(null);\n const [editingTestCase, setEditingTestCase] = useState<TestCase | null>(null);\n\n // Check if user has evals access\n const hasEvalsAccess = user.super_admin || user.role?.evals === \"read\" || user.role?.evals === \"write\";\n const canWrite = user.super_admin || user.role?.evals === \"write\";\n\n // Fetch eval set\n const { loading: loadingEvalSet, data: evalSetData, refetch } = useQuery(GET_EVAL_SET_BY_ID, {\n variables: { id: evalSetId },\n skip: !evalSetId,\n onCompleted: (data) => {\n if (data?.eval_setById) {\n setName(data.eval_setById.name);\n setDescription(data.eval_setById.description || \"\");\n }\n },\n });\n\n // Fetch test cases details\n const { data: testCasesData, refetch: refetchTestCases } = useQuery(GET_TEST_CASES, {\n variables: {\n page: 1,\n limit: 500,\n filters: [{ eval_set_id: { eq: evalSetId } }],\n }\n });\n\n const [updateEvalSet, { loading: updating }] = useMutation(UPDATE_EVAL_SET, {\n onCompleted: () => {\n toast({\n title: \"Eval set updated\",\n description: \"The eval set has been successfully updated.\",\n });\n refetch();\n },\n onError: (error) => {\n toast({\n title: \"Failed to update eval set\",\n description: error.message,\n variant: \"destructive\",\n });\n },\n });\n\n const handleSave = () => {\n if (!name.trim()) {\n toast({\n title: \"Validation error\",\n description: \"Name is required.\",\n variant: \"destructive\",\n });\n return;\n }\n\n if (testCases.length > 500) {\n toast({\n title: \"Validation error\",\n description: \"Maximum 500 test cases allowed per eval set.\",\n variant: \"destructive\",\n });\n return;\n }\n\n updateEvalSet({\n variables: {\n id: evalSetId,\n data: {\n name: name.trim(),\n description: description.trim() || null,\n },\n },\n });\n };\n\n const handleRemoveTestCase = (testCaseId: string) => {\n setTestCaseToRemove(testCaseId);\n };\n\n const confirmRemoveTestCase = () => {\n if (!testCaseToRemove) return;\n\n updateTestCase({\n variables: {\n id: testCaseToRemove,\n data: { eval_set_id: null },\n },\n onCompleted: () => {\n toast({\n title: \"Test case removed\",\n description: \"The test case has been removed from this eval set.\",\n });\n refetchTestCases();\n setTestCaseToRemove(null);\n },\n });\n };\n\n const [updateTestCase, { loading: updatingTestCase }] = useMutation(UPDATE_TEST_CASE, {\n onError: (error) => {\n toast({\n title: \"Failed to update test case\",\n description: error.message,\n variant: \"destructive\",\n });\n },\n });\n\n const handleAddTestCases = (selectedTestCaseIds: string[]) => {\n // Add new test cases, avoiding duplicates\n const newTestCases = Array.from(new Set([...testCases, ...selectedTestCaseIds]));\n\n if (newTestCases.length > 500) {\n toast({\n title: \"Too many test cases\",\n description: \"Maximum 500 test cases allowed per eval set.\",\n variant: \"destructive\",\n });\n return;\n }\n\n console.log(\"newTestCases\", newTestCases);\n\n for (const testCaseId of newTestCases) {\n updateTestCase({\n variables: {\n id: testCaseId,\n data: { eval_set_id: evalSetId },\n },\n });\n }\n\n refetchTestCases();\n setShowSelectionModal(false);\n };\n\n if (!hasEvalsAccess) {\n return (\n <div className=\"flex h-full flex-1 flex-col space-y-8 p-8\">\n <Alert variant=\"destructive\">\n <Brain className=\"h-4 w-4\" />\n <AlertDescription>\n You don't have permission to access Eval Sets. Contact your administrator to request access.\n </AlertDescription>\n </Alert>\n </div>\n );\n }\n\n if (loadingEvalSet) {\n return (\n <div className=\"flex h-full flex-1 flex-col space-y-8 p-8\">\n <Skeleton className=\"h-8 w-64\" />\n <Skeleton className=\"h-64 w-full\" />\n </div>\n );\n }\n\n const testCasesList = testCasesData?.test_casesPagination?.items || [];\n\n return (\n <div className=\"flex h-full flex-1 flex-col space-y-8 p-8\">\n {/* Header with gradient accent */}\n <div className=\"relative\">\n <div className=\"absolute inset-0 bg-primary/5 rounded-lg blur-xl\" />\n <div className=\"relative flex items-center justify-between p-6 border rounded-lg bg-card/50 backdrop-blur-sm\">\n <div className=\"flex items-center gap-4\">\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={() => router.push(\"/evals\")}\n >\n <ArrowLeft className=\"h-4 w-4\" />\n </Button>\n <div className=\"flex items-center gap-3\">\n <div className=\"p-2 rounded-lg bg-primary\">\n <Sparkles className=\"h-5 w-5 text-primary-foreground\" />\n </div>\n <div>\n <h2 className=\"text-2xl font-bold tracking-tight\">Edit Eval Set</h2>\n <p className=\"text-muted-foreground\">\n Configure test cases for this evaluation set.\n </p>\n </div>\n </div>\n </div>\n <div className=\"flex gap-2\">\n <Button\n variant=\"outline\"\n onClick={() => router.push(`/evals/${evalSetId}/runs`)}\n >\n <Play className=\"mr-2 h-4 w-4\" />\n View Runs\n </Button>\n {canWrite && (\n <Button onClick={handleSave} disabled={updating}>\n {updating ? (\n <Loader2 className=\"mr-2 h-4 w-4 animate-spin\" />\n ) : (\n <Save className=\"mr-2 h-4 w-4\" />\n )}\n Save Changes\n </Button>\n )}\n </div>\n </div>\n </div>\n\n {/* Basic Info */}\n <Card className=\"shadow-lg\">\n <CardHeader className=\"border-b bg-accent/50\">\n <div className=\"flex items-center gap-3\">\n <div className=\"p-2 rounded-lg bg-primary/10\">\n <FileText className=\"h-4 w-4 text-primary\" />\n </div>\n <div>\n <CardTitle>Basic Information</CardTitle>\n <CardDescription>\n Edit the name and description of this eval set.\n </CardDescription>\n </div>\n </div>\n </CardHeader>\n <CardContent className=\"space-y-4 pt-6\">\n <div className=\"grid gap-2\">\n <Label htmlFor=\"name\" className=\"text-sm font-semibold\">Name *</Label>\n <Input\n id=\"name\"\n placeholder=\"Eval set name\"\n value={name}\n onChange={(e) => setName(e.target.value)}\n disabled={!canWrite}\n />\n </div>\n <div className=\"grid gap-2\">\n <Label htmlFor=\"description\" className=\"text-sm font-semibold\">Description</Label>\n <Textarea\n id=\"description\"\n placeholder=\"Describe what this eval set tests...\"\n value={description}\n onChange={(e) => setDescription(e.target.value)}\n disabled={!canWrite}\n rows={3}\n />\n </div>\n </CardContent>\n </Card>\n\n {/* Test Cases */}\n <Card className=\"shadow-lg\">\n <CardHeader className=\"border-b bg-accent/50\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n <div className=\"p-2 rounded-lg bg-primary/10\">\n <ListChecks className=\"h-4 w-4 text-primary\" />\n </div>\n <div>\n <CardTitle>Test Cases</CardTitle>\n <CardDescription>\n Add up to 500 test cases to this eval set.{\" \"}\n <Badge variant=\"secondary\" className=\"ml-1\">\n {testCasesList.length}/500\n </Badge>\n </CardDescription>\n </div>\n </div>\n {canWrite && (\n <div className=\"flex gap-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => setShowCreateModal(true)}\n >\n <Plus className=\"mr-2 h-4 w-4\" />\n Create New\n </Button>\n <Button\n variant=\"secondary\"\n size=\"sm\"\n onClick={() => setShowSelectionModal(true)}\n disabled={testCases.length >= 500}\n >\n <Plus className=\"mr-2 h-4 w-4\" />\n Add Existing\n </Button>\n </div>\n )}\n </div>\n </CardHeader>\n <CardContent className=\"pt-6\">\n {testCasesList.length === 0 ? (\n <div className=\"flex flex-col items-center justify-center py-16 text-center\">\n <div className=\"p-4 rounded-full bg-primary/10 mb-4\">\n <ListChecks className=\"h-8 w-8 text-primary\" />\n </div>\n <h3 className=\"text-lg font-semibold mb-2\">No test cases yet</h3>\n <p className=\"text-muted-foreground max-w-sm\">\n Click \"Create New\" or \"Add Existing\" to start building your evaluation set.\n </p>\n </div>\n ) : (\n <div className=\"space-y-3\">\n {testCasesList.map((testCase: any) => (\n <div\n key={testCase.id}\n className=\"group relative flex items-center justify-between p-4 border rounded-lg transition-all hover:shadow-md hover:border-primary/50 hover:scale-[1.01] hover:bg-accent/30\"\n >\n <div className=\"flex-1\">\n <div className=\"flex items-center gap-2\">\n <div className=\"p-1.5 rounded bg-primary/10\">\n <FileText className=\"h-3.5 w-3.5 text-primary\" />\n </div>\n <span className=\"font-semibold\">{testCase.name}</span>\n </div>\n {testCase.description && (\n <p className=\"text-sm text-muted-foreground mt-2 ml-8\">\n {testCase.description}\n </p>\n )}\n </div>\n {canWrite && (\n <div className=\"flex gap-1 opacity-0 group-hover:opacity-100 transition-opacity\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => {\n setEditingTestCase(testCase);\n setShowCreateModal(true);\n }}\n className=\"hover:bg-primary/10\"\n >\n <Edit2 className=\"mr-1 h-3.5 w-3.5\" />\n Edit\n </Button>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => handleRemoveTestCase(testCase.id)}\n className=\"hover:bg-destructive/10 hover:text-destructive\"\n >\n <X className=\"mr-1 h-3.5 w-3.5\" />\n Remove\n </Button>\n </div>\n )}\n </div>\n ))}\n </div>\n )}\n </CardContent>\n </Card>\n\n {/* Modals */}\n <TestCaseSelectionModal\n open={showSelectionModal}\n onClose={() => setShowSelectionModal(false)}\n onSelect={handleAddTestCases}\n excludeIds={testCases}\n />\n\n <TestCaseModal\n open={showCreateModal}\n onClose={() => setShowCreateModal(false)}\n evalSetId={evalSetId}\n onSuccess={() => {\n setShowCreateModal(false);\n // Refetch to get the new test case in the list\n refetchTestCases();\n refetch();\n }}\n testCase={editingTestCase}\n />\n\n {/* Remove Test Case Confirmation Dialog */}\n <AlertDialog open={!!testCaseToRemove} onOpenChange={(open) => !open && setTestCaseToRemove(null)}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>Remove test case from eval set?</AlertDialogTitle>\n <AlertDialogDescription>\n This will remove the test case from this eval set. The test case itself will not be deleted and can be added back later.\n </AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>Cancel</AlertDialogCancel>\n <AlertDialogAction onClick={confirmRemoveTestCase}>Remove</AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n </div>\n );\n}\n","\"use client\";\n\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { Check } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-current\")}\n >\n <Check className=\"size-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ListChecks\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyAxNyAyIDIgNC00IiAvPgogIDxwYXRoIGQ9Im0zIDcgMiAyIDQtNCIgLz4KICA8cGF0aCBkPSJNMTMgNmg4IiAvPgogIDxwYXRoIGQ9Ik0xMyAxMmg4IiAvPgogIDxwYXRoIGQ9Ik0xMyAxOGg4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/list-checks\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ListChecks = createLucideIcon('ListChecks', [\n ['path', { d: 'm3 17 2 2 4-4', key: '1jhpwq' }],\n ['path', { d: 'm3 7 2 2 4-4', key: '1obspn' }],\n ['path', { d: 'M13 6h8', key: '15sg57' }],\n ['path', { d: 'M13 12h8', key: 'h98zly' }],\n ['path', { d: 'M13 18h8', key: 'oe0vm4' }],\n]);\n\nexport default ListChecks;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Pen\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgM2EyLjg1IDIuODMgMCAxIDEgNCA0TDcuNSAyMC41IDIgMjJsMS41LTUuNVoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pen\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Pen = createLucideIcon('Pen', [\n ['path', { d: 'M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z', key: '5qss01' }],\n]);\n\nexport default Pen;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Play\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWdvbiBwb2ludHM9IjUgMyAxOSAxMiA1IDIxIDUgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/play\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Play = createLucideIcon('Play', [\n ['polygon', { points: '5 3 19 12 5 21 5 3', key: '191637' }],\n]);\n\nexport default Play;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Save\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxMWw1IDV2MTFhMiAyIDAgMCAxLTIgMnoiIC8+CiAgPHBvbHlsaW5lIHBvaW50cz0iMTcgMjEgMTcgMTMgNyAxMyA3IDIxIiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjcgMyA3IDggMTUgOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/save\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Save = createLucideIcon('Save', [\n ['path', { d: 'M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z', key: '1owoqh' }],\n ['polyline', { points: '17 21 17 13 7 13 7 21', key: '1md35c' }],\n ['polyline', { points: '7 3 7 8 15 8', key: '8nz8an' }],\n]);\n\nexport default Save;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI4IiAvPgogIDxwYXRoIGQ9Im0yMSAyMS00LjMtNC4zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Search = createLucideIcon('Search', [\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n ['path', { d: 'm21 21-4.3-4.3', key: '1qie3q' }],\n]);\n\nexport default Search;\n","import * as React from 'react';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type { Scope } from '@radix-ui/react-context';\n\nconst CHECKBOX_NAME = 'Checkbox';\n\ntype ScopedProps<P> = P & { __scopeCheckbox?: Scope };\nconst [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\n\ntype CheckedState = boolean | 'indeterminate';\n\ntype CheckboxContextValue<State extends CheckedState | boolean = CheckedState> = {\n checked: State | boolean;\n setChecked: React.Dispatch<React.SetStateAction<State | boolean>>;\n disabled: boolean | undefined;\n control: HTMLButtonElement | null;\n setControl: React.Dispatch<React.SetStateAction<HTMLButtonElement | null>>;\n name: string | undefined;\n form: string | undefined;\n value: string | number | readonly string[];\n hasConsumerStoppedPropagationRef: React.RefObject<boolean>;\n required: boolean | undefined;\n defaultChecked: boolean | undefined;\n isFormControl: boolean;\n bubbleInput: HTMLInputElement | null;\n setBubbleInput: React.Dispatch<React.SetStateAction<HTMLInputElement | null>>;\n};\n\nconst [CheckboxProviderImpl, useCheckboxContext] =\n createCheckboxContext<CheckboxContextValue>(CHECKBOX_NAME);\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CheckboxProviderProps<State extends CheckedState = CheckedState> {\n checked?: State | boolean;\n defaultChecked?: State | boolean;\n required?: boolean;\n onCheckedChange?(checked: State | boolean): void;\n name?: string;\n form?: string;\n disabled?: boolean;\n value?: string | number | readonly string[];\n children?: React.ReactNode;\n}\n\nfunction CheckboxProvider<State extends CheckedState = CheckedState>(\n props: ScopedProps<CheckboxProviderProps<State>>\n) {\n const {\n __scopeCheckbox,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = 'on',\n // @ts-expect-error\n internal_do_not_use_render,\n } = props;\n\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: CHECKBOX_NAME,\n });\n const [control, setControl] = React.useState<HTMLButtonElement | null>(null);\n const [bubbleInput, setBubbleInput] = React.useState<HTMLInputElement | null>(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = control\n ? !!form || !!control.closest('form')\n : // We set this to true by default so that events bubble to forms without JS (SSR)\n true;\n\n const context: CheckboxContextValue<State> = {\n checked: checked,\n disabled: disabled,\n setChecked: setChecked,\n control: control,\n setControl: setControl,\n name: name,\n form: form,\n value: value,\n hasConsumerStoppedPropagationRef: hasConsumerStoppedPropagationRef,\n required: required,\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked,\n isFormControl: isFormControl,\n bubbleInput,\n setBubbleInput,\n };\n\n return (\n <CheckboxProviderImpl\n scope={__scopeCheckbox}\n {...(context as unknown as CheckboxContextValue<CheckedState>)}\n >\n {isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children}\n </CheckboxProviderImpl>\n );\n}\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'CheckboxTrigger';\n\ninterface CheckboxTriggerProps\n extends Omit<\n React.ComponentPropsWithoutRef<typeof Primitive.button>,\n keyof CheckboxProviderProps\n > {\n children?: React.ReactNode;\n}\n\nconst CheckboxTrigger = React.forwardRef<HTMLButtonElement, CheckboxTriggerProps>(\n (\n { __scopeCheckbox, onKeyDown, onClick, ...checkboxProps }: ScopedProps<CheckboxTriggerProps>,\n forwardedRef\n ) => {\n const {\n control,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n isFormControl,\n bubbleInput,\n } = useCheckboxContext(TRIGGER_NAME, __scopeCheckbox);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form = control?.form;\n if (form) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form.addEventListener('reset', reset);\n return () => form.removeEventListener('reset', reset);\n }\n }, [control, setChecked]);\n\n return (\n <Primitive.button\n type=\"button\"\n role=\"checkbox\"\n aria-checked={isIndeterminate(checked) ? 'mixed' : checked}\n aria-required={required}\n data-state={getState(checked)}\n data-disabled={disabled ? '' : undefined}\n disabled={disabled}\n value={value}\n {...checkboxProps}\n ref={composedRefs}\n onKeyDown={composeEventHandlers(onKeyDown, (event) => {\n // According to WAI ARIA, Checkboxes don't activate on enter keypress\n if (event.key === 'Enter') event.preventDefault();\n })}\n onClick={composeEventHandlers(onClick, (event) => {\n setChecked((prevChecked) => (isIndeterminate(prevChecked) ? true : !prevChecked));\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n // if checkbox has a bubble input and is a form control, stop\n // propagation from the button so that we only propagate one click\n // event (from the input). We propagate changes from an input so\n // that native form validation works and form events reflect\n // checkbox updates.\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })}\n />\n );\n }\n);\n\nCheckboxTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * Checkbox\n * -----------------------------------------------------------------------------------------------*/\n\ntype CheckboxElement = React.ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface CheckboxProps extends Omit<PrimitiveButtonProps, 'checked' | 'defaultChecked'> {\n checked?: CheckedState;\n defaultChecked?: CheckedState;\n required?: boolean;\n onCheckedChange?(checked: CheckedState): void;\n}\n\nconst Checkbox = React.forwardRef<CheckboxElement, CheckboxProps>(\n (props: ScopedProps<CheckboxProps>, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n\n return (\n <CheckboxProvider\n __scopeCheckbox={__scopeCheckbox}\n checked={checked}\n defaultChecked={defaultChecked}\n disabled={disabled}\n required={required}\n onCheckedChange={onCheckedChange}\n name={name}\n form={form}\n value={value}\n // @ts-expect-error\n internal_do_not_use_render={({ isFormControl }: CheckboxContextValue) => (\n <>\n <CheckboxTrigger\n {...checkboxProps}\n ref={forwardedRef}\n // @ts-expect-error\n __scopeCheckbox={__scopeCheckbox}\n />\n {isFormControl && (\n <CheckboxBubbleInput\n // @ts-expect-error\n __scopeCheckbox={__scopeCheckbox}\n />\n )}\n </>\n )}\n />\n );\n }\n);\n\nCheckbox.displayName = CHECKBOX_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'CheckboxIndicator';\n\ntype CheckboxIndicatorElement = React.ComponentRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface CheckboxIndicatorProps extends PrimitiveSpanProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst CheckboxIndicator = React.forwardRef<CheckboxIndicatorElement, CheckboxIndicatorProps>(\n (props: ScopedProps<CheckboxIndicatorProps>, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return (\n <Presence\n present={forceMount || isIndeterminate(context.checked) || context.checked === true}\n >\n <Primitive.span\n data-state={getState(context.checked)}\n data-disabled={context.disabled ? '' : undefined}\n {...indicatorProps}\n ref={forwardedRef}\n style={{ pointerEvents: 'none', ...props.style }}\n />\n </Presence>\n );\n }\n);\n\nCheckboxIndicator.displayName = INDICATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxBubbleInput\n * -----------------------------------------------------------------------------------------------*/\n\nconst BUBBLE_INPUT_NAME = 'CheckboxBubbleInput';\n\ntype InputProps = React.ComponentPropsWithoutRef<typeof Primitive.input>;\ninterface CheckboxBubbleInputProps extends Omit<InputProps, 'checked'> {}\n\nconst CheckboxBubbleInput = React.forwardRef<HTMLInputElement, CheckboxBubbleInputProps>(\n ({ __scopeCheckbox, ...props }: ScopedProps<CheckboxBubbleInputProps>, forwardedRef) => {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput,\n } = useCheckboxContext(BUBBLE_INPUT_NAME, __scopeCheckbox);\n\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n\n // Bubble checked change to parents (e.g form change event)\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n 'checked'\n ) as PropertyDescriptor;\n const setChecked = descriptor.set;\n\n const bubbles = !hasConsumerStoppedPropagationRef.current;\n if (prevChecked !== checked && setChecked) {\n const event = new Event('click', { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);\n\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return (\n <Primitive.input\n type=\"checkbox\"\n aria-hidden\n defaultChecked={defaultChecked ?? defaultCheckedRef.current}\n required={required}\n disabled={disabled}\n name={name}\n value={value}\n form={form}\n {...props}\n tabIndex={-1}\n ref={composedRefs}\n style={{\n ...props.style,\n ...controlSize,\n position: 'absolute',\n pointerEvents: 'none',\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: 'translateX(-100%)',\n }}\n />\n );\n }\n);\n\nCheckboxBubbleInput.displayName = BUBBLE_INPUT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nfunction isFunction(value: unknown): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n\nfunction isIndeterminate(checked?: CheckedState): checked is 'indeterminate' {\n return checked === 'indeterminate';\n}\n\nfunction getState(checked: CheckedState) {\n return isIndeterminate(checked) ? 'indeterminate' : checked ? 'checked' : 'unchecked';\n}\n\nexport {\n createCheckboxScope,\n //\n Checkbox,\n CheckboxProvider,\n CheckboxTrigger,\n CheckboxIndicator,\n CheckboxBubbleInput,\n //\n Checkbox as Root,\n CheckboxProvider as Provider,\n CheckboxTrigger as Trigger,\n CheckboxIndicator as Indicator,\n CheckboxBubbleInput as BubbleInput,\n};\nexport type {\n CheckboxProps,\n CheckboxProviderProps,\n CheckboxTriggerProps,\n CheckboxIndicatorProps,\n CheckboxBubbleInputProps,\n CheckedState,\n};\n"],"names":["Promise","resolve","then","__webpack_require__","bind","TestCaseSelectionModal","param","data","open","onClose","onSelect","excludeIds","search","setSearch","useState","selectedIds","setSelectedIds","loading","useQuery","GET_TEST_CASES","variables","page","limit","filters","AND","name","contains","eval_set_id","eq","skip","useEffect","availableTestCases","testCases","test_casesPagination","items","filter","includes","tc","id","handleToggle","prev","x","jsx_runtime","jsx","Dialog","onOpenChange","jsxs","DialogContent","className","DialogHeader","DialogTitle","DialogDescription","div","Search","Input","placeholder","value","onChange","e","target","length","Checkbox","checked","onCheckedChange","map","Label","htmlFor","ScrollArea","Array","from","_","i","Skeleton","onClick","testCase","concat","span","small","description","DialogFooter","Button","variant","disabled","dynamic","EvalSetEditorPage","user","testCasesData","params","useParams","router","useRouter","useContext","UserContext","toast","useToast","evalSetId","setName","setDescription","setTestCases","showSelectionModal","setShowSelectionModal","showCreateModal","setShowCreateModal","testCaseToRemove","setTestCaseToRemove","editingTestCase","setEditingTestCase","hasEvalsAccess","super_admin","role","evals","canWrite","loadingEvalSet","evalSetData","refetch","GET_EVAL_SET_BY_ID","onCompleted","eval_setById","refetchTestCases","updateEvalSet","updating","useMutation","UPDATE_EVAL_SET","title","onError","error","message","handleRemoveTestCase","testCaseId","updateTestCase","updatingTestCase","UPDATE_TEST_CASE","Alert","Brain","AlertDescription","testCasesList","size","push","ArrowLeft","Sparkles","h2","p","Play","trim","Loader2","Save","Card","CardHeader","FileText","CardTitle","CardDescription","CardContent","Textarea","rows","ListChecks","Badge","Plus","h3","Edit2","X","newTestCases","Set","selectedTestCaseIds","console","log","TestCaseModal","onSuccess","AlertDialog","AlertDialogContent","AlertDialogHeader","AlertDialogTitle","AlertDialogDescription","AlertDialogFooter","AlertDialogCancel","AlertDialogAction","React","ref","props","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","CheckboxPrimitive","cn","Check","displayName","createLucideIcon","d","key","Pen","points","cx","cy","r","CHECKBOX_NAME","createCheckboxContext","createCheckboxScope","createContextScope","CheckboxProviderImpl","useCheckboxContext","CheckboxProvider","__scopeCheckbox","checkedProp","children","defaultChecked","form","required","internal_do_not_use_render","setChecked","useControllableState","prop","defaultProp","caller","control","setControl","bubbleInput","setBubbleInput","hasConsumerStoppedPropagationRef","isFormControl","closest","context","isIndeterminate","scope","isFunction","TRIGGER_NAME","CheckboxTrigger","forwardedRef","onKeyDown","checkboxProps","composedRefs","useComposedRefs","initialCheckedStateRef","reset","current","addEventListener","removeEventListener","Primitive","button","type","getState","composeEventHandlers","event","preventDefault","prevChecked","isPropagationStopped","stopPropagation","Fragment","CheckboxBubbleInput","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","Presence","present","style","pointerEvents","BUBBLE_INPUT_NAME","usePrevious","controlSize","useSize","descriptor","getOwnPropertyDescriptor","window","HTMLInputElement","prototype","set","bubbles","Event","input","indeterminate","call","dispatchEvent","defaultCheckedRef","tabIndex","position","opacity","margin","transform"],"sourceRoot":""}