Genkit JS API reference
    Preparing search index...

    Class Session<S>

    State manager for a session turn, tracking messages, custom state, and artifacts.

    Type Parameters

    • S = unknown

    Hierarchy

    • EventEmitter
      • Session
    Index

    Constructors

    • Type Parameters

      • S = unknown

      Parameters

      Returns Session<S>

    Properties

    sessionId: string

    Stable identifier that correlates traces across agent turns.

    Methods

    • Adds artifacts to the session, deduplicating items by name. Emits 'artifactAdded' for new artifacts and 'artifactUpdated' for replacements.

      Parameters

      • artifacts: {
            metadata?: Record<string, any>;
            name?: string;
            parts: (
                | {
                    custom?: Record<string, unknown>;
                    data?: unknown;
                    media?: undefined;
                    metadata?: Record<string, unknown>;
                    reasoning?: undefined;
                    resource?: undefined;
                    text: string;
                    toolRequest?: undefined;
                    toolResponse?: undefined;
                }
                | {
                    custom?: Record<string, unknown>;
                    data?: unknown;
                    media: { contentType?: string; url: string };
                    metadata?: Record<string, unknown>;
                    reasoning?: undefined;
                    resource?: undefined;
                    text?: undefined;
                    toolRequest?: undefined;
                    toolResponse?: undefined;
                }
                | {
                    custom?: Record<string, unknown>;
                    data?: unknown;
                    media?: undefined;
                    metadata?: Record<string, unknown>;
                    reasoning?: undefined;
                    resource?: undefined;
                    text?: undefined;
                    toolRequest: {
                        input?: unknown;
                        name: string;
                        partial?: boolean;
                        ref?: string;
                    };
                    toolResponse?: undefined;
                }
                | {
                    custom?: Record<string, unknown>;
                    data?: unknown;
                    media?: undefined;
                    metadata?: Record<string, unknown>;
                    reasoning?: undefined;
                    resource?: undefined;
                    text?: undefined;
                    toolRequest?: undefined;
                    toolResponse: { name: string; output?: unknown; ref?: string } & {
                        content?: (
                            | {
                                custom?: ...;
                                data?: ...;
                                media?: ...;
                                metadata?: ...;
                                reasoning?: ...;
                                resource?: ...;
                                text: ...;
                                toolRequest?: ...;
                                toolResponse?: ...;
                            }
                            | {
                                custom?: ...;
                                data?: ...;
                                media: ...;
                                metadata?: ...;
                                reasoning?: ...;
                                resource?: ...;
                                text?: ...;
                                toolRequest?: ...;
                                toolResponse?: ...;
                            }
                            | {
                                custom?: ...;
                                data?: ...;
                                media?: ...;
                                metadata?: ...;
                                reasoning?: ...;
                                resource?: ...;
                                text?: ...;
                                toolRequest: ...;
                                toolResponse?: ...;
                            }
                            | {
                                custom?: ...;
                                data?: ...;
                                media?: ...;
                                metadata?: ...;
                                reasoning?: ...;
                                resource?: ...;
                                text?: ...;
                                toolRequest?: ...;
                                toolResponse: ...;
                            }
                            | {
                                custom?: ...;
                                data?: ...;
                                media?: ...;
                                metadata?: ...;
                                reasoning?: ...;
                                resource?: ...;
                                text?: ...;
                                toolRequest?: ...;
                                toolResponse?: ...;
                            }
                            | {
                                custom: ...;
                                data?: ...;
                                media?: ...;
                                metadata?: ...;
                                reasoning?: ...;
                                resource?: ...;
                                text?: ...;
                                toolRequest?: ...;
                                toolResponse?: ...;
                            }
                            | {
                                custom?: ...;
                                data?: ...;
                                media?: ...;
                                metadata?: ...;
                                reasoning: ...;
                                resource?: ...;
                                text?: ...;
                                toolRequest?: ...;
                                toolResponse?: ...;
                            }
                            | {
                                custom?: ...;
                                data?: ...;
                                media?: ...;
                                metadata?: ...;
                                reasoning?: ...;
                                resource: ...;
                                text?: ...;
                                toolRequest?: ...;
                                toolResponse?: ...;
                            }
                        )[];
                    };
                }
                | {
                    custom?: Record<string, unknown>;
                    data?: unknown;
                    media?: undefined;
                    metadata?: Record<string, unknown>;
                    reasoning?: undefined;
                    resource?: undefined;
                    text?: undefined;
                    toolRequest?: undefined;
                    toolResponse?: undefined;
                }
                | {
                    custom: Record<string, any>;
                    data?: unknown;
                    media?: undefined;
                    metadata?: Record<string, unknown>;
                    reasoning?: undefined;
                    resource?: undefined;
                    text?: undefined;
                    toolRequest?: undefined;
                    toolResponse?: undefined;
                }
                | {
                    custom?: Record<string, unknown>;
                    data?: unknown;
                    media?: undefined;
                    metadata?: Record<string, unknown>;
                    reasoning: string;
                    resource?: undefined;
                    text?: undefined;
                    toolRequest?: undefined;
                    toolResponse?: undefined;
                }
                | {
                    custom?: Record<string, unknown>;
                    data?: unknown;
                    media?: undefined;
                    metadata?: Record<string, unknown>;
                    reasoning?: undefined;
                    resource: { uri: string };
                    text?: undefined;
                    toolRequest?: undefined;
                    toolResponse?: undefined;
                }
            )[];
        }[]

      Returns void

    • Appends a list of messages to the session.

      Parameters

      • messages: {
            content: (
                | {
                    custom?: Record<string, unknown>;
                    data?: unknown;
                    media?: undefined;
                    metadata?: Record<string, unknown>;
                    reasoning?: undefined;
                    resource?: undefined;
                    text: string;
                    toolRequest?: undefined;
                    toolResponse?: undefined;
                }
                | {
                    custom?: Record<string, unknown>;
                    data?: unknown;
                    media: { contentType?: string; url: string };
                    metadata?: Record<string, unknown>;
                    reasoning?: undefined;
                    resource?: undefined;
                    text?: undefined;
                    toolRequest?: undefined;
                    toolResponse?: undefined;
                }
                | {
                    custom?: Record<string, unknown>;
                    data?: unknown;
                    media?: undefined;
                    metadata?: Record<string, unknown>;
                    reasoning?: undefined;
                    resource?: undefined;
                    text?: undefined;
                    toolRequest: {
                        input?: unknown;
                        name: string;
                        partial?: boolean;
                        ref?: string;
                    };
                    toolResponse?: undefined;
                }
                | {
                    custom?: Record<string, unknown>;
                    data?: unknown;
                    media?: undefined;
                    metadata?: Record<string, unknown>;
                    reasoning?: undefined;
                    resource?: undefined;
                    text?: undefined;
                    toolRequest?: undefined;
                    toolResponse: { name: string; output?: unknown; ref?: string } & {
                        content?: (
                            | {
                                custom?: ...;
                                data?: ...;
                                media?: ...;
                                metadata?: ...;
                                reasoning?: ...;
                                resource?: ...;
                                text: ...;
                                toolRequest?: ...;
                                toolResponse?: ...;
                            }
                            | {
                                custom?: ...;
                                data?: ...;
                                media: ...;
                                metadata?: ...;
                                reasoning?: ...;
                                resource?: ...;
                                text?: ...;
                                toolRequest?: ...;
                                toolResponse?: ...;
                            }
                            | {
                                custom?: ...;
                                data?: ...;
                                media?: ...;
                                metadata?: ...;
                                reasoning?: ...;
                                resource?: ...;
                                text?: ...;
                                toolRequest: ...;
                                toolResponse?: ...;
                            }
                            | {
                                custom?: ...;
                                data?: ...;
                                media?: ...;
                                metadata?: ...;
                                reasoning?: ...;
                                resource?: ...;
                                text?: ...;
                                toolRequest?: ...;
                                toolResponse: ...;
                            }
                            | {
                                custom?: ...;
                                data?: ...;
                                media?: ...;
                                metadata?: ...;
                                reasoning?: ...;
                                resource?: ...;
                                text?: ...;
                                toolRequest?: ...;
                                toolResponse?: ...;
                            }
                            | {
                                custom: ...;
                                data?: ...;
                                media?: ...;
                                metadata?: ...;
                                reasoning?: ...;
                                resource?: ...;
                                text?: ...;
                                toolRequest?: ...;
                                toolResponse?: ...;
                            }
                            | {
                                custom?: ...;
                                data?: ...;
                                media?: ...;
                                metadata?: ...;
                                reasoning: ...;
                                resource?: ...;
                                text?: ...;
                                toolRequest?: ...;
                                toolResponse?: ...;
                            }
                            | {
                                custom?: ...;
                                data?: ...;
                                media?: ...;
                                metadata?: ...;
                                reasoning?: ...;
                                resource: ...;
                                text?: ...;
                                toolRequest?: ...;
                                toolResponse?: ...;
                            }
                        )[];
                    };
                }
                | {
                    custom?: Record<string, unknown>;
                    data?: unknown;
                    media?: undefined;
                    metadata?: Record<string, unknown>;
                    reasoning?: undefined;
                    resource?: undefined;
                    text?: undefined;
                    toolRequest?: undefined;
                    toolResponse?: undefined;
                }
                | {
                    custom: Record<string, any>;
                    data?: unknown;
                    media?: undefined;
                    metadata?: Record<string, unknown>;
                    reasoning?: undefined;
                    resource?: undefined;
                    text?: undefined;
                    toolRequest?: undefined;
                    toolResponse?: undefined;
                }
                | {
                    custom?: Record<string, unknown>;
                    data?: unknown;
                    media?: undefined;
                    metadata?: Record<string, unknown>;
                    reasoning: string;
                    resource?: undefined;
                    text?: undefined;
                    toolRequest?: undefined;
                    toolResponse?: undefined;
                }
                | {
                    custom?: Record<string, unknown>;
                    data?: unknown;
                    media?: undefined;
                    metadata?: Record<string, unknown>;
                    reasoning?: undefined;
                    resource: { uri: string };
                    text?: undefined;
                    toolRequest?: undefined;
                    toolResponse?: undefined;
                }
            )[];
            metadata?: Record<string, unknown>;
            role: "user" | "model" | "tool" | "system";
        }[]

      Returns void

    • Parameters

      • event: string
      • ...args: any[]

      Returns void

    • Retrieves the list of artifacts generated during the session.

      Returns {
          metadata?: Record<string, any>;
          name?: string;
          parts: (
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text: string;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media: { contentType?: string; url: string };
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest: {
                      input?: unknown;
                      name: string;
                      partial?: boolean;
                      ref?: string;
                  };
                  toolResponse?: undefined;
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse: { name: string; output?: unknown; ref?: string } & {
                      content?: (
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                      )[];
                  };
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
              | {
                  custom: Record<string, any>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning: string;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource: { uri: string };
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
          )[];
      }[]

    • Retrieves the custom state of the session.

      Returns S | undefined

    • Retrieves all messages associated with the session.

      Returns a copy so callers cannot mutate the session's internal message array in place.

      Returns {
          content: (
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text: string;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media: { contentType?: string; url: string };
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest: {
                      input?: unknown;
                      name: string;
                      partial?: boolean;
                      ref?: string;
                  };
                  toolResponse?: undefined;
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse: { name: string; output?: unknown; ref?: string } & {
                      content?: (
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                      )[];
                  };
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
              | {
                  custom: Record<string, any>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning: string;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource: { uri: string };
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
          )[];
          metadata?: Record<string, unknown>;
          role: "user" | "model" | "tool" | "system";
      }[]

    • Returns a deep copy of the current session state.

      Returns SessionState<S>

    • Gets the current mutation version of the session state.

      Returns number

    • Parameters

      • event: string
      • listener: (...args: any[]) => void

      Returns void

    • Parameters

      • event: string
      • listener: (...args: any[]) => void

      Returns void

    • Runs the provided function inside the session's context.

      Type Parameters

      • O

      Parameters

      • fn: () => O

      Returns O

    • Overwrites the session messages.

      Parameters

      • messages: {
            content: (
                | {
                    custom?: Record<string, unknown>;
                    data?: unknown;
                    media?: undefined;
                    metadata?: Record<string, unknown>;
                    reasoning?: undefined;
                    resource?: undefined;
                    text: string;
                    toolRequest?: undefined;
                    toolResponse?: undefined;
                }
                | {
                    custom?: Record<string, unknown>;
                    data?: unknown;
                    media: { contentType?: string; url: string };
                    metadata?: Record<string, unknown>;
                    reasoning?: undefined;
                    resource?: undefined;
                    text?: undefined;
                    toolRequest?: undefined;
                    toolResponse?: undefined;
                }
                | {
                    custom?: Record<string, unknown>;
                    data?: unknown;
                    media?: undefined;
                    metadata?: Record<string, unknown>;
                    reasoning?: undefined;
                    resource?: undefined;
                    text?: undefined;
                    toolRequest: {
                        input?: unknown;
                        name: string;
                        partial?: boolean;
                        ref?: string;
                    };
                    toolResponse?: undefined;
                }
                | {
                    custom?: Record<string, unknown>;
                    data?: unknown;
                    media?: undefined;
                    metadata?: Record<string, unknown>;
                    reasoning?: undefined;
                    resource?: undefined;
                    text?: undefined;
                    toolRequest?: undefined;
                    toolResponse: { name: string; output?: unknown; ref?: string } & {
                        content?: (
                            | {
                                custom?: ...;
                                data?: ...;
                                media?: ...;
                                metadata?: ...;
                                reasoning?: ...;
                                resource?: ...;
                                text: ...;
                                toolRequest?: ...;
                                toolResponse?: ...;
                            }
                            | {
                                custom?: ...;
                                data?: ...;
                                media: ...;
                                metadata?: ...;
                                reasoning?: ...;
                                resource?: ...;
                                text?: ...;
                                toolRequest?: ...;
                                toolResponse?: ...;
                            }
                            | {
                                custom?: ...;
                                data?: ...;
                                media?: ...;
                                metadata?: ...;
                                reasoning?: ...;
                                resource?: ...;
                                text?: ...;
                                toolRequest: ...;
                                toolResponse?: ...;
                            }
                            | {
                                custom?: ...;
                                data?: ...;
                                media?: ...;
                                metadata?: ...;
                                reasoning?: ...;
                                resource?: ...;
                                text?: ...;
                                toolRequest?: ...;
                                toolResponse: ...;
                            }
                            | {
                                custom?: ...;
                                data?: ...;
                                media?: ...;
                                metadata?: ...;
                                reasoning?: ...;
                                resource?: ...;
                                text?: ...;
                                toolRequest?: ...;
                                toolResponse?: ...;
                            }
                            | {
                                custom: ...;
                                data?: ...;
                                media?: ...;
                                metadata?: ...;
                                reasoning?: ...;
                                resource?: ...;
                                text?: ...;
                                toolRequest?: ...;
                                toolResponse?: ...;
                            }
                            | {
                                custom?: ...;
                                data?: ...;
                                media?: ...;
                                metadata?: ...;
                                reasoning: ...;
                                resource?: ...;
                                text?: ...;
                                toolRequest?: ...;
                                toolResponse?: ...;
                            }
                            | {
                                custom?: ...;
                                data?: ...;
                                media?: ...;
                                metadata?: ...;
                                reasoning?: ...;
                                resource: ...;
                                text?: ...;
                                toolRequest?: ...;
                                toolResponse?: ...;
                            }
                        )[];
                    };
                }
                | {
                    custom?: Record<string, unknown>;
                    data?: unknown;
                    media?: undefined;
                    metadata?: Record<string, unknown>;
                    reasoning?: undefined;
                    resource?: undefined;
                    text?: undefined;
                    toolRequest?: undefined;
                    toolResponse?: undefined;
                }
                | {
                    custom: Record<string, any>;
                    data?: unknown;
                    media?: undefined;
                    metadata?: Record<string, unknown>;
                    reasoning?: undefined;
                    resource?: undefined;
                    text?: undefined;
                    toolRequest?: undefined;
                    toolResponse?: undefined;
                }
                | {
                    custom?: Record<string, unknown>;
                    data?: unknown;
                    media?: undefined;
                    metadata?: Record<string, unknown>;
                    reasoning: string;
                    resource?: undefined;
                    text?: undefined;
                    toolRequest?: undefined;
                    toolResponse?: undefined;
                }
                | {
                    custom?: Record<string, unknown>;
                    data?: unknown;
                    media?: undefined;
                    metadata?: Record<string, unknown>;
                    reasoning?: undefined;
                    resource: { uri: string };
                    text?: undefined;
                    toolRequest?: undefined;
                    toolResponse?: undefined;
                }
            )[];
            metadata?: Record<string, unknown>;
            role: "user" | "model" | "tool" | "system";
        }[]

      Returns void

    • Updates the custom state of the session using a mutator function.

      Parameters

      • fn: (custom?: S) => S

      Returns void