@zhixuan92/multi-model-agent-core 4.3.0 → 4.4.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 (455) hide show
  1. package/README.md +7 -8
  2. package/dist/bounded-execution/activity-tracker-types.d.ts +1 -1
  3. package/dist/bounded-execution/activity-tracker-types.d.ts.map +1 -1
  4. package/dist/bounded-execution/activity-tracker-types.js +4 -9
  5. package/dist/bounded-execution/activity-tracker-types.js.map +1 -1
  6. package/dist/bounded-execution/cost-compute.d.ts.map +1 -1
  7. package/dist/bounded-execution/cost-compute.js +10 -0
  8. package/dist/bounded-execution/cost-compute.js.map +1 -1
  9. package/dist/config/config-resolver.d.ts +6 -4
  10. package/dist/config/config-resolver.d.ts.map +1 -1
  11. package/dist/config/config-resolver.js +7 -6
  12. package/dist/config/config-resolver.js.map +1 -1
  13. package/dist/config/schema.d.ts +8 -76
  14. package/dist/config/schema.d.ts.map +1 -1
  15. package/dist/config/schema.js +11 -18
  16. package/dist/config/schema.js.map +1 -1
  17. package/dist/escalation/delegate-with-escalation.d.ts.map +1 -1
  18. package/dist/escalation/delegate-with-escalation.js +35 -38
  19. package/dist/escalation/delegate-with-escalation.js.map +1 -1
  20. package/dist/escalation/escalation-policy.d.ts +1 -1
  21. package/dist/escalation/escalation-policy.d.ts.map +1 -1
  22. package/dist/escalation/escalation-policy.js +0 -1
  23. package/dist/escalation/escalation-policy.js.map +1 -1
  24. package/dist/events/clamp.d.ts.map +1 -1
  25. package/dist/events/clamp.js +17 -6
  26. package/dist/events/clamp.js.map +1 -1
  27. package/dist/events/cloud-events.d.ts +2 -4
  28. package/dist/events/cloud-events.d.ts.map +1 -1
  29. package/dist/events/event-builder.d.ts +1 -1
  30. package/dist/events/event-builder.d.ts.map +1 -1
  31. package/dist/events/event-builder.js +28 -56
  32. package/dist/events/event-builder.js.map +1 -1
  33. package/dist/events/observability-events.d.ts +21 -110
  34. package/dist/events/observability-events.d.ts.map +1 -1
  35. package/dist/events/observability-events.js +6 -12
  36. package/dist/events/observability-events.js.map +1 -1
  37. package/dist/events/running-headline-sink.d.ts +2 -1
  38. package/dist/events/running-headline-sink.d.ts.map +1 -1
  39. package/dist/events/running-headline-sink.js.map +1 -1
  40. package/dist/events/telemetry-types.d.ts +45 -86
  41. package/dist/events/telemetry-types.d.ts.map +1 -1
  42. package/dist/events/telemetry-types.js +30 -55
  43. package/dist/events/telemetry-types.js.map +1 -1
  44. package/dist/index.d.ts +2 -5
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +1 -5
  47. package/dist/index.js.map +1 -1
  48. package/dist/intake/source-schema.js +1 -1
  49. package/dist/intake/source-schema.js.map +1 -1
  50. package/dist/intake/types.d.ts +1 -1
  51. package/dist/intake/types.d.ts.map +1 -1
  52. package/dist/intake/verify-command-validator.d.ts +6 -0
  53. package/dist/intake/verify-command-validator.d.ts.map +1 -0
  54. package/dist/intake/verify-command-validator.js +47 -0
  55. package/dist/intake/verify-command-validator.js.map +1 -0
  56. package/dist/lifecycle/findings-parser.d.ts +9 -0
  57. package/dist/lifecycle/findings-parser.d.ts.map +1 -0
  58. package/dist/lifecycle/findings-parser.js +47 -0
  59. package/dist/lifecycle/findings-parser.js.map +1 -0
  60. package/dist/lifecycle/handlers/annotator.d.ts +35 -0
  61. package/dist/lifecycle/handlers/annotator.d.ts.map +1 -0
  62. package/dist/lifecycle/handlers/annotator.js +38 -0
  63. package/dist/lifecycle/handlers/annotator.js.map +1 -0
  64. package/dist/lifecycle/handlers/baseline-handlers.d.ts.map +1 -1
  65. package/dist/lifecycle/handlers/baseline-handlers.js +34 -37
  66. package/dist/lifecycle/handlers/baseline-handlers.js.map +1 -1
  67. package/dist/lifecycle/handlers/files-written-cross-check.d.ts +6 -0
  68. package/dist/lifecycle/handlers/files-written-cross-check.d.ts.map +1 -1
  69. package/dist/lifecycle/handlers/files-written-cross-check.js +7 -1
  70. package/dist/lifecycle/handlers/files-written-cross-check.js.map +1 -1
  71. package/dist/lifecycle/handlers/git-commit-handler.d.ts +1 -16
  72. package/dist/lifecycle/handlers/git-commit-handler.d.ts.map +1 -1
  73. package/dist/lifecycle/handlers/git-commit-handler.js +149 -42
  74. package/dist/lifecycle/handlers/git-commit-handler.js.map +1 -1
  75. package/dist/lifecycle/handlers/read-route-implementer.d.ts +41 -0
  76. package/dist/lifecycle/handlers/read-route-implementer.d.ts.map +1 -0
  77. package/dist/lifecycle/handlers/read-route-implementer.js +84 -0
  78. package/dist/lifecycle/handlers/read-route-implementer.js.map +1 -0
  79. package/dist/lifecycle/handlers/review-handler.d.ts.map +1 -1
  80. package/dist/lifecycle/handlers/review-handler.js +98 -70
  81. package/dist/lifecycle/handlers/review-handler.js.map +1 -1
  82. package/dist/lifecycle/handlers/rework-handler.d.ts.map +1 -1
  83. package/dist/lifecycle/handlers/rework-handler.js +64 -25
  84. package/dist/lifecycle/handlers/rework-handler.js.map +1 -1
  85. package/dist/lifecycle/handlers/task-executor.d.ts +1 -3
  86. package/dist/lifecycle/handlers/task-executor.d.ts.map +1 -1
  87. package/dist/lifecycle/handlers/task-executor.js +88 -8
  88. package/dist/lifecycle/handlers/task-executor.js.map +1 -1
  89. package/dist/lifecycle/lifecycle-context.d.ts +13 -0
  90. package/dist/lifecycle/lifecycle-context.d.ts.map +1 -1
  91. package/dist/lifecycle/merge-stage-stats.d.ts +3 -4
  92. package/dist/lifecycle/merge-stage-stats.d.ts.map +1 -1
  93. package/dist/lifecycle/merge-stage-stats.js +2 -2
  94. package/dist/lifecycle/merge-stage-stats.js.map +1 -1
  95. package/dist/lifecycle/parallel-criteria-routes.d.ts +20 -6
  96. package/dist/lifecycle/parallel-criteria-routes.d.ts.map +1 -1
  97. package/dist/lifecycle/parallel-criteria-routes.js +36 -142
  98. package/dist/lifecycle/parallel-criteria-routes.js.map +1 -1
  99. package/dist/lifecycle/read-only-subtype-spec.d.ts +18 -0
  100. package/dist/lifecycle/read-only-subtype-spec.d.ts.map +1 -0
  101. package/dist/lifecycle/read-only-subtype-spec.js +2 -0
  102. package/dist/lifecycle/read-only-subtype-spec.js.map +1 -0
  103. package/dist/lifecycle/stage-labels.d.ts +22 -0
  104. package/dist/lifecycle/stage-labels.d.ts.map +1 -0
  105. package/dist/lifecycle/stage-labels.js +42 -0
  106. package/dist/lifecycle/stage-labels.js.map +1 -0
  107. package/dist/lifecycle/stage-plan-builder.d.ts.map +1 -1
  108. package/dist/lifecycle/stage-plan-builder.js +25 -54
  109. package/dist/lifecycle/stage-plan-builder.js.map +1 -1
  110. package/dist/lifecycle/stage-plan-types.d.ts +0 -23
  111. package/dist/lifecycle/stage-plan-types.d.ts.map +1 -1
  112. package/dist/lifecycle/stage-progression.js +10 -10
  113. package/dist/lifecycle/stage-progression.js.map +1 -1
  114. package/dist/lifecycle/stage-stats.d.ts +3 -3
  115. package/dist/lifecycle/stage-stats.d.ts.map +1 -1
  116. package/dist/lifecycle/stage-stats.js +6 -9
  117. package/dist/lifecycle/stage-stats.js.map +1 -1
  118. package/dist/lifecycle/task-executor.d.ts.map +1 -1
  119. package/dist/lifecycle/task-executor.js +20 -17
  120. package/dist/lifecycle/task-executor.js.map +1 -1
  121. package/dist/lifecycle/task-runner.d.ts.map +1 -1
  122. package/dist/lifecycle/task-runner.js +83 -72
  123. package/dist/lifecycle/task-runner.js.map +1 -1
  124. package/dist/lifecycle/tool-config-types.d.ts +1 -2
  125. package/dist/lifecycle/tool-config-types.d.ts.map +1 -1
  126. package/dist/lifecycle/warm-followup.d.ts +3 -0
  127. package/dist/lifecycle/warm-followup.d.ts.map +1 -0
  128. package/dist/lifecycle/warm-followup.js +16 -0
  129. package/dist/lifecycle/warm-followup.js.map +1 -0
  130. package/dist/lifecycle/worker-output-contract.d.ts +26 -0
  131. package/dist/lifecycle/worker-output-contract.d.ts.map +1 -0
  132. package/dist/lifecycle/worker-output-contract.js +73 -0
  133. package/dist/lifecycle/worker-output-contract.js.map +1 -0
  134. package/dist/providers/assemble-run-result.d.ts +17 -0
  135. package/dist/providers/assemble-run-result.d.ts.map +1 -0
  136. package/dist/providers/assemble-run-result.js +76 -0
  137. package/dist/providers/assemble-run-result.js.map +1 -0
  138. package/dist/providers/brief-preamble.d.ts +4 -0
  139. package/dist/providers/brief-preamble.d.ts.map +1 -0
  140. package/dist/providers/brief-preamble.js +39 -0
  141. package/dist/providers/brief-preamble.js.map +1 -0
  142. package/dist/providers/claude-session.d.ts +23 -0
  143. package/dist/providers/claude-session.d.ts.map +1 -0
  144. package/dist/providers/claude-session.js +185 -0
  145. package/dist/providers/claude-session.js.map +1 -0
  146. package/dist/providers/claude.d.ts +4 -0
  147. package/dist/providers/claude.d.ts.map +1 -0
  148. package/dist/providers/claude.js +35 -0
  149. package/dist/providers/claude.js.map +1 -0
  150. package/dist/providers/codex-cli-event.d.ts +44 -0
  151. package/dist/providers/codex-cli-event.d.ts.map +1 -0
  152. package/dist/providers/codex-cli-event.js +43 -0
  153. package/dist/providers/codex-cli-event.js.map +1 -0
  154. package/dist/providers/codex-cli-launch.d.ts +26 -0
  155. package/dist/providers/codex-cli-launch.d.ts.map +1 -0
  156. package/dist/providers/codex-cli-launch.js +47 -0
  157. package/dist/providers/codex-cli-launch.js.map +1 -0
  158. package/dist/providers/codex-cli-session.d.ts +55 -0
  159. package/dist/providers/codex-cli-session.d.ts.map +1 -0
  160. package/dist/providers/codex-cli-session.js +417 -0
  161. package/dist/providers/codex-cli-session.js.map +1 -0
  162. package/dist/providers/codex.d.ts +4 -0
  163. package/dist/providers/codex.d.ts.map +1 -0
  164. package/dist/providers/codex.js +28 -0
  165. package/dist/providers/codex.js.map +1 -0
  166. package/dist/providers/index.d.ts +0 -12
  167. package/dist/providers/index.d.ts.map +1 -1
  168. package/dist/providers/index.js +1 -13
  169. package/dist/providers/index.js.map +1 -1
  170. package/dist/providers/normalize-claude.d.ts +10 -0
  171. package/dist/providers/normalize-claude.d.ts.map +1 -0
  172. package/dist/providers/normalize-claude.js +89 -0
  173. package/dist/providers/normalize-claude.js.map +1 -0
  174. package/dist/providers/provider-factory.d.ts +1 -9
  175. package/dist/providers/provider-factory.d.ts.map +1 -1
  176. package/dist/providers/provider-factory.js +35 -167
  177. package/dist/providers/provider-factory.js.map +1 -1
  178. package/dist/providers/runner-adapter.d.ts +5 -16
  179. package/dist/providers/runner-adapter.d.ts.map +1 -1
  180. package/dist/providers/runner-adapter.js +6 -0
  181. package/dist/providers/runner-adapter.js.map +1 -1
  182. package/dist/providers/runner-types.d.ts +21 -3
  183. package/dist/providers/runner-types.d.ts.map +1 -1
  184. package/dist/reporting/report-parser-slots/research-report.d.ts +21 -17
  185. package/dist/reporting/report-parser-slots/research-report.d.ts.map +1 -1
  186. package/dist/reporting/report-parser-slots/research-report.js +28 -67
  187. package/dist/reporting/report-parser-slots/research-report.js.map +1 -1
  188. package/dist/review/annotator-engine.d.ts +2 -2
  189. package/dist/review/annotator-engine.d.ts.map +1 -1
  190. package/dist/review/annotator-engine.js +16 -20
  191. package/dist/review/annotator-engine.js.map +1 -1
  192. package/dist/review/annotator-prompt-builder.d.ts +1 -1
  193. package/dist/review/annotator-prompt-builder.d.ts.map +1 -1
  194. package/dist/review/default-engines.d.ts.map +1 -1
  195. package/dist/review/default-engines.js +2 -4
  196. package/dist/review/default-engines.js.map +1 -1
  197. package/dist/review/review-types.d.ts +0 -1
  198. package/dist/review/review-types.d.ts.map +1 -1
  199. package/dist/review/reviewer-engine.d.ts +5 -40
  200. package/dist/review/reviewer-engine.d.ts.map +1 -1
  201. package/dist/review/reviewer-engine.js +19 -49
  202. package/dist/review/reviewer-engine.js.map +1 -1
  203. package/dist/review/reviewer-output-parser.d.ts +1 -6
  204. package/dist/review/reviewer-output-parser.d.ts.map +1 -1
  205. package/dist/review/reviewer-output-parser.js +0 -26
  206. package/dist/review/reviewer-output-parser.js.map +1 -1
  207. package/dist/review/reviewer-prompt-builder.d.ts +1 -6
  208. package/dist/review/reviewer-prompt-builder.d.ts.map +1 -1
  209. package/dist/review/reviewer-prompt-builder.js +0 -6
  210. package/dist/review/reviewer-prompt-builder.js.map +1 -1
  211. package/dist/review/templates/quality-review.d.ts.map +1 -1
  212. package/dist/review/templates/quality-review.js +28 -0
  213. package/dist/review/templates/quality-review.js.map +1 -1
  214. package/dist/review/templates/rework.d.ts.map +1 -1
  215. package/dist/review/templates/rework.js +15 -9
  216. package/dist/review/templates/rework.js.map +1 -1
  217. package/dist/review/templates/shared.d.ts +9 -0
  218. package/dist/review/templates/shared.d.ts.map +1 -1
  219. package/dist/stores/context-block-project-cap.d.ts +1 -1
  220. package/dist/stores/context-block-project-cap.d.ts.map +1 -1
  221. package/dist/stores/context-block-project-cap.js +17 -5
  222. package/dist/stores/context-block-project-cap.js.map +1 -1
  223. package/dist/stores/file-backed-context-block-store.d.ts +7 -0
  224. package/dist/stores/file-backed-context-block-store.d.ts.map +1 -1
  225. package/dist/stores/file-backed-context-block-store.js +8 -0
  226. package/dist/stores/file-backed-context-block-store.js.map +1 -1
  227. package/dist/tool-surface/discover.d.ts +1 -1
  228. package/dist/tool-surface/discover.d.ts.map +1 -1
  229. package/dist/tool-surface/discover.js +0 -1
  230. package/dist/tool-surface/discover.js.map +1 -1
  231. package/dist/tool-surface/openapi-generator.d.ts.map +1 -1
  232. package/dist/tool-surface/openapi-generator.js +0 -2
  233. package/dist/tool-surface/openapi-generator.js.map +1 -1
  234. package/dist/tool-surface/register-all-tools.d.ts.map +1 -1
  235. package/dist/tool-surface/register-all-tools.js +1 -3
  236. package/dist/tool-surface/register-all-tools.js.map +1 -1
  237. package/dist/tools/audit/schema.d.ts +4 -4
  238. package/dist/tools/audit/schema.d.ts.map +1 -1
  239. package/dist/tools/audit/schema.js +4 -4
  240. package/dist/tools/audit/schema.js.map +1 -1
  241. package/dist/tools/audit/skill-audit-criteria.d.ts +9 -0
  242. package/dist/tools/audit/skill-audit-criteria.d.ts.map +1 -0
  243. package/dist/tools/audit/skill-audit-criteria.js +51 -0
  244. package/dist/tools/audit/skill-audit-criteria.js.map +1 -0
  245. package/dist/tools/audit/spec-audit-criteria.d.ts +9 -0
  246. package/dist/tools/audit/spec-audit-criteria.d.ts.map +1 -0
  247. package/dist/tools/audit/spec-audit-criteria.js +52 -0
  248. package/dist/tools/audit/spec-audit-criteria.js.map +1 -0
  249. package/dist/tools/audit/subtypes.d.ts +4 -0
  250. package/dist/tools/audit/subtypes.d.ts.map +1 -0
  251. package/dist/tools/audit/subtypes.js +67 -0
  252. package/dist/tools/audit/subtypes.js.map +1 -0
  253. package/dist/tools/audit/tool-config.d.ts +4 -4
  254. package/dist/tools/audit/tool-config.d.ts.map +1 -1
  255. package/dist/tools/audit/tool-config.js +31 -29
  256. package/dist/tools/audit/tool-config.js.map +1 -1
  257. package/dist/tools/debug/schema.d.ts +3 -0
  258. package/dist/tools/debug/schema.d.ts.map +1 -1
  259. package/dist/tools/debug/schema.js +1 -0
  260. package/dist/tools/debug/schema.js.map +1 -1
  261. package/dist/tools/debug/subtypes.d.ts +4 -0
  262. package/dist/tools/debug/subtypes.d.ts.map +1 -0
  263. package/dist/tools/debug/subtypes.js +25 -0
  264. package/dist/tools/debug/subtypes.js.map +1 -0
  265. package/dist/tools/delegate/tool-config.d.ts.map +1 -1
  266. package/dist/tools/delegate/tool-config.js +0 -1
  267. package/dist/tools/delegate/tool-config.js.map +1 -1
  268. package/dist/tools/execute-plan/tool-config.d.ts.map +1 -1
  269. package/dist/tools/execute-plan/tool-config.js +5 -2
  270. package/dist/tools/execute-plan/tool-config.js.map +1 -1
  271. package/dist/tools/index.d.ts +0 -1
  272. package/dist/tools/index.d.ts.map +1 -1
  273. package/dist/tools/index.js +0 -1
  274. package/dist/tools/index.js.map +1 -1
  275. package/dist/tools/investigate/schema.d.ts +3 -0
  276. package/dist/tools/investigate/schema.d.ts.map +1 -1
  277. package/dist/tools/investigate/schema.js +1 -0
  278. package/dist/tools/investigate/schema.js.map +1 -1
  279. package/dist/tools/investigate/subtypes.d.ts +4 -0
  280. package/dist/tools/investigate/subtypes.d.ts.map +1 -0
  281. package/dist/tools/investigate/subtypes.js +25 -0
  282. package/dist/tools/investigate/subtypes.js.map +1 -0
  283. package/dist/tools/research/implementer-criteria.d.ts +12 -5
  284. package/dist/tools/research/implementer-criteria.d.ts.map +1 -1
  285. package/dist/tools/research/implementer-criteria.js +40 -9
  286. package/dist/tools/research/implementer-criteria.js.map +1 -1
  287. package/dist/tools/research/schema.d.ts +3 -0
  288. package/dist/tools/research/schema.d.ts.map +1 -1
  289. package/dist/tools/research/schema.js +2 -1
  290. package/dist/tools/research/schema.js.map +1 -1
  291. package/dist/tools/research/subtypes.d.ts +4 -0
  292. package/dist/tools/research/subtypes.d.ts.map +1 -0
  293. package/dist/tools/research/subtypes.js +24 -0
  294. package/dist/tools/research/subtypes.js.map +1 -0
  295. package/dist/tools/research/tool-config.js +2 -2
  296. package/dist/tools/research/tool-config.js.map +1 -1
  297. package/dist/tools/review/schema.d.ts +3 -0
  298. package/dist/tools/review/schema.d.ts.map +1 -1
  299. package/dist/tools/review/schema.js +1 -0
  300. package/dist/tools/review/schema.js.map +1 -1
  301. package/dist/tools/review/subtypes.d.ts +4 -0
  302. package/dist/tools/review/subtypes.d.ts.map +1 -0
  303. package/dist/tools/review/subtypes.js +26 -0
  304. package/dist/tools/review/subtypes.js.map +1 -0
  305. package/dist/types/config.d.ts +14 -28
  306. package/dist/types/config.d.ts.map +1 -1
  307. package/dist/types/enums.d.ts +3 -8
  308. package/dist/types/enums.d.ts.map +1 -1
  309. package/dist/types/enums.js +3 -3
  310. package/dist/types/enums.js.map +1 -1
  311. package/dist/types/run-result.d.ts +57 -22
  312. package/dist/types/run-result.d.ts.map +1 -1
  313. package/dist/types/stage-stats.d.ts +10 -29
  314. package/dist/types/stage-stats.d.ts.map +1 -1
  315. package/dist/types/task-spec.d.ts +17 -15
  316. package/dist/types/task-spec.d.ts.map +1 -1
  317. package/dist/types.d.ts +1 -1
  318. package/dist/types.d.ts.map +1 -1
  319. package/package.json +9 -3
  320. package/dist/identity/main-model-resolver.d.ts +0 -14
  321. package/dist/identity/main-model-resolver.d.ts.map +0 -1
  322. package/dist/identity/main-model-resolver.js +0 -83
  323. package/dist/identity/main-model-resolver.js.map +0 -1
  324. package/dist/lifecycle/handlers/annotate-completion-handler.d.ts +0 -9
  325. package/dist/lifecycle/handlers/annotate-completion-handler.d.ts.map +0 -1
  326. package/dist/lifecycle/handlers/annotate-completion-handler.js +0 -171
  327. package/dist/lifecycle/handlers/annotate-completion-handler.js.map +0 -1
  328. package/dist/lifecycle/handlers/annotate-criteria-handler.d.ts +0 -3
  329. package/dist/lifecycle/handlers/annotate-criteria-handler.d.ts.map +0 -1
  330. package/dist/lifecycle/handlers/annotate-criteria-handler.js +0 -67
  331. package/dist/lifecycle/handlers/annotate-criteria-handler.js.map +0 -1
  332. package/dist/lifecycle/handlers/execution-context-builder.d.ts +0 -5
  333. package/dist/lifecycle/handlers/execution-context-builder.d.ts.map +0 -1
  334. package/dist/lifecycle/handlers/execution-context-builder.js +0 -17
  335. package/dist/lifecycle/handlers/execution-context-builder.js.map +0 -1
  336. package/dist/lifecycle/parallel-criteria-dispatcher.d.ts +0 -62
  337. package/dist/lifecycle/parallel-criteria-dispatcher.d.ts.map +0 -1
  338. package/dist/lifecycle/parallel-criteria-dispatcher.js +0 -328
  339. package/dist/lifecycle/parallel-criteria-dispatcher.js.map +0 -1
  340. package/dist/providers/anthropic-messages-adapter.d.ts +0 -26
  341. package/dist/providers/anthropic-messages-adapter.d.ts.map +0 -1
  342. package/dist/providers/anthropic-messages-adapter.js +0 -127
  343. package/dist/providers/anthropic-messages-adapter.js.map +0 -1
  344. package/dist/providers/base/research-tools.d.ts +0 -47
  345. package/dist/providers/base/research-tools.d.ts.map +0 -1
  346. package/dist/providers/base/research-tools.js +0 -67
  347. package/dist/providers/base/research-tools.js.map +0 -1
  348. package/dist/providers/base/result-builders.d.ts +0 -82
  349. package/dist/providers/base/result-builders.d.ts.map +0 -1
  350. package/dist/providers/base/result-builders.js +0 -112
  351. package/dist/providers/base/result-builders.js.map +0 -1
  352. package/dist/providers/base/time-check.d.ts +0 -9
  353. package/dist/providers/base/time-check.d.ts.map +0 -1
  354. package/dist/providers/base/time-check.js +0 -18
  355. package/dist/providers/base/time-check.js.map +0 -1
  356. package/dist/providers/base/types.d.ts +0 -53
  357. package/dist/providers/base/types.d.ts.map +0 -1
  358. package/dist/providers/base/types.js +0 -2
  359. package/dist/providers/base/types.js.map +0 -1
  360. package/dist/providers/base/usage-accumulator.d.ts +0 -9
  361. package/dist/providers/base/usage-accumulator.d.ts.map +0 -1
  362. package/dist/providers/base/usage-accumulator.js +0 -20
  363. package/dist/providers/base/usage-accumulator.js.map +0 -1
  364. package/dist/providers/call-cache.d.ts +0 -16
  365. package/dist/providers/call-cache.d.ts.map +0 -1
  366. package/dist/providers/call-cache.js +0 -28
  367. package/dist/providers/call-cache.js.map +0 -1
  368. package/dist/providers/file-tracker.d.ts +0 -80
  369. package/dist/providers/file-tracker.d.ts.map +0 -1
  370. package/dist/providers/file-tracker.js +0 -125
  371. package/dist/providers/file-tracker.js.map +0 -1
  372. package/dist/providers/injection-type.d.ts +0 -22
  373. package/dist/providers/injection-type.d.ts.map +0 -1
  374. package/dist/providers/injection-type.js +0 -34
  375. package/dist/providers/injection-type.js.map +0 -1
  376. package/dist/providers/make-runner-shell.d.ts +0 -4
  377. package/dist/providers/make-runner-shell.d.ts.map +0 -1
  378. package/dist/providers/make-runner-shell.js +0 -70
  379. package/dist/providers/make-runner-shell.js.map +0 -1
  380. package/dist/providers/openai-chat-adapter.d.ts +0 -15
  381. package/dist/providers/openai-chat-adapter.d.ts.map +0 -1
  382. package/dist/providers/openai-chat-adapter.js +0 -86
  383. package/dist/providers/openai-chat-adapter.js.map +0 -1
  384. package/dist/providers/openai-responses-adapter.d.ts +0 -15
  385. package/dist/providers/openai-responses-adapter.d.ts.map +0 -1
  386. package/dist/providers/openai-responses-adapter.js +0 -137
  387. package/dist/providers/openai-responses-adapter.js.map +0 -1
  388. package/dist/providers/openai-usage-interceptor.d.ts +0 -25
  389. package/dist/providers/openai-usage-interceptor.d.ts.map +0 -1
  390. package/dist/providers/openai-usage-interceptor.js +0 -121
  391. package/dist/providers/openai-usage-interceptor.js.map +0 -1
  392. package/dist/providers/prevention.d.ts +0 -44
  393. package/dist/providers/prevention.d.ts.map +0 -1
  394. package/dist/providers/prevention.js +0 -108
  395. package/dist/providers/prevention.js.map +0 -1
  396. package/dist/providers/runner-shell-types.d.ts +0 -91
  397. package/dist/providers/runner-shell-types.d.ts.map +0 -1
  398. package/dist/providers/runner-shell-types.js +0 -2
  399. package/dist/providers/runner-shell-types.js.map +0 -1
  400. package/dist/providers/runner-shell.d.ts +0 -67
  401. package/dist/providers/runner-shell.d.ts.map +0 -1
  402. package/dist/providers/runner-shell.js +0 -518
  403. package/dist/providers/runner-shell.js.map +0 -1
  404. package/dist/providers/scratchpad-salvager.d.ts +0 -19
  405. package/dist/providers/scratchpad-salvager.d.ts.map +0 -1
  406. package/dist/providers/scratchpad-salvager.js +0 -44
  407. package/dist/providers/scratchpad-salvager.js.map +0 -1
  408. package/dist/providers/supervision.d.ts +0 -108
  409. package/dist/providers/supervision.d.ts.map +0 -1
  410. package/dist/providers/supervision.js +0 -272
  411. package/dist/providers/supervision.js.map +0 -1
  412. package/dist/providers/text-scratchpad.d.ts +0 -28
  413. package/dist/providers/text-scratchpad.d.ts.map +0 -1
  414. package/dist/providers/text-scratchpad.js +0 -49
  415. package/dist/providers/text-scratchpad.js.map +0 -1
  416. package/dist/providers/tool-definitions.d.ts +0 -6
  417. package/dist/providers/tool-definitions.d.ts.map +0 -1
  418. package/dist/providers/tool-definitions.js +0 -236
  419. package/dist/providers/tool-definitions.js.map +0 -1
  420. package/dist/providers/tool-implementations.d.ts +0 -38
  421. package/dist/providers/tool-implementations.d.ts.map +0 -1
  422. package/dist/providers/tool-implementations.js +0 -254
  423. package/dist/providers/tool-implementations.js.map +0 -1
  424. package/dist/providers/tool-tracker.d.ts +0 -14
  425. package/dist/providers/tool-tracker.d.ts.map +0 -1
  426. package/dist/providers/tool-tracker.js +0 -13
  427. package/dist/providers/tool-tracker.js.map +0 -1
  428. package/dist/reporting/headline-templates/verify.d.ts +0 -3
  429. package/dist/reporting/headline-templates/verify.d.ts.map +0 -1
  430. package/dist/reporting/headline-templates/verify.js +0 -29
  431. package/dist/reporting/headline-templates/verify.js.map +0 -1
  432. package/dist/reporting/report-parser-slots/verify-report.d.ts +0 -27
  433. package/dist/reporting/report-parser-slots/verify-report.d.ts.map +0 -1
  434. package/dist/reporting/report-parser-slots/verify-report.js +0 -51
  435. package/dist/reporting/report-parser-slots/verify-report.js.map +0 -1
  436. package/dist/review/templates/annotator-verify.d.ts +0 -3
  437. package/dist/review/templates/annotator-verify.d.ts.map +0 -1
  438. package/dist/review/templates/annotator-verify.js +0 -21
  439. package/dist/review/templates/annotator-verify.js.map +0 -1
  440. package/dist/review/templates/quality-review-verify.d.ts +0 -3
  441. package/dist/review/templates/quality-review-verify.d.ts.map +0 -1
  442. package/dist/review/templates/quality-review-verify.js +0 -10
  443. package/dist/review/templates/quality-review-verify.js.map +0 -1
  444. package/dist/tools/verify/implementer-criteria.d.ts +0 -61
  445. package/dist/tools/verify/implementer-criteria.d.ts.map +0 -1
  446. package/dist/tools/verify/implementer-criteria.js +0 -125
  447. package/dist/tools/verify/implementer-criteria.js.map +0 -1
  448. package/dist/tools/verify/schema.d.ts +0 -56
  449. package/dist/tools/verify/schema.d.ts.map +0 -1
  450. package/dist/tools/verify/schema.js +0 -16
  451. package/dist/tools/verify/schema.js.map +0 -1
  452. package/dist/tools/verify/tool-config.d.ts +0 -14
  453. package/dist/tools/verify/tool-config.d.ts.map +0 -1
  454. package/dist/tools/verify/tool-config.js +0 -146
  455. package/dist/tools/verify/tool-config.js.map +0 -1
@@ -1,236 +0,0 @@
1
- import { readFile, writeFile, mkdir, realpath, stat } from 'node:fs/promises';
2
- import { resolve, sep, dirname, basename } from 'node:path';
3
- import { glob as fsGlob } from 'node:fs/promises';
4
- import { exec } from 'node:child_process';
5
- import { promisify } from 'node:util';
6
- import { CWDValidator } from '../identity/cwd-validator.js';
7
- import { SSRFGuard } from '../identity/ssrf-guard.js';
8
- import { HostAllowlist } from '../identity/host-allowlist.js';
9
- const execAsync = promisify(exec);
10
- const MAX_READ_FILE_BYTES = 50 * 1024 * 1024;
11
- const MAX_WRITE_FILE_BYTES = 100 * 1024 * 1024;
12
- function isWithin(parent, child) {
13
- return child === parent || child.startsWith(parent + sep);
14
- }
15
- async function resolveReal(target) {
16
- try {
17
- return await realpath(target);
18
- }
19
- catch {
20
- const parent = dirname(target);
21
- if (parent === target)
22
- return target;
23
- const realParent = await resolveReal(parent);
24
- return resolve(realParent, basename(target));
25
- }
26
- }
27
- async function assertWithinCwd(cwd, resolved) {
28
- const realCwd = await realpath(cwd);
29
- const realResolved = await resolveReal(resolved);
30
- if (!isWithin(realCwd, realResolved)) {
31
- throw new Error(`Path traversal denied: "${resolved}" is outside working directory "${cwd}"`);
32
- }
33
- }
34
- export function makeToolDefinitions(opts) {
35
- const cwdValidator = new CWDValidator(opts.cwd);
36
- const ssrfGuard = new SSRFGuard();
37
- const hostAllowlist = opts.allowedHosts ? new HostAllowlist(opts.allowedHosts) : undefined;
38
- return [
39
- {
40
- name: 'read_file',
41
- description: 'Read a UTF-8 file (cwd-only)',
42
- schema: {
43
- type: 'object',
44
- properties: { path: { type: 'string' } },
45
- required: ['path'],
46
- },
47
- execute: async (input) => {
48
- const safe = cwdValidator.validate(input.path);
49
- const stats = await stat(safe);
50
- if (stats.size > MAX_READ_FILE_BYTES) {
51
- throw new Error(`File too large: ${input.path} is ${stats.size} bytes (max ${MAX_READ_FILE_BYTES})`);
52
- }
53
- return { contents: await readFile(safe, 'utf8') };
54
- },
55
- },
56
- {
57
- name: 'write_file',
58
- description: 'Write a UTF-8 file (cwd-only)',
59
- schema: {
60
- type: 'object',
61
- properties: {
62
- path: { type: 'string' },
63
- content: { type: 'string' },
64
- },
65
- required: ['path', 'content'],
66
- },
67
- execute: async (input) => {
68
- const safe = cwdValidator.validate(input.path);
69
- if (input.content.length > MAX_WRITE_FILE_BYTES) {
70
- throw new Error(`Content too large: ${input.content.length} bytes (max ${MAX_WRITE_FILE_BYTES})`);
71
- }
72
- await mkdir(dirname(safe), { recursive: true });
73
- await writeFile(safe, input.content, 'utf8');
74
- return { written: true };
75
- },
76
- },
77
- {
78
- name: 'edit_file',
79
- description: 'Replace a unique string in an existing file (cwd-only)',
80
- schema: {
81
- type: 'object',
82
- properties: {
83
- path: { type: 'string' },
84
- oldContent: { type: 'string' },
85
- newContent: { type: 'string' },
86
- },
87
- required: ['path', 'oldContent', 'newContent'],
88
- },
89
- execute: async (input) => {
90
- const safe = cwdValidator.validate(input.path);
91
- const existing = await readFile(safe, 'utf8');
92
- const firstIndex = existing.indexOf(input.oldContent);
93
- if (firstIndex === -1) {
94
- throw new Error(`oldContent not found in file "${input.path}"`);
95
- }
96
- const secondIndex = existing.indexOf(input.oldContent, firstIndex + input.oldContent.length);
97
- if (secondIndex !== -1) {
98
- throw new Error(`oldContent matches multiple locations in "${input.path}" — provide more surrounding context for a unique match`);
99
- }
100
- const updated = existing.slice(0, firstIndex) +
101
- input.newContent +
102
- existing.slice(firstIndex + input.oldContent.length);
103
- if (updated.length > MAX_WRITE_FILE_BYTES) {
104
- throw new Error(`Edited content too large: ${updated.length} bytes (max ${MAX_WRITE_FILE_BYTES})`);
105
- }
106
- await writeFile(safe, updated, 'utf8');
107
- return { edited: true };
108
- },
109
- },
110
- {
111
- name: 'glob',
112
- description: 'Find files matching a glob pattern (cwd-only)',
113
- schema: {
114
- type: 'object',
115
- properties: { pattern: { type: 'string' } },
116
- required: ['pattern'],
117
- },
118
- execute: async (input) => {
119
- const results = [];
120
- const realCwd = await realpath(opts.cwd);
121
- for await (const entry of fsGlob(input.pattern, { cwd: opts.cwd })) {
122
- const abs = resolve(opts.cwd, entry);
123
- let real;
124
- try {
125
- real = await realpath(abs);
126
- }
127
- catch {
128
- real = abs;
129
- }
130
- if (!isWithin(realCwd, real))
131
- continue;
132
- results.push(entry);
133
- }
134
- return { matches: results.sort() };
135
- },
136
- },
137
- {
138
- name: 'grep',
139
- description: 'Search for a regex pattern in a file or directory (cwd-only)',
140
- schema: {
141
- type: 'object',
142
- properties: {
143
- pattern: { type: 'string' },
144
- path: { type: 'string' },
145
- },
146
- required: ['pattern', 'path'],
147
- },
148
- execute: async (input) => {
149
- const safe = cwdValidator.validate(input.path);
150
- let isDirectory = false;
151
- try {
152
- const stats = await stat(safe);
153
- isDirectory = stats.isDirectory();
154
- }
155
- catch (err) {
156
- if (err.code === 'ENOENT') {
157
- throw new Error(`grep target does not exist: ${input.path}`);
158
- }
159
- throw err;
160
- }
161
- const flags = isDirectory ? '-rn' : '-n';
162
- const escapedPattern = input.pattern.replace(/'/g, "'\\''");
163
- const escapedPath = safe.replace(/'/g, "'\\''");
164
- try {
165
- const { stdout } = await execAsync(`grep ${flags} -e '${escapedPattern}' '${escapedPath}'`, { maxBuffer: 4 * 1024 * 1024 });
166
- return { output: stdout.trim() };
167
- }
168
- catch (err) {
169
- if (err.code === 1)
170
- return { output: '' };
171
- throw new Error(err.stderr?.trim() || `grep failed with exit code ${err.code}`);
172
- }
173
- },
174
- },
175
- {
176
- name: 'list_files',
177
- description: 'List files and directories at the given path (cwd-only)',
178
- schema: {
179
- type: 'object',
180
- properties: { path: { type: 'string' } },
181
- },
182
- execute: async (input) => {
183
- const target = input.path ?? '.';
184
- const safe = cwdValidator.validate(target);
185
- const { readdir } = await import('node:fs/promises');
186
- const entries = await readdir(safe, { withFileTypes: true });
187
- return {
188
- entries: entries.map(e => (e.isDirectory() ? `${e.name}/` : e.name)).sort(),
189
- };
190
- },
191
- },
192
- {
193
- name: 'run_shell',
194
- description: 'Execute a shell command (cwd-confined)',
195
- schema: {
196
- type: 'object',
197
- properties: { command: { type: 'string' } },
198
- required: ['command'],
199
- },
200
- execute: async (input) => {
201
- try {
202
- const { stdout, stderr } = await execAsync(input.command, {
203
- cwd: opts.cwd,
204
- timeout: 120_000,
205
- maxBuffer: 10 * 1024 * 1024,
206
- });
207
- return { stdout, stderr, exitCode: 0 };
208
- }
209
- catch (err) {
210
- return {
211
- stdout: err.stdout ?? '',
212
- stderr: err.stderr ?? '',
213
- exitCode: typeof err.code === 'number' ? err.code : 1,
214
- };
215
- }
216
- },
217
- },
218
- {
219
- name: 'web_fetch',
220
- description: 'Fetch a URL (SSRF-guarded; HostAllowlist when configured)',
221
- schema: {
222
- type: 'object',
223
- properties: { url: { type: 'string' } },
224
- required: ['url'],
225
- },
226
- execute: async (input) => {
227
- ssrfGuard.check(input.url);
228
- if (hostAllowlist)
229
- hostAllowlist.check(new URL(input.url).hostname);
230
- const r = await fetch(input.url);
231
- return { status: r.status, body: await r.text() };
232
- },
233
- },
234
- ];
235
- }
236
- //# sourceMappingURL=tool-definitions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-definitions.js","sourceRoot":"","sources":["../../src/providers/tool-definitions.ts"],"names":[],"mappings":"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"}
@@ -1,38 +0,0 @@
1
- import type { FileTracker } from './file-tracker.js';
2
- import type { SandboxPolicy } from '../types.js';
3
- export declare const MAX_READ_FILE_BYTES: number;
4
- export declare const MAX_WRITE_FILE_BYTES: number;
5
- /**
6
- * Read-budget guard threshold (4.3.0+ pipeline redesign).
7
- *
8
- * When a worker reads the SAME file this many times within a single
9
- * stage, the readFile tool appends a hard warning to the returned
10
- * content telling the worker to stop re-reading and edit instead.
11
- * Calibrated from observed pathology: gpt-5.4 in spec_review_and_fix
12
- * read pipeline.ts 28 times in one stage without editing. Threshold
13
- * 5 is generous (legitimate workflows rarely re-read a file 5x) and
14
- * still catches the loop early enough to be useful.
15
- */
16
- export declare const READ_BUDGET_WARN_THRESHOLD = 5;
17
- export declare const MAX_GREP_OUTPUT_BYTES: number;
18
- export declare const GREP_CHILD_BUFFER_BYTES: number;
19
- export interface ShellResult {
20
- stdout: string;
21
- stderr: string;
22
- exitCode: number;
23
- }
24
- export interface ToolImplementations {
25
- readFile(filePath: string): Promise<string>;
26
- writeFile(filePath: string, content: string): Promise<void>;
27
- editFile(filePath: string, oldContent: string, newContent: string): Promise<void>;
28
- runShell(command: string): Promise<ShellResult>;
29
- glob(pattern: string): Promise<string[]>;
30
- grep(pattern: string, target: string): Promise<string>;
31
- listFiles(dirPath: string): Promise<string[]>;
32
- }
33
- /** Internal implementation method names (camelCase). */
34
- export declare const READONLY_TOOL_IMPLS: readonly ["readFile", "grep", "glob", "listFiles"];
35
- /** Adapter-facing tool IDs (snake_case). */
36
- export declare const READONLY_TOOL_IDS: readonly ["read_file", "grep", "glob", "list_files"];
37
- export declare function createToolImplementations(tracker: FileTracker, cwd: string, sandboxPolicy?: SandboxPolicy, signal?: AbortSignal): ToolImplementations;
38
- //# sourceMappingURL=tool-implementations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-implementations.d.ts","sourceRoot":"","sources":["../../src/providers/tool-implementations.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAoBjD,eAAO,MAAM,mBAAmB,QAAmB,CAAC;AACpD,eAAO,MAAM,oBAAoB,QAAoB,CAAC;AAEtD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,eAAO,MAAM,qBAAqB,QAAa,CAAC;AAChD,eAAO,MAAM,uBAAuB,QAAkB,CAAC;AA6BvD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvD,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC/C;AAED,wDAAwD;AACxD,eAAO,MAAM,mBAAmB,oDAAqD,CAAC;AAEtF,4CAA4C;AAC5C,eAAO,MAAM,iBAAiB,sDAAuD,CAAC;AAEtF,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,MAAM,EACX,aAAa,GAAE,aAA0B,EACzC,MAAM,CAAC,EAAE,WAAW,GACnB,mBAAmB,CAyMrB"}
@@ -1,254 +0,0 @@
1
- import fs from 'fs/promises';
2
- import { glob as fsGlob } from 'node:fs/promises';
3
- import path from 'path';
4
- import { exec } from 'child_process';
5
- import { promisify } from 'util';
6
- const execAsync = promisify(exec);
7
- // Hard caps to keep an LLM sub-agent from exhausting host memory or disk by
8
- // asking the file tools to read or write absurdly large blobs. The values are
9
- // generous for normal coding work and intentionally well below the memory
10
- // budget of a typical Node process (~1.5 GB default heap). They can be tuned
11
- // per-deployment by editing the constants.
12
- //
13
- // readFile: 50 MB. Larger than any sensible source file.
14
- // writeFile: 100 MB. Generous enough for build artefacts but caps disk-fill
15
- // attacks where the model is told to write a multi-gigabyte file.
16
- // grep: 200 KB rendered output. Recursive grep on a large repo can otherwise
17
- // dump megabytes of matches into the model's context, which is both
18
- // expensive and useless. Truncating with a marker forces the worker to
19
- // refine its pattern.
20
- // grep child: 4 MB stdout buffer. Process-level cap that's larger than the
21
- // rendered cap so we never lose a real grep result that fits
22
- // within the rendered limit just because of buffer overflow.
23
- export const MAX_READ_FILE_BYTES = 50 * 1024 * 1024;
24
- export const MAX_WRITE_FILE_BYTES = 100 * 1024 * 1024;
25
- /**
26
- * Read-budget guard threshold (4.3.0+ pipeline redesign).
27
- *
28
- * When a worker reads the SAME file this many times within a single
29
- * stage, the readFile tool appends a hard warning to the returned
30
- * content telling the worker to stop re-reading and edit instead.
31
- * Calibrated from observed pathology: gpt-5.4 in spec_review_and_fix
32
- * read pipeline.ts 28 times in one stage without editing. Threshold
33
- * 5 is generous (legitimate workflows rarely re-read a file 5x) and
34
- * still catches the loop early enough to be useful.
35
- */
36
- export const READ_BUDGET_WARN_THRESHOLD = 5;
37
- export const MAX_GREP_OUTPUT_BYTES = 200 * 1024;
38
- export const GREP_CHILD_BUFFER_BYTES = 4 * 1024 * 1024;
39
- function isWithin(parent, child) {
40
- return child === parent || child.startsWith(parent + path.sep);
41
- }
42
- async function resolveReal(target) {
43
- try {
44
- return await fs.realpath(target);
45
- }
46
- catch {
47
- // File doesn't exist — resolve the nearest existing ancestor and
48
- // append the remaining path components so symlinks in ancestors
49
- // are still caught.
50
- const parent = path.dirname(target);
51
- if (parent === target)
52
- return target; // filesystem root
53
- const realParent = await resolveReal(parent);
54
- return path.join(realParent, path.basename(target));
55
- }
56
- }
57
- async function assertWithinCwd(cwd, resolved) {
58
- const realCwd = await fs.realpath(cwd);
59
- const realResolved = await resolveReal(resolved);
60
- if (!isWithin(realCwd, realResolved)) {
61
- throw new Error(`Path traversal denied: "${resolved}" is outside working directory "${cwd}"`);
62
- }
63
- }
64
- /** Internal implementation method names (camelCase). */
65
- export const READONLY_TOOL_IMPLS = ['readFile', 'grep', 'glob', 'listFiles'];
66
- /** Adapter-facing tool IDs (snake_case). */
67
- export const READONLY_TOOL_IDS = ['read_file', 'grep', 'glob', 'list_files'];
68
- export function createToolImplementations(tracker, cwd, sandboxPolicy = 'cwd-only', signal) {
69
- const confine = sandboxPolicy === 'cwd-only';
70
- return {
71
- async readFile(filePath) {
72
- tracker.trackToolCall(`readFile(${filePath})`);
73
- const resolved = path.resolve(cwd, filePath);
74
- if (confine)
75
- await assertWithinCwd(cwd, resolved);
76
- // Reject oversized files BEFORE reading them into memory. stat is
77
- // cheap; reading a 10 GB file would OOM the host.
78
- const stats = await fs.stat(resolved);
79
- if (stats.size > MAX_READ_FILE_BYTES) {
80
- throw new Error(`File too large: ${filePath} is ${stats.size} bytes (max ${MAX_READ_FILE_BYTES})`);
81
- }
82
- const content = await fs.readFile(resolved, 'utf-8');
83
- tracker.trackRead(resolved);
84
- // Read-budget guard (4.3.0+ pipeline redesign). When a path is read
85
- // repeatedly within the same stage, the worker is almost certainly
86
- // in the "let me re-verify before I commit" pathology we observed
87
- // on cheap workers AND on gpt-5.4 reviewers. Append a hard warning
88
- // to the returned content. The worker sees it as part of the tool
89
- // result and (hopefully) breaks out of the read-loop.
90
- const reads = tracker.readCount(resolved);
91
- if (reads >= READ_BUDGET_WARN_THRESHOLD) {
92
- const banner = [
93
- '',
94
- '',
95
- `============================================================`,
96
- `READ-BUDGET WARNING: you have read \`${filePath}\` ${reads} times in this stage.`,
97
- `STOP re-reading. The content above is the current on-disk state.`,
98
- `EITHER edit the file using your editor tools and move on, OR`,
99
- `accept the current state and write your final summary.`,
100
- `Further reads of this path will keep failing this guard.`,
101
- `============================================================`,
102
- ].join('\n');
103
- return content + banner;
104
- }
105
- return content;
106
- },
107
- async writeFile(filePath, content) {
108
- tracker.trackToolCall(`writeFile(${filePath}, ${content.length}B)`);
109
- const resolved = path.resolve(cwd, filePath);
110
- if (confine)
111
- await assertWithinCwd(cwd, resolved);
112
- // Reject oversized writes BEFORE touching the disk. content.length is
113
- // a UTF-16 code-unit count, but it's a reasonable upper bound on the
114
- // byte size after UTF-8 encoding for the purpose of capping abuse.
115
- if (content.length > MAX_WRITE_FILE_BYTES) {
116
- throw new Error(`Content too large: ${content.length} bytes (max ${MAX_WRITE_FILE_BYTES})`);
117
- }
118
- await fs.mkdir(path.dirname(resolved), { recursive: true });
119
- await fs.writeFile(resolved, content, 'utf-8');
120
- tracker.trackWrite(resolved);
121
- },
122
- async editFile(filePath, oldContent, newContent) {
123
- tracker.trackToolCall(`editFile(${filePath}, ${oldContent.length}B→${newContent.length}B)`);
124
- const resolved = path.resolve(cwd, filePath);
125
- if (confine)
126
- await assertWithinCwd(cwd, resolved);
127
- const existing = await fs.readFile(resolved, 'utf-8');
128
- const firstIndex = existing.indexOf(oldContent);
129
- if (firstIndex === -1) {
130
- throw new Error(`oldContent not found in file "${filePath}"`);
131
- }
132
- const secondIndex = existing.indexOf(oldContent, firstIndex + oldContent.length);
133
- if (secondIndex !== -1) {
134
- throw new Error(`oldContent matches multiple locations in "${filePath}" — provide more surrounding context for a unique match`);
135
- }
136
- const updated = existing.slice(0, firstIndex) + newContent + existing.slice(firstIndex + oldContent.length);
137
- if (updated.length > MAX_WRITE_FILE_BYTES) {
138
- throw new Error(`Edited content too large: ${updated.length} bytes (max ${MAX_WRITE_FILE_BYTES})`);
139
- }
140
- await fs.writeFile(resolved, updated, 'utf-8');
141
- tracker.trackWrite(resolved);
142
- },
143
- async runShell(command) {
144
- tracker.trackToolCall(`runShell(${command.length > 80 ? command.slice(0, 77) + '…' : command})`);
145
- try {
146
- const { stdout, stderr } = await execAsync(command, {
147
- cwd,
148
- timeout: 120_000,
149
- maxBuffer: 10 * 1024 * 1024,
150
- signal,
151
- });
152
- return { stdout, stderr, exitCode: 0 };
153
- }
154
- catch (err) {
155
- if (err.name === 'AbortError') {
156
- return { stdout: '', stderr: 'Aborted', exitCode: 130 };
157
- }
158
- return {
159
- stdout: err.stdout ?? '',
160
- stderr: err.stderr ?? '',
161
- exitCode: typeof err.code === 'number' ? err.code : 1,
162
- };
163
- }
164
- },
165
- async glob(pattern) {
166
- tracker.trackToolCall(`glob(${pattern})`);
167
- try {
168
- const results = [];
169
- const realCwd = confine ? await fs.realpath(cwd) : null;
170
- for await (const entry of fsGlob(pattern, { cwd })) {
171
- if (realCwd) {
172
- const abs = path.resolve(cwd, entry);
173
- let real;
174
- try {
175
- real = await fs.realpath(abs);
176
- }
177
- catch {
178
- real = abs;
179
- }
180
- if (!isWithin(realCwd, real))
181
- continue;
182
- }
183
- results.push(entry);
184
- }
185
- return results.sort();
186
- }
187
- catch {
188
- return [];
189
- }
190
- },
191
- async grep(pattern, target) {
192
- tracker.trackToolCall(`grep(${target}, "${pattern.length > 60 ? pattern.slice(0, 57) + '…' : pattern}")`);
193
- const resolved = path.resolve(cwd, target);
194
- if (confine)
195
- await assertWithinCwd(cwd, resolved);
196
- // Detect file vs directory so we can pick the right grep mode. ENOENT
197
- // is reported as a clear error so the worker doesn't think "no matches".
198
- let isDirectory = false;
199
- try {
200
- const stats = await fs.stat(resolved);
201
- isDirectory = stats.isDirectory();
202
- }
203
- catch (err) {
204
- if (err.code === 'ENOENT') {
205
- throw new Error(`grep target does not exist: ${target}`);
206
- }
207
- throw err;
208
- }
209
- tracker.trackRead(resolved);
210
- // Directory targets get recursive grep with file:line prefixes; file
211
- // targets keep the original line-only output for compactness.
212
- const flags = isDirectory ? '-rn' : '-n';
213
- const escapedPattern = pattern.replace(/'/g, "'\\''");
214
- const escapedPath = resolved.replace(/'/g, "'\\''");
215
- try {
216
- const { stdout } = await execAsync(`grep ${flags} -e '${escapedPattern}' '${escapedPath}'`, { signal, maxBuffer: GREP_CHILD_BUFFER_BYTES });
217
- let output = stdout.trim();
218
- // Cap rendered output so a recursive grep over a huge repo doesn't
219
- // dump 200k matches into the model's context. The worker can refine
220
- // its pattern instead.
221
- if (output.length > MAX_GREP_OUTPUT_BYTES) {
222
- const truncated = output.slice(0, MAX_GREP_OUTPUT_BYTES);
223
- const remaining = output.slice(MAX_GREP_OUTPUT_BYTES);
224
- const droppedLines = remaining.split('\n').length;
225
- output = `${truncated}\n[grep output truncated: ${droppedLines}+ more lines dropped. Refine your pattern or narrow the search path.]`;
226
- }
227
- return output;
228
- }
229
- catch (err) {
230
- if (err.name === 'AbortError')
231
- throw err;
232
- // grep exit 1 = no matches (normal), exit 2+ = real error
233
- if (err.code === 1)
234
- return '';
235
- // Child process buffer overflow surfaces as a stdio max-buffer error.
236
- if (err.code === 'ERR_CHILD_PROCESS_STDIO_MAXBUFFER' || /maxBuffer/.test(err.message ?? '')) {
237
- throw new Error(`grep output exceeded ${GREP_CHILD_BUFFER_BYTES} bytes before truncation. Refine your pattern or narrow the search path.`);
238
- }
239
- throw new Error(err.stderr?.trim() || `grep failed with exit code ${err.code}`);
240
- }
241
- },
242
- async listFiles(dirPath) {
243
- tracker.trackToolCall(`listFiles(${dirPath})`);
244
- const resolved = path.resolve(cwd, dirPath);
245
- if (confine)
246
- await assertWithinCwd(cwd, resolved);
247
- const entries = await fs.readdir(resolved, { withFileTypes: true });
248
- tracker.trackRead(resolved);
249
- tracker.trackDirectoryList(resolved);
250
- return entries.map(e => e.isDirectory() ? `${e.name}/` : e.name).sort();
251
- },
252
- };
253
- }
254
- //# sourceMappingURL=tool-implementations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-implementations.js","sourceRoot":"","sources":["../../src/providers/tool-implementations.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- export interface ToolInvocation {
2
- name: string;
3
- turnIndex: number;
4
- input: unknown;
5
- result: unknown;
6
- durationMs: number;
7
- }
8
- export declare class ToolTracker {
9
- private records;
10
- record(inv: ToolInvocation): void;
11
- forTurn(turnIndex: number): ToolInvocation[];
12
- all(): ToolInvocation[];
13
- }
14
- //# sourceMappingURL=tool-tracker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-tracker.d.ts","sourceRoot":"","sources":["../../src/providers/tool-tracker.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAwB;IAEvC,MAAM,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IAIjC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,EAAE;IAI5C,GAAG,IAAI,cAAc,EAAE;CAGxB"}
@@ -1,13 +0,0 @@
1
- export class ToolTracker {
2
- records = [];
3
- record(inv) {
4
- this.records.push(inv);
5
- }
6
- forTurn(turnIndex) {
7
- return this.records.filter((r) => r.turnIndex === turnIndex);
8
- }
9
- all() {
10
- return [...this.records];
11
- }
12
- }
13
- //# sourceMappingURL=tool-tracker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-tracker.js","sourceRoot":"","sources":["../../src/providers/tool-tracker.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,WAAW;IACd,OAAO,GAAqB,EAAE,CAAC;IAEvC,MAAM,CAAC,GAAmB;QACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,SAAiB;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IAC/D,CAAC;IAED,GAAG;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;CACF"}
@@ -1,3 +0,0 @@
1
- import type { HeadlineTemplate } from '../headline-composer.js';
2
- export declare const verifyHeadlineTemplate: HeadlineTemplate;
3
- //# sourceMappingURL=verify.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/reporting/headline-templates/verify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,eAAO,MAAM,sBAAsB,EAAE,gBA8BpC,CAAC"}
@@ -1,29 +0,0 @@
1
- import { parseVerifyResults } from '../report-parser-slots/verify-report.js';
2
- import { isNotApplicable } from '../not-applicable.js';
3
- export const verifyHeadlineTemplate = {
4
- compose({ report, status, runResult, task }) {
5
- const r = report;
6
- const reportInapplicable = !r || isNotApplicable(r);
7
- // Source priority (parallel to audit + review):
8
- // 1. report.results (structured path; the primary parser now handles
9
- // both JSON and narrative).
10
- // 2. parseVerifyResults(runResult.output) (defensive fallback when the
11
- // structured parser ran a non-verify schema and stripped the
12
- // narrative — same Gap-A pattern surfaced on review #2).
13
- let results = !reportInapplicable && Array.isArray(r?.results) ? r.results : [];
14
- if (results.length === 0 && typeof runResult?.output === 'string') {
15
- const narrative = parseVerifyResults(runResult.output);
16
- if (narrative.length > 0)
17
- results = narrative;
18
- }
19
- const path = task?.filePaths?.[0] || '';
20
- if (results.length === 0 && !path) {
21
- return `[${status}] verify completed`;
22
- }
23
- const passed = results.filter((x) => x?.pass).length;
24
- return path
25
- ? `[${status}] verify ${path}: ${passed}/${results.length} pass`
26
- : `[${status}] verify: ${passed}/${results.length} pass`;
27
- },
28
- };
29
- //# sourceMappingURL=verify.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/reporting/headline-templates/verify.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,CAAC,MAAM,sBAAsB,GAAqB;IACtD,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE;QACzC,MAAM,CAAC,GAAG,MAAkD,CAAC;QAC7D,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QAEpD,gDAAgD;QAChD,uEAAuE;QACvE,iCAAiC;QACjC,yEAAyE;QACzE,kEAAkE;QAClE,8DAA8D;QAC9D,IAAI,OAAO,GACT,CAAC,kBAAkB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,SAAS,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;YAClE,MAAM,SAAS,GAAG,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,GAAG,SAAS,CAAC;QAChD,CAAC;QAED,MAAM,IAAI,GACP,IAA6C,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEvE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAClC,OAAO,IAAI,MAAM,oBAAoB,CAAC;QACxC,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC;QACrD,OAAO,IAAI;YACT,CAAC,CAAC,IAAI,MAAM,YAAY,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,OAAO;YAChE,CAAC,CAAC,IAAI,MAAM,aAAa,MAAM,IAAI,OAAO,CAAC,MAAM,OAAO,CAAC;IAC7D,CAAC;CACF,CAAC"}