UNPKG

@langchain/core

Version:
79 lines • 4.29 kB
import { $InferMessageContent, $InferMessageProperty, $InferToolCalls, MessageStructure, MessageToolSet } from "./message.js"; import { BaseMessage, BaseMessageChunk, BaseMessageFields } from "./base.js"; import { ContentBlock } from "./content/index.js"; import { InvalidToolCall, ToolCallChunk } from "./tool.js"; export interface AIMessageFields<TStructure extends MessageStructure = MessageStructure> extends BaseMessageFields<TStructure, "ai"> { tool_calls?: $InferToolCalls<TStructure>[]; invalid_tool_calls?: InvalidToolCall[]; usage_metadata?: $InferMessageProperty<TStructure, "ai", "usage_metadata">; } export declare class AIMessage<TStructure extends MessageStructure = MessageStructure> extends BaseMessage<TStructure, "ai"> implements AIMessageFields<TStructure> { readonly type: "ai"; tool_calls?: $InferToolCalls<TStructure>[]; invalid_tool_calls?: InvalidToolCall[]; usage_metadata?: AIMessageFields<TStructure>["usage_metadata"]; get lc_aliases(): Record<string, string>; constructor(fields: $InferMessageContent<TStructure, "ai"> | AIMessageFields<TStructure>); static lc_name(): string; get contentBlocks(): Array<ContentBlock.Standard>; get _printableFields(): Record<string, unknown>; /** * Type guard to check if an object is an AIMessage. * Preserves the MessageStructure type parameter when called with a typed BaseMessage. * @overload When called with a typed BaseMessage, preserves the TStructure type */ static isInstance<T extends MessageStructure>(obj: BaseMessage<T>): obj is BaseMessage<T> & AIMessage<T>; /** * Type guard to check if an object is an AIMessage. * @overload When called with unknown, returns base AIMessage type */ static isInstance(obj: unknown): obj is AIMessage; static [Symbol.hasInstance](obj: unknown): obj is AIMessage<MessageStructure<MessageToolSet>>; } /** * @deprecated Use {@link AIMessage.isInstance} instead */ export declare function isAIMessage<TStructure extends MessageStructure>(x: BaseMessage): x is AIMessage<TStructure>; /** * @deprecated Use {@link AIMessageChunk.isInstance} instead */ export declare function isAIMessageChunk<TStructure extends MessageStructure>(x: BaseMessageChunk): x is AIMessageChunk<TStructure>; export type AIMessageChunkFields<TStructure extends MessageStructure = MessageStructure> = AIMessageFields<TStructure> & { tool_call_chunks?: ToolCallChunk[]; }; /** * Represents a chunk of an AI message, which can be concatenated with * other AI message chunks. */ export declare class AIMessageChunk<TStructure extends MessageStructure = MessageStructure> extends BaseMessageChunk<TStructure, "ai"> implements AIMessage<TStructure>, AIMessageChunkFields<TStructure> { readonly type: "ai"; tool_calls?: $InferToolCalls<TStructure>[]; invalid_tool_calls?: InvalidToolCall[]; tool_call_chunks?: ToolCallChunk[]; usage_metadata?: AIMessageChunkFields<TStructure>["usage_metadata"]; constructor(fields: $InferMessageContent<TStructure, "ai"> | AIMessageChunkFields<TStructure>); /** * Lazily collapses tool_call_chunks into tool_calls / invalid_tool_calls on first read. * Own-property getters (not prototype accessors) so spread / Object.entries still see * the values; mirrored on lc_kwargs so serialized output matches the eager behavior. */ private _defineLazyToolCallGetters; get lc_aliases(): Record<string, string>; static lc_name(): string; get contentBlocks(): Array<ContentBlock.Standard>; get _printableFields(): Record<string, unknown>; concat(chunk: AIMessageChunk<TStructure>): this; /** * Type guard to check if an object is an AIMessageChunk. * Preserves the MessageStructure type parameter when called with a typed BaseMessage. * @overload When called with a typed BaseMessage, preserves the TStructure type */ static isInstance<T extends MessageStructure>(obj: BaseMessage<T>): obj is BaseMessage<T> & AIMessageChunk<T>; /** * Type guard to check if an object is an AIMessageChunk. * @overload When called with unknown, returns base AIMessageChunk type */ static isInstance(obj: unknown): obj is AIMessageChunk; static [Symbol.hasInstance](obj: unknown): obj is AIMessageChunk<MessageStructure<MessageToolSet>>; } //# sourceMappingURL=ai.d.ts.map