@exulu/frontend 1.3.2 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.next/BUILD_ID +1 -1
- package/dist/.next/app-build-manifest.json +185 -174
- package/dist/.next/app-path-routes-manifest.json +1 -1
- package/dist/.next/build-manifest.json +2 -2
- package/dist/.next/prerender-manifest.json +1 -1
- package/dist/.next/server/app/(application)/agents/edit/[id]/page.js +1 -1
- package/dist/.next/server/app/(application)/agents/edit/[id]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/agents/edit/[id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/agents/page.js +1 -2
- package/dist/.next/server/app/(application)/agents/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/agents/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/[session]/page.js +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/[session]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/[session]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/page.js +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/page.js +1 -1
- package/dist/.next/server/app/(application)/chat/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/chat/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/configuration/page.js +1 -1
- package/dist/.next/server/app/(application)/configuration/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/configuration/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/dashboard/page.js +5 -1
- package/dist/.next/server/app/(application)/dashboard/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/dashboard/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/data/[[...query]]/page.js +5 -1
- package/dist/.next/server/app/(application)/data/[[...query]]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/data/[[...query]]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/page.js +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/runs/page.js +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/runs/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/runs/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/evals/cases/page.js +1 -1
- package/dist/.next/server/app/(application)/evals/cases/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/evals/cases/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/evals/page.js +1 -1
- package/dist/.next/server/app/(application)/evals/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/evals/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/explorer/page.js +1 -1
- package/dist/.next/server/app/(application)/explorer/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/explorer/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/jobs/page.js +1 -1
- package/dist/.next/server/app/(application)/jobs/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/jobs/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/keys/page.js +1 -1
- package/dist/.next/server/app/(application)/keys/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/keys/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/page.js +1 -1
- package/dist/.next/server/app/(application)/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/projects/[project]/page.js +1 -1
- package/dist/.next/server/app/(application)/projects/[project]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/projects/[project]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/projects/page.js +1 -1
- package/dist/.next/server/app/(application)/projects/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/projects/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/roles/page.js +1 -1
- package/dist/.next/server/app/(application)/roles/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/roles/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/token/page.js +1 -1
- package/dist/.next/server/app/(application)/token/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/token/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/users/page.js +1 -1
- package/dist/.next/server/app/(application)/users/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/users/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/create/page.js +1 -1
- package/dist/.next/server/app/(application)/variables/create/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/variables/create/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page.js +1 -1
- package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/page.js +1 -1
- package/dist/.next/server/app/(application)/variables/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/variables/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page.js +1 -1
- package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/workflows/page.js +1 -1
- package/dist/.next/server/app/(application)/workflows/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/workflows/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(authentication)/login/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_not-found.html +1 -1
- package/dist/.next/server/app/_not-found.rsc +1 -1
- package/dist/.next/server/app/api/auth/[...nextauth]/route.js +9 -9
- package/dist/.next/server/app-paths-manifest.json +5 -5
- package/dist/.next/server/chunks/1051.js +16 -16
- package/dist/.next/server/chunks/2270.js +188 -100
- package/dist/.next/server/chunks/{8838.js → 2875.js} +1 -1
- package/dist/.next/server/chunks/2916.js +1 -1
- package/dist/.next/server/chunks/3503.js +1 -0
- package/dist/.next/server/chunks/{7544.js → 4552.js} +1 -1
- package/dist/.next/server/chunks/{3393.js → 4739.js} +1 -1
- package/dist/.next/server/chunks/5192.js +1 -1
- package/dist/.next/server/chunks/5999.js +2 -0
- package/dist/.next/server/chunks/6282.js +1 -0
- package/dist/.next/server/chunks/6623.js +1 -0
- package/dist/.next/server/chunks/7721.js +1 -0
- package/dist/.next/server/chunks/7944.js +2 -2
- package/dist/.next/server/chunks/8050.js +1 -0
- package/dist/.next/server/chunks/8206.js +1 -0
- package/dist/.next/server/chunks/8679.js +5 -0
- package/dist/.next/server/middleware-manifest.json +5 -5
- package/dist/.next/server/pages/404.html +1 -1
- package/dist/.next/server/pages/500.html +1 -1
- package/dist/.next/server/server-reference-manifest.json +1 -1
- package/dist/.next/static/chunks/1294-368dc8ec59054da4.js +2 -0
- package/dist/.next/static/chunks/1294-368dc8ec59054da4.js.map +1 -0
- package/dist/.next/static/chunks/{1645-e5fd10236c0183ce.js → 1645-570e014100772437.js} +1 -1
- package/dist/.next/static/chunks/{1645-e5fd10236c0183ce.js.map → 1645-570e014100772437.js.map} +1 -1
- package/dist/.next/static/chunks/1957-5867716304ecd208.js +2 -0
- package/dist/.next/static/chunks/1957-5867716304ecd208.js.map +1 -0
- package/dist/.next/static/chunks/{2293-59b4bbce0c5bd2f2.js → 2293-1681cdef5b8c0c0b.js} +1 -1
- package/dist/.next/static/chunks/{2293-59b4bbce0c5bd2f2.js.map → 2293-1681cdef5b8c0c0b.js.map} +1 -1
- package/dist/.next/static/chunks/3475-28ce4fce960656bd.js +2 -0
- package/dist/.next/static/chunks/3475-28ce4fce960656bd.js.map +1 -0
- package/dist/.next/static/chunks/3832-a5e8fc6647e2be65.js +2 -0
- package/dist/.next/static/chunks/3832-a5e8fc6647e2be65.js.map +1 -0
- package/dist/.next/static/chunks/{4386-a36fe9c65884f025.js → 4386-c7690667749bff6a.js} +1 -1
- package/dist/.next/static/chunks/{4386-a36fe9c65884f025.js.map → 4386-c7690667749bff6a.js.map} +1 -1
- package/dist/.next/static/chunks/4750-4d5c13bbc96bc19b.js +2 -0
- package/dist/.next/static/chunks/4750-4d5c13bbc96bc19b.js.map +1 -0
- package/dist/.next/static/chunks/5243-1aaa41b2cd0ea87c.js +2 -0
- package/dist/.next/static/chunks/5243-1aaa41b2cd0ea87c.js.map +1 -0
- package/dist/.next/static/chunks/5978-814d6900645d2fcc.js +2 -0
- package/dist/.next/static/chunks/5978-814d6900645d2fcc.js.map +1 -0
- package/dist/.next/static/chunks/6373-651cb258c9e2b57b.js +2 -0
- package/dist/.next/static/chunks/6373-651cb258c9e2b57b.js.map +1 -0
- package/dist/.next/static/chunks/{7564-44a20b31206685e1.js → 6545-5a1d7cf4d5ca770e.js} +21 -21
- package/dist/.next/static/chunks/6545-5a1d7cf4d5ca770e.js.map +1 -0
- package/dist/.next/static/chunks/6839-0f4cfb48058a5ab6.js +2 -0
- package/dist/.next/static/chunks/6839-0f4cfb48058a5ab6.js.map +1 -0
- package/dist/.next/static/chunks/723-94e596796cbf911d.js +2 -0
- package/dist/.next/static/chunks/723-94e596796cbf911d.js.map +1 -0
- package/dist/.next/static/chunks/8202-db2cc384c66bc1be.js +2 -0
- package/dist/.next/static/chunks/8202-db2cc384c66bc1be.js.map +1 -0
- package/dist/.next/static/chunks/8269-37dd07515eb44201.js +2 -0
- package/dist/.next/static/chunks/8269-37dd07515eb44201.js.map +1 -0
- package/dist/.next/static/chunks/8469-ba31cbd7acab5f94.js +2 -0
- package/dist/.next/static/chunks/8469-ba31cbd7acab5f94.js.map +1 -0
- package/dist/.next/static/chunks/8824-20030459012376a3.js +2 -0
- package/dist/.next/static/chunks/8824-20030459012376a3.js.map +1 -0
- package/dist/.next/static/chunks/9105-3800f721d38e2b9a.js +2 -0
- package/dist/.next/static/chunks/9105-3800f721d38e2b9a.js.map +1 -0
- package/dist/.next/static/chunks/9183-a51605ff26b92fed.js +41 -0
- package/dist/.next/static/chunks/9183-a51605ff26b92fed.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-511f168123f85285.js +2 -0
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-511f168123f85285.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/agents/{page-499ac3bd1044306c.js → page-63643deabdaa6b2c.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/agents/{page-499ac3bd1044306c.js.map → page-63643deabdaa6b2c.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/{page-3807a8bc2ae87548.js → page-62c7321ba26632af.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-62c7321ba26632af.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/chat/{layout-53796525bd3e2443.js → layout-5eb1d22ddcbc0b55.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/chat/{layout-53796525bd3e2443.js.map → layout-5eb1d22ddcbc0b55.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/configuration/{page-2d8a0e2664ab9a94.js → page-8f92af5318feb84f.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/configuration/{page-2d8a0e2664ab9a94.js.map → page-8f92af5318feb84f.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/dashboard/page-00e425d942e0d769.js +2 -0
- package/dist/.next/static/chunks/app/(application)/dashboard/page-00e425d942e0d769.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-a460a56d3efac658.js +2 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-a460a56d3efac658.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-bb06a9553c9ed178.js +2 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-bb06a9553c9ed178.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/evals/[id]/{page-2238f1fb73d93328.js → page-ef82e92ca7d0da6c.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/evals/[id]/{page-2238f1fb73d93328.js.map → page-ef82e92ca7d0da6c.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-6622dd1b22a7885d.js +2 -0
- package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-6622dd1b22a7885d.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/evals/cases/{page-ea5faf58b368feae.js → page-6246be9d6592d1d3.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/evals/cases/{page-ea5faf58b368feae.js.map → page-6246be9d6592d1d3.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/evals/{page-f79e1a90384ba618.js → page-b1e1fd7dba1e675f.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/evals/{page-f79e1a90384ba618.js.map → page-b1e1fd7dba1e675f.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/jobs/{page-e6f02a338bec4806.js → page-a96441a0bc654d68.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/jobs/{page-e6f02a338bec4806.js.map → page-a96441a0bc654d68.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/keys/{page-59ee4e0281131cbc.js → page-163aadfe9ad0d794.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/keys/{page-59ee4e0281131cbc.js.map → page-163aadfe9ad0d794.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/{layout-73d93420d0c6661c.js → layout-694c53aca85ef437.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/{layout-73d93420d0c6661c.js.map → layout-694c53aca85ef437.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-e69828fde85c50af.js +2 -0
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-e69828fde85c50af.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/projects/{layout-f73ad7daf4825f1b.js → layout-d7642b25bf6d33b3.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/projects/{layout-f73ad7daf4825f1b.js.map → layout-d7642b25bf6d33b3.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/roles/page-5d5e5142f0997122.js +2 -0
- package/dist/.next/static/chunks/app/(application)/roles/page-5d5e5142f0997122.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/users/{page-e0a04fda52138aa0.js → page-b862cb199fd72525.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/users/{page-e0a04fda52138aa0.js.map → page-b862cb199fd72525.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/create/{page-6c6076f3f253190d.js → page-d79d5c1c1ecabdb5.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/create/{page-6c6076f3f253190d.js.map → page-d79d5c1c1ecabdb5.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/{page-a3fa477fead5609a.js → page-72cf3aa95776ab96.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/{page-a3fa477fead5609a.js.map → page-72cf3aa95776ab96.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/{page-ddeff54a8b19bdbe.js → page-67864b471b48c950.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/variables/{page-ddeff54a8b19bdbe.js.map → page-67864b471b48c950.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/{page-ed6d136e7ee3a591.js → page-208b4c9cc64abf2e.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/{page-ed6d136e7ee3a591.js.map → page-208b4c9cc64abf2e.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/workflows/page-5b1ffc7c5012fdf6.js +2 -0
- package/dist/.next/static/chunks/app/(application)/workflows/page-5b1ffc7c5012fdf6.js.map +1 -0
- package/dist/.next/static/css/006966ab2edd0ebc.css +4 -0
- package/dist/.next/static/css/006966ab2edd0ebc.css.map +1 -0
- package/dist/.next/static/css/e3f2a16ab7676b05.css.map +1 -1
- package/dist/package.json +4 -1
- package/package.json +1 -1
- package/dist/.next/server/chunks/3743.js +0 -1
- package/dist/.next/server/chunks/4375.js +0 -1
- package/dist/.next/server/chunks/4680.js +0 -1
- package/dist/.next/server/chunks/7203.js +0 -5
- package/dist/.next/server/chunks/7598.js +0 -5
- package/dist/.next/server/chunks/8806.js +0 -1
- package/dist/.next/static/chunks/1957-670ddf66742d95f2.js +0 -2
- package/dist/.next/static/chunks/1957-670ddf66742d95f2.js.map +0 -1
- package/dist/.next/static/chunks/3397-5a704b2e12e9e883.js +0 -2
- package/dist/.next/static/chunks/3397-5a704b2e12e9e883.js.map +0 -1
- package/dist/.next/static/chunks/3832-10b779e2f89f162f.js +0 -2
- package/dist/.next/static/chunks/3832-10b779e2f89f162f.js.map +0 -1
- package/dist/.next/static/chunks/3998-c1c5bec61ce07357.js +0 -2
- package/dist/.next/static/chunks/3998-c1c5bec61ce07357.js.map +0 -1
- package/dist/.next/static/chunks/428-61741966c36f4f72.js +0 -2
- package/dist/.next/static/chunks/428-61741966c36f4f72.js.map +0 -1
- package/dist/.next/static/chunks/5585-4f0c084850210a82.js +0 -2
- package/dist/.next/static/chunks/5585-4f0c084850210a82.js.map +0 -1
- package/dist/.next/static/chunks/5615-042f927b657e6db1.js +0 -41
- package/dist/.next/static/chunks/5615-042f927b657e6db1.js.map +0 -1
- package/dist/.next/static/chunks/5978-f3b8475a2d9f9299.js +0 -2
- package/dist/.next/static/chunks/5978-f3b8475a2d9f9299.js.map +0 -1
- package/dist/.next/static/chunks/6242-c1c2f1479529e9d4.js +0 -2
- package/dist/.next/static/chunks/6242-c1c2f1479529e9d4.js.map +0 -1
- package/dist/.next/static/chunks/6373-fc4799cc7a13474a.js +0 -2
- package/dist/.next/static/chunks/6373-fc4799cc7a13474a.js.map +0 -1
- package/dist/.next/static/chunks/7398-c6de1642586049cd.js +0 -2
- package/dist/.next/static/chunks/7398-c6de1642586049cd.js.map +0 -1
- package/dist/.next/static/chunks/7564-44a20b31206685e1.js.map +0 -1
- package/dist/.next/static/chunks/79-1d568f3c4cd45bd4.js +0 -2
- package/dist/.next/static/chunks/79-1d568f3c4cd45bd4.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-b66390eb4a95ac1a.js +0 -2
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-b66390eb4a95ac1a.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-3807a8bc2ae87548.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/dashboard/page-85d3f8d2bd28ae4b.js +0 -2
- package/dist/.next/static/chunks/app/(application)/dashboard/page-85d3f8d2bd28ae4b.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-822dad4cb57f62e2.js +0 -2
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-822dad4cb57f62e2.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-3efd7701534078ea.js +0 -2
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-3efd7701534078ea.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-b6a3cb8435be3ade.js +0 -2
- package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-b6a3cb8435be3ade.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-19382bb263f85fda.js +0 -2
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-19382bb263f85fda.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/roles/page-acd9ef282bc53557.js +0 -2
- package/dist/.next/static/chunks/app/(application)/roles/page-acd9ef282bc53557.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/workflows/page-38488c44d89b32f4.js +0 -2
- package/dist/.next/static/chunks/app/(application)/workflows/page-38488c44d89b32f4.js.map +0 -1
- package/dist/.next/static/css/a7092ddec8ffd4fb.css +0 -4
- package/dist/.next/static/css/a7092ddec8ffd4fb.css.map +0 -1
- /package/dist/.next/static/{HHwzgh0RLIMeodnSs4vIv → soJPoIxCmlpJ75t9n-Q9V}/_buildManifest.js +0 -0
- /package/dist/.next/static/{HHwzgh0RLIMeodnSs4vIv → soJPoIxCmlpJ75t9n-Q9V}/_ssgManifest.js +0 -0
package/dist/.next/static/chunks/app/(application)/projects/[project]/page-19382bb263f85fda.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[806],{62839:function(e,s,t){Promise.resolve().then(t.bind(t,33354))},33354:function(e,s,t){"use strict";t.r(s),t.d(s,{default:function(){return K}});var i=t(57437),a=t(2265),l=t(99376),r=t(12199),n=t(7211),d=t(63251),c=t(27689),o=t(62869),m=t(95186),u=t(26815),h=t(76818),x=t(66070),p=t(35974),j=t(26110),v=t(19060),f=t(10866),g=t(39763);let N=(0,g.Z)("Files",[["path",{d:"M15.5 2H8.6c-.4 0-.8.2-1.1.5-.3.3-.5.7-.5 1.1v12.8c0 .4.2.8.5 1.1.3.3.7.5 1.1.5h9.8c.4 0 .8-.2 1.1-.5.3-.3.5-.7.5-1.1V6.5L15.5 2z",key:"cennsq"}],["path",{d:"M3 7.6v12.8c0 .4.2.8.5 1.1.3.3.7.5 1.1.5h9.8",key:"ms809a"}],["path",{d:"M15 2v5h5",key:"qq6kwv"}]]);var y=t(53417),b=t(88906),w=t(45675),k=t(99397);let C=(0,g.Z)("PackageMinus",[["path",{d:"M16 16h6",key:"100bgy"}],["path",{d:"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",key:"e7tb2h"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["line",{x1:"12",x2:"12",y1:"22",y2:"12",key:"a4e8g8"}]]);var Z=t(18930),S=t(63639),_=t(73247),P=t(82222),z=t(8014),M=t(93022),R=t(77992),E=t(10492),I=t(87393),A=t(13832),B=t(27648),Y=t(81103),O=t(78361),D=t(36399);let V=(0,g.Z)("PlusSquare",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]]);var L=t(23518);let F=e=>{var s;let{onConfirm:t}=e,{data:l,loading:r,error:n}=(0,D.t)(),[d,c]=(0,a.useState)(void 0),[m,u]=(0,a.useState)(!1);return(0,i.jsxs)(j.Vq,{open:m,onOpenChange:e=>{u(e),c(void 0)},children:[(0,i.jsx)(j.hg,{asChild:!0,children:(0,i.jsxs)(o.z,{className:"w-full",variant:"outline",children:[(0,i.jsx)(V,{className:"h-4 w-4 mr-2"}),"Select items from knowledge sources to add to the project, or upload files."]})}),(0,i.jsxs)(j.cZ,{className:"sm:max-w-[900px]",children:[(0,i.jsxs)(j.fK,{children:[(0,i.jsx)(j.$N,{children:"Item selection"}),(0,i.jsx)(j.Be,{children:"Browse through contexts and select items."})]}),!d&&(0,i.jsxs)(L.mY,{className:"rounded-lg border shadow-md md:min-w-[450px]",children:[(0,i.jsx)(L.sZ,{placeholder:"Type a command or search..."}),(0,i.jsxs)(L.e8,{children:[(0,i.jsx)(L.rb,{children:"No results found."}),(0,i.jsx)(L.fu,{heading:"Contexts",children:null==l?void 0:null===(s=l.contexts)||void 0===s?void 0:s.items.map(e=>(0,i.jsx)(L.di,{onSelect:()=>{c(e)},children:e.name},e.id))})]})]}),d&&(0,i.jsx)(q,{context:d,onConfirm:e=>{console.log("item",e),t([{item:e,context:d}]),u(!1)}})]})]})},q=e=>{var s,t,l,r,d;let{context:o,onConfirm:m}=e,[u,h]=(0,a.useState)(void 0),{loading:x,data:p,refetch:j,previousData:v,error:f}=(0,n.aM)((0,c.P3)(o.id,[]),{fetchPolicy:"no-cache",nextFetchPolicy:"network-only",skip:!o.id,variables:{context:o.id,page:1,limit:10,sort:{field:"updatedAt",direction:"DESC"},filters:{archived:{ne:!0},...u?{name:{contains:"".concat(u)}}:{}}}});return(0,i.jsxs)(L.mY,{className:"rounded-lg border shadow-md md:min-w-[450px]",children:[(0,i.jsx)(L.sZ,{onValueChange:e=>h(e),placeholder:"Type a command or search..."}),(0,i.jsx)(L.e8,{children:(0,i.jsxs)(L.fu,{heading:"Items",children:[!v&&x&&(0,i.jsx)(L.di,{children:(0,i.jsx)(E.g,{})},"loading"),!x&&!(null==p?void 0:null===(t=p[o.id+c.Md])||void 0===t?void 0:null===(s=t.items)||void 0===s?void 0:s.length)&&(0,i.jsx)(L.rb,{children:"No items found."}),null===(d=p||v)||void 0===d?void 0:null===(r=d[o.id+c.Md])||void 0===r?void 0:null===(l=r.items)||void 0===l?void 0:l.map(e=>(0,i.jsx)(L.di,{onSelect:()=>{m(e)},children:e.name},e.id))]})})]})};var U=t(6374);function T(e){var s,t,g,O,D,V,L,q;let{project:T}=e,[Q,X]=(0,a.useState)(!1),[K,$]=(0,a.useState)(!1),[H,J]=(0,a.useState)(!1),[G,ee]=(0,a.useState)(""),[es,et]=(0,a.useState)("overview"),{user:ei}=(0,a.useContext)(A.S),ea=(0,l.useRouter)(),[el,er]=(0,a.useState)({deleteItems:!1,deleteSessions:!1}),[en,ed]=(0,a.useState)({name:T.name||"",description:T.description||"",custom_instructions:T.custom_instructions||""}),{toast:ec}=(0,R.pm)(),[eo,em]=(0,a.useState)({rights_mode:T.rights_mode,users:null===(s=T.RBAC)||void 0===s?void 0:s.users,roles:null===(t=T.RBAC)||void 0===t?void 0:t.roles,projects:null===(g=T.RBAC)||void 0===g?void 0:g.projects}),[eu,eh]=(0,a.useState)(T.project_items||[]),[ex,{loading:ep}]=(0,r.D)(c.b2),[ej]=(0,r.D)(c.Yr),[ev,ef]=(0,a.useState)(!1),{data:eg,loading:eN,refetch:ey}=(0,n.aM)(c.GJ,{variables:{page:1,limit:50,filters:[{project:{eq:T.id}}]}}),{data:eb,loading:ew}=(0,n.aM)(c.ym,{variables:{page:1,limit:100,filters:[],sort:{field:"updatedAt",direction:"DESC"}}}),ek=(0,d.x)(),[eC,{loading:eZ}]=(0,r.D)(c.fB),[eS,{loading:e_}]=(0,r.D)(c.MU),[eP,{loading:ez}]=(0,r.D)(c.S9),eM=(null==eg?void 0:null===(O=eg.agent_sessionsPagination)||void 0===O?void 0:O.items)||[],eR=(null==eb?void 0:null===(D=eb.agentsPagination)||void 0===D?void 0:D.items)||[],eE=a.useMemo(()=>G?eR.filter(e=>e.name.toLowerCase().includes(G.toLowerCase())):eR,[eR,G]),eI=async()=>{if(!en.name.trim()){ec({title:"Validation Error",description:"Project name is required.",variant:"destructive"});return}try{await ex({variables:{id:T.id,input:{name:en.name.trim(),description:en.description.trim()||null,custom_instructions:en.custom_instructions.trim()||null}}}),ec({title:"Success",description:"Project updated successfully!"}),X(!1)}catch(e){console.error("Error updating project:",e),ec({title:"Error",description:e.message||"Failed to update project. Please try again.",variant:"destructive"})}},eA=async e=>{try{var s,t,i;let a=await eC({variables:{title:"New session with ".concat(e.name),agent:e.id,project:T.id,rights_mode:"projects",RBAC:{projects:[{id:T.id,rights:"read"}]}}}),l=null===(i=a.data)||void 0===i?void 0:null===(t=i.agent_sessionsCreateOne)||void 0===t?void 0:null===(s=t.item)||void 0===s?void 0:s.id;l&&(ec({title:"Success",description:"Session created successfully! Sessions started in a project are accessible for viewing by project members."}),J(!1),ee(""),ea.push("/chat/".concat(e.id,"/").concat(l)))}catch(e){console.error("Error creating session:",e),ec({title:"Error",description:e.message||"Failed to create session. Please try again.",variant:"destructive"})}},eB=async()=>{try{ef(!0),el.deleteItems&&await Promise.all(eu.map(async e=>{var s,t;let i=e.split("/")[0],a=e.split("/")[1];if(!i||!a)return;let{data:l}=await ek.mutate({mutation:(0,c.mN)(i,"files_default_context"===i?["s3key"]:[]),variables:{id:a}});if(null===(s=l["".concat(i,"_itemsRemoveOneById")])||void 0===s?void 0:s.s3key)try{await U.QZ.delete(null===(t=l["".concat(i,"_itemsRemoveOneById")])||void 0===t?void 0:t.s3key)}catch(e){console.error("[EXULU] Error deleting file from s3 storage:",e)}})),await Promise.all(eM.map(async e=>{el.deleteSessions?await eP({variables:{id:e.id}}):await eS({variables:{id:e.id,project:null}})})),await ej({variables:{id:T.id}}),ec({title:"Success",description:'Project "'.concat(T.name,'" has been deleted successfully.')}),$(!1),ef(!1),ea.push("/projects")}catch(e){ef(!1),console.error("Error deleting project:",e),ec({title:"Error",description:e.message||"Failed to delete project. Please try again.",variant:"destructive"})}};return(0,i.jsxs)("div",{className:"flex-1 p-6 mt-20",children:[(0,i.jsx)("div",{className:"max-w-5xl mx-auto space-y-6",children:(0,i.jsxs)("div",{className:"flex gap-6 h-full",children:[(0,i.jsxs)("div",{className:"w-80 space-y-4",children:[(0,i.jsx)(x.Zb,{children:(0,i.jsx)(x.aY,{className:"p-4",children:(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsx)("h3",{className:"font-semibold text-lg",children:T.name}),(0,i.jsx)("p",{className:"text-muted-foreground text-sm leading-relaxed",children:T.description||"No description provided."})]})})}),(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsxs)(o.z,{variant:"overview"===es?"default":"ghost",className:"w-full justify-start",onClick:()=>et("overview"),children:[(0,i.jsx)(f.Z,{className:"h-4 w-4 mr-2"}),"Project information"]}),(0,i.jsxs)(o.z,{variant:"context"===es?"default":"ghost",className:"w-full justify-start",onClick:()=>et("context"),children:[(0,i.jsx)(N,{className:"h-4 w-4 mr-2"}),"Project files"]}),(0,i.jsxs)(o.z,{variant:"sessions"===es?"default":"ghost",className:"w-full justify-start",onClick:()=>et("sessions"),children:[(0,i.jsx)(y.Z,{className:"h-4 w-4 mr-2"}),"Project sessions"]}),(0,i.jsxs)(o.z,{variant:"access"===es?"default":"ghost",className:"w-full justify-start",onClick:()=>et("access"),children:[(0,i.jsx)(b.Z,{className:"h-4 w-4 mr-2"}),"Access control"]}),(0,i.jsxs)(o.z,{variant:"settings"===es?"default":"ghost",className:"w-full justify-start",onClick:()=>et("settings"),children:[(0,i.jsx)(f.Z,{className:"h-4 w-4 mr-2"}),"Project settings"]})]})]}),(0,i.jsxs)("div",{className:"flex-1",children:["overview"===es&&(0,i.jsx)("div",{className:"space-y-6",children:(0,i.jsxs)(x.Zb,{children:[(0,i.jsxs)(x.Ol,{children:[(0,i.jsx)(x.ll,{children:"Project Information"}),(0,i.jsx)(x.SZ,{children:"Basic information about this project"})]}),(0,i.jsxs)(x.aY,{className:"space-y-4",children:[(0,i.jsx)("div",{className:"grid gap-4",children:(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)(u._,{htmlFor:"name",children:"Project Name"}),Q?(0,i.jsx)(m.I,{id:"name",value:en.name,onChange:e=>ed({...en,name:e.target.value})}):(0,i.jsx)("p",{className:"text-sm",children:T.name})]})}),(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)(u._,{htmlFor:"description",children:"Description"}),Q?(0,i.jsx)(h.g,{id:"description",value:en.description,onChange:e=>ed({...en,description:e.target.value}),rows:3}):(0,i.jsx)("p",{className:"text-sm",children:T.description||"No description provided"})]}),(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)(u._,{htmlFor:"instructions",children:"Custom Instructions"}),Q?(0,i.jsx)(h.g,{id:"instructions",value:en.custom_instructions,onChange:e=>ed({...en,custom_instructions:e.target.value}),rows:4,placeholder:"Enter custom instructions for sessions in this project..."}):(0,i.jsx)("p",{className:"text-sm",children:T.custom_instructions||"No custom instructions set"})]})]}),(0,i.jsx)(x.eW,{children:(0,i.jsx)("div",{className:"flex items-center justify-between",children:(0,i.jsx)("div",{className:"flex gap-2",children:Q?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(o.z,{variant:"outline",onClick:()=>{T&&ed({name:T.name||"",description:T.description||"",custom_instructions:T.custom_instructions||""}),X(!1)},children:"Cancel"}),(0,i.jsxs)(o.z,{onClick:eI,children:[(0,i.jsx)("span",{children:"Save changes"}),ep&&(0,i.jsx)(E.g,{className:"mr-2"})]})]}):(0,i.jsxs)(o.z,{variant:"outline",onClick:()=>X(!0),children:[(0,i.jsx)(w.Z,{className:"h-4 w-4 mr-2"}),"Edit"]})})})})]})}),"context"===es&&(0,i.jsx)("div",{className:"space-y-6 w-full",children:(0,i.jsxs)(x.Zb,{children:[(0,i.jsxs)(x.Ol,{children:[(0,i.jsx)(x.ll,{children:"Project context items"}),(0,i.jsx)(x.SZ,{children:"Items that provide context for sessions in this project (max 15 items). Note that different agents may have different file types supported."})]}),(0,i.jsx)(x.aY,{children:(0,i.jsxs)("div",{className:"space-y-4",children:[(0,i.jsx)(F,{onConfirm:e=>{let s=[...eu,...e.map(e=>"".concat(e.context.id,"/").concat(e.item.id))];console.log("update",s),eh(s),ex({variables:{id:T.id,input:{project_items:s}}})}}),(0,i.jsx)("div",{className:"space-y-2",children:(0,i.jsxs)("div",{className:"space-y-2",children:[(null==eu?void 0:eu.length)===0&&(0,i.jsxs)("div",{className:"text-center py-8 text-muted-foreground",children:[(0,i.jsx)(N,{className:"h-12 w-12 mx-auto mb-2 opacity-50"}),(0,i.jsx)("p",{children:"No items added to the project context yet."})]}),(0,i.jsx)("div",{className:"grid grid-cols-3 sm:grid-cols-4 gap-3",children:null==eu?void 0:eu.map(e=>(0,i.jsx)(W,{gid:e,onRemove:e=>{let s=eu.filter(s=>s!==e);eh(s),ex({variables:{id:T.id,input:{project_items:s}}})}},e))})]})})]})})]})}),"sessions"===es&&(0,i.jsx)("div",{className:"space-y-6",children:(0,i.jsxs)(x.Zb,{children:[(0,i.jsxs)(x.Ol,{children:[(0,i.jsx)(x.ll,{children:"Project sessions"}),(0,i.jsx)(x.SZ,{children:"Sessions associated with this project"})]}),(0,i.jsx)(x.aY,{children:(0,i.jsxs)("div",{className:"space-y-4",children:[(0,i.jsxs)(o.z,{onClick:()=>{J(!0)},className:"w-full",variant:"outline",children:[(0,i.jsx)(k.Z,{className:"h-4 w-4 mr-2"}),"Start new session"]}),(0,i.jsx)("div",{className:"space-y-2",children:eM.map(e=>{let s=(0,I.I)(e,ei);return(0,i.jsxs)("div",{className:"flex items-center justify-between p-3 border rounded-lg",children:[(0,i.jsxs)("div",{className:"flex items-center gap-3",children:[(0,i.jsx)(y.Z,{className:"h-4 w-4"}),(0,i.jsx)("div",{children:(0,i.jsx)(B.default,{href:"/chat/".concat(e.agent,"/").concat(e.id),children:(0,i.jsx)("p",{className:"font-medium max-w-[80%] truncate",children:e.title})})})]}),(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsxs)(Y.u,{children:[(0,i.jsx)(Y.aJ,{asChild:!0,children:(0,i.jsx)(o.z,{disabled:!s||e_,variant:"ghost",size:"sm",onClick:()=>{e_||(eS({variables:{id:e.id,project:null}}),ey())},children:(0,i.jsx)(C,{className:"h-4 w-4"})})}),(0,i.jsx)(Y._v,{children:(0,i.jsx)("p",{children:"Remove session from project."})})]}),(0,i.jsxs)(Y.u,{children:[(0,i.jsx)(Y.aJ,{asChild:!0,children:(0,i.jsx)(o.z,{disabled:!s||ez,variant:"ghost",size:"sm",onClick:()=>{ez||(eP({variables:{id:e.id}}),ey())},children:(0,i.jsx)(Z.Z,{className:"h-4 w-4"})})}),(0,i.jsx)(Y._v,{children:(0,i.jsx)("p",{children:"Delete session completely."})})]})]})]},e.id)})}),0===eM.length&&!eN&&(0,i.jsxs)("div",{className:"text-center py-8 text-muted-foreground",children:[(0,i.jsx)(y.Z,{className:"h-12 w-12 mx-auto mb-2 opacity-50"}),(0,i.jsx)("p",{children:"No sessions found"})]}),eN&&(0,i.jsxs)("div",{className:"text-center py-8 text-muted-foreground",children:[(0,i.jsx)(y.Z,{className:"h-12 w-12 mx-auto mb-2 opacity-50"}),(0,i.jsx)("p",{children:"Loading sessions..."})]})]})})]})}),"access"===es&&(0,i.jsx)("div",{className:"space-y-6",children:(0,i.jsxs)(x.Zb,{children:[(0,i.jsxs)(x.Ol,{children:[(0,i.jsx)(x.ll,{children:"Access Control"}),(0,i.jsx)(x.SZ,{children:"Control who can access this project"})]}),(0,i.jsx)(x.aY,{children:(0,i.jsx)(z.P,{allowedModes:["private","users","roles"],initialRightsMode:T.rights_mode||"private",initialUsers:null===(V=T.RBAC)||void 0===V?void 0:V.users,initialRoles:null===(L=T.RBAC)||void 0===L?void 0:L.roles,initialProjects:null===(q=T.RBAC)||void 0===q?void 0:q.projects,onChange:(e,s,t,i)=>{em({rights_mode:e,users:s,roles:t,projects:i})}})}),(0,i.jsx)(x.eW,{children:(0,i.jsxs)(o.z,{onClick:()=>{ex({variables:{id:T.id,input:{rights_mode:eo.rights_mode,RBAC:{users:eo.users,roles:eo.roles,projects:eo.projects}}}})},children:[(0,i.jsx)("span",{children:"Save access rights"}),ep&&(0,i.jsx)(E.g,{className:"ml-2"})]})})]})}),"settings"===es&&(0,i.jsx)("div",{className:"space-y-6",children:(0,i.jsxs)(x.Zb,{children:[(0,i.jsxs)(x.Ol,{children:[(0,i.jsx)(x.ll,{children:"Danger Zone"}),(0,i.jsx)(x.SZ,{children:"Permanently delete this project and all associated data"})]}),(0,i.jsx)(x.aY,{children:(0,i.jsxs)("div",{className:"space-y-4",children:[(0,i.jsxs)("div",{className:"flex items-start gap-3 p-4 border border-destructive/20 rounded-lg bg-destructive/5",children:[(0,i.jsx)(S.Z,{className:"h-5 w-5 text-destructive mt-0.5"}),(0,i.jsxs)("div",{className:"flex-1",children:[(0,i.jsx)("h4",{className:"font-medium text-destructive",children:"Delete Project"}),(0,i.jsx)("p",{className:"text-sm text-muted-foreground mt-1",children:"This action cannot be undone. This will permanently delete the project and optionally remove all associated context files and sessions."})]})]}),(0,i.jsxs)(j.Vq,{open:K,onOpenChange:$,children:[(0,i.jsx)(j.hg,{asChild:!0,children:(0,i.jsxs)(o.z,{variant:"destructive",children:[(0,i.jsx)(Z.Z,{className:"h-4 w-4 mr-2"}),"Delete Project"]})}),(0,i.jsxs)(j.cZ,{className:"sm:max-w-md",children:[(0,i.jsxs)(j.fK,{children:[(0,i.jsx)(j.$N,{children:"Delete Project"}),(0,i.jsxs)(j.Be,{children:['Are you sure you want to delete "',T.name,'"? This action cannot be undone.']})]}),(0,i.jsxs)("div",{className:"space-y-4",children:[(0,i.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,i.jsx)(v.X,{id:"delete-items",checked:el.deleteItems,onCheckedChange:e=>er(s=>({...s,deleteItems:e}))}),(0,i.jsxs)("label",{htmlFor:"delete-items",className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",children:["Also delete all context items (",null==eu?void 0:eu.length," items)"]})]}),(0,i.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,i.jsx)(v.X,{id:"delete-sessions",checked:el.deleteSessions,onCheckedChange:e=>er(s=>({...s,deleteSessions:e}))}),(0,i.jsxs)("label",{htmlFor:"delete-sessions",className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",children:["Also delete all sessions (",eM.length," sessions)"]})]}),(el.deleteItems||el.deleteSessions)&&(0,i.jsxs)("div",{className:"flex items-start gap-2 p-3 border border-amber-200 rounded-lg bg-amber-50",children:[(0,i.jsx)(S.Z,{className:"h-4 w-4 text-amber-600 mt-0.5"}),(0,i.jsx)("p",{className:"text-sm text-amber-800",children:el.deleteItems&&el.deleteSessions?"All context items and sessions will be permanently deleted.":el.deleteItems?"All context items will be permanently deleted.":"All sessions will be permanently deleted."})]})]}),(0,i.jsxs)(j.cN,{className:"sm:justify-start",children:[(0,i.jsx)(o.z,{variant:"outline",onClick:()=>$(!1),children:"Cancel"}),(0,i.jsxs)(o.z,{disabled:ev,variant:"destructive",onClick:eB,children:[ev?(0,i.jsx)(E.g,{className:"mr-2 w-4 h-4"}):(0,i.jsx)(Z.Z,{className:"h-4 w-4 mr-2"}),"Delete Project"]})]})]})]})]})})]})})]})]})}),(0,i.jsx)(j.Vq,{open:H,onOpenChange:J,children:(0,i.jsxs)(j.cZ,{className:"sm:max-w-4xl",children:[(0,i.jsxs)(j.fK,{children:[(0,i.jsx)(j.$N,{children:"Select an Agent"}),(0,i.jsx)(j.Be,{children:"Choose an agent to start a new chat session. Sessions started in a project are accessible for viewing by project members."})]}),(0,i.jsxs)("div",{className:"space-y-4",children:[(0,i.jsxs)("div",{className:"relative",children:[(0,i.jsx)(_.Z,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground"}),(0,i.jsx)(m.I,{placeholder:"Search agents...",value:G,onChange:e=>ee(e.target.value),className:"pl-10"})]}),(0,i.jsx)("div",{className:"max-h-96 overflow-y-auto",children:ew?(0,i.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[...Array(6)].map((e,s)=>(0,i.jsx)("div",{className:"p-4 border rounded-lg",children:(0,i.jsxs)("div",{className:"flex items-center gap-3",children:[(0,i.jsx)(M.O,{className:"h-12 w-12 rounded-full"}),(0,i.jsxs)("div",{className:"space-y-2 flex-1",children:[(0,i.jsx)(M.O,{className:"h-4 w-3/4"}),(0,i.jsx)(M.O,{className:"h-3 w-1/2"})]})]})},s))}):eE.length>0?(0,i.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:eE.map(e=>(0,i.jsx)("div",{className:"p-4 border rounded-lg hover:border-primary cursor-pointer transition-colors",onClick:()=>eA(e),children:(0,i.jsxs)("div",{className:"flex items-center gap-3",children:[(0,i.jsx)("div",{className:"h-12 w-12 rounded-full bg-primary/10 flex items-center justify-center",children:e.image?(0,i.jsx)("img",{src:e.image,alt:e.name,className:"h-12 w-12 rounded-full object-cover"}):(0,i.jsx)(P.Z,{className:"h-6 w-6"})}),(0,i.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,i.jsx)("p",{className:"font-medium truncate",children:e.name}),(0,i.jsx)("p",{className:"text-sm text-muted-foreground truncate",children:e.description||"".concat(e.type," agent")}),(0,i.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,i.jsx)(p.C,{variant:e.active?"default":"secondary",className:"text-xs",children:e.active?"Active":"Inactive"}),(0,i.jsx)(p.C,{variant:"outline",className:"text-xs",children:e.type})]})]})]})},e.id))}):(0,i.jsxs)("div",{className:"text-center py-8 text-muted-foreground",children:[(0,i.jsx)(P.Z,{className:"h-12 w-12 mx-auto mb-2 opacity-50"}),(0,i.jsx)("p",{children:G?"No agents found matching your search":"No agents available"})]})})]}),(0,i.jsx)(j.cN,{children:(0,i.jsx)(o.z,{variant:"outline",onClick:()=>J(!1),children:"Cancel"})})]})})]})}function W(e){let{gid:s,onRemove:t}=e,a=s.split("/")[0],l=s.split("/")[1];if(!a||!l)return null;let{data:r,loading:d}=(0,n.aM)((0,c.A1)(a,"files_default_context"===a?["s3key"]:[]),{variables:{id:l}});if(console.log("data",r),d)return null;let o=null==r?void 0:r[a+"_itemsById"];if(!o)return null;let m=Object.values(o||{}).filter(e=>"_s3key"===e);return m.length?(0,i.jsx)(i.Fragment,{children:m.map(e=>(0,i.jsx)(O.jU,{s3Key:e,onRemove:()=>{t(s)},active:!1,disabled:!1}))}):null}var Q=t(65613),X=t(20653);function K(){let e=(0,l.useParams)(),s=null==e?void 0:e.project,{data:t,loading:a,error:r}=(0,n.aM)(c.jL,{variables:{id:s}});return a?(0,i.jsx)("div",{children:(0,i.jsx)(M.O,{className:"w-full h-full"})}):r?(0,i.jsxs)(Q.bZ,{variant:"destructive",children:[(0,i.jsx)(X.LPM,{className:"size-4"}),(0,i.jsx)(Q.Cd,{children:"Error"}),(0,i.jsx)(Q.X,{children:"Error loading project."})]}):(null==t?void 0:t.projectById)?(0,i.jsx)(T,{project:t.projectById}):(0,i.jsxs)(Q.bZ,{variant:"destructive",children:[(0,i.jsx)(X.LPM,{className:"size-4"}),(0,i.jsx)(Q.Cd,{children:"Error"}),(0,i.jsx)(Q.X,{children:"Project not found."})]})}},8014:function(e,s,t){"use strict";t.d(s,{P:function(){return S}});var i=t(57437),a=t(27689),l=t(2265),r=t(63251),n=t(7211),d=t(53647),c=t(66337),o=t(95805),m=t(98728),u=t(29202),h=t(14924),x=t(24156),p=t(30401),j=t(15863),v=t(18930),f=t(95186),g=t(26110),N=t(19378),y=t(94508),b=t(57054),w=t(23518),k=t(62869),C=t(26815);let Z=[{value:"private",label:"Private",description:"Only you can see this agent",icon:c.Z},{value:"users",label:"Shared with Users",description:"Share with specific users",icon:o.Z},{value:"roles",label:"Shared with Roles",description:"Share with specific roles",icon:m.Z},{value:"public",label:"Public",description:"Anyone can see this agent",icon:u.Z},{value:"projects",label:"Projects",description:"Share with specific projects",icon:h.Z}];function S(e){var s,t;let{allowedModes:c,initialRightsMode:o,initialUsers:m,initialRoles:u,initialProjects:h,onChange:S}=e,[_,P]=(0,l.useState)(o),[z,M]=(0,l.useState)(m||[]),[R,E]=(0,l.useState)(u||[]),[I,A]=(0,l.useState)([]),[B,Y]=(0,l.useState)(!1),[O,D]=(0,l.useState)([]),[V,L]=(0,l.useState)(""),[F,q]=(0,l.useState)(!1),[U,T]=(0,l.useState)(!1),W=(0,r.x)(),{data:Q,loading:X,refetch:K}=(0,n.aM)(a.fo,{variables:{page:1,limit:5,filters:O},skip:"users"!==_||!V}),$=(0,n.aM)(a.l1,{fetchPolicy:"cache-first",nextFetchPolicy:"network-only",variables:{page:1,limit:30,filters:[{type:{ne:"api"}}]}}),H=(0,l.useCallback)(e=>{L(e);let s=[...O,{type:{ne:"api"}}],t=s.find(e=>e.email);(null==t?void 0:t.email)?t.email.contains=e:s.push({email:{contains:e}}),D(s),K()},[O,K]),J=async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5;if(T(!0),!z||0===z.length){A([]),T(!1);return}let s=null==z?void 0:z.slice(0,e).map(async e=>{let{id:s,rights:t}=e;return{...(await W.query({query:a.L5,variables:{id:s}})).data.userById,rights:t}});A(await Promise.all(s)),T(!1)};(0,l.useEffect)(()=>{J(5)},[]),(0,l.useEffect)(()=>{console.log("selectedUsers",z),console.log("hydratedUsers",I),S(_,z,R,[])},[_,z,R]);let G=null==I?void 0:I.slice(0,5).filter(e=>!!(null==e?void 0:e.id)),ee=Z;return(null==c?void 0:c.length)&&(ee=Z.filter(e=>c.includes(e.value))),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)(C._,{className:"text-sm font-medium",children:"Visibility & sharing"}),(0,i.jsxs)(b.J2,{open:B,onOpenChange:Y,children:[(0,i.jsx)(b.xo,{asChild:!0,children:(0,i.jsxs)(k.z,{variant:"outline",role:"combobox","aria-expanded":B,className:"w-full justify-between text-sm capitalize",children:[(null===(s=ee.find(e=>e.value===_))||void 0===s?void 0:s.label)||"Select visibility...",(0,i.jsx)(x.Z,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,i.jsx)(b.yk,{className:"w-full p-0",children:(0,i.jsxs)(w.mY,{children:[(0,i.jsx)(w.sZ,{placeholder:"Search options..."}),(0,i.jsxs)(w.e8,{children:[(0,i.jsx)(w.rb,{children:"No options found."}),(0,i.jsx)(w.fu,{children:ee.map(e=>(0,i.jsxs)(w.di,{onSelect:()=>{"users"!==e.value&&M([]),"roles"!==e.value&&E([]),P(e.value),Y(!1)},children:[(0,i.jsx)(p.Z,{className:(0,y.cn)("mr-2 h-4 w-4",_===e.value?"opacity-100":"opacity-0")}),(0,i.jsxs)("div",{className:"flex flex-col",children:[(0,i.jsx)("span",{children:e.label}),(0,i.jsx)("span",{className:"text-xs text-muted-foreground",children:e.description})]})]},e.value))})]})]})})]})]}),"users"===_&&(0,i.jsx)("div",{className:"space-y-3 pt-3",children:(0,i.jsxs)("div",{children:[(0,i.jsx)(C._,{className:"text-sm font-medium",children:"Share with users"}),(0,i.jsx)("div",{className:"mt-2",children:(0,i.jsx)(f.I,{placeholder:"Search users by email...",value:V,onChange:e=>H(e.target.value),className:"text-sm"})}),X&&(0,i.jsxs)("div",{className:"mt-2 flex items-center justify-center py-4",children:[(0,i.jsx)(j.Z,{className:"h-4 w-4 animate-spin mr-2"}),(0,i.jsx)("span",{className:"text-sm text-muted-foreground",children:"Loading users..."})]}),!X&&Q&&(null===(t=Q.usersPagination)||void 0===t?void 0:t.items.length)>0&&(0,i.jsxs)("div",{className:"mt-2",children:[(0,i.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:"Search Results:"}),(0,i.jsx)("div",{className:"max-h-50 overflow-y-auto border rounded-lg",children:Q.usersPagination.items.filter(e=>!z.some(s=>s.id===e.id)).map(e=>(0,i.jsxs)("label",{className:"flex items-center space-x-2 p-2 hover:bg-muted/50 cursor-pointer",children:[(0,i.jsx)("input",{type:"checkbox",checked:z.some(s=>s.id===e.id),onChange:s=>{M(s=>[...s,{id:e.id,rights:"read"}]),A(s=>[...s,{...e,rights:"read"}])}}),(0,i.jsx)("span",{className:"text-sm",children:e.email})]},e.id))}),(0,i.jsxs)("div",{className:"text-xs text-muted-foreground mt-2",children:[(0,i.jsx)("span",{className:"font-medium",children:"Note:"})," Only the first 5 users are shown, use the Search bar to find more users."]})]}),!X&&V&&Q&&0===Q.usersPagination.items.length&&(0,i.jsx)("div",{className:"mt-2 text-center py-4",children:(0,i.jsx)("span",{className:"text-sm text-muted-foreground",children:"No users found"})}),(null==G?void 0:G.length)>0?(0,i.jsxs)("div",{className:"mt-2",children:[(0,i.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:"Selected Users:"}),(0,i.jsxs)("div",{className:"space-y-1",children:[G.map(e=>(0,i.jsxs)("div",{className:"flex items-center gap-2 border p-2 rounded-lg text-sm",children:[(0,i.jsx)("span",{className:"flex-1 pl-2",children:e.email}),(0,i.jsxs)(d.Ph,{value:e.rights,onValueChange:s=>{M(t=>t.map(t=>t.id===e.id?{...t,rights:s}:t)),A(t=>t.map(t=>t.id===e.id?{...t,rights:s}:t))},children:[(0,i.jsx)(d.i4,{className:"h-6 w-20 text-xs",children:(0,i.jsx)(d.ki,{})}),(0,i.jsxs)(d.Bw,{children:[(0,i.jsx)(d.Ql,{value:"read",children:"Read"}),(0,i.jsx)(d.Ql,{value:"write",children:"Write"})]})]}),(0,i.jsx)(k.z,{size:"sm",variant:"ghost",className:"h-5 w-5 p-0 hover:bg-blue-100",onClick:()=>{M(s=>s.filter(s=>s.id!==e.id)),A(s=>s.filter(s=>s.id!==e.id))},children:(0,i.jsx)(v.Z,{className:"w-3 h-3"})})]},e.id)),z&&z.length>5&&(0,i.jsxs)(k.z,{variant:"link",type:"button",className:"h-auto p-0 text-blue-600 hover:text-blue-800 text-xs",onClick:()=>{J(50),q(!0)},children:["+ ",z.length-5," more users"]})]})]}):(0,i.jsx)("div",{className:"mt-2 text-center py-4",children:(0,i.jsx)("span",{className:"text-sm text-muted-foreground",children:"No users selected."})})]})}),"roles"===_&&(0,i.jsx)("div",{className:"space-y-3",children:(0,i.jsxs)("div",{children:[(0,i.jsxs)(C._,{className:"text-sm font-medium",children:["Share with roles (",(null==R?void 0:R.length)||0,")"]}),(0,i.jsxs)("div",{className:"mt-2",children:[(0,i.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:"Available Roles"}),$.loading&&(0,i.jsxs)("div",{className:"flex items-center justify-center py-4 border rounded-lg",children:[(0,i.jsx)(j.Z,{className:"h-4 w-4 animate-spin mr-2"}),(0,i.jsx)("span",{className:"text-sm text-muted-foreground",children:"Loading roles..."})]}),!$.loading&&$.data&&(0,i.jsx)("div",{className:"max-h-24 overflow-y-auto border rounded-lg",children:$.data.rolesPagination.items.map(e=>(0,i.jsxs)("label",{className:"flex items-center space-x-2 p-2 hover:bg-muted/50 cursor-pointer",children:[(0,i.jsx)("input",{type:"checkbox",checked:R.some(s=>s.id===e.id),onChange:s=>{s.target.checked?E(s=>[...s,{id:e.id,rights:"read"}]):E(s=>s.filter(s=>s.id!==e.id))}}),(0,i.jsx)("span",{className:"text-sm capitalize",children:e.name})]},e.id))})]}),R.length>0&&$.data&&(0,i.jsxs)("div",{className:"mt-2",children:[(0,i.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:"Selected Roles:"}),(0,i.jsx)("div",{className:"space-y-1",children:R.map(e=>{let s=$.data.rolesPagination.items.find(s=>s.id===e.id);return(0,i.jsxs)("div",{className:"flex items-center gap-2 border p-2 rounded-lg text-sm",children:[(0,i.jsx)("span",{className:"flex-1 pl-2 capitalize",children:null==s?void 0:s.name}),(0,i.jsxs)(d.Ph,{value:e.rights,onValueChange:s=>{E(t=>t.map(t=>t.id===e.id?{...t,rights:s}:t))},children:[(0,i.jsx)(d.i4,{className:"h-6 text-xs w-20 border-none",children:(0,i.jsx)(d.ki,{})}),(0,i.jsxs)(d.Bw,{children:[(0,i.jsx)(d.Ql,{value:"read",children:(0,i.jsx)("span",{className:"pr-7",children:"Read"})}),(0,i.jsx)(d.Ql,{value:"write",children:(0,i.jsx)("span",{className:"pr-7",children:"Write"})})]})]}),(0,i.jsx)(k.z,{size:"sm",variant:"ghost",className:"h-5 w-5 p-0 hover:bg-blue-100",onClick:()=>{E(s=>s.filter(s=>s.id!==e.id))},children:(0,i.jsx)(v.Z,{className:"w-3 h-3"})})]},e.id)})})]})]})}),(0,i.jsx)(g.Vq,{open:F,onOpenChange:q,children:(0,i.jsxs)(g.cZ,{className:"sm:max-w-2xl max-h-[85vh] flex flex-col",children:[(0,i.jsxs)(g.fK,{children:[(0,i.jsxs)(g.$N,{children:["All Selected Users (",(null==z?void 0:z.length)||0,")"]}),(0,i.jsx)(g.Be,{children:"View and manage all selected users and their permissions"})]}),(0,i.jsxs)(N.x,{className:"flex-1 pr-4",children:[U&&(0,i.jsxs)("div",{className:"flex items-center justify-center py-8",children:[(0,i.jsx)(j.Z,{className:"h-6 w-6 animate-spin mr-2"}),(0,i.jsx)("span",{className:"text-sm text-muted-foreground",children:"Loading users..."})]}),!U&&I.length>0&&(0,i.jsx)("div",{className:"space-y-2",children:I.map(e=>(0,i.jsxs)("div",{className:"flex items-center gap-3 border p-3 rounded-lg",children:[(0,i.jsx)("span",{className:"flex-1",children:e.email}),(0,i.jsxs)(d.Ph,{value:e.rights,onValueChange:s=>{M(t=>t.map(t=>t.id===e.id?{...t,rights:s}:t)),A(t=>t.map(t=>t.id===e.id?{...t,rights:s}:t))},children:[(0,i.jsx)(d.i4,{className:"w-24",children:(0,i.jsx)(d.ki,{})}),(0,i.jsxs)(d.Bw,{children:[(0,i.jsx)(d.Ql,{value:"read",children:"Read"}),(0,i.jsx)(d.Ql,{value:"write",children:"Write"})]})]}),(0,i.jsx)(k.z,{size:"sm",variant:"ghost",className:"h-8 w-8 p-0 hover:bg-destructive/10",onClick:()=>{M(s=>s.filter(s=>s.id!==e.id)),A(s=>s.filter(s=>s.id!==e.id))},children:(0,i.jsx)(v.Z,{className:"w-4 h-4"})})]},e.id))}),!U&&0===I.length&&(0,i.jsx)("div",{className:"text-center py-8",children:(0,i.jsx)("span",{className:"text-sm text-muted-foreground",children:"No users selected"})})]})]})})]})}},19060:function(e,s,t){"use strict";t.d(s,{X:function(){return d}});var i=t(57437),a=t(9270),l=t(30401),r=t(2265),n=t(94508);let d=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,i.jsx)(a.fC,{ref:s,className:(0,n.cn)("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",t),...r,children:(0,i.jsx)(a.z$,{className:(0,n.cn)("flex items-center justify-center text-current"),children:(0,i.jsx)(l.Z,{className:"size-4"})})})});d.displayName=a.fC.displayName},23518:function(e,s,t){"use strict";t.d(s,{di:function(){return x},e8:function(){return o},fu:function(){return u},mY:function(){return d},rb:function(){return m},sZ:function(){return c},zz:function(){return h}});var i=t(57437),a=t(83918),l=t(73247),r=t(2265);t(26110);var n=t(94508);let d=r.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,i.jsx)(a.mY,{ref:s,className:(0,n.cn)("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",t),...l})});d.displayName=a.mY.displayName;let c=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,i.jsxs)("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[(0,i.jsx)(l.Z,{className:"mr-2 size-4 shrink-0 opacity-50"}),(0,i.jsx)(a.mY.Input,{ref:s,className:(0,n.cn)("flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",t),...r})]})});c.displayName=a.mY.Input.displayName;let o=r.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,i.jsx)(a.mY.List,{ref:s,className:(0,n.cn)("max-h-[300px] overflow-y-auto overflow-x-hidden",t),...l})});o.displayName=a.mY.List.displayName;let m=r.forwardRef((e,s)=>(0,i.jsx)(a.mY.Empty,{ref:s,className:"py-6 text-center text-sm",...e}));m.displayName=a.mY.Empty.displayName;let u=r.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,i.jsx)(a.mY.Group,{ref:s,className:(0,n.cn)("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",t),...l})});u.displayName=a.mY.Group.displayName;let h=r.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,i.jsx)(a.mY.Separator,{ref:s,className:(0,n.cn)("-mx-1 h-px bg-border",t),...l})});h.displayName=a.mY.Separator.displayName;let x=r.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,i.jsx)(a.mY.Item,{ref:s,className:(0,n.cn)("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...l})});x.displayName=a.mY.Item.displayName},10492:function(e,s,t){"use strict";t.d(s,{g:function(){return l}});var i=t(57437),a=t(94508);let l=e=>{let{className:s}=e;return(0,i.jsxs)("svg",{"aria-hidden":"true",role:"status",className:(0,a.cn)("inline w-4 h-4 text-white animate-spin fill-inherit",s),viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,i.jsx)("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",className:"fill-inherit opacity-20"}),(0,i.jsx)("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",className:"fill-inherit"})]})}},57054:function(e,s,t){"use strict";t.d(s,{J2:function(){return n},xo:function(){return d},yk:function(){return c}});var i=t(57437),a=t(27312),l=t(2265),r=t(94508);let n=a.fC,d=a.xz,c=l.forwardRef((e,s)=>{let{className:t,align:l="center",sideOffset:n=4,...d}=e;return(0,i.jsx)(a.h_,{children:(0,i.jsx)(a.VY,{ref:s,align:l,sideOffset:n,className:(0,r.cn)("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...d})})});c.displayName=a.VY.displayName},36399:function(e,s,t){"use strict";t.d(s,{t:function(){return l}});var i=t(27689),a=t(7211);let l=()=>(0,a.aM)(i.uw,{variables:{limit:20}})},87393:function(e,s,t){"use strict";t.d(s,{I:function(){return i}});let i=(e,s)=>{var t,i,a,l,r,n;let d="private"===e.rights_mode,c="public"===e.rights_mode,o="users"===e.rights_mode,m="roles"===e.rights_mode,u=s.super_admin,h=e.created_by===s.id.toString(),x=!1;return d&&h&&(x=!0),c&&(x=!0),o&&(x=(null===(a=e.RBAC)||void 0===a?void 0:null===(i=a.users)||void 0===i?void 0:null===(t=i.find(e=>e.id===s.id))||void 0===t?void 0:t.rights)==="write"),m&&(x=(null===(n=e.RBAC)||void 0===n?void 0:null===(r=n.roles)||void 0===r?void 0:null===(l=r.find(e=>{var t;return e.id===(null===(t=s.role)||void 0===t?void 0:t.id)}))||void 0===l?void 0:l.rights)==="write"),u&&(x=!0),x}},63639:function(e,s,t){"use strict";t.d(s,{Z:function(){return i}});let i=(0,t(39763).Z)("AlertTriangle",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z",key:"c3ski4"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},24156:function(e,s,t){"use strict";t.d(s,{Z:function(){return i}});let i=(0,t(39763).Z)("ChevronsUpDown",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]])},14924:function(e,s,t){"use strict";t.d(s,{Z:function(){return i}});let i=(0,t(39763).Z)("Folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]])},29202:function(e,s,t){"use strict";t.d(s,{Z:function(){return i}});let i=(0,t(39763).Z)("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]])},15863:function(e,s,t){"use strict";t.d(s,{Z:function(){return i}});let i=(0,t(39763).Z)("Loader2",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},66337:function(e,s,t){"use strict";t.d(s,{Z:function(){return i}});let i=(0,t(39763).Z)("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]])},53417:function(e,s,t){"use strict";t.d(s,{Z:function(){return i}});let i=(0,t(39763).Z)("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]])},45675:function(e,s,t){"use strict";t.d(s,{Z:function(){return i}});let i=(0,t(39763).Z)("Pencil",[["path",{d:"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z",key:"5qss01"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]])},10866:function(e,s,t){"use strict";t.d(s,{Z:function(){return i}});let i=(0,t(39763).Z)("Settings2",[["path",{d:"M20 7h-9",key:"3s1dr2"}],["path",{d:"M14 17H5",key:"gfn3mx"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]])},88906:function(e,s,t){"use strict";t.d(s,{Z:function(){return i}});let i=(0,t(39763).Z)("Shield",[["path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10",key:"1irkt0"}]])},9270:function(e,s,t){"use strict";t.d(s,{fC:function(){return y},z$:function(){return w}});var i=t(2265),a=t(98575),l=t(73966),r=t(6741),n=t(80886),d=t(6718),c=t(90420),o=t(71599),m=t(66840),u=t(57437),h="Checkbox",[x,p]=(0,l.b)(h),[j,v]=x(h);function f(e){let{__scopeCheckbox:s,checked:t,children:a,defaultChecked:l,disabled:r,form:d,name:c,onCheckedChange:o,required:m,value:x="on",internal_do_not_use_render:p}=e,[v,f]=(0,n.T)({prop:t,defaultProp:null!=l&&l,onChange:o,caller:h}),[g,N]=i.useState(null),[y,b]=i.useState(null),w=i.useRef(!1),k=!g||!!d||!!g.closest("form"),C={checked:v,disabled:r,setChecked:f,control:g,setControl:N,name:c,form:d,value:x,hasConsumerStoppedPropagationRef:w,required:m,defaultChecked:!Z(l)&&l,isFormControl:k,bubbleInput:y,setBubbleInput:b};return(0,u.jsx)(j,{scope:s,...C,children:"function"==typeof p?p(C):a})}var g="CheckboxTrigger",N=i.forwardRef((e,s)=>{let{__scopeCheckbox:t,onKeyDown:l,onClick:n,...d}=e,{control:c,value:o,disabled:h,checked:x,required:p,setControl:j,setChecked:f,hasConsumerStoppedPropagationRef:N,isFormControl:y,bubbleInput:b}=v(g,t),w=(0,a.e)(s,j),k=i.useRef(x);return i.useEffect(()=>{let e=null==c?void 0:c.form;if(e){let s=()=>f(k.current);return e.addEventListener("reset",s),()=>e.removeEventListener("reset",s)}},[c,f]),(0,u.jsx)(m.WV.button,{type:"button",role:"checkbox","aria-checked":Z(x)?"mixed":x,"aria-required":p,"data-state":S(x),"data-disabled":h?"":void 0,disabled:h,value:o,...d,ref:w,onKeyDown:(0,r.M)(l,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:(0,r.M)(n,e=>{f(e=>!!Z(e)||!e),b&&y&&(N.current=e.isPropagationStopped(),N.current||e.stopPropagation())})})});N.displayName=g;var y=i.forwardRef((e,s)=>{let{__scopeCheckbox:t,name:i,checked:a,defaultChecked:l,required:r,disabled:n,value:d,onCheckedChange:c,form:o,...m}=e;return(0,u.jsx)(f,{__scopeCheckbox:t,checked:a,defaultChecked:l,disabled:n,required:r,onCheckedChange:c,name:i,form:o,value:d,internal_do_not_use_render:e=>{let{isFormControl:i}=e;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(N,{...m,ref:s,__scopeCheckbox:t}),i&&(0,u.jsx)(C,{__scopeCheckbox:t})]})}})});y.displayName=h;var b="CheckboxIndicator",w=i.forwardRef((e,s)=>{let{__scopeCheckbox:t,forceMount:i,...a}=e,l=v(b,t);return(0,u.jsx)(o.z,{present:i||Z(l.checked)||!0===l.checked,children:(0,u.jsx)(m.WV.span,{"data-state":S(l.checked),"data-disabled":l.disabled?"":void 0,...a,ref:s,style:{pointerEvents:"none",...e.style}})})});w.displayName=b;var k="CheckboxBubbleInput",C=i.forwardRef((e,s)=>{let{__scopeCheckbox:t,...l}=e,{control:r,hasConsumerStoppedPropagationRef:n,checked:o,defaultChecked:h,required:x,disabled:p,name:j,value:f,form:g,bubbleInput:N,setBubbleInput:y}=v(k,t),b=(0,a.e)(s,y),w=(0,d.D)(o),C=(0,c.t)(r);i.useEffect(()=>{if(!N)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,s=!n.current;if(w!==o&&e){let t=new Event("click",{bubbles:s});N.indeterminate=Z(o),e.call(N,!Z(o)&&o),N.dispatchEvent(t)}},[N,w,o,n]);let S=i.useRef(!Z(o)&&o);return(0,u.jsx)(m.WV.input,{type:"checkbox","aria-hidden":!0,defaultChecked:null!=h?h:S.current,required:x,disabled:p,name:j,value:f,form:g,...l,tabIndex:-1,ref:b,style:{...l.style,...C,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function Z(e){return"indeterminate"===e}function S(e){return Z(e)?"indeterminate":e?"checked":"unchecked"}C.displayName=k},6394:function(e,s,t){"use strict";t.d(s,{f:function(){return n}});var i=t(2265),a=t(66840),l=t(57437),r=i.forwardRef((e,s)=>(0,l.jsx)(a.WV.label,{...e,ref:s,onMouseDown:s=>{var t;s.target.closest("button, input, select, textarea")||(null===(t=e.onMouseDown)||void 0===t||t.call(e,s),!s.defaultPrevented&&s.detail>1&&s.preventDefault())}}));r.displayName="Label";var n=r}},function(e){e.O(0,[6840,8310,9851,7629,7093,6148,847,1942,7648,7823,8068,5799,4567,605,85,4957,7398,1785,3702,3397,1713,6152,6373,3832,4205,2971,2117,1744],function(){return e(e.s=62839)}),_N_E=e.O()}]);
|
|
2
|
-
//# sourceMappingURL=page-19382bb263f85fda.js.map
|
package/dist/.next/static/chunks/app/(application)/projects/[project]/page-19382bb263f85fda.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/chunks/app/(application)/projects/[project]/page-19382bb263f85fda.js","mappings":"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","sources":["webpack://_N_E/?ef07","webpack://_N_E/../../../src/icons/files.ts","webpack://_N_E/../../../src/icons/package-minus.ts","webpack://_N_E/../../../src/icons/plus-square.ts","webpack://_N_E/./components/items-selection-modal.tsx","webpack://_N_E/./components/project-details.tsx","webpack://_N_E/./app/(application)/projects/[project]/page.tsx","webpack://_N_E/./components/rbac.tsx","webpack://_N_E/./components/ui/checkbox.tsx","webpack://_N_E/./components/ui/command.tsx","webpack://_N_E/./components/ui/loading.tsx","webpack://_N_E/./components/ui/popover.tsx","webpack://_N_E/./hooks/contexts.tsx","webpack://_N_E/./lib/check-chat-session-write-access.ts","webpack://_N_E/../../../src/icons/alert-triangle.ts","webpack://_N_E/../../../src/icons/chevrons-up-down.ts","webpack://_N_E/../../../src/icons/folder.ts","webpack://_N_E/../../../src/icons/globe.ts","webpack://_N_E/../../../src/icons/loader-2.ts","webpack://_N_E/../../../src/icons/lock.ts","webpack://_N_E/../../../src/icons/message-square.ts","webpack://_N_E/../../../src/icons/pencil.ts","webpack://_N_E/../../../src/icons/settings-2.ts","webpack://_N_E/../../../src/icons/shield.ts","webpack://_N_E/../src/checkbox.tsx","webpack://_N_E/../src/label.tsx"],"sourcesContent":["import(/* webpackMode: \"eager\" */ \"/home/runner/work/exulu-frontend/exulu-frontend/app/(application)/projects/[project]/page.tsx\");\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Files\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/files\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 Files = createLucideIcon('Files', [\n [\n 'path',\n {\n d: 'M15.5 2H8.6c-.4 0-.8.2-1.1.5-.3.3-.5.7-.5 1.1v12.8c0 .4.2.8.5 1.1.3.3.7.5 1.1.5h9.8c.4 0 .8-.2 1.1-.5.3-.3.5-.7.5-1.1V6.5L15.5 2z',\n key: 'cennsq',\n },\n ],\n ['path', { d: 'M3 7.6v12.8c0 .4.2.8.5 1.1.3.3.7.5 1.1.5h9.8', key: 'ms809a' }],\n ['path', { d: 'M15 2v5h5', key: 'qq6kwv' }],\n]);\n\nexport default Files;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name PackageMinus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/package-minus\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 PackageMinus = createLucideIcon('PackageMinus', [\n ['path', { d: 'M16 16h6', key: '100bgy' }],\n [\n 'path',\n {\n d: 'M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14',\n key: 'e7tb2h',\n },\n ],\n ['path', { d: 'm7.5 4.27 9 5.15', key: '1c824w' }],\n ['polyline', { points: '3.29 7 12 12 20.71 7', key: 'ousv84' }],\n ['line', { x1: '12', x2: '12', y1: '22', y2: '12', key: 'a4e8g8' }],\n]);\n\nexport default PackageMinus;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name PlusSquare\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/plus-square\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 PlusSquare = createLucideIcon('PlusSquare', [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', key: 'afitv7' }],\n ['path', { d: 'M8 12h8', key: '1wcyev' }],\n ['path', { d: 'M12 8v8', key: 'napkw2' }],\n]);\n\nexport default PlusSquare;\n","import { Context } from \"@/types/models/context\";\nimport { useContexts } from \"@/hooks/contexts\";\nimport { useState } from \"react\"\nimport { PlusSquareIcon } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport { useQuery } from \"@apollo/client\";\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/components/ui/dialog\"\nimport { Item } from \"@/types/models/item\";\nimport { GET_ITEMS, PAGINATION_POSTFIX } from \"@/queries/queries\";\nimport { Loading } from \"./ui/loading\";\n\nexport const ItemsSelectionModal = ({ onConfirm }: {\n onConfirm: (data: {\n item: Item,\n context: Context\n }[]) => void\n}) => {\n // Shows a modal that first shows a list of all contexts\n\n const { data, loading, error } = useContexts();\n const [context, setContext] = useState<Context | undefined>(undefined);\n const [open, setOpen] = useState(false);\n\n return (<Dialog open={open} onOpenChange={(value) => {\n setOpen(value)\n setContext(undefined)\n }}>\n <DialogTrigger asChild>\n <Button className=\"w-full\" variant=\"outline\">\n <PlusSquareIcon className=\"h-4 w-4 mr-2\" />\n Select items from knowledge sources\n to add to the project, or upload files.\n </Button>\n </DialogTrigger>\n <DialogContent className=\"sm:max-w-[900px]\">\n <DialogHeader>\n <DialogTitle>Item selection</DialogTitle>\n <DialogDescription>Browse through contexts and select items.</DialogDescription>\n </DialogHeader>\n {\n !context && (\n <Command className=\"rounded-lg border shadow-md md:min-w-[450px]\">\n <CommandInput placeholder=\"Type a command or search...\" />\n <CommandList>\n <CommandEmpty>No results found.</CommandEmpty>\n\n <CommandGroup heading=\"Contexts\">\n {\n data?.contexts?.items.map((context: Context) => (\n <CommandItem key={context.id} onSelect={() => {\n setContext(context)\n }}>\n {context.name}\n </CommandItem>\n ))\n }\n </CommandGroup>\n\n </CommandList>\n </Command>\n )\n }\n {\n context && (\n <ItemsList context={context} onConfirm={(item) => {\n console.log(\"item\", item)\n onConfirm([{\n item,\n context\n }])\n setOpen(false)\n }} />\n )\n }\n </DialogContent>\n </Dialog>)\n}\n\nconst ItemsList = ({ context, onConfirm }: { context: Context, onConfirm: (item: Item) => void }) => {\n const [search, setSearch] = useState<string | undefined>(undefined)\n let { loading, data, refetch, previousData: prev, error } = useQuery<{\n [key: string]: {\n pageInfo: {\n pageCount: number;\n itemCount: number;\n currentPage: number;\n hasPreviousPage: boolean;\n hasNextPage: boolean;\n };\n items: Item[];\n }\n }>(GET_ITEMS(context.id, []), {\n fetchPolicy: \"no-cache\",\n nextFetchPolicy: \"network-only\",\n skip: !context.id,\n variables: {\n context: context.id,\n page: 1,\n limit: 10,\n sort: {\n field: \"updatedAt\",\n direction: \"DESC\",\n },\n filters: {\n archived: {\n ne: true\n },\n ...(search ? { name: { contains: `${search}` } } : {}),\n },\n },\n });\n\n return (\n <Command className=\"rounded-lg border shadow-md md:min-w-[450px]\">\n <CommandInput onValueChange={(data) => setSearch(data)} placeholder=\"Type a command or search...\" />\n <CommandList>\n <CommandGroup heading=\"Items\">\n {\n !prev && loading && (\n <CommandItem key={\"loading\"}>\n <Loading />\n </CommandItem>\n )\n }\n {\n !loading && !data?.[context.id + PAGINATION_POSTFIX]?.items?.length && (\n <CommandEmpty>No items found.</CommandEmpty>\n )\n }\n {(data || prev)?.[context.id + PAGINATION_POSTFIX]?.items?.map((item: Item) => (\n <CommandItem key={item.id} onSelect={() => {\n onConfirm(item)\n }}>{item.name}</CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n )\n}","\"use client\";\n\nimport * as React from \"react\";\nimport { useState, useContext } from \"react\";\nimport { useQuery, useMutation, useApolloClient } from \"@apollo/client\";\nimport { UPDATE_PROJECT, DELETE_PROJECT, GET_AGENT_SESSIONS, GET_AGENTS, CREATE_AGENT_SESSION, GET_ITEM_BY_ID, UPDATE_AGENT_SESSION_PROJECT, REMOVE_AGENT_SESSION_BY_ID, DELETE_ITEM } from \"@/queries/queries\";\nimport { Button } from \"@/components/ui/button\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from \"@/components/ui/dialog\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport { Trash2, Plus, MessageSquare, Settings2, Files, AlertTriangle, Shield, Pencil, Search, Bot, PackageMinus } from \"lucide-react\";\nimport { RBACControl } from \"@/components/rbac\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { useToast } from \"@/components/ui/use-toast\";\nimport { Loading } from \"./ui/loading\";\nimport { Agent } from \"@/types/models/agent\";\nimport { useRouter } from \"next/navigation\";\nimport { AgentSession } from \"@/types/models/agent-session\";\nimport { Project } from \"@/types/models/project\";\nimport { checkChatSessionWriteAccess } from \"@/lib/check-chat-session-write-access\";\nimport { UserContext } from \"@/app/(application)/authenticated\";\nimport Link from \"next/link\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport { Item } from \"@/types/models/item\";\nimport { FileItem } from \"./uppy-dashboard\";\nimport { ItemsSelectionModal } from \"./items-selection-modal\";\nimport { files } from \"@/util/api\";\n\ninterface ProjectDetailsProps {\n project: Project;\n}\n\nexport function ProjectDetails({ project }: ProjectDetailsProps) {\n const [isEditing, setIsEditing] = useState(false);\n const [isDeleteDialogOpen, setIsDeleteDialogOpen] = useState(false);\n const [isAgentSelectionOpen, setIsAgentSelectionOpen] = useState(false);\n const [agentSearch, setAgentSearch] = useState(\"\");\n const [activeView, setActiveView] = useState<'overview' | 'context' | 'sessions' | 'access' | 'settings'>('overview');\n const { user } = useContext(UserContext);\n const router = useRouter();\n const [deleteOptions, setDeleteOptions] = useState({\n deleteItems: false,\n deleteSessions: false,\n });\n const [formData, setFormData] = useState({\n name: project.name || \"\",\n description: project.description || \"\",\n custom_instructions: project.custom_instructions || \"\",\n });\n const { toast } = useToast();\n\n const [rbac, setRbac] = useState({\n rights_mode: project.rights_mode,\n users: project.RBAC?.users,\n roles: project.RBAC?.roles,\n projects: project.RBAC?.projects\n })\n\n const [projectItems, setProjectItems] = useState<string[]>(project.project_items || []);\n const [updateProject, { loading: isSaving }] = useMutation(UPDATE_PROJECT);\n const [deleteProject] = useMutation(DELETE_PROJECT);\n const [deletingProject, setDeletingProject] = useState(false);\n const { data: sessionsData, loading: sessionsLoading, refetch: refetchSessions } = useQuery(GET_AGENT_SESSIONS, {\n variables: {\n page: 1,\n limit: 50,\n filters: [\n { project: { eq: project.id } }\n ]\n }\n });\n\n const { data: agentsData, loading: agentsLoading } = useQuery(GET_AGENTS, {\n variables: {\n page: 1,\n limit: 100,\n filters: [],\n sort: { field: \"updatedAt\", direction: \"DESC\" }\n }\n });\n\n const apolloClient = useApolloClient()\n\n const [createAgentSession, { loading: isCreatingSession }] = useMutation(CREATE_AGENT_SESSION);\n\n const [updateAgentSession, { loading: isUpdatingSession }] = useMutation(UPDATE_AGENT_SESSION_PROJECT);\n\n const [deleteSession, { loading: isDeletingSession }] = useMutation(REMOVE_AGENT_SESSION_BY_ID);\n\n const chatSessions: AgentSession[] = sessionsData?.agent_sessionsPagination?.items || [];\n const agents: Agent[] = agentsData?.agentsPagination?.items || [];\n\n const filteredAgents = React.useMemo(() => {\n if (!agentSearch) return agents;\n return agents.filter(agent =>\n agent.name.toLowerCase().includes(agentSearch.toLowerCase())\n );\n }, [agents, agentSearch]);\n\n const handleSave = async () => {\n if (!formData.name.trim()) {\n toast({\n title: \"Validation Error\",\n description: \"Project name is required.\",\n variant: \"destructive\",\n });\n return;\n }\n\n try {\n await updateProject({\n variables: {\n id: project.id,\n input: {\n name: formData.name.trim(),\n description: formData.description.trim() || null,\n custom_instructions: formData.custom_instructions.trim() || null,\n },\n },\n });\n\n toast({\n title: \"Success\",\n description: \"Project updated successfully!\",\n });\n\n setIsEditing(false);\n } catch (error: any) {\n console.error(\"Error updating project:\", error);\n toast({\n title: \"Error\",\n description: error.message || \"Failed to update project. Please try again.\",\n variant: \"destructive\",\n });\n }\n };\n\n const handleCancel = () => {\n if (project) {\n setFormData({\n name: project.name || \"\",\n description: project.description || \"\",\n custom_instructions: project.custom_instructions || \"\",\n });\n }\n setIsEditing(false);\n };\n\n const handleNewChatSession = () => {\n setIsAgentSelectionOpen(true);\n };\n\n const handleAgentSelect = async (agent: Agent) => {\n try {\n const result = await createAgentSession({\n variables: {\n title: `New session with ${agent.name}`,\n agent: agent.id,\n project: project.id,\n rights_mode: \"projects\",\n RBAC: {\n projects: [{ id: project.id, rights: \"read\" }]\n }\n },\n });\n\n const sessionId = result.data?.agent_sessionsCreateOne?.item?.id;\n\n if (sessionId) {\n toast({\n title: \"Success\",\n description: \"Session created successfully! Sessions started in a project are accessible for viewing by project members.\",\n });\n\n setIsAgentSelectionOpen(false);\n setAgentSearch(\"\");\n\n router.push(`/chat/${agent.id}/${sessionId}`);\n }\n } catch (error: any) {\n console.error(\"Error creating session:\", error);\n toast({\n title: \"Error\",\n description: error.message || \"Failed to create session. Please try again.\",\n variant: \"destructive\",\n });\n }\n };\n\n const handleDeleteProject = async () => {\n try {\n setDeletingProject(true);\n if (deleteOptions.deleteItems) {\n await Promise.all(projectItems.map(async (item) => {\n const context = item.split(\"/\")[0];\n const id = item.split(\"/\")[1];\n if (!context || !id) return;\n const { data } = await apolloClient.mutate({\n mutation: DELETE_ITEM(context, context === \"files_default_context\" ? [\"s3key\"] : []),\n variables: { id },\n });\n\n if (data[`${context}_itemsRemoveOneById`]?.s3key) {\n try {\n await files.delete(data[`${context}_itemsRemoveOneById`]?.s3key)\n } catch (error: any) {\n console.error(\"[EXULU] Error deleting file from s3 storage:\", error);\n }\n }\n\n }));\n }\n\n await Promise.all(chatSessions.map(async (session) => {\n if (deleteOptions.deleteSessions) {\n await deleteSession({\n variables: { id: session.id },\n });\n } else {\n await updateAgentSession({\n variables: { id: session.id, project: null },\n });\n }\n }))\n\n await deleteProject({\n variables: { id: project.id },\n });\n\n toast({\n title: \"Success\",\n description: `Project \"${project.name}\" has been deleted successfully.`,\n });\n\n // Navigate back to projects list or close modal\n setIsDeleteDialogOpen(false);\n setDeletingProject(false);\n router.push('/projects');\n } catch (error: any) {\n setDeletingProject(false);\n console.error(\"Error deleting project:\", error);\n toast({\n title: \"Error\",\n description: error.message || \"Failed to delete project. Please try again.\",\n variant: \"destructive\",\n });\n }\n };\n\n return (\n <div className=\"flex-1 p-6 mt-20\">\n <div className=\"max-w-5xl mx-auto space-y-6\">\n <div className=\"flex gap-6 h-full\">\n <div className=\"w-80 space-y-4\">\n <Card>\n <CardContent className=\"p-4\">\n <div className=\"space-y-3\">\n <h3 className=\"font-semibold text-lg\">{project.name}</h3>\n <p className=\"text-muted-foreground text-sm leading-relaxed\">\n {project.description || \"No description provided.\"}\n </p>\n </div>\n </CardContent>\n </Card>\n\n {/* Navigation Buttons */}\n <div className=\"space-y-2\">\n <Button\n variant={activeView === 'overview' ? 'default' : 'ghost'}\n className=\"w-full justify-start\"\n onClick={() => setActiveView('overview')}\n >\n <Settings2 className=\"h-4 w-4 mr-2\" />\n Project information\n </Button>\n <Button\n variant={activeView === 'context' ? 'default' : 'ghost'}\n className=\"w-full justify-start\"\n onClick={() => setActiveView('context')}\n >\n <Files className=\"h-4 w-4 mr-2\" />\n Project files\n </Button>\n <Button\n variant={activeView === 'sessions' ? 'default' : 'ghost'}\n className=\"w-full justify-start\"\n onClick={() => setActiveView('sessions')}\n >\n <MessageSquare className=\"h-4 w-4 mr-2\" />\n Project sessions\n </Button>\n <Button\n variant={activeView === 'access' ? 'default' : 'ghost'}\n className=\"w-full justify-start\"\n onClick={() => setActiveView('access')}\n >\n <Shield className=\"h-4 w-4 mr-2\" />\n Access control\n </Button>\n <Button\n variant={activeView === 'settings' ? 'default' : 'ghost'}\n className=\"w-full justify-start\"\n onClick={() => setActiveView('settings')}\n >\n <Settings2 className=\"h-4 w-4 mr-2\" />\n Project settings\n </Button>\n </div>\n </div>\n\n {/* Main Content Area */}\n <div className=\"flex-1\">\n {activeView === 'overview' && (\n <div className=\"space-y-6\">\n <Card>\n <CardHeader>\n <CardTitle>Project Information</CardTitle>\n <CardDescription>\n Basic information about this project\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid gap-4\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"name\">Project Name</Label>\n {isEditing ? (\n <Input\n id=\"name\"\n value={formData.name}\n onChange={(e) => setFormData({ ...formData, name: e.target.value })}\n />\n ) : (\n <p className=\"text-sm\">{project.name}</p>\n )}\n </div>\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"description\">Description</Label>\n {isEditing ? (\n <Textarea\n id=\"description\"\n value={formData.description}\n onChange={(e) => setFormData({ ...formData, description: e.target.value })}\n rows={3}\n />\n ) : (\n <p className=\"text-sm\">{project.description || \"No description provided\"}</p>\n )}\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"instructions\">Custom Instructions</Label>\n {isEditing ? (\n <Textarea\n id=\"instructions\"\n value={formData.custom_instructions}\n onChange={(e) => setFormData({ ...formData, custom_instructions: e.target.value })}\n rows={4}\n placeholder=\"Enter custom instructions for sessions in this project...\"\n />\n ) : (\n <p className=\"text-sm\">{project.custom_instructions || \"No custom instructions set\"}</p>\n )}\n </div>\n </CardContent>\n\n <CardFooter>\n <div className=\"flex items-center justify-between\">\n <div className=\"flex gap-2\">\n {isEditing ? (\n <>\n <Button variant=\"outline\" onClick={handleCancel}>\n Cancel\n </Button>\n <Button onClick={handleSave}>\n <span>Save changes</span>\n {\n isSaving && (\n <Loading className=\"mr-2\" />\n )\n }\n </Button>\n </>\n ) : (\n <Button variant=\"outline\" onClick={() => setIsEditing(true)}>\n <Pencil className=\"h-4 w-4 mr-2\" />\n Edit\n </Button>\n )}\n </div>\n </div>\n </CardFooter>\n </Card>\n </div>\n )}\n\n {activeView === 'context' && (\n <div className=\"space-y-6 w-full\">\n <Card>\n <CardHeader>\n <CardTitle>Project context items</CardTitle>\n <CardDescription>\n Items that provide context for sessions in this project (max 15 items). Note that different\n agents may have different file types supported.\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-4\">\n <ItemsSelectionModal onConfirm={(data) => {\n const update = [...projectItems, ...data.map((x) => `${x.context.id}/${x.item.id}`)];\n console.log(\"update\", update);\n setProjectItems(update);\n updateProject({\n variables: {\n id: project.id,\n input: {\n project_items: update\n }\n }\n })\n }} />\n\n {/* List of items */}\n <div className=\"space-y-2\">\n {\n <div className=\"space-y-2\">\n {\n projectItems?.length === 0 && (\n <div className=\"text-center py-8 text-muted-foreground\">\n <Files className=\"h-12 w-12 mx-auto mb-2 opacity-50\" />\n <p>No items added to the project context yet.</p>\n </div>\n )\n }\n <div className=\"grid grid-cols-3 sm:grid-cols-4 gap-3\">\n {projectItems?.map((gid) => (\n <ProjectItem key={gid} gid={gid} onRemove={(gid) => {\n const update = projectItems.filter((g) => g !== gid)\n setProjectItems(update)\n updateProject({\n variables: {\n id: project.id,\n input: {\n project_items: update\n }\n }\n })\n }} />\n ))}\n </div>\n </div>\n }\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n )}\n\n {activeView === 'sessions' && (\n <div className=\"space-y-6\">\n <Card>\n <CardHeader>\n <CardTitle>Project sessions</CardTitle>\n <CardDescription>\n Sessions associated with this project\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-4\">\n <Button onClick={handleNewChatSession} className=\"w-full\" variant=\"outline\">\n <Plus className=\"h-4 w-4 mr-2\" />\n Start new session\n </Button>\n\n <div className=\"space-y-2\">\n {chatSessions.map((session) => {\n const writeAccess = checkChatSessionWriteAccess(session, user);\n return (\n <div key={session.id} className=\"flex items-center justify-between p-3 border rounded-lg\">\n <div className=\"flex items-center gap-3\">\n <MessageSquare className=\"h-4 w-4\" />\n <div>\n <Link href={`/chat/${session.agent}/${session.id}`}>\n <p className=\"font-medium max-w-[80%] truncate\">{session.title}</p>\n </Link>\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n disabled={!writeAccess || isUpdatingSession}\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => {\n if (isUpdatingSession) return;\n updateAgentSession({\n variables: {\n id: session.id,\n project: null\n }\n })\n refetchSessions();\n }}>\n <PackageMinus className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n <p>Remove session from project.</p>\n </TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n disabled={!writeAccess || isDeletingSession}\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => {\n if (isDeletingSession) return;\n deleteSession({\n variables: {\n id: session.id\n }\n })\n refetchSessions();\n }}\n >\n <Trash2 className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n <p>Delete session completely.</p>\n </TooltipContent>\n </Tooltip>\n </div>\n </div>\n )\n }\n )}\n </div>\n\n {chatSessions.length === 0 && !sessionsLoading && (\n <div className=\"text-center py-8 text-muted-foreground\">\n <MessageSquare className=\"h-12 w-12 mx-auto mb-2 opacity-50\" />\n <p>No sessions found</p>\n </div>\n )}\n\n {sessionsLoading && (\n <div className=\"text-center py-8 text-muted-foreground\">\n <MessageSquare className=\"h-12 w-12 mx-auto mb-2 opacity-50\" />\n <p>Loading sessions...</p>\n </div>\n )}\n </div>\n </CardContent>\n </Card>\n </div>\n )}\n\n {activeView === 'access' && (\n <div className=\"space-y-6\">\n <Card>\n <CardHeader>\n <CardTitle>Access Control</CardTitle>\n <CardDescription>\n Control who can access this project\n </CardDescription>\n </CardHeader>\n <CardContent>\n <RBACControl\n allowedModes={['private', 'users', 'roles']}\n initialRightsMode={project.rights_mode || 'private'}\n initialUsers={project.RBAC?.users}\n initialRoles={project.RBAC?.roles}\n initialProjects={project.RBAC?.projects}\n onChange={(rights_mode, users, roles, projects) => {\n setRbac({\n rights_mode,\n users,\n roles,\n projects\n })\n }}\n />\n </CardContent>\n <CardFooter>\n <Button onClick={() => {\n updateProject({\n variables: {\n id: project.id,\n input: {\n rights_mode: rbac.rights_mode,\n RBAC: {\n users: rbac.users,\n roles: rbac.roles,\n projects: rbac.projects\n }\n }\n }\n })\n }}>\n <span>Save access rights</span>\n {isSaving && <Loading className=\"ml-2\" />}\n </Button>\n </CardFooter>\n </Card>\n </div>\n )}\n\n {activeView === 'settings' && (\n <div className=\"space-y-6\">\n <Card>\n <CardHeader>\n <CardTitle>Danger Zone</CardTitle>\n <CardDescription>\n Permanently delete this project and all associated data\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-4\">\n <div className=\"flex items-start gap-3 p-4 border border-destructive/20 rounded-lg bg-destructive/5\">\n <AlertTriangle className=\"h-5 w-5 text-destructive mt-0.5\" />\n <div className=\"flex-1\">\n <h4 className=\"font-medium text-destructive\">Delete Project</h4>\n <p className=\"text-sm text-muted-foreground mt-1\">\n This action cannot be undone. This will permanently delete the project and optionally remove all associated context files and sessions.\n </p>\n </div>\n </div>\n\n <Dialog open={isDeleteDialogOpen} onOpenChange={setIsDeleteDialogOpen}>\n <DialogTrigger asChild>\n <Button variant=\"destructive\">\n <Trash2 className=\"h-4 w-4 mr-2\" />\n Delete Project\n </Button>\n </DialogTrigger>\n <DialogContent className=\"sm:max-w-md\">\n <DialogHeader>\n <DialogTitle>Delete Project</DialogTitle>\n <DialogDescription>\n Are you sure you want to delete \"{project.name}\"? This action cannot be undone.\n </DialogDescription>\n </DialogHeader>\n <div className=\"space-y-4\">\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id=\"delete-items\"\n checked={deleteOptions.deleteItems}\n onCheckedChange={(checked) =>\n setDeleteOptions(prev => ({ ...prev, deleteItems: checked as boolean }))\n }\n />\n <label htmlFor=\"delete-items\" className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\">\n Also delete all context items ({projectItems?.length} items)\n </label>\n </div>\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id=\"delete-sessions\"\n checked={deleteOptions.deleteSessions}\n onCheckedChange={(checked) =>\n setDeleteOptions(prev => ({ ...prev, deleteSessions: checked as boolean }))\n }\n />\n <label htmlFor=\"delete-sessions\" className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\">\n Also delete all sessions ({chatSessions.length} sessions)\n </label>\n </div>\n {(deleteOptions.deleteItems || deleteOptions.deleteSessions) && (\n <div className=\"flex items-start gap-2 p-3 border border-amber-200 rounded-lg bg-amber-50\">\n <AlertTriangle className=\"h-4 w-4 text-amber-600 mt-0.5\" />\n <p className=\"text-sm text-amber-800\">\n {deleteOptions.deleteItems && deleteOptions.deleteSessions\n ? \"All context items and sessions will be permanently deleted.\"\n : deleteOptions.deleteItems\n ? \"All context items will be permanently deleted.\"\n : \"All sessions will be permanently deleted.\"\n }\n </p>\n </div>\n )}\n </div>\n <DialogFooter className=\"sm:justify-start\">\n <Button variant=\"outline\" onClick={() => setIsDeleteDialogOpen(false)}>\n Cancel\n </Button>\n <Button disabled={deletingProject} variant=\"destructive\" onClick={handleDeleteProject}>\n {\n deletingProject ? (\n <Loading className=\"mr-2 w-4 h-4\" />\n ) : (\n <Trash2 className=\"h-4 w-4 mr-2\" />\n )\n }\n Delete Project\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </div>\n </CardContent>\n </Card>\n </div>\n )}\n </div>\n </div>\n </div>\n\n {/* Agent Selection Modal */}\n <Dialog open={isAgentSelectionOpen} onOpenChange={setIsAgentSelectionOpen}>\n <DialogContent className=\"sm:max-w-4xl\">\n <DialogHeader>\n <DialogTitle>Select an Agent</DialogTitle>\n <DialogDescription>\n Choose an agent to start a new chat session. Sessions started in a project are accessible for viewing by project members.\n </DialogDescription>\n </DialogHeader>\n\n <div className=\"space-y-4\">\n {/* Search Input */}\n <div className=\"relative\">\n <Search className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground\" />\n <Input\n placeholder=\"Search agents...\"\n value={agentSearch}\n onChange={(e) => setAgentSearch(e.target.value)}\n className=\"pl-10\"\n />\n </div>\n\n {/* Agents Grid */}\n <div className=\"max-h-96 overflow-y-auto\">\n {agentsLoading ? (\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n {[...Array(6)].map((_, i) => (\n <div key={i} className=\"p-4 border rounded-lg\">\n <div className=\"flex items-center gap-3\">\n <Skeleton className=\"h-12 w-12 rounded-full\" />\n <div className=\"space-y-2 flex-1\">\n <Skeleton className=\"h-4 w-3/4\" />\n <Skeleton className=\"h-3 w-1/2\" />\n </div>\n </div>\n </div>\n ))}\n </div>\n ) : filteredAgents.length > 0 ? (\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n {filteredAgents.map((agent) => (\n <div\n key={agent.id}\n className=\"p-4 border rounded-lg hover:border-primary cursor-pointer transition-colors\"\n onClick={() => handleAgentSelect(agent)}\n >\n <div className=\"flex items-center gap-3\">\n <div className=\"h-12 w-12 rounded-full bg-primary/10 flex items-center justify-center\">\n {agent.image ? (\n <img\n src={agent.image}\n alt={agent.name}\n className=\"h-12 w-12 rounded-full object-cover\"\n />\n ) : (\n <Bot className=\"h-6 w-6\" />\n )}\n </div>\n <div className=\"flex-1 min-w-0\">\n <p className=\"font-medium truncate\">{agent.name}</p>\n <p className=\"text-sm text-muted-foreground truncate\">\n {agent.description || `${agent.type} agent`}\n </p>\n <div className=\"flex items-center gap-2 mt-1\">\n <Badge variant={agent.active ? \"default\" : \"secondary\"} className=\"text-xs\">\n {agent.active ? \"Active\" : \"Inactive\"}\n </Badge>\n <Badge variant=\"outline\" className=\"text-xs\">\n {agent.type}\n </Badge>\n </div>\n </div>\n </div>\n </div>\n ))}\n </div>\n ) : (\n <div className=\"text-center py-8 text-muted-foreground\">\n <Bot className=\"h-12 w-12 mx-auto mb-2 opacity-50\" />\n <p>{agentSearch ? \"No agents found matching your search\" : \"No agents available\"}</p>\n </div>\n )}\n </div>\n </div>\n\n <DialogFooter>\n <Button variant=\"outline\" onClick={() => setIsAgentSelectionOpen(false)}>\n Cancel\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </div>\n );\n}\n\nfunction ProjectItem({ gid, onRemove }: { gid: string, onRemove: (gid: string) => void }) {\n\n const context = gid.split(\"/\")[0];\n const id = gid.split(\"/\")[1];\n if (!context) return null;\n if (!id) return null;\n\n const { data, loading } = useQuery<\n {\n [key: string]: Item\n }>(GET_ITEM_BY_ID(context, context === \"files_default_context\" ? [\n \"s3key\"\n ] : []), {\n variables: {\n id\n }\n });\n\n console.log(\"data\", data);\n\n if (loading) return null;\n const item = data?.[context + \"_itemsById\"];\n if (!item) return null;\n const fields = Object.values(item || {})\n const files = fields.filter(x => x === \"_s3key\");\n\n if (!files.length) return null;\n\n return <>\n {files.map(file => (\n <FileItem s3Key={file} onRemove={() => {\n onRemove(gid)\n }} active={false} disabled={false} />\n ))}\n </>\n}","\"use client\";\n\nimport * as React from \"react\";\nimport { useParams } from \"next/navigation\";\nimport { ProjectDetails } from \"@/components/project-details\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { Alert, AlertDescription, AlertTitle } from \"@/components/ui/alert\";\nimport { useQuery } from \"@apollo/client\";\nimport { GET_PROJECT_BY_ID } from \"@/queries/queries\";\nimport { ExclamationTriangleIcon } from \"@radix-ui/react-icons\";\n\nexport default function ProjectPage() {\n const params = useParams();\n const projectId = params?.project as string;\n\n const { data, loading, error } = useQuery(GET_PROJECT_BY_ID, {\n variables: { id: projectId }\n });\n\n\n if (loading) {\n return <div>\n <Skeleton className=\"w-full h-full\" />\n </div>\n }\n\n if (error) {\n return <Alert variant=\"destructive\">\n <ExclamationTriangleIcon className=\"size-4\" />\n <AlertTitle>Error</AlertTitle>\n <AlertDescription>\n Error loading project.\n </AlertDescription>\n </Alert>\n }\n\n if (!data?.projectById) {\n return <Alert variant=\"destructive\">\n <ExclamationTriangleIcon className=\"size-4\" />\n <AlertTitle>Error</AlertTitle>\n <AlertDescription>\n Project not found.\n </AlertDescription>\n </Alert>\n }\n\n return <ProjectDetails project={data.projectById} />;\n}","\nimport {\n GET_USER_ROLES,\n GET_USERS,\n GET_USER_BY_ID\n} from \"@/queries/queries\";\nimport { useState, useEffect, useCallback } from \"react\";\nimport { useApolloClient, useQuery } from \"@apollo/client\";\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\";\nimport { User } from \"@/types/models/user\";\nimport { Check, ChevronsUpDown, Users, Lock, Globe, Settings, Trash2, Loader2, Folder } from \"lucide-react\";\nimport { Input } from \"@/components/ui/input\";\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogDescription,\n} from \"@/components/ui/dialog\";\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\nimport { cn } from \"@/lib/utils\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\";\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\";\nimport { Button } from \"@/components/ui/button\";\nimport { Label } from \"./ui/label\";\n\nconst VISIBILITY_OPTIONS = [\n { value: 'private', label: 'Private', description: 'Only you can see this agent', icon: Lock },\n { value: 'users', label: 'Shared with Users', description: 'Share with specific users', icon: Users },\n { value: 'roles', label: 'Shared with Roles', description: 'Share with specific roles', icon: Settings },\n { value: 'public', label: 'Public', description: 'Anyone can see this agent', icon: Globe },\n { value: 'projects', label: 'Projects', description: 'Share with specific projects', icon: Folder }\n]\n\ntype Modes = 'private' | 'users' | 'roles' | 'public' | 'projects'\n\nexport function RBACControl({\n allowedModes,\n initialRightsMode,\n initialUsers,\n initialRoles,\n initialProjects,\n onChange\n}: {\n allowedModes?: Modes[],\n initialRightsMode: 'private' | 'users' | 'roles' | 'public' | 'projects' | undefined,\n initialUsers: { id: number, rights: 'read' | 'write' }[] | undefined,\n initialRoles: { id: string, rights: 'read' | 'write' }[] | undefined,\n initialProjects: { id: string, rights: 'read' | 'write' }[] | undefined,\n onChange: (rights_mode: Modes, users: { id: number, rights: 'read' | 'write' }[], roles: { id: string, rights: 'read' | 'write' }[], projects: { id: string, rights: 'read' | 'write' }[]) => void\n}) {\n const [visibility, setVisibility] = useState<Modes | undefined>(initialRightsMode)\n const [selectedUsers, setSelectedUsers] = useState<{ id: number, rights: 'read' | 'write' }[]>(initialUsers || [])\n const [selectedRoles, setSelectedRoles] = useState<{ id: string, rights: 'read' | 'write' }[]>(initialRoles || [])\n const [hydratedUsers, setHydratedUsers] = useState<User[]>([])\n const [visibilitySelectorOpen, setVisibilitySelectorOpen] = useState(false)\n const [userFilters, setUserFilters] = useState<any[]>([])\n const [userSearchValue, setUserSearchValue] = useState('')\n const [modalOpen, setModalOpen] = useState(false)\n const [modalLoading, setModalLoading] = useState(false)\n const client = useApolloClient()\n\n // GraphQL queries for RBAC\n const { data: usersData, loading: usersLoading, refetch: refetchUsers } = useQuery(GET_USERS, {\n variables: { page: 1, limit: 5, filters: userFilters },\n skip: visibility !== 'users' || !userSearchValue\n })\n\n const roles = useQuery(GET_USER_ROLES, {\n fetchPolicy: \"cache-first\",\n nextFetchPolicy: \"network-only\",\n variables: {\n page: 1,\n limit: 30,\n filters: [\n {\n type: {\n ne: \"api\"\n }\n }\n ]\n },\n });\n\n\n // User search function\n const searchUsers = useCallback((value: string) => {\n setUserSearchValue(value)\n const copy = [...userFilters, {\n type: {\n ne: \"api\"\n }\n }]\n const exists = copy.find((filter) => filter.email)\n if (exists?.email) {\n exists.email.contains = value\n } else {\n copy.push({\n email: {\n contains: value,\n },\n })\n }\n setUserFilters(copy)\n refetchUsers()\n }, [userFilters, refetchUsers])\n\n const hydrateUsers = async (max: number = 5) => {\n setModalLoading(true)\n if (!selectedUsers || selectedUsers.length === 0) {\n setHydratedUsers([])\n setModalLoading(false)\n return\n }\n\n const promises = selectedUsers?.slice(0, max).map(async ({ id, rights }) => {\n const user = await client.query({\n query: GET_USER_BY_ID,\n variables: {\n id\n }\n })\n return {\n ...user.data.userById,\n rights\n };\n })\n const results = await Promise.all(promises)\n setHydratedUsers(results)\n setModalLoading(false)\n }\n\n useEffect(() => {\n hydrateUsers(5)\n }, [])\n\n useEffect(() => {\n console.log(\"selectedUsers\", selectedUsers)\n console.log(\"hydratedUsers\", hydratedUsers)\n onChange(visibility as 'private' | 'users' | 'roles' | 'public', selectedUsers, selectedRoles, [])\n }, [visibility, selectedUsers, selectedRoles])\n\n const filteredUsers = hydratedUsers?.slice(0, 5).filter(user => !!user?.id)\n\n let visibilityOptions = VISIBILITY_OPTIONS\n if (allowedModes?.length) {\n visibilityOptions = VISIBILITY_OPTIONS.filter(option => allowedModes.includes(option.value as Modes))\n }\n\n return (\n <>\n <div className=\"space-y-2\">\n <Label className=\"text-sm font-medium\">Visibility & sharing</Label>\n <Popover open={visibilitySelectorOpen} onOpenChange={setVisibilitySelectorOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={visibilitySelectorOpen}\n className=\"w-full justify-between text-sm capitalize\"\n >\n {visibilityOptions.find(option => option.value === visibility)?.label || \"Select visibility...\"}\n <ChevronsUpDown className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-full p-0\">\n <Command>\n <CommandInput placeholder=\"Search options...\" />\n <CommandList>\n <CommandEmpty>No options found.</CommandEmpty>\n <CommandGroup>\n {visibilityOptions.map((option: any) => (\n <CommandItem\n key={option.value}\n onSelect={() => {\n if (option.value !== \"users\") {\n setSelectedUsers([])\n }\n if (option.value !== \"roles\") {\n setSelectedRoles([])\n }\n setVisibility(option.value)\n setVisibilitySelectorOpen(false)\n }}\n >\n <Check\n className={cn(\n \"mr-2 h-4 w-4\",\n visibility === option.value ? \"opacity-100\" : \"opacity-0\"\n )}\n />\n <div className=\"flex flex-col\">\n <span>{option.label}</span>\n <span className=\"text-xs text-muted-foreground\">{option.description}</span>\n </div>\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n </div>\n\n {/* Users sharing section */}\n {visibility === 'users' && (\n <div className=\"space-y-3 pt-3\">\n <div>\n <Label className=\"text-sm font-medium\">Share with users</Label>\n {/* Search bar */}\n <div className=\"mt-2\">\n <Input\n placeholder=\"Search users by email...\"\n value={userSearchValue}\n onChange={(e) => searchUsers(e.target.value)}\n className=\"text-sm\"\n />\n </div>\n\n {/* Search results */}\n {usersLoading && (\n <div className=\"mt-2 flex items-center justify-center py-4\">\n <Loader2 className=\"h-4 w-4 animate-spin mr-2\" />\n <span className=\"text-sm text-muted-foreground\">Loading users...</span>\n </div>\n )}\n {!usersLoading && usersData && usersData.usersPagination?.items.length > 0 && (\n <div className=\"mt-2\">\n <div className=\"text-xs text-muted-foreground mb-1\">Search Results:</div>\n <div className=\"max-h-50 overflow-y-auto border rounded-lg\">\n {usersData.usersPagination.items.filter(user => !selectedUsers.some(selected => selected.id === user.id)).map((user: any) => (\n <label key={user.id} className=\"flex items-center space-x-2 p-2 hover:bg-muted/50 cursor-pointer\">\n <input\n type=\"checkbox\"\n checked={selectedUsers.some(selected => selected.id === user.id)}\n onChange={(e) => {\n setSelectedUsers(prev => [...prev, { id: user.id, rights: 'read' }])\n setHydratedUsers(prev => [...prev, {\n ...user,\n rights: 'read'\n }])\n }}\n />\n <span className=\"text-sm\">{user.email}</span>\n </label>\n ))}\n </div>\n <div className=\"text-xs text-muted-foreground mt-2\">\n <span className=\"font-medium\">Note:</span> Only the first 5 users are shown, use the Search bar to find more users.\n </div>\n </div>\n )}\n {!usersLoading && userSearchValue && usersData && usersData.usersPagination.items.length === 0 && (\n <div className=\"mt-2 text-center py-4\">\n <span className=\"text-sm text-muted-foreground\">No users found</span>\n </div>\n )}\n\n {/* Selected users list */}\n {filteredUsers?.length > 0 ? (\n <div className=\"mt-2\">\n <div className=\"text-xs text-muted-foreground mb-1\">Selected Users:</div>\n <div className=\"space-y-1\">\n {filteredUsers.map((user: any) => (\n <div key={user.id} className=\"flex items-center gap-2 border p-2 rounded-lg text-sm\">\n <span className=\"flex-1 pl-2\">{user.email}</span>\n <Select\n value={user.rights}\n onValueChange={(value: 'read' | 'write') => {\n setSelectedUsers(prev =>\n prev.map(selected =>\n selected.id === user.id\n ? { ...selected, rights: value }\n : selected\n )\n )\n setHydratedUsers(prev =>\n prev.map(hydratedUser =>\n hydratedUser.id === user.id\n ? { ...hydratedUser, rights: value }\n : hydratedUser\n )\n )\n }}\n >\n <SelectTrigger className=\"h-6 w-20 text-xs\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"read\">Read</SelectItem>\n <SelectItem value=\"write\">Write</SelectItem>\n </SelectContent>\n </Select>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"h-5 w-5 p-0 hover:bg-blue-100\"\n onClick={() => {\n setSelectedUsers(prev => prev.filter(selected => selected.id !== user.id))\n setHydratedUsers(prev => prev.filter(hydratedUser => hydratedUser.id !== user.id))\n }}\n >\n <Trash2 className=\"w-3 h-3\" />\n </Button>\n </div>\n ))}\n {selectedUsers && selectedUsers.length > 5 && (\n <Button\n variant=\"link\"\n type=\"button\"\n className=\"h-auto p-0 text-blue-600 hover:text-blue-800 text-xs\"\n onClick={() => {\n hydrateUsers(50)\n setModalOpen(true)\n }}\n >\n + {selectedUsers.length - 5} more users\n </Button>\n )}\n </div>\n </div>\n ) : (\n <div className=\"mt-2 text-center py-4\">\n <span className=\"text-sm text-muted-foreground\">No users selected.</span>\n </div>\n )}\n </div>\n </div>\n )}\n\n {/* Roles sharing section */}\n {visibility === 'roles' && (\n <div className=\"space-y-3\">\n <div>\n <Label className=\"text-sm font-medium\">Share with roles ({selectedRoles?.length || 0})</Label>\n\n {/* Available roles list */}\n <div className=\"mt-2\">\n <div className=\"text-xs text-muted-foreground mb-1\">Available Roles</div>\n {roles.loading && (\n <div className=\"flex items-center justify-center py-4 border rounded-lg\">\n <Loader2 className=\"h-4 w-4 animate-spin mr-2\" />\n <span className=\"text-sm text-muted-foreground\">Loading roles...</span>\n </div>\n )}\n {!roles.loading && roles.data && (\n <div className=\"max-h-24 overflow-y-auto border rounded-lg\">\n {roles.data.rolesPagination.items.map((role: any) => (\n <label key={role.id} className=\"flex items-center space-x-2 p-2 hover:bg-muted/50 cursor-pointer\">\n <input\n type=\"checkbox\"\n checked={selectedRoles.some(selected => selected.id === role.id)}\n onChange={(e) => {\n if (e.target.checked) {\n setSelectedRoles(prev => [...prev, { id: role.id, rights: 'read' }])\n } else {\n setSelectedRoles(prev => prev.filter(selected => selected.id !== role.id))\n }\n }}\n />\n <span className=\"text-sm capitalize\">{role.name}</span>\n </label>\n ))}\n </div>\n )}\n </div>\n\n {/* Selected roles list */}\n {selectedRoles.length > 0 && roles.data && (\n <div className=\"mt-2\">\n <div className=\"text-xs text-muted-foreground mb-1\">Selected Roles:</div>\n <div className=\"space-y-1\">\n {selectedRoles.map((selectedRole: any) => {\n const role = roles.data.rolesPagination.items.find((r: any) => r.id === selectedRole.id)\n return (\n <div key={selectedRole.id} className=\"flex items-center gap-2 border p-2 rounded-lg text-sm\">\n <span className=\"flex-1 pl-2 capitalize\">{role?.name}</span>\n <Select\n value={selectedRole.rights}\n onValueChange={(value: 'read' | 'write') => {\n setSelectedRoles(prev =>\n prev.map(selected =>\n selected.id === selectedRole.id\n ? { ...selected, rights: value }\n : selected\n )\n )\n }}\n >\n <SelectTrigger className=\"h-6 text-xs w-20 border-none\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"read\">\n <span className=\"pr-7\">Read</span>\n </SelectItem>\n <SelectItem value=\"write\">\n <span className=\"pr-7\">Write</span>\n </SelectItem>\n </SelectContent>\n </Select>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"h-5 w-5 p-0 hover:bg-blue-100\"\n onClick={() => {\n setSelectedRoles(prev => prev.filter(selected => selected.id !== selectedRole.id))\n }}\n >\n <Trash2 className=\"w-3 h-3\" />\n </Button>\n </div>\n )\n })}\n </div>\n </div>\n )}\n </div>\n </div>\n )}\n\n {/* Modal for viewing all selected users */}\n <Dialog open={modalOpen} onOpenChange={setModalOpen} >\n <DialogContent className=\"sm:max-w-2xl max-h-[85vh] flex flex-col\">\n <DialogHeader>\n <DialogTitle>All Selected Users ({selectedUsers?.length || 0})</DialogTitle>\n <DialogDescription>\n View and manage all selected users and their permissions\n </DialogDescription>\n </DialogHeader>\n\n <ScrollArea className=\"flex-1 pr-4\">\n {modalLoading && (\n <div className=\"flex items-center justify-center py-8\">\n <Loader2 className=\"h-6 w-6 animate-spin mr-2\" />\n <span className=\"text-sm text-muted-foreground\">Loading users...</span>\n </div>\n )}\n\n {!modalLoading && hydratedUsers.length > 0 && (\n <div className=\"space-y-2\">\n {hydratedUsers.map((user: any) => (\n <div key={user.id} className=\"flex items-center gap-3 border p-3 rounded-lg\">\n <span className=\"flex-1\">{user.email}</span>\n <Select\n value={user.rights}\n onValueChange={(value: 'read' | 'write') => {\n // Update selectedUsers state\n setSelectedUsers(prev =>\n prev.map(selected =>\n selected.id === user.id\n ? { ...selected, rights: value }\n : selected\n )\n )\n // Update hydratedUsers state if this user is in the first 5\n setHydratedUsers(prev =>\n prev.map(hydratedUser =>\n hydratedUser.id === user.id\n ? { ...hydratedUser, rights: value }\n : hydratedUser\n )\n )\n }}\n >\n <SelectTrigger className=\"w-24\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"read\">Read</SelectItem>\n <SelectItem value=\"write\">Write</SelectItem>\n </SelectContent>\n </Select>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"h-8 w-8 p-0 hover:bg-destructive/10\"\n onClick={() => {\n setSelectedUsers(prev => prev.filter(selected => selected.id !== user.id))\n setHydratedUsers(prev => prev.filter(hydratedUser => hydratedUser.id !== user.id))\n }}\n >\n <Trash2 className=\"w-4 h-4\" />\n </Button>\n </div>\n ))}\n </div>\n )}\n\n {!modalLoading && hydratedUsers.length === 0 && (\n <div className=\"text-center py-8\">\n <span className=\"text-sm text-muted-foreground\">No users selected</span>\n </div>\n )}\n </ScrollArea>\n </DialogContent>\n </Dialog >\n </>\n )\n}","\"use client\";\n\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { Check } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-current\")}\n >\n <Check className=\"size-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","\"use client\";\n\nimport { type DialogProps } from \"@radix-ui/react-dialog\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport { Search } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { Dialog, DialogContent } from \"@/components/ui/dialog\";\nimport { cn } from \"@/lib/utils\";\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className,\n )}\n {...props}\n />\n));\nCommand.displayName = CommandPrimitive.displayName;\n\ninterface CommandDialogProps extends DialogProps {}\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:size-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:size-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n};\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n </div>\n));\n\nCommandInput.displayName = CommandPrimitive.Input.displayName;\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n));\n\nCommandList.displayName = CommandPrimitive.List.displayName;\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty\n ref={ref}\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n));\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className,\n )}\n {...props}\n />\n));\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n />\n));\n\nCommandItem.displayName = CommandPrimitive.Item.displayName;\n\nconst CommandShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n};\nCommandShortcut.displayName = \"CommandShortcut\";\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n","import { cn } from \"@/lib/utils\";\n\nexport const Loading = ({ className }: { className?: null | string }) => {\n return (\n <svg\n aria-hidden=\"true\"\n role=\"status\"\n className={cn(\"inline w-4 h-4 text-white animate-spin fill-inherit\", className)}\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n className=\"fill-inherit opacity-20\"\n ></path>\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n className=\"fill-inherit\"\n ></path>\n </svg>\n );\n};\n","\"use client\";\n\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Popover = PopoverPrimitive.Root;\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\nexport { Popover, PopoverTrigger, PopoverContent };\n","import { GET_CONTEXTS } from \"@/queries/queries\";\nimport { Context } from \"@/types/models/context\";\nimport { useQuery } from \"@apollo/client\";\n\nexport const useContexts = () => {\n return useQuery<{ contexts: { items: Context[] } }>(GET_CONTEXTS, {\n variables: {\n limit: 20\n }\n })\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 AlertTriangle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/alert-triangle\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 AlertTriangle = createLucideIcon('AlertTriangle', [\n [\n 'path',\n {\n d: 'm21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z',\n key: 'c3ski4',\n },\n ],\n ['path', { d: 'M12 9v4', key: 'juzpu7' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n]);\n\nexport default AlertTriangle;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronsUpDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevrons-up-down\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 ChevronsUpDown = createLucideIcon('ChevronsUpDown', [\n ['path', { d: 'm7 15 5 5 5-5', key: '1hf1tw' }],\n ['path', { d: 'm7 9 5-5 5 5', key: 'sgt6xg' }],\n]);\n\nexport default ChevronsUpDown;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Folder\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/folder\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 Folder = createLucideIcon('Folder', [\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n key: '1kt360',\n },\n ],\n]);\n\nexport default Folder;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Globe\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/globe\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 Globe = createLucideIcon('Globe', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20', key: '13o1zl' }],\n ['path', { d: 'M2 12h20', key: '9i4pu4' }],\n]);\n\nexport default Globe;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Loader2\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/loader-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 Loader2 = createLucideIcon('Loader2', [\n ['path', { d: 'M21 12a9 9 0 1 1-6.219-8.56', key: '13zald' }],\n]);\n\nexport default Loader2;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Lock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/lock\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 Lock = createLucideIcon('Lock', [\n ['rect', { width: '18', height: '11', x: '3', y: '11', rx: '2', ry: '2', key: '1w4ew1' }],\n ['path', { d: 'M7 11V7a5 5 0 0 1 10 0v4', key: 'fwvmzm' }],\n]);\n\nexport default Lock;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name MessageSquare\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/message-square\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 MessageSquare = createLucideIcon('MessageSquare', [\n ['path', { d: 'M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z', key: '1lielz' }],\n]);\n\nexport default MessageSquare;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Pencil\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/pencil\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 Pencil = createLucideIcon('Pencil', [\n ['path', { d: 'M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z', key: '5qss01' }],\n ['path', { d: 'm15 5 4 4', key: '1mk7zo' }],\n]);\n\nexport default Pencil;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Settings2\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/settings-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 Settings2 = createLucideIcon('Settings2', [\n ['path', { d: 'M20 7h-9', key: '3s1dr2' }],\n ['path', { d: 'M14 17H5', key: 'gfn3mx' }],\n ['circle', { cx: '17', cy: '17', r: '3', key: '18b49y' }],\n ['circle', { cx: '7', cy: '7', r: '3', key: 'dfmy0x' }],\n]);\n\nexport default Settings2;\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  - 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 * as React from 'react';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type { Scope } from '@radix-ui/react-context';\n\nconst CHECKBOX_NAME = 'Checkbox';\n\ntype ScopedProps<P> = P & { __scopeCheckbox?: Scope };\nconst [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\n\ntype CheckedState = boolean | 'indeterminate';\n\ntype CheckboxContextValue<State extends CheckedState | boolean = CheckedState> = {\n checked: State | boolean;\n setChecked: React.Dispatch<React.SetStateAction<State | boolean>>;\n disabled: boolean | undefined;\n control: HTMLButtonElement | null;\n setControl: React.Dispatch<React.SetStateAction<HTMLButtonElement | null>>;\n name: string | undefined;\n form: string | undefined;\n value: string | number | readonly string[];\n hasConsumerStoppedPropagationRef: React.RefObject<boolean>;\n required: boolean | undefined;\n defaultChecked: boolean | undefined;\n isFormControl: boolean;\n bubbleInput: HTMLInputElement | null;\n setBubbleInput: React.Dispatch<React.SetStateAction<HTMLInputElement | null>>;\n};\n\nconst [CheckboxProviderImpl, useCheckboxContext] =\n createCheckboxContext<CheckboxContextValue>(CHECKBOX_NAME);\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CheckboxProviderProps<State extends CheckedState = CheckedState> {\n checked?: State | boolean;\n defaultChecked?: State | boolean;\n required?: boolean;\n onCheckedChange?(checked: State | boolean): void;\n name?: string;\n form?: string;\n disabled?: boolean;\n value?: string | number | readonly string[];\n children?: React.ReactNode;\n}\n\nfunction CheckboxProvider<State extends CheckedState = CheckedState>(\n props: ScopedProps<CheckboxProviderProps<State>>\n) {\n const {\n __scopeCheckbox,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = 'on',\n // @ts-expect-error\n internal_do_not_use_render,\n } = props;\n\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: CHECKBOX_NAME,\n });\n const [control, setControl] = React.useState<HTMLButtonElement | null>(null);\n const [bubbleInput, setBubbleInput] = React.useState<HTMLInputElement | null>(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = control\n ? !!form || !!control.closest('form')\n : // We set this to true by default so that events bubble to forms without JS (SSR)\n true;\n\n const context: CheckboxContextValue<State> = {\n checked: checked,\n disabled: disabled,\n setChecked: setChecked,\n control: control,\n setControl: setControl,\n name: name,\n form: form,\n value: value,\n hasConsumerStoppedPropagationRef: hasConsumerStoppedPropagationRef,\n required: required,\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked,\n isFormControl: isFormControl,\n bubbleInput,\n setBubbleInput,\n };\n\n return (\n <CheckboxProviderImpl\n scope={__scopeCheckbox}\n {...(context as unknown as CheckboxContextValue<CheckedState>)}\n >\n {isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children}\n </CheckboxProviderImpl>\n );\n}\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'CheckboxTrigger';\n\ninterface CheckboxTriggerProps\n extends Omit<\n React.ComponentPropsWithoutRef<typeof Primitive.button>,\n keyof CheckboxProviderProps\n > {\n children?: React.ReactNode;\n}\n\nconst CheckboxTrigger = React.forwardRef<HTMLButtonElement, CheckboxTriggerProps>(\n (\n { __scopeCheckbox, onKeyDown, onClick, ...checkboxProps }: ScopedProps<CheckboxTriggerProps>,\n forwardedRef\n ) => {\n const {\n control,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n isFormControl,\n bubbleInput,\n } = useCheckboxContext(TRIGGER_NAME, __scopeCheckbox);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form = control?.form;\n if (form) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form.addEventListener('reset', reset);\n return () => form.removeEventListener('reset', reset);\n }\n }, [control, setChecked]);\n\n return (\n <Primitive.button\n type=\"button\"\n role=\"checkbox\"\n aria-checked={isIndeterminate(checked) ? 'mixed' : checked}\n aria-required={required}\n data-state={getState(checked)}\n data-disabled={disabled ? '' : undefined}\n disabled={disabled}\n value={value}\n {...checkboxProps}\n ref={composedRefs}\n onKeyDown={composeEventHandlers(onKeyDown, (event) => {\n // According to WAI ARIA, Checkboxes don't activate on enter keypress\n if (event.key === 'Enter') event.preventDefault();\n })}\n onClick={composeEventHandlers(onClick, (event) => {\n setChecked((prevChecked) => (isIndeterminate(prevChecked) ? true : !prevChecked));\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n // if checkbox has a bubble input and is a form control, stop\n // propagation from the button so that we only propagate one click\n // event (from the input). We propagate changes from an input so\n // that native form validation works and form events reflect\n // checkbox updates.\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })}\n />\n );\n }\n);\n\nCheckboxTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * Checkbox\n * -----------------------------------------------------------------------------------------------*/\n\ntype CheckboxElement = React.ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface CheckboxProps extends Omit<PrimitiveButtonProps, 'checked' | 'defaultChecked'> {\n checked?: CheckedState;\n defaultChecked?: CheckedState;\n required?: boolean;\n onCheckedChange?(checked: CheckedState): void;\n}\n\nconst Checkbox = React.forwardRef<CheckboxElement, CheckboxProps>(\n (props: ScopedProps<CheckboxProps>, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n\n return (\n <CheckboxProvider\n __scopeCheckbox={__scopeCheckbox}\n checked={checked}\n defaultChecked={defaultChecked}\n disabled={disabled}\n required={required}\n onCheckedChange={onCheckedChange}\n name={name}\n form={form}\n value={value}\n // @ts-expect-error\n internal_do_not_use_render={({ isFormControl }: CheckboxContextValue) => (\n <>\n <CheckboxTrigger\n {...checkboxProps}\n ref={forwardedRef}\n // @ts-expect-error\n __scopeCheckbox={__scopeCheckbox}\n />\n {isFormControl && (\n <CheckboxBubbleInput\n // @ts-expect-error\n __scopeCheckbox={__scopeCheckbox}\n />\n )}\n </>\n )}\n />\n );\n }\n);\n\nCheckbox.displayName = CHECKBOX_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'CheckboxIndicator';\n\ntype CheckboxIndicatorElement = React.ComponentRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface CheckboxIndicatorProps extends PrimitiveSpanProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst CheckboxIndicator = React.forwardRef<CheckboxIndicatorElement, CheckboxIndicatorProps>(\n (props: ScopedProps<CheckboxIndicatorProps>, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return (\n <Presence\n present={forceMount || isIndeterminate(context.checked) || context.checked === true}\n >\n <Primitive.span\n data-state={getState(context.checked)}\n data-disabled={context.disabled ? '' : undefined}\n {...indicatorProps}\n ref={forwardedRef}\n style={{ pointerEvents: 'none', ...props.style }}\n />\n </Presence>\n );\n }\n);\n\nCheckboxIndicator.displayName = INDICATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxBubbleInput\n * -----------------------------------------------------------------------------------------------*/\n\nconst BUBBLE_INPUT_NAME = 'CheckboxBubbleInput';\n\ntype InputProps = React.ComponentPropsWithoutRef<typeof Primitive.input>;\ninterface CheckboxBubbleInputProps extends Omit<InputProps, 'checked'> {}\n\nconst CheckboxBubbleInput = React.forwardRef<HTMLInputElement, CheckboxBubbleInputProps>(\n ({ __scopeCheckbox, ...props }: ScopedProps<CheckboxBubbleInputProps>, forwardedRef) => {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput,\n } = useCheckboxContext(BUBBLE_INPUT_NAME, __scopeCheckbox);\n\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n\n // Bubble checked change to parents (e.g form change event)\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n 'checked'\n ) as PropertyDescriptor;\n const setChecked = descriptor.set;\n\n const bubbles = !hasConsumerStoppedPropagationRef.current;\n if (prevChecked !== checked && setChecked) {\n const event = new Event('click', { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);\n\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return (\n <Primitive.input\n type=\"checkbox\"\n aria-hidden\n defaultChecked={defaultChecked ?? defaultCheckedRef.current}\n required={required}\n disabled={disabled}\n name={name}\n value={value}\n form={form}\n {...props}\n tabIndex={-1}\n ref={composedRefs}\n style={{\n ...props.style,\n ...controlSize,\n position: 'absolute',\n pointerEvents: 'none',\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: 'translateX(-100%)',\n }}\n />\n );\n }\n);\n\nCheckboxBubbleInput.displayName = BUBBLE_INPUT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nfunction isFunction(value: unknown): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n\nfunction isIndeterminate(checked?: CheckedState): checked is 'indeterminate' {\n return checked === 'indeterminate';\n}\n\nfunction getState(checked: CheckedState) {\n return isIndeterminate(checked) ? 'indeterminate' : checked ? 'checked' : 'unchecked';\n}\n\nexport {\n createCheckboxScope,\n //\n Checkbox,\n CheckboxProvider,\n CheckboxTrigger,\n CheckboxIndicator,\n CheckboxBubbleInput,\n //\n Checkbox as Root,\n CheckboxProvider as Provider,\n CheckboxTrigger as Trigger,\n CheckboxIndicator as Indicator,\n CheckboxBubbleInput as BubbleInput,\n};\nexport type {\n CheckboxProps,\n CheckboxProviderProps,\n CheckboxTriggerProps,\n CheckboxIndicatorProps,\n CheckboxBubbleInputProps,\n CheckedState,\n};\n","import * as React from 'react';\nimport { Primitive } from '@radix-ui/react-primitive';\n\n/* -------------------------------------------------------------------------------------------------\n * Label\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAME = 'Label';\n\ntype LabelElement = React.ComponentRef<typeof Primitive.label>;\ntype PrimitiveLabelProps = React.ComponentPropsWithoutRef<typeof Primitive.label>;\ninterface LabelProps extends PrimitiveLabelProps {}\n\nconst Label = React.forwardRef<LabelElement, LabelProps>((props, forwardedRef) => {\n return (\n <Primitive.label\n {...props}\n ref={forwardedRef}\n onMouseDown={(event) => {\n // only prevent text selection if clicking inside the label itself\n const target = event.target as HTMLElement;\n if (target.closest('button, input, select, textarea')) return;\n\n props.onMouseDown?.(event);\n // prevent text selection when double clicking label\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }}\n />\n );\n});\n\nLabel.displayName = NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Label;\n\nexport {\n Label,\n //\n Root,\n};\nexport type { LabelProps };\n"],"names":["Promise","resolve","then","__webpack_require__","bind","Files","createLucideIcon","d","key","PackageMinus","points","x1","x2","y1","y2","PlusSquare","width","height","x","y","rx","ItemsSelectionModal","data","onConfirm","param","loading","error","useContexts","context","setContext","useState","undefined","open","setOpen","jsx_runtime","jsxs","Dialog","onOpenChange","value","jsx","DialogTrigger","asChild","Button","className","variant","PlusSquareIcon","DialogContent","DialogHeader","DialogTitle","DialogDescription","Command","CommandInput","placeholder","CommandList","CommandEmpty","CommandGroup","heading","contexts","items","map","CommandItem","onSelect","name","id","ItemsList","console","log","item","__items","_","search","setSearch","refetch","previousData","prev","useQuery","GET_ITEMS","fetchPolicy","nextFetchPolicy","skip","variables","page","limit","sort","field","direction","filters","archived","ne","contains","concat","onValueChange","Loading","PAGINATION_POSTFIX","length","_this","ProjectDetails","project","sessionsData","agentsData","isEditing","setIsEditing","isDeleteDialogOpen","setIsDeleteDialogOpen","isAgentSelectionOpen","setIsAgentSelectionOpen","agentSearch","setAgentSearch","activeView","setActiveView","user","useContext","UserContext","router","useRouter","deleteOptions","setDeleteOptions","deleteItems","deleteSessions","formData","setFormData","description","custom_instructions","toast","useToast","rbac","setRbac","rights_mode","users","RBAC","roles","projects","projectItems","setProjectItems","project_items","updateProject","isSaving","useMutation","UPDATE_PROJECT","deleteProject","DELETE_PROJECT","deletingProject","setDeletingProject","sessionsLoading","refetchSessions","GET_AGENT_SESSIONS","eq","agentsLoading","GET_AGENTS","apolloClient","useApolloClient","createAgentSession","isCreatingSession","CREATE_AGENT_SESSION","updateAgentSession","isUpdatingSession","UPDATE_AGENT_SESSION_PROJECT","deleteSession","isDeletingSession","REMOVE_AGENT_SESSION_BY_ID","chatSessions","agent_sessionsPagination","agents","agentsPagination","filteredAgents","React","filter","agent","toLowerCase","includes","handleSave","trim","title","input","message","handleAgentSelect","result","rights","sessionId","agent_sessionsCreateOne","push","handleDeleteProject","all","split","mutate","mutation","DELETE_ITEM","s3key","files","delete","session","div","Card","CardContent","h3","p","onClick","Settings2","MessageSquare","Shield","CardHeader","CardTitle","CardDescription","Label","htmlFor","Input","onChange","e","target","Textarea","rows","CardFooter","Fragment","span","Pencil","update","ProjectItem","gid","onRemove","g","Plus","writeAccess","checkChatSessionWriteAccess","Link","href","Tooltip","TooltipTrigger","disabled","size","TooltipContent","Trash2","RBACControl","allowedModes","initialRightsMode","initialUsers","initialRoles","initialProjects","AlertTriangle","h4","Checkbox","checked","onCheckedChange","label","DialogFooter","Search","Array","i","Skeleton","image","img","src","alt","Bot","type","Badge","active","GET_ITEM_BY_ID","fields","values","file","FileItem","s3Key","ProjectPage","params","useParams","projectId","GET_PROJECT_BY_ID","Alert","ExclamationTriangleIcon","AlertTitle","AlertDescription","projectById","VISIBILITY_OPTIONS","icon","Lock","Users","Settings","Globe","Folder","visibilityOptions","usersData","visibility","setVisibility","selectedUsers","setSelectedUsers","selectedRoles","setSelectedRoles","hydratedUsers","setHydratedUsers","visibilitySelectorOpen","setVisibilitySelectorOpen","userFilters","setUserFilters","userSearchValue","setUserSearchValue","modalOpen","setModalOpen","modalLoading","setModalLoading","client","usersLoading","refetchUsers","GET_USERS","GET_USER_ROLES","searchUsers","useCallback","copy","exists","find","email","hydrateUsers","max","promises","slice","query","GET_USER_BY_ID","userById","useEffect","filteredUsers","option","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","Popover","PopoverTrigger","role","aria-expanded","ChevronsUpDown","PopoverContent","Check","cn","Loader2","usersPagination","some","selected","Select","hydratedUser","SelectTrigger","SelectValue","SelectContent","SelectItem","rolesPagination","r","selectedRole","ScrollArea","ref","props","CheckboxPrimitive","displayName","CommandPrimitive","cmdk-input-wrapper","List","Empty","Group","CommandSeparator","Separator","Item","svg","aria-hidden","viewBox","fill","xmlns","path","PopoverPrimitive","align","sideOffset","GET_CONTEXTS","isPrivate","isPublic","byUsers","byRoles","isAdmin","super_admin","isCreator","created_by","toString","u","cx","cy","ry","CHECKBOX_NAME","createCheckboxContext","createCheckboxScope","createContextScope","CheckboxProviderImpl","useCheckboxContext","CheckboxProvider","__scopeCheckbox","checkedProp","children","defaultChecked","form","required","internal_do_not_use_render","setChecked","useControllableState","prop","defaultProp","caller","control","setControl","bubbleInput","setBubbleInput","hasConsumerStoppedPropagationRef","isFormControl","closest","isIndeterminate","scope","isFunction","TRIGGER_NAME","CheckboxTrigger","forwardedRef","onKeyDown","checkboxProps","composedRefs","useComposedRefs","initialCheckedStateRef","reset","current","addEventListener","removeEventListener","Primitive","button","getState","composeEventHandlers","event","preventDefault","prevChecked","isPropagationStopped","stopPropagation","CheckboxBubbleInput","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","Presence","present","style","pointerEvents","BUBBLE_INPUT_NAME","usePrevious","controlSize","useSize","descriptor","getOwnPropertyDescriptor","window","HTMLInputElement","prototype","set","bubbles","Event","indeterminate","call","dispatchEvent","defaultCheckedRef","tabIndex","position","opacity","margin","transform","onMouseDown","defaultPrevented","detail","Root"],"sourceRoot":""}
|