@opensearch-project/agent-health 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (551) hide show
  1. package/README.md +36 -5
  2. package/cli/dist/index.js +8292 -2938
  3. package/deployment/cloudformation/agent-health-observability.yaml +223 -32
  4. package/dist/assets/index-BfxtxmKc.css +1 -0
  5. package/dist/assets/index-CrjAfDHu.js +243 -0
  6. package/dist/index.html +2 -2
  7. package/docs/ARCHITECTURE.md +450 -0
  8. package/docs/BACKEND_JOB_QUEUE.md +405 -0
  9. package/docs/CLAUDE_CODE_TELEMETRY.md +283 -0
  10. package/docs/CLI.md +474 -0
  11. package/docs/CODING_AGENT_ANALYTICS.md +298 -0
  12. package/docs/CONFIGURATION.md +388 -0
  13. package/docs/CONNECTORS.md +536 -0
  14. package/docs/INSTRUMENT_WITH_OTEL.md +397 -0
  15. package/docs/ML-COMMONS-SETUP.md +289 -0
  16. package/docs/NPX_PACKAGING.md +195 -0
  17. package/docs/PERFORMANCE-MONITORING.md +200 -0
  18. package/docs/PERFORMANCE.md +390 -0
  19. package/docs/PI_PROFILING.md +169 -0
  20. package/docs/PLAN-non-agui-agent-support.md +525 -0
  21. package/docs/SDK.md +626 -0
  22. package/docs/SKILLS.md +264 -0
  23. package/docs/STORAGE_INDEX_FIELD_LIMITS.md +216 -0
  24. package/docs/blogs/2026-02-28-opensearch-agent-health.md +200 -0
  25. package/docs/blogs/getting-started-blog.md +608 -0
  26. package/docs/diagrams/Agent-health.excalidraw +5656 -0
  27. package/docs/diagrams/architecture.png +0 -0
  28. package/docs/plans/field-redesign.md +468 -0
  29. package/docs/rfcs/001-coding-agent-analytics.md +374 -0
  30. package/docs/rfcs/002-enterprise-leaderboard.md +267 -0
  31. package/docs/rfcs/003-remote-aggregation.md +146 -0
  32. package/docs/rfcs/004-test-sdk-v2.md +599 -0
  33. package/docs/skills/AGENT_HEALTH.md +652 -0
  34. package/docs/skills/AGENT_PROFILE.md +191 -0
  35. package/docs/skills/add-connector/SKILL.md +68 -0
  36. package/docs/skills/agent-health-profile/SKILL.md +40 -0
  37. package/docs/skills/config-auth/SKILL.md +194 -0
  38. package/docs/skills/config-auth/evals/evals.json +35 -0
  39. package/docs/skills/create-pr/SKILL.md +73 -0
  40. package/docs/skills/instrument-otel/SKILL.md +84 -0
  41. package/docs/skills/write-test/SKILL.md +124 -0
  42. package/docs/ui prd.md +376 -0
  43. package/examples/README.md +53 -0
  44. package/examples/config/agent-health.config.example.ts +155 -0
  45. package/examples/connectors/echo-connector.ts +131 -0
  46. package/examples/eval-files/demo.eval.js +128 -0
  47. package/examples/eval-files/ops-rca-classification.eval.js +71 -0
  48. package/examples/eval-files/ops-rca-evaluator.json +15 -0
  49. package/examples/eval-files/sdk-demo.eval.js +72 -0
  50. package/examples/eval-files/sdk-describe-demo.eval.js +50 -0
  51. package/examples/eval-files/sdk-hooks-demo.eval.js +99 -0
  52. package/examples/pi-profiling/README.md +77 -0
  53. package/examples/pi-profiling/agent-health-profile.ts +417 -0
  54. package/lib/dist/lib/agentUtils.d.ts +29 -0
  55. package/lib/dist/lib/agentUtils.d.ts.map +1 -0
  56. package/lib/dist/lib/agentUtils.js +43 -0
  57. package/lib/dist/lib/agentUtils.js.map +1 -0
  58. package/lib/dist/lib/bedrockCompat.d.ts +27 -0
  59. package/lib/dist/lib/bedrockCompat.d.ts.map +1 -0
  60. package/lib/dist/lib/bedrockCompat.js +83 -0
  61. package/lib/dist/lib/bedrockCompat.js.map +1 -0
  62. package/lib/dist/lib/benchmarkExport.d.ts +14 -0
  63. package/lib/dist/lib/benchmarkExport.d.ts.map +1 -0
  64. package/lib/dist/lib/benchmarkExport.js +41 -0
  65. package/lib/dist/lib/benchmarkExport.js.map +1 -0
  66. package/lib/dist/lib/benchmarkImage.d.ts +52 -0
  67. package/lib/dist/lib/benchmarkImage.d.ts.map +1 -0
  68. package/lib/dist/lib/benchmarkImage.js +113 -0
  69. package/lib/dist/lib/benchmarkImage.js.map +1 -0
  70. package/lib/dist/lib/benchmarkVersionUtils.d.ts +50 -0
  71. package/lib/dist/lib/benchmarkVersionUtils.d.ts.map +1 -0
  72. package/lib/dist/lib/benchmarkVersionUtils.js +89 -0
  73. package/lib/dist/lib/benchmarkVersionUtils.js.map +1 -0
  74. package/lib/dist/lib/chunkedFetch.d.ts +18 -0
  75. package/lib/dist/lib/chunkedFetch.d.ts.map +1 -0
  76. package/lib/dist/lib/chunkedFetch.js +40 -0
  77. package/lib/dist/lib/chunkedFetch.js.map +1 -0
  78. package/lib/dist/lib/comparisonInsights.d.ts +104 -0
  79. package/lib/dist/lib/comparisonInsights.d.ts.map +1 -0
  80. package/lib/dist/lib/comparisonInsights.js +212 -0
  81. package/lib/dist/lib/comparisonInsights.js.map +1 -0
  82. package/lib/dist/lib/config/defineConfig.d.ts +27 -0
  83. package/lib/dist/lib/config/defineConfig.d.ts.map +1 -0
  84. package/lib/dist/lib/config/defineConfig.js +28 -0
  85. package/lib/dist/lib/config/defineConfig.js.map +1 -0
  86. package/lib/dist/lib/config/index.d.ts +9 -0
  87. package/lib/dist/lib/config/index.d.ts.map +1 -0
  88. package/lib/dist/lib/config/index.js +8 -0
  89. package/lib/dist/lib/config/index.js.map +1 -0
  90. package/lib/dist/lib/config/loader.d.ts +39 -0
  91. package/lib/dist/lib/config/loader.d.ts.map +1 -0
  92. package/lib/dist/lib/config/loader.js +263 -0
  93. package/lib/dist/lib/config/loader.js.map +1 -0
  94. package/lib/dist/lib/config/statePaths.d.ts +61 -0
  95. package/lib/dist/lib/config/statePaths.d.ts.map +1 -0
  96. package/lib/dist/lib/config/statePaths.js +188 -0
  97. package/lib/dist/lib/config/statePaths.js.map +1 -0
  98. package/lib/dist/lib/config/types.d.ts +245 -0
  99. package/lib/dist/lib/config/types.d.ts.map +1 -0
  100. package/lib/dist/lib/config/types.js +6 -0
  101. package/lib/dist/lib/config/types.js.map +1 -0
  102. package/lib/dist/lib/config.d.ts +39 -0
  103. package/lib/dist/lib/config.d.ts.map +1 -0
  104. package/lib/dist/lib/config.js +118 -0
  105. package/lib/dist/lib/config.js.map +1 -0
  106. package/lib/dist/lib/constants.d.ts +81 -0
  107. package/lib/dist/lib/constants.d.ts.map +1 -0
  108. package/lib/dist/lib/constants.js +374 -0
  109. package/lib/dist/lib/constants.js.map +1 -0
  110. package/lib/dist/lib/contextFormat.d.ts +26 -0
  111. package/lib/dist/lib/contextFormat.d.ts.map +1 -0
  112. package/lib/dist/lib/contextFormat.js +28 -0
  113. package/lib/dist/lib/contextFormat.js.map +1 -0
  114. package/lib/dist/lib/contextUtilization.d.ts +23 -0
  115. package/lib/dist/lib/contextUtilization.d.ts.map +1 -0
  116. package/lib/dist/lib/contextUtilization.js +72 -0
  117. package/lib/dist/lib/contextUtilization.js.map +1 -0
  118. package/lib/dist/lib/dashboardMetrics.d.ts +87 -0
  119. package/lib/dist/lib/dashboardMetrics.d.ts.map +1 -0
  120. package/lib/dist/lib/dashboardMetrics.js +242 -0
  121. package/lib/dist/lib/dashboardMetrics.js.map +1 -0
  122. package/lib/dist/lib/dataSourceConfig.d.ts +108 -0
  123. package/lib/dist/lib/dataSourceConfig.d.ts.map +1 -0
  124. package/lib/dist/lib/dataSourceConfig.js +166 -0
  125. package/lib/dist/lib/dataSourceConfig.js.map +1 -0
  126. package/lib/dist/lib/debug.d.ts +26 -0
  127. package/lib/dist/lib/debug.d.ts.map +1 -0
  128. package/lib/dist/lib/debug.js +132 -0
  129. package/lib/dist/lib/debug.js.map +1 -0
  130. package/lib/dist/lib/diagnostics.d.ts +28 -0
  131. package/lib/dist/lib/diagnostics.d.ts.map +1 -0
  132. package/lib/dist/lib/diagnostics.js +65 -0
  133. package/lib/dist/lib/diagnostics.js.map +1 -0
  134. package/lib/dist/lib/envCompat.d.ts +27 -0
  135. package/lib/dist/lib/envCompat.d.ts.map +1 -0
  136. package/lib/dist/lib/envCompat.js +82 -0
  137. package/lib/dist/lib/envCompat.js.map +1 -0
  138. package/lib/dist/lib/evaluationRerun.d.ts +63 -0
  139. package/lib/dist/lib/evaluationRerun.d.ts.map +1 -0
  140. package/lib/dist/lib/evaluationRerun.js +85 -0
  141. package/lib/dist/lib/evaluationRerun.js.map +1 -0
  142. package/lib/dist/lib/findPackageRoot.d.ts +7 -0
  143. package/lib/dist/lib/findPackageRoot.d.ts.map +1 -0
  144. package/lib/dist/lib/findPackageRoot.js +57 -0
  145. package/lib/dist/lib/findPackageRoot.js.map +1 -0
  146. package/lib/dist/lib/hooks.d.ts +36 -0
  147. package/lib/dist/lib/hooks.d.ts.map +1 -0
  148. package/lib/dist/lib/hooks.js +112 -0
  149. package/lib/dist/lib/hooks.js.map +1 -0
  150. package/lib/dist/lib/index.d.ts +47 -0
  151. package/lib/dist/lib/index.d.ts.map +1 -0
  152. package/lib/dist/lib/index.js +62 -0
  153. package/lib/dist/lib/index.js.map +1 -0
  154. package/lib/dist/lib/labels.d.ts +90 -0
  155. package/lib/dist/lib/labels.d.ts.map +1 -0
  156. package/lib/dist/lib/labels.js +158 -0
  157. package/lib/dist/lib/labels.js.map +1 -0
  158. package/lib/dist/lib/markdown.d.ts +16 -0
  159. package/lib/dist/lib/markdown.d.ts.map +1 -0
  160. package/lib/dist/lib/markdown.js +42 -0
  161. package/lib/dist/lib/markdown.js.map +1 -0
  162. package/lib/dist/lib/matchers/expect.d.ts +3 -0
  163. package/lib/dist/lib/matchers/expect.d.ts.map +1 -0
  164. package/lib/dist/lib/matchers/expect.js +225 -0
  165. package/lib/dist/lib/matchers/expect.js.map +1 -0
  166. package/lib/dist/lib/matchers/index.d.ts +8 -0
  167. package/lib/dist/lib/matchers/index.d.ts.map +1 -0
  168. package/lib/dist/lib/matchers/index.js +9 -0
  169. package/lib/dist/lib/matchers/index.js.map +1 -0
  170. package/lib/dist/lib/matchers/judgeAccessor.d.ts +113 -0
  171. package/lib/dist/lib/matchers/judgeAccessor.d.ts.map +1 -0
  172. package/lib/dist/lib/matchers/judgeAccessor.js +183 -0
  173. package/lib/dist/lib/matchers/judgeAccessor.js.map +1 -0
  174. package/lib/dist/lib/matchers/session.d.ts +39 -0
  175. package/lib/dist/lib/matchers/session.d.ts.map +1 -0
  176. package/lib/dist/lib/matchers/session.js +116 -0
  177. package/lib/dist/lib/matchers/session.js.map +1 -0
  178. package/lib/dist/lib/matchers/traces.d.ts +70 -0
  179. package/lib/dist/lib/matchers/traces.d.ts.map +1 -0
  180. package/lib/dist/lib/matchers/traces.js +236 -0
  181. package/lib/dist/lib/matchers/traces.js.map +1 -0
  182. package/lib/dist/lib/matchers/tracesPricing.d.ts +38 -0
  183. package/lib/dist/lib/matchers/tracesPricing.d.ts.map +1 -0
  184. package/lib/dist/lib/matchers/tracesPricing.js +64 -0
  185. package/lib/dist/lib/matchers/tracesPricing.js.map +1 -0
  186. package/lib/dist/lib/matchers/types.d.ts +75 -0
  187. package/lib/dist/lib/matchers/types.d.ts.map +1 -0
  188. package/lib/dist/lib/matchers/types.js +6 -0
  189. package/lib/dist/lib/matchers/types.js.map +1 -0
  190. package/lib/dist/lib/packagePaths.d.ts +29 -0
  191. package/lib/dist/lib/packagePaths.d.ts.map +1 -0
  192. package/lib/dist/lib/packagePaths.js +63 -0
  193. package/lib/dist/lib/packagePaths.js.map +1 -0
  194. package/lib/dist/lib/performance.d.ts +51 -0
  195. package/lib/dist/lib/performance.d.ts.map +1 -0
  196. package/lib/dist/lib/performance.js +159 -0
  197. package/lib/dist/lib/performance.js.map +1 -0
  198. package/lib/dist/lib/portConfig.d.ts +29 -0
  199. package/lib/dist/lib/portConfig.d.ts.map +1 -0
  200. package/lib/dist/lib/portConfig.js +64 -0
  201. package/lib/dist/lib/portConfig.js.map +1 -0
  202. package/lib/dist/lib/preferences.d.ts +63 -0
  203. package/lib/dist/lib/preferences.d.ts.map +1 -0
  204. package/lib/dist/lib/preferences.js +117 -0
  205. package/lib/dist/lib/preferences.js.map +1 -0
  206. package/lib/dist/lib/resolveAgentModel.d.ts +22 -0
  207. package/lib/dist/lib/resolveAgentModel.d.ts.map +1 -0
  208. package/lib/dist/lib/resolveAgentModel.js +37 -0
  209. package/lib/dist/lib/resolveAgentModel.js.map +1 -0
  210. package/lib/dist/lib/runStats.d.ts +116 -0
  211. package/lib/dist/lib/runStats.d.ts.map +1 -0
  212. package/lib/dist/lib/runStats.js +192 -0
  213. package/lib/dist/lib/runStats.js.map +1 -0
  214. package/lib/dist/lib/telemetry/constants.d.ts +60 -0
  215. package/lib/dist/lib/telemetry/constants.d.ts.map +1 -0
  216. package/lib/dist/lib/telemetry/constants.js +87 -0
  217. package/lib/dist/lib/telemetry/constants.js.map +1 -0
  218. package/lib/dist/lib/telemetry/evalSpans.d.ts +61 -0
  219. package/lib/dist/lib/telemetry/evalSpans.d.ts.map +1 -0
  220. package/lib/dist/lib/telemetry/evalSpans.js +254 -0
  221. package/lib/dist/lib/telemetry/evalSpans.js.map +1 -0
  222. package/lib/dist/lib/telemetry/index.d.ts +11 -0
  223. package/lib/dist/lib/telemetry/index.d.ts.map +1 -0
  224. package/lib/dist/lib/telemetry/index.js +15 -0
  225. package/lib/dist/lib/telemetry/index.js.map +1 -0
  226. package/lib/dist/lib/telemetry/opensearchExporter.d.ts +43 -0
  227. package/lib/dist/lib/telemetry/opensearchExporter.d.ts.map +1 -0
  228. package/lib/dist/lib/telemetry/opensearchExporter.js +217 -0
  229. package/lib/dist/lib/telemetry/opensearchExporter.js.map +1 -0
  230. package/lib/dist/lib/telemetry/provider.d.ts +55 -0
  231. package/lib/dist/lib/telemetry/provider.d.ts.map +1 -0
  232. package/lib/dist/lib/telemetry/provider.js +140 -0
  233. package/lib/dist/lib/telemetry/provider.js.map +1 -0
  234. package/lib/dist/lib/testCaseLabels.d.ts +34 -0
  235. package/lib/dist/lib/testCaseLabels.d.ts.map +1 -0
  236. package/lib/dist/lib/testCaseLabels.js +88 -0
  237. package/lib/dist/lib/testCaseLabels.js.map +1 -0
  238. package/lib/dist/lib/testCaseValidation.d.ts +140 -0
  239. package/lib/dist/lib/testCaseValidation.d.ts.map +1 -0
  240. package/lib/dist/lib/testCaseValidation.js +162 -0
  241. package/lib/dist/lib/testCaseValidation.js.map +1 -0
  242. package/lib/dist/lib/testCases/agentFixture.d.ts +80 -0
  243. package/lib/dist/lib/testCases/agentFixture.d.ts.map +1 -0
  244. package/lib/dist/lib/testCases/agentFixture.js +43 -0
  245. package/lib/dist/lib/testCases/agentFixture.js.map +1 -0
  246. package/lib/dist/lib/testCases/authoringSurface.d.ts +10 -0
  247. package/lib/dist/lib/testCases/authoringSurface.d.ts.map +1 -0
  248. package/lib/dist/lib/testCases/authoringSurface.js +54 -0
  249. package/lib/dist/lib/testCases/authoringSurface.js.map +1 -0
  250. package/lib/dist/lib/testCases/codemod.d.ts +13 -0
  251. package/lib/dist/lib/testCases/codemod.d.ts.map +1 -0
  252. package/lib/dist/lib/testCases/codemod.js +169 -0
  253. package/lib/dist/lib/testCases/codemod.js.map +1 -0
  254. package/lib/dist/lib/testCases/define.d.ts +114 -0
  255. package/lib/dist/lib/testCases/define.d.ts.map +1 -0
  256. package/lib/dist/lib/testCases/define.js +253 -0
  257. package/lib/dist/lib/testCases/define.js.map +1 -0
  258. package/lib/dist/lib/testCases/evaluators.d.ts +80 -0
  259. package/lib/dist/lib/testCases/evaluators.d.ts.map +1 -0
  260. package/lib/dist/lib/testCases/evaluators.js +105 -0
  261. package/lib/dist/lib/testCases/evaluators.js.map +1 -0
  262. package/lib/dist/lib/testCases/index.d.ts +14 -0
  263. package/lib/dist/lib/testCases/index.d.ts.map +1 -0
  264. package/lib/dist/lib/testCases/index.js +12 -0
  265. package/lib/dist/lib/testCases/index.js.map +1 -0
  266. package/lib/dist/lib/testCases/judge.d.ts +165 -0
  267. package/lib/dist/lib/testCases/judge.d.ts.map +1 -0
  268. package/lib/dist/lib/testCases/judge.js +359 -0
  269. package/lib/dist/lib/testCases/judge.js.map +1 -0
  270. package/lib/dist/lib/testCases/loader.d.ts +36 -0
  271. package/lib/dist/lib/testCases/loader.d.ts.map +1 -0
  272. package/lib/dist/lib/testCases/loader.js +179 -0
  273. package/lib/dist/lib/testCases/loader.js.map +1 -0
  274. package/lib/dist/lib/testCases/types.d.ts +242 -0
  275. package/lib/dist/lib/testCases/types.d.ts.map +1 -0
  276. package/lib/dist/lib/testCases/types.js +6 -0
  277. package/lib/dist/lib/testCases/types.js.map +1 -0
  278. package/lib/dist/lib/theme.d.ts +6 -0
  279. package/lib/dist/lib/theme.d.ts.map +1 -0
  280. package/lib/dist/lib/theme.js +36 -0
  281. package/lib/dist/lib/theme.js.map +1 -0
  282. package/lib/dist/lib/uiTelemetry.d.ts +7 -0
  283. package/lib/dist/lib/uiTelemetry.d.ts.map +1 -0
  284. package/lib/dist/lib/uiTelemetry.js +25 -0
  285. package/lib/dist/lib/uiTelemetry.js.map +1 -0
  286. package/lib/dist/lib/utils.d.ts +111 -0
  287. package/lib/dist/lib/utils.d.ts.map +1 -0
  288. package/lib/dist/lib/utils.js +254 -0
  289. package/lib/dist/lib/utils.js.map +1 -0
  290. package/lib/dist/lib/workflow/consolidate.d.ts +12 -0
  291. package/lib/dist/lib/workflow/consolidate.d.ts.map +1 -0
  292. package/lib/dist/lib/workflow/consolidate.js +33 -0
  293. package/lib/dist/lib/workflow/consolidate.js.map +1 -0
  294. package/lib/dist/lib/workflow/index.d.ts +13 -0
  295. package/lib/dist/lib/workflow/index.d.ts.map +1 -0
  296. package/lib/dist/lib/workflow/index.js +12 -0
  297. package/lib/dist/lib/workflow/index.js.map +1 -0
  298. package/lib/dist/lib/workflow/ledger.d.ts +30 -0
  299. package/lib/dist/lib/workflow/ledger.d.ts.map +1 -0
  300. package/lib/dist/lib/workflow/ledger.js +41 -0
  301. package/lib/dist/lib/workflow/ledger.js.map +1 -0
  302. package/lib/dist/lib/workflow/pool.d.ts +13 -0
  303. package/lib/dist/lib/workflow/pool.d.ts.map +1 -0
  304. package/lib/dist/lib/workflow/pool.js +44 -0
  305. package/lib/dist/lib/workflow/pool.js.map +1 -0
  306. package/lib/dist/lib/workflow/source.d.ts +22 -0
  307. package/lib/dist/lib/workflow/source.d.ts.map +1 -0
  308. package/lib/dist/lib/workflow/source.js +29 -0
  309. package/lib/dist/lib/workflow/source.js.map +1 -0
  310. package/lib/dist/lib/workflow/stepB.d.ts +71 -0
  311. package/lib/dist/lib/workflow/stepB.d.ts.map +1 -0
  312. package/lib/dist/lib/workflow/stepB.js +99 -0
  313. package/lib/dist/lib/workflow/stepB.js.map +1 -0
  314. package/lib/dist/lib/workflow/types.d.ts +86 -0
  315. package/lib/dist/lib/workflow/types.d.ts.map +1 -0
  316. package/lib/dist/lib/workflow/types.js +6 -0
  317. package/lib/dist/lib/workflow/types.js.map +1 -0
  318. package/lib/dist/lib/workflow/workflow.d.ts +119 -0
  319. package/lib/dist/lib/workflow/workflow.d.ts.map +1 -0
  320. package/lib/dist/lib/workflow/workflow.js +195 -0
  321. package/lib/dist/lib/workflow/workflow.js.map +1 -0
  322. package/lib/dist/services/agent/aguiConverter.d.ts +50 -0
  323. package/lib/dist/services/agent/aguiConverter.d.ts.map +1 -0
  324. package/lib/dist/services/agent/aguiConverter.js +449 -0
  325. package/lib/dist/services/agent/aguiConverter.js.map +1 -0
  326. package/lib/dist/services/agent/index.d.ts +10 -0
  327. package/lib/dist/services/agent/index.d.ts.map +1 -0
  328. package/lib/dist/services/agent/index.js +12 -0
  329. package/lib/dist/services/agent/index.js.map +1 -0
  330. package/lib/dist/services/agent/payloadBuilder.d.ts +33 -0
  331. package/lib/dist/services/agent/payloadBuilder.d.ts.map +1 -0
  332. package/lib/dist/services/agent/payloadBuilder.js +75 -0
  333. package/lib/dist/services/agent/payloadBuilder.js.map +1 -0
  334. package/lib/dist/services/agent/sseStream.d.ts +43 -0
  335. package/lib/dist/services/agent/sseStream.d.ts.map +1 -0
  336. package/lib/dist/services/agent/sseStream.js +223 -0
  337. package/lib/dist/services/agent/sseStream.js.map +1 -0
  338. package/lib/dist/services/connectors/agui/AGUIStreamingConnector.d.ts +44 -0
  339. package/lib/dist/services/connectors/agui/AGUIStreamingConnector.d.ts.map +1 -0
  340. package/lib/dist/services/connectors/agui/AGUIStreamingConnector.js +95 -0
  341. package/lib/dist/services/connectors/agui/AGUIStreamingConnector.js.map +1 -0
  342. package/lib/dist/services/connectors/base/BaseConnector.d.ts +81 -0
  343. package/lib/dist/services/connectors/base/BaseConnector.d.ts.map +1 -0
  344. package/lib/dist/services/connectors/base/BaseConnector.js +170 -0
  345. package/lib/dist/services/connectors/base/BaseConnector.js.map +1 -0
  346. package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.d.ts +126 -0
  347. package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.d.ts.map +1 -0
  348. package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.js +417 -0
  349. package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.js.map +1 -0
  350. package/lib/dist/services/connectors/index.d.ts +13 -0
  351. package/lib/dist/services/connectors/index.d.ts.map +1 -0
  352. package/lib/dist/services/connectors/index.js +32 -0
  353. package/lib/dist/services/connectors/index.js.map +1 -0
  354. package/lib/dist/services/connectors/kiro/KiroConnector.d.ts +48 -0
  355. package/lib/dist/services/connectors/kiro/KiroConnector.d.ts.map +1 -0
  356. package/lib/dist/services/connectors/kiro/KiroConnector.js +158 -0
  357. package/lib/dist/services/connectors/kiro/KiroConnector.js.map +1 -0
  358. package/lib/dist/services/connectors/langgraph/LangGraphConnector.d.ts +36 -0
  359. package/lib/dist/services/connectors/langgraph/LangGraphConnector.d.ts.map +1 -0
  360. package/lib/dist/services/connectors/langgraph/LangGraphConnector.js +175 -0
  361. package/lib/dist/services/connectors/langgraph/LangGraphConnector.js.map +1 -0
  362. package/lib/dist/services/connectors/mock/MockConnector.d.ts +37 -0
  363. package/lib/dist/services/connectors/mock/MockConnector.d.ts.map +1 -0
  364. package/lib/dist/services/connectors/mock/MockConnector.js +120 -0
  365. package/lib/dist/services/connectors/mock/MockConnector.js.map +1 -0
  366. package/lib/dist/services/connectors/openai-compatible/OpenAICompatibleConnector.d.ts +42 -0
  367. package/lib/dist/services/connectors/openai-compatible/OpenAICompatibleConnector.d.ts.map +1 -0
  368. package/lib/dist/services/connectors/openai-compatible/OpenAICompatibleConnector.js +133 -0
  369. package/lib/dist/services/connectors/openai-compatible/OpenAICompatibleConnector.js.map +1 -0
  370. package/lib/dist/services/connectors/pi/PiConnector.d.ts +87 -0
  371. package/lib/dist/services/connectors/pi/PiConnector.d.ts.map +1 -0
  372. package/lib/dist/services/connectors/pi/PiConnector.js +274 -0
  373. package/lib/dist/services/connectors/pi/PiConnector.js.map +1 -0
  374. package/lib/dist/services/connectors/registry.d.ts +57 -0
  375. package/lib/dist/services/connectors/registry.d.ts.map +1 -0
  376. package/lib/dist/services/connectors/registry.js +106 -0
  377. package/lib/dist/services/connectors/registry.js.map +1 -0
  378. package/lib/dist/services/connectors/rest/RESTConnector.d.ts +38 -0
  379. package/lib/dist/services/connectors/rest/RESTConnector.d.ts.map +1 -0
  380. package/lib/dist/services/connectors/rest/RESTConnector.js +117 -0
  381. package/lib/dist/services/connectors/rest/RESTConnector.js.map +1 -0
  382. package/lib/dist/services/connectors/server.d.ts +13 -0
  383. package/lib/dist/services/connectors/server.d.ts.map +1 -0
  384. package/lib/dist/services/connectors/server.js +34 -0
  385. package/lib/dist/services/connectors/server.js.map +1 -0
  386. package/lib/dist/services/connectors/strands/StrandsConnector.d.ts +48 -0
  387. package/lib/dist/services/connectors/strands/StrandsConnector.d.ts.map +1 -0
  388. package/lib/dist/services/connectors/strands/StrandsConnector.js +221 -0
  389. package/lib/dist/services/connectors/strands/StrandsConnector.js.map +1 -0
  390. package/lib/dist/services/connectors/subprocess/SubprocessConnector.d.ts +88 -0
  391. package/lib/dist/services/connectors/subprocess/SubprocessConnector.d.ts.map +1 -0
  392. package/lib/dist/services/connectors/subprocess/SubprocessConnector.js +426 -0
  393. package/lib/dist/services/connectors/subprocess/SubprocessConnector.js.map +1 -0
  394. package/lib/dist/services/connectors/types.d.ts +213 -0
  395. package/lib/dist/services/connectors/types.d.ts.map +1 -0
  396. package/lib/dist/services/connectors/types.js +6 -0
  397. package/lib/dist/services/connectors/types.js.map +1 -0
  398. package/lib/dist/services/evaluation/bedrockJudge.d.ts +71 -0
  399. package/lib/dist/services/evaluation/bedrockJudge.d.ts.map +1 -0
  400. package/lib/dist/services/evaluation/bedrockJudge.js +169 -0
  401. package/lib/dist/services/evaluation/bedrockJudge.js.map +1 -0
  402. package/lib/dist/services/evaluation/evaluatorError.d.ts +56 -0
  403. package/lib/dist/services/evaluation/evaluatorError.d.ts.map +1 -0
  404. package/lib/dist/services/evaluation/evaluatorError.js +56 -0
  405. package/lib/dist/services/evaluation/evaluatorError.js.map +1 -0
  406. package/lib/dist/services/evaluation/index.d.ts +106 -0
  407. package/lib/dist/services/evaluation/index.d.ts.map +1 -0
  408. package/lib/dist/services/evaluation/index.js +684 -0
  409. package/lib/dist/services/evaluation/index.js.map +1 -0
  410. package/lib/dist/services/evaluation/mockTrajectory.d.ts +3 -0
  411. package/lib/dist/services/evaluation/mockTrajectory.d.ts.map +1 -0
  412. package/lib/dist/services/evaluation/mockTrajectory.js +72 -0
  413. package/lib/dist/services/evaluation/mockTrajectory.js.map +1 -0
  414. package/lib/dist/services/opensearch/client.d.ts +26 -0
  415. package/lib/dist/services/opensearch/client.d.ts.map +1 -0
  416. package/lib/dist/services/opensearch/client.js +131 -0
  417. package/lib/dist/services/opensearch/client.js.map +1 -0
  418. package/lib/dist/services/opensearch/index.d.ts +16 -0
  419. package/lib/dist/services/opensearch/index.d.ts.map +1 -0
  420. package/lib/dist/services/opensearch/index.js +25 -0
  421. package/lib/dist/services/opensearch/index.js.map +1 -0
  422. package/lib/dist/services/storage/asyncBenchmarkStorage.d.ts +123 -0
  423. package/lib/dist/services/storage/asyncBenchmarkStorage.d.ts.map +1 -0
  424. package/lib/dist/services/storage/asyncBenchmarkStorage.js +440 -0
  425. package/lib/dist/services/storage/asyncBenchmarkStorage.js.map +1 -0
  426. package/lib/dist/services/storage/asyncRunStorage.d.ts +135 -0
  427. package/lib/dist/services/storage/asyncRunStorage.d.ts.map +1 -0
  428. package/lib/dist/services/storage/asyncRunStorage.js +524 -0
  429. package/lib/dist/services/storage/asyncRunStorage.js.map +1 -0
  430. package/lib/dist/services/storage/asyncTestCaseStorage.d.ts +170 -0
  431. package/lib/dist/services/storage/asyncTestCaseStorage.d.ts.map +1 -0
  432. package/lib/dist/services/storage/asyncTestCaseStorage.js +301 -0
  433. package/lib/dist/services/storage/asyncTestCaseStorage.js.map +1 -0
  434. package/lib/dist/services/storage/index.d.ts +17 -0
  435. package/lib/dist/services/storage/index.d.ts.map +1 -0
  436. package/lib/dist/services/storage/index.js +20 -0
  437. package/lib/dist/services/storage/index.js.map +1 -0
  438. package/lib/dist/services/storage/migration.d.ts +54 -0
  439. package/lib/dist/services/storage/migration.d.ts.map +1 -0
  440. package/lib/dist/services/storage/migration.js +296 -0
  441. package/lib/dist/services/storage/migration.js.map +1 -0
  442. package/lib/dist/services/storage/opensearchClient.d.ts +947 -0
  443. package/lib/dist/services/storage/opensearchClient.d.ts.map +1 -0
  444. package/lib/dist/services/storage/opensearchClient.js +442 -0
  445. package/lib/dist/services/storage/opensearchClient.js.map +1 -0
  446. package/lib/dist/services/traces/browserRecovery.d.ts +37 -0
  447. package/lib/dist/services/traces/browserRecovery.d.ts.map +1 -0
  448. package/lib/dist/services/traces/browserRecovery.js +108 -0
  449. package/lib/dist/services/traces/browserRecovery.js.map +1 -0
  450. package/lib/dist/services/traces/categoryStyles.d.ts +21 -0
  451. package/lib/dist/services/traces/categoryStyles.d.ts.map +1 -0
  452. package/lib/dist/services/traces/categoryStyles.js +56 -0
  453. package/lib/dist/services/traces/categoryStyles.js.map +1 -0
  454. package/lib/dist/services/traces/executionOrderTransform.d.ts +35 -0
  455. package/lib/dist/services/traces/executionOrderTransform.d.ts.map +1 -0
  456. package/lib/dist/services/traces/executionOrderTransform.js +313 -0
  457. package/lib/dist/services/traces/executionOrderTransform.js.map +1 -0
  458. package/lib/dist/services/traces/fetchSpansForRun.d.ts +86 -0
  459. package/lib/dist/services/traces/fetchSpansForRun.d.ts.map +1 -0
  460. package/lib/dist/services/traces/fetchSpansForRun.js +69 -0
  461. package/lib/dist/services/traces/fetchSpansForRun.js.map +1 -0
  462. package/lib/dist/services/traces/flowTransform.d.ts +24 -0
  463. package/lib/dist/services/traces/flowTransform.d.ts.map +1 -0
  464. package/lib/dist/services/traces/flowTransform.js +228 -0
  465. package/lib/dist/services/traces/flowTransform.js.map +1 -0
  466. package/lib/dist/services/traces/index.d.ts +121 -0
  467. package/lib/dist/services/traces/index.d.ts.map +1 -0
  468. package/lib/dist/services/traces/index.js +255 -0
  469. package/lib/dist/services/traces/index.js.map +1 -0
  470. package/lib/dist/services/traces/intentTransform.d.ts +20 -0
  471. package/lib/dist/services/traces/intentTransform.d.ts.map +1 -0
  472. package/lib/dist/services/traces/intentTransform.js +131 -0
  473. package/lib/dist/services/traces/intentTransform.js.map +1 -0
  474. package/lib/dist/services/traces/judgeAgentsHints.d.ts +63 -0
  475. package/lib/dist/services/traces/judgeAgentsHints.d.ts.map +1 -0
  476. package/lib/dist/services/traces/judgeAgentsHints.js +89 -0
  477. package/lib/dist/services/traces/judgeAgentsHints.js.map +1 -0
  478. package/lib/dist/services/traces/messageExtraction.d.ts +15 -0
  479. package/lib/dist/services/traces/messageExtraction.d.ts.map +1 -0
  480. package/lib/dist/services/traces/messageExtraction.js +313 -0
  481. package/lib/dist/services/traces/messageExtraction.js.map +1 -0
  482. package/lib/dist/services/traces/spanCategorization.d.ts +63 -0
  483. package/lib/dist/services/traces/spanCategorization.d.ts.map +1 -0
  484. package/lib/dist/services/traces/spanCategorization.js +276 -0
  485. package/lib/dist/services/traces/spanCategorization.js.map +1 -0
  486. package/lib/dist/services/traces/spanPreprocessing.d.ts +37 -0
  487. package/lib/dist/services/traces/spanPreprocessing.d.ts.map +1 -0
  488. package/lib/dist/services/traces/spanPreprocessing.js +102 -0
  489. package/lib/dist/services/traces/spanPreprocessing.js.map +1 -0
  490. package/lib/dist/services/traces/spansToTrajectory.d.ts +36 -0
  491. package/lib/dist/services/traces/spansToTrajectory.d.ts.map +1 -0
  492. package/lib/dist/services/traces/spansToTrajectory.js +425 -0
  493. package/lib/dist/services/traces/spansToTrajectory.js.map +1 -0
  494. package/lib/dist/services/traces/toolSimilarity.d.ts +35 -0
  495. package/lib/dist/services/traces/toolSimilarity.d.ts.map +1 -0
  496. package/lib/dist/services/traces/toolSimilarity.js +203 -0
  497. package/lib/dist/services/traces/toolSimilarity.js.map +1 -0
  498. package/lib/dist/services/traces/traceComparison.d.ts +31 -0
  499. package/lib/dist/services/traces/traceComparison.d.ts.map +1 -0
  500. package/lib/dist/services/traces/traceComparison.js +318 -0
  501. package/lib/dist/services/traces/traceComparison.js.map +1 -0
  502. package/lib/dist/services/traces/traceGrouping.d.ts +19 -0
  503. package/lib/dist/services/traces/traceGrouping.d.ts.map +1 -0
  504. package/lib/dist/services/traces/traceGrouping.js +107 -0
  505. package/lib/dist/services/traces/traceGrouping.js.map +1 -0
  506. package/lib/dist/services/traces/tracePoller.d.ts +108 -0
  507. package/lib/dist/services/traces/tracePoller.d.ts.map +1 -0
  508. package/lib/dist/services/traces/tracePoller.js +475 -0
  509. package/lib/dist/services/traces/tracePoller.js.map +1 -0
  510. package/lib/dist/services/traces/traceStats.d.ts +45 -0
  511. package/lib/dist/services/traces/traceStats.d.ts.map +1 -0
  512. package/lib/dist/services/traces/traceStats.js +114 -0
  513. package/lib/dist/services/traces/traceStats.js.map +1 -0
  514. package/lib/dist/services/traces/traceSummary.d.ts +47 -0
  515. package/lib/dist/services/traces/traceSummary.d.ts.map +1 -0
  516. package/lib/dist/services/traces/traceSummary.js +68 -0
  517. package/lib/dist/services/traces/traceSummary.js.map +1 -0
  518. package/lib/dist/services/traces/utils.d.ts +33 -0
  519. package/lib/dist/services/traces/utils.d.ts.map +1 -0
  520. package/lib/dist/services/traces/utils.js +114 -0
  521. package/lib/dist/services/traces/utils.js.map +1 -0
  522. package/lib/dist/types/agui.d.ts +13 -0
  523. package/lib/dist/types/agui.d.ts.map +1 -0
  524. package/lib/dist/types/agui.js +16 -0
  525. package/lib/dist/types/agui.js.map +1 -0
  526. package/lib/dist/types/index.d.ts +1229 -0
  527. package/lib/dist/types/index.d.ts.map +1 -0
  528. package/lib/dist/types/index.js +12 -0
  529. package/lib/dist/types/index.js.map +1 -0
  530. package/lib/dist/types/skills.d.ts +146 -0
  531. package/lib/dist/types/skills.d.ts.map +1 -0
  532. package/lib/dist/types/skills.js +6 -0
  533. package/lib/dist/types/skills.js.map +1 -0
  534. package/observio-sample-agent/pi-package/README.md +112 -0
  535. package/observio-sample-agent/pi-package/extensions/agent-health.ts +373 -0
  536. package/observio-sample-agent/pi-package/package.json +17 -0
  537. package/observio-sample-agent/pi-package/prompts/agent-health.md +37 -0
  538. package/observio-sample-agent/pi-package/skills/create-pr/SKILL.md +88 -0
  539. package/observio-sample-agent/pi-package/skills/fix-bug/SKILL.md +71 -0
  540. package/observio-sample-agent/pi-package/skills/implement-feature/SKILL.md +156 -0
  541. package/observio-sample-agent/pi-package/skills/instrument-otel/SKILL.md +208 -0
  542. package/observio-sample-agent/pi-package/skills/setup-collector/SKILL.md +146 -0
  543. package/observio-sample-agent/pi-package/skills/write-test/SKILL.md +115 -0
  544. package/package.json +45 -9
  545. package/server/dist/app.js +34031 -18731
  546. package/server/dist/index.js +30737 -15338
  547. package/tsconfig.lib.json +71 -0
  548. package/dist/assets/index-BOIP5L7h.js +0 -246
  549. package/dist/assets/index-CU9YKpAL.css +0 -1
  550. package/lib/dist/config/index.js +0 -452
  551. package/lib/dist/index.js +0 -1725
@@ -0,0 +1,947 @@
1
+ export interface StorageTestCase {
2
+ id: string;
3
+ name: string;
4
+ description?: string;
5
+ version: number;
6
+ initialPrompt: string;
7
+ tools?: unknown[];
8
+ messages?: unknown[];
9
+ context?: unknown[];
10
+ forwardedProps?: Record<string, unknown>;
11
+ expectedPPL?: string;
12
+ expectedOutcomes?: string[];
13
+ expectedTrajectory?: unknown[];
14
+ labels?: string[];
15
+ category?: string;
16
+ subcategory?: string;
17
+ difficulty?: 'Easy' | 'Medium' | 'Hard';
18
+ tags?: string[];
19
+ author?: string;
20
+ createdAt: string;
21
+ updatedAt: string;
22
+ lastRunAt?: string;
23
+ /** Source provenance for SDK / code-imported test cases. Used by the
24
+ * CollapsibleTestCaseDefinition UI to distinguish SDK tests (path is
25
+ * the source of truth) from JSON tests (the row itself is the source
26
+ * of truth). Already round-trips through OpenSearch — the storage
27
+ * layer was just dropping it on read. */
28
+ sourceFile?: string;
29
+ sourceHash?: string;
30
+ sourceCode?: string;
31
+ sourceFileName?: string;
32
+ sourceLanguage?: 'javascript' | 'typescript';
33
+ }
34
+ export interface StorageBenchmarkRunConfig {
35
+ id: string;
36
+ name: string;
37
+ description?: string;
38
+ agentKey: string;
39
+ agentId?: string;
40
+ modelId: string;
41
+ headers?: Record<string, string>;
42
+ iterationCount?: number;
43
+ createdAt: string;
44
+ results?: Record<string, {
45
+ reportId: string;
46
+ status: string;
47
+ error?: string;
48
+ }>;
49
+ status?: string;
50
+ error?: string;
51
+ stats?: {
52
+ passed: number;
53
+ failed: number;
54
+ pending: number;
55
+ total: number;
56
+ errored?: number;
57
+ };
58
+ }
59
+ export interface StorageBenchmark {
60
+ id: string;
61
+ name: string;
62
+ description?: string;
63
+ author?: string;
64
+ createdAt: string;
65
+ llmJudgePrompt?: string;
66
+ testCaseIds: string[];
67
+ runs: StorageBenchmarkRunConfig[];
68
+ }
69
+ /** @deprecated Use StorageBenchmarkRunConfig instead */
70
+ export type StorageExperimentRunConfig = StorageBenchmarkRunConfig;
71
+ /** @deprecated Use StorageBenchmark instead */
72
+ export type StorageExperiment = StorageBenchmark;
73
+ export interface StorageRunAnnotation {
74
+ id: string;
75
+ text: string;
76
+ tags?: string[];
77
+ author?: string;
78
+ createdAt: string;
79
+ updatedAt: string;
80
+ }
81
+ export interface StorageRun {
82
+ id: string;
83
+ name?: string;
84
+ description?: string;
85
+ experimentId: string;
86
+ experimentRunId: string;
87
+ testCaseId: string;
88
+ testCaseVersionId: string;
89
+ agentId: string;
90
+ modelId: string;
91
+ iteration: number;
92
+ author?: string;
93
+ createdAt: string;
94
+ status: 'running' | 'completed' | 'failed';
95
+ passFailStatus?: 'passed' | 'failed';
96
+ traceId?: string;
97
+ tags?: string[];
98
+ actualOutcomes?: unknown[];
99
+ llmJudgeReasoning?: string;
100
+ metrics?: {
101
+ accuracy?: number;
102
+ faithfulness?: number;
103
+ latency_score?: number;
104
+ trajectory_alignment_score?: number;
105
+ };
106
+ annotations?: StorageRunAnnotation[];
107
+ trajectory?: unknown[];
108
+ rawEvents?: unknown[];
109
+ logs?: unknown[];
110
+ /** Which evaluator produced this run's verdict (see EvaluationReport/BenchmarkRun.evaluatorId). */
111
+ evaluatorId?: string;
112
+ /** Which Bedrock judge model produced this run's verdict (see EvaluationReport/BenchmarkRun.judgeModelId). */
113
+ judgeModelId?: string;
114
+ improvementStrategies?: {
115
+ category: string;
116
+ issue: string;
117
+ recommendation: string;
118
+ priority: 'high' | 'medium' | 'low';
119
+ }[];
120
+ connectorProtocol?: string;
121
+ }
122
+ export interface StorageAnalyticsRecord {
123
+ analyticsId: string;
124
+ runId: string;
125
+ experimentId: string;
126
+ experimentRunId: string;
127
+ testCaseId: string;
128
+ testCaseVersionId?: string;
129
+ traceId?: string;
130
+ experimentName?: string;
131
+ testCaseName?: string;
132
+ testCaseCategory?: string;
133
+ testCaseDifficulty?: string;
134
+ agentId: string;
135
+ modelId: string;
136
+ iteration: number;
137
+ tags?: string[];
138
+ passFailStatus?: string;
139
+ status?: string;
140
+ createdAt: string;
141
+ author?: string;
142
+ [key: string]: unknown;
143
+ }
144
+ export declare const storageAdmin: {
145
+ /**
146
+ * Check storage health/connectivity
147
+ */
148
+ health(): Promise<{
149
+ status: string;
150
+ cluster?: unknown;
151
+ error?: string;
152
+ /** Active storage backend. 'file' means OpenSearch is unavailable / not configured; 'error' means configured-but-unreachable. */
153
+ backend?: "file" | "opensearch" | "error";
154
+ /**
155
+ * Real OpenSearch connectivity, present when OpenSearch is configured but
156
+ * the active backend fell back to file storage. Top-level `status` reflects
157
+ * the active (possibly file) backend, NOT OpenSearch — use this to report
158
+ * true OpenSearch connectivity. Shape mirrors testStorageConnection().
159
+ */
160
+ opensearch?: {
161
+ status: string;
162
+ message?: string;
163
+ latencyMs?: number;
164
+ clusterName?: string;
165
+ clusterStatus?: string;
166
+ };
167
+ }>;
168
+ /**
169
+ * Initialize all indexes with mappings
170
+ */
171
+ initIndexes(): Promise<{
172
+ success: boolean;
173
+ results: Record<string, {
174
+ status: string;
175
+ error?: string;
176
+ }>;
177
+ }>;
178
+ /**
179
+ * Get storage statistics
180
+ */
181
+ stats(): Promise<{
182
+ stats: Record<string, {
183
+ count: number;
184
+ error?: string;
185
+ }>;
186
+ }>;
187
+ };
188
+ export declare const testCaseStorage: {
189
+ /**
190
+ * Get all test cases (latest versions only)
191
+ * @param options.fields - 'summary' for lightweight list-view payload
192
+ * @param options.size - page size for pagination
193
+ * @param options.after - cursor token for next page
194
+ * @param options.includeSample - whether to include sample/demo data
195
+ */
196
+ getAll(options?: {
197
+ fields?: "summary";
198
+ size?: number;
199
+ after?: string;
200
+ includeSample?: boolean;
201
+ }): Promise<{
202
+ testCases: StorageTestCase[];
203
+ total: number;
204
+ after?: string | null;
205
+ hasMore?: boolean;
206
+ }>;
207
+ /**
208
+ * Get test cases by specific IDs (latest versions only)
209
+ * Used for efficient filtered fetching (e.g., only test cases in a benchmark)
210
+ * @param options.summary - request the lightweight list-view payload
211
+ * (same server-side transform `getAll` uses — see toSummary() in
212
+ * server/routes/storage/testCases.ts) instead of full records.
213
+ */
214
+ getByIds(ids: string[], options?: {
215
+ summary?: boolean;
216
+ }): Promise<StorageTestCase[]>;
217
+ /**
218
+ * Get test case by ID (latest version)
219
+ */
220
+ getById(id: string): Promise<StorageTestCase | null>;
221
+ /**
222
+ * Get all versions of a test case
223
+ */
224
+ getVersions(id: string): Promise<StorageTestCase[]>;
225
+ /**
226
+ * Get specific version of a test case
227
+ */
228
+ getVersion(id: string, version: number): Promise<StorageTestCase | null>;
229
+ /**
230
+ * Create new test case (starts at version 1)
231
+ */
232
+ create(testCase: Omit<StorageTestCase, "id" | "version" | "createdAt" | "updatedAt">): Promise<StorageTestCase>;
233
+ /**
234
+ * Update test case (creates new version)
235
+ */
236
+ update(id: string, testCase: Partial<StorageTestCase>): Promise<StorageTestCase>;
237
+ /**
238
+ * Delete test case (all versions)
239
+ */
240
+ delete(id: string): Promise<{
241
+ deleted: number;
242
+ }>;
243
+ /**
244
+ * Bulk create test cases
245
+ */
246
+ bulkCreate(testCases: Partial<StorageTestCase>[]): Promise<{
247
+ created: number;
248
+ errors: number;
249
+ testCases: StorageTestCase[];
250
+ }>;
251
+ };
252
+ export declare const benchmarkStorage: {
253
+ /**
254
+ * Get all benchmarks
255
+ * @param options.includeSample - whether to include sample/demo data
256
+ */
257
+ getAll(options?: {
258
+ includeSample?: boolean;
259
+ }): Promise<StorageBenchmark[]>;
260
+ /**
261
+ * Get benchmark by ID
262
+ * @param options.fields - 'polling' for lightweight payload (excludes versions, testCaseSnapshots, headers)
263
+ * @param options.runsSize - max number of runs to return
264
+ * @param options.runsOffset - offset into runs array for pagination
265
+ */
266
+ getById(id: string, options?: {
267
+ fields?: "polling";
268
+ runsSize?: number;
269
+ runsOffset?: number;
270
+ }): Promise<StorageBenchmark | null>;
271
+ /**
272
+ * Create benchmark
273
+ */
274
+ create(benchmark: Omit<StorageBenchmark, "id" | "createdAt">): Promise<StorageBenchmark>;
275
+ /**
276
+ * Update benchmark (for run management)
277
+ */
278
+ update(id: string, benchmark: Partial<StorageBenchmark>): Promise<StorageBenchmark>;
279
+ /**
280
+ * Delete benchmark
281
+ */
282
+ delete(id: string): Promise<{
283
+ deleted: boolean;
284
+ }>;
285
+ /**
286
+ * Bulk create benchmarks
287
+ */
288
+ bulkCreate(benchmarks: Partial<StorageBenchmark>[]): Promise<{
289
+ created: number;
290
+ errors: number;
291
+ }>;
292
+ /**
293
+ * Update benchmark metadata only (name, description)
294
+ */
295
+ updateMetadata(id: string, updates: {
296
+ name?: string;
297
+ description?: string;
298
+ }): Promise<StorageBenchmark>;
299
+ /**
300
+ * Get all versions of a benchmark
301
+ */
302
+ getVersions(id: string): Promise<{
303
+ versions: any[];
304
+ total: number;
305
+ }>;
306
+ /**
307
+ * Get specific version of a benchmark
308
+ */
309
+ getVersion(id: string, version: number): Promise<any>;
310
+ };
311
+ /** @deprecated Use benchmarkStorage instead */
312
+ export declare const experimentStorage: {
313
+ /**
314
+ * Get all benchmarks
315
+ * @param options.includeSample - whether to include sample/demo data
316
+ */
317
+ getAll(options?: {
318
+ includeSample?: boolean;
319
+ }): Promise<StorageBenchmark[]>;
320
+ /**
321
+ * Get benchmark by ID
322
+ * @param options.fields - 'polling' for lightweight payload (excludes versions, testCaseSnapshots, headers)
323
+ * @param options.runsSize - max number of runs to return
324
+ * @param options.runsOffset - offset into runs array for pagination
325
+ */
326
+ getById(id: string, options?: {
327
+ fields?: "polling";
328
+ runsSize?: number;
329
+ runsOffset?: number;
330
+ }): Promise<StorageBenchmark | null>;
331
+ /**
332
+ * Create benchmark
333
+ */
334
+ create(benchmark: Omit<StorageBenchmark, "id" | "createdAt">): Promise<StorageBenchmark>;
335
+ /**
336
+ * Update benchmark (for run management)
337
+ */
338
+ update(id: string, benchmark: Partial<StorageBenchmark>): Promise<StorageBenchmark>;
339
+ /**
340
+ * Delete benchmark
341
+ */
342
+ delete(id: string): Promise<{
343
+ deleted: boolean;
344
+ }>;
345
+ /**
346
+ * Bulk create benchmarks
347
+ */
348
+ bulkCreate(benchmarks: Partial<StorageBenchmark>[]): Promise<{
349
+ created: number;
350
+ errors: number;
351
+ }>;
352
+ /**
353
+ * Update benchmark metadata only (name, description)
354
+ */
355
+ updateMetadata(id: string, updates: {
356
+ name?: string;
357
+ description?: string;
358
+ }): Promise<StorageBenchmark>;
359
+ /**
360
+ * Get all versions of a benchmark
361
+ */
362
+ getVersions(id: string): Promise<{
363
+ versions: any[];
364
+ total: number;
365
+ }>;
366
+ /**
367
+ * Get specific version of a benchmark
368
+ */
369
+ getVersion(id: string, version: number): Promise<any>;
370
+ };
371
+ export declare const runStorage: {
372
+ /**
373
+ * Get all runs with pagination
374
+ */
375
+ getAll(options?: {
376
+ size?: number;
377
+ from?: number;
378
+ _source?: string[];
379
+ }): Promise<{
380
+ runs: StorageRun[];
381
+ total: number;
382
+ size: number;
383
+ from: number;
384
+ }>;
385
+ /**
386
+ * Batch-get runs by ID in one request (server fans out in parallel).
387
+ * Used by the comparison page to load every cell's report at once.
388
+ */
389
+ getByIds(ids: string[], options?: {
390
+ fields?: string[];
391
+ }): Promise<StorageRun[]>;
392
+ /**
393
+ * Get run by ID
394
+ */
395
+ getById(id: string): Promise<StorageRun | null>;
396
+ /**
397
+ * Create run
398
+ */
399
+ create(run: Omit<StorageRun, "id" | "createdAt" | "annotations">, options?: {
400
+ analytics?: boolean;
401
+ }): Promise<StorageRun>;
402
+ /**
403
+ * Delete run
404
+ */
405
+ delete(id: string): Promise<{
406
+ deleted: boolean;
407
+ }>;
408
+ /**
409
+ * Partial update of a run
410
+ * Used for updating trace-mode runs after traces become available
411
+ */
412
+ partialUpdate(id: string, updates: Partial<StorageRun>): Promise<StorageRun>;
413
+ /**
414
+ * Get run counts grouped by test case ID (single aggregation query)
415
+ */
416
+ getCountsByTestCase(): Promise<Record<string, number>>;
417
+ /**
418
+ * Get runs by test case ID
419
+ */
420
+ getByTestCase(testCaseId: string, size?: number, from?: number): Promise<{
421
+ runs: StorageRun[];
422
+ total: number;
423
+ }>;
424
+ /**
425
+ * Get runs by benchmark ID
426
+ */
427
+ getByBenchmark(benchmarkId: string, size?: number): Promise<StorageRun[]>;
428
+ /**
429
+ * Get runs by benchmark run config ID
430
+ */
431
+ getByBenchmarkRun(benchmarkId: string, runId: string, size?: number): Promise<StorageRun[]>;
432
+ /**
433
+ * Get all iterations for a test case in a benchmark
434
+ */
435
+ getIterations(benchmarkId: string, testCaseId: string, benchmarkRunId?: string): Promise<{
436
+ runs: StorageRun[];
437
+ total: number;
438
+ maxIteration: number;
439
+ }>;
440
+ /** @deprecated Use getByBenchmark instead */
441
+ getByExperiment(experimentId: string, size?: number): Promise<StorageRun[]>;
442
+ /** @deprecated Use getByBenchmarkRun instead */
443
+ getByExperimentRun(experimentId: string, runId: string, size?: number): Promise<StorageRun[]>;
444
+ /**
445
+ * Search runs with filters
446
+ */
447
+ search(filters: {
448
+ experimentId?: string;
449
+ testCaseId?: string;
450
+ experimentRunId?: string;
451
+ agentId?: string;
452
+ modelId?: string;
453
+ status?: string;
454
+ passFailStatus?: string;
455
+ tags?: string[];
456
+ dateRange?: {
457
+ start: string;
458
+ end: string;
459
+ };
460
+ size?: number;
461
+ from?: number;
462
+ }): Promise<{
463
+ runs: StorageRun[];
464
+ total: number;
465
+ }>;
466
+ /**
467
+ * Add annotation to run
468
+ */
469
+ addAnnotation(runId: string, annotation: Omit<StorageRunAnnotation, "id" | "createdAt" | "updatedAt">): Promise<StorageRunAnnotation>;
470
+ /**
471
+ * Update annotation
472
+ */
473
+ updateAnnotation(runId: string, annotationId: string, updates: Partial<StorageRunAnnotation>): Promise<StorageRunAnnotation>;
474
+ /**
475
+ * Delete annotation
476
+ */
477
+ deleteAnnotation(runId: string, annotationId: string): Promise<{
478
+ deleted: boolean;
479
+ }>;
480
+ /**
481
+ * Bulk create runs
482
+ */
483
+ bulkCreate(runs: Partial<StorageRun>[]): Promise<{
484
+ created: number;
485
+ errors: number;
486
+ }>;
487
+ };
488
+ export declare const analyticsStorage: {
489
+ /**
490
+ * Query analytics records
491
+ */
492
+ query(filters: {
493
+ experimentId?: string;
494
+ testCaseId?: string;
495
+ agentId?: string;
496
+ modelId?: string;
497
+ passFailStatus?: string;
498
+ size?: number;
499
+ from?: number;
500
+ }): Promise<{
501
+ records: StorageAnalyticsRecord[];
502
+ total: number;
503
+ }>;
504
+ /**
505
+ * Get aggregated metrics
506
+ */
507
+ aggregations(experimentId?: string, groupBy?: string): Promise<{
508
+ aggregations: Array<{
509
+ key: string;
510
+ metrics: {
511
+ avgAccuracy?: number;
512
+ avgFaithfulness?: number;
513
+ avgLatency?: number;
514
+ avgTrajectory?: number;
515
+ };
516
+ passCount: number;
517
+ failCount: number;
518
+ totalRuns: number;
519
+ }>;
520
+ groupBy: string;
521
+ }>;
522
+ /**
523
+ * Complex search with custom filters and aggregations
524
+ */
525
+ search(options: {
526
+ filters?: Record<string, unknown>;
527
+ aggs?: Record<string, unknown>;
528
+ size?: number;
529
+ from?: number;
530
+ }): Promise<{
531
+ records: StorageAnalyticsRecord[];
532
+ total: number;
533
+ aggregations: Record<string, unknown>;
534
+ }>;
535
+ /**
536
+ * Backfill analytics from existing runs
537
+ */
538
+ backfill(): Promise<{
539
+ backfilled: number;
540
+ errors: number;
541
+ total: number;
542
+ }>;
543
+ };
544
+ export declare const opensearchStorage: {
545
+ admin: {
546
+ /**
547
+ * Check storage health/connectivity
548
+ */
549
+ health(): Promise<{
550
+ status: string;
551
+ cluster?: unknown;
552
+ error?: string;
553
+ /** Active storage backend. 'file' means OpenSearch is unavailable / not configured; 'error' means configured-but-unreachable. */
554
+ backend?: "file" | "opensearch" | "error";
555
+ /**
556
+ * Real OpenSearch connectivity, present when OpenSearch is configured but
557
+ * the active backend fell back to file storage. Top-level `status` reflects
558
+ * the active (possibly file) backend, NOT OpenSearch — use this to report
559
+ * true OpenSearch connectivity. Shape mirrors testStorageConnection().
560
+ */
561
+ opensearch?: {
562
+ status: string;
563
+ message?: string;
564
+ latencyMs?: number;
565
+ clusterName?: string;
566
+ clusterStatus?: string;
567
+ };
568
+ }>;
569
+ /**
570
+ * Initialize all indexes with mappings
571
+ */
572
+ initIndexes(): Promise<{
573
+ success: boolean;
574
+ results: Record<string, {
575
+ status: string;
576
+ error?: string;
577
+ }>;
578
+ }>;
579
+ /**
580
+ * Get storage statistics
581
+ */
582
+ stats(): Promise<{
583
+ stats: Record<string, {
584
+ count: number;
585
+ error?: string;
586
+ }>;
587
+ }>;
588
+ };
589
+ testCases: {
590
+ /**
591
+ * Get all test cases (latest versions only)
592
+ * @param options.fields - 'summary' for lightweight list-view payload
593
+ * @param options.size - page size for pagination
594
+ * @param options.after - cursor token for next page
595
+ * @param options.includeSample - whether to include sample/demo data
596
+ */
597
+ getAll(options?: {
598
+ fields?: "summary";
599
+ size?: number;
600
+ after?: string;
601
+ includeSample?: boolean;
602
+ }): Promise<{
603
+ testCases: StorageTestCase[];
604
+ total: number;
605
+ after?: string | null;
606
+ hasMore?: boolean;
607
+ }>;
608
+ /**
609
+ * Get test cases by specific IDs (latest versions only)
610
+ * Used for efficient filtered fetching (e.g., only test cases in a benchmark)
611
+ * @param options.summary - request the lightweight list-view payload
612
+ * (same server-side transform `getAll` uses — see toSummary() in
613
+ * server/routes/storage/testCases.ts) instead of full records.
614
+ */
615
+ getByIds(ids: string[], options?: {
616
+ summary?: boolean;
617
+ }): Promise<StorageTestCase[]>;
618
+ /**
619
+ * Get test case by ID (latest version)
620
+ */
621
+ getById(id: string): Promise<StorageTestCase | null>;
622
+ /**
623
+ * Get all versions of a test case
624
+ */
625
+ getVersions(id: string): Promise<StorageTestCase[]>;
626
+ /**
627
+ * Get specific version of a test case
628
+ */
629
+ getVersion(id: string, version: number): Promise<StorageTestCase | null>;
630
+ /**
631
+ * Create new test case (starts at version 1)
632
+ */
633
+ create(testCase: Omit<StorageTestCase, "id" | "version" | "createdAt" | "updatedAt">): Promise<StorageTestCase>;
634
+ /**
635
+ * Update test case (creates new version)
636
+ */
637
+ update(id: string, testCase: Partial<StorageTestCase>): Promise<StorageTestCase>;
638
+ /**
639
+ * Delete test case (all versions)
640
+ */
641
+ delete(id: string): Promise<{
642
+ deleted: number;
643
+ }>;
644
+ /**
645
+ * Bulk create test cases
646
+ */
647
+ bulkCreate(testCases: Partial<StorageTestCase>[]): Promise<{
648
+ created: number;
649
+ errors: number;
650
+ testCases: StorageTestCase[];
651
+ }>;
652
+ };
653
+ benchmarks: {
654
+ /**
655
+ * Get all benchmarks
656
+ * @param options.includeSample - whether to include sample/demo data
657
+ */
658
+ getAll(options?: {
659
+ includeSample?: boolean;
660
+ }): Promise<StorageBenchmark[]>;
661
+ /**
662
+ * Get benchmark by ID
663
+ * @param options.fields - 'polling' for lightweight payload (excludes versions, testCaseSnapshots, headers)
664
+ * @param options.runsSize - max number of runs to return
665
+ * @param options.runsOffset - offset into runs array for pagination
666
+ */
667
+ getById(id: string, options?: {
668
+ fields?: "polling";
669
+ runsSize?: number;
670
+ runsOffset?: number;
671
+ }): Promise<StorageBenchmark | null>;
672
+ /**
673
+ * Create benchmark
674
+ */
675
+ create(benchmark: Omit<StorageBenchmark, "id" | "createdAt">): Promise<StorageBenchmark>;
676
+ /**
677
+ * Update benchmark (for run management)
678
+ */
679
+ update(id: string, benchmark: Partial<StorageBenchmark>): Promise<StorageBenchmark>;
680
+ /**
681
+ * Delete benchmark
682
+ */
683
+ delete(id: string): Promise<{
684
+ deleted: boolean;
685
+ }>;
686
+ /**
687
+ * Bulk create benchmarks
688
+ */
689
+ bulkCreate(benchmarks: Partial<StorageBenchmark>[]): Promise<{
690
+ created: number;
691
+ errors: number;
692
+ }>;
693
+ /**
694
+ * Update benchmark metadata only (name, description)
695
+ */
696
+ updateMetadata(id: string, updates: {
697
+ name?: string;
698
+ description?: string;
699
+ }): Promise<StorageBenchmark>;
700
+ /**
701
+ * Get all versions of a benchmark
702
+ */
703
+ getVersions(id: string): Promise<{
704
+ versions: any[];
705
+ total: number;
706
+ }>;
707
+ /**
708
+ * Get specific version of a benchmark
709
+ */
710
+ getVersion(id: string, version: number): Promise<any>;
711
+ };
712
+ runs: {
713
+ /**
714
+ * Get all runs with pagination
715
+ */
716
+ getAll(options?: {
717
+ size?: number;
718
+ from?: number;
719
+ _source?: string[];
720
+ }): Promise<{
721
+ runs: StorageRun[];
722
+ total: number;
723
+ size: number;
724
+ from: number;
725
+ }>;
726
+ /**
727
+ * Batch-get runs by ID in one request (server fans out in parallel).
728
+ * Used by the comparison page to load every cell's report at once.
729
+ */
730
+ getByIds(ids: string[], options?: {
731
+ fields?: string[];
732
+ }): Promise<StorageRun[]>;
733
+ /**
734
+ * Get run by ID
735
+ */
736
+ getById(id: string): Promise<StorageRun | null>;
737
+ /**
738
+ * Create run
739
+ */
740
+ create(run: Omit<StorageRun, "id" | "createdAt" | "annotations">, options?: {
741
+ analytics?: boolean;
742
+ }): Promise<StorageRun>;
743
+ /**
744
+ * Delete run
745
+ */
746
+ delete(id: string): Promise<{
747
+ deleted: boolean;
748
+ }>;
749
+ /**
750
+ * Partial update of a run
751
+ * Used for updating trace-mode runs after traces become available
752
+ */
753
+ partialUpdate(id: string, updates: Partial<StorageRun>): Promise<StorageRun>;
754
+ /**
755
+ * Get run counts grouped by test case ID (single aggregation query)
756
+ */
757
+ getCountsByTestCase(): Promise<Record<string, number>>;
758
+ /**
759
+ * Get runs by test case ID
760
+ */
761
+ getByTestCase(testCaseId: string, size?: number, from?: number): Promise<{
762
+ runs: StorageRun[];
763
+ total: number;
764
+ }>;
765
+ /**
766
+ * Get runs by benchmark ID
767
+ */
768
+ getByBenchmark(benchmarkId: string, size?: number): Promise<StorageRun[]>;
769
+ /**
770
+ * Get runs by benchmark run config ID
771
+ */
772
+ getByBenchmarkRun(benchmarkId: string, runId: string, size?: number): Promise<StorageRun[]>;
773
+ /**
774
+ * Get all iterations for a test case in a benchmark
775
+ */
776
+ getIterations(benchmarkId: string, testCaseId: string, benchmarkRunId?: string): Promise<{
777
+ runs: StorageRun[];
778
+ total: number;
779
+ maxIteration: number;
780
+ }>;
781
+ /** @deprecated Use getByBenchmark instead */
782
+ getByExperiment(experimentId: string, size?: number): Promise<StorageRun[]>;
783
+ /** @deprecated Use getByBenchmarkRun instead */
784
+ getByExperimentRun(experimentId: string, runId: string, size?: number): Promise<StorageRun[]>;
785
+ /**
786
+ * Search runs with filters
787
+ */
788
+ search(filters: {
789
+ experimentId?: string;
790
+ testCaseId?: string;
791
+ experimentRunId?: string;
792
+ agentId?: string;
793
+ modelId?: string;
794
+ status?: string;
795
+ passFailStatus?: string;
796
+ tags?: string[];
797
+ dateRange?: {
798
+ start: string;
799
+ end: string;
800
+ };
801
+ size?: number;
802
+ from?: number;
803
+ }): Promise<{
804
+ runs: StorageRun[];
805
+ total: number;
806
+ }>;
807
+ /**
808
+ * Add annotation to run
809
+ */
810
+ addAnnotation(runId: string, annotation: Omit<StorageRunAnnotation, "id" | "createdAt" | "updatedAt">): Promise<StorageRunAnnotation>;
811
+ /**
812
+ * Update annotation
813
+ */
814
+ updateAnnotation(runId: string, annotationId: string, updates: Partial<StorageRunAnnotation>): Promise<StorageRunAnnotation>;
815
+ /**
816
+ * Delete annotation
817
+ */
818
+ deleteAnnotation(runId: string, annotationId: string): Promise<{
819
+ deleted: boolean;
820
+ }>;
821
+ /**
822
+ * Bulk create runs
823
+ */
824
+ bulkCreate(runs: Partial<StorageRun>[]): Promise<{
825
+ created: number;
826
+ errors: number;
827
+ }>;
828
+ };
829
+ analytics: {
830
+ /**
831
+ * Query analytics records
832
+ */
833
+ query(filters: {
834
+ experimentId?: string;
835
+ testCaseId?: string;
836
+ agentId?: string;
837
+ modelId?: string;
838
+ passFailStatus?: string;
839
+ size?: number;
840
+ from?: number;
841
+ }): Promise<{
842
+ records: StorageAnalyticsRecord[];
843
+ total: number;
844
+ }>;
845
+ /**
846
+ * Get aggregated metrics
847
+ */
848
+ aggregations(experimentId?: string, groupBy?: string): Promise<{
849
+ aggregations: Array<{
850
+ key: string;
851
+ metrics: {
852
+ avgAccuracy?: number;
853
+ avgFaithfulness?: number;
854
+ avgLatency?: number;
855
+ avgTrajectory?: number;
856
+ };
857
+ passCount: number;
858
+ failCount: number;
859
+ totalRuns: number;
860
+ }>;
861
+ groupBy: string;
862
+ }>;
863
+ /**
864
+ * Complex search with custom filters and aggregations
865
+ */
866
+ search(options: {
867
+ filters?: Record<string, unknown>;
868
+ aggs?: Record<string, unknown>;
869
+ size?: number;
870
+ from?: number;
871
+ }): Promise<{
872
+ records: StorageAnalyticsRecord[];
873
+ total: number;
874
+ aggregations: Record<string, unknown>;
875
+ }>;
876
+ /**
877
+ * Backfill analytics from existing runs
878
+ */
879
+ backfill(): Promise<{
880
+ backfilled: number;
881
+ errors: number;
882
+ total: number;
883
+ }>;
884
+ };
885
+ /** @deprecated Use benchmarks instead */
886
+ experiments: {
887
+ /**
888
+ * Get all benchmarks
889
+ * @param options.includeSample - whether to include sample/demo data
890
+ */
891
+ getAll(options?: {
892
+ includeSample?: boolean;
893
+ }): Promise<StorageBenchmark[]>;
894
+ /**
895
+ * Get benchmark by ID
896
+ * @param options.fields - 'polling' for lightweight payload (excludes versions, testCaseSnapshots, headers)
897
+ * @param options.runsSize - max number of runs to return
898
+ * @param options.runsOffset - offset into runs array for pagination
899
+ */
900
+ getById(id: string, options?: {
901
+ fields?: "polling";
902
+ runsSize?: number;
903
+ runsOffset?: number;
904
+ }): Promise<StorageBenchmark | null>;
905
+ /**
906
+ * Create benchmark
907
+ */
908
+ create(benchmark: Omit<StorageBenchmark, "id" | "createdAt">): Promise<StorageBenchmark>;
909
+ /**
910
+ * Update benchmark (for run management)
911
+ */
912
+ update(id: string, benchmark: Partial<StorageBenchmark>): Promise<StorageBenchmark>;
913
+ /**
914
+ * Delete benchmark
915
+ */
916
+ delete(id: string): Promise<{
917
+ deleted: boolean;
918
+ }>;
919
+ /**
920
+ * Bulk create benchmarks
921
+ */
922
+ bulkCreate(benchmarks: Partial<StorageBenchmark>[]): Promise<{
923
+ created: number;
924
+ errors: number;
925
+ }>;
926
+ /**
927
+ * Update benchmark metadata only (name, description)
928
+ */
929
+ updateMetadata(id: string, updates: {
930
+ name?: string;
931
+ description?: string;
932
+ }): Promise<StorageBenchmark>;
933
+ /**
934
+ * Get all versions of a benchmark
935
+ */
936
+ getVersions(id: string): Promise<{
937
+ versions: any[];
938
+ total: number;
939
+ }>;
940
+ /**
941
+ * Get specific version of a benchmark
942
+ */
943
+ getVersion(id: string, version: number): Promise<any>;
944
+ };
945
+ };
946
+ export default opensearchStorage;
947
+ //# sourceMappingURL=opensearchClient.d.ts.map