@langgraph-js/pro
Version:
The Pro SDK for LangGraph - seamlessly integrate your AI agents with frontend interfaces and build complex AI workflows
110 lines (109 loc) • 4.43 kB
TypeScript
import { BaseMessage } from "@langchain/core/messages";
declare class MessageCheck {
message: BaseMessage;
constructor(message: BaseMessage);
isTool(name?: string): boolean;
isHuman(): boolean;
isAI(): boolean;
isSystem(): boolean;
isToolCallInvoked(tool_name: string): boolean;
hasToolCalls(): boolean;
getToolCallNames(): string[];
containsText(text: string): boolean;
isEmpty(): boolean;
matchesRegex(pattern: RegExp): boolean | "";
and(otherCheck: (checker: MessageCheck) => boolean): boolean;
or(otherCheck: (checker: MessageCheck) => boolean): boolean;
not(): boolean;
}
declare class MessageQueryBuilder {
private conditions;
isTool(name?: string): this;
isHuman(): this;
isAI(): this;
isSystem(): this;
hasToolCalls(): this;
containsText(text: string): this;
isNotEmpty(): this;
custom(condition: (checker: MessageCheck) => boolean): this;
build(): MessageQuery;
}
declare class MessageQuery {
private checkFn;
constructor(checkFn: (checker: MessageCheck) => boolean);
/** 在指定消息数组上执行查询 */
messages(messages: BaseMessage[]): MessageQueryExecutor;
/** 获取检查函数 (用于向后兼容) */
getCheckFn(): (checker: MessageCheck) => boolean;
}
declare class MessageQueryExecutor {
private messages;
private checkFn;
constructor(messages: BaseMessage[], checkFn: (checker: MessageCheck) => boolean);
/** 获取第一个匹配的消息 */
first(): BaseMessage | undefined;
/** 获取最后一个匹配的消息 */
last(): BaseMessage | undefined;
/** 获取所有匹配的消息 */
all(): BaseMessage[];
/** 获取匹配的消息数量 */
count(): number;
/** 检查是否存在匹配的消息 */
exists(): boolean;
/** 获取指定数量的匹配消息 */
take(limit: number): BaseMessage[];
/** 获取第一个匹配消息的索引 */
index(): number;
/** 获取最后一个匹配消息的索引 */
lastIndex(): number;
/** 获取所有匹配消息的索引数组 */
indices(): number[];
/** 获取消息的检查器版本 */
firstCheck(): MessageCheck | null;
lastCheck(): MessageCheck | null;
allChecks(): MessageCheck[];
}
export declare const checkLastMessage: (messages: BaseMessage[]) => MessageCheck;
/** 从消息列表中获取最后一个满足条件的消息 */
export declare const queryLastMessage: (messages: BaseMessage[], checkFn: (message: MessageCheck) => boolean) => BaseMessage<import("@langchain/core/messages").MessageStructure, import("@langchain/core/messages").MessageType> | undefined;
/** 从消息列表中获取第一个满足条件的消息 */
export declare const queryFirstMessage: (messages: BaseMessage[], checkFn: (message: MessageCheck) => boolean) => BaseMessage<import("@langchain/core/messages").MessageStructure, import("@langchain/core/messages").MessageType> | undefined;
/** 从消息列表中获取所有满足条件的消息 */
export declare const queryAllMessages: (messages: BaseMessage[], checkFn: (message: MessageCheck) => boolean) => BaseMessage<import("@langchain/core/messages").MessageStructure, import("@langchain/core/messages").MessageType>[];
/** 从消息列表中获取满足条件的消息,支持更灵活的查询选项 */
export declare const queryMessages: (messages: BaseMessage[], options?: {
checkFn?: (message: MessageCheck) => boolean;
limit?: number;
reverse?: boolean;
startIndex?: number;
endIndex?: number;
}) => BaseMessage<import("@langchain/core/messages").MessageStructure, import("@langchain/core/messages").MessageType>[];
/**
* 创建消息查询构建器
*
* 返回一个 MessageQueryBuilder 实例,用于构建复杂的消息查询条件。
* 通过链式调用添加条件,然后调用 build() 方法生成可执行的查询对象。
*
* @example
* ```typescript
* // 基础用法
* const query = createMessagesQuery()
* .isHuman()
* .build()
* .messages(messages)
* .last();
*
* // 复杂查询
* const complexQuery = createMessagesQuery()
* .isAI()
* .hasToolCalls()
* .containsText('search')
* .build();
*
* const result = complexQuery.messages(messages).all();
* ```
*
* @returns {MessageQueryBuilder} 消息查询构建器实例
*/
export declare const createMessagesQuery: () => MessageQueryBuilder;
export {};