@zhixuan92/multi-model-agent-core 4.3.1 → 4.5.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 (469) hide show
  1. package/README.md +13 -24
  2. package/dist/bounded-execution/cost-compute.d.ts.map +1 -1
  3. package/dist/bounded-execution/cost-compute.js +10 -0
  4. package/dist/bounded-execution/cost-compute.js.map +1 -1
  5. package/dist/bounded-execution/index.d.ts +1 -0
  6. package/dist/bounded-execution/index.d.ts.map +1 -1
  7. package/dist/bounded-execution/index.js +1 -0
  8. package/dist/bounded-execution/index.js.map +1 -1
  9. package/dist/bounded-execution/progress-watchdog.d.ts +43 -0
  10. package/dist/bounded-execution/progress-watchdog.d.ts.map +1 -0
  11. package/dist/bounded-execution/progress-watchdog.js +137 -0
  12. package/dist/bounded-execution/progress-watchdog.js.map +1 -0
  13. package/dist/config/config-resolver.d.ts +6 -4
  14. package/dist/config/config-resolver.d.ts.map +1 -1
  15. package/dist/config/config-resolver.js +7 -6
  16. package/dist/config/config-resolver.js.map +1 -1
  17. package/dist/config/schema.d.ts +12 -76
  18. package/dist/config/schema.d.ts.map +1 -1
  19. package/dist/config/schema.js +15 -18
  20. package/dist/config/schema.js.map +1 -1
  21. package/dist/escalation/delegate-with-escalation.d.ts.map +1 -1
  22. package/dist/escalation/delegate-with-escalation.js +35 -38
  23. package/dist/escalation/delegate-with-escalation.js.map +1 -1
  24. package/dist/escalation/escalation-policy.d.ts +1 -1
  25. package/dist/escalation/escalation-policy.d.ts.map +1 -1
  26. package/dist/escalation/escalation-policy.js +0 -1
  27. package/dist/escalation/escalation-policy.js.map +1 -1
  28. package/dist/events/clamp.d.ts.map +1 -1
  29. package/dist/events/clamp.js +17 -6
  30. package/dist/events/clamp.js.map +1 -1
  31. package/dist/events/cloud-events.d.ts +1 -3
  32. package/dist/events/cloud-events.d.ts.map +1 -1
  33. package/dist/events/event-builder.d.ts +3 -1
  34. package/dist/events/event-builder.d.ts.map +1 -1
  35. package/dist/events/event-builder.js +14 -3
  36. package/dist/events/event-builder.js.map +1 -1
  37. package/dist/events/observability-events.d.ts +347 -25
  38. package/dist/events/observability-events.d.ts.map +1 -1
  39. package/dist/events/observability-events.js +135 -0
  40. package/dist/events/observability-events.js.map +1 -1
  41. package/dist/events/running-headline-sink.d.ts +2 -1
  42. package/dist/events/running-headline-sink.d.ts.map +1 -1
  43. package/dist/events/running-headline-sink.js.map +1 -1
  44. package/dist/events/telemetry-types.d.ts +57 -23
  45. package/dist/events/telemetry-types.d.ts.map +1 -1
  46. package/dist/events/telemetry-types.js +18 -14
  47. package/dist/events/telemetry-types.js.map +1 -1
  48. package/dist/index.d.ts +2 -5
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +1 -5
  51. package/dist/index.js.map +1 -1
  52. package/dist/intake/field-inferer.js +5 -5
  53. package/dist/intake/field-inferer.js.map +1 -1
  54. package/dist/intake/source-schema.js +1 -1
  55. package/dist/intake/source-schema.js.map +1 -1
  56. package/dist/intake/types.d.ts +1 -1
  57. package/dist/intake/types.d.ts.map +1 -1
  58. package/dist/intake/verify-command-validator.d.ts +6 -0
  59. package/dist/intake/verify-command-validator.d.ts.map +1 -0
  60. package/dist/intake/verify-command-validator.js +47 -0
  61. package/dist/intake/verify-command-validator.js.map +1 -0
  62. package/dist/lifecycle/findings-parser.d.ts +9 -0
  63. package/dist/lifecycle/findings-parser.d.ts.map +1 -0
  64. package/dist/lifecycle/findings-parser.js +47 -0
  65. package/dist/lifecycle/findings-parser.js.map +1 -0
  66. package/dist/lifecycle/handlers/annotator.d.ts +35 -0
  67. package/dist/lifecycle/handlers/annotator.d.ts.map +1 -0
  68. package/dist/lifecycle/handlers/annotator.js +59 -0
  69. package/dist/lifecycle/handlers/annotator.js.map +1 -0
  70. package/dist/lifecycle/handlers/baseline-handlers.d.ts.map +1 -1
  71. package/dist/lifecycle/handlers/baseline-handlers.js +30 -37
  72. package/dist/lifecycle/handlers/baseline-handlers.js.map +1 -1
  73. package/dist/lifecycle/handlers/git-commit-handler.d.ts +1 -16
  74. package/dist/lifecycle/handlers/git-commit-handler.d.ts.map +1 -1
  75. package/dist/lifecycle/handlers/git-commit-handler.js +148 -53
  76. package/dist/lifecycle/handlers/git-commit-handler.js.map +1 -1
  77. package/dist/lifecycle/handlers/read-route-implementer.d.ts +41 -0
  78. package/dist/lifecycle/handlers/read-route-implementer.d.ts.map +1 -0
  79. package/dist/lifecycle/handlers/read-route-implementer.js +84 -0
  80. package/dist/lifecycle/handlers/read-route-implementer.js.map +1 -0
  81. package/dist/lifecycle/handlers/review-handler.d.ts.map +1 -1
  82. package/dist/lifecycle/handlers/review-handler.js +84 -90
  83. package/dist/lifecycle/handlers/review-handler.js.map +1 -1
  84. package/dist/lifecycle/handlers/rework-handler.d.ts.map +1 -1
  85. package/dist/lifecycle/handlers/rework-handler.js +79 -25
  86. package/dist/lifecycle/handlers/rework-handler.js.map +1 -1
  87. package/dist/lifecycle/handlers/task-executor.d.ts +2 -3
  88. package/dist/lifecycle/handlers/task-executor.d.ts.map +1 -1
  89. package/dist/lifecycle/handlers/task-executor.js +90 -8
  90. package/dist/lifecycle/handlers/task-executor.js.map +1 -1
  91. package/dist/lifecycle/handlers/terminal-handlers.d.ts +1 -1
  92. package/dist/lifecycle/handlers/terminal-handlers.d.ts.map +1 -1
  93. package/dist/lifecycle/handlers/terminal-handlers.js +4 -1
  94. package/dist/lifecycle/handlers/terminal-handlers.js.map +1 -1
  95. package/dist/lifecycle/lifecycle-context.d.ts +14 -0
  96. package/dist/lifecycle/lifecycle-context.d.ts.map +1 -1
  97. package/dist/lifecycle/parallel-criteria-routes.d.ts +20 -6
  98. package/dist/lifecycle/parallel-criteria-routes.d.ts.map +1 -1
  99. package/dist/lifecycle/parallel-criteria-routes.js +36 -142
  100. package/dist/lifecycle/parallel-criteria-routes.js.map +1 -1
  101. package/dist/lifecycle/read-only-subtype-spec.d.ts +18 -0
  102. package/dist/lifecycle/read-only-subtype-spec.d.ts.map +1 -0
  103. package/dist/lifecycle/read-only-subtype-spec.js +2 -0
  104. package/dist/lifecycle/read-only-subtype-spec.js.map +1 -0
  105. package/dist/lifecycle/real-diff.d.ts +7 -0
  106. package/dist/lifecycle/real-diff.d.ts.map +1 -0
  107. package/dist/lifecycle/real-diff.js +54 -0
  108. package/dist/lifecycle/real-diff.js.map +1 -0
  109. package/dist/lifecycle/scope-match.d.ts +7 -0
  110. package/dist/lifecycle/scope-match.d.ts.map +1 -0
  111. package/dist/lifecycle/scope-match.js +28 -0
  112. package/dist/lifecycle/scope-match.js.map +1 -0
  113. package/dist/lifecycle/stage-labels.d.ts +22 -0
  114. package/dist/lifecycle/stage-labels.d.ts.map +1 -0
  115. package/dist/lifecycle/stage-labels.js +42 -0
  116. package/dist/lifecycle/stage-labels.js.map +1 -0
  117. package/dist/lifecycle/stage-plan-builder.d.ts.map +1 -1
  118. package/dist/lifecycle/stage-plan-builder.js +25 -54
  119. package/dist/lifecycle/stage-plan-builder.js.map +1 -1
  120. package/dist/lifecycle/stage-plan-types.d.ts +5 -23
  121. package/dist/lifecycle/stage-plan-types.d.ts.map +1 -1
  122. package/dist/lifecycle/stage-progression.js +14 -14
  123. package/dist/lifecycle/stage-progression.js.map +1 -1
  124. package/dist/lifecycle/stage-stats.js +1 -1
  125. package/dist/lifecycle/stage-stats.js.map +1 -1
  126. package/dist/lifecycle/task-executor.d.ts.map +1 -1
  127. package/dist/lifecycle/task-executor.js +20 -17
  128. package/dist/lifecycle/task-executor.js.map +1 -1
  129. package/dist/lifecycle/task-runner.d.ts.map +1 -1
  130. package/dist/lifecycle/task-runner.js +114 -72
  131. package/dist/lifecycle/task-runner.js.map +1 -1
  132. package/dist/lifecycle/tool-config-types.d.ts +1 -2
  133. package/dist/lifecycle/tool-config-types.d.ts.map +1 -1
  134. package/dist/lifecycle/warm-followup.d.ts +3 -0
  135. package/dist/lifecycle/warm-followup.d.ts.map +1 -0
  136. package/dist/lifecycle/warm-followup.js +16 -0
  137. package/dist/lifecycle/warm-followup.js.map +1 -0
  138. package/dist/lifecycle/worker-output-contract.d.ts +26 -0
  139. package/dist/lifecycle/worker-output-contract.d.ts.map +1 -0
  140. package/dist/lifecycle/worker-output-contract.js +73 -0
  141. package/dist/lifecycle/worker-output-contract.js.map +1 -0
  142. package/dist/providers/assemble-run-result.d.ts +17 -0
  143. package/dist/providers/assemble-run-result.d.ts.map +1 -0
  144. package/dist/providers/assemble-run-result.js +76 -0
  145. package/dist/providers/assemble-run-result.js.map +1 -0
  146. package/dist/providers/brief-preamble.d.ts +4 -0
  147. package/dist/providers/brief-preamble.d.ts.map +1 -0
  148. package/dist/providers/brief-preamble.js +39 -0
  149. package/dist/providers/brief-preamble.js.map +1 -0
  150. package/dist/providers/claude-session.d.ts +23 -0
  151. package/dist/providers/claude-session.d.ts.map +1 -0
  152. package/dist/providers/claude-session.js +185 -0
  153. package/dist/providers/claude-session.js.map +1 -0
  154. package/dist/providers/claude.d.ts +4 -0
  155. package/dist/providers/claude.d.ts.map +1 -0
  156. package/dist/providers/claude.js +35 -0
  157. package/dist/providers/claude.js.map +1 -0
  158. package/dist/providers/codex-cli-event.d.ts +44 -0
  159. package/dist/providers/codex-cli-event.d.ts.map +1 -0
  160. package/dist/providers/codex-cli-event.js +43 -0
  161. package/dist/providers/codex-cli-event.js.map +1 -0
  162. package/dist/providers/codex-cli-launch.d.ts +26 -0
  163. package/dist/providers/codex-cli-launch.d.ts.map +1 -0
  164. package/dist/providers/codex-cli-launch.js +47 -0
  165. package/dist/providers/codex-cli-launch.js.map +1 -0
  166. package/dist/providers/codex-cli-session.d.ts +55 -0
  167. package/dist/providers/codex-cli-session.d.ts.map +1 -0
  168. package/dist/providers/codex-cli-session.js +417 -0
  169. package/dist/providers/codex-cli-session.js.map +1 -0
  170. package/dist/providers/codex.d.ts +4 -0
  171. package/dist/providers/codex.d.ts.map +1 -0
  172. package/dist/providers/codex.js +28 -0
  173. package/dist/providers/codex.js.map +1 -0
  174. package/dist/providers/index.d.ts +0 -12
  175. package/dist/providers/index.d.ts.map +1 -1
  176. package/dist/providers/index.js +1 -13
  177. package/dist/providers/index.js.map +1 -1
  178. package/dist/providers/normalize-claude.d.ts +10 -0
  179. package/dist/providers/normalize-claude.d.ts.map +1 -0
  180. package/dist/providers/normalize-claude.js +89 -0
  181. package/dist/providers/normalize-claude.js.map +1 -0
  182. package/dist/providers/provider-factory.d.ts +1 -9
  183. package/dist/providers/provider-factory.d.ts.map +1 -1
  184. package/dist/providers/provider-factory.js +35 -167
  185. package/dist/providers/provider-factory.js.map +1 -1
  186. package/dist/providers/runner-adapter.d.ts +5 -16
  187. package/dist/providers/runner-adapter.d.ts.map +1 -1
  188. package/dist/providers/runner-adapter.js +6 -0
  189. package/dist/providers/runner-adapter.js.map +1 -1
  190. package/dist/providers/runner-types.d.ts +20 -2
  191. package/dist/providers/runner-types.d.ts.map +1 -1
  192. package/dist/reporting/report-parser-slots/research-report.d.ts +21 -17
  193. package/dist/reporting/report-parser-slots/research-report.d.ts.map +1 -1
  194. package/dist/reporting/report-parser-slots/research-report.js +28 -67
  195. package/dist/reporting/report-parser-slots/research-report.js.map +1 -1
  196. package/dist/review/annotator-engine.d.ts +2 -2
  197. package/dist/review/annotator-engine.d.ts.map +1 -1
  198. package/dist/review/annotator-engine.js +16 -20
  199. package/dist/review/annotator-engine.js.map +1 -1
  200. package/dist/review/annotator-prompt-builder.d.ts +1 -1
  201. package/dist/review/annotator-prompt-builder.d.ts.map +1 -1
  202. package/dist/review/default-engines.d.ts.map +1 -1
  203. package/dist/review/default-engines.js +2 -4
  204. package/dist/review/default-engines.js.map +1 -1
  205. package/dist/review/review-types.d.ts +0 -1
  206. package/dist/review/review-types.d.ts.map +1 -1
  207. package/dist/review/reviewer-engine.d.ts +5 -40
  208. package/dist/review/reviewer-engine.d.ts.map +1 -1
  209. package/dist/review/reviewer-engine.js +19 -49
  210. package/dist/review/reviewer-engine.js.map +1 -1
  211. package/dist/review/reviewer-output-parser.d.ts +1 -6
  212. package/dist/review/reviewer-output-parser.d.ts.map +1 -1
  213. package/dist/review/reviewer-output-parser.js +0 -26
  214. package/dist/review/reviewer-output-parser.js.map +1 -1
  215. package/dist/review/reviewer-prompt-builder.d.ts +1 -6
  216. package/dist/review/reviewer-prompt-builder.d.ts.map +1 -1
  217. package/dist/review/reviewer-prompt-builder.js +0 -6
  218. package/dist/review/reviewer-prompt-builder.js.map +1 -1
  219. package/dist/review/templates/quality-review.d.ts.map +1 -1
  220. package/dist/review/templates/quality-review.js +28 -0
  221. package/dist/review/templates/quality-review.js.map +1 -1
  222. package/dist/review/templates/rework.d.ts.map +1 -1
  223. package/dist/review/templates/rework.js +15 -9
  224. package/dist/review/templates/rework.js.map +1 -1
  225. package/dist/review/templates/shared.d.ts +9 -0
  226. package/dist/review/templates/shared.d.ts.map +1 -1
  227. package/dist/stores/context-block-project-cap.d.ts +1 -1
  228. package/dist/stores/context-block-project-cap.d.ts.map +1 -1
  229. package/dist/stores/context-block-project-cap.js +17 -5
  230. package/dist/stores/context-block-project-cap.js.map +1 -1
  231. package/dist/stores/file-backed-context-block-store.d.ts +7 -0
  232. package/dist/stores/file-backed-context-block-store.d.ts.map +1 -1
  233. package/dist/stores/file-backed-context-block-store.js +8 -0
  234. package/dist/stores/file-backed-context-block-store.js.map +1 -1
  235. package/dist/tool-surface/discover.d.ts +1 -1
  236. package/dist/tool-surface/discover.d.ts.map +1 -1
  237. package/dist/tool-surface/discover.js +0 -1
  238. package/dist/tool-surface/discover.js.map +1 -1
  239. package/dist/tool-surface/openapi-generator.d.ts.map +1 -1
  240. package/dist/tool-surface/openapi-generator.js +0 -2
  241. package/dist/tool-surface/openapi-generator.js.map +1 -1
  242. package/dist/tool-surface/register-all-tools.d.ts.map +1 -1
  243. package/dist/tool-surface/register-all-tools.js +1 -3
  244. package/dist/tool-surface/register-all-tools.js.map +1 -1
  245. package/dist/tools/audit/schema.d.ts +4 -4
  246. package/dist/tools/audit/schema.d.ts.map +1 -1
  247. package/dist/tools/audit/schema.js +4 -4
  248. package/dist/tools/audit/schema.js.map +1 -1
  249. package/dist/tools/audit/skill-audit-criteria.d.ts +9 -0
  250. package/dist/tools/audit/skill-audit-criteria.d.ts.map +1 -0
  251. package/dist/tools/audit/skill-audit-criteria.js +51 -0
  252. package/dist/tools/audit/skill-audit-criteria.js.map +1 -0
  253. package/dist/tools/audit/spec-audit-criteria.d.ts +9 -0
  254. package/dist/tools/audit/spec-audit-criteria.d.ts.map +1 -0
  255. package/dist/tools/audit/spec-audit-criteria.js +52 -0
  256. package/dist/tools/audit/spec-audit-criteria.js.map +1 -0
  257. package/dist/tools/audit/subtypes.d.ts +4 -0
  258. package/dist/tools/audit/subtypes.d.ts.map +1 -0
  259. package/dist/tools/audit/subtypes.js +67 -0
  260. package/dist/tools/audit/subtypes.js.map +1 -0
  261. package/dist/tools/audit/tool-config.d.ts +4 -4
  262. package/dist/tools/audit/tool-config.d.ts.map +1 -1
  263. package/dist/tools/audit/tool-config.js +32 -30
  264. package/dist/tools/audit/tool-config.js.map +1 -1
  265. package/dist/tools/debug/schema.d.ts +3 -0
  266. package/dist/tools/debug/schema.d.ts.map +1 -1
  267. package/dist/tools/debug/schema.js +1 -0
  268. package/dist/tools/debug/schema.js.map +1 -1
  269. package/dist/tools/debug/subtypes.d.ts +4 -0
  270. package/dist/tools/debug/subtypes.d.ts.map +1 -0
  271. package/dist/tools/debug/subtypes.js +25 -0
  272. package/dist/tools/debug/subtypes.js.map +1 -0
  273. package/dist/tools/debug/tool-config.js +1 -1
  274. package/dist/tools/debug/tool-config.js.map +1 -1
  275. package/dist/tools/delegate/tool-config.d.ts.map +1 -1
  276. package/dist/tools/delegate/tool-config.js +0 -1
  277. package/dist/tools/delegate/tool-config.js.map +1 -1
  278. package/dist/tools/execute-plan/tool-config.d.ts.map +1 -1
  279. package/dist/tools/execute-plan/tool-config.js +5 -2
  280. package/dist/tools/execute-plan/tool-config.js.map +1 -1
  281. package/dist/tools/index.d.ts +0 -1
  282. package/dist/tools/index.d.ts.map +1 -1
  283. package/dist/tools/index.js +0 -1
  284. package/dist/tools/index.js.map +1 -1
  285. package/dist/tools/investigate/schema.d.ts +3 -0
  286. package/dist/tools/investigate/schema.d.ts.map +1 -1
  287. package/dist/tools/investigate/schema.js +1 -0
  288. package/dist/tools/investigate/schema.js.map +1 -1
  289. package/dist/tools/investigate/subtypes.d.ts +4 -0
  290. package/dist/tools/investigate/subtypes.d.ts.map +1 -0
  291. package/dist/tools/investigate/subtypes.js +25 -0
  292. package/dist/tools/investigate/subtypes.js.map +1 -0
  293. package/dist/tools/investigate/tool-config.js +1 -1
  294. package/dist/tools/investigate/tool-config.js.map +1 -1
  295. package/dist/tools/research/implementer-criteria.d.ts +12 -5
  296. package/dist/tools/research/implementer-criteria.d.ts.map +1 -1
  297. package/dist/tools/research/implementer-criteria.js +40 -9
  298. package/dist/tools/research/implementer-criteria.js.map +1 -1
  299. package/dist/tools/research/schema.d.ts +3 -0
  300. package/dist/tools/research/schema.d.ts.map +1 -1
  301. package/dist/tools/research/schema.js +2 -1
  302. package/dist/tools/research/schema.js.map +1 -1
  303. package/dist/tools/research/subtypes.d.ts +4 -0
  304. package/dist/tools/research/subtypes.d.ts.map +1 -0
  305. package/dist/tools/research/subtypes.js +24 -0
  306. package/dist/tools/research/subtypes.js.map +1 -0
  307. package/dist/tools/research/tool-config.js +2 -2
  308. package/dist/tools/research/tool-config.js.map +1 -1
  309. package/dist/tools/review/schema.d.ts +3 -0
  310. package/dist/tools/review/schema.d.ts.map +1 -1
  311. package/dist/tools/review/schema.js +1 -0
  312. package/dist/tools/review/schema.js.map +1 -1
  313. package/dist/tools/review/subtypes.d.ts +4 -0
  314. package/dist/tools/review/subtypes.d.ts.map +1 -0
  315. package/dist/tools/review/subtypes.js +26 -0
  316. package/dist/tools/review/subtypes.js.map +1 -0
  317. package/dist/tools/review/tool-config.js +1 -1
  318. package/dist/tools/review/tool-config.js.map +1 -1
  319. package/dist/types/config.d.ts +17 -28
  320. package/dist/types/config.d.ts.map +1 -1
  321. package/dist/types/enums.d.ts +3 -7
  322. package/dist/types/enums.d.ts.map +1 -1
  323. package/dist/types/enums.js +4 -4
  324. package/dist/types/enums.js.map +1 -1
  325. package/dist/types/run-result.d.ts +56 -21
  326. package/dist/types/run-result.d.ts.map +1 -1
  327. package/dist/types/stage-stats.d.ts +1 -1
  328. package/dist/types/stage-stats.d.ts.map +1 -1
  329. package/dist/types/task-spec.d.ts +17 -15
  330. package/dist/types/task-spec.d.ts.map +1 -1
  331. package/dist/types.d.ts +1 -1
  332. package/dist/types.d.ts.map +1 -1
  333. package/package.json +9 -3
  334. package/dist/identity/main-model-resolver.d.ts +0 -14
  335. package/dist/identity/main-model-resolver.d.ts.map +0 -1
  336. package/dist/identity/main-model-resolver.js +0 -100
  337. package/dist/identity/main-model-resolver.js.map +0 -1
  338. package/dist/lifecycle/handlers/annotate-completion-handler.d.ts +0 -9
  339. package/dist/lifecycle/handlers/annotate-completion-handler.d.ts.map +0 -1
  340. package/dist/lifecycle/handlers/annotate-completion-handler.js +0 -200
  341. package/dist/lifecycle/handlers/annotate-completion-handler.js.map +0 -1
  342. package/dist/lifecycle/handlers/annotate-criteria-handler.d.ts +0 -3
  343. package/dist/lifecycle/handlers/annotate-criteria-handler.d.ts.map +0 -1
  344. package/dist/lifecycle/handlers/annotate-criteria-handler.js +0 -79
  345. package/dist/lifecycle/handlers/annotate-criteria-handler.js.map +0 -1
  346. package/dist/lifecycle/handlers/execution-context-builder.d.ts +0 -5
  347. package/dist/lifecycle/handlers/execution-context-builder.d.ts.map +0 -1
  348. package/dist/lifecycle/handlers/execution-context-builder.js +0 -17
  349. package/dist/lifecycle/handlers/execution-context-builder.js.map +0 -1
  350. package/dist/lifecycle/parallel-criteria-dispatcher.d.ts +0 -62
  351. package/dist/lifecycle/parallel-criteria-dispatcher.d.ts.map +0 -1
  352. package/dist/lifecycle/parallel-criteria-dispatcher.js +0 -328
  353. package/dist/lifecycle/parallel-criteria-dispatcher.js.map +0 -1
  354. package/dist/providers/anthropic-messages-adapter.d.ts +0 -26
  355. package/dist/providers/anthropic-messages-adapter.d.ts.map +0 -1
  356. package/dist/providers/anthropic-messages-adapter.js +0 -127
  357. package/dist/providers/anthropic-messages-adapter.js.map +0 -1
  358. package/dist/providers/base/research-tools.d.ts +0 -47
  359. package/dist/providers/base/research-tools.d.ts.map +0 -1
  360. package/dist/providers/base/research-tools.js +0 -67
  361. package/dist/providers/base/research-tools.js.map +0 -1
  362. package/dist/providers/base/result-builders.d.ts +0 -82
  363. package/dist/providers/base/result-builders.d.ts.map +0 -1
  364. package/dist/providers/base/result-builders.js +0 -112
  365. package/dist/providers/base/result-builders.js.map +0 -1
  366. package/dist/providers/base/time-check.d.ts +0 -9
  367. package/dist/providers/base/time-check.d.ts.map +0 -1
  368. package/dist/providers/base/time-check.js +0 -18
  369. package/dist/providers/base/time-check.js.map +0 -1
  370. package/dist/providers/base/types.d.ts +0 -53
  371. package/dist/providers/base/types.d.ts.map +0 -1
  372. package/dist/providers/base/types.js +0 -2
  373. package/dist/providers/base/types.js.map +0 -1
  374. package/dist/providers/base/usage-accumulator.d.ts +0 -9
  375. package/dist/providers/base/usage-accumulator.d.ts.map +0 -1
  376. package/dist/providers/base/usage-accumulator.js +0 -20
  377. package/dist/providers/base/usage-accumulator.js.map +0 -1
  378. package/dist/providers/call-cache.d.ts +0 -16
  379. package/dist/providers/call-cache.d.ts.map +0 -1
  380. package/dist/providers/call-cache.js +0 -28
  381. package/dist/providers/call-cache.js.map +0 -1
  382. package/dist/providers/file-tracker.d.ts +0 -80
  383. package/dist/providers/file-tracker.d.ts.map +0 -1
  384. package/dist/providers/file-tracker.js +0 -125
  385. package/dist/providers/file-tracker.js.map +0 -1
  386. package/dist/providers/injection-type.d.ts +0 -22
  387. package/dist/providers/injection-type.d.ts.map +0 -1
  388. package/dist/providers/injection-type.js +0 -34
  389. package/dist/providers/injection-type.js.map +0 -1
  390. package/dist/providers/make-runner-shell.d.ts +0 -4
  391. package/dist/providers/make-runner-shell.d.ts.map +0 -1
  392. package/dist/providers/make-runner-shell.js +0 -70
  393. package/dist/providers/make-runner-shell.js.map +0 -1
  394. package/dist/providers/openai-chat-adapter.d.ts +0 -15
  395. package/dist/providers/openai-chat-adapter.d.ts.map +0 -1
  396. package/dist/providers/openai-chat-adapter.js +0 -86
  397. package/dist/providers/openai-chat-adapter.js.map +0 -1
  398. package/dist/providers/openai-responses-adapter.d.ts +0 -15
  399. package/dist/providers/openai-responses-adapter.d.ts.map +0 -1
  400. package/dist/providers/openai-responses-adapter.js +0 -137
  401. package/dist/providers/openai-responses-adapter.js.map +0 -1
  402. package/dist/providers/openai-usage-interceptor.d.ts +0 -25
  403. package/dist/providers/openai-usage-interceptor.d.ts.map +0 -1
  404. package/dist/providers/openai-usage-interceptor.js +0 -121
  405. package/dist/providers/openai-usage-interceptor.js.map +0 -1
  406. package/dist/providers/prevention.d.ts +0 -44
  407. package/dist/providers/prevention.d.ts.map +0 -1
  408. package/dist/providers/prevention.js +0 -108
  409. package/dist/providers/prevention.js.map +0 -1
  410. package/dist/providers/runner-shell-types.d.ts +0 -91
  411. package/dist/providers/runner-shell-types.d.ts.map +0 -1
  412. package/dist/providers/runner-shell-types.js +0 -2
  413. package/dist/providers/runner-shell-types.js.map +0 -1
  414. package/dist/providers/runner-shell.d.ts +0 -67
  415. package/dist/providers/runner-shell.d.ts.map +0 -1
  416. package/dist/providers/runner-shell.js +0 -518
  417. package/dist/providers/runner-shell.js.map +0 -1
  418. package/dist/providers/scratchpad-salvager.d.ts +0 -19
  419. package/dist/providers/scratchpad-salvager.d.ts.map +0 -1
  420. package/dist/providers/scratchpad-salvager.js +0 -44
  421. package/dist/providers/scratchpad-salvager.js.map +0 -1
  422. package/dist/providers/supervision.d.ts +0 -108
  423. package/dist/providers/supervision.d.ts.map +0 -1
  424. package/dist/providers/supervision.js +0 -272
  425. package/dist/providers/supervision.js.map +0 -1
  426. package/dist/providers/text-scratchpad.d.ts +0 -28
  427. package/dist/providers/text-scratchpad.d.ts.map +0 -1
  428. package/dist/providers/text-scratchpad.js +0 -49
  429. package/dist/providers/text-scratchpad.js.map +0 -1
  430. package/dist/providers/tool-definitions.d.ts +0 -6
  431. package/dist/providers/tool-definitions.d.ts.map +0 -1
  432. package/dist/providers/tool-definitions.js +0 -236
  433. package/dist/providers/tool-definitions.js.map +0 -1
  434. package/dist/providers/tool-implementations.d.ts +0 -38
  435. package/dist/providers/tool-implementations.d.ts.map +0 -1
  436. package/dist/providers/tool-implementations.js +0 -254
  437. package/dist/providers/tool-implementations.js.map +0 -1
  438. package/dist/providers/tool-tracker.d.ts +0 -14
  439. package/dist/providers/tool-tracker.d.ts.map +0 -1
  440. package/dist/providers/tool-tracker.js +0 -13
  441. package/dist/providers/tool-tracker.js.map +0 -1
  442. package/dist/reporting/headline-templates/verify.d.ts +0 -3
  443. package/dist/reporting/headline-templates/verify.d.ts.map +0 -1
  444. package/dist/reporting/headline-templates/verify.js +0 -29
  445. package/dist/reporting/headline-templates/verify.js.map +0 -1
  446. package/dist/reporting/report-parser-slots/verify-report.d.ts +0 -27
  447. package/dist/reporting/report-parser-slots/verify-report.d.ts.map +0 -1
  448. package/dist/reporting/report-parser-slots/verify-report.js +0 -51
  449. package/dist/reporting/report-parser-slots/verify-report.js.map +0 -1
  450. package/dist/review/templates/annotator-verify.d.ts +0 -3
  451. package/dist/review/templates/annotator-verify.d.ts.map +0 -1
  452. package/dist/review/templates/annotator-verify.js +0 -21
  453. package/dist/review/templates/annotator-verify.js.map +0 -1
  454. package/dist/review/templates/quality-review-verify.d.ts +0 -3
  455. package/dist/review/templates/quality-review-verify.d.ts.map +0 -1
  456. package/dist/review/templates/quality-review-verify.js +0 -10
  457. package/dist/review/templates/quality-review-verify.js.map +0 -1
  458. package/dist/tools/verify/implementer-criteria.d.ts +0 -61
  459. package/dist/tools/verify/implementer-criteria.d.ts.map +0 -1
  460. package/dist/tools/verify/implementer-criteria.js +0 -125
  461. package/dist/tools/verify/implementer-criteria.js.map +0 -1
  462. package/dist/tools/verify/schema.d.ts +0 -56
  463. package/dist/tools/verify/schema.d.ts.map +0 -1
  464. package/dist/tools/verify/schema.js +0 -16
  465. package/dist/tools/verify/schema.js.map +0 -1
  466. package/dist/tools/verify/tool-config.d.ts +0 -14
  467. package/dist/tools/verify/tool-config.d.ts.map +0 -1
  468. package/dist/tools/verify/tool-config.js +0 -146
  469. package/dist/tools/verify/tool-config.js.map +0 -1
@@ -1,22 +0,0 @@
1
- import type { DegenerateKind } from './supervision.js';
2
- /**
3
- * Map a supervision `validation.kind` to the `injectionType` label used in
4
- * the `InternalRunnerEvent` emitted when the runner injects a supervision
5
- * re-prompt.
6
- *
7
- * `fragment` and `no_terminator` collapse onto `supervise_fragment` because
8
- * they share a re-prompt style (we quote the tail back at the model) and
9
- * belong to the same observer bucket — distinguishing them on the event
10
- * stream would just leak an implementation detail of `validateCompletion`.
11
- *
12
- * `insufficient_coverage` gets its own distinct type because the re-prompt
13
- * is structurally different (it lists specific missing items rather than
14
- * quoting the output tail), so observers benefit from being able to
15
- * distinguish it without peeking at the re-prompt content.
16
- *
17
- * Shared by every runner (openai / claude / codex) per the "3+ concrete use
18
- * cases" rule — inlining it three times was the prior state. The helper is
19
- * deliberately free of any runner- or SDK-specific knowledge.
20
- */
21
- export declare function injectionTypeFor(kind: DegenerateKind | undefined): 'supervise_empty' | 'supervise_thinking' | 'supervise_fragment' | 'supervise_insufficient_coverage';
22
- //# sourceMappingURL=injection-type.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"injection-type.d.ts","sourceRoot":"","sources":["../../src/providers/injection-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,cAAc,GAAG,SAAS,GAE9B,iBAAiB,GACjB,oBAAoB,GACpB,oBAAoB,GACpB,iCAAiC,CAcpC"}
@@ -1,34 +0,0 @@
1
- /**
2
- * Map a supervision `validation.kind` to the `injectionType` label used in
3
- * the `InternalRunnerEvent` emitted when the runner injects a supervision
4
- * re-prompt.
5
- *
6
- * `fragment` and `no_terminator` collapse onto `supervise_fragment` because
7
- * they share a re-prompt style (we quote the tail back at the model) and
8
- * belong to the same observer bucket — distinguishing them on the event
9
- * stream would just leak an implementation detail of `validateCompletion`.
10
- *
11
- * `insufficient_coverage` gets its own distinct type because the re-prompt
12
- * is structurally different (it lists specific missing items rather than
13
- * quoting the output tail), so observers benefit from being able to
14
- * distinguish it without peeking at the re-prompt content.
15
- *
16
- * Shared by every runner (openai / claude / codex) per the "3+ concrete use
17
- * cases" rule — inlining it three times was the prior state. The helper is
18
- * deliberately free of any runner- or SDK-specific knowledge.
19
- */
20
- export function injectionTypeFor(kind) {
21
- switch (kind) {
22
- case 'empty':
23
- return 'supervise_empty';
24
- case 'thinking_only':
25
- return 'supervise_thinking';
26
- case 'insufficient_coverage':
27
- return 'supervise_insufficient_coverage';
28
- case 'fragment':
29
- case 'no_terminator':
30
- default:
31
- return 'supervise_fragment';
32
- }
33
- }
34
- //# sourceMappingURL=injection-type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"injection-type.js","sourceRoot":"","sources":["../../src/providers/injection-type.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAgC;IAOhC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO,iBAAiB,CAAC;QAC3B,KAAK,eAAe;YAClB,OAAO,oBAAoB,CAAC;QAC9B,KAAK,uBAAuB;YAC1B,OAAO,iCAAiC,CAAC;QAC3C,KAAK,UAAU,CAAC;QAChB,KAAK,eAAe,CAAC;QACrB;YACE,OAAO,oBAAoB,CAAC;IAChC,CAAC;AACH,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { Provider } from '../types.js';
2
- import { RunnerShell } from './runner-shell.js';
3
- export declare function makeRunnerShell(provider: Provider): RunnerShell;
4
- //# sourceMappingURL=make-runner-shell.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"make-runner-shell.d.ts","sourceRoot":"","sources":["../../src/providers/make-runner-shell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,CA0E/D"}
@@ -1,70 +0,0 @@
1
- import { RunnerShell } from './runner-shell.js';
2
- import { buildAdapter } from './provider-factory.js';
3
- export function makeRunnerShell(provider) {
4
- // Test/mock providers expose `__mockAdapter` so the engine path can run
5
- // without making real HTTP calls. Production providers carry a real config
6
- // and use `buildAdapter` to produce a real runner adapter.
7
- const cfgModel = provider.config?.model;
8
- const maybeMock = provider.__mockAdapter;
9
- if (maybeMock)
10
- return new RunnerShell(maybeMock, cfgModel);
11
- // If the provider looks like a test mock (named 'mock' OR config.model === 'mock'),
12
- // synthesize a bridge adapter from `provider.run(prompt)` so the engine path
13
- // works in tests without each test wiring `__mockAdapter` explicitly.
14
- const cfg = provider.config;
15
- const isMock = provider.name === 'mock' || cfgModel === 'mock' || cfgModel === 'mock-model';
16
- if (isMock && typeof provider.run === 'function') {
17
- const adapter = {
18
- providerType: 'mock',
19
- async turn(input) {
20
- const prompt = `${input.systemPrompt}\n\n${input.userMessage}`;
21
- const result = await provider.run(prompt);
22
- return {
23
- assistantText: result.output ?? '',
24
- toolCalls: [],
25
- finishReason: 'stop',
26
- usage: {
27
- inputTokens: result.usage?.inputTokens ?? 0,
28
- outputTokens: result.usage?.outputTokens ?? 0,
29
- cachedReadTokens: result.usage?.cachedReadTokens ?? 0,
30
- cachedNonReadTokens: result.usage?.cachedNonReadTokens ?? 0,
31
- },
32
- };
33
- },
34
- };
35
- return new RunnerShell(adapter, cfgModel);
36
- }
37
- let adapter;
38
- try {
39
- adapter = buildAdapter(provider.config);
40
- }
41
- catch {
42
- adapter = undefined;
43
- }
44
- // Fallback bridge for any provider whose config doesn't yield a real adapter
45
- // (typical in tests). Lets every test that has a working `provider.run(prompt)`
46
- // exercise the engine path without per-test wiring.
47
- if (!adapter && typeof provider.run === 'function') {
48
- const bridgeAdapter = {
49
- providerType: 'mock',
50
- async turn(input) {
51
- const prompt = `${input.systemPrompt}\n\n${input.userMessage}`;
52
- const result = await provider.run(prompt);
53
- return {
54
- assistantText: result.output ?? '',
55
- toolCalls: [],
56
- finishReason: 'stop',
57
- usage: {
58
- inputTokens: result.usage?.inputTokens ?? 0,
59
- outputTokens: result.usage?.outputTokens ?? 0,
60
- cachedReadTokens: result.usage?.cachedReadTokens ?? 0,
61
- cachedNonReadTokens: result.usage?.cachedNonReadTokens ?? 0,
62
- },
63
- };
64
- },
65
- };
66
- return new RunnerShell(bridgeAdapter, cfgModel);
67
- }
68
- return new RunnerShell(adapter, cfgModel);
69
- }
70
- //# sourceMappingURL=make-runner-shell.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"make-runner-shell.js","sourceRoot":"","sources":["../../src/providers/make-runner-shell.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import type { RunnerAdapter, AdapterTurnInput, AdapterTurnResult } from './runner-adapter.js';
2
- export declare class OpenAIChatAdapter implements RunnerAdapter {
3
- readonly providerType: 'openai' | 'openai-compatible';
4
- private client;
5
- private model;
6
- constructor(opts: {
7
- apiKey: string;
8
- baseURL?: string;
9
- model: string;
10
- providerType?: 'openai' | 'openai-compatible';
11
- });
12
- turn(input: AdapterTurnInput): Promise<AdapterTurnResult>;
13
- private priorToMessages;
14
- }
15
- //# sourceMappingURL=openai-chat-adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai-chat-adapter.d.ts","sourceRoot":"","sources":["../../src/providers/openai-chat-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9F,qBAAa,iBAAkB,YAAW,aAAa;IACrD,QAAQ,CAAC,YAAY,EAAE,QAAQ,GAAG,mBAAmB,CAAC;IACtD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;gBAEV,IAAI,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,QAAQ,GAAG,mBAAmB,CAAC;KAC/C;IAMK,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA4D/D,OAAO,CAAC,eAAe;CAkBxB"}
@@ -1,86 +0,0 @@
1
- import OpenAI from 'openai';
2
- export class OpenAIChatAdapter {
3
- providerType;
4
- client;
5
- model;
6
- constructor(opts) {
7
- this.client = new OpenAI({ apiKey: opts.apiKey, baseURL: opts.baseURL });
8
- this.providerType = opts.providerType ?? 'openai';
9
- this.model = opts.model;
10
- }
11
- async turn(input) {
12
- // No max_completion_tokens — let the model use its full output budget.
13
- // Wall-clock + cost ceilings are the only worker bounds.
14
- const response = await this.client.chat.completions.create({
15
- model: this.model,
16
- messages: [
17
- { role: 'system', content: input.systemPrompt },
18
- ...this.priorToMessages(input.priorTurns),
19
- { role: 'user', content: input.userMessage },
20
- ],
21
- tools: input.toolDefinitions.map(d => ({
22
- type: 'function',
23
- function: { name: d.name, description: d.description, parameters: d.schema },
24
- })),
25
- });
26
- const reasoning = response.usage?.completion_tokens_details?.reasoning_tokens ?? 0;
27
- const usage = {
28
- inputTokens: response.usage?.prompt_tokens ?? 0,
29
- outputTokens: (response.usage?.completion_tokens ?? 0) + reasoning,
30
- cachedReadTokens: response.usage?.prompt_tokens_details?.cached_tokens ?? 0,
31
- cachedNonReadTokens: 0,
32
- };
33
- const choice = response.choices[0];
34
- if (!choice) {
35
- return {
36
- assistantText: '',
37
- toolCalls: [],
38
- usage,
39
- finishReason: 'error',
40
- errorCode: 'empty_choices',
41
- };
42
- }
43
- // OpenAI v6: ChatCompletionMessageToolCall = FunctionToolCall | CustomToolCall.
44
- // We only send type:'function' tools, so every response call carries .function.
45
- const toolCalls = (choice.message.tool_calls ?? []).map(c => {
46
- const fn = c.function;
47
- let input;
48
- if (fn) {
49
- try {
50
- input = JSON.parse(fn.arguments);
51
- }
52
- catch (e) {
53
- input = { __mma_invalid_arguments: fn.arguments, __mma_parse_error: e.message };
54
- }
55
- }
56
- return { id: c.id, name: fn?.name ?? c.type, input };
57
- });
58
- return {
59
- assistantText: choice.message.content ?? '',
60
- toolCalls,
61
- usage,
62
- finishReason: toolCalls.length > 0
63
- ? 'tool_use'
64
- : (choice.finish_reason === 'stop' ? 'stop' : 'max_tokens'),
65
- };
66
- }
67
- priorToMessages(priors) {
68
- return priors.flatMap((t, turnIdx) => [
69
- {
70
- role: 'assistant',
71
- content: t.assistantText || null,
72
- tool_calls: t.toolCalls.map((c, callIdx) => ({
73
- id: c.id ?? `call_${turnIdx}_${callIdx}`,
74
- type: 'function',
75
- function: { name: c.name, arguments: JSON.stringify(c.input) },
76
- })),
77
- },
78
- ...t.toolCalls.map((c, callIdx) => ({
79
- role: 'tool',
80
- tool_call_id: c.id ?? `call_${turnIdx}_${callIdx}`,
81
- content: typeof c.result === 'string' ? c.result : JSON.stringify(c.result ?? null),
82
- })),
83
- ]);
84
- }
85
- }
86
- //# sourceMappingURL=openai-chat-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai-chat-adapter.js","sourceRoot":"","sources":["../../src/providers/openai-chat-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import type { RunnerAdapter, AdapterTurnInput, AdapterTurnResult } from './runner-adapter.js';
2
- export declare class OpenAIResponsesAdapter implements RunnerAdapter {
3
- readonly providerType: "codex";
4
- private client;
5
- private model;
6
- constructor(opts: {
7
- apiKey: string;
8
- baseURL?: string;
9
- model: string;
10
- defaultHeaders?: Record<string, string>;
11
- });
12
- turn(input: AdapterTurnInput): Promise<AdapterTurnResult>;
13
- private buildInputItems;
14
- }
15
- //# sourceMappingURL=openai-responses-adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai-responses-adapter.d.ts","sourceRoot":"","sources":["../../src/providers/openai-responses-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9F,qBAAa,sBAAuB,YAAW,aAAa;IAC1D,QAAQ,CAAC,YAAY,EAAG,OAAO,CAAU;IACzC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;gBAEV,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IASxG,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAgG/D,OAAO,CAAC,eAAe;CA+BxB"}
@@ -1,137 +0,0 @@
1
- import OpenAI from 'openai';
2
- export class OpenAIResponsesAdapter {
3
- providerType = 'codex';
4
- client;
5
- model;
6
- constructor(opts) {
7
- this.client = new OpenAI({
8
- apiKey: opts.apiKey,
9
- baseURL: opts.baseURL,
10
- ...(opts.defaultHeaders && { defaultHeaders: opts.defaultHeaders }),
11
- });
12
- this.model = opts.model;
13
- }
14
- async turn(input) {
15
- const inputItems = this.buildInputItems(input);
16
- // Stream the response. Two reasons:
17
- // 1. The chatgpt.com/backend-api/codex endpoint (used when codex
18
- // OAuth is the auth path) only accepts streaming + store:false;
19
- // a non-streaming responses.create returns 400-no-body there.
20
- // 2. api.openai.com supports streaming the same shape, so streaming
21
- // is the universal path.
22
- // store:false tells the server not to persist response state — required
23
- // by chatgpt backend, harmless for api.openai.com.
24
- const stream = await this.client.responses.create({
25
- model: this.model,
26
- instructions: input.systemPrompt,
27
- input: inputItems,
28
- stream: true,
29
- store: false,
30
- tools: input.toolDefinitions.length > 0
31
- ? input.toolDefinitions.map(d => ({
32
- type: 'function',
33
- name: d.name,
34
- description: d.description,
35
- parameters: d.schema,
36
- strict: false,
37
- }))
38
- : undefined,
39
- });
40
- let assistantText = '';
41
- const toolCalls = [];
42
- let inputTokens = 0;
43
- let outputTokens = 0;
44
- let cachedReadTokens = 0;
45
- let reasoningTokens = 0;
46
- let status;
47
- let sawCompleted = false;
48
- for await (const event of stream) {
49
- const et = event?.type;
50
- if (!et)
51
- continue;
52
- if (et === 'response.output_text.delta') {
53
- assistantText += event.delta ?? '';
54
- }
55
- else if (et === 'response.output_item.done') {
56
- const item = event.item;
57
- if (item?.type === 'function_call') {
58
- let inputObj;
59
- try {
60
- inputObj = JSON.parse(item.arguments ?? '{}');
61
- }
62
- catch (e) {
63
- inputObj = {
64
- __mma_invalid_arguments: item.arguments,
65
- __mma_parse_error: e.message,
66
- };
67
- }
68
- toolCalls.push({ id: item.call_id, name: item.name, input: inputObj });
69
- }
70
- }
71
- else if (et === 'response.completed') {
72
- sawCompleted = true;
73
- const r = event.response;
74
- if (r?.usage) {
75
- const u = r.usage;
76
- inputTokens = u.input_tokens ?? 0;
77
- outputTokens = u.output_tokens ?? 0;
78
- reasoningTokens = u.output_tokens_details?.reasoning_tokens ?? u.reasoning_tokens ?? 0;
79
- cachedReadTokens = u.input_tokens_details?.cached_tokens ?? u.cached_input_tokens ?? 0;
80
- }
81
- if (r?.status)
82
- status = r.status;
83
- }
84
- }
85
- if (!sawCompleted) {
86
- throw new Error('Codex stream ended without a response.completed event');
87
- }
88
- const usage = {
89
- inputTokens,
90
- outputTokens: outputTokens + reasoningTokens,
91
- cachedReadTokens,
92
- cachedNonReadTokens: 0,
93
- };
94
- let finishReason;
95
- if (toolCalls.length > 0) {
96
- finishReason = 'tool_use';
97
- }
98
- else if (status === 'completed') {
99
- finishReason = 'stop';
100
- }
101
- else if (status === 'incomplete' || status === 'cancelled') {
102
- finishReason = 'max_tokens';
103
- }
104
- else {
105
- finishReason = 'error';
106
- }
107
- return { assistantText, toolCalls, usage, finishReason };
108
- }
109
- buildInputItems(input) {
110
- const items = [];
111
- for (const t of input.priorTurns) {
112
- // Assistant message with text content
113
- items.push({ role: 'assistant', content: t.assistantText });
114
- // Each tool call + its result as a function_call / function_call_output pair.
115
- // The Responses API requires both items so the model can see its tool history.
116
- for (let ci = 0; ci < t.toolCalls.length; ci++) {
117
- const c = t.toolCalls[ci];
118
- const callId = c.id ?? `call_${input.priorTurns.indexOf(t)}_${ci}`;
119
- items.push({
120
- type: 'function_call',
121
- call_id: callId,
122
- name: c.name,
123
- arguments: JSON.stringify(c.input),
124
- });
125
- items.push({
126
- type: 'function_call_output',
127
- call_id: callId,
128
- output: typeof c.result === 'string' ? c.result : JSON.stringify(c.result ?? null),
129
- });
130
- }
131
- }
132
- // Current user message
133
- items.push({ role: 'user', content: input.userMessage });
134
- return items;
135
- }
136
- }
137
- //# sourceMappingURL=openai-responses-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai-responses-adapter.js","sourceRoot":"","sources":["../../src/providers/openai-responses-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- import type OpenAI from 'openai';
2
- export interface UsageSnapshot {
3
- promptTokens: number;
4
- completionTokens: number;
5
- cachedReadTokens: number;
6
- reasoningTokens: number;
7
- /** Number of completed HTTP responses observed (one per SDK turn). */
8
- responses: number;
9
- }
10
- export interface UsageAccumulator {
11
- /** Latest cumulative usage from the wrapped client. Returns a fresh snapshot. */
12
- snapshot(): UsageSnapshot;
13
- /** True if at least one response observed real (non-zero) usage. Used by
14
- * the runner to decide whether to trust SDK state.usage or fall back here. */
15
- hasObservedUsage(): boolean;
16
- }
17
- /** Wrap an OpenAI client so usage from every chat.completions.create response
18
- * is captured into the returned UsageAccumulator.
19
- *
20
- * Mutates `client.chat.completions.create` in place. The wrapped client is
21
- * otherwise unchanged — same return shapes, same error behavior. The SDK
22
- * sees the same response stream byte-for-byte (we tee, we don't transform).
23
- */
24
- export declare function wrapClientForUsageCapture(client: OpenAI): UsageAccumulator;
25
- //# sourceMappingURL=openai-usage-interceptor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai-usage-interceptor.d.ts","sourceRoot":"","sources":["../../src/providers/openai-usage-interceptor.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iFAAiF;IACjF,QAAQ,IAAI,aAAa,CAAC;IAC1B;mFAC+E;IAC/E,gBAAgB,IAAI,OAAO,CAAC;CAC7B;AAmBD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAoF1E"}
@@ -1,121 +0,0 @@
1
- // HTTP-level usage capture for openai-compatible providers, independent of
2
- // @openai/agents' internal aggregation.
3
- //
4
- // Why this exists: the @openai/agents SDK's stream consumer
5
- // (node_modules/@openai/agents-openai/dist/openaiChatCompletionsStreaming.js
6
- // line ~38) overwrites its local `usage` variable on every SSE chunk:
7
- //
8
- // usage = chunk.usage || undefined;
9
- //
10
- // For OpenAI proper this is benign — only the final `[DONE]`-adjacent chunk
11
- // carries usage, so the last write is the right one. For DeepSeek (and
12
- // likely other openai-compatible providers) with multi-turn tool-use, later
13
- // chunks can have `usage:undefined` AFTER an earlier chunk reported real
14
- // numbers, wiping the captured usage. The SDK then ends with
15
- // `state.usage.inputTokens=0`, costUSD=0, despite real tokens having
16
- // flowed. Telemetry first surfaced this on DeepSeek-as-reviewer calls —
17
- // every call logged 21+ turns and zero tokens, untraceable until the SDK
18
- // source was inspected.
19
- //
20
- // Fix: wrap the OpenAI client's `chat.completions.create` so we see the
21
- // raw HTTP response (or the raw SSE stream) BEFORE the SDK consumes it, and
22
- // accumulate usage into an out-of-band counter the runner can read at
23
- // result-time as a source-of-truth fallback. The wrapper does not modify
24
- // SDK-visible behavior — it observes only.
25
- function addUsage(acc, u) {
26
- return {
27
- promptTokens: acc.promptTokens + (u.prompt_tokens ?? 0),
28
- completionTokens: acc.completionTokens + (u.completion_tokens ?? 0),
29
- cachedReadTokens: acc.cachedReadTokens + (u.prompt_tokens_details?.cached_tokens ?? 0),
30
- reasoningTokens: acc.reasoningTokens + (u.completion_tokens_details?.reasoning_tokens ?? 0),
31
- responses: acc.responses + 1,
32
- };
33
- }
34
- /** Wrap an OpenAI client so usage from every chat.completions.create response
35
- * is captured into the returned UsageAccumulator.
36
- *
37
- * Mutates `client.chat.completions.create` in place. The wrapped client is
38
- * otherwise unchanged — same return shapes, same error behavior. The SDK
39
- * sees the same response stream byte-for-byte (we tee, we don't transform).
40
- */
41
- export function wrapClientForUsageCapture(client) {
42
- let acc = {
43
- promptTokens: 0,
44
- completionTokens: 0,
45
- cachedReadTokens: 0,
46
- reasoningTokens: 0,
47
- responses: 0,
48
- };
49
- let observedNonZero = false;
50
- const observe = (u) => {
51
- if (!u)
52
- return;
53
- const before = acc;
54
- acc = addUsage(acc, u);
55
- // hasObservedUsage flips true the first time a response carries real
56
- // input or output tokens. Counters can stay at 0 for empty responses
57
- // (auth failures, immediate refusals) — those don't count as evidence
58
- // that the provider IS reporting usage.
59
- if ((u.prompt_tokens ?? 0) > 0 || (u.completion_tokens ?? 0) > 0) {
60
- observedNonZero = true;
61
- }
62
- void before;
63
- };
64
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
65
- const completions = client.chat.completions;
66
- const originalCreate = completions.create.bind(completions);
67
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
68
- completions.create = async function wrappedCreate(...args) {
69
- const result = await originalCreate(...args);
70
- // Non-streaming branch: result is a ChatCompletion object with usage.
71
- // Detect via the presence of `choices` (eagerly resolved) and `usage`.
72
- if (result && typeof result === 'object' && Array.isArray(result.choices)) {
73
- observe(result.usage);
74
- return result;
75
- }
76
- // Streaming branch: result is an AsyncIterable of chunks. We wrap the
77
- // iterator so each yielded chunk's usage feeds the accumulator without
78
- // changing what the SDK sees.
79
- if (result && typeof result[Symbol.asyncIterator] === 'function') {
80
- const inner = result;
81
- // Build a thin wrapper that preserves the original async-iterable
82
- // identity (so the SDK can still .controller-abort if it does), but
83
- // observes usage on every chunk that has it. Note: we accumulate the
84
- // FIRST non-null usage we see from each request (chunks-with-usage are
85
- // typically only 1 per stream, sent on the [DONE] frame). If a
86
- // provider sends multiple usage frames, we add each one — that matches
87
- // the cumulative semantics.
88
- const wrapped = {
89
- async *[Symbol.asyncIterator]() {
90
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
91
- let lastUsage;
92
- for await (const chunk of inner) {
93
- if (chunk && chunk.usage) {
94
- lastUsage = chunk.usage;
95
- }
96
- yield chunk;
97
- }
98
- // Accumulate at end-of-stream so multiple intra-stream `usage`
99
- // chunks (DeepSeek behavior) don't double-count. The last seen
100
- // usage is the cumulative-for-this-request value the provider
101
- // wanted us to see.
102
- observe(lastUsage);
103
- },
104
- };
105
- // Some SDK call sites poke at `.controller` on the stream object for
106
- // abort handling. Forward it if present.
107
- const ctrl = result.controller;
108
- if (ctrl !== undefined)
109
- wrapped.controller = ctrl;
110
- return wrapped;
111
- }
112
- // Unknown shape (shouldn't happen for chat.completions.create) — pass
113
- // through unmodified.
114
- return result;
115
- };
116
- return {
117
- snapshot: () => ({ ...acc }),
118
- hasObservedUsage: () => observedNonZero,
119
- };
120
- }
121
- //# sourceMappingURL=openai-usage-interceptor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai-usage-interceptor.js","sourceRoot":"","sources":["../../src/providers/openai-usage-interceptor.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- /**
2
- * Sub-agent prevention layer.
3
- *
4
- * Provides the strong default system prompt, the budget hint preamble,
5
- * and the periodic re-grounding message that the runners inject to keep
6
- * the model focused. The goal is to make the first attempt succeed.
7
- *
8
- * All builders here MUST be deterministic: same input → byte-identical
9
- * output. No Date.now(), no Math.random(), no environment variable
10
- * leakage. Tests in tests/runners/prevention.test.ts assert this.
11
- *
12
- * See spec Part A.1 for the design rationale.
13
- */
14
- import type { FormatConstraints } from '../types.js';
15
- export declare function buildSystemPrompt(): string;
16
- export interface BuildBudgetHintOptions {
17
- timeoutMs: number;
18
- maxCostUSD?: number;
19
- }
20
- export declare function buildBudgetHint(opts: BuildBudgetHintOptions): string;
21
- export declare const RE_GROUNDING_INTERVAL_TURNS = 10;
22
- export interface BuildReGroundingMessageOptions {
23
- originalPromptExcerpt: string;
24
- elapsedMs: number;
25
- timeoutMs: number;
26
- toolCallsSoFar: number;
27
- filesReadSoFar: number;
28
- }
29
- export declare function buildReGroundingMessage(opts: BuildReGroundingMessageOptions): string;
30
- export interface BuildBudgetPressureNudgeOptions {
31
- inputTokens: number;
32
- softLimit: number;
33
- }
34
- /**
35
- * Nudge message the runner injects when the watchdog crosses its
36
- * `warning` threshold (see supervision.checkWatchdogThreshold). The text
37
- * is deliberately terse: the model is already close to the soft limit, so
38
- * we tell it to stop exploring and produce a final answer from whatever
39
- * it has gathered. Kept here so every runner (openai, claude, codex)
40
- * uses byte-identical wording.
41
- */
42
- export declare function buildBudgetPressureNudge(opts: BuildBudgetPressureNudgeOptions): string;
43
- export declare function buildFormatConstraintSuffix(constraints: FormatConstraints): string;
44
- //# sourceMappingURL=prevention.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prevention.d.ts","sourceRoot":"","sources":["../../src/providers/prevention.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,wBAAgB,iBAAiB,IAAI,MAAM,CA8C1C;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,sBAAsB,GAAG,MAAM,CAQpE;AAED,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,MAAM,WAAW,8BAA8B;IAC7C,qBAAqB,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,8BAA8B,GAAG,MAAM,CAWpF;AAED,MAAM,WAAW,+BAA+B;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,+BAA+B,GAAG,MAAM,CAMtF;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,iBAAiB,GAAG,MAAM,CAYlF"}