takt 0.49.0 → 0.51.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 (990) hide show
  1. package/README.md +31 -0
  2. package/builtins/en/config.yaml +6 -0
  3. package/builtins/en/facets/instructions/ai-antipattern-review.md +5 -0
  4. package/builtins/en/facets/instructions/findings-manager.md +6 -2
  5. package/builtins/en/facets/instructions/fix.md +9 -3
  6. package/builtins/en/facets/instructions/loop-monitor-fix-replan.md +21 -0
  7. package/builtins/en/facets/instructions/loop-monitor-replan.md +10 -0
  8. package/builtins/en/facets/instructions/loop-monitor-reviewers-fix.md +6 -0
  9. package/builtins/en/facets/instructions/plan-maintenance.md +10 -7
  10. package/builtins/en/facets/instructions/plan.md +17 -8
  11. package/builtins/en/facets/instructions/review-arch.md +5 -0
  12. package/builtins/en/facets/instructions/review-coding.md +15 -6
  13. package/builtins/en/facets/instructions/review-cqrs-es.md +9 -0
  14. package/builtins/en/facets/instructions/review-implementation-semantics.md +18 -0
  15. package/builtins/en/facets/instructions/review-merge-readiness.md +14 -0
  16. package/builtins/en/facets/instructions/supervise-maintenance.md +2 -2
  17. package/builtins/en/facets/instructions/supervise.md +8 -3
  18. package/builtins/en/facets/instructions/write-tests-first.md +23 -3
  19. package/builtins/en/facets/knowledge/architecture.md +36 -0
  20. package/builtins/en/facets/knowledge/backend.md +74 -0
  21. package/builtins/en/facets/knowledge/cqrs-es.md +767 -235
  22. package/builtins/en/facets/knowledge/frontend.md +5 -1
  23. package/builtins/en/facets/knowledge/implementation-semantics.md +104 -0
  24. package/builtins/en/facets/knowledge/security.md +3 -0
  25. package/builtins/en/facets/knowledge/takt.md +10 -2
  26. package/builtins/en/facets/knowledge/unit-testing.md +14 -0
  27. package/builtins/en/facets/output-contracts/ai-antipattern-review.md +11 -1
  28. package/builtins/en/facets/output-contracts/architecture-review.md +6 -1
  29. package/builtins/en/facets/output-contracts/coding-review.md +11 -1
  30. package/builtins/en/facets/output-contracts/findings-manager.md +14 -0
  31. package/builtins/en/facets/output-contracts/implementation-semantics-review-finding-contract.md +28 -0
  32. package/builtins/en/facets/output-contracts/implementation-semantics-review.md +50 -0
  33. package/builtins/en/facets/output-contracts/{pure-review-finding-contract.md → merge-readiness-review-finding-contract.md} +14 -8
  34. package/builtins/en/facets/output-contracts/{pure-review.md → merge-readiness-review.md} +17 -11
  35. package/builtins/en/facets/output-contracts/supervisor-validation.md +6 -2
  36. package/builtins/en/facets/output-contracts/test-report.md +25 -0
  37. package/builtins/en/facets/personas/coder.md +3 -3
  38. package/builtins/en/facets/personas/implementation-semantics-reviewer.md +27 -0
  39. package/builtins/en/facets/personas/merge-readiness-reviewer.md +28 -0
  40. package/builtins/en/facets/personas/supervisor.md +1 -1
  41. package/builtins/en/facets/policies/ai-antipattern.md +19 -0
  42. package/builtins/en/facets/policies/coding.md +31 -4
  43. package/builtins/en/facets/policies/review.md +17 -1
  44. package/builtins/en/facets/policies/testing.md +6 -2
  45. package/builtins/en/workflow-categories.yaml +13 -1
  46. package/builtins/en/workflows/audit-architecture-backend.yaml +1 -0
  47. package/builtins/en/workflows/audit-architecture-dual.yaml +1 -0
  48. package/builtins/en/workflows/audit-architecture-frontend.yaml +1 -0
  49. package/builtins/en/workflows/audit-architecture.yaml +1 -0
  50. package/builtins/en/workflows/audit-e2e.yaml +1 -0
  51. package/builtins/en/workflows/audit-security.yaml +1 -0
  52. package/builtins/en/workflows/audit-unit.yaml +1 -0
  53. package/builtins/en/workflows/backend-cqrs-for-local-llm.yaml +288 -0
  54. package/builtins/en/workflows/backend-cqrs-mini.yaml +1 -0
  55. package/builtins/en/workflows/backend-cqrs.yaml +28 -84
  56. package/builtins/en/workflows/backend-for-local-llm.yaml +284 -0
  57. package/builtins/en/workflows/backend-maintenance.yaml +32 -89
  58. package/builtins/en/workflows/backend-mini.yaml +1 -0
  59. package/builtins/en/workflows/backend.yaml +25 -83
  60. package/builtins/en/workflows/{takt-default-with-fc.yaml → cli.yaml} +16 -4
  61. package/builtins/en/workflows/deep-research.yaml +1 -0
  62. package/builtins/en/workflows/default-high.yaml +3 -32
  63. package/builtins/en/workflows/default-peer-review.yaml +16 -52
  64. package/builtins/en/workflows/default.yaml +2 -1
  65. package/builtins/en/workflows/draft.yaml +0 -1
  66. package/builtins/en/workflows/dual-cqrs-mini.yaml +1 -0
  67. package/builtins/en/workflows/dual-cqrs.yaml +28 -87
  68. package/builtins/en/workflows/dual-for-local-llm.yaml +312 -0
  69. package/builtins/en/workflows/dual-mini.yaml +1 -0
  70. package/builtins/en/workflows/dual.yaml +29 -58
  71. package/builtins/en/workflows/frontend-for-local-llm.yaml +289 -0
  72. package/builtins/en/workflows/frontend-maintenance.yaml +34 -91
  73. package/builtins/en/workflows/frontend-mini.yaml +1 -0
  74. package/builtins/en/workflows/frontend.yaml +27 -85
  75. package/builtins/en/workflows/merge-readiness-dual-final-gate.yaml +92 -0
  76. package/builtins/en/workflows/merge-readiness-final-gate.yaml +79 -0
  77. package/builtins/en/workflows/{peer-review-with-fc.yaml → peer-review-for-local-llm.yaml} +48 -37
  78. package/builtins/en/workflows/peer-review.yaml +25 -20
  79. package/builtins/en/workflows/research.yaml +1 -0
  80. package/builtins/en/workflows/review-backend-cqrs.yaml +63 -35
  81. package/builtins/en/workflows/review-backend.yaml +63 -35
  82. package/builtins/en/workflows/review-default.yaml +138 -107
  83. package/builtins/en/workflows/review-dual-cqrs.yaml +63 -35
  84. package/builtins/en/workflows/review-dual.yaml +63 -35
  85. package/builtins/en/workflows/review-fix-backend-cqrs.yaml +27 -87
  86. package/builtins/en/workflows/review-fix-backend.yaml +25 -86
  87. package/builtins/en/workflows/review-fix-default.yaml +17 -87
  88. package/builtins/en/workflows/review-fix-dual-cqrs.yaml +29 -90
  89. package/builtins/en/workflows/review-fix-dual.yaml +27 -89
  90. package/builtins/en/workflows/review-fix-frontend.yaml +25 -87
  91. package/builtins/en/workflows/review-fix-takt-default.yaml +67 -362
  92. package/builtins/en/workflows/review-frontend.yaml +63 -35
  93. package/builtins/en/workflows/review-takt-default.yaml +140 -109
  94. package/builtins/en/workflows/takt-default-for-local-llm.yaml +283 -0
  95. package/builtins/en/workflows/takt-default-refresh-all.yaml +20 -59
  96. package/builtins/en/workflows/takt-default-refresh-fast.yaml +19 -57
  97. package/builtins/en/workflows/takt-default.yaml +3 -25
  98. package/builtins/en/workflows/terraform.yaml +81 -44
  99. package/builtins/ja/config.yaml +6 -0
  100. package/builtins/ja/facets/instructions/ai-antipattern-review.md +5 -0
  101. package/builtins/ja/facets/instructions/findings-manager.md +6 -2
  102. package/builtins/ja/facets/instructions/fix.md +9 -3
  103. package/builtins/ja/facets/instructions/implement-maintenance.md +4 -15
  104. package/builtins/ja/facets/instructions/implement.md +2 -14
  105. package/builtins/ja/facets/instructions/loop-monitor-fix-replan.md +21 -0
  106. package/builtins/ja/facets/instructions/loop-monitor-replan.md +10 -0
  107. package/builtins/ja/facets/instructions/loop-monitor-reviewers-fix.md +7 -0
  108. package/builtins/ja/facets/instructions/plan-maintenance.md +10 -7
  109. package/builtins/ja/facets/instructions/plan.md +9 -6
  110. package/builtins/ja/facets/instructions/review-arch.md +5 -0
  111. package/builtins/ja/facets/instructions/review-coding.md +15 -6
  112. package/builtins/ja/facets/instructions/review-cqrs-es.md +9 -0
  113. package/builtins/ja/facets/instructions/review-implementation-semantics.md +17 -0
  114. package/builtins/ja/facets/instructions/review-merge-readiness.md +14 -0
  115. package/builtins/ja/facets/instructions/supervise-maintenance.md +2 -2
  116. package/builtins/ja/facets/instructions/supervise.md +8 -3
  117. package/builtins/ja/facets/instructions/write-tests-first.md +23 -3
  118. package/builtins/ja/facets/knowledge/architecture.md +36 -0
  119. package/builtins/ja/facets/knowledge/backend.md +74 -0
  120. package/builtins/ja/facets/knowledge/cqrs-es.md +260 -16
  121. package/builtins/ja/facets/knowledge/frontend.md +5 -1
  122. package/builtins/ja/facets/knowledge/implementation-semantics.md +104 -0
  123. package/builtins/ja/facets/knowledge/security.md +3 -0
  124. package/builtins/ja/facets/knowledge/takt.md +10 -2
  125. package/builtins/ja/facets/knowledge/unit-testing.md +14 -0
  126. package/builtins/ja/facets/output-contracts/ai-antipattern-review.md +11 -1
  127. package/builtins/ja/facets/output-contracts/architecture-review.md +6 -1
  128. package/builtins/ja/facets/output-contracts/coding-review.md +11 -1
  129. package/builtins/ja/facets/output-contracts/findings-manager.md +14 -0
  130. package/builtins/ja/facets/output-contracts/implementation-semantics-review-finding-contract.md +24 -0
  131. package/builtins/ja/facets/output-contracts/implementation-semantics-review.md +50 -0
  132. package/builtins/ja/facets/output-contracts/{pure-review-finding-contract.md → merge-readiness-review-finding-contract.md} +14 -8
  133. package/builtins/ja/facets/output-contracts/{pure-review.md → merge-readiness-review.md} +17 -11
  134. package/builtins/ja/facets/output-contracts/supervisor-validation.md +6 -2
  135. package/builtins/ja/facets/output-contracts/test-report.md +25 -0
  136. package/builtins/ja/facets/partials/instructions/implement-common.md +13 -0
  137. package/builtins/ja/facets/personas/coder.md +3 -3
  138. package/builtins/ja/facets/personas/implementation-semantics-reviewer.md +27 -0
  139. package/builtins/ja/facets/personas/merge-readiness-reviewer.md +28 -0
  140. package/builtins/ja/facets/personas/supervisor.md +1 -1
  141. package/builtins/ja/facets/policies/ai-antipattern.md +19 -0
  142. package/builtins/ja/facets/policies/coding.md +32 -4
  143. package/builtins/ja/facets/policies/review.md +17 -1
  144. package/builtins/ja/facets/policies/testing.md +11 -4
  145. package/builtins/ja/workflow-categories.yaml +13 -1
  146. package/builtins/ja/workflows/audit-architecture-backend.yaml +1 -0
  147. package/builtins/ja/workflows/audit-architecture-dual.yaml +1 -0
  148. package/builtins/ja/workflows/audit-architecture-frontend.yaml +1 -0
  149. package/builtins/ja/workflows/audit-architecture.yaml +1 -0
  150. package/builtins/ja/workflows/audit-e2e.yaml +1 -0
  151. package/builtins/ja/workflows/audit-security.yaml +1 -0
  152. package/builtins/ja/workflows/audit-unit.yaml +1 -0
  153. package/builtins/ja/workflows/backend-cqrs-for-local-llm.yaml +287 -0
  154. package/builtins/ja/workflows/backend-cqrs-mini.yaml +1 -0
  155. package/builtins/ja/workflows/backend-cqrs.yaml +28 -84
  156. package/builtins/ja/workflows/backend-for-local-llm.yaml +283 -0
  157. package/builtins/ja/workflows/backend-maintenance.yaml +32 -89
  158. package/builtins/ja/workflows/backend-mini.yaml +1 -0
  159. package/builtins/ja/workflows/backend.yaml +25 -83
  160. package/builtins/ja/workflows/{takt-default-with-fc.yaml → cli.yaml} +16 -4
  161. package/builtins/ja/workflows/deep-research.yaml +1 -0
  162. package/builtins/ja/workflows/default-high.yaml +3 -32
  163. package/builtins/ja/workflows/default-peer-review.yaml +16 -52
  164. package/builtins/ja/workflows/default.yaml +2 -1
  165. package/builtins/ja/workflows/draft.yaml +0 -1
  166. package/builtins/ja/workflows/dual-cqrs-mini.yaml +1 -0
  167. package/builtins/ja/workflows/dual-cqrs.yaml +28 -87
  168. package/builtins/ja/workflows/dual-for-local-llm.yaml +311 -0
  169. package/builtins/ja/workflows/dual-mini.yaml +1 -0
  170. package/builtins/ja/workflows/dual.yaml +29 -58
  171. package/builtins/ja/workflows/frontend-for-local-llm.yaml +288 -0
  172. package/builtins/ja/workflows/frontend-maintenance.yaml +34 -91
  173. package/builtins/ja/workflows/frontend-mini.yaml +1 -0
  174. package/builtins/ja/workflows/frontend.yaml +27 -85
  175. package/builtins/ja/workflows/merge-readiness-dual-final-gate.yaml +92 -0
  176. package/builtins/ja/workflows/merge-readiness-final-gate.yaml +79 -0
  177. package/builtins/ja/workflows/{peer-review-with-fc.yaml → peer-review-for-local-llm.yaml} +48 -37
  178. package/builtins/ja/workflows/peer-review.yaml +25 -20
  179. package/builtins/ja/workflows/research.yaml +1 -0
  180. package/builtins/ja/workflows/review-backend-cqrs.yaml +63 -35
  181. package/builtins/ja/workflows/review-backend.yaml +63 -35
  182. package/builtins/ja/workflows/review-default.yaml +111 -79
  183. package/builtins/ja/workflows/review-dual-cqrs.yaml +63 -35
  184. package/builtins/ja/workflows/review-dual.yaml +63 -35
  185. package/builtins/ja/workflows/review-fix-backend-cqrs.yaml +27 -87
  186. package/builtins/ja/workflows/review-fix-backend.yaml +25 -86
  187. package/builtins/ja/workflows/review-fix-default.yaml +17 -87
  188. package/builtins/ja/workflows/review-fix-dual-cqrs.yaml +29 -90
  189. package/builtins/ja/workflows/review-fix-dual.yaml +27 -89
  190. package/builtins/ja/workflows/review-fix-frontend.yaml +25 -87
  191. package/builtins/ja/workflows/review-fix-takt-default.yaml +67 -362
  192. package/builtins/ja/workflows/review-frontend.yaml +63 -35
  193. package/builtins/ja/workflows/review-takt-default.yaml +112 -80
  194. package/builtins/ja/workflows/takt-default-for-local-llm.yaml +282 -0
  195. package/builtins/ja/workflows/takt-default-refresh-all.yaml +20 -59
  196. package/builtins/ja/workflows/takt-default-refresh-fast.yaml +19 -57
  197. package/builtins/ja/workflows/takt-default.yaml +3 -25
  198. package/builtins/ja/workflows/terraform.yaml +81 -44
  199. package/builtins/skill/references/yaml-schema.md +21 -1
  200. package/builtins/skill-codex/references/yaml-schema.md +21 -1
  201. package/dist/agents/agent-usecases.d.ts +1 -0
  202. package/dist/agents/agent-usecases.d.ts.map +1 -1
  203. package/dist/agents/agent-usecases.js +1 -0
  204. package/dist/agents/agent-usecases.js.map +1 -1
  205. package/dist/agents/auto-routing-usecase.d.ts +23 -0
  206. package/dist/agents/auto-routing-usecase.d.ts.map +1 -0
  207. package/dist/agents/auto-routing-usecase.js +216 -0
  208. package/dist/agents/auto-routing-usecase.js.map +1 -0
  209. package/dist/agents/decompose-task-usecase.d.ts +1 -0
  210. package/dist/agents/decompose-task-usecase.d.ts.map +1 -1
  211. package/dist/agents/decompose-task-usecase.js +2 -0
  212. package/dist/agents/decompose-task-usecase.js.map +1 -1
  213. package/dist/agents/judge-utils.d.ts.map +1 -1
  214. package/dist/agents/judge-utils.js +4 -3
  215. package/dist/agents/judge-utils.js.map +1 -1
  216. package/dist/agents/runner.d.ts.map +1 -1
  217. package/dist/agents/runner.js +2 -3
  218. package/dist/agents/runner.js.map +1 -1
  219. package/dist/agents/structured-caller/prompt-based-structured-caller.d.ts.map +1 -1
  220. package/dist/agents/structured-caller/prompt-based-structured-caller.js +2 -0
  221. package/dist/agents/structured-caller/prompt-based-structured-caller.js.map +1 -1
  222. package/dist/agents/structured-caller/shared.js +1 -1
  223. package/dist/agents/structured-caller/shared.js.map +1 -1
  224. package/dist/app/acp/agent.d.ts +28 -0
  225. package/dist/app/acp/agent.d.ts.map +1 -0
  226. package/dist/app/acp/agent.js +279 -0
  227. package/dist/app/acp/agent.js.map +1 -0
  228. package/dist/app/acp/confirmationBridge.d.ts +5 -0
  229. package/dist/app/acp/confirmationBridge.d.ts.map +1 -0
  230. package/dist/app/acp/confirmationBridge.js +194 -0
  231. package/dist/app/acp/confirmationBridge.js.map +1 -0
  232. package/dist/app/acp/conversationFactory.d.ts +4 -0
  233. package/dist/app/acp/conversationFactory.d.ts.map +1 -0
  234. package/dist/app/acp/conversationFactory.js +33 -0
  235. package/dist/app/acp/conversationFactory.js.map +1 -0
  236. package/dist/app/acp/enqueue.d.ts +33 -0
  237. package/dist/app/acp/enqueue.d.ts.map +1 -0
  238. package/dist/app/acp/enqueue.js +45 -0
  239. package/dist/app/acp/enqueue.js.map +1 -0
  240. package/dist/app/acp/index.d.ts +7 -0
  241. package/dist/app/acp/index.d.ts.map +1 -0
  242. package/dist/app/acp/index.js +125 -0
  243. package/dist/app/acp/index.js.map +1 -0
  244. package/dist/app/acp/intent.d.ts +10 -0
  245. package/dist/app/acp/intent.d.ts.map +1 -0
  246. package/dist/app/acp/intent.js +210 -0
  247. package/dist/app/acp/intent.js.map +1 -0
  248. package/dist/app/acp/mcpServers.d.ts +4 -0
  249. package/dist/app/acp/mcpServers.d.ts.map +1 -0
  250. package/dist/app/acp/mcpServers.js +51 -0
  251. package/dist/app/acp/mcpServers.js.map +1 -0
  252. package/dist/app/acp/promptContent.d.ts +3 -0
  253. package/dist/app/acp/promptContent.d.ts.map +1 -0
  254. package/dist/app/acp/promptContent.js +23 -0
  255. package/dist/app/acp/promptContent.js.map +1 -0
  256. package/dist/app/acp/sessionStore.d.ts +19 -0
  257. package/dist/app/acp/sessionStore.d.ts.map +1 -0
  258. package/dist/app/acp/sessionStore.js +50 -0
  259. package/dist/app/acp/sessionStore.js.map +1 -0
  260. package/dist/app/acp/sessionUpdates.d.ts +8 -0
  261. package/dist/app/acp/sessionUpdates.d.ts.map +1 -0
  262. package/dist/app/acp/sessionUpdates.js +108 -0
  263. package/dist/app/acp/sessionUpdates.js.map +1 -0
  264. package/dist/app/acp/taskContext.d.ts +17 -0
  265. package/dist/app/acp/taskContext.d.ts.map +1 -0
  266. package/dist/app/acp/taskContext.js +81 -0
  267. package/dist/app/acp/taskContext.js.map +1 -0
  268. package/dist/app/acp/types.d.ts +33 -0
  269. package/dist/app/acp/types.d.ts.map +1 -0
  270. package/dist/app/acp/types.js +2 -0
  271. package/dist/app/acp/types.js.map +1 -0
  272. package/dist/app/cli/commands.js +28 -1
  273. package/dist/app/cli/commands.js.map +1 -1
  274. package/dist/app/cli/helpers.d.ts.map +1 -1
  275. package/dist/app/cli/helpers.js +13 -1
  276. package/dist/app/cli/helpers.js.map +1 -1
  277. package/dist/app/cli/program.d.ts.map +1 -1
  278. package/dist/app/cli/program.js +6 -5
  279. package/dist/app/cli/program.js.map +1 -1
  280. package/dist/app/cli/routing.d.ts.map +1 -1
  281. package/dist/app/cli/routing.js +56 -47
  282. package/dist/app/cli/routing.js.map +1 -1
  283. package/dist/app/mcp/index.d.ts +3 -0
  284. package/dist/app/mcp/index.d.ts.map +1 -0
  285. package/dist/app/mcp/index.js +16 -0
  286. package/dist/app/mcp/index.js.map +1 -0
  287. package/dist/app/mcp/server.d.ts +2 -0
  288. package/dist/app/mcp/server.d.ts.map +1 -0
  289. package/dist/app/mcp/server.js +2 -0
  290. package/dist/app/mcp/server.js.map +1 -0
  291. package/dist/core/config/provider-resolution.d.ts +1 -0
  292. package/dist/core/config/provider-resolution.d.ts.map +1 -1
  293. package/dist/core/config/provider-resolution.js +19 -0
  294. package/dist/core/config/provider-resolution.js.map +1 -1
  295. package/dist/core/logging/providerEvent.d.ts +3 -2
  296. package/dist/core/logging/providerEvent.d.ts.map +1 -1
  297. package/dist/core/logging/providerEvent.js.map +1 -1
  298. package/dist/core/logging/providerEventLogger.d.ts +2 -1
  299. package/dist/core/logging/providerEventLogger.d.ts.map +1 -1
  300. package/dist/core/logging/providerEventLogger.js.map +1 -1
  301. package/dist/core/logging/usageEventLogger.d.ts +2 -1
  302. package/dist/core/logging/usageEventLogger.d.ts.map +1 -1
  303. package/dist/core/logging/usageEventLogger.js +3 -0
  304. package/dist/core/logging/usageEventLogger.js.map +1 -1
  305. package/dist/core/models/config-schemas.d.ts +301 -97
  306. package/dist/core/models/config-schemas.d.ts.map +1 -1
  307. package/dist/core/models/config-schemas.js +8 -5
  308. package/dist/core/models/config-schemas.js.map +1 -1
  309. package/dist/core/models/config-types.d.ts +34 -2
  310. package/dist/core/models/config-types.d.ts.map +1 -1
  311. package/dist/core/models/finding-schemas.d.ts +167 -24
  312. package/dist/core/models/finding-schemas.d.ts.map +1 -1
  313. package/dist/core/models/finding-schemas.js +82 -9
  314. package/dist/core/models/finding-schemas.js.map +1 -1
  315. package/dist/core/models/finding-types.d.ts +43 -2
  316. package/dist/core/models/finding-types.d.ts.map +1 -1
  317. package/dist/core/models/finding-types.js +3 -2
  318. package/dist/core/models/finding-types.js.map +1 -1
  319. package/dist/core/models/index.d.ts +2 -1
  320. package/dist/core/models/index.d.ts.map +1 -1
  321. package/dist/core/models/index.js +1 -0
  322. package/dist/core/models/index.js.map +1 -1
  323. package/dist/core/models/part.d.ts +1 -0
  324. package/dist/core/models/part.d.ts.map +1 -1
  325. package/dist/core/models/schema-base.d.ts +189 -36
  326. package/dist/core/models/schema-base.d.ts.map +1 -1
  327. package/dist/core/models/schema-base.js +68 -0
  328. package/dist/core/models/schema-base.js.map +1 -1
  329. package/dist/core/models/types.d.ts +3 -2
  330. package/dist/core/models/types.d.ts.map +1 -1
  331. package/dist/core/models/types.js +1 -1
  332. package/dist/core/models/types.js.map +1 -1
  333. package/dist/core/models/workflow-condition-expression.d.ts +17 -0
  334. package/dist/core/models/workflow-condition-expression.d.ts.map +1 -1
  335. package/dist/core/models/workflow-condition-expression.js +85 -2
  336. package/dist/core/models/workflow-condition-expression.js.map +1 -1
  337. package/dist/core/models/workflow-provider-options.d.ts +1 -1
  338. package/dist/core/models/workflow-provider-options.d.ts.map +1 -1
  339. package/dist/core/models/workflow-schemas.d.ts +1134 -250
  340. package/dist/core/models/workflow-schemas.d.ts.map +1 -1
  341. package/dist/core/models/workflow-schemas.js +124 -60
  342. package/dist/core/models/workflow-schemas.js.map +1 -1
  343. package/dist/core/models/workflow-session-constraints.d.ts +3 -0
  344. package/dist/core/models/workflow-session-constraints.d.ts.map +1 -0
  345. package/dist/core/models/workflow-session-constraints.js +3 -0
  346. package/dist/core/models/workflow-session-constraints.js.map +1 -0
  347. package/dist/core/models/workflow-types.d.ts +44 -6
  348. package/dist/core/models/workflow-types.d.ts.map +1 -1
  349. package/dist/core/models/workflow-types.js +1 -0
  350. package/dist/core/models/workflow-types.js.map +1 -1
  351. package/dist/core/runtime/runtime-environment.d.ts.map +1 -1
  352. package/dist/core/runtime/runtime-environment.js +19 -0
  353. package/dist/core/runtime/runtime-environment.js.map +1 -1
  354. package/dist/core/workflow/auto-routing/resolver.d.ts +43 -0
  355. package/dist/core/workflow/auto-routing/resolver.d.ts.map +1 -0
  356. package/dist/core/workflow/auto-routing/resolver.js +218 -0
  357. package/dist/core/workflow/auto-routing/resolver.js.map +1 -0
  358. package/dist/core/workflow/auto-routing/workflow-auto-provider.d.ts +16 -0
  359. package/dist/core/workflow/auto-routing/workflow-auto-provider.d.ts.map +1 -0
  360. package/dist/core/workflow/auto-routing/workflow-auto-provider.js +64 -0
  361. package/dist/core/workflow/auto-routing/workflow-auto-provider.js.map +1 -0
  362. package/dist/core/workflow/engine/LoopMonitorJudgeRunner.d.ts +1 -1
  363. package/dist/core/workflow/engine/LoopMonitorJudgeRunner.d.ts.map +1 -1
  364. package/dist/core/workflow/engine/LoopMonitorJudgeRunner.js +15 -1
  365. package/dist/core/workflow/engine/LoopMonitorJudgeRunner.js.map +1 -1
  366. package/dist/core/workflow/engine/OptionsBuilder.d.ts +15 -5
  367. package/dist/core/workflow/engine/OptionsBuilder.d.ts.map +1 -1
  368. package/dist/core/workflow/engine/OptionsBuilder.js +122 -13
  369. package/dist/core/workflow/engine/OptionsBuilder.js.map +1 -1
  370. package/dist/core/workflow/engine/ParallelRunner.d.ts +12 -1
  371. package/dist/core/workflow/engine/ParallelRunner.d.ts.map +1 -1
  372. package/dist/core/workflow/engine/ParallelRunner.js +356 -33
  373. package/dist/core/workflow/engine/ParallelRunner.js.map +1 -1
  374. package/dist/core/workflow/engine/StepExecutor.d.ts +10 -0
  375. package/dist/core/workflow/engine/StepExecutor.d.ts.map +1 -1
  376. package/dist/core/workflow/engine/StepExecutor.js +89 -31
  377. package/dist/core/workflow/engine/StepExecutor.js.map +1 -1
  378. package/dist/core/workflow/engine/TeamLeaderRunner.d.ts +10 -2
  379. package/dist/core/workflow/engine/TeamLeaderRunner.d.ts.map +1 -1
  380. package/dist/core/workflow/engine/TeamLeaderRunner.js +111 -9
  381. package/dist/core/workflow/engine/TeamLeaderRunner.js.map +1 -1
  382. package/dist/core/workflow/engine/WorkflowCallExecutor.d.ts +11 -1
  383. package/dist/core/workflow/engine/WorkflowCallExecutor.d.ts.map +1 -1
  384. package/dist/core/workflow/engine/WorkflowCallExecutor.js +43 -7
  385. package/dist/core/workflow/engine/WorkflowCallExecutor.js.map +1 -1
  386. package/dist/core/workflow/engine/WorkflowCallRunner.d.ts +9 -0
  387. package/dist/core/workflow/engine/WorkflowCallRunner.d.ts.map +1 -1
  388. package/dist/core/workflow/engine/WorkflowCallRunner.js +65 -14
  389. package/dist/core/workflow/engine/WorkflowCallRunner.js.map +1 -1
  390. package/dist/core/workflow/engine/WorkflowEngine.d.ts.map +1 -1
  391. package/dist/core/workflow/engine/WorkflowEngine.js +27 -9
  392. package/dist/core/workflow/engine/WorkflowEngine.js.map +1 -1
  393. package/dist/core/workflow/engine/WorkflowEngineSetup.d.ts.map +1 -1
  394. package/dist/core/workflow/engine/WorkflowEngineSetup.js +29 -20
  395. package/dist/core/workflow/engine/WorkflowEngineSetup.js.map +1 -1
  396. package/dist/core/workflow/engine/WorkflowEngineStepCoordinator.d.ts +2 -2
  397. package/dist/core/workflow/engine/WorkflowEngineStepCoordinator.d.ts.map +1 -1
  398. package/dist/core/workflow/engine/WorkflowEngineStepCoordinator.js +2 -2
  399. package/dist/core/workflow/engine/WorkflowEngineStepCoordinator.js.map +1 -1
  400. package/dist/core/workflow/engine/WorkflowRunLoop.d.ts +1 -1
  401. package/dist/core/workflow/engine/WorkflowRunLoop.d.ts.map +1 -1
  402. package/dist/core/workflow/engine/WorkflowRunLoop.js +51 -7
  403. package/dist/core/workflow/engine/WorkflowRunLoop.js.map +1 -1
  404. package/dist/core/workflow/engine/WorkflowValidator.d.ts.map +1 -1
  405. package/dist/core/workflow/engine/WorkflowValidator.js +79 -7
  406. package/dist/core/workflow/engine/WorkflowValidator.js.map +1 -1
  407. package/dist/core/workflow/engine/engine-provider-options.d.ts +1 -0
  408. package/dist/core/workflow/engine/engine-provider-options.d.ts.map +1 -1
  409. package/dist/core/workflow/engine/engine-provider-options.js +12 -0
  410. package/dist/core/workflow/engine/engine-provider-options.js.map +1 -1
  411. package/dist/core/workflow/engine/session-compaction.d.ts +10 -0
  412. package/dist/core/workflow/engine/session-compaction.d.ts.map +1 -0
  413. package/dist/core/workflow/engine/session-compaction.js +42 -0
  414. package/dist/core/workflow/engine/session-compaction.js.map +1 -0
  415. package/dist/core/workflow/engine/team-leader-part-runner.d.ts.map +1 -1
  416. package/dist/core/workflow/engine/team-leader-part-runner.js +3 -1
  417. package/dist/core/workflow/engine/team-leader-part-runner.js.map +1 -1
  418. package/dist/core/workflow/evaluation/RuleEvaluator.d.ts +0 -1
  419. package/dist/core/workflow/evaluation/RuleEvaluator.d.ts.map +1 -1
  420. package/dist/core/workflow/evaluation/RuleEvaluator.js +22 -34
  421. package/dist/core/workflow/evaluation/RuleEvaluator.js.map +1 -1
  422. package/dist/core/workflow/evaluation/rule-utils.d.ts +33 -1
  423. package/dist/core/workflow/evaluation/rule-utils.d.ts.map +1 -1
  424. package/dist/core/workflow/evaluation/rule-utils.js +77 -5
  425. package/dist/core/workflow/evaluation/rule-utils.js.map +1 -1
  426. package/dist/core/workflow/evaluation/when-evaluator.d.ts +1 -0
  427. package/dist/core/workflow/evaluation/when-evaluator.d.ts.map +1 -1
  428. package/dist/core/workflow/evaluation/when-evaluator.js +18 -40
  429. package/dist/core/workflow/evaluation/when-evaluator.js.map +1 -1
  430. package/dist/core/workflow/findings/context.d.ts +4 -0
  431. package/dist/core/workflow/findings/context.d.ts.map +1 -1
  432. package/dist/core/workflow/findings/context.js +27 -0
  433. package/dist/core/workflow/findings/context.js.map +1 -1
  434. package/dist/core/workflow/findings/manager-output-validation.d.ts +14 -0
  435. package/dist/core/workflow/findings/manager-output-validation.d.ts.map +1 -1
  436. package/dist/core/workflow/findings/manager-output-validation.js +158 -8
  437. package/dist/core/workflow/findings/manager-output-validation.js.map +1 -1
  438. package/dist/core/workflow/findings/manager-runner.d.ts +17 -6
  439. package/dist/core/workflow/findings/manager-runner.d.ts.map +1 -1
  440. package/dist/core/workflow/findings/manager-runner.js +157 -59
  441. package/dist/core/workflow/findings/manager-runner.js.map +1 -1
  442. package/dist/core/workflow/findings/manager-step.d.ts +8 -0
  443. package/dist/core/workflow/findings/manager-step.d.ts.map +1 -0
  444. package/dist/core/workflow/findings/manager-step.js +27 -0
  445. package/dist/core/workflow/findings/manager-step.js.map +1 -0
  446. package/dist/core/workflow/findings/mechanical-classification.d.ts +24 -0
  447. package/dist/core/workflow/findings/mechanical-classification.d.ts.map +1 -0
  448. package/dist/core/workflow/findings/mechanical-classification.js +115 -0
  449. package/dist/core/workflow/findings/mechanical-classification.js.map +1 -0
  450. package/dist/core/workflow/findings/reconciler.d.ts +1 -0
  451. package/dist/core/workflow/findings/reconciler.d.ts.map +1 -1
  452. package/dist/core/workflow/findings/reconciler.js +90 -4
  453. package/dist/core/workflow/findings/reconciler.js.map +1 -1
  454. package/dist/core/workflow/instruction/InstructionBuilder.d.ts.map +1 -1
  455. package/dist/core/workflow/instruction/InstructionBuilder.js +7 -15
  456. package/dist/core/workflow/instruction/InstructionBuilder.js.map +1 -1
  457. package/dist/core/workflow/instruction/ReportInstructionBuilder.d.ts.map +1 -1
  458. package/dist/core/workflow/instruction/ReportInstructionBuilder.js +9 -11
  459. package/dist/core/workflow/instruction/ReportInstructionBuilder.js.map +1 -1
  460. package/dist/core/workflow/instruction/finding-contract-instruction.d.ts +36 -0
  461. package/dist/core/workflow/instruction/finding-contract-instruction.d.ts.map +1 -0
  462. package/dist/core/workflow/instruction/finding-contract-instruction.js +39 -0
  463. package/dist/core/workflow/instruction/finding-contract-instruction.js.map +1 -0
  464. package/dist/core/workflow/instruction/instruction-context.d.ts +16 -0
  465. package/dist/core/workflow/instruction/instruction-context.d.ts.map +1 -1
  466. package/dist/core/workflow/instruction/instruction-context.js +14 -18
  467. package/dist/core/workflow/instruction/instruction-context.js.map +1 -1
  468. package/dist/core/workflow/instruction/status-rules.d.ts.map +1 -1
  469. package/dist/core/workflow/instruction/status-rules.js +7 -2
  470. package/dist/core/workflow/instruction/status-rules.js.map +1 -1
  471. package/dist/core/workflow/permission-profile-resolution.d.ts +6 -0
  472. package/dist/core/workflow/permission-profile-resolution.d.ts.map +1 -1
  473. package/dist/core/workflow/permission-profile-resolution.js +11 -0
  474. package/dist/core/workflow/permission-profile-resolution.js.map +1 -1
  475. package/dist/core/workflow/phase-runner.d.ts +17 -10
  476. package/dist/core/workflow/phase-runner.d.ts.map +1 -1
  477. package/dist/core/workflow/phase-runner.js +1 -1
  478. package/dist/core/workflow/phase-runner.js.map +1 -1
  479. package/dist/core/workflow/provider-model-requirements.d.ts +6 -0
  480. package/dist/core/workflow/provider-model-requirements.d.ts.map +1 -0
  481. package/dist/core/workflow/provider-model-requirements.js +15 -0
  482. package/dist/core/workflow/provider-model-requirements.js.map +1 -0
  483. package/dist/core/workflow/provider-options-trace.d.ts +1 -1
  484. package/dist/core/workflow/provider-options-trace.d.ts.map +1 -1
  485. package/dist/core/workflow/provider-resolution.d.ts +14 -11
  486. package/dist/core/workflow/provider-resolution.d.ts.map +1 -1
  487. package/dist/core/workflow/provider-resolution.js +38 -26
  488. package/dist/core/workflow/provider-resolution.js.map +1 -1
  489. package/dist/core/workflow/report-phase-runner.d.ts +5 -2
  490. package/dist/core/workflow/report-phase-runner.d.ts.map +1 -1
  491. package/dist/core/workflow/report-phase-runner.js +135 -43
  492. package/dist/core/workflow/report-phase-runner.js.map +1 -1
  493. package/dist/core/workflow/status-judgment-phase.d.ts +2 -2
  494. package/dist/core/workflow/status-judgment-phase.d.ts.map +1 -1
  495. package/dist/core/workflow/status-judgment-phase.js +1 -7
  496. package/dist/core/workflow/status-judgment-phase.js.map +1 -1
  497. package/dist/core/workflow/system/system-step-effect-runner.js +2 -2
  498. package/dist/core/workflow/system/system-step-effect-runner.js.map +1 -1
  499. package/dist/core/workflow/system/system-step-services.d.ts +101 -0
  500. package/dist/core/workflow/system/system-step-services.d.ts.map +1 -1
  501. package/dist/core/workflow/types.d.ts +25 -8
  502. package/dist/core/workflow/types.d.ts.map +1 -1
  503. package/dist/features/analytics/events.d.ts +30 -3
  504. package/dist/features/analytics/events.d.ts.map +1 -1
  505. package/dist/features/analytics/events.js +1 -1
  506. package/dist/features/analytics/index.d.ts +2 -2
  507. package/dist/features/analytics/index.d.ts.map +1 -1
  508. package/dist/features/analytics/index.js.map +1 -1
  509. package/dist/features/analytics/writer.d.ts +8 -14
  510. package/dist/features/analytics/writer.d.ts.map +1 -1
  511. package/dist/features/analytics/writer.js +27 -17
  512. package/dist/features/analytics/writer.js.map +1 -1
  513. package/dist/features/exec/assistantSession.d.ts +2 -0
  514. package/dist/features/exec/assistantSession.d.ts.map +1 -1
  515. package/dist/features/exec/assistantSession.js +1 -1
  516. package/dist/features/exec/assistantSession.js.map +1 -1
  517. package/dist/features/exec/command.d.ts.map +1 -1
  518. package/dist/features/exec/command.js +98 -54
  519. package/dist/features/exec/command.js.map +1 -1
  520. package/dist/features/exec/commandAvailability.js +1 -1
  521. package/dist/features/exec/commandAvailability.js.map +1 -1
  522. package/dist/features/exec/configOps.d.ts.map +1 -1
  523. package/dist/features/exec/configOps.js +6 -5
  524. package/dist/features/exec/configOps.js.map +1 -1
  525. package/dist/features/exec/configValidation.d.ts +1 -1
  526. package/dist/features/exec/configValidation.d.ts.map +1 -1
  527. package/dist/features/exec/configValidation.js +9 -13
  528. package/dist/features/exec/configValidation.js.map +1 -1
  529. package/dist/features/exec/runtimeConfig.d.ts.map +1 -1
  530. package/dist/features/exec/runtimeConfig.js +4 -2
  531. package/dist/features/exec/runtimeConfig.js.map +1 -1
  532. package/dist/features/exec/setupMenu.js +2 -2
  533. package/dist/features/exec/setupMenu.js.map +1 -1
  534. package/dist/features/exec/workflowRunner.d.ts +2 -1
  535. package/dist/features/exec/workflowRunner.d.ts.map +1 -1
  536. package/dist/features/exec/workflowRunner.js +2 -1
  537. package/dist/features/exec/workflowRunner.js.map +1 -1
  538. package/dist/features/exec/workflowTemplate.d.ts.map +1 -1
  539. package/dist/features/exec/workflowTemplate.js +4 -4
  540. package/dist/features/exec/workflowTemplate.js.map +1 -1
  541. package/dist/features/interactive/aiCaller.d.ts +4 -2
  542. package/dist/features/interactive/aiCaller.d.ts.map +1 -1
  543. package/dist/features/interactive/aiCaller.js +38 -11
  544. package/dist/features/interactive/aiCaller.js.map +1 -1
  545. package/dist/features/interactive/assistantConfig.d.ts.map +1 -1
  546. package/dist/features/interactive/assistantConfig.js +3 -2
  547. package/dist/features/interactive/assistantConfig.js.map +1 -1
  548. package/dist/features/interactive/conversationLoop.d.ts.map +1 -1
  549. package/dist/features/interactive/conversationLoop.js +164 -141
  550. package/dist/features/interactive/conversationLoop.js.map +1 -1
  551. package/dist/features/interactive/conversationSession.d.ts +44 -0
  552. package/dist/features/interactive/conversationSession.d.ts.map +1 -0
  553. package/dist/features/interactive/conversationSession.js +133 -0
  554. package/dist/features/interactive/conversationSession.js.map +1 -0
  555. package/dist/features/interactive/imageAttachments.d.ts +12 -8
  556. package/dist/features/interactive/imageAttachments.d.ts.map +1 -1
  557. package/dist/features/interactive/imageAttachments.js +67 -14
  558. package/dist/features/interactive/imageAttachments.js.map +1 -1
  559. package/dist/features/interactive/index.d.ts +1 -0
  560. package/dist/features/interactive/index.d.ts.map +1 -1
  561. package/dist/features/interactive/index.js +1 -0
  562. package/dist/features/interactive/index.js.map +1 -1
  563. package/dist/features/interactive/instructModeTypes.d.ts +2 -2
  564. package/dist/features/interactive/instructModeTypes.d.ts.map +1 -1
  565. package/dist/features/interactive/interactive-summary.d.ts.map +1 -1
  566. package/dist/features/interactive/interactive-summary.js +8 -0
  567. package/dist/features/interactive/interactive-summary.js.map +1 -1
  568. package/dist/features/interactive/interactive.d.ts +9 -6
  569. package/dist/features/interactive/interactive.d.ts.map +1 -1
  570. package/dist/features/interactive/interactive.js +10 -4
  571. package/dist/features/interactive/interactive.js.map +1 -1
  572. package/dist/features/interactive/interactiveApplication.d.ts +5 -0
  573. package/dist/features/interactive/interactiveApplication.d.ts.map +1 -0
  574. package/dist/features/interactive/interactiveApplication.js +10 -0
  575. package/dist/features/interactive/interactiveApplication.js.map +1 -0
  576. package/dist/features/interactive/passthroughMode.d.ts.map +1 -1
  577. package/dist/features/interactive/passthroughMode.js +22 -16
  578. package/dist/features/interactive/passthroughMode.js.map +1 -1
  579. package/dist/features/interactive/promptSections.js +2 -2
  580. package/dist/features/interactive/promptSections.js.map +1 -1
  581. package/dist/features/interactive/quietMode.d.ts.map +1 -1
  582. package/dist/features/interactive/quietMode.js +55 -40
  583. package/dist/features/interactive/quietMode.js.map +1 -1
  584. package/dist/features/interactive/retryMode.d.ts.map +1 -1
  585. package/dist/features/interactive/retryMode.js +5 -4
  586. package/dist/features/interactive/retryMode.js.map +1 -1
  587. package/dist/features/mcp/operations.d.ts +25 -0
  588. package/dist/features/mcp/operations.d.ts.map +1 -0
  589. package/dist/features/mcp/operations.js +150 -0
  590. package/dist/features/mcp/operations.js.map +1 -0
  591. package/dist/features/mcp/schemas.d.ts +50 -0
  592. package/dist/features/mcp/schemas.d.ts.map +1 -0
  593. package/dist/features/mcp/schemas.js +59 -0
  594. package/dist/features/mcp/schemas.js.map +1 -0
  595. package/dist/features/mcp/server.d.ts +7 -0
  596. package/dist/features/mcp/server.d.ts.map +1 -0
  597. package/dist/features/mcp/server.js +36 -0
  598. package/dist/features/mcp/server.js.map +1 -0
  599. package/dist/features/pipeline/steps.d.ts +1 -1
  600. package/dist/features/pipeline/steps.d.ts.map +1 -1
  601. package/dist/features/pipeline/steps.js +6 -2
  602. package/dist/features/pipeline/steps.js.map +1 -1
  603. package/dist/features/prompt/preview.d.ts.map +1 -1
  604. package/dist/features/prompt/preview.js +37 -1
  605. package/dist/features/prompt/preview.js.map +1 -1
  606. package/dist/features/tasks/add/index.d.ts +8 -20
  607. package/dist/features/tasks/add/index.d.ts.map +1 -1
  608. package/dist/features/tasks/add/index.js +42 -61
  609. package/dist/features/tasks/add/index.js.map +1 -1
  610. package/dist/features/tasks/attachments.d.ts +4 -10
  611. package/dist/features/tasks/attachments.d.ts.map +1 -1
  612. package/dist/features/tasks/attachments.js +14 -42
  613. package/dist/features/tasks/attachments.js.map +1 -1
  614. package/dist/features/tasks/execute/analyticsEmitter.d.ts +7 -2
  615. package/dist/features/tasks/execute/analyticsEmitter.d.ts.map +1 -1
  616. package/dist/features/tasks/execute/analyticsEmitter.js +76 -2
  617. package/dist/features/tasks/execute/analyticsEmitter.js.map +1 -1
  618. package/dist/features/tasks/execute/outputFns.d.ts +1 -1
  619. package/dist/features/tasks/execute/outputFns.d.ts.map +1 -1
  620. package/dist/features/tasks/execute/outputFns.js +17 -1
  621. package/dist/features/tasks/execute/outputFns.js.map +1 -1
  622. package/dist/features/tasks/execute/postExecution.d.ts +4 -1
  623. package/dist/features/tasks/execute/postExecution.d.ts.map +1 -1
  624. package/dist/features/tasks/execute/postExecution.js +33 -14
  625. package/dist/features/tasks/execute/postExecution.js.map +1 -1
  626. package/dist/features/tasks/execute/resolveTask.d.ts +9 -3
  627. package/dist/features/tasks/execute/resolveTask.d.ts.map +1 -1
  628. package/dist/features/tasks/execute/resolveTask.js +46 -14
  629. package/dist/features/tasks/execute/resolveTask.js.map +1 -1
  630. package/dist/features/tasks/execute/runAllTasks.d.ts.map +1 -1
  631. package/dist/features/tasks/execute/runAllTasks.js +3 -0
  632. package/dist/features/tasks/execute/runAllTasks.js.map +1 -1
  633. package/dist/features/tasks/execute/runTaskExecution.d.ts +7 -1
  634. package/dist/features/tasks/execute/runTaskExecution.d.ts.map +1 -1
  635. package/dist/features/tasks/execute/runTaskExecution.js +11 -8
  636. package/dist/features/tasks/execute/runTaskExecution.js.map +1 -1
  637. package/dist/features/tasks/execute/taskExecution.d.ts +12 -3
  638. package/dist/features/tasks/execute/taskExecution.d.ts.map +1 -1
  639. package/dist/features/tasks/execute/taskExecution.js +63 -16
  640. package/dist/features/tasks/execute/taskExecution.js.map +1 -1
  641. package/dist/features/tasks/execute/taskResultHandler.d.ts +2 -2
  642. package/dist/features/tasks/execute/taskResultHandler.d.ts.map +1 -1
  643. package/dist/features/tasks/execute/taskResultHandler.js +8 -4
  644. package/dist/features/tasks/execute/taskResultHandler.js.map +1 -1
  645. package/dist/features/tasks/execute/taskWorkflowExecution.d.ts.map +1 -1
  646. package/dist/features/tasks/execute/taskWorkflowExecution.js +62 -9
  647. package/dist/features/tasks/execute/taskWorkflowExecution.js.map +1 -1
  648. package/dist/features/tasks/execute/traceTaskMetadata.js +3 -6
  649. package/dist/features/tasks/execute/traceTaskMetadata.js.map +1 -1
  650. package/dist/features/tasks/execute/types.d.ts +109 -7
  651. package/dist/features/tasks/execute/types.d.ts.map +1 -1
  652. package/dist/features/tasks/execute/workflowExecution.d.ts +3 -1
  653. package/dist/features/tasks/execute/workflowExecution.d.ts.map +1 -1
  654. package/dist/features/tasks/execute/workflowExecution.js +49 -5
  655. package/dist/features/tasks/execute/workflowExecution.js.map +1 -1
  656. package/dist/features/tasks/execute/workflowExecutionApi.d.ts +6 -0
  657. package/dist/features/tasks/execute/workflowExecutionApi.d.ts.map +1 -0
  658. package/dist/features/tasks/execute/workflowExecutionApi.js +25 -0
  659. package/dist/features/tasks/execute/workflowExecutionApi.js.map +1 -0
  660. package/dist/features/tasks/execute/workflowExecutionBootstrap.d.ts +3 -1
  661. package/dist/features/tasks/execute/workflowExecutionBootstrap.d.ts.map +1 -1
  662. package/dist/features/tasks/execute/workflowExecutionBootstrap.js +51 -20
  663. package/dist/features/tasks/execute/workflowExecutionBootstrap.js.map +1 -1
  664. package/dist/features/tasks/execute/workflowExecutionContext.d.ts.map +1 -1
  665. package/dist/features/tasks/execute/workflowExecutionContext.js +1 -1
  666. package/dist/features/tasks/execute/workflowExecutionContext.js.map +1 -1
  667. package/dist/features/tasks/execute/workflowExecutionEvents.d.ts +14 -1
  668. package/dist/features/tasks/execute/workflowExecutionEvents.d.ts.map +1 -1
  669. package/dist/features/tasks/execute/workflowExecutionEvents.js +246 -4
  670. package/dist/features/tasks/execute/workflowExecutionEvents.js.map +1 -1
  671. package/dist/features/tasks/list/instructMode.d.ts.map +1 -1
  672. package/dist/features/tasks/list/instructMode.js +5 -4
  673. package/dist/features/tasks/list/instructMode.js.map +1 -1
  674. package/dist/features/tasks/list/requeueHelpers.d.ts +1 -0
  675. package/dist/features/tasks/list/requeueHelpers.d.ts.map +1 -1
  676. package/dist/features/tasks/list/requeueHelpers.js +3 -0
  677. package/dist/features/tasks/list/requeueHelpers.js.map +1 -1
  678. package/dist/features/tasks/list/taskInstructionActions.d.ts.map +1 -1
  679. package/dist/features/tasks/list/taskInstructionActions.js +33 -25
  680. package/dist/features/tasks/list/taskInstructionActions.js.map +1 -1
  681. package/dist/features/tasks/list/taskRetryActions.d.ts.map +1 -1
  682. package/dist/features/tasks/list/taskRetryActions.js +34 -30
  683. package/dist/features/tasks/list/taskRetryActions.js.map +1 -1
  684. package/dist/features/tasks/resume/directInstructMode.d.ts.map +1 -1
  685. package/dist/features/tasks/resume/directInstructMode.js +11 -2
  686. package/dist/features/tasks/resume/directInstructMode.js.map +1 -1
  687. package/dist/features/tasks/resume/index.d.ts.map +1 -1
  688. package/dist/features/tasks/resume/index.js +73 -24
  689. package/dist/features/tasks/resume/index.js.map +1 -1
  690. package/dist/features/tasks/{list/retryTaskSpecAttachments.d.ts → retryTaskSpecAttachments.d.ts} +3 -1
  691. package/dist/features/tasks/retryTaskSpecAttachments.d.ts.map +1 -0
  692. package/dist/features/tasks/{list/retryTaskSpecAttachments.js → retryTaskSpecAttachments.js} +4 -3
  693. package/dist/features/tasks/retryTaskSpecAttachments.js.map +1 -0
  694. package/dist/features/tasks/taskContextValidation.d.ts +10 -0
  695. package/dist/features/tasks/taskContextValidation.d.ts.map +1 -0
  696. package/dist/features/tasks/taskContextValidation.js +73 -0
  697. package/dist/features/tasks/taskContextValidation.js.map +1 -0
  698. package/dist/features/tasks/watch/index.d.ts.map +1 -1
  699. package/dist/features/tasks/watch/index.js +1 -0
  700. package/dist/features/tasks/watch/index.js.map +1 -1
  701. package/dist/features/workflowAuthoring/doctor.d.ts.map +1 -1
  702. package/dist/features/workflowAuthoring/doctor.js +56 -1
  703. package/dist/features/workflowAuthoring/doctor.js.map +1 -1
  704. package/dist/infra/claude/image-input.d.ts.map +1 -1
  705. package/dist/infra/claude/image-input.js +3 -2
  706. package/dist/infra/claude/image-input.js.map +1 -1
  707. package/dist/infra/codex/client.d.ts.map +1 -1
  708. package/dist/infra/codex/client.js +29 -10
  709. package/dist/infra/codex/client.js.map +1 -1
  710. package/dist/infra/config/configNormalizers.d.ts +24 -2
  711. package/dist/infra/config/configNormalizers.d.ts.map +1 -1
  712. package/dist/infra/config/configNormalizers.js +77 -4
  713. package/dist/infra/config/configNormalizers.js.map +1 -1
  714. package/dist/infra/config/env/global-current-env-specs.d.ts.map +1 -1
  715. package/dist/infra/config/env/global-current-env-specs.js +2 -0
  716. package/dist/infra/config/env/global-current-env-specs.js.map +1 -1
  717. package/dist/infra/config/env/project-current-env-specs.d.ts.map +1 -1
  718. package/dist/infra/config/env/project-current-env-specs.js +2 -0
  719. package/dist/infra/config/env/project-current-env-specs.js.map +1 -1
  720. package/dist/infra/config/global/globalConfig.d.ts +1 -1
  721. package/dist/infra/config/global/globalConfig.d.ts.map +1 -1
  722. package/dist/infra/config/global/globalConfig.js +1 -1
  723. package/dist/infra/config/global/globalConfig.js.map +1 -1
  724. package/dist/infra/config/global/globalConfigAccessors.d.ts +6 -0
  725. package/dist/infra/config/global/globalConfigAccessors.d.ts.map +1 -1
  726. package/dist/infra/config/global/globalConfigAccessors.js +80 -1
  727. package/dist/infra/config/global/globalConfigAccessors.js.map +1 -1
  728. package/dist/infra/config/global/globalConfigCore.d.ts.map +1 -1
  729. package/dist/infra/config/global/globalConfigCore.js +5 -3
  730. package/dist/infra/config/global/globalConfigCore.js.map +1 -1
  731. package/dist/infra/config/global/globalConfigSerializer.d.ts.map +1 -1
  732. package/dist/infra/config/global/globalConfigSerializer.js +9 -1
  733. package/dist/infra/config/global/globalConfigSerializer.js.map +1 -1
  734. package/dist/infra/config/global/index.d.ts +1 -1
  735. package/dist/infra/config/global/index.d.ts.map +1 -1
  736. package/dist/infra/config/global/index.js +1 -1
  737. package/dist/infra/config/global/index.js.map +1 -1
  738. package/dist/infra/config/loaders/resource-resolver.d.ts.map +1 -1
  739. package/dist/infra/config/loaders/resource-resolver.js +22 -7
  740. package/dist/infra/config/loaders/resource-resolver.js.map +1 -1
  741. package/dist/infra/config/loaders/workflowCallContractValidator.d.ts.map +1 -1
  742. package/dist/infra/config/loaders/workflowCallContractValidator.js +11 -4
  743. package/dist/infra/config/loaders/workflowCallContractValidator.js.map +1 -1
  744. package/dist/infra/config/loaders/workflowCallContracts.d.ts.map +1 -1
  745. package/dist/infra/config/loaders/workflowCallContracts.js +5 -0
  746. package/dist/infra/config/loaders/workflowCallContracts.js.map +1 -1
  747. package/dist/infra/config/loaders/workflowCallResolver.d.ts +2 -2
  748. package/dist/infra/config/loaders/workflowCallResolver.d.ts.map +1 -1
  749. package/dist/infra/config/loaders/workflowCallResolver.js +3 -10
  750. package/dist/infra/config/loaders/workflowCallResolver.js.map +1 -1
  751. package/dist/infra/config/loaders/workflowCallableArgResolver.d.ts.map +1 -1
  752. package/dist/infra/config/loaders/workflowCallableArgResolver.js +27 -0
  753. package/dist/infra/config/loaders/workflowCallableArgResolver.js.map +1 -1
  754. package/dist/infra/config/loaders/workflowCallableRuleValidation.d.ts.map +1 -1
  755. package/dist/infra/config/loaders/workflowCallableRuleValidation.js +5 -0
  756. package/dist/infra/config/loaders/workflowCallableRuleValidation.js.map +1 -1
  757. package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.d.ts.map +1 -1
  758. package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.js +12 -1
  759. package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.js.map +1 -1
  760. package/dist/infra/config/loaders/workflowPackageScope.d.ts +1 -0
  761. package/dist/infra/config/loaders/workflowPackageScope.d.ts.map +1 -1
  762. package/dist/infra/config/loaders/workflowPackageScope.js +20 -2
  763. package/dist/infra/config/loaders/workflowPackageScope.js.map +1 -1
  764. package/dist/infra/config/loaders/workflowParser.d.ts.map +1 -1
  765. package/dist/infra/config/loaders/workflowParser.js +17 -7
  766. package/dist/infra/config/loaders/workflowParser.js.map +1 -1
  767. package/dist/infra/config/loaders/workflowPreview.d.ts +3 -0
  768. package/dist/infra/config/loaders/workflowPreview.d.ts.map +1 -1
  769. package/dist/infra/config/loaders/workflowPreview.js +43 -5
  770. package/dist/infra/config/loaders/workflowPreview.js.map +1 -1
  771. package/dist/infra/config/loaders/workflowRuleNormalizer.d.ts +10 -0
  772. package/dist/infra/config/loaders/workflowRuleNormalizer.d.ts.map +1 -1
  773. package/dist/infra/config/loaders/workflowRuleNormalizer.js +70 -1
  774. package/dist/infra/config/loaders/workflowRuleNormalizer.js.map +1 -1
  775. package/dist/infra/config/loaders/workflowStepNormalizer.d.ts.map +1 -1
  776. package/dist/infra/config/loaders/workflowStepNormalizer.js +41 -13
  777. package/dist/infra/config/loaders/workflowStepNormalizer.js.map +1 -1
  778. package/dist/infra/config/project/projectConfig.d.ts.map +1 -1
  779. package/dist/infra/config/project/projectConfig.js +19 -3
  780. package/dist/infra/config/project/projectConfig.js.map +1 -1
  781. package/dist/infra/config/project/sessionStore.d.ts +2 -2
  782. package/dist/infra/config/project/sessionStore.d.ts.map +1 -1
  783. package/dist/infra/config/project/sessionStore.js +12 -4
  784. package/dist/infra/config/project/sessionStore.js.map +1 -1
  785. package/dist/infra/config/providerModelRequirements.d.ts +2 -0
  786. package/dist/infra/config/providerModelRequirements.d.ts.map +1 -0
  787. package/dist/infra/config/providerModelRequirements.js +2 -0
  788. package/dist/infra/config/providerModelRequirements.js.map +1 -0
  789. package/dist/infra/config/resolveConfigValue.d.ts.map +1 -1
  790. package/dist/infra/config/resolveConfigValue.js +1 -0
  791. package/dist/infra/config/resolveConfigValue.js.map +1 -1
  792. package/dist/infra/config/traced/tracedConfigSchema.d.ts.map +1 -1
  793. package/dist/infra/config/traced/tracedConfigSchema.js +6 -0
  794. package/dist/infra/config/traced/tracedConfigSchema.js.map +1 -1
  795. package/dist/infra/git/format.d.ts +1 -0
  796. package/dist/infra/git/format.d.ts.map +1 -1
  797. package/dist/infra/git/format.js +21 -0
  798. package/dist/infra/git/format.js.map +1 -1
  799. package/dist/infra/git/index.d.ts +1 -1
  800. package/dist/infra/git/index.d.ts.map +1 -1
  801. package/dist/infra/git/types.d.ts +16 -4
  802. package/dist/infra/git/types.d.ts.map +1 -1
  803. package/dist/infra/github/GitHubProvider.d.ts +2 -1
  804. package/dist/infra/github/GitHubProvider.d.ts.map +1 -1
  805. package/dist/infra/github/GitHubProvider.js +4 -1
  806. package/dist/infra/github/GitHubProvider.js.map +1 -1
  807. package/dist/infra/github/issue.d.ts +2 -1
  808. package/dist/infra/github/issue.d.ts.map +1 -1
  809. package/dist/infra/github/issue.js +23 -2
  810. package/dist/infra/github/issue.js.map +1 -1
  811. package/dist/infra/gitlab/GitLabProvider.d.ts +2 -1
  812. package/dist/infra/gitlab/GitLabProvider.d.ts.map +1 -1
  813. package/dist/infra/gitlab/GitLabProvider.js +4 -1
  814. package/dist/infra/gitlab/GitLabProvider.js.map +1 -1
  815. package/dist/infra/gitlab/issue.d.ts +2 -1
  816. package/dist/infra/gitlab/issue.d.ts.map +1 -1
  817. package/dist/infra/gitlab/issue.js +30 -2
  818. package/dist/infra/gitlab/issue.js.map +1 -1
  819. package/dist/infra/opencode/OpenCodeStreamHandler.d.ts +4 -0
  820. package/dist/infra/opencode/OpenCodeStreamHandler.d.ts.map +1 -1
  821. package/dist/infra/opencode/OpenCodeStreamHandler.js.map +1 -1
  822. package/dist/infra/opencode/allowedTools.d.ts.map +1 -1
  823. package/dist/infra/opencode/allowedTools.js +0 -1
  824. package/dist/infra/opencode/allowedTools.js.map +1 -1
  825. package/dist/infra/opencode/client.d.ts +5 -1
  826. package/dist/infra/opencode/client.d.ts.map +1 -1
  827. package/dist/infra/opencode/client.js +519 -174
  828. package/dist/infra/opencode/client.js.map +1 -1
  829. package/dist/infra/opencode/index.d.ts +2 -2
  830. package/dist/infra/opencode/index.d.ts.map +1 -1
  831. package/dist/infra/opencode/index.js +1 -1
  832. package/dist/infra/opencode/index.js.map +1 -1
  833. package/dist/infra/opencode/types.d.ts +42 -0
  834. package/dist/infra/opencode/types.d.ts.map +1 -1
  835. package/dist/infra/opencode/types.js +88 -1
  836. package/dist/infra/opencode/types.js.map +1 -1
  837. package/dist/infra/opencode/unavailable-tool-loop.d.ts +25 -0
  838. package/dist/infra/opencode/unavailable-tool-loop.d.ts.map +1 -1
  839. package/dist/infra/opencode/unavailable-tool-loop.js +74 -0
  840. package/dist/infra/opencode/unavailable-tool-loop.js.map +1 -1
  841. package/dist/infra/providers/claude-headless.d.ts.map +1 -1
  842. package/dist/infra/providers/claude-headless.js +0 -2
  843. package/dist/infra/providers/claude-headless.js.map +1 -1
  844. package/dist/infra/providers/claude-terminal.d.ts.map +1 -1
  845. package/dist/infra/providers/claude-terminal.js +0 -2
  846. package/dist/infra/providers/claude-terminal.js.map +1 -1
  847. package/dist/infra/providers/claude.d.ts.map +1 -1
  848. package/dist/infra/providers/claude.js +0 -2
  849. package/dist/infra/providers/claude.js.map +1 -1
  850. package/dist/infra/providers/copilot.d.ts.map +1 -1
  851. package/dist/infra/providers/copilot.js +3 -0
  852. package/dist/infra/providers/copilot.js.map +1 -1
  853. package/dist/infra/providers/cursor.d.ts.map +1 -1
  854. package/dist/infra/providers/cursor.js +3 -0
  855. package/dist/infra/providers/cursor.js.map +1 -1
  856. package/dist/infra/providers/imageAttachmentPrompt.d.ts +0 -1
  857. package/dist/infra/providers/imageAttachmentPrompt.d.ts.map +1 -1
  858. package/dist/infra/providers/imageAttachmentPrompt.js +19 -2
  859. package/dist/infra/providers/imageAttachmentPrompt.js.map +1 -1
  860. package/dist/infra/providers/imageAttachments.d.ts +3 -0
  861. package/dist/infra/providers/imageAttachments.d.ts.map +1 -0
  862. package/dist/infra/providers/imageAttachments.js +47 -0
  863. package/dist/infra/providers/imageAttachments.js.map +1 -0
  864. package/dist/infra/providers/index.d.ts +1 -1
  865. package/dist/infra/providers/index.d.ts.map +1 -1
  866. package/dist/infra/providers/index.js.map +1 -1
  867. package/dist/infra/providers/mock.d.ts.map +1 -1
  868. package/dist/infra/providers/mock.js +5 -0
  869. package/dist/infra/providers/mock.js.map +1 -1
  870. package/dist/infra/providers/opencode.d.ts +3 -2
  871. package/dist/infra/providers/opencode.d.ts.map +1 -1
  872. package/dist/infra/providers/opencode.js +31 -6
  873. package/dist/infra/providers/opencode.js.map +1 -1
  874. package/dist/infra/providers/types.d.ts +8 -0
  875. package/dist/infra/providers/types.d.ts.map +1 -1
  876. package/dist/infra/task/clone-exec.d.ts.map +1 -1
  877. package/dist/infra/task/clone-exec.js +31 -0
  878. package/dist/infra/task/clone-exec.js.map +1 -1
  879. package/dist/infra/task/enqueueService.d.ts +115 -0
  880. package/dist/infra/task/enqueueService.d.ts.map +1 -0
  881. package/dist/infra/task/enqueueService.js +191 -0
  882. package/dist/infra/task/enqueueService.js.map +1 -0
  883. package/dist/infra/task/enqueuedTaskFile.d.ts +6 -0
  884. package/dist/infra/task/enqueuedTaskFile.d.ts.map +1 -0
  885. package/dist/infra/task/enqueuedTaskFile.js +55 -0
  886. package/dist/infra/task/enqueuedTaskFile.js.map +1 -0
  887. package/dist/infra/task/issueTask.d.ts +20 -0
  888. package/dist/infra/task/issueTask.d.ts.map +1 -0
  889. package/dist/{features/tasks/add → infra/task}/issueTask.js +61 -43
  890. package/dist/infra/task/issueTask.js.map +1 -0
  891. package/dist/infra/task/listSerializer.d.ts +1 -0
  892. package/dist/infra/task/listSerializer.d.ts.map +1 -1
  893. package/dist/infra/task/listSerializer.js +1 -0
  894. package/dist/infra/task/listSerializer.js.map +1 -1
  895. package/dist/infra/task/mapper.d.ts.map +1 -1
  896. package/dist/infra/task/mapper.js +1 -0
  897. package/dist/infra/task/mapper.js.map +1 -1
  898. package/dist/infra/task/taskExecutionSchemas.d.ts +3 -0
  899. package/dist/infra/task/taskExecutionSchemas.d.ts.map +1 -1
  900. package/dist/infra/task/taskExecutionSchemas.js +4 -2
  901. package/dist/infra/task/taskExecutionSchemas.js.map +1 -1
  902. package/dist/infra/task/taskRecordSchemas.d.ts +2 -0
  903. package/dist/infra/task/taskRecordSchemas.d.ts.map +1 -1
  904. package/dist/infra/workflow/system/DefaultSystemStepServices.d.ts.map +1 -1
  905. package/dist/infra/workflow/system/DefaultSystemStepServices.js +7 -7
  906. package/dist/infra/workflow/system/DefaultSystemStepServices.js.map +1 -1
  907. package/dist/infra/workflow/system/system-enqueue-effect.d.ts.map +1 -1
  908. package/dist/infra/workflow/system/system-enqueue-effect.js +78 -20
  909. package/dist/infra/workflow/system/system-enqueue-effect.js.map +1 -1
  910. package/dist/infra/workflow/system/system-git-context.d.ts +6 -6
  911. package/dist/infra/workflow/system/system-git-context.d.ts.map +1 -1
  912. package/dist/infra/workflow/system/system-git-context.js +13 -13
  913. package/dist/infra/workflow/system/system-git-context.js.map +1 -1
  914. package/dist/infra/workflow/system/system-issue-input-resolver.d.ts +3 -3
  915. package/dist/infra/workflow/system/system-issue-input-resolver.d.ts.map +1 -1
  916. package/dist/infra/workflow/system/system-issue-input-resolver.js +8 -8
  917. package/dist/infra/workflow/system/system-issue-input-resolver.js.map +1 -1
  918. package/dist/infra/workflow/system/system-pr-effects.d.ts.map +1 -1
  919. package/dist/infra/workflow/system/system-pr-effects.js +6 -3
  920. package/dist/infra/workflow/system/system-pr-effects.js.map +1 -1
  921. package/dist/infra/workflow/system/system-pr-input-resolver.d.ts +3 -3
  922. package/dist/infra/workflow/system/system-pr-input-resolver.d.ts.map +1 -1
  923. package/dist/infra/workflow/system/system-pr-input-resolver.js +8 -8
  924. package/dist/infra/workflow/system/system-pr-input-resolver.js.map +1 -1
  925. package/dist/infra/workflow/system/system-sync-effects.js +2 -2
  926. package/dist/infra/workflow/system/system-sync-effects.js.map +1 -1
  927. package/dist/shared/package-info.d.ts +2 -0
  928. package/dist/shared/package-info.d.ts.map +1 -0
  929. package/dist/shared/package-info.js +5 -0
  930. package/dist/shared/package-info.js.map +1 -0
  931. package/dist/shared/prompts/en/exec_assistant_instruct.md +2 -0
  932. package/dist/shared/prompts/en/finding_manager_instruction.md +9 -2
  933. package/dist/shared/prompts/en/opencode_review_agent_prompt.md +20 -23
  934. package/dist/shared/prompts/en/parts/finding_contract_instruction.md +25 -0
  935. package/dist/shared/prompts/en/parts/git_rules.md +5 -0
  936. package/dist/shared/prompts/{ja → en/parts}/structured_json_schema_instruction.md +2 -0
  937. package/dist/shared/prompts/en/{structured_json_step_instruction.md → parts/structured_json_step_instruction.md} +2 -0
  938. package/dist/shared/prompts/ja/exec_assistant_instruct.md +2 -0
  939. package/dist/shared/prompts/ja/finding_manager_instruction.md +9 -2
  940. package/dist/shared/prompts/ja/opencode_review_agent_prompt.md +20 -23
  941. package/dist/shared/prompts/ja/parts/finding_contract_instruction.md +25 -0
  942. package/dist/shared/prompts/ja/parts/git_rules.md +5 -0
  943. package/dist/shared/prompts/{en → ja/parts}/structured_json_schema_instruction.md +4 -2
  944. package/dist/shared/prompts/ja/{structured_json_step_instruction.md → parts/structured_json_step_instruction.md} +4 -2
  945. package/dist/shared/types/image-attachments.d.ts +10 -0
  946. package/dist/shared/types/image-attachments.d.ts.map +1 -0
  947. package/dist/shared/types/image-attachments.js +2 -0
  948. package/dist/shared/types/image-attachments.js.map +1 -0
  949. package/dist/shared/utils/entrypoint.d.ts +2 -0
  950. package/dist/shared/utils/entrypoint.d.ts.map +1 -0
  951. package/dist/shared/utils/entrypoint.js +15 -0
  952. package/dist/shared/utils/entrypoint.js.map +1 -0
  953. package/dist/shared/utils/imageAttachmentReferences.d.ts +7 -0
  954. package/dist/shared/utils/imageAttachmentReferences.d.ts.map +1 -0
  955. package/dist/shared/utils/imageAttachmentReferences.js +64 -0
  956. package/dist/shared/utils/imageAttachmentReferences.js.map +1 -0
  957. package/dist/shared/utils/index.d.ts +1 -0
  958. package/dist/shared/utils/index.d.ts.map +1 -1
  959. package/dist/shared/utils/index.js +1 -0
  960. package/dist/shared/utils/index.js.map +1 -1
  961. package/dist/shared/utils/safeExternalErrorMessage.d.ts +2 -0
  962. package/dist/shared/utils/safeExternalErrorMessage.d.ts.map +1 -0
  963. package/dist/shared/utils/safeExternalErrorMessage.js +22 -0
  964. package/dist/shared/utils/safeExternalErrorMessage.js.map +1 -0
  965. package/package.json +32 -13
  966. package/builtins/en/facets/instructions/review-pure.md +0 -9
  967. package/builtins/en/facets/personas/pure-reviewer.md +0 -22
  968. package/builtins/ja/facets/instructions/review-pure.md +0 -9
  969. package/builtins/ja/facets/personas/pure-reviewer.md +0 -22
  970. package/dist/core/workflow/claude-effort-compatibility.d.ts +0 -3
  971. package/dist/core/workflow/claude-effort-compatibility.d.ts.map +0 -1
  972. package/dist/core/workflow/claude-effort-compatibility.js +0 -28
  973. package/dist/core/workflow/claude-effort-compatibility.js.map +0 -1
  974. package/dist/core/workflow/provider-model-compatibility.d.ts +0 -6
  975. package/dist/core/workflow/provider-model-compatibility.d.ts.map +0 -1
  976. package/dist/core/workflow/provider-model-compatibility.js +0 -20
  977. package/dist/core/workflow/provider-model-compatibility.js.map +0 -1
  978. package/dist/features/tasks/add/issueTask.d.ts +0 -7
  979. package/dist/features/tasks/add/issueTask.d.ts.map +0 -1
  980. package/dist/features/tasks/add/issueTask.js.map +0 -1
  981. package/dist/features/tasks/list/retryTaskSpecAttachments.d.ts.map +0 -1
  982. package/dist/features/tasks/list/retryTaskSpecAttachments.js.map +0 -1
  983. package/dist/infra/config/providerModelCompatibility.d.ts +0 -2
  984. package/dist/infra/config/providerModelCompatibility.d.ts.map +0 -1
  985. package/dist/infra/config/providerModelCompatibility.js +0 -2
  986. package/dist/infra/config/providerModelCompatibility.js.map +0 -1
  987. /package/dist/shared/prompts/en/{source_context_section_guidance.md → parts/source_context_section_guidance.md} +0 -0
  988. /package/dist/shared/prompts/en/{source_context_system_guard.md → parts/source_context_system_guard.md} +0 -0
  989. /package/dist/shared/prompts/ja/{source_context_section_guidance.md → parts/source_context_section_guidance.md} +0 -0
  990. /package/dist/shared/prompts/ja/{source_context_system_guard.md → parts/source_context_system_guard.md} +0 -0
@@ -5,19 +5,43 @@
5
5
  * sub-step output with `[name]` for readable interleaved display.
6
6
  */
7
7
  import { executeAgent } from '../../../agents/agent-usecases.js';
8
+ import { isWorkflowCallStep } from '../step-kind.js';
8
9
  import { ParallelLogger } from './parallel-logger.js';
9
- import { needsStatusJudgmentPhase, runReportPhase, runStatusJudgmentPhase } from '../phase-runner.js';
10
+ import { needsStatusJudgmentPhase, runReportPhase, ReportPhaseGenerationError, runStatusJudgmentPhase } from '../phase-runner.js';
10
11
  import { detectMatchedRule } from '../evaluation/index.js';
12
+ import { evaluateWhenExpression } from '../evaluation/when-evaluator.js';
13
+ import { resolvePhase3Adoption } from '../evaluation/rule-utils.js';
11
14
  import { incrementStepIteration } from './state-manager.js';
12
15
  import { createLogger, getErrorMessage } from '../../../shared/utils/index.js';
13
16
  import { buildSessionKey } from '../session-key.js';
14
17
  import { runWithPhaseSpan } from '../observability/workflowSpans.js';
18
+ import { resolveAutoRoutingBatch } from '../auto-routing/resolver.js';
15
19
  import { buildPhaseExecutionId } from '../../../shared/utils/phaseExecutionId.js';
16
20
  import { sanitizeSensitiveText } from '../../../shared/utils/sensitiveText.js';
17
21
  import { RawFindingsStructuredOutput, runFindingManagerForParallelStep, } from '../findings/manager-runner.js';
18
- import { renderFindingLedgerInstructionSummary, renderFindingLedgerReportSummary } from '../findings/context.js';
22
+ import { ledgerHasOpenFindings, ledgerHasWaivedFindings, renderFindingLedgerInstructionSummary, renderFindingLedgerReportSummary } from '../findings/context.js';
19
23
  import { isNonAiReturnValueRule } from '../evaluation/rule-utils.js';
24
+ import { compactSessionBeforePhase1 } from './session-compaction.js';
20
25
  const log = createLogger('parallel-runner');
26
+ function isAgentParallelSubStep(step) {
27
+ return !isWorkflowCallStep(step) && step.kind !== 'system';
28
+ }
29
+ function mergeTerminalCorrectionResponse(originalResponse, correctionResponse) {
30
+ const baseResponse = { ...originalResponse };
31
+ delete baseResponse.error;
32
+ delete baseResponse.errorKind;
33
+ delete baseResponse.rateLimitInfo;
34
+ return {
35
+ ...baseResponse,
36
+ status: correctionResponse.status,
37
+ timestamp: correctionResponse.timestamp,
38
+ ...(correctionResponse.error !== undefined ? { error: correctionResponse.error } : {}),
39
+ ...(correctionResponse.errorKind !== undefined ? { errorKind: correctionResponse.errorKind } : {}),
40
+ ...(correctionResponse.rateLimitInfo !== undefined ? { rateLimitInfo: correctionResponse.rateLimitInfo } : {}),
41
+ ...(correctionResponse.sessionId !== undefined ? { sessionId: correctionResponse.sessionId } : {}),
42
+ ...(correctionResponse.providerUsage !== undefined ? { providerUsage: correctionResponse.providerUsage } : {}),
43
+ };
44
+ }
21
45
  /**
22
46
  * Simple semaphore for controlling concurrency.
23
47
  * Limits the number of concurrent async operations.
@@ -63,6 +87,9 @@ export class ParallelRunner {
63
87
  throw new Error(`Step "${step.name}" has no parallel sub-steps`);
64
88
  }
65
89
  const subSteps = step.parallel;
90
+ // 直前ステップ(通常は coder の fix)の応答。異議申告の裁定材料として
91
+ // manager に渡すため、サブステップ実行で lastOutput が変わる前に捕捉する。
92
+ const priorStepResponseText = state.lastOutput?.content;
66
93
  const stepIteration = incrementStepIteration(state, step.name);
67
94
  log.debug('Running parallel step', {
68
95
  step: step.name,
@@ -95,29 +122,67 @@ export class ParallelRunner {
95
122
  log.debug('Concurrency limit enabled', { step: step.name, concurrency: step.concurrency });
96
123
  }
97
124
  const findingLedgerCopyPath = this.prepareFindingContractLedgerCopy();
125
+ const agentSubSteps = subSteps.filter(isAgentParallelSubStep);
126
+ const routedProviderInfoByStep = this.deps.engineOptions.autoRouting
127
+ ? await resolveAutoRoutingBatch({
128
+ autoRouting: this.deps.engineOptions.autoRouting,
129
+ items: agentSubSteps.map((subStep) => ({
130
+ id: subStep.name,
131
+ step: {
132
+ name: subStep.name,
133
+ tags: subStep.tags,
134
+ personaKey: subStep.providerRoutingPersonaKey,
135
+ instruction: subStep.instruction,
136
+ },
137
+ currentProviderInfo: this.deps.optionsBuilder.resolveStepProviderModel(subStep, runtime),
138
+ })),
139
+ routeBatchWithAi: this.deps.engineOptions.autoRoutingAiRouter?.routeBatch,
140
+ logger: log,
141
+ })
142
+ : new Map();
98
143
  // Run all sub-steps concurrently (failures are captured, not thrown)
99
144
  // When semaphore is set, at most `concurrency` sub-steps execute simultaneously.
145
+ const subStepStartedAtByName = new Map();
146
+ const subStepInstructionByName = new Map();
100
147
  const settled = await Promise.allSettled(subSteps.map(async (subStep, index) => {
101
148
  if (semaphore) {
102
149
  await semaphore.acquire();
103
150
  }
151
+ const startedAt = Date.now();
152
+ subStepStartedAtByName.set(subStep.name, startedAt);
104
153
  try {
154
+ if (isWorkflowCallStep(subStep)) {
155
+ subStepInstructionByName.set(subStep.name, '');
156
+ return await this.runWorkflowCallSubStep(subStep, state, runtime, startedAt);
157
+ }
158
+ if (!isAgentParallelSubStep(subStep)) {
159
+ throw new Error(`Unsupported parallel sub-step kind for "${subStep.name}"`);
160
+ }
105
161
  const executableSubStep = this.withFindingContractStructuredOutput(subStep, findingLedgerCopyPath);
162
+ const subRuntime = routedProviderInfoByStep.has(subStep.name)
163
+ ? {
164
+ ...runtime,
165
+ providerInfo: routedProviderInfoByStep.get(subStep.name),
166
+ }
167
+ : runtime;
106
168
  const subIteration = incrementStepIteration(state, subStep.name);
107
- const subInstruction = this.deps.stepExecutor.buildInstruction(executableSubStep, subIteration, state, task, maxSteps, runtime?.fallback, findingLedgerCopyPath
169
+ const subInstruction = this.deps.stepExecutor.buildInstruction(executableSubStep, subIteration, state, task, maxSteps, subRuntime?.fallback, findingLedgerCopyPath
108
170
  ? {
109
171
  ledgerCopyPath: findingLedgerCopyPath,
110
172
  ledgerSummary: this.renderFindingLedgerSummary(),
111
173
  reportLedgerSummary: this.renderFindingLedgerReportSummary(),
174
+ hasOpenFindings: this.ledgerHasOpenFindings(),
175
+ hasWaivedFindings: this.ledgerHasWaivedFindings(),
112
176
  rawFindingsJsonSchema: RawFindingsStructuredOutput.schema,
113
177
  }
114
178
  : undefined);
115
179
  const phase1Instruction = findingLedgerCopyPath
116
- ? this.deps.stepExecutor.buildPhase1Instruction(subInstruction, executableSubStep, runtime)
180
+ ? this.deps.stepExecutor.buildPhase1Instruction(subInstruction, executableSubStep, subRuntime)
117
181
  : subInstruction;
182
+ subStepInstructionByName.set(subStep.name, phase1Instruction);
118
183
  const parentIteration = state.iteration;
119
- const subPm = runtime
120
- ? this.deps.optionsBuilder.resolveStepProviderModel(executableSubStep, runtime)
184
+ const subPm = subRuntime
185
+ ? this.deps.optionsBuilder.resolveStepProviderModel(executableSubStep, subRuntime)
121
186
  : this.deps.optionsBuilder.resolveStepProviderModel(executableSubStep);
122
187
  const subRuleCtx = {
123
188
  ...parentRuleCtx,
@@ -129,7 +194,8 @@ export class ParallelRunner {
129
194
  // Session key uses the same resolved provider as Phase 1 options and resume phases.
130
195
  const subSessionKey = buildSessionKey(executableSubStep, subPm.provider);
131
196
  // Phase 1: main execution (Write excluded if sub-step has report)
132
- const baseOptions = this.deps.optionsBuilder.buildAgentOptions(executableSubStep, runtime);
197
+ const baseOptions = this.deps.optionsBuilder.buildAgentOptions(executableSubStep, subRuntime);
198
+ await compactSessionBeforePhase1(executableSubStep, baseOptions);
133
199
  let didEmitPhaseStart = false;
134
200
  let resolvedPromptParts;
135
201
  const phaseExecutionId = buildPhaseExecutionId({
@@ -138,6 +204,7 @@ export class ParallelRunner {
138
204
  phase: 1,
139
205
  sequence: 1,
140
206
  });
207
+ let phase1CompletionExecutionId = phaseExecutionId;
141
208
  // Override onStream with parallel logger's prefixed handler (immutable)
142
209
  const agentOptions = parallelLogger
143
210
  ? { ...baseOptions, onStream: parallelLogger.createStreamHandler(subStep.name, index) }
@@ -167,39 +234,181 @@ export class ParallelRunner {
167
234
  error: result.error,
168
235
  providerUsage: result.providerUsage,
169
236
  }));
237
+ if (subResponse.status === 'error' && subResponse.errorKind !== 'rate_limit') {
238
+ // 並列レビューの1席のプロバイダ障害で走行全体を落とさない。
239
+ // 空転はセッション文脈起因のことが多いため(長文脈での生成品質
240
+ // 崩壊を実測)、再試行は resume を切った新しいセッションで行う。
241
+ // rate limit は再試行で叩かず既存の rate_limited 経路に委ねる。
242
+ log.warn('Parallel sub-step provider error; retrying once with a fresh session', {
243
+ step: subStep.name,
244
+ error: subResponse.error,
245
+ });
246
+ const retryPhaseExecutionId = buildPhaseExecutionId({
247
+ step: subStep.name,
248
+ iteration: parentIteration,
249
+ phase: 1,
250
+ sequence: 2,
251
+ });
252
+ // 再試行は専用IDで phase:start を発火する(初回IDの二重発火はしない)。
253
+ // onPromptResolved を再試行自身のものに差し替えることで、初回試行が
254
+ // プロンプト解決前に死んだ場合でも、再試行の成功が phase:start を
255
+ // 発火させ、後段の Missing prompt parts 検査を正しく満たす。
256
+ const retryOptions = {
257
+ ...agentOptions,
258
+ sessionId: undefined,
259
+ onPromptResolved: (promptParts) => {
260
+ resolvedPromptParts = promptParts;
261
+ this.deps.onPhaseStart?.(subStep, 1, 'execute', phase1Instruction, promptParts, retryPhaseExecutionId, parentIteration);
262
+ phase1CompletionExecutionId = retryPhaseExecutionId;
263
+ didEmitPhaseStart = true;
264
+ },
265
+ };
266
+ subResponse = await runWithPhaseSpan({
267
+ enabled: this.deps.observabilityEnabled,
268
+ runId: this.deps.observabilityRunId,
269
+ workflowName: this.deps.getWorkflowName(),
270
+ step: executableSubStep,
271
+ iteration: parentIteration,
272
+ phase: 1,
273
+ phaseName: 'execute',
274
+ instruction: phase1Instruction,
275
+ phaseExecutionId: retryPhaseExecutionId,
276
+ workflowStack: this.deps.getCurrentWorkflowStack?.(),
277
+ sanitizeText: this.deps.sanitizeObservabilityText,
278
+ providerInfo: subPm,
279
+ }, () => executeAgent(executableSubStep.persona, phase1Instruction, retryOptions), (result) => ({
280
+ status: result.status,
281
+ content: result.content,
282
+ error: result.error,
283
+ providerUsage: result.providerUsage,
284
+ }));
285
+ if (subResponse.sessionId === undefined) {
286
+ // 再試行がセッションIDを返さなかった場合、劣化していた旧セッションを
287
+ // resume 対象に残さない(残すと次の実行で文脈崩壊が再発する)
288
+ updatePersonaSession(subSessionKey, undefined);
289
+ }
290
+ }
170
291
  if (findingLedgerCopyPath) {
171
- subResponse = this.deps.stepExecutor.normalizeStructuredOutput(executableSubStep, subResponse, runtime);
292
+ const normalized = this.deps.stepExecutor.normalizeStructuredOutputWithDiagnostics(executableSubStep, subResponse, subRuntime);
293
+ subResponse = normalized.response;
294
+ if (normalized.invalidDetail !== undefined) {
295
+ // 弱いモデルは大きな構造化出力で JSON を壊しやすい。1回だけ
296
+ // 同一セッションで是正を求め、直れば元の応答(レポート本文)に
297
+ // 構造化出力だけをマージして続行する。
298
+ log.info('Structured output invalid for parallel sub-step, requesting one correction', {
299
+ step: subStep.name,
300
+ detail: normalized.invalidDetail,
301
+ });
302
+ const correctionInstruction = [
303
+ 'Your structured output failed schema validation:',
304
+ normalized.invalidDetail,
305
+ '',
306
+ 'Re-emit ONLY the corrected structured output matching the schema.',
307
+ 'Do not repeat the report text. Do not add commentary.',
308
+ ].join('\n');
309
+ // 是正は JSON 再出力のみ: ツール・編集権限は不要なので絞り、
310
+ // Phase 1 のイベントコールバックも引き継がない。
311
+ const correctiveResponse = await executeAgent(executableSubStep.persona, correctionInstruction, {
312
+ ...agentOptions,
313
+ permissionMode: 'readonly',
314
+ allowedTools: [],
315
+ onPromptResolved: undefined,
316
+ onStream: undefined,
317
+ ...(subResponse.sessionId !== undefined ? { sessionId: subResponse.sessionId } : {}),
318
+ });
319
+ // 非ネイティブ構造化出力プロバイダでは是正 JSON が content に入る
320
+ // ため、是正応答をそのまま正規化する(本文の差し替えはマージ時)。
321
+ const renormalized = this.deps.stepExecutor.normalizeStructuredOutputWithDiagnostics(executableSubStep, correctiveResponse, subRuntime);
322
+ if (correctiveResponse.status === 'rate_limited' || correctiveResponse.status === 'blocked') {
323
+ // レート制限・ブロックは専用フロー(メタデータ伝播・バックオフ)
324
+ // が上位にあるため、error に潰さず、Phase 1 本文を保持して伝える。
325
+ subResponse = mergeTerminalCorrectionResponse(subResponse, correctiveResponse);
326
+ }
327
+ else if (renormalized.invalidDetail !== undefined || renormalized.response.status !== 'done') {
328
+ subResponse = {
329
+ ...subResponse,
330
+ status: 'error',
331
+ error: `Step "${subStep.name}" structured output remained invalid after one correction: ${renormalized.invalidDetail ?? renormalized.response.error ?? 'correction failed'}`,
332
+ };
333
+ }
334
+ else {
335
+ subResponse = {
336
+ ...subResponse,
337
+ structuredOutput: renormalized.response.structuredOutput,
338
+ ...(correctiveResponse.sessionId !== undefined ? { sessionId: correctiveResponse.sessionId } : {}),
339
+ };
340
+ }
341
+ }
172
342
  }
173
343
  if (!didEmitPhaseStart) {
174
344
  throw new Error(`Missing prompt parts for phase start: ${subStep.name}:1`);
175
345
  }
176
- updatePersonaSession(subSessionKey, subResponse.sessionId);
177
- this.deps.onPhaseComplete?.(subStep, 1, 'execute', subResponse.content, subResponse.status, subResponse.error, phaseExecutionId, parentIteration);
346
+ if (subResponse.sessionId !== undefined) {
347
+ updatePersonaSession(subSessionKey, subResponse.sessionId);
348
+ }
349
+ this.deps.onPhaseComplete?.(subStep, 1, 'execute', subResponse.content, subResponse.status, subResponse.error, phase1CompletionExecutionId, parentIteration);
350
+ if (subResponse.status === 'done'
351
+ && subResponse.structuredOutput === undefined
352
+ && subResponse.content.trim().length === 0) {
353
+ log.info('Phase 1 returned empty output for parallel sub-step, treating as error', { step: subStep.name });
354
+ subResponse = { ...subResponse, status: 'error', error: 'Phase 1 returned empty output' };
355
+ }
178
356
  if (subResponse.status === 'error' || subResponse.status === 'blocked' || subResponse.status === 'rate_limited') {
179
357
  state.stepOutputs.set(subStep.name, subResponse);
180
- return { subStep, response: subResponse, instruction: phase1Instruction, providerInfo: subPm };
358
+ return {
359
+ subStep,
360
+ response: subResponse,
361
+ instruction: phase1Instruction,
362
+ providerInfo: subPm,
363
+ durationMs: Math.max(0, subResponse.timestamp.getTime() - startedAt),
364
+ };
181
365
  }
182
366
  // Phase 2/3 context resolves the same runtime-aware session key as Phase 1.
183
- const phaseCtx = this.deps.optionsBuilder.buildPhaseRunnerContext(state, subResponse.content, updatePersonaSession, this.deps.onPhaseStart, this.deps.onPhaseComplete, this.deps.onJudgeStage, parentIteration, runtime);
367
+ const phaseCtx = this.deps.optionsBuilder.buildPhaseRunnerContext(state, subResponse.content, updatePersonaSession, this.deps.onPhaseStart, this.deps.onPhaseComplete, this.deps.onJudgeStage, parentIteration, subRuntime);
184
368
  // Phase 2: report output for sub-step
185
369
  if (subStep.outputContracts && subStep.outputContracts.length > 0) {
186
- const reportResult = await runReportPhase(subStep, subIteration, phaseCtx);
187
- if (reportResult && 'blocked' in reportResult) {
188
- const blockedResponse = {
189
- ...subResponse,
190
- status: 'blocked',
191
- content: reportResult.response.content,
192
- };
193
- state.stepOutputs.set(subStep.name, blockedResponse);
194
- return { subStep, response: blockedResponse, instruction: phase1Instruction, providerInfo: subPm };
370
+ try {
371
+ const reportResult = await runReportPhase(subStep, subIteration, phaseCtx);
372
+ if (reportResult && 'blocked' in reportResult) {
373
+ const blockedResponse = {
374
+ ...subResponse,
375
+ status: 'blocked',
376
+ content: reportResult.response.content,
377
+ };
378
+ state.stepOutputs.set(subStep.name, blockedResponse);
379
+ return {
380
+ subStep,
381
+ response: blockedResponse,
382
+ instruction: phase1Instruction,
383
+ providerInfo: subPm,
384
+ durationMs: Math.max(0, blockedResponse.timestamp.getTime() - startedAt),
385
+ };
386
+ }
387
+ if (reportResult && 'rateLimited' in reportResult) {
388
+ const rateLimitedResponse = {
389
+ ...reportResult.response,
390
+ persona: subStep.name,
391
+ };
392
+ state.stepOutputs.set(subStep.name, rateLimitedResponse);
393
+ return {
394
+ subStep,
395
+ response: rateLimitedResponse,
396
+ instruction: phase1Instruction,
397
+ providerInfo: subPm,
398
+ durationMs: Math.max(0, rateLimitedResponse.timestamp.getTime() - startedAt),
399
+ };
400
+ }
195
401
  }
196
- if (reportResult && 'rateLimited' in reportResult) {
197
- const rateLimitedResponse = {
198
- ...reportResult.response,
199
- persona: subStep.name,
200
- };
201
- state.stepOutputs.set(subStep.name, rateLimitedResponse);
202
- return { subStep, response: rateLimitedResponse, instruction: phase1Instruction, providerInfo: subPm };
402
+ catch (reportError) {
403
+ if (reportError instanceof ReportPhaseGenerationError) {
404
+ log.info('Report phase failed for parallel sub-step, continuing to status judgment', {
405
+ step: subStep.name,
406
+ error: getErrorMessage(reportError),
407
+ });
408
+ }
409
+ else {
410
+ throw reportError;
411
+ }
203
412
  }
204
413
  }
205
414
  // Phase 3: status judgment for sub-step
@@ -215,8 +424,26 @@ export class ParallelRunner {
215
424
  error: getErrorMessage(error),
216
425
  });
217
426
  }
427
+ // Phase 3 はルール番号を直接採用するため、ガード(findings 条件)を
428
+ // ここで評価する。不成立なら採用せず、ガード対応済みの通常ルール
429
+ // 評価へフォールバックする(StepExecutor 側と同じ扱い)。
430
+ // 採用判定は共通ヘルパに委譲(StepExecutor と同一ロジック)
431
+ const subAdoption = subPhase3 !== undefined
432
+ ? resolvePhase3Adoption(subStep.rules, subPhase3, state, this.deps.getInteractive(), evaluateWhenExpression)
433
+ : undefined;
434
+ if (subAdoption !== undefined) {
435
+ subPhase3 = subAdoption.result;
436
+ }
437
+ const subPhase3GuardFailed = subAdoption?.blocked === true;
438
+ if (subPhase3GuardFailed && subPhase3 !== undefined) {
439
+ log.debug('Phase 3 rule guard failed for sub-step; falling back to rule evaluation', {
440
+ step: subStep.name,
441
+ ruleIndex: subPhase3.ruleIndex,
442
+ ruleCondition: subStep.rules?.[subPhase3.ruleIndex]?.condition,
443
+ });
444
+ }
218
445
  let finalResponse;
219
- if (subPhase3) {
446
+ if (subPhase3 && !subPhase3GuardFailed) {
220
447
  finalResponse = { ...subResponse, matchedRuleIndex: subPhase3.ruleIndex, matchedRuleMethod: subPhase3.method };
221
448
  }
222
449
  else {
@@ -238,12 +465,19 @@ export class ParallelRunner {
238
465
  response: qualityGateResult.response,
239
466
  instruction: phase1Instruction,
240
467
  providerInfo: subPm,
468
+ durationMs: Math.max(0, qualityGateResult.response.timestamp.getTime() - startedAt),
241
469
  qualityGateFailure: true,
242
470
  };
243
471
  }
244
472
  state.stepOutputs.set(subStep.name, finalResponse);
245
473
  this.deps.stepExecutor.emitStepReports(subStep);
246
- return { subStep, response: finalResponse, instruction: phase1Instruction, providerInfo: subPm };
474
+ return {
475
+ subStep,
476
+ response: finalResponse,
477
+ instruction: phase1Instruction,
478
+ providerInfo: subPm,
479
+ durationMs: Math.max(0, finalResponse.timestamp.getTime() - startedAt),
480
+ };
247
481
  }
248
482
  finally {
249
483
  if (semaphore) {
@@ -267,8 +501,21 @@ export class ParallelRunner {
267
501
  error: errorMsg,
268
502
  };
269
503
  state.stepOutputs.set(failedStep.name, errorResponse);
270
- return { subStep: failedStep, response: errorResponse, instruction: '', providerInfo: undefined };
504
+ const startedAt = subStepStartedAtByName.get(failedStep.name);
505
+ const instruction = subStepInstructionByName.get(failedStep.name);
506
+ return {
507
+ subStep: failedStep,
508
+ response: errorResponse,
509
+ instruction: instruction === undefined ? '' : instruction,
510
+ providerInfo: routedProviderInfoByStep.get(failedStep.name),
511
+ durationMs: startedAt === undefined
512
+ ? 0
513
+ : Math.max(0, errorResponse.timestamp.getTime() - startedAt),
514
+ ...(isWorkflowCallStep(failedStep) ? { workflowCallExecutionRejected: true } : {}),
515
+ };
271
516
  });
517
+ this.mergeWorkflowCallSubStepEffects(step, subResults, state, updatePersonaSession);
518
+ this.emitSubStepRoutingDecisionEvents(subResults, state.iteration);
272
519
  const terminalResults = this.collectTerminalResults(subResults);
273
520
  const rateLimitedResult = terminalResults.find((r) => r.response.status === 'rate_limited');
274
521
  if (rateLimitedResult) {
@@ -328,7 +575,7 @@ export class ParallelRunner {
328
575
  },
329
576
  };
330
577
  }
331
- const findingManagerResult = await this.runFindingContractManager(step, stepIteration, subResults, findingLedgerCopyPath);
578
+ const findingManagerResult = await this.runFindingContractManager(step, stepIteration, subResults, findingLedgerCopyPath, priorStepResponseText);
332
579
  if (findingManagerResult?.status === 'invalid_manager_output') {
333
580
  const response = this.createFindingManagerInvalidOutputResult({
334
581
  step,
@@ -371,7 +618,59 @@ export class ParallelRunner {
371
618
  this.deps.stepExecutor.emitStepReports(step);
372
619
  return { response: aggregatedResponse, instruction: aggregatedInstruction, providerInfo: parentPm };
373
620
  }
374
- async runFindingContractManager(step, stepIteration, subResults, ledgerCopyPath) {
621
+ async runWorkflowCallSubStep(subStep, state, runtime, startedAt) {
622
+ if (!isWorkflowCallStep(subStep)) {
623
+ throw new Error(`Parallel sub-step "${subStep.name}" is not a workflow_call`);
624
+ }
625
+ incrementStepIteration(state, subStep.name);
626
+ const workflowCallRunner = this.deps.getWorkflowCallRunner?.();
627
+ if (!workflowCallRunner) {
628
+ throw new Error(`Parallel workflow_call sub-step "${subStep.name}" requires workflowCallRunner`);
629
+ }
630
+ const subRuntime = runtime?.fallback
631
+ ? runtime
632
+ : workflowCallRunner.resolveRuntime(subStep);
633
+ const result = await workflowCallRunner.runIsolated(subStep, subRuntime);
634
+ return {
635
+ subStep,
636
+ response: result.result.response,
637
+ instruction: result.result.instruction,
638
+ providerInfo: result.result.providerInfo,
639
+ durationMs: Math.max(0, result.result.response.timestamp.getTime() - startedAt),
640
+ workflowCallSessionUpdates: result.sessionUpdates,
641
+ workflowCallStateSync: result.stateSync,
642
+ };
643
+ }
644
+ mergeWorkflowCallSubStepEffects(step, subResults, state, updatePersonaSession) {
645
+ let didSyncWorkflowCallState = false;
646
+ for (const result of subResults) {
647
+ if (!isWorkflowCallStep(result.subStep)) {
648
+ continue;
649
+ }
650
+ state.stepOutputs.set(result.subStep.name, result.response);
651
+ if (result.workflowCallExecutionRejected) {
652
+ continue;
653
+ }
654
+ if (!result.workflowCallSessionUpdates) {
655
+ throw new Error(`Parallel workflow_call sub-step "${result.subStep.name}" did not return session updates`);
656
+ }
657
+ if (!result.workflowCallStateSync) {
658
+ throw new Error(`Parallel workflow_call sub-step "${result.subStep.name}" did not return state sync`);
659
+ }
660
+ state.iteration = Math.max(state.iteration, result.workflowCallStateSync.iteration);
661
+ if (result.workflowCallStateSync.maxSteps !== undefined) {
662
+ this.deps.updateMaxSteps(result.workflowCallStateSync.maxSteps);
663
+ }
664
+ didSyncWorkflowCallState = true;
665
+ for (const [sessionKey, sessionId] of result.workflowCallSessionUpdates) {
666
+ updatePersonaSession(sessionKey, sessionId);
667
+ }
668
+ }
669
+ if (didSyncWorkflowCallState) {
670
+ this.deps.setActiveResumePoint(step, state.iteration);
671
+ }
672
+ }
673
+ async runFindingContractManager(step, stepIteration, subResults, ledgerCopyPath, priorStepResponseText) {
375
674
  if (!this.deps.findingContract) {
376
675
  return undefined;
377
676
  }
@@ -380,6 +679,8 @@ export class ParallelRunner {
380
679
  }
381
680
  const result = await runFindingManagerForParallelStep({
382
681
  contract: this.deps.findingContract,
682
+ workflowProvider: this.deps.workflowProvider,
683
+ workflowModel: this.deps.workflowModel,
383
684
  ledgerStore: this.deps.findingLedgerStore,
384
685
  optionsBuilder: this.deps.optionsBuilder,
385
686
  stepExecutor: this.deps.stepExecutor,
@@ -390,6 +691,7 @@ export class ParallelRunner {
390
691
  runId: this.deps.getRunId(),
391
692
  timestamp: new Date().toISOString(),
392
693
  ledgerCopyPath,
694
+ priorStepResponseText,
393
695
  });
394
696
  if (result.status === 'updated') {
395
697
  this.deps.refreshFindingsState();
@@ -397,6 +699,15 @@ export class ParallelRunner {
397
699
  }
398
700
  return result;
399
701
  }
702
+ emitSubStepRoutingDecisionEvents(subResults, iteration) {
703
+ for (const result of subResults) {
704
+ const providerInfo = result.providerInfo;
705
+ if (providerInfo?.autoRoutingDecision === undefined) {
706
+ continue;
707
+ }
708
+ this.deps.emitEvent('routing:decision', result.subStep, result.response, result.instruction, providerInfo, 'parallel', result.durationMs ?? 0, iteration, this.deps.getWorkflowName());
709
+ }
710
+ }
400
711
  prepareFindingContractLedgerCopy() {
401
712
  if (!this.deps.findingContract) {
402
713
  return undefined;
@@ -406,6 +717,18 @@ export class ParallelRunner {
406
717
  }
407
718
  return this.deps.findingLedgerStore.createRunCopy();
408
719
  }
720
+ ledgerHasOpenFindings() {
721
+ if (!this.deps.findingLedgerStore) {
722
+ return false;
723
+ }
724
+ return ledgerHasOpenFindings(this.deps.findingLedgerStore.loadLedger());
725
+ }
726
+ ledgerHasWaivedFindings() {
727
+ if (!this.deps.findingLedgerStore) {
728
+ return false;
729
+ }
730
+ return ledgerHasWaivedFindings(this.deps.findingLedgerStore.loadLedger());
731
+ }
409
732
  renderFindingLedgerSummary() {
410
733
  if (!this.deps.findingLedgerStore) {
411
734
  throw new Error('Finding contract is configured but finding ledger store is not available');