@zigrivers/scaffold 3.16.0 → 3.18.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 (385) hide show
  1. package/README.md +28 -0
  2. package/content/knowledge/backend/backend-fintech-broker-integration.md +244 -0
  3. package/content/knowledge/backend/backend-fintech-compliance.md +181 -0
  4. package/content/knowledge/backend/backend-fintech-data-modeling.md +210 -0
  5. package/content/knowledge/backend/backend-fintech-ledger.md +226 -0
  6. package/content/knowledge/backend/backend-fintech-observability.md +151 -0
  7. package/content/knowledge/backend/backend-fintech-order-lifecycle.md +213 -0
  8. package/content/knowledge/backend/backend-fintech-risk-management.md +150 -0
  9. package/content/knowledge/backend/backend-fintech-testing.md +197 -0
  10. package/content/knowledge/core/automated-review-tooling.md +10 -0
  11. package/content/knowledge/core/multi-service-api-contracts.md +634 -0
  12. package/content/knowledge/core/multi-service-architecture.md +492 -0
  13. package/content/knowledge/core/multi-service-auth.md +706 -0
  14. package/content/knowledge/core/multi-service-data-ownership.md +539 -0
  15. package/content/knowledge/core/multi-service-observability.md +545 -0
  16. package/content/knowledge/core/multi-service-resilience.md +710 -0
  17. package/content/knowledge/core/multi-service-task-decomposition.md +615 -0
  18. package/content/knowledge/core/multi-service-testing.md +728 -0
  19. package/content/methodology/backend-fintech.yml +46 -0
  20. package/content/methodology/custom-defaults.yml +6 -0
  21. package/content/methodology/deep.yml +6 -0
  22. package/content/methodology/multi-service-overlay.yml +103 -0
  23. package/content/methodology/mvp.yml +6 -0
  24. package/content/pipeline/architecture/service-ownership-map.md +83 -0
  25. package/content/pipeline/quality/cross-service-auth.md +96 -0
  26. package/content/pipeline/quality/cross-service-observability.md +104 -0
  27. package/content/pipeline/quality/integration-test-plan.md +106 -0
  28. package/content/pipeline/specification/inter-service-contracts.md +95 -0
  29. package/dist/cli/commands/adopt.cli-flags.test.js +20 -0
  30. package/dist/cli/commands/adopt.cli-flags.test.js.map +1 -1
  31. package/dist/cli/commands/adopt.d.ts.map +1 -1
  32. package/dist/cli/commands/adopt.js +11 -3
  33. package/dist/cli/commands/adopt.js.map +1 -1
  34. package/dist/cli/commands/complete.d.ts +1 -0
  35. package/dist/cli/commands/complete.d.ts.map +1 -1
  36. package/dist/cli/commands/complete.js +26 -8
  37. package/dist/cli/commands/complete.js.map +1 -1
  38. package/dist/cli/commands/dashboard.d.ts +1 -0
  39. package/dist/cli/commands/dashboard.d.ts.map +1 -1
  40. package/dist/cli/commands/dashboard.js +19 -6
  41. package/dist/cli/commands/dashboard.js.map +1 -1
  42. package/dist/cli/commands/decisions.d.ts +1 -0
  43. package/dist/cli/commands/decisions.d.ts.map +1 -1
  44. package/dist/cli/commands/decisions.js +18 -4
  45. package/dist/cli/commands/decisions.js.map +1 -1
  46. package/dist/cli/commands/info.d.ts +1 -0
  47. package/dist/cli/commands/info.d.ts.map +1 -1
  48. package/dist/cli/commands/info.js +25 -3
  49. package/dist/cli/commands/info.js.map +1 -1
  50. package/dist/cli/commands/init-from.test.d.ts +2 -0
  51. package/dist/cli/commands/init-from.test.d.ts.map +1 -0
  52. package/dist/cli/commands/init-from.test.js +315 -0
  53. package/dist/cli/commands/init-from.test.js.map +1 -0
  54. package/dist/cli/commands/init.d.ts +3 -0
  55. package/dist/cli/commands/init.d.ts.map +1 -1
  56. package/dist/cli/commands/init.js +239 -129
  57. package/dist/cli/commands/init.js.map +1 -1
  58. package/dist/cli/commands/init.test.js +20 -0
  59. package/dist/cli/commands/init.test.js.map +1 -1
  60. package/dist/cli/commands/next.d.ts +1 -0
  61. package/dist/cli/commands/next.d.ts.map +1 -1
  62. package/dist/cli/commands/next.js +40 -4
  63. package/dist/cli/commands/next.js.map +1 -1
  64. package/dist/cli/commands/next.test.js +153 -0
  65. package/dist/cli/commands/next.test.js.map +1 -1
  66. package/dist/cli/commands/reset.d.ts +1 -0
  67. package/dist/cli/commands/reset.d.ts.map +1 -1
  68. package/dist/cli/commands/reset.js +77 -29
  69. package/dist/cli/commands/reset.js.map +1 -1
  70. package/dist/cli/commands/rework.d.ts +1 -0
  71. package/dist/cli/commands/rework.d.ts.map +1 -1
  72. package/dist/cli/commands/rework.js +16 -2
  73. package/dist/cli/commands/rework.js.map +1 -1
  74. package/dist/cli/commands/run.d.ts +1 -0
  75. package/dist/cli/commands/run.d.ts.map +1 -1
  76. package/dist/cli/commands/run.js +65 -13
  77. package/dist/cli/commands/run.js.map +1 -1
  78. package/dist/cli/commands/run.test.js +255 -3
  79. package/dist/cli/commands/run.test.js.map +1 -1
  80. package/dist/cli/commands/skip.d.ts +1 -0
  81. package/dist/cli/commands/skip.d.ts.map +1 -1
  82. package/dist/cli/commands/skip.js +24 -7
  83. package/dist/cli/commands/skip.js.map +1 -1
  84. package/dist/cli/commands/status.d.ts +1 -0
  85. package/dist/cli/commands/status.d.ts.map +1 -1
  86. package/dist/cli/commands/status.js +51 -4
  87. package/dist/cli/commands/status.js.map +1 -1
  88. package/dist/cli/commands/status.test.js +130 -0
  89. package/dist/cli/commands/status.test.js.map +1 -1
  90. package/dist/cli/guards-coverage.test.d.ts +2 -0
  91. package/dist/cli/guards-coverage.test.d.ts.map +1 -0
  92. package/dist/cli/guards-coverage.test.js +26 -0
  93. package/dist/cli/guards-coverage.test.js.map +1 -0
  94. package/dist/cli/guards-integration.test.d.ts +2 -0
  95. package/dist/cli/guards-integration.test.d.ts.map +1 -0
  96. package/dist/cli/guards-integration.test.js +178 -0
  97. package/dist/cli/guards-integration.test.js.map +1 -0
  98. package/dist/cli/guards.d.ts +13 -0
  99. package/dist/cli/guards.d.ts.map +1 -0
  100. package/dist/cli/guards.js +70 -0
  101. package/dist/cli/guards.js.map +1 -0
  102. package/dist/cli/guards.test.d.ts +2 -0
  103. package/dist/cli/guards.test.d.ts.map +1 -0
  104. package/dist/cli/guards.test.js +136 -0
  105. package/dist/cli/guards.test.js.map +1 -0
  106. package/dist/cli/init-flag-families.d.ts +1 -1
  107. package/dist/cli/init-flag-families.d.ts.map +1 -1
  108. package/dist/cli/init-flag-families.js +4 -1
  109. package/dist/cli/init-flag-families.js.map +1 -1
  110. package/dist/cli/init-flag-families.test.js +10 -0
  111. package/dist/cli/init-flag-families.test.js.map +1 -1
  112. package/dist/cli/shutdown.d.ts +2 -3
  113. package/dist/cli/shutdown.d.ts.map +1 -1
  114. package/dist/cli/shutdown.js +14 -11
  115. package/dist/cli/shutdown.js.map +1 -1
  116. package/dist/cli/shutdown.test.js +2 -4
  117. package/dist/cli/shutdown.test.js.map +1 -1
  118. package/dist/config/schema.d.ts +12122 -288
  119. package/dist/config/schema.d.ts.map +1 -1
  120. package/dist/config/schema.js +74 -79
  121. package/dist/config/schema.js.map +1 -1
  122. package/dist/config/schema.test.js +230 -1
  123. package/dist/config/schema.test.js.map +1 -1
  124. package/dist/config/validators/backend.d.ts +4 -0
  125. package/dist/config/validators/backend.d.ts.map +1 -0
  126. package/dist/config/validators/backend.js +14 -0
  127. package/dist/config/validators/backend.js.map +1 -0
  128. package/dist/config/validators/browser-extension.d.ts +4 -0
  129. package/dist/config/validators/browser-extension.d.ts.map +1 -0
  130. package/dist/config/validators/browser-extension.js +24 -0
  131. package/dist/config/validators/browser-extension.js.map +1 -0
  132. package/dist/config/validators/cli.d.ts +4 -0
  133. package/dist/config/validators/cli.d.ts.map +1 -0
  134. package/dist/config/validators/cli.js +14 -0
  135. package/dist/config/validators/cli.js.map +1 -0
  136. package/dist/config/validators/data-pipeline.d.ts +4 -0
  137. package/dist/config/validators/data-pipeline.d.ts.map +1 -0
  138. package/dist/config/validators/data-pipeline.js +14 -0
  139. package/dist/config/validators/data-pipeline.js.map +1 -0
  140. package/dist/config/validators/game.d.ts +4 -0
  141. package/dist/config/validators/game.d.ts.map +1 -0
  142. package/dist/config/validators/game.js +14 -0
  143. package/dist/config/validators/game.js.map +1 -0
  144. package/dist/config/validators/index.d.ts +7 -0
  145. package/dist/config/validators/index.d.ts.map +1 -0
  146. package/dist/config/validators/index.js +27 -0
  147. package/dist/config/validators/index.js.map +1 -0
  148. package/dist/config/validators/library.d.ts +4 -0
  149. package/dist/config/validators/library.d.ts.map +1 -0
  150. package/dist/config/validators/library.js +25 -0
  151. package/dist/config/validators/library.js.map +1 -0
  152. package/dist/config/validators/ml.d.ts +4 -0
  153. package/dist/config/validators/ml.d.ts.map +1 -0
  154. package/dist/config/validators/ml.js +31 -0
  155. package/dist/config/validators/ml.js.map +1 -0
  156. package/dist/config/validators/mobile-app.d.ts +4 -0
  157. package/dist/config/validators/mobile-app.d.ts.map +1 -0
  158. package/dist/config/validators/mobile-app.js +14 -0
  159. package/dist/config/validators/mobile-app.js.map +1 -0
  160. package/dist/config/validators/registry.test.d.ts +2 -0
  161. package/dist/config/validators/registry.test.d.ts.map +1 -0
  162. package/dist/config/validators/registry.test.js +26 -0
  163. package/dist/config/validators/registry.test.js.map +1 -0
  164. package/dist/config/validators/research.d.ts +4 -0
  165. package/dist/config/validators/research.d.ts.map +1 -0
  166. package/dist/config/validators/research.js +24 -0
  167. package/dist/config/validators/research.js.map +1 -0
  168. package/dist/config/validators/research.test.d.ts +2 -0
  169. package/dist/config/validators/research.test.d.ts.map +1 -0
  170. package/dist/config/validators/research.test.js +44 -0
  171. package/dist/config/validators/research.test.js.map +1 -0
  172. package/dist/config/validators/types.d.ts +19 -0
  173. package/dist/config/validators/types.d.ts.map +1 -0
  174. package/dist/config/validators/types.js +2 -0
  175. package/dist/config/validators/types.js.map +1 -0
  176. package/dist/config/validators/validators.test.d.ts +2 -0
  177. package/dist/config/validators/validators.test.d.ts.map +1 -0
  178. package/dist/config/validators/validators.test.js +25 -0
  179. package/dist/config/validators/validators.test.js.map +1 -0
  180. package/dist/config/validators/web-app.d.ts +4 -0
  181. package/dist/config/validators/web-app.d.ts.map +1 -0
  182. package/dist/config/validators/web-app.js +31 -0
  183. package/dist/config/validators/web-app.js.map +1 -0
  184. package/dist/core/assembly/context-gatherer.d.ts.map +1 -1
  185. package/dist/core/assembly/context-gatherer.js +4 -2
  186. package/dist/core/assembly/context-gatherer.js.map +1 -1
  187. package/dist/core/assembly/cross-reads.d.ts +61 -0
  188. package/dist/core/assembly/cross-reads.d.ts.map +1 -0
  189. package/dist/core/assembly/cross-reads.js +190 -0
  190. package/dist/core/assembly/cross-reads.js.map +1 -0
  191. package/dist/core/assembly/cross-reads.test.d.ts +2 -0
  192. package/dist/core/assembly/cross-reads.test.d.ts.map +1 -0
  193. package/dist/core/assembly/cross-reads.test.js +497 -0
  194. package/dist/core/assembly/cross-reads.test.js.map +1 -0
  195. package/dist/core/assembly/overlay-loader-structural.test.d.ts +2 -0
  196. package/dist/core/assembly/overlay-loader-structural.test.d.ts.map +1 -0
  197. package/dist/core/assembly/overlay-loader-structural.test.js +173 -0
  198. package/dist/core/assembly/overlay-loader-structural.test.js.map +1 -0
  199. package/dist/core/assembly/overlay-loader.d.ts +19 -3
  200. package/dist/core/assembly/overlay-loader.d.ts.map +1 -1
  201. package/dist/core/assembly/overlay-loader.js +135 -4
  202. package/dist/core/assembly/overlay-loader.js.map +1 -1
  203. package/dist/core/assembly/overlay-loader.test.js +204 -1
  204. package/dist/core/assembly/overlay-loader.test.js.map +1 -1
  205. package/dist/core/assembly/overlay-resolver.d.ts +9 -2
  206. package/dist/core/assembly/overlay-resolver.d.ts.map +1 -1
  207. package/dist/core/assembly/overlay-resolver.js +32 -1
  208. package/dist/core/assembly/overlay-resolver.js.map +1 -1
  209. package/dist/core/assembly/overlay-resolver.test.js +135 -17
  210. package/dist/core/assembly/overlay-resolver.test.js.map +1 -1
  211. package/dist/core/assembly/overlay-state-resolver.d.ts +9 -0
  212. package/dist/core/assembly/overlay-state-resolver.d.ts.map +1 -1
  213. package/dist/core/assembly/overlay-state-resolver.js +43 -2
  214. package/dist/core/assembly/overlay-state-resolver.js.map +1 -1
  215. package/dist/core/assembly/overlay-state-resolver.test.js +321 -0
  216. package/dist/core/assembly/overlay-state-resolver.test.js.map +1 -1
  217. package/dist/core/assembly/update-mode.d.ts +1 -0
  218. package/dist/core/assembly/update-mode.d.ts.map +1 -1
  219. package/dist/core/assembly/update-mode.js +17 -9
  220. package/dist/core/assembly/update-mode.js.map +1 -1
  221. package/dist/core/dependency/eligibility.d.ts +10 -1
  222. package/dist/core/dependency/eligibility.d.ts.map +1 -1
  223. package/dist/core/dependency/eligibility.js +19 -1
  224. package/dist/core/dependency/eligibility.js.map +1 -1
  225. package/dist/core/dependency/eligibility.test.js +82 -0
  226. package/dist/core/dependency/eligibility.test.js.map +1 -1
  227. package/dist/core/dependency/graph.d.ts +4 -1
  228. package/dist/core/dependency/graph.d.ts.map +1 -1
  229. package/dist/core/dependency/graph.js +7 -1
  230. package/dist/core/dependency/graph.js.map +1 -1
  231. package/dist/core/dependency/graph.test.js +48 -0
  232. package/dist/core/dependency/graph.test.js.map +1 -1
  233. package/dist/core/pipeline/global-steps.d.ts +7 -0
  234. package/dist/core/pipeline/global-steps.d.ts.map +1 -0
  235. package/dist/core/pipeline/global-steps.js +18 -0
  236. package/dist/core/pipeline/global-steps.js.map +1 -0
  237. package/dist/core/pipeline/resolver.d.ts +1 -0
  238. package/dist/core/pipeline/resolver.d.ts.map +1 -1
  239. package/dist/core/pipeline/resolver.js +54 -7
  240. package/dist/core/pipeline/resolver.js.map +1 -1
  241. package/dist/core/pipeline/resolver.test.js +51 -1
  242. package/dist/core/pipeline/resolver.test.js.map +1 -1
  243. package/dist/core/pipeline/types.d.ts +5 -1
  244. package/dist/core/pipeline/types.d.ts.map +1 -1
  245. package/dist/e2e/cross-service-references.test.d.ts +22 -0
  246. package/dist/e2e/cross-service-references.test.d.ts.map +1 -0
  247. package/dist/e2e/cross-service-references.test.js +230 -0
  248. package/dist/e2e/cross-service-references.test.js.map +1 -0
  249. package/dist/e2e/multi-service-pipeline.test.d.ts +10 -0
  250. package/dist/e2e/multi-service-pipeline.test.d.ts.map +1 -0
  251. package/dist/e2e/multi-service-pipeline.test.js +185 -0
  252. package/dist/e2e/multi-service-pipeline.test.js.map +1 -0
  253. package/dist/e2e/project-type-overlays.test.js +68 -0
  254. package/dist/e2e/project-type-overlays.test.js.map +1 -1
  255. package/dist/e2e/service-execution.test.d.ts +15 -0
  256. package/dist/e2e/service-execution.test.d.ts.map +1 -0
  257. package/dist/e2e/service-execution.test.js +219 -0
  258. package/dist/e2e/service-execution.test.js.map +1 -0
  259. package/dist/e2e/service-manifest.test.d.ts +19 -0
  260. package/dist/e2e/service-manifest.test.d.ts.map +1 -0
  261. package/dist/e2e/service-manifest.test.js +166 -0
  262. package/dist/e2e/service-manifest.test.js.map +1 -0
  263. package/dist/project/__frozen-schemas__/schema-v3.9.2.d.ts +224 -224
  264. package/dist/project/frontmatter.d.ts.map +1 -1
  265. package/dist/project/frontmatter.js +11 -0
  266. package/dist/project/frontmatter.js.map +1 -1
  267. package/dist/project/frontmatter.test.js +71 -0
  268. package/dist/project/frontmatter.test.js.map +1 -1
  269. package/dist/state/completion.d.ts +1 -1
  270. package/dist/state/completion.d.ts.map +1 -1
  271. package/dist/state/completion.js +10 -8
  272. package/dist/state/completion.js.map +1 -1
  273. package/dist/state/decision-logger.d.ts +3 -2
  274. package/dist/state/decision-logger.d.ts.map +1 -1
  275. package/dist/state/decision-logger.js +12 -11
  276. package/dist/state/decision-logger.js.map +1 -1
  277. package/dist/state/ensure-v3-migration.d.ts +9 -0
  278. package/dist/state/ensure-v3-migration.d.ts.map +1 -0
  279. package/dist/state/ensure-v3-migration.js +35 -0
  280. package/dist/state/ensure-v3-migration.js.map +1 -0
  281. package/dist/state/lock-manager.d.ts +5 -4
  282. package/dist/state/lock-manager.d.ts.map +1 -1
  283. package/dist/state/lock-manager.js +11 -11
  284. package/dist/state/lock-manager.js.map +1 -1
  285. package/dist/state/rework-manager.d.ts +1 -2
  286. package/dist/state/rework-manager.d.ts.map +1 -1
  287. package/dist/state/rework-manager.js +4 -5
  288. package/dist/state/rework-manager.js.map +1 -1
  289. package/dist/state/state-manager.d.ts +25 -1
  290. package/dist/state/state-manager.d.ts.map +1 -1
  291. package/dist/state/state-manager.js +86 -12
  292. package/dist/state/state-manager.js.map +1 -1
  293. package/dist/state/state-manager.test.js +278 -0
  294. package/dist/state/state-manager.test.js.map +1 -1
  295. package/dist/state/state-migration-v3.d.ts +22 -0
  296. package/dist/state/state-migration-v3.d.ts.map +1 -0
  297. package/dist/state/state-migration-v3.js +82 -0
  298. package/dist/state/state-migration-v3.js.map +1 -0
  299. package/dist/state/state-migration-v3.test.d.ts +2 -0
  300. package/dist/state/state-migration-v3.test.d.ts.map +1 -0
  301. package/dist/state/state-migration-v3.test.js +196 -0
  302. package/dist/state/state-migration-v3.test.js.map +1 -0
  303. package/dist/state/state-migration.d.ts.map +1 -1
  304. package/dist/state/state-migration.js +11 -6
  305. package/dist/state/state-migration.js.map +1 -1
  306. package/dist/state/state-migration.test.js +47 -2
  307. package/dist/state/state-migration.test.js.map +1 -1
  308. package/dist/state/state-path-resolver.d.ts +23 -0
  309. package/dist/state/state-path-resolver.d.ts.map +1 -0
  310. package/dist/state/state-path-resolver.js +36 -0
  311. package/dist/state/state-path-resolver.js.map +1 -0
  312. package/dist/state/state-path-resolver.test.d.ts +2 -0
  313. package/dist/state/state-path-resolver.test.d.ts.map +1 -0
  314. package/dist/state/state-path-resolver.test.js +78 -0
  315. package/dist/state/state-path-resolver.test.js.map +1 -0
  316. package/dist/state/state-version-dispatch.d.ts +17 -0
  317. package/dist/state/state-version-dispatch.d.ts.map +1 -0
  318. package/dist/state/state-version-dispatch.js +27 -0
  319. package/dist/state/state-version-dispatch.js.map +1 -0
  320. package/dist/state/state-version-dispatch.test.d.ts +2 -0
  321. package/dist/state/state-version-dispatch.test.d.ts.map +1 -0
  322. package/dist/state/state-version-dispatch.test.js +40 -0
  323. package/dist/state/state-version-dispatch.test.js.map +1 -0
  324. package/dist/types/config.d.ts +33 -3
  325. package/dist/types/config.d.ts.map +1 -1
  326. package/dist/types/config.test.js +62 -1
  327. package/dist/types/config.test.js.map +1 -1
  328. package/dist/types/dependency.d.ts +9 -0
  329. package/dist/types/dependency.d.ts.map +1 -1
  330. package/dist/types/frontmatter.d.ts +5 -0
  331. package/dist/types/frontmatter.d.ts.map +1 -1
  332. package/dist/types/lock.d.ts +1 -1
  333. package/dist/types/lock.d.ts.map +1 -1
  334. package/dist/types/state.d.ts +1 -1
  335. package/dist/types/state.d.ts.map +1 -1
  336. package/dist/utils/artifact-path.d.ts +19 -0
  337. package/dist/utils/artifact-path.d.ts.map +1 -0
  338. package/dist/utils/artifact-path.js +95 -0
  339. package/dist/utils/artifact-path.js.map +1 -0
  340. package/dist/utils/artifact-path.test.d.ts +2 -0
  341. package/dist/utils/artifact-path.test.d.ts.map +1 -0
  342. package/dist/utils/artifact-path.test.js +138 -0
  343. package/dist/utils/artifact-path.test.js.map +1 -0
  344. package/dist/utils/errors.d.ts +3 -1
  345. package/dist/utils/errors.d.ts.map +1 -1
  346. package/dist/utils/errors.js +21 -2
  347. package/dist/utils/errors.js.map +1 -1
  348. package/dist/utils/errors.test.js +27 -1
  349. package/dist/utils/errors.test.js.map +1 -1
  350. package/dist/utils/user-errors.d.ts +46 -0
  351. package/dist/utils/user-errors.d.ts.map +1 -0
  352. package/dist/utils/user-errors.js +76 -0
  353. package/dist/utils/user-errors.js.map +1 -0
  354. package/dist/utils/user-errors.test.d.ts +2 -0
  355. package/dist/utils/user-errors.test.d.ts.map +1 -0
  356. package/dist/utils/user-errors.test.js +74 -0
  357. package/dist/utils/user-errors.test.js.map +1 -0
  358. package/dist/validation/index.d.ts.map +1 -1
  359. package/dist/validation/index.js +16 -0
  360. package/dist/validation/index.js.map +1 -1
  361. package/dist/validation/index.test.js +48 -0
  362. package/dist/validation/index.test.js.map +1 -1
  363. package/dist/validation/state-validator.d.ts +5 -2
  364. package/dist/validation/state-validator.d.ts.map +1 -1
  365. package/dist/validation/state-validator.js +18 -20
  366. package/dist/validation/state-validator.js.map +1 -1
  367. package/dist/validation/state-validator.test.js +31 -2
  368. package/dist/validation/state-validator.test.js.map +1 -1
  369. package/dist/wizard/copy/backend.d.ts.map +1 -1
  370. package/dist/wizard/copy/backend.js +12 -0
  371. package/dist/wizard/copy/backend.js.map +1 -1
  372. package/dist/wizard/flags.d.ts +1 -0
  373. package/dist/wizard/flags.d.ts.map +1 -1
  374. package/dist/wizard/questions.d.ts.map +1 -1
  375. package/dist/wizard/questions.js +5 -1
  376. package/dist/wizard/questions.js.map +1 -1
  377. package/dist/wizard/questions.test.js +45 -2
  378. package/dist/wizard/questions.test.js.map +1 -1
  379. package/dist/wizard/wizard.d.ts +23 -0
  380. package/dist/wizard/wizard.d.ts.map +1 -1
  381. package/dist/wizard/wizard.js +85 -47
  382. package/dist/wizard/wizard.js.map +1 -1
  383. package/dist/wizard/wizard.test.js +186 -1
  384. package/dist/wizard/wizard.test.js.map +1 -1
  385. package/package.json +1 -1
@@ -1,6 +1,8 @@
1
1
  import { describe, it, expect, vi } from 'vitest';
2
2
  import path from 'node:path';
3
3
  import { fileURLToPath } from 'node:url';
4
+ import fs from 'node:fs';
5
+ import os from 'node:os';
4
6
  import { resolveOverlayState } from './overlay-state-resolver.js';
5
7
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
6
8
  const fixtureDir = path.resolve(__dirname, '../../../tests/fixtures/methodology');
@@ -310,6 +312,75 @@ describe('resolveOverlayState', () => {
310
312
  'tdd-basics', 'backtest-validation',
311
313
  ]);
312
314
  });
315
+ it('loads backend-fintech.yml when BackendConfig.domain is fintech', () => {
316
+ const config = makeConfig({
317
+ project: {
318
+ projectType: 'backend',
319
+ backendConfig: {
320
+ apiStyle: 'rest',
321
+ dataStore: ['relational'],
322
+ authMechanism: 'jwt',
323
+ asyncMessaging: 'none',
324
+ deployTarget: 'container',
325
+ domain: 'fintech',
326
+ },
327
+ },
328
+ });
329
+ const presetSteps = {
330
+ 'tech-stack': { enabled: true },
331
+ };
332
+ const metaPrompts = new Map([
333
+ ['tech-stack', { frontmatter: makeFrontmatter({
334
+ name: 'tech-stack', knowledgeBase: ['tech-stack-selection'],
335
+ reads: [], dependencies: [],
336
+ }) }],
337
+ ]);
338
+ const result = resolveOverlayState({
339
+ config,
340
+ methodologyDir: fixtureDir,
341
+ metaPrompts,
342
+ presetSteps,
343
+ output: makeOutput(),
344
+ });
345
+ // backend-fintech.yml appends fintech-compliance to tech-stack
346
+ expect(result.knowledge['tech-stack']).toEqual([
347
+ 'tech-stack-selection', 'fintech-compliance',
348
+ ]);
349
+ });
350
+ it('does NOT load backend-fintech.yml when BackendConfig.domain is \'none\'', () => {
351
+ const config = makeConfig({
352
+ project: {
353
+ projectType: 'backend',
354
+ backendConfig: {
355
+ apiStyle: 'rest',
356
+ dataStore: ['relational'],
357
+ authMechanism: 'jwt',
358
+ asyncMessaging: 'none',
359
+ deployTarget: 'container',
360
+ domain: 'none',
361
+ },
362
+ },
363
+ });
364
+ const presetSteps = {
365
+ 'tech-stack': { enabled: true },
366
+ };
367
+ const metaPrompts = new Map([
368
+ ['tech-stack', { frontmatter: makeFrontmatter({
369
+ name: 'tech-stack', knowledgeBase: ['tech-stack-selection'],
370
+ reads: [], dependencies: [],
371
+ }) }],
372
+ ]);
373
+ const result = resolveOverlayState({
374
+ config,
375
+ methodologyDir: fixtureDir,
376
+ metaPrompts,
377
+ presetSteps,
378
+ output: makeOutput(),
379
+ });
380
+ // Domain is 'none' — sub-overlay must not load
381
+ expect(result.knowledge['tech-stack']).toEqual(['tech-stack-selection']);
382
+ expect(result.knowledge['tech-stack']).not.toContain('fintech-compliance');
383
+ });
313
384
  it('handles undefined config.project gracefully', () => {
314
385
  const config = makeConfig(); // config.project is undefined
315
386
  const presetSteps = {
@@ -333,5 +404,255 @@ describe('resolveOverlayState', () => {
333
404
  expect(result.reads['step-a']).toEqual(['step-b']);
334
405
  expect(result.dependencies['step-a']).toEqual(['step-c']);
335
406
  });
407
+ describe('structural overlay (multi-service)', () => {
408
+ it('activates structural overlay when services[] present', () => {
409
+ const output = makeOutput();
410
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'overlay-structural-'));
411
+ fs.writeFileSync(path.join(tmpDir, 'multi-service-overlay.yml'), `
412
+ name: multi-service
413
+ description: Test structural overlay
414
+
415
+ step-overrides:
416
+ service-ownership-map: { enabled: true }
417
+
418
+ knowledge-overrides:
419
+ system-architecture:
420
+ append: [multi-service-architecture]
421
+ `, 'utf8');
422
+ const presetSteps = {
423
+ 'create-vision': { enabled: true },
424
+ 'service-ownership-map': { enabled: false },
425
+ 'system-architecture': { enabled: true },
426
+ };
427
+ const metaPrompts = new Map([
428
+ ['create-vision', { frontmatter: makeFrontmatter({ name: 'create-vision' }) }],
429
+ ['service-ownership-map', { frontmatter: makeFrontmatter({ name: 'service-ownership-map' }) }],
430
+ ['system-architecture', {
431
+ frontmatter: makeFrontmatter({ name: 'system-architecture', knowledgeBase: ['system-architecture'] }),
432
+ }],
433
+ ]);
434
+ const result = resolveOverlayState({
435
+ config: makeConfig({
436
+ project: {
437
+ services: [{
438
+ name: 'api',
439
+ projectType: 'backend',
440
+ backendConfig: {
441
+ apiStyle: 'rest', dataStore: ['relational'], authMechanism: 'jwt',
442
+ asyncMessaging: 'none', deployTarget: 'container', domain: 'none',
443
+ },
444
+ }],
445
+ },
446
+ }),
447
+ methodologyDir: tmpDir,
448
+ metaPrompts,
449
+ presetSteps,
450
+ output,
451
+ });
452
+ expect(result.steps['service-ownership-map']?.enabled).toBe(true);
453
+ expect(result.knowledge['system-architecture']).toContain('multi-service-architecture');
454
+ });
455
+ it('emits warning when structural overlay conflicts with project-type overlay', () => {
456
+ const output = makeOutput();
457
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'overlay-conflict-'));
458
+ fs.writeFileSync(path.join(tmpDir, 'multi-service-overlay.yml'), `
459
+ name: multi-service
460
+ description: Test conflict
461
+
462
+ step-overrides:
463
+ design-system: { enabled: true }
464
+ `, 'utf8');
465
+ const presetSteps = {
466
+ 'design-system': { enabled: false },
467
+ };
468
+ const metaPrompts = new Map([
469
+ ['design-system', { frontmatter: makeFrontmatter({ name: 'design-system' }) }],
470
+ ]);
471
+ resolveOverlayState({
472
+ config: makeConfig({
473
+ project: {
474
+ services: [{
475
+ name: 'api',
476
+ projectType: 'backend',
477
+ backendConfig: {
478
+ apiStyle: 'rest', dataStore: ['relational'], authMechanism: 'jwt',
479
+ asyncMessaging: 'none', deployTarget: 'container', domain: 'none',
480
+ },
481
+ }],
482
+ },
483
+ }),
484
+ methodologyDir: tmpDir,
485
+ metaPrompts,
486
+ presetSteps,
487
+ output,
488
+ });
489
+ expect(output.warn).toHaveBeenCalledWith(expect.stringContaining('design-system'));
490
+ });
491
+ it('does NOT activate structural overlay when services[] absent', () => {
492
+ const output = makeOutput();
493
+ const presetSteps = {
494
+ 'service-ownership-map': { enabled: false },
495
+ };
496
+ const metaPrompts = new Map([
497
+ ['service-ownership-map', { frontmatter: makeFrontmatter({ name: 'service-ownership-map' }) }],
498
+ ]);
499
+ const result = resolveOverlayState({
500
+ config: makeConfig(),
501
+ methodologyDir: fixtureDir,
502
+ metaPrompts,
503
+ presetSteps,
504
+ output,
505
+ });
506
+ expect(result.steps['service-ownership-map']?.enabled).toBe(false);
507
+ });
508
+ it('does NOT activate when services[] is empty array', () => {
509
+ const output = makeOutput();
510
+ const presetSteps = {
511
+ 'service-ownership-map': { enabled: false },
512
+ };
513
+ const metaPrompts = new Map([
514
+ ['service-ownership-map', { frontmatter: makeFrontmatter({ name: 'service-ownership-map' }) }],
515
+ ]);
516
+ const result = resolveOverlayState({
517
+ config: makeConfig({ project: { services: [] } }),
518
+ methodologyDir: fixtureDir,
519
+ metaPrompts,
520
+ presetSteps,
521
+ output,
522
+ });
523
+ expect(result.steps['service-ownership-map']?.enabled).toBe(false);
524
+ });
525
+ it('warns when structural overlay targets unknown step', () => {
526
+ const output = makeOutput();
527
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'overlay-test-'));
528
+ fs.writeFileSync(path.join(tmpDir, 'multi-service-overlay.yml'), `
529
+ name: multi-service
530
+ description: Test overlay
531
+
532
+ step-overrides:
533
+ nonexistent-step: { enabled: true }
534
+ `, 'utf8');
535
+ const presetSteps = {};
536
+ const metaPrompts = new Map();
537
+ resolveOverlayState({
538
+ config: makeConfig({
539
+ project: {
540
+ services: [{
541
+ name: 'api',
542
+ projectType: 'backend',
543
+ backendConfig: {
544
+ apiStyle: 'rest', dataStore: ['relational'], authMechanism: 'jwt',
545
+ asyncMessaging: 'none', deployTarget: 'container', domain: 'none',
546
+ },
547
+ }],
548
+ },
549
+ }),
550
+ methodologyDir: tmpDir,
551
+ metaPrompts,
552
+ presetSteps,
553
+ output,
554
+ });
555
+ expect(output.warn).toHaveBeenCalledWith(expect.stringContaining('nonexistent-step'));
556
+ });
557
+ });
558
+ });
559
+ describe('crossReads on OverlayState (Wave 3c)', () => {
560
+ // With Wave 3c+1, resolveOverlayState populates OverlayState.crossReads from
561
+ // frontmatter merged with any overlay cross-reads-overrides. Consumers should
562
+ // read `overlay.crossReads?.[slug]` as authoritative.
563
+ it('returns crossReads populated from frontmatter when no overlay overrides configured', () => {
564
+ const metaPrompts = new Map([
565
+ ['system-architecture', {
566
+ frontmatter: makeFrontmatter({
567
+ name: 'system-architecture',
568
+ phase: 'architecture',
569
+ order: 700,
570
+ outputs: ['docs/architecture.md'],
571
+ crossReads: [{ service: 'shared-lib', step: 'api-contracts' }],
572
+ }),
573
+ }],
574
+ ]);
575
+ const result = resolveOverlayState({
576
+ config: makeConfig(),
577
+ methodologyDir: '/nonexistent',
578
+ metaPrompts,
579
+ presetSteps: {},
580
+ output: makeOutput(),
581
+ });
582
+ expect(result.crossReads['system-architecture']).toEqual([
583
+ { service: 'shared-lib', step: 'api-contracts' },
584
+ ]);
585
+ });
586
+ it('returns crossReads keyed per-step with empty arrays when no step has crossReads', () => {
587
+ const metaPrompts = new Map([
588
+ ['some-step', { frontmatter: makeFrontmatter({ name: 'some-step' }) }],
589
+ ]);
590
+ const result = resolveOverlayState({
591
+ config: makeConfig(), methodologyDir: '/nonexistent', metaPrompts, presetSteps: {}, output: makeOutput(),
592
+ });
593
+ expect(result.crossReads['some-step']).toEqual([]);
594
+ });
595
+ it('threads crossReadsMap through BOTH project-type (pass 1) and structural (pass 2) passes', () => {
596
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'cross-reads-both-'));
597
+ try {
598
+ // Pass-1 overlay (project-type: backend) — no cross-reads-overrides (forbidden per §4.1)
599
+ fs.writeFileSync(path.join(tmpDir, 'backend-overlay.yml'), `
600
+ name: backend
601
+ description: pass-1 overlay
602
+ project-type: backend
603
+ step-overrides:
604
+ system-architecture: { enabled: true }
605
+ `);
606
+ // Pass-2 overlay (structural multi-service) — owns cross-reads-overrides
607
+ fs.writeFileSync(path.join(tmpDir, 'multi-service-overlay.yml'), `
608
+ name: multi-service
609
+ description: pass-2 overlay
610
+ step-overrides:
611
+ system-architecture: { enabled: true }
612
+ cross-reads-overrides:
613
+ system-architecture:
614
+ append:
615
+ - service: billing
616
+ step: api-contracts
617
+ `);
618
+ const metaPrompts = new Map([
619
+ ['system-architecture', {
620
+ frontmatter: makeFrontmatter({
621
+ name: 'system-architecture',
622
+ phase: 'architecture', order: 700,
623
+ outputs: ['docs/arch.md'],
624
+ // Frontmatter entry MUST survive both passes. Pass 1 is a no-op for
625
+ // cross-reads (§4.1), pass 2 appends. A bug that zeroes the map
626
+ // before pass 2 would drop this entry.
627
+ crossReads: [{ service: 'shared-lib', step: 'api-contracts' }],
628
+ }),
629
+ }],
630
+ ]);
631
+ const result = resolveOverlayState({
632
+ config: makeConfig({
633
+ project: {
634
+ projectType: 'backend', // triggers pass 1
635
+ services: [{
636
+ name: 'api', projectType: 'backend',
637
+ backendConfig: { apiStyle: 'rest' },
638
+ }],
639
+ },
640
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
641
+ }),
642
+ methodologyDir: tmpDir,
643
+ metaPrompts,
644
+ presetSteps: {},
645
+ output: makeOutput(),
646
+ });
647
+ // Frontmatter entry (preserved through pass 1) + overlay append from pass 2
648
+ expect(result.crossReads['system-architecture']).toEqual([
649
+ { service: 'shared-lib', step: 'api-contracts' }, // from frontmatter
650
+ { service: 'billing', step: 'api-contracts' }, // from structural overlay
651
+ ]);
652
+ }
653
+ finally {
654
+ fs.rmSync(tmpDir, { recursive: true, force: true });
655
+ }
656
+ });
336
657
  });
337
658
  //# sourceMappingURL=overlay-state-resolver.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"overlay-state-resolver.test.js","sourceRoot":"","sources":["../../../src/core/assembly/overlay-state-resolver.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAKjE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,qCAAqC,CAAC,CAAA;AAEjF,SAAS,UAAU,CAAC,YAAqC,EAAE;IACzD,OAAO;QACL,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,MAAM;QACnB,SAAS,EAAE,CAAC,aAAa,CAAC;QAC1B,GAAG,SAAS;KACb,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,YAA4C,EAAE;IACrE,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,aAAa;QAC1B,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,GAAG;QACV,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,IAAI;QACjB,aAAa,EAAE,EAAE;QACjB,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,UAAU;QACpB,GAAG,SAAS;KACb,CAAA;AACH,CAAC;AAED,SAAS,UAAU;IACjB,OAAO;QACL,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;QAChB,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;QACb,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;QACb,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;QACd,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE;QACf,0BAA0B,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;QAC1D,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE;QACf,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;QAChB,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE;QACf,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE;QACpB,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;QACnB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;QACrB,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE;QACpB,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;QACtB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;QACvB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;KACtB,CAAA;AACH,CAAC;AAED,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA,CAAC,yBAAyB;QACrD,MAAM,WAAW,GAAwC;YACvD,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YAC/B,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SAChC,CAAA;QACD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAiD;YAC1E,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC;wBAC5C,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC;wBAC3C,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,EAAE;qBACpC,CAAC,EAAE,CAAC;YACL,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC;wBAC5C,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE;wBACrC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,YAAY,CAAC;qBACxC,CAAC,EAAE,CAAC;SACN,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC;YACjC,MAAM;YACN,cAAc,EAAE,UAAU;YAC1B,WAAW;YACX,WAAW;YACX,MAAM,EAAE,UAAU,EAAE;SACrB,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;QACxD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;QACtD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAA;IACnE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;QACvF,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE;SACjC,CAAC,CAAA;QACF,MAAM,WAAW,GAAwC;YACvD,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YAClC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YAC/B,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SACzB,CAAA;QACD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAiD;YAC1E,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC;wBAC/C,IAAI,EAAE,eAAe,EAAE,aAAa,EAAE,EAAE;wBACxC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE;qBAC5B,CAAC,EAAE,CAAC;YACL,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC;wBAC5C,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,sBAAsB,CAAC;wBAC3D,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE;qBAC5B,CAAC,EAAE,CAAC;YACL,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC;wBACrC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,YAAY,CAAC;wBAC1C,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE;qBAC5B,CAAC,EAAE,CAAC;SACN,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC;YACjC,MAAM;YACN,cAAc,EAAE,UAAU;YAC1B,WAAW;YACX,WAAW;YACX,MAAM,EAAE,UAAU,EAAE;SACrB,CAAC,CAAA;QAEF,wFAAwF;QACxF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QACjE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QACvE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7D,uDAAuD;QACvD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE;SACjC,CAAC,CAAA;QACF,MAAM,WAAW,GAAwC;YACvD,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YAC/B,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YACxB,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YAChC,qBAAqB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YACxC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YACjC,wBAAwB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SAC5C,CAAA;QACD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAiD;YAC1E,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC;wBAC5C,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,sBAAsB,CAAC;wBAC3D,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE;qBAC5B,CAAC,EAAE,CAAC;YACL,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC;wBACrC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,YAAY,CAAC;wBAC1C,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE;qBAC5B,CAAC,EAAE,CAAC;YACL,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC;wBAC7C,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE;wBACtC,KAAK,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,YAAY,EAAE,EAAE;qBACrD,CAAC,EAAE,CAAC;YACL,CAAC,qBAAqB,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC;wBACrD,IAAI,EAAE,qBAAqB,EAAE,aAAa,EAAE,EAAE;wBAC9C,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,EAAE;qBACrC,CAAC,EAAE,CAAC;YACL,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC;wBAC9C,IAAI,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE;wBACvC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,YAAY,CAAC;qBACxC,CAAC,EAAE,CAAC;YACL,CAAC,wBAAwB,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC;wBACxD,IAAI,EAAE,wBAAwB,EAAE,aAAa,EAAE,EAAE;wBACjD,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,WAAW,CAAC;qBACvC,CAAC,EAAE,CAAC;SACN,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC;YACjC,MAAM;YACN,cAAc,EAAE,UAAU;YAC1B,WAAW;YACX,WAAW;YACX,MAAM,EAAE,UAAU,EAAE;SACrB,CAAC,CAAA;QAEF,oGAAoG;QACpG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,CAAC,CAAA;QACjG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC,CAAA;QAEhF,gGAAgG;QAChG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAA;QAC7E,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;QACrE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAA;QAE7E,gEAAgE;QAChE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QACnE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QACnE,8FAA8F;QAC9F,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;QACjF,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IAClF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0FAA0F,EAAE,GAAG,EAAE;QAClG,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,OAAO,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,wCAAwC;SAC1E,CAAC,CAAA;QACF,MAAM,WAAW,GAAwC;YACvD,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SAChC,CAAA;QACD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAiD;YAC1E,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC;wBAC5C,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC;wBAC3C,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE;qBAC5B,CAAC,EAAE,CAAC;SACN,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;QAE3B,MAAM,MAAM,GAAG,mBAAmB,CAAC;YACjC,MAAM;YACN,cAAc,EAAE,UAAU;YAC1B,WAAW;YACX,WAAW;YACX,MAAM;SACP,CAAC,CAAA;QAEF,kDAAkD;QAClD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;QACxD,qEAAqE;QACrE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;IAC5C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;QACvF,mEAAmE;QACnE,iFAAiF;QACjF,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,OAAO,EAAE,EAAE,WAAW,EAAE,WAAoB,EAAE;SAC/C,CAAC,CAAA;QACF,MAAM,WAAW,GAAwC;YACvD,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SAChC,CAAA;QACD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAiD;YAC1E,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC;wBAC5C,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC;wBAC3C,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE;qBAC5B,CAAC,EAAE,CAAC;SACN,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;QAE3B,MAAM,MAAM,GAAG,mBAAmB,CAAC;YACjC,MAAM;YACN,cAAc,EAAE,UAAU;YAC1B,WAAW;YACX,WAAW;YACX,MAAM;SACP,CAAC,CAAA;QAEF,kDAAkD;QAClD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;QACxD,2CAA2C;QAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,OAAO,EAAE;gBACP,WAAW,EAAE,UAAU;gBACvB,cAAc,EAAE;oBACd,gBAAgB,EAAE,aAAa;oBAC/B,eAAe,EAAE,kBAAkB;oBACnC,qBAAqB,EAAE,IAAI;oBAC3B,MAAM,EAAE,MAAM;iBACf;aACF;SACF,CAAC,CAAA;QACF,MAAM,WAAW,GAAwC;YACvD,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YAC/B,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SACzB,CAAA;QACD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAiD;YAC1E,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC;wBAC5C,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,sBAAsB,CAAC;wBAC3D,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE;qBAC5B,CAAC,EAAE,CAAC;YACL,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC;wBACrC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,YAAY,CAAC;wBAC1C,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE;qBAC5B,CAAC,EAAE,CAAC;SACN,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC;YACjC,MAAM;YACN,cAAc,EAAE,UAAU;YAC1B,WAAW;YACX,WAAW;YACX,MAAM,EAAE,UAAU,EAAE;SACrB,CAAC,CAAA;QAEF,kFAAkF;QAClF,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC,CAAA;QAC5F,wDAAwD;QACxD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,OAAO,EAAE;gBACP,WAAW,EAAE,UAAU;gBACvB,cAAc,EAAE;oBACd,gBAAgB,EAAE,aAAa;oBAC/B,eAAe,EAAE,kBAAkB;oBACnC,qBAAqB,EAAE,IAAI;oBAC3B,MAAM,EAAE,eAAe;iBACxB;aACF;SACF,CAAC,CAAA;QACF,MAAM,WAAW,GAAwC;YACvD,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YAC/B,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SACzB,CAAA;QACD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAiD;YAC1E,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC;wBAC5C,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,sBAAsB,CAAC;wBAC3D,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE;qBAC5B,CAAC,EAAE,CAAC;YACL,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC;wBACrC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,YAAY,CAAC;wBAC1C,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE;qBAC5B,CAAC,EAAE,CAAC;SACN,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC;YACjC,MAAM;YACN,cAAc,EAAE,UAAU;YAC1B,WAAW;YACX,WAAW;YACX,MAAM,EAAE,UAAU,EAAE;SACrB,CAAC,CAAA;QAEF,mFAAmF;QACnF,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7C,sBAAsB,EAAE,kBAAkB,EAAE,kBAAkB;SAC/D,CAAC,CAAA;QACF,iDAAiD;QACjD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;YACtC,YAAY,EAAE,qBAAqB;SACpC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA,CAAC,8BAA8B;QAC1D,MAAM,WAAW,GAAwC;YACvD,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SAC5B,CAAA;QACD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAiD;YAC1E,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC;wBACxC,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE;wBACjC,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC,QAAQ,CAAC;qBAC5C,CAAC,EAAE,CAAC;SACN,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC;YACjC,MAAM;YACN,cAAc,EAAE,UAAU;YAC1B,WAAW;YACX,WAAW;YACX,MAAM,EAAE,UAAU,EAAE;SACrB,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC9C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;QAClD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"overlay-state-resolver.test.js","sourceRoot":"","sources":["../../../src/core/assembly/overlay-state-resolver.test.ts"],"names":[],"mappings":"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"}
@@ -21,5 +21,6 @@ export declare function detectUpdateMode(options: {
21
21
  state: PipelineState;
22
22
  currentDepth: DepthLevel;
23
23
  projectRoot: string;
24
+ service?: string;
24
25
  }): UpdateModeResult;
25
26
  //# sourceMappingURL=update-mode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-mode.d.ts","sourceRoot":"","sources":["../../../src/core/assembly/update-mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAI5D,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,OAAO,CAAA;IACrB,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,aAAa,CAAC,EAAE,UAAU,CAAA;IAC1B,YAAY,EAAE,UAAU,CAAA;IACxB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,EAAE,eAAe,EAAE,CAAA;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,aAAa,CAAA;IACpB,YAAY,EAAE,UAAU,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;CACpB,GAAG,gBAAgB,CAgFnB"}
1
+ {"version":3,"file":"update-mode.d.ts","sourceRoot":"","sources":["../../../src/core/assembly/update-mode.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAI5D,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,OAAO,CAAA;IACrB,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,aAAa,CAAC,EAAE,UAAU,CAAA;IAC1B,YAAY,EAAE,UAAU,CAAA;IACxB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,EAAE,eAAe,EAAE,CAAA;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,aAAa,CAAA;IACpB,YAAY,EAAE,UAAU,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,GAAG,gBAAgB,CAsFnB"}
@@ -1,5 +1,6 @@
1
- import fs from 'node:fs';
2
1
  import path from 'node:path';
2
+ import fs from 'node:fs';
3
+ import { resolveContainedArtifactPath } from '../../utils/artifact-path.js';
3
4
  /**
4
5
  * Detect whether a step is being re-run (update mode).
5
6
  * Update mode is active when:
@@ -7,7 +8,7 @@ import path from 'node:path';
7
8
  * 2. At least one artifact produced by the step exists on disk.
8
9
  */
9
10
  export function detectUpdateMode(options) {
10
- const { step, state, currentDepth, projectRoot } = options;
11
+ const { step, state, currentDepth, projectRoot, service } = options;
11
12
  const stepEntry = state.steps[step];
12
13
  // Not completed — definitely not update mode
13
14
  if (!stepEntry || stepEntry.status !== 'completed') {
@@ -18,14 +19,19 @@ export function detectUpdateMode(options) {
18
19
  if (produces.length === 0) {
19
20
  return { isUpdateMode: false, currentDepth, warnings: [] };
20
21
  }
21
- // Find the first file artifact that exists on disk (skip directories)
22
- let firstExistingRelPath;
22
+ // Find the first file artifact that exists on disk (skip directories).
23
+ // Both relPath and its containment-checked fullPath are tracked together
24
+ // so the downstream read site does not need a non-null assertion.
25
+ let firstExisting;
23
26
  for (const relativePath of produces) {
24
- const fullPath = path.resolve(projectRoot, relativePath);
27
+ const outputPath = service ? path.join('services', service, relativePath) : relativePath;
28
+ const fullPath = resolveContainedArtifactPath(projectRoot, outputPath);
29
+ if (fullPath === null)
30
+ continue; // path escapes project root — skip
25
31
  try {
26
32
  const stat = fs.statSync(fullPath);
27
33
  if (stat.isFile()) {
28
- firstExistingRelPath = relativePath;
34
+ firstExisting = { relPath: relativePath, fullPath };
29
35
  break;
30
36
  }
31
37
  }
@@ -34,11 +40,13 @@ export function detectUpdateMode(options) {
34
40
  }
35
41
  }
36
42
  // No artifacts exist on disk — not update mode
37
- if (firstExistingRelPath === undefined) {
43
+ if (firstExisting === undefined) {
38
44
  return { isUpdateMode: false, currentDepth, warnings: [] };
39
45
  }
40
- // Update mode triggered — read first artifact content
41
- const fullPath = path.resolve(projectRoot, firstExistingRelPath);
46
+ // Update mode triggered — read first artifact content.
47
+ // TypeScript has narrowed `firstExisting` to non-undefined by this point
48
+ // (the early-return for the not-found case runs above this line).
49
+ const { relPath: firstExistingRelPath, fullPath } = firstExisting;
42
50
  const content = fs.readFileSync(fullPath, 'utf8');
43
51
  const previousDepth = stepEntry.depth;
44
52
  const completionTimestamp = stepEntry.at ?? '';
@@ -1 +1 @@
1
- {"version":3,"file":"update-mode.js","sourceRoot":"","sources":["../../../src/core/assembly/update-mode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-mode.js","sourceRoot":"","sources":["../../../src/core/assembly/update-mode.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,17 @@ import type { StepStateEntry } from '../../types/index.js';
5
5
  * satisfied (completed, skipped, or disabled).
6
6
  *
7
7
  * Steps absent from `steps` are treated as pending.
8
+ *
9
+ * Optional `options.scope` and `options.globalSteps` enable scope filtering:
10
+ * - `scope='service'`: excludes global steps (those in globalSteps)
11
+ * - `scope='global'`: excludes per-service steps (those NOT in globalSteps)
12
+ * and auto-satisfies per-service dependencies (fan-in)
13
+ * - no scope: existing behavior preserved (backward compatible)
8
14
  */
9
- export declare function computeEligible(graph: DependencyGraph, steps: Record<string, StepStateEntry>): string[];
15
+ export declare function computeEligible(graph: DependencyGraph, steps: Record<string, StepStateEntry>, options?: {
16
+ scope?: 'global' | 'service';
17
+ globalSteps?: Set<string>;
18
+ }): string[];
10
19
  /**
11
20
  * Group enabled steps into sets that can run concurrently.
12
21
  *
@@ -1 +1 @@
1
- {"version":3,"file":"eligibility.d.ts","sourceRoot":"","sources":["../../../src/core/dependency/eligibility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAG1D;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GACpC,MAAM,EAAE,CA6BV;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,EAAE,EAAE,CAqBlE"}
1
+ {"version":3,"file":"eligibility.d.ts","sourceRoot":"","sources":["../../../src/core/dependency/eligibility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAG1D;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EACrC,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC5B,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC1B,GACA,MAAM,EAAE,CAuCV;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,EAAE,EAAE,CAqBlE"}
@@ -4,13 +4,28 @@ import { PHASE_SORT_ORDER } from './dependency.js';
4
4
  * satisfied (completed, skipped, or disabled).
5
5
  *
6
6
  * Steps absent from `steps` are treated as pending.
7
+ *
8
+ * Optional `options.scope` and `options.globalSteps` enable scope filtering:
9
+ * - `scope='service'`: excludes global steps (those in globalSteps)
10
+ * - `scope='global'`: excludes per-service steps (those NOT in globalSteps)
11
+ * and auto-satisfies per-service dependencies (fan-in)
12
+ * - no scope: existing behavior preserved (backward compatible)
7
13
  */
8
- export function computeEligible(graph, steps) {
14
+ export function computeEligible(graph, steps, options) {
15
+ const { scope, globalSteps } = options ?? {};
9
16
  const eligible = [];
10
17
  for (const [slug, node] of graph.nodes) {
11
18
  // Skip disabled steps — they are never candidates for execution
12
19
  if (!node.enabled)
13
20
  continue;
21
+ // Scope filtering
22
+ if (scope && globalSteps) {
23
+ const isGlobal = globalSteps.has(slug);
24
+ if (scope === 'service' && isGlobal)
25
+ continue;
26
+ if (scope === 'global' && !isGlobal)
27
+ continue;
28
+ }
14
29
  const status = steps[slug]?.status;
15
30
  // Only pending steps (or steps not yet in state) are candidates
16
31
  if (status !== 'pending' && status !== undefined)
@@ -21,6 +36,9 @@ export function computeEligible(graph, steps) {
21
36
  // Disabled deps count as satisfied
22
37
  if (depNode && !depNode.enabled)
23
38
  return true;
39
+ // Fan-in: in global scope, per-service deps are auto-satisfied
40
+ if (scope === 'global' && globalSteps && !globalSteps.has(dep))
41
+ return true;
24
42
  const depStatus = steps[dep]?.status;
25
43
  return depStatus === 'completed' || depStatus === 'skipped';
26
44
  });
@@ -1 +1 @@
1
- {"version":3,"file":"eligibility.js","sourceRoot":"","sources":["../../../src/core/dependency/eligibility.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eligibility.js","sourceRoot":"","sources":["../../../src/core/dependency/eligibility.ts"],"names":[],"mappings":"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"}