@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
@@ -0,0 +1,161 @@
1
+ import { lstat, opendir, realpath } from "node:fs/promises";
2
+ import { isAbsolute, relative, resolve, sep } from "node:path";
3
+ import { sha256Json } from "../../kernel/canonical-json.js";
4
+ import { ScaffoldError } from "../../scaffold-error.js";
5
+ import { pathTraversesSymbolicLink } from "../../../filesystem-path-safety.js";
6
+ import { assertRepositoryRelativePath, parseStrictYamlSource } from "../../../strict-yaml.js";
7
+ import { readContainedRepositoryFile } from "./node-repository-file.js";
8
+ import { ScaffoldAuthorityStaleError } from "./node-authority-error.js";
9
+ const MAX_AUTHORITY_DOCUMENTS = 4096;
10
+ const MAX_AUTHORITY_DOCUMENT_ENTRIES = 16_384;
11
+ const MAX_AUTHORITY_DOCUMENT_DEPTH = 32;
12
+ const MAX_AUTHORITY_METADATA_LENGTH = 160;
13
+ const OWNER_DOCUMENT_ID_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._/-]*$/u;
14
+ const OWNER_DOCUMENT_STATUS_PATTERN = /^[a-z0-9][a-z0-9._/-]*$/u;
15
+ function isRecord(value) {
16
+ return typeof value === "object" && value !== null && !Array.isArray(value);
17
+ }
18
+ function isContained(root, candidate) {
19
+ const relation = relative(root, candidate);
20
+ return (relation === "" ||
21
+ (!relation.startsWith(`..${sep}`) &&
22
+ relation !== ".." &&
23
+ !isAbsolute(relation)));
24
+ }
25
+ function compareStrings(left, right) {
26
+ return left < right ? -1 : left > right ? 1 : 0;
27
+ }
28
+ function parseOwnerFrontmatter(source) {
29
+ const normalized = source.replace(/\r\n?/gu, "\n");
30
+ if (!normalized.startsWith("---\n")) {
31
+ throw new ScaffoldError("SCAFFOLD_INPUT_INVALID", "Authority documents must start with strict YAML frontmatter.");
32
+ }
33
+ const end = normalized.indexOf("\n---\n", 4);
34
+ if (end === -1) {
35
+ throw new ScaffoldError("SCAFFOLD_INPUT_INVALID", "Authority document YAML frontmatter must have a closing delimiter.");
36
+ }
37
+ const parsed = parseStrictYamlSource(normalized.slice(4, end), "scaffold-owner-document");
38
+ if (!isRecord(parsed) ||
39
+ typeof parsed.id !== "string" ||
40
+ typeof parsed.status !== "string" ||
41
+ parsed.id.length > MAX_AUTHORITY_METADATA_LENGTH ||
42
+ parsed.status.length > MAX_AUTHORITY_METADATA_LENGTH ||
43
+ !OWNER_DOCUMENT_ID_PATTERN.test(parsed.id) ||
44
+ !OWNER_DOCUMENT_STATUS_PATTERN.test(parsed.status)) {
45
+ throw new ScaffoldError("SCAFFOLD_INPUT_INVALID", "Authority document frontmatter must contain normalized id and status strings.");
46
+ }
47
+ return Object.freeze({ id: parsed.id, status: parsed.status });
48
+ }
49
+ async function listMarkdownFilesInRoot(options) {
50
+ assertRepositoryRelativePath(options.documentRoot, "scaffold-owner-document-root");
51
+ const absoluteRoot = resolve(options.canonicalConsumerRoot, options.documentRoot);
52
+ if ((await pathTraversesSymbolicLink(options.canonicalConsumerRoot, absoluteRoot)) ||
53
+ !isContained(options.canonicalConsumerRoot, await realpath(absoluteRoot)) ||
54
+ !(await lstat(absoluteRoot)).isDirectory()) {
55
+ throw new ScaffoldError("SCAFFOLD_INPUT_INVALID", `Authority document root must be a contained regular directory: ${options.documentRoot}.`);
56
+ }
57
+ const paths = [];
58
+ const walk = async (absoluteDirectory, repositoryDirectory, depth) => {
59
+ if (depth > MAX_AUTHORITY_DOCUMENT_DEPTH) {
60
+ throw new ScaffoldError("SCAFFOLD_INPUT_INVALID", `Authority document roots cannot exceed ${MAX_AUTHORITY_DOCUMENT_DEPTH} directory levels.`);
61
+ }
62
+ const entries = [];
63
+ const directory = await opendir(absoluteDirectory);
64
+ for await (const entry of directory) {
65
+ options.budget.entriesVisited += 1;
66
+ if (options.budget.entriesVisited > MAX_AUTHORITY_DOCUMENT_ENTRIES) {
67
+ throw new ScaffoldError("SCAFFOLD_INPUT_INVALID", `Authority document roots cannot contain more than ${MAX_AUTHORITY_DOCUMENT_ENTRIES} entries.`);
68
+ }
69
+ entries.push(entry);
70
+ }
71
+ entries.sort((left, right) => compareStrings(left.name, right.name));
72
+ for (const entry of entries) {
73
+ const repositoryPath = `${repositoryDirectory}/${entry.name}`;
74
+ const absolutePath = resolve(absoluteDirectory, entry.name);
75
+ if (entry.isSymbolicLink()) {
76
+ throw new ScaffoldError("SCAFFOLD_INPUT_INVALID", `Authority document roots cannot contain symbolic links: ${repositoryPath}.`);
77
+ }
78
+ if (entry.isDirectory()) {
79
+ await walk(absolutePath, repositoryPath, depth + 1);
80
+ }
81
+ else if (entry.isFile() && entry.name.endsWith(".md")) {
82
+ options.budget.documentsVisited += 1;
83
+ if (options.budget.documentsVisited > MAX_AUTHORITY_DOCUMENTS) {
84
+ throw new ScaffoldError("SCAFFOLD_INPUT_INVALID", `Authority document roots cannot contain more than ${MAX_AUTHORITY_DOCUMENTS} Markdown files.`);
85
+ }
86
+ paths.push(repositoryPath);
87
+ }
88
+ else if (!entry.isFile()) {
89
+ throw new ScaffoldError("SCAFFOLD_INPUT_INVALID", `Authority document roots may contain only regular files and directories: ${repositoryPath}.`);
90
+ }
91
+ }
92
+ };
93
+ await walk(absoluteRoot, options.documentRoot, 0);
94
+ return Object.freeze(paths);
95
+ }
96
+ async function listAuthorityDocumentPaths(consumerRoot, documentRoots) {
97
+ try {
98
+ const normalizedRoots = documentRoots
99
+ .map((documentRoot) => documentRoot.toLowerCase())
100
+ .toSorted(compareStrings);
101
+ for (const [index, root] of normalizedRoots.entries()) {
102
+ for (const candidate of normalizedRoots.slice(index + 1)) {
103
+ if (root === candidate ||
104
+ root.startsWith(`${candidate}/`) ||
105
+ candidate.startsWith(`${root}/`)) {
106
+ throw new ScaffoldError("SCAFFOLD_INPUT_INVALID", "Authority document roots cannot overlap or differ only by case.");
107
+ }
108
+ }
109
+ }
110
+ const canonicalConsumerRoot = await realpath(consumerRoot);
111
+ const budget = { entriesVisited: 0, documentsVisited: 0 };
112
+ const paths = [];
113
+ for (const documentRoot of documentRoots.toSorted(compareStrings)) {
114
+ paths.push(...(await listMarkdownFilesInRoot({
115
+ canonicalConsumerRoot,
116
+ documentRoot,
117
+ budget
118
+ })));
119
+ }
120
+ paths.sort(compareStrings);
121
+ const exact = new Set(paths);
122
+ const caseFolded = new Set(paths.map((path) => path.toLowerCase()));
123
+ if (exact.size !== paths.length || caseFolded.size !== paths.length) {
124
+ throw new ScaffoldError("SCAFFOLD_INPUT_INVALID", "Authority document roots overlap or contain case-folding path collisions.");
125
+ }
126
+ return Object.freeze(paths);
127
+ }
128
+ catch (error) {
129
+ if (error instanceof ScaffoldError) {
130
+ throw error;
131
+ }
132
+ throw new ScaffoldError("SCAFFOLD_INPUT_INVALID", "Cannot index configured authority document roots.", [], { cause: error });
133
+ }
134
+ }
135
+ export async function resolveOwnerDocument(options) {
136
+ if (!OWNER_DOCUMENT_ID_PATTERN.test(options.ownerDocumentId)) {
137
+ throw new ScaffoldError("SCAFFOLD_INPUT_INVALID", "Owner document ID must be a normalized authority identifier.");
138
+ }
139
+ const paths = await listAuthorityDocumentPaths(options.consumerRoot, options.documentRoots);
140
+ const index = [];
141
+ const matches = [];
142
+ for (const path of paths) {
143
+ const file = await readContainedRepositoryFile(options.consumerRoot, path, "scaffold-owner-document");
144
+ const metadata = parseOwnerFrontmatter(file.source);
145
+ index.push({ path: file.path, id: metadata.id, status: metadata.status });
146
+ if (metadata.id === options.ownerDocumentId) {
147
+ matches.push({ file, metadata });
148
+ }
149
+ }
150
+ if (matches.length !== 1) {
151
+ throw new ScaffoldAuthorityStaleError(`Owner document must resolve exactly once from configured roots: ${options.ownerDocumentId}.`);
152
+ }
153
+ const selected = matches[0];
154
+ const indexDigest = sha256Json(index);
155
+ return Object.freeze({
156
+ ...selected.metadata,
157
+ file: selected.file,
158
+ indexDigest
159
+ });
160
+ }
161
+ //# sourceMappingURL=node-owner-document-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-owner-document-resolver.js","sourceRoot":"","sources":["../../../../src/scaffolding/adapters/node/node-owner-document-resolver.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,15 @@
1
- import type { ScaffoldPlanV1 } from "../../contract/types.js";
2
- export declare function assertPlanMatchesConsumerAuthority(consumerRoot: string, plan: ScaffoldPlanV1): Promise<void>;
1
+ import type { AuthorityScaffoldPlan } from "../../contract/types.js";
2
+ import { type ScaffoldAuthorityInputFaultInjector } from "./node-authority-input-loader.js";
3
+ export type ScaffoldAuthorityAssessment = {
4
+ readonly state: "current";
5
+ } | {
6
+ readonly state: "stale";
7
+ } | {
8
+ readonly state: "unverifiable";
9
+ };
10
+ /**
11
+ * A source-bound authority change is stale only when the closed compiler can prove it.
12
+ * Input, parser, and filesystem failures are deliberately kept unverifiable.
13
+ */
14
+ export declare function assessScaffoldPlanAuthority(consumerRoot: string, plan: AuthorityScaffoldPlan, faultInjector?: ScaffoldAuthorityInputFaultInjector): Promise<ScaffoldAuthorityAssessment>;
3
15
  //# sourceMappingURL=node-plan-authority.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-plan-authority.d.ts","sourceRoot":"","sources":["../../../../src/scaffolding/adapters/node/node-plan-authority.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAO9D,wBAAsB,kCAAkC,CACtD,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC,CAcf"}
1
+ {"version":3,"file":"node-plan-authority.d.ts","sourceRoot":"","sources":["../../../../src/scaffolding/adapters/node/node-plan-authority.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAKrE,OAAO,EAEL,KAAK,mCAAmC,EACzC,MAAM,kCAAkC,CAAC;AAE1C,MAAM,MAAM,2BAA2B,GACnC;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC;AA2BvC;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,qBAAqB,EAC3B,aAAa,CAAC,EAAE,mCAAmC,GAClD,OAAO,CAAC,2BAA2B,CAAC,CAgBtC"}
@@ -1,18 +1,37 @@
1
- import { createDefaultScaffoldRegistry } from "../../definitions/registry.js";
2
- import { compileScaffoldPlan } from "../../kernel/compiler.js";
3
- import { ScaffoldError } from "../../scaffold-error.js";
1
+ import { createAuthorityScaffoldRegistry } from "../../definitions/registry.js";
2
+ import { compileAuthorityScaffoldPlan } from "../../kernel/authority-compiler.js";
4
3
  import { installedFoundationVersion } from "./installed-foundation-version.js";
5
- import { loadScaffoldCompilationInputFromIntent } from "./node-input-loader.js";
6
- export async function assertPlanMatchesConsumerAuthority(consumerRoot, plan) {
7
- const input = await loadScaffoldCompilationInputFromIntent({
4
+ import { ScaffoldAuthorityStaleError } from "./node-authority-error.js";
5
+ import { loadAuthorityScaffoldCompilationInputFromIntent } from "./node-authority-input-loader.js";
6
+ async function assertPlanMatchesConsumerAuthority(consumerRoot, plan, authorityFaultInjector) {
7
+ const input = await loadAuthorityScaffoldCompilationInputFromIntent({
8
8
  consumerRoot,
9
9
  configPath: plan.authority.configPath,
10
10
  foundationVersion: await installedFoundationVersion(),
11
- intent: plan.intent
11
+ intent: plan.intent,
12
+ ...(authorityFaultInjector === undefined
13
+ ? {}
14
+ : { faultInjector: authorityFaultInjector })
12
15
  });
13
- const expected = compileScaffoldPlan(input, createDefaultScaffoldRegistry());
16
+ const expected = compileAuthorityScaffoldPlan(input, createAuthorityScaffoldRegistry());
14
17
  if (expected.planDigest !== plan.planDigest) {
15
- throw new ScaffoldError("SCAFFOLD_PLAN_INVALID", "Scaffolding Plan was not produced by the closed compiler from current consumer authority.");
18
+ throw new ScaffoldAuthorityStaleError("Scaffolding Plan was not produced by the closed compiler from current consumer authority.");
19
+ }
20
+ }
21
+ /**
22
+ * A source-bound authority change is stale only when the closed compiler can prove it.
23
+ * Input, parser, and filesystem failures are deliberately kept unverifiable.
24
+ */
25
+ export async function assessScaffoldPlanAuthority(consumerRoot, plan, faultInjector) {
26
+ try {
27
+ await assertPlanMatchesConsumerAuthority(consumerRoot, plan, faultInjector);
28
+ return { state: "current" };
29
+ }
30
+ catch (error) {
31
+ if (error instanceof ScaffoldAuthorityStaleError) {
32
+ return { state: "stale" };
33
+ }
34
+ return { state: "unverifiable" };
16
35
  }
17
36
  }
18
37
  //# sourceMappingURL=node-plan-authority.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-plan-authority.js","sourceRoot":"","sources":["../../../../src/scaffolding/adapters/node/node-plan-authority.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,sCAAsC,EAAE,MAAM,wBAAwB,CAAC;AAEhF,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,YAAoB,EACpB,IAAoB;IAEpB,MAAM,KAAK,GAAG,MAAM,sCAAsC,CAAC;QACzD,YAAY;QACZ,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU;QACrC,iBAAiB,EAAE,MAAM,0BAA0B,EAAE;QACrD,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAC;IAC7E,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,IAAI,aAAa,CACrB,uBAAuB,EACvB,2FAA2F,CAC5F,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"node-plan-authority.js","sourceRoot":"","sources":["../../../../src/scaffolding/adapters/node/node-plan-authority.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EACL,+CAA+C,EAEhD,MAAM,kCAAkC,CAAC;AAO1C,KAAK,UAAU,kCAAkC,CAC/C,YAAoB,EACpB,IAA2B,EAC3B,sBAA4D;IAE5D,MAAM,KAAK,GAAG,MAAM,+CAA+C,CAAC;QAClE,YAAY;QACZ,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU;QACrC,iBAAiB,EAAE,MAAM,0BAA0B,EAAE;QACrD,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,GAAG,CAAC,sBAAsB,KAAK,SAAS;YACtC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,aAAa,EAAE,sBAAsB,EAAE,CAAC;KAC/C,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,4BAA4B,CAC3C,KAAK,EACL,+BAA+B,EAAE,CAClC,CAAC;IACF,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,IAAI,2BAA2B,CACnC,2FAA2F,CAC5F,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,YAAoB,EACpB,IAA2B,EAC3B,aAAmD;IAEnD,IAAI,CAAC;QACH,MAAM,kCAAkC,CACtC,YAAY,EACZ,IAAI,EACJ,aAAa,CACd,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IACE,KAAK,YAAY,2BAA2B,EAC5C,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC5B,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IACnC,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ScaffoldReadAssertionV1 } from "../../contract/types.js";
2
+ export interface LoadedRepositoryFile {
3
+ readonly path: string;
4
+ readonly bytes: Uint8Array;
5
+ readonly source: string;
6
+ }
7
+ export declare function readContainedRepositoryFile(consumerRoot: string, repositoryPath: string, phase: string, maxBytes?: number): Promise<LoadedRepositoryFile>;
8
+ export declare function assertion(file: LoadedRepositoryFile): ScaffoldReadAssertionV1;
9
+ //# sourceMappingURL=node-repository-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-repository-file.d.ts","sourceRoot":"","sources":["../../../../src/scaffolding/adapters/node/node-repository-file.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AASvE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAuBD,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,QAAQ,SAAkB,GACzB,OAAO,CAAC,oBAAoB,CAAC,CAmD/B;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,oBAAoB,GAAG,uBAAuB,CAW7E"}
@@ -0,0 +1,65 @@
1
+ import { realpath } from "node:fs/promises";
2
+ import { isAbsolute, relative, resolve, sep } from "node:path";
3
+ import { sha256Bytes } from "../../kernel/canonical-json.js";
4
+ import { ScaffoldError } from "../../scaffold-error.js";
5
+ import { pathTraversesSymbolicLink } from "../../../filesystem-path-safety.js";
6
+ import { assertRepositoryRelativePath } from "../../../strict-yaml.js";
7
+ import { readBoundedRegularFile } from "./filesystem-file-identity.js";
8
+ const MAX_INPUT_BYTES = 1024 * 1024;
9
+ function isContained(root, candidate) {
10
+ const relation = relative(root, candidate);
11
+ return (relation === "" ||
12
+ (!relation.startsWith(`..${sep}`) && relation !== ".." && !isAbsolute(relation)));
13
+ }
14
+ function decodeUtf8(bytes, repositoryPath) {
15
+ try {
16
+ return new TextDecoder("utf-8", { fatal: true, ignoreBOM: true }).decode(bytes);
17
+ }
18
+ catch (error) {
19
+ throw new ScaffoldError("SCAFFOLD_INPUT_INVALID", `Scaffolding input must contain valid UTF-8: ${repositoryPath}.`, [], { cause: error });
20
+ }
21
+ }
22
+ export async function readContainedRepositoryFile(consumerRoot, repositoryPath, phase, maxBytes = MAX_INPUT_BYTES) {
23
+ try {
24
+ assertRepositoryRelativePath(repositoryPath, phase);
25
+ const canonicalRoot = await realpath(consumerRoot);
26
+ const candidate = resolve(canonicalRoot, repositoryPath);
27
+ if (await pathTraversesSymbolicLink(canonicalRoot, candidate)) {
28
+ throw new ScaffoldError("SCAFFOLD_INPUT_INVALID", `Scaffolding input cannot traverse a symbolic link: ${repositoryPath}.`);
29
+ }
30
+ const canonicalCandidate = await realpath(candidate);
31
+ if (!isContained(canonicalRoot, canonicalCandidate)) {
32
+ throw new ScaffoldError("SCAFFOLD_INPUT_INVALID", `Scaffolding input escapes the consumer repository: ${repositoryPath}.`);
33
+ }
34
+ const result = await readBoundedRegularFile(canonicalCandidate, maxBytes);
35
+ if (result.outcome === "invalid") {
36
+ throw new ScaffoldError("SCAFFOLD_INPUT_INVALID", `Scaffolding input must be a regular file no larger than ${maxBytes} bytes: ${repositoryPath}.`);
37
+ }
38
+ if (result.outcome === "changed" ||
39
+ (await realpath(candidate)) !== canonicalCandidate ||
40
+ (await pathTraversesSymbolicLink(canonicalRoot, candidate))) {
41
+ throw new ScaffoldError("SCAFFOLD_INPUT_INVALID", `Scaffolding input changed while it was being read: ${repositoryPath}.`);
42
+ }
43
+ return {
44
+ path: repositoryPath,
45
+ bytes: result.bytes,
46
+ source: decodeUtf8(result.bytes, repositoryPath)
47
+ };
48
+ }
49
+ catch (error) {
50
+ if (error instanceof ScaffoldError) {
51
+ throw error;
52
+ }
53
+ throw new ScaffoldError("SCAFFOLD_INPUT_INVALID", `Cannot read scaffolding input: ${repositoryPath}.`, [], { cause: error });
54
+ }
55
+ }
56
+ export function assertion(file) {
57
+ const canonicalBytes = Buffer.from(file.source.replace(/\r\n?/gu, "\n"), "utf8");
58
+ return Object.freeze({
59
+ path: file.path,
60
+ state: "file",
61
+ digest: sha256Bytes(canonicalBytes),
62
+ size: canonicalBytes.byteLength
63
+ });
64
+ }
65
+ //# sourceMappingURL=node-repository-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-repository-file.js","sourceRoot":"","sources":["../../../../src/scaffolding/adapters/node/node-repository-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;AAQpC,SAAS,WAAW,CAAC,IAAY,EAAE,SAAiB;IAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,OAAO,CACL,QAAQ,KAAK,EAAE;QACf,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CACjF,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAiB,EAAE,cAAsB;IAC3D,IAAI,CAAC;QACH,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,aAAa,CACrB,wBAAwB,EACxB,+CAA+C,cAAc,GAAG,EAChE,EAAE,EACF,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,YAAoB,EACpB,cAAsB,EACtB,KAAa,EACb,QAAQ,GAAG,eAAe;IAE1B,IAAI,CAAC;QACH,4BAA4B,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACzD,IAAI,MAAM,yBAAyB,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,aAAa,CACrB,wBAAwB,EACxB,sDAAsD,cAAc,GAAG,CACxE,CAAC;QACJ,CAAC;QACD,MAAM,kBAAkB,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,kBAAkB,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,aAAa,CACrB,wBAAwB,EACxB,sDAAsD,cAAc,GAAG,CACxE,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;QAC1E,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,aAAa,CACrB,wBAAwB,EACxB,2DAA2D,QAAQ,WAAW,cAAc,GAAG,CAChG,CAAC;QACJ,CAAC;QACD,IACE,MAAM,CAAC,OAAO,KAAK,SAAS;YAC5B,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,kBAAkB;YAClD,CAAC,MAAM,yBAAyB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,EAC3D,CAAC;YACD,MAAM,IAAI,aAAa,CACrB,wBAAwB,EACxB,sDAAsD,cAAc,GAAG,CACxE,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC;SACjD,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;YACnC,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,IAAI,aAAa,CACrB,wBAAwB,EACxB,kCAAkC,cAAc,GAAG,EACnD,EAAE,EACF,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAA0B;IAClD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAChC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,EACpC,MAAM,CACP,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,MAAe;QACtB,MAAM,EAAE,WAAW,CAAC,cAAc,CAAC;QACnC,IAAI,EAAE,cAAc,CAAC,UAAU;KAChC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const MAX_SCAFFOLD_PLAN_BYTES: number;
2
+ //# sourceMappingURL=node-scaffold-limits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-scaffold-limits.d.ts","sourceRoot":"","sources":["../../../../src/scaffolding/adapters/node/node-scaffold-limits.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,QAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const MAX_SCAFFOLD_PLAN_BYTES = 32 * 1024 * 1024;
2
+ //# sourceMappingURL=node-scaffold-limits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-scaffold-limits.js","sourceRoot":"","sources":["../../../../src/scaffolding/adapters/node/node-scaffold-limits.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { AuthorityScaffoldPlan } from "./contract/types.js";
2
+ export declare function planAuthorityScaffoldFromFile(options: {
3
+ readonly consumerRoot: string;
4
+ readonly intentPath: string;
5
+ readonly configPath?: string;
6
+ }): Promise<AuthorityScaffoldPlan>;
7
+ //# sourceMappingURL=authority-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authority-service.d.ts","sourceRoot":"","sources":["../../src/scaffolding/authority-service.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAKjE,wBAAsB,6BAA6B,CAAC,OAAO,EAAE;IAC3D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAQjC"}
@@ -0,0 +1,15 @@
1
+ import { loadAuthorityScaffoldCompilationInputFromFile } from "./adapters/node/node-authority-input-loader.js";
2
+ import { installedFoundationVersion } from "./adapters/node/installed-foundation-version.js";
3
+ import { createAuthorityScaffoldRegistry } from "./definitions/registry.js";
4
+ import { compileAuthorityScaffoldPlan } from "./kernel/authority-compiler.js";
5
+ import { DEFAULT_SCAFFOLDING_CONFIG_PATH } from "./scaffold-defaults.js";
6
+ export async function planAuthorityScaffoldFromFile(options) {
7
+ const input = await loadAuthorityScaffoldCompilationInputFromFile({
8
+ consumerRoot: options.consumerRoot,
9
+ configPath: options.configPath ?? DEFAULT_SCAFFOLDING_CONFIG_PATH,
10
+ intentPath: options.intentPath,
11
+ foundationVersion: await installedFoundationVersion()
12
+ });
13
+ return compileAuthorityScaffoldPlan(input, createAuthorityScaffoldRegistry());
14
+ }
15
+ //# sourceMappingURL=authority-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authority-service.js","sourceRoot":"","sources":["../../src/scaffolding/authority-service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6CAA6C,EAC9C,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAE7F,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AAEzE,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,OAInD;IACC,MAAM,KAAK,GAAG,MAAM,6CAA6C,CAAC;QAChE,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,+BAA+B;QACjE,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,iBAAiB,EAAE,MAAM,0BAA0B,EAAE;KACtD,CAAC,CAAC;IACH,OAAO,4BAA4B,CAAC,KAAK,EAAE,+BAA+B,EAAE,CAAC,CAAC;AAChF,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { ScaffoldAuthorityEvidence, ScaffoldPlan, ScaffoldReceipt } from "./contract/scaffold-contract.js";
2
+ export declare function planScaffoldFromFile(options: {
3
+ readonly consumerRoot: string;
4
+ readonly intentPath: string;
5
+ readonly configPath?: string;
6
+ }): Promise<ScaffoldPlan>;
7
+ export declare function applyFilesystemScaffold(consumerRoot: string, plan: ScaffoldPlan): Promise<ScaffoldReceipt>;
8
+ export declare function recoverFilesystemScaffold(consumerRoot: string): Promise<ScaffoldReceipt | undefined>;
9
+ export declare function readScaffoldPlanFile(consumerRoot: string, planPath: string): Promise<ScaffoldPlan>;
10
+ export declare function validateScaffoldReceipt(receipt: unknown, plan?: ScaffoldPlan): Promise<ScaffoldReceipt>;
11
+ export declare function assertScaffoldPlanDigest(plan: ScaffoldPlan): void;
12
+ export declare function assertScaffoldReceiptDigest(receipt: ScaffoldReceipt, plan?: ScaffoldPlan): void;
13
+ export declare function assertScaffoldAuthorityEvidenceDigest(evidence: ScaffoldAuthorityEvidence): void;
14
+ //# sourceMappingURL=canonical-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical-api.d.ts","sourceRoot":"","sources":["../../src/scaffolding/canonical-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,YAAY,EACZ,eAAe,EAChB,MAAM,iCAAiC,CAAC;AAczC,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,GAAG,OAAO,CAAC,YAAY,CAAC,CAExB;AAED,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,eAAe,CAAC,CAE1B;AAED,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAEtC;AAED,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,CAAC,CAEvB;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,YAAY,GAClB,OAAO,CAAC,eAAe,CAAC,CAE1B;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAEjE;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,eAAe,EACxB,IAAI,CAAC,EAAE,YAAY,GAClB,IAAI,CAEN;AAED,wBAAgB,qCAAqC,CACnD,QAAQ,EAAE,yBAAyB,GAClC,IAAI,CAEN"}
@@ -0,0 +1,32 @@
1
+ import { applyAuthorityFilesystemScaffold, recoverAuthorityFilesystemScaffold } from "./adapters/node/filesystem-authority-workspace.js";
2
+ import { readAuthorityScaffoldPlanFile } from "./adapters/node/node-authority-input-loader.js";
3
+ import { validateAuthorityScaffoldReceipt } from "./adapters/node/node-authority-receipt-validator.js";
4
+ import { assertScaffoldAuthorityEvidenceDigest as assertAuthorityEvidenceDigest } from "./kernel/authority-evidence.js";
5
+ import { assertAuthorityScaffoldPlanDigest } from "./kernel/plan-validation.js";
6
+ import { assertAuthorityScaffoldReceiptDigest } from "./kernel/authority-receipt.js";
7
+ import { planAuthorityScaffoldFromFile } from "./authority-service.js";
8
+ export async function planScaffoldFromFile(options) {
9
+ return planAuthorityScaffoldFromFile(options);
10
+ }
11
+ export async function applyFilesystemScaffold(consumerRoot, plan) {
12
+ return applyAuthorityFilesystemScaffold(consumerRoot, plan);
13
+ }
14
+ export async function recoverFilesystemScaffold(consumerRoot) {
15
+ return recoverAuthorityFilesystemScaffold(consumerRoot);
16
+ }
17
+ export async function readScaffoldPlanFile(consumerRoot, planPath) {
18
+ return readAuthorityScaffoldPlanFile(consumerRoot, planPath);
19
+ }
20
+ export async function validateScaffoldReceipt(receipt, plan) {
21
+ return validateAuthorityScaffoldReceipt(receipt, plan);
22
+ }
23
+ export function assertScaffoldPlanDigest(plan) {
24
+ assertAuthorityScaffoldPlanDigest(plan);
25
+ }
26
+ export function assertScaffoldReceiptDigest(receipt, plan) {
27
+ assertAuthorityScaffoldReceiptDigest(receipt, plan);
28
+ }
29
+ export function assertScaffoldAuthorityEvidenceDigest(evidence) {
30
+ assertAuthorityEvidenceDigest(evidence);
31
+ }
32
+ //# sourceMappingURL=canonical-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical-api.js","sourceRoot":"","sources":["../../src/scaffolding/canonical-api.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,gCAAgC,EAChC,kCAAkC,EACnC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,6BAA6B,EAAE,MAAM,gDAAgD,CAAC;AAC/F,OAAO,EAAE,gCAAgC,EAAE,MAAM,qDAAqD,CAAC;AACvG,OAAO,EACL,qCAAqC,IAAI,6BAA6B,EACvE,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAE,oCAAoC,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAEvE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAI1C;IACC,OAAO,6BAA6B,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,YAAoB,EACpB,IAAkB;IAElB,OAAO,gCAAgC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,YAAoB;IAEpB,OAAO,kCAAkC,CAAC,YAAY,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,YAAoB,EACpB,QAAgB;IAEhB,OAAO,6BAA6B,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAgB,EAChB,IAAmB;IAEnB,OAAO,gCAAgC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAkB;IACzD,iCAAiC,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,OAAwB,EACxB,IAAmB;IAEnB,oCAAoC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,QAAmC;IAEnC,6BAA6B,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli-command.d.ts","sourceRoot":"","sources":["../../src/scaffolding/cli-command.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAkBD,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,oBAAoB,EAC5B,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,OAAO,CAAC,CAuDlB"}
1
+ {"version":3,"file":"cli-command.d.ts","sourceRoot":"","sources":["../../src/scaffolding/cli-command.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAkBD,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,oBAAoB,EAC5B,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,OAAO,CAAC,CAuDlB"}
@@ -1,6 +1,5 @@
1
- import { applyFilesystemScaffold, readScaffoldPlanFile, recoverFilesystemScaffold } from "./index.js";
1
+ import { applyFilesystemScaffold, planScaffoldFromFile, readScaffoldPlanFile, recoverFilesystemScaffold } from "./canonical-api.js";
2
2
  import { ScaffoldError } from "./scaffold-error.js";
3
- import { planScaffoldFromFile } from "./service.js";
4
3
  function renderPlan(plan) {
5
4
  return `Scaffold Plan: ${plan.planDigest}\nProject: ${plan.projectId}\nComposition: ${plan.composition.id}\nTarget: ${plan.target.id} -> ${plan.target.path}\nOperations: ${plan.operations.length}\n`;
6
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cli-command.js","sourceRoot":"","sources":["../../src/scaffolding/cli-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-command.js","sourceRoot":"","sources":["../../src/scaffolding/cli-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ import type { ScaffoldDiagnosticV1, AuthorityScaffoldOperationReceipt, Sha256Digest } from "./types.js";
2
+ interface AuthorityScaffoldReceiptCommon {
3
+ readonly schemaVersion: 1;
4
+ readonly protocolVersion: 1;
5
+ readonly planDigest: Sha256Digest;
6
+ readonly adapter: {
7
+ readonly id: "foundation.filesystem/v1";
8
+ readonly contractVersion: 1;
9
+ };
10
+ readonly diagnostics: readonly ScaffoldDiagnosticV1[];
11
+ readonly receiptDigest: Sha256Digest;
12
+ }
13
+ type AuthorityAppliedOperationReceipt = AuthorityScaffoldOperationReceipt & {
14
+ readonly outcome: "applied";
15
+ readonly resultDigest: Sha256Digest;
16
+ };
17
+ type AuthoritySatisfiedOperationReceipt = AuthorityScaffoldOperationReceipt & {
18
+ readonly outcome: "already-satisfied" | "applied";
19
+ readonly resultDigest: Sha256Digest;
20
+ };
21
+ export type AuthorityScaffoldReceipt = (AuthorityScaffoldReceiptCommon & {
22
+ readonly outcome: "applied";
23
+ readonly commit: {
24
+ readonly state: "committed";
25
+ readonly atomicity: "journaled-recoverable";
26
+ };
27
+ readonly operations: readonly [
28
+ AuthorityAppliedOperationReceipt,
29
+ ...AuthoritySatisfiedOperationReceipt[]
30
+ ];
31
+ }) | (AuthorityScaffoldReceiptCommon & {
32
+ readonly outcome: "already-applied";
33
+ readonly commit: {
34
+ readonly state: "committed";
35
+ readonly atomicity: "journaled-recoverable";
36
+ };
37
+ readonly operations: readonly [
38
+ AuthorityScaffoldOperationReceipt & {
39
+ readonly outcome: "already-satisfied";
40
+ readonly resultDigest: Sha256Digest;
41
+ },
42
+ ...(AuthorityScaffoldOperationReceipt & {
43
+ readonly outcome: "already-satisfied";
44
+ readonly resultDigest: Sha256Digest;
45
+ })[]
46
+ ];
47
+ }) | (AuthorityScaffoldReceiptCommon & {
48
+ readonly outcome: "failed-recovered";
49
+ readonly commit: {
50
+ readonly state: "recovered";
51
+ readonly atomicity: "journaled-recoverable";
52
+ };
53
+ readonly operations: readonly [
54
+ AuthorityScaffoldOperationReceipt & {
55
+ readonly outcome: "already-satisfied" | "recovered";
56
+ readonly resultDigest: Sha256Digest;
57
+ },
58
+ ...(AuthorityScaffoldOperationReceipt & {
59
+ readonly outcome: "already-satisfied" | "recovered";
60
+ readonly resultDigest: Sha256Digest;
61
+ })[]
62
+ ];
63
+ }) | (AuthorityScaffoldReceiptCommon & {
64
+ readonly outcome: "recovery-required";
65
+ readonly commit: {
66
+ readonly state: "recovery-required";
67
+ readonly atomicity: "journaled-recoverable";
68
+ };
69
+ readonly operations: readonly [
70
+ (AuthorityScaffoldOperationReceipt & {
71
+ readonly outcome: "already-satisfied";
72
+ readonly resultDigest: Sha256Digest;
73
+ }) | (AuthorityScaffoldOperationReceipt & {
74
+ readonly outcome: "conflict" | "not-applied" | "unobserved";
75
+ readonly resultDigest?: never;
76
+ }),
77
+ ...((AuthorityScaffoldOperationReceipt & {
78
+ readonly outcome: "already-satisfied";
79
+ readonly resultDigest: Sha256Digest;
80
+ }) | (AuthorityScaffoldOperationReceipt & {
81
+ readonly outcome: "conflict" | "not-applied" | "unobserved";
82
+ readonly resultDigest?: never;
83
+ }))[]
84
+ ];
85
+ }) | (AuthorityScaffoldReceiptCommon & {
86
+ readonly outcome: "rejected";
87
+ readonly commit: {
88
+ readonly state: "rejected";
89
+ readonly atomicity: "journaled-recoverable";
90
+ };
91
+ readonly operations: readonly [
92
+ (AuthorityScaffoldOperationReceipt & {
93
+ readonly outcome: "already-satisfied";
94
+ readonly resultDigest: Sha256Digest;
95
+ }) | (AuthorityScaffoldOperationReceipt & {
96
+ readonly outcome: "conflict" | "not-applied";
97
+ readonly resultDigest?: never;
98
+ }),
99
+ ...((AuthorityScaffoldOperationReceipt & {
100
+ readonly outcome: "already-satisfied";
101
+ readonly resultDigest: Sha256Digest;
102
+ }) | (AuthorityScaffoldOperationReceipt & {
103
+ readonly outcome: "conflict" | "not-applied";
104
+ readonly resultDigest?: never;
105
+ }))[]
106
+ ];
107
+ }) | (AuthorityScaffoldReceiptCommon & {
108
+ readonly outcome: "authority-stale";
109
+ readonly commit: {
110
+ readonly state: "rolled-back";
111
+ readonly atomicity: "journaled-recoverable";
112
+ };
113
+ readonly operations: readonly [
114
+ AuthorityScaffoldOperationReceipt & {
115
+ readonly outcome: "not-applied";
116
+ readonly resultDigest?: never;
117
+ },
118
+ ...(AuthorityScaffoldOperationReceipt & {
119
+ readonly outcome: "not-applied";
120
+ readonly resultDigest?: never;
121
+ })[]
122
+ ];
123
+ });
124
+ export {};
125
+ //# sourceMappingURL=receipt-authority-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receipt-authority-types.d.ts","sourceRoot":"","sources":["../../../src/scaffolding/contract/receipt-authority-types.ts"],"names":[],"mappings":"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"}