UNPKG

@langchain/langgraph

Version:

LangGraph

148 lines (147 loc) 6.21 kB
import type { RunnableConfig } from "@langchain/core/runnables"; import type { CallbackManagerForChainRun } from "@langchain/core/callbacks/manager"; import { BaseCheckpointSaver, Checkpoint, PendingWrite, CheckpointPendingWrite, CheckpointMetadata, All, BaseStore, AsyncBatchedStore, BaseCache, CacheFullKey, CacheNamespace } from "@langchain/langgraph-checkpoint"; import { BaseChannel } from "../channels/base.js"; import { Call, PregelExecutableTask, StreamMode } from "./types.js"; import { Command } from "../constants.js"; import { PregelNode } from "./read.js"; import { ManagedValueMapping } from "../managed/base.js"; import { LangGraphRunnableConfig } from "./runnable_types.js"; import { IterableReadableWritableStream } from "./stream.js"; export type PregelLoopInitializeParams = { input?: any | Command; config: RunnableConfig; checkpointer?: BaseCheckpointSaver; outputKeys: string | string[]; streamKeys: string | string[]; nodes: Record<string, PregelNode>; channelSpecs: Record<string, BaseChannel>; managed: ManagedValueMapping; stream: IterableReadableWritableStream; store?: BaseStore; cache?: BaseCache<PendingWrite<string>[]>; interruptAfter: string[] | All; interruptBefore: string[] | All; manager?: CallbackManagerForChainRun; debug: boolean; triggerToNodes: Record<string, string[]>; }; type PregelLoopParams = { input?: any | Command; config: RunnableConfig; checkpointer?: BaseCheckpointSaver; checkpoint: Checkpoint; checkpointMetadata: CheckpointMetadata; checkpointPreviousVersions: Record<string, string | number>; checkpointPendingWrites: CheckpointPendingWrite[]; checkpointConfig: RunnableConfig; channels: Record<string, BaseChannel>; managed: ManagedValueMapping; step: number; stop: number; outputKeys: string | string[]; streamKeys: string | string[]; nodes: Record<string, PregelNode>; checkpointNamespace: string[]; skipDoneTasks: boolean; isNested: boolean; manager?: CallbackManagerForChainRun; stream: IterableReadableWritableStream; store?: AsyncBatchedStore; cache?: BaseCache<PendingWrite<string>[]>; prevCheckpointConfig: RunnableConfig | undefined; interruptAfter: string[] | All; interruptBefore: string[] | All; debug: boolean; triggerToNodes: Record<string, string[]>; }; declare class AsyncBatchedCache extends BaseCache<PendingWrite<string>[]> { protected cache: BaseCache<PendingWrite<string>[]>; private queue; constructor(cache: BaseCache<unknown>); get(keys: CacheFullKey[]): Promise<{ key: CacheFullKey; value: PendingWrite<string>[]; }[]>; set(pairs: { key: CacheFullKey; value: PendingWrite<string>[]; ttl?: number; }[]): Promise<void>; clear(namespaces: CacheNamespace[]): Promise<void>; stop(): Promise<void>; private enqueueOperation; } export declare class PregelLoop { protected input?: any | Command; output: any; config: LangGraphRunnableConfig; protected checkpointer?: BaseCheckpointSaver; protected checkpointerGetNextVersion: (current: number | undefined, channel: BaseChannel) => number; channels: Record<string, BaseChannel>; managed: ManagedValueMapping; protected checkpoint: Checkpoint; protected checkpointConfig: RunnableConfig; checkpointMetadata: CheckpointMetadata; protected checkpointNamespace: string[]; protected checkpointPendingWrites: CheckpointPendingWrite[]; protected checkpointPreviousVersions: Record<string, string | number>; step: number; protected stop: number; protected outputKeys: string | string[]; protected streamKeys: string | string[]; protected nodes: Record<string, PregelNode>; protected skipDoneTasks: boolean; protected prevCheckpointConfig: RunnableConfig | undefined; status: "pending" | "done" | "interrupt_before" | "interrupt_after" | "out_of_steps"; tasks: Record<string, PregelExecutableTask<any, any>>; stream: IterableReadableWritableStream; checkpointerPromises: Promise<unknown>[]; isNested: boolean; protected _checkpointerChainedPromise: Promise<unknown>; store?: AsyncBatchedStore; cache?: AsyncBatchedCache; manager?: CallbackManagerForChainRun; interruptAfter: string[] | All; interruptBefore: string[] | All; toInterrupt: PregelExecutableTask<string, string>[]; debug: boolean; triggerToNodes: Record<string, string[]>; get isResuming(): any; constructor(params: PregelLoopParams); static initialize(params: PregelLoopInitializeParams): Promise<PregelLoop>; protected _checkpointerPutAfterPrevious(input: { config: RunnableConfig; checkpoint: Checkpoint; metadata: CheckpointMetadata; newVersions: Record<string, string | number>; }): void; protected updateManagedValues(key: string, values: any[]): Promise<void>; /** * Put writes for a task, to be read by the next tick. * @param taskId * @param writes */ putWrites(taskId: string, writes: PendingWrite<string>[]): void; _outputWrites(taskId: string, writes: [string, unknown][], cached?: boolean): void; _matchCachedWrites(): Promise<{ task: PregelExecutableTask<string, string>; result: unknown; }[]>; /** * Execute a single iteration of the Pregel loop. * Returns true if more iterations are needed. * @param params */ tick(params: { inputKeys?: string | string[]; }): Promise<boolean>; finishAndHandleError(error?: Error): Promise<boolean>; acceptPush(task: PregelExecutableTask<string, string>, writeIdx: number, call?: Call): Promise<PregelExecutableTask<string, string> | void>; protected _suppressInterrupt(e?: Error): boolean; protected _first(inputKeys: string | string[]): Promise<void>; protected _emit(values: [StreamMode, unknown][]): void; protected _putCheckpoint(inputMetadata: Omit<CheckpointMetadata, "step" | "parents">): Promise<void>; protected _matchWrites(tasks: Record<string, PregelExecutableTask<string, string>>): void; } export {};