@agent-teams/engineering-foundation 0.2.1 → 0.4.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 (280) hide show
  1. package/README.md +15 -2
  2. package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/microsoft-public-api-extractor.d.ts +6 -0
  3. package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/microsoft-public-api-extractor.d.ts.map +1 -0
  4. package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/microsoft-public-api-extractor.js +143 -0
  5. package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/microsoft-public-api-extractor.js.map +1 -0
  6. package/dist/capabilities/public-api-compatibility/adapters/outbound/crypto/node-change-fingerprint.d.ts +5 -0
  7. package/dist/capabilities/public-api-compatibility/adapters/outbound/crypto/node-change-fingerprint.d.ts.map +1 -0
  8. package/dist/capabilities/public-api-compatibility/adapters/outbound/crypto/node-change-fingerprint.js +7 -0
  9. package/dist/capabilities/public-api-compatibility/adapters/outbound/crypto/node-change-fingerprint.js.map +1 -0
  10. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/filesystem-public-api-repository.d.ts +9 -0
  11. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/filesystem-public-api-repository.d.ts.map +1 -0
  12. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/filesystem-public-api-repository.js +205 -0
  13. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/filesystem-public-api-repository.js.map +1 -0
  14. package/dist/capabilities/public-api-compatibility/application/model/public-api.d.ts +46 -0
  15. package/dist/capabilities/public-api-compatibility/application/model/public-api.d.ts.map +1 -0
  16. package/dist/capabilities/public-api-compatibility/application/model/public-api.js +4 -0
  17. package/dist/capabilities/public-api-compatibility/application/model/public-api.js.map +1 -0
  18. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-public-api-compatibility.d.ts +13 -0
  19. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-public-api-compatibility.d.ts.map +1 -0
  20. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-public-api-compatibility.js +168 -0
  21. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-public-api-compatibility.js.map +1 -0
  22. package/dist/capabilities/public-api-compatibility/application/ports/change-fingerprint.d.ts +4 -0
  23. package/dist/capabilities/public-api-compatibility/application/ports/change-fingerprint.d.ts.map +1 -0
  24. package/dist/capabilities/public-api-compatibility/application/ports/change-fingerprint.js +2 -0
  25. package/dist/capabilities/public-api-compatibility/application/ports/change-fingerprint.js.map +1 -0
  26. package/dist/capabilities/public-api-compatibility/application/ports/public-api-extractor.d.ts +5 -0
  27. package/dist/capabilities/public-api-compatibility/application/ports/public-api-extractor.d.ts.map +1 -0
  28. package/dist/capabilities/public-api-compatibility/application/ports/public-api-extractor.js +2 -0
  29. package/dist/capabilities/public-api-compatibility/application/ports/public-api-extractor.js.map +1 -0
  30. package/dist/capabilities/public-api-compatibility/application/ports/public-api-repository.d.ts +8 -0
  31. package/dist/capabilities/public-api-compatibility/application/ports/public-api-repository.d.ts.map +1 -0
  32. package/dist/capabilities/public-api-compatibility/application/ports/public-api-repository.js +2 -0
  33. package/dist/capabilities/public-api-compatibility/application/ports/public-api-repository.js.map +1 -0
  34. package/dist/capabilities/public-api-compatibility/application/rules.d.ts +19 -0
  35. package/dist/capabilities/public-api-compatibility/application/rules.d.ts.map +1 -0
  36. package/dist/capabilities/public-api-compatibility/application/rules.js +20 -0
  37. package/dist/capabilities/public-api-compatibility/application/rules.js.map +1 -0
  38. package/dist/capabilities/public-api-compatibility/application/use-cases/analyze-public-api-compatibility.d.ts +15 -0
  39. package/dist/capabilities/public-api-compatibility/application/use-cases/analyze-public-api-compatibility.d.ts.map +1 -0
  40. package/dist/capabilities/public-api-compatibility/application/use-cases/analyze-public-api-compatibility.js +30 -0
  41. package/dist/capabilities/public-api-compatibility/application/use-cases/analyze-public-api-compatibility.js.map +1 -0
  42. package/dist/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.d.ts +14 -0
  43. package/dist/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.d.ts.map +1 -0
  44. package/dist/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.js +62 -0
  45. package/dist/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.js.map +1 -0
  46. package/dist/capabilities/public-api-compatibility/contract/config.d.ts +5 -0
  47. package/dist/capabilities/public-api-compatibility/contract/config.d.ts.map +1 -0
  48. package/dist/capabilities/public-api-compatibility/contract/config.js +104 -0
  49. package/dist/capabilities/public-api-compatibility/contract/config.js.map +1 -0
  50. package/dist/capabilities/public-api-compatibility/module.d.ts +10 -0
  51. package/dist/capabilities/public-api-compatibility/module.d.ts.map +1 -0
  52. package/dist/capabilities/public-api-compatibility/module.js +69 -0
  53. package/dist/capabilities/public-api-compatibility/module.js.map +1 -0
  54. package/dist/capabilities/repository-security-baseline/adapters/outbound/filesystem/filesystem-repository-security-reader.d.ts +6 -0
  55. package/dist/capabilities/repository-security-baseline/adapters/outbound/filesystem/filesystem-repository-security-reader.d.ts.map +1 -0
  56. package/dist/capabilities/repository-security-baseline/adapters/outbound/filesystem/filesystem-repository-security-reader.js +200 -0
  57. package/dist/capabilities/repository-security-baseline/adapters/outbound/filesystem/filesystem-repository-security-reader.js.map +1 -0
  58. package/dist/capabilities/repository-security-baseline/application/model/repository-security.d.ts +46 -0
  59. package/dist/capabilities/repository-security-baseline/application/model/repository-security.d.ts.map +1 -0
  60. package/dist/capabilities/repository-security-baseline/application/model/repository-security.js +2 -0
  61. package/dist/capabilities/repository-security-baseline/application/model/repository-security.js.map +1 -0
  62. package/dist/capabilities/repository-security-baseline/application/policies/evaluate-repository-security.d.ts +4 -0
  63. package/dist/capabilities/repository-security-baseline/application/policies/evaluate-repository-security.d.ts.map +1 -0
  64. package/dist/capabilities/repository-security-baseline/application/policies/evaluate-repository-security.js +218 -0
  65. package/dist/capabilities/repository-security-baseline/application/policies/evaluate-repository-security.js.map +1 -0
  66. package/dist/capabilities/repository-security-baseline/application/ports/repository-security-reader.d.ts +5 -0
  67. package/dist/capabilities/repository-security-baseline/application/ports/repository-security-reader.d.ts.map +1 -0
  68. package/dist/capabilities/repository-security-baseline/application/ports/repository-security-reader.js +2 -0
  69. package/dist/capabilities/repository-security-baseline/application/ports/repository-security-reader.js.map +1 -0
  70. package/dist/capabilities/repository-security-baseline/application/rules.d.ts +23 -0
  71. package/dist/capabilities/repository-security-baseline/application/rules.d.ts.map +1 -0
  72. package/dist/capabilities/repository-security-baseline/application/rules.js +24 -0
  73. package/dist/capabilities/repository-security-baseline/application/rules.js.map +1 -0
  74. package/dist/capabilities/repository-security-baseline/application/use-cases/analyze-repository-security.d.ts +9 -0
  75. package/dist/capabilities/repository-security-baseline/application/use-cases/analyze-repository-security.d.ts.map +1 -0
  76. package/dist/capabilities/repository-security-baseline/application/use-cases/analyze-repository-security.js +7 -0
  77. package/dist/capabilities/repository-security-baseline/application/use-cases/analyze-repository-security.js.map +1 -0
  78. package/dist/capabilities/repository-security-baseline/contract/config.d.ts +5 -0
  79. package/dist/capabilities/repository-security-baseline/contract/config.d.ts.map +1 -0
  80. package/dist/capabilities/repository-security-baseline/contract/config.js +86 -0
  81. package/dist/capabilities/repository-security-baseline/contract/config.js.map +1 -0
  82. package/dist/capabilities/repository-security-baseline/module.d.ts +5 -0
  83. package/dist/capabilities/repository-security-baseline/module.d.ts.map +1 -0
  84. package/dist/capabilities/repository-security-baseline/module.js +49 -0
  85. package/dist/capabilities/repository-security-baseline/module.js.map +1 -0
  86. package/dist/capabilities/source-dependencies/adapters/outbound/node/node-source-dependency-resolver.d.ts +6 -0
  87. package/dist/capabilities/source-dependencies/adapters/outbound/node/node-source-dependency-resolver.d.ts.map +1 -0
  88. package/dist/capabilities/source-dependencies/adapters/outbound/node/node-source-dependency-resolver.js +151 -0
  89. package/dist/capabilities/source-dependencies/adapters/outbound/node/node-source-dependency-resolver.js.map +1 -0
  90. package/dist/capabilities/source-dependencies/adapters/outbound/oxc/oxc-source-dependency-parser.d.ts +7 -0
  91. package/dist/capabilities/source-dependencies/adapters/outbound/oxc/oxc-source-dependency-parser.d.ts.map +1 -0
  92. package/dist/capabilities/source-dependencies/adapters/outbound/oxc/oxc-source-dependency-parser.js +96 -0
  93. package/dist/capabilities/source-dependencies/adapters/outbound/oxc/oxc-source-dependency-parser.js.map +1 -0
  94. package/dist/capabilities/source-dependencies/application/model/source-workspace.d.ts +66 -0
  95. package/dist/capabilities/source-dependencies/application/model/source-workspace.d.ts.map +1 -0
  96. package/dist/capabilities/source-dependencies/application/model/source-workspace.js +13 -0
  97. package/dist/capabilities/source-dependencies/application/model/source-workspace.js.map +1 -0
  98. package/dist/capabilities/source-dependencies/application/policies/evaluate-source-dependencies.d.ts +15 -0
  99. package/dist/capabilities/source-dependencies/application/policies/evaluate-source-dependencies.d.ts.map +1 -0
  100. package/dist/capabilities/source-dependencies/application/policies/evaluate-source-dependencies.js +223 -0
  101. package/dist/capabilities/source-dependencies/application/policies/evaluate-source-dependencies.js.map +1 -0
  102. package/dist/capabilities/source-dependencies/application/ports/source-dependency-parser.d.ts +6 -0
  103. package/dist/capabilities/source-dependencies/application/ports/source-dependency-parser.d.ts.map +1 -0
  104. package/dist/capabilities/source-dependencies/application/ports/source-dependency-parser.js +2 -0
  105. package/dist/capabilities/source-dependencies/application/ports/source-dependency-parser.js.map +1 -0
  106. package/dist/capabilities/source-dependencies/application/ports/source-dependency-resolver.d.ts +12 -0
  107. package/dist/capabilities/source-dependencies/application/ports/source-dependency-resolver.d.ts.map +1 -0
  108. package/dist/capabilities/source-dependencies/application/ports/source-dependency-resolver.js +2 -0
  109. package/dist/capabilities/source-dependencies/application/ports/source-dependency-resolver.js.map +1 -0
  110. package/dist/capabilities/source-dependencies/application/rules.d.ts +26 -0
  111. package/dist/capabilities/source-dependencies/application/rules.d.ts.map +1 -0
  112. package/dist/capabilities/source-dependencies/application/rules.js +27 -0
  113. package/dist/capabilities/source-dependencies/application/rules.js.map +1 -0
  114. package/dist/capabilities/source-dependencies/application/use-cases/analyze-source-dependencies.d.ts +19 -0
  115. package/dist/capabilities/source-dependencies/application/use-cases/analyze-source-dependencies.d.ts.map +1 -0
  116. package/dist/capabilities/source-dependencies/application/use-cases/analyze-source-dependencies.js +69 -0
  117. package/dist/capabilities/source-dependencies/application/use-cases/analyze-source-dependencies.js.map +1 -0
  118. package/dist/capabilities/source-dependencies/contract/config.d.ts +5 -0
  119. package/dist/capabilities/source-dependencies/contract/config.d.ts.map +1 -0
  120. package/dist/capabilities/source-dependencies/contract/config.js +108 -0
  121. package/dist/capabilities/source-dependencies/contract/config.js.map +1 -0
  122. package/dist/capabilities/source-dependencies/module.d.ts +5 -0
  123. package/dist/capabilities/source-dependencies/module.d.ts.map +1 -0
  124. package/dist/capabilities/source-dependencies/module.js +61 -0
  125. package/dist/capabilities/source-dependencies/module.js.map +1 -0
  126. package/dist/capabilities/suppression-governance/adapters/outbound/oxc/oxc-suppression-scanner.d.ts +7 -0
  127. package/dist/capabilities/suppression-governance/adapters/outbound/oxc/oxc-suppression-scanner.d.ts.map +1 -0
  128. package/dist/capabilities/suppression-governance/adapters/outbound/oxc/oxc-suppression-scanner.js +115 -0
  129. package/dist/capabilities/suppression-governance/adapters/outbound/oxc/oxc-suppression-scanner.js.map +1 -0
  130. package/dist/capabilities/suppression-governance/adapters/outbound/time/system-clock.d.ts +5 -0
  131. package/dist/capabilities/suppression-governance/adapters/outbound/time/system-clock.d.ts.map +1 -0
  132. package/dist/capabilities/suppression-governance/adapters/outbound/time/system-clock.js +6 -0
  133. package/dist/capabilities/suppression-governance/adapters/outbound/time/system-clock.js.map +1 -0
  134. package/dist/capabilities/suppression-governance/application/model/iso-date.d.ts +2 -0
  135. package/dist/capabilities/suppression-governance/application/model/iso-date.d.ts.map +1 -0
  136. package/dist/capabilities/suppression-governance/application/model/iso-date.js +27 -0
  137. package/dist/capabilities/suppression-governance/application/model/iso-date.js.map +1 -0
  138. package/dist/capabilities/suppression-governance/application/model/suppression-governance.d.ts +35 -0
  139. package/dist/capabilities/suppression-governance/application/model/suppression-governance.d.ts.map +1 -0
  140. package/dist/capabilities/suppression-governance/application/model/suppression-governance.js +8 -0
  141. package/dist/capabilities/suppression-governance/application/model/suppression-governance.js.map +1 -0
  142. package/dist/capabilities/suppression-governance/application/policies/evaluate-suppression-governance.d.ts +8 -0
  143. package/dist/capabilities/suppression-governance/application/policies/evaluate-suppression-governance.d.ts.map +1 -0
  144. package/dist/capabilities/suppression-governance/application/policies/evaluate-suppression-governance.js +196 -0
  145. package/dist/capabilities/suppression-governance/application/policies/evaluate-suppression-governance.js.map +1 -0
  146. package/dist/capabilities/suppression-governance/application/ports/calendar-clock.d.ts +4 -0
  147. package/dist/capabilities/suppression-governance/application/ports/calendar-clock.d.ts.map +1 -0
  148. package/dist/capabilities/suppression-governance/application/ports/calendar-clock.js +2 -0
  149. package/dist/capabilities/suppression-governance/application/ports/calendar-clock.js.map +1 -0
  150. package/dist/capabilities/suppression-governance/application/ports/suppression-scanner.d.ts +6 -0
  151. package/dist/capabilities/suppression-governance/application/ports/suppression-scanner.d.ts.map +1 -0
  152. package/dist/capabilities/suppression-governance/application/ports/suppression-scanner.js +2 -0
  153. package/dist/capabilities/suppression-governance/application/ports/suppression-scanner.js.map +1 -0
  154. package/dist/capabilities/suppression-governance/application/rules.d.ts +25 -0
  155. package/dist/capabilities/suppression-governance/application/rules.d.ts.map +1 -0
  156. package/dist/capabilities/suppression-governance/application/rules.js +26 -0
  157. package/dist/capabilities/suppression-governance/application/rules.js.map +1 -0
  158. package/dist/capabilities/suppression-governance/application/use-cases/analyze-suppression-governance.d.ts +15 -0
  159. package/dist/capabilities/suppression-governance/application/use-cases/analyze-suppression-governance.d.ts.map +1 -0
  160. package/dist/capabilities/suppression-governance/application/use-cases/analyze-suppression-governance.js +15 -0
  161. package/dist/capabilities/suppression-governance/application/use-cases/analyze-suppression-governance.js.map +1 -0
  162. package/dist/capabilities/suppression-governance/contract/config.d.ts +5 -0
  163. package/dist/capabilities/suppression-governance/contract/config.d.ts.map +1 -0
  164. package/dist/capabilities/suppression-governance/contract/config.js +108 -0
  165. package/dist/capabilities/suppression-governance/contract/config.js.map +1 -0
  166. package/dist/capabilities/suppression-governance/module.d.ts +5 -0
  167. package/dist/capabilities/suppression-governance/module.d.ts.map +1 -0
  168. package/dist/capabilities/suppression-governance/module.js +57 -0
  169. package/dist/capabilities/suppression-governance/module.js.map +1 -0
  170. package/dist/capabilities/workspace-dependency-declarations/adapters/outbound/pnpm-workspace/pnpm-workspace-reader.d.ts +1 -0
  171. package/dist/capabilities/workspace-dependency-declarations/adapters/outbound/pnpm-workspace/pnpm-workspace-reader.d.ts.map +1 -1
  172. package/dist/capabilities/workspace-dependency-declarations/adapters/outbound/pnpm-workspace/pnpm-workspace-reader.js +4 -195
  173. package/dist/capabilities/workspace-dependency-declarations/adapters/outbound/pnpm-workspace/pnpm-workspace-reader.js.map +1 -1
  174. package/dist/capabilities/workspace-dependency-declarations/application/model/workspace-dependency-policy.d.ts +6 -0
  175. package/dist/capabilities/workspace-dependency-declarations/application/model/workspace-dependency-policy.d.ts.map +1 -0
  176. package/dist/capabilities/workspace-dependency-declarations/application/model/workspace-dependency-policy.js +2 -0
  177. package/dist/capabilities/workspace-dependency-declarations/application/model/workspace-dependency-policy.js.map +1 -0
  178. package/dist/capabilities/workspace-dependency-declarations/application/model/workspace-snapshot.d.ts +1 -26
  179. package/dist/capabilities/workspace-dependency-declarations/application/model/workspace-snapshot.d.ts.map +1 -1
  180. package/dist/capabilities/workspace-dependency-declarations/application/model/workspace-snapshot.js +1 -6
  181. package/dist/capabilities/workspace-dependency-declarations/application/model/workspace-snapshot.js.map +1 -1
  182. package/dist/capabilities/workspace-dependency-declarations/application/policies/evaluate-workspace-dependencies.d.ts +1 -1
  183. package/dist/capabilities/workspace-dependency-declarations/application/policies/evaluate-workspace-dependencies.d.ts.map +1 -1
  184. package/dist/capabilities/workspace-dependency-declarations/contract/config.d.ts +1 -5
  185. package/dist/capabilities/workspace-dependency-declarations/contract/config.d.ts.map +1 -1
  186. package/dist/capabilities/workspace-dependency-declarations/contract/config.js.map +1 -1
  187. package/dist/capabilities/workspace-dependency-declarations/module.d.ts +2 -0
  188. package/dist/capabilities/workspace-dependency-declarations/module.d.ts.map +1 -1
  189. package/dist/capabilities/workspace-dependency-declarations/module.js +2 -0
  190. package/dist/capabilities/workspace-dependency-declarations/module.js.map +1 -1
  191. package/dist/capability-runtime.d.ts +1 -5
  192. package/dist/capability-runtime.d.ts.map +1 -1
  193. package/dist/capability-runtime.js +4 -4
  194. package/dist/capability-runtime.js.map +1 -1
  195. package/dist/check-contract.d.ts +3 -2
  196. package/dist/check-contract.d.ts.map +1 -1
  197. package/dist/check-runner.d.ts +0 -2
  198. package/dist/check-runner.d.ts.map +1 -1
  199. package/dist/check-runner.js +1 -7
  200. package/dist/check-runner.js.map +1 -1
  201. package/dist/cli.js +36 -7
  202. package/dist/cli.js.map +1 -1
  203. package/dist/composition/capability-registry.d.ts.map +1 -1
  204. package/dist/composition/capability-registry.js +8 -0
  205. package/dist/composition/capability-registry.js.map +1 -1
  206. package/dist/composition/rule-registry.d.ts +8 -0
  207. package/dist/composition/rule-registry.d.ts.map +1 -0
  208. package/dist/composition/rule-registry.js +13 -0
  209. package/dist/composition/rule-registry.js.map +1 -0
  210. package/dist/filesystem-path-safety.d.ts +2 -0
  211. package/dist/filesystem-path-safety.d.ts.map +1 -0
  212. package/dist/filesystem-path-safety.js +19 -0
  213. package/dist/filesystem-path-safety.js.map +1 -0
  214. package/dist/foundation-config.d.ts +5 -4
  215. package/dist/foundation-config.d.ts.map +1 -1
  216. package/dist/foundation-config.js +56 -15
  217. package/dist/foundation-config.js.map +1 -1
  218. package/dist/local-mode/adapters/outbound/time/system-clock.d.ts +2 -0
  219. package/dist/local-mode/adapters/outbound/time/system-clock.d.ts.map +1 -0
  220. package/dist/local-mode/adapters/outbound/time/system-clock.js +4 -0
  221. package/dist/local-mode/adapters/outbound/time/system-clock.js.map +1 -0
  222. package/dist/local-mode/consumer-policy.js +1 -1
  223. package/dist/local-mode/consumer-policy.js.map +1 -1
  224. package/dist/local-mode/service.d.ts +1 -1
  225. package/dist/local-mode/service.d.ts.map +1 -1
  226. package/dist/local-mode/service.js +1 -1
  227. package/dist/local-mode/service.js.map +1 -1
  228. package/dist/package-self-check.d.ts +2 -2
  229. package/dist/package-self-check.d.ts.map +1 -1
  230. package/dist/package-self-check.js +23 -20
  231. package/dist/package-self-check.js.map +1 -1
  232. package/dist/schema-catalog.d.ts +1 -3
  233. package/dist/schema-catalog.d.ts.map +1 -1
  234. package/dist/schema-catalog.js +2 -6
  235. package/dist/schema-catalog.js.map +1 -1
  236. package/dist/schema-ids.d.ts +3 -0
  237. package/dist/schema-ids.d.ts.map +1 -0
  238. package/dist/schema-ids.js +11 -0
  239. package/dist/schema-ids.js.map +1 -0
  240. package/dist/semantic-version.d.ts +2 -0
  241. package/dist/semantic-version.d.ts.map +1 -1
  242. package/dist/semantic-version.js +72 -1
  243. package/dist/semantic-version.js.map +1 -1
  244. package/dist/source-inventory/adapters/outbound/filesystem/filesystem-source-tree-reader.d.ts +6 -0
  245. package/dist/source-inventory/adapters/outbound/filesystem/filesystem-source-tree-reader.d.ts.map +1 -0
  246. package/dist/source-inventory/adapters/outbound/filesystem/filesystem-source-tree-reader.js +133 -0
  247. package/dist/source-inventory/adapters/outbound/filesystem/filesystem-source-tree-reader.js.map +1 -0
  248. package/dist/source-inventory/application/model/source-file-snapshot.d.ts +5 -0
  249. package/dist/source-inventory/application/model/source-file-snapshot.d.ts.map +1 -0
  250. package/dist/source-inventory/application/model/source-file-snapshot.js +2 -0
  251. package/dist/source-inventory/application/model/source-file-snapshot.js.map +1 -0
  252. package/dist/source-inventory/application/ports/source-tree-reader.d.ts +5 -0
  253. package/dist/source-inventory/application/ports/source-tree-reader.d.ts.map +1 -0
  254. package/dist/source-inventory/application/ports/source-tree-reader.js +2 -0
  255. package/dist/source-inventory/application/ports/source-tree-reader.js.map +1 -0
  256. package/dist/strict-yaml.d.ts +1 -2
  257. package/dist/strict-yaml.d.ts.map +1 -1
  258. package/dist/strict-yaml.js +3 -3
  259. package/dist/strict-yaml.js.map +1 -1
  260. package/dist/workspace-inventory/adapters/outbound/pnpm/pnpm-workspace-inventory-reader.d.ts +6 -0
  261. package/dist/workspace-inventory/adapters/outbound/pnpm/pnpm-workspace-inventory-reader.d.ts.map +1 -0
  262. package/dist/workspace-inventory/adapters/outbound/pnpm/pnpm-workspace-inventory-reader.js +288 -0
  263. package/dist/workspace-inventory/adapters/outbound/pnpm/pnpm-workspace-inventory-reader.js.map +1 -0
  264. package/dist/workspace-inventory/application/model/workspace-inventory.d.ts +38 -0
  265. package/dist/workspace-inventory/application/model/workspace-inventory.d.ts.map +1 -0
  266. package/dist/workspace-inventory/application/model/workspace-inventory.js +7 -0
  267. package/dist/workspace-inventory/application/model/workspace-inventory.js.map +1 -0
  268. package/dist/workspace-inventory/application/ports/workspace-inventory-reader.d.ts +5 -0
  269. package/dist/workspace-inventory/application/ports/workspace-inventory-reader.d.ts.map +1 -0
  270. package/dist/workspace-inventory/application/ports/workspace-inventory-reader.js +2 -0
  271. package/dist/workspace-inventory/application/ports/workspace-inventory-reader.js.map +1 -0
  272. package/package.json +7 -1
  273. package/presets/oxlint/base.json +2 -0
  274. package/presets/oxlint/type-aware.json +39 -0
  275. package/schemas/architecture-source-dependencies/v1.schema.json +97 -0
  276. package/schemas/foundation-config/v1.schema.json +40 -0
  277. package/schemas/package-public-api-baseline/v1.schema.json +39 -0
  278. package/schemas/package-public-api-compatibility/v1.schema.json +70 -0
  279. package/schemas/quality-suppression-governance/v1.schema.json +109 -0
  280. package/schemas/repository-security-baseline/v1.schema.json +57 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/capabilities/source-dependencies/contract/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type CapabilityDefinition } from "../../capability-runtime.js";
2
+ import { SOURCE_DEPENDENCY_RULES_BY_ID } from "./application/rules.js";
3
+ export { SOURCE_DEPENDENCY_RULES_BY_ID };
4
+ export declare function createSourceDependenciesCapability(): CapabilityDefinition;
5
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/capabilities/source-dependencies/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,oBAAoB,EAE1B,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAOvE,OAAO,EAAE,6BAA6B,EAAE,CAAC;AAEzC,wBAAgB,kCAAkC,IAAI,oBAAoB,CAyDzE"}
@@ -0,0 +1,61 @@
1
+ import { CapabilityInputError, capabilityReport } from "../../capability-runtime.js";
2
+ import { FilesystemSourceTreeReader } from "../../source-inventory/adapters/outbound/filesystem/filesystem-source-tree-reader.js";
3
+ import { PnpmWorkspaceInventoryReader } from "../../workspace-inventory/adapters/outbound/pnpm/pnpm-workspace-inventory-reader.js";
4
+ import { NodeSourceDependencyResolver } from "./adapters/outbound/node/node-source-dependency-resolver.js";
5
+ import { OxcSourceDependencyParser } from "./adapters/outbound/oxc/oxc-source-dependency-parser.js";
6
+ import { analyzeSourceDependencies } from "./application/use-cases/analyze-source-dependencies.js";
7
+ import { SOURCE_DEPENDENCY_RULES_BY_ID } from "./application/rules.js";
8
+ import { CAPABILITY_CONFIG_SCHEMA_VERSION, CAPABILITY_ID, loadCapabilityConfig } from "./contract/config.js";
9
+ export { SOURCE_DEPENDENCY_RULES_BY_ID };
10
+ export function createSourceDependenciesCapability() {
11
+ const dependencies = Object.freeze({
12
+ inventoryReader: new PnpmWorkspaceInventoryReader(),
13
+ parser: new OxcSourceDependencyParser(),
14
+ resolver: new NodeSourceDependencyResolver(),
15
+ sourceReader: new FilesystemSourceTreeReader()
16
+ });
17
+ return Object.freeze({
18
+ id: CAPABILITY_ID,
19
+ configSchemaVersion: CAPABILITY_CONFIG_SCHEMA_VERSION,
20
+ async run(invocation) {
21
+ try {
22
+ const policy = await loadCapabilityConfig(invocation.consumerRoot, invocation.configPath, invocation.signal);
23
+ return capabilityReport({
24
+ capabilityId: CAPABILITY_ID,
25
+ capabilityConfigSchemaVersion: CAPABILITY_CONFIG_SCHEMA_VERSION,
26
+ diagnostics: await analyzeSourceDependencies({
27
+ consumerRoot: invocation.consumerRoot,
28
+ policy,
29
+ ...(invocation.signal === undefined
30
+ ? {}
31
+ : { signal: invocation.signal })
32
+ }, dependencies)
33
+ });
34
+ }
35
+ catch (error) {
36
+ if (error instanceof CapabilityInputError) {
37
+ return capabilityReport({
38
+ capabilityId: CAPABILITY_ID,
39
+ capabilityConfigSchemaVersion: CAPABILITY_CONFIG_SCHEMA_VERSION,
40
+ outcome: error.problem.code === "EXECUTION_CANCELLED"
41
+ ? "cancelled"
42
+ : "invalid-input",
43
+ problem: error.problem
44
+ });
45
+ }
46
+ return capabilityReport({
47
+ capabilityId: CAPABILITY_ID,
48
+ capabilityConfigSchemaVersion: CAPABILITY_CONFIG_SCHEMA_VERSION,
49
+ outcome: "failed",
50
+ problem: {
51
+ code: "CAPABILITY_EXECUTION_FAILED",
52
+ message: "Source dependency capability execution failed.",
53
+ phase: "source-dependency-execution",
54
+ retryable: false
55
+ }
56
+ });
57
+ }
58
+ }
59
+ });
60
+ }
61
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/capabilities/source-dependencies/module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAGjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,0BAA0B,EAAE,MAAM,sFAAsF,CAAC;AAClI,OAAO,EAAE,4BAA4B,EAAE,MAAM,qFAAqF,CAAC;AACnI,OAAO,EAAE,4BAA4B,EAAE,MAAM,6DAA6D,CAAC;AAC3G,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AACpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,wDAAwD,CAAC;AACnG,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EACL,gCAAgC,EAChC,aAAa,EACb,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,6BAA6B,EAAE,CAAC;AAEzC,MAAM,UAAU,kCAAkC;IAChD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;QACjC,eAAe,EAAE,IAAI,4BAA4B,EAAE;QACnD,MAAM,EAAE,IAAI,yBAAyB,EAAE;QACvC,QAAQ,EAAE,IAAI,4BAA4B,EAAE;QAC5C,YAAY,EAAE,IAAI,0BAA0B,EAAE;KAC/C,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,EAAE,EAAE,aAAa;QACjB,mBAAmB,EAAE,gCAAgC;QACrD,KAAK,CAAC,GAAG,CAAC,UAAgC;YACxC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,UAAU,CAAC,YAAY,EACvB,UAAU,CAAC,UAAU,EACrB,UAAU,CAAC,MAAM,CAClB,CAAC;gBACF,OAAO,gBAAgB,CAAC;oBACtB,YAAY,EAAE,aAAa;oBAC3B,6BAA6B,EAAE,gCAAgC;oBAC/D,WAAW,EAAE,MAAM,yBAAyB,CAC1C;wBACE,YAAY,EAAE,UAAU,CAAC,YAAY;wBACrC,MAAM;wBACN,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,SAAS;4BACjC,CAAC,CAAC,EAAE;4BACJ,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;qBACnC,EACD,YAAY,CACb;iBACF,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,oBAAoB,EAAE,CAAC;oBAC1C,OAAO,gBAAgB,CAAC;wBACtB,YAAY,EAAE,aAAa;wBAC3B,6BAA6B,EAAE,gCAAgC;wBAC/D,OAAO,EACL,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,qBAAqB;4BAC1C,CAAC,CAAC,WAAW;4BACb,CAAC,CAAC,eAAe;wBACrB,OAAO,EAAE,KAAK,CAAC,OAAO;qBACvB,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,gBAAgB,CAAC;oBACtB,YAAY,EAAE,aAAa;oBAC3B,6BAA6B,EAAE,gCAAgC;oBAC/D,OAAO,EAAE,QAAQ;oBACjB,OAAO,EAAE;wBACP,IAAI,EAAE,6BAA6B;wBACnC,OAAO,EAAE,gDAAgD;wBACzD,KAAK,EAAE,6BAA6B;wBACpC,SAAS,EAAE,KAAK;qBACjB;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { SourceFileSnapshot } from "../../../../../source-inventory/application/model/source-file-snapshot.js";
2
+ import type { SuppressionScan } from "../../../application/model/suppression-governance.js";
3
+ import type { SuppressionScanner } from "../../../application/ports/suppression-scanner.js";
4
+ export declare class OxcSuppressionScanner implements SuppressionScanner {
5
+ scan(file: SourceFileSnapshot): SuppressionScan;
6
+ }
7
+ //# sourceMappingURL=oxc-suppression-scanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oxc-suppression-scanner.d.ts","sourceRoot":"","sources":["../../../../../../src/capabilities/suppression-governance/adapters/outbound/oxc/oxc-suppression-scanner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2EAA2E,CAAC;AACpH,OAAO,KAAK,EAGV,eAAe,EAChB,MAAM,sDAAsD,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AAsH5F,qBAAa,qBAAsB,YAAW,kBAAkB;IAC9D,IAAI,CAAC,IAAI,EAAE,kBAAkB,GAAG,eAAe,CAqB9C;CACF"}
@@ -0,0 +1,115 @@
1
+ import { parseSync } from "oxc-parser";
2
+ function lineStarts(source) {
3
+ const starts = [0];
4
+ for (let index = 0; index < source.length; index += 1) {
5
+ if (source.charCodeAt(index) === 10) {
6
+ starts.push(index + 1);
7
+ }
8
+ }
9
+ return starts;
10
+ }
11
+ function locate(comment, starts) {
12
+ let low = 0;
13
+ let high = starts.length - 1;
14
+ while (low <= high) {
15
+ const middle = Math.floor((low + high) / 2);
16
+ const start = starts[middle];
17
+ const next = starts[middle + 1] ?? Number.POSITIVE_INFINITY;
18
+ if (start === undefined) {
19
+ break;
20
+ }
21
+ if (comment.start < start) {
22
+ high = middle - 1;
23
+ }
24
+ else if (comment.start >= next) {
25
+ low = middle + 1;
26
+ }
27
+ else {
28
+ return { comment, line: middle + 1, column: comment.start - start + 1 };
29
+ }
30
+ }
31
+ return { comment, line: 1, column: 1 };
32
+ }
33
+ function rules(value) {
34
+ if (value === undefined) {
35
+ return [];
36
+ }
37
+ return [...new Set(value.split(/[\s,]+/u).filter((entry) => entry.length > 0))]
38
+ .toSorted();
39
+ }
40
+ function directive(input) {
41
+ return {
42
+ kind: input.kind,
43
+ path: input.file.path,
44
+ line: input.location.line,
45
+ column: input.location.column,
46
+ rules: input.rules ?? [],
47
+ scope: input.scope ?? "line"
48
+ };
49
+ }
50
+ function parseComment(file, location, sourceLines) {
51
+ const value = location.comment.value.trim();
52
+ const lint = /^(oxlint|eslint)-(disable-next-line|disable-line|disable)(?:\s+(.+))?$/u.exec(value);
53
+ if (lint !== null) {
54
+ const tool = lint[1];
55
+ const form = lint[2];
56
+ if (tool === undefined || form === undefined) {
57
+ return undefined;
58
+ }
59
+ return directive({
60
+ file,
61
+ location,
62
+ kind: `${tool}-${form}`,
63
+ rules: rules(lint[3]),
64
+ scope: form === "disable" ? "file" : "line"
65
+ });
66
+ }
67
+ const typescript = /^@ts-(expect-error|ignore|nocheck)\b(?:\s*:?.*)?$/u.exec(value);
68
+ if (typescript !== null) {
69
+ const form = typescript[1];
70
+ if (form === undefined) {
71
+ return undefined;
72
+ }
73
+ return directive({
74
+ file,
75
+ location,
76
+ kind: `typescript-${form}`,
77
+ rules: form === "expect-error" ? ["typescript/type-error"] : [],
78
+ scope: form === "nocheck" ? "file" : "line"
79
+ });
80
+ }
81
+ const astGrep = /^ast-grep-ignore(?:\s*:\s*(.*))?$/u.exec(value);
82
+ if (astGrep === null) {
83
+ return undefined;
84
+ }
85
+ const fileLevel = location.line === 1 && (sourceLines[1]?.trim().length ?? 0) === 0;
86
+ return directive({
87
+ file,
88
+ location,
89
+ kind: "ast-grep-ignore",
90
+ rules: rules(astGrep[1]),
91
+ scope: fileLevel ? "file" : "line"
92
+ });
93
+ }
94
+ export class OxcSuppressionScanner {
95
+ scan(file) {
96
+ const parsed = parseSync(file.path, file.source, { astType: "ts" });
97
+ if (parsed.errors.length > 0) {
98
+ return { path: file.path, parseErrorCount: parsed.errors.length, directives: [] };
99
+ }
100
+ const starts = lineStarts(file.source);
101
+ const sourceLines = file.source.split(/\r?\n/u);
102
+ const directives = parsed.comments
103
+ .map((comment) => parseComment(file, locate(comment, starts), sourceLines))
104
+ .filter((candidate) => candidate !== undefined)
105
+ .toSorted((left, right) => left.line - right.line ||
106
+ left.column - right.column ||
107
+ left.kind.localeCompare(right.kind));
108
+ return {
109
+ path: file.path,
110
+ parseErrorCount: 0,
111
+ directives
112
+ };
113
+ }
114
+ }
115
+ //# sourceMappingURL=oxc-suppression-scanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oxc-suppression-scanner.js","sourceRoot":"","sources":["../../../../../../src/capabilities/suppression-governance/adapters/outbound/oxc/oxc-suppression-scanner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { CalendarClock } from "../../../application/ports/calendar-clock.js";
2
+ export declare class SystemCalendarClock implements CalendarClock {
3
+ today(): string;
4
+ }
5
+ //# sourceMappingURL=system-clock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-clock.d.ts","sourceRoot":"","sources":["../../../../../../src/capabilities/suppression-governance/adapters/outbound/time/system-clock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAElF,qBAAa,mBAAoB,YAAW,aAAa;IACvD,KAAK,IAAI,MAAM,CAEd;CACF"}
@@ -0,0 +1,6 @@
1
+ export class SystemCalendarClock {
2
+ today() {
3
+ return new Date().toISOString().slice(0, 10);
4
+ }
5
+ }
6
+ //# sourceMappingURL=system-clock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-clock.js","sourceRoot":"","sources":["../../../../../../src/capabilities/suppression-governance/adapters/outbound/time/system-clock.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,mBAAmB;IAC9B,KAAK;QACH,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/C,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export declare function isoDateToEpochDay(value: string): number | undefined;
2
+ //# sourceMappingURL=iso-date.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iso-date.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/suppression-governance/application/model/iso-date.ts"],"names":[],"mappings":"AAAA,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAyBnE"}
@@ -0,0 +1,27 @@
1
+ export function isoDateToEpochDay(value) {
2
+ const match = /^(20\d{2})-(\d{2})-(\d{2})$/u.exec(value);
3
+ if (match === null) {
4
+ return undefined;
5
+ }
6
+ const year = Number(match[1]);
7
+ const month = Number(match[2]);
8
+ const day = Number(match[3]);
9
+ if (!Number.isInteger(year) || !Number.isInteger(month) || !Number.isInteger(day)) {
10
+ return undefined;
11
+ }
12
+ const leap = year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
13
+ const monthLengths = [31, leap ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
14
+ const monthLength = monthLengths[month - 1];
15
+ if (monthLength === undefined || day < 1 || day > monthLength) {
16
+ return undefined;
17
+ }
18
+ let total = 365 * (year - 1);
19
+ total += Math.floor((year - 1) / 4);
20
+ total -= Math.floor((year - 1) / 100);
21
+ total += Math.floor((year - 1) / 400);
22
+ for (let index = 0; index < month - 1; index += 1) {
23
+ total += monthLengths[index] ?? 0;
24
+ }
25
+ return total + day;
26
+ }
27
+ //# sourceMappingURL=iso-date.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iso-date.js","sourceRoot":"","sources":["../../../../../src/capabilities/suppression-governance/application/model/iso-date.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,KAAK,GAAG,8BAA8B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QAClF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;IACtE,MAAM,YAAY,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAClF,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC5C,IAAI,WAAW,KAAK,SAAS,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,WAAW,EAAE,CAAC;QAC9D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,KAAK,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAC7B,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACtC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACtC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAClD,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,KAAK,GAAG,GAAG,CAAC;AACrB,CAAC"}
@@ -0,0 +1,35 @@
1
+ declare const WAIVERABLE_DIRECTIVES: readonly ["ast-grep-ignore", "oxlint-disable-line", "oxlint-disable-next-line", "typescript-expect-error"];
2
+ export type WaiverableDirective = (typeof WAIVERABLE_DIRECTIVES)[number];
3
+ export type SuppressionDirectiveKind = WaiverableDirective | "eslint-disable" | "eslint-disable-line" | "eslint-disable-next-line" | "oxlint-disable" | "typescript-ignore" | "typescript-nocheck";
4
+ export interface SuppressionDirective {
5
+ readonly kind: SuppressionDirectiveKind;
6
+ readonly path: string;
7
+ readonly line: number;
8
+ readonly column: number;
9
+ readonly rules: readonly string[];
10
+ readonly scope: "file" | "line";
11
+ }
12
+ export interface SuppressionScan {
13
+ readonly path: string;
14
+ readonly parseErrorCount: number;
15
+ readonly directives: readonly SuppressionDirective[];
16
+ }
17
+ export interface SuppressionWaiver {
18
+ readonly id: string;
19
+ readonly path: string;
20
+ readonly line: number;
21
+ readonly directive: WaiverableDirective;
22
+ readonly rules: readonly string[];
23
+ readonly owner: string;
24
+ readonly reason: string;
25
+ readonly createdOn: string;
26
+ readonly expiresOn: string;
27
+ readonly decisionRef: string;
28
+ }
29
+ export interface SuppressionGovernancePolicy {
30
+ readonly governedRoots: readonly string[];
31
+ readonly nonWaivableRulePrefixes: readonly string[];
32
+ readonly waivers: readonly SuppressionWaiver[];
33
+ }
34
+ export {};
35
+ //# sourceMappingURL=suppression-governance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suppression-governance.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/suppression-governance/application/model/suppression-governance.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,qBAAqB,YACzB,iBAAiB,EACjB,qBAAqB,EACrB,0BAA0B,EAC1B,yBAAyB,CACjB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE,MAAM,MAAM,wBAAwB,GAChC,mBAAmB,GACnB,gBAAgB,GAChB,qBAAqB,GACrB,0BAA0B,GAC1B,gBAAgB,GAChB,mBAAmB,GACnB,oBAAoB,CAAC;AAEzB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACtD;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,uBAAuB,EAAE,SAAS,MAAM,EAAE,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAChD"}
@@ -0,0 +1,8 @@
1
+ const WAIVERABLE_DIRECTIVES = [
2
+ "ast-grep-ignore",
3
+ "oxlint-disable-line",
4
+ "oxlint-disable-next-line",
5
+ "typescript-expect-error"
6
+ ];
7
+ export {};
8
+ //# sourceMappingURL=suppression-governance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suppression-governance.js","sourceRoot":"","sources":["../../../../../src/capabilities/suppression-governance/application/model/suppression-governance.ts"],"names":[],"mappings":"AAAA,MAAM,qBAAqB,GAAG;IAC5B,iBAAiB;IACjB,qBAAqB;IACrB,0BAA0B;IAC1B,yBAAyB;CACjB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { FoundationDiagnostic } from "../../../../check-contract.js";
2
+ import type { SuppressionGovernancePolicy, SuppressionScan } from "../model/suppression-governance.js";
3
+ export declare function evaluateSuppressionGovernance(input: {
4
+ readonly policy: SuppressionGovernancePolicy;
5
+ readonly scans: readonly SuppressionScan[];
6
+ readonly today: string;
7
+ }): readonly FoundationDiagnostic[];
8
+ //# sourceMappingURL=evaluate-suppression-governance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate-suppression-governance.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/suppression-governance/application/policies/evaluate-suppression-governance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,OAAO,KAAK,EAEV,2BAA2B,EAC3B,eAAe,EAGhB,MAAM,oCAAoC,CAAC;AAwK5C,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IACnD,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,GAAG,SAAS,oBAAoB,EAAE,CA+ElC"}
@@ -0,0 +1,196 @@
1
+ import { isoDateToEpochDay } from "../model/iso-date.js";
2
+ import { SUPPRESSION_GOVERNANCE_RULES } from "../rules.js";
3
+ const BUILT_IN_PROTECTED_RULE_PREFIXES = [
4
+ "security.",
5
+ "tenancy.",
6
+ "tenant-isolation."
7
+ ];
8
+ const MAXIMUM_WAIVER_LIFETIME_DAYS = 90;
9
+ function diagnostic(input) {
10
+ return {
11
+ ruleId: input.rule.id,
12
+ severity: input.rule.severity,
13
+ subject: input.subject,
14
+ message: input.message,
15
+ location: {
16
+ path: input.path,
17
+ start: { line: input.line, column: input.column ?? 1 }
18
+ },
19
+ relatedLocations: [],
20
+ evidence: input.evidence ?? [],
21
+ remediation: input.rule.remediation,
22
+ requiresArchitectureReview: input.rule.requiresArchitectureReview
23
+ };
24
+ }
25
+ function locationKey(path, line) {
26
+ return `${path}:${line}`;
27
+ }
28
+ function exactRules(left, right) {
29
+ return (left.length === right.length &&
30
+ left.toSorted().every((value, index) => value === right.toSorted()[index]));
31
+ }
32
+ function waiverable(kind) {
33
+ return (kind === "ast-grep-ignore" ||
34
+ kind === "oxlint-disable-line" ||
35
+ kind === "oxlint-disable-next-line" ||
36
+ kind === "typescript-expect-error");
37
+ }
38
+ function protectedRules(directive, policy) {
39
+ const prefixes = [
40
+ ...BUILT_IN_PROTECTED_RULE_PREFIXES,
41
+ ...policy.nonWaivableRulePrefixes
42
+ ];
43
+ return directive.rules.filter((ruleId) => prefixes.some((prefix) => ruleId.startsWith(prefix)));
44
+ }
45
+ function classifyProhibited(directive, policy) {
46
+ const base = {
47
+ subject: locationKey(directive.path, directive.line),
48
+ path: directive.path,
49
+ line: directive.line,
50
+ column: directive.column
51
+ };
52
+ if (directive.kind.startsWith("eslint-")) {
53
+ return diagnostic({
54
+ ...base,
55
+ rule: SUPPRESSION_GOVERNANCE_RULES.legacySuppression,
56
+ message: `Legacy suppression directive is prohibited: ${directive.kind}.`
57
+ });
58
+ }
59
+ if (directive.kind === "typescript-ignore" || directive.kind === "typescript-nocheck") {
60
+ return diagnostic({
61
+ ...base,
62
+ rule: SUPPRESSION_GOVERNANCE_RULES.prohibitedTypeScriptSuppression,
63
+ message: `TypeScript suppression directive is prohibited: ${directive.kind}.`
64
+ });
65
+ }
66
+ if (directive.scope === "file") {
67
+ return diagnostic({
68
+ ...base,
69
+ rule: SUPPRESSION_GOVERNANCE_RULES.broadSuppression,
70
+ message: `Broad suppression directive is prohibited: ${directive.kind}.`
71
+ });
72
+ }
73
+ if (directive.rules.length === 0) {
74
+ return diagnostic({
75
+ ...base,
76
+ rule: SUPPRESSION_GOVERNANCE_RULES.unscopedSuppression,
77
+ message: `Suppression directive does not name an exact rule: ${directive.kind}.`
78
+ });
79
+ }
80
+ const blockedRules = protectedRules(directive, policy);
81
+ if (blockedRules.length > 0) {
82
+ return diagnostic({
83
+ ...base,
84
+ rule: SUPPRESSION_GOVERNANCE_RULES.protectedRuleSuppression,
85
+ message: `Suppression targets non-waivable rule(s): ${blockedRules.join(", ")}.`,
86
+ evidence: blockedRules.map((value) => ({ kind: "protected-rule", value }))
87
+ });
88
+ }
89
+ return undefined;
90
+ }
91
+ function waiverTimeDiagnostics(waiver, today) {
92
+ const created = isoDateToEpochDay(waiver.createdOn);
93
+ const expires = isoDateToEpochDay(waiver.expiresOn);
94
+ const current = isoDateToEpochDay(today);
95
+ if (created === undefined || expires === undefined || current === undefined) {
96
+ return [];
97
+ }
98
+ const base = {
99
+ subject: waiver.id,
100
+ path: waiver.path,
101
+ line: waiver.line,
102
+ evidence: [{ kind: "waiver-id", value: waiver.id }]
103
+ };
104
+ const diagnostics = [];
105
+ if (created > current) {
106
+ diagnostics.push(diagnostic({
107
+ ...base,
108
+ rule: SUPPRESSION_GOVERNANCE_RULES.futureWaiver,
109
+ message: `Waiver ${waiver.id} has future createdOn ${waiver.createdOn}.`
110
+ }));
111
+ }
112
+ if (expires < current) {
113
+ diagnostics.push(diagnostic({
114
+ ...base,
115
+ rule: SUPPRESSION_GOVERNANCE_RULES.expiredWaiver,
116
+ message: `Waiver ${waiver.id} expired on ${waiver.expiresOn}.`
117
+ }));
118
+ }
119
+ if (expires - created > MAXIMUM_WAIVER_LIFETIME_DAYS) {
120
+ diagnostics.push(diagnostic({
121
+ ...base,
122
+ rule: SUPPRESSION_GOVERNANCE_RULES.excessiveLifetime,
123
+ message: `Waiver ${waiver.id} exceeds ${MAXIMUM_WAIVER_LIFETIME_DAYS} days.`
124
+ }));
125
+ }
126
+ return diagnostics;
127
+ }
128
+ export function evaluateSuppressionGovernance(input) {
129
+ const diagnostics = [];
130
+ const waiversByLocation = new Map(input.policy.waivers.map((waiver) => [locationKey(waiver.path, waiver.line), waiver]));
131
+ const consumedWaivers = new Set();
132
+ for (const scan of input.scans) {
133
+ if (scan.parseErrorCount > 0) {
134
+ diagnostics.push(diagnostic({
135
+ rule: SUPPRESSION_GOVERNANCE_RULES.sourceParseError,
136
+ subject: scan.path,
137
+ message: `Source parser reported ${scan.parseErrorCount} error(s).`,
138
+ path: scan.path,
139
+ line: 1
140
+ }));
141
+ continue;
142
+ }
143
+ for (const directive of scan.directives) {
144
+ const key = locationKey(directive.path, directive.line);
145
+ const waiver = waiversByLocation.get(key);
146
+ const prohibited = classifyProhibited(directive, input.policy);
147
+ if (prohibited !== undefined) {
148
+ diagnostics.push(prohibited);
149
+ continue;
150
+ }
151
+ if (!waiverable(directive.kind)) {
152
+ continue;
153
+ }
154
+ if (waiver === undefined) {
155
+ diagnostics.push(diagnostic({
156
+ rule: SUPPRESSION_GOVERNANCE_RULES.unregisteredSuppression,
157
+ subject: key,
158
+ message: `Suppression has no registered waiver: ${directive.kind}.`,
159
+ path: directive.path,
160
+ line: directive.line,
161
+ column: directive.column,
162
+ evidence: directive.rules.map((value) => ({ kind: "rule", value }))
163
+ }));
164
+ continue;
165
+ }
166
+ consumedWaivers.add(waiver.id);
167
+ if (waiver.directive !== directive.kind || !exactRules(waiver.rules, directive.rules)) {
168
+ diagnostics.push(diagnostic({
169
+ rule: SUPPRESSION_GOVERNANCE_RULES.waiverMismatch,
170
+ subject: waiver.id,
171
+ message: `Waiver ${waiver.id} does not match the source directive.`,
172
+ path: directive.path,
173
+ line: directive.line,
174
+ column: directive.column,
175
+ evidence: [{ kind: "waiver-id", value: waiver.id }]
176
+ }));
177
+ continue;
178
+ }
179
+ diagnostics.push(...waiverTimeDiagnostics(waiver, input.today));
180
+ }
181
+ }
182
+ for (const waiver of input.policy.waivers) {
183
+ if (!consumedWaivers.has(waiver.id)) {
184
+ diagnostics.push(diagnostic({
185
+ rule: SUPPRESSION_GOVERNANCE_RULES.staleWaiver,
186
+ subject: waiver.id,
187
+ message: `Waiver ${waiver.id} does not match one allowed suppression.`,
188
+ path: waiver.path,
189
+ line: waiver.line,
190
+ evidence: [{ kind: "waiver-id", value: waiver.id }]
191
+ }));
192
+ }
193
+ }
194
+ return diagnostics;
195
+ }
196
+ //# sourceMappingURL=evaluate-suppression-governance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate-suppression-governance.js","sourceRoot":"","sources":["../../../../../src/capabilities/suppression-governance/application/policies/evaluate-suppression-governance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export interface CalendarClock {
2
+ today(): string;
3
+ }
4
+ //# sourceMappingURL=calendar-clock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-clock.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/suppression-governance/application/ports/calendar-clock.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,KAAK,IAAI,MAAM,CAAC;CACjB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=calendar-clock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-clock.js","sourceRoot":"","sources":["../../../../../src/capabilities/suppression-governance/application/ports/calendar-clock.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type { SourceFileSnapshot } from "../../../../source-inventory/application/model/source-file-snapshot.js";
2
+ import type { SuppressionScan } from "../model/suppression-governance.js";
3
+ export interface SuppressionScanner {
4
+ scan(file: SourceFileSnapshot): SuppressionScan;
5
+ }
6
+ //# sourceMappingURL=suppression-scanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suppression-scanner.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/suppression-governance/application/ports/suppression-scanner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wEAAwE,CAAC;AACjH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE1E,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,IAAI,EAAE,kBAAkB,GAAG,eAAe,CAAC;CACjD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=suppression-scanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suppression-scanner.js","sourceRoot":"","sources":["../../../../../src/capabilities/suppression-governance/application/ports/suppression-scanner.ts"],"names":[],"mappings":""}