@agent-teams/engineering-foundation 0.7.0 → 0.9.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 (275) hide show
  1. package/README.md +6 -2
  2. package/dist/capabilities/contract-protobuf-evolution/adapters/outbound/crypto/node-sha256-digest.d.ts +6 -0
  3. package/dist/capabilities/contract-protobuf-evolution/adapters/outbound/crypto/node-sha256-digest.d.ts.map +1 -0
  4. package/dist/capabilities/contract-protobuf-evolution/adapters/outbound/crypto/node-sha256-digest.js +7 -0
  5. package/dist/capabilities/contract-protobuf-evolution/adapters/outbound/crypto/node-sha256-digest.js.map +1 -0
  6. package/dist/capabilities/contract-protobuf-evolution/adapters/outbound/qualification/filesystem-buf-breaking-qualification-evidence.d.ts +8 -0
  7. package/dist/capabilities/contract-protobuf-evolution/adapters/outbound/qualification/filesystem-buf-breaking-qualification-evidence.d.ts.map +1 -0
  8. package/dist/capabilities/contract-protobuf-evolution/adapters/outbound/qualification/filesystem-buf-breaking-qualification-evidence.js +131 -0
  9. package/dist/capabilities/contract-protobuf-evolution/adapters/outbound/qualification/filesystem-buf-breaking-qualification-evidence.js.map +1 -0
  10. package/dist/capabilities/contract-protobuf-evolution/application/model/buf-breaking-qualification.d.ts +37 -0
  11. package/dist/capabilities/contract-protobuf-evolution/application/model/buf-breaking-qualification.d.ts.map +1 -0
  12. package/dist/capabilities/contract-protobuf-evolution/application/model/buf-breaking-qualification.js +258 -0
  13. package/dist/capabilities/contract-protobuf-evolution/application/model/buf-breaking-qualification.js.map +1 -0
  14. package/dist/capabilities/contract-protobuf-evolution/application/model/protobuf-release-evidence.d.ts +52 -2
  15. package/dist/capabilities/contract-protobuf-evolution/application/model/protobuf-release-evidence.d.ts.map +1 -1
  16. package/dist/capabilities/contract-protobuf-evolution/application/policies/evaluate-protobuf-evolution.d.ts.map +1 -1
  17. package/dist/capabilities/contract-protobuf-evolution/application/policies/evaluate-protobuf-evolution.js +0 -3
  18. package/dist/capabilities/contract-protobuf-evolution/application/policies/evaluate-protobuf-evolution.js.map +1 -1
  19. package/dist/capabilities/contract-protobuf-evolution/application/ports/buf-breaking-qualification-evidence.d.ts +14 -0
  20. package/dist/capabilities/contract-protobuf-evolution/application/ports/buf-breaking-qualification-evidence.d.ts.map +1 -0
  21. package/dist/capabilities/contract-protobuf-evolution/application/ports/buf-breaking-qualification-evidence.js +2 -0
  22. package/dist/capabilities/contract-protobuf-evolution/application/ports/buf-breaking-qualification-evidence.js.map +1 -0
  23. package/dist/capabilities/contract-protobuf-evolution/application/ports/sha256-digest.d.ts +5 -0
  24. package/dist/capabilities/contract-protobuf-evolution/application/ports/sha256-digest.d.ts.map +1 -0
  25. package/dist/capabilities/contract-protobuf-evolution/application/ports/sha256-digest.js +2 -0
  26. package/dist/capabilities/contract-protobuf-evolution/application/ports/sha256-digest.js.map +1 -0
  27. package/dist/capabilities/contract-protobuf-evolution/application/use-cases/resolve-protobuf-evolution-policy.d.ts +2 -0
  28. package/dist/capabilities/contract-protobuf-evolution/application/use-cases/resolve-protobuf-evolution-policy.d.ts.map +1 -1
  29. package/dist/capabilities/contract-protobuf-evolution/application/use-cases/resolve-protobuf-evolution-policy.js +10 -1
  30. package/dist/capabilities/contract-protobuf-evolution/application/use-cases/resolve-protobuf-evolution-policy.js.map +1 -1
  31. package/dist/capabilities/contract-protobuf-evolution/contract/config.d.ts.map +1 -1
  32. package/dist/capabilities/contract-protobuf-evolution/contract/config.js +30 -15
  33. package/dist/capabilities/contract-protobuf-evolution/contract/config.js.map +1 -1
  34. package/dist/capabilities/contract-protobuf-evolution/module.d.ts +3 -1
  35. package/dist/capabilities/contract-protobuf-evolution/module.d.ts.map +1 -1
  36. package/dist/capabilities/contract-protobuf-evolution/module.js +4 -1
  37. package/dist/capabilities/contract-protobuf-evolution/module.js.map +1 -1
  38. package/dist/capabilities/contract-protobuf-evolution/qualification/adapters/outbound/filesystem/filesystem-buf-qualification-artifacts.d.ts +21 -0
  39. package/dist/capabilities/contract-protobuf-evolution/qualification/adapters/outbound/filesystem/filesystem-buf-qualification-artifacts.d.ts.map +1 -0
  40. package/dist/capabilities/contract-protobuf-evolution/qualification/adapters/outbound/filesystem/filesystem-buf-qualification-artifacts.js +301 -0
  41. package/dist/capabilities/contract-protobuf-evolution/qualification/adapters/outbound/filesystem/filesystem-buf-qualification-artifacts.js.map +1 -0
  42. package/dist/capabilities/contract-protobuf-evolution/qualification/adapters/outbound/process/process-buf-executable.d.ts +2 -0
  43. package/dist/capabilities/contract-protobuf-evolution/qualification/adapters/outbound/process/process-buf-executable.d.ts.map +1 -1
  44. package/dist/capabilities/contract-protobuf-evolution/qualification/adapters/outbound/process/process-buf-executable.js +28 -41
  45. package/dist/capabilities/contract-protobuf-evolution/qualification/adapters/outbound/process/process-buf-executable.js.map +1 -1
  46. package/dist/capabilities/contract-protobuf-evolution/qualification/adapters/outbound/process/process-buf-qualification-runner.d.ts +8 -0
  47. package/dist/capabilities/contract-protobuf-evolution/qualification/adapters/outbound/process/process-buf-qualification-runner.d.ts.map +1 -0
  48. package/dist/capabilities/contract-protobuf-evolution/qualification/adapters/outbound/process/process-buf-qualification-runner.js +102 -0
  49. package/dist/capabilities/contract-protobuf-evolution/qualification/adapters/outbound/process/process-buf-qualification-runner.js.map +1 -0
  50. package/dist/capabilities/contract-protobuf-evolution/qualification/module.d.ts +14 -0
  51. package/dist/capabilities/contract-protobuf-evolution/qualification/module.d.ts.map +1 -1
  52. package/dist/capabilities/contract-protobuf-evolution/qualification/module.js +22 -0
  53. package/dist/capabilities/contract-protobuf-evolution/qualification/module.js.map +1 -1
  54. package/dist/capabilities/contract-protobuf-evolution/qualification/ports/buf-qualification-artifacts.d.ts +21 -0
  55. package/dist/capabilities/contract-protobuf-evolution/qualification/ports/buf-qualification-artifacts.d.ts.map +1 -0
  56. package/dist/capabilities/contract-protobuf-evolution/qualification/ports/buf-qualification-artifacts.js +2 -0
  57. package/dist/capabilities/contract-protobuf-evolution/qualification/ports/buf-qualification-artifacts.js.map +1 -0
  58. package/dist/capabilities/contract-protobuf-evolution/qualification/ports/buf-qualification-runner.d.ts +18 -0
  59. package/dist/capabilities/contract-protobuf-evolution/qualification/ports/buf-qualification-runner.d.ts.map +1 -0
  60. package/dist/capabilities/contract-protobuf-evolution/qualification/ports/buf-qualification-runner.js +2 -0
  61. package/dist/capabilities/contract-protobuf-evolution/qualification/ports/buf-qualification-runner.js.map +1 -0
  62. package/dist/capabilities/contract-protobuf-evolution/qualification/use-cases/qualify-buf-breaking-evidence.d.ts +22 -0
  63. package/dist/capabilities/contract-protobuf-evolution/qualification/use-cases/qualify-buf-breaking-evidence.d.ts.map +1 -0
  64. package/dist/capabilities/contract-protobuf-evolution/qualification/use-cases/qualify-buf-breaking-evidence.js +221 -0
  65. package/dist/capabilities/contract-protobuf-evolution/qualification/use-cases/qualify-buf-breaking-evidence.js.map +1 -0
  66. package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/microsoft-public-api-extractor.d.ts.map +1 -1
  67. package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/microsoft-public-api-extractor.js +1 -14
  68. package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/microsoft-public-api-extractor.js.map +1 -1
  69. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-baseline-mapper.d.ts +4 -4
  70. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-baseline-mapper.d.ts.map +1 -1
  71. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-baseline-mapper.js +34 -46
  72. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-baseline-mapper.js.map +1 -1
  73. package/dist/capabilities/public-api-compatibility/application/model/public-api.d.ts +18 -75
  74. package/dist/capabilities/public-api-compatibility/application/model/public-api.d.ts.map +1 -1
  75. package/dist/capabilities/public-api-compatibility/application/model/public-api.js +7 -29
  76. package/dist/capabilities/public-api-compatibility/application/model/public-api.js.map +1 -1
  77. package/dist/capabilities/public-api-compatibility/application/policies/accepted-breaking-change.d.ts +1 -5
  78. package/dist/capabilities/public-api-compatibility/application/policies/accepted-breaking-change.d.ts.map +1 -1
  79. package/dist/capabilities/public-api-compatibility/application/policies/accepted-breaking-change.js +1 -8
  80. package/dist/capabilities/public-api-compatibility/application/policies/accepted-breaking-change.js.map +1 -1
  81. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-public-api-compatibility.d.ts.map +1 -1
  82. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-public-api-compatibility.js +5 -38
  83. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-public-api-compatibility.js.map +1 -1
  84. package/dist/capabilities/public-api-compatibility/application/policies/validate-package-export-coverage.d.ts +1 -1
  85. package/dist/capabilities/public-api-compatibility/application/policies/validate-package-export-coverage.js +2 -2
  86. package/dist/capabilities/public-api-compatibility/application/policies/validate-package-export-coverage.js.map +1 -1
  87. package/dist/capabilities/public-api-compatibility/application/use-cases/analyze-public-api-compatibility.d.ts.map +1 -1
  88. package/dist/capabilities/public-api-compatibility/application/use-cases/analyze-public-api-compatibility.js +0 -1
  89. package/dist/capabilities/public-api-compatibility/application/use-cases/analyze-public-api-compatibility.js.map +1 -1
  90. package/dist/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.d.ts.map +1 -1
  91. package/dist/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.js +0 -38
  92. package/dist/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.js.map +1 -1
  93. package/dist/capabilities/public-api-compatibility/contract/config.d.ts +1 -1
  94. package/dist/capabilities/public-api-compatibility/contract/config.d.ts.map +1 -1
  95. package/dist/capabilities/public-api-compatibility/contract/config.js +32 -106
  96. package/dist/capabilities/public-api-compatibility/contract/config.js.map +1 -1
  97. package/dist/cli-arguments.d.ts +2 -0
  98. package/dist/cli-arguments.d.ts.map +1 -1
  99. package/dist/cli-arguments.js +34 -2
  100. package/dist/cli-arguments.js.map +1 -1
  101. package/dist/cli.js +40 -1
  102. package/dist/cli.js.map +1 -1
  103. package/dist/scaffolding/adapters/node/filesystem-authority-workspace.d.ts +13 -0
  104. package/dist/scaffolding/adapters/node/filesystem-authority-workspace.d.ts.map +1 -0
  105. package/dist/scaffolding/adapters/node/filesystem-authority-workspace.js +257 -0
  106. package/dist/scaffolding/adapters/node/filesystem-authority-workspace.js.map +1 -0
  107. package/dist/scaffolding/adapters/node/filesystem-authority.d.ts +20 -0
  108. package/dist/scaffolding/adapters/node/filesystem-authority.d.ts.map +1 -0
  109. package/dist/scaffolding/adapters/node/filesystem-authority.js +55 -0
  110. package/dist/scaffolding/adapters/node/filesystem-authority.js.map +1 -0
  111. package/dist/scaffolding/adapters/node/filesystem-file-identity.d.ts +20 -0
  112. package/dist/scaffolding/adapters/node/filesystem-file-identity.d.ts.map +1 -0
  113. package/dist/scaffolding/adapters/node/filesystem-file-identity.js +122 -0
  114. package/dist/scaffolding/adapters/node/filesystem-file-identity.js.map +1 -0
  115. package/dist/scaffolding/adapters/node/filesystem-finalization.d.ts +22 -0
  116. package/dist/scaffolding/adapters/node/filesystem-finalization.d.ts.map +1 -0
  117. package/dist/scaffolding/adapters/node/filesystem-finalization.js +169 -0
  118. package/dist/scaffolding/adapters/node/filesystem-finalization.js.map +1 -0
  119. package/dist/scaffolding/adapters/node/filesystem-journal-state.d.ts +25 -0
  120. package/dist/scaffolding/adapters/node/filesystem-journal-state.d.ts.map +1 -0
  121. package/dist/scaffolding/adapters/node/filesystem-journal-state.js +119 -0
  122. package/dist/scaffolding/adapters/node/filesystem-journal-state.js.map +1 -0
  123. package/dist/scaffolding/adapters/node/filesystem-journal.d.ts +7 -4
  124. package/dist/scaffolding/adapters/node/filesystem-journal.d.ts.map +1 -1
  125. package/dist/scaffolding/adapters/node/filesystem-journal.js +104 -29
  126. package/dist/scaffolding/adapters/node/filesystem-journal.js.map +1 -1
  127. package/dist/scaffolding/adapters/node/filesystem-operation-state.d.ts +16 -0
  128. package/dist/scaffolding/adapters/node/filesystem-operation-state.d.ts.map +1 -0
  129. package/dist/scaffolding/adapters/node/filesystem-operation-state.js +158 -0
  130. package/dist/scaffolding/adapters/node/filesystem-operation-state.js.map +1 -0
  131. package/dist/scaffolding/adapters/node/filesystem-path-guard.d.ts +2 -2
  132. package/dist/scaffolding/adapters/node/filesystem-path-guard.d.ts.map +1 -1
  133. package/dist/scaffolding/adapters/node/filesystem-path-guard.js.map +1 -1
  134. package/dist/scaffolding/adapters/node/node-authority-error.d.ts +4 -0
  135. package/dist/scaffolding/adapters/node/node-authority-error.d.ts.map +1 -0
  136. package/dist/scaffolding/adapters/node/node-authority-error.js +7 -0
  137. package/dist/scaffolding/adapters/node/node-authority-error.js.map +1 -0
  138. package/dist/scaffolding/adapters/node/node-authority-input-loader.d.ts +20 -0
  139. package/dist/scaffolding/adapters/node/node-authority-input-loader.d.ts.map +1 -0
  140. package/dist/scaffolding/adapters/node/node-authority-input-loader.js +180 -0
  141. package/dist/scaffolding/adapters/node/node-authority-input-loader.js.map +1 -0
  142. package/dist/scaffolding/adapters/node/node-authority-receipt-validator.d.ts +4 -0
  143. package/dist/scaffolding/adapters/node/node-authority-receipt-validator.d.ts.map +1 -0
  144. package/dist/scaffolding/adapters/node/node-authority-receipt-validator.js +10 -0
  145. package/dist/scaffolding/adapters/node/node-authority-receipt-validator.js.map +1 -0
  146. package/dist/scaffolding/adapters/node/node-owner-document-resolver.d.ts +17 -0
  147. package/dist/scaffolding/adapters/node/node-owner-document-resolver.d.ts.map +1 -0
  148. package/dist/scaffolding/adapters/node/node-owner-document-resolver.js +161 -0
  149. package/dist/scaffolding/adapters/node/node-owner-document-resolver.js.map +1 -0
  150. package/dist/scaffolding/adapters/node/node-plan-authority.d.ts +14 -2
  151. package/dist/scaffolding/adapters/node/node-plan-authority.d.ts.map +1 -1
  152. package/dist/scaffolding/adapters/node/node-plan-authority.js +28 -9
  153. package/dist/scaffolding/adapters/node/node-plan-authority.js.map +1 -1
  154. package/dist/scaffolding/adapters/node/node-repository-file.d.ts +9 -0
  155. package/dist/scaffolding/adapters/node/node-repository-file.d.ts.map +1 -0
  156. package/dist/scaffolding/adapters/node/node-repository-file.js +65 -0
  157. package/dist/scaffolding/adapters/node/node-repository-file.js.map +1 -0
  158. package/dist/scaffolding/adapters/node/node-scaffold-limits.d.ts +2 -0
  159. package/dist/scaffolding/adapters/node/node-scaffold-limits.d.ts.map +1 -0
  160. package/dist/scaffolding/adapters/node/node-scaffold-limits.js +2 -0
  161. package/dist/scaffolding/adapters/node/node-scaffold-limits.js.map +1 -0
  162. package/dist/scaffolding/authority-service.d.ts +7 -0
  163. package/dist/scaffolding/authority-service.d.ts.map +1 -0
  164. package/dist/scaffolding/authority-service.js +15 -0
  165. package/dist/scaffolding/authority-service.js.map +1 -0
  166. package/dist/scaffolding/canonical-api.d.ts +14 -0
  167. package/dist/scaffolding/canonical-api.d.ts.map +1 -0
  168. package/dist/scaffolding/canonical-api.js +32 -0
  169. package/dist/scaffolding/canonical-api.js.map +1 -0
  170. package/dist/scaffolding/cli-command.d.ts.map +1 -1
  171. package/dist/scaffolding/cli-command.js +1 -2
  172. package/dist/scaffolding/cli-command.js.map +1 -1
  173. package/dist/scaffolding/contract/receipt-authority-types.d.ts +125 -0
  174. package/dist/scaffolding/contract/receipt-authority-types.d.ts.map +1 -0
  175. package/dist/scaffolding/contract/receipt-authority-types.js +2 -0
  176. package/dist/scaffolding/contract/receipt-authority-types.js.map +1 -0
  177. package/dist/scaffolding/contract/scaffold-contract.d.ts +329 -0
  178. package/dist/scaffolding/contract/scaffold-contract.d.ts.map +1 -0
  179. package/dist/scaffolding/contract/scaffold-contract.js +2 -0
  180. package/dist/scaffolding/contract/scaffold-contract.js.map +1 -0
  181. package/dist/scaffolding/contract/types.d.ts +130 -193
  182. package/dist/scaffolding/contract/types.d.ts.map +1 -1
  183. package/dist/scaffolding/definitions/node-typescript-library.d.ts +3 -0
  184. package/dist/scaffolding/definitions/node-typescript-library.d.ts.map +1 -0
  185. package/dist/scaffolding/definitions/node-typescript-library.js +134 -0
  186. package/dist/scaffolding/definitions/node-typescript-library.js.map +1 -0
  187. package/dist/scaffolding/definitions/registry.d.ts +1 -1
  188. package/dist/scaffolding/definitions/registry.d.ts.map +1 -1
  189. package/dist/scaffolding/definitions/registry.js +6 -2
  190. package/dist/scaffolding/definitions/registry.js.map +1 -1
  191. package/dist/scaffolding/index.d.ts +4 -8
  192. package/dist/scaffolding/index.d.ts.map +1 -1
  193. package/dist/scaffolding/index.js +2 -7
  194. package/dist/scaffolding/index.js.map +1 -1
  195. package/dist/scaffolding/kernel/authority-compiler.d.ts +4 -0
  196. package/dist/scaffolding/kernel/authority-compiler.d.ts.map +1 -0
  197. package/dist/scaffolding/kernel/authority-compiler.js +78 -0
  198. package/dist/scaffolding/kernel/authority-compiler.js.map +1 -0
  199. package/dist/scaffolding/kernel/authority-evidence.d.ts +13 -0
  200. package/dist/scaffolding/kernel/authority-evidence.d.ts.map +1 -0
  201. package/dist/scaffolding/kernel/authority-evidence.js +79 -0
  202. package/dist/scaffolding/kernel/authority-evidence.js.map +1 -0
  203. package/dist/scaffolding/kernel/authority-receipt.d.ts +11 -0
  204. package/dist/scaffolding/kernel/authority-receipt.d.ts.map +1 -0
  205. package/dist/scaffolding/kernel/authority-receipt.js +189 -0
  206. package/dist/scaffolding/kernel/authority-receipt.js.map +1 -0
  207. package/dist/scaffolding/kernel/compiler.d.ts +28 -2
  208. package/dist/scaffolding/kernel/compiler.d.ts.map +1 -1
  209. package/dist/scaffolding/kernel/compiler.js +22 -36
  210. package/dist/scaffolding/kernel/compiler.js.map +1 -1
  211. package/dist/scaffolding/kernel/definition-registry.d.ts +6 -3
  212. package/dist/scaffolding/kernel/definition-registry.d.ts.map +1 -1
  213. package/dist/scaffolding/kernel/definition-registry.js +17 -1
  214. package/dist/scaffolding/kernel/definition-registry.js.map +1 -1
  215. package/dist/scaffolding/kernel/plan-content-validation.d.ts +3 -0
  216. package/dist/scaffolding/kernel/plan-content-validation.d.ts.map +1 -0
  217. package/dist/scaffolding/kernel/plan-content-validation.js +44 -0
  218. package/dist/scaffolding/kernel/plan-content-validation.js.map +1 -0
  219. package/dist/scaffolding/kernel/plan-validation.d.ts +2 -2
  220. package/dist/scaffolding/kernel/plan-validation.d.ts.map +1 -1
  221. package/dist/scaffolding/kernel/plan-validation.js +16 -40
  222. package/dist/scaffolding/kernel/plan-validation.js.map +1 -1
  223. package/dist/scaffolding/scaffold-defaults.d.ts +2 -0
  224. package/dist/scaffolding/scaffold-defaults.d.ts.map +1 -0
  225. package/dist/scaffolding/scaffold-defaults.js +2 -0
  226. package/dist/scaffolding/scaffold-defaults.js.map +1 -0
  227. package/dist/scaffolding/scaffold-error.d.ts +3 -3
  228. package/dist/scaffolding/scaffold-error.d.ts.map +1 -1
  229. package/dist/scaffolding/scaffold-error.js.map +1 -1
  230. package/dist/schema-catalog.d.ts +2 -2
  231. package/dist/schema-catalog.d.ts.map +1 -1
  232. package/dist/schema-catalog.js +41 -8
  233. package/dist/schema-catalog.js.map +1 -1
  234. package/dist/schema-ids.d.ts +2 -1
  235. package/dist/schema-ids.d.ts.map +1 -1
  236. package/dist/schema-ids.js +3 -2
  237. package/dist/schema-ids.js.map +1 -1
  238. package/package.json +25 -2
  239. package/schemas/contract-protobuf-breaking-qualification/v1.schema.json +93 -0
  240. package/schemas/contract-protobuf-evolution/v1.schema.json +47 -15
  241. package/schemas/package-public-api-baseline/v1.schema.json +49 -12
  242. package/schemas/package-public-api-compatibility/v1.schema.json +46 -5
  243. package/schemas/scaffold-authority-evidence/v1.schema.json +103 -0
  244. package/schemas/scaffold-intent/v1.schema.json +1 -1
  245. package/schemas/scaffold-plan/v1.schema.json +86 -8
  246. package/schemas/scaffold-receipt/v1.schema.json +102 -221
  247. package/schemas/scaffold-recovery-journal/v1.schema.json +31 -0
  248. package/schemas/scaffold-target-catalog/v1.schema.json +9 -8
  249. package/schemas/scaffolding-config/v1.schema.json +38 -2
  250. package/dist/scaffolding/adapters/memory/memory-workspace.d.ts +0 -9
  251. package/dist/scaffolding/adapters/memory/memory-workspace.d.ts.map +0 -1
  252. package/dist/scaffolding/adapters/memory/memory-workspace.js +0 -93
  253. package/dist/scaffolding/adapters/memory/memory-workspace.js.map +0 -1
  254. package/dist/scaffolding/adapters/node/filesystem-workspace.d.ts +0 -13
  255. package/dist/scaffolding/adapters/node/filesystem-workspace.d.ts.map +0 -1
  256. package/dist/scaffolding/adapters/node/filesystem-workspace.js +0 -336
  257. package/dist/scaffolding/adapters/node/filesystem-workspace.js.map +0 -1
  258. package/dist/scaffolding/adapters/node/node-input-loader.d.ts +0 -17
  259. package/dist/scaffolding/adapters/node/node-input-loader.d.ts.map +0 -1
  260. package/dist/scaffolding/adapters/node/node-input-loader.js +0 -157
  261. package/dist/scaffolding/adapters/node/node-input-loader.js.map +0 -1
  262. package/dist/scaffolding/adapters/node/node-receipt-validator.d.ts +0 -4
  263. package/dist/scaffolding/adapters/node/node-receipt-validator.d.ts.map +0 -1
  264. package/dist/scaffolding/adapters/node/node-receipt-validator.js +0 -10
  265. package/dist/scaffolding/adapters/node/node-receipt-validator.js.map +0 -1
  266. package/dist/scaffolding/kernel/receipt.d.ts +0 -35
  267. package/dist/scaffolding/kernel/receipt.d.ts.map +0 -1
  268. package/dist/scaffolding/kernel/receipt.js +0 -206
  269. package/dist/scaffolding/kernel/receipt.js.map +0 -1
  270. package/dist/scaffolding/service.d.ts +0 -8
  271. package/dist/scaffolding/service.d.ts.map +0 -1
  272. package/dist/scaffolding/service.js +0 -15
  273. package/dist/scaffolding/service.js.map +0 -1
  274. package/schemas/package-public-api-baseline/v2.schema.json +0 -62
  275. package/schemas/package-public-api-compatibility/v2.schema.json +0 -113
package/README.md CHANGED
@@ -8,8 +8,12 @@ tooling. It is not a production runtime dependency.
8
8
 
9
9
  It also exposes a closed deterministic scaffolding kernel through
10
10
  `@agent-teams/engineering-foundation/scaffolding`. Consumers provide strict
11
- data-only Intent, Composition, and target-catalog files. They cannot provide
12
- templates, hooks, callbacks, commands, or definition plugins.
11
+ data-only Intent, Composition, target-catalog, and owner-document files. The
12
+ catalog binds each target to one owner document ID. Foundation resolves that ID
13
+ from bounded document roots, records the derived path, and independently
14
+ verifies the allowed owner status before planning, applying, or recovering.
15
+ Consumers cannot provide templates, hooks, callbacks, commands, or definition
16
+ plugins.
13
17
 
14
18
  Consumer CI should run both policy gates:
15
19
 
@@ -0,0 +1,6 @@
1
+ import type { Sha256DigestPort } from "../../../application/ports/sha256-digest.js";
2
+ import type { Sha256Digest } from "../../../application/model/protobuf-release-evidence.js";
3
+ export declare class NodeSha256Digest implements Sha256DigestPort {
4
+ digest(value: string | Uint8Array): Sha256Digest;
5
+ }
6
+ //# sourceMappingURL=node-sha256-digest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-sha256-digest.d.ts","sourceRoot":"","sources":["../../../../../../src/capabilities/contract-protobuf-evolution/adapters/outbound/crypto/node-sha256-digest.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yDAAyD,CAAC;AAE5F,qBAAa,gBAAiB,YAAW,gBAAgB;IACvD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,YAAY,CAE/C;CACF"}
@@ -0,0 +1,7 @@
1
+ import { createHash } from "node:crypto";
2
+ export class NodeSha256Digest {
3
+ digest(value) {
4
+ return `sha256:${createHash("sha256").update(value).digest("hex")}`;
5
+ }
6
+ }
7
+ //# sourceMappingURL=node-sha256-digest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-sha256-digest.js","sourceRoot":"","sources":["../../../../../../src/capabilities/contract-protobuf-evolution/adapters/outbound/crypto/node-sha256-digest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC,MAAM,OAAO,gBAAgB;IAC3B,MAAM,CAAC,KAA0B;QAC/B,OAAO,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IACtE,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import type { BufBreakingQualificationEvidencePort, ReadBufBreakingQualificationEvidenceInput, ResolvedBufBreakingQualificationEvidence } from "../../../application/ports/buf-breaking-qualification-evidence.js";
2
+ import type { Sha256DigestPort } from "../../../application/ports/sha256-digest.js";
3
+ export declare class FilesystemBufBreakingQualificationEvidence implements BufBreakingQualificationEvidencePort {
4
+ #private;
5
+ constructor(digest?: Sha256DigestPort);
6
+ read(input: ReadBufBreakingQualificationEvidenceInput): Promise<ResolvedBufBreakingQualificationEvidence>;
7
+ }
8
+ //# sourceMappingURL=filesystem-buf-breaking-qualification-evidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem-buf-breaking-qualification-evidence.d.ts","sourceRoot":"","sources":["../../../../../../src/capabilities/contract-protobuf-evolution/adapters/outbound/qualification/filesystem-buf-breaking-qualification-evidence.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACV,oCAAoC,EACpC,yCAAyC,EACzC,wCAAwC,EACzC,MAAM,mEAAmE,CAAC;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAgEpF,qBAAa,0CACb,YAAW,oCAAoC;;IAG7C,YAAY,MAAM,GAAE,gBAAyC,EAE5D;IAEK,IAAI,CACR,KAAK,EAAE,yCAAyC,GAC/C,OAAO,CAAC,wCAAwC,CAAC,CAwGnD;CACF"}
@@ -0,0 +1,131 @@
1
+ import { resolve } from "node:path";
2
+ import { CapabilityInputError } from "../../../../../capability-runtime.js";
3
+ import { ContainedFileReadError, readContainedRegularFile } from "../../../../../filesystem-path-safety.js";
4
+ import { assertSchema } from "../../../../../schema-catalog.js";
5
+ import { assertNotCancelled, parseStrictYamlSource } from "../../../../../strict-yaml.js";
6
+ import { assertExactBufFilePolicy, BUF_FILE_BREAKING_CONFIG_SOURCE, canonicalBufFindingSet, canonicalBufQualificationEvidence, canonicalBufQualificationInvocation, mapBufBreakingQualificationEvidence, qualificationInvocationInput } from "../../../application/model/buf-breaking-qualification.js";
7
+ import { NodeSha256Digest } from "../crypto/node-sha256-digest.js";
8
+ const MAX_BUF_CONFIG_BYTES = 1024 * 1024;
9
+ const MAX_DESCRIPTOR_BYTES = 64 * 1024 * 1024;
10
+ const MAX_EVIDENCE_BYTES = 8 * 1024 * 1024;
11
+ function inputError(code, message) {
12
+ throw new CapabilityInputError({
13
+ code,
14
+ message,
15
+ phase: "protobuf-buf-qualification-evidence",
16
+ retryable: false
17
+ });
18
+ }
19
+ async function readQualificationFile(input) {
20
+ try {
21
+ return await readContainedRegularFile({
22
+ candidate: resolve(input.consumerRoot, input.path),
23
+ maxBytes: input.maxBytes,
24
+ root: input.consumerRoot
25
+ });
26
+ }
27
+ catch (error) {
28
+ if (!(error instanceof ContainedFileReadError)) {
29
+ throw error;
30
+ }
31
+ inputError(error.failure === "symlink" || error.failure === "escape"
32
+ ? "BUF_QUALIFICATION_PATH_UNSAFE"
33
+ : "BUF_QUALIFICATION_INPUT_UNAVAILABLE", `${input.label} is unavailable, unsafe, or changed while reading: ${input.path}.`);
34
+ }
35
+ }
36
+ function withoutEvidenceDigest(evidence) {
37
+ return {
38
+ schemaVersion: evidence.schemaVersion,
39
+ producerId: evidence.producerId,
40
+ producerVersion: evidence.producerVersion,
41
+ policy: evidence.policy,
42
+ contractId: evidence.contractId,
43
+ bufVersion: evidence.bufVersion,
44
+ modulePath: evidence.modulePath,
45
+ bufConfigPath: evidence.bufConfigPath,
46
+ evidencePath: evidence.evidencePath,
47
+ bufConfigDigest: evidence.bufConfigDigest,
48
+ baselineDescriptorImagePath: evidence.baselineDescriptorImagePath,
49
+ baselineDescriptorImageDigest: evidence.baselineDescriptorImageDigest,
50
+ candidateDescriptorImageDigest: evidence.candidateDescriptorImageDigest,
51
+ breakingPolicyConfigDigest: evidence.breakingPolicyConfigDigest,
52
+ invocationDigest: evidence.invocationDigest,
53
+ result: evidence.result
54
+ };
55
+ }
56
+ export class FilesystemBufBreakingQualificationEvidence {
57
+ #digest;
58
+ constructor(digest = new NodeSha256Digest()) {
59
+ this.#digest = digest;
60
+ }
61
+ async read(input) {
62
+ assertNotCancelled(input.signal);
63
+ const { configuration } = input;
64
+ const evidenceBytes = await readQualificationFile({
65
+ consumerRoot: input.consumerRoot,
66
+ path: configuration.qualification.evidencePath,
67
+ maxBytes: MAX_EVIDENCE_BYTES,
68
+ label: "Buf qualification evidence"
69
+ });
70
+ assertNotCancelled(input.signal);
71
+ const rawEvidence = parseStrictYamlSource(evidenceBytes.toString("utf8"), "protobuf-buf-qualification-evidence");
72
+ await assertSchema("contract-protobuf-breaking-qualification/v1", rawEvidence, "protobuf-buf-qualification-evidence");
73
+ const evidence = mapBufBreakingQualificationEvidence(rawEvidence);
74
+ const [bufConfigBytes, baselineDescriptorBytes] = await Promise.all([
75
+ readQualificationFile({
76
+ consumerRoot: input.consumerRoot,
77
+ path: configuration.qualification.bufConfigPath,
78
+ maxBytes: MAX_BUF_CONFIG_BYTES,
79
+ label: "Buf configuration"
80
+ }),
81
+ readQualificationFile({
82
+ consumerRoot: input.consumerRoot,
83
+ path: configuration.qualification.releasedDescriptorImagePath,
84
+ maxBytes: MAX_DESCRIPTOR_BYTES,
85
+ label: "Released descriptor image"
86
+ })
87
+ ]);
88
+ assertNotCancelled(input.signal);
89
+ assertExactBufFilePolicy(parseStrictYamlSource(bufConfigBytes.toString("utf8"), "protobuf-buf-config"));
90
+ const observedBufConfigDigest = this.#digest.digest(bufConfigBytes);
91
+ const observedBaselineDigest = this.#digest.digest(baselineDescriptorBytes);
92
+ const expectedBreakingPolicyConfigDigest = this.#digest.digest(BUF_FILE_BREAKING_CONFIG_SOURCE);
93
+ const expectedInvocationDigest = this.#digest.digest(canonicalBufQualificationInvocation(qualificationInvocationInput({
94
+ ...configuration,
95
+ breakingPolicyConfigDigest: expectedBreakingPolicyConfigDigest
96
+ })));
97
+ const expectedFindingSetDigest = this.#digest.digest(canonicalBufFindingSet(evidence.result.findings));
98
+ const expectedEvidenceDigest = this.#digest.digest(canonicalBufQualificationEvidence(withoutEvidenceDigest(evidence)));
99
+ const bindingsMatch = evidence.contractId === configuration.current.contractId &&
100
+ evidence.bufVersion === configuration.current.bufVersion &&
101
+ evidence.modulePath === configuration.qualification.modulePath &&
102
+ evidence.bufConfigPath === configuration.qualification.bufConfigPath &&
103
+ evidence.evidencePath === configuration.qualification.evidencePath &&
104
+ evidence.bufConfigDigest === configuration.current.bufConfigDigest &&
105
+ evidence.baselineDescriptorImagePath ===
106
+ configuration.qualification.releasedDescriptorImagePath &&
107
+ evidence.baselineDescriptorImageDigest === configuration.released.descriptorImageDigest &&
108
+ evidence.candidateDescriptorImageDigest === configuration.current.descriptorImageDigest &&
109
+ evidence.breakingPolicyConfigDigest === expectedBreakingPolicyConfigDigest;
110
+ if (!bindingsMatch) {
111
+ inputError("BUF_QUALIFICATION_EVIDENCE_MISMATCH", "Buf qualification evidence is stale or does not match the declared contract, toolchain, paths, baseline, or candidate.");
112
+ }
113
+ if (observedBufConfigDigest !== configuration.current.bufConfigDigest ||
114
+ observedBaselineDigest !== configuration.released.descriptorImageDigest) {
115
+ inputError("BUF_QUALIFICATION_INPUT_DIGEST_MISMATCH", "Buf configuration or released descriptor bytes do not match declared digests.");
116
+ }
117
+ if (evidence.invocationDigest !== expectedInvocationDigest ||
118
+ evidence.result.findingSetDigest !== expectedFindingSetDigest ||
119
+ evidence.evidenceDigest !== expectedEvidenceDigest) {
120
+ inputError("BUF_QUALIFICATION_EVIDENCE_DIGEST_MISMATCH", "Buf qualification evidence contains a stale or fabricated deterministic digest.");
121
+ }
122
+ return Object.freeze({
123
+ breaking: Object.freeze({
124
+ status: evidence.result.status,
125
+ fingerprint: evidence.evidenceDigest
126
+ }),
127
+ releasedDescriptorImageDigest: evidence.baselineDescriptorImageDigest
128
+ });
129
+ }
130
+ }
131
+ //# sourceMappingURL=filesystem-buf-breaking-qualification-evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem-buf-breaking-qualification-evidence.js","sourceRoot":"","sources":["../../../../../../src/capabilities/contract-protobuf-evolution/adapters/outbound/qualification/filesystem-buf-breaking-qualification-evidence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { BufBreakingFinding, BufBreakingQualificationBinding, BufBreakingQualificationEvidence, CurrentProtobufContractDeclaration, ReleasedProtobufContractEvidence, Sha256Digest } from "./protobuf-release-evidence.js";
2
+ export declare const BUF_QUALIFICATION_PRODUCER_ID: "agent-teams-foundation.buf-breaking-qualification";
3
+ export declare const BUF_QUALIFICATION_PRODUCER_VERSION: 1;
4
+ export declare const BUF_QUALIFICATION_SCHEMA_VERSION: 1;
5
+ export declare const BUF_BREAKING_POLICY: "FILE";
6
+ export declare const BUF_FILE_BREAKING_CONFIG_SOURCE: '{"version":"v2","modules":[{"path":"."}],"breaking":{"use":["FILE"]}}';
7
+ export declare function bufQualificationInvocationPlan(input: {
8
+ readonly baselineDescriptorPath: string;
9
+ readonly bufConfigPath: string;
10
+ readonly candidateDescriptorPath: string;
11
+ readonly modulePath: string;
12
+ }): {
13
+ readonly breakingArguments: readonly string[];
14
+ readonly buildArguments: readonly string[];
15
+ };
16
+ export declare function assertExactBufFilePolicy(value: unknown): void;
17
+ export declare function sortAndValidateBufFindings(values: readonly BufBreakingFinding[]): readonly BufBreakingFinding[];
18
+ export declare function mapBufBreakingQualificationEvidence(value: unknown): BufBreakingQualificationEvidence;
19
+ export declare function canonicalBufFindingSet(findings: readonly BufBreakingFinding[]): string;
20
+ export declare function canonicalBufQualificationInvocation(input: {
21
+ readonly binding: BufBreakingQualificationBinding;
22
+ readonly contractId: string;
23
+ readonly bufVersion: string;
24
+ readonly bufConfigDigest: Sha256Digest;
25
+ readonly baselineDescriptorImageDigest: Sha256Digest;
26
+ readonly candidateDescriptorImageDigest: Sha256Digest;
27
+ readonly breakingPolicyConfigDigest: Sha256Digest;
28
+ }): string;
29
+ export declare function canonicalBufQualificationEvidence(evidence: Omit<BufBreakingQualificationEvidence, "evidenceDigest">): string;
30
+ export declare function serializeBufQualificationEvidence(evidence: BufBreakingQualificationEvidence): string;
31
+ export declare function qualificationInvocationInput(input: {
32
+ readonly qualification: BufBreakingQualificationBinding;
33
+ readonly current: CurrentProtobufContractDeclaration;
34
+ readonly released: ReleasedProtobufContractEvidence;
35
+ readonly breakingPolicyConfigDigest: Sha256Digest;
36
+ }): Parameters<typeof canonicalBufQualificationInvocation>[0];
37
+ //# sourceMappingURL=buf-breaking-qualification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buf-breaking-qualification.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/contract-protobuf-evolution/application/model/buf-breaking-qualification.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,+BAA+B,EAC/B,gCAAgC,EAChC,kCAAkC,EAClC,gCAAgC,EAChC,YAAY,EACb,MAAM,gCAAgC,CAAC;AAExC,eAAO,MAAM,6BAA6B,EACxC,mDAA4D,CAAC;AAC/D,eAAO,MAAM,kCAAkC,EAAG,CAAU,CAAC;AAC7D,eAAO,MAAM,gCAAgC,EAAG,CAAU,CAAC;AAC3D,eAAO,MAAM,mBAAmB,EAAG,MAAe,CAAC;AACnD,eAAO,MAAM,+BAA+B,EAC1C,uEAAgF,CAAC;AAKnF,wBAAgB,8BAA8B,CAAC,KAAK,EAAE;IACpD,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,GAAG;IACF,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C,CAwBA;AA4BD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAe7D;AA8DD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,kBAAkB,EAAE,GACpC,SAAS,kBAAkB,EAAE,CAkB/B;AAED,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,OAAO,GACb,gCAAgC,CA6ElC;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,GACtC,MAAM,CAYR;AAED,wBAAgB,mCAAmC,CAAC,KAAK,EAAE;IACzD,QAAQ,CAAC,OAAO,EAAE,+BAA+B,CAAC;IAClD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,YAAY,CAAC;IACvC,QAAQ,CAAC,6BAA6B,EAAE,YAAY,CAAC;IACrD,QAAQ,CAAC,8BAA8B,EAAE,YAAY,CAAC;IACtD,QAAQ,CAAC,0BAA0B,EAAE,YAAY,CAAC;CACnD,GAAG,MAAM,CAyBT;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,IAAI,CAAC,gCAAgC,EAAE,gBAAgB,CAAC,GACjE,MAAM,CAgCR;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,gCAAgC,GACzC,MAAM,CAER;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,QAAQ,CAAC,aAAa,EAAE,+BAA+B,CAAC;IACxD,QAAQ,CAAC,OAAO,EAAE,kCAAkC,CAAC;IACrD,QAAQ,CAAC,QAAQ,EAAE,gCAAgC,CAAC;IACpD,QAAQ,CAAC,0BAA0B,EAAE,YAAY,CAAC;CACnD,GAAG,UAAU,CAAC,OAAO,mCAAmC,CAAC,CAAC,CAAC,CAAC,CAU5D"}
@@ -0,0 +1,258 @@
1
+ import { compareBinaryStrings } from "../../../../binary-string-comparator.js";
2
+ import { CapabilityInputError } from "../../../../capability-runtime.js";
3
+ export const BUF_QUALIFICATION_PRODUCER_ID = "agent-teams-foundation.buf-breaking-qualification";
4
+ export const BUF_QUALIFICATION_PRODUCER_VERSION = 1;
5
+ export const BUF_QUALIFICATION_SCHEMA_VERSION = 1;
6
+ export const BUF_BREAKING_POLICY = "FILE";
7
+ export const BUF_FILE_BREAKING_CONFIG_SOURCE = '{"version":"v2","modules":[{"path":"."}],"breaking":{"use":["FILE"]}}';
8
+ const SHA256_DIGEST = /^sha256:[a-f0-9]{64}$/u;
9
+ const MAX_FINDINGS = 10_000;
10
+ export function bufQualificationInvocationPlan(input) {
11
+ return Object.freeze({
12
+ buildArguments: Object.freeze([
13
+ "build",
14
+ input.modulePath,
15
+ "--config",
16
+ input.bufConfigPath,
17
+ "--disable-symlinks",
18
+ "-o",
19
+ input.candidateDescriptorPath
20
+ ]),
21
+ breakingArguments: Object.freeze([
22
+ "breaking",
23
+ input.candidateDescriptorPath,
24
+ "--against",
25
+ input.baselineDescriptorPath,
26
+ "--config",
27
+ BUF_FILE_BREAKING_CONFIG_SOURCE,
28
+ "--against-config",
29
+ BUF_FILE_BREAKING_CONFIG_SOURCE,
30
+ "--disable-symlinks",
31
+ "--error-format=json"
32
+ ])
33
+ });
34
+ }
35
+ function hasControlCharacter(value) {
36
+ for (const character of value) {
37
+ const code = character.codePointAt(0);
38
+ if (code !== undefined && (code <= 0x1f || code === 0x7f)) {
39
+ return true;
40
+ }
41
+ }
42
+ return false;
43
+ }
44
+ function inputError(code, message) {
45
+ throw new CapabilityInputError({
46
+ code,
47
+ message,
48
+ phase: "protobuf-buf-qualification-evidence",
49
+ retryable: false
50
+ });
51
+ }
52
+ function record(value, field) {
53
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
54
+ inputError("BUF_QUALIFICATION_EVIDENCE_INVALID", `${field} must be an object.`);
55
+ }
56
+ return value;
57
+ }
58
+ export function assertExactBufFilePolicy(value) {
59
+ const config = record(value, "Buf config");
60
+ const breaking = record(config["breaking"], "Buf config breaking");
61
+ if (Object.keys(breaking).length !== 1 ||
62
+ !Object.hasOwn(breaking, "use") ||
63
+ !Array.isArray(breaking["use"]) ||
64
+ breaking["use"].length !== 1 ||
65
+ breaking["use"][0] !== BUF_BREAKING_POLICY) {
66
+ inputError("BUF_FILE_POLICY_INVALID", "Buf breaking configuration must contain exactly use: [FILE] without exclusions.");
67
+ }
68
+ }
69
+ function string(value, field, maximum = 1000) {
70
+ if (typeof value !== "string" ||
71
+ value.length === 0 ||
72
+ value.length > maximum ||
73
+ hasControlCharacter(value)) {
74
+ inputError("BUF_QUALIFICATION_EVIDENCE_INVALID", `${field} must be a bounded printable string.`);
75
+ }
76
+ return value;
77
+ }
78
+ function integer(value, field) {
79
+ if (!Number.isSafeInteger(value) || value < 1) {
80
+ inputError("BUF_QUALIFICATION_EVIDENCE_INVALID", `${field} must be a positive safe integer.`);
81
+ }
82
+ return value;
83
+ }
84
+ function digest(value, field) {
85
+ if (typeof value !== "string" || !SHA256_DIGEST.test(value)) {
86
+ inputError("BUF_QUALIFICATION_EVIDENCE_INVALID", `${field} must be a lowercase sha256 digest.`);
87
+ }
88
+ return value;
89
+ }
90
+ function findingKey(finding) {
91
+ return [
92
+ finding.path,
93
+ finding.startLine,
94
+ finding.startColumn,
95
+ finding.endLine,
96
+ finding.endColumn,
97
+ finding.type,
98
+ finding.message
99
+ ].join("\u0000");
100
+ }
101
+ function mapFinding(value, index) {
102
+ const source = record(value, `result.findings[${index}]`);
103
+ return Object.freeze({
104
+ path: string(source["path"], `result.findings[${index}].path`, 500),
105
+ startLine: integer(source["startLine"], `result.findings[${index}].startLine`),
106
+ startColumn: integer(source["startColumn"], `result.findings[${index}].startColumn`),
107
+ endLine: integer(source["endLine"], `result.findings[${index}].endLine`),
108
+ endColumn: integer(source["endColumn"], `result.findings[${index}].endColumn`),
109
+ type: string(source["type"], `result.findings[${index}].type`, 240),
110
+ message: string(source["message"], `result.findings[${index}].message`, 4000)
111
+ });
112
+ }
113
+ export function sortAndValidateBufFindings(values) {
114
+ if (values.length > MAX_FINDINGS) {
115
+ inputError("BUF_QUALIFICATION_FINDINGS_INVALID", `Buf breaking output exceeds the supported ${MAX_FINDINGS} finding limit.`);
116
+ }
117
+ const sorted = values.toSorted((left, right) => compareBinaryStrings(findingKey(left), findingKey(right)));
118
+ const keys = sorted.map(findingKey);
119
+ if (new Set(keys).size !== keys.length) {
120
+ inputError("BUF_QUALIFICATION_FINDINGS_INVALID", "Buf breaking output contains duplicate findings.");
121
+ }
122
+ return Object.freeze(sorted.map((finding) => Object.freeze({ ...finding })));
123
+ }
124
+ export function mapBufBreakingQualificationEvidence(value) {
125
+ const source = record(value, "qualification evidence");
126
+ const result = record(source["result"], "result");
127
+ if (!Array.isArray(result["findings"])) {
128
+ inputError("BUF_QUALIFICATION_EVIDENCE_INVALID", "result.findings must be an array.");
129
+ }
130
+ const mappedFindings = result["findings"].map((finding, index) => mapFinding(finding, index));
131
+ const findings = sortAndValidateBufFindings(mappedFindings);
132
+ if (mappedFindings.some((finding, index) => findingKey(finding) !== findingKey(findings[index]))) {
133
+ inputError("BUF_QUALIFICATION_EVIDENCE_INVALID", "Buf qualification findings must be stored in deterministic order.");
134
+ }
135
+ const status = result["status"];
136
+ if (status !== "compatible" && status !== "breaking") {
137
+ inputError("BUF_QUALIFICATION_EVIDENCE_INVALID", "result.status is invalid.");
138
+ }
139
+ if ((status === "compatible" && findings.length !== 0) ||
140
+ (status === "breaking" && findings.length === 0)) {
141
+ inputError("BUF_QUALIFICATION_EVIDENCE_INVALID", "Buf result status and finding count are inconsistent.");
142
+ }
143
+ if (source["schemaVersion"] !== BUF_QUALIFICATION_SCHEMA_VERSION ||
144
+ source["producerId"] !== BUF_QUALIFICATION_PRODUCER_ID ||
145
+ source["producerVersion"] !== BUF_QUALIFICATION_PRODUCER_VERSION ||
146
+ source["policy"] !== BUF_BREAKING_POLICY) {
147
+ inputError("BUF_QUALIFICATION_EVIDENCE_INVALID", "Buf qualification producer, schema, or FILE policy is invalid.");
148
+ }
149
+ return Object.freeze({
150
+ schemaVersion: BUF_QUALIFICATION_SCHEMA_VERSION,
151
+ producerId: BUF_QUALIFICATION_PRODUCER_ID,
152
+ producerVersion: BUF_QUALIFICATION_PRODUCER_VERSION,
153
+ policy: BUF_BREAKING_POLICY,
154
+ contractId: string(source["contractId"], "contractId", 120),
155
+ bufVersion: string(source["bufVersion"], "bufVersion", 80),
156
+ modulePath: string(source["modulePath"], "modulePath", 300),
157
+ bufConfigPath: string(source["bufConfigPath"], "bufConfigPath", 300),
158
+ evidencePath: string(source["evidencePath"], "evidencePath", 300),
159
+ bufConfigDigest: digest(source["bufConfigDigest"], "bufConfigDigest"),
160
+ baselineDescriptorImagePath: string(source["baselineDescriptorImagePath"], "baselineDescriptorImagePath", 300),
161
+ baselineDescriptorImageDigest: digest(source["baselineDescriptorImageDigest"], "baselineDescriptorImageDigest"),
162
+ candidateDescriptorImageDigest: digest(source["candidateDescriptorImageDigest"], "candidateDescriptorImageDigest"),
163
+ breakingPolicyConfigDigest: digest(source["breakingPolicyConfigDigest"], "breakingPolicyConfigDigest"),
164
+ invocationDigest: digest(source["invocationDigest"], "invocationDigest"),
165
+ result: Object.freeze({
166
+ status,
167
+ findings,
168
+ findingSetDigest: digest(result["findingSetDigest"], "result.findingSetDigest"),
169
+ rawOutputDigest: digest(result["rawOutputDigest"], "result.rawOutputDigest")
170
+ }),
171
+ evidenceDigest: digest(source["evidenceDigest"], "evidenceDigest")
172
+ });
173
+ }
174
+ export function canonicalBufFindingSet(findings) {
175
+ return JSON.stringify(sortAndValidateBufFindings(findings).map((finding) => ({
176
+ path: finding.path,
177
+ startLine: finding.startLine,
178
+ startColumn: finding.startColumn,
179
+ endLine: finding.endLine,
180
+ endColumn: finding.endColumn,
181
+ type: finding.type,
182
+ message: finding.message
183
+ })));
184
+ }
185
+ export function canonicalBufQualificationInvocation(input) {
186
+ const invocation = bufQualificationInvocationPlan({
187
+ baselineDescriptorPath: "<baseline-descriptor>",
188
+ bufConfigPath: input.binding.bufConfigPath,
189
+ candidateDescriptorPath: "<candidate-descriptor>",
190
+ modulePath: input.binding.modulePath
191
+ });
192
+ return JSON.stringify({
193
+ schemaVersion: BUF_QUALIFICATION_SCHEMA_VERSION,
194
+ producerId: BUF_QUALIFICATION_PRODUCER_ID,
195
+ producerVersion: BUF_QUALIFICATION_PRODUCER_VERSION,
196
+ policy: BUF_BREAKING_POLICY,
197
+ contractId: input.contractId,
198
+ bufVersion: input.bufVersion,
199
+ modulePath: input.binding.modulePath,
200
+ bufConfigPath: input.binding.bufConfigPath,
201
+ evidencePath: input.binding.evidencePath,
202
+ bufConfigDigest: input.bufConfigDigest,
203
+ baselineDescriptorImagePath: input.binding.releasedDescriptorImagePath,
204
+ baselineDescriptorImageDigest: input.baselineDescriptorImageDigest,
205
+ candidateDescriptorImageDigest: input.candidateDescriptorImageDigest,
206
+ breakingPolicyConfigDigest: input.breakingPolicyConfigDigest,
207
+ buildArguments: invocation.buildArguments,
208
+ breakingArguments: invocation.breakingArguments
209
+ });
210
+ }
211
+ export function canonicalBufQualificationEvidence(evidence) {
212
+ return JSON.stringify({
213
+ schemaVersion: evidence.schemaVersion,
214
+ producerId: evidence.producerId,
215
+ producerVersion: evidence.producerVersion,
216
+ policy: evidence.policy,
217
+ contractId: evidence.contractId,
218
+ bufVersion: evidence.bufVersion,
219
+ modulePath: evidence.modulePath,
220
+ bufConfigPath: evidence.bufConfigPath,
221
+ evidencePath: evidence.evidencePath,
222
+ bufConfigDigest: evidence.bufConfigDigest,
223
+ baselineDescriptorImagePath: evidence.baselineDescriptorImagePath,
224
+ baselineDescriptorImageDigest: evidence.baselineDescriptorImageDigest,
225
+ candidateDescriptorImageDigest: evidence.candidateDescriptorImageDigest,
226
+ breakingPolicyConfigDigest: evidence.breakingPolicyConfigDigest,
227
+ invocationDigest: evidence.invocationDigest,
228
+ result: {
229
+ status: evidence.result.status,
230
+ findings: sortAndValidateBufFindings(evidence.result.findings).map((finding) => ({
231
+ path: finding.path,
232
+ startLine: finding.startLine,
233
+ startColumn: finding.startColumn,
234
+ endLine: finding.endLine,
235
+ endColumn: finding.endColumn,
236
+ type: finding.type,
237
+ message: finding.message
238
+ })),
239
+ findingSetDigest: evidence.result.findingSetDigest,
240
+ rawOutputDigest: evidence.result.rawOutputDigest
241
+ }
242
+ });
243
+ }
244
+ export function serializeBufQualificationEvidence(evidence) {
245
+ return `${JSON.stringify(evidence, null, 2)}\n`;
246
+ }
247
+ export function qualificationInvocationInput(input) {
248
+ return {
249
+ binding: input.qualification,
250
+ contractId: input.current.contractId,
251
+ bufVersion: input.current.bufVersion,
252
+ bufConfigDigest: input.current.bufConfigDigest,
253
+ baselineDescriptorImageDigest: input.released.descriptorImageDigest,
254
+ candidateDescriptorImageDigest: input.current.descriptorImageDigest,
255
+ breakingPolicyConfigDigest: input.breakingPolicyConfigDigest
256
+ };
257
+ }
258
+ //# sourceMappingURL=buf-breaking-qualification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buf-breaking-qualification.js","sourceRoot":"","sources":["../../../../../src/capabilities/contract-protobuf-evolution/application/model/buf-breaking-qualification.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,45 @@ export interface BufBreakingEvidence {
21
21
  readonly status: "compatible" | "breaking" | "not-run";
22
22
  readonly fingerprint?: Sha256Digest;
23
23
  }
24
+ export interface BufBreakingQualificationBinding {
25
+ readonly modulePath: string;
26
+ readonly bufConfigPath: string;
27
+ readonly releasedDescriptorImagePath: string;
28
+ readonly evidencePath: string;
29
+ }
30
+ export interface BufBreakingFinding {
31
+ readonly path: string;
32
+ readonly startLine: number;
33
+ readonly startColumn: number;
34
+ readonly endLine: number;
35
+ readonly endColumn: number;
36
+ readonly type: string;
37
+ readonly message: string;
38
+ }
39
+ export interface BufBreakingQualificationEvidence {
40
+ readonly schemaVersion: 1;
41
+ readonly producerId: "agent-teams-foundation.buf-breaking-qualification";
42
+ readonly producerVersion: 1;
43
+ readonly policy: "FILE";
44
+ readonly contractId: string;
45
+ readonly bufVersion: string;
46
+ readonly modulePath: string;
47
+ readonly bufConfigPath: string;
48
+ readonly evidencePath: string;
49
+ readonly bufConfigDigest: Sha256Digest;
50
+ readonly baselineDescriptorImagePath: string;
51
+ readonly baselineDescriptorImageDigest: Sha256Digest;
52
+ readonly candidateDescriptorImageDigest: Sha256Digest;
53
+ readonly breakingPolicyConfigDigest: Sha256Digest;
54
+ readonly invocationDigest: Sha256Digest;
55
+ readonly result: {
56
+ readonly status: "compatible" | "breaking";
57
+ readonly findings: readonly BufBreakingFinding[];
58
+ readonly findingSetDigest: Sha256Digest;
59
+ readonly rawOutputDigest: Sha256Digest;
60
+ };
61
+ readonly evidenceDigest: Sha256Digest;
62
+ }
24
63
  export interface ApprovedProtobufBreakingChange {
25
64
  readonly decisionId: `ADR-${string}`;
26
65
  readonly fingerprint: Sha256Digest;
@@ -34,11 +73,22 @@ export interface ProtobufEvolutionConfiguration {
34
73
  readonly acceptedDecisionBaselinePath?: string;
35
74
  readonly governanceConfigPath?: string;
36
75
  readonly approvedBreakingChanges: readonly ApprovedProtobufBreakingChange[];
76
+ readonly qualification: BufBreakingQualificationBinding;
37
77
  readonly released: ReleasedProtobufContractEvidence;
38
- readonly current: CurrentProtobufContractEvidence;
78
+ readonly current: CurrentProtobufContractDeclaration;
79
+ }
80
+ export interface CurrentProtobufContractDeclaration {
81
+ readonly schemaVersion: 1;
82
+ readonly contractId: string;
83
+ readonly publicContractVersion: string;
84
+ readonly bufVersion: string;
85
+ readonly bufConfigDigest: Sha256Digest;
86
+ readonly descriptorImageDigest: Sha256Digest;
87
+ readonly generatorVersions: readonly BufGeneratorVersionEvidence[];
88
+ readonly generationDrift: GenerationDriftEvidence;
39
89
  }
40
90
  export interface CurrentProtobufContractEvidence {
41
- readonly schemaVersion: number;
91
+ readonly schemaVersion: 1;
42
92
  readonly contractId: string;
43
93
  readonly publicContractVersion: string;
44
94
  readonly bufVersion: string;
@@ -1 +1 @@
1
- {"version":3,"file":"protobuf-release-evidence.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/contract-protobuf-evolution/application/model/protobuf-release-evidence.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,UAAU,MAAM,EAAE,CAAC;AAE9C,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,YAAY,CAAC;IACvC,QAAQ,CAAC,qBAAqB,EAAE,YAAY,CAAC;IAC7C,QAAQ,CAAC,iBAAiB,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACnE,QAAQ,CAAC,qBAAqB,EAAE,YAAY,CAAC;CAC9C;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,6BAA6B,EAAE,YAAY,CAAC;IACrD,QAAQ,CAAC,6BAA6B,EAAE,YAAY,CAAC;CACtD;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC;CACrC;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,UAAU,EAAE,OAAO,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IAC/C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,uBAAuB,EAAE,SAAS,8BAA8B,EAAE,CAAC;IAC5E,QAAQ,CAAC,QAAQ,EAAE,gCAAgC,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,+BAA+B,CAAC;CACnD;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,YAAY,CAAC;IACvC,QAAQ,CAAC,qBAAqB,EAAE,YAAY,CAAC;IAC7C,QAAQ,CAAC,6BAA6B,EAAE,YAAY,CAAC;IACrD,QAAQ,CAAC,iBAAiB,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACnE,QAAQ,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAClD,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;CACxC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,mBAAmB,EAAE,SAAS,OAAO,MAAM,EAAE,EAAE,CAAC;IACzD,QAAQ,CAAC,uBAAuB,EAAE,SAAS,8BAA8B,EAAE,CAAC;IAC5E,QAAQ,CAAC,QAAQ,EAAE,gCAAgC,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,+BAA+B,CAAC;CACnD"}
1
+ {"version":3,"file":"protobuf-release-evidence.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/contract-protobuf-evolution/application/model/protobuf-release-evidence.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate-protobuf-evolution.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/contract-protobuf-evolution/application/policies/evaluate-protobuf-evolution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAG1E,OAAO,KAAK,EAIV,uBAAuB,EAGxB,MAAM,uCAAuC,CAAC;AAkO/C,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,uBAAuB,GAC9B,SAAS,oBAAoB,EAAE,CAqIjC"}
1
+ {"version":3,"file":"evaluate-protobuf-evolution.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/contract-protobuf-evolution/application/policies/evaluate-protobuf-evolution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAG1E,OAAO,KAAK,EAIV,uBAAuB,EAGxB,MAAM,uCAAuC,CAAC;AA+N/C,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,uBAAuB,GAC9B,SAAS,oBAAoB,EAAE,CAqIjC"}
@@ -145,9 +145,6 @@ function assertReleasedEvidence(evidence) {
145
145
  assertGeneratorVersions(evidence.generatorVersions, "released.generatorVersions");
146
146
  }
147
147
  function assertCurrentEvidence(evidence) {
148
- if (evidence.schemaVersion !== 1) {
149
- inputError("Current Protobuf evidence has an unsupported schema version.");
150
- }
151
148
  if (!CONTRACT_ID.test(evidence.contractId)) {
152
149
  inputError("Current Protobuf evidence contractId is invalid.");
153
150
  }