@agent-teams/docs-protocol 0.1.4 → 0.3.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.
- package/CHANGELOG.md +19 -0
- package/README.md +70 -9
- package/assets/catalog.json +1 -1
- package/assets/transition-catalog.json +1 -1
- package/dist/adapters/docs-command-envelope-schema-validator.d.ts.map +1 -1
- package/dist/adapters/docs-command-envelope-schema-validator.js +30 -8
- package/dist/adapters/docs-command-envelope-schema-validator.js.map +1 -1
- package/dist/adapters/docs-profile-schema-validator.d.ts.map +1 -1
- package/dist/adapters/docs-profile-schema-validator.js +13 -7
- package/dist/adapters/docs-profile-schema-validator.js.map +1 -1
- package/dist/adapters/foundation-docs-port.d.ts +10 -9
- package/dist/adapters/foundation-docs-port.d.ts.map +1 -1
- package/dist/adapters/foundation-docs-port.js +15 -10
- package/dist/adapters/foundation-docs-port.js.map +1 -1
- package/dist/adapters/node-adoption-inspector.js +2 -2
- package/dist/adapters/node-adoption-inspector.js.map +1 -1
- package/dist/adapters/node-profile-reader.d.ts +3 -3
- package/dist/adapters/node-profile-reader.d.ts.map +1 -1
- package/dist/application/authority-handshake.d.ts +4 -4
- package/dist/application/authority-handshake.d.ts.map +1 -1
- package/dist/application/compiled-document.d.ts +11 -0
- package/dist/application/compiled-document.d.ts.map +1 -0
- package/dist/application/compiled-document.js +31 -0
- package/dist/application/compiled-document.js.map +1 -0
- package/dist/application/docs-new-completion.d.ts +5 -4
- package/dist/application/docs-new-completion.d.ts.map +1 -1
- package/dist/application/docs-new-completion.js.map +1 -1
- package/dist/application/docs-protocol-v1-presenter.d.ts +140 -0
- package/dist/application/docs-protocol-v1-presenter.d.ts.map +1 -0
- package/dist/application/docs-protocol-v1-presenter.js +77 -0
- package/dist/application/docs-protocol-v1-presenter.js.map +1 -0
- package/dist/application/docs-protocol.d.ts +210 -3
- package/dist/application/docs-protocol.d.ts.map +1 -1
- package/dist/application/docs-protocol.js +46 -13
- package/dist/application/docs-protocol.js.map +1 -1
- package/dist/composition/cli-input.d.ts +12 -0
- package/dist/composition/cli-input.d.ts.map +1 -0
- package/dist/composition/cli-input.js +66 -0
- package/dist/composition/cli-input.js.map +1 -0
- package/dist/composition/cli.d.ts +4 -4
- package/dist/composition/cli.d.ts.map +1 -1
- package/dist/composition/cli.js +21 -144
- package/dist/composition/cli.js.map +1 -1
- package/dist/composition/docs-human-renderer.d.ts +5 -0
- package/dist/composition/docs-human-renderer.d.ts.map +1 -0
- package/dist/composition/docs-human-renderer.js +94 -0
- package/dist/composition/docs-human-renderer.js.map +1 -0
- package/dist/composition/node-docs-api.d.ts +191 -0
- package/dist/composition/node-docs-api.d.ts.map +1 -1
- package/dist/composition/node-docs-api.js +18 -0
- package/dist/composition/node-docs-api.js.map +1 -1
- package/dist/composition/qualification-cli.d.ts +2 -0
- package/dist/composition/qualification-cli.d.ts.map +1 -0
- package/dist/composition/qualification-cli.js +119 -0
- package/dist/composition/qualification-cli.js.map +1 -0
- package/dist/consumer-integration/adapters/consumer-integration-schema-validator.d.ts +1 -0
- package/dist/consumer-integration/adapters/consumer-integration-schema-validator.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/consumer-integration-schema-validator.js +12 -4
- package/dist/consumer-integration/adapters/consumer-integration-schema-validator.js.map +1 -1
- package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.d.ts +10 -0
- package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.js +110 -0
- package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.js.map +1 -0
- package/dist/consumer-integration/adapters/github-cohort-authority-reader.d.ts +21 -0
- package/dist/consumer-integration/adapters/github-cohort-authority-reader.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/github-cohort-authority-reader.js +215 -0
- package/dist/consumer-integration/adapters/github-cohort-authority-reader.js.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-integration-repository.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/node-consumer-integration-repository.js +27 -95
- package/dist/consumer-integration/adapters/node-consumer-integration-repository.js.map +1 -1
- package/dist/consumer-integration/adapters/node-consumer-repository-files.d.ts +11 -0
- package/dist/consumer-integration/adapters/node-consumer-repository-files.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-repository-files.js +81 -0
- package/dist/consumer-integration/adapters/node-consumer-repository-files.js.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.d.ts +19 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.js +298 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.js.map +1 -0
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.d.ts +4 -0
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.js +32 -1
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.js.map +1 -1
- package/dist/consumer-integration/application/model/consumer-upgrade-execution.d.ts +18 -0
- package/dist/consumer-integration/application/model/consumer-upgrade-execution.d.ts.map +1 -0
- package/dist/consumer-integration/application/model/consumer-upgrade-execution.js +2 -0
- package/dist/consumer-integration/application/model/consumer-upgrade-execution.js.map +1 -0
- package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts +2 -1
- package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts.map +1 -1
- package/dist/consumer-integration/application/policies/consumer-integration-assets.js +12 -5
- package/dist/consumer-integration/application/policies/consumer-integration-assets.js.map +1 -1
- package/dist/consumer-integration/application/policies/consumer-integration-prior-cohort.js +2 -2
- package/dist/consumer-integration/application/policies/consumer-integration-prior-cohort.js.map +1 -1
- package/dist/consumer-integration/application/ports/consumer-upgrade.d.ts +28 -0
- package/dist/consumer-integration/application/ports/consumer-upgrade.d.ts.map +1 -0
- package/dist/consumer-integration/application/ports/consumer-upgrade.js +2 -0
- package/dist/consumer-integration/application/ports/consumer-upgrade.js.map +1 -0
- package/dist/consumer-integration/application/use-cases/plan-consumer-integration.js +2 -2
- package/dist/consumer-integration/application/use-cases/plan-consumer-integration.js.map +1 -1
- package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.d.ts +13 -0
- package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.d.ts.map +1 -0
- package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.js +134 -0
- package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.js.map +1 -0
- package/dist/consumer-integration/composition/canonical-docs-skill-v2.d.ts +2 -0
- package/dist/consumer-integration/composition/canonical-docs-skill-v2.d.ts.map +1 -0
- package/dist/consumer-integration/composition/canonical-docs-skill-v2.js +2 -0
- package/dist/consumer-integration/composition/canonical-docs-skill-v2.js.map +1 -0
- package/dist/consumer-integration/composition/consumer-integration-cli.d.ts.map +1 -1
- package/dist/consumer-integration/composition/consumer-integration-cli.js +50 -15
- package/dist/consumer-integration/composition/consumer-integration-cli.js.map +1 -1
- package/dist/consumer-integration/composition/node-consumer-integration.d.ts +6 -0
- package/dist/consumer-integration/composition/node-consumer-integration.d.ts.map +1 -1
- package/dist/consumer-integration/composition/node-consumer-integration.js +14 -0
- package/dist/consumer-integration/composition/node-consumer-integration.js.map +1 -1
- package/dist/consumer-integration/domain/model.d.ts +6 -0
- package/dist/consumer-integration/domain/model.d.ts.map +1 -1
- package/dist/consumer-integration/generated/canonical-assets.d.ts +2 -1
- package/dist/consumer-integration/generated/canonical-assets.d.ts.map +1 -1
- package/dist/consumer-integration/generated/canonical-assets.js +2 -1
- package/dist/consumer-integration/generated/canonical-assets.js.map +1 -1
- package/dist/consumer-integration/index.d.ts +3 -2
- package/dist/consumer-integration/index.d.ts.map +1 -1
- package/dist/consumer-integration/index.js +1 -1
- package/dist/consumer-integration/index.js.map +1 -1
- package/dist/domain/model-v2.d.ts +170 -0
- package/dist/domain/model-v2.d.ts.map +1 -0
- package/dist/domain/model-v2.js +2 -0
- package/dist/domain/model-v2.js.map +1 -0
- package/dist/domain/model.d.ts +1 -99
- package/dist/domain/model.d.ts.map +1 -1
- package/dist/domain/model.js.map +1 -1
- package/dist/domain/profile-policy.d.ts +2 -1
- package/dist/domain/profile-policy.d.ts.map +1 -1
- package/dist/domain/profile-policy.js +20 -12
- package/dist/domain/profile-policy.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/qualification/filesystem-evidence.d.ts +15 -0
- package/dist/qualification/filesystem-evidence.d.ts.map +1 -0
- package/dist/qualification/filesystem-evidence.js +325 -0
- package/dist/qualification/filesystem-evidence.js.map +1 -0
- package/dist/qualification/index.d.ts +3 -0
- package/dist/qualification/index.d.ts.map +1 -1
- package/dist/qualification/index.js +12 -326
- package/dist/qualification/index.js.map +1 -1
- package/dist/qualification/qualification-runtime.d.ts +58 -0
- package/dist/qualification/qualification-runtime.d.ts.map +1 -0
- package/dist/qualification/qualification-runtime.js +160 -0
- package/dist/qualification/qualification-runtime.js.map +1 -0
- package/dist/qualification/qualification-v2-runner.d.ts +4 -0
- package/dist/qualification/qualification-v2-runner.d.ts.map +1 -0
- package/dist/qualification/qualification-v2-runner.js +306 -0
- package/dist/qualification/qualification-v2-runner.js.map +1 -0
- package/dist/qualification/v2-contract.d.ts +91 -0
- package/dist/qualification/v2-contract.d.ts.map +1 -0
- package/dist/qualification/v2-contract.js +2 -0
- package/dist/qualification/v2-contract.js.map +1 -0
- package/package.json +8 -2
- package/schemas/docs-consumer-integration-profile/v2.schema.json +283 -0
- package/schemas/docs-consumer-upgrade-execution/v1.schema.json +44 -0
- package/schemas/docs-protocol-command-envelope/v2.schema.json +285 -0
- package/schemas/docs-protocol-profile/v2.schema.json +46 -0
- package/schemas/docs-protocol-qualification/v2.schema.json +78 -0
- package/schemas/docs-protocol-qualification-receipt/v2.schema.json +113 -0
- package/skills/docs/SKILL.md +3 -2
|
@@ -1,119 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { constants } from "node:fs";
|
|
3
|
-
import { cp, lstat, mkdir, mkdtemp, open, opendir, readFile, realpath, rename, rm, symlink, writeFile } from "node:fs/promises";
|
|
1
|
+
import { cp, lstat, mkdtemp, realpath, rm } from "node:fs/promises";
|
|
4
2
|
import { tmpdir } from "node:os";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
import { NodeDocsAdoptionInspector } from "../adapters/node-adoption-inspector.js";
|
|
10
|
-
import { NodeCodeAnchorMatcher } from "../adapters/node-code-anchor-matcher.js";
|
|
11
|
-
import { NodeFoundationDocsPort } from "../adapters/foundation-docs-port.js";
|
|
12
|
-
import { NodeDocsProfileReader } from "../adapters/node-profile-reader.js";
|
|
13
|
-
import { normalizeCodeAnchors, normalizeDocumentIds } from "../domain/document-semantics.js";
|
|
14
|
-
import { crashAtDurablePublishing } from "./crash-driver.js";
|
|
15
|
-
async function treeEntries(root) {
|
|
16
|
-
const entries = [];
|
|
17
|
-
async function visit(directory) {
|
|
18
|
-
const handle = await opendir(directory);
|
|
19
|
-
for await (const entry of handle) {
|
|
20
|
-
const absolute = join(directory, entry.name);
|
|
21
|
-
const repositoryPath = relative(root, absolute).split(sep).join("/");
|
|
22
|
-
if (repositoryPath === "node_modules") {
|
|
23
|
-
continue;
|
|
24
|
-
}
|
|
25
|
-
if (entry.isSymbolicLink()) {
|
|
26
|
-
throw new Error(`Qualification fixtures cannot contain symlinks: ${repositoryPath}`);
|
|
27
|
-
}
|
|
28
|
-
if (entry.isDirectory()) {
|
|
29
|
-
entries.push({ kind: "directory", path: repositoryPath });
|
|
30
|
-
await visit(absolute);
|
|
31
|
-
}
|
|
32
|
-
else if (entry.isFile()) {
|
|
33
|
-
entries.push({ kind: "file", path: repositoryPath });
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
throw new Error(`Qualification fixtures must contain only directories and regular files: ${repositoryPath}`);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
await visit(root);
|
|
41
|
-
return Object.freeze(entries.toSorted((left, right) => Buffer.compare(Buffer.from(`${left.kind}\0${left.path}`), Buffer.from(`${right.kind}\0${right.path}`))));
|
|
42
|
-
}
|
|
43
|
-
async function bootstrapQualificationInstallation(consumerRoot) {
|
|
44
|
-
const docsManifestPath = fileURLToPath(new URL("../../package.json", import.meta.url));
|
|
45
|
-
const foundationManifestPath = fileURLToPath(import.meta.resolve("@agent-teams/engineering-foundation/package.json"));
|
|
46
|
-
const [docsManifest, foundationManifest, consumerManifest] = await Promise.all([
|
|
47
|
-
readFile(docsManifestPath, "utf8").then((source) => JSON.parse(source)),
|
|
48
|
-
readFile(foundationManifestPath, "utf8").then((source) => JSON.parse(source)),
|
|
49
|
-
readFile(join(consumerRoot, "package.json"), "utf8").then((source) => JSON.parse(source))
|
|
50
|
-
]);
|
|
51
|
-
await writeFile(join(consumerRoot, "package.json"), `${JSON.stringify({
|
|
52
|
-
...consumerManifest,
|
|
53
|
-
devDependencies: {
|
|
54
|
-
"@agent-teams/docs-protocol": docsManifest.version,
|
|
55
|
-
"@agent-teams/engineering-foundation": foundationManifest.version
|
|
56
|
-
}
|
|
57
|
-
}, null, 2)}\n`, "utf8");
|
|
58
|
-
const scope = join(consumerRoot, "node_modules", "@agent-teams");
|
|
59
|
-
await mkdir(scope, { recursive: true });
|
|
60
|
-
await Promise.all([
|
|
61
|
-
symlink(dirname(docsManifestPath), join(scope, "docs-protocol"), process.platform === "win32" ? "junction" : "dir"),
|
|
62
|
-
symlink(dirname(foundationManifestPath), join(scope, "engineering-foundation"), process.platform === "win32" ? "junction" : "dir")
|
|
63
|
-
]);
|
|
64
|
-
await writeFile(join(consumerRoot, ".agent-teams-document-authoring-qualification-fixture.json"), `${JSON.stringify({
|
|
65
|
-
schemaVersion: 1,
|
|
66
|
-
kind: "agent-teams-document-authoring-qualification-fixture",
|
|
67
|
-
consumerRoot: await realpath(consumerRoot)
|
|
68
|
-
})}\n`, "utf8");
|
|
69
|
-
}
|
|
70
|
-
async function snapshot(root) {
|
|
71
|
-
const hash = createHash("sha256");
|
|
72
|
-
for (const entry of await treeEntries(root)) {
|
|
73
|
-
hash.update(entry.kind);
|
|
74
|
-
hash.update("\0");
|
|
75
|
-
hash.update(entry.path);
|
|
76
|
-
hash.update("\0");
|
|
77
|
-
if (entry.kind === "file") {
|
|
78
|
-
hash.update(await readFile(join(root, entry.path)));
|
|
79
|
-
hash.update("\0");
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
return `sha256:${hash.digest("hex")}`;
|
|
83
|
-
}
|
|
84
|
-
async function fileSnapshot(root) {
|
|
85
|
-
const result = new Map();
|
|
86
|
-
for (const entry of await treeEntries(root)) {
|
|
87
|
-
const key = `${entry.kind}:${entry.path}`;
|
|
88
|
-
result.set(key, entry.kind === "directory"
|
|
89
|
-
? "directory"
|
|
90
|
-
: `sha256:${createHash("sha256").update(await readFile(join(root, entry.path))).digest("hex")}`);
|
|
91
|
-
}
|
|
92
|
-
return result;
|
|
93
|
-
}
|
|
94
|
-
function changedPaths(before, after) {
|
|
95
|
-
return Object.freeze([...new Set([...before.keys(), ...after.keys()])]
|
|
96
|
-
.filter((path) => before.get(path) !== after.get(path))
|
|
97
|
-
.toSorted((left, right) => Buffer.compare(Buffer.from(left), Buffer.from(right))));
|
|
98
|
-
}
|
|
99
|
-
function requireSuccess(label, execution) {
|
|
100
|
-
if (execution.exitCode !== 0) {
|
|
101
|
-
throw new Error(`Docs Protocol qualification ${label} failed with exit code ${execution.exitCode}.`);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
function documentResult(execution) {
|
|
105
|
-
requireSuccess("document", execution);
|
|
106
|
-
const result = execution.envelope.result;
|
|
107
|
-
if (typeof result["documentPath"] !== "string" || typeof result["planDigest"] !== "string" || !("reachability" in result)) {
|
|
108
|
-
throw new Error("Docs Protocol qualification expected a successful document result.");
|
|
109
|
-
}
|
|
110
|
-
return {
|
|
111
|
-
documentPath: result["documentPath"],
|
|
112
|
-
planDigest: result["planDigest"],
|
|
113
|
-
...(typeof result["receiptDigest"] === "string" ? { receiptDigest: result["receiptDigest"] } : {}),
|
|
114
|
-
reachability: result["reachability"]
|
|
115
|
-
};
|
|
116
|
-
}
|
|
3
|
+
import { dirname, join, relative, resolve as resolvePath, sep } from "node:path";
|
|
4
|
+
import { applyReachability, changedPaths, fileSnapshot, snapshot } from "./filesystem-evidence.js";
|
|
5
|
+
import { bootstrapQualificationInstallation, createProtocol, documentResult, interruptAndRecover, requireSuccess } from "./qualification-runtime.js";
|
|
6
|
+
export { runDocsProtocolQualificationV2 } from "./qualification-v2-runner.js";
|
|
117
7
|
async function parentState(root, documentPath) {
|
|
118
8
|
const repositoryParent = dirname(documentPath);
|
|
119
9
|
const absolute = resolvePath(root, repositoryParent);
|
|
@@ -135,207 +25,6 @@ async function parentState(root, documentPath) {
|
|
|
135
25
|
throw error;
|
|
136
26
|
}
|
|
137
27
|
}
|
|
138
|
-
const MAX_REACHABILITY_INDEX_BYTES = 8 * 1024 * 1024;
|
|
139
|
-
function sameFileObservation(left, right) {
|
|
140
|
-
return left.dev === right.dev && left.ino === right.ino && left.mtimeNs === right.mtimeNs && left.size === right.size;
|
|
141
|
-
}
|
|
142
|
-
async function readAtMost(handle, maximumBytes) {
|
|
143
|
-
const chunks = [];
|
|
144
|
-
let total = 0;
|
|
145
|
-
while (total <= maximumBytes) {
|
|
146
|
-
const remaining = maximumBytes + 1 - total;
|
|
147
|
-
const chunk = Buffer.allocUnsafe(Math.min(64 * 1024, remaining));
|
|
148
|
-
const { bytesRead } = await handle.read(chunk, 0, chunk.byteLength, null);
|
|
149
|
-
if (bytesRead === 0) {
|
|
150
|
-
return Buffer.concat(chunks, total);
|
|
151
|
-
}
|
|
152
|
-
chunks.push(chunk.subarray(0, bytesRead));
|
|
153
|
-
total += bytesRead;
|
|
154
|
-
}
|
|
155
|
-
return undefined;
|
|
156
|
-
}
|
|
157
|
-
async function verifyCurrentRegularFile(path, expected) {
|
|
158
|
-
const noFollow = process.platform === "win32" ? 0 : constants.O_NOFOLLOW;
|
|
159
|
-
const handle = await open(path, constants.O_RDONLY | noFollow);
|
|
160
|
-
try {
|
|
161
|
-
const metadata = await handle.stat({ bigint: true });
|
|
162
|
-
if (!metadata.isFile() || metadata.dev !== expected.dev || metadata.ino !== expected.ino) {
|
|
163
|
-
throw new Error("Qualification reachability index identity changed before atomic publication.");
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
finally {
|
|
167
|
-
await handle.close();
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
async function verifyPublishedFile(path, expected) {
|
|
171
|
-
const noFollow = process.platform === "win32" ? 0 : constants.O_NOFOLLOW;
|
|
172
|
-
const handle = await open(path, constants.O_RDONLY | noFollow);
|
|
173
|
-
try {
|
|
174
|
-
const before = await handle.stat({ bigint: true });
|
|
175
|
-
const bytes = await readAtMost(handle, MAX_REACHABILITY_INDEX_BYTES);
|
|
176
|
-
const after = await handle.stat({ bigint: true });
|
|
177
|
-
if (!before.isFile() || bytes === undefined || !sameFileObservation(before, after) || !bytes.equals(expected)) {
|
|
178
|
-
throw new Error("Qualification reachability index atomic publication could not be verified.");
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
finally {
|
|
182
|
-
await handle.close();
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
async function syncDirectory(path) {
|
|
186
|
-
try {
|
|
187
|
-
const handle = await open(path, "r");
|
|
188
|
-
try {
|
|
189
|
-
await handle.sync();
|
|
190
|
-
}
|
|
191
|
-
finally {
|
|
192
|
-
await handle.close();
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
catch (error) {
|
|
196
|
-
const code = error.code;
|
|
197
|
-
if (process.platform !== "win32" || !["EACCES", "EINVAL", "EISDIR", "EPERM"].includes(code ?? "")) {
|
|
198
|
-
throw error;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
function createProtocol() {
|
|
203
|
-
return new DocsProtocol({
|
|
204
|
-
adoption: new NodeDocsAdoptionInspector(),
|
|
205
|
-
anchors: new NodeCodeAnchorMatcher(),
|
|
206
|
-
foundation: new NodeFoundationDocsPort(),
|
|
207
|
-
profiles: new NodeDocsProfileReader()
|
|
208
|
-
});
|
|
209
|
-
}
|
|
210
|
-
async function applyReachability(root, reachability) {
|
|
211
|
-
const action = reachability;
|
|
212
|
-
if (action["state"] === "not-required") {
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
if (action["state"] !== "manual-required" || typeof action["indexPath"] !== "string" || typeof action["markdownLink"] !== "string") {
|
|
216
|
-
throw new Error("Qualification apply did not emit one explicit reachability action.");
|
|
217
|
-
}
|
|
218
|
-
const indexPath = resolvePath(root, action["indexPath"]);
|
|
219
|
-
const physicalRoot = await realpath(root);
|
|
220
|
-
const noFollow = process.platform === "win32" ? 0 : constants.O_NOFOLLOW;
|
|
221
|
-
const nonBlocking = process.platform === "win32" ? 0 : constants.O_NONBLOCK;
|
|
222
|
-
const sourceHandle = await open(indexPath, constants.O_RDONLY | noFollow | nonBlocking);
|
|
223
|
-
let source;
|
|
224
|
-
let identity;
|
|
225
|
-
let mode;
|
|
226
|
-
try {
|
|
227
|
-
const before = await sourceHandle.stat({ bigint: true });
|
|
228
|
-
if (!before.isFile() || before.size > BigInt(MAX_REACHABILITY_INDEX_BYTES)) {
|
|
229
|
-
throw new Error("Qualification reachability index is not a bounded regular file.");
|
|
230
|
-
}
|
|
231
|
-
const physicalIndex = await realpath(indexPath);
|
|
232
|
-
const pathFromRoot = relative(physicalRoot, physicalIndex);
|
|
233
|
-
if (pathFromRoot === ".." || pathFromRoot.startsWith(`..${sep}`) || physicalIndex !== indexPath) {
|
|
234
|
-
throw new Error("Qualification reachability index is not a contained regular file without symlinks.");
|
|
235
|
-
}
|
|
236
|
-
await verifyCurrentRegularFile(physicalIndex, before);
|
|
237
|
-
const bytes = await readAtMost(sourceHandle, MAX_REACHABILITY_INDEX_BYTES);
|
|
238
|
-
const after = await sourceHandle.stat({ bigint: true });
|
|
239
|
-
if (bytes === undefined || !sameFileObservation(before, after) || after.size !== BigInt(bytes.byteLength)) {
|
|
240
|
-
throw new Error("Qualification reachability index changed during its bounded read.");
|
|
241
|
-
}
|
|
242
|
-
source = new TextDecoder("utf-8", { fatal: true }).decode(bytes);
|
|
243
|
-
identity = { dev: after.dev, ino: after.ino };
|
|
244
|
-
mode = Number(after.mode & 511n);
|
|
245
|
-
}
|
|
246
|
-
finally {
|
|
247
|
-
await sourceHandle.close();
|
|
248
|
-
}
|
|
249
|
-
const next = Buffer.from(`${source.replace(/\n?$/u, "\n")}- ${action["markdownLink"]}\n`);
|
|
250
|
-
if (next.byteLength > MAX_REACHABILITY_INDEX_BYTES) {
|
|
251
|
-
throw new Error("Qualification reachability index update exceeds its bounded size.");
|
|
252
|
-
}
|
|
253
|
-
const parent = dirname(indexPath);
|
|
254
|
-
const temporary = join(parent, `.${basename(indexPath)}.docs-protocol-${randomUUID()}.tmp`);
|
|
255
|
-
let temporaryExists = false;
|
|
256
|
-
try {
|
|
257
|
-
const temporaryHandle = await open(temporary, "wx", mode);
|
|
258
|
-
temporaryExists = true;
|
|
259
|
-
try {
|
|
260
|
-
await temporaryHandle.writeFile(next);
|
|
261
|
-
await temporaryHandle.chmod(mode);
|
|
262
|
-
await temporaryHandle.sync();
|
|
263
|
-
}
|
|
264
|
-
finally {
|
|
265
|
-
await temporaryHandle.close();
|
|
266
|
-
}
|
|
267
|
-
await verifyCurrentRegularFile(indexPath, identity);
|
|
268
|
-
await rename(temporary, indexPath);
|
|
269
|
-
temporaryExists = false;
|
|
270
|
-
await verifyPublishedFile(indexPath, next);
|
|
271
|
-
await syncDirectory(parent);
|
|
272
|
-
}
|
|
273
|
-
finally {
|
|
274
|
-
if (temporaryExists) {
|
|
275
|
-
await rm(temporary, { force: true });
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
function qualificationMetadata(base, blockedBy, codeAnchors) {
|
|
280
|
-
return {
|
|
281
|
-
...base.additionalMetadata,
|
|
282
|
-
...(blockedBy.length === 0 ? {} : { blocked_by: blockedBy }),
|
|
283
|
-
...(codeAnchors.length === 0
|
|
284
|
-
? {}
|
|
285
|
-
: { code_anchors: codeAnchors.map(({ enforcement, pattern }) => ({ enforcement, pattern })) })
|
|
286
|
-
};
|
|
287
|
-
}
|
|
288
|
-
function signalOption(signal) {
|
|
289
|
-
return signal === undefined ? {} : { signal };
|
|
290
|
-
}
|
|
291
|
-
async function interruptAndRecover(input) {
|
|
292
|
-
const profile = await new NodeDocsProfileReader().read({
|
|
293
|
-
consumerRoot: input.consumerRoot,
|
|
294
|
-
profilePath: input.profilePath,
|
|
295
|
-
...signalOption(input.base.signal)
|
|
296
|
-
});
|
|
297
|
-
const blockedBy = normalizeDocumentIds(input.base.blockedBy ?? [], "blocked_by");
|
|
298
|
-
const related = normalizeDocumentIds([...(input.base.related ?? []), ...blockedBy], "related");
|
|
299
|
-
const codeAnchors = normalizeCodeAnchors(input.base.codeAnchors ?? []);
|
|
300
|
-
const additionalMetadata = qualificationMetadata(input.base, blockedBy, codeAnchors);
|
|
301
|
-
const crashPlan = await planDocumentationDocumentV2({
|
|
302
|
-
consumerRoot: input.consumerRoot,
|
|
303
|
-
profilePath: profile.foundationProfile.path,
|
|
304
|
-
parentPolicy: "create-missing-real-directories",
|
|
305
|
-
intent: {
|
|
306
|
-
schemaVersion: 1,
|
|
307
|
-
...input.base.intent,
|
|
308
|
-
...(related.length === 0 ? {} : { related }),
|
|
309
|
-
...(Object.keys(additionalMetadata).length === 0 ? {} : { additionalMetadata })
|
|
310
|
-
},
|
|
311
|
-
...signalOption(input.base.signal)
|
|
312
|
-
});
|
|
313
|
-
if (crashPlan.destination !== input.previewResult.documentPath || crashPlan.planDigest !== input.previewResult.planDigest) {
|
|
314
|
-
throw new Error("Qualification crash Plan differs from the unified Docs Protocol preview.");
|
|
315
|
-
}
|
|
316
|
-
await crashAtDurablePublishing(input.consumerRoot, crashPlan, input.base.signal);
|
|
317
|
-
const interruptedDoctor = await input.protocol.doctor({
|
|
318
|
-
consumerRoot: input.consumerRoot,
|
|
319
|
-
profilePath: input.profilePath,
|
|
320
|
-
...signalOption(input.base.signal)
|
|
321
|
-
});
|
|
322
|
-
if (interruptedDoctor.exitCode !== 1 || interruptedDoctor.envelope.outcome !== "recovery-required" ||
|
|
323
|
-
interruptedDoctor.envelope.result.transaction.state !== "recoverable") {
|
|
324
|
-
throw new Error("Qualification doctor did not observe its genuine interrupted transaction.");
|
|
325
|
-
}
|
|
326
|
-
const recovered = await input.protocol.recover({
|
|
327
|
-
consumerRoot: input.consumerRoot,
|
|
328
|
-
profilePath: input.profilePath,
|
|
329
|
-
...signalOption(input.base.signal)
|
|
330
|
-
});
|
|
331
|
-
requireSuccess("recover", recovered);
|
|
332
|
-
if (recovered.envelope.result.transactionState !== "recovered" || recovered.envelope.result.writeState !== "committed" ||
|
|
333
|
-
typeof recovered.envelope.result.receiptDigest !== "string" || recovered.envelope.result.receipt.outcome !== "applied" ||
|
|
334
|
-
recovered.envelope.result.receipt.commit.state !== "committed" || recovered.envelope.result.receipt.commit.publication !== "published") {
|
|
335
|
-
throw new Error("Qualification recovery did not return truthful committed Receipt evidence.");
|
|
336
|
-
}
|
|
337
|
-
return recovered.envelope.result;
|
|
338
|
-
}
|
|
339
28
|
export async function runDocsProtocolQualification(request) {
|
|
340
29
|
const sourceRoot = await realpath(resolvePath(request.fixtureRoot));
|
|
341
30
|
const before = await snapshot(sourceRoot);
|
|
@@ -345,11 +34,11 @@ export async function runDocsProtocolQualification(request) {
|
|
|
345
34
|
try {
|
|
346
35
|
request.signal?.throwIfAborted();
|
|
347
36
|
await cp(sourceRoot, consumerRoot, { recursive: true, errorOnExist: true, force: false, dereference: false });
|
|
348
|
-
await bootstrapQualificationInstallation(consumerRoot);
|
|
37
|
+
await bootstrapQualificationInstallation(consumerRoot, true);
|
|
349
38
|
const protocol = createProtocol();
|
|
350
|
-
const info = await protocol.
|
|
39
|
+
const info = await protocol.infoV2({ consumerRoot, profilePath, ...(request.signal === undefined ? {} : { signal: request.signal }) });
|
|
351
40
|
requireSuccess("info", info);
|
|
352
|
-
const find = await protocol.
|
|
41
|
+
const find = await protocol.findV2({ consumerRoot, profilePath, query: request.scenario.find.query, ...(request.signal === undefined ? {} : { signal: request.signal }) });
|
|
353
42
|
requireSuccess("find", find);
|
|
354
43
|
const ids = find.envelope.result.documents.map(({ id }) => id);
|
|
355
44
|
if (JSON.stringify(ids) !== JSON.stringify(request.scenario.find.expectedIds)) {
|
|
@@ -357,7 +46,7 @@ export async function runDocsProtocolQualification(request) {
|
|
|
357
46
|
}
|
|
358
47
|
const base = { ...request.scenario.newDocument, consumerRoot, profilePath, ...(request.signal === undefined ? {} : { signal: request.signal }) };
|
|
359
48
|
const beforePreview = await fileSnapshot(consumerRoot);
|
|
360
|
-
const preview = await protocol.
|
|
49
|
+
const preview = await protocol.newDocumentV2({ ...base, apply: false });
|
|
361
50
|
requireSuccess("preview", preview);
|
|
362
51
|
if (changedPaths(beforePreview, await fileSnapshot(consumerRoot)).length !== 0) {
|
|
363
52
|
throw new Error("Preview mutated its owned disposable consumer.");
|
|
@@ -365,10 +54,7 @@ export async function runDocsProtocolQualification(request) {
|
|
|
365
54
|
const previewResult = documentResult(preview);
|
|
366
55
|
const parentBeforeApply = await parentState(consumerRoot, previewResult.documentPath);
|
|
367
56
|
const recovered = await interruptAndRecover({ base, consumerRoot, previewResult, profilePath, protocol });
|
|
368
|
-
const appliedResult = {
|
|
369
|
-
...previewResult,
|
|
370
|
-
receiptDigest: recovered.receiptDigest
|
|
371
|
-
};
|
|
57
|
+
const appliedResult = { ...previewResult, receiptDigest: recovered.receiptDigest };
|
|
372
58
|
const applyChanges = changedPaths(beforePreview, await fileSnapshot(consumerRoot));
|
|
373
59
|
const expectedDirectories = new Set(recovered.receipt.directoryMaterialization?.observedCreatedDirectories ?? []);
|
|
374
60
|
const unexpectedApplyChanges = applyChanges.filter((entry) => {
|
|
@@ -390,11 +76,11 @@ export async function runDocsProtocolQualification(request) {
|
|
|
390
76
|
throw new Error("Missing-parent qualification recovery did not truthfully report retained Plan v2 materialization.");
|
|
391
77
|
}
|
|
392
78
|
await applyReachability(consumerRoot, appliedResult.reachability);
|
|
393
|
-
const check = await protocol.
|
|
79
|
+
const check = await protocol.checkV2({ consumerRoot, profilePath, ...(request.signal === undefined ? {} : { signal: request.signal }) });
|
|
394
80
|
if (check.exitCode !== 0) {
|
|
395
81
|
throw new Error(`Docs Protocol qualification check failed: ${JSON.stringify(check.envelope)}.`);
|
|
396
82
|
}
|
|
397
|
-
const doctor = await protocol.
|
|
83
|
+
const doctor = await protocol.doctorV2({ consumerRoot, profilePath, ...(request.signal === undefined ? {} : { signal: request.signal }) });
|
|
398
84
|
requireSuccess("doctor", doctor);
|
|
399
85
|
if (await snapshot(sourceRoot) !== before) {
|
|
400
86
|
throw new Error("Qualification modified its source fixture.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/qualification/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/qualification/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { DocsProtocol } from "../application/docs-protocol.js";
|
|
2
|
+
import type { DocsNewRequest } from "../domain/model.js";
|
|
3
|
+
export declare function digest(value: Uint8Array | string): `sha256:${string}`;
|
|
4
|
+
export declare function readContainedBoundedFile(root: string, repositoryPath: string, label: string, maximumBytes?: number): Promise<{
|
|
5
|
+
readonly bytes: Buffer;
|
|
6
|
+
readonly digest: `sha256:${string}`;
|
|
7
|
+
readonly path: string;
|
|
8
|
+
}>;
|
|
9
|
+
export declare function bootstrapQualificationInstallation(consumerRoot: string, rewriteManifest: boolean): Promise<{
|
|
10
|
+
readonly docsVersion: string;
|
|
11
|
+
readonly foundationVersion: string;
|
|
12
|
+
}>;
|
|
13
|
+
export declare function requireSuccess(label: string, execution: {
|
|
14
|
+
readonly envelope?: unknown;
|
|
15
|
+
readonly exitCode: number;
|
|
16
|
+
}): void;
|
|
17
|
+
export declare function documentResult(execution: {
|
|
18
|
+
readonly envelope: {
|
|
19
|
+
readonly result: unknown;
|
|
20
|
+
};
|
|
21
|
+
readonly exitCode: number;
|
|
22
|
+
}): {
|
|
23
|
+
readonly documentPath: string;
|
|
24
|
+
readonly planDigest: string;
|
|
25
|
+
readonly compiled?: {
|
|
26
|
+
readonly document?: {
|
|
27
|
+
readonly content?: string;
|
|
28
|
+
readonly digest?: string;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
readonly receiptDigest?: string;
|
|
32
|
+
readonly reachability: unknown;
|
|
33
|
+
};
|
|
34
|
+
export declare function createProtocol(): DocsProtocol;
|
|
35
|
+
export declare function signalOption(signal: AbortSignal | undefined): {
|
|
36
|
+
readonly signal?: AbortSignal;
|
|
37
|
+
};
|
|
38
|
+
export declare function interruptAndRecover(input: {
|
|
39
|
+
readonly base: Omit<DocsNewRequest, "apply">;
|
|
40
|
+
readonly consumerRoot: string;
|
|
41
|
+
readonly previewResult: ReturnType<typeof documentResult>;
|
|
42
|
+
readonly profilePath: string;
|
|
43
|
+
readonly protocol: DocsProtocol;
|
|
44
|
+
}): Promise<{
|
|
45
|
+
readonly receiptDigest: string;
|
|
46
|
+
readonly receipt: {
|
|
47
|
+
readonly commit: {
|
|
48
|
+
readonly publication: "published";
|
|
49
|
+
readonly state: "committed";
|
|
50
|
+
};
|
|
51
|
+
readonly directoryMaterialization?: {
|
|
52
|
+
readonly observedCreatedDirectories: readonly string[];
|
|
53
|
+
readonly state: string;
|
|
54
|
+
};
|
|
55
|
+
readonly outcome: "applied";
|
|
56
|
+
};
|
|
57
|
+
}>;
|
|
58
|
+
//# sourceMappingURL=qualification-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qualification-runtime.d.ts","sourceRoot":"","sources":["../../src/qualification/qualification-runtime.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKzD,wBAAgB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU,MAAM,EAAE,CAErE;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,YAAY,SAAoC,GAC/C,OAAO,CAAC;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAsBjG;AAED,wBAAsB,kCAAkC,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,GAAG,OAAO,CAAC;IAChH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC,CAAC,CAgCD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAIzH;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG;IACzH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACpG,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC,CAaA;AAED,wBAAgB,cAAc,IAAI,YAAY,CAO7C;AAgBD,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,CAE/F;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAC7C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;CACjC,GAAG,OAAO,CAAC;IACV,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;YAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;SAAE,CAAC;QACpF,QAAQ,CAAC,wBAAwB,CAAC,EAAE;YAClC,QAAQ,CAAC,0BAA0B,EAAE,SAAS,MAAM,EAAE,CAAC;YACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;SACxB,CAAC;QACF,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;KAC7B,CAAC;CACH,CAAC,CAsDD"}
|