judgeval 0.7.2 → 0.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,9 @@
1
- import { type Context, type SpanOptions, type Tracer } from "@opentelemetry/api";
1
+ import { type Context, type Span, type SpanOptions, type Tracer } from "@opentelemetry/api";
2
2
  import type { SpanExporter } from "@opentelemetry/sdk-trace-base";
3
3
  import { Example } from "../data/Example";
4
4
  import { JudgmentApiClient } from "../internal/api";
5
5
  import { BaseScorer } from "../scorers/BaseScorer";
6
+ import { JudgmentSpanProcessor } from "./processors/JudgmentSpanProcessor";
6
7
  export type Serializer = (obj: unknown) => string;
7
8
  export declare abstract class BaseTracer {
8
9
  static readonly TRACER_NAME = "judgeval";
@@ -17,6 +18,7 @@ export declare abstract class BaseTracer {
17
18
  abstract initialize(): Promise<void>;
18
19
  abstract shutdown(): Promise<void>;
19
20
  getSpanExporter(): SpanExporter;
21
+ getSpanProcessor(): JudgmentSpanProcessor;
20
22
  getTracer(): Tracer;
21
23
  setSpanKind(kind: string): void;
22
24
  setAttribute(key: string, value: unknown): void;
@@ -28,11 +30,71 @@ export declare abstract class BaseTracer {
28
30
  setOutput(outputData: unknown): void;
29
31
  asyncEvaluate(scorer: BaseScorer, example: Example): void;
30
32
  asyncTraceEvaluate(scorer: BaseScorer): void;
31
- span<T>(spanName: string, callableFunc: () => T, options?: SpanOptions, ctx?: Context): T;
32
- observe<TArgs extends any[], TResult>(func: (...args: TArgs) => TResult, spanType?: string, spanName?: string | null, options?: SpanOptions, ctx?: Context): (...args: TArgs) => TResult;
33
+ /**
34
+ * Creates a new span for manual instrumentation.
35
+ *
36
+ * WARNING: You probably don't want this method. Use with() instead for most cases.
37
+ *
38
+ * This returns a span that is NOT active in the context, meaning child operations
39
+ * will NOT automatically link to it as a parent. You must manually manage the span
40
+ * lifecycle including calling span.end() and handling errors.
41
+ *
42
+ * To make the span active so child operations auto-link to it:
43
+ * ```
44
+ * import { context, trace } from "@opentelemetry/api";
45
+ * const span = tracer.span("my-span");
46
+ * context.with(trace.setSpan(context.active(), span), () => {
47
+ * // span is active here, child ops auto-link
48
+ * });
49
+ * span.end();
50
+ * ```
51
+ *
52
+ * Consider using with() instead, which handles context and lifecycle automatically.
53
+ *
54
+ * @param spanName - The name of the span
55
+ * @param options - Optional span configuration (attributes, links, etc)
56
+ * @param ctx - Optional context to use as parent. Defaults to the active context
57
+ * @returns A Span object that must be manually ended
58
+ */
59
+ span(spanName: string, options?: SpanOptions, ctx?: Context): Span;
60
+ /**
61
+ * Wraps a function execution in a span with automatic lifecycle management.
62
+ *
63
+ * Automatically handles span creation, ending, and error recording. The span is passed to
64
+ * your callback function, allowing you to add custom attributes or access span properties.
65
+ * The span will be ended automatically when the function completes or throws an error.
66
+ *
67
+ * Supports both synchronous and asynchronous functions. For async functions, the span
68
+ * remains active until the Promise resolves or rejects.
69
+ *
70
+ * @param spanName - The name of the span
71
+ * @param callableFunc - The function to execute within the span. Receives the span as a parameter
72
+ * @param options - Optional span configuration
73
+ * @param ctx - Optional context to use as parent. Defaults to the active context
74
+ * @returns The return value of callableFunc (Promise if async, direct value if sync)
75
+ */
76
+ with<T>(spanName: string, callableFunc: (span: Span) => Promise<T>, options?: SpanOptions, ctx?: Context): Promise<T>;
77
+ with<T>(spanName: string, callableFunc: (span: Span) => T, options?: SpanOptions, ctx?: Context): T;
78
+ /**
79
+ * Wraps a function to automatically trace all its invocations.
80
+ *
81
+ * Returns a new function that, when called, will automatically create a span, capture input
82
+ * arguments, execute the original function, capture the output, and handle errors. The span
83
+ * is automatically ended after the function completes.
84
+ *
85
+ * Supports both synchronous and asynchronous functions. Input arguments are serialized and
86
+ * stored as span attributes, and the return value is captured as output.
87
+ *
88
+ * @param func - The function to wrap with automatic tracing
89
+ * @param spanType - The type of span to create (default: "span"). Common values: "span", "llm", "tool"
90
+ * @param spanName - Optional custom name for the span. Defaults to the function name
91
+ * @param options - Optional span configuration
92
+ * @param ctx - Optional context to use as parent. Defaults to the active context
93
+ * @returns A wrapped version of the function that creates spans on each invocation
94
+ */
95
+ observe<TArgs extends unknown[], TResult>(func: (...args: TArgs) => TResult, spanType?: string, spanName?: string | null, options?: SpanOptions, ctx?: Context): (...args: TArgs) => TResult;
33
96
  private resolveProjectId;
34
97
  private buildEndpoint;
35
- private createJudgmentSpanExporter;
36
98
  private generateRunId;
37
99
  private createEvaluationRun;
38
100
  private createTraceEvaluationRun;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseTracer.d.ts","sourceRoot":"","sources":["../../src/tracer/BaseTracer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseTracer.d.ts","sourceRoot":"","sources":["../../src/tracer/BaseTracer.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { Sampler } from "@opentelemetry/sdk-trace-base";
1
2
  import { JudgmentApiClient } from "../internal/api";
2
3
  import { BaseTracer, type Serializer } from "./BaseTracer";
3
4
  export interface BrowserTracerConfig {
@@ -6,14 +7,17 @@ export interface BrowserTracerConfig {
6
7
  enableMonitoring?: boolean;
7
8
  serializer?: Serializer;
8
9
  resourceAttributes?: Record<string, unknown>;
10
+ sampler?: Sampler;
9
11
  initialize?: boolean;
10
12
  }
11
- interface InternalBrowserTracerConfig extends Required<Omit<BrowserTracerConfig, "resourceAttributes">> {
13
+ interface InternalBrowserTracerConfig extends Required<Omit<BrowserTracerConfig, "resourceAttributes" | "sampler">> {
12
14
  resourceAttributes: Record<string, unknown>;
15
+ sampler?: Sampler;
13
16
  }
14
17
  export declare class BrowserTracer extends BaseTracer {
15
18
  private webTracerProvider;
16
19
  private resourceAttributes;
20
+ private sampler?;
17
21
  private constructor();
18
22
  static create(config: InternalBrowserTracerConfig, apiClient: JudgmentApiClient): Promise<BrowserTracer>;
19
23
  initialize(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserTracer.d.ts","sourceRoot":"","sources":["../../src/tracer/BrowserTracer.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,2BACR,SAAQ,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;IACjE,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C;AAED,qBAAa,aAAc,SAAQ,UAAU;IAC3C,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,kBAAkB,CAA0B;IAEpD,OAAO;WAWM,MAAM,CACjB,MAAM,EAAE,2BAA2B,EACnC,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,aAAa,CAAC;IAmBnB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAahC"}
1
+ {"version":3,"file":"BrowserTracer.d.ts","sourceRoot":"","sources":["../../src/tracer/BrowserTracer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,2BACR,SAAQ,QAAQ,CACd,IAAI,CAAC,mBAAmB,EAAE,oBAAoB,GAAG,SAAS,CAAC,CAC5D;IACD,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,aAAc,SAAQ,UAAU;IAC3C,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,OAAO,CAAC,CAAU;IAE1B,OAAO;WAaM,MAAM,CACjB,MAAM,EAAE,2BAA2B,EACnC,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,aAAa,CAAC;IAoBnB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAahC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserTracerFactory.d.ts","sourceRoot":"","sources":["../../src/tracer/BrowserTracerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE1E,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;gBAE/B,MAAM,EAAE,iBAAiB;IAI/B,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;CAiBlE"}
1
+ {"version":3,"file":"BrowserTracerFactory.d.ts","sourceRoot":"","sources":["../../src/tracer/BrowserTracerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE1E,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;gBAE/B,MAAM,EAAE,iBAAiB;IAI/B,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;CAkBlE"}
@@ -0,0 +1,30 @@
1
+ import { Tracer } from "@opentelemetry/api";
2
+ import { NodeTracerConfig, NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
3
+ export interface filterTracerParams {
4
+ name: string;
5
+ version?: string;
6
+ options?: {
7
+ schemaUrl?: string;
8
+ };
9
+ }
10
+ interface JudgmentNodeTracerProviderConfig extends NodeTracerConfig {
11
+ /**
12
+ * Filters what tracers are allowed to be created. This is useful when you want to disable any instrumentation / control instrumentation
13
+ * that is automatically created by auto-instrumentations or other libraries.
14
+ *
15
+ * If set to false, the caller will receive a NoOpTracer.
16
+ *
17
+ * @param params The parameters of the tracer to check if it should be allowed.
18
+ * @returns Whether the tracer should be allowed.
19
+ */
20
+ filterTracer?: (params: filterTracerParams) => boolean;
21
+ }
22
+ export declare class JudgmentNodeTracerProvider extends NodeTracerProvider {
23
+ private readonly filterTracer;
24
+ constructor(config: JudgmentNodeTracerProviderConfig);
25
+ getTracer(name: string, version?: string, options?: {
26
+ schemaUrl?: string;
27
+ }): Tracer;
28
+ }
29
+ export {};
30
+ //# sourceMappingURL=JudgmentNodeTracerProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JudgmentNodeTracerProvider.d.ts","sourceRoot":"","sources":["../../src/tracer/JudgmentNodeTracerProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAKvC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAClC;AAED,UAAU,gCAAiC,SAAQ,gBAAgB;IACjE;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC;CACxD;AAED,qBAAa,0BAA2B,SAAQ,kBAAkB;IAChE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0C;gBAE3D,MAAM,EAAE,gCAAgC;IAKpD,SAAS,CACP,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/B,MAAM;CAqBV"}
@@ -0,0 +1,15 @@
1
+ import { type Attributes, type AttributeValue, type Exception, type Link, type Span, type SpanContext, type SpanStatus, type TimeInput } from "@opentelemetry/api";
2
+ export declare class NoOpSpan implements Span {
3
+ setAttribute(_key: string, _value: AttributeValue): this;
4
+ setAttributes(_attributes: Attributes): this;
5
+ addEvent(_name: string, _attributesOrStartTime?: Attributes | TimeInput, _startTime?: TimeInput): this;
6
+ addLink(_link: Link): this;
7
+ addLinks(_links: Link[]): this;
8
+ setStatus(_status: SpanStatus): this;
9
+ updateName(_name: string): this;
10
+ end(_endTime?: TimeInput): void;
11
+ isRecording(): boolean;
12
+ recordException(_exception: Exception, _time?: TimeInput): void;
13
+ spanContext(): SpanContext;
14
+ }
15
+ //# sourceMappingURL=NoOpSpan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NoOpSpan.d.ts","sourceRoot":"","sources":["../../src/tracer/NoOpSpan.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,IAAI,EACT,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,QAAS,YAAW,IAAI;IACnC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;IAIxD,aAAa,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI;IAI5C,QAAQ,CACN,KAAK,EAAE,MAAM,EACb,sBAAsB,CAAC,EAAE,UAAU,GAAG,SAAS,EAC/C,UAAU,CAAC,EAAE,SAAS,GACrB,IAAI;IAIP,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAI1B,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI;IAI9B,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAIpC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/B,GAAG,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,IAAI;IAI/B,WAAW,IAAI,OAAO;IAItB,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI;IAI/D,WAAW,IAAI,WAAW;CAG3B"}
@@ -0,0 +1,9 @@
1
+ import { type Context, type Span, type SpanOptions, type Tracer } from "@opentelemetry/api";
2
+ export declare class NoOpTracer implements Tracer {
3
+ private readonly noopSpan;
4
+ startSpan(_name: string, _options?: SpanOptions, _context?: Context): Span;
5
+ startActiveSpan<F extends (span: Span) => unknown>(_name: string, fn: F): ReturnType<F>;
6
+ startActiveSpan<F extends (span: Span) => unknown>(_name: string, _options: SpanOptions, fn: F): ReturnType<F>;
7
+ startActiveSpan<F extends (span: Span) => unknown>(_name: string, _options: SpanOptions, _context: Context, fn: F): ReturnType<F>;
8
+ }
9
+ //# sourceMappingURL=NoOpTracer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NoOpTracer.d.ts","sourceRoot":"","sources":["../../src/tracer/NoOpTracer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,IAAI,EACT,KAAK,WAAW,EAChB,KAAK,MAAM,EACZ,MAAM,oBAAoB,CAAC;AAG5B,qBAAa,UAAW,YAAW,MAAM;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAE3C,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI;IAI1E,eAAe,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,EAC/C,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,CAAC,GACJ,UAAU,CAAC,CAAC,CAAC;IAChB,eAAe,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,EAC/C,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,WAAW,EACrB,EAAE,EAAE,CAAC,GACJ,UAAU,CAAC,CAAC,CAAC;IAChB,eAAe,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,EAC/C,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,OAAO,EACjB,EAAE,EAAE,CAAC,GACJ,UAAU,CAAC,CAAC,CAAC;CAQjB"}
@@ -1,6 +1,8 @@
1
- import type { Instrumentation } from "@opentelemetry/instrumentation";
1
+ import { type Instrumentation } from "@opentelemetry/instrumentation";
2
+ import { type Sampler } from "@opentelemetry/sdk-trace-base";
2
3
  import { JudgmentApiClient } from "../internal/api";
3
4
  import { BaseTracer, type Serializer } from "./BaseTracer";
5
+ import { filterTracerParams } from "./JudgmentNodeTracerProvider";
4
6
  export interface NodeTracerConfig {
5
7
  projectName: string;
6
8
  enableEvaluation?: boolean;
@@ -8,16 +10,23 @@ export interface NodeTracerConfig {
8
10
  serializer?: Serializer;
9
11
  resourceAttributes?: Record<string, unknown>;
10
12
  instrumentations?: Instrumentation[];
13
+ sampler?: Sampler;
11
14
  initialize?: boolean;
15
+ filterTracer?: (params: filterTracerParams) => boolean;
12
16
  }
13
- interface InternalNodeTracerConfig extends Required<Omit<NodeTracerConfig, "resourceAttributes" | "instrumentations">> {
17
+ interface InternalNodeTracerConfig extends Required<Omit<NodeTracerConfig, "resourceAttributes" | "instrumentations" | "sampler" | "filterTracer">> {
14
18
  resourceAttributes: Record<string, unknown>;
15
19
  instrumentations: Instrumentation[];
20
+ sampler?: Sampler;
21
+ filterTracer?: (params: filterTracerParams) => boolean;
16
22
  }
17
23
  export declare class NodeTracer extends BaseTracer {
18
- private nodeSDK;
24
+ private tracerProvider;
25
+ private contextManager;
19
26
  private resourceAttributes;
20
27
  private instrumentations;
28
+ private sampler?;
29
+ private filterTracer?;
21
30
  private constructor();
22
31
  static create(config: InternalNodeTracerConfig, apiClient: JudgmentApiClient): Promise<NodeTracer>;
23
32
  initialize(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"NodeTracer.d.ts","sourceRoot":"","sources":["../../src/tracer/NodeTracer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,wBACR,SAAQ,QAAQ,CACd,IAAI,CAAC,gBAAgB,EAAE,oBAAoB,GAAG,kBAAkB,CAAC,CAClE;IACD,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,gBAAgB,EAAE,eAAe,EAAE,CAAC;CACrC;AAED,qBAAa,UAAW,SAAQ,UAAU;IACxC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,gBAAgB,CAAoB;IAE5C,OAAO;WAaM,MAAM,CACjB,MAAM,EAAE,wBAAwB,EAChC,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,UAAU,CAAC;IAoBhB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAahC"}
1
+ {"version":3,"file":"NodeTracer.d.ts","sourceRoot":"","sources":["../../src/tracer/NodeTracer.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AAKxC,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIpD,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAEL,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC;CACxD;AAED,UAAU,wBACR,SAAQ,QAAQ,CACd,IAAI,CACF,gBAAgB,EAChB,oBAAoB,GAAG,kBAAkB,GAAG,SAAS,GAAG,cAAc,CACvE,CACF;IACD,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC;CACxD;AAED,qBAAa,UAAW,SAAQ,UAAU;IACxC,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,cAAc,CAAgD;IACtE,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,YAAY,CAAC,CAA0C;IAE/D,OAAO;WAiBM,MAAM,CACjB,MAAM,EAAE,wBAAwB,EAChC,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,UAAU,CAAC;IAsBhB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA0C3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAmBhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"NodeTracerFactory.d.ts","sourceRoot":"","sources":["../../src/tracer/NodeTracerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEjE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;gBAE/B,MAAM,EAAE,iBAAiB;IAI/B,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;CAkB5D"}
1
+ {"version":3,"file":"NodeTracerFactory.d.ts","sourceRoot":"","sources":["../../src/tracer/NodeTracerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEjE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;gBAE/B,MAAM,EAAE,iBAAiB;IAI/B,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;CAoB5D"}
@@ -0,0 +1,13 @@
1
+ import { BatchSpanProcessor, type SpanExporter } from "@opentelemetry/sdk-trace-base";
2
+ import type { BaseTracer } from "../BaseTracer";
3
+ export interface JudgmentSpanProcessorConfig {
4
+ maxQueueSize?: number;
5
+ scheduledDelayMillis?: number;
6
+ maxExportBatchSize?: number;
7
+ exportTimeoutMillis?: number;
8
+ }
9
+ export declare class JudgmentSpanProcessor extends BatchSpanProcessor {
10
+ private tracer;
11
+ constructor(_tracer: BaseTracer, exporter: SpanExporter, config?: JudgmentSpanProcessorConfig);
12
+ }
13
+ //# sourceMappingURL=JudgmentSpanProcessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JudgmentSpanProcessor.d.ts","sourceRoot":"","sources":["../../../src/tracer/processors/JudgmentSpanProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAElB,KAAK,YAAY,EAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,WAAW,2BAA2B;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,qBAAa,qBAAsB,SAAQ,kBAAkB;IAG3D,OAAO,CAAC,MAAM,CAAa;gBAEzB,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,YAAY,EACtB,MAAM,CAAC,EAAE,2BAA2B;CAWvC"}
@@ -0,0 +1,13 @@
1
+ import { type Context } from "@opentelemetry/api";
2
+ import type { ReadableSpan, Span } from "@opentelemetry/sdk-trace-base";
3
+ import { type BaseTracer } from "../BaseTracer";
4
+ import { JudgmentSpanProcessor } from "./JudgmentSpanProcessor";
5
+ export declare class NoOpSpanProcessor extends JudgmentSpanProcessor {
6
+ constructor(tracer: BaseTracer);
7
+ onStart(_span: Span, _parentContext: Context): void;
8
+ onEnd(_span: ReadableSpan): void;
9
+ forceFlush(): Promise<void>;
10
+ shutdown(): Promise<void>;
11
+ protected onShutdown(): void;
12
+ }
13
+ //# sourceMappingURL=NoOpJudgmentSpanProcessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NoOpJudgmentSpanProcessor.d.ts","sourceRoot":"","sources":["../../../src/tracer/processors/NoOpJudgmentSpanProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,qBAAa,iBAAkB,SAAQ,qBAAqB;gBAC9C,MAAM,EAAE,UAAU;IAI9B,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,GAAG,IAAI;IAInD,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAIhC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,SAAS,CAAC,UAAU,IAAI,IAAI;CAG7B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "judgeval",
3
- "version": "0.7.2",
3
+ "version": "0.7.3",
4
4
  "description": "JavaScript/TypeScript client for Judgment evaluation platform",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.mjs",
@@ -26,7 +26,7 @@
26
26
  "lint:fix": "eslint src/**/*.ts --fix --no-warn-ignored",
27
27
  "format": "prettier --write \"src/**/*.ts\"",
28
28
  "generate-client": "bunx tsx scripts/generate-client.ts && bun run format",
29
- "test": "bun test",
29
+ "test": "bun test --coverage",
30
30
  "clean": "rimraf dist",
31
31
  "prepublishOnly": "bun run clean && bun run build",
32
32
  "example": "bun scripts/run-example.ts"
@@ -48,6 +48,7 @@
48
48
  },
49
49
  "dependencies": {
50
50
  "@opentelemetry/api": "^1.9.0",
51
+ "@opentelemetry/context-async-hooks": "^2.2.0",
51
52
  "@opentelemetry/core": "^2.2.0",
52
53
  "@opentelemetry/exporter-trace-otlp-http": "^0.207.0",
53
54
  "@opentelemetry/resources": "^2.2.0",