@agent-teams/docs-protocol-agent-teams 0.0.0 → 0.1.1

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 (195) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +27 -2
  3. package/assets/catalog.json +1 -1
  4. package/assets/history/sha256-8711dbd6109740857c69462d218071818317a62949f08ecf8abdc6d6b736321f/caller.yml +14 -0
  5. package/assets/history/sha256-f8da49344c3b0e9f31235de2826b1b9b392afb84515ace6af4fb5fe580e3a714/caller.yml +14 -0
  6. package/assets/transition-catalog.json +1 -1
  7. package/dist/composition/qualification-cli.d.ts.map +1 -1
  8. package/dist/composition/qualification-cli.js +19 -3
  9. package/dist/composition/qualification-cli.js.map +1 -1
  10. package/dist/consumer-integration/adapters/cohort-v2-authority-validator.d.ts +5 -0
  11. package/dist/consumer-integration/adapters/cohort-v2-authority-validator.d.ts.map +1 -0
  12. package/dist/consumer-integration/adapters/cohort-v2-authority-validator.js +361 -0
  13. package/dist/consumer-integration/adapters/cohort-v2-authority-validator.js.map +1 -0
  14. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.d.ts +1 -0
  15. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.d.ts.map +1 -1
  16. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.js +22 -4
  17. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.js.map +1 -1
  18. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.d.ts +40 -1
  19. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.d.ts.map +1 -1
  20. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.js +227 -0
  21. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.js.map +1 -1
  22. package/dist/consumer-integration/adapters/github-cohort-authority-reader.d.ts +17 -5
  23. package/dist/consumer-integration/adapters/github-cohort-authority-reader.d.ts.map +1 -1
  24. package/dist/consumer-integration/adapters/github-cohort-authority-reader.js +123 -16
  25. package/dist/consumer-integration/adapters/github-cohort-authority-reader.js.map +1 -1
  26. package/dist/consumer-integration/adapters/node-consumer-integration-repository.d.ts +2 -1
  27. package/dist/consumer-integration/adapters/node-consumer-integration-repository.d.ts.map +1 -1
  28. package/dist/consumer-integration/adapters/node-consumer-integration-repository.js +55 -16
  29. package/dist/consumer-integration/adapters/node-consumer-integration-repository.js.map +1 -1
  30. package/dist/consumer-integration/adapters/node-consumer-restoration-evidence.d.ts +38 -0
  31. package/dist/consumer-integration/adapters/node-consumer-restoration-evidence.d.ts.map +1 -0
  32. package/dist/consumer-integration/adapters/node-consumer-restoration-evidence.js +177 -0
  33. package/dist/consumer-integration/adapters/node-consumer-restoration-evidence.js.map +1 -0
  34. package/dist/consumer-integration/adapters/node-consumer-restoration-finalization.d.ts +10 -0
  35. package/dist/consumer-integration/adapters/node-consumer-restoration-finalization.d.ts.map +1 -0
  36. package/dist/consumer-integration/adapters/node-consumer-restoration-finalization.js +95 -0
  37. package/dist/consumer-integration/adapters/node-consumer-restoration-finalization.js.map +1 -0
  38. package/dist/consumer-integration/adapters/node-consumer-restoration-lock.d.ts +3 -0
  39. package/dist/consumer-integration/adapters/node-consumer-restoration-lock.d.ts.map +1 -0
  40. package/dist/consumer-integration/adapters/node-consumer-restoration-lock.js +104 -0
  41. package/dist/consumer-integration/adapters/node-consumer-restoration-lock.js.map +1 -0
  42. package/dist/consumer-integration/adapters/node-consumer-restoration-scope.d.ts +9 -0
  43. package/dist/consumer-integration/adapters/node-consumer-restoration-scope.d.ts.map +1 -0
  44. package/dist/consumer-integration/adapters/node-consumer-restoration-scope.js +71 -0
  45. package/dist/consumer-integration/adapters/node-consumer-restoration-scope.js.map +1 -0
  46. package/dist/consumer-integration/adapters/node-consumer-restoration-selection.d.ts +9 -0
  47. package/dist/consumer-integration/adapters/node-consumer-restoration-selection.d.ts.map +1 -0
  48. package/dist/consumer-integration/adapters/node-consumer-restoration-selection.js +35 -0
  49. package/dist/consumer-integration/adapters/node-consumer-restoration-selection.js.map +1 -0
  50. package/dist/consumer-integration/adapters/node-consumer-restoration.d.ts +12 -0
  51. package/dist/consumer-integration/adapters/node-consumer-restoration.d.ts.map +1 -0
  52. package/dist/consumer-integration/adapters/node-consumer-restoration.js +102 -0
  53. package/dist/consumer-integration/adapters/node-consumer-restoration.js.map +1 -0
  54. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.d.ts +33 -5
  55. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.d.ts.map +1 -1
  56. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.js +111 -106
  57. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.js.map +1 -1
  58. package/dist/consumer-integration/adapters/node-consumer-upgrade-source-proof.d.ts +20 -0
  59. package/dist/consumer-integration/adapters/node-consumer-upgrade-source-proof.d.ts.map +1 -0
  60. package/dist/consumer-integration/adapters/node-consumer-upgrade-source-proof.js +89 -0
  61. package/dist/consumer-integration/adapters/node-consumer-upgrade-source-proof.js.map +1 -0
  62. package/dist/consumer-integration/adapters/node-consumer-upgrade-target.d.ts +11 -0
  63. package/dist/consumer-integration/adapters/node-consumer-upgrade-target.d.ts.map +1 -0
  64. package/dist/consumer-integration/adapters/node-consumer-upgrade-target.js +60 -0
  65. package/dist/consumer-integration/adapters/node-consumer-upgrade-target.js.map +1 -0
  66. package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.d.ts +1 -1
  67. package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.d.ts.map +1 -1
  68. package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.js +2 -3
  69. package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.js.map +1 -1
  70. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.d.ts +19 -0
  71. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.d.ts.map +1 -1
  72. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.js +184 -44
  73. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.js.map +1 -1
  74. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v2.d.ts +4 -0
  75. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v2.d.ts.map +1 -0
  76. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v2.js +64 -0
  77. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v2.js.map +1 -0
  78. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.d.ts +19 -2
  79. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.d.ts.map +1 -1
  80. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.js +65 -18
  81. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.js.map +1 -1
  82. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v2.d.ts +13 -0
  83. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v2.d.ts.map +1 -0
  84. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v2.js +37 -0
  85. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v2.js.map +1 -0
  86. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.d.ts +7 -0
  87. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.d.ts.map +1 -1
  88. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.js +12 -3
  89. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.js.map +1 -1
  90. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v2.d.ts +3 -0
  91. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v2.d.ts.map +1 -0
  92. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v2.js +11 -0
  93. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v2.js.map +1 -0
  94. package/dist/consumer-integration/application/model/consumer-restoration.d.ts +76 -0
  95. package/dist/consumer-integration/application/model/consumer-restoration.d.ts.map +1 -0
  96. package/dist/consumer-integration/application/model/consumer-restoration.js +2 -0
  97. package/dist/consumer-integration/application/model/consumer-restoration.js.map +1 -0
  98. package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts +19 -3
  99. package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts.map +1 -1
  100. package/dist/consumer-integration/application/policies/consumer-integration-assets.js +38 -4
  101. package/dist/consumer-integration/application/policies/consumer-integration-assets.js.map +1 -1
  102. package/dist/consumer-integration/application/policies/consumer-integration-desired-state.d.ts +3 -1
  103. package/dist/consumer-integration/application/policies/consumer-integration-desired-state.d.ts.map +1 -1
  104. package/dist/consumer-integration/application/policies/consumer-integration-desired-state.js +87 -0
  105. package/dist/consumer-integration/application/policies/consumer-integration-desired-state.js.map +1 -1
  106. package/dist/consumer-integration/application/policies/consumer-restoration-proof.d.ts +12 -0
  107. package/dist/consumer-integration/application/policies/consumer-restoration-proof.d.ts.map +1 -0
  108. package/dist/consumer-integration/application/policies/consumer-restoration-proof.js +123 -0
  109. package/dist/consumer-integration/application/policies/consumer-restoration-proof.js.map +1 -0
  110. package/dist/consumer-integration/application/policies/qualified-docs-cohort-v2.d.ts +13 -0
  111. package/dist/consumer-integration/application/policies/qualified-docs-cohort-v2.d.ts.map +1 -0
  112. package/dist/consumer-integration/application/policies/qualified-docs-cohort-v2.js +38 -0
  113. package/dist/consumer-integration/application/policies/qualified-docs-cohort-v2.js.map +1 -0
  114. package/dist/consumer-integration/application/ports/consumer-integration-lifecycle.d.ts +3 -2
  115. package/dist/consumer-integration/application/ports/consumer-integration-lifecycle.d.ts.map +1 -1
  116. package/dist/consumer-integration/application/ports/consumer-integration-planners.d.ts +4 -4
  117. package/dist/consumer-integration/application/ports/consumer-integration-planners.d.ts.map +1 -1
  118. package/dist/consumer-integration/application/ports/consumer-restoration.d.ts +24 -0
  119. package/dist/consumer-integration/application/ports/consumer-restoration.d.ts.map +1 -0
  120. package/dist/consumer-integration/application/ports/consumer-restoration.js +2 -0
  121. package/dist/consumer-integration/application/ports/consumer-restoration.js.map +1 -0
  122. package/dist/consumer-integration/application/ports/consumer-upgrade.d.ts +44 -6
  123. package/dist/consumer-integration/application/ports/consumer-upgrade.d.ts.map +1 -1
  124. package/dist/consumer-integration/application/use-cases/compile-consumer-integration-v3.d.ts +39 -0
  125. package/dist/consumer-integration/application/use-cases/compile-consumer-integration-v3.d.ts.map +1 -0
  126. package/dist/consumer-integration/application/use-cases/compile-consumer-integration-v3.js +284 -0
  127. package/dist/consumer-integration/application/use-cases/compile-consumer-integration-v3.js.map +1 -0
  128. package/dist/consumer-integration/application/use-cases/plan-consumer-integration.d.ts +2 -2
  129. package/dist/consumer-integration/application/use-cases/plan-consumer-integration.d.ts.map +1 -1
  130. package/dist/consumer-integration/application/use-cases/plan-consumer-integration.js +23 -153
  131. package/dist/consumer-integration/application/use-cases/plan-consumer-integration.js.map +1 -1
  132. package/dist/consumer-integration/application/use-cases/run-consumer-integration.d.ts.map +1 -1
  133. package/dist/consumer-integration/application/use-cases/run-consumer-integration.js +10 -6
  134. package/dist/consumer-integration/application/use-cases/run-consumer-integration.js.map +1 -1
  135. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.d.ts +11 -3
  136. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.d.ts.map +1 -1
  137. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.js +188 -39
  138. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.js.map +1 -1
  139. package/dist/consumer-integration/composition/consumer-integration-cli.d.ts.map +1 -1
  140. package/dist/consumer-integration/composition/consumer-integration-cli.js +85 -15
  141. package/dist/consumer-integration/composition/consumer-integration-cli.js.map +1 -1
  142. package/dist/consumer-integration/composition/consumer-integration-planner.d.ts +6 -2
  143. package/dist/consumer-integration/composition/consumer-integration-planner.d.ts.map +1 -1
  144. package/dist/consumer-integration/composition/consumer-integration-planner.js +40 -3
  145. package/dist/consumer-integration/composition/consumer-integration-planner.js.map +1 -1
  146. package/dist/consumer-integration/composition/node-consumer-integration.d.ts +12 -0
  147. package/dist/consumer-integration/composition/node-consumer-integration.d.ts.map +1 -1
  148. package/dist/consumer-integration/composition/node-consumer-integration.js +17 -1
  149. package/dist/consumer-integration/composition/node-consumer-integration.js.map +1 -1
  150. package/dist/consumer-integration/composition/qualification-v3-boundary.d.ts +20 -0
  151. package/dist/consumer-integration/composition/qualification-v3-boundary.d.ts.map +1 -0
  152. package/dist/consumer-integration/composition/qualification-v3-boundary.js +29 -0
  153. package/dist/consumer-integration/composition/qualification-v3-boundary.js.map +1 -0
  154. package/dist/consumer-integration/domain/model.d.ts +61 -0
  155. package/dist/consumer-integration/domain/model.d.ts.map +1 -1
  156. package/dist/consumer-integration/generated/canonical-assets.d.ts +3 -2
  157. package/dist/consumer-integration/generated/canonical-assets.d.ts.map +1 -1
  158. package/dist/consumer-integration/generated/canonical-assets.js +3 -2
  159. package/dist/consumer-integration/generated/canonical-assets.js.map +1 -1
  160. package/dist/consumer-integration/index.d.ts +3 -1
  161. package/dist/consumer-integration/index.d.ts.map +1 -1
  162. package/dist/consumer-integration/index.js +1 -0
  163. package/dist/consumer-integration/index.js.map +1 -1
  164. package/dist/index.d.ts +2 -1
  165. package/dist/index.d.ts.map +1 -1
  166. package/dist/index.js +1 -1
  167. package/dist/index.js.map +1 -1
  168. package/dist/qualification/index.d.ts +6 -0
  169. package/dist/qualification/index.d.ts.map +1 -1
  170. package/dist/qualification/index.js +3 -0
  171. package/dist/qualification/index.js.map +1 -1
  172. package/dist/qualification/qualification-v3-authority.d.ts +14 -0
  173. package/dist/qualification/qualification-v3-authority.d.ts.map +1 -0
  174. package/dist/qualification/qualification-v3-authority.js +5 -0
  175. package/dist/qualification/qualification-v3-authority.js.map +1 -0
  176. package/dist/qualification/qualification-v3-observer.d.ts +7 -0
  177. package/dist/qualification/qualification-v3-observer.d.ts.map +1 -0
  178. package/dist/qualification/qualification-v3-observer.js +22 -0
  179. package/dist/qualification/qualification-v3-observer.js.map +1 -0
  180. package/dist/qualification/qualification-v3-runner.d.ts +7 -0
  181. package/dist/qualification/qualification-v3-runner.d.ts.map +1 -0
  182. package/dist/qualification/qualification-v3-runner.js +95 -0
  183. package/dist/qualification/qualification-v3-runner.js.map +1 -0
  184. package/dist/qualification/v3-contract.d.ts +58 -0
  185. package/dist/qualification/v3-contract.d.ts.map +1 -0
  186. package/dist/qualification/v3-contract.js +2 -0
  187. package/dist/qualification/v3-contract.js.map +1 -0
  188. package/package.json +3 -3
  189. package/schemas/docs-consumer-integration-profile/v3.schema.json +68 -0
  190. package/schemas/docs-consumer-managed-state/v2.schema.json +120 -0
  191. package/schemas/docs-consumer-restoration-execution/v1.schema.json +124 -0
  192. package/schemas/docs-consumer-upgrade-execution/v1.schema.json +39 -3
  193. package/schemas/docs-protocol-qualification-receipt/v3.schema.json +118 -0
  194. package/schemas/qualified-docs-cohort/v2.schema.json +149 -0
  195. package/skills/docs/SKILL.md +8 -6
@@ -1 +1 @@
1
- {"version":3,"file":"node-consumer-integration-repository.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-integration-repository.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,iCAAiC,EAEjC,2BAA2B,EAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,8BAA8B,EAC/B,MAAM,wDAAwD,CAAC;AAiChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AA4MpF,wBAAsB,4BAA4B,CAAC,OAAO,EAAE;IAC1D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAC1C,GAAG,OAAO,CAAC;IACV,QAAQ,CAAC,OAAO,EAAE,iCAAiC,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;CAChD,CAAC,CAsED;AAED,eAAO,MAAM,kCAAkC,EAAE,8BACM,CAAC"}
1
+ {"version":3,"file":"node-consumer-integration-repository.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-integration-repository.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,+BAA+B,EAC/B,iCAAiC,EAGjC,2BAA2B,EAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,8BAA8B,EAC/B,MAAM,wDAAwD,CAAC;AAkChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAyGpF,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,IAAI,CAAC,+BAA+B,EAAE,YAAY,CAAC,GAAG,IAAI,CAgB9G;AA4MD,wBAAsB,4BAA4B,CAAC,OAAO,EAAE;IAC1D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAC1C,GAAG,OAAO,CAAC;IACV,QAAQ,CAAC,OAAO,EAAE,iCAAiC,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;CAChD,CAAC,CASD;AAED,eAAO,MAAM,kCAAkC,EAAE,8BACa,CAAC"}
@@ -4,6 +4,7 @@ import { execFile } from "node:child_process";
4
4
  import { assertConsumerIntegrationProfileSchema } from "./consumer-integration-schema-validator.js";
5
5
  import { ConsumerIntegrationNodeError } from "./consumer-integration-node-error.js";
6
6
  import { assertQualifiedPnpmLockfileV1 } from "./pnpm-lockfile-validator-v1.js";
7
+ import { assertQualifiedPnpmLockfileV2 } from "./pnpm-lockfile-validator-v2.js";
7
8
  import { parseJsonRecord } from "./strict-json-record.js";
8
9
  import { scanConsumerRepositoryTopology } from "./bounded-repository-topology.js";
9
10
  import { canonicalConsumerRoot, INTEGRATION_PROFILE_PATH, MAXIMUM_LOCKFILE_BYTES, MAXIMUM_MANAGED_ASSET_BYTES, MAXIMUM_MANIFEST_BYTES, MAXIMUM_PROFILE_BYTES, readStableConsumerFile, sameConsumerFileObservation } from "./node-consumer-repository-files.js";
@@ -26,14 +27,14 @@ function executeGit(root, args, maximumBytes) {
26
27
  export { ConsumerIntegrationNodeError } from "./consumer-integration-node-error.js";
27
28
  function assertSingleIntegrationTopology(topology) {
28
29
  if (topology.lockfiles.length !== 1 || topology.lockfiles[0] !== "pnpm-lock.yaml") {
29
- throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_NESTED_LOCKFILE_UNSUPPORTED", "V1 requires exactly one root pnpm-lock.yaml and no nested lockfiles.");
30
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_NESTED_LOCKFILE_UNSUPPORTED", "Managed consumer integration requires exactly one root pnpm-lock.yaml and no nested lockfiles.");
30
31
  }
31
32
  if (topology.integrationProfiles.length !== 1 ||
32
33
  topology.integrationProfiles[0] !== INTEGRATION_PROFILE_PATH) {
33
- throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_MULTIPLE_INTEGRATION_UNITS", `V1 requires exactly one integration profile at ${INTEGRATION_PROFILE_PATH}.`);
34
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_MULTIPLE_INTEGRATION_UNITS", `Managed consumer integration requires exactly one profile at ${INTEGRATION_PROFILE_PATH}.`);
34
35
  }
35
36
  if (topology.pnpmfiles.length > 0) {
36
- throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_PNPMFILE_UNSUPPORTED", "V1 does not permit .pnpmfile.cjs in the integration repository.");
37
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_PNPMFILE_UNSUPPORTED", "Managed consumer integration does not permit .pnpmfile.cjs.");
37
38
  }
38
39
  }
39
40
  async function assertGitRepositoryRoot(root) {
@@ -48,6 +49,19 @@ async function assertGitRepositoryRoot(root) {
48
49
  throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_GIT_ROOT_INVALID", "Consumer root must equal the Git repository top-level directory.");
49
50
  }
50
51
  }
52
+ async function exactGitHead(root) {
53
+ let head;
54
+ try {
55
+ head = (await executeGit(root, ["rev-parse", "--verify", "HEAD"], 64 * 1024)).trim();
56
+ }
57
+ catch {
58
+ return undefined;
59
+ }
60
+ if (!/^(?!0{40}$)[0-9a-f]{40}$/u.test(head)) {
61
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_GIT_INVALID", "Consumer repository must have one exact Git HEAD.");
62
+ }
63
+ return head;
64
+ }
51
65
  function assertNestedAgentsAuthority(topology, governedRoots) {
52
66
  const nested = topology.agents.filter((path) => path !== "AGENTS.md");
53
67
  const conflicting = governedRoots === undefined
@@ -79,7 +93,7 @@ function rejectPrototypeKeys(value, path = "integration profile") {
79
93
  rejectPrototypeKeys(entry, `${path}.${key}`);
80
94
  }
81
95
  }
82
- function assertGitHubRuntimeIdentity(desired) {
96
+ export function assertGitHubRuntimeIdentity(desired) {
83
97
  const runtimeId = process.env["GITHUB_REPOSITORY_ID"];
84
98
  const runtimeName = process.env["GITHUB_REPOSITORY"];
85
99
  if (runtimeId !== undefined && runtimeId !== desired.repository.id) {
@@ -93,7 +107,7 @@ function assertGitHubRuntimeIdentity(desired) {
93
107
  async function assertQualifiedPnpmRoot(root) {
94
108
  const [major, minor] = process.versions.node.split(".").map(Number);
95
109
  if (major !== 24 || (minor ?? 0) < 18) {
96
- throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UNSUPPORTED_NODE", "V1 check and plan require Node >=24.18.0 <25.");
110
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UNSUPPORTED_NODE", "Managed consumer check and plan require Node >=24.18.0 <25.");
97
111
  }
98
112
  const manifestObservation = await readStableConsumerFile(root, "package.json", MAXIMUM_MANIFEST_BYTES, true);
99
113
  if (manifestObservation.state !== "file") {
@@ -111,7 +125,7 @@ async function assertQualifiedPnpmRoot(root) {
111
125
  ? /^pnpm@(11)\.([0-9]+)\.([0-9]+)(?:\+sha512\.[A-Za-z0-9+/=]+)?$/u.exec(packageManager)
112
126
  : null;
113
127
  if (match === null || Number(match[2]) < 17) {
114
- throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UNSUPPORTED_PACKAGE_MANAGER", "V1 requires one exact root packageManager declaration within >=11.17.0 <12.");
128
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UNSUPPORTED_PACKAGE_MANAGER", "Managed consumer integration requires an exact root packageManager within >=11.17.0 <12.");
115
129
  }
116
130
  const nodeVersion = await readStableConsumerFile(root, ".node-version", 128, true);
117
131
  if (nodeVersion.state !== "file" ||
@@ -146,18 +160,26 @@ async function assertQualifiedLockfile(root, desired) {
146
160
  if (observation.state !== "file") {
147
161
  throw new Error("unreachable");
148
162
  }
149
- assertQualifiedPnpmLockfileV1(observation.bytes, desired);
163
+ switch (desired.schemaVersion) {
164
+ case 1:
165
+ assertQualifiedPnpmLockfileV1(observation.bytes, desired);
166
+ break;
167
+ case 3:
168
+ assertQualifiedPnpmLockfileV2(observation.bytes, desired);
169
+ break;
170
+ }
150
171
  return observation;
151
172
  }
152
- export async function readConsumerIntegrationInput(options) {
173
+ async function readManagedConsumerIntegrationInput(options) {
153
174
  const root = await canonicalConsumerRoot(options.consumerRoot);
154
175
  await assertGitRepositoryRoot(root);
176
+ const repositoryHead = await exactGitHead(root);
155
177
  const topology = await scanConsumerRepositoryTopology(root);
156
178
  assertSingleIntegrationTopology(topology);
157
179
  await assertQualifiedPnpmRoot(root);
158
180
  const profilePath = options.integrationProfilePath ?? INTEGRATION_PROFILE_PATH;
159
181
  if (profilePath !== INTEGRATION_PROFILE_PATH) {
160
- throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_PROFILE_PATH_UNSUPPORTED", `V1 requires the integration profile at ${INTEGRATION_PROFILE_PATH}.`);
182
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_PROFILE_PATH_UNSUPPORTED", `Managed consumer integration requires the profile at ${INTEGRATION_PROFILE_PATH}.`);
161
183
  }
162
184
  const profile = await readStableConsumerFile(root, profilePath, MAXIMUM_PROFILE_BYTES, true);
163
185
  if (profile.state !== "file") {
@@ -169,12 +191,18 @@ export async function readConsumerIntegrationInput(options) {
169
191
  const parsed = parseJsonRecord(Buffer.from(profile.bytes).toString("utf8"));
170
192
  rejectPrototypeKeys(parsed);
171
193
  await assertConsumerIntegrationProfileSchema(parsed);
172
- if (parsed.schemaVersion === 2) {
173
- const { qualification: _qualification, ...v1 } = parsed;
174
- desired = { ...v1, schemaVersion: 1 };
175
- }
176
- else {
177
- desired = parsed;
194
+ switch (parsed.schemaVersion) {
195
+ case 1:
196
+ desired = parsed;
197
+ break;
198
+ case 2: {
199
+ const { qualification: _qualification, ...v1 } = parsed;
200
+ desired = { ...v1, schemaVersion: 1 };
201
+ break;
202
+ }
203
+ case 3:
204
+ desired = parsed;
205
+ break;
178
206
  }
179
207
  assertNestedAgentsAuthority(topology, desired.governedDocsRoots);
180
208
  assertGitHubRuntimeIdentity(desired);
@@ -203,11 +231,22 @@ export async function readConsumerIntegrationInput(options) {
203
231
  managedState
204
232
  };
205
233
  await assertSnapshotStillStable({ root, desired, snapshot });
234
+ if (await exactGitHead(root) !== repositoryHead) {
235
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_SNAPSHOT_UNSTABLE", "Consumer Git HEAD changed while the repository snapshot was assembled.");
236
+ }
206
237
  return {
207
238
  desired,
239
+ ...(repositoryHead === undefined ? {} : { repositoryHead }),
208
240
  root,
209
241
  snapshot
210
242
  };
211
243
  }
212
- export const nodeConsumerIntegrationInputReader = Object.freeze({ read: readConsumerIntegrationInput });
244
+ export async function readConsumerIntegrationInput(options) {
245
+ const { desired, root, snapshot } = await readManagedConsumerIntegrationInput(options);
246
+ if (desired.schemaVersion !== 1) {
247
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_PROFILE_INVALID", "The legacy public reader accepts only consumer integration profile V1/V2.");
248
+ }
249
+ return { desired, root, snapshot };
250
+ }
251
+ export const nodeConsumerIntegrationInputReader = Object.freeze({ read: readManagedConsumerIntegrationInput });
213
252
  //# sourceMappingURL=node-consumer-integration-repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-consumer-integration-repository.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-integration-repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-consumer-integration-repository.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-integration-repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { type KnownFileTransactionPlanV1, type KnownFileImageV1 } from "@agent-teams/repository-mutation";
2
+ import type { ConsumerIntegrationDesiredStateV1, QualifiedDocsCohortBindingV2 } from "../domain/model.js";
3
+ import type { ConsumerRestorationIntent } from "../application/model/consumer-restoration.js";
4
+ export declare function restorationGit(root: string, args: readonly string[]): Promise<Buffer>;
5
+ export declare function restorationArtifacts(root: string): Promise<{
6
+ controller: {
7
+ name: "@agent-teams/docs-protocol-agent-teams" | "@agent-teams/repository-mutation";
8
+ version: string;
9
+ buildIdentity: `sha256:${string}`;
10
+ };
11
+ kernel: {
12
+ name: "@agent-teams/docs-protocol-agent-teams" | "@agent-teams/repository-mutation";
13
+ version: string;
14
+ buildIdentity: `sha256:${string}`;
15
+ };
16
+ }>;
17
+ export declare function restorationConsumer(rootInput: string, repository: ConsumerIntegrationDesiredStateV1["repository"]): Promise<{
18
+ root: string;
19
+ device: string;
20
+ inode: string;
21
+ birthtimeNs: string;
22
+ repository: {
23
+ readonly provider: "github";
24
+ readonly id: string;
25
+ readonly nameWithOwner: string;
26
+ };
27
+ }>;
28
+ export declare function historicalRestorationProfile(root: string, revision: string): Promise<ConsumerIntegrationDesiredStateV1>;
29
+ export declare function assertRestorationPlanSource(root: string, revision: string, current: ConsumerIntegrationDesiredStateV1, plan: KnownFileTransactionPlanV1, target: QualifiedDocsCohortBindingV2): Promise<void>;
30
+ export declare function restorationInventory(root: string, substitutes?: Map<string, KnownFileImageV1>): Promise<`sha256:${string}`>;
31
+ export declare function assertRestorationImages(root: string, proof: ConsumerRestorationIntent, historical: boolean): Promise<void>;
32
+ export declare function externalRestorationPath(path: string, consumerRoot: string): Promise<string>;
33
+ export declare function retainRestorationProof(path: string, proof: unknown): Promise<{
34
+ path: string;
35
+ digest: `sha256:${string}`;
36
+ }>;
37
+ export declare function syncRestorationProof(path: string): Promise<void>;
38
+ //# sourceMappingURL=node-consumer-restoration-evidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-consumer-restoration-evidence.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-restoration-evidence.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,0BAA0B,EAAE,KAAK,gBAAgB,EACvD,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,iCAAiC,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAC1G,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AAiB9F,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAKrF;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;;GAmBtD;AAED,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,iCAAiC,CAAC,YAAY,CAAC;;;;;;;;;;GAQvH;AAED,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAU7H;AAED,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAC9E,OAAO,EAAE,iCAAiC,EAAE,IAAI,EAAE,0BAA0B,EAAE,MAAM,EAAE,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBnI;AAID,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,gCAAsC,GAAG,OAAO,CAAC,UAAU,MAAM,EAAE,CAAC,CAsBvI;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAahI;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYjG;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;;;GAQxE;AAGD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKtE"}
@@ -0,0 +1,177 @@
1
+ import { execFile } from "node:child_process";
2
+ import { lstat, open, readdir, realpath } from "node:fs/promises";
3
+ import { dirname, isAbsolute, join, relative, resolve as resolvePath, sep } from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ import { computeInstalledArtifactBuildIdentity, sha256Bytes, sha256Json } from "@agent-teams/repository-mutation";
6
+ import { MAXIMUM_RESTORATION_PROOF_BYTES, requireRestoration, restorationJson } from "../application/policies/consumer-restoration-proof.js";
7
+ import { assertConsumerIntegrationDesiredStateV1 } from "../application/policies/consumer-integration-desired-state.js";
8
+ import { assertConsumerIntegrationProfileSchema } from "./consumer-integration-schema-validator.js";
9
+ import { canonicalConsumerRoot, INTEGRATION_PROFILE_PATH, readStableConsumerFile } from "./node-consumer-repository-files.js";
10
+ import { assertRestorationManagedEffects } from "./node-consumer-restoration-scope.js";
11
+ import { allowedUpgradePaths } from "./node-consumer-upgrade-source-proof.js";
12
+ import { assertGitHubRuntimeIdentity } from "./node-consumer-integration-repository.js";
13
+ import { parseJsonRecord } from "./strict-json-record.js";
14
+ const controllerRoot = fileURLToPath(new URL("../../../", import.meta.url));
15
+ const kernelRoot = dirname(fileURLToPath(import.meta.resolve("@agent-teams/repository-mutation/package.json")));
16
+ export function restorationGit(root, args) {
17
+ return new Promise((resolve, reject) => {
18
+ execFile("git", ["--no-replace-objects", ...args], {
19
+ cwd: root, encoding: "buffer", maxBuffer: 16 * 1024 * 1024,
20
+ timeout: 30_000, windowsHide: true
21
+ }, (error, stdout) => { if (error === null) {
22
+ resolve(stdout);
23
+ }
24
+ else {
25
+ reject(error);
26
+ } });
27
+ });
28
+ }
29
+ export async function restorationArtifacts(root) {
30
+ const artifacts = [];
31
+ for (const [path, name, roots] of [
32
+ [controllerRoot, "@agent-teams/docs-protocol-agent-teams", ["dist", "assets", "schemas"]],
33
+ [kernelRoot, "@agent-teams/repository-mutation", ["dist", "schemas"]]
34
+ ]) {
35
+ const canonical = await realpath(path);
36
+ const relation = relative(root, canonical);
37
+ requireRestoration(relation === ".." || relation.startsWith(`..${sep}`) || isAbsolute(relation), "retain the controller and its kernel outside the consumer being replaced.");
38
+ const manifest = await readStableConsumerFile(canonical, "package.json", 1024 * 1024, true);
39
+ requireRestoration(manifest.state === "file", "artifact manifest is missing.");
40
+ const parsed = parseJsonRecord(Buffer.from(manifest.bytes).toString("utf8"));
41
+ requireRestoration(parsed["name"] === name && typeof parsed["version"] === "string", "unexpected installed artifact.");
42
+ artifacts.push({ name, version: parsed["version"], buildIdentity: await computeInstalledArtifactBuildIdentity({ packageRoot: canonical, roots }) });
43
+ }
44
+ return { controller: artifacts[0], kernel: artifacts[1] };
45
+ }
46
+ export async function restorationConsumer(rootInput, repository) {
47
+ const root = await canonicalConsumerRoot(rootInput);
48
+ requireRestoration(root === resolvePath(rootInput), "consumer root must be canonical without aliases.");
49
+ requireRestoration((await restorationGit(root, ["rev-parse", "--show-toplevel"])).toString().trim() === root, "consumer must be the exact Git top-level directory.");
50
+ assertGitHubRuntimeIdentity({ repository });
51
+ const stat = await lstat(root, { bigint: true });
52
+ return { root, device: String(stat.dev), inode: String(stat.ino), birthtimeNs: String(stat.birthtimeNs), repository };
53
+ }
54
+ export async function historicalRestorationProfile(root, revision) {
55
+ const bytes = await restorationGit(root, ["show", `${revision}:${INTEGRATION_PROFILE_PATH}`]);
56
+ const parsed = parseJsonRecord(bytes.toString("utf8"));
57
+ await assertConsumerIntegrationProfileSchema(parsed);
58
+ requireRestoration(parsed["schemaVersion"] === 1 || parsed["schemaVersion"] === 2, "recorded source must be an explicit historical profile.");
59
+ const { qualification: _qualification, ...source } = parsed;
60
+ const desired = { ...source, schemaVersion: 1 };
61
+ assertConsumerIntegrationDesiredStateV1(desired);
62
+ return desired;
63
+ }
64
+ export async function assertRestorationPlanSource(root, revision, current, plan, target) {
65
+ const allowed = allowedUpgradePaths(current);
66
+ requireRestoration(plan.operations.some(({ path }) => path === INTEGRATION_PROFILE_PATH) &&
67
+ plan.operations.some(({ path }) => path === "package.json") &&
68
+ plan.operations.some(({ path }) => path === "pnpm-lock.yaml"), "migration lacks its profile/manifest/lock replacements.");
69
+ for (const operation of plan.operations) {
70
+ requireRestoration(allowed.has(operation.path) && operation.precondition.state === "known-file" &&
71
+ operation.precondition.acceptedPreimages.length === 1, "original plan exceeds the closed managed replacement set.");
72
+ const original = await restorationGit(root, ["show", `${revision}:${operation.path}`]);
73
+ const mode = (await restorationGit(root, ["ls-tree", revision, "--", operation.path])).toString().split(" ")[0];
74
+ const preimage = operation.precondition.acceptedPreimages[0];
75
+ requireRestoration(original.equals(Buffer.from(preimage.contentBase64, "base64")) &&
76
+ mode === (preimage.mode === 0o644 ? "100644" : preimage.mode === 0o755 ? "100755" : "unsupported"), "preimage differs from immutable source Git evidence.");
77
+ }
78
+ const originals = new Map();
79
+ const tracked = (await restorationGit(root, ["ls-tree", "-r", "--name-only", revision])).toString().split("\n");
80
+ for (const path of allowed) {
81
+ if (tracked.includes(path)) {
82
+ originals.set(path, await restorationGit(root, ["show", `${revision}:${path}`]));
83
+ }
84
+ }
85
+ await assertRestorationManagedEffects({ current, target, plan, originals });
86
+ }
87
+ // Observe every repository file, including ignored files, except installation and kernel state.
88
+ // Substituting only proved operation images permits comparison with the exact original inventory.
89
+ export async function restorationInventory(root, substitutes = new Map()) {
90
+ const entries = [];
91
+ let total = 0;
92
+ let visited = 0;
93
+ async function walk(directory, prefix, depth) {
94
+ requireRestoration(depth <= 64, "repository inventory is too deep.");
95
+ for (const entry of await readdir(directory, { withFileTypes: true })) {
96
+ requireRestoration(++visited <= 100_000, "repository inventory is too large.");
97
+ if (entry.name === "node_modules" || (prefix === "" && [".git", ".agent-teams-local"].includes(entry.name))) {
98
+ continue;
99
+ }
100
+ const path = prefix === "" ? entry.name : `${prefix}/${entry.name}`;
101
+ if (entry.isDirectory()) {
102
+ await walk(join(directory, entry.name), path, depth + 1);
103
+ continue;
104
+ }
105
+ requireRestoration(entry.isFile(), "repository inventory contains symlink or special-file evidence.");
106
+ const observation = await readStableConsumerFile(root, path, 64 * 1024 * 1024, true);
107
+ requireRestoration(observation.state === "file", "missing inventory file.");
108
+ total += observation.bytes.byteLength;
109
+ requireRestoration(total <= 1024 * 1024 * 1024, "repository inventory exceeds byte limit.");
110
+ const substitute = substitutes.get(path);
111
+ entries.push({ path, digest: substitute?.digest ?? sha256Bytes(observation.bytes), mode: substitute?.mode ?? observation.mode });
112
+ }
113
+ }
114
+ await walk(root, "", 0);
115
+ return sha256Json(entries.toSorted((left, right) => left.path < right.path ? -1 : left.path > right.path ? 1 : 0));
116
+ }
117
+ export async function assertRestorationImages(root, proof, historical) {
118
+ const originalImages = new Map();
119
+ for (const operation of proof.plan.operations) {
120
+ requireRestoration(operation.precondition.state === "known-file", "replacement preimage required.");
121
+ const original = operation.precondition.acceptedPreimages[0];
122
+ const expected = historical ? original : operation.postimage;
123
+ const observed = await readStableConsumerFile(root, operation.path, 8 * 1024 * 1024, true);
124
+ requireRestoration(observed.state === "file" && observed.mode === expected.mode && sha256Bytes(observed.bytes) === expected.digest, `current bytes or mode differ at ${operation.path}.`);
125
+ originalImages.set(operation.path, original);
126
+ }
127
+ requireRestoration(await restorationInventory(root, originalImages) === proof.sourceInventoryDigest, "repository contains unrelated edits, missing files or mode changes.");
128
+ }
129
+ export async function externalRestorationPath(path, consumerRoot) {
130
+ requireRestoration(isAbsolute(path) && path.length <= 4096, "proof path must be absolute and bounded.");
131
+ const parent = await realpath(dirname(path));
132
+ const absolute = resolvePath(path);
133
+ requireRestoration(join(parent, absolute.slice(dirname(absolute).length + 1)) === absolute, "proof path must have canonical parents.");
134
+ for (const forbidden of [consumerRoot, await realpath(controllerRoot), await realpath(kernelRoot)]) {
135
+ const relation = relative(forbidden, absolute);
136
+ requireRestoration(relation === ".." || relation.startsWith(`..${sep}`) || isAbsolute(relation), "proof must be retained outside the consumer and controller install trees.");
137
+ }
138
+ return absolute;
139
+ }
140
+ export async function retainRestorationProof(path, proof) {
141
+ const bytes = Buffer.from(`${restorationJson(proof)}\n`);
142
+ requireRestoration(bytes.length <= MAXIMUM_RESTORATION_PROOF_BYTES, "proof exceeds byte limit.");
143
+ const file = await open(path, "wx", 0o600);
144
+ try {
145
+ await file.writeFile(bytes);
146
+ await file.sync();
147
+ }
148
+ finally {
149
+ await file.close();
150
+ }
151
+ const parent = await open(dirname(path), "r");
152
+ try {
153
+ await parent.sync();
154
+ }
155
+ finally {
156
+ await parent.close();
157
+ }
158
+ return { path, digest: sha256Bytes(bytes) };
159
+ }
160
+ // A complete write may have survived a kill before its sync or before result output.
161
+ export async function syncRestorationProof(path) {
162
+ const file = await open(path, "r");
163
+ try {
164
+ await file.sync();
165
+ }
166
+ finally {
167
+ await file.close();
168
+ }
169
+ const parent = await open(dirname(path), "r");
170
+ try {
171
+ await parent.sync();
172
+ }
173
+ finally {
174
+ await parent.close();
175
+ }
176
+ }
177
+ //# sourceMappingURL=node-consumer-restoration-evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-consumer-restoration-evidence.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-restoration-evidence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { applyKnownFileTransaction } from "@agent-teams/repository-mutation";
2
+ import type { ConsumerFinalizationOptions, RestorableConsumerUpgradeExecution } from "../application/model/consumer-restoration.js";
3
+ import type { ConsumerRestorationAuthorityReader } from "../application/ports/consumer-restoration.js";
4
+ import type { ConsumerUpgradeAuthorityReader, ConsumerUpgradeSandboxPort } from "../application/ports/consumer-upgrade.js";
5
+ export declare function finalizeNodeConsumerRestoration(options: ConsumerFinalizationOptions, ports: {
6
+ readonly authority: ConsumerRestorationAuthorityReader & ConsumerUpgradeAuthorityReader;
7
+ readonly sandbox: ConsumerUpgradeSandboxPort;
8
+ readonly apply?: typeof applyKnownFileTransaction;
9
+ }): Promise<RestorableConsumerUpgradeExecution>;
10
+ //# sourceMappingURL=node-consumer-restoration-finalization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-consumer-restoration-finalization.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-restoration-finalization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAmD,MAAM,kCAAkC,CAAC;AAE9H,OAAO,KAAK,EAAE,2BAA2B,EAA4D,kCAAkC,EAAE,MAAM,8CAA8C,CAAC;AAC9L,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,8CAA8C,CAAC;AACvG,OAAO,KAAK,EAAE,8BAA8B,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AA+B3H,wBAAsB,+BAA+B,CAAC,OAAO,EAAE,2BAA2B,EAAE,KAAK,EAAE;IACjG,QAAQ,CAAC,SAAS,EAAE,kCAAkC,GAAG,8BAA8B,CAAC;IACxF,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAC7C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,yBAAyB,CAAC;CACnD,GAAG,OAAO,CAAC,kCAAkC,CAAC,CA8D9C"}
@@ -0,0 +1,95 @@
1
+ import { applyKnownFileTransaction, sha256Bytes } from "@agent-teams/repository-mutation";
2
+ import { acquireMutationLease, claimMutation, observeMutationState, releaseMutationLease } from "@agent-teams/repository-mutation/node";
3
+ import { assertFullyReplacedReceipt, assertObservedRestorationReceipt, exactRestorationKeys, parseConsumerRestorationProof, requireRestoration, restorationJson } from "../application/policies/consumer-restoration-proof.js";
4
+ import { parseJsonRecord } from "./strict-json-record.js";
5
+ import { assertRestorationAuthority } from "./node-consumer-restoration.js";
6
+ import { assertRestorationImages, externalRestorationPath, retainRestorationProof, syncRestorationProof } from "./node-consumer-restoration-evidence.js";
7
+ import { assertRestorationBinding, readRestorationEvidence, readRestorationPreparation } from "./node-consumer-restoration-selection.js";
8
+ import { canonicalConsumerRoot } from "./node-consumer-repository-files.js";
9
+ import { nodeConsumerIntegrationInputReader } from "./node-consumer-integration-repository.js";
10
+ async function retainedReceipt(root, path, preparation, digest) {
11
+ const file = await readRestorationEvidence(root, path, false);
12
+ if (file.state === "absent") {
13
+ return;
14
+ }
15
+ const value = exactRestorationKeys(parseJsonRecord(Buffer.from(file.bytes).toString("utf8")), ["preparationDigest", "receipt"]);
16
+ requireRestoration(value["preparationDigest"] === digest, "receipt companion belongs to another selection; preserve it.");
17
+ const receipt = value["receipt"];
18
+ assertObservedRestorationReceipt(preparation.plan, receipt);
19
+ return receipt;
20
+ }
21
+ async function selectedImages(root, preparation) {
22
+ // An interrupted APPLYING transaction must be recovered first; mixed images are not a new intent.
23
+ const input = await nodeConsumerIntegrationInputReader.read({ consumerRoot: root });
24
+ const source = input.desired.schemaVersion === 1;
25
+ requireRestoration(restorationJson(input.desired.cohort) === restorationJson(source ? preparation.sourceCohort : preparation.targetCohort), "current source/target Cohort differs from the selection.");
26
+ await assertRestorationImages(root, preparation, source);
27
+ }
28
+ export async function finalizeNodeConsumerRestoration(options, ports) {
29
+ requireRestoration(options.sourceGeneration === 1 && options.targetGeneration === 2, "finalize requires explicit generations 1->2.");
30
+ const root = await canonicalConsumerRoot(options.consumerRoot);
31
+ const preparation = await readRestorationPreparation(root, options.preparationPath, options.expect);
32
+ requireRestoration(options.from === preparation.sourceCohort.cohortId && options.to === preparation.targetCohort.cohortId, "finalize must name the selected original source and target.");
33
+ const path = await externalRestorationPath(options.proofPath, root);
34
+ const existing = await readRestorationEvidence(root, path, false);
35
+ // Existing completion is untrusted historical evidence until this attempt applies and activates.
36
+ const complete = existing.state === "absent" ? undefined : parseConsumerRestorationProof(existing.bytes, sha256Bytes(existing.bytes));
37
+ requireRestoration(complete === undefined || (complete.preparationDigest === options.expect && complete.proofPath === path), "existing final proof differs from the selected intent or destination; preserve it.");
38
+ const receiptPath = await externalRestorationPath(`${path}.receipt`, root);
39
+ let original = await retainedReceipt(root, receiptPath, preparation, options.expect);
40
+ await assertRestorationBinding(root, preparation);
41
+ let receipt;
42
+ let authority;
43
+ const lease = await acquireMutationLease(root);
44
+ try {
45
+ await selectedImages(root, preparation);
46
+ authority = await ports.authority.read({ cohortId: options.to, generation: 2, repository: preparation.consumer.repository });
47
+ requireRestoration(authority.repository === "agent-teams-ai/.github" && authority.path === "governance/docs-qualified-cohorts.json" &&
48
+ /^(?!0{40}$)[0-9a-f]{40}$/u.test(authority.revision) && authority.cohort.schemaVersion === 2 &&
49
+ restorationJson(authority.cohort) === restorationJson(preparation.targetCohort), "fresh upgrade authority differs from selected target.");
50
+ await assertRestorationAuthority(ports.authority, preparation);
51
+ await selectedImages(root, preparation);
52
+ if (complete !== undefined) {
53
+ await assertRestorationImages(root, preparation, false);
54
+ }
55
+ const claim = await claimMutation(lease, await observeMutationState(lease), {
56
+ kind: "apply-known-file", planDigest: preparation.plan.planDigest,
57
+ ownerArtifact: preparation.kernel, kernelArtifact: preparation.kernel
58
+ });
59
+ receipt = await (ports.apply ?? applyKnownFileTransaction)({ consumerRoot: root, plan: preparation.plan, claim });
60
+ assertObservedRestorationReceipt(preparation.plan, receipt);
61
+ }
62
+ finally {
63
+ await releaseMutationLease(lease);
64
+ }
65
+ if (original === undefined) {
66
+ await retainRestorationProof(receiptPath, { preparationDigest: options.expect, receipt });
67
+ original = receipt;
68
+ }
69
+ requireRestoration(authority.cohort.schemaVersion === 2, "explicit V2 authority required.");
70
+ await assertRestorationImages(root, preparation, false);
71
+ await ports.sandbox.activateAndVerifyV2({ consumerRoot: root, authority: { ...authority, cohort: authority.cohort } });
72
+ await assertRestorationBinding(root, preparation);
73
+ await assertRestorationImages(root, preparation, false);
74
+ if (complete !== undefined) {
75
+ await syncRestorationProof(path);
76
+ const retained = await readRestorationEvidence(root, path);
77
+ requireRestoration(retained.state === "file" && restorationJson(parseConsumerRestorationProof(retained.bytes, sha256Bytes(retained.bytes))) === restorationJson(complete), "completed proof changed during revalidation.");
78
+ return { schemaVersion: 1, command: "consumer.finalize", outcome: "upgraded", issues: [], receipt,
79
+ restoration: { path, digest: sha256Bytes(retained.bytes) } };
80
+ }
81
+ const fullyReplaced = original?.operations.every(({ outcome }) => outcome === "replaced") === true ? original : null;
82
+ if (fullyReplaced !== null) {
83
+ assertFullyReplacedReceipt(preparation.plan, fullyReplaced);
84
+ }
85
+ const proof = {
86
+ ...preparation, protocol: "agent-teams.managed-v1-restoration/v1", preparationDigest: options.expect,
87
+ proofPath: path, receipt, originalReceipt: fullyReplaced, activation: "verified-current-v2"
88
+ };
89
+ const bytes = Buffer.from(`${restorationJson(proof)}\n`);
90
+ parseConsumerRestorationProof(bytes, sha256Bytes(bytes));
91
+ await externalRestorationPath(path, root);
92
+ const restoration = await retainRestorationProof(path, proof);
93
+ return { schemaVersion: 1, command: "consumer.finalize", outcome: "upgraded", issues: [], receipt, restoration };
94
+ }
95
+ //# sourceMappingURL=node-consumer-restoration-finalization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-consumer-restoration-finalization.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-restoration-finalization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ConsumerIntegrationDesiredStateV1, ConsumerIntegrationDesiredStateV3 } from "../domain/model.js";
2
+ export declare function assertRestorationLockScope(before: Uint8Array, after: Uint8Array, source: ConsumerIntegrationDesiredStateV1, target: ConsumerIntegrationDesiredStateV3): void;
3
+ //# sourceMappingURL=node-consumer-restoration-lock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-consumer-restoration-lock.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-restoration-lock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iCAAiC,EAAE,iCAAiC,EAAE,MAAM,oBAAoB,CAAC;AAgF/G,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAC9E,MAAM,EAAE,iCAAiC,EAAE,MAAM,EAAE,iCAAiC,GAAG,IAAI,CAS5F"}