teodor-new-chat-ui 4.3.478 → 4.3.480

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.
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import type { ChatMessage, DefaultMessage } from "@/types";
7
7
  import type { MessageComponentProps } from "../message/MessageComponent";
8
+ import type { ToolRendererMap } from "../message/tool/ToolComponent";
8
9
  export interface ChatInterfaceProps {
9
10
  className?: string;
10
11
  placeholder?: string;
@@ -21,6 +22,7 @@ export interface ChatInterfaceProps {
21
22
  enableMessageEditing?: boolean;
22
23
  /** Toggle rendering of tool role messages (defaults to true for debugging). */
23
24
  showToolMessages?: boolean;
25
+ toolRenderers?: ToolRendererMap;
24
26
  /** Render captured tool artifacts (plots or embedded images). */
25
27
  /** Custom payload extras to attach to all submissions (e.g., research_loops, active_agent, user_id) */
26
28
  payloadExtras?: Record<string, unknown>;
@@ -45,4 +47,5 @@ export interface ChatInterfaceProps {
45
47
  */
46
48
  defaultMessage?: string | null;
47
49
  }
48
- export declare function ChatInterface({ className, placeholder, autoFocus, maxHeight, streamingDebounceMs, streamingThrottleMs, followNewMessages, enableFileUpload, enableExcelUpload, enableMessageEditing, showToolMessages, payloadExtras, customStyles, messageCustomStyles, onMessageSent, onExcelUploadSuccess, onError, defaultMessage, }: ChatInterfaceProps): import("react/jsx-runtime").JSX.Element;
50
+ export declare function ChatInterface({ className, placeholder, autoFocus, maxHeight, streamingDebounceMs, streamingThrottleMs, followNewMessages, enableFileUpload, enableExcelUpload, enableMessageEditing, showToolMessages, toolRenderers, payloadExtras, customStyles, messageCustomStyles, onMessageSent, onExcelUploadSuccess, onError, defaultMessage, }: ChatInterfaceProps): import("react/jsx-runtime").JSX.Element;
51
+ export type { ToolRendererMap } from "../message/tool/ToolComponent";
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import type { ChatMessage, DefaultMessage, PendingInterrupt } from "@/types";
5
5
  import type { CheckpointMeta, EditMeta } from "@/features/checkpoint/types";
6
+ import type { ToolRendererMap } from "./tool/ToolComponent";
6
7
  export interface MessageComponentProps {
7
8
  message: ChatMessage | DefaultMessage;
8
9
  messageIndex: number;
@@ -18,6 +19,7 @@ export interface MessageComponentProps {
18
19
  truncateUserMessages?: boolean;
19
20
  userMessagePreviewLength?: number;
20
21
  showToolMessages?: boolean;
22
+ toolRenderers?: ToolRendererMap;
21
23
  customStyles?: {
22
24
  container?: string;
23
25
  content?: string;
@@ -3,6 +3,7 @@ import type { EditMeta, TimelineCheckpoint } from "@/features/checkpoint/types";
3
3
  import type { CheckpointIndex } from "@/features/checkpoint/utils/checkpointIndex";
4
4
  import React from "react";
5
5
  import type { MessageComponentProps } from "./MessageComponent";
6
+ import type { ToolRendererMap } from "./tool/ToolComponent";
6
7
  export interface MessageListProps {
7
8
  messages: (ChatMessage | DefaultMessage)[];
8
9
  isStreaming: boolean;
@@ -35,6 +36,7 @@ export interface MessageListProps {
35
36
  /** Notify parent when an interrupt action completes */
36
37
  onInterruptActionEnd?: () => void;
37
38
  showToolMessages?: boolean;
39
+ toolRenderers?: ToolRendererMap;
38
40
  checkpointIndex?: CheckpointIndex;
39
41
  activeCheckpointId?: string | null;
40
42
  onSelectCheckpoint?: (checkpointId: string | null, parentCheckpointId?: string | null, isLatest?: boolean) => Promise<void> | void;
@@ -3,6 +3,7 @@ import type { EditMeta } from "@/features/checkpoint/types";
3
3
  import { type CheckpointIndex } from "@/features/checkpoint/utils/checkpointIndex";
4
4
  import type { MessageComponentProps } from "./MessageComponent";
5
5
  import React from "react";
6
+ import type { ToolRendererMap } from "./tool/ToolComponent";
6
7
  export declare const getMessageDomKey: (message: ChatMessage | DefaultMessage | undefined, index: number) => string;
7
8
  export interface MessageRowProps {
8
9
  message: ChatMessage | DefaultMessage;
@@ -25,5 +26,6 @@ export interface MessageRowProps {
25
26
  activeCheckpointId?: string | null;
26
27
  onSelectCheckpoint?: (checkpointId: string | null, parentCheckpointId?: string | null, isLatest?: boolean) => Promise<void> | void;
27
28
  getMessageCustomStyles?: (message: ChatMessage | DefaultMessage) => MessageComponentProps["customStyles"] | undefined;
29
+ toolRenderers?: ToolRendererMap;
28
30
  }
29
31
  export declare const MessageRow: React.NamedExoticComponent<MessageRowProps>;
@@ -11,3 +11,4 @@ export { getMessageDomKey, MessageRow } from "./MessageRow";
11
11
  export type { MessageRowProps } from "./MessageRow";
12
12
  export { FileViewerModal } from "./modals";
13
13
  export { ArtifactRenderer, InterruptPartRenderer, SimpleJsonView, StreamProgress, ThinkingIndicator, ToolComponent, UserTextContent } from "./renderers";
14
+ export type { ToolRenderer, ToolRendererMap, ToolRendererContext } from "./tool/ToolComponent";
@@ -1,5 +1,6 @@
1
1
  import { MouseEvent as ReactMouseEvent } from "react";
2
2
  import type { ChatMessage, DefaultMessage, MessagePart } from "@/types";
3
+ import type { ToolRendererMap } from "../tool/ToolComponent";
3
4
  export interface MessageContentProps {
4
5
  message: ChatMessage | DefaultMessage;
5
6
  isToolMessage: boolean;
@@ -29,6 +30,7 @@ export interface MessageContentProps {
29
30
  activeInterruptId: string | null;
30
31
  activeInterruptValue?: unknown;
31
32
  iconForeground: string;
33
+ toolRenderers?: ToolRendererMap;
32
34
  }
33
- export declare function MessageContent({ message, isToolMessage, showToolMessages, toolViewMode, isToolStreaming, contentParts, textContent, imageParts, fileParts, interruptParts, isStreamingMessage, enableStreamingMarkdownBuffer, renderStreamingMarkdown, defaultMessage, handleFileClick, uploadingFiles, handleInterruptApprove, handleInterruptReject, disableInterruptActions, messageRole, truncateUserMessages, userMessagePreviewLength, isUserExpanded, setIsUserExpanded, isCompactLayout, activeInterruptId, activeInterruptValue, iconForeground, }: MessageContentProps): import("react/jsx-runtime").JSX.Element | null;
35
+ export declare function MessageContent({ message, isToolMessage, showToolMessages, toolViewMode, isToolStreaming, contentParts, textContent, imageParts, fileParts, interruptParts, isStreamingMessage, enableStreamingMarkdownBuffer, renderStreamingMarkdown, defaultMessage, handleFileClick, uploadingFiles, handleInterruptApprove, handleInterruptReject, disableInterruptActions, messageRole, truncateUserMessages, userMessagePreviewLength, isUserExpanded, setIsUserExpanded, isCompactLayout, activeInterruptId, activeInterruptValue, iconForeground, toolRenderers, }: MessageContentProps): import("react/jsx-runtime").JSX.Element | null;
34
36
  export default MessageContent;
@@ -1,8 +1,24 @@
1
1
  import type { ChatMessage } from "@/types";
2
+ import type { ReactNode } from "react";
3
+ import { type ToolPayloadResult } from "@/features/messaging/components/message/hooks";
4
+ import type { ToolMeta } from "@/features/messaging/components/message/utils/messageHelpers";
5
+ interface ToolRendererContext {
6
+ message: ChatMessage;
7
+ toolMeta: ToolMeta;
8
+ toolPayload: ToolPayloadResult | null;
9
+ viewMode: "preview" | "expanded";
10
+ isStreaming: boolean;
11
+ }
12
+ type ToolRenderer = (ctx: ToolRendererContext) => ReactNode | null;
13
+ type ToolRendererMap = {
14
+ default?: ToolRenderer;
15
+ [key: string]: ToolRenderer | undefined;
16
+ };
2
17
  interface ToolComponentProps {
3
18
  message: ChatMessage;
4
19
  viewMode: "preview" | "expanded";
5
20
  isStreaming?: boolean;
21
+ toolRenderers?: ToolRendererMap;
6
22
  }
7
- export declare function ToolComponent({ message, viewMode, isStreaming }: ToolComponentProps): import("react/jsx-runtime").JSX.Element;
8
- export {};
23
+ export declare function ToolComponent({ message, viewMode, isStreaming, toolRenderers, }: ToolComponentProps): import("react/jsx-runtime").JSX.Element;
24
+ export type { ToolRenderer, ToolRendererMap, ToolRendererContext };