@agent-teams/docs-protocol 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +19 -7
  3. package/assets/history/sha256-641265ef9ecff59c16482fdae1bc8fc56002b5a4a1ee34b102438d0ca08a86a3/skill.md +29 -0
  4. package/assets/history/sha256-7907195753506e4b0f0e89eb3f6e495bacbd79e9b9913c9f60fc4a07dffb22e5/caller.yml +14 -0
  5. package/assets/transition-catalog.json +1 -1
  6. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.d.ts +1 -0
  7. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.d.ts.map +1 -1
  8. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.js +4 -1
  9. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.js.map +1 -1
  10. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.d.ts +10 -0
  11. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.d.ts.map +1 -0
  12. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.js +110 -0
  13. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.js.map +1 -0
  14. package/dist/consumer-integration/adapters/github-cohort-authority-reader.d.ts +21 -0
  15. package/dist/consumer-integration/adapters/github-cohort-authority-reader.d.ts.map +1 -0
  16. package/dist/consumer-integration/adapters/github-cohort-authority-reader.js +215 -0
  17. package/dist/consumer-integration/adapters/github-cohort-authority-reader.js.map +1 -0
  18. package/dist/consumer-integration/adapters/node-consumer-integration-repository.d.ts.map +1 -1
  19. package/dist/consumer-integration/adapters/node-consumer-integration-repository.js +17 -92
  20. package/dist/consumer-integration/adapters/node-consumer-integration-repository.js.map +1 -1
  21. package/dist/consumer-integration/adapters/node-consumer-repository-files.d.ts +11 -0
  22. package/dist/consumer-integration/adapters/node-consumer-repository-files.d.ts.map +1 -0
  23. package/dist/consumer-integration/adapters/node-consumer-repository-files.js +81 -0
  24. package/dist/consumer-integration/adapters/node-consumer-repository-files.js.map +1 -0
  25. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.d.ts +19 -0
  26. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.d.ts.map +1 -0
  27. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.js +298 -0
  28. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.js.map +1 -0
  29. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.d.ts +4 -0
  30. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.d.ts.map +1 -1
  31. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.js +32 -1
  32. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.js.map +1 -1
  33. package/dist/consumer-integration/application/model/consumer-upgrade-execution.d.ts +18 -0
  34. package/dist/consumer-integration/application/model/consumer-upgrade-execution.d.ts.map +1 -0
  35. package/dist/consumer-integration/application/model/consumer-upgrade-execution.js +2 -0
  36. package/dist/consumer-integration/application/model/consumer-upgrade-execution.js.map +1 -0
  37. package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts +1 -1
  38. package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts.map +1 -1
  39. package/dist/consumer-integration/application/ports/consumer-upgrade.d.ts +28 -0
  40. package/dist/consumer-integration/application/ports/consumer-upgrade.d.ts.map +1 -0
  41. package/dist/consumer-integration/application/ports/consumer-upgrade.js +2 -0
  42. package/dist/consumer-integration/application/ports/consumer-upgrade.js.map +1 -0
  43. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.d.ts +13 -0
  44. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.d.ts.map +1 -0
  45. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.js +134 -0
  46. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.js.map +1 -0
  47. package/dist/consumer-integration/composition/consumer-integration-cli.d.ts.map +1 -1
  48. package/dist/consumer-integration/composition/consumer-integration-cli.js +50 -15
  49. package/dist/consumer-integration/composition/consumer-integration-cli.js.map +1 -1
  50. package/dist/consumer-integration/composition/node-consumer-integration.d.ts +6 -0
  51. package/dist/consumer-integration/composition/node-consumer-integration.d.ts.map +1 -1
  52. package/dist/consumer-integration/composition/node-consumer-integration.js +14 -0
  53. package/dist/consumer-integration/composition/node-consumer-integration.js.map +1 -1
  54. package/dist/consumer-integration/domain/model.d.ts +6 -0
  55. package/dist/consumer-integration/domain/model.d.ts.map +1 -1
  56. package/dist/consumer-integration/generated/canonical-assets.d.ts +1 -1
  57. package/dist/consumer-integration/generated/canonical-assets.d.ts.map +1 -1
  58. package/dist/consumer-integration/generated/canonical-assets.js +1 -1
  59. package/dist/consumer-integration/generated/canonical-assets.js.map +1 -1
  60. package/dist/consumer-integration/index.d.ts +3 -2
  61. package/dist/consumer-integration/index.d.ts.map +1 -1
  62. package/dist/consumer-integration/index.js +1 -1
  63. package/dist/consumer-integration/index.js.map +1 -1
  64. package/package.json +2 -1
  65. package/schemas/docs-consumer-upgrade-execution/v1.schema.json +44 -0
@@ -0,0 +1,215 @@
1
+ import { assertQualifiedDocsCohortBindingV1 } from "../application/policies/consumer-integration-desired-state.js";
2
+ import { ConsumerIntegrationNodeError } from "./consumer-integration-node-error.js";
3
+ import { parseJsonRecord } from "./strict-json-record.js";
4
+ const AUTHORITY_REPOSITORY = "agent-teams-ai/.github";
5
+ const AUTHORITY_PATH = "governance/docs-qualified-cohorts.json";
6
+ const AUTHORITY_API = `https://api.github.com/repos/${AUTHORITY_REPOSITORY}`;
7
+ const AUTHORITY_RAW = `https://raw.githubusercontent.com/${AUTHORITY_REPOSITORY}`;
8
+ const GIT_SHA = /^(?!0{40}$)[0-9a-f]{40}$/u;
9
+ const MAXIMUM_AUTHORITY_BYTES = 8 * 1024 * 1024;
10
+ const MANAGED_PACKAGES = [
11
+ "@agent-teams/docs-protocol",
12
+ "@agent-teams/engineering-foundation"
13
+ ];
14
+ function record(value, subject) {
15
+ if (typeof value !== "object" || value === null || Array.isArray(value) ||
16
+ Object.getPrototypeOf(value) !== Object.prototype) {
17
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", `${subject} must be one plain object.`);
18
+ }
19
+ return value;
20
+ }
21
+ function array(value, subject) {
22
+ if (!Array.isArray(value) || value.length > 4096) {
23
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", `${subject} must be one bounded array.`);
24
+ }
25
+ return value;
26
+ }
27
+ function string(value, subject) {
28
+ if (typeof value !== "string" || value.length === 0 || value.length > 4096 ||
29
+ value.includes("\u0000")) {
30
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", `${subject} must be one bounded string.`);
31
+ }
32
+ return value;
33
+ }
34
+ async function responseBytes(response, subject) {
35
+ if (!response.ok) {
36
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_UNAVAILABLE", `${subject} returned HTTP ${response.status}.`);
37
+ }
38
+ const declared = Number(response.headers.get("content-length") ?? "0");
39
+ if (Number.isFinite(declared) && declared > MAXIMUM_AUTHORITY_BYTES) {
40
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", `${subject} exceeds the authority size limit.`);
41
+ }
42
+ const bytes = new Uint8Array(await response.arrayBuffer());
43
+ if (bytes.byteLength === 0 || bytes.byteLength > MAXIMUM_AUTHORITY_BYTES) {
44
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", `${subject} has invalid or overlong bytes.`);
45
+ }
46
+ return bytes;
47
+ }
48
+ function timeoutSignal() {
49
+ return AbortSignal.timeout(20_000);
50
+ }
51
+ async function resolveAuthorityRevision(fetcher) {
52
+ const bytes = await responseBytes(await fetcher(`${AUTHORITY_API}/commits/main`, {
53
+ headers: { Accept: "application/vnd.github+json", "User-Agent": "agent-teams-docs" },
54
+ redirect: "error",
55
+ signal: timeoutSignal()
56
+ }), "Central authority revision");
57
+ const response = parseJsonRecord(new TextDecoder("utf-8", { fatal: true }).decode(bytes));
58
+ const revision = response["sha"];
59
+ if (typeof revision !== "string" || !GIT_SHA.test(revision)) {
60
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", "Central authority did not resolve one exact Git revision.");
61
+ }
62
+ return revision;
63
+ }
64
+ async function readAuthorityRegistry(fetcher, revision) {
65
+ const bytes = await responseBytes(await fetcher(`${AUTHORITY_RAW}/${revision}/${AUTHORITY_PATH}`, {
66
+ headers: { Accept: "application/json", "User-Agent": "agent-teams-docs" },
67
+ redirect: "error",
68
+ signal: timeoutSignal()
69
+ }), "Central Cohort registry");
70
+ try {
71
+ return parseJsonRecord(new TextDecoder("utf-8", { fatal: true }).decode(bytes));
72
+ }
73
+ catch (error) {
74
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", "Central Cohort registry is not strict duplicate-free UTF-8 JSON.", { cause: error });
75
+ }
76
+ }
77
+ function selectedLifecycleState(events, cohortId) {
78
+ const selected = events.map((value) => record(value, "Cohort lifecycle event"))
79
+ .filter((event) => event["cohort_id"] === cohortId)
80
+ .map((event) => {
81
+ const sequence = event["sequence"];
82
+ if (!Number.isSafeInteger(sequence) || Number(sequence) < 1) {
83
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", `${cohortId} has an invalid lifecycle sequence.`);
84
+ }
85
+ return { event, sequence: Number(sequence) };
86
+ })
87
+ .toSorted((left, right) => left.sequence - right.sequence);
88
+ if (new Set(selected.map(({ sequence }) => sequence)).size !== selected.length) {
89
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", `${cohortId} has duplicate lifecycle sequences.`);
90
+ }
91
+ const qualification = selected.filter(({ event }) => event["state"] === "QUALIFIED");
92
+ const last = selected.at(-1);
93
+ if (qualification.length !== 1 || last === undefined) {
94
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", `${cohortId} does not have one immutable QUALIFIED lifecycle event.`);
95
+ }
96
+ return {
97
+ qualificationEventDigest: string(qualification[0].event["event_digest"], "QUALIFIED event digest"),
98
+ state: string(last.event["state"], "Current Cohort lifecycle state")
99
+ };
100
+ }
101
+ function assertSelectable(source, state, repository) {
102
+ if (state === "RECOMMENDED") {
103
+ return;
104
+ }
105
+ const canaries = array(source["canary_repositories"], "Cohort canary repositories")
106
+ .map((entry) => record(entry, "Cohort canary repository"));
107
+ if (["QUALIFIED", "CANARY"].includes(state) && canaries.some((entry) => String(entry["repository_id"]) === repository.id)) {
108
+ return;
109
+ }
110
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_COHORT_NOT_SELECTABLE", `${String(source["cohort_id"])} is ${state} and is not selectable for repository ${repository.id}.`);
111
+ }
112
+ function packageProjection(source) {
113
+ const entries = array(source["packages"], "Cohort packages")
114
+ .map((value) => record(value, "Cohort package"));
115
+ const packageByName = new Map(entries.map((entry) => [entry["name"], entry]));
116
+ if (entries.length !== MANAGED_PACKAGES.length ||
117
+ packageByName.size !== MANAGED_PACKAGES.length ||
118
+ MANAGED_PACKAGES.some((name) => !packageByName.has(name))) {
119
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", "Qualified Cohort must select exactly the two managed packages.");
120
+ }
121
+ const docs = packageByName.get(MANAGED_PACKAGES[0]);
122
+ const foundation = packageByName.get(MANAGED_PACKAGES[1]);
123
+ return {
124
+ docsProtocol: {
125
+ version: string(docs["version"], "Docs Protocol version"),
126
+ integrity: string(docs["integrity"], "Docs Protocol integrity")
127
+ },
128
+ engineeringFoundation: {
129
+ version: string(foundation["version"], "Foundation version"),
130
+ integrity: string(foundation["integrity"], "Foundation integrity")
131
+ }
132
+ };
133
+ }
134
+ function cohortProjection(source, qualificationEventDigest) {
135
+ const workflow = record(source["reusable_workflow"], "Cohort reusable workflow");
136
+ const assets = record(source["assets"], "Cohort assets");
137
+ const skill = record(assets["skill"], "Cohort Skill asset");
138
+ const caller = record(assets["caller_workflow"], "Cohort caller workflow asset");
139
+ const assetCatalog = record(assets["asset_catalog"], "Cohort asset catalog");
140
+ const transitionCatalog = record(assets["transition_catalog"], "Cohort transition catalog");
141
+ const runtime = record(source["runtime"], "Cohort runtime");
142
+ const runtimeClosure = record(source["runtime_closure"], "Cohort runtime closure");
143
+ const schemas = record(source["schemas"], "Cohort schemas");
144
+ const projection = {
145
+ schemaVersion: 1,
146
+ cohortId: string(source["cohort_id"], "Cohort ID"),
147
+ channel: string(source["channel"], "Cohort channel"),
148
+ recordDigest: string(source["record_digest"], "Cohort record digest"),
149
+ qualificationEventDigest,
150
+ eligibleAfter: string(source["eligible_after"], "Cohort eligibility timestamp"),
151
+ upgradeFrom: array(source["upgrade_from"], "Cohort upgrade origins").map((entry) => string(entry, "Cohort upgrade origin")),
152
+ rollbackTo: array(source["rollback_to"], "Cohort rollback targets").map((entry) => string(entry, "Cohort rollback target")),
153
+ packages: packageProjection(source),
154
+ workflow: {
155
+ repository: string(workflow["repository"], "Workflow repository"),
156
+ path: string(workflow["path"], "Workflow path"),
157
+ revision: string(workflow["revision"], "Workflow revision"),
158
+ blobSha: string(workflow["blob_sha"], "Workflow blob SHA")
159
+ },
160
+ assets: {
161
+ skillDigest: string(skill["digest"], "Skill digest"),
162
+ callerWorkflowDigest: string(caller["rendered_digest"], "Caller workflow digest"),
163
+ assetCatalogDigest: string(assetCatalog["digest"], "Asset catalog digest"),
164
+ transitionCatalogDigest: string(transitionCatalog["digest"], "Transition catalog digest")
165
+ },
166
+ schemas: {
167
+ consumerIntegration: schemas["consumer_integration"],
168
+ managedState: schemas["managed_state"],
169
+ docsProtocol: schemas["docs_protocol"]
170
+ },
171
+ runtime: {
172
+ node: string(runtime["node"], "Node runtime"),
173
+ pnpm: string(runtime["pnpm"], "pnpm runtime"),
174
+ runtimeClosureDigest: string(runtimeClosure["digest"], "Runtime closure digest")
175
+ }
176
+ };
177
+ assertQualifiedDocsCohortBindingV1(projection);
178
+ return Object.freeze(projection);
179
+ }
180
+ export function projectQualifiedCohortAuthority(input) {
181
+ const matches = array(input.registry["cohorts"], "Qualified Cohorts")
182
+ .map((value) => record(value, "Qualified Cohort"))
183
+ .filter((cohort) => cohort["cohort_id"] === input.cohortId);
184
+ if (matches.length !== 1) {
185
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_COHORT_UNKNOWN", `${input.cohortId} is not one exact central Cohort.`);
186
+ }
187
+ const source = matches[0];
188
+ const lifecycle = selectedLifecycleState(array(input.registry["events"], "Cohort lifecycle events"), input.cohortId);
189
+ assertSelectable(source, lifecycle.state, input.repository);
190
+ return Object.freeze({
191
+ repository: AUTHORITY_REPOSITORY,
192
+ path: AUTHORITY_PATH,
193
+ revision: input.revision,
194
+ cohort: cohortProjection(source, lifecycle.qualificationEventDigest)
195
+ });
196
+ }
197
+ export class GitHubCohortAuthorityReader {
198
+ #fetcher;
199
+ constructor(fetcher = globalThis.fetch) {
200
+ this.#fetcher = fetcher;
201
+ }
202
+ async read(options) {
203
+ if (options.revision !== undefined && !GIT_SHA.test(options.revision)) {
204
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_REVISION_INVALID", "Authority revision must be one nonzero lowercase Git SHA.");
205
+ }
206
+ const revision = await resolveAuthorityRevision(this.#fetcher);
207
+ if (options.revision !== undefined && options.revision !== revision) {
208
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_REVISION_STALE", "Requested authority revision is not the current protected main revision.");
209
+ }
210
+ const registry = await readAuthorityRegistry(this.#fetcher, revision);
211
+ return projectQualifiedCohortAuthority({ ...options, registry, revision });
212
+ }
213
+ }
214
+ export const githubCohortAuthorityReader = Object.freeze(new GitHubCohortAuthorityReader());
215
+ //# sourceMappingURL=github-cohort-authority-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-cohort-authority-reader.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/github-cohort-authority-reader.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"node-consumer-integration-repository.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-integration-repository.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,iCAAiC,EAEjC,2BAA2B,EAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,8BAA8B,EAC/B,MAAM,wDAAwD,CAAC;AA6BhE,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAmTpF,wBAAsB,4BAA4B,CAAC,OAAO,EAAE;IAC1D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAC1C,GAAG,OAAO,CAAC;IACV,QAAQ,CAAC,OAAO,EAAE,iCAAiC,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;CAChD,CAAC,CAsED;AAED,eAAO,MAAM,kCAAkC,EAAE,8BACM,CAAC"}
1
+ {"version":3,"file":"node-consumer-integration-repository.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-integration-repository.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,iCAAiC,EAEjC,2BAA2B,EAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,8BAA8B,EAC/B,MAAM,wDAAwD,CAAC;AAiChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AA4MpF,wBAAsB,4BAA4B,CAAC,OAAO,EAAE;IAC1D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAC1C,GAAG,OAAO,CAAC;IACV,QAAQ,CAAC,OAAO,EAAE,iCAAiC,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;CAChD,CAAC,CAsED;AAED,eAAO,MAAM,kCAAkC,EAAE,8BACM,CAAC"}
@@ -1,17 +1,12 @@
1
- import { constants } from "node:fs";
2
- import { lstat, open, realpath } from "node:fs/promises";
3
- import { dirname, isAbsolute, relative, resolve as resolvePath, sep } from "node:path";
1
+ import { realpath } from "node:fs/promises";
2
+ import { dirname } from "node:path";
4
3
  import { execFile } from "node:child_process";
5
4
  import { assertConsumerIntegrationProfileSchema } from "./consumer-integration-schema-validator.js";
6
5
  import { ConsumerIntegrationNodeError } from "./consumer-integration-node-error.js";
7
6
  import { assertQualifiedPnpmLockfileV1 } from "./pnpm-lockfile-validator-v1.js";
8
7
  import { parseJsonRecord } from "./strict-json-record.js";
9
8
  import { scanConsumerRepositoryTopology } from "./bounded-repository-topology.js";
10
- const MAXIMUM_PROFILE_BYTES = 256 * 1024;
11
- const MAXIMUM_MANIFEST_BYTES = 1024 * 1024;
12
- const MAXIMUM_MANAGED_ASSET_BYTES = 8 * 1024 * 1024;
13
- const MAXIMUM_LOCKFILE_BYTES = 32 * 1024 * 1024;
14
- const INTEGRATION_PROFILE_PATH = "architecture/foundation/docs-consumer-integration.json";
9
+ import { canonicalConsumerRoot, INTEGRATION_PROFILE_PATH, MAXIMUM_LOCKFILE_BYTES, MAXIMUM_MANAGED_ASSET_BYTES, MAXIMUM_MANIFEST_BYTES, MAXIMUM_PROFILE_BYTES, readStableConsumerFile, sameConsumerFileObservation } from "./node-consumer-repository-files.js";
15
10
  function executeGit(root, args, maximumBytes) {
16
11
  return new Promise((resolve, reject) => {
17
12
  execFile("git", [...args], {
@@ -29,33 +24,6 @@ function executeGit(root, args, maximumBytes) {
29
24
  });
30
25
  }
31
26
  export { ConsumerIntegrationNodeError } from "./consumer-integration-node-error.js";
32
- function errorCode(error) {
33
- return error instanceof Error && "code" in error
34
- ? error.code
35
- : undefined;
36
- }
37
- function contained(root, repositoryPath) {
38
- const absolute = resolvePath(root, repositoryPath);
39
- const relation = relative(root, absolute);
40
- if (relation === ".." || relation.startsWith(`..${sep}`) || isAbsolute(relation)) {
41
- throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_PATH_ESCAPE", `Consumer integration path escapes the repository root: ${repositoryPath}.`);
42
- }
43
- return absolute;
44
- }
45
- async function canonicalRoot(consumerRoot) {
46
- const requested = resolvePath(consumerRoot);
47
- let metadata;
48
- try {
49
- metadata = await lstat(requested);
50
- }
51
- catch (error) {
52
- throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_ROOT_INVALID", "Consumer root is unavailable or is not a real directory.", { cause: error });
53
- }
54
- if (metadata.isSymbolicLink() || !metadata.isDirectory()) {
55
- throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_ROOT_INVALID", "Consumer root must be one real directory.");
56
- }
57
- return realpath(requested);
58
- }
59
27
  function assertSingleIntegrationTopology(topology) {
60
28
  if (topology.lockfiles.length !== 1 || topology.lockfiles[0] !== "pnpm-lock.yaml") {
61
29
  throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_NESTED_LOCKFILE_UNSUPPORTED", "V1 requires exactly one root pnpm-lock.yaml and no nested lockfiles.");
@@ -94,44 +62,6 @@ function assertNestedAgentsAuthority(topology, governedRoots) {
94
62
  throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_NESTED_AGENTS_UNSUPPORTED", `Nested AGENTS.md overlaps governed documentation authority: ${conflicting.join(", ")}.`);
95
63
  }
96
64
  }
97
- async function readStableFile(root, repositoryPath, maximumBytes, required) {
98
- const path = contained(root, repositoryPath);
99
- let handle;
100
- try {
101
- handle = await open(path, constants.O_RDONLY |
102
- (process.platform === "win32" ? 0 : constants.O_NOFOLLOW));
103
- }
104
- catch (error) {
105
- if (!required && errorCode(error) === "ENOENT") {
106
- return { state: "absent" };
107
- }
108
- throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_INPUT_MISSING", `Required consumer integration input is unavailable: ${repositoryPath}.`, { cause: error });
109
- }
110
- try {
111
- const before = await handle.stat({ bigint: true });
112
- if (!before.isFile() || before.nlink > 1n || before.size > BigInt(maximumBytes)) {
113
- throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_INPUT_INVALID", `Consumer integration input must be one bounded, non-hardlinked regular file: ${repositoryPath}.`);
114
- }
115
- const bytes = await handle.readFile();
116
- const [after, pathState, canonical] = await Promise.all([
117
- handle.stat({ bigint: true }),
118
- lstat(path, { bigint: true }),
119
- realpath(path)
120
- ]);
121
- if (pathState.isSymbolicLink() || canonical !== path ||
122
- before.dev !== after.dev || before.ino !== after.ino ||
123
- before.birthtimeNs !== after.birthtimeNs || before.ctimeNs !== after.ctimeNs ||
124
- before.mtimeNs !== after.mtimeNs || before.size !== after.size ||
125
- pathState.dev !== after.dev || pathState.ino !== after.ino ||
126
- bytes.byteLength !== Number(after.size)) {
127
- throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_INPUT_UNSTABLE", `Consumer integration input changed during observation: ${repositoryPath}.`);
128
- }
129
- return { state: "file", bytes, mode: Number(after.mode) & 0o777 };
130
- }
131
- finally {
132
- await handle.close();
133
- }
134
- }
135
65
  function rejectPrototypeKeys(value, path = "integration profile") {
136
66
  if (Array.isArray(value)) {
137
67
  value.forEach((entry, index) => {
@@ -165,7 +95,7 @@ async function assertQualifiedPnpmRoot(root) {
165
95
  if (major !== 24 || (minor ?? 0) < 18) {
166
96
  throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UNSUPPORTED_NODE", "V1 check and plan require Node >=24.18.0 <25.");
167
97
  }
168
- const manifestObservation = await readStableFile(root, "package.json", MAXIMUM_MANIFEST_BYTES, true);
98
+ const manifestObservation = await readStableConsumerFile(root, "package.json", MAXIMUM_MANIFEST_BYTES, true);
169
99
  if (manifestObservation.state !== "file") {
170
100
  throw new Error("unreachable");
171
101
  }
@@ -183,23 +113,18 @@ async function assertQualifiedPnpmRoot(root) {
183
113
  if (match === null || Number(match[2]) < 17) {
184
114
  throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UNSUPPORTED_PACKAGE_MANAGER", "V1 requires one exact root packageManager declaration within >=11.17.0 <12.");
185
115
  }
186
- const nodeVersion = await readStableFile(root, ".node-version", 128, true);
116
+ const nodeVersion = await readStableConsumerFile(root, ".node-version", 128, true);
187
117
  if (nodeVersion.state !== "file" ||
188
118
  !/^24\.(?:1[89]|[2-9][0-9])\.[0-9]+\n?$/u.test(Buffer.from(nodeVersion.bytes).toString("utf8"))) {
189
119
  throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_NODE_VERSION_GATE_INVALID", ".node-version must pin one exact Node version within >=24.18.0 <25.");
190
120
  }
191
- await readStableFile(root, "pnpm-lock.yaml", MAXIMUM_LOCKFILE_BYTES, true);
121
+ await readStableConsumerFile(root, "pnpm-lock.yaml", MAXIMUM_LOCKFILE_BYTES, true);
192
122
  for (const path of ["package-lock.json", "yarn.lock", "bun.lock", "bun.lockb"]) {
193
- if ((await readStableFile(root, path, 1024, false)).state !== "absent") {
123
+ if ((await readStableConsumerFile(root, path, 1024, false)).state !== "absent") {
194
124
  throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UNSUPPORTED_PACKAGE_MANAGER", `Multiple or unsupported package-manager evidence is present: ${path}.`);
195
125
  }
196
126
  }
197
127
  }
198
- function sameObservation(left, right) {
199
- return left.state === right.state && (left.state === "absent" ||
200
- (right.state === "file" && left.mode === right.mode &&
201
- Buffer.from(left.bytes).equals(Buffer.from(right.bytes))));
202
- }
203
128
  async function assertSnapshotStillStable(input) {
204
129
  const paths = [
205
130
  ["integrationProfile", INTEGRATION_PROFILE_PATH, MAXIMUM_PROFILE_BYTES, true],
@@ -210,14 +135,14 @@ async function assertSnapshotStillStable(input) {
210
135
  ["callerWorkflow", input.desired.callerWorkflowPath, MAXIMUM_MANAGED_ASSET_BYTES, false],
211
136
  ["managedState", input.desired.managedStatePath, MAXIMUM_MANAGED_ASSET_BYTES, false]
212
137
  ];
213
- const reread = await Promise.all(paths.map(([, path, maximum, required]) => readStableFile(input.root, path, maximum, required)));
214
- const unstable = paths.find(([key], index) => !sameObservation(input.snapshot[key], reread[index]));
138
+ const reread = await Promise.all(paths.map(([, path, maximum, required]) => readStableConsumerFile(input.root, path, maximum, required)));
139
+ const unstable = paths.find(([key], index) => !sameConsumerFileObservation(input.snapshot[key], reread[index]));
215
140
  if (unstable !== undefined) {
216
141
  throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_SNAPSHOT_UNSTABLE", `Consumer integration input changed while the repository snapshot was assembled: ${unstable[1]}.`);
217
142
  }
218
143
  }
219
144
  async function assertQualifiedLockfile(root, desired) {
220
- const observation = await readStableFile(root, "pnpm-lock.yaml", MAXIMUM_LOCKFILE_BYTES, true);
145
+ const observation = await readStableConsumerFile(root, "pnpm-lock.yaml", MAXIMUM_LOCKFILE_BYTES, true);
221
146
  if (observation.state !== "file") {
222
147
  throw new Error("unreachable");
223
148
  }
@@ -225,7 +150,7 @@ async function assertQualifiedLockfile(root, desired) {
225
150
  return observation;
226
151
  }
227
152
  export async function readConsumerIntegrationInput(options) {
228
- const root = await canonicalRoot(options.consumerRoot);
153
+ const root = await canonicalConsumerRoot(options.consumerRoot);
229
154
  await assertGitRepositoryRoot(root);
230
155
  const topology = await scanConsumerRepositoryTopology(root);
231
156
  assertSingleIntegrationTopology(topology);
@@ -234,7 +159,7 @@ export async function readConsumerIntegrationInput(options) {
234
159
  if (profilePath !== INTEGRATION_PROFILE_PATH) {
235
160
  throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_PROFILE_PATH_UNSUPPORTED", `V1 requires the integration profile at ${INTEGRATION_PROFILE_PATH}.`);
236
161
  }
237
- const profile = await readStableFile(root, profilePath, MAXIMUM_PROFILE_BYTES, true);
162
+ const profile = await readStableConsumerFile(root, profilePath, MAXIMUM_PROFILE_BYTES, true);
238
163
  if (profile.state !== "file") {
239
164
  throw new Error("unreachable");
240
165
  }
@@ -262,11 +187,11 @@ export async function readConsumerIntegrationInput(options) {
262
187
  throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_PROFILE_INVALID", error instanceof Error ? error.message : "Integration profile is invalid.", { cause: error });
263
188
  }
264
189
  const [packageManifest, agents, skill, callerWorkflow, managedState] = await Promise.all([
265
- readStableFile(root, "package.json", MAXIMUM_MANIFEST_BYTES, true),
266
- readStableFile(root, "AGENTS.md", MAXIMUM_MANAGED_ASSET_BYTES, false),
267
- readStableFile(root, desired.skillPath, MAXIMUM_MANAGED_ASSET_BYTES, false),
268
- readStableFile(root, desired.callerWorkflowPath, MAXIMUM_MANAGED_ASSET_BYTES, false),
269
- readStableFile(root, desired.managedStatePath, MAXIMUM_MANAGED_ASSET_BYTES, false)
190
+ readStableConsumerFile(root, "package.json", MAXIMUM_MANIFEST_BYTES, true),
191
+ readStableConsumerFile(root, "AGENTS.md", MAXIMUM_MANAGED_ASSET_BYTES, false),
192
+ readStableConsumerFile(root, desired.skillPath, MAXIMUM_MANAGED_ASSET_BYTES, false),
193
+ readStableConsumerFile(root, desired.callerWorkflowPath, MAXIMUM_MANAGED_ASSET_BYTES, false),
194
+ readStableConsumerFile(root, desired.managedStatePath, MAXIMUM_MANAGED_ASSET_BYTES, false)
270
195
  ]);
271
196
  const snapshot = {
272
197
  integrationProfile: profile,
@@ -1 +1 @@
1
- {"version":3,"file":"node-consumer-integration-repository.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-integration-repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-consumer-integration-repository.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-integration-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAS9C,OAAO,EAAE,sCAAsC,EAAE,MAAM,4CAA4C,CAAC;AACpG,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,8BAA8B,EAE/B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC5B,MAAM,qCAAqC,CAAC;AAE7C,SAAS,UAAU,CAAC,IAAY,EAAE,IAAuB,EAAE,YAAoB;IAC7E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;YACzB,GAAG,EAAE,IAAI;YACT,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,YAAY;SACxB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACnB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAAA,OAAO,CAAC,MAAM,CAAC,CAAC;YAAA,CAAC;iBACjC,CAAC;gBAAA,MAAM,CAAC,KAAK,CAAC,CAAC;YAAA,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEpF,SAAS,+BAA+B,CAAC,QAAoC;IAC3E,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,gBAAgB,EAAE,CAAC;QAClF,MAAM,IAAI,4BAA4B,CACpC,2CAA2C,EAC3C,sEAAsE,CACvE,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC;QAC3C,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,wBAAwB,EAAE,CAAC;QAC/D,MAAM,IAAI,4BAA4B,CACpC,0CAA0C,EAC1C,kDAAkD,wBAAwB,GAAG,CAC9E,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,4BAA4B,CACpC,oCAAoC,EACpC,iEAAiE,CAClE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,IAAY;IACjD,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,QAAQ,CAAC,CAAC,MAAM,UAAU,CACxC,IAAI,EACJ,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAChC,EAAE,GAAG,IAAI,CACV,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,4BAA4B,CACpC,gCAAgC,EAChC,4EAA4E,EAC5E,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,4BAA4B,CACpC,gCAAgC,EAChC,kEAAkE,CACnE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAClC,QAAoC,EACpC,aAA4C;IAE5C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IACtE,MAAM,WAAW,GAAG,aAAa,KAAK,SAAS;QAC7C,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACrC,aAAa,KAAK,QAAQ;gBAC1B,aAAa,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC;gBACxC,QAAQ,CAAC,UAAU,CAAC,GAAG,aAAa,GAAG,CAAC,CACzC,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,4BAA4B,CACpC,yCAAyC,EACzC,+DAA+D,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACzF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,IAAI,GAAG,qBAAqB;IACvE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC7B,mBAAmB,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAAA,OAAO;IAAA,CAAC;IAC1D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QAC5E,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,4BAA4B,CACpC,+BAA+B,EAC/B,GAAG,IAAI,IAAI,GAAG,gBAAgB,CAC/B,CAAC;QACJ,CAAC;QACD,mBAAmB,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAAC,OAA0C;IAC7E,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACrD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnE,MAAM,IAAI,4BAA4B,CACpC,sCAAsC,EACtC,gFAAgF,CACjF,CAAC;IACJ,CAAC;IACD,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,WAAW,EAAE;QACxD,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC;QACjD,MAAM,IAAI,4BAA4B,CACpC,wCAAwC,EACxC,kFAAkF,CACnF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,IAAY;IACjD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpE,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,4BAA4B,CACpC,gCAAgC,EAChC,+CAA+C,CAChD,CAAC;IACJ,CAAC;IACD,MAAM,mBAAmB,GAAG,MAAM,sBAAsB,CACtD,IAAI,EACJ,cAAc,EACd,sBAAsB,EACtB,IAAI,CACL,CAAC;IACF,IAAI,mBAAmB,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QAAA,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IAAA,CAAC;IAC3E,IAAI,QAAiC,CAAC;IACtC,IAAI,CAAC;QACH,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACtF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,4BAA4B,CACpC,gCAAgC,EAChC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,EACnE,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,OAAO,cAAc,KAAK,QAAQ;QAC9C,CAAC,CAAC,gEAAgE,CAAC,IAAI,CAAC,cAAc,CAAC;QACvF,CAAC,CAAC,IAAI,CAAC;IACT,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;QAC5C,MAAM,IAAI,4BAA4B,CACpC,2CAA2C,EAC3C,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnF,IAAI,WAAW,CAAC,KAAK,KAAK,MAAM;QAC9B,CAAC,wCAAwC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAClG,MAAM,IAAI,4BAA4B,CACpC,yCAAyC,EACzC,qEAAqE,CACtE,CAAC;IACJ,CAAC;IACD,MAAM,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,IAAI,CAAC,CAAC;IACnF,KAAK,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;QAC/E,IAAI,CAAC,MAAM,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/E,MAAM,IAAI,4BAA4B,CACpC,2CAA2C,EAC3C,gEAAgE,IAAI,GAAG,CACxE,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,KAIxC;IACC,MAAM,KAAK,GAAG;QACZ,CAAC,oBAAoB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,IAAI,CAAC;QAC7E,CAAC,UAAU,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,IAAI,CAAC;QAC5D,CAAC,iBAAiB,EAAE,cAAc,EAAE,sBAAsB,EAAE,IAAI,CAAC;QACjE,CAAC,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE,KAAK,CAAC;QAC3D,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,2BAA2B,EAAE,KAAK,CAAC;QACtE,CAAC,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,2BAA2B,EAAE,KAAK,CAAC;QACxF,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,KAAK,CAAC;KAC5E,CAAC;IACX,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,CACzE,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAC5D,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAC3C,CAAC,2BAA2B,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAE,CAAC,CAClE,CAAC;IACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,4BAA4B,CACpC,iCAAiC,EACjC,mFAAmF,QAAQ,CAAC,CAAC,CAAC,GAAG,CAClG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,IAAY,EACZ,OAA0C;IAE1C,MAAM,WAAW,GAAG,MAAM,sBAAsB,CAC9C,IAAI,EACJ,gBAAgB,EAChB,sBAAsB,EACtB,IAAI,CACL,CAAC;IACF,IAAI,WAAW,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QAAA,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IAAA,CAAC;IACnE,6BAA6B,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1D,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,OAGlD;IAKC,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/D,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAM,8BAA8B,CAAC,IAAI,CAAC,CAAC;IAC5D,+BAA+B,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,OAAO,CAAC,sBAAsB,IAAI,wBAAwB,CAAC;IAC/E,IAAI,WAAW,KAAK,wBAAwB,EAAE,CAAC;QAC7C,MAAM,IAAI,4BAA4B,CACpC,wCAAwC,EACxC,0CAA0C,wBAAwB,GAAG,CACtE,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAC1C,IAAI,EACJ,WAAW,EACX,qBAAqB,EACrB,IAAI,CACL,CAAC;IACF,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QAAA,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IAAA,CAAC;IAC/D,IAAI,OAA0C,CAAC;IAC/C,IAAI,QAA4C,CAAC;IACjD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,eAAe,CAC5B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAI5C,CAAC;QACF,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,sCAAsC,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;YACxD,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,MAA2C,CAAC;QACxD,CAAC;QACD,2BAA2B,CAAC,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACjE,2BAA2B,CAAC,OAAO,CAAC,CAAC;QACrC,QAAQ,GAAG,MAAM,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,4BAA4B,EAAE,CAAC;YAAA,MAAM,KAAK,CAAC;QAAA,CAAC;QACjE,MAAM,IAAI,4BAA4B,CACpC,+BAA+B,EAC/B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iCAAiC,EAC1E,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACvF,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,sBAAsB,EAAE,IAAI,CAAC;QAC1E,sBAAsB,CAAC,IAAI,EAAE,WAAW,EAAE,2BAA2B,EAAE,KAAK,CAAC;QAC7E,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,2BAA2B,EAAE,KAAK,CAAC;QACnF,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,kBAAkB,EAAE,2BAA2B,EAAE,KAAK,CAAC;QAC5F,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,KAAK,CAAC;KAC3F,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG;QACf,kBAAkB,EAAE,OAAO;QAC3B,QAAQ;QACR,eAAe;QACf,MAAM;QACN,KAAK;QACL,cAAc;QACd,YAAY;KACb,CAAC;IACF,MAAM,yBAAyB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7D,OAAO;QACL,OAAO;QACP,IAAI;QACJ,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,kCAAkC,GAC7C,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { ConsumerIntegrationFileObservation } from "../domain/model.js";
2
+ export declare const MAXIMUM_PROFILE_BYTES: number;
3
+ export declare const MAXIMUM_MANIFEST_BYTES: number;
4
+ export declare const MAXIMUM_MANAGED_ASSET_BYTES: number;
5
+ export declare const MAXIMUM_LOCKFILE_BYTES: number;
6
+ export declare const MAXIMUM_WORKSPACE_BYTES: number;
7
+ export declare const INTEGRATION_PROFILE_PATH = "architecture/foundation/docs-consumer-integration.json";
8
+ export declare function canonicalConsumerRoot(consumerRoot: string): Promise<string>;
9
+ export declare function readStableConsumerFile(root: string, repositoryPath: string, maximumBytes: number, required: boolean): Promise<ConsumerIntegrationFileObservation>;
10
+ export declare function sameConsumerFileObservation(left: ConsumerIntegrationFileObservation, right: ConsumerIntegrationFileObservation): boolean;
11
+ //# sourceMappingURL=node-consumer-repository-files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-consumer-repository-files.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-repository-files.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,kCAAkC,EACnC,MAAM,oBAAoB,CAAC;AAG5B,eAAO,MAAM,qBAAqB,QAAa,CAAC;AAChD,eAAO,MAAM,sBAAsB,QAAc,CAAC;AAClD,eAAO,MAAM,2BAA2B,QAAkB,CAAC;AAC3D,eAAO,MAAM,sBAAsB,QAAmB,CAAC;AACvD,eAAO,MAAM,uBAAuB,QAAkB,CAAC;AACvD,eAAO,MAAM,wBAAwB,2DACqB,CAAC;AAoB3D,wBAAsB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBjF;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,kCAAkC,CAAC,CA8C7C;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,kCAAkC,EACxC,KAAK,EAAE,kCAAkC,GACxC,OAAO,CAIT"}
@@ -0,0 +1,81 @@
1
+ import { constants } from "node:fs";
2
+ import { lstat, open, realpath } 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
+ export const MAXIMUM_PROFILE_BYTES = 256 * 1024;
6
+ export const MAXIMUM_MANIFEST_BYTES = 1024 * 1024;
7
+ export const MAXIMUM_MANAGED_ASSET_BYTES = 8 * 1024 * 1024;
8
+ export const MAXIMUM_LOCKFILE_BYTES = 32 * 1024 * 1024;
9
+ export const MAXIMUM_WORKSPACE_BYTES = 2 * 1024 * 1024;
10
+ export const INTEGRATION_PROFILE_PATH = "architecture/foundation/docs-consumer-integration.json";
11
+ function errorCode(error) {
12
+ return error instanceof Error && "code" in error
13
+ ? error.code
14
+ : undefined;
15
+ }
16
+ function contained(root, repositoryPath) {
17
+ const absolute = resolvePath(root, repositoryPath);
18
+ const relation = relative(root, absolute);
19
+ if (relation === ".." || relation.startsWith(`..${sep}`) || isAbsolute(relation)) {
20
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_PATH_ESCAPE", `Consumer integration path escapes the repository root: ${repositoryPath}.`);
21
+ }
22
+ return absolute;
23
+ }
24
+ export async function canonicalConsumerRoot(consumerRoot) {
25
+ const requested = resolvePath(consumerRoot);
26
+ let metadata;
27
+ try {
28
+ metadata = await lstat(requested);
29
+ }
30
+ catch (error) {
31
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_ROOT_INVALID", "Consumer root is unavailable or is not a real directory.", { cause: error });
32
+ }
33
+ if (metadata.isSymbolicLink() || !metadata.isDirectory()) {
34
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_ROOT_INVALID", "Consumer root must be one real directory.");
35
+ }
36
+ return realpath(requested);
37
+ }
38
+ export async function readStableConsumerFile(root, repositoryPath, maximumBytes, required) {
39
+ const path = contained(root, repositoryPath);
40
+ let handle;
41
+ try {
42
+ handle = await open(path, constants.O_RDONLY |
43
+ (process.platform === "win32" ? 0 : constants.O_NOFOLLOW));
44
+ }
45
+ catch (error) {
46
+ if (!required && errorCode(error) === "ENOENT") {
47
+ return { state: "absent" };
48
+ }
49
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_INPUT_MISSING", `Required consumer integration input is unavailable: ${repositoryPath}.`, { cause: error });
50
+ }
51
+ try {
52
+ const before = await handle.stat({ bigint: true });
53
+ if (!before.isFile() || before.nlink > 1n || before.size > BigInt(maximumBytes)) {
54
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_INPUT_INVALID", `Consumer integration input must be one bounded, non-hardlinked regular file: ${repositoryPath}.`);
55
+ }
56
+ const bytes = await handle.readFile();
57
+ const [after, pathState, canonical] = await Promise.all([
58
+ handle.stat({ bigint: true }),
59
+ lstat(path, { bigint: true }),
60
+ realpath(path)
61
+ ]);
62
+ if (pathState.isSymbolicLink() || canonical !== path ||
63
+ before.dev !== after.dev || before.ino !== after.ino ||
64
+ before.birthtimeNs !== after.birthtimeNs || before.ctimeNs !== after.ctimeNs ||
65
+ before.mtimeNs !== after.mtimeNs || before.size !== after.size ||
66
+ pathState.dev !== after.dev || pathState.ino !== after.ino ||
67
+ bytes.byteLength !== Number(after.size)) {
68
+ throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_INPUT_UNSTABLE", `Consumer integration input changed during observation: ${repositoryPath}.`);
69
+ }
70
+ return { state: "file", bytes, mode: Number(after.mode) & 0o777 };
71
+ }
72
+ finally {
73
+ await handle.close();
74
+ }
75
+ }
76
+ export function sameConsumerFileObservation(left, right) {
77
+ return left.state === right.state && (left.state === "absent" ||
78
+ (right.state === "file" && left.mode === right.mode &&
79
+ Buffer.from(left.bytes).equals(Buffer.from(right.bytes))));
80
+ }
81
+ //# sourceMappingURL=node-consumer-repository-files.js.map
@@ -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;AA4U5B,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,CA6ErC;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"}