@tangle-network/agent-bench 0.1.0 → 0.3.6

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 (317) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/HARNESS.md +302 -0
  3. package/README.md +39 -2
  4. package/dist/adapters.d.ts +15 -0
  5. package/dist/adapters.js +43 -0
  6. package/dist/adapters.js.map +1 -0
  7. package/dist/benchmarks/_harness.d.ts +125 -0
  8. package/dist/benchmarks/_harness.js +33 -0
  9. package/dist/benchmarks/_harness.js.map +1 -0
  10. package/dist/benchmarks/aec-bench.d.ts +27 -0
  11. package/dist/benchmarks/aec-bench.js +8 -0
  12. package/dist/benchmarks/aec-bench.js.map +1 -0
  13. package/dist/benchmarks/agentbench.d.ts +16 -0
  14. package/dist/benchmarks/agentbench.js +10 -0
  15. package/dist/benchmarks/agentbench.js.map +1 -0
  16. package/dist/benchmarks/appworld.d.ts +37 -0
  17. package/dist/benchmarks/appworld.js +14 -0
  18. package/dist/benchmarks/appworld.js.map +1 -0
  19. package/dist/benchmarks/bfcl.d.ts +18 -0
  20. package/dist/benchmarks/bfcl.js +10 -0
  21. package/dist/benchmarks/bfcl.js.map +1 -0
  22. package/dist/benchmarks/cad-design.d.ts +45 -0
  23. package/dist/benchmarks/cad-design.js +7 -0
  24. package/dist/benchmarks/cad-design.js.map +1 -0
  25. package/dist/benchmarks/cadbench.d.ts +19 -0
  26. package/dist/benchmarks/cadbench.js +8 -0
  27. package/dist/benchmarks/cadbench.js.map +1 -0
  28. package/dist/benchmarks/cadgenbench.d.ts +22 -0
  29. package/dist/benchmarks/cadgenbench.js +8 -0
  30. package/dist/benchmarks/cadgenbench.js.map +1 -0
  31. package/dist/benchmarks/commit0.d.ts +31 -0
  32. package/dist/benchmarks/commit0.js +10 -0
  33. package/dist/benchmarks/commit0.js.map +1 -0
  34. package/dist/benchmarks/crag.d.ts +14 -0
  35. package/dist/benchmarks/crag.js +9 -0
  36. package/dist/benchmarks/crag.js.map +1 -0
  37. package/dist/benchmarks/dabstep.d.ts +18 -0
  38. package/dist/benchmarks/dabstep.js +10 -0
  39. package/dist/benchmarks/dabstep.js.map +1 -0
  40. package/dist/benchmarks/enterpriseops-gym.d.ts +38 -0
  41. package/dist/benchmarks/enterpriseops-gym.js +10 -0
  42. package/dist/benchmarks/enterpriseops-gym.js.map +1 -0
  43. package/dist/benchmarks/finresearchbench.d.ts +15 -0
  44. package/dist/benchmarks/finresearchbench.js +8 -0
  45. package/dist/benchmarks/finresearchbench.js.map +1 -0
  46. package/dist/benchmarks/finsearchcomp.d.ts +49 -0
  47. package/dist/benchmarks/finsearchcomp.js +7 -0
  48. package/dist/benchmarks/finsearchcomp.js.map +1 -0
  49. package/dist/benchmarks/frames.d.ts +59 -0
  50. package/dist/benchmarks/frames.js +13 -0
  51. package/dist/benchmarks/frames.js.map +1 -0
  52. package/dist/benchmarks/hotpotqa.d.ts +48 -0
  53. package/dist/benchmarks/hotpotqa.js +15 -0
  54. package/dist/benchmarks/hotpotqa.js.map +1 -0
  55. package/dist/benchmarks/humaneval.d.ts +53 -0
  56. package/dist/benchmarks/humaneval.js +15 -0
  57. package/dist/benchmarks/humaneval.js.map +1 -0
  58. package/dist/benchmarks/mind2web.d.ts +41 -0
  59. package/dist/benchmarks/mind2web.js +9 -0
  60. package/dist/benchmarks/mind2web.js.map +1 -0
  61. package/dist/benchmarks/nomiracl.d.ts +15 -0
  62. package/dist/benchmarks/nomiracl.js +9 -0
  63. package/dist/benchmarks/nomiracl.js.map +1 -0
  64. package/dist/benchmarks/open-rag-bench.d.ts +14 -0
  65. package/dist/benchmarks/open-rag-bench.js +9 -0
  66. package/dist/benchmarks/open-rag-bench.js.map +1 -0
  67. package/dist/benchmarks/programbench.d.ts +38 -0
  68. package/dist/benchmarks/programbench.js +10 -0
  69. package/dist/benchmarks/programbench.js.map +1 -0
  70. package/dist/benchmarks/rag-shared.d.ts +42 -0
  71. package/dist/benchmarks/rag-shared.js +39 -0
  72. package/dist/benchmarks/rag-shared.js.map +1 -0
  73. package/dist/benchmarks/ragbench.d.ts +16 -0
  74. package/dist/benchmarks/ragbench.js +9 -0
  75. package/dist/benchmarks/ragbench.js.map +1 -0
  76. package/dist/benchmarks/simpleqa.d.ts +64 -0
  77. package/dist/benchmarks/simpleqa.js +11 -0
  78. package/dist/benchmarks/simpleqa.js.map +1 -0
  79. package/dist/benchmarks/swe-bench.d.ts +56 -0
  80. package/dist/benchmarks/swe-bench.js +14 -0
  81. package/dist/benchmarks/swe-bench.js.map +1 -0
  82. package/dist/benchmarks/t2-ragbench.d.ts +14 -0
  83. package/dist/benchmarks/t2-ragbench.js +9 -0
  84. package/dist/benchmarks/t2-ragbench.js.map +1 -0
  85. package/dist/benchmarks/tau-bench-shared.d.ts +26 -0
  86. package/dist/benchmarks/tau-bench-shared.js +10 -0
  87. package/dist/benchmarks/tau-bench-shared.js.map +1 -0
  88. package/dist/benchmarks/tau2-bench.d.ts +7 -0
  89. package/dist/benchmarks/tau2-bench.js +11 -0
  90. package/dist/benchmarks/tau2-bench.js.map +1 -0
  91. package/dist/benchmarks/tau3-banking.d.ts +15 -0
  92. package/dist/benchmarks/tau3-banking.js +9 -0
  93. package/dist/benchmarks/tau3-banking.js.map +1 -0
  94. package/dist/benchmarks/terminal-bench.d.ts +24 -0
  95. package/dist/benchmarks/terminal-bench.js +8 -0
  96. package/dist/benchmarks/terminal-bench.js.map +1 -0
  97. package/dist/benchmarks/toollm.d.ts +16 -0
  98. package/dist/benchmarks/toollm.js +10 -0
  99. package/dist/benchmarks/toollm.js.map +1 -0
  100. package/dist/benchmarks/trata-hedge.d.ts +32 -0
  101. package/dist/benchmarks/trata-hedge.js +7 -0
  102. package/dist/benchmarks/trata-hedge.js.map +1 -0
  103. package/dist/benchmarks/types.d.ts +107 -0
  104. package/dist/benchmarks/types.js +1 -0
  105. package/dist/benchmarks/types.js.map +1 -0
  106. package/dist/benchmarks/webarena-verified.d.ts +16 -0
  107. package/dist/benchmarks/webarena-verified.js +10 -0
  108. package/dist/benchmarks/webarena-verified.js.map +1 -0
  109. package/dist/chunk-2PVVP7GN.js +197 -0
  110. package/dist/chunk-2PVVP7GN.js.map +1 -0
  111. package/dist/chunk-2XU6OGEN.js +170 -0
  112. package/dist/chunk-2XU6OGEN.js.map +1 -0
  113. package/dist/chunk-53UPUNBZ.js +325 -0
  114. package/dist/chunk-53UPUNBZ.js.map +1 -0
  115. package/dist/chunk-5SBJCB6W.js +144 -0
  116. package/dist/chunk-5SBJCB6W.js.map +1 -0
  117. package/dist/chunk-7WSD27QQ.js +118 -0
  118. package/dist/chunk-7WSD27QQ.js.map +1 -0
  119. package/dist/chunk-C7T7WEK2.js +103 -0
  120. package/dist/chunk-C7T7WEK2.js.map +1 -0
  121. package/dist/chunk-CKUVRZ2T.js +251 -0
  122. package/dist/chunk-CKUVRZ2T.js.map +1 -0
  123. package/dist/chunk-HBSWHQNJ.js +30 -0
  124. package/dist/chunk-HBSWHQNJ.js.map +1 -0
  125. package/dist/chunk-HHXFIHXC.js +116 -0
  126. package/dist/chunk-HHXFIHXC.js.map +1 -0
  127. package/dist/chunk-IFAV6KEM.js +276 -0
  128. package/dist/chunk-IFAV6KEM.js.map +1 -0
  129. package/dist/chunk-INNOYXCP.js +387 -0
  130. package/dist/chunk-INNOYXCP.js.map +1 -0
  131. package/dist/chunk-J3KDJNX2.js +182 -0
  132. package/dist/chunk-J3KDJNX2.js.map +1 -0
  133. package/dist/chunk-JRWWGMK7.js +148 -0
  134. package/dist/chunk-JRWWGMK7.js.map +1 -0
  135. package/dist/chunk-JTHWEDEW.js +32 -0
  136. package/dist/chunk-JTHWEDEW.js.map +1 -0
  137. package/dist/chunk-KDIKRJGB.js +120 -0
  138. package/dist/chunk-KDIKRJGB.js.map +1 -0
  139. package/dist/chunk-LRRD7NAG.js +301 -0
  140. package/dist/chunk-LRRD7NAG.js.map +1 -0
  141. package/dist/chunk-ODT47UAY.js +221 -0
  142. package/dist/chunk-ODT47UAY.js.map +1 -0
  143. package/dist/chunk-PA2ZKHJC.js +230 -0
  144. package/dist/chunk-PA2ZKHJC.js.map +1 -0
  145. package/dist/chunk-PPYSEKFM.js +182 -0
  146. package/dist/chunk-PPYSEKFM.js.map +1 -0
  147. package/dist/chunk-PUIRNYI7.js +189 -0
  148. package/dist/chunk-PUIRNYI7.js.map +1 -0
  149. package/dist/chunk-R36V2VP7.js +169 -0
  150. package/dist/chunk-R36V2VP7.js.map +1 -0
  151. package/dist/chunk-R67DFVLO.js +142 -0
  152. package/dist/chunk-R67DFVLO.js.map +1 -0
  153. package/dist/chunk-SEVJPLZC.js +260 -0
  154. package/dist/chunk-SEVJPLZC.js.map +1 -0
  155. package/dist/chunk-SYDW647C.js +318 -0
  156. package/dist/chunk-SYDW647C.js.map +1 -0
  157. package/dist/chunk-TBKU5XQI.js +228 -0
  158. package/dist/chunk-TBKU5XQI.js.map +1 -0
  159. package/dist/chunk-TSWPNOYM.js +147 -0
  160. package/dist/chunk-TSWPNOYM.js.map +1 -0
  161. package/dist/chunk-UAIOHCUK.js +27 -0
  162. package/dist/chunk-UAIOHCUK.js.map +1 -0
  163. package/dist/chunk-UPAMRDX4.js +233 -0
  164. package/dist/chunk-UPAMRDX4.js.map +1 -0
  165. package/dist/chunk-VQRS7VUC.js +342 -0
  166. package/dist/chunk-VQRS7VUC.js.map +1 -0
  167. package/dist/chunk-X3BTXCJ4.js +262 -0
  168. package/dist/chunk-X3BTXCJ4.js.map +1 -0
  169. package/dist/chunk-X5YKXC6V.js +211 -0
  170. package/dist/chunk-X5YKXC6V.js.map +1 -0
  171. package/dist/chunk-Y6O2OCUO.js +130 -0
  172. package/dist/chunk-Y6O2OCUO.js.map +1 -0
  173. package/dist/chunk-YCGY7UIZ.js +208 -0
  174. package/dist/chunk-YCGY7UIZ.js.map +1 -0
  175. package/dist/chunk-Z7ML6L77.js +162 -0
  176. package/dist/chunk-Z7ML6L77.js.map +1 -0
  177. package/dist/chunk-ZEWMTR5M.js +136 -0
  178. package/dist/chunk-ZEWMTR5M.js.map +1 -0
  179. package/dist/index.d.ts +355 -0
  180. package/dist/index.js +1908 -0
  181. package/dist/index.js.map +1 -0
  182. package/fixtures/aec-bench.json +18 -0
  183. package/fixtures/agentbench-dbbench.json +22 -0
  184. package/fixtures/bfcl.json +45 -0
  185. package/fixtures/commit0.json +72 -0
  186. package/fixtures/crag.json +10 -0
  187. package/fixtures/dabstep.json +22 -0
  188. package/fixtures/enterpriseops-gym.json +103 -0
  189. package/fixtures/finresearchbench.json +21 -0
  190. package/fixtures/finsearchcomp.json +66 -0
  191. package/fixtures/frames.json +26 -0
  192. package/fixtures/hotpotqa.json +182 -0
  193. package/fixtures/nomiracl.json +26 -0
  194. package/fixtures/open-rag-bench.json +16 -0
  195. package/fixtures/pier-agent/no-model-task/environment/Dockerfile +16 -0
  196. package/fixtures/pier-agent/no-model-task/environment/seed/src/status.txt +1 -0
  197. package/fixtures/pier-agent/no-model-task/instruction.md +6 -0
  198. package/fixtures/pier-agent/no-model-task/pre_artifacts.sh +6 -0
  199. package/fixtures/pier-agent/no-model-task/task.toml +35 -0
  200. package/fixtures/pier-agent/no-model-task/tests/Dockerfile +17 -0
  201. package/fixtures/pier-agent/no-model-task/tests/seed/src/status.txt +1 -0
  202. package/fixtures/pier-agent/no-model-task/tests/test.sh +19 -0
  203. package/fixtures/programbench.json +17 -0
  204. package/fixtures/ragbench.json +21 -0
  205. package/fixtures/simpleqa.json +121 -0
  206. package/fixtures/t2-ragbench.json +13 -0
  207. package/fixtures/tau2-bench.json +16 -0
  208. package/fixtures/tau3-banking.json +16 -0
  209. package/fixtures/toollm.json +28 -0
  210. package/fixtures/webarena-verified.json +20 -0
  211. package/package.json +60 -20
  212. package/pier_agents/__init__.py +18 -0
  213. package/pier_agents/candidate_contract.py +755 -0
  214. package/pier_agents/process_boundary.py +321 -0
  215. package/pier_agents/tangle_candidate.py +907 -0
  216. package/pier_agents/workspace_boundary.py +368 -0
  217. package/scripts/appworld_driver.py +359 -0
  218. package/scripts/cadbench_prepare.py +22 -0
  219. package/scripts/cadgenbench_hard_parts.py +48 -0
  220. package/scripts/clbench_codebase_judge.py +73 -0
  221. package/scripts/commit0_judge.py +170 -0
  222. package/scripts/dabstep_judge.py +42 -0
  223. package/scripts/enterpriseops_gym_judge.py +281 -0
  224. package/scripts/programbench_judge.py +120 -0
  225. package/scripts/render-gate-chart.mjs +176 -0
  226. package/scripts/run-package-tests.mjs +56 -0
  227. package/scripts/terminate-pier-trial.mts +66 -0
  228. package/scripts/trata-hedge/README.md +56 -0
  229. package/scripts/trata-hedge/run.sh +60 -0
  230. package/scripts/trata-hedge/solve.py +83 -0
  231. package/scripts/verify-packed-consumer.mjs +235 -0
  232. package/scripts/verify-pier-agent.mts +715 -0
  233. package/scripts/verify-pier-pair.mts +74 -0
  234. package/scripts/verify-pier-recovery.mts +139 -0
  235. package/src/adapters.ts +26 -0
  236. package/src/benchmarks/_harness.test.mts +178 -0
  237. package/src/benchmarks/_harness.ts +239 -16
  238. package/src/benchmarks/agentbench.ts +163 -0
  239. package/src/benchmarks/appworld.test.mts +15 -9
  240. package/src/benchmarks/bfcl.ts +346 -0
  241. package/src/benchmarks/crag.ts +137 -0
  242. package/src/benchmarks/dabstep.test.mts +70 -0
  243. package/src/benchmarks/dabstep.ts +212 -0
  244. package/src/benchmarks/external-adapters.test.mts +150 -0
  245. package/src/benchmarks/finresearchbench.ts +269 -0
  246. package/src/benchmarks/humaneval.ts +20 -8
  247. package/src/benchmarks/nomiracl.ts +180 -0
  248. package/src/benchmarks/open-rag-bench.ts +153 -0
  249. package/src/benchmarks/rag-benchmarks.test.mts +138 -0
  250. package/src/benchmarks/rag-shared.ts +327 -0
  251. package/src/benchmarks/ragbench.ts +171 -0
  252. package/src/benchmarks/swe-bench.test.mts +61 -0
  253. package/src/benchmarks/swe-bench.ts +201 -19
  254. package/src/benchmarks/t2-ragbench.ts +166 -0
  255. package/src/benchmarks/tau-bench-shared.ts +214 -0
  256. package/src/benchmarks/tau2-bench.ts +30 -0
  257. package/src/benchmarks/tau3-banking.ts +29 -0
  258. package/src/benchmarks/terminal-bench.test.mts +33 -0
  259. package/src/benchmarks/terminal-bench.ts +23 -8
  260. package/src/benchmarks/toollm.ts +254 -0
  261. package/src/benchmarks/types.ts +42 -0
  262. package/src/benchmarks/webarena-verified.ts +200 -0
  263. package/src/commit0-prereqs.sh +0 -0
  264. package/src/coordination-mcp-container-reach.mts +181 -0
  265. package/src/decoder-live.mts +1 -1
  266. package/src/examples/README.md +103 -39
  267. package/src/examples/benchmark-matrix.mts +101 -0
  268. package/src/examples/lean-proof-gate.README.md +77 -0
  269. package/src/examples/lean-proof-gate.mts +162 -0
  270. package/src/examples/lean-verify.ts +95 -0
  271. package/src/examples/lean.Dockerfile +12 -0
  272. package/src/examples/math-demo.mts +9 -7
  273. package/src/examples/strategy-demo.mts +10 -12
  274. package/src/gate.ts +3 -2
  275. package/src/hev-eval.mts +69 -0
  276. package/src/hev-improve.mts +169 -0
  277. package/src/hev-structural.mts +688 -0
  278. package/src/index.ts +73 -0
  279. package/src/mbpp-structural.mts +662 -0
  280. package/src/pier-agent.test-fixtures.mts +19 -0
  281. package/src/pier-agent.test.mts +363 -0
  282. package/src/pier-agent.ts +657 -0
  283. package/src/pier-result-grader.mjs +30 -0
  284. package/src/pier-result-grader.test.mts +62 -0
  285. package/src/pier-result-grader.ts +108 -0
  286. package/src/pier-task-outcome.test.mts +117 -0
  287. package/src/pier-task-outcome.ts +240 -0
  288. package/src/pier-trial-controller.test.mts +412 -0
  289. package/src/pier-trial-controller.ts +858 -0
  290. package/src/pier-trial-supervisor.mjs +352 -0
  291. package/src/resolve-client.ts +25 -2
  292. package/src/run-benchmarks-cli.mts +72 -0
  293. package/src/run-benchmarks-report.ts +66 -0
  294. package/src/run-benchmarks.test.mts +231 -0
  295. package/src/run-benchmarks.ts +589 -0
  296. package/src/smoke-structural-rollout.mts +393 -0
  297. package/src/swe-bench-env.test.ts +207 -0
  298. package/src/swe-bench-env.ts +554 -0
  299. package/src/swe-jail.ts +293 -0
  300. package/src/swe-self-improve.mts +84 -0
  301. package/src/swe-structural-judge-policy.test.ts +117 -0
  302. package/src/swe-structural-judge-policy.ts +133 -0
  303. package/src/swe-structural-policy.test.ts +124 -0
  304. package/src/swe-structural-policy.ts +132 -0
  305. package/src/swe-structural-provenance.test.ts +93 -0
  306. package/src/swe-structural-provenance.ts +138 -0
  307. package/src/swe-structural.mts +1260 -0
  308. package/src/swe-temp.ts +14 -0
  309. package/src/tb-container-executor.mts +234 -0
  310. package/src/tb-container-executor.test.mts +99 -0
  311. package/src/tb-supervisor-sidecar.mts +222 -0
  312. package/src/trata-gepa.mts +1 -1
  313. package/steerers/eops-itsm-population.json +1 -0
  314. package/tb_agents/opencode_refine_agent.py +117 -0
  315. package/tb_agents/opencode_router_agent.py +406 -0
  316. package/tb_agents/opencode_supervisor_agent.py +239 -0
  317. package/tb_agents/script_agent.py +66 -0
@@ -0,0 +1,8 @@
1
+ import {
2
+ createAecBenchAdapter
3
+ } from "../chunk-ODT47UAY.js";
4
+ import "../chunk-LRRD7NAG.js";
5
+ export {
6
+ createAecBenchAdapter
7
+ };
8
+ //# sourceMappingURL=aec-bench.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,16 @@
1
+ import { OutputAdapter } from '@tangle-network/agent-runtime/loops';
2
+ import { BenchmarkAdapter } from './types.js';
3
+
4
+ /**
5
+ * AgentBench deterministic subset adapter.
6
+ *
7
+ * This targets AgentBench DBBench rows only: question + table + published label.
8
+ * It does not wrap AgentBench's controller protocol or the non-deterministic game
9
+ * environments. Worker artifact = final answer text. Judge = exact match against
10
+ * the official DBBench label list after light whitespace/case normalization.
11
+ */
12
+
13
+ declare const agentbenchAnswerOutput: OutputAdapter<string>;
14
+ declare function createAgentBenchAdapter(): BenchmarkAdapter;
15
+
16
+ export { agentbenchAnswerOutput, createAgentBenchAdapter };
@@ -0,0 +1,10 @@
1
+ import {
2
+ agentbenchAnswerOutput,
3
+ createAgentBenchAdapter
4
+ } from "../chunk-7WSD27QQ.js";
5
+ import "../chunk-LRRD7NAG.js";
6
+ export {
7
+ agentbenchAnswerOutput,
8
+ createAgentBenchAdapter
9
+ };
10
+ //# sourceMappingURL=agentbench.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,37 @@
1
+ import { OutputAdapter } from '@tangle-network/agent-runtime/loops';
2
+ import { BenchmarkAdapter } from './types.js';
3
+
4
+ /**
5
+ * AppWorld adapter (StonyBrookNLP/appworld). Worker artifact = the agent's
6
+ * Python solution that calls the simulated apps' APIs (the same `apis.<app>.<fn>`
7
+ * surface AppWorld exposes inside `world.execute(...)`), ending in
8
+ * `apis.supervisor.complete_task()`. Judge = AppWorld's OWN programmatic
9
+ * evaluator: a driver runs the solution in a fresh `AppWorld(task_id=...)` world,
10
+ * then `world.evaluate().to_dict()` reports `success` (binary TGC), `num_tests`
11
+ * (per-requirement total) and the `passes`/`failures` lists. Score =
12
+ * passes / num_tests — GRADED; resolved = success. Fully deterministic — no LLM judge.
13
+ *
14
+ * loadTasks enumerates the real task suite via `load_task_ids(split)`
15
+ * (train|dev|test_normal|test_challenge); the prompt = `world.task.instruction`.
16
+ * The OutputAdapter is stream-only, so the worker emits its solution as a fenced
17
+ * ```python block which the driver executes.
18
+ *
19
+ * Requires for a live run: the bench `.venv` with `appworld` installed + the
20
+ * unpacked engine + downloaded data (`appworld install` ; `appworld download
21
+ * data`). preflight + loadTasks + judge all fail loud with the exact step when the
22
+ * engine/data is absent — never a fabricated score.
23
+ */
24
+
25
+ /** Worker solution code = the last fenced ```python block, else the raw text. */
26
+ declare const appworldSolutionOutput: OutputAdapter<string>;
27
+ declare function createAppWorldAdapter(): BenchmarkAdapter;
28
+ /** SandboxClient whose leaf is OUR routerToolLoop driving a persistent world session. */
29
+ declare function appworldToolLoopClient(cfg: {
30
+ model: string;
31
+ routerBaseUrl: string;
32
+ routerKey: string;
33
+ maxTurns?: number;
34
+ }): unknown;
35
+ declare function createAppWorldReactAdapter(): BenchmarkAdapter;
36
+
37
+ export { appworldSolutionOutput, appworldToolLoopClient, createAppWorldAdapter, createAppWorldReactAdapter };
@@ -0,0 +1,14 @@
1
+ import {
2
+ appworldSolutionOutput,
3
+ appworldToolLoopClient,
4
+ createAppWorldAdapter,
5
+ createAppWorldReactAdapter
6
+ } from "../chunk-SYDW647C.js";
7
+ import "../chunk-LRRD7NAG.js";
8
+ export {
9
+ appworldSolutionOutput,
10
+ appworldToolLoopClient,
11
+ createAppWorldAdapter,
12
+ createAppWorldReactAdapter
13
+ };
14
+ //# sourceMappingURL=appworld.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,18 @@
1
+ import { OutputAdapter } from '@tangle-network/agent-runtime/loops';
2
+ import { BenchmarkAdapter } from './types.js';
3
+
4
+ /**
5
+ * Berkeley Function Calling Leaderboard adapter.
6
+ *
7
+ * Scope: deterministic function-call ground-truth categories from the official
8
+ * BFCL data files. This is NOT the full live BFCL leaderboard evaluator: agentic
9
+ * web-search/memory categories and BFCL's own model-response harness remain
10
+ * upstream responsibilities. The adapter loads official JSONL rows plus their
11
+ * `possible_answer` file and scores structured function-call artifacts against
12
+ * allowed function/argument values.
13
+ */
14
+
15
+ declare const bfclOutput: OutputAdapter<string>;
16
+ declare function createBfclAdapter(): BenchmarkAdapter;
17
+
18
+ export { bfclOutput, createBfclAdapter };
@@ -0,0 +1,10 @@
1
+ import {
2
+ bfclOutput,
3
+ createBfclAdapter
4
+ } from "../chunk-IFAV6KEM.js";
5
+ import "../chunk-LRRD7NAG.js";
6
+ export {
7
+ bfclOutput,
8
+ createBfclAdapter
9
+ };
10
+ //# sourceMappingURL=bfcl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,45 @@
1
+ import { BenchmarkAdapter } from './types.js';
2
+ import '@tangle-network/agent-runtime/loops';
3
+
4
+ /**
5
+ * CAD-Design adapter. Worker artifact = OpenSCAD source (`.scad`). Judge = the
6
+ * REAL OpenSCAD engine: compile + export STL, then measure the produced solid
7
+ * geometry against the task's spec. Fully deterministic — the authoritative CAD
8
+ * kernel is the gate, not an LLM and not the agent's own claim.
9
+ *
10
+ * This is verifiable-reward CAD: an agent is far better at *writing* exact
11
+ * parametric code than at clicking a GUI, and the kernel either produces the
12
+ * specified geometry or it doesn't. Every judged artifact also renders a PNG,
13
+ * so a refine loop's attempts become a watchable "model getting better" reel
14
+ * (run-capsule consumes the renders).
15
+ *
16
+ * Spec checks are geometric and ungameable:
17
+ * - compiles : `openscad -o out.stl` exits 0 (hard gate)
18
+ * - volumes : disconnected-solid count within [min,max]
19
+ * - bbox : overall X/Y/Z extent within bounds (the thing is the right size)
20
+ * - detail : triangle count ≥ floor (not a degenerate single cube)
21
+ * - pitchedRoof : the top band's XY footprint NARROWS vs the base — a flat
22
+ * box can't fake this; a real gabled/hipped roof tapers
23
+ * - hollow : interior cavity present (walls, not a solid block) — the
24
+ * bbox volume materially exceeds the printed solid volume
25
+ *
26
+ * Requires only `openscad` + `xvfb-run` on PATH (no venv, no Docker, no network).
27
+ */
28
+
29
+ /** Spec assertions a CAD task can require. All are deterministic + geometric. */
30
+ interface CadSpec {
31
+ volumes?: [number, number];
32
+ bbox?: {
33
+ x?: [number, number];
34
+ y?: [number, number];
35
+ z?: [number, number];
36
+ };
37
+ minTriangles?: number;
38
+ /** Top-band XY footprint must be < this fraction of the base footprint. */
39
+ pitchedRoof?: number;
40
+ /** Printed solid volume must be < this fraction of the bbox volume (hollow). */
41
+ hollowBelow?: number;
42
+ }
43
+ declare function createCadDesignAdapter(): BenchmarkAdapter;
44
+
45
+ export { type CadSpec, createCadDesignAdapter };
@@ -0,0 +1,7 @@
1
+ import {
2
+ createCadDesignAdapter
3
+ } from "../chunk-53UPUNBZ.js";
4
+ export {
5
+ createCadDesignAdapter
6
+ };
7
+ //# sourceMappingURL=cad-design.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,19 @@
1
+ import { BenchmarkAdapter } from './types.js';
2
+ import '@tangle-network/agent-runtime/loops';
3
+
4
+ /**
5
+ * CADBench / BlenderLLM adapter (FreedomIntelligence/CADBench, arXiv:2412.14203).
6
+ * Task = NL instruction → a Blender `bpy` script. Score = the paper's criteria
7
+ * eval: render the produced model to standardized views, then a vision judge
8
+ * (GPT-4o-class) marks each per-task criterion bullet pass/fail against the
9
+ * rendered images + the script text. score = fraction of criteria satisfied.
10
+ *
11
+ * Data: the published dataset's `criteria` flattened to a bullet list (700 tasks,
12
+ * 500 Simulative + 200 Wild). Point CADBENCH_PATH at the cleaned JSONL
13
+ * ({id,name,instruction,type,criteria:string[]} per line). Judge creds from
14
+ * TANGLE_API_KEY / ROUTER_BASE / JUDGE_MODEL (default gpt-4o).
15
+ */
16
+
17
+ declare function createCadBenchAdapter(): BenchmarkAdapter;
18
+
19
+ export { createCadBenchAdapter };
@@ -0,0 +1,8 @@
1
+ import {
2
+ createCadBenchAdapter
3
+ } from "../chunk-PUIRNYI7.js";
4
+ import "../chunk-JTHWEDEW.js";
5
+ export {
6
+ createCadBenchAdapter
7
+ };
8
+ //# sourceMappingURL=cadbench.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,22 @@
1
+ import { BenchmarkAdapter } from './types.js';
2
+ import '@tangle-network/agent-runtime/loops';
3
+
4
+ /**
5
+ * CADGenBench adapter (huggingface/cadgenbench, Apache-2.0). Task = a part
6
+ * description → a STEP B-rep solid (output.step). Score = the benchmark's OWN
7
+ * deterministic geometric metric (cad_score): validity gate → PCA/ICP align to
8
+ * the ground truth → point-cloud F1 + volume IoU + edge F1 + topology match.
9
+ * NOT an LLM judge, NOT self-defined checks — the published CAD kernel decides.
10
+ *
11
+ * The official task set (private GT, server-side graded) isn't released yet, so
12
+ * tasks here are seeded from the repo's dimension-named geometry fixtures (real
13
+ * GT STEPs scored by the real scorer). When CADGENBENCH_DATA_DIR is set, swap
14
+ * loadTasks to read the published fixtures' description.yaml + ground_truth.step.
15
+ *
16
+ * Requires the CADGenBench venv (CADGENBENCH_VENV) + clone (CADGENBENCH_DIR) +
17
+ * xvfb (the scorer's alignment renders need a display).
18
+ */
19
+
20
+ declare function createCadGenBenchAdapter(): BenchmarkAdapter;
21
+
22
+ export { createCadGenBenchAdapter };
@@ -0,0 +1,8 @@
1
+ import {
2
+ createCadGenBenchAdapter
3
+ } from "../chunk-C7T7WEK2.js";
4
+ import "../chunk-JTHWEDEW.js";
5
+ export {
6
+ createCadGenBenchAdapter
7
+ };
8
+ //# sourceMappingURL=cadgenbench.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,31 @@
1
+ import { OutputAdapter } from '@tangle-network/agent-runtime/loops';
2
+ import { BenchmarkAdapter } from './types.js';
3
+
4
+ /**
5
+ * Commit0 adapter (wentingzhao/commit0_combined) — implement-a-library-from-scratch.
6
+ * Each record is a Python repo stubbed at `base_commit` (public function bodies
7
+ * emptied to `pass`) + the full test suite + a natural-language spec URL. Worker
8
+ * artifact = a unified diff that fills in `src_dir`. Judge = the official
9
+ * `commit0` test harness: it stages the starter repo, applies the worker's diff,
10
+ * builds the library's deps and runs `pytest`, writing a per-repo pytest-json
11
+ * `report.json`. Score = (passed + xfail) / total — GRADED / partial-credit (the
12
+ * macro-averaged unit-test pass-rate the leaderboard reports). Fully
13
+ * deterministic — no LLM judge.
14
+ *
15
+ * The OutputAdapter is stream-only (the SWE wrinkle), so the worker emits its
16
+ * implementation as a fenced ```diff against the stubbed repo — same deliverable
17
+ * shape as swe-bench. The expensive per-repo clone+build+test is delegated to the
18
+ * real `commit0` harness on a local Docker backend (NOT reimplemented here).
19
+ *
20
+ * Requires for a live run: an ISOLATED `.venv-commit0` with `commit0` installed
21
+ * (its deps conflict with the shared bench `.venv`; override with COMMIT0_VENV) +
22
+ * a Docker daemon (`--backend local`). For offline/CI dataset listing set
23
+ * COMMIT0_FIXTURES=1 to load the committed lite rows (bench/fixtures/commit0.json)
24
+ * — judging still needs the harness + Docker and fails loud, never a fabricated score.
25
+ */
26
+
27
+ /** Reuse the SWE patch extractor shape: last fenced diff/patch, else raw text. */
28
+ declare const commit0DiffOutput: OutputAdapter<string>;
29
+ declare function createCommit0Adapter(): BenchmarkAdapter;
30
+
31
+ export { commit0DiffOutput, createCommit0Adapter };
@@ -0,0 +1,10 @@
1
+ import {
2
+ commit0DiffOutput,
3
+ createCommit0Adapter
4
+ } from "../chunk-2XU6OGEN.js";
5
+ import "../chunk-LRRD7NAG.js";
6
+ export {
7
+ commit0DiffOutput,
8
+ createCommit0Adapter
9
+ };
10
+ //# sourceMappingURL=commit0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,14 @@
1
+ import { BenchmarkAdapter } from './types.js';
2
+ import '@tangle-network/agent-runtime/loops';
3
+
4
+ /**
5
+ * CRAG adapter (Comprehensive RAG Benchmark).
6
+ *
7
+ * Live mode expects an official or compatible CRAG JSON/JSONL export. The
8
+ * adapter preserves CRAG domain/type/dynamism tags in metadata and scores final
9
+ * answers deterministically against the provided gold answer list.
10
+ */
11
+
12
+ declare function createCragAdapter(): BenchmarkAdapter;
13
+
14
+ export { createCragAdapter };
@@ -0,0 +1,9 @@
1
+ import {
2
+ createCragAdapter
3
+ } from "../chunk-HHXFIHXC.js";
4
+ import "../chunk-X3BTXCJ4.js";
5
+ import "../chunk-LRRD7NAG.js";
6
+ export {
7
+ createCragAdapter
8
+ };
9
+ //# sourceMappingURL=crag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,18 @@
1
+ import { OutputAdapter } from '@tangle-network/agent-runtime/loops';
2
+ import { BenchmarkAdapter } from './types.js';
3
+
4
+ /**
5
+ * DABStep adapter (EnvCommons/DABStep) — data-analysis questions over synthetic
6
+ * payment files. Worker artifact = final answer text. Judge = the official
7
+ * DABStep `grade.py` normalization/matching function. No LLM judge.
8
+ *
9
+ * Live tasks require `DABSTEP_DIR` pointing at an official DABStep checkout that
10
+ * includes `dataset.csv`, `splits/*.txt`, `files/*`, and `grade.py`. The adapter
11
+ * exposes `metadata.resourceRoot` so runners can mount the benchmark files into
12
+ * AgentProfile.resources.files; it does not paste the dataset into prompt text.
13
+ */
14
+
15
+ declare const dabstepAnswerOutput: OutputAdapter<string>;
16
+ declare function createDabstepAdapter(): BenchmarkAdapter;
17
+
18
+ export { createDabstepAdapter, dabstepAnswerOutput };
@@ -0,0 +1,10 @@
1
+ import {
2
+ createDabstepAdapter,
3
+ dabstepAnswerOutput
4
+ } from "../chunk-J3KDJNX2.js";
5
+ import "../chunk-LRRD7NAG.js";
6
+ export {
7
+ createDabstepAdapter,
8
+ dabstepAnswerOutput
9
+ };
10
+ //# sourceMappingURL=dabstep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,38 @@
1
+ import { OutputAdapter } from '@tangle-network/agent-runtime/loops';
2
+ import { BenchmarkAdapter } from './types.js';
3
+
4
+ /**
5
+ * EnterpriseOps-Gym adapter (ServiceNow-AI/EnterpriseOps-Gym, Apache-2.0) —
6
+ * stateful agentic planning + tool use in enterprise settings. Each record is an
7
+ * enterprise-ops task (Customer Service, HR, ITSM, Calendar, Email, Drive, Teams,
8
+ * Hybrid) handed to the agent with a domain `system_prompt`, a `selected_tools`
9
+ * allow-list, and one or more containerized gym MCP servers (`gym_servers_config`).
10
+ * Worker artifact = the ordered tool-call transcript the agent would issue against
11
+ * those servers, emitted as a single fenced ```json block of
12
+ * `{ "calls": [ { "tool": ..., "arguments": {...}, "gym_name"?: ... } ] }`.
13
+ *
14
+ * Judge = the benchmark's OWN deterministic state-checker. The driver replays the
15
+ * transcript against a freshly-seeded gym server (mutating its database), then runs
16
+ * each task's `database_state` verifier — an SQL SELECT executed via the gym
17
+ * server's /api/sql-runner endpoint, compared to `expected_value` under
18
+ * `comparison_type` (equals/greater_than/less_than/contains). GRADED: score =
19
+ * (verifiers passing) / (total verifiers) = the bench's verifier_level_pass_rate;
20
+ * binary `resolved` = ALL verifiers pass = the bench's overall_success_rate. Fully
21
+ * deterministic — no LLM judge.
22
+ *
23
+ * loadTasks enumerates the real suite from the HF rows server (config = tool-set
24
+ * MODE oracle|plus_5_tools|plus_10_tools|plus_15_tools; split = DOMAIN); a committed
25
+ * sample (bench/fixtures/enterpriseops-gym.json) loads offline.
26
+ *
27
+ * Requires for a LIVE judge run: a Docker daemon with the domain gym images
28
+ * (`docker pull shivakrishnareddyma225/enterpriseops-gym-mcp-<domain>:latest`) up
29
+ * on the ports in `gym_servers_config`, seeded from gym_dbs.zip. preflight + judge
30
+ * fail loud with the exact pull/run/unzip step when a server is unreachable — never
31
+ * a fabricated score. No portable gold artifact ships, so goldArtifact is undefined.
32
+ */
33
+
34
+ /** Worker transcript = the last fenced ```json block, else the raw text. */
35
+ declare const enterpriseOpsTranscriptOutput: OutputAdapter<string>;
36
+ declare function createEnterpriseOpsGymAdapter(): BenchmarkAdapter;
37
+
38
+ export { createEnterpriseOpsGymAdapter, enterpriseOpsTranscriptOutput };
@@ -0,0 +1,10 @@
1
+ import {
2
+ createEnterpriseOpsGymAdapter,
3
+ enterpriseOpsTranscriptOutput
4
+ } from "../chunk-X5YKXC6V.js";
5
+ import "../chunk-LRRD7NAG.js";
6
+ export {
7
+ createEnterpriseOpsGymAdapter,
8
+ enterpriseOpsTranscriptOutput
9
+ };
10
+ //# sourceMappingURL=enterpriseops-gym.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,15 @@
1
+ import { BenchmarkAdapter } from './types.js';
2
+ import '@tangle-network/agent-runtime/loops';
3
+
4
+ /**
5
+ * FinResearchBench-compatible adapter.
6
+ *
7
+ * The paper defines a logic-tree Agent-as-a-Judge benchmark for financial
8
+ * research reports, but there is no stable public scorer package wired here.
9
+ * Live mode therefore requires a local data export whose rows carry the official
10
+ * judge prompt/template/logic tree. The adapter refuses to invent a judge.
11
+ */
12
+
13
+ declare function createFinResearchBenchAdapter(): BenchmarkAdapter;
14
+
15
+ export { createFinResearchBenchAdapter };
@@ -0,0 +1,8 @@
1
+ import {
2
+ createFinResearchBenchAdapter
3
+ } from "../chunk-YCGY7UIZ.js";
4
+ import "../chunk-LRRD7NAG.js";
5
+ export {
6
+ createFinResearchBenchAdapter
7
+ };
8
+ //# sourceMappingURL=finresearchbench.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,49 @@
1
+ import { BenchmarkAdapter } from './types.js';
2
+ import '@tangle-network/agent-runtime/loops';
3
+
4
+ /**
5
+ * FinSearchComp adapter (randomtutu/FinSearchComp). Agentic financial search +
6
+ * reasoning. Worker artifact = the agent's free-form final answer text (zh/en).
7
+ *
8
+ * Each record is SELF-CONTAINED and carries its OWN judge: a per-record
9
+ * `judge_system_prompt` + a `judge_prompt_template` with {prompt},
10
+ * {response_reference} (gold answer WITH embedded tolerance/scoring-criteria),
11
+ * and {response} (the student answer) placeholders. We faithfully REPLICATE the
12
+ * benchmark's judge — fill the template, run it under the record's system prompt
13
+ * via the pinned router (temperature 0), and parse the JSON the judge emits. The
14
+ * judge returns an `answer_score` field; 1/positive = resolved, else not.
15
+ * This matches the FinSearchComp leaderboard (Grok-4-web 68.9%).
16
+ *
17
+ * There is NO deterministic Tier-1 path here: the gold answer is prose with
18
+ * region-specific units, embedded tolerances ("允许1%的误差"), and multi-point
19
+ * scoring criteria. The benchmark intends its own LLM judge to be the arbiter,
20
+ * so the judge IS the score — fail loud on unparseable judge output (never
21
+ * default to resolved).
22
+ *
23
+ * SCOPE: T2 (Simple_Historical_Lookup) + T3 (Complex_Historical_Investigation)
24
+ * are fully self-contained and supported. T1 (Time_Sensitive_Data_Fetching)
25
+ * needs a live market snapshot / akshare ground truth to fill the judge's
26
+ * {ground_truth} slot — it is SKIPPED in loadTasks and flagged in preflight.
27
+ * See {@link T1Seam}.
28
+ *
29
+ * Requires for a live run: network access to the GitHub-hosted dataset JSON and
30
+ * a TANGLE_API_KEY for the judge. For offline/CI verification, loadTasks falls back
31
+ * to the committed fixtures (bench/fixtures/finsearchcomp.json) with an explicit
32
+ * console.warn — never a silent fallback.
33
+ */
34
+
35
+ /**
36
+ * Typed seam for T1 (Time_Sensitive_Data_Fetching). T1 records score against a
37
+ * live market snapshot the judge consumes via a {ground_truth} template slot;
38
+ * the adapter does NOT fabricate that snapshot. Wiring T1 means supplying a
39
+ * resolver that fetches the akshare/market value for the record at judge time
40
+ * and filling {ground_truth}. Until then T1 is excluded from loadTasks.
41
+ */
42
+ interface T1Seam {
43
+ promptId: string;
44
+ /** Resolver that returns the real-time ground-truth block for the {ground_truth} slot. */
45
+ resolveGroundTruth(promptId: string): Promise<string>;
46
+ }
47
+ declare function createFinsearchcompAdapter(): BenchmarkAdapter;
48
+
49
+ export { type T1Seam, createFinsearchcompAdapter };
@@ -0,0 +1,7 @@
1
+ import {
2
+ createFinsearchcompAdapter
3
+ } from "../chunk-UPAMRDX4.js";
4
+ export {
5
+ createFinsearchcompAdapter
6
+ };
7
+ //# sourceMappingURL=finsearchcomp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,59 @@
1
+ import { BenchmarkAdapter } from './types.js';
2
+ import '@tangle-network/agent-runtime/loops';
3
+
4
+ /**
5
+ * FRAMES adapter (google/frames-benchmark). Worker artifact = a single free-text
6
+ * final answer string (optionally preceded by a citations block). FRAMES ships,
7
+ * per item, a short gold `Answer` PLUS gold `wiki_links` (the Wikipedia URLs
8
+ * needed to answer) — the gold-citation column is what lets the loop's critic
9
+ * check citation coverage deterministically.
10
+ *
11
+ * Judge is two-tier, deterministic-first:
12
+ * Tier 1 — normalized exact / token-boundary containment match (no model tokens).
13
+ * Tier 2 — a constrained binary equivalence gate via a pinned LLM (JUDGE_MODEL,
14
+ * temperature 0), fired ONLY when Tier 1 misses, to absorb the
15
+ * paraphrase/alias equivalence FRAMES intends to allow.
16
+ *
17
+ * score is binary (resolved ? 1 : 0) — FRAMES has no partial credit. The judge
18
+ * resolves strictly on the Answer value; wiki_links are a SOFT signal surfaced
19
+ * in `detail` for the critic, never a hard pass criterion.
20
+ *
21
+ * Requires for a live run: the bench `.venv` with `datasets` installed and a
22
+ * JUDGE_MODEL router key. For offline/CI verification set FRAMES_FIXTURES=1 to
23
+ * load the committed fixtures (bench/fixtures/frames.json) — no HF download.
24
+ */
25
+
26
+ /**
27
+ * Typed seam for the future dynamic-topology research worker. The benchmark
28
+ * adapter scores a plain `string` artifact (the BenchmarkAdapter contract); the
29
+ * loop worker decodes its agent runs into a {@link ResearchAnswer} and serializes
30
+ * `finalAnswer` (+ optional `CITATIONS:` block) into that string before judging.
31
+ */
32
+ interface ResearchTask {
33
+ id: string;
34
+ question: string;
35
+ /** Gold short answer — judge resolves strictly against this. */
36
+ gold: string;
37
+ /** Gold Wikipedia URLs — SOFT citation-coverage signal for the critic, never a hard gate. */
38
+ goldSources: string[];
39
+ /** FRAMES reasoning_types, e.g. 'numerical | temporal' — slices the scorecard by hop-type. */
40
+ reasoningTypes: string;
41
+ }
42
+ interface ResearchAnswer {
43
+ finalAnswer: string;
44
+ citations: string[];
45
+ }
46
+ /** Port of the SQuAD/GAIA normalize_answer routine, plus number/date canonicalization. */
47
+ declare function normalizeAnswer(input: string): string;
48
+ /**
49
+ * Parse the worker artifact into the final answer string.
50
+ * Order: the `FINAL ANSWER:` sentinel first (deterministic-extraction discipline);
51
+ * fall back to the last non-empty line. Returns '' when nothing is parseable
52
+ * (fail-closed — never guess), which judge() counts as resolved=false.
53
+ */
54
+ declare function parseFinalAnswer(artifact: string): string;
55
+ /** Extract cited URLs from a `CITATIONS:` block and any bare URLs in the artifact. */
56
+ declare function parseCitations(artifact: string): string[];
57
+ declare function createFramesAdapter(): BenchmarkAdapter;
58
+
59
+ export { type ResearchAnswer, type ResearchTask, createFramesAdapter, normalizeAnswer, parseCitations, parseFinalAnswer };
@@ -0,0 +1,13 @@
1
+ import {
2
+ createFramesAdapter,
3
+ normalizeAnswer,
4
+ parseCitations,
5
+ parseFinalAnswer
6
+ } from "../chunk-INNOYXCP.js";
7
+ export {
8
+ createFramesAdapter,
9
+ normalizeAnswer,
10
+ parseCitations,
11
+ parseFinalAnswer
12
+ };
13
+ //# sourceMappingURL=frames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}