@arizeai/phoenix-client 6.10.0 → 6.10.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 (42) hide show
  1. package/dist/esm/__generated__/api/v1.d.ts +251 -27
  2. package/dist/esm/__generated__/api/v1.d.ts.map +1 -1
  3. package/dist/esm/experiments/helpers/getExampleGlobalId.d.ts +8 -0
  4. package/dist/esm/experiments/helpers/getExampleGlobalId.d.ts.map +1 -0
  5. package/dist/esm/experiments/helpers/getExampleGlobalId.js +9 -0
  6. package/dist/esm/experiments/helpers/getExampleGlobalId.js.map +1 -0
  7. package/dist/esm/experiments/resumeEvaluation.d.ts.map +1 -1
  8. package/dist/esm/experiments/resumeEvaluation.js +2 -1
  9. package/dist/esm/experiments/resumeEvaluation.js.map +1 -1
  10. package/dist/esm/experiments/resumeExperiment.d.ts.map +1 -1
  11. package/dist/esm/experiments/resumeExperiment.js +3 -2
  12. package/dist/esm/experiments/resumeExperiment.js.map +1 -1
  13. package/dist/esm/experiments/runExperiment.d.ts.map +1 -1
  14. package/dist/esm/experiments/runExperiment.js +6 -3
  15. package/dist/esm/experiments/runExperiment.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 +251 -27
  20. package/dist/src/__generated__/api/v1.d.ts.map +1 -1
  21. package/dist/src/experiments/helpers/getExampleGlobalId.d.ts +8 -0
  22. package/dist/src/experiments/helpers/getExampleGlobalId.d.ts.map +1 -0
  23. package/dist/src/experiments/helpers/getExampleGlobalId.js +13 -0
  24. package/dist/src/experiments/helpers/getExampleGlobalId.js.map +1 -0
  25. package/dist/src/experiments/resumeEvaluation.d.ts.map +1 -1
  26. package/dist/src/experiments/resumeEvaluation.js +2 -1
  27. package/dist/src/experiments/resumeEvaluation.js.map +1 -1
  28. package/dist/src/experiments/resumeExperiment.d.ts.map +1 -1
  29. package/dist/src/experiments/resumeExperiment.js +3 -2
  30. package/dist/src/experiments/resumeExperiment.js.map +1 -1
  31. package/dist/src/experiments/runExperiment.d.ts.map +1 -1
  32. package/dist/src/experiments/runExperiment.js +6 -3
  33. package/dist/src/experiments/runExperiment.js.map +1 -1
  34. package/dist/src/utils/formatPromptMessages.d.ts.map +1 -1
  35. package/dist/src/utils/getPromptBySelector.d.ts.map +1 -1
  36. package/dist/tsconfig.tsbuildinfo +1 -1
  37. package/package.json +1 -1
  38. package/src/__generated__/api/v1.ts +251 -27
  39. package/src/experiments/helpers/getExampleGlobalId.ts +12 -0
  40. package/src/experiments/resumeEvaluation.ts +2 -1
  41. package/src/experiments/resumeExperiment.ts +3 -2
  42. package/src/experiments/runExperiment.ts +6 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arizeai/phoenix-client",
3
- "version": "6.10.0",
3
+ "version": "6.10.1",
4
4
  "description": "A client for the Phoenix API",
5
5
  "keywords": [
6
6
  "arize",
@@ -1383,22 +1383,6 @@ export interface paths {
1383
1383
  export type webhooks = Record<string, never>;
1384
1384
  export interface components {
1385
1385
  schemas: {
1386
- /**
1387
- * AgentCapabilities
1388
- * @description Runtime capability state sent by the browser for a chat turn.
1389
- */
1390
- AgentCapabilities: {
1391
- /**
1392
- * Bash.Retaininactivesessions
1393
- * @default false
1394
- */
1395
- "bash.retainInactiveSessions"?: boolean;
1396
- /**
1397
- * Graphql.Mutations
1398
- * @default false
1399
- */
1400
- "graphql.mutations"?: boolean;
1401
- };
1402
1386
  /**
1403
1387
  * AgentSpanContext
1404
1388
  * @description Span the user has selected.
@@ -1625,12 +1609,8 @@ export interface components {
1625
1609
  /**
1626
1610
  * ChatContext
1627
1611
  * @description Discriminated union of every UI-state context the agent understands.
1628
- *
1629
- * Wrapped in ``RootModel`` so the generated OpenAPI schema exposes a single
1630
- * named ``ChatContext`` component instead of inlining the ``oneOf`` at every
1631
- * reference site. The actual member is accessible via ``.root``.
1632
1612
  */
1633
- ChatContext: components["schemas"]["AppContext"] | components["schemas"]["ProjectContext"] | components["schemas"]["TraceContext"] | components["schemas"]["AgentSpanContext"] | components["schemas"]["PlaygroundContext"];
1613
+ ChatContext: components["schemas"]["AppContext"] | components["schemas"]["ProjectContext"] | components["schemas"]["TraceContext"] | components["schemas"]["AgentSpanContext"] | components["schemas"]["PlaygroundContext"] | components["schemas"]["CodeEvaluatorContext"] | components["schemas"]["LlmEvaluatorContext"] | components["schemas"]["DatasetContext"] | components["schemas"]["GraphQLContext"] | components["schemas"]["WebAccessContext"];
1634
1614
  /**
1635
1615
  * ChatRegenerateMessage
1636
1616
  * @description Regenerate message extended with Phoenix-specific fields.
@@ -1659,7 +1639,17 @@ export interface components {
1659
1639
  exportRemoteTraces?: boolean;
1660
1640
  /** Contexts */
1661
1641
  contexts?: components["schemas"]["ChatContext"][];
1662
- capabilities?: components["schemas"]["AgentCapabilities"];
1642
+ /**
1643
+ * Editpermission
1644
+ * @default manual
1645
+ * @enum {string}
1646
+ */
1647
+ editPermission?: "manual" | "bypass";
1648
+ /**
1649
+ * Requestedskills
1650
+ * @description Skills the user explicitly requested via the prompt's slash-command affordance. The server force-loads each available skill by injecting a synthetic load_skill tool call/result at the tail of the message history. Unknown or context-unavailable names are ignored.
1651
+ */
1652
+ requestedSkills?: string[];
1663
1653
  /** Model */
1664
1654
  model: components["schemas"]["CustomProviderModelSelection"] | components["schemas"]["BuiltInProviderModelSelection"];
1665
1655
  } & {
@@ -1696,12 +1686,35 @@ export interface components {
1696
1686
  exportRemoteTraces?: boolean;
1697
1687
  /** Contexts */
1698
1688
  contexts?: components["schemas"]["ChatContext"][];
1699
- capabilities?: components["schemas"]["AgentCapabilities"];
1689
+ /**
1690
+ * Editpermission
1691
+ * @default manual
1692
+ * @enum {string}
1693
+ */
1694
+ editPermission?: "manual" | "bypass";
1695
+ /**
1696
+ * Requestedskills
1697
+ * @description Skills the user explicitly requested via the prompt's slash-command affordance. The server force-loads each available skill by injecting a synthetic load_skill tool call/result at the tail of the message history. Unknown or context-unavailable names are ignored.
1698
+ */
1699
+ requestedSkills?: string[];
1700
1700
  /** Model */
1701
1701
  model: components["schemas"]["CustomProviderModelSelection"] | components["schemas"]["BuiltInProviderModelSelection"];
1702
1702
  } & {
1703
1703
  [key: string]: unknown;
1704
1704
  };
1705
+ /**
1706
+ * CodeEvaluatorContext
1707
+ * @description Code-evaluator create/edit form mounted in the current browser route.
1708
+ */
1709
+ CodeEvaluatorContext: {
1710
+ /**
1711
+ * @description discriminator enum property added by openapi-typescript
1712
+ * @enum {string}
1713
+ */
1714
+ type: "code_evaluator";
1715
+ /** Evaluatornodeid */
1716
+ evaluatorNodeId?: string | null;
1717
+ };
1705
1718
  /** ContinuousAnnotationConfig */
1706
1719
  ContinuousAnnotationConfig: {
1707
1720
  /** Name */
@@ -1969,6 +1982,26 @@ export interface components {
1969
1982
  /** Example Count */
1970
1983
  example_count: number;
1971
1984
  };
1985
+ /**
1986
+ * DatasetContext
1987
+ * @description Dataset the user is currently viewing or has bound to a workflow.
1988
+ *
1989
+ * Carries the dataset's relay node id and, when known, the active version
1990
+ * node id. These IDs scope the create-form handoff link and the sampling of
1991
+ * active dataset examples used as prompt context; the dataset schema itself
1992
+ * is open.
1993
+ */
1994
+ DatasetContext: {
1995
+ /**
1996
+ * @description discriminator enum property added by openapi-typescript
1997
+ * @enum {string}
1998
+ */
1999
+ type: "dataset";
2000
+ /** Datasetnodeid */
2001
+ datasetNodeId: string;
2002
+ /** Datasetversionnodeid */
2003
+ datasetVersionNodeId?: string | null;
2004
+ };
1972
2005
  /** DatasetExample */
1973
2006
  DatasetExample: {
1974
2007
  /** Id */
@@ -2062,6 +2095,8 @@ export interface components {
2062
2095
  toolName: string;
2063
2096
  /** Toolcallid */
2064
2097
  toolCallId: string;
2098
+ /** Title */
2099
+ title?: string | null;
2065
2100
  /**
2066
2101
  * State
2067
2102
  * @default approval-requested
@@ -2070,6 +2105,8 @@ export interface components {
2070
2105
  state?: "approval-requested";
2071
2106
  /** Input */
2072
2107
  input: unknown;
2108
+ /** Providerexecuted */
2109
+ providerExecuted?: boolean | null;
2073
2110
  /** Callprovidermetadata */
2074
2111
  callProviderMetadata?: {
2075
2112
  [key: string]: {
@@ -2094,6 +2131,8 @@ export interface components {
2094
2131
  toolName: string;
2095
2132
  /** Toolcallid */
2096
2133
  toolCallId: string;
2134
+ /** Title */
2135
+ title?: string | null;
2097
2136
  /**
2098
2137
  * State
2099
2138
  * @default approval-responded
@@ -2102,6 +2141,8 @@ export interface components {
2102
2141
  state?: "approval-responded";
2103
2142
  /** Input */
2104
2143
  input: unknown;
2144
+ /** Providerexecuted */
2145
+ providerExecuted?: boolean | null;
2105
2146
  /** Callprovidermetadata */
2106
2147
  callProviderMetadata?: {
2107
2148
  [key: string]: {
@@ -2126,6 +2167,8 @@ export interface components {
2126
2167
  toolName: string;
2127
2168
  /** Toolcallid */
2128
2169
  toolCallId: string;
2170
+ /** Title */
2171
+ title?: string | null;
2129
2172
  /**
2130
2173
  * State
2131
2174
  * @default input-available
@@ -2134,6 +2177,8 @@ export interface components {
2134
2177
  state?: "input-available";
2135
2178
  /** Input */
2136
2179
  input: unknown;
2180
+ /** Providerexecuted */
2181
+ providerExecuted?: boolean | null;
2137
2182
  /** Callprovidermetadata */
2138
2183
  callProviderMetadata?: {
2139
2184
  [key: string]: {
@@ -2158,6 +2203,8 @@ export interface components {
2158
2203
  toolName: string;
2159
2204
  /** Toolcallid */
2160
2205
  toolCallId: string;
2206
+ /** Title */
2207
+ title?: string | null;
2161
2208
  /**
2162
2209
  * State
2163
2210
  * @default input-streaming
@@ -2166,6 +2213,8 @@ export interface components {
2166
2213
  state?: "input-streaming";
2167
2214
  /** Input */
2168
2215
  input?: unknown | null;
2216
+ /** Providerexecuted */
2217
+ providerExecuted?: boolean | null;
2169
2218
  /** Callprovidermetadata */
2170
2219
  callProviderMetadata?: {
2171
2220
  [key: string]: {
@@ -2190,6 +2239,8 @@ export interface components {
2190
2239
  toolName: string;
2191
2240
  /** Toolcallid */
2192
2241
  toolCallId: string;
2242
+ /** Title */
2243
+ title?: string | null;
2193
2244
  /**
2194
2245
  * State
2195
2246
  * @default output-available
@@ -2200,6 +2251,8 @@ export interface components {
2200
2251
  input: unknown;
2201
2252
  /** Output */
2202
2253
  output: unknown;
2254
+ /** Providerexecuted */
2255
+ providerExecuted?: boolean | null;
2203
2256
  /** Callprovidermetadata */
2204
2257
  callProviderMetadata?: {
2205
2258
  [key: string]: {
@@ -2226,6 +2279,8 @@ export interface components {
2226
2279
  toolName: string;
2227
2280
  /** Toolcallid */
2228
2281
  toolCallId: string;
2282
+ /** Title */
2283
+ title?: string | null;
2229
2284
  /**
2230
2285
  * State
2231
2286
  * @default output-denied
@@ -2234,6 +2289,8 @@ export interface components {
2234
2289
  state?: "output-denied";
2235
2290
  /** Input */
2236
2291
  input: unknown;
2292
+ /** Providerexecuted */
2293
+ providerExecuted?: boolean | null;
2237
2294
  /** Callprovidermetadata */
2238
2295
  callProviderMetadata?: {
2239
2296
  [key: string]: {
@@ -2258,6 +2315,8 @@ export interface components {
2258
2315
  toolName: string;
2259
2316
  /** Toolcallid */
2260
2317
  toolCallId: string;
2318
+ /** Title */
2319
+ title?: string | null;
2261
2320
  /**
2262
2321
  * State
2263
2322
  * @default output-error
@@ -2268,6 +2327,8 @@ export interface components {
2268
2327
  input: unknown;
2269
2328
  /** Errortext */
2270
2329
  errorText: string;
2330
+ /** Providerexecuted */
2331
+ providerExecuted?: boolean | null;
2271
2332
  /** Callprovidermetadata */
2272
2333
  callProviderMetadata?: {
2273
2334
  [key: string]: {
@@ -2447,6 +2508,13 @@ export interface components {
2447
2508
  type: "FREEFORM";
2448
2509
  /** Description */
2449
2510
  description?: string | null;
2511
+ optimization_direction?: components["schemas"]["OptimizationDirection"] | null;
2512
+ /** Threshold */
2513
+ threshold?: number | null;
2514
+ /** Lower Bound */
2515
+ lower_bound?: number | null;
2516
+ /** Upper Bound */
2517
+ upper_bound?: number | null;
2450
2518
  /** Id */
2451
2519
  id: string;
2452
2520
  };
@@ -2461,6 +2529,13 @@ export interface components {
2461
2529
  type: "FREEFORM";
2462
2530
  /** Description */
2463
2531
  description?: string | null;
2532
+ optimization_direction?: components["schemas"]["OptimizationDirection"] | null;
2533
+ /** Threshold */
2534
+ threshold?: number | null;
2535
+ /** Lower Bound */
2536
+ lower_bound?: number | null;
2537
+ /** Upper Bound */
2538
+ upper_bound?: number | null;
2464
2539
  };
2465
2540
  /** GetAnnotationConfigResponseBody */
2466
2541
  GetAnnotationConfigResponseBody: {
@@ -2562,6 +2637,19 @@ export interface components {
2562
2637
  /** Data */
2563
2638
  data: components["schemas"]["LocalUser"] | components["schemas"]["OAuth2User"] | components["schemas"]["LDAPUser"] | components["schemas"]["AnonymousUser"];
2564
2639
  };
2640
+ /**
2641
+ * GraphQLContext
2642
+ * @description GraphQL runtime state.
2643
+ */
2644
+ GraphQLContext: {
2645
+ /**
2646
+ * @description discriminator enum property added by openapi-typescript
2647
+ * @enum {string}
2648
+ */
2649
+ type: "graphql";
2650
+ /** Mutationsenabled */
2651
+ mutationsEnabled: boolean;
2652
+ };
2565
2653
  /** HTTPValidationError */
2566
2654
  HTTPValidationError: {
2567
2655
  /** Detail */
@@ -2718,6 +2806,19 @@ export interface components {
2718
2806
  /** Next Cursor */
2719
2807
  next_cursor: string | null;
2720
2808
  };
2809
+ /**
2810
+ * LlmEvaluatorContext
2811
+ * @description LLM-evaluator create/edit form mounted in the current browser route.
2812
+ */
2813
+ LlmEvaluatorContext: {
2814
+ /**
2815
+ * @description discriminator enum property added by openapi-typescript
2816
+ * @enum {string}
2817
+ */
2818
+ type: "llm_evaluator";
2819
+ /** Evaluatornodeid */
2820
+ evaluatorNodeId?: string | null;
2821
+ };
2721
2822
  /** LocalUser */
2722
2823
  LocalUser: {
2723
2824
  /** Id */
@@ -3039,6 +3140,21 @@ export interface components {
3039
3140
  */
3040
3141
  message?: string | null;
3041
3142
  };
3143
+ /**
3144
+ * PlaygroundBuiltinModelContext
3145
+ * @description Built-in playground model selection.
3146
+ */
3147
+ PlaygroundBuiltinModelContext: {
3148
+ /**
3149
+ * @description discriminator enum property added by openapi-typescript
3150
+ * @enum {string}
3151
+ */
3152
+ type: "builtin";
3153
+ /** Provider */
3154
+ provider: string;
3155
+ /** Modelname */
3156
+ modelName: string;
3157
+ };
3042
3158
  /**
3043
3159
  * PlaygroundContext
3044
3160
  * @description Playground prompt editor state mounted in the current browser route.
@@ -3049,8 +3165,76 @@ export interface components {
3049
3165
  * @enum {string}
3050
3166
  */
3051
3167
  type: "playground";
3052
- /** Instanceids */
3053
- instanceIds: number[];
3168
+ /**
3169
+ * Recordexperiments
3170
+ * @default true
3171
+ */
3172
+ recordExperiments?: boolean;
3173
+ /**
3174
+ * Repetitions
3175
+ * @default 1
3176
+ */
3177
+ repetitions?: number;
3178
+ /** Instances */
3179
+ instances?: components["schemas"]["PlaygroundInstanceContext"][];
3180
+ /** Evaluators */
3181
+ evaluators?: components["schemas"]["PlaygroundEvaluatorContext"][];
3182
+ };
3183
+ /**
3184
+ * PlaygroundCustomProviderModelContext
3185
+ * @description Custom-provider playground model selection.
3186
+ */
3187
+ PlaygroundCustomProviderModelContext: {
3188
+ /**
3189
+ * @description discriminator enum property added by openapi-typescript
3190
+ * @enum {string}
3191
+ */
3192
+ type: "custom";
3193
+ /** Customproviderid */
3194
+ customProviderId: string;
3195
+ /** Customprovidername */
3196
+ customProviderName: string;
3197
+ /** Provider */
3198
+ provider: string;
3199
+ /** Modelname */
3200
+ modelName: string;
3201
+ };
3202
+ /**
3203
+ * PlaygroundEvaluatorContext
3204
+ * @description One dataset evaluator on the mounted playground's roster. ``name`` is
3205
+ * user-controlled; sanitize at every model-visible boundary.
3206
+ */
3207
+ PlaygroundEvaluatorContext: {
3208
+ /** Datasetevaluatorid */
3209
+ datasetEvaluatorId: string;
3210
+ /** Name */
3211
+ name: string;
3212
+ /**
3213
+ * Kind
3214
+ * @enum {string}
3215
+ */
3216
+ kind: "LLM" | "CODE" | "BUILTIN";
3217
+ /** Isbuiltin */
3218
+ isBuiltin: boolean;
3219
+ /** Isapplied */
3220
+ isApplied: boolean;
3221
+ };
3222
+ /**
3223
+ * PlaygroundInstanceContext
3224
+ * @description One mounted playground instance and its current model selection.
3225
+ *
3226
+ * ``experiment_id`` carries the relay node id of the experiment produced by
3227
+ * this instance's last dataset-backed run, or ``None`` when the instance has
3228
+ * not produced one. Ephemeral experiments are included: they remain queryable
3229
+ * until the server sweeps them ~24h after their last update.
3230
+ */
3231
+ PlaygroundInstanceContext: {
3232
+ /** Instanceid */
3233
+ instanceId: number;
3234
+ /** Model */
3235
+ model?: (components["schemas"]["PlaygroundBuiltinModelContext"] | components["schemas"]["PlaygroundCustomProviderModelContext"]) | null;
3236
+ /** Experimentid */
3237
+ experimentId?: string | null;
3054
3238
  };
3055
3239
  /** Project */
3056
3240
  Project: {
@@ -4452,6 +4636,8 @@ export interface components {
4452
4636
  type: string;
4453
4637
  /** Toolcallid */
4454
4638
  toolCallId: string;
4639
+ /** Title */
4640
+ title?: string | null;
4455
4641
  /**
4456
4642
  * State
4457
4643
  * @default approval-requested
@@ -4492,6 +4678,8 @@ export interface components {
4492
4678
  type: string;
4493
4679
  /** Toolcallid */
4494
4680
  toolCallId: string;
4681
+ /** Title */
4682
+ title?: string | null;
4495
4683
  /**
4496
4684
  * State
4497
4685
  * @default approval-responded
@@ -4544,6 +4732,8 @@ export interface components {
4544
4732
  type: string;
4545
4733
  /** Toolcallid */
4546
4734
  toolCallId: string;
4735
+ /** Title */
4736
+ title?: string | null;
4547
4737
  /**
4548
4738
  * State
4549
4739
  * @default input-available
@@ -4572,6 +4762,8 @@ export interface components {
4572
4762
  type: string;
4573
4763
  /** Toolcallid */
4574
4764
  toolCallId: string;
4765
+ /** Title */
4766
+ title?: string | null;
4575
4767
  /**
4576
4768
  * State
4577
4769
  * @default input-streaming
@@ -4600,6 +4792,8 @@ export interface components {
4600
4792
  type: string;
4601
4793
  /** Toolcallid */
4602
4794
  toolCallId: string;
4795
+ /** Title */
4796
+ title?: string | null;
4603
4797
  /**
4604
4798
  * State
4605
4799
  * @default output-available
@@ -4632,6 +4826,8 @@ export interface components {
4632
4826
  type: string;
4633
4827
  /** Toolcallid */
4634
4828
  toolCallId: string;
4829
+ /** Title */
4830
+ title?: string | null;
4635
4831
  /**
4636
4832
  * State
4637
4833
  * @default output-denied
@@ -4660,6 +4856,8 @@ export interface components {
4660
4856
  type: string;
4661
4857
  /** Toolcallid */
4662
4858
  toolCallId: string;
4859
+ /** Title */
4860
+ title?: string | null;
4663
4861
  /**
4664
4862
  * State
4665
4863
  * @default output-error
@@ -5027,6 +5225,19 @@ export interface components {
5027
5225
  /** Context */
5028
5226
  ctx?: Record<string, unknown>;
5029
5227
  };
5228
+ /**
5229
+ * WebAccessContext
5230
+ * @description User's per-turn request to expose web search / fetch tools.
5231
+ */
5232
+ WebAccessContext: {
5233
+ /**
5234
+ * @description discriminator enum property added by openapi-typescript
5235
+ * @enum {string}
5236
+ */
5237
+ type: "web_access";
5238
+ /** Enabled */
5239
+ enabled: boolean;
5240
+ };
5030
5241
  /**
5031
5242
  * _SummarizeRequest
5032
5243
  * @description Body for POST /agents/{agent_id}/sessions/{session_id}/summary.
@@ -5055,6 +5266,19 @@ export interface components {
5055
5266
  /** Summary */
5056
5267
  summary: string;
5057
5268
  };
5269
+ /**
5270
+ * ToolCallProviderMetadata
5271
+ * @description Payload Phoenix stamps under the ``phoenix`` namespace of Vercel AI
5272
+ * ``providerMetadata`` on tool-call chunks (``tool-input-start`` and
5273
+ * ``tool-input-available``).
5274
+ */
5275
+ ToolCallProviderMetadata: {
5276
+ /**
5277
+ * Tool Execution Environment
5278
+ * @enum {string}
5279
+ */
5280
+ tool_execution_environment: "client" | "server";
5281
+ };
5058
5282
  };
5059
5283
  responses: never;
5060
5284
  parameters: never;
@@ -8880,13 +9104,13 @@ export interface operations {
8880
9104
  };
8881
9105
  };
8882
9106
  responses: {
8883
- /** @description Vercel-AI-style SSE stream. The turn ends with a `message-metadata` chunk whose `messageMetadata` payload matches `AssistantMessageMetadata`. Declared here so the model is included in the generated OpenAPI components. */
9107
+ /** @description Successful Response */
8884
9108
  200: {
8885
9109
  headers: {
8886
9110
  [name: string]: unknown;
8887
9111
  };
8888
9112
  content: {
8889
- "application/json": components["schemas"]["AssistantMessageMetadata"];
9113
+ "application/json": unknown;
8890
9114
  };
8891
9115
  };
8892
9116
  /** @description Validation Error */
@@ -0,0 +1,12 @@
1
+ import type { ExampleWithId } from "../../types/datasets";
2
+
3
+ /**
4
+ * The example's node GlobalID, which experiment runs record as their
5
+ * `dataset_example_id`. Servers that predate the `nodeId` field deliver the
6
+ * GlobalID in the `id` field instead.
7
+ */
8
+ export function getExampleGlobalId(
9
+ example: Pick<ExampleWithId, "id"> & Partial<Pick<ExampleWithId, "nodeId">>
10
+ ): string {
11
+ return example.nodeId ?? example.id;
12
+ }
@@ -29,6 +29,7 @@ import { ensureString } from "../utils/ensureString";
29
29
  import { toObjectHeaders } from "../utils/toObjectHeaders";
30
30
  import { getExperimentInfo } from "./getExperimentInfo.js";
31
31
  import { getExperimentEvaluators } from "./helpers";
32
+ import { getExampleGlobalId } from "./helpers/getExampleGlobalId";
32
33
  import { logEvalResumeSummary, PROGRESS_PREFIX } from "./logging";
33
34
  import { cleanupOwnedTracerProvider } from "./tracing";
34
35
 
@@ -729,7 +730,7 @@ async function runSingleEvaluation({
729
730
  ...objectAsAttributes({
730
731
  experiment_id: experimentId,
731
732
  experiment_run_id: experimentRun.id,
732
- dataset_example_id: datasetExample.nodeId,
733
+ dataset_example_id: getExampleGlobalId(datasetExample),
733
734
  }),
734
735
  });
735
736
 
@@ -28,6 +28,7 @@ import { isHttpErrorWithStatus } from "../utils/isHttpError";
28
28
  import { toObjectHeaders } from "../utils/toObjectHeaders";
29
29
  import { getDatasetExperimentsUrl, getExperimentUrl } from "../utils/urlUtils";
30
30
  import { getExperimentInfo } from "./getExperimentInfo.js";
31
+ import { getExampleGlobalId } from "./helpers/getExampleGlobalId";
31
32
  import {
32
33
  logExperimentResumeSummary,
33
34
  logLinks,
@@ -619,7 +620,7 @@ async function recordTaskResult({
619
620
  },
620
621
  },
621
622
  body: {
622
- dataset_example_id: example.nodeId,
623
+ dataset_example_id: getExampleGlobalId(example),
623
624
  repetition_number: repetitionNumber,
624
625
  output: output as Record<string, unknown>,
625
626
  start_time: startTime.toISOString(),
@@ -695,7 +696,7 @@ async function runSingleTask({
695
696
  [SemanticConventions.INPUT_MIME_TYPE]: MimeType.JSON,
696
697
  ...objectAsAttributes({
697
698
  experiment_id: experimentId,
698
- dataset_example_id: example.nodeId,
699
+ dataset_example_id: getExampleGlobalId(example),
699
700
  repetition_number: repetitionNumber,
700
701
  }),
701
702
  });
@@ -47,6 +47,7 @@ import {
47
47
  } from "../utils/urlUtils";
48
48
  import { getExperimentInfo } from "./getExperimentInfo";
49
49
  import { getExperimentEvaluators } from "./helpers";
50
+ import { getExampleGlobalId } from "./helpers/getExampleGlobalId";
50
51
  import {
51
52
  logEvalSummary,
52
53
  logLinks,
@@ -485,7 +486,7 @@ function runTaskWithExamples({
485
486
  id: localId(), // initialized with local id, will be replaced with server-assigned id when dry run is false
486
487
  traceId,
487
488
  experimentId,
488
- datasetExampleId: example.id,
489
+ datasetExampleId: getExampleGlobalId(example),
489
490
  startTime: new Date(),
490
491
  endTime: new Date(), // will get replaced with actual end time
491
492
  output: null,
@@ -509,7 +510,7 @@ function runTaskWithExamples({
509
510
  },
510
511
  },
511
512
  body: {
512
- dataset_example_id: example.nodeId,
513
+ dataset_example_id: getExampleGlobalId(example),
513
514
  output: thisRun.output,
514
515
  repetition_number: repetitionNumber,
515
516
  start_time: thisRun.startTime.toISOString(),
@@ -681,9 +682,11 @@ export async function evaluateExperiment({
681
682
  type EvaluationId = string;
682
683
  const evaluationRuns: Record<EvaluationId, ExperimentEvaluationRun> = {};
683
684
 
685
+ // Index examples by node GlobalID, matching how runs record
686
+ // datasetExampleId.
684
687
  const examplesById: Record<string, Example> = {};
685
688
  for (const example of dataset.examples) {
686
- examplesById[example.id] = example;
689
+ examplesById[getExampleGlobalId(example)] = example;
687
690
  }
688
691
 
689
692
  const onEvaluationComplete = (run: ExperimentEvaluationRun) => {