@rodrigocoliveira/agno-react 1.3.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +32 -46
  2. package/dist/index.d.ts +6 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1738 -87
  5. package/dist/index.js.map +31 -3
  6. package/dist/index.mjs +1759 -87
  7. package/dist/index.mjs.map +31 -3
  8. package/dist/ui/components/conversation.d.ts +5 -2
  9. package/dist/ui/components/conversation.d.ts.map +1 -1
  10. package/dist/ui/composed/AgnoMessageItem.d.ts +12 -24
  11. package/dist/ui/composed/AgnoMessageItem.d.ts.map +1 -1
  12. package/dist/ui/composed/agno-chat/agno-chat.d.ts +23 -3
  13. package/dist/ui/composed/agno-chat/agno-chat.d.ts.map +1 -1
  14. package/dist/ui/composed/agno-chat/context.d.ts +4 -3
  15. package/dist/ui/composed/agno-chat/context.d.ts.map +1 -1
  16. package/dist/ui/composed/agno-chat/messages.d.ts +33 -16
  17. package/dist/ui/composed/agno-chat/messages.d.ts.map +1 -1
  18. package/dist/ui/composed/agno-chat/render-tool.d.ts +11 -0
  19. package/dist/ui/composed/agno-chat/render-tool.d.ts.map +1 -0
  20. package/dist/ui/composed/agno-chat/tool-building-blocks.d.ts +11 -0
  21. package/dist/ui/composed/agno-chat/tool-building-blocks.d.ts.map +1 -0
  22. package/dist/ui/composed/agno-message/content.d.ts +2 -0
  23. package/dist/ui/composed/agno-message/content.d.ts.map +1 -0
  24. package/dist/ui/composed/agno-message/context.d.ts +21 -0
  25. package/dist/ui/composed/agno-message/context.d.ts.map +1 -0
  26. package/dist/ui/composed/agno-message/footer.d.ts +6 -0
  27. package/dist/ui/composed/agno-message/footer.d.ts.map +1 -0
  28. package/dist/ui/composed/agno-message/index.d.ts +13 -0
  29. package/dist/ui/composed/agno-message/index.d.ts.map +1 -0
  30. package/dist/ui/composed/agno-message/media.d.ts +2 -0
  31. package/dist/ui/composed/agno-message/media.d.ts.map +1 -0
  32. package/dist/ui/composed/agno-message/message.d.ts +41 -0
  33. package/dist/ui/composed/agno-message/message.d.ts.map +1 -0
  34. package/dist/ui/composed/agno-message/reasoning.d.ts +2 -0
  35. package/dist/ui/composed/agno-message/reasoning.d.ts.map +1 -0
  36. package/dist/ui/composed/agno-message/references.d.ts +2 -0
  37. package/dist/ui/composed/agno-message/references.d.ts.map +1 -0
  38. package/dist/ui/composed/agno-message/tools.d.ts +7 -0
  39. package/dist/ui/composed/agno-message/tools.d.ts.map +1 -0
  40. package/dist/ui/composed/index.d.ts +6 -0
  41. package/dist/ui/composed/index.d.ts.map +1 -1
  42. package/dist/ui/index.d.ts +7 -1
  43. package/dist/ui/index.d.ts.map +1 -1
  44. package/dist/ui/primitives/badge.d.ts +1 -1
  45. package/dist/ui/primitives/button.d.ts +1 -1
  46. package/dist/ui/primitives/command.d.ts +1 -1
  47. package/dist/ui/types.d.ts +26 -0
  48. package/dist/ui/types.d.ts.map +1 -1
  49. package/dist/ui.js +1176 -647
  50. package/dist/ui.js.map +23 -8
  51. package/dist/ui.mjs +1170 -650
  52. package/dist/ui.mjs.map +23 -8
  53. package/package.json +3 -3
package/dist/ui.mjs.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/ui/lib/cn.ts", "../src/ui/lib/format-timestamp.ts", "../src/ui/lib/file-utils.ts", "../src/ui/primitives/button.tsx", "../src/ui/primitives/badge.tsx", "../src/ui/primitives/avatar.tsx", "../src/ui/primitives/input-group.tsx", "../src/ui/primitives/collapsible.tsx", "../src/ui/primitives/tooltip.tsx", "../src/ui/primitives/accordion.tsx", "../src/ui/primitives/dropdown-menu.tsx", "../src/ui/primitives/hover-card.tsx", "../src/ui/primitives/select.tsx", "../src/ui/primitives/command.tsx", "../src/ui/primitives/dialog.tsx", "../src/ui/components/message.tsx", "../src/ui/components/conversation.tsx", "../src/ui/components/response.tsx", "../src/ui/components/tool.tsx", "../src/ui/components/code-block.tsx", "../src/ui/components/artifact.tsx", "../src/ui/components/streaming-indicator.tsx", "../src/ui/components/audio-recorder.tsx", "../src/ui/components/smart-timestamp.tsx", "../src/ui/components/file-preview-card.tsx", "../src/ui/components/file-preview-modal.tsx", "../src/ui/components/image-lightbox.tsx", "../src/ui/components/prompt-input/context.ts", "../src/ui/components/prompt-input/provider.tsx", "../src/ui/components/prompt-input/prompt-input.tsx", "../src/ui/components/prompt-input/textarea.tsx", "../src/ui/components/prompt-input/attachments.tsx", "../src/ui/components/prompt-input/footer.tsx", "../src/ui/components/prompt-input/buttons.tsx", "../src/ui/components/prompt-input/drop-zone.tsx", "../src/ui/components/prompt-input/speech.tsx", "../src/ui/components/prompt-input/model-select.tsx", "../src/ui/components/prompt-input/tabs.tsx", "../src/ui/components/prompt-input/command.tsx", "../src/ui/composed/AgnoMessageItem.tsx", "../src/ui/composed/AgnoChatInput.tsx", "../src/ui/composed/agno-chat/agno-chat.tsx", "../src/ui/composed/agno-chat/context.ts", "../src/ui/composed/agno-chat/messages.tsx", "../src/ui/composed/agno-chat/suggested-prompts.tsx", "../src/ui/composed/agno-chat/empty-state.tsx", "../src/ui/composed/agno-chat/error-bar.tsx", "../src/ui/composed/agno-chat/input.tsx", "../src/ui/composed/agno-chat/index.ts"],
3
+ "sources": ["../src/ui/lib/cn.ts", "../src/ui/lib/format-timestamp.ts", "../src/ui/lib/file-utils.ts", "../src/ui/primitives/button.tsx", "../src/ui/primitives/badge.tsx", "../src/ui/primitives/avatar.tsx", "../src/ui/primitives/input-group.tsx", "../src/ui/primitives/collapsible.tsx", "../src/ui/primitives/tooltip.tsx", "../src/ui/primitives/accordion.tsx", "../src/ui/primitives/dropdown-menu.tsx", "../src/ui/primitives/hover-card.tsx", "../src/ui/primitives/select.tsx", "../src/ui/primitives/command.tsx", "../src/ui/primitives/dialog.tsx", "../src/ui/components/message.tsx", "../src/ui/components/conversation.tsx", "../src/ui/components/response.tsx", "../src/ui/components/tool.tsx", "../src/ui/components/code-block.tsx", "../src/ui/components/artifact.tsx", "../src/ui/components/streaming-indicator.tsx", "../src/ui/components/audio-recorder.tsx", "../src/ui/components/smart-timestamp.tsx", "../src/ui/components/file-preview-card.tsx", "../src/ui/components/file-preview-modal.tsx", "../src/ui/components/image-lightbox.tsx", "../src/ui/components/prompt-input/context.ts", "../src/ui/components/prompt-input/provider.tsx", "../src/ui/components/prompt-input/prompt-input.tsx", "../src/ui/components/prompt-input/textarea.tsx", "../src/ui/components/prompt-input/attachments.tsx", "../src/ui/components/prompt-input/footer.tsx", "../src/ui/components/prompt-input/buttons.tsx", "../src/ui/components/prompt-input/drop-zone.tsx", "../src/ui/components/prompt-input/speech.tsx", "../src/ui/components/prompt-input/model-select.tsx", "../src/ui/components/prompt-input/tabs.tsx", "../src/ui/components/prompt-input/command.tsx", "../src/ui/composed/agno-message/message.tsx", "../src/ui/composed/agno-message/context.ts", "../src/ui/composed/agno-message/reasoning.tsx", "../src/ui/composed/agno-message/media.tsx", "../src/ui/composed/agno-chat/context.ts", "../src/components/GenerativeUIRenderer.tsx", "../src/utils/component-registry.ts", "../src/hooks/useAgnoToolExecution.ts", "../src/context/AgnoContext.tsx", "../src/context/ToolHandlerContext.tsx", "../src/ui/composed/agno-chat/tool-building-blocks.tsx", "../src/ui/composed/agno-message/tools.tsx", "../src/ui/composed/agno-message/content.tsx", "../src/ui/composed/agno-message/references.tsx", "../src/ui/composed/agno-message/footer.tsx", "../src/ui/composed/AgnoMessageItem.tsx", "../src/ui/composed/AgnoChatInput.tsx", "../src/ui/composed/agno-chat/render-tool.ts", "../src/ui/composed/agno-chat/agno-chat.tsx", "../src/ui/composed/agno-chat/messages.tsx", "../src/ui/composed/agno-chat/suggested-prompts.tsx", "../src/ui/composed/agno-chat/empty-state.tsx", "../src/ui/composed/agno-chat/error-bar.tsx", "../src/ui/composed/agno-chat/input.tsx", "../src/ui/composed/agno-chat/index.ts"],
4
4
  "sourcesContent": [
5
5
  "import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n",
6
6
  "/**\n * Smart timestamp formatting utilities using Intl.DateTimeFormat (zero deps).\n */\n\n/**\n * Formats a date with smart relative context:\n * - Today: \"09:06 AM\"\n * - This year: \"Feb 19\"\n * - Other year: \"Feb 18, 2025\"\n */\nexport function formatSmartTimestamp(date: Date): string {\n const now = new Date();\n const isToday =\n date.getFullYear() === now.getFullYear() &&\n date.getMonth() === now.getMonth() &&\n date.getDate() === now.getDate();\n\n if (isToday) {\n return new Intl.DateTimeFormat(undefined, {\n hour: 'numeric',\n minute: '2-digit',\n hour12: true,\n }).format(date);\n }\n\n const isSameYear = date.getFullYear() === now.getFullYear();\n\n if (isSameYear) {\n return new Intl.DateTimeFormat(undefined, {\n month: 'short',\n day: 'numeric',\n }).format(date);\n }\n\n return new Intl.DateTimeFormat(undefined, {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n }).format(date);\n}\n\n/**\n * Formats a full timestamp for tooltip display.\n * Always shows: \"Feb 19, 2026, 09:50 AM\"\n */\nexport function formatFullTimestamp(date: Date): string {\n return new Intl.DateTimeFormat(undefined, {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n hour12: true,\n }).format(date);\n}\n",
@@ -18,7 +18,7 @@
18
18
  "import * as React from 'react';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { Search } from 'lucide-react';\nimport { cn } from '../lib/cn';\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn('flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground', className)}\n {...props}\n />\n));\nCommand.displayName = CommandPrimitive.displayName;\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n 'flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n </div>\n));\nCommandInput.displayName = CommandPrimitive.Input.displayName;\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn('max-h-[300px] overflow-y-auto overflow-x-hidden', className)}\n {...props}\n />\n));\nCommandList.displayName = CommandPrimitive.List.displayName;\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => <CommandPrimitive.Empty ref={ref} className=\"py-6 text-center text-sm\" {...props} />);\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n 'overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground',\n className,\n )}\n {...props}\n />\n));\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator ref={ref} className={cn('-mx-1 h-px bg-border', className)} {...props} />\n));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n className,\n )}\n {...props}\n />\n));\nCommandItem.displayName = CommandPrimitive.Item.displayName;\n\nconst CommandShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return <span className={cn('ml-auto text-xs tracking-widest text-muted-foreground', className)} {...props} />;\n};\nCommandShortcut.displayName = 'CommandShortcut';\n\nexport { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator };\n",
19
19
  "import * as React from 'react';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { X } from 'lucide-react';\nimport { cn } from '../lib/cn';\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst dialogContentVariants = cva(\n 'fixed left-[50%] top-[50%] z-50 grid translate-x-[-50%] translate-y-[-50%] gap-4 border shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg',\n {\n variants: {\n variant: {\n default: 'w-full max-w-lg bg-background p-6',\n lightbox: 'max-w-[90vw] max-h-[90vh] bg-background/95 backdrop-blur-sm p-2',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nexport interface DialogContentProps\n extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>,\n VariantProps<typeof dialogContentVariants> {}\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n DialogContentProps\n>(({ className, variant, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(dialogContentVariants({ variant }), className)}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)} {...props} />\n);\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n);\nDialogFooter.displayName = 'DialogFooter';\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n",
20
20
  "import { Avatar, AvatarFallback, AvatarImage } from '../primitives/avatar';\nimport { cn } from '../lib/cn';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport type { ComponentProps, HTMLAttributes } from 'react';\n\nexport type MessageProps = HTMLAttributes<HTMLDivElement> & {\n from: 'user' | 'assistant' | 'system' | 'tool';\n};\n\nexport const Message = ({ className, from, ...props }: MessageProps) => (\n <div\n className={cn(\n 'group flex w-full items-end justify-end gap-2 py-4',\n from === 'user' ? 'is-user' : 'is-assistant flex-row-reverse justify-end',\n className,\n )}\n {...props}\n />\n);\n\nconst messageContentVariants = cva(\n 'flex flex-col gap-2 overflow-hidden rounded-lg text-sm',\n {\n variants: {\n variant: {\n contained: [\n 'max-w-[80%] px-4 py-3',\n 'group-[.is-user]:bg-primary group-[.is-user]:text-primary-foreground',\n 'group-[.is-assistant]:bg-secondary group-[.is-assistant]:text-foreground',\n ],\n flat: [\n 'group-[.is-user]:max-w-[80%] group-[.is-user]:bg-secondary group-[.is-user]:px-4 group-[.is-user]:py-3 group-[.is-user]:text-foreground',\n 'group-[.is-assistant]:text-foreground',\n ],\n },\n },\n defaultVariants: {\n variant: 'contained',\n },\n },\n);\n\nexport type MessageContentProps = HTMLAttributes<HTMLDivElement> & VariantProps<typeof messageContentVariants>;\n\nexport const MessageContent = ({ children, className, variant, ...props }: MessageContentProps) => (\n <div className={cn(messageContentVariants({ variant, className }))} {...props}>\n {children}\n </div>\n);\n\nexport type MessageAvatarProps = ComponentProps<typeof Avatar> & {\n src: string;\n name?: string;\n};\n\nexport const MessageAvatar = ({ src, name, className, ...props }: MessageAvatarProps) => (\n <Avatar className={cn('size-8 ring-1 ring-border', className)} {...props}>\n <AvatarImage alt=\"\" className=\"mt-0 mb-0\" src={src} />\n <AvatarFallback>{name?.slice(0, 2) || 'ME'}</AvatarFallback>\n </Avatar>\n);\n",
21
- "import { Button } from '../primitives/button';\nimport { cn } from '../lib/cn';\nimport { ArrowDownIcon } from 'lucide-react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport { useCallback } from 'react';\nimport { StickToBottom, useStickToBottomContext } from 'use-stick-to-bottom';\n\nexport type ConversationProps = ComponentProps<typeof StickToBottom>;\n\nexport const Conversation = ({ className, ...props }: ConversationProps) => (\n <StickToBottom\n className={cn('relative flex-1 overflow-y-auto', className)}\n initial=\"smooth\"\n role=\"log\"\n {...props}\n />\n);\n\nexport type ConversationContentProps = ComponentProps<typeof StickToBottom.Content>;\n\nexport const ConversationContent = ({ className, ...props }: ConversationContentProps) => (\n <StickToBottom.Content className={cn('p-4', className)} {...props} />\n);\n\nexport type ConversationEmptyStateProps = ComponentProps<'div'> & {\n title?: string;\n description?: string;\n icon?: ReactNode;\n};\n\nexport const ConversationEmptyState = ({\n className,\n title = 'No messages yet',\n description = 'Start a conversation to see messages here',\n icon,\n children,\n ...props\n}: ConversationEmptyStateProps) => (\n <div\n className={cn('flex size-full flex-col items-center justify-center gap-3 p-8 text-center', className)}\n {...props}\n >\n {children ?? (\n <>\n {icon && <div className=\"text-muted-foreground\">{icon}</div>}\n <div className=\"space-y-1\">\n <h3 className=\"font-medium text-sm\">{title}</h3>\n {description && <p className=\"text-muted-foreground text-sm\">{description}</p>}\n </div>\n </>\n )}\n </div>\n);\n\nexport { useStickToBottomContext } from 'use-stick-to-bottom';\n\nexport type ConversationScrollButtonProps = ComponentProps<typeof Button>;\n\nexport const ConversationScrollButton = ({ className, ...props }: ConversationScrollButtonProps) => {\n const { isAtBottom, scrollToBottom } = useStickToBottomContext();\n\n const handleScrollToBottom = useCallback(() => {\n scrollToBottom();\n }, [scrollToBottom]);\n\n return (\n !isAtBottom && (\n <Button\n className={cn('absolute bottom-4 left-[50%] translate-x-[-50%] rounded-full', className)}\n onClick={handleScrollToBottom}\n size=\"icon\"\n type=\"button\"\n variant=\"outline\"\n {...props}\n >\n <ArrowDownIcon className=\"size-4\" />\n </Button>\n )\n );\n};\n",
21
+ "import { Button } from '../primitives/button';\nimport { cn } from '../lib/cn';\nimport { ArrowDownIcon } from 'lucide-react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport { useCallback } from 'react';\nimport { StickToBottom, useStickToBottomContext } from 'use-stick-to-bottom';\nimport type { ScrollBehaviorConfig } from '../types';\n\nexport type ConversationProps = ComponentProps<typeof StickToBottom> & {\n scrollBehavior?: ScrollBehaviorConfig;\n};\n\nexport const Conversation = ({ className, scrollBehavior, ...props }: ConversationProps) => {\n const initial = scrollBehavior?.initial ?? 'smooth';\n const resize = scrollBehavior?.resize ?? 'instant';\n\n return (\n <StickToBottom\n className={cn('relative flex-1 overflow-y-auto', className)}\n initial={initial}\n resize={resize}\n {...(scrollBehavior?.damping !== undefined && { damping: scrollBehavior.damping })}\n {...(scrollBehavior?.stiffness !== undefined && { stiffness: scrollBehavior.stiffness })}\n {...(scrollBehavior?.mass !== undefined && { mass: scrollBehavior.mass })}\n role=\"log\"\n {...props}\n />\n );\n};\n\nexport type ConversationContentProps = ComponentProps<typeof StickToBottom.Content>;\n\nexport const ConversationContent = ({ className, ...props }: ConversationContentProps) => (\n <StickToBottom.Content className={cn('p-4', className)} {...props} />\n);\n\nexport type ConversationEmptyStateProps = ComponentProps<'div'> & {\n title?: string;\n description?: string;\n icon?: ReactNode;\n};\n\nexport const ConversationEmptyState = ({\n className,\n title = 'No messages yet',\n description = 'Start a conversation to see messages here',\n icon,\n children,\n ...props\n}: ConversationEmptyStateProps) => (\n <div\n className={cn('flex size-full flex-col items-center justify-center gap-3 p-8 text-center', className)}\n {...props}\n >\n {children ?? (\n <>\n {icon && <div className=\"text-muted-foreground\">{icon}</div>}\n <div className=\"space-y-1\">\n <h3 className=\"font-medium text-sm\">{title}</h3>\n {description && <p className=\"text-muted-foreground text-sm\">{description}</p>}\n </div>\n </>\n )}\n </div>\n);\n\nexport { useStickToBottomContext } from 'use-stick-to-bottom';\n\nexport type ConversationScrollButtonProps = ComponentProps<typeof Button>;\n\nexport const ConversationScrollButton = ({ className, ...props }: ConversationScrollButtonProps) => {\n const { isAtBottom, scrollToBottom } = useStickToBottomContext();\n\n const handleScrollToBottom = useCallback(() => {\n scrollToBottom();\n }, [scrollToBottom]);\n\n return (\n !isAtBottom && (\n <Button\n className={cn('absolute bottom-4 left-[50%] translate-x-[-50%] rounded-full', className)}\n onClick={handleScrollToBottom}\n size=\"icon\"\n type=\"button\"\n variant=\"outline\"\n {...props}\n >\n <ArrowDownIcon className=\"size-4\" />\n </Button>\n )\n );\n};\n",
22
22
  "import { cn } from '../lib/cn';\nimport { type ComponentProps, memo } from 'react';\nimport { Streamdown } from 'streamdown';\n\nexport type ResponseProps = ComponentProps<typeof Streamdown>;\n\nexport const Response = memo(\n ({ className, ...props }: ResponseProps) => (\n <Streamdown\n className={cn('size-full [&>*:first-child]:mt-0 [&>*:last-child]:mb-0', className)}\n {...props}\n />\n ),\n (prevProps, nextProps) => prevProps.children === nextProps.children,\n);\n\nResponse.displayName = 'Response';\n",
23
23
  "import { Badge } from '../primitives/badge';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../primitives/collapsible';\nimport { cn } from '../lib/cn';\nimport type { ToolState } from '../types';\nimport {\n CheckCircleIcon,\n ChevronDownIcon,\n CircleIcon,\n ClockIcon,\n WrenchIcon,\n XCircleIcon,\n} from 'lucide-react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport { isValidElement } from 'react';\nimport { CodeBlock } from './code-block';\n\nexport type ToolProps = ComponentProps<typeof Collapsible>;\n\nexport const Tool = ({ className, ...props }: ToolProps) => (\n <Collapsible className={cn('not-prose mb-4 w-full rounded-md border', className)} {...props} />\n);\n\nexport type ToolHeaderProps = {\n title?: string;\n type?: string;\n state: ToolState;\n className?: string;\n};\n\nconst getStatusBadge = (status: ToolState) => {\n const labels: Record<string, string> = {\n 'input-streaming': 'Pending',\n 'input-available': 'Running',\n 'approval-requested': 'Awaiting Approval',\n 'approval-responded': 'Responded',\n 'output-available': 'Completed',\n 'output-error': 'Error',\n 'output-denied': 'Denied',\n };\n\n const icons: Record<string, ReactNode> = {\n 'input-streaming': <CircleIcon className=\"size-4\" />,\n 'input-available': <ClockIcon className=\"size-4 animate-pulse\" />,\n 'approval-requested': <ClockIcon className=\"size-4 text-yellow-600\" />,\n 'approval-responded': <CheckCircleIcon className=\"size-4 text-blue-600\" />,\n 'output-available': <CheckCircleIcon className=\"size-4 text-green-600\" />,\n 'output-error': <XCircleIcon className=\"size-4 text-red-600\" />,\n 'output-denied': <XCircleIcon className=\"size-4 text-orange-600\" />,\n };\n\n return (\n <Badge className=\"gap-1.5 rounded-full text-xs\" variant=\"secondary\">\n {icons[status]}\n {labels[status]}\n </Badge>\n );\n};\n\nexport const ToolHeader = ({ className, title, type, state, ...props }: ToolHeaderProps) => (\n <CollapsibleTrigger className={cn('group flex w-full items-center justify-between gap-4 p-3', className)} {...props}>\n <div className=\"flex items-center gap-2\">\n <WrenchIcon className=\"size-4 text-muted-foreground\" />\n <span className=\"font-medium text-sm\">{title ?? type?.split('-').slice(1).join('-') ?? 'Tool'}</span>\n {getStatusBadge(state)}\n </div>\n <ChevronDownIcon className=\"size-4 text-muted-foreground transition-transform group-data-[state=open]:rotate-180\" />\n </CollapsibleTrigger>\n);\n\nexport type ToolContentProps = ComponentProps<typeof CollapsibleContent>;\n\nexport const ToolContent = ({ className, ...props }: ToolContentProps) => (\n <CollapsibleContent\n className={cn(\n 'data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in',\n className,\n )}\n {...props}\n />\n);\n\nexport type ToolInputProps = ComponentProps<'div'> & {\n input: unknown;\n};\n\nexport const ToolInput = ({ className, input, ...props }: ToolInputProps) => (\n <div className={cn('space-y-2 overflow-hidden p-4', className)} {...props}>\n <h4 className=\"font-medium text-muted-foreground text-xs uppercase tracking-wide\">Parameters</h4>\n <div className=\"rounded-md bg-muted/50\">\n <CodeBlock code={JSON.stringify(input, null, 2)} language=\"json\" />\n </div>\n </div>\n);\n\nexport type ToolOutputProps = ComponentProps<'div'> & {\n output: unknown;\n errorText?: string;\n};\n\nexport const ToolOutput = ({ className, output, errorText, ...props }: ToolOutputProps) => {\n if (!(output || errorText)) {\n return null;\n }\n\n let Output = <div>{output as ReactNode}</div>;\n\n if (typeof output === 'object' && !isValidElement(output)) {\n Output = <CodeBlock code={JSON.stringify(output, null, 2)} language=\"json\" />;\n } else if (typeof output === 'string') {\n Output = <CodeBlock code={output} language=\"json\" />;\n }\n\n return (\n <div className={cn('space-y-2 p-4', className)} {...props}>\n <h4 className=\"font-medium text-muted-foreground text-xs uppercase tracking-wide\">\n {errorText ? 'Error' : 'Result'}\n </h4>\n <div\n className={cn(\n 'overflow-x-auto rounded-md text-xs [&_table]:w-full',\n errorText ? 'bg-destructive/10 text-destructive' : 'bg-muted/50 text-foreground',\n )}\n >\n {errorText && <div>{errorText}</div>}\n {Output}\n </div>\n </div>\n );\n};\n",
24
24
  "import { Button } from '../primitives/button';\nimport { cn } from '../lib/cn';\nimport { CheckIcon, CopyIcon } from 'lucide-react';\nimport {\n type ComponentProps,\n createContext,\n type HTMLAttributes,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nexport type CodeBlockProps = HTMLAttributes<HTMLDivElement> & {\n code: string;\n language: string;\n showLineNumbers?: boolean;\n};\n\ntype CodeBlockContextType = {\n code: string;\n};\n\nconst CodeBlockContext = createContext<CodeBlockContextType>({\n code: '',\n});\n\n/**\n * Highlight code using shiki. Gracefully falls back to plain text if shiki is not installed.\n */\nasync function highlightCode(code: string, language: string, showLineNumbers = false): Promise<[string, string]> {\n try {\n const shiki = await import('shiki');\n const lineNumberTransformer = showLineNumbers\n ? [\n {\n name: 'line-numbers',\n line(node: any, line: number) {\n node.children.unshift({\n type: 'element',\n tagName: 'span',\n properties: {\n className: ['inline-block', 'min-w-10', 'mr-4', 'text-right', 'select-none', 'text-muted-foreground'],\n },\n children: [{ type: 'text', value: String(line) }],\n });\n },\n },\n ]\n : [];\n\n const [light, dark] = await Promise.all([\n shiki.codeToHtml(code, { lang: language as any, theme: 'one-light', transformers: lineNumberTransformer }),\n shiki.codeToHtml(code, { lang: language as any, theme: 'one-dark-pro', transformers: lineNumberTransformer }),\n ]);\n return [light, dark];\n } catch {\n // Shiki not installed - return empty to trigger fallback\n return ['', ''];\n }\n}\n\nexport const CodeBlock = ({\n code,\n language,\n showLineNumbers = false,\n className,\n children,\n ...props\n}: CodeBlockProps) => {\n const [html, setHtml] = useState<string>('');\n const [darkHtml, setDarkHtml] = useState<string>('');\n const effectIdRef = useRef(0);\n\n useEffect(() => {\n const id = ++effectIdRef.current;\n highlightCode(code, language, showLineNumbers).then(([light, dark]) => {\n if (id === effectIdRef.current) {\n setHtml(light);\n setDarkHtml(dark);\n }\n });\n }, [code, language, showLineNumbers]);\n\n const useFallback = !html && !darkHtml;\n\n return (\n <CodeBlockContext.Provider value={{ code }}>\n <div\n className={cn(\n 'group relative w-full overflow-hidden rounded-md border bg-background text-foreground',\n className,\n )}\n {...props}\n >\n <div className=\"relative\">\n {useFallback ? (\n <pre className=\"m-0 overflow-auto bg-background p-4 text-foreground text-sm\">\n <code className=\"font-mono text-sm\">{code}</code>\n </pre>\n ) : (\n <>\n <div\n className=\"overflow-hidden dark:hidden [&>pre]:m-0 [&>pre]:bg-background! [&>pre]:p-4 [&>pre]:text-foreground! [&>pre]:text-sm [&_code]:font-mono [&_code]:text-sm\"\n dangerouslySetInnerHTML={{ __html: html }}\n />\n <div\n className=\"hidden overflow-hidden dark:block [&>pre]:m-0 [&>pre]:bg-background! [&>pre]:p-4 [&>pre]:text-foreground! [&>pre]:text-sm [&_code]:font-mono [&_code]:text-sm\"\n dangerouslySetInnerHTML={{ __html: darkHtml }}\n />\n </>\n )}\n {children && <div className=\"absolute top-2 right-2 flex items-center gap-2\">{children}</div>}\n </div>\n </div>\n </CodeBlockContext.Provider>\n );\n};\n\nexport type CodeBlockCopyButtonProps = ComponentProps<typeof Button> & {\n onCopy?: () => void;\n onError?: (error: Error) => void;\n timeout?: number;\n};\n\nexport const CodeBlockCopyButton = ({\n onCopy,\n onError,\n timeout = 2000,\n children,\n className,\n ...props\n}: CodeBlockCopyButtonProps) => {\n const [isCopied, setIsCopied] = useState(false);\n const { code } = useContext(CodeBlockContext);\n\n const copyToClipboard = async () => {\n if (typeof window === 'undefined' || !navigator?.clipboard?.writeText) {\n onError?.(new Error('Clipboard API not available'));\n return;\n }\n\n try {\n await navigator.clipboard.writeText(code);\n setIsCopied(true);\n onCopy?.();\n setTimeout(() => setIsCopied(false), timeout);\n } catch (error) {\n onError?.(error as Error);\n }\n };\n\n const Icon = isCopied ? CheckIcon : CopyIcon;\n\n return (\n <Button className={cn('shrink-0', className)} onClick={copyToClipboard} size=\"icon\" variant=\"ghost\" {...props}>\n {children ?? <Icon size={14} />}\n </Button>\n );\n};\n",
@@ -41,18 +41,33 @@
41
41
  "import { cn } from '../../lib/cn';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../../primitives/select';\nimport type { ComponentProps } from 'react';\n\nexport type PromptInputModelSelectProps = ComponentProps<typeof Select>;\nexport const PromptInputModelSelect = (props: PromptInputModelSelectProps) => <Select {...props} />;\n\nexport type PromptInputModelSelectTriggerProps = ComponentProps<typeof SelectTrigger>;\n\nexport const PromptInputModelSelectTrigger = ({\n className,\n ...props\n}: PromptInputModelSelectTriggerProps) => (\n <SelectTrigger\n className={cn(\n 'border-none bg-transparent font-medium text-muted-foreground shadow-none transition-colors',\n 'hover:bg-accent hover:text-foreground [&[aria-expanded=\"true\"]]:bg-accent [&[aria-expanded=\"true\"]]:text-foreground',\n className,\n )}\n {...props}\n />\n);\n\nexport type PromptInputModelSelectContentProps = ComponentProps<typeof SelectContent>;\nexport const PromptInputModelSelectContent = ({ className, ...props }: PromptInputModelSelectContentProps) => (\n <SelectContent className={cn(className)} {...props} />\n);\n\nexport type PromptInputModelSelectItemProps = ComponentProps<typeof SelectItem>;\nexport const PromptInputModelSelectItem = ({ className, ...props }: PromptInputModelSelectItemProps) => (\n <SelectItem className={cn(className)} {...props} />\n);\n\nexport type PromptInputModelSelectValueProps = ComponentProps<typeof SelectValue>;\nexport const PromptInputModelSelectValue = ({ className, ...props }: PromptInputModelSelectValueProps) => (\n <SelectValue className={cn(className)} {...props} />\n);\n",
42
42
  "import { cn } from '../../lib/cn';\nimport type { HTMLAttributes } from 'react';\n\nexport type PromptInputTabsListProps = HTMLAttributes<HTMLDivElement>;\nexport const PromptInputTabsList = ({ className, ...props }: PromptInputTabsListProps) => (\n <div className={cn(className)} {...props} />\n);\n\nexport type PromptInputTabProps = HTMLAttributes<HTMLDivElement>;\nexport const PromptInputTab = ({ className, ...props }: PromptInputTabProps) => (\n <div className={cn(className)} {...props} />\n);\n\nexport type PromptInputTabLabelProps = HTMLAttributes<HTMLHeadingElement>;\nexport const PromptInputTabLabel = ({ className, ...props }: PromptInputTabLabelProps) => (\n <h3 className={cn('mb-2 px-3 font-medium text-muted-foreground text-xs', className)} {...props} />\n);\n\nexport type PromptInputTabBodyProps = HTMLAttributes<HTMLDivElement>;\nexport const PromptInputTabBody = ({ className, ...props }: PromptInputTabBodyProps) => (\n <div className={cn('space-y-1', className)} {...props} />\n);\n\nexport type PromptInputTabItemProps = HTMLAttributes<HTMLDivElement>;\nexport const PromptInputTabItem = ({ className, ...props }: PromptInputTabItemProps) => (\n <div className={cn('flex items-center gap-2 px-3 py-2 text-xs hover:bg-accent', className)} {...props} />\n);\n",
43
43
  "import { cn } from '../../lib/cn';\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n} from '../../primitives/command';\nimport type { ComponentProps } from 'react';\n\nexport type PromptInputCommandProps = ComponentProps<typeof Command>;\nexport const PromptInputCommand = ({ className, ...props }: PromptInputCommandProps) => (\n <Command className={cn(className)} {...props} />\n);\n\nexport type PromptInputCommandInputProps = ComponentProps<typeof CommandInput>;\nexport const PromptInputCommandInput = ({ className, ...props }: PromptInputCommandInputProps) => (\n <CommandInput className={cn(className)} {...props} />\n);\n\nexport type PromptInputCommandListProps = ComponentProps<typeof CommandList>;\nexport const PromptInputCommandList = ({ className, ...props }: PromptInputCommandListProps) => (\n <CommandList className={cn(className)} {...props} />\n);\n\nexport type PromptInputCommandEmptyProps = ComponentProps<typeof CommandEmpty>;\nexport const PromptInputCommandEmpty = ({ className, ...props }: PromptInputCommandEmptyProps) => (\n <CommandEmpty className={cn(className)} {...props} />\n);\n\nexport type PromptInputCommandGroupProps = ComponentProps<typeof CommandGroup>;\nexport const PromptInputCommandGroup = ({ className, ...props }: PromptInputCommandGroupProps) => (\n <CommandGroup className={cn(className)} {...props} />\n);\n\nexport type PromptInputCommandItemProps = ComponentProps<typeof CommandItem>;\nexport const PromptInputCommandItem = ({ className, ...props }: PromptInputCommandItemProps) => (\n <CommandItem className={cn(className)} {...props} />\n);\n\nexport type PromptInputCommandSeparatorProps = ComponentProps<typeof CommandSeparator>;\nexport const PromptInputCommandSeparator = ({ className, ...props }: PromptInputCommandSeparatorProps) => (\n <CommandSeparator className={cn(className)} {...props} />\n);\n",
44
- "import { useState } from 'react';\nimport type { ChatMessage, ToolCall } from '@rodrigocoliveira/agno-types';\nimport { GenerativeUIRenderer } from '@rodrigocoliveira/agno-react';\nimport { Response } from '../components/response';\nimport { Tool, ToolContent, ToolHeader, ToolInput, ToolOutput } from '../components/tool';\nimport { Artifact } from '../components/artifact';\nimport { SmartTimestamp } from '../components/smart-timestamp';\nimport { FilePreviewCard } from '../components/file-preview-card';\nimport { FilePreviewModal } from '../components/file-preview-modal';\nimport { ImageLightbox } from '../components/image-lightbox';\nimport type { FilePreviewFile } from '../components/file-preview-card';\nimport type { LightboxImage } from '../components/image-lightbox';\nimport { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '../primitives/accordion';\nimport { cn } from '../lib/cn';\nimport { formatSmartTimestamp } from '../lib/format-timestamp';\nimport type { ToolState } from '../types';\nimport type { AgnoMessageClassNames, AgnoMessageAvatars, AgnoMessageActions } from '../types';\nimport type { ReactNode } from 'react';\nimport type { ToolResultRenderer } from './agno-chat/context';\nimport {\n AlertCircle,\n FileIcon,\n FileText,\n Image as ImageIcon,\n Lightbulb,\n Music,\n Paperclip,\n Video,\n} from 'lucide-react';\n\nexport interface AgnoMessageItemProps {\n message: ChatMessage;\n className?: string;\n classNames?: AgnoMessageClassNames;\n /** Custom render for the entire message content area */\n renderContent?: (message: ChatMessage) => ReactNode;\n /** Custom render for individual tool calls */\n renderToolCall?: (tool: NonNullable<ChatMessage['tool_calls']>[0], index: number) => ReactNode;\n /** Custom render for media sections */\n renderMedia?: (message: ChatMessage) => ReactNode;\n /** Grouped avatar configuration */\n avatars?: AgnoMessageAvatars;\n /** Grouped action buttons configuration with visibility control */\n actions?: AgnoMessageActions;\n /** Whether this is the last assistant message in the conversation (used for visibility logic) */\n isLastAssistantMessage?: boolean;\n /** Show reasoning steps (default: true) */\n showReasoning?: boolean;\n /** Show references (default: true) */\n showReferences?: boolean;\n /** Show timestamp (default: true) */\n showTimestamp?: boolean;\n /** Show generative UI renders (default: true) */\n showGenerativeUI?: boolean;\n /** Show tool call details (default: true) */\n showToolCalls?: boolean;\n /** Enable file preview cards with click-to-open modal (default: true) */\n showFilePreview?: boolean;\n /** Enable image lightbox on click (default: true) */\n showImageLightbox?: boolean;\n /** Custom timestamp formatter */\n formatTimestamp?: (date: Date) => string;\n /** Per-tool renderers shown inline in chat after a HITL tool completes, and on session reload */\n toolResultRenderers?: Record<string, ToolResultRenderer>;\n}\n\nconst defaultFormatTimestamp = formatSmartTimestamp;\n\nconst getToolState = (tool: NonNullable<ChatMessage['tool_calls']>[0]): ToolState => {\n return tool.tool_call_error ? 'output-error' : 'output-available';\n};\n\ntype PreviewState =\n | { type: 'image'; images: LightboxImage[]; initialIndex: number }\n | { type: 'file'; file: FilePreviewFile }\n | null;\n\nexport function AgnoMessageItem({\n message,\n className,\n classNames,\n renderContent,\n renderToolCall,\n renderMedia,\n avatars,\n actions,\n isLastAssistantMessage = false,\n showReasoning = true,\n showReferences = true,\n showTimestamp = true,\n showGenerativeUI = true,\n showToolCalls = true,\n showFilePreview = true,\n showImageLightbox = true,\n formatTimestamp,\n toolResultRenderers,\n}: AgnoMessageItemProps) {\n const isUser = message.role === 'user';\n const hasError = message.streamingError;\n const toolsWithUI = message.tool_calls?.filter((tool) => (tool as ToolCall & { ui_component?: any }).ui_component) || [];\n\n const [preview, setPreview] = useState<PreviewState>(null);\n\n const isCustomTimestamp = !!formatTimestamp;\n const resolvedFormatTimestamp = formatTimestamp ?? defaultFormatTimestamp;\n\n const openImageLightbox = (images: LightboxImage[], index: number) => {\n if (!showImageLightbox) return;\n setPreview({ type: 'image', images, initialIndex: index });\n };\n\n const openFilePreview = (file: FilePreviewFile) => {\n if (!showFilePreview) return;\n setPreview({ type: 'file', file });\n };\n\n const closePreview = () => setPreview(null);\n\n return (\n <div className={cn('py-5 first:pt-2', isUser ? 'flex justify-end' : '', classNames?.root, className)}>\n {isUser ? (\n /* User message */\n <div className=\"flex items-start gap-2.5 max-w-[80%] flex-row-reverse\">\n {avatars?.user}\n <div className=\"space-y-1.5 flex flex-col items-end min-w-0\">\n {/* Attachments row — images + files side-by-side as uniform cards */}\n {((message.images && message.images.length > 0) ||\n (message.audio && message.audio.length > 0) ||\n (message.files && message.files.length > 0)) && (\n <div className=\"flex flex-wrap gap-2 justify-end\">\n {/* Image thumbnails as square cards */}\n {message.images?.map((img, idx) => (\n <FilePreviewCard\n key={`img-${idx}`}\n file={{ name: img.revised_prompt || `Image ${idx + 1}`, type: 'image/png', url: img.url }}\n onClick={\n showImageLightbox\n ? () =>\n openImageLightbox(\n message.images!.map((i) => ({ url: i.url, alt: i.revised_prompt })),\n idx,\n )\n : undefined\n }\n />\n ))}\n {/* Audio chips */}\n {message.audio?.map((audio, idx) => (\n <div\n key={`audio-${idx}`}\n className=\"flex items-center gap-1.5 rounded-lg border border-border bg-muted/50 px-2.5 py-1.5 text-xs text-foreground self-end\"\n >\n <Music className=\"h-3.5 w-3.5 text-muted-foreground\" />\n <span className=\"truncate max-w-[150px]\">{audio.id || `Audio ${idx + 1}`}</span>\n </div>\n ))}\n {/* File cards */}\n {message.files?.map((file, idx) =>\n showFilePreview ? (\n <FilePreviewCard\n key={`file-${idx}`}\n file={{ name: file.name, type: file.type, url: file.url, size: file.size }}\n onClick={() =>\n openFilePreview({ name: file.name, type: file.type, url: file.url, size: file.size })\n }\n />\n ) : (\n <div\n key={`file-${idx}`}\n className=\"flex items-center gap-1.5 rounded-lg border border-border bg-muted/50 px-2.5 py-1.5 text-xs text-foreground self-end\"\n >\n <FileIcon className=\"h-3.5 w-3.5 text-muted-foreground\" />\n <span className=\"truncate max-w-[150px]\">{file.name}</span>\n </div>\n ),\n )}\n </div>\n )}\n {/* Message bubble — text only */}\n {message.content && (\n <div\n className={cn(\n 'rounded-2xl rounded-br-md px-4 py-2.5',\n classNames?.user?.bubble ?? 'bg-primary text-primary-foreground',\n hasError && 'opacity-70',\n )}\n >\n <p className=\"text-sm whitespace-pre-wrap\">{message.content}</p>\n </div>\n )}\n {(showTimestamp || actions?.user) && (\n <div className=\"flex items-center justify-end gap-1.5 px-1\">\n {actions?.user && (\n <div className=\"flex items-center gap-1\">\n {actions.user(message)}\n </div>\n )}\n <SmartTimestamp\n date={new Date(message.created_at * 1000)}\n formatShort={isCustomTimestamp ? resolvedFormatTimestamp : undefined}\n className=\"text-[11px] text-muted-foreground\"\n />\n {hasError && <AlertCircle className=\"h-3 w-3 text-destructive\" />}\n </div>\n )}\n </div>\n </div>\n ) : (\n /* Assistant message */\n <div className=\"flex items-start gap-3 group/message\">\n {avatars?.assistant}\n <div className={cn('flex-1 min-w-0 space-y-3', classNames?.assistant?.container)}>\n {/* Custom content render */}\n {renderContent ? (\n renderContent(message)\n ) : (\n <>\n {/* Reasoning Steps */}\n {showReasoning &&\n message.extra_data?.reasoning_steps &&\n message.extra_data.reasoning_steps.length > 0 && (\n <div className={cn('space-y-2 pt-1', classNames?.assistant?.reasoning)}>\n <div className=\"flex items-center gap-2 text-xs font-medium text-muted-foreground\">\n <Lightbulb className=\"h-3.5 w-3.5\" />\n Reasoning ({message.extra_data.reasoning_steps.length} steps)\n </div>\n <Accordion type=\"multiple\" className=\"w-full\">\n {message.extra_data.reasoning_steps.map((step, idx) => (\n <AccordionItem key={idx} value={`reasoning-${idx}`} className=\"border-muted\">\n <AccordionTrigger className=\"text-xs py-1.5 hover:no-underline\">\n {step.title || `Step ${idx + 1}`}\n </AccordionTrigger>\n <AccordionContent className=\"space-y-1.5 text-xs text-muted-foreground\">\n {step.action && (\n <div>\n <span className=\"font-medium text-foreground\">Action:</span> {step.action}\n </div>\n )}\n {step.reasoning && (\n <div>\n <span className=\"font-medium text-foreground\">Reasoning:</span> {step.reasoning}\n </div>\n )}\n {step.result && (\n <div>\n <span className=\"font-medium text-foreground\">Result:</span> {step.result}\n </div>\n )}\n {step.confidence !== undefined && (\n <div>\n <span className=\"font-medium text-foreground\">Confidence:</span>{' '}\n {(step.confidence * 100).toFixed(1)}%\n </div>\n )}\n </AccordionContent>\n </AccordionItem>\n ))}\n </Accordion>\n </div>\n )}\n\n {/* Main Content */}\n {message.content && (\n <div className=\"prose prose-sm dark:prose-invert max-w-none prose-p:leading-relaxed prose-pre:bg-muted prose-pre:border prose-pre:border-border\">\n <Response>{message.content}</Response>\n </div>\n )}\n\n {/* Generative UI */}\n {showGenerativeUI && toolsWithUI.length > 0 && (\n <div className=\"space-y-3\">\n {toolsWithUI.map((tool) => {\n const uiComponent = (tool as ToolCall & { ui_component?: any }).ui_component;\n return (\n <div key={tool.tool_call_id}>\n {uiComponent.layout === 'artifact' ? (\n <Artifact>\n <GenerativeUIRenderer spec={uiComponent} className=\"w-full p-2\" />\n </Artifact>\n ) : (\n <GenerativeUIRenderer spec={uiComponent} className=\"w-full\" />\n )}\n </div>\n );\n })}\n </div>\n )}\n\n {/* Tool result renderers — shown after HITL execution and on session reload */}\n {toolResultRenderers && message.tool_calls?.map((tool) => {\n const renderer = toolResultRenderers[tool.tool_name];\n const content = (tool.result ?? tool.content) as string | undefined;\n if (!renderer || !content) return null;\n return (\n <div key={`result-${tool.tool_call_id}`}>\n {renderer(tool.tool_args, content)}\n </div>\n );\n })}\n\n {/* Media - custom or default */}\n {renderMedia\n ? renderMedia(message)\n : (() => {\n const mediaClassName = classNames?.assistant?.media;\n return (\n <>\n {/* Images */}\n {message.images && message.images.length > 0 && (\n <div className={cn('space-y-2 pt-1', mediaClassName)}>\n <div className=\"flex items-center gap-2 text-xs font-medium text-muted-foreground\">\n <ImageIcon className=\"h-3.5 w-3.5\" />\n Images ({message.images.length})\n </div>\n <div className=\"grid grid-cols-2 gap-2\">\n {message.images.map((img, idx) => (\n <div key={idx} className=\"space-y-1\">\n {showImageLightbox ? (\n <button\n type=\"button\"\n onClick={() =>\n openImageLightbox(\n message.images!.map((i) => ({ url: i.url, alt: i.revised_prompt })),\n idx,\n )\n }\n className=\"group relative w-full overflow-hidden rounded-lg border border-border cursor-pointer hover:border-primary/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring transition-colors\"\n >\n <img\n src={img.url}\n alt={img.revised_prompt || 'Generated image'}\n className=\"w-full rounded-lg\"\n />\n </button>\n ) : (\n <img\n src={img.url}\n alt={img.revised_prompt || 'Generated image'}\n className=\"w-full rounded-lg border border-border\"\n />\n )}\n {img.revised_prompt && (\n <p className=\"text-[11px] text-muted-foreground italic px-0.5\">\n {img.revised_prompt}\n </p>\n )}\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* Videos */}\n {message.videos && message.videos.length > 0 && (\n <div className={cn('space-y-2 pt-1', mediaClassName)}>\n <div className=\"flex items-center gap-2 text-xs font-medium text-muted-foreground\">\n <Video className=\"h-3.5 w-3.5\" />\n Videos ({message.videos.length})\n </div>\n <div className=\"space-y-2\">\n {message.videos.map((video, idx) => (\n <div key={idx}>\n {video.url ? (\n <video\n src={video.url}\n controls\n className=\"w-full rounded-lg border border-border\"\n />\n ) : (\n <div className=\"bg-muted/50 border border-border p-2.5 rounded-lg text-xs text-muted-foreground\">\n Video ID: {video.id} (ETA: {video.eta}s)\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* Audio */}\n {message.audio && message.audio.length > 0 && (\n <div className={cn('space-y-2 pt-1', mediaClassName)}>\n <div className=\"flex items-center gap-2 text-xs font-medium text-muted-foreground\">\n <Music className=\"h-3.5 w-3.5\" />\n Audio ({message.audio.length})\n </div>\n <div className=\"space-y-2\">\n {message.audio.map((audio, idx) => (\n <div key={idx}>\n {audio.url ? (\n <audio src={audio.url} controls className=\"w-full\" />\n ) : audio.base64_audio ? (\n <audio\n src={`data:${audio.mime_type || 'audio/wav'};base64,${audio.base64_audio}`}\n controls\n className=\"w-full\"\n />\n ) : (\n <div className=\"bg-muted/50 border border-border p-2.5 rounded-lg text-xs text-muted-foreground\">\n Audio data unavailable\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* File Attachments */}\n {message.files && message.files.length > 0 && (\n <div className={cn('space-y-2 pt-1', mediaClassName)}>\n <div className=\"flex items-center gap-2 text-xs font-medium text-muted-foreground\">\n <Paperclip className=\"h-3.5 w-3.5\" />\n Files ({message.files.length})\n </div>\n <div className=\"flex flex-wrap gap-2\">\n {message.files.map((file, idx) =>\n showFilePreview ? (\n <FilePreviewCard\n key={idx}\n file={{ name: file.name, type: file.type, url: file.url, size: file.size }}\n onClick={() =>\n openFilePreview({ name: file.name, type: file.type, url: file.url, size: file.size })\n }\n />\n ) : (\n <div\n key={idx}\n className=\"flex items-center gap-2 rounded-lg border border-border px-3 py-2 text-xs bg-muted/30 hover:bg-muted/50 transition-colors\"\n >\n <FileIcon className=\"h-3.5 w-3.5 shrink-0 text-muted-foreground\" />\n <span className=\"truncate max-w-[180px]\">{file.name}</span>\n {file.size && (\n <span className=\"text-muted-foreground/70\">\n ({(file.size / 1024).toFixed(1)}KB)\n </span>\n )}\n {file.url && /^https?:\\/\\//i.test(file.url) && (\n <a\n href={file.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-primary hover:underline font-medium\"\n >\n View\n </a>\n )}\n </div>\n ),\n )}\n </div>\n </div>\n )}\n\n {/* Response Audio (TTS) */}\n {message.response_audio && (\n <div className={cn('space-y-2 pt-1', mediaClassName)}>\n <div className=\"flex items-center gap-2 text-xs font-medium text-muted-foreground\">\n <Music className=\"h-3.5 w-3.5\" />\n Response Audio\n </div>\n {message.response_audio.transcript && (\n <div className=\"text-xs italic bg-muted/50 border border-border p-2.5 rounded-lg text-muted-foreground\">\n \"{message.response_audio.transcript}\"\n </div>\n )}\n {message.response_audio.content && (\n <audio\n src={`data:audio/wav;base64,${message.response_audio.content}`}\n controls\n className=\"w-full\"\n />\n )}\n </div>\n )}\n </>\n );\n })()}\n\n {/* Tool Calls */}\n {showToolCalls && message.tool_calls && message.tool_calls.length > 0 && (\n <div className={cn('space-y-2 pt-1', classNames?.assistant?.toolCalls)}>\n {message.tool_calls.map((tool, idx) =>\n renderToolCall ? (\n renderToolCall(tool, idx)\n ) : (\n <Tool key={tool.tool_call_id || idx} defaultOpen={idx === 0}>\n <ToolHeader title={tool.tool_name} type=\"tool-use\" state={getToolState(tool)} />\n <ToolContent>\n <ToolInput input={tool.tool_args} />\n {tool.content && (\n <ToolOutput\n output={tool.content}\n errorText={tool.tool_call_error ? 'Tool execution failed' : undefined}\n />\n )}\n </ToolContent>\n </Tool>\n ),\n )}\n </div>\n )}\n\n {/* References */}\n {showReferences &&\n message.extra_data?.references &&\n message.extra_data.references.length > 0 && (\n <div className={cn('space-y-2 pt-1', classNames?.assistant?.references)}>\n <div className=\"flex items-center gap-2 text-xs font-medium text-muted-foreground\">\n <FileText className=\"h-3.5 w-3.5\" />\n References ({message.extra_data.references.length})\n </div>\n <div className=\"space-y-2\">\n {message.extra_data.references.map((refData, idx) => (\n <div key={idx} className=\"text-xs space-y-1.5\">\n {refData.query && (\n <div className=\"font-medium text-foreground\">Query: {refData.query}</div>\n )}\n {refData.references.map((ref, refIdx) => (\n <div key={refIdx} className=\"bg-muted/50 border border-border p-2.5 rounded-lg\">\n <div className=\"italic text-muted-foreground mb-1\">\"{ref.content}\"</div>\n <div className=\"text-muted-foreground/70\">\n Source: {ref.name} (chunk {ref.meta_data.chunk}/{ref.meta_data.chunk_size})\n </div>\n </div>\n ))}\n </div>\n ))}\n </div>\n </div>\n )}\n </>\n )}\n\n {/* Footer: actions + timestamp, left-aligned */}\n {(actions?.assistant || showTimestamp || hasError) && (\n <div className=\"flex items-center gap-2 pt-1\">\n {actions?.assistant && (() => {\n const visibility = actions.visibility ?? 'visible';\n // For 'last-assistant' mode, only render on the last assistant message\n if (visibility === 'last-assistant' && !isLastAssistantMessage) return null;\n\n const useHover =\n visibility === 'hover' ||\n (visibility === 'hover-last-visible' && !isLastAssistantMessage);\n\n return (\n <div\n className={cn(\n 'flex items-center gap-1 transition-opacity',\n useHover && 'opacity-0 group-hover/message:opacity-100',\n classNames?.assistant?.actions,\n )}\n >\n {actions.assistant(message)}\n </div>\n );\n })()}\n {hasError && (\n <span className=\"flex items-center gap-1 text-[11px] text-destructive\">\n <AlertCircle className=\"h-3 w-3\" />\n Error\n </span>\n )}\n {showTimestamp && (\n <SmartTimestamp\n date={new Date(message.created_at * 1000)}\n formatShort={isCustomTimestamp ? resolvedFormatTimestamp : undefined}\n className=\"text-[11px] text-muted-foreground\"\n />\n )}\n </div>\n )}\n </div>\n </div>\n )}\n\n {/* Image Lightbox */}\n {preview?.type === 'image' && (\n <ImageLightbox\n open\n onOpenChange={(open) => { if (!open) closePreview(); }}\n images={preview.images}\n initialIndex={preview.initialIndex}\n />\n )}\n\n {/* File Preview Modal */}\n {preview?.type === 'file' && (\n <FilePreviewModal\n open\n onOpenChange={(open) => { if (!open) closePreview(); }}\n file={preview.file}\n />\n )}\n </div>\n );\n}\n",
44
+ "import { useMemo, useState } from 'react';\nimport type { ReactNode } from 'react';\nimport type { ChatMessage } from '@rodrigocoliveira/agno-types';\nimport { AlertCircle, FileIcon, Music } from 'lucide-react';\nimport { SmartTimestamp } from '../../components/smart-timestamp';\nimport { FilePreviewCard } from '../../components/file-preview-card';\nimport { FilePreviewModal } from '../../components/file-preview-modal';\nimport { ImageLightbox } from '../../components/image-lightbox';\nimport type { FilePreviewFile } from '../../components/file-preview-card';\nimport type { LightboxImage } from '../../components/image-lightbox';\nimport { formatSmartTimestamp } from '../../lib/format-timestamp';\nimport { cn } from '../../lib/cn';\nimport type {\n AgnoMessageClassNames,\n AgnoMessageActions,\n AgnoMessageAvatars,\n} from '../../types';\nimport type { RenderTool } from '../agno-chat/render-tool';\nimport { AgnoMessageContext } from './context';\nimport type { AgnoMessageContextValue } from './context';\nimport { AgnoMessageReasoning } from './reasoning';\nimport { AgnoMessageMedia } from './media';\nimport { AgnoMessageTools } from './tools';\nimport { AgnoMessageContent } from './content';\nimport { AgnoMessageReferences } from './references';\nimport { AgnoMessageFooter } from './footer';\n\nexport interface AgnoMessageProps {\n message: ChatMessage;\n className?: string;\n classNames?: AgnoMessageClassNames;\n avatars?: AgnoMessageAvatars;\n actions?: AgnoMessageActions;\n isLastAssistantMessage?: boolean;\n showFilePreview?: boolean;\n showImageLightbox?: boolean;\n showTimestamp?: boolean;\n formatTimestamp?: (date: Date) => string;\n renderTool?: RenderTool;\n /**\n * Custom slot composition for assistant messages. If provided, replaces the\n * default ordering. Use `<AgnoMessage.Reasoning />`, `<AgnoMessage.Media />`,\n * `<AgnoMessage.Tools />`, `<AgnoMessage.Content />`, `<AgnoMessage.References />`,\n * `<AgnoMessage.Footer />` in any order. User messages ignore this — their layout\n * is fixed.\n */\n children?: ReactNode;\n}\n\ntype PreviewState =\n | { type: 'image'; images: LightboxImage[]; initialIndex: number }\n | { type: 'file'; file: FilePreviewFile }\n | null;\n\nfunction DefaultAssistantComposition({ showTimestamp }: { showTimestamp: boolean }) {\n return (\n <>\n <AgnoMessageReasoning />\n <AgnoMessageMedia />\n <AgnoMessageTools />\n <AgnoMessageContent />\n <AgnoMessageReferences />\n <AgnoMessageFooter showTimestamp={showTimestamp} />\n </>\n );\n}\n\nexport function AgnoMessage({\n message,\n className,\n classNames,\n avatars,\n actions,\n isLastAssistantMessage = false,\n showFilePreview = true,\n showImageLightbox = true,\n showTimestamp = true,\n formatTimestamp,\n renderTool,\n children,\n}: AgnoMessageProps) {\n const isUser = message.role === 'user';\n const hasError = message.streamingError;\n const [preview, setPreview] = useState<PreviewState>(null);\n\n const isCustomTimestamp = !!formatTimestamp;\n const resolvedFormatTimestamp = formatTimestamp ?? formatSmartTimestamp;\n\n const ctx = useMemo<AgnoMessageContextValue>(\n () => ({\n message,\n isLastAssistantMessage,\n classNames,\n actions,\n avatars,\n formatTimestamp,\n showFilePreview,\n showImageLightbox,\n openImageLightbox: (images, index) => {\n if (!showImageLightbox) return;\n setPreview({ type: 'image', images, initialIndex: index });\n },\n openFilePreview: (file) => {\n if (!showFilePreview) return;\n setPreview({ type: 'file', file });\n },\n renderTool,\n }),\n [\n message,\n isLastAssistantMessage,\n classNames,\n actions,\n avatars,\n formatTimestamp,\n showFilePreview,\n showImageLightbox,\n renderTool,\n ],\n );\n\n const closePreview = () => setPreview(null);\n\n return (\n <AgnoMessageContext.Provider value={ctx}>\n <div className={cn('py-5 first:pt-2', isUser ? 'flex justify-end' : '', classNames?.root, className)}>\n {isUser ? (\n <UserMessageLayout\n message={message}\n classNames={classNames}\n avatars={avatars}\n actions={actions}\n isCustomTimestamp={isCustomTimestamp}\n resolvedFormatTimestamp={resolvedFormatTimestamp}\n showTimestamp={showTimestamp}\n showImageLightbox={showImageLightbox}\n showFilePreview={showFilePreview}\n openImageLightbox={ctx.openImageLightbox}\n openFilePreview={ctx.openFilePreview}\n hasError={hasError}\n />\n ) : (\n <div className=\"flex items-start gap-3 group/message\">\n {avatars?.assistant}\n <div className={cn('flex-1 min-w-0 space-y-3', classNames?.assistant?.container)}>\n {children ?? <DefaultAssistantComposition showTimestamp={showTimestamp} />}\n </div>\n </div>\n )}\n\n {preview?.type === 'image' && (\n <ImageLightbox\n open\n onOpenChange={(open) => { if (!open) closePreview(); }}\n images={preview.images}\n initialIndex={preview.initialIndex}\n />\n )}\n {preview?.type === 'file' && (\n <FilePreviewModal\n open\n onOpenChange={(open) => { if (!open) closePreview(); }}\n file={preview.file}\n />\n )}\n </div>\n </AgnoMessageContext.Provider>\n );\n}\n\nAgnoMessage.Reasoning = AgnoMessageReasoning;\nAgnoMessage.Media = AgnoMessageMedia;\nAgnoMessage.Tools = AgnoMessageTools;\nAgnoMessage.Content = AgnoMessageContent;\nAgnoMessage.References = AgnoMessageReferences;\nAgnoMessage.Footer = AgnoMessageFooter;\n\ninterface UserMessageLayoutProps {\n message: ChatMessage;\n classNames?: AgnoMessageClassNames;\n avatars?: AgnoMessageAvatars;\n actions?: AgnoMessageActions;\n isCustomTimestamp: boolean;\n resolvedFormatTimestamp: (date: Date) => string;\n showTimestamp: boolean;\n showImageLightbox: boolean;\n showFilePreview: boolean;\n openImageLightbox: (images: LightboxImage[], idx: number) => void;\n openFilePreview: (file: FilePreviewFile) => void;\n hasError?: boolean;\n}\n\nfunction UserMessageLayout({\n message,\n classNames,\n avatars,\n actions,\n isCustomTimestamp,\n resolvedFormatTimestamp,\n showTimestamp,\n showImageLightbox,\n showFilePreview,\n openImageLightbox,\n openFilePreview,\n hasError,\n}: UserMessageLayoutProps) {\n return (\n <div className=\"flex items-start gap-2.5 max-w-[80%] flex-row-reverse\">\n {avatars?.user}\n <div className=\"space-y-1.5 flex flex-col items-end min-w-0\">\n {((message.images && message.images.length > 0) ||\n (message.audio && message.audio.length > 0) ||\n (message.files && message.files.length > 0)) && (\n <div className=\"flex flex-wrap gap-2 justify-end\">\n {message.images?.map((img, idx) => (\n <FilePreviewCard\n key={`img-${idx}`}\n file={{ name: img.revised_prompt || `Image ${idx + 1}`, type: 'image/png', url: img.url }}\n onClick={\n showImageLightbox\n ? () =>\n openImageLightbox(\n message.images!.map((i) => ({ url: i.url, alt: i.revised_prompt })),\n idx,\n )\n : undefined\n }\n />\n ))}\n {message.audio?.map((audio, idx) => (\n <div\n key={`audio-${idx}`}\n className=\"flex items-center gap-1.5 rounded-lg border border-border bg-muted/50 px-2.5 py-1.5 text-xs text-foreground self-end\"\n >\n <Music className=\"h-3.5 w-3.5 text-muted-foreground\" />\n <span className=\"truncate max-w-[150px]\">{audio.id || `Audio ${idx + 1}`}</span>\n </div>\n ))}\n {message.files?.map((file, idx) =>\n showFilePreview ? (\n <FilePreviewCard\n key={`file-${idx}`}\n file={{ name: file.name, type: file.type, url: file.url, size: file.size }}\n onClick={() =>\n openFilePreview({ name: file.name, type: file.type, url: file.url, size: file.size })\n }\n />\n ) : (\n <div\n key={`file-${idx}`}\n className=\"flex items-center gap-1.5 rounded-lg border border-border bg-muted/50 px-2.5 py-1.5 text-xs text-foreground self-end\"\n >\n <FileIcon className=\"h-3.5 w-3.5 text-muted-foreground\" />\n <span className=\"truncate max-w-[150px]\">{file.name}</span>\n </div>\n ),\n )}\n </div>\n )}\n {message.content && (\n <div\n className={cn(\n 'rounded-2xl rounded-br-md px-4 py-2.5',\n classNames?.user?.bubble ?? 'bg-primary text-primary-foreground',\n hasError && 'opacity-70',\n )}\n >\n <p className=\"text-sm whitespace-pre-wrap\">{message.content}</p>\n </div>\n )}\n {(showTimestamp || actions?.user) && (\n <div className=\"flex items-center justify-end gap-1.5 px-1\">\n {actions?.user && (\n <div className=\"flex items-center gap-1\">\n {actions.user(message)}\n </div>\n )}\n <SmartTimestamp\n date={new Date(message.created_at * 1000)}\n formatShort={isCustomTimestamp ? resolvedFormatTimestamp : undefined}\n className=\"text-[11px] text-muted-foreground\"\n />\n {hasError && <AlertCircle className=\"h-3 w-3 text-destructive\" />}\n </div>\n )}\n </div>\n </div>\n );\n}\n\n",
45
+ "import { createContext, useContext } from 'react';\nimport type { ChatMessage } from '@rodrigocoliveira/agno-types';\nimport type { FilePreviewFile } from '../../components/file-preview-card';\nimport type { LightboxImage } from '../../components/image-lightbox';\nimport type {\n AgnoMessageClassNames,\n AgnoMessageActions,\n AgnoMessageAvatars,\n} from '../../types';\nimport type { RenderTool } from '../agno-chat/render-tool';\n\nexport interface AgnoMessageContextValue {\n message: ChatMessage;\n isLastAssistantMessage: boolean;\n classNames?: AgnoMessageClassNames;\n actions?: AgnoMessageActions;\n avatars?: AgnoMessageAvatars;\n formatTimestamp?: (date: Date) => string;\n showFilePreview: boolean;\n showImageLightbox: boolean;\n openImageLightbox: (images: LightboxImage[], index: number) => void;\n openFilePreview: (file: FilePreviewFile) => void;\n renderTool?: RenderTool;\n}\n\nexport const AgnoMessageContext = createContext<AgnoMessageContextValue | null>(null);\n\nexport function useAgnoMessageContext(): AgnoMessageContextValue {\n const ctx = useContext(AgnoMessageContext);\n if (!ctx) {\n throw new Error(\n 'useAgnoMessageContext must be used within an <AgnoMessage> provider. ' +\n 'Wrap your slots with <AgnoMessage message={...}>.',\n );\n }\n return ctx;\n}\n",
46
+ "import { Lightbulb } from 'lucide-react';\nimport { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '../../primitives/accordion';\nimport { cn } from '../../lib/cn';\nimport { useAgnoMessageContext } from './context';\n\nexport function AgnoMessageReasoning() {\n const { message, classNames } = useAgnoMessageContext();\n const steps = message.extra_data?.reasoning_steps;\n if (!steps || steps.length === 0) return null;\n\n return (\n <div className={cn('space-y-2 pt-1', classNames?.assistant?.reasoning)}>\n <div className=\"flex items-center gap-2 text-xs font-medium text-muted-foreground\">\n <Lightbulb className=\"h-3.5 w-3.5\" />\n Reasoning ({steps.length} steps)\n </div>\n <Accordion type=\"multiple\" className=\"w-full\">\n {steps.map((step, idx) => (\n <AccordionItem key={idx} value={`reasoning-${idx}`} className=\"border-muted\">\n <AccordionTrigger className=\"text-xs py-1.5 hover:no-underline\">\n {step.title || `Step ${idx + 1}`}\n </AccordionTrigger>\n <AccordionContent className=\"space-y-1.5 text-xs text-muted-foreground\">\n {step.action && (\n <div>\n <span className=\"font-medium text-foreground\">Action:</span> {step.action}\n </div>\n )}\n {step.reasoning && (\n <div>\n <span className=\"font-medium text-foreground\">Reasoning:</span> {step.reasoning}\n </div>\n )}\n {step.result && (\n <div>\n <span className=\"font-medium text-foreground\">Result:</span> {step.result}\n </div>\n )}\n {step.confidence !== undefined && (\n <div>\n <span className=\"font-medium text-foreground\">Confidence:</span>{' '}\n {(step.confidence * 100).toFixed(1)}%\n </div>\n )}\n </AccordionContent>\n </AccordionItem>\n ))}\n </Accordion>\n </div>\n );\n}\n",
47
+ "import { FileIcon, Image as ImageIcon, Music, Paperclip, Video } from 'lucide-react';\nimport { FilePreviewCard } from '../../components/file-preview-card';\nimport { cn } from '../../lib/cn';\nimport { useAgnoMessageContext } from './context';\n\nexport function AgnoMessageMedia() {\n const {\n message,\n classNames,\n showImageLightbox,\n showFilePreview,\n openImageLightbox,\n openFilePreview,\n } = useAgnoMessageContext();\n const mediaClassName = classNames?.assistant?.media;\n\n const hasImages = !!message.images && message.images.length > 0;\n const hasVideos = !!message.videos && message.videos.length > 0;\n const hasAudio = !!message.audio && message.audio.length > 0;\n const hasFiles = !!message.files && message.files.length > 0;\n const hasResponseAudio = !!message.response_audio;\n\n if (!hasImages && !hasVideos && !hasAudio && !hasFiles && !hasResponseAudio) return null;\n\n return (\n <>\n {hasImages && (\n <div className={cn('space-y-2 pt-1', mediaClassName)}>\n <div className=\"flex items-center gap-2 text-xs font-medium text-muted-foreground\">\n <ImageIcon className=\"h-3.5 w-3.5\" />\n Images ({message.images!.length})\n </div>\n <div className=\"grid grid-cols-2 gap-2\">\n {message.images!.map((img, idx) => (\n <div key={idx} className=\"space-y-1\">\n {showImageLightbox ? (\n <button\n type=\"button\"\n onClick={() =>\n openImageLightbox(\n message.images!.map((i) => ({ url: i.url, alt: i.revised_prompt })),\n idx,\n )\n }\n className=\"group relative w-full overflow-hidden rounded-lg border border-border cursor-pointer hover:border-primary/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring transition-colors\"\n >\n <img\n src={img.url}\n alt={img.revised_prompt || 'Generated image'}\n className=\"w-full rounded-lg\"\n />\n </button>\n ) : (\n <img\n src={img.url}\n alt={img.revised_prompt || 'Generated image'}\n className=\"w-full rounded-lg border border-border\"\n />\n )}\n {img.revised_prompt && (\n <p className=\"text-[11px] text-muted-foreground italic px-0.5\">\n {img.revised_prompt}\n </p>\n )}\n </div>\n ))}\n </div>\n </div>\n )}\n\n {hasVideos && (\n <div className={cn('space-y-2 pt-1', mediaClassName)}>\n <div className=\"flex items-center gap-2 text-xs font-medium text-muted-foreground\">\n <Video className=\"h-3.5 w-3.5\" />\n Videos ({message.videos!.length})\n </div>\n <div className=\"space-y-2\">\n {message.videos!.map((video, idx) => (\n <div key={idx}>\n {video.url ? (\n <video src={video.url} controls className=\"w-full rounded-lg border border-border\" />\n ) : (\n <div className=\"bg-muted/50 border border-border p-2.5 rounded-lg text-xs text-muted-foreground\">\n Video ID: {video.id} (ETA: {video.eta}s)\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n )}\n\n {hasAudio && (\n <div className={cn('space-y-2 pt-1', mediaClassName)}>\n <div className=\"flex items-center gap-2 text-xs font-medium text-muted-foreground\">\n <Music className=\"h-3.5 w-3.5\" />\n Audio ({message.audio!.length})\n </div>\n <div className=\"space-y-2\">\n {message.audio!.map((audio, idx) => (\n <div key={idx}>\n {audio.url ? (\n <audio src={audio.url} controls className=\"w-full\" />\n ) : audio.base64_audio ? (\n <audio\n src={`data:${audio.mime_type || 'audio/wav'};base64,${audio.base64_audio}`}\n controls\n className=\"w-full\"\n />\n ) : (\n <div className=\"bg-muted/50 border border-border p-2.5 rounded-lg text-xs text-muted-foreground\">\n Audio data unavailable\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n )}\n\n {hasFiles && (\n <div className={cn('space-y-2 pt-1', mediaClassName)}>\n <div className=\"flex items-center gap-2 text-xs font-medium text-muted-foreground\">\n <Paperclip className=\"h-3.5 w-3.5\" />\n Files ({message.files!.length})\n </div>\n <div className=\"flex flex-wrap gap-2\">\n {message.files!.map((file, idx) =>\n showFilePreview ? (\n <FilePreviewCard\n key={idx}\n file={{ name: file.name, type: file.type, url: file.url, size: file.size }}\n onClick={() =>\n openFilePreview({ name: file.name, type: file.type, url: file.url, size: file.size })\n }\n />\n ) : (\n <div\n key={idx}\n className=\"flex items-center gap-2 rounded-lg border border-border px-3 py-2 text-xs bg-muted/30 hover:bg-muted/50 transition-colors\"\n >\n <FileIcon className=\"h-3.5 w-3.5 shrink-0 text-muted-foreground\" />\n <span className=\"truncate max-w-[180px]\">{file.name}</span>\n {file.size && (\n <span className=\"text-muted-foreground/70\">\n ({(file.size / 1024).toFixed(1)}KB)\n </span>\n )}\n {file.url && /^https?:\\/\\//i.test(file.url) && (\n <a\n href={file.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-primary hover:underline font-medium\"\n >\n View\n </a>\n )}\n </div>\n ),\n )}\n </div>\n </div>\n )}\n\n {hasResponseAudio && message.response_audio && (\n <div className={cn('space-y-2 pt-1', mediaClassName)}>\n <div className=\"flex items-center gap-2 text-xs font-medium text-muted-foreground\">\n <Music className=\"h-3.5 w-3.5\" />\n Response Audio\n </div>\n {message.response_audio.transcript && (\n <div className=\"text-xs italic bg-muted/50 border border-border p-2.5 rounded-lg text-muted-foreground\">\n \"{message.response_audio.transcript}\"\n </div>\n )}\n {message.response_audio.content && (\n <audio\n src={`data:audio/wav;base64,${message.response_audio.content}`}\n controls\n className=\"w-full\"\n />\n )}\n </div>\n )}\n </>\n );\n}\n",
48
+ "import { createContext, useContext } from 'react';\nimport type { RefObject } from 'react';\nimport type { ChatMessage, ClientState, ToolCall } from '@rodrigocoliveira/agno-types';\nimport type { RenderTool } from './render-tool';\n\nexport interface AgnoChatContextValue {\n // From useAgnoChat()\n messages: ChatMessage[];\n sendMessage: (\n message: string | FormData,\n options?: { headers?: Record<string, string>; params?: Record<string, string> },\n ) => Promise<void>;\n clearMessages: () => void;\n cancelRun: () => Promise<void>;\n isStreaming: boolean;\n isRefreshing: boolean;\n isCancelling: boolean;\n currentRunId?: string;\n error?: string;\n state: ClientState;\n\n // From useAgnoToolExecution()\n isPaused: boolean;\n isExecuting: boolean;\n pendingTools: ToolCall[];\n executeAndContinue: () => Promise<void>;\n executeTools: (tools: ToolCall[]) => Promise<ToolCall[]>;\n continueWithResults: (\n tools: ToolCall[],\n options?: { headers?: Record<string, string>; params?: Record<string, string> },\n ) => Promise<void>;\n executionError?: string;\n\n // Derived convenience\n handleSend: (message: string | FormData) => Promise<void>;\n inputDisabled: boolean;\n\n // Drop zone\n dropZoneContainerRef?: RefObject<HTMLElement | null>;\n\n // Tool rendering\n renderTool?: RenderTool;\n isDebug: boolean;\n}\n\nexport const AgnoChatContext = createContext<AgnoChatContextValue | null>(null);\n\nexport function useAgnoChatContext(): AgnoChatContextValue {\n const ctx = useContext(AgnoChatContext);\n if (!ctx) {\n throw new Error(\n 'useAgnoChatContext must be used within an <AgnoChat> provider. ' +\n 'Wrap your component tree with <AgnoChat>.',\n );\n }\n return ctx;\n}\n",
49
+ "/**\n * Generative UI Renderer\n *\n * Renders UI components based on specifications from the agent.\n * Supports both registry-based components and custom render functions.\n */\n\nimport React from 'react';\nimport type { UIComponentSpec } from '@rodrigocoliveira/agno-types';\nimport { getComponentRegistry } from '../utils/component-registry';\nimport { getCustomRender } from '../hooks/useAgnoToolExecution';\n\nexport interface GenerativeUIRendererProps {\n /** The UI component specification to render */\n spec: UIComponentSpec;\n /** Optional className for styling */\n className?: string;\n /** Error boundary fallback */\n onError?: (error: Error) => void;\n}\n\n/**\n * Error Boundary for UI rendering errors\n */\nclass UIErrorBoundary extends React.Component<\n { children: React.ReactNode; onError?: (error: Error) => void; fallback?: React.ReactNode },\n { hasError: boolean; error?: Error }\n> {\n constructor(props: any) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(error: Error) {\n return { hasError: true, error };\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n console.error('[GenerativeUIRenderer] Error rendering component:', error, errorInfo);\n this.props.onError?.(error);\n }\n\n render() {\n if (this.state.hasError) {\n return (\n this.props.fallback || (\n <div className=\"p-4 border border-red-300 rounded-md bg-red-50 text-red-800\">\n <p className=\"font-semibold\">Failed to render UI component</p>\n <p className=\"text-sm mt-1\">{this.state.error?.message || 'Unknown error'}</p>\n </div>\n )\n );\n }\n\n return this.props.children;\n }\n}\n\n/**\n * Main Generative UI Renderer component\n */\nexport function GenerativeUIRenderer({\n spec,\n className,\n onError,\n}: GenerativeUIRendererProps): React.ReactElement {\n const registry = getComponentRegistry();\n\n // Handle custom render functions\n if (spec.type === 'custom') {\n const customSpec = spec as any;\n if (customSpec.renderKey) {\n const renderFn = getCustomRender(customSpec.renderKey);\n if (renderFn) {\n return (\n <UIErrorBoundary onError={onError}>\n <div className={className}>{renderFn(customSpec.props || {})}</div>\n </UIErrorBoundary>\n );\n }\n }\n // Fallback if custom render not found\n return (\n <div className={`p-4 border border-yellow-300 rounded-md bg-yellow-50 text-yellow-800 ${className || ''}`}>\n <p className=\"font-semibold\">Custom component not available</p>\n <p className=\"text-sm mt-1\">The custom render function for this component is not available.</p>\n </div>\n );\n }\n\n // Handle chart components\n if (spec.type === 'chart') {\n const chartSpec = spec as any;\n const chartType = `chart:${chartSpec.component}`;\n\n if (registry.has(chartType)) {\n const ChartRenderer = registry.get(chartType)!;\n return (\n <UIErrorBoundary onError={onError}>\n <div className={className}>\n {chartSpec.title && <h3 className=\"font-semibold mb-2\">{chartSpec.title}</h3>}\n {chartSpec.description && <p className=\"text-sm text-gray-600 mb-4\">{chartSpec.description}</p>}\n <ChartRenderer {...chartSpec.props} />\n </div>\n </UIErrorBoundary>\n );\n }\n\n // Fallback: render data as JSON\n return (\n <div className={`p-4 border border-gray-300 rounded-md ${className || ''}`}>\n <p className=\"font-semibold mb-2\">{chartSpec.title || 'Chart Data'}</p>\n {chartSpec.description && <p className=\"text-sm text-gray-600 mb-2\">{chartSpec.description}</p>}\n <pre className=\"text-xs bg-gray-100 p-2 rounded overflow-auto\">\n {JSON.stringify(chartSpec.props.data, null, 2)}\n </pre>\n </div>\n );\n }\n\n // Handle card grid\n if (spec.type === 'card-grid') {\n const cardGridSpec = spec as any;\n if (registry.has('card-grid')) {\n const CardGridRenderer = registry.get('card-grid')!;\n return (\n <UIErrorBoundary onError={onError}>\n <div className={className}>\n {cardGridSpec.title && <h3 className=\"font-semibold mb-2\">{cardGridSpec.title}</h3>}\n {cardGridSpec.description && <p className=\"text-sm text-gray-600 mb-4\">{cardGridSpec.description}</p>}\n <CardGridRenderer {...cardGridSpec.props} />\n </div>\n </UIErrorBoundary>\n );\n }\n }\n\n // Handle table\n if (spec.type === 'table') {\n const tableSpec = spec as any;\n if (registry.has('table')) {\n const TableRenderer = registry.get('table')!;\n return (\n <UIErrorBoundary onError={onError}>\n <div className={className}>\n {tableSpec.title && <h3 className=\"font-semibold mb-2\">{tableSpec.title}</h3>}\n {tableSpec.description && <p className=\"text-sm text-gray-600 mb-4\">{tableSpec.description}</p>}\n <TableRenderer {...tableSpec.props} />\n </div>\n </UIErrorBoundary>\n );\n }\n }\n\n // Handle markdown\n if (spec.type === 'markdown') {\n const markdownSpec = spec as any;\n if (registry.has('markdown')) {\n const MarkdownRenderer = registry.get('markdown')!;\n return (\n <UIErrorBoundary onError={onError}>\n <div className={className}>\n <MarkdownRenderer {...markdownSpec.props} />\n </div>\n </UIErrorBoundary>\n );\n }\n // Fallback: render as plain text\n return <div className={className}>{markdownSpec.props.content}</div>;\n }\n\n // Handle artifact (container with multiple children)\n if (spec.type === 'artifact') {\n const artifactSpec = spec as any;\n return (\n <UIErrorBoundary onError={onError}>\n <div className={`p-4 border rounded-md ${className || ''}`}>\n {artifactSpec.title && <h3 className=\"font-semibold mb-4\">{artifactSpec.title}</h3>}\n {artifactSpec.description && <p className=\"text-sm text-gray-600 mb-4\">{artifactSpec.description}</p>}\n <div className=\"space-y-4\">\n {artifactSpec.props.content?.map((childSpec: UIComponentSpec, index: number) => (\n <GenerativeUIRenderer key={index} spec={childSpec} onError={onError} />\n ))}\n </div>\n </div>\n </UIErrorBoundary>\n );\n }\n\n // Unknown type fallback\n return (\n <div className={`p-4 border border-gray-300 rounded-md ${className || ''}`}>\n <p className=\"font-semibold\">Unsupported UI component</p>\n <p className=\"text-sm text-gray-600 mt-1\">Component type: {spec.type}</p>\n </div>\n );\n}\n",
50
+ "/**\n * Component Registry for Generative UI\n *\n * Maps component specifications to actual React components.\n * Allows registering custom components at runtime.\n */\n\n/**\n * Component renderer function type\n */\nexport type ComponentRenderer = (props: any) => any; // React.ReactNode in React context\n\n/**\n * Component registry class\n */\nexport class ComponentRegistry {\n private static instance: ComponentRegistry;\n private components: Map<string, ComponentRenderer> = new Map();\n\n private constructor() {\n // Private constructor for singleton\n }\n\n /**\n * Get the singleton instance\n */\n static getInstance(): ComponentRegistry {\n if (!ComponentRegistry.instance) {\n ComponentRegistry.instance = new ComponentRegistry();\n }\n return ComponentRegistry.instance;\n }\n\n /**\n * Register a component renderer\n */\n register(type: string, renderer: ComponentRenderer): void {\n this.components.set(type, renderer);\n }\n\n /**\n * Register multiple components at once\n */\n registerBatch(components: Record<string, ComponentRenderer>): void {\n Object.entries(components).forEach(([type, renderer]) => {\n this.register(type, renderer);\n });\n }\n\n /**\n * Get a registered component renderer\n */\n get(type: string): ComponentRenderer | undefined {\n return this.components.get(type);\n }\n\n /**\n * Check if a component is registered\n */\n has(type: string): boolean {\n return this.components.has(type);\n }\n\n /**\n * Unregister a component\n */\n unregister(type: string): void {\n this.components.delete(type);\n }\n\n /**\n * Get all registered component types\n */\n getRegisteredTypes(): string[] {\n return Array.from(this.components.keys());\n }\n\n /**\n * Clear all registered components\n */\n clear(): void {\n this.components.clear();\n }\n}\n\n/**\n * Get the global component registry instance\n */\nexport function getComponentRegistry(): ComponentRegistry {\n return ComponentRegistry.getInstance();\n}\n\n/**\n * Helper to register a chart component\n */\nexport function registerChartComponent(name: string, renderer: ComponentRenderer): void {\n getComponentRegistry().register(`chart:${name}`, renderer);\n}\n\n/**\n * Helper to get a chart component\n */\nexport function getChartComponent(name: string): ComponentRenderer | undefined {\n return getComponentRegistry().get(`chart:${name}`);\n}\n",
51
+ "import { useState, useEffect, useCallback, useMemo } from 'react';\nimport type {\n ToolCall,\n UIComponentSpec,\n ToolHandlerResult,\n CustomRenderFunction\n} from '@rodrigocoliveira/agno-types';\nimport { useAgnoClient } from '../context/AgnoContext';\nimport { useToolHandlers } from '../context/ToolHandlerContext';\n\n/**\n * Tool handler function type (now supports generative UI)\n */\nexport type ToolHandler = (args: Record<string, any>) => Promise<any>;\n\n/**\n * Runtime registry for custom render functions (not serializable)\n * These are React components/functions that can't be stored in JSON\n */\nconst customRenderRegistry = new Map<string, CustomRenderFunction>();\n\n/**\n * Store a custom render function and return its unique key\n */\nfunction registerCustomRender(renderFn: CustomRenderFunction): string {\n const key = `custom-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n customRenderRegistry.set(key, renderFn);\n return key;\n}\n\n/**\n * Get a custom render function by key\n */\nexport function getCustomRender(key: string): CustomRenderFunction | undefined {\n return customRenderRegistry.get(key);\n}\n\n/**\n * Check if a value is a ToolHandlerResult with UI spec\n */\nfunction isToolHandlerResult(value: any): value is ToolHandlerResult {\n return value && typeof value === 'object' && ('data' in value || 'ui' in value);\n}\n\n/**\n * Check if a value is a UIComponentSpec\n */\nfunction isUIComponentSpec(value: any): value is UIComponentSpec {\n return value && typeof value === 'object' && 'type' in value;\n}\n\n/**\n * Process tool handler result and extract data/UI\n * Exported for use in session loading UI hydration\n */\nexport function processToolResult(result: any, _tool: ToolCall): {\n resultData: string;\n uiComponent?: any;\n} {\n // Case 1: ToolHandlerResult with data and ui\n if (isToolHandlerResult(result)) {\n const { data, ui } = result;\n\n let uiComponent: any = undefined;\n if (ui) {\n // Handle custom render functions\n if (ui.type === 'custom' && typeof (ui as any).render === 'function') {\n const renderKey = registerCustomRender((ui as any).render);\n uiComponent = {\n ...ui,\n renderKey,\n render: undefined, // Don't store the function itself\n };\n } else {\n // Serializable UI spec\n uiComponent = ui;\n }\n }\n\n return {\n resultData: typeof data === 'string' ? data : JSON.stringify(data),\n uiComponent,\n };\n }\n\n // Case 2: Direct UI component spec (no separate data)\n if (isUIComponentSpec(result)) {\n let uiComponent: any;\n if (result.type === 'custom' && typeof (result as any).render === 'function') {\n const renderKey = registerCustomRender((result as any).render);\n uiComponent = {\n ...result,\n renderKey,\n render: undefined,\n };\n } else {\n uiComponent = result;\n }\n\n return {\n resultData: JSON.stringify(result),\n uiComponent,\n };\n }\n\n // Case 3: Legacy format - plain data (backward compatible)\n return {\n resultData: typeof result === 'string' ? result : JSON.stringify(result),\n uiComponent: undefined,\n };\n}\n\n/**\n * Tool execution event payload\n */\nexport interface ToolExecutionEvent {\n runId?: string;\n sessionId?: string;\n tools: ToolCall[];\n}\n\n/**\n * Hook for handling frontend tool execution (HITL)\n *\n * **Note:** HITL (Human-in-the-Loop) frontend tool execution is only supported for agents.\n * Teams do not support the continue endpoint. This hook will log a warning and no-op if used with team mode.\n *\n * @param handlers - Map of tool names to handler functions (local handlers)\n * @param autoExecute - Whether to automatically execute tools when paused (default: true)\n *\n * @example\n * ```tsx\n * const toolHandlers = {\n * navigate_to_page: async (args) => {\n * window.location.href = args.url;\n * return { success: true };\n * },\n * fill_form: async (args) => {\n * document.querySelector(args.selector).value = args.value;\n * return { filled: true };\n * }\n * };\n *\n * const { isPaused, isExecuting, pendingTools } = useAgnoToolExecution(toolHandlers);\n * ```\n */\nexport function useAgnoToolExecution(\n handlers: Record<string, ToolHandler> = {},\n autoExecute: boolean = true,\n options?: { skipHydration?: string[] }\n) {\n const client = useAgnoClient();\n const toolHandlerContext = useToolHandlers();\n\n // Check if in team mode - teams don't support HITL\n const isTeamMode = client.getConfig().mode === 'team';\n\n // Log warning once if in team mode\n useEffect(() => {\n if (isTeamMode) {\n console.warn(\n '[useAgnoToolExecution] HITL (Human-in-the-Loop) frontend tool execution is not supported for teams. ' +\n 'Only agents support the continue endpoint. This hook will not function in team mode.'\n );\n }\n }, [isTeamMode]);\n\n // Merge global handlers with local handlers (local takes precedence)\n const mergedHandlers = useMemo(() => {\n const globalHandlers = toolHandlerContext?.handlers || {};\n return { ...globalHandlers, ...handlers };\n }, [toolHandlerContext?.handlers, handlers]);\n\n const [pendingTools, setPendingTools] = useState<ToolCall[]>([]);\n const [isPaused, setIsPaused] = useState(false);\n const [isExecuting, setIsExecuting] = useState(false);\n const [executionError, setExecutionError] = useState<string | undefined>();\n\n // Listen for run:paused events (only for agents, not teams)\n useEffect(() => {\n // Don't register listeners if in team mode\n if (isTeamMode) {\n return;\n }\n\n const handleRunPaused = (event: ToolExecutionEvent) => {\n setIsPaused(true);\n setPendingTools(event.tools);\n setExecutionError(undefined);\n };\n\n const handleRunContinued = () => {\n setIsPaused(false);\n setPendingTools([]);\n setIsExecuting(false);\n setExecutionError(undefined);\n };\n\n client.on('run:paused', handleRunPaused);\n client.on('run:continued', handleRunContinued);\n\n return () => {\n client.off('run:paused', handleRunPaused);\n client.off('run:continued', handleRunContinued);\n };\n }, [client, isTeamMode]);\n\n /**\n * Execute all pending tools and continue the run\n */\n const executeAndContinue = useCallback(async () => {\n if (!isPaused || pendingTools.length === 0) {\n console.warn('[useAgnoToolExecution] Cannot execute: no pending tools');\n return;\n }\n\n setIsExecuting(true);\n setExecutionError(undefined);\n\n try {\n // Execute each tool\n const updatedTools = await Promise.all(\n pendingTools.map(async (tool) => {\n const handler = mergedHandlers[tool.tool_name];\n\n if (!handler) {\n return {\n ...tool,\n result: JSON.stringify({\n error: `No handler registered for ${tool.tool_name}`,\n }),\n };\n }\n\n try {\n const result = await handler(tool.tool_args);\n\n // Process result to extract data and UI components\n const { resultData, uiComponent } = processToolResult(result, tool);\n\n return {\n ...tool,\n result: resultData,\n ui_component: uiComponent,\n } as ToolCall;\n } catch (error) {\n return {\n ...tool,\n result: JSON.stringify({\n error: error instanceof Error ? error.message : String(error),\n }),\n };\n }\n })\n );\n\n // Store UI components in the client's message store before continuing\n // This ensures the UI components are visible even if the backend doesn't echo them back\n const toolsWithUI = updatedTools.filter(t => (t as any).ui_component);\n if (toolsWithUI.length > 0) {\n // Emit a custom event with the UI data\n client.emit('ui:render', {\n tools: updatedTools,\n runId: client.getState().pausedRunId,\n });\n }\n\n // Add frontend-executed tool calls to the message before continuing\n // This ensures they appear in the UI and persist in the message\n client.addToolCallsToLastMessage(updatedTools);\n\n // Continue the run with results\n await client.continueRun(updatedTools);\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n setExecutionError(errorMessage);\n setIsExecuting(false);\n throw error;\n }\n }, [client, mergedHandlers, isPaused, pendingTools]);\n\n /**\n * Hydrate tool calls with UI when session loads\n */\n useEffect(() => {\n const handleSessionLoaded = async (_sessionId: string) => {\n const messages = client.getMessages();\n\n for (const message of messages) {\n if (!message.tool_calls) continue;\n\n for (const tool of message.tool_calls) {\n // Skip if already has UI\n if ((tool as any).ui_component) continue;\n\n // Skip HITL/interactive tools — re-invoking would trigger side effects (modals, panels).\n // Tools with a toolResultRenderer are handled at display time via the preserved result.\n if (options?.skipHydration?.includes(tool.tool_name)) continue;\n\n const handler = mergedHandlers[tool.tool_name];\n if (!handler) continue;\n\n try {\n const result = await handler(tool.tool_args);\n const { uiComponent } = processToolResult(result, tool);\n\n if (uiComponent) {\n client.hydrateToolCallUI(tool.tool_call_id, uiComponent);\n }\n } catch (err) {\n console.error(`Failed to hydrate UI for ${tool.tool_name}:`, err);\n }\n }\n }\n };\n\n client.on('session:loaded', handleSessionLoaded);\n return () => {\n client.off('session:loaded', handleSessionLoaded);\n };\n }, [client, mergedHandlers]);\n\n /**\n * Execute tools manually (for user confirmation flows)\n * Returns the updated tools with results set\n */\n const executeTools = useCallback(\n async (tools: ToolCall[]): Promise<ToolCall[]> => {\n return Promise.all(\n tools.map(async (tool) => {\n const handler = mergedHandlers[tool.tool_name];\n if (!handler) return tool;\n\n try {\n const result = await handler(tool.tool_args);\n\n // Process result to extract data and UI components\n const { resultData, uiComponent } = processToolResult(result, tool);\n\n return {\n ...tool,\n result: resultData,\n ui_component: uiComponent,\n } as ToolCall;\n } catch (error) {\n return {\n ...tool,\n result: JSON.stringify({\n error: error instanceof Error ? error.message : String(error),\n }),\n };\n }\n })\n );\n },\n [mergedHandlers]\n );\n\n /**\n * Manually continue the run with custom tool results\n */\n const continueWithResults = useCallback(\n async (tools: ToolCall[], options?: { headers?: Record<string, string>; params?: Record<string, string> }) => {\n if (!isPaused) {\n throw new Error('No paused run to continue');\n }\n setIsExecuting(true);\n try {\n await client.continueRun(tools, options);\n } catch (error) {\n setIsExecuting(false);\n throw error;\n }\n },\n [client, isPaused]\n );\n\n // Auto-execute when paused (if enabled)\n useEffect(() => {\n if (autoExecute && isPaused && !isExecuting && pendingTools.length > 0) {\n executeAndContinue();\n }\n }, [autoExecute, isPaused, isExecuting, pendingTools.length, executeAndContinue]);\n\n return {\n /** Whether the run is currently paused awaiting tool execution */\n isPaused,\n /** Whether tools are currently being executed */\n isExecuting,\n /** Tools awaiting execution */\n pendingTools,\n /** Execute all pending tools and continue the run */\n executeAndContinue,\n /** Execute specific tools and return results without continuing */\n executeTools,\n /** Continue the run with manually provided tool results */\n continueWithResults,\n /** Error from tool execution, if any */\n executionError,\n };\n}\n",
52
+ "import React, { createContext, useContext, useMemo, useEffect } from 'react';\nimport { AgnoClient } from '@rodrigocoliveira/agno-client';\nimport type { AgnoClientConfig } from '@rodrigocoliveira/agno-types';\n\n/**\n * Context for providing AgnoClient instance\n */\nconst AgnoContext = createContext<AgnoClient | null>(null);\n\nexport interface AgnoProviderProps {\n config: AgnoClientConfig;\n children: React.ReactNode;\n}\n\n/**\n * Provider component that creates and manages an AgnoClient instance\n */\nexport function AgnoProvider({ config, children }: AgnoProviderProps) {\n // Create client only once using useMemo (React best practice)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const client = useMemo(() => new AgnoClient(config), []);\n\n // Sync config changes to the client instance\n useEffect(() => {\n client.updateConfig(config);\n }, [client, config]);\n\n // Cleanup on unmount to prevent memory leaks\n useEffect(() => {\n return () => {\n // Remove all event listeners when provider unmounts\n client.removeAllListeners();\n };\n }, [client]);\n\n return (\n <AgnoContext.Provider value={client}>\n {children}\n </AgnoContext.Provider>\n );\n}\n\n/**\n * Hook to access the AgnoClient instance\n */\nexport function useAgnoClient(): AgnoClient {\n const client = useContext(AgnoContext);\n\n if (!client) {\n throw new Error('useAgnoClient must be used within an AgnoProvider');\n }\n\n return client;\n}\n",
53
+ "import React, { createContext, useContext, useState, useCallback } from 'react';\nimport type { ToolHandler } from '../hooks/useAgnoToolExecution';\n\n/**\n * Context value for tool handler registry\n */\nexport interface ToolHandlerContextValue {\n handlers: Record<string, ToolHandler>;\n registerHandler: (name: string, handler: ToolHandler) => void;\n unregisterHandler: (name: string) => void;\n}\n\n/**\n * Context for providing global tool handlers\n */\nconst ToolHandlerContext = createContext<ToolHandlerContextValue | null>(null);\n\nexport interface ToolHandlerProviderProps {\n handlers?: Record<string, ToolHandler>;\n children: React.ReactNode;\n}\n\n/**\n * Provider component that manages global tool handlers\n *\n * @example\n * ```tsx\n * const globalHandlers = {\n * fill_form: async (args) => {\n * // Implementation\n * return { success: true };\n * }\n * };\n *\n * <ToolHandlerProvider handlers={globalHandlers}>\n * <App />\n * </ToolHandlerProvider>\n * ```\n */\nexport function ToolHandlerProvider({ handlers: initialHandlers = {}, children }: ToolHandlerProviderProps) {\n const [handlers, setHandlers] = useState<Record<string, ToolHandler>>(initialHandlers);\n\n /**\n * Register a new tool handler or update an existing one\n */\n const registerHandler = useCallback((name: string, handler: ToolHandler) => {\n setHandlers(prev => ({ ...prev, [name]: handler }));\n }, []);\n\n /**\n * Unregister a tool handler\n */\n const unregisterHandler = useCallback((name: string) => {\n setHandlers(prev => {\n const { [name]: _, ...rest } = prev;\n return rest;\n });\n }, []);\n\n const value: ToolHandlerContextValue = {\n handlers,\n registerHandler,\n unregisterHandler,\n };\n\n return (\n <ToolHandlerContext.Provider value={value}>\n {children}\n </ToolHandlerContext.Provider>\n );\n}\n\n/**\n * Hook to access global tool handlers\n *\n * @returns Tool handler context value or null if not within ToolHandlerProvider\n *\n * @example\n * ```tsx\n * const { handlers, registerHandler } = useToolHandlers() || { handlers: {} };\n * ```\n */\nexport function useToolHandlers(): ToolHandlerContextValue | null {\n return useContext(ToolHandlerContext);\n}\n",
54
+ "import type { ToolCall } from '@rodrigocoliveira/agno-types';\nimport { Tool, ToolContent, ToolHeader, ToolInput, ToolOutput } from '../../components/tool';\nimport { Artifact } from '../../components/artifact';\nimport { GenerativeUIRenderer } from '../../../components/GenerativeUIRenderer';\nimport type { ToolState } from '../../types';\n\nexport interface ToolDebugCardProps {\n tool: ToolCall;\n defaultOpen?: boolean;\n}\n\nconst getToolState = (tool: ToolCall): ToolState =>\n tool.tool_call_error ? 'output-error' : 'output-available';\n\nexport function ToolDebugCard({ tool, defaultOpen }: ToolDebugCardProps) {\n const output = tool.result ?? tool.content;\n return (\n <Tool defaultOpen={defaultOpen}>\n <ToolHeader title={tool.tool_name} type=\"tool-use\" state={getToolState(tool)} />\n <ToolContent>\n <ToolInput input={tool.tool_args} />\n {output ? (\n <ToolOutput\n output={output}\n errorText={tool.tool_call_error ? 'Tool execution failed' : undefined}\n />\n ) : null}\n </ToolContent>\n </Tool>\n );\n}\n\nexport interface ToolGenerativeUIProps {\n tool: ToolCall;\n}\n\nexport function ToolGenerativeUI({ tool }: ToolGenerativeUIProps) {\n const uiComponent = (tool as ToolCall & { ui_component?: any }).ui_component;\n if (!uiComponent) return null;\n return uiComponent.layout === 'artifact' ? (\n <Artifact>\n <GenerativeUIRenderer spec={uiComponent} className=\"w-full p-2\" />\n </Artifact>\n ) : (\n <GenerativeUIRenderer spec={uiComponent} className=\"w-full\" />\n );\n}\n",
55
+ "import type { ReactNode } from 'react';\nimport { cn } from '../../lib/cn';\nimport { useAgnoChatContext } from '../agno-chat/context';\nimport { ToolDebugCard, ToolGenerativeUI } from '../agno-chat/tool-building-blocks';\nimport type { RenderTool } from '../agno-chat/render-tool';\nimport { useAgnoMessageContext } from './context';\n\nexport interface AgnoMessageToolsProps {\n /** Override the `renderTool` from context for this slot only */\n renderTool?: RenderTool;\n}\n\nexport function AgnoMessageTools({ renderTool: renderToolProp }: AgnoMessageToolsProps = {}) {\n const { message, classNames, renderTool: ctxMsgRenderTool } = useAgnoMessageContext();\n const { renderTool: ctxChatRenderTool, isDebug } = useAgnoChatContext();\n const renderTool = renderToolProp ?? ctxMsgRenderTool ?? ctxChatRenderTool;\n\n if (!message.tool_calls || message.tool_calls.length === 0) return null;\n\n return (\n <div className={cn('space-y-2 pt-1', classNames?.assistant?.toolCalls)}>\n {message.tool_calls.map((tool, idx) => {\n const defaultRender = (): ReactNode => (\n <>\n <ToolGenerativeUI tool={tool} />\n {isDebug ? <ToolDebugCard tool={tool} defaultOpen={idx === 0} /> : null}\n </>\n );\n const node = renderTool\n ? renderTool(tool, { index: idx, isDebug, defaultRender })\n : defaultRender();\n if (node === null || node === undefined) return null;\n return <div key={tool.tool_call_id || idx}>{node}</div>;\n })}\n </div>\n );\n}\n",
56
+ "import { Response } from '../../components/response';\nimport { useAgnoMessageContext } from './context';\n\nexport function AgnoMessageContent() {\n const { message } = useAgnoMessageContext();\n if (!message.content) return null;\n return (\n <div className=\"prose prose-sm dark:prose-invert max-w-none prose-p:leading-relaxed prose-pre:bg-muted prose-pre:border prose-pre:border-border\">\n <Response>{message.content}</Response>\n </div>\n );\n}\n",
57
+ "import { FileText } from 'lucide-react';\nimport { cn } from '../../lib/cn';\nimport { useAgnoMessageContext } from './context';\n\nexport function AgnoMessageReferences() {\n const { message, classNames } = useAgnoMessageContext();\n const references = message.extra_data?.references;\n if (!references || references.length === 0) return null;\n\n return (\n <div className={cn('space-y-2 pt-1', classNames?.assistant?.references)}>\n <div className=\"flex items-center gap-2 text-xs font-medium text-muted-foreground\">\n <FileText className=\"h-3.5 w-3.5\" />\n References ({references.length})\n </div>\n <div className=\"space-y-2\">\n {references.map((refData, idx) => (\n <div key={idx} className=\"text-xs space-y-1.5\">\n {refData.query && (\n <div className=\"font-medium text-foreground\">Query: {refData.query}</div>\n )}\n {refData.references.map((ref, refIdx) => (\n <div key={refIdx} className=\"bg-muted/50 border border-border p-2.5 rounded-lg\">\n <div className=\"italic text-muted-foreground mb-1\">\"{ref.content}\"</div>\n <div className=\"text-muted-foreground/70\">\n Source: {ref.name} (chunk {ref.meta_data.chunk}/{ref.meta_data.chunk_size})\n </div>\n </div>\n ))}\n </div>\n ))}\n </div>\n </div>\n );\n}\n",
58
+ "import { AlertCircle } from 'lucide-react';\nimport { SmartTimestamp } from '../../components/smart-timestamp';\nimport { formatSmartTimestamp } from '../../lib/format-timestamp';\nimport { cn } from '../../lib/cn';\nimport { useAgnoMessageContext } from './context';\n\nexport interface AgnoMessageFooterProps {\n /** Show timestamp (default: true) */\n showTimestamp?: boolean;\n}\n\nexport function AgnoMessageFooter({ showTimestamp = true }: AgnoMessageFooterProps = {}) {\n const { message, classNames, actions, isLastAssistantMessage, formatTimestamp } =\n useAgnoMessageContext();\n const hasError = message.streamingError;\n const isCustomTimestamp = !!formatTimestamp;\n const resolvedFormatTimestamp = formatTimestamp ?? formatSmartTimestamp;\n\n if (!actions?.assistant && !showTimestamp && !hasError) return null;\n\n return (\n <div className=\"flex items-center gap-2 pt-1\">\n {actions?.assistant && (() => {\n const visibility = actions.visibility ?? 'visible';\n if (visibility === 'last-assistant' && !isLastAssistantMessage) return null;\n\n const useHover =\n visibility === 'hover' ||\n (visibility === 'hover-last-visible' && !isLastAssistantMessage);\n\n return (\n <div\n className={cn(\n 'flex items-center gap-1 transition-opacity',\n useHover && 'opacity-0 group-hover/message:opacity-100',\n classNames?.assistant?.actions,\n )}\n >\n {actions.assistant(message)}\n </div>\n );\n })()}\n {hasError && (\n <span className=\"flex items-center gap-1 text-[11px] text-destructive\">\n <AlertCircle className=\"h-3 w-3\" />\n Error\n </span>\n )}\n {showTimestamp && (\n <SmartTimestamp\n date={new Date(message.created_at * 1000)}\n formatShort={isCustomTimestamp ? resolvedFormatTimestamp : undefined}\n className=\"text-[11px] text-muted-foreground\"\n />\n )}\n </div>\n );\n}\n",
59
+ "import type { ChatMessage } from '@rodrigocoliveira/agno-types';\nimport type { AgnoMessageClassNames, AgnoMessageAvatars, AgnoMessageActions } from '../types';\nimport type { RenderTool } from './agno-chat/render-tool';\nimport { AgnoMessage } from './agno-message/message';\n\nexport interface AgnoMessageItemProps {\n message: ChatMessage;\n className?: string;\n classNames?: AgnoMessageClassNames;\n avatars?: AgnoMessageAvatars;\n actions?: AgnoMessageActions;\n isLastAssistantMessage?: boolean;\n /** Show reasoning steps (default: true). Omit `<AgnoMessage.Reasoning />` in custom compositions for finer control. */\n showReasoning?: boolean;\n /** Show references (default: true). Omit `<AgnoMessage.References />` in custom compositions for finer control. */\n showReferences?: boolean;\n showTimestamp?: boolean;\n showFilePreview?: boolean;\n showImageLightbox?: boolean;\n formatTimestamp?: (date: Date) => string;\n renderTool?: RenderTool;\n}\n\n/**\n * Default message renderer used by `<AgnoChat.Messages>`. Renders the standard\n * slot order: Reasoning → Media → Tools → Content → References → Footer.\n *\n * For custom orderings or omissions, use `<AgnoMessage>` directly with the\n * sub-components: `<AgnoMessage.Content />`, `<AgnoMessage.Tools />`, etc.\n */\nexport function AgnoMessageItem({\n message,\n className,\n classNames,\n avatars,\n actions,\n isLastAssistantMessage = false,\n showReasoning = true,\n showReferences = true,\n showTimestamp = true,\n showFilePreview = true,\n showImageLightbox = true,\n formatTimestamp,\n renderTool,\n}: AgnoMessageItemProps) {\n return (\n <AgnoMessage\n message={message}\n className={className}\n classNames={classNames}\n avatars={avatars}\n actions={actions}\n isLastAssistantMessage={isLastAssistantMessage}\n showTimestamp={showTimestamp}\n showFilePreview={showFilePreview}\n showImageLightbox={showImageLightbox}\n formatTimestamp={formatTimestamp}\n renderTool={renderTool}\n >\n {showReasoning && <AgnoMessage.Reasoning />}\n <AgnoMessage.Media />\n <AgnoMessage.Tools />\n <AgnoMessage.Content />\n {showReferences && <AgnoMessage.References />}\n <AgnoMessage.Footer showTimestamp={showTimestamp} />\n </AgnoMessage>\n );\n}\n",
45
60
  "import {\n PromptInput,\n PromptInputProvider,\n PromptInputBody,\n PromptInputTextarea,\n PromptInputFooter,\n PromptInputTools,\n PromptInputSubmit,\n PromptInputHeader,\n PromptInputAttachments,\n PromptInputAttachment,\n PromptInputActionMenu,\n PromptInputActionMenuTrigger,\n PromptInputActionMenuContent,\n PromptInputActionAddAttachments,\n PromptInputDropZone,\n usePromptInputController,\n usePromptInputAttachments,\n type PromptInputMessage,\n} from '../components/prompt-input';\nimport type { PromptInputDropZoneProps } from '../components/prompt-input/drop-zone';\nimport { AudioRecorder } from '../components/audio-recorder';\nimport type { AudioRecorderLabels } from '../components/audio-recorder';\nimport { Button } from '../primitives/button';\nimport { CircleStop } from 'lucide-react';\nimport { cn } from '../lib/cn';\nimport type { AudioConfig, ChatStatus, FileUploadConfig } from '../types';\nimport type { ReactNode, RefObject } from 'react';\n\nconst DEFAULT_ACCEPTED_FILE_TYPES =\n 'image/*,audio/*,.pdf,.doc,.docx,.txt,.csv,.xlsx,.xls,.ppt,.pptx,.md,.json,.xml';\n\n/** Normalize `audio` prop: `true` → default config, `false`/`undefined` → undefined */\nfunction normalizeAudio(audio: AudioConfig | boolean | undefined): AudioConfig | undefined {\n if (audio === true) return { enabled: true };\n if (!audio) return undefined;\n return audio;\n}\n\nexport interface AgnoChatInputProps {\n onSend: (message: string | FormData) => void;\n disabled?: boolean;\n placeholder?: string;\n className?: string;\n /** File upload configuration */\n fileUpload?: FileUploadConfig;\n /**\n * Audio recording/transcription configuration.\n * Pass `true` for send-mode defaults, or an `AudioConfig` object.\n *\n * @example\n * audio={true}\n * audio={{ enabled: true, mode: 'transcribe', endpoint: 'http://...' }}\n */\n audio?: AudioConfig | boolean;\n /** Show attachments button (default: true) */\n showAttachments?: boolean;\n /** Override chat status for submit button icon */\n status?: ChatStatus;\n /** Whether a run is currently streaming */\n isStreaming?: boolean;\n /** Called when the user clicks stop during streaming */\n onCancel?: () => void;\n /** Show a stop button that cancels the run while streaming (default: false) */\n allowCancelRun?: boolean;\n /** Extra tools to add to the toolbar */\n extraTools?: ReactNode;\n /** Ref to a container element for rendering the drop zone overlay via portal */\n dropZoneContainerRef?: RefObject<HTMLElement | null>;\n /** Props forwarded to PromptInputDropZone (className, label) */\n dropZoneProps?: Partial<Pick<PromptInputDropZoneProps, 'label' | 'className'>>;\n}\n\nfunction dataUrlToBlob(dataUrl: string): Blob {\n const [header, base64] = dataUrl.split(',');\n const mime = header.match(/:(.*?);/)?.[1] || 'application/octet-stream';\n const bytes = atob(base64);\n const buf = new Uint8Array(bytes.length);\n for (let i = 0; i < bytes.length; i++) {\n buf[i] = bytes.charCodeAt(i);\n }\n return new Blob([buf], { type: mime });\n}\n\n/** Stop button shown during streaming when allowCancelRun is enabled */\nfunction CancelButton({ onCancel }: { onCancel: () => void }) {\n return (\n <Button\n type=\"button\"\n variant=\"destructive\"\n size=\"icon\"\n className=\"h-8 w-8 rounded-lg\"\n onClick={onCancel}\n aria-label=\"Stop\"\n >\n <CircleStop className=\"size-4\" />\n </Button>\n );\n}\n\n/** Submit button disabled until text exists */\nfunction SubmitButton({ disabled, status }: { disabled?: boolean; status?: ChatStatus }) {\n const { textInput } = usePromptInputController();\n const hasText = textInput.value.trim().length > 0;\n return <PromptInputSubmit disabled={disabled || !hasText} status={status} />;\n}\n\n/** Only renders the attachment header when files are present */\nfunction AttachmentHeader() {\n const { files } = usePromptInputAttachments();\n if (files.length === 0) return null;\n return (\n <PromptInputHeader>\n <PromptInputAttachments>\n {(attachment) => <PromptInputAttachment data={attachment} />}\n </PromptInputAttachments>\n </PromptInputHeader>\n );\n}\n\n/** Internal wrapper that accesses PromptInput context to set transcribed text */\nfunction TranscribeAudioRecorder({\n endpoint,\n headers,\n disabled,\n parseResponse,\n onRequestPermission,\n labels,\n}: {\n endpoint: string;\n headers?: Record<string, string>;\n disabled?: boolean;\n parseResponse?: (data: unknown) => string;\n onRequestPermission?: () => Promise<boolean>;\n labels?: AudioRecorderLabels;\n}) {\n const { textInput } = usePromptInputController();\n return (\n <AudioRecorder\n mode=\"transcribe\"\n transcriptionEndpoint={endpoint}\n transcriptionHeaders={headers}\n parseTranscriptionResponse={parseResponse}\n onRequestPermission={onRequestPermission}\n onRecordingComplete={() => {}}\n onTranscriptionComplete={(text) => {\n const current = textInput.value;\n textInput.setInput(current + (current ? ' ' : '') + text);\n }}\n disabled={disabled}\n labels={labels}\n />\n );\n}\n\nexport function AgnoChatInput({\n onSend,\n disabled,\n placeholder,\n className,\n fileUpload,\n audio,\n showAttachments = true,\n status,\n isStreaming,\n onCancel,\n allowCancelRun = false,\n extraTools,\n dropZoneContainerRef,\n dropZoneProps,\n}: AgnoChatInputProps) {\n const resolvedAudio = normalizeAudio(audio);\n const audioEnabled = resolvedAudio?.enabled ?? false;\n const audioMode = resolvedAudio?.mode ?? 'send';\n\n const handleSubmit = (message: PromptInputMessage) => {\n const text = message.text?.trim() || '';\n const files = message.files || [];\n\n if (!text) return;\n\n if (files.length === 0) {\n onSend(text);\n return;\n }\n\n const formData = new FormData();\n formData.append('message', text);\n\n for (const file of files) {\n if (!file.url) continue;\n const blob = file.url.startsWith('data:') ? dataUrlToBlob(file.url) : null;\n if (!blob) continue;\n const fileName = file.filename || 'file';\n formData.append('files', blob, fileName);\n }\n\n onSend(formData);\n };\n\n const handleAudioRecording = (blob: Blob) => {\n const formData = new FormData();\n formData.append('message', 'Audio message');\n formData.append('files', blob, `recording-${Date.now()}.wav`);\n onSend(formData);\n };\n\n const computedStatus = status ?? (disabled ? 'submitted' : undefined);\n const showCancelButton = allowCancelRun && isStreaming && onCancel;\n\n return (\n <PromptInputProvider>\n <PromptInput\n onSubmit={handleSubmit}\n accept={fileUpload?.accept ?? DEFAULT_ACCEPTED_FILE_TYPES}\n multiple={fileUpload?.multiple ?? true}\n maxFiles={fileUpload?.maxFiles}\n maxFileSize={fileUpload?.maxFileSize}\n globalDrop={!!dropZoneContainerRef}\n dragListenerTarget={dropZoneContainerRef}\n className={cn('w-full', className)}\n >\n <AttachmentHeader />\n <PromptInputBody>\n <PromptInputTextarea\n placeholder={placeholder || 'Type your message... (Enter to send, Shift+Enter for new line)'}\n disabled={disabled}\n />\n </PromptInputBody>\n <PromptInputFooter>\n <PromptInputTools>\n {showAttachments && (\n <PromptInputActionMenu>\n <PromptInputActionMenuTrigger />\n <PromptInputActionMenuContent>\n <PromptInputActionAddAttachments label=\"Add files\" />\n </PromptInputActionMenuContent>\n </PromptInputActionMenu>\n )}\n {audioEnabled &&\n (audioMode === 'transcribe' && resolvedAudio?.endpoint ? (\n <TranscribeAudioRecorder\n endpoint={resolvedAudio.endpoint}\n headers={resolvedAudio.headers}\n disabled={disabled}\n parseResponse={resolvedAudio.parseResponse}\n onRequestPermission={resolvedAudio.requestPermission}\n labels={resolvedAudio.labels as AudioRecorderLabels | undefined}\n />\n ) : (\n <AudioRecorder\n onRecordingComplete={handleAudioRecording}\n disabled={disabled}\n onRequestPermission={resolvedAudio?.requestPermission}\n labels={resolvedAudio?.labels as AudioRecorderLabels | undefined}\n />\n ))}\n {extraTools}\n </PromptInputTools>\n {showCancelButton ? (\n <CancelButton onCancel={onCancel} />\n ) : (\n <SubmitButton disabled={disabled} status={computedStatus} />\n )}\n </PromptInputFooter>\n {showAttachments && <PromptInputDropZone {...dropZoneProps} container={dropZoneContainerRef} />}\n </PromptInput>\n </PromptInputProvider>\n );\n}\n",
46
- "import { useCallback, useMemo, useRef } from 'react';\nimport type { HTMLAttributes, ReactNode } from 'react';\nimport { useAgnoChat, useAgnoToolExecution } from '@rodrigocoliveira/agno-react';\nimport type { ToolHandler } from '@rodrigocoliveira/agno-react';\nimport { AgnoChatContext } from './context';\nimport type { AgnoChatContextValue, ToolResultRenderer } from './context';\nimport { cn } from '../../lib/cn';\n\nexport interface AgnoChatRootProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n toolHandlers?: Record<string, ToolHandler>;\n autoExecuteTools?: boolean;\n toolResultRenderers?: Record<string, ToolResultRenderer>;\n}\n\nexport function AgnoChatRoot({\n children,\n toolHandlers = {},\n autoExecuteTools = true,\n toolResultRenderers,\n className,\n ...divProps\n}: AgnoChatRootProps) {\n const chat = useAgnoChat();\n const toolExec = useAgnoToolExecution(toolHandlers, autoExecuteTools, {\n skipHydration: toolResultRenderers ? Object.keys(toolResultRenderers) : undefined,\n });\n\n const containerRef = useRef<HTMLDivElement>(null);\n\n // Stable ref so handleSend never changes identity\n const sendRef = useRef(chat.sendMessage);\n sendRef.current = chat.sendMessage;\n\n const handleSend = useCallback(async (message: string | FormData) => {\n try {\n await sendRef.current(message);\n } catch {\n // Error is surfaced via the error state\n }\n }, []);\n\n // Destructure individual values for stable dependency tracking\n const {\n messages,\n sendMessage,\n clearMessages,\n cancelRun,\n isStreaming,\n isRefreshing,\n isCancelling,\n currentRunId,\n error,\n state,\n } = chat;\n\n const {\n isPaused,\n isExecuting,\n pendingTools,\n executeAndContinue,\n executeTools,\n continueWithResults,\n executionError,\n } = toolExec;\n\n const contextValue = useMemo<AgnoChatContextValue>(\n () => ({\n // chat\n messages,\n sendMessage,\n clearMessages,\n cancelRun,\n isStreaming,\n isRefreshing,\n isCancelling: isCancelling ?? false,\n currentRunId,\n error,\n state,\n\n // tool execution\n isPaused,\n isExecuting,\n pendingTools,\n executeAndContinue,\n executeTools,\n continueWithResults,\n executionError,\n\n // derived\n handleSend,\n inputDisabled: isStreaming || isPaused,\n\n // drop zone\n dropZoneContainerRef: containerRef,\n\n // tool result renderers\n toolResultRenderers,\n }),\n [\n messages,\n sendMessage,\n clearMessages,\n cancelRun,\n isStreaming,\n isRefreshing,\n isCancelling,\n currentRunId,\n error,\n state,\n isPaused,\n isExecuting,\n pendingTools,\n executeAndContinue,\n executeTools,\n continueWithResults,\n executionError,\n handleSend,\n toolResultRenderers,\n ],\n );\n\n return (\n <AgnoChatContext.Provider value={contextValue}>\n <div ref={containerRef} className={cn('relative h-full flex flex-col', className)} {...divProps}>\n {children}\n </div>\n </AgnoChatContext.Provider>\n );\n}\n",
47
- "import { createContext, useContext } from 'react';\nimport type { RefObject, ReactNode } from 'react';\nimport type { ChatMessage, ClientState, ToolCall } from '@rodrigocoliveira/agno-types';\n\nexport type ToolResultRenderer = (args: Record<string, any>, content: string) => ReactNode;\n\nexport interface AgnoChatContextValue {\n // From useAgnoChat()\n messages: ChatMessage[];\n sendMessage: (\n message: string | FormData,\n options?: { headers?: Record<string, string>; params?: Record<string, string> },\n ) => Promise<void>;\n clearMessages: () => void;\n cancelRun: () => Promise<void>;\n isStreaming: boolean;\n isRefreshing: boolean;\n isCancelling: boolean;\n currentRunId?: string;\n error?: string;\n state: ClientState;\n\n // From useAgnoToolExecution()\n isPaused: boolean;\n isExecuting: boolean;\n pendingTools: ToolCall[];\n executeAndContinue: () => Promise<void>;\n executeTools: (tools: ToolCall[]) => Promise<ToolCall[]>;\n continueWithResults: (\n tools: ToolCall[],\n options?: { headers?: Record<string, string>; params?: Record<string, string> },\n ) => Promise<void>;\n executionError?: string;\n\n // Derived convenience\n handleSend: (message: string | FormData) => Promise<void>;\n inputDisabled: boolean;\n\n // Drop zone\n dropZoneContainerRef?: RefObject<HTMLElement | null>;\n\n // Tool result renderers\n toolResultRenderers?: Record<string, ToolResultRenderer>;\n}\n\nexport const AgnoChatContext = createContext<AgnoChatContextValue | null>(null);\n\nexport function useAgnoChatContext(): AgnoChatContextValue {\n const ctx = useContext(AgnoChatContext);\n if (!ctx) {\n throw new Error(\n 'useAgnoChatContext must be used within an <AgnoChat> provider. ' +\n 'Wrap your component tree with <AgnoChat>.',\n );\n }\n return ctx;\n}\n",
48
- "import type { ChatMessage, ToolCall } from '@rodrigocoliveira/agno-types';\nimport { useEffect, useRef, type ReactNode } from 'react';\nimport {\n Conversation,\n ConversationContent,\n ConversationEmptyState,\n ConversationScrollButton,\n useStickToBottomContext,\n} from '../../components/conversation';\nimport { StreamingIndicator } from '../../components/streaming-indicator';\nimport { AgnoMessageItem } from '../AgnoMessageItem';\nimport type { AgnoMessageItemProps } from '../AgnoMessageItem';\nimport { AgnoChatSuggestedPrompts } from './suggested-prompts';\nimport { useAgnoChatContext } from './context';\nimport type { ToolResultRenderer } from './context';\nimport { cn } from '../../lib/cn';\nimport { Bot } from 'lucide-react';\nimport type { AgnoMessageClassNames, AgnoMessageAvatars, AgnoMessageActions, SuggestedPrompt } from '../../types';\n\nexport interface AgnoChatMessagesProps {\n className?: string;\n renderMessage?: (message: ChatMessage, index: number) => ReactNode;\n\n /** Grouped avatar configuration */\n avatars?: AgnoMessageAvatars;\n\n /** Grouped action buttons configuration with visibility control */\n actions?: AgnoMessageActions;\n\n // ── Message display options ────────────────────────────────────────\n /** Show reasoning steps (default: true) */\n showReasoning?: boolean;\n /** Show references (default: true) */\n showReferences?: boolean;\n /** Show timestamp (default: true) */\n showTimestamp?: boolean;\n /** Show generative UI renders (default: true) */\n showGenerativeUI?: boolean;\n /** Show tool call details (default: true) */\n showToolCalls?: boolean;\n /** Enable file preview cards with click-to-open modal (default: true) */\n showFilePreview?: boolean;\n /** Enable image lightbox on click (default: true) */\n showImageLightbox?: boolean;\n /** Custom render for individual tool calls */\n renderToolCall?: (tool: ToolCall, index: number) => ReactNode;\n /** Custom render for the entire message content area */\n renderContent?: (message: ChatMessage) => ReactNode;\n /** Custom render for media sections */\n renderMedia?: (message: ChatMessage) => ReactNode;\n /** Custom timestamp formatter */\n formatTimestamp?: (date: Date) => string;\n /** ClassNames override map for message item sections */\n messageClassNames?: AgnoMessageClassNames;\n /** Per-tool renderers for displaying results inline in chat (live and on session reload) */\n toolResultRenderers?: Record<string, ToolResultRenderer>;\n\n // ── Empty state ──────────────────────────────────────────────────\n emptyState?: ReactNode;\n suggestedPrompts?: SuggestedPrompt[];\n /** Custom empty state via children — takes priority over emptyState prop */\n children?: ReactNode;\n\n // ── Thinking indicator ───────────────────────────────────────────\n /** Show the thinking indicator while waiting for the first response content (default: true) */\n showThinkingIndicator?: boolean;\n /** Custom component to render instead of the default thinking indicator */\n renderThinkingIndicator?: ReactNode;\n}\n\n/** Scrolls to bottom only when the user sends a new message */\nfunction ScrollOnNewUserMessage({ messageCount }: { messageCount: number }) {\n const { scrollToBottom } = useStickToBottomContext();\n const prevCount = useRef(messageCount);\n\n useEffect(() => {\n if (messageCount > prevCount.current) {\n scrollToBottom('smooth');\n }\n prevCount.current = messageCount;\n }, [messageCount, scrollToBottom]);\n\n return null;\n}\n\nconst DEFAULT_PROMPTS: SuggestedPrompt[] = [\n { text: 'What can you help me with?' },\n { text: 'Explain how you work' },\n];\n\nexport function AgnoChatMessages({\n className,\n renderMessage,\n avatars,\n actions,\n // Message display options\n showReasoning,\n showReferences,\n showTimestamp,\n showGenerativeUI,\n showToolCalls,\n showFilePreview,\n showImageLightbox,\n renderToolCall,\n renderContent,\n renderMedia,\n formatTimestamp,\n messageClassNames,\n // Empty state\n emptyState,\n suggestedPrompts = DEFAULT_PROMPTS,\n children,\n // Thinking indicator\n showThinkingIndicator = true,\n renderThinkingIndicator,\n toolResultRenderers: propToolResultRenderers,\n}: AgnoChatMessagesProps) {\n const { messages, isStreaming, toolResultRenderers: contextToolResultRenderers } = useAgnoChatContext();\n const toolResultRenderers = propToolResultRenderers ?? contextToolResultRenderers;\n const lastMessage = messages[messages.length - 1];\n const isThinking = showThinkingIndicator && isStreaming && (!lastMessage || lastMessage.role !== 'user') && !lastMessage?.content;\n\n // Find the index of the last assistant message (for visibility logic)\n let lastAssistantIndex = -1;\n for (let i = messages.length - 1; i >= 0; i--) {\n if (messages[i].role !== 'user') {\n lastAssistantIndex = i;\n break;\n }\n }\n\n // Build message item props from direct props\n const messageItemProps: Partial<Omit<AgnoMessageItemProps, 'message'>> = {\n ...(showReasoning !== undefined && { showReasoning }),\n ...(showReferences !== undefined && { showReferences }),\n ...(showTimestamp !== undefined && { showTimestamp }),\n ...(showGenerativeUI !== undefined && { showGenerativeUI }),\n ...(showToolCalls !== undefined && { showToolCalls }),\n ...(showFilePreview !== undefined && { showFilePreview }),\n ...(showImageLightbox !== undefined && { showImageLightbox }),\n ...(renderToolCall !== undefined && { renderToolCall }),\n ...(renderContent !== undefined && { renderContent }),\n ...(renderMedia !== undefined && { renderMedia }),\n ...(formatTimestamp !== undefined && { formatTimestamp }),\n ...(messageClassNames !== undefined && { classNames: messageClassNames }),\n ...(toolResultRenderers !== undefined && { toolResultRenderers }),\n };\n\n const resolvedEmptyState = children ??\n emptyState ?? (\n <div className=\"flex flex-col items-center gap-6\">\n <div className=\"relative\">\n <div className=\"h-16 w-16 rounded-2xl bg-primary/10 flex items-center justify-center\">\n <Bot className=\"h-8 w-8 text-primary\" />\n </div>\n <div className=\"absolute -bottom-1 -right-1 h-5 w-5 rounded-full bg-green-500 border-2 border-background flex items-center justify-center\">\n <span className=\"h-2 w-2 rounded-full bg-white animate-pulse\" />\n </div>\n </div>\n <div className=\"space-y-2 text-center\">\n <h3 className=\"text-xl font-semibold tracking-tight\">Welcome to Agno Chat</h3>\n <p className=\"text-muted-foreground text-sm max-w-sm\">\n Start a conversation with your AI agent. Ask questions, explore ideas, or run tools.\n </p>\n </div>\n {suggestedPrompts.length > 0 && <AgnoChatSuggestedPrompts prompts={suggestedPrompts} />}\n </div>\n );\n\n return (\n <Conversation className={cn('relative flex-1 w-full', className)}>\n <ScrollOnNewUserMessage messageCount={messages.length} />\n <ConversationContent className=\"max-w-3xl mx-auto\">\n {messages.length === 0 ? (\n <ConversationEmptyState>{resolvedEmptyState}</ConversationEmptyState>\n ) : (\n messages.map((message, index) => {\n // Hide the empty placeholder while the thinking indicator is shown\n if (isThinking && index === messages.length - 1 && message === lastMessage) return null;\n return renderMessage ? (\n renderMessage(message, index)\n ) : (\n <AgnoMessageItem\n key={`msg-${index}-${message.created_at}`}\n message={message}\n avatars={avatars}\n actions={actions}\n isLastAssistantMessage={index === lastAssistantIndex}\n {...messageItemProps}\n />\n );\n })\n )}\n\n {isThinking && (\n <div className=\"py-2\">\n {renderThinkingIndicator ?? <StreamingIndicator avatar={avatars?.assistant} />}\n </div>\n )}\n </ConversationContent>\n <ConversationScrollButton />\n </Conversation>\n );\n}\n",
61
+ "import type { ReactNode } from 'react';\nimport type { ToolCall } from '@rodrigocoliveira/agno-types';\n\nexport type ToolRenderArgs = {\n index: number;\n isDebug: boolean;\n defaultRender: () => ReactNode;\n};\n\nexport type RenderTool = (tool: ToolCall, args: ToolRenderArgs) => ReactNode | null;\n\nexport type ToolEntry = false | RenderTool;\n\nexport function byToolName(\n map: Record<string, ToolEntry>,\n fallback?: RenderTool,\n): RenderTool {\n return (tool, args) => {\n // hasOwnProperty guard so tool names like 'toString' / 'constructor' /\n // '__proto__' don't resolve to Object.prototype methods.\n if (!Object.prototype.hasOwnProperty.call(map, tool.tool_name)) {\n return fallback ? fallback(tool, args) : args.defaultRender();\n }\n const entry = map[tool.tool_name];\n if (entry === false) return null;\n return entry(tool, args);\n };\n}\n",
62
+ "import { useCallback, useMemo, useRef } from 'react';\nimport type { HTMLAttributes, ReactNode } from 'react';\nimport { useAgnoChat, useAgnoToolExecution } from '@rodrigocoliveira/agno-react';\nimport type { ToolHandler } from '@rodrigocoliveira/agno-react';\nimport { AgnoChatContext } from './context';\nimport type { AgnoChatContextValue } from './context';\nimport type { RenderTool } from './render-tool';\nimport { cn } from '../../lib/cn';\n\nfunction resolveDebug(debug?: boolean): boolean {\n if (typeof debug === 'boolean') return debug;\n // Default-off: only auto-enable when NODE_ENV is explicitly 'development'.\n // Avoids leaking the debug card in production builds where `process` exists\n // but `process.env` is missing or NODE_ENV is unset (some edge runtimes,\n // partial polyfills, builds without bundler substitution).\n return typeof process !== 'undefined' && process.env?.NODE_ENV === 'development';\n}\n\nexport interface AgnoChatRootProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n toolHandlers?: Record<string, ToolHandler>;\n autoExecuteTools?: boolean;\n /**\n * Single per-tool render function. Receives the tool plus `{ index, isDebug, defaultRender }`.\n * Return `null` to hide, return `defaultRender()` to fall back to the library default,\n * or return your own JSX. Use the `byToolName` helper for the common dispatch-by-name case.\n */\n renderTool?: RenderTool;\n /**\n * When true, the default tool rendering includes the debug card. When false, only\n * user-facing content renders (generative UI from `tool.ui_component`, plus whatever\n * a custom `renderTool` returns).\n *\n * Default: auto-detected via `process.env.NODE_ENV !== 'production'`. Set explicitly\n * to investigate bugs in production (`debug={true}`) or preview the prod experience\n * in dev (`debug={false}`).\n */\n debug?: boolean;\n /**\n * Tool names whose handlers should NOT be re-invoked on session reload. Useful when\n * a tool produced a `result` you want to render as-is without re-executing side effects.\n */\n skipHydration?: string[];\n}\n\nexport function AgnoChatRoot({\n children,\n toolHandlers = {},\n autoExecuteTools = true,\n renderTool,\n debug,\n skipHydration,\n className,\n ...divProps\n}: AgnoChatRootProps) {\n const chat = useAgnoChat();\n const toolExec = useAgnoToolExecution(toolHandlers, autoExecuteTools, {\n skipHydration,\n });\n\n const containerRef = useRef<HTMLDivElement>(null);\n const isDebug = resolveDebug(debug);\n\n const sendRef = useRef(chat.sendMessage);\n sendRef.current = chat.sendMessage;\n\n const handleSend = useCallback(async (message: string | FormData) => {\n try {\n await sendRef.current(message);\n } catch {\n // Error is surfaced via the error state\n }\n }, []);\n\n const {\n messages,\n sendMessage,\n clearMessages,\n cancelRun,\n isStreaming,\n isRefreshing,\n isCancelling,\n currentRunId,\n error,\n state,\n } = chat;\n\n const {\n isPaused,\n isExecuting,\n pendingTools,\n executeAndContinue,\n executeTools,\n continueWithResults,\n executionError,\n } = toolExec;\n\n const contextValue = useMemo<AgnoChatContextValue>(\n () => ({\n messages,\n sendMessage,\n clearMessages,\n cancelRun,\n isStreaming,\n isRefreshing,\n isCancelling: isCancelling ?? false,\n currentRunId,\n error,\n state,\n isPaused,\n isExecuting,\n pendingTools,\n executeAndContinue,\n executeTools,\n continueWithResults,\n executionError,\n handleSend,\n inputDisabled: isStreaming || isPaused,\n dropZoneContainerRef: containerRef,\n renderTool,\n isDebug,\n }),\n [\n messages,\n sendMessage,\n clearMessages,\n cancelRun,\n isStreaming,\n isRefreshing,\n isCancelling,\n currentRunId,\n error,\n state,\n isPaused,\n isExecuting,\n pendingTools,\n executeAndContinue,\n executeTools,\n continueWithResults,\n executionError,\n handleSend,\n renderTool,\n isDebug,\n ],\n );\n\n return (\n <AgnoChatContext.Provider value={contextValue}>\n <div ref={containerRef} className={cn('relative h-full flex flex-col', className)} {...divProps}>\n {children}\n </div>\n </AgnoChatContext.Provider>\n );\n}\n",
63
+ "import type { ChatMessage } from '@rodrigocoliveira/agno-types';\nimport { isValidElement, useEffect, useRef, type ReactNode } from 'react';\nimport {\n Conversation,\n ConversationContent,\n ConversationEmptyState,\n ConversationScrollButton,\n useStickToBottomContext,\n} from '../../components/conversation';\nimport { StreamingIndicator } from '../../components/streaming-indicator';\nimport { AgnoMessageItem } from '../AgnoMessageItem';\nimport type { AgnoMessageItemProps } from '../AgnoMessageItem';\nimport { AgnoChatSuggestedPrompts } from './suggested-prompts';\nimport { useAgnoChatContext } from './context';\nimport type { RenderTool } from './render-tool';\nimport { cn } from '../../lib/cn';\nimport { Bot } from 'lucide-react';\nimport type {\n AgnoMessageClassNames,\n AgnoMessageAvatars,\n AgnoMessageActions,\n SuggestedPrompt,\n ScrollBehaviorConfig,\n} from '../../types';\n\nexport interface AgnoChatMessagesProps {\n className?: string;\n renderMessage?: (message: ChatMessage, index: number) => ReactNode;\n\n /** Grouped avatar configuration */\n avatars?: AgnoMessageAvatars;\n\n /** Grouped action buttons configuration with visibility control */\n actions?: AgnoMessageActions;\n\n // ── Message display options ────────────────────────────────────────\n /** Show reasoning steps (default: true) */\n showReasoning?: boolean;\n /** Show references (default: true) */\n showReferences?: boolean;\n /** Show timestamp (default: true) */\n showTimestamp?: boolean;\n /** Enable file preview cards with click-to-open modal (default: true) */\n showFilePreview?: boolean;\n /** Enable image lightbox on click (default: true) */\n showImageLightbox?: boolean;\n /** Custom timestamp formatter */\n formatTimestamp?: (date: Date) => string;\n /** ClassNames override map for message item sections */\n messageClassNames?: AgnoMessageClassNames;\n /**\n * Per-tool render function. Overrides the `renderTool` configured on `<AgnoChat>`\n * for this messages list. Use the `byToolName` helper for the common\n * dispatch-by-name case.\n */\n renderTool?: RenderTool;\n\n // ── Empty state ──────────────────────────────────────────────────\n emptyState?: ReactNode;\n suggestedPrompts?: SuggestedPrompt[];\n /** Custom empty state via children — takes priority over emptyState prop */\n children?: ReactNode;\n\n // ── Thinking indicator ───────────────────────────────────────────\n /** Show the thinking indicator while waiting for the first response content (default: true) */\n showThinkingIndicator?: boolean;\n /** Custom component to render instead of the default thinking indicator */\n renderThinkingIndicator?: ReactNode;\n\n // ── Scroll behavior ──────────────────────────────────────────────\n /**\n * Customize the auto-scroll behavior (powered by `use-stick-to-bottom`).\n * Defaults to `{ initial: 'smooth', resize: 'instant' }` — smooth initial\n * scroll, instant snap during streaming to avoid spring oscillation on\n * markdown/code/table reflow.\n */\n scrollBehavior?: ScrollBehaviorConfig;\n\n // ── Scroll-to-bottom button ──────────────────────────────────────\n /**\n * Controls the floating \"scroll to bottom\" button that appears when the\n * user scrolls up during streaming (the default affordance to resume\n * following the stream).\n *\n * - `undefined` (default) → render the built-in button\n * - `false` → hide the button entirely\n * - `true` → render the built-in button (same as default; useful for clarity)\n * - `{ className }` → render the built-in button with custom classes\n * - `ReactNode` → render your own element instead. Your component will be\n * placed inside `<Conversation>`, so it can use `useStickToBottomContext()`\n * to read `isAtBottom` and call `scrollToBottom()`.\n */\n scrollToBottomButton?: boolean | ReactNode | { className?: string };\n}\n\n/** Scrolls to bottom only when the user sends a new message */\nfunction ScrollOnNewUserMessage({ messageCount }: { messageCount: number }) {\n const { scrollToBottom } = useStickToBottomContext();\n const prevCount = useRef(messageCount);\n\n useEffect(() => {\n if (messageCount > prevCount.current) {\n scrollToBottom('smooth');\n }\n prevCount.current = messageCount;\n }, [messageCount, scrollToBottom]);\n\n return null;\n}\n\nconst DEFAULT_PROMPTS: SuggestedPrompt[] = [\n { text: 'What can you help me with?' },\n { text: 'Explain how you work' },\n];\n\nexport function AgnoChatMessages({\n className,\n renderMessage,\n avatars,\n actions,\n // Message display options\n showReasoning,\n showReferences,\n showTimestamp,\n showFilePreview,\n showImageLightbox,\n formatTimestamp,\n messageClassNames,\n // Empty state\n emptyState,\n suggestedPrompts = DEFAULT_PROMPTS,\n children,\n // Thinking indicator\n showThinkingIndicator = true,\n renderThinkingIndicator,\n renderTool: propRenderTool,\n scrollBehavior,\n scrollToBottomButton,\n}: AgnoChatMessagesProps) {\n const { messages, isStreaming } = useAgnoChatContext();\n const lastMessage = messages[messages.length - 1];\n const isThinking = showThinkingIndicator && isStreaming && (!lastMessage || lastMessage.role !== 'user') && !lastMessage?.content;\n\n // Resolve the scroll-to-bottom button prop into a rendered node (or null to hide).\n const resolvedScrollButton: ReactNode = (() => {\n if (scrollToBottomButton === false) return null;\n if (scrollToBottomButton === undefined || scrollToBottomButton === true) {\n return <ConversationScrollButton />;\n }\n if (isValidElement(scrollToBottomButton)) return scrollToBottomButton;\n if (\n typeof scrollToBottomButton === 'object' &&\n scrollToBottomButton !== null &&\n 'className' in scrollToBottomButton\n ) {\n return <ConversationScrollButton className={scrollToBottomButton.className} />;\n }\n // Any other ReactNode shape (string, number, fragment, array)\n return scrollToBottomButton as ReactNode;\n })();\n\n // Find the index of the last assistant message (for visibility logic)\n let lastAssistantIndex = -1;\n for (let i = messages.length - 1; i >= 0; i--) {\n if (messages[i].role !== 'user') {\n lastAssistantIndex = i;\n break;\n }\n }\n\n // Build message item props from direct props\n const messageItemProps: Partial<Omit<AgnoMessageItemProps, 'message'>> = {\n ...(showReasoning !== undefined && { showReasoning }),\n ...(showReferences !== undefined && { showReferences }),\n ...(showTimestamp !== undefined && { showTimestamp }),\n ...(showFilePreview !== undefined && { showFilePreview }),\n ...(showImageLightbox !== undefined && { showImageLightbox }),\n ...(formatTimestamp !== undefined && { formatTimestamp }),\n ...(messageClassNames !== undefined && { classNames: messageClassNames }),\n ...(propRenderTool !== undefined && { renderTool: propRenderTool }),\n };\n\n const resolvedEmptyState = children ??\n emptyState ?? (\n <div className=\"flex flex-col items-center gap-6\">\n <div className=\"relative\">\n <div className=\"h-16 w-16 rounded-2xl bg-primary/10 flex items-center justify-center\">\n <Bot className=\"h-8 w-8 text-primary\" />\n </div>\n <div className=\"absolute -bottom-1 -right-1 h-5 w-5 rounded-full bg-green-500 border-2 border-background flex items-center justify-center\">\n <span className=\"h-2 w-2 rounded-full bg-white animate-pulse\" />\n </div>\n </div>\n <div className=\"space-y-2 text-center\">\n <h3 className=\"text-xl font-semibold tracking-tight\">Welcome to Agno Chat</h3>\n <p className=\"text-muted-foreground text-sm max-w-sm\">\n Start a conversation with your AI agent. Ask questions, explore ideas, or run tools.\n </p>\n </div>\n {suggestedPrompts.length > 0 && <AgnoChatSuggestedPrompts prompts={suggestedPrompts} />}\n </div>\n );\n\n return (\n <Conversation className={cn('relative flex-1 w-full', className)} scrollBehavior={scrollBehavior}>\n <ScrollOnNewUserMessage messageCount={messages.length} />\n <ConversationContent className=\"max-w-3xl mx-auto\">\n {messages.length === 0 ? (\n <ConversationEmptyState>{resolvedEmptyState}</ConversationEmptyState>\n ) : (\n messages.map((message, index) => {\n // Hide the empty placeholder while the thinking indicator is shown\n if (isThinking && index === messages.length - 1 && message === lastMessage) return null;\n return renderMessage ? (\n renderMessage(message, index)\n ) : (\n <AgnoMessageItem\n key={`msg-${index}-${message.created_at}`}\n message={message}\n avatars={avatars}\n actions={actions}\n isLastAssistantMessage={index === lastAssistantIndex}\n {...messageItemProps}\n />\n );\n })\n )}\n\n {isThinking && (\n <div className=\"py-2\">\n {renderThinkingIndicator ?? <StreamingIndicator avatar={avatars?.assistant} />}\n </div>\n )}\n </ConversationContent>\n {resolvedScrollButton}\n </Conversation>\n );\n}\n",
49
64
  "import { useAgnoChatContext } from './context';\nimport { cn } from '../../lib/cn';\nimport type { SuggestedPrompt } from '../../types';\n\nexport interface AgnoChatSuggestedPromptsProps {\n className?: string;\n prompts: SuggestedPrompt[];\n}\n\nexport function AgnoChatSuggestedPrompts({ className, prompts }: AgnoChatSuggestedPromptsProps) {\n const { handleSend } = useAgnoChatContext();\n\n if (prompts.length === 0) return null;\n\n return (\n <div className={cn('grid grid-cols-2 gap-2 w-full max-w-md', className)}>\n {prompts.map((prompt, idx) => (\n <button\n key={idx}\n onClick={() => handleSend(prompt.text)}\n className=\"flex items-center gap-2 px-3 py-2.5 rounded-xl border border-border bg-card hover:bg-accent/50 hover:border-primary/20 transition-all duration-200 text-left text-sm group\"\n >\n {prompt.icon && (\n <span className=\"text-muted-foreground group-hover:text-primary transition-colors\">\n {prompt.icon}\n </span>\n )}\n <span className=\"text-muted-foreground group-hover:text-foreground transition-colors text-xs leading-snug\">\n {prompt.text}\n </span>\n </button>\n ))}\n </div>\n );\n}\n",
50
65
  "import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../../lib/cn';\n\nexport interface AgnoChatEmptyStateProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\nexport function AgnoChatEmptyState({ children, className, ...props }: AgnoChatEmptyStateProps) {\n return (\n <div className={cn('flex flex-col items-center gap-6', className)} {...props}>\n {children}\n </div>\n );\n}\n",
51
66
  "import { useState, useEffect, useRef } from 'react';\nimport type { ReactNode } from 'react';\nimport { useAgnoChatContext } from './context';\nimport { cn } from '../../lib/cn';\n\nexport interface AgnoChatErrorBarProps {\n className?: string;\n /** Override the displayed error message with a user-friendly string */\n text?: string;\n /** Icon element rendered before the message */\n icon?: ReactNode;\n /** Show a dismiss button to manually close the bar */\n dismissible?: boolean;\n /** Auto-hide timeout in ms (default 10000). Set 0 to disable auto-hide. */\n timeout?: number;\n /** Fully custom content — when provided, replaces the default icon + text layout */\n children?: ReactNode | ((error: string) => ReactNode);\n}\n\nexport function AgnoChatErrorBar({\n className,\n text,\n icon,\n dismissible = false,\n timeout = 10000,\n children,\n}: AgnoChatErrorBarProps) {\n const { error, executionError } = useAgnoChatContext();\n const [hidden, setHidden] = useState(false);\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const rawMessage = error || executionError;\n\n // Reset hidden state and start timer when the error changes\n useEffect(() => {\n if (!rawMessage) return;\n\n setHidden(false);\n\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n\n if (timeout > 0) {\n timerRef.current = setTimeout(() => {\n setHidden(true);\n }, timeout);\n }\n\n return () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n };\n }, [rawMessage, timeout]);\n\n if (!rawMessage || hidden) return null;\n\n const displayMessage = text ?? rawMessage;\n\n // Render function children or ReactNode children\n const renderContent = () => {\n if (children) {\n return typeof children === 'function' ? children(rawMessage) : children;\n }\n\n return (\n <div className=\"flex items-center gap-2 max-w-3xl mx-auto\">\n {icon && <span className=\"shrink-0\">{icon}</span>}\n <p className=\"text-sm text-destructive flex-1\">{displayMessage}</p>\n {dismissible && (\n <button\n type=\"button\"\n onClick={() => setHidden(true)}\n className=\"shrink-0 text-destructive/60 hover:text-destructive transition-colors\"\n aria-label=\"Dismiss error\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n </button>\n )}\n </div>\n );\n };\n\n return (\n <div\n className={cn(\n 'px-4 py-2.5 bg-destructive/5 border-t border-destructive/20',\n className,\n )}\n >\n {renderContent()}\n </div>\n );\n}\n",
52
67
  "import type { ReactNode } from 'react';\nimport { useAgnoChatContext } from './context';\nimport { AgnoChatInput } from '../AgnoChatInput';\nimport type { PromptInputDropZoneProps } from '../../components/prompt-input/drop-zone';\nimport { cn } from '../../lib/cn';\nimport type { AudioConfig, FileUploadConfig } from '../../types';\n\nexport interface AgnoChatInputRenderProps {\n onSend: (message: string | FormData) => Promise<void>;\n disabled: boolean;\n isStreaming: boolean;\n isPaused: boolean;\n}\n\nexport interface AgnoChatInputAreaProps {\n className?: string;\n children?: (props: AgnoChatInputRenderProps) => ReactNode;\n placeholder?: string;\n fileUpload?: FileUploadConfig;\n /**\n * Audio recording/transcription configuration.\n * Pass `true` for send-mode defaults, or an `AudioConfig` object.\n *\n * @example\n * audio={true}\n * audio={{ enabled: true, mode: 'transcribe', endpoint: 'http://...' }}\n */\n audio?: AudioConfig | boolean;\n /** Show attachments button (default: true) */\n showAttachments?: boolean;\n /** Extra tools to add to the toolbar */\n extraTools?: ReactNode;\n /** Show a stop button that cancels the run while streaming (default: false) */\n allowCancelRun?: boolean;\n /** Props forwarded to PromptInputDropZone (className, label) */\n dropZoneProps?: Partial<Pick<PromptInputDropZoneProps, 'label' | 'className'>>;\n}\n\nexport function AgnoChatInputArea({\n className,\n children,\n placeholder,\n fileUpload,\n audio,\n showAttachments,\n extraTools,\n allowCancelRun = false,\n dropZoneProps,\n}: AgnoChatInputAreaProps) {\n const { handleSend, inputDisabled, isStreaming, isPaused, cancelRun, dropZoneContainerRef } = useAgnoChatContext();\n\n return (\n <div className={cn('border-t border-border bg-background/80 backdrop-blur-sm', className)}>\n <div className=\"mx-auto px-4 py-2\">\n {children ? (\n children({ onSend: handleSend, disabled: inputDisabled, isStreaming, isPaused })\n ) : (\n <AgnoChatInput\n onSend={handleSend}\n disabled={inputDisabled}\n isStreaming={isStreaming}\n onCancel={cancelRun}\n allowCancelRun={allowCancelRun}\n placeholder={placeholder ?? 'Message your agent...'}\n fileUpload={fileUpload}\n audio={audio}\n showAttachments={showAttachments}\n extraTools={extraTools}\n dropZoneContainerRef={dropZoneContainerRef}\n dropZoneProps={dropZoneProps}\n />\n )}\n </div>\n </div>\n );\n}\n",
53
68
  "import { AgnoChatRoot } from './agno-chat';\nimport { AgnoChatMessages } from './messages';\nimport { AgnoChatEmptyState } from './empty-state';\nimport { AgnoChatSuggestedPrompts } from './suggested-prompts';\nimport { AgnoChatErrorBar } from './error-bar';\nimport { AgnoChatInputArea } from './input';\n\n// Re-export context hook and types\nexport { useAgnoChatContext } from './context';\nexport type { AgnoChatContextValue } from './context';\n\n// Re-export individual sub-components for tree-shaking / named imports\nexport { AgnoChatRoot } from './agno-chat';\nexport type { AgnoChatRootProps } from './agno-chat';\nexport { AgnoChatMessages } from './messages';\nexport type { AgnoChatMessagesProps } from './messages';\nexport { AgnoChatEmptyState } from './empty-state';\nexport type { AgnoChatEmptyStateProps } from './empty-state';\nexport { AgnoChatSuggestedPrompts } from './suggested-prompts';\nexport type { AgnoChatSuggestedPromptsProps } from './suggested-prompts';\nexport { AgnoChatErrorBar } from './error-bar';\nexport type { AgnoChatErrorBarProps } from './error-bar';\nexport { AgnoChatInputArea } from './input';\nexport type { AgnoChatInputAreaProps, AgnoChatInputRenderProps } from './input';\n\n// Compound component via Object.assign (type-safe, no double cast)\nconst AgnoChat = Object.assign(AgnoChatRoot, {\n Messages: AgnoChatMessages,\n EmptyState: AgnoChatEmptyState,\n SuggestedPrompts: AgnoChatSuggestedPrompts,\n ErrorBar: AgnoChatErrorBar,\n Input: AgnoChatInputArea,\n});\n\nexport { AgnoChat };\n"
54
69
  ],
55
- "mappings": "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",
56
- "debugId": "B7CF327D3F6FBB7F64756E2164756E21",
70
+ "mappings": "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",
71
+ "debugId": "849670CE2678388A64756E2164756E21",
57
72
  "names": []
58
73
  }