observability-toolkit 2.0.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1285) hide show
  1. package/README.md +166 -398
  2. package/dist/__tests__/find-constant-dedup.test.d.ts +11 -0
  3. package/dist/__tests__/find-constant-dedup.test.d.ts.map +1 -0
  4. package/dist/__tests__/find-constant-dedup.test.js +132 -0
  5. package/dist/__tests__/find-constant-dedup.test.js.map +1 -0
  6. package/dist/backends/backend-schemas.d.ts +309 -0
  7. package/dist/backends/backend-schemas.d.ts.map +1 -0
  8. package/dist/backends/backend-schemas.js +215 -0
  9. package/dist/backends/backend-schemas.js.map +1 -0
  10. package/dist/backends/cloud.d.ts +46 -0
  11. package/dist/backends/cloud.d.ts.map +1 -0
  12. package/dist/backends/cloud.js +520 -0
  13. package/dist/backends/cloud.js.map +1 -0
  14. package/dist/backends/cloud.test.d.ts +2 -0
  15. package/dist/backends/cloud.test.d.ts.map +1 -0
  16. package/dist/backends/cloud.test.js +436 -0
  17. package/dist/backends/cloud.test.js.map +1 -0
  18. package/dist/backends/index.d.ts +659 -386
  19. package/dist/backends/index.d.ts.map +1 -1
  20. package/dist/backends/index.js +318 -41
  21. package/dist/backends/index.js.map +1 -1
  22. package/dist/backends/index.test.js +578 -57
  23. package/dist/backends/index.test.js.map +1 -1
  24. package/dist/backends/local-jsonl-boolean-search.test.js +8 -7
  25. package/dist/backends/local-jsonl-boolean-search.test.js.map +1 -1
  26. package/dist/backends/local-jsonl-cache.test.js +33 -31
  27. package/dist/backends/local-jsonl-cache.test.js.map +1 -1
  28. package/dist/backends/local-jsonl-circuit-breaker.test.js +9 -7
  29. package/dist/backends/local-jsonl-circuit-breaker.test.js.map +1 -1
  30. package/dist/backends/local-jsonl-export.test.js +73 -58
  31. package/dist/backends/local-jsonl-export.test.js.map +1 -1
  32. package/dist/backends/local-jsonl-index.test.js +52 -50
  33. package/dist/backends/local-jsonl-index.test.js.map +1 -1
  34. package/dist/backends/local-jsonl-logs.test.js +47 -31
  35. package/dist/backends/local-jsonl-logs.test.js.map +1 -1
  36. package/dist/backends/local-jsonl-metrics.test.js +85 -82
  37. package/dist/backends/local-jsonl-metrics.test.js.map +1 -1
  38. package/dist/backends/local-jsonl-otlp-unwrap.test.d.ts +2 -0
  39. package/dist/backends/local-jsonl-otlp-unwrap.test.d.ts.map +1 -0
  40. package/dist/backends/local-jsonl-otlp-unwrap.test.js +602 -0
  41. package/dist/backends/local-jsonl-otlp-unwrap.test.js.map +1 -0
  42. package/dist/backends/local-jsonl-traces.test.js +161 -147
  43. package/dist/backends/local-jsonl-traces.test.js.map +1 -1
  44. package/dist/backends/local-jsonl.d.ts +37 -8
  45. package/dist/backends/local-jsonl.d.ts.map +1 -1
  46. package/dist/backends/local-jsonl.js +1088 -241
  47. package/dist/backends/local-jsonl.js.map +1 -1
  48. package/dist/backends/shared.d.ts +9 -0
  49. package/dist/backends/shared.d.ts.map +1 -0
  50. package/dist/backends/shared.js +9 -0
  51. package/dist/backends/shared.js.map +1 -0
  52. package/dist/generated/opentelemetry/proto/collector/logs/v1/logs_service_pb.d.ts +40 -0
  53. package/dist/generated/opentelemetry/proto/collector/logs/v1/logs_service_pb.d.ts.map +1 -0
  54. package/dist/generated/opentelemetry/proto/collector/logs/v1/logs_service_pb.js +27 -0
  55. package/dist/generated/opentelemetry/proto/collector/logs/v1/logs_service_pb.js.map +1 -0
  56. package/dist/generated/opentelemetry/proto/collector/metrics/v1/metrics_service_pb.d.ts +106 -0
  57. package/dist/generated/opentelemetry/proto/collector/metrics/v1/metrics_service_pb.d.ts.map +1 -0
  58. package/dist/generated/opentelemetry/proto/collector/metrics/v1/metrics_service_pb.js +43 -0
  59. package/dist/generated/opentelemetry/proto/collector/metrics/v1/metrics_service_pb.js.map +1 -0
  60. package/dist/generated/opentelemetry/proto/collector/profiles/v1development/profiles_service_pb.d.ts +111 -0
  61. package/dist/generated/opentelemetry/proto/collector/profiles/v1development/profiles_service_pb.d.ts.map +1 -0
  62. package/dist/generated/opentelemetry/proto/collector/profiles/v1development/profiles_service_pb.js +42 -0
  63. package/dist/generated/opentelemetry/proto/collector/profiles/v1development/profiles_service_pb.js.map +1 -0
  64. package/dist/generated/opentelemetry/proto/collector/trace/v1/trace_service_pb.d.ts +106 -0
  65. package/dist/generated/opentelemetry/proto/collector/trace/v1/trace_service_pb.d.ts.map +1 -0
  66. package/dist/generated/opentelemetry/proto/collector/trace/v1/trace_service_pb.js +43 -0
  67. package/dist/generated/opentelemetry/proto/collector/trace/v1/trace_service_pb.js.map +1 -0
  68. package/dist/generated/opentelemetry/proto/common/v1/common_pb.d.ts +243 -0
  69. package/dist/generated/opentelemetry/proto/common/v1/common_pb.d.ts.map +1 -0
  70. package/dist/generated/opentelemetry/proto/common/v1/common_pb.js +49 -0
  71. package/dist/generated/opentelemetry/proto/common/v1/common_pb.js.map +1 -0
  72. package/dist/generated/opentelemetry/proto/logs/v1/logs_pb.d.ts +90 -0
  73. package/dist/generated/opentelemetry/proto/logs/v1/logs_pb.d.ts.map +1 -0
  74. package/dist/generated/opentelemetry/proto/logs/v1/logs_pb.js +66 -0
  75. package/dist/generated/opentelemetry/proto/logs/v1/logs_pb.js.map +1 -0
  76. package/dist/generated/opentelemetry/proto/metrics/v1/metrics_pb.d.ts +1134 -0
  77. package/dist/generated/opentelemetry/proto/metrics/v1/metrics_pb.d.ts.map +1 -0
  78. package/dist/generated/opentelemetry/proto/metrics/v1/metrics_pb.js +223 -0
  79. package/dist/generated/opentelemetry/proto/metrics/v1/metrics_pb.js.map +1 -0
  80. package/dist/generated/opentelemetry/proto/profiles/v1development/profiles_pb.d.ts +678 -0
  81. package/dist/generated/opentelemetry/proto/profiles/v1development/profiles_pb.d.ts.map +1 -0
  82. package/dist/generated/opentelemetry/proto/profiles/v1development/profiles_pb.js +107 -0
  83. package/dist/generated/opentelemetry/proto/profiles/v1development/profiles_pb.js.map +1 -0
  84. package/dist/generated/opentelemetry/proto/resource/v1/resource_pb.d.ts +46 -0
  85. package/dist/generated/opentelemetry/proto/resource/v1/resource_pb.d.ts.map +1 -0
  86. package/dist/generated/opentelemetry/proto/resource/v1/resource_pb.js +25 -0
  87. package/dist/generated/opentelemetry/proto/resource/v1/resource_pb.js.map +1 -0
  88. package/dist/generated/opentelemetry/proto/trace/v1/trace_pb.d.ts +569 -0
  89. package/dist/generated/opentelemetry/proto/trace/v1/trace_pb.d.ts.map +1 -0
  90. package/dist/generated/opentelemetry/proto/trace/v1/trace_pb.js +195 -0
  91. package/dist/generated/opentelemetry/proto/trace/v1/trace_pb.js.map +1 -0
  92. package/dist/lib/agent-judge/agent-as-judge.d.ts +157 -0
  93. package/dist/lib/agent-judge/agent-as-judge.d.ts.map +1 -0
  94. package/dist/lib/agent-judge/agent-as-judge.js +137 -0
  95. package/dist/lib/agent-judge/agent-as-judge.js.map +1 -0
  96. package/dist/lib/agent-judge/agent-as-judge.test.d.ts.map +1 -0
  97. package/dist/lib/agent-judge/agent-as-judge.test.js +839 -0
  98. package/dist/lib/agent-judge/agent-as-judge.test.js.map +1 -0
  99. package/dist/lib/agent-judge/agent-eval-metrics.d.ts +293 -0
  100. package/dist/lib/agent-judge/agent-eval-metrics.d.ts.map +1 -0
  101. package/dist/lib/agent-judge/agent-eval-metrics.js +715 -0
  102. package/dist/lib/agent-judge/agent-eval-metrics.js.map +1 -0
  103. package/dist/lib/agent-judge/agent-eval-metrics.test.d.ts +5 -0
  104. package/dist/lib/agent-judge/agent-eval-metrics.test.d.ts.map +1 -0
  105. package/dist/lib/agent-judge/agent-eval-metrics.test.js +676 -0
  106. package/dist/lib/agent-judge/agent-eval-metrics.test.js.map +1 -0
  107. package/dist/lib/agent-judge/agent-judge-classes.d.ts +95 -0
  108. package/dist/lib/agent-judge/agent-judge-classes.d.ts.map +1 -0
  109. package/dist/lib/agent-judge/agent-judge-classes.js +222 -0
  110. package/dist/lib/agent-judge/agent-judge-classes.js.map +1 -0
  111. package/dist/lib/agent-judge/agent-judge-classes.test.d.ts +6 -0
  112. package/dist/lib/agent-judge/agent-judge-classes.test.d.ts.map +1 -0
  113. package/dist/lib/agent-judge/agent-judge-classes.test.js +271 -0
  114. package/dist/lib/agent-judge/agent-judge-classes.test.js.map +1 -0
  115. package/dist/lib/agent-judge/agent-judge-consensus.d.ts +58 -0
  116. package/dist/lib/agent-judge/agent-judge-consensus.d.ts.map +1 -0
  117. package/dist/lib/agent-judge/agent-judge-consensus.js +149 -0
  118. package/dist/lib/agent-judge/agent-judge-consensus.js.map +1 -0
  119. package/dist/lib/agent-judge/agent-judge-consensus.test.d.ts +2 -0
  120. package/dist/lib/agent-judge/agent-judge-consensus.test.d.ts.map +1 -0
  121. package/dist/lib/agent-judge/agent-judge-consensus.test.js +170 -0
  122. package/dist/lib/agent-judge/agent-judge-consensus.test.js.map +1 -0
  123. package/dist/lib/agent-judge/agent-judge-verification.d.ts +89 -0
  124. package/dist/lib/agent-judge/agent-judge-verification.d.ts.map +1 -0
  125. package/dist/lib/agent-judge/agent-judge-verification.js +235 -0
  126. package/dist/lib/agent-judge/agent-judge-verification.js.map +1 -0
  127. package/dist/lib/agent-judge/agent-judge-verification.test.d.ts +5 -0
  128. package/dist/lib/agent-judge/agent-judge-verification.test.d.ts.map +1 -0
  129. package/dist/lib/agent-judge/agent-judge-verification.test.js +399 -0
  130. package/dist/lib/agent-judge/agent-judge-verification.test.js.map +1 -0
  131. package/dist/lib/audit/agent-auditor-scoring.d.ts +167 -0
  132. package/dist/lib/audit/agent-auditor-scoring.d.ts.map +1 -0
  133. package/dist/lib/audit/agent-auditor-scoring.js +338 -0
  134. package/dist/lib/audit/agent-auditor-scoring.js.map +1 -0
  135. package/dist/lib/audit/agent-auditor-scoring.test.d.ts +2 -0
  136. package/dist/lib/audit/agent-auditor-scoring.test.d.ts.map +1 -0
  137. package/dist/lib/audit/agent-auditor-scoring.test.js +576 -0
  138. package/dist/lib/audit/agent-auditor-scoring.test.js.map +1 -0
  139. package/dist/lib/audit/audit-record.d.ts +139 -0
  140. package/dist/lib/audit/audit-record.d.ts.map +1 -0
  141. package/dist/lib/audit/audit-record.js +288 -0
  142. package/dist/lib/audit/audit-record.js.map +1 -0
  143. package/dist/lib/audit/audit-record.test.d.ts +5 -0
  144. package/dist/lib/audit/audit-record.test.d.ts.map +1 -0
  145. package/dist/lib/audit/audit-record.test.js +258 -0
  146. package/dist/lib/audit/audit-record.test.js.map +1 -0
  147. package/dist/lib/audit/audit-scoring-constants.d.ts +57 -0
  148. package/dist/lib/audit/audit-scoring-constants.d.ts.map +1 -0
  149. package/dist/lib/audit/audit-scoring-constants.js +59 -0
  150. package/dist/lib/audit/audit-scoring-constants.js.map +1 -0
  151. package/dist/lib/audit/compliance-report.d.ts +125 -0
  152. package/dist/lib/audit/compliance-report.d.ts.map +1 -0
  153. package/dist/lib/audit/compliance-report.js +205 -0
  154. package/dist/lib/audit/compliance-report.js.map +1 -0
  155. package/dist/lib/audit/compliance-report.test.d.ts +5 -0
  156. package/dist/lib/audit/compliance-report.test.d.ts.map +1 -0
  157. package/dist/lib/audit/compliance-report.test.js +290 -0
  158. package/dist/lib/audit/compliance-report.test.js.map +1 -0
  159. package/dist/lib/audit/retention-guard.d.ts +41 -0
  160. package/dist/lib/audit/retention-guard.d.ts.map +1 -0
  161. package/dist/lib/audit/retention-guard.js +103 -0
  162. package/dist/lib/audit/retention-guard.js.map +1 -0
  163. package/dist/lib/audit/retention-guard.test.d.ts +5 -0
  164. package/dist/lib/audit/retention-guard.test.d.ts.map +1 -0
  165. package/dist/lib/audit/retention-guard.test.js +109 -0
  166. package/dist/lib/audit/retention-guard.test.js.map +1 -0
  167. package/dist/lib/audit/skill-auditor-scoring.d.ts +69 -0
  168. package/dist/lib/audit/skill-auditor-scoring.d.ts.map +1 -0
  169. package/dist/lib/audit/skill-auditor-scoring.js +149 -0
  170. package/dist/lib/audit/skill-auditor-scoring.js.map +1 -0
  171. package/dist/lib/audit/skill-auditor-scoring.test.d.ts +2 -0
  172. package/dist/lib/audit/skill-auditor-scoring.test.d.ts.map +1 -0
  173. package/dist/lib/audit/skill-auditor-scoring.test.js +369 -0
  174. package/dist/lib/audit/skill-auditor-scoring.test.js.map +1 -0
  175. package/dist/lib/audit/verification-events.d.ts +119 -0
  176. package/dist/lib/audit/verification-events.d.ts.map +1 -0
  177. package/dist/lib/audit/verification-events.js +175 -0
  178. package/dist/lib/audit/verification-events.js.map +1 -0
  179. package/dist/lib/audit/verification-events.test.d.ts.map +1 -0
  180. package/dist/lib/audit/verification-events.test.js +197 -0
  181. package/dist/lib/audit/verification-events.test.js.map +1 -0
  182. package/dist/lib/core/constants-models.d.ts +90 -0
  183. package/dist/lib/core/constants-models.d.ts.map +1 -0
  184. package/dist/lib/core/constants-models.js +208 -0
  185. package/dist/lib/core/constants-models.js.map +1 -0
  186. package/dist/lib/core/constants-otel.d.ts +68 -0
  187. package/dist/lib/core/constants-otel.d.ts.map +1 -0
  188. package/dist/lib/core/constants-otel.js +128 -0
  189. package/dist/lib/core/constants-otel.js.map +1 -0
  190. package/dist/lib/core/constants-symlink.test.d.ts.map +1 -0
  191. package/dist/lib/core/constants-symlink.test.js +358 -0
  192. package/dist/lib/core/constants-symlink.test.js.map +1 -0
  193. package/dist/lib/core/constants-telemetry.d.ts +21 -0
  194. package/dist/lib/core/constants-telemetry.d.ts.map +1 -0
  195. package/dist/lib/core/constants-telemetry.js +162 -0
  196. package/dist/lib/core/constants-telemetry.js.map +1 -0
  197. package/dist/lib/core/constants.d.ts +152 -0
  198. package/dist/lib/core/constants.d.ts.map +1 -0
  199. package/dist/lib/core/constants.js +223 -0
  200. package/dist/lib/core/constants.js.map +1 -0
  201. package/dist/lib/core/constants.test.d.ts.map +1 -0
  202. package/dist/lib/core/constants.test.js +833 -0
  203. package/dist/lib/core/constants.test.js.map +1 -0
  204. package/dist/lib/core/doc-sync.test.d.ts +9 -0
  205. package/dist/lib/core/doc-sync.test.d.ts.map +1 -0
  206. package/dist/lib/core/doc-sync.test.js +159 -0
  207. package/dist/lib/core/doc-sync.test.js.map +1 -0
  208. package/dist/lib/core/edge-cases.test.d.ts.map +1 -0
  209. package/dist/lib/core/edge-cases.test.js +637 -0
  210. package/dist/lib/core/edge-cases.test.js.map +1 -0
  211. package/dist/lib/core/file-utils.d.ts +360 -0
  212. package/dist/lib/core/file-utils.d.ts.map +1 -0
  213. package/dist/lib/core/file-utils.js +890 -0
  214. package/dist/lib/core/file-utils.js.map +1 -0
  215. package/dist/lib/core/file-utils.test-constants.d.ts +38 -0
  216. package/dist/lib/core/file-utils.test-constants.d.ts.map +1 -0
  217. package/dist/lib/core/file-utils.test-constants.js +40 -0
  218. package/dist/lib/core/file-utils.test-constants.js.map +1 -0
  219. package/dist/lib/core/file-utils.test.d.ts.map +1 -0
  220. package/dist/lib/core/file-utils.test.js +1329 -0
  221. package/dist/lib/core/file-utils.test.js.map +1 -0
  222. package/dist/lib/core/input-validator.d.ts +125 -0
  223. package/dist/lib/core/input-validator.d.ts.map +1 -0
  224. package/dist/lib/core/input-validator.fuzz.test.d.ts.map +1 -0
  225. package/dist/lib/core/input-validator.fuzz.test.js +302 -0
  226. package/dist/lib/core/input-validator.fuzz.test.js.map +1 -0
  227. package/dist/lib/core/input-validator.js +348 -0
  228. package/dist/lib/core/input-validator.js.map +1 -0
  229. package/dist/lib/core/input-validator.test.d.ts.map +1 -0
  230. package/dist/lib/core/input-validator.test.js +465 -0
  231. package/dist/lib/core/input-validator.test.js.map +1 -0
  232. package/dist/lib/core/logger.d.ts +32 -0
  233. package/dist/lib/core/logger.d.ts.map +1 -0
  234. package/dist/lib/core/logger.js +104 -0
  235. package/dist/lib/core/logger.js.map +1 -0
  236. package/dist/lib/core/logger.test.d.ts.map +1 -0
  237. package/dist/lib/core/logger.test.js.map +1 -0
  238. package/dist/lib/core/schema-types.d.ts +37 -0
  239. package/dist/lib/core/schema-types.d.ts.map +1 -0
  240. package/dist/lib/core/schema-types.js +29 -0
  241. package/dist/lib/core/schema-types.js.map +1 -0
  242. package/dist/lib/core/server-utils.d.ts +98 -0
  243. package/dist/lib/core/server-utils.d.ts.map +1 -0
  244. package/dist/lib/core/server-utils.js +193 -0
  245. package/dist/lib/core/server-utils.js.map +1 -0
  246. package/dist/lib/core/shared-schemas.d.ts +301 -0
  247. package/dist/lib/core/shared-schemas.d.ts.map +1 -0
  248. package/dist/lib/core/shared-schemas.js +222 -0
  249. package/dist/lib/core/shared-schemas.js.map +1 -0
  250. package/dist/lib/core/shared-schemas.test.d.ts.map +1 -0
  251. package/dist/lib/core/shared-schemas.test.js +136 -0
  252. package/dist/lib/core/shared-schemas.test.js.map +1 -0
  253. package/dist/lib/core/units.d.ts +67 -0
  254. package/dist/lib/core/units.d.ts.map +1 -0
  255. package/dist/lib/core/units.js +88 -0
  256. package/dist/lib/core/units.js.map +1 -0
  257. package/dist/lib/cost/cost-estimation.d.ts +264 -0
  258. package/dist/lib/cost/cost-estimation.d.ts.map +1 -0
  259. package/dist/lib/cost/cost-estimation.js +541 -0
  260. package/dist/lib/cost/cost-estimation.js.map +1 -0
  261. package/dist/lib/cost/cost-estimation.test.d.ts +5 -0
  262. package/dist/lib/cost/cost-estimation.test.d.ts.map +1 -0
  263. package/dist/lib/cost/cost-estimation.test.js +701 -0
  264. package/dist/lib/cost/cost-estimation.test.js.map +1 -0
  265. package/dist/lib/cost/pricing-cache.d.ts +59 -0
  266. package/dist/lib/cost/pricing-cache.d.ts.map +1 -0
  267. package/dist/lib/cost/pricing-cache.js +120 -0
  268. package/dist/lib/cost/pricing-cache.js.map +1 -0
  269. package/dist/lib/cost/pricing-cache.test.d.ts +5 -0
  270. package/dist/lib/cost/pricing-cache.test.d.ts.map +1 -0
  271. package/dist/lib/cost/pricing-cache.test.js +176 -0
  272. package/dist/lib/cost/pricing-cache.test.js.map +1 -0
  273. package/dist/lib/dashboard-file-utils.d.ts +35 -0
  274. package/dist/lib/dashboard-file-utils.d.ts.map +1 -0
  275. package/dist/lib/dashboard-file-utils.js +94 -0
  276. package/dist/lib/dashboard-file-utils.js.map +1 -0
  277. package/dist/lib/errors/error-sanitizer.d.ts +62 -0
  278. package/dist/lib/errors/error-sanitizer.d.ts.map +1 -0
  279. package/dist/lib/errors/error-sanitizer.js +235 -0
  280. package/dist/lib/errors/error-sanitizer.js.map +1 -0
  281. package/dist/lib/errors/error-sanitizer.test.d.ts.map +1 -0
  282. package/dist/lib/errors/error-sanitizer.test.js +534 -0
  283. package/dist/lib/errors/error-sanitizer.test.js.map +1 -0
  284. package/dist/lib/errors/error-types.d.ts +59 -0
  285. package/dist/lib/errors/error-types.d.ts.map +1 -0
  286. package/dist/lib/errors/error-types.js +187 -0
  287. package/dist/lib/errors/error-types.js.map +1 -0
  288. package/dist/lib/errors/error-types.test.d.ts.map +1 -0
  289. package/dist/lib/errors/error-types.test.js +246 -0
  290. package/dist/lib/errors/error-types.test.js.map +1 -0
  291. package/dist/lib/errors/query-sanitizer.d.ts.map +1 -0
  292. package/dist/lib/errors/query-sanitizer.js +269 -0
  293. package/dist/lib/errors/query-sanitizer.js.map +1 -0
  294. package/dist/lib/errors/query-sanitizer.test.d.ts.map +1 -0
  295. package/dist/lib/errors/query-sanitizer.test.js +403 -0
  296. package/dist/lib/errors/query-sanitizer.test.js.map +1 -0
  297. package/dist/lib/exports/confident-export.d.ts +105 -0
  298. package/dist/lib/exports/confident-export.d.ts.map +1 -0
  299. package/dist/lib/exports/confident-export.js +385 -0
  300. package/dist/lib/exports/confident-export.js.map +1 -0
  301. package/dist/lib/exports/confident-export.test.d.ts.map +1 -0
  302. package/dist/lib/exports/confident-export.test.js +848 -0
  303. package/dist/lib/exports/confident-export.test.js.map +1 -0
  304. package/dist/lib/exports/datadog-export.d.ts +200 -0
  305. package/dist/lib/exports/datadog-export.d.ts.map +1 -0
  306. package/dist/lib/exports/datadog-export.js +488 -0
  307. package/dist/lib/exports/datadog-export.js.map +1 -0
  308. package/dist/lib/exports/datadog-export.test.d.ts +2 -0
  309. package/dist/lib/exports/datadog-export.test.d.ts.map +1 -0
  310. package/dist/lib/exports/datadog-export.test.js +890 -0
  311. package/dist/lib/exports/datadog-export.test.js.map +1 -0
  312. package/dist/lib/exports/export-config-schemas.d.ts +67 -0
  313. package/dist/lib/exports/export-config-schemas.d.ts.map +1 -0
  314. package/dist/lib/exports/export-config-schemas.js +120 -0
  315. package/dist/lib/exports/export-config-schemas.js.map +1 -0
  316. package/dist/lib/exports/export-config-schemas.test.d.ts +8 -0
  317. package/dist/lib/exports/export-config-schemas.test.d.ts.map +1 -0
  318. package/dist/lib/exports/export-config-schemas.test.js +503 -0
  319. package/dist/lib/exports/export-config-schemas.test.js.map +1 -0
  320. package/dist/lib/exports/export-utils.d.ts +127 -0
  321. package/dist/lib/exports/export-utils.d.ts.map +1 -0
  322. package/dist/lib/exports/export-utils.js +303 -0
  323. package/dist/lib/exports/export-utils.js.map +1 -0
  324. package/dist/lib/exports/export-utils.test.d.ts.map +1 -0
  325. package/dist/lib/exports/export-utils.test.js +344 -0
  326. package/dist/lib/exports/export-utils.test.js.map +1 -0
  327. package/dist/lib/exports/langfuse-export.d.ts +129 -0
  328. package/dist/lib/exports/langfuse-export.d.ts.map +1 -0
  329. package/dist/lib/exports/langfuse-export.js +370 -0
  330. package/dist/lib/exports/langfuse-export.js.map +1 -0
  331. package/dist/lib/exports/langfuse-export.test.d.ts.map +1 -0
  332. package/dist/lib/exports/langfuse-export.test.js +1020 -0
  333. package/dist/lib/exports/langfuse-export.test.js.map +1 -0
  334. package/dist/lib/exports/otlp-export.d.ts +179 -0
  335. package/dist/lib/exports/otlp-export.d.ts.map +1 -0
  336. package/dist/lib/exports/otlp-export.js +397 -0
  337. package/dist/lib/exports/otlp-export.js.map +1 -0
  338. package/dist/lib/exports/otlp-format-converter.d.ts +70 -0
  339. package/dist/lib/exports/otlp-format-converter.d.ts.map +1 -0
  340. package/dist/lib/exports/otlp-format-converter.js +401 -0
  341. package/dist/lib/exports/otlp-format-converter.js.map +1 -0
  342. package/dist/lib/exports/otlp-proto-encode.d.ts +53 -0
  343. package/dist/lib/exports/otlp-proto-encode.d.ts.map +1 -0
  344. package/dist/lib/exports/otlp-proto-encode.js +165 -0
  345. package/dist/lib/exports/otlp-proto-encode.js.map +1 -0
  346. package/dist/lib/exports/otlp-proto-encode.test.d.ts +7 -0
  347. package/dist/lib/exports/otlp-proto-encode.test.d.ts.map +1 -0
  348. package/dist/lib/exports/otlp-proto-encode.test.js +997 -0
  349. package/dist/lib/exports/otlp-proto-encode.test.js.map +1 -0
  350. package/dist/lib/exports/phoenix-export.d.ts +119 -0
  351. package/dist/lib/exports/phoenix-export.d.ts.map +1 -0
  352. package/dist/lib/exports/phoenix-export.js +448 -0
  353. package/dist/lib/exports/phoenix-export.js.map +1 -0
  354. package/dist/lib/exports/phoenix-export.test.d.ts.map +1 -0
  355. package/dist/lib/exports/phoenix-export.test.js +816 -0
  356. package/dist/lib/exports/phoenix-export.test.js.map +1 -0
  357. package/dist/lib/index.d.ts +16 -0
  358. package/dist/lib/index.d.ts.map +1 -0
  359. package/dist/lib/index.js +31 -0
  360. package/dist/lib/index.js.map +1 -0
  361. package/dist/lib/judge/evaluation-hooks-schemas.d.ts +186 -0
  362. package/dist/lib/judge/evaluation-hooks-schemas.d.ts.map +1 -0
  363. package/dist/lib/judge/evaluation-hooks-schemas.js +125 -0
  364. package/dist/lib/judge/evaluation-hooks-schemas.js.map +1 -0
  365. package/dist/lib/judge/evaluation-hooks.d.ts +88 -0
  366. package/dist/lib/judge/evaluation-hooks.d.ts.map +1 -0
  367. package/dist/lib/judge/evaluation-hooks.js +658 -0
  368. package/dist/lib/judge/evaluation-hooks.js.map +1 -0
  369. package/dist/lib/judge/evaluation-hooks.test.d.ts.map +1 -0
  370. package/dist/lib/judge/evaluation-hooks.test.js +934 -0
  371. package/dist/lib/judge/evaluation-hooks.test.js.map +1 -0
  372. package/dist/lib/judge/llm-as-judge.d.ts +138 -0
  373. package/dist/lib/judge/llm-as-judge.d.ts.map +1 -0
  374. package/dist/lib/judge/llm-as-judge.js +103 -0
  375. package/dist/lib/judge/llm-as-judge.js.map +1 -0
  376. package/dist/lib/judge/llm-as-judge.test.d.ts.map +1 -0
  377. package/dist/lib/judge/llm-as-judge.test.js +2179 -0
  378. package/dist/lib/judge/llm-as-judge.test.js.map +1 -0
  379. package/dist/lib/judge/llm-judge-bias.d.ts +44 -0
  380. package/dist/lib/judge/llm-judge-bias.d.ts.map +1 -0
  381. package/dist/lib/judge/llm-judge-bias.js +130 -0
  382. package/dist/lib/judge/llm-judge-bias.js.map +1 -0
  383. package/dist/lib/judge/llm-judge-bias.test.d.ts +2 -0
  384. package/dist/lib/judge/llm-judge-bias.test.d.ts.map +1 -0
  385. package/dist/lib/judge/llm-judge-bias.test.js +380 -0
  386. package/dist/lib/judge/llm-judge-bias.test.js.map +1 -0
  387. package/dist/lib/judge/llm-judge-code.d.ts +99 -0
  388. package/dist/lib/judge/llm-judge-code.d.ts.map +1 -0
  389. package/dist/lib/judge/llm-judge-code.js +261 -0
  390. package/dist/lib/judge/llm-judge-code.js.map +1 -0
  391. package/dist/lib/judge/llm-judge-code.test.d.ts +2 -0
  392. package/dist/lib/judge/llm-judge-code.test.d.ts.map +1 -0
  393. package/dist/lib/judge/llm-judge-code.test.js +981 -0
  394. package/dist/lib/judge/llm-judge-code.test.js.map +1 -0
  395. package/dist/lib/judge/llm-judge-config.d.ts +241 -0
  396. package/dist/lib/judge/llm-judge-config.d.ts.map +1 -0
  397. package/dist/lib/judge/llm-judge-config.js +390 -0
  398. package/dist/lib/judge/llm-judge-config.js.map +1 -0
  399. package/dist/lib/judge/llm-judge-config.test.d.ts +5 -0
  400. package/dist/lib/judge/llm-judge-config.test.d.ts.map +1 -0
  401. package/dist/lib/judge/llm-judge-config.test.js +392 -0
  402. package/dist/lib/judge/llm-judge-config.test.js.map +1 -0
  403. package/dist/lib/judge/llm-judge-constants.d.ts +111 -0
  404. package/dist/lib/judge/llm-judge-constants.d.ts.map +1 -0
  405. package/dist/lib/judge/llm-judge-constants.js +150 -0
  406. package/dist/lib/judge/llm-judge-constants.js.map +1 -0
  407. package/dist/lib/judge/llm-judge-dag.d.ts +57 -0
  408. package/dist/lib/judge/llm-judge-dag.d.ts.map +1 -0
  409. package/dist/lib/judge/llm-judge-dag.js +217 -0
  410. package/dist/lib/judge/llm-judge-dag.js.map +1 -0
  411. package/dist/lib/judge/llm-judge-dag.test.d.ts +8 -0
  412. package/dist/lib/judge/llm-judge-dag.test.d.ts.map +1 -0
  413. package/dist/lib/judge/llm-judge-dag.test.js +973 -0
  414. package/dist/lib/judge/llm-judge-dag.test.js.map +1 -0
  415. package/dist/lib/judge/llm-judge-domain.d.ts +42 -0
  416. package/dist/lib/judge/llm-judge-domain.d.ts.map +1 -0
  417. package/dist/lib/judge/llm-judge-domain.js +167 -0
  418. package/dist/lib/judge/llm-judge-domain.js.map +1 -0
  419. package/dist/lib/judge/llm-judge-domain.test.d.ts +6 -0
  420. package/dist/lib/judge/llm-judge-domain.test.d.ts.map +1 -0
  421. package/dist/lib/judge/llm-judge-domain.test.js +337 -0
  422. package/dist/lib/judge/llm-judge-domain.test.js.map +1 -0
  423. package/dist/lib/judge/llm-judge-geval.d.ts +42 -0
  424. package/dist/lib/judge/llm-judge-geval.d.ts.map +1 -0
  425. package/dist/lib/judge/llm-judge-geval.js +213 -0
  426. package/dist/lib/judge/llm-judge-geval.js.map +1 -0
  427. package/dist/lib/judge/llm-judge-geval.test.d.ts +2 -0
  428. package/dist/lib/judge/llm-judge-geval.test.d.ts.map +1 -0
  429. package/dist/lib/judge/llm-judge-geval.test.js +556 -0
  430. package/dist/lib/judge/llm-judge-geval.test.js.map +1 -0
  431. package/dist/lib/judge/llm-judge-otel.test.d.ts +9 -0
  432. package/dist/lib/judge/llm-judge-otel.test.d.ts.map +1 -0
  433. package/dist/lib/judge/llm-judge-otel.test.js +91 -0
  434. package/dist/lib/judge/llm-judge-otel.test.js.map +1 -0
  435. package/dist/lib/judge/llm-judge-qag.d.ts +38 -0
  436. package/dist/lib/judge/llm-judge-qag.d.ts.map +1 -0
  437. package/dist/lib/judge/llm-judge-qag.js +205 -0
  438. package/dist/lib/judge/llm-judge-qag.js.map +1 -0
  439. package/dist/lib/judge/llm-judge-qag.test.d.ts +2 -0
  440. package/dist/lib/judge/llm-judge-qag.test.d.ts.map +1 -0
  441. package/dist/lib/judge/llm-judge-qag.test.js +386 -0
  442. package/dist/lib/judge/llm-judge-qag.test.js.map +1 -0
  443. package/dist/lib/judge/llm-judge-resilience.d.ts +74 -0
  444. package/dist/lib/judge/llm-judge-resilience.d.ts.map +1 -0
  445. package/dist/lib/judge/llm-judge-resilience.js +146 -0
  446. package/dist/lib/judge/llm-judge-resilience.js.map +1 -0
  447. package/dist/lib/judge/llm-judge-resilience.test.d.ts +2 -0
  448. package/dist/lib/judge/llm-judge-resilience.test.d.ts.map +1 -0
  449. package/dist/lib/judge/llm-judge-resilience.test.js +353 -0
  450. package/dist/lib/judge/llm-judge-resilience.test.js.map +1 -0
  451. package/dist/lib/judge/llm-judge-security.d.ts +106 -0
  452. package/dist/lib/judge/llm-judge-security.d.ts.map +1 -0
  453. package/dist/lib/judge/llm-judge-security.js +314 -0
  454. package/dist/lib/judge/llm-judge-security.js.map +1 -0
  455. package/dist/lib/judge/llm-judge-security.test.d.ts +2 -0
  456. package/dist/lib/judge/llm-judge-security.test.d.ts.map +1 -0
  457. package/dist/lib/judge/llm-judge-security.test.js +1011 -0
  458. package/dist/lib/judge/llm-judge-security.test.js.map +1 -0
  459. package/dist/lib/observability/context-accumulator.d.ts +32 -0
  460. package/dist/lib/observability/context-accumulator.d.ts.map +1 -0
  461. package/dist/lib/observability/context-accumulator.js +87 -0
  462. package/dist/lib/observability/context-accumulator.js.map +1 -0
  463. package/dist/lib/observability/evaluation-events.d.ts +35 -0
  464. package/dist/lib/observability/evaluation-events.d.ts.map +1 -0
  465. package/dist/lib/observability/evaluation-events.js +90 -0
  466. package/dist/lib/observability/evaluation-events.js.map +1 -0
  467. package/dist/lib/observability/file-span-exporter.d.ts +17 -0
  468. package/dist/lib/observability/file-span-exporter.d.ts.map +1 -0
  469. package/dist/lib/observability/file-span-exporter.js +49 -0
  470. package/dist/lib/observability/file-span-exporter.js.map +1 -0
  471. package/dist/lib/observability/histogram-bucket-constants.d.ts +25 -0
  472. package/dist/lib/observability/histogram-bucket-constants.d.ts.map +1 -0
  473. package/dist/lib/observability/histogram-bucket-constants.js +60 -0
  474. package/dist/lib/observability/histogram-bucket-constants.js.map +1 -0
  475. package/dist/lib/observability/histogram.d.ts +112 -0
  476. package/dist/lib/observability/histogram.d.ts.map +1 -0
  477. package/dist/lib/observability/histogram.js +170 -0
  478. package/dist/lib/observability/histogram.js.map +1 -0
  479. package/dist/lib/observability/histogram.test.d.ts.map +1 -0
  480. package/dist/lib/observability/histogram.test.js +385 -0
  481. package/dist/lib/observability/histogram.test.js.map +1 -0
  482. package/dist/lib/observability/indexer.d.ts +114 -0
  483. package/dist/lib/observability/indexer.d.ts.map +1 -0
  484. package/dist/lib/observability/indexer.js +402 -0
  485. package/dist/lib/observability/indexer.js.map +1 -0
  486. package/dist/lib/observability/indexer.test.d.ts.map +1 -0
  487. package/dist/lib/observability/indexer.test.js +713 -0
  488. package/dist/lib/observability/indexer.test.js.map +1 -0
  489. package/dist/lib/observability/instrumentation-eval.test.d.ts +5 -0
  490. package/dist/lib/observability/instrumentation-eval.test.d.ts.map +1 -0
  491. package/dist/lib/observability/instrumentation-eval.test.js +63 -0
  492. package/dist/lib/observability/instrumentation-eval.test.js.map +1 -0
  493. package/dist/lib/observability/instrumentation-init-errors.test.d.ts +13 -0
  494. package/dist/lib/observability/instrumentation-init-errors.test.d.ts.map +1 -0
  495. package/dist/lib/observability/instrumentation-init-errors.test.js +194 -0
  496. package/dist/lib/observability/instrumentation-init-errors.test.js.map +1 -0
  497. package/dist/lib/observability/instrumentation-retry-timeout.test.d.ts +15 -0
  498. package/dist/lib/observability/instrumentation-retry-timeout.test.d.ts.map +1 -0
  499. package/dist/lib/observability/instrumentation-retry-timeout.test.js +188 -0
  500. package/dist/lib/observability/instrumentation-retry-timeout.test.js.map +1 -0
  501. package/dist/lib/observability/instrumentation-set-otel.test.d.ts +5 -0
  502. package/dist/lib/observability/instrumentation-set-otel.test.d.ts.map +1 -0
  503. package/dist/lib/observability/instrumentation-set-otel.test.js +59 -0
  504. package/dist/lib/observability/instrumentation-set-otel.test.js.map +1 -0
  505. package/dist/lib/observability/instrumentation.d.ts +158 -0
  506. package/dist/lib/observability/instrumentation.d.ts.map +1 -0
  507. package/dist/lib/observability/instrumentation.integration.test.d.ts.map +1 -0
  508. package/dist/lib/observability/instrumentation.integration.test.js +590 -0
  509. package/dist/lib/observability/instrumentation.integration.test.js.map +1 -0
  510. package/dist/lib/observability/instrumentation.js +512 -0
  511. package/dist/lib/observability/instrumentation.js.map +1 -0
  512. package/dist/lib/observability/instrumentation.test.d.ts.map +1 -0
  513. package/dist/lib/observability/instrumentation.test.js +822 -0
  514. package/dist/lib/observability/instrumentation.test.js.map +1 -0
  515. package/dist/lib/observability/mcp-semconv-constants.d.ts +98 -0
  516. package/dist/lib/observability/mcp-semconv-constants.d.ts.map +1 -0
  517. package/dist/lib/observability/mcp-semconv-constants.js +102 -0
  518. package/dist/lib/observability/mcp-semconv-constants.js.map +1 -0
  519. package/dist/lib/observability/mcp-semconv.d.ts +37 -0
  520. package/dist/lib/observability/mcp-semconv.d.ts.map +1 -0
  521. package/dist/lib/observability/mcp-semconv.js +87 -0
  522. package/dist/lib/observability/mcp-semconv.js.map +1 -0
  523. package/dist/lib/observability/mcp-semconv.test.d.ts +2 -0
  524. package/dist/lib/observability/mcp-semconv.test.d.ts.map +1 -0
  525. package/dist/lib/observability/mcp-semconv.test.js +168 -0
  526. package/dist/lib/observability/mcp-semconv.test.js.map +1 -0
  527. package/dist/lib/observability/metrics.d.ts +100 -0
  528. package/dist/lib/observability/metrics.d.ts.map +1 -0
  529. package/dist/lib/observability/metrics.js +429 -0
  530. package/dist/lib/observability/metrics.js.map +1 -0
  531. package/dist/lib/observability/metrics.test.d.ts.map +1 -0
  532. package/dist/lib/observability/metrics.test.js +191 -0
  533. package/dist/lib/observability/metrics.test.js.map +1 -0
  534. package/dist/lib/observability/observability-test-constants.d.ts +34 -0
  535. package/dist/lib/observability/observability-test-constants.d.ts.map +1 -0
  536. package/dist/lib/observability/observability-test-constants.js +55 -0
  537. package/dist/lib/observability/observability-test-constants.js.map +1 -0
  538. package/dist/lib/observability/opentelemetry-resources.test.d.ts +2 -0
  539. package/dist/lib/observability/opentelemetry-resources.test.d.ts.map +1 -0
  540. package/dist/lib/observability/opentelemetry-resources.test.js +19 -0
  541. package/dist/lib/observability/opentelemetry-resources.test.js.map +1 -0
  542. package/dist/lib/observability/parse-stats.d.ts.map +1 -0
  543. package/dist/lib/observability/parse-stats.js +207 -0
  544. package/dist/lib/observability/parse-stats.js.map +1 -0
  545. package/dist/lib/observability/parse-stats.test.d.ts.map +1 -0
  546. package/dist/lib/observability/parse-stats.test.js +287 -0
  547. package/dist/lib/observability/parse-stats.test.js.map +1 -0
  548. package/dist/lib/observability/render-trace-tree.d.ts +31 -0
  549. package/dist/lib/observability/render-trace-tree.d.ts.map +1 -0
  550. package/dist/lib/observability/render-trace-tree.js +95 -0
  551. package/dist/lib/observability/render-trace-tree.js.map +1 -0
  552. package/dist/lib/observability/render-trace-tree.test.d.ts +5 -0
  553. package/dist/lib/observability/render-trace-tree.test.d.ts.map +1 -0
  554. package/dist/lib/observability/render-trace-tree.test.js +97 -0
  555. package/dist/lib/observability/render-trace-tree.test.js.map +1 -0
  556. package/dist/lib/observability/span-attributes.d.ts +27 -0
  557. package/dist/lib/observability/span-attributes.d.ts.map +1 -0
  558. package/dist/lib/observability/span-attributes.js +85 -0
  559. package/dist/lib/observability/span-attributes.js.map +1 -0
  560. package/dist/lib/observability/trace-anomaly-detector.d.ts +23 -0
  561. package/dist/lib/observability/trace-anomaly-detector.d.ts.map +1 -0
  562. package/dist/lib/observability/trace-anomaly-detector.js +211 -0
  563. package/dist/lib/observability/trace-anomaly-detector.js.map +1 -0
  564. package/dist/lib/observability/trace-anomaly-detector.test.d.ts +5 -0
  565. package/dist/lib/observability/trace-anomaly-detector.test.d.ts.map +1 -0
  566. package/dist/lib/observability/trace-anomaly-detector.test.js +224 -0
  567. package/dist/lib/observability/trace-anomaly-detector.test.js.map +1 -0
  568. package/dist/lib/observability/trace-anomaly-schemas.d.ts +189 -0
  569. package/dist/lib/observability/trace-anomaly-schemas.d.ts.map +1 -0
  570. package/dist/lib/observability/trace-anomaly-schemas.js +167 -0
  571. package/dist/lib/observability/trace-anomaly-schemas.js.map +1 -0
  572. package/dist/lib/privacy/content-redaction.d.ts +141 -0
  573. package/dist/lib/privacy/content-redaction.d.ts.map +1 -0
  574. package/dist/lib/privacy/content-redaction.js +210 -0
  575. package/dist/lib/privacy/content-redaction.js.map +1 -0
  576. package/dist/lib/privacy/content-redaction.test.d.ts +2 -0
  577. package/dist/lib/privacy/content-redaction.test.d.ts.map +1 -0
  578. package/dist/lib/privacy/content-redaction.test.js +302 -0
  579. package/dist/lib/privacy/content-redaction.test.js.map +1 -0
  580. package/dist/lib/quality/bucket-utils.d.ts +17 -0
  581. package/dist/lib/quality/bucket-utils.d.ts.map +1 -0
  582. package/dist/lib/quality/bucket-utils.js +31 -0
  583. package/dist/lib/quality/bucket-utils.js.map +1 -0
  584. package/dist/lib/quality/bucket-utils.test.d.ts +2 -0
  585. package/dist/lib/quality/bucket-utils.test.d.ts.map +1 -0
  586. package/dist/lib/quality/bucket-utils.test.js +42 -0
  587. package/dist/lib/quality/bucket-utils.test.js.map +1 -0
  588. package/dist/lib/quality/qfe-backtest-detail.test.d.ts +5 -0
  589. package/dist/lib/quality/qfe-backtest-detail.test.d.ts.map +1 -0
  590. package/dist/lib/quality/qfe-backtest-detail.test.js +179 -0
  591. package/dist/lib/quality/qfe-backtest-detail.test.js.map +1 -0
  592. package/dist/lib/quality/qfe-calibration-paths.test.d.ts +5 -0
  593. package/dist/lib/quality/qfe-calibration-paths.test.d.ts.map +1 -0
  594. package/dist/lib/quality/qfe-calibration-paths.test.js +203 -0
  595. package/dist/lib/quality/qfe-calibration-paths.test.js.map +1 -0
  596. package/dist/lib/quality/qfe-correlation-helpers.test.d.ts +6 -0
  597. package/dist/lib/quality/qfe-correlation-helpers.test.d.ts.map +1 -0
  598. package/dist/lib/quality/qfe-correlation-helpers.test.js +143 -0
  599. package/dist/lib/quality/qfe-correlation-helpers.test.js.map +1 -0
  600. package/dist/lib/quality/qfe-cqi-paths.test.d.ts +6 -0
  601. package/dist/lib/quality/qfe-cqi-paths.test.d.ts.map +1 -0
  602. package/dist/lib/quality/qfe-cqi-paths.test.js +231 -0
  603. package/dist/lib/quality/qfe-cqi-paths.test.js.map +1 -0
  604. package/dist/lib/quality/qfe-critic-internals.test.d.ts +6 -0
  605. package/dist/lib/quality/qfe-critic-internals.test.d.ts.map +1 -0
  606. package/dist/lib/quality/qfe-critic-internals.test.js +191 -0
  607. package/dist/lib/quality/qfe-critic-internals.test.js.map +1 -0
  608. package/dist/lib/quality/qfe-derived-paths.test.d.ts +2 -0
  609. package/dist/lib/quality/qfe-derived-paths.test.d.ts.map +1 -0
  610. package/dist/lib/quality/qfe-derived-paths.test.js +372 -0
  611. package/dist/lib/quality/qfe-derived-paths.test.js.map +1 -0
  612. package/dist/lib/quality/qfe-dynamics-paths.test.d.ts +8 -0
  613. package/dist/lib/quality/qfe-dynamics-paths.test.d.ts.map +1 -0
  614. package/dist/lib/quality/qfe-dynamics-paths.test.js +223 -0
  615. package/dist/lib/quality/qfe-dynamics-paths.test.js.map +1 -0
  616. package/dist/lib/quality/qfe-granger-internals.test.d.ts +6 -0
  617. package/dist/lib/quality/qfe-granger-internals.test.d.ts.map +1 -0
  618. package/dist/lib/quality/qfe-granger-internals.test.js +158 -0
  619. package/dist/lib/quality/qfe-granger-internals.test.js.map +1 -0
  620. package/dist/lib/quality/qfe-label-normalize.test.d.ts +7 -0
  621. package/dist/lib/quality/qfe-label-normalize.test.d.ts.map +1 -0
  622. package/dist/lib/quality/qfe-label-normalize.test.js +332 -0
  623. package/dist/lib/quality/qfe-label-normalize.test.js.map +1 -0
  624. package/dist/lib/quality/qfe-ordinal-edge.test.d.ts +6 -0
  625. package/dist/lib/quality/qfe-ordinal-edge.test.d.ts.map +1 -0
  626. package/dist/lib/quality/qfe-ordinal-edge.test.js +98 -0
  627. package/dist/lib/quality/qfe-ordinal-edge.test.js.map +1 -0
  628. package/dist/lib/quality/qfe-roles-detail.test.d.ts +5 -0
  629. package/dist/lib/quality/qfe-roles-detail.test.d.ts.map +1 -0
  630. package/dist/lib/quality/qfe-roles-detail.test.js +115 -0
  631. package/dist/lib/quality/qfe-roles-detail.test.js.map +1 -0
  632. package/dist/lib/quality/qfe-rolling-detail.test.d.ts +7 -0
  633. package/dist/lib/quality/qfe-rolling-detail.test.d.ts.map +1 -0
  634. package/dist/lib/quality/qfe-rolling-detail.test.js +249 -0
  635. package/dist/lib/quality/qfe-rolling-detail.test.js.map +1 -0
  636. package/dist/lib/quality/qfe-stats-internals.test.d.ts +7 -0
  637. package/dist/lib/quality/qfe-stats-internals.test.d.ts.map +1 -0
  638. package/dist/lib/quality/qfe-stats-internals.test.js +143 -0
  639. package/dist/lib/quality/qfe-stats-internals.test.js.map +1 -0
  640. package/dist/lib/quality/qfe-streaming.test.d.ts +5 -0
  641. package/dist/lib/quality/qfe-streaming.test.d.ts.map +1 -0
  642. package/dist/lib/quality/qfe-streaming.test.js +239 -0
  643. package/dist/lib/quality/qfe-streaming.test.js.map +1 -0
  644. package/dist/lib/quality/qfe-sweep-detail.test.d.ts +6 -0
  645. package/dist/lib/quality/qfe-sweep-detail.test.d.ts.map +1 -0
  646. package/dist/lib/quality/qfe-sweep-detail.test.js +291 -0
  647. package/dist/lib/quality/qfe-sweep-detail.test.js.map +1 -0
  648. package/dist/lib/quality/quality-alerts.d.ts +23 -0
  649. package/dist/lib/quality/quality-alerts.d.ts.map +1 -0
  650. package/dist/lib/quality/quality-alerts.js +89 -0
  651. package/dist/lib/quality/quality-alerts.js.map +1 -0
  652. package/dist/lib/quality/quality-alerts.test.d.ts +2 -0
  653. package/dist/lib/quality/quality-alerts.test.d.ts.map +1 -0
  654. package/dist/lib/quality/quality-alerts.test.js +86 -0
  655. package/dist/lib/quality/quality-alerts.test.js.map +1 -0
  656. package/dist/lib/quality/quality-constants.d.ts +294 -0
  657. package/dist/lib/quality/quality-constants.d.ts.map +1 -0
  658. package/dist/lib/quality/quality-constants.js +335 -0
  659. package/dist/lib/quality/quality-constants.js.map +1 -0
  660. package/dist/lib/quality/quality-feature-engineering.d.ts +1071 -0
  661. package/dist/lib/quality/quality-feature-engineering.d.ts.map +1 -0
  662. package/dist/lib/quality/quality-feature-engineering.js +2076 -0
  663. package/dist/lib/quality/quality-feature-engineering.js.map +1 -0
  664. package/dist/lib/quality/quality-feature-engineering.test.d.ts +5 -0
  665. package/dist/lib/quality/quality-feature-engineering.test.d.ts.map +1 -0
  666. package/dist/lib/quality/quality-feature-engineering.test.js +2908 -0
  667. package/dist/lib/quality/quality-feature-engineering.test.js.map +1 -0
  668. package/dist/lib/quality/quality-metrics.d.ts +943 -0
  669. package/dist/lib/quality/quality-metrics.d.ts.map +1 -0
  670. package/dist/lib/quality/quality-metrics.js +1151 -0
  671. package/dist/lib/quality/quality-metrics.js.map +1 -0
  672. package/dist/lib/quality/quality-metrics.test.d.ts +5 -0
  673. package/dist/lib/quality/quality-metrics.test.d.ts.map +1 -0
  674. package/dist/lib/quality/quality-metrics.test.js +2766 -0
  675. package/dist/lib/quality/quality-metrics.test.js.map +1 -0
  676. package/dist/lib/quality/quality-multi-agent.d.ts +106 -0
  677. package/dist/lib/quality/quality-multi-agent.d.ts.map +1 -0
  678. package/dist/lib/quality/quality-multi-agent.js +124 -0
  679. package/dist/lib/quality/quality-multi-agent.js.map +1 -0
  680. package/dist/lib/quality/quality-multi-agent.test.d.ts +6 -0
  681. package/dist/lib/quality/quality-multi-agent.test.d.ts.map +1 -0
  682. package/dist/lib/quality/quality-multi-agent.test.js +163 -0
  683. package/dist/lib/quality/quality-multi-agent.test.js.map +1 -0
  684. package/dist/lib/quality/quality-sla.d.ts +35 -0
  685. package/dist/lib/quality/quality-sla.d.ts.map +1 -0
  686. package/dist/lib/quality/quality-sla.js +62 -0
  687. package/dist/lib/quality/quality-sla.js.map +1 -0
  688. package/dist/lib/quality/quality-sla.test.d.ts +5 -0
  689. package/dist/lib/quality/quality-sla.test.d.ts.map +1 -0
  690. package/dist/lib/quality/quality-sla.test.js +144 -0
  691. package/dist/lib/quality/quality-sla.test.js.map +1 -0
  692. package/dist/lib/quality/quality-test-constants.d.ts +23 -0
  693. package/dist/lib/quality/quality-test-constants.d.ts.map +1 -0
  694. package/dist/lib/quality/quality-test-constants.js +25 -0
  695. package/dist/lib/quality/quality-test-constants.js.map +1 -0
  696. package/dist/lib/quality/quality-trends.d.ts +101 -0
  697. package/dist/lib/quality/quality-trends.d.ts.map +1 -0
  698. package/dist/lib/quality/quality-trends.js +299 -0
  699. package/dist/lib/quality/quality-trends.js.map +1 -0
  700. package/dist/lib/quality/quality-trends.test.d.ts +6 -0
  701. package/dist/lib/quality/quality-trends.test.d.ts.map +1 -0
  702. package/dist/lib/quality/quality-trends.test.js +377 -0
  703. package/dist/lib/quality/quality-trends.test.js.map +1 -0
  704. package/dist/lib/quality/quality-views.d.ts +966 -0
  705. package/dist/lib/quality/quality-views.d.ts.map +1 -0
  706. package/dist/lib/quality/quality-views.js +367 -0
  707. package/dist/lib/quality/quality-views.js.map +1 -0
  708. package/dist/lib/quality/quality-views.test.d.ts +6 -0
  709. package/dist/lib/quality/quality-views.test.d.ts.map +1 -0
  710. package/dist/lib/quality/quality-views.test.js +262 -0
  711. package/dist/lib/quality/quality-views.test.js.map +1 -0
  712. package/dist/lib/quality/quality-visualization.d.ts +112 -0
  713. package/dist/lib/quality/quality-visualization.d.ts.map +1 -0
  714. package/dist/lib/quality/quality-visualization.js +136 -0
  715. package/dist/lib/quality/quality-visualization.js.map +1 -0
  716. package/dist/lib/quality/quality-visualization.test.d.ts +5 -0
  717. package/dist/lib/quality/quality-visualization.test.d.ts.map +1 -0
  718. package/dist/lib/quality/quality-visualization.test.js +189 -0
  719. package/dist/lib/quality/quality-visualization.test.js.map +1 -0
  720. package/dist/lib/resilience/cache.d.ts +56 -0
  721. package/dist/lib/resilience/cache.d.ts.map +1 -0
  722. package/dist/lib/resilience/cache.js +96 -0
  723. package/dist/lib/resilience/cache.js.map +1 -0
  724. package/dist/lib/resilience/cache.test.d.ts.map +1 -0
  725. package/dist/lib/resilience/cache.test.js +106 -0
  726. package/dist/lib/resilience/cache.test.js.map +1 -0
  727. package/dist/lib/resilience/circuit-breaker.d.ts +147 -0
  728. package/dist/lib/resilience/circuit-breaker.d.ts.map +1 -0
  729. package/dist/lib/resilience/circuit-breaker.js +251 -0
  730. package/dist/lib/resilience/circuit-breaker.js.map +1 -0
  731. package/dist/lib/resilience/circuit-breaker.test.d.ts.map +1 -0
  732. package/dist/lib/resilience/circuit-breaker.test.js +266 -0
  733. package/dist/lib/resilience/circuit-breaker.test.js.map +1 -0
  734. package/dist/lib/resilience/toon-encoder.d.ts +31 -0
  735. package/dist/lib/resilience/toon-encoder.d.ts.map +1 -0
  736. package/dist/lib/resilience/toon-encoder.js +66 -0
  737. package/dist/lib/resilience/toon-encoder.js.map +1 -0
  738. package/dist/lib/resilience/toon-encoder.test.d.ts.map +1 -0
  739. package/dist/lib/resilience/toon-encoder.test.js +86 -0
  740. package/dist/lib/resilience/toon-encoder.test.js.map +1 -0
  741. package/dist/lib/testing/mock-llm-builder.d.ts +139 -0
  742. package/dist/lib/testing/mock-llm-builder.d.ts.map +1 -0
  743. package/dist/lib/testing/mock-llm-builder.js +254 -0
  744. package/dist/lib/testing/mock-llm-builder.js.map +1 -0
  745. package/dist/lib/testing/mock-llm-builder.test.d.ts +5 -0
  746. package/dist/lib/testing/mock-llm-builder.test.d.ts.map +1 -0
  747. package/dist/lib/testing/mock-llm-builder.test.js +304 -0
  748. package/dist/lib/testing/mock-llm-builder.test.js.map +1 -0
  749. package/dist/lib/validation/api-schemas.d.ts +705 -0
  750. package/dist/lib/validation/api-schemas.d.ts.map +1 -0
  751. package/dist/lib/validation/api-schemas.js +351 -0
  752. package/dist/lib/validation/api-schemas.js.map +1 -0
  753. package/dist/lib/validation/api-schemas.test.d.ts +5 -0
  754. package/dist/lib/validation/api-schemas.test.d.ts.map +1 -0
  755. package/dist/lib/validation/api-schemas.test.js +427 -0
  756. package/dist/lib/validation/api-schemas.test.js.map +1 -0
  757. package/dist/lib/validation/dashboard-schemas.d.ts +203 -0
  758. package/dist/lib/validation/dashboard-schemas.d.ts.map +1 -0
  759. package/dist/lib/validation/dashboard-schemas.js +186 -0
  760. package/dist/lib/validation/dashboard-schemas.js.map +1 -0
  761. package/dist/lib/validation/dashboard-schemas.test.d.ts +5 -0
  762. package/dist/lib/validation/dashboard-schemas.test.d.ts.map +1 -0
  763. package/dist/lib/validation/dashboard-schemas.test.js +353 -0
  764. package/dist/lib/validation/dashboard-schemas.test.js.map +1 -0
  765. package/dist/server.d.ts +2 -1
  766. package/dist/server.d.ts.map +1 -1
  767. package/dist/server.js +158 -144
  768. package/dist/server.js.map +1 -1
  769. package/dist/server.test.js +102 -95
  770. package/dist/server.test.js.map +1 -1
  771. package/dist/test-helpers/assertions.d.ts +6 -0
  772. package/dist/test-helpers/assertions.d.ts.map +1 -0
  773. package/dist/test-helpers/assertions.js +11 -0
  774. package/dist/test-helpers/assertions.js.map +1 -0
  775. package/dist/test-helpers/env-utils.d.ts +0 -64
  776. package/dist/test-helpers/env-utils.d.ts.map +1 -1
  777. package/dist/test-helpers/env-utils.js +0 -100
  778. package/dist/test-helpers/env-utils.js.map +1 -1
  779. package/dist/test-helpers/fuzz-generators.d.ts.map +1 -1
  780. package/dist/test-helpers/fuzz-generators.js +62 -22
  781. package/dist/test-helpers/fuzz-generators.js.map +1 -1
  782. package/dist/test-helpers/index.d.ts +3 -2
  783. package/dist/test-helpers/index.d.ts.map +1 -1
  784. package/dist/test-helpers/index.js +4 -2
  785. package/dist/test-helpers/index.js.map +1 -1
  786. package/dist/test-helpers/memfs-utils.test.js +81 -76
  787. package/dist/test-helpers/memfs-utils.test.js.map +1 -1
  788. package/dist/test-helpers/mock-backends.d.ts +19 -17
  789. package/dist/test-helpers/mock-backends.d.ts.map +1 -1
  790. package/dist/test-helpers/mock-backends.js +16 -4
  791. package/dist/test-helpers/mock-backends.js.map +1 -1
  792. package/dist/test-helpers/mock-backends.test.js +43 -112
  793. package/dist/test-helpers/mock-backends.test.js.map +1 -1
  794. package/dist/test-helpers/race-condition-helpers.d.ts.map +1 -1
  795. package/dist/test-helpers/race-condition-helpers.js +3 -2
  796. package/dist/test-helpers/race-condition-helpers.js.map +1 -1
  797. package/dist/test-helpers/schema-validators.d.ts +2 -2
  798. package/dist/test-helpers/schema-validators.d.ts.map +1 -1
  799. package/dist/test-helpers/schema-validators.js +35 -31
  800. package/dist/test-helpers/schema-validators.js.map +1 -1
  801. package/dist/test-helpers/test-constants.d.ts +74 -0
  802. package/dist/test-helpers/test-constants.d.ts.map +1 -0
  803. package/dist/test-helpers/test-constants.js +78 -0
  804. package/dist/test-helpers/test-constants.js.map +1 -0
  805. package/dist/test-helpers/test-data-builders.d.ts +25 -7
  806. package/dist/test-helpers/test-data-builders.d.ts.map +1 -1
  807. package/dist/test-helpers/test-data-builders.js +32 -9
  808. package/dist/test-helpers/test-data-builders.js.map +1 -1
  809. package/dist/test-helpers/test-data-builders.test.js +116 -107
  810. package/dist/test-helpers/test-data-builders.test.js.map +1 -1
  811. package/dist/test-helpers/tool-validators.d.ts +1 -1
  812. package/dist/test-helpers/tool-validators.d.ts.map +1 -1
  813. package/dist/test-helpers/tool-validators.js +10 -10
  814. package/dist/test-helpers/tool-validators.js.map +1 -1
  815. package/dist/tools/audit-trail.d.ts +170 -0
  816. package/dist/tools/audit-trail.d.ts.map +1 -0
  817. package/dist/tools/audit-trail.js +109 -0
  818. package/dist/tools/audit-trail.js.map +1 -0
  819. package/dist/tools/audit-trail.test.d.ts +5 -0
  820. package/dist/tools/audit-trail.test.d.ts.map +1 -0
  821. package/dist/tools/audit-trail.test.js +122 -0
  822. package/dist/tools/audit-trail.test.js.map +1 -0
  823. package/dist/tools/context-stats.d.ts +6 -20
  824. package/dist/tools/context-stats.d.ts.map +1 -1
  825. package/dist/tools/context-stats.js +106 -88
  826. package/dist/tools/context-stats.js.map +1 -1
  827. package/dist/tools/context-stats.test.js +109 -60
  828. package/dist/tools/context-stats.test.js.map +1 -1
  829. package/dist/tools/detect-trace-anomalies.d.ts +123 -0
  830. package/dist/tools/detect-trace-anomalies.d.ts.map +1 -0
  831. package/dist/tools/detect-trace-anomalies.js +66 -0
  832. package/dist/tools/detect-trace-anomalies.js.map +1 -0
  833. package/dist/tools/estimate-cost.d.ts +77 -0
  834. package/dist/tools/estimate-cost.d.ts.map +1 -0
  835. package/dist/tools/estimate-cost.js +104 -0
  836. package/dist/tools/estimate-cost.js.map +1 -0
  837. package/dist/tools/estimate-cost.test.d.ts +5 -0
  838. package/dist/tools/estimate-cost.test.d.ts.map +1 -0
  839. package/dist/tools/estimate-cost.test.js +343 -0
  840. package/dist/tools/estimate-cost.test.js.map +1 -0
  841. package/dist/tools/export-base.d.ts +77 -0
  842. package/dist/tools/export-base.d.ts.map +1 -0
  843. package/dist/tools/export-base.js +150 -0
  844. package/dist/tools/export-base.js.map +1 -0
  845. package/dist/tools/export-base.test.d.ts +18 -0
  846. package/dist/tools/export-base.test.d.ts.map +1 -0
  847. package/dist/tools/export-base.test.js +220 -0
  848. package/dist/tools/export-base.test.js.map +1 -0
  849. package/dist/tools/export-confident.d.ts +94 -90
  850. package/dist/tools/export-confident.d.ts.map +1 -1
  851. package/dist/tools/export-confident.js +17 -115
  852. package/dist/tools/export-confident.js.map +1 -1
  853. package/dist/tools/export-confident.test.js +79 -75
  854. package/dist/tools/export-confident.test.js.map +1 -1
  855. package/dist/tools/export-datadog.d.ts +77 -116
  856. package/dist/tools/export-datadog.d.ts.map +1 -1
  857. package/dist/tools/export-datadog.js +38 -40
  858. package/dist/tools/export-datadog.js.map +1 -1
  859. package/dist/tools/export-datadog.test.js +122 -165
  860. package/dist/tools/export-datadog.test.js.map +1 -1
  861. package/dist/tools/export-jaeger.d.ts +100 -0
  862. package/dist/tools/export-jaeger.d.ts.map +1 -0
  863. package/dist/tools/export-jaeger.js +154 -0
  864. package/dist/tools/export-jaeger.js.map +1 -0
  865. package/dist/tools/export-jaeger.test.d.ts +2 -0
  866. package/dist/tools/export-jaeger.test.d.ts.map +1 -0
  867. package/dist/tools/export-jaeger.test.js +113 -0
  868. package/dist/tools/export-jaeger.test.js.map +1 -0
  869. package/dist/tools/export-langfuse.d.ts +78 -80
  870. package/dist/tools/export-langfuse.d.ts.map +1 -1
  871. package/dist/tools/export-langfuse.js +15 -113
  872. package/dist/tools/export-langfuse.js.map +1 -1
  873. package/dist/tools/export-langfuse.test.js +70 -81
  874. package/dist/tools/export-langfuse.test.js.map +1 -1
  875. package/dist/tools/export-phoenix.d.ts +115 -90
  876. package/dist/tools/export-phoenix.d.ts.map +1 -1
  877. package/dist/tools/export-phoenix.js +29 -117
  878. package/dist/tools/export-phoenix.js.map +1 -1
  879. package/dist/tools/export-phoenix.test.js +95 -94
  880. package/dist/tools/export-phoenix.test.js.map +1 -1
  881. package/dist/tools/get-trace-url.d.ts +2 -10
  882. package/dist/tools/get-trace-url.d.ts.map +1 -1
  883. package/dist/tools/get-trace-url.js +5 -8
  884. package/dist/tools/get-trace-url.js.map +1 -1
  885. package/dist/tools/get-trace-url.test.js +81 -399
  886. package/dist/tools/get-trace-url.test.js.map +1 -1
  887. package/dist/tools/hallucination-detection.d.ts +203 -0
  888. package/dist/tools/hallucination-detection.d.ts.map +1 -0
  889. package/dist/tools/hallucination-detection.js +189 -0
  890. package/dist/tools/hallucination-detection.js.map +1 -0
  891. package/dist/tools/hallucination-detection.test.d.ts +5 -0
  892. package/dist/tools/hallucination-detection.test.d.ts.map +1 -0
  893. package/dist/tools/hallucination-detection.test.js +529 -0
  894. package/dist/tools/hallucination-detection.test.js.map +1 -0
  895. package/dist/tools/health-check.d.ts +9 -16
  896. package/dist/tools/health-check.d.ts.map +1 -1
  897. package/dist/tools/health-check.js +88 -101
  898. package/dist/tools/health-check.js.map +1 -1
  899. package/dist/tools/health-check.test.js +72 -165
  900. package/dist/tools/health-check.test.js.map +1 -1
  901. package/dist/tools/index.d.ts +13 -0
  902. package/dist/tools/index.d.ts.map +1 -1
  903. package/dist/tools/index.js +13 -0
  904. package/dist/tools/index.js.map +1 -1
  905. package/dist/tools/ingest-constants.d.ts +8 -0
  906. package/dist/tools/ingest-constants.d.ts.map +1 -0
  907. package/dist/tools/ingest-constants.js +8 -0
  908. package/dist/tools/ingest-constants.js.map +1 -0
  909. package/dist/tools/ingest-spans.d.ts +45 -0
  910. package/dist/tools/ingest-spans.d.ts.map +1 -0
  911. package/dist/tools/ingest-spans.js +129 -0
  912. package/dist/tools/ingest-spans.js.map +1 -0
  913. package/dist/tools/ingest-spans.test.d.ts +5 -0
  914. package/dist/tools/ingest-spans.test.d.ts.map +1 -0
  915. package/dist/tools/ingest-spans.test.js +250 -0
  916. package/dist/tools/ingest-spans.test.js.map +1 -0
  917. package/dist/tools/ingest-traces.d.ts +76 -0
  918. package/dist/tools/ingest-traces.d.ts.map +1 -0
  919. package/dist/tools/ingest-traces.js +164 -0
  920. package/dist/tools/ingest-traces.js.map +1 -0
  921. package/dist/tools/ingest-traces.test.d.ts +5 -0
  922. package/dist/tools/ingest-traces.test.d.ts.map +1 -0
  923. package/dist/tools/ingest-traces.test.js +483 -0
  924. package/dist/tools/ingest-traces.test.js.map +1 -0
  925. package/dist/tools/inject-evaluations.d.ts +136 -1197
  926. package/dist/tools/inject-evaluations.d.ts.map +1 -1
  927. package/dist/tools/inject-evaluations.js +65 -53
  928. package/dist/tools/inject-evaluations.js.map +1 -1
  929. package/dist/tools/inject-evaluations.test.js +83 -71
  930. package/dist/tools/inject-evaluations.test.js.map +1 -1
  931. package/dist/tools/manage-datasets.d.ts +850 -0
  932. package/dist/tools/manage-datasets.d.ts.map +1 -0
  933. package/dist/tools/manage-datasets.js +139 -0
  934. package/dist/tools/manage-datasets.js.map +1 -0
  935. package/dist/tools/manage-datasets.test.d.ts +5 -0
  936. package/dist/tools/manage-datasets.test.d.ts.map +1 -0
  937. package/dist/tools/manage-datasets.test.js +430 -0
  938. package/dist/tools/manage-datasets.test.js.map +1 -0
  939. package/dist/tools/multi-agent-coordination.d.ts +178 -0
  940. package/dist/tools/multi-agent-coordination.d.ts.map +1 -0
  941. package/dist/tools/multi-agent-coordination.js +270 -0
  942. package/dist/tools/multi-agent-coordination.js.map +1 -0
  943. package/dist/tools/multi-agent-coordination.test.d.ts +5 -0
  944. package/dist/tools/multi-agent-coordination.test.d.ts.map +1 -0
  945. package/dist/tools/multi-agent-coordination.test.js +530 -0
  946. package/dist/tools/multi-agent-coordination.test.js.map +1 -0
  947. package/dist/tools/query-evaluations.d.ts +147 -105
  948. package/dist/tools/query-evaluations.d.ts.map +1 -1
  949. package/dist/tools/query-evaluations.js +205 -178
  950. package/dist/tools/query-evaluations.js.map +1 -1
  951. package/dist/tools/query-evaluations.test.js +386 -391
  952. package/dist/tools/query-evaluations.test.js.map +1 -1
  953. package/dist/tools/query-llm-events.d.ts +100 -75
  954. package/dist/tools/query-llm-events.d.ts.map +1 -1
  955. package/dist/tools/query-llm-events.js +106 -80
  956. package/dist/tools/query-llm-events.js.map +1 -1
  957. package/dist/tools/query-llm-events.test.js +183 -346
  958. package/dist/tools/query-llm-events.test.js.map +1 -1
  959. package/dist/tools/query-logs.d.ts +45 -58
  960. package/dist/tools/query-logs.d.ts.map +1 -1
  961. package/dist/tools/query-logs.js +54 -101
  962. package/dist/tools/query-logs.js.map +1 -1
  963. package/dist/tools/query-logs.test.js +118 -314
  964. package/dist/tools/query-logs.test.js.map +1 -1
  965. package/dist/tools/query-metric-histograms.d.ts +112 -0
  966. package/dist/tools/query-metric-histograms.d.ts.map +1 -0
  967. package/dist/tools/query-metric-histograms.js +69 -0
  968. package/dist/tools/query-metric-histograms.js.map +1 -0
  969. package/dist/tools/query-metric-histograms.test.d.ts +5 -0
  970. package/dist/tools/query-metric-histograms.test.d.ts.map +1 -0
  971. package/dist/tools/query-metric-histograms.test.js +209 -0
  972. package/dist/tools/query-metric-histograms.test.js.map +1 -0
  973. package/dist/tools/query-metrics.d.ts +159 -60
  974. package/dist/tools/query-metrics.d.ts.map +1 -1
  975. package/dist/tools/query-metrics.js +133 -111
  976. package/dist/tools/query-metrics.js.map +1 -1
  977. package/dist/tools/query-metrics.test.js +314 -389
  978. package/dist/tools/query-metrics.test.js.map +1 -1
  979. package/dist/tools/query-regressions.d.ts +76 -0
  980. package/dist/tools/query-regressions.d.ts.map +1 -0
  981. package/dist/tools/query-regressions.js +122 -0
  982. package/dist/tools/query-regressions.js.map +1 -0
  983. package/dist/tools/query-regressions.test.d.ts +8 -0
  984. package/dist/tools/query-regressions.test.d.ts.map +1 -0
  985. package/dist/tools/query-regressions.test.js +129 -0
  986. package/dist/tools/query-regressions.test.js.map +1 -0
  987. package/dist/tools/query-traces.d.ts +103 -71
  988. package/dist/tools/query-traces.d.ts.map +1 -1
  989. package/dist/tools/query-traces.js +75 -106
  990. package/dist/tools/query-traces.js.map +1 -1
  991. package/dist/tools/query-traces.test.js +140 -846
  992. package/dist/tools/query-traces.test.js.map +1 -1
  993. package/dist/tools/query-verifications.d.ts +55 -43
  994. package/dist/tools/query-verifications.d.ts.map +1 -1
  995. package/dist/tools/query-verifications.js +47 -46
  996. package/dist/tools/query-verifications.js.map +1 -1
  997. package/dist/tools/query-verifications.test.js +42 -35
  998. package/dist/tools/query-verifications.test.js.map +1 -1
  999. package/dist/tools/routing-telemetry.d.ts +168 -0
  1000. package/dist/tools/routing-telemetry.d.ts.map +1 -0
  1001. package/dist/tools/routing-telemetry.js +267 -0
  1002. package/dist/tools/routing-telemetry.js.map +1 -0
  1003. package/dist/tools/routing-telemetry.test.d.ts +5 -0
  1004. package/dist/tools/routing-telemetry.test.d.ts.map +1 -0
  1005. package/dist/tools/routing-telemetry.test.js +747 -0
  1006. package/dist/tools/routing-telemetry.test.js.map +1 -0
  1007. package/dist/tools/setup-claudeignore.d.ts +4 -32
  1008. package/dist/tools/setup-claudeignore.d.ts.map +1 -1
  1009. package/dist/tools/setup-claudeignore.js +18 -22
  1010. package/dist/tools/setup-claudeignore.js.map +1 -1
  1011. package/dist/tools/setup-claudeignore.test.js +50 -49
  1012. package/dist/tools/setup-claudeignore.test.js.map +1 -1
  1013. package/dist/tools/token-budget.d.ts +170 -0
  1014. package/dist/tools/token-budget.d.ts.map +1 -0
  1015. package/dist/tools/token-budget.js +219 -0
  1016. package/dist/tools/token-budget.js.map +1 -0
  1017. package/dist/tools/token-budget.test.d.ts +5 -0
  1018. package/dist/tools/token-budget.test.d.ts.map +1 -0
  1019. package/dist/tools/token-budget.test.js +293 -0
  1020. package/dist/tools/token-budget.test.js.map +1 -0
  1021. package/package.json +72 -10
  1022. package/dist/backends/local-jsonl.test.d.ts +0 -2
  1023. package/dist/backends/local-jsonl.test.d.ts.map +0 -1
  1024. package/dist/backends/local-jsonl.test.js +0 -4651
  1025. package/dist/backends/local-jsonl.test.js.map +0 -1
  1026. package/dist/backends/signoz-api-circuit-breaker.test.d.ts +0 -6
  1027. package/dist/backends/signoz-api-circuit-breaker.test.d.ts.map +0 -1
  1028. package/dist/backends/signoz-api-circuit-breaker.test.js +0 -548
  1029. package/dist/backends/signoz-api-circuit-breaker.test.js.map +0 -1
  1030. package/dist/backends/signoz-api-rate-limiter.test.d.ts +0 -6
  1031. package/dist/backends/signoz-api-rate-limiter.test.d.ts.map +0 -1
  1032. package/dist/backends/signoz-api-rate-limiter.test.js +0 -390
  1033. package/dist/backends/signoz-api-rate-limiter.test.js.map +0 -1
  1034. package/dist/backends/signoz-api-ssrf.test.d.ts +0 -6
  1035. package/dist/backends/signoz-api-ssrf.test.d.ts.map +0 -1
  1036. package/dist/backends/signoz-api-ssrf.test.js +0 -216
  1037. package/dist/backends/signoz-api-ssrf.test.js.map +0 -1
  1038. package/dist/backends/signoz-api-test-helpers.d.ts +0 -80
  1039. package/dist/backends/signoz-api-test-helpers.d.ts.map +0 -1
  1040. package/dist/backends/signoz-api-test-helpers.js +0 -79
  1041. package/dist/backends/signoz-api-test-helpers.js.map +0 -1
  1042. package/dist/backends/signoz-api.d.ts +0 -109
  1043. package/dist/backends/signoz-api.d.ts.map +0 -1
  1044. package/dist/backends/signoz-api.integration.test.d.ts +0 -8
  1045. package/dist/backends/signoz-api.integration.test.d.ts.map +0 -1
  1046. package/dist/backends/signoz-api.integration.test.js +0 -137
  1047. package/dist/backends/signoz-api.integration.test.js.map +0 -1
  1048. package/dist/backends/signoz-api.js +0 -1132
  1049. package/dist/backends/signoz-api.js.map +0 -1
  1050. package/dist/backends/signoz-api.test.d.ts +0 -11
  1051. package/dist/backends/signoz-api.test.d.ts.map +0 -1
  1052. package/dist/backends/signoz-api.test.js +0 -832
  1053. package/dist/backends/signoz-api.test.js.map +0 -1
  1054. package/dist/lib/agent-as-judge.d.ts +0 -388
  1055. package/dist/lib/agent-as-judge.d.ts.map +0 -1
  1056. package/dist/lib/agent-as-judge.js +0 -740
  1057. package/dist/lib/agent-as-judge.js.map +0 -1
  1058. package/dist/lib/agent-as-judge.test.d.ts.map +0 -1
  1059. package/dist/lib/agent-as-judge.test.js +0 -816
  1060. package/dist/lib/agent-as-judge.test.js.map +0 -1
  1061. package/dist/lib/cache.d.ts +0 -90
  1062. package/dist/lib/cache.d.ts.map +0 -1
  1063. package/dist/lib/cache.js +0 -133
  1064. package/dist/lib/cache.js.map +0 -1
  1065. package/dist/lib/cache.test.d.ts.map +0 -1
  1066. package/dist/lib/cache.test.js +0 -105
  1067. package/dist/lib/cache.test.js.map +0 -1
  1068. package/dist/lib/circuit-breaker.d.ts +0 -101
  1069. package/dist/lib/circuit-breaker.d.ts.map +0 -1
  1070. package/dist/lib/circuit-breaker.js +0 -158
  1071. package/dist/lib/circuit-breaker.js.map +0 -1
  1072. package/dist/lib/circuit-breaker.test.d.ts.map +0 -1
  1073. package/dist/lib/circuit-breaker.test.js +0 -263
  1074. package/dist/lib/circuit-breaker.test.js.map +0 -1
  1075. package/dist/lib/confident-export.d.ts +0 -101
  1076. package/dist/lib/confident-export.d.ts.map +0 -1
  1077. package/dist/lib/confident-export.js +0 -393
  1078. package/dist/lib/confident-export.js.map +0 -1
  1079. package/dist/lib/confident-export.test.d.ts.map +0 -1
  1080. package/dist/lib/confident-export.test.js +0 -835
  1081. package/dist/lib/confident-export.test.js.map +0 -1
  1082. package/dist/lib/constants-symlink.test.d.ts.map +0 -1
  1083. package/dist/lib/constants-symlink.test.js +0 -357
  1084. package/dist/lib/constants-symlink.test.js.map +0 -1
  1085. package/dist/lib/constants.d.ts +0 -183
  1086. package/dist/lib/constants.d.ts.map +0 -1
  1087. package/dist/lib/constants.js +0 -453
  1088. package/dist/lib/constants.js.map +0 -1
  1089. package/dist/lib/constants.test.d.ts.map +0 -1
  1090. package/dist/lib/constants.test.js +0 -717
  1091. package/dist/lib/constants.test.js.map +0 -1
  1092. package/dist/lib/datadog-export.d.ts +0 -156
  1093. package/dist/lib/datadog-export.d.ts.map +0 -1
  1094. package/dist/lib/datadog-export.js +0 -464
  1095. package/dist/lib/datadog-export.js.map +0 -1
  1096. package/dist/lib/datadog-export.test.d.ts +0 -14
  1097. package/dist/lib/datadog-export.test.d.ts.map +0 -1
  1098. package/dist/lib/datadog-export.test.js +0 -890
  1099. package/dist/lib/datadog-export.test.js.map +0 -1
  1100. package/dist/lib/edge-cases.test.d.ts.map +0 -1
  1101. package/dist/lib/edge-cases.test.js +0 -634
  1102. package/dist/lib/edge-cases.test.js.map +0 -1
  1103. package/dist/lib/error-sanitizer.d.ts +0 -57
  1104. package/dist/lib/error-sanitizer.d.ts.map +0 -1
  1105. package/dist/lib/error-sanitizer.js +0 -233
  1106. package/dist/lib/error-sanitizer.js.map +0 -1
  1107. package/dist/lib/error-sanitizer.test.d.ts.map +0 -1
  1108. package/dist/lib/error-sanitizer.test.js +0 -528
  1109. package/dist/lib/error-sanitizer.test.js.map +0 -1
  1110. package/dist/lib/error-types.d.ts +0 -54
  1111. package/dist/lib/error-types.d.ts.map +0 -1
  1112. package/dist/lib/error-types.js +0 -154
  1113. package/dist/lib/error-types.js.map +0 -1
  1114. package/dist/lib/error-types.test.d.ts.map +0 -1
  1115. package/dist/lib/error-types.test.js +0 -196
  1116. package/dist/lib/error-types.test.js.map +0 -1
  1117. package/dist/lib/evaluation-hooks.d.ts +0 -49
  1118. package/dist/lib/evaluation-hooks.d.ts.map +0 -1
  1119. package/dist/lib/evaluation-hooks.js +0 -488
  1120. package/dist/lib/evaluation-hooks.js.map +0 -1
  1121. package/dist/lib/evaluation-hooks.test.d.ts.map +0 -1
  1122. package/dist/lib/evaluation-hooks.test.js +0 -624
  1123. package/dist/lib/evaluation-hooks.test.js.map +0 -1
  1124. package/dist/lib/export-utils.d.ts +0 -99
  1125. package/dist/lib/export-utils.d.ts.map +0 -1
  1126. package/dist/lib/export-utils.js +0 -238
  1127. package/dist/lib/export-utils.js.map +0 -1
  1128. package/dist/lib/export-utils.test.d.ts.map +0 -1
  1129. package/dist/lib/export-utils.test.js +0 -193
  1130. package/dist/lib/export-utils.test.js.map +0 -1
  1131. package/dist/lib/file-utils.d.ts +0 -320
  1132. package/dist/lib/file-utils.d.ts.map +0 -1
  1133. package/dist/lib/file-utils.js +0 -816
  1134. package/dist/lib/file-utils.js.map +0 -1
  1135. package/dist/lib/file-utils.test.d.ts.map +0 -1
  1136. package/dist/lib/file-utils.test.js +0 -1333
  1137. package/dist/lib/file-utils.test.js.map +0 -1
  1138. package/dist/lib/histogram.d.ts +0 -119
  1139. package/dist/lib/histogram.d.ts.map +0 -1
  1140. package/dist/lib/histogram.js +0 -202
  1141. package/dist/lib/histogram.js.map +0 -1
  1142. package/dist/lib/histogram.test.d.ts.map +0 -1
  1143. package/dist/lib/histogram.test.js +0 -381
  1144. package/dist/lib/histogram.test.js.map +0 -1
  1145. package/dist/lib/indexer.d.ts +0 -96
  1146. package/dist/lib/indexer.d.ts.map +0 -1
  1147. package/dist/lib/indexer.js +0 -353
  1148. package/dist/lib/indexer.js.map +0 -1
  1149. package/dist/lib/indexer.test.d.ts.map +0 -1
  1150. package/dist/lib/indexer.test.js +0 -696
  1151. package/dist/lib/indexer.test.js.map +0 -1
  1152. package/dist/lib/input-validator.d.ts +0 -115
  1153. package/dist/lib/input-validator.d.ts.map +0 -1
  1154. package/dist/lib/input-validator.fuzz.test.d.ts.map +0 -1
  1155. package/dist/lib/input-validator.fuzz.test.js +0 -290
  1156. package/dist/lib/input-validator.fuzz.test.js.map +0 -1
  1157. package/dist/lib/input-validator.js +0 -304
  1158. package/dist/lib/input-validator.js.map +0 -1
  1159. package/dist/lib/input-validator.test.d.ts.map +0 -1
  1160. package/dist/lib/input-validator.test.js +0 -415
  1161. package/dist/lib/input-validator.test.js.map +0 -1
  1162. package/dist/lib/instrumentation.d.ts +0 -153
  1163. package/dist/lib/instrumentation.d.ts.map +0 -1
  1164. package/dist/lib/instrumentation.integration.test.d.ts.map +0 -1
  1165. package/dist/lib/instrumentation.integration.test.js +0 -589
  1166. package/dist/lib/instrumentation.integration.test.js.map +0 -1
  1167. package/dist/lib/instrumentation.js +0 -520
  1168. package/dist/lib/instrumentation.js.map +0 -1
  1169. package/dist/lib/instrumentation.test.d.ts.map +0 -1
  1170. package/dist/lib/instrumentation.test.js +0 -821
  1171. package/dist/lib/instrumentation.test.js.map +0 -1
  1172. package/dist/lib/langfuse-export.d.ts +0 -125
  1173. package/dist/lib/langfuse-export.d.ts.map +0 -1
  1174. package/dist/lib/langfuse-export.js +0 -367
  1175. package/dist/lib/langfuse-export.js.map +0 -1
  1176. package/dist/lib/langfuse-export.test.d.ts.map +0 -1
  1177. package/dist/lib/langfuse-export.test.js +0 -1007
  1178. package/dist/lib/langfuse-export.test.js.map +0 -1
  1179. package/dist/lib/llm-as-judge.d.ts +0 -657
  1180. package/dist/lib/llm-as-judge.d.ts.map +0 -1
  1181. package/dist/lib/llm-as-judge.js +0 -1397
  1182. package/dist/lib/llm-as-judge.js.map +0 -1
  1183. package/dist/lib/llm-as-judge.test.d.ts.map +0 -1
  1184. package/dist/lib/llm-as-judge.test.js +0 -2409
  1185. package/dist/lib/llm-as-judge.test.js.map +0 -1
  1186. package/dist/lib/logger.d.ts +0 -46
  1187. package/dist/lib/logger.d.ts.map +0 -1
  1188. package/dist/lib/logger.js +0 -81
  1189. package/dist/lib/logger.js.map +0 -1
  1190. package/dist/lib/logger.test.d.ts.map +0 -1
  1191. package/dist/lib/logger.test.js.map +0 -1
  1192. package/dist/lib/metrics.d.ts +0 -62
  1193. package/dist/lib/metrics.d.ts.map +0 -1
  1194. package/dist/lib/metrics.js +0 -166
  1195. package/dist/lib/metrics.js.map +0 -1
  1196. package/dist/lib/metrics.test.d.ts.map +0 -1
  1197. package/dist/lib/metrics.test.js +0 -189
  1198. package/dist/lib/metrics.test.js.map +0 -1
  1199. package/dist/lib/otlp-export.d.ts +0 -178
  1200. package/dist/lib/otlp-export.d.ts.map +0 -1
  1201. package/dist/lib/otlp-export.js +0 -382
  1202. package/dist/lib/otlp-export.js.map +0 -1
  1203. package/dist/lib/parse-stats.d.ts.map +0 -1
  1204. package/dist/lib/parse-stats.js +0 -206
  1205. package/dist/lib/parse-stats.js.map +0 -1
  1206. package/dist/lib/parse-stats.test.d.ts.map +0 -1
  1207. package/dist/lib/parse-stats.test.js +0 -283
  1208. package/dist/lib/parse-stats.test.js.map +0 -1
  1209. package/dist/lib/phoenix-export.d.ts +0 -109
  1210. package/dist/lib/phoenix-export.d.ts.map +0 -1
  1211. package/dist/lib/phoenix-export.js +0 -429
  1212. package/dist/lib/phoenix-export.js.map +0 -1
  1213. package/dist/lib/phoenix-export.test.d.ts.map +0 -1
  1214. package/dist/lib/phoenix-export.test.js +0 -725
  1215. package/dist/lib/phoenix-export.test.js.map +0 -1
  1216. package/dist/lib/query-sanitizer.d.ts.map +0 -1
  1217. package/dist/lib/query-sanitizer.js +0 -261
  1218. package/dist/lib/query-sanitizer.js.map +0 -1
  1219. package/dist/lib/query-sanitizer.test.d.ts.map +0 -1
  1220. package/dist/lib/query-sanitizer.test.js +0 -400
  1221. package/dist/lib/query-sanitizer.test.js.map +0 -1
  1222. package/dist/lib/server-utils.d.ts +0 -93
  1223. package/dist/lib/server-utils.d.ts.map +0 -1
  1224. package/dist/lib/server-utils.js +0 -181
  1225. package/dist/lib/server-utils.js.map +0 -1
  1226. package/dist/lib/shared-schemas.d.ts +0 -87
  1227. package/dist/lib/shared-schemas.d.ts.map +0 -1
  1228. package/dist/lib/shared-schemas.js +0 -87
  1229. package/dist/lib/shared-schemas.js.map +0 -1
  1230. package/dist/lib/shared-schemas.test.d.ts.map +0 -1
  1231. package/dist/lib/shared-schemas.test.js +0 -106
  1232. package/dist/lib/shared-schemas.test.js.map +0 -1
  1233. package/dist/lib/toon-encoder.d.ts +0 -26
  1234. package/dist/lib/toon-encoder.d.ts.map +0 -1
  1235. package/dist/lib/toon-encoder.js +0 -61
  1236. package/dist/lib/toon-encoder.js.map +0 -1
  1237. package/dist/lib/toon-encoder.test.d.ts.map +0 -1
  1238. package/dist/lib/toon-encoder.test.js +0 -85
  1239. package/dist/lib/toon-encoder.test.js.map +0 -1
  1240. package/dist/lib/verification-events.d.ts +0 -100
  1241. package/dist/lib/verification-events.d.ts.map +0 -1
  1242. package/dist/lib/verification-events.js +0 -162
  1243. package/dist/lib/verification-events.js.map +0 -1
  1244. package/dist/lib/verification-events.test.d.ts.map +0 -1
  1245. package/dist/lib/verification-events.test.js +0 -193
  1246. package/dist/lib/verification-events.test.js.map +0 -1
  1247. package/dist/tools/signoz.integration.test.d.ts +0 -8
  1248. package/dist/tools/signoz.integration.test.d.ts.map +0 -1
  1249. package/dist/tools/signoz.integration.test.js +0 -141
  1250. package/dist/tools/signoz.integration.test.js.map +0 -1
  1251. package/dist/types/evaluation-hooks.d.ts +0 -176
  1252. package/dist/types/evaluation-hooks.d.ts.map +0 -1
  1253. package/dist/types/evaluation-hooks.js +0 -49
  1254. package/dist/types/evaluation-hooks.js.map +0 -1
  1255. /package/dist/lib/{agent-as-judge.test.d.ts → agent-judge/agent-as-judge.test.d.ts} +0 -0
  1256. /package/dist/lib/{verification-events.test.d.ts → audit/verification-events.test.d.ts} +0 -0
  1257. /package/dist/lib/{constants-symlink.test.d.ts → core/constants-symlink.test.d.ts} +0 -0
  1258. /package/dist/lib/{constants.test.d.ts → core/constants.test.d.ts} +0 -0
  1259. /package/dist/lib/{edge-cases.test.d.ts → core/edge-cases.test.d.ts} +0 -0
  1260. /package/dist/lib/{file-utils.test.d.ts → core/file-utils.test.d.ts} +0 -0
  1261. /package/dist/lib/{input-validator.fuzz.test.d.ts → core/input-validator.fuzz.test.d.ts} +0 -0
  1262. /package/dist/lib/{input-validator.test.d.ts → core/input-validator.test.d.ts} +0 -0
  1263. /package/dist/lib/{logger.test.d.ts → core/logger.test.d.ts} +0 -0
  1264. /package/dist/lib/{logger.test.js → core/logger.test.js} +0 -0
  1265. /package/dist/lib/{shared-schemas.test.d.ts → core/shared-schemas.test.d.ts} +0 -0
  1266. /package/dist/lib/{error-sanitizer.test.d.ts → errors/error-sanitizer.test.d.ts} +0 -0
  1267. /package/dist/lib/{error-types.test.d.ts → errors/error-types.test.d.ts} +0 -0
  1268. /package/dist/lib/{query-sanitizer.d.ts → errors/query-sanitizer.d.ts} +0 -0
  1269. /package/dist/lib/{query-sanitizer.test.d.ts → errors/query-sanitizer.test.d.ts} +0 -0
  1270. /package/dist/lib/{confident-export.test.d.ts → exports/confident-export.test.d.ts} +0 -0
  1271. /package/dist/lib/{export-utils.test.d.ts → exports/export-utils.test.d.ts} +0 -0
  1272. /package/dist/lib/{langfuse-export.test.d.ts → exports/langfuse-export.test.d.ts} +0 -0
  1273. /package/dist/lib/{phoenix-export.test.d.ts → exports/phoenix-export.test.d.ts} +0 -0
  1274. /package/dist/lib/{evaluation-hooks.test.d.ts → judge/evaluation-hooks.test.d.ts} +0 -0
  1275. /package/dist/lib/{llm-as-judge.test.d.ts → judge/llm-as-judge.test.d.ts} +0 -0
  1276. /package/dist/lib/{histogram.test.d.ts → observability/histogram.test.d.ts} +0 -0
  1277. /package/dist/lib/{indexer.test.d.ts → observability/indexer.test.d.ts} +0 -0
  1278. /package/dist/lib/{instrumentation.integration.test.d.ts → observability/instrumentation.integration.test.d.ts} +0 -0
  1279. /package/dist/lib/{instrumentation.test.d.ts → observability/instrumentation.test.d.ts} +0 -0
  1280. /package/dist/lib/{metrics.test.d.ts → observability/metrics.test.d.ts} +0 -0
  1281. /package/dist/lib/{parse-stats.d.ts → observability/parse-stats.d.ts} +0 -0
  1282. /package/dist/lib/{parse-stats.test.d.ts → observability/parse-stats.test.d.ts} +0 -0
  1283. /package/dist/lib/{cache.test.d.ts → resilience/cache.test.d.ts} +0 -0
  1284. /package/dist/lib/{circuit-breaker.test.d.ts → resilience/circuit-breaker.test.d.ts} +0 -0
  1285. /package/dist/lib/{toon-encoder.test.d.ts → resilience/toon-encoder.test.d.ts} +0 -0
@@ -0,0 +1,1071 @@
1
+ /**
2
+ * Feature Engineering for Evaluation Analytics (Design Doc Section 16)
3
+ *
4
+ * Derived features, adaptive score scaling, label encoding, and composite metrics
5
+ * computed from existing evaluation data. Enhances anomaly detection, correlation
6
+ * discovery, and role-appropriate information presentation.
7
+ *
8
+ * @see quality-metrics.ts for core types
9
+ * @see frontend/docs/llm-explainability-design.md Section 16
10
+ */
11
+ import { z } from 'zod';
12
+ import { type ConfidenceIndicator, type MetricTrend, type QualityMetricResult, type ThresholdDirection } from './quality-metrics.js';
13
+ import { type RoleType, type CQIWeights } from './quality-constants.js';
14
+ /**
15
+ * Score direction for color mapping (higher-is-better vs lower-is-better).
16
+ * Semantically distinct from ThresholdDirection ('above'/'below') which controls
17
+ * alert trigger conditions. ScoreDirection controls visual presentation.
18
+ */
19
+ export type ScoreDirection = 'maximize' | 'minimize';
20
+ /**
21
+ * Per-metric scaling strategy for adaptive score coloring.
22
+ * Different metrics have different native distributions, requiring
23
+ * different mapping strategies to the 5-band color scale.
24
+ */
25
+ export type ScaleStrategy = 'quantile' | 'binary' | 'uniform' | 'log' | 'step' | 'categorical' | 'percentile_rank';
26
+ /** Default scale strategy per metric */
27
+ export declare const METRIC_SCALE_STRATEGY: Record<string, ScaleStrategy>;
28
+ /** Score color band names */
29
+ export type ScoreColorBand = 'excellent' | 'good' | 'adequate' | 'poor' | 'failing';
30
+ /**
31
+ * Map a score value to a 5-band color band with direction awareness.
32
+ * For 'minimize' metrics (hallucination, latency), low scores are excellent.
33
+ * For 'maximize' metrics (relevance, faithfulness), high scores are excellent.
34
+ */
35
+ export declare function scoreColorBand(value: number, direction?: ScoreDirection): ScoreColorBand;
36
+ /** Percentile distribution for quantile-based scaling */
37
+ export interface PercentileDistribution {
38
+ p10: number;
39
+ p25: number;
40
+ p50: number;
41
+ p75: number;
42
+ p90: number;
43
+ }
44
+ /**
45
+ * Zod schemas for runtime validation of quality feature types.
46
+ * Used for state persistence and API data validation.
47
+ */
48
+ export declare const percentileDistributionSchema: z.ZodObject<{
49
+ p10: z.ZodNumber;
50
+ p25: z.ZodNumber;
51
+ p50: z.ZodNumber;
52
+ p75: z.ZodNumber;
53
+ p90: z.ZodNumber;
54
+ }, z.core.$strip>;
55
+ export type PercentileDistributionInput = z.infer<typeof percentileDistributionSchema>;
56
+ export declare const scoreDirectionSchema: z.ZodEnum<{
57
+ maximize: "maximize";
58
+ minimize: "minimize";
59
+ }>;
60
+ export type ScoreDirectionInput = z.infer<typeof scoreDirectionSchema>;
61
+ export declare const scaleStrategySchema: z.ZodEnum<{
62
+ binary: "binary";
63
+ step: "step";
64
+ categorical: "categorical";
65
+ quantile: "quantile";
66
+ uniform: "uniform";
67
+ log: "log";
68
+ percentile_rank: "percentile_rank";
69
+ }>;
70
+ export type ScaleStrategyInput = z.infer<typeof scaleStrategySchema>;
71
+ export declare const scoreColorBandSchema: z.ZodEnum<{
72
+ excellent: "excellent";
73
+ good: "good";
74
+ adequate: "adequate";
75
+ poor: "poor";
76
+ failing: "failing";
77
+ }>;
78
+ export type ScoreColorBandInput = z.infer<typeof scoreColorBandSchema>;
79
+ export declare const degradationStateSchema: z.ZodObject<{
80
+ lastRun: z.ZodString;
81
+ breaches: z.ZodRecord<z.ZodString, z.ZodInt>;
82
+ }, z.core.$strip>;
83
+ export type DegradationStateInput = z.infer<typeof degradationStateSchema>;
84
+ export declare const calibrationStateSchema: z.ZodObject<{
85
+ lastCalibrated: z.ZodString;
86
+ distributions: z.ZodRecord<z.ZodString, z.ZodObject<{
87
+ distribution: z.ZodObject<{
88
+ p10: z.ZodNumber;
89
+ p25: z.ZodNumber;
90
+ p50: z.ZodNumber;
91
+ p75: z.ZodNumber;
92
+ p90: z.ZodNumber;
93
+ }, z.core.$strip>;
94
+ sampleSize: z.ZodInt;
95
+ windowStart: z.ZodString;
96
+ windowEnd: z.ZodString;
97
+ }, z.core.$strip>>;
98
+ psiValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
99
+ rawScores: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodNumber>>>;
100
+ }, z.core.$strip>;
101
+ export type CalibrationStateInput = z.infer<typeof calibrationStateSchema>;
102
+ export declare const psiResultSchema: z.ZodObject<{
103
+ psi: z.ZodNumber;
104
+ drifted: z.ZodBoolean;
105
+ }, z.core.$strip>;
106
+ export type PSIResultInput = z.infer<typeof psiResultSchema>;
107
+ export declare const backtestConfigSchema: z.ZodObject<{
108
+ varianceThreshold: z.ZodNumber;
109
+ coverageDropoutThreshold: z.ZodNumber;
110
+ latencySkewThreshold: z.ZodNumber;
111
+ confirmationWindow: z.ZodInt;
112
+ ewmaLambda: z.ZodOptional<z.ZodNumber>;
113
+ stabilityThreshold: z.ZodOptional<z.ZodNumber>;
114
+ }, z.core.$strip>;
115
+ export declare const backtestSnapshotSchema: z.ZodObject<{
116
+ currentStdDev: z.ZodNumber;
117
+ baselineStdDev: z.ZodNumber;
118
+ coverageGapCount: z.ZodInt;
119
+ totalCoverageCells: z.ZodInt;
120
+ latencyP95: z.ZodOptional<z.ZodNumber>;
121
+ latencyP50: z.ZodOptional<z.ZodNumber>;
122
+ }, z.core.$strip>;
123
+ export declare const taprMetricsSchema: z.ZodObject<{
124
+ precision: z.ZodNumber;
125
+ recall: z.ZodNumber;
126
+ f1: z.ZodNumber;
127
+ detectionDelay: z.ZodNumber;
128
+ }, z.core.$strip>;
129
+ export declare const degradationBacktestResultSchema: z.ZodObject<{
130
+ config: z.ZodObject<{
131
+ varianceThreshold: z.ZodNumber;
132
+ coverageDropoutThreshold: z.ZodNumber;
133
+ latencySkewThreshold: z.ZodNumber;
134
+ confirmationWindow: z.ZodInt;
135
+ ewmaLambda: z.ZodOptional<z.ZodNumber>;
136
+ stabilityThreshold: z.ZodOptional<z.ZodNumber>;
137
+ }, z.core.$strip>;
138
+ truePositives: z.ZodInt;
139
+ falsePositives: z.ZodInt;
140
+ falseNegatives: z.ZodInt;
141
+ trueNegatives: z.ZodInt;
142
+ tapr: z.ZodObject<{
143
+ precision: z.ZodNumber;
144
+ recall: z.ZodNumber;
145
+ f1: z.ZodNumber;
146
+ detectionDelay: z.ZodNumber;
147
+ }, z.core.$strip>;
148
+ pointPrecision: z.ZodNumber;
149
+ pointRecall: z.ZodNumber;
150
+ pointF1: z.ZodNumber;
151
+ }, z.core.$strip>;
152
+ export declare const backtestSweepResultSchema: z.ZodObject<{
153
+ results: z.ZodArray<z.ZodObject<{
154
+ config: z.ZodObject<{
155
+ varianceThreshold: z.ZodNumber;
156
+ coverageDropoutThreshold: z.ZodNumber;
157
+ latencySkewThreshold: z.ZodNumber;
158
+ confirmationWindow: z.ZodInt;
159
+ ewmaLambda: z.ZodOptional<z.ZodNumber>;
160
+ stabilityThreshold: z.ZodOptional<z.ZodNumber>;
161
+ }, z.core.$strip>;
162
+ truePositives: z.ZodInt;
163
+ falsePositives: z.ZodInt;
164
+ falseNegatives: z.ZodInt;
165
+ trueNegatives: z.ZodInt;
166
+ tapr: z.ZodObject<{
167
+ precision: z.ZodNumber;
168
+ recall: z.ZodNumber;
169
+ f1: z.ZodNumber;
170
+ detectionDelay: z.ZodNumber;
171
+ }, z.core.$strip>;
172
+ pointPrecision: z.ZodNumber;
173
+ pointRecall: z.ZodNumber;
174
+ pointF1: z.ZodNumber;
175
+ }, z.core.$strip>>;
176
+ bestByF1: z.ZodObject<{
177
+ config: z.ZodObject<{
178
+ varianceThreshold: z.ZodNumber;
179
+ coverageDropoutThreshold: z.ZodNumber;
180
+ latencySkewThreshold: z.ZodNumber;
181
+ confirmationWindow: z.ZodInt;
182
+ ewmaLambda: z.ZodOptional<z.ZodNumber>;
183
+ stabilityThreshold: z.ZodOptional<z.ZodNumber>;
184
+ }, z.core.$strip>;
185
+ truePositives: z.ZodInt;
186
+ falsePositives: z.ZodInt;
187
+ falseNegatives: z.ZodInt;
188
+ trueNegatives: z.ZodInt;
189
+ tapr: z.ZodObject<{
190
+ precision: z.ZodNumber;
191
+ recall: z.ZodNumber;
192
+ f1: z.ZodNumber;
193
+ detectionDelay: z.ZodNumber;
194
+ }, z.core.$strip>;
195
+ pointPrecision: z.ZodNumber;
196
+ pointRecall: z.ZodNumber;
197
+ pointF1: z.ZodNumber;
198
+ }, z.core.$strip>;
199
+ bestByRecall: z.ZodObject<{
200
+ config: z.ZodObject<{
201
+ varianceThreshold: z.ZodNumber;
202
+ coverageDropoutThreshold: z.ZodNumber;
203
+ latencySkewThreshold: z.ZodNumber;
204
+ confirmationWindow: z.ZodInt;
205
+ ewmaLambda: z.ZodOptional<z.ZodNumber>;
206
+ stabilityThreshold: z.ZodOptional<z.ZodNumber>;
207
+ }, z.core.$strip>;
208
+ truePositives: z.ZodInt;
209
+ falsePositives: z.ZodInt;
210
+ falseNegatives: z.ZodInt;
211
+ trueNegatives: z.ZodInt;
212
+ tapr: z.ZodObject<{
213
+ precision: z.ZodNumber;
214
+ recall: z.ZodNumber;
215
+ f1: z.ZodNumber;
216
+ detectionDelay: z.ZodNumber;
217
+ }, z.core.$strip>;
218
+ pointPrecision: z.ZodNumber;
219
+ pointRecall: z.ZodNumber;
220
+ pointF1: z.ZodNumber;
221
+ }, z.core.$strip>;
222
+ currentConfigResult: z.ZodObject<{
223
+ config: z.ZodObject<{
224
+ varianceThreshold: z.ZodNumber;
225
+ coverageDropoutThreshold: z.ZodNumber;
226
+ latencySkewThreshold: z.ZodNumber;
227
+ confirmationWindow: z.ZodInt;
228
+ ewmaLambda: z.ZodOptional<z.ZodNumber>;
229
+ stabilityThreshold: z.ZodOptional<z.ZodNumber>;
230
+ }, z.core.$strip>;
231
+ truePositives: z.ZodInt;
232
+ falsePositives: z.ZodInt;
233
+ falseNegatives: z.ZodInt;
234
+ trueNegatives: z.ZodInt;
235
+ tapr: z.ZodObject<{
236
+ precision: z.ZodNumber;
237
+ recall: z.ZodNumber;
238
+ f1: z.ZodNumber;
239
+ detectionDelay: z.ZodNumber;
240
+ }, z.core.$strip>;
241
+ pointPrecision: z.ZodNumber;
242
+ pointRecall: z.ZodNumber;
243
+ pointF1: z.ZodNumber;
244
+ }, z.core.$strip>;
245
+ }, z.core.$strip>;
246
+ export declare const ahpComparisonSchema: z.ZodObject<{
247
+ metricA: z.ZodString;
248
+ metricB: z.ZodString;
249
+ preference: z.ZodPipe<z.ZodEnum<{
250
+ 1: "1";
251
+ 3: "3";
252
+ 5: "5";
253
+ 7: "7";
254
+ 9: "9";
255
+ }>, z.ZodTransform<1 | 7 | 3 | 5 | 9, "1" | "3" | "5" | "7" | "9">>;
256
+ preferred: z.ZodEnum<{
257
+ A: "A";
258
+ B: "B";
259
+ }>;
260
+ }, z.core.$strip>;
261
+ export type AHPComparisonInput = z.infer<typeof ahpComparisonSchema>;
262
+ export declare const tunedCQIWeightsSchema: z.ZodObject<{
263
+ featureVersion: z.ZodString;
264
+ weights: z.ZodRecord<z.ZodString, z.ZodNumber>;
265
+ ahpWeights: z.ZodRecord<z.ZodString, z.ZodNumber>;
266
+ criticWeights: z.ZodRecord<z.ZodString, z.ZodNumber>;
267
+ alpha: z.ZodNumber;
268
+ consistencyRatio: z.ZodNumber;
269
+ incidentCorrelations: z.ZodRecord<z.ZodString, z.ZodNumber>;
270
+ }, z.core.$strip>;
271
+ /**
272
+ * Compute empirical CDF position for a value within a percentile distribution.
273
+ * Returns 0-1 representing where the value falls in the empirical distribution.
274
+ * Uses linear interpolation between known percentile points.
275
+ */
276
+ export declare function empiricalCDF(value: number, dist: PercentileDistribution): number;
277
+ /**
278
+ * Minimum sample size for quantile-based scaling to be considered valid.
279
+ * Below this threshold, quantile scaling falls back to uniform even when
280
+ * distribution data is provided (insufficient data for reliable percentiles).
281
+ */
282
+ export declare const MIN_QUANTILE_SAMPLE_SIZE = 100;
283
+ /**
284
+ * Adaptive score color band using per-metric scaling strategies.
285
+ * Falls back to uniform scoreColorBand when distribution data is unavailable.
286
+ *
287
+ * @param value - Raw score value
288
+ * @param metric - Metric name (used to look up ScaleStrategy)
289
+ * @param direction - Score direction (maximize or minimize)
290
+ * @param distribution - Optional empirical percentile distribution for quantile scaling
291
+ * @param sampleSize - Number of samples used to compute distribution; quantile requires >= 100
292
+ * @example
293
+ * ```ts
294
+ * adaptiveScoreColorBand(0.92, 'relevance'); // 'excellent' (uniform, maximize)
295
+ * adaptiveScoreColorBand(0.3, 'hallucination', 'minimize'); // 'excellent' (low hallucination is good)
296
+ * adaptiveScoreColorBand(0.5, 'coherence', 'maximize', dist, 200); // quantile-scaled band
297
+ * ```
298
+ */
299
+ export declare function adaptiveScoreColorBand(value: number, metric: string, direction?: ScoreDirection, distribution?: PercentileDistribution, sampleSize?: number): ScoreColorBand;
300
+ /**
301
+ * Metrics where lower scores are better. Used as fallback when alert
302
+ * configuration is unavailable for direction inference.
303
+ */
304
+ export declare const MINIMIZE_METRICS: Set<string>;
305
+ /**
306
+ * Infer ScoreDirection from a metric's alert configuration.
307
+ * Metrics whose primary alert fires on 'below' are 'maximize' metrics.
308
+ * Metrics whose primary alert fires on 'above' are 'minimize' metrics.
309
+ */
310
+ export declare function inferScoreDirection(alertDirection: ThresholdDirection | undefined): ScoreDirection;
311
+ /** Filter category for evaluation table */
312
+ export type LabelFilterCategory = 'Pass' | 'Review' | 'Fail';
313
+ /** Label ordinal mapping result */
314
+ export interface LabelOrdinal {
315
+ /** Numeric ordinal (0-4, higher = better) */
316
+ ordinal: number;
317
+ /** 3-tier filter category */
318
+ category: LabelFilterCategory;
319
+ /** Whether the label was found in the lookup table */
320
+ mapped: boolean;
321
+ }
322
+ /**
323
+ * Convert a free-text score label to an ordinal value for sorting/filtering.
324
+ * Unmapped labels default to ordinal 2 ("Review") with mapped=false.
325
+ *
326
+ * @param label - Free-text score label from EvaluationResult.scoreLabel
327
+ * @returns Ordinal encoding with category and mapping status
328
+ */
329
+ export declare function labelToOrdinal(label: string): LabelOrdinal;
330
+ /**
331
+ * Get the label filter category for a given ordinal value.
332
+ */
333
+ export declare function ordinalToCategory(ordinal: number): LabelFilterCategory;
334
+ /** CQI per-metric contribution breakdown */
335
+ export declare const cqiContributionSchema: z.ZodObject<{
336
+ metric: z.ZodString;
337
+ rawScore: z.ZodNumber;
338
+ normalizedScore: z.ZodNumber;
339
+ weight: z.ZodNumber;
340
+ contribution: z.ZodNumber;
341
+ }, z.core.$strip>;
342
+ export type CQIContribution = z.infer<typeof cqiContributionSchema>;
343
+ /** Composite Quality Index result */
344
+ export declare const compositeQualityIndexSchema: z.ZodObject<{
345
+ featureVersion: z.ZodString;
346
+ value: z.ZodNumber;
347
+ weights: z.ZodRecord<z.ZodString, z.ZodNumber>;
348
+ contributions: z.ZodArray<z.ZodObject<{
349
+ metric: z.ZodString;
350
+ rawScore: z.ZodNumber;
351
+ normalizedScore: z.ZodNumber;
352
+ weight: z.ZodNumber;
353
+ contribution: z.ZodNumber;
354
+ }, z.core.$strip>>;
355
+ }, z.core.$strip>;
356
+ export type CompositeQualityIndex = z.infer<typeof compositeQualityIndexSchema>;
357
+ /** Default CQI weights per design doc Section 16.3 */
358
+ export declare const DEFAULT_CQI_WEIGHTS: CQIWeights;
359
+ /**
360
+ * Compute Composite Quality Index from metric results.
361
+ * Direction-normalizes scores before weighting (minimize metrics are inverted).
362
+ * Metrics with no data are excluded; weights are renormalized over available metrics.
363
+ *
364
+ * @param metrics - Quality metric results from dashboard summary
365
+ * @param weights - Optional custom weights (default: DEFAULT_CQI_WEIGHTS)
366
+ * @returns CQI result, or undefined if no metrics have data
367
+ * @example
368
+ * ```ts
369
+ * const cqi = computeCQI(dashboardSummary.metrics);
370
+ * // { score: 0.82, band: 'good', contributions: [...], featureVersion: '1.0' }
371
+ *
372
+ * // Custom weights emphasizing relevance
373
+ * const custom = computeCQI(metrics, { relevance: 0.4, faithfulness: 0.3, coherence: 0.3 });
374
+ * ```
375
+ */
376
+ export declare function computeCQI(metrics: QualityMetricResult[], weights?: CQIWeights): CompositeQualityIndex | undefined;
377
+ /** Per-weight sensitivity result */
378
+ export interface CQISensitivityEntry {
379
+ metric: string;
380
+ baseWeight: number;
381
+ low: number;
382
+ high: number;
383
+ range: number;
384
+ }
385
+ /** CQI sensitivity analysis result */
386
+ export interface CQISensitivity {
387
+ baseValue: number;
388
+ delta: number;
389
+ entries: CQISensitivityEntry[];
390
+ }
391
+ /**
392
+ * Compute CQI sensitivity by perturbing each weight +/- delta.
393
+ * Reports the CQI range when each weight varies independently.
394
+ *
395
+ * Only metrics with positive base weights are analyzed. Perturbed weights are
396
+ * not renormalized — computeCQI handles renormalization internally, so the
397
+ * sensitivity reflects the effect of shifting one weight's relative importance.
398
+ *
399
+ * @param metrics - Quality metric results
400
+ * @param weights - Base weights (default: DEFAULT_CQI_WEIGHTS)
401
+ * @param delta - Perturbation amount (default: 0.05)
402
+ * @returns Sensitivity analysis, or undefined if CQI cannot be computed
403
+ * @example
404
+ * ```ts
405
+ * const sens = computeCQISensitivity(metrics);
406
+ * // { baseValue: 0.82, delta: 0.05, entries: [
407
+ * // { metric: 'relevance', baseWeight: 0.25, low: 0.80, high: 0.84, range: 0.04 },
408
+ * // ...
409
+ * // ]}
410
+ * ```
411
+ */
412
+ export declare function computeCQISensitivity(metrics: QualityMetricResult[], weights?: CQIWeights, delta?: number): CQISensitivity | undefined;
413
+ /** Metric dynamics: velocity, acceleration, and breach projection */
414
+ export interface MetricDynamics {
415
+ featureVersion: string;
416
+ /** Rate of change per hour */
417
+ velocity: number;
418
+ /** Change in velocity per hour */
419
+ acceleration: number;
420
+ /** True when acceleration sign flips (inflection point) */
421
+ inflectionDetected: boolean;
422
+ /** Linear projection of status based on current velocity */
423
+ projectedStatus: 'healthy' | 'warning' | 'critical';
424
+ /** ISO timestamp when threshold would be breached at current velocity */
425
+ projectedBreachTime?: string;
426
+ /** Confidence in dynamics estimate (0-1). Higher with more trend history and smoothing. */
427
+ confidence: number;
428
+ }
429
+ /**
430
+ * Compute metric dynamics from consecutive trend snapshots.
431
+ * When trendHistory is provided, applies exponential smoothing (alpha=0.3)
432
+ * to suppress noise amplification from second derivatives.
433
+ *
434
+ * @param currentTrend - Current period trend
435
+ * @param previousTrend - Previous period trend (for acceleration)
436
+ * @param periodHours - Length of each period in hours
437
+ * @param thresholds - Alert thresholds for breach projection
438
+ * @param trendHistory - Optional array of historical trends (oldest first) for EMA smoothing
439
+ * @returns Metric dynamics, or undefined if insufficient data
440
+ * @example
441
+ * ```ts
442
+ * const dynamics = computeMetricDynamics(
443
+ * { currentValue: 0.85, previousValue: 0.80, delta: 0.05 },
444
+ * { currentValue: 0.80, previousValue: 0.78, delta: 0.02 },
445
+ * 1, // 1-hour periods
446
+ * [{ value: 0.7, direction: 'below', severity: 'warning' }]
447
+ * );
448
+ * // { velocity: 0.05, acceleration: 0.03, confidence: 0.5, projectedStatus: 'healthy', ... }
449
+ * ```
450
+ */
451
+ export declare function computeMetricDynamics(currentTrend: MetricTrend, previousTrend: MetricTrend | undefined, periodHours: number, thresholds?: Array<{
452
+ value: number;
453
+ direction: ThresholdDirection;
454
+ severity: 'warning' | 'critical';
455
+ }>, trendHistory?: MetricTrend[]): MetricDynamics | undefined;
456
+ /** Extended confidence with coverage uniformity */
457
+ export interface CoverageWeightedConfidence extends ConfidenceIndicator {
458
+ featureVersion: string;
459
+ /** Coverage uniformity (0-1), normalized Shannon entropy of evaluations per input */
460
+ coverageUniformity: number;
461
+ /** Effective sample size: sampleCount * coverageUniformity */
462
+ effectiveSampleSize: number;
463
+ /** Recalculated confidence level using effective sample size */
464
+ adjustedLevel: 'low' | 'medium' | 'high';
465
+ }
466
+ /**
467
+ * Compute Normalized Shannon Entropy (Pielou's J) for distribution uniformity.
468
+ * Returns 1 for perfectly uniform, 0 for maximally concentrated.
469
+ *
470
+ * @param counts - Array of counts per group (e.g., evaluations per metric category)
471
+ * @returns Normalized Shannon entropy J in [0,1] where 1 = perfectly uniform
472
+ */
473
+ export declare function computeNormalizedEntropy(counts: number[]): number;
474
+ /**
475
+ * Compute coverage-weighted confidence.
476
+ * Adjusts confidence level based on evaluation distribution uniformity across inputs.
477
+ * A metric with 100 evaluations all from one session is less representative
478
+ * than 100 evaluations across 50 sessions.
479
+ *
480
+ * @param baseConfidence - Base confidence indicator from computeConfidence()
481
+ * @param evaluationsPerInput - Count of evaluations per input (session or trace)
482
+ * @returns Extended confidence with coverage weighting
483
+ */
484
+ export declare function computeCoverageWeightedConfidence(baseConfidence: ConfidenceIndicator, evaluationsPerInput: number[]): CoverageWeightedConfidence;
485
+ /**
486
+ * Variance ratio threshold for "increasing" trend detection.
487
+ * Research R5: shifted from 1.5x (~87% coverage, 13% FP) to 2.0 (~95% coverage, 5% FP).
488
+ * Aligns with Datadog 2-3 sigma default anomaly bounds.
489
+ */
490
+ export declare const VARIANCE_INCREASE_THRESHOLD = 2;
491
+ /**
492
+ * Variance decrease threshold. Ratios below this indicate decreasing variance.
493
+ * Mirrors VARIANCE_INCREASE_THRESHOLD: values significantly below 1.0 indicate
494
+ * the metric is converging (less noisy than baseline).
495
+ */
496
+ export declare const VARIANCE_DECREASE_THRESHOLD = 0.7;
497
+ /**
498
+ * Coverage dropout rate threshold. Rates above this are considered degraded.
499
+ * A 20% gap rate means 1 in 5 coverage cells is missing evaluations.
500
+ */
501
+ export declare const COVERAGE_DROPOUT_THRESHOLD = 0.2;
502
+ /** EWMA smoothing factor. lambda=0.1 catches slow drift; higher = more reactive. */
503
+ export declare const EWMA_LAMBDA = 0.1;
504
+ /** Quality degradation signal computed from leading indicators */
505
+ export interface DegradationSignal {
506
+ /** Feature version for historical comparison validity */
507
+ featureVersion: string;
508
+ /** Variance trend direction */
509
+ varianceTrend: 'increasing' | 'stable' | 'decreasing';
510
+ /** Current stdDev / baseline stdDev ratio */
511
+ varianceRatio: number;
512
+ /** Coverage dropout rate (0-1) */
513
+ coverageDropoutRate: number;
514
+ /** Latency skew ratio (p95/p50) */
515
+ latencySkewRatio: number;
516
+ /** Predicted status based on feature combination */
517
+ predictedStatus: 'healthy' | 'warning' | 'critical';
518
+ /** EWMA drift signal: true when EWMA deviates from mean by > 2 * MAD */
519
+ ewmaDriftDetected: boolean;
520
+ /** Number of consecutive periods with active signals (for confirmation window) */
521
+ consecutiveBreaches: number;
522
+ /** Whether confirmation window is satisfied (>= 2 consecutive breaches) */
523
+ confirmed: boolean;
524
+ }
525
+ /**
526
+ * Compute EWMA (Exponentially Weighted Moving Average) from a time series.
527
+ * EWMA with lambda=0.1 catches slow quality drift that period-over-period deltas miss.
528
+ *
529
+ * @param values - Time-ordered score values (oldest first)
530
+ * @param lambda - Smoothing factor (0-1). Default: EWMA_LAMBDA (0.1)
531
+ * @returns Final EWMA value, or undefined if no values
532
+ */
533
+ export declare function computeEWMA(values: number[], lambda?: number): number | undefined;
534
+ /**
535
+ * Compute Median Absolute Deviation (MAD) for robust dispersion estimation.
536
+ * MAD is resistant to outliers unlike standard deviation.
537
+ * Scaled by 1.4826 for normal-equivalent consistency.
538
+ *
539
+ * @param values - Numeric values
540
+ * @returns Scaled MAD value, or 0 for insufficient data
541
+ */
542
+ export declare function computeMAD(values: number[]): number;
543
+ /**
544
+ * Detect EWMA drift by comparing the trailing EWMA to a baseline mean.
545
+ * The baseline is the first 70% of the series; drift is detected when the
546
+ * EWMA (which tracks recent values) deviates from the baseline by > k * MAD.
547
+ * When MAD = 0, falls back to range-based detection (> 10% of range).
548
+ */
549
+ export declare function detectEWMADrift(values: number[], lambda?: number, k?: number): boolean;
550
+ /** Options for degradation signal computation */
551
+ export interface DegradationSignalOptions {
552
+ /** Historical score values for EWMA drift detection (oldest first) */
553
+ historicalValues?: number[];
554
+ /** Number of consecutive prior breaches (for confirmation window) */
555
+ priorConsecutiveBreaches?: number;
556
+ }
557
+ /**
558
+ * Compute degradation signal from current and baseline metrics.
559
+ *
560
+ * @param currentStdDev - Current period score standard deviation
561
+ * @param baselineStdDev - Baseline period score standard deviation
562
+ * @param coverageGapCount - Number of missing coverage cells
563
+ * @param totalCoverageCells - Total coverage cells expected
564
+ * @param latencyP95 - Evaluation latency p95 (optional)
565
+ * @param latencyP50 - Evaluation latency p50 (optional)
566
+ * @param options - Additional options for EWMA drift and confirmation windows
567
+ */
568
+ export declare function computeDegradationSignal(currentStdDev: number | null, baselineStdDev: number | null, coverageGapCount: number, totalCoverageCells: number, latencyP95?: number | null, latencyP50?: number | null, options?: DegradationSignalOptions): DegradationSignal;
569
+ /** Causal confidence level for correlation interpretations */
570
+ export type CausalConfidence = 'correlation' | 'granger' | 'verified';
571
+ /** Result of a bivariate Granger causality test */
572
+ export interface GrangerResult {
573
+ /** F-statistic for the restricted vs unrestricted model comparison */
574
+ fStatistic: number;
575
+ /** P-value from the F-distribution */
576
+ pValue: number;
577
+ /** Number of lags used in the AR models */
578
+ lags: number;
579
+ /**
580
+ * Detected causal direction.
581
+ * A and B correspond to CorrelationFeature.metricA and metricB (alphabetically sorted).
582
+ */
583
+ direction: 'A->B' | 'B->A' | 'bidirectional' | 'none';
584
+ }
585
+ /** Data-driven correlation between two metrics */
586
+ export interface CorrelationFeature {
587
+ featureVersion: string;
588
+ metricA: string;
589
+ metricB: string;
590
+ /** Pearson R correlation coefficient (-1 to 1) */
591
+ pearsonR: number;
592
+ /** Spearman rank correlation coefficient (-1 to 1). Better for bounded [0,1] scores. */
593
+ spearmanR: number;
594
+ /** Cohen's d effect size for the correlation (small: 0.2, medium: 0.5, large: 0.8) */
595
+ effectSize: number;
596
+ /** Time lag in hours where correlation is strongest */
597
+ lagHours: number;
598
+ /** Whether the correlation passed BH-FDR significance testing */
599
+ significant: boolean;
600
+ /** P-value from t-distribution for pearsonR */
601
+ pValue: number | null;
602
+ /** Causal confidence level (R3: correlation-only until Granger/verified) */
603
+ causalConfidence: CausalConfidence;
604
+ /** Fraction of periods where both are degraded simultaneously */
605
+ coOccurrenceRate: number;
606
+ /** Whether this pair matches a configured MetricCorrelationRule */
607
+ isKnownToxicCombo: boolean;
608
+ /** Granger causality test result (only when grangerConfig.enabled and sufficient data) */
609
+ granger?: GrangerResult;
610
+ }
611
+ /** Configuration for Granger causality testing */
612
+ export interface GrangerConfig {
613
+ /** Enable Granger test on significant correlation pairs (default: false) */
614
+ enabled: boolean;
615
+ /** Minimum sample size for valid Granger test (default: 30) */
616
+ minSampleSize?: number;
617
+ /** Significance level for F-test (default: 0.05) */
618
+ significanceLevel?: number;
619
+ }
620
+ /** Options for correlation matrix computation */
621
+ export interface CorrelationOptions {
622
+ /** Maximum lag steps to test (default: 0 = no lag detection) */
623
+ maxLagSteps?: number;
624
+ /** Hours per lag step (default: 1) */
625
+ lagStepHours?: number;
626
+ /** FDR q-value threshold for Benjamini-Hochberg (default: 0.05) */
627
+ fdrQ?: number;
628
+ /** Granger causality test configuration */
629
+ grangerConfig?: GrangerConfig;
630
+ }
631
+ /**
632
+ * Compute Pearson correlation coefficient between two numeric arrays.
633
+ * Returns 0 for insufficient data (< 3 points) or zero variance.
634
+ */
635
+ export declare function computePearsonR(xs: number[], ys: number[]): number;
636
+ /**
637
+ * Compute p-value for Pearson R using t-distribution approximation.
638
+ * t = r * sqrt((n-2) / (1-r^2)), two-tailed test.
639
+ * Uses the incomplete beta function approximation for t-distribution CDF.
640
+ */
641
+ export declare function pearsonPValue(r: number, n: number): number | null;
642
+ /**
643
+ * Apply Benjamini-Hochberg FDR correction to a set of p-values.
644
+ * Returns a boolean array indicating which hypotheses are significant.
645
+ *
646
+ * @param pValues - Array of p-values
647
+ * @param q - FDR threshold (default: 0.05)
648
+ * @returns Boolean array: true = significant at given FDR level
649
+ */
650
+ export declare function benjaminiHochberg(pValues: number[], q?: number): boolean[];
651
+ /**
652
+ * Compute Spearman rank correlation coefficient.
653
+ * Converts values to fractional ranks (average rank for ties) then computes Pearson R on ranks.
654
+ * Better than Pearson for bounded [0,1] quality scores that may have non-linear relationships.
655
+ */
656
+ export declare function computeSpearmanR(xs: number[], ys: number[]): number;
657
+ /**
658
+ * Compute Granger causality for a pair of time series.
659
+ * Tests both directions (A->B and B->A) using the best lag from correlation analysis.
660
+ *
661
+ * @param seriesA - Time-ordered scores for metric A
662
+ * @param seriesB - Time-ordered scores for metric B
663
+ * @param lags - Number of lags to use (from correlation lag detection, minimum 1)
664
+ * @param significanceLevel - P-value threshold (default: 0.05)
665
+ */
666
+ export declare function computeGrangerCausality(seriesA: number[], seriesB: number[], lags: number, significanceLevel?: number): GrangerResult | undefined;
667
+ /**
668
+ * Compute correlation matrix across all metric pairs.
669
+ * Supports time-lag detection and BH-FDR significance testing.
670
+ *
671
+ * Empty metric time series arrays are valid input and result in `pearsonR=0`
672
+ * for any pair involving that metric (insufficient data for correlation).
673
+ *
674
+ * @param metricTimeSeries - Map of metric name to time-ordered score arrays
675
+ * @param knownToxicCombos - Set of "metricA:metricB" pairs from correlation rules
676
+ * @param degradedPeriods - Map of metric name to boolean arrays (true = degraded in that period)
677
+ * @param options - Lag detection and significance testing options
678
+ * @example
679
+ * ```ts
680
+ * const series = new Map([
681
+ * ['relevance', [0.9, 0.85, 0.88, 0.92]],
682
+ * ['faithfulness', [0.8, 0.82, 0.79, 0.85]],
683
+ * ]);
684
+ * const correlations = computeCorrelationMatrix(series);
685
+ * // [{ metricA: 'faithfulness', metricB: 'relevance', pearsonR: 0.87, ... }]
686
+ * ```
687
+ */
688
+ export declare function computeCorrelationMatrix(metricTimeSeries: Map<string, number[]>, knownToxicCombos?: Set<string>, degradedPeriods?: Map<string, boolean[]>, options?: CorrelationOptions): CorrelationFeature[];
689
+ /**
690
+ * Compute percentile distribution from an array of numeric scores.
691
+ * Uses linear interpolation between adjacent sorted values.
692
+ *
693
+ * @param scores - Array of numeric scores (unsorted ok, will be sorted internally)
694
+ * @returns PercentileDistribution with p10/p25/p50/p75/p90, or undefined if < 3 scores
695
+ */
696
+ export declare function computePercentileDistribution(scores: number[]): PercentileDistribution | undefined;
697
+ /**
698
+ * Compute the percentile rank of a value within a sorted array.
699
+ * Returns the fraction of values in the array that are <= the given value (0-1).
700
+ *
701
+ * @param value - The value to rank
702
+ * @param sortedScores - Pre-sorted (ascending) array of scores
703
+ * @returns Percentile rank (0-1)
704
+ */
705
+ export declare function computePercentileRank(value: number, sortedScores: number[]): number;
706
+ /**
707
+ * Streaming percentile estimator backed by DDSketch.
708
+ * Wraps `@datadog/sketches-js` with a simplified API for quality pipeline use.
709
+ */
710
+ export declare class StreamingPercentile {
711
+ private readonly sketch;
712
+ private totalCount;
713
+ constructor();
714
+ /** Add a single value to the sketch */
715
+ add(value: number): void;
716
+ /** Add multiple values at once */
717
+ addAll(values: number[]): void;
718
+ /** Get the current total count of observed values */
719
+ count(): number;
720
+ /** Estimate a percentile (0-100) from the sketch */
721
+ percentile(p: number): number;
722
+ /** Get full percentile distribution */
723
+ distribution(): PercentileDistribution | undefined;
724
+ }
725
+ /** Calibration state persisted between pipeline runs */
726
+ export interface CalibrationState {
727
+ /** ISO timestamp of last calibration */
728
+ lastCalibrated: string;
729
+ /** Per-metric percentile distributions */
730
+ distributions: Record<string, {
731
+ distribution: PercentileDistribution;
732
+ sampleSize: number;
733
+ /** Window start (ISO date) */
734
+ windowStart: string;
735
+ /** Window end (ISO date) */
736
+ windowEnd: string;
737
+ }>;
738
+ /** PSI values from last recalibration check */
739
+ psiValues?: Record<string, number>;
740
+ /** Raw scores used to compute distributions (for PSI comparison on next run) */
741
+ rawScores?: Record<string, number[]>;
742
+ }
743
+ /** Population Stability Index result */
744
+ export interface PSIResult {
745
+ psi: number;
746
+ /** true if PSI > PSI_RECALIBRATION_THRESHOLD (distribution has shifted) */
747
+ drifted: boolean;
748
+ }
749
+ /**
750
+ * Compute Population Stability Index (PSI) between two distributions.
751
+ * PSI measures distribution shift: < 0.1 = stable, 0.1–0.25 = moderate, > 0.25 = significant.
752
+ *
753
+ * Uses a `bins`-bin histogram comparison between expected (baseline) and actual (current).
754
+ * Returns { psi: 0, drifted: false } when either array has fewer than MIN_QUANTILE_SAMPLE_SIZE
755
+ * values (insufficient data for reliable estimation).
756
+ */
757
+ export declare function computePSI(expected: number[], actual: number[], bins?: number): PSIResult;
758
+ /**
759
+ * Determine whether calibration state should be rewritten based on PSI drift.
760
+ * Returns shouldWrite: true on first run (null previousState) or if any metric drifts.
761
+ */
762
+ export declare function shouldRecalibrate(previousState: CalibrationState | null, currentScores: Record<string, number[]>): {
763
+ shouldWrite: boolean;
764
+ psiValues: Record<string, number>;
765
+ };
766
+ /**
767
+ * Compute calibration distributions from per-metric evaluation scores.
768
+ * Skips metrics with fewer than MIN_QUANTILE_SAMPLE_SIZE scores (unreliable percentiles).
769
+ * Uses StreamingPercentile to compute p10/p25/p50/p75/p90 for each qualifying metric.
770
+ * windowStart/windowEnd metadata reflects a CALIBRATION_WINDOW_DAYS rolling window,
771
+ * but the caller is responsible for pre-filtering scores to that window before passing them in.
772
+ */
773
+ export declare function computeCalibrationDistributions(evaluationsByMetric: Record<string, number[]>): CalibrationState['distributions'];
774
+ /**
775
+ * Load calibration state from persisted JSON file.
776
+ * Returns null if file does not exist or is malformed.
777
+ */
778
+ export declare function loadCalibrationState(dir: string): CalibrationState | null;
779
+ /**
780
+ * Save calibration state to JSON file for cross-run use by the dashboard API.
781
+ * Validates state before writing to ensure round-trip integrity.
782
+ */
783
+ export declare function saveCalibrationState(dir: string, state: CalibrationState): void;
784
+ /** Input data for the derived features pipeline */
785
+ export interface DerivedFeaturesInput {
786
+ /** Quality metric results from dashboard summary (Step 2 output) */
787
+ metrics: QualityMetricResult[];
788
+ /** Per-metric time series for correlation computation */
789
+ metricTimeSeries?: Map<string, number[]>;
790
+ /** Evaluations per input for coverage-weighted confidence */
791
+ evaluationsPerInput?: Map<string, number[]>;
792
+ /** Degraded periods per metric for co-occurrence */
793
+ degradedPeriods?: Map<string, boolean[]>;
794
+ /** Known toxic combination keys ("metricA:metricB") */
795
+ knownToxicCombos?: Set<string>;
796
+ /** Optional custom CQI weights */
797
+ cqiWeights?: CQIWeights;
798
+ /** Correlation computation options */
799
+ correlationOptions?: CorrelationOptions;
800
+ }
801
+ /** Complete derived features output (Step 3 output) */
802
+ export interface DerivedFeaturesResult {
803
+ /** Composite Quality Index */
804
+ cqi?: CompositeQualityIndex;
805
+ /** CQI sensitivity analysis */
806
+ cqiSensitivity?: CQISensitivity;
807
+ /** Per-metric coverage-weighted confidence */
808
+ coverageConfidence: Map<string, CoverageWeightedConfidence>;
809
+ /** Correlation matrix across metric pairs */
810
+ correlations: CorrelationFeature[];
811
+ }
812
+ /**
813
+ * Compute all derived features in correct dependency order.
814
+ *
815
+ * Pipeline ordering (QM2):
816
+ * Step 2 (aggregate) outputs: metrics, CoverageHeatmap
817
+ * ↓
818
+ * Step 3a: CQI (depends on metrics)
819
+ * Step 3b: Coverage-weighted confidence (depends on metrics + CoverageHeatmap via evaluationsPerInput)
820
+ * Step 3c: Correlation matrix (depends on metricTimeSeries, independent of 3a/3b)
821
+ *
822
+ * CoverageHeatmap must be computed before calling this function.
823
+ * The evaluationsPerInput parameter is derived from CoverageHeatmap output.
824
+ *
825
+ * @param input - Aggregated data from Step 2
826
+ * @returns All derived features
827
+ */
828
+ export declare function computeDerivedFeatures(input: DerivedFeaturesInput): DerivedFeaturesResult;
829
+ /** A historical data point for backtesting the degradation detector */
830
+ export interface BacktestSnapshot {
831
+ currentStdDev: number;
832
+ baselineStdDev: number;
833
+ coverageGapCount: number;
834
+ totalCoverageCells: number;
835
+ latencyP50?: number;
836
+ latencyP95?: number;
837
+ historicalValues?: number[];
838
+ }
839
+ /** Detector configuration for threshold sweep */
840
+ export type BacktestConfig = z.infer<typeof backtestConfigSchema>;
841
+ /** Labeled incident for backtest replay against historical time series */
842
+ export interface LabeledIncident {
843
+ startTime: string;
844
+ endTime: string;
845
+ severity: 'minor' | 'major' | 'critical';
846
+ }
847
+ /** Parameter grid for sweepDegradationParams — all combinations are evaluated */
848
+ export declare const BACKTEST_SWEEP: {
849
+ readonly varianceThreshold: readonly [1.5, 1.75, 2, 2.5, 3];
850
+ readonly coverageDropoutThreshold: readonly [0.1, 0.15, 0.2, 0.3, 0.4];
851
+ readonly ewmaLambda: readonly [0.05, 0.1, 0.15, 0.2, 0.3];
852
+ readonly confirmationWindow: readonly [1, 2, 3, 4];
853
+ readonly stabilityThreshold: readonly [0.005, 0.01, 0.02, 0.03, 0.05];
854
+ };
855
+ /** Current production detector configuration used as baseline in sweepDegradationParams */
856
+ export declare const CURRENT_PRODUCTION_CONFIG: BacktestConfig;
857
+ /** Result of a backtestDegradationConfig run with TaPR and point-based metrics */
858
+ export type DegradationBacktestResult = z.infer<typeof degradationBacktestResultSchema>;
859
+ /** Result of a sweepDegradationParams run with ranked TaPR metrics and baseline comparison */
860
+ export type BacktestSweepResult = z.infer<typeof backtestSweepResultSchema>;
861
+ /** Result of a single LOO fold in sweepWithCrossValidation */
862
+ export interface CrossValidationFold {
863
+ /** The incident that was held out for this fold */
864
+ heldOutIncident: LabeledIncident;
865
+ /** Sweep result trained on the remaining incidents */
866
+ sweepResult: BacktestSweepResult;
867
+ }
868
+ /** Std dev of each BacktestConfig parameter across LOO folds */
869
+ export interface ParameterStability {
870
+ varianceThresholdStdDev: number;
871
+ coverageDropoutThresholdStdDev: number;
872
+ confirmationWindowStdDev: number;
873
+ }
874
+ /** Result of sweepWithCrossValidation */
875
+ export interface CrossValidationResult {
876
+ /** Full sweep on all incidents */
877
+ fullSweep: BacktestSweepResult;
878
+ /** One fold per held-out incident */
879
+ folds: CrossValidationFold[];
880
+ /** Std dev of best-F1 config parameters across folds (higher = less stable selection) */
881
+ parameterStability: ParameterStability;
882
+ /** True when every LOO fold selects the same best-by-F1 config as the full sweep */
883
+ isStable: boolean;
884
+ }
885
+ /**
886
+ * Inject synthetic degradation into baseline snapshots for testing.
887
+ * Returns a new array with degradation injected at the specified range.
888
+ *
889
+ * - variance_spike: sets currentStdDev = baselineStdDev * magnitude
890
+ * - coverage_gap: sets coverageGapCount = totalCoverageCells * magnitude (fraction)
891
+ * - latency_jump: sets latencyP95 = latencyP50 * magnitude (creates skew ratio = magnitude)
892
+ */
893
+ export declare function injectDegradationScenario(snapshots: BacktestSnapshot[], type: 'variance_spike' | 'coverage_gap' | 'latency_jump', magnitude: number, startIdx: number, duration: number): BacktestSnapshot[];
894
+ /** Zod schema for feature visibility configuration per role */
895
+ export declare const roleFeatureConfigSchema: z.ZodObject<{
896
+ showCQI: z.ZodBoolean;
897
+ showCQIBreakdown: z.ZodBoolean;
898
+ showVariance: z.ZodBoolean;
899
+ showAcceleration: z.ZodBoolean;
900
+ showProjectedBreach: z.ZodBoolean;
901
+ showCorrelationRemediation: z.ZodBoolean;
902
+ showCoverageHeatmap: z.ZodBoolean;
903
+ showPipelineFunnel: z.ZodBoolean;
904
+ showProvenance: z.ZodBoolean;
905
+ showRawExport: z.ZodBoolean;
906
+ explanationTruncation: z.ZodNumber;
907
+ maxWorstEvaluations: z.ZodNumber;
908
+ }, z.core.$strip>;
909
+ /**
910
+ * Get the feature configuration for a role.
911
+ */
912
+ export declare function getRoleFeatureConfig(role: RoleType): z.infer<typeof roleFeatureConfigSchema>;
913
+ /** Bridge between sync-to-kv bucket data and computeDegradationSignal() inputs */
914
+ export interface RollingDegradationInput {
915
+ /** Metric name (matches QUALITY_METRICS key) */
916
+ metricName: string;
917
+ /** Standard deviation of scores in the current (most recent) bucket */
918
+ currentStdDev: number | null;
919
+ /** Standard deviation of scores in the baseline period (first 70% of buckets) */
920
+ baselineStdDev: number | null;
921
+ /** Number of time buckets with 0 evaluations (proxy for coverage gaps) */
922
+ bucketSparsityGaps: number;
923
+ /** Total number of time buckets in the window */
924
+ totalBuckets: number;
925
+ /** Bucket averages ordered oldest-first (for EWMA drift detection) */
926
+ historicalValues: number[];
927
+ /** Consecutive breach count from previous sync run */
928
+ priorConsecutiveBreaches: number;
929
+ }
930
+ /** Per-metric degradation report with full context */
931
+ export interface DegradationReport {
932
+ /** Metric name (matches QUALITY_METRICS key) */
933
+ metricName: string;
934
+ /** Degradation signal from computeDegradationSignal() */
935
+ signal: DegradationSignal;
936
+ /**
937
+ * Trend from computeTrend() for the same window.
938
+ * Always null from computeRollingDegradationSignals — computeTrend() requires
939
+ * QualityMetricConfig (not available in the rolling signal context). Callers
940
+ * that have metric config should enrich this field after receiving the report.
941
+ */
942
+ trend: MetricTrend | null;
943
+ /** Window over which the signal was computed */
944
+ window: {
945
+ startDate: string;
946
+ endDate: string;
947
+ };
948
+ /** Baseline period used for stdDev comparison */
949
+ baselinePeriod: {
950
+ startDate: string;
951
+ endDate: string;
952
+ };
953
+ /** Total evaluation count across all buckets */
954
+ evaluationCount: number;
955
+ }
956
+ /** Persisted state for consecutive breach tracking across sync runs */
957
+ export interface DegradationState {
958
+ /** ISO timestamp of last sync run that computed degradation signals */
959
+ lastRun: string;
960
+ /** metricName -> consecutive breach count from most recent computation */
961
+ breaches: Record<string, number>;
962
+ }
963
+ /**
964
+ * Compute sample standard deviation from an array of scores.
965
+ * Returns null for arrays with fewer than 2 values.
966
+ */
967
+ export declare function computeStdDev(values: number[]): number | null;
968
+ /**
969
+ * Load degradation state from persisted JSON file.
970
+ * Returns empty state if file does not exist or is malformed.
971
+ */
972
+ export declare function loadDegradationState(dir: string): DegradationState;
973
+ /**
974
+ * Save degradation state to JSON file for cross-run breach tracking.
975
+ * Validates state before writing to ensure round-trip integrity.
976
+ */
977
+ export declare function saveDegradationState(dir: string, state: DegradationState): void;
978
+ /**
979
+ * Compute degradation signals for all metrics from time-bucketed evaluation data.
980
+ *
981
+ * Bridges the gap between sync-to-kv's bucket structure and computeDegradationSignal()'s
982
+ * input requirements:
983
+ * - Computes stdDev inline from bucket scores (not available in computeAggregations)
984
+ * - Defines baseline as first DEGRADATION_BASELINE_RATIO (70%) of non-empty buckets
985
+ * - Uses bucket sparsity (buckets with 0 evals / total buckets) as coverage proxy
986
+ * - Passes latencyP95/P50 as null (latencySkewRatio defaults to 1.0)
987
+ * - Reads priorConsecutiveBreaches from persisted DegradationState
988
+ *
989
+ * Skips metrics with fewer than MIN_BUCKETS_FOR_SIGNAL (3) non-empty buckets.
990
+ */
991
+ export declare function computeRollingDegradationSignals(timeBuckets: Record<string, Array<{
992
+ scores: number[];
993
+ startTime: string;
994
+ endTime: string;
995
+ }>>, metricNames: string[], state: DegradationState, window: {
996
+ startDate: string;
997
+ endDate: string;
998
+ }): DegradationReport[];
999
+ export interface AHPComparison {
1000
+ metricA: string;
1001
+ metricB: string;
1002
+ preference: 1 | 3 | 5 | 7 | 9;
1003
+ preferred: 'A' | 'B';
1004
+ }
1005
+ export interface CRITICWeights {
1006
+ weights: Record<string, number>;
1007
+ informationContent: Record<string, number>;
1008
+ }
1009
+ export interface QualityIncident {
1010
+ timestamp: string;
1011
+ metricScores: Record<string, number>;
1012
+ cqiValue: number;
1013
+ severity: 'minor' | 'major' | 'critical';
1014
+ }
1015
+ export interface TunedCQIWeights {
1016
+ featureVersion: string;
1017
+ weights: Record<string, number>;
1018
+ ahpWeights: Record<string, number>;
1019
+ criticWeights: Record<string, number>;
1020
+ alpha: number;
1021
+ consistencyRatio: number;
1022
+ incidentCorrelations: Record<string, number>;
1023
+ }
1024
+ export declare function computeAHPWeights(comparisons: AHPComparison[], metrics: string[]): {
1025
+ weights: Record<string, number>;
1026
+ consistencyRatio: number;
1027
+ };
1028
+ export declare function computeCRITICWeights(metricScoreHistory: Record<string, number[]>): CRITICWeights;
1029
+ export declare function computeHybridCQIWeights(ahpWeights: Record<string, number>, criticWeights: Record<string, number>, incidents: QualityIncident[], metrics: string[], alpha?: number): TunedCQIWeights;
1030
+ export type TaPRMetrics = z.infer<typeof taprMetricsSchema>;
1031
+ export declare function computeTaPR(detectedRanges: Array<{
1032
+ start: number;
1033
+ end: number;
1034
+ }>, incidentRanges: Array<{
1035
+ start: number;
1036
+ end: number;
1037
+ }>): TaPRMetrics;
1038
+ type BacktestTimeSeriesPoint = {
1039
+ timestamp: number;
1040
+ currentStdDev: number;
1041
+ baselineStdDev: number;
1042
+ coverageGapCount: number;
1043
+ totalCoverageCells: number;
1044
+ latencyP95: number;
1045
+ latencyP50: number;
1046
+ historicalValues: number[];
1047
+ };
1048
+ /**
1049
+ * Runs a degradation signal backtest with a specific parameter configuration.
1050
+ * Replays historical time series data and compares detected degradation periods
1051
+ * against labeled incidents using TaPR and point-based metrics.
1052
+ */
1053
+ export declare function backtestDegradationConfig(config: BacktestConfig, timeSeries: BacktestTimeSeriesPoint[], incidents: LabeledIncident[]): DegradationBacktestResult;
1054
+ /**
1055
+ * Runs a full parameter sweep across the BACKTEST_SWEEP grid, ranks results by TaPR F1,
1056
+ * and includes the current production config as a baseline comparison.
1057
+ */
1058
+ export declare function sweepDegradationParams(timeSeries: BacktestTimeSeriesPoint[], incidents: LabeledIncident[]): BacktestSweepResult;
1059
+ /**
1060
+ * Leave-one-out cross-validation for sweepDegradationParams.
1061
+ *
1062
+ * With only 5-10 incidents, overfitting risk is high. This function holds out
1063
+ * each incident in turn, runs the full sweep on the remaining incidents, and
1064
+ * reports variance in the optimal config selection across folds.
1065
+ *
1066
+ * High parameterVariance values indicate that the best config is sensitive to
1067
+ * individual incidents and should not be trusted for threshold graduation.
1068
+ */
1069
+ export declare function sweepWithCrossValidation(timeSeries: BacktestTimeSeriesPoint[], incidents: LabeledIncident[]): CrossValidationResult;
1070
+ export {};
1071
+ //# sourceMappingURL=quality-feature-engineering.d.ts.map