@zhixuan92/multi-model-agent-core 5.0.3 → 5.2.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 (718) hide show
  1. package/dist/bounded-execution/activity-tracker-types.d.ts +30 -15
  2. package/dist/bounded-execution/activity-tracker-types.d.ts.map +1 -1
  3. package/dist/bounded-execution/activity-tracker-types.js.map +1 -1
  4. package/dist/bounded-execution/activity-tracker.d.ts +2 -2
  5. package/dist/bounded-execution/activity-tracker.d.ts.map +1 -1
  6. package/dist/bounded-execution/activity-tracker.js +4 -5
  7. package/dist/bounded-execution/activity-tracker.js.map +1 -1
  8. package/dist/config/schema.d.ts +41 -2
  9. package/dist/config/schema.d.ts.map +1 -1
  10. package/dist/config/schema.js +1 -2
  11. package/dist/config/schema.js.map +1 -1
  12. package/dist/events/plain-log-entry.d.ts +1 -1
  13. package/dist/events/plain-log-entry.d.ts.map +1 -1
  14. package/dist/events/plain-log-entry.js +5 -1
  15. package/dist/events/plain-log-entry.js.map +1 -1
  16. package/dist/events/task-envelope.d.ts +5 -5
  17. package/dist/events/task-envelope.d.ts.map +1 -1
  18. package/dist/events/task-envelope.js +3 -6
  19. package/dist/events/task-envelope.js.map +1 -1
  20. package/dist/events/telemetry-uploader.d.ts +1 -1
  21. package/dist/events/telemetry-uploader.d.ts.map +1 -1
  22. package/dist/events/to-wire-record.d.ts +1 -1
  23. package/dist/events/to-wire-record.d.ts.map +1 -1
  24. package/dist/events/to-wire-record.js +1 -1
  25. package/dist/events/to-wire-record.js.map +1 -1
  26. package/dist/events/wire-schema.d.ts +38 -15
  27. package/dist/events/wire-schema.d.ts.map +1 -1
  28. package/dist/events/wire-schema.js +8 -8
  29. package/dist/events/wire-schema.js.map +1 -1
  30. package/dist/index.d.ts +13 -18
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +9 -17
  33. package/dist/index.js.map +1 -1
  34. package/dist/providers/agent-resolver.js +1 -1
  35. package/dist/providers/agent-resolver.js.map +1 -1
  36. package/dist/providers/claude-session.d.ts +2 -1
  37. package/dist/providers/claude-session.d.ts.map +1 -1
  38. package/dist/providers/claude-session.js +43 -2
  39. package/dist/providers/claude-session.js.map +1 -1
  40. package/dist/providers/codex-cli-session.d.ts +3 -2
  41. package/dist/providers/codex-cli-session.d.ts.map +1 -1
  42. package/dist/providers/codex-cli-session.js +5 -2
  43. package/dist/providers/codex-cli-session.js.map +1 -1
  44. package/dist/providers/provider-factory.d.ts +2 -2
  45. package/dist/providers/provider-factory.d.ts.map +1 -1
  46. package/dist/providers/provider-factory.js +12 -12
  47. package/dist/providers/provider-factory.js.map +1 -1
  48. package/dist/providers/runner-types.d.ts +3 -16
  49. package/dist/providers/runner-types.d.ts.map +1 -1
  50. package/dist/research/adapters/arxiv.d.ts.map +1 -1
  51. package/dist/research/adapters/arxiv.js +6 -1
  52. package/dist/research/adapters/arxiv.js.map +1 -1
  53. package/dist/research/index.d.ts +11 -1
  54. package/dist/research/index.d.ts.map +1 -1
  55. package/dist/research/index.js +8 -1
  56. package/dist/research/index.js.map +1 -1
  57. package/dist/stores/context-block-tool.d.ts +2 -3
  58. package/dist/stores/context-block-tool.d.ts.map +1 -1
  59. package/dist/stores/context-block-tool.js +1 -1
  60. package/dist/stores/context-block-tool.js.map +1 -1
  61. package/dist/stores/project-context-registry.d.ts +0 -9
  62. package/dist/stores/project-context-registry.d.ts.map +1 -1
  63. package/dist/stores/project-context-registry.js +0 -4
  64. package/dist/stores/project-context-registry.js.map +1 -1
  65. package/dist/types/brief-quality-policy.d.ts.map +1 -1
  66. package/dist/types/enums.d.ts +0 -9
  67. package/dist/types/enums.d.ts.map +1 -1
  68. package/dist/types/enums.js +0 -10
  69. package/dist/types/enums.js.map +1 -1
  70. package/dist/types/goal.d.ts +47 -0
  71. package/dist/types/goal.d.ts.map +1 -0
  72. package/dist/types/goal.js +2 -0
  73. package/dist/types/goal.js.map +1 -0
  74. package/dist/types/run-result.d.ts +48 -23
  75. package/dist/types/run-result.d.ts.map +1 -1
  76. package/dist/types/run-result.js +3 -16
  77. package/dist/types/run-result.js.map +1 -1
  78. package/dist/types/stage-stats.d.ts +1 -1
  79. package/dist/types/stage-stats.d.ts.map +1 -1
  80. package/dist/types/stage-stats.js +2 -4
  81. package/dist/types/stage-stats.js.map +1 -1
  82. package/dist/types/task-spec.d.ts +14 -17
  83. package/dist/types/task-spec.d.ts.map +1 -1
  84. package/dist/types.d.ts +2 -1
  85. package/dist/types.d.ts.map +1 -1
  86. package/dist/unified/reviewer-output-parser.d.ts +51 -0
  87. package/dist/unified/reviewer-output-parser.d.ts.map +1 -0
  88. package/dist/unified/reviewer-output-parser.js +39 -0
  89. package/dist/unified/reviewer-output-parser.js.map +1 -0
  90. package/dist/unified/skill-loader.d.ts +9 -0
  91. package/dist/unified/skill-loader.d.ts.map +1 -0
  92. package/dist/unified/skill-loader.js +45 -0
  93. package/dist/unified/skill-loader.js.map +1 -0
  94. package/dist/unified/task-input-schema.d.ts +217 -0
  95. package/dist/unified/task-input-schema.d.ts.map +1 -0
  96. package/dist/unified/task-input-schema.js +35 -0
  97. package/dist/unified/task-input-schema.js.map +1 -0
  98. package/dist/unified/task-registry.d.ts +23 -0
  99. package/dist/unified/task-registry.d.ts.map +1 -0
  100. package/dist/unified/task-registry.js +56 -0
  101. package/dist/unified/task-registry.js.map +1 -0
  102. package/dist/unified/two-phase-pipeline.d.ts +52 -0
  103. package/dist/unified/two-phase-pipeline.d.ts.map +1 -0
  104. package/dist/unified/two-phase-pipeline.js +95 -0
  105. package/dist/unified/two-phase-pipeline.js.map +1 -0
  106. package/dist/unified/type-registry.d.ts +13 -0
  107. package/dist/unified/type-registry.d.ts.map +1 -0
  108. package/dist/unified/type-registry.js +30 -0
  109. package/dist/unified/type-registry.js.map +1 -0
  110. package/dist/unified/worktree-manager.d.ts +43 -0
  111. package/dist/unified/worktree-manager.d.ts.map +1 -0
  112. package/dist/unified/worktree-manager.js +76 -0
  113. package/dist/unified/worktree-manager.js.map +1 -0
  114. package/package.json +5 -117
  115. package/dist/bounded-execution/file-artifact-check.d.ts +0 -7
  116. package/dist/bounded-execution/file-artifact-check.d.ts.map +0 -1
  117. package/dist/bounded-execution/file-artifact-check.js +0 -13
  118. package/dist/bounded-execution/file-artifact-check.js.map +0 -1
  119. package/dist/bounded-execution/progress-events-subscriber.d.ts +0 -33
  120. package/dist/bounded-execution/progress-events-subscriber.d.ts.map +0 -1
  121. package/dist/bounded-execution/progress-events-subscriber.js +0 -59
  122. package/dist/bounded-execution/progress-events-subscriber.js.map +0 -1
  123. package/dist/bounded-execution/progress-watchdog.d.ts +0 -43
  124. package/dist/bounded-execution/progress-watchdog.d.ts.map +0 -1
  125. package/dist/bounded-execution/progress-watchdog.js +0 -170
  126. package/dist/bounded-execution/progress-watchdog.js.map +0 -1
  127. package/dist/bounded-execution/real-diff.d.ts +0 -17
  128. package/dist/bounded-execution/real-diff.d.ts.map +0 -1
  129. package/dist/bounded-execution/real-diff.js +0 -59
  130. package/dist/bounded-execution/real-diff.js.map +0 -1
  131. package/dist/bounded-execution/scope-match.d.ts +0 -7
  132. package/dist/bounded-execution/scope-match.d.ts.map +0 -1
  133. package/dist/bounded-execution/scope-match.js +0 -28
  134. package/dist/bounded-execution/scope-match.js.map +0 -1
  135. package/dist/bounded-execution/stall-watchdog.d.ts +0 -18
  136. package/dist/bounded-execution/stall-watchdog.d.ts.map +0 -1
  137. package/dist/bounded-execution/stall-watchdog.js +0 -134
  138. package/dist/bounded-execution/stall-watchdog.js.map +0 -1
  139. package/dist/bounded-execution/wall-clock-guard.d.ts +0 -12
  140. package/dist/bounded-execution/wall-clock-guard.d.ts.map +0 -1
  141. package/dist/bounded-execution/wall-clock-guard.js +0 -27
  142. package/dist/bounded-execution/wall-clock-guard.js.map +0 -1
  143. package/dist/config/canonical-model-identity.d.ts +0 -9
  144. package/dist/config/canonical-model-identity.d.ts.map +0 -1
  145. package/dist/config/canonical-model-identity.js +0 -54
  146. package/dist/config/canonical-model-identity.js.map +0 -1
  147. package/dist/journal/default-schema.d.ts +0 -2
  148. package/dist/journal/default-schema.d.ts.map +0 -1
  149. package/dist/journal/default-schema.js +0 -27
  150. package/dist/journal/default-schema.js.map +0 -1
  151. package/dist/journal/types.d.ts +0 -22
  152. package/dist/journal/types.d.ts.map +0 -1
  153. package/dist/journal/types.js +0 -5
  154. package/dist/journal/types.js.map +0 -1
  155. package/dist/lifecycle/annotate-parser.d.ts +0 -11
  156. package/dist/lifecycle/annotate-parser.d.ts.map +0 -1
  157. package/dist/lifecycle/annotate-parser.js +0 -74
  158. package/dist/lifecycle/annotate-parser.js.map +0 -1
  159. package/dist/lifecycle/annotate-prompts.d.ts +0 -9
  160. package/dist/lifecycle/annotate-prompts.d.ts.map +0 -1
  161. package/dist/lifecycle/annotate-prompts.js +0 -95
  162. package/dist/lifecycle/annotate-prompts.js.map +0 -1
  163. package/dist/lifecycle/auto-commit.d.ts +0 -3
  164. package/dist/lifecycle/auto-commit.d.ts.map +0 -1
  165. package/dist/lifecycle/auto-commit.js +0 -5
  166. package/dist/lifecycle/auto-commit.js.map +0 -1
  167. package/dist/lifecycle/auto-register-context-block.d.ts +0 -11
  168. package/dist/lifecycle/auto-register-context-block.d.ts.map +0 -1
  169. package/dist/lifecycle/auto-register-context-block.js +0 -18
  170. package/dist/lifecycle/auto-register-context-block.js.map +0 -1
  171. package/dist/lifecycle/build-cancelled-result.d.ts +0 -11
  172. package/dist/lifecycle/build-cancelled-result.d.ts.map +0 -1
  173. package/dist/lifecycle/build-cancelled-result.js +0 -25
  174. package/dist/lifecycle/build-cancelled-result.js.map +0 -1
  175. package/dist/lifecycle/derive-completion.d.ts +0 -24
  176. package/dist/lifecycle/derive-completion.d.ts.map +0 -1
  177. package/dist/lifecycle/derive-completion.js +0 -66
  178. package/dist/lifecycle/derive-completion.js.map +0 -1
  179. package/dist/lifecycle/diff-tracker.d.ts +0 -88
  180. package/dist/lifecycle/diff-tracker.d.ts.map +0 -1
  181. package/dist/lifecycle/diff-tracker.js +0 -429
  182. package/dist/lifecycle/diff-tracker.js.map +0 -1
  183. package/dist/lifecycle/executor-output-types.d.ts +0 -53
  184. package/dist/lifecycle/executor-output-types.d.ts.map +0 -1
  185. package/dist/lifecycle/executor-output-types.js +0 -2
  186. package/dist/lifecycle/executor-output-types.js.map +0 -1
  187. package/dist/lifecycle/file-confinement-check.d.ts +0 -17
  188. package/dist/lifecycle/file-confinement-check.d.ts.map +0 -1
  189. package/dist/lifecycle/file-confinement-check.js +0 -44
  190. package/dist/lifecycle/file-confinement-check.js.map +0 -1
  191. package/dist/lifecycle/findings-parser.d.ts +0 -18
  192. package/dist/lifecycle/findings-parser.d.ts.map +0 -1
  193. package/dist/lifecycle/findings-parser.js +0 -143
  194. package/dist/lifecycle/findings-parser.js.map +0 -1
  195. package/dist/lifecycle/git-toplevel.d.ts +0 -12
  196. package/dist/lifecycle/git-toplevel.d.ts.map +0 -1
  197. package/dist/lifecycle/git-toplevel.js +0 -52
  198. package/dist/lifecycle/git-toplevel.js.map +0 -1
  199. package/dist/lifecycle/handlers/annotate-stage.d.ts +0 -35
  200. package/dist/lifecycle/handlers/annotate-stage.d.ts.map +0 -1
  201. package/dist/lifecycle/handlers/annotate-stage.js +0 -360
  202. package/dist/lifecycle/handlers/annotate-stage.js.map +0 -1
  203. package/dist/lifecycle/handlers/baseline-handlers.d.ts +0 -12
  204. package/dist/lifecycle/handlers/baseline-handlers.d.ts.map +0 -1
  205. package/dist/lifecycle/handlers/baseline-handlers.js +0 -281
  206. package/dist/lifecycle/handlers/baseline-handlers.js.map +0 -1
  207. package/dist/lifecycle/handlers/compose-commit-message.d.ts +0 -15
  208. package/dist/lifecycle/handlers/compose-commit-message.d.ts.map +0 -1
  209. package/dist/lifecycle/handlers/compose-commit-message.js +0 -227
  210. package/dist/lifecycle/handlers/compose-commit-message.js.map +0 -1
  211. package/dist/lifecycle/handlers/enrich-runtime-result.d.ts +0 -3
  212. package/dist/lifecycle/handlers/enrich-runtime-result.d.ts.map +0 -1
  213. package/dist/lifecycle/handlers/enrich-runtime-result.js +0 -239
  214. package/dist/lifecycle/handlers/enrich-runtime-result.js.map +0 -1
  215. package/dist/lifecycle/handlers/git-commit-handler.d.ts +0 -4
  216. package/dist/lifecycle/handlers/git-commit-handler.d.ts.map +0 -1
  217. package/dist/lifecycle/handlers/git-commit-handler.js +0 -202
  218. package/dist/lifecycle/handlers/git-commit-handler.js.map +0 -1
  219. package/dist/lifecycle/handlers/implement-stage.d.ts +0 -10
  220. package/dist/lifecycle/handlers/implement-stage.d.ts.map +0 -1
  221. package/dist/lifecycle/handlers/implement-stage.js +0 -228
  222. package/dist/lifecycle/handlers/implement-stage.js.map +0 -1
  223. package/dist/lifecycle/handlers/journal-review-prompt.d.ts +0 -7
  224. package/dist/lifecycle/handlers/journal-review-prompt.d.ts.map +0 -1
  225. package/dist/lifecycle/handlers/journal-review-prompt.js +0 -54
  226. package/dist/lifecycle/handlers/journal-review-prompt.js.map +0 -1
  227. package/dist/lifecycle/handlers/parse-review-report.d.ts +0 -15
  228. package/dist/lifecycle/handlers/parse-review-report.d.ts.map +0 -1
  229. package/dist/lifecycle/handlers/parse-review-report.js +0 -40
  230. package/dist/lifecycle/handlers/parse-review-report.js.map +0 -1
  231. package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts +0 -13
  232. package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts.map +0 -1
  233. package/dist/lifecycle/handlers/prepare-execution-context-handler.js +0 -83
  234. package/dist/lifecycle/handlers/prepare-execution-context-handler.js.map +0 -1
  235. package/dist/lifecycle/handlers/quality-review-prompt.d.ts +0 -7
  236. package/dist/lifecycle/handlers/quality-review-prompt.d.ts.map +0 -1
  237. package/dist/lifecycle/handlers/quality-review-prompt.js +0 -50
  238. package/dist/lifecycle/handlers/quality-review-prompt.js.map +0 -1
  239. package/dist/lifecycle/handlers/read-route-implementer.d.ts +0 -52
  240. package/dist/lifecycle/handlers/read-route-implementer.d.ts.map +0 -1
  241. package/dist/lifecycle/handlers/read-route-implementer.js +0 -109
  242. package/dist/lifecycle/handlers/read-route-implementer.js.map +0 -1
  243. package/dist/lifecycle/handlers/register-context-block-handlers.d.ts +0 -4
  244. package/dist/lifecycle/handlers/register-context-block-handlers.d.ts.map +0 -1
  245. package/dist/lifecycle/handlers/register-context-block-handlers.js +0 -35
  246. package/dist/lifecycle/handlers/register-context-block-handlers.js.map +0 -1
  247. package/dist/lifecycle/handlers/review-stage.d.ts +0 -4
  248. package/dist/lifecycle/handlers/review-stage.d.ts.map +0 -1
  249. package/dist/lifecycle/handlers/review-stage.js +0 -277
  250. package/dist/lifecycle/handlers/review-stage.js.map +0 -1
  251. package/dist/lifecycle/handlers/rework-prompt.d.ts +0 -6
  252. package/dist/lifecycle/handlers/rework-prompt.d.ts.map +0 -1
  253. package/dist/lifecycle/handlers/rework-prompt.js +0 -18
  254. package/dist/lifecycle/handlers/rework-prompt.js.map +0 -1
  255. package/dist/lifecycle/handlers/rework-stage.d.ts +0 -4
  256. package/dist/lifecycle/handlers/rework-stage.d.ts.map +0 -1
  257. package/dist/lifecycle/handlers/rework-stage.js +0 -191
  258. package/dist/lifecycle/handlers/rework-stage.js.map +0 -1
  259. package/dist/lifecycle/handlers/spec-review-prompt.d.ts +0 -8
  260. package/dist/lifecycle/handlers/spec-review-prompt.d.ts.map +0 -1
  261. package/dist/lifecycle/handlers/spec-review-prompt.js +0 -47
  262. package/dist/lifecycle/handlers/spec-review-prompt.js.map +0 -1
  263. package/dist/lifecycle/handlers/terminal-handlers.d.ts +0 -61
  264. package/dist/lifecycle/handlers/terminal-handlers.d.ts.map +0 -1
  265. package/dist/lifecycle/handlers/terminal-handlers.js +0 -327
  266. package/dist/lifecycle/handlers/terminal-handlers.js.map +0 -1
  267. package/dist/lifecycle/handlers/tier-policy.d.ts +0 -11
  268. package/dist/lifecycle/handlers/tier-policy.d.ts.map +0 -1
  269. package/dist/lifecycle/handlers/tier-policy.js +0 -12
  270. package/dist/lifecycle/handlers/tier-policy.js.map +0 -1
  271. package/dist/lifecycle/lifecycle-context.d.ts +0 -109
  272. package/dist/lifecycle/lifecycle-context.d.ts.map +0 -1
  273. package/dist/lifecycle/lifecycle-context.js +0 -2
  274. package/dist/lifecycle/lifecycle-context.js.map +0 -1
  275. package/dist/lifecycle/lifecycle-dispatcher.d.ts +0 -35
  276. package/dist/lifecycle/lifecycle-dispatcher.d.ts.map +0 -1
  277. package/dist/lifecycle/lifecycle-dispatcher.js +0 -64
  278. package/dist/lifecycle/lifecycle-dispatcher.js.map +0 -1
  279. package/dist/lifecycle/lifecycle-driver.d.ts +0 -16
  280. package/dist/lifecycle/lifecycle-driver.d.ts.map +0 -1
  281. package/dist/lifecycle/lifecycle-driver.js +0 -334
  282. package/dist/lifecycle/lifecycle-driver.js.map +0 -1
  283. package/dist/lifecycle/merge-stage-stats.d.ts +0 -62
  284. package/dist/lifecycle/merge-stage-stats.d.ts.map +0 -1
  285. package/dist/lifecycle/merge-stage-stats.js +0 -136
  286. package/dist/lifecycle/merge-stage-stats.js.map +0 -1
  287. package/dist/lifecycle/normalize-output-targets.d.ts +0 -2
  288. package/dist/lifecycle/normalize-output-targets.d.ts.map +0 -1
  289. package/dist/lifecycle/normalize-output-targets.js +0 -14
  290. package/dist/lifecycle/normalize-output-targets.js.map +0 -1
  291. package/dist/lifecycle/perform-implementation.d.ts +0 -3
  292. package/dist/lifecycle/perform-implementation.d.ts.map +0 -1
  293. package/dist/lifecycle/perform-implementation.js +0 -371
  294. package/dist/lifecycle/perform-implementation.js.map +0 -1
  295. package/dist/lifecycle/read-only-subtype-spec.d.ts +0 -18
  296. package/dist/lifecycle/read-only-subtype-spec.d.ts.map +0 -1
  297. package/dist/lifecycle/read-only-subtype-spec.js +0 -2
  298. package/dist/lifecycle/read-only-subtype-spec.js.map +0 -1
  299. package/dist/lifecycle/repo-commit-lock.d.ts +0 -20
  300. package/dist/lifecycle/repo-commit-lock.d.ts.map +0 -1
  301. package/dist/lifecycle/repo-commit-lock.js +0 -40
  302. package/dist/lifecycle/repo-commit-lock.js.map +0 -1
  303. package/dist/lifecycle/review-verdict-mapping.d.ts +0 -16
  304. package/dist/lifecycle/review-verdict-mapping.d.ts.map +0 -1
  305. package/dist/lifecycle/review-verdict-mapping.js +0 -24
  306. package/dist/lifecycle/review-verdict-mapping.js.map +0 -1
  307. package/dist/lifecycle/shared-compute.d.ts +0 -14
  308. package/dist/lifecycle/shared-compute.d.ts.map +0 -1
  309. package/dist/lifecycle/shared-compute.js +0 -51
  310. package/dist/lifecycle/shared-compute.js.map +0 -1
  311. package/dist/lifecycle/stage-idle-tracker.d.ts +0 -14
  312. package/dist/lifecycle/stage-idle-tracker.d.ts.map +0 -1
  313. package/dist/lifecycle/stage-idle-tracker.js +0 -17
  314. package/dist/lifecycle/stage-idle-tracker.js.map +0 -1
  315. package/dist/lifecycle/stage-io.d.ts +0 -157
  316. package/dist/lifecycle/stage-io.d.ts.map +0 -1
  317. package/dist/lifecycle/stage-io.js +0 -20
  318. package/dist/lifecycle/stage-io.js.map +0 -1
  319. package/dist/lifecycle/stage-labels.d.ts +0 -7
  320. package/dist/lifecycle/stage-labels.d.ts.map +0 -1
  321. package/dist/lifecycle/stage-labels.js +0 -19
  322. package/dist/lifecycle/stage-labels.js.map +0 -1
  323. package/dist/lifecycle/stage-plan-builder.d.ts +0 -4
  324. package/dist/lifecycle/stage-plan-builder.d.ts.map +0 -1
  325. package/dist/lifecycle/stage-plan-builder.js +0 -164
  326. package/dist/lifecycle/stage-plan-builder.js.map +0 -1
  327. package/dist/lifecycle/stage-plan-types.d.ts +0 -131
  328. package/dist/lifecycle/stage-plan-types.d.ts.map +0 -1
  329. package/dist/lifecycle/stage-plan-types.js +0 -28
  330. package/dist/lifecycle/stage-plan-types.js.map +0 -1
  331. package/dist/lifecycle/stage-progression.d.ts +0 -6
  332. package/dist/lifecycle/stage-progression.d.ts.map +0 -1
  333. package/dist/lifecycle/stage-progression.js +0 -100
  334. package/dist/lifecycle/stage-progression.js.map +0 -1
  335. package/dist/lifecycle/task-executor.d.ts +0 -24
  336. package/dist/lifecycle/task-executor.d.ts.map +0 -1
  337. package/dist/lifecycle/task-executor.js +0 -320
  338. package/dist/lifecycle/task-executor.js.map +0 -1
  339. package/dist/lifecycle/task-runner.d.ts +0 -66
  340. package/dist/lifecycle/task-runner.d.ts.map +0 -1
  341. package/dist/lifecycle/task-runner.js +0 -332
  342. package/dist/lifecycle/task-runner.js.map +0 -1
  343. package/dist/lifecycle/tool-category.d.ts +0 -2
  344. package/dist/lifecycle/tool-category.d.ts.map +0 -1
  345. package/dist/lifecycle/tool-category.js +0 -6
  346. package/dist/lifecycle/tool-category.js.map +0 -1
  347. package/dist/lifecycle/tool-config-types.d.ts +0 -32
  348. package/dist/lifecycle/tool-config-types.d.ts.map +0 -1
  349. package/dist/lifecycle/tool-config-types.js +0 -2
  350. package/dist/lifecycle/tool-config-types.js.map +0 -1
  351. package/dist/lifecycle/warm-followup.d.ts +0 -3
  352. package/dist/lifecycle/warm-followup.d.ts.map +0 -1
  353. package/dist/lifecycle/warm-followup.js +0 -16
  354. package/dist/lifecycle/warm-followup.js.map +0 -1
  355. package/dist/lifecycle/worker-output-contract.d.ts +0 -22
  356. package/dist/lifecycle/worker-output-contract.d.ts.map +0 -1
  357. package/dist/lifecycle/worker-output-contract.js +0 -91
  358. package/dist/lifecycle/worker-output-contract.js.map +0 -1
  359. package/dist/providers/assemble-run-result.d.ts +0 -17
  360. package/dist/providers/assemble-run-result.d.ts.map +0 -1
  361. package/dist/providers/assemble-run-result.js +0 -52
  362. package/dist/providers/assemble-run-result.js.map +0 -1
  363. package/dist/providers/skill-resolver.d.ts +0 -17
  364. package/dist/providers/skill-resolver.d.ts.map +0 -1
  365. package/dist/providers/skill-resolver.js +0 -123
  366. package/dist/providers/skill-resolver.js.map +0 -1
  367. package/dist/reporting/batch-persister.d.ts +0 -4
  368. package/dist/reporting/batch-persister.d.ts.map +0 -1
  369. package/dist/reporting/batch-persister.js +0 -11
  370. package/dist/reporting/batch-persister.js.map +0 -1
  371. package/dist/reporting/commit-stage-runner.d.ts +0 -12
  372. package/dist/reporting/commit-stage-runner.d.ts.map +0 -1
  373. package/dist/reporting/commit-stage-runner.js +0 -43
  374. package/dist/reporting/commit-stage-runner.js.map +0 -1
  375. package/dist/reporting/derive-investigate-status.d.ts +0 -15
  376. package/dist/reporting/derive-investigate-status.d.ts.map +0 -1
  377. package/dist/reporting/derive-investigate-status.js +0 -23
  378. package/dist/reporting/derive-investigate-status.js.map +0 -1
  379. package/dist/reporting/extract-fenced-json.d.ts +0 -7
  380. package/dist/reporting/extract-fenced-json.d.ts.map +0 -1
  381. package/dist/reporting/extract-fenced-json.js +0 -17
  382. package/dist/reporting/extract-fenced-json.js.map +0 -1
  383. package/dist/reporting/findings-headline.d.ts +0 -12
  384. package/dist/reporting/findings-headline.d.ts.map +0 -1
  385. package/dist/reporting/findings-headline.js +0 -40
  386. package/dist/reporting/findings-headline.js.map +0 -1
  387. package/dist/reporting/findings-outcome.d.ts +0 -13
  388. package/dist/reporting/findings-outcome.d.ts.map +0 -1
  389. package/dist/reporting/findings-outcome.js +0 -22
  390. package/dist/reporting/findings-outcome.js.map +0 -1
  391. package/dist/reporting/headline-composer.d.ts +0 -29
  392. package/dist/reporting/headline-composer.d.ts.map +0 -1
  393. package/dist/reporting/headline-composer.js +0 -10
  394. package/dist/reporting/headline-composer.js.map +0 -1
  395. package/dist/reporting/headline-templates/delegate.d.ts +0 -3
  396. package/dist/reporting/headline-templates/delegate.d.ts.map +0 -1
  397. package/dist/reporting/headline-templates/delegate.js +0 -42
  398. package/dist/reporting/headline-templates/delegate.js.map +0 -1
  399. package/dist/reporting/headline-templates/execute-plan.d.ts +0 -3
  400. package/dist/reporting/headline-templates/execute-plan.d.ts.map +0 -1
  401. package/dist/reporting/headline-templates/execute-plan.js +0 -26
  402. package/dist/reporting/headline-templates/execute-plan.js.map +0 -1
  403. package/dist/reporting/headline-templates/investigate.d.ts +0 -13
  404. package/dist/reporting/headline-templates/investigate.d.ts.map +0 -1
  405. package/dist/reporting/headline-templates/investigate.js +0 -53
  406. package/dist/reporting/headline-templates/investigate.js.map +0 -1
  407. package/dist/reporting/headline-templates/journal-recall.d.ts +0 -3
  408. package/dist/reporting/headline-templates/journal-recall.d.ts.map +0 -1
  409. package/dist/reporting/headline-templates/journal-recall.js +0 -9
  410. package/dist/reporting/headline-templates/journal-recall.js.map +0 -1
  411. package/dist/reporting/headline-templates/journal.d.ts +0 -3
  412. package/dist/reporting/headline-templates/journal.d.ts.map +0 -1
  413. package/dist/reporting/headline-templates/journal.js +0 -17
  414. package/dist/reporting/headline-templates/journal.js.map +0 -1
  415. package/dist/reporting/headline-templates/research.d.ts +0 -3
  416. package/dist/reporting/headline-templates/research.d.ts.map +0 -1
  417. package/dist/reporting/headline-templates/research.js +0 -22
  418. package/dist/reporting/headline-templates/research.js.map +0 -1
  419. package/dist/reporting/headline-text.d.ts +0 -36
  420. package/dist/reporting/headline-text.d.ts.map +0 -1
  421. package/dist/reporting/headline-text.js +0 -73
  422. package/dist/reporting/headline-text.js.map +0 -1
  423. package/dist/reporting/report-parser-slots/delegate-report.d.ts +0 -8
  424. package/dist/reporting/report-parser-slots/delegate-report.d.ts.map +0 -1
  425. package/dist/reporting/report-parser-slots/delegate-report.js +0 -12
  426. package/dist/reporting/report-parser-slots/delegate-report.js.map +0 -1
  427. package/dist/reporting/report-parser-slots/execute-plan-report.d.ts +0 -11
  428. package/dist/reporting/report-parser-slots/execute-plan-report.d.ts.map +0 -1
  429. package/dist/reporting/report-parser-slots/execute-plan-report.js +0 -7
  430. package/dist/reporting/report-parser-slots/execute-plan-report.js.map +0 -1
  431. package/dist/reporting/report-parser-slots/investigate-report.d.ts +0 -52
  432. package/dist/reporting/report-parser-slots/investigate-report.d.ts.map +0 -1
  433. package/dist/reporting/report-parser-slots/investigate-report.js +0 -307
  434. package/dist/reporting/report-parser-slots/investigate-report.js.map +0 -1
  435. package/dist/reporting/report-parser-slots/journal-report.d.ts +0 -19
  436. package/dist/reporting/report-parser-slots/journal-report.d.ts.map +0 -1
  437. package/dist/reporting/report-parser-slots/journal-report.js +0 -13
  438. package/dist/reporting/report-parser-slots/journal-report.js.map +0 -1
  439. package/dist/reporting/report-parser-slots/no-structured-report.d.ts +0 -10
  440. package/dist/reporting/report-parser-slots/no-structured-report.d.ts.map +0 -1
  441. package/dist/reporting/report-parser-slots/no-structured-report.js +0 -13
  442. package/dist/reporting/report-parser-slots/no-structured-report.js.map +0 -1
  443. package/dist/reporting/report-parser-slots/research-report.d.ts +0 -31
  444. package/dist/reporting/report-parser-slots/research-report.d.ts.map +0 -1
  445. package/dist/reporting/report-parser-slots/research-report.js +0 -50
  446. package/dist/reporting/report-parser-slots/research-report.js.map +0 -1
  447. package/dist/reporting/response-envelope-builder.d.ts +0 -32
  448. package/dist/reporting/response-envelope-builder.d.ts.map +0 -1
  449. package/dist/reporting/response-envelope-builder.js +0 -26
  450. package/dist/reporting/response-envelope-builder.js.map +0 -1
  451. package/dist/reporting/severity.d.ts +0 -62
  452. package/dist/reporting/severity.d.ts.map +0 -1
  453. package/dist/reporting/severity.js +0 -93
  454. package/dist/reporting/severity.js.map +0 -1
  455. package/dist/reporting/structured-report-parser.d.ts +0 -9
  456. package/dist/reporting/structured-report-parser.d.ts.map +0 -1
  457. package/dist/reporting/structured-report-parser.js +0 -8
  458. package/dist/reporting/structured-report-parser.js.map +0 -1
  459. package/dist/reporting/terminal-block-registrar.d.ts +0 -14
  460. package/dist/reporting/terminal-block-registrar.d.ts.map +0 -1
  461. package/dist/reporting/terminal-block-registrar.js +0 -17
  462. package/dist/reporting/terminal-block-registrar.js.map +0 -1
  463. package/dist/reporting/terminal-report-markdown.d.ts +0 -13
  464. package/dist/reporting/terminal-report-markdown.d.ts.map +0 -1
  465. package/dist/reporting/terminal-report-markdown.js +0 -31
  466. package/dist/reporting/terminal-report-markdown.js.map +0 -1
  467. package/dist/research/research-pre-loop.d.ts +0 -22
  468. package/dist/research/research-pre-loop.d.ts.map +0 -1
  469. package/dist/research/research-pre-loop.js +0 -50
  470. package/dist/research/research-pre-loop.js.map +0 -1
  471. package/dist/routing/read-route-criteria.d.ts +0 -36
  472. package/dist/routing/read-route-criteria.d.ts.map +0 -1
  473. package/dist/routing/read-route-criteria.js +0 -71
  474. package/dist/routing/read-route-criteria.js.map +0 -1
  475. package/dist/stores/batch-cache.d.ts +0 -29
  476. package/dist/stores/batch-cache.d.ts.map +0 -1
  477. package/dist/stores/batch-cache.js +0 -89
  478. package/dist/stores/batch-cache.js.map +0 -1
  479. package/dist/stores/batch-registry.d.ts +0 -138
  480. package/dist/stores/batch-registry.d.ts.map +0 -1
  481. package/dist/stores/batch-registry.js +0 -205
  482. package/dist/stores/batch-registry.js.map +0 -1
  483. package/dist/tool-surface/register-all-tools.d.ts +0 -4
  484. package/dist/tool-surface/register-all-tools.d.ts.map +0 -1
  485. package/dist/tool-surface/register-all-tools.js +0 -35
  486. package/dist/tool-surface/register-all-tools.js.map +0 -1
  487. package/dist/tool-surface/tool-surface-registry.d.ts +0 -28
  488. package/dist/tool-surface/tool-surface-registry.d.ts.map +0 -1
  489. package/dist/tool-surface/tool-surface-registry.js +0 -16
  490. package/dist/tool-surface/tool-surface-registry.js.map +0 -1
  491. package/dist/tools/audit/brief-slot.d.ts +0 -15
  492. package/dist/tools/audit/brief-slot.d.ts.map +0 -1
  493. package/dist/tools/audit/brief-slot.js +0 -69
  494. package/dist/tools/audit/brief-slot.js.map +0 -1
  495. package/dist/tools/audit/implementer-criteria.d.ts +0 -62
  496. package/dist/tools/audit/implementer-criteria.d.ts.map +0 -1
  497. package/dist/tools/audit/implementer-criteria.js +0 -121
  498. package/dist/tools/audit/implementer-criteria.js.map +0 -1
  499. package/dist/tools/audit/plan-audit-criteria.d.ts +0 -35
  500. package/dist/tools/audit/plan-audit-criteria.d.ts.map +0 -1
  501. package/dist/tools/audit/plan-audit-criteria.js +0 -159
  502. package/dist/tools/audit/plan-audit-criteria.js.map +0 -1
  503. package/dist/tools/audit/schema.d.ts +0 -61
  504. package/dist/tools/audit/schema.d.ts.map +0 -1
  505. package/dist/tools/audit/schema.js +0 -21
  506. package/dist/tools/audit/schema.js.map +0 -1
  507. package/dist/tools/audit/skill-audit-criteria.d.ts +0 -9
  508. package/dist/tools/audit/skill-audit-criteria.d.ts.map +0 -1
  509. package/dist/tools/audit/skill-audit-criteria.js +0 -52
  510. package/dist/tools/audit/skill-audit-criteria.js.map +0 -1
  511. package/dist/tools/audit/spec-audit-criteria.d.ts +0 -9
  512. package/dist/tools/audit/spec-audit-criteria.d.ts.map +0 -1
  513. package/dist/tools/audit/spec-audit-criteria.js +0 -55
  514. package/dist/tools/audit/spec-audit-criteria.js.map +0 -1
  515. package/dist/tools/audit/subtypes.d.ts +0 -4
  516. package/dist/tools/audit/subtypes.d.ts.map +0 -1
  517. package/dist/tools/audit/subtypes.js +0 -69
  518. package/dist/tools/audit/subtypes.js.map +0 -1
  519. package/dist/tools/audit/tool-config.d.ts +0 -7
  520. package/dist/tools/audit/tool-config.d.ts.map +0 -1
  521. package/dist/tools/audit/tool-config.js +0 -60
  522. package/dist/tools/audit/tool-config.js.map +0 -1
  523. package/dist/tools/criteria-types.d.ts +0 -27
  524. package/dist/tools/criteria-types.d.ts.map +0 -1
  525. package/dist/tools/criteria-types.js +0 -25
  526. package/dist/tools/criteria-types.js.map +0 -1
  527. package/dist/tools/debug/brief-slot.d.ts +0 -15
  528. package/dist/tools/debug/brief-slot.d.ts.map +0 -1
  529. package/dist/tools/debug/brief-slot.js +0 -10
  530. package/dist/tools/debug/brief-slot.js.map +0 -1
  531. package/dist/tools/debug/implementer-criteria.d.ts +0 -45
  532. package/dist/tools/debug/implementer-criteria.d.ts.map +0 -1
  533. package/dist/tools/debug/implementer-criteria.js +0 -97
  534. package/dist/tools/debug/implementer-criteria.js.map +0 -1
  535. package/dist/tools/debug/schema.d.ts +0 -60
  536. package/dist/tools/debug/schema.d.ts.map +0 -1
  537. package/dist/tools/debug/schema.js +0 -17
  538. package/dist/tools/debug/schema.js.map +0 -1
  539. package/dist/tools/debug/subtypes.d.ts +0 -4
  540. package/dist/tools/debug/subtypes.d.ts.map +0 -1
  541. package/dist/tools/debug/subtypes.js +0 -26
  542. package/dist/tools/debug/subtypes.js.map +0 -1
  543. package/dist/tools/debug/tool-config.d.ts +0 -7
  544. package/dist/tools/debug/tool-config.d.ts.map +0 -1
  545. package/dist/tools/debug/tool-config.js +0 -55
  546. package/dist/tools/debug/tool-config.js.map +0 -1
  547. package/dist/tools/delegate/brief-slot.d.ts +0 -17
  548. package/dist/tools/delegate/brief-slot.d.ts.map +0 -1
  549. package/dist/tools/delegate/brief-slot.js +0 -55
  550. package/dist/tools/delegate/brief-slot.js.map +0 -1
  551. package/dist/tools/delegate/implementer-criteria.d.ts +0 -53
  552. package/dist/tools/delegate/implementer-criteria.d.ts.map +0 -1
  553. package/dist/tools/delegate/implementer-criteria.js +0 -99
  554. package/dist/tools/delegate/implementer-criteria.js.map +0 -1
  555. package/dist/tools/delegate/schema.d.ts +0 -74
  556. package/dist/tools/delegate/schema.d.ts.map +0 -1
  557. package/dist/tools/delegate/schema.js +0 -23
  558. package/dist/tools/delegate/schema.js.map +0 -1
  559. package/dist/tools/delegate/tool-config.d.ts +0 -7
  560. package/dist/tools/delegate/tool-config.d.ts.map +0 -1
  561. package/dist/tools/delegate/tool-config.js +0 -44
  562. package/dist/tools/delegate/tool-config.js.map +0 -1
  563. package/dist/tools/execute-plan/barrel.d.ts +0 -2
  564. package/dist/tools/execute-plan/barrel.d.ts.map +0 -1
  565. package/dist/tools/execute-plan/barrel.js +0 -7
  566. package/dist/tools/execute-plan/barrel.js.map +0 -1
  567. package/dist/tools/execute-plan/brief-slot.d.ts +0 -19
  568. package/dist/tools/execute-plan/brief-slot.d.ts.map +0 -1
  569. package/dist/tools/execute-plan/brief-slot.js +0 -80
  570. package/dist/tools/execute-plan/brief-slot.js.map +0 -1
  571. package/dist/tools/execute-plan/implementer-criteria.d.ts +0 -57
  572. package/dist/tools/execute-plan/implementer-criteria.d.ts.map +0 -1
  573. package/dist/tools/execute-plan/implementer-criteria.js +0 -108
  574. package/dist/tools/execute-plan/implementer-criteria.js.map +0 -1
  575. package/dist/tools/execute-plan/plan-extractor.d.ts +0 -21
  576. package/dist/tools/execute-plan/plan-extractor.d.ts.map +0 -1
  577. package/dist/tools/execute-plan/plan-extractor.js +0 -96
  578. package/dist/tools/execute-plan/plan-extractor.js.map +0 -1
  579. package/dist/tools/execute-plan/tool-config.d.ts +0 -68
  580. package/dist/tools/execute-plan/tool-config.d.ts.map +0 -1
  581. package/dist/tools/execute-plan/tool-config.js +0 -107
  582. package/dist/tools/execute-plan/tool-config.js.map +0 -1
  583. package/dist/tools/index.d.ts +0 -8
  584. package/dist/tools/index.d.ts.map +0 -1
  585. package/dist/tools/index.js +0 -14
  586. package/dist/tools/index.js.map +0 -1
  587. package/dist/tools/investigate/brief-slot.d.ts +0 -15
  588. package/dist/tools/investigate/brief-slot.d.ts.map +0 -1
  589. package/dist/tools/investigate/brief-slot.js +0 -9
  590. package/dist/tools/investigate/brief-slot.js.map +0 -1
  591. package/dist/tools/investigate/implementer-criteria.d.ts +0 -52
  592. package/dist/tools/investigate/implementer-criteria.d.ts.map +0 -1
  593. package/dist/tools/investigate/implementer-criteria.js +0 -106
  594. package/dist/tools/investigate/implementer-criteria.js.map +0 -1
  595. package/dist/tools/investigate/schema.d.ts +0 -62
  596. package/dist/tools/investigate/schema.d.ts.map +0 -1
  597. package/dist/tools/investigate/schema.js +0 -13
  598. package/dist/tools/investigate/schema.js.map +0 -1
  599. package/dist/tools/investigate/subtypes.d.ts +0 -4
  600. package/dist/tools/investigate/subtypes.d.ts.map +0 -1
  601. package/dist/tools/investigate/subtypes.js +0 -26
  602. package/dist/tools/investigate/subtypes.js.map +0 -1
  603. package/dist/tools/investigate/tool-config.d.ts +0 -8
  604. package/dist/tools/investigate/tool-config.d.ts.map +0 -1
  605. package/dist/tools/investigate/tool-config.js +0 -68
  606. package/dist/tools/investigate/tool-config.js.map +0 -1
  607. package/dist/tools/journal/recall/brief-slot.d.ts +0 -7
  608. package/dist/tools/journal/recall/brief-slot.d.ts.map +0 -1
  609. package/dist/tools/journal/recall/brief-slot.js +0 -5
  610. package/dist/tools/journal/recall/brief-slot.js.map +0 -1
  611. package/dist/tools/journal/recall/implementer-criteria.d.ts +0 -9
  612. package/dist/tools/journal/recall/implementer-criteria.d.ts.map +0 -1
  613. package/dist/tools/journal/recall/implementer-criteria.js +0 -23
  614. package/dist/tools/journal/recall/implementer-criteria.js.map +0 -1
  615. package/dist/tools/journal/recall/schema.d.ts +0 -54
  616. package/dist/tools/journal/recall/schema.d.ts.map +0 -1
  617. package/dist/tools/journal/recall/schema.js +0 -10
  618. package/dist/tools/journal/recall/schema.js.map +0 -1
  619. package/dist/tools/journal/recall/subtypes.d.ts +0 -4
  620. package/dist/tools/journal/recall/subtypes.d.ts.map +0 -1
  621. package/dist/tools/journal/recall/subtypes.js +0 -25
  622. package/dist/tools/journal/recall/subtypes.js.map +0 -1
  623. package/dist/tools/journal/recall/tool-config.d.ts +0 -8
  624. package/dist/tools/journal/recall/tool-config.d.ts.map +0 -1
  625. package/dist/tools/journal/recall/tool-config.js +0 -46
  626. package/dist/tools/journal/recall/tool-config.js.map +0 -1
  627. package/dist/tools/journal/record/brief-slot.d.ts +0 -12
  628. package/dist/tools/journal/record/brief-slot.d.ts.map +0 -1
  629. package/dist/tools/journal/record/brief-slot.js +0 -24
  630. package/dist/tools/journal/record/brief-slot.js.map +0 -1
  631. package/dist/tools/journal/record/implementer-criteria.d.ts +0 -6
  632. package/dist/tools/journal/record/implementer-criteria.d.ts.map +0 -1
  633. package/dist/tools/journal/record/implementer-criteria.js +0 -20
  634. package/dist/tools/journal/record/implementer-criteria.js.map +0 -1
  635. package/dist/tools/journal/record/schema.d.ts +0 -55
  636. package/dist/tools/journal/record/schema.d.ts.map +0 -1
  637. package/dist/tools/journal/record/schema.js +0 -12
  638. package/dist/tools/journal/record/schema.js.map +0 -1
  639. package/dist/tools/journal/record/tool-config.d.ts +0 -7
  640. package/dist/tools/journal/record/tool-config.d.ts.map +0 -1
  641. package/dist/tools/journal/record/tool-config.js +0 -40
  642. package/dist/tools/journal/record/tool-config.js.map +0 -1
  643. package/dist/tools/read-route-prompt.d.ts +0 -113
  644. package/dist/tools/read-route-prompt.d.ts.map +0 -1
  645. package/dist/tools/read-route-prompt.js +0 -86
  646. package/dist/tools/read-route-prompt.js.map +0 -1
  647. package/dist/tools/register-context-block/schema.d.ts +0 -8
  648. package/dist/tools/register-context-block/schema.d.ts.map +0 -1
  649. package/dist/tools/register-context-block/schema.js +0 -7
  650. package/dist/tools/register-context-block/schema.js.map +0 -1
  651. package/dist/tools/register-context-block/tool-config.d.ts +0 -6
  652. package/dist/tools/register-context-block/tool-config.d.ts.map +0 -1
  653. package/dist/tools/register-context-block/tool-config.js +0 -39
  654. package/dist/tools/register-context-block/tool-config.js.map +0 -1
  655. package/dist/tools/research/brief-slot.d.ts +0 -37
  656. package/dist/tools/research/brief-slot.d.ts.map +0 -1
  657. package/dist/tools/research/brief-slot.js +0 -68
  658. package/dist/tools/research/brief-slot.js.map +0 -1
  659. package/dist/tools/research/implementer-criteria.d.ts +0 -13
  660. package/dist/tools/research/implementer-criteria.d.ts.map +0 -1
  661. package/dist/tools/research/implementer-criteria.js +0 -109
  662. package/dist/tools/research/implementer-criteria.js.map +0 -1
  663. package/dist/tools/research/schema.d.ts +0 -11
  664. package/dist/tools/research/schema.d.ts.map +0 -1
  665. package/dist/tools/research/schema.js +0 -59
  666. package/dist/tools/research/schema.js.map +0 -1
  667. package/dist/tools/research/subtypes.d.ts +0 -4
  668. package/dist/tools/research/subtypes.d.ts.map +0 -1
  669. package/dist/tools/research/subtypes.js +0 -25
  670. package/dist/tools/research/subtypes.js.map +0 -1
  671. package/dist/tools/research/tool-config.d.ts +0 -8
  672. package/dist/tools/research/tool-config.d.ts.map +0 -1
  673. package/dist/tools/research/tool-config.js +0 -48
  674. package/dist/tools/research/tool-config.js.map +0 -1
  675. package/dist/tools/research/two-turn-driver.d.ts +0 -16
  676. package/dist/tools/research/two-turn-driver.d.ts.map +0 -1
  677. package/dist/tools/research/two-turn-driver.js +0 -41
  678. package/dist/tools/research/two-turn-driver.js.map +0 -1
  679. package/dist/tools/retry/brief-slot.d.ts +0 -7
  680. package/dist/tools/retry/brief-slot.d.ts.map +0 -1
  681. package/dist/tools/retry/brief-slot.js +0 -2
  682. package/dist/tools/retry/brief-slot.js.map +0 -1
  683. package/dist/tools/retry/schema.d.ts +0 -54
  684. package/dist/tools/retry/schema.d.ts.map +0 -1
  685. package/dist/tools/retry/schema.js +0 -12
  686. package/dist/tools/retry/schema.js.map +0 -1
  687. package/dist/tools/retry/tool-config.d.ts +0 -7
  688. package/dist/tools/retry/tool-config.d.ts.map +0 -1
  689. package/dist/tools/retry/tool-config.js +0 -84
  690. package/dist/tools/retry/tool-config.js.map +0 -1
  691. package/dist/tools/review/brief-slot.d.ts +0 -11
  692. package/dist/tools/review/brief-slot.d.ts.map +0 -1
  693. package/dist/tools/review/brief-slot.js +0 -23
  694. package/dist/tools/review/brief-slot.js.map +0 -1
  695. package/dist/tools/review/implementer-criteria.d.ts +0 -48
  696. package/dist/tools/review/implementer-criteria.d.ts.map +0 -1
  697. package/dist/tools/review/implementer-criteria.js +0 -108
  698. package/dist/tools/review/implementer-criteria.js.map +0 -1
  699. package/dist/tools/review/schema.d.ts +0 -64
  700. package/dist/tools/review/schema.d.ts.map +0 -1
  701. package/dist/tools/review/schema.js +0 -17
  702. package/dist/tools/review/schema.js.map +0 -1
  703. package/dist/tools/review/subtypes.d.ts +0 -4
  704. package/dist/tools/review/subtypes.d.ts.map +0 -1
  705. package/dist/tools/review/subtypes.js +0 -27
  706. package/dist/tools/review/subtypes.js.map +0 -1
  707. package/dist/tools/review/tool-config.d.ts +0 -7
  708. package/dist/tools/review/tool-config.d.ts.map +0 -1
  709. package/dist/tools/review/tool-config.js +0 -94
  710. package/dist/tools/review/tool-config.js.map +0 -1
  711. package/dist/tools/shared-output.d.ts +0 -56
  712. package/dist/tools/shared-output.d.ts.map +0 -1
  713. package/dist/tools/shared-output.js +0 -33
  714. package/dist/tools/shared-output.js.map +0 -1
  715. package/dist/types/review-policy.d.ts +0 -2
  716. package/dist/types/review-policy.d.ts.map +0 -1
  717. package/dist/types/review-policy.js +0 -2
  718. package/dist/types/review-policy.js.map +0 -1
@@ -1,143 +0,0 @@
1
- // v4.4.x — extracts structured findings from one read-route criterion
2
- // turn. Worker emits `## Finding N:` blocks per the format spec; this
3
- // parser converts them into StructuredReport.findings[] entries.
4
- //
5
- // Tolerant by design: LLMs vary heading level (## vs ###), heading noun
6
- // (Finding/Issue/Concern), terminator (colon/period/none), bullet marker
7
- // (- vs *), and bold wrapping (**Severity:**). Strict canonical format is
8
- // preferred, but the parser recovers from common drift so a worker mistake
9
- // becomes a degraded-but-usable result rather than silent data loss.
10
- // `## Finding 1:` (canonical) plus tolerated drift:
11
- // - heading level 2–4 (##, ###, ####)
12
- // - noun: Finding | Issue | Concern (singular only; reviewers use "Concern")
13
- // - optional space, optional bold (**Finding 1:**)
14
- // - terminator: `:`, `.`, `)`, or end-of-line
15
- // Uses [ \t]* (horizontal whitespace) so the regex doesn't cross newlines —
16
- // `\s*` matches newlines and would let `(.*)` consume the following bullet line.
17
- const FINDING_HEADING_RE = /^#{2,4}[ \t]*\**[ \t]*(?:Finding|Issue|Concern)[ \t]+(\d+)\**[ \t]*[:.)]?[ \t]*(.*)$/im;
18
- // Same shape but per-line for the block-splitter (no /m needed when matched line-by-line).
19
- const FINDING_HEADING_LINE_RE = /^#{2,4}[ \t]*\**[ \t]*(?:Finding|Issue|Concern)[ \t]+\d+\b/i;
20
- // `- Severity: high` plus tolerated drift: * bullet, **bold:**, no bullet at all.
21
- const bulletRe = (label) => new RegExp(`^(?:[-*][ \\t]+)?\\**[ \\t]*${label}[ \\t]*\\**[ \\t]*:[ \\t]*(.+)$`, 'im');
22
- const SEVERITY_VALUES = new Set(['critical', 'high', 'medium', 'low']);
23
- export function parseFindings(text, criterionId, legalOutcomes = ['found', 'clean', 'not_applicable'], warnSink = () => { }) {
24
- if (!text || text.trim().length === 0) {
25
- return { findings: [], outcome: 'clean' };
26
- }
27
- const blocks = [];
28
- const lines = text.split('\n');
29
- let current = [];
30
- for (const line of lines) {
31
- if (FINDING_HEADING_LINE_RE.test(line)) {
32
- if (current.length > 0)
33
- blocks.push(current.join('\n'));
34
- current = [line];
35
- }
36
- else if (current.length > 0) {
37
- current.push(line);
38
- }
39
- }
40
- if (current.length > 0)
41
- blocks.push(current.join('\n'));
42
- const findings = [];
43
- for (const block of blocks) {
44
- const headingMatch = block.match(FINDING_HEADING_RE);
45
- const headingNum = headingMatch?.[1] ?? '?';
46
- const headingInline = headingMatch?.[2]?.trim() ?? '';
47
- const headingText = `Finding ${headingNum}: ${headingInline}`;
48
- // Claim can come from a `- Claim:` bullet (reviewer format) OR the inline
49
- // text on the heading line (legacy worker format).
50
- let claim = block.match(bulletRe('Claim'))?.[1]?.trim() ?? '';
51
- if (!claim)
52
- claim = headingInline;
53
- if (claim.startsWith('[N/A]'))
54
- continue;
55
- // A finding with no claim text at all is useless downstream — drop it
56
- // and surface a warning so the operator can spot worker-emission drift.
57
- if (!claim || claim.trim().length === 0) {
58
- warnSink('findings_parser_drop', {
59
- route: criterionId,
60
- droppedFindingHeading: headingText,
61
- reasonCode: 'empty_claim',
62
- });
63
- continue;
64
- }
65
- // Emit warning if claim is empty, but continue processing with empty claim
66
- if (!claim || claim.trim().length === 0) {
67
- warnSink('findings_parser_drop', {
68
- route: criterionId,
69
- droppedFindingHeading: headingText,
70
- reasonCode: 'empty_claim',
71
- });
72
- continue;
73
- }
74
- const sevRaw = block.match(bulletRe('Severity'))?.[1]?.trim().split(/\s+/)[0]?.toLowerCase();
75
- // Emit warning if Severity is missing, but continue with default
76
- if (!sevRaw) {
77
- warnSink('findings_parser_drop', {
78
- route: criterionId,
79
- droppedFindingHeading: headingText,
80
- reasonCode: 'missing_core_bullet',
81
- });
82
- }
83
- // Emit warning if Severity is invalid, but continue with default
84
- const severity = (sevRaw && SEVERITY_VALUES.has(sevRaw))
85
- ? sevRaw
86
- : 'medium';
87
- if (sevRaw && !SEVERITY_VALUES.has(sevRaw)) {
88
- warnSink('findings_parser_drop', {
89
- route: criterionId,
90
- droppedFindingHeading: headingText,
91
- reasonCode: 'invalid_severity',
92
- });
93
- }
94
- const category = block.match(bulletRe('Category'))?.[1]?.trim().split(/\s+/)[0] ?? criterionId;
95
- const evidence = (block.match(bulletRe('Evidence'))?.[1] ?? block.match(bulletRe('Issue'))?.[1])?.trim();
96
- const suggestion = (block.match(bulletRe('Suggestion'))?.[1] ?? block.match(bulletRe('Fix'))?.[1])?.trim();
97
- // Drop for investigate routes if Evidence contains no file:line citation
98
- // ANYWHERE. Workers naturally write `In [src/foo.ts:42] the function …` or
99
- // wrap citations in markdown links — both forms now pass; only evidence
100
- // that is pure prose with no path:line gets dropped.
101
- if (criterionId.startsWith('investigate-') && evidence && !/[\w./-]+:\d+/.test(evidence)) {
102
- warnSink('findings_parser_drop', {
103
- route: criterionId,
104
- droppedFindingHeading: headingText,
105
- reasonCode: 'invalid_evidence_format',
106
- });
107
- continue;
108
- }
109
- const f = { severity, category, claim };
110
- if (evidence)
111
- f.evidence = evidence;
112
- if (suggestion)
113
- f.suggestion = suggestion;
114
- findings.push(f);
115
- }
116
- // Extract outcome. Canonical: `## Outcome\nfound`. Tolerated drift:
117
- // `## Outcome: found` (inline), `### Outcome\nfound` (heading level),
118
- // `**Outcome:** found` (bold bullet), `Outcome: found` (no heading).
119
- // Whichever form, value must be one of the legal-outcome enum literals.
120
- let outcome = findings.length > 0 ? 'found' : 'clean';
121
- // Horizontal-whitespace only on the heading line; newline before the value
122
- // on the next line is explicit. Three alternatives covered:
123
- // 1. `## Outcome\nfound` (heading + next-line value)
124
- // 2. `## Outcome: found` (heading + inline value)
125
- // 3. `Outcome: found` (bullet/bold/plain, no heading)
126
- const OUTCOME_LINE_RE = /^(?:#{2,4}[ \t]*\**[ \t]*Outcome\**[ \t]*[:.]?[ \t]*(\w*)[ \t]*\n[ \t]*(\w*)|(?:[-*][ \t]+)?\**[ \t]*Outcome[ \t]*\**[ \t]*:[ \t]*(\w+))/im;
127
- const m = text.match(OUTCOME_LINE_RE);
128
- if (m) {
129
- const raw = (m[1] || m[2] || m[3] || '').trim().toLowerCase();
130
- if (raw === 'found' || raw === 'clean' || raw === 'not_applicable') {
131
- outcome = raw;
132
- }
133
- // empty / unrecognized → keep the inferred outcome from findings.length
134
- }
135
- // Honor the route's legal-outcome set: if the worker declared a value that's
136
- // illegal for this criterion (e.g. 'not_applicable' on an issue-hunting
137
- // route), fall back to the inferred outcome rather than emit garbage.
138
- if (!legalOutcomes.includes(outcome)) {
139
- outcome = findings.length > 0 ? 'found' : (legalOutcomes[0] ?? 'clean');
140
- }
141
- return { findings, outcome };
142
- }
143
- //# sourceMappingURL=findings-parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"findings-parser.js","sourceRoot":"","sources":["../../src/lifecycle/findings-parser.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- export interface ResolveOptions {
2
- timeoutMs?: number;
3
- }
4
- /**
5
- * Returns the canonical absolute path of the git toplevel for `cwd`, or
6
- * null if `cwd` is not in a git repo, git is unavailable, the directory
7
- * does not exist, or the spawn times out (default 5 s).
8
- *
9
- * Pure function of (cwd, filesystem state). Never throws.
10
- */
11
- export declare function resolveGitToplevel(cwd: string, opts?: ResolveOptions): Promise<string | null>;
12
- //# sourceMappingURL=git-toplevel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-toplevel.d.ts","sourceRoot":"","sources":["../../src/lifecycle/git-toplevel.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmCxB"}
@@ -1,52 +0,0 @@
1
- import { spawn } from 'node:child_process';
2
- /**
3
- * Returns the canonical absolute path of the git toplevel for `cwd`, or
4
- * null if `cwd` is not in a git repo, git is unavailable, the directory
5
- * does not exist, or the spawn times out (default 5 s).
6
- *
7
- * Pure function of (cwd, filesystem state). Never throws.
8
- */
9
- export async function resolveGitToplevel(cwd, opts = {}) {
10
- const timeoutMs = opts.timeoutMs ?? 5000;
11
- return new Promise((resolve) => {
12
- let settled = false;
13
- const settle = (value) => {
14
- if (settled)
15
- return;
16
- settled = true;
17
- resolve(value);
18
- };
19
- let child;
20
- try {
21
- child = spawn('git', ['-C', cwd, 'rev-parse', '--show-toplevel'], {
22
- stdio: ['ignore', 'pipe', 'pipe'],
23
- // windowsHide: suppress the console window Windows opens per spawned
24
- // console binary when the daemon has no attached console. No-op on POSIX.
25
- windowsHide: true,
26
- });
27
- }
28
- catch {
29
- settle(null);
30
- return;
31
- }
32
- let stdout = '';
33
- child.stdout?.on('data', (b) => { stdout += b.toString('utf8'); });
34
- child.stderr?.on('data', () => { });
35
- child.on('error', () => settle(null));
36
- child.on('exit', (code) => {
37
- if (code === 0)
38
- settle(stdout.trim() || null);
39
- else
40
- settle(null);
41
- });
42
- const t = setTimeout(() => {
43
- try {
44
- child.kill('SIGKILL');
45
- }
46
- catch { /* ignore */ }
47
- settle(null);
48
- }, timeoutMs);
49
- child.on('exit', () => clearTimeout(t));
50
- });
51
- }
52
- //# sourceMappingURL=git-toplevel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-toplevel.js","sourceRoot":"","sources":["../../src/lifecycle/git-toplevel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAM3C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAW,EACX,OAAuB,EAAE;IAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;IACzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,KAAoB,EAAE,EAAE;YACtC,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACH,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,iBAAiB,CAAC,EAAE;gBAChE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;gBACjC,qEAAqE;gBACrE,0EAA0E;gBAC1E,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,CAAC;YACb,OAAO;QACT,CAAC;QACD,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAiB,CAAC,CAAC,CAAC;QAClD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACtC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,IAAI,KAAK,CAAC;gBAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;;gBACzC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;YACxB,IAAI,CAAC;gBAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,35 +0,0 @@
1
- import type { LifecycleState } from '../stage-plan-types.js';
2
- import { type ResearchSourcesUsedEntry } from '../../reporting/report-parser-slots/research-report.js';
3
- import type { AnnotatePayload, StageGate } from '../stage-io.js';
4
- export interface StructuredReport {
5
- summary: string;
6
- workerStatus: 'done' | 'done_with_concerns' | 'blocked' | 'failed';
7
- unresolved: string[];
8
- filesChanged: string[];
9
- reviewVerdict: 'approved' | 'changes_required' | null;
10
- reviewConcerns: string[];
11
- reworkApplied: boolean;
12
- commitSha: string | null;
13
- commitMessage: string | null;
14
- commitSkipReason: string | null;
15
- findings: {
16
- severity: string;
17
- category: string;
18
- claim: string;
19
- evidence?: string;
20
- suggestion?: string;
21
- }[];
22
- criteriaErrors: {
23
- criterionId: string;
24
- error: string;
25
- }[];
26
- /** Research-only: parsed `## Sources used` markdown table. Absent on
27
- * every other route (audit/review/debug/investigate/write routes). */
28
- sourcesUsed?: ResearchSourcesUsedEntry[];
29
- findingsOutcome?: 'found' | 'clean' | 'not_applicable';
30
- findingsOutcomeReason?: string | null;
31
- outcomeInferred?: boolean;
32
- outcomeMalformed?: boolean;
33
- }
34
- export declare function annotator(state: LifecycleState): Promise<StageGate<AnnotatePayload>>;
35
- //# sourceMappingURL=annotate-stage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"annotate-stage.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/handlers/annotate-stage.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,wDAAwD,CAAC;AAGhE,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIjE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,GAAG,QAAQ,CAAC;IACnE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,UAAU,GAAG,kBAAkB,GAAG,IAAI,CAAC;IACtD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1G,cAAc,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzD;2EACuE;IACvE,WAAW,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACzC,eAAe,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,gBAAgB,CAAC;IACvD,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CA0T1F"}
@@ -1,360 +0,0 @@
1
- // v4.4.x — unified Annotating stage.
2
- //
3
- // LLM judge layer (spec §5.7.2), NOT a pure transform: this stage fires a
4
- // real LLM turn on the standard tier (see getSession('standard') below) for
5
- // both read and write routes. The LLM is the PROPOSER — it may set
6
- // completed/message/summary — while the deterministic parser
7
- // (applyAnnotatePreconditions) is the ENFORCER and the mechanical fields
8
- // (findings, filesChanged, commitSha) are always overridden from upstream
9
- // gates. It judges/summarizes the worker's emitted report; it does NOT
10
- // independently re-read the codebase to find defects (that is the Review
11
- // stage, which is write-routes-only). Falls back to mechanical synthesis only
12
- // on tier-3 prompt-budget truncation or after all transport retries fail.
13
- //
14
- // It assembles the canonical StructuredReport from state.lastRunResult, the
15
- // Review stage's verdict + concerns, the Rework flag, and the Committing
16
- // stage's outcome. Same handler for read and write routes — route-specific
17
- // fields hold empty arrays / nulls on the other side so the orchestrator
18
- // parses one shape.
19
- import { mergeStageStats } from '../merge-stage-stats.js';
20
- import { HUMAN_LABEL } from '../stage-labels.js';
21
- import { parseSourcesUsed, } from '../../reporting/report-parser-slots/research-report.js';
22
- import { applyAnnotatePreconditions } from '../annotate-parser.js';
23
- import { annotatePromptWrite, annotatePromptRead } from '../annotate-prompts.js';
24
- const READ_ROUTES = new Set(['audit', 'review', 'debug', 'investigate', 'research', 'journal-recall']);
25
- export async function annotator(state) {
26
- const t0 = Date.now();
27
- const last = (state.lastRunResult ?? {});
28
- const route = state.route;
29
- const isRead = !!route && READ_ROUTES.has(route);
30
- const findings = last.findings ?? [];
31
- const summary = last.summary
32
- ?? (isRead ? `produced ${findings.length} findings` : (last.output ?? '').slice(0, 200));
33
- // Commit fields are authoritative from the commit GATE payload — the commit
34
- // handler writes the SHA/message/files THERE, not into state.lastRunResult
35
- // (see git-commit-handler.ts header). Sourcing them from `last` left them
36
- // perpetually null on the user-facing report, and `last.filesChanged` (a
37
- // repo-wide diff) leaked sibling workers' files under concurrent dispatch.
38
- // The committed gate's filesChanged is this worker's own pathspec.
39
- const commitGate = state.gates?.['commit'];
40
- const commitPayload = (commitGate?.payload ?? null);
41
- const committed = commitGate?.outcome === 'advance' && commitPayload?.kind === 'committed';
42
- const report = {
43
- summary,
44
- workerStatus: last.workerStatus ?? (isRead ? 'done' : 'failed'),
45
- unresolved: last.unresolved ?? [],
46
- filesChanged: isRead ? [] : (committed ? (commitPayload?.filesChanged ?? []) : (last.filesChanged ?? [])),
47
- reviewVerdict: isRead ? null : ((state.reviewVerdict) ?? null),
48
- reviewConcerns: isRead ? [] : ((state.reviewConcerns) ?? []),
49
- reworkApplied: isRead ? false : Boolean(state.reworkApplied),
50
- commitSha: isRead ? null : (committed ? (commitPayload?.commitSha ?? null) : null),
51
- commitMessage: isRead ? null : (committed ? (commitPayload?.commitMessage ?? null) : null),
52
- commitSkipReason: isRead || committed ? null : (commitPayload?.kind === 'no_op' ? (commitPayload?.reason ?? null) : null),
53
- findings: isRead ? findings : [],
54
- criteriaErrors: isRead ? (last.criteriaErrors ?? []) : [],
55
- };
56
- if (route === 'research') {
57
- // Prefer the deterministic table derived from the EvidencePack (threaded
58
- // onto lastRunResult by perform-implementation). The worker-emitted
59
- // `## Sources used` markdown is an unreliable fallback — the per-criterion
60
- // synthesis loop has no designated turn that emits it.
61
- const fromPack = last.sourcesUsed;
62
- report.sourcesUsed = (Array.isArray(fromPack) && fromPack.length > 0)
63
- ? fromPack
64
- : parseSourcesUsed(last.output ?? '');
65
- }
66
- report.findingsOutcome = last.findingsOutcome;
67
- report.findingsOutcomeReason = last.findingsOutcomeReason;
68
- report.outcomeInferred = last.outcomeInferred;
69
- report.outcomeMalformed = last.outcomeMalformed;
70
- state.structuredReport = report;
71
- // v5: prompt-budget truncation per spec §14 assumption 7 + AC-30 to AC-33.
72
- // Three tiers, applied progressively when config.truncateAnnotatePromptTier
73
- // signals overflow:
74
- // tier 1 → strip Finding.evidence
75
- // tier 2 → also strip summary fields (set to '')
76
- // tier 3 → fallback mode: emit deterministic AnnotatePayload with verbatim
77
- // spec-text message; completed=false; findings passthrough.
78
- const cfg = state.config ?? {};
79
- const tier = cfg.truncateAnnotatePromptTier ?? 0;
80
- const envelope = state.executionContext?.envelope;
81
- const reviewGate = state.gates?.['review'];
82
- const implementGate = state.gates?.['implement'];
83
- const aggregatedFindings = [
84
- ...(last.findings ?? []),
85
- ...((reviewGate?.outcome === 'advance' ? reviewGate.payload?.findings : undefined) ?? []),
86
- ...((implementGate?.outcome === 'advance' ? implementGate.payload?.findings : undefined) ?? []),
87
- ];
88
- // Dedupe by claim+evidence (preserve first occurrence)
89
- const seen = new Set();
90
- const dedupedFindings = [];
91
- for (const f of aggregatedFindings) {
92
- const key = `${f.claim ?? ''}|${f.evidence ?? ''}`;
93
- if (seen.has(key))
94
- continue;
95
- seen.add(key);
96
- dedupedFindings.push(f);
97
- }
98
- // Mechanical filesChanged + commitSha derivation (spec §5.7 rule 4).
99
- // Reuses the `commitGate` resolved above.
100
- const mechanicalFilesChanged = commitGate?.outcome === 'advance' &&
101
- commitGate.payload?.kind === 'committed'
102
- ? commitGate.payload.filesChanged ?? []
103
- : (isRead ? [] : report.filesChanged);
104
- const mechanicalCommitSha = commitGate?.outcome === 'advance' &&
105
- commitGate.payload?.kind === 'committed'
106
- ? (commitGate.payload.commitSha ?? null)
107
- : (isRead ? null : (report.commitSha ?? null));
108
- let truncatedFindings = dedupedFindings.slice();
109
- let truncatedSummary = report.summary;
110
- let fallbackMode = false;
111
- if (tier >= 1) {
112
- const droppedEvidenceCount = truncatedFindings.filter(f => f.evidence !== undefined).length;
113
- truncatedFindings = truncatedFindings.map(f => {
114
- const cp = { ...f };
115
- delete cp.evidence;
116
- return cp;
117
- });
118
- // Annotation truncation is now recorded as a validation warning in the envelope
119
- const env = envelope;
120
- env?.recordValidationWarning?.({ rule: 'AnnotateTruncationTier1', path: 'annotatePrompt' });
121
- }
122
- if (tier >= 2) {
123
- const dropped = truncatedSummary ? 1 : 0;
124
- truncatedSummary = '';
125
- const env = envelope;
126
- env?.recordValidationWarning?.({ rule: 'AnnotateTruncationTier2', path: 'annotatePrompt' });
127
- }
128
- if (tier >= 3) {
129
- // Tier 3 = fallback mode per spec §5.7.3
130
- fallbackMode = true;
131
- const env = envelope;
132
- env?.recordValidationWarning?.({ rule: 'AnnotateTruncationTier3', path: 'annotatePrompt' });
133
- }
134
- let annotated;
135
- // LLM judge layer (spec §5.7.2). The annotator stage runs an LLM turn
136
- // unless tier-3 truncation kicked us into fallback mode. The LLM is the
137
- // proposer; the deterministic parser is the enforcer — applyAnnotatePreconditions
138
- // always runs on the LLM-proposed payload and may flip completed=false. On
139
- // transport error we fall back to mechanical synthesis (same path that ran
140
- // before this layer was added).
141
- let llmCostUSD = 0;
142
- let llmDurationMs = 0;
143
- let llmTurnsUsed = 0;
144
- let llmTransportFailed = false;
145
- let llmModel = null;
146
- let llmInputTokens = 0;
147
- let llmOutputTokens = 0;
148
- let llmCachedReadTokens = 0;
149
- let llmCachedNonReadTokens = 0;
150
- if (fallbackMode) {
151
- // Fallback findings: only gate-sourced findings flow through (gates.review,
152
- // gates.implement). lastRunResult.findings are dropped as part of tier-3
153
- // citation/non-gate-evidence clearing (spec §5.7.3 / AC-32).
154
- const fallbackFindings = [];
155
- const fbSeen = new Set();
156
- const reviewFindings = (reviewGate?.outcome === 'advance' ? reviewGate.payload?.findings : undefined) ?? [];
157
- const implementFindings = (implementGate?.outcome === 'advance' ? implementGate.payload?.findings : undefined) ?? [];
158
- for (const f of [...reviewFindings, ...implementFindings]) {
159
- const k = `${f.claim ?? ''}|${f.evidence ?? ''}`;
160
- if (fbSeen.has(k))
161
- continue;
162
- fbSeen.add(k);
163
- const cp = { ...f };
164
- delete cp.evidence;
165
- fallbackFindings.push(cp);
166
- }
167
- annotated = {
168
- completed: false,
169
- message: 'annotator prompt budget exceeded after tier-3 truncation; verdict computed mechanically from upstream gates',
170
- findings: fallbackFindings,
171
- summary: '',
172
- filesChanged: mechanicalFilesChanged,
173
- commitSha: mechanicalCommitSha,
174
- };
175
- }
176
- else {
177
- // Default mechanical proposal — used directly when LLM fails or returns
178
- // unparseable output. The parser still gets the final say either way.
179
- const mechanical = {
180
- completed: true,
181
- message: truncatedSummary || (isRead ? 'investigation completed' : 'task completed'),
182
- findings: truncatedFindings,
183
- summary: truncatedSummary,
184
- filesChanged: mechanicalFilesChanged,
185
- commitSha: mechanicalCommitSha,
186
- };
187
- let proposed = mechanical;
188
- const ctx = state.executionContext;
189
- // Annotator runs on the standard tier; capture its model from the provider
190
- // config so the wire row attributes annotate cost+tokens to the real model.
191
- // TurnResult does not carry model, so (r as any).model below is undefined
192
- // for every provider — without this lookup the annotate stage's model was
193
- // always null on the wire even when an LLM call actually fired.
194
- const annotateModelFromConfig = ctx?.providers?.['standard']?.config?.model ?? null;
195
- if (ctx && typeof ctx.getSession === 'function') {
196
- const prompt = isRead ? annotatePromptRead(state) : annotatePromptWrite(state);
197
- const session = ctx.getSession('standard');
198
- let tres;
199
- const t0 = Date.now();
200
- // Retry on transport errors: 3 attempts with 0s, 1s, 2s backoff (AC-19, AC-20)
201
- const retryDelays = [0, 1000, 2000];
202
- let lastErr;
203
- // Initialize to error; will be overwritten on success or last failure
204
- tres = { kind: 'transport_error', message: 'annotator transport failed', ms: 0 };
205
- for (let attempt = 0; attempt < retryDelays.length; attempt++) {
206
- if (attempt > 0) {
207
- await new Promise(resolve => setTimeout(resolve, retryDelays[attempt]));
208
- }
209
- try {
210
- const r = await session.send(prompt, { stageLabel: HUMAN_LABEL.annotating });
211
- tres = {
212
- kind: 'ok',
213
- text: r.output ?? '',
214
- costUSD: typeof r.costUSD === 'number' ? r.costUSD : null,
215
- turnsUsed: r.turns ?? 1,
216
- ms: Date.now() - t0,
217
- model: r.model ?? null,
218
- inputTokens: r.usage?.inputTokens ?? 0,
219
- outputTokens: r.usage?.outputTokens ?? 0,
220
- cachedReadTokens: r.usage?.cachedReadTokens ?? 0,
221
- cachedNonReadTokens: r.usage?.cachedNonReadTokens ?? 0,
222
- };
223
- break; // Success, exit retry loop
224
- }
225
- catch (err) {
226
- lastErr = err instanceof Error ? err : new Error(String(err));
227
- // Update error message for next retry or final failure
228
- tres = { kind: 'transport_error', message: lastErr.message, ms: Date.now() - t0 };
229
- }
230
- }
231
- if (tres.kind === 'ok') {
232
- llmCostUSD = tres.costUSD ?? 0;
233
- // TurnResult does not carry model — fall back to the provider config
234
- // we captured above (tres.model is undefined for every provider).
235
- llmModel = tres.model ?? annotateModelFromConfig;
236
- llmDurationMs = tres.ms;
237
- llmTurnsUsed = tres.turnsUsed;
238
- llmInputTokens = tres.inputTokens;
239
- llmOutputTokens = tres.outputTokens;
240
- llmCachedReadTokens = tres.cachedReadTokens;
241
- llmCachedNonReadTokens = tres.cachedNonReadTokens;
242
- const parsed = extractAnnotateJson(tres.text);
243
- if (parsed) {
244
- // Authoritative fields come from upstream gates (mechanicalFilesChanged,
245
- // mechanicalCommitSha, dedupedFindings). The LLM gets to propose
246
- // completed + message + summary; everything mechanical we override.
247
- proposed = {
248
- completed: typeof parsed.completed === 'boolean' ? parsed.completed : mechanical.completed,
249
- message: typeof parsed.message === 'string' && parsed.message.length > 0 ? parsed.message : mechanical.message,
250
- summary: typeof parsed.summary === 'string' ? parsed.summary : mechanical.summary,
251
- findings: truncatedFindings,
252
- filesChanged: mechanicalFilesChanged,
253
- commitSha: mechanicalCommitSha,
254
- };
255
- }
256
- // parsed === null → keep mechanical (parser unaffected)
257
- }
258
- else {
259
- // transport_error — fall through to mechanical synthesis
260
- llmTransportFailed = true;
261
- llmDurationMs = tres.ms;
262
- // Transport errors are now recorded as validation warnings
263
- const env = envelope;
264
- env?.recordValidationWarning?.({ rule: 'AnnotateLLMTransportError', path: 'annotatePrompt' });
265
- }
266
- }
267
- annotated = applyAnnotatePreconditions(proposed, state);
268
- }
269
- state.annotatePayload = annotated;
270
- mergeStageStats(state, 'annotating', {
271
- inputTokens: llmInputTokens,
272
- outputTokens: llmOutputTokens,
273
- cachedReadTokens: llmCachedReadTokens,
274
- cachedNonReadTokens: llmCachedNonReadTokens,
275
- turnCount: llmTurnsUsed,
276
- costUSD: llmCostUSD,
277
- durationMs: Date.now() - t0,
278
- filesWrittenCount: 0,
279
- }, {
280
- tier: llmTurnsUsed > 0 ? 'standard' : null,
281
- model: llmModel,
282
- // Mirror the outcome the implementer (or reviewer) computed so the
283
- // annotating stage row carries the same value downstream consumers see.
284
- findingsOutcome: last.findingsOutcome,
285
- findingsOutcomeReason: last.findingsOutcomeReason,
286
- outcomeInferred: last.outcomeInferred,
287
- outcomeMalformed: last.outcomeMalformed,
288
- });
289
- // suppress unused-variable warning while keeping the durationMs field for
290
- // diagnostics callers; mergeStageStats already captured the value above.
291
- void llmDurationMs;
292
- void llmTransportFailed;
293
- const annotatingStats = state.lastRunResult
294
- ?.stageStats?.annotating;
295
- if (annotatingStats) {
296
- annotatingStats.outcome = 'transformed';
297
- annotatingStats.maxIdleMs = 0;
298
- annotatingStats.totalIdleMs = 0;
299
- }
300
- return {
301
- outcome: 'advance',
302
- payload: annotated,
303
- telemetry: {
304
- stageLabel: 'annotate',
305
- durationMs: Date.now() - t0,
306
- costUSD: llmCostUSD,
307
- turnsUsed: llmTurnsUsed,
308
- stopReason: 'normal',
309
- },
310
- };
311
- }
312
- /**
313
- * Extract a single JSON object from the LLM's response.
314
- *
315
- * Accepts:
316
- * - A fenced ```json …``` block (preferred form per annotate prompts)
317
- * - A fenced ``` …``` block (no language tag)
318
- * - The first balanced `{…}` substring in the text
319
- *
320
- * Returns `null` if no parseable JSON is found, signalling the caller to keep
321
- * the mechanical proposal. This is intentional: a malformed LLM response
322
- * should not cause stage failure — the parser already has a deterministic
323
- * answer it can fall back on.
324
- */
325
- function extractAnnotateJson(text) {
326
- if (!text)
327
- return null;
328
- const fencedJson = text.match(/```(?:json)?\s*\n([\s\S]*?)\n```/i);
329
- const candidate = fencedJson ? fencedJson[1] : firstBalancedBraces(text);
330
- if (!candidate)
331
- return null;
332
- try {
333
- const parsed = JSON.parse(candidate);
334
- if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
335
- return parsed;
336
- }
337
- }
338
- catch {
339
- /* fall through */
340
- }
341
- return null;
342
- }
343
- function firstBalancedBraces(text) {
344
- const start = text.indexOf('{');
345
- if (start < 0)
346
- return null;
347
- let depth = 0;
348
- for (let i = start; i < text.length; i++) {
349
- const ch = text[i];
350
- if (ch === '{')
351
- depth++;
352
- else if (ch === '}') {
353
- depth--;
354
- if (depth === 0)
355
- return text.slice(start, i + 1);
356
- }
357
- }
358
- return null;
359
- }
360
- //# sourceMappingURL=annotate-stage.js.map