@omniviewdev/ui 0.1.3 → 0.1.4

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 (63) hide show
  1. package/dist/ai/agents/AgentBanner.d.ts +13 -0
  2. package/dist/ai/agents/AgentControls.d.ts +15 -0
  3. package/dist/ai/agents/AgentPopup.d.ts +26 -0
  4. package/dist/ai/agents/AgentStatusItem.d.ts +14 -0
  5. package/dist/ai/agents/AgentTaskList.d.ts +17 -0
  6. package/dist/ai/agents/index.d.ts +10 -0
  7. package/dist/ai/chat/ChatAvatar.d.ts +15 -0
  8. package/dist/ai/chat/ChatBubble.d.ts +19 -0
  9. package/dist/ai/chat/ChatConversation.d.ts +21 -0
  10. package/dist/ai/chat/ChatDrawer.d.ts +14 -0
  11. package/dist/ai/chat/ChatHeader.d.ts +15 -0
  12. package/dist/ai/chat/ChatHistory.d.ts +21 -0
  13. package/dist/ai/chat/ChatInput.d.ts +19 -0
  14. package/dist/ai/chat/ChatMessageList.d.ts +29 -0
  15. package/dist/ai/chat/ChatSuggestions.d.ts +11 -0
  16. package/dist/ai/chat/ChatTabs.d.ts +18 -0
  17. package/dist/ai/chat/index.d.ts +20 -0
  18. package/dist/ai/content/AIArtifact.d.ts +14 -0
  19. package/dist/ai/content/AICodeBlock.d.ts +14 -0
  20. package/dist/ai/content/AIInlineCitation.d.ts +12 -0
  21. package/dist/ai/content/AIMarkdown.d.ts +12 -0
  22. package/dist/ai/content/AISources.d.ts +16 -0
  23. package/dist/ai/content/index.d.ts +10 -0
  24. package/dist/ai/context/AIContextBar.d.ts +25 -0
  25. package/dist/ai/context/index.d.ts +2 -0
  26. package/dist/ai/domain/AIActionConfirmation.d.ts +21 -0
  27. package/dist/ai/domain/AICommandSuggestion.d.ts +15 -0
  28. package/dist/ai/domain/AIDiffView.d.ts +15 -0
  29. package/dist/ai/domain/AIEventList.d.ts +21 -0
  30. package/dist/ai/domain/AIHealthSummary.d.ts +24 -0
  31. package/dist/ai/domain/AILogViewer.d.ts +20 -0
  32. package/dist/ai/domain/AIMetricSnapshot.d.ts +22 -0
  33. package/dist/ai/domain/AIRelatedResources.d.ts +20 -0
  34. package/dist/ai/domain/AIResourceCard.d.ts +24 -0
  35. package/dist/ai/domain/AIResourceTable.d.ts +19 -0
  36. package/dist/ai/domain/AIStructuredDataViewer.d.ts +16 -0
  37. package/dist/ai/domain/index.d.ts +22 -0
  38. package/dist/ai/feedback/AILoader.d.ts +11 -0
  39. package/dist/ai/feedback/ChainOfThought.d.ts +20 -0
  40. package/dist/ai/feedback/StreamingText.d.ts +14 -0
  41. package/dist/ai/feedback/ThinkingBlock.d.ts +13 -0
  42. package/dist/ai/feedback/TypingIndicator.d.ts +10 -0
  43. package/dist/ai/feedback/index.d.ts +10 -0
  44. package/dist/ai/index.d.ts +18 -0
  45. package/dist/ai/security/PermissionBadge.d.ts +11 -0
  46. package/dist/ai/security/PermissionGate.d.ts +14 -0
  47. package/dist/ai/security/PermissionRequest.d.ts +21 -0
  48. package/dist/ai/security/PermissionScopeEditor.d.ts +16 -0
  49. package/dist/ai/security/SecurityBanner.d.ts +12 -0
  50. package/dist/ai/security/index.d.ts +10 -0
  51. package/dist/ai/settings/MCPServerConfig.d.ts +19 -0
  52. package/dist/ai/settings/ModelSelector.d.ts +21 -0
  53. package/dist/ai/settings/ProviderCard.d.ts +22 -0
  54. package/dist/ai/settings/SettingsPanel.d.ts +22 -0
  55. package/dist/ai/settings/index.d.ts +8 -0
  56. package/dist/ai/tools/ActionBar.d.ts +15 -0
  57. package/dist/ai/tools/ToolCall.d.ts +16 -0
  58. package/dist/ai/tools/ToolCallList.d.ts +11 -0
  59. package/dist/ai/tools/ToolResult.d.ts +11 -0
  60. package/dist/ai/tools/index.d.ts +8 -0
  61. package/dist/tokens.css +3 -0
  62. package/package.json +20 -3
  63. package/dist/sidebars/NavMenu.test.d.ts +0 -1
@@ -0,0 +1,13 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface AgentBannerProps {
3
+ taskName: string;
4
+ status: 'running' | 'paused' | 'completed' | 'error';
5
+ onView?: () => void;
6
+ onDismiss?: () => void;
7
+ sx?: SxProps<Theme>;
8
+ }
9
+ declare function AgentBanner({ taskName, status, onView, onDismiss, sx, }: AgentBannerProps): import("react/jsx-runtime").JSX.Element;
10
+ declare namespace AgentBanner {
11
+ var displayName: string;
12
+ }
13
+ export default AgentBanner;
@@ -0,0 +1,15 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ import { AgentStatus } from './AgentStatusItem';
3
+ export interface AgentControlsProps {
4
+ status: AgentStatus;
5
+ onPause?: () => void;
6
+ onResume?: () => void;
7
+ onCancel?: () => void;
8
+ onDetach?: () => void;
9
+ sx?: SxProps<Theme>;
10
+ }
11
+ declare function AgentControls({ status, onPause, onResume, onCancel, onDetach, sx, }: AgentControlsProps): import("react/jsx-runtime").JSX.Element;
12
+ declare namespace AgentControls {
13
+ var displayName: string;
14
+ }
15
+ export default AgentControls;
@@ -0,0 +1,26 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ import { AgentTask } from './AgentTaskList';
3
+ import { AgentStatus } from './AgentStatusItem';
4
+ export interface AgentPopupProps {
5
+ open: boolean;
6
+ anchorEl: HTMLElement | null;
7
+ onClose: () => void;
8
+ agent: {
9
+ id: string;
10
+ status: AgentStatus;
11
+ taskName: string;
12
+ startedAt: string;
13
+ tasks: AgentTask[];
14
+ output?: string[];
15
+ };
16
+ onPause?: () => void;
17
+ onResume?: () => void;
18
+ onCancel?: () => void;
19
+ onDetach?: () => void;
20
+ sx?: SxProps<Theme>;
21
+ }
22
+ declare function AgentPopup({ open, anchorEl, onClose, agent, onPause, onResume, onCancel, onDetach, sx, }: AgentPopupProps): import("react/jsx-runtime").JSX.Element;
23
+ declare namespace AgentPopup {
24
+ var displayName: string;
25
+ }
26
+ export default AgentPopup;
@@ -0,0 +1,14 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export type AgentStatus = 'idle' | 'running' | 'paused' | 'error' | 'completed';
3
+ export interface AgentStatusItemProps {
4
+ status: AgentStatus;
5
+ taskName?: string;
6
+ progress?: number;
7
+ onClick?: () => void;
8
+ sx?: SxProps<Theme>;
9
+ }
10
+ declare function AgentStatusItem({ status, taskName, progress, onClick, sx, }: AgentStatusItemProps): import("react/jsx-runtime").JSX.Element;
11
+ declare namespace AgentStatusItem {
12
+ var displayName: string;
13
+ }
14
+ export default AgentStatusItem;
@@ -0,0 +1,17 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface AgentTask {
3
+ id: string;
4
+ label: string;
5
+ status: 'queued' | 'running' | 'complete' | 'failed';
6
+ detail?: string;
7
+ timestamp?: string;
8
+ }
9
+ export interface AgentTaskListProps {
10
+ tasks: AgentTask[];
11
+ sx?: SxProps<Theme>;
12
+ }
13
+ declare function AgentTaskList({ tasks, sx }: AgentTaskListProps): import("react/jsx-runtime").JSX.Element;
14
+ declare namespace AgentTaskList {
15
+ var displayName: string;
16
+ }
17
+ export default AgentTaskList;
@@ -0,0 +1,10 @@
1
+ export { default as AgentStatusItem } from './AgentStatusItem';
2
+ export type { AgentStatusItemProps, AgentStatus } from './AgentStatusItem';
3
+ export { default as AgentPopup } from './AgentPopup';
4
+ export type { AgentPopupProps } from './AgentPopup';
5
+ export { default as AgentTaskList } from './AgentTaskList';
6
+ export type { AgentTaskListProps, AgentTask } from './AgentTaskList';
7
+ export { default as AgentControls } from './AgentControls';
8
+ export type { AgentControlsProps } from './AgentControls';
9
+ export { default as AgentBanner } from './AgentBanner';
10
+ export type { AgentBannerProps } from './AgentBanner';
@@ -0,0 +1,15 @@
1
+ import { default as React } from 'react';
2
+ import { SxProps, Theme } from '@mui/material/styles';
3
+ export interface ChatAvatarProps {
4
+ role: 'user' | 'assistant' | 'system';
5
+ src?: string;
6
+ icon?: React.ReactNode;
7
+ status?: 'online' | 'busy' | 'offline';
8
+ size?: number;
9
+ sx?: SxProps<Theme>;
10
+ }
11
+ declare function ChatAvatar({ role, src, icon, status, size, sx, }: ChatAvatarProps): import("react/jsx-runtime").JSX.Element;
12
+ declare namespace ChatAvatar {
13
+ var displayName: string;
14
+ }
15
+ export default ChatAvatar;
@@ -0,0 +1,19 @@
1
+ import { default as React } from 'react';
2
+ import { SxProps, Theme } from '@mui/material/styles';
3
+ export type ChatBubbleSize = 'xs' | 'sm' | 'md' | 'lg';
4
+ export interface ChatBubbleProps {
5
+ role: 'user' | 'assistant' | 'system';
6
+ children: React.ReactNode;
7
+ timestamp?: string | Date;
8
+ avatar?: React.ReactNode;
9
+ actions?: React.ReactNode;
10
+ status?: 'sending' | 'sent' | 'error';
11
+ /** Controls the font size of the bubble content. Falls back to CSS var --ov-chat-font-size. */
12
+ size?: ChatBubbleSize;
13
+ sx?: SxProps<Theme>;
14
+ }
15
+ declare function ChatBubble({ role, children, timestamp, avatar, actions, status, size, sx, }: ChatBubbleProps): import("react/jsx-runtime").JSX.Element;
16
+ declare namespace ChatBubble {
17
+ var displayName: string;
18
+ }
19
+ export default ChatBubble;
@@ -0,0 +1,21 @@
1
+ import { default as React } from 'react';
2
+ import { SxProps, Theme } from '@mui/material/styles';
3
+ import { ChatMessage } from './ChatMessageList';
4
+ export interface ChatConversationProps {
5
+ messages: ChatMessage[];
6
+ inputValue: string;
7
+ onInputChange: (value: string) => void;
8
+ onSubmit: (value: string) => void;
9
+ renderMessage?: (msg: ChatMessage) => React.ReactNode;
10
+ header?: React.ReactNode;
11
+ disabled?: boolean;
12
+ loading?: boolean;
13
+ placeholder?: string;
14
+ inputActions?: React.ReactNode;
15
+ sx?: SxProps<Theme>;
16
+ }
17
+ declare function ChatConversation({ messages, inputValue, onInputChange, onSubmit, renderMessage, header, disabled, loading, placeholder, inputActions, sx, }: ChatConversationProps): import("react/jsx-runtime").JSX.Element;
18
+ declare namespace ChatConversation {
19
+ var displayName: string;
20
+ }
21
+ export default ChatConversation;
@@ -0,0 +1,14 @@
1
+ import { default as React } from 'react';
2
+ import { SxProps, Theme } from '@mui/material/styles';
3
+ export interface ChatDrawerProps {
4
+ open: boolean;
5
+ onClose: () => void;
6
+ width?: number | string;
7
+ children: React.ReactNode;
8
+ sx?: SxProps<Theme>;
9
+ }
10
+ declare function ChatDrawer({ open, onClose, width, children, sx, }: ChatDrawerProps): import("react/jsx-runtime").JSX.Element;
11
+ declare namespace ChatDrawer {
12
+ var displayName: string;
13
+ }
14
+ export default ChatDrawer;
@@ -0,0 +1,15 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface ChatHeaderProps {
3
+ modelName?: string;
4
+ tokenCount?: number;
5
+ maxTokens?: number;
6
+ onNewConversation?: () => void;
7
+ onToggleHistory?: () => void;
8
+ onClose?: () => void;
9
+ sx?: SxProps<Theme>;
10
+ }
11
+ declare function ChatHeader({ modelName, tokenCount, maxTokens, onNewConversation, onToggleHistory, onClose, sx, }: ChatHeaderProps): import("react/jsx-runtime").JSX.Element;
12
+ declare namespace ChatHeader {
13
+ var displayName: string;
14
+ }
15
+ export default ChatHeader;
@@ -0,0 +1,21 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface ConversationSummary {
3
+ id: string;
4
+ title: string;
5
+ lastMessage: string;
6
+ timestamp: string;
7
+ messageCount: number;
8
+ modelId?: string;
9
+ }
10
+ export interface ChatHistoryProps {
11
+ conversations: ConversationSummary[];
12
+ activeId?: string;
13
+ onSelect: (id: string) => void;
14
+ onDelete?: (id: string) => void;
15
+ sx?: SxProps<Theme>;
16
+ }
17
+ declare function ChatHistory({ conversations, activeId, onSelect, onDelete, sx, }: ChatHistoryProps): import("react/jsx-runtime").JSX.Element;
18
+ declare namespace ChatHistory {
19
+ var displayName: string;
20
+ }
21
+ export default ChatHistory;
@@ -0,0 +1,19 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface ChatInputProps {
3
+ value: string;
4
+ onChange: (value: string) => void;
5
+ onSubmit: (value: string) => void;
6
+ placeholder?: string;
7
+ disabled?: boolean;
8
+ loading?: boolean;
9
+ maxLength?: number;
10
+ actions?: React.ReactNode;
11
+ suggestions?: string[];
12
+ onSuggestionClick?: (suggestion: string) => void;
13
+ sx?: SxProps<Theme>;
14
+ }
15
+ declare function ChatInput({ value, onChange, onSubmit, placeholder, disabled, loading, maxLength, actions, sx, }: ChatInputProps): import("react/jsx-runtime").JSX.Element;
16
+ declare namespace ChatInput {
17
+ var displayName: string;
18
+ }
19
+ export default ChatInput;
@@ -0,0 +1,29 @@
1
+ import { default as React } from 'react';
2
+ import { SxProps, Theme } from '@mui/material/styles';
3
+ export interface ChatMessage {
4
+ id: string;
5
+ role: 'user' | 'assistant' | 'system';
6
+ content: string;
7
+ timestamp: string;
8
+ toolCalls?: Array<{
9
+ name: string;
10
+ args?: Record<string, unknown>;
11
+ result?: unknown;
12
+ status: 'pending' | 'running' | 'success' | 'error';
13
+ duration?: number;
14
+ error?: string;
15
+ }>;
16
+ thinking?: string;
17
+ status?: 'streaming' | 'complete' | 'error';
18
+ }
19
+ export interface ChatMessageListProps {
20
+ messages: ChatMessage[];
21
+ renderMessage?: (msg: ChatMessage) => React.ReactNode;
22
+ onScrollToBottom?: () => void;
23
+ sx?: SxProps<Theme>;
24
+ }
25
+ declare function ChatMessageList({ messages, renderMessage, onScrollToBottom, sx, }: ChatMessageListProps): import("react/jsx-runtime").JSX.Element;
26
+ declare namespace ChatMessageList {
27
+ var displayName: string;
28
+ }
29
+ export default ChatMessageList;
@@ -0,0 +1,11 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface ChatSuggestionsProps {
3
+ suggestions: string[];
4
+ onSelect: (suggestion: string) => void;
5
+ sx?: SxProps<Theme>;
6
+ }
7
+ declare function ChatSuggestions({ suggestions, onSelect, sx, }: ChatSuggestionsProps): import("react/jsx-runtime").JSX.Element | null;
8
+ declare namespace ChatSuggestions {
9
+ var displayName: string;
10
+ }
11
+ export default ChatSuggestions;
@@ -0,0 +1,18 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface ChatTab {
3
+ id: string;
4
+ label: string;
5
+ }
6
+ export interface ChatTabsProps {
7
+ tabs: ChatTab[];
8
+ activeId: string;
9
+ onSelect: (id: string) => void;
10
+ onClose?: (id: string) => void;
11
+ onNew?: () => void;
12
+ sx?: SxProps<Theme>;
13
+ }
14
+ declare function ChatTabs({ tabs, activeId, onSelect, onClose, onNew, sx, }: ChatTabsProps): import("react/jsx-runtime").JSX.Element;
15
+ declare namespace ChatTabs {
16
+ var displayName: string;
17
+ }
18
+ export default ChatTabs;
@@ -0,0 +1,20 @@
1
+ export { default as ChatBubble } from './ChatBubble';
2
+ export type { ChatBubbleProps, ChatBubbleSize } from './ChatBubble';
3
+ export { default as ChatAvatar } from './ChatAvatar';
4
+ export type { ChatAvatarProps } from './ChatAvatar';
5
+ export { default as ChatInput } from './ChatInput';
6
+ export type { ChatInputProps } from './ChatInput';
7
+ export { default as ChatMessageList } from './ChatMessageList';
8
+ export type { ChatMessageListProps, ChatMessage } from './ChatMessageList';
9
+ export { default as ChatConversation } from './ChatConversation';
10
+ export type { ChatConversationProps } from './ChatConversation';
11
+ export { default as ChatSuggestions } from './ChatSuggestions';
12
+ export type { ChatSuggestionsProps } from './ChatSuggestions';
13
+ export { default as ChatDrawer } from './ChatDrawer';
14
+ export type { ChatDrawerProps } from './ChatDrawer';
15
+ export { default as ChatHistory } from './ChatHistory';
16
+ export type { ChatHistoryProps, ConversationSummary } from './ChatHistory';
17
+ export { default as ChatTabs } from './ChatTabs';
18
+ export type { ChatTabsProps, ChatTab } from './ChatTabs';
19
+ export { default as ChatHeader } from './ChatHeader';
20
+ export type { ChatHeaderProps } from './ChatHeader';
@@ -0,0 +1,14 @@
1
+ import { default as React } from 'react';
2
+ import { SxProps, Theme } from '@mui/material/styles';
3
+ export interface AIArtifactProps {
4
+ title: string;
5
+ type?: string;
6
+ children: React.ReactNode;
7
+ defaultExpanded?: boolean;
8
+ sx?: SxProps<Theme>;
9
+ }
10
+ declare function AIArtifact({ title, type, children, defaultExpanded, sx, }: AIArtifactProps): import("react/jsx-runtime").JSX.Element;
11
+ declare namespace AIArtifact {
12
+ var displayName: string;
13
+ }
14
+ export default AIArtifact;
@@ -0,0 +1,14 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface AICodeBlockProps {
3
+ code: string;
4
+ language?: string;
5
+ showLineNumbers?: boolean;
6
+ maxHeight?: number | string;
7
+ onCopy?: () => void;
8
+ sx?: SxProps<Theme>;
9
+ }
10
+ declare function AICodeBlock({ code, language, showLineNumbers, maxHeight, onCopy, sx, }: AICodeBlockProps): import("react/jsx-runtime").JSX.Element;
11
+ declare namespace AICodeBlock {
12
+ var displayName: string;
13
+ }
14
+ export default AICodeBlock;
@@ -0,0 +1,12 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface AIInlineCitationProps {
3
+ index: number;
4
+ title?: string;
5
+ url?: string;
6
+ sx?: SxProps<Theme>;
7
+ }
8
+ declare function AIInlineCitation({ index, title, url, sx, }: AIInlineCitationProps): import("react/jsx-runtime").JSX.Element;
9
+ declare namespace AIInlineCitation {
10
+ var displayName: string;
11
+ }
12
+ export default AIInlineCitation;
@@ -0,0 +1,12 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface AIMarkdownProps {
3
+ source: string;
4
+ streaming?: boolean;
5
+ maxHeight?: number | string;
6
+ sx?: SxProps<Theme>;
7
+ }
8
+ declare function AIMarkdown({ source, streaming, maxHeight, sx, }: AIMarkdownProps): import("react/jsx-runtime").JSX.Element;
9
+ declare namespace AIMarkdown {
10
+ var displayName: string;
11
+ }
12
+ export default AIMarkdown;
@@ -0,0 +1,16 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface AISource {
3
+ title: string;
4
+ url?: string;
5
+ description?: string;
6
+ }
7
+ export interface AISourcesProps {
8
+ sources: AISource[];
9
+ label?: string;
10
+ sx?: SxProps<Theme>;
11
+ }
12
+ declare function AISources({ sources, label, sx, }: AISourcesProps): import("react/jsx-runtime").JSX.Element | null;
13
+ declare namespace AISources {
14
+ var displayName: string;
15
+ }
16
+ export default AISources;
@@ -0,0 +1,10 @@
1
+ export { default as AICodeBlock } from './AICodeBlock';
2
+ export type { AICodeBlockProps } from './AICodeBlock';
3
+ export { default as AIMarkdown } from './AIMarkdown';
4
+ export type { AIMarkdownProps } from './AIMarkdown';
5
+ export { default as AIArtifact } from './AIArtifact';
6
+ export type { AIArtifactProps } from './AIArtifact';
7
+ export { default as AIInlineCitation } from './AIInlineCitation';
8
+ export type { AIInlineCitationProps } from './AIInlineCitation';
9
+ export { default as AISources } from './AISources';
10
+ export type { AISourcesProps, AISource } from './AISources';
@@ -0,0 +1,25 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ interface ContextSegment {
3
+ label: string;
4
+ icon?: React.ReactNode;
5
+ }
6
+ export interface AIContextBarProps {
7
+ provider?: ContextSegment;
8
+ connection?: ContextSegment;
9
+ scope?: {
10
+ label: string;
11
+ value: string;
12
+ };
13
+ resource?: {
14
+ kind: string;
15
+ name: string;
16
+ icon?: React.ReactNode;
17
+ };
18
+ onChangeScope?: () => void;
19
+ sx?: SxProps<Theme>;
20
+ }
21
+ declare function AIContextBar({ provider, connection, scope, resource, onChangeScope, sx, }: AIContextBarProps): import("react/jsx-runtime").JSX.Element | null;
22
+ declare namespace AIContextBar {
23
+ var displayName: string;
24
+ }
25
+ export default AIContextBar;
@@ -0,0 +1,2 @@
1
+ export { default as AIContextBar } from './AIContextBar';
2
+ export type { AIContextBarProps } from './AIContextBar';
@@ -0,0 +1,21 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ type Risk = 'low' | 'medium' | 'high' | 'critical';
3
+ interface AffectedResource {
4
+ kind: string;
5
+ name: string;
6
+ icon?: React.ReactNode;
7
+ }
8
+ export interface AIActionConfirmationProps {
9
+ action: string;
10
+ description?: string;
11
+ affectedResources?: AffectedResource[];
12
+ risk: Risk;
13
+ onConfirm: () => void;
14
+ onCancel: () => void;
15
+ sx?: SxProps<Theme>;
16
+ }
17
+ declare function AIActionConfirmation({ action, description, affectedResources, risk, onConfirm, onCancel, sx, }: AIActionConfirmationProps): import("react/jsx-runtime").JSX.Element;
18
+ declare namespace AIActionConfirmation {
19
+ var displayName: string;
20
+ }
21
+ export default AIActionConfirmation;
@@ -0,0 +1,15 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface AICommandSuggestionProps {
3
+ command: string;
4
+ description?: string;
5
+ dangerous?: boolean;
6
+ dangerMessage?: string;
7
+ onRun?: (command: string) => void;
8
+ onCopy?: (command: string) => void;
9
+ sx?: SxProps<Theme>;
10
+ }
11
+ declare function AICommandSuggestion({ command, description, dangerous, dangerMessage, onRun, onCopy, sx, }: AICommandSuggestionProps): import("react/jsx-runtime").JSX.Element;
12
+ declare namespace AICommandSuggestion {
13
+ var displayName: string;
14
+ }
15
+ export default AICommandSuggestion;
@@ -0,0 +1,15 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface AIDiffViewProps {
3
+ before: string;
4
+ after: string;
5
+ language?: string;
6
+ title?: string;
7
+ onApply?: (after: string) => void;
8
+ onCopy?: (after: string) => void;
9
+ sx?: SxProps<Theme>;
10
+ }
11
+ declare function AIDiffView({ before, after, language, title, onApply, onCopy, sx, }: AIDiffViewProps): import("react/jsx-runtime").JSX.Element;
12
+ declare namespace AIDiffView {
13
+ var displayName: string;
14
+ }
15
+ export default AIDiffView;
@@ -0,0 +1,21 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface AIEvent {
3
+ type: 'info' | 'warning' | 'error' | 'success';
4
+ reason: string;
5
+ message: string;
6
+ timestamp?: string | Date;
7
+ source?: string;
8
+ count?: number;
9
+ }
10
+ export interface AIEventListProps {
11
+ events: AIEvent[];
12
+ maxEvents?: number;
13
+ title?: string;
14
+ onExpand?: () => void;
15
+ sx?: SxProps<Theme>;
16
+ }
17
+ declare function AIEventList({ events, maxEvents, title, onExpand, sx, }: AIEventListProps): import("react/jsx-runtime").JSX.Element;
18
+ declare namespace AIEventList {
19
+ var displayName: string;
20
+ }
21
+ export default AIEventList;
@@ -0,0 +1,24 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ type Status = 'healthy' | 'warning' | 'degraded' | 'error' | 'unknown' | 'pending';
3
+ interface HealthStat {
4
+ label: string;
5
+ value: number;
6
+ status: Status;
7
+ }
8
+ interface HealthBreakdown {
9
+ kind: string;
10
+ icon?: React.ReactNode;
11
+ total: number;
12
+ statuses: Record<string, number>;
13
+ }
14
+ export interface AIHealthSummaryProps {
15
+ title?: string;
16
+ stats: HealthStat[];
17
+ breakdowns?: HealthBreakdown[];
18
+ sx?: SxProps<Theme>;
19
+ }
20
+ declare function AIHealthSummary({ title, stats, breakdowns, sx, }: AIHealthSummaryProps): import("react/jsx-runtime").JSX.Element;
21
+ declare namespace AIHealthSummary {
22
+ var displayName: string;
23
+ }
24
+ export default AIHealthSummary;
@@ -0,0 +1,20 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface AILogLine {
3
+ timestamp?: string;
4
+ content: string;
5
+ severity?: 'info' | 'warn' | 'error' | 'debug';
6
+ source?: string;
7
+ }
8
+ export interface AILogViewerProps {
9
+ lines: AILogLine[];
10
+ highlights?: number[];
11
+ maxLines?: number;
12
+ title?: string;
13
+ onExpand?: () => void;
14
+ sx?: SxProps<Theme>;
15
+ }
16
+ declare function AILogViewer({ lines, highlights, maxLines, title, onExpand, sx, }: AILogViewerProps): import("react/jsx-runtime").JSX.Element;
17
+ declare namespace AILogViewer {
18
+ var displayName: string;
19
+ }
20
+ export default AILogViewer;
@@ -0,0 +1,22 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ type Status = 'healthy' | 'warning' | 'degraded' | 'error' | 'unknown' | 'pending';
3
+ interface MetricItem {
4
+ label: string;
5
+ value: string | number;
6
+ unit?: string;
7
+ delta?: number;
8
+ deltaDirection?: 'up' | 'down' | 'flat';
9
+ status?: Status;
10
+ sparkline?: number[];
11
+ }
12
+ export interface AIMetricSnapshotProps {
13
+ metrics: MetricItem[];
14
+ title?: string;
15
+ columns?: 2 | 3 | 4;
16
+ sx?: SxProps<Theme>;
17
+ }
18
+ declare function AIMetricSnapshot({ metrics, title, columns, sx, }: AIMetricSnapshotProps): import("react/jsx-runtime").JSX.Element;
19
+ declare namespace AIMetricSnapshot {
20
+ var displayName: string;
21
+ }
22
+ export default AIMetricSnapshot;
@@ -0,0 +1,20 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ interface ResourceNode {
3
+ kind: string;
4
+ name: string;
5
+ icon?: React.ReactNode;
6
+ }
7
+ interface RelatedResource extends ResourceNode {
8
+ relationship: string;
9
+ }
10
+ export interface AIRelatedResourcesProps {
11
+ primary: ResourceNode;
12
+ related: RelatedResource[];
13
+ onNavigate?: (kind: string, name: string) => void;
14
+ sx?: SxProps<Theme>;
15
+ }
16
+ declare function AIRelatedResources({ primary, related, onNavigate, sx, }: AIRelatedResourcesProps): import("react/jsx-runtime").JSX.Element;
17
+ declare namespace AIRelatedResources {
18
+ var displayName: string;
19
+ }
20
+ export default AIRelatedResources;
@@ -0,0 +1,24 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ type Status = 'healthy' | 'warning' | 'degraded' | 'error' | 'unknown' | 'pending';
3
+ export interface AIResourceCardProps {
4
+ kind: string;
5
+ name: string;
6
+ scope?: string;
7
+ scopeLabel?: string;
8
+ status?: Status;
9
+ statusLabel?: string;
10
+ icon?: React.ReactNode;
11
+ iconColor?: string;
12
+ metadata?: Array<{
13
+ label: string;
14
+ value: string;
15
+ }>;
16
+ compact?: boolean;
17
+ onNavigate?: () => void;
18
+ sx?: SxProps<Theme>;
19
+ }
20
+ declare function AIResourceCard({ kind, name, scope, scopeLabel, status, statusLabel, icon, iconColor, metadata, compact, onNavigate, sx, }: AIResourceCardProps): import("react/jsx-runtime").JSX.Element;
21
+ declare namespace AIResourceCard {
22
+ var displayName: string;
23
+ }
24
+ export default AIResourceCard;
@@ -0,0 +1,19 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface AIResourceTableColumn {
3
+ key: string;
4
+ label: string;
5
+ render?: (value: any, row: Record<string, any>) => React.ReactNode;
6
+ width?: string | number;
7
+ }
8
+ export interface AIResourceTableProps {
9
+ rows: Array<Record<string, any>>;
10
+ columns: AIResourceTableColumn[];
11
+ title?: string;
12
+ onRowClick?: (row: Record<string, any>) => void;
13
+ sx?: SxProps<Theme>;
14
+ }
15
+ declare function AIResourceTable({ rows, columns, title, onRowClick, sx, }: AIResourceTableProps): import("react/jsx-runtime").JSX.Element;
16
+ declare namespace AIResourceTable {
17
+ var displayName: string;
18
+ }
19
+ export default AIResourceTable;
@@ -0,0 +1,16 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface AIStructuredDataViewerProps {
3
+ content: string;
4
+ format?: 'yaml' | 'json' | 'hcl' | 'toml' | 'text';
5
+ title?: string;
6
+ collapsible?: boolean;
7
+ onApply?: (content: string) => void;
8
+ onEdit?: (content: string) => void;
9
+ onCopy?: (content: string) => void;
10
+ sx?: SxProps<Theme>;
11
+ }
12
+ declare function AIStructuredDataViewer({ content, format, title, collapsible, onApply, onEdit, onCopy, sx, }: AIStructuredDataViewerProps): import("react/jsx-runtime").JSX.Element;
13
+ declare namespace AIStructuredDataViewer {
14
+ var displayName: string;
15
+ }
16
+ export default AIStructuredDataViewer;
@@ -0,0 +1,22 @@
1
+ export { default as AIResourceCard } from './AIResourceCard';
2
+ export type { AIResourceCardProps } from './AIResourceCard';
3
+ export { default as AICommandSuggestion } from './AICommandSuggestion';
4
+ export type { AICommandSuggestionProps } from './AICommandSuggestion';
5
+ export { default as AILogViewer } from './AILogViewer';
6
+ export type { AILogViewerProps, AILogLine } from './AILogViewer';
7
+ export { default as AIDiffView } from './AIDiffView';
8
+ export type { AIDiffViewProps } from './AIDiffView';
9
+ export { default as AIMetricSnapshot } from './AIMetricSnapshot';
10
+ export type { AIMetricSnapshotProps } from './AIMetricSnapshot';
11
+ export { default as AIEventList } from './AIEventList';
12
+ export type { AIEventListProps, AIEvent } from './AIEventList';
13
+ export { default as AIResourceTable } from './AIResourceTable';
14
+ export type { AIResourceTableProps, AIResourceTableColumn } from './AIResourceTable';
15
+ export { default as AIHealthSummary } from './AIHealthSummary';
16
+ export type { AIHealthSummaryProps } from './AIHealthSummary';
17
+ export { default as AIStructuredDataViewer } from './AIStructuredDataViewer';
18
+ export type { AIStructuredDataViewerProps } from './AIStructuredDataViewer';
19
+ export { default as AIActionConfirmation } from './AIActionConfirmation';
20
+ export type { AIActionConfirmationProps } from './AIActionConfirmation';
21
+ export { default as AIRelatedResources } from './AIRelatedResources';
22
+ export type { AIRelatedResourcesProps } from './AIRelatedResources';
@@ -0,0 +1,11 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface AILoaderProps {
3
+ label?: string;
4
+ size?: number;
5
+ sx?: SxProps<Theme>;
6
+ }
7
+ declare function AILoader({ label, size, sx, }: AILoaderProps): import("react/jsx-runtime").JSX.Element;
8
+ declare namespace AILoader {
9
+ var displayName: string;
10
+ }
11
+ export default AILoader;
@@ -0,0 +1,20 @@
1
+ import { default as React } from 'react';
2
+ import { SxProps, Theme } from '@mui/material/styles';
3
+ export interface ChainOfThoughtStepProps {
4
+ label: string;
5
+ status: 'pending' | 'active' | 'complete' | 'error';
6
+ children?: React.ReactNode;
7
+ }
8
+ export declare function ChainOfThoughtStep({ label, status, children }: ChainOfThoughtStepProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare namespace ChainOfThoughtStep {
10
+ var displayName: string;
11
+ }
12
+ export interface ChainOfThoughtProps {
13
+ children: React.ReactNode;
14
+ sx?: SxProps<Theme>;
15
+ }
16
+ declare function ChainOfThought({ children, sx }: ChainOfThoughtProps): import("react/jsx-runtime").JSX.Element;
17
+ declare namespace ChainOfThought {
18
+ var displayName: string;
19
+ }
20
+ export default ChainOfThought;
@@ -0,0 +1,14 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface StreamingTextProps {
3
+ text: string;
4
+ /** Base characters per frame — actual speed varies to simulate token delivery. */
5
+ speed?: number;
6
+ onComplete?: () => void;
7
+ showCursor?: boolean;
8
+ sx?: SxProps<Theme>;
9
+ }
10
+ declare function StreamingText({ text, speed, onComplete, showCursor, sx, }: StreamingTextProps): import("react/jsx-runtime").JSX.Element;
11
+ declare namespace StreamingText {
12
+ var displayName: string;
13
+ }
14
+ export default StreamingText;
@@ -0,0 +1,13 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface ThinkingBlockProps {
3
+ thinking: string;
4
+ isActive?: boolean;
5
+ defaultExpanded?: boolean;
6
+ label?: string;
7
+ sx?: SxProps<Theme>;
8
+ }
9
+ declare function ThinkingBlock({ thinking, isActive, defaultExpanded, label, sx, }: ThinkingBlockProps): import("react/jsx-runtime").JSX.Element;
10
+ declare namespace ThinkingBlock {
11
+ var displayName: string;
12
+ }
13
+ export default ThinkingBlock;
@@ -0,0 +1,10 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface TypingIndicatorProps {
3
+ compact?: boolean;
4
+ sx?: SxProps<Theme>;
5
+ }
6
+ declare function TypingIndicator({ compact, sx }: TypingIndicatorProps): import("react/jsx-runtime").JSX.Element;
7
+ declare namespace TypingIndicator {
8
+ var displayName: string;
9
+ }
10
+ export default TypingIndicator;
@@ -0,0 +1,10 @@
1
+ export { default as TypingIndicator } from './TypingIndicator';
2
+ export type { TypingIndicatorProps } from './TypingIndicator';
3
+ export { default as StreamingText } from './StreamingText';
4
+ export type { StreamingTextProps } from './StreamingText';
5
+ export { default as ThinkingBlock } from './ThinkingBlock';
6
+ export type { ThinkingBlockProps } from './ThinkingBlock';
7
+ export { default as ChainOfThought, ChainOfThoughtStep } from './ChainOfThought';
8
+ export type { ChainOfThoughtProps, ChainOfThoughtStepProps } from './ChainOfThought';
9
+ export { default as AILoader } from './AILoader';
10
+ export type { AILoaderProps } from './AILoader';
@@ -0,0 +1,18 @@
1
+ export { ChatBubble, ChatAvatar, ChatInput, ChatMessageList, ChatConversation, ChatSuggestions, ChatDrawer, ChatHistory, ChatTabs, ChatHeader, } from './chat';
2
+ export type { ChatBubbleProps, ChatBubbleSize, ChatAvatarProps, ChatInputProps, ChatMessageListProps, ChatMessage, ChatConversationProps, ChatSuggestionsProps, ChatDrawerProps, ChatHistoryProps, ConversationSummary, ChatTabsProps, ChatTab, ChatHeaderProps, } from './chat';
3
+ export { AICodeBlock, AIMarkdown, AIArtifact, AIInlineCitation, AISources, } from './content';
4
+ export type { AICodeBlockProps, AIMarkdownProps, AIArtifactProps, AIInlineCitationProps, AISourcesProps, AISource, } from './content';
5
+ export { TypingIndicator, StreamingText, ThinkingBlock, ChainOfThought, ChainOfThoughtStep, AILoader, } from './feedback';
6
+ export type { TypingIndicatorProps, StreamingTextProps, ThinkingBlockProps, ChainOfThoughtProps, ChainOfThoughtStepProps, AILoaderProps, } from './feedback';
7
+ export { ToolCall, ToolResult, ToolCallList, ActionBar, } from './tools';
8
+ export type { ToolCallProps, ToolResultProps, ToolCallListProps, ActionBarProps, } from './tools';
9
+ export { AgentStatusItem, AgentPopup, AgentTaskList, AgentControls, AgentBanner, } from './agents';
10
+ export type { AgentStatusItemProps, AgentStatus, AgentPopupProps, AgentTaskListProps, AgentTask, AgentControlsProps, AgentBannerProps, } from './agents';
11
+ export { PermissionRequest, PermissionBadge, PermissionScopeEditor, SecurityBanner, PermissionGate, } from './security';
12
+ export type { PermissionRequestProps, PermissionBadgeProps, PermissionScopeEditorProps, PermissionScope, SecurityBannerProps, PermissionGateProps, } from './security';
13
+ export { ProviderCard, ModelSelector, SettingsPanel, MCPServerConfig, } from './settings';
14
+ export type { ProviderCardProps, ProviderInfo, ModelSelectorProps, ModelInfo, SettingsPanelProps, AISettingsValues, MCPServerConfigProps, MCPServer, } from './settings';
15
+ export { AIContextBar, } from './context';
16
+ export type { AIContextBarProps, } from './context';
17
+ export { AIResourceCard, AICommandSuggestion, AILogViewer, AIDiffView, AIMetricSnapshot, AIEventList, AIResourceTable, AIHealthSummary, AIStructuredDataViewer, AIActionConfirmation, AIRelatedResources, } from './domain';
18
+ export type { AIResourceCardProps, AICommandSuggestionProps, AILogViewerProps, AILogLine, AIDiffViewProps, AIMetricSnapshotProps, AIEventListProps, AIEvent, AIResourceTableProps, AIResourceTableColumn, AIHealthSummaryProps, AIStructuredDataViewerProps, AIActionConfirmationProps, AIRelatedResourcesProps, } from './domain';
@@ -0,0 +1,11 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface PermissionBadgeProps {
3
+ level: 'read-only' | 'read-write' | 'full-access' | 'restricted';
4
+ tooltip?: string;
5
+ sx?: SxProps<Theme>;
6
+ }
7
+ declare function PermissionBadge({ level, tooltip, sx, }: PermissionBadgeProps): import("react/jsx-runtime").JSX.Element;
8
+ declare namespace PermissionBadge {
9
+ var displayName: string;
10
+ }
11
+ export default PermissionBadge;
@@ -0,0 +1,14 @@
1
+ import { default as React } from 'react';
2
+ import { SxProps, Theme } from '@mui/material/styles';
3
+ export interface PermissionGateProps {
4
+ allowed: boolean;
5
+ children: React.ReactNode;
6
+ onRequest?: () => void;
7
+ message?: string;
8
+ sx?: SxProps<Theme>;
9
+ }
10
+ declare function PermissionGate({ allowed, children, onRequest, message, sx, }: PermissionGateProps): import("react/jsx-runtime").JSX.Element;
11
+ declare namespace PermissionGate {
12
+ var displayName: string;
13
+ }
14
+ export default PermissionGate;
@@ -0,0 +1,21 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface PermissionRequestProps {
3
+ open: boolean;
4
+ onAllow: (scope: 'once' | 'session' | 'always') => void;
5
+ onDeny: () => void;
6
+ request: {
7
+ action: string;
8
+ resource?: string;
9
+ connection?: string;
10
+ namespace?: string;
11
+ requestedBy: string;
12
+ riskLevel: 'info' | 'warning' | 'danger';
13
+ description?: string;
14
+ };
15
+ sx?: SxProps<Theme>;
16
+ }
17
+ declare function PermissionRequest({ open, onAllow, onDeny, request, sx, }: PermissionRequestProps): import("react/jsx-runtime").JSX.Element;
18
+ declare namespace PermissionRequest {
19
+ var displayName: string;
20
+ }
21
+ export default PermissionRequest;
@@ -0,0 +1,16 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface PermissionScope {
3
+ resourceType: string;
4
+ actions: Record<string, boolean>;
5
+ }
6
+ export interface PermissionScopeEditorProps {
7
+ scopes: PermissionScope[];
8
+ actions: string[];
9
+ onChange: (scopes: PermissionScope[]) => void;
10
+ sx?: SxProps<Theme>;
11
+ }
12
+ declare function PermissionScopeEditor({ scopes, actions, onChange, sx, }: PermissionScopeEditorProps): import("react/jsx-runtime").JSX.Element;
13
+ declare namespace PermissionScopeEditor {
14
+ var displayName: string;
15
+ }
16
+ export default PermissionScopeEditor;
@@ -0,0 +1,12 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface SecurityBannerProps {
3
+ connection: string;
4
+ level: 'read-only' | 'read-write' | 'full-access' | 'restricted';
5
+ permissions?: string[];
6
+ sx?: SxProps<Theme>;
7
+ }
8
+ declare function SecurityBanner({ connection, level, permissions, sx, }: SecurityBannerProps): import("react/jsx-runtime").JSX.Element;
9
+ declare namespace SecurityBanner {
10
+ var displayName: string;
11
+ }
12
+ export default SecurityBanner;
@@ -0,0 +1,10 @@
1
+ export { default as PermissionRequest } from './PermissionRequest';
2
+ export type { PermissionRequestProps } from './PermissionRequest';
3
+ export { default as PermissionBadge } from './PermissionBadge';
4
+ export type { PermissionBadgeProps } from './PermissionBadge';
5
+ export { default as PermissionScopeEditor } from './PermissionScopeEditor';
6
+ export type { PermissionScopeEditorProps, PermissionScope } from './PermissionScopeEditor';
7
+ export { default as SecurityBanner } from './SecurityBanner';
8
+ export type { SecurityBannerProps } from './SecurityBanner';
9
+ export { default as PermissionGate } from './PermissionGate';
10
+ export type { PermissionGateProps } from './PermissionGate';
@@ -0,0 +1,19 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface MCPServer {
3
+ id: string;
4
+ name: string;
5
+ url: string;
6
+ status: 'connected' | 'disconnected' | 'error';
7
+ capabilities?: string[];
8
+ }
9
+ export interface MCPServerConfigProps {
10
+ servers: MCPServer[];
11
+ onAdd?: () => void;
12
+ onRemove: (id: string) => void;
13
+ sx?: SxProps<Theme>;
14
+ }
15
+ declare function MCPServerConfig({ servers, onAdd, onRemove, sx, }: MCPServerConfigProps): import("react/jsx-runtime").JSX.Element;
16
+ declare namespace MCPServerConfig {
17
+ var displayName: string;
18
+ }
19
+ export default MCPServerConfig;
@@ -0,0 +1,21 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface ModelInfo {
3
+ id: string;
4
+ name: string;
5
+ provider: string;
6
+ contextWindow?: number;
7
+ parameterCount?: string;
8
+ }
9
+ export interface ModelSelectorProps {
10
+ models: ModelInfo[];
11
+ value?: string;
12
+ onChange: (modelId: string) => void;
13
+ grouped?: boolean;
14
+ size?: 'small' | 'medium';
15
+ sx?: SxProps<Theme>;
16
+ }
17
+ declare function ModelSelector({ models, value, onChange, grouped, size, sx, }: ModelSelectorProps): import("react/jsx-runtime").JSX.Element;
18
+ declare namespace ModelSelector {
19
+ var displayName: string;
20
+ }
21
+ export default ModelSelector;
@@ -0,0 +1,22 @@
1
+ import { default as React } from 'react';
2
+ import { SxProps, Theme } from '@mui/material/styles';
3
+ export interface ProviderInfo {
4
+ id: string;
5
+ name: string;
6
+ icon?: React.ReactNode;
7
+ type: 'ollama' | 'openai' | 'anthropic' | 'custom';
8
+ endpoint?: string;
9
+ status: 'connected' | 'disconnected' | 'error';
10
+ }
11
+ export interface ProviderCardProps {
12
+ provider: ProviderInfo;
13
+ onConfigure: (id: string) => void;
14
+ onTestConnection: (id: string) => void;
15
+ onRemove: (id: string) => void;
16
+ sx?: SxProps<Theme>;
17
+ }
18
+ declare function ProviderCard({ provider, onConfigure, onTestConnection, onRemove, sx, }: ProviderCardProps): import("react/jsx-runtime").JSX.Element;
19
+ declare namespace ProviderCard {
20
+ var displayName: string;
21
+ }
22
+ export default ProviderCard;
@@ -0,0 +1,22 @@
1
+ import { default as React } from 'react';
2
+ import { SxProps, Theme } from '@mui/material/styles';
3
+ import { ModelInfo } from './ModelSelector';
4
+ export interface AISettingsValues {
5
+ defaultModel: string;
6
+ temperature: number;
7
+ topP: number;
8
+ maxTokens: number;
9
+ systemPrompt: string;
10
+ }
11
+ export interface SettingsPanelProps {
12
+ models: ModelInfo[];
13
+ values: AISettingsValues;
14
+ onChange: (values: AISettingsValues) => void;
15
+ children?: React.ReactNode;
16
+ sx?: SxProps<Theme>;
17
+ }
18
+ declare function SettingsPanel({ models, values, onChange, children, sx, }: SettingsPanelProps): import("react/jsx-runtime").JSX.Element;
19
+ declare namespace SettingsPanel {
20
+ var displayName: string;
21
+ }
22
+ export default SettingsPanel;
@@ -0,0 +1,8 @@
1
+ export { default as ProviderCard } from './ProviderCard';
2
+ export type { ProviderCardProps, ProviderInfo } from './ProviderCard';
3
+ export { default as ModelSelector } from './ModelSelector';
4
+ export type { ModelSelectorProps, ModelInfo } from './ModelSelector';
5
+ export { default as SettingsPanel } from './SettingsPanel';
6
+ export type { SettingsPanelProps, AISettingsValues } from './SettingsPanel';
7
+ export { default as MCPServerConfig } from './MCPServerConfig';
8
+ export type { MCPServerConfigProps, MCPServer } from './MCPServerConfig';
@@ -0,0 +1,15 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface ActionBarProps {
3
+ content?: string;
4
+ onCopy?: () => void;
5
+ onRegenerate?: () => void;
6
+ onThumbsUp?: () => void;
7
+ onThumbsDown?: () => void;
8
+ alwaysVisible?: boolean;
9
+ sx?: SxProps<Theme>;
10
+ }
11
+ declare function ActionBar({ content, onCopy, onRegenerate, onThumbsUp, onThumbsDown, alwaysVisible, sx, }: ActionBarProps): import("react/jsx-runtime").JSX.Element;
12
+ declare namespace ActionBar {
13
+ var displayName: string;
14
+ }
15
+ export default ActionBar;
@@ -0,0 +1,16 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface ToolCallProps {
3
+ name: string;
4
+ args?: Record<string, unknown>;
5
+ result?: unknown;
6
+ status: 'pending' | 'running' | 'success' | 'error';
7
+ duration?: number;
8
+ defaultExpanded?: boolean;
9
+ error?: string;
10
+ sx?: SxProps<Theme>;
11
+ }
12
+ declare function ToolCall({ name, args, result, status, duration, defaultExpanded, error, sx, }: ToolCallProps): import("react/jsx-runtime").JSX.Element;
13
+ declare namespace ToolCall {
14
+ var displayName: string;
15
+ }
16
+ export default ToolCall;
@@ -0,0 +1,11 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ import { ToolCallProps } from './ToolCall';
3
+ export interface ToolCallListProps {
4
+ calls: ToolCallProps[];
5
+ sx?: SxProps<Theme>;
6
+ }
7
+ declare function ToolCallList({ calls, sx }: ToolCallListProps): import("react/jsx-runtime").JSX.Element | null;
8
+ declare namespace ToolCallList {
9
+ var displayName: string;
10
+ }
11
+ export default ToolCallList;
@@ -0,0 +1,11 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface ToolResultProps {
3
+ result: unknown;
4
+ error?: string;
5
+ sx?: SxProps<Theme>;
6
+ }
7
+ declare function ToolResult({ result, error, sx }: ToolResultProps): import("react/jsx-runtime").JSX.Element;
8
+ declare namespace ToolResult {
9
+ var displayName: string;
10
+ }
11
+ export default ToolResult;
@@ -0,0 +1,8 @@
1
+ export { default as ToolCall } from './ToolCall';
2
+ export type { ToolCallProps } from './ToolCall';
3
+ export { default as ToolResult } from './ToolResult';
4
+ export type { ToolResultProps } from './ToolResult';
5
+ export { default as ToolCallList } from './ToolCallList';
6
+ export type { ToolCallListProps } from './ToolCallList';
7
+ export { default as ActionBar } from './ActionBar';
8
+ export type { ActionBarProps } from './ActionBar';
package/dist/tokens.css CHANGED
@@ -152,6 +152,9 @@
152
152
  --ov-ease-in: cubic-bezier(0.4, 0, 1, 1);
153
153
  --ov-ease-out: cubic-bezier(0, 0, 0.2, 1);
154
154
 
155
+ /* --- AI / Chat --- */
156
+ --ov-chat-font-size: var(--ov-text-base);
157
+
155
158
  /* --- Interactive states --- */
156
159
  --ov-state-hover: rgba(255, 255, 255, 0.04);
157
160
  --ov-state-active: rgba(255, 255, 255, 0.07);
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "author": "Omniview",
3
3
  "license": "AGPL-3.0-only",
4
4
  "name": "@omniviewdev/ui",
5
- "version": "0.1.3",
5
+ "version": "0.1.4",
6
6
  "description": "Shared UI components, tokens, and theming for Omniview",
7
7
  "sideEffects": [
8
8
  "*.css"
@@ -102,6 +102,11 @@
102
102
  "types": "./dist/charts/index.d.ts",
103
103
  "import": "./dist/charts.js",
104
104
  "require": "./dist/charts.cjs"
105
+ },
106
+ "./ai": {
107
+ "types": "./dist/ai/index.d.ts",
108
+ "import": "./dist/ai.js",
109
+ "require": "./dist/ai.cjs"
105
110
  }
106
111
  },
107
112
  "types": "dist/index.d.ts",
@@ -157,6 +162,9 @@
157
162
  ],
158
163
  "charts": [
159
164
  "dist/charts/index.d.ts"
165
+ ],
166
+ "ai": [
167
+ "dist/ai/index.d.ts"
160
168
  ]
161
169
  }
162
170
  },
@@ -189,14 +197,19 @@
189
197
  "@mui/x-charts": "^8.27.0",
190
198
  "@mui/x-date-pickers": "^8.27.0",
191
199
  "@tanstack/react-table": "^8.21.0",
200
+ "@testing-library/jest-dom": "^6.9.1",
201
+ "@testing-library/react": "^16.3.2",
202
+ "@testing-library/user-event": "^14.6.1",
192
203
  "@types/node": "^22.0.0",
193
204
  "@types/react": "^19.0.0",
194
205
  "@types/react-dom": "^19.0.0",
195
206
  "@vitejs/plugin-react": "^5.1.0",
207
+ "@vitest/ui": "^4.0.18",
196
208
  "@xterm/addon-fit": "^0.9.0",
197
209
  "@xterm/addon-webgl": "^0.17.0",
198
210
  "@xterm/xterm": "^5.5.0",
199
211
  "date-fns": "^4.1.0",
212
+ "jsdom": "^28.1.0",
200
213
  "monaco-editor": "^0.47.0",
201
214
  "react": "^19.0.0",
202
215
  "react-dom": "^19.0.0",
@@ -204,7 +217,8 @@
204
217
  "typescript": "^5.8.3",
205
218
  "vite": "^7.3.0",
206
219
  "vite-plugin-dts": "^4.5.3",
207
- "vite-plugin-static-copy": "^3.0.0"
220
+ "vite-plugin-static-copy": "^3.0.0",
221
+ "vitest": "^4.0.18"
208
222
  },
209
223
  "peerDependencies": {
210
224
  "@emotion/react": ">=11.0.0",
@@ -256,6 +270,9 @@
256
270
  "scripts": {
257
271
  "build": "tsc && vite build",
258
272
  "lint": "eslint --cache --ext .js,.jsx,.ts,.tsx ./src",
259
- "lint:fix": "npm run lint -- --fix"
273
+ "lint:fix": "npm run lint -- --fix",
274
+ "test": "vitest run",
275
+ "test:watch": "vitest",
276
+ "test:ui": "vitest --ui"
260
277
  }
261
278
  }
@@ -1 +0,0 @@
1
- export {};