@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.
- package/LICENSE +21 -0
- package/README.md +78 -0
- package/dist/api/index.d.ts +9 -0
- package/dist/components/container/AgentPane.d.ts +56 -0
- package/dist/components/container/ContainerView.d.ts +119 -0
- package/dist/components/container/DefinitionPane.d.ts +27 -0
- package/dist/components/container/InputPane.d.ts +44 -0
- package/dist/components/container/InputToolBar.d.ts +22 -0
- package/dist/components/container/MessagePane.d.ts +32 -0
- package/dist/components/container/SessionPane.d.ts +35 -0
- package/dist/components/container/index.d.ts +22 -0
- package/dist/components/container/types.d.ts +67 -0
- package/dist/components/element/ActionBar.d.ts +43 -0
- package/dist/components/element/AgentLogo.d.ts +21 -0
- package/dist/components/element/AppHeader.d.ts +84 -0
- package/dist/components/element/Badge.d.ts +9 -0
- package/dist/components/element/Button.d.ts +11 -0
- package/dist/components/element/EmptyState.d.ts +56 -0
- package/dist/components/element/ImageAttachment.d.ts +50 -0
- package/dist/components/element/Input.d.ts +5 -0
- package/dist/components/element/ListItem.d.ts +106 -0
- package/dist/components/element/LoadingState.d.ts +51 -0
- package/dist/components/element/MessageAvatar.d.ts +61 -0
- package/dist/components/element/PageHeader.d.ts +90 -0
- package/dist/components/element/Popover.d.ts +20 -0
- package/dist/components/element/ScrollArea.d.ts +6 -0
- package/dist/components/element/SearchInput.d.ts +75 -0
- package/dist/components/element/TabNavigation.d.ts +91 -0
- package/dist/components/element/TimeAgo.d.ts +46 -0
- package/dist/components/element/TokenUsagePie.d.ts +33 -0
- package/dist/components/element/index.d.ts +18 -0
- package/dist/components/input/InputBox.d.ts +43 -0
- package/dist/components/input/index.d.ts +1 -0
- package/dist/components/layout/ActivityBar.d.ts +62 -0
- package/dist/components/layout/Header.d.ts +36 -0
- package/dist/components/layout/MainContent.d.ts +21 -0
- package/dist/components/layout/Panel.d.ts +44 -0
- package/dist/components/layout/RightSidebar.d.ts +43 -0
- package/dist/components/layout/Sidebar.d.ts +34 -0
- package/dist/components/layout/StatusBar.d.ts +66 -0
- package/dist/components/layout/index.d.ts +7 -0
- package/dist/components/message/MessageList.d.ts +16 -0
- package/dist/components/message/StatusIndicator.d.ts +28 -0
- package/dist/components/message/index.d.ts +4 -0
- package/dist/components/message/items/AssistantMessage.d.ts +33 -0
- package/dist/components/message/items/ErrorAlert.d.ts +33 -0
- package/dist/components/message/items/SystemMessage.d.ts +25 -0
- package/dist/components/message/items/ToolCallMessage.d.ts +31 -0
- package/dist/components/message/items/ToolResultMessage.d.ts +33 -0
- package/dist/components/message/items/ToolUseMessage.d.ts +30 -0
- package/dist/components/message/items/UserMessage.d.ts +27 -0
- package/dist/components/message/items/index.d.ts +7 -0
- package/dist/components/message/parts/FileContent.d.ts +24 -0
- package/dist/components/message/parts/ImageContent.d.ts +32 -0
- package/dist/components/message/parts/TextContent.d.ts +20 -0
- package/dist/components/message/parts/ThinkingContent.d.ts +28 -0
- package/dist/components/message/parts/ToolCallContent.d.ts +31 -0
- package/dist/components/message/parts/ToolResultContent.d.ts +32 -0
- package/dist/components/message/parts/index.d.ts +6 -0
- package/dist/components/studio/Studio.d.ts +47 -0
- package/dist/components/studio/index.d.ts +9 -0
- package/dist/components/typography/DiffViewer.d.ts +41 -0
- package/dist/components/typography/JSONRenderer.d.ts +23 -0
- package/dist/components/typography/MarkdownText.d.ts +25 -0
- package/dist/components/typography/index.d.ts +3 -0
- package/dist/globals.css +201 -0
- package/dist/hooks/index.d.ts +28 -0
- package/dist/hooks/useAgent.d.ts +71 -0
- package/dist/hooks/useAgentX.d.ts +10 -0
- package/dist/hooks/useSession.d.ts +79 -0
- package/dist/index-CB5mSMCj.js +3041 -0
- package/dist/index-CB5mSMCj.js.map +1 -0
- package/dist/index-CyXGvO5F.js +27676 -0
- package/dist/index-CyXGvO5F.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +64 -0
- package/dist/index.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/utils/eventBus.d.ts +93 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/timeUtils.d.ts +14 -0
- package/dist/utils/utils.d.ts +13 -0
- 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,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;
|