@copilotkitnext/react 0.0.19-threads-and-attachements.0 → 0.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,13 +1,12 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React$1 from 'react';
3
3
  import React__default, { ReactNode } from 'react';
4
- import { AssistantMessage, Message, UserMessage, InputContent, ToolCall, ToolMessage } from '@ag-ui/core';
4
+ import { AssistantMessage, Message, UserMessage, ToolCall, ToolMessage } from '@ag-ui/core';
5
5
  import { Streamdown } from 'streamdown';
6
6
  import { Suggestion, CopilotKitCore, ToolCallStatus, FrontendTool, DynamicSuggestionsConfig, StaticSuggestionsConfig, CopilotKitCoreConfig, CopilotKitCoreSubscriber } from '@copilotkitnext/core';
7
- import { ThreadMetadata } from '@copilotkitnext/shared';
8
- export { ThreadMetadata } from '@copilotkitnext/shared';
9
7
  import { z } from 'zod';
10
8
  import * as _lit_labs_react from '@lit-labs/react';
9
+ import { WebInspectorElement } from '@copilotkitnext/web-inspector';
11
10
  import { AbstractAgent, Context } from '@ag-ui/client';
12
11
 
13
12
  declare const CopilotChatDefaultLabels: {
@@ -36,7 +35,6 @@ interface CopilotChatConfigurationValue {
36
35
  labels: CopilotChatLabels;
37
36
  agentId: string;
38
37
  threadId: string;
39
- setThreadId?: (threadId: string) => void;
40
38
  isModalOpen: boolean;
41
39
  setModalOpen: (open: boolean) => void;
42
40
  isModalDefaultOpen: boolean;
@@ -198,29 +196,26 @@ type CopilotChatUserMessageProps = WithSlots<{
198
196
  } & React.HTMLAttributes<HTMLDivElement>>;
199
197
  declare function CopilotChatUserMessage({ message, onEditMessage, branchIndex, numberOfBranches, onSwitchToBranch, additionalToolbarItems, messageRenderer, toolbar, copyButton, editButton, branchNavigation, children, className, ...props }: CopilotChatUserMessageProps): react_jsx_runtime.JSX.Element;
200
198
  declare namespace CopilotChatUserMessage {
201
- export const Container: React.FC<React.PropsWithChildren<React.HTMLAttributes<HTMLDivElement>>>;
202
- type MessageRendererProps = {
199
+ const Container: React.FC<React.PropsWithChildren<React.HTMLAttributes<HTMLDivElement>>>;
200
+ const MessageRenderer: React.FC<{
203
201
  content: string;
204
- contents?: InputContent[];
205
202
  className?: string;
206
- };
207
- export const MessageRenderer: React.FC<MessageRendererProps>;
208
- export const Toolbar: React.FC<React.HTMLAttributes<HTMLDivElement>>;
209
- export const ToolbarButton: React.FC<React.ButtonHTMLAttributes<HTMLButtonElement> & {
203
+ }>;
204
+ const Toolbar: React.FC<React.HTMLAttributes<HTMLDivElement>>;
205
+ const ToolbarButton: React.FC<React.ButtonHTMLAttributes<HTMLButtonElement> & {
210
206
  title: string;
211
207
  children: React.ReactNode;
212
208
  }>;
213
- export const CopyButton: React.FC<React.ButtonHTMLAttributes<HTMLButtonElement> & {
209
+ const CopyButton: React.FC<React.ButtonHTMLAttributes<HTMLButtonElement> & {
214
210
  copied?: boolean;
215
211
  }>;
216
- export const EditButton: React.FC<React.ButtonHTMLAttributes<HTMLButtonElement>>;
217
- export const BranchNavigation: React.FC<React.HTMLAttributes<HTMLDivElement> & {
212
+ const EditButton: React.FC<React.ButtonHTMLAttributes<HTMLButtonElement>>;
213
+ const BranchNavigation: React.FC<React.HTMLAttributes<HTMLDivElement> & {
218
214
  currentBranch?: number;
219
215
  numberOfBranches?: number;
220
216
  onSwitchToBranch?: (props: CopilotChatUserMessageOnSwitchToBranchProps) => void;
221
217
  message: UserMessage;
222
218
  }>;
223
- export { };
224
219
  }
225
220
 
226
221
  interface CopilotChatSuggestionPillProps extends React__default.ButtonHTMLAttributes<HTMLButtonElement> {
@@ -291,26 +286,16 @@ type CopilotChatViewProps = WithSlots<{
291
286
  }, {
292
287
  messages?: Message[];
293
288
  autoScroll?: boolean;
294
- /**
295
- * Controls scroll behavior:
296
- * - "smooth": Always smooth scroll
297
- * - "instant": Always instant scroll
298
- * - "auto": Instant scroll on mount and thread switches, smooth scroll during generation (default)
299
- */
300
- scrollBehavior?: "smooth" | "instant" | "auto";
301
289
  inputProps?: Partial<Omit<CopilotChatInputProps, "children">>;
302
290
  isRunning?: boolean;
303
- isSwitchingThread?: boolean;
304
291
  suggestions?: Suggestion[];
305
292
  suggestionLoadingIndexes?: ReadonlyArray<number>;
306
293
  onSelectSuggestion?: (suggestion: Suggestion, index: number) => void;
307
294
  } & React__default.HTMLAttributes<HTMLDivElement>>;
308
- declare function CopilotChatView({ messageView, input, scrollView, scrollToBottomButton, feather, inputContainer, disclaimer, suggestionView, messages, autoScroll, scrollBehavior, inputProps, isRunning, isSwitchingThread, suggestions, suggestionLoadingIndexes, onSelectSuggestion, children, className, ...props }: CopilotChatViewProps): string | number | bigint | boolean | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
295
+ declare function CopilotChatView({ messageView, input, scrollView, scrollToBottomButton, feather, inputContainer, disclaimer, suggestionView, messages, autoScroll, inputProps, isRunning, suggestions, suggestionLoadingIndexes, onSelectSuggestion, children, className, ...props }: CopilotChatViewProps): string | number | bigint | boolean | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
309
296
  declare namespace CopilotChatView {
310
297
  const ScrollView: React__default.FC<React__default.HTMLAttributes<HTMLDivElement> & {
311
298
  autoScroll?: boolean;
312
- scrollBehavior?: "smooth" | "instant" | "auto";
313
- isSwitchingThread?: boolean;
314
299
  scrollToBottomButton?: React__default.FC<React__default.ButtonHTMLAttributes<HTMLButtonElement>>;
315
300
  inputContainerHeight?: number;
316
301
  isResizing?: boolean;
@@ -349,41 +334,25 @@ declare const CopilotChatToggleButton: React__default.ForwardRefExoticComponent<
349
334
  type HeaderSlots = {
350
335
  titleContent: typeof CopilotModalHeader.Title;
351
336
  closeButton: typeof CopilotModalHeader.CloseButton;
352
- leftContent: typeof CopilotModalHeader.LeftContent;
353
337
  };
354
338
  type HeaderRestProps = {
355
339
  title?: string;
356
- onThreadListClick?: () => void;
357
- showThreadListButton?: boolean;
358
- onNewThreadClick?: () => void;
359
- showNewThreadButton?: boolean;
360
340
  } & Omit<React__default.HTMLAttributes<HTMLDivElement>, "children">;
361
341
  type CopilotModalHeaderProps = WithSlots<HeaderSlots, HeaderRestProps>;
362
- declare function CopilotModalHeader({ title, titleContent, closeButton, leftContent, onThreadListClick, showThreadListButton, onNewThreadClick, showNewThreadButton, children, className, ...rest }: CopilotModalHeaderProps): string | number | bigint | boolean | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
342
+ declare function CopilotModalHeader({ title, titleContent, closeButton, children, className, ...rest }: CopilotModalHeaderProps): string | number | bigint | boolean | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
363
343
  declare namespace CopilotModalHeader {
364
344
  var displayName: string;
365
345
  }
366
346
  declare namespace CopilotModalHeader {
367
347
  const Title: React__default.FC<React__default.HTMLAttributes<HTMLDivElement>>;
368
348
  const CloseButton: React__default.FC<React__default.ButtonHTMLAttributes<HTMLButtonElement>>;
369
- interface LeftContentProps {
370
- onThreadListClick?: () => void;
371
- showThreadListButton?: boolean;
372
- onNewThreadClick?: () => void;
373
- showNewThreadButton?: boolean;
374
- className?: string;
375
- children?: React__default.ReactNode;
376
- }
377
- const LeftContent: React__default.FC<LeftContentProps>;
378
349
  }
379
350
 
380
351
  type CopilotSidebarViewProps = CopilotChatViewProps & {
381
352
  header?: SlotValue<typeof CopilotModalHeader>;
382
353
  width?: number | string;
383
- showThreadListButton?: boolean;
384
- showNewThreadButton?: boolean;
385
354
  };
386
- declare function CopilotSidebarView({ header, width, showThreadListButton, showNewThreadButton, ...props }: CopilotSidebarViewProps): react_jsx_runtime.JSX.Element;
355
+ declare function CopilotSidebarView({ header, width, ...props }: CopilotSidebarViewProps): react_jsx_runtime.JSX.Element;
387
356
  declare namespace CopilotSidebarView {
388
357
  var displayName: string;
389
358
  }
@@ -393,10 +362,8 @@ type CopilotPopupViewProps = CopilotChatViewProps & {
393
362
  width?: number | string;
394
363
  height?: number | string;
395
364
  clickOutsideToClose?: boolean;
396
- showThreadListButton?: boolean;
397
- showNewThreadButton?: boolean;
398
365
  };
399
- declare function CopilotPopupView({ header, width, height, clickOutsideToClose, showThreadListButton, showNewThreadButton, className, ...restProps }: CopilotPopupViewProps): react_jsx_runtime.JSX.Element;
366
+ declare function CopilotPopupView({ header, width, height, clickOutsideToClose, className, ...restProps }: CopilotPopupViewProps): react_jsx_runtime.JSX.Element;
400
367
  declare namespace CopilotPopupView {
401
368
  var displayName: string;
402
369
  }
@@ -405,10 +372,8 @@ type CopilotSidebarProps = Omit<CopilotChatProps, "chatView"> & {
405
372
  header?: CopilotSidebarViewProps["header"];
406
373
  defaultOpen?: boolean;
407
374
  width?: number | string;
408
- showThreadListButton?: boolean;
409
- showNewThreadButton?: boolean;
410
375
  };
411
- declare function CopilotSidebar({ header, defaultOpen, width, showThreadListButton, showNewThreadButton, ...chatProps }: CopilotSidebarProps): react_jsx_runtime.JSX.Element;
376
+ declare function CopilotSidebar({ header, defaultOpen, width, ...chatProps }: CopilotSidebarProps): react_jsx_runtime.JSX.Element;
412
377
  declare namespace CopilotSidebar {
413
378
  var displayName: string;
414
379
  }
@@ -419,79 +384,20 @@ type CopilotPopupProps = Omit<CopilotChatProps, "chatView"> & {
419
384
  width?: CopilotPopupViewProps["width"];
420
385
  height?: CopilotPopupViewProps["height"];
421
386
  clickOutsideToClose?: CopilotPopupViewProps["clickOutsideToClose"];
422
- showThreadListButton?: boolean;
423
- showNewThreadButton?: boolean;
424
387
  };
425
- declare function CopilotPopup({ header, defaultOpen, width, height, clickOutsideToClose, showThreadListButton, showNewThreadButton, ...chatProps }: CopilotPopupProps): react_jsx_runtime.JSX.Element;
388
+ declare function CopilotPopup({ header, defaultOpen, width, height, clickOutsideToClose, ...chatProps }: CopilotPopupProps): react_jsx_runtime.JSX.Element;
426
389
  declare namespace CopilotPopup {
427
390
  var displayName: string;
428
391
  }
429
392
 
430
- interface CopilotThreadListProps {
431
- /**
432
- * Number of threads to load initially
433
- */
434
- limit?: number;
435
- /**
436
- * Callback when a thread is selected
437
- */
438
- onThreadSelect?: (threadId: string) => void;
439
- /**
440
- * Custom className for the container
441
- */
442
- className?: string;
443
- /**
444
- * Slot for customizing thread items
445
- */
446
- threadItem?: SlotValue<typeof ThreadListItem>;
447
- /**
448
- * Slot for customizing the new thread button
449
- */
450
- newThreadButton?: SlotValue<typeof NewThreadButton>;
451
- /**
452
- * Slot for customizing the container
453
- */
454
- container?: SlotValue<typeof Container>;
455
- /**
456
- * Interval in milliseconds for auto-refreshing threads when a thread is running or unnamed.
457
- * @default 2000
458
- */
459
- refreshInterval?: number;
460
- /**
461
- * Disable automatic polling/refresh of threads.
462
- * Use this when you have external invalidation mechanisms (e.g., React Query, SWR).
463
- * @default false
464
- */
465
- disableAutoRefresh?: boolean;
466
- }
467
- declare const Container: React__default.FC<React__default.HTMLAttributes<HTMLDivElement>>;
468
- declare const NewThreadButton: React__default.FC<React__default.ButtonHTMLAttributes<HTMLButtonElement>>;
469
- interface ThreadListItemProps {
470
- thread: ThreadMetadata;
471
- isActive?: boolean;
472
- onClick?: () => void;
473
- onDelete?: () => void;
474
- }
475
- declare const ThreadListItem: React__default.FC<ThreadListItemProps>;
476
- declare function CopilotThreadList(props: CopilotThreadListProps): react_jsx_runtime.JSX.Element;
477
- declare namespace CopilotThreadList {
478
- var displayName: string;
479
- var ThreadItem: React__default.FC<ThreadListItemProps>;
480
- var NewThreadButton: React__default.FC<React__default.ButtonHTMLAttributes<HTMLButtonElement>>;
481
- var Container: React__default.FC<React__default.HTMLAttributes<HTMLDivElement>>;
482
- }
483
-
484
393
  declare const WildcardToolCallRender: ReactToolCallRenderer<any>;
485
394
 
486
- type WebInspectorElementInstance = HTMLElement & {
487
- core: CopilotKitCore | null;
488
- };
489
- declare const CopilotKitInspectorBase: _lit_labs_react.ReactWebComponent<HTMLElement, {}>;
395
+ declare const CopilotKitInspectorBase: _lit_labs_react.ReactWebComponent<WebInspectorElement, {}>;
490
396
  type CopilotKitInspectorBaseProps = React$1.ComponentProps<typeof CopilotKitInspectorBase>;
491
397
  interface CopilotKitInspectorProps extends Omit<CopilotKitInspectorBaseProps, "core"> {
492
398
  core?: CopilotKitCore | null;
493
399
  }
494
- declare const CopilotKitInspector: React$1.ForwardRefExoticComponent<Omit<CopilotKitInspectorProps, "ref"> & React$1.RefAttributes<WebInspectorElementInstance>>;
400
+ declare const CopilotKitInspector: React$1.ForwardRefExoticComponent<Omit<CopilotKitInspectorProps, "ref"> & React$1.RefAttributes<WebInspectorElement>>;
495
401
 
496
402
  interface UseRenderToolCallProps {
497
403
  toolCall: ToolCall;
@@ -621,62 +527,6 @@ interface UseConfigureSuggestionsOptions {
621
527
  }
622
528
  declare function useConfigureSuggestions(config: SuggestionsConfigInput | null | undefined, options?: UseConfigureSuggestionsOptions): void;
623
529
 
624
- interface UseThreadsOptions {
625
- limit?: number;
626
- autoFetch?: boolean;
627
- }
628
- interface UseThreadsResult {
629
- threads: ThreadMetadata[];
630
- total: number;
631
- isLoading: boolean;
632
- error: Error | null;
633
- fetchThreads: (offset?: number) => Promise<void>;
634
- getThreadMetadata: (threadId: string) => Promise<ThreadMetadata | null>;
635
- refresh: () => Promise<void>;
636
- addOptimisticThread: (threadId: string) => void;
637
- deleteThread: (threadId: string) => Promise<void>;
638
- currentThreadId?: string;
639
- }
640
- /**
641
- * Hook for managing and retrieving threads from the CopilotKit runtime.
642
- *
643
- * @example
644
- * ```tsx
645
- * const { threads, isLoading, fetchThreads } = useThreads({ limit: 20 });
646
- *
647
- * // Manually fetch threads
648
- * await fetchThreads();
649
- *
650
- * // Paginate
651
- * await fetchThreads(20); // offset = 20
652
- * ```
653
- */
654
- declare function useThreads(options?: UseThreadsOptions): UseThreadsResult;
655
-
656
- /**
657
- * Hook to programmatically switch threads.
658
- *
659
- * This is a simple wrapper around the configuration context's setThreadId.
660
- * The actual disconnect/connect logic is handled by CopilotChat.
661
- *
662
- * @example
663
- * ```tsx
664
- * function MyComponent() {
665
- * const { switchThread, currentThreadId } = useThreadSwitch();
666
- *
667
- * return (
668
- * <button onClick={() => switchThread('new-thread-id')}>
669
- * Switch Thread
670
- * </button>
671
- * );
672
- * }
673
- * ```
674
- */
675
- declare function useThreadSwitch(): {
676
- switchThread: (threadId: string) => void;
677
- currentThreadId: string | undefined;
678
- };
679
-
680
530
  /**
681
531
  * Helper to define a type-safe tool call renderer entry.
682
532
  * - Accepts a single object whose keys match ReactToolCallRenderer's fields: { name, args, render, agentId? }.
@@ -735,39 +585,12 @@ declare class CopilotKitCoreReact extends CopilotKitCore {
735
585
 
736
586
  interface CopilotKitContextValue {
737
587
  copilotkit: CopilotKitCoreReact;
738
- /**
739
- * Set the resource ID(s) dynamically.
740
- * Use this to update resource scoping when the user switches context (e.g., workspace switcher).
741
- *
742
- * @example
743
- * ```tsx
744
- * const { setResourceId } = useCopilotKit();
745
- * setResourceId(newWorkspaceId);
746
- * ```
747
- */
748
- setResourceId: (resourceId: string | string[] | undefined) => void;
749
588
  }
750
589
  interface CopilotKitProviderProps {
751
590
  children: ReactNode;
752
591
  runtimeUrl?: string;
753
592
  headers?: Record<string, string>;
754
593
  properties?: Record<string, unknown>;
755
- /**
756
- * Resource ID(s) for thread access control.
757
- *
758
- * This value is sent to the server as a hint for thread scoping.
759
- * The server's `resolveThreadsScope` validates and enforces access control.
760
- *
761
- * @example
762
- * ```tsx
763
- * // Single resource
764
- * <CopilotKitProvider resourceId={userId}>
765
- *
766
- * // Multiple resources (thread accessible by any of these)
767
- * <CopilotKitProvider resourceId={[userId, workspaceId]}>
768
- * ```
769
- */
770
- resourceId?: string | string[];
771
594
  agents__unsafe_dev_only?: Record<string, AbstractAgent>;
772
595
  renderToolCalls?: ReactToolCallRenderer<any>[];
773
596
  renderCustomMessages?: ReactCustomMessageRenderer[];
@@ -778,4 +601,4 @@ interface CopilotKitProviderProps {
778
601
  declare const CopilotKitProvider: React__default.FC<CopilotKitProviderProps>;
779
602
  declare const useCopilotKit: () => CopilotKitContextValue;
780
603
 
781
- export { AudioRecorderError, type AudioRecorderState, CopilotChat, CopilotChatAssistantMessage, type CopilotChatAssistantMessageProps, CopilotChatAudioRecorder, CopilotChatConfigurationProvider, type CopilotChatConfigurationProviderProps, type CopilotChatConfigurationValue, CopilotChatInput, type CopilotChatInputProps, type CopilotChatLabels, CopilotChatMessageView, type CopilotChatMessageViewProps, type CopilotChatProps, CopilotChatSuggestionPill, type CopilotChatSuggestionPillProps, CopilotChatSuggestionView, type CopilotChatSuggestionViewProps, CopilotChatToggleButton, DefaultCloseIcon as CopilotChatToggleButtonCloseIcon, DefaultOpenIcon as CopilotChatToggleButtonOpenIcon, type CopilotChatToggleButtonProps, CopilotChatToolCallsView, type CopilotChatToolCallsViewProps, CopilotChatUserMessage, type CopilotChatUserMessageProps, CopilotChatView, type CopilotChatViewProps, type CopilotKitContextValue, CopilotKitCoreReact, type CopilotKitCoreReactConfig, type CopilotKitCoreReactSubscriber, CopilotKitInspector, type CopilotKitInspectorBaseProps, type CopilotKitInspectorProps, CopilotKitProvider, type CopilotKitProviderProps, CopilotModalHeader, type CopilotModalHeaderProps, CopilotPopup, type CopilotPopupProps, CopilotPopupView, type CopilotPopupViewProps, CopilotSidebar, type CopilotSidebarProps, CopilotSidebarView, type CopilotSidebarViewProps, CopilotThreadList, type CopilotThreadListProps, type ReactCustomMessageRenderer, type ReactCustomMessageRendererPosition, type ReactFrontendTool, type ReactHumanInTheLoop, type ReactToolCallRenderer, type ToolsMenuItem, type UseThreadsOptions, type UseThreadsResult, WildcardToolCallRender, defineToolCallRenderer, useAgent, useAgentContext, useConfigureSuggestions, useCopilotChatConfiguration, useCopilotKit, useFrontendTool, useHumanInTheLoop, useRenderCustomMessages, useRenderToolCall, useSuggestions, useThreadSwitch, useThreads };
604
+ export { AudioRecorderError, type AudioRecorderState, CopilotChat, CopilotChatAssistantMessage, type CopilotChatAssistantMessageProps, CopilotChatAudioRecorder, CopilotChatConfigurationProvider, type CopilotChatConfigurationProviderProps, type CopilotChatConfigurationValue, CopilotChatInput, type CopilotChatInputProps, type CopilotChatLabels, CopilotChatMessageView, type CopilotChatMessageViewProps, type CopilotChatProps, CopilotChatSuggestionPill, type CopilotChatSuggestionPillProps, CopilotChatSuggestionView, type CopilotChatSuggestionViewProps, CopilotChatToggleButton, DefaultCloseIcon as CopilotChatToggleButtonCloseIcon, DefaultOpenIcon as CopilotChatToggleButtonOpenIcon, type CopilotChatToggleButtonProps, CopilotChatToolCallsView, type CopilotChatToolCallsViewProps, CopilotChatUserMessage, type CopilotChatUserMessageProps, CopilotChatView, type CopilotChatViewProps, type CopilotKitContextValue, CopilotKitCoreReact, type CopilotKitCoreReactConfig, type CopilotKitCoreReactSubscriber, CopilotKitInspector, type CopilotKitInspectorBaseProps, type CopilotKitInspectorProps, CopilotKitProvider, type CopilotKitProviderProps, CopilotModalHeader, type CopilotModalHeaderProps, CopilotPopup, type CopilotPopupProps, CopilotPopupView, type CopilotPopupViewProps, CopilotSidebar, type CopilotSidebarProps, CopilotSidebarView, type CopilotSidebarViewProps, type ReactCustomMessageRenderer, type ReactCustomMessageRendererPosition, type ReactFrontendTool, type ReactHumanInTheLoop, type ReactToolCallRenderer, type ToolsMenuItem, WildcardToolCallRender, defineToolCallRenderer, useAgent, useAgentContext, useConfigureSuggestions, useCopilotChatConfiguration, useCopilotKit, useFrontendTool, useHumanInTheLoop, useRenderCustomMessages, useRenderToolCall, useSuggestions };