@anvia/otel 0.1.5 → 0.2.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.d.ts +1 -1
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {\n type AgentGenerationEndArgs,\n type AgentGenerationErrorArgs,\n type AgentGenerationObserver,\n type AgentGenerationStartArgs,\n type AgentObserver,\n type AgentRunEndArgs,\n type AgentRunErrorArgs,\n type AgentRunObserver,\n type AgentRunStartArgs,\n type AgentToolEndArgs,\n type AgentToolErrorArgs,\n type AgentToolObserver,\n type AgentToolStartArgs,\n type AgentToolStreamEventArgs,\n type AgentTraceInfo,\n textFromAssistantContent,\n} from \"@anvia/core\";\nimport {\n type Attributes,\n type Context,\n context,\n ROOT_CONTEXT,\n type Span,\n SpanKind,\n SpanStatusCode,\n TraceFlags,\n type Tracer,\n trace,\n} from \"@opentelemetry/api\";\n\nexport type OtelTracingOptions = {\n tracer?: Tracer | undefined;\n tracerName?: string | undefined;\n tracerVersion?: string | undefined;\n serviceName?: string | undefined;\n};\n\nexport type OtelTracing = AgentObserver;\n\nexport const otel = {\n create(options: OtelTracingOptions = {}): OtelTracing {\n return new OtelAgentObserver(options);\n },\n};\n\nclass OtelAgentObserver implements OtelTracing {\n private readonly tracer: Tracer;\n private readonly serviceName: string | undefined;\n\n constructor(options: OtelTracingOptions) {\n this.tracer =\n options.tracer ??\n trace.getTracer(\n emptyToUndefined(options.tracerName) ?? \"@anvia/otel\",\n emptyToUndefined(options.tracerVersion),\n );\n this.serviceName = emptyToUndefined(options.serviceName);\n }\n\n startRun(args: AgentRunStartArgs): AgentRunObserver {\n const parentContext = parentContextFromTraceId(args.trace?.traceId);\n const root = this.tracer.startSpan(\n rootSpanName(args),\n {\n kind: SpanKind.INTERNAL,\n attributes: runStartAttributes(args, this.serviceName),\n },\n parentContext,\n );\n\n return new OtelRunObserver(this.tracer, root);\n }\n}\n\nclass OtelRunObserver implements AgentRunObserver {\n readonly trace: AgentTraceInfo;\n private readonly rootContext: Context;\n\n constructor(\n private readonly tracer: Tracer,\n private readonly root: Span,\n ) {\n const spanContext = root.spanContext();\n this.trace = {\n traceId: spanContext.traceId,\n observationId: spanContext.spanId,\n };\n this.rootContext = trace.setSpan(ROOT_CONTEXT, root);\n }\n\n startGeneration(args: AgentGenerationStartArgs): AgentGenerationObserver {\n const generation = this.tracer.startSpan(\n `model.turn.${args.turn}`,\n {\n kind: SpanKind.CLIENT,\n attributes: generationStartAttributes(args),\n },\n this.rootContext,\n );\n return new OtelGenerationObserver(generation);\n }\n\n startTool(args: AgentToolStartArgs): AgentToolObserver {\n const tool = this.tracer.startSpan(\n `tool.${args.toolName}`,\n {\n kind: SpanKind.INTERNAL,\n attributes: toolStartAttributes(args),\n },\n this.rootContext,\n );\n return new OtelToolObserver(this.tracer, tool);\n }\n\n end(args: AgentRunEndArgs): void {\n this.root.setAttributes(runEndAttributes(args));\n this.root.setStatus({ code: SpanStatusCode.OK });\n this.root.end();\n }\n\n error(args: AgentRunErrorArgs): void {\n recordSpanError(this.root, args.error);\n this.root.setAttributes(runErrorAttributes(args));\n this.root.end();\n }\n}\n\nclass OtelGenerationObserver implements AgentGenerationObserver {\n constructor(private readonly generation: Span) {}\n\n end(args: AgentGenerationEndArgs): void {\n this.generation.setAttributes(generationEndAttributes(args));\n this.generation.setStatus({ code: SpanStatusCode.OK });\n this.generation.end();\n }\n\n error(args: AgentGenerationErrorArgs): void {\n recordSpanError(this.generation, args.error);\n this.generation.setAttributes({\n \"anvia.generation.turn\": args.turn,\n });\n this.generation.end();\n }\n}\n\nclass OtelToolObserver implements AgentToolObserver {\n private readonly childAgents = new Map<string, Span>();\n private readonly childGenerations = new Map<string, Span>();\n private readonly childTools: Array<{\n agentId: string;\n toolName: string;\n toolCallId?: string;\n span: Span;\n ended: boolean;\n }> = [];\n private readonly toolContext: Context;\n\n constructor(\n private readonly tracer: Tracer,\n private readonly tool: Span,\n ) {\n this.toolContext = trace.setSpan(ROOT_CONTEXT, tool);\n }\n\n streamEvent(args: AgentToolStreamEventArgs): void {\n const wrapper = args.event;\n const child = isRecord(wrapper.event) ? wrapper.event : undefined;\n if (child === undefined) {\n return;\n }\n\n const agentId = wrapper.agentId;\n const agentName = wrapper.agentName;\n const childTurn = typeof child.turn === \"number\" ? child.turn : args.turn;\n const agent = this.childAgent(agentId, agentName, args);\n\n if (child.type === \"turn_start\") {\n const generation = this.tracer.startSpan(\n `${agentLabel(agentId, agentName)}.model.turn.${childTurn}`,\n {\n kind: SpanKind.CLIENT,\n attributes: compactAttributes({\n \"anvia.child_agent.id\": agentId,\n \"anvia.child_agent.name\": agentName,\n \"anvia.child_agent.turn\": childTurn,\n \"anvia.parent_tool.name\": args.toolName,\n \"anvia.parent_tool.internal_call_id\": args.internalCallId,\n \"anvia.parent_tool.call_id\": args.toolCallId,\n \"anvia.generation.input\": jsonString({\n prompt: child.prompt,\n history: child.history,\n }),\n }),\n },\n trace.setSpan(ROOT_CONTEXT, agent),\n );\n this.childGenerations.set(generationKey(agentId, childTurn), generation);\n return;\n }\n\n if (child.type === \"turn_end\") {\n const generation = this.childGenerations.get(generationKey(agentId, childTurn));\n if (generation !== undefined) {\n generation.setAttributes(\n compactAttributes({\n \"anvia.child_agent.id\": agentId,\n \"anvia.child_agent.name\": agentName,\n \"anvia.child_agent.turn\": childTurn,\n \"anvia.generation.output\": jsonString(child.response),\n ...(isRecord(child.response) && isRecord(child.response.usage)\n ? usageAttributesFromRecord(child.response.usage)\n : {}),\n }),\n );\n generation.setStatus({ code: SpanStatusCode.OK });\n generation.end();\n this.childGenerations.delete(generationKey(agentId, childTurn));\n }\n return;\n }\n\n if (child.type === \"tool_call\" && isRecord(child.toolCall)) {\n const toolCall = child.toolCall;\n const toolCallFunction = isRecord(toolCall.function) ? toolCall.function : undefined;\n const toolName = typeof toolCallFunction?.name === \"string\" ? toolCallFunction.name : \"tool\";\n const toolCallId =\n typeof toolCall.callId === \"string\"\n ? toolCall.callId\n : typeof toolCall.id === \"string\"\n ? toolCall.id\n : undefined;\n const span = this.tracer.startSpan(\n `${agentLabel(agentId, agentName)}.${toolName}`,\n {\n kind: SpanKind.INTERNAL,\n attributes: compactAttributes({\n \"anvia.child_agent.id\": agentId,\n \"anvia.child_agent.name\": agentName,\n \"anvia.child_agent.turn\": childTurn,\n \"anvia.tool.name\": toolName,\n \"anvia.tool.call_id\": toolCallId,\n \"anvia.tool.args\": jsonString(toolCallFunction?.arguments ?? {}),\n \"anvia.parent_tool.name\": args.toolName,\n \"anvia.parent_tool.internal_call_id\": args.internalCallId,\n \"anvia.parent_tool.call_id\": args.toolCallId,\n }),\n },\n trace.setSpan(ROOT_CONTEXT, agent),\n );\n this.childTools.push({\n agentId,\n toolName,\n ...(toolCallId === undefined ? {} : { toolCallId }),\n span,\n ended: false,\n });\n return;\n }\n\n if (child.type === \"tool_result\") {\n const toolName = typeof child.toolName === \"string\" ? child.toolName : \"tool\";\n const toolCallId = typeof child.toolCallId === \"string\" ? child.toolCallId : undefined;\n const span = this.findChildTool(agentId, toolName, toolCallId);\n if (span !== undefined) {\n span.ended = true;\n span.span.setAttributes(\n compactAttributes({\n \"anvia.child_agent.id\": agentId,\n \"anvia.child_agent.name\": agentName,\n \"anvia.child_agent.turn\": childTurn,\n \"anvia.tool.name\": toolName,\n \"anvia.tool.call_id\": toolCallId,\n \"anvia.tool.internal_call_id\":\n typeof child.internalCallId === \"string\" ? child.internalCallId : undefined,\n \"anvia.tool.args\": typeof child.args === \"string\" ? child.args : undefined,\n \"anvia.tool.result\": typeof child.result === \"string\" ? child.result : undefined,\n }),\n );\n span.span.setStatus({ code: SpanStatusCode.OK });\n span.span.end();\n }\n return;\n }\n\n if (child.type === \"final\") {\n agent.setAttributes(\n compactAttributes({\n \"anvia.child_agent.output\": typeof child.output === \"string\" ? child.output : undefined,\n \"anvia.child_agent.messages\": jsonString(child.messages),\n ...(isRecord(child.usage) ? usageAttributesFromRecord(child.usage) : {}),\n }),\n );\n agent.setStatus({ code: SpanStatusCode.OK });\n agent.end();\n this.childAgents.delete(agentId);\n return;\n }\n\n if (child.type === \"error\") {\n recordSpanError(agent, child.error);\n agent.end();\n this.childAgents.delete(agentId);\n }\n }\n\n end(args: AgentToolEndArgs): void {\n this.endOpenChildren();\n this.tool.setAttributes(toolEndAttributes(args));\n this.tool.setStatus({ code: SpanStatusCode.OK });\n this.tool.end();\n }\n\n error(args: AgentToolErrorArgs): void {\n this.endOpenChildren();\n recordSpanError(this.tool, args.error);\n this.tool.setAttributes(toolErrorAttributes(args));\n this.tool.end();\n }\n\n private childAgent(\n agentId: string,\n agentName: string | undefined,\n args: AgentToolStartArgs,\n ): Span {\n const existing = this.childAgents.get(agentId);\n if (existing !== undefined) {\n return existing;\n }\n const span = this.tracer.startSpan(\n `${agentLabel(agentId, agentName)}.run`,\n {\n kind: SpanKind.INTERNAL,\n attributes: compactAttributes({\n \"anvia.child_agent.id\": agentId,\n \"anvia.child_agent.name\": agentName,\n \"anvia.parent_tool.name\": args.toolName,\n \"anvia.parent_tool.internal_call_id\": args.internalCallId,\n \"anvia.parent_tool.call_id\": args.toolCallId,\n }),\n },\n this.toolContext,\n );\n this.childAgents.set(agentId, span);\n return span;\n }\n\n private findChildTool(\n agentId: string,\n toolName: string,\n toolCallId: string | undefined,\n ): (typeof this.childTools)[number] | undefined {\n for (let index = this.childTools.length - 1; index >= 0; index -= 1) {\n const childTool = this.childTools[index];\n if (\n childTool === undefined ||\n childTool.ended ||\n childTool.agentId !== agentId ||\n childTool.toolName !== toolName\n ) {\n continue;\n }\n if (toolCallId === undefined || childTool.toolCallId === toolCallId) {\n return childTool;\n }\n }\n return undefined;\n }\n\n private endOpenChildren(): void {\n for (const generation of this.childGenerations.values()) {\n generation.end();\n }\n this.childGenerations.clear();\n for (const tool of this.childTools) {\n if (!tool.ended) {\n tool.span.end();\n tool.ended = true;\n }\n }\n for (const agent of this.childAgents.values()) {\n agent.end();\n }\n this.childAgents.clear();\n }\n}\n\nfunction rootSpanName(args: AgentRunStartArgs): string {\n return args.agentName === undefined || args.agentName.length === 0\n ? \"agent.run\"\n : `agent.${args.agentName}`;\n}\n\nfunction runStartAttributes(args: AgentRunStartArgs, serviceName: string | undefined): Attributes {\n return compactAttributes({\n \"service.name\": serviceName,\n \"anvia.agent.name\": args.agentName,\n \"anvia.agent.description\": args.agentDescription,\n \"anvia.agent.instructions\": args.instructions,\n \"anvia.run.max_turns\": args.maxTurns,\n \"anvia.run.prompt\": jsonString(args.prompt),\n \"anvia.run.history\": jsonString(args.history),\n \"anvia.trace.name\": args.trace?.name ?? args.agentName,\n \"anvia.trace.user_id\": args.trace?.userId,\n \"anvia.trace.session_id\": args.trace?.sessionId,\n \"anvia.trace.tags\": args.trace?.tags,\n \"anvia.trace.version\": args.trace?.version,\n ...metadataAttributes(\"anvia.trace.metadata\", args.trace?.metadata),\n });\n}\n\nfunction runEndAttributes(args: AgentRunEndArgs): Attributes {\n return compactAttributes({\n \"anvia.run.output\": args.output,\n \"anvia.run.messages\": jsonString(args.messages),\n ...usageAttributes(args.usage),\n });\n}\n\nfunction runErrorAttributes(args: AgentRunErrorArgs): Attributes {\n return compactAttributes({\n \"anvia.run.error\": errorMessage(args.error),\n \"anvia.run.messages\": jsonString(args.messages),\n ...usageAttributes(args.usage),\n });\n}\n\nfunction generationStartAttributes(args: AgentGenerationStartArgs): Attributes {\n const params = modelParameters(args.request);\n return compactAttributes({\n \"anvia.generation.turn\": args.turn,\n \"anvia.generation.input\": jsonString(args.request.chatHistory),\n \"anvia.generation.model\": args.request.model ?? \"default\",\n \"anvia.generation.tool_count\": args.request.tools.length,\n \"anvia.generation.has_output_schema\": args.request.outputSchema !== undefined,\n ...params,\n });\n}\n\nfunction generationEndAttributes(args: AgentGenerationEndArgs): Attributes {\n return compactAttributes({\n \"anvia.generation.turn\": args.turn,\n \"anvia.generation.message_id\": args.response.messageId,\n \"anvia.generation.output\": jsonString(args.response.choice),\n \"anvia.generation.output_text\": textFromAssistantContent(args.response.choice),\n \"anvia.generation.first_delta_ms\": args.firstDeltaMs,\n ...usageAttributes(args.response.usage),\n });\n}\n\nfunction toolStartAttributes(args: AgentToolStartArgs): Attributes {\n return compactAttributes({\n \"anvia.tool.name\": args.toolName,\n \"anvia.tool.turn\": args.turn,\n \"anvia.tool.args\": args.args,\n \"anvia.tool.call\": jsonString(args.toolCall),\n \"anvia.tool.internal_call_id\": args.internalCallId,\n \"anvia.tool.call_id\": args.toolCallId,\n });\n}\n\nfunction toolEndAttributes(args: AgentToolEndArgs): Attributes {\n return compactAttributes({\n \"anvia.tool.name\": args.toolName,\n \"anvia.tool.turn\": args.turn,\n \"anvia.tool.result\": args.result,\n \"anvia.tool.skipped\": args.skipped,\n \"anvia.tool.internal_call_id\": args.internalCallId,\n \"anvia.tool.call_id\": args.toolCallId,\n });\n}\n\nfunction toolErrorAttributes(args: AgentToolErrorArgs): Attributes {\n return compactAttributes({\n \"anvia.tool.name\": args.toolName,\n \"anvia.tool.turn\": args.turn,\n \"anvia.tool.error\": errorMessage(args.error),\n \"anvia.tool.internal_call_id\": args.internalCallId,\n \"anvia.tool.call_id\": args.toolCallId,\n });\n}\n\nfunction usageAttributes(usage: AgentRunEndArgs[\"usage\"]): Attributes {\n return {\n \"anvia.usage.input_tokens\": usage.inputTokens,\n \"anvia.usage.output_tokens\": usage.outputTokens,\n \"anvia.usage.total_tokens\": usage.totalTokens,\n \"anvia.usage.cached_input_tokens\": usage.cachedInputTokens,\n \"anvia.usage.cache_creation_input_tokens\": usage.cacheCreationInputTokens,\n };\n}\n\nfunction usageAttributesFromRecord(usage: Record<string, unknown>): Attributes {\n return compactAttributes({\n \"anvia.usage.input_tokens\": numberValue(usage.inputTokens),\n \"anvia.usage.output_tokens\": numberValue(usage.outputTokens),\n \"anvia.usage.total_tokens\": numberValue(usage.totalTokens),\n \"anvia.usage.cached_input_tokens\": numberValue(usage.cachedInputTokens),\n \"anvia.usage.cache_creation_input_tokens\": numberValue(usage.cacheCreationInputTokens),\n });\n}\n\nfunction modelParameters(\n request: AgentGenerationStartArgs[\"request\"],\n): Record<string, string | number | undefined> {\n return {\n \"anvia.generation.temperature\": request.temperature,\n \"anvia.generation.max_tokens\": request.maxTokens,\n \"anvia.generation.tool_choice\":\n request.toolChoice === undefined\n ? undefined\n : typeof request.toolChoice === \"string\"\n ? request.toolChoice\n : request.toolChoice.name,\n };\n}\n\nfunction metadataAttributes(\n prefix: string,\n metadata: Record<string, unknown> | undefined,\n): Attributes {\n const attributes: Attributes = {};\n for (const [key, value] of Object.entries(metadata ?? {})) {\n const serialized = serializeMetadataValue(value);\n if (serialized !== undefined) {\n attributes[`${prefix}.${key}`] = serialized;\n }\n }\n return attributes;\n}\n\nfunction compactAttributes(values: Record<string, Attributes[string]>): Attributes {\n return Object.fromEntries(\n Object.entries(values).filter((entry): entry is [string, NonNullable<Attributes[string]>] => {\n const [, value] = entry;\n return value !== undefined;\n }),\n );\n}\n\nfunction parentContextFromTraceId(traceId: string | undefined): Context {\n if (!isValidTraceId(traceId)) {\n return context.active();\n }\n return trace.setSpanContext(ROOT_CONTEXT, {\n traceId,\n spanId: \"0000000000000001\",\n traceFlags: TraceFlags.SAMPLED,\n isRemote: true,\n });\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction numberValue(value: unknown): number | undefined {\n return typeof value === \"number\" ? value : undefined;\n}\n\nfunction generationKey(agentId: string, turn: number): string {\n return `${agentId}:${turn}`;\n}\n\nfunction agentLabel(agentId: string, agentName: string | undefined): string {\n return (agentName ?? agentId).replaceAll(/\\s+/g, \"_\");\n}\n\nfunction isValidTraceId(traceId: string | undefined): traceId is string {\n return (\n traceId !== undefined &&\n /^[0-9a-f]{32}$/i.test(traceId) &&\n traceId !== \"00000000000000000000000000000000\"\n );\n}\n\nfunction recordSpanError(span: Span, error: unknown): void {\n span.recordException(error instanceof Error ? error : errorMessage(error));\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: errorMessage(error),\n });\n}\n\nfunction jsonString(value: unknown): string {\n try {\n return JSON.stringify(value);\n } catch {\n return \"<failed to serialize>\";\n }\n}\n\nfunction serializeMetadataValue(value: unknown): string | undefined {\n if (value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n return value;\n }\n return jsonString(value);\n}\n\nfunction emptyToUndefined(value: string | undefined): string | undefined {\n return value === undefined || value.length === 0 ? undefined : value;\n}\n\nfunction errorMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { textFromAssistantContent } from \"@anvia/core/completion\";\nimport type {\n AgentGenerationEndArgs,\n AgentGenerationErrorArgs,\n AgentGenerationObserver,\n AgentGenerationStartArgs,\n AgentObserver,\n AgentRunEndArgs,\n AgentRunErrorArgs,\n AgentRunObserver,\n AgentRunStartArgs,\n AgentToolEndArgs,\n AgentToolErrorArgs,\n AgentToolObserver,\n AgentToolStartArgs,\n AgentToolStreamEventArgs,\n AgentTraceInfo,\n} from \"@anvia/core/observability\";\nimport {\n type Attributes,\n type Context,\n context,\n ROOT_CONTEXT,\n type Span,\n SpanKind,\n SpanStatusCode,\n TraceFlags,\n type Tracer,\n trace,\n} from \"@opentelemetry/api\";\n\nexport type OtelTracingOptions = {\n tracer?: Tracer | undefined;\n tracerName?: string | undefined;\n tracerVersion?: string | undefined;\n serviceName?: string | undefined;\n};\n\nexport type OtelTracing = AgentObserver;\n\nexport const otel = {\n create(options: OtelTracingOptions = {}): OtelTracing {\n return new OtelAgentObserver(options);\n },\n};\n\nclass OtelAgentObserver implements OtelTracing {\n private readonly tracer: Tracer;\n private readonly serviceName: string | undefined;\n\n constructor(options: OtelTracingOptions) {\n this.tracer =\n options.tracer ??\n trace.getTracer(\n emptyToUndefined(options.tracerName) ?? \"@anvia/otel\",\n emptyToUndefined(options.tracerVersion),\n );\n this.serviceName = emptyToUndefined(options.serviceName);\n }\n\n startRun(args: AgentRunStartArgs): AgentRunObserver {\n const parentContext = parentContextFromTraceId(args.trace?.traceId);\n const root = this.tracer.startSpan(\n rootSpanName(args),\n {\n kind: SpanKind.INTERNAL,\n attributes: runStartAttributes(args, this.serviceName),\n },\n parentContext,\n );\n\n return new OtelRunObserver(this.tracer, root);\n }\n}\n\nclass OtelRunObserver implements AgentRunObserver {\n readonly trace: AgentTraceInfo;\n private readonly rootContext: Context;\n\n constructor(\n private readonly tracer: Tracer,\n private readonly root: Span,\n ) {\n const spanContext = root.spanContext();\n this.trace = {\n traceId: spanContext.traceId,\n observationId: spanContext.spanId,\n };\n this.rootContext = trace.setSpan(ROOT_CONTEXT, root);\n }\n\n startGeneration(args: AgentGenerationStartArgs): AgentGenerationObserver {\n const generation = this.tracer.startSpan(\n `model.turn.${args.turn}`,\n {\n kind: SpanKind.CLIENT,\n attributes: generationStartAttributes(args),\n },\n this.rootContext,\n );\n return new OtelGenerationObserver(generation);\n }\n\n startTool(args: AgentToolStartArgs): AgentToolObserver {\n const tool = this.tracer.startSpan(\n `tool.${args.toolName}`,\n {\n kind: SpanKind.INTERNAL,\n attributes: toolStartAttributes(args),\n },\n this.rootContext,\n );\n return new OtelToolObserver(this.tracer, tool);\n }\n\n end(args: AgentRunEndArgs): void {\n this.root.setAttributes(runEndAttributes(args));\n this.root.setStatus({ code: SpanStatusCode.OK });\n this.root.end();\n }\n\n error(args: AgentRunErrorArgs): void {\n recordSpanError(this.root, args.error);\n this.root.setAttributes(runErrorAttributes(args));\n this.root.end();\n }\n}\n\nclass OtelGenerationObserver implements AgentGenerationObserver {\n constructor(private readonly generation: Span) {}\n\n end(args: AgentGenerationEndArgs): void {\n this.generation.setAttributes(generationEndAttributes(args));\n this.generation.setStatus({ code: SpanStatusCode.OK });\n this.generation.end();\n }\n\n error(args: AgentGenerationErrorArgs): void {\n recordSpanError(this.generation, args.error);\n this.generation.setAttributes({\n \"anvia.generation.turn\": args.turn,\n });\n this.generation.end();\n }\n}\n\nclass OtelToolObserver implements AgentToolObserver {\n private readonly childAgents = new Map<string, Span>();\n private readonly childGenerations = new Map<string, Span>();\n private readonly childTools: Array<{\n agentId: string;\n toolName: string;\n toolCallId?: string;\n span: Span;\n ended: boolean;\n }> = [];\n private readonly toolContext: Context;\n\n constructor(\n private readonly tracer: Tracer,\n private readonly tool: Span,\n ) {\n this.toolContext = trace.setSpan(ROOT_CONTEXT, tool);\n }\n\n streamEvent(args: AgentToolStreamEventArgs): void {\n const wrapper = args.event;\n const child = isRecord(wrapper.event) ? wrapper.event : undefined;\n if (child === undefined) {\n return;\n }\n\n const agentId = wrapper.agentId;\n const agentName = wrapper.agentName;\n const childTurn = typeof child.turn === \"number\" ? child.turn : args.turn;\n const agent = this.childAgent(agentId, agentName, args);\n\n if (child.type === \"turn_start\") {\n const generation = this.tracer.startSpan(\n `${agentLabel(agentId, agentName)}.model.turn.${childTurn}`,\n {\n kind: SpanKind.CLIENT,\n attributes: compactAttributes({\n \"anvia.child_agent.id\": agentId,\n \"anvia.child_agent.name\": agentName,\n \"anvia.child_agent.turn\": childTurn,\n \"anvia.parent_tool.name\": args.toolName,\n \"anvia.parent_tool.internal_call_id\": args.internalCallId,\n \"anvia.parent_tool.call_id\": args.toolCallId,\n \"anvia.generation.input\": jsonString({\n prompt: child.prompt,\n history: child.history,\n }),\n }),\n },\n trace.setSpan(ROOT_CONTEXT, agent),\n );\n this.childGenerations.set(generationKey(agentId, childTurn), generation);\n return;\n }\n\n if (child.type === \"turn_end\") {\n const generation = this.childGenerations.get(generationKey(agentId, childTurn));\n if (generation !== undefined) {\n generation.setAttributes(\n compactAttributes({\n \"anvia.child_agent.id\": agentId,\n \"anvia.child_agent.name\": agentName,\n \"anvia.child_agent.turn\": childTurn,\n \"anvia.generation.output\": jsonString(child.response),\n ...(isRecord(child.response) && isRecord(child.response.usage)\n ? usageAttributesFromRecord(child.response.usage)\n : {}),\n }),\n );\n generation.setStatus({ code: SpanStatusCode.OK });\n generation.end();\n this.childGenerations.delete(generationKey(agentId, childTurn));\n }\n return;\n }\n\n if (child.type === \"tool_call\" && isRecord(child.toolCall)) {\n const toolCall = child.toolCall;\n const toolCallFunction = isRecord(toolCall.function) ? toolCall.function : undefined;\n const toolName = typeof toolCallFunction?.name === \"string\" ? toolCallFunction.name : \"tool\";\n const toolCallId =\n typeof toolCall.callId === \"string\"\n ? toolCall.callId\n : typeof toolCall.id === \"string\"\n ? toolCall.id\n : undefined;\n const span = this.tracer.startSpan(\n `${agentLabel(agentId, agentName)}.${toolName}`,\n {\n kind: SpanKind.INTERNAL,\n attributes: compactAttributes({\n \"anvia.child_agent.id\": agentId,\n \"anvia.child_agent.name\": agentName,\n \"anvia.child_agent.turn\": childTurn,\n \"anvia.tool.name\": toolName,\n \"anvia.tool.call_id\": toolCallId,\n \"anvia.tool.args\": jsonString(toolCallFunction?.arguments ?? {}),\n \"anvia.parent_tool.name\": args.toolName,\n \"anvia.parent_tool.internal_call_id\": args.internalCallId,\n \"anvia.parent_tool.call_id\": args.toolCallId,\n }),\n },\n trace.setSpan(ROOT_CONTEXT, agent),\n );\n this.childTools.push({\n agentId,\n toolName,\n ...(toolCallId === undefined ? {} : { toolCallId }),\n span,\n ended: false,\n });\n return;\n }\n\n if (child.type === \"tool_result\") {\n const toolName = typeof child.toolName === \"string\" ? child.toolName : \"tool\";\n const toolCallId = typeof child.toolCallId === \"string\" ? child.toolCallId : undefined;\n const span = this.findChildTool(agentId, toolName, toolCallId);\n if (span !== undefined) {\n span.ended = true;\n span.span.setAttributes(\n compactAttributes({\n \"anvia.child_agent.id\": agentId,\n \"anvia.child_agent.name\": agentName,\n \"anvia.child_agent.turn\": childTurn,\n \"anvia.tool.name\": toolName,\n \"anvia.tool.call_id\": toolCallId,\n \"anvia.tool.internal_call_id\":\n typeof child.internalCallId === \"string\" ? child.internalCallId : undefined,\n \"anvia.tool.args\": typeof child.args === \"string\" ? child.args : undefined,\n \"anvia.tool.result\": typeof child.result === \"string\" ? child.result : undefined,\n }),\n );\n span.span.setStatus({ code: SpanStatusCode.OK });\n span.span.end();\n }\n return;\n }\n\n if (child.type === \"final\") {\n agent.setAttributes(\n compactAttributes({\n \"anvia.child_agent.output\": typeof child.output === \"string\" ? child.output : undefined,\n \"anvia.child_agent.messages\": jsonString(child.messages),\n ...(isRecord(child.usage) ? usageAttributesFromRecord(child.usage) : {}),\n }),\n );\n agent.setStatus({ code: SpanStatusCode.OK });\n agent.end();\n this.childAgents.delete(agentId);\n return;\n }\n\n if (child.type === \"error\") {\n recordSpanError(agent, child.error);\n agent.end();\n this.childAgents.delete(agentId);\n }\n }\n\n end(args: AgentToolEndArgs): void {\n this.endOpenChildren();\n this.tool.setAttributes(toolEndAttributes(args));\n this.tool.setStatus({ code: SpanStatusCode.OK });\n this.tool.end();\n }\n\n error(args: AgentToolErrorArgs): void {\n this.endOpenChildren();\n recordSpanError(this.tool, args.error);\n this.tool.setAttributes(toolErrorAttributes(args));\n this.tool.end();\n }\n\n private childAgent(\n agentId: string,\n agentName: string | undefined,\n args: AgentToolStartArgs,\n ): Span {\n const existing = this.childAgents.get(agentId);\n if (existing !== undefined) {\n return existing;\n }\n const span = this.tracer.startSpan(\n `${agentLabel(agentId, agentName)}.run`,\n {\n kind: SpanKind.INTERNAL,\n attributes: compactAttributes({\n \"anvia.child_agent.id\": agentId,\n \"anvia.child_agent.name\": agentName,\n \"anvia.parent_tool.name\": args.toolName,\n \"anvia.parent_tool.internal_call_id\": args.internalCallId,\n \"anvia.parent_tool.call_id\": args.toolCallId,\n }),\n },\n this.toolContext,\n );\n this.childAgents.set(agentId, span);\n return span;\n }\n\n private findChildTool(\n agentId: string,\n toolName: string,\n toolCallId: string | undefined,\n ): (typeof this.childTools)[number] | undefined {\n for (let index = this.childTools.length - 1; index >= 0; index -= 1) {\n const childTool = this.childTools[index];\n if (\n childTool === undefined ||\n childTool.ended ||\n childTool.agentId !== agentId ||\n childTool.toolName !== toolName\n ) {\n continue;\n }\n if (toolCallId === undefined || childTool.toolCallId === toolCallId) {\n return childTool;\n }\n }\n return undefined;\n }\n\n private endOpenChildren(): void {\n for (const generation of this.childGenerations.values()) {\n generation.end();\n }\n this.childGenerations.clear();\n for (const tool of this.childTools) {\n if (!tool.ended) {\n tool.span.end();\n tool.ended = true;\n }\n }\n for (const agent of this.childAgents.values()) {\n agent.end();\n }\n this.childAgents.clear();\n }\n}\n\nfunction rootSpanName(args: AgentRunStartArgs): string {\n return args.agentName === undefined || args.agentName.length === 0\n ? \"agent.run\"\n : `agent.${args.agentName}`;\n}\n\nfunction runStartAttributes(args: AgentRunStartArgs, serviceName: string | undefined): Attributes {\n return compactAttributes({\n \"service.name\": serviceName,\n \"anvia.agent.name\": args.agentName,\n \"anvia.agent.description\": args.agentDescription,\n \"anvia.agent.instructions\": args.instructions,\n \"anvia.run.max_turns\": args.maxTurns,\n \"anvia.run.prompt\": jsonString(args.prompt),\n \"anvia.run.history\": jsonString(args.history),\n \"anvia.trace.name\": args.trace?.name ?? args.agentName,\n \"anvia.trace.user_id\": args.trace?.userId,\n \"anvia.trace.session_id\": args.trace?.sessionId,\n \"anvia.trace.tags\": args.trace?.tags,\n \"anvia.trace.version\": args.trace?.version,\n ...metadataAttributes(\"anvia.trace.metadata\", args.trace?.metadata),\n });\n}\n\nfunction runEndAttributes(args: AgentRunEndArgs): Attributes {\n return compactAttributes({\n \"anvia.run.output\": args.output,\n \"anvia.run.messages\": jsonString(args.messages),\n ...usageAttributes(args.usage),\n });\n}\n\nfunction runErrorAttributes(args: AgentRunErrorArgs): Attributes {\n return compactAttributes({\n \"anvia.run.error\": errorMessage(args.error),\n \"anvia.run.messages\": jsonString(args.messages),\n ...usageAttributes(args.usage),\n });\n}\n\nfunction generationStartAttributes(args: AgentGenerationStartArgs): Attributes {\n const params = modelParameters(args.request);\n return compactAttributes({\n \"anvia.generation.turn\": args.turn,\n \"anvia.generation.input\": jsonString(args.request.chatHistory),\n \"anvia.generation.model\": args.request.model ?? \"default\",\n \"anvia.generation.tool_count\": args.request.tools.length,\n \"anvia.generation.has_output_schema\": args.request.outputSchema !== undefined,\n ...params,\n });\n}\n\nfunction generationEndAttributes(args: AgentGenerationEndArgs): Attributes {\n return compactAttributes({\n \"anvia.generation.turn\": args.turn,\n \"anvia.generation.message_id\": args.response.messageId,\n \"anvia.generation.output\": jsonString(args.response.choice),\n \"anvia.generation.output_text\": textFromAssistantContent(args.response.choice),\n \"anvia.generation.first_delta_ms\": args.firstDeltaMs,\n ...usageAttributes(args.response.usage),\n });\n}\n\nfunction toolStartAttributes(args: AgentToolStartArgs): Attributes {\n return compactAttributes({\n \"anvia.tool.name\": args.toolName,\n \"anvia.tool.turn\": args.turn,\n \"anvia.tool.args\": args.args,\n \"anvia.tool.call\": jsonString(args.toolCall),\n \"anvia.tool.internal_call_id\": args.internalCallId,\n \"anvia.tool.call_id\": args.toolCallId,\n });\n}\n\nfunction toolEndAttributes(args: AgentToolEndArgs): Attributes {\n return compactAttributes({\n \"anvia.tool.name\": args.toolName,\n \"anvia.tool.turn\": args.turn,\n \"anvia.tool.result\": args.result,\n \"anvia.tool.skipped\": args.skipped,\n \"anvia.tool.internal_call_id\": args.internalCallId,\n \"anvia.tool.call_id\": args.toolCallId,\n });\n}\n\nfunction toolErrorAttributes(args: AgentToolErrorArgs): Attributes {\n return compactAttributes({\n \"anvia.tool.name\": args.toolName,\n \"anvia.tool.turn\": args.turn,\n \"anvia.tool.error\": errorMessage(args.error),\n \"anvia.tool.internal_call_id\": args.internalCallId,\n \"anvia.tool.call_id\": args.toolCallId,\n });\n}\n\nfunction usageAttributes(usage: AgentRunEndArgs[\"usage\"]): Attributes {\n return {\n \"anvia.usage.input_tokens\": usage.inputTokens,\n \"anvia.usage.output_tokens\": usage.outputTokens,\n \"anvia.usage.total_tokens\": usage.totalTokens,\n \"anvia.usage.cached_input_tokens\": usage.cachedInputTokens,\n \"anvia.usage.cache_creation_input_tokens\": usage.cacheCreationInputTokens,\n };\n}\n\nfunction usageAttributesFromRecord(usage: Record<string, unknown>): Attributes {\n return compactAttributes({\n \"anvia.usage.input_tokens\": numberValue(usage.inputTokens),\n \"anvia.usage.output_tokens\": numberValue(usage.outputTokens),\n \"anvia.usage.total_tokens\": numberValue(usage.totalTokens),\n \"anvia.usage.cached_input_tokens\": numberValue(usage.cachedInputTokens),\n \"anvia.usage.cache_creation_input_tokens\": numberValue(usage.cacheCreationInputTokens),\n });\n}\n\nfunction modelParameters(\n request: AgentGenerationStartArgs[\"request\"],\n): Record<string, string | number | undefined> {\n return {\n \"anvia.generation.temperature\": request.temperature,\n \"anvia.generation.max_tokens\": request.maxTokens,\n \"anvia.generation.tool_choice\":\n request.toolChoice === undefined\n ? undefined\n : typeof request.toolChoice === \"string\"\n ? request.toolChoice\n : request.toolChoice.name,\n };\n}\n\nfunction metadataAttributes(\n prefix: string,\n metadata: Record<string, unknown> | undefined,\n): Attributes {\n const attributes: Attributes = {};\n for (const [key, value] of Object.entries(metadata ?? {})) {\n const serialized = serializeMetadataValue(value);\n if (serialized !== undefined) {\n attributes[`${prefix}.${key}`] = serialized;\n }\n }\n return attributes;\n}\n\nfunction compactAttributes(values: Record<string, Attributes[string]>): Attributes {\n return Object.fromEntries(\n Object.entries(values).filter((entry): entry is [string, NonNullable<Attributes[string]>] => {\n const [, value] = entry;\n return value !== undefined;\n }),\n );\n}\n\nfunction parentContextFromTraceId(traceId: string | undefined): Context {\n if (!isValidTraceId(traceId)) {\n return context.active();\n }\n return trace.setSpanContext(ROOT_CONTEXT, {\n traceId,\n spanId: \"0000000000000001\",\n traceFlags: TraceFlags.SAMPLED,\n isRemote: true,\n });\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction numberValue(value: unknown): number | undefined {\n return typeof value === \"number\" ? value : undefined;\n}\n\nfunction generationKey(agentId: string, turn: number): string {\n return `${agentId}:${turn}`;\n}\n\nfunction agentLabel(agentId: string, agentName: string | undefined): string {\n return (agentName ?? agentId).replaceAll(/\\s+/g, \"_\");\n}\n\nfunction isValidTraceId(traceId: string | undefined): traceId is string {\n return (\n traceId !== undefined &&\n /^[0-9a-f]{32}$/i.test(traceId) &&\n traceId !== \"00000000000000000000000000000000\"\n );\n}\n\nfunction recordSpanError(span: Span, error: unknown): void {\n span.recordException(error instanceof Error ? error : errorMessage(error));\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: errorMessage(error),\n });\n}\n\nfunction jsonString(value: unknown): string {\n try {\n return JSON.stringify(value);\n } catch {\n return \"<failed to serialize>\";\n }\n}\n\nfunction serializeMetadataValue(value: unknown): string | undefined {\n if (value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n return value;\n }\n return jsonString(value);\n}\n\nfunction emptyToUndefined(value: string | undefined): string | undefined {\n return value === undefined || value.length === 0 ? undefined : value;\n}\n\nfunction errorMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anvia/otel",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "OpenTelemetry tracing adapter for Anvia.",
|
|
5
5
|
"author": "anvia",
|
|
6
6
|
"maintainer": "Indra Zulfi",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@opentelemetry/api": "^1.9.1",
|
|
30
|
-
"@anvia/core": "0.
|
|
30
|
+
"@anvia/core": "0.4.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/node": "^24.9.1",
|