@langchain/core
Version:
Core LangChain.js abstractions and schemas
79 lines • 4.29 kB
text/typescript
import { $InferMessageContent, $InferMessageProperty, $InferToolCalls, MessageStructure, MessageToolSet } from "./message.cjs";
import { BaseMessage, BaseMessageChunk, BaseMessageFields } from "./base.cjs";
import { ContentBlock } from "./content/index.cjs";
import { InvalidToolCall, ToolCallChunk } from "./tool.cjs";
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.cts.map