@agent-teams/docs-protocol-agent-teams 0.0.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 (203) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/LICENSE +201 -0
  3. package/README.md +24 -0
  4. package/assets/catalog.json +1 -0
  5. package/assets/docs-protocol.yml +14 -0
  6. package/assets/history/sha256-097df9fe1b90ab45f73389c8b69736f8a54d4199b09536d586222b5a7f0fbb09/caller.yml +13 -0
  7. package/assets/history/sha256-3e53262efc8a530b532380dac21d876456473d3b88aba20889a1d24823bf3a1b/caller.yml +14 -0
  8. package/assets/history/sha256-51d3f02a352ce2c3b0a4068a86b6899a57ab54b0a876c468e3fb3e536519caca/caller.yml +14 -0
  9. package/assets/history/sha256-641265ef9ecff59c16482fdae1bc8fc56002b5a4a1ee34b102438d0ca08a86a3/skill.md +29 -0
  10. package/assets/history/sha256-7907195753506e4b0f0e89eb3f6e495bacbd79e9b9913c9f60fc4a07dffb22e5/caller.yml +14 -0
  11. package/assets/history/sha256-7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e/skill.md +28 -0
  12. package/assets/history/sha256-d697c5c7c9bcfccfc006fcf7e4d4cc8e7c629f9689781b9b0b50f30d82bc019e/caller.yml +14 -0
  13. package/assets/history/sha256-f21dc19277a4ba24bcef90a7071c9cf50adf144769f42d6f74ff4eac9ef117cf/caller.yml +14 -0
  14. package/assets/history/sha256-fd633c3c6337e5cfe51a9f36989bb654381634c5ab4add9e4da71fe40ab4e0dd/caller.yml +14 -0
  15. package/assets/transition-catalog.json +1 -0
  16. package/dist/cli.d.ts +3 -0
  17. package/dist/cli.d.ts.map +1 -0
  18. package/dist/cli.js +4 -0
  19. package/dist/cli.js.map +1 -0
  20. package/dist/composition/managed-cli-input.d.ts +11 -0
  21. package/dist/composition/managed-cli-input.d.ts.map +1 -0
  22. package/dist/composition/managed-cli-input.js +52 -0
  23. package/dist/composition/managed-cli-input.js.map +1 -0
  24. package/dist/composition/managed-cli.d.ts +2 -0
  25. package/dist/composition/managed-cli.d.ts.map +1 -0
  26. package/dist/composition/managed-cli.js +17 -0
  27. package/dist/composition/managed-cli.js.map +1 -0
  28. package/dist/composition/qualification-cli.d.ts +2 -0
  29. package/dist/composition/qualification-cli.d.ts.map +1 -0
  30. package/dist/composition/qualification-cli.js +119 -0
  31. package/dist/composition/qualification-cli.js.map +1 -0
  32. package/dist/consumer-integration/adapters/agents-route-adapter-v1.d.ts +10 -0
  33. package/dist/consumer-integration/adapters/agents-route-adapter-v1.d.ts.map +1 -0
  34. package/dist/consumer-integration/adapters/agents-route-adapter-v1.js +99 -0
  35. package/dist/consumer-integration/adapters/agents-route-adapter-v1.js.map +1 -0
  36. package/dist/consumer-integration/adapters/bounded-repository-topology.d.ts +8 -0
  37. package/dist/consumer-integration/adapters/bounded-repository-topology.d.ts.map +1 -0
  38. package/dist/consumer-integration/adapters/bounded-repository-topology.js +80 -0
  39. package/dist/consumer-integration/adapters/bounded-repository-topology.js.map +1 -0
  40. package/dist/consumer-integration/adapters/consumer-integration-node-error.d.ts +5 -0
  41. package/dist/consumer-integration/adapters/consumer-integration-node-error.d.ts.map +1 -0
  42. package/dist/consumer-integration/adapters/consumer-integration-node-error.js +9 -0
  43. package/dist/consumer-integration/adapters/consumer-integration-node-error.js.map +1 -0
  44. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.d.ts +4 -0
  45. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.d.ts.map +1 -0
  46. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.js +51 -0
  47. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.js.map +1 -0
  48. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.d.ts +21 -0
  49. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.d.ts.map +1 -0
  50. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.js +145 -0
  51. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.js.map +1 -0
  52. package/dist/consumer-integration/adapters/foundation-known-file-transaction.d.ts +3 -0
  53. package/dist/consumer-integration/adapters/foundation-known-file-transaction.d.ts.map +1 -0
  54. package/dist/consumer-integration/adapters/foundation-known-file-transaction.js +7 -0
  55. package/dist/consumer-integration/adapters/foundation-known-file-transaction.js.map +1 -0
  56. package/dist/consumer-integration/adapters/github-cohort-authority-reader.d.ts +21 -0
  57. package/dist/consumer-integration/adapters/github-cohort-authority-reader.d.ts.map +1 -0
  58. package/dist/consumer-integration/adapters/github-cohort-authority-reader.js +215 -0
  59. package/dist/consumer-integration/adapters/github-cohort-authority-reader.js.map +1 -0
  60. package/dist/consumer-integration/adapters/node-consumer-integration-repository.d.ts +13 -0
  61. package/dist/consumer-integration/adapters/node-consumer-integration-repository.d.ts.map +1 -0
  62. package/dist/consumer-integration/adapters/node-consumer-integration-repository.js +213 -0
  63. package/dist/consumer-integration/adapters/node-consumer-integration-repository.js.map +1 -0
  64. package/dist/consumer-integration/adapters/node-consumer-repository-files.d.ts +11 -0
  65. package/dist/consumer-integration/adapters/node-consumer-repository-files.d.ts.map +1 -0
  66. package/dist/consumer-integration/adapters/node-consumer-repository-files.js +81 -0
  67. package/dist/consumer-integration/adapters/node-consumer-repository-files.js.map +1 -0
  68. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.d.ts +19 -0
  69. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.d.ts.map +1 -0
  70. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.js +307 -0
  71. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.js.map +1 -0
  72. package/dist/consumer-integration/adapters/package-consumer-asset-catalog.d.ts +5 -0
  73. package/dist/consumer-integration/adapters/package-consumer-asset-catalog.d.ts.map +1 -0
  74. package/dist/consumer-integration/adapters/package-consumer-asset-catalog.js +150 -0
  75. package/dist/consumer-integration/adapters/package-consumer-asset-catalog.js.map +1 -0
  76. package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.d.ts +3 -0
  77. package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.d.ts.map +1 -0
  78. package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.js +37 -0
  79. package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.js.map +1 -0
  80. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.d.ts +3 -0
  81. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.d.ts.map +1 -0
  82. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.js +120 -0
  83. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.js.map +1 -0
  84. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.d.ts +15 -0
  85. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.d.ts.map +1 -0
  86. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.js +189 -0
  87. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.js.map +1 -0
  88. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.d.ts +8 -0
  89. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.d.ts.map +1 -0
  90. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.js +245 -0
  91. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.js.map +1 -0
  92. package/dist/consumer-integration/adapters/strict-json-record.d.ts +3 -0
  93. package/dist/consumer-integration/adapters/strict-json-record.d.ts.map +1 -0
  94. package/dist/consumer-integration/adapters/strict-json-record.js +27 -0
  95. package/dist/consumer-integration/adapters/strict-json-record.js.map +1 -0
  96. package/dist/consumer-integration/application/model/consumer-integration-execution.d.ts +11 -0
  97. package/dist/consumer-integration/application/model/consumer-integration-execution.d.ts.map +1 -0
  98. package/dist/consumer-integration/application/model/consumer-integration-execution.js +2 -0
  99. package/dist/consumer-integration/application/model/consumer-integration-execution.js.map +1 -0
  100. package/dist/consumer-integration/application/model/consumer-upgrade-execution.d.ts +18 -0
  101. package/dist/consumer-integration/application/model/consumer-upgrade-execution.d.ts.map +1 -0
  102. package/dist/consumer-integration/application/model/consumer-upgrade-execution.js +2 -0
  103. package/dist/consumer-integration/application/model/consumer-upgrade-execution.js.map +1 -0
  104. package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts +58 -0
  105. package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts.map +1 -0
  106. package/dist/consumer-integration/application/policies/consumer-integration-assets.js +154 -0
  107. package/dist/consumer-integration/application/policies/consumer-integration-assets.js.map +1 -0
  108. package/dist/consumer-integration/application/policies/consumer-integration-authority-guards.d.ts +4 -0
  109. package/dist/consumer-integration/application/policies/consumer-integration-authority-guards.d.ts.map +1 -0
  110. package/dist/consumer-integration/application/policies/consumer-integration-authority-guards.js +23 -0
  111. package/dist/consumer-integration/application/policies/consumer-integration-authority-guards.js.map +1 -0
  112. package/dist/consumer-integration/application/policies/consumer-integration-desired-state.d.ts +4 -0
  113. package/dist/consumer-integration/application/policies/consumer-integration-desired-state.d.ts.map +1 -0
  114. package/dist/consumer-integration/application/policies/consumer-integration-desired-state.js +153 -0
  115. package/dist/consumer-integration/application/policies/consumer-integration-desired-state.js.map +1 -0
  116. package/dist/consumer-integration/application/policies/consumer-integration-prior-cohort.d.ts +14 -0
  117. package/dist/consumer-integration/application/policies/consumer-integration-prior-cohort.d.ts.map +1 -0
  118. package/dist/consumer-integration/application/policies/consumer-integration-prior-cohort.js +186 -0
  119. package/dist/consumer-integration/application/policies/consumer-integration-prior-cohort.js.map +1 -0
  120. package/dist/consumer-integration/application/ports/consumer-integration-lifecycle.d.ts +31 -0
  121. package/dist/consumer-integration/application/ports/consumer-integration-lifecycle.d.ts.map +1 -0
  122. package/dist/consumer-integration/application/ports/consumer-integration-lifecycle.js +2 -0
  123. package/dist/consumer-integration/application/ports/consumer-integration-lifecycle.js.map +1 -0
  124. package/dist/consumer-integration/application/ports/consumer-integration-planners.d.ts +35 -0
  125. package/dist/consumer-integration/application/ports/consumer-integration-planners.d.ts.map +1 -0
  126. package/dist/consumer-integration/application/ports/consumer-integration-planners.js +2 -0
  127. package/dist/consumer-integration/application/ports/consumer-integration-planners.js.map +1 -0
  128. package/dist/consumer-integration/application/ports/consumer-upgrade.d.ts +28 -0
  129. package/dist/consumer-integration/application/ports/consumer-upgrade.d.ts.map +1 -0
  130. package/dist/consumer-integration/application/ports/consumer-upgrade.js +2 -0
  131. package/dist/consumer-integration/application/ports/consumer-upgrade.js.map +1 -0
  132. package/dist/consumer-integration/application/use-cases/plan-consumer-integration.d.ts +15 -0
  133. package/dist/consumer-integration/application/use-cases/plan-consumer-integration.d.ts.map +1 -0
  134. package/dist/consumer-integration/application/use-cases/plan-consumer-integration.js +350 -0
  135. package/dist/consumer-integration/application/use-cases/plan-consumer-integration.js.map +1 -0
  136. package/dist/consumer-integration/application/use-cases/run-consumer-integration.d.ts +29 -0
  137. package/dist/consumer-integration/application/use-cases/run-consumer-integration.d.ts.map +1 -0
  138. package/dist/consumer-integration/application/use-cases/run-consumer-integration.js +139 -0
  139. package/dist/consumer-integration/application/use-cases/run-consumer-integration.js.map +1 -0
  140. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.d.ts +13 -0
  141. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.d.ts.map +1 -0
  142. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.js +134 -0
  143. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.js.map +1 -0
  144. package/dist/consumer-integration/composition/consumer-integration-cli.d.ts +3 -0
  145. package/dist/consumer-integration/composition/consumer-integration-cli.d.ts.map +1 -0
  146. package/dist/consumer-integration/composition/consumer-integration-cli.js +241 -0
  147. package/dist/consumer-integration/composition/consumer-integration-cli.js.map +1 -0
  148. package/dist/consumer-integration/composition/consumer-integration-planner.d.ts +19 -0
  149. package/dist/consumer-integration/composition/consumer-integration-planner.d.ts.map +1 -0
  150. package/dist/consumer-integration/composition/consumer-integration-planner.js +14 -0
  151. package/dist/consumer-integration/composition/consumer-integration-planner.js.map +1 -0
  152. package/dist/consumer-integration/composition/node-consumer-integration.d.ts +26 -0
  153. package/dist/consumer-integration/composition/node-consumer-integration.d.ts.map +1 -0
  154. package/dist/consumer-integration/composition/node-consumer-integration.js +38 -0
  155. package/dist/consumer-integration/composition/node-consumer-integration.js.map +1 -0
  156. package/dist/consumer-integration/domain/model.d.ts +111 -0
  157. package/dist/consumer-integration/domain/model.d.ts.map +1 -0
  158. package/dist/consumer-integration/domain/model.js +2 -0
  159. package/dist/consumer-integration/domain/model.js.map +1 -0
  160. package/dist/consumer-integration/generated/canonical-assets.d.ts +5 -0
  161. package/dist/consumer-integration/generated/canonical-assets.d.ts.map +1 -0
  162. package/dist/consumer-integration/generated/canonical-assets.js +6 -0
  163. package/dist/consumer-integration/generated/canonical-assets.js.map +1 -0
  164. package/dist/consumer-integration/index.d.ts +12 -0
  165. package/dist/consumer-integration/index.d.ts.map +1 -0
  166. package/dist/consumer-integration/index.js +7 -0
  167. package/dist/consumer-integration/index.js.map +1 -0
  168. package/dist/index.d.ts +5 -0
  169. package/dist/index.d.ts.map +1 -0
  170. package/dist/index.js +4 -0
  171. package/dist/index.js.map +1 -0
  172. package/dist/qualification/index.d.ts +3 -0
  173. package/dist/qualification/index.d.ts.map +1 -0
  174. package/dist/qualification/index.js +2 -0
  175. package/dist/qualification/index.js.map +1 -0
  176. package/dist/qualification/managed-command-envelope-validator.d.ts +14 -0
  177. package/dist/qualification/managed-command-envelope-validator.d.ts.map +1 -0
  178. package/dist/qualification/managed-command-envelope-validator.js +33 -0
  179. package/dist/qualification/managed-command-envelope-validator.js.map +1 -0
  180. package/dist/qualification/qualification-v2-runner.d.ts +4 -0
  181. package/dist/qualification/qualification-v2-runner.d.ts.map +1 -0
  182. package/dist/qualification/qualification-v2-runner.js +344 -0
  183. package/dist/qualification/qualification-v2-runner.js.map +1 -0
  184. package/dist/qualification/v2-contract.d.ts +91 -0
  185. package/dist/qualification/v2-contract.d.ts.map +1 -0
  186. package/dist/qualification/v2-contract.js +2 -0
  187. package/dist/qualification/v2-contract.js.map +1 -0
  188. package/package.json +66 -0
  189. package/schemas/docs-consumer-integration-execution/v1.schema.json +29 -0
  190. package/schemas/docs-consumer-integration-plan/v1.schema.json +63 -0
  191. package/schemas/docs-consumer-integration-profile/v1.schema.json +110 -0
  192. package/schemas/docs-consumer-integration-profile/v2.schema.json +283 -0
  193. package/schemas/docs-consumer-managed-state/v1.schema.json +99 -0
  194. package/schemas/docs-consumer-upgrade-execution/v1.schema.json +44 -0
  195. package/schemas/docs-protocol-command-envelope/v1.schema.json +239 -0
  196. package/schemas/docs-protocol-command-envelope/v2.schema.json +285 -0
  197. package/schemas/docs-protocol-command-envelope/v3.schema.json +529 -0
  198. package/schemas/docs-protocol-profile/v1.schema.json +46 -0
  199. package/schemas/docs-protocol-profile/v2.schema.json +46 -0
  200. package/schemas/docs-protocol-qualification/v2.schema.json +78 -0
  201. package/schemas/docs-protocol-qualification-receipt/v2.schema.json +113 -0
  202. package/schemas/qualified-docs-cohort/v1.schema.json +96 -0
  203. package/skills/docs/SKILL.md +29 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-consumer-repository-files.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-repository-files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { ConsumerUpgradeSandboxPort, PreparedConsumerUpgradeV1 } from "../application/ports/consumer-upgrade.js";
2
+ import type { ConsumerIntegrationDesiredStateV1, ConsumerUpgradeAuthorityV1 } from "../domain/model.js";
3
+ export declare class NodeConsumerUpgradeSandbox implements ConsumerUpgradeSandboxPort {
4
+ prepare(options: {
5
+ readonly authority: ConsumerUpgradeAuthorityV1;
6
+ readonly consumerRoot: string;
7
+ readonly current: ConsumerIntegrationDesiredStateV1;
8
+ }): Promise<PreparedConsumerUpgradeV1>;
9
+ activateAndVerify(options: {
10
+ readonly authority: ConsumerUpgradeAuthorityV1;
11
+ readonly consumerRoot: string;
12
+ }): Promise<void>;
13
+ restoreAndVerify(options: {
14
+ readonly consumerRoot: string;
15
+ readonly current: ConsumerIntegrationDesiredStateV1;
16
+ }): Promise<void>;
17
+ }
18
+ export declare const nodeConsumerUpgradeSandbox: ConsumerUpgradeSandboxPort;
19
+ //# sourceMappingURL=node-consumer-upgrade-sandbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-consumer-upgrade-sandbox.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-upgrade-sandbox.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACV,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EACV,iCAAiC,EACjC,0BAA0B,EAC3B,MAAM,oBAAoB,CAAC;AA6U5B,qBAAa,0BAA2B,YAAW,0BAA0B;IAC9D,OAAO,CAAC,OAAO,EAAE;QAC5B,QAAQ,CAAC,SAAS,EAAE,0BAA0B,CAAC;QAC/C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,OAAO,EAAE,iCAAiC,CAAC;KACrD,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAsFrC;IAEY,iBAAiB,CAAC,OAAO,EAAE;QACtC,QAAQ,CAAC,SAAS,EAAE,0BAA0B,CAAC;QAC/C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;KAC/B,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhB;IAEY,gBAAgB,CAAC,OAAO,EAAE;QACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,OAAO,EAAE,iCAAiC,CAAC;KACrD,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhB;CACF;AAED,eAAO,MAAM,0BAA0B,EAAE,0BACQ,CAAC"}
@@ -0,0 +1,307 @@
1
+ import { createHash } from "node:crypto";
2
+ import { execFile } from "node:child_process";
3
+ import { lstat, mkdir, mkdtemp, readdir, realpath, readlink, rm, writeFile } from "node:fs/promises";
4
+ import { tmpdir } from "node:os";
5
+ import { dirname, isAbsolute, join, relative, resolve as resolvePath, sep } from "node:path";
6
+ import { projectConsumerIntegrationProfileV1, projectPnpmWorkspaceCohortExclusionsV1, projectPnpmWorkspaceMigrationExclusionsV1 } from "./consumer-upgrade-file-projectors.js";
7
+ import { ConsumerIntegrationNodeError } from "./consumer-integration-node-error.js";
8
+ import { INTEGRATION_PROFILE_PATH, MAXIMUM_LOCKFILE_BYTES, MAXIMUM_MANAGED_ASSET_BYTES, MAXIMUM_MANIFEST_BYTES, MAXIMUM_PROFILE_BYTES, MAXIMUM_WORKSPACE_BYTES, readStableConsumerFile } from "./node-consumer-repository-files.js";
9
+ import { projectPnpmManifestCohortPinsV1 } from "./pnpm-manifest-adapter-v1.js";
10
+ const WORKSPACE_PATH = "pnpm-workspace.yaml";
11
+ const MAXIMUM_PROCESS_OUTPUT_BYTES = 4 * 1024 * 1024;
12
+ const MAXIMUM_INVENTORY_FILES = 100_000;
13
+ const MAXIMUM_INVENTORY_BYTES = 1024 * 1024 * 1024;
14
+ const MAXIMUM_INVENTORY_FILE_BYTES = 64 * 1024 * 1024;
15
+ function execute(executable, args, cwd, allowedExitCodes = [0]) {
16
+ return new Promise((resolve, reject) => {
17
+ execFile(executable, [...args], {
18
+ cwd,
19
+ encoding: "utf8",
20
+ maxBuffer: MAXIMUM_PROCESS_OUTPUT_BYTES,
21
+ signal: AbortSignal.timeout(10 * 60 * 1000),
22
+ windowsHide: true
23
+ }, (error, stdout, stderr) => {
24
+ const code = error === null ? 0 : typeof error.code === "number" ? error.code : undefined;
25
+ if (code !== undefined && allowedExitCodes.includes(code)) {
26
+ resolve({ code, stdout, stderr });
27
+ return;
28
+ }
29
+ const detail = (stderr || stdout).trim().slice(-4000);
30
+ reject(new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_PROCESS_FAILED", `${executable} ${args[0] ?? ""} failed${detail === "" ? "." : `: ${detail}`}`, { cause: error ?? undefined }));
31
+ });
32
+ });
33
+ }
34
+ async function assertCleanGitRoot(root) {
35
+ const status = await execute("git", ["status", "--porcelain=v1", "--untracked-files=all"], root);
36
+ if (status.stdout !== "") {
37
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_DIRTY_WORKTREE", "One-command Cohort upgrade requires a clean consumer Git worktree.");
38
+ }
39
+ const head = (await execute("git", ["rev-parse", "HEAD"], root)).stdout.trim();
40
+ if (!/^(?!0{40}$)[0-9a-f]{40}$/u.test(head)) {
41
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_GIT_INVALID", "Consumer worktree must have one exact Git HEAD.");
42
+ }
43
+ return head;
44
+ }
45
+ function contained(root, repositoryPath) {
46
+ const path = resolvePath(root, repositoryPath);
47
+ const relation = relative(root, path);
48
+ if (isAbsolute(relation) || relation === ".." || relation.startsWith(`..${sep}`)) {
49
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_PATH_ESCAPE", `Upgrade path escapes the disposable repository: ${repositoryPath}.`);
50
+ }
51
+ return path;
52
+ }
53
+ async function writeProjectedFile(root, path, bytes) {
54
+ const target = contained(root, path);
55
+ await mkdir(dirname(target), { recursive: true });
56
+ await writeFile(target, bytes);
57
+ }
58
+ async function runPnpm(root, args) {
59
+ await execute("corepack", ["pnpm", ...args], root);
60
+ }
61
+ function parseConsumerExecution(result) {
62
+ let parsed;
63
+ try {
64
+ parsed = JSON.parse(result.stdout);
65
+ }
66
+ catch {
67
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_TARGET_INVALID", "Target Docs Protocol CLI did not return one JSON execution envelope.");
68
+ }
69
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
70
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_TARGET_INVALID", "Target Docs Protocol CLI returned an invalid execution envelope.");
71
+ }
72
+ return parsed;
73
+ }
74
+ async function invokeInstalledDocs(root, args) {
75
+ const cli = join(root, "node_modules", "@agent-teams", "docs-protocol-agent-teams", "dist", "cli.js");
76
+ const metadata = await lstat(cli);
77
+ if (!metadata.isFile() || metadata.isSymbolicLink() || metadata.nlink > 1) {
78
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_TARGET_INVALID", "Installed target Docs Protocol CLI is not one regular package file.");
79
+ }
80
+ const result = await execute(process.execPath, [cli, ...args, "--consumer", root, "--json"], root, [0, 1]);
81
+ return parseConsumerExecution(result);
82
+ }
83
+ async function applyTargetIntegration(root, cohortId) {
84
+ const plan = await invokeInstalledDocs(root, ["plan", "--to", cohortId]);
85
+ if (plan["outcome"] === "change-required") {
86
+ const planValue = plan["plan"];
87
+ const digest = typeof planValue === "object" && planValue !== null &&
88
+ !Array.isArray(planValue) ? planValue["planDigest"] : undefined;
89
+ if (typeof digest !== "string") {
90
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_TARGET_INVALID", "Target Docs Protocol Plan did not expose one exact digest.");
91
+ }
92
+ const applied = await invokeInstalledDocs(root, ["apply", "--expect", digest]);
93
+ if (!["applied", "current"].includes(applied["outcome"])) {
94
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_TARGET_BLOCKED", "Target Docs Protocol apply did not converge in the disposable repository.");
95
+ }
96
+ }
97
+ else if (plan["outcome"] !== "current") {
98
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_TARGET_BLOCKED", "Target Docs Protocol rejected the projected Cohort in the disposable repository.");
99
+ }
100
+ await assertInstalledIntegrationCurrent(root);
101
+ }
102
+ async function assertInstalledIntegrationCurrent(root) {
103
+ const checked = await invokeInstalledDocs(root, ["check"]);
104
+ if (checked["outcome"] !== "current") {
105
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_TARGET_BLOCKED", "Target Docs Protocol check did not converge in the disposable repository.");
106
+ }
107
+ }
108
+ function ignoredInventoryPath(prefix, name) {
109
+ return name === "node_modules" ||
110
+ (prefix === "" && (name === ".git" || name === ".agent-teams-local"));
111
+ }
112
+ async function repositoryInventory(root) {
113
+ const output = new Map();
114
+ let totalBytes = 0;
115
+ async function visit(directory, prefix) {
116
+ const entries = await readdir(directory, { withFileTypes: true });
117
+ for (const entry of entries.toSorted((left, right) => left.name < right.name ? -1 : left.name > right.name ? 1 : 0)) {
118
+ if (ignoredInventoryPath(prefix, entry.name)) {
119
+ continue;
120
+ }
121
+ const path = prefix === "" ? entry.name : `${prefix}/${entry.name}`;
122
+ const absolute = join(directory, entry.name);
123
+ if (entry.isDirectory()) {
124
+ await visit(absolute, path);
125
+ continue;
126
+ }
127
+ if (output.size >= MAXIMUM_INVENTORY_FILES) {
128
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_REPOSITORY_TOO_LARGE", "Disposable consumer inventory exceeds the bounded file count.");
129
+ }
130
+ if (entry.isSymbolicLink()) {
131
+ const target = await readlink(absolute);
132
+ output.set(path, {
133
+ kind: "symlink",
134
+ digest: createHash("sha256").update(target).digest("hex")
135
+ });
136
+ continue;
137
+ }
138
+ if (!entry.isFile()) {
139
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_INPUT_INVALID", `Disposable consumer contains unsupported filesystem evidence: ${path}.`);
140
+ }
141
+ const observation = await readStableConsumerFile(root, path, MAXIMUM_INVENTORY_FILE_BYTES, true);
142
+ if (observation.state !== "file") {
143
+ throw new Error("unreachable");
144
+ }
145
+ totalBytes += observation.bytes.byteLength;
146
+ if (totalBytes > MAXIMUM_INVENTORY_BYTES) {
147
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_REPOSITORY_TOO_LARGE", "Disposable consumer inventory exceeds the bounded byte count.");
148
+ }
149
+ output.set(path, {
150
+ kind: "file",
151
+ digest: createHash("sha256").update(observation.bytes).digest("hex")
152
+ });
153
+ }
154
+ }
155
+ await visit(root, "");
156
+ return output;
157
+ }
158
+ function changedInventoryPaths(before, after) {
159
+ const paths = new Set([...before.keys(), ...after.keys()]);
160
+ return [...paths].filter((path) => {
161
+ const left = before.get(path);
162
+ const right = after.get(path);
163
+ return left?.kind !== right?.kind || left?.digest !== right?.digest;
164
+ }).toSorted();
165
+ }
166
+ function maximumBytes(path) {
167
+ if (path === INTEGRATION_PROFILE_PATH) {
168
+ return MAXIMUM_PROFILE_BYTES;
169
+ }
170
+ if (path === "package.json") {
171
+ return MAXIMUM_MANIFEST_BYTES;
172
+ }
173
+ if (path === "pnpm-lock.yaml") {
174
+ return MAXIMUM_LOCKFILE_BYTES;
175
+ }
176
+ if (path === WORKSPACE_PATH) {
177
+ return MAXIMUM_WORKSPACE_BYTES;
178
+ }
179
+ return MAXIMUM_MANAGED_ASSET_BYTES;
180
+ }
181
+ function allowedUpgradePaths(current) {
182
+ return new Set([
183
+ "AGENTS.md",
184
+ INTEGRATION_PROFILE_PATH,
185
+ "package.json",
186
+ "pnpm-lock.yaml",
187
+ WORKSPACE_PATH,
188
+ current.skillPath,
189
+ current.callerWorkflowPath,
190
+ current.managedStatePath
191
+ ]);
192
+ }
193
+ async function operationForChangedPath(input) {
194
+ const [preimage, postimage] = await Promise.all([
195
+ readStableConsumerFile(input.consumerRoot, input.path, maximumBytes(input.path), true),
196
+ readStableConsumerFile(input.stagedRoot, input.path, maximumBytes(input.path), true)
197
+ ]);
198
+ if (preimage.state !== "file" || postimage.state !== "file") {
199
+ throw new Error("unreachable");
200
+ }
201
+ return Object.freeze({
202
+ path: input.path,
203
+ precondition: {
204
+ state: "known-file",
205
+ acceptedPreimages: [{ bytes: preimage.bytes, mode: preimage.mode }]
206
+ },
207
+ postimage: { bytes: postimage.bytes, mode: preimage.mode }
208
+ });
209
+ }
210
+ async function extractHead(root, head, target) {
211
+ const archive = `${target}.tar`;
212
+ await execute("git", ["archive", "--format=tar", `--output=${archive}`, head], root);
213
+ await mkdir(target, { recursive: true });
214
+ await execute("tar", ["-xf", archive, "-C", target], root);
215
+ await rm(archive, { force: true });
216
+ }
217
+ async function installCohort(root, offline) {
218
+ await runPnpm(root, [
219
+ "install",
220
+ offline ? "--offline" : "--prefer-offline",
221
+ offline ? "--frozen-lockfile" : "--no-frozen-lockfile",
222
+ "--ignore-scripts",
223
+ "--ignore-pnpmfile",
224
+ "--verify-store-integrity"
225
+ ]);
226
+ }
227
+ export class NodeConsumerUpgradeSandbox {
228
+ async prepare(options) {
229
+ const head = await assertCleanGitRoot(options.consumerRoot);
230
+ const temporary = await realpath(await mkdtemp(join(tmpdir(), "docs-consumer-upgrade-")));
231
+ const beforeRoot = join(temporary, "before");
232
+ const stagedRoot = join(temporary, "staged");
233
+ try {
234
+ await Promise.all([
235
+ extractHead(options.consumerRoot, head, beforeRoot),
236
+ extractHead(options.consumerRoot, head, stagedRoot)
237
+ ]);
238
+ await execute("git", ["init", "-q"], stagedRoot);
239
+ const [profile, manifest] = await Promise.all([
240
+ readStableConsumerFile(stagedRoot, INTEGRATION_PROFILE_PATH, MAXIMUM_PROFILE_BYTES, true),
241
+ readStableConsumerFile(stagedRoot, "package.json", MAXIMUM_MANIFEST_BYTES, true)
242
+ ]);
243
+ if (profile.state !== "file" || manifest.state !== "file") {
244
+ throw new Error("unreachable");
245
+ }
246
+ await Promise.all([
247
+ writeProjectedFile(stagedRoot, INTEGRATION_PROFILE_PATH, await projectConsumerIntegrationProfileV1({
248
+ bytes: profile.bytes,
249
+ cohort: options.authority.cohort
250
+ })),
251
+ writeProjectedFile(stagedRoot, "package.json", projectPnpmManifestCohortPinsV1({
252
+ bytes: manifest.bytes,
253
+ cohort: options.authority.cohort
254
+ }))
255
+ ]);
256
+ const workspace = await readStableConsumerFile(stagedRoot, WORKSPACE_PATH, MAXIMUM_WORKSPACE_BYTES, false);
257
+ let targetWorkspace;
258
+ if (workspace.state === "file") {
259
+ targetWorkspace = projectPnpmWorkspaceCohortExclusionsV1({
260
+ bytes: workspace.bytes,
261
+ cohort: options.authority.cohort
262
+ });
263
+ await writeProjectedFile(stagedRoot, WORKSPACE_PATH, projectPnpmWorkspaceMigrationExclusionsV1({
264
+ bytes: workspace.bytes,
265
+ source: options.current.cohort,
266
+ target: options.authority.cohort
267
+ }));
268
+ }
269
+ await installCohort(stagedRoot, false);
270
+ if (targetWorkspace !== undefined) {
271
+ await writeProjectedFile(stagedRoot, WORKSPACE_PATH, targetWorkspace);
272
+ }
273
+ await applyTargetIntegration(stagedRoot, options.authority.cohort.cohortId);
274
+ const changed = changedInventoryPaths(await repositoryInventory(beforeRoot), await repositoryInventory(stagedRoot));
275
+ const allowed = allowedUpgradePaths(options.current);
276
+ const unexpected = changed.filter((path) => !allowed.has(path));
277
+ if (unexpected.length > 0) {
278
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_SCOPE_VIOLATION", `Disposable upgrade changed paths outside its closed inventory: ${unexpected.slice(0, 8).join(", ")}.`);
279
+ }
280
+ if (changed.includes(WORKSPACE_PATH) &&
281
+ (await readStableConsumerFile(options.consumerRoot, WORKSPACE_PATH, MAXIMUM_WORKSPACE_BYTES, false))
282
+ .state === "absent") {
283
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_SCOPE_VIOLATION", "Cohort upgrade cannot introduce a previously absent pnpm workspace authority.");
284
+ }
285
+ await assertCleanGitRoot(options.consumerRoot);
286
+ const operations = await Promise.all(changed.map((path) => operationForChangedPath({
287
+ consumerRoot: options.consumerRoot,
288
+ path,
289
+ stagedRoot
290
+ })));
291
+ return Object.freeze({ operations: Object.freeze(operations) });
292
+ }
293
+ finally {
294
+ await rm(temporary, { force: true, recursive: true });
295
+ }
296
+ }
297
+ async activateAndVerify(options) {
298
+ await installCohort(options.consumerRoot, true);
299
+ await assertInstalledIntegrationCurrent(options.consumerRoot);
300
+ }
301
+ async restoreAndVerify(options) {
302
+ await installCohort(options.consumerRoot, true);
303
+ await assertInstalledIntegrationCurrent(options.consumerRoot);
304
+ }
305
+ }
306
+ export const nodeConsumerUpgradeSandbox = Object.freeze(new NodeConsumerUpgradeSandbox());
307
+ //# sourceMappingURL=node-consumer-upgrade-sandbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-consumer-upgrade-sandbox.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-upgrade-sandbox.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type ConsumerAssetCatalogV1 } from "../application/policies/consumer-integration-assets.js";
2
+ import type { ConsumerAssetCatalogReader } from "../application/ports/consumer-integration-lifecycle.js";
3
+ export declare function loadPackageConsumerAssetCatalog(): Promise<ConsumerAssetCatalogV1>;
4
+ export declare const packageConsumerAssetCatalogReader: ConsumerAssetCatalogReader;
5
+ //# sourceMappingURL=package-consumer-asset-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-consumer-asset-catalog.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/package-consumer-asset-catalog.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,sBAAsB,EAG5B,MAAM,wDAAwD,CAAC;AAEhE,OAAO,KAAK,EACV,0BAA0B,EAC3B,MAAM,wDAAwD,CAAC;AA6HhE,wBAAsB,+BAA+B,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAwCvF;AAED,eAAO,MAAM,iCAAiC,EAAE,0BACU,CAAC"}
@@ -0,0 +1,150 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { digestBytes } from "../application/policies/consumer-integration-assets.js";
3
+ import { assertQualifiedDocsCohortBindingV1 } from "../application/policies/consumer-integration-desired-state.js";
4
+ const DIGEST = /^sha256:[0-9a-f]{64}$/u;
5
+ const COHORT_ID = /^[a-z0-9]+(?:[._-][a-z0-9]+)*$/u;
6
+ const INTEGRITY = /^sha512-[A-Za-z0-9+/]{86}==$/u;
7
+ const SEMVER = /^[0-9]+\.[0-9]+\.[0-9]+(?:-[0-9A-Za-z.-]+)?$/u;
8
+ const BUNDLE_PATH = /^assets\/history\/sha256-[0-9a-f]{64}\/(?:caller\.yml|skill\.md)$/u;
9
+ const MAXIMUM_CATALOG_BYTES = 2 * 1024 * 1024;
10
+ const MAXIMUM_BUNDLE_BYTES = 1024 * 1024;
11
+ function record(value, subject) {
12
+ if (typeof value !== "object" || value === null || Array.isArray(value) ||
13
+ Object.getPrototypeOf(value) !== Object.prototype) {
14
+ throw new TypeError(`${subject} must be one plain object.`);
15
+ }
16
+ return value;
17
+ }
18
+ function digest(value, subject) {
19
+ if (typeof value !== "string" || !DIGEST.test(value)) {
20
+ throw new TypeError(`${subject} must be one sha256 digest.`);
21
+ }
22
+ return value;
23
+ }
24
+ function hasExactKeys(value, keys) {
25
+ return Object.keys(value).toSorted().join("\u0000") === [...keys].toSorted().join("\u0000");
26
+ }
27
+ function packagePair(value) {
28
+ const packages = record(value, "currentSourceExecutor.packages");
29
+ const docsProtocol = record(packages["docsProtocol"], "currentSourceExecutor.packages.docsProtocol");
30
+ const engineeringFoundation = record(packages["engineeringFoundation"], "currentSourceExecutor.packages.engineeringFoundation");
31
+ if (!hasExactKeys(packages, ["docsProtocol", "engineeringFoundation"]) ||
32
+ !hasExactKeys(docsProtocol, ["version", "integrity"]) ||
33
+ !hasExactKeys(engineeringFoundation, ["version", "integrity"]) ||
34
+ !SEMVER.test(String(docsProtocol["version"])) ||
35
+ !SEMVER.test(String(engineeringFoundation["version"])) ||
36
+ !INTEGRITY.test(String(docsProtocol["integrity"])) ||
37
+ !INTEGRITY.test(String(engineeringFoundation["integrity"]))) {
38
+ throw new TypeError("Current source executor package pair is invalid.");
39
+ }
40
+ return packages;
41
+ }
42
+ function schemas(value) {
43
+ const candidate = record(value, "currentSourceExecutor.schemas");
44
+ if (!hasExactKeys(candidate, ["consumerIntegration", "managedState", "docsProtocol"]) ||
45
+ Object.values(candidate).some((entry) => entry !== 1)) {
46
+ throw new TypeError("Current source executor schemas are invalid.");
47
+ }
48
+ return candidate;
49
+ }
50
+ function runtime(value) {
51
+ const candidate = record(value, "currentSourceExecutor.runtime");
52
+ if (!hasExactKeys(candidate, ["node", "pnpm", "runtimeClosureDigest"]) ||
53
+ candidate["node"] !== ">=24.18.0 <25" || candidate["pnpm"] !== ">=11.17.0 <12") {
54
+ throw new TypeError("Current source executor runtime is invalid.");
55
+ }
56
+ digest(candidate["runtimeClosureDigest"], "currentSourceExecutor.runtime.runtimeClosureDigest");
57
+ return candidate;
58
+ }
59
+ function cohortIds(value) {
60
+ if (!Array.isArray(value) || value.length === 0 || value.length > 32 ||
61
+ value.some((entry) => typeof entry !== "string" || !COHORT_ID.test(entry)) ||
62
+ new Set(value).size !== value.length) {
63
+ throw new TypeError("Current source executor target Cohort IDs are invalid.");
64
+ }
65
+ return value;
66
+ }
67
+ async function bundleBytes(path, expected) {
68
+ if (typeof path !== "string" || !BUNDLE_PATH.test(path)) {
69
+ throw new TypeError("Direct-target bundle paths must be content-addressed package assets.");
70
+ }
71
+ const bytes = await readFile(new URL(`../../../${path}`, import.meta.url));
72
+ if (bytes.byteLength > MAXIMUM_BUNDLE_BYTES || digestBytes(bytes) !== digest(expected, path)) {
73
+ throw new TypeError(`Direct-target bundle digest mismatch: ${path}.`);
74
+ }
75
+ return bytes;
76
+ }
77
+ function currentSource(value) {
78
+ const source = record(value, "currentSourceExecutor");
79
+ if (!hasExactKeys(source, [
80
+ "packages", "schemas", "runtime", "assetCatalogDigest", "skillDigest", "callerWorkflowDigest",
81
+ "agentsRouteDigest", "docsScriptsDigest", "directTargetCohortIds"
82
+ ])) {
83
+ throw new TypeError("Current source executor fields are invalid.");
84
+ }
85
+ return Object.freeze({
86
+ packages: packagePair(source["packages"]),
87
+ schemas: schemas(source["schemas"]),
88
+ runtime: runtime(source["runtime"]),
89
+ assetCatalogDigest: digest(source["assetCatalogDigest"], "currentSourceExecutor.assetCatalogDigest"),
90
+ skillDigest: digest(source["skillDigest"], "currentSourceExecutor.skillDigest"),
91
+ callerWorkflowDigest: digest(source["callerWorkflowDigest"], "currentSourceExecutor.callerWorkflowDigest"),
92
+ agentsRouteDigest: digest(source["agentsRouteDigest"], "currentSourceExecutor.agentsRouteDigest"),
93
+ docsScriptsDigest: digest(source["docsScriptsDigest"], "currentSourceExecutor.docsScriptsDigest"),
94
+ directTargetCohortIds: cohortIds(source["directTargetCohortIds"])
95
+ });
96
+ }
97
+ async function directTarget(value) {
98
+ const target = record(value, "directTargetBundle");
99
+ const cohort = record(target["cohort"], "directTargetBundle.cohort");
100
+ assertQualifiedDocsCohortBindingV1(cohort);
101
+ const [skill, callerWorkflow] = await Promise.all([
102
+ bundleBytes(target["skillPath"], target["skillDigest"]),
103
+ bundleBytes(target["callerWorkflowPath"], target["callerWorkflowDigest"])
104
+ ]);
105
+ return Object.freeze({
106
+ cohort,
107
+ skill,
108
+ callerWorkflow,
109
+ agentsRouteDigest: digest(target["agentsRouteDigest"], "directTargetBundle.agentsRouteDigest"),
110
+ docsScriptsDigest: digest(target["docsScriptsDigest"], "directTargetBundle.docsScriptsDigest")
111
+ });
112
+ }
113
+ export async function loadPackageConsumerAssetCatalog() {
114
+ const [bytes, transitionBytes, docsManifestBytes] = await Promise.all([
115
+ readFile(new URL("../../../assets/catalog.json", import.meta.url)),
116
+ readFile(new URL("../../../assets/transition-catalog.json", import.meta.url)),
117
+ readFile(new URL("../../../package.json", import.meta.url))
118
+ ]);
119
+ if (bytes.byteLength > MAXIMUM_CATALOG_BYTES) {
120
+ throw new TypeError("Consumer asset catalog is too large.");
121
+ }
122
+ if (transitionBytes.byteLength > MAXIMUM_CATALOG_BYTES) {
123
+ throw new TypeError("Consumer transition catalog is too large.");
124
+ }
125
+ const source = record(JSON.parse(transitionBytes.toString("utf8")), "consumer transition catalog");
126
+ if (!hasExactKeys(source, ["schemaVersion", "currentSourceExecutors", "directTargetBundles"]) ||
127
+ source["schemaVersion"] !== 1) {
128
+ throw new TypeError("Consumer transition catalog fields are invalid.");
129
+ }
130
+ const sources = source["currentSourceExecutors"];
131
+ const targets = source["directTargetBundles"];
132
+ if (!Array.isArray(sources) || sources.length > 32 || !Array.isArray(targets) || targets.length > 32) {
133
+ throw new TypeError("Consumer asset catalog executor and target lists must be bounded arrays.");
134
+ }
135
+ const docsVersion = record(JSON.parse(docsManifestBytes.toString("utf8")), "Docs package")["version"];
136
+ const currentSourceExecutors = sources.map(currentSource).filter(({ packages }) => packages.docsProtocol.version === docsVersion);
137
+ const directTargetBundles = await Promise.all(targets.map(directTarget));
138
+ const directTargetIds = new Set(directTargetBundles.map(({ cohort }) => cohort.cohortId));
139
+ if (directTargetIds.size !== directTargetBundles.length || currentSourceExecutors.some(({ directTargetCohortIds }) => directTargetCohortIds.some((id) => !directTargetIds.has(id)))) {
140
+ throw new TypeError("Consumer transition catalog target Cohort identities must be unique.");
141
+ }
142
+ return Object.freeze({
143
+ catalogDigest: digestBytes(bytes),
144
+ transitionCatalogDigest: digestBytes(transitionBytes),
145
+ currentSourceExecutors: Object.freeze(currentSourceExecutors),
146
+ directTargetBundles: Object.freeze(directTargetBundles)
147
+ });
148
+ }
149
+ export const packageConsumerAssetCatalogReader = Object.freeze({ read: loadPackageConsumerAssetCatalog });
150
+ //# sourceMappingURL=package-consumer-asset-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-consumer-asset-catalog.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/package-consumer-asset-catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function validPnpmPeerContext(value: unknown, exactVersion: string): value is string;
2
+ export declare function targetsManagedPackage(value: unknown): boolean;
3
+ //# sourceMappingURL=pnpm-lockfile-policy-v1.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,37 @@
1
+ export function validPnpmPeerContext(value, exactVersion) {
2
+ if (value === exactVersion) {
3
+ return true;
4
+ }
5
+ if (typeof value !== "string" || !value.startsWith(`${exactVersion}(`)) {
6
+ return false;
7
+ }
8
+ const contentByDepth = [];
9
+ for (const character of value.slice(exactVersion.length)) {
10
+ if (character === "(") {
11
+ contentByDepth.push(false);
12
+ }
13
+ else if (character === ")") {
14
+ if (contentByDepth.pop() !== true) {
15
+ return false;
16
+ }
17
+ if (contentByDepth.length > 0) {
18
+ contentByDepth[contentByDepth.length - 1] = true;
19
+ }
20
+ }
21
+ else {
22
+ if (contentByDepth.length === 0 || /\s/u.test(character)) {
23
+ return false;
24
+ }
25
+ contentByDepth[contentByDepth.length - 1] = true;
26
+ }
27
+ }
28
+ return contentByDepth.length === 0;
29
+ }
30
+ export function targetsManagedPackage(value) {
31
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
32
+ return false;
33
+ }
34
+ return Object.keys(value).some((key) => key.includes("@agent-teams/docs-protocol") ||
35
+ key.includes("@agent-teams/engineering-foundation"));
36
+ }
37
+ //# sourceMappingURL=pnpm-lockfile-policy-v1.js.map
@@ -0,0 +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"}
@@ -0,0 +1,3 @@
1
+ import type { ConsumerIntegrationDesiredStateV1 } from "../domain/model.js";
2
+ export declare function assertQualifiedPnpmLockfileV1(bytes: Uint8Array, desired: ConsumerIntegrationDesiredStateV1): void;
3
+ //# sourceMappingURL=pnpm-lockfile-validator-v1.d.ts.map
@@ -0,0 +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"}