CCCPaste

types.tsx

/* __LC_ALLOW_ENTRYPOINT_SIDE_EFFECTS__ */

import {
  Client,
  ClientConfig,
  Command,
  Config,
  CustomStreamEvent,
  DebugStreamEvent,
  EventsStreamEvent,
  MetadataStreamEvent,
  ThreadState,
  UpdatesStreamEvent,
} from '@langchain/langgraph-sdk';

export type MessageMetadata> = {
  /**
   * The ID of the message used.
   */
  messageId: string;

  /**
   * The first thread state the message was seen in.
   */
  firstSeenState: ThreadState | undefined;

  /**
   * The branch of the message.
   */
  branch: string | undefined;

  /**
   * The list of branches this message is part of.
   * This is useful for displaying branching controls.
   */
  branchOptions: string[] | undefined;

  /**
   * Metadata sent alongside the message during run streaming.
   * @remarks This metadata only exists temporarily in browser memory during streaming and is not persisted after completion.
   */
  streamMetadata: Record | undefined;
};

export type BagTemplate = {
  ConfigurableType?: Record;
  InterruptType?: unknown;
  CustomEventType?: unknown;
  UpdateType?: unknown;
};

export type GetUpdateType<
  Bag extends BagTemplate,
  StateType extends Record,
> = Bag extends { UpdateType: unknown }
  ? Bag['UpdateType']
  : Partial;

export type GetConfigurableType = Bag extends {
  ConfigurableType: Record;
}
  ? Bag['ConfigurableType']
  : Record;

export type GetInterruptType = Bag extends {
  InterruptType: unknown;
}
  ? Bag['InterruptType']
  : unknown;

export type GetCustomEventType = Bag extends {
  CustomEventType: unknown;
}
  ? Bag['CustomEventType']
  : unknown;

export interface RunCallbackMeta {
  run_id: string;
  thread_id: string;
}

export interface UseStreamThread> {
  data: ThreadState[] | null | undefined;
  error: unknown;
  isLoading: boolean;
  mutate: (
    mutateId?: string,
  ) => Promise[] | null | undefined>;
}

type ConfigWithConfigurable> =
  Config & { configurable?: ConfigurableType };
/**
 * Transport used to stream the thread.
 * Only applicable for custom endpoints using `toLangGraphEventStream` or `toLangGraphEventStreamResponse`.
 */
export interface UseStreamTransport<
  StateType extends Record = Record,
  Bag extends BagTemplate = BagTemplate,
> {
  stream: (payload: {
    input: GetUpdateType | null | undefined;
    context: GetConfigurableType | undefined;
    command: Command | undefined;
    config: ConfigWithConfigurable> | undefined;
    signal: AbortSignal;
  }) => Promise>;
}