@agent-teams/engineering-foundation 0.8.0 → 0.9.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/dist/capabilities/contract-protobuf-evolution/adapters/outbound/qualification/filesystem-buf-breaking-qualification-evidence.js +1 -1
- package/dist/capabilities/contract-protobuf-evolution/application/model/buf-breaking-qualification.d.ts +2 -2
- package/dist/capabilities/contract-protobuf-evolution/application/model/buf-breaking-qualification.js +2 -2
- package/dist/capabilities/contract-protobuf-evolution/application/model/protobuf-release-evidence.d.ts +4 -4
- package/dist/capabilities/contract-protobuf-evolution/application/model/protobuf-release-evidence.d.ts.map +1 -1
- package/dist/capabilities/contract-protobuf-evolution/contract/config.d.ts +1 -1
- package/dist/capabilities/contract-protobuf-evolution/contract/config.js +4 -4
- package/dist/capabilities/contract-protobuf-evolution/contract/config.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/microsoft-public-api-extractor.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/microsoft-public-api-extractor.js +1 -14
- package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/microsoft-public-api-extractor.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-baseline-mapper.d.ts +4 -4
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-baseline-mapper.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-baseline-mapper.js +34 -46
- package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-baseline-mapper.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/model/public-api.d.ts +18 -75
- package/dist/capabilities/public-api-compatibility/application/model/public-api.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/model/public-api.js +7 -29
- package/dist/capabilities/public-api-compatibility/application/model/public-api.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/policies/accepted-breaking-change.d.ts +1 -5
- package/dist/capabilities/public-api-compatibility/application/policies/accepted-breaking-change.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/policies/accepted-breaking-change.js +1 -8
- package/dist/capabilities/public-api-compatibility/application/policies/accepted-breaking-change.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/policies/evaluate-public-api-compatibility.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/policies/evaluate-public-api-compatibility.js +5 -38
- package/dist/capabilities/public-api-compatibility/application/policies/evaluate-public-api-compatibility.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/policies/validate-package-export-coverage.d.ts +1 -1
- package/dist/capabilities/public-api-compatibility/application/policies/validate-package-export-coverage.js +2 -2
- package/dist/capabilities/public-api-compatibility/application/policies/validate-package-export-coverage.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/use-cases/analyze-public-api-compatibility.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/use-cases/analyze-public-api-compatibility.js +0 -1
- package/dist/capabilities/public-api-compatibility/application/use-cases/analyze-public-api-compatibility.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.js +0 -38
- package/dist/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.js.map +1 -1
- package/dist/capabilities/public-api-compatibility/contract/config.d.ts +1 -1
- package/dist/capabilities/public-api-compatibility/contract/config.d.ts.map +1 -1
- package/dist/capabilities/public-api-compatibility/contract/config.js +32 -106
- package/dist/capabilities/public-api-compatibility/contract/config.js.map +1 -1
- package/dist/scaffolding/adapters/node/filesystem-authority-workspace.js +1 -1
- package/dist/scaffolding/adapters/node/filesystem-authority-workspace.js.map +1 -1
- package/dist/scaffolding/adapters/node/filesystem-journal-state.js +1 -1
- package/dist/scaffolding/adapters/node/filesystem-journal.js +3 -3
- package/dist/scaffolding/adapters/node/filesystem-journal.js.map +1 -1
- package/dist/scaffolding/adapters/node/filesystem-operation-state.d.ts +4 -11
- package/dist/scaffolding/adapters/node/filesystem-operation-state.d.ts.map +1 -1
- package/dist/scaffolding/adapters/node/filesystem-operation-state.js +0 -24
- package/dist/scaffolding/adapters/node/filesystem-operation-state.js.map +1 -1
- package/dist/scaffolding/adapters/node/filesystem-path-guard.d.ts +1 -1
- package/dist/scaffolding/adapters/node/filesystem-path-guard.d.ts.map +1 -1
- package/dist/scaffolding/adapters/node/node-authority-input-loader.js +7 -7
- package/dist/scaffolding/adapters/node/node-authority-input-loader.js.map +1 -1
- package/dist/scaffolding/adapters/node/node-authority-receipt-validator.js +1 -1
- package/dist/scaffolding/adapters/node/node-authority-receipt-validator.js.map +1 -1
- package/dist/scaffolding/contract/receipt-authority-types.d.ts +2 -2
- package/dist/scaffolding/contract/scaffold-contract.d.ts +8 -8
- package/dist/scaffolding/contract/types.d.ts +9 -214
- package/dist/scaffolding/contract/types.d.ts.map +1 -1
- package/dist/scaffolding/definitions/registry.d.ts +0 -1
- package/dist/scaffolding/definitions/registry.d.ts.map +1 -1
- package/dist/scaffolding/definitions/registry.js +0 -3
- package/dist/scaffolding/definitions/registry.js.map +1 -1
- package/dist/scaffolding/kernel/authority-compiler.js +2 -2
- package/dist/scaffolding/kernel/authority-receipt.js +3 -3
- package/dist/scaffolding/kernel/plan-validation.js +1 -1
- package/dist/schema-catalog.js +3 -3
- package/dist/schema-catalog.js.map +1 -1
- package/dist/schema-ids.d.ts +2 -5
- package/dist/schema-ids.d.ts.map +1 -1
- package/dist/schema-ids.js +4 -15
- package/dist/schema-ids.js.map +1 -1
- package/package.json +8 -13
- package/schemas/contract-protobuf-breaking-qualification/v1.schema.json +5 -1
- package/schemas/contract-protobuf-evolution/v1.schema.json +47 -15
- package/schemas/package-public-api-baseline/v1.schema.json +49 -12
- package/schemas/package-public-api-compatibility/v1.schema.json +46 -5
- package/schemas/{scaffold-authority-evidence.schema.json → scaffold-authority-evidence/v1.schema.json} +1 -1
- package/schemas/{scaffold-intent.schema.json → scaffold-intent/v1.schema.json} +1 -1
- package/schemas/{scaffold-plan.schema.json → scaffold-plan/v1.schema.json} +3 -3
- package/schemas/{scaffold-receipt.schema.json → scaffold-receipt/v1.schema.json} +3 -3
- package/schemas/{scaffold-recovery-journal.schema.json → scaffold-recovery-journal/v1.schema.json} +3 -3
- package/schemas/{scaffold-target-catalog.schema.json → scaffold-target-catalog/v1.schema.json} +2 -2
- package/schemas/{scaffolding-config.schema.json → scaffolding-config/v1.schema.json} +2 -2
- package/dist/scaffolding/adapters/memory/memory-workspace.d.ts +0 -9
- package/dist/scaffolding/adapters/memory/memory-workspace.d.ts.map +0 -1
- package/dist/scaffolding/adapters/memory/memory-workspace.js +0 -93
- package/dist/scaffolding/adapters/memory/memory-workspace.js.map +0 -1
- package/dist/scaffolding/adapters/node/filesystem-rendering-journal.d.ts +0 -6
- package/dist/scaffolding/adapters/node/filesystem-rendering-journal.d.ts.map +0 -1
- package/dist/scaffolding/adapters/node/filesystem-rendering-journal.js +0 -80
- package/dist/scaffolding/adapters/node/filesystem-rendering-journal.js.map +0 -1
- package/dist/scaffolding/adapters/node/filesystem-workspace.d.ts +0 -14
- package/dist/scaffolding/adapters/node/filesystem-workspace.d.ts.map +0 -1
- package/dist/scaffolding/adapters/node/filesystem-workspace.js +0 -207
- package/dist/scaffolding/adapters/node/filesystem-workspace.js.map +0 -1
- package/dist/scaffolding/adapters/node/node-input-loader.d.ts +0 -17
- package/dist/scaffolding/adapters/node/node-input-loader.d.ts.map +0 -1
- package/dist/scaffolding/adapters/node/node-input-loader.js +0 -107
- package/dist/scaffolding/adapters/node/node-input-loader.js.map +0 -1
- package/dist/scaffolding/adapters/node/node-receipt-validator.d.ts +0 -4
- package/dist/scaffolding/adapters/node/node-receipt-validator.d.ts.map +0 -1
- package/dist/scaffolding/adapters/node/node-receipt-validator.js +0 -10
- package/dist/scaffolding/adapters/node/node-receipt-validator.js.map +0 -1
- package/dist/scaffolding/adapters/node/node-rendering-plan-authority.d.ts +0 -3
- package/dist/scaffolding/adapters/node/node-rendering-plan-authority.d.ts.map +0 -1
- package/dist/scaffolding/adapters/node/node-rendering-plan-authority.js +0 -18
- package/dist/scaffolding/adapters/node/node-rendering-plan-authority.js.map +0 -1
- package/dist/scaffolding/internal-rendering-regression-api.d.ts +0 -8
- package/dist/scaffolding/internal-rendering-regression-api.d.ts.map +0 -1
- package/dist/scaffolding/internal-rendering-regression-api.js +0 -8
- package/dist/scaffolding/internal-rendering-regression-api.js.map +0 -1
- package/dist/scaffolding/kernel/receipt.d.ts +0 -35
- package/dist/scaffolding/kernel/receipt.d.ts.map +0 -1
- package/dist/scaffolding/kernel/receipt.js +0 -206
- package/dist/scaffolding/kernel/receipt.js.map +0 -1
- package/dist/scaffolding/kernel/rendering-plan-compiler.d.ts +0 -4
- package/dist/scaffolding/kernel/rendering-plan-compiler.d.ts.map +0 -1
- package/dist/scaffolding/kernel/rendering-plan-compiler.js +0 -43
- package/dist/scaffolding/kernel/rendering-plan-compiler.js.map +0 -1
- package/dist/scaffolding/kernel/rendering-plan-validation.d.ts +0 -3
- package/dist/scaffolding/kernel/rendering-plan-validation.d.ts.map +0 -1
- package/dist/scaffolding/kernel/rendering-plan-validation.js +0 -10
- package/dist/scaffolding/kernel/rendering-plan-validation.js.map +0 -1
- package/dist/scaffolding/service.d.ts +0 -8
- package/dist/scaffolding/service.d.ts.map +0 -1
- package/dist/scaffolding/service.js +0 -16
- package/dist/scaffolding/service.js.map +0 -1
- package/schemas/contract-protobuf-breaking-qualification/v2.schema.json +0 -93
- package/schemas/contract-protobuf-evolution/v2.schema.json +0 -147
- package/schemas/package-public-api-baseline/v2.schema.json +0 -62
- package/schemas/package-public-api-compatibility/v2.schema.json +0 -113
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { mkdir, open, rename, rm } from "node:fs/promises";
|
|
2
|
-
import { dirname } from "node:path";
|
|
3
|
-
import { assertScaffoldPlanDigest } from "../../kernel/rendering-plan-validation.js";
|
|
4
|
-
import { ScaffoldError } from "../../scaffold-error.js";
|
|
5
|
-
import { assertSchema } from "../../../schema-catalog.js";
|
|
6
|
-
import { parseStrictYamlSource } from "../../../strict-yaml.js";
|
|
7
|
-
import { readBoundedRegularFile } from "./filesystem-file-identity.js";
|
|
8
|
-
import { syncDirectory } from "./filesystem-path-guard.js";
|
|
9
|
-
import { MAX_SCAFFOLD_PLAN_BYTES } from "./node-scaffold-limits.js";
|
|
10
|
-
export const SCAFFOLD_JOURNAL_FILE = "scaffolding-transaction.json";
|
|
11
|
-
function isMissing(error) {
|
|
12
|
-
return (error instanceof Error &&
|
|
13
|
-
"code" in error &&
|
|
14
|
-
error.code === "ENOENT");
|
|
15
|
-
}
|
|
16
|
-
export async function writeScaffoldJournal(path, plan) {
|
|
17
|
-
const parent = dirname(path);
|
|
18
|
-
await mkdir(parent, { recursive: true });
|
|
19
|
-
const temporary = `${path}.tmp`;
|
|
20
|
-
await rm(temporary, { force: true });
|
|
21
|
-
let renamed = false;
|
|
22
|
-
try {
|
|
23
|
-
const handle = await open(temporary, "wx", 0o600);
|
|
24
|
-
try {
|
|
25
|
-
const journal = { schemaVersion: 1, state: "PREPARED", plan };
|
|
26
|
-
await handle.writeFile(`${JSON.stringify(journal, null, 2)}\n`, "utf8");
|
|
27
|
-
await handle.sync();
|
|
28
|
-
}
|
|
29
|
-
finally {
|
|
30
|
-
await handle.close();
|
|
31
|
-
}
|
|
32
|
-
await rename(temporary, path);
|
|
33
|
-
renamed = true;
|
|
34
|
-
await syncDirectory(parent);
|
|
35
|
-
}
|
|
36
|
-
finally {
|
|
37
|
-
if (!renamed) {
|
|
38
|
-
await rm(temporary, { force: true });
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
export async function readScaffoldJournal(path) {
|
|
43
|
-
try {
|
|
44
|
-
const result = await readBoundedRegularFile(path, MAX_SCAFFOLD_PLAN_BYTES);
|
|
45
|
-
if (result.outcome === "invalid") {
|
|
46
|
-
throw new ScaffoldError("SCAFFOLD_RECOVERY_REQUIRED", "Scaffolding recovery journal is not a bounded regular file.");
|
|
47
|
-
}
|
|
48
|
-
if (result.outcome === "changed") {
|
|
49
|
-
throw new ScaffoldError("SCAFFOLD_RECOVERY_REQUIRED", "Scaffolding recovery journal changed while it was being read.");
|
|
50
|
-
}
|
|
51
|
-
const value = parseStrictYamlSource(result.bytes.toString("utf8"), "rendering-regression-journal");
|
|
52
|
-
if (typeof value !== "object" ||
|
|
53
|
-
value === null ||
|
|
54
|
-
Array.isArray(value) ||
|
|
55
|
-
Object.keys(value).length !== 3 ||
|
|
56
|
-
!("schemaVersion" in value) ||
|
|
57
|
-
value.schemaVersion !== 1 ||
|
|
58
|
-
!("state" in value) ||
|
|
59
|
-
value.state !== "PREPARED" ||
|
|
60
|
-
!("plan" in value)) {
|
|
61
|
-
throw new ScaffoldError("SCAFFOLD_RECOVERY_REQUIRED", "The 0.5 regression adapter cannot recover this scaffolding journal.");
|
|
62
|
-
}
|
|
63
|
-
await assertSchema("scaffold-plan/v1", value.plan, "rendering-regression-journal");
|
|
64
|
-
const plan = value.plan;
|
|
65
|
-
assertScaffoldPlanDigest(plan);
|
|
66
|
-
return plan;
|
|
67
|
-
}
|
|
68
|
-
catch (error) {
|
|
69
|
-
if (isMissing(error)) {
|
|
70
|
-
return undefined;
|
|
71
|
-
}
|
|
72
|
-
throw error;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
export async function removeScaffoldJournal(path, faultInjector) {
|
|
76
|
-
await rm(path, { force: true });
|
|
77
|
-
await faultInjector?.();
|
|
78
|
-
await syncDirectory(dirname(path));
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=filesystem-rendering-journal.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem-rendering-journal.js","sourceRoot":"","sources":["../../../../src/scaffolding/adapters/node/filesystem-rendering-journal.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { ScaffoldPlanV1, ScaffoldReceiptV1 } from "../../contract/types.js";
|
|
2
|
-
/** Retains the released 0.5 recovery contract for regression evidence only. */
|
|
3
|
-
export declare function recoverFilesystemScaffold(consumerRoot: string): Promise<ScaffoldReceiptV1 | undefined>;
|
|
4
|
-
export declare function applyFilesystemScaffold(consumerRoot: string, plan: ScaffoldPlanV1): Promise<ScaffoldReceiptV1>;
|
|
5
|
-
interface ScaffoldFilesystemFaultPoint {
|
|
6
|
-
readonly phase: "after-journal-prepared" | "after-hard-link" | "after-operation-published" | "after-temporary-synced" | "after-temporary-written" | "before-journal-removed";
|
|
7
|
-
readonly operationIndex?: number;
|
|
8
|
-
readonly operationPath?: string;
|
|
9
|
-
}
|
|
10
|
-
type ScaffoldFilesystemFaultInjector = (point: ScaffoldFilesystemFaultPoint) => Promise<void> | void;
|
|
11
|
-
/** Internal conformance seam. It is intentionally absent from package exports. */
|
|
12
|
-
export declare function applyFilesystemScaffoldWithFaultInjection(consumerRoot: string, plan: ScaffoldPlanV1, faultInjector?: ScaffoldFilesystemFaultInjector): Promise<ScaffoldReceiptV1>;
|
|
13
|
-
export {};
|
|
14
|
-
//# sourceMappingURL=filesystem-workspace.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem-workspace.d.ts","sourceRoot":"","sources":["../../../../src/scaffolding/adapters/node/filesystem-workspace.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAIV,cAAc,EACd,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAoLjC,+EAA+E;AAC/E,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAExC;AAED,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,iBAAiB,CAAC,CAE5B;AAGD,UAAU,4BAA4B;IACpC,QAAQ,CAAC,KAAK,EACV,wBAAwB,GACxB,iBAAiB,GACjB,2BAA2B,GAC3B,wBAAwB,GACxB,yBAAyB,GACzB,wBAAwB,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,KAAK,+BAA+B,GAAG,CACrC,KAAK,EAAE,4BAA4B,KAChC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAE1B,kFAAkF;AAClF,wBAAsB,yCAAyC,CAC7D,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,cAAc,EACpB,aAAa,CAAC,EAAE,+BAA+B,GAC9C,OAAO,CAAC,iBAAiB,CAAC,CAiG5B"}
|
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
import { realpath } from "node:fs/promises";
|
|
2
|
-
import { dirname, join, resolve } from "node:path";
|
|
3
|
-
import { assertScaffoldPlanDigest } from "../../kernel/rendering-plan-validation.js";
|
|
4
|
-
import { createScaffoldReceipt } from "../../kernel/receipt.js";
|
|
5
|
-
import { ScaffoldError } from "../../scaffold-error.js";
|
|
6
|
-
import { assertSchema } from "../../../schema-catalog.js";
|
|
7
|
-
import { acquireFoundationOperationLock } from "../../../local-mode/service.js";
|
|
8
|
-
import { LOCAL_STATE_DIRECTORY } from "../../../local-mode/types.js";
|
|
9
|
-
import { inspectAuthorityReadSet } from "./node-input-loader.js";
|
|
10
|
-
import { assertRenderingPlanMatchesConsumerAuthority } from "./node-rendering-plan-authority.js";
|
|
11
|
-
import { assertSafeExistingAncestors, assertSafeOperationPaths, syncDirectory } from "./filesystem-path-guard.js";
|
|
12
|
-
import { assertTransactionTemporariesAbsent, classifyFilesystemPlan, publishFilesystemOperation, removeTransactionTemporary } from "./filesystem-operation-state.js";
|
|
13
|
-
import { readScaffoldJournal, removeScaffoldJournal, SCAFFOLD_JOURNAL_FILE, writeScaffoldJournal } from "./filesystem-rendering-journal.js";
|
|
14
|
-
function diagnostic(ruleId, phase, subject, message, remediation) {
|
|
15
|
-
return Object.freeze({
|
|
16
|
-
ruleId,
|
|
17
|
-
severity: "error",
|
|
18
|
-
phase,
|
|
19
|
-
subject,
|
|
20
|
-
message,
|
|
21
|
-
remediation
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
function conflictReceipt(plan, classifications, phase) {
|
|
25
|
-
const conflicting = classifications.filter(({ state }) => state === "conflict");
|
|
26
|
-
return createScaffoldReceipt({
|
|
27
|
-
plan,
|
|
28
|
-
adapterId: "foundation.filesystem/v1",
|
|
29
|
-
outcome: phase === "recovery" ? "recovery-required" : "rejected",
|
|
30
|
-
commitState: phase === "recovery" ? "recovery-required" : "rejected",
|
|
31
|
-
atomicity: "journaled-recoverable",
|
|
32
|
-
operations: classifications.map(({ operation, state }) => ({
|
|
33
|
-
operationId: operation.id,
|
|
34
|
-
path: operation.path,
|
|
35
|
-
outcome: state === "conflict"
|
|
36
|
-
? "conflict"
|
|
37
|
-
: state === "after"
|
|
38
|
-
? "already-satisfied"
|
|
39
|
-
: "not-applied",
|
|
40
|
-
...(state === "after" ? { resultDigest: operation.after.digest } : {})
|
|
41
|
-
})),
|
|
42
|
-
diagnostics: conflicting.map(({ operation }) => diagnostic(phase === "recovery"
|
|
43
|
-
? "scaffolding.recovery.third-state"
|
|
44
|
-
: "scaffolding.apply.precondition-conflict", phase, operation.path, "File matches neither the Plan precondition nor its desired result.", phase === "recovery"
|
|
45
|
-
? "Resolve the file manually, then retry recovery."
|
|
46
|
-
: "Create a new Intent and Plan from the current workspace state."))
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
async function finishPlan(root, plan, recovered, faultInjector) {
|
|
50
|
-
await assertRenderingPlanMatchesConsumerAuthority(root, plan);
|
|
51
|
-
for (const operation of plan.operations) {
|
|
52
|
-
await removeTransactionTemporary(root, plan.planDigest, operation);
|
|
53
|
-
}
|
|
54
|
-
const initial = await classifyFilesystemPlan(root, plan);
|
|
55
|
-
if (initial.some(({ state }) => state === "conflict")) {
|
|
56
|
-
return conflictReceipt(plan, initial, recovered ? "recovery" : "apply");
|
|
57
|
-
}
|
|
58
|
-
const operationReceipts = [];
|
|
59
|
-
for (const [operationIndex, { operation, state }] of initial.entries()) {
|
|
60
|
-
if (recovered && state === "after") {
|
|
61
|
-
await syncDirectory(dirname(resolve(root, operation.path)));
|
|
62
|
-
}
|
|
63
|
-
const outcome = state === "after"
|
|
64
|
-
? "already-satisfied"
|
|
65
|
-
: await publishFilesystemOperation(root, operation, plan.planDigest, operationIndex, faultInjector);
|
|
66
|
-
operationReceipts.push({
|
|
67
|
-
operationId: operation.id,
|
|
68
|
-
path: operation.path,
|
|
69
|
-
outcome: recovered && outcome === "applied" ? "recovered" : outcome,
|
|
70
|
-
resultDigest: operation.after.digest
|
|
71
|
-
});
|
|
72
|
-
await faultInjector?.({
|
|
73
|
-
phase: "after-operation-published",
|
|
74
|
-
operationIndex,
|
|
75
|
-
operationPath: operation.path
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
const finalState = await classifyFilesystemPlan(root, plan);
|
|
79
|
-
if (finalState.some(({ state }) => state !== "after")) {
|
|
80
|
-
return conflictReceipt(plan, finalState, "recovery");
|
|
81
|
-
}
|
|
82
|
-
return createScaffoldReceipt({
|
|
83
|
-
plan,
|
|
84
|
-
adapterId: "foundation.filesystem/v1",
|
|
85
|
-
outcome: recovered ? "failed-recovered" : "applied",
|
|
86
|
-
commitState: recovered ? "recovered" : "committed",
|
|
87
|
-
atomicity: "journaled-recoverable",
|
|
88
|
-
operations: operationReceipts
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
async function recoverFilesystemScaffoldV1(consumerRoot) {
|
|
92
|
-
const canonicalRoot = await realpath(resolve(consumerRoot));
|
|
93
|
-
const release = await acquireFoundationOperationLock(canonicalRoot);
|
|
94
|
-
try {
|
|
95
|
-
const journalPath = join(canonicalRoot, LOCAL_STATE_DIRECTORY, SCAFFOLD_JOURNAL_FILE);
|
|
96
|
-
const journalPlan = await readScaffoldJournal(journalPath);
|
|
97
|
-
if (journalPlan === undefined) {
|
|
98
|
-
return undefined;
|
|
99
|
-
}
|
|
100
|
-
assertSafeOperationPaths(journalPlan);
|
|
101
|
-
for (const operation of journalPlan.operations) {
|
|
102
|
-
await assertSafeExistingAncestors(canonicalRoot, operation.path);
|
|
103
|
-
}
|
|
104
|
-
const receipt = await finishPlan(canonicalRoot, journalPlan, true);
|
|
105
|
-
if (receipt.outcome !== "recovery-required") {
|
|
106
|
-
await removeScaffoldJournal(journalPath);
|
|
107
|
-
}
|
|
108
|
-
return receipt;
|
|
109
|
-
}
|
|
110
|
-
finally {
|
|
111
|
-
await release();
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
async function applyFilesystemScaffoldV1(consumerRoot, plan) {
|
|
115
|
-
return applyFilesystemScaffoldWithFaultInjection(consumerRoot, plan);
|
|
116
|
-
}
|
|
117
|
-
/** Retains the released 0.5 recovery contract for regression evidence only. */
|
|
118
|
-
export async function recoverFilesystemScaffold(consumerRoot) {
|
|
119
|
-
return recoverFilesystemScaffoldV1(consumerRoot);
|
|
120
|
-
}
|
|
121
|
-
export async function applyFilesystemScaffold(consumerRoot, plan) {
|
|
122
|
-
return applyFilesystemScaffoldV1(consumerRoot, plan);
|
|
123
|
-
}
|
|
124
|
-
/** Internal conformance seam. It is intentionally absent from package exports. */
|
|
125
|
-
export async function applyFilesystemScaffoldWithFaultInjection(consumerRoot, plan, faultInjector) {
|
|
126
|
-
await assertSchema("scaffold-plan/v1", plan, "scaffold-apply-plan");
|
|
127
|
-
assertScaffoldPlanDigest(plan);
|
|
128
|
-
assertSafeOperationPaths(plan);
|
|
129
|
-
const canonicalRoot = await realpath(resolve(consumerRoot));
|
|
130
|
-
const release = await acquireFoundationOperationLock(canonicalRoot);
|
|
131
|
-
try {
|
|
132
|
-
const journalPath = join(canonicalRoot, LOCAL_STATE_DIRECTORY, SCAFFOLD_JOURNAL_FILE);
|
|
133
|
-
const existingPlan = await readScaffoldJournal(journalPath);
|
|
134
|
-
if (existingPlan !== undefined &&
|
|
135
|
-
existingPlan.planDigest !== plan.planDigest) {
|
|
136
|
-
throw new ScaffoldError("SCAFFOLD_RECOVERY_REQUIRED", "A different scaffolding Plan requires recovery before this Plan can apply.");
|
|
137
|
-
}
|
|
138
|
-
if (existingPlan !== undefined) {
|
|
139
|
-
for (const operation of existingPlan.operations) {
|
|
140
|
-
await assertSafeExistingAncestors(canonicalRoot, operation.path);
|
|
141
|
-
}
|
|
142
|
-
const recovered = await finishPlan(canonicalRoot, existingPlan, true);
|
|
143
|
-
if (recovered.outcome !== "recovery-required") {
|
|
144
|
-
await removeScaffoldJournal(journalPath);
|
|
145
|
-
}
|
|
146
|
-
return recovered;
|
|
147
|
-
}
|
|
148
|
-
if (!(await inspectAuthorityReadSet(canonicalRoot, plan.readSet))) {
|
|
149
|
-
return createScaffoldReceipt({
|
|
150
|
-
plan,
|
|
151
|
-
adapterId: "foundation.filesystem/v1",
|
|
152
|
-
outcome: "rejected",
|
|
153
|
-
commitState: "rejected",
|
|
154
|
-
atomicity: "journaled-recoverable",
|
|
155
|
-
operations: [],
|
|
156
|
-
diagnostics: [
|
|
157
|
-
diagnostic("scaffolding.apply.stale-authority-snapshot", "apply", plan.projectId, "Consumer configuration or target authority changed after planning.", "Compile a new Plan from the current consumer state.")
|
|
158
|
-
]
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
await assertRenderingPlanMatchesConsumerAuthority(canonicalRoot, plan);
|
|
162
|
-
const classifications = await classifyFilesystemPlan(canonicalRoot, plan);
|
|
163
|
-
if (classifications.some(({ state }) => state === "conflict")) {
|
|
164
|
-
return conflictReceipt(plan, classifications, "apply");
|
|
165
|
-
}
|
|
166
|
-
if (classifications.every(({ state }) => state === "after")) {
|
|
167
|
-
return createScaffoldReceipt({
|
|
168
|
-
plan,
|
|
169
|
-
adapterId: "foundation.filesystem/v1",
|
|
170
|
-
outcome: "already-applied",
|
|
171
|
-
commitState: "committed",
|
|
172
|
-
atomicity: "journaled-recoverable",
|
|
173
|
-
operations: classifications.map(({ operation }) => ({
|
|
174
|
-
operationId: operation.id,
|
|
175
|
-
path: operation.path,
|
|
176
|
-
outcome: "already-satisfied",
|
|
177
|
-
resultDigest: operation.after.digest
|
|
178
|
-
}))
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
for (const operation of plan.operations) {
|
|
182
|
-
await assertSafeExistingAncestors(canonicalRoot, operation.path);
|
|
183
|
-
}
|
|
184
|
-
await assertTransactionTemporariesAbsent(canonicalRoot, plan);
|
|
185
|
-
await writeScaffoldJournal(journalPath, plan);
|
|
186
|
-
await faultInjector?.({ phase: "after-journal-prepared" });
|
|
187
|
-
try {
|
|
188
|
-
const receipt = await finishPlan(canonicalRoot, plan, false, faultInjector);
|
|
189
|
-
if (receipt.outcome !== "recovery-required") {
|
|
190
|
-
await faultInjector?.({ phase: "before-journal-removed" });
|
|
191
|
-
await removeScaffoldJournal(journalPath);
|
|
192
|
-
}
|
|
193
|
-
return receipt;
|
|
194
|
-
}
|
|
195
|
-
catch {
|
|
196
|
-
const recovered = await finishPlan(canonicalRoot, plan, true);
|
|
197
|
-
if (recovered.outcome !== "recovery-required") {
|
|
198
|
-
await removeScaffoldJournal(journalPath);
|
|
199
|
-
}
|
|
200
|
-
return recovered;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
finally {
|
|
204
|
-
await release();
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
//# sourceMappingURL=filesystem-workspace.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem-workspace.js","sourceRoot":"","sources":["../../../../src/scaffolding/adapters/node/filesystem-workspace.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { ScaffoldCompilationInput, ScaffoldPlanV1, ScaffoldReadAssertionV1 } from "../../contract/types.js";
|
|
2
|
-
export declare function loadScaffoldCompilationInput(options: {
|
|
3
|
-
readonly consumerRoot: string;
|
|
4
|
-
readonly configPath: string;
|
|
5
|
-
readonly intentPath: string;
|
|
6
|
-
readonly foundationVersion: string;
|
|
7
|
-
}): Promise<ScaffoldCompilationInput>;
|
|
8
|
-
export declare function loadScaffoldCompilationInputFromIntent(options: {
|
|
9
|
-
readonly consumerRoot: string;
|
|
10
|
-
readonly configPath: string;
|
|
11
|
-
readonly foundationVersion: string;
|
|
12
|
-
readonly intent: unknown;
|
|
13
|
-
}): Promise<ScaffoldCompilationInput>;
|
|
14
|
-
/** Reads a released 0.5 Plan for regression evidence only. */
|
|
15
|
-
export declare function readScaffoldPlanFile(consumerRoot: string, planPath: string): Promise<ScaffoldPlanV1>;
|
|
16
|
-
export declare function inspectAuthorityReadSet(consumerRoot: string, readSet: readonly ScaffoldReadAssertionV1[]): Promise<boolean>;
|
|
17
|
-
//# sourceMappingURL=node-input-loader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"node-input-loader.d.ts","sourceRoot":"","sources":["../../../../src/scaffolding/adapters/node/node-input-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EAExB,cAAc,EACd,uBAAuB,EAGxB,MAAM,yBAAyB,CAAC;AA2DjC,wBAAsB,4BAA4B,CAAC,OAAO,EAAE;IAC1D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CA0BpC;AAoDD,wBAAsB,sCAAsC,CAAC,OAAO,EAAE;IACpE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAEpC;AAED,8DAA8D;AAC9D,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC,CAYzB;AAED,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,SAAS,uBAAuB,EAAE,GAC1C,OAAO,CAAC,OAAO,CAAC,CAwBlB"}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { assertScaffoldPlanDigest } from "../../kernel/rendering-plan-validation.js";
|
|
2
|
-
import { assertSchema } from "../../../schema-catalog.js";
|
|
3
|
-
import { parseStrictYamlSource } from "../../../strict-yaml.js";
|
|
4
|
-
import { assertion, readContainedRepositoryFile } from "./node-repository-file.js";
|
|
5
|
-
import { MAX_SCAFFOLD_PLAN_BYTES } from "./node-scaffold-limits.js";
|
|
6
|
-
function hasErrorCode(error, code) {
|
|
7
|
-
const visited = new Set();
|
|
8
|
-
let candidate = error;
|
|
9
|
-
while (candidate instanceof Error && !visited.has(candidate)) {
|
|
10
|
-
visited.add(candidate);
|
|
11
|
-
if ("code" in candidate &&
|
|
12
|
-
candidate.code === code) {
|
|
13
|
-
return true;
|
|
14
|
-
}
|
|
15
|
-
candidate = candidate.cause;
|
|
16
|
-
}
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
function mapCatalog(value) {
|
|
20
|
-
const raw = value;
|
|
21
|
-
return Object.freeze({
|
|
22
|
-
version: 1,
|
|
23
|
-
packages: Object.freeze(raw.packages.map((entry) => Object.freeze({
|
|
24
|
-
id: entry.id,
|
|
25
|
-
role: entry.role,
|
|
26
|
-
path: entry.path,
|
|
27
|
-
packageName: entry.package_name,
|
|
28
|
-
...(entry.owner_document === undefined
|
|
29
|
-
? {}
|
|
30
|
-
: { ownerDocument: entry.owner_document })
|
|
31
|
-
})))
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
export async function loadScaffoldCompilationInput(options) {
|
|
35
|
-
const [configFile, intentFile] = await Promise.all([
|
|
36
|
-
readContainedRepositoryFile(options.consumerRoot, options.configPath, "scaffolding-config"),
|
|
37
|
-
readContainedRepositoryFile(options.consumerRoot, options.intentPath, "scaffold-intent")
|
|
38
|
-
]);
|
|
39
|
-
const configValue = parseStrictYamlSource(configFile.source, "scaffolding-config");
|
|
40
|
-
const intentValue = parseStrictYamlSource(intentFile.source, "scaffold-intent");
|
|
41
|
-
return loadScaffoldCompilationInputFromIntentInternal({
|
|
42
|
-
consumerRoot: options.consumerRoot,
|
|
43
|
-
configPath: options.configPath,
|
|
44
|
-
foundationVersion: options.foundationVersion,
|
|
45
|
-
intent: intentValue,
|
|
46
|
-
configFile,
|
|
47
|
-
configValue
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
async function loadScaffoldCompilationInputFromIntentInternal(options) {
|
|
51
|
-
const configFile = options.configFile ??
|
|
52
|
-
(await readContainedRepositoryFile(options.consumerRoot, options.configPath, "scaffolding-config"));
|
|
53
|
-
const configValue = options.configValue ??
|
|
54
|
-
parseStrictYamlSource(configFile.source, "scaffolding-config");
|
|
55
|
-
await Promise.all([
|
|
56
|
-
assertSchema("scaffolding-config/v1", configValue, "scaffolding-config"),
|
|
57
|
-
assertSchema("scaffold-intent/v1", options.intent, "scaffold-intent")
|
|
58
|
-
]);
|
|
59
|
-
const config = configValue;
|
|
60
|
-
const catalogFile = await readContainedRepositoryFile(options.consumerRoot, config.targetCatalogPath, "scaffold-target-catalog");
|
|
61
|
-
const catalogValue = parseStrictYamlSource(catalogFile.source, "scaffold-target-catalog");
|
|
62
|
-
await assertSchema("scaffold-target-catalog/v1", catalogValue, "scaffold-target-catalog");
|
|
63
|
-
return Object.freeze({
|
|
64
|
-
foundationVersion: options.foundationVersion,
|
|
65
|
-
configPath: options.configPath,
|
|
66
|
-
config,
|
|
67
|
-
intent: options.intent,
|
|
68
|
-
catalog: mapCatalog(catalogValue),
|
|
69
|
-
authorityReadSet: Object.freeze([
|
|
70
|
-
assertion(configFile),
|
|
71
|
-
assertion(catalogFile)
|
|
72
|
-
])
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
export async function loadScaffoldCompilationInputFromIntent(options) {
|
|
76
|
-
return loadScaffoldCompilationInputFromIntentInternal(options);
|
|
77
|
-
}
|
|
78
|
-
/** Reads a released 0.5 Plan for regression evidence only. */
|
|
79
|
-
export async function readScaffoldPlanFile(consumerRoot, planPath) {
|
|
80
|
-
const planFile = await readContainedRepositoryFile(consumerRoot, planPath, "scaffold-plan", MAX_SCAFFOLD_PLAN_BYTES);
|
|
81
|
-
const value = parseStrictYamlSource(planFile.source, "scaffold-plan");
|
|
82
|
-
await assertSchema("scaffold-plan/v1", value, "rendering-regression-plan");
|
|
83
|
-
const plan = value;
|
|
84
|
-
assertScaffoldPlanDigest(plan);
|
|
85
|
-
return plan;
|
|
86
|
-
}
|
|
87
|
-
export async function inspectAuthorityReadSet(consumerRoot, readSet) {
|
|
88
|
-
for (const expected of readSet) {
|
|
89
|
-
let current;
|
|
90
|
-
try {
|
|
91
|
-
current = await readContainedRepositoryFile(consumerRoot, expected.path, "scaffold-apply-read-set");
|
|
92
|
-
}
|
|
93
|
-
catch (error) {
|
|
94
|
-
if (hasErrorCode(error, "ENOENT")) {
|
|
95
|
-
return false;
|
|
96
|
-
}
|
|
97
|
-
throw error;
|
|
98
|
-
}
|
|
99
|
-
const observed = assertion(current);
|
|
100
|
-
if (observed.size !== expected.size ||
|
|
101
|
-
observed.digest !== expected.digest) {
|
|
102
|
-
return false;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
return true;
|
|
106
|
-
}
|
|
107
|
-
//# sourceMappingURL=node-input-loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"node-input-loader.js","sourceRoot":"","sources":["../../../../src/scaffolding/adapters/node/node-input-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { ScaffoldPlanV1, ScaffoldReceiptV1 } from "../../contract/types.js";
|
|
2
|
-
/** Validates an untrusted released 0.5 Receipt for regression evidence. */
|
|
3
|
-
export declare function validateScaffoldReceipt(receipt: unknown, plan?: ScaffoldPlanV1): Promise<ScaffoldReceiptV1>;
|
|
4
|
-
//# sourceMappingURL=node-receipt-validator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"node-receipt-validator.d.ts","sourceRoot":"","sources":["../../../../src/scaffolding/adapters/node/node-receipt-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAIjC,2EAA2E;AAC3E,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,iBAAiB,CAAC,CAS5B"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { assertScaffoldReceiptDigest } from "../../kernel/receipt.js";
|
|
2
|
-
import { assertSchema } from "../../../schema-catalog.js";
|
|
3
|
-
/** Validates an untrusted released 0.5 Receipt for regression evidence. */
|
|
4
|
-
export async function validateScaffoldReceipt(receipt, plan) {
|
|
5
|
-
await assertSchema("scaffold-receipt/v1", receipt, "rendering-regression-receipt");
|
|
6
|
-
const validated = receipt;
|
|
7
|
-
assertScaffoldReceiptDigest(validated, plan);
|
|
8
|
-
return validated;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=node-receipt-validator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"node-receipt-validator.js","sourceRoot":"","sources":["../../../../src/scaffolding/adapters/node/node-receipt-validator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,2EAA2E;AAC3E,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAgB,EAChB,IAAqB;IAErB,MAAM,YAAY,CAChB,qBAAqB,EACrB,OAAO,EACP,8BAA8B,CAC/B,CAAC;IACF,MAAM,SAAS,GAAG,OAA4B,CAAC;IAC/C,2BAA2B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7C,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"node-rendering-plan-authority.d.ts","sourceRoot":"","sources":["../../../../src/scaffolding/adapters/node/node-rendering-plan-authority.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAO9D,wBAAsB,2CAA2C,CAC/D,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC,CAiBf"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { createRenderingRegressionRegistry } from "../../definitions/registry.js";
|
|
2
|
-
import { compileScaffoldPlan } from "../../kernel/rendering-plan-compiler.js";
|
|
3
|
-
import { ScaffoldError } from "../../scaffold-error.js";
|
|
4
|
-
import { installedFoundationVersion } from "./installed-foundation-version.js";
|
|
5
|
-
import { loadScaffoldCompilationInputFromIntent } from "./node-input-loader.js";
|
|
6
|
-
export async function assertRenderingPlanMatchesConsumerAuthority(consumerRoot, plan) {
|
|
7
|
-
const input = await loadScaffoldCompilationInputFromIntent({
|
|
8
|
-
consumerRoot,
|
|
9
|
-
configPath: plan.authority.configPath,
|
|
10
|
-
foundationVersion: await installedFoundationVersion(),
|
|
11
|
-
intent: plan.intent
|
|
12
|
-
});
|
|
13
|
-
const expected = compileScaffoldPlan(input, createRenderingRegressionRegistry());
|
|
14
|
-
if (expected.planDigest !== plan.planDigest) {
|
|
15
|
-
throw new ScaffoldError("SCAFFOLD_PLAN_INVALID", "Scaffolding Plan was not produced by the closed compiler from current consumer authority.");
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=node-rendering-plan-authority.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"node-rendering-plan-authority.js","sourceRoot":"","sources":["../../../../src/scaffolding/adapters/node/node-rendering-plan-authority.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iCAAiC,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,sCAAsC,EAAE,MAAM,wBAAwB,CAAC;AAEhF,MAAM,CAAC,KAAK,UAAU,2CAA2C,CAC/D,YAAoB,EACpB,IAAoB;IAEpB,MAAM,KAAK,GAAG,MAAM,sCAAsC,CAAC;QACzD,YAAY;QACZ,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU;QACrC,iBAAiB,EAAE,MAAM,0BAA0B,EAAE;QACrD,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,mBAAmB,CAClC,KAAK,EACL,iCAAiC,EAAE,CACpC,CAAC;IACF,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,IAAI,aAAa,CACrB,uBAAuB,EACvB,2FAA2F,CAC5F,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export { applyFilesystemScaffold, recoverFilesystemScaffold } from "./adapters/node/filesystem-workspace.js";
|
|
2
|
-
export { readScaffoldPlanFile } from "./adapters/node/node-input-loader.js";
|
|
3
|
-
export { validateScaffoldReceipt } from "./adapters/node/node-receipt-validator.js";
|
|
4
|
-
export { MemoryScaffoldWorkspace } from "./adapters/memory/memory-workspace.js";
|
|
5
|
-
export { assertScaffoldPlanDigest } from "./kernel/rendering-plan-validation.js";
|
|
6
|
-
export { assertScaffoldReceiptDigest } from "./kernel/receipt.js";
|
|
7
|
-
export { planScaffoldFromFile } from "./service.js";
|
|
8
|
-
//# sourceMappingURL=internal-rendering-regression-api.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"internal-rendering-regression-api.d.ts","sourceRoot":"","sources":["../../src/scaffolding/internal-rendering-regression-api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export { applyFilesystemScaffold, recoverFilesystemScaffold } from "./adapters/node/filesystem-workspace.js";
|
|
2
|
-
export { readScaffoldPlanFile } from "./adapters/node/node-input-loader.js";
|
|
3
|
-
export { validateScaffoldReceipt } from "./adapters/node/node-receipt-validator.js";
|
|
4
|
-
export { MemoryScaffoldWorkspace } from "./adapters/memory/memory-workspace.js";
|
|
5
|
-
export { assertScaffoldPlanDigest } from "./kernel/rendering-plan-validation.js";
|
|
6
|
-
export { assertScaffoldReceiptDigest } from "./kernel/receipt.js";
|
|
7
|
-
export { planScaffoldFromFile } from "./service.js";
|
|
8
|
-
//# sourceMappingURL=internal-rendering-regression-api.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"internal-rendering-regression-api.js","sourceRoot":"","sources":["../../src/scaffolding/internal-rendering-regression-api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type { ScaffoldDiagnosticV1, ScaffoldOperationReceiptV1, ScaffoldPlanV1, ScaffoldReceiptOutcome, ScaffoldReceiptV1 } from "../contract/types.js";
|
|
2
|
-
interface ScaffoldReceiptCandidateV1 {
|
|
3
|
-
readonly schemaVersion: number;
|
|
4
|
-
readonly protocolVersion: number;
|
|
5
|
-
readonly planDigest: string;
|
|
6
|
-
readonly adapter: {
|
|
7
|
-
readonly id: string;
|
|
8
|
-
readonly contractVersion: number;
|
|
9
|
-
};
|
|
10
|
-
readonly outcome: string;
|
|
11
|
-
readonly commit: {
|
|
12
|
-
readonly state: "committed" | "recovered" | "recovery-required" | "rejected";
|
|
13
|
-
readonly atomicity: "journaled-recoverable" | "memory-atomic";
|
|
14
|
-
};
|
|
15
|
-
readonly operations: readonly ScaffoldOperationReceiptV1[];
|
|
16
|
-
readonly diagnostics: readonly ScaffoldDiagnosticV1[];
|
|
17
|
-
readonly receiptDigest: string;
|
|
18
|
-
}
|
|
19
|
-
interface CreateScaffoldReceiptOptions {
|
|
20
|
-
readonly plan: ScaffoldPlanV1;
|
|
21
|
-
readonly adapterId: "foundation.filesystem/v1" | "foundation.memory/v1";
|
|
22
|
-
readonly outcome: ScaffoldReceiptOutcome;
|
|
23
|
-
readonly commitState: ScaffoldReceiptCandidateV1["commit"]["state"];
|
|
24
|
-
readonly atomicity: ScaffoldReceiptCandidateV1["commit"]["atomicity"];
|
|
25
|
-
readonly operations: readonly ScaffoldOperationReceiptV1[];
|
|
26
|
-
readonly diagnostics?: readonly ScaffoldDiagnosticV1[];
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Verifies digest and semantic evidence for a schema-validated Receipt.
|
|
30
|
-
* Use `validateScaffoldReceipt` when the value comes from an untrusted source.
|
|
31
|
-
*/
|
|
32
|
-
export declare function assertScaffoldReceiptDigest(receipt: ScaffoldReceiptV1, plan?: ScaffoldPlanV1): void;
|
|
33
|
-
export declare function createScaffoldReceipt(options: CreateScaffoldReceiptOptions): ScaffoldReceiptV1;
|
|
34
|
-
export {};
|
|
35
|
-
//# sourceMappingURL=receipt.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"receipt.d.ts","sourceRoot":"","sources":["../../../src/scaffolding/kernel/receipt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,oBAAoB,EAEpB,0BAA0B,EAC1B,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAK9B,UAAU,0BAA0B;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;KAClC,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,KAAK,EACV,WAAW,GACX,WAAW,GACX,mBAAmB,GACnB,UAAU,CAAC;QACf,QAAQ,CAAC,SAAS,EAAE,uBAAuB,GAAG,eAAe,CAAC;KAC/D,CAAC;IACF,QAAQ,CAAC,UAAU,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAC3D,QAAQ,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACtD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,UAAU,4BAA4B;IACpC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,SAAS,EACd,0BAA0B,GAC1B,sBAAsB,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;IACpE,QAAQ,CAAC,SAAS,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC;IACtE,QAAQ,CAAC,UAAU,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAC3D,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACxD;AA8PD;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,cAAc,GACpB,IAAI,CAEN;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,4BAA4B,GACpC,iBAAiB,CAuBnB"}
|