import { KVMap, BaseRun } from "langsmith/schemas"; import type { ChainValues } from "../utils/types/index.js"; import type { AgentAction, AgentFinish } from "../agents.js"; import type { LLMResult } from "../outputs.js"; import type { BaseMessage } from "../messages/base.js"; import { Serialized } from "../load/serializable.js"; import { BaseCallbackHandler, BaseCallbackHandlerInput, HandleLLMNewTokenCallbackFields, NewTokenIndices } from "../callbacks/base.js"; import type { Document } from "../documents/document.js"; export type RunType = string; export interface Run extends BaseRun { id: string; start_time: number; execution_order: number; child_runs: this[]; child_execution_order: number; events: Array<{ name: string; time: string; kwargs?: Record; }>; trace_id?: string; dotted_order?: string; } export interface AgentRun extends Run { actions: AgentAction[]; } export declare function isBaseTracer(x: BaseCallbackHandler): x is BaseTracer; export declare abstract class BaseTracer extends BaseCallbackHandler { protected runMap: Map; constructor(_fields?: BaseCallbackHandlerInput); copy(): this; protected stringifyError(error: unknown): string; protected abstract persistRun(run: Run): Promise; protected _addChildRun(parentRun: Run, childRun: Run): void; _addRunToRunMap(run: Run): { id: string; start_time: number; execution_order: number; child_runs: Run[]; child_execution_order: number; events: { name: string; time: string; kwargs?: Record | undefined; }[]; trace_id?: string | undefined; dotted_order?: string | undefined; name: string; run_type: string; end_time?: number | undefined; extra?: KVMap | undefined; error?: string | undefined; serialized?: object | undefined; inputs: KVMap; outputs?: KVMap | undefined; reference_example_id?: string | undefined; parent_run_id?: string | undefined; tags?: string[] | undefined; attachments?: import("langsmith/schemas").Attachments | undefined; }; protected _endTrace(run: Run): Promise; protected _getExecutionOrder(parentRunId: string | undefined): number; /** * Create and add a run to the run map for LLM start events. * This must sometimes be done synchronously to avoid race conditions * when callbacks are backgrounded, so we expose it as a separate method here. */ _createRunForLLMStart(llm: Serialized, prompts: string[], runId: string, parentRunId?: string, extraParams?: KVMap, tags?: string[], metadata?: KVMap, name?: string): { id: string; start_time: number; execution_order: number; child_runs: Run[]; child_execution_order: number; events: { name: string; time: string; kwargs?: Record | undefined; }[]; trace_id?: string | undefined; dotted_order?: string | undefined; name: string; run_type: string; end_time?: number | undefined; extra?: KVMap | undefined; error?: string | undefined; serialized?: object | undefined; inputs: KVMap; outputs?: KVMap | undefined; reference_example_id?: string | undefined; parent_run_id?: string | undefined; tags?: string[] | undefined; attachments?: import("langsmith/schemas").Attachments | undefined; }; handleLLMStart(llm: Serialized, prompts: string[], runId: string, parentRunId?: string, extraParams?: KVMap, tags?: string[], metadata?: KVMap, name?: string): Promise; /** * Create and add a run to the run map for chat model start events. * This must sometimes be done synchronously to avoid race conditions * when callbacks are backgrounded, so we expose it as a separate method here. */ _createRunForChatModelStart(llm: Serialized, messages: BaseMessage[][], runId: string, parentRunId?: string, extraParams?: KVMap, tags?: string[], metadata?: KVMap, name?: string): { id: string; start_time: number; execution_order: number; child_runs: Run[]; child_execution_order: number; events: { name: string; time: string; kwargs?: Record | undefined; }[]; trace_id?: string | undefined; dotted_order?: string | undefined; name: string; run_type: string; end_time?: number | undefined; extra?: KVMap | undefined; error?: string | undefined; serialized?: object | undefined; inputs: KVMap; outputs?: KVMap | undefined; reference_example_id?: string | undefined; parent_run_id?: string | undefined; tags?: string[] | undefined; attachments?: import("langsmith/schemas").Attachments | undefined; }; handleChatModelStart(llm: Serialized, messages: BaseMessage[][], runId: string, parentRunId?: string, extraParams?: KVMap, tags?: string[], metadata?: KVMap, name?: string): Promise; handleLLMEnd(output: LLMResult, runId: string, _parentRunId?: string, _tags?: string[], extraParams?: Record): Promise; handleLLMError(error: unknown, runId: string, _parentRunId?: string, _tags?: string[], extraParams?: Record): Promise; /** * Create and add a run to the run map for chain start events. * This must sometimes be done synchronously to avoid race conditions * when callbacks are backgrounded, so we expose it as a separate method here. */ _createRunForChainStart(chain: Serialized, inputs: ChainValues, runId: string, parentRunId?: string, tags?: string[], metadata?: KVMap, runType?: string, name?: string): { id: string; start_time: number; execution_order: number; child_runs: Run[]; child_execution_order: number; events: { name: string; time: string; kwargs?: Record | undefined; }[]; trace_id?: string | undefined; dotted_order?: string | undefined; name: string; run_type: string; end_time?: number | undefined; extra?: KVMap | undefined; error?: string | undefined; serialized?: object | undefined; inputs: KVMap; outputs?: KVMap | undefined; reference_example_id?: string | undefined; parent_run_id?: string | undefined; tags?: string[] | undefined; attachments?: import("langsmith/schemas").Attachments | undefined; }; handleChainStart(chain: Serialized, inputs: ChainValues, runId: string, parentRunId?: string, tags?: string[], metadata?: KVMap, runType?: string, name?: string): Promise; handleChainEnd(outputs: ChainValues, runId: string, _parentRunId?: string, _tags?: string[], kwargs?: { inputs?: Record; }): Promise; handleChainError(error: unknown, runId: string, _parentRunId?: string, _tags?: string[], kwargs?: { inputs?: Record; }): Promise; /** * Create and add a run to the run map for tool start events. * This must sometimes be done synchronously to avoid race conditions * when callbacks are backgrounded, so we expose it as a separate method here. */ _createRunForToolStart(tool: Serialized, input: string, runId: string, parentRunId?: string, tags?: string[], metadata?: KVMap, name?: string): { id: string; start_time: number; execution_order: number; child_runs: Run[]; child_execution_order: number; events: { name: string; time: string; kwargs?: Record | undefined; }[]; trace_id?: string | undefined; dotted_order?: string | undefined; name: string; run_type: string; end_time?: number | undefined; extra?: KVMap | undefined; error?: string | undefined; serialized?: object | undefined; inputs: KVMap; outputs?: KVMap | undefined; reference_example_id?: string | undefined; parent_run_id?: string | undefined; tags?: string[] | undefined; attachments?: import("langsmith/schemas").Attachments | undefined; }; handleToolStart(tool: Serialized, input: string, runId: string, parentRunId?: string, tags?: string[], metadata?: KVMap, name?: string): Promise; handleToolEnd(output: any, runId: string): Promise; handleToolError(error: unknown, runId: string): Promise; handleAgentAction(action: AgentAction, runId: string): Promise; handleAgentEnd(action: AgentFinish, runId: string): Promise; /** * Create and add a run to the run map for retriever start events. * This must sometimes be done synchronously to avoid race conditions * when callbacks are backgrounded, so we expose it as a separate method here. */ _createRunForRetrieverStart(retriever: Serialized, query: string, runId: string, parentRunId?: string, tags?: string[], metadata?: KVMap, name?: string): { id: string; start_time: number; execution_order: number; child_runs: Run[]; child_execution_order: number; events: { name: string; time: string; kwargs?: Record | undefined; }[]; trace_id?: string | undefined; dotted_order?: string | undefined; name: string; run_type: string; end_time?: number | undefined; extra?: KVMap | undefined; error?: string | undefined; serialized?: object | undefined; inputs: KVMap; outputs?: KVMap | undefined; reference_example_id?: string | undefined; parent_run_id?: string | undefined; tags?: string[] | undefined; attachments?: import("langsmith/schemas").Attachments | undefined; }; handleRetrieverStart(retriever: Serialized, query: string, runId: string, parentRunId?: string, tags?: string[], metadata?: KVMap, name?: string): Promise; handleRetrieverEnd(documents: Document>[], runId: string): Promise; handleRetrieverError(error: unknown, runId: string): Promise; handleText(text: string, runId: string): Promise; handleLLMNewToken(token: string, idx: NewTokenIndices, runId: string, _parentRunId?: string, _tags?: string[], fields?: HandleLLMNewTokenCallbackFields): Promise; onRunCreate?(run: Run): void | Promise; onRunUpdate?(run: Run): void | Promise; onLLMStart?(run: Run): void | Promise; onLLMEnd?(run: Run): void | Promise; onLLMError?(run: Run): void | Promise; onChainStart?(run: Run): void | Promise; onChainEnd?(run: Run): void | Promise; onChainError?(run: Run): void | Promise; onToolStart?(run: Run): void | Promise; onToolEnd?(run: Run): void | Promise; onToolError?(run: Run): void | Promise; onAgentAction?(run: Run): void | Promise; onAgentEnd?(run: Run): void | Promise; onRetrieverStart?(run: Run): void | Promise; onRetrieverEnd?(run: Run): void | Promise; onRetrieverError?(run: Run): void | Promise; onText?(run: Run): void | Promise; onLLMNewToken?(run: Run, token: string, kwargs?: { chunk: any; }): void | Promise; }