@agent-inspect/ai-sdk 1.7.0 → 1.8.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.
- package/dist/index.cjs +347 -227
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +20 -4
- package/dist/index.d.ts +20 -4
- package/dist/index.mjs +347 -227
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["import { bindTelemetryIntegration } from \"ai\";\nimport type {\n OnFinishEvent,\n OnStartEvent,\n OnStepFinishEvent,\n OnStepStartEvent,\n OnToolCallFinishEvent,\n OnToolCallStartEvent,\n TelemetryIntegration,\n} from \"ai\";\nimport type {\n PersistedInspectEvent,\n PersistedInspectError,\n PersistedTokenUsage,\n RedactionProfile,\n} from \"agent-inspect\";\nimport { fileWriter } from \"agent-inspect/writers\";\nimport type { TraceWriter } from \"agent-inspect/writers\";\n\n/**\n * Experimental capture mode for the AI SDK adapter.\n *\n * @experimental This package is part of the v1.7 adapter train.\n */\nexport type AgentInspectAiSdkCaptureMode = \"metadata-only\" | \"preview\";\n\n/**\n * Options for the experimental AI SDK telemetry integration.\n *\n * @experimental Callers must keep AI SDK telemetry configured with\n * `recordInputs: false` and `recordOutputs: false`.\n */\nexport interface AgentInspectAiSdkOptions {\n /**\n * Explicit local writer for future runtime integration.\n */\n writer?: TraceWriter;\n\n /**\n * Convenience local trace directory for future writer-owned persistence.\n */\n traceDir?: string;\n\n /**\n * Optional run name used by future lifecycle mapping.\n */\n runName?: string;\n\n /**\n * Capture policy. Defaults to metadata-only when runtime mapping lands.\n */\n capture?: AgentInspectAiSdkCaptureMode;\n\n /**\n * Redaction profile applied before local persistence in future mapping.\n */\n redactionProfile?: RedactionProfile;\n\n /**\n * Bounds any future preview capture.\n */\n maxPreviewChars?: number;\n}\n\nexport interface AgentInspectAiSdkDiagnostics {\n writeFailures: number;\n lastError?: string;\n}\n\nexport interface AgentInspectAiSdkIntegration extends TelemetryIntegration {\n getDiagnostics(): AgentInspectAiSdkDiagnostics;\n}\n\ntype AiSdkModelInfo = {\n provider?: string;\n modelId?: string;\n};\n\ntype AiSdkUsage = {\n inputTokens?: number;\n outputTokens?: number;\n totalTokens?: number;\n cachedInputTokens?: number;\n};\n\ninterface ActiveStep {\n eventId: string;\n startedAt: string;\n}\n\ninterface ActiveTool {\n eventId: string;\n startedAt: string;\n toolName: string;\n}\n\ninterface ActiveRun {\n runId: string;\n eventId: string;\n name: string;\n startedAt: string;\n model?: AiSdkModelInfo;\n steps: Map<number, ActiveStep>;\n tools: Map<string, ActiveTool>;\n}\n\nconst AI_SDK_SOURCE = {\n type: \"ai-sdk\",\n name: \"@agent-inspect/ai-sdk\",\n version: \"experimental\",\n} as const;\n\nfunction nowIso(): string {\n return new Date().toISOString();\n}\n\nfunction createId(prefix: string): string {\n if (typeof crypto !== \"undefined\" && \"randomUUID\" in crypto) {\n return `${prefix}_${crypto.randomUUID()}`;\n }\n return `${prefix}_${Date.now()}_${Math.random().toString(16).slice(2)}`;\n}\n\nfunction normalizeError(error: unknown): string {\n if (error instanceof Error && error.message.trim() !== \"\") {\n return error.message;\n }\n if (typeof error === \"string\" && error.trim() !== \"\") {\n return error;\n }\n return \"Unknown AI SDK integration error\";\n}\n\nfunction durationMs(startedAt: string, endedAt: string): number | undefined {\n const started = Date.parse(startedAt);\n const ended = Date.parse(endedAt);\n if (!Number.isFinite(started) || !Number.isFinite(ended)) return undefined;\n return Math.max(0, ended - started);\n}\n\nfunction countRecordKeys(value: unknown): number | undefined {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n return undefined;\n }\n return Object.keys(value).length;\n}\n\nfunction summarizeUnknown(value: unknown): Record<string, unknown> {\n if (value === null) return { type: \"null\" };\n if (Array.isArray(value)) return { type: \"array\", itemCount: value.length };\n\n if (typeof value === \"object\") {\n return { type: \"object\", keyCount: countRecordKeys(value) ?? 0 };\n }\n if (typeof value === \"string\") {\n return { type: \"string\", length: value.length };\n }\n const valueType = typeof value;\n if (valueType === \"number\" || valueType === \"boolean\" || valueType === \"bigint\") {\n return { type: valueType };\n }\n if (valueType === \"undefined\") return { type: \"undefined\" };\n return { type: \"unknown\" };\n}\n\nfunction summarizeError(error: unknown): PersistedInspectError {\n if (error instanceof Error) {\n return {\n name: error.name || \"Error\",\n message: error.message,\n };\n }\n if (typeof error === \"string\") {\n return {\n message: error,\n };\n }\n return {\n message: \"Unknown AI SDK tool error\",\n };\n}\n\nfunction summarizeModel(model: AiSdkModelInfo | undefined): Record<string, unknown> {\n return {\n provider: model?.provider,\n modelId: model?.modelId,\n };\n}\n\nfunction summarizeUsage(usage: AiSdkUsage | undefined): PersistedTokenUsage | undefined {\n if (!usage) return undefined;\n\n const tokenUsage: PersistedTokenUsage = {};\n if (typeof usage.inputTokens === \"number\") tokenUsage.input = usage.inputTokens;\n if (typeof usage.outputTokens === \"number\") tokenUsage.output = usage.outputTokens;\n if (typeof usage.totalTokens === \"number\") tokenUsage.total = usage.totalTokens;\n if (typeof usage.cachedInputTokens === \"number\") tokenUsage.cached = usage.cachedInputTokens;\n\n return Object.keys(tokenUsage).length > 0 ? tokenUsage : undefined;\n}\n\nfunction summarizeFinishReason(\n finishReason: unknown,\n): { finishReason?: string; rawFinishReason?: string } {\n if (typeof finishReason === \"string\") {\n return { finishReason };\n }\n if (typeof finishReason !== \"object\" || finishReason === null) {\n return {};\n }\n\n const value = finishReason as { unified?: unknown; raw?: unknown };\n return {\n finishReason: typeof value.unified === \"string\" ? value.unified : undefined,\n rawFinishReason: typeof value.raw === \"string\" ? value.raw : undefined,\n };\n}\n\nclass AgentInspectAiSdkTelemetryIntegration {\n private readonly writer: TraceWriter | undefined;\n private readonly diagnostics: AgentInspectAiSdkDiagnostics = {\n writeFailures: 0,\n };\n private activeRun: ActiveRun | undefined;\n\n constructor(private readonly options: AgentInspectAiSdkOptions) {\n this.writer = options.writer ?? (options.traceDir ? fileWriter({ dir: options.traceDir }) : undefined);\n }\n\n getDiagnostics(): AgentInspectAiSdkDiagnostics {\n return { ...this.diagnostics };\n }\n\n async onStart(event: OnStartEvent): Promise<void> {\n const startedAt = nowIso();\n const runId = createId(\"ai_sdk_run\");\n const eventId = createId(\"event\");\n const name =\n this.options.runName ??\n event.functionId ??\n event.model.modelId ??\n \"ai-sdk-generation\";\n\n this.activeRun = {\n runId,\n eventId,\n name,\n startedAt,\n model: event.model,\n steps: new Map(),\n tools: new Map(),\n };\n\n await this.write({\n schemaVersion: \"0.2\",\n eventId,\n runId,\n kind: \"RUN\",\n name,\n status: \"running\",\n timestamp: startedAt,\n startedAt,\n confidence: \"explicit\",\n source: AI_SDK_SOURCE,\n attributes: {\n ...summarizeModel(event.model),\n functionId: event.functionId,\n capture: this.options.capture ?? \"metadata-only\",\n recordInputsRequired: false,\n recordOutputsRequired: false,\n toolCount: countRecordKeys(event.tools),\n hasPrompt: event.prompt !== undefined,\n hasMessages: event.messages !== undefined,\n metadataKeyCount: countRecordKeys(event.metadata),\n },\n });\n }\n\n async onStepStart(event: OnStepStartEvent): Promise<void> {\n const run = this.ensureRun(event.model, event.functionId);\n const startedAt = nowIso();\n const stepEventId = createId(\"event\");\n run.steps.set(event.stepNumber, {\n eventId: stepEventId,\n startedAt,\n });\n\n await this.write({\n schemaVersion: \"0.2\",\n eventId: stepEventId,\n runId: run.runId,\n parentId: run.eventId,\n kind: \"LLM\",\n name: `ai-sdk-step-${event.stepNumber}`,\n status: \"running\",\n timestamp: startedAt,\n startedAt,\n confidence: \"explicit\",\n source: AI_SDK_SOURCE,\n attributes: {\n ...summarizeModel(event.model),\n functionId: event.functionId,\n stepNumber: event.stepNumber,\n priorStepCount: event.steps.length,\n activeToolCount: event.activeTools?.length,\n toolCount: countRecordKeys(event.tools),\n messageCount: event.messages.length,\n metadataKeyCount: countRecordKeys(event.metadata),\n },\n });\n }\n\n async onStepFinish(event: OnStepFinishEvent): Promise<void> {\n const run = this.ensureRun(event.model, event.functionId);\n const endedAt = nowIso();\n const activeStep =\n run.steps.get(event.stepNumber) ?? {\n eventId: createId(\"event\"),\n startedAt: endedAt,\n };\n\n await this.write({\n schemaVersion: \"0.2\",\n eventId: createId(\"event\"),\n runId: run.runId,\n parentId: activeStep.eventId,\n kind: \"LLM\",\n name: `ai-sdk-step-${event.stepNumber}`,\n status: \"ok\",\n timestamp: endedAt,\n startedAt: activeStep.startedAt,\n endedAt,\n durationMs: durationMs(activeStep.startedAt, endedAt),\n confidence: \"explicit\",\n source: AI_SDK_SOURCE,\n attributes: {\n ...summarizeModel(event.model),\n functionId: event.functionId,\n stepNumber: event.stepNumber,\n ...summarizeFinishReason(event.finishReason),\n warningCount: event.warnings?.length ?? 0,\n contentPartCount: event.content.length,\n toolCallCount: event.toolCalls.length,\n toolResultCount: event.toolResults.length,\n responseId: event.response.id,\n responseModelId: event.response.modelId,\n responseTimestamp: event.response.timestamp?.toISOString(),\n metadataKeyCount: countRecordKeys(event.metadata),\n },\n tokenUsage: summarizeUsage(event.usage),\n outputSummary: {\n contentPartCount: event.content.length,\n textLength: event.text.length,\n reasoningPartCount: event.reasoning.length,\n fileCount: event.files.length,\n sourceCount: event.sources.length,\n },\n });\n }\n\n async onToolCallStart(event: OnToolCallStartEvent): Promise<void> {\n const run = this.ensureRun(event.model, event.functionId);\n const startedAt = nowIso();\n const eventId = createId(\"event\");\n const toolCall = event.toolCall;\n run.tools.set(toolCall.toolCallId, {\n eventId,\n startedAt,\n toolName: toolCall.toolName,\n });\n\n const step = event.stepNumber === undefined ? undefined : run.steps.get(event.stepNumber);\n\n await this.write({\n schemaVersion: \"0.2\",\n eventId,\n runId: run.runId,\n parentId: step?.eventId ?? run.eventId,\n kind: \"TOOL\",\n name: toolCall.toolName,\n status: \"running\",\n timestamp: startedAt,\n startedAt,\n confidence: \"explicit\",\n source: AI_SDK_SOURCE,\n attributes: {\n ...summarizeModel(event.model),\n functionId: event.functionId,\n stepNumber: event.stepNumber,\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n dynamic: toolCall.dynamic === true,\n invalid: toolCall.invalid === true,\n providerExecuted: toolCall.providerExecuted === true,\n messageCount: event.messages.length,\n metadataKeyCount: countRecordKeys(event.metadata),\n providerMetadataKeyCount: countRecordKeys(toolCall.providerMetadata),\n toolMetadataKeyCount: countRecordKeys(toolCall.toolMetadata),\n },\n inputSummary: summarizeUnknown(toolCall.input),\n error: toolCall.invalid ? summarizeError(toolCall.error) : undefined,\n });\n }\n\n async onToolCallFinish(event: OnToolCallFinishEvent): Promise<void> {\n const run = this.ensureRun(event.model, event.functionId);\n const endedAt = nowIso();\n const toolCall = event.toolCall;\n const activeTool =\n run.tools.get(toolCall.toolCallId) ?? {\n eventId: createId(\"event\"),\n startedAt: endedAt,\n toolName: toolCall.toolName,\n };\n\n await this.write({\n schemaVersion: \"0.2\",\n eventId: createId(\"event\"),\n runId: run.runId,\n parentId: activeTool.eventId,\n kind: \"TOOL\",\n name: activeTool.toolName,\n status: event.success ? \"ok\" : \"error\",\n timestamp: endedAt,\n startedAt: activeTool.startedAt,\n endedAt,\n durationMs: event.durationMs,\n confidence: \"explicit\",\n source: AI_SDK_SOURCE,\n attributes: {\n ...summarizeModel(event.model),\n functionId: event.functionId,\n stepNumber: event.stepNumber,\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n dynamic: toolCall.dynamic === true,\n invalid: toolCall.invalid === true,\n providerExecuted: toolCall.providerExecuted === true,\n messageCount: event.messages.length,\n metadataKeyCount: countRecordKeys(event.metadata),\n providerMetadataKeyCount: countRecordKeys(toolCall.providerMetadata),\n toolMetadataKeyCount: countRecordKeys(toolCall.toolMetadata),\n },\n outputSummary: event.success ? summarizeUnknown(event.output) : undefined,\n error: event.success ? undefined : summarizeError(event.error),\n });\n }\n\n async onFinish(event: OnFinishEvent): Promise<void> {\n const run = this.ensureRun(event.model, event.functionId);\n const endedAt = nowIso();\n\n await this.write({\n schemaVersion: \"0.2\",\n eventId: createId(\"event\"),\n runId: run.runId,\n kind: \"RUN\",\n name: run.name,\n status: \"ok\",\n timestamp: endedAt,\n startedAt: run.startedAt,\n endedAt,\n durationMs: durationMs(run.startedAt, endedAt),\n confidence: \"explicit\",\n source: AI_SDK_SOURCE,\n attributes: {\n ...summarizeModel(event.model ?? run.model),\n functionId: event.functionId,\n ...summarizeFinishReason(event.finishReason),\n stepCount: event.steps.length,\n warningCount: event.warnings?.length ?? 0,\n toolCallCount: event.toolCalls.length,\n toolResultCount: event.toolResults.length,\n metadataKeyCount: countRecordKeys(event.metadata),\n },\n tokenUsage: summarizeUsage(event.totalUsage),\n outputSummary: {\n contentPartCount: event.content.length,\n textLength: event.text.length,\n reasoningPartCount: event.reasoning.length,\n fileCount: event.files.length,\n sourceCount: event.sources.length,\n },\n });\n\n this.activeRun = undefined;\n }\n\n private ensureRun(model: AiSdkModelInfo | undefined, functionId: string | undefined): ActiveRun {\n if (this.activeRun) return this.activeRun;\n\n const startedAt = nowIso();\n this.activeRun = {\n runId: createId(\"ai_sdk_run\"),\n eventId: createId(\"event\"),\n name: this.options.runName ?? functionId ?? model?.modelId ?? \"ai-sdk-generation\",\n startedAt,\n model,\n steps: new Map(),\n tools: new Map(),\n };\n return this.activeRun;\n }\n\n private async write(event: PersistedInspectEvent): Promise<void> {\n if (!this.writer) return;\n\n try {\n await this.writer.write(event);\n } catch (error) {\n this.diagnostics.writeFailures += 1;\n this.diagnostics.lastError = normalizeError(error);\n }\n }\n}\n\n/**\n * Create an AgentInspect telemetry integration for the Vercel AI SDK.\n *\n * @experimental The adapter maps metadata-only generation, LLM step, and tool\n * lifecycle events. Keep AI SDK telemetry configured with\n * `recordInputs: false` and `recordOutputs: false`.\n */\nexport function agentInspect(\n options: AgentInspectAiSdkOptions = {},\n): AgentInspectAiSdkIntegration {\n const integration = new AgentInspectAiSdkTelemetryIntegration(options);\n return {\n ...bindTelemetryIntegration(integration),\n getDiagnostics: () => integration.getDiagnostics(),\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["import { bindTelemetryIntegration } from \"ai\";\nimport type {\n OnFinishEvent,\n OnStartEvent,\n OnStepFinishEvent,\n OnStepStartEvent,\n OnToolCallFinishEvent,\n OnToolCallStartEvent,\n TelemetryIntegration,\n} from \"ai\";\nimport type {\n PersistedInspectEvent,\n PersistedInspectError,\n PersistedTokenUsage,\n RedactionProfile,\n} from \"agent-inspect\";\nimport { fileWriter } from \"agent-inspect/writers\";\nimport type { TraceWriter, TraceWriterStats } from \"agent-inspect/writers\";\n\n/**\n * Experimental capture mode for the AI SDK adapter.\n *\n * @experimental This package is part of the v1.7 adapter train.\n */\nexport type AgentInspectAiSdkCaptureMode = \"metadata-only\" | \"preview\";\n\n/**\n * Options for the experimental AI SDK telemetry integration.\n *\n * @experimental Callers must keep AI SDK telemetry configured with\n * `recordInputs: false` and `recordOutputs: false`.\n */\nexport interface AgentInspectAiSdkOptions {\n /**\n * Explicit local writer for future runtime integration.\n */\n writer?: TraceWriter;\n\n /**\n * Convenience local trace directory for future writer-owned persistence.\n */\n traceDir?: string;\n\n /**\n * Optional run name used by future lifecycle mapping.\n */\n runName?: string;\n\n /**\n * Capture policy. Defaults to metadata-only.\n *\n * @experimental `preview` is currently rejected with diagnostics and falls\n * back to metadata-only until bounded free-text preview capture is implemented.\n */\n capture?: AgentInspectAiSdkCaptureMode;\n\n /**\n * Redaction profile for future preview capture.\n *\n * @experimental Currently diagnostic-only because the adapter persists\n * metadata summaries and does not write raw preview content.\n */\n redactionProfile?: RedactionProfile;\n\n /**\n * Bounds future preview capture.\n *\n * @experimental Currently diagnostic-only because `preview` falls back to\n * metadata-only capture.\n */\n maxPreviewChars?: number;\n}\n\nexport interface AgentInspectAiSdkDiagnostics {\n writeFailures: number;\n lifecycleWarnings: number;\n flushFailures: number;\n closeFailures: number;\n lastError?: string;\n lastWarning?: string;\n}\n\nexport interface AgentInspectAiSdkIntegration extends TelemetryIntegration {\n getDiagnostics(): AgentInspectAiSdkDiagnostics;\n getWriterStats(): TraceWriterStats | undefined;\n flush(): Promise<void>;\n close(): Promise<void>;\n}\n\ntype AiSdkModelInfo = {\n provider?: string;\n modelId?: string;\n};\n\ntype AiSdkUsage = {\n inputTokens?: number;\n outputTokens?: number;\n totalTokens?: number;\n cachedInputTokens?: number;\n};\n\ninterface ActiveStep {\n eventId: string;\n parentId: string;\n startedAt: string;\n}\n\ninterface ActiveTool {\n eventId: string;\n parentId: string;\n startedAt: string;\n toolName: string;\n}\n\ninterface ActiveRun {\n runId: string;\n eventId: string;\n name: string;\n startedAt: string;\n model?: AiSdkModelInfo;\n steps: Map<number, ActiveStep>;\n tools: Map<string, ActiveTool>;\n}\n\nconst AI_SDK_SOURCE = {\n type: \"ai-sdk\",\n name: \"@agent-inspect/ai-sdk\",\n version: \"experimental\",\n} as const;\n\nfunction nowIso(): string {\n return new Date().toISOString();\n}\n\nfunction createId(prefix: string): string {\n if (typeof crypto !== \"undefined\" && \"randomUUID\" in crypto) {\n return `${prefix}_${crypto.randomUUID()}`;\n }\n return `${prefix}_${Date.now()}_${Math.random().toString(16).slice(2)}`;\n}\n\nfunction normalizeError(error: unknown): string {\n if (error instanceof Error && error.message.trim() !== \"\") {\n return error.message;\n }\n if (typeof error === \"string\" && error.trim() !== \"\") {\n return error;\n }\n return \"Unknown AI SDK integration error\";\n}\n\nfunction durationMs(startedAt: string, endedAt: string): number | undefined {\n const started = Date.parse(startedAt);\n const ended = Date.parse(endedAt);\n if (!Number.isFinite(started) || !Number.isFinite(ended)) return undefined;\n return Math.max(0, ended - started);\n}\n\nfunction countRecordKeys(value: unknown): number | undefined {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n return undefined;\n }\n return Object.keys(value).length;\n}\n\nfunction normalizeMaxPreviewChars(value: unknown): number | undefined {\n if (typeof value !== \"number\" || !Number.isFinite(value) || value < 0) {\n return undefined;\n }\n return Math.floor(value);\n}\n\nfunction summarizeUnknown(value: unknown): Record<string, unknown> {\n if (value === null) return { type: \"null\" };\n if (Array.isArray(value)) return { type: \"array\", itemCount: value.length };\n\n if (typeof value === \"object\") {\n return { type: \"object\", keyCount: countRecordKeys(value) ?? 0 };\n }\n if (typeof value === \"string\") {\n return { type: \"string\", length: value.length };\n }\n const valueType = typeof value;\n if (valueType === \"number\" || valueType === \"boolean\" || valueType === \"bigint\") {\n return { type: valueType };\n }\n if (valueType === \"undefined\") return { type: \"undefined\" };\n return { type: \"unknown\" };\n}\n\nfunction summarizeError(error: unknown): PersistedInspectError {\n if (error instanceof Error) {\n return {\n name: error.name || \"Error\",\n message: error.message,\n };\n }\n if (typeof error === \"string\") {\n return {\n message: error,\n };\n }\n return {\n message: \"Unknown AI SDK tool error\",\n };\n}\n\nfunction summarizeModel(model: AiSdkModelInfo | undefined): Record<string, unknown> {\n return {\n provider: model?.provider,\n modelId: model?.modelId,\n };\n}\n\nfunction summarizeUsage(usage: AiSdkUsage | undefined): PersistedTokenUsage | undefined {\n if (!usage) return undefined;\n\n const tokenUsage: PersistedTokenUsage = {};\n if (typeof usage.inputTokens === \"number\") tokenUsage.input = usage.inputTokens;\n if (typeof usage.outputTokens === \"number\") tokenUsage.output = usage.outputTokens;\n if (typeof usage.totalTokens === \"number\") tokenUsage.total = usage.totalTokens;\n if (typeof usage.cachedInputTokens === \"number\") tokenUsage.cached = usage.cachedInputTokens;\n\n return Object.keys(tokenUsage).length > 0 ? tokenUsage : undefined;\n}\n\nfunction summarizeFinishReason(\n finishReason: unknown,\n): { finishReason?: string; rawFinishReason?: string } {\n if (typeof finishReason === \"string\") {\n return { finishReason };\n }\n if (typeof finishReason !== \"object\" || finishReason === null) {\n return {};\n }\n\n const value = finishReason as { unified?: unknown; raw?: unknown };\n return {\n finishReason: typeof value.unified === \"string\" ? value.unified : undefined,\n rawFinishReason: typeof value.raw === \"string\" ? value.raw : undefined,\n };\n}\n\nclass AgentInspectAiSdkTelemetryIntegration {\n private readonly writer: TraceWriter | undefined;\n private readonly requestedCapture: AgentInspectAiSdkCaptureMode;\n private readonly effectiveCapture: \"metadata-only\" = \"metadata-only\";\n private readonly diagnostics: AgentInspectAiSdkDiagnostics = {\n writeFailures: 0,\n lifecycleWarnings: 0,\n flushFailures: 0,\n closeFailures: 0,\n };\n private activeRun: ActiveRun | undefined;\n private suspendedReason: string | undefined;\n\n constructor(private readonly options: AgentInspectAiSdkOptions) {\n this.requestedCapture = options.capture ?? \"metadata-only\";\n this.writer = options.writer ?? (options.traceDir ? fileWriter({ dir: options.traceDir }) : undefined);\n this.recordCaptureOptionWarnings();\n }\n\n getDiagnostics(): AgentInspectAiSdkDiagnostics {\n return { ...this.diagnostics };\n }\n\n async onStart(event: OnStartEvent): Promise<void> {\n await this.handleLifecycle(\"onStart\", async () => {\n if (this.activeRun || this.suspendedReason) {\n this.activeRun = undefined;\n this.suspendedReason =\n \"Overlapping AI SDK generation ignored; create one agentInspect() integration per concurrent generation.\";\n this.recordLifecycleWarning(this.suspendedReason);\n return;\n }\n\n const startedAt = nowIso();\n const runId = createId(\"ai_sdk_run\");\n const eventId = createId(\"event\");\n const name =\n this.options.runName ??\n event.functionId ??\n event.model.modelId ??\n \"ai-sdk-generation\";\n\n this.activeRun = {\n runId,\n eventId,\n name,\n startedAt,\n model: event.model,\n steps: new Map(),\n tools: new Map(),\n };\n\n await this.write({\n schemaVersion: \"0.2\",\n eventId,\n runId,\n kind: \"RUN\",\n name,\n status: \"running\",\n timestamp: startedAt,\n startedAt,\n confidence: \"explicit\",\n source: AI_SDK_SOURCE,\n attributes: {\n legacyEvent: \"run_started\",\n ...summarizeModel(event.model),\n functionId: event.functionId,\n capture: this.effectiveCapture,\n requestedCapture:\n this.requestedCapture === this.effectiveCapture\n ? undefined\n : this.requestedCapture,\n previewCaptureSupported:\n this.requestedCapture === \"preview\" ? false : undefined,\n redactionProfile: this.options.redactionProfile,\n maxPreviewChars: normalizeMaxPreviewChars(this.options.maxPreviewChars),\n recordInputsRequired: false,\n recordOutputsRequired: false,\n toolCount: countRecordKeys(event.tools),\n hasPrompt: event.prompt !== undefined,\n hasMessages: event.messages !== undefined,\n metadataKeyCount: countRecordKeys(event.metadata),\n },\n });\n });\n }\n\n async onStepStart(event: OnStepStartEvent): Promise<void> {\n await this.handleLifecycle(\"onStepStart\", async () => {\n const run = this.getActiveRun(\"onStepStart\");\n if (!run) return;\n const startedAt = nowIso();\n const stepEventId = createId(\"event\");\n run.steps.set(event.stepNumber, {\n eventId: stepEventId,\n parentId: run.eventId,\n startedAt,\n });\n\n await this.write({\n schemaVersion: \"0.2\",\n eventId: stepEventId,\n runId: run.runId,\n parentId: run.eventId,\n kind: \"LLM\",\n name: `ai-sdk-step-${event.stepNumber}`,\n status: \"running\",\n timestamp: startedAt,\n startedAt,\n confidence: \"explicit\",\n source: AI_SDK_SOURCE,\n attributes: {\n legacyEvent: \"step_started\",\n stepId: stepEventId,\n ...summarizeModel(event.model),\n functionId: event.functionId,\n stepNumber: event.stepNumber,\n priorStepCount: event.steps.length,\n activeToolCount: event.activeTools?.length,\n toolCount: countRecordKeys(event.tools),\n messageCount: event.messages.length,\n metadataKeyCount: countRecordKeys(event.metadata),\n },\n });\n });\n }\n\n async onStepFinish(event: OnStepFinishEvent): Promise<void> {\n await this.handleLifecycle(\"onStepFinish\", async () => {\n const run = this.getActiveRun(\"onStepFinish\");\n if (!run) return;\n const endedAt = nowIso();\n const activeStep = run.steps.get(event.stepNumber);\n if (!activeStep) {\n this.recordLifecycleWarning(\n `onStepFinish ignored because step ${event.stepNumber} has no matching start callback.`,\n );\n return;\n }\n\n await this.write({\n schemaVersion: \"0.2\",\n eventId: activeStep.eventId,\n runId: run.runId,\n parentId: activeStep.parentId,\n kind: \"LLM\",\n name: `ai-sdk-step-${event.stepNumber}`,\n status: \"ok\",\n timestamp: endedAt,\n startedAt: activeStep.startedAt,\n endedAt,\n durationMs: durationMs(activeStep.startedAt, endedAt),\n confidence: \"explicit\",\n source: AI_SDK_SOURCE,\n attributes: {\n legacyEvent: \"step_completed\",\n stepId: activeStep.eventId,\n ...summarizeModel(event.model),\n functionId: event.functionId,\n stepNumber: event.stepNumber,\n ...summarizeFinishReason(event.finishReason),\n warningCount: event.warnings?.length ?? 0,\n contentPartCount: event.content.length,\n toolCallCount: event.toolCalls.length,\n toolResultCount: event.toolResults.length,\n responseId: event.response.id,\n responseModelId: event.response.modelId,\n responseTimestamp: event.response.timestamp?.toISOString(),\n metadataKeyCount: countRecordKeys(event.metadata),\n },\n tokenUsage: summarizeUsage(event.usage),\n outputSummary: {\n contentPartCount: event.content.length,\n textLength: event.text.length,\n reasoningPartCount: event.reasoning.length,\n fileCount: event.files.length,\n sourceCount: event.sources.length,\n },\n });\n });\n }\n\n async onToolCallStart(event: OnToolCallStartEvent): Promise<void> {\n await this.handleLifecycle(\"onToolCallStart\", async () => {\n const run = this.getActiveRun(\"onToolCallStart\");\n if (!run) return;\n const startedAt = nowIso();\n const eventId = createId(\"event\");\n const toolCall = event.toolCall;\n const step = event.stepNumber === undefined ? undefined : run.steps.get(event.stepNumber);\n const parentId = step?.eventId ?? run.eventId;\n if (event.stepNumber === undefined || !step) {\n this.recordLifecycleWarning(\n \"onToolCallStart attached tool to run because the AI SDK callback did not expose a matching active step.\",\n );\n }\n run.tools.set(toolCall.toolCallId, {\n eventId,\n parentId,\n startedAt,\n toolName: toolCall.toolName,\n });\n\n await this.write({\n schemaVersion: \"0.2\",\n eventId,\n runId: run.runId,\n parentId,\n kind: \"TOOL\",\n name: toolCall.toolName,\n status: \"running\",\n timestamp: startedAt,\n startedAt,\n confidence: \"explicit\",\n source: AI_SDK_SOURCE,\n attributes: {\n legacyEvent: \"step_started\",\n stepId: eventId,\n ...summarizeModel(event.model),\n functionId: event.functionId,\n stepNumber: event.stepNumber,\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n dynamic: toolCall.dynamic === true,\n invalid: toolCall.invalid === true,\n providerExecuted: toolCall.providerExecuted === true,\n messageCount: event.messages.length,\n metadataKeyCount: countRecordKeys(event.metadata),\n providerMetadataKeyCount: countRecordKeys(toolCall.providerMetadata),\n toolMetadataKeyCount: countRecordKeys(toolCall.toolMetadata),\n },\n inputSummary: summarizeUnknown(toolCall.input),\n error: toolCall.invalid ? summarizeError(toolCall.error) : undefined,\n });\n });\n }\n\n async onToolCallFinish(event: OnToolCallFinishEvent): Promise<void> {\n await this.handleLifecycle(\"onToolCallFinish\", async () => {\n const run = this.getActiveRun(\"onToolCallFinish\");\n if (!run) return;\n const endedAt = nowIso();\n const toolCall = event.toolCall;\n const activeTool = run.tools.get(toolCall.toolCallId);\n if (!activeTool) {\n this.recordLifecycleWarning(\n `onToolCallFinish ignored because tool call ${toolCall.toolCallId} has no matching start callback.`,\n );\n return;\n }\n\n await this.write({\n schemaVersion: \"0.2\",\n eventId: activeTool.eventId,\n runId: run.runId,\n parentId: activeTool.parentId,\n kind: \"TOOL\",\n name: activeTool.toolName,\n status: event.success ? \"ok\" : \"error\",\n timestamp: endedAt,\n startedAt: activeTool.startedAt,\n endedAt,\n durationMs: event.durationMs,\n confidence: \"explicit\",\n source: AI_SDK_SOURCE,\n attributes: {\n legacyEvent: \"step_completed\",\n stepId: activeTool.eventId,\n ...summarizeModel(event.model),\n functionId: event.functionId,\n stepNumber: event.stepNumber,\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n dynamic: toolCall.dynamic === true,\n invalid: toolCall.invalid === true,\n providerExecuted: toolCall.providerExecuted === true,\n messageCount: event.messages.length,\n metadataKeyCount: countRecordKeys(event.metadata),\n providerMetadataKeyCount: countRecordKeys(toolCall.providerMetadata),\n toolMetadataKeyCount: countRecordKeys(toolCall.toolMetadata),\n },\n outputSummary: event.success ? summarizeUnknown(event.output) : undefined,\n error: event.success ? undefined : summarizeError(event.error),\n });\n });\n }\n\n async onFinish(event: OnFinishEvent): Promise<void> {\n await this.handleLifecycle(\"onFinish\", async () => {\n if (this.suspendedReason) {\n this.suspendedReason = undefined;\n return;\n }\n const run = this.getActiveRun(\"onFinish\");\n if (!run) return;\n const endedAt = nowIso();\n\n await this.write({\n schemaVersion: \"0.2\",\n eventId: run.eventId,\n runId: run.runId,\n kind: \"RUN\",\n name: run.name,\n status: \"ok\",\n timestamp: endedAt,\n startedAt: run.startedAt,\n endedAt,\n durationMs: durationMs(run.startedAt, endedAt),\n confidence: \"explicit\",\n source: AI_SDK_SOURCE,\n attributes: {\n legacyEvent: \"run_completed\",\n ...summarizeModel(event.model ?? run.model),\n functionId: event.functionId,\n ...summarizeFinishReason(event.finishReason),\n stepCount: event.steps.length,\n warningCount: event.warnings?.length ?? 0,\n toolCallCount: event.toolCalls.length,\n toolResultCount: event.toolResults.length,\n metadataKeyCount: countRecordKeys(event.metadata),\n },\n tokenUsage: summarizeUsage(event.totalUsage),\n outputSummary: {\n contentPartCount: event.content.length,\n textLength: event.text.length,\n reasoningPartCount: event.reasoning.length,\n fileCount: event.files.length,\n sourceCount: event.sources.length,\n },\n });\n\n this.activeRun = undefined;\n });\n }\n\n getWriterStats(): TraceWriterStats | undefined {\n return this.writer?.getStats?.();\n }\n\n async flush(): Promise<void> {\n try {\n await this.writer?.flush?.();\n } catch (error) {\n this.diagnostics.flushFailures += 1;\n this.diagnostics.lastError = normalizeError(error);\n }\n }\n\n async close(): Promise<void> {\n try {\n await this.writer?.close?.();\n } catch (error) {\n this.diagnostics.closeFailures += 1;\n this.diagnostics.lastError = normalizeError(error);\n } finally {\n this.activeRun = undefined;\n this.suspendedReason = undefined;\n }\n }\n\n private getActiveRun(callbackName: string): ActiveRun | undefined {\n if (this.suspendedReason) {\n this.recordLifecycleWarning(\n `${callbackName} ignored while integration is suspended: ${this.suspendedReason}`,\n );\n return undefined;\n }\n if (this.activeRun) return this.activeRun;\n\n this.recordLifecycleWarning(\n `${callbackName} ignored because no active AI SDK generation was started.`,\n );\n return undefined;\n }\n\n private async handleLifecycle(\n callbackName: string,\n run: () => Promise<void>,\n ): Promise<void> {\n try {\n await run();\n } catch (error) {\n this.recordLifecycleWarning(`${callbackName}: ${normalizeError(error)}`);\n }\n }\n\n private recordLifecycleWarning(message: string): void {\n this.diagnostics.lifecycleWarnings += 1;\n this.diagnostics.lastWarning = message;\n }\n\n private recordCaptureOptionWarnings(): void {\n const previewOnlyOptions: string[] = [];\n if (this.requestedCapture === \"preview\") previewOnlyOptions.push(\"capture\");\n if (this.options.redactionProfile !== undefined) previewOnlyOptions.push(\"redactionProfile\");\n if (this.options.maxPreviewChars !== undefined) previewOnlyOptions.push(\"maxPreviewChars\");\n\n if (this.requestedCapture === \"preview\") {\n this.recordLifecycleWarning(\n `AI SDK preview capture is not supported yet; falling back to metadata-only capture. Unsupported options: ${previewOnlyOptions.join(\", \")}.`,\n );\n return;\n }\n\n if (previewOnlyOptions.length > 0) {\n this.recordLifecycleWarning(\n `AI SDK preview-only options have no effect in metadata-only capture: ${previewOnlyOptions.join(\", \")}.`,\n );\n }\n }\n\n private async write(event: PersistedInspectEvent): Promise<void> {\n if (!this.writer) return;\n\n try {\n await this.writer.write(event);\n } catch (error) {\n this.diagnostics.writeFailures += 1;\n this.diagnostics.lastError = normalizeError(error);\n }\n }\n}\n\n/**\n * Create an AgentInspect telemetry integration for the Vercel AI SDK.\n *\n * @experimental The adapter maps metadata-only generation, LLM step, and tool\n * lifecycle events. Keep AI SDK telemetry configured with\n * `recordInputs: false` and `recordOutputs: false`.\n */\nexport function agentInspect(\n options: AgentInspectAiSdkOptions = {},\n): AgentInspectAiSdkIntegration {\n const integration = new AgentInspectAiSdkTelemetryIntegration(options);\n return {\n ...bindTelemetryIntegration(integration),\n getDiagnostics: () => integration.getDiagnostics(),\n getWriterStats: () => integration.getWriterStats(),\n flush: () => integration.flush(),\n close: () => integration.close(),\n };\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-inspect/ai-sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Optional Vercel AI SDK telemetry integration for AgentInspect local traces",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"ai": "^6.0.0"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"agent-inspect": "1.
|
|
39
|
+
"agent-inspect": "1.8.0"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"ai": "^6.0.210"
|