@arizeai/phoenix-client 6.11.1 → 6.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +26 -0
  2. package/dist/esm/__generated__/api/v1.d.ts +18 -1
  3. package/dist/esm/__generated__/api/v1.d.ts.map +1 -1
  4. package/dist/esm/spans/index.d.ts +1 -0
  5. package/dist/esm/spans/index.d.ts.map +1 -1
  6. package/dist/esm/spans/index.js +1 -0
  7. package/dist/esm/spans/index.js.map +1 -1
  8. package/dist/esm/spans/logSpans.d.ts +94 -0
  9. package/dist/esm/spans/logSpans.d.ts.map +1 -0
  10. package/dist/esm/spans/logSpans.js +216 -0
  11. package/dist/esm/spans/logSpans.js.map +1 -0
  12. package/dist/esm/testing/phoenix-test-tracking.d.ts +14 -0
  13. package/dist/esm/testing/phoenix-test-tracking.d.ts.map +1 -1
  14. package/dist/esm/testing/phoenix-test-tracking.js +49 -4
  15. package/dist/esm/testing/phoenix-test-tracking.js.map +1 -1
  16. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  17. package/dist/esm/utils/formatPromptMessages.d.ts.map +1 -1
  18. package/dist/esm/utils/getPromptBySelector.d.ts.map +1 -1
  19. package/dist/src/__generated__/api/v1.d.ts +18 -1
  20. package/dist/src/__generated__/api/v1.d.ts.map +1 -1
  21. package/dist/src/spans/index.d.ts +1 -0
  22. package/dist/src/spans/index.d.ts.map +1 -1
  23. package/dist/src/spans/index.js +1 -0
  24. package/dist/src/spans/index.js.map +1 -1
  25. package/dist/src/spans/logSpans.d.ts +94 -0
  26. package/dist/src/spans/logSpans.d.ts.map +1 -0
  27. package/dist/src/spans/logSpans.js +214 -0
  28. package/dist/src/spans/logSpans.js.map +1 -0
  29. package/dist/src/testing/phoenix-test-tracking.d.ts +14 -0
  30. package/dist/src/testing/phoenix-test-tracking.d.ts.map +1 -1
  31. package/dist/src/testing/phoenix-test-tracking.js +50 -3
  32. package/dist/src/testing/phoenix-test-tracking.js.map +1 -1
  33. package/dist/src/utils/formatPromptMessages.d.ts.map +1 -1
  34. package/dist/src/utils/getPromptBySelector.d.ts.map +1 -1
  35. package/dist/tsconfig.tsbuildinfo +1 -1
  36. package/package.json +8 -8
  37. package/src/__generated__/api/v1.ts +18 -1
  38. package/src/spans/index.ts +1 -0
  39. package/src/spans/logSpans.ts +328 -0
  40. package/src/testing/phoenix-test-tracking.ts +55 -4
@@ -7,4 +7,5 @@ export * from "./getSpans.js";
7
7
  export type { SpanKindFilter, SpanStatusCode } from "../types/spans.js";
8
8
  export * from "./getSpanAnnotations.js";
9
9
  export * from "./deleteSpan.js";
10
+ export * from "./logSpans.js";
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/spans/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrE,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/spans/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrE,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
@@ -6,4 +6,5 @@ export * from "./logDocumentAnnotations.js";
6
6
  export * from "./getSpans.js";
7
7
  export * from "./getSpanAnnotations.js";
8
8
  export * from "./deleteSpan.js";
9
+ export * from "./logSpans.js";
9
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/spans/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAE3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/spans/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAE3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,94 @@
1
+ import type { paths } from "../__generated__/api/v1.js";
2
+ import type { ClientFn } from "../types/core.js";
3
+ import type { ProjectIdentifier } from "../types/projects.js";
4
+ type CreateSpansRequestData = paths["/v1/projects/{project_identifier}/spans"]["post"]["requestBody"]["content"]["application/json"]["data"];
5
+ /**
6
+ * A span in Phoenix's simplified span structure, as accepted by {@link logSpans}.
7
+ * This is the same shape returned by `getSpans`, which makes it possible to read
8
+ * spans from one project and log them into another.
9
+ */
10
+ export type Span = CreateSpansRequestData[number];
11
+ /** Information about a span that failed validation and was not queued. */
12
+ export interface InvalidSpanInfo {
13
+ spanId: string;
14
+ traceId: string;
15
+ error: string;
16
+ }
17
+ /** Information about a span that was rejected because it already exists. */
18
+ export interface DuplicateSpanInfo {
19
+ spanId: string;
20
+ traceId: string;
21
+ }
22
+ /**
23
+ * Raised by {@link logSpans} when one or more spans in the request are invalid
24
+ * or duplicates. If any span in a request fails, none of the spans in that
25
+ * request are queued.
26
+ */
27
+ export declare class SpanCreationError extends Error {
28
+ readonly invalidSpans: InvalidSpanInfo[];
29
+ readonly duplicateSpans: DuplicateSpanInfo[];
30
+ readonly totalReceived: number;
31
+ readonly totalQueued: number;
32
+ constructor(params: {
33
+ message: string;
34
+ invalidSpans?: InvalidSpanInfo[];
35
+ duplicateSpans?: DuplicateSpanInfo[];
36
+ totalReceived?: number;
37
+ totalQueued?: number;
38
+ });
39
+ /** Number of spans rejected as invalid. */
40
+ get totalInvalid(): number;
41
+ /** Number of spans rejected as duplicates. */
42
+ get totalDuplicates(): number;
43
+ }
44
+ /**
45
+ * Parameters to log spans to a project
46
+ */
47
+ export interface LogSpansParams extends ClientFn {
48
+ /** The project to log spans into */
49
+ project: ProjectIdentifier;
50
+ /** The spans to log */
51
+ spans: Span[];
52
+ }
53
+ /**
54
+ * Statistics about a {@link logSpans} call. When successful, `totalQueued`
55
+ * equals `totalReceived`.
56
+ */
57
+ export interface LogSpansResult {
58
+ totalReceived: number;
59
+ totalQueued: number;
60
+ }
61
+ /**
62
+ * Log spans to a project using Phoenix's simplified span structure.
63
+ *
64
+ * If any span in the request is invalid or a duplicate of a span that already
65
+ * exists, none of the spans in the request are queued and a
66
+ * {@link SpanCreationError} is thrown with details about the failures.
67
+ *
68
+ * @experimental this function is experimental and may change in the future
69
+ *
70
+ * @param params - The parameters to log spans
71
+ * @returns Statistics about the operation. When successful, `totalQueued`
72
+ * equals `totalReceived`.
73
+ *
74
+ * @example
75
+ * ```ts
76
+ * const result = await logSpans({
77
+ * project: { projectName: "my-project" },
78
+ * spans: [
79
+ * {
80
+ * name: "test",
81
+ * context: { trace_id: "123", span_id: "456" },
82
+ * span_kind: "CHAIN",
83
+ * start_time: "2024-01-01T00:00:00Z",
84
+ * end_time: "2024-01-01T00:00:01Z",
85
+ * status_code: "OK",
86
+ * },
87
+ * ],
88
+ * });
89
+ * console.log(`Queued ${result.totalQueued} spans`);
90
+ * ```
91
+ */
92
+ export declare function logSpans({ client: _client, project, spans, }: LogSpansParams): Promise<LogSpansResult>;
93
+ export {};
94
+ //# sourceMappingURL=logSpans.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logSpans.d.ts","sourceRoot":"","sources":["../../../src/spans/logSpans.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAM3D,KAAK,sBAAsB,GACzB,KAAK,CAAC,yCAAyC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjH;;;;GAIG;AACH,MAAM,MAAM,IAAI,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAElD,0EAA0E;AAC1E,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,YAAY,EAAE,eAAe,EAAE,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,iBAAiB,EAAE,CAAC;IAC7C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAEjB,MAAM,EAAE;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;QACjC,cAAc,CAAC,EAAE,iBAAiB,EAAE,CAAC;QACrC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;IASD,2CAA2C;IAC3C,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,8CAA8C;IAC9C,IAAI,eAAe,IAAI,MAAM,CAE5B;CACF;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,oCAAoC;IACpC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,uBAAuB;IACvB,KAAK,EAAE,IAAI,EAAE,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAoLD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,QAAQ,CAAC,EAC7B,MAAM,EAAE,OAAO,EACf,OAAO,EACP,KAAK,GACN,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CA0B1C"}
@@ -0,0 +1,216 @@
1
+ import { createClient } from "../client.js";
2
+ import { resolveProjectIdentifier } from "../types/projects.js";
3
+ import { formatApiError } from "../utils/apiErrorUtils.js";
4
+ import { isObject } from "../utils/isObject.js";
5
+ import { safelyParseJSON } from "../utils/safelyParseJSON.js";
6
+ /**
7
+ * Raised by {@link logSpans} when one or more spans in the request are invalid
8
+ * or duplicates. If any span in a request fails, none of the spans in that
9
+ * request are queued.
10
+ */
11
+ export class SpanCreationError extends Error {
12
+ invalidSpans;
13
+ duplicateSpans;
14
+ totalReceived;
15
+ totalQueued;
16
+ constructor(params) {
17
+ super(params.message);
18
+ this.name = "SpanCreationError";
19
+ this.invalidSpans = params.invalidSpans ?? [];
20
+ this.duplicateSpans = params.duplicateSpans ?? [];
21
+ this.totalReceived = params.totalReceived ?? 0;
22
+ this.totalQueued = params.totalQueued ?? 0;
23
+ }
24
+ /** Number of spans rejected as invalid. */
25
+ get totalInvalid() {
26
+ return this.invalidSpans.length;
27
+ }
28
+ /** Number of spans rejected as duplicates. */
29
+ get totalDuplicates() {
30
+ return this.duplicateSpans.length;
31
+ }
32
+ }
33
+ const MAX_ERRORS_TO_SHOW = 5;
34
+ function formatLogSpansErrorMessage({ invalidSpans, duplicateSpans, }) {
35
+ const parts = [];
36
+ if (invalidSpans.length > 0) {
37
+ parts.push(`Failed to queue ${invalidSpans.length} invalid spans:`);
38
+ for (const span of invalidSpans.slice(0, MAX_ERRORS_TO_SHOW)) {
39
+ parts.push(` - Span ${span.spanId}: ${span.error}`);
40
+ }
41
+ if (invalidSpans.length > MAX_ERRORS_TO_SHOW) {
42
+ parts.push(` ... and ${invalidSpans.length - MAX_ERRORS_TO_SHOW} more invalid spans`);
43
+ }
44
+ }
45
+ if (duplicateSpans.length > 0) {
46
+ if (parts.length > 0)
47
+ parts.push("");
48
+ parts.push(`Found ${duplicateSpans.length} duplicate spans:`);
49
+ for (const span of duplicateSpans.slice(0, MAX_ERRORS_TO_SHOW)) {
50
+ parts.push(` - Span ${span.spanId}`);
51
+ }
52
+ if (duplicateSpans.length > MAX_ERRORS_TO_SHOW) {
53
+ parts.push(` ... and ${duplicateSpans.length - MAX_ERRORS_TO_SHOW} more duplicates`);
54
+ }
55
+ }
56
+ return parts.join("\n");
57
+ }
58
+ function toSpanIdAndTraceId(item) {
59
+ const record = isObject(item) ? item : {};
60
+ return {
61
+ spanId: typeof record.span_id === "string" ? record.span_id : "unknown",
62
+ traceId: typeof record.trace_id === "string" ? record.trace_id : "unknown",
63
+ };
64
+ }
65
+ function toInvalidSpanInfoList(value) {
66
+ if (!Array.isArray(value))
67
+ return [];
68
+ return value.map((item) => {
69
+ const record = isObject(item) ? item : {};
70
+ return {
71
+ ...toSpanIdAndTraceId(item),
72
+ error: typeof record.error === "string" ? record.error : "Validation error",
73
+ };
74
+ });
75
+ }
76
+ function toDuplicateSpanInfoList(value) {
77
+ if (!Array.isArray(value))
78
+ return [];
79
+ return value.map(toSpanIdAndTraceId);
80
+ }
81
+ /**
82
+ * Builds a {@link SpanCreationError} from already-normalized invalid/duplicate
83
+ * span lists, computing the shared message once.
84
+ */
85
+ function makeSpanCreationError(params) {
86
+ return new SpanCreationError({
87
+ message: formatLogSpansErrorMessage(params),
88
+ ...params,
89
+ });
90
+ }
91
+ /**
92
+ * Builds a {@link SpanCreationError} from a parsed error payload matching the
93
+ * shape returned by the server for invalid/duplicate spans:
94
+ * `{ total_received, total_queued, total_invalid, total_duplicates, invalid_spans, duplicate_spans }`.
95
+ */
96
+ function buildSpanCreationError(payload) {
97
+ return makeSpanCreationError({
98
+ invalidSpans: toInvalidSpanInfoList(payload.invalid_spans),
99
+ duplicateSpans: toDuplicateSpanInfoList(payload.duplicate_spans),
100
+ totalReceived: typeof payload.total_received === "number" ? payload.total_received : 0,
101
+ totalQueued: typeof payload.total_queued === "number" ? payload.total_queued : 0,
102
+ });
103
+ }
104
+ function isSpanCreationErrorPayload(value) {
105
+ return (isObject(value) && ("invalid_spans" in value || "duplicate_spans" in value));
106
+ }
107
+ /**
108
+ * Extracts invalid span info from a FastAPI request-validation error array
109
+ * (returned with a 422 status when a span in the payload is malformed).
110
+ */
111
+ function extractInvalidSpansFromValidationErrors(errors, spans) {
112
+ const invalidSpans = [];
113
+ for (const rawError of errors) {
114
+ if (!isObject(rawError))
115
+ continue;
116
+ const loc = rawError.loc;
117
+ if (!Array.isArray(loc) ||
118
+ loc.length < 3 ||
119
+ loc[0] !== "body" ||
120
+ loc[1] !== "data" ||
121
+ typeof loc[2] !== "number") {
122
+ continue;
123
+ }
124
+ const span = spans[loc[2]];
125
+ if (!span)
126
+ continue;
127
+ const msg = rawError.msg;
128
+ invalidSpans.push({
129
+ spanId: span.context?.span_id ?? "unknown",
130
+ traceId: span.context?.trace_id ?? "unknown",
131
+ error: typeof msg === "string" ? msg : "Validation error",
132
+ });
133
+ }
134
+ return invalidSpans;
135
+ }
136
+ function parseLogSpansError(error, spans) {
137
+ if (isObject(error)) {
138
+ const detail = error.detail;
139
+ if (typeof detail === "string") {
140
+ const { json: parsed } = safelyParseJSON(detail);
141
+ if (isSpanCreationErrorPayload(parsed)) {
142
+ return buildSpanCreationError(parsed);
143
+ }
144
+ }
145
+ else if (Array.isArray(detail)) {
146
+ const invalidSpans = extractInvalidSpansFromValidationErrors(detail, spans);
147
+ if (invalidSpans.length > 0) {
148
+ return makeSpanCreationError({
149
+ invalidSpans,
150
+ duplicateSpans: [],
151
+ totalReceived: spans.length,
152
+ // A FastAPI 422 rejects the entire request body, so no spans are
153
+ // queued — matching the all-or-nothing contract and the 400 path.
154
+ totalQueued: 0,
155
+ });
156
+ }
157
+ }
158
+ else if (isSpanCreationErrorPayload(error)) {
159
+ return buildSpanCreationError(error);
160
+ }
161
+ }
162
+ return new Error(`Failed to log spans: ${formatApiError(error)}`);
163
+ }
164
+ /**
165
+ * Log spans to a project using Phoenix's simplified span structure.
166
+ *
167
+ * If any span in the request is invalid or a duplicate of a span that already
168
+ * exists, none of the spans in the request are queued and a
169
+ * {@link SpanCreationError} is thrown with details about the failures.
170
+ *
171
+ * @experimental this function is experimental and may change in the future
172
+ *
173
+ * @param params - The parameters to log spans
174
+ * @returns Statistics about the operation. When successful, `totalQueued`
175
+ * equals `totalReceived`.
176
+ *
177
+ * @example
178
+ * ```ts
179
+ * const result = await logSpans({
180
+ * project: { projectName: "my-project" },
181
+ * spans: [
182
+ * {
183
+ * name: "test",
184
+ * context: { trace_id: "123", span_id: "456" },
185
+ * span_kind: "CHAIN",
186
+ * start_time: "2024-01-01T00:00:00Z",
187
+ * end_time: "2024-01-01T00:00:01Z",
188
+ * status_code: "OK",
189
+ * },
190
+ * ],
191
+ * });
192
+ * console.log(`Queued ${result.totalQueued} spans`);
193
+ * ```
194
+ */
195
+ export async function logSpans({ client: _client, project, spans, }) {
196
+ const client = _client ?? createClient();
197
+ const projectIdentifier = resolveProjectIdentifier(project);
198
+ const { data, error } = await client.POST("/v1/projects/{project_identifier}/spans", {
199
+ params: {
200
+ path: {
201
+ project_identifier: projectIdentifier,
202
+ },
203
+ },
204
+ body: {
205
+ data: spans,
206
+ },
207
+ });
208
+ if (error) {
209
+ throw parseLogSpansError(error, spans);
210
+ }
211
+ return {
212
+ totalReceived: data?.total_received ?? spans.length,
213
+ totalQueued: data?.total_queued ?? 0,
214
+ };
215
+ }
216
+ //# sourceMappingURL=logSpans.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logSpans.js","sourceRoot":"","sources":["../../../src/spans/logSpans.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,25 @@
1
1
  import { type GlobalTracerProviderRegistration, type NodeTracerProvider } from "@arizeai/phoenix-otel";
2
2
  import { type RunState, type SuiteState } from "./state.js";
3
3
  import type { Annotation, KVMap } from "./types.js";
4
+ export declare function isFalsyFlag(value: string | undefined): boolean;
5
+ /**
6
+ * Reset the process-level tracking latch. Test-only seam so unit tests can
7
+ * exercise the enable/disable transitions in isolation; not part of the
8
+ * public API.
9
+ *
10
+ * @internal
11
+ */
12
+ export declare function __resetTrackingLatchForTests(): void;
4
13
  /**
5
14
  * Decide whether tests should sync to Phoenix.
6
15
  *
7
16
  * Tracing is enabled by default. It can be disabled globally by setting
8
17
  * `PHOENIX_TEST_TRACKING=false`, or per suite via `SuiteConfig.dryRun`.
18
+ *
19
+ * The global disable is sticky for the lifetime of the process: once the flag
20
+ * is seen falsy — at load time or on any later call — tracking stays off for
21
+ * every suite. This keeps offline mode deterministic regardless of which
22
+ * suites are included in a run, or the order they execute in.
9
23
  */
10
24
  export declare function isTrackingEnabled(suite?: SuiteState): {
11
25
  enabled: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"phoenix-test-tracking.d.ts","sourceRoot":"","sources":["../../../src/testing/phoenix-test-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,gCAAgC,EAErC,KAAK,kBAAkB,EAQxB,MAAM,uBAAuB,CAAC;AAa/B,OAAO,EAAc,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAOjD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAQA;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,UAAU,GAChB,MAAM,CAaR;AAoGD;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgKtE;AAeD;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAC7C,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GACxB,OAAO,CACN;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAC1D,CAiCA;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAErD;AAsDD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,QAAQ,GACZ,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAwC7B;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED,2DAA2D;AAC3D,wBAAsB,uBAAuB,CAC3C,eAAe,SAAS,KAAK,EAC7B,eAAe,EAEf,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,EACvB,EAAE,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,GAC1E,OAAO,CAAC;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAiC9D;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAYpE;AAgBD,uDAAuD;AACvD,YAAY,EAAE,gCAAgC,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"phoenix-test-tracking.d.ts","sourceRoot":"","sources":["../../../src/testing/phoenix-test-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,gCAAgC,EAErC,KAAK,kBAAkB,EAQxB,MAAM,uBAAuB,CAAC;AAa/B,OAAO,EAAc,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEjD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAW9D;AAqBD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CASA;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,UAAU,GAChB,MAAM,CAaR;AAoGD;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgKtE;AAeD;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAC7C,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GACxB,OAAO,CACN;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAC1D,CAiCA;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAErD;AAsDD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,QAAQ,GACZ,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAyC7B;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,IAAI,CAAC,CAsCf;AAED,2DAA2D;AAC3D,wBAAsB,uBAAuB,CAC3C,eAAe,SAAS,KAAK,EAC7B,eAAe,EAEf,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,EACvB,EAAE,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,GAC1E,OAAO,CAAC;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAiC9D;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAYpE;AAgBD,uDAAuD;AACvD,YAAY,EAAE,gCAAgC,EAAE,kBAAkB,EAAE,CAAC"}
@@ -6,18 +6,59 @@ import { ensureString } from "../utils/ensureString.js";
6
6
  import { toObjectHeaders } from "../utils/toObjectHeaders.js";
7
7
  import { getDatasetExperimentsUrl, getDatasetUrl, getExperimentUrl, } from "../utils/urlUtils.js";
8
8
  import { currentRun } from "./state.js";
9
- function isFalsyFlag(value) {
10
- const v = (value ?? "").toLowerCase();
9
+ export function isFalsyFlag(value) {
10
+ // Tolerate surrounding whitespace and matching quotes that survive some
11
+ // shells and `.env` loaders (e.g. `PHOENIX_TEST_TRACKING="false"` or a value
12
+ // with a trailing newline). Without this, such a value reads as truthy and
13
+ // silently re-enables recording even though the user asked to disable it.
14
+ const v = (value ?? "")
15
+ .trim()
16
+ .replace(/^(['"])(.*)\1$/, "$2")
17
+ .trim()
18
+ .toLowerCase();
11
19
  return v === "false" || v === "0" || v === "off" || v === "no";
12
20
  }
21
+ /**
22
+ * Snapshot of `PHOENIX_TEST_TRACKING` as it was when this module first loaded.
23
+ *
24
+ * When the flag is exported on the command line (the documented `eval:offline`
25
+ * workflow), this captures the user's intent at process start and is immune to
26
+ * any later in-process mutation of `process.env` by a sibling suite or setup
27
+ * file. That mutation is what made tracking leak across suites in #13930: one
28
+ * suite flipped the env var and re-enabled recording for the others.
29
+ */
30
+ const trackingDisabledAtLoad = isFalsyFlag(process.env.PHOENIX_TEST_TRACKING);
31
+ /**
32
+ * Latches to `true` the first time tracking is observed disabled in this
33
+ * process. Recording is opt-out and shared process-wide, so a single falsy
34
+ * reading turns the whole run off and keeps it off — later suites cannot
35
+ * re-enable recording regardless of declaration or execution order.
36
+ */
37
+ let trackingLatchedOff = trackingDisabledAtLoad;
38
+ /**
39
+ * Reset the process-level tracking latch. Test-only seam so unit tests can
40
+ * exercise the enable/disable transitions in isolation; not part of the
41
+ * public API.
42
+ *
43
+ * @internal
44
+ */
45
+ export function __resetTrackingLatchForTests() {
46
+ trackingLatchedOff = isFalsyFlag(process.env.PHOENIX_TEST_TRACKING);
47
+ }
13
48
  /**
14
49
  * Decide whether tests should sync to Phoenix.
15
50
  *
16
51
  * Tracing is enabled by default. It can be disabled globally by setting
17
52
  * `PHOENIX_TEST_TRACKING=false`, or per suite via `SuiteConfig.dryRun`.
53
+ *
54
+ * The global disable is sticky for the lifetime of the process: once the flag
55
+ * is seen falsy — at load time or on any later call — tracking stays off for
56
+ * every suite. This keeps offline mode deterministic regardless of which
57
+ * suites are included in a run, or the order they execute in.
18
58
  */
19
59
  export function isTrackingEnabled(suite) {
20
- if (isFalsyFlag(process.env.PHOENIX_TEST_TRACKING)) {
60
+ if (trackingLatchedOff || isFalsyFlag(process.env.PHOENIX_TEST_TRACKING)) {
61
+ trackingLatchedOff = true;
21
62
  return { enabled: false, reason: "PHOENIX_TEST_TRACKING is disabled" };
22
63
  }
23
64
  if (suite?.config.dryRun) {
@@ -383,6 +424,7 @@ function endSpanAsTask({ span, input, output, }) {
383
424
  export async function postExperimentRun(suite, run) {
384
425
  if (run.dryRun ||
385
426
  suite.trackingDisabled ||
427
+ !isTrackingEnabled(suite).enabled ||
386
428
  !suite.client ||
387
429
  !suite.experimentId) {
388
430
  return undefined;
@@ -419,7 +461,10 @@ export async function postExperimentRun(suite, run) {
419
461
  * POST one annotation (an "experiment_evaluation") for a run.
420
462
  */
421
463
  export async function postAnnotation(suite, runId, annotation) {
422
- if (suite.trackingDisabled || !suite.client || !runId)
464
+ if (suite.trackingDisabled ||
465
+ !isTrackingEnabled(suite).enabled ||
466
+ !suite.client ||
467
+ !runId)
423
468
  return;
424
469
  const start = new Date();
425
470
  const end = new Date();
@@ -1 +1 @@
1
- {"version":3,"file":"phoenix-test-tracking.js","sourceRoot":"","sources":["../../../src/testing/phoenix-test-tracking.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"phoenix-test-tracking.js","sourceRoot":"","sources":["../../../src/testing/phoenix-test-tracking.ts"],"names":[],"mappings":"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"}