@arizeai/phoenix-client 7.7.0 → 7.7.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.
Files changed (65) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/esm/experiments/resumeEvaluation.d.ts +0 -60
  3. package/dist/esm/experiments/resumeEvaluation.d.ts.map +1 -1
  4. package/dist/esm/experiments/resumeEvaluation.js +44 -37
  5. package/dist/esm/experiments/resumeEvaluation.js.map +1 -1
  6. package/dist/esm/experiments/resumeExperiment.d.ts +0 -52
  7. package/dist/esm/experiments/resumeExperiment.d.ts.map +1 -1
  8. package/dist/esm/experiments/resumeExperiment.js +42 -35
  9. package/dist/esm/experiments/resumeExperiment.js.map +1 -1
  10. package/dist/esm/experiments/runExperiment.d.ts.map +1 -1
  11. package/dist/esm/experiments/runExperiment.js +152 -123
  12. package/dist/esm/experiments/runExperiment.js.map +1 -1
  13. package/dist/esm/prompts/sdks/toOpenAI.d.ts.map +1 -1
  14. package/dist/esm/prompts/sdks/toOpenAI.js +49 -58
  15. package/dist/esm/prompts/sdks/toOpenAI.js.map +1 -1
  16. package/dist/esm/sessions/sessionUtils.d.ts.map +1 -1
  17. package/dist/esm/sessions/sessionUtils.js +3 -0
  18. package/dist/esm/sessions/sessionUtils.js.map +1 -1
  19. package/dist/esm/spans/getSpans.d.ts +0 -70
  20. package/dist/esm/spans/getSpans.d.ts.map +1 -1
  21. package/dist/esm/spans/getSpans.js +42 -93
  22. package/dist/esm/spans/getSpans.js.map +1 -1
  23. package/dist/esm/testing/phoenix-test-tracking.d.ts.map +1 -1
  24. package/dist/esm/testing/phoenix-test-tracking.js +109 -78
  25. package/dist/esm/testing/phoenix-test-tracking.js.map +1 -1
  26. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  27. package/dist/esm/types/sessions.d.ts +6 -0
  28. package/dist/esm/types/sessions.d.ts.map +1 -1
  29. package/dist/src/experiments/resumeEvaluation.d.ts +0 -60
  30. package/dist/src/experiments/resumeEvaluation.d.ts.map +1 -1
  31. package/dist/src/experiments/resumeEvaluation.js +44 -37
  32. package/dist/src/experiments/resumeEvaluation.js.map +1 -1
  33. package/dist/src/experiments/resumeExperiment.d.ts +0 -52
  34. package/dist/src/experiments/resumeExperiment.d.ts.map +1 -1
  35. package/dist/src/experiments/resumeExperiment.js +42 -35
  36. package/dist/src/experiments/resumeExperiment.js.map +1 -1
  37. package/dist/src/experiments/runExperiment.d.ts.map +1 -1
  38. package/dist/src/experiments/runExperiment.js +148 -116
  39. package/dist/src/experiments/runExperiment.js.map +1 -1
  40. package/dist/src/prompts/sdks/toOpenAI.d.ts.map +1 -1
  41. package/dist/src/prompts/sdks/toOpenAI.js +56 -63
  42. package/dist/src/prompts/sdks/toOpenAI.js.map +1 -1
  43. package/dist/src/sessions/sessionUtils.d.ts.map +1 -1
  44. package/dist/src/sessions/sessionUtils.js +3 -0
  45. package/dist/src/sessions/sessionUtils.js.map +1 -1
  46. package/dist/src/spans/getSpans.d.ts +0 -70
  47. package/dist/src/spans/getSpans.d.ts.map +1 -1
  48. package/dist/src/spans/getSpans.js +43 -94
  49. package/dist/src/spans/getSpans.js.map +1 -1
  50. package/dist/src/testing/phoenix-test-tracking.d.ts.map +1 -1
  51. package/dist/src/testing/phoenix-test-tracking.js +117 -84
  52. package/dist/src/testing/phoenix-test-tracking.js.map +1 -1
  53. package/dist/src/types/sessions.d.ts +6 -0
  54. package/dist/src/types/sessions.d.ts.map +1 -1
  55. package/dist/tsconfig.tsbuildinfo +1 -1
  56. package/docs/sessions.mdx +10 -1
  57. package/package.json +1 -1
  58. package/src/experiments/resumeEvaluation.ts +78 -48
  59. package/src/experiments/resumeExperiment.ts +73 -46
  60. package/src/experiments/runExperiment.ts +235 -129
  61. package/src/prompts/sdks/toOpenAI.ts +58 -61
  62. package/src/sessions/sessionUtils.ts +3 -0
  63. package/src/spans/getSpans.ts +84 -48
  64. package/src/testing/phoenix-test-tracking.ts +154 -90
  65. package/src/types/sessions.ts +6 -0
@@ -42,75 +42,5 @@ export type GetSpansResult = {
42
42
  spans: GetSpansResponse["content"]["application/json"]["data"];
43
43
  nextCursor: GetSpansResponse["content"]["application/json"]["next_cursor"];
44
44
  };
45
- /**
46
- * Get spans from a project with filtering criteria.
47
- *
48
- * This method allows you to search for spans within a project using various filters
49
- * such as time range and supports cursor-based pagination.
50
- * The spans are returned in Phoenix's standard format with human-readable timestamps
51
- * and simplified attribute structures.
52
- *
53
- * @experimental this function is experimental and may change in the future
54
- *
55
- * @param params - The parameters to search for spans
56
- * @returns A paginated response containing spans and optional next cursor
57
- *
58
- * @requires Phoenix server >= 13.9.0 when filtering by `traceIds`
59
- * @requires Phoenix server >= 19.6.0 when filtering by `spanIds`
60
- * @requires Phoenix server >= 14.9.0 when filtering by `attributes`
61
- *
62
- * @example
63
- * ```ts
64
- * // Get recent spans from a project
65
- * const result = await getSpans({
66
- * client,
67
- * project: { projectName: "my-project" },
68
- * limit: 50
69
- * });
70
- *
71
- * // Get spans in a time range
72
-
73
- * const result = await getSpans({
74
- * client,
75
- * project: { projectName: "my-project" },
76
- * startTime: new Date("2024-01-01"),
77
- * endTime: new Date("2024-01-02"),
78
- * limit: 100
79
- * });
80
-
81
- *
82
- * // Get all spans for specific traces (requires Phoenix server >= 13.9.0)
83
- * const result = await getSpans({
84
- * client,
85
- * project: { projectName: "my-project" },
86
- * traceIds: ["trace-abc-123", "trace-def-456"],
87
- * });
88
- *
89
- * // Get specific spans by span ID (requires Phoenix server >= 19.6.0)
90
- * const result = await getSpans({
91
- * client,
92
- * project: { projectName: "my-project" },
93
- * spanIds: ["span-abc-123", "span-def-456"],
94
- * });
95
- *
96
- * // Paginate through results
97
- * let cursor: string | undefined;
98
- * do {
99
- * const result = await getSpans({
100
- * client,
101
- * project: { projectName: "my-project" },
102
- * cursor,
103
- * limit: 100
104
- * });
105
- *
106
- * // Process spans
107
- * result.spans.forEach(span => {
108
- * console.log(`Span: ${span.name}, Trace: ${span.context.trace_id}`);
109
- * });
110
- *
111
- * cursor = result.nextCursor || undefined;
112
- * } while (cursor);
113
- * ```
114
- */
115
45
  export declare function getSpans({ client: _client, project, cursor, limit, startTime, endTime, traceIds, spanIds, parentId, name, spanKind, statusCode, attributes, }: GetSpansParams): Promise<GetSpansResult>;
116
46
  //# sourceMappingURL=getSpans.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getSpans.d.ts","sourceRoot":"","sources":["../../../src/spans/getSpans.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAQ1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AA+BhE;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,oCAAoC;IACpC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,kFAAkF;IAClF,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACjC,kFAAkF;IAClF,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3B,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1B,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IAChC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,cAAc,GAAG,cAAc,EAAE,GAAG,IAAI,CAAC;IACpD,kDAAkD;IAClD,UAAU,CAAC,EAAE,cAAc,GAAG,cAAc,EAAE,GAAG,IAAI,CAAC;IACtD;;;;OAIG;IACH,UAAU,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC;AAE1E,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;IAC/D,UAAU,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC,aAAa,CAAC,CAAC;CAC5E,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AACH,wBAAsB,QAAQ,CAAC,EAC7B,MAAM,EAAE,OAAO,EACf,OAAO,EACP,MAAM,EACN,KAAW,EACX,SAAS,EACT,OAAO,EACP,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,UAAU,GACX,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAuF1C"}
1
+ {"version":3,"file":"getSpans.d.ts","sourceRoot":"","sources":["../../../src/spans/getSpans.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAQ1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AA+BhE;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,oCAAoC;IACpC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,kFAAkF;IAClF,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACjC,kFAAkF;IAClF,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3B,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1B,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IAChC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,cAAc,GAAG,cAAc,EAAE,GAAG,IAAI,CAAC;IACpD,kDAAkD;IAClD,UAAU,CAAC,EAAE,cAAc,GAAG,cAAc,EAAE,GAAG,IAAI,CAAC;IACtD;;;;OAIG;IACH,UAAU,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC;AAE1E,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;IAC/D,UAAU,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC,aAAa,CAAC,CAAC;CAC5E,CAAC;AAkJF,wBAAsB,QAAQ,CAAC,EAC7B,MAAM,EAAE,OAAO,EACf,OAAO,EACP,MAAM,EACN,KAAW,EACX,SAAS,EACT,OAAO,EACP,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,UAAU,GACX,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAiD1C"}
@@ -29,83 +29,7 @@ function serializeAttributeValue(value) {
29
29
  function serializeAttributes(attributes) {
30
30
  return Object.entries(attributes).map(([key, value]) => `${key}:${serializeAttributeValue(value)}`);
31
31
  }
32
- /**
33
- * Get spans from a project with filtering criteria.
34
- *
35
- * This method allows you to search for spans within a project using various filters
36
- * such as time range and supports cursor-based pagination.
37
- * The spans are returned in Phoenix's standard format with human-readable timestamps
38
- * and simplified attribute structures.
39
- *
40
- * @experimental this function is experimental and may change in the future
41
- *
42
- * @param params - The parameters to search for spans
43
- * @returns A paginated response containing spans and optional next cursor
44
- *
45
- * @requires Phoenix server >= 13.9.0 when filtering by `traceIds`
46
- * @requires Phoenix server >= 19.6.0 when filtering by `spanIds`
47
- * @requires Phoenix server >= 14.9.0 when filtering by `attributes`
48
- *
49
- * @example
50
- * ```ts
51
- * // Get recent spans from a project
52
- * const result = await getSpans({
53
- * client,
54
- * project: { projectName: "my-project" },
55
- * limit: 50
56
- * });
57
- *
58
- * // Get spans in a time range
59
-
60
- * const result = await getSpans({
61
- * client,
62
- * project: { projectName: "my-project" },
63
- * startTime: new Date("2024-01-01"),
64
- * endTime: new Date("2024-01-02"),
65
- * limit: 100
66
- * });
67
-
68
- *
69
- * // Get all spans for specific traces (requires Phoenix server >= 13.9.0)
70
- * const result = await getSpans({
71
- * client,
72
- * project: { projectName: "my-project" },
73
- * traceIds: ["trace-abc-123", "trace-def-456"],
74
- * });
75
- *
76
- * // Get specific spans by span ID (requires Phoenix server >= 19.6.0)
77
- * const result = await getSpans({
78
- * client,
79
- * project: { projectName: "my-project" },
80
- * spanIds: ["span-abc-123", "span-def-456"],
81
- * });
82
- *
83
- * // Paginate through results
84
- * let cursor: string | undefined;
85
- * do {
86
- * const result = await getSpans({
87
- * client,
88
- * project: { projectName: "my-project" },
89
- * cursor,
90
- * limit: 100
91
- * });
92
- *
93
- * // Process spans
94
- * result.spans.forEach(span => {
95
- * console.log(`Span: ${span.name}, Trace: ${span.context.trace_id}`);
96
- * });
97
- *
98
- * cursor = result.nextCursor || undefined;
99
- * } while (cursor);
100
- * ```
101
- */
102
- async function getSpans({ client: _client, project, cursor, limit = 100, startTime, endTime, traceIds, spanIds, parentId, name, spanKind, statusCode, attributes, }) {
103
- var _a, _b;
104
- const client = _client !== null && _client !== void 0 ? _client : (0, client_1.createClient)();
105
- const serializedAttributes = attributes != null ? serializeAttributes(attributes) : undefined;
106
- const attributeFilters = serializedAttributes != null && serializedAttributes.length > 0
107
- ? serializedAttributes
108
- : undefined;
32
+ async function ensureSpanFilterCapabilities({ client, traceIds, spanIds, name, spanKind, statusCode, attributeFilters, }) {
109
33
  if (traceIds) {
110
34
  await (0, serverVersionUtils_1.ensureServerCapability)({ client, requirement: serverRequirements_1.GET_SPANS_TRACE_IDS });
111
35
  }
@@ -115,19 +39,17 @@ async function getSpans({ client: _client, project, cursor, limit = 100, startTi
115
39
  if (name != null || spanKind != null || statusCode != null) {
116
40
  await (0, serverVersionUtils_1.ensureServerCapability)({ client, requirement: serverRequirements_1.GET_SPANS_FILTERS });
117
41
  }
118
- if (attributeFilters != null) {
42
+ if (attributeFilters) {
119
43
  await (0, serverVersionUtils_1.ensureServerCapability)({
120
44
  client,
121
45
  requirement: serverRequirements_1.GET_SPANS_BY_ATTRIBUTE,
122
46
  });
123
47
  }
124
- const projectIdentifier = (0, projects_1.resolveProjectIdentifier)(project);
125
- const params = {
126
- limit,
127
- };
128
- if (cursor) {
48
+ }
49
+ function buildSpansQuery({ cursor, limit, startTime, endTime, traceIds, spanIds, parentId, name, spanKind, statusCode, attributeFilters, }) {
50
+ const params = { limit };
51
+ if (cursor)
129
52
  params.cursor = cursor;
130
- }
131
53
  if (startTime) {
132
54
  params.start_time =
133
55
  startTime instanceof Date ? startTime.toISOString() : startTime;
@@ -135,27 +57,54 @@ async function getSpans({ client: _client, project, cursor, limit = 100, startTi
135
57
  if (endTime) {
136
58
  params.end_time = endTime instanceof Date ? endTime.toISOString() : endTime;
137
59
  }
138
- if (traceIds) {
60
+ if (traceIds)
139
61
  params.trace_id = traceIds;
140
- }
141
- if (spanIds) {
62
+ if (spanIds)
142
63
  params.span_id = spanIds;
143
- }
144
64
  if (parentId !== undefined) {
145
65
  params.parent_id = parentId === null ? "null" : parentId;
146
66
  }
147
- if (name) {
67
+ if (name)
148
68
  params.name = Array.isArray(name) ? name : [name];
149
- }
150
- if (spanKind) {
69
+ if (spanKind)
151
70
  params.span_kind = Array.isArray(spanKind) ? spanKind : [spanKind];
152
- }
153
71
  if (statusCode) {
154
72
  params.status_code = Array.isArray(statusCode) ? statusCode : [statusCode];
155
73
  }
156
- if (attributeFilters != null) {
74
+ if (attributeFilters)
157
75
  params.attribute = attributeFilters;
158
- }
76
+ return params;
77
+ }
78
+ async function getSpans({ client: _client, project, cursor, limit = 100, startTime, endTime, traceIds, spanIds, parentId, name, spanKind, statusCode, attributes, }) {
79
+ var _a, _b;
80
+ const client = _client !== null && _client !== void 0 ? _client : (0, client_1.createClient)();
81
+ const serializedAttributes = attributes != null ? serializeAttributes(attributes) : undefined;
82
+ const attributeFilters = serializedAttributes != null && serializedAttributes.length > 0
83
+ ? serializedAttributes
84
+ : undefined;
85
+ await ensureSpanFilterCapabilities({
86
+ client,
87
+ traceIds,
88
+ spanIds,
89
+ name,
90
+ spanKind,
91
+ statusCode,
92
+ attributeFilters,
93
+ });
94
+ const projectIdentifier = (0, projects_1.resolveProjectIdentifier)(project);
95
+ const params = buildSpansQuery({
96
+ cursor,
97
+ limit,
98
+ startTime,
99
+ endTime,
100
+ traceIds,
101
+ spanIds,
102
+ parentId,
103
+ name,
104
+ spanKind,
105
+ statusCode,
106
+ attributeFilters,
107
+ });
159
108
  const { data, error } = await client.GET("/v1/projects/{project_identifier}/spans", {
160
109
  params: {
161
110
  path: {
@@ -1 +1 @@
1
- {"version":3,"file":"getSpans.js","sourceRoot":"","sources":["../../../src/spans/getSpans.ts"],"names":[],"mappings":";;;AACA,sCAAyC;AACzC,wEAKyC;AAGzC,gDAA6D;AAE7D,oEAAqE;AAKrE,SAAS,uBAAuB,CAAC,KAAyB;IACxD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,UAAU,CAClB,yDAAyD,KAAK,EAAE,CACjE,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;eAAO,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,UAA0B;IACrD,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CACnC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAC7D,CAAC;AACJ,CAAC;AA2CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AACI,KAAK,mBAAmB,EAC7B,MAAM,EAAE,OAAO,EACf,OAAO,EACP,MAAM,EACN,KAAK,GAAG,GAAG,EACX,SAAS,EACT,OAAO,EACP,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,UAAU,GACK;;IACf,MAAM,MAAM,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,IAAA,qBAAY,GAAE,CAAC;IACzC,MAAM,oBAAoB,GACxB,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,MAAM,gBAAgB,GACpB,oBAAoB,IAAI,IAAI,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC;QAC7D,CAAC,CAAC,oBAAoB;QACtB,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,IAAA,2CAAsB,EAAC,EAAE,MAAM,EAAE,WAAW,EAAE,wCAAmB,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,IAAA,2CAAsB,EAAC,EAAE,MAAM,EAAE,WAAW,EAAE,uCAAkB,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,IAAI,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QAC3D,MAAM,IAAA,2CAAsB,EAAC,EAAE,MAAM,EAAE,WAAW,EAAE,sCAAiB,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;QAC7B,MAAM,IAAA,2CAAsB,EAAC;YAC3B,MAAM;YACN,WAAW,EAAE,2CAAsB;SACpC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,iBAAiB,GAAG,IAAA,mCAAwB,EAAC,OAAO,CAAC,CAAC;IAE5D,MAAM,MAAM,GAA+D;QACzE,KAAK;KACN,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,CAAC,UAAU;YACf,SAAS,YAAY,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACpE,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,QAAQ,GAAG,OAAO,YAAY,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9E,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,SAAS,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC3D,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;QAC7B,MAAM,CAAC,SAAS,GAAG,gBAAgB,CAAC;IACtC,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CACtC,yCAAyC,EACzC;QACE,MAAM,EAAE;YACN,IAAI,EAAE;gBACJ,kBAAkB,EAAE,iBAAiB;aACtC;YACD,KAAK,EAAE,MAAM;SACd;KACF,CACF,CAAC;IAEF,IAAI,KAAK;QAAE,MAAM,KAAK,CAAC;IACvB,OAAO;QACL,KAAK,QAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,mCAAI,EAAE;QACvB,UAAU,QAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,mCAAI,IAAI;KACtC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"getSpans.js","sourceRoot":"","sources":["../../../src/spans/getSpans.ts"],"names":[],"mappings":"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"}
@@ -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;AAgB/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"}
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;AAgB/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;AA8RD;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCtE;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"}
@@ -174,28 +174,16 @@ function buildLinks(client, datasetId, experimentId) {
174
174
  },
175
175
  ];
176
176
  }
177
- /**
178
- * Initialize the suite: upload the dataset, create the experiment, and
179
- * register the OpenInference tracer.
180
- *
181
- * If tracing is disabled (no Phoenix env vars, or PHOENIX_TEST_TRACKING=false),
182
- * this populates a no-op tracer and exits without making any network calls.
183
- */
184
- async function initializeSuite(suite) {
185
- var _a;
186
- var _b, _c, _d, _e, _f, _g, _h, _j, _k;
187
- const tracking = isTrackingEnabled(suite);
188
- if (!tracking.enabled) {
189
- suite.trackingDisabled = true;
190
- suite.trackingDisabledReason = tracking.reason;
191
- suite.tracer = (0, phoenix_otel_1.createNoOpProvider)().getTracer("no-op");
192
- suite.evaluatorTracer = suite.tracer;
193
- return;
177
+ function disableSuiteTracking({ suite, error, }) {
178
+ suite.trackingDisabled = true;
179
+ if (error !== undefined) {
180
+ suite.setupError =
181
+ error instanceof Error ? error : new Error(String(error));
194
182
  }
195
- const client = (_b = suite.config.client) !== null && _b !== void 0 ? _b : (0, index_1.createClient)();
196
- suite.client = client;
197
- const datasetName = (_c = suite.config.datasetName) !== null && _c !== void 0 ? _c : suite.name;
198
- const description = (_d = suite.config.description) !== null && _d !== void 0 ? _d : `Phoenix test dataset auto-generated from ${suite.name}`;
183
+ suite.tracer = (0, phoenix_otel_1.createNoOpProvider)().getTracer("no-op");
184
+ suite.evaluatorTracer = suite.tracer;
185
+ }
186
+ async function createSuiteDataset({ suite, client, datasetName, description, }) {
199
187
  const examples = Array.from(suite.registeredExamples.values()).map((registered) => { var _a, _b, _c; return ({
200
188
  id: (_a = registered.params.id) !== null && _a !== void 0 ? _a : null,
201
189
  input: registered.params.input,
@@ -203,7 +191,6 @@ async function initializeSuite(suite) {
203
191
  metadata: (_c = registered.params.metadata) !== null && _c !== void 0 ? _c : {},
204
192
  splits: registered.params.splits,
205
193
  }); });
206
- let datasetId;
207
194
  try {
208
195
  const created = await (0, datasets_1.createDataset)({
209
196
  client,
@@ -211,101 +198,108 @@ async function initializeSuite(suite) {
211
198
  description,
212
199
  examples,
213
200
  });
214
- datasetId = created.datasetId;
201
+ return created.datasetId;
215
202
  }
216
- catch (err) {
217
- suite.trackingDisabled = true;
218
- suite.setupError = err instanceof Error ? err : new Error(String(err));
219
- suite.tracer = (0, phoenix_otel_1.createNoOpProvider)().getTracer("no-op");
220
- suite.evaluatorTracer = suite.tracer;
221
- return;
203
+ catch (error) {
204
+ disableSuiteTracking({ suite, error });
205
+ return null;
222
206
  }
223
- suite.datasetId = datasetId;
224
- // Map test names to server-side example ids by re-fetching the dataset.
225
- // The server doesn't promise that the GET response order matches the
226
- // upload order, so we match by user-supplied `id` first, then by
227
- // `JSON.stringify(input)` deep-equality with FIFO-on-collision.
207
+ }
208
+ async function resolveSuiteExampleIds({ suite, client, datasetId, }) {
209
+ var _a;
210
+ var _b, _c;
228
211
  try {
229
212
  const { data: response } = await client.GET("/v1/datasets/{id}/examples", {
230
213
  params: { path: { id: datasetId } },
231
214
  });
232
- const fetched = (_e = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.examples) !== null && _e !== void 0 ? _e : [];
215
+ const fetched = (_b = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.examples) !== null && _b !== void 0 ? _b : [];
233
216
  const idToTestName = new Map();
234
217
  const inputKeyToTestNames = new Map();
235
218
  for (const [testName, registered] of suite.registeredExamples.entries()) {
236
219
  if (registered.params.id) {
237
220
  idToTestName.set(registered.params.id, testName);
238
- continue;
239
221
  }
240
- const key = stableKey(registered.params.input);
241
- const arr = (_f = inputKeyToTestNames.get(key)) !== null && _f !== void 0 ? _f : [];
242
- arr.push(testName);
243
- inputKeyToTestNames.set(key, arr);
222
+ else {
223
+ const key = stableKey(registered.params.input);
224
+ inputKeyToTestNames.set(key, [
225
+ ...((_c = inputKeyToTestNames.get(key)) !== null && _c !== void 0 ? _c : []),
226
+ testName,
227
+ ]);
228
+ }
244
229
  }
245
- for (const ex of fetched) {
246
- const byId = idToTestName.get(ex.id);
247
- if (byId) {
248
- suite.exampleIdsByTest.set(byId, {
249
- exampleId: ex.id,
250
- nodeId: ex.node_id,
230
+ for (const example of fetched) {
231
+ const testName = idToTestName.get(example.id);
232
+ if (testName) {
233
+ suite.exampleIdsByTest.set(testName, {
234
+ exampleId: example.id,
235
+ nodeId: example.node_id,
251
236
  });
252
- idToTestName.delete(ex.id);
237
+ idToTestName.delete(example.id);
253
238
  continue;
254
239
  }
255
- const queue = inputKeyToTestNames.get(stableKey(ex.input));
256
- if (queue && queue.length) {
257
- const testName = queue.shift();
258
- suite.exampleIdsByTest.set(testName, {
259
- exampleId: ex.id,
260
- nodeId: ex.node_id,
240
+ const queue = inputKeyToTestNames.get(stableKey(example.input));
241
+ const matchedTestName = queue === null || queue === void 0 ? void 0 : queue.shift();
242
+ if (matchedTestName) {
243
+ suite.exampleIdsByTest.set(matchedTestName, {
244
+ exampleId: example.id,
245
+ nodeId: example.node_id,
261
246
  });
262
247
  }
263
248
  }
264
249
  }
265
- catch (_l) {
266
- // If we cannot resolve example ids, runs will be logged without one.
250
+ catch (_d) {
251
+ // Runs can still be logged without resolved example IDs.
267
252
  }
253
+ }
254
+ async function createSuiteExperiment({ suite, client, datasetId, datasetName, description, }) {
255
+ var _a, _b, _c, _d;
268
256
  const projectName = `${datasetName}-${new Date().toISOString()}`;
269
257
  suite.projectName = projectName;
270
258
  try {
271
- const experimentResponse = await client
259
+ const response = await client
272
260
  .POST("/v1/datasets/{dataset_id}/experiments", {
273
261
  params: { path: { dataset_id: datasetId } },
274
262
  body: {
275
- name: (_g = suite.config.datasetName) !== null && _g !== void 0 ? _g : suite.name,
263
+ name: (_a = suite.config.datasetName) !== null && _a !== void 0 ? _a : suite.name,
276
264
  description,
277
- metadata: Object.assign(Object.assign({}, ((_h = suite.config.metadata) !== null && _h !== void 0 ? _h : {})), envMetadata()),
265
+ metadata: Object.assign(Object.assign({}, ((_b = suite.config.metadata) !== null && _b !== void 0 ? _b : {})), envMetadata()),
278
266
  project_name: projectName,
279
- repetitions: Math.max(1, (_j = suite.maxRepetitions) !== null && _j !== void 0 ? _j : 1),
267
+ repetitions: Math.max(1, (_c = suite.maxRepetitions) !== null && _c !== void 0 ? _c : 1),
280
268
  },
281
269
  })
282
- .then((res) => { var _a; return (_a = res.data) === null || _a === void 0 ? void 0 : _a.data; });
283
- if (!experimentResponse) {
270
+ .then((result) => { var _a; return (_a = result.data) === null || _a === void 0 ? void 0 : _a.data; });
271
+ if (!response)
284
272
  throw new Error("Failed to create experiment");
285
- }
286
- suite.experimentId = experimentResponse.id;
287
- suite.projectName = (_k = experimentResponse.project_name) !== null && _k !== void 0 ? _k : projectName;
273
+ suite.experimentId = response.id;
274
+ suite.projectName = (_d = response.project_name) !== null && _d !== void 0 ? _d : projectName;
275
+ return true;
288
276
  }
289
- catch (err) {
290
- suite.trackingDisabled = true;
291
- suite.setupError = err instanceof Error ? err : new Error(String(err));
292
- suite.tracer = (0, phoenix_otel_1.createNoOpProvider)().getTracer("no-op");
293
- suite.evaluatorTracer = suite.tracer;
294
- return;
277
+ catch (error) {
278
+ disableSuiteTracking({ suite, error });
279
+ return false;
295
280
  }
281
+ }
282
+ function setupSuiteTracer({ suite, client, }) {
296
283
  const baseUrl = client.config.baseUrl;
297
284
  if (!baseUrl) {
298
- suite.trackingDisabled = true;
299
- suite.setupError = new Error("Phoenix base URL not found. Set PHOENIX_ENDPOINT (or PHOENIX_COLLECTOR_ENDPOINT) or pass baseUrl on the client.");
300
- suite.tracer = (0, phoenix_otel_1.createNoOpProvider)().getTracer("no-op");
301
- suite.evaluatorTracer = suite.tracer;
302
- return;
285
+ disableSuiteTracking({
286
+ suite,
287
+ error: new Error("Phoenix base URL not found. Set PHOENIX_ENDPOINT (or PHOENIX_COLLECTOR_ENDPOINT) or pass baseUrl on the client."),
288
+ });
289
+ return false;
303
290
  }
304
291
  maybeWarnHttpScheme(baseUrl, client.config.headers);
305
- let provider;
292
+ const projectName = suite.projectName;
293
+ if (!projectName) {
294
+ disableSuiteTracking({
295
+ suite,
296
+ error: new Error("Experiment project name is missing."),
297
+ });
298
+ return false;
299
+ }
306
300
  try {
307
- provider = (0, phoenix_otel_1.register)({
308
- projectName: suite.projectName,
301
+ const provider = (0, phoenix_otel_1.register)({
302
+ projectName,
309
303
  url: (0, tracing_1.getTraceExportUrl)(client.config),
310
304
  headers: client.config.headers
311
305
  ? (0, toObjectHeaders_1.toObjectHeaders)(client.config.headers)
@@ -315,18 +309,57 @@ async function initializeSuite(suite) {
315
309
  });
316
310
  suite.tracerProvider = provider;
317
311
  suite.globalRegistration = (0, phoenix_otel_1.attachGlobalTracerProvider)(provider);
312
+ suite.tracer = provider.getTracer(projectName);
313
+ suite.evaluatorTracer = provider.getTracer(`${projectName}-evaluators`);
314
+ return true;
318
315
  }
319
- catch (err) {
316
+ catch (error) {
317
+ disableSuiteTracking({ suite, error });
318
+ return false;
319
+ }
320
+ }
321
+ /**
322
+ * Initialize the suite: upload the dataset, create the experiment, and
323
+ * register the OpenInference tracer.
324
+ *
325
+ * If tracing is disabled (no Phoenix env vars, or PHOENIX_TEST_TRACKING=false),
326
+ * this populates a no-op tracer and exits without making any network calls.
327
+ */
328
+ async function initializeSuite(suite) {
329
+ var _a, _b, _c;
330
+ const tracking = isTrackingEnabled(suite);
331
+ if (!tracking.enabled) {
320
332
  suite.trackingDisabled = true;
321
- suite.setupError = err instanceof Error ? err : new Error(String(err));
333
+ suite.trackingDisabledReason = tracking.reason;
322
334
  suite.tracer = (0, phoenix_otel_1.createNoOpProvider)().getTracer("no-op");
323
335
  suite.evaluatorTracer = suite.tracer;
324
336
  return;
325
337
  }
326
- suite.tracer = provider.getTracer(suite.projectName);
327
- suite.evaluatorTracer = provider.getTracer(`${suite.projectName}-evaluators`);
328
- if (suite.datasetId && suite.experimentId) {
329
- suite.links = buildLinks(client, suite.datasetId, suite.experimentId);
338
+ const client = (_a = suite.config.client) !== null && _a !== void 0 ? _a : (0, index_1.createClient)();
339
+ suite.client = client;
340
+ const datasetName = (_b = suite.config.datasetName) !== null && _b !== void 0 ? _b : suite.name;
341
+ const description = (_c = suite.config.description) !== null && _c !== void 0 ? _c : `Phoenix test dataset auto-generated from ${suite.name}`;
342
+ const datasetId = await createSuiteDataset({
343
+ suite,
344
+ client,
345
+ datasetName,
346
+ description,
347
+ });
348
+ if (!datasetId)
349
+ return;
350
+ suite.datasetId = datasetId;
351
+ await resolveSuiteExampleIds({ suite, client, datasetId });
352
+ const hasExperiment = await createSuiteExperiment({
353
+ suite,
354
+ client,
355
+ datasetId,
356
+ datasetName,
357
+ description,
358
+ });
359
+ if (!hasExperiment || !setupSuiteTracer({ suite, client }))
360
+ return;
361
+ if (suite.experimentId) {
362
+ suite.links = buildLinks(client, datasetId, suite.experimentId);
330
363
  }
331
364
  }
332
365
  /** Lazily-created no-op tracer reused for dry runs / fallbacks. */