@agentxjs/ui 0.0.1

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 (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +78 -0
  3. package/dist/api/index.d.ts +9 -0
  4. package/dist/components/container/AgentPane.d.ts +56 -0
  5. package/dist/components/container/ContainerView.d.ts +119 -0
  6. package/dist/components/container/DefinitionPane.d.ts +27 -0
  7. package/dist/components/container/InputPane.d.ts +44 -0
  8. package/dist/components/container/InputToolBar.d.ts +22 -0
  9. package/dist/components/container/MessagePane.d.ts +32 -0
  10. package/dist/components/container/SessionPane.d.ts +35 -0
  11. package/dist/components/container/index.d.ts +22 -0
  12. package/dist/components/container/types.d.ts +67 -0
  13. package/dist/components/element/ActionBar.d.ts +43 -0
  14. package/dist/components/element/AgentLogo.d.ts +21 -0
  15. package/dist/components/element/AppHeader.d.ts +84 -0
  16. package/dist/components/element/Badge.d.ts +9 -0
  17. package/dist/components/element/Button.d.ts +11 -0
  18. package/dist/components/element/EmptyState.d.ts +56 -0
  19. package/dist/components/element/ImageAttachment.d.ts +50 -0
  20. package/dist/components/element/Input.d.ts +5 -0
  21. package/dist/components/element/ListItem.d.ts +106 -0
  22. package/dist/components/element/LoadingState.d.ts +51 -0
  23. package/dist/components/element/MessageAvatar.d.ts +61 -0
  24. package/dist/components/element/PageHeader.d.ts +90 -0
  25. package/dist/components/element/Popover.d.ts +20 -0
  26. package/dist/components/element/ScrollArea.d.ts +6 -0
  27. package/dist/components/element/SearchInput.d.ts +75 -0
  28. package/dist/components/element/TabNavigation.d.ts +91 -0
  29. package/dist/components/element/TimeAgo.d.ts +46 -0
  30. package/dist/components/element/TokenUsagePie.d.ts +33 -0
  31. package/dist/components/element/index.d.ts +18 -0
  32. package/dist/components/input/InputBox.d.ts +43 -0
  33. package/dist/components/input/index.d.ts +1 -0
  34. package/dist/components/layout/ActivityBar.d.ts +62 -0
  35. package/dist/components/layout/Header.d.ts +36 -0
  36. package/dist/components/layout/MainContent.d.ts +21 -0
  37. package/dist/components/layout/Panel.d.ts +44 -0
  38. package/dist/components/layout/RightSidebar.d.ts +43 -0
  39. package/dist/components/layout/Sidebar.d.ts +34 -0
  40. package/dist/components/layout/StatusBar.d.ts +66 -0
  41. package/dist/components/layout/index.d.ts +7 -0
  42. package/dist/components/message/MessageList.d.ts +16 -0
  43. package/dist/components/message/StatusIndicator.d.ts +28 -0
  44. package/dist/components/message/index.d.ts +4 -0
  45. package/dist/components/message/items/AssistantMessage.d.ts +33 -0
  46. package/dist/components/message/items/ErrorAlert.d.ts +33 -0
  47. package/dist/components/message/items/SystemMessage.d.ts +25 -0
  48. package/dist/components/message/items/ToolCallMessage.d.ts +31 -0
  49. package/dist/components/message/items/ToolResultMessage.d.ts +33 -0
  50. package/dist/components/message/items/ToolUseMessage.d.ts +30 -0
  51. package/dist/components/message/items/UserMessage.d.ts +27 -0
  52. package/dist/components/message/items/index.d.ts +7 -0
  53. package/dist/components/message/parts/FileContent.d.ts +24 -0
  54. package/dist/components/message/parts/ImageContent.d.ts +32 -0
  55. package/dist/components/message/parts/TextContent.d.ts +20 -0
  56. package/dist/components/message/parts/ThinkingContent.d.ts +28 -0
  57. package/dist/components/message/parts/ToolCallContent.d.ts +31 -0
  58. package/dist/components/message/parts/ToolResultContent.d.ts +32 -0
  59. package/dist/components/message/parts/index.d.ts +6 -0
  60. package/dist/components/studio/Studio.d.ts +47 -0
  61. package/dist/components/studio/index.d.ts +9 -0
  62. package/dist/components/typography/DiffViewer.d.ts +41 -0
  63. package/dist/components/typography/JSONRenderer.d.ts +23 -0
  64. package/dist/components/typography/MarkdownText.d.ts +25 -0
  65. package/dist/components/typography/index.d.ts +3 -0
  66. package/dist/globals.css +201 -0
  67. package/dist/hooks/index.d.ts +28 -0
  68. package/dist/hooks/useAgent.d.ts +71 -0
  69. package/dist/hooks/useAgentX.d.ts +10 -0
  70. package/dist/hooks/useSession.d.ts +79 -0
  71. package/dist/index-CB5mSMCj.js +3041 -0
  72. package/dist/index-CB5mSMCj.js.map +1 -0
  73. package/dist/index-CyXGvO5F.js +27676 -0
  74. package/dist/index-CyXGvO5F.js.map +1 -0
  75. package/dist/index.d.ts +2 -0
  76. package/dist/index.js +64 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/types/index.d.ts +1 -0
  79. package/dist/utils/eventBus.d.ts +93 -0
  80. package/dist/utils/index.d.ts +3 -0
  81. package/dist/utils/timeUtils.d.ts +14 -0
  82. package/dist/utils/utils.d.ts +13 -0
  83. package/package.json +87 -0
@@ -0,0 +1,33 @@
1
+ export interface TokenUsagePieProps {
2
+ /**
3
+ * Number of tokens used
4
+ */
5
+ used: number;
6
+ /**
7
+ * Total token limit
8
+ */
9
+ total: number;
10
+ /**
11
+ * Additional CSS classes
12
+ */
13
+ className?: string;
14
+ }
15
+ /**
16
+ * TokenUsagePie - Display token usage as a circular progress indicator
17
+ *
18
+ * Single Responsibility: Visualize token usage percentage with color coding
19
+ *
20
+ * Color coding (following design system):
21
+ * - Blue (<50%): Normal usage - computational color
22
+ * - Amber (50-75%): Warning - generative/attention color
23
+ * - Red (>75%): Critical - destructive color
24
+ *
25
+ * Returns null if invalid data
26
+ *
27
+ * @example
28
+ * ```tsx
29
+ * <TokenUsagePie used={5000} total={8000} />
30
+ * <TokenUsagePie used={120000} total={200000} />
31
+ * ```
32
+ */
33
+ export declare function TokenUsagePie({ used, total, className }: TokenUsagePieProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,18 @@
1
+ export { ActionBar } from './ActionBar';
2
+ export { AgentLogo } from './AgentLogo';
3
+ export { AppHeader } from './AppHeader';
4
+ export { Badge } from './Badge';
5
+ export { Button } from './Button';
6
+ export { EmptyState } from './EmptyState';
7
+ export { ImageAttachment } from './ImageAttachment';
8
+ export { Input } from './Input';
9
+ export { ListItem } from './ListItem';
10
+ export { LoadingState } from './LoadingState';
11
+ export { MessageAvatar } from './MessageAvatar';
12
+ export { PageHeader } from './PageHeader';
13
+ export { Popover } from './Popover';
14
+ export { ScrollArea } from './ScrollArea';
15
+ export { SearchInput } from './SearchInput';
16
+ export { TabNavigation } from './TabNavigation';
17
+ export { TimeAgo } from './TimeAgo';
18
+ export { TokenUsagePie } from './TokenUsagePie';
@@ -0,0 +1,43 @@
1
+ /**
2
+ * InputBox - Full-height textarea with send button
3
+ *
4
+ * Pure UI component for text input that fills available space.
5
+ *
6
+ * Features:
7
+ * - Full-height textarea (fills container)
8
+ * - Enter to send, Shift+Enter for new line
9
+ * - Send button at bottom right
10
+ * - Minimal design, no borders or decorations
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * <InputBox
15
+ * onSend={(text) => console.log('Send:', text)}
16
+ * disabled={isLoading}
17
+ * placeholder="Type a message..."
18
+ * />
19
+ * ```
20
+ */
21
+ export interface InputBoxProps {
22
+ /**
23
+ * Callback when user sends a message
24
+ */
25
+ onSend: (text: string) => void;
26
+ /**
27
+ * Whether the input is disabled (e.g., while AI is responding)
28
+ */
29
+ disabled?: boolean;
30
+ /**
31
+ * Placeholder text
32
+ */
33
+ placeholder?: string;
34
+ /**
35
+ * Initial value
36
+ */
37
+ defaultValue?: string;
38
+ /**
39
+ * Custom className
40
+ */
41
+ className?: string;
42
+ }
43
+ export declare function InputBox({ onSend, disabled, placeholder, defaultValue, className, }: InputBoxProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export { InputBox, type InputBoxProps } from './InputBox';
@@ -0,0 +1,62 @@
1
+ import * as React from "react";
2
+ export interface ActivityBarItem {
3
+ /**
4
+ * Unique identifier
5
+ */
6
+ id: string;
7
+ /**
8
+ * Icon element
9
+ */
10
+ icon: React.ReactNode;
11
+ /**
12
+ * Tooltip text
13
+ */
14
+ label: string;
15
+ /**
16
+ * Badge content (e.g., notification count)
17
+ */
18
+ badge?: string | number;
19
+ }
20
+ export interface ActivityBarProps extends React.HTMLAttributes<HTMLDivElement> {
21
+ /**
22
+ * Top activity bar items (main features)
23
+ */
24
+ items: ActivityBarItem[];
25
+ /**
26
+ * Bottom activity bar items (settings, account, etc.)
27
+ */
28
+ bottomItems?: ActivityBarItem[];
29
+ /**
30
+ * Currently active item ID
31
+ */
32
+ activeId?: string;
33
+ /**
34
+ * Callback when item is clicked
35
+ */
36
+ onItemClick?: (id: string) => void;
37
+ /**
38
+ * Position of the activity bar
39
+ * @default 'left'
40
+ */
41
+ position?: "left" | "right";
42
+ }
43
+ /**
44
+ * ActivityBar - VSCode-style activity bar with icon buttons
45
+ *
46
+ * A vertical bar with icon buttons, typically used for switching between
47
+ * different views/panels. Inspired by VSCode's activity bar.
48
+ *
49
+ * @example
50
+ * ```tsx
51
+ * <ActivityBar
52
+ * items={[
53
+ * { id: 'explorer', icon: <FileIcon />, label: 'Explorer' },
54
+ * { id: 'search', icon: <SearchIcon />, label: 'Search' },
55
+ * { id: 'git', icon: <GitIcon />, label: 'Git', badge: 3 },
56
+ * ]}
57
+ * activeId="explorer"
58
+ * onItemClick={setActiveView}
59
+ * />
60
+ * ```
61
+ */
62
+ export declare const ActivityBar: React.ForwardRefExoticComponent<ActivityBarProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,36 @@
1
+ import * as React from "react";
2
+ export interface HeaderProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ /**
4
+ * Left section content (e.g., logo, title)
5
+ */
6
+ left?: React.ReactNode;
7
+ /**
8
+ * Center section content (e.g., search bar, tabs)
9
+ */
10
+ center?: React.ReactNode;
11
+ /**
12
+ * Right section content (e.g., user menu, notifications)
13
+ */
14
+ right?: React.ReactNode;
15
+ /**
16
+ * Header height in pixels
17
+ * @default 56
18
+ */
19
+ height?: number;
20
+ }
21
+ /**
22
+ * Header - Application-level top header bar
23
+ *
24
+ * A fixed-height header that spans the entire width of the application.
25
+ * Use this for global navigation, branding, search, and user controls.
26
+ *
27
+ * @example
28
+ * ```tsx
29
+ * <Header
30
+ * left={<Logo />}
31
+ * center={<SearchBar />}
32
+ * right={<UserMenu />}
33
+ * />
34
+ * ```
35
+ */
36
+ export declare const Header: React.ForwardRefExoticComponent<HeaderProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,21 @@
1
+ import * as React from "react";
2
+ export interface MainContentProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ /**
4
+ * Main content
5
+ */
6
+ children: React.ReactNode;
7
+ }
8
+ /**
9
+ * MainContent - Main content area container
10
+ *
11
+ * A semantic container for the main content area with consistent styling.
12
+ * This is where your primary content (chat, editor, dashboard) lives.
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * <MainContent>
17
+ * <ChatInterface />
18
+ * </MainContent>
19
+ * ```
20
+ */
21
+ export declare const MainContent: React.ForwardRefExoticComponent<MainContentProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,44 @@
1
+ import * as React from "react";
2
+ export interface PanelProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ /**
4
+ * Initial height in pixels
5
+ * @default 200
6
+ */
7
+ height?: number;
8
+ /**
9
+ * Minimum height in pixels
10
+ * @default 100
11
+ */
12
+ minHeight?: number;
13
+ /**
14
+ * Maximum height in pixels
15
+ * @default 500
16
+ */
17
+ maxHeight?: number;
18
+ /**
19
+ * Panel content
20
+ */
21
+ children: React.ReactNode;
22
+ }
23
+ /**
24
+ * Panel - Resizable bottom panel container
25
+ *
26
+ * A container for bottom panel content (terminal, output, logs, etc.)
27
+ * with consistent styling. Should be used with Allotment (vertical)
28
+ * for resizing functionality.
29
+ *
30
+ * @example
31
+ * ```tsx
32
+ * <Allotment vertical>
33
+ * <Allotment.Pane>
34
+ * <MainContent />
35
+ * </Allotment.Pane>
36
+ * <Allotment.Pane minSize={100} maxSize={500} preferredSize={200}>
37
+ * <Panel>
38
+ * <Terminal />
39
+ * </Panel>
40
+ * </Allotment.Pane>
41
+ * </Allotment>
42
+ * ```
43
+ */
44
+ export declare const Panel: React.ForwardRefExoticComponent<PanelProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,43 @@
1
+ import * as React from "react";
2
+ export interface RightSidebarProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ /**
4
+ * Initial width in pixels
5
+ * @default 300
6
+ */
7
+ width?: number;
8
+ /**
9
+ * Minimum width in pixels
10
+ * @default 200
11
+ */
12
+ minWidth?: number;
13
+ /**
14
+ * Maximum width in pixels
15
+ * @default 600
16
+ */
17
+ maxWidth?: number;
18
+ /**
19
+ * Sidebar content
20
+ */
21
+ children: React.ReactNode;
22
+ }
23
+ /**
24
+ * RightSidebar - Resizable right sidebar container
25
+ *
26
+ * A container for right sidebar content (outline, properties, preview, etc.)
27
+ * with consistent styling. Should be used with Allotment for resizing functionality.
28
+ *
29
+ * @example
30
+ * ```tsx
31
+ * <Allotment>
32
+ * <Allotment.Pane>
33
+ * <MainContent />
34
+ * </Allotment.Pane>
35
+ * <Allotment.Pane minSize={200} maxSize={600} preferredSize={300}>
36
+ * <RightSidebar>
37
+ * <Outline />
38
+ * </RightSidebar>
39
+ * </Allotment.Pane>
40
+ * </Allotment>
41
+ * ```
42
+ */
43
+ export declare const RightSidebar: React.ForwardRefExoticComponent<RightSidebarProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,34 @@
1
+ import * as React from "react";
2
+ export interface SidebarProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ /**
4
+ * Position of the sidebar
5
+ * @default 'left'
6
+ */
7
+ position?: "left" | "right";
8
+ /**
9
+ * Sidebar content
10
+ */
11
+ children: React.ReactNode;
12
+ }
13
+ /**
14
+ * Sidebar - Sidebar container
15
+ *
16
+ * A container for sidebar content with consistent styling.
17
+ * Should be used with Allotment for resizing functionality.
18
+ * Width is controlled by Allotment.Pane, not by this component.
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * <Allotment>
23
+ * <Allotment.Pane minSize={200} maxSize={600} preferredSize={256}>
24
+ * <Sidebar>
25
+ * <SessionList sessions={sessions} />
26
+ * </Sidebar>
27
+ * </Allotment.Pane>
28
+ * <Allotment.Pane>
29
+ * <MainContent />
30
+ * </Allotment.Pane>
31
+ * </Allotment>
32
+ * ```
33
+ */
34
+ export declare const Sidebar: React.ForwardRefExoticComponent<SidebarProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,66 @@
1
+ import * as React from "react";
2
+ export interface StatusBarItemProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ /**
4
+ * Optional icon
5
+ */
6
+ icon?: React.ReactNode;
7
+ /**
8
+ * Item content
9
+ */
10
+ children: React.ReactNode;
11
+ /**
12
+ * Whether the item is clickable
13
+ */
14
+ clickable?: boolean;
15
+ }
16
+ /**
17
+ * StatusBarItem - Individual item in the status bar
18
+ */
19
+ export declare const StatusBarItem: React.ForwardRefExoticComponent<StatusBarItemProps & React.RefAttributes<HTMLDivElement>>;
20
+ export interface StatusBarSectionProps extends React.HTMLAttributes<HTMLDivElement> {
21
+ /**
22
+ * Alignment of items in this section
23
+ * @default 'left'
24
+ */
25
+ align?: "left" | "center" | "right";
26
+ /**
27
+ * Section content
28
+ */
29
+ children: React.ReactNode;
30
+ }
31
+ /**
32
+ * StatusBarSection - Group of items in the status bar
33
+ */
34
+ export declare const StatusBarSection: React.ForwardRefExoticComponent<StatusBarSectionProps & React.RefAttributes<HTMLDivElement>>;
35
+ export interface StatusBarProps extends React.HTMLAttributes<HTMLDivElement> {
36
+ /**
37
+ * Status bar height in pixels
38
+ * @default 24
39
+ */
40
+ height?: number;
41
+ /**
42
+ * Status bar content
43
+ */
44
+ children: React.ReactNode;
45
+ }
46
+ /**
47
+ * StatusBar - VSCode-style bottom status bar
48
+ *
49
+ * A fixed-height status bar that displays global application state.
50
+ * Use StatusBarSection to organize items with different alignments.
51
+ *
52
+ * @example
53
+ * ```tsx
54
+ * <StatusBar>
55
+ * <StatusBarSection align="left">
56
+ * <StatusBarItem icon={<GitBranch />}>main</StatusBarItem>
57
+ * <StatusBarItem icon={<AlertCircle />}>0 errors</StatusBarItem>
58
+ * </StatusBarSection>
59
+ * <StatusBarSection align="right">
60
+ * <StatusBarItem>Line 42, Col 8</StatusBarItem>
61
+ * <StatusBarItem>UTF-8</StatusBarItem>
62
+ * </StatusBarSection>
63
+ * </StatusBar>
64
+ * ```
65
+ */
66
+ export declare const StatusBar: React.ForwardRefExoticComponent<StatusBarProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,7 @@
1
+ export { ActivityBar } from './ActivityBar';
2
+ export { Header } from './Header';
3
+ export { MainContent } from './MainContent';
4
+ export { Panel } from './Panel';
5
+ export { RightSidebar } from './RightSidebar';
6
+ export { Sidebar } from './Sidebar';
7
+ export { StatusBar } from './StatusBar';
@@ -0,0 +1,16 @@
1
+ import { Message } from '@agentxjs/types';
2
+ export interface MessageListProps {
3
+ /**
4
+ * Array of messages to display
5
+ */
6
+ messages: Message[];
7
+ /**
8
+ * Current streaming text (if any)
9
+ */
10
+ streamingText?: string;
11
+ /**
12
+ * Custom className
13
+ */
14
+ className?: string;
15
+ }
16
+ export declare function MessageList({ messages, streamingText, className }: MessageListProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,28 @@
1
+ import { AgentState } from '@agentxjs/types';
2
+ export interface StatusIndicatorProps {
3
+ /**
4
+ * Current agent state
5
+ */
6
+ status: AgentState;
7
+ /**
8
+ * Whether the agent is currently processing
9
+ */
10
+ isLoading: boolean;
11
+ /**
12
+ * Callback to abort/interrupt the current operation
13
+ */
14
+ onAbort?: () => void;
15
+ /**
16
+ * Whether to show the abort button
17
+ * @default true
18
+ */
19
+ showAbortButton?: boolean;
20
+ /**
21
+ * Custom className
22
+ */
23
+ className?: string;
24
+ }
25
+ /**
26
+ * StatusIndicator - Displays status with animations
27
+ */
28
+ export declare function StatusIndicator({ status, isLoading, onAbort, showAbortButton, className, }: StatusIndicatorProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,4 @@
1
+ export { MessageList, type MessageListProps } from './MessageList';
2
+ export { StatusIndicator, type StatusIndicatorProps } from './StatusIndicator';
3
+ export * from './items';
4
+ export * from './parts';
@@ -0,0 +1,33 @@
1
+ import { AssistantMessage as AssistantMessageType } from '@agentxjs/types';
2
+ export interface AssistantMessageProps {
3
+ /**
4
+ * Assistant message data
5
+ */
6
+ message: AssistantMessageType;
7
+ /**
8
+ * Whether this message is currently streaming
9
+ */
10
+ isStreaming?: boolean;
11
+ }
12
+ /**
13
+ * AssistantMessage - Display an AI assistant message
14
+ *
15
+ * Features:
16
+ * - AI avatar (blue color)
17
+ * - Text content rendering
18
+ * - Thinking process (collapsible)
19
+ * - Tool calls display
20
+ * - File attachments
21
+ * - Streaming support
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * <AssistantMessage message={{
26
+ * id: '2',
27
+ * role: 'assistant',
28
+ * content: 'Here is the answer...',
29
+ * timestamp: Date.now()
30
+ * }} />
31
+ * ```
32
+ */
33
+ export declare function AssistantMessage({ message, isStreaming }: AssistantMessageProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,33 @@
1
+ import { AgentError } from '@agentxjs/types';
2
+ export interface ErrorAlertProps {
3
+ /**
4
+ * The AgentError to display
5
+ */
6
+ error: AgentError;
7
+ /**
8
+ * Whether to show detailed error information
9
+ * @default false
10
+ */
11
+ showDetails?: boolean;
12
+ }
13
+ /**
14
+ * ErrorAlert - Display an agent error
15
+ *
16
+ * Features:
17
+ * - Error severity visualization (fatal/error/warning)
18
+ * - Error category badge (driver/llm/network/validation/system)
19
+ * - Error code and message
20
+ * - Optional details expansion
21
+ *
22
+ * @example
23
+ * ```tsx
24
+ * <ErrorAlert error={{
25
+ * category: 'llm',
26
+ * code: 'RATE_LIMITED',
27
+ * message: 'Rate limit exceeded',
28
+ * severity: 'error',
29
+ * recoverable: true,
30
+ * }} />
31
+ * ```
32
+ */
33
+ export declare function ErrorAlert({ error, showDetails }: ErrorAlertProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,25 @@
1
+ import { SystemMessage as SystemMessageType } from '@agentxjs/types';
2
+ export interface SystemMessageProps {
3
+ /**
4
+ * System message data
5
+ */
6
+ message: SystemMessageType;
7
+ }
8
+ /**
9
+ * SystemMessage - Display a system message
10
+ *
11
+ * Features:
12
+ * - System avatar (neutral gray)
13
+ * - System prompt or notification display
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * <SystemMessage message={{
18
+ * id: '0',
19
+ * role: 'system',
20
+ * content: 'You are a helpful assistant',
21
+ * timestamp: Date.now()
22
+ * }} />
23
+ * ```
24
+ */
25
+ export declare function SystemMessage({ message }: SystemMessageProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,31 @@
1
+ import { ToolCallMessage as ToolCallMessageType } from '@agentxjs/types';
2
+ export interface ToolCallMessageProps {
3
+ /**
4
+ * Tool call message data
5
+ */
6
+ message: ToolCallMessageType;
7
+ }
8
+ /**
9
+ * ToolCallMessage - Display AI's request to call a tool
10
+ *
11
+ * Features:
12
+ * - Tool avatar (info blue)
13
+ * - Tool call display (collapsible)
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * <ToolCallMessage message={{
18
+ * id: '3',
19
+ * role: 'assistant',
20
+ * subtype: 'tool-call',
21
+ * toolCall: {
22
+ * type: 'tool-call',
23
+ * id: 'call_123',
24
+ * name: 'get_weather',
25
+ * input: { location: 'San Francisco' }
26
+ * },
27
+ * timestamp: Date.now()
28
+ * }} />
29
+ * ```
30
+ */
31
+ export declare function ToolCallMessage({ message }: ToolCallMessageProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,33 @@
1
+ import { ToolResultMessage as ToolResultMessageType } from '@agentxjs/types';
2
+ export interface ToolResultMessageProps {
3
+ /**
4
+ * Tool result message data
5
+ */
6
+ message: ToolResultMessageType;
7
+ }
8
+ /**
9
+ * ToolResultMessage - Display tool execution result
10
+ *
11
+ * Features:
12
+ * - Tool result avatar (success green)
13
+ * - Tool result display (collapsible)
14
+ * - Rich output formatting
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * <ToolResultMessage message={{
19
+ * id: '4',
20
+ * role: 'tool',
21
+ * subtype: 'tool-result',
22
+ * toolResult: {
23
+ * type: 'tool-result',
24
+ * id: 'call_123',
25
+ * name: 'get_weather',
26
+ * output: { type: 'text', value: 'Temperature: 72°F' }
27
+ * },
28
+ * toolCallId: 'call_123',
29
+ * timestamp: Date.now()
30
+ * }} />
31
+ * ```
32
+ */
33
+ export declare function ToolResultMessage({ message }: ToolResultMessageProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,30 @@
1
+ import { ToolCallMessage, ToolResultMessage } from '@agentxjs/types';
2
+ export interface ToolUseMessageProps {
3
+ /**
4
+ * Tool call message
5
+ */
6
+ toolCall: ToolCallMessage;
7
+ /**
8
+ * Tool result message (optional - may not have arrived yet)
9
+ */
10
+ toolResult?: ToolResultMessage;
11
+ /**
12
+ * Whether to show expanded by default
13
+ */
14
+ defaultExpanded?: boolean;
15
+ }
16
+ /**
17
+ * ToolUseMessage - Unified display of tool call + result
18
+ *
19
+ * Combines ToolCallMessage and ToolResultMessage into a single visual unit.
20
+ * Supports streaming: shows "executing" state when result hasn't arrived yet.
21
+ *
22
+ * @example
23
+ * ```tsx
24
+ * <ToolUseMessage
25
+ * toolCall={toolCallMsg}
26
+ * toolResult={toolResultMsg}
27
+ * />
28
+ * ```
29
+ */
30
+ export declare function ToolUseMessage({ toolCall, toolResult, defaultExpanded, }: ToolUseMessageProps): import("react/jsx-runtime").JSX.Element;