/** * LangChain callback handler for Oso integration. * * Example usage: * import { OsoCallback } from '@osohq/langchain'; * * const callback = new OsoCallback({ * apiKey: "your-oso-api-key", * agentId: "my-support-agent", * users: [{ type: "User", id: "user-123" }] * }); * * const agent = createAgent({ llm, tools, prompt }); * const result = await agent.invoke({ input: "Hello" }, { callbacks: [callback] }); */ import { BaseCallbackHandler } from "@langchain/core/callbacks/base"; import type { Serialized } from "@langchain/core/load/serializable"; import type { ChainValues } from "@langchain/core/utils/types"; export type LogLevel = "error" | "warn" | "info" | "debug"; export type LoggingFn = (level: LogLevel, message: string, metadata?: Record) => void; export type Value = { type: string; id: string; }; export interface OsoCallbackConfig { /** Oso API URL (default: OSO_URL env var or https://cloud.osohq.com) */ url?: string; /** Oso API key (default: OSO_AUTH env var) */ apiKey?: string; /** Session ID to group related conversations (default: auto-generated UUID) */ sessionId?: string; /** Additional metadata to attach to all events */ metadata?: Record; /** Agent identifier for tracking (default: "default-agent") */ agentId?: string; /** Users associated with this session */ users?: Value[]; logger?: LoggingFn; } /** * LangChain callback handler that sends agent events to Oso. */ export declare class OsoCallback extends BaseCallbackHandler { name: string; private url; private apiKey?; private sessionId; private metadata; private agentId; private users; private logger; private rootRunId?; private toolNames; constructor(config?: OsoCallbackConfig); private getEventBase; handleToolStart(tool: Serialized, input: string, runId: string, parentRunId?: string, tags?: string[], metadata?: Record, runName?: string): Promise; handleToolEnd(output: string, runId: string, parentRunId?: string): Promise; handleToolError(error: Error, runId: string, parentRunId?: string): Promise; handleChainStart(chain: Serialized, inputs: ChainValues, runId: string, parentRunId?: string, tags?: string[], metadata?: Record): Promise; handleChainEnd(outputs: ChainValues, runId: string, parentRunId?: string): Promise; handleChainError(error: Error, runId: string, parentRunId?: string): Promise; private sendEvent; } //# sourceMappingURL=callbacks.d.ts.map