@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/chunks/app/(application)/chat/layout-3fbafd811d12ed10.js","mappings":"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","sources":["webpack://_N_E/?dfc3","webpack://_N_E/./app/(application)/chat/[agent]/chat-sessions.tsx","webpack://_N_E/./components/agent-nav.tsx","webpack://_N_E/./app/(application)/chat/layout.tsx","webpack://_N_E/./components/truncated-text.tsx","webpack://_N_E/./components/ui/use-toast.ts","webpack://_N_E/./lib/check-chat-session-write-access.ts","webpack://_N_E/../../../src/icons/chevron-left.ts","webpack://_N_E/../../../src/icons/image.ts","webpack://_N_E/../../../src/icons/info.ts","webpack://_N_E/../../../src/icons/plus.ts","webpack://_N_E/../../../src/icons/search.ts","webpack://_N_E/../../../src/icons/shield.ts","webpack://_N_E/../../../src/icons/star.ts","webpack://_N_E/../../../src/icons/text.ts","webpack://_N_E/../../../src/icons/video.ts","webpack://_N_E/../../../src/icons/volume-2.ts","webpack://_N_E/../../../src/icons/wrench.ts","webpack://_N_E/./node_modules/@apollo/client/react/hooks/internal/useIsomorphicLayoutEffect.js","webpack://_N_E/./node_modules/@apollo/client/react/hooks/useMutation.js"],"sourcesContent":["import(/* webpackMode: \"eager\" */ \"/home/runner/work/exulu-frontend/exulu-frontend/app/(application)/chat/layout.tsx\");\n","\"use client\"\n\nimport { useMutation, useQuery } from \"@apollo/client\";\nimport { DotsHorizontalIcon } from \"@radix-ui/react-icons\";\nimport { formatDistanceToNow } from \"date-fns/formatDistanceToNow\";\nimport { PlusIcon, Search } from \"lucide-react\";\nimport { useRouter } from \"next/navigation\";\nimport * as React from \"react\";\nimport { useContext, useEffect, useState } from \"react\";\nimport { UserContext } from \"@/app/(application)/authenticated\";\nimport { Agent } from \"@EXULU_SHARED/models/agent\";\nimport { AgentSession } from \"@EXULU_SHARED/models/agent-session\";\nimport {\n CREATE_AGENT_SESSION,\n GET_AGENT_SESSIONS,\n REMOVE_AGENT_SESSION_BY_ID,\n UPDATE_AGENT_SESSION_TITLE,\n} from \"@/queries/queries\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"@/components/ui/dialog\";\nimport { Input } from \"@/components/ui/input\";\nimport { useToast } from \"@/components/ui/use-toast\";\nimport { cn } from \"@/lib/utils\";\nimport { usePathname } from \"next/navigation\";\nimport { useIsMobile } from \"@/hooks/use-mobile\";\nimport Link from \"next/link\";\nimport { checkChatSessionWriteAccess } from \"@/lib/check-chat-session-write-access\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\n\nexport function ChatSessionsComponent({ agent, type }: { agent: string, type: string }) {\n\n const pathname = usePathname();\n const { toast } = useToast();\n const { user } = useContext(UserContext);\n const [sessionName, setSessionName] = useState(\"\");\n const isMobile = useIsMobile();\n const router = useRouter();\n let [search, setSearch]: any = useState({ searchString: null });\n const [renameDialogOpen, setRenameDialogOpen] = useState(false);\n const [renameSessionId, setRenameSessionId] = useState<string | null>(null);\n const [newSessionName, setNewSessionName] = useState(\"\");\n\n const sessionsQuery = useQuery(GET_AGENT_SESSIONS, {\n returnPartialData: true,\n fetchPolicy: \"network-only\",\n nextFetchPolicy: \"network-only\",\n variables: {\n page: 1,\n limit: 40,\n filters: {\n agent: {\n eq: agent\n }\n }\n },\n });\n\n const [removeSession, removeSessionResult] = useMutation(\n REMOVE_AGENT_SESSION_BY_ID,\n {\n refetchQueries: [\n GET_AGENT_SESSIONS,\n \"GetAgentSessions\",\n ],\n },\n );\n\n const [createAgentSession, createAgentSessionResult] = useMutation(\n CREATE_AGENT_SESSION,\n );\n\n const [updateSessionTitle, updateSessionTitleResult] = useMutation(\n UPDATE_AGENT_SESSION_TITLE,\n {\n refetchQueries: [\n GET_AGENT_SESSIONS,\n \"GetAgentSessions\",\n ],\n },\n );\n\n useEffect(() => {\n let variables: any = {\n page: 1,\n limit: 40,\n };\n if (search && search?.length > 2) {\n variables.filters = { agent: { eq: agent }, title: { contains: search } };\n } else {\n variables.filters = { agent: { eq: agent } };\n }\n sessionsQuery.refetch(variables);\n }, [search]);\n\n const handleCreateSession = async () => {\n const newSession = await createAgentSession({\n variables: {\n user: user.id,\n agent: agent,\n type: \"FLOW\",\n title: sessionName.trim(),\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n },\n });\n if (newSession.errors) {\n console.error(\"error\", newSession.errors);\n return;\n }\n if (\n !newSession.data?.agent_sessionsCreateOne?.item?.id\n ) {\n console.error(\"error\", \"failed to create session\");\n return;\n }\n setSessionName(\"\");\n sessionsQuery.refetch();\n router.push(\n `/chat/${agent}/${newSession.data?.agent_sessionsCreateOne?.item?.id}`,\n );\n }\n\n const handleRenameSession = async () => {\n if (!renameSessionId || !newSessionName.trim()) return;\n\n const result = await updateSessionTitle({\n variables: {\n id: renameSessionId,\n title: newSessionName.trim(),\n },\n });\n\n if (result.errors) {\n console.error(\"error\", result.errors);\n toast({\n title: \"Error\",\n description: \"Failed to rename session.\",\n variant: \"destructive\",\n });\n return;\n }\n\n toast({\n title: \"Session renamed\",\n description: \"The session has been renamed successfully.\",\n });\n\n setRenameDialogOpen(false);\n setRenameSessionId(null);\n setNewSessionName(\"\");\n }\n\n return (\n <div\n key={agent + type}\n className=\"relative hidden flex-col items-start md:flex h-100 overflow-y-scroll border-r\"\n x-chunk=\"dashboard-03-chunk-0\">\n <h2 className=\"mb-2 px-4 text-lg font-semibold tracking-tight\">Sessions</h2>\n\n <div className=\"bg-background/95 w-full backdrop-blur supports-[backdrop-filter]:bg-background/60\">\n <form>\n <div className=\"relative\">\n <Search className=\"absolute left-2 top-2.5 size-4 text-muted-foreground\" />\n <Input\n onKeyUp={(e) => {\n const searchString = e.currentTarget.value;\n setSearch(searchString);\n }}\n placeholder=\"Search sessions\"\n className=\"pl-8 border-0\"\n />\n </div>\n </form>\n </div>\n\n <div className=\"flex w-full items-center gap-2 p-3 border-t justify-between\">\n <Input\n autoFocus={true}\n value={sessionName}\n onChange={(e) => setSessionName(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n handleCreateSession();\n }\n }}\n placeholder=\"Name\"\n className=\"flex-1\"\n />\n <Button\n variant=\"secondary\"\n tabIndex={1}\n disabled={createAgentSessionResult.loading || !sessionName.trim()}\n onClick={async () => {\n // create a new session\n handleCreateSession();\n }}\n >\n <div className=\"font-semibold\">\n <PlusIcon />\n </div>\n </Button>\n </div>\n {sessionsQuery.loading && (\n <div className=\"w-full flex flex-col p-2 pt-0 pb-2\">\n <Skeleton className=\"w-full rounded h-[70px] rounded-md\" />\n <Skeleton className=\"w-full rounded h-[70px] rounded-md mt-3\" />\n <Skeleton className=\"w-full rounded h-[70px] rounded-md mt-3\" />\n <Skeleton className=\"w-full rounded h-[70px] rounded-md mt-3\" />\n </div>\n )}\n\n {!sessionsQuery.loading && !sessionsQuery?.data?.agent_sessionsPagination?.items?.length && (\n <div className=\"w-full flex\">\n <p className=\"mx-auto mt-5\">No sessions found.</p>\n </div>\n )}\n\n {!sessionsQuery.loading\n ? sessionsQuery?.data?.agent_sessionsPagination?.items?.map(\n (\n item: Omit<AgentSession, \"agent\"> & {\n agent: Agent;\n },\n ) => {\n\n const writeAccess = checkChatSessionWriteAccess({\n ...item,\n agent: item.agent.id\n }, user);\n\n return (\n <div key={item.id} className={`w-full px-2 flex flex-col items-start gap-0 rounded-none border-none text-left text-sm mb-2`}>\n <Link\n key={item.id}\n href={`/chat/${agent}/${item.id}`}\n className={cn(\n `p-2 w-full flex flex-col items-start gap-2 rounded-md p-3 text-left text-sm transition-all hover:bg-accent`,\n pathname.includes(item.id) && \"bg-muted\",\n writeAccess ? \"border border-l-4 border-r-0 border-y-0 border-gray-700\" : \"border border-l-4 border-r-0 border-y-0 border-yellow-900\",\n )}\n >\n <div className=\"flex w-full flex-col px-2\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex flex-col gap-2\">\n <div className=\"text-md font-medium max-w-[80%] truncate\">\n {item.title\n ? item.title?.substring(0, 20)\n : \"No title\"}\n </div>\n\n <div\n className={cn(\n \"ml-0 text-xs capitalize\",\n pathname.includes(item.id)\n ? \"text-foreground\"\n : \"text-muted-foreground\",\n )}\n >\n {item.updatedAt\n ? formatDistanceToNow(\n new Date(item.updatedAt),\n {\n addSuffix: true,\n },\n )\n : null}.\n </div>\n </div>\n\n {writeAccess && (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"ghost\"\n className=\"flex size-8 p-0 data-[state=open]:bg-muted\"\n >\n <DotsHorizontalIcon className=\"size-4\" />\n <span className=\"sr-only\">Open menu</span>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n align=\"end\"\n className=\"w-[160px]\">\n <DropdownMenuItem\n className=\"cursor-pointer\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setRenameSessionId(item.id);\n setNewSessionName(item.title || \"\");\n setRenameDialogOpen(true);\n }}>\n Rename\n </DropdownMenuItem>\n <DropdownMenuItem\n className=\"cursor-pointer\"\n onClick={() => {\n removeSession({\n variables: {\n id: item.id,\n },\n });\n toast({\n title: \"Deleting session\",\n description: \"We deleted the session.\",\n });\n }}>\n Delete\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n </div>\n <small className=\"text-xs text-muted-foreground\">\n {item.agent?.name}\n </small>\n </div>\n </Link>\n </div>\n )\n },\n )\n : null}\n\n <Dialog open={renameDialogOpen} onOpenChange={setRenameDialogOpen}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Rename Session</DialogTitle>\n <DialogDescription>\n Enter a new name for this session.\n </DialogDescription>\n </DialogHeader>\n <Input\n value={newSessionName}\n onChange={(e) => setNewSessionName(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n handleRenameSession();\n }\n }}\n placeholder=\"Session name\"\n />\n <DialogFooter>\n <Button\n variant=\"outline\"\n onClick={() => {\n setRenameDialogOpen(false);\n setRenameSessionId(null);\n setNewSessionName(\"\");\n }}\n >\n Cancel\n </Button>\n <Button\n onClick={handleRenameSession}\n disabled={updateSessionTitleResult.loading || !newSessionName.trim()}\n >\n Rename\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </div>\n );\n}\n","import Link from \"next/link\"\nimport { ChevronLeft, Info, Search, Star } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { useQuery, useMutation } from \"@apollo/client\";\nimport { GET_AGENTS, GET_AGENTS_BY_IDS, UPDATE_USER_BY_ID } from \"@/queries/queries\";\nimport { Agent } from \"@EXULU_SHARED/models/agent\";\nimport * as React from \"react\";\nimport { TruncatedText } from \"./truncated-text\";\nimport { useParams, usePathname } from \"next/navigation\";\nimport { Skeleton } from \"./ui/skeleton\";\nimport { AgentDetailsSheet } from \"@/app/(application)/agents/components/agent-details-sheet\";\nimport { UserContext } from \"@/app/(application)/authenticated\";\nimport { useContext, useState, useEffect } from \"react\";\nimport { User } from \"@/types/models/user\";\nimport { ChatSessionsComponent } from \"@/app/(application)/chat/[agent]/chat-sessions\";\n\nexport function AgentNav() {\n const [searchQuery, setSearchQuery] = React.useState(\"\");\n const [selectedAgentId, setSelectedAgentId] = React.useState<string | null>(null);\n const [sheetOpen, setSheetOpen] = React.useState(false);\n const [showAllFavorites, setShowAllFavorites] = React.useState(false);\n const [showAllAgents, setShowAllAgents] = React.useState(false);\n const params = useParams();\n const pathname = usePathname();\n const { user: init } = useContext(UserContext);\n const [user, setUser] = useState<User>(init);\n\n // Fetch favourite agents using GET_AGENTS_BY_IDS\n const favouriteAgents = useQuery(GET_AGENTS_BY_IDS, {\n fetchPolicy: \"no-cache\",\n nextFetchPolicy: \"network-only\",\n variables: {\n ids: user?.favourite_agents || []\n },\n skip: !user?.favourite_agents?.length,\n });\n\n // Fetch regular agents (excluding favourites when not searching)\n const agents = useQuery(GET_AGENTS, {\n fetchPolicy: \"no-cache\",\n nextFetchPolicy: \"network-only\",\n variables: {\n page: 1,\n limit: 200,\n filters: {\n ...(user?.super_admin ? {} : {\n active: true\n }),\n ...(searchQuery ? {\n name: {\n contains: searchQuery\n }\n } : {})\n },\n },\n });\n\n const [updateUser] = useMutation(UPDATE_USER_BY_ID, {\n onCompleted: (data) => {\n setUser({ ...user, favourite_agents: data.usersUpdateOneById?.item?.favourite_agents });\n },\n });\n\n const handleInfoClick = (agentId: string, event: React.MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n setSelectedAgentId(agentId);\n setSheetOpen(true);\n };\n\n const handleFavouriteToggle = (agentId: string, event: React.MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n\n console.log(\"user\", user);\n const currentFavourites = user?.favourite_agents || [];\n const isFavourite = currentFavourites.includes(agentId);\n\n let newFavourites: string[];\n if (isFavourite) {\n newFavourites = currentFavourites.filter((id: string) => id !== agentId);\n } else {\n newFavourites = [...currentFavourites, agentId];\n }\n\n console.log(\"newFavourites\", newFavourites);\n\n updateUser({\n variables: {\n id: user.id,\n favourite_agents: newFavourites\n }\n });\n };\n\n // Check if an agent is currently selected\n const selectedAgent = params.agent ? agents?.data?.agentsPagination?.items?.find(\n (agent: Agent) => agent.id === params.agent\n ) : null;\n\n const renderAgentImage = (agent: Agent) => {\n if (agent.image) {\n return (\n <img\n src={agent.image}\n alt={`${agent.name} profile`}\n className=\"h-4 w-4 rounded-full object-cover\"\n />\n );\n } else {\n return (\n <div className=\"h-4 w-4 rounded-full bg-gradient-to-br from-blue-500 to-purple-600 flex items-center justify-center text-white text-xs font-medium\">\n {agent.name?.charAt(0).toUpperCase() || 'A'}\n </div>\n );\n }\n };\n\n useEffect(() => {\n setShowAllAgents(false)\n setShowAllFavorites(false)\n }, [params.agent]);\n\n return (\n <>\n <div className=\"pb-12 w-[250px]\">\n <div className=\"space-y-4 py-4\">\n <div>\n <h2 className=\"mb-2 px-4 text-lg font-semibold tracking-tight\">Agents</h2>\n <div>\n <div className=\"relative\">\n <Search className=\"absolute left-2 top-2.5 h-4 w-4 text-muted-foreground\" />\n <Input\n placeholder=\"Search agents...\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"pl-8 h-9 border-0\"\n />\n </div>\n </div>\n <div className=\"space-y-1 border-t px-2 pt-2\">\n {\n (selectedAgent && !showAllAgents) && (\n <div key={`fav-${selectedAgent.id}`} className=\"flex items-center gap-1\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 flex-shrink-0\"\n onClick={() => setShowAllAgents(!showAllAgents)}\n >\n <ChevronLeft className=\"h-3 w-3\" />\n </Button>\n <Link onClick={() => setShowAllAgents(false)} href={`/chat/${selectedAgent.id}`} className=\"flex-1\">\n <Button\n onClick={() => setShowAllAgents(false)}\n variant={pathname.includes(selectedAgent.id) ? \"secondary\" : \"ghost\"}\n className=\"w-full justify-start gap-2 pr-5\">\n {renderAgentImage(selectedAgent)}\n <span className=\"flex-1 text-left\">\n <TruncatedText text={selectedAgent.name} length={7} />\n </span>\n </Button>\n </Link>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 flex-shrink-0\"\n onClick={(e) => handleFavouriteToggle(selectedAgent.id, e)}\n >\n <Star className=\"h-3 w-3 fill-yellow-400 text-yellow-400\" />\n </Button>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 flex-shrink-0\"\n onClick={(e) => handleInfoClick(selectedAgent.id, e)}\n >\n <Info className=\"h-3 w-3\" />\n </Button>\n </div>\n )\n }\n {\n (!selectedAgent || showAllAgents || searchQuery) && (\n <>\n {user?.favourite_agents && user?.favourite_agents?.length > 0 && !searchQuery && (\n <>\n {favouriteAgents.loading && (\n <>\n <Skeleton className=\"w-[100%] h-[32px] rounded-lg\" />\n <Skeleton className=\"w-[100%] h-[32px] rounded-lg\" />\n </>\n )}\n {!favouriteAgents.loading && (() => {\n const favoriteAgentsList = favouriteAgents?.data?.agentByIds || [];\n const displayedFavorites = showAllFavorites ? favoriteAgentsList : favoriteAgentsList.slice(0, 4);\n\n return (\n <>\n {displayedFavorites.map((agent: Agent) => (\n <div key={`fav-${agent.id}`} className=\"flex items-center gap-1\">\n <Link href={`/chat/${agent.id}`} className=\"flex-1\">\n <Button\n variant={pathname.includes(agent.id) ? \"secondary\" : \"ghost\"}\n className=\"w-full justify-start gap-2 pr-1\">\n {renderAgentImage(agent)}\n <span className=\"flex-1 text-left\">\n <TruncatedText text={agent.name} length={10} />\n </span>\n </Button>\n </Link>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 flex-shrink-0\"\n onClick={(e) => handleFavouriteToggle(agent.id, e)}\n >\n <Star className=\"h-3 w-3 fill-yellow-400 text-yellow-400\" />\n </Button>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 flex-shrink-0\"\n onClick={(e) => handleInfoClick(agent.id, e)}\n >\n <Info className=\"h-3 w-3\" />\n </Button>\n </div>\n ))}\n {favoriteAgentsList.length > 4 && (\n <Button\n variant=\"ghost\"\n className=\"w-full justify-center text-xs text-muted-foreground h-8\"\n onClick={() => setShowAllFavorites(!showAllFavorites)}\n >\n {showAllFavorites\n ? 'Show less'\n : `Show more (${favoriteAgentsList.length - 4})`\n }\n </Button>\n )}\n </>\n );\n })()}\n </>\n )}\n\n {/* Regular Agents */}\n {agents.loading && <>\n <Skeleton className=\"w-[100%] h-[32px] rounded-lg\" />\n <Skeleton className=\"w-[100%] h-[32px] rounded-lg\" />\n <Skeleton className=\"w-[100%] h-[32px] rounded-lg\" />\n <Skeleton className=\"w-[100%] h-[32px] rounded-lg\" />\n <Skeleton className=\"w-[100%] h-[32px] rounded-lg\" />\n </>}\n {!agents.loading && (() => {\n const regularAgentsList = agents?.data?.agentsPagination?.items\n ?.filter((agent: Agent) => !user?.favourite_agents?.includes(agent.id) || searchQuery) || [];\n const displayedAgents = (searchQuery || showAllAgents) ? regularAgentsList : regularAgentsList.slice(0, 4);\n\n return (\n <>\n {displayedAgents.map((agent: Agent) => (\n <div key={agent.id} className=\"flex items-center gap-1\">\n <Link href={`/chat/${agent.id}`} className=\"flex-1\">\n <Button\n variant={pathname.includes(agent.id) ? \"secondary\" : \"ghost\"}\n className=\"w-full justify-start gap-2 pr-1\">\n {renderAgentImage(agent)}\n <span className=\"flex-1 text-left\">\n <TruncatedText text={agent.name} length={14} />\n </span>\n </Button>\n </Link>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 flex-shrink-0\"\n onClick={(e) => handleFavouriteToggle(agent.id, e)}\n >\n <Star className={`h-3 w-3 ${user?.favourite_agents?.includes(agent.id) ? 'fill-yellow-400 text-yellow-400' : ''}`} />\n </Button>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 flex-shrink-0\"\n onClick={(e) => handleInfoClick(agent.id, e)}\n >\n <Info className=\"h-3 w-3\" />\n </Button>\n </div>\n ))}\n {!searchQuery && regularAgentsList.length > 4 && (\n <Button\n variant=\"ghost\"\n className=\"w-full justify-center text-xs text-muted-foreground h-8\"\n onClick={() => setShowAllAgents(!showAllAgents)}\n >\n {showAllAgents\n ? 'Show less'\n : `Show more (${regularAgentsList.length - 4})`\n }\n </Button>\n )}\n </>\n );\n })()}\n </>\n )}\n </div>\n </div>\n {/*<div className=\"px-3 py-2\">\n <h2 className=\"mb-2 px-4 text-lg font-semibold tracking-tight\">Settings</h2>\n <div className=\"space-y-1\">\n <Link href=\"/settings\">\n <Button variant=\"ghost\" className=\"w-full justify-start gap-2\">\n <Settings className=\"h-4 w-4\" />\n Settings\n </Button>\n </Link>\n </div>\n </div>*/}\n </div>\n {\n params.agent && (\n <ChatSessionsComponent agent={params.agent as string} type={\"chat\"} />\n )\n }\n </div>\n\n {selectedAgentId && (\n <AgentDetailsSheet\n agentId={selectedAgentId}\n open={sheetOpen}\n onOpenChange={(open) => {\n setSheetOpen(open);\n if (!open) {\n setSelectedAgentId(null);\n }\n }}\n />\n )}\n </>\n )\n}\n\n","\"use client\";\n\nimport {AgentNav} from \"@/components/agent-nav\";\nimport * as React from \"react\";\n\nexport default function ChatLayout({ children }: { children: React.ReactNode }) {\n return (\n <div className=\"flex h-full\">\n <div className=\"border-r bg-muted/10\">\n <AgentNav/>\n </div>\n {children}\n </div>\n );\n}\n","export function TruncatedText({ text, length }: { text: string, length: number }) {\n if (text.length > length) {\n return <>{text.slice(0, length)}...</>\n } else {\n return <>{text}</>;\n }\n}","\"use client\";\n\n// Inspired by react-hot-toast library\nimport * as React from \"react\";\n\nimport type { ToastActionElement, ToastProps } from \"@/components/ui/toast\";\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"];\n toast: ToasterToast;\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t,\n ),\n };\n\n case \"DISMISS_TOAST\": {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t,\n ),\n };\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, \"id\">;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: \"UPDATE_TOAST\",\n toast: { ...props, id },\n });\n const dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id });\n\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n };\n}\n\nexport { useToast, toast };\n","import { AgentSession } from \"@/types/models/agent-session\";\nimport { UserWithRole } from \"@/types/models/user\";\n\nexport const checkChatSessionWriteAccess = (session: AgentSession, user: UserWithRole) => {\n const isPrivate = session.rights_mode === 'private';\n const isPublic = session.rights_mode === 'public';\n const byUsers = session.rights_mode === 'users';\n const byRoles = session.rights_mode === 'roles';\n const isAdmin = user.super_admin;\n const isCreator = session.created_by === user.id.toString();\n \n let writeAccess = false;\n if (isPrivate && isCreator) {\n writeAccess = true;\n }\n if (isPublic) {\n writeAccess = true;\n }\n if (byUsers) {\n writeAccess = session.RBAC?.users?.find(u => u.id === user.id)?.rights === 'write';\n }\n if (byRoles) {\n writeAccess = session.RBAC?.roles?.find(r => r.id === user.role?.id)?.rights === 'write';\n }\n if (isAdmin) {\n writeAccess = true;\n }\n return writeAccess;\n}","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTgtNi02IDYtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevron-left\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 ChevronLeft = createLucideIcon('ChevronLeft', [\n ['path', { d: 'm15 18-6-6 6-6', key: '1wnfg3' }],\n]);\n\nexport default ChevronLeft;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Image\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iMiIgLz4KICA8cGF0aCBkPSJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/image\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 Image = createLucideIcon('Image', [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2', key: '1m3agn' }],\n ['circle', { cx: '9', cy: '9', r: '2', key: 'af1f0g' }],\n ['path', { d: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21', key: '1xmnt7' }],\n]);\n\nexport default Image;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Info\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgMTZ2LTQiIC8+CiAgPHBhdGggZD0iTTEyIDhoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/info\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 Info = createLucideIcon('Info', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M12 16v-4', key: '1dtifu' }],\n ['path', { d: 'M12 8h.01', key: 'e9boi3' }],\n]);\n\nexport default Info;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Plus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KICA8cGF0aCBkPSJNMTIgNXYxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/plus\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 Plus = createLucideIcon('Plus', [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'M12 5v14', key: 's699le' }],\n]);\n\nexport default Plus;\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 createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Shield\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJzOC00IDgtMTBWNWwtOC0zLTggM3Y3YzAgNiA4IDEwIDggMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shield\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 Shield = createLucideIcon('Shield', [\n ['path', { d: 'M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10', key: '1irkt0' }],\n]);\n\nexport default Shield;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Star\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWdvbiBwb2ludHM9IjEyIDIgMTUuMDkgOC4yNiAyMiA5LjI3IDE3IDE0LjE0IDE4LjE4IDIxLjAyIDEyIDE3Ljc3IDUuODIgMjEuMDIgNyAxNC4xNCAyIDkuMjcgOC45MSA4LjI2IDEyIDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/star\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 Star = createLucideIcon('Star', [\n [\n 'polygon',\n {\n points:\n '12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2',\n key: '8f66p6',\n },\n ],\n]);\n\nexport default Star;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Text\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgNi4xSDMiIC8+CiAgPHBhdGggZD0iTTIxIDEyLjFIMyIgLz4KICA8cGF0aCBkPSJNMTUuMSAxOEgzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/text\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 Text = createLucideIcon('Text', [\n ['path', { d: 'M17 6.1H3', key: 'wptmhv' }],\n ['path', { d: 'M21 12.1H3', key: '1j38uz' }],\n ['path', { d: 'M15.1 18H3', key: '1nb16a' }],\n]);\n\nexport default Text;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Video\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjIgOC02IDQgNiA0VjhaIiAvPgogIDxyZWN0IHdpZHRoPSIxNCIgaGVpZ2h0PSIxMiIgeD0iMiIgeT0iNiIgcng9IjIiIHJ5PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/video\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 Video = createLucideIcon('Video', [\n ['path', { d: 'm22 8-6 4 6 4V8Z', key: '50v9me' }],\n ['rect', { width: '14', height: '12', x: '2', y: '6', rx: '2', ry: '2', key: '1rqjg6' }],\n]);\n\nexport default Video;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Volume2\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWdvbiBwb2ludHM9IjExIDUgNiA5IDIgOSAyIDE1IDYgMTUgMTEgMTkgMTEgNSIgLz4KICA8cGF0aCBkPSJNMTUuNTQgOC40NmE1IDUgMCAwIDEgMCA3LjA3IiAvPgogIDxwYXRoIGQ9Ik0xOS4wNyA0LjkzYTEwIDEwIDAgMCAxIDAgMTQuMTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/volume-2\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 Volume2 = createLucideIcon('Volume2', [\n ['polygon', { points: '11 5 6 9 2 9 2 15 6 15 11 19 11 5', key: '16drj5' }],\n ['path', { d: 'M15.54 8.46a5 5 0 0 1 0 7.07', key: 'ltjumu' }],\n ['path', { d: 'M19.07 4.93a10 10 0 0 1 0 14.14', key: '1kegas' }],\n]);\n\nexport default Volume2;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Wrench\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNyA2LjNhMSAxIDAgMCAwIDAgMS40bDEuNiAxLjZhMSAxIDAgMCAwIDEuNCAwbDMuNzctMy43N2E2IDYgMCAwIDEtNy45NCA3Ljk0bC02LjkxIDYuOTFhMi4xMiAyLjEyIDAgMCAxLTMtM2w2LjkxLTYuOTFhNiA2IDAgMCAxIDcuOTQtNy45NGwtMy43NiAzLjc2eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/wrench\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 Wrench = createLucideIcon('Wrench', [\n [\n 'path',\n {\n d: 'M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z',\n key: 'cbrjhi',\n },\n ],\n]);\n\nexport default Wrench;\n","import * as React from \"rehackt\";\nimport { canUseDOM } from \"../../../utilities/index.js\";\n// use canUseDOM here instead of canUseLayoutEffect because we want to be able\n// to use useLayoutEffect in our jest tests. useLayoutEffect seems to work fine\n// in useSuspenseQuery tests, but to honor the original comment about the\n// warnings for useSyncExternalStore implementation, canUseLayoutEffect is left\n// alone.\nexport var useIsomorphicLayoutEffect = canUseDOM ? React.useLayoutEffect : React.useEffect;\n//# sourceMappingURL=useIsomorphicLayoutEffect.js.map","import { __assign } from \"tslib\";\nimport * as React from \"rehackt\";\nimport { mergeOptions } from \"../../utilities/index.js\";\nimport { equal } from \"@wry/equality\";\nimport { DocumentType, verifyDocumentType } from \"../parser/index.js\";\nimport { ApolloError } from \"../../errors/index.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\nimport { useIsomorphicLayoutEffect } from \"./internal/useIsomorphicLayoutEffect.js\";\n/**\n *\n *\n * > Refer to the [Mutations](https://www.apollographql.com/docs/react/data/mutations/) section for a more in-depth overview of `useMutation`.\n *\n * @example\n * ```jsx\n * import { gql, useMutation } from '@apollo/client';\n *\n * const ADD_TODO = gql`\n * mutation AddTodo($type: String!) {\n * addTodo(type: $type) {\n * id\n * type\n * }\n * }\n * `;\n *\n * function AddTodo() {\n * let input;\n * const [addTodo, { data }] = useMutation(ADD_TODO);\n *\n * return (\n * <div>\n * <form\n * onSubmit={e => {\n * e.preventDefault();\n * addTodo({ variables: { type: input.value } });\n * input.value = '';\n * }}\n * >\n * <input\n * ref={node => {\n * input = node;\n * }}\n * />\n * <button type=\"submit\">Add Todo</button>\n * </form>\n * </div>\n * );\n * }\n * ```\n * @since 3.0.0\n * @param mutation - A GraphQL mutation document parsed into an AST by `gql`.\n * @param options - Options to control how the mutation is executed.\n * @returns A tuple in the form of `[mutate, result]`\n */\nexport function useMutation(mutation, options) {\n var client = useApolloClient(options === null || options === void 0 ? void 0 : options.client);\n verifyDocumentType(mutation, DocumentType.Mutation);\n var _a = React.useState({\n called: false,\n loading: false,\n client: client,\n }), result = _a[0], setResult = _a[1];\n var ref = React.useRef({\n result: result,\n mutationId: 0,\n isMounted: true,\n client: client,\n mutation: mutation,\n options: options,\n });\n useIsomorphicLayoutEffect(function () {\n Object.assign(ref.current, { client: client, options: options, mutation: mutation });\n });\n var execute = React.useCallback(function (executeOptions) {\n if (executeOptions === void 0) { executeOptions = {}; }\n var _a = ref.current, options = _a.options, mutation = _a.mutation;\n var baseOptions = __assign(__assign({}, options), { mutation: mutation });\n var client = executeOptions.client || ref.current.client;\n if (!ref.current.result.loading &&\n !baseOptions.ignoreResults &&\n ref.current.isMounted) {\n setResult((ref.current.result = {\n loading: true,\n error: void 0,\n data: void 0,\n called: true,\n client: client,\n }));\n }\n var mutationId = ++ref.current.mutationId;\n var clientOptions = mergeOptions(baseOptions, executeOptions);\n return client\n .mutate(clientOptions)\n .then(function (response) {\n var _a, _b;\n var data = response.data, errors = response.errors;\n var error = errors && errors.length > 0 ?\n new ApolloError({ graphQLErrors: errors })\n : void 0;\n var onError = executeOptions.onError || ((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError);\n if (error && onError) {\n onError(error, clientOptions);\n }\n if (mutationId === ref.current.mutationId &&\n !clientOptions.ignoreResults) {\n var result_1 = {\n called: true,\n loading: false,\n data: data,\n error: error,\n client: client,\n };\n if (ref.current.isMounted && !equal(ref.current.result, result_1)) {\n setResult((ref.current.result = result_1));\n }\n }\n var onCompleted = executeOptions.onCompleted || ((_b = ref.current.options) === null || _b === void 0 ? void 0 : _b.onCompleted);\n if (!error) {\n onCompleted === null || onCompleted === void 0 ? void 0 : onCompleted(response.data, clientOptions);\n }\n return response;\n }, function (error) {\n var _a;\n if (mutationId === ref.current.mutationId &&\n ref.current.isMounted) {\n var result_2 = {\n loading: false,\n error: error,\n data: void 0,\n called: true,\n client: client,\n };\n if (!equal(ref.current.result, result_2)) {\n setResult((ref.current.result = result_2));\n }\n }\n var onError = executeOptions.onError || ((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError);\n if (onError) {\n onError(error, clientOptions);\n // TODO(brian): why are we returning this here???\n return { data: void 0, errors: error };\n }\n throw error;\n });\n }, []);\n var reset = React.useCallback(function () {\n if (ref.current.isMounted) {\n var result_3 = {\n called: false,\n loading: false,\n client: ref.current.client,\n };\n Object.assign(ref.current, { mutationId: 0, result: result_3 });\n setResult(result_3);\n }\n }, []);\n React.useEffect(function () {\n var current = ref.current;\n // eslint-disable-next-line react-compiler/react-compiler\n current.isMounted = true;\n return function () {\n current.isMounted = false;\n };\n }, []);\n return [execute, __assign({ reset: reset }, result)];\n}\n//# sourceMappingURL=useMutation.js.map"],"names":["Promise","resolve","then","__webpack_require__","bind","ChatSessionsComponent","param","sessionsQuery","agent","type","pathname","usePathname","toast","useToast","user","useContext","UserContext","sessionName","setSessionName","useState","useIsMobile","router","useRouter","search","setSearch","searchString","renameDialogOpen","setRenameDialogOpen","renameSessionId","setRenameSessionId","newSessionName","setNewSessionName","useQuery","GET_AGENT_SESSIONS","returnPartialData","fetchPolicy","nextFetchPolicy","variables","page","limit","filters","eq","removeSession","removeSessionResult","useMutation","REMOVE_AGENT_SESSION_BY_ID","refetchQueries","createAgentSession","createAgentSessionResult","CREATE_AGENT_SESSION","updateSessionTitle","updateSessionTitleResult","UPDATE_AGENT_SESSION_TITLE","useEffect","length","title","contains","refetch","handleCreateSession","newSession","id","trim","createdAt","Date","toISOString","updatedAt","errors","console","error","data","agent_sessionsCreateOne","item","push","concat","handleRenameSession","result","description","variant","jsx_runtime","jsxs","div","className","x-chunk","jsx","h2","form","Search","Input","onKeyUp","e","currentTarget","value","placeholder","autoFocus","onChange","target","onKeyDown","key","Button","tabIndex","disabled","loading","onClick","PlusIcon","Skeleton","agent_sessionsPagination","items","p","map","writeAccess","checkChatSessionWriteAccess","Link","href","cn","includes","substring","formatDistanceToNow","addSuffix","DropdownMenu","DropdownMenuTrigger","asChild","DotsHorizontalIcon","span","DropdownMenuContent","align","DropdownMenuItem","preventDefault","stopPropagation","small","name","Dialog","open","onOpenChange","DialogContent","DialogHeader","DialogTitle","DialogDescription","DialogFooter","AgentNav","agents","searchQuery","setSearchQuery","React","selectedAgentId","setSelectedAgentId","sheetOpen","setSheetOpen","showAllFavorites","setShowAllFavorites","showAllAgents","setShowAllAgents","params","useParams","init","setUser","favouriteAgents","GET_AGENTS_BY_IDS","ids","favourite_agents","skip","GET_AGENTS","super_admin","active","updateUser","UPDATE_USER_BY_ID","onCompleted","usersUpdateOneById","handleInfoClick","agentId","event","handleFavouriteToggle","newFavourites","log","currentFavourites","filter","selectedAgent","agentsPagination","find","renderAgentImage","image","img","src","alt","charAt","toUpperCase","Fragment","size","ChevronLeft","TruncatedText","text","Star","Info","favoriteAgentsList","agentByIds","displayedFavorites","slice","regularAgentsList","displayedAgents","AgentDetailsSheet","ChatLayout","children","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","count","toastTimeouts","Map","addToRemoveQueue","has","toastId","timeout","setTimeout","delete","dispatch","set","reducer","state","action","toasts","t","forEach","undefined","listeners","memoryState","listener","props","Number","MAX_SAFE_INTEGER","toString","dismiss","update","setState","index","indexOf","splice","session","isPrivate","rights_mode","isPublic","byUsers","byRoles","isAdmin","isCreator","created_by","RBAC","users","u","rights","roles","r","role","createLucideIcon","d","Image","width","height","x","y","rx","ry","cx","cy","Plus","Shield","points","Text","Video","Volume2","Wrench","useIsomorphicLayoutEffect","canUse","Nq","rehackt","useLayoutEffect","mutation","options","client","useApolloClient","parser","Vp","n_","Mutation","_a","called","setResult","ref","useRef","mutationId","isMounted","Object","assign","current","execute","useCallback","executeOptions","baseOptions","tslib_es6","pi","ignoreResults","clientOptions","mergeOptions","J","mutate","response","_b","client_errors","cA","graphQLErrors","onError","result_1","lib","D","result_2","reset","result_3"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1991],{57071:function(e,t,s){Promise.resolve().then(s.bind(s,9402))},9402:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return v}});var r=s(57437),a=s(2265),n=s(66070),i=s(95186),l=s(26815),o=s(62869),c=s(76818),d=s(74928),u=s(69076),f=s(66901),m=s(40875),h=s(77992),p=s(7211),x=s(12199),g=s(27689);function v(){let[e,t]=(0,a.useState)({}),[s,v]=(0,a.useState)({}),[j,b]=(0,a.useState)(""),[y,N]=(0,a.useState)(!1),[w,S]=(0,a.useState)(!1),[k,T]=(0,a.useState)(!1),[C,_]=(0,a.useState)(null),{toast:O}=(0,h.pm)(),{data:E,loading:I,refetch:A}=(0,p.aM)(g.OP),[R]=(0,x.D)(g.Ep),[D]=(0,x.D)(g.fA);(0,a.useEffect)(()=>{var r,a,n;if(null==E?void 0:null===(r=E.platform_configurationsPagination)||void 0===r?void 0:r.items){let r=E.platform_configurationsPagination.items.find(e=>"theme_config"===e.config_key);r&&(_(r.id),(null===(a=r.config_value)||void 0===a?void 0:a.light)&&t({...e,...r.config_value.light}),(null===(n=r.config_value)||void 0===n?void 0:n.dark)&&v({...s,...r.config_value.dark}))}},[E]);let F=(s,r)=>{t({...e,[s]:r})},Z=(e,t)=>{v({...s,[e]:t})},P=e=>{let t={},s={},r=e.match(RegExp(":root\\s*\\{([^}]+)\\}","s"));if(r){let e=r[1].match(/--[\w-]+:\s*[^;]+/g);e&&e.forEach(e=>{let[s,...r]=e.split(":"),a=r.join(":").trim();t[s.trim()]=a})}let a=e.match(RegExp("\\.dark\\s*\\{([^}]+)\\}","s"));if(a){let e=a[1].match(/--[\w-]+:\s*[^;]+/g);e&&e.forEach(e=>{let[t,...r]=e.split(":"),a=r.join(":").trim();s[t.trim()]=a})}return{light:t,dark:s}},M=async()=>{try{let n={config_key:"theme_config",config_value:{light:e,dark:s},description:"Platform theme configuration"};if(C)await D({variables:{id:C,data:n}});else{var t,r,a;let e=await R({variables:{data:n}});_(null===(a=e.data)||void 0===a?void 0:null===(r=a.platform_configurationsCreateOne)||void 0===r?void 0:null===(t=r.item)||void 0===t?void 0:t.id)}await A(),O({title:"Configuration saved",description:"Theme configuration has been saved successfully.",duration:3e3})}catch(e){console.error("Error saving configuration:",e),O({title:"Error",description:"Failed to save configuration. Please try again.",duration:3e3,variant:"destructive"})}};return(0,r.jsxs)("div",{className:"h-full flex-1 flex-col space-y-8 p-8",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between space-y-2",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"text-2xl font-bold tracking-tight",children:"IMP Configurations"}),(0,r.jsx)("p",{className:"text-muted-foreground",children:"Manage platform-wide theme variables and styling."})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsxs)(o.z,{onClick:()=>{t({}),v({}),O({title:"Theme reset",description:"Both themes have been reset to default (empty).",duration:3e3})},variant:"outline",children:[(0,r.jsx)(u.Z,{className:"mr-2 h-4 w-4"}),"Reset Theme"]}),(0,r.jsx)(o.z,{onClick:M,children:"Save Configuration"})]})]}),(0,r.jsxs)(n.Zb,{children:[(0,r.jsxs)(n.Ol,{children:[(0,r.jsx)(n.ll,{children:"Import Theme CSS"}),(0,r.jsx)(n.SZ,{children:"Paste your CSS theme code below to automatically populate all fields"})]}),(0,r.jsxs)(n.aY,{className:"space-y-4",children:[(0,r.jsx)(c.g,{placeholder:"Paste your CSS theme here (including :root and .dark blocks)...",value:j,onChange:e=>b(e.target.value),className:"font-mono text-xs min-h-[200px]"}),(0,r.jsx)(o.z,{onClick:()=>{T(!0);let r=P(j);setTimeout(()=>{Object.keys(r.light).length>0&&(t({...e,...r.light}),N(!0)),Object.keys(r.dark).length>0&&(v({...s,...r.dark}),S(!0)),b(""),T(!1),O({title:"Theme imported successfully!",description:"Updated ".concat(Object.keys(r.light).length+Object.keys(r.dark).length," variables."),duration:3e3})},500)},disabled:!j.trim()||k,className:"relative",children:k?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"opacity-0",children:"Import Theme"}),(0,r.jsx)("div",{className:"absolute inset-0 flex items-center justify-center",children:(0,r.jsx)("div",{className:"h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"})})]}):"Import Theme"})]})]}),(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsx)(d.zF,{open:y,onOpenChange:N,children:(0,r.jsxs)(n.Zb,{children:[(0,r.jsx)(d.wy,{asChild:!0,children:(0,r.jsx)(n.Ol,{className:"cursor-pointer hover:bg-accent/50 transition-colors",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)(n.ll,{className:"flex items-center gap-2",children:["Light Theme Variables",Object.keys(e).length>0&&(0,r.jsx)(f.Z,{className:"h-4 w-4 text-primary"})]}),(0,r.jsx)(n.SZ,{children:"Configure CSS variables for the light theme"})]}),(0,r.jsx)(m.Z,{className:"h-5 w-5 transition-transform ".concat(y?"rotate-180":"")})]})})}),(0,r.jsx)(d.Fw,{children:(0,r.jsx)(n.aY,{className:"grid gap-4 md:grid-cols-2 pt-0",children:Object.entries(e).map(e=>{let[t,s]=e;return(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(l._,{htmlFor:"light-".concat(t),className:"text-xs font-mono",children:t}),(0,r.jsx)(i.I,{id:"light-".concat(t),value:s,onChange:e=>F(t,e.target.value),className:"font-mono text-xs"})]},t)})})})]})}),(0,r.jsx)(d.zF,{open:w,onOpenChange:S,children:(0,r.jsxs)(n.Zb,{children:[(0,r.jsx)(d.wy,{asChild:!0,children:(0,r.jsx)(n.Ol,{className:"cursor-pointer hover:bg-accent/50 transition-colors",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)(n.ll,{className:"flex items-center gap-2",children:["Dark Theme Variables",Object.keys(s).length>0&&(0,r.jsx)(f.Z,{className:"h-4 w-4 text-primary"})]}),(0,r.jsx)(n.SZ,{children:"Configure CSS variables for the dark theme"})]}),(0,r.jsx)(m.Z,{className:"h-5 w-5 transition-transform ".concat(w?"rotate-180":"")})]})})}),(0,r.jsx)(d.Fw,{children:(0,r.jsx)(n.aY,{className:"grid gap-4 md:grid-cols-2 pt-0",children:Object.entries(s).map(e=>{let[t,s]=e;return(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(l._,{htmlFor:"dark-".concat(t),className:"text-xs font-mono",children:t}),(0,r.jsx)(i.I,{id:"dark-".concat(t),value:s,onChange:e=>Z(t,e.target.value),className:"font-mono text-xs"})]},t)})})})]})})]})]})}},66070:function(e,t,s){"use strict";s.d(t,{Ol:function(){return l},SZ:function(){return c},Zb:function(){return i},aY:function(){return d},eW:function(){return u},ll:function(){return o}});var r=s(57437),a=s(2265),n=s(94508);let i=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,n.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",s),...a})});i.displayName="Card";let l=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,n.cn)("flex flex-col space-y-1.5 p-6",s),...a})});l.displayName="CardHeader";let o=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("h3",{ref:t,className:(0,n.cn)("text-2xl font-semibold leading-none tracking-tight",s),...a})});o.displayName="CardTitle";let c=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("p",{ref:t,className:(0,n.cn)("text-sm text-muted-foreground",s),...a})});c.displayName="CardDescription";let d=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,n.cn)("p-6 pt-0",s),...a})});d.displayName="CardContent";let u=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,n.cn)("flex items-center p-6 pt-0",s),...a})});u.displayName="CardFooter"},74928:function(e,t,s){"use strict";s.d(t,{Fw:function(){return i},wy:function(){return n},zF:function(){return a}});var r=s(88985);let a=r.fC,n=r.wy,i=r.Fw},95186:function(e,t,s){"use strict";s.d(t,{I:function(){return i}});var r=s(57437),a=s(2265),n=s(94508);let i=a.forwardRef((e,t)=>{let{className:s,type:a,...i}=e;return(0,r.jsx)("input",{type:a,className:(0,n.cn)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",s),ref:t,...i})});i.displayName="Input"},26815:function(e,t,s){"use strict";s.d(t,{_:function(){return c}});var r=s(57437),a=s(6394),n=s(90535),i=s(2265),l=s(94508);let o=(0,n.j)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),c=i.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,r.jsx)(a.f,{ref:t,className:(0,l.cn)(o(),s),...n})});c.displayName=a.f.displayName},76818:function(e,t,s){"use strict";s.d(t,{g:function(){return i}});var r=s(57437),a=s(2265),n=s(94508);let i=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("textarea",{className:(0,n.cn)("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",s),ref:t,...a})});i.displayName="Textarea"},77992:function(e,t,s){"use strict";s.d(t,{Am:function(){return u},pm:function(){return f}});var r=s(2265);let a=0,n=new Map,i=e=>{if(n.has(e))return;let t=setTimeout(()=>{n.delete(e),d({type:"REMOVE_TOAST",toastId:e})},1e6);n.set(e,t)},l=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:s}=t;return s?i(s):e.toasts.forEach(e=>{i(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===s||void 0===s?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},o=[],c={toasts:[]};function d(e){c=l(c,e),o.forEach(e=>{e(c)})}function u(e){let{...t}=e,s=(a=(a+1)%Number.MAX_SAFE_INTEGER).toString(),r=()=>d({type:"DISMISS_TOAST",toastId:s});return d({type:"ADD_TOAST",toast:{...t,id:s,open:!0,onOpenChange:e=>{e||r()}}}),{id:s,dismiss:r,update:e=>d({type:"UPDATE_TOAST",toast:{...e,id:s}})}}function f(){let[e,t]=r.useState(c);return r.useEffect(()=>(o.push(t),()=>{let e=o.indexOf(t);e>-1&&o.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>d({type:"DISMISS_TOAST",toastId:e})}}}},function(e){e.O(0,[9851,7629,7093,6148,847,1942,513,6373,2971,2117,1744],function(){return e(e.s=57071)}),_N_E=e.O()}]);
2
- //# sourceMappingURL=page-3aa96486933ae5dd.js.map
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1991],{37999:function(e,t,s){Promise.resolve().then(s.bind(s,9402))},9402:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return v}});var r=s(57437),a=s(2265),n=s(66070),i=s(95186),l=s(26815),o=s(62869),c=s(76818),d=s(74928),u=s(69076),f=s(66901),m=s(40875),h=s(77992),p=s(7211),x=s(12199),g=s(27689);function v(){let[e,t]=(0,a.useState)({}),[s,v]=(0,a.useState)({}),[j,b]=(0,a.useState)(""),[y,N]=(0,a.useState)(!1),[w,S]=(0,a.useState)(!1),[k,T]=(0,a.useState)(!1),[C,_]=(0,a.useState)(null),{toast:O}=(0,h.pm)(),{data:E,loading:I,refetch:A}=(0,p.aM)(g.OP),[R]=(0,x.D)(g.Ep),[D]=(0,x.D)(g.fA);(0,a.useEffect)(()=>{var r,a,n;if(null==E?void 0:null===(r=E.platform_configurationsPagination)||void 0===r?void 0:r.items){let r=E.platform_configurationsPagination.items.find(e=>"theme_config"===e.config_key);r&&(_(r.id),(null===(a=r.config_value)||void 0===a?void 0:a.light)&&t({...e,...r.config_value.light}),(null===(n=r.config_value)||void 0===n?void 0:n.dark)&&v({...s,...r.config_value.dark}))}},[E]);let F=(s,r)=>{t({...e,[s]:r})},Z=(e,t)=>{v({...s,[e]:t})},P=e=>{let t={},s={},r=e.match(RegExp(":root\\s*\\{([^}]+)\\}","s"));if(r){let e=r[1].match(/--[\w-]+:\s*[^;]+/g);e&&e.forEach(e=>{let[s,...r]=e.split(":"),a=r.join(":").trim();t[s.trim()]=a})}let a=e.match(RegExp("\\.dark\\s*\\{([^}]+)\\}","s"));if(a){let e=a[1].match(/--[\w-]+:\s*[^;]+/g);e&&e.forEach(e=>{let[t,...r]=e.split(":"),a=r.join(":").trim();s[t.trim()]=a})}return{light:t,dark:s}},M=async()=>{try{let n={config_key:"theme_config",config_value:{light:e,dark:s},description:"Platform theme configuration"};if(C)await D({variables:{id:C,data:n}});else{var t,r,a;let e=await R({variables:{data:n}});_(null===(a=e.data)||void 0===a?void 0:null===(r=a.platform_configurationsCreateOne)||void 0===r?void 0:null===(t=r.item)||void 0===t?void 0:t.id)}await A(),O({title:"Configuration saved",description:"Theme configuration has been saved successfully.",duration:3e3})}catch(e){console.error("Error saving configuration:",e),O({title:"Error",description:"Failed to save configuration. Please try again.",duration:3e3,variant:"destructive"})}};return(0,r.jsxs)("div",{className:"h-full flex-1 flex-col space-y-8 p-8",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between space-y-2",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"text-2xl font-bold tracking-tight",children:"IMP Configurations"}),(0,r.jsx)("p",{className:"text-muted-foreground",children:"Manage platform-wide theme variables and styling."})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsxs)(o.z,{onClick:()=>{t({}),v({}),O({title:"Theme reset",description:"Both themes have been reset to default (empty).",duration:3e3})},variant:"outline",children:[(0,r.jsx)(u.Z,{className:"mr-2 h-4 w-4"}),"Reset Theme"]}),(0,r.jsx)(o.z,{onClick:M,children:"Save Configuration"})]})]}),(0,r.jsxs)(n.Zb,{children:[(0,r.jsxs)(n.Ol,{children:[(0,r.jsx)(n.ll,{children:"Import Theme CSS"}),(0,r.jsx)(n.SZ,{children:"Paste your CSS theme code below to automatically populate all fields"})]}),(0,r.jsxs)(n.aY,{className:"space-y-4",children:[(0,r.jsx)(c.g,{placeholder:"Paste your CSS theme here (including :root and .dark blocks)...",value:j,onChange:e=>b(e.target.value),className:"font-mono text-xs min-h-[200px]"}),(0,r.jsx)(o.z,{onClick:()=>{T(!0);let r=P(j);setTimeout(()=>{Object.keys(r.light).length>0&&(t({...e,...r.light}),N(!0)),Object.keys(r.dark).length>0&&(v({...s,...r.dark}),S(!0)),b(""),T(!1),O({title:"Theme imported successfully!",description:"Updated ".concat(Object.keys(r.light).length+Object.keys(r.dark).length," variables."),duration:3e3})},500)},disabled:!j.trim()||k,className:"relative",children:k?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"opacity-0",children:"Import Theme"}),(0,r.jsx)("div",{className:"absolute inset-0 flex items-center justify-center",children:(0,r.jsx)("div",{className:"h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"})})]}):"Import Theme"})]})]}),(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsx)(d.zF,{open:y,onOpenChange:N,children:(0,r.jsxs)(n.Zb,{children:[(0,r.jsx)(d.wy,{asChild:!0,children:(0,r.jsx)(n.Ol,{className:"cursor-pointer hover:bg-accent/50 transition-colors",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)(n.ll,{className:"flex items-center gap-2",children:["Light Theme Variables",Object.keys(e).length>0&&(0,r.jsx)(f.Z,{className:"h-4 w-4 text-primary"})]}),(0,r.jsx)(n.SZ,{children:"Configure CSS variables for the light theme"})]}),(0,r.jsx)(m.Z,{className:"h-5 w-5 transition-transform ".concat(y?"rotate-180":"")})]})})}),(0,r.jsx)(d.Fw,{children:(0,r.jsx)(n.aY,{className:"grid gap-4 md:grid-cols-2 pt-0",children:Object.entries(e).map(e=>{let[t,s]=e;return(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(l._,{htmlFor:"light-".concat(t),className:"text-xs font-mono",children:t}),(0,r.jsx)(i.I,{id:"light-".concat(t),value:s,onChange:e=>F(t,e.target.value),className:"font-mono text-xs"})]},t)})})})]})}),(0,r.jsx)(d.zF,{open:w,onOpenChange:S,children:(0,r.jsxs)(n.Zb,{children:[(0,r.jsx)(d.wy,{asChild:!0,children:(0,r.jsx)(n.Ol,{className:"cursor-pointer hover:bg-accent/50 transition-colors",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)(n.ll,{className:"flex items-center gap-2",children:["Dark Theme Variables",Object.keys(s).length>0&&(0,r.jsx)(f.Z,{className:"h-4 w-4 text-primary"})]}),(0,r.jsx)(n.SZ,{children:"Configure CSS variables for the dark theme"})]}),(0,r.jsx)(m.Z,{className:"h-5 w-5 transition-transform ".concat(w?"rotate-180":"")})]})})}),(0,r.jsx)(d.Fw,{children:(0,r.jsx)(n.aY,{className:"grid gap-4 md:grid-cols-2 pt-0",children:Object.entries(s).map(e=>{let[t,s]=e;return(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(l._,{htmlFor:"dark-".concat(t),className:"text-xs font-mono",children:t}),(0,r.jsx)(i.I,{id:"dark-".concat(t),value:s,onChange:e=>Z(t,e.target.value),className:"font-mono text-xs"})]},t)})})})]})})]})]})}},66070:function(e,t,s){"use strict";s.d(t,{Ol:function(){return l},SZ:function(){return c},Zb:function(){return i},aY:function(){return d},eW:function(){return u},ll:function(){return o}});var r=s(57437),a=s(2265),n=s(94508);let i=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,n.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",s),...a})});i.displayName="Card";let l=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,n.cn)("flex flex-col space-y-1.5 p-6",s),...a})});l.displayName="CardHeader";let o=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("h3",{ref:t,className:(0,n.cn)("text-2xl font-semibold leading-none tracking-tight",s),...a})});o.displayName="CardTitle";let c=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("p",{ref:t,className:(0,n.cn)("text-sm text-muted-foreground",s),...a})});c.displayName="CardDescription";let d=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,n.cn)("p-6 pt-0",s),...a})});d.displayName="CardContent";let u=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,n.cn)("flex items-center p-6 pt-0",s),...a})});u.displayName="CardFooter"},74928:function(e,t,s){"use strict";s.d(t,{Fw:function(){return i},wy:function(){return n},zF:function(){return a}});var r=s(88985);let a=r.fC,n=r.wy,i=r.Fw},95186:function(e,t,s){"use strict";s.d(t,{I:function(){return i}});var r=s(57437),a=s(2265),n=s(94508);let i=a.forwardRef((e,t)=>{let{className:s,type:a,...i}=e;return(0,r.jsx)("input",{type:a,className:(0,n.cn)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",s),ref:t,...i})});i.displayName="Input"},26815:function(e,t,s){"use strict";s.d(t,{_:function(){return c}});var r=s(57437),a=s(6394),n=s(90535),i=s(2265),l=s(94508);let o=(0,n.j)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),c=i.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,r.jsx)(a.f,{ref:t,className:(0,l.cn)(o(),s),...n})});c.displayName=a.f.displayName},76818:function(e,t,s){"use strict";s.d(t,{g:function(){return i}});var r=s(57437),a=s(2265),n=s(94508);let i=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("textarea",{className:(0,n.cn)("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",s),ref:t,...a})});i.displayName="Textarea"},77992:function(e,t,s){"use strict";s.d(t,{Am:function(){return u},pm:function(){return f}});var r=s(2265);let a=0,n=new Map,i=e=>{if(n.has(e))return;let t=setTimeout(()=>{n.delete(e),d({type:"REMOVE_TOAST",toastId:e})},1e6);n.set(e,t)},l=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:s}=t;return s?i(s):e.toasts.forEach(e=>{i(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===s||void 0===s?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},o=[],c={toasts:[]};function d(e){c=l(c,e),o.forEach(e=>{e(c)})}function u(e){let{...t}=e,s=(a=(a+1)%Number.MAX_SAFE_INTEGER).toString(),r=()=>d({type:"DISMISS_TOAST",toastId:s});return d({type:"ADD_TOAST",toast:{...t,id:s,open:!0,onOpenChange:e=>{e||r()}}}),{id:s,dismiss:r,update:e=>d({type:"UPDATE_TOAST",toast:{...e,id:s}})}}function f(){let[e,t]=r.useState(c);return r.useEffect(()=>(o.push(t),()=>{let e=o.indexOf(t);e>-1&&o.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>d({type:"DISMISS_TOAST",toastId:e})}}}},function(e){e.O(0,[9851,7629,7093,6148,847,1942,513,6373,2971,2117,1744],function(){return e(e.s=37999)}),_N_E=e.O()}]);
2
+ //# sourceMappingURL=page-876d1d43a9cc36e4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/chunks/app/(application)/configuration/page-876d1d43a9cc36e4.js","mappings":"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","sources":["webpack://_N_E/?981d","webpack://_N_E/./app/(application)/configuration/page.tsx","webpack://_N_E/./components/ui/card.tsx","webpack://_N_E/./components/ui/collapsible.tsx","webpack://_N_E/./components/ui/input.tsx","webpack://_N_E/./components/ui/label.tsx","webpack://_N_E/./components/ui/textarea.tsx","webpack://_N_E/./components/ui/use-toast.ts"],"sourcesContent":["import(/* webpackMode: \"eager\" */ \"/home/runner/work/exulu-frontend/exulu-frontend/app/(application)/configuration/page.tsx\");\n","\"use client\";\n\nimport { useState, useEffect } from \"react\";\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { Button } from \"@/components/ui/button\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from \"@/components/ui/collapsible\";\nimport { ChevronDown, CheckCircle2, RotateCcw } from \"lucide-react\";\nimport { useToast } from \"@/components/ui/use-toast\";\nimport { useMutation, useQuery } from \"@apollo/client\";\nimport {\n GET_PLATFORM_CONFIGURATIONS,\n CREATE_PLATFORM_CONFIGURATION,\n UPDATE_PLATFORM_CONFIGURATION,\n} from \"@/queries/queries\";\n\nexport default function ConfigurationPage() {\n const [lightTheme, setLightTheme] = useState({});\n const [darkTheme, setDarkTheme] = useState({});\n const [cssInput, setCssInput] = useState(\"\");\n const [lightOpen, setLightOpen] = useState(false);\n const [darkOpen, setDarkOpen] = useState(false);\n const [isImporting, setIsImporting] = useState(false);\n const [configId, setConfigId] = useState<string | null>(null);\n const { toast } = useToast();\n\n // Fetch all platform configurations\n const { data, loading, refetch } = useQuery(GET_PLATFORM_CONFIGURATIONS);\n\n const [createConfig] = useMutation(CREATE_PLATFORM_CONFIGURATION);\n const [updateConfig] = useMutation(UPDATE_PLATFORM_CONFIGURATION);\n\n // Load existing configuration when data is fetched\n useEffect(() => {\n if (data?.platform_configurationsPagination?.items) {\n // Find the theme_config configuration\n const themeConfig = data.platform_configurationsPagination.items.find(\n (config: any) => config.config_key === \"theme_config\"\n );\n\n if (themeConfig) {\n setConfigId(themeConfig.id);\n\n if (themeConfig.config_value?.light) {\n setLightTheme({ ...lightTheme, ...themeConfig.config_value.light });\n }\n if (themeConfig.config_value?.dark) {\n setDarkTheme({ ...darkTheme, ...themeConfig.config_value.dark });\n }\n }\n }\n }, [data]);\n\n const handleLightThemeChange = (key: string, value: string) => {\n setLightTheme({ ...lightTheme, [key]: value });\n };\n\n const handleDarkThemeChange = (key: string, value: string) => {\n setDarkTheme({ ...darkTheme, [key]: value });\n };\n\n const parseCssTheme = (css: string) => {\n const light: Record<string, string> = {};\n const dark: Record<string, string> = {};\n\n // Extract :root block\n const rootMatch = css.match(/:root\\s*\\{([^}]+)\\}/s);\n if (rootMatch) {\n const rootContent = rootMatch[1];\n const variables = rootContent.match(/--[\\w-]+:\\s*[^;]+/g);\n if (variables) {\n variables.forEach((variable) => {\n const [key, ...valueParts] = variable.split(\":\");\n const value = valueParts.join(\":\").trim();\n light[key.trim()] = value;\n });\n }\n }\n\n // Extract .dark block\n const darkMatch = css.match(/\\.dark\\s*\\{([^}]+)\\}/s);\n if (darkMatch) {\n const darkContent = darkMatch[1];\n const variables = darkContent.match(/--[\\w-]+:\\s*[^;]+/g);\n if (variables) {\n variables.forEach((variable) => {\n const [key, ...valueParts] = variable.split(\":\");\n const value = valueParts.join(\":\").trim();\n dark[key.trim()] = value;\n });\n }\n }\n\n return { light, dark };\n };\n\n const handleImportCss = () => {\n setIsImporting(true);\n const parsed = parseCssTheme(cssInput);\n\n setTimeout(() => {\n if (Object.keys(parsed.light).length > 0) {\n setLightTheme({ ...lightTheme, ...parsed.light });\n setLightOpen(true);\n }\n\n if (Object.keys(parsed.dark).length > 0) {\n setDarkTheme({ ...darkTheme, ...parsed.dark });\n setDarkOpen(true);\n }\n\n setCssInput(\"\");\n setIsImporting(false);\n\n toast({\n title: \"Theme imported successfully!\",\n description: `Updated ${Object.keys(parsed.light).length + Object.keys(parsed.dark).length} variables.`,\n duration: 3000,\n });\n }, 500);\n };\n\n const handleReset = () => {\n setLightTheme({});\n setDarkTheme({});\n toast({\n title: \"Theme reset\",\n description: \"Both themes have been reset to default (empty).\",\n duration: 3000,\n });\n };\n\n const handleSave = async () => {\n try {\n const configData = {\n config_key: \"theme_config\",\n config_value: {\n light: lightTheme,\n dark: darkTheme,\n },\n description: \"Platform theme configuration\",\n };\n\n if (configId) {\n // Update existing configuration\n await updateConfig({\n variables: {\n id: configId,\n data: configData,\n },\n });\n } else {\n // Create new configuration\n const result = await createConfig({\n variables: {\n data: configData,\n },\n });\n setConfigId(result.data?.platform_configurationsCreateOne?.item?.id);\n }\n\n await refetch();\n\n toast({\n title: \"Configuration saved\",\n description: \"Theme configuration has been saved successfully.\",\n duration: 3000,\n });\n } catch (error) {\n console.error(\"Error saving configuration:\", error);\n toast({\n title: \"Error\",\n description: \"Failed to save configuration. Please try again.\",\n duration: 3000,\n variant: \"destructive\",\n });\n }\n };\n\n return (\n <div className=\"h-full flex-1 flex-col space-y-8 p-8\">\n <div className=\"flex items-center justify-between space-y-2\">\n <div>\n <h2 className=\"text-2xl font-bold tracking-tight\">IMP Configurations</h2>\n <p className=\"text-muted-foreground\">\n Manage platform-wide theme variables and styling.\n </p>\n </div>\n <div className=\"flex gap-2\">\n <Button onClick={handleReset} variant=\"outline\">\n <RotateCcw className=\"mr-2 h-4 w-4\" />\n Reset Theme\n </Button>\n <Button onClick={handleSave}>Save Configuration</Button>\n </div>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Import Theme CSS</CardTitle>\n <CardDescription>\n Paste your CSS theme code below to automatically populate all fields\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <Textarea\n placeholder=\"Paste your CSS theme here (including :root and .dark blocks)...\"\n value={cssInput}\n onChange={(e) => setCssInput(e.target.value)}\n className=\"font-mono text-xs min-h-[200px]\"\n />\n <Button\n onClick={handleImportCss}\n disabled={!cssInput.trim() || isImporting}\n className=\"relative\"\n >\n {isImporting ? (\n <>\n <span className=\"opacity-0\">Import Theme</span>\n <div className=\"absolute inset-0 flex items-center justify-center\">\n <div className=\"h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent\" />\n </div>\n </>\n ) : (\n \"Import Theme\"\n )}\n </Button>\n </CardContent>\n </Card>\n\n <div className=\"space-y-4\">\n <Collapsible open={lightOpen} onOpenChange={setLightOpen}>\n <Card>\n <CollapsibleTrigger asChild>\n <CardHeader className=\"cursor-pointer hover:bg-accent/50 transition-colors\">\n <div className=\"flex items-center justify-between\">\n <div>\n <CardTitle className=\"flex items-center gap-2\">\n Light Theme Variables\n {Object.keys(lightTheme).length > 0 && (\n <CheckCircle2 className=\"h-4 w-4 text-primary\" />\n )}\n </CardTitle>\n <CardDescription>\n Configure CSS variables for the light theme\n </CardDescription>\n </div>\n <ChevronDown className={`h-5 w-5 transition-transform ${lightOpen ? 'rotate-180' : ''}`} />\n </div>\n </CardHeader>\n </CollapsibleTrigger>\n <CollapsibleContent>\n <CardContent className=\"grid gap-4 md:grid-cols-2 pt-0\">\n {Object.entries(lightTheme).map(([key, value]) => (\n <div key={key} className=\"space-y-2\">\n <Label htmlFor={`light-${key}`} className=\"text-xs font-mono\">\n {key}\n </Label>\n <Input\n id={`light-${key}`}\n value={value as string}\n onChange={(e) => handleLightThemeChange(key, e.target.value)}\n className=\"font-mono text-xs\"\n />\n </div>\n ))}\n </CardContent>\n </CollapsibleContent>\n </Card>\n </Collapsible>\n\n <Collapsible open={darkOpen} onOpenChange={setDarkOpen}>\n <Card>\n <CollapsibleTrigger asChild>\n <CardHeader className=\"cursor-pointer hover:bg-accent/50 transition-colors\">\n <div className=\"flex items-center justify-between\">\n <div>\n <CardTitle className=\"flex items-center gap-2\">\n Dark Theme Variables\n {Object.keys(darkTheme).length > 0 && (\n <CheckCircle2 className=\"h-4 w-4 text-primary\" />\n )}\n </CardTitle>\n <CardDescription>\n Configure CSS variables for the dark theme\n </CardDescription>\n </div>\n <ChevronDown className={`h-5 w-5 transition-transform ${darkOpen ? 'rotate-180' : ''}`} />\n </div>\n </CardHeader>\n </CollapsibleTrigger>\n <CollapsibleContent>\n <CardContent className=\"grid gap-4 md:grid-cols-2 pt-0\">\n {Object.entries(darkTheme).map(([key, value]) => (\n <div key={key} className=\"space-y-2\">\n <Label htmlFor={`dark-${key}`} className=\"text-xs font-mono\">\n {key}\n </Label>\n <Input\n id={`dark-${key}`}\n value={value as string}\n onChange={(e) => handleDarkThemeChange(key, e.target.value)}\n className=\"font-mono text-xs\"\n />\n </div>\n ))}\n </CardContent>\n </CollapsibleContent>\n </Card>\n </Collapsible>\n </div>\n </div>\n );\n}\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-lg border bg-card text-card-foreground shadow-sm\",\n className,\n )}\n {...props}\n />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n \"text-2xl font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n","\"use client\";\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\n\nconst Collapsible = CollapsiblePrimitive.Root;\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n","\"use client\";\n\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n);\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n","\"use client\";\n\n// Inspired by react-hot-toast library\nimport * as React from \"react\";\n\nimport type { ToastActionElement, ToastProps } from \"@/components/ui/toast\";\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"];\n toast: ToasterToast;\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t,\n ),\n };\n\n case \"DISMISS_TOAST\": {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t,\n ),\n };\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, \"id\">;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: \"UPDATE_TOAST\",\n toast: { ...props, id },\n });\n const dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id });\n\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n };\n}\n\nexport { useToast, toast };\n"],"names":["Promise","resolve","then","__webpack_require__","bind","ConfigurationPage","lightTheme","setLightTheme","useState","darkTheme","setDarkTheme","cssInput","setCssInput","lightOpen","setLightOpen","darkOpen","setDarkOpen","isImporting","setIsImporting","configId","setConfigId","toast","useToast","data","loading","refetch","useQuery","GET_PLATFORM_CONFIGURATIONS","createConfig","useMutation","CREATE_PLATFORM_CONFIGURATION","updateConfig","UPDATE_PLATFORM_CONFIGURATION","useEffect","themeConfig","platform_configurationsPagination","items","find","config","config_key","id","config_value","light","dark","handleLightThemeChange","key","value","handleDarkThemeChange","parseCssTheme","rootMatch","css","match","RegExp","variables","rootContent","forEach","valueParts","variable","split","join","trim","darkMatch","darkContent","handleSave","configData","description","result","platform_configurationsCreateOne","item","title","duration","error","console","variant","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsxs","div","className","jsx","h2","p","Button","onClick","RotateCcw","Card","CardHeader","CardTitle","CardDescription","CardContent","Textarea","placeholder","onChange","e","target","parsed","setTimeout","Object","keys","length","concat","disabled","Fragment","span","Collapsible","open","onOpenChange","CollapsibleTrigger","asChild","CheckCircle2","ChevronDown","CollapsibleContent","entries","map","param","Label","htmlFor","Input","React","ref","props","cn","displayName","h3","CardFooter","CollapsiblePrimitive","type","input","labelVariants","cva","LabelPrimitive","textarea","count","toastTimeouts","Map","addToRemoveQueue","has","toastId","timeout","delete","dispatch","set","reducer","state","action","toasts","slice","t","undefined","filter","listeners","memoryState","listener","Number","MAX_SAFE_INTEGER","toString","dismiss","update","setState","push","index","indexOf","splice"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4506],{54643:function(e,t,r){Promise.resolve().then(r.bind(r,34984))},34984:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return b},dynamic:function(){return j}});var a=r(57437),s=r(5341),n=r(2265),l=r(91048),o=r(7211),i=r(66070),d=r(93022),c=r(44372),u=r(21047),f=r(70525),m=r(3085);function x(e){let{title:t,currentValue:r,previousValue:s,isLoading:n}=e;if(n)return(0,a.jsxs)(i.Zb,{className:"animate-pulse",children:[(0,a.jsxs)(i.Ol,{className:"flex flex-row items-center justify-between space-y-0 pb-3",children:[(0,a.jsx)(i.ll,{className:"text-sm font-medium text-slate-700 dark:text-slate-300",children:t}),(0,a.jsx)("div",{className:"p-2 rounded-full",children:(0,a.jsx)("div",{className:"h-4 w-4 rounded"})})]}),(0,a.jsxs)(i.aY,{children:[(0,a.jsx)(d.O,{className:"h-8 w-24 mb-3"}),(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)(d.O,{className:"h-3 w-28"}),(0,a.jsx)(d.O,{className:"h-3 w-20"})]})]})]});let l=s>0?(r-s)/s*100:0,o=l>0,c=0===l,x=c?u.Z:o?f.Z:m.Z,h=c?"text-muted-foreground":o?"text-green-600":"text-red-600";return(0,a.jsxs)(i.Zb,{className:"hover:shadow-lg transition-all duration-300 hover:-translate-y-1",children:[(0,a.jsxs)(i.Ol,{className:"flex flex-row items-center justify-between space-y-0 pb-3",children:[(0,a.jsx)(i.ll,{className:"text-sm font-medium text-slate-700 dark:text-slate-300",children:t}),(0,a.jsx)("div",{className:"p-2 rounded-full ".concat(c?"bg-gray-200 dark:bg-gray-700":o?"bg-green-100 dark:bg-green-900/30":"bg-red-100 dark:bg-red-900/30"),children:(0,a.jsx)(x,{className:"h-4 w-4 ".concat(h)})})]}),(0,a.jsxs)(i.aY,{children:[(0,a.jsx)("div",{className:"text-3xl font-bold bg-gradient-to-r from-slate-900 to-slate-700 dark:from-slate-100 dark:to-slate-300 bg-clip-text text-transparent mb-2",children:r.toLocaleString()}),(0,a.jsxs)("p",{className:"text-xs text-slate-600 dark:text-slate-400",children:[(0,a.jsx)("span",{className:"font-medium ".concat(h),children:c?"No change":"".concat(Math.abs(l).toFixed(1),"% ").concat(o?"increase":"decrease")}),(0,a.jsx)("br",{}),(0,a.jsxs)("span",{className:"text-slate-500 dark:text-slate-500",children:["vs 7-day avg: ",s.toLocaleString()]})]})]})]})}function h(e){let{query:t,entity:r,title:l}=e,i=(0,n.useMemo)(()=>{let e=new Date;return{now:e.toISOString(),twentyFourHoursAgo:(0,c.b)(e,24).toISOString(),sevenDaysAgo:(0,s.k)(e,7).toISOString()}},[]),{data:d,loading:u}=(0,o.aM)(t,{variables:{from:i.twentyFourHoursAgo,to:i.now}}),{data:f,loading:m}=(0,o.aM)(t,{variables:{from:i.sevenDaysAgo,to:i.now}}),h=e=>e&&Array.isArray(e)?e.reduce((e,t)=>e+(t.count||0),0):0,p=h(null==d?void 0:d["".concat(r,"Statistics")]),g=Math.round(h(null==f?void 0:f["".concat(r,"Statistics")])/7);return(0,a.jsx)(x,{title:"".concat(l," (24h)"),currentValue:p,previousValue:g,isLoading:u})}var p=r(21409),g=r(52896),v=r(73450),y=r(27689);let j="force-dynamic";function b(){let[e,t]=(0,n.useState)({from:(0,s.k)(new Date,14),to:new Date}),[r,o]=(0,n.useState)("AGENT_RUN"),[i,d]=(0,n.useState)("count"),[c,u]=(0,n.useState)("label");return(0,a.jsxs)("div",{className:"flex-1 flex flex-col p-8 pt-6 h-screen",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-8",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("h2",{className:"text-4xl font-bold tracking-tight bg-clip-text",children:"Analytics Dashboard"}),(0,a.jsx)("p",{className:"text-lg",children:"Monitor your AI workflows and performance metrics."})]}),(0,a.jsx)("div",{className:"flex items-center space-x-2",children:(0,a.jsx)(p.z,{dateRange:e,onDateRangeChange:t,maxDays:30})})]}),(0,a.jsx)("div",{className:"mb-8",children:(0,a.jsxs)("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-5",children:[(0,a.jsx)(h,{query:y.W6,entity:"agent_sessions",title:"Agent Sessions"}),(0,a.jsx)(h,{query:y.tK,entity:"tracking",title:"Agent Calls"}),(0,a.jsx)(h,{query:y.Hk,entity:"tracking",title:"Token Usage"}),(0,a.jsx)(h,{query:y.Tj,entity:"jobs",title:"Workflow Runs"}),(0,a.jsx)(h,{query:y.kZ,entity:"tracking",title:"Function Calls"})]})}),(0,a.jsxs)("div",{className:"flex-1 grid gap-6 md:grid-cols-3 min-h-0",children:[(0,a.jsx)("div",{className:"rounded-lg border md:col-span-2 p-6 flex flex-col",children:(0,a.jsx)(g.q,{dateRange:e,selectedType:r,onTypeChange:o,onUnitChange:d,unit:i,dataTypes:[l.h.CONTEXT_RETRIEVE,l.h.SOURCE_UPDATE,l.h.EMBEDDER_UPSERT,l.h.EMBEDDER_GENERATE,l.h.EMBEDDER_DELETE,l.h.WORKFLOW_RUN,l.h.CONTEXT_UPSERT,l.h.TOOL_CALL,l.h.AGENT_RUN]})}),(0,a.jsx)("div",{className:"rounded-lg border p-6 flex flex-col",children:(0,a.jsx)(v.Y,{groupByOptions:[{value:"label",label:"Label"},{value:"user",label:"User"},{value:"role",label:"Role"}],dateRange:e,selectedType:r,groupBy:c,onGroupByChange:u})})]})]})}},21409:function(e,t,r){"use strict";r.d(t,{z:function(){return g}});var a=r(57437),s=r(2265),n=r(20653),l=r(31303),o=r(59121),i=r(27107),d=r(94508),c=r(62869),u=r(92451),f=r(10407),m=r(98235);function x(e){let{className:t,classNames:r,showOutsideDays:s=!0,...n}=e;return(0,a.jsx)(m._W,{showOutsideDays:s,className:(0,d.cn)("p-3",t),classNames:{months:"flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0",month:"space-y-4",caption:"flex justify-center pt-1 relative items-center",caption_label:"text-sm font-medium",nav:"space-x-1 flex items-center",nav_button:(0,d.cn)((0,c.d)({variant:"outline"}),"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"),nav_button_previous:"absolute left-1",nav_button_next:"absolute right-1",table:"w-full border-collapse space-y-1",head_row:"flex",head_cell:"text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]",row:"flex w-full mt-2",cell:"h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20",day:(0,d.cn)((0,c.d)({variant:"ghost"}),"h-9 w-9 p-0 font-normal aria-selected:opacity-100"),day_range_end:"day-range-end",day_selected:"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",day_today:"bg-accent text-accent-foreground",day_outside:"day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30",day_disabled:"text-muted-foreground opacity-50",day_range_middle:"aria-selected:bg-accent aria-selected:text-accent-foreground",day_hidden:"invisible",...r},components:{IconLeft:e=>{let{...t}=e;return(0,a.jsx)(u.Z,{className:"size-4"})},IconRight:e=>{let{...t}=e;return(0,a.jsx)(f.Z,{className:"size-4"})}},...n})}x.displayName="Calendar";var h=r(77992),p=r(57054);function g(e){let{dateRange:t,onDateRangeChange:r,className:u,maxDays:f=30}=e,{toast:m}=(0,h.pm)(),g=s.useMemo(()=>{if(!(null==t?void 0:t.from))return[];let e=t.from;return[{before:(0,o.E)(e,-f)},{after:(0,o.E)(e,f)}]},[null==t?void 0:t.from,f]);return(0,a.jsx)("div",{className:(0,d.cn)("grid gap-2",u),children:(0,a.jsxs)(p.J2,{children:[(0,a.jsx)(p.xo,{asChild:!0,children:(0,a.jsxs)(c.z,{id:"date",variant:"outline",className:(0,d.cn)("w-[260px] justify-start text-left font-normal",!t&&"text-muted-foreground"),children:[(0,a.jsx)(n.Que,{className:"mr-2 h-4 w-4"}),(null==t?void 0:t.from)?t.to?(0,a.jsxs)(a.Fragment,{children:[(0,i.WU)(t.from,"LLL dd, y")," -"," ",(0,i.WU)(t.to,"LLL dd, y")]}):(0,i.WU)(t.from,"LLL dd, y"):(0,a.jsx)("span",{children:"Pick a date range"})]})}),(0,a.jsxs)(p.yk,{className:"w-auto p-0",align:"end",children:[(0,a.jsx)(x,{initialFocus:!0,mode:"range",defaultMonth:null==t?void 0:t.from,selected:t,onSelect:e=>{if((null==e?void 0:e.from)&&(null==e?void 0:e.to)&&(0,l.j)(e.to,e.from)>f){m({title:"Date range too large",description:"Please select a date range of ".concat(f," days or less."),variant:"destructive"});return}r(e)},disabled:g,numberOfMonths:2}),(0,a.jsxs)("div",{className:"p-3 pt-0 text-xs text-muted-foreground border-t",children:["Maximum range: ",f," days"]})]})]})})}},73450:function(e,t,r){"use strict";r.d(t,{Y:function(){return x}});var a=r(57437),s=r(2265),n=r(7211),l=r(53647),o=r(93022),i=r(27689),d=r(75169),c=r(3574),u=r(20407),f=r(57969);let m=["hsl(var(--chart-1))","hsl(var(--chart-2))","hsl(var(--chart-3))","hsl(var(--chart-4))","hsl(var(--chart-5))","hsl(var(--chart-6))","hsl(var(--chart-7))","hsl(var(--chart-8))","hsl(var(--chart-9))","hsl(var(--chart-10))"];function x(e){var t,r;let{groupByOptions:x,dateRange:h,selectedType:p,groupBy:g,onGroupByChange:v}=e,{data:y,loading:j,error:b}=(0,n.aM)(i.YH,{variables:{type:p,groupBy:g,from:null==h?void 0:null===(t=h.from)||void 0===t?void 0:t.toISOString(),to:null==h?void 0:null===(r=h.to)||void 0===r?void 0:r.toISOString()},skip:!(null==h?void 0:h.from)||!(null==h?void 0:h.to)}),{chartData:N,chartConfig:w}=s.useMemo(()=>{if(!(null==y?void 0:y.trackingStatistics))return{chartData:[],chartConfig:{}};let e=y.trackingStatistics.map((e,t)=>{var r;return{name:(r=e.group)?r.replace(/_/g," ").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" "):"Unknown",value:e.count,fill:m[t%m.length]}}).sort((e,t)=>t.value-e.value),t=e.reduce((e,t,r)=>(e[t.name]={label:t.name,color:m[r%m.length]},e),{});return{chartData:e,chartConfig:t}},[y]);return(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsx)("h3",{className:"text-xl font-semibold",children:"Distribution"}),x.length>0&&(0,a.jsx)("div",{className:"w-full max-w-[150px]",children:(0,a.jsxs)(l.Ph,{value:g,onValueChange:v,children:[(0,a.jsx)(l.i4,{children:(0,a.jsx)(l.ki,{placeholder:"Group by"})}),(0,a.jsx)(l.Bw,{children:x.map(e=>(0,a.jsx)(l.Ql,{value:e.value,children:e.label},e.value))})]})})]}),(0,a.jsx)("div",{className:"flex-1 min-h-0",children:j?(0,a.jsx)("div",{className:"space-y-4 h-full",children:(0,a.jsx)(o.O,{className:"h-full w-full"})}):b?(0,a.jsxs)("div",{className:"flex items-center justify-center h-full text-red-500",children:["Error loading distribution data: ",b.message]}):0===N.length?(0,a.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-center",children:"No data available for the selected date range, type, and grouping."}):(0,a.jsx)(f.BO,{config:w,className:"h-full w-full",children:(0,a.jsxs)(d.u,{children:[(0,a.jsx)("defs",{children:N.map((e,t)=>(0,a.jsxs)("radialGradient",{id:"gradient-".concat(e.name.replace(/\s+/g,"-")),cx:"50%",cy:"50%",r:"50%",children:[(0,a.jsx)("stop",{offset:"0%",stopColor:e.fill,stopOpacity:1}),(0,a.jsx)("stop",{offset:"100%",stopColor:e.fill,stopOpacity:.8})]},"gradient-".concat(t)))}),(0,a.jsx)(c.b,{data:N,cx:"50%",cy:"50%",labelLine:!1,label:e=>{let{cx:t,cy:r,midAngle:s,innerRadius:n,outerRadius:l,percent:o,index:i}=e;if(o<.05)return null;let d=Math.PI/180,c=n+(l-n)*.5,u=t+c*Math.cos(-s*d);return(0,a.jsx)("text",{x:u,y:r+c*Math.sin(-s*d),fill:"black",textAnchor:u>t?"start":"end",dominantBaseline:"central",fontSize:"12",fontWeight:"600",paintOrder:"stroke",children:"".concat((100*o).toFixed(0),"%")})},outerRadius:"75%",innerRadius:"45%",dataKey:"value",strokeWidth:3,children:N.map((e,t)=>(0,a.jsx)(u.b,{fill:"url(#gradient-".concat(e.name.replace(/\s+/g,"-"),")")},"cell-".concat(t)))}),(0,a.jsx)(f.h7,{content:(0,a.jsx)(f.dg,{nameKey:"name",hideLabel:!0,formatter:(e,t)=>["number"==typeof e?e.toLocaleString():e," "+String(t)]})})]})})})]})}},52896:function(e,t,r){"use strict";r.d(t,{q:function(){return j}});var a=r(57437),s=r(2265),n=r(7211),l=r(53647),o=r(93022),i=r(27689),d=r(5481),c=r(56940),u=r(97059),f=r(62994),m=r(23263),x=r(57969),h=r(27107),p=r(56942),g=r(54886);function v(e){return e.split("_").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ")}let y={count:{label:"Count",color:"hsl(var(--muted-foreground))"}};function j(e){var t,r;let{dataTypes:j,dateRange:b,selectedType:N,onTypeChange:w,onUnitChange:E,unit:k}=e,{data:_,loading:O,error:T}=(0,n.aM)(i.j9,{variables:{type:N,name:k,from:null==b?void 0:null===(t=b.from)||void 0===t?void 0:t.toISOString(),to:null==b?void 0:null===(r=b.to)||void 0===r?void 0:r.toISOString()},skip:!(null==b?void 0:b.from)||!(null==b?void 0:b.to)}),S=s.useMemo(()=>{if(!(null==_?void 0:_.trackingStatistics)||!(null==b?void 0:b.from)||!(null==b?void 0:b.to))return[];let e=new Map;return _.trackingStatistics.forEach(t=>{let r=new Date("number"==typeof t.group?t.group:Number(t.group)),a=(0,h.WU)((0,p.b)(r),"yyyy-MM-dd");e.set(a,t.count)}),(0,g.D)({start:(0,p.b)(b.from),end:(0,p.b)(b.to)}).map(t=>{let r=(0,h.WU)(t,"yyyy-MM-dd"),a=e.get(r)||0;return{date:t.getTime(),count:a,formattedDate:(0,h.WU)(t,"MMM dd"),dateObj:t}})},[_,b]);return(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsx)("h3",{className:"text-xl font-semibold",children:"Time Series Analytics"}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("div",{className:"w-[150px]",children:(0,a.jsxs)(l.Ph,{value:N,onValueChange:e=>w(e),children:[(0,a.jsx)(l.i4,{children:(0,a.jsx)(l.ki,{placeholder:"Select data type"})}),(0,a.jsx)(l.Bw,{children:null==j?void 0:j.map(e=>(0,a.jsx)(l.Ql,{value:e,children:v(e)+" "},e))})]})}),(0,a.jsx)("div",{className:"w-[150px]",children:(0,a.jsxs)(l.Ph,{value:k,onValueChange:e=>E(e),children:[(0,a.jsx)(l.i4,{children:(0,a.jsx)(l.ki,{placeholder:"Select unit"})}),(0,a.jsxs)(l.Bw,{children:[(0,a.jsx)(l.Ql,{value:"count",children:"Count"}),(0,a.jsx)(l.Ql,{value:"tokens",children:"Tokens"})]})]})})]})]}),(0,a.jsx)("div",{className:"flex-1 min-h-0",children:O?(0,a.jsx)("div",{className:"space-y-4 h-full",children:(0,a.jsx)(o.O,{className:"h-full w-full"})}):T?(0,a.jsxs)("div",{className:"flex items-center justify-center h-full text-red-500",children:["Error loading time series data: ",T.message]}):0===S.length?(0,a.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground",children:"No data available for the selected date range and type"}):(0,a.jsx)(x.BO,{config:y,className:"h-full w-full",children:(0,a.jsxs)(d.T,{data:S,children:[(0,a.jsxs)("defs",{children:[(0,a.jsxs)("linearGradient",{id:"fillCount",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,a.jsx)("stop",{offset:"5%",stopColor:"hsl(var(--muted-foreground))",stopOpacity:.3}),(0,a.jsx)("stop",{offset:"95%",stopColor:"hsl(var(--muted-foreground))",stopOpacity:.05})]}),(0,a.jsxs)("linearGradient",{id:"strokeCount",x1:"0",y1:"0",x2:"1",y2:"0",children:[(0,a.jsx)("stop",{offset:"0%",stopColor:"hsl(var(--muted-foreground))",stopOpacity:.8}),(0,a.jsx)("stop",{offset:"100%",stopColor:"hsl(var(--muted-foreground))",stopOpacity:.6})]})]}),(0,a.jsx)(c.q,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground))",strokeOpacity:.3,vertical:!1}),(0,a.jsx)(u.K,{dataKey:"formattedDate",tick:{fontSize:12,fill:"hsl(var(--muted-foreground))"},tickLine:{stroke:"hsl(var(--muted-foreground))",strokeOpacity:.5},axisLine:{stroke:"hsl(var(--muted-foreground))",strokeOpacity:.5}}),(0,a.jsx)(f.B,{tick:{fontSize:12,fill:"hsl(var(--muted-foreground))"},tickLine:{stroke:"hsl(var(--muted-foreground))",strokeOpacity:.5},axisLine:{stroke:"hsl(var(--muted-foreground))",strokeOpacity:.5}}),(0,a.jsx)(x.h7,{labelFormatter:(e,t)=>t&&t[0]?(0,h.WU)(t[0].payload.dateObj,"PPP")+" ":e,content:(0,a.jsx)(x.dg,{nameKey:"name",hideLabel:!0,formatter:(e,t)=>["number"==typeof e?e.toLocaleString():e," "+String(t)]})}),(0,a.jsx)(x.Qk,{content:(0,a.jsx)(x.cD,{})}),(0,a.jsx)(m.u,{type:"monotone",dataKey:"count",stroke:"url(#strokeCount)",strokeWidth:3,fill:"url(#fillCount)",fillOpacity:.6,dot:{fill:"hsl(var(--muted-foreground))",strokeWidth:2,r:4,strokeOpacity:.8},activeDot:{r:6,strokeWidth:2,fill:"hsl(var(--background))",stroke:"hsl(var(--muted-foreground))",strokeOpacity:1},name:v(N)})]})})})]})}},66070:function(e,t,r){"use strict";r.d(t,{Ol:function(){return o},SZ:function(){return d},Zb:function(){return l},aY:function(){return c},eW:function(){return u},ll:function(){return i}});var a=r(57437),s=r(2265),n=r(94508);let l=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",r),...s})});l.displayName="Card";let o=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("flex flex-col space-y-1.5 p-6",r),...s})});o.displayName="CardHeader";let i=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("h3",{ref:t,className:(0,n.cn)("text-2xl font-semibold leading-none tracking-tight",r),...s})});i.displayName="CardTitle";let d=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("p",{ref:t,className:(0,n.cn)("text-sm text-muted-foreground",r),...s})});d.displayName="CardDescription";let c=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("p-6 pt-0",r),...s})});c.displayName="CardContent";let u=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("flex items-center p-6 pt-0",r),...s})});u.displayName="CardFooter"},57969:function(e,t,r){"use strict";r.d(t,{BO:function(){return f},Qk:function(){return p},cD:function(){return g},dg:function(){return h},h7:function(){return x}});var a=r(57437),s=r(2265),n=r(47625),l=r(8147),o=r(22190),i=r(94508);let d={light:"",dark:".dark"},c=s.createContext(null);function u(){let e=s.useContext(c);if(!e)throw Error("useChart must be used within a <ChartContainer />");return e}let f=s.forwardRef((e,t)=>{let{id:r,className:l,children:o,config:d,...u}=e,f=s.useId(),x="chart-".concat(r||f.replace(/:/g,""));return(0,a.jsx)(c.Provider,{value:{config:d},children:(0,a.jsxs)("div",{"data-chart":x,ref:t,className:(0,i.cn)("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",l),...u,children:[(0,a.jsx)(m,{id:x,config:d}),(0,a.jsx)(n.h,{children:o})]})})});f.displayName="Chart";let m=e=>{let{id:t,config:r}=e,s=Object.entries(r).filter(e=>{let[,t]=e;return t.theme||t.color});return s.length?(0,a.jsx)("style",{dangerouslySetInnerHTML:{__html:Object.entries(d).map(e=>{let[r,a]=e;return"\n".concat(a," [data-chart=").concat(t,"] {\n").concat(s.map(e=>{var t;let[a,s]=e,n=(null===(t=s.theme)||void 0===t?void 0:t[r])||s.color;return n?" --color-".concat(a,": ").concat(n,";"):null}).join("\n"),"\n}\n")}).join("\n")}}):null},x=l.u,h=s.forwardRef((e,t)=>{let{active:r,payload:n,className:l,indicator:o="dot",hideLabel:d=!1,hideIndicator:c=!1,label:f,labelFormatter:m,labelClassName:x,formatter:h,color:p,nameKey:g,labelKey:y}=e,{config:j}=u(),b=s.useMemo(()=>{var e;if(d||!(null==n?void 0:n.length))return null;let[t]=n,r="".concat(y||(null==t?void 0:t.dataKey)||(null==t?void 0:t.name)||"value"),s=v(j,t,r),l=y||"string"!=typeof f?null==s?void 0:s.label:(null===(e=j[f])||void 0===e?void 0:e.label)||f;return m?(0,a.jsx)("div",{className:(0,i.cn)("font-medium",x),children:m(l,n)}):l?(0,a.jsx)("div",{className:(0,i.cn)("font-medium",x),children:l}):null},[f,m,n,d,x,j,y]);if(!r||!(null==n?void 0:n.length))return null;let N=1===n.length&&"dot"!==o;return(0,a.jsxs)("div",{ref:t,className:(0,i.cn)("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",l),children:[N?null:b,(0,a.jsx)("div",{className:"grid gap-1.5",children:n.map((e,t)=>{let r="".concat(g||e.name||e.dataKey||"value"),s=v(j,e,r),n=p||e.payload.fill||e.color;return(0,a.jsx)("div",{className:(0,i.cn)("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground","dot"===o&&"items-center"),children:h&&(null==e?void 0:e.value)!==void 0&&e.name?h(e.value,e.name,e,t,e.payload):(0,a.jsxs)(a.Fragment,{children:[(null==s?void 0:s.icon)?(0,a.jsx)(s.icon,{}):!c&&(0,a.jsx)("div",{className:(0,i.cn)("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":"dot"===o,"w-1":"line"===o,"w-0 border-[1.5px] border-dashed bg-transparent":"dashed"===o,"my-0.5":N&&"dashed"===o}),style:{"--color-bg":n,"--color-border":n}}),(0,a.jsxs)("div",{className:(0,i.cn)("flex flex-1 justify-between leading-none",N?"items-end":"items-center"),children:[(0,a.jsxs)("div",{className:"grid gap-1.5",children:[N?b:null,(0,a.jsx)("span",{className:"text-muted-foreground",children:(null==s?void 0:s.label)||e.name})]}),e.value&&(0,a.jsx)("span",{className:"font-mono font-medium tabular-nums text-foreground",children:e.value.toLocaleString()})]})]})},e.dataKey)})})]})});h.displayName="ChartTooltip";let p=o.D,g=s.forwardRef((e,t)=>{let{className:r,hideIcon:s=!1,payload:n,verticalAlign:l="bottom",nameKey:o}=e,{config:d}=u();return(null==n?void 0:n.length)?(0,a.jsx)("div",{ref:t,className:(0,i.cn)("flex items-center justify-center gap-4","top"===l?"pb-3":"pt-3",r),children:n.map(e=>{let t="".concat(o||e.dataKey||"value"),r=v(d,e,t);return(0,a.jsxs)("div",{className:(0,i.cn)("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[(null==r?void 0:r.icon)&&!s?(0,a.jsx)(r.icon,{}):(0,a.jsx)("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:e.color}}),null==r?void 0:r.label]},e.value)})}):null});function v(e,t,r){if("object"!=typeof t||null===t)return;let a="payload"in t&&"object"==typeof t.payload&&null!==t.payload?t.payload:void 0,s=r;return r in t&&"string"==typeof t[r]?s=t[r]:a&&r in a&&"string"==typeof a[r]&&(s=a[r]),s in e?e[s]:e[r]}g.displayName="ChartLegend"},57054:function(e,t,r){"use strict";r.d(t,{J2:function(){return o},xo:function(){return i},yk:function(){return d}});var a=r(57437),s=r(27312),n=r(2265),l=r(94508);let o=s.fC,i=s.xz,d=n.forwardRef((e,t)=>{let{className:r,align:n="center",sideOffset:o=4,...i}=e;return(0,a.jsx)(s.h_,{children:(0,a.jsx)(s.VY,{ref:t,align:n,sideOffset:o,className:(0,l.cn)("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r),...i})})});d.displayName=s.VY.displayName},53647:function(e,t,r){"use strict";r.d(t,{Bw:function(){return h},Ph:function(){return c},Ql:function(){return p},i4:function(){return f},ki:function(){return u}});var a=r(57437),s=r(46943),n=r(40875),l=r(22135),o=r(30401),i=r(2265),d=r(94508);let c=s.fC;s.ZA;let u=s.B4,f=i.forwardRef((e,t)=>{let{className:r,children:l,...o}=e;return(0,a.jsxs)(s.xz,{ref:t,className:(0,d.cn)("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",r),...o,children:[l,(0,a.jsx)(s.JO,{asChild:!0,children:(0,a.jsx)(n.Z,{className:"size-4 opacity-50"})})]})});f.displayName=s.xz.displayName;let m=i.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)(s.u_,{ref:t,className:(0,d.cn)("flex cursor-default items-center justify-center py-1",r),...n,children:(0,a.jsx)(l.Z,{className:"size-4"})})});m.displayName=s.u_.displayName;let x=i.forwardRef((e,t)=>{let{className:r,...l}=e;return(0,a.jsx)(s.$G,{ref:t,className:(0,d.cn)("flex cursor-default items-center justify-center py-1",r),...l,children:(0,a.jsx)(n.Z,{className:"size-4"})})});x.displayName=s.$G.displayName;let h=i.forwardRef((e,t)=>{let{className:r,children:n,position:l="popper",...o}=e;return(0,a.jsx)(s.h_,{children:(0,a.jsxs)(s.VY,{ref:t,className:(0,d.cn)("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===l&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",r),position:l,...o,children:[(0,a.jsx)(m,{}),(0,a.jsx)(s.l_,{className:(0,d.cn)("p-1","popper"===l&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:n}),(0,a.jsx)(x,{})]})})});h.displayName=s.VY.displayName,i.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)(s.__,{ref:t,className:(0,d.cn)("py-1.5 pl-8 pr-2 text-sm font-semibold",r),...n})}).displayName=s.__.displayName;let p=i.forwardRef((e,t)=>{let{className:r,children:n,...l}=e;return(0,a.jsxs)(s.ck,{ref:t,className:(0,d.cn)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",r),...l,children:[(0,a.jsx)("span",{className:"absolute left-2 flex size-3.5 items-center justify-center",children:(0,a.jsx)(s.wU,{children:(0,a.jsx)(o.Z,{className:"size-4"})})}),(0,a.jsx)(s.eT,{children:n})]})});p.displayName=s.ck.displayName,i.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)(s.Z0,{ref:t,className:(0,d.cn)("-mx-1 my-1 h-px bg-muted",r),...n})}).displayName=s.Z0.displayName},93022:function(e,t,r){"use strict";r.d(t,{O:function(){return n}});var a=r(57437),s=r(94508);function n(e){let{className:t,...r}=e;return(0,a.jsx)("div",{className:(0,s.cn)("animate-pulse rounded-md bg-muted",t),...r})}},77992:function(e,t,r){"use strict";r.d(t,{Am:function(){return u},pm:function(){return f}});var a=r(2265);let s=0,n=new Map,l=e=>{if(n.has(e))return;let t=setTimeout(()=>{n.delete(e),c({type:"REMOVE_TOAST",toastId:e})},1e6);n.set(e,t)},o=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:r}=t;return r?l(r):e.toasts.forEach(e=>{l(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===r||void 0===r?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},i=[],d={toasts:[]};function c(e){d=o(d,e),i.forEach(e=>{e(d)})}function u(e){let{...t}=e,r=(s=(s+1)%Number.MAX_SAFE_INTEGER).toString(),a=()=>c({type:"DISMISS_TOAST",toastId:r});return c({type:"ADD_TOAST",toast:{...t,id:r,open:!0,onOpenChange:e=>{e||a()}}}),{id:r,dismiss:a,update:e=>c({type:"UPDATE_TOAST",toast:{...e,id:r}})}}function f(){let[e,t]=a.useState(d);return a.useEffect(()=>(i.push(t),()=>{let e=i.indexOf(t);e>-1&&i.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>c({type:"DISMISS_TOAST",toastId:e})}}},91048:function(e,t,r){"use strict";r.d(t,{h:function(){return a}});let a={CONTEXT_RETRIEVE:"CONTEXT_RETRIEVE",SOURCE_UPDATE:"SOURCE_UPDATE",EMBEDDER_UPSERT:"EMBEDDER_UPSERT",EMBEDDER_GENERATE:"EMBEDDER_GENERATE",EMBEDDER_DELETE:"EMBEDDER_DELETE",WORKFLOW_RUN:"WORKFLOW_RUN",CONTEXT_UPSERT:"CONTEXT_UPSERT",TOOL_CALL:"TOOL_CALL",AGENT_RUN:"AGENT_RUN"}}},function(e){e.O(0,[8310,9851,7629,7093,6148,847,1942,7823,8068,5799,3825,1785,7107,6242,3998,6373,2971,2117,1744],function(){return e(e.s=54643)}),_N_E=e.O()}]);
2
- //# sourceMappingURL=page-2436e355871758ba.js.map
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4506],{46363:function(e,t,r){Promise.resolve().then(r.bind(r,34984))},34984:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return b},dynamic:function(){return j}});var a=r(57437),s=r(5341),n=r(2265),l=r(91048),o=r(7211),i=r(66070),d=r(93022),c=r(44372),u=r(21047),f=r(70525),m=r(3085);function x(e){let{title:t,currentValue:r,previousValue:s,isLoading:n}=e;if(n)return(0,a.jsxs)(i.Zb,{className:"animate-pulse",children:[(0,a.jsxs)(i.Ol,{className:"flex flex-row items-center justify-between space-y-0 pb-3",children:[(0,a.jsx)(i.ll,{className:"text-sm font-medium text-slate-700 dark:text-slate-300",children:t}),(0,a.jsx)("div",{className:"p-2 rounded-full",children:(0,a.jsx)("div",{className:"h-4 w-4 rounded"})})]}),(0,a.jsxs)(i.aY,{children:[(0,a.jsx)(d.O,{className:"h-8 w-24 mb-3"}),(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)(d.O,{className:"h-3 w-28"}),(0,a.jsx)(d.O,{className:"h-3 w-20"})]})]})]});let l=s>0?(r-s)/s*100:0,o=l>0,c=0===l,x=c?u.Z:o?f.Z:m.Z,h=c?"text-muted-foreground":o?"text-green-600":"text-red-600";return(0,a.jsxs)(i.Zb,{className:"hover:shadow-lg transition-all duration-300 hover:-translate-y-1",children:[(0,a.jsxs)(i.Ol,{className:"flex flex-row items-center justify-between space-y-0 pb-3",children:[(0,a.jsx)(i.ll,{className:"text-sm font-medium text-slate-700 dark:text-slate-300",children:t}),(0,a.jsx)("div",{className:"p-2 rounded-full ".concat(c?"bg-gray-200 dark:bg-gray-700":o?"bg-green-100 dark:bg-green-900/30":"bg-red-100 dark:bg-red-900/30"),children:(0,a.jsx)(x,{className:"h-4 w-4 ".concat(h)})})]}),(0,a.jsxs)(i.aY,{children:[(0,a.jsx)("div",{className:"text-3xl font-bold bg-gradient-to-r from-slate-900 to-slate-700 dark:from-slate-100 dark:to-slate-300 bg-clip-text text-transparent mb-2",children:r.toLocaleString()}),(0,a.jsxs)("p",{className:"text-xs text-slate-600 dark:text-slate-400",children:[(0,a.jsx)("span",{className:"font-medium ".concat(h),children:c?"No change":"".concat(Math.abs(l).toFixed(1),"% ").concat(o?"increase":"decrease")}),(0,a.jsx)("br",{}),(0,a.jsxs)("span",{className:"text-slate-500 dark:text-slate-500",children:["vs 7-day avg: ",s.toLocaleString()]})]})]})]})}function h(e){let{query:t,entity:r,title:l}=e,i=(0,n.useMemo)(()=>{let e=new Date;return{now:e.toISOString(),twentyFourHoursAgo:(0,c.b)(e,24).toISOString(),sevenDaysAgo:(0,s.k)(e,7).toISOString()}},[]),{data:d,loading:u}=(0,o.aM)(t,{variables:{from:i.twentyFourHoursAgo,to:i.now}}),{data:f,loading:m}=(0,o.aM)(t,{variables:{from:i.sevenDaysAgo,to:i.now}}),h=e=>e&&Array.isArray(e)?e.reduce((e,t)=>e+(t.count||0),0):0,p=h(null==d?void 0:d["".concat(r,"Statistics")]),g=Math.round(h(null==f?void 0:f["".concat(r,"Statistics")])/7);return(0,a.jsx)(x,{title:"".concat(l," (24h)"),currentValue:p,previousValue:g,isLoading:u})}var p=r(21409),g=r(52896),v=r(73450),y=r(27689);let j="force-dynamic";function b(){let[e,t]=(0,n.useState)({from:(0,s.k)(new Date,14),to:new Date}),[r,o]=(0,n.useState)("AGENT_RUN"),[i,d]=(0,n.useState)("count"),[c,u]=(0,n.useState)("label");return(0,a.jsxs)("div",{className:"flex-1 flex flex-col p-8 pt-6 h-screen",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-8",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("h2",{className:"text-4xl font-bold tracking-tight bg-clip-text",children:"Analytics Dashboard"}),(0,a.jsx)("p",{className:"text-lg",children:"Monitor your AI workflows and performance metrics."})]}),(0,a.jsx)("div",{className:"flex items-center space-x-2",children:(0,a.jsx)(p.z,{dateRange:e,onDateRangeChange:t,maxDays:30})})]}),(0,a.jsx)("div",{className:"mb-8",children:(0,a.jsxs)("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-5",children:[(0,a.jsx)(h,{query:y.W6,entity:"agent_sessions",title:"Agent Sessions"}),(0,a.jsx)(h,{query:y.tK,entity:"tracking",title:"Agent Calls"}),(0,a.jsx)(h,{query:y.Hk,entity:"tracking",title:"Token Usage"}),(0,a.jsx)(h,{query:y.Tj,entity:"jobs",title:"Workflow Runs"}),(0,a.jsx)(h,{query:y.kZ,entity:"tracking",title:"Function Calls"})]})}),(0,a.jsxs)("div",{className:"flex-1 grid gap-6 md:grid-cols-3 min-h-0",children:[(0,a.jsx)("div",{className:"rounded-lg border md:col-span-2 p-6 flex flex-col",children:(0,a.jsx)(g.q,{dateRange:e,selectedType:r,onTypeChange:o,onUnitChange:d,unit:i,dataTypes:[l.h.CONTEXT_RETRIEVE,l.h.SOURCE_UPDATE,l.h.EMBEDDER_UPSERT,l.h.EMBEDDER_GENERATE,l.h.EMBEDDER_DELETE,l.h.WORKFLOW_RUN,l.h.CONTEXT_UPSERT,l.h.TOOL_CALL,l.h.AGENT_RUN]})}),(0,a.jsx)("div",{className:"rounded-lg border p-6 flex flex-col",children:(0,a.jsx)(v.Y,{groupByOptions:[{value:"label",label:"Label"},{value:"user",label:"User"},{value:"role",label:"Role"}],dateRange:e,selectedType:r,groupBy:c,onGroupByChange:u})})]})]})}},21409:function(e,t,r){"use strict";r.d(t,{z:function(){return g}});var a=r(57437),s=r(2265),n=r(20653),l=r(31303),o=r(59121),i=r(27107),d=r(94508),c=r(62869),u=r(92451),f=r(10407),m=r(98235);function x(e){let{className:t,classNames:r,showOutsideDays:s=!0,...n}=e;return(0,a.jsx)(m._W,{showOutsideDays:s,className:(0,d.cn)("p-3",t),classNames:{months:"flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0",month:"space-y-4",caption:"flex justify-center pt-1 relative items-center",caption_label:"text-sm font-medium",nav:"space-x-1 flex items-center",nav_button:(0,d.cn)((0,c.d)({variant:"outline"}),"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"),nav_button_previous:"absolute left-1",nav_button_next:"absolute right-1",table:"w-full border-collapse space-y-1",head_row:"flex",head_cell:"text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]",row:"flex w-full mt-2",cell:"h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20",day:(0,d.cn)((0,c.d)({variant:"ghost"}),"h-9 w-9 p-0 font-normal aria-selected:opacity-100"),day_range_end:"day-range-end",day_selected:"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",day_today:"bg-accent text-accent-foreground",day_outside:"day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30",day_disabled:"text-muted-foreground opacity-50",day_range_middle:"aria-selected:bg-accent aria-selected:text-accent-foreground",day_hidden:"invisible",...r},components:{IconLeft:e=>{let{...t}=e;return(0,a.jsx)(u.Z,{className:"size-4"})},IconRight:e=>{let{...t}=e;return(0,a.jsx)(f.Z,{className:"size-4"})}},...n})}x.displayName="Calendar";var h=r(77992),p=r(57054);function g(e){let{dateRange:t,onDateRangeChange:r,className:u,maxDays:f=30}=e,{toast:m}=(0,h.pm)(),g=s.useMemo(()=>{if(!(null==t?void 0:t.from))return[];let e=t.from;return[{before:(0,o.E)(e,-f)},{after:(0,o.E)(e,f)}]},[null==t?void 0:t.from,f]);return(0,a.jsx)("div",{className:(0,d.cn)("grid gap-2",u),children:(0,a.jsxs)(p.J2,{children:[(0,a.jsx)(p.xo,{asChild:!0,children:(0,a.jsxs)(c.z,{id:"date",variant:"outline",className:(0,d.cn)("w-[260px] justify-start text-left font-normal",!t&&"text-muted-foreground"),children:[(0,a.jsx)(n.Que,{className:"mr-2 h-4 w-4"}),(null==t?void 0:t.from)?t.to?(0,a.jsxs)(a.Fragment,{children:[(0,i.WU)(t.from,"LLL dd, y")," -"," ",(0,i.WU)(t.to,"LLL dd, y")]}):(0,i.WU)(t.from,"LLL dd, y"):(0,a.jsx)("span",{children:"Pick a date range"})]})}),(0,a.jsxs)(p.yk,{className:"w-auto p-0",align:"end",children:[(0,a.jsx)(x,{initialFocus:!0,mode:"range",defaultMonth:null==t?void 0:t.from,selected:t,onSelect:e=>{if((null==e?void 0:e.from)&&(null==e?void 0:e.to)&&(0,l.j)(e.to,e.from)>f){m({title:"Date range too large",description:"Please select a date range of ".concat(f," days or less."),variant:"destructive"});return}r(e)},disabled:g,numberOfMonths:2}),(0,a.jsxs)("div",{className:"p-3 pt-0 text-xs text-muted-foreground border-t",children:["Maximum range: ",f," days"]})]})]})})}},73450:function(e,t,r){"use strict";r.d(t,{Y:function(){return x}});var a=r(57437),s=r(2265),n=r(7211),l=r(53647),o=r(93022),i=r(27689),d=r(75169),c=r(3574),u=r(20407),f=r(57969);let m=["hsl(var(--chart-1))","hsl(var(--chart-2))","hsl(var(--chart-3))","hsl(var(--chart-4))","hsl(var(--chart-5))","hsl(var(--chart-6))","hsl(var(--chart-7))","hsl(var(--chart-8))","hsl(var(--chart-9))","hsl(var(--chart-10))"];function x(e){var t,r;let{groupByOptions:x,dateRange:h,selectedType:p,groupBy:g,onGroupByChange:v}=e,{data:y,loading:j,error:b}=(0,n.aM)(i.YH,{variables:{type:p,groupBy:g,from:null==h?void 0:null===(t=h.from)||void 0===t?void 0:t.toISOString(),to:null==h?void 0:null===(r=h.to)||void 0===r?void 0:r.toISOString()},skip:!(null==h?void 0:h.from)||!(null==h?void 0:h.to)}),{chartData:N,chartConfig:w}=s.useMemo(()=>{if(!(null==y?void 0:y.trackingStatistics))return{chartData:[],chartConfig:{}};let e=y.trackingStatistics.map((e,t)=>{var r;return{name:(r=e.group)?r.replace(/_/g," ").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" "):"Unknown",value:e.count,fill:m[t%m.length]}}).sort((e,t)=>t.value-e.value),t=e.reduce((e,t,r)=>(e[t.name]={label:t.name,color:m[r%m.length]},e),{});return{chartData:e,chartConfig:t}},[y]);return(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsx)("h3",{className:"text-xl font-semibold",children:"Distribution"}),x.length>0&&(0,a.jsx)("div",{className:"w-full max-w-[150px]",children:(0,a.jsxs)(l.Ph,{value:g,onValueChange:v,children:[(0,a.jsx)(l.i4,{children:(0,a.jsx)(l.ki,{placeholder:"Group by"})}),(0,a.jsx)(l.Bw,{children:x.map(e=>(0,a.jsx)(l.Ql,{value:e.value,children:e.label},e.value))})]})})]}),(0,a.jsx)("div",{className:"flex-1 min-h-0",children:j?(0,a.jsx)("div",{className:"space-y-4 h-full",children:(0,a.jsx)(o.O,{className:"h-full w-full"})}):b?(0,a.jsxs)("div",{className:"flex items-center justify-center h-full text-red-500",children:["Error loading distribution data: ",b.message]}):0===N.length?(0,a.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-center",children:"No data available for the selected date range, type, and grouping."}):(0,a.jsx)(f.BO,{config:w,className:"h-full w-full",children:(0,a.jsxs)(d.u,{children:[(0,a.jsx)("defs",{children:N.map((e,t)=>(0,a.jsxs)("radialGradient",{id:"gradient-".concat(e.name.replace(/\s+/g,"-")),cx:"50%",cy:"50%",r:"50%",children:[(0,a.jsx)("stop",{offset:"0%",stopColor:e.fill,stopOpacity:1}),(0,a.jsx)("stop",{offset:"100%",stopColor:e.fill,stopOpacity:.8})]},"gradient-".concat(t)))}),(0,a.jsx)(c.b,{data:N,cx:"50%",cy:"50%",labelLine:!1,label:e=>{let{cx:t,cy:r,midAngle:s,innerRadius:n,outerRadius:l,percent:o,index:i}=e;if(o<.05)return null;let d=Math.PI/180,c=n+(l-n)*.5,u=t+c*Math.cos(-s*d);return(0,a.jsx)("text",{x:u,y:r+c*Math.sin(-s*d),fill:"black",textAnchor:u>t?"start":"end",dominantBaseline:"central",fontSize:"12",fontWeight:"600",paintOrder:"stroke",children:"".concat((100*o).toFixed(0),"%")})},outerRadius:"75%",innerRadius:"45%",dataKey:"value",strokeWidth:3,children:N.map((e,t)=>(0,a.jsx)(u.b,{fill:"url(#gradient-".concat(e.name.replace(/\s+/g,"-"),")")},"cell-".concat(t)))}),(0,a.jsx)(f.h7,{content:(0,a.jsx)(f.dg,{nameKey:"name",hideLabel:!0,formatter:(e,t)=>["number"==typeof e?e.toLocaleString():e," "+String(t)]})})]})})})]})}},52896:function(e,t,r){"use strict";r.d(t,{q:function(){return j}});var a=r(57437),s=r(2265),n=r(7211),l=r(53647),o=r(93022),i=r(27689),d=r(5481),c=r(56940),u=r(97059),f=r(62994),m=r(23263),x=r(57969),h=r(27107),p=r(56942),g=r(54886);function v(e){return e.split("_").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ")}let y={count:{label:"Count",color:"hsl(var(--muted-foreground))"}};function j(e){var t,r;let{dataTypes:j,dateRange:b,selectedType:N,onTypeChange:w,onUnitChange:E,unit:k}=e,{data:_,loading:O,error:T}=(0,n.aM)(i.j9,{variables:{type:N,name:k,from:null==b?void 0:null===(t=b.from)||void 0===t?void 0:t.toISOString(),to:null==b?void 0:null===(r=b.to)||void 0===r?void 0:r.toISOString()},skip:!(null==b?void 0:b.from)||!(null==b?void 0:b.to)}),S=s.useMemo(()=>{if(!(null==_?void 0:_.trackingStatistics)||!(null==b?void 0:b.from)||!(null==b?void 0:b.to))return[];let e=new Map;return _.trackingStatistics.forEach(t=>{let r=new Date("number"==typeof t.group?t.group:Number(t.group)),a=(0,h.WU)((0,p.b)(r),"yyyy-MM-dd");e.set(a,t.count)}),(0,g.D)({start:(0,p.b)(b.from),end:(0,p.b)(b.to)}).map(t=>{let r=(0,h.WU)(t,"yyyy-MM-dd"),a=e.get(r)||0;return{date:t.getTime(),count:a,formattedDate:(0,h.WU)(t,"MMM dd"),dateObj:t}})},[_,b]);return(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsx)("h3",{className:"text-xl font-semibold",children:"Time Series Analytics"}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("div",{className:"w-[150px]",children:(0,a.jsxs)(l.Ph,{value:N,onValueChange:e=>w(e),children:[(0,a.jsx)(l.i4,{children:(0,a.jsx)(l.ki,{placeholder:"Select data type"})}),(0,a.jsx)(l.Bw,{children:null==j?void 0:j.map(e=>(0,a.jsx)(l.Ql,{value:e,children:v(e)+" "},e))})]})}),(0,a.jsx)("div",{className:"w-[150px]",children:(0,a.jsxs)(l.Ph,{value:k,onValueChange:e=>E(e),children:[(0,a.jsx)(l.i4,{children:(0,a.jsx)(l.ki,{placeholder:"Select unit"})}),(0,a.jsxs)(l.Bw,{children:[(0,a.jsx)(l.Ql,{value:"count",children:"Count"}),(0,a.jsx)(l.Ql,{value:"tokens",children:"Tokens"})]})]})})]})]}),(0,a.jsx)("div",{className:"flex-1 min-h-0",children:O?(0,a.jsx)("div",{className:"space-y-4 h-full",children:(0,a.jsx)(o.O,{className:"h-full w-full"})}):T?(0,a.jsxs)("div",{className:"flex items-center justify-center h-full text-red-500",children:["Error loading time series data: ",T.message]}):0===S.length?(0,a.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground",children:"No data available for the selected date range and type"}):(0,a.jsx)(x.BO,{config:y,className:"h-full w-full",children:(0,a.jsxs)(d.T,{data:S,children:[(0,a.jsxs)("defs",{children:[(0,a.jsxs)("linearGradient",{id:"fillCount",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,a.jsx)("stop",{offset:"5%",stopColor:"hsl(var(--muted-foreground))",stopOpacity:.3}),(0,a.jsx)("stop",{offset:"95%",stopColor:"hsl(var(--muted-foreground))",stopOpacity:.05})]}),(0,a.jsxs)("linearGradient",{id:"strokeCount",x1:"0",y1:"0",x2:"1",y2:"0",children:[(0,a.jsx)("stop",{offset:"0%",stopColor:"hsl(var(--muted-foreground))",stopOpacity:.8}),(0,a.jsx)("stop",{offset:"100%",stopColor:"hsl(var(--muted-foreground))",stopOpacity:.6})]})]}),(0,a.jsx)(c.q,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground))",strokeOpacity:.3,vertical:!1}),(0,a.jsx)(u.K,{dataKey:"formattedDate",tick:{fontSize:12,fill:"hsl(var(--muted-foreground))"},tickLine:{stroke:"hsl(var(--muted-foreground))",strokeOpacity:.5},axisLine:{stroke:"hsl(var(--muted-foreground))",strokeOpacity:.5}}),(0,a.jsx)(f.B,{tick:{fontSize:12,fill:"hsl(var(--muted-foreground))"},tickLine:{stroke:"hsl(var(--muted-foreground))",strokeOpacity:.5},axisLine:{stroke:"hsl(var(--muted-foreground))",strokeOpacity:.5}}),(0,a.jsx)(x.h7,{labelFormatter:(e,t)=>t&&t[0]?(0,h.WU)(t[0].payload.dateObj,"PPP")+" ":e,content:(0,a.jsx)(x.dg,{nameKey:"name",hideLabel:!0,formatter:(e,t)=>["number"==typeof e?e.toLocaleString():e," "+String(t)]})}),(0,a.jsx)(x.Qk,{content:(0,a.jsx)(x.cD,{})}),(0,a.jsx)(m.u,{type:"monotone",dataKey:"count",stroke:"url(#strokeCount)",strokeWidth:3,fill:"url(#fillCount)",fillOpacity:.6,dot:{fill:"hsl(var(--muted-foreground))",strokeWidth:2,r:4,strokeOpacity:.8},activeDot:{r:6,strokeWidth:2,fill:"hsl(var(--background))",stroke:"hsl(var(--muted-foreground))",strokeOpacity:1},name:v(N)})]})})})]})}},66070:function(e,t,r){"use strict";r.d(t,{Ol:function(){return o},SZ:function(){return d},Zb:function(){return l},aY:function(){return c},eW:function(){return u},ll:function(){return i}});var a=r(57437),s=r(2265),n=r(94508);let l=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",r),...s})});l.displayName="Card";let o=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("flex flex-col space-y-1.5 p-6",r),...s})});o.displayName="CardHeader";let i=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("h3",{ref:t,className:(0,n.cn)("text-2xl font-semibold leading-none tracking-tight",r),...s})});i.displayName="CardTitle";let d=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("p",{ref:t,className:(0,n.cn)("text-sm text-muted-foreground",r),...s})});d.displayName="CardDescription";let c=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("p-6 pt-0",r),...s})});c.displayName="CardContent";let u=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("flex items-center p-6 pt-0",r),...s})});u.displayName="CardFooter"},57969:function(e,t,r){"use strict";r.d(t,{BO:function(){return f},Qk:function(){return p},cD:function(){return g},dg:function(){return h},h7:function(){return x}});var a=r(57437),s=r(2265),n=r(47625),l=r(8147),o=r(22190),i=r(94508);let d={light:"",dark:".dark"},c=s.createContext(null);function u(){let e=s.useContext(c);if(!e)throw Error("useChart must be used within a <ChartContainer />");return e}let f=s.forwardRef((e,t)=>{let{id:r,className:l,children:o,config:d,...u}=e,f=s.useId(),x="chart-".concat(r||f.replace(/:/g,""));return(0,a.jsx)(c.Provider,{value:{config:d},children:(0,a.jsxs)("div",{"data-chart":x,ref:t,className:(0,i.cn)("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",l),...u,children:[(0,a.jsx)(m,{id:x,config:d}),(0,a.jsx)(n.h,{children:o})]})})});f.displayName="Chart";let m=e=>{let{id:t,config:r}=e,s=Object.entries(r).filter(e=>{let[,t]=e;return t.theme||t.color});return s.length?(0,a.jsx)("style",{dangerouslySetInnerHTML:{__html:Object.entries(d).map(e=>{let[r,a]=e;return"\n".concat(a," [data-chart=").concat(t,"] {\n").concat(s.map(e=>{var t;let[a,s]=e,n=(null===(t=s.theme)||void 0===t?void 0:t[r])||s.color;return n?" --color-".concat(a,": ").concat(n,";"):null}).join("\n"),"\n}\n")}).join("\n")}}):null},x=l.u,h=s.forwardRef((e,t)=>{let{active:r,payload:n,className:l,indicator:o="dot",hideLabel:d=!1,hideIndicator:c=!1,label:f,labelFormatter:m,labelClassName:x,formatter:h,color:p,nameKey:g,labelKey:y}=e,{config:j}=u(),b=s.useMemo(()=>{var e;if(d||!(null==n?void 0:n.length))return null;let[t]=n,r="".concat(y||(null==t?void 0:t.dataKey)||(null==t?void 0:t.name)||"value"),s=v(j,t,r),l=y||"string"!=typeof f?null==s?void 0:s.label:(null===(e=j[f])||void 0===e?void 0:e.label)||f;return m?(0,a.jsx)("div",{className:(0,i.cn)("font-medium",x),children:m(l,n)}):l?(0,a.jsx)("div",{className:(0,i.cn)("font-medium",x),children:l}):null},[f,m,n,d,x,j,y]);if(!r||!(null==n?void 0:n.length))return null;let N=1===n.length&&"dot"!==o;return(0,a.jsxs)("div",{ref:t,className:(0,i.cn)("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",l),children:[N?null:b,(0,a.jsx)("div",{className:"grid gap-1.5",children:n.map((e,t)=>{let r="".concat(g||e.name||e.dataKey||"value"),s=v(j,e,r),n=p||e.payload.fill||e.color;return(0,a.jsx)("div",{className:(0,i.cn)("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground","dot"===o&&"items-center"),children:h&&(null==e?void 0:e.value)!==void 0&&e.name?h(e.value,e.name,e,t,e.payload):(0,a.jsxs)(a.Fragment,{children:[(null==s?void 0:s.icon)?(0,a.jsx)(s.icon,{}):!c&&(0,a.jsx)("div",{className:(0,i.cn)("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":"dot"===o,"w-1":"line"===o,"w-0 border-[1.5px] border-dashed bg-transparent":"dashed"===o,"my-0.5":N&&"dashed"===o}),style:{"--color-bg":n,"--color-border":n}}),(0,a.jsxs)("div",{className:(0,i.cn)("flex flex-1 justify-between leading-none",N?"items-end":"items-center"),children:[(0,a.jsxs)("div",{className:"grid gap-1.5",children:[N?b:null,(0,a.jsx)("span",{className:"text-muted-foreground",children:(null==s?void 0:s.label)||e.name})]}),e.value&&(0,a.jsx)("span",{className:"font-mono font-medium tabular-nums text-foreground",children:e.value.toLocaleString()})]})]})},e.dataKey)})})]})});h.displayName="ChartTooltip";let p=o.D,g=s.forwardRef((e,t)=>{let{className:r,hideIcon:s=!1,payload:n,verticalAlign:l="bottom",nameKey:o}=e,{config:d}=u();return(null==n?void 0:n.length)?(0,a.jsx)("div",{ref:t,className:(0,i.cn)("flex items-center justify-center gap-4","top"===l?"pb-3":"pt-3",r),children:n.map(e=>{let t="".concat(o||e.dataKey||"value"),r=v(d,e,t);return(0,a.jsxs)("div",{className:(0,i.cn)("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[(null==r?void 0:r.icon)&&!s?(0,a.jsx)(r.icon,{}):(0,a.jsx)("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:e.color}}),null==r?void 0:r.label]},e.value)})}):null});function v(e,t,r){if("object"!=typeof t||null===t)return;let a="payload"in t&&"object"==typeof t.payload&&null!==t.payload?t.payload:void 0,s=r;return r in t&&"string"==typeof t[r]?s=t[r]:a&&r in a&&"string"==typeof a[r]&&(s=a[r]),s in e?e[s]:e[r]}g.displayName="ChartLegend"},57054:function(e,t,r){"use strict";r.d(t,{J2:function(){return o},xo:function(){return i},yk:function(){return d}});var a=r(57437),s=r(27312),n=r(2265),l=r(94508);let o=s.fC,i=s.xz,d=n.forwardRef((e,t)=>{let{className:r,align:n="center",sideOffset:o=4,...i}=e;return(0,a.jsx)(s.h_,{children:(0,a.jsx)(s.VY,{ref:t,align:n,sideOffset:o,className:(0,l.cn)("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r),...i})})});d.displayName=s.VY.displayName},53647:function(e,t,r){"use strict";r.d(t,{Bw:function(){return h},Ph:function(){return c},Ql:function(){return p},i4:function(){return f},ki:function(){return u}});var a=r(57437),s=r(46943),n=r(40875),l=r(22135),o=r(30401),i=r(2265),d=r(94508);let c=s.fC;s.ZA;let u=s.B4,f=i.forwardRef((e,t)=>{let{className:r,children:l,...o}=e;return(0,a.jsxs)(s.xz,{ref:t,className:(0,d.cn)("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",r),...o,children:[l,(0,a.jsx)(s.JO,{asChild:!0,children:(0,a.jsx)(n.Z,{className:"size-4 opacity-50"})})]})});f.displayName=s.xz.displayName;let m=i.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)(s.u_,{ref:t,className:(0,d.cn)("flex cursor-default items-center justify-center py-1",r),...n,children:(0,a.jsx)(l.Z,{className:"size-4"})})});m.displayName=s.u_.displayName;let x=i.forwardRef((e,t)=>{let{className:r,...l}=e;return(0,a.jsx)(s.$G,{ref:t,className:(0,d.cn)("flex cursor-default items-center justify-center py-1",r),...l,children:(0,a.jsx)(n.Z,{className:"size-4"})})});x.displayName=s.$G.displayName;let h=i.forwardRef((e,t)=>{let{className:r,children:n,position:l="popper",...o}=e;return(0,a.jsx)(s.h_,{children:(0,a.jsxs)(s.VY,{ref:t,className:(0,d.cn)("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===l&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",r),position:l,...o,children:[(0,a.jsx)(m,{}),(0,a.jsx)(s.l_,{className:(0,d.cn)("p-1","popper"===l&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:n}),(0,a.jsx)(x,{})]})})});h.displayName=s.VY.displayName,i.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)(s.__,{ref:t,className:(0,d.cn)("py-1.5 pl-8 pr-2 text-sm font-semibold",r),...n})}).displayName=s.__.displayName;let p=i.forwardRef((e,t)=>{let{className:r,children:n,...l}=e;return(0,a.jsxs)(s.ck,{ref:t,className:(0,d.cn)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",r),...l,children:[(0,a.jsx)("span",{className:"absolute left-2 flex size-3.5 items-center justify-center",children:(0,a.jsx)(s.wU,{children:(0,a.jsx)(o.Z,{className:"size-4"})})}),(0,a.jsx)(s.eT,{children:n})]})});p.displayName=s.ck.displayName,i.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)(s.Z0,{ref:t,className:(0,d.cn)("-mx-1 my-1 h-px bg-muted",r),...n})}).displayName=s.Z0.displayName},93022:function(e,t,r){"use strict";r.d(t,{O:function(){return n}});var a=r(57437),s=r(94508);function n(e){let{className:t,...r}=e;return(0,a.jsx)("div",{className:(0,s.cn)("animate-pulse rounded-md bg-muted",t),...r})}},77992:function(e,t,r){"use strict";r.d(t,{Am:function(){return u},pm:function(){return f}});var a=r(2265);let s=0,n=new Map,l=e=>{if(n.has(e))return;let t=setTimeout(()=>{n.delete(e),c({type:"REMOVE_TOAST",toastId:e})},1e6);n.set(e,t)},o=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:r}=t;return r?l(r):e.toasts.forEach(e=>{l(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===r||void 0===r?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},i=[],d={toasts:[]};function c(e){d=o(d,e),i.forEach(e=>{e(d)})}function u(e){let{...t}=e,r=(s=(s+1)%Number.MAX_SAFE_INTEGER).toString(),a=()=>c({type:"DISMISS_TOAST",toastId:r});return c({type:"ADD_TOAST",toast:{...t,id:r,open:!0,onOpenChange:e=>{e||a()}}}),{id:r,dismiss:a,update:e=>c({type:"UPDATE_TOAST",toast:{...e,id:r}})}}function f(){let[e,t]=a.useState(d);return a.useEffect(()=>(i.push(t),()=>{let e=i.indexOf(t);e>-1&&i.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>c({type:"DISMISS_TOAST",toastId:e})}}},91048:function(e,t,r){"use strict";r.d(t,{h:function(){return a}});let a={CONTEXT_RETRIEVE:"CONTEXT_RETRIEVE",SOURCE_UPDATE:"SOURCE_UPDATE",EMBEDDER_UPSERT:"EMBEDDER_UPSERT",EMBEDDER_GENERATE:"EMBEDDER_GENERATE",EMBEDDER_DELETE:"EMBEDDER_DELETE",WORKFLOW_RUN:"WORKFLOW_RUN",CONTEXT_UPSERT:"CONTEXT_UPSERT",TOOL_CALL:"TOOL_CALL",AGENT_RUN:"AGENT_RUN"}}},function(e){e.O(0,[8310,9851,7629,7093,6148,847,1942,7823,8068,5799,3825,1785,7107,6242,3998,6373,2971,2117,1744],function(){return e(e.s=46363)}),_N_E=e.O()}]);
2
+ //# sourceMappingURL=page-ca746e824cb97052.js.map