@sdd-method/sdd-cli 1.42.0 → 1.44.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 (402) hide show
  1. package/NOTICE +1 -1
  2. package/README.md +16 -70
  3. package/dist/author-bin.d.ts +3 -0
  4. package/dist/author-bin.d.ts.map +1 -0
  5. package/dist/author-bin.js +8 -0
  6. package/dist/author-bin.js.map +1 -0
  7. package/dist/author-program.d.ts +8 -0
  8. package/dist/author-program.d.ts.map +1 -0
  9. package/dist/author-program.js +99 -0
  10. package/dist/author-program.js.map +1 -0
  11. package/dist/cli.js +0 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1 -3
  14. package/dist/index.js.map +1 -1
  15. package/dist/lib/agent-harness.d.ts +11 -8
  16. package/dist/lib/agent-harness.d.ts.map +1 -1
  17. package/dist/lib/agent-harness.js +17 -8
  18. package/dist/lib/agent-harness.js.map +1 -1
  19. package/dist/lib/briefing/index.d.ts +1 -1
  20. package/dist/lib/briefing/index.d.ts.map +1 -1
  21. package/dist/lib/briefing/index.js +1 -1
  22. package/dist/lib/briefing/index.js.map +1 -1
  23. package/dist/lib/briefing/render.d.ts +18 -1
  24. package/dist/lib/briefing/render.d.ts.map +1 -1
  25. package/dist/lib/briefing/render.js +17 -8
  26. package/dist/lib/briefing/render.js.map +1 -1
  27. package/dist/lib/catalogue/aggregate.js +6 -6
  28. package/dist/lib/catalogue/aggregate.js.map +1 -1
  29. package/dist/lib/catalogue/aggregation-manifest-loader.js +4 -4
  30. package/dist/lib/catalogue/aggregation-manifest-loader.js.map +1 -1
  31. package/dist/lib/catalogue/build.js +1 -1
  32. package/dist/lib/catalogue/build.js.map +1 -1
  33. package/dist/lib/catalogue/builders/c4-components.js +1 -1
  34. package/dist/lib/catalogue/builders/c4-components.js.map +1 -1
  35. package/dist/lib/catalogue/builders/c4-containers.d.ts +1 -1
  36. package/dist/lib/catalogue/builders/c4-containers.js +1 -1
  37. package/dist/lib/catalogue/builders/c4-l1-candidates.js +1 -1
  38. package/dist/lib/catalogue/builders/c4-l1-candidates.js.map +1 -1
  39. package/dist/lib/catalogue/builders/container-dependency.d.ts +1 -1
  40. package/dist/lib/catalogue/builders/container-dependency.js +1 -1
  41. package/dist/lib/catalogue/builders/data-store-mapping.js +1 -1
  42. package/dist/lib/catalogue/builders/data-store-mapping.js.map +1 -1
  43. package/dist/lib/catalogue/builders/screen-tree.d.ts +1 -1
  44. package/dist/lib/catalogue/builders/screen-tree.js +1 -1
  45. package/dist/lib/catalogue/contract-path-resolution.d.ts +2 -2
  46. package/dist/lib/catalogue/contract-path-resolution.js +2 -2
  47. package/dist/lib/catalogue/dedupe-keyed-tables.d.ts +1 -1
  48. package/dist/lib/catalogue/dedupe-keyed-tables.js +0 -0
  49. package/dist/lib/catalogue/dedupe-keyed-tables.js.map +1 -1
  50. package/dist/lib/catalogue/freshness.d.ts +1 -0
  51. package/dist/lib/catalogue/freshness.d.ts.map +1 -1
  52. package/dist/lib/catalogue/freshness.js +4 -3
  53. package/dist/lib/catalogue/freshness.js.map +1 -1
  54. package/dist/lib/catalogue/scores-coverage.js +1 -1
  55. package/dist/lib/catalogue/scores-coverage.js.map +1 -1
  56. package/dist/lib/catalogue/service-contract-aliases-loader.d.ts +1 -1
  57. package/dist/lib/catalogue/service-contract-aliases-loader.js +1 -1
  58. package/dist/lib/ci-binding/index.d.ts.map +1 -1
  59. package/dist/lib/ci-binding/index.js +44 -5
  60. package/dist/lib/ci-binding/index.js.map +1 -1
  61. package/dist/lib/ci-binding/module.d.ts +10 -0
  62. package/dist/lib/ci-binding/module.d.ts.map +1 -1
  63. package/dist/lib/ci-binding/module.js +74 -2
  64. package/dist/lib/ci-binding/module.js.map +1 -1
  65. package/dist/lib/context-pull/index.d.ts +15 -9
  66. package/dist/lib/context-pull/index.d.ts.map +1 -1
  67. package/dist/lib/context-pull/index.js +79 -39
  68. package/dist/lib/context-pull/index.js.map +1 -1
  69. package/dist/lib/context-pull/retired-mcp-setup.d.ts +7 -0
  70. package/dist/lib/context-pull/retired-mcp-setup.d.ts.map +1 -0
  71. package/dist/lib/context-pull/retired-mcp-setup.js +7 -0
  72. package/dist/lib/context-pull/retired-mcp-setup.js.map +1 -0
  73. package/dist/lib/hooks-seed/entries.d.ts +41 -2
  74. package/dist/lib/hooks-seed/entries.d.ts.map +1 -1
  75. package/dist/lib/hooks-seed/entries.js +55 -4
  76. package/dist/lib/hooks-seed/entries.js.map +1 -1
  77. package/dist/lib/hooks-seed/index.d.ts +5 -9
  78. package/dist/lib/hooks-seed/index.d.ts.map +1 -1
  79. package/dist/lib/hooks-seed/index.js +4 -7
  80. package/dist/lib/hooks-seed/index.js.map +1 -1
  81. package/dist/lib/hooks-seed/merge.d.ts +7 -0
  82. package/dist/lib/hooks-seed/merge.d.ts.map +1 -1
  83. package/dist/lib/hooks-seed/merge.js +31 -0
  84. package/dist/lib/hooks-seed/merge.js.map +1 -1
  85. package/dist/lib/init/app.d.ts +0 -1
  86. package/dist/lib/init/app.d.ts.map +1 -1
  87. package/dist/lib/init/app.js +0 -7
  88. package/dist/lib/init/app.js.map +1 -1
  89. package/dist/lib/init/ci-workflow.js +26 -2
  90. package/dist/lib/init/ci-workflow.js.map +1 -1
  91. package/dist/lib/init/integration.d.ts +0 -1
  92. package/dist/lib/init/integration.d.ts.map +1 -1
  93. package/dist/lib/init/integration.js +0 -7
  94. package/dist/lib/init/integration.js.map +1 -1
  95. package/dist/lib/init/platform.d.ts +2 -10
  96. package/dist/lib/init/platform.d.ts.map +1 -1
  97. package/dist/lib/init/platform.js +7 -13
  98. package/dist/lib/init/platform.js.map +1 -1
  99. package/dist/lib/lock-file.d.ts +7 -0
  100. package/dist/lib/lock-file.d.ts.map +1 -1
  101. package/dist/lib/lock-file.js +10 -0
  102. package/dist/lib/lock-file.js.map +1 -1
  103. package/dist/lib/pack/builder.d.ts +14 -0
  104. package/dist/lib/pack/builder.d.ts.map +1 -1
  105. package/dist/lib/pack/builder.js +56 -4
  106. package/dist/lib/pack/builder.js.map +1 -1
  107. package/dist/lib/pack/index.d.ts +3 -1
  108. package/dist/lib/pack/index.d.ts.map +1 -1
  109. package/dist/lib/pack/index.js +1 -0
  110. package/dist/lib/pack/index.js.map +1 -1
  111. package/dist/lib/pack/publish-transform.js +1 -1
  112. package/dist/lib/pack/publish-transform.js.map +1 -1
  113. package/dist/lib/plan/index.d.ts.map +1 -1
  114. package/dist/lib/plan/index.js +4 -4
  115. package/dist/lib/plan/index.js.map +1 -1
  116. package/dist/lib/plan/read-sdd.js +1 -1
  117. package/dist/lib/plan/render-template.d.ts +8 -0
  118. package/dist/lib/plan/render-template.d.ts.map +1 -1
  119. package/dist/lib/plan/render-template.js +27 -3
  120. package/dist/lib/plan/render-template.js.map +1 -1
  121. package/dist/lib/sdd-index/repo-config.d.ts +1 -1
  122. package/dist/lib/sdd-index/repo-config.js +1 -1
  123. package/dist/lib/{mcp/reader.d.ts → sdd-reader.d.ts} +3 -5
  124. package/dist/lib/sdd-reader.d.ts.map +1 -0
  125. package/dist/lib/{mcp/reader.js → sdd-reader.js} +3 -5
  126. package/dist/lib/sdd-reader.js.map +1 -0
  127. package/dist/lib/snapshot/targets.js +1 -1
  128. package/dist/lib/snapshot/targets.js.map +1 -1
  129. package/dist/lib/sync/briefing-merge.d.ts +1 -1
  130. package/dist/lib/sync/briefing-merge.d.ts.map +1 -1
  131. package/dist/lib/sync/briefing-merge.js +50 -34
  132. package/dist/lib/sync/briefing-merge.js.map +1 -1
  133. package/dist/lib/sync/diff.js +1 -1
  134. package/dist/lib/sync/diff.js.map +1 -1
  135. package/dist/lib/sync/index.d.ts +14 -6
  136. package/dist/lib/sync/index.d.ts.map +1 -1
  137. package/dist/lib/sync/index.js +46 -72
  138. package/dist/lib/sync/index.js.map +1 -1
  139. package/dist/lib/sync/settings-merge.d.ts +29 -49
  140. package/dist/lib/sync/settings-merge.d.ts.map +1 -1
  141. package/dist/lib/sync/settings-merge.js +71 -163
  142. package/dist/lib/sync/settings-merge.js.map +1 -1
  143. package/dist/lib/validate/plan.d.ts +10 -1
  144. package/dist/lib/validate/plan.d.ts.map +1 -1
  145. package/dist/lib/validate/plan.js +6 -3
  146. package/dist/lib/validate/plan.js.map +1 -1
  147. package/dist/maintain-program.d.ts.map +1 -1
  148. package/dist/maintain-program.js +6 -3
  149. package/dist/maintain-program.js.map +1 -1
  150. package/dist/maintain-version.json +2 -2
  151. package/dist/verbs/catalogue-check.d.ts +10 -0
  152. package/dist/verbs/catalogue-check.d.ts.map +1 -0
  153. package/dist/verbs/catalogue-check.js +28 -0
  154. package/dist/verbs/catalogue-check.js.map +1 -0
  155. package/dist/verbs/catalogue.d.ts.map +1 -1
  156. package/dist/verbs/catalogue.js +2 -0
  157. package/dist/verbs/catalogue.js.map +1 -1
  158. package/dist/verbs/context.js +1 -1
  159. package/dist/verbs/context.js.map +1 -1
  160. package/dist/verbs/pack-build.d.ts.map +1 -1
  161. package/dist/verbs/pack-build.js +22 -0
  162. package/dist/verbs/pack-build.js.map +1 -1
  163. package/dist/verbs/plan.js +1 -1
  164. package/dist/verbs/plan.js.map +1 -1
  165. package/dist/verbs/sync.d.ts.map +1 -1
  166. package/dist/verbs/sync.js +17 -0
  167. package/dist/verbs/sync.js.map +1 -1
  168. package/dist/verbs/validate.d.ts.map +1 -1
  169. package/dist/verbs/validate.js +6 -1
  170. package/dist/verbs/validate.js.map +1 -1
  171. package/dist/verify-program.js +2 -2
  172. package/dist/verify-program.js.map +1 -1
  173. package/dist/verify-version.json +2 -2
  174. package/package.json +5 -13
  175. package/scripts/README.md +1 -1
  176. package/scripts/author-acceptance.mjs +170 -0
  177. package/scripts/author-version.json +4 -0
  178. package/scripts/build-persona-package.mjs +46 -13
  179. package/scripts/maintain-acceptance.mjs +3 -2
  180. package/scripts/maintain-version.json +2 -2
  181. package/scripts/publish-release.mjs +117 -0
  182. package/scripts/release-gate.mjs +19 -8
  183. package/scripts/verify-version.json +2 -2
  184. package/scripts/vitest-tmpdir.mjs +26 -0
  185. package/dist/lib/catalogue/advisory-container-type.d.ts +0 -13
  186. package/dist/lib/catalogue/advisory-container-type.d.ts.map +0 -1
  187. package/dist/lib/catalogue/advisory-container-type.js +0 -56
  188. package/dist/lib/catalogue/advisory-container-type.js.map +0 -1
  189. package/dist/lib/hooks-seed/copilot.d.ts +0 -93
  190. package/dist/lib/hooks-seed/copilot.d.ts.map +0 -1
  191. package/dist/lib/hooks-seed/copilot.js +0 -167
  192. package/dist/lib/hooks-seed/copilot.js.map +0 -1
  193. package/dist/lib/hooks-seed/lifecycle-mapping.d.ts +0 -12
  194. package/dist/lib/hooks-seed/lifecycle-mapping.d.ts.map +0 -1
  195. package/dist/lib/hooks-seed/lifecycle-mapping.js +0 -28
  196. package/dist/lib/hooks-seed/lifecycle-mapping.js.map +0 -1
  197. package/dist/lib/mcp/build-info.d.ts +0 -7
  198. package/dist/lib/mcp/build-info.d.ts.map +0 -1
  199. package/dist/lib/mcp/build-info.js +0 -10
  200. package/dist/lib/mcp/build-info.js.map +0 -1
  201. package/dist/lib/mcp/errors.d.ts +0 -23
  202. package/dist/lib/mcp/errors.d.ts.map +0 -1
  203. package/dist/lib/mcp/errors.js +0 -25
  204. package/dist/lib/mcp/errors.js.map +0 -1
  205. package/dist/lib/mcp/parse/frontmatter.d.ts +0 -22
  206. package/dist/lib/mcp/parse/frontmatter.d.ts.map +0 -1
  207. package/dist/lib/mcp/parse/frontmatter.js +0 -49
  208. package/dist/lib/mcp/parse/frontmatter.js.map +0 -1
  209. package/dist/lib/mcp/parse/gate-registry.d.ts +0 -78
  210. package/dist/lib/mcp/parse/gate-registry.d.ts.map +0 -1
  211. package/dist/lib/mcp/parse/gate-registry.js +0 -164
  212. package/dist/lib/mcp/parse/gate-registry.js.map +0 -1
  213. package/dist/lib/mcp/parse/paths.d.ts +0 -21
  214. package/dist/lib/mcp/parse/paths.d.ts.map +0 -1
  215. package/dist/lib/mcp/parse/paths.js +0 -84
  216. package/dist/lib/mcp/parse/paths.js.map +0 -1
  217. package/dist/lib/mcp/pin/errors.d.ts +0 -11
  218. package/dist/lib/mcp/pin/errors.d.ts.map +0 -1
  219. package/dist/lib/mcp/pin/errors.js +0 -32
  220. package/dist/lib/mcp/pin/errors.js.map +0 -1
  221. package/dist/lib/mcp/pin/index.d.ts +0 -18
  222. package/dist/lib/mcp/pin/index.d.ts.map +0 -1
  223. package/dist/lib/mcp/pin/index.js +0 -29
  224. package/dist/lib/mcp/pin/index.js.map +0 -1
  225. package/dist/lib/mcp/pin/read.d.ts +0 -24
  226. package/dist/lib/mcp/pin/read.d.ts.map +0 -1
  227. package/dist/lib/mcp/pin/read.js +0 -64
  228. package/dist/lib/mcp/pin/read.js.map +0 -1
  229. package/dist/lib/mcp/pin/resolve.d.ts +0 -12
  230. package/dist/lib/mcp/pin/resolve.d.ts.map +0 -1
  231. package/dist/lib/mcp/pin/resolve.js +0 -33
  232. package/dist/lib/mcp/pin/resolve.js.map +0 -1
  233. package/dist/lib/mcp/prompts/evaluate-cascade.d.ts +0 -14
  234. package/dist/lib/mcp/prompts/evaluate-cascade.d.ts.map +0 -1
  235. package/dist/lib/mcp/prompts/evaluate-cascade.js +0 -147
  236. package/dist/lib/mcp/prompts/evaluate-cascade.js.map +0 -1
  237. package/dist/lib/mcp/prompts/index.d.ts +0 -9
  238. package/dist/lib/mcp/prompts/index.d.ts.map +0 -1
  239. package/dist/lib/mcp/prompts/index.js +0 -23
  240. package/dist/lib/mcp/prompts/index.js.map +0 -1
  241. package/dist/lib/mcp/prompts/propose-adr.d.ts +0 -12
  242. package/dist/lib/mcp/prompts/propose-adr.d.ts.map +0 -1
  243. package/dist/lib/mcp/prompts/propose-adr.js +0 -100
  244. package/dist/lib/mcp/prompts/propose-adr.js.map +0 -1
  245. package/dist/lib/mcp/prompts/review-data-model-change.d.ts +0 -10
  246. package/dist/lib/mcp/prompts/review-data-model-change.d.ts.map +0 -1
  247. package/dist/lib/mcp/prompts/review-data-model-change.js +0 -134
  248. package/dist/lib/mcp/prompts/review-data-model-change.js.map +0 -1
  249. package/dist/lib/mcp/prompts/template-loader.d.ts +0 -29
  250. package/dist/lib/mcp/prompts/template-loader.d.ts.map +0 -1
  251. package/dist/lib/mcp/prompts/template-loader.js +0 -44
  252. package/dist/lib/mcp/prompts/template-loader.js.map +0 -1
  253. package/dist/lib/mcp/prompts/types.d.ts +0 -17
  254. package/dist/lib/mcp/prompts/types.d.ts.map +0 -1
  255. package/dist/lib/mcp/prompts/types.js +0 -10
  256. package/dist/lib/mcp/prompts/types.js.map +0 -1
  257. package/dist/lib/mcp/prompts/write-capability-spec.d.ts +0 -8
  258. package/dist/lib/mcp/prompts/write-capability-spec.d.ts.map +0 -1
  259. package/dist/lib/mcp/prompts/write-capability-spec.js +0 -85
  260. package/dist/lib/mcp/prompts/write-capability-spec.js.map +0 -1
  261. package/dist/lib/mcp/prompts/write-feature-spec.d.ts +0 -10
  262. package/dist/lib/mcp/prompts/write-feature-spec.d.ts.map +0 -1
  263. package/dist/lib/mcp/prompts/write-feature-spec.js +0 -94
  264. package/dist/lib/mcp/prompts/write-feature-spec.js.map +0 -1
  265. package/dist/lib/mcp/prompts/write-work-order.d.ts +0 -7
  266. package/dist/lib/mcp/prompts/write-work-order.d.ts.map +0 -1
  267. package/dist/lib/mcp/prompts/write-work-order.js +0 -69
  268. package/dist/lib/mcp/prompts/write-work-order.js.map +0 -1
  269. package/dist/lib/mcp/reader.d.ts.map +0 -1
  270. package/dist/lib/mcp/reader.js.map +0 -1
  271. package/dist/lib/mcp/resources/adrs.d.ts +0 -3
  272. package/dist/lib/mcp/resources/adrs.d.ts.map +0 -1
  273. package/dist/lib/mcp/resources/adrs.js +0 -97
  274. package/dist/lib/mcp/resources/adrs.js.map +0 -1
  275. package/dist/lib/mcp/resources/catalogue.d.ts +0 -19
  276. package/dist/lib/mcp/resources/catalogue.d.ts.map +0 -1
  277. package/dist/lib/mcp/resources/catalogue.js +0 -240
  278. package/dist/lib/mcp/resources/catalogue.js.map +0 -1
  279. package/dist/lib/mcp/resources/data-models.d.ts +0 -14
  280. package/dist/lib/mcp/resources/data-models.d.ts.map +0 -1
  281. package/dist/lib/mcp/resources/data-models.js +0 -81
  282. package/dist/lib/mcp/resources/data-models.js.map +0 -1
  283. package/dist/lib/mcp/resources/gates.d.ts +0 -9
  284. package/dist/lib/mcp/resources/gates.d.ts.map +0 -1
  285. package/dist/lib/mcp/resources/gates.js +0 -76
  286. package/dist/lib/mcp/resources/gates.js.map +0 -1
  287. package/dist/lib/mcp/resources/glossary.d.ts +0 -16
  288. package/dist/lib/mcp/resources/glossary.d.ts.map +0 -1
  289. package/dist/lib/mcp/resources/glossary.js +0 -87
  290. package/dist/lib/mcp/resources/glossary.js.map +0 -1
  291. package/dist/lib/mcp/resources/specs.d.ts +0 -23
  292. package/dist/lib/mcp/resources/specs.d.ts.map +0 -1
  293. package/dist/lib/mcp/resources/specs.js +0 -151
  294. package/dist/lib/mcp/resources/specs.js.map +0 -1
  295. package/dist/lib/mcp/resources/version.d.ts +0 -3
  296. package/dist/lib/mcp/resources/version.d.ts.map +0 -1
  297. package/dist/lib/mcp/resources/version.js +0 -45
  298. package/dist/lib/mcp/resources/version.js.map +0 -1
  299. package/dist/lib/mcp/server.d.ts +0 -29
  300. package/dist/lib/mcp/server.d.ts.map +0 -1
  301. package/dist/lib/mcp/server.js +0 -108
  302. package/dist/lib/mcp/server.js.map +0 -1
  303. package/dist/lib/mcp/tools/cascade-impact.d.ts +0 -22
  304. package/dist/lib/mcp/tools/cascade-impact.d.ts.map +0 -1
  305. package/dist/lib/mcp/tools/cascade-impact.js +0 -53
  306. package/dist/lib/mcp/tools/cascade-impact.js.map +0 -1
  307. package/dist/lib/mcp/tools/catalogue.d.ts +0 -16
  308. package/dist/lib/mcp/tools/catalogue.d.ts.map +0 -1
  309. package/dist/lib/mcp/tools/catalogue.js +0 -268
  310. package/dist/lib/mcp/tools/catalogue.js.map +0 -1
  311. package/dist/lib/mcp/tools/find-consumers-of-contract.d.ts +0 -7
  312. package/dist/lib/mcp/tools/find-consumers-of-contract.d.ts.map +0 -1
  313. package/dist/lib/mcp/tools/find-consumers-of-contract.js +0 -70
  314. package/dist/lib/mcp/tools/find-consumers-of-contract.js.map +0 -1
  315. package/dist/lib/mcp/tools/find-consumers.d.ts +0 -7
  316. package/dist/lib/mcp/tools/find-consumers.d.ts.map +0 -1
  317. package/dist/lib/mcp/tools/find-consumers.js +0 -52
  318. package/dist/lib/mcp/tools/find-consumers.js.map +0 -1
  319. package/dist/lib/mcp/tools/find-dependencies.d.ts +0 -8
  320. package/dist/lib/mcp/tools/find-dependencies.d.ts.map +0 -1
  321. package/dist/lib/mcp/tools/find-dependencies.js +0 -101
  322. package/dist/lib/mcp/tools/find-dependencies.js.map +0 -1
  323. package/dist/lib/mcp/tools/find-dependents.d.ts +0 -8
  324. package/dist/lib/mcp/tools/find-dependents.d.ts.map +0 -1
  325. package/dist/lib/mcp/tools/find-dependents.js +0 -89
  326. package/dist/lib/mcp/tools/find-dependents.js.map +0 -1
  327. package/dist/lib/mcp/tools/find-producers.d.ts +0 -8
  328. package/dist/lib/mcp/tools/find-producers.d.ts.map +0 -1
  329. package/dist/lib/mcp/tools/find-producers.js +0 -57
  330. package/dist/lib/mcp/tools/find-producers.js.map +0 -1
  331. package/dist/lib/mcp/tools/find-related-specs.d.ts +0 -9
  332. package/dist/lib/mcp/tools/find-related-specs.d.ts.map +0 -1
  333. package/dist/lib/mcp/tools/find-related-specs.js +0 -92
  334. package/dist/lib/mcp/tools/find-related-specs.js.map +0 -1
  335. package/dist/lib/mcp/tools/list-adrs.d.ts +0 -3
  336. package/dist/lib/mcp/tools/list-adrs.d.ts.map +0 -1
  337. package/dist/lib/mcp/tools/list-adrs.js +0 -73
  338. package/dist/lib/mcp/tools/list-adrs.js.map +0 -1
  339. package/dist/lib/mcp/tools/query-gate-status.d.ts +0 -3
  340. package/dist/lib/mcp/tools/query-gate-status.d.ts.map +0 -1
  341. package/dist/lib/mcp/tools/query-gate-status.js +0 -68
  342. package/dist/lib/mcp/tools/query-gate-status.js.map +0 -1
  343. package/dist/lib/mcp/tools/search-specs.d.ts +0 -12
  344. package/dist/lib/mcp/tools/search-specs.d.ts.map +0 -1
  345. package/dist/lib/mcp/tools/search-specs.js +0 -151
  346. package/dist/lib/mcp/tools/search-specs.js.map +0 -1
  347. package/dist/lib/mcp/workspace.d.ts +0 -31
  348. package/dist/lib/mcp/workspace.d.ts.map +0 -1
  349. package/dist/lib/mcp/workspace.js +0 -146
  350. package/dist/lib/mcp/workspace.js.map +0 -1
  351. package/dist/lib/mcp-seed/entries.d.ts +0 -32
  352. package/dist/lib/mcp-seed/entries.d.ts.map +0 -1
  353. package/dist/lib/mcp-seed/entries.js +0 -14
  354. package/dist/lib/mcp-seed/entries.js.map +0 -1
  355. package/dist/lib/mcp-seed/index.d.ts +0 -36
  356. package/dist/lib/mcp-seed/index.d.ts.map +0 -1
  357. package/dist/lib/mcp-seed/index.js +0 -28
  358. package/dist/lib/mcp-seed/index.js.map +0 -1
  359. package/dist/lib/mcp-seed/merge.d.ts +0 -34
  360. package/dist/lib/mcp-seed/merge.d.ts.map +0 -1
  361. package/dist/lib/mcp-seed/merge.js +0 -99
  362. package/dist/lib/mcp-seed/merge.js.map +0 -1
  363. package/dist/lib/mcp-seed/types.d.ts +0 -24
  364. package/dist/lib/mcp-seed/types.d.ts.map +0 -1
  365. package/dist/lib/mcp-seed/types.js +0 -13
  366. package/dist/lib/mcp-seed/types.js.map +0 -1
  367. package/dist/lib/sdd-index/cascade.d.ts +0 -46
  368. package/dist/lib/sdd-index/cascade.d.ts.map +0 -1
  369. package/dist/lib/sdd-index/cascade.js +0 -91
  370. package/dist/lib/sdd-index/cascade.js.map +0 -1
  371. package/dist/lib/sdd-index/contracts.d.ts +0 -29
  372. package/dist/lib/sdd-index/contracts.d.ts.map +0 -1
  373. package/dist/lib/sdd-index/contracts.js +0 -216
  374. package/dist/lib/sdd-index/contracts.js.map +0 -1
  375. package/dist/lib/sdd-index/data-model.d.ts +0 -13
  376. package/dist/lib/sdd-index/data-model.d.ts.map +0 -1
  377. package/dist/lib/sdd-index/data-model.js +0 -23
  378. package/dist/lib/sdd-index/data-model.js.map +0 -1
  379. package/dist/lib/sdd-index/execution-map.d.ts +0 -34
  380. package/dist/lib/sdd-index/execution-map.d.ts.map +0 -1
  381. package/dist/lib/sdd-index/execution-map.js +0 -105
  382. package/dist/lib/sdd-index/execution-map.js.map +0 -1
  383. package/dist/lib/sdd-index/graph.d.ts +0 -28
  384. package/dist/lib/sdd-index/graph.d.ts.map +0 -1
  385. package/dist/lib/sdd-index/graph.js +0 -122
  386. package/dist/lib/sdd-index/graph.js.map +0 -1
  387. package/dist/lib/sdd-index/index.d.ts +0 -29
  388. package/dist/lib/sdd-index/index.d.ts.map +0 -1
  389. package/dist/lib/sdd-index/index.js +0 -79
  390. package/dist/lib/sdd-index/index.js.map +0 -1
  391. package/dist/lib/sdd-index/watch.d.ts +0 -24
  392. package/dist/lib/sdd-index/watch.d.ts.map +0 -1
  393. package/dist/lib/sdd-index/watch.js +0 -112
  394. package/dist/lib/sdd-index/watch.js.map +0 -1
  395. package/dist/lib/sync/copilot-hooks-merge.d.ts +0 -36
  396. package/dist/lib/sync/copilot-hooks-merge.d.ts.map +0 -1
  397. package/dist/lib/sync/copilot-hooks-merge.js +0 -108
  398. package/dist/lib/sync/copilot-hooks-merge.js.map +0 -1
  399. package/dist/verbs/mcp.d.ts +0 -3
  400. package/dist/verbs/mcp.d.ts.map +0 -1
  401. package/dist/verbs/mcp.js +0 -22
  402. package/dist/verbs/mcp.js.map +0 -1
@@ -1,91 +0,0 @@
1
- /**
2
- * Library-level wrapper around `validate-cascade-completeness.sh --json`.
3
- * Extracted from `src/lib/mcp/tools/cascade-impact.ts` so the tool and
4
- * the Phase 5 `evaluate_cascade` prompt share one implementation.
5
- *
6
- * Structured errors are returned via `CascadeImpactError` rather than
7
- * thrown at the McpEnvelopeError layer — callers decide whether to
8
- * propagate as a tool error or embed in a prompt message.
9
- */
10
- import { spawnSync } from "node:child_process";
11
- import { join } from "node:path";
12
- import { getSddIndex } from "./index.js";
13
- export const VALIDATOR_REL_PATH = "orchestration/scripts/validate-cascade-completeness.sh";
14
- export class CascadeImpactError extends Error {
15
- code;
16
- remediation;
17
- context;
18
- constructor(code, message, remediation, context = {}) {
19
- super(message);
20
- this.name = "CascadeImpactError";
21
- this.code = code;
22
- this.remediation = remediation;
23
- this.context = context;
24
- }
25
- }
26
- export function runCascadeImpact(reader, args) {
27
- const validator = join(reader.sddRoot, VALIDATOR_REL_PATH);
28
- if (!reader.isFile(VALIDATOR_REL_PATH)) {
29
- throw new CascadeImpactError("CASCADE_VALIDATOR_UNAVAILABLE", `Cascade validator script not found at ${VALIDATOR_REL_PATH}.`, "The adopter SDD must ship orchestration/scripts/validate-cascade-completeness.sh (distributed by the method baseline). Run `sdd-cli sync` to refresh the orchestration tree, or hand-install the script from the canonical method repo.", { expected_path: VALIDATOR_REL_PATH, sdd_root: reader.sddRoot });
30
- }
31
- const mode = args.change_type === "entity"
32
- ? "entities"
33
- : args.change_type === "capability"
34
- ? "capabilities"
35
- : "services";
36
- const result = spawnSync(validator, ["--json", mode, args.target], { cwd: reader.sddRoot, encoding: "utf8", timeout: 30_000 });
37
- if (result.status !== 0) {
38
- throw new CascadeImpactError("CASCADE_VALIDATOR_FAILED", `Cascade validator exited with code ${result.status ?? "(killed)"}.`, "Run the script directly to reproduce and inspect stderr. The MCP tool does not interpret non-zero exits.", {
39
- exit_code: result.status,
40
- stderr: result.stderr.slice(0, 2000),
41
- command: [validator, "--json", mode, args.target],
42
- });
43
- }
44
- let scriptOutput;
45
- try {
46
- scriptOutput = JSON.parse(result.stdout);
47
- }
48
- catch (err) {
49
- throw new CascadeImpactError("CASCADE_VALIDATOR_OUTPUT_INVALID", `Cascade validator stdout was not valid JSON (${err.message}).`, "The script should emit a JSON object when called with --json. If the installed script does not yet support --json, upgrade the adopter orchestration tree or open an upstream PR against sdd-method.", { stdout_prefix: result.stdout.slice(0, 500) });
50
- }
51
- const index = getSddIndex(reader);
52
- const affected = scriptOutput["affected"] ?? {};
53
- const affectedServices = asStringArray(affected["services"]);
54
- const servicesWithMetadata = affectedServices.map((id) => {
55
- const svc = index.services.get(id);
56
- return {
57
- service: id,
58
- domain: svc?.domain ?? null,
59
- aggregates: svc ? Array.from(svc.aggregates) : [],
60
- internal_dependencies: svc ? Array.from(svc.internalDependencies) : [],
61
- };
62
- });
63
- const links = [];
64
- for (const contractPath of asStringArray(affected["contracts"])) {
65
- links.push(`sdd://contracts/${contractPath}`);
66
- }
67
- for (const id of affectedServices) {
68
- const svc = index.services.get(id);
69
- if (svc)
70
- links.push(`sdd://repo-config/${svc.domain}/${id}`);
71
- }
72
- return {
73
- query: { change_type: args.change_type, target: args.target },
74
- affected: {
75
- services: servicesWithMetadata,
76
- capabilities: asStringArray(affected["capabilities"]),
77
- entities: asStringArray(affected["entities"]),
78
- contracts: asStringArray(affected["contracts"]),
79
- },
80
- missing_cascades: scriptOutput["missing_cascades"] ?? {},
81
- links,
82
- pin_to_commit: reader.pin,
83
- sources: [`sdd://${VALIDATOR_REL_PATH}`],
84
- };
85
- }
86
- function asStringArray(v) {
87
- if (!Array.isArray(v))
88
- return [];
89
- return v.filter((x) => typeof x === "string");
90
- }
91
- //# sourceMappingURL=cascade.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cascade.js","sourceRoot":"","sources":["../../../src/lib/sdd-index/cascade.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- /**
2
- * Extract producer metadata from contract artefacts.
3
- *
4
- * Each adopter uses different conventions inside the raw artefact
5
- * format (OpenAPI `x-*` extensions, proto options, Avro doc fields,
6
- * SpiceDB comments). We try a few best-effort patterns and fall back
7
- * to marking the node as metadata-incomplete — it's better to return
8
- * a partial graph than to fail hard.
9
- *
10
- * The shape we care about:
11
- * - `producedAggregates` — aggregate names this contract describes
12
- * - `producedEvents` — event names this contract publishes
13
- *
14
- * Producer / consumer *service* linkage is derived later in graph.ts
15
- * from repo-config declarations, not from the artefact itself.
16
- */
17
- import type { SddReader } from "../mcp/reader.js";
18
- import type { ContractKind, ContractNode } from "./types.js";
19
- export interface ContractParseResult {
20
- readonly aggregates: readonly string[];
21
- readonly events: readonly string[];
22
- readonly metadataIncomplete: boolean;
23
- }
24
- /**
25
- * Parse a single contract artefact and return its producer metadata.
26
- * `relPath` is relative to the SDD root.
27
- */
28
- export declare function readContract(reader: SddReader, relPath: string, kind: ContractKind): ContractNode;
29
- //# sourceMappingURL=contracts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/lib/sdd-index/contracts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,YAAY,GACjB,YAAY,CAuBd"}
@@ -1,216 +0,0 @@
1
- /**
2
- * Extract producer metadata from contract artefacts.
3
- *
4
- * Each adopter uses different conventions inside the raw artefact
5
- * format (OpenAPI `x-*` extensions, proto options, Avro doc fields,
6
- * SpiceDB comments). We try a few best-effort patterns and fall back
7
- * to marking the node as metadata-incomplete — it's better to return
8
- * a partial graph than to fail hard.
9
- *
10
- * The shape we care about:
11
- * - `producedAggregates` — aggregate names this contract describes
12
- * - `producedEvents` — event names this contract publishes
13
- *
14
- * Producer / consumer *service* linkage is derived later in graph.ts
15
- * from repo-config declarations, not from the artefact itself.
16
- */
17
- import { parse as parseYaml } from "yaml";
18
- /**
19
- * Parse a single contract artefact and return its producer metadata.
20
- * `relPath` is relative to the SDD root.
21
- */
22
- export function readContract(reader, relPath, kind) {
23
- const raw = reader.readFile(relPath);
24
- if (raw === null) {
25
- return {
26
- path: relPath,
27
- kind,
28
- producedAggregates: [],
29
- producedEvents: [],
30
- producers: [],
31
- consumers: [],
32
- metadataIncomplete: true,
33
- };
34
- }
35
- const result = parseByKind(raw, kind);
36
- return {
37
- path: relPath,
38
- kind,
39
- producedAggregates: result.aggregates,
40
- producedEvents: result.events,
41
- producers: [],
42
- consumers: [],
43
- metadataIncomplete: result.metadataIncomplete,
44
- };
45
- }
46
- function parseByKind(raw, kind) {
47
- switch (kind) {
48
- case "openapi":
49
- return parseOpenApi(raw);
50
- case "avro":
51
- return parseAvro(raw);
52
- case "proto":
53
- return parseProto(raw);
54
- case "spicedb":
55
- return parseSpiceDb(raw);
56
- }
57
- }
58
- /**
59
- * OpenAPI producer metadata via `x-sdd-aggregate` / `x-sdd-events`
60
- * extensions at the document root. Falls back to deriving aggregates
61
- * from the `tags` field.
62
- */
63
- function parseOpenApi(raw) {
64
- let doc;
65
- try {
66
- doc = parseYaml(raw);
67
- }
68
- catch {
69
- return { aggregates: [], events: [], metadataIncomplete: true };
70
- }
71
- if (!doc || typeof doc !== "object" || Array.isArray(doc)) {
72
- return { aggregates: [], events: [], metadataIncomplete: true };
73
- }
74
- const record = doc;
75
- const aggregates = stringArray(record["x-sdd-aggregate"])
76
- .concat(stringArray(record["x-sdd-aggregates"]));
77
- const events = stringArray(record["x-sdd-events"]);
78
- if (aggregates.length === 0 && events.length === 0) {
79
- // Fallback: extract from `tags[].name`
80
- const tags = record["tags"];
81
- if (Array.isArray(tags)) {
82
- for (const t of tags) {
83
- if (t && typeof t === "object" && !Array.isArray(t)) {
84
- const name = t["name"];
85
- if (typeof name === "string")
86
- aggregates.push(name);
87
- }
88
- }
89
- }
90
- }
91
- return {
92
- aggregates: dedupe(aggregates),
93
- events: dedupe(events),
94
- metadataIncomplete: aggregates.length === 0 && events.length === 0,
95
- };
96
- }
97
- /**
98
- * Avro: treat top-level record names as events (by convention, event
99
- * schemas are single-record files named after the event). Namespace is
100
- * captured as the aggregate grouping.
101
- */
102
- function parseAvro(raw) {
103
- let doc;
104
- try {
105
- doc = JSON.parse(raw);
106
- }
107
- catch {
108
- return { aggregates: [], events: [], metadataIncomplete: true };
109
- }
110
- const records = [];
111
- if (doc && typeof doc === "object") {
112
- if (Array.isArray(doc)) {
113
- for (const d of doc) {
114
- if (d && typeof d === "object" && !Array.isArray(d)) {
115
- records.push(d);
116
- }
117
- }
118
- }
119
- else {
120
- records.push(doc);
121
- }
122
- }
123
- const aggregates = [];
124
- const events = [];
125
- for (const r of records) {
126
- if (r["type"] === "record") {
127
- const name = r["name"];
128
- if (typeof name === "string")
129
- events.push(name);
130
- const ns = r["namespace"];
131
- if (typeof ns === "string")
132
- aggregates.push(ns);
133
- // x-extensions at record level
134
- aggregates.push(...stringArray(r["x-sdd-aggregate"]));
135
- events.push(...stringArray(r["x-sdd-events"]));
136
- }
137
- }
138
- return {
139
- aggregates: dedupe(aggregates),
140
- events: dedupe(events),
141
- metadataIncomplete: records.length === 0,
142
- };
143
- }
144
- /**
145
- * Proto: extract `service` / `message` names via regex. Proper
146
- * proto parsing is overkill for metadata extraction; this matches the
147
- * typical convention where the aggregate name is embedded in the
148
- * service name (e.g. `PartyService`).
149
- */
150
- function parseProto(raw) {
151
- const aggregates = [];
152
- const events = [];
153
- const lines = raw.split("\n");
154
- const serviceRe = /^\s*service\s+(\w+)/;
155
- const messageRe = /^\s*message\s+(\w+)/;
156
- const aggregateCommentRe = /\/\/\s*sdd:aggregate\s+(\w+)/i;
157
- const eventCommentRe = /\/\/\s*sdd:event\s+(\w+)/i;
158
- let matchedAny = false;
159
- for (const line of lines) {
160
- const svc = line.match(serviceRe);
161
- if (svc && svc[1]) {
162
- aggregates.push(svc[1]);
163
- matchedAny = true;
164
- }
165
- const msg = line.match(messageRe);
166
- if (msg && msg[1]) {
167
- events.push(msg[1]);
168
- matchedAny = true;
169
- }
170
- const aggC = line.match(aggregateCommentRe);
171
- if (aggC && aggC[1]) {
172
- aggregates.push(aggC[1]);
173
- matchedAny = true;
174
- }
175
- const evC = line.match(eventCommentRe);
176
- if (evC && evC[1]) {
177
- events.push(evC[1]);
178
- matchedAny = true;
179
- }
180
- }
181
- return {
182
- aggregates: dedupe(aggregates),
183
- events: dedupe(events),
184
- metadataIncomplete: !matchedAny,
185
- };
186
- }
187
- /**
188
- * SpiceDB schemas declare `definition` blocks; each definition is an
189
- * aggregate. This is a coarse match — enough for dependency-graph
190
- * reasoning.
191
- */
192
- function parseSpiceDb(raw) {
193
- const aggregates = [];
194
- const defRe = /^\s*definition\s+([\w/]+)/gm;
195
- let m;
196
- while ((m = defRe.exec(raw)) !== null) {
197
- if (m[1])
198
- aggregates.push(m[1]);
199
- }
200
- return {
201
- aggregates: dedupe(aggregates),
202
- events: [],
203
- metadataIncomplete: aggregates.length === 0,
204
- };
205
- }
206
- function stringArray(v) {
207
- if (typeof v === "string")
208
- return [v];
209
- if (!Array.isArray(v))
210
- return [];
211
- return v.filter((x) => typeof x === "string");
212
- }
213
- function dedupe(xs) {
214
- return Array.from(new Set(xs));
215
- }
216
- //# sourceMappingURL=contracts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/lib/sdd-index/contracts.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Extract entity names from a mermaid data-model file. Mirrors the
3
- * awk pattern in `orchestration/scripts/validate-cascade-completeness.sh`
4
- * line 313: treat any top-level `<Identifier> {` block as an entity
5
- * declaration.
6
- *
7
- * Output is deduplicated and sorted for deterministic downstream use.
8
- * Malformed or non-mermaid input returns an empty list — callers
9
- * surface a warning via `metadata_incomplete` on the returned
10
- * message.
11
- */
12
- export declare function extractEntities(body: string): readonly string[];
13
- //# sourceMappingURL=data-model.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-model.d.ts","sourceRoot":"","sources":["../../../src/lib/sdd-index/data-model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAQ/D"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Extract entity names from a mermaid data-model file. Mirrors the
3
- * awk pattern in `orchestration/scripts/validate-cascade-completeness.sh`
4
- * line 313: treat any top-level `<Identifier> {` block as an entity
5
- * declaration.
6
- *
7
- * Output is deduplicated and sorted for deterministic downstream use.
8
- * Malformed or non-mermaid input returns an empty list — callers
9
- * surface a warning via `metadata_incomplete` on the returned
10
- * message.
11
- */
12
- const ENTITY_RE = /^\s*([A-Za-z][A-Za-z0-9_]+)\s*\{\s*$/gm;
13
- export function extractEntities(body) {
14
- const seen = new Set();
15
- let m;
16
- ENTITY_RE.lastIndex = 0;
17
- while ((m = ENTITY_RE.exec(body)) !== null) {
18
- if (m[1])
19
- seen.add(m[1]);
20
- }
21
- return Array.from(seen).sort();
22
- }
23
- //# sourceMappingURL=data-model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-model.js","sourceRoot":"","sources":["../../../src/lib/sdd-index/data-model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,SAAS,GAAG,wCAAwC,CAAC;AAE3D,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAI,CAAyB,CAAC;IAC9B,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;IACxB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACjC,CAAC"}
@@ -1,34 +0,0 @@
1
- /**
2
- * Parse docs/platform/execution-dependency-map.md if present.
3
- *
4
- * The map is an adopter-owned narrative artefact (ADR 0074 §4.3). The
5
- * scope doc explicitly marks it as a narrative overlay — repo-config
6
- * wins if they disagree. We extract any unambiguous edges we can find
7
- * and ignore the rest; on parse failure we return an empty list plus
8
- * a warning.
9
- *
10
- * Expected pattern (by convention; adopters vary):
11
- *
12
- * - consumer-service --build-start--> producer-service
13
- * - consumer-service --go-live--> producer-service
14
- * - consumer-service --migration-dependency--> producer-service
15
- *
16
- * Plus YAML-fenced blocks of the form:
17
- *
18
- * ```yaml
19
- * edges:
20
- * - from: consumer-service
21
- * to: producer-service
22
- * kind: go-live
23
- * note: "..."
24
- * ```
25
- */
26
- import type { SddReader } from "../mcp/reader.js";
27
- import type { ExecutionEdge } from "./types.js";
28
- export declare const EXECUTION_MAP_PATH = "docs/platform/execution-dependency-map.md";
29
- export interface ExecutionMapResult {
30
- readonly edges: readonly ExecutionEdge[];
31
- readonly warnings: readonly string[];
32
- }
33
- export declare function readExecutionMap(reader: SddReader): ExecutionMapResult;
34
- //# sourceMappingURL=execution-map.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"execution-map.d.ts","sourceRoot":"","sources":["../../../src/lib/sdd-index/execution-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAkB,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhE,eAAO,MAAM,kBAAkB,8CACc,CAAC;AAE9C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAWD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,kBAAkB,CAwEtE"}
@@ -1,105 +0,0 @@
1
- /**
2
- * Parse docs/platform/execution-dependency-map.md if present.
3
- *
4
- * The map is an adopter-owned narrative artefact (ADR 0074 §4.3). The
5
- * scope doc explicitly marks it as a narrative overlay — repo-config
6
- * wins if they disagree. We extract any unambiguous edges we can find
7
- * and ignore the rest; on parse failure we return an empty list plus
8
- * a warning.
9
- *
10
- * Expected pattern (by convention; adopters vary):
11
- *
12
- * - consumer-service --build-start--> producer-service
13
- * - consumer-service --go-live--> producer-service
14
- * - consumer-service --migration-dependency--> producer-service
15
- *
16
- * Plus YAML-fenced blocks of the form:
17
- *
18
- * ```yaml
19
- * edges:
20
- * - from: consumer-service
21
- * to: producer-service
22
- * kind: go-live
23
- * note: "..."
24
- * ```
25
- */
26
- import { parse as parseYaml } from "yaml";
27
- export const EXECUTION_MAP_PATH = "docs/platform/execution-dependency-map.md";
28
- const VALID_KINDS = new Set([
29
- "build-start",
30
- "go-live",
31
- "migration-dependency",
32
- ]);
33
- const LINE_EDGE_RE = /^\s*-\s+([\w.-]+)\s+--(build-start|go-live|migration-dependency)-->\s+([\w.-]+)\s*(?:#\s*(.*))?$/i;
34
- export function readExecutionMap(reader) {
35
- const raw = reader.readFile(EXECUTION_MAP_PATH);
36
- if (raw === null)
37
- return { edges: [], warnings: [] };
38
- const edges = [];
39
- const warnings = [];
40
- // 1) Line-form edges.
41
- for (const line of raw.split("\n")) {
42
- const m = line.match(LINE_EDGE_RE);
43
- if (!m)
44
- continue;
45
- const [, from, kindRaw, to, note] = m;
46
- if (!from || !kindRaw || !to)
47
- continue;
48
- const kind = kindRaw.toLowerCase();
49
- if (!VALID_KINDS.has(kind))
50
- continue;
51
- edges.push({
52
- from,
53
- to,
54
- kind,
55
- ...(note ? { note: note.trim() } : {}),
56
- });
57
- }
58
- // 2) YAML-fenced `edges:` blocks.
59
- const yamlBlockRe = /```ya?ml\s*\n([\s\S]*?)\n```/g;
60
- let block;
61
- while ((block = yamlBlockRe.exec(raw)) !== null) {
62
- const body = block[1] ?? "";
63
- if (!body.includes("edges"))
64
- continue;
65
- let doc;
66
- try {
67
- doc = parseYaml(body);
68
- }
69
- catch (err) {
70
- warnings.push(`execution-map: fenced YAML block failed to parse (${err.message})`);
71
- continue;
72
- }
73
- if (!doc || typeof doc !== "object" || Array.isArray(doc))
74
- continue;
75
- const edgesField = doc["edges"];
76
- if (!Array.isArray(edgesField))
77
- continue;
78
- for (const entry of edgesField) {
79
- if (!entry || typeof entry !== "object" || Array.isArray(entry))
80
- continue;
81
- const obj = entry;
82
- const from = typeof obj["from"] === "string" ? obj["from"] : undefined;
83
- const to = typeof obj["to"] === "string" ? obj["to"] : undefined;
84
- const kindRaw = typeof obj["kind"] === "string" ? obj["kind"] : undefined;
85
- if (!from || !to || !kindRaw) {
86
- warnings.push(`execution-map: edge is missing from/to/kind (entry: ${JSON.stringify(entry)})`);
87
- continue;
88
- }
89
- const kind = kindRaw;
90
- if (!VALID_KINDS.has(kind)) {
91
- warnings.push(`execution-map: edge has unknown kind '${kindRaw}' (valid: build-start, go-live, migration-dependency)`);
92
- continue;
93
- }
94
- const note = typeof obj["note"] === "string" ? obj["note"] : undefined;
95
- edges.push({
96
- from,
97
- to,
98
- kind,
99
- ...(note ? { note } : {}),
100
- });
101
- }
102
- }
103
- return { edges, warnings };
104
- }
105
- //# sourceMappingURL=execution-map.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"execution-map.js","sourceRoot":"","sources":["../../../src/lib/sdd-index/execution-map.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- /**
2
- * Graph-builder pass. Consumes already-parsed ServiceNodes + ContractNodes
3
- * and derives the cross-reference maps that dependency-graph tools query:
4
- *
5
- * - producers: aggregate/event → service ids that own it
6
- * - consumers: aggregate/event → service ids that depend on it
7
- * - pins: contract path → (service id → version string)
8
- *
9
- * Producer linkage from repo-config: a service that declares a contract
10
- * and owns at least one of its produced aggregates is marked as a
11
- * producer of that contract. Everyone else who declares the contract
12
- * is a consumer. This is deliberately asymmetric — adopters tend not
13
- * to flag producer-vs-consumer explicitly, so ownership of the
14
- * aggregate is our tiebreaker. When no service owns the aggregates,
15
- * all declaring services are consumers and no producer is recorded
16
- * (surfaced via metadataIncomplete on the ContractNode).
17
- */
18
- import type { ContractNode, ExecutionEdge, ServiceNode } from "./types.js";
19
- export interface GraphBuildResult {
20
- readonly services: ReadonlyMap<string, ServiceNode>;
21
- readonly contracts: ReadonlyMap<string, ContractNode>;
22
- readonly producers: ReadonlyMap<string, readonly string[]>;
23
- readonly consumers: ReadonlyMap<string, readonly string[]>;
24
- readonly pins: ReadonlyMap<string, ReadonlyMap<string, string>>;
25
- readonly warnings: readonly string[];
26
- }
27
- export declare function buildGraph(serviceList: readonly ServiceNode[], contractList: readonly ContractNode[], _edges: readonly ExecutionEdge[]): GraphBuildResult;
28
- //# sourceMappingURL=graph.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/lib/sdd-index/graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAC3D,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAC3D,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChE,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,wBAAgB,UAAU,CACxB,WAAW,EAAE,SAAS,WAAW,EAAE,EACnC,YAAY,EAAE,SAAS,YAAY,EAAE,EACrC,MAAM,EAAE,SAAS,aAAa,EAAE,GAC/B,gBAAgB,CAwFlB"}