@lukeashford/aurelius 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -921,6 +921,99 @@ declare const TodosList: React$1.ForwardRefExoticComponent<TodosListProps & Reac
921
921
  */
922
922
  declare function areAllTasksSettled(tasks: Task[]): boolean;
923
923
 
924
+ /**
925
+ * Position group for a tool — combines vertical position (top/bottom)
926
+ * with sidebar side (left/right).
927
+ */
928
+ type ToolGroup = 'top-left' | 'bottom-left' | 'top-right' | 'bottom-right';
929
+ /**
930
+ * Describes a tool that can be toggled from the sidebar.
931
+ */
932
+ interface ToolDefinition {
933
+ /**
934
+ * Unique identifier for this tool
935
+ */
936
+ id: string;
937
+ /**
938
+ * Icon element shown in the sidebar button
939
+ */
940
+ icon: React$1.ReactNode;
941
+ /**
942
+ * Accessible label for the button
943
+ */
944
+ label: string;
945
+ /**
946
+ * Which group the tool belongs to — tools in the same group
947
+ * are mutually exclusive (opening one closes the other).
948
+ */
949
+ group: ToolGroup;
950
+ }
951
+ /**
952
+ * Consumer-provided tool definition passed via ChatInterface's `tools` prop.
953
+ * Defines a custom tool with its sidebar icon and the panel content to
954
+ * render when the tool is opened.
955
+ */
956
+ interface ExternalToolDefinition {
957
+ /**
958
+ * Unique identifier for this tool
959
+ */
960
+ id: string;
961
+ /**
962
+ * Icon element shown in the sidebar button
963
+ */
964
+ icon: React$1.ReactNode;
965
+ /**
966
+ * Accessible label for the button
967
+ */
968
+ label: string;
969
+ /**
970
+ * Which group the tool belongs to
971
+ */
972
+ group: ToolGroup;
973
+ /**
974
+ * Content to render when the tool is open
975
+ */
976
+ content: React$1.ReactNode;
977
+ }
978
+ /**
979
+ * Tracks which tool is open in each group (null = none).
980
+ */
981
+ interface ToolPanelState {
982
+ 'top-left': string | null;
983
+ 'bottom-left': string | null;
984
+ 'top-right': string | null;
985
+ 'bottom-right': string | null;
986
+ }
987
+ interface ToolSidebarProps extends React$1.HTMLAttributes<HTMLDivElement> {
988
+ /**
989
+ * Available tool definitions
990
+ */
991
+ tools: ToolDefinition[];
992
+ /**
993
+ * Current state — which tool is open per group
994
+ */
995
+ activeTools: ToolPanelState;
996
+ /**
997
+ * Called when a tool button is clicked (toggle)
998
+ */
999
+ onToggleTool: (toolId: string) => void;
1000
+ /**
1001
+ * Which side this sidebar is on — controls border direction
1002
+ */
1003
+ side: 'left' | 'right';
1004
+ }
1005
+ /**
1006
+ * ToolSidebar renders a vertical strip of tool icon buttons on either
1007
+ * side of the chat interface. It follows the IntelliJ pattern:
1008
+ *
1009
+ * - Top-aligned group and bottom-aligned group separated by a divider
1010
+ * - Tools in the same group are mutually exclusive
1011
+ * - Clicking an active tool closes it; clicking an inactive tool opens it
1012
+ * - Constant slim width regardless of tool panel state
1013
+ * - Can be placed on left or right side via the `side` prop
1014
+ */
1015
+ declare const ToolSidebar: React$1.ForwardRefExoticComponent<ToolSidebarProps & React$1.RefAttributes<HTMLDivElement>>;
1016
+
924
1017
  /**
925
1018
  * Script element types following standard screenplay format
926
1019
  */
@@ -1357,18 +1450,29 @@ interface ChatInterfaceProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>
1357
1450
  * @default "Tasks"
1358
1451
  */
1359
1452
  tasksTitle?: string;
1453
+ /**
1454
+ * Additional tools to add to the tool sidebars. Each ExternalToolDefinition provides
1455
+ * an id, icon, label, group ('top-left' | 'bottom-left' | 'top-right' | 'bottom-right'),
1456
+ * and content (ReactNode) to render when opened. Tools in the same group are mutually
1457
+ * exclusive. Built-in tools occupy: History (top-left), Artifacts (top-right), Tasks
1458
+ * (bottom-right). Consumer tools are added alongside these.
1459
+ */
1460
+ tools?: ExternalToolDefinition[];
1360
1461
  }
1361
1462
  /**
1362
1463
  * ChatInterface is the main orchestrator for a full-featured chat experience.
1363
1464
  *
1364
1465
  * Features:
1365
- * - ConversationSidebar (left) — collapsible list of past conversations
1466
+ * - ConversationSidebar (far left) — collapsible list of past conversations
1366
1467
  * - ChatView (center) — main conversation area with smart scrolling
1367
- * - Tool panel system (right) — IntelliJ-style tool sidebar with:
1368
- * - Top group: Chat History, Artifacts Panel (mutually exclusive)
1369
- * - Bottom group: Todo List
1370
- * - Vertical split with draggable divider when both groups are active
1371
- * - Width-resizable tool content area
1468
+ * - Dual tool sidebar system — IntelliJ-style tool sidebars on left and right:
1469
+ * - Left sidebar: History (top-left) + consumer tools (bottom-left)
1470
+ * - Right sidebar: Artifacts (top-right) + Tasks (bottom-right) + consumer tools
1471
+ * - Tools in the same group are mutually exclusive
1472
+ * - Both panels can be open simultaneously — chat area shrinks to accommodate
1473
+ * - Each panel is independently width-resizable
1474
+ * - Vertical split with draggable divider when both slots in a panel are active
1475
+ * - Consumer tools via `tools` prop — provide icon, label, group, and content
1372
1476
  * - ChatInput — position-aware input that centers in empty state
1373
1477
  * - Branching — support for conversation tree with branch navigation
1374
1478
  * - Message Actions — copy, edit, retry
@@ -1459,60 +1563,6 @@ interface ArtifactsPanelToggleProps extends React$1.ButtonHTMLAttributes<HTMLBut
1459
1563
  }
1460
1564
  declare const ArtifactsPanelToggle: React$1.ForwardRefExoticComponent<ArtifactsPanelToggleProps & React$1.RefAttributes<HTMLButtonElement>>;
1461
1565
 
1462
- /**
1463
- * Describes a tool that can be toggled from the sidebar.
1464
- */
1465
- interface ToolDefinition {
1466
- /**
1467
- * Unique identifier for this tool
1468
- */
1469
- id: string;
1470
- /**
1471
- * Icon element shown in the sidebar button
1472
- */
1473
- icon: React$1.ReactNode;
1474
- /**
1475
- * Accessible label for the button
1476
- */
1477
- label: string;
1478
- /**
1479
- * Which group the tool belongs to — tools in the same group
1480
- * are mutually exclusive (opening one closes the other).
1481
- */
1482
- group: 'top' | 'bottom';
1483
- }
1484
- /**
1485
- * Tracks which tool is open in each group (null = none).
1486
- */
1487
- interface ToolPanelState {
1488
- top: string | null;
1489
- bottom: string | null;
1490
- }
1491
- interface ToolSidebarProps extends React$1.HTMLAttributes<HTMLDivElement> {
1492
- /**
1493
- * Available tool definitions
1494
- */
1495
- tools: ToolDefinition[];
1496
- /**
1497
- * Current state — which tool is open per group
1498
- */
1499
- activeTools: ToolPanelState;
1500
- /**
1501
- * Called when a tool button is clicked (toggle)
1502
- */
1503
- onToggleTool: (toolId: string) => void;
1504
- }
1505
- /**
1506
- * ToolSidebar renders a vertical strip of tool icon buttons on the right
1507
- * side of the chat interface. It follows the IntelliJ pattern:
1508
- *
1509
- * - Top-aligned group and bottom-aligned group separated by a divider
1510
- * - Tools in the same group are mutually exclusive
1511
- * - Clicking an active tool closes it; clicking an inactive tool opens it
1512
- * - Constant slim width regardless of tool panel state
1513
- */
1514
- declare const ToolSidebar: React$1.ForwardRefExoticComponent<ToolSidebarProps & React$1.RefAttributes<HTMLDivElement>>;
1515
-
1516
1566
  interface ToolPanelContainerProps extends React$1.HTMLAttributes<HTMLDivElement> {
1517
1567
  /**
1518
1568
  * Content for the top tool slot (from the top group).
@@ -1532,6 +1582,10 @@ interface ToolPanelContainerProps extends React$1.HTMLAttributes<HTMLDivElement>
1532
1582
  * Callback to start horizontal resizing (width dragger)
1533
1583
  */
1534
1584
  onResizeStart?: (e: React$1.MouseEvent) => void;
1585
+ /**
1586
+ * Which side this panel is on — controls border and resize handle position
1587
+ */
1588
+ side?: 'left' | 'right';
1535
1589
  }
1536
1590
  /**
1537
1591
  * ToolPanelContainer manages the layout of one or two tool panels
@@ -1926,4 +1980,4 @@ declare const ArtifactVariantStack: React$1.ForwardRefExoticComponent<ArtifactVa
1926
1980
 
1927
1981
  declare const version = "2.0.0";
1928
1982
 
1929
- export { ARTIFACT_TYPES, Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, Alert, AlertDialog, type AlertDialogProps, type AlertProps, type AlertVariant, type Artifact, ArtifactCard, type ArtifactCardProps, ArtifactGroup, type ArtifactGroupProps, type ArtifactNode, type ArtifactType, ArtifactVariantStack, type ArtifactVariantStackProps, ArtifactsPanel, type ArtifactsPanelProps, ArtifactsPanelToggle, type ArtifactsPanelToggleProps, type AspectRatio, type AspectRatioPreset, type Attachment, type AttachmentItem, AttachmentPreview, type AttachmentPreviewProps, type AttachmentStatus, AudioCard, type AudioCardProps, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeVariant, BranchNavigator, type BranchNavigatorProps, BrandIcon, type BrandIconProps, type BrandIconSize, type BrandIconVariant, Breadcrumb, type BreadcrumbEntry, BreadcrumbItem, type BreadcrumbItemProps, BreadcrumbLink, type BreadcrumbLinkProps, type BreadcrumbProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, type CardBodyProps, type CardFooterProps, type CardHeaderProps, type CardMediaProps, type CardProps, type CardVariant, ChatInput, type ChatInputPosition, type ChatInputProps, ChatInterface, type ChatInterfaceProps, type ChatMessage, ChatView, type ChatViewItem, type ChatViewProps, CheckSquareIcon, Checkbox, type CheckboxProps, ChevronLeftIcon, ChevronRightIcon, CloseIcon, Col, type ColOffset, type ColOrder, type ColProps, type ColSpan, CollapsedSidebarToggle, type CollapsedSidebarToggleProps, ColorSwatch, type ColorSwatchProps, ConfirmDialog, type ConfirmDialogProps, Container, type ContainerProps, type ContainerSize, type Conversation, ConversationSidebar, type ConversationSidebarProps, type ConversationTree, CrossSquareIcon, Divider, type DividerProps, Drawer, type DrawerPosition, type DrawerProps, EmptySquareIcon, ExpandIcon, FileChip, type FileChipProps, type FileChipStatus, HelperText, type HelperTextProps, HistoryIcon, type IconProps, ImageCard, type ImageCardProps, Input, type InputAddonProps, type InputElementProps, InputGroup, type InputGroupProps, InputLeftAddon, InputLeftElement, type InputProps, InputRightAddon, InputRightElement, InputWrapper, type InputWrapperProps, Label, type LabelProps, LayersIcon, List, ListItem, type ListItemProps, ListItemText, type ListItemTextProps, type ListProps, ListSubheader, type ListSubheaderProps, MarkdownContent, type MarkdownContentProps, MediaIcon, Menu, MenuContent, type MenuContentProps, MenuItem, type MenuItemProps, MenuLabel, type MenuProps, MenuSeparator, MenuTrigger, type MenuTriggerProps, Message, MessageActions, type MessageActionsConfig, type MessageActionsProps, type MessageActionsVariant, type MessageBranchInfo, type MessageNode, type MessageProps, type MessageVariant, Modal, type ModalProps, NODE_TYPES, Navbar, NavbarBrand, type NavbarBrandProps, NavbarContent, type NavbarContentProps, NavbarDivider, NavbarItem, type NavbarItemProps, NavbarLink, type NavbarLinkProps, type NavbarProps, type NodeType, Pagination, type PaginationProps, PdfCard, type PdfCardProps, PlusIcon, Popover, type PopoverAlign, type PopoverPosition, type PopoverProps, Progress, type ProgressProps, PromptDialog, type PromptDialogProps, Radio, type RadioProps, Row, type RowAlign, type RowGutter, type RowJustify, type RowProps, SCRIPT_ELEMENT_TYPES, ScriptCard, type ScriptCardProps, type ScriptElement, type ScriptElementType, SectionHeading, type SectionHeadingLevel, type SectionHeadingProps, Select, type SelectOption, type SelectProps, Skeleton, type SkeletonProps, Slider, type SliderProps, Spinner, type SpinnerProps, SquareLoaderIcon, Stack, type StackDirection, type StackGap, type StackProps, type Step, type StepStatus, Stepper, type StepperProps, StreamingCursor, type StreamingCursorProps, Switch, type SwitchProps, TASK_STATUSES, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, type TabProps, Table, TableBody, type TableBodyProps, TableCaption, type TableCaptionProps, TableCell, type TableCellProps, TableFooter, type TableFooterProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, type Task, type TaskStatus, TextCard, type TextCardProps, Textarea, type TextareaProps, ThinkingIndicator, type ThinkingIndicatorProps, type ToastData, type ToastPosition, ToastProvider, type ToastProviderProps, type ToastVariant, TodosList, type TodosListProps, type ToolDefinition, ToolPanelContainer, type ToolPanelContainerProps, type ToolPanelState, ToolSidebar, type ToolSidebarProps, Tooltip, type TooltipProps, type UseArtifactTreeNavigationReturn, type UseScrollAnchorOptions, type UseScrollAnchorReturn, type VideoAspectRatio, type VideoAspectRatioPreset, VideoCard, type VideoCardProps, addMessageToTree, areAllTasksSettled, createEmptyTree, createPreviewUrl, generateId, getActivePathMessages, getSiblingInfo, isBranchPoint, isImageFile, messagesToTree, revokePreviewUrl, switchBranch, updateNodeContent, useArtifactTreeNavigation, useResizable, useScrollAnchor, useToast, version };
1983
+ export { ARTIFACT_TYPES, Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, Alert, AlertDialog, type AlertDialogProps, type AlertProps, type AlertVariant, type Artifact, ArtifactCard, type ArtifactCardProps, ArtifactGroup, type ArtifactGroupProps, type ArtifactNode, type ArtifactType, ArtifactVariantStack, type ArtifactVariantStackProps, ArtifactsPanel, type ArtifactsPanelProps, ArtifactsPanelToggle, type ArtifactsPanelToggleProps, type AspectRatio, type AspectRatioPreset, type Attachment, type AttachmentItem, AttachmentPreview, type AttachmentPreviewProps, type AttachmentStatus, AudioCard, type AudioCardProps, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeVariant, BranchNavigator, type BranchNavigatorProps, BrandIcon, type BrandIconProps, type BrandIconSize, type BrandIconVariant, Breadcrumb, type BreadcrumbEntry, BreadcrumbItem, type BreadcrumbItemProps, BreadcrumbLink, type BreadcrumbLinkProps, type BreadcrumbProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, type CardBodyProps, type CardFooterProps, type CardHeaderProps, type CardMediaProps, type CardProps, type CardVariant, ChatInput, type ChatInputPosition, type ChatInputProps, ChatInterface, type ChatInterfaceProps, type ChatMessage, ChatView, type ChatViewItem, type ChatViewProps, CheckSquareIcon, Checkbox, type CheckboxProps, ChevronLeftIcon, ChevronRightIcon, CloseIcon, Col, type ColOffset, type ColOrder, type ColProps, type ColSpan, CollapsedSidebarToggle, type CollapsedSidebarToggleProps, ColorSwatch, type ColorSwatchProps, ConfirmDialog, type ConfirmDialogProps, Container, type ContainerProps, type ContainerSize, type Conversation, ConversationSidebar, type ConversationSidebarProps, type ConversationTree, CrossSquareIcon, Divider, type DividerProps, Drawer, type DrawerPosition, type DrawerProps, EmptySquareIcon, ExpandIcon, type ExternalToolDefinition, FileChip, type FileChipProps, type FileChipStatus, HelperText, type HelperTextProps, HistoryIcon, type IconProps, ImageCard, type ImageCardProps, Input, type InputAddonProps, type InputElementProps, InputGroup, type InputGroupProps, InputLeftAddon, InputLeftElement, type InputProps, InputRightAddon, InputRightElement, InputWrapper, type InputWrapperProps, Label, type LabelProps, LayersIcon, List, ListItem, type ListItemProps, ListItemText, type ListItemTextProps, type ListProps, ListSubheader, type ListSubheaderProps, MarkdownContent, type MarkdownContentProps, MediaIcon, Menu, MenuContent, type MenuContentProps, MenuItem, type MenuItemProps, MenuLabel, type MenuProps, MenuSeparator, MenuTrigger, type MenuTriggerProps, Message, MessageActions, type MessageActionsConfig, type MessageActionsProps, type MessageActionsVariant, type MessageBranchInfo, type MessageNode, type MessageProps, type MessageVariant, Modal, type ModalProps, NODE_TYPES, Navbar, NavbarBrand, type NavbarBrandProps, NavbarContent, type NavbarContentProps, NavbarDivider, NavbarItem, type NavbarItemProps, NavbarLink, type NavbarLinkProps, type NavbarProps, type NodeType, Pagination, type PaginationProps, PdfCard, type PdfCardProps, PlusIcon, Popover, type PopoverAlign, type PopoverPosition, type PopoverProps, Progress, type ProgressProps, PromptDialog, type PromptDialogProps, Radio, type RadioProps, Row, type RowAlign, type RowGutter, type RowJustify, type RowProps, SCRIPT_ELEMENT_TYPES, ScriptCard, type ScriptCardProps, type ScriptElement, type ScriptElementType, SectionHeading, type SectionHeadingLevel, type SectionHeadingProps, Select, type SelectOption, type SelectProps, Skeleton, type SkeletonProps, Slider, type SliderProps, Spinner, type SpinnerProps, SquareLoaderIcon, Stack, type StackDirection, type StackGap, type StackProps, type Step, type StepStatus, Stepper, type StepperProps, StreamingCursor, type StreamingCursorProps, Switch, type SwitchProps, TASK_STATUSES, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, type TabProps, Table, TableBody, type TableBodyProps, TableCaption, type TableCaptionProps, TableCell, type TableCellProps, TableFooter, type TableFooterProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, type Task, type TaskStatus, TextCard, type TextCardProps, Textarea, type TextareaProps, ThinkingIndicator, type ThinkingIndicatorProps, type ToastData, type ToastPosition, ToastProvider, type ToastProviderProps, type ToastVariant, TodosList, type TodosListProps, type ToolDefinition, type ToolGroup, ToolPanelContainer, type ToolPanelContainerProps, type ToolPanelState, ToolSidebar, type ToolSidebarProps, Tooltip, type TooltipProps, type UseArtifactTreeNavigationReturn, type UseScrollAnchorOptions, type UseScrollAnchorReturn, type VideoAspectRatio, type VideoAspectRatioPreset, VideoCard, type VideoCardProps, addMessageToTree, areAllTasksSettled, createEmptyTree, createPreviewUrl, generateId, getActivePathMessages, getSiblingInfo, isBranchPoint, isImageFile, messagesToTree, revokePreviewUrl, switchBranch, updateNodeContent, useArtifactTreeNavigation, useResizable, useScrollAnchor, useToast, version };
package/dist/index.d.ts CHANGED
@@ -921,6 +921,99 @@ declare const TodosList: React$1.ForwardRefExoticComponent<TodosListProps & Reac
921
921
  */
922
922
  declare function areAllTasksSettled(tasks: Task[]): boolean;
923
923
 
924
+ /**
925
+ * Position group for a tool — combines vertical position (top/bottom)
926
+ * with sidebar side (left/right).
927
+ */
928
+ type ToolGroup = 'top-left' | 'bottom-left' | 'top-right' | 'bottom-right';
929
+ /**
930
+ * Describes a tool that can be toggled from the sidebar.
931
+ */
932
+ interface ToolDefinition {
933
+ /**
934
+ * Unique identifier for this tool
935
+ */
936
+ id: string;
937
+ /**
938
+ * Icon element shown in the sidebar button
939
+ */
940
+ icon: React$1.ReactNode;
941
+ /**
942
+ * Accessible label for the button
943
+ */
944
+ label: string;
945
+ /**
946
+ * Which group the tool belongs to — tools in the same group
947
+ * are mutually exclusive (opening one closes the other).
948
+ */
949
+ group: ToolGroup;
950
+ }
951
+ /**
952
+ * Consumer-provided tool definition passed via ChatInterface's `tools` prop.
953
+ * Defines a custom tool with its sidebar icon and the panel content to
954
+ * render when the tool is opened.
955
+ */
956
+ interface ExternalToolDefinition {
957
+ /**
958
+ * Unique identifier for this tool
959
+ */
960
+ id: string;
961
+ /**
962
+ * Icon element shown in the sidebar button
963
+ */
964
+ icon: React$1.ReactNode;
965
+ /**
966
+ * Accessible label for the button
967
+ */
968
+ label: string;
969
+ /**
970
+ * Which group the tool belongs to
971
+ */
972
+ group: ToolGroup;
973
+ /**
974
+ * Content to render when the tool is open
975
+ */
976
+ content: React$1.ReactNode;
977
+ }
978
+ /**
979
+ * Tracks which tool is open in each group (null = none).
980
+ */
981
+ interface ToolPanelState {
982
+ 'top-left': string | null;
983
+ 'bottom-left': string | null;
984
+ 'top-right': string | null;
985
+ 'bottom-right': string | null;
986
+ }
987
+ interface ToolSidebarProps extends React$1.HTMLAttributes<HTMLDivElement> {
988
+ /**
989
+ * Available tool definitions
990
+ */
991
+ tools: ToolDefinition[];
992
+ /**
993
+ * Current state — which tool is open per group
994
+ */
995
+ activeTools: ToolPanelState;
996
+ /**
997
+ * Called when a tool button is clicked (toggle)
998
+ */
999
+ onToggleTool: (toolId: string) => void;
1000
+ /**
1001
+ * Which side this sidebar is on — controls border direction
1002
+ */
1003
+ side: 'left' | 'right';
1004
+ }
1005
+ /**
1006
+ * ToolSidebar renders a vertical strip of tool icon buttons on either
1007
+ * side of the chat interface. It follows the IntelliJ pattern:
1008
+ *
1009
+ * - Top-aligned group and bottom-aligned group separated by a divider
1010
+ * - Tools in the same group are mutually exclusive
1011
+ * - Clicking an active tool closes it; clicking an inactive tool opens it
1012
+ * - Constant slim width regardless of tool panel state
1013
+ * - Can be placed on left or right side via the `side` prop
1014
+ */
1015
+ declare const ToolSidebar: React$1.ForwardRefExoticComponent<ToolSidebarProps & React$1.RefAttributes<HTMLDivElement>>;
1016
+
924
1017
  /**
925
1018
  * Script element types following standard screenplay format
926
1019
  */
@@ -1357,18 +1450,29 @@ interface ChatInterfaceProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>
1357
1450
  * @default "Tasks"
1358
1451
  */
1359
1452
  tasksTitle?: string;
1453
+ /**
1454
+ * Additional tools to add to the tool sidebars. Each ExternalToolDefinition provides
1455
+ * an id, icon, label, group ('top-left' | 'bottom-left' | 'top-right' | 'bottom-right'),
1456
+ * and content (ReactNode) to render when opened. Tools in the same group are mutually
1457
+ * exclusive. Built-in tools occupy: History (top-left), Artifacts (top-right), Tasks
1458
+ * (bottom-right). Consumer tools are added alongside these.
1459
+ */
1460
+ tools?: ExternalToolDefinition[];
1360
1461
  }
1361
1462
  /**
1362
1463
  * ChatInterface is the main orchestrator for a full-featured chat experience.
1363
1464
  *
1364
1465
  * Features:
1365
- * - ConversationSidebar (left) — collapsible list of past conversations
1466
+ * - ConversationSidebar (far left) — collapsible list of past conversations
1366
1467
  * - ChatView (center) — main conversation area with smart scrolling
1367
- * - Tool panel system (right) — IntelliJ-style tool sidebar with:
1368
- * - Top group: Chat History, Artifacts Panel (mutually exclusive)
1369
- * - Bottom group: Todo List
1370
- * - Vertical split with draggable divider when both groups are active
1371
- * - Width-resizable tool content area
1468
+ * - Dual tool sidebar system — IntelliJ-style tool sidebars on left and right:
1469
+ * - Left sidebar: History (top-left) + consumer tools (bottom-left)
1470
+ * - Right sidebar: Artifacts (top-right) + Tasks (bottom-right) + consumer tools
1471
+ * - Tools in the same group are mutually exclusive
1472
+ * - Both panels can be open simultaneously — chat area shrinks to accommodate
1473
+ * - Each panel is independently width-resizable
1474
+ * - Vertical split with draggable divider when both slots in a panel are active
1475
+ * - Consumer tools via `tools` prop — provide icon, label, group, and content
1372
1476
  * - ChatInput — position-aware input that centers in empty state
1373
1477
  * - Branching — support for conversation tree with branch navigation
1374
1478
  * - Message Actions — copy, edit, retry
@@ -1459,60 +1563,6 @@ interface ArtifactsPanelToggleProps extends React$1.ButtonHTMLAttributes<HTMLBut
1459
1563
  }
1460
1564
  declare const ArtifactsPanelToggle: React$1.ForwardRefExoticComponent<ArtifactsPanelToggleProps & React$1.RefAttributes<HTMLButtonElement>>;
1461
1565
 
1462
- /**
1463
- * Describes a tool that can be toggled from the sidebar.
1464
- */
1465
- interface ToolDefinition {
1466
- /**
1467
- * Unique identifier for this tool
1468
- */
1469
- id: string;
1470
- /**
1471
- * Icon element shown in the sidebar button
1472
- */
1473
- icon: React$1.ReactNode;
1474
- /**
1475
- * Accessible label for the button
1476
- */
1477
- label: string;
1478
- /**
1479
- * Which group the tool belongs to — tools in the same group
1480
- * are mutually exclusive (opening one closes the other).
1481
- */
1482
- group: 'top' | 'bottom';
1483
- }
1484
- /**
1485
- * Tracks which tool is open in each group (null = none).
1486
- */
1487
- interface ToolPanelState {
1488
- top: string | null;
1489
- bottom: string | null;
1490
- }
1491
- interface ToolSidebarProps extends React$1.HTMLAttributes<HTMLDivElement> {
1492
- /**
1493
- * Available tool definitions
1494
- */
1495
- tools: ToolDefinition[];
1496
- /**
1497
- * Current state — which tool is open per group
1498
- */
1499
- activeTools: ToolPanelState;
1500
- /**
1501
- * Called when a tool button is clicked (toggle)
1502
- */
1503
- onToggleTool: (toolId: string) => void;
1504
- }
1505
- /**
1506
- * ToolSidebar renders a vertical strip of tool icon buttons on the right
1507
- * side of the chat interface. It follows the IntelliJ pattern:
1508
- *
1509
- * - Top-aligned group and bottom-aligned group separated by a divider
1510
- * - Tools in the same group are mutually exclusive
1511
- * - Clicking an active tool closes it; clicking an inactive tool opens it
1512
- * - Constant slim width regardless of tool panel state
1513
- */
1514
- declare const ToolSidebar: React$1.ForwardRefExoticComponent<ToolSidebarProps & React$1.RefAttributes<HTMLDivElement>>;
1515
-
1516
1566
  interface ToolPanelContainerProps extends React$1.HTMLAttributes<HTMLDivElement> {
1517
1567
  /**
1518
1568
  * Content for the top tool slot (from the top group).
@@ -1532,6 +1582,10 @@ interface ToolPanelContainerProps extends React$1.HTMLAttributes<HTMLDivElement>
1532
1582
  * Callback to start horizontal resizing (width dragger)
1533
1583
  */
1534
1584
  onResizeStart?: (e: React$1.MouseEvent) => void;
1585
+ /**
1586
+ * Which side this panel is on — controls border and resize handle position
1587
+ */
1588
+ side?: 'left' | 'right';
1535
1589
  }
1536
1590
  /**
1537
1591
  * ToolPanelContainer manages the layout of one or two tool panels
@@ -1926,4 +1980,4 @@ declare const ArtifactVariantStack: React$1.ForwardRefExoticComponent<ArtifactVa
1926
1980
 
1927
1981
  declare const version = "2.0.0";
1928
1982
 
1929
- export { ARTIFACT_TYPES, Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, Alert, AlertDialog, type AlertDialogProps, type AlertProps, type AlertVariant, type Artifact, ArtifactCard, type ArtifactCardProps, ArtifactGroup, type ArtifactGroupProps, type ArtifactNode, type ArtifactType, ArtifactVariantStack, type ArtifactVariantStackProps, ArtifactsPanel, type ArtifactsPanelProps, ArtifactsPanelToggle, type ArtifactsPanelToggleProps, type AspectRatio, type AspectRatioPreset, type Attachment, type AttachmentItem, AttachmentPreview, type AttachmentPreviewProps, type AttachmentStatus, AudioCard, type AudioCardProps, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeVariant, BranchNavigator, type BranchNavigatorProps, BrandIcon, type BrandIconProps, type BrandIconSize, type BrandIconVariant, Breadcrumb, type BreadcrumbEntry, BreadcrumbItem, type BreadcrumbItemProps, BreadcrumbLink, type BreadcrumbLinkProps, type BreadcrumbProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, type CardBodyProps, type CardFooterProps, type CardHeaderProps, type CardMediaProps, type CardProps, type CardVariant, ChatInput, type ChatInputPosition, type ChatInputProps, ChatInterface, type ChatInterfaceProps, type ChatMessage, ChatView, type ChatViewItem, type ChatViewProps, CheckSquareIcon, Checkbox, type CheckboxProps, ChevronLeftIcon, ChevronRightIcon, CloseIcon, Col, type ColOffset, type ColOrder, type ColProps, type ColSpan, CollapsedSidebarToggle, type CollapsedSidebarToggleProps, ColorSwatch, type ColorSwatchProps, ConfirmDialog, type ConfirmDialogProps, Container, type ContainerProps, type ContainerSize, type Conversation, ConversationSidebar, type ConversationSidebarProps, type ConversationTree, CrossSquareIcon, Divider, type DividerProps, Drawer, type DrawerPosition, type DrawerProps, EmptySquareIcon, ExpandIcon, FileChip, type FileChipProps, type FileChipStatus, HelperText, type HelperTextProps, HistoryIcon, type IconProps, ImageCard, type ImageCardProps, Input, type InputAddonProps, type InputElementProps, InputGroup, type InputGroupProps, InputLeftAddon, InputLeftElement, type InputProps, InputRightAddon, InputRightElement, InputWrapper, type InputWrapperProps, Label, type LabelProps, LayersIcon, List, ListItem, type ListItemProps, ListItemText, type ListItemTextProps, type ListProps, ListSubheader, type ListSubheaderProps, MarkdownContent, type MarkdownContentProps, MediaIcon, Menu, MenuContent, type MenuContentProps, MenuItem, type MenuItemProps, MenuLabel, type MenuProps, MenuSeparator, MenuTrigger, type MenuTriggerProps, Message, MessageActions, type MessageActionsConfig, type MessageActionsProps, type MessageActionsVariant, type MessageBranchInfo, type MessageNode, type MessageProps, type MessageVariant, Modal, type ModalProps, NODE_TYPES, Navbar, NavbarBrand, type NavbarBrandProps, NavbarContent, type NavbarContentProps, NavbarDivider, NavbarItem, type NavbarItemProps, NavbarLink, type NavbarLinkProps, type NavbarProps, type NodeType, Pagination, type PaginationProps, PdfCard, type PdfCardProps, PlusIcon, Popover, type PopoverAlign, type PopoverPosition, type PopoverProps, Progress, type ProgressProps, PromptDialog, type PromptDialogProps, Radio, type RadioProps, Row, type RowAlign, type RowGutter, type RowJustify, type RowProps, SCRIPT_ELEMENT_TYPES, ScriptCard, type ScriptCardProps, type ScriptElement, type ScriptElementType, SectionHeading, type SectionHeadingLevel, type SectionHeadingProps, Select, type SelectOption, type SelectProps, Skeleton, type SkeletonProps, Slider, type SliderProps, Spinner, type SpinnerProps, SquareLoaderIcon, Stack, type StackDirection, type StackGap, type StackProps, type Step, type StepStatus, Stepper, type StepperProps, StreamingCursor, type StreamingCursorProps, Switch, type SwitchProps, TASK_STATUSES, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, type TabProps, Table, TableBody, type TableBodyProps, TableCaption, type TableCaptionProps, TableCell, type TableCellProps, TableFooter, type TableFooterProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, type Task, type TaskStatus, TextCard, type TextCardProps, Textarea, type TextareaProps, ThinkingIndicator, type ThinkingIndicatorProps, type ToastData, type ToastPosition, ToastProvider, type ToastProviderProps, type ToastVariant, TodosList, type TodosListProps, type ToolDefinition, ToolPanelContainer, type ToolPanelContainerProps, type ToolPanelState, ToolSidebar, type ToolSidebarProps, Tooltip, type TooltipProps, type UseArtifactTreeNavigationReturn, type UseScrollAnchorOptions, type UseScrollAnchorReturn, type VideoAspectRatio, type VideoAspectRatioPreset, VideoCard, type VideoCardProps, addMessageToTree, areAllTasksSettled, createEmptyTree, createPreviewUrl, generateId, getActivePathMessages, getSiblingInfo, isBranchPoint, isImageFile, messagesToTree, revokePreviewUrl, switchBranch, updateNodeContent, useArtifactTreeNavigation, useResizable, useScrollAnchor, useToast, version };
1983
+ export { ARTIFACT_TYPES, Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, Alert, AlertDialog, type AlertDialogProps, type AlertProps, type AlertVariant, type Artifact, ArtifactCard, type ArtifactCardProps, ArtifactGroup, type ArtifactGroupProps, type ArtifactNode, type ArtifactType, ArtifactVariantStack, type ArtifactVariantStackProps, ArtifactsPanel, type ArtifactsPanelProps, ArtifactsPanelToggle, type ArtifactsPanelToggleProps, type AspectRatio, type AspectRatioPreset, type Attachment, type AttachmentItem, AttachmentPreview, type AttachmentPreviewProps, type AttachmentStatus, AudioCard, type AudioCardProps, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeVariant, BranchNavigator, type BranchNavigatorProps, BrandIcon, type BrandIconProps, type BrandIconSize, type BrandIconVariant, Breadcrumb, type BreadcrumbEntry, BreadcrumbItem, type BreadcrumbItemProps, BreadcrumbLink, type BreadcrumbLinkProps, type BreadcrumbProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, type CardBodyProps, type CardFooterProps, type CardHeaderProps, type CardMediaProps, type CardProps, type CardVariant, ChatInput, type ChatInputPosition, type ChatInputProps, ChatInterface, type ChatInterfaceProps, type ChatMessage, ChatView, type ChatViewItem, type ChatViewProps, CheckSquareIcon, Checkbox, type CheckboxProps, ChevronLeftIcon, ChevronRightIcon, CloseIcon, Col, type ColOffset, type ColOrder, type ColProps, type ColSpan, CollapsedSidebarToggle, type CollapsedSidebarToggleProps, ColorSwatch, type ColorSwatchProps, ConfirmDialog, type ConfirmDialogProps, Container, type ContainerProps, type ContainerSize, type Conversation, ConversationSidebar, type ConversationSidebarProps, type ConversationTree, CrossSquareIcon, Divider, type DividerProps, Drawer, type DrawerPosition, type DrawerProps, EmptySquareIcon, ExpandIcon, type ExternalToolDefinition, FileChip, type FileChipProps, type FileChipStatus, HelperText, type HelperTextProps, HistoryIcon, type IconProps, ImageCard, type ImageCardProps, Input, type InputAddonProps, type InputElementProps, InputGroup, type InputGroupProps, InputLeftAddon, InputLeftElement, type InputProps, InputRightAddon, InputRightElement, InputWrapper, type InputWrapperProps, Label, type LabelProps, LayersIcon, List, ListItem, type ListItemProps, ListItemText, type ListItemTextProps, type ListProps, ListSubheader, type ListSubheaderProps, MarkdownContent, type MarkdownContentProps, MediaIcon, Menu, MenuContent, type MenuContentProps, MenuItem, type MenuItemProps, MenuLabel, type MenuProps, MenuSeparator, MenuTrigger, type MenuTriggerProps, Message, MessageActions, type MessageActionsConfig, type MessageActionsProps, type MessageActionsVariant, type MessageBranchInfo, type MessageNode, type MessageProps, type MessageVariant, Modal, type ModalProps, NODE_TYPES, Navbar, NavbarBrand, type NavbarBrandProps, NavbarContent, type NavbarContentProps, NavbarDivider, NavbarItem, type NavbarItemProps, NavbarLink, type NavbarLinkProps, type NavbarProps, type NodeType, Pagination, type PaginationProps, PdfCard, type PdfCardProps, PlusIcon, Popover, type PopoverAlign, type PopoverPosition, type PopoverProps, Progress, type ProgressProps, PromptDialog, type PromptDialogProps, Radio, type RadioProps, Row, type RowAlign, type RowGutter, type RowJustify, type RowProps, SCRIPT_ELEMENT_TYPES, ScriptCard, type ScriptCardProps, type ScriptElement, type ScriptElementType, SectionHeading, type SectionHeadingLevel, type SectionHeadingProps, Select, type SelectOption, type SelectProps, Skeleton, type SkeletonProps, Slider, type SliderProps, Spinner, type SpinnerProps, SquareLoaderIcon, Stack, type StackDirection, type StackGap, type StackProps, type Step, type StepStatus, Stepper, type StepperProps, StreamingCursor, type StreamingCursorProps, Switch, type SwitchProps, TASK_STATUSES, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, type TabProps, Table, TableBody, type TableBodyProps, TableCaption, type TableCaptionProps, TableCell, type TableCellProps, TableFooter, type TableFooterProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, type Task, type TaskStatus, TextCard, type TextCardProps, Textarea, type TextareaProps, ThinkingIndicator, type ThinkingIndicatorProps, type ToastData, type ToastPosition, ToastProvider, type ToastProviderProps, type ToastVariant, TodosList, type TodosListProps, type ToolDefinition, type ToolGroup, ToolPanelContainer, type ToolPanelContainerProps, type ToolPanelState, ToolSidebar, type ToolSidebarProps, Tooltip, type TooltipProps, type UseArtifactTreeNavigationReturn, type UseScrollAnchorOptions, type UseScrollAnchorReturn, type VideoAspectRatio, type VideoAspectRatioPreset, VideoCard, type VideoCardProps, addMessageToTree, areAllTasksSettled, createEmptyTree, createPreviewUrl, generateId, getActivePathMessages, getSiblingInfo, isBranchPoint, isImageFile, messagesToTree, revokePreviewUrl, switchBranch, updateNodeContent, useArtifactTreeNavigation, useResizable, useScrollAnchor, useToast, version };