judgeval 1.2.0 → 1.2.1

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.
@@ -34,7 +34,7 @@
34
34
  "import {\n type BaggageEntry,\n type Context,\n type TextMapGetter,\n type TextMapPropagator,\n type TextMapSetter,\n} from \"@opentelemetry/api\";\nimport { isTracingSuppressed } from \"@opentelemetry/core\";\nimport {\n BAGGAGE_HEADER,\n BAGGAGE_ITEMS_SEPARATOR,\n BAGGAGE_MAX_NAME_VALUE_PAIRS,\n BAGGAGE_MAX_PER_NAME_VALUE_PAIRS,\n} from \"./constants\";\nimport { createBaggage, getBaggage, setBaggage } from \"./index\";\nimport { getKeyPairs, parsePairKeyValue, serializeKeyPairs } from \"./utils\";\n\n/**\n * Propagates {@link Baggage} through the W3C `baggage` header.\n *\n * Implements the W3C Baggage specification: https://w3c.github.io/baggage/\n */\nexport class JudgmentBaggagePropagator implements TextMapPropagator {\n inject(context: Context, carrier: unknown, setter: TextMapSetter): void {\n const baggage = getBaggage(context);\n if (!baggage || isTracingSuppressed(context)) return;\n const keyPairs = getKeyPairs(baggage)\n .filter((pair) => pair.length <= BAGGAGE_MAX_PER_NAME_VALUE_PAIRS)\n .slice(0, BAGGAGE_MAX_NAME_VALUE_PAIRS);\n const headerValue = serializeKeyPairs(keyPairs);\n if (headerValue.length > 0) {\n setter.set(carrier, BAGGAGE_HEADER, headerValue);\n }\n }\n\n extract(context: Context, carrier: unknown, getter: TextMapGetter): Context {\n const headerValue = getter.get(carrier, BAGGAGE_HEADER);\n const baggageString = Array.isArray(headerValue)\n ? headerValue.join(BAGGAGE_ITEMS_SEPARATOR)\n : headerValue;\n if (!baggageString) return context;\n const baggage: Record<string, BaggageEntry> = {};\n if (baggageString.length === 0) return context;\n const pairs = baggageString.split(BAGGAGE_ITEMS_SEPARATOR);\n pairs.forEach((entry) => {\n const keyPair = parsePairKeyValue(entry);\n if (keyPair) {\n const baggageEntry: BaggageEntry = { value: keyPair.value };\n if (keyPair.metadata) {\n baggageEntry.metadata = keyPair.metadata;\n }\n baggage[keyPair.key] = baggageEntry;\n }\n });\n if (Object.entries(baggage).length === 0) {\n return context;\n }\n return setBaggage(context, createBaggage(baggage));\n }\n\n fields(): string[] {\n return [BAGGAGE_HEADER];\n }\n}\n",
35
35
  "import {\n type Baggage,\n type Context,\n createContextKey,\n propagation,\n} from \"@opentelemetry/api\";\nimport { getTraceRuntime } from \"../runtime\";\n\n/**\n * Judgment baggage store. Baggage is a set of key-value pairs attached\n * to a {@link Context} and automatically propagated to child spans and\n * to downstream services through the `baggage` HTTP header.\n */\n\n/** Create a new {@link Baggage}, optionally pre-populated with entries. */\nexport const createBaggage = propagation.createBaggage.bind(propagation);\n\nconst BAGGAGE_KEY = createContextKey(\"baggage\");\n\n/** Retrieve the baggage attached to the given context. */\nexport function getBaggage(context: Context): Baggage | undefined {\n return context.getValue(BAGGAGE_KEY) as Baggage | undefined;\n}\n\n/** Retrieve the baggage attached to the active context. */\nexport function getActiveBaggage(): Baggage | undefined {\n return getBaggage(getTraceRuntime().getCurrentContext());\n}\n\n/** Attach a baggage to the given context, returning a new context. */\nexport function setBaggage(context: Context, baggage: Baggage): Context {\n return context.setValue(BAGGAGE_KEY, baggage);\n}\n\n/** Remove the baggage attached to the given context, returning a new context. */\nexport function deleteBaggage(context: Context): Context {\n return context.deleteValue(BAGGAGE_KEY);\n}\n\nexport { baggageEntryMetadataFromString } from \"@opentelemetry/api\";\nexport type {\n Baggage,\n BaggageEntry,\n BaggageEntryMetadata,\n} from \"@opentelemetry/api\";\n\nexport { JudgmentBaggagePropagator } from \"./JudgmentBaggagePropagator\";\n",
36
36
  "import {\n type Context,\n defaultTextMapGetter,\n defaultTextMapSetter,\n type TextMapGetter,\n type TextMapPropagator,\n type TextMapSetter,\n} from \"@opentelemetry/api\";\nimport {\n CompositePropagator,\n W3CTraceContextPropagator,\n} from \"@opentelemetry/core\";\nimport { dontThrow } from \"../../utils/dont-throw\";\nimport { JudgmentBaggagePropagator } from \"../baggage/JudgmentBaggagePropagator\";\nimport { getTraceRuntime } from \"../runtime\";\n\n/**\n * Inject and extract trace context and baggage across service\n * boundaries through a composite W3C TraceContext + Baggage propagator.\n */\n\nlet _globalTextmap: TextMapPropagator = new CompositePropagator({\n propagators: [\n new W3CTraceContextPropagator(),\n new JudgmentBaggagePropagator(),\n ],\n});\n\n/** Return the active composite propagator (W3C TraceContext + Judgment Baggage). */\nexport function getGlobalTextmap(): TextMapPropagator {\n return _globalTextmap;\n}\n\n/** Replace the global text-map propagator. */\nexport function setGlobalTextmap(propagator: TextMapPropagator): void {\n _globalTextmap = propagator;\n}\n\nfunction _resolveContext(context?: Context): Context {\n if (context !== undefined) return context;\n return getTraceRuntime().getCurrentContext();\n}\n\n/**\n * Inject trace context and baggage into an outgoing carrier (e.g. HTTP\n * headers).\n *\n * Call this before making an outbound HTTP request to propagate the\n * current trace across service boundaries.\n *\n * @param carrier - A mutable object to write propagation headers into.\n * @param context - The context to inject. Defaults to the current\n * Judgment context.\n * @param setter - Strategy for writing values into the carrier.\n *\n * @example\n * ```typescript\n * const headers: Record<string, string> = {};\n * propagation.inject(headers);\n * await fetch(\"https://api.example.com\", { headers });\n * ```\n */\nexport function inject<Carrier>(\n carrier: Carrier,\n context?: Context,\n setter: TextMapSetter<Carrier> = defaultTextMapSetter as TextMapSetter<Carrier>,\n): void {\n dontThrow(\"propagation.inject\", () => {\n getGlobalTextmap().inject(_resolveContext(context), carrier, setter);\n });\n}\n\n/**\n * Extract trace context and baggage from an incoming carrier.\n *\n * Low-level primitive — most callers should use\n * {@link Tracer.continueTrace} instead, which extracts and installs the\n * context in one step.\n *\n * @param carrier - A mapping containing propagation headers (e.g.\n * `request.headers`).\n * @param context - Base context to merge into. Defaults to the current\n * active context.\n * @param getter - Strategy for reading values from the carrier.\n * @returns A new {@link Context} with the extracted trace and baggage\n * data.\n */\nexport function extract<Carrier>(\n carrier: Carrier,\n context?: Context,\n getter: TextMapGetter<Carrier> = defaultTextMapGetter as TextMapGetter<Carrier>,\n): Context {\n const base = _resolveContext(context);\n return dontThrow<Context>(\n \"propagation.extract\",\n () => getGlobalTextmap().extract(base, carrier, getter),\n base,\n );\n}\n",
37
- "import {\n type Attributes,\n type Context,\n INVALID_SPAN_CONTEXT,\n type Span,\n SpanStatusCode,\n type Tracer,\n} from \"@opentelemetry/api\";\nimport type { Instrumentation } from \"@opentelemetry/instrumentation\";\nimport type {\n BasicTracerProvider,\n Sampler,\n SpanLimits,\n SpanProcessor,\n} from \"@opentelemetry/sdk-trace-base\";\nimport type { OpenAI } from \"openai\";\nimport { AttributeKeys, InternalAttributeKeys } from \"../JudgmentAttributeKeys\";\nimport { wrap } from \"../instrumentation\";\nimport { JudgmentApiClient } from \"../internal/api\";\nimport type { PendingEvalPayload } from \"../internal/api/models/PendingEvalPayload\";\nimport { parseFunctionArgs } from \"../utils/annotate\";\nimport { dontThrow } from \"../utils/dont-throw\";\nimport { Logger } from \"../utils/logger\";\nimport {\n safeStringify,\n serializeAttribute,\n Serializer,\n} from \"../utils/serializer\";\nimport { Maybe } from \"../utils/type-helpers\";\nimport { createBaggage, getBaggage, setBaggage } from \"./baggage\";\nimport { extract } from \"./propagation\";\nimport type { JudgmentSpanExporter } from \"./exporters/JudgmentSpanExporter\";\nimport type { JudgmentSpanProcessor } from \"./processors/JudgmentSpanProcessor\";\nimport { getTraceRuntime, type TraceRuntime } from \"./runtime\";\n\nconst TRACER_NAME = \"judgeval\";\n\n/**\n * Metadata about an LLM call to record on a span.\n */\nexport interface LLMMetadata {\n /** Model name (e.g. \"gpt-4o\"). */\n model?: Maybe<string>;\n /** Provider name (e.g. \"openai\"). */\n provider?: Maybe<string>;\n /** Number of non-cached input tokens. */\n non_cached_input_tokens?: Maybe<number>;\n /** Number of output tokens. */\n output_tokens?: Maybe<number>;\n /** Number of cache-read input tokens. */\n cache_read_input_tokens?: Maybe<number>;\n /** Number of cache-creation input tokens. */\n cache_creation_input_tokens?: Maybe<number>;\n /** Total cost in USD. */\n total_cost_usd?: Maybe<number>;\n}\n\n/**\n * Options for {@link BaseTracer.observe}.\n */\nexport interface ObserveOptions {\n /** The span kind (e.g. `\"llm\"`, `\"tool\"`, `\"span\"`). Defaults to `\"span\"`. */\n spanType?: string;\n /** Custom span name. Defaults to the wrapped function's name. */\n spanName?: string;\n /** Whether to record function inputs as a span attribute. Defaults to `true`. */\n recordInput?: boolean;\n /** Whether to record function outputs as a span attribute. Defaults to `true`. */\n recordOutput?: boolean;\n /**\n * If `true`, run the function in a fresh linked trace instead of as a\n * child of the current trace, when an active parent span exists.\n * Defaults to `false`.\n */\n fork?: boolean;\n}\n\n/**\n * Options for {@link BaseTracer.asyncEvaluate}.\n */\nexport interface AsyncEvaluateOptions {\n /**\n * Name of the hosted judge/scorer (e.g. `\"faithfulness\"`,\n * `\"answer_relevancy\"`).\n */\n judge: string;\n /**\n * Optional dict with evaluation data. Keys like `input`, `actual_output`,\n * `expected_output`, and `retrieval_context` are commonly used.\n */\n example?: Record<string, unknown>;\n}\n\n/**\n * Configuration options for initializing a Tracer.\n *\n * Credentials are resolved in order: explicit arguments first, then\n * environment variables.\n */\nexport interface TracerConfig {\n /** Your Judgment project name. Required for span export. */\n projectName?: string;\n /** Judgment API key. Defaults to `JUDGMENT_API_KEY` env var. */\n apiKey?: string;\n /** Judgment organization ID. Defaults to `JUDGMENT_ORG_ID` env var. */\n organizationId?: string;\n /** Judgment API URL. Defaults to `JUDGMENT_API_URL` env var. */\n apiUrl?: string;\n /** Deployment environment name (e.g. \"production\"). */\n environment?: string;\n /** Whether to automatically set this tracer as active. Defaults to `true`. */\n setActive?: boolean;\n /** Custom serialization function for span attribute values. */\n serializer?: (value: unknown) => string;\n /** Additional OpenTelemetry resource attributes. */\n resourceAttributes?: Record<string, string>;\n /** Custom OpenTelemetry sampler. Defaults to the SDK's default. */\n sampler?: Sampler;\n /** Custom OpenTelemetry span limits (attribute/event/link caps). */\n spanLimits?: SpanLimits;\n /** Additional span processors to register alongside Judgment's own processor. */\n spanProcessors?: SpanProcessor[];\n}\n\n/**\n * Abstract base for all Judgment tracers.\n *\n * Provides the core tracing surface: span creation, attribute recording,\n * the `observe` decorator, context propagation for customer/session IDs,\n * tagging, and async evaluation dispatch.\n * Concrete subclasses supply the OTel TracerProvider, exporter, and\n * processor wiring.\n */\nexport abstract class BaseTracer {\n projectName: string | null;\n projectId: string | null;\n apiKey: string | null;\n organizationId: string | null;\n apiUrl: string | null;\n environment: string | null;\n serializer: Serializer;\n _tracerProvider: BasicTracerProvider;\n _client: JudgmentApiClient | null;\n _enableMonitoring: boolean;\n\n readonly supportsLiveInstrumentation: boolean = true;\n\n // ------------------------------------------------------------------ //\n // Initialization //\n // ------------------------------------------------------------------ //\n\n protected constructor(\n projectName: string | null,\n projectId: string | null,\n apiKey: string | null,\n organizationId: string | null,\n apiUrl: string | null,\n environment: string | null,\n serializer: Serializer,\n tracerProvider: BasicTracerProvider,\n client: JudgmentApiClient | null,\n enableMonitoring: boolean,\n ) {\n this.projectName = projectName;\n this.projectId = projectId;\n this.apiKey = apiKey;\n this.organizationId = organizationId;\n this.apiUrl = apiUrl;\n this.environment = environment;\n this.serializer = serializer;\n this._tracerProvider = tracerProvider;\n this._client = client;\n this._enableMonitoring = enableMonitoring;\n }\n\n /**\n * Set this tracer as the active tracer in the global provider.\n *\n * @returns `true` if activation succeeded, `false` if a root span is active.\n */\n setActive(): boolean {\n return getTraceRuntime().setActive(this);\n }\n\n // ------------------------------------------------------------------ //\n // Abstract Lifecycle //\n // ------------------------------------------------------------------ //\n\n abstract getSpanProcessor(): JudgmentSpanProcessor;\n abstract getSpanExporter(): JudgmentSpanExporter;\n\n // ------------------------------------------------------------------ //\n // Internal Helpers //\n // ------------------------------------------------------------------ //\n\n private static _getProxyProvider(): TraceRuntime {\n return getTraceRuntime();\n }\n\n private static _getSerializer(): Serializer {\n const tracer = BaseTracer._getProxyProvider().getActiveTracer();\n return tracer?.serializer ?? safeStringify;\n }\n\n private static _getCurrentTraceAndSpanId(): [string, string] | null {\n const proxy = BaseTracer._getProxyProvider();\n const currentSpan = proxy.getCurrentSpan();\n if (!currentSpan?.isRecording()) return null;\n const ctx = currentSpan.spanContext();\n if (!ctx.traceId || !(ctx.traceFlags & 0x01)) return null;\n return [ctx.traceId, ctx.spanId];\n }\n\n private static _emitPartial(): void {\n dontThrow(\"BaseTracer._emitPartial\", () => {\n const tracer = BaseTracer._getProxyProvider().getActiveTracer();\n if (!tracer || !tracer.supportsLiveInstrumentation) return;\n tracer.getSpanProcessor().emitPartial();\n });\n }\n\n // ------------------------------------------------------------------ //\n // Static API: Span Access & Lifecycle //\n // ------------------------------------------------------------------ //\n\n /**\n * Get the currently active span.\n *\n * @returns The active span, or `undefined` if none.\n */\n static getCurrentSpan(): Span | undefined {\n const proxy = BaseTracer._getProxyProvider();\n return proxy.getCurrentSpan();\n }\n\n /**\n * Flush all pending spans to the export endpoint.\n *\n * Call this before your process exits to ensure all spans are sent.\n *\n * @example\n * ```typescript\n * await Tracer.forceFlush();\n * ```\n */\n static async forceFlush(): Promise<void> {\n const proxy = BaseTracer._getProxyProvider();\n await proxy.forceFlush();\n }\n\n /**\n * Shut down the tracer and flush any pending data.\n *\n * @example\n * ```typescript\n * await Tracer.shutdown();\n * ```\n */\n static async shutdown(): Promise<void> {\n const proxy = BaseTracer._getProxyProvider();\n await proxy.shutdown();\n }\n\n /**\n * Register an OpenTelemetry instrumentation to capture spans automatically.\n *\n * @param instrumentor - The OpenTelemetry instrumentation to register.\n *\n * @example\n * ```typescript\n * import { OpenAIInstrumentation } from \"@opentelemetry/instrumentation-openai\";\n * Tracer.registerOTELInstrumentation(new OpenAIInstrumentation());\n * ```\n */\n static registerOTELInstrumentation(instrumentor: Instrumentation): void {\n dontThrow(\"BaseTracer.registerOTELInstrumentation\", () => {\n const proxy = BaseTracer._getProxyProvider();\n proxy.addInstrumentation(instrumentor);\n });\n }\n\n /**\n * Wrap a supported LLM client to add automatic tracing.\n *\n * Currently supports OpenAI clients. The client is instrumented\n * in-place and returned.\n *\n * Lives on `BaseTracer` (rather than a runtime-specific subclass) because\n * the OpenAI wrapper relies only on fetch-based method interception — the\n * `openai` import is types-only and it uses no Node built-ins — so it is\n * safe in both the Node and Workers runtimes.\n *\n * @param client - An LLM client instance (e.g. `new OpenAI()`).\n * @returns The same client instance, instrumented.\n *\n * @example\n * ```typescript\n * import OpenAI from \"openai\";\n *\n * const client = Tracer.wrap(new OpenAI());\n * ```\n */\n static wrap<T extends OpenAI>(client: T): T {\n return wrap(client);\n }\n\n // ------------------------------------------------------------------ //\n // Static: Span Creation (OTEL-like signatures) //\n // ------------------------------------------------------------------ //\n\n /**\n * Get the underlying OpenTelemetry Tracer instance.\n *\n * @returns The OpenTelemetry `Tracer`.\n */\n static getOTELTracer(): Tracer {\n const proxy = BaseTracer._getProxyProvider();\n return proxy.getTracer(TRACER_NAME);\n }\n\n /**\n * Start a new span without setting it as active.\n *\n * **Most users should prefer {@link observe} or {@link with}**, which\n * handle activation, error recording, and span ending automatically.\n * Use this only when you need low-level control over the span lifecycle.\n *\n * @param name - The span name.\n * @param attributes - Optional span attributes.\n * @returns The created span.\n */\n static startSpan(name: string, attributes?: Attributes): Span {\n const span = BaseTracer.getOTELTracer().startSpan(name, { attributes });\n BaseTracer._emitPartial();\n return span;\n }\n\n /**\n * Start a new active span and run a function within it.\n *\n * The span is automatically ended when the function completes.\n *\n * **Most users should prefer {@link observe} or {@link with}**, which\n * additionally record inputs/outputs and capture errors automatically.\n * Use this only when you need low-level control over the span lifecycle.\n *\n * @param options - Span options. `name` is required; `attributes` is optional.\n * @param fn - Function to execute within the span context.\n * @returns The return value of `fn`.\n *\n * @example\n * ```typescript\n * Tracer.startActiveSpan({ name: \"fetch-user\" }, (span) => {\n * // ...\n * });\n * ```\n */\n static startActiveSpan<T>(\n options: { name: string; attributes?: Attributes },\n fn: (span: Span) => T,\n ): T {\n const { name, attributes } = options;\n return BaseTracer.getOTELTracer().startActiveSpan(\n name,\n { attributes },\n (span) => {\n BaseTracer._emitPartial();\n try {\n const result = fn(span);\n if (result instanceof Promise) {\n return (result as Promise<unknown>).finally(() => {\n span.end();\n }) as T;\n }\n span.end();\n return result;\n } catch (e) {\n span.end();\n throw e;\n }\n },\n );\n }\n\n // ------------------------------------------------------------------ //\n // Static: Span Helpers //\n // ------------------------------------------------------------------ //\n\n /**\n * Create a named span, execute a function, and handle errors.\n *\n * Errors are recorded on the span and re-thrown.\n *\n * @param spanName - The span name.\n * @param fn - Function to execute within the span.\n * @returns The return value of `fn`.\n */\n static span<T>(spanName: string, fn: (span: Span) => T): T {\n return BaseTracer.startActiveSpan({ name: spanName }, (span) => {\n try {\n const result = fn(span);\n if (result instanceof Promise) {\n return result.catch((e: unknown) => {\n span.setStatus({ code: SpanStatusCode.ERROR, message: String(e) });\n span.recordException(e as Error);\n throw e;\n }) as T;\n }\n return result;\n } catch (e) {\n span.setStatus({ code: SpanStatusCode.ERROR, message: String(e) });\n span.recordException(e as Error);\n throw e;\n }\n });\n }\n\n /**\n * Alias for {@link span}. Create a named span and execute a function within it.\n *\n * @param spanName - The span name.\n * @param fn - Function to execute within the span.\n * @returns The return value of `fn`.\n */\n static with<T>(spanName: string, fn: (span: Span) => T): T {\n return BaseTracer.span(spanName, fn);\n }\n\n /**\n * Continue a distributed trace from an upstream service.\n *\n * Extracts W3C trace context and baggage from `carrier` and installs\n * it as the active context for the duration of `fn`. Any span started\n * inside — including `@Tracer.observe`-wrapped functions and\n * `Tracer.with` blocks — becomes a child of the upstream parent,\n * stitching your service into the caller's trace.\n *\n * Use this at the entry point of an inbound request (HTTP handler,\n * message queue consumer, RPC dispatcher, etc.) to join a trace\n * started by the upstream caller. If the carrier contains no trace\n * context, `fn` still runs normally with a fresh context.\n *\n * @param carrier - A mapping containing propagation headers. Typically\n * `req.headers` from Node's `http`/Express/Fastify, but any dict-shaped\n * object with lowercase keys works (queue attributes, Lambda event\n * headers, RPC metadata, etc.).\n * @param fn - Function to run inside the extracted context. Receives\n * the extracted {@link Context} as its argument; most callers ignore\n * it. Sync or async.\n * @returns The return value of `fn`.\n *\n * @example\n * ```typescript\n * import { Tracer } from \"judgeval\";\n *\n * const handle = Tracer.observe(async (payload: unknown) => {\n * // ... your agent logic ...\n * });\n *\n * // Express / Node http handler:\n * app.post(\"/run\", async (req, res) => {\n * await Tracer.continueTrace(req.headers, async () => {\n * const result = await handle(req.body);\n * res.json(result);\n * });\n * });\n * ```\n *\n * Propagating in the opposite direction (outbound):\n *\n * @example\n * ```typescript\n * import { propagation } from \"judgeval\";\n *\n * const headers: Record<string, string> = {};\n * propagation.inject(headers);\n * await fetch(downstreamUrl, { headers, method: \"POST\", body });\n * ```\n */\n static continueTrace<T>(carrier: object, fn: (ctx: Context) => T): T {\n const proxy = BaseTracer._getProxyProvider();\n const ctx = extract(carrier);\n return proxy.withContext(ctx, () => fn(ctx));\n }\n\n // ------------------------------------------------------------------ //\n // Static API: Observation Decorator //\n // ------------------------------------------------------------------ //\n\n /**\n * Wrap a function to automatically create spans and record inputs/outputs.\n *\n * Can be called with a function to wrap it directly, or with just options\n * to get a decorator (e.g. for TC39 decorator syntax).\n *\n * @param func - The function to wrap. Omit to get a decorator.\n * @param options - Optional observation options.\n * @returns The wrapped function, or a decorator if `func` is omitted.\n *\n * @example\n * ```typescript\n * // Direct wrapping\n * const traced = Tracer.observe(\n * async (query: string) => search(query),\n * { spanType: \"tool\" },\n * );\n *\n * // Decorator form\n * class Agent {\n * \\@Tracer.observe({ spanType: \"llm\" })\n * async chat(input: string) { ... }\n * }\n *\n * // Fork into a linked trace\n * const delegate = Tracer.observe(runSubsystem, {\n * spanType: \"agent\",\n * fork: true,\n * });\n * ```\n */\n static observe<TArgs extends unknown[], TReturn>(\n func: (...args: TArgs) => TReturn,\n options?: ObserveOptions,\n ): (...args: TArgs) => TReturn;\n static observe(\n options?: ObserveOptions,\n ): <TArgs extends unknown[], TReturn>(\n func: (...args: TArgs) => TReturn,\n context?: unknown,\n ) => (...args: TArgs) => TReturn;\n static observe<TArgs extends unknown[], TReturn>(\n funcOrOptions?: ((...args: TArgs) => TReturn) | ObserveOptions,\n options?: ObserveOptions,\n ):\n | ((...args: TArgs) => TReturn)\n | ((func: (...args: TArgs) => TReturn) => (...args: TArgs) => TReturn) {\n let func: ((...args: TArgs) => TReturn) | undefined;\n if (typeof funcOrOptions === \"function\") {\n func = funcOrOptions;\n } else {\n options = funcOrOptions;\n }\n const {\n spanType = \"span\",\n spanName,\n recordInput = true,\n recordOutput = true,\n fork = false,\n } = options ?? {};\n const proxy = BaseTracer._getProxyProvider();\n const decorator = (\n innerFunc: (...args: TArgs) => TReturn,\n ): ((...args: TArgs) => TReturn) => {\n const name = spanName ?? innerFunc.name;\n return function (this: unknown, ...args: TArgs): TReturn {\n const otelTracer = proxy.getTracer(TRACER_NAME);\n\n const shouldFork =\n fork &&\n proxy.getActiveTracer() !== null &&\n proxy.getCurrentSpan()?.isRecording() === true;\n\n if (shouldFork) {\n const serializer = BaseTracer._getSerializer();\n\n // Invocation span — child of current trace\n const invocationSpan = otelTracer.startSpan(name);\n const invocationCtx = invocationSpan.spanContext();\n if (spanType) {\n invocationSpan.setAttribute(\n AttributeKeys.JUDGMENT_SPAN_KIND,\n spanType,\n );\n }\n\n // Linked-root span — root of a new trace\n const linkedRootAttrs: Attributes = {\n [AttributeKeys.JUDGMENT_LINK_SOURCE_TRACE_ID]:\n invocationCtx.traceId,\n [AttributeKeys.JUDGMENT_LINK_SOURCE_SPAN_ID]: invocationCtx.spanId,\n };\n if (spanType) {\n linkedRootAttrs[AttributeKeys.JUDGMENT_SPAN_KIND] = spanType;\n }\n\n const parentlessCtx = proxy.setSpan(\n proxy.getCurrentContext(),\n proxy.wrapSpanContext(INVALID_SPAN_CONTEXT),\n );\n const linkedRoot = otelTracer.startSpan(\n name,\n { attributes: linkedRootAttrs },\n parentlessCtx,\n );\n const linkedRootCtx = linkedRoot.spanContext();\n invocationSpan.setAttribute(\n AttributeKeys.JUDGMENT_LINK_TARGET_TRACE_ID,\n linkedRootCtx.traceId,\n );\n invocationSpan.setAttribute(\n AttributeKeys.JUDGMENT_LINK_TARGET_SPAN_ID,\n linkedRootCtx.spanId,\n );\n\n const endBoth = (): void => {\n linkedRoot.end();\n invocationSpan.end();\n };\n const recordErrorOnBoth = (e: unknown): void => {\n for (const s of [linkedRoot, invocationSpan]) {\n s.recordException(e as Error);\n s.setStatus({\n code: SpanStatusCode.ERROR,\n message: String(e),\n });\n }\n };\n const recordOutputOnBoth = (value: unknown): void => {\n const serialized = serializeAttribute(value, serializer);\n linkedRoot.setAttribute(AttributeKeys.JUDGMENT_OUTPUT, serialized);\n invocationSpan.setAttribute(\n AttributeKeys.JUDGMENT_OUTPUT,\n serialized,\n );\n };\n\n if (recordInput) {\n const serializedInput = serializeAttribute(\n getInputs(innerFunc, args),\n serializer,\n );\n linkedRoot.setAttribute(\n AttributeKeys.JUDGMENT_INPUT,\n serializedInput,\n );\n invocationSpan.setAttribute(\n AttributeKeys.JUDGMENT_INPUT,\n serializedInput,\n );\n }\n BaseTracer._emitPartial();\n\n return proxy.useSpan(linkedRoot, false, false, false, (): TReturn => {\n try {\n const result = innerFunc.call(this, ...args);\n if (result instanceof Promise) {\n return (result as Promise<unknown>)\n .then((res) => {\n if (recordOutput) recordOutputOnBoth(res);\n return res as TReturn;\n })\n .catch((e: unknown) => {\n recordErrorOnBoth(e);\n throw e;\n })\n .finally(endBoth) as TReturn;\n }\n if (recordOutput) recordOutputOnBoth(result);\n endBoth();\n return result;\n } catch (e) {\n recordErrorOnBoth(e);\n endBoth();\n throw e;\n }\n });\n }\n\n return otelTracer.startActiveSpan(name, (span) => {\n if (spanType) {\n span.setAttribute(AttributeKeys.JUDGMENT_SPAN_KIND, spanType);\n }\n try {\n if (recordInput) {\n span.setAttribute(\n AttributeKeys.JUDGMENT_INPUT,\n serializeAttribute(\n getInputs(innerFunc, args),\n BaseTracer._getSerializer(),\n ),\n );\n }\n BaseTracer._emitPartial();\n const result = innerFunc.call(this, ...args);\n\n if (result instanceof Promise) {\n return (result as Promise<unknown>)\n .then((res) => {\n if (recordOutput) {\n span.setAttribute(\n AttributeKeys.JUDGMENT_OUTPUT,\n serializeAttribute(res, BaseTracer._getSerializer()),\n );\n }\n return res as TReturn;\n })\n .catch((e: unknown) => {\n span.recordException(e as Error);\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: String(e),\n });\n throw e;\n })\n .finally(() => {\n span.end();\n }) as TReturn;\n }\n\n if (recordOutput) {\n span.setAttribute(\n AttributeKeys.JUDGMENT_OUTPUT,\n serializeAttribute(result, BaseTracer._getSerializer()),\n );\n }\n span.end();\n return result;\n } catch (e) {\n span.recordException(e as Error);\n span.setStatus({ code: SpanStatusCode.ERROR, message: String(e) });\n span.end();\n throw e;\n }\n });\n };\n };\n\n if (!func) return decorator;\n return decorator(func);\n }\n\n // ------------------------------------------------------------------ //\n // Internal: resolve target span //\n // ------------------------------------------------------------------ //\n\n private static _resolveSpan(span?: Span): Span | undefined {\n if (span) return span;\n return BaseTracer._getProxyProvider().getCurrentSpan();\n }\n\n // ------------------------------------------------------------------ //\n // Static: Span Kind //\n // ------------------------------------------------------------------ //\n\n /**\n * Set the kind of a span.\n *\n * @param kind - The span kind (e.g. \"llm\", \"tool\", \"span\").\n * @param span - Target span. Defaults to the current active span.\n */\n static setSpanKind(kind: string): void;\n static setSpanKind(kind: string, span: Span): void;\n static setSpanKind(kind: string, span?: Span): void {\n dontThrow(\"BaseTracer.setSpanKind\", () => {\n if (!kind) return;\n const target = BaseTracer._resolveSpan(span);\n if (target?.isRecording()) {\n target.setAttribute(AttributeKeys.JUDGMENT_SPAN_KIND, kind);\n }\n });\n }\n\n /**\n * Set the current span kind to \"llm\".\n */\n static setLLMSpan(): void {\n BaseTracer.setSpanKind(\"llm\");\n }\n\n /**\n * Set the current span kind to \"tool\".\n */\n static setToolSpan(): void {\n BaseTracer.setSpanKind(\"tool\");\n }\n\n /**\n * Set the current span kind to \"span\".\n */\n static setGeneralSpan(): void {\n BaseTracer.setSpanKind(\"span\");\n }\n\n // ------------------------------------------------------------------ //\n // Static: Span Attribute Operations //\n // ------------------------------------------------------------------ //\n\n /**\n * Set a single attribute on a span.\n *\n * @param key - The attribute key.\n * @param value - The attribute value (will be serialized).\n * @param span - Target span. Defaults to the current active span.\n */\n static setAttribute(key: string, value: unknown): void;\n static setAttribute(key: string, value: unknown, span: Span): void;\n static setAttribute(key: string, value: unknown, span?: Span): void {\n dontThrow(\"BaseTracer.setAttribute\", () => {\n const target = BaseTracer._resolveSpan(span);\n if (!target?.isRecording()) return;\n if (!key || value == null) return;\n target.setAttribute(\n key,\n serializeAttribute(value, BaseTracer._getSerializer()),\n );\n });\n }\n\n /**\n * Set multiple attributes on a span.\n *\n * @param attributes - Key-value pairs to set.\n * @param span - Target span. Defaults to the current active span.\n */\n static setAttributes(attributes: Record<string, unknown>): void;\n static setAttributes(attributes: Record<string, unknown>, span: Span): void;\n static setAttributes(attributes: Record<string, unknown>, span?: Span): void {\n for (const [key, value] of Object.entries(attributes)) {\n if (span) BaseTracer.setAttribute(key, value, span);\n else BaseTracer.setAttribute(key, value);\n }\n }\n\n /**\n * Set the input data on a span.\n *\n * @param inputData - The input data to record.\n * @param span - Target span. Defaults to the current active span.\n */\n static setInput(inputData: unknown): void;\n static setInput(inputData: unknown, span: Span): void;\n static setInput(inputData: unknown, span?: Span): void {\n if (span)\n BaseTracer.setAttribute(AttributeKeys.JUDGMENT_INPUT, inputData, span);\n else BaseTracer.setAttribute(AttributeKeys.JUDGMENT_INPUT, inputData);\n }\n\n /**\n * Set the output data on a span.\n *\n * @param outputData - The output data to record.\n * @param span - Target span. Defaults to the current active span.\n */\n static setOutput(outputData: unknown): void;\n static setOutput(outputData: unknown, span: Span): void;\n static setOutput(outputData: unknown, span?: Span): void {\n if (span)\n BaseTracer.setAttribute(AttributeKeys.JUDGMENT_OUTPUT, outputData, span);\n else BaseTracer.setAttribute(AttributeKeys.JUDGMENT_OUTPUT, outputData);\n }\n\n /**\n * Record an error on a span.\n *\n * Sets the span status to ERROR and records the exception.\n *\n * @param error - The error to record.\n * @param span - Target span. Defaults to the current active span.\n */\n static setError(error: unknown): void;\n static setError(error: unknown, span: Span): void;\n static setError(error: unknown, span?: Span): void {\n dontThrow(\"BaseTracer.setError\", () => {\n const target = BaseTracer._resolveSpan(span);\n if (!target?.isRecording()) return;\n target.recordException(error as Error);\n target.setStatus({ code: SpanStatusCode.ERROR, message: String(error) });\n });\n }\n\n /**\n * Record LLM usage metadata on a span.\n *\n * @param metadata - LLM metadata including model, provider, and token counts.\n * @param span - Target span. Defaults to the current active span.\n *\n * @example\n * ```typescript\n * Tracer.recordLLMMetadata({\n * model: \"gpt-4o\",\n * provider: \"openai\",\n * output_tokens: 150,\n * });\n * ```\n */\n static recordLLMMetadata(metadata: LLMMetadata): void;\n static recordLLMMetadata(metadata: LLMMetadata, span: Span): void;\n static recordLLMMetadata(metadata: LLMMetadata, span?: Span): void {\n dontThrow(\"BaseTracer.recordLLMMetadata\", () => {\n const target = BaseTracer._resolveSpan(span);\n if (!target?.isRecording()) return;\n\n if (typeof metadata.model === \"string\") {\n target.setAttribute(\n AttributeKeys.JUDGMENT_LLM_MODEL_NAME,\n metadata.model,\n );\n }\n\n if (typeof metadata.provider === \"string\") {\n target.setAttribute(\n AttributeKeys.JUDGMENT_LLM_PROVIDER,\n metadata.provider,\n );\n }\n\n if (typeof metadata.non_cached_input_tokens === \"number\") {\n target.setAttribute(\n AttributeKeys.JUDGMENT_USAGE_NON_CACHED_INPUT_TOKENS,\n metadata.non_cached_input_tokens,\n );\n }\n if (typeof metadata.output_tokens === \"number\") {\n target.setAttribute(\n AttributeKeys.JUDGMENT_USAGE_OUTPUT_TOKENS,\n metadata.output_tokens,\n );\n }\n if (typeof metadata.cache_read_input_tokens === \"number\") {\n target.setAttribute(\n AttributeKeys.JUDGMENT_USAGE_CACHE_READ_INPUT_TOKENS,\n metadata.cache_read_input_tokens,\n );\n }\n if (typeof metadata.cache_creation_input_tokens === \"number\") {\n target.setAttribute(\n AttributeKeys.JUDGMENT_USAGE_CACHE_CREATION_INPUT_TOKENS,\n metadata.cache_creation_input_tokens,\n );\n }\n if (typeof metadata.total_cost_usd === \"number\") {\n target.setAttribute(\n AttributeKeys.JUDGMENT_USAGE_TOTAL_COST_USD,\n metadata.total_cost_usd,\n );\n }\n });\n }\n\n // ------------------------------------------------------------------ //\n // Static: Context Propagation //\n // ------------------------------------------------------------------ //\n\n /**\n * Set a key on the current span and on baggage so it propagates to all\n * child spans. Also reattaches the current context to the updated one.\n */\n private static _setPropagatingBaggageKey(key: string, value: string): void {\n dontThrow(\"BaseTracer._setPropagatingBaggageKey\", () => {\n const proxy = BaseTracer._getProxyProvider();\n const currentSpan = proxy.getCurrentSpan();\n if (!currentSpan?.isRecording()) return;\n currentSpan.setAttribute(key, value);\n const ctx = proxy.getCurrentContext();\n const baggage = (getBaggage(ctx) ?? createBaggage()).setEntry(key, {\n value,\n });\n proxy.attachContext(setBaggage(ctx, baggage));\n });\n }\n\n /**\n * Set the customer ID on the current active span.\n *\n * The ID is automatically propagated to all child spans via baggage.\n * This method always targets the active span because it modifies\n * the active context's baggage for propagation.\n *\n * @param customerId - The customer identifier.\n */\n static setCustomerId(customerId: string): void {\n BaseTracer._setPropagatingBaggageKey(\n AttributeKeys.JUDGMENT_CUSTOMER_ID,\n customerId,\n );\n }\n\n /**\n * Set the customer user ID on the current active span.\n *\n * The ID is automatically propagated to all child spans via baggage.\n * This method always targets the active span because it modifies\n * the active context's baggage for propagation.\n *\n * @param customerUserId - The customer user identifier.\n */\n static setCustomerUserId(customerUserId: string): void {\n BaseTracer._setPropagatingBaggageKey(\n AttributeKeys.JUDGMENT_CUSTOMER_USER_ID,\n customerUserId,\n );\n }\n\n /**\n * Set the session ID on the current active span.\n *\n * The ID is automatically propagated to all child spans via baggage.\n * This method always targets the active span because it modifies\n * the active context's baggage for propagation.\n *\n * @param sessionId - The session identifier.\n */\n static setSessionId(sessionId: string): void {\n BaseTracer._setPropagatingBaggageKey(\n AttributeKeys.JUDGMENT_SESSION_ID,\n sessionId,\n );\n }\n\n // ------------------------------------------------------------------ //\n // Static: Tags //\n // ------------------------------------------------------------------ //\n\n /**\n * Add tags to the current trace.\n *\n * @param tags - A single tag string or an array of tag strings.\n *\n * @example\n * ```typescript\n * Tracer.tag(\"production\");\n * Tracer.tag([\"important\", \"customer-facing\"]);\n * ```\n */\n static tag(tags: string | string[]): void {\n dontThrow(\"BaseTracer.tag\", () => {\n if (!tags || (Array.isArray(tags) && tags.length === 0)) return;\n const proxy = BaseTracer._getProxyProvider();\n const tracer = proxy.getActiveTracer();\n if (!tracer?.projectId || !tracer._client) return;\n if (!tracer.supportsLiveInstrumentation) return;\n const ids = BaseTracer._getCurrentTraceAndSpanId();\n if (!ids) return;\n const [traceId] = ids;\n const tagArray = Array.isArray(tags) ? tags : [tags];\n tracer._client\n .postV1projectsTracesByTraceIdTags(tracer.projectId, traceId, {\n tags: tagArray,\n })\n .catch((err: unknown) => {\n Logger.error(`tag failed: ${String(err)}`);\n });\n });\n }\n\n // ------------------------------------------------------------------ //\n // Static API: Async Evaluation //\n // ------------------------------------------------------------------ //\n\n /**\n * Trigger an asynchronous server-side evaluation on a span.\n *\n * The evaluation is queued and processed server-side by the Judgment\n * platform after the span ends. Use this to score live traffic\n * without blocking your application.\n *\n * @param options - Evaluation options. `judge` is required; `example`\n * is optional evaluation data.\n * @param span - Target span. Defaults to the current active span.\n *\n * @example\n * ```typescript\n * Tracer.asyncEvaluate({\n * judge: \"answer_relevancy\",\n * example: {\n * input: \"What is AI?\",\n * actual_output: response,\n * },\n * });\n * ```\n */\n static asyncEvaluate(options: AsyncEvaluateOptions): void;\n static asyncEvaluate(options: AsyncEvaluateOptions, span: Span): void;\n static asyncEvaluate(options: AsyncEvaluateOptions, span?: Span): void {\n dontThrow(\"BaseTracer.asyncEvaluate\", () => {\n const { judge, example } = options;\n const proxy = BaseTracer._getProxyProvider();\n const tracer = proxy.getActiveTracer();\n if (!tracer?.projectId) return;\n if (!tracer.supportsLiveInstrumentation) return;\n const target = BaseTracer._resolveSpan(span);\n if (!target?.isRecording()) return;\n\n const processor = tracer.getSpanProcessor();\n const ctx = target.spanContext();\n\n const idx = processor.stateIncr(\n ctx,\n InternalAttributeKeys.PENDING_EVALS_COUNT,\n );\n const payload: PendingEvalPayload = {\n project_id: tracer.projectId,\n eval_name: `async_evaluate_${judge}_${idx}`,\n judges: [{ name: judge }],\n examples: [\n {\n ...example,\n example_id: crypto.randomUUID(),\n created_at: new Date().toISOString(),\n trace_id: ctx.traceId,\n span_id: ctx.spanId,\n },\n ],\n is_offline: false,\n is_behavior: false,\n };\n const updated = processor.stateAppend<PendingEvalPayload>(\n ctx,\n InternalAttributeKeys.PENDING_EVALS,\n payload,\n );\n\n // Raw setAttribute — value is already JSON-stringified, BaseTracer.setAttribute would double-serialize.\n target.setAttribute(\n AttributeKeys.JUDGMENT_PENDING_TRACE_EVAL,\n JSON.stringify(updated),\n );\n });\n }\n}\n\nfunction getInputs<TArgs extends unknown[]>(\n f: (...args: TArgs) => unknown,\n args: TArgs,\n): Record<string, unknown> {\n try {\n const paramNames = parseFunctionArgs(f)\n .map((param) =>\n param\n .replace(/^\\.\\.\\./, \"\")\n .split(\"=\")[0]\n .trim(),\n )\n .filter((param) => param.length > 0);\n const inputs: Record<string, unknown> = {};\n paramNames.forEach((name, index) => {\n if (index < args.length) {\n inputs[name] = args[index];\n }\n });\n return inputs;\n } catch {\n return {};\n }\n}\n",
37
+ "import {\n type Attributes,\n type Context,\n INVALID_SPAN_CONTEXT,\n type Span,\n SpanStatusCode,\n type Tracer,\n} from \"@opentelemetry/api\";\nimport type { Instrumentation } from \"@opentelemetry/instrumentation\";\nimport type {\n BasicTracerProvider,\n Sampler,\n SpanLimits,\n SpanProcessor,\n} from \"@opentelemetry/sdk-trace-base\";\nimport type { OpenAI } from \"openai\";\nimport { AttributeKeys, InternalAttributeKeys } from \"../JudgmentAttributeKeys\";\nimport { wrap } from \"../instrumentation\";\nimport { JudgmentApiClient } from \"../internal/api\";\nimport type { PendingEvalPayload } from \"../internal/api/models/PendingEvalPayload\";\nimport { parseFunctionArgs } from \"../utils/annotate\";\nimport { dontThrow } from \"../utils/dont-throw\";\nimport { Logger } from \"../utils/logger\";\nimport {\n safeStringify,\n serializeAttribute,\n Serializer,\n} from \"../utils/serializer\";\nimport { Maybe } from \"../utils/type-helpers\";\nimport { createBaggage, getBaggage, setBaggage } from \"./baggage\";\nimport { extract } from \"./propagation\";\nimport type { JudgmentSpanExporter } from \"./exporters/JudgmentSpanExporter\";\nimport type { JudgmentSpanProcessor } from \"./processors/JudgmentSpanProcessor\";\nimport { getTraceRuntime, type TraceRuntime } from \"./runtime\";\n\nconst TRACER_NAME = \"judgeval\";\n\n/**\n * Metadata about an LLM call to record on a span.\n */\nexport interface LLMMetadata {\n /** Model name (e.g. \"gpt-4o\"). */\n model?: Maybe<string>;\n /** Provider name (e.g. \"openai\"). */\n provider?: Maybe<string>;\n /** Number of non-cached input tokens. */\n non_cached_input_tokens?: Maybe<number>;\n /** Number of output tokens. */\n output_tokens?: Maybe<number>;\n /** Number of cache-read input tokens. */\n cache_read_input_tokens?: Maybe<number>;\n /** Number of cache-creation input tokens. */\n cache_creation_input_tokens?: Maybe<number>;\n /** Total cost in USD. */\n total_cost_usd?: Maybe<number>;\n}\n\n/**\n * Options for {@link BaseTracer.observe}.\n */\nexport interface ObserveOptions {\n /** The span kind (e.g. `\"llm\"`, `\"tool\"`, `\"span\"`). Defaults to `\"span\"`. */\n spanType?: string;\n /** Custom span name. Defaults to the wrapped function's name. */\n spanName?: string;\n /** Whether to record function inputs as a span attribute. Defaults to `true`. */\n recordInput?: boolean;\n /** Whether to record function outputs as a span attribute. Defaults to `true`. */\n recordOutput?: boolean;\n /**\n * If `true`, run the function in a fresh linked trace instead of as a\n * child of the current trace, when an active parent span exists.\n * Defaults to `false`.\n */\n fork?: boolean;\n}\n\n/**\n * Options for {@link BaseTracer.asyncEvaluate}.\n */\nexport interface AsyncEvaluateOptions {\n /**\n * Name of the hosted judge/scorer (e.g. `\"faithfulness\"`,\n * `\"answer_relevancy\"`).\n */\n judge: string;\n /**\n * Optional dict with evaluation data. Keys like `input`, `actual_output`,\n * `expected_output`, and `retrieval_context` are commonly used.\n */\n example?: Record<string, unknown>;\n}\n\n/**\n * Configuration options for initializing a Tracer.\n *\n * Credentials are resolved in order: explicit arguments first, then\n * environment variables.\n */\nexport interface TracerConfig {\n /** Your Judgment project name. Required for span export. */\n projectName?: string;\n /** Judgment API key. Defaults to `JUDGMENT_API_KEY` env var. */\n apiKey?: string;\n /** Judgment organization ID. Defaults to `JUDGMENT_ORG_ID` env var. */\n organizationId?: string;\n /** Judgment API URL. Defaults to `JUDGMENT_API_URL` env var. */\n apiUrl?: string;\n /** Deployment environment name (e.g. \"production\"). */\n environment?: string;\n /** Whether to automatically set this tracer as active. Defaults to `true`. */\n setActive?: boolean;\n /** Custom serialization function for span attribute values. */\n serializer?: (value: unknown) => string;\n /** Additional OpenTelemetry resource attributes. */\n resourceAttributes?: Record<string, string>;\n /** Custom OpenTelemetry sampler. Defaults to the SDK's default. */\n sampler?: Sampler;\n /** Custom OpenTelemetry span limits (attribute/event/link caps). */\n spanLimits?: SpanLimits;\n /** Additional span processors to register alongside Judgment's own processor. */\n spanProcessors?: SpanProcessor[];\n}\n\n/**\n * Abstract base for all Judgment tracers.\n *\n * Provides the core tracing surface: span creation, attribute recording,\n * the `observe` decorator, context propagation for customer/session IDs,\n * tagging, and async evaluation dispatch.\n * Concrete subclasses supply the OTel TracerProvider, exporter, and\n * processor wiring.\n */\nexport abstract class BaseTracer {\n projectName: string | null;\n projectId: string | null;\n apiKey: string | null;\n organizationId: string | null;\n apiUrl: string | null;\n environment: string | null;\n serializer: Serializer;\n _tracerProvider: BasicTracerProvider;\n _client: JudgmentApiClient | null;\n _enableMonitoring: boolean;\n\n readonly supportsLiveInstrumentation: boolean = true;\n\n // ------------------------------------------------------------------ //\n // Initialization //\n // ------------------------------------------------------------------ //\n\n protected constructor(\n projectName: string | null,\n projectId: string | null,\n apiKey: string | null,\n organizationId: string | null,\n apiUrl: string | null,\n environment: string | null,\n serializer: Serializer,\n tracerProvider: BasicTracerProvider,\n client: JudgmentApiClient | null,\n enableMonitoring: boolean,\n ) {\n this.projectName = projectName;\n this.projectId = projectId;\n this.apiKey = apiKey;\n this.organizationId = organizationId;\n this.apiUrl = apiUrl;\n this.environment = environment;\n this.serializer = serializer;\n this._tracerProvider = tracerProvider;\n this._client = client;\n this._enableMonitoring = enableMonitoring;\n }\n\n /**\n * Set this tracer as the active tracer in the global provider.\n *\n * @returns `true` if activation succeeded, `false` if a root span is active.\n */\n setActive(): boolean {\n return getTraceRuntime().setActive(this);\n }\n\n // ------------------------------------------------------------------ //\n // Abstract Lifecycle //\n // ------------------------------------------------------------------ //\n\n abstract getSpanProcessor(): JudgmentSpanProcessor;\n abstract getSpanExporter(): JudgmentSpanExporter;\n\n // ------------------------------------------------------------------ //\n // Internal Helpers //\n // ------------------------------------------------------------------ //\n\n private static _getProxyProvider(): TraceRuntime {\n return getTraceRuntime();\n }\n\n private static _getSerializer(): Serializer {\n const tracer = BaseTracer._getProxyProvider().getActiveTracer();\n return tracer?.serializer ?? safeStringify;\n }\n\n private static _getCurrentTraceAndSpanId(): [string, string] | null {\n const proxy = BaseTracer._getProxyProvider();\n const currentSpan = proxy.getCurrentSpan();\n if (!currentSpan?.isRecording()) return null;\n const ctx = currentSpan.spanContext();\n if (!ctx.traceId || !(ctx.traceFlags & 0x01)) return null;\n return [ctx.traceId, ctx.spanId];\n }\n\n private static _emitPartial(): void {\n dontThrow(\"BaseTracer._emitPartial\", () => {\n const tracer = BaseTracer._getProxyProvider().getActiveTracer();\n if (!tracer || !tracer.supportsLiveInstrumentation) return;\n tracer.getSpanProcessor().emitPartial();\n });\n }\n\n // ------------------------------------------------------------------ //\n // Static API: Span Access & Lifecycle //\n // ------------------------------------------------------------------ //\n\n /**\n * Get the currently active span.\n *\n * @returns The active span, or `undefined` if none.\n */\n static getCurrentSpan(): Span | undefined {\n const proxy = BaseTracer._getProxyProvider();\n return proxy.getCurrentSpan();\n }\n\n /**\n * Flush all pending spans to the export endpoint.\n *\n * Call this before your process exits to ensure all spans are sent.\n *\n * @example\n * ```typescript\n * await Tracer.forceFlush();\n * ```\n */\n static async forceFlush(): Promise<void> {\n const proxy = BaseTracer._getProxyProvider();\n await proxy.forceFlush();\n }\n\n /**\n * Shut down the tracer and flush any pending data.\n *\n * @example\n * ```typescript\n * await Tracer.shutdown();\n * ```\n */\n static async shutdown(): Promise<void> {\n const proxy = BaseTracer._getProxyProvider();\n await proxy.shutdown();\n }\n\n /**\n * Register an OpenTelemetry instrumentation to capture spans automatically.\n *\n * @param instrumentor - The OpenTelemetry instrumentation to register.\n *\n * @example\n * ```typescript\n * import { OpenAIInstrumentation } from \"@opentelemetry/instrumentation-openai\";\n * Tracer.registerOTELInstrumentation(new OpenAIInstrumentation());\n * ```\n */\n static registerOTELInstrumentation(instrumentor: Instrumentation): void {\n dontThrow(\"BaseTracer.registerOTELInstrumentation\", () => {\n const proxy = BaseTracer._getProxyProvider();\n proxy.addInstrumentation(instrumentor);\n });\n }\n\n /**\n * Wrap a supported LLM client to add automatic tracing.\n *\n * Currently supports OpenAI clients. The client is instrumented\n * in-place and returned.\n *\n * Lives on `BaseTracer` (rather than a runtime-specific subclass) because\n * the OpenAI wrapper relies only on fetch-based method interception — the\n * `openai` import is types-only and it uses no Node built-ins — so it is\n * safe in both the Node and Workers runtimes.\n *\n * @param client - An LLM client instance (e.g. `new OpenAI()`).\n * @returns The same client instance, instrumented.\n *\n * @example\n * ```typescript\n * import OpenAI from \"openai\";\n *\n * const client = Tracer.wrap(new OpenAI());\n * ```\n */\n static wrap<T extends OpenAI>(client: T): T {\n return wrap(client);\n }\n\n // ------------------------------------------------------------------ //\n // Static: Span Creation (OTEL-like signatures) //\n // ------------------------------------------------------------------ //\n\n /**\n * Get the underlying OpenTelemetry Tracer instance.\n *\n * @returns The OpenTelemetry `Tracer`.\n */\n static getOTELTracer(): Tracer {\n const proxy = BaseTracer._getProxyProvider();\n return proxy.getTracer(TRACER_NAME);\n }\n\n /**\n * Start a new span without setting it as active.\n *\n * **Most users should prefer {@link observe} or {@link with}**, which\n * handle activation, error recording, and span ending automatically.\n * Use this only when you need low-level control over the span lifecycle.\n *\n * @param name - The span name.\n * @param attributes - Optional span attributes.\n * @returns The created span.\n */\n static startSpan(name: string, attributes?: Attributes): Span {\n const span = BaseTracer.getOTELTracer().startSpan(name, { attributes });\n BaseTracer._emitPartial();\n return span;\n }\n\n /**\n * Start a new active span and run a function within it.\n *\n * The span is automatically ended when the function completes.\n *\n * **Most users should prefer {@link observe} or {@link with}**, which\n * additionally record inputs/outputs and capture errors automatically.\n * Use this only when you need low-level control over the span lifecycle.\n *\n * @param options - Span options. `name` is required; `attributes` is optional.\n * @param fn - Function to execute within the span context.\n * @returns The return value of `fn`.\n *\n * @example\n * ```typescript\n * Tracer.startActiveSpan({ name: \"fetch-user\" }, (span) => {\n * // ...\n * });\n * ```\n */\n static startActiveSpan<T>(\n options: { name: string; attributes?: Attributes },\n fn: (span: Span) => T,\n ): T {\n const { name, attributes } = options;\n return BaseTracer.getOTELTracer().startActiveSpan(\n name,\n { attributes },\n (span) => {\n BaseTracer._emitPartial();\n try {\n const result = fn(span);\n if (result instanceof Promise) {\n return (result as Promise<unknown>).finally(() => {\n span.end();\n }) as T;\n }\n span.end();\n return result;\n } catch (e) {\n span.end();\n throw e;\n }\n },\n );\n }\n\n // ------------------------------------------------------------------ //\n // Static: Span Helpers //\n // ------------------------------------------------------------------ //\n\n /**\n * Create a named span, execute a function, and handle errors.\n *\n * Errors are recorded on the span and re-thrown.\n *\n * @param spanName - The span name.\n * @param fn - Function to execute within the span.\n * @returns The return value of `fn`.\n */\n static span<T>(spanName: string, fn: (span: Span) => T): T {\n return BaseTracer.startActiveSpan({ name: spanName }, (span) => {\n try {\n const result = fn(span);\n if (result instanceof Promise) {\n return result.catch((e: unknown) => {\n span.setStatus({ code: SpanStatusCode.ERROR, message: String(e) });\n span.recordException(e as Error);\n throw e;\n }) as T;\n }\n return result;\n } catch (e) {\n span.setStatus({ code: SpanStatusCode.ERROR, message: String(e) });\n span.recordException(e as Error);\n throw e;\n }\n });\n }\n\n /**\n * Alias for {@link span}. Create a named span and execute a function within it.\n *\n * @param spanName - The span name.\n * @param fn - Function to execute within the span.\n * @returns The return value of `fn`.\n */\n static with<T>(spanName: string, fn: (span: Span) => T): T {\n return BaseTracer.span(spanName, fn);\n }\n\n /**\n * Continue a distributed trace from an upstream service.\n *\n * Extracts W3C trace context and baggage from `carrier` and installs\n * it as the active context for the duration of `fn`. Any span started\n * inside — including `@Tracer.observe`-wrapped functions and\n * `Tracer.with` blocks — becomes a child of the upstream parent,\n * stitching your service into the caller's trace.\n *\n * Use this at the entry point of an inbound request (HTTP handler,\n * message queue consumer, RPC dispatcher, etc.) to join a trace\n * started by the upstream caller. If the carrier contains no trace\n * context, `fn` still runs normally with a fresh context.\n *\n * @param carrier - A mapping containing propagation headers. Typically\n * `req.headers` from Node's `http`/Express/Fastify, but any dict-shaped\n * object with lowercase keys works (queue attributes, Lambda event\n * headers, RPC metadata, etc.).\n * @param fn - Function to run inside the extracted context. Receives\n * the extracted {@link Context} as its argument; most callers ignore\n * it. Sync or async.\n * @returns The return value of `fn`.\n *\n * @example\n * ```typescript\n * import { Tracer } from \"judgeval\";\n *\n * const handle = Tracer.observe(async (payload: unknown) => {\n * // ... your agent logic ...\n * });\n *\n * // Express / Node http handler:\n * app.post(\"/run\", async (req, res) => {\n * await Tracer.continueTrace(req.headers, async () => {\n * const result = await handle(req.body);\n * res.json(result);\n * });\n * });\n * ```\n *\n * Propagating in the opposite direction (outbound):\n *\n * @example\n * ```typescript\n * import { propagation } from \"judgeval\";\n *\n * const headers: Record<string, string> = {};\n * propagation.inject(headers);\n * await fetch(downstreamUrl, { headers, method: \"POST\", body });\n * ```\n */\n static continueTrace<T>(carrier: object, fn: (ctx: Context) => T): T {\n const proxy = BaseTracer._getProxyProvider();\n const ctx = extract(carrier);\n return proxy.withContext(ctx, () => fn(ctx));\n }\n\n // ------------------------------------------------------------------ //\n // Static API: Observation Decorator //\n // ------------------------------------------------------------------ //\n\n /**\n * Wrap a function to automatically create spans and record inputs/outputs.\n *\n * Can be called with a function to wrap it directly, or with just options\n * to get a decorator (e.g. for TC39 decorator syntax).\n *\n * @param func - The function to wrap. Omit to get a decorator.\n * @param options - Optional observation options.\n * @returns The wrapped function, or a decorator if `func` is omitted.\n *\n * @example\n * ```typescript\n * // Direct wrapping\n * const traced = Tracer.observe(\n * async (query: string) => search(query),\n * { spanType: \"tool\" },\n * );\n *\n * // Decorator form\n * class Agent {\n * \\@Tracer.observe({ spanType: \"llm\" })\n * async chat(input: string) { ... }\n * }\n *\n * // Fork into a linked trace\n * const delegate = Tracer.observe(runSubsystem, {\n * spanType: \"agent\",\n * fork: true,\n * });\n * ```\n */\n static observe<TArgs extends unknown[], TReturn>(\n func: (...args: TArgs) => TReturn,\n options?: ObserveOptions,\n ): (...args: TArgs) => TReturn;\n static observe(\n options?: ObserveOptions,\n ): <TArgs extends unknown[], TReturn>(\n func: (...args: TArgs) => TReturn,\n context?: unknown,\n ) => (...args: TArgs) => TReturn;\n static observe<TArgs extends unknown[], TReturn>(\n funcOrOptions?: ((...args: TArgs) => TReturn) | ObserveOptions,\n options?: ObserveOptions,\n ):\n | ((...args: TArgs) => TReturn)\n | ((func: (...args: TArgs) => TReturn) => (...args: TArgs) => TReturn) {\n let func: ((...args: TArgs) => TReturn) | undefined;\n if (typeof funcOrOptions === \"function\") {\n func = funcOrOptions;\n } else {\n options = funcOrOptions;\n }\n const {\n spanType = \"span\",\n spanName,\n recordInput = true,\n recordOutput = true,\n fork = false,\n } = options ?? {};\n const proxy = BaseTracer._getProxyProvider();\n const decorator = (\n innerFunc: (...args: TArgs) => TReturn,\n ): ((...args: TArgs) => TReturn) => {\n const name = spanName ?? innerFunc.name;\n return function (this: unknown, ...args: TArgs): TReturn {\n const otelTracer = proxy.getTracer(TRACER_NAME);\n\n const shouldFork =\n fork &&\n proxy.getActiveTracer() !== null &&\n proxy.getCurrentSpan()?.isRecording() === true;\n\n if (shouldFork) {\n const serializer = BaseTracer._getSerializer();\n\n // Invocation span — child of current trace\n const invocationSpan = otelTracer.startSpan(name);\n const invocationCtx = invocationSpan.spanContext();\n if (spanType) {\n invocationSpan.setAttribute(\n AttributeKeys.JUDGMENT_SPAN_KIND,\n spanType,\n );\n }\n\n // Linked-root span — root of a new trace\n const linkedRootAttrs: Attributes = {\n [AttributeKeys.JUDGMENT_LINK_SOURCE_TRACE_ID]:\n invocationCtx.traceId,\n [AttributeKeys.JUDGMENT_LINK_SOURCE_SPAN_ID]: invocationCtx.spanId,\n };\n if (spanType) {\n linkedRootAttrs[AttributeKeys.JUDGMENT_SPAN_KIND] = spanType;\n }\n\n const parentlessCtx = proxy.setSpan(\n proxy.getCurrentContext(),\n proxy.wrapSpanContext(INVALID_SPAN_CONTEXT),\n );\n const linkedRoot = otelTracer.startSpan(\n name,\n { attributes: linkedRootAttrs },\n parentlessCtx,\n );\n const linkedRootCtx = linkedRoot.spanContext();\n invocationSpan.setAttribute(\n AttributeKeys.JUDGMENT_LINK_TARGET_TRACE_ID,\n linkedRootCtx.traceId,\n );\n invocationSpan.setAttribute(\n AttributeKeys.JUDGMENT_LINK_TARGET_SPAN_ID,\n linkedRootCtx.spanId,\n );\n\n const endBoth = (): void => {\n linkedRoot.end();\n invocationSpan.end();\n };\n const recordErrorOnBoth = (e: unknown): void => {\n for (const s of [linkedRoot, invocationSpan]) {\n s.recordException(e as Error);\n s.setStatus({\n code: SpanStatusCode.ERROR,\n message: String(e),\n });\n }\n };\n const recordOutputOnBoth = (value: unknown): void => {\n const serialized = serializeAttribute(value, serializer);\n linkedRoot.setAttribute(AttributeKeys.JUDGMENT_OUTPUT, serialized);\n invocationSpan.setAttribute(\n AttributeKeys.JUDGMENT_OUTPUT,\n serialized,\n );\n };\n\n if (recordInput) {\n const serializedInput = serializeAttribute(\n getInputs(innerFunc, args),\n serializer,\n );\n linkedRoot.setAttribute(\n AttributeKeys.JUDGMENT_INPUT,\n serializedInput,\n );\n invocationSpan.setAttribute(\n AttributeKeys.JUDGMENT_INPUT,\n serializedInput,\n );\n }\n BaseTracer._emitPartial();\n\n return proxy.useSpan(linkedRoot, false, false, false, (): TReturn => {\n try {\n const result = innerFunc.call(this, ...args);\n if (result instanceof Promise) {\n return (result as Promise<unknown>)\n .then((res) => {\n if (recordOutput) recordOutputOnBoth(res);\n return res as TReturn;\n })\n .catch((e: unknown) => {\n recordErrorOnBoth(e);\n throw e;\n })\n .finally(endBoth) as TReturn;\n }\n if (recordOutput) recordOutputOnBoth(result);\n endBoth();\n return result;\n } catch (e) {\n recordErrorOnBoth(e);\n endBoth();\n throw e;\n }\n });\n }\n\n return otelTracer.startActiveSpan(name, (span) => {\n if (spanType) {\n span.setAttribute(AttributeKeys.JUDGMENT_SPAN_KIND, spanType);\n }\n try {\n if (recordInput) {\n span.setAttribute(\n AttributeKeys.JUDGMENT_INPUT,\n serializeAttribute(\n getInputs(innerFunc, args),\n BaseTracer._getSerializer(),\n ),\n );\n }\n BaseTracer._emitPartial();\n const result = innerFunc.call(this, ...args);\n\n if (result instanceof Promise) {\n return (result as Promise<unknown>)\n .then((res) => {\n if (recordOutput) {\n span.setAttribute(\n AttributeKeys.JUDGMENT_OUTPUT,\n serializeAttribute(res, BaseTracer._getSerializer()),\n );\n }\n return res as TReturn;\n })\n .catch((e: unknown) => {\n span.recordException(e as Error);\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: String(e),\n });\n throw e;\n })\n .finally(() => {\n span.end();\n }) as TReturn;\n }\n\n if (recordOutput) {\n span.setAttribute(\n AttributeKeys.JUDGMENT_OUTPUT,\n serializeAttribute(result, BaseTracer._getSerializer()),\n );\n }\n span.end();\n return result;\n } catch (e) {\n span.recordException(e as Error);\n span.setStatus({ code: SpanStatusCode.ERROR, message: String(e) });\n span.end();\n throw e;\n }\n });\n };\n };\n\n if (!func) return decorator;\n return decorator(func);\n }\n\n // ------------------------------------------------------------------ //\n // Internal: resolve target span //\n // ------------------------------------------------------------------ //\n\n private static _resolveSpan(span?: Span): Span | undefined {\n if (span) return span;\n return BaseTracer._getProxyProvider().getCurrentSpan();\n }\n\n // ------------------------------------------------------------------ //\n // Static: Span Kind //\n // ------------------------------------------------------------------ //\n\n /**\n * Set the kind of a span.\n *\n * @param kind - The span kind (e.g. \"llm\", \"tool\", \"span\").\n * @param span - Target span. Defaults to the current active span.\n */\n static setSpanKind(kind: string): void;\n static setSpanKind(kind: string, span: Span): void;\n static setSpanKind(kind: string, span?: Span): void {\n dontThrow(\"BaseTracer.setSpanKind\", () => {\n if (!kind) return;\n const target = BaseTracer._resolveSpan(span);\n if (target?.isRecording()) {\n target.setAttribute(AttributeKeys.JUDGMENT_SPAN_KIND, kind);\n }\n });\n }\n\n /**\n * Set the current span kind to \"llm\".\n */\n static setLLMSpan(): void {\n BaseTracer.setSpanKind(\"llm\");\n }\n\n /**\n * Set the current span kind to \"tool\".\n */\n static setToolSpan(): void {\n BaseTracer.setSpanKind(\"tool\");\n }\n\n /**\n * Set the current span kind to \"span\".\n */\n static setGeneralSpan(): void {\n BaseTracer.setSpanKind(\"span\");\n }\n\n // ------------------------------------------------------------------ //\n // Static: Span Attribute Operations //\n // ------------------------------------------------------------------ //\n\n /**\n * Set a single attribute on a span.\n *\n * @param key - The attribute key.\n * @param value - The attribute value (will be serialized).\n * @param span - Target span. Defaults to the current active span.\n */\n static setAttribute(key: string, value: unknown): void;\n static setAttribute(key: string, value: unknown, span: Span): void;\n static setAttribute(key: string, value: unknown, span?: Span): void {\n dontThrow(\"BaseTracer.setAttribute\", () => {\n const target = BaseTracer._resolveSpan(span);\n if (!target?.isRecording()) return;\n if (!key || value == null) return;\n target.setAttribute(\n key,\n serializeAttribute(value, BaseTracer._getSerializer()),\n );\n });\n }\n\n /**\n * Set multiple attributes on a span.\n *\n * @param attributes - Key-value pairs to set.\n * @param span - Target span. Defaults to the current active span.\n */\n static setAttributes(attributes: Record<string, unknown>): void;\n static setAttributes(attributes: Record<string, unknown>, span: Span): void;\n static setAttributes(attributes: Record<string, unknown>, span?: Span): void {\n for (const [key, value] of Object.entries(attributes)) {\n if (span) BaseTracer.setAttribute(key, value, span);\n else BaseTracer.setAttribute(key, value);\n }\n }\n\n /**\n * Set the input data on a span.\n *\n * @param inputData - The input data to record.\n * @param span - Target span. Defaults to the current active span.\n */\n static setInput(inputData: unknown): void;\n static setInput(inputData: unknown, span: Span): void;\n static setInput(inputData: unknown, span?: Span): void {\n if (span)\n BaseTracer.setAttribute(AttributeKeys.JUDGMENT_INPUT, inputData, span);\n else BaseTracer.setAttribute(AttributeKeys.JUDGMENT_INPUT, inputData);\n }\n\n /**\n * Set the output data on a span.\n *\n * @param outputData - The output data to record.\n * @param span - Target span. Defaults to the current active span.\n */\n static setOutput(outputData: unknown): void;\n static setOutput(outputData: unknown, span: Span): void;\n static setOutput(outputData: unknown, span?: Span): void {\n if (span)\n BaseTracer.setAttribute(AttributeKeys.JUDGMENT_OUTPUT, outputData, span);\n else BaseTracer.setAttribute(AttributeKeys.JUDGMENT_OUTPUT, outputData);\n }\n\n /**\n * Record an error on a span.\n *\n * Sets the span status to ERROR and records the exception.\n *\n * @param error - The error to record.\n * @param span - Target span. Defaults to the current active span.\n */\n static setError(error: unknown): void;\n static setError(error: unknown, span: Span): void;\n static setError(error: unknown, span?: Span): void {\n dontThrow(\"BaseTracer.setError\", () => {\n const target = BaseTracer._resolveSpan(span);\n if (!target?.isRecording()) return;\n target.recordException(error as Error);\n target.setStatus({ code: SpanStatusCode.ERROR, message: String(error) });\n });\n }\n\n /**\n * Record LLM usage metadata on a span.\n *\n * @param metadata - LLM metadata including model, provider, and token counts.\n * @param span - Target span. Defaults to the current active span.\n *\n * @example\n * ```typescript\n * Tracer.recordLLMMetadata({\n * model: \"gpt-4o\",\n * provider: \"openai\",\n * output_tokens: 150,\n * });\n * ```\n */\n static recordLLMMetadata(metadata: LLMMetadata): void;\n static recordLLMMetadata(metadata: LLMMetadata, span: Span): void;\n static recordLLMMetadata(metadata: LLMMetadata, span?: Span): void {\n dontThrow(\"BaseTracer.recordLLMMetadata\", () => {\n const target = BaseTracer._resolveSpan(span);\n if (!target?.isRecording()) return;\n\n if (typeof metadata.model === \"string\") {\n target.setAttribute(\n AttributeKeys.JUDGMENT_LLM_MODEL_NAME,\n metadata.model,\n );\n }\n\n if (typeof metadata.provider === \"string\") {\n target.setAttribute(\n AttributeKeys.JUDGMENT_LLM_PROVIDER,\n metadata.provider,\n );\n }\n\n if (typeof metadata.non_cached_input_tokens === \"number\") {\n target.setAttribute(\n AttributeKeys.JUDGMENT_USAGE_NON_CACHED_INPUT_TOKENS,\n metadata.non_cached_input_tokens,\n );\n }\n if (typeof metadata.output_tokens === \"number\") {\n target.setAttribute(\n AttributeKeys.JUDGMENT_USAGE_OUTPUT_TOKENS,\n metadata.output_tokens,\n );\n }\n if (typeof metadata.cache_read_input_tokens === \"number\") {\n target.setAttribute(\n AttributeKeys.JUDGMENT_USAGE_CACHE_READ_INPUT_TOKENS,\n metadata.cache_read_input_tokens,\n );\n }\n if (typeof metadata.cache_creation_input_tokens === \"number\") {\n target.setAttribute(\n AttributeKeys.JUDGMENT_USAGE_CACHE_CREATION_INPUT_TOKENS,\n metadata.cache_creation_input_tokens,\n );\n }\n if (typeof metadata.total_cost_usd === \"number\") {\n target.setAttribute(\n AttributeKeys.JUDGMENT_USAGE_TOTAL_COST_USD,\n metadata.total_cost_usd,\n );\n }\n });\n }\n\n // ------------------------------------------------------------------ //\n // Static: Context Propagation //\n // ------------------------------------------------------------------ //\n\n /**\n * Set a key on the current span and on baggage so it propagates to all\n * child spans. Also reattaches the current context to the updated one.\n */\n private static _setPropagatingBaggageKey(key: string, value: string): void {\n dontThrow(\"BaseTracer._setPropagatingBaggageKey\", () => {\n const proxy = BaseTracer._getProxyProvider();\n const currentSpan = proxy.getCurrentSpan();\n if (!currentSpan?.isRecording()) return;\n currentSpan.setAttribute(key, value);\n const ctx = proxy.getCurrentContext();\n const baggage = (getBaggage(ctx) ?? createBaggage()).setEntry(key, {\n value,\n });\n proxy.attachContext(setBaggage(ctx, baggage));\n });\n }\n\n /**\n * Set the customer ID on the current active span.\n *\n * The ID is automatically propagated to all child spans via baggage.\n * This method always targets the active span because it modifies\n * the active context's baggage for propagation.\n *\n * @param customerId - The customer identifier.\n */\n static setCustomerId(customerId: string): void {\n BaseTracer._setPropagatingBaggageKey(\n AttributeKeys.JUDGMENT_CUSTOMER_ID,\n customerId,\n );\n }\n\n /**\n * Set the customer user ID on the current active span.\n *\n * The ID is automatically propagated to all child spans via baggage.\n * This method always targets the active span because it modifies\n * the active context's baggage for propagation.\n *\n * @param customerUserId - The customer user identifier.\n */\n static setCustomerUserId(customerUserId: string): void {\n BaseTracer._setPropagatingBaggageKey(\n AttributeKeys.JUDGMENT_CUSTOMER_USER_ID,\n customerUserId,\n );\n }\n\n /**\n * Set the session ID on the current active span.\n *\n * The ID is automatically propagated to all child spans via baggage.\n * This method always targets the active span because it modifies\n * the active context's baggage for propagation.\n *\n * @param sessionId - The session identifier.\n */\n static setSessionId(sessionId: string): void {\n BaseTracer._setPropagatingBaggageKey(\n AttributeKeys.JUDGMENT_SESSION_ID,\n sessionId,\n );\n }\n\n /**\n * Set an attribute and propagate it to all child spans via baggage.\n *\n * Unlike {@link setAttribute} (single span only). The `judgment.` prefix is\n * reserved and ignored.\n */\n static setPropagatingAttribute(key: string, value: string): void {\n if (key.startsWith(\"judgment.\")) {\n Logger.error(\n `setPropagatingAttribute: key \"${key}\" uses the reserved \"judgment.\" prefix; ignoring`,\n );\n return;\n }\n BaseTracer._setPropagatingBaggageKey(key, value);\n }\n\n // ------------------------------------------------------------------ //\n // Static: Tags //\n // ------------------------------------------------------------------ //\n\n /**\n * Add tags to the current trace.\n *\n * @param tags - A single tag string or an array of tag strings.\n *\n * @example\n * ```typescript\n * Tracer.tag(\"production\");\n * Tracer.tag([\"important\", \"customer-facing\"]);\n * ```\n */\n static tag(tags: string | string[]): void {\n dontThrow(\"BaseTracer.tag\", () => {\n if (!tags || (Array.isArray(tags) && tags.length === 0)) return;\n const proxy = BaseTracer._getProxyProvider();\n const tracer = proxy.getActiveTracer();\n if (!tracer?.projectId || !tracer._client) return;\n if (!tracer.supportsLiveInstrumentation) return;\n const ids = BaseTracer._getCurrentTraceAndSpanId();\n if (!ids) return;\n const [traceId] = ids;\n const tagArray = Array.isArray(tags) ? tags : [tags];\n tracer._client\n .postV1projectsTracesByTraceIdTags(tracer.projectId, traceId, {\n tags: tagArray,\n })\n .catch((err: unknown) => {\n Logger.error(`tag failed: ${String(err)}`);\n });\n });\n }\n\n // ------------------------------------------------------------------ //\n // Static API: Async Evaluation //\n // ------------------------------------------------------------------ //\n\n /**\n * Trigger an asynchronous server-side evaluation on a span.\n *\n * The evaluation is queued and processed server-side by the Judgment\n * platform after the span ends. Use this to score live traffic\n * without blocking your application.\n *\n * @param options - Evaluation options. `judge` is required; `example`\n * is optional evaluation data.\n * @param span - Target span. Defaults to the current active span.\n *\n * @example\n * ```typescript\n * Tracer.asyncEvaluate({\n * judge: \"answer_relevancy\",\n * example: {\n * input: \"What is AI?\",\n * actual_output: response,\n * },\n * });\n * ```\n */\n static asyncEvaluate(options: AsyncEvaluateOptions): void;\n static asyncEvaluate(options: AsyncEvaluateOptions, span: Span): void;\n static asyncEvaluate(options: AsyncEvaluateOptions, span?: Span): void {\n dontThrow(\"BaseTracer.asyncEvaluate\", () => {\n const { judge, example } = options;\n const proxy = BaseTracer._getProxyProvider();\n const tracer = proxy.getActiveTracer();\n if (!tracer?.projectId) return;\n if (!tracer.supportsLiveInstrumentation) return;\n const target = BaseTracer._resolveSpan(span);\n if (!target?.isRecording()) return;\n\n const processor = tracer.getSpanProcessor();\n const ctx = target.spanContext();\n\n const idx = processor.stateIncr(\n ctx,\n InternalAttributeKeys.PENDING_EVALS_COUNT,\n );\n const payload: PendingEvalPayload = {\n project_id: tracer.projectId,\n eval_name: `async_evaluate_${judge}_${idx}`,\n judges: [{ name: judge }],\n examples: [\n {\n ...example,\n example_id: crypto.randomUUID(),\n created_at: new Date().toISOString(),\n trace_id: ctx.traceId,\n span_id: ctx.spanId,\n },\n ],\n is_offline: false,\n is_behavior: false,\n };\n const updated = processor.stateAppend<PendingEvalPayload>(\n ctx,\n InternalAttributeKeys.PENDING_EVALS,\n payload,\n );\n\n // Raw setAttribute — value is already JSON-stringified, BaseTracer.setAttribute would double-serialize.\n target.setAttribute(\n AttributeKeys.JUDGMENT_PENDING_TRACE_EVAL,\n JSON.stringify(updated),\n );\n });\n }\n}\n\nfunction getInputs<TArgs extends unknown[]>(\n f: (...args: TArgs) => unknown,\n args: TArgs,\n): Record<string, unknown> {\n try {\n const paramNames = parseFunctionArgs(f)\n .map((param) =>\n param\n .replace(/^\\.\\.\\./, \"\")\n .split(\"=\")[0]\n .trim(),\n )\n .filter((param) => param.length > 0);\n const inputs: Record<string, unknown> = {};\n paramNames.forEach((name, index) => {\n if (index < args.length) {\n inputs[name] = args[index];\n }\n });\n return inputs;\n } catch {\n return {};\n }\n}\n",
38
38
  "import {\n ROOT_CONTEXT,\n context as otelContext,\n type Context,\n} from \"@opentelemetry/api\";\nimport { AsyncLocalStorage } from \"async_hooks\";\n\ntype OTelContextApi = typeof otelContext;\n\nlet installed = false;\nlet getJudgmentContext: (() => Context) | null = null;\n\nconst gateStorage = new AsyncLocalStorage<boolean>();\nconst bridgeContextStorage = new AsyncLocalStorage<Context>();\n\nconst originalActive = otelContext.active.bind(otelContext);\nconst originalWith = otelContext.with.bind(otelContext);\nconst originalBind = otelContext.bind.bind(otelContext);\n\nfunction isGateEnabled(): boolean {\n return gateStorage.getStore() === true;\n}\n\nexport function installOtelContextBridge(\n getCurrentJudgmentContext: () => Context,\n): void {\n getJudgmentContext = getCurrentJudgmentContext;\n if (installed) return;\n\n const api = otelContext as OTelContextApi & {\n active: () => Context;\n with: <A extends unknown[], F extends (...args: A) => ReturnType<F>>(\n context: Context,\n fn: F,\n thisArg?: ThisParameterType<F>,\n ...args: A\n ) => ReturnType<F>;\n bind: <T>(context: Context, target: T) => T;\n };\n\n api.active = (): Context => {\n if (!isGateEnabled()) return originalActive();\n const bridged = bridgeContextStorage.getStore();\n if (bridged) return bridged;\n return getJudgmentContext ? getJudgmentContext() : ROOT_CONTEXT;\n };\n\n api.with = (contextValue, fn, thisArg, ...args) => {\n if (!isGateEnabled())\n return originalWith(contextValue, fn, thisArg, ...args);\n return bridgeContextStorage.run(contextValue, () =>\n fn.apply(thisArg, args),\n );\n };\n\n api.bind = (contextValue, target) => {\n if (!isGateEnabled()) return originalBind(contextValue, target);\n if (typeof target !== \"function\") return target;\n const fn = target as unknown as (...args: unknown[]) => unknown;\n return ((...args: unknown[]) =>\n bridgeContextStorage.run(contextValue, () =>\n fn(...args),\n )) as typeof target;\n };\n\n installed = true;\n}\n\nexport function runWithOtelBridgeGate<T>(ctx: Context, fn: () => T): T {\n return gateStorage.run(true, () => bridgeContextStorage.run(ctx, fn));\n}\n",
39
39
  "import {\n ROOT_CONTEXT,\n SpanStatusCode,\n trace,\n type Context,\n type Span,\n type SpanContext,\n type SpanOptions,\n type Tracer,\n type TracerProvider,\n} from \"@opentelemetry/api\";\nimport {\n registerInstrumentations,\n type Instrumentation,\n} from \"@opentelemetry/instrumentation\";\nimport { AsyncLocalStorage } from \"async_hooks\";\nimport { Logger } from \"../utils/logger\";\nimport type { BaseTracer } from \"./BaseTracer\";\nimport {\n installOtelContextBridge,\n runWithOtelBridgeGate,\n} from \"./instrumentation/OtelContextBridge\";\nimport { noOpTracer } from \"./NoOpTracer\";\nimport { setTraceRuntime } from \"./runtime\";\n\nconst TRACER_NAME = \"judgeval\";\n\nconst _contextStorage = new AsyncLocalStorage<Context>();\n\nclass ProxyTracer implements Tracer {\n private _provider: JudgmentTracerProvider;\n\n constructor(provider: JudgmentTracerProvider) {\n this._provider = provider;\n }\n\n startSpan(name: string, options?: SpanOptions, context?: Context): Span {\n const ctx = context ?? this._provider.getCurrentContext();\n const delegate = this._provider._getDelegateTracer();\n return delegate.startSpan(name, options, ctx);\n }\n\n startActiveSpan<F extends (span: Span) => unknown>(\n name: string,\n fn: F,\n ): ReturnType<F>;\n startActiveSpan<F extends (span: Span) => unknown>(\n name: string,\n options: SpanOptions,\n fn: F,\n ): ReturnType<F>;\n startActiveSpan<F extends (span: Span) => unknown>(\n name: string,\n options: SpanOptions,\n context: Context,\n fn: F,\n ): ReturnType<F>;\n startActiveSpan<F extends (span: Span) => unknown>(\n name: string,\n ...args: [F] | [SpanOptions, F] | [SpanOptions, Context, F]\n ): ReturnType<F> {\n let options: SpanOptions = {};\n let context: Context = this._provider.getCurrentContext();\n let fn: F;\n\n if (args.length === 1) {\n fn = args[0];\n } else if (args.length === 2) {\n options = args[0];\n fn = args[1];\n } else {\n options = args[0];\n context = args[1];\n fn = args[2];\n }\n\n const span = this.startSpan(name, options, context);\n return this._provider.useSpan(span, false, false, false, () =>\n fn(span),\n ) as ReturnType<F>;\n }\n}\n\n/**\n * Global singleton that manages tracer registration and context propagation.\n *\n * Acts as a proxy TracerProvider that delegates to the currently active\n * tracer's underlying OpenTelemetry provider.\n */\nexport class JudgmentTracerProvider implements TracerProvider {\n private static _instance: JudgmentTracerProvider | null = null;\n\n private _activeTracer: BaseTracer | null = null;\n private _instrumentations: Instrumentation[] = [];\n private _proxyTracer: ProxyTracer;\n private _tracers = new Set<BaseTracer>();\n\n private constructor() {\n this._proxyTracer = new ProxyTracer(this);\n setTraceRuntime(this);\n installOtelContextBridge(() => this.getCurrentContext());\n }\n\n /**\n * Get the singleton JudgmentTracerProvider instance.\n *\n * @returns The global provider instance.\n */\n static getInstance(): JudgmentTracerProvider {\n JudgmentTracerProvider._instance ??= new JudgmentTracerProvider();\n return JudgmentTracerProvider._instance;\n }\n\n /**\n * Install the JudgmentTracerProvider as the global tracer provider.\n * This generally does not need to be called - Judgeval automatically uses this for all its observability functionality.\n * Only use this if you specifically want to override the global tracer provider, which will enable all Opentelemetry captured instrumentations to flow through judgeval.\n * @returns True if the installation was successful, false otherwise.\n */\n static installAsGlobalTracerProvider(): boolean {\n const instance = JudgmentTracerProvider.getInstance();\n return trace.setGlobalTracerProvider(instance);\n }\n\n /**\n * Register a tracer with the provider.\n *\n * @param tracer - The tracer to register.\n */\n register(tracer: BaseTracer): void {\n this._tracers.add(tracer);\n }\n\n /**\n * Remove a tracer from the provider.\n *\n * @param tracer - The tracer to deregister.\n */\n deregister(tracer: BaseTracer): void {\n this._tracers.delete(tracer);\n }\n\n /**\n * Set a tracer as the active tracer.\n *\n * Cannot be called while a root span is active.\n *\n * @param tracer - The tracer to activate.\n * @returns `true` if activation succeeded.\n */\n setActive(tracer: BaseTracer): boolean {\n const currentSpan = this.getCurrentSpan();\n if (currentSpan?.isRecording()) {\n if (trace.getSpan(this.getCurrentContext()) === currentSpan) {\n Logger.error(\n \"Cannot set_active() while a root span is active. Keeping existing tracer provider.\",\n );\n return false;\n }\n }\n this.register(tracer);\n this._activeTracer = tracer;\n return true;\n }\n\n /**\n * Get the currently active tracer.\n *\n * @returns The active tracer, or `null` if none.\n */\n getActiveTracer(): BaseTracer | null {\n return this._activeTracer;\n }\n\n /**\n * Get the current OpenTelemetry context.\n *\n * @returns The current context.\n */\n getCurrentContext(): Context {\n return _contextStorage.getStore() ?? ROOT_CONTEXT;\n }\n\n /**\n * Set a span on a context, returning a new context.\n */\n setSpan(ctx: Context, span: Span): Context {\n return trace.setSpan(ctx, span);\n }\n\n /**\n * Wrap a SpanContext into a non-recording Span.\n */\n wrapSpanContext(spanContext: SpanContext): Span {\n return trace.wrapSpanContext(spanContext);\n }\n\n /**\n * Get the span from the current context.\n *\n * @returns The current span, or `undefined` if none.\n */\n getCurrentSpan(): Span | undefined {\n const ctx = this.getCurrentContext();\n return trace.getSpan(ctx);\n }\n\n /**\n * Check whether there is an active root span.\n *\n * @returns `true` if a root span is currently recording.\n */\n hasActiveRootSpan(): boolean {\n const currentSpan = this.getCurrentSpan();\n if (!currentSpan?.isRecording()) return false;\n return true;\n }\n\n _getDelegateTracer(): Tracer {\n const tracer = this._activeTracer;\n if (!tracer) {\n Logger.debug(\"No active tracer, returning NoOpTracer\");\n return noOpTracer;\n }\n return tracer._tracerProvider.getTracer(TRACER_NAME);\n }\n\n getTracer(\n _instrumentingModuleName: string,\n _instrumentingLibraryVersion?: string,\n _options?: { schemaUrl?: string },\n ): Tracer {\n return this._proxyTracer;\n }\n\n /**\n * Register an OpenTelemetry instrumentation.\n *\n * @param instrumentor - The instrumentation to add.\n */\n addInstrumentation(instrumentor: Instrumentation): void {\n try {\n registerInstrumentations({\n tracerProvider: this,\n instrumentations: [instrumentor],\n });\n this._instrumentations.push(instrumentor);\n } catch (err: unknown) {\n Logger.error(`Failed to add instrumentation: ${String(err)}`);\n }\n }\n\n useSpan<T>(\n span: Span,\n endOnExit: boolean,\n recordException: boolean,\n setStatusOnException: boolean,\n fn: () => T,\n ): T {\n const prevCtx = this.getCurrentContext();\n const ctx = trace.setSpan(prevCtx, span);\n return _contextStorage.run(ctx, () =>\n runWithOtelBridgeGate(ctx, () => {\n try {\n const result = fn();\n if (result instanceof Promise) {\n return result\n .catch((exc: unknown) => {\n if (span.isRecording()) {\n if (recordException) span.recordException(exc as Error);\n if (setStatusOnException) {\n const err = exc as Error;\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: `${err.name}: ${err.message}`,\n });\n }\n }\n throw exc;\n })\n .finally(() => {\n if (endOnExit) span.end();\n }) as T;\n }\n if (endOnExit) span.end();\n return result;\n } catch (exc) {\n if (span.isRecording()) {\n if (recordException) span.recordException(exc as Error);\n if (setStatusOnException) {\n const err = exc as Error;\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: `${err.name}: ${err.message}`,\n });\n }\n }\n if (endOnExit) span.end();\n throw exc;\n }\n }),\n );\n }\n\n attachContext(ctx: Context): void {\n _contextStorage.enterWith(ctx);\n }\n\n /**\n * Run `fn` with `ctx` installed as the active context for the\n * duration of the callback. Sync or async.\n */\n withContext<T>(ctx: Context, fn: () => T): T {\n return _contextStorage.run(ctx, () => runWithOtelBridgeGate(ctx, fn));\n }\n\n /**\n * Flush all registered tracers.\n */\n async forceFlush(): Promise<void> {\n const results = await Promise.allSettled(\n Array.from(this._tracers).map((t) => t._tracerProvider.forceFlush()),\n );\n for (const r of results) {\n if (r.status === \"rejected\") {\n Logger.error(`forceFlush failed: ${String(r.reason)}`);\n }\n }\n }\n\n /**\n * Shut down all registered tracers and clear state.\n */\n async shutdown(): Promise<void> {\n const results = await Promise.allSettled(\n Array.from(this._tracers).map((t) => t._tracerProvider.shutdown()),\n );\n for (const r of results) {\n if (r.status === \"rejected\") {\n Logger.error(`shutdown failed: ${String(r.reason)}`);\n }\n }\n this._activeTracer = null;\n this._tracers.clear();\n }\n}\n",
40
40
  "import type { ExportResult } from \"@opentelemetry/core\";\nimport { OTLPTraceExporter } from \"@opentelemetry/exporter-trace-otlp-http\";\nimport type { ReadableSpan, SpanExporter } from \"@opentelemetry/sdk-trace-base\";\nimport { Logger } from \"../../utils/logger\";\n\n/**\n * Span exporter that sends traces to the Judgment platform via OTLP HTTP.\n *\n * Wraps the OpenTelemetry OTLP trace exporter with Judgment-specific\n * authentication headers.\n */\nexport class JudgmentSpanExporter implements SpanExporter {\n protected _delegate: OTLPTraceExporter | null;\n\n /**\n * Create a new JudgmentSpanExporter.\n *\n * @param endpoint - The OTLP HTTP endpoint URL.\n * @param apiKey - Judgment API key for authentication.\n * @param organizationId - Judgment organization ID.\n * @param projectId - Judgment project ID.\n */\n constructor(\n endpoint: string,\n apiKey: string,\n organizationId: string,\n projectId: string,\n ) {\n if (!endpoint) {\n this._delegate = null;\n return;\n }\n this._delegate = new OTLPTraceExporter({\n url: endpoint,\n headers: {\n Authorization: `Bearer ${apiKey}`,\n \"X-Organization-Id\": organizationId,\n \"X-Project-Id\": projectId,\n },\n });\n }\n\n /**\n * Export a batch of spans.\n *\n * @param spans - The spans to export.\n * @param resultCallback - Callback invoked with the export result.\n */\n export(\n spans: ReadableSpan[],\n resultCallback: (result: ExportResult) => void,\n ): void {\n Logger.info(`Exported ${spans.length} spans`);\n this._delegate?.export(spans, resultCallback);\n }\n\n /**\n * Shut down the exporter.\n */\n shutdown(): Promise<void> {\n return this._delegate?.shutdown() ?? Promise.resolve();\n }\n\n /**\n * Flush any pending exports.\n */\n forceFlush(): Promise<void> {\n return this._delegate?.forceFlush() ?? Promise.resolve();\n }\n}\n",
@@ -64,7 +64,7 @@
64
64
  "export {\n Judgeval,\n type JudgevalConfig,\n type JudgevalOfflineTracerOptions,\n} from \"./Judgeval\";\n\nexport {\n BaseTracer,\n JudgmentBaggagePropagator,\n JudgmentBaggageSpanProcessor,\n JudgmentSpanExporter,\n JudgmentTracerProvider,\n Tracer,\n OfflineTracer,\n type OfflineTracerConfig,\n NoOpSpanExporter,\n NoOpSpanProcessor,\n OfflineJudgmentSpanProcessor,\n ALLOW_ALL_BAGGAGE_KEYS,\n type BaggageKeyPredicate,\n baggage,\n propagation,\n} from \"./trace\";\n\nexport { wrap, wrapOpenAI } from \"./instrumentation\";\n\nexport { Example } from \"./data\";\nexport type { ScoringResult } from \"./data\";\n\nexport { Judge } from \"./judges\";\nexport type {\n BinaryResponse,\n NumericResponse,\n CategoricalResponse,\n ScorerResponse,\n Citation,\n} from \"./judges\";\n\nexport { Evaluation, type EvaluationRunOptions } from \"./evaluation\";\n\nexport { Dataset } from \"./datasets\";\nexport type { DatasetInfo } from \"./internal/api/models/DatasetInfo\";\nexport type { ExperimentScorer } from \"./internal/api/models/ExperimentScorer\";\nexport {\n validateDatasetSchema,\n inferSchemaFromExamples,\n type DatasetSchema,\n type DatasetSchemaProperty,\n type DatasetColumnType,\n} from \"./datasets/schema\";\n\nexport { AgentJudgeFactory } from \"./agent-judges\";\nexport type { AgentJudge, ScoreType } from \"./agent-judges\";\n\nexport {\n OfflineTestsFactory,\n OfflineTestRunner,\n type JudgeRef,\n type OfflineRunOptions,\n type TestConfig,\n type JudgeVersionPin,\n type OfflineScorerData,\n type OfflineExampleResult,\n type OfflineTestResult,\n type AgentFunction,\n type PassConditionFn,\n} from \"./offline-tests\";\n",
65
65
  "export { Example, type ExampleDict } from \"./Example\";\nexport type { ScoringResult } from \"./ScoringResult\";\n"
66
66
  ],
67
- "mappings": "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",
68
- "debugId": "EBF1264474225C7964756E2164756E21",
67
+ "mappings": "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",
68
+ "debugId": "5568DEC83850C92264756E2164756E21",
69
69
  "names": []
70
70
  }
@@ -445,6 +445,13 @@ export declare abstract class BaseTracer {
445
445
  * @param sessionId - The session identifier.
446
446
  */
447
447
  static setSessionId(sessionId: string): void;
448
+ /**
449
+ * Set an attribute and propagate it to all child spans via baggage.
450
+ *
451
+ * Unlike {@link setAttribute} (single span only). The `judgment.` prefix is
452
+ * reserved and ignored.
453
+ */
454
+ static setPropagatingAttribute(key: string, value: string): void;
448
455
  /**
449
456
  * Add tags to the current trace.
450
457
  *