@atlanai/sdk 0.2.1 → 0.2.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.
Files changed (734) hide show
  1. package/README.md +65 -14
  2. package/dist/client.d.ts +4 -1
  3. package/dist/client.js +14 -2
  4. package/dist/errors.d.ts +1 -0
  5. package/dist/errors.js +12 -1
  6. package/dist/evals.d.ts +136 -1
  7. package/dist/evals.js +902 -1
  8. package/dist/index.d.ts +3 -2
  9. package/dist/index.js +2 -1
  10. package/dist/manifest.json +264 -218
  11. package/dist/raw/agent/apis/AgentEnvironmentsApi.d.ts +36 -0
  12. package/dist/raw/agent/apis/AgentEnvironmentsApi.js +49 -1
  13. package/dist/raw/agent/apis/AgentFrameworksApi.d.ts +36 -0
  14. package/dist/raw/agent/apis/AgentFrameworksApi.js +49 -1
  15. package/dist/raw/agent/apis/AgentProvidersApi.d.ts +36 -0
  16. package/dist/raw/agent/apis/AgentProvidersApi.js +49 -1
  17. package/dist/raw/agent/apis/AgentsApi.d.ts +78 -4
  18. package/dist/raw/agent/apis/AgentsApi.js +126 -5
  19. package/dist/raw/agent/apis/HarnessVendorsApi.d.ts +36 -0
  20. package/dist/raw/agent/apis/HarnessVendorsApi.js +49 -1
  21. package/dist/raw/agent/apis/HarnessesApi.d.ts +36 -0
  22. package/dist/raw/agent/apis/HarnessesApi.js +49 -1
  23. package/dist/raw/agent/apis/OutputsApi.d.ts +45 -0
  24. package/dist/raw/agent/apis/OutputsApi.js +61 -1
  25. package/dist/raw/agent/apis/SessionsApi.d.ts +38 -2
  26. package/dist/raw/agent/apis/SessionsApi.js +51 -3
  27. package/dist/raw/agent/apis/TracesApi.d.ts +18 -0
  28. package/dist/raw/agent/apis/TracesApi.js +25 -1
  29. package/dist/raw/agent/apis/VisitorsApi.d.ts +9 -0
  30. package/dist/raw/agent/apis/VisitorsApi.js +13 -1
  31. package/dist/raw/agent/models/AgentAgentArtifactView.d.ts +75 -15
  32. package/dist/raw/agent/models/AgentAgentArtifactView.js +15 -2
  33. package/dist/raw/agent/models/AgentAgentEnvironmentArtifactView.d.ts +39 -15
  34. package/dist/raw/agent/models/AgentAgentEnvironmentArtifactView.js +4 -2
  35. package/dist/raw/agent/models/AgentAgentEnvironmentMeta.d.ts +12 -0
  36. package/dist/raw/agent/models/AgentAgentEnvironmentMeta.js +2 -0
  37. package/dist/raw/agent/models/AgentAgentFrameworkArtifactView.d.ts +27 -15
  38. package/dist/raw/agent/models/AgentAgentFrameworkArtifactView.js +2 -2
  39. package/dist/raw/agent/models/AgentAgentMeta.d.ts +48 -0
  40. package/dist/raw/agent/models/AgentAgentMeta.js +13 -0
  41. package/dist/raw/agent/models/AgentAgentProviderArtifactView.d.ts +82 -17
  42. package/dist/raw/agent/models/AgentAgentProviderArtifactView.js +10 -2
  43. package/dist/raw/agent/models/AgentAgentProviderCreate.d.ts +24 -3
  44. package/dist/raw/agent/models/AgentAgentProviderCreate.js +4 -0
  45. package/dist/raw/agent/models/AgentAgentProviderMeta.d.ts +56 -13
  46. package/dist/raw/agent/models/AgentAgentProviderMeta.js +8 -0
  47. package/dist/raw/agent/models/AgentAgentProviderPatch.d.ts +13 -0
  48. package/dist/raw/agent/models/AgentAgentProviderPatch.js +4 -0
  49. package/dist/raw/agent/models/AgentAgentProviderType.d.ts +19 -9
  50. package/dist/raw/agent/models/AgentAgentProviderType.js +18 -8
  51. package/dist/raw/agent/models/AgentCreateAgentFramework400Response.d.ts +2 -0
  52. package/dist/raw/agent/models/AgentCreateAgentFramework400Response.js +2 -2
  53. package/dist/raw/agent/models/AgentCreateAgentFramework413Response.d.ts +64 -0
  54. package/dist/raw/agent/models/AgentCreateAgentFramework413Response.js +74 -0
  55. package/dist/raw/agent/models/AgentCreateAgentFramework415Response.d.ts +1 -0
  56. package/dist/raw/agent/models/AgentCreateAgentFramework415Response.js +1 -2
  57. package/dist/raw/agent/models/AgentGetAgentTrace400Response.d.ts +63 -0
  58. package/dist/raw/agent/models/AgentGetAgentTrace400Response.js +75 -0
  59. package/dist/raw/agent/models/AgentHarnessArtifactView.d.ts +27 -15
  60. package/dist/raw/agent/models/AgentHarnessArtifactView.js +2 -2
  61. package/dist/raw/agent/models/AgentHarnessVendorArtifactView.d.ts +27 -15
  62. package/dist/raw/agent/models/AgentHarnessVendorArtifactView.js +2 -2
  63. package/dist/raw/agent/models/AgentListAgentFrameworks401Response.d.ts +1 -0
  64. package/dist/raw/agent/models/AgentListAgentFrameworks401Response.js +1 -0
  65. package/dist/raw/agent/models/AgentOutputArtifactView.d.ts +27 -15
  66. package/dist/raw/agent/models/AgentOutputArtifactView.js +2 -2
  67. package/dist/raw/agent/models/AgentPageSessionEventView.d.ts +3 -3
  68. package/dist/raw/agent/models/AgentPageSessionEventView.js +3 -3
  69. package/dist/raw/agent/models/AgentQueryAgentTraceStats400Response.d.ts +2 -0
  70. package/dist/raw/agent/models/AgentQueryAgentTraceStats400Response.js +2 -0
  71. package/dist/raw/agent/models/AgentRemoteSessionEvent.d.ts +38 -0
  72. package/dist/raw/agent/models/AgentRemoteSessionEvent.js +58 -0
  73. package/dist/raw/agent/models/AgentSessionArtifactView.d.ts +52 -15
  74. package/dist/raw/agent/models/AgentSessionArtifactView.js +4 -2
  75. package/dist/raw/agent/models/AgentSessionEventView.d.ts +30 -0
  76. package/dist/raw/agent/models/AgentSessionEventView.js +57 -0
  77. package/dist/raw/agent/models/AgentSessionMessageArtifactView.d.ts +27 -15
  78. package/dist/raw/agent/models/AgentSessionMessageArtifactView.js +2 -2
  79. package/dist/raw/agent/models/AgentSessionMeta.d.ts +25 -0
  80. package/dist/raw/agent/models/AgentSessionMeta.js +2 -0
  81. package/dist/raw/agent/models/AgentSessionStreamFrame.d.ts +8 -6
  82. package/dist/raw/agent/models/AgentSessionStreamFrame.js +7 -0
  83. package/dist/raw/agent/models/AgentSyncState.d.ts +27 -0
  84. package/dist/raw/agent/models/AgentSyncState.js +55 -0
  85. package/dist/raw/agent/models/AgentUploadAgentProfileImage400Response.d.ts +2 -1
  86. package/dist/raw/agent/models/AgentUploadAgentProfileImage400Response.js +2 -3
  87. package/dist/raw/agent/models/AgentUploadAgentProfileImage413Response.d.ts +2 -0
  88. package/dist/raw/agent/models/AgentUploadAgentProfileImage413Response.js +2 -2
  89. package/dist/raw/agent/models/AgentVisitorArtifactView.d.ts +27 -15
  90. package/dist/raw/agent/models/AgentVisitorArtifactView.js +2 -2
  91. package/dist/raw/agent/models/GatewayArtifactBase.d.ts +27 -15
  92. package/dist/raw/agent/models/GatewayArtifactBase.js +2 -2
  93. package/dist/raw/agent/models/GatewayTraceStatsGroupBy.d.ts +5 -1
  94. package/dist/raw/agent/models/GatewayTraceStatsGroupBy.js +4 -0
  95. package/dist/raw/agent/models/GatewayTraceStatsMeasure.d.ts +3 -1
  96. package/dist/raw/agent/models/GatewayTraceStatsMeasure.js +2 -0
  97. package/dist/raw/agent/models/SpanViewDto.d.ts +25 -0
  98. package/dist/raw/agent/models/SpanViewDto.js +8 -0
  99. package/dist/raw/agent/models/TraceDetailView.d.ts +9 -0
  100. package/dist/raw/agent/models/TraceDetailView.js +2 -0
  101. package/dist/raw/agent/models/TriggerBody.d.ts +52 -0
  102. package/dist/raw/agent/models/TriggerBody.js +58 -0
  103. package/dist/raw/agent/models/index.d.ts +6 -1
  104. package/dist/raw/agent/models/index.js +6 -1
  105. package/dist/raw/eval/apis/DatasetsApi.d.ts +43 -3
  106. package/dist/raw/eval/apis/DatasetsApi.js +108 -3
  107. package/dist/raw/eval/apis/ExperimentsApi.d.ts +8 -24
  108. package/dist/raw/eval/apis/ExperimentsApi.js +10 -49
  109. package/dist/raw/eval/apis/ScorersApi.d.ts +1 -1
  110. package/dist/raw/eval/apis/ScorersApi.js +1 -1
  111. package/dist/raw/eval/models/AccessView.d.ts +1 -1
  112. package/dist/raw/eval/models/AccessView.js +1 -1
  113. package/dist/raw/eval/models/ArtifactConflictProblem.d.ts +1 -1
  114. package/dist/raw/eval/models/ArtifactConflictProblem.js +1 -1
  115. package/dist/raw/eval/models/CostView.d.ts +1 -1
  116. package/dist/raw/eval/models/CostView.js +1 -1
  117. package/dist/raw/eval/models/CursorPage.d.ts +1 -1
  118. package/dist/raw/eval/models/CursorPage.js +1 -1
  119. package/dist/raw/eval/models/EvalArtifactEnvelope.d.ts +1 -1
  120. package/dist/raw/eval/models/EvalArtifactEnvelope.js +1 -1
  121. package/dist/raw/eval/models/EvalArtifactSearchRequest.d.ts +1 -1
  122. package/dist/raw/eval/models/EvalArtifactSearchRequest.js +1 -1
  123. package/dist/raw/eval/models/EvalBulkDatasetRecordResponse.d.ts +1 -1
  124. package/dist/raw/eval/models/EvalBulkDatasetRecordResponse.js +1 -1
  125. package/dist/raw/eval/models/EvalBulkDatasetRecordResult.d.ts +1 -1
  126. package/dist/raw/eval/models/EvalBulkDatasetRecordResult.js +1 -1
  127. package/dist/raw/eval/models/EvalBulkExperimentResultResponse.d.ts +1 -1
  128. package/dist/raw/eval/models/EvalBulkExperimentResultResponse.js +1 -1
  129. package/dist/raw/eval/models/EvalBulkExperimentResultSlot.d.ts +1 -1
  130. package/dist/raw/eval/models/EvalBulkExperimentResultSlot.js +1 -1
  131. package/dist/raw/eval/models/EvalCreateDataset400Response.d.ts +1 -1
  132. package/dist/raw/eval/models/EvalCreateDataset400Response.js +1 -1
  133. package/dist/raw/eval/models/EvalCreateDataset409Response.d.ts +1 -1
  134. package/dist/raw/eval/models/EvalCreateDataset409Response.js +1 -1
  135. package/dist/raw/eval/models/EvalCreateDataset413Response.d.ts +1 -1
  136. package/dist/raw/eval/models/EvalCreateDataset413Response.js +1 -1
  137. package/dist/raw/eval/models/EvalCreateDataset415Response.d.ts +1 -1
  138. package/dist/raw/eval/models/EvalCreateDataset415Response.js +1 -1
  139. package/dist/raw/eval/models/EvalCreateDataset422Response.d.ts +1 -1
  140. package/dist/raw/eval/models/EvalCreateDataset422Response.js +1 -1
  141. package/dist/raw/eval/models/EvalDatasetArtifactView.d.ts +35 -16
  142. package/dist/raw/eval/models/EvalDatasetArtifactView.js +5 -3
  143. package/dist/raw/eval/models/EvalDatasetCreate.d.ts +7 -1
  144. package/dist/raw/eval/models/EvalDatasetCreate.js +3 -1
  145. package/dist/raw/eval/models/EvalDatasetMeta.d.ts +8 -1
  146. package/dist/raw/eval/models/EvalDatasetMeta.js +3 -1
  147. package/dist/raw/eval/models/EvalDatasetPatch.d.ts +7 -1
  148. package/dist/raw/eval/models/EvalDatasetPatch.js +3 -1
  149. package/dist/raw/eval/models/EvalDatasetRecordArtifactView.d.ts +34 -16
  150. package/dist/raw/eval/models/EvalDatasetRecordArtifactView.js +5 -3
  151. package/dist/raw/eval/models/EvalDatasetRecordBulkCreate.d.ts +1 -1
  152. package/dist/raw/eval/models/EvalDatasetRecordBulkCreate.js +1 -1
  153. package/dist/raw/eval/models/EvalDatasetRecordCreate.d.ts +1 -1
  154. package/dist/raw/eval/models/EvalDatasetRecordCreate.js +1 -1
  155. package/dist/raw/eval/models/EvalDatasetRecordMeta.d.ts +7 -1
  156. package/dist/raw/eval/models/EvalDatasetRecordMeta.js +3 -1
  157. package/dist/raw/eval/models/EvalDatasetRecordPatch.d.ts +1 -1
  158. package/dist/raw/eval/models/EvalDatasetRecordPatch.js +1 -1
  159. package/dist/raw/eval/models/EvalDatasetSnapshot.d.ts +57 -0
  160. package/dist/raw/eval/models/EvalDatasetSnapshot.js +65 -0
  161. package/dist/raw/eval/models/EvalDatasetSnapshotRecord.d.ts +99 -0
  162. package/dist/raw/eval/models/EvalDatasetSnapshotRecord.js +77 -0
  163. package/dist/raw/eval/models/EvalExperimentArtifactView.d.ts +35 -16
  164. package/dist/raw/eval/models/EvalExperimentArtifactView.js +6 -3
  165. package/dist/raw/eval/models/EvalExperimentCreate.d.ts +1 -1
  166. package/dist/raw/eval/models/EvalExperimentCreate.js +1 -1
  167. package/dist/raw/eval/models/EvalExperimentMeta.d.ts +10 -4
  168. package/dist/raw/eval/models/EvalExperimentMeta.js +4 -1
  169. package/dist/raw/eval/models/EvalExperimentPatch.d.ts +4 -3
  170. package/dist/raw/eval/models/EvalExperimentPatch.js +1 -1
  171. package/dist/raw/eval/models/EvalExperimentResultArtifactView.d.ts +45 -16
  172. package/dist/raw/eval/models/EvalExperimentResultArtifactView.js +7 -3
  173. package/dist/raw/eval/models/EvalExperimentResultBulkCreate.d.ts +1 -1
  174. package/dist/raw/eval/models/EvalExperimentResultBulkCreate.js +1 -1
  175. package/dist/raw/eval/models/EvalExperimentResultCreate.d.ts +16 -1
  176. package/dist/raw/eval/models/EvalExperimentResultCreate.js +5 -1
  177. package/dist/raw/eval/models/EvalExperimentResultMeta.d.ts +18 -1
  178. package/dist/raw/eval/models/EvalExperimentResultMeta.js +5 -1
  179. package/dist/raw/eval/models/EvalExperimentStatus.d.ts +1 -1
  180. package/dist/raw/eval/models/EvalExperimentStatus.js +1 -1
  181. package/dist/raw/eval/models/EvalGetDataset404Response.d.ts +1 -1
  182. package/dist/raw/eval/models/EvalGetDataset404Response.js +1 -1
  183. package/dist/raw/eval/models/EvalGetExperimentTrace400Response.d.ts +1 -1
  184. package/dist/raw/eval/models/EvalGetExperimentTrace400Response.js +1 -1
  185. package/dist/raw/eval/models/EvalListDatasets400Response.d.ts +1 -1
  186. package/dist/raw/eval/models/EvalListDatasets400Response.js +1 -1
  187. package/dist/raw/eval/models/EvalListDatasets401Response.d.ts +2 -1
  188. package/dist/raw/eval/models/EvalListDatasets401Response.js +2 -1
  189. package/dist/raw/eval/models/EvalListDatasets403Response.d.ts +1 -1
  190. package/dist/raw/eval/models/EvalListDatasets403Response.js +1 -1
  191. package/dist/raw/eval/models/EvalListDatasets500Response.d.ts +1 -1
  192. package/dist/raw/eval/models/EvalListDatasets500Response.js +1 -1
  193. package/dist/raw/eval/models/EvalListDatasets503Response.d.ts +1 -1
  194. package/dist/raw/eval/models/EvalListDatasets503Response.js +1 -1
  195. package/dist/raw/eval/models/EvalListDatasets504Response.d.ts +1 -1
  196. package/dist/raw/eval/models/EvalListDatasets504Response.js +1 -1
  197. package/dist/raw/eval/models/EvalPageDatasetArtifactView.d.ts +1 -1
  198. package/dist/raw/eval/models/EvalPageDatasetArtifactView.js +1 -1
  199. package/dist/raw/eval/models/EvalPageDatasetRecordArtifactView.d.ts +1 -1
  200. package/dist/raw/eval/models/EvalPageDatasetRecordArtifactView.js +1 -1
  201. package/dist/raw/eval/models/EvalPageExperimentArtifactView.d.ts +1 -1
  202. package/dist/raw/eval/models/EvalPageExperimentArtifactView.js +1 -1
  203. package/dist/raw/eval/models/EvalPageExperimentResultArtifactView.d.ts +1 -1
  204. package/dist/raw/eval/models/EvalPageExperimentResultArtifactView.js +1 -1
  205. package/dist/raw/eval/models/EvalPageScorerArtifactView.d.ts +1 -1
  206. package/dist/raw/eval/models/EvalPageScorerArtifactView.js +1 -1
  207. package/dist/raw/eval/models/EvalPatchDataset412Response.d.ts +1 -1
  208. package/dist/raw/eval/models/EvalPatchDataset412Response.js +1 -1
  209. package/dist/raw/eval/models/EvalRecordSource.d.ts +1 -1
  210. package/dist/raw/eval/models/EvalRecordSource.js +1 -1
  211. package/dist/raw/eval/models/EvalScorerArtifactView.d.ts +28 -16
  212. package/dist/raw/eval/models/EvalScorerArtifactView.js +3 -3
  213. package/dist/raw/eval/models/EvalScorerCreate.d.ts +1 -1
  214. package/dist/raw/eval/models/EvalScorerCreate.js +1 -1
  215. package/dist/raw/eval/models/EvalScorerKind.d.ts +1 -1
  216. package/dist/raw/eval/models/EvalScorerKind.js +1 -1
  217. package/dist/raw/eval/models/EvalScorerMeta.d.ts +1 -1
  218. package/dist/raw/eval/models/EvalScorerMeta.js +1 -1
  219. package/dist/raw/eval/models/EvalScorerPatch.d.ts +1 -1
  220. package/dist/raw/eval/models/EvalScorerPatch.js +1 -1
  221. package/dist/raw/eval/models/EvalScorerScope.d.ts +1 -1
  222. package/dist/raw/eval/models/EvalScorerScope.js +1 -1
  223. package/dist/raw/eval/models/EvalSubjectKind.d.ts +1 -1
  224. package/dist/raw/eval/models/EvalSubjectKind.js +1 -1
  225. package/dist/raw/eval/models/GatewayArtifactBase.d.ts +28 -16
  226. package/dist/raw/eval/models/GatewayArtifactBase.js +3 -3
  227. package/dist/raw/eval/models/GatewayArtifactIdentityRevealView.d.ts +1 -1
  228. package/dist/raw/eval/models/GatewayArtifactIdentityRevealView.js +1 -1
  229. package/dist/raw/eval/models/GatewayPageMeta.d.ts +1 -1
  230. package/dist/raw/eval/models/GatewayPageMeta.js +1 -1
  231. package/dist/raw/eval/models/GatewaySourceEnvelope.d.ts +1 -1
  232. package/dist/raw/eval/models/GatewaySourceEnvelope.js +1 -1
  233. package/dist/raw/eval/models/GatewayTraceStatsBucket.d.ts +1 -1
  234. package/dist/raw/eval/models/GatewayTraceStatsBucket.js +1 -1
  235. package/dist/raw/eval/models/GatewayTraceStatsCompareMode.d.ts +1 -1
  236. package/dist/raw/eval/models/GatewayTraceStatsCompareMode.js +1 -1
  237. package/dist/raw/eval/models/GatewayTraceStatsComparison.d.ts +1 -1
  238. package/dist/raw/eval/models/GatewayTraceStatsComparison.js +1 -1
  239. package/dist/raw/eval/models/GatewayTraceStatsData.d.ts +1 -1
  240. package/dist/raw/eval/models/GatewayTraceStatsData.js +1 -1
  241. package/dist/raw/eval/models/GatewayTraceStatsDataOneOf.d.ts +1 -1
  242. package/dist/raw/eval/models/GatewayTraceStatsDataOneOf.js +1 -1
  243. package/dist/raw/eval/models/GatewayTraceStatsDataOneOf1.d.ts +1 -1
  244. package/dist/raw/eval/models/GatewayTraceStatsDataOneOf1.js +1 -1
  245. package/dist/raw/eval/models/GatewayTraceStatsDataOneOf2.d.ts +1 -1
  246. package/dist/raw/eval/models/GatewayTraceStatsDataOneOf2.js +1 -1
  247. package/dist/raw/eval/models/GatewayTraceStatsEnvelope.d.ts +1 -1
  248. package/dist/raw/eval/models/GatewayTraceStatsEnvelope.js +1 -1
  249. package/dist/raw/eval/models/GatewayTraceStatsFilter.d.ts +1 -1
  250. package/dist/raw/eval/models/GatewayTraceStatsFilter.js +1 -1
  251. package/dist/raw/eval/models/GatewayTraceStatsFilterOperator.d.ts +1 -1
  252. package/dist/raw/eval/models/GatewayTraceStatsFilterOperator.js +1 -1
  253. package/dist/raw/eval/models/GatewayTraceStatsFilterValue.d.ts +1 -1
  254. package/dist/raw/eval/models/GatewayTraceStatsFilterValue.js +1 -1
  255. package/dist/raw/eval/models/GatewayTraceStatsGroupBy.d.ts +1 -1
  256. package/dist/raw/eval/models/GatewayTraceStatsGroupBy.js +1 -1
  257. package/dist/raw/eval/models/GatewayTraceStatsMeasure.d.ts +1 -1
  258. package/dist/raw/eval/models/GatewayTraceStatsMeasure.js +1 -1
  259. package/dist/raw/eval/models/GatewayTraceStatsMeta.d.ts +1 -1
  260. package/dist/raw/eval/models/GatewayTraceStatsMeta.js +1 -1
  261. package/dist/raw/eval/models/GatewayTraceStatsOrder.d.ts +1 -1
  262. package/dist/raw/eval/models/GatewayTraceStatsOrder.js +1 -1
  263. package/dist/raw/eval/models/GatewayTraceStatsOrderBy.d.ts +1 -1
  264. package/dist/raw/eval/models/GatewayTraceStatsOrderBy.js +1 -1
  265. package/dist/raw/eval/models/GatewayTraceStatsOrderDirection.d.ts +1 -1
  266. package/dist/raw/eval/models/GatewayTraceStatsOrderDirection.js +1 -1
  267. package/dist/raw/eval/models/GatewayTraceStatsPanelQuery.d.ts +1 -1
  268. package/dist/raw/eval/models/GatewayTraceStatsPanelQuery.js +1 -1
  269. package/dist/raw/eval/models/GatewayTraceStatsRequest.d.ts +1 -1
  270. package/dist/raw/eval/models/GatewayTraceStatsRequest.js +1 -1
  271. package/dist/raw/eval/models/GatewayTraceStatsRequestType.d.ts +1 -1
  272. package/dist/raw/eval/models/GatewayTraceStatsRequestType.js +1 -1
  273. package/dist/raw/eval/models/GatewayTraceStatsScalarResult.d.ts +1 -1
  274. package/dist/raw/eval/models/GatewayTraceStatsScalarResult.js +1 -1
  275. package/dist/raw/eval/models/GatewayTraceStatsSeries.d.ts +1 -1
  276. package/dist/raw/eval/models/GatewayTraceStatsSeries.js +1 -1
  277. package/dist/raw/eval/models/GatewayTraceStatsSeriesPoint.d.ts +1 -1
  278. package/dist/raw/eval/models/GatewayTraceStatsSeriesPoint.js +1 -1
  279. package/dist/raw/eval/models/GatewayTraceStatsTableColumn.d.ts +1 -1
  280. package/dist/raw/eval/models/GatewayTraceStatsTableColumn.js +1 -1
  281. package/dist/raw/eval/models/GatewayTraceStatsTableColumnType.d.ts +1 -1
  282. package/dist/raw/eval/models/GatewayTraceStatsTableColumnType.js +1 -1
  283. package/dist/raw/eval/models/GatewayTraceStatsTableRow.d.ts +1 -1
  284. package/dist/raw/eval/models/GatewayTraceStatsTableRow.js +1 -1
  285. package/dist/raw/eval/models/GatewayTraceStatsWindow.d.ts +1 -1
  286. package/dist/raw/eval/models/GatewayTraceStatsWindow.js +1 -1
  287. package/dist/raw/eval/models/ProblemDetails.d.ts +1 -1
  288. package/dist/raw/eval/models/ProblemDetails.js +1 -1
  289. package/dist/raw/eval/models/RegistryEdgeTarget.d.ts +1 -1
  290. package/dist/raw/eval/models/RegistryEdgeTarget.js +1 -1
  291. package/dist/raw/eval/models/RegistryRelationshipEdge.d.ts +1 -1
  292. package/dist/raw/eval/models/RegistryRelationshipEdge.js +1 -1
  293. package/dist/raw/eval/models/RegistryRelationshipsView.d.ts +1 -1
  294. package/dist/raw/eval/models/RegistryRelationshipsView.js +1 -1
  295. package/dist/raw/eval/models/SpanListEnvelope.d.ts +1 -1
  296. package/dist/raw/eval/models/SpanListEnvelope.js +1 -1
  297. package/dist/raw/eval/models/SpanViewDto.d.ts +26 -1
  298. package/dist/raw/eval/models/SpanViewDto.js +9 -1
  299. package/dist/raw/eval/models/TraceDetailView.d.ts +10 -1
  300. package/dist/raw/eval/models/TraceDetailView.js +3 -1
  301. package/dist/raw/eval/models/TraceLinks.d.ts +1 -1
  302. package/dist/raw/eval/models/TraceLinks.js +1 -1
  303. package/dist/raw/eval/models/TraceListEnvelope.d.ts +1 -1
  304. package/dist/raw/eval/models/TraceListEnvelope.js +1 -1
  305. package/dist/raw/eval/models/TraceParentView.d.ts +1 -1
  306. package/dist/raw/eval/models/TraceParentView.js +1 -1
  307. package/dist/raw/eval/models/TraceStatus.d.ts +1 -1
  308. package/dist/raw/eval/models/TraceStatus.js +1 -1
  309. package/dist/raw/eval/models/TraceSummaryStats.d.ts +1 -1
  310. package/dist/raw/eval/models/TraceSummaryStats.js +1 -1
  311. package/dist/raw/eval/models/TraceSummaryView.d.ts +1 -1
  312. package/dist/raw/eval/models/TraceSummaryView.js +1 -1
  313. package/dist/raw/eval/models/UsageView.d.ts +1 -1
  314. package/dist/raw/eval/models/UsageView.js +1 -1
  315. package/dist/raw/eval/models/index.d.ts +2 -0
  316. package/dist/raw/eval/models/index.js +2 -0
  317. package/dist/raw/eval/runtime.d.ts +1 -1
  318. package/dist/raw/eval/runtime.js +1 -1
  319. package/dist/raw/file/apis/FileApi.d.ts +18 -0
  320. package/dist/raw/file/apis/FileApi.js +25 -1
  321. package/dist/raw/file/models/FileCreateUpload400Response.d.ts +2 -0
  322. package/dist/raw/file/models/FileCreateUpload400Response.js +2 -2
  323. package/dist/raw/file/models/FileCreateUpload413Response.d.ts +2 -1
  324. package/dist/raw/file/models/FileCreateUpload413Response.js +2 -3
  325. package/dist/raw/file/models/FileCreateUpload415Response.d.ts +1 -0
  326. package/dist/raw/file/models/FileCreateUpload415Response.js +1 -2
  327. package/dist/raw/file/models/FileFile.d.ts +4 -0
  328. package/dist/raw/file/models/FileFileArtifact.d.ts +31 -15
  329. package/dist/raw/file/models/FileFileArtifact.js +2 -2
  330. package/dist/raw/file/models/FileIngestUpload400Response.d.ts +2 -1
  331. package/dist/raw/file/models/FileIngestUpload400Response.js +2 -3
  332. package/dist/raw/file/models/FileIngestUpload415Response.d.ts +63 -0
  333. package/dist/raw/file/models/FileIngestUpload415Response.js +75 -0
  334. package/dist/raw/file/models/FileList401Response.d.ts +1 -0
  335. package/dist/raw/file/models/FileList401Response.js +1 -0
  336. package/dist/raw/file/models/GatewayArtifactBase.d.ts +27 -15
  337. package/dist/raw/file/models/GatewayArtifactBase.js +2 -2
  338. package/dist/raw/file/models/index.d.ts +1 -0
  339. package/dist/raw/file/models/index.js +1 -0
  340. package/dist/raw/mcp/apis/ServersApi.d.ts +20 -2
  341. package/dist/raw/mcp/apis/ServersApi.js +27 -3
  342. package/dist/raw/mcp/apis/ToolsApi.d.ts +18 -0
  343. package/dist/raw/mcp/apis/ToolsApi.js +25 -1
  344. package/dist/raw/mcp/models/GatewayArtifactBase.d.ts +27 -15
  345. package/dist/raw/mcp/models/GatewayArtifactBase.js +2 -2
  346. package/dist/raw/mcp/models/McpAggregateServers400Response.d.ts +2 -0
  347. package/dist/raw/mcp/models/McpAggregateServers400Response.js +2 -0
  348. package/dist/raw/mcp/models/McpAggregateServers413Response.d.ts +64 -0
  349. package/dist/raw/mcp/models/McpAggregateServers413Response.js +74 -0
  350. package/dist/raw/mcp/models/McpAggregateServers415Response.d.ts +1 -0
  351. package/dist/raw/mcp/models/McpAggregateServers415Response.js +1 -2
  352. package/dist/raw/mcp/models/McpConnectionState.d.ts +2 -1
  353. package/dist/raw/mcp/models/McpConnectionState.js +2 -1
  354. package/dist/raw/mcp/models/McpListServers401Response.d.ts +1 -0
  355. package/dist/raw/mcp/models/McpListServers401Response.js +1 -0
  356. package/dist/raw/mcp/models/McpMcpServer.d.ts +27 -0
  357. package/dist/raw/mcp/models/McpMcpServer.js +4 -0
  358. package/dist/raw/mcp/models/McpMcpServerArtifactView.d.ts +54 -15
  359. package/dist/raw/mcp/models/McpMcpServerArtifactView.js +6 -2
  360. package/dist/raw/mcp/models/McpMcpSessionMessage.d.ts +1 -1
  361. package/dist/raw/mcp/models/McpMcpToolArtifactView.d.ts +27 -15
  362. package/dist/raw/mcp/models/McpMcpToolArtifactView.js +2 -2
  363. package/dist/raw/mcp/models/McpServerTestResponse.d.ts +13 -2
  364. package/dist/raw/mcp/models/index.d.ts +1 -0
  365. package/dist/raw/mcp/models/index.js +1 -0
  366. package/dist/raw/model/apis/OpenaiApi.d.ts +4 -4
  367. package/dist/raw/model/apis/OpenaiApi.js +4 -4
  368. package/dist/raw/model/models/ModelListProviders401Response.d.ts +1 -0
  369. package/dist/raw/model/models/ModelListProviders401Response.js +1 -0
  370. package/dist/raw/registry/apis/AppsApi.d.ts +159 -0
  371. package/dist/raw/registry/apis/AppsApi.js +385 -0
  372. package/dist/raw/registry/apis/AuthApi.d.ts +2 -2
  373. package/dist/raw/registry/apis/AuthApi.js +2 -2
  374. package/dist/raw/registry/apis/DiscoveryApi.d.ts +27 -0
  375. package/dist/raw/registry/apis/DiscoveryApi.js +37 -1
  376. package/dist/raw/registry/apis/InvitationsApi.d.ts +159 -0
  377. package/dist/raw/registry/apis/InvitationsApi.js +383 -0
  378. package/dist/raw/registry/apis/OrganisationsApi.d.ts +51 -0
  379. package/dist/raw/registry/apis/OrganisationsApi.js +108 -1
  380. package/dist/raw/registry/apis/ReleasesApi.d.ts +199 -0
  381. package/dist/raw/registry/apis/ReleasesApi.js +484 -0
  382. package/dist/raw/registry/apis/ReposApi.d.ts +27 -0
  383. package/dist/raw/registry/apis/ReposApi.js +37 -1
  384. package/dist/raw/registry/apis/RolesApi.d.ts +32 -0
  385. package/dist/raw/registry/apis/RolesApi.js +95 -0
  386. package/dist/raw/registry/apis/ServiceAccountsApi.d.ts +13 -4
  387. package/dist/raw/registry/apis/ServiceAccountsApi.js +17 -5
  388. package/dist/raw/registry/apis/SessionsApi.d.ts +60 -0
  389. package/dist/raw/registry/apis/SessionsApi.js +150 -0
  390. package/dist/raw/registry/apis/UsersApi.d.ts +75 -43
  391. package/dist/raw/registry/apis/UsersApi.js +139 -74
  392. package/dist/raw/registry/apis/WorkspacesApi.d.ts +80 -4
  393. package/dist/raw/registry/apis/WorkspacesApi.js +152 -5
  394. package/dist/raw/registry/apis/index.d.ts +5 -7
  395. package/dist/raw/registry/apis/index.js +5 -7
  396. package/dist/raw/registry/models/{ExtensionJobDto.d.ts → AppActionDto.d.ts} +33 -27
  397. package/dist/raw/registry/models/{ExtensionJobDto.js → AppActionDto.js} +22 -20
  398. package/dist/raw/registry/models/AppActionsPage.d.ts +40 -0
  399. package/dist/raw/registry/models/{PublishersPage.js → AppActionsPage.js} +16 -16
  400. package/dist/raw/registry/models/AppDto.d.ts +174 -0
  401. package/dist/raw/registry/models/AppDto.js +116 -0
  402. package/dist/raw/registry/models/AppsPage.d.ts +40 -0
  403. package/dist/raw/registry/models/{GroupsPage.js → AppsPage.js} +16 -16
  404. package/dist/raw/registry/models/ArtifactView.d.ts +76 -15
  405. package/dist/raw/registry/models/ArtifactView.js +10 -2
  406. package/dist/raw/registry/models/CreateInvitationsRequest.d.ts +33 -0
  407. package/dist/raw/registry/models/CreateInvitationsRequest.js +51 -0
  408. package/dist/raw/registry/models/CreateWorkspaceBody.d.ts +9 -0
  409. package/dist/raw/registry/models/CreateWorkspaceBody.js +2 -0
  410. package/dist/raw/registry/models/CutReleaseBody.d.ts +56 -0
  411. package/dist/raw/registry/models/CutReleaseBody.js +56 -0
  412. package/dist/raw/registry/models/EdgeTarget.d.ts +4 -0
  413. package/dist/raw/registry/models/InstallAppBody.d.ts +34 -0
  414. package/dist/raw/registry/models/InstallAppBody.js +48 -0
  415. package/dist/raw/registry/models/IntrospectedIdentity.d.ts +12 -3
  416. package/dist/raw/registry/models/IntrospectedIdentity.js +5 -3
  417. package/dist/raw/registry/models/InvitationDto.d.ts +98 -0
  418. package/dist/raw/registry/models/InvitationDto.js +88 -0
  419. package/dist/raw/registry/models/InvitationSendResult.d.ts +38 -0
  420. package/dist/raw/registry/models/InvitationSendResult.js +54 -0
  421. package/dist/raw/registry/models/InvitationSummaryDto.d.ts +86 -0
  422. package/dist/raw/registry/models/InvitationSummaryDto.js +84 -0
  423. package/dist/raw/registry/models/InvitationsPage.d.ts +40 -0
  424. package/dist/raw/registry/models/{MembershipsPage.js → InvitationsPage.js} +16 -16
  425. package/dist/raw/registry/models/InvitationsResponse.d.ts +33 -0
  426. package/dist/raw/registry/models/InvitationsResponse.js +51 -0
  427. package/dist/raw/registry/models/InviteeRequest.d.ts +44 -0
  428. package/dist/raw/registry/models/InviteeRequest.js +56 -0
  429. package/dist/raw/registry/models/InviteeResult.d.ts +69 -0
  430. package/dist/raw/registry/models/InviteeResult.js +66 -0
  431. package/dist/raw/registry/models/ReconcileAcceptedDto.d.ts +40 -0
  432. package/dist/raw/registry/models/ReconcileAcceptedDto.js +54 -0
  433. package/dist/raw/registry/models/RegistryAggregate400Response.d.ts +2 -0
  434. package/dist/raw/registry/models/RegistryAggregate400Response.js +2 -2
  435. package/dist/raw/registry/models/{RegistryListActionRuns401Response.d.ts → RegistryAggregate401Response.d.ts} +17 -16
  436. package/dist/raw/registry/models/RegistryAggregate401Response.js +90 -0
  437. package/dist/raw/registry/models/RegistryAggregate403Response.d.ts +64 -0
  438. package/dist/raw/registry/models/RegistryAggregate403Response.js +74 -0
  439. package/dist/raw/registry/models/RegistryAggregate413Response.d.ts +64 -0
  440. package/dist/raw/registry/models/RegistryAggregate413Response.js +74 -0
  441. package/dist/raw/registry/models/RegistryAggregate415Response.d.ts +1 -0
  442. package/dist/raw/registry/models/RegistryAggregate415Response.js +1 -2
  443. package/dist/raw/registry/models/RegistryAggregate500Response.d.ts +63 -0
  444. package/dist/raw/registry/models/RegistryAggregate500Response.js +75 -0
  445. package/dist/raw/registry/models/RegistryAggregate503Response.d.ts +64 -0
  446. package/dist/raw/registry/models/RegistryAggregate503Response.js +74 -0
  447. package/dist/raw/registry/models/RegistryAggregate504Response.d.ts +63 -0
  448. package/dist/raw/registry/models/RegistryAggregate504Response.js +75 -0
  449. package/dist/raw/registry/models/RegistryAggregateKind404Response.d.ts +63 -0
  450. package/dist/raw/registry/models/{RegistryGetActionRun404Response.js → RegistryAggregateKind404Response.js} +18 -18
  451. package/dist/raw/registry/models/RegistryCreateServiceAccount400Response.d.ts +66 -0
  452. package/dist/raw/registry/models/RegistryCreateServiceAccount400Response.js +76 -0
  453. package/dist/raw/registry/models/RegistryInstallApp409Response.d.ts +63 -0
  454. package/dist/raw/registry/models/RegistryInstallApp409Response.js +75 -0
  455. package/dist/raw/registry/models/RegistryListApps400Response.d.ts +63 -0
  456. package/dist/raw/registry/models/RegistryListApps400Response.js +75 -0
  457. package/dist/raw/registry/models/RegistryListApps503Response.d.ts +65 -0
  458. package/dist/raw/registry/models/RegistryListApps503Response.js +75 -0
  459. package/dist/raw/registry/models/RegistryListArtifactReleases400Response.d.ts +63 -0
  460. package/dist/raw/registry/models/RegistryListArtifactReleases400Response.js +75 -0
  461. package/dist/raw/registry/models/RegistryListUserTraces503Response.d.ts +66 -0
  462. package/dist/raw/registry/models/RegistryListUserTraces503Response.js +76 -0
  463. package/dist/raw/registry/models/RegistryRevokeOwnSessions400Response.d.ts +64 -0
  464. package/dist/raw/registry/models/RegistryRevokeOwnSessions400Response.js +74 -0
  465. package/dist/raw/registry/models/RegistryRevokeOwnSessions415Response.d.ts +63 -0
  466. package/dist/raw/registry/models/RegistryRevokeOwnSessions415Response.js +75 -0
  467. package/dist/raw/registry/models/RegistryWhoami503Response.d.ts +66 -0
  468. package/dist/raw/registry/models/RegistryWhoami503Response.js +76 -0
  469. package/dist/raw/registry/models/RegistryWorkspacePluginRef.d.ts +61 -0
  470. package/dist/raw/registry/models/RegistryWorkspacePluginRef.js +62 -0
  471. package/dist/raw/registry/models/RegistryWorkspaceRecommendation.d.ts +66 -0
  472. package/dist/raw/registry/models/RegistryWorkspaceRecommendation.js +64 -0
  473. package/dist/raw/registry/models/RegistryWorkspaceRecommendationReason.d.ts +29 -0
  474. package/dist/raw/registry/models/RegistryWorkspaceRecommendationReason.js +57 -0
  475. package/dist/raw/registry/models/RegistryWorkspaceView.d.ts +42 -0
  476. package/dist/raw/registry/models/RegistryWorkspaceView.js +11 -0
  477. package/dist/raw/registry/models/RelationshipsView.d.ts +5 -1
  478. package/dist/raw/registry/models/ReleaseDto.d.ts +123 -0
  479. package/dist/raw/registry/models/ReleaseDto.js +100 -0
  480. package/dist/raw/registry/models/ReleasePage.d.ts +40 -0
  481. package/dist/raw/registry/models/{BudgetsPage.js → ReleasePage.js} +16 -16
  482. package/dist/raw/registry/models/ReleasePolicyDto.d.ts +76 -0
  483. package/dist/raw/registry/models/ReleasePolicyDto.js +78 -0
  484. package/dist/raw/registry/models/RoleDto.d.ts +38 -0
  485. package/dist/raw/registry/models/RoleDto.js +54 -0
  486. package/dist/raw/registry/models/RoleListDto.d.ts +33 -0
  487. package/dist/raw/registry/models/RoleListDto.js +51 -0
  488. package/dist/raw/registry/models/SearchRequest.d.ts +1 -1
  489. package/dist/raw/registry/models/ServiceAccountDto.d.ts +5 -1
  490. package/dist/raw/registry/models/SetReleasePolicyBody.d.ts +55 -0
  491. package/dist/raw/registry/models/SetReleasePolicyBody.js +54 -0
  492. package/dist/raw/registry/models/SetTraceContentPolicyDto.d.ts +34 -0
  493. package/dist/raw/registry/models/SetTraceContentPolicyDto.js +48 -0
  494. package/dist/raw/registry/models/SetVisibilityBody.d.ts +33 -0
  495. package/dist/raw/registry/models/SetVisibilityBody.js +50 -0
  496. package/dist/raw/registry/models/SpanViewDto.d.ts +25 -0
  497. package/dist/raw/registry/models/SpanViewDto.js +8 -0
  498. package/dist/raw/registry/models/TraceContentDeletionDto.d.ts +32 -0
  499. package/dist/raw/registry/models/TraceContentDeletionDto.js +50 -0
  500. package/dist/raw/registry/models/TraceContentPolicyDto.d.ts +48 -0
  501. package/dist/raw/registry/models/TraceContentPolicyDto.js +52 -0
  502. package/dist/raw/registry/models/TraceDetailView.d.ts +9 -0
  503. package/dist/raw/registry/models/TraceDetailView.js +2 -0
  504. package/dist/raw/registry/models/UpdateInvitationRequest.d.ts +38 -0
  505. package/dist/raw/registry/models/UpdateInvitationRequest.js +50 -0
  506. package/dist/raw/registry/models/UpgradeAppBody.d.ts +37 -0
  507. package/dist/raw/registry/models/UpgradeAppBody.js +48 -0
  508. package/dist/raw/registry/models/UserDirectoryDto.d.ts +55 -0
  509. package/dist/raw/registry/models/UserDirectoryDto.js +58 -0
  510. package/dist/raw/registry/models/UsersPage.d.ts +3 -3
  511. package/dist/raw/registry/models/UsersPage.js +3 -3
  512. package/dist/raw/registry/models/WhoamiResponse.d.ts +12 -3
  513. package/dist/raw/registry/models/WhoamiResponse.js +5 -3
  514. package/dist/raw/registry/models/WithdrawBody.d.ts +33 -0
  515. package/dist/raw/registry/models/WithdrawBody.js +48 -0
  516. package/dist/raw/registry/models/WorkspaceInvitationListDto.d.ts +33 -0
  517. package/dist/raw/registry/models/WorkspaceInvitationListDto.js +51 -0
  518. package/dist/raw/registry/models/WorkspaceInvitationRow.d.ts +44 -0
  519. package/dist/raw/registry/models/WorkspaceInvitationRow.js +58 -0
  520. package/dist/raw/registry/models/WorkspaceRecommendationsPage.d.ts +40 -0
  521. package/dist/raw/registry/models/WorkspaceRecommendationsPage.js +56 -0
  522. package/dist/raw/registry/models/index.d.ts +51 -50
  523. package/dist/raw/registry/models/index.js +51 -50
  524. package/dist/raw/secret/apis/OauthApi.d.ts +143 -0
  525. package/dist/raw/secret/apis/OauthApi.js +335 -0
  526. package/dist/raw/secret/apis/index.d.ts +1 -0
  527. package/dist/raw/secret/apis/index.js +19 -0
  528. package/dist/raw/secret/index.d.ts +1 -0
  529. package/dist/raw/secret/index.js +1 -0
  530. package/dist/raw/secret/models/GatewayOauthCompleteRequest.d.ts +32 -0
  531. package/dist/raw/secret/models/GatewayOauthCompleteRequest.js +50 -0
  532. package/dist/raw/secret/models/GatewayOauthCompletion.d.ts +46 -0
  533. package/dist/raw/secret/models/GatewayOauthCompletion.js +55 -0
  534. package/dist/raw/secret/models/GatewayOauthConnection.d.ts +83 -0
  535. package/dist/raw/secret/models/GatewayOauthConnection.js +83 -0
  536. package/dist/raw/secret/models/GatewayOauthOwner.d.ts +31 -0
  537. package/dist/raw/secret/models/GatewayOauthOwner.js +59 -0
  538. package/dist/raw/secret/models/GatewayOauthProviderView.d.ts +69 -0
  539. package/dist/raw/secret/models/GatewayOauthProviderView.js +69 -0
  540. package/dist/raw/secret/models/GatewayOauthStartRequest.d.ts +52 -0
  541. package/dist/raw/secret/models/GatewayOauthStartRequest.js +59 -0
  542. package/dist/raw/secret/models/GatewayOauthStarted.d.ts +39 -0
  543. package/dist/raw/secret/models/GatewayOauthStarted.js +54 -0
  544. package/dist/raw/secret/models/SecretCompleteOauth400Response.d.ts +70 -0
  545. package/dist/raw/secret/models/SecretCompleteOauth400Response.js +80 -0
  546. package/dist/raw/secret/models/SecretCompleteOauth413Response.d.ts +64 -0
  547. package/dist/raw/secret/models/SecretCompleteOauth413Response.js +74 -0
  548. package/dist/raw/secret/models/SecretCompleteOauth415Response.d.ts +64 -0
  549. package/dist/raw/secret/models/SecretCompleteOauth415Response.js +74 -0
  550. package/dist/raw/secret/models/SecretCompleteOauth422Response.d.ts +63 -0
  551. package/dist/raw/secret/models/SecretCompleteOauth422Response.js +75 -0
  552. package/dist/raw/secret/models/SecretDisconnectOauth400Response.d.ts +67 -0
  553. package/dist/raw/secret/models/SecretDisconnectOauth400Response.js +77 -0
  554. package/dist/raw/secret/models/SecretOauthCallback400Response.d.ts +68 -0
  555. package/dist/raw/secret/models/SecretOauthCallback400Response.js +78 -0
  556. package/dist/raw/secret/models/SecretOauthCallback401Response.d.ts +80 -0
  557. package/dist/raw/secret/models/SecretOauthCallback401Response.js +90 -0
  558. package/dist/raw/secret/models/SecretOauthCallback403Response.d.ts +66 -0
  559. package/dist/raw/secret/models/SecretOauthCallback403Response.js +76 -0
  560. package/dist/raw/secret/models/SecretOauthCallback404Response.d.ts +65 -0
  561. package/dist/raw/secret/models/SecretOauthCallback404Response.js +75 -0
  562. package/dist/raw/secret/models/SecretOauthCallback500Response.d.ts +64 -0
  563. package/dist/raw/secret/models/SecretOauthCallback500Response.js +74 -0
  564. package/dist/raw/secret/models/SecretOauthCallback503Response.d.ts +66 -0
  565. package/dist/raw/secret/models/SecretOauthCallback503Response.js +76 -0
  566. package/dist/raw/secret/models/SecretOauthCallback504Response.d.ts +63 -0
  567. package/dist/raw/secret/models/SecretOauthCallback504Response.js +75 -0
  568. package/dist/raw/secret/models/index.d.ts +19 -0
  569. package/dist/raw/secret/models/index.js +19 -0
  570. package/dist/raw/skill/apis/SkillApi.d.ts +65 -10
  571. package/dist/raw/skill/apis/SkillApi.js +86 -11
  572. package/dist/raw/skill/models/GatewayArtifactBase.d.ts +27 -15
  573. package/dist/raw/skill/models/GatewayArtifactBase.js +2 -2
  574. package/dist/raw/skill/models/GatewayTraceStatsGroupBy.d.ts +5 -1
  575. package/dist/raw/skill/models/GatewayTraceStatsGroupBy.js +4 -0
  576. package/dist/raw/skill/models/GatewayTraceStatsMeasure.d.ts +3 -1
  577. package/dist/raw/skill/models/GatewayTraceStatsMeasure.js +2 -0
  578. package/dist/raw/skill/models/SkillAggregate400Response.d.ts +2 -0
  579. package/dist/raw/skill/models/SkillAggregate400Response.js +2 -2
  580. package/dist/raw/skill/models/SkillAggregate415Response.d.ts +1 -0
  581. package/dist/raw/skill/models/SkillAggregate415Response.js +1 -2
  582. package/dist/raw/skill/models/SkillCreate400Response.d.ts +2 -1
  583. package/dist/raw/skill/models/SkillCreate400Response.js +2 -3
  584. package/dist/raw/skill/models/SkillCreate413Response.d.ts +64 -0
  585. package/dist/raw/skill/models/SkillCreate413Response.js +74 -0
  586. package/dist/raw/skill/models/SkillCreate415Response.d.ts +63 -0
  587. package/dist/raw/skill/models/SkillCreate415Response.js +75 -0
  588. package/dist/raw/skill/models/SkillInsightSchemas401Response.d.ts +1 -0
  589. package/dist/raw/skill/models/SkillInsightSchemas401Response.js +1 -0
  590. package/dist/raw/skill/models/SkillQuerySkillTraceStats400Response.d.ts +2 -0
  591. package/dist/raw/skill/models/SkillQuerySkillTraceStats400Response.js +2 -0
  592. package/dist/raw/skill/models/SkillSkill.d.ts +6 -7
  593. package/dist/raw/skill/models/SkillSkillArtifactView.d.ts +33 -22
  594. package/dist/raw/skill/models/SkillSkillArtifactView.js +2 -2
  595. package/dist/raw/skill/models/SpanViewDto.d.ts +25 -0
  596. package/dist/raw/skill/models/SpanViewDto.js +8 -0
  597. package/dist/raw/skill/models/TraceDetailView.d.ts +9 -0
  598. package/dist/raw/skill/models/TraceDetailView.js +2 -0
  599. package/dist/raw/skill/models/index.d.ts +2 -0
  600. package/dist/raw/skill/models/index.js +2 -0
  601. package/dist/resource-types.d.ts +670 -0
  602. package/dist/resource-types.js +2 -0
  603. package/dist/resources.d.ts +6 -1
  604. package/dist/resources.js +9 -6
  605. package/dist/resources.json +398 -329
  606. package/dist/tracing/client.d.ts +10 -1
  607. package/dist/tracing/client.js +50 -16
  608. package/dist/tracing/compat.d.ts +82 -0
  609. package/dist/tracing/compat.js +128 -0
  610. package/dist/tracing/config.d.ts +3 -1
  611. package/dist/tracing/config.js +7 -2
  612. package/dist/tracing/exporter.d.ts +19 -1
  613. package/dist/tracing/exporter.js +56 -14
  614. package/dist/tracing/index.d.ts +2 -0
  615. package/dist/tracing/index.js +13 -1
  616. package/dist/tracing/integrations.d.ts +35 -0
  617. package/dist/tracing/integrations.js +95 -0
  618. package/dist/tracing/propagation.d.ts +2 -0
  619. package/dist/tracing/propagation.js +16 -0
  620. package/dist/tracing/semconv.d.ts +4 -0
  621. package/dist/tracing/semconv.js +14 -2
  622. package/dist/tracing/spans.d.ts +6 -0
  623. package/dist/tracing/spans.js +20 -1
  624. package/dist/tracing/version.d.ts +1 -1
  625. package/dist/tracing/version.js +1 -1
  626. package/package.json +1 -1
  627. package/dist/raw/agent/models/Box.d.ts +0 -330
  628. package/dist/raw/agent/models/Box.js +0 -167
  629. package/dist/raw/registry/apis/ActionsApi.d.ts +0 -68
  630. package/dist/raw/registry/apis/ActionsApi.js +0 -181
  631. package/dist/raw/registry/apis/CatalogApi.d.ts +0 -98
  632. package/dist/raw/registry/apis/CatalogApi.js +0 -259
  633. package/dist/raw/registry/apis/DetectedUsersApi.d.ts +0 -89
  634. package/dist/raw/registry/apis/DetectedUsersApi.js +0 -239
  635. package/dist/raw/registry/apis/ExtensionsApi.d.ts +0 -68
  636. package/dist/raw/registry/apis/ExtensionsApi.js +0 -181
  637. package/dist/raw/registry/apis/GroupsApi.d.ts +0 -68
  638. package/dist/raw/registry/apis/GroupsApi.js +0 -181
  639. package/dist/raw/registry/apis/ProjectsApi.d.ts +0 -159
  640. package/dist/raw/registry/apis/ProjectsApi.js +0 -402
  641. package/dist/raw/registry/apis/UsageApi.d.ts +0 -134
  642. package/dist/raw/registry/apis/UsageApi.js +0 -349
  643. package/dist/raw/registry/models/ActionRunDto.d.ts +0 -99
  644. package/dist/raw/registry/models/ActionRunDto.js +0 -86
  645. package/dist/raw/registry/models/ActionRunJobDto.d.ts +0 -92
  646. package/dist/raw/registry/models/ActionRunJobDto.js +0 -78
  647. package/dist/raw/registry/models/ActionRunJobsPage.d.ts +0 -40
  648. package/dist/raw/registry/models/ActionRunJobsPage.js +0 -56
  649. package/dist/raw/registry/models/ActionRunsPage.d.ts +0 -40
  650. package/dist/raw/registry/models/ActionRunsPage.js +0 -56
  651. package/dist/raw/registry/models/AvailableExtensionDto.d.ts +0 -123
  652. package/dist/raw/registry/models/AvailableExtensionDto.js +0 -96
  653. package/dist/raw/registry/models/AvailableExtensionsPage.d.ts +0 -40
  654. package/dist/raw/registry/models/AvailableExtensionsPage.js +0 -56
  655. package/dist/raw/registry/models/BudgetDto.d.ts +0 -111
  656. package/dist/raw/registry/models/BudgetDto.js +0 -96
  657. package/dist/raw/registry/models/BudgetsPage.d.ts +0 -40
  658. package/dist/raw/registry/models/CreateBudgetBody.d.ts +0 -86
  659. package/dist/raw/registry/models/CreateBudgetBody.js +0 -78
  660. package/dist/raw/registry/models/CreateProjectBody.d.ts +0 -56
  661. package/dist/raw/registry/models/CreateProjectBody.js +0 -60
  662. package/dist/raw/registry/models/DetectedUserDto.d.ts +0 -84
  663. package/dist/raw/registry/models/DetectedUserDto.js +0 -74
  664. package/dist/raw/registry/models/DetectedUsersPage.d.ts +0 -40
  665. package/dist/raw/registry/models/DetectedUsersPage.js +0 -56
  666. package/dist/raw/registry/models/ExtensionJobsPage.d.ts +0 -40
  667. package/dist/raw/registry/models/ExtensionJobsPage.js +0 -56
  668. package/dist/raw/registry/models/ExtensionVersionDto.d.ts +0 -50
  669. package/dist/raw/registry/models/ExtensionVersionDto.js +0 -58
  670. package/dist/raw/registry/models/ExtensionVersionsPage.d.ts +0 -40
  671. package/dist/raw/registry/models/ExtensionVersionsPage.js +0 -56
  672. package/dist/raw/registry/models/GroupMemberDto.d.ts +0 -44
  673. package/dist/raw/registry/models/GroupMemberDto.js +0 -58
  674. package/dist/raw/registry/models/GroupMembersPage.d.ts +0 -40
  675. package/dist/raw/registry/models/GroupMembersPage.js +0 -56
  676. package/dist/raw/registry/models/GroupsPage.d.ts +0 -40
  677. package/dist/raw/registry/models/InstalledExtensionDto.d.ts +0 -80
  678. package/dist/raw/registry/models/InstalledExtensionDto.js +0 -82
  679. package/dist/raw/registry/models/InstalledExtensionsPage.d.ts +0 -40
  680. package/dist/raw/registry/models/InstalledExtensionsPage.js +0 -56
  681. package/dist/raw/registry/models/MembershipDto.d.ts +0 -60
  682. package/dist/raw/registry/models/MembershipDto.js +0 -66
  683. package/dist/raw/registry/models/MembershipsPage.d.ts +0 -40
  684. package/dist/raw/registry/models/PatchBudgetBody.d.ts +0 -62
  685. package/dist/raw/registry/models/PatchBudgetBody.js +0 -58
  686. package/dist/raw/registry/models/PatchProjectBody.d.ts +0 -50
  687. package/dist/raw/registry/models/PatchProjectBody.js +0 -54
  688. package/dist/raw/registry/models/PatchUserBody.d.ts +0 -35
  689. package/dist/raw/registry/models/PatchUserBody.js +0 -48
  690. package/dist/raw/registry/models/ProjectBulkCreateRequest.d.ts +0 -33
  691. package/dist/raw/registry/models/ProjectBulkCreateRequest.js +0 -51
  692. package/dist/raw/registry/models/ProjectDto.d.ts +0 -102
  693. package/dist/raw/registry/models/ProjectDto.js +0 -92
  694. package/dist/raw/registry/models/ProjectExport.d.ts +0 -49
  695. package/dist/raw/registry/models/ProjectExport.js +0 -59
  696. package/dist/raw/registry/models/ProjectSlot.d.ts +0 -54
  697. package/dist/raw/registry/models/ProjectSlot.js +0 -60
  698. package/dist/raw/registry/models/ProjectsBulkResponse.d.ts +0 -40
  699. package/dist/raw/registry/models/ProjectsBulkResponse.js +0 -51
  700. package/dist/raw/registry/models/ProjectsPage.d.ts +0 -40
  701. package/dist/raw/registry/models/ProjectsPage.js +0 -56
  702. package/dist/raw/registry/models/PublisherDto.d.ts +0 -80
  703. package/dist/raw/registry/models/PublisherDto.js +0 -76
  704. package/dist/raw/registry/models/PublishersPage.d.ts +0 -40
  705. package/dist/raw/registry/models/RegistryCreateServiceAccount409Response.d.ts +0 -63
  706. package/dist/raw/registry/models/RegistryCreateServiceAccount409Response.js +0 -75
  707. package/dist/raw/registry/models/RegistryGetActionRun404Response.d.ts +0 -63
  708. package/dist/raw/registry/models/RegistryListActionRuns400Response.d.ts +0 -63
  709. package/dist/raw/registry/models/RegistryListActionRuns400Response.js +0 -75
  710. package/dist/raw/registry/models/RegistryListActionRuns401Response.js +0 -89
  711. package/dist/raw/registry/models/RegistryListActionRuns403Response.d.ts +0 -64
  712. package/dist/raw/registry/models/RegistryListActionRuns403Response.js +0 -74
  713. package/dist/raw/registry/models/RegistryListActionRuns500Response.d.ts +0 -63
  714. package/dist/raw/registry/models/RegistryListActionRuns500Response.js +0 -75
  715. package/dist/raw/registry/models/RegistryListActionRuns503Response.d.ts +0 -64
  716. package/dist/raw/registry/models/RegistryListActionRuns503Response.js +0 -74
  717. package/dist/raw/registry/models/RegistryListActionRuns504Response.d.ts +0 -63
  718. package/dist/raw/registry/models/RegistryListActionRuns504Response.js +0 -75
  719. package/dist/raw/registry/models/RegistryListUserTraces400Response.d.ts +0 -63
  720. package/dist/raw/registry/models/RegistryListUserTraces400Response.js +0 -75
  721. package/dist/raw/registry/models/RegistryListWorkspaces503Response.d.ts +0 -65
  722. package/dist/raw/registry/models/RegistryListWorkspaces503Response.js +0 -75
  723. package/dist/raw/registry/models/UpdateDetectedUserRequest.d.ts +0 -48
  724. package/dist/raw/registry/models/UpdateDetectedUserRequest.js +0 -52
  725. package/dist/raw/registry/models/UsageCounters.d.ts +0 -78
  726. package/dist/raw/registry/models/UsageCounters.js +0 -78
  727. package/dist/raw/registry/models/UsageDayDto.d.ts +0 -129
  728. package/dist/raw/registry/models/UsageDayDto.js +0 -114
  729. package/dist/raw/registry/models/UsageDaysPage.d.ts +0 -40
  730. package/dist/raw/registry/models/UsageDaysPage.js +0 -56
  731. package/dist/raw/registry/models/UsageMinuteDto.d.ts +0 -136
  732. package/dist/raw/registry/models/UsageMinuteDto.js +0 -118
  733. package/dist/raw/registry/models/UsageMinutesPage.d.ts +0 -40
  734. package/dist/raw/registry/models/UsageMinutesPage.js +0 -56
package/dist/evals.js CHANGED
@@ -1,12 +1,16 @@
1
1
  "use strict";
2
- /** Small lifecycle helpers for evaluation runners. */
2
+ /** Evaluation lifecycle helpers and the declarative `Eval()` runner. */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.EvalRun = exports.CONTEXT_MANIFEST_SCHEMA = void 0;
5
5
  exports.createContextManifest = createContextManifest;
6
6
  exports.resolveDataset = resolveDataset;
7
7
  exports.startExperiment = startExperiment;
8
+ exports.Eval = Eval;
9
+ const client_1 = require("./client");
10
+ const errors_1 = require("./errors");
8
11
  exports.CONTEXT_MANIFEST_SCHEMA = "atlan.eval.context-manifest/v1";
9
12
  const SHA256 = /^sha256:[0-9a-f]{64}$/;
13
+ const TRACE_ID = /^[0-9a-f]{32}$/;
10
14
  const CONTEXT_KIND = /^[a-z][a-z0-9_.-]{0,63}$/;
11
15
  const MAX_LIST_OFFSET = 10_000;
12
16
  function asResources(client) {
@@ -58,6 +62,9 @@ function manifestItem(item) {
58
62
  if (item.version.toLowerCase() === "latest") {
59
63
  throw new Error("context item version must be pinned; 'latest' is not a version");
60
64
  }
65
+ if (item.artifactKind !== undefined && !CONTEXT_KIND.test(item.artifactKind)) {
66
+ throw new Error("context item artifactKind must be a lowercase identifier");
67
+ }
61
68
  if (item.artifactId !== undefined) {
62
69
  validText(item.artifactId, "context item artifactId", 200);
63
70
  }
@@ -65,11 +72,18 @@ function manifestItem(item) {
65
72
  (!Number.isInteger(item.versionOrdinal) || item.versionOrdinal < 1)) {
66
73
  throw new Error("context item versionOrdinal must be an integer of at least 1");
67
74
  }
75
+ if ((item.artifactId === undefined) !== (item.versionOrdinal === undefined)) {
76
+ throw new Error("context item Registry pins require artifactId and versionOrdinal");
77
+ }
78
+ if (item.artifactKind !== undefined && item.artifactId === undefined) {
79
+ throw new Error("context item artifactKind requires a Registry artifact pin");
80
+ }
68
81
  return {
69
82
  kind: item.kind,
70
83
  name: item.name,
71
84
  digest: item.digest,
72
85
  version: item.version,
86
+ ...(item.artifactKind === undefined ? {} : { artifact_kind: item.artifactKind }),
73
87
  ...(item.artifactId === undefined ? {} : { artifact_id: item.artifactId }),
74
88
  ...(item.versionOrdinal === undefined ? {} : { version_ordinal: item.versionOrdinal }),
75
89
  };
@@ -222,9 +236,896 @@ async function startExperiment(client, dataset, body, options = {}) {
222
236
  const experiment = await resources.experiments.create(payload);
223
237
  const run = new EvalRun(experiment, resolved, contextManifest);
224
238
  void run.id;
239
+ if (field(experiment, "workspaceId") !== workspaceId) {
240
+ throw new Error("experiment resolved outside the requested workspace");
241
+ }
225
242
  const responseDatasetId = field(experiment, "datasetId");
226
243
  if (responseDatasetId !== undefined && responseDatasetId !== resolvedId) {
227
244
  throw new Error("experiment create response contains a different dataset ID");
228
245
  }
229
246
  return run;
230
247
  }
248
+ // ---------------------------------------------------------------------------
249
+ // Declarative evaluator
250
+ const DEFAULT_GATEWAY_ORIGIN = "https://api.atlan.com";
251
+ function tracingModule() {
252
+ // The root client is CommonJS while tracing has its own NodeNext build. A
253
+ // runtime require keeps the two compiler targets independent and resolves to
254
+ // dist/tracing/index.js in the published package.
255
+ return require("./tracing/index.js");
256
+ }
257
+ function environment(name) {
258
+ const processLike = globalThis
259
+ .process;
260
+ const value = processLike?.env?.[name];
261
+ return value && value.length > 0 ? value : undefined;
262
+ }
263
+ function nonEmpty(value, message) {
264
+ if (value === undefined || value.trim().length === 0)
265
+ throw new Error(message);
266
+ return value;
267
+ }
268
+ function slug(value, fallback) {
269
+ const normalized = value
270
+ .normalize("NFKD")
271
+ .toLowerCase()
272
+ .replace(/[^a-z0-9]+/g, "-")
273
+ .replace(/^-+|-+$/g, "")
274
+ .slice(0, 80);
275
+ return normalized || fallback;
276
+ }
277
+ function runName(displayName) {
278
+ const suffix = `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
279
+ return `${slug(displayName, "eval")}-${suffix}`;
280
+ }
281
+ function registryObject(value) {
282
+ if (value === undefined)
283
+ return undefined;
284
+ if (value === null)
285
+ return null;
286
+ return isRecord(value) ? value : { value };
287
+ }
288
+ function safeError(error) {
289
+ const message = error instanceof Error ? error.message : String(error);
290
+ return message.replace(/[\r\n]+/g, " ").slice(0, 2_000) || "evaluation failed";
291
+ }
292
+ async function collectData(data) {
293
+ const produced = typeof data === "function" ? data() : data;
294
+ const resolved = await produced;
295
+ const cases = [];
296
+ if (Symbol.asyncIterator in Object(resolved)) {
297
+ for await (const item of resolved) {
298
+ cases.push(item);
299
+ }
300
+ }
301
+ else if (Symbol.iterator in Object(resolved)) {
302
+ for (const item of resolved)
303
+ cases.push(item);
304
+ }
305
+ else {
306
+ throw new Error("Eval data must be an iterable or async iterable");
307
+ }
308
+ for (const item of cases) {
309
+ if (!isRecord(item) || !("input" in item))
310
+ throw new Error("every Eval case needs input");
311
+ if (item.metadata !== undefined && !isRecord(item.metadata)) {
312
+ throw new Error("Eval case metadata must be an object");
313
+ }
314
+ if (item.tags !== undefined &&
315
+ (!Array.isArray(item.tags) || item.tags.some((tag) => typeof tag !== "string"))) {
316
+ throw new Error("Eval case tags must be an array of strings");
317
+ }
318
+ if (item.id !== undefined && (typeof item.id !== "string" || item.id.length === 0)) {
319
+ throw new Error("Eval case id must be a non-empty string");
320
+ }
321
+ }
322
+ return cases;
323
+ }
324
+ async function casesDigest(cases) {
325
+ const normalized = cases.map((item, index) => ({
326
+ id: item.id ?? `case-${index + 1}`,
327
+ input: item.input,
328
+ expected: item.expected ?? null,
329
+ metadata: item.metadata ?? {},
330
+ tags: item.tags ?? [],
331
+ }));
332
+ if (new Set(normalized.map((item) => item.id)).size !== cases.length) {
333
+ throw new Error("Eval case IDs must be unique");
334
+ }
335
+ const hash = await globalThis.crypto.subtle.digest("SHA-256", new TextEncoder().encode(canonicalJson(normalized)));
336
+ return "sha256:" + [...new Uint8Array(hash)].map((byte) => byte.toString(16).padStart(2, "0")).join("");
337
+ }
338
+ async function datasetCases(resources, datasetId) {
339
+ const records = [];
340
+ let offset = 0;
341
+ while (true) {
342
+ const page = await resources.datasets.records.list({ datasetId, limit: 500, offset });
343
+ const items = field(page, "items");
344
+ const batch = Array.isArray(items) ? items : [];
345
+ for (const item of batch) {
346
+ const recordId = field(item, "id");
347
+ if (typeof recordId !== "string" || recordId.length === 0) {
348
+ throw new Error("dataset record response did not contain an ID");
349
+ }
350
+ const rawMetadata = field(item, "extra");
351
+ if (rawMetadata !== undefined && rawMetadata !== null && !isRecord(rawMetadata)) {
352
+ throw new Error("dataset record response contained invalid metadata");
353
+ }
354
+ const rawTags = field(item, "categories");
355
+ if (rawTags !== undefined &&
356
+ rawTags !== null &&
357
+ (!Array.isArray(rawTags) || rawTags.some((tag) => typeof tag !== "string"))) {
358
+ throw new Error("dataset record response contained invalid categories");
359
+ }
360
+ records.push({
361
+ id: recordId,
362
+ input: field(item, "input"),
363
+ expected: field(item, "expected"),
364
+ metadata: (rawMetadata ?? {}),
365
+ tags: (rawTags ?? []),
366
+ });
367
+ }
368
+ offset += batch.length;
369
+ const total = field(field(page, "page"), "total");
370
+ if (batch.length === 0 || (typeof total === "number" && offset >= total))
371
+ break;
372
+ if (offset > MAX_LIST_OFFSET) {
373
+ throw new Error("dataset record resolution exceeded 10000 rows");
374
+ }
375
+ }
376
+ return records;
377
+ }
378
+ function snapshotCases(experiment) {
379
+ const snapshot = field(experiment, "datasetSnapshot");
380
+ const raw = field(snapshot, "records");
381
+ if (!Array.isArray(raw))
382
+ return undefined;
383
+ return raw.map((record) => {
384
+ const id = field(record, "id");
385
+ if (typeof id !== "string" || id.length === 0) {
386
+ throw new Error("experiment dataset snapshot contains a record without an ID");
387
+ }
388
+ const extra = field(record, "extra");
389
+ const categories = field(record, "categories");
390
+ return {
391
+ id,
392
+ input: field(record, "input"),
393
+ expected: field(record, "expected"),
394
+ metadata: (isRecord(extra) ? extra : {}),
395
+ tags: (Array.isArray(categories) ? categories : []),
396
+ };
397
+ });
398
+ }
399
+ async function experimentResults(resources, experimentId) {
400
+ const results = [];
401
+ let offset = 0;
402
+ while (true) {
403
+ const page = await resources.experiments.results.list({
404
+ experimentId,
405
+ limit: 500,
406
+ offset,
407
+ });
408
+ const raw = field(page, "items");
409
+ const items = Array.isArray(raw) ? raw : [];
410
+ results.push(...items);
411
+ offset += items.length;
412
+ const total = field(field(page, "page"), "total");
413
+ if (items.length === 0 || (typeof total === "number" && offset >= total))
414
+ break;
415
+ if (offset > MAX_LIST_OFFSET) {
416
+ throw new Error("experiment result resolution exceeded 10000 rows");
417
+ }
418
+ }
419
+ return results;
420
+ }
421
+ async function findScorer(resources, name, workspaceId) {
422
+ const matches = [];
423
+ let offset = 0;
424
+ while (true) {
425
+ const page = await resources.scorers.list({ limit: 500, offset });
426
+ const items = field(page, "items");
427
+ const batch = Array.isArray(items) ? items : [];
428
+ matches.push(...batch.filter((item) => field(item, "name") === name && field(item, "workspaceId") === workspaceId));
429
+ if (matches.length > 1)
430
+ break;
431
+ offset += batch.length;
432
+ const total = field(field(page, "page"), "total");
433
+ if (batch.length === 0 || (typeof total === "number" && offset >= total))
434
+ break;
435
+ if (offset > MAX_LIST_OFFSET)
436
+ throw new Error("scorer resolution exceeded 10000 rows");
437
+ }
438
+ if (matches.length > 1)
439
+ throw new Error(`multiple scorers are named '${name}'`);
440
+ return matches[0];
441
+ }
442
+ function scorerIdentity(value, workspaceId) {
443
+ const id = field(value, "id");
444
+ const version = field(value, "versionOrdinal");
445
+ if (field(value, "workspaceId") !== workspaceId) {
446
+ throw new Error("scorer resolved outside the evaluation workspace");
447
+ }
448
+ if (typeof id !== "string" || !id.startsWith("scorer_")) {
449
+ throw new Error("scorer response did not contain a valid ID");
450
+ }
451
+ if (typeof version !== "number" || !Number.isInteger(version) || version < 1) {
452
+ throw new Error("scorer response did not contain a valid version");
453
+ }
454
+ return { id, version };
455
+ }
456
+ async function scorerDefinition(definition) {
457
+ const outputs = definition.outputs ?? { [definition.name]: { type: "number", minimum: 0, maximum: 1 } };
458
+ if (definition.spec !== undefined)
459
+ return { spec: definition.spec, outputs };
460
+ if (!globalThis.crypto?.subtle)
461
+ throw new Error("Web Crypto is required to identify a scorer");
462
+ const digest = await globalThis.crypto.subtle.digest("SHA-256", new TextEncoder().encode(String(definition.scorer)));
463
+ const codeDigest = "sha256:" +
464
+ [...new Uint8Array(digest)].map((byte) => byte.toString(16).padStart(2, "0")).join("");
465
+ return {
466
+ outputs,
467
+ spec: {
468
+ executor: "external",
469
+ sdk: "@atlanai/sdk",
470
+ entrypoint: definition.scorer.name || "anonymous",
471
+ code_digest: codeDigest,
472
+ },
473
+ };
474
+ }
475
+ async function reconcileScorer(resources, existing, workspaceId, definition) {
476
+ const identity = scorerIdentity(existing, workspaceId);
477
+ const scorerKind = definition.scorerKind ?? "code";
478
+ const scope = definition.scope ?? "result";
479
+ if (field(existing, "scorerKind") !== scorerKind || field(existing, "scope") !== scope) {
480
+ throw new Error(`scorer '${definition.name}' reuses a Registry name with a different identity`);
481
+ }
482
+ const desired = await scorerDefinition(definition);
483
+ if (canonicalJson(field(existing, "spec")) === canonicalJson(desired.spec) &&
484
+ canonicalJson(field(existing, "outputs")) === canonicalJson(desired.outputs)) {
485
+ return identity;
486
+ }
487
+ return scorerIdentity(await resources.scorers.update(identity.id, desired), workspaceId);
488
+ }
489
+ async function resolveScorer(resources, workspaceId, evalName, definition) {
490
+ if (!definition.name || /[\r\n]/.test(definition.name)) {
491
+ throw new Error("each scorer needs a non-empty single-line name");
492
+ }
493
+ if (definition.scorerId !== undefined) {
494
+ if (!definition.scorerId.startsWith("scorer_")) {
495
+ throw new Error(`scorer '${definition.name}' has an invalid scorerId`);
496
+ }
497
+ const scorer = await resources.scorers.get(definition.scorerId);
498
+ const identity = scorerIdentity(scorer, workspaceId);
499
+ if (definition.scorerVersion !== undefined) {
500
+ if (!Number.isInteger(definition.scorerVersion) || definition.scorerVersion < 1) {
501
+ throw new Error(`scorer '${definition.name}' has an invalid scorerVersion`);
502
+ }
503
+ return scorerIdentity(await resources.scorers.versions.get(identity.id, definition.scorerVersion), workspaceId);
504
+ }
505
+ return identity;
506
+ }
507
+ if (definition.scorerVersion !== undefined) {
508
+ throw new Error(`scorer '${definition.name}' has scorerVersion without scorerId`);
509
+ }
510
+ const artifactName = definition.registryName ?? `${slug(evalName, "eval")}-${slug(definition.name, "score")}`;
511
+ const existing = await findScorer(resources, artifactName, workspaceId);
512
+ if (existing !== undefined) {
513
+ return reconcileScorer(resources, existing, workspaceId, definition);
514
+ }
515
+ const desired = await scorerDefinition(definition);
516
+ try {
517
+ return scorerIdentity(await resources.scorers.create({
518
+ workspaceId,
519
+ name: artifactName,
520
+ displayName: definition.name,
521
+ sourceType: "local",
522
+ sourceId: `atlan-eval:${slug(evalName, "eval")}:${slug(definition.name, "score")}`,
523
+ scorerKind: definition.scorerKind ?? "code",
524
+ scope: definition.scope ?? "result",
525
+ outputs: desired.outputs,
526
+ spec: desired.spec,
527
+ }), workspaceId);
528
+ }
529
+ catch (error) {
530
+ if (!(error instanceof errors_1.AtlanAPIError) || error.status !== 409)
531
+ throw error;
532
+ const raced = await findScorer(resources, artifactName, workspaceId);
533
+ if (raced === undefined)
534
+ throw error;
535
+ return reconcileScorer(resources, raced, workspaceId, definition);
536
+ }
537
+ }
538
+ function normalizedScores(value, defaultName) {
539
+ if (value === null)
540
+ return [{ name: defaultName, score: null }];
541
+ if (typeof value === "number" || typeof value === "boolean") {
542
+ return [{ name: defaultName, score: value }];
543
+ }
544
+ const values = Array.isArray(value) ? value : [value];
545
+ return values.map((item) => {
546
+ if (!isRecord(item) || !("score" in item)) {
547
+ throw new Error(`scorer '${defaultName}' returned an unsupported value`);
548
+ }
549
+ const score = item.score;
550
+ if (score !== null &&
551
+ typeof score !== "boolean" &&
552
+ !(typeof score === "number" && Number.isFinite(score))) {
553
+ throw new Error(`scorer '${defaultName}' returned a non-numeric score`);
554
+ }
555
+ return {
556
+ name: typeof item.name === "string" && item.name ? item.name : defaultName,
557
+ score,
558
+ ...(isRecord(item.metadata) ? { metadata: item.metadata } : {}),
559
+ };
560
+ });
561
+ }
562
+ function numericScore(value) {
563
+ return typeof value === "boolean" ? (value ? 1 : 0) : value;
564
+ }
565
+ function localSummary(results, durationMs) {
566
+ const values = new Map();
567
+ for (const result of results) {
568
+ const scores = field(result, "scores");
569
+ if (scores !== undefined && !isRecord(scores)) {
570
+ throw new Error("experiment result response contained invalid scores");
571
+ }
572
+ for (const [name, score] of Object.entries(scores ?? {})) {
573
+ if (score === null)
574
+ continue;
575
+ if (typeof score !== "number" || !Number.isFinite(score)) {
576
+ throw new Error("experiment result response contained an invalid score value");
577
+ }
578
+ const observed = values.get(name) ?? [];
579
+ observed.push(score);
580
+ values.set(name, observed);
581
+ }
582
+ }
583
+ return {
584
+ scores: Object.fromEntries([...values].map(([name, scores]) => [
585
+ name,
586
+ {
587
+ mean: scores.length === 0 ? null : scores.reduce((sum, value) => sum + value, 0) / scores.length,
588
+ count: scores.length,
589
+ },
590
+ ])),
591
+ metrics: {
592
+ cases: results.length,
593
+ successfulCases: results.filter((result) => field(result, "error") == null).length,
594
+ failedCases: results.filter((result) => field(result, "error") != null).length,
595
+ durationMs,
596
+ },
597
+ };
598
+ }
599
+ async function traceSpans(resources, experimentId, traceId) {
600
+ const spans = [];
601
+ const seenCursors = new Set();
602
+ let cursor;
603
+ while (true) {
604
+ const page = await resources.experiments.traces.listSpans({
605
+ experimentId,
606
+ traceId,
607
+ limit: 500,
608
+ fields: "io",
609
+ ...(cursor === undefined ? {} : { cursor }),
610
+ });
611
+ const items = field(page, "items");
612
+ if (Array.isArray(items))
613
+ spans.push(...items);
614
+ const nextCursor = field(field(page, "page"), "nextCursor");
615
+ if (typeof nextCursor !== "string" || nextCursor.length === 0)
616
+ return spans;
617
+ if (seenCursors.has(nextCursor)) {
618
+ throw new Error("experiment trace span pagination repeated a cursor");
619
+ }
620
+ seenCursors.add(nextCursor);
621
+ cursor = nextCursor;
622
+ }
623
+ }
624
+ async function listedTraceIds(resources, experimentId) {
625
+ const traceIds = new Set();
626
+ const seenCursors = new Set();
627
+ let cursor;
628
+ const windowEnd = Math.floor(Date.now() / 1_000);
629
+ while (true) {
630
+ const page = await resources.experiments.traces.list({
631
+ experimentId,
632
+ startTimeUnixSeconds: windowEnd - 30 * 24 * 60 * 60,
633
+ endTimeUnixSeconds: windowEnd,
634
+ limit: 500,
635
+ ...(cursor === undefined ? {} : { cursor }),
636
+ });
637
+ const items = field(page, "items");
638
+ if (Array.isArray(items)) {
639
+ for (const item of items) {
640
+ const traceId = field(item, "traceId");
641
+ if (typeof traceId === "string")
642
+ traceIds.add(traceId);
643
+ }
644
+ }
645
+ const nextCursor = field(field(page, "page"), "nextCursor");
646
+ if (typeof nextCursor !== "string" || nextCursor.length === 0)
647
+ return traceIds;
648
+ if (seenCursors.has(nextCursor)) {
649
+ throw new Error("experiment trace pagination repeated a cursor");
650
+ }
651
+ seenCursors.add(nextCursor);
652
+ cursor = nextCursor;
653
+ }
654
+ }
655
+ function spanAttributes(span) {
656
+ const attributes = field(span, "attributes");
657
+ return isRecord(attributes) ? attributes : {};
658
+ }
659
+ function missingTraceEvidence(spans, expected) {
660
+ const missing = [];
661
+ const byId = new Map();
662
+ for (const span of spans) {
663
+ const spanId = field(span, "spanId");
664
+ if (typeof spanId === "string")
665
+ byId.set(spanId, span);
666
+ }
667
+ const root = expected.rootSpanId === undefined
668
+ ? spans.find((span) => spanAttributes(span)["atlan.eval.case_id"] === expected.caseId &&
669
+ spanAttributes(span)["atlan.eval.evidence_complete"] === true)
670
+ : byId.get(expected.rootSpanId);
671
+ if (root === undefined) {
672
+ missing.push("case root");
673
+ }
674
+ else {
675
+ const attributes = spanAttributes(root);
676
+ if (attributes["atlan.eval.evidence_complete"] !== true) {
677
+ missing.push("producer completion marker");
678
+ }
679
+ if (attributes["atlan.eval.case_id"] !== expected.caseId)
680
+ missing.push("case identity");
681
+ if (expected.datasetRecordId !== undefined &&
682
+ attributes["atlan.eval.dataset_record_id"] !== expected.datasetRecordId) {
683
+ missing.push("dataset record identity");
684
+ }
685
+ }
686
+ const absentIds = [...expected.requiredSpanIds].filter((spanId) => !byId.has(spanId));
687
+ if (absentIds.length > 0)
688
+ missing.push(`${absentIds.length} SDK-owned spans`);
689
+ if (spans.some((span) => spanAttributes(span)["atlan.eval.evidence_truncated"] === true)) {
690
+ missing.push("untruncated payloads");
691
+ }
692
+ for (const [scoreName, scorer] of expected.scores) {
693
+ const present = spans.some((span) => field(span, "scoreName") === scoreName &&
694
+ field(span, "scorerId") === scorer.id &&
695
+ field(span, "scorerVersion") === scorer.version);
696
+ if (!present)
697
+ missing.push(`score '${scoreName}'`);
698
+ }
699
+ return missing;
700
+ }
701
+ async function verifyTraceEvidence(resources, experimentId, expected, timeoutMs) {
702
+ const deadline = Date.now() + timeoutMs;
703
+ let missing = new Map();
704
+ let lastError;
705
+ while (true) {
706
+ try {
707
+ missing = new Map();
708
+ if (typeof resources.experiments.traces.listSpans === "function") {
709
+ for (const [traceId, expectation] of expected) {
710
+ const gaps = missingTraceEvidence(await traceSpans(resources, experimentId, traceId), expectation);
711
+ if (gaps.length > 0)
712
+ missing.set(traceId, gaps);
713
+ }
714
+ }
715
+ else {
716
+ const observed = await listedTraceIds(resources, experimentId);
717
+ for (const traceId of expected.keys()) {
718
+ if (!observed.has(traceId))
719
+ missing.set(traceId, ["trace read"]);
720
+ }
721
+ }
722
+ lastError = undefined;
723
+ }
724
+ catch (error) {
725
+ if (!(error instanceof errors_1.AtlanAPIError) ||
726
+ ![404, 429, 500, 502, 503, 504].includes(error.status)) {
727
+ throw error;
728
+ }
729
+ missing = new Map([...expected.keys()].map((traceId) => [traceId, ["trace read"]]));
730
+ lastError = error;
731
+ }
732
+ if (missing.size === 0)
733
+ return;
734
+ const remaining = deadline - Date.now();
735
+ if (remaining <= 0) {
736
+ const failure = new Error(`Registry did not expose complete trace evidence for ${missing.size} of ` +
737
+ `${expected.size} case traces before the verification deadline: ` +
738
+ [...missing].map(([traceId, gaps]) => `${traceId} (${gaps.join(", ")})`).join("; "));
739
+ if (lastError !== undefined)
740
+ failure.cause = lastError;
741
+ throw failure;
742
+ }
743
+ await new Promise((resolve) => setTimeout(resolve, Math.min(500, remaining)));
744
+ }
745
+ }
746
+ function defaultConnections(name, options) {
747
+ const apiKey = options.apiKey ?? environment("ATLAN_API_KEY");
748
+ const workspaceId = nonEmpty(options.workspaceId ?? options.client?.workspace ?? environment("ATLAN_WORKSPACE_ID"), "Eval needs workspaceId, client.workspace, or ATLAN_WORKSPACE_ID");
749
+ const gatewayOrigin = options.gatewayOrigin ?? environment("ATLAN_BASE_URL") ?? DEFAULT_GATEWAY_ORIGIN;
750
+ const client = options.client ??
751
+ new client_1.AtlanClient({
752
+ gatewayOrigin,
753
+ bearerToken: nonEmpty(apiKey, "Eval needs apiKey, client, or ATLAN_API_KEY"),
754
+ workspace: workspaceId,
755
+ });
756
+ const tracing = tracingModule();
757
+ const traceLogger = options.logger ??
758
+ tracing.initLogger({
759
+ projectName: name,
760
+ apiKey: nonEmpty(apiKey, "Eval needs apiKey, logger, or ATLAN_API_KEY for traces"),
761
+ baseUrl: gatewayOrigin,
762
+ workspaceId,
763
+ asyncFlush: true,
764
+ sampleRate: 1,
765
+ });
766
+ if (!traceLogger.client.isEnabled) {
767
+ throw new Error("Eval tracing is disabled; every case must produce a Registry trace");
768
+ }
769
+ const sampleRate = traceLogger.client.config
770
+ ?.sampleRate;
771
+ if (sampleRate !== undefined && sampleRate !== 1) {
772
+ throw new Error("Eval tracing requires sampleRate=1 so no case trace is sampled out");
773
+ }
774
+ const traceContent = traceLogger.client.config
775
+ ?.traceContent;
776
+ if (traceContent === false) {
777
+ throw new Error("Eval tracing requires traceContent=true so case evidence is readable");
778
+ }
779
+ return { client, logger: traceLogger, workspaceId, tracing };
780
+ }
781
+ /**
782
+ * Run a complete Registry evaluation from a compact Braintrust-shaped definition.
783
+ *
784
+ * Every case is a root OTel trace. Task/provider spans and scorer spans nest
785
+ * beneath it, verdicts cite immutable Registry scorer versions, result rows
786
+ * carry the root trace ID, traces flush before summary, and the experiment is
787
+ * explicitly finalized.
788
+ */
789
+ async function Eval(name, evaluator, options = {}) {
790
+ if (!name || /[\r\n]/.test(name))
791
+ throw new Error("Eval name must be non-empty and single-line");
792
+ if ((evaluator.data === undefined) === (evaluator.dataset === undefined)) {
793
+ throw new Error("Eval needs exactly one of data or dataset");
794
+ }
795
+ if (evaluator.scores.length === 0)
796
+ throw new Error("Eval needs at least one scorer");
797
+ if (options.verifyTraces !== undefined && typeof options.verifyTraces !== "boolean") {
798
+ throw new Error("verifyTraces must be a boolean");
799
+ }
800
+ const traceVerificationTimeoutMs = options.traceVerificationTimeoutMs ?? 30_000;
801
+ if (!Number.isFinite(traceVerificationTimeoutMs) || traceVerificationTimeoutMs < 0) {
802
+ throw new Error("traceVerificationTimeoutMs must be a non-negative number");
803
+ }
804
+ const { client, logger: traceLogger, workspaceId, tracing } = defaultConnections(name, options);
805
+ const resources = asResources(client);
806
+ const displayName = evaluator.experimentName ?? name;
807
+ const experimentBody = {
808
+ workspaceId,
809
+ name: runName(displayName),
810
+ displayName,
811
+ description: evaluator.description,
812
+ projectId: options.projectId,
813
+ subjectKind: options.subjectKind,
814
+ subjectId: options.subjectId,
815
+ baselineExperimentId: options.baselineExperimentId,
816
+ experimentStatus: "running",
817
+ config: {
818
+ runner: "@atlanai/sdk.Eval",
819
+ ...(options.config ?? {}),
820
+ },
821
+ };
822
+ for (const [key, value] of Object.entries(experimentBody)) {
823
+ if (value === undefined)
824
+ delete experimentBody[key];
825
+ }
826
+ let run;
827
+ let cases = [];
828
+ if (options.resumeExperimentId !== undefined) {
829
+ const experiment = await resources.experiments.get(options.resumeExperimentId);
830
+ if (field(experiment, "workspaceId") !== workspaceId) {
831
+ throw new Error("resume experiment resolved outside the requested workspace");
832
+ }
833
+ if (field(experiment, "experimentStatus") !== "running") {
834
+ throw new Error("resumeExperimentId must name a running experiment");
835
+ }
836
+ const storedConfig = field(experiment, "config") ?? {};
837
+ if (field(storedConfig, "context_manifest_digest") !== options.contextManifest?.digest) {
838
+ throw new Error("resume experiment uses a different context manifest");
839
+ }
840
+ const storedUserConfig = Object.fromEntries(Object.entries(storedConfig).filter(([key]) => !["runner", "registry_dataset", "context_manifest", "context_manifest_digest", "eval_cases_digest"].includes(key)));
841
+ if (canonicalJson(storedUserConfig) !== canonicalJson(options.config ?? {})) {
842
+ throw new Error("resume experiment uses a different config");
843
+ }
844
+ let resolvedDataset;
845
+ if (evaluator.dataset !== undefined) {
846
+ resolvedDataset = await resolveDataset(client, evaluator.dataset, workspaceId);
847
+ if (field(experiment, "datasetId") !== field(resolvedDataset, "id")) {
848
+ throw new Error("resume experiment uses a different dataset");
849
+ }
850
+ }
851
+ else if (field(experiment, "datasetId") !== undefined) {
852
+ throw new Error("resume experiment expects a Registry dataset");
853
+ }
854
+ else {
855
+ cases = await collectData(evaluator.data);
856
+ if (field(storedConfig, "eval_cases_digest") !== await casesDigest(cases)) {
857
+ throw new Error("resume inline data differs or has no saved digest; start a new experiment");
858
+ }
859
+ }
860
+ run = new EvalRun(experiment, resolvedDataset, options.contextManifest);
861
+ }
862
+ else if (evaluator.dataset !== undefined) {
863
+ run = await startExperiment(client, evaluator.dataset, experimentBody, {
864
+ contextManifest: options.contextManifest,
865
+ });
866
+ }
867
+ else {
868
+ cases = await collectData(evaluator.data);
869
+ const config = { ...experimentBody.config };
870
+ config.eval_cases_digest = await casesDigest(cases);
871
+ if (options.contextManifest !== undefined) {
872
+ config.context_manifest = options.contextManifest;
873
+ config.context_manifest_digest = options.contextManifest.digest;
874
+ }
875
+ const experiment = await resources.experiments.create({ ...experimentBody, config });
876
+ run = new EvalRun(experiment, undefined, options.contextManifest);
877
+ void run.id;
878
+ if (field(experiment, "workspaceId") !== workspaceId) {
879
+ throw new Error("experiment resolved outside the requested workspace");
880
+ }
881
+ }
882
+ const scorerCache = new Map();
883
+ const traceEvidence = new Map();
884
+ const started = Date.now();
885
+ const results = [];
886
+ try {
887
+ options.onStart?.({ experimentId: run.id, experiment: run.experiment });
888
+ if (evaluator.dataset !== undefined) {
889
+ const snapshot = snapshotCases(run.experiment);
890
+ if (options.resumeExperimentId !== undefined && snapshot === undefined) {
891
+ throw new Error("resume requires the experiment's immutable dataset snapshot");
892
+ }
893
+ cases =
894
+ snapshot ??
895
+ (await datasetCases(resources, String(field(run.dataset, "id"))));
896
+ }
897
+ const caseIds = new Set(cases.map((item, index) => item.id ?? `case-${index + 1}`));
898
+ if (caseIds.size !== cases.length)
899
+ throw new Error("Eval case IDs must be unique");
900
+ const persisted = options.resumeExperimentId === undefined ? [] : await experimentResults(resources, run.id);
901
+ const completedCaseIds = new Set(persisted.map((item) => field(item, "caseId")));
902
+ if (completedCaseIds.size !== persisted.length || [...completedCaseIds].some((id) => typeof id !== "string" || !caseIds.has(id))) {
903
+ throw new Error("resume experiment contains unexpected or duplicate case IDs");
904
+ }
905
+ for (const definition of evaluator.scores) {
906
+ scorerCache.set(definition.name, await resolveScorer(resources, workspaceId, name, definition));
907
+ }
908
+ for (const [index, item] of cases.entries()) {
909
+ const caseId = item.id ?? `case-${index + 1}`;
910
+ const datasetRecordId = evaluator.dataset === undefined ? undefined : item.id;
911
+ if (completedCaseIds.has(caseId))
912
+ continue;
913
+ const caseStarted = Date.now();
914
+ const scores = {};
915
+ const failures = [];
916
+ let output;
917
+ let traceId = "";
918
+ let rootSpanId;
919
+ const requiredSpanIds = new Set();
920
+ const scoreEvidence = new Map();
921
+ const metadata = (item.metadata ?? {});
922
+ await tracing.propagateAttributes({
923
+ ...run.traceOptions,
924
+ caseId,
925
+ ...(datasetRecordId === undefined ? {} : { datasetRecordId }),
926
+ }, () => traceLogger.client.startAsCurrentSpan(`eval.case.${index + 1}`, {
927
+ asType: "task",
928
+ fields: {
929
+ input: item.input,
930
+ ...(item.expected === undefined ? {} : { metadata: { expected: item.expected } }),
931
+ ...(item.tags === undefined ? {} : { tags: item.tags }),
932
+ },
933
+ }, async (rootSpan) => {
934
+ traceId = rootSpan.traceId;
935
+ rootSpanId = rootSpan.spanId;
936
+ if (rootSpan.spanId !== undefined)
937
+ requiredSpanIds.add(rootSpan.spanId);
938
+ try {
939
+ output = await traceLogger.client.startAsCurrentSpan("eval.task", { asType: "task", fields: { input: item.input } }, async (taskSpan) => {
940
+ if (taskSpan.spanId !== undefined)
941
+ requiredSpanIds.add(taskSpan.spanId);
942
+ const value = await evaluator.task(item.input, {
943
+ expected: item.expected,
944
+ metadata,
945
+ span: taskSpan,
946
+ tags: item.tags,
947
+ trialIndex: 0,
948
+ });
949
+ taskSpan.update({ output: value });
950
+ return value;
951
+ });
952
+ }
953
+ catch (error) {
954
+ failures.push(safeError(error));
955
+ rootSpan.recordFailure(error);
956
+ rootSpan.markEvidenceComplete?.();
957
+ return;
958
+ }
959
+ for (const definition of evaluator.scores) {
960
+ try {
961
+ const returned = await traceLogger.client.startAsCurrentSpan(`scorer.${definition.name}`, {
962
+ asType: "function",
963
+ fields: {
964
+ input: {
965
+ input: item.input,
966
+ output,
967
+ expected: item.expected,
968
+ },
969
+ },
970
+ }, async (scoreSpan) => {
971
+ if (scoreSpan.spanId !== undefined)
972
+ requiredSpanIds.add(scoreSpan.spanId);
973
+ const value = await definition.scorer({ ...item, output: output });
974
+ scoreSpan.update({ output: value });
975
+ return value;
976
+ });
977
+ for (const scored of normalizedScores(returned, definition.name)) {
978
+ const scoreName = scored.name ?? definition.name;
979
+ if (scored.score === null) {
980
+ scores[scoreName] = null;
981
+ continue;
982
+ }
983
+ let registered = scorerCache.get(scoreName);
984
+ if (registered === undefined) {
985
+ registered = await resolveScorer(resources, workspaceId, name, {
986
+ ...definition,
987
+ name: scoreName,
988
+ });
989
+ scorerCache.set(scoreName, registered);
990
+ }
991
+ const numeric = numericScore(scored.score);
992
+ scores[scoreName] = numeric;
993
+ scoreEvidence.set(scoreName, registered);
994
+ rootSpan.score(scoreName, numeric, {
995
+ scorerId: registered.id,
996
+ scorerVersion: registered.version,
997
+ ...(scored.metadata === undefined
998
+ ? {}
999
+ : { comment: JSON.stringify(scored.metadata).slice(0, 2_000) }),
1000
+ });
1001
+ }
1002
+ }
1003
+ catch (error) {
1004
+ failures.push(`${definition.name}: ${safeError(error)}`);
1005
+ rootSpan.recordFailure(error);
1006
+ }
1007
+ }
1008
+ rootSpan.update({ output, metadata });
1009
+ rootSpan.markEvidenceComplete?.();
1010
+ }));
1011
+ if (!TRACE_ID.test(traceId) || /^0+$/.test(traceId)) {
1012
+ throw new Error(`case ${index + 1} did not produce a trace ID`);
1013
+ }
1014
+ results.push({
1015
+ ...item,
1016
+ caseId,
1017
+ ...(output === undefined ? {} : { output }),
1018
+ ...(failures.length === 0 ? {} : { error: failures.join("; ").slice(0, 2_000) }),
1019
+ scores,
1020
+ traceId,
1021
+ durationMs: Date.now() - caseStarted,
1022
+ });
1023
+ traceEvidence.set(traceId, {
1024
+ caseId,
1025
+ ...(datasetRecordId === undefined ? {} : { datasetRecordId }),
1026
+ ...(rootSpanId === undefined ? {} : { rootSpanId }),
1027
+ requiredSpanIds,
1028
+ scores: scoreEvidence,
1029
+ });
1030
+ // Persist each completed case before starting another costly task.
1031
+ // Keep the source index so a resumed subset cannot reuse earlier names.
1032
+ const result = results[results.length - 1];
1033
+ await traceLogger.flush();
1034
+ if (options.verifyTraces !== false) {
1035
+ await verifyTraceEvidence(resources, run.id, new Map([[result.traceId, traceEvidence.get(result.traceId)]]), traceVerificationTimeoutMs);
1036
+ }
1037
+ const resultBody = {
1038
+ workspaceId,
1039
+ name: `${slug(run.id, "experiment")}-case-${index + 1}`,
1040
+ caseId: result.caseId,
1041
+ datasetRecordId,
1042
+ input: registryObject(result.input),
1043
+ expected: registryObject(result.expected),
1044
+ output: registryObject(result.output),
1045
+ error: result.error,
1046
+ scores: result.scores,
1047
+ traceId: result.traceId,
1048
+ durationMs: result.durationMs,
1049
+ sourceType: "local",
1050
+ };
1051
+ const response = await resources.experiments.results.createBulk(run.id, {
1052
+ items: [resultBody],
1053
+ });
1054
+ const slots = field(response, "items");
1055
+ const status = Array.isArray(slots) && slots.length === 1 ? field(slots[0], "statusCode") : undefined;
1056
+ if (typeof status !== "number" || status < 200 || status >= 300) {
1057
+ throw new Error("1 Eval results were rejected or not acknowledged");
1058
+ }
1059
+ }
1060
+ const persistedResults = await experimentResults(resources, run.id);
1061
+ const persistedCaseIds = new Set(persistedResults.map((item) => field(item, "caseId")));
1062
+ if (persistedResults.length !== caseIds.size || persistedCaseIds.size !== caseIds.size || [...caseIds].some((id) => !persistedCaseIds.has(id))) {
1063
+ throw new Error("Registry result coverage does not match the evaluation cases");
1064
+ }
1065
+ if (options.verifyTraces !== false && persistedResults.length > 0) {
1066
+ const traceIds = new Set();
1067
+ for (const item of persistedResults) {
1068
+ const traceId = field(item, "traceId");
1069
+ if (typeof traceId !== "string" || !TRACE_ID.test(traceId) || /^0+$/.test(traceId)) {
1070
+ throw new Error("Registry result is missing a valid trace ID");
1071
+ }
1072
+ traceIds.add(traceId);
1073
+ }
1074
+ const expectations = new Map();
1075
+ for (const item of persistedResults) {
1076
+ const traceId = field(item, "traceId");
1077
+ const current = traceEvidence.get(traceId);
1078
+ if (current !== undefined) {
1079
+ expectations.set(traceId, current);
1080
+ continue;
1081
+ }
1082
+ const persistedScores = field(item, "scores");
1083
+ const scorePins = new Map();
1084
+ if (isRecord(persistedScores)) {
1085
+ for (const [scoreName, value] of Object.entries(persistedScores)) {
1086
+ const scorer = scorerCache.get(scoreName);
1087
+ if (value !== null && scorer !== undefined)
1088
+ scorePins.set(scoreName, scorer);
1089
+ }
1090
+ }
1091
+ const datasetRecordId = field(item, "datasetRecordId");
1092
+ expectations.set(traceId, {
1093
+ caseId: String(field(item, "caseId")),
1094
+ ...(typeof datasetRecordId === "string" ? { datasetRecordId } : {}),
1095
+ requiredSpanIds: new Set(),
1096
+ scores: scorePins,
1097
+ });
1098
+ }
1099
+ await verifyTraceEvidence(resources, run.id, expectations, traceVerificationTimeoutMs);
1100
+ }
1101
+ const local = localSummary(persistedResults, Date.now() - started);
1102
+ const experiment = await resources.experiments.update(run.id, {
1103
+ experimentStatus: "completed",
1104
+ summary: local,
1105
+ });
1106
+ const remote = field(experiment, "summary");
1107
+ const summary = isRecord(remote)
1108
+ ? remote
1109
+ : local;
1110
+ return {
1111
+ experimentId: run.id,
1112
+ experiment,
1113
+ dataset: run.dataset,
1114
+ summary,
1115
+ results: options.returnResults === false ? [] : results,
1116
+ };
1117
+ }
1118
+ catch (error) {
1119
+ // A custom exporter's failure must not replace the task, scorer, or
1120
+ // Registry error that caused the evaluation to fail.
1121
+ try {
1122
+ await traceLogger.flush();
1123
+ }
1124
+ catch {
1125
+ // Preserve the original runner/upload failure.
1126
+ }
1127
+ // Leave interrupted infrastructure work running: terminal experiments
1128
+ // cannot accept more results. Resume reconciles Registry case IDs.
1129
+ throw error;
1130
+ }
1131
+ }