@tangle-network/agent-eval 0.172.0 → 0.173.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 (219) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +17 -2
  3. package/dist/adapters/http.d.ts +2 -2
  4. package/dist/analyst/index.d.ts +13 -13
  5. package/dist/analyst/index.js +7 -6
  6. package/dist/analyst/index.js.map +1 -1
  7. package/dist/{attestation-CJBGmMVh.d.ts → attestation-c1QvaBdX.d.ts} +2 -2
  8. package/dist/{attestation-CJBGmMVh.d.ts.map → attestation-c1QvaBdX.d.ts.map} +1 -1
  9. package/dist/{backend-integrity-e79K3UPD.d.ts → backend-integrity-CeuTgqsd.d.ts} +3 -4
  10. package/dist/backend-integrity-CeuTgqsd.d.ts.map +1 -0
  11. package/dist/{benchmark-h-h4bfqj.d.ts → benchmark-BjLGkfnN.d.ts} +3 -3
  12. package/dist/{benchmark-h-h4bfqj.d.ts.map → benchmark-BjLGkfnN.d.ts.map} +1 -1
  13. package/dist/{benchmark-command-DoFcisuM.js → benchmark-command-9S20PRel.js} +9 -9
  14. package/dist/{benchmark-command-DoFcisuM.js.map → benchmark-command-9S20PRel.js.map} +1 -1
  15. package/dist/benchmarks/index.d.ts +5 -5
  16. package/dist/benchmarks/index.js +3 -3
  17. package/dist/{bounded-process-CVOC_D3H.js → bounded-process-BBZob7vl.js} +64 -10
  18. package/dist/bounded-process-BBZob7vl.js.map +1 -0
  19. package/dist/builder-eval/index.d.ts +3 -3
  20. package/dist/builder-eval/index.js +2 -2
  21. package/dist/campaign/index.d.ts +9 -9
  22. package/dist/campaign/index.js +6 -6
  23. package/dist/{campaign-Dp35pBbS.js → campaign-pxS0wmo4.js} +8 -8
  24. package/dist/{campaign-Dp35pBbS.js.map → campaign-pxS0wmo4.js.map} +1 -1
  25. package/dist/chat-client-Db4bqYfA.js +115 -0
  26. package/dist/chat-client-Db4bqYfA.js.map +1 -0
  27. package/dist/{chat-json-call-5Jxna-aV.js → chat-json-call-C26igCih.js} +16 -6
  28. package/dist/chat-json-call-C26igCih.js.map +1 -0
  29. package/dist/cli.js +31 -17
  30. package/dist/cli.js.map +1 -1
  31. package/dist/{client-BvwNkIRN.js → client-BlLY6o2w.js} +2 -2
  32. package/dist/{client-BvwNkIRN.js.map → client-BlLY6o2w.js.map} +1 -1
  33. package/dist/{client-Df7wdslk.d.ts → client-DlqdbM7n.d.ts} +4 -4
  34. package/dist/{client-Df7wdslk.d.ts.map → client-DlqdbM7n.d.ts.map} +1 -1
  35. package/dist/contract/index.d.ts +13 -13
  36. package/dist/contract/index.js +202 -10
  37. package/dist/contract/index.js.map +1 -1
  38. package/dist/{counterfactual-Bee5_BIn.d.ts → counterfactual-CLgrwhkY.d.ts} +4 -4
  39. package/dist/{counterfactual-Bee5_BIn.d.ts.map → counterfactual-CLgrwhkY.d.ts.map} +1 -1
  40. package/dist/{chat-client-DI79OPye.js → default-registry-B0bKikCb.js} +3 -39
  41. package/dist/default-registry-B0bKikCb.js.map +1 -0
  42. package/dist/{default-registry-XxedTLwu.d.ts → default-registry-BKwc8bN5.d.ts} +6 -6
  43. package/dist/{default-registry-XxedTLwu.d.ts.map → default-registry-BKwc8bN5.d.ts.map} +1 -1
  44. package/dist/{define-agent-eval-0wW7gFhr.d.ts → define-agent-eval-CY6qdlGV.d.ts} +6 -6
  45. package/dist/{define-agent-eval-0wW7gFhr.d.ts.map → define-agent-eval-CY6qdlGV.d.ts.map} +1 -1
  46. package/dist/{define-agent-eval-jS8xj_Q_.js → define-agent-eval-D_i_s69h.js} +7 -7
  47. package/dist/{define-agent-eval-jS8xj_Q_.js.map → define-agent-eval-D_i_s69h.js.map} +1 -1
  48. package/dist/{dspy-rlm-engine-CS3qcCEk.js → dspy-rlm-engine-D5byiHn9.js} +5 -6
  49. package/dist/dspy-rlm-engine-D5byiHn9.js.map +1 -0
  50. package/dist/{emitter-Bvnu0VzL.d.ts → emitter-Cs0egaFd.d.ts} +3 -3
  51. package/dist/{emitter-Bvnu0VzL.d.ts.map → emitter-Cs0egaFd.d.ts.map} +1 -1
  52. package/dist/{engine-BfRay1qD.d.ts → engine-DhFir3Ys.d.ts} +23 -8
  53. package/dist/{engine-BfRay1qD.d.ts.map → engine-DhFir3Ys.d.ts.map} +1 -1
  54. package/dist/{eval-campaign-JDTeE6Pl.js → eval-campaign-BeAjdhzC.js} +2 -2
  55. package/dist/{eval-campaign-JDTeE6Pl.js.map → eval-campaign-BeAjdhzC.js.map} +1 -1
  56. package/dist/{exact-types-BEecmnWm.d.ts → exact-types-BKOEILRP.d.ts} +2 -2
  57. package/dist/{exact-types-BEecmnWm.d.ts.map → exact-types-BKOEILRP.d.ts.map} +1 -1
  58. package/dist/experiment/index.d.ts +4 -4
  59. package/dist/{external-optimizer-contracts-szBJ_1vh.d.ts → external-optimizer-contracts-CQCpyrIL.d.ts} +2 -2
  60. package/dist/{external-optimizer-contracts-szBJ_1vh.d.ts.map → external-optimizer-contracts-CQCpyrIL.d.ts.map} +1 -1
  61. package/dist/{external-optimizer-process-CQxylYeG.js → external-optimizer-process-Cq_Pg15r.js} +2 -2
  62. package/dist/{external-optimizer-process-CQxylYeG.js.map → external-optimizer-process-Cq_Pg15r.js.map} +1 -1
  63. package/dist/{external-optimizer-subprocess-Cex8Da2i.js → external-optimizer-subprocess-DgNebftP.js} +2 -2
  64. package/dist/{external-optimizer-subprocess-Cex8Da2i.js.map → external-optimizer-subprocess-DgNebftP.js.map} +1 -1
  65. package/dist/failure-cluster-OldNRoAt.d.ts +154 -0
  66. package/dist/failure-cluster-OldNRoAt.d.ts.map +1 -0
  67. package/dist/{feedback-trajectory-DIqpCyF0.d.ts → feedback-trajectory-CMnv_uYs.d.ts} +6 -6
  68. package/dist/{feedback-trajectory-DIqpCyF0.d.ts.map → feedback-trajectory-CMnv_uYs.d.ts.map} +1 -1
  69. package/dist/{heldout-gate-JgNRDZwZ.d.ts → heldout-gate-Df5hsqmm.d.ts} +7 -7
  70. package/dist/{heldout-gate-JgNRDZwZ.d.ts.map → heldout-gate-Df5hsqmm.d.ts.map} +1 -1
  71. package/dist/hosted/index.d.ts +2 -2
  72. package/dist/hosted/index.js +1 -1
  73. package/dist/{index-DnglhM0A.d.ts → index-BQqOjerE.d.ts} +94 -13
  74. package/dist/index-BQqOjerE.d.ts.map +1 -0
  75. package/dist/{index-_vPrVMRX.d.ts → index-CFDffsKz.d.ts} +11 -11
  76. package/dist/{index-_vPrVMRX.d.ts.map → index-CFDffsKz.d.ts.map} +1 -1
  77. package/dist/{index-DDAPhUJJ.d.ts → index-D0Db5X-4.d.ts} +45 -9
  78. package/dist/index-D0Db5X-4.d.ts.map +1 -0
  79. package/dist/{index-DMoxLG8P.d.ts → index-e7LXeRVa.d.ts} +3 -3
  80. package/dist/{index-DMoxLG8P.d.ts.map → index-e7LXeRVa.d.ts.map} +1 -1
  81. package/dist/index.d.ts +172 -46
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +64 -41
  84. package/dist/index.js.map +1 -1
  85. package/dist/{insight-report-08F022xN.d.ts → insight-report-DETqPc_A.d.ts} +4 -4
  86. package/dist/{insight-report-08F022xN.d.ts.map → insight-report-DETqPc_A.d.ts.map} +1 -1
  87. package/dist/{integrity-B_EDELom.d.ts → integrity-BKTcA-HP.d.ts} +3 -3
  88. package/dist/{integrity-B_EDELom.d.ts.map → integrity-BKTcA-HP.d.ts.map} +1 -1
  89. package/dist/{kind-factory-DMeEoMQZ.js → kind-factory-gP6lDySe.js} +164 -149
  90. package/dist/kind-factory-gP6lDySe.js.map +1 -0
  91. package/dist/{llm-client-BFMRpmqb.js → llm-client-CxQtdtd6.js} +12 -5
  92. package/dist/llm-client-CxQtdtd6.js.map +1 -0
  93. package/dist/{llm-judge-aQHIk5_-.js → llm-judge-B2YxbAJb.js} +81 -7
  94. package/dist/{llm-judge-aQHIk5_-.js.map → llm-judge-B2YxbAJb.js.map} +1 -1
  95. package/dist/{matrix-Ch8JO1pG.d.ts → matrix-DGu8KhSs.d.ts} +2 -2
  96. package/dist/{matrix-Ch8JO1pG.d.ts.map → matrix-DGu8KhSs.d.ts.map} +1 -1
  97. package/dist/meta-eval/index.d.ts +100 -5
  98. package/dist/meta-eval/index.d.ts.map +1 -1
  99. package/dist/meta-eval/index.js +200 -2
  100. package/dist/meta-eval/index.js.map +1 -1
  101. package/dist/{mint-DjfDUMHr.js → mint-vWOdD8Ae.js} +2 -2
  102. package/dist/{mint-DjfDUMHr.js.map → mint-vWOdD8Ae.js.map} +1 -1
  103. package/dist/multishot/golden/index.d.ts +1 -1
  104. package/dist/multishot/index.d.ts +2 -2
  105. package/dist/openapi.json +1 -1
  106. package/dist/pipelines/index.d.ts +5 -5
  107. package/dist/pipelines/index.js +3 -3
  108. package/dist/{pre-registration-DHz6P_6f.d.ts → pre-registration-BoI4ucR3.d.ts} +2 -2
  109. package/dist/{pre-registration-DHz6P_6f.d.ts.map → pre-registration-BoI4ucR3.d.ts.map} +1 -1
  110. package/dist/{produced-state-CxmbFxFd.js → produced-state-7VYDwtkk.js} +3 -3
  111. package/dist/{produced-state-CxmbFxFd.js.map → produced-state-7VYDwtkk.js.map} +1 -1
  112. package/dist/{promotion-policy-BBBcz5_3.d.ts → promotion-policy-CvMda3kU.d.ts} +2 -2
  113. package/dist/{promotion-policy-BBBcz5_3.d.ts.map → promotion-policy-CvMda3kU.d.ts.map} +1 -1
  114. package/dist/{provenance-Dp-vvyrU.d.ts → provenance-CRY67X50.d.ts} +39 -165
  115. package/dist/provenance-CRY67X50.d.ts.map +1 -0
  116. package/dist/{query-BPGMVlbM.js → query-D1nLIKt7.js} +2 -2
  117. package/dist/{query-BPGMVlbM.js.map → query-D1nLIKt7.js.map} +1 -1
  118. package/dist/{query-Na5gEIGd.d.ts → query-D6W6MaGx.d.ts} +3 -3
  119. package/dist/{query-Na5gEIGd.d.ts.map → query-D6W6MaGx.d.ts.map} +1 -1
  120. package/dist/{registry-xEb_xfns.d.ts → registry-7pOUBrtX.d.ts} +4 -4
  121. package/dist/{registry-xEb_xfns.d.ts.map → registry-7pOUBrtX.d.ts.map} +1 -1
  122. package/dist/{release-confidence-D6lQw_o7.d.ts → release-confidence-BAcNYOf1.d.ts} +4 -4
  123. package/dist/{release-confidence-D6lQw_o7.d.ts.map → release-confidence-BAcNYOf1.d.ts.map} +1 -1
  124. package/dist/{release-confidence-CzUHc4z4.js → release-confidence-BsGEg_xg.js} +3 -3
  125. package/dist/{release-confidence-CzUHc4z4.js.map → release-confidence-BsGEg_xg.js.map} +1 -1
  126. package/dist/reporting.d.ts +3 -3
  127. package/dist/reporting.js +1 -1
  128. package/dist/{researcher-CMUTQXD7.d.ts → researcher-jsW1X94L.d.ts} +7 -8
  129. package/dist/researcher-jsW1X94L.d.ts.map +1 -0
  130. package/dist/{reward-hacking-SkxYgT0x.js → reward-hacking-CKW4teig.js} +2 -2
  131. package/dist/{reward-hacking-SkxYgT0x.js.map → reward-hacking-CKW4teig.js.map} +1 -1
  132. package/dist/{reward-hacking-CgPRUesA.d.ts → reward-hacking-ZXEi9VCq.d.ts} +2 -2
  133. package/dist/{reward-hacking-CgPRUesA.d.ts.map → reward-hacking-ZXEi9VCq.d.ts.map} +1 -1
  134. package/dist/rl.d.ts +7 -7
  135. package/dist/rl.js +4 -4
  136. package/dist/rollout/index.d.ts +1 -1
  137. package/dist/rollout/index.js +2 -2
  138. package/dist/{rollout-Crypdx8s.js → rollout-C-znbbYg.js} +2 -2
  139. package/dist/{rollout-Crypdx8s.js.map → rollout-C-znbbYg.js.map} +1 -1
  140. package/dist/{rubric-predictive-validity-DluJLCKQ.d.ts → rubric-predictive-validity-Dl1dvKCv.d.ts} +2 -2
  141. package/dist/{rubric-predictive-validity-DluJLCKQ.d.ts.map → rubric-predictive-validity-Dl1dvKCv.d.ts.map} +1 -1
  142. package/dist/{run-record-DQjRcYwA.d.ts → run-record-DTv1MdjK.d.ts} +2 -2
  143. package/dist/{run-record-DQjRcYwA.d.ts.map → run-record-DTv1MdjK.d.ts.map} +1 -1
  144. package/dist/{run-record-DLORoL7t.js → run-record-ZIsR9Fif.js} +2 -2
  145. package/dist/{run-record-DLORoL7t.js.map → run-record-ZIsR9Fif.js.map} +1 -1
  146. package/dist/{schema-DID1Cqct.d.ts → schema-CR5cpjQ3.d.ts} +57 -2
  147. package/dist/{schema-DID1Cqct.d.ts.map → schema-CR5cpjQ3.d.ts.map} +1 -1
  148. package/dist/{schema-CdIX2aHu.js → schema-CSf6qWgZ.js} +35 -1
  149. package/dist/{schema-CdIX2aHu.js.map → schema-CSf6qWgZ.js.map} +1 -1
  150. package/dist/semantic-concept-judge-Ct3QU7t5.js +780 -0
  151. package/dist/semantic-concept-judge-Ct3QU7t5.js.map +1 -0
  152. package/dist/{series-convergence-D9WgpXGi.d.ts → series-convergence-DeG33RpC.d.ts} +2 -2
  153. package/dist/{series-convergence-D9WgpXGi.d.ts.map → series-convergence-DeG33RpC.d.ts.map} +1 -1
  154. package/dist/{server-CCEnywOR.js → server-BR6onwZB.js} +2 -2
  155. package/dist/{server-CCEnywOR.js.map → server-BR6onwZB.js.map} +1 -1
  156. package/dist/{skillopt-optimization-method-LHi02MzH.js → skillopt-optimization-method-BzdphODy.js} +6 -6
  157. package/dist/{skillopt-optimization-method-LHi02MzH.js.map → skillopt-optimization-method-BzdphODy.js.map} +1 -1
  158. package/dist/{statistical-heldout-Yldkntvy.d.ts → statistical-heldout-DTyB_6-1.d.ts} +3 -3
  159. package/dist/{statistical-heldout-Yldkntvy.d.ts.map → statistical-heldout-DTyB_6-1.d.ts.map} +1 -1
  160. package/dist/{store-Cq9oOrI1.d.ts → store-BErPvYBr.d.ts} +2 -2
  161. package/dist/{store-Cq9oOrI1.d.ts.map → store-BErPvYBr.d.ts.map} +1 -1
  162. package/dist/{store-otlp-CHjBvWQY.js → store-otlp-Dow0pk_5.js} +2 -2
  163. package/dist/{store-otlp-CHjBvWQY.js.map → store-otlp-Dow0pk_5.js.map} +1 -1
  164. package/dist/{store-tool-spans-BvdUbeOB.d.ts → store-tool-spans-CCZNsihA.d.ts} +8 -8
  165. package/dist/{store-tool-spans-BvdUbeOB.d.ts.map → store-tool-spans-CCZNsihA.d.ts.map} +1 -1
  166. package/dist/{store-tool-spans-B9o6tU8f.js → store-tool-spans-CeNj_m2L.js} +3 -3
  167. package/dist/{store-tool-spans-B9o6tU8f.js.map → store-tool-spans-CeNj_m2L.js.map} +1 -1
  168. package/dist/storyboard/index.d.ts +1 -1
  169. package/dist/{summary-report-DRstQNBX.d.ts → summary-report-gMrbYawB.d.ts} +3 -3
  170. package/dist/{summary-report-DRstQNBX.d.ts.map → summary-report-gMrbYawB.d.ts.map} +1 -1
  171. package/dist/{task-failure-attributes-CBGtLS_H.js → task-failure-attributes-CZjZeBsY.js} +3 -3
  172. package/dist/{task-failure-attributes-CBGtLS_H.js.map → task-failure-attributes-CZjZeBsY.js.map} +1 -1
  173. package/dist/{tool-groups-DjwlMBvW.d.ts → tool-groups-Cp4Xdzrp.d.ts} +3 -3
  174. package/dist/tool-groups-Cp4Xdzrp.d.ts.map +1 -0
  175. package/dist/{tool-waste-CwGHzBzX.js → tool-waste-B9tdWV6g.js} +253 -6
  176. package/dist/tool-waste-B9tdWV6g.js.map +1 -0
  177. package/dist/{tool-waste-BrmLKxMw.d.ts → tool-waste-D23I0zWm.d.ts} +4 -4
  178. package/dist/{tool-waste-BrmLKxMw.d.ts.map → tool-waste-D23I0zWm.d.ts.map} +1 -1
  179. package/dist/trace-repair/index.d.ts +2 -2
  180. package/dist/traces.d.ts +10 -10
  181. package/dist/traces.js +7 -7
  182. package/dist/{trajectory-r1bQqvBQ.d.ts → trajectory-D7qrNvaN.d.ts} +3 -3
  183. package/dist/{trajectory-r1bQqvBQ.d.ts.map → trajectory-D7qrNvaN.d.ts.map} +1 -1
  184. package/dist/trajectory-replay/index.d.ts +3 -3
  185. package/dist/{types-CCZ34qmV.d.ts → types-BDV4PiMR.d.ts} +3 -3
  186. package/dist/{types-CCZ34qmV.d.ts.map → types-BDV4PiMR.d.ts.map} +1 -1
  187. package/dist/{types-nokrtr7M.d.ts → types-Ba5UQyVD.d.ts} +4 -4
  188. package/dist/{types-nokrtr7M.d.ts.map → types-Ba5UQyVD.d.ts.map} +1 -1
  189. package/dist/{types-DMoNFDWi.d.ts → types-DN2WdT5S.d.ts} +3 -3
  190. package/dist/{types-DMoNFDWi.d.ts.map → types-DN2WdT5S.d.ts.map} +1 -1
  191. package/dist/types-gvRsyJLh.d.ts +831 -0
  192. package/dist/types-gvRsyJLh.d.ts.map +1 -0
  193. package/dist/wire/index.d.ts +3 -3
  194. package/dist/wire/index.js +1 -1
  195. package/docs/plants.md +69 -1
  196. package/docs/public-api.md +6 -4
  197. package/docs/trace-analysis.md +55 -8
  198. package/package.json +1 -1
  199. package/dist/backend-integrity-e79K3UPD.d.ts.map +0 -1
  200. package/dist/bounded-process-CVOC_D3H.js.map +0 -1
  201. package/dist/chat-client-DI79OPye.js.map +0 -1
  202. package/dist/chat-json-call-5Jxna-aV.js.map +0 -1
  203. package/dist/dspy-rlm-engine-CS3qcCEk.js.map +0 -1
  204. package/dist/failure-cluster-6YSvsKlp.d.ts +0 -58
  205. package/dist/failure-cluster-6YSvsKlp.d.ts.map +0 -1
  206. package/dist/index-DDAPhUJJ.d.ts.map +0 -1
  207. package/dist/index-DnglhM0A.d.ts.map +0 -1
  208. package/dist/kind-factory-DMeEoMQZ.js.map +0 -1
  209. package/dist/llm-client-BFMRpmqb.js.map +0 -1
  210. package/dist/provenance-Dp-vvyrU.d.ts.map +0 -1
  211. package/dist/raw-provider-sink-BU29Sh8h.d.ts +0 -134
  212. package/dist/raw-provider-sink-BU29Sh8h.d.ts.map +0 -1
  213. package/dist/researcher-CMUTQXD7.d.ts.map +0 -1
  214. package/dist/semantic-concept-judge-I36eejJx.js +0 -382
  215. package/dist/semantic-concept-judge-I36eejJx.js.map +0 -1
  216. package/dist/tool-groups-DjwlMBvW.d.ts.map +0 -1
  217. package/dist/tool-waste-CwGHzBzX.js.map +0 -1
  218. package/dist/types-Bfk0uxRj.d.ts +0 -443
  219. package/dist/types-Bfk0uxRj.d.ts.map +0 -1
@@ -1,443 +0,0 @@
1
- import { t as AgentEvalError } from "./errors-DEE6u6ot.js";
2
- import { b as CustomTokenPricing, c as CostLedgerHandle, g as CostReceiptInput, x as MaximumCharge } from "./cost-ledger-DbQdN3nO.js";
3
- //#region src/llm-client.d.ts
4
- interface LlmMessage {
5
- role: 'system' | 'user' | 'assistant' | 'tool';
6
- /**
7
- * Either a plain text content string OR a multimodal content array
8
- * (text + image_url parts) for vision-capable models.
9
- */
10
- content: string | Array<{
11
- type: 'text';
12
- text: string;
13
- } | {
14
- type: 'image_url';
15
- image_url: {
16
- url: string;
17
- detail?: 'auto' | 'low' | 'high';
18
- };
19
- }>;
20
- /** Tool invocations made by an `assistant` message earlier in the turn. */
21
- toolCalls?: LlmToolCall[];
22
- /** The invocation a `tool` message answers. Required when role is `tool`. */
23
- toolCallId?: string;
24
- }
25
- type LlmThinkingMode = 'enabled' | 'disabled';
26
- /** Canonical function-tool definition offered to the model. */
27
- interface LlmToolDefinition {
28
- type: 'function';
29
- function: {
30
- name: string;
31
- description?: string;
32
- parameters: Record<string, unknown>;
33
- };
34
- }
35
- /** Canonical tool-choice policy; meaningful only when `tools` is present. */
36
- type LlmToolChoice = 'auto' | 'none' | 'required' | {
37
- type: 'function';
38
- function: {
39
- name: string;
40
- };
41
- };
42
- /** One tool invocation on a response or an assistant history message. */
43
- interface LlmToolCall {
44
- id: string;
45
- name: string;
46
- /** JSON-encoded arguments, exactly as the provider produced them. */
47
- argumentsJson: string;
48
- }
49
- interface LlmCallRequest {
50
- model: string;
51
- messages: LlmMessage[];
52
- /** Optional JSON-mode response format (response_format: json_object). */
53
- jsonMode?: boolean;
54
- /** Optional structured output via JSON Schema. Falls back to json_object on 400. */
55
- jsonSchema?: {
56
- name: string;
57
- schema: Record<string, unknown>;
58
- };
59
- /** Function tools offered to the model for this call. */
60
- tools?: LlmToolDefinition[];
61
- /** Tool-choice policy for `tools`. */
62
- toolChoice?: LlmToolChoice;
63
- temperature?: number;
64
- maxTokens?: number;
65
- /** Ask the provider for the log-probability of each sampled token and its
66
- * `topLogprobs` most likely alternatives. Sends `logprobs: true` with
67
- * `top_logprobs`. A provider that ignores the field returns
68
- * `LlmCallResult.logprobs === null`; nothing is inferred from its absence. */
69
- logprobs?: {
70
- topLogprobs: number;
71
- };
72
- /** OpenAI-compatible reasoning mode. Omitted when the provider default should apply. */
73
- thinking?: LlmThinkingMode;
74
- /** Per-call timeout, default 300s. */
75
- timeoutMs?: number;
76
- }
77
- /** Conservative priced bound for the exact text request sent to a provider.
78
- * Returns undefined when output or multimodal input is not bounded, causing a
79
- * capped CostLedger to reject the call before execution. Pass
80
- * `customTokenPricing` when package pricing does not cover the model or endpoint. */
81
- interface LlmChargeBounds {
82
- /** Total provider attempts the transport may make for this call. Default 3. */
83
- maximumAttempts?: number;
84
- /** The transport sends JSON mode instead of a response schema. */
85
- jsonSchemaTransport?: 'native' | 'json-object';
86
- /** Default provider reasoning mode the transport applies. */
87
- thinking?: LlmThinkingMode;
88
- /** Token rates used when the provider omits cost or package pricing does not cover the model. */
89
- customTokenPricing?: CustomTokenPricing;
90
- }
91
- declare function maximumChargeForLlmRequest(request: Pick<LlmCallRequest, 'model' | 'messages' | 'jsonSchema' | 'tools' | 'toolChoice' | 'maxTokens' | 'thinking'>, options?: LlmChargeBounds): MaximumCharge | undefined;
92
- interface LlmUsage {
93
- promptTokens: number;
94
- completionTokens: number;
95
- totalTokens: number;
96
- /** False when the provider omitted or malformed prompt/completion usage. */
97
- captured?: boolean;
98
- /** Reasoning-token subset of completionTokens, when reported. */
99
- reasoningTokens?: number;
100
- /** Proxies populate this when prompt caching is on. */
101
- cachedPromptTokens?: number;
102
- }
103
- /** One sampled token with its own log probability and the alternatives the
104
- * provider ranked at that position. */
105
- interface LlmTokenLogprob {
106
- token: string;
107
- logprob: number;
108
- top: ReadonlyArray<{
109
- token: string;
110
- logprob: number;
111
- }>;
112
- }
113
- interface LlmCallResult {
114
- /** The text content of the first choice. Empty string if none. */
115
- content: string;
116
- /** Tool invocations from the first choice, when the model called tools. */
117
- toolCalls?: LlmToolCall[];
118
- usage: LlmUsage;
119
- /**
120
- * Cost in USD. Uses the provider's reported cost when present, otherwise
121
- * caller-supplied token pricing. `null` when neither is available.
122
- */
123
- costUsd: number | null;
124
- /**
125
- * Model id used for attribution (cost, pricing, log lines). The response's
126
- * echoed id when the provider sent one, else the requested id.
127
- *
128
- * NOT evidence of which model answered — read `servedModel` for that. A
129
- * provider that omits `model` makes this equal to the request, which is
130
- * exactly the case an identity check must be able to distinguish.
131
- */
132
- model: string;
133
- /**
134
- * The model id the provider echoed on the response, verbatim; `null` when
135
- * the body carried none. This is the only field that can witness a gateway
136
- * substituting a different model for the one requested — compare it with
137
- * `assertServedModel` / `checkServedModel` (src/integrity/served-model.ts).
138
- *
139
- * Optional so hand-built results (mock/custom transports) still typecheck,
140
- * but omitting it is not a pass: the identity checks read `undefined` as
141
- * `unreported` and reject it by default. A transport that knows which model
142
- * answered should say so.
143
- */
144
- servedModel?: string | null;
145
- /** Wall-clock duration of the HTTP call (last attempt, if retried). */
146
- durationMs: number;
147
- /**
148
- * `finish_reason` echoed from the first choice (`stop`, `length`,
149
- * `content_filter`, `tool_calls`, ...). `null` when the provider omits it.
150
- * Exposed so a free-form `callLlm` caller CAN detect a truncated answer
151
- * (`length`) instead of treating a cut-off completion as complete. Note:
152
- * `callLlm` does not itself reject on it — acting on this signal is the
153
- * caller's responsibility (in-repo free-form drivers do not yet enforce it).
154
- */
155
- finishReason?: string | null;
156
- /**
157
- * True when `content.trim()` is empty. An empty completion is a silent zero
158
- * for free-form `callLlm` callers; this flag is the signal a caller can
159
- * inspect to fail loud rather than proceed on an empty string. `callLlm`
160
- * surfaces it but does not throw on it.
161
- */
162
- contentEmpty?: boolean;
163
- /**
164
- * Per-token log probabilities for the first choice, in emission order, when
165
- * the request asked for them and the provider returned
166
- * `choices[0].logprobs.content`. `null` when the provider returned none, so a
167
- * caller can tell "not requested or not supported" from "requested and
168
- * empty". Absent when the request did not ask for logprobs.
169
- */
170
- logprobs?: ReadonlyArray<LlmTokenLogprob> | null;
171
- /** Raw response body. */
172
- raw: Record<string, unknown>;
173
- }
174
- type LlmCallMetadata = Pick<LlmCallResult, 'usage' | 'costUsd' | 'model' | 'durationMs'>;
175
- /** Convert a provider result into the canonical paid-call receipt input.
176
- * The receipt is JSON-clean: absent optional fields are omitted, never carried
177
- * as explicit-undefined keys. Receipts cross JSON boundaries (the external
178
- * optimizer's loopback proxy validates them with `assertJsonValue`), where an
179
- * explicit-undefined value is rejected as non-serializable. */
180
- declare function costReceiptFromLlm(result: LlmCallResult, customTokenPricing?: CustomTokenPricing): CostReceiptInput;
181
- /** Structured-response failures retain their completed provider receipt. */
182
- declare function costReceiptFromLlmError(error: Error, customTokenPricing?: CustomTokenPricing): CostReceiptInput | undefined;
183
- declare class LlmCallError extends AgentEvalError {
184
- readonly status: number;
185
- readonly body: string;
186
- readonly model: string;
187
- constructor(message: string, status: number, body: string, model: string);
188
- }
189
- /** A provider response completed and incurred measurable usage, but its content
190
- * could not satisfy the caller's response contract. The response envelope is
191
- * retained so accounting can commit the receipt before the error propagates. */
192
- declare class LlmResponseError extends AgentEvalError {
193
- readonly result: LlmCallResult;
194
- constructor(message: string, result: LlmCallResult, options?: {
195
- cause?: unknown;
196
- });
197
- }
198
- /**
199
- * True when an error is a transient transport/network fault worth retrying,
200
- * as opposed to a deterministic failure (4xx schema reject, JSON parse) that
201
- * a retry cannot fix. Inspects `LlmCallError.status`, then the error's
202
- * name/message/code, then recurses into `error.cause` — undici nests the
203
- * real socket fault one or more levels under `.cause`.
204
- *
205
- * This is the retry classifier for the package: `callLlm` and
206
- * `withJudgeRetry` both route through it, so connection failures are treated
207
- * consistently across transports.
208
- */
209
- declare function isTransientLlmError(err: unknown): boolean;
210
- /**
211
- * Strip a ```json / ``` code fence if the model emitted one.
212
- * Idempotent for naked JSON. Some models (claude-code via router, certain
213
- * deepseek models) wrap output even under json_object.
214
- */
215
- declare function stripFencedJson(raw: string): string;
216
- //#endregion
217
- //#region src/analyst/chat-client.d.ts
218
- /**
219
- * Unified chat interface using the package's canonical LLM request and result.
220
- */
221
- interface ChatClient {
222
- /** Display name of the bound transport, included in telemetry. */
223
- readonly transport: ChatTransport;
224
- /** Default model when the caller omits one. */
225
- readonly defaultModel?: string;
226
- /** Total provider attempts this transport can make for one chat call. */
227
- readonly maximumAttempts?: number;
228
- /** Implementations must enforce `req.maxTokens` when it is present. */
229
- chat(req: ChatRequest, opts?: ChatCallOpts): Promise<ChatResponse>;
230
- }
231
- type ChatTransport = 'sandbox-sdk' | 'custom' | 'mock';
232
- interface ChatRequest extends Omit<LlmCallRequest, 'model'> {
233
- /** Optional — falls back to ChatClient.defaultModel. */
234
- model?: string;
235
- }
236
- type ChatResponse = LlmCallResult;
237
- interface ChatCallOpts {
238
- /** Cancel the in-flight request. */
239
- signal?: AbortSignal;
240
- /** Hard USD ceiling for this single call (informational; the underlying transport may not enforce). */
241
- maxCostUsd?: number;
242
- /** Correlation tag carried into request headers when the transport allows. */
243
- correlationId?: string;
244
- /** Stable provider idempotency key for retries/redrives of one paid call. */
245
- idempotencyKey?: string;
246
- }
247
- type CreateChatClientOpts = SandboxSdkTransportOpts | CustomTransportOpts | MockTransportOpts;
248
- interface BaseTransportOpts {
249
- defaultModel?: string;
250
- /** Total provider attempts. Required for opaque transports used in capped runs. */
251
- maximumAttempts?: number;
252
- }
253
- /**
254
- * Sandbox-SDK transport. The caller supplies a canonical chat function for an
255
- * already-configured Sandbox handle, so agent-eval does not import the SDK.
256
- */
257
- interface SandboxSdkTransportOpts extends BaseTransportOpts {
258
- transport: 'sandbox-sdk';
259
- chat: (req: ChatRequest, opts?: ChatCallOpts) => Promise<ChatResponse>;
260
- }
261
- /** Caller-adapted SDK or transport returning the canonical ChatResponse shape. */
262
- interface CustomTransportOpts extends BaseTransportOpts {
263
- transport: 'custom';
264
- chat: (req: ChatRequest, opts?: ChatCallOpts) => Promise<ChatResponse>;
265
- }
266
- /**
267
- * Mock transport for tests. The handler receives the request and returns
268
- * whatever the test wants. No retries, no JSON-schema degrade.
269
- */
270
- interface MockTransportOpts extends BaseTransportOpts {
271
- transport: 'mock';
272
- handler: (req: ChatRequest, opts?: ChatCallOpts) => Promise<ChatResponse>;
273
- }
274
- /**
275
- * Build a ChatClient bound to a specific transport. The returned client
276
- * is safe to share across analysts in a single registry run.
277
- */
278
- declare function createChatClient(opts: CreateChatClientOpts): ChatClient;
279
- //#endregion
280
- //#region src/types.d.ts
281
- interface Scenario {
282
- id: string;
283
- persona: string;
284
- label: string;
285
- thesis: string;
286
- dimensions: string[];
287
- turns: Turn[];
288
- artifactChecks: ArtifactCheck[];
289
- systemPromptAppend?: string;
290
- }
291
- interface Turn {
292
- user: string;
293
- expectedBehaviors: string[];
294
- adversarial?: boolean;
295
- feedbackType?: 'correction' | 'rejection' | 'vague' | 'contradictory' | 'escalation';
296
- }
297
- interface ArtifactCheck {
298
- type: 'vault_file_exists' | 'vault_file_contains' | 'block_extracted' | 'code_valid' | 'generation_produced' | 'tool_created' | string;
299
- target: string;
300
- contains?: string;
301
- minCount?: number;
302
- description: string;
303
- }
304
- interface JudgeRubric {
305
- name: string;
306
- description: string;
307
- dimensions: RubricDimension[];
308
- }
309
- interface RubricDimension {
310
- name: string;
311
- description: string;
312
- anchor_low: string;
313
- anchor_high: string;
314
- weight: number;
315
- }
316
- interface TurnResult {
317
- turnIndex: number;
318
- userMessage: string;
319
- agentResponse: string;
320
- durationMs: number;
321
- blocksExtracted: {
322
- type: string;
323
- title: string;
324
- }[];
325
- containsCode: boolean;
326
- containsToolCall: boolean;
327
- }
328
- interface JudgeScore {
329
- judgeName: string;
330
- dimension: string;
331
- score: number;
332
- reasoning: string;
333
- evidence?: string;
334
- }
335
- interface CollectedArtifacts {
336
- vaultFiles: {
337
- path: string;
338
- content: string;
339
- }[];
340
- blocksExtracted: {
341
- type: string;
342
- fields: Record<string, string>;
343
- }[];
344
- codeBlocks: {
345
- language: string;
346
- code: string;
347
- }[];
348
- toolCalls: string[];
349
- }
350
- interface RouteMap {
351
- signup?: string;
352
- login?: string;
353
- workspaces?: string;
354
- threads?: string;
355
- chat?: string;
356
- tasks?: string;
357
- events?: string;
358
- approvals?: string;
359
- vault?: string;
360
- generations?: string;
361
- [key: string]: string | undefined;
362
- }
363
- interface ProductClientConfig {
364
- baseUrl: string;
365
- routes: RouteMap;
366
- /** Per-request timeout in ms before the request is aborted. Default 30s. */
367
- timeoutMs?: number;
368
- }
369
- interface CompletionCriterion {
370
- name: string;
371
- check: (state: DriverState) => boolean;
372
- progress?: (state: DriverState) => number;
373
- }
374
- /**
375
- * How hard the simulated user pushes back. The driver LLM scales its tone
376
- * and follow-up aggression to this:
377
- * cooperative — forgiving early adopter; accepts reasonable answers.
378
- * demanding — experienced professional; rejects vague or hedged answers.
379
- * relentless — senior partner reviewing for a client who will litigate;
380
- * interrogates every claim, accepts nothing undefended.
381
- */
382
- type PersonaRigor = 'cooperative' | 'demanding' | 'relentless';
383
- interface PersonaConfig {
384
- id: string;
385
- role: string;
386
- goal: string;
387
- completionCriteria: CompletionCriterion[];
388
- maxTurns: number;
389
- /** How adversarial the simulated user is. Defaults to 'demanding'. */
390
- rigor?: PersonaRigor;
391
- /**
392
- * Domain expertise the simulated user holds — quoted into the driver
393
- * prompt so it challenges the agent with authority instead of vague
394
- * dissatisfaction. e.g. "a 15-year M&A partner who knows GAAP
395
- * working-capital mechanics cold".
396
- */
397
- expertise?: string;
398
- /**
399
- * Substantive issues a senior professional in this role would
400
- * interrogate — traps the scenario hides, claims that must be defended.
401
- * The driver probes these without revealing them verbatim; the agent
402
- * must surface them on its own.
403
- */
404
- pressurePoints?: string[];
405
- /**
406
- * Curveballs the driver may inject once the agent is coasting — changed
407
- * facts, a hostile counterparty position, a new constraint. Forces the
408
- * agent to re-derive rather than recite.
409
- */
410
- curveballs?: string[];
411
- }
412
- interface DriverState {
413
- tasks: number;
414
- events: number;
415
- proposals: {
416
- pending: number;
417
- approved: number;
418
- rejected: number;
419
- };
420
- vaultFiles: string[];
421
- codeBlocks: number;
422
- generations: number;
423
- }
424
- interface JudgeInput {
425
- scenario: Scenario;
426
- turns: TurnResult[];
427
- artifacts: CollectedArtifacts;
428
- /** Shared ledger for paid built-in judges. Direct calls default to an uncapped ledger. */
429
- costLedger?: CostLedgerHandle;
430
- costPhase?: string;
431
- costTags?: Record<string, string>;
432
- signal?: AbortSignal;
433
- }
434
- type JudgeFn = (chat: ChatClient, input: JudgeInput) => Promise<JudgeScore[]>;
435
- interface CheckResult {
436
- name: string;
437
- passed: boolean;
438
- expected: string;
439
- actual: string;
440
- }
441
- //#endregion
442
- export { LlmToolCall as A, LlmCallMetadata as C, LlmMessage as D, LlmChargeBounds as E, costReceiptFromLlmError as F, isTransientLlmError as I, maximumChargeForLlmRequest as L, LlmToolDefinition as M, LlmUsage as N, LlmResponseError as O, costReceiptFromLlm as P, stripFencedJson as R, LlmCallError as S, LlmCallResult as T, CreateChatClientOpts as _, JudgeInput as a, SandboxSdkTransportOpts as b, PersonaConfig as c, Scenario as d, ChatCallOpts as f, ChatTransport as g, ChatResponse as h, JudgeFn as i, LlmToolChoice as j, LlmTokenLogprob as k, ProductClientConfig as l, ChatRequest as m, CompletionCriterion as n, JudgeRubric as o, ChatClient as p, DriverState as r, JudgeScore as s, CheckResult as t, RouteMap as u, CustomTransportOpts as v, LlmCallRequest as w, createChatClient as x, MockTransportOpts as y };
443
- //# sourceMappingURL=types-Bfk0uxRj.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types-Bfk0uxRj.d.ts","names":[],"sources":["../src/llm-client.ts","../src/analyst/chat-client.ts","../src/types.ts"],"mappings":";;;UAuDiB;EACf;;;;;EAKA,kBAEI;IACM;IAAc;;IACd;IAAmB;MAAa;MAAa;;;;EAGvD,YAAY;;EAEZ;;KAGU;;UAGK;EACf;EACA;IACE;IACA;IACA,YAAY;;;;KAKJ;EAIN;EAAkB;IAAY;;;;UAGnB;EACf;EACA;;EAEA;;UAGe;EACf;EACA,UAAU;;EAEV;;EAEA;IAAe;IAAc,QAAQ;;;EAErC,QAAQ;;EAER,aAAa;EACb;EACA;;;;;EAKA;IAAa;;;EAEb,WAAW;;EAEX;;;;;;UAOe;;EAEf;;EAEA;;EAEA,WAAW;;EAEX,qBAAqB;;iBAGP,2BACd,SAAS,KACP,0GAGF,UAAS,kBACR;UAgCc;EACf;EACA;EACA;;EAEA;;EAEA;;EAEA;;;;UAKe;EACf;EACA;EACA,KAAK;IAAgB;IAAe;;;UAGrB;;EAEf;;EAEA,YAAY;EACZ,OAAO;;;;;EAKP;;;;;;;;;EASA;;;;;;;;;;;;EAYA;;EAEA;;;;;;;;;EASA;;;;;;;EAOA;;;;;;;;EAQA,WAAW,cAAc;;EAEzB,KAAK;;KAGK,kBAAkB,KAAK;;;;;;iBAOnB,mBACd,QAAQ,eACR,qBAAqB,qBACpB;;iBA6Ba,wBACd,OAAO,OACP,qBAAqB,qBACpB;cAMU,qBAAqB;WAGd;WACA;WACA;EAJlB,YACE,iBACgB,gBACA,cACA;;;;;cASP,yBAAyB;WAGlB,QAAQ;EAF1B,YACE,iBACgB,QAAQ,eACxB;IAAY;;;;;;;;;;;;;;iBA2IA,oBAAoB;;;;;;iBA6PpB,gBAAgB;;;;;;UC/rBf;;WAEN,WAAW;;WAEX;;WAEA;;EAGT,KAAK,KAAK,aAAa,OAAO,eAAe,QAAQ;;KAG3C;UAKK,oBAAoB,KAAK;;EAExC;;KAGU,eAAe;UAEV;;EAEf,SAAS;;EAET;;EAEA;;EAEA;;KAKU,uBAAuB,0BAA0B,sBAAsB;UAEzE;EACR;;EAEA;;;;;;UAOe,gCAAgC;EAC/C;EACA,OAAO,KAAK,aAAa,OAAO,iBAAiB,QAAQ;;;UAI1C,4BAA4B;EAC3C;EACA,OAAO,KAAK,aAAa,OAAO,iBAAiB,QAAQ;;;;;;UAO1C,0BAA0B;EACzC;EACA,UAAU,KAAK,aAAa,OAAO,iBAAiB,QAAQ;;;;;;iBAO9C,iBAAiB,MAAM,uBAAuB;;;UClF7C;EACf;EACA;EACA;EACA;EACA;EACA,OAAO;EACP,gBAAgB;EAChB;;UAGe;EACf;EACA;EACA;EACA;;UAKe;EACf;EAQA;EACA;EACA;EACA;;UAKe;EACf;EACA;EACA,YAAY;;UAGG;EACf;EACA;EACA;EACA;EACA;;UAmBe;EACf;EACA;EACA;EACA;EACA;IAAmB;IAAc;;EACjC;EACA;;UASe;EACf;EACA;EACA;EACA;EACA;;UAGe;EACf;IAAc;IAAc;;EAC5B;IAAmB;IAAc,QAAQ;;EACzC;IAAc;IAAkB;;EAChC;;UAKe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GACC;;UAGc;EACf;EACA,QAAQ;;EAER;;UAyBe;EACf;EACA,QAAQ,OAAO;EACf,YAAY,OAAO;;;;;;;;;;KAWT;UAEK;EACf;EACA;EACA;EACA,oBAAoB;EACpB;;EAEA,QAAQ;;;;;;;EAOR;;;;;;;EAOA;;;;;;EAMA;;UAGe;EACf;EACA;EACA;IAAa;IAAiB;IAAkB;;EAChD;EACA;EACA;;UAGe;EACf,UAAU;EACV,OAAO;EACP,WAAW;;EAEX,aAAa;EACb;EACA,WAAW;EACX,SAAS;;KAGC,WAAW,MAAM,YAAY,OAAO,eAAe,QAAQ;UAYtD;EACf;EACA;EACA;EACA"}