@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,97 +0,0 @@
1
- import { readFileSync } from "node:fs";
2
- import { join } from "node:path";
3
- import { ResourceTemplate, } from "@modelcontextprotocol/sdk/server/mcp.js";
4
- import { McpEnvelopeError } from "../errors.js";
5
- import { parseAdrMetadata } from "../parse/frontmatter.js";
6
- import { discoverAdrs, findAdr, safeIsFile } from "../parse/paths.js";
7
- export function register(server, sddRoot) {
8
- server.registerResource("adr-catalogue", "sdd://adrs/catalogue", {
9
- title: "ADR catalogue",
10
- description: "Machine-readable summary of every ADR discovered under docs/method/adr, docs/platform/adr, and docs/domains/{domain}/adr.",
11
- mimeType: "application/json",
12
- }, async () => {
13
- const adrs = discoverAdrs(sddRoot);
14
- const entries = adrs.map((a) => {
15
- const metadata = parseAdrMetadata(readFileSync(a.path, "utf8"));
16
- return {
17
- number: a.number,
18
- scope: a.scope,
19
- title: metadata.title || a.title,
20
- status: metadata.status ?? null,
21
- date: metadata.date ?? null,
22
- decision_type: metadata.decisionType ?? null,
23
- path: a.path,
24
- uri: `sdd://adrs/${a.scope}/${a.number}`,
25
- };
26
- });
27
- const catalogueRelPath = join("docs", "method", "architecture-decisions.md");
28
- const cataloguePath = join(sddRoot, catalogueRelPath);
29
- const payload = {
30
- sdd_root: sddRoot,
31
- catalogue_doc: safeIsFile(cataloguePath)
32
- ? catalogueRelPath
33
- : null,
34
- total: entries.length,
35
- adrs: entries,
36
- };
37
- return {
38
- contents: [
39
- {
40
- uri: "sdd://adrs/catalogue",
41
- mimeType: "application/json",
42
- text: JSON.stringify(payload, null, 2),
43
- },
44
- ],
45
- };
46
- });
47
- server.registerResource("adr", new ResourceTemplate("sdd://adrs/{scope}/{number}", {
48
- list: async () => {
49
- const adrs = discoverAdrs(sddRoot);
50
- return {
51
- resources: adrs.map((a) => ({
52
- uri: `sdd://adrs/${a.scope}/${a.number}`,
53
- name: `ADR ${a.number} — ${a.title}`,
54
- mimeType: "text/markdown",
55
- })),
56
- };
57
- },
58
- }), {
59
- title: "ADR",
60
- description: "Full markdown body of an ADR identified by scope (method / platform / domain:<name>) and four-digit number.",
61
- mimeType: "text/markdown",
62
- }, async (uri, { scope, number }) => {
63
- if (typeof scope !== "string" || typeof number !== "string") {
64
- throw new McpEnvelopeError({
65
- code: "ADR_URI_INVALID",
66
- message: `ADR URI ${uri.href} is missing required {scope} or {number} parameters.`,
67
- remediation: "Use the shape sdd://adrs/{scope}/{number} where scope is one of: method, platform, domain:<name>.",
68
- context: { uri: uri.href },
69
- });
70
- }
71
- const adr = findAdr(sddRoot, scope, number);
72
- if (!adr) {
73
- throw new McpEnvelopeError({
74
- code: "ADR_NOT_FOUND",
75
- message: `No ADR found for scope=${scope} number=${number} under SDD root ${sddRoot}.`,
76
- remediation: "Verify the ADR number is zero-padded to 4 digits (e.g. 0128) and the scope matches where the ADR lives. Call sdd://adrs/catalogue to see every ADR the server can find.",
77
- context: {
78
- scope,
79
- number,
80
- sdd_root: sddRoot,
81
- hint: "sdd://adrs/catalogue",
82
- },
83
- });
84
- }
85
- const body = readFileSync(adr.path, "utf8");
86
- return {
87
- contents: [
88
- {
89
- uri: uri.href,
90
- mimeType: "text/markdown",
91
- text: body,
92
- },
93
- ],
94
- };
95
- });
96
- }
97
- //# sourceMappingURL=adrs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adrs.js","sourceRoot":"","sources":["../../../../src/lib/mcp/resources/adrs.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- /**
2
- * Catalogue resources (sdd-mcp Phase 8).
3
- *
4
- * Exposes the canonical catalogue schema + metamodel + category taxonomy,
5
- * and the consumer repo's built catalogue rows, as read-only MCP resources.
6
- * Mirrors the resource pattern in resources/adrs.ts / resources/data-models.ts
7
- * and reuses the existing catalogue subsystem (schema-loader, csv-reader)
8
- * rather than re-parsing.
9
- *
10
- * URIs:
11
- * sdd://catalogue/schema — canonical schema (vendored), parsed to JSON
12
- * sdd://catalogue/metamodel — catalogue-metamodel.md (synced markdown)
13
- * sdd://catalogue/category-taxonomy — product-category-taxonomy.md (synced markdown)
14
- * sdd://catalogue — list of catalogue names present in catalogues/
15
- * sdd://catalogue/{name} — rows of one catalogue from catalogues/{name}.csv
16
- */
17
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
18
- export declare function register(server: McpServer, sddRoot: string): void;
19
- //# sourceMappingURL=catalogue.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"catalogue.d.ts","sourceRoot":"","sources":["../../../../src/lib/mcp/resources/catalogue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EACL,SAAS,EAEV,MAAM,yCAAyC,CAAC;AAoFjD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CA4LjE"}
@@ -1,240 +0,0 @@
1
- /**
2
- * Catalogue resources (sdd-mcp Phase 8).
3
- *
4
- * Exposes the canonical catalogue schema + metamodel + category taxonomy,
5
- * and the consumer repo's built catalogue rows, as read-only MCP resources.
6
- * Mirrors the resource pattern in resources/adrs.ts / resources/data-models.ts
7
- * and reuses the existing catalogue subsystem (schema-loader, csv-reader)
8
- * rather than re-parsing.
9
- *
10
- * URIs:
11
- * sdd://catalogue/schema — canonical schema (vendored), parsed to JSON
12
- * sdd://catalogue/metamodel — catalogue-metamodel.md (synced markdown)
13
- * sdd://catalogue/category-taxonomy — product-category-taxonomy.md (synced markdown)
14
- * sdd://catalogue — list of catalogue names present in catalogues/
15
- * sdd://catalogue/{name} — rows of one catalogue from catalogues/{name}.csv
16
- */
17
- import { readFile, readdir, stat } from "node:fs/promises";
18
- import { join } from "node:path";
19
- import { ResourceTemplate, } from "@modelcontextprotocol/sdk/server/mcp.js";
20
- import { McpEnvelopeError } from "../errors.js";
21
- import { loadCanonicalSchema, findCatalogue, } from "../../catalogue/schema-loader.js";
22
- import { readCatalogueCsv } from "../../catalogue/csv-reader.js";
23
- // Candidate locations for the two synced markdown docs. The post-IA-move
24
- // path is tried first; the pre-IA path is kept as a fallback so the
25
- // resource resolves against repos synced from older baselines.
26
- const METAMODEL_PATHS = [
27
- ["docs", "method", "methods", "guides", "catalogue-metamodel.md"],
28
- ["docs", "method", "methods", "catalogue-metamodel.md"],
29
- ];
30
- const TAXONOMY_PATHS = [
31
- ["docs", "method", "methods", "standards", "product-category-taxonomy.md"],
32
- ["docs", "method", "methods", "product-category-taxonomy.md"],
33
- ];
34
- async function isFile(path) {
35
- try {
36
- return (await stat(path)).isFile();
37
- }
38
- catch {
39
- return false;
40
- }
41
- }
42
- async function firstExisting(sddRoot, candidates) {
43
- for (const parts of candidates) {
44
- const p = join(sddRoot, ...parts);
45
- if (await isFile(p))
46
- return p;
47
- }
48
- return null;
49
- }
50
- /** Transform the loaded schema into the plan's JSON shape (catalogues keyed by name). */
51
- function schemaToJson(schema) {
52
- const catalogues = {};
53
- for (const c of schema.catalogues) {
54
- catalogues[c.name] = {
55
- primary_key: c.primaryKey,
56
- ...(c.description !== undefined ? { description: c.description } : {}),
57
- foreign_keys: c.foreignKeys.map((fk) => ({
58
- column: fk.column,
59
- references: fk.references,
60
- nullable: fk.nullable,
61
- external: fk.external,
62
- })),
63
- columns: c.columns.map((col) => ({
64
- name: col.name,
65
- type: col.type,
66
- nullable: col.nullable,
67
- ...(col.description !== undefined
68
- ? { description: col.description }
69
- : {}),
70
- })),
71
- };
72
- }
73
- return {
74
- schema_version: schema.schemaVersion,
75
- schema_owner: schema.schemaOwner,
76
- schema_status: schema.schemaStatus,
77
- catalogues,
78
- };
79
- }
80
- async function listCatalogueNames(sddRoot) {
81
- const dir = join(sddRoot, "catalogues");
82
- try {
83
- const entries = await readdir(dir);
84
- return entries
85
- .filter((f) => f.endsWith(".csv"))
86
- .map((f) => f.slice(0, -".csv".length))
87
- .sort();
88
- }
89
- catch {
90
- return [];
91
- }
92
- }
93
- export function register(server, sddRoot) {
94
- // --- sdd://catalogue/schema (vendored canonical schema) ---
95
- server.registerResource("catalogue-schema", "sdd://catalogue/schema", {
96
- title: "Catalogue schema",
97
- description: "The canonical catalogue-schema.yaml (vendored from sdd-method) parsed to JSON: every catalogue's primary key, columns, and foreign keys.",
98
- mimeType: "application/json",
99
- }, async (uri) => {
100
- const schema = await loadCanonicalSchema();
101
- return {
102
- contents: [
103
- {
104
- uri: uri.href,
105
- mimeType: "application/json",
106
- text: JSON.stringify(schemaToJson(schema), null, 2),
107
- },
108
- ],
109
- };
110
- });
111
- // --- sdd://catalogue/metamodel (synced markdown) ---
112
- server.registerResource("catalogue-metamodel", "sdd://catalogue/metamodel", {
113
- title: "Catalogue metamodel",
114
- description: "The catalogue metamodel narrative (catalogue-metamodel.md), describing the entity/edge model the schema encodes.",
115
- mimeType: "text/markdown",
116
- }, async (uri) => {
117
- const path = await firstExisting(sddRoot, METAMODEL_PATHS);
118
- if (path === null) {
119
- throw new McpEnvelopeError({
120
- code: "CATALOGUE_METAMODEL_NOT_FOUND",
121
- message: `No catalogue-metamodel.md under SDD root ${sddRoot}.`,
122
- remediation: "The metamodel is synced from sdd-method. Run `sdd-cli sync` to pull the current method baseline, which ships docs/method/methods/guides/catalogue-metamodel.md.",
123
- context: {
124
- sdd_root: sddRoot,
125
- tried: METAMODEL_PATHS.map((p) => join(...p)),
126
- },
127
- });
128
- }
129
- return {
130
- contents: [
131
- { uri: uri.href, mimeType: "text/markdown", text: await readFile(path, "utf8") },
132
- ],
133
- };
134
- });
135
- // --- sdd://catalogue/category-taxonomy (synced markdown) ---
136
- server.registerResource("catalogue-category-taxonomy", "sdd://catalogue/category-taxonomy", {
137
- title: "Product category taxonomy",
138
- description: "The product-category-taxonomy.md: allowed category values and the L1-emission rules an agent reasons about when reading product rows.",
139
- mimeType: "text/markdown",
140
- }, async (uri) => {
141
- const path = await firstExisting(sddRoot, TAXONOMY_PATHS);
142
- if (path === null) {
143
- throw new McpEnvelopeError({
144
- code: "CATALOGUE_TAXONOMY_NOT_FOUND",
145
- message: `No product-category-taxonomy.md under SDD root ${sddRoot}.`,
146
- remediation: "The taxonomy is synced from sdd-method. Run `sdd-cli sync` to pull the current method baseline, which ships docs/method/methods/standards/product-category-taxonomy.md.",
147
- context: {
148
- sdd_root: sddRoot,
149
- tried: TAXONOMY_PATHS.map((p) => join(...p)),
150
- },
151
- });
152
- }
153
- return {
154
- contents: [
155
- { uri: uri.href, mimeType: "text/markdown", text: await readFile(path, "utf8") },
156
- ],
157
- };
158
- });
159
- // --- sdd://catalogue (list of built catalogues) ---
160
- server.registerResource("catalogue-list", "sdd://catalogue", {
161
- title: "Catalogue list",
162
- description: "The catalogue names present in the consumer repo's catalogues/ directory. Use to discover what is built without reading every file.",
163
- mimeType: "application/json",
164
- }, async (uri) => {
165
- const names = await listCatalogueNames(sddRoot);
166
- return {
167
- contents: [
168
- {
169
- uri: uri.href,
170
- mimeType: "application/json",
171
- text: JSON.stringify({ row_count: names.length, catalogues: names }, null, 2),
172
- },
173
- ],
174
- };
175
- });
176
- // --- sdd://catalogue/{name} (rows of one catalogue) ---
177
- server.registerResource("catalogue-rows", new ResourceTemplate("sdd://catalogue/{name}", {
178
- list: async () => {
179
- const names = await listCatalogueNames(sddRoot);
180
- return {
181
- resources: names.map((name) => ({
182
- uri: `sdd://catalogue/${name}`,
183
- name: `Catalogue: ${name}`,
184
- mimeType: "application/json",
185
- })),
186
- };
187
- },
188
- }), {
189
- title: "Catalogue rows",
190
- description: "Rows of one built catalogue from catalogues/{name}.csv, with the schema_version they were built against.",
191
- mimeType: "application/json",
192
- }, async (uri, { name }) => {
193
- if (typeof name !== "string") {
194
- throw new McpEnvelopeError({
195
- code: "CATALOGUE_URI_INVALID",
196
- message: `Catalogue URI ${uri.href} is missing the {name} parameter.`,
197
- remediation: "Use the shape sdd://catalogue/{name}. List available catalogues via sdd://catalogue.",
198
- context: { uri: uri.href },
199
- });
200
- }
201
- const schema = await loadCanonicalSchema();
202
- try {
203
- findCatalogue(schema, name);
204
- }
205
- catch {
206
- throw new McpEnvelopeError({
207
- code: "CATALOGUE_NOT_DECLARED",
208
- message: `"${name}" is not a catalogue declared in the canonical schema (version ${schema.schemaVersion}).`,
209
- remediation: "Query sdd://catalogue/schema for the declared catalogue names, or sdd://catalogue for the ones this repo has built.",
210
- context: { name, schema_version: schema.schemaVersion },
211
- });
212
- }
213
- const csvPath = join(sddRoot, "catalogues", `${name}.csv`);
214
- if (!(await isFile(csvPath))) {
215
- throw new McpEnvelopeError({
216
- code: "CATALOGUE_NOT_BUILT",
217
- message: `Catalogue "${name}" is declared but catalogues/${name}.csv does not exist under ${sddRoot}.`,
218
- remediation: "Build catalogues for this repo (e.g. via the catalogue-integrity-gate skill or `sdd-cli catalogue build`) before querying their rows.",
219
- context: { name, expected_path: csvPath, sdd_root: sddRoot },
220
- });
221
- }
222
- const parsed = await readCatalogueCsv(csvPath);
223
- return {
224
- contents: [
225
- {
226
- uri: uri.href,
227
- mimeType: "application/json",
228
- text: JSON.stringify({
229
- catalogue: name,
230
- schema_version: schema.schemaVersion,
231
- row_count: parsed.rows.length,
232
- columns: parsed.columns,
233
- rows: parsed.rows,
234
- }, null, 2),
235
- },
236
- ],
237
- };
238
- });
239
- }
240
- //# sourceMappingURL=catalogue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"catalogue.js","sourceRoot":"","sources":["../../../../src/lib/mcp/resources/catalogue.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Domain data-model artefacts. In the method's conventions a data
3
- * model lives at docs/domains/{domain}/architecture/data-model.mermaid.md.
4
- * Absent in the canonical method repo; populated in adopter SDDs.
5
- */
6
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
7
- export declare function register(server: McpServer, sddRoot: string): void;
8
- interface DiscoveredDataModel {
9
- readonly domain: string;
10
- readonly path: string;
11
- }
12
- export declare function discoverDataModels(sddRoot: string): DiscoveredDataModel[];
13
- export {};
14
- //# sourceMappingURL=data-models.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-models.d.ts","sourceRoot":"","sources":["../../../../src/lib/mcp/resources/data-models.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACL,SAAS,EAEV,MAAM,yCAAyC,CAAC;AAIjD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAoDjE;AAED,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAkBzE"}
@@ -1,81 +0,0 @@
1
- /**
2
- * Domain data-model artefacts. In the method's conventions a data
3
- * model lives at docs/domains/{domain}/architecture/data-model.mermaid.md.
4
- * Absent in the canonical method repo; populated in adopter SDDs.
5
- */
6
- import { readFileSync, readdirSync } from "node:fs";
7
- import { join } from "node:path";
8
- import { ResourceTemplate, } from "@modelcontextprotocol/sdk/server/mcp.js";
9
- import { McpEnvelopeError } from "../errors.js";
10
- import { safeIsDir, safeIsFile } from "../parse/paths.js";
11
- export function register(server, sddRoot) {
12
- server.registerResource("data-model", new ResourceTemplate("sdd://data-models/domain/{domain}", {
13
- list: async () => {
14
- const models = discoverDataModels(sddRoot);
15
- return {
16
- resources: models.map((m) => ({
17
- uri: `sdd://data-models/domain/${m.domain}`,
18
- name: `Data model: ${m.domain}`,
19
- mimeType: "text/markdown",
20
- })),
21
- };
22
- },
23
- }), {
24
- title: "Domain data model",
25
- description: "Mermaid data model for a given domain, from docs/domains/{domain}/architecture/data-model.mermaid.md.",
26
- mimeType: "text/markdown",
27
- }, async (uri, { domain }) => {
28
- if (typeof domain !== "string") {
29
- throw new McpEnvelopeError({
30
- code: "DATA_MODEL_URI_INVALID",
31
- message: `Data-model URI ${uri.href} is missing the {domain} parameter.`,
32
- remediation: "Use the shape sdd://data-models/domain/{domain}. List available domains via resources/list.",
33
- context: { uri: uri.href },
34
- });
35
- }
36
- const path = dataModelPath(sddRoot, domain);
37
- if (!safeIsFile(path)) {
38
- throw new McpEnvelopeError({
39
- code: "DATA_MODEL_NOT_FOUND",
40
- message: `No data model for domain ${domain} under SDD root ${sddRoot}.`,
41
- remediation: "Domain data models are adopter-instantiated (ADR 0112) and may be absent in the canonical method repo. Query resources/list to see which data models this SDD exposes.",
42
- context: { domain, expected_path: path, sdd_root: sddRoot },
43
- });
44
- }
45
- return {
46
- contents: [
47
- {
48
- uri: uri.href,
49
- mimeType: "text/markdown",
50
- text: readFileSync(path, "utf8"),
51
- },
52
- ],
53
- };
54
- });
55
- }
56
- export function discoverDataModels(sddRoot) {
57
- const out = [];
58
- const domainsRoot = join(sddRoot, "docs", "domains");
59
- if (!safeIsDir(domainsRoot))
60
- return out;
61
- let domains;
62
- try {
63
- domains = readdirSync(domainsRoot);
64
- }
65
- catch {
66
- return out;
67
- }
68
- for (const domain of domains) {
69
- if (domain.startsWith("_"))
70
- continue;
71
- const path = dataModelPath(sddRoot, domain);
72
- if (safeIsFile(path)) {
73
- out.push({ domain, path });
74
- }
75
- }
76
- return out;
77
- }
78
- function dataModelPath(sddRoot, domain) {
79
- return join(sddRoot, "docs", "domains", domain, "architecture", "data-model.mermaid.md");
80
- }
81
- //# sourceMappingURL=data-models.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-models.js","sourceRoot":"","sources":["../../../../src/lib/mcp/resources/data-models.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Gate-registry resource. Each gate's YAML file is exposed under
3
- * sdd://gates/{gate-name}. The payload includes schema metadata, the
4
- * pass threshold, and all scored entries. Summary counts are computed
5
- * on the fly for callers that want a quick overview.
6
- */
7
- import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
8
- export declare function register(server: McpServer, sddRoot: string): void;
9
- //# sourceMappingURL=gates.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gates.d.ts","sourceRoot":"","sources":["../../../../src/lib/mcp/resources/gates.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CA0EjE"}
@@ -1,76 +0,0 @@
1
- /**
2
- * Gate-registry resource. Each gate's YAML file is exposed under
3
- * sdd://gates/{gate-name}. The payload includes schema metadata, the
4
- * pass threshold, and all scored entries. Summary counts are computed
5
- * on the fly for callers that want a quick overview.
6
- */
7
- import { ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
8
- import { McpEnvelopeError } from "../errors.js";
9
- import { listGates, readGateRegistry, summariseGateEntries } from "../parse/gate-registry.js";
10
- export function register(server, sddRoot) {
11
- server.registerResource("gate", new ResourceTemplate("sdd://gates/{gate}", {
12
- list: async () => {
13
- const gates = listGates(sddRoot);
14
- return {
15
- resources: gates.map((gate) => ({
16
- uri: `sdd://gates/${gate}`,
17
- name: `Gate registry: ${gate}`,
18
- mimeType: "application/json",
19
- })),
20
- };
21
- },
22
- }), {
23
- title: "Gate registry",
24
- description: "Structured view of orchestration/gate-registry/{gate}-scores.yaml. Includes schema version, pass threshold, per-artefact entries, and a small summary count.",
25
- mimeType: "application/json",
26
- }, async (uri, { gate }) => {
27
- if (typeof gate !== "string") {
28
- throw new McpEnvelopeError({
29
- code: "GATE_URI_INVALID",
30
- message: `Gate URI ${uri.href} is missing the {gate} parameter.`,
31
- remediation: "Use the shape sdd://gates/{gate}. Call resources/list to see the gates this SDD exposes.",
32
- context: { uri: uri.href },
33
- });
34
- }
35
- const registry = readGateRegistry(sddRoot, gate);
36
- if (!registry) {
37
- throw new McpEnvelopeError({
38
- code: "GATE_NOT_FOUND",
39
- message: `No gate registry for ${gate} under SDD root ${sddRoot}.`,
40
- remediation: "Check the spelling (e.g. adr-quality, contract-quality, intent-quality). resources/list lists the available gates.",
41
- context: { gate, sdd_root: sddRoot },
42
- });
43
- }
44
- // A malformed registry must never read as a clean, empty one — reported
45
- // through the envelope contract rather than thrown raw at the caller.
46
- if (registry.parseError !== null) {
47
- throw new McpEnvelopeError({
48
- code: "GATE_REGISTRY_UNPARSEABLE",
49
- message: `Gate registry ${registry.path} is not parseable YAML: ${registry.parseError}`,
50
- remediation: "Repair the registry. Two shapes account for every case seen so far: a container mixing mapping entries with sequence entries, and a duplicate key — the latter silently discards one of two judgments in parsers that tolerate it, so treat a duplicate as two contradictory verdicts, not a typo.",
51
- context: { gate, path: registry.path, parse_error: registry.parseError },
52
- });
53
- }
54
- const summary = summariseGateEntries(registry.entries);
55
- const payload = {
56
- gate,
57
- schema_version: registry.schemaVersion,
58
- description: registry.description,
59
- pass_threshold: registry.passThreshold,
60
- entry_container: registry.entryContainer,
61
- summary,
62
- entries: registry.entries,
63
- path: registry.path,
64
- };
65
- return {
66
- contents: [
67
- {
68
- uri: uri.href,
69
- mimeType: "application/json",
70
- text: JSON.stringify(payload, null, 2),
71
- },
72
- ],
73
- };
74
- });
75
- }
76
- //# sourceMappingURL=gates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gates.js","sourceRoot":"","sources":["../../../../src/lib/mcp/resources/gates.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- /**
2
- * Glossary resource. In adopter SDDs the platform glossary lives at
3
- * docs/platform/reference/platform-glossary.md and per-domain
4
- * glossaries at docs/domains/{domain}/reference/{domain}-glossary.md.
5
- * Canonical method repo has no populated glossary; this server returns
6
- * a structured NOT_FOUND when queried against such a repo.
7
- */
8
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
9
- export declare function register(server: McpServer, sddRoot: string): void;
10
- interface DiscoveredGlossary {
11
- readonly scope: string;
12
- readonly path: string;
13
- }
14
- export declare function discoverGlossaries(sddRoot: string): DiscoveredGlossary[];
15
- export {};
16
- //# sourceMappingURL=glossary.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"glossary.d.ts","sourceRoot":"","sources":["../../../../src/lib/mcp/resources/glossary.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EACL,SAAS,EAEV,MAAM,yCAAyC,CAAC;AAIjD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAoDjE;AAED,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAkCxE"}