@exulu/frontend 1.10.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 +163 -160
- 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 +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/[session]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/page_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 +2 -2
- 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 +5 -5
- package/dist/.next/server/chunks/2270.js +145 -132
- 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-e3d1b2cccd265190.js → 3750-d0ae5d73288be8de.js} +2 -2
- package/dist/.next/static/chunks/3750-d0ae5d73288be8de.js.map +1 -0
- package/dist/.next/static/chunks/{3832-d7782d6a2771ae6c.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/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-0c7c1b0e1713bf60.js → layout-dfdb5c1cdc7ddefc.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/{layout-0c7c1b0e1713bf60.js.map → layout-dfdb5c1cdc7ddefc.js.map} +1 -1
- 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-3acc39cb8a718331.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/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/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-e3d1b2cccd265190.js.map +0 -1
- package/dist/.next/static/chunks/3832-d7782d6a2771ae6c.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/5825-efd4db1da512bd7f.js.map +0 -1
- package/dist/.next/static/chunks/6280-50b751f993f2fe4f.js +0 -2
- package/dist/.next/static/chunks/6280-50b751f993f2fe4f.js.map +0 -1
- package/dist/.next/static/chunks/6373-aef582adc575d3ca.js +0 -2
- package/dist/.next/static/chunks/6373-aef582adc575d3ca.js.map +0 -1
- package/dist/.next/static/chunks/9105-d8ff41060f7ffc85.js +0 -2
- package/dist/.next/static/chunks/9105-d8ff41060f7ffc85.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-d59534ca19eee51f.js +0 -2
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-d59534ca19eee51f.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-7db6bfbf02606136.js +0 -2
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-7db6bfbf02606136.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-e6b1c034c07776e2.js +0 -2
- package/dist/.next/static/chunks/app/(application)/explorer/page-e6b1c034c07776e2.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/token/page-3acc39cb8a718331.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/workflows/page-e38f9456120dab69.js.map +0 -1
- package/dist/.next/static/css/9c08ae5d990a6b14.css +0 -4
- package/dist/.next/static/css/9c08ae5d990a6b14.css.map +0 -1
- /package/dist/.next/static/{3j63p6b3zZZB_v1Hn8Mxp → exslB-IPXi_veOKFA4L1Z}/_buildManifest.js +0 -0
- /package/dist/.next/static/{3j63p6b3zZZB_v1Hn8Mxp → exslB-IPXi_veOKFA4L1Z}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static/chunks/app/(application)/chat/layout-093baa26f89338bc.js","mappings":"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","sources":["webpack://_N_E/?dfc3","webpack://_N_E/./app/(application)/chat/[agent]/chat-sessions.tsx","webpack://_N_E/./components/agent-nav.tsx","webpack://_N_E/./app/(application)/chat/layout.tsx","webpack://_N_E/./components/truncated-text.tsx","webpack://_N_E/./components/ui/use-toast.ts","webpack://_N_E/./lib/check-chat-session-write-access.ts","webpack://_N_E/../../../src/icons/chevron-left.ts","webpack://_N_E/../../../src/icons/file-text.ts","webpack://_N_E/../../../src/icons/image.ts","webpack://_N_E/../../../src/icons/info.ts","webpack://_N_E/../../../src/icons/plus.ts","webpack://_N_E/../../../src/icons/search.ts","webpack://_N_E/../../../src/icons/shield.ts","webpack://_N_E/../../../src/icons/star.ts","webpack://_N_E/../../../src/icons/text.ts","webpack://_N_E/../../../src/icons/video.ts","webpack://_N_E/../../../src/icons/volume-2.ts","webpack://_N_E/../../../src/icons/wrench.ts","webpack://_N_E/./node_modules/@apollo/client/react/hooks/internal/useIsomorphicLayoutEffect.js","webpack://_N_E/./node_modules/@apollo/client/react/hooks/useMutation.js"],"sourcesContent":["import(/* webpackMode: \"eager\" */ \"/home/runner/work/exulu-frontend/exulu-frontend/app/(application)/chat/layout.tsx\");\n","\"use client\"\n\nimport { useMutation, useQuery } from \"@apollo/client\";\nimport { DotsHorizontalIcon } from \"@radix-ui/react-icons\";\nimport { formatDistanceToNow } from \"date-fns/formatDistanceToNow\";\nimport { PlusIcon, Search } from \"lucide-react\";\nimport { useRouter } from \"next/navigation\";\nimport * as React from \"react\";\nimport { useContext, useEffect, useState } from \"react\";\nimport { UserContext } from \"@/app/(application)/authenticated\";\nimport { Agent } from \"@EXULU_SHARED/models/agent\";\nimport { AgentSession } from \"@EXULU_SHARED/models/agent-session\";\nimport {\n CREATE_AGENT_SESSION,\n GET_AGENT_SESSIONS,\n REMOVE_AGENT_SESSION_BY_ID,\n UPDATE_AGENT_SESSION_TITLE,\n} from \"@/queries/queries\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"@/components/ui/dialog\";\nimport { Input } from \"@/components/ui/input\";\nimport { useToast } from \"@/components/ui/use-toast\";\nimport { cn } from \"@/lib/utils\";\nimport { usePathname } from \"next/navigation\";\nimport { useIsMobile } from \"@/hooks/use-mobile\";\nimport Link from \"next/link\";\nimport { checkChatSessionWriteAccess } from \"@/lib/check-chat-session-write-access\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\n\nexport function ChatSessionsComponent({ agent, type }: { agent: string, type: string }) {\n\n const pathname = usePathname();\n const { toast } = useToast();\n const { user } = useContext(UserContext);\n const [sessionName, setSessionName] = useState(\"\");\n const isMobile = useIsMobile();\n const router = useRouter();\n let [search, setSearch]: any = useState({ searchString: null });\n const [renameDialogOpen, setRenameDialogOpen] = useState(false);\n const [renameSessionId, setRenameSessionId] = useState<string | null>(null);\n const [newSessionName, setNewSessionName] = useState(\"\");\n\n const sessionsQuery = useQuery(GET_AGENT_SESSIONS, {\n returnPartialData: true,\n fetchPolicy: \"network-only\",\n nextFetchPolicy: \"network-only\",\n variables: {\n page: 1,\n limit: 40,\n filters: {\n agent: {\n eq: agent\n }\n }\n },\n });\n\n const [removeSession, removeSessionResult] = useMutation(\n REMOVE_AGENT_SESSION_BY_ID,\n {\n refetchQueries: [\n GET_AGENT_SESSIONS,\n \"GetAgentSessions\",\n ],\n },\n );\n\n const [createAgentSession, createAgentSessionResult] = useMutation(\n CREATE_AGENT_SESSION,\n );\n\n const [updateSessionTitle, updateSessionTitleResult] = useMutation(\n UPDATE_AGENT_SESSION_TITLE,\n {\n refetchQueries: [\n GET_AGENT_SESSIONS,\n \"GetAgentSessions\",\n ],\n },\n );\n\n useEffect(() => {\n let variables: any = {\n page: 1,\n limit: 40,\n };\n if (search && search?.length > 2) {\n variables.filters = { agent: { eq: agent }, title: { contains: search } };\n } else {\n variables.filters = { agent: { eq: agent } };\n }\n sessionsQuery.refetch(variables);\n }, [search]);\n\n const handleCreateSession = async () => {\n const newSession = await createAgentSession({\n variables: {\n user: user.id,\n agent: agent,\n type: \"FLOW\",\n title: sessionName.trim(),\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n },\n });\n if (newSession.errors) {\n console.error(\"error\", newSession.errors);\n return;\n }\n if (\n !newSession.data?.agent_sessionsCreateOne?.item?.id\n ) {\n console.error(\"error\", \"failed to create session\");\n return;\n }\n setSessionName(\"\");\n sessionsQuery.refetch();\n router.push(\n `/chat/${agent}/${newSession.data?.agent_sessionsCreateOne?.item?.id}`,\n );\n }\n\n const handleRenameSession = async () => {\n if (!renameSessionId || !newSessionName.trim()) return;\n\n const result = await updateSessionTitle({\n variables: {\n id: renameSessionId,\n title: newSessionName.trim(),\n },\n });\n\n if (result.errors) {\n console.error(\"error\", result.errors);\n toast({\n title: \"Error\",\n description: \"Failed to rename session.\",\n variant: \"destructive\",\n });\n return;\n }\n\n toast({\n title: \"Session renamed\",\n description: \"The session has been renamed successfully.\",\n });\n\n setRenameDialogOpen(false);\n setRenameSessionId(null);\n setNewSessionName(\"\");\n }\n\n return (\n <div\n key={agent + type}\n className=\"relative hidden flex-col items-start md:flex border-r\"\n x-chunk=\"dashboard-03-chunk-0\">\n <h2 className=\"mb-2 px-4 text-lg font-semibold tracking-tight\">Sessions</h2>\n\n <div className=\"bg-background/95 w-full backdrop-blur supports-[backdrop-filter]:bg-background/60\">\n <form>\n <div className=\"relative\">\n <Search className=\"absolute left-2 top-2.5 size-4 text-muted-foreground\" />\n <Input\n onKeyUp={(e) => {\n const searchString = e.currentTarget.value;\n setSearch(searchString);\n }}\n placeholder=\"Search sessions\"\n className=\"pl-8 border-0\"\n />\n </div>\n </form>\n </div>\n\n <div className=\"flex w-full items-center gap-2 p-3 border-t justify-between\">\n <Input\n autoFocus={true}\n value={sessionName}\n onChange={(e) => setSessionName(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n handleCreateSession();\n }\n }}\n placeholder=\"Name\"\n className=\"flex-1\"\n />\n <Button\n variant=\"secondary\"\n tabIndex={1}\n disabled={createAgentSessionResult.loading || !sessionName.trim()}\n onClick={async () => {\n // create a new session\n handleCreateSession();\n }}\n >\n <div className=\"font-semibold\">\n <PlusIcon />\n </div>\n </Button>\n </div>\n {sessionsQuery.loading && (\n <div className=\"w-full flex flex-col p-2 pt-0 pb-2\">\n <Skeleton className=\"w-full rounded h-[70px] rounded-md\" />\n <Skeleton className=\"w-full rounded h-[70px] rounded-md mt-3\" />\n <Skeleton className=\"w-full rounded h-[70px] rounded-md mt-3\" />\n <Skeleton className=\"w-full rounded h-[70px] rounded-md mt-3\" />\n </div>\n )}\n\n {!sessionsQuery.loading && !sessionsQuery?.data?.agent_sessionsPagination?.items?.length && (\n <div className=\"w-full flex\">\n <p className=\"mx-auto mt-5\">No sessions found.</p>\n </div>\n )}\n\n {!sessionsQuery.loading\n ? sessionsQuery?.data?.agent_sessionsPagination?.items?.map(\n (\n item: Omit<AgentSession, \"agent\"> & {\n agent: Agent;\n },\n ) => {\n\n const writeAccess = checkChatSessionWriteAccess({\n ...item,\n agent: item.agent.id\n }, user);\n\n return (\n <div key={item.id} className={`w-full px-2 flex flex-col items-start gap-0 rounded-none border-none text-left text-sm mb-2`}>\n <Link\n key={item.id}\n href={`/chat/${agent}/${item.id}`}\n className={cn(\n `p-2 w-full flex flex-col items-start gap-2 rounded-md p-3 text-left text-sm transition-all hover:bg-accent`,\n pathname.includes(item.id) && \"bg-muted\",\n writeAccess ? \"border border-l-4 border-r-0 border-y-0 border-gray-700\" : \"border border-l-4 border-r-0 border-y-0 border-yellow-900\",\n )}\n >\n <div className=\"flex w-full flex-col px-2\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex flex-col gap-2\">\n <div className=\"text-md font-medium max-w-[80%] truncate\">\n {item.title\n ? item.title?.substring(0, 20)\n : \"No title\"}\n </div>\n\n <div\n className={cn(\n \"ml-0 text-xs capitalize\",\n pathname.includes(item.id)\n ? \"text-foreground\"\n : \"text-muted-foreground\",\n )}\n >\n {item.updatedAt\n ? formatDistanceToNow(\n new Date(item.updatedAt),\n {\n addSuffix: true,\n },\n )\n : null}.\n </div>\n </div>\n\n {writeAccess && (\n <DropdownMenu modal={false}>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"ghost\"\n className=\"flex size-8 p-0 data-[state=open]:bg-muted\"\n >\n <DotsHorizontalIcon className=\"size-4\" />\n <span className=\"sr-only\">Open menu</span>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n align=\"end\"\n className=\"w-[160px]\">\n <DropdownMenuItem\n className=\"cursor-pointer\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setRenameSessionId(item.id);\n setNewSessionName(item.title || \"\");\n setRenameDialogOpen(true);\n }}>\n Rename\n </DropdownMenuItem>\n <DropdownMenuItem\n className=\"cursor-pointer\"\n onClick={() => {\n removeSession({\n variables: {\n id: item.id,\n },\n });\n toast({\n title: \"Deleting session\",\n description: \"We deleted the session.\",\n });\n }}>\n Delete\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n </div>\n <small className=\"text-xs text-muted-foreground\">\n {item.agent?.name}\n </small>\n </div>\n </Link>\n </div>\n )\n },\n )\n : null}\n\n <Dialog open={renameDialogOpen} onOpenChange={setRenameDialogOpen}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Rename Session</DialogTitle>\n <DialogDescription>\n Enter a new name for this session.\n </DialogDescription>\n </DialogHeader>\n <Input\n value={newSessionName}\n onChange={(e) => setNewSessionName(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n handleRenameSession();\n }\n }}\n placeholder=\"Session name\"\n />\n <DialogFooter>\n <Button\n variant=\"outline\"\n onClick={() => {\n setRenameDialogOpen(false);\n setRenameSessionId(null);\n setNewSessionName(\"\");\n }}\n >\n Cancel\n </Button>\n <Button\n onClick={handleRenameSession}\n disabled={updateSessionTitleResult.loading || !newSessionName.trim()}\n >\n Rename\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </div>\n );\n}\n","import Link from \"next/link\"\nimport { ChevronLeft, Info, Search, Star } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { useQuery, useMutation } from \"@apollo/client\";\nimport { GET_AGENTS, GET_AGENTS_BY_IDS, UPDATE_USER_BY_ID } from \"@/queries/queries\";\nimport { Agent } from \"@EXULU_SHARED/models/agent\";\nimport * as React from \"react\";\nimport { TruncatedText } from \"./truncated-text\";\nimport { useParams, usePathname } from \"next/navigation\";\nimport { Skeleton } from \"./ui/skeleton\";\nimport { AgentDetailsSheet } from \"@/app/(application)/agents/components/agent-details-sheet\";\nimport { UserContext } from \"@/app/(application)/authenticated\";\nimport { useContext, useState, useEffect } from \"react\";\nimport { User } from \"@/types/models/user\";\nimport { ChatSessionsComponent } from \"@/app/(application)/chat/[agent]/chat-sessions\";\n\nexport function AgentNav() {\n const [searchQuery, setSearchQuery] = React.useState(\"\");\n const [selectedAgentId, setSelectedAgentId] = React.useState<string | null>(null);\n const [sheetOpen, setSheetOpen] = React.useState(false);\n const [showAllFavorites, setShowAllFavorites] = React.useState(false);\n const [showAllAgents, setShowAllAgents] = React.useState(false);\n const params = useParams();\n const pathname = usePathname();\n const { user: init } = useContext(UserContext);\n const [user, setUser] = useState<User>(init);\n\n // Fetch favourite agents using GET_AGENTS_BY_IDS\n const favouriteAgents = useQuery(GET_AGENTS_BY_IDS, {\n fetchPolicy: \"no-cache\",\n nextFetchPolicy: \"network-only\",\n variables: {\n ids: user?.favourite_agents || []\n },\n skip: !user?.favourite_agents?.length,\n });\n\n // Fetch regular agents (excluding favourites when not searching)\n const agents = useQuery(GET_AGENTS, {\n fetchPolicy: \"no-cache\",\n nextFetchPolicy: \"network-only\",\n variables: {\n page: 1,\n limit: 200,\n filters: {\n ...(user?.super_admin ? {} : {\n active: true\n }),\n ...(searchQuery ? {\n name: {\n contains: searchQuery\n }\n } : {})\n },\n },\n });\n\n const [updateUser] = useMutation(UPDATE_USER_BY_ID, {\n onCompleted: (data) => {\n setUser({ ...user, favourite_agents: data.usersUpdateOneById?.item?.favourite_agents });\n },\n });\n\n const handleInfoClick = (agentId: string, event: React.MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n setSelectedAgentId(agentId);\n setSheetOpen(true);\n };\n\n const handleFavouriteToggle = (agentId: string, event: React.MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n\n console.log(\"user\", user);\n const currentFavourites = user?.favourite_agents || [];\n const isFavourite = currentFavourites.includes(agentId);\n\n let newFavourites: string[];\n if (isFavourite) {\n newFavourites = currentFavourites.filter((id: string) => id !== agentId);\n } else {\n newFavourites = [...currentFavourites, agentId];\n }\n\n console.log(\"newFavourites\", newFavourites);\n\n updateUser({\n variables: {\n id: user.id,\n favourite_agents: newFavourites\n }\n });\n };\n\n // Check if an agent is currently selected\n const selectedAgent = params.agent ? agents?.data?.agentsPagination?.items?.find(\n (agent: Agent) => agent.id === params.agent\n ) : null;\n\n const renderAgentImage = (agent: Agent) => {\n if (agent.image) {\n return (\n <img\n src={agent.image}\n alt={`${agent.name} profile`}\n className=\"h-4 w-4 rounded-full object-cover\"\n />\n );\n } else {\n return (\n <div className=\"h-4 w-4 rounded-full bg-gradient-to-br from-blue-500 to-purple-600 flex items-center justify-center text-white text-xs font-medium\">\n {agent.name?.charAt(0).toUpperCase() || 'A'}\n </div>\n );\n }\n };\n\n useEffect(() => {\n setShowAllAgents(false)\n setShowAllFavorites(false)\n }, [params.agent]);\n\n return (\n <>\n <div className=\"pb-12 w-[250px] max-h-[calc(100vh)] overflow-y-auto overflow-x-hidden\">\n <div className=\"space-y-4 py-4\">\n <div>\n <h2 className=\"mb-2 px-4 text-lg font-semibold tracking-tight\">Agents</h2>\n <div>\n <div className=\"relative\">\n <Search className=\"absolute left-2 top-2.5 h-4 w-4 text-muted-foreground\" />\n <Input\n placeholder=\"Search agents...\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"pl-8 h-9 border-0\"\n />\n </div>\n </div>\n <div className=\"space-y-1 border-t px-2 pt-2\">\n {\n (selectedAgent && !showAllAgents) && (\n <div key={`fav-${selectedAgent.id}`} className=\"flex items-center gap-1\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 flex-shrink-0\"\n onClick={() => setShowAllAgents(!showAllAgents)}\n >\n <ChevronLeft className=\"h-3 w-3\" />\n </Button>\n <Link onClick={() => setShowAllAgents(false)} href={`/chat/${selectedAgent.id}`} className=\"flex-1\">\n <Button\n onClick={() => setShowAllAgents(false)}\n variant={pathname.includes(selectedAgent.id) ? \"secondary\" : \"ghost\"}\n className=\"w-full justify-start gap-2 pr-5\">\n {renderAgentImage(selectedAgent)}\n <span className=\"flex-1 text-left\">\n <TruncatedText text={selectedAgent.name} length={7} />\n </span>\n </Button>\n </Link>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 flex-shrink-0\"\n onClick={(e) => handleFavouriteToggle(selectedAgent.id, e)}\n >\n <Star className=\"h-3 w-3 fill-yellow-400 text-yellow-400\" />\n </Button>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 flex-shrink-0\"\n onClick={(e) => handleInfoClick(selectedAgent.id, e)}\n >\n <Info className=\"h-3 w-3\" />\n </Button>\n </div>\n )\n }\n {\n (!selectedAgent || showAllAgents || searchQuery) && (\n <>\n {user?.favourite_agents && user?.favourite_agents?.length > 0 && !searchQuery && (\n <>\n {favouriteAgents.loading && (\n <>\n <Skeleton className=\"w-[100%] h-[32px] rounded-lg\" />\n <Skeleton className=\"w-[100%] h-[32px] rounded-lg\" />\n </>\n )}\n {!favouriteAgents.loading && (() => {\n const favoriteAgentsList = favouriteAgents?.data?.agentByIds || [];\n const displayedFavorites = showAllFavorites ? favoriteAgentsList : favoriteAgentsList.slice(0, 4);\n\n return (\n <>\n {displayedFavorites.map((agent: Agent) => (\n <div key={`fav-${agent.id}`} className=\"flex items-center gap-1\">\n <Link href={`/chat/${agent.id}`} className=\"flex-1\">\n <Button\n variant={pathname.includes(agent.id) ? \"secondary\" : \"ghost\"}\n className=\"w-full justify-start gap-2 pr-1\">\n {renderAgentImage(agent)}\n <span className=\"flex-1 text-left\">\n <TruncatedText text={agent.name} length={10} />\n </span>\n </Button>\n </Link>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 flex-shrink-0\"\n onClick={(e) => handleFavouriteToggle(agent.id, e)}\n >\n <Star className=\"h-3 w-3 fill-yellow-400 text-yellow-400\" />\n </Button>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 flex-shrink-0\"\n onClick={(e) => handleInfoClick(agent.id, e)}\n >\n <Info className=\"h-3 w-3\" />\n </Button>\n </div>\n ))}\n {favoriteAgentsList.length > 4 && (\n <Button\n variant=\"ghost\"\n className=\"w-full justify-center text-xs text-muted-foreground h-8\"\n onClick={() => setShowAllFavorites(!showAllFavorites)}\n >\n {showAllFavorites\n ? 'Show less'\n : `Show more (${favoriteAgentsList.length - 4})`\n }\n </Button>\n )}\n </>\n );\n })()}\n </>\n )}\n\n {/* Regular Agents */}\n {agents.loading && <>\n <Skeleton className=\"w-[100%] h-[32px] rounded-lg\" />\n <Skeleton className=\"w-[100%] h-[32px] rounded-lg\" />\n <Skeleton className=\"w-[100%] h-[32px] rounded-lg\" />\n <Skeleton className=\"w-[100%] h-[32px] rounded-lg\" />\n <Skeleton className=\"w-[100%] h-[32px] rounded-lg\" />\n </>}\n {!agents.loading && (() => {\n const regularAgentsList = agents?.data?.agentsPagination?.items\n ?.filter((agent: Agent) => !user?.favourite_agents?.includes(agent.id) || searchQuery) || [];\n const displayedAgents = (searchQuery || showAllAgents) ? regularAgentsList : regularAgentsList.slice(0, 4);\n\n return (\n <>\n {displayedAgents.map((agent: Agent) => (\n <div key={agent.id} className=\"flex items-center gap-1\">\n <Link href={`/chat/${agent.id}`} className=\"flex-1\">\n <Button\n variant={pathname.includes(agent.id) ? \"secondary\" : \"ghost\"}\n className=\"w-full justify-start gap-2 pr-1\">\n {renderAgentImage(agent)}\n <span className=\"flex-1 text-left\">\n <TruncatedText text={agent.name} length={14} />\n </span>\n </Button>\n </Link>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 flex-shrink-0\"\n onClick={(e) => handleFavouriteToggle(agent.id, e)}\n >\n <Star className={`h-3 w-3 ${user?.favourite_agents?.includes(agent.id) ? 'fill-yellow-400 text-yellow-400' : ''}`} />\n </Button>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 flex-shrink-0\"\n onClick={(e) => handleInfoClick(agent.id, e)}\n >\n <Info className=\"h-3 w-3\" />\n </Button>\n </div>\n ))}\n {!searchQuery && regularAgentsList.length > 4 && (\n <Button\n variant=\"ghost\"\n className=\"w-full justify-center text-xs text-muted-foreground h-8\"\n onClick={() => setShowAllAgents(!showAllAgents)}\n >\n {showAllAgents\n ? 'Show less'\n : `Show more (${regularAgentsList.length - 4})`\n }\n </Button>\n )}\n </>\n );\n })()}\n </>\n )}\n </div>\n </div>\n {/*<div className=\"px-3 py-2\">\n <h2 className=\"mb-2 px-4 text-lg font-semibold tracking-tight\">Settings</h2>\n <div className=\"space-y-1\">\n <Link href=\"/settings\">\n <Button variant=\"ghost\" className=\"w-full justify-start gap-2\">\n <Settings className=\"h-4 w-4\" />\n Settings\n </Button>\n </Link>\n </div>\n </div>*/}\n </div>\n {\n params.agent && (\n <ChatSessionsComponent agent={params.agent as string} type={\"chat\"} />\n )\n }\n </div>\n\n {selectedAgentId && (\n <AgentDetailsSheet\n agentId={selectedAgentId}\n open={sheetOpen}\n onOpenChange={(open) => {\n setSheetOpen(open);\n if (!open) {\n setSelectedAgentId(null);\n }\n }}\n />\n )}\n </>\n )\n}\n\n","\"use client\";\n\nimport {AgentNav} from \"@/components/agent-nav\";\nimport * as React from \"react\";\n\nexport default function ChatLayout({ children }: { children: React.ReactNode }) {\n return (\n <div className=\"flex h-full\">\n <div className=\"border-r bg-muted/10\">\n <AgentNav/>\n </div>\n {children}\n </div>\n );\n}\n","export function TruncatedText({ text, length }: { text: string, length: number }) {\n if (text.length > length) {\n return <>{text.slice(0, length)}...</>\n } else {\n return <>{text}</>;\n }\n}","\"use client\";\n\n// Inspired by react-hot-toast library\nimport * as React from \"react\";\n\nimport type { ToastActionElement, ToastProps } from \"@/components/ui/toast\";\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"];\n toast: ToasterToast;\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t,\n ),\n };\n\n case \"DISMISS_TOAST\": {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t,\n ),\n };\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, \"id\">;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: \"UPDATE_TOAST\",\n toast: { ...props, id },\n });\n const dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id });\n\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n };\n}\n\nexport { useToast, toast };\n","import { AgentSession } from \"@/types/models/agent-session\";\nimport { UserWithRole } from \"@/types/models/user\";\n\nexport const checkChatSessionWriteAccess = (session: AgentSession, user: UserWithRole) => {\n const isPrivate = session.rights_mode === 'private';\n const isPublic = session.rights_mode === 'public';\n const byUsers = session.rights_mode === 'users';\n const byRoles = session.rights_mode === 'roles';\n const isAdmin = user.super_admin;\n const isCreator = session.created_by === user.id.toString();\n \n let writeAccess = false;\n if (isPrivate && isCreator) {\n writeAccess = true;\n }\n if (isPublic) {\n writeAccess = true;\n }\n if (byUsers) {\n writeAccess = session.RBAC?.users?.find(u => u.id === user.id)?.rights === 'write';\n }\n if (byRoles) {\n writeAccess = session.RBAC?.roles?.find(r => r.id === user.role?.id)?.rights === 'write';\n }\n if (isAdmin) {\n writeAccess = true;\n }\n return writeAccess;\n}","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronLeft = createLucideIcon('ChevronLeft', [\n ['path', { d: 'm15 18-6-6 6-6', key: '1wnfg3' }],\n]);\n\nexport default ChevronLeft;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name FileText\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/file-text\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst FileText = createLucideIcon('FileText', [\n [\n 'path',\n { d: 'M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z', key: '1nnpy2' },\n ],\n ['polyline', { points: '14 2 14 8 20 8', key: '1ew0cm' }],\n ['line', { x1: '16', x2: '8', y1: '13', y2: '13', key: '14keom' }],\n ['line', { x1: '16', x2: '8', y1: '17', y2: '17', key: '17nazh' }],\n ['line', { x1: '10', x2: '8', y1: '9', y2: '9', key: '1a5vjj' }],\n]);\n\nexport default FileText;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Image\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/image\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Image = createLucideIcon('Image', [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2', key: '1m3agn' }],\n ['circle', { cx: '9', cy: '9', r: '2', key: 'af1f0g' }],\n ['path', { d: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21', key: '1xmnt7' }],\n]);\n\nexport default Image;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Info\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/info\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Info = createLucideIcon('Info', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M12 16v-4', key: '1dtifu' }],\n ['path', { d: 'M12 8h.01', key: 'e9boi3' }],\n]);\n\nexport default Info;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Plus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Plus = createLucideIcon('Plus', [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'M12 5v14', key: 's699le' }],\n]);\n\nexport default Plus;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Search = createLucideIcon('Search', [\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n ['path', { d: 'm21 21-4.3-4.3', key: '1qie3q' }],\n]);\n\nexport default Search;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Shield\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/shield\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Shield = createLucideIcon('Shield', [\n ['path', { d: 'M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10', key: '1irkt0' }],\n]);\n\nexport default Shield;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Star\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/star\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Star = createLucideIcon('Star', [\n [\n 'polygon',\n {\n points:\n '12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2',\n key: '8f66p6',\n },\n ],\n]);\n\nexport default Star;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Text\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/text\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Text = createLucideIcon('Text', [\n ['path', { d: 'M17 6.1H3', key: 'wptmhv' }],\n ['path', { d: 'M21 12.1H3', key: '1j38uz' }],\n ['path', { d: 'M15.1 18H3', key: '1nb16a' }],\n]);\n\nexport default Text;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Video\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/video\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Video = createLucideIcon('Video', [\n ['path', { d: 'm22 8-6 4 6 4V8Z', key: '50v9me' }],\n ['rect', { width: '14', height: '12', x: '2', y: '6', rx: '2', ry: '2', key: '1rqjg6' }],\n]);\n\nexport default Video;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Volume2\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/volume-2\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Volume2 = createLucideIcon('Volume2', [\n ['polygon', { points: '11 5 6 9 2 9 2 15 6 15 11 19 11 5', key: '16drj5' }],\n ['path', { d: 'M15.54 8.46a5 5 0 0 1 0 7.07', key: 'ltjumu' }],\n ['path', { d: 'M19.07 4.93a10 10 0 0 1 0 14.14', key: '1kegas' }],\n]);\n\nexport default Volume2;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Wrench\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/wrench\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Wrench = createLucideIcon('Wrench', [\n [\n 'path',\n {\n d: 'M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z',\n key: 'cbrjhi',\n },\n ],\n]);\n\nexport default Wrench;\n","import * as React from \"rehackt\";\nimport { canUseDOM } from \"../../../utilities/index.js\";\n// use canUseDOM here instead of canUseLayoutEffect because we want to be able\n// to use useLayoutEffect in our jest tests. useLayoutEffect seems to work fine\n// in useSuspenseQuery tests, but to honor the original comment about the\n// warnings for useSyncExternalStore implementation, canUseLayoutEffect is left\n// alone.\nexport var useIsomorphicLayoutEffect = canUseDOM ? React.useLayoutEffect : React.useEffect;\n//# sourceMappingURL=useIsomorphicLayoutEffect.js.map","import { __assign } from \"tslib\";\nimport * as React from \"rehackt\";\nimport { mergeOptions } from \"../../utilities/index.js\";\nimport { equal } from \"@wry/equality\";\nimport { DocumentType, verifyDocumentType } from \"../parser/index.js\";\nimport { ApolloError } from \"../../errors/index.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\nimport { useIsomorphicLayoutEffect } from \"./internal/useIsomorphicLayoutEffect.js\";\n/**\n *\n *\n * > Refer to the [Mutations](https://www.apollographql.com/docs/react/data/mutations/) section for a more in-depth overview of `useMutation`.\n *\n * @example\n * ```jsx\n * import { gql, useMutation } from '@apollo/client';\n *\n * const ADD_TODO = gql`\n * mutation AddTodo($type: String!) {\n * addTodo(type: $type) {\n * id\n * type\n * }\n * }\n * `;\n *\n * function AddTodo() {\n * let input;\n * const [addTodo, { data }] = useMutation(ADD_TODO);\n *\n * return (\n * <div>\n * <form\n * onSubmit={e => {\n * e.preventDefault();\n * addTodo({ variables: { type: input.value } });\n * input.value = '';\n * }}\n * >\n * <input\n * ref={node => {\n * input = node;\n * }}\n * />\n * <button type=\"submit\">Add Todo</button>\n * </form>\n * </div>\n * );\n * }\n * ```\n * @since 3.0.0\n * @param mutation - A GraphQL mutation document parsed into an AST by `gql`.\n * @param options - Options to control how the mutation is executed.\n * @returns A tuple in the form of `[mutate, result]`\n */\nexport function useMutation(mutation, options) {\n var client = useApolloClient(options === null || options === void 0 ? void 0 : options.client);\n verifyDocumentType(mutation, DocumentType.Mutation);\n var _a = React.useState({\n called: false,\n loading: false,\n client: client,\n }), result = _a[0], setResult = _a[1];\n var ref = React.useRef({\n result: result,\n mutationId: 0,\n isMounted: true,\n client: client,\n mutation: mutation,\n options: options,\n });\n useIsomorphicLayoutEffect(function () {\n Object.assign(ref.current, { client: client, options: options, mutation: mutation });\n });\n var execute = React.useCallback(function (executeOptions) {\n if (executeOptions === void 0) { executeOptions = {}; }\n var _a = ref.current, options = _a.options, mutation = _a.mutation;\n var baseOptions = __assign(__assign({}, options), { mutation: mutation });\n var client = executeOptions.client || ref.current.client;\n if (!ref.current.result.loading &&\n !baseOptions.ignoreResults &&\n ref.current.isMounted) {\n setResult((ref.current.result = {\n loading: true,\n error: void 0,\n data: void 0,\n called: true,\n client: client,\n }));\n }\n var mutationId = ++ref.current.mutationId;\n var clientOptions = mergeOptions(baseOptions, executeOptions);\n return client\n .mutate(clientOptions)\n .then(function (response) {\n var _a, _b;\n var data = response.data, errors = response.errors;\n var error = errors && errors.length > 0 ?\n new ApolloError({ graphQLErrors: errors })\n : void 0;\n var onError = executeOptions.onError || ((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError);\n if (error && onError) {\n onError(error, clientOptions);\n }\n if (mutationId === ref.current.mutationId &&\n !clientOptions.ignoreResults) {\n var result_1 = {\n called: true,\n loading: false,\n data: data,\n error: error,\n client: client,\n };\n if (ref.current.isMounted && !equal(ref.current.result, result_1)) {\n setResult((ref.current.result = result_1));\n }\n }\n var onCompleted = executeOptions.onCompleted || ((_b = ref.current.options) === null || _b === void 0 ? void 0 : _b.onCompleted);\n if (!error) {\n onCompleted === null || onCompleted === void 0 ? void 0 : onCompleted(response.data, clientOptions);\n }\n return response;\n }, function (error) {\n var _a;\n if (mutationId === ref.current.mutationId &&\n ref.current.isMounted) {\n var result_2 = {\n loading: false,\n error: error,\n data: void 0,\n called: true,\n client: client,\n };\n if (!equal(ref.current.result, result_2)) {\n setResult((ref.current.result = result_2));\n }\n }\n var onError = executeOptions.onError || ((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError);\n if (onError) {\n onError(error, clientOptions);\n // TODO(brian): why are we returning this here???\n return { data: void 0, errors: error };\n }\n throw error;\n });\n }, []);\n var reset = React.useCallback(function () {\n if (ref.current.isMounted) {\n var result_3 = {\n called: false,\n loading: false,\n client: ref.current.client,\n };\n Object.assign(ref.current, { mutationId: 0, result: result_3 });\n setResult(result_3);\n }\n }, []);\n React.useEffect(function () {\n var current = ref.current;\n // eslint-disable-next-line react-compiler/react-compiler\n current.isMounted = true;\n return function () {\n current.isMounted = false;\n };\n }, []);\n return [execute, __assign({ reset: reset }, result)];\n}\n//# sourceMappingURL=useMutation.js.map"],"names":["Promise","resolve","then","__webpack_require__","bind","ChatSessionsComponent","param","sessionsQuery","agent","type","pathname","usePathname","toast","useToast","user","useContext","UserContext","sessionName","setSessionName","useState","useIsMobile","router","useRouter","search","setSearch","searchString","renameDialogOpen","setRenameDialogOpen","renameSessionId","setRenameSessionId","newSessionName","setNewSessionName","useQuery","GET_AGENT_SESSIONS","returnPartialData","fetchPolicy","nextFetchPolicy","variables","page","limit","filters","eq","removeSession","removeSessionResult","useMutation","REMOVE_AGENT_SESSION_BY_ID","refetchQueries","createAgentSession","createAgentSessionResult","CREATE_AGENT_SESSION","updateSessionTitle","updateSessionTitleResult","UPDATE_AGENT_SESSION_TITLE","useEffect","length","title","contains","refetch","handleCreateSession","newSession","id","trim","createdAt","Date","toISOString","updatedAt","errors","console","error","data","agent_sessionsCreateOne","item","push","concat","handleRenameSession","result","description","variant","jsx_runtime","jsxs","div","className","x-chunk","jsx","h2","form","Search","Input","onKeyUp","e","currentTarget","value","placeholder","autoFocus","onChange","target","onKeyDown","key","Button","tabIndex","disabled","loading","onClick","PlusIcon","Skeleton","agent_sessionsPagination","items","p","map","writeAccess","checkChatSessionWriteAccess","Link","href","cn","includes","substring","formatDistanceToNow","addSuffix","DropdownMenu","modal","DropdownMenuTrigger","asChild","DotsHorizontalIcon","span","DropdownMenuContent","align","DropdownMenuItem","preventDefault","stopPropagation","small","name","Dialog","open","onOpenChange","DialogContent","DialogHeader","DialogTitle","DialogDescription","DialogFooter","AgentNav","agents","searchQuery","setSearchQuery","React","selectedAgentId","setSelectedAgentId","sheetOpen","setSheetOpen","showAllFavorites","setShowAllFavorites","showAllAgents","setShowAllAgents","params","useParams","init","setUser","favouriteAgents","GET_AGENTS_BY_IDS","ids","favourite_agents","skip","GET_AGENTS","super_admin","active","updateUser","UPDATE_USER_BY_ID","onCompleted","usersUpdateOneById","handleInfoClick","agentId","event","handleFavouriteToggle","newFavourites","log","currentFavourites","filter","selectedAgent","agentsPagination","find","renderAgentImage","image","img","src","alt","charAt","toUpperCase","Fragment","size","ChevronLeft","TruncatedText","text","Star","Info","favoriteAgentsList","agentByIds","displayedFavorites","slice","regularAgentsList","displayedAgents","AgentDetailsSheet","ChatLayout","children","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","count","toastTimeouts","Map","addToRemoveQueue","has","toastId","timeout","setTimeout","delete","dispatch","set","reducer","state","action","toasts","t","forEach","undefined","listeners","memoryState","listener","props","Number","MAX_SAFE_INTEGER","toString","dismiss","update","setState","index","indexOf","splice","session","isPrivate","rights_mode","isPublic","byUsers","byRoles","isAdmin","isCreator","created_by","RBAC","users","u","rights","roles","r","role","createLucideIcon","d","FileText","points","x1","x2","y1","y2","Image","width","height","x","y","rx","ry","cx","cy","Plus","Shield","Text","Video","Volume2","Wrench","useIsomorphicLayoutEffect","canUse","Nq","rehackt","useLayoutEffect","mutation","options","client","useApolloClient","parser","Vp","n_","Mutation","_a","called","setResult","ref","useRef","mutationId","isMounted","Object","assign","current","execute","useCallback","executeOptions","baseOptions","tslib_es6","pi","ignoreResults","clientOptions","mergeOptions","J","mutate","response","_b","client_errors","cA","graphQLErrors","onError","result_1","lib","D","result_2","reset","result_3"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"static/chunks/app/(application)/chat/layout-ba702af6bb56baa2.js","mappings":"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","sources":["webpack://_N_E/?dfc3","webpack://_N_E/./app/(application)/chat/[agent]/chat-sessions.tsx","webpack://_N_E/./components/agent-nav.tsx","webpack://_N_E/./app/(application)/chat/layout.tsx","webpack://_N_E/./components/truncated-text.tsx","webpack://_N_E/./components/ui/use-toast.ts","webpack://_N_E/./lib/check-chat-session-write-access.ts","webpack://_N_E/../../../src/icons/chevron-left.ts","webpack://_N_E/../../../src/icons/file-text.ts","webpack://_N_E/../../../src/icons/image.ts","webpack://_N_E/../../../src/icons/info.ts","webpack://_N_E/../../../src/icons/plus.ts","webpack://_N_E/../../../src/icons/search.ts","webpack://_N_E/../../../src/icons/shield.ts","webpack://_N_E/../../../src/icons/star.ts","webpack://_N_E/../../../src/icons/text.ts","webpack://_N_E/../../../src/icons/video.ts","webpack://_N_E/../../../src/icons/volume-2.ts","webpack://_N_E/../../../src/icons/wrench.ts","webpack://_N_E/./node_modules/@apollo/client/react/hooks/internal/useIsomorphicLayoutEffect.js","webpack://_N_E/./node_modules/@apollo/client/react/hooks/useMutation.js"],"sourcesContent":["import(/* webpackMode: \"eager\" */ \"/home/runner/work/exulu-frontend/exulu-frontend/app/(application)/chat/layout.tsx\");\n","\"use client\"\n\nimport { useMutation, useQuery } from \"@apollo/client\";\nimport { DotsHorizontalIcon } from \"@radix-ui/react-icons\";\nimport { formatDistanceToNow } from \"date-fns/formatDistanceToNow\";\nimport { PlusIcon, Search } from \"lucide-react\";\nimport { useRouter } from \"next/navigation\";\nimport * as React from \"react\";\nimport { useContext, useEffect, useState } from \"react\";\nimport { UserContext } from \"@/app/(application)/authenticated\";\nimport { Agent } from \"@EXULU_SHARED/models/agent\";\nimport { AgentSession } from \"@EXULU_SHARED/models/agent-session\";\nimport {\n CREATE_AGENT_SESSION,\n GET_AGENT_SESSIONS,\n REMOVE_AGENT_SESSION_BY_ID,\n UPDATE_AGENT_SESSION_TITLE,\n} from \"@/queries/queries\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"@/components/ui/dialog\";\nimport { Input } from \"@/components/ui/input\";\nimport { useToast } from \"@/components/ui/use-toast\";\nimport { cn } from \"@/lib/utils\";\nimport { usePathname } from \"next/navigation\";\nimport { useIsMobile } from \"@/hooks/use-mobile\";\nimport Link from \"next/link\";\nimport { checkChatSessionWriteAccess } from \"@/lib/check-chat-session-write-access\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\n\nexport function ChatSessionsComponent({ agent, type }: { agent: string, type: string }) {\n\n const pathname = usePathname();\n const { toast } = useToast();\n const { user } = useContext(UserContext);\n const [sessionName, setSessionName] = useState(\"\");\n const isMobile = useIsMobile();\n const router = useRouter();\n let [search, setSearch]: any = useState({ searchString: null });\n const [renameDialogOpen, setRenameDialogOpen] = useState(false);\n const [renameSessionId, setRenameSessionId] = useState<string | null>(null);\n const [newSessionName, setNewSessionName] = useState(\"\");\n\n const sessionsQuery = useQuery(GET_AGENT_SESSIONS, {\n returnPartialData: true,\n fetchPolicy: \"network-only\",\n nextFetchPolicy: \"network-only\",\n variables: {\n page: 1,\n limit: 40,\n filters: {\n agent: {\n eq: agent\n }\n }\n },\n });\n\n const [removeSession, removeSessionResult] = useMutation(\n REMOVE_AGENT_SESSION_BY_ID,\n {\n refetchQueries: [\n GET_AGENT_SESSIONS,\n \"GetAgentSessions\",\n ],\n },\n );\n\n const [createAgentSession, createAgentSessionResult] = useMutation(\n CREATE_AGENT_SESSION,\n );\n\n const [updateSessionTitle, updateSessionTitleResult] = useMutation(\n UPDATE_AGENT_SESSION_TITLE,\n {\n refetchQueries: [\n GET_AGENT_SESSIONS,\n \"GetAgentSessions\",\n ],\n },\n );\n\n useEffect(() => {\n let variables: any = {\n page: 1,\n limit: 40,\n };\n if (search && search?.length > 2) {\n variables.filters = { agent: { eq: agent }, title: { contains: search } };\n } else {\n variables.filters = { agent: { eq: agent } };\n }\n sessionsQuery.refetch(variables);\n }, [search]);\n\n const handleCreateSession = async () => {\n const newSession = await createAgentSession({\n variables: {\n user: user.id,\n agent: agent,\n type: \"FLOW\",\n title: sessionName.trim(),\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n },\n });\n if (newSession.errors) {\n console.error(\"error\", newSession.errors);\n return;\n }\n if (\n !newSession.data?.agent_sessionsCreateOne?.item?.id\n ) {\n console.error(\"error\", \"failed to create session\");\n return;\n }\n setSessionName(\"\");\n sessionsQuery.refetch();\n router.push(\n `/chat/${agent}/${newSession.data?.agent_sessionsCreateOne?.item?.id}`,\n );\n }\n\n const handleRenameSession = async () => {\n if (!renameSessionId || !newSessionName.trim()) return;\n\n const result = await updateSessionTitle({\n variables: {\n id: renameSessionId,\n title: newSessionName.trim(),\n },\n });\n\n if (result.errors) {\n console.error(\"error\", result.errors);\n toast({\n title: \"Error\",\n description: \"Failed to rename session.\",\n variant: \"destructive\",\n });\n return;\n }\n\n toast({\n title: \"Session renamed\",\n description: \"The session has been renamed successfully.\",\n });\n\n setRenameDialogOpen(false);\n setRenameSessionId(null);\n setNewSessionName(\"\");\n }\n\n return (\n <div\n key={agent + type}\n className=\"relative hidden flex-col items-start md:flex border-r\"\n x-chunk=\"dashboard-03-chunk-0\">\n <h2 className=\"mb-2 px-4 text-lg font-semibold tracking-tight\">Sessions</h2>\n\n <div className=\"bg-background/95 w-full backdrop-blur supports-[backdrop-filter]:bg-background/60\">\n <form>\n <div className=\"relative\">\n <Search className=\"absolute left-2 top-2.5 size-4 text-muted-foreground\" />\n <Input\n onKeyUp={(e) => {\n const searchString = e.currentTarget.value;\n setSearch(searchString);\n }}\n placeholder=\"Search sessions\"\n className=\"pl-8 border-0\"\n />\n </div>\n </form>\n </div>\n\n <div className=\"flex w-full items-center gap-2 p-3 border-t justify-between\">\n <Input\n autoFocus={true}\n value={sessionName}\n onChange={(e) => setSessionName(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n handleCreateSession();\n }\n }}\n placeholder=\"Name\"\n className=\"flex-1\"\n />\n <Button\n variant=\"secondary\"\n tabIndex={1}\n disabled={createAgentSessionResult.loading || !sessionName.trim()}\n onClick={async () => {\n // create a new session\n handleCreateSession();\n }}\n >\n <div className=\"font-semibold\">\n <PlusIcon />\n </div>\n </Button>\n </div>\n {sessionsQuery.loading && (\n <div className=\"w-full flex flex-col p-2 pt-0 pb-2\">\n <Skeleton className=\"w-full rounded h-[70px] rounded-md\" />\n <Skeleton className=\"w-full rounded h-[70px] rounded-md mt-3\" />\n <Skeleton className=\"w-full rounded h-[70px] rounded-md mt-3\" />\n <Skeleton className=\"w-full rounded h-[70px] rounded-md mt-3\" />\n </div>\n )}\n\n {!sessionsQuery.loading && !sessionsQuery?.data?.agent_sessionsPagination?.items?.length && (\n <div className=\"w-full flex\">\n <p className=\"mx-auto mt-5\">No sessions found.</p>\n </div>\n )}\n\n {!sessionsQuery.loading\n ? sessionsQuery?.data?.agent_sessionsPagination?.items?.map(\n (\n item: Omit<AgentSession, \"agent\"> & {\n agent: Agent;\n },\n ) => {\n\n const writeAccess = checkChatSessionWriteAccess({\n ...item,\n agent: item.agent.id\n }, user);\n\n return (\n <div key={item.id} className={`w-full px-2 flex flex-col items-start gap-0 rounded-none border-none text-left text-sm mb-2`}>\n <Link\n key={item.id}\n href={`/chat/${agent}/${item.id}`}\n className={cn(\n `p-2 w-full flex flex-col items-start gap-2 rounded-md p-3 text-left text-sm transition-all hover:bg-accent`,\n pathname.includes(item.id) && \"bg-muted\",\n writeAccess ? \"border border-l-4 border-r-0 border-y-0 border-gray-700\" : \"border border-l-4 border-r-0 border-y-0 border-yellow-900\",\n )}\n >\n <div className=\"flex w-full flex-col px-2\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex flex-col gap-2\">\n <div className=\"text-md font-medium max-w-[80%] truncate\">\n {item.title\n ? item.title?.substring(0, 20)\n : \"No title\"}\n </div>\n\n <div\n className={cn(\n \"ml-0 text-xs capitalize\",\n pathname.includes(item.id)\n ? \"text-foreground\"\n : \"text-muted-foreground\",\n )}\n >\n {item.updatedAt\n ? formatDistanceToNow(\n new Date(item.updatedAt),\n {\n addSuffix: true,\n },\n )\n : null}.\n </div>\n </div>\n\n {writeAccess && (\n <DropdownMenu modal={false}>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"ghost\"\n className=\"flex size-8 p-0 data-[state=open]:bg-muted\"\n >\n <DotsHorizontalIcon className=\"size-4\" />\n <span className=\"sr-only\">Open menu</span>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n align=\"end\"\n className=\"w-[160px]\">\n <DropdownMenuItem\n className=\"cursor-pointer\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setRenameSessionId(item.id);\n setNewSessionName(item.title || \"\");\n setRenameDialogOpen(true);\n }}>\n Rename\n </DropdownMenuItem>\n <DropdownMenuItem\n className=\"cursor-pointer\"\n onClick={() => {\n removeSession({\n variables: {\n id: item.id,\n },\n });\n toast({\n title: \"Deleting session\",\n description: \"We deleted the session.\",\n });\n }}>\n Delete\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n </div>\n <small className=\"text-xs text-muted-foreground\">\n {item.agent?.name}\n </small>\n </div>\n </Link>\n </div>\n )\n },\n )\n : null}\n\n <Dialog open={renameDialogOpen} onOpenChange={setRenameDialogOpen}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Rename Session</DialogTitle>\n <DialogDescription>\n Enter a new name for this session.\n </DialogDescription>\n </DialogHeader>\n <Input\n value={newSessionName}\n onChange={(e) => setNewSessionName(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n handleRenameSession();\n }\n }}\n placeholder=\"Session name\"\n />\n <DialogFooter>\n <Button\n variant=\"outline\"\n onClick={() => {\n setRenameDialogOpen(false);\n setRenameSessionId(null);\n setNewSessionName(\"\");\n }}\n >\n Cancel\n </Button>\n <Button\n onClick={handleRenameSession}\n disabled={updateSessionTitleResult.loading || !newSessionName.trim()}\n >\n Rename\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </div>\n );\n}\n","import Link from \"next/link\"\nimport { ChevronLeft, Info, Search, Star } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { useQuery, useMutation } from \"@apollo/client\";\nimport { GET_AGENTS, GET_AGENTS_BY_IDS, UPDATE_USER_BY_ID } from \"@/queries/queries\";\nimport { Agent } from \"@EXULU_SHARED/models/agent\";\nimport * as React from \"react\";\nimport { TruncatedText } from \"./truncated-text\";\nimport { useParams, usePathname } from \"next/navigation\";\nimport { Skeleton } from \"./ui/skeleton\";\nimport { AgentDetailsSheet } from \"@/app/(application)/agents/components/agent-details-sheet\";\nimport { UserContext } from \"@/app/(application)/authenticated\";\nimport { useContext, useState, useEffect } from \"react\";\nimport { User } from \"@/types/models/user\";\nimport { ChatSessionsComponent } from \"@/app/(application)/chat/[agent]/chat-sessions\";\n\nexport function AgentNav() {\n const [searchQuery, setSearchQuery] = React.useState(\"\");\n const [selectedAgentId, setSelectedAgentId] = React.useState<string | null>(null);\n const [sheetOpen, setSheetOpen] = React.useState(false);\n const [showAllFavorites, setShowAllFavorites] = React.useState(false);\n const [showAllAgents, setShowAllAgents] = React.useState(false);\n const params = useParams();\n const pathname = usePathname();\n const { user: init } = useContext(UserContext);\n const [user, setUser] = useState<User>(init);\n\n // Fetch favourite agents using GET_AGENTS_BY_IDS\n const favouriteAgents = useQuery(GET_AGENTS_BY_IDS, {\n fetchPolicy: \"no-cache\",\n nextFetchPolicy: \"network-only\",\n variables: {\n ids: user?.favourite_agents || []\n },\n skip: !user?.favourite_agents?.length,\n });\n\n // Fetch regular agents (excluding favourites when not searching)\n const agents = useQuery(GET_AGENTS, {\n fetchPolicy: \"no-cache\",\n nextFetchPolicy: \"network-only\",\n variables: {\n page: 1,\n limit: 200,\n filters: {\n ...(user?.super_admin ? {} : {\n active: true\n }),\n ...(searchQuery ? {\n name: {\n contains: searchQuery\n }\n } : {})\n },\n },\n });\n\n const [updateUser] = useMutation(UPDATE_USER_BY_ID, {\n onCompleted: (data) => {\n setUser({ ...user, favourite_agents: data.usersUpdateOneById?.item?.favourite_agents });\n },\n });\n\n const handleInfoClick = (agentId: string, event: React.MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n setSelectedAgentId(agentId);\n setSheetOpen(true);\n };\n\n const handleFavouriteToggle = (agentId: string, event: React.MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n\n console.log(\"user\", user);\n const currentFavourites = user?.favourite_agents || [];\n const isFavourite = currentFavourites.includes(agentId);\n\n let newFavourites: string[];\n if (isFavourite) {\n newFavourites = currentFavourites.filter((id: string) => id !== agentId);\n } else {\n newFavourites = [...currentFavourites, agentId];\n }\n\n console.log(\"newFavourites\", newFavourites);\n\n updateUser({\n variables: {\n id: user.id,\n favourite_agents: newFavourites\n }\n });\n };\n\n // Check if an agent is currently selected\n const selectedAgent = params.agent ? agents?.data?.agentsPagination?.items?.find(\n (agent: Agent) => agent.id === params.agent\n ) : null;\n\n const renderAgentImage = (agent: Agent) => {\n if (agent.image) {\n return (\n <img\n src={agent.image}\n alt={`${agent.name} profile`}\n className=\"h-4 w-4 rounded-full object-cover\"\n />\n );\n } else {\n return (\n <div className=\"h-4 w-4 rounded-full bg-gradient-to-br from-blue-500 to-purple-600 flex items-center justify-center text-white text-xs font-medium\">\n {agent.name?.charAt(0).toUpperCase() || 'A'}\n </div>\n );\n }\n };\n\n useEffect(() => {\n setShowAllAgents(false)\n setShowAllFavorites(false)\n }, [params.agent]);\n\n return (\n <>\n <div className=\"pb-12 w-[250px] max-h-[calc(100vh)] overflow-y-auto overflow-x-hidden\">\n <div className=\"space-y-4 py-4\">\n <div>\n <h2 className=\"mb-2 px-4 text-lg font-semibold tracking-tight\">Agents</h2>\n <div>\n <div className=\"relative\">\n <Search className=\"absolute left-2 top-2.5 h-4 w-4 text-muted-foreground\" />\n <Input\n placeholder=\"Search agents...\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"pl-8 h-9 border-0\"\n />\n </div>\n </div>\n <div className=\"space-y-1 border-t px-2 pt-2\">\n {\n (selectedAgent && !showAllAgents) && (\n <div key={`fav-${selectedAgent.id}`} className=\"flex items-center gap-1\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 flex-shrink-0\"\n onClick={() => setShowAllAgents(!showAllAgents)}\n >\n <ChevronLeft className=\"h-3 w-3\" />\n </Button>\n <Link onClick={() => setShowAllAgents(false)} href={`/chat/${selectedAgent.id}`} className=\"flex-1\">\n <Button\n onClick={() => setShowAllAgents(false)}\n variant={pathname.includes(selectedAgent.id) ? \"secondary\" : \"ghost\"}\n className=\"w-full justify-start gap-2 pr-5\">\n {renderAgentImage(selectedAgent)}\n <span className=\"flex-1 text-left\">\n <TruncatedText text={selectedAgent.name} length={7} />\n </span>\n </Button>\n </Link>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 flex-shrink-0\"\n onClick={(e) => handleFavouriteToggle(selectedAgent.id, e)}\n >\n <Star className=\"h-3 w-3 fill-yellow-400 text-yellow-400\" />\n </Button>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 flex-shrink-0\"\n onClick={(e) => handleInfoClick(selectedAgent.id, e)}\n >\n <Info className=\"h-3 w-3\" />\n </Button>\n </div>\n )\n }\n {\n (!selectedAgent || showAllAgents || searchQuery) && (\n <>\n {user?.favourite_agents && user?.favourite_agents?.length > 0 && !searchQuery && (\n <>\n {favouriteAgents.loading && (\n <>\n <Skeleton className=\"w-[100%] h-[32px] rounded-lg\" />\n <Skeleton className=\"w-[100%] h-[32px] rounded-lg\" />\n </>\n )}\n {!favouriteAgents.loading && (() => {\n const favoriteAgentsList = favouriteAgents?.data?.agentByIds || [];\n const displayedFavorites = showAllFavorites ? favoriteAgentsList : favoriteAgentsList.slice(0, 4);\n\n return (\n <>\n {displayedFavorites.map((agent: Agent) => (\n <div key={`fav-${agent.id}`} className=\"flex items-center gap-1\">\n <Link href={`/chat/${agent.id}`} className=\"flex-1\">\n <Button\n variant={pathname.includes(agent.id) ? \"secondary\" : \"ghost\"}\n className=\"w-full justify-start gap-2 pr-1\">\n {renderAgentImage(agent)}\n <span className=\"flex-1 text-left\">\n <TruncatedText text={agent.name} length={10} />\n </span>\n </Button>\n </Link>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 flex-shrink-0\"\n onClick={(e) => handleFavouriteToggle(agent.id, e)}\n >\n <Star className=\"h-3 w-3 fill-yellow-400 text-yellow-400\" />\n </Button>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 flex-shrink-0\"\n onClick={(e) => handleInfoClick(agent.id, e)}\n >\n <Info className=\"h-3 w-3\" />\n </Button>\n </div>\n ))}\n {favoriteAgentsList.length > 4 && (\n <Button\n variant=\"ghost\"\n className=\"w-full justify-center text-xs text-muted-foreground h-8\"\n onClick={() => setShowAllFavorites(!showAllFavorites)}\n >\n {showAllFavorites\n ? 'Show less'\n : `Show more (${favoriteAgentsList.length - 4})`\n }\n </Button>\n )}\n </>\n );\n })()}\n </>\n )}\n\n {/* Regular Agents */}\n {agents.loading && <>\n <Skeleton className=\"w-[100%] h-[32px] rounded-lg\" />\n <Skeleton className=\"w-[100%] h-[32px] rounded-lg\" />\n <Skeleton className=\"w-[100%] h-[32px] rounded-lg\" />\n <Skeleton className=\"w-[100%] h-[32px] rounded-lg\" />\n <Skeleton className=\"w-[100%] h-[32px] rounded-lg\" />\n </>}\n {!agents.loading && (() => {\n const regularAgentsList = agents?.data?.agentsPagination?.items\n ?.filter((agent: Agent) => !user?.favourite_agents?.includes(agent.id) || searchQuery) || [];\n const displayedAgents = (searchQuery || showAllAgents) ? regularAgentsList : regularAgentsList.slice(0, 4);\n\n return (\n <>\n {displayedAgents.map((agent: Agent) => (\n <div key={agent.id} className=\"flex items-center gap-1\">\n <Link href={`/chat/${agent.id}`} className=\"flex-1\">\n <Button\n variant={pathname.includes(agent.id) ? \"secondary\" : \"ghost\"}\n className=\"w-full justify-start gap-2 pr-1\">\n {renderAgentImage(agent)}\n <span className=\"flex-1 text-left\">\n <TruncatedText text={agent.name} length={14} />\n </span>\n </Button>\n </Link>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 flex-shrink-0\"\n onClick={(e) => handleFavouriteToggle(agent.id, e)}\n >\n <Star className={`h-3 w-3 ${user?.favourite_agents?.includes(agent.id) ? 'fill-yellow-400 text-yellow-400' : ''}`} />\n </Button>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 flex-shrink-0\"\n onClick={(e) => handleInfoClick(agent.id, e)}\n >\n <Info className=\"h-3 w-3\" />\n </Button>\n </div>\n ))}\n {!searchQuery && regularAgentsList.length > 4 && (\n <Button\n variant=\"ghost\"\n className=\"w-full justify-center text-xs text-muted-foreground h-8\"\n onClick={() => setShowAllAgents(!showAllAgents)}\n >\n {showAllAgents\n ? 'Show less'\n : `Show more (${regularAgentsList.length - 4})`\n }\n </Button>\n )}\n </>\n );\n })()}\n </>\n )}\n </div>\n </div>\n {/*<div className=\"px-3 py-2\">\n <h2 className=\"mb-2 px-4 text-lg font-semibold tracking-tight\">Settings</h2>\n <div className=\"space-y-1\">\n <Link href=\"/settings\">\n <Button variant=\"ghost\" className=\"w-full justify-start gap-2\">\n <Settings className=\"h-4 w-4\" />\n Settings\n </Button>\n </Link>\n </div>\n </div>*/}\n </div>\n {\n params.agent && (\n <ChatSessionsComponent agent={params.agent as string} type={\"chat\"} />\n )\n }\n </div>\n\n {selectedAgentId && (\n <AgentDetailsSheet\n agentId={selectedAgentId}\n open={sheetOpen}\n onOpenChange={(open) => {\n setSheetOpen(open);\n if (!open) {\n setSelectedAgentId(null);\n }\n }}\n />\n )}\n </>\n )\n}\n\n","\"use client\";\n\nimport {AgentNav} from \"@/components/agent-nav\";\nimport * as React from \"react\";\n\nexport default function ChatLayout({ children }: { children: React.ReactNode }) {\n return (\n <div className=\"flex h-full\">\n <div className=\"border-r bg-muted/10\">\n <AgentNav/>\n </div>\n {children}\n </div>\n );\n}\n","export function TruncatedText({ text, length }: { text: string, length: number }) {\n if (text.length > length) {\n return <>{text.slice(0, length)}...</>\n } else {\n return <>{text}</>;\n }\n}","\"use client\";\n\n// Inspired by react-hot-toast library\nimport * as React from \"react\";\n\nimport type { ToastActionElement, ToastProps } from \"@/components/ui/toast\";\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"];\n toast: ToasterToast;\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t,\n ),\n };\n\n case \"DISMISS_TOAST\": {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t,\n ),\n };\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, \"id\">;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: \"UPDATE_TOAST\",\n toast: { ...props, id },\n });\n const dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id });\n\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n };\n}\n\nexport { useToast, toast };\n","import { AgentSession } from \"@/types/models/agent-session\";\nimport { UserWithRole } from \"@/types/models/user\";\n\nexport const checkChatSessionWriteAccess = (session: AgentSession, user: UserWithRole) => {\n const isPrivate = session.rights_mode === 'private';\n const isPublic = session.rights_mode === 'public';\n const byUsers = session.rights_mode === 'users';\n const byRoles = session.rights_mode === 'roles';\n const isAdmin = user.super_admin;\n const isCreator = session.created_by === user.id.toString();\n \n let writeAccess = false;\n if (isPrivate && isCreator) {\n writeAccess = true;\n }\n if (isPublic) {\n writeAccess = true;\n }\n if (byUsers) {\n writeAccess = session.RBAC?.users?.find(u => u.id === user.id)?.rights === 'write';\n }\n if (byRoles) {\n writeAccess = session.RBAC?.roles?.find(r => r.id === user.role?.id)?.rights === 'write';\n }\n if (isAdmin) {\n writeAccess = true;\n }\n return writeAccess;\n}","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronLeft = createLucideIcon('ChevronLeft', [\n ['path', { d: 'm15 18-6-6 6-6', key: '1wnfg3' }],\n]);\n\nexport default ChevronLeft;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name FileText\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/file-text\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst FileText = createLucideIcon('FileText', [\n [\n 'path',\n { d: 'M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z', key: '1nnpy2' },\n ],\n ['polyline', { points: '14 2 14 8 20 8', key: '1ew0cm' }],\n ['line', { x1: '16', x2: '8', y1: '13', y2: '13', key: '14keom' }],\n ['line', { x1: '16', x2: '8', y1: '17', y2: '17', key: '17nazh' }],\n ['line', { x1: '10', x2: '8', y1: '9', y2: '9', key: '1a5vjj' }],\n]);\n\nexport default FileText;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Image\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/image\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Image = createLucideIcon('Image', [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2', key: '1m3agn' }],\n ['circle', { cx: '9', cy: '9', r: '2', key: 'af1f0g' }],\n ['path', { d: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21', key: '1xmnt7' }],\n]);\n\nexport default Image;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Info\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/info\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Info = createLucideIcon('Info', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M12 16v-4', key: '1dtifu' }],\n ['path', { d: 'M12 8h.01', key: 'e9boi3' }],\n]);\n\nexport default Info;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Plus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Plus = createLucideIcon('Plus', [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'M12 5v14', key: 's699le' }],\n]);\n\nexport default Plus;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Search = createLucideIcon('Search', [\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n ['path', { d: 'm21 21-4.3-4.3', key: '1qie3q' }],\n]);\n\nexport default Search;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Shield\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/shield\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Shield = createLucideIcon('Shield', [\n ['path', { d: 'M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10', key: '1irkt0' }],\n]);\n\nexport default Shield;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Star\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/star\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Star = createLucideIcon('Star', [\n [\n 'polygon',\n {\n points:\n '12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2',\n key: '8f66p6',\n },\n ],\n]);\n\nexport default Star;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Text\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/text\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Text = createLucideIcon('Text', [\n ['path', { d: 'M17 6.1H3', key: 'wptmhv' }],\n ['path', { d: 'M21 12.1H3', key: '1j38uz' }],\n ['path', { d: 'M15.1 18H3', key: '1nb16a' }],\n]);\n\nexport default Text;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Video\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/video\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Video = createLucideIcon('Video', [\n ['path', { d: 'm22 8-6 4 6 4V8Z', key: '50v9me' }],\n ['rect', { width: '14', height: '12', x: '2', y: '6', rx: '2', ry: '2', key: '1rqjg6' }],\n]);\n\nexport default Video;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Volume2\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/volume-2\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Volume2 = createLucideIcon('Volume2', [\n ['polygon', { points: '11 5 6 9 2 9 2 15 6 15 11 19 11 5', key: '16drj5' }],\n ['path', { d: 'M15.54 8.46a5 5 0 0 1 0 7.07', key: 'ltjumu' }],\n ['path', { d: 'M19.07 4.93a10 10 0 0 1 0 14.14', key: '1kegas' }],\n]);\n\nexport default Volume2;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Wrench\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/wrench\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Wrench = createLucideIcon('Wrench', [\n [\n 'path',\n {\n d: 'M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z',\n key: 'cbrjhi',\n },\n ],\n]);\n\nexport default Wrench;\n","import * as React from \"rehackt\";\nimport { canUseDOM } from \"../../../utilities/index.js\";\n// use canUseDOM here instead of canUseLayoutEffect because we want to be able\n// to use useLayoutEffect in our jest tests. useLayoutEffect seems to work fine\n// in useSuspenseQuery tests, but to honor the original comment about the\n// warnings for useSyncExternalStore implementation, canUseLayoutEffect is left\n// alone.\nexport var useIsomorphicLayoutEffect = canUseDOM ? React.useLayoutEffect : React.useEffect;\n//# sourceMappingURL=useIsomorphicLayoutEffect.js.map","import { __assign } from \"tslib\";\nimport * as React from \"rehackt\";\nimport { mergeOptions } from \"../../utilities/index.js\";\nimport { equal } from \"@wry/equality\";\nimport { DocumentType, verifyDocumentType } from \"../parser/index.js\";\nimport { ApolloError } from \"../../errors/index.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\nimport { useIsomorphicLayoutEffect } from \"./internal/useIsomorphicLayoutEffect.js\";\n/**\n *\n *\n * > Refer to the [Mutations](https://www.apollographql.com/docs/react/data/mutations/) section for a more in-depth overview of `useMutation`.\n *\n * @example\n * ```jsx\n * import { gql, useMutation } from '@apollo/client';\n *\n * const ADD_TODO = gql`\n * mutation AddTodo($type: String!) {\n * addTodo(type: $type) {\n * id\n * type\n * }\n * }\n * `;\n *\n * function AddTodo() {\n * let input;\n * const [addTodo, { data }] = useMutation(ADD_TODO);\n *\n * return (\n * <div>\n * <form\n * onSubmit={e => {\n * e.preventDefault();\n * addTodo({ variables: { type: input.value } });\n * input.value = '';\n * }}\n * >\n * <input\n * ref={node => {\n * input = node;\n * }}\n * />\n * <button type=\"submit\">Add Todo</button>\n * </form>\n * </div>\n * );\n * }\n * ```\n * @since 3.0.0\n * @param mutation - A GraphQL mutation document parsed into an AST by `gql`.\n * @param options - Options to control how the mutation is executed.\n * @returns A tuple in the form of `[mutate, result]`\n */\nexport function useMutation(mutation, options) {\n var client = useApolloClient(options === null || options === void 0 ? void 0 : options.client);\n verifyDocumentType(mutation, DocumentType.Mutation);\n var _a = React.useState({\n called: false,\n loading: false,\n client: client,\n }), result = _a[0], setResult = _a[1];\n var ref = React.useRef({\n result: result,\n mutationId: 0,\n isMounted: true,\n client: client,\n mutation: mutation,\n options: options,\n });\n useIsomorphicLayoutEffect(function () {\n Object.assign(ref.current, { client: client, options: options, mutation: mutation });\n });\n var execute = React.useCallback(function (executeOptions) {\n if (executeOptions === void 0) { executeOptions = {}; }\n var _a = ref.current, options = _a.options, mutation = _a.mutation;\n var baseOptions = __assign(__assign({}, options), { mutation: mutation });\n var client = executeOptions.client || ref.current.client;\n if (!ref.current.result.loading &&\n !baseOptions.ignoreResults &&\n ref.current.isMounted) {\n setResult((ref.current.result = {\n loading: true,\n error: void 0,\n data: void 0,\n called: true,\n client: client,\n }));\n }\n var mutationId = ++ref.current.mutationId;\n var clientOptions = mergeOptions(baseOptions, executeOptions);\n return client\n .mutate(clientOptions)\n .then(function (response) {\n var _a, _b;\n var data = response.data, errors = response.errors;\n var error = errors && errors.length > 0 ?\n new ApolloError({ graphQLErrors: errors })\n : void 0;\n var onError = executeOptions.onError || ((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError);\n if (error && onError) {\n onError(error, clientOptions);\n }\n if (mutationId === ref.current.mutationId &&\n !clientOptions.ignoreResults) {\n var result_1 = {\n called: true,\n loading: false,\n data: data,\n error: error,\n client: client,\n };\n if (ref.current.isMounted && !equal(ref.current.result, result_1)) {\n setResult((ref.current.result = result_1));\n }\n }\n var onCompleted = executeOptions.onCompleted || ((_b = ref.current.options) === null || _b === void 0 ? void 0 : _b.onCompleted);\n if (!error) {\n onCompleted === null || onCompleted === void 0 ? void 0 : onCompleted(response.data, clientOptions);\n }\n return response;\n }, function (error) {\n var _a;\n if (mutationId === ref.current.mutationId &&\n ref.current.isMounted) {\n var result_2 = {\n loading: false,\n error: error,\n data: void 0,\n called: true,\n client: client,\n };\n if (!equal(ref.current.result, result_2)) {\n setResult((ref.current.result = result_2));\n }\n }\n var onError = executeOptions.onError || ((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError);\n if (onError) {\n onError(error, clientOptions);\n // TODO(brian): why are we returning this here???\n return { data: void 0, errors: error };\n }\n throw error;\n });\n }, []);\n var reset = React.useCallback(function () {\n if (ref.current.isMounted) {\n var result_3 = {\n called: false,\n loading: false,\n client: ref.current.client,\n };\n Object.assign(ref.current, { mutationId: 0, result: result_3 });\n setResult(result_3);\n }\n }, []);\n React.useEffect(function () {\n var current = ref.current;\n // eslint-disable-next-line react-compiler/react-compiler\n current.isMounted = true;\n return function () {\n current.isMounted = false;\n };\n }, []);\n return [execute, __assign({ reset: reset }, result)];\n}\n//# sourceMappingURL=useMutation.js.map"],"names":["Promise","resolve","then","__webpack_require__","bind","ChatSessionsComponent","param","sessionsQuery","agent","type","pathname","usePathname","toast","useToast","user","useContext","UserContext","sessionName","setSessionName","useState","useIsMobile","router","useRouter","search","setSearch","searchString","renameDialogOpen","setRenameDialogOpen","renameSessionId","setRenameSessionId","newSessionName","setNewSessionName","useQuery","GET_AGENT_SESSIONS","returnPartialData","fetchPolicy","nextFetchPolicy","variables","page","limit","filters","eq","removeSession","removeSessionResult","useMutation","REMOVE_AGENT_SESSION_BY_ID","refetchQueries","createAgentSession","createAgentSessionResult","CREATE_AGENT_SESSION","updateSessionTitle","updateSessionTitleResult","UPDATE_AGENT_SESSION_TITLE","useEffect","length","title","contains","refetch","handleCreateSession","newSession","id","trim","createdAt","Date","toISOString","updatedAt","errors","console","error","data","agent_sessionsCreateOne","item","push","concat","handleRenameSession","result","description","variant","jsx_runtime","jsxs","div","className","x-chunk","jsx","h2","form","Search","Input","onKeyUp","e","currentTarget","value","placeholder","autoFocus","onChange","target","onKeyDown","key","Button","tabIndex","disabled","loading","onClick","PlusIcon","Skeleton","agent_sessionsPagination","items","p","map","writeAccess","checkChatSessionWriteAccess","Link","href","cn","includes","substring","formatDistanceToNow","addSuffix","DropdownMenu","modal","DropdownMenuTrigger","asChild","DotsHorizontalIcon","span","DropdownMenuContent","align","DropdownMenuItem","preventDefault","stopPropagation","small","name","Dialog","open","onOpenChange","DialogContent","DialogHeader","DialogTitle","DialogDescription","DialogFooter","AgentNav","agents","searchQuery","setSearchQuery","React","selectedAgentId","setSelectedAgentId","sheetOpen","setSheetOpen","showAllFavorites","setShowAllFavorites","showAllAgents","setShowAllAgents","params","useParams","init","setUser","favouriteAgents","GET_AGENTS_BY_IDS","ids","favourite_agents","skip","GET_AGENTS","super_admin","active","updateUser","UPDATE_USER_BY_ID","onCompleted","usersUpdateOneById","handleInfoClick","agentId","event","handleFavouriteToggle","newFavourites","log","currentFavourites","filter","selectedAgent","agentsPagination","find","renderAgentImage","image","img","src","alt","charAt","toUpperCase","Fragment","size","ChevronLeft","TruncatedText","text","Star","Info","favoriteAgentsList","agentByIds","displayedFavorites","slice","regularAgentsList","displayedAgents","AgentDetailsSheet","ChatLayout","children","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","count","toastTimeouts","Map","addToRemoveQueue","has","toastId","timeout","setTimeout","delete","dispatch","set","reducer","state","action","toasts","t","forEach","undefined","listeners","memoryState","listener","props","Number","MAX_SAFE_INTEGER","toString","dismiss","update","setState","index","indexOf","splice","session","isPrivate","rights_mode","isPublic","byUsers","byRoles","isAdmin","isCreator","created_by","RBAC","users","u","rights","roles","r","role","createLucideIcon","d","FileText","points","x1","x2","y1","y2","Image","width","height","x","y","rx","ry","cx","cy","Plus","Shield","Text","Video","Volume2","Wrench","useIsomorphicLayoutEffect","canUse","Nq","rehackt","useLayoutEffect","mutation","options","client","useApolloClient","parser","Vp","n_","Mutation","_a","called","setResult","ref","useRef","mutationId","isMounted","Object","assign","current","execute","useCallback","executeOptions","baseOptions","tslib_es6","pi","ignoreResults","clientOptions","mergeOptions","J","mutate","response","_b","client_errors","cA","graphQLErrors","onError","result_1","lib","D","result_2","reset","result_3"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7011],{75667:function(e,t,r){Promise.resolve().then(r.bind(r,18551))},18551:function(e,t,r){"use strict";r.d(t,{ChatEmptyState:function(){return j}});var n=r(57437),a=r(99376),s=r(82222),i=r(82023),l=r(31810),o=r(42208),c=r(12194),d=r(12199),u=r(7211),m=r(27689),f=r(84544),x=r(35974),v=r(62869),p=r(66070),h=r(93022),g=r(13832),N=r(2265);function j(){var e;let t=(0,a.useRouter)(),{user:r}=(0,N.useContext)(g.S),[j]=(0,d.D)(m.fB),{data:b,loading:w}=(0,c.Sh)({page:1,limit:6,sort:{field:"favorite_count",direction:"DESC"}}),y=(null==b?void 0:null===(e=b.prompt_libraryPagination)||void 0===e?void 0:e.items)||[],C=Array.from(new Set(y.flatMap(e=>e.assigned_agents||[]))),{data:_,loading:E}=(0,u.aM)(m.W9,{variables:{ids:C},skip:0===C.length}),Z=new Map(((null==_?void 0:_.agentByIds)||[]).map(e=>[e.id,e])),M=async(e,n)=>{var a,s,i;let l=await j({variables:{title:"New session",user:r.id,agent:e}});console.log("result",l);let o=null==l?void 0:null===(i=l.data)||void 0===i?void 0:null===(s=i.agent_sessionsCreateOne)||void 0===s?void 0:null===(a=s.item)||void 0===a?void 0:a.id;t.push("/chat/".concat(e,"/").concat(o,"?promptId=").concat(n))};return w?(0,n.jsx)("div",{className:"m-auto max-w-4xl w-full px-4",children:(0,n.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,n.jsxs)("div",{className:"flex flex-col items-center gap-4 mb-8",children:[(0,n.jsx)(s.Z,{className:"h-20 w-20 text-muted-foreground"}),(0,n.jsx)("h2",{className:"text-2xl font-semibold text-center",children:"Select an agent"}),(0,n.jsx)("p",{className:"text-muted-foreground text-center",children:"Choose a prompt template below to get started"})]}),(0,n.jsx)("div",{className:"grid gap-4 md:grid-cols-2",children:[1,2,3,4].map(e=>(0,n.jsx)(h.O,{className:"h-48 w-full"},e))})]})}):y.length?(0,n.jsx)("div",{className:"m-auto max-w-4xl w-full px-4 py-8",children:(0,n.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,n.jsxs)("div",{className:"flex flex-col items-center gap-4 mb-4",children:[(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsx)(s.Z,{className:"h-16 w-16 text-muted-foreground"}),(0,n.jsx)(i.Z,{className:"h-6 w-6 text-primary absolute -top-1 -right-1"})]}),(0,n.jsxs)("div",{className:"text-center",children:[(0,n.jsx)("h2",{className:"text-2xl font-semibold mb-2",children:"Get started with a prompt"}),(0,n.jsx)("p",{className:"text-muted-foreground",children:"Select a prompt template and choose which agent to chat with"})]})]}),(0,n.jsx)("div",{className:"grid gap-4 md:grid-cols-2",children:y.map(e=>{var t;let r=(0,f.H)(e.content),a=(e.assigned_agents||[]).map(e=>Z.get(e)).filter(e=>void 0!==e);return(0,n.jsxs)(p.Zb,{className:"flex flex-col",children:[(0,n.jsxs)(p.Ol,{children:[(0,n.jsxs)("div",{className:"flex items-start justify-between gap-2 mb-2",children:[(0,n.jsx)(p.ll,{className:"text-lg",children:e.name}),(0,n.jsxs)("div",{className:"flex items-center gap-3 text-xs text-muted-foreground flex-shrink-0",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)(l.Z,{className:"h-3 w-3"}),(0,n.jsx)("span",{children:e.favorite_count||0})]}),(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)(o.Z,{className:"h-3 w-3"}),(0,n.jsx)("span",{children:e.usage_count||0})]})]})]}),e.description&&(0,n.jsx)(p.SZ,{className:"line-clamp-2",children:e.description})]}),(0,n.jsxs)(p.aY,{className:"flex-1 flex flex-col gap-4",children:[(0,n.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[r.length>0&&(0,n.jsxs)(x.C,{variant:"outline",className:"text-xs",children:[r.length," variable",1!==r.length?"s":""]}),null===(t=e.tags)||void 0===t?void 0:t.slice(0,3).map(e=>(0,n.jsx)(x.C,{variant:"secondary",className:"text-xs",children:e},e)),e.tags&&e.tags.length>3&&(0,n.jsxs)(x.C,{variant:"secondary",className:"text-xs",children:["+",e.tags.length-3]})]}),a.length>0?(0,n.jsxs)("div",{className:"mt-auto",children:[(0,n.jsx)("p",{className:"text-xs text-muted-foreground mb-2",children:"Start chat with:"}),(0,n.jsx)("div",{className:"flex flex-wrap gap-2",children:a.map(t=>(0,n.jsxs)(v.z,{variant:"default",size:"sm",onClick:()=>M(t.id,e.id),className:"flex items-center gap-2",children:[t.image&&(0,n.jsx)("img",{src:t.image,alt:t.name,className:"h-4 w-4 rounded-full object-cover"}),(0,n.jsx)("span",{children:t.name})]},t.id))})]}):(0,n.jsx)("div",{className:"mt-auto",children:(0,n.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"No agents assigned to this prompt"})})]})]},e.id)})}),(0,n.jsx)("div",{className:"text-center text-sm text-muted-foreground mt-4",children:"You can also select an agent from the sidebar to start chatting"})]})}):(0,n.jsx)("div",{className:"m-auto",children:(0,n.jsxs)("div",{className:"flex flex-col",children:[(0,n.jsx)("div",{className:"mx-auto",children:(0,n.jsx)(s.Z,{className:"h-20 w-20"})}),(0,n.jsx)("h2",{className:"text-center",children:"Select an agent."}),(0,n.jsx)("small",{className:"text-center",children:"Bleep bleep bloop..."})]})})}},35974:function(e,t,r){"use strict";r.d(t,{C:function(){return l}});var n=r(57437),a=r(90535);r(2265);var s=r(94508);let i=(0,a.j)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function l(e){let{className:t,variant:r,...a}=e;return(0,n.jsx)("div",{className:(0,s.cn)(i({variant:r}),t),...a})}},66070:function(e,t,r){"use strict";r.d(t,{Ol:function(){return l},SZ:function(){return c},Zb:function(){return i},aY:function(){return d},eW:function(){return u},ll:function(){return o}});var n=r(57437),a=r(2265),s=r(94508);let i=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,n.jsx)("div",{ref:t,className:(0,s.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",r),...a})});i.displayName="Card";let l=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,n.jsx)("div",{ref:t,className:(0,s.cn)("flex flex-col space-y-1.5 p-6",r),...a})});l.displayName="CardHeader";let o=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,n.jsx)("h3",{ref:t,className:(0,s.cn)("text-2xl font-semibold leading-none tracking-tight",r),...a})});o.displayName="CardTitle";let c=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,n.jsx)("p",{ref:t,className:(0,s.cn)("text-sm text-muted-foreground",r),...a})});c.displayName="CardDescription";let d=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,n.jsx)("div",{ref:t,className:(0,s.cn)("p-6 pt-0",r),...a})});d.displayName="CardContent";let u=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,n.jsx)("div",{ref:t,className:(0,s.cn)("flex items-center p-6 pt-0",r),...a})});u.displayName="CardFooter"},12194:function(e,t,r){"use strict";r.d(t,{EE:function(){return l},Lq:function(){return f},Sh:function(){return i},VR:function(){return d},er:function(){return o},iJ:function(){return c}});var n=r(7211),a=r(12199),s=r(27689);let i=e=>{var t,r,a,i;return(0,n.aM)(s.xx,{variables:{page:null!==(t=null==e?void 0:e.page)&&void 0!==t?t:1,limit:null!==(r=null==e?void 0:e.limit)&&void 0!==r?r:20,filters:null!==(a=null==e?void 0:e.filters)&&void 0!==a?a:[],sort:null!==(i=null==e?void 0:e.sort)&&void 0!==i?i:{field:"updatedAt",direction:"DESC"}}})},l=()=>(0,a.D)(s.Iv,{refetchQueries:[{query:s.xx,variables:{page:1,limit:20}}]}),o=()=>(0,a.D)(s.jA),c=()=>(0,a.D)(s.Ll,{refetchQueries:[{query:s.xx,variables:{page:1,limit:20}}]}),d=()=>(0,a.D)(s.re),u=()=>(0,a.D)(s.Nl),m=()=>(0,a.D)(s.m8),f=()=>{let[e]=u(),[t]=m(),[r]=(0,a.D)(s.UK);return{toggleFavorite:async(n,a,s,i,l)=>{s&&l?(await t({variables:{id:l}}),await r({variables:{id:n,favorite_count:Math.max(0,i-1)}})):(await e({variables:{user_id:a,prompt_id:n}}),await r({variables:{id:n,favorite_count:i+1}}))}}}},84544:function(e,t,r){"use strict";function n(e){if(!e)return[];let t=e.matchAll(/\{\{([a-zA-Z0-9_]+)\}\}/g),r=new Set;for(let e of Array.from(t))r.add(e[1]);return Array.from(r).sort()}r.d(t,{H:function(){return n}})},42208:function(e,t,r){"use strict";r.d(t,{Z:function(){return n}});let n=(0,r(39763).Z)("Eye",[["path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z",key:"rwhkz3"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},31810:function(e,t,r){"use strict";r.d(t,{Z:function(){return n}});let n=(0,r(39763).Z)("ThumbsUp",[["path",{d:"M7 10v12",key:"1qc93n"}],["path",{d:"M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2h0a3.13 3.13 0 0 1 3 3.88Z",key:"y3tblf"}]])},12199:function(e,t,r){"use strict";r.d(t,{D:function(){return u}});var n=r(5853),a=r(79285),s=r(49466),i=r(36628),l=r(59058),o=r(77828),c=r(63251),d=r(59394).Nq?a.useLayoutEffect:a.useEffect;function u(e,t){var r=(0,c.x)(null==t?void 0:t.client);(0,l.Vp)(e,l.n_.Mutation);var u=a.useState({called:!1,loading:!1,client:r}),m=u[0],f=u[1],x=a.useRef({result:m,mutationId:0,isMounted:!0,client:r,mutation:e,options:t});d(function(){Object.assign(x.current,{client:r,options:t,mutation:e})});var v=a.useCallback(function(e){void 0===e&&(e={});var t=x.current,r=t.options,a=t.mutation,l=(0,n.pi)((0,n.pi)({},r),{mutation:a}),c=e.client||x.current.client;x.current.result.loading||l.ignoreResults||!x.current.isMounted||f(x.current.result={loading:!0,error:void 0,data:void 0,called:!0,client:c});var d=++x.current.mutationId,u=(0,s.J)(l,e);return c.mutate(u).then(function(t){var r,n,a=t.data,s=t.errors,l=s&&s.length>0?new o.cA({graphQLErrors:s}):void 0,m=e.onError||(null===(r=x.current.options)||void 0===r?void 0:r.onError);if(l&&m&&m(l,u),d===x.current.mutationId&&!u.ignoreResults){var v={called:!0,loading:!1,data:a,error:l,client:c};x.current.isMounted&&!(0,i.D)(x.current.result,v)&&f(x.current.result=v)}var p=e.onCompleted||(null===(n=x.current.options)||void 0===n?void 0:n.onCompleted);return l||null==p||p(t.data,u),t},function(t){if(d===x.current.mutationId&&x.current.isMounted){var r,n={loading:!1,error:t,data:void 0,called:!0,client:c};(0,i.D)(x.current.result,n)||f(x.current.result=n)}var a=e.onError||(null===(r=x.current.options)||void 0===r?void 0:r.onError);if(a)return a(t,u),{data:void 0,errors:t};throw t})},[]),p=a.useCallback(function(){if(x.current.isMounted){var e={called:!1,loading:!1,client:x.current.client};Object.assign(x.current,{mutationId:0,result:e}),f(e)}},[]);return a.useEffect(function(){var e=x.current;return e.isMounted=!0,function(){e.isMounted=!1}},[]),[v,(0,n.pi)({reset:p},m)]}}},function(e){e.O(0,[9851,7629,7093,6148,847,1942,7648,7823,8068,5799,605,4567,1206,5338,6373,3832,2971,2117,1744],function(){return e(e.s=75667)}),_N_E=e.O()}]);
|
|
2
|
-
//# sourceMappingURL=page-
|
|
2
|
+
//# sourceMappingURL=page-8b00a98d285829b1.js.map
|