@zhixuan92/multi-model-agent-core 4.5.3 → 4.6.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 (271) hide show
  1. package/README.md +8 -3
  2. package/dist/escalation/delegate-with-escalation.d.ts +2 -2
  3. package/dist/escalation/delegate-with-escalation.d.ts.map +1 -1
  4. package/dist/escalation/delegate-with-escalation.js +11 -17
  5. package/dist/escalation/delegate-with-escalation.js.map +1 -1
  6. package/dist/escalation/fallback-helpers.d.ts +5 -5
  7. package/dist/escalation/fallback-helpers.d.ts.map +1 -1
  8. package/dist/escalation/fallback-helpers.js +5 -3
  9. package/dist/escalation/fallback-helpers.js.map +1 -1
  10. package/dist/events/event-builder.d.ts +36 -5
  11. package/dist/events/event-builder.d.ts.map +1 -1
  12. package/dist/events/event-builder.js +175 -33
  13. package/dist/events/event-builder.js.map +1 -1
  14. package/dist/events/observability-events.d.ts +6 -0
  15. package/dist/events/observability-events.d.ts.map +1 -1
  16. package/dist/events/observability-events.js +5 -0
  17. package/dist/events/observability-events.js.map +1 -1
  18. package/dist/events/telemetry-types.d.ts +10 -0
  19. package/dist/events/telemetry-types.d.ts.map +1 -1
  20. package/dist/events/verbose-log-channel.d.ts +7 -7
  21. package/dist/events/verbose-log-channel.js +10 -10
  22. package/dist/index.d.ts +9 -3
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +8 -2
  25. package/dist/index.js.map +1 -1
  26. package/dist/lifecycle/annotate-parser.d.ts +9 -0
  27. package/dist/lifecycle/annotate-parser.d.ts.map +1 -0
  28. package/dist/lifecycle/annotate-parser.js +83 -0
  29. package/dist/lifecycle/annotate-parser.js.map +1 -0
  30. package/dist/lifecycle/annotate-prompts.d.ts +9 -0
  31. package/dist/lifecycle/annotate-prompts.d.ts.map +1 -0
  32. package/dist/lifecycle/annotate-prompts.js +86 -0
  33. package/dist/lifecycle/annotate-prompts.js.map +1 -0
  34. package/dist/lifecycle/auto-register-context-block.d.ts +2 -2
  35. package/dist/lifecycle/auto-register-context-block.d.ts.map +1 -1
  36. package/dist/lifecycle/auto-register-context-block.js.map +1 -1
  37. package/dist/lifecycle/build-cancelled-result.d.ts +11 -0
  38. package/dist/lifecycle/build-cancelled-result.d.ts.map +1 -0
  39. package/dist/lifecycle/build-cancelled-result.js +27 -0
  40. package/dist/lifecycle/build-cancelled-result.js.map +1 -0
  41. package/dist/lifecycle/executor-output-types.d.ts +2 -2
  42. package/dist/lifecycle/executor-output-types.d.ts.map +1 -1
  43. package/dist/lifecycle/fallback-report.d.ts +2 -2
  44. package/dist/lifecycle/fallback-report.d.ts.map +1 -1
  45. package/dist/lifecycle/fallback-report.js.map +1 -1
  46. package/dist/lifecycle/findings-parser.d.ts +2 -0
  47. package/dist/lifecycle/findings-parser.d.ts.map +1 -1
  48. package/dist/lifecycle/findings-parser.js +9 -4
  49. package/dist/lifecycle/findings-parser.js.map +1 -1
  50. package/dist/lifecycle/git-toplevel.d.ts +12 -0
  51. package/dist/lifecycle/git-toplevel.d.ts.map +1 -0
  52. package/dist/lifecycle/git-toplevel.js +49 -0
  53. package/dist/lifecycle/git-toplevel.js.map +1 -0
  54. package/dist/lifecycle/handlers/annotator.d.ts +2 -1
  55. package/dist/lifecycle/handlers/annotator.d.ts.map +1 -1
  56. package/dist/lifecycle/handlers/annotator.js +225 -7
  57. package/dist/lifecycle/handlers/annotator.js.map +1 -1
  58. package/dist/lifecycle/handlers/baseline-handlers.d.ts +10 -5
  59. package/dist/lifecycle/handlers/baseline-handlers.d.ts.map +1 -1
  60. package/dist/lifecycle/handlers/baseline-handlers.js +206 -316
  61. package/dist/lifecycle/handlers/baseline-handlers.js.map +1 -1
  62. package/dist/lifecycle/handlers/enrich-runtime-result.d.ts +3 -0
  63. package/dist/lifecycle/handlers/enrich-runtime-result.d.ts.map +1 -0
  64. package/dist/lifecycle/handlers/enrich-runtime-result.js +191 -0
  65. package/dist/lifecycle/handlers/enrich-runtime-result.js.map +1 -0
  66. package/dist/lifecycle/handlers/git-commit-handler.d.ts +3 -2
  67. package/dist/lifecycle/handlers/git-commit-handler.d.ts.map +1 -1
  68. package/dist/lifecycle/handlers/git-commit-handler.js +139 -110
  69. package/dist/lifecycle/handlers/git-commit-handler.js.map +1 -1
  70. package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts +7 -13
  71. package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts.map +1 -1
  72. package/dist/lifecycle/handlers/prepare-execution-context-handler.js +72 -49
  73. package/dist/lifecycle/handlers/prepare-execution-context-handler.js.map +1 -1
  74. package/dist/lifecycle/handlers/register-context-block-handlers.d.ts +2 -1
  75. package/dist/lifecycle/handlers/register-context-block-handlers.d.ts.map +1 -1
  76. package/dist/lifecycle/handlers/register-context-block-handlers.js +35 -14
  77. package/dist/lifecycle/handlers/register-context-block-handlers.js.map +1 -1
  78. package/dist/lifecycle/handlers/review-handler.d.ts +2 -1
  79. package/dist/lifecycle/handlers/review-handler.d.ts.map +1 -1
  80. package/dist/lifecycle/handlers/review-handler.js +152 -154
  81. package/dist/lifecycle/handlers/review-handler.js.map +1 -1
  82. package/dist/lifecycle/handlers/rework-handler.d.ts +2 -1
  83. package/dist/lifecycle/handlers/rework-handler.d.ts.map +1 -1
  84. package/dist/lifecycle/handlers/rework-handler.js +62 -14
  85. package/dist/lifecycle/handlers/rework-handler.js.map +1 -1
  86. package/dist/lifecycle/handlers/task-executor.d.ts +5 -4
  87. package/dist/lifecycle/handlers/task-executor.d.ts.map +1 -1
  88. package/dist/lifecycle/handlers/task-executor.js +153 -74
  89. package/dist/lifecycle/handlers/task-executor.js.map +1 -1
  90. package/dist/lifecycle/handlers/terminal-handlers.d.ts +22 -0
  91. package/dist/lifecycle/handlers/terminal-handlers.d.ts.map +1 -1
  92. package/dist/lifecycle/handlers/terminal-handlers.js +86 -5
  93. package/dist/lifecycle/handlers/terminal-handlers.js.map +1 -1
  94. package/dist/lifecycle/lifecycle-context.d.ts +31 -3
  95. package/dist/lifecycle/lifecycle-context.d.ts.map +1 -1
  96. package/dist/lifecycle/lifecycle-dispatcher.d.ts +18 -19
  97. package/dist/lifecycle/lifecycle-dispatcher.d.ts.map +1 -1
  98. package/dist/lifecycle/lifecycle-dispatcher.js +38 -22
  99. package/dist/lifecycle/lifecycle-dispatcher.js.map +1 -1
  100. package/dist/lifecycle/lifecycle-driver.d.ts +15 -8
  101. package/dist/lifecycle/lifecycle-driver.d.ts.map +1 -1
  102. package/dist/lifecycle/lifecycle-driver.js +110 -29
  103. package/dist/lifecycle/lifecycle-driver.js.map +1 -1
  104. package/dist/lifecycle/merge-stage-stats.d.ts +3 -3
  105. package/dist/lifecycle/merge-stage-stats.d.ts.map +1 -1
  106. package/dist/lifecycle/merge-stage-stats.js +2 -2
  107. package/dist/lifecycle/merge-stage-stats.js.map +1 -1
  108. package/dist/lifecycle/perform-implementation.d.ts +3 -0
  109. package/dist/lifecycle/perform-implementation.d.ts.map +1 -0
  110. package/dist/lifecycle/perform-implementation.js +264 -0
  111. package/dist/lifecycle/perform-implementation.js.map +1 -0
  112. package/dist/lifecycle/repo-hygiene.d.ts +14 -0
  113. package/dist/lifecycle/repo-hygiene.d.ts.map +1 -0
  114. package/dist/lifecycle/repo-hygiene.js +71 -0
  115. package/dist/lifecycle/repo-hygiene.js.map +1 -0
  116. package/dist/lifecycle/shared-compute.d.ts +4 -4
  117. package/dist/lifecycle/shared-compute.d.ts.map +1 -1
  118. package/dist/lifecycle/shared-compute.js +1 -1
  119. package/dist/lifecycle/shared-compute.js.map +1 -1
  120. package/dist/lifecycle/stage-io.d.ts +139 -0
  121. package/dist/lifecycle/stage-io.d.ts.map +1 -0
  122. package/dist/lifecycle/stage-io.js +20 -0
  123. package/dist/lifecycle/stage-io.js.map +1 -0
  124. package/dist/lifecycle/stage-plan-builder.d.ts +3 -3
  125. package/dist/lifecycle/stage-plan-builder.d.ts.map +1 -1
  126. package/dist/lifecycle/stage-plan-builder.js +157 -128
  127. package/dist/lifecycle/stage-plan-builder.js.map +1 -1
  128. package/dist/lifecycle/stage-plan-types.d.ts +5 -21
  129. package/dist/lifecycle/stage-plan-types.d.ts.map +1 -1
  130. package/dist/lifecycle/stage-progression.d.ts +3 -15
  131. package/dist/lifecycle/stage-progression.d.ts.map +1 -1
  132. package/dist/lifecycle/stage-progression.js +48 -91
  133. package/dist/lifecycle/stage-progression.js.map +1 -1
  134. package/dist/lifecycle/task-completion-summary.d.ts +2 -2
  135. package/dist/lifecycle/task-completion-summary.d.ts.map +1 -1
  136. package/dist/lifecycle/task-completion-summary.js +0 -6
  137. package/dist/lifecycle/task-completion-summary.js.map +1 -1
  138. package/dist/lifecycle/task-executor.d.ts +23 -0
  139. package/dist/lifecycle/task-executor.d.ts.map +1 -1
  140. package/dist/lifecycle/task-executor.js +77 -5
  141. package/dist/lifecycle/task-executor.js.map +1 -1
  142. package/dist/lifecycle/task-grouping.d.ts +19 -0
  143. package/dist/lifecycle/task-grouping.d.ts.map +1 -0
  144. package/dist/lifecycle/task-grouping.js +48 -0
  145. package/dist/lifecycle/task-grouping.js.map +1 -0
  146. package/dist/lifecycle/task-runner.d.ts +20 -7
  147. package/dist/lifecycle/task-runner.d.ts.map +1 -1
  148. package/dist/lifecycle/task-runner.js +42 -278
  149. package/dist/lifecycle/task-runner.js.map +1 -1
  150. package/dist/lifecycle/tool-config-types.d.ts +9 -0
  151. package/dist/lifecycle/tool-config-types.d.ts.map +1 -1
  152. package/dist/lifecycle/worker-output-contract.d.ts +9 -15
  153. package/dist/lifecycle/worker-output-contract.d.ts.map +1 -1
  154. package/dist/lifecycle/worker-output-contract.js +45 -30
  155. package/dist/lifecycle/worker-output-contract.js.map +1 -1
  156. package/dist/providers/assemble-run-result.d.ts +3 -3
  157. package/dist/providers/assemble-run-result.d.ts.map +1 -1
  158. package/dist/providers/assemble-run-result.js +20 -9
  159. package/dist/providers/assemble-run-result.js.map +1 -1
  160. package/dist/providers/claude-session.d.ts.map +1 -1
  161. package/dist/providers/claude-session.js +1 -0
  162. package/dist/providers/claude-session.js.map +1 -1
  163. package/dist/providers/claude.js.map +1 -1
  164. package/dist/providers/codex-cli-launch.js +1 -1
  165. package/dist/providers/codex-cli-launch.js.map +1 -1
  166. package/dist/providers/codex-cli-session.d.ts +4 -1
  167. package/dist/providers/codex-cli-session.d.ts.map +1 -1
  168. package/dist/providers/codex-cli-session.js +73 -46
  169. package/dist/providers/codex-cli-session.js.map +1 -1
  170. package/dist/providers/codex.js.map +1 -1
  171. package/dist/providers/index.d.ts +1 -0
  172. package/dist/providers/index.d.ts.map +1 -1
  173. package/dist/providers/index.js +1 -0
  174. package/dist/providers/index.js.map +1 -1
  175. package/dist/providers/normalize-claude.d.ts +2 -0
  176. package/dist/providers/normalize-claude.d.ts.map +1 -1
  177. package/dist/providers/normalize-claude.js +1 -0
  178. package/dist/providers/normalize-claude.js.map +1 -1
  179. package/dist/providers/run-annotator-turn.d.ts +24 -0
  180. package/dist/providers/run-annotator-turn.d.ts.map +1 -0
  181. package/dist/providers/run-annotator-turn.js +43 -0
  182. package/dist/providers/run-annotator-turn.js.map +1 -0
  183. package/dist/providers/run-worker-turn.d.ts +26 -0
  184. package/dist/providers/run-worker-turn.d.ts.map +1 -0
  185. package/dist/providers/run-worker-turn.js +58 -0
  186. package/dist/providers/run-worker-turn.js.map +1 -0
  187. package/dist/providers/runner-types.d.ts +1 -1
  188. package/dist/providers/runner-types.d.ts.map +1 -1
  189. package/dist/reporting/headline-composer.d.ts +3 -3
  190. package/dist/reporting/headline-composer.d.ts.map +1 -1
  191. package/dist/review/index.d.ts +4 -3
  192. package/dist/review/index.d.ts.map +1 -1
  193. package/dist/review/index.js +7 -4
  194. package/dist/review/index.js.map +1 -1
  195. package/dist/review/parse-review-report.d.ts +7 -1
  196. package/dist/review/parse-review-report.d.ts.map +1 -1
  197. package/dist/review/parse-review-report.js +13 -21
  198. package/dist/review/parse-review-report.js.map +1 -1
  199. package/dist/review/review-verdict-mapping.d.ts +3 -3
  200. package/dist/review/review-verdict-mapping.d.ts.map +1 -1
  201. package/dist/review/review-verdict-mapping.js +1 -1
  202. package/dist/review/review-verdict-mapping.js.map +1 -1
  203. package/dist/review/run-reviewer.d.ts +40 -0
  204. package/dist/review/run-reviewer.d.ts.map +1 -0
  205. package/dist/review/run-reviewer.js +54 -0
  206. package/dist/review/run-reviewer.js.map +1 -0
  207. package/dist/review/templates/quality-review.d.ts +5 -0
  208. package/dist/review/templates/quality-review.d.ts.map +1 -1
  209. package/dist/review/templates/quality-review.js +35 -25
  210. package/dist/review/templates/quality-review.js.map +1 -1
  211. package/dist/review/templates/spec-review.d.ts +6 -0
  212. package/dist/review/templates/spec-review.d.ts.map +1 -1
  213. package/dist/review/templates/spec-review.js +36 -8
  214. package/dist/review/templates/spec-review.js.map +1 -1
  215. package/dist/stores/batch-cache.d.ts +3 -3
  216. package/dist/stores/batch-cache.d.ts.map +1 -1
  217. package/dist/stores/batch-cache.js.map +1 -1
  218. package/dist/stores/batch-registry.d.ts +31 -0
  219. package/dist/stores/batch-registry.d.ts.map +1 -1
  220. package/dist/stores/batch-registry.js +12 -0
  221. package/dist/stores/batch-registry.js.map +1 -1
  222. package/dist/tools/debug/tool-config.js +1 -1
  223. package/dist/tools/debug/tool-config.js.map +1 -1
  224. package/dist/tools/delegate/tool-config.d.ts.map +1 -1
  225. package/dist/tools/delegate/tool-config.js +3 -1
  226. package/dist/tools/delegate/tool-config.js.map +1 -1
  227. package/dist/tools/execute-plan/tool-config.d.ts.map +1 -1
  228. package/dist/tools/execute-plan/tool-config.js +3 -1
  229. package/dist/tools/execute-plan/tool-config.js.map +1 -1
  230. package/dist/tools/investigate/tool-config.js +1 -1
  231. package/dist/tools/investigate/tool-config.js.map +1 -1
  232. package/dist/tools/retry/tool-config.js.map +1 -1
  233. package/dist/types/run-result.d.ts +164 -213
  234. package/dist/types/run-result.d.ts.map +1 -1
  235. package/dist/types/run-result.js +17 -0
  236. package/dist/types/run-result.js.map +1 -1
  237. package/dist/types.d.ts +1 -1
  238. package/dist/types.d.ts.map +1 -1
  239. package/package.json +1 -1
  240. package/dist/lifecycle/handlers/derive-terminal-status.d.ts +0 -10
  241. package/dist/lifecycle/handlers/derive-terminal-status.d.ts.map +0 -1
  242. package/dist/lifecycle/handlers/derive-terminal-status.js +0 -35
  243. package/dist/lifecycle/handlers/derive-terminal-status.js.map +0 -1
  244. package/dist/lifecycle/handlers/files-written-cross-check.d.ts +0 -27
  245. package/dist/lifecycle/handlers/files-written-cross-check.d.ts.map +0 -1
  246. package/dist/lifecycle/handlers/files-written-cross-check.js +0 -91
  247. package/dist/lifecycle/handlers/files-written-cross-check.js.map +0 -1
  248. package/dist/lifecycle/handlers/verify-stage.d.ts +0 -37
  249. package/dist/lifecycle/handlers/verify-stage.d.ts.map +0 -1
  250. package/dist/lifecycle/handlers/verify-stage.js +0 -208
  251. package/dist/lifecycle/handlers/verify-stage.js.map +0 -1
  252. package/dist/review/default-engines.d.ts +0 -3
  253. package/dist/review/default-engines.d.ts.map +0 -1
  254. package/dist/review/default-engines.js +0 -22
  255. package/dist/review/default-engines.js.map +0 -1
  256. package/dist/review/reviewer-engine.d.ts +0 -53
  257. package/dist/review/reviewer-engine.d.ts.map +0 -1
  258. package/dist/review/reviewer-engine.js +0 -47
  259. package/dist/review/reviewer-engine.js.map +0 -1
  260. package/dist/review/reviewer-output-parser.d.ts +0 -12
  261. package/dist/review/reviewer-output-parser.d.ts.map +0 -1
  262. package/dist/review/reviewer-output-parser.js +0 -213
  263. package/dist/review/reviewer-output-parser.js.map +0 -1
  264. package/dist/review/reviewer-prompt-builder.d.ts +0 -21
  265. package/dist/review/reviewer-prompt-builder.d.ts.map +0 -1
  266. package/dist/review/reviewer-prompt-builder.js +0 -22
  267. package/dist/review/reviewer-prompt-builder.js.map +0 -1
  268. package/dist/review/templates/annotate-completion.d.ts +0 -12
  269. package/dist/review/templates/annotate-completion.d.ts.map +0 -1
  270. package/dist/review/templates/annotate-completion.js +0 -72
  271. package/dist/review/templates/annotate-completion.js.map +0 -1
@@ -0,0 +1,20 @@
1
+ // One canonical place for stage I/O contracts. Imported by stage-plan-builder,
2
+ // lifecycle-driver, every handler, and compose.
3
+ // All routes that flow through the per-task lifecycle (implement → review →
4
+ // rework → commit → annotate → compose → terminal). `retry` and `research`
5
+ // share the same flow as their underlying route — retry re-runs a prior
6
+ // batch's tasks; research is an alias for explore's worker shape.
7
+ export const ALL_TASK_ROUTES = ['delegate', 'execute-plan', 'retry', 'audit', 'review', 'debug', 'investigate', 'explore', 'research'];
8
+ export const WRITE_ROUTES = ['delegate', 'execute-plan', 'retry'];
9
+ // ───── Helpers ─────
10
+ /** Canonical "current work artifact" lookup used by commit/annotate/compose. */
11
+ export function currentWork(state) {
12
+ const rework = state.gates['rework'];
13
+ if (rework?.outcome === 'advance')
14
+ return rework.payload;
15
+ const implement = state.gates['implement'];
16
+ if (implement?.outcome === 'advance')
17
+ return implement.payload;
18
+ return null;
19
+ }
20
+ //# sourceMappingURL=stage-io.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stage-io.js","sourceRoot":"","sources":["../../src/lifecycle/stage-io.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,gDAAgD;AAOhD,4EAA4E;AAC5E,2EAA2E;AAC3E,wEAAwE;AACxE,kEAAkE;AAClE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,CAAU,CAAC;AAEhJ,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,CAAU,CAAC;AA2I3E,sBAAsB;AAEtB,gFAAgF;AAChF,MAAM,UAAU,WAAW,CAAC,KAAoD;IAG9E,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,MAAM,EAAE,OAAO,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,OAAwB,CAAC;IAC1E,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,SAAS,EAAE,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC,OAA2B,CAAC;IACnF,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { StagePlan } from './stage-plan-types.js';
2
- import type { ToolCategory } from '../escalation/escalation-policy.js';
3
- export declare function buildStagePlan(category: ToolCategory): StagePlan;
1
+ import type { StageDefinition } from './stage-io.js';
2
+ /** v5 canonical stage plan single source of truth for stage order + gates. */
3
+ export declare const STAGE_PLAN: StageDefinition<unknown>[];
4
4
  //# sourceMappingURL=stage-plan-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stage-plan-builder.d.ts","sourceRoot":"","sources":["../../src/lifecycle/stage-plan-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAY,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEvE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,CAkIhE"}
1
+ {"version":3,"file":"stage-plan-builder.d.ts","sourceRoot":"","sources":["../../src/lifecycle/stage-plan-builder.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAEO,MAAM,eAAe,CAAC;AAmB1D,gFAAgF;AAChF,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,EAyIhD,CAAC"}
@@ -1,130 +1,159 @@
1
- export function buildStagePlan(category) {
2
- const isAP = category === 'artifact_producing';
3
- const isRO = category === 'read_only';
4
- // Research category has no per-row gate constant (unlike isAP/isRO). Instead,
5
- // explore tasks inject reviewPolicy: 'none' (explore.ts:445), which causes
6
- // all review-linked rows (4.1, 4.6, 4.10.x, 4.11, 5.1, 5.2) to skip —
7
- // reviewPolicy is the general-purpose review-skip mechanism, not per-category
8
- // booleans. See workflow-matrix.md appendix #4. The void expression exists
9
- // solely to satisfy the ESLint no-unused-vars rule for the 'category' param.
10
- const rows = [
11
- // Stage 1 Ingress (rows 1.1–1.4; spec C10 lines 1284–1290)
12
- { rowId: '1.1', stageName: 'accept_http_request', runCondition: () => true, isRework: false, handlerKey: 'accept_http_request' },
13
- { rowId: '1.2', stageName: 'verify_loopback', runCondition: () => true, isRework: false, handlerKey: 'verify_loopback' },
14
- { rowId: '1.3', stageName: 'validate_workspace', runCondition: () => true, isRework: false, handlerKey: 'validate_workspace' },
15
- { rowId: '1.4', stageName: 'load_project_state', runCondition: () => true, isRework: false, handlerKey: 'load_project_state' },
16
- // Stage 2 — Intake (rows 2.1–2.5; spec C10 lines 1291–1295)
17
- { rowId: '2.1', stageName: 'parse_brief', runCondition: () => true, isRework: false, handlerKey: 'parse_brief' },
18
- { rowId: '2.2', stageName: 'verify_referenced_blocks', runCondition: (s) => Array.isArray(s.contextBlockIds) && s.contextBlockIds.length > 0,
19
- isRework: false, handlerKey: 'verify_referenced_blocks' },
20
- { rowId: '2.3', stageName: 'apply_defaults', runCondition: () => true, isRework: false, handlerKey: 'apply_defaults' },
21
- { rowId: '2.4', stageName: 'mark_intake_complete', runCondition: () => true, isRework: false, handlerKey: 'mark_intake_complete' },
22
- // 2.5: prepare_execution_context — runs after intake so cwd/userMessage/systemPrompt are available
23
- { rowId: '2.5', stageName: 'prepare_execution_context', runCondition: () => true, isRework: false, handlerKey: 'prepare_execution_context' },
24
- // Stage 3 — Initial Run (row 3.1; route 'register-context-block' skips this)
25
- { rowId: '3.1', stageName: 'run_initial_impl', schemaStage: 'implementing',
26
- runCondition: (s) => !s.terminal && s.route !== 'register-context-block',
27
- isRework: false, handlerKey: 'run_initial_impl' },
28
- // 3.5: check_files_written — early-exit when artifact-producing impl wrote zero files.
29
- // When fired, the handler sets state.terminal=true so review chains, verify, and
30
- // commit short-circuit.
31
- {
32
- rowId: '3.5', stageName: 'check_files_written',
33
- runCondition: (s) => isAP
34
- && s.reviewPolicy !== 'quality_only'
35
- && !!s.lastRunResult
36
- && Array.isArray(s.lastRunResult.filesWritten)
37
- && (s.lastRunResult.filesWritten?.length ?? 0) === 0
38
- && !s.terminal,
39
- isRework: false, handlerKey: 'check_files_written',
40
- },
41
- // ── Stage 4 — v4.4.x five-stage pipeline ───────────────────────────────
42
- // Implementing → Review → Rework → Committing → Annotating
43
- //
44
- // 4.1: review (single complex session: spec then quality sequentially).
45
- // Emits state.reviewVerdict + state.reviewConcerns.
46
- // 4.2: rework (standard tier, full tools, single pass). Skipped when
47
- // reviewVerdict === 'approved'.
48
- // 4.3: committing (write routes only; per-task git commit with full
49
- // gate logic: no_repo / no_diff / validation_failed /
50
- // validation_stale / worker_committed_out_of_band / hook_failed).
51
- // 4.4: annotating (pure transform; builds the unified StructuredReport
52
- // from lastRunResult + review state + commit outcome).
53
- { rowId: '4.1', stageName: 'review', schemaStage: 'review',
54
- runCondition: (s) => isAP && s.reviewPolicy !== 'none' && !s.terminal,
55
- isRework: false, handlerKey: 'review' },
56
- { rowId: '4.2', stageName: 'rework', schemaStage: 'rework',
57
- runCondition: (s) => isAP
58
- && s.reviewPolicy !== 'none'
59
- && s.reviewVerdict === 'changes_required'
60
- && !s.terminal,
61
- isRework: true, handlerKey: 'rework' },
62
- // 4.3: committing — fires before annotating so the commit outcome
63
- // (sha / message / skipReason) is available to the annotator's report.
64
- // Gate is permissive at the stage-plan level; the handler enforces
65
- // no_repo / no_diff / validation_failed / etc. internally.
66
- { rowId: '4.3', stageName: 'git_commit', schemaStage: 'committing',
67
- runCondition: (s) => {
68
- if (s.autoCommit !== true)
69
- return false;
70
- if (s.readOnlyTask)
71
- return false;
72
- if (s.terminal)
73
- return false;
74
- // After review: only commit when reviewer approved, or when there
75
- // was no review at all (reviewPolicy === 'none').
76
- if (s.reviewPolicy !== 'none' && s.reviewVerdict !== 'approved')
77
- return false;
78
- return true;
79
- },
80
- isRework: false, handlerKey: 'git_commit' },
81
- // 4.4: annotating — unified pure transform for read + write routes.
82
- { rowId: '4.4', stageName: 'annotating', schemaStage: 'annotating',
83
- runCondition: (s) => !s.terminal,
84
- isRework: false, handlerKey: 'annotating' },
85
- // 5.3.rcb: register_to_block_store — fires for register-context-block
86
- // route only, before compose_response. Sets state.blockRegistration
87
- // which compose_response reads to emit {id, size, ttlMs}.
88
- { rowId: '5.3.rcb', stageName: 'register_to_block_store',
89
- runCondition: (s) => s.route === 'register-context-block' && !s.terminal,
90
- isRework: false, handlerKey: 'register_to_block_store' },
91
- // 5.3: compose_response — always fires (even after terminal=true) so the
92
- // response envelope reflects the failure shape correctly.
93
- { rowId: '5.3', stageName: 'compose_response',
94
- runCondition: () => true, isRework: false, handlerKey: 'compose_response',
95
- runOnTerminal: true },
96
- // 5.3.5: register_terminal_block — every task except register_context_block.
97
- // Must fire on terminal=true so failed tasks still get a terminal context block.
98
- { rowId: '5.3.5', stageName: 'register_terminal_block',
99
- runCondition: (s) => s.route !== 'register-context-block',
100
- isRework: false, handlerKey: 'register_terminal_block', runOnTerminal: true },
101
- // 5.4: emit_task_terminal — fires the per-task terminal event after register_terminal_block
102
- { rowId: '5.4', stageName: 'emit_task_terminal',
103
- runCondition: () => true, isRework: false, handlerKey: 'emit_task_terminal',
104
- runOnTerminal: true },
105
- // 5.5: persist_to_batch_registry — always
106
- { rowId: '5.5', stageName: 'persist_to_batch_registry',
107
- runCondition: () => true, isRework: false, handlerKey: 'persist_to_batch_registry',
108
- runOnTerminal: true },
109
- // 5.6: record_task_completed — server-only; calls ctx.recorder.recordTaskCompleted
110
- // to enqueue the cloud task.completed wire event. No-ops on CLI/test paths
111
- // (no recorder). Must run on terminal so failures still record.
112
- { rowId: '5.6', stageName: 'record_task_completed',
113
- runCondition: () => true, isRework: false, handlerKey: 'record_task_completed',
114
- runOnTerminal: true },
115
- // Stage 6 — emit + cleanup (rows 6.1–6.3)
116
- // 6.1: flush_telemetry — always; fires on terminal so failure events drain
117
- { rowId: '6.1', stageName: 'flush_telemetry',
118
- runCondition: () => true, isRework: false, handlerKey: 'flush_telemetry',
119
- runOnTerminal: true },
120
- // 6.2: project_idle_cleanup_tick — TIMER-DRIVEN (per spec C14); the row exists for plan completeness
121
- // but never fires from per-request iteration. Returns false so LifecycleDriver skips it.
122
- { rowId: '6.2', stageName: 'project_idle_cleanup_tick',
123
- runCondition: () => false, isRework: false, handlerKey: 'project_idle_cleanup_tick' },
124
- // 6.3: batch_retention_sweep_tick — TIMER-DRIVEN; same
125
- { rowId: '6.3', stageName: 'batch_retention_sweep_tick',
126
- runCondition: () => false, isRework: false, handlerKey: 'batch_retention_sweep_tick' },
127
- ];
128
- return { toolCategory: category, rows };
1
+ // ─── v5 STAGE_PLAN ────────────────────────────────────────────────────────────
2
+ //
3
+ // Canonical 9-stage definition array per spec §3-4. Each stage declares static
4
+ // route applicability (Layer 1: applicableRoutes) and dynamic state-level
5
+ // participation (Layer 2: shouldRun). The new driver walks this in order.
6
+ import { ALL_TASK_ROUTES, WRITE_ROUTES, currentWork } from './stage-io.js';
7
+ // We import handler functions where they exist as exports; this is fine for
8
+ // modules with no circular deps. Where the v5 handler is gated to opt-in,
9
+ // the wrapper falls back to a no-op.
10
+ import { prepareExecutionContextHandler } from './handlers/prepare-execution-context-handler.js';
11
+ import { registerToBlockStoreHandler } from './handlers/register-context-block-handlers.js';
12
+ const ALL_TASK_ROUTES_ARR = ALL_TASK_ROUTES;
13
+ const WRITE_ROUTES_ARR = WRITE_ROUTES;
14
+ function alwaysRun() { return { run: true }; }
15
+ // Lazy import to avoid bootstrap-time circular deps.
16
+ async function loadHandler(loader) {
17
+ return await loader();
129
18
  }
19
+ /** v5 canonical stage plan — single source of truth for stage order + gates. */
20
+ export const STAGE_PLAN = [
21
+ {
22
+ name: 'prepare',
23
+ runOnHalt: false,
24
+ applicableRoutes: 'all',
25
+ shouldRun: alwaysRun,
26
+ handler: async (state) => {
27
+ const t0 = Date.now();
28
+ try {
29
+ await prepareExecutionContextHandler(state);
30
+ return {
31
+ outcome: 'advance',
32
+ payload: null,
33
+ telemetry: { stageLabel: 'prepare', durationMs: Date.now() - t0, costUSD: 0, turnsUsed: 0, stopReason: 'normal' },
34
+ };
35
+ }
36
+ catch (err) {
37
+ const msg = err instanceof Error ? err.message : String(err);
38
+ const code = /brief schema|invalid brief/i.test(msg) ? 'brief_invalid'
39
+ : /workspace|traversal|sandbox/i.test(msg) ? 'workspace_violation'
40
+ : /context_block|missing/i.test(msg) ? 'context_block_missing'
41
+ : 'prepare_failed';
42
+ return {
43
+ outcome: 'halt',
44
+ comment: `${code}: ${msg}`,
45
+ payload: null,
46
+ telemetry: { stageLabel: 'prepare', durationMs: Date.now() - t0, costUSD: 0, turnsUsed: 0, stopReason: 'transport_error' },
47
+ };
48
+ }
49
+ },
50
+ },
51
+ {
52
+ name: 'register-block',
53
+ runOnHalt: false,
54
+ applicableRoutes: ['register-context-block'],
55
+ shouldRun: alwaysRun,
56
+ handler: async (state) => {
57
+ return await registerToBlockStoreHandler(state);
58
+ },
59
+ },
60
+ {
61
+ name: 'implement',
62
+ runOnHalt: false,
63
+ applicableRoutes: ALL_TASK_ROUTES_ARR,
64
+ shouldRun: alwaysRun,
65
+ handler: async (state) => {
66
+ const mod = await loadHandler(() => import('./handlers/task-executor.js'));
67
+ return mod.implementHandler(state);
68
+ },
69
+ },
70
+ {
71
+ name: 'review',
72
+ runOnHalt: false,
73
+ applicableRoutes: WRITE_ROUTES_ARR,
74
+ shouldRun: (state) => {
75
+ const impl = state.gates?.['implement'];
76
+ if (impl?.outcome !== 'advance') {
77
+ return { run: false, comment: 'review skipped because implement did not advance' };
78
+ }
79
+ if (state.reviewPolicy === 'none') {
80
+ return { run: false, comment: 'review skipped because reviewPolicy=none' };
81
+ }
82
+ return { run: true };
83
+ },
84
+ handler: async (state) => {
85
+ const mod = await loadHandler(() => import('./handlers/review-handler.js'));
86
+ return mod.reviewHandler(state);
87
+ },
88
+ },
89
+ {
90
+ name: 'rework',
91
+ runOnHalt: false,
92
+ applicableRoutes: WRITE_ROUTES_ARR,
93
+ shouldRun: (state) => {
94
+ const review = state.gates?.['review'];
95
+ if (review?.outcome !== 'advance') {
96
+ return { run: false, comment: 'rework skipped because review did not produce a verdict' };
97
+ }
98
+ const verdict = review.payload?.verdict;
99
+ if (verdict === 'approved') {
100
+ return { run: false, comment: 'rework skipped because review approved' };
101
+ }
102
+ return { run: true };
103
+ },
104
+ handler: async (state) => {
105
+ const mod = await loadHandler(() => import('./handlers/rework-handler.js'));
106
+ return mod.reworkHandler(state);
107
+ },
108
+ },
109
+ {
110
+ name: 'commit',
111
+ runOnHalt: false,
112
+ applicableRoutes: WRITE_ROUTES_ARR,
113
+ shouldRun: (state) => {
114
+ if (state.autoCommit === false) {
115
+ return { run: false, comment: 'commit skipped because autoCommit disabled' };
116
+ }
117
+ const work = currentWork({ gates: (state.gates ?? {}) });
118
+ if (!work || work.filesChanged?.length === 0) {
119
+ return { run: false, comment: 'commit skipped because no files changed' };
120
+ }
121
+ return { run: true };
122
+ },
123
+ handler: async (state) => {
124
+ const mod = await loadHandler(() => import('./handlers/git-commit-handler.js'));
125
+ return mod.commitHandler(state);
126
+ },
127
+ },
128
+ {
129
+ name: 'annotate',
130
+ runOnHalt: false,
131
+ applicableRoutes: ALL_TASK_ROUTES_ARR,
132
+ shouldRun: alwaysRun,
133
+ handler: async (state) => {
134
+ const mod = await loadHandler(() => import('./handlers/annotator.js'));
135
+ return mod.annotator(state);
136
+ },
137
+ },
138
+ {
139
+ name: 'compose',
140
+ runOnHalt: true,
141
+ applicableRoutes: 'all',
142
+ shouldRun: alwaysRun,
143
+ handler: async (state) => {
144
+ const mod = await loadHandler(() => import('./handlers/baseline-handlers.js'));
145
+ return mod.composeHandler(state);
146
+ },
147
+ },
148
+ {
149
+ name: 'terminal',
150
+ runOnHalt: true,
151
+ applicableRoutes: 'all',
152
+ shouldRun: alwaysRun,
153
+ handler: async (state) => {
154
+ const mod = await loadHandler(() => import('./handlers/terminal-handlers.js'));
155
+ return mod.terminalHandler(state);
156
+ },
157
+ },
158
+ ];
130
159
  //# sourceMappingURL=stage-plan-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stage-plan-builder.js","sourceRoot":"","sources":["../../src/lifecycle/stage-plan-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stage-plan-builder.js","sourceRoot":"","sources":["../../src/lifecycle/stage-plan-builder.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,5 @@
1
1
  import type { ToolCategory } from '../escalation/escalation-policy.js';
2
2
  import type { ProjectContext } from '../stores/project-context-registry.js';
3
- export interface StageRow {
4
- rowId: string;
5
- stageName: string;
6
- schemaStage?: string;
7
- runCondition: (state: LifecycleState) => boolean;
8
- isRework: boolean;
9
- handlerKey: string;
10
- /**
11
- * When true, this row's handler runs even after a prior row set
12
- * `state.terminal = true`. Used by settle/compose/terminal/persist/flush
13
- * rows that must populate authoritative chain-pass + envelope state on
14
- * hard-fail paths. The driver loop honors this attribute; non-terminal-safe
15
- * rows (the default) short-circuit when `state.terminal` is set.
16
- */
17
- runOnTerminal?: boolean;
18
- }
19
- export interface StagePlan {
20
- toolCategory: ToolCategory;
21
- rows: StageRow[];
22
- }
23
3
  /**
24
4
  * Per-round review verdict shape. Matches the verdict values that
25
5
  * spec-reviewer.ts and quality-reviewer.ts actually produce. `'concerns'` was
@@ -31,8 +11,13 @@ type SpecRoundVerdict = 'approved' | 'changes_required' | 'error' | 'skipped';
31
11
  type QualityRoundVerdict = 'approved' | 'changes_required' | 'annotated' | 'error' | 'skipped';
32
12
  type DiffEnvelopeVerdict = 'approved' | 'changes_required' | 'error' | 'skipped';
33
13
  type DiffReviewKind = 'approve' | 'concerns' | 'reject' | 'transport_failure';
14
+ import type { StageGate } from './stage-io.js';
34
15
  export interface LifecycleState {
35
16
  terminal: boolean;
17
+ /** v5: per-stage gate record written by the driver. Empty until prepare runs. */
18
+ gates?: Record<string, StageGate<unknown>>;
19
+ /** v5: halted flag set when any stage returns outcome:'halt'. Driver-only. */
20
+ halted?: boolean;
36
21
  workerStatus?: string;
37
22
  reviewVerdict?: 'approved' | 'concerns' | 'changes_required' | 'error' | 'skipped';
38
23
  attemptIndex: number;
@@ -59,7 +44,6 @@ export interface LifecycleState {
59
44
  specUnavailable?: import('../escalation/fallback.js').UnavailableMap;
60
45
  qualityUnavailable?: import('../escalation/fallback.js').UnavailableMap;
61
46
  diffUnavailable?: import('../escalation/fallback.js').UnavailableMap;
62
- executor?: (rawRequest: unknown, state: LifecycleState) => Promise<unknown>;
63
47
  executorResult?: unknown;
64
48
  responseEnvelope?: unknown;
65
49
  autoCommit?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"stage-plan-types.d.ts","sourceRoot":"","sources":["../../src/lifecycle/stage-plan-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stage-plan-types.d.ts","sourceRoot":"","sources":["../../src/lifecycle/stage-plan-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAO5E;;;;;;GAMG;AACH,KAAK,gBAAgB,GACjB,UAAU,GACV,kBAAkB,GAClB,OAAO,GACP,SAAS,CAAC;AAEd,KAAK,mBAAmB,GACpB,UAAU,GACV,kBAAkB,GAClB,WAAW,GACX,OAAO,GACP,SAAS,CAAC;AAEd,KAAK,mBAAmB,GAAG,UAAU,GAAG,kBAAkB,GAAG,OAAO,GAAG,SAAS,CAAC;AACjF,KAAK,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,mBAAmB,CAAC;AAE9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,8EAA8E;IAC9E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,kBAAkB,GAAG,OAAO,GAAG,SAAS,CAAC;IACnF,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,cAAc,GAAG,WAAW,GAAG,MAAM,CAAC;IAC7D,kBAAkB,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,uBAAuB,CAAC,EAAE,gBAAgB,CAAC;IAC3C,uBAAuB,CAAC,EAAE,gBAAgB,CAAC;IAC3C,uBAAuB,CAAC,EAAE,gBAAgB,CAAC;IAC3C,0BAA0B,CAAC,EAAE,mBAAmB,CAAC;IACjD,0BAA0B,CAAC,EAAE,mBAAmB,CAAC;IACjD,0BAA0B,CAAC,EAAE,mBAAmB,CAAC;IAIjD,iBAAiB,CAAC,EAAE,mBAAmB,CAAC;IACxC,cAAc,CAAC,EAAE,cAAc,CAAC;IAIhC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAQ7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAM9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAMlC,eAAe,CAAC,EAAE,OAAO,2BAA2B,EAAE,cAAc,CAAC;IACrE,kBAAkB,CAAC,EAAE,OAAO,2BAA2B,EAAE,cAAc,CAAC;IACxE,eAAe,CAAC,EAAE,OAAO,2BAA2B,EAAE,cAAc,CAAC;IAGrE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAG3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAM3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,wBAAwB,EAAE,gBAAgB,CAAC;IACrE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,mBAAmB,EAAE,WAAW,CAAC;IACtD;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,kEAAkE;IAClE,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAG1B,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6CAA6C;IAC7C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oCAAoC;IACpC,iBAAiB,CAAC,EAAE,UAAU,GAAG,kBAAkB,CAAC;IACpD,uCAAuC;IACvC,oBAAoB,CAAC,EAAE,UAAU,GAAG,kBAAkB,CAAC;IACvD,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,uDAAuD;IACvD,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yFAAyF;IACzF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IAKrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAK3B,cAAc,CAAC,EAAE,cAAc,CAAC;IAGhC,iBAAiB,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAKhE,GAAG,CAAC,EAAE,MAAM,CAAC;IAIb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAKpC,aAAa,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;IAC7D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC"}
@@ -1,20 +1,8 @@
1
- /** Build the user-facing stage label list for a route by simulating each
2
- * StagePlan row's runCondition under the route's defaults. Distinct
3
- * schemaStages whose runCondition returns true become the user-facing
4
- * stages, in plan order. Route-specific label overrides + a tail
5
- * "Finalizing" slot give the agent a stable bracket. */
1
+ /** Build the user-facing stage label list for a route by walking STAGE_PLAN
2
+ * and including each stage whose Layer-1 (applicableRoutes) AND Layer-2
3
+ * (shouldRun under simulated state) both pass. */
6
4
  export declare function stageOrderForRoute(route: string): string[];
7
- /** Public accessor mirroring the legacy `STAGE_ORDER_BY_ROUTE[route]` shape
8
- * but driven by the StagePlan. Returns an empty array (treated as "1/1")
9
- * for unknown routes. */
10
5
  export declare const STAGE_ORDER_BY_ROUTE: Record<string, readonly string[]>;
11
- /** Normalize a runtime stageLabel ("Spec rework round 1") to a coarse
12
- * label that exists in `stageOrderForRoute(route)`. Reworks map to their
13
- * own coarse slot ("Spec rework" / "Quality rework"), not back to the
14
- * review slot — the StagePlan-derived order DOES contain a rework slot
15
- * (because spec_rework / quality_rework are distinct schemaStages), so
16
- * the bracket advances correctly when a rework fires. */
17
6
  export declare function normalizeStageLabel(label: string): string;
18
- /** "(X/Y)" stage-progress bracket for a route + current stageLabel. */
19
7
  export declare function stageProgress(route: string, stageLabel: string | undefined): string;
20
8
  //# sourceMappingURL=stage-progression.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stage-progression.d.ts","sourceRoot":"","sources":["../../src/lifecycle/stage-progression.ts"],"names":[],"mappings":"AAqHA;;;;yDAIyD;AACzD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CA2B1D;AAOD;;0BAE0B;AAC1B,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAa7B,CAAC;AAEvC;;;;;0DAK0D;AAC1D,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CASnF"}
1
+ {"version":3,"file":"stage-progression.d.ts","sourceRoot":"","sources":["../../src/lifecycle/stage-progression.ts"],"names":[],"mappings":"AA4EA;;mDAEmD;AACnD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAyB1D;AAID,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAa7B,CAAC;AAEvC,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CASnF"}