@tangle-network/agent-eval 0.136.0 → 0.138.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/CHANGELOG.md +86 -1
  2. package/README.md +37 -2
  3. package/dist/{agent-profile-cell-OhuTee9n.js → agent-profile-cell-CbfBm2g6.js} +2 -2
  4. package/dist/{agent-profile-cell-OhuTee9n.js.map → agent-profile-cell-CbfBm2g6.js.map} +1 -1
  5. package/dist/{agent-profile-cell-CCm3l2v2.d.ts → agent-profile-cell-Cw0PVwDr.d.ts} +2 -2
  6. package/dist/{agent-profile-cell-CCm3l2v2.d.ts.map → agent-profile-cell-Cw0PVwDr.d.ts.map} +1 -1
  7. package/dist/analyst/index.d.ts +574 -18
  8. package/dist/analyst/index.d.ts.map +1 -1
  9. package/dist/analyst/index.js +25 -5
  10. package/dist/analyst/index.js.map +1 -1
  11. package/dist/{analyze-runs-jjCmF8pU.js → analyze-runs-BScZvqMV.js} +6 -6
  12. package/dist/{analyze-runs-jjCmF8pU.js.map → analyze-runs-BScZvqMV.js.map} +1 -1
  13. package/dist/{analyze-runs-Cda5Xkj1.d.ts → analyze-runs-CPYxfPWT.d.ts} +6 -6
  14. package/dist/{analyze-runs-Cda5Xkj1.d.ts.map → analyze-runs-CPYxfPWT.d.ts.map} +1 -1
  15. package/dist/{baseline-BUeFcgrn.js → baseline-C-GocmIW.js} +2 -2
  16. package/dist/{baseline-BUeFcgrn.js.map → baseline-C-GocmIW.js.map} +1 -1
  17. package/dist/benchmark-D8dkki-J.js +554 -0
  18. package/dist/benchmark-D8dkki-J.js.map +1 -0
  19. package/dist/benchmark-DlQgU_XI.d.ts +236 -0
  20. package/dist/benchmark-DlQgU_XI.d.ts.map +1 -0
  21. package/dist/benchmark-command-CMqVqReF.js +4332 -0
  22. package/dist/benchmark-command-CMqVqReF.js.map +1 -0
  23. package/dist/benchmarks/index.d.ts +1 -1
  24. package/dist/benchmarks/index.js +1 -1
  25. package/dist/{benchmarks-Dfgm9ts5.js → benchmarks-BJ_xK5rQ.js} +4 -3
  26. package/dist/{benchmarks-Dfgm9ts5.js.map → benchmarks-BJ_xK5rQ.js.map} +1 -1
  27. package/dist/builder-eval/index.js +2 -2
  28. package/dist/campaign/index.d.ts +6 -6
  29. package/dist/campaign/index.js +4 -4
  30. package/dist/{campaign-Dz8uQnhC.js → campaign-BIBS-NHV.js} +219 -78
  31. package/dist/campaign-BIBS-NHV.js.map +1 -0
  32. package/dist/cli.js +9 -2
  33. package/dist/cli.js.map +1 -1
  34. package/dist/client-BwPKohkJ.d.ts +202 -0
  35. package/dist/client-BwPKohkJ.d.ts.map +1 -0
  36. package/dist/completion-verifier-B4-IMYcS.d.ts +240 -0
  37. package/dist/completion-verifier-B4-IMYcS.d.ts.map +1 -0
  38. package/dist/contract/index.d.ts +10 -9
  39. package/dist/contract/index.d.ts.map +1 -1
  40. package/dist/contract/index.js +13 -13
  41. package/dist/control.d.ts +2 -2
  42. package/dist/control.js +1 -1
  43. package/dist/{cost-ledger-fGS_u_O1.d.ts → cost-ledger-B1D3COAc.d.ts} +6 -5
  44. package/dist/{cost-ledger-fGS_u_O1.d.ts.map → cost-ledger-B1D3COAc.d.ts.map} +1 -1
  45. package/dist/{cost-ledger-DHAjwNj7.js → cost-ledger-CHDLA0Ss.js} +91 -46
  46. package/dist/cost-ledger-CHDLA0Ss.js.map +1 -0
  47. package/dist/{dataset-BvtnC8Dc.d.ts → dataset-v_Y5902-.d.ts} +2 -2
  48. package/dist/{dataset-BvtnC8Dc.d.ts.map → dataset-v_Y5902-.d.ts.map} +1 -1
  49. package/dist/{default-registry-Brxr728w.d.ts → default-registry-PUhIVRWz.d.ts} +77 -138
  50. package/dist/default-registry-PUhIVRWz.d.ts.map +1 -0
  51. package/dist/{default-registry-CHmdy2An.js → default-registry-lp5R0lve.js} +1617 -291
  52. package/dist/default-registry-lp5R0lve.js.map +1 -0
  53. package/dist/{errors-8YnH8WlF.js → errors-D-LKuDhb.js} +8 -2
  54. package/dist/errors-D-LKuDhb.js.map +1 -0
  55. package/dist/{errors-CEk209JS.d.ts → errors-DkfjIDvD.d.ts} +9 -3
  56. package/dist/errors-DkfjIDvD.d.ts.map +1 -0
  57. package/dist/{eval-campaign-Cc8WZJ6b.js → eval-campaign-9MozgKL7.js} +6 -6
  58. package/dist/{eval-campaign-Cc8WZJ6b.js.map → eval-campaign-9MozgKL7.js.map} +1 -1
  59. package/dist/exact-types-Dpw2LeHA.d.ts +234 -0
  60. package/dist/exact-types-Dpw2LeHA.d.ts.map +1 -0
  61. package/dist/{extract-usage-DIQpN-ww.js → extract-usage-CS391dOE.js} +3 -3
  62. package/dist/{extract-usage-DIQpN-ww.js.map → extract-usage-CS391dOE.js.map} +1 -1
  63. package/dist/{feedback-trajectory-CVaeREXV.d.ts → feedback-trajectory-CoNep7rl.d.ts} +91 -3
  64. package/dist/feedback-trajectory-CoNep7rl.d.ts.map +1 -0
  65. package/dist/fuzz.d.ts +1 -1
  66. package/dist/fuzz.js +2 -2
  67. package/dist/hosted/index.d.ts +3 -2
  68. package/dist/hosted/index.d.ts.map +1 -1
  69. package/dist/{index-AbhwHp0V.d.ts → index-B2-IxCMB.d.ts} +2 -2
  70. package/dist/{index-AbhwHp0V.d.ts.map → index-B2-IxCMB.d.ts.map} +1 -1
  71. package/dist/index-BipJlj-C.d.ts +316 -0
  72. package/dist/index-BipJlj-C.d.ts.map +1 -0
  73. package/dist/{index-CQsJcqch.d.ts → index-CjVYlVBK.d.ts} +5 -5
  74. package/dist/{index-CQsJcqch.d.ts.map → index-CjVYlVBK.d.ts.map} +1 -1
  75. package/dist/{index-B4Fjfo5U.d.ts → index-D0cxAdaV.d.ts} +89 -317
  76. package/dist/index-D0cxAdaV.d.ts.map +1 -0
  77. package/dist/{index-DuhJaaiH.d.ts → index-DEb46kc6.d.ts} +2 -2
  78. package/dist/index-DEb46kc6.d.ts.map +1 -0
  79. package/dist/{index-C2fkZhv_.d.ts → index-sMN_hI4E.d.ts} +3 -3
  80. package/dist/{index-C2fkZhv_.d.ts.map → index-sMN_hI4E.d.ts.map} +1 -1
  81. package/dist/index.d.ts +30 -70
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +175 -35
  84. package/dist/index.js.map +1 -1
  85. package/dist/{client-DcvgkaZi.d.ts → insight-report-CXd8VBDR.d.ts} +5 -203
  86. package/dist/insight-report-CXd8VBDR.d.ts.map +1 -0
  87. package/dist/{integrity-rmVhXWA7.d.ts → integrity-B-MLFz0I.d.ts} +3 -3
  88. package/dist/{integrity-rmVhXWA7.d.ts.map → integrity-B-MLFz0I.d.ts.map} +1 -1
  89. package/dist/integrity-CCXTftiL.js +1360 -0
  90. package/dist/integrity-CCXTftiL.js.map +1 -0
  91. package/dist/{integrity-BzRbCHzi.js → integrity-fdt8XPAv.js} +2 -2
  92. package/dist/{integrity-BzRbCHzi.js.map → integrity-fdt8XPAv.js.map} +1 -1
  93. package/dist/ledger-core/index.d.ts +1 -1
  94. package/dist/ledger-core/index.js +1 -1
  95. package/dist/{ledger-core-DAKFKRzi.js → ledger-core-C0Yx1I14.js} +303 -110
  96. package/dist/ledger-core-C0Yx1I14.js.map +1 -0
  97. package/dist/{llm-client-DHx8pzyJ.js → llm-client-Cj3c7PEm.js} +6 -6
  98. package/dist/llm-client-Cj3c7PEm.js.map +1 -0
  99. package/dist/meta-eval/index.d.ts +2 -2
  100. package/dist/meta-eval/index.js +3 -3
  101. package/dist/{mint-DyRUc9k6.js → mint-Ctwk079K.js} +4 -4
  102. package/dist/{mint-DyRUc9k6.js.map → mint-Ctwk079K.js.map} +1 -1
  103. package/dist/multishot/index.d.ts +2 -2
  104. package/dist/openapi.json +1 -1
  105. package/dist/{paired-arms-BbFKrAU-.js → paired-arms-iZ08VFMN.js} +3 -3
  106. package/dist/{paired-arms-BbFKrAU-.js.map → paired-arms-iZ08VFMN.js.map} +1 -1
  107. package/dist/pipelines/index.js +2 -2
  108. package/dist/profile-cell.d.ts +1 -1
  109. package/dist/profile-cell.js +1 -1
  110. package/dist/{proposal-findings-DCawte-y.js → proposal-findings-2GIUo1et.js} +2 -68
  111. package/dist/proposal-findings-2GIUo1et.js.map +1 -0
  112. package/dist/{propose-review-control-SQ-n9-We.js → propose-review-control-DLXz4FCX.js} +2 -2
  113. package/dist/{propose-review-control-SQ-n9-We.js.map → propose-review-control-DLXz4FCX.js.map} +1 -1
  114. package/dist/registry-C4yJTza7.d.ts +178 -0
  115. package/dist/registry-C4yJTza7.d.ts.map +1 -0
  116. package/dist/{release-report-DooPguBc.js → release-report-B5XPBvAU.js} +4 -4
  117. package/dist/{release-report-DooPguBc.js.map → release-report-B5XPBvAU.js.map} +1 -1
  118. package/dist/{release-report-DpBxGGI1.d.ts → release-report-CoyvyLBs.d.ts} +4 -4
  119. package/dist/{release-report-DpBxGGI1.d.ts.map → release-report-CoyvyLBs.d.ts.map} +1 -1
  120. package/dist/{replay-C6wRg47C.js → replay-Cb-4Vf0k.js} +249 -8
  121. package/dist/replay-Cb-4Vf0k.js.map +1 -0
  122. package/dist/{replay-BRfMIs81.d.ts → replay-DbIYwso6.d.ts} +227 -52
  123. package/dist/replay-DbIYwso6.d.ts.map +1 -0
  124. package/dist/reporting.d.ts +4 -4
  125. package/dist/reporting.js +4 -4
  126. package/dist/{researcher-Doo95b50.d.ts → researcher-BCeOEjtR.d.ts} +6 -7
  127. package/dist/researcher-BCeOEjtR.d.ts.map +1 -0
  128. package/dist/{reward-hacking-a-kYs0-i.js → reward-hacking-GyN0kMd8.js} +3 -3
  129. package/dist/{reward-hacking-a-kYs0-i.js.map → reward-hacking-GyN0kMd8.js.map} +1 -1
  130. package/dist/{reward-hacking-D-QqXvg-.d.ts → reward-hacking-sE2l_NV6.d.ts} +2 -2
  131. package/dist/{reward-hacking-D-QqXvg-.d.ts.map → reward-hacking-sE2l_NV6.d.ts.map} +1 -1
  132. package/dist/rl.d.ts +6 -6
  133. package/dist/rl.js +9 -9
  134. package/dist/rollout/index.d.ts +1 -1
  135. package/dist/rollout/index.js +3 -3
  136. package/dist/{rollout-DLSUIWLu.js → rollout-DQFl0UXA.js} +2 -2
  137. package/dist/{rollout-DLSUIWLu.js.map → rollout-DQFl0UXA.js.map} +1 -1
  138. package/dist/{rubric-predictive-validity-BJf-8ejY.js → rubric-predictive-validity-BRR632r1.js} +2 -2
  139. package/dist/{rubric-predictive-validity-BJf-8ejY.js.map → rubric-predictive-validity-BRR632r1.js.map} +1 -1
  140. package/dist/{rubric-predictive-validity-C1dCLcvb.d.ts → rubric-predictive-validity-w2klGv1u.d.ts} +2 -2
  141. package/dist/{rubric-predictive-validity-C1dCLcvb.d.ts.map → rubric-predictive-validity-w2klGv1u.d.ts.map} +1 -1
  142. package/dist/{run-evidence-DokQtX0-.d.ts → run-evidence-CbE0A8Xg.d.ts} +3 -3
  143. package/dist/{run-evidence-DokQtX0-.d.ts.map → run-evidence-CbE0A8Xg.d.ts.map} +1 -1
  144. package/dist/{run-record-DcObtIGh.d.ts → run-record-DwHMk1Ai.d.ts} +4 -4
  145. package/dist/{run-record-DcObtIGh.d.ts.map → run-record-DwHMk1Ai.d.ts.map} +1 -1
  146. package/dist/{run-record-BIwU2wdV.js → run-record-vRgqWmJw.js} +3 -3
  147. package/dist/{run-record-BIwU2wdV.js.map → run-record-vRgqWmJw.js.map} +1 -1
  148. package/dist/{semantic-concept-judge-Btozx3Vc.js → semantic-concept-judge-DYXDPZW0.js} +12 -6
  149. package/dist/semantic-concept-judge-DYXDPZW0.js.map +1 -0
  150. package/dist/{server-Bz3WQJs6.js → server-DLEvyW2z.js} +3 -3
  151. package/dist/{server-Bz3WQJs6.js.map → server-DLEvyW2z.js.map} +1 -1
  152. package/dist/single-run-lock-D_bS5xhj.js +318 -0
  153. package/dist/single-run-lock-D_bS5xhj.js.map +1 -0
  154. package/dist/{skill-usage-BDQVPIG1.d.ts → skill-usage-Bv3G4VkA.d.ts} +36 -48
  155. package/dist/skill-usage-Bv3G4VkA.d.ts.map +1 -0
  156. package/dist/{skillopt-optimization-method-0UmPD6aP.js → skillopt-optimization-method-CjKMZy0d.js} +10 -185
  157. package/dist/skillopt-optimization-method-CjKMZy0d.js.map +1 -0
  158. package/dist/{skillopt-optimization-method-CwSYkv35.d.ts → skillopt-optimization-method-CzfnA8O-.d.ts} +11 -12
  159. package/dist/skillopt-optimization-method-CzfnA8O-.d.ts.map +1 -0
  160. package/dist/{statistics-CnGCLLqc.js → statistics-ByxzSiOM.js} +2 -2
  161. package/dist/{statistics-CnGCLLqc.js.map → statistics-ByxzSiOM.js.map} +1 -1
  162. package/dist/{statistics-CKOqre5S.d.ts → statistics-mf70aXKp.d.ts} +2 -2
  163. package/dist/{statistics-CKOqre5S.d.ts.map → statistics-mf70aXKp.d.ts.map} +1 -1
  164. package/dist/store-otlp-BenKynPE.js +1688 -0
  165. package/dist/store-otlp-BenKynPE.js.map +1 -0
  166. package/dist/{summary-report-BEk8OFLs.js → summary-report-9A5y7EsK.js} +4 -4
  167. package/dist/{summary-report-BEk8OFLs.js.map → summary-report-9A5y7EsK.js.map} +1 -1
  168. package/dist/{summary-report-CPMINBqs.d.ts → summary-report-BKinV4yD.d.ts} +3 -3
  169. package/dist/{summary-report-CPMINBqs.d.ts.map → summary-report-BKinV4yD.d.ts.map} +1 -1
  170. package/dist/supervisor-run/index.d.ts +3 -2
  171. package/dist/supervisor-run/index.js +3 -2
  172. package/dist/{supervisor-run-Dr5HnTup.js → supervisor-run-B2EWUmQY.js} +28 -454
  173. package/dist/supervisor-run-B2EWUmQY.js.map +1 -0
  174. package/dist/{test-graded-scenario-BsqWLmPt.js → test-graded-scenario-JHcKQNpq.js} +2 -2
  175. package/dist/{test-graded-scenario-BsqWLmPt.js.map → test-graded-scenario-JHcKQNpq.js.map} +1 -1
  176. package/dist/tools-DZGdROtG.js +255 -0
  177. package/dist/tools-DZGdROtG.js.map +1 -0
  178. package/dist/traces.d.ts +6 -7
  179. package/dist/traces.js +6 -6
  180. package/dist/types-5q2T25iW.d.ts +804 -0
  181. package/dist/types-5q2T25iW.d.ts.map +1 -0
  182. package/dist/{types-DVjczBM9.d.ts → types-BtJhn8v6.d.ts} +260 -6
  183. package/dist/types-BtJhn8v6.d.ts.map +1 -0
  184. package/dist/{index-CyC1BTmn.d.ts → types-Dea6tiVI.d.ts} +16 -238
  185. package/dist/types-Dea6tiVI.d.ts.map +1 -0
  186. package/dist/{types-DiWLru6Z.d.ts → types-zFYez3PK.d.ts} +5 -5
  187. package/dist/{types-DiWLru6Z.d.ts.map → types-zFYez3PK.d.ts.map} +1 -1
  188. package/dist/wire/index.d.ts +3 -3
  189. package/dist/wire/index.js +1 -1
  190. package/docs/feedback-trajectories.md +100 -1
  191. package/docs/trace-analysis.md +494 -58
  192. package/package.json +9 -3
  193. package/dist/analyst-BkTS3C58.d.ts +0 -89
  194. package/dist/analyst-BkTS3C58.d.ts.map +0 -1
  195. package/dist/analyst-j5je5J7c.js +0 -152
  196. package/dist/analyst-j5je5J7c.js.map +0 -1
  197. package/dist/campaign-Dz8uQnhC.js.map +0 -1
  198. package/dist/client-DcvgkaZi.d.ts.map +0 -1
  199. package/dist/concurrency-MUjT7VjM.js +0 -109
  200. package/dist/concurrency-MUjT7VjM.js.map +0 -1
  201. package/dist/cost-ledger-DHAjwNj7.js.map +0 -1
  202. package/dist/default-registry-Brxr728w.d.ts.map +0 -1
  203. package/dist/default-registry-CHmdy2An.js.map +0 -1
  204. package/dist/errors-8YnH8WlF.js.map +0 -1
  205. package/dist/errors-CEk209JS.d.ts.map +0 -1
  206. package/dist/feedback-trajectory-CVaeREXV.d.ts.map +0 -1
  207. package/dist/index-B4Fjfo5U.d.ts.map +0 -1
  208. package/dist/index-CyC1BTmn.d.ts.map +0 -1
  209. package/dist/index-DuhJaaiH.d.ts.map +0 -1
  210. package/dist/ledger-core-DAKFKRzi.js.map +0 -1
  211. package/dist/llm-client-BiK4HW0u.d.ts +0 -290
  212. package/dist/llm-client-BiK4HW0u.d.ts.map +0 -1
  213. package/dist/llm-client-DHx8pzyJ.js.map +0 -1
  214. package/dist/proposal-findings-DCawte-y.js.map +0 -1
  215. package/dist/raw-provider-sink-BU29Sh8h.d.ts +0 -134
  216. package/dist/raw-provider-sink-BU29Sh8h.d.ts.map +0 -1
  217. package/dist/replay-BRfMIs81.d.ts.map +0 -1
  218. package/dist/replay-C6wRg47C.js.map +0 -1
  219. package/dist/researcher-Doo95b50.d.ts.map +0 -1
  220. package/dist/semantic-concept-judge-Btozx3Vc.js.map +0 -1
  221. package/dist/skill-usage-BDQVPIG1.d.ts.map +0 -1
  222. package/dist/skillopt-optimization-method-0UmPD6aP.js.map +0 -1
  223. package/dist/skillopt-optimization-method-CwSYkv35.d.ts.map +0 -1
  224. package/dist/store-CxJry_cs.d.ts +0 -229
  225. package/dist/store-CxJry_cs.d.ts.map +0 -1
  226. package/dist/supervisor-run-Dr5HnTup.js.map +0 -1
  227. package/dist/tools-D8yTtNSN.js +0 -1190
  228. package/dist/tools-D8yTtNSN.js.map +0 -1
  229. package/dist/types-Cc3qbqzj.d.ts +0 -387
  230. package/dist/types-Cc3qbqzj.d.ts.map +0 -1
  231. package/dist/types-DVjczBM9.d.ts.map +0 -1
@@ -1,9 +1,65 @@
1
- import { c as CostLedgerHandle } from "./cost-ledger-fGS_u_O1.js";
2
- import { A as ChatClient } from "./types-Cc3qbqzj.js";
3
- import { t as TraceAnalysisStore } from "./store-CxJry_cs.js";
4
- import { c as AnalystRunInputs, i as AnalystFinding, l as AnalystRunResult, n as AnalystContext, p as EvidenceRef, r as AnalystCost, s as AnalystRunEvent, t as Analyst, u as AnalystRunSummary } from "./types-DVjczBM9.js";
1
+ import { N as TraceAnalystSpan, i as AnalystFinding, n as AnalystContext, p as EvidenceRef, r as AnalystCost, x as TraceAnalysisStore } from "./types-BtJhn8v6.js";
2
+ import { l as ExactCapableAnalyst, u as ExactExecutionComponentIdentity } from "./exact-types-Dpw2LeHA.js";
3
+ import { n as AnalystRegistry, r as AnalystRegistryOptions } from "./registry-C4yJTza7.js";
5
4
  import { AxAIService, AxFunction } from "@ax-llm/ax";
6
5
  import { z } from "zod";
6
+ //#region src/trace-analyst/behavioral-metrics.d.ts
7
+ type SuboptimalCode = 'monotonic-input-growth' | 'output-length-decay' | 'single-tool-dependency' | 'no-self-verification';
8
+ interface SuboptimalSignal {
9
+ code: SuboptimalCode;
10
+ severity: 'high' | 'medium' | 'low';
11
+ /** Human-readable claim, with the backing numbers inlined. */
12
+ detail: string;
13
+ /** The exact figures the detector fired on — auditable, no model in the loop. */
14
+ evidence: Record<string, number | string | boolean>;
15
+ }
16
+ interface BehavioralMetrics {
17
+ /** The only trace represented by these metrics; null when spans are empty. */
18
+ traceId: string | null;
19
+ llmCallCount: number;
20
+ /** Causally serial LLM timelines. Parallel branches are never joined. */
21
+ tokenSequences: BehavioralTokenSequence[];
22
+ /** Token values from the longest serial timeline, retained for convenience. */
23
+ inputTokenTrajectory: number[];
24
+ outputTokenTrajectory: number[];
25
+ toolHistogram: Record<string, number>;
26
+ totalToolCalls: number;
27
+ distinctTools: number;
28
+ /** distinct/total tool calls; 1.0 when there are no tool calls. */
29
+ toolDiversityRatio: number;
30
+ hasSelfVerification: boolean;
31
+ signals: SuboptimalSignal[];
32
+ }
33
+ interface BehavioralTokenSequence {
34
+ scopeId: string;
35
+ spanIds: string[];
36
+ inputTokenTrajectory: Array<number | null>;
37
+ outputTokenTrajectory: Array<number | null>;
38
+ }
39
+ /**
40
+ * Reduce a span list to behavioral metrics + fired suboptimality signals.
41
+ * Pure + deterministic: same spans → same output, on any machine, no model.
42
+ */
43
+ declare function computeTraceMetrics(spans: readonly TraceAnalystSpan[]): BehavioralMetrics;
44
+ //#endregion
45
+ //#region src/analyst/behavioral-analyst.d.ts
46
+ interface BehavioralAnalystOptions {
47
+ /** Refuse larger unfiltered datasets instead of sampling them silently. Default 1,000. */
48
+ maxTraces?: number;
49
+ /** Evidence locations retained per finding. Counts still cover every analyzed trace. Default 20. */
50
+ maxEvidenceRefsPerFinding?: number;
51
+ }
52
+ /**
53
+ * Map computed signals → structured AnalystFindings. Pure: no LLM, no clock
54
+ * dependence beyond `produced_at` (overridable for deterministic tests).
55
+ */
56
+ declare function deriveEfficiencyFindings(metrics: BehavioralMetrics, opts?: {
57
+ analystId?: string;
58
+ producedAt?: string;
59
+ }): AnalystFinding[];
60
+ /** The deterministic behavioral/efficiency analyst (no LLM, any-model). */
61
+ declare function behavioralAnalyst(options?: BehavioralAnalystOptions): ExactCapableAnalyst<TraceAnalysisStore>;
62
+ //#endregion
7
63
  //#region src/analyst/finding-signature.d.ts
8
64
  declare const ANALYST_SEVERITIES: readonly ['critical', 'high', 'medium', 'low', 'info'];
9
65
  declare const RawAnalystEvidenceSchema: z.ZodObject<{
@@ -58,6 +114,12 @@ interface TraceAnalystKindSpec {
58
114
  actorDescription: string;
59
115
  /** Tool functions the actor may call. Pick narrow subsets via `ANALYST_TOOL_GROUPS`. */
60
116
  buildTools: (store: TraceAnalysisStore) => AxFunction[];
117
+ /**
118
+ * Deterministically prepare one bounded context value before model work.
119
+ * Returning a string uses Ax's long-context path without tools. Returning
120
+ * undefined keeps the normal tool-driven path.
121
+ */
122
+ prepareContext?: (store: TraceAnalysisStore, ctx: AnalystContext) => string | undefined | Promise<string | undefined>;
61
123
  /** Bounded semantic subqueries. `maxCalls: 0` disables model fan-out. */
62
124
  subqueries?: {
63
125
  maxCalls: number;
@@ -75,22 +137,14 @@ interface TraceAnalystKindSpec {
75
137
  postProcess?: (row: RawAnalystFinding, ctx: AnalystContext) => RawAnalystFinding | null;
76
138
  /** Minimum citations per finding. Default 1; rows below it are rejected. */
77
139
  minimumEvidenceCitations?: number;
78
- /** Optional optimizer hook populated when a kind wants to fit its prompt against labeled examples. */
79
- goldens?: TraceAnalystGolden[];
80
- }
81
- /**
82
- * One labeled example consumed by Ax optimizers (MIPRO / GEPA / Bootstrap).
83
- * Each input is the same `{question}` an analyst would receive; `expected`
84
- * is the ground-truth finding set a fitted prompt should produce on this
85
- * input. Metric: kind-specific (default: F1 on `finding_id` overlap).
86
- */
87
- interface TraceAnalystGolden {
88
- question: string;
89
- expected: ReadonlyArray<Omit<RawAnalystFinding, 'confidence'>>;
140
+ /** Reject a substantive report when no structured finding survives validation. */
141
+ requireStructuredFindings?: boolean;
90
142
  }
91
143
  interface CreateTraceAnalystKindOpts {
92
144
  /** AxAIService bound at registration time. */
93
145
  ai: AxAIService;
146
+ /** Required when this analyst is used by `runExact`; binds the effective AI service. */
147
+ aiIdentity?: ExactExecutionComponentIdentity;
94
148
  /** Required unless `ai` was created by {@link createAnalystAi}. */
95
149
  model?: string;
96
150
  /** Override the spec's `version` (e.g. when an optimizer has fitted a new prompt). */
@@ -119,7 +173,7 @@ interface CreateTraceAnalystKindOpts {
119
173
  * `analyze()` call (the agent carries chat-log + usage state we don't
120
174
  * want shared across analyst runs).
121
175
  */
122
- declare function createTraceAnalystKind(spec: TraceAnalystKindSpec, opts: CreateTraceAnalystKindOpts): Analyst<TraceAnalysisStore>;
176
+ declare function createTraceAnalystKind(spec: TraceAnalystKindSpec, opts: CreateTraceAnalystKindOpts): ExactCapableAnalyst<TraceAnalysisStore>;
123
177
  /**
124
178
  * Render a compact prior-findings block the actor reads alongside its
125
179
  * brief. Each row is one line so the actor can scan dozens cheaply.
@@ -138,139 +192,24 @@ declare function renderPriorFindings(prior: AnalystContext['priorFindings']): st
138
192
  /** Render findings produced earlier in this same registry run. */
139
193
  declare function renderUpstreamFindings(upstream: AnalystContext['upstreamFindings']): string;
140
194
  //#endregion
141
- //#region src/analyst/registry.d.ts
142
- interface AnalystHooks {
143
- /** Before analyze() — last chance to mutate ctx (e.g. inject tags, override budget). */
144
- onBeforeAnalyze?(args: {
145
- analyst: Analyst;
146
- ctx: AnalystContext;
147
- runId: string;
148
- }): void | Promise<void>;
149
- /** After every analyst (ok | failed | skipped). Use for telemetry, ingestion, rotation. */
150
- onAfterAnalyze?(args: {
151
- analyst: Analyst;
152
- summary: AnalystRunSummary;
153
- findings: AnalystFinding[];
154
- runId: string;
155
- }): void | Promise<void>;
156
- /**
157
- * On analyst exception. Hook MAY return findings to convert the
158
- * error into structured findings; the summary still reports 'failed'.
159
- * Return void to keep the default empty-findings behavior.
160
- */
161
- onError?(args: {
162
- analyst: Analyst;
163
- error: Error;
164
- runId: string;
165
- }): AnalystFinding[] | undefined | Promise<AnalystFinding[] | undefined>;
166
- /** Once after registry.run() completes. Use for final aggregation, persistence. */
167
- onComplete?(args: {
168
- result: AnalystRunResult;
169
- }): void | Promise<void>;
170
- }
171
- interface BudgetPolicy {
172
- /** Overall USD cap across the registry.run(). */
173
- totalUsd?: number;
174
- /** Per-analyst weight for the default allocator. Missing ids get weight 1. */
175
- weights?: Record<string, number>;
176
- /**
177
- * Custom allocator — receives the analyst, remaining/total budget, and
178
- * the count of analysts that will run. Returns the per-analyst budget
179
- * (or undefined only when the run has no overall cap). Overrides weights
180
- * when set.
181
- */
182
- allocate?: (args: {
183
- analyst: Analyst;
184
- totalUsd: number | undefined;
185
- remainingUsd: number | undefined;
186
- runningCount: number;
187
- }) => number | undefined;
188
- }
189
- interface AnalystRegistryOptions {
190
- /** Shared chat client passed to every LLM analyst via AnalystContext. */
191
- chat?: ChatClient;
192
- /** Logger callback. Defaults to a no-op. */
193
- log?: (msg: string, fields?: Record<string, unknown>) => void;
194
- /** Hooks invoked around analyze() — observability + customization seam. */
195
- hooks?: AnalystHooks;
196
- /** Default budget when run() doesn't override. */
197
- defaultBudget?: BudgetPolicy;
198
- }
199
- interface RegistryRunOpts {
200
- /** Restrict to a subset of registered analysts by id. */
201
- only?: string[];
202
- /** Skip these analysts even if registered. Useful for cheap iteration. */
203
- skip?: string[];
204
- /** Budget policy — totalUsd + optional weights/allocator. Falls back to options.defaultBudget. */
205
- budget?: BudgetPolicy;
206
- /** Active-work cap for the complete registry run. Model receipt settlement may follow. */
207
- timeoutMs?: number;
208
- /** Abort signal — forwarded into every analyst's context. */
209
- signal?: AbortSignal;
210
- /** Shared paid-call account forwarded to every analyst. */
211
- costLedger?: CostLedgerHandle;
212
- /** Attribution phase for calls written to `costLedger`. */
213
- costPhase?: string;
214
- /** Tags echoed into AnalystContext.tags — useful for tracking environment/version in findings. */
215
- tags?: Record<string, string>;
216
- /**
217
- * Prior-run findings made available as retrieval context to every
218
- * analyst via `ctx.priorFindings`. The registry forwards the slice
219
- * whose `analyst_id` matches each registered analyst so a kind sees
220
- * only its own history. Pass `{ '*': findings }` to broadcast to
221
- * every analyst (useful when several kinds share the same historical
222
- * context). For findings from this run, use `chainFindings` instead.
223
- */
224
- priorFindings?: ReadonlyArray<AnalystFinding> | Record<string, ReadonlyArray<AnalystFinding>>;
225
- /**
226
- * Pass findings produced earlier in this registry run to each later analyst
227
- * via `ctx.upstreamFindings`. Registration order is dependency order.
228
- * Disabled by default because independent analyst suites must opt in.
229
- */
230
- chainFindings?: boolean;
231
- }
232
- declare class AnalystRegistry {
233
- private readonly analysts;
234
- private readonly options;
235
- constructor(options?: AnalystRegistryOptions);
236
- register(analyst: Analyst): void;
237
- list(): ReadonlyArray<{
238
- id: string;
239
- description: string;
240
- version: string;
241
- cost: Analyst['cost'];
242
- }>;
243
- run(runId: string, inputs: AnalystRunInputs, runOpts?: RegistryRunOpts): Promise<AnalystRunResult>;
244
- /**
245
- * Streaming counterpart to `run()`. Emits `AnalystRunEvent` values
246
- * in real time — `run-started`, then per-analyst `skipped` /
247
- * `started` / `completed`, then a terminal `run-completed` whose
248
- * payload is the full `AnalystRunResult`. UIs use this to render
249
- * progress; persistence consumers use `run()` and read the result.
250
- *
251
- * Hooks (`onBeforeAnalyze` / `onAfterAnalyze` / `onError` /
252
- * `onComplete`) fire as before — streaming is additive, not a hook
253
- * replacement.
254
- */
255
- runStream(runId: string, inputs: AnalystRunInputs, runOpts?: RegistryRunOpts): AsyncGenerator<AnalystRunEvent, void, void>;
256
- private selectAnalysts;
257
- private routeInput;
258
- }
259
- //#endregion
260
195
  //#region src/analyst/default-registry.d.ts
261
196
  interface DefaultAnalystRegistryOptions {
262
197
  /** Ax service for the agentic RLM kinds. Omit → only the deterministic analyst. */
263
198
  ai?: AxAIService;
199
+ /** Required when agentic kinds will be selected by `runExact`. */
200
+ aiIdentity?: ExactExecutionComponentIdentity;
264
201
  /** Required unless `ai` was created by `createAnalystAi`. */
265
202
  model?: string;
266
203
  /** Which agentic kinds to register when `ai` is present. Default = the shipped suite. */
267
204
  kinds?: readonly TraceAnalystKindSpec[];
268
205
  /** Set false to omit the deterministic behavioral analyst (default: include). */
269
206
  includeBehavioral?: boolean;
207
+ /** Bound deterministic trace scanning without changing the store. */
208
+ behavioral?: BehavioralAnalystOptions;
270
209
  /** Forwarded to the AnalystRegistry constructor (signal, tags, priorFindings). */
271
210
  registry?: AnalystRegistryOptions;
272
211
  }
273
212
  declare function buildDefaultAnalystRegistry(opts?: DefaultAnalystRegistryOptions): AnalystRegistry;
274
213
  //#endregion
275
- export { RawAnalystEvidenceSchema as _, AnalystRegistryOptions as a, evidenceRefsFromRawFinding as b, CreateTraceAnalystKindOpts as c, createTraceAnalystKind as d, renderPriorFindings as f, RawAnalystEvidence as g, RAW_FINDING_SCHEMA_PROMPT as h, AnalystRegistry as i, TraceAnalystGolden as l, ANALYST_SEVERITIES as m, buildDefaultAnalystRegistry as n, BudgetPolicy as o, renderUpstreamFindings as p, AnalystHooks as r, RegistryRunOpts as s, DefaultAnalystRegistryOptions as t, TraceAnalystKindSpec as u, RawAnalystFinding as v, parseRawFinding as x, RawAnalystFindingSchema as y };
276
- //# sourceMappingURL=default-registry-Brxr728w.d.ts.map
214
+ export { computeTraceMetrics as C, SuboptimalSignal as S, behavioralAnalyst as _, createTraceAnalystKind as a, BehavioralTokenSequence as b, ANALYST_SEVERITIES as c, RawAnalystEvidenceSchema as d, RawAnalystFinding as f, BehavioralAnalystOptions as g, parseRawFinding as h, TraceAnalystKindSpec as i, RAW_FINDING_SCHEMA_PROMPT as l, evidenceRefsFromRawFinding as m, buildDefaultAnalystRegistry as n, renderPriorFindings as o, RawAnalystFindingSchema as p, CreateTraceAnalystKindOpts as r, renderUpstreamFindings as s, DefaultAnalystRegistryOptions as t, RawAnalystEvidence as u, deriveEfficiencyFindings as v, SuboptimalCode as x, BehavioralMetrics as y };
215
+ //# sourceMappingURL=default-registry-PUhIVRWz.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-registry-PUhIVRWz.d.ts","names":[],"sources":["../src/trace-analyst/behavioral-metrics.ts","../src/analyst/behavioral-analyst.ts","../src/analyst/finding-signature.ts","../src/analyst/kind-factory.ts","../src/analyst/default-registry.ts"],"mappings":";;;;;;KAoBY;UAMK;EACf,MAAM;EACN;;EAEA;;EAEA,UAAU;;UAGK;;EAEf;EACA;;EAEA,gBAAgB;;EAEhB;EACA;EACA,eAAe;EACf;EACA;;EAEA;EACA;EACA,SAAS;;UAGM;EACf;EACA;EACA,sBAAsB;EACtB,uBAAuB;;;;;;iBA+DT,oBAAoB,gBAAgB,qBAAqB;;;UCzFxD;;EAEf;;EAEA;;;;;;iBA+Dc,yBACd,SAAS,mBACT;EAAQ;EAAoB;IAC3B;;iBAkCa,kBACd,UAAS,2BACR,oBAAoB;;;cCtHV;cAEA,0BAAwB,EAAA;;;GAK1B,EAAA,KAAA;KAEC,qBAAqB,EAAE,aAAa;cAiBnC,yBAAuB,EAAA;;;;;;;;;;;;;;;;;GAKzB,EAAA,KAAA;KAEC,oBAAoB,EAAE,aAAa;;;;;;cAOlC;;iBAYG,2BAA2B,SAAS,oBAAoB;iBAQxD,gBACd,cACA,OAAO,aAAa,SAAS,mCAC5B;;;;;;;UC/Bc;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA,aAAa,OAAO,uBAAuB;;;;;;EAM3C,kBACE,OAAO,oBACP,KAAK,wCACmB;;EAE1B;IAAe;IAAkB;;;EAEjC;;EAEA;;EAEA;;EAEA,MAAM;;EAEN,eAAe,KAAK,mBAAmB,KAAK,mBAAmB;;EAE/D;;EAEA;;UAGe;;EAEf,IAAI;;EAEJ,aAAa;;EAEb;;EAEA;;;;;;;;EAQA;IAAa;IAAiB;IAAiB;IAAgB,mBAAmB;;;EAElF;;;;;;;;;;iBAWc,uBACd,MAAM,sBACN,MAAM,6BACL,oBAAoB;;;;;;;;;;;;;;;iBAyUP,oBAAoB,OAAO;;iBAyB3B,uBAAuB,UAAU;;;UC3chC;;EAEf,KAAK;;EAEL,aAAa;;EAEb;;EAEA,iBAAiB;;EAEjB;;EAEA,aAAa;;EAEb,WAAW;;iBAGG,4BACd,OAAM,gCACL"}