@exulu/frontend 1.9.0 → 1.11.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 +191 -188
- 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_client-reference-manifest.js +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 +7 -7
- 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_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/configuration/page_client-reference-manifest.js +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 +3 -3
- 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/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_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/explorer/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/keys/page_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/projects/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/prompts/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/roles/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/token/page_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_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-paths-manifest.json +7 -7
- package/dist/.next/server/chunks/2270.js +154 -130
- package/dist/.next/server/chunks/{5084.js → 2587.js} +1 -1
- package/dist/.next/server/chunks/3503.js +1 -1
- package/dist/.next/server/chunks/5485.js +1 -1
- package/dist/.next/server/chunks/5974.js +1 -1
- package/dist/.next/server/chunks/7944.js +1 -1
- package/dist/.next/server/chunks/8286.js +1 -1
- 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/1707-06e693c4a709c147.js +2 -0
- package/dist/.next/static/chunks/1707-06e693c4a709c147.js.map +1 -0
- package/dist/.next/static/chunks/{1957-cf44b1d31a9c7d5c.js → 1957-34f17de1e14e45de.js} +1 -1
- package/dist/.next/static/chunks/{1957-cf44b1d31a9c7d5c.js.map → 1957-34f17de1e14e45de.js.map} +1 -1
- package/dist/.next/static/chunks/{2293-48a95904b834eccc.js → 2293-592e22dde70d632b.js} +1 -1
- package/dist/.next/static/chunks/{2293-48a95904b834eccc.js.map → 2293-592e22dde70d632b.js.map} +1 -1
- package/dist/.next/static/chunks/2534-3dd7a9fabfbdb9d8.js +2 -0
- package/dist/.next/static/chunks/2534-3dd7a9fabfbdb9d8.js.map +1 -0
- package/dist/.next/static/chunks/2823-324b1cd8f15ff9c5.js +2 -0
- package/dist/.next/static/chunks/2823-324b1cd8f15ff9c5.js.map +1 -0
- package/dist/.next/static/chunks/3246-1812de142455a0ac.js +2 -0
- package/dist/.next/static/chunks/3246-1812de142455a0ac.js.map +1 -0
- package/dist/.next/static/chunks/3750-d0ae5d73288be8de.js +2 -0
- package/dist/.next/static/chunks/3750-d0ae5d73288be8de.js.map +1 -0
- package/dist/.next/static/chunks/{3832-417a5eeee712a793.js → 3832-0b8edbcc671f4cc0.js} +2 -2
- package/dist/.next/static/chunks/3832-0b8edbcc671f4cc0.js.map +1 -0
- package/dist/.next/static/chunks/{4386-45b79e656a244d8a.js → 4386-21ac377a719ebdfa.js} +1 -1
- package/dist/.next/static/chunks/{4386-45b79e656a244d8a.js.map → 4386-21ac377a719ebdfa.js.map} +1 -1
- package/dist/.next/static/chunks/4612-da512770f949561a.js +2 -0
- package/dist/.next/static/chunks/4612-da512770f949561a.js.map +1 -0
- package/dist/.next/static/chunks/{5825-efd4db1da512bd7f.js → 4760-d5ceb992b68e35ca.js} +2 -2
- package/dist/.next/static/chunks/4760-d5ceb992b68e35ca.js.map +1 -0
- package/dist/.next/static/chunks/{6367-59655a85d75e19be.js → 6367-aa5020cbea5354e2.js} +1 -1
- package/dist/.next/static/chunks/{6367-59655a85d75e19be.js.map → 6367-aa5020cbea5354e2.js.map} +1 -1
- package/dist/.next/static/chunks/6373-3eee0b6c8b8fd459.js +2 -0
- package/dist/.next/static/chunks/6373-3eee0b6c8b8fd459.js.map +1 -0
- package/dist/.next/static/chunks/{8030-9c926ea4dfd3a54e.js → 8030-5d38a3f1a4ad44cb.js} +1 -1
- package/dist/.next/static/chunks/{8030-9c926ea4dfd3a54e.js.map → 8030-5d38a3f1a4ad44cb.js.map} +1 -1
- package/dist/.next/static/chunks/{8293-0e69d89d2dac7111.js → 8293-ba5cd36594e6fde1.js} +3 -3
- package/dist/.next/static/chunks/8293-ba5cd36594e6fde1.js.map +1 -0
- package/dist/.next/static/chunks/9105-143f12397a76a332.js +2 -0
- package/dist/.next/static/chunks/9105-143f12397a76a332.js.map +1 -0
- package/dist/.next/static/chunks/9877-378934ae38c6760c.js +2 -0
- package/dist/.next/static/chunks/9877-378934ae38c6760c.js.map +1 -0
- package/dist/.next/static/chunks/{9953-95900a236271a222.js → 9953-02d5b52553a5c573.js} +2 -2
- package/dist/.next/static/chunks/{9953-95900a236271a222.js.map → 9953-02d5b52553a5c573.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/{page-e4a4693953329671.js → page-37918149a8e909b0.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/{page-e4a4693953329671.js.map → page-37918149a8e909b0.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/agents/{page-b77c21a993c55901.js → page-9cff3b35b042d46a.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/agents/{page-b77c21a993c55901.js.map → page-9cff3b35b042d46a.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-53a99d8df53380c7.js +2 -0
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-53a99d8df53380c7.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/chat/{layout-093baa26f89338bc.js → layout-ba702af6bb56baa2.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/chat/{layout-093baa26f89338bc.js.map → layout-ba702af6bb56baa2.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/chat/{page-8a1fcfb68cf9c8c0.js → page-8b00a98d285829b1.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/chat/{page-8a1fcfb68cf9c8c0.js.map → page-8b00a98d285829b1.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/configuration/{page-f315ede6d66922e6.js → page-1e978e117d5086a1.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/configuration/{page-f315ede6d66922e6.js.map → page-1e978e117d5086a1.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/dashboard/{page-4a1956febf5235b6.js → page-c54b4bc8d0ac4ac8.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/dashboard/{page-4a1956febf5235b6.js.map → page-c54b4bc8d0ac4ac8.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-dfdb5c1cdc7ddefc.js +2 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-dfdb5c1cdc7ddefc.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-faaee5fe82b45966.js +2 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-faaee5fe82b45966.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/evals/[id]/{page-a7728cf9b0524489.js → page-c956d9892676aa4f.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/evals/[id]/page-c956d9892676aa4f.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/evals/cases/page-6b4dde82376e9aac.js +2 -0
- package/dist/.next/static/chunks/app/(application)/evals/cases/page-6b4dde82376e9aac.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/evals/{page-8b38d8d29f275704.js → page-944bfc4f0a001e4c.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/evals/page-944bfc4f0a001e4c.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/explorer/page-07d67145bb176711.js +2 -0
- package/dist/.next/static/chunks/app/(application)/explorer/page-07d67145bb176711.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/keys/{page-afe59c91cc347208.js → page-6c0cd9ef20cd1461.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/keys/{page-afe59c91cc347208.js.map → page-6c0cd9ef20cd1461.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/projects/[project]/{page-f04fd5291a1ef7b1.js → page-5e2be54e76b8509c.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/projects/[project]/{page-f04fd5291a1ef7b1.js.map → page-5e2be54e76b8509c.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/projects/{layout-a8e1830ef3faafb9.js → layout-f2e0f42a08c96bb8.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/projects/{layout-a8e1830ef3faafb9.js.map → layout-f2e0f42a08c96bb8.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/prompts/{page-2c500e9898447506.js → page-2c03bbe32800acc3.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/prompts/{page-2c500e9898447506.js.map → page-2c03bbe32800acc3.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/roles/{page-873911198c17d9a7.js → page-b977b5c658004717.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/roles/{page-873911198c17d9a7.js.map → page-b977b5c658004717.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/token/{page-3f74f711f3d04fce.js → page-08596ece49a811b9.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/token/page-08596ece49a811b9.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/users/{page-0d7f0d7e80cd1436.js → page-49212081be40aeca.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/users/{page-0d7f0d7e80cd1436.js.map → page-49212081be40aeca.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/create/{page-8ebf4e3d4d17443b.js → page-9ce762918374f616.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/create/{page-8ebf4e3d4d17443b.js.map → page-9ce762918374f616.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/{page-006145e82e054e72.js → page-0e2b7038546d9f7a.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/{page-006145e82e054e72.js.map → page-0e2b7038546d9f7a.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/{page-51a8aeece444d388.js → page-141d5d3f735454fe.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/{page-51a8aeece444d388.js.map → page-141d5d3f735454fe.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/{page-8f5cfc9565fd919a.js → page-fb1bb3ea6f7cae47.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/{page-8f5cfc9565fd919a.js.map → page-fb1bb3ea6f7cae47.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/workflows/{page-e38f9456120dab69.js → page-2b839fdbc55c297b.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/workflows/page-2b839fdbc55c297b.js.map +1 -0
- package/dist/.next/static/chunks/ba12c10f-85ed008ce7746dbe.js +2 -0
- package/dist/.next/static/chunks/ba12c10f-85ed008ce7746dbe.js.map +1 -0
- package/dist/.next/static/css/0f539b50cca35462.css +4 -0
- package/dist/.next/static/css/0f539b50cca35462.css.map +1 -0
- package/dist/.next/static/css/e3f2a16ab7676b05.css.map +1 -1
- package/dist/package.json +1 -1
- package/package.json +1 -1
- package/dist/.next/static/chunks/1685-939396dad2f8f1e0.js +0 -2
- package/dist/.next/static/chunks/1685-939396dad2f8f1e0.js.map +0 -1
- package/dist/.next/static/chunks/3171-6996819b8863d41f.js +0 -2
- package/dist/.next/static/chunks/3171-6996819b8863d41f.js.map +0 -1
- package/dist/.next/static/chunks/3750-f45c59ef1cc79417.js +0 -2
- package/dist/.next/static/chunks/3750-f45c59ef1cc79417.js.map +0 -1
- package/dist/.next/static/chunks/3832-417a5eeee712a793.js.map +0 -1
- package/dist/.next/static/chunks/4419-b9be79d8cd46a97d.js +0 -2
- package/dist/.next/static/chunks/4419-b9be79d8cd46a97d.js.map +0 -1
- package/dist/.next/static/chunks/5110-098aa924c3108fa4.js +0 -2
- package/dist/.next/static/chunks/5110-098aa924c3108fa4.js.map +0 -1
- package/dist/.next/static/chunks/572-2940a399da1e3a3b.js +0 -2
- package/dist/.next/static/chunks/572-2940a399da1e3a3b.js.map +0 -1
- package/dist/.next/static/chunks/5825-efd4db1da512bd7f.js.map +0 -1
- package/dist/.next/static/chunks/6373-601400fab8a3bb55.js +0 -2
- package/dist/.next/static/chunks/6373-601400fab8a3bb55.js.map +0 -1
- package/dist/.next/static/chunks/8293-0e69d89d2dac7111.js.map +0 -1
- package/dist/.next/static/chunks/9105-dfbce1bad8e3e8dd.js +0 -2
- package/dist/.next/static/chunks/9105-dfbce1bad8e3e8dd.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-7edb1c7c850f982c.js +0 -2
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-7edb1c7c850f982c.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-2d47be0ee80dd89d.js +0 -2
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-2d47be0ee80dd89d.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-8d2b3995cacfd832.js +0 -2
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-8d2b3995cacfd832.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/evals/[id]/page-a7728cf9b0524489.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/evals/cases/page-827f50c6d1f150d0.js +0 -2
- package/dist/.next/static/chunks/app/(application)/evals/cases/page-827f50c6d1f150d0.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/evals/page-8b38d8d29f275704.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/explorer/page-1d676c9dfe3ed58b.js +0 -2
- package/dist/.next/static/chunks/app/(application)/explorer/page-1d676c9dfe3ed58b.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/token/page-3f74f711f3d04fce.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/workflows/page-e38f9456120dab69.js.map +0 -1
- package/dist/.next/static/chunks/ba12c10f-aaafcb074f608624.js +0 -2
- package/dist/.next/static/chunks/ba12c10f-aaafcb074f608624.js.map +0 -1
- package/dist/.next/static/css/6f8c5212af8ef284.css +0 -4
- package/dist/.next/static/css/6f8c5212af8ef284.css.map +0 -1
- /package/dist/.next/static/{ls-syPkq9-MWp-VWWDEZJ → exslB-IPXi_veOKFA4L1Z}/_buildManifest.js +0 -0
- /package/dist/.next/static/{ls-syPkq9-MWp-VWWDEZJ → exslB-IPXi_veOKFA4L1Z}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static/chunks/app/(application)/projects/[project]/page-f04fd5291a1ef7b1.js","mappings":"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","sources":["webpack://_N_E/?ef07","webpack://_N_E/../../../src/icons/settings-2.ts","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/ui/alert.tsx","webpack://_N_E/./components/ui/checkbox.tsx","webpack://_N_E/./components/ui/loading.tsx","webpack://_N_E/./components/ui/use-toast.ts","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/globe.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/plus.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 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 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: \"private\",\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, []),\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-2 sm:grid-cols-2 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) => {\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, []), {\n variables: {\n id\n }\n });\n\n if (loading) {\n return (\n <Card className=\"group relative overflow-hidden\">\n <CardContent className=\"p-4\">\n <Skeleton className=\"h-4 w-3/4 mb-2\" />\n <Skeleton className=\"h-3 w-full\" />\n <Skeleton className=\"h-3 w-2/3 mt-1\" />\n </CardContent>\n </Card>\n );\n }\n\n const item = data?.[context + \"_itemsById\"];\n\n if (!item) return null;\n\n // Format date to be more readable\n const formatDate = (dateString?: string) => {\n if (!dateString) return null;\n const date = new Date(dateString);\n return date.toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' });\n };\n\n return (\n <Card className=\"group relative overflow-hidden hover:shadow-md transition-all duration-200 hover:border-primary/50\">\n <CardContent className=\"p-4\">\n {/* Icon and Remove Button */}\n <div className=\"flex items-start justify-between mb-3\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 opacity-0 group-hover:opacity-100 transition-opacity\"\n onClick={(e) => {\n e.stopPropagation();\n onRemove(gid);\n }}\n >\n <Trash2 className=\"h-4 w-4 text-destructive\" />\n </Button>\n </div>\n\n {/* Item Name */}\n <div className=\"mb-2\">\n <h4 className=\"font-medium text-sm line-clamp-2 min-h-[2.5rem]\">\n {item.name || \"Untitled\"}\n </h4>\n </div>\n\n {/* Item Description */}\n {item.description && (\n <p className=\"text-xs text-muted-foreground line-clamp-2 mb-3 min-h-[2.5rem]\">\n {item.description}\n </p>\n )}\n\n {/* Metadata Section */}\n <div className=\"space-y-2 pt-2 border-t\">\n {/* Context Type */}\n <div className=\"flex items-center justify-between text-xs text-muted-foreground\">\n <span className=\"truncate\">{context.replace(/_/g, ' ')}</span>\n {item.updatedAt && (\n <span className=\"text-xs text-muted-foreground whitespace-nowrap\">\n {formatDate(item.updatedAt)}\n </span>\n )}\n </div>\n\n {/* Text Length Indicator */}\n {item.textlength && (\n <div className=\"flex items-center gap-1 text-xs text-muted-foreground\">\n <span>{item.textlength.toLocaleString()} chars</span>\n {item.chunks && item.chunks.length > 0 && (\n <span className=\"text-xs\">• {item.chunks.length} chunks</span>\n )}\n </div>\n )}\n </div>\n </CardContent>\n </Card>\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}","import { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive\",\n info: \"border-info/50 text-info dark:border-info [&>svg]:text-info\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n));\nAlert.displayName = \"Alert\";\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n));\nAlertTitle.displayName = \"AlertTitle\";\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n));\nAlertDescription.displayName = \"AlertDescription\";\n\nexport { Alert, AlertTitle, AlertDescription };\n","\"use client\";\n\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { Check } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-current\")}\n >\n <Check className=\"size-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","import { 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\n// Inspired by react-hot-toast library\nimport * as React from \"react\";\n\nimport type { ToastActionElement, ToastProps } from \"@/components/ui/toast\";\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"];\n toast: ToasterToast;\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t,\n ),\n };\n\n case \"DISMISS_TOAST\": {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t,\n ),\n };\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, \"id\">;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: \"UPDATE_TOAST\",\n toast: { ...props, id },\n });\n const dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id });\n\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n };\n}\n\nexport { useToast, toast };\n","import { 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 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 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 Plus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Plus = createLucideIcon('Plus', [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'M12 5v14', key: 's699le' }],\n]);\n\nexport default Plus;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name 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","Settings2","createLucideIcon","d","key","cx","cy","r","Files","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","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","sessionId","agent_sessionsCreateOne","push","handleDeleteProject","all","split","mutate","mutation","DELETE_ITEM","s3key","files","delete","session","div","Card","CardContent","h3","p","onClick","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","AlertTriangle","h4","Checkbox","checked","onCheckedChange","label","DialogFooter","Search","Array","i","Skeleton","image","img","src","alt","Bot","type","Badge","active","dateString","GET_ITEM_BY_ID","stopPropagation","replace","updatedAt","date","Date","toLocaleDateString","month","day","year","textlength","toLocaleString","chunks","ProjectPage","params","useParams","projectId","GET_PROJECT_BY_ID","Alert","ExclamationTriangleIcon","AlertTitle","AlertDescription","projectById","alertVariants","cva","variants","default","destructive","info","defaultVariants","ref","props","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","role","cn","displayName","h5","CheckboxPrimitive","Check","svg","aria-hidden","viewBox","fill","xmlns","path","count","toastTimeouts","Map","addToRemoveQueue","has","toastId","timeout","setTimeout","dispatch","set","reducer","state","action","toasts","slice","t","forEach","listeners","memoryState","listener","Number","MAX_SAFE_INTEGER","toString","dismiss","setState","index","indexOf","splice","GET_CONTEXTS","isPrivate","isPublic","byUsers","byRoles","isAdmin","super_admin","isCreator","created_by","find","u","rights","ChevronsUpDown","Globe","Lock","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","CheckboxBubbleInput","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","Presence","present","style","pointerEvents","BUBBLE_INPUT_NAME","usePrevious","controlSize","useSize","descriptor","getOwnPropertyDescriptor","window","HTMLInputElement","prototype","bubbles","Event","indeterminate","call","dispatchEvent","defaultCheckedRef","tabIndex","position","opacity","margin","transform","onMouseDown","defaultPrevented","detail","Root"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"static/chunks/app/(application)/projects/[project]/page-5e2be54e76b8509c.js","mappings":"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","sources":["webpack://_N_E/?ef07","webpack://_N_E/../../../src/icons/settings-2.ts","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/ui/alert.tsx","webpack://_N_E/./components/ui/checkbox.tsx","webpack://_N_E/./components/ui/loading.tsx","webpack://_N_E/./components/ui/use-toast.ts","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/globe.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/plus.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 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 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: \"private\",\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, []),\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-2 sm:grid-cols-2 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) => {\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, []), {\n variables: {\n id\n }\n });\n\n if (loading) {\n return (\n <Card className=\"group relative overflow-hidden\">\n <CardContent className=\"p-4\">\n <Skeleton className=\"h-4 w-3/4 mb-2\" />\n <Skeleton className=\"h-3 w-full\" />\n <Skeleton className=\"h-3 w-2/3 mt-1\" />\n </CardContent>\n </Card>\n );\n }\n\n const item = data?.[context + \"_itemsById\"];\n\n if (!item) return null;\n\n // Format date to be more readable\n const formatDate = (dateString?: string) => {\n if (!dateString) return null;\n const date = new Date(dateString);\n return date.toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' });\n };\n\n return (\n <Card className=\"group relative overflow-hidden hover:shadow-md transition-all duration-200 hover:border-primary/50\">\n <CardContent className=\"p-4\">\n {/* Icon and Remove Button */}\n <div className=\"flex items-start justify-between mb-3\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 opacity-0 group-hover:opacity-100 transition-opacity\"\n onClick={(e) => {\n e.stopPropagation();\n onRemove(gid);\n }}\n >\n <Trash2 className=\"h-4 w-4 text-destructive\" />\n </Button>\n </div>\n\n {/* Item Name */}\n <div className=\"mb-2\">\n <h4 className=\"font-medium text-sm line-clamp-2 min-h-[2.5rem]\">\n {item.name || \"Untitled\"}\n </h4>\n </div>\n\n {/* Item Description */}\n {item.description && (\n <p className=\"text-xs text-muted-foreground line-clamp-2 mb-3 min-h-[2.5rem]\">\n {item.description}\n </p>\n )}\n\n {/* Metadata Section */}\n <div className=\"space-y-2 pt-2 border-t\">\n {/* Context Type */}\n <div className=\"flex items-center justify-between text-xs text-muted-foreground\">\n <span className=\"truncate\">{context.replace(/_/g, ' ')}</span>\n {item.updatedAt && (\n <span className=\"text-xs text-muted-foreground whitespace-nowrap\">\n {formatDate(item.updatedAt)}\n </span>\n )}\n </div>\n\n {/* Text Length Indicator */}\n {item.textlength && (\n <div className=\"flex items-center gap-1 text-xs text-muted-foreground\">\n <span>{item.textlength.toLocaleString()} chars</span>\n {item.chunks && item.chunks.length > 0 && (\n <span className=\"text-xs\">• {item.chunks.length} chunks</span>\n )}\n </div>\n )}\n </div>\n </CardContent>\n </Card>\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}","import { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive\",\n info: \"border-info/50 text-info dark:border-info [&>svg]:text-info\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n));\nAlert.displayName = \"Alert\";\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n));\nAlertTitle.displayName = \"AlertTitle\";\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n));\nAlertDescription.displayName = \"AlertDescription\";\n\nexport { Alert, AlertTitle, AlertDescription };\n","\"use client\";\n\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { Check } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-current\")}\n >\n <Check className=\"size-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","import { 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\n// Inspired by react-hot-toast library\nimport * as React from \"react\";\n\nimport type { ToastActionElement, ToastProps } from \"@/components/ui/toast\";\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"];\n toast: ToasterToast;\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t,\n ),\n };\n\n case \"DISMISS_TOAST\": {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t,\n ),\n };\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, \"id\">;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: \"UPDATE_TOAST\",\n toast: { ...props, id },\n });\n const dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id });\n\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n };\n}\n\nexport { useToast, toast };\n","import { 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 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 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 Plus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Plus = createLucideIcon('Plus', [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'M12 5v14', key: 's699le' }],\n]);\n\nexport default Plus;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name 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","Settings2","createLucideIcon","d","key","cx","cy","r","Files","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","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","sessionId","agent_sessionsCreateOne","push","handleDeleteProject","all","split","mutate","mutation","DELETE_ITEM","s3key","files","delete","session","div","Card","CardContent","h3","p","onClick","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","AlertTriangle","h4","Checkbox","checked","onCheckedChange","label","DialogFooter","Search","Array","i","Skeleton","image","img","src","alt","Bot","type","Badge","active","dateString","GET_ITEM_BY_ID","stopPropagation","replace","updatedAt","date","Date","toLocaleDateString","month","day","year","textlength","toLocaleString","chunks","ProjectPage","params","useParams","projectId","GET_PROJECT_BY_ID","Alert","ExclamationTriangleIcon","AlertTitle","AlertDescription","projectById","alertVariants","cva","variants","default","destructive","info","defaultVariants","ref","props","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","role","cn","displayName","h5","CheckboxPrimitive","Check","svg","aria-hidden","viewBox","fill","xmlns","path","count","toastTimeouts","Map","addToRemoveQueue","has","toastId","timeout","setTimeout","dispatch","set","reducer","state","action","toasts","slice","t","forEach","listeners","memoryState","listener","Number","MAX_SAFE_INTEGER","toString","dismiss","setState","index","indexOf","splice","GET_CONTEXTS","isPrivate","isPublic","byUsers","byRoles","isAdmin","super_admin","isCreator","created_by","find","u","rights","ChevronsUpDown","Globe","Lock","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","CheckboxBubbleInput","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","Presence","present","style","pointerEvents","BUBBLE_INPUT_NAME","usePrevious","controlSize","useSize","descriptor","getOwnPropertyDescriptor","window","HTMLInputElement","prototype","bubbles","Event","indeterminate","call","dispatchEvent","defaultCheckedRef","tabIndex","position","opacity","margin","transform","onMouseDown","defaultPrevented","detail","Root"],"sourceRoot":""}
|