@agent-teams/docs-protocol-agent-teams 0.0.0 → 0.1.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 (155) hide show
  1. package/CHANGELOG.md +36 -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.map +1 -1
  15. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.js +18 -3
  16. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.js.map +1 -1
  17. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.d.ts +40 -1
  18. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.d.ts.map +1 -1
  19. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.js +227 -0
  20. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.js.map +1 -1
  21. package/dist/consumer-integration/adapters/github-cohort-authority-reader.d.ts +7 -4
  22. package/dist/consumer-integration/adapters/github-cohort-authority-reader.d.ts.map +1 -1
  23. package/dist/consumer-integration/adapters/github-cohort-authority-reader.js +100 -14
  24. package/dist/consumer-integration/adapters/github-cohort-authority-reader.js.map +1 -1
  25. package/dist/consumer-integration/adapters/node-consumer-integration-repository.d.ts.map +1 -1
  26. package/dist/consumer-integration/adapters/node-consumer-integration-repository.js +54 -15
  27. package/dist/consumer-integration/adapters/node-consumer-integration-repository.js.map +1 -1
  28. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.d.ts +33 -5
  29. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.d.ts.map +1 -1
  30. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.js +107 -104
  31. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.js.map +1 -1
  32. package/dist/consumer-integration/adapters/node-consumer-upgrade-source-proof.d.ts +20 -0
  33. package/dist/consumer-integration/adapters/node-consumer-upgrade-source-proof.d.ts.map +1 -0
  34. package/dist/consumer-integration/adapters/node-consumer-upgrade-source-proof.js +89 -0
  35. package/dist/consumer-integration/adapters/node-consumer-upgrade-source-proof.js.map +1 -0
  36. package/dist/consumer-integration/adapters/node-consumer-upgrade-target.d.ts +11 -0
  37. package/dist/consumer-integration/adapters/node-consumer-upgrade-target.d.ts.map +1 -0
  38. package/dist/consumer-integration/adapters/node-consumer-upgrade-target.js +55 -0
  39. package/dist/consumer-integration/adapters/node-consumer-upgrade-target.js.map +1 -0
  40. package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.d.ts +1 -1
  41. package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.d.ts.map +1 -1
  42. package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.js +2 -3
  43. package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.js.map +1 -1
  44. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.d.ts +19 -0
  45. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.d.ts.map +1 -1
  46. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.js +184 -44
  47. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.js.map +1 -1
  48. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v2.d.ts +4 -0
  49. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v2.d.ts.map +1 -0
  50. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v2.js +64 -0
  51. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v2.js.map +1 -0
  52. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.d.ts +19 -2
  53. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.d.ts.map +1 -1
  54. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.js +65 -18
  55. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.js.map +1 -1
  56. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v2.d.ts +13 -0
  57. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v2.d.ts.map +1 -0
  58. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v2.js +37 -0
  59. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v2.js.map +1 -0
  60. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.d.ts +7 -0
  61. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.d.ts.map +1 -1
  62. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.js +12 -3
  63. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.js.map +1 -1
  64. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v2.d.ts +3 -0
  65. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v2.d.ts.map +1 -0
  66. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v2.js +11 -0
  67. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v2.js.map +1 -0
  68. package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts +19 -3
  69. package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts.map +1 -1
  70. package/dist/consumer-integration/application/policies/consumer-integration-assets.js +38 -4
  71. package/dist/consumer-integration/application/policies/consumer-integration-assets.js.map +1 -1
  72. package/dist/consumer-integration/application/policies/consumer-integration-desired-state.d.ts +3 -1
  73. package/dist/consumer-integration/application/policies/consumer-integration-desired-state.d.ts.map +1 -1
  74. package/dist/consumer-integration/application/policies/consumer-integration-desired-state.js +87 -0
  75. package/dist/consumer-integration/application/policies/consumer-integration-desired-state.js.map +1 -1
  76. package/dist/consumer-integration/application/policies/qualified-docs-cohort-v2.d.ts +13 -0
  77. package/dist/consumer-integration/application/policies/qualified-docs-cohort-v2.d.ts.map +1 -0
  78. package/dist/consumer-integration/application/policies/qualified-docs-cohort-v2.js +38 -0
  79. package/dist/consumer-integration/application/policies/qualified-docs-cohort-v2.js.map +1 -0
  80. package/dist/consumer-integration/application/ports/consumer-integration-lifecycle.d.ts +3 -2
  81. package/dist/consumer-integration/application/ports/consumer-integration-lifecycle.d.ts.map +1 -1
  82. package/dist/consumer-integration/application/ports/consumer-integration-planners.d.ts +4 -4
  83. package/dist/consumer-integration/application/ports/consumer-integration-planners.d.ts.map +1 -1
  84. package/dist/consumer-integration/application/ports/consumer-upgrade.d.ts +44 -6
  85. package/dist/consumer-integration/application/ports/consumer-upgrade.d.ts.map +1 -1
  86. package/dist/consumer-integration/application/use-cases/compile-consumer-integration-v3.d.ts +39 -0
  87. package/dist/consumer-integration/application/use-cases/compile-consumer-integration-v3.d.ts.map +1 -0
  88. package/dist/consumer-integration/application/use-cases/compile-consumer-integration-v3.js +284 -0
  89. package/dist/consumer-integration/application/use-cases/compile-consumer-integration-v3.js.map +1 -0
  90. package/dist/consumer-integration/application/use-cases/plan-consumer-integration.d.ts +2 -2
  91. package/dist/consumer-integration/application/use-cases/plan-consumer-integration.d.ts.map +1 -1
  92. package/dist/consumer-integration/application/use-cases/plan-consumer-integration.js +23 -153
  93. package/dist/consumer-integration/application/use-cases/plan-consumer-integration.js.map +1 -1
  94. package/dist/consumer-integration/application/use-cases/run-consumer-integration.d.ts.map +1 -1
  95. package/dist/consumer-integration/application/use-cases/run-consumer-integration.js +10 -6
  96. package/dist/consumer-integration/application/use-cases/run-consumer-integration.js.map +1 -1
  97. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.d.ts +1 -0
  98. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.d.ts.map +1 -1
  99. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.js +163 -36
  100. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.js.map +1 -1
  101. package/dist/consumer-integration/composition/consumer-integration-cli.d.ts.map +1 -1
  102. package/dist/consumer-integration/composition/consumer-integration-cli.js +8 -3
  103. package/dist/consumer-integration/composition/consumer-integration-cli.js.map +1 -1
  104. package/dist/consumer-integration/composition/consumer-integration-planner.d.ts +6 -2
  105. package/dist/consumer-integration/composition/consumer-integration-planner.d.ts.map +1 -1
  106. package/dist/consumer-integration/composition/consumer-integration-planner.js +40 -3
  107. package/dist/consumer-integration/composition/consumer-integration-planner.js.map +1 -1
  108. package/dist/consumer-integration/composition/node-consumer-integration.d.ts +6 -0
  109. package/dist/consumer-integration/composition/node-consumer-integration.d.ts.map +1 -1
  110. package/dist/consumer-integration/composition/node-consumer-integration.js +3 -0
  111. package/dist/consumer-integration/composition/node-consumer-integration.js.map +1 -1
  112. package/dist/consumer-integration/composition/qualification-v3-boundary.d.ts +20 -0
  113. package/dist/consumer-integration/composition/qualification-v3-boundary.d.ts.map +1 -0
  114. package/dist/consumer-integration/composition/qualification-v3-boundary.js +29 -0
  115. package/dist/consumer-integration/composition/qualification-v3-boundary.js.map +1 -0
  116. package/dist/consumer-integration/domain/model.d.ts +61 -0
  117. package/dist/consumer-integration/domain/model.d.ts.map +1 -1
  118. package/dist/consumer-integration/generated/canonical-assets.d.ts +3 -2
  119. package/dist/consumer-integration/generated/canonical-assets.d.ts.map +1 -1
  120. package/dist/consumer-integration/generated/canonical-assets.js +3 -2
  121. package/dist/consumer-integration/generated/canonical-assets.js.map +1 -1
  122. package/dist/consumer-integration/index.d.ts +3 -1
  123. package/dist/consumer-integration/index.d.ts.map +1 -1
  124. package/dist/consumer-integration/index.js +1 -0
  125. package/dist/consumer-integration/index.js.map +1 -1
  126. package/dist/index.d.ts +2 -1
  127. package/dist/index.d.ts.map +1 -1
  128. package/dist/index.js +1 -1
  129. package/dist/index.js.map +1 -1
  130. package/dist/qualification/index.d.ts +6 -0
  131. package/dist/qualification/index.d.ts.map +1 -1
  132. package/dist/qualification/index.js +3 -0
  133. package/dist/qualification/index.js.map +1 -1
  134. package/dist/qualification/qualification-v3-authority.d.ts +14 -0
  135. package/dist/qualification/qualification-v3-authority.d.ts.map +1 -0
  136. package/dist/qualification/qualification-v3-authority.js +5 -0
  137. package/dist/qualification/qualification-v3-authority.js.map +1 -0
  138. package/dist/qualification/qualification-v3-observer.d.ts +7 -0
  139. package/dist/qualification/qualification-v3-observer.d.ts.map +1 -0
  140. package/dist/qualification/qualification-v3-observer.js +22 -0
  141. package/dist/qualification/qualification-v3-observer.js.map +1 -0
  142. package/dist/qualification/qualification-v3-runner.d.ts +7 -0
  143. package/dist/qualification/qualification-v3-runner.d.ts.map +1 -0
  144. package/dist/qualification/qualification-v3-runner.js +95 -0
  145. package/dist/qualification/qualification-v3-runner.js.map +1 -0
  146. package/dist/qualification/v3-contract.d.ts +58 -0
  147. package/dist/qualification/v3-contract.d.ts.map +1 -0
  148. package/dist/qualification/v3-contract.js +2 -0
  149. package/dist/qualification/v3-contract.js.map +1 -0
  150. package/package.json +3 -3
  151. package/schemas/docs-consumer-integration-profile/v3.schema.json +68 -0
  152. package/schemas/docs-consumer-managed-state/v2.schema.json +120 -0
  153. package/schemas/docs-protocol-qualification-receipt/v3.schema.json +118 -0
  154. package/schemas/qualified-docs-cohort/v2.schema.json +149 -0
  155. package/skills/docs/SKILL.md +8 -6
@@ -0,0 +1,89 @@
1
+ import { createHash } from "node:crypto";
2
+ import { rm } from "node:fs/promises";
3
+ import { isAbsolute, relative, resolve as resolvePath, sep } from "node:path";
4
+ import { ConsumerIntegrationNodeError } from "./consumer-integration-node-error.js";
5
+ import { INTEGRATION_PROFILE_PATH, MAXIMUM_LOCKFILE_BYTES, MAXIMUM_MANAGED_ASSET_BYTES, MAXIMUM_MANIFEST_BYTES, MAXIMUM_PROFILE_BYTES, readStableConsumerFile, sameConsumerFileObservation } from "./node-consumer-repository-files.js";
6
+ const WORKSPACE_PATH = "pnpm-workspace.yaml";
7
+ export async function assertCleanConsumerGitSource(root, execute) {
8
+ const status = await execute("git", [
9
+ "status", "--porcelain=v1", "--untracked-files=all", "--", ".",
10
+ ":(exclude).agent-teams-local", ":(exclude).agent-teams-local/**"
11
+ ], root);
12
+ if (status.stdout !== "") {
13
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_DIRTY_WORKTREE", "One-command Cohort upgrade requires a clean consumer Git worktree.");
14
+ }
15
+ const head = (await execute("git", ["rev-parse", "HEAD"], root)).stdout.trim();
16
+ if (!/^(?!0{40}$)[0-9a-f]{40}$/u.test(head)) {
17
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_GIT_INVALID", "Consumer worktree must have one exact Git HEAD.");
18
+ }
19
+ return head;
20
+ }
21
+ export function allowedUpgradePaths(current) {
22
+ return new Set([
23
+ "AGENTS.md",
24
+ INTEGRATION_PROFILE_PATH,
25
+ "package.json",
26
+ "pnpm-lock.yaml",
27
+ WORKSPACE_PATH,
28
+ current.skillPath,
29
+ current.callerWorkflowPath,
30
+ current.managedStatePath
31
+ ]);
32
+ }
33
+ function contained(root, repositoryPath) {
34
+ const path = resolvePath(root, repositoryPath);
35
+ const relation = relative(root, path);
36
+ if (isAbsolute(relation) || relation === ".." || relation.startsWith(`..${sep}`)) {
37
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_PATH_ESCAPE", `Upgrade path escapes the disposable repository: ${repositoryPath}.`);
38
+ }
39
+ return path;
40
+ }
41
+ export async function assertProvedSourceSnapshot(input) {
42
+ const definitions = [
43
+ ["integrationProfile", INTEGRATION_PROFILE_PATH, MAXIMUM_PROFILE_BYTES, true],
44
+ ["lockfile", "pnpm-lock.yaml", MAXIMUM_LOCKFILE_BYTES, true],
45
+ ["packageManifest", "package.json", MAXIMUM_MANIFEST_BYTES, true],
46
+ ["agents", "AGENTS.md", MAXIMUM_MANAGED_ASSET_BYTES, false],
47
+ ["skill", input.current.skillPath, MAXIMUM_MANAGED_ASSET_BYTES, false],
48
+ ["callerWorkflow", input.current.callerWorkflowPath, MAXIMUM_MANAGED_ASSET_BYTES, false],
49
+ ["managedState", input.current.managedStatePath, MAXIMUM_MANAGED_ASSET_BYTES, false]
50
+ ];
51
+ for (const [key, path, byteLimit, required] of definitions) {
52
+ const observed = await readStableConsumerFile(input.sourceRoot, path, byteLimit, required);
53
+ if (!sameConsumerFileObservation(input.expected[key], observed)) {
54
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_SOURCE_CHANGED", `Committed source differs from the proved source snapshot: ${path}.`);
55
+ }
56
+ }
57
+ }
58
+ function sha256(bytes) {
59
+ return `sha256:${createHash("sha256").update(bytes).digest("hex")}`;
60
+ }
61
+ export async function resetProvedManagedAssetsV2(input) {
62
+ const entries = [
63
+ [input.current.callerWorkflowPath, input.managedPreimages.callerWorkflow],
64
+ [input.current.managedStatePath, input.managedPreimages.managedState],
65
+ [input.current.skillPath, input.managedPreimages.skill]
66
+ ];
67
+ if (new Set(entries.map(([path]) => path)).size !== entries.length) {
68
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_SOURCE_CHANGED", "Managed source asset paths are not distinct.");
69
+ }
70
+ for (const [path, proof] of entries) {
71
+ if (proof.path !== path) {
72
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_SOURCE_CHANGED", `Managed source asset proof path differs from the profile: ${path}.`);
73
+ }
74
+ const observed = await readStableConsumerFile(input.stagedRoot, path, MAXIMUM_MANAGED_ASSET_BYTES, true);
75
+ if (observed.state !== "file" || observed.mode !== proof.mode ||
76
+ sha256(observed.bytes) !== proof.digest) {
77
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_SOURCE_CHANGED", `Managed source asset differs from the proved source plan: ${path}.`);
78
+ }
79
+ }
80
+ await Promise.all(entries.map(([path]) => rm(contained(input.stagedRoot, path))));
81
+ }
82
+ export async function assertManagedAssetsCreatedV2(root, current) {
83
+ await Promise.all([
84
+ current.callerWorkflowPath,
85
+ current.managedStatePath,
86
+ current.skillPath
87
+ ].map((path) => readStableConsumerFile(root, path, MAXIMUM_MANAGED_ASSET_BYTES, true)));
88
+ }
89
+ //# sourceMappingURL=node-consumer-upgrade-source-proof.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-consumer-upgrade-source-proof.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-upgrade-source-proof.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ interface ProcessResult {
2
+ readonly code: number;
3
+ readonly stderr: string;
4
+ readonly stdout: string;
5
+ }
6
+ type Execute = (executable: string, args: readonly string[], cwd: string, allowedExitCodes?: readonly number[]) => Promise<ProcessResult>;
7
+ export declare function assertInstalledIntegrationCurrent(root: string, execute: Execute): Promise<void>;
8
+ export declare function assertInstalledHistoricalIntegrationCurrent(root: string, execute: Execute): Promise<void>;
9
+ export declare function applyTargetIntegration(root: string, cohortId: string, execute: Execute): Promise<void>;
10
+ export {};
11
+ //# sourceMappingURL=node-consumer-upgrade-target.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-consumer-upgrade-target.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-upgrade-target.ts"],"names":[],"mappings":"AAKA,UAAU,aAAa;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,KAAK,OAAO,GAAG,CACb,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,EAAE,MAAM,EACX,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,KACjC,OAAO,CAAC,aAAa,CAAC,CAAC;AAsC5B,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,2CAA2C,CAC/D,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
@@ -0,0 +1,55 @@
1
+ import { lstat } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { ConsumerIntegrationNodeError } from "./consumer-integration-node-error.js";
4
+ function parseExecution(result) {
5
+ try {
6
+ const parsed = JSON.parse(result.stdout);
7
+ if (typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)) {
8
+ return parsed;
9
+ }
10
+ }
11
+ catch { }
12
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_TARGET_INVALID", "Target Docs Protocol CLI did not return one JSON execution envelope.");
13
+ }
14
+ async function invoke(root, args, execute, owner = "managed-target") {
15
+ const packageName = owner === "historical-source" ? "docs-protocol" : "docs-protocol-agent-teams";
16
+ const cli = join(root, "node_modules", "@agent-teams", packageName, "dist", "cli.js");
17
+ const metadata = await lstat(cli);
18
+ if (!metadata.isFile() || metadata.isSymbolicLink() || metadata.nlink > 1) {
19
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_TARGET_INVALID", "Installed target Docs Protocol CLI is not one regular package file.");
20
+ }
21
+ return parseExecution(await execute(process.execPath, [cli, ...args, "--consumer", root, "--json"], root, [0, 1]));
22
+ }
23
+ export async function assertInstalledIntegrationCurrent(root, execute) {
24
+ if ((await invoke(root, ["check"], execute))["outcome"] !== "current") {
25
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_TARGET_BLOCKED", "Target Docs Protocol check did not converge in the disposable repository.");
26
+ }
27
+ }
28
+ export async function assertInstalledHistoricalIntegrationCurrent(root, execute) {
29
+ const result = await invoke(root, ["consumer", "check"], execute, "historical-source");
30
+ if (result["outcome"] !== "current") {
31
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_SOURCE_NOT_CURRENT", "Restored historical Docs Protocol check did not converge.");
32
+ }
33
+ }
34
+ export async function applyTargetIntegration(root, cohortId, execute) {
35
+ const plan = await invoke(root, ["plan", "--to", cohortId], execute);
36
+ if (plan["outcome"] === "change-required") {
37
+ const value = plan["plan"];
38
+ const digest = typeof value === "object" && value !== null && !Array.isArray(value)
39
+ ? value["planDigest"] : undefined;
40
+ if (typeof digest !== "string") {
41
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_TARGET_INVALID", "Target Docs Protocol Plan did not expose one exact digest.");
42
+ }
43
+ const applied = await invoke(root, ["apply", "--expect", digest], execute);
44
+ if (applied["outcome"] !== "applied" && applied["outcome"] !== "current") {
45
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_TARGET_BLOCKED", "Target Docs Protocol apply did not converge in the disposable repository.");
46
+ }
47
+ }
48
+ else if (plan["outcome"] !== "current") {
49
+ const issues = Array.isArray(plan["issues"])
50
+ ? JSON.stringify(plan["issues"]).slice(0, 4000) : "no bounded issue detail";
51
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_TARGET_BLOCKED", `Target Docs Protocol rejected the projected Cohort in the disposable repository: ${issues}`);
52
+ }
53
+ await assertInstalledIntegrationCurrent(root, execute);
54
+ }
55
+ //# sourceMappingURL=node-consumer-upgrade-target.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-consumer-upgrade-target.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-upgrade-target.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export declare function validPnpmPeerContext(value: unknown, exactVersion: string): value is string;
2
- export declare function targetsManagedPackage(value: unknown): boolean;
2
+ export declare function targetsManagedPackage(value: unknown, packageNames: readonly string[]): boolean;
3
3
  //# sourceMappingURL=pnpm-lockfile-policy-v1.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pnpm-lockfile-policy-v1.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/pnpm-lockfile-policy-v1.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,KAAK,IAAI,MAAM,CAgB1F;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAM7D"}
1
+ {"version":3,"file":"pnpm-lockfile-policy-v1.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/pnpm-lockfile-policy-v1.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,KAAK,IAAI,MAAM,CAgB1F;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,OAAO,CAKT"}
@@ -27,11 +27,10 @@ export function validPnpmPeerContext(value, exactVersion) {
27
27
  }
28
28
  return contentByDepth.length === 0;
29
29
  }
30
- export function targetsManagedPackage(value) {
30
+ export function targetsManagedPackage(value, packageNames) {
31
31
  if (typeof value !== "object" || value === null || Array.isArray(value)) {
32
32
  return false;
33
33
  }
34
- return Object.keys(value).some((key) => key.includes("@agent-teams/docs-protocol") ||
35
- key.includes("@agent-teams/engineering-foundation"));
34
+ return Object.keys(value).some((key) => packageNames.some((packageName) => key.includes(packageName)));
36
35
  }
37
36
  //# sourceMappingURL=pnpm-lockfile-policy-v1.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pnpm-lockfile-policy-v1.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/pnpm-lockfile-policy-v1.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB,CAAC,KAAc,EAAE,YAAoB;IACvE,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;QAAA,OAAO,IAAI,CAAC;IAAA,CAAC;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC;QAAA,OAAO,KAAK,CAAC;IAAA,CAAC;IACvF,MAAM,cAAc,GAAc,EAAE,CAAC;IACrC,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YAC7B,IAAI,cAAc,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC;gBAAA,OAAO,KAAK,CAAC;YAAA,CAAC;YAClD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAAA,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YAAA,CAAC;QACpF,CAAC;aAAM,CAAC;YACN,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBAAA,OAAO,KAAK,CAAC;YAAA,CAAC;YACzE,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;QACnD,CAAC;IACH,CAAC;IACD,OAAO,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAAA,OAAO,KAAK,CAAC;IAAA,CAAC;IACxF,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACrC,GAAG,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAC1C,GAAG,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CACpD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"pnpm-lockfile-policy-v1.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/pnpm-lockfile-policy-v1.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB,CAAC,KAAc,EAAE,YAAoB;IACvE,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;QAAA,OAAO,IAAI,CAAC;IAAA,CAAC;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC;QAAA,OAAO,KAAK,CAAC;IAAA,CAAC;IACvF,MAAM,cAAc,GAAc,EAAE,CAAC;IACrC,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YAC7B,IAAI,cAAc,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC;gBAAA,OAAO,KAAK,CAAC;YAAA,CAAC;YAClD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAAA,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YAAA,CAAC;QACpF,CAAC;aAAM,CAAC;YACN,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBAAA,OAAO,KAAK,CAAC;YAAA,CAAC;YACzE,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;QACnD,CAAC;IACH,CAAC;IACD,OAAO,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAc,EACd,YAA+B;IAE/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAAA,OAAO,KAAK,CAAC;IAAA,CAAC;IACxF,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACrC,YAAY,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAC9D,CAAC;AACJ,CAAC"}
@@ -1,3 +1,22 @@
1
1
  import type { ConsumerIntegrationDesiredStateV1 } from "../domain/model.js";
2
+ export interface QualifiedPnpmLockfileTarget {
3
+ readonly name: string;
4
+ readonly version: string;
5
+ readonly integrity: string;
6
+ readonly direct?: boolean;
7
+ }
8
+ export interface QualifiedPnpmLockfileInternalEdge {
9
+ readonly from: string;
10
+ readonly to: string;
11
+ }
12
+ export declare function assertQualifiedPnpmLockfileTargets(bytes: Uint8Array, options: {
13
+ readonly targets: readonly QualifiedPnpmLockfileTarget[];
14
+ readonly internalEdges: readonly QualifiedPnpmLockfileInternalEdge[];
15
+ readonly runtimeClosureDigest: string;
16
+ readonly computeRuntimeClosureDigest: (lockfile: Record<string, unknown>) => `sha256:${string}`;
17
+ readonly forbiddenAliasTargetPackageNames?: readonly string[];
18
+ /** V1 historically validates closure safety without binding the consumer's full graph digest. */
19
+ readonly enforceRuntimeClosureDigest?: boolean;
20
+ }): void;
2
21
  export declare function assertQualifiedPnpmLockfileV1(bytes: Uint8Array, desired: ConsumerIntegrationDesiredStateV1): void;
3
22
  //# sourceMappingURL=pnpm-lockfile-validator-v1.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pnpm-lockfile-validator-v1.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/pnpm-lockfile-validator-v1.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,oBAAoB,CAAC;AA+E5E,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,iCAAiC,GACzC,IAAI,CAiHN"}
1
+ {"version":3,"file":"pnpm-lockfile-validator-v1.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/pnpm-lockfile-validator-v1.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,oBAAoB,CAAC;AAQ5E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAkSD,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE;IACP,QAAQ,CAAC,OAAO,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACzD,QAAQ,CAAC,aAAa,EAAE,SAAS,iCAAiC,EAAE,CAAC;IACrE,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,2BAA2B,EAAE,CACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,UAAU,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,gCAAgC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9D,iGAAiG;IACjG,QAAQ,CAAC,2BAA2B,CAAC,EAAE,OAAO,CAAC;CAChD,GACA,IAAI,CAwEN;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,iCAAiC,GACzC,IAAI,CAkBN"}
@@ -8,6 +8,9 @@ function yamlRecord(value, subject) {
8
8
  }
9
9
  return value;
10
10
  }
11
+ function yamlOptionalRecord(value, subject) {
12
+ return value === undefined ? {} : yamlRecord(value, subject);
13
+ }
11
14
  function assertRegistryPackageEntry(options) {
12
15
  const resolution = yamlRecord(options.packageEntry["resolution"], `pnpm-lock.yaml#packages.${options.packageName}.resolution`);
13
16
  if (resolution["integrity"] !== options.integrity) {
@@ -36,11 +39,45 @@ function assertRootOwnsCohortPins(importers, packageNames) {
36
39
  }
37
40
  }
38
41
  }
39
- function assertRegistryBoundRuntimeClosure(lockfile, desired) {
42
+ function targetsNpmAlias(value, packageNames) {
43
+ const candidates = typeof value === "string"
44
+ ? [value]
45
+ : typeof value === "object" && value !== null && !Array.isArray(value)
46
+ ? [
47
+ value["specifier"],
48
+ value["version"]
49
+ ]
50
+ : [];
51
+ return candidates.some((candidate) => typeof candidate === "string" &&
52
+ packageNames.some((packageName) => candidate === `npm:${packageName}` || candidate.startsWith(`npm:${packageName}@`) ||
53
+ candidate === packageName || candidate.startsWith(`${packageName}@`)));
54
+ }
55
+ function assertNoCohortAliases(importers, packageNames) {
56
+ for (const [importerPath, importerValue] of Object.entries(importers)) {
57
+ const importer = yamlRecord(importerValue, `pnpm-lock.yaml#importers.${importerPath}`);
58
+ for (const field of [
59
+ "dependencies", "devDependencies", "optionalDependencies", "peerDependencies"
60
+ ]) {
61
+ if (importer[field] === undefined) {
62
+ continue;
63
+ }
64
+ const declarations = yamlRecord(importer[field], `pnpm-lock.yaml#importers.${importerPath}.${field}`);
65
+ for (const [alias, declaration] of Object.entries(declarations)) {
66
+ if (targetsNpmAlias(declaration, packageNames)) {
67
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_COHORT_ALIAS_FORBIDDEN", `pnpm importer ${importerPath} alias ${alias} must not target a Cohort package.`);
68
+ }
69
+ }
70
+ }
71
+ }
72
+ }
73
+ function assertRegistryBoundRuntimeClosure(lockfile, compute, expectedDigest, enforceDigest) {
40
74
  try {
41
75
  // The Cohort digest qualifies the isolated release graph. A consumer may select
42
76
  // compatible transitives or peer contexts, but every reachable edge stays registry/SRI bound.
43
- computePnpmRuntimeClosureDigestV1(lockfile, desired.cohort);
77
+ const observedDigest = compute(lockfile);
78
+ if (enforceDigest && observedDigest !== expectedDigest) {
79
+ throw new PnpmRuntimeClosureError("Runtime closure digest differs from the selected Cohort.");
80
+ }
44
81
  }
45
82
  catch (error) {
46
83
  if (error instanceof PnpmRuntimeClosureError) {
@@ -49,22 +86,128 @@ function assertRegistryBoundRuntimeClosure(lockfile, desired) {
49
86
  throw error;
50
87
  }
51
88
  }
52
- export function assertQualifiedPnpmLockfileV1(bytes, desired) {
89
+ function assertTargetSnapshots(input) {
90
+ const snapshotKeys = new Map();
91
+ for (const target of input.targets) {
92
+ const packageName = target.name;
93
+ const direct = target.direct ?? true;
94
+ snapshotKeys.set(packageName, new Set());
95
+ const importerValue = input.devDependencies[packageName];
96
+ if (!direct && importerValue !== undefined) {
97
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_LOCKFILE_COHORT_MISMATCH", `${packageName} is a transitive Cohort coordinate and must not be a root importer pin.`);
98
+ }
99
+ if (direct) {
100
+ const importerEntry = yamlRecord(importerValue, `pnpm-lock.yaml#importers...${packageName}`);
101
+ if (importerEntry["specifier"] !== target.version ||
102
+ !validPnpmPeerContext(importerEntry["version"], target.version)) {
103
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_LOCKFILE_COHORT_MISMATCH", `${packageName} importer evidence must select exact cohort version ${target.version}.`);
104
+ }
105
+ const snapshotKey = `${packageName}@${String(importerEntry["version"])}`;
106
+ if (input.snapshots[snapshotKey] === undefined) {
107
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_LOCKFILE_SNAPSHOT_MISSING", `${packageName} has no snapshot selected by the root importer.`);
108
+ }
109
+ snapshotKeys.get(packageName).add(snapshotKey);
110
+ }
111
+ const packageEntry = yamlRecord(input.packages[`${packageName}@${target.version}`], `pnpm-lock.yaml#packages.${packageName}`);
112
+ assertRegistryPackageEntry({ integrity: target.integrity, packageEntry, packageName });
113
+ }
114
+ return snapshotKeys;
115
+ }
116
+ function assertSinglePackageResolutions(packages, targets) {
117
+ for (const target of targets) {
118
+ const packageName = target.name;
119
+ const prefix = `${packageName}@`;
120
+ const keys = Object.keys(packages).filter((key) => key.startsWith(prefix));
121
+ if (keys.length !== 1 || keys[0] !== `${prefix}${target.version}`) {
122
+ throw new ConsumerIntegrationNodeError(packageName.endsWith("engineering-foundation")
123
+ ? "DOCS_CONSUMER_DUPLICATE_FOUNDATION_RESOLUTION"
124
+ : packageName.endsWith("docs-protocol")
125
+ ? "DOCS_CONSUMER_DUPLICATE_DOCS_PROTOCOL_RESOLUTION"
126
+ : "DOCS_CONSUMER_DUPLICATE_COHORT_RESOLUTION", `pnpm-lock.yaml must contain exactly one physical cohort ${packageName} resolution.`);
127
+ }
128
+ }
129
+ }
130
+ function assertInternalEdges(input) {
131
+ const targetByName = new Map(input.targets.map((target) => [target.name, target]));
132
+ const allowedTargetsBySource = new Map();
133
+ for (const edge of input.edges) {
134
+ const source = targetByName.get(edge.from);
135
+ const target = targetByName.get(edge.to);
136
+ if (source === undefined || target === undefined) {
137
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_COHORT_DEPENDENCY_MISMATCH", `Internal Cohort edge ${edge.from} -> ${edge.to} has no declared coordinate.`);
138
+ }
139
+ const allowedTargets = allowedTargetsBySource.get(source.name) ?? new Set();
140
+ allowedTargets.add(target.name);
141
+ allowedTargetsBySource.set(source.name, allowedTargets);
142
+ }
143
+ const selectedSnapshots = new Map([...input.snapshotKeys].map(([name, keys]) => [name, new Set(keys)]));
144
+ const pending = input.targets.flatMap((target) => [...(selectedSnapshots.get(target.name) ?? [])].map((snapshotKey) => ({
145
+ source: target,
146
+ snapshotKey
147
+ })));
148
+ const visited = new Set();
149
+ while (pending.length > 0) {
150
+ const { source, snapshotKey } = pending.shift();
151
+ if (visited.has(snapshotKey)) {
152
+ continue;
153
+ }
154
+ visited.add(snapshotKey);
155
+ const sourceSnapshot = yamlRecord(input.snapshots[snapshotKey], `pnpm-lock.yaml#snapshots.${snapshotKey}`);
156
+ const dependencies = yamlOptionalRecord(sourceSnapshot["dependencies"], `pnpm-lock.yaml#snapshots.${source.name}.dependencies`);
157
+ const optionalDependencies = yamlOptionalRecord(sourceSnapshot["optionalDependencies"], `pnpm-lock.yaml#snapshots.${source.name}.optionalDependencies`);
158
+ const allowedTargets = allowedTargetsBySource.get(source.name) ?? new Set();
159
+ for (const target of input.targets) {
160
+ const dependency = dependencies[target.name];
161
+ const optionalDependency = optionalDependencies[target.name];
162
+ if (optionalDependency !== undefined) {
163
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_COHORT_DEPENDENCY_MISMATCH", `${source.name} must not optionally depend on Cohort package ${target.name}.`);
164
+ }
165
+ if (allowedTargets.has(target.name)) {
166
+ if (!validPnpmPeerContext(dependency, target.version)) {
167
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_COHORT_DEPENDENCY_MISMATCH", `${source.name} must depend on exact Cohort ${target.name}@${target.version}.`);
168
+ }
169
+ const targetSnapshotKey = `${target.name}@${String(dependency)}`;
170
+ if (input.snapshots[targetSnapshotKey] === undefined) {
171
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_LOCKFILE_SNAPSHOT_MISSING", `${source.name} selects missing Cohort snapshot ${targetSnapshotKey}.`);
172
+ }
173
+ const targetSelections = selectedSnapshots.get(target.name);
174
+ if (!targetSelections.has(targetSnapshotKey)) {
175
+ targetSelections.add(targetSnapshotKey);
176
+ pending.push({ source: target, snapshotKey: targetSnapshotKey });
177
+ }
178
+ }
179
+ else if (dependency !== undefined) {
180
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_COHORT_DEPENDENCY_MISMATCH", `${source.name} has forbidden extra Cohort dependency ${target.name}.`);
181
+ }
182
+ }
183
+ }
184
+ for (const target of input.targets) {
185
+ if ((selectedSnapshots.get(target.name)?.size ?? 0) === 0) {
186
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_LOCKFILE_SNAPSHOT_MISSING", `${target.name} has no snapshot reachable from the root Cohort pins.`);
187
+ }
188
+ }
189
+ }
190
+ export function assertQualifiedPnpmLockfileTargets(bytes, options) {
53
191
  const document = parseDocument(Buffer.from(bytes).toString("utf8"), { uniqueKeys: true });
54
192
  if (document.errors.length > 0) {
55
193
  throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_LOCKFILE_INVALID", "pnpm-lock.yaml must be duplicate-free YAML.");
56
194
  }
57
195
  const lockfile = yamlRecord(document.toJS({ maxAliasCount: 0 }), "pnpm-lock.yaml");
58
196
  if (String(lockfile["lockfileVersion"]) !== "9.0") {
59
- throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_LOCKFILE_INVALID", "V1 requires pnpm lockfileVersion 9.0.");
197
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_LOCKFILE_INVALID", "Managed consumer integration requires pnpm lockfileVersion 9.0.");
60
198
  }
61
- if (targetsManagedPackage(lockfile["overrides"]) ||
62
- targetsManagedPackage(lockfile["patchedDependencies"])) {
199
+ const targetPackageNames = options.targets.map(({ name }) => name);
200
+ if (targetsManagedPackage(lockfile["overrides"], targetPackageNames) ||
201
+ targetsManagedPackage(lockfile["patchedDependencies"], targetPackageNames)) {
63
202
  throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_LOCKFILE_OVERRIDE", "Docs Protocol cohort packages must not use lockfile overrides or patches.");
64
203
  }
65
204
  const importers = yamlRecord(lockfile["importers"], "pnpm-lock.yaml#importers");
66
205
  if (importers["."] === undefined) {
67
- throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UNSUPPORTED_WORKSPACE", "V1 requires one root pnpm importer in the repository lockfile.");
206
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UNSUPPORTED_WORKSPACE", "Managed consumer integration requires one root pnpm importer.");
207
+ }
208
+ const forbiddenAliasTargetPackageNames = options.forbiddenAliasTargetPackageNames ?? [];
209
+ if (forbiddenAliasTargetPackageNames.length > 0) {
210
+ assertNoCohortAliases(importers, forbiddenAliasTargetPackageNames);
68
211
  }
69
212
  const importer = yamlRecord(importers["."], "pnpm-lock.yaml#importers.");
70
213
  const devDependencies = yamlRecord(importer["devDependencies"], "pnpm-lock.yaml#importers...devDependencies");
@@ -74,47 +217,44 @@ export function assertQualifiedPnpmLockfileV1(bytes, desired) {
74
217
  continue;
75
218
  }
76
219
  const record = yamlRecord(declarations, `pnpm-lock.yaml#importers...${field}`);
77
- if (["@agent-teams/docs-protocol", "@agent-teams/engineering-foundation"]
78
- .some((packageName) => record[packageName] !== undefined)) {
220
+ if (targetPackageNames.some((packageName) => record[packageName] !== undefined)) {
79
221
  throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_NON_DEV_DEPENDENCY", "Docs Protocol cohort packages may be declared only in root devDependencies.");
80
222
  }
81
223
  }
82
224
  const packages = yamlRecord(lockfile["packages"], "pnpm-lock.yaml#packages");
83
225
  const snapshots = yamlRecord(lockfile["snapshots"], "pnpm-lock.yaml#snapshots");
84
- const targets = [
85
- ["@agent-teams/docs-protocol", desired.cohort.packages.docsProtocol],
86
- ["@agent-teams/engineering-foundation", desired.cohort.packages.engineeringFoundation]
87
- ];
88
- assertRootOwnsCohortPins(importers, targets.map(([packageName]) => packageName));
89
- for (const [packageName, target] of targets) {
90
- const importerEntry = yamlRecord(devDependencies[packageName], `pnpm-lock.yaml#importers...${packageName}`);
91
- const selectedVersion = importerEntry["version"];
92
- if (importerEntry["specifier"] !== target.version ||
93
- !validPnpmPeerContext(selectedVersion, target.version)) {
94
- throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_LOCKFILE_COHORT_MISMATCH", `${packageName} importer evidence must select exact cohort version ${target.version}.`);
95
- }
96
- const packageEntry = yamlRecord(packages[`${packageName}@${target.version}`], `pnpm-lock.yaml#packages.${packageName}`);
97
- assertRegistryPackageEntry({ integrity: target.integrity, packageEntry, packageName });
98
- const snapshotKey = `${packageName}@${selectedVersion}`;
99
- if (snapshots[snapshotKey] === undefined) {
100
- throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_LOCKFILE_SNAPSHOT_MISSING", `${packageName} must have the exact selected pnpm snapshot.`);
101
- }
102
- }
103
- for (const [packageName, target] of targets) {
104
- const prefix = `${packageName}@`;
105
- const keys = Object.keys(packages).filter((key) => key.startsWith(prefix));
106
- if (keys.length !== 1 || keys[0] !== `${prefix}${target.version}`) {
107
- throw new ConsumerIntegrationNodeError(packageName.endsWith("engineering-foundation")
108
- ? "DOCS_CONSUMER_DUPLICATE_FOUNDATION_RESOLUTION"
109
- : "DOCS_CONSUMER_DUPLICATE_DOCS_PROTOCOL_RESOLUTION", `pnpm-lock.yaml must contain exactly one physical cohort ${packageName} resolution.`);
110
- }
111
- }
112
- const docsSelection = yamlRecord(devDependencies["@agent-teams/docs-protocol"], "pnpm-lock.yaml#importers...docs-protocol")["version"];
113
- const docsSnapshot = yamlRecord(snapshots[`@agent-teams/docs-protocol@${String(docsSelection)}`], "pnpm-lock.yaml#snapshots.docs-protocol");
114
- const docsDependencies = yamlRecord(docsSnapshot["dependencies"], "pnpm-lock.yaml#snapshots.docs-protocol.dependencies");
115
- if (!validPnpmPeerContext(docsDependencies["@agent-teams/engineering-foundation"], desired.cohort.packages.engineeringFoundation.version)) {
116
- throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_COHORT_DEPENDENCY_MISMATCH", "The selected Docs Protocol snapshot must depend on the exact cohort Foundation version.");
117
- }
118
- assertRegistryBoundRuntimeClosure(lockfile, desired);
226
+ assertRootOwnsCohortPins(importers, targetPackageNames);
227
+ const snapshotKeys = assertTargetSnapshots({
228
+ devDependencies,
229
+ packages,
230
+ snapshots,
231
+ targets: options.targets
232
+ });
233
+ assertSinglePackageResolutions(packages, options.targets);
234
+ assertInternalEdges({
235
+ edges: options.internalEdges,
236
+ snapshots,
237
+ snapshotKeys,
238
+ targets: options.targets
239
+ });
240
+ assertRegistryBoundRuntimeClosure(lockfile, options.computeRuntimeClosureDigest, options.runtimeClosureDigest, options.enforceRuntimeClosureDigest ?? true);
241
+ }
242
+ export function assertQualifiedPnpmLockfileV1(bytes, desired) {
243
+ assertQualifiedPnpmLockfileTargets(bytes, {
244
+ targets: [
245
+ { name: "@agent-teams/docs-protocol", ...desired.cohort.packages.docsProtocol },
246
+ {
247
+ name: "@agent-teams/engineering-foundation",
248
+ ...desired.cohort.packages.engineeringFoundation
249
+ }
250
+ ],
251
+ internalEdges: [{
252
+ from: "@agent-teams/docs-protocol",
253
+ to: "@agent-teams/engineering-foundation"
254
+ }],
255
+ runtimeClosureDigest: desired.cohort.runtime.runtimeClosureDigest,
256
+ enforceRuntimeClosureDigest: false,
257
+ computeRuntimeClosureDigest: (lockfile) => computePnpmRuntimeClosureDigestV1(lockfile, desired.cohort)
258
+ });
119
259
  }
120
260
  //# sourceMappingURL=pnpm-lockfile-validator-v1.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pnpm-lockfile-validator-v1.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/pnpm-lockfile-validator-v1.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pnpm-lockfile-validator-v1.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/pnpm-lockfile-validator-v1.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ConsumerIntegrationDesiredStateV3 } from "../domain/model.js";
2
+ export declare function observeQualifiedPnpmLockfileV2(bytes: Uint8Array, desired: ConsumerIntegrationDesiredStateV3): `sha256:${string}`;
3
+ export declare function assertQualifiedPnpmLockfileV2(bytes: Uint8Array, desired: ConsumerIntegrationDesiredStateV3): void;
4
+ //# sourceMappingURL=pnpm-lockfile-validator-v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pnpm-lockfile-validator-v2.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/pnpm-lockfile-validator-v2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,oBAAoB,CAAC;AAuE5E,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,iCAAiC,GACzC,UAAU,MAAM,EAAE,CAEpB;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,iCAAiC,GACzC,IAAI,CAEN"}