@agent-inspect/langchain 1.0.3 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/metadata.ts","../src/agent-inspect-callback.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["export interface TokenUsage {\n input?: number;\n output?: number;\n total?: number;\n}\n\nfunction isRecord(v: unknown): v is Record<string, unknown> {\n return typeof v === \"object\" && v !== null && !Array.isArray(v);\n}\n\nfunction num(v: unknown): number | undefined {\n if (typeof v === \"number\" && Number.isFinite(v)) return v;\n if (typeof v === \"string\" && v.trim() !== \"\") {\n const n = Number(v);\n if (Number.isFinite(n)) return n;\n }\n return undefined;\n}\n\nfunction normalizeTokenShape(raw: Record<string, unknown>): TokenUsage | undefined {\n const input =\n num(raw.promptTokens) ??\n num(raw.inputTokens) ??\n num(raw.input_tokens) ??\n num(raw.prompt_tokens);\n const output =\n num(raw.completionTokens) ??\n num(raw.outputTokens) ??\n num(raw.output_tokens) ??\n num(raw.completion_tokens);\n let total = num(raw.totalTokens) ?? num(raw.total_tokens);\n\n if (total === undefined && input !== undefined && output !== undefined) {\n total = input + output;\n }\n\n if (input === undefined && output === undefined && total === undefined) {\n return undefined;\n }\n\n const out: TokenUsage = {};\n if (input !== undefined) out.input = input;\n if (output !== undefined) out.output = output;\n if (total !== undefined) out.total = total;\n return out;\n}\n\n/** Extract token usage from LangChain / provider-shaped LLM outputs. Never throws. */\nexport function extractTokenUsage(output: unknown): TokenUsage | undefined {\n try {\n if (!isRecord(output)) return undefined;\n\n const candidates: unknown[] = [\n isRecord(output.llmOutput) ? output.llmOutput.tokenUsage : undefined,\n isRecord(output.llmOutput) ? output.llmOutput.estimatedTokenUsage : undefined,\n output.usage_metadata,\n isRecord(output.response_metadata) ? output.response_metadata.tokenUsage : undefined,\n isRecord(output.response_metadata) ? output.response_metadata.token_usage : undefined,\n ];\n\n for (const c of candidates) {\n if (!isRecord(c)) continue;\n const norm = normalizeTokenShape(c);\n if (norm) return norm;\n }\n\n return undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction readLcKwargs(serializedOrOutput: unknown): Record<string, unknown> | undefined {\n if (!isRecord(serializedOrOutput)) return undefined;\n const lc = serializedOrOutput.lc_kwargs ?? serializedOrOutput.kwargs;\n return isRecord(lc) ? lc : undefined;\n}\n\n/** Best-effort model name from serialized LLM / chat model or provider metadata. */\nexport function extractModelName(serializedOrOutput: unknown): string | undefined {\n try {\n const lc = readLcKwargs(serializedOrOutput);\n const fromLc =\n (lc?.model as string | undefined) ??\n (lc?.modelName as string | undefined) ??\n (lc?.model_name as string | undefined);\n\n if (typeof fromLc === \"string\" && fromLc.trim()) return fromLc;\n\n if (isRecord(serializedOrOutput)) {\n for (const k of [\"model\", \"modelName\", \"model_name\"] as const) {\n const v = serializedOrOutput[k];\n if (typeof v === \"string\" && v.trim()) return v;\n }\n const rm = serializedOrOutput.response_metadata;\n if (isRecord(rm)) {\n const m = rm.model_name ?? rm.model;\n if (typeof m === \"string\" && m.trim()) return m;\n }\n const lo = serializedOrOutput.llmOutput;\n if (isRecord(lo)) {\n const m = lo.model_name;\n if (typeof m === \"string\" && m.trim()) return m;\n }\n }\n return undefined;\n } catch {\n return undefined;\n }\n}\n\n/** Safe truncated string preview for logging-style fields. */\nexport function safePreview(value: unknown, maxChars: number): string | undefined {\n try {\n if (maxChars <= 0) return undefined;\n const seen = new WeakSet<object>();\n const json = JSON.stringify(value, (_k, v) => {\n if (typeof v === \"bigint\") return v.toString();\n if (typeof v === \"function\" || typeof v === \"symbol\") return undefined;\n if (typeof v === \"object\" && v !== null) {\n if (seen.has(v)) return \"[Circular]\";\n seen.add(v);\n }\n return v;\n });\n if (json === undefined) return undefined;\n if (json.length <= maxChars) return json;\n return `${json.slice(0, maxChars)}…`;\n } catch {\n try {\n const s = String(value);\n if (s.length <= maxChars) return s;\n return `${s.slice(0, maxChars)}…`;\n } catch {\n return undefined;\n }\n }\n}\n\nconst MAX_METADATA_KEYS = 40;\n\n/** Shallow plain metadata: drops functions/symbols; avoids deep nesting. Never throws. */\nexport function toPlainMetadata(value: unknown): Record<string, unknown> {\n try {\n if (!isRecord(value)) return {};\n const out: Record<string, unknown> = {};\n let n = 0;\n for (const [k, v] of Object.entries(value)) {\n if (n >= MAX_METADATA_KEYS) break;\n if (typeof v === \"function\" || typeof v === \"symbol\") continue;\n if (v === null || typeof v === \"string\" || typeof v === \"number\" || typeof v === \"boolean\") {\n out[k] = v;\n n++;\n continue;\n }\n if (typeof v === \"bigint\") {\n out[k] = v.toString();\n n++;\n continue;\n }\n if (Array.isArray(v)) {\n out[k] = `array(${v.length})`;\n n++;\n continue;\n }\n if (isRecord(v)) {\n out[k] = \"[object]\";\n n++;\n continue;\n }\n out[k] = String(v);\n n++;\n }\n return out;\n } catch {\n return {};\n }\n}\n","import type { AgentAction, AgentFinish } from \"@langchain/core/agents\";\nimport { BaseCallbackHandler } from \"@langchain/core/callbacks/base\";\nimport type { Serialized } from \"@langchain/core/load/serializable\";\nimport type { LLMResult } from \"@langchain/core/outputs\";\nimport type { ChainValues } from \"@langchain/core/utils/types\";\n\n/** Subpaths like `@langchain/core/messages/base` are not package exports; derive from the handler contract. */\ntype ChatModelMessages = Parameters<\n NonNullable<BaseCallbackHandler[\"handleChatModelStart\"]>\n>[1];\ntype RetrieverDocuments = Parameters<\n NonNullable<BaseCallbackHandler[\"handleRetrieverEnd\"]>\n>[0];\nimport { Redactor, type InspectEvent, type InspectKind } from \"agent-inspect\";\n\nimport {\n extractModelName,\n extractTokenUsage,\n safePreview,\n toPlainMetadata,\n} from \"./metadata.js\";\nimport type { AgentInspectCallbackOptions } from \"./types.js\";\n\ntype StartEntry = { ts: number; kind: InspectKind };\n\nfunction serializedLabel(s: Serialized): string | undefined {\n if (typeof s.name === \"string\" && s.name.trim()) return s.name;\n if (Array.isArray(s.id) && s.id.length > 0) return s.id[s.id.length - 1];\n return s.type;\n}\n\nfunction errorShape(err: unknown): { errorName?: string; errorMessage: string } {\n if (err instanceof Error) {\n return { errorName: err.name, errorMessage: err.message };\n }\n return { errorMessage: String(err) };\n}\n\nexport class AgentInspectCallback extends BaseCallbackHandler {\n name = \"agent-inspect\";\n\n readonly #opts: Required<\n Pick<AgentInspectCallbackOptions, \"capture\" | \"silent\" | \"maxPreviewChars\">\n > &\n AgentInspectCallbackOptions;\n\n readonly #redactor: Redactor;\n #events: InspectEvent[] = [];\n readonly #starts = new Map<string, StartEntry>();\n #rootRunId?: string;\n\n constructor(options: AgentInspectCallbackOptions = {}) {\n super({});\n this.#opts = {\n capture: options.capture ?? \"metadata-only\",\n silent: options.silent ?? false,\n maxPreviewChars: options.maxPreviewChars ?? 200,\n ...options,\n };\n this.#redactor = new Redactor({ rules: this.#opts.redact });\n }\n\n getEvents(): InspectEvent[] {\n return this.#events.map((e) => ({\n ...e,\n attributes: e.attributes ? { ...e.attributes } : undefined,\n source: { ...e.source },\n }));\n }\n\n clear(): void {\n this.#events = [];\n this.#starts.clear();\n this.#rootRunId = undefined;\n }\n\n #ensureRoot(lcRunId: string, parentRunId?: string): void {\n if (parentRunId) return;\n if (!this.#rootRunId) this.#rootRunId = lcRunId;\n }\n\n #traceRunId(lcRunId: string): string {\n return this.#rootRunId ?? lcRunId;\n }\n\n #durationFor(lcRunId: string): number | undefined {\n const s = this.#starts.get(lcRunId);\n if (!s) return undefined;\n return Date.now() - s.ts;\n }\n\n #rememberStart(lcRunId: string, kind: InspectKind): void {\n this.#starts.set(lcRunId, { ts: Date.now(), kind });\n }\n\n #clearStart(lcRunId: string): void {\n this.#starts.delete(lcRunId);\n }\n\n #baseAttrs(\n lcRunId: string,\n parentRunId: string | undefined,\n tags: string[] | undefined,\n runNameArg: string | undefined,\n ): Record<string, unknown> {\n const out: Record<string, unknown> = {\n langchainRunId: lcRunId,\n };\n if (parentRunId) out.parentRunId = parentRunId;\n if (this.#opts.runName) out.adapterRunName = this.#opts.runName;\n if (runNameArg) out.runName = runNameArg;\n if (this.#opts.traceDir) out.traceDir = this.#opts.traceDir;\n const cap = this.#opts.capture;\n if (cap !== \"none\" && tags?.length) out.tags = [...tags];\n return out;\n }\n\n #mergeMetadata(\n attrs: Record<string, unknown>,\n metadata: Record<string, unknown> | undefined,\n ): void {\n if (this.#opts.capture === \"none\" || !metadata) return;\n attrs.metadata = this.#redactor.redactRecord(toPlainMetadata(metadata));\n }\n\n #applyPreview(attrs: Record<string, unknown>, previews: Record<string, unknown>): void {\n if (this.#opts.capture !== \"preview\") return;\n const max = this.#opts.maxPreviewChars;\n for (const [k, v] of Object.entries(previews)) {\n const p = safePreview(v, max);\n if (p !== undefined) attrs[k] = p;\n }\n }\n\n #pushEvent(ev: InspectEvent): void {\n try {\n const attributes = ev.attributes\n ? this.#redactor.redactRecord({ ...ev.attributes })\n : undefined;\n this.#events.push({ ...ev, attributes });\n } catch (err) {\n if (!this.#opts.silent) {\n console.error(\"[agent-inspect:langchain]\", err);\n }\n }\n }\n\n override async handleChainStart(\n chain: Serialized,\n inputs: ChainValues,\n runId: string,\n runType?: string,\n tags?: string[],\n metadata?: Record<string, unknown>,\n runName?: string,\n parentRunId?: string,\n _extra?: Record<string, unknown>,\n ): Promise<void> {\n void runType;\n this.#ensureRoot(runId, parentRunId);\n this.#rememberStart(runId, \"CHAIN\");\n const label = serializedLabel(chain) ?? \"chain\";\n const previews: Record<string, unknown> = {};\n if (this.#opts.capture === \"preview\") previews.inputPreview = inputs;\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, runName),\n };\n this.#mergeMetadata(attrs, metadata);\n this.#applyPreview(attrs, previews);\n this.#pushEvent({\n eventId: `${runId}:CHAIN:start`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: `chain:${runName ?? label}`,\n kind: \"CHAIN\",\n timestamp: Date.now(),\n status: \"running\",\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n }\n\n override async handleChainEnd(\n outputs: ChainValues,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n _kwargs?: { inputs?: Record<string, unknown> },\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n const durationMs = this.#durationFor(runId);\n this.#clearStart(runId);\n const previews: Record<string, unknown> = {};\n if (this.#opts.capture === \"preview\") previews.outputPreview = outputs;\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n };\n this.#applyPreview(attrs, previews);\n this.#pushEvent({\n eventId: `${runId}:CHAIN:end`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: \"chain:end\",\n kind: \"CHAIN\",\n timestamp: Date.now(),\n status: \"ok\",\n durationMs,\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n }\n\n override async handleChainError(\n err: unknown,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n _kwargs?: { inputs?: Record<string, unknown> },\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n const durationMs = this.#durationFor(runId);\n this.#clearStart(runId);\n const { errorName, errorMessage } = errorShape(err);\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n errorName,\n errorMessage,\n };\n this.#pushEvent({\n eventId: `${runId}:CHAIN:error`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: \"chain:error\",\n kind: \"CHAIN\",\n timestamp: Date.now(),\n status: \"error\",\n durationMs,\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n }\n\n override async handleLLMStart(\n llm: Serialized,\n prompts: string[],\n runId: string,\n parentRunId?: string,\n _extraParams?: Record<string, unknown>,\n tags?: string[],\n metadata?: Record<string, unknown>,\n runName?: string,\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n this.#rememberStart(runId, \"LLM\");\n const model = extractModelName(llm);\n const previews: Record<string, unknown> = {};\n if (this.#opts.capture === \"preview\") {\n previews.promptPreview = prompts.length === 1 ? prompts[0] : prompts;\n }\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, runName),\n };\n if (model && this.#opts.capture !== \"none\") attrs.model = model;\n this.#mergeMetadata(attrs, metadata);\n this.#applyPreview(attrs, previews);\n this.#pushEvent({\n eventId: `${runId}:LLM:start`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: `llm:${model ?? \"llm\"}`,\n kind: \"LLM\",\n timestamp: Date.now(),\n status: \"running\",\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n }\n\n override async handleChatModelStart(\n llm: Serialized,\n messages: ChatModelMessages,\n runId: string,\n parentRunId?: string,\n _extraParams?: Record<string, unknown>,\n tags?: string[],\n metadata?: Record<string, unknown>,\n runName?: string,\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n this.#rememberStart(runId, \"LLM\");\n const model = extractModelName(llm);\n const previews: Record<string, unknown> = {};\n if (this.#opts.capture === \"preview\") previews.inputPreview = messages;\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, runName),\n };\n if (model && this.#opts.capture !== \"none\") attrs.model = model;\n this.#mergeMetadata(attrs, metadata);\n this.#applyPreview(attrs, previews);\n this.#pushEvent({\n eventId: `${runId}:CHAT:start`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: `llm:${model ?? \"llm\"}`,\n kind: \"LLM\",\n timestamp: Date.now(),\n status: \"running\",\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n }\n\n override async handleLLMEnd(\n output: LLMResult,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n _extraParams?: Record<string, unknown>,\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n const durationMs = this.#durationFor(runId);\n this.#clearStart(runId);\n const tokens = extractTokenUsage(output);\n const model = extractModelName(output);\n const previews: Record<string, unknown> = {};\n if (this.#opts.capture === \"preview\") previews.outputPreview = output;\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n };\n if (model && this.#opts.capture !== \"none\") attrs.model = model;\n if (tokens && this.#opts.capture !== \"none\") attrs.tokens = tokens;\n this.#applyPreview(attrs, previews);\n this.#pushEvent({\n eventId: `${runId}:LLM:end`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: `llm:${model ?? \"llm\"}`,\n kind: \"LLM\",\n timestamp: Date.now(),\n status: \"ok\",\n durationMs,\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n }\n\n override async handleLLMError(\n err: unknown,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n _extraParams?: Record<string, unknown>,\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n const durationMs = this.#durationFor(runId);\n this.#clearStart(runId);\n const { errorName, errorMessage } = errorShape(err);\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n errorName,\n errorMessage,\n };\n this.#pushEvent({\n eventId: `${runId}:LLM:error`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: \"llm:error\",\n kind: \"LLM\",\n timestamp: Date.now(),\n status: \"error\",\n durationMs,\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n }\n\n override async handleToolStart(\n tool: Serialized,\n input: string,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n metadata?: Record<string, unknown>,\n runName?: string,\n _toolCallId?: string,\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n this.#rememberStart(runId, \"TOOL\");\n const toolName = serializedLabel(tool) ?? \"tool\";\n const previews: Record<string, unknown> = {};\n if (this.#opts.capture === \"preview\") previews.inputPreview = input;\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, runName),\n tool: toolName,\n };\n this.#mergeMetadata(attrs, metadata);\n this.#applyPreview(attrs, previews);\n this.#pushEvent({\n eventId: `${runId}:TOOL:start`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: `tool:${toolName}`,\n kind: \"TOOL\",\n timestamp: Date.now(),\n status: \"running\",\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n }\n\n override async handleToolEnd(\n output: unknown,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n const durationMs = this.#durationFor(runId);\n this.#clearStart(runId);\n const previews: Record<string, unknown> = {};\n if (this.#opts.capture === \"preview\") previews.outputPreview = output;\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n };\n this.#applyPreview(attrs, previews);\n this.#pushEvent({\n eventId: `${runId}:TOOL:end`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: \"tool:end\",\n kind: \"TOOL\",\n timestamp: Date.now(),\n status: \"ok\",\n durationMs,\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n }\n\n override async handleToolError(\n err: unknown,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n const durationMs = this.#durationFor(runId);\n this.#clearStart(runId);\n const { errorName, errorMessage } = errorShape(err);\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n errorName,\n errorMessage,\n };\n this.#pushEvent({\n eventId: `${runId}:TOOL:error`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: \"tool:error\",\n kind: \"TOOL\",\n timestamp: Date.now(),\n status: \"error\",\n durationMs,\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n }\n\n override async handleRetrieverStart(\n retriever: Serialized,\n _query: string,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n metadata?: Record<string, unknown>,\n name?: string,\n ): Promise<void> {\n void _query;\n this.#ensureRoot(runId, parentRunId);\n this.#rememberStart(runId, \"RETRIEVER\");\n const rname = name ?? serializedLabel(retriever) ?? \"retriever\";\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n retriever: rname,\n };\n this.#mergeMetadata(attrs, metadata);\n this.#pushEvent({\n eventId: `${runId}:RETRIEVER:start`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: `retriever:${rname}`,\n kind: \"RETRIEVER\",\n timestamp: Date.now(),\n status: \"running\",\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n }\n\n override async handleRetrieverEnd(\n documents: RetrieverDocuments,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n const durationMs = this.#durationFor(runId);\n this.#clearStart(runId);\n const previews: Record<string, unknown> = {};\n if (this.#opts.capture === \"preview\" && documents.length > 0) {\n previews.documentPreview = documents.slice(0, 3);\n }\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n documentCount: documents.length,\n };\n this.#applyPreview(attrs, previews);\n this.#pushEvent({\n eventId: `${runId}:RETRIEVER:end`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: \"retriever:end\",\n kind: \"RETRIEVER\",\n timestamp: Date.now(),\n status: \"ok\",\n durationMs,\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n }\n\n override async handleRetrieverError(\n err: unknown,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n const durationMs = this.#durationFor(runId);\n this.#clearStart(runId);\n const { errorName, errorMessage } = errorShape(err);\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n errorName,\n errorMessage,\n };\n this.#pushEvent({\n eventId: `${runId}:RETRIEVER:error`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: \"retriever:error\",\n kind: \"RETRIEVER\",\n timestamp: Date.now(),\n status: \"error\",\n durationMs,\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n }\n\n override async handleAgentAction(\n action: AgentAction,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n tool: action.tool,\n };\n if (this.#opts.capture === \"preview\") {\n this.#applyPreview(attrs, {\n toolInputPreview: action.toolInput,\n logPreview: action.log,\n });\n }\n this.#pushEvent({\n eventId: `${runId}:AGENT:action:${Date.now()}`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: \"agent:action\",\n kind: \"DECISION\",\n timestamp: Date.now(),\n status: \"ok\",\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n }\n\n override async handleAgentEnd(\n finish: AgentFinish,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n };\n if (this.#opts.capture === \"preview\") {\n this.#applyPreview(attrs, {\n outputPreview: finish.returnValues,\n logPreview: finish.log,\n });\n }\n this.#pushEvent({\n eventId: `${runId}:AGENT:end:${Date.now()}`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: \"agent:end\",\n kind: \"AGENT\",\n timestamp: Date.now(),\n status: \"ok\",\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/metadata.ts","../src/trace-persistence.ts","../src/agent-inspect-callback.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["export interface TokenUsage {\n input?: number;\n output?: number;\n total?: number;\n}\n\nfunction isRecord(v: unknown): v is Record<string, unknown> {\n return typeof v === \"object\" && v !== null && !Array.isArray(v);\n}\n\nfunction num(v: unknown): number | undefined {\n if (typeof v === \"number\" && Number.isFinite(v)) return v;\n if (typeof v === \"string\" && v.trim() !== \"\") {\n const n = Number(v);\n if (Number.isFinite(n)) return n;\n }\n return undefined;\n}\n\nfunction normalizeTokenShape(raw: Record<string, unknown>): TokenUsage | undefined {\n const input =\n num(raw.promptTokens) ??\n num(raw.inputTokens) ??\n num(raw.input_tokens) ??\n num(raw.prompt_tokens);\n const output =\n num(raw.completionTokens) ??\n num(raw.outputTokens) ??\n num(raw.output_tokens) ??\n num(raw.completion_tokens);\n let total = num(raw.totalTokens) ?? num(raw.total_tokens);\n\n if (total === undefined && input !== undefined && output !== undefined) {\n total = input + output;\n }\n\n if (input === undefined && output === undefined && total === undefined) {\n return undefined;\n }\n\n const out: TokenUsage = {};\n if (input !== undefined) out.input = input;\n if (output !== undefined) out.output = output;\n if (total !== undefined) out.total = total;\n return out;\n}\n\n/** Extract token usage from LangChain / provider-shaped LLM outputs. Never throws. */\nexport function extractTokenUsage(output: unknown): TokenUsage | undefined {\n try {\n if (!isRecord(output)) return undefined;\n\n const candidates: unknown[] = [\n isRecord(output.llmOutput) ? output.llmOutput.tokenUsage : undefined,\n isRecord(output.llmOutput) ? output.llmOutput.estimatedTokenUsage : undefined,\n output.usage_metadata,\n isRecord(output.response_metadata) ? output.response_metadata.tokenUsage : undefined,\n isRecord(output.response_metadata) ? output.response_metadata.token_usage : undefined,\n ];\n\n for (const c of candidates) {\n if (!isRecord(c)) continue;\n const norm = normalizeTokenShape(c);\n if (norm) return norm;\n }\n\n return undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction readLcKwargs(serializedOrOutput: unknown): Record<string, unknown> | undefined {\n if (!isRecord(serializedOrOutput)) return undefined;\n const lc = serializedOrOutput.lc_kwargs ?? serializedOrOutput.kwargs;\n return isRecord(lc) ? lc : undefined;\n}\n\n/** Best-effort model name from serialized LLM / chat model or provider metadata. */\nexport function extractModelName(serializedOrOutput: unknown): string | undefined {\n try {\n const lc = readLcKwargs(serializedOrOutput);\n const fromLc =\n (lc?.model as string | undefined) ??\n (lc?.modelName as string | undefined) ??\n (lc?.model_name as string | undefined);\n\n if (typeof fromLc === \"string\" && fromLc.trim()) return fromLc;\n\n if (isRecord(serializedOrOutput)) {\n for (const k of [\"model\", \"modelName\", \"model_name\"] as const) {\n const v = serializedOrOutput[k];\n if (typeof v === \"string\" && v.trim()) return v;\n }\n const rm = serializedOrOutput.response_metadata;\n if (isRecord(rm)) {\n const m = rm.model_name ?? rm.model;\n if (typeof m === \"string\" && m.trim()) return m;\n }\n const lo = serializedOrOutput.llmOutput;\n if (isRecord(lo)) {\n const m = lo.model_name;\n if (typeof m === \"string\" && m.trim()) return m;\n }\n }\n return undefined;\n } catch {\n return undefined;\n }\n}\n\n/** Safe truncated string preview for logging-style fields. */\nexport function safePreview(value: unknown, maxChars: number): string | undefined {\n try {\n if (maxChars <= 0) return undefined;\n const seen = new WeakSet<object>();\n const json = JSON.stringify(value, (_k, v) => {\n if (typeof v === \"bigint\") return v.toString();\n if (typeof v === \"function\" || typeof v === \"symbol\") return undefined;\n if (typeof v === \"object\" && v !== null) {\n if (seen.has(v)) return \"[Circular]\";\n seen.add(v);\n }\n return v;\n });\n if (json === undefined) return undefined;\n if (json.length <= maxChars) return json;\n return `${json.slice(0, maxChars)}…`;\n } catch {\n try {\n const s = String(value);\n if (s.length <= maxChars) return s;\n return `${s.slice(0, maxChars)}…`;\n } catch {\n return undefined;\n }\n }\n}\n\nconst MAX_METADATA_KEYS = 40;\n\n/** Shallow plain metadata: drops functions/symbols; avoids deep nesting. Never throws. */\nexport function toPlainMetadata(value: unknown): Record<string, unknown> {\n try {\n if (!isRecord(value)) return {};\n const out: Record<string, unknown> = {};\n let n = 0;\n for (const [k, v] of Object.entries(value)) {\n if (n >= MAX_METADATA_KEYS) break;\n if (typeof v === \"function\" || typeof v === \"symbol\") continue;\n if (v === null || typeof v === \"string\" || typeof v === \"number\" || typeof v === \"boolean\") {\n out[k] = v;\n n++;\n continue;\n }\n if (typeof v === \"bigint\") {\n out[k] = v.toString();\n n++;\n continue;\n }\n if (Array.isArray(v)) {\n out[k] = `array(${v.length})`;\n n++;\n continue;\n }\n if (isRecord(v)) {\n out[k] = \"[object]\";\n n++;\n continue;\n }\n out[k] = String(v);\n n++;\n }\n return out;\n } catch {\n return {};\n }\n}\n","import {\n createRunId,\n createStepId,\n getCurrentRunId,\n getTraceDirFromContext,\n hasActiveContext,\n initializeTraceFile,\n prepareTraceEventForDisk,\n resolveTraceDir,\n resolveTraceSafetyOptions,\n writeTraceEvent,\n type InspectKind,\n type RedactionRule,\n type StepMetadata,\n type StepType,\n type TraceEvent,\n} from \"agent-inspect\";\n\nexport interface LangChainTracePersistenceOptions {\n runName?: string;\n traceDir?: string;\n runId?: string;\n redact?: RedactionRule[];\n silent?: boolean;\n maxPreviewChars?: number;\n}\n\nfunction kindToStepType(kind: InspectKind): StepType {\n switch (kind) {\n case \"LLM\":\n return \"llm\";\n case \"TOOL\":\n return \"tool\";\n case \"DECISION\":\n return \"decision\";\n default:\n return \"logic\";\n }\n}\n\nfunction toStepMetadata(attrs: Record<string, unknown>): StepMetadata {\n const out: StepMetadata = {\n adapter: \"langchain\",\n confidence: \"explicit\",\n };\n for (const [k, v] of Object.entries(attrs)) {\n out[k] = v;\n }\n return out;\n}\n\n/**\n * Maps LangChain callback lifecycle to schemaVersion \"0.1\" manual JSONL events.\n * One callback session creates one standalone run; inside inspectRun, steps append to the active run.\n */\nexport class LangChainTracePersistence {\n readonly #traceDir: string;\n readonly #runId: string;\n readonly #runName: string;\n readonly #standalone: boolean;\n readonly #silent: boolean;\n readonly #safety: ReturnType<typeof resolveTraceSafetyOptions>;\n\n #runStarted = false;\n #runCompleted = false;\n #runStartTime?: number;\n #rootLcRunId?: string;\n readonly #lcToStepId = new Map<string, string>();\n\n constructor(options: LangChainTracePersistenceOptions = {}) {\n const inContext = hasActiveContext();\n this.#standalone = !inContext;\n this.#silent = options.silent ?? false;\n this.#traceDir = inContext\n ? (getTraceDirFromContext() ?? resolveTraceDir({ dir: options.traceDir }))\n : resolveTraceDir({ dir: options.traceDir });\n this.#runId =\n (inContext ? getCurrentRunId() : undefined) ??\n options.runId ??\n createRunId();\n this.#runName = options.runName ?? \"langchain-agent\";\n this.#safety = resolveTraceSafetyOptions({\n redact: options.redact ? { rules: options.redact } : true,\n maxPreviewLength: options.maxPreviewChars,\n });\n }\n\n get runId(): string {\n return this.#runId;\n }\n\n get traceDir(): string {\n return this.#traceDir;\n }\n\n reset(): void {\n this.#runStarted = false;\n this.#runCompleted = false;\n this.#runStartTime = undefined;\n this.#rootLcRunId = undefined;\n this.#lcToStepId.clear();\n }\n\n noteRoot(lcRunId: string, parentRunId?: string): void {\n if (!parentRunId && !this.#rootLcRunId) {\n this.#rootLcRunId = lcRunId;\n }\n }\n\n resolveParentId(lcParentRunId?: string): string | undefined {\n if (!lcParentRunId) return undefined;\n return this.#lcToStepId.get(lcParentRunId);\n }\n\n async onStepStart(params: {\n lcRunId: string;\n lcParentRunId?: string;\n name: string;\n kind: InspectKind;\n startTime: number;\n attributes: Record<string, unknown>;\n }): Promise<void> {\n try {\n this.noteRoot(params.lcRunId, params.lcParentRunId);\n\n if (this.#standalone && !this.#runStarted) {\n await this.#ensureRunStarted(params.startTime, params.attributes);\n }\n\n const stepId = createStepId();\n this.#lcToStepId.set(params.lcRunId, stepId);\n const parentId = this.resolveParentId(params.lcParentRunId);\n\n const event: TraceEvent = {\n schemaVersion: \"0.1\",\n event: \"step_started\",\n timestamp: params.startTime,\n runId: this.#runId,\n stepId,\n ...(parentId ? { parentId } : {}),\n name: params.name,\n type: kindToStepType(params.kind),\n startTime: params.startTime,\n metadata: toStepMetadata(params.attributes),\n };\n\n await this.#write(event);\n } catch (err) {\n this.#warn(err);\n }\n }\n\n async onStepEnd(params: {\n lcRunId: string;\n lcParentRunId?: string;\n endTime: number;\n durationMs?: number;\n status: \"success\" | \"error\";\n errorMessage?: string;\n }): Promise<void> {\n try {\n const stepId = this.#lcToStepId.get(params.lcRunId);\n if (!stepId) return;\n\n const durationMs =\n typeof params.durationMs === \"number\" && Number.isFinite(params.durationMs)\n ? Math.max(0, Math.floor(params.durationMs))\n : Math.max(0, params.endTime - (this.#runStartTime ?? params.endTime));\n\n const event: TraceEvent = {\n schemaVersion: \"0.1\",\n event: \"step_completed\",\n timestamp: params.endTime,\n runId: this.#runId,\n stepId,\n status: params.status,\n endTime: params.endTime,\n durationMs,\n ...(params.status === \"error\" && params.errorMessage\n ? { error: { message: params.errorMessage } }\n : {}),\n };\n\n await this.#write(event);\n\n if (\n this.#standalone &&\n !this.#runCompleted &&\n this.#rootLcRunId === params.lcRunId &&\n !params.lcParentRunId\n ) {\n await this.#ensureRunCompleted(\n params.endTime,\n params.status,\n params.errorMessage,\n );\n }\n } catch (err) {\n this.#warn(err);\n }\n }\n\n /** Point-in-time adapter events (e.g. agent action) — writes start + completed pair. */\n async onInstantStep(params: {\n lcRunId: string;\n lcParentRunId?: string;\n name: string;\n kind: InspectKind;\n timestamp: number;\n attributes: Record<string, unknown>;\n status: \"success\" | \"error\";\n errorMessage?: string;\n }): Promise<void> {\n try {\n this.noteRoot(params.lcRunId, params.lcParentRunId);\n\n if (this.#standalone && !this.#runStarted) {\n await this.#ensureRunStarted(params.timestamp, params.attributes);\n }\n\n const stepId = createStepId();\n this.#lcToStepId.set(params.lcRunId, stepId);\n const parentId = this.resolveParentId(params.lcParentRunId);\n\n const started: TraceEvent = {\n schemaVersion: \"0.1\",\n event: \"step_started\",\n timestamp: params.timestamp,\n runId: this.#runId,\n stepId,\n ...(parentId ? { parentId } : {}),\n name: params.name,\n type: kindToStepType(params.kind),\n startTime: params.timestamp,\n metadata: toStepMetadata(params.attributes),\n };\n await this.#write(started);\n\n const completed: TraceEvent = {\n schemaVersion: \"0.1\",\n event: \"step_completed\",\n timestamp: params.timestamp,\n runId: this.#runId,\n stepId,\n status: params.status,\n endTime: params.timestamp,\n durationMs: 0,\n ...(params.status === \"error\" && params.errorMessage\n ? { error: { message: params.errorMessage } }\n : {}),\n };\n await this.#write(completed);\n } catch (err) {\n this.#warn(err);\n }\n }\n\n async #ensureRunStarted(\n startTime: number,\n attrs: Record<string, unknown>,\n ): Promise<void> {\n if (this.#runStarted) return;\n this.#runStarted = true;\n this.#runStartTime = startTime;\n\n await initializeTraceFile(this.#runId, this.#traceDir);\n\n const metadata: Record<string, unknown> = {\n adapter: \"langchain\",\n confidence: \"explicit\",\n };\n if (attrs.langchainRunId) metadata.langchainRunId = attrs.langchainRunId;\n if (attrs.adapterRunName) metadata.adapterRunName = attrs.adapterRunName;\n\n const event: TraceEvent = {\n schemaVersion: \"0.1\",\n event: \"run_started\",\n timestamp: startTime,\n runId: this.#runId,\n name: this.#runName,\n startTime,\n metadata,\n };\n await this.#write(event);\n }\n\n async #ensureRunCompleted(\n endTime: number,\n stepStatus: \"success\" | \"error\",\n errorMessage?: string,\n ): Promise<void> {\n if (this.#runCompleted || !this.#runStarted) return;\n this.#runCompleted = true;\n\n const startTime = this.#runStartTime ?? endTime;\n const durationMs = Math.max(0, endTime - startTime);\n const runStatus = stepStatus === \"error\" ? \"error\" : \"success\";\n\n const event: TraceEvent = {\n schemaVersion: \"0.1\",\n event: \"run_completed\",\n timestamp: endTime,\n runId: this.#runId,\n status: runStatus,\n endTime,\n durationMs,\n ...(runStatus === \"error\" && errorMessage\n ? { error: { message: errorMessage } }\n : {}),\n };\n await this.#write(event);\n }\n\n async #write(event: TraceEvent): Promise<void> {\n const safe = prepareTraceEventForDisk(event, this.#safety);\n await writeTraceEvent(safe, this.#traceDir);\n }\n\n #warn(err: unknown): void {\n if (!this.#silent) {\n console.error(\"[agent-inspect:langchain]\", err);\n }\n }\n}\n","import type { AgentAction, AgentFinish } from \"@langchain/core/agents\";\nimport { BaseCallbackHandler } from \"@langchain/core/callbacks/base\";\nimport type { Serialized } from \"@langchain/core/load/serializable\";\nimport type { LLMResult } from \"@langchain/core/outputs\";\nimport type { ChainValues } from \"@langchain/core/utils/types\";\n\n/** Subpaths like `@langchain/core/messages/base` are not package exports; derive from the handler contract. */\ntype ChatModelMessages = Parameters<\n NonNullable<BaseCallbackHandler[\"handleChatModelStart\"]>\n>[1];\ntype RetrieverDocuments = Parameters<\n NonNullable<BaseCallbackHandler[\"handleRetrieverEnd\"]>\n>[0];\nimport { Redactor, type InspectEvent, type InspectKind } from \"agent-inspect\";\n\nimport {\n extractModelName,\n extractTokenUsage,\n safePreview,\n toPlainMetadata,\n} from \"./metadata.js\";\nimport { LangChainTracePersistence } from \"./trace-persistence.js\";\nimport type { AgentInspectCallbackOptions } from \"./types.js\";\n\ntype StartEntry = { ts: number; kind: InspectKind };\n\nfunction serializedLabel(s: Serialized): string | undefined {\n if (typeof s.name === \"string\" && s.name.trim()) return s.name;\n if (Array.isArray(s.id) && s.id.length > 0) return s.id[s.id.length - 1];\n return s.type;\n}\n\nfunction errorShape(err: unknown): { errorName?: string; errorMessage: string } {\n if (err instanceof Error) {\n return { errorName: err.name, errorMessage: err.message };\n }\n return { errorMessage: String(err) };\n}\n\nexport class AgentInspectCallback extends BaseCallbackHandler {\n name = \"agent-inspect\";\n\n readonly #opts: Required<\n Pick<AgentInspectCallbackOptions, \"capture\" | \"silent\" | \"maxPreviewChars\">\n > &\n AgentInspectCallbackOptions;\n\n readonly #redactor: Redactor;\n readonly #persistence?: LangChainTracePersistence;\n #events: InspectEvent[] = [];\n readonly #starts = new Map<string, StartEntry>();\n #rootRunId?: string;\n\n constructor(options: AgentInspectCallbackOptions = {}) {\n super({});\n this.#opts = {\n capture: options.capture ?? \"metadata-only\",\n silent: options.silent ?? false,\n maxPreviewChars: options.maxPreviewChars ?? 200,\n persist: options.persist ?? false,\n runName: options.runName ?? \"langchain-agent\",\n ...options,\n };\n this.#redactor = new Redactor({ rules: this.#opts.redact });\n if (this.#opts.persist) {\n this.#persistence = new LangChainTracePersistence({\n runName: this.#opts.runName,\n traceDir: this.#opts.traceDir,\n runId: this.#opts.runId,\n redact: this.#opts.redact,\n silent: this.#opts.silent,\n maxPreviewChars: this.#opts.maxPreviewChars,\n });\n }\n }\n\n getEvents(): InspectEvent[] {\n return this.#events.map((e) => ({\n ...e,\n attributes: e.attributes ? { ...e.attributes } : undefined,\n source: { ...e.source },\n }));\n }\n\n clear(): void {\n this.#events = [];\n this.#starts.clear();\n this.#rootRunId = undefined;\n this.#persistence?.reset();\n }\n\n #ensureRoot(lcRunId: string, parentRunId?: string): void {\n if (parentRunId) return;\n if (!this.#rootRunId) this.#rootRunId = lcRunId;\n }\n\n #traceRunId(lcRunId: string): string {\n return this.#rootRunId ?? lcRunId;\n }\n\n #durationFor(lcRunId: string): number | undefined {\n const s = this.#starts.get(lcRunId);\n if (!s) return undefined;\n return Date.now() - s.ts;\n }\n\n #rememberStart(lcRunId: string, kind: InspectKind): void {\n this.#starts.set(lcRunId, { ts: Date.now(), kind });\n }\n\n #clearStart(lcRunId: string): void {\n this.#starts.delete(lcRunId);\n }\n\n #baseAttrs(\n lcRunId: string,\n parentRunId: string | undefined,\n tags: string[] | undefined,\n runNameArg: string | undefined,\n ): Record<string, unknown> {\n const out: Record<string, unknown> = {\n langchainRunId: lcRunId,\n };\n if (parentRunId) out.parentRunId = parentRunId;\n if (this.#opts.runName) out.adapterRunName = this.#opts.runName;\n if (runNameArg) out.runName = runNameArg;\n if (this.#opts.traceDir) out.traceDir = this.#opts.traceDir;\n const cap = this.#opts.capture;\n if (cap !== \"none\" && tags?.length) out.tags = [...tags];\n return out;\n }\n\n #mergeMetadata(\n attrs: Record<string, unknown>,\n metadata: Record<string, unknown> | undefined,\n ): void {\n if (this.#opts.capture === \"none\" || !metadata) return;\n attrs.metadata = this.#redactor.redactRecord(toPlainMetadata(metadata));\n }\n\n #applyPreview(attrs: Record<string, unknown>, previews: Record<string, unknown>): void {\n if (this.#opts.capture !== \"preview\") return;\n const max = this.#opts.maxPreviewChars;\n for (const [k, v] of Object.entries(previews)) {\n const p = safePreview(v, max);\n if (p !== undefined) attrs[k] = p;\n }\n }\n\n #pushEvent(ev: InspectEvent): void {\n try {\n const attributes = ev.attributes\n ? this.#redactor.redactRecord({ ...ev.attributes })\n : undefined;\n this.#events.push({ ...ev, attributes });\n } catch (err) {\n if (!this.#opts.silent) {\n console.error(\"[agent-inspect:langchain]\", err);\n }\n }\n }\n\n async #persistStepStart(\n lcRunId: string,\n lcParentRunId: string | undefined,\n name: string,\n kind: InspectKind,\n attrs: Record<string, unknown>,\n startTime: number,\n ): Promise<void> {\n await this.#persistence?.onStepStart({\n lcRunId,\n lcParentRunId,\n name,\n kind,\n startTime,\n attributes: attrs,\n });\n }\n\n async #persistStepEnd(\n lcRunId: string,\n lcParentRunId: string | undefined,\n status: \"success\" | \"error\",\n endTime: number,\n durationMs: number | undefined,\n errorMessage?: string,\n ): Promise<void> {\n await this.#persistence?.onStepEnd({\n lcRunId,\n lcParentRunId,\n endTime,\n durationMs,\n status,\n errorMessage,\n });\n }\n\n async #persistInstant(\n lcRunId: string,\n lcParentRunId: string | undefined,\n name: string,\n kind: InspectKind,\n attrs: Record<string, unknown>,\n status: \"success\" | \"error\",\n errorMessage?: string,\n ): Promise<void> {\n await this.#persistence?.onInstantStep({\n lcRunId,\n lcParentRunId,\n name,\n kind,\n timestamp: Date.now(),\n attributes: attrs,\n status,\n errorMessage,\n });\n }\n\n override async handleChainStart(\n chain: Serialized,\n inputs: ChainValues,\n runId: string,\n runType?: string,\n tags?: string[],\n metadata?: Record<string, unknown>,\n runName?: string,\n parentRunId?: string,\n _extra?: Record<string, unknown>,\n ): Promise<void> {\n void runType;\n this.#ensureRoot(runId, parentRunId);\n this.#rememberStart(runId, \"CHAIN\");\n const label = serializedLabel(chain) ?? \"chain\";\n const previews: Record<string, unknown> = {};\n if (this.#opts.capture === \"preview\") previews.inputPreview = inputs;\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, runName),\n };\n this.#mergeMetadata(attrs, metadata);\n this.#applyPreview(attrs, previews);\n const ts = Date.now();\n this.#pushEvent({\n eventId: `${runId}:CHAIN:start`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: `chain:${runName ?? label}`,\n kind: \"CHAIN\",\n timestamp: ts,\n status: \"running\",\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n await this.#persistStepStart(runId, parentRunId, `chain:${runName ?? label}`, \"CHAIN\", attrs, ts);\n }\n\n override async handleChainEnd(\n outputs: ChainValues,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n _kwargs?: { inputs?: Record<string, unknown> },\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n const durationMs = this.#durationFor(runId);\n this.#clearStart(runId);\n const previews: Record<string, unknown> = {};\n if (this.#opts.capture === \"preview\") previews.outputPreview = outputs;\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n };\n this.#applyPreview(attrs, previews);\n const ts = Date.now();\n this.#pushEvent({\n eventId: `${runId}:CHAIN:end`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: \"chain:end\",\n kind: \"CHAIN\",\n timestamp: ts,\n status: \"ok\",\n durationMs,\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n await this.#persistStepEnd(runId, parentRunId, \"success\", ts, durationMs);\n }\n\n override async handleChainError(\n err: unknown,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n _kwargs?: { inputs?: Record<string, unknown> },\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n const durationMs = this.#durationFor(runId);\n this.#clearStart(runId);\n const { errorName, errorMessage } = errorShape(err);\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n errorName,\n errorMessage,\n };\n const ts = Date.now();\n this.#pushEvent({\n eventId: `${runId}:CHAIN:error`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: \"chain:error\",\n kind: \"CHAIN\",\n timestamp: ts,\n status: \"error\",\n durationMs,\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n await this.#persistStepEnd(runId, parentRunId, \"error\", ts, durationMs, errorMessage);\n }\n\n override async handleLLMStart(\n llm: Serialized,\n prompts: string[],\n runId: string,\n parentRunId?: string,\n _extraParams?: Record<string, unknown>,\n tags?: string[],\n metadata?: Record<string, unknown>,\n runName?: string,\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n this.#rememberStart(runId, \"LLM\");\n const model = extractModelName(llm);\n const previews: Record<string, unknown> = {};\n if (this.#opts.capture === \"preview\") {\n previews.promptPreview = prompts.length === 1 ? prompts[0] : prompts;\n }\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, runName),\n };\n if (model && this.#opts.capture !== \"none\") attrs.model = model;\n this.#mergeMetadata(attrs, metadata);\n this.#applyPreview(attrs, previews);\n const ts = Date.now();\n const stepName = `llm:${model ?? \"llm\"}`;\n this.#pushEvent({\n eventId: `${runId}:LLM:start`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: stepName,\n kind: \"LLM\",\n timestamp: ts,\n status: \"running\",\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n await this.#persistStepStart(runId, parentRunId, stepName, \"LLM\", attrs, ts);\n }\n\n override async handleChatModelStart(\n llm: Serialized,\n messages: ChatModelMessages,\n runId: string,\n parentRunId?: string,\n _extraParams?: Record<string, unknown>,\n tags?: string[],\n metadata?: Record<string, unknown>,\n runName?: string,\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n this.#rememberStart(runId, \"LLM\");\n const model = extractModelName(llm);\n const previews: Record<string, unknown> = {};\n if (this.#opts.capture === \"preview\") previews.inputPreview = messages;\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, runName),\n };\n if (model && this.#opts.capture !== \"none\") attrs.model = model;\n this.#mergeMetadata(attrs, metadata);\n this.#applyPreview(attrs, previews);\n const ts = Date.now();\n const stepName = `llm:${model ?? \"llm\"}`;\n this.#pushEvent({\n eventId: `${runId}:CHAT:start`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: stepName,\n kind: \"LLM\",\n timestamp: ts,\n status: \"running\",\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n await this.#persistStepStart(runId, parentRunId, stepName, \"LLM\", attrs, ts);\n }\n\n override async handleLLMEnd(\n output: LLMResult,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n _extraParams?: Record<string, unknown>,\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n const durationMs = this.#durationFor(runId);\n this.#clearStart(runId);\n const tokens = extractTokenUsage(output);\n const model = extractModelName(output);\n const previews: Record<string, unknown> = {};\n if (this.#opts.capture === \"preview\") previews.outputPreview = output;\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n };\n if (model && this.#opts.capture !== \"none\") attrs.model = model;\n if (tokens && this.#opts.capture !== \"none\") attrs.tokens = tokens;\n this.#applyPreview(attrs, previews);\n const ts = Date.now();\n this.#pushEvent({\n eventId: `${runId}:LLM:end`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: `llm:${model ?? \"llm\"}`,\n kind: \"LLM\",\n timestamp: ts,\n status: \"ok\",\n durationMs,\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n await this.#persistStepEnd(runId, parentRunId, \"success\", ts, durationMs);\n }\n\n override async handleLLMError(\n err: unknown,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n _extraParams?: Record<string, unknown>,\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n const durationMs = this.#durationFor(runId);\n this.#clearStart(runId);\n const { errorName, errorMessage } = errorShape(err);\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n errorName,\n errorMessage,\n };\n const ts = Date.now();\n this.#pushEvent({\n eventId: `${runId}:LLM:error`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: \"llm:error\",\n kind: \"LLM\",\n timestamp: ts,\n status: \"error\",\n durationMs,\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n await this.#persistStepEnd(runId, parentRunId, \"error\", ts, durationMs, errorMessage);\n }\n\n override async handleToolStart(\n tool: Serialized,\n input: string,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n metadata?: Record<string, unknown>,\n runName?: string,\n _toolCallId?: string,\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n this.#rememberStart(runId, \"TOOL\");\n const toolName = serializedLabel(tool) ?? \"tool\";\n const previews: Record<string, unknown> = {};\n if (this.#opts.capture === \"preview\") previews.inputPreview = input;\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, runName),\n tool: toolName,\n };\n this.#mergeMetadata(attrs, metadata);\n this.#applyPreview(attrs, previews);\n const ts = Date.now();\n const stepName = `tool:${toolName}`;\n this.#pushEvent({\n eventId: `${runId}:TOOL:start`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: stepName,\n kind: \"TOOL\",\n timestamp: ts,\n status: \"running\",\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n await this.#persistStepStart(runId, parentRunId, stepName, \"TOOL\", attrs, ts);\n }\n\n override async handleToolEnd(\n output: unknown,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n const durationMs = this.#durationFor(runId);\n this.#clearStart(runId);\n const previews: Record<string, unknown> = {};\n if (this.#opts.capture === \"preview\") previews.outputPreview = output;\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n };\n this.#applyPreview(attrs, previews);\n const ts = Date.now();\n this.#pushEvent({\n eventId: `${runId}:TOOL:end`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: \"tool:end\",\n kind: \"TOOL\",\n timestamp: ts,\n status: \"ok\",\n durationMs,\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n await this.#persistStepEnd(runId, parentRunId, \"success\", ts, durationMs);\n }\n\n override async handleToolError(\n err: unknown,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n const durationMs = this.#durationFor(runId);\n this.#clearStart(runId);\n const { errorName, errorMessage } = errorShape(err);\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n errorName,\n errorMessage,\n };\n const ts = Date.now();\n this.#pushEvent({\n eventId: `${runId}:TOOL:error`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: \"tool:error\",\n kind: \"TOOL\",\n timestamp: ts,\n status: \"error\",\n durationMs,\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n await this.#persistStepEnd(runId, parentRunId, \"error\", ts, durationMs, errorMessage);\n }\n\n override async handleRetrieverStart(\n retriever: Serialized,\n _query: string,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n metadata?: Record<string, unknown>,\n name?: string,\n ): Promise<void> {\n void _query;\n this.#ensureRoot(runId, parentRunId);\n this.#rememberStart(runId, \"RETRIEVER\");\n const rname = name ?? serializedLabel(retriever) ?? \"retriever\";\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n retriever: rname,\n };\n this.#mergeMetadata(attrs, metadata);\n const ts = Date.now();\n const stepName = `retriever:${rname}`;\n this.#pushEvent({\n eventId: `${runId}:RETRIEVER:start`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: stepName,\n kind: \"RETRIEVER\",\n timestamp: ts,\n status: \"running\",\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n await this.#persistStepStart(runId, parentRunId, stepName, \"RETRIEVER\", attrs, ts);\n }\n\n override async handleRetrieverEnd(\n documents: RetrieverDocuments,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n const durationMs = this.#durationFor(runId);\n this.#clearStart(runId);\n const previews: Record<string, unknown> = {};\n if (this.#opts.capture === \"preview\" && documents.length > 0) {\n previews.documentPreview = documents.slice(0, 3);\n }\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n documentCount: documents.length,\n };\n this.#applyPreview(attrs, previews);\n const ts = Date.now();\n this.#pushEvent({\n eventId: `${runId}:RETRIEVER:end`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: \"retriever:end\",\n kind: \"RETRIEVER\",\n timestamp: ts,\n status: \"ok\",\n durationMs,\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n await this.#persistStepEnd(runId, parentRunId, \"success\", ts, durationMs);\n }\n\n override async handleRetrieverError(\n err: unknown,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n const durationMs = this.#durationFor(runId);\n this.#clearStart(runId);\n const { errorName, errorMessage } = errorShape(err);\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n errorName,\n errorMessage,\n };\n const ts = Date.now();\n this.#pushEvent({\n eventId: `${runId}:RETRIEVER:error`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: \"retriever:error\",\n kind: \"RETRIEVER\",\n timestamp: ts,\n status: \"error\",\n durationMs,\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n await this.#persistStepEnd(runId, parentRunId, \"error\", ts, durationMs, errorMessage);\n }\n\n override async handleAgentAction(\n action: AgentAction,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n tool: action.tool,\n };\n if (this.#opts.capture === \"preview\") {\n this.#applyPreview(attrs, {\n toolInputPreview: action.toolInput,\n logPreview: action.log,\n });\n }\n this.#pushEvent({\n eventId: `${runId}:AGENT:action:${Date.now()}`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: \"agent:action\",\n kind: \"DECISION\",\n timestamp: Date.now(),\n status: \"ok\",\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n await this.#persistInstant(runId, parentRunId, \"agent:action\", \"DECISION\", attrs, \"success\");\n }\n\n override async handleAgentEnd(\n finish: AgentFinish,\n runId: string,\n parentRunId?: string,\n tags?: string[],\n ): Promise<void> {\n this.#ensureRoot(runId, parentRunId);\n const attrs: Record<string, unknown> = {\n ...this.#baseAttrs(runId, parentRunId, tags, undefined),\n };\n if (this.#opts.capture === \"preview\") {\n this.#applyPreview(attrs, {\n outputPreview: finish.returnValues,\n logPreview: finish.log,\n });\n }\n this.#pushEvent({\n eventId: `${runId}:AGENT:end:${Date.now()}`,\n runId: this.#traceRunId(runId),\n parentId: parentRunId,\n name: \"agent:end\",\n kind: \"AGENT\",\n timestamp: Date.now(),\n status: \"ok\",\n attributes: attrs,\n confidence: \"explicit\",\n source: { type: \"adapter\" },\n });\n await this.#persistInstant(runId, parentRunId, \"agent:end\", \"AGENT\", attrs, \"success\");\n }\n}\n"]}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@agent-inspect/langchain",
3
- "version": "1.0.3",
3
+ "version": "1.1.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "private": false,
7
- "description": "LangChain.js callback adapter for AgentInspect (in-memory execution events)",
7
+ "description": "LangChain.js callback adapter for AgentInspect (in-memory or persisted JSONL execution events)",
8
8
  "sideEffects": false,
9
9
  "main": "./dist/index.cjs",
10
10
  "module": "./dist/index.mjs",
@@ -28,7 +28,7 @@
28
28
  "@langchain/core": "^1.0.0"
29
29
  },
30
30
  "dependencies": {
31
- "agent-inspect": "1.0.3"
31
+ "agent-inspect": "1.1.0"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@langchain/core": "^1.0.0"