@agent-teams/engineering-foundation 0.17.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/dist/capabilities/contract-json-schema-releases/module.d.ts.map +1 -1
  2. package/dist/capabilities/contract-json-schema-releases/module.js +4 -17
  3. package/dist/capabilities/contract-json-schema-releases/module.js.map +1 -1
  4. package/dist/capabilities/contract-protobuf-evolution/module.d.ts.map +1 -1
  5. package/dist/capabilities/contract-protobuf-evolution/module.js +4 -17
  6. package/dist/capabilities/contract-protobuf-evolution/module.js.map +1 -1
  7. package/dist/capabilities/documentation-local-references/module.d.ts.map +1 -1
  8. package/dist/capabilities/documentation-local-references/module.js +4 -17
  9. package/dist/capabilities/documentation-local-references/module.js.map +1 -1
  10. package/dist/capabilities/executable-specifications/module.d.ts.map +1 -1
  11. package/dist/capabilities/executable-specifications/module.js +4 -17
  12. package/dist/capabilities/executable-specifications/module.js.map +1 -1
  13. package/dist/capabilities/governance-architecture-decisions/module.d.ts.map +1 -1
  14. package/dist/capabilities/governance-architecture-decisions/module.js +4 -17
  15. package/dist/capabilities/governance-architecture-decisions/module.js.map +1 -1
  16. package/dist/capabilities/public-api-compatibility/module.d.ts.map +1 -1
  17. package/dist/capabilities/public-api-compatibility/module.js +4 -19
  18. package/dist/capabilities/public-api-compatibility/module.js.map +1 -1
  19. package/dist/capabilities/quality-gate-runner/module.d.ts.map +1 -1
  20. package/dist/capabilities/quality-gate-runner/module.js +4 -17
  21. package/dist/capabilities/quality-gate-runner/module.js.map +1 -1
  22. package/dist/capabilities/repository-agent-workflow/module.d.ts.map +1 -1
  23. package/dist/capabilities/repository-agent-workflow/module.js +4 -17
  24. package/dist/capabilities/repository-agent-workflow/module.js.map +1 -1
  25. package/dist/capabilities/repository-security-baseline/adapters/outbound/filesystem/workflow-evidence-parser.d.ts.map +1 -1
  26. package/dist/capabilities/repository-security-baseline/adapters/outbound/filesystem/workflow-evidence-parser.js +33 -0
  27. package/dist/capabilities/repository-security-baseline/adapters/outbound/filesystem/workflow-evidence-parser.js.map +1 -1
  28. package/dist/capabilities/repository-security-baseline/application/model/repository-security.d.ts +1 -0
  29. package/dist/capabilities/repository-security-baseline/application/model/repository-security.d.ts.map +1 -1
  30. package/dist/capabilities/repository-security-baseline/application/model/repository-security.js.map +1 -1
  31. package/dist/capabilities/repository-security-baseline/application/policies/dependency-review-ordering.js +1 -1
  32. package/dist/capabilities/repository-security-baseline/application/policies/dependency-review-ordering.js.map +1 -1
  33. package/dist/capabilities/repository-security-baseline/application/policies/evaluate-repository-security-tools.js +1 -1
  34. package/dist/capabilities/repository-security-baseline/application/policies/evaluate-repository-security-tools.js.map +1 -1
  35. package/dist/capabilities/repository-security-baseline/application/policies/evaluate-repository-security.js +1 -1
  36. package/dist/capabilities/repository-security-baseline/application/policies/evaluate-repository-security.js.map +1 -1
  37. package/dist/capabilities/repository-security-baseline/module.d.ts.map +1 -1
  38. package/dist/capabilities/repository-security-baseline/module.js +4 -17
  39. package/dist/capabilities/repository-security-baseline/module.js.map +1 -1
  40. package/dist/capabilities/source-dependencies/module.d.ts.map +1 -1
  41. package/dist/capabilities/source-dependencies/module.js +4 -19
  42. package/dist/capabilities/source-dependencies/module.js.map +1 -1
  43. package/dist/capabilities/suppression-governance/module.d.ts.map +1 -1
  44. package/dist/capabilities/suppression-governance/module.js +4 -19
  45. package/dist/capabilities/suppression-governance/module.js.map +1 -1
  46. package/dist/capabilities/workspace-dependency-declarations/module.d.ts.map +1 -1
  47. package/dist/capabilities/workspace-dependency-declarations/module.js +4 -18
  48. package/dist/capabilities/workspace-dependency-declarations/module.js.map +1 -1
  49. package/dist/capability-runtime.d.ts +8 -0
  50. package/dist/capability-runtime.d.ts.map +1 -1
  51. package/dist/capability-runtime.js +66 -0
  52. package/dist/capability-runtime.js.map +1 -1
  53. package/dist/check-runner.d.ts.map +1 -1
  54. package/dist/check-runner.js +16 -10
  55. package/dist/check-runner.js.map +1 -1
  56. package/dist/document-authoring/index.d.ts +6 -1
  57. package/dist/document-authoring/index.d.ts.map +1 -1
  58. package/dist/document-authoring/index.js.map +1 -1
  59. package/dist/index.d.ts +2 -0
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +2 -0
  62. package/dist/index.js.map +1 -1
  63. package/dist/local-mode/index.d.ts +5 -0
  64. package/dist/local-mode/index.d.ts.map +1 -1
  65. package/dist/local-mode/index.js +5 -0
  66. package/dist/local-mode/index.js.map +1 -1
  67. package/dist/mutation/index.d.ts +8 -0
  68. package/dist/mutation/index.d.ts.map +1 -1
  69. package/dist/mutation/index.js.map +1 -1
  70. package/dist/mutation/qualification/index.d.ts +10 -0
  71. package/dist/mutation/qualification/index.d.ts.map +1 -0
  72. package/dist/mutation/qualification/index.js +6 -0
  73. package/dist/mutation/qualification/index.js.map +1 -0
  74. package/dist/repository-mutation/adapters/node/node-known-file-apply-effects.d.ts +84 -0
  75. package/dist/repository-mutation/adapters/node/node-known-file-apply-effects.d.ts.map +1 -0
  76. package/dist/repository-mutation/adapters/node/node-known-file-apply-effects.js +232 -0
  77. package/dist/repository-mutation/adapters/node/node-known-file-apply-effects.js.map +1 -0
  78. package/dist/repository-mutation/adapters/node/node-known-file-apply-faults.d.ts +9 -0
  79. package/dist/repository-mutation/adapters/node/node-known-file-apply-faults.d.ts.map +1 -0
  80. package/dist/repository-mutation/adapters/node/node-known-file-apply-faults.js +2 -0
  81. package/dist/repository-mutation/adapters/node/node-known-file-apply-faults.js.map +1 -0
  82. package/dist/repository-mutation/adapters/node/node-known-file-apply-observation.d.ts +6 -0
  83. package/dist/repository-mutation/adapters/node/node-known-file-apply-observation.d.ts.map +1 -0
  84. package/dist/repository-mutation/adapters/node/node-known-file-apply-observation.js +30 -0
  85. package/dist/repository-mutation/adapters/node/node-known-file-apply-observation.js.map +1 -0
  86. package/dist/repository-mutation/adapters/node/node-known-file-apply-operation.d.ts +11 -0
  87. package/dist/repository-mutation/adapters/node/node-known-file-apply-operation.d.ts.map +1 -0
  88. package/dist/repository-mutation/adapters/node/node-known-file-apply-operation.js +159 -0
  89. package/dist/repository-mutation/adapters/node/node-known-file-apply-operation.js.map +1 -0
  90. package/dist/repository-mutation/adapters/node/node-known-file-apply-state.d.ts +9 -0
  91. package/dist/repository-mutation/adapters/node/node-known-file-apply-state.d.ts.map +1 -0
  92. package/dist/repository-mutation/adapters/node/node-known-file-apply-state.js +21 -0
  93. package/dist/repository-mutation/adapters/node/node-known-file-apply-state.js.map +1 -0
  94. package/dist/repository-mutation/adapters/node/node-known-file-recovery-cleanup.d.ts +9 -0
  95. package/dist/repository-mutation/adapters/node/node-known-file-recovery-cleanup.d.ts.map +1 -0
  96. package/dist/repository-mutation/adapters/node/node-known-file-recovery-cleanup.js +203 -0
  97. package/dist/repository-mutation/adapters/node/node-known-file-recovery-cleanup.js.map +1 -0
  98. package/dist/repository-mutation/adapters/node/node-known-file-recovery-executor.d.ts +17 -0
  99. package/dist/repository-mutation/adapters/node/node-known-file-recovery-executor.d.ts.map +1 -0
  100. package/dist/repository-mutation/adapters/node/node-known-file-recovery-executor.js +22 -0
  101. package/dist/repository-mutation/adapters/node/node-known-file-recovery-executor.js.map +1 -0
  102. package/dist/repository-mutation/adapters/node/node-known-file-recovery-observation.d.ts +15 -0
  103. package/dist/repository-mutation/adapters/node/node-known-file-recovery-observation.d.ts.map +1 -0
  104. package/dist/repository-mutation/adapters/node/node-known-file-recovery-observation.js +47 -0
  105. package/dist/repository-mutation/adapters/node/node-known-file-recovery-observation.js.map +1 -0
  106. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage-captured-cleanup.d.ts +29 -0
  107. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage-captured-cleanup.d.ts.map +1 -0
  108. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage-captured-cleanup.js +72 -0
  109. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage-captured-cleanup.js.map +1 -0
  110. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage-captured.d.ts +31 -0
  111. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage-captured.d.ts.map +1 -0
  112. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage-captured.js +254 -0
  113. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage-captured.js.map +1 -0
  114. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage.d.ts +13 -0
  115. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage.d.ts.map +1 -0
  116. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage.js +210 -0
  117. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage.js.map +1 -0
  118. package/dist/repository-mutation/adapters/node/node-known-file-recovery-retirement.d.ts +15 -0
  119. package/dist/repository-mutation/adapters/node/node-known-file-recovery-retirement.d.ts.map +1 -0
  120. package/dist/repository-mutation/adapters/node/node-known-file-recovery-retirement.js +172 -0
  121. package/dist/repository-mutation/adapters/node/node-known-file-recovery-retirement.js.map +1 -0
  122. package/dist/repository-mutation/adapters/node/node-known-file-recovery-state.d.ts +12 -0
  123. package/dist/repository-mutation/adapters/node/node-known-file-recovery-state.d.ts.map +1 -0
  124. package/dist/repository-mutation/adapters/node/node-known-file-recovery-state.js +17 -0
  125. package/dist/repository-mutation/adapters/node/node-known-file-recovery-state.js.map +1 -0
  126. package/dist/repository-mutation/adapters/node/node-known-file-transaction-recovery.d.ts +2 -5
  127. package/dist/repository-mutation/adapters/node/node-known-file-transaction-recovery.d.ts.map +1 -1
  128. package/dist/repository-mutation/adapters/node/node-known-file-transaction-recovery.js +18 -860
  129. package/dist/repository-mutation/adapters/node/node-known-file-transaction-recovery.js.map +1 -1
  130. package/dist/repository-mutation/adapters/node/node-known-file-transaction.d.ts +3 -9
  131. package/dist/repository-mutation/adapters/node/node-known-file-transaction.d.ts.map +1 -1
  132. package/dist/repository-mutation/adapters/node/node-known-file-transaction.js +35 -451
  133. package/dist/repository-mutation/adapters/node/node-known-file-transaction.js.map +1 -1
  134. package/dist/repository-mutation/application/policies/classify-known-file-recovery-transition.d.ts +25 -0
  135. package/dist/repository-mutation/application/policies/classify-known-file-recovery-transition.d.ts.map +1 -0
  136. package/dist/repository-mutation/application/policies/classify-known-file-recovery-transition.js +19 -0
  137. package/dist/repository-mutation/application/policies/classify-known-file-recovery-transition.js.map +1 -0
  138. package/dist/unexpected-failure.d.ts +9 -0
  139. package/dist/unexpected-failure.d.ts.map +1 -0
  140. package/dist/unexpected-failure.js +105 -0
  141. package/dist/unexpected-failure.js.map +1 -0
  142. package/package.json +5 -1
@@ -1,425 +1,18 @@
1
- import { link, lstat, mkdir, open, realpath, rename, unlink } from "node:fs/promises";
2
- import { join } from "node:path";
3
1
  import { canonicalJson, sha256Json } from "../../../canonical-json.js";
4
2
  import { installedFoundationVersion } from "../../../package-version.js";
5
3
  import { createNodeFoundationTransactionCoordinator } from "../../../transaction-coordination/adapters/node/node-foundation-transaction-coordinator.js";
6
4
  import { installedFoundationBuildIdentity } from "../../../transaction-coordination/adapters/node/installed-foundation-build-identity.js";
7
5
  import { ensureFoundationStateDirectory } from "../../../transaction-coordination/adapters/node/node-foundation-state-directory.js";
8
- import { serializeKnownFileIdentity } from "../../application/model/known-file-transaction-journal.js";
9
6
  import { compileKnownFileTransactionEnvelope } from "../../application/policies/known-file-transaction-envelope.js";
10
7
  import { assertKnownFileTransactionPlan } from "../../application/policies/known-file-transaction-plan.js";
11
- import { captureFileHandleIdentity, pathMatchesRegularFileIdentity, readBoundedRegularFile } from "./node-bounded-regular-file.js";
12
- import { syncDirectoryStrictly } from "./node-directory-durability.js";
13
- import { cleanupCommittedKnownFileCaptures, prepareRollbackTemporary } from "./node-known-file-recovery-filesystem.js";
14
- import { isLexicallyContainedPath } from "./node-repository-path.js";
8
+ import { cleanupCommittedKnownFileCaptures } from "./node-known-file-recovery-filesystem.js";
9
+ import { observeInitialKnownFileJournal, verifyApplyingKnownFilePostimages, verifyCommittedKnownFilePostimages } from "./node-known-file-apply-observation.js";
10
+ import { executeKnownFileOperation } from "./node-known-file-apply-operation.js";
11
+ import { persistKnownFileApplyState } from "./node-known-file-apply-state.js";
12
+ import { canonicalKnownFileRoot, KnownFileTransactionError } from "./node-known-file-transaction-filesystem.js";
15
13
  import { NodeKnownFileTransactionJournalStore } from "./node-known-file-transaction-journal-store.js";
16
14
  import { inspectKnownFileTransactionBarrier } from "./node-known-file-transaction-inspection.js";
17
- import { canonicalKnownFileRoot, classifyKnownFileOperation, knownFileAliasEntry, knownFileCaptureDirectoryName, knownFileErrorCode, knownFileImageBytes, knownFileTemporaryName, KnownFileTransactionError, matchesKnownFileImage, maximumKnownFileEvidenceBytes, observeKnownFile, sameKnownFileIdentity } from "./node-known-file-transaction-filesystem.js";
18
15
  export { KnownFileTransactionError } from "./node-known-file-transaction-filesystem.js";
19
- async function initialJournal(root, plan) {
20
- const operations = [];
21
- for (const operation of plan.operations) {
22
- operations.push(classifyKnownFileOperation(operation, await observeKnownFile(root, operation.path, maximumKnownFileEvidenceBytes(operation))));
23
- }
24
- return Object.freeze({
25
- schemaVersion: 1,
26
- plan,
27
- operations: Object.freeze(operations),
28
- authorizedDirectories: Object.freeze([]),
29
- createdDirectories: Object.freeze([])
30
- });
31
- }
32
- function replaceOperation(journal, index, replacement) {
33
- return Object.freeze({
34
- ...journal,
35
- operations: Object.freeze(journal.operations.with(index, replacement))
36
- });
37
- }
38
- async function persist(store, stored, journal, state = "APPLYING") {
39
- const envelope = compileKnownFileTransactionEnvelope({
40
- foundation: stored.envelope.foundation,
41
- journal,
42
- state
43
- });
44
- stored.authority = await store.replace(stored.authority, envelope);
45
- stored.envelope = envelope;
46
- }
47
- async function ensureParentDirectories(options) {
48
- const segments = options.operationPath.split("/");
49
- segments.pop();
50
- let current = options.root;
51
- const traversed = [];
52
- for (const segment of segments) {
53
- traversed.push(segment);
54
- const repositoryPath = traversed.join("/");
55
- const exists = await knownFileAliasEntry(current, segment);
56
- if (exists === undefined) {
57
- const authorized = Object.freeze({
58
- ...options.stored.envelope.journal,
59
- authorizedDirectories: Object.freeze([
60
- ...options.stored.envelope.journal.authorizedDirectories,
61
- repositoryPath
62
- ])
63
- });
64
- await persist(options.store, options.stored, authorized);
65
- await options.faultInjector?.({
66
- phase: "after-directory-authorized",
67
- operationIndex: options.index,
68
- path: repositoryPath
69
- });
70
- await mkdir(join(current, segment), { mode: 0o755 });
71
- await syncDirectoryStrictly(current);
72
- const metadata = await lstat(join(current, segment), { bigint: true });
73
- if (!metadata.isDirectory() || metadata.isSymbolicLink()) {
74
- throw new KnownFileTransactionError("KNOWN_FILE_DIRECTORY_INVALID", `Created ancestor is not one real directory: ${repositoryPath}.`);
75
- }
76
- const identity = serializeKnownFileIdentity({
77
- birthtimeNs: metadata.birthtimeNs,
78
- dev: metadata.dev,
79
- ino: metadata.ino
80
- });
81
- await options.faultInjector?.({
82
- phase: "after-directory-created-unbound",
83
- operationIndex: options.index,
84
- path: repositoryPath
85
- });
86
- const journal = Object.freeze({
87
- ...options.stored.envelope.journal,
88
- authorizedDirectories: Object.freeze(options.stored.envelope.journal.authorizedDirectories.filter((path) => path !== repositoryPath)),
89
- createdDirectories: Object.freeze([
90
- ...options.stored.envelope.journal.createdDirectories,
91
- Object.freeze({ path: repositoryPath, identity })
92
- ])
93
- });
94
- await persist(options.store, options.stored, journal);
95
- await options.faultInjector?.({
96
- phase: "after-directory-created",
97
- operationIndex: options.index,
98
- path: repositoryPath
99
- });
100
- }
101
- current = join(current, segment);
102
- const metadata = await lstat(current);
103
- if (metadata.isSymbolicLink() || !metadata.isDirectory() ||
104
- !isLexicallyContainedPath(options.root, await realpath(current))) {
105
- throw new KnownFileTransactionError("KNOWN_FILE_ANCESTOR_INVALID", `Managed path ancestor changed: ${options.operationPath}.`);
106
- }
107
- }
108
- return current;
109
- }
110
- async function prepareTemporary(options) {
111
- const path = join(options.parent, knownFileTemporaryName(options.operation.path, options.planDigest, options.operationIndex));
112
- const handle = await open(path, "wx", 0o600).catch((error) => {
113
- throw new KnownFileTransactionError(knownFileErrorCode(error) === "EEXIST" ? "KNOWN_FILE_TEMPORARY_EXISTS" : "KNOWN_FILE_TEMPORARY_CREATE_FAILED", `Could not create the transaction-owned temporary for ${options.operation.path}.`, { cause: error });
114
- });
115
- try {
116
- await handle.writeFile(knownFileImageBytes(options.operation.postimage));
117
- await handle.chmod(options.operation.postimage.mode);
118
- await handle.sync();
119
- return { path, identity: await captureFileHandleIdentity(handle) };
120
- }
121
- finally {
122
- await handle.close();
123
- }
124
- }
125
- async function verifyTemporary(path, identity, image) {
126
- const observed = await readBoundedRegularFile(path, image.size);
127
- if (observed.outcome !== "read" || !sameKnownFileIdentity(observed.identity, identity) ||
128
- !matchesKnownFileImage({ state: "file", bytes: observed.bytes, identity: observed.identity, mode: observed.mode & 0o777 }, image)) {
129
- throw new KnownFileTransactionError("KNOWN_FILE_TEMPORARY_CHANGED", "Transaction-owned temporary changed before publication.");
130
- }
131
- }
132
- function capturePaths(options) {
133
- const directory = join(options.parent, knownFileCaptureDirectoryName(options.operation.path, options.planDigest, options.operationIndex));
134
- return {
135
- captured: join(directory, "preimage"),
136
- directory,
137
- retired: join(directory, "retired")
138
- };
139
- }
140
- async function prepareCaptureDirectory(options) {
141
- const paths = capturePaths(options);
142
- await mkdir(paths.directory, { mode: 0o700 }).catch((error) => {
143
- throw new KnownFileTransactionError(knownFileErrorCode(error) === "EEXIST"
144
- ? "KNOWN_FILE_CAPTURE_EXISTS"
145
- : "KNOWN_FILE_CAPTURE_CREATE_FAILED", `Could not create the transaction-owned capture for ${options.operation.path}.`, { cause: error });
146
- });
147
- await syncDirectoryStrictly(options.parent);
148
- const metadata = await lstat(paths.directory, { bigint: true });
149
- if (!metadata.isDirectory() || metadata.isSymbolicLink()) {
150
- throw new KnownFileTransactionError("KNOWN_FILE_CAPTURE_INVALID", `Transaction capture is not one real directory: ${options.operation.path}.`);
151
- }
152
- return {
153
- identity: {
154
- birthtimeNs: metadata.birthtimeNs,
155
- dev: metadata.dev,
156
- ino: metadata.ino
157
- },
158
- paths
159
- };
160
- }
161
- async function captureKnownPreimage(options) {
162
- const destination = join(options.root, ...options.operation.path.split("/"));
163
- await link(destination, options.capture.paths.captured).catch((error) => {
164
- throw new KnownFileTransactionError("KNOWN_FILE_CAS_MISMATCH", `Could not capture the exact replacement preimage: ${options.operation.path}.`, { cause: error });
165
- });
166
- await syncDirectoryStrictly(options.capture.paths.directory);
167
- const captured = await readBoundedRegularFile(options.capture.paths.captured, maximumKnownFileEvidenceBytes(options.operation));
168
- const matchedPreimage = captured.outcome === "read"
169
- ? options.operation.precondition.acceptedPreimages.findIndex((image) => matchesKnownFileImage({
170
- state: "file",
171
- bytes: captured.bytes,
172
- identity: captured.identity,
173
- mode: captured.mode & 0o777
174
- }, image))
175
- : -1;
176
- if (captured.outcome !== "read" || captured.linkCount !== 2n || matchedPreimage < 0) {
177
- // This pathname is an alias created by this transaction. Removing the alias
178
- // cannot remove the editor's public pathname and never discards unknown bytes.
179
- await unlink(options.capture.paths.captured);
180
- await syncDirectoryStrictly(options.capture.paths.directory);
181
- throw new KnownFileTransactionError("KNOWN_FILE_CAS_MISMATCH", `Captured replacement preimage is no longer accepted: ${options.operation.path}.`);
182
- }
183
- return { identity: captured.identity, matchedPreimage };
184
- }
185
- async function retireCapturedDestination(options) {
186
- await rename(options.destination, options.capture.paths.retired).catch((error) => {
187
- throw new KnownFileTransactionError("KNOWN_FILE_CAS_MISMATCH", `Destination disappeared before identity-bound capture: ${options.operationPath}.`, { cause: error });
188
- });
189
- await syncDirectoryStrictly(options.capture.paths.directory);
190
- await syncDirectoryStrictly(options.parent);
191
- await options.faultInjector?.({
192
- phase: "after-destination-captured",
193
- operationIndex: options.index,
194
- path: options.operationPath
195
- });
196
- const retired = await readBoundedRegularFile(options.capture.paths.retired, 8 * 1024 * 1024);
197
- if (retired.outcome !== "read" ||
198
- !sameKnownFileIdentity(retired.identity, options.capturedIdentity)) {
199
- if (retired.outcome === "read") {
200
- try {
201
- await link(options.capture.paths.retired, options.destination);
202
- await syncDirectoryStrictly(options.parent);
203
- await unlink(options.capture.paths.retired);
204
- await syncDirectoryStrictly(options.capture.paths.directory);
205
- }
206
- catch (error) {
207
- if (knownFileErrorCode(error) !== "EEXIST") {
208
- throw error;
209
- }
210
- }
211
- }
212
- throw new KnownFileTransactionError("KNOWN_FILE_CAS_MISMATCH", `A foreign destination appeared during identity-bound capture: ${options.operationPath}.`);
213
- }
214
- const stableCaptured = await readBoundedRegularFile(options.capture.paths.captured, options.preimage.size);
215
- if (stableCaptured.outcome !== "read" ||
216
- stableCaptured.linkCount !== 2n ||
217
- !sameKnownFileIdentity(stableCaptured.identity, options.capturedIdentity) ||
218
- !matchesKnownFileImage({
219
- state: "file", bytes: stableCaptured.bytes, identity: stableCaptured.identity,
220
- mode: stableCaptured.mode & 0o777
221
- }, options.preimage)) {
222
- await link(options.capture.paths.retired, options.destination).catch((error) => {
223
- throw new KnownFileTransactionError("KNOWN_FILE_RECOVERY_CONFLICT", `Mutated retired destination could not be restored: ${options.operationPath}.`, { cause: error });
224
- });
225
- await syncDirectoryStrictly(options.parent);
226
- await unlink(options.capture.paths.retired);
227
- await syncDirectoryStrictly(options.capture.paths.directory);
228
- throw new KnownFileTransactionError("KNOWN_FILE_CAS_MISMATCH", `Captured replacement preimage changed through an open file handle: ${options.operationPath}.`);
229
- }
230
- await unlink(options.capture.paths.retired);
231
- await syncDirectoryStrictly(options.capture.paths.directory);
232
- }
233
- // oxlint-disable-next-line complexity, max-lines-per-function
234
- async function executeOperation(options) {
235
- const operation = options.stored.envelope.journal.plan.operations[options.index];
236
- let journalOperation = options.stored.envelope.journal.operations[options.index];
237
- if (journalOperation.state === "already-satisfied" || journalOperation.state === "published") {
238
- return;
239
- }
240
- if (journalOperation.state !== "pending") {
241
- throw new KnownFileTransactionError("KNOWN_FILE_RECOVERY_REQUIRED", `Operation ${operation.path} is already in progress and requires recovery.`);
242
- }
243
- const parent = await ensureParentDirectories({
244
- ...options,
245
- operationPath: operation.path
246
- });
247
- journalOperation = Object.freeze({ ...journalOperation, state: "temporary-authorized" });
248
- await persist(options.store, options.stored, replaceOperation(options.stored.envelope.journal, options.index, journalOperation));
249
- await options.faultInjector?.({
250
- phase: "after-temporary-authorized",
251
- operationIndex: options.index,
252
- path: operation.path
253
- });
254
- const temporary = await prepareTemporary({
255
- operation,
256
- operationIndex: options.index,
257
- parent,
258
- planDigest: options.stored.envelope.journal.plan.planDigest
259
- });
260
- await options.faultInjector?.({
261
- phase: "after-temporary-created-unbound",
262
- operationIndex: options.index,
263
- path: operation.path
264
- });
265
- journalOperation = Object.freeze({
266
- ...journalOperation,
267
- state: "temporary-ready",
268
- temporaryIdentity: serializeKnownFileIdentity(temporary.identity)
269
- });
270
- await persist(options.store, options.stored, replaceOperation(options.stored.envelope.journal, options.index, journalOperation));
271
- await options.faultInjector?.({
272
- phase: "after-temporary-synced",
273
- operationIndex: options.index,
274
- path: operation.path
275
- });
276
- await verifyTemporary(temporary.path, temporary.identity, operation.postimage);
277
- const destination = join(options.root, ...operation.path.split("/"));
278
- if (operation.precondition.state === "absent") {
279
- journalOperation = Object.freeze({ ...journalOperation, state: "publishing" });
280
- await persist(options.store, options.stored, replaceOperation(options.stored.envelope.journal, options.index, journalOperation));
281
- await options.faultInjector?.({
282
- phase: "after-operation-publishing",
283
- operationIndex: options.index,
284
- path: operation.path
285
- });
286
- await link(temporary.path, destination).catch((error) => {
287
- throw new KnownFileTransactionError("KNOWN_FILE_CAS_MISMATCH", `Destination appeared during create CAS: ${operation.path}.`, { cause: error });
288
- });
289
- await options.faultInjector?.({
290
- phase: "after-postimage-linked",
291
- operationIndex: options.index,
292
- path: operation.path
293
- });
294
- await unlink(temporary.path);
295
- }
296
- else {
297
- journalOperation = Object.freeze({ ...journalOperation, state: "capture-authorized" });
298
- await persist(options.store, options.stored, replaceOperation(options.stored.envelope.journal, options.index, journalOperation));
299
- await options.faultInjector?.({
300
- phase: "after-capture-authorized",
301
- operationIndex: options.index,
302
- path: operation.path
303
- });
304
- const capture = await prepareCaptureDirectory({
305
- operation,
306
- operationIndex: options.index,
307
- parent,
308
- planDigest: options.stored.envelope.journal.plan.planDigest
309
- });
310
- await options.faultInjector?.({
311
- phase: "after-capture-created-unbound",
312
- operationIndex: options.index,
313
- path: operation.path
314
- });
315
- journalOperation = Object.freeze({
316
- ...journalOperation,
317
- captureDirectoryIdentity: serializeKnownFileIdentity(capture.identity),
318
- state: "capture-ready"
319
- });
320
- await persist(options.store, options.stored, replaceOperation(options.stored.envelope.journal, options.index, journalOperation));
321
- await options.faultInjector?.({
322
- phase: "after-capture-ready",
323
- operationIndex: options.index,
324
- path: operation.path
325
- });
326
- const captured = await captureKnownPreimage({
327
- capture,
328
- ...(options.faultInjector === undefined ? {} : { faultInjector: options.faultInjector }),
329
- index: options.index,
330
- operation: { ...operation, precondition: operation.precondition },
331
- root: options.root
332
- });
333
- await options.faultInjector?.({
334
- phase: "after-preimage-linked-unbound",
335
- operationIndex: options.index,
336
- path: operation.path
337
- });
338
- journalOperation = Object.freeze({
339
- ...journalOperation,
340
- capturedPreimageIdentity: serializeKnownFileIdentity(captured.identity),
341
- matchedPreimage: captured.matchedPreimage,
342
- state: "preimage-captured"
343
- });
344
- await persist(options.store, options.stored, replaceOperation(options.stored.envelope.journal, options.index, journalOperation));
345
- await options.faultInjector?.({
346
- phase: "after-preimage-captured",
347
- operationIndex: options.index,
348
- path: operation.path
349
- });
350
- const rollbackPath = join(parent, `.${operation.path.split("/").at(-1)}.agent-teams.rollback.${options.index}.tmp`);
351
- const rollbackIdentity = await prepareRollbackTemporary({
352
- operationPath: operation.path,
353
- path: rollbackPath,
354
- preimage: operation.precondition.acceptedPreimages[captured.matchedPreimage]
355
- });
356
- await options.faultInjector?.({
357
- phase: "after-rollback-temporary-created-unbound",
358
- operationIndex: options.index,
359
- path: operation.path
360
- });
361
- await syncDirectoryStrictly(parent);
362
- if (await pathMatchesRegularFileIdentity(rollbackPath, rollbackIdentity) !== "match") {
363
- throw new KnownFileTransactionError("KNOWN_FILE_CAS_MISMATCH", `Rollback temporary changed before durable identity binding: ${operation.path}.`);
364
- }
365
- journalOperation = Object.freeze({
366
- ...journalOperation,
367
- rollbackTemporaryIdentity: serializeKnownFileIdentity(rollbackIdentity)
368
- });
369
- await persist(options.store, options.stored, replaceOperation(options.stored.envelope.journal, options.index, journalOperation));
370
- await options.faultInjector?.({
371
- phase: "after-rollback-temporary-ready",
372
- operationIndex: options.index,
373
- path: operation.path
374
- });
375
- await retireCapturedDestination({
376
- capture,
377
- capturedIdentity: captured.identity,
378
- destination,
379
- ...(options.faultInjector === undefined ? {} : { faultInjector: options.faultInjector }),
380
- index: options.index,
381
- operationPath: operation.path,
382
- parent,
383
- preimage: operation.precondition.acceptedPreimages[captured.matchedPreimage]
384
- });
385
- journalOperation = Object.freeze({ ...journalOperation, state: "destination-retired" });
386
- await persist(options.store, options.stored, replaceOperation(options.stored.envelope.journal, options.index, journalOperation));
387
- await options.faultInjector?.({
388
- phase: "after-destination-retired",
389
- operationIndex: options.index,
390
- path: operation.path
391
- });
392
- journalOperation = Object.freeze({ ...journalOperation, state: "publishing" });
393
- await persist(options.store, options.stored, replaceOperation(options.stored.envelope.journal, options.index, journalOperation));
394
- await options.faultInjector?.({
395
- phase: "after-operation-publishing",
396
- operationIndex: options.index,
397
- path: operation.path
398
- });
399
- await link(temporary.path, destination).catch((error) => {
400
- throw new KnownFileTransactionError("KNOWN_FILE_CAS_MISMATCH", `Destination appeared during replacement publication: ${operation.path}.`, { cause: error });
401
- });
402
- await options.faultInjector?.({
403
- phase: "after-postimage-linked",
404
- operationIndex: options.index,
405
- path: operation.path
406
- });
407
- await unlink(temporary.path);
408
- }
409
- await syncDirectoryStrictly(parent);
410
- const published = await observeKnownFile(options.root, operation.path, operation.postimage.size);
411
- if (!matchesKnownFileImage(published, operation.postimage) || published.identity === undefined ||
412
- !sameKnownFileIdentity(published.identity, temporary.identity)) {
413
- throw new KnownFileTransactionError("KNOWN_FILE_POSTIMAGE_INVALID", `Published postimage failed exact verification: ${operation.path}.`);
414
- }
415
- journalOperation = Object.freeze({ ...journalOperation, state: "published" });
416
- await persist(options.store, options.stored, replaceOperation(options.stored.envelope.journal, options.index, journalOperation));
417
- await options.faultInjector?.({
418
- phase: "after-operation-published",
419
- operationIndex: options.index,
420
- path: operation.path
421
- });
422
- }
423
16
  export function compileKnownFileTransactionReceipt(journal, outcome) {
424
17
  const operations = journal.operations.map((entry, index) => {
425
18
  const planOperation = journal.plan.operations[index];
@@ -447,18 +40,28 @@ export function compileKnownFileTransactionReceipt(journal, outcome) {
447
40
  })
448
41
  });
449
42
  }
450
- export async function verifyCommittedKnownFilePostimages(root, journal) {
451
- for (const operation of journal.plan.operations) {
452
- if (!matchesKnownFileImage(await observeKnownFile(root, operation.path, operation.postimage.size), operation.postimage)) {
453
- throw new KnownFileTransactionError("KNOWN_FILE_COMMITTED_DRIFT", `Committed postimage changed before journal retirement: ${operation.path}.`);
454
- }
43
+ export { verifyCommittedKnownFilePostimages } from "./node-known-file-apply-observation.js";
44
+ async function executeKnownFileApply(options) {
45
+ for (let index = 0; index < options.stored.envelope.journal.plan.operations.length; index += 1) {
46
+ await executeKnownFileOperation({ ...options, index });
455
47
  }
48
+ await verifyApplyingKnownFilePostimages(options.root, options.stored.envelope.journal);
49
+ await persistKnownFileApplyState(options.store, options.stored, options.stored.envelope.journal, "COMMITTED");
50
+ await options.faultInjector?.({ phase: "after-journal-committed" });
51
+ await verifyCommittedKnownFilePostimages(options.root, options.stored.envelope.journal);
52
+ await cleanupCommittedKnownFileCaptures(options.root, options.stored.envelope.journal, options.faultInjector);
53
+ await verifyCommittedKnownFilePostimages(options.root, options.stored.envelope.journal);
54
+ return compileKnownFileTransactionReceipt(options.stored.envelope.journal, "applied");
456
55
  }
457
- async function verifyApplyingKnownFilePostimages(root, journal) {
458
- for (const operation of journal.plan.operations) {
459
- if (!matchesKnownFileImage(await observeKnownFile(root, operation.path, operation.postimage.size), operation.postimage)) {
460
- throw new KnownFileTransactionError("KNOWN_FILE_PRECOMMIT_DRIFT", `Transaction postimage changed before commit: ${operation.path}.`);
461
- }
56
+ async function refreshBarrierRetention(store) {
57
+ if (store === undefined) {
58
+ return false;
59
+ }
60
+ try {
61
+ return await store.read() !== undefined;
62
+ }
63
+ catch {
64
+ return true;
462
65
  }
463
66
  }
464
67
  export async function applyKnownFileTransaction(options) {
@@ -471,7 +74,7 @@ export async function applyKnownFileTransaction(options) {
471
74
  if (barrier.state !== "idle" && barrier.code === "KNOWN_FILE_RECOVERY_REQUIRED") {
472
75
  throw new KnownFileTransactionError(barrier.code, barrier.message);
473
76
  }
474
- const optimisticJournal = await initialJournal(root, options.plan);
77
+ const optimisticJournal = await observeInitialKnownFileJournal(root, options.plan);
475
78
  if (barrier.state === "idle" &&
476
79
  optimisticJournal.operations.every(({ state }) => state === "already-satisfied")) {
477
80
  return compileKnownFileTransactionReceipt(optimisticJournal, "already-satisfied");
@@ -482,7 +85,7 @@ export async function applyKnownFileTransaction(options) {
482
85
  let store;
483
86
  try {
484
87
  await options.faultInjector?.({ phase: "after-barrier-acquired" });
485
- const journal = await initialJournal(root, options.plan);
88
+ const journal = await observeInitialKnownFileJournal(root, options.plan);
486
89
  if (journal.operations.every(({ state }) => state === "already-satisfied")) {
487
90
  return compileKnownFileTransactionReceipt(journal, "already-satisfied");
488
91
  }
@@ -495,45 +98,26 @@ export async function applyKnownFileTransaction(options) {
495
98
  journal,
496
99
  state: "APPLYING"
497
100
  });
498
- const stateDirectory = await ensureFoundationStateDirectory(root);
499
- store = new NodeKnownFileTransactionJournalStore(stateDirectory);
101
+ store = new NodeKnownFileTransactionJournalStore(await ensureFoundationStateDirectory(root));
500
102
  const stored = {
501
103
  authority: await store.create(envelope),
502
104
  envelope
503
105
  };
504
106
  retainBarrier = true;
505
107
  await options.faultInjector?.({ phase: "after-journal-created" });
506
- for (let index = 0; index < options.plan.operations.length; index += 1) {
507
- await executeOperation({
508
- ...(options.faultInjector === undefined ? {} : { faultInjector: options.faultInjector }),
509
- index,
510
- root,
511
- store,
512
- stored
513
- });
514
- }
515
- await verifyApplyingKnownFilePostimages(root, stored.envelope.journal);
516
- await persist(store, stored, stored.envelope.journal, "COMMITTED");
517
- await options.faultInjector?.({ phase: "after-journal-committed" });
518
- await verifyCommittedKnownFilePostimages(root, stored.envelope.journal);
519
- await cleanupCommittedKnownFileCaptures(root, stored.envelope.journal, options.faultInjector);
520
- await verifyCommittedKnownFilePostimages(root, stored.envelope.journal);
521
- const result = compileKnownFileTransactionReceipt(stored.envelope.journal, "applied");
108
+ const result = await executeKnownFileApply({
109
+ ...(options.faultInjector === undefined ? {} : { faultInjector: options.faultInjector }),
110
+ root,
111
+ store,
112
+ stored
113
+ });
522
114
  await store.remove(stored.authority);
523
115
  await options.faultInjector?.({ phase: "after-journal-retired" });
524
116
  retainBarrier = false;
525
117
  return result;
526
118
  }
527
119
  catch (error) {
528
- if (store !== undefined) {
529
- try {
530
- retainBarrier = await store.read() !== undefined;
531
- }
532
- catch {
533
- // Unreadable evidence must stay protected for manual inspection.
534
- retainBarrier = true;
535
- }
536
- }
120
+ retainBarrier = await refreshBarrierRetention(store);
537
121
  throw error;
538
122
  }
539
123
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"node-known-file-transaction.js","sourceRoot":"","sources":["../../../../src/repository-mutation/adapters/node/node-known-file-transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-known-file-transaction.js","sourceRoot":"","sources":["../../../../src/repository-mutation/adapters/node/node-known-file-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAA2B,MAAM,4BAA4B,CAAC;AAChG,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,0CAA0C,EAAE,MAAM,4FAA4F,CAAC;AACxJ,OAAO,EAAE,gCAAgC,EAAE,MAAM,wFAAwF,CAAC;AAC1I,OAAO,EAAE,8BAA8B,EAAE,MAAM,oFAAoF,CAAC;AAOpI,OAAO,EAAE,mCAAmC,EAAE,MAAM,+DAA+D,CAAC;AACpH,OAAO,EAAE,8BAA8B,EAAE,MAAM,2DAA2D,CAAC;AAC3G,OAAO,EAAE,iCAAiC,EAAE,MAAM,0CAA0C,CAAC;AAK7F,OAAO,EACL,8BAA8B,EAC9B,iCAAiC,EACjC,kCAAkC,EACnC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EACL,0BAA0B,EAE3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,oCAAoC,EAAE,MAAM,gDAAgD,CAAC;AACtG,OAAO,EAAE,kCAAkC,EAAE,MAAM,6CAA6C,CAAC;AAEjG,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAGxF,MAAM,UAAU,kCAAkC,CAChD,OAAsC,EACtC,OAAwC;IAExC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACzD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAE,CAAC;QACtD,MAAM,gBAAgB,GACpB,KAAK,CAAC,KAAK,KAAK,mBAAmB;YACjC,CAAC,CAAC,mBAAmB;YACrB,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAC7E,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,gBAAgB;YACzB,YAAY,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM;SAC7C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG;QACX,aAAa,EAAE,CAAU;QACzB,QAAQ,EAAE,kCAA2C;QACrD,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU;QACnC,OAAO;QACP,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;KACtC,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,IAAI;QACP,aAAa,EAAE,UAAU,CAAC;YACxB,MAAM,EAAE,0DAA0D;YAClE,IAAI;SACL,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,kCAAkC,EAAE,MAAM,wCAAwC,CAAC;AAE5F,KAAK,UAAU,qBAAqB,CAAC,OAKpC;IACC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC/F,MAAM,yBAAyB,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,iCAAiC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACvF,MAAM,0BAA0B,CAC9B,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAC/B,WAAW,CACZ,CAAC;IACF,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC,CAAC;IACpE,MAAM,kCAAkC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxF,MAAM,iCAAiC,CACrC,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAC/B,OAAO,CAAC,aAAa,CACtB,CAAC;IACF,MAAM,kCAAkC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxF,OAAO,kCAAkC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACxF,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,KAAuD;IAEvD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAAA,OAAO,KAAK,CAAC;IAAA,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,IAAI,EAAE,KAAK,SAAS,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,OAI/C;IACC,8BAA8B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,IAAI,yBAAyB,CACjC,8BAA8B,EAC9B,wFAAwF,CACzF,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,MAAM,kCAAkC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IACjF,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,8BAA8B,EAAE,CAAC;QAChF,MAAM,IAAI,yBAAyB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,iBAAiB,GAAG,MAAM,8BAA8B,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM;QAC1B,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,mBAAmB,CAAC,EAAE,CAAC;QACnF,OAAO,kCAAkC,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IACpF,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,0CAA0C,CAAC,IAAI,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,CAAC,CAAC;IACzF,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,KAAuD,CAAC;IAC5D,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,MAAM,8BAA8B,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,mBAAmB,CAAC,EAAE,CAAC;YAC3E,OAAO,kCAAkC,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjD,0BAA0B,EAAE;YAC5B,gCAAgC,EAAE;SACnC,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,mCAAmC,CAAC;YACnD,UAAU,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;YACtC,OAAO;YACP,KAAK,EAAE,UAAU;SAClB,CAAC,CAAC;QACH,KAAK,GAAG,IAAI,oCAAoC,CAAC,MAAM,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAwB;YAClC,SAAS,EAAE,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;YACvC,QAAQ;SACT,CAAC;QACF,aAAa,GAAG,IAAI,CAAC;QACrB,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC;YACzC,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;YACxF,IAAI;YACJ,KAAK;YACL,MAAM;SACP,CAAC,CAAC;QACH,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAClE,aAAa,GAAG,KAAK,CAAC;QACtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,aAAa,GAAG,MAAM,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,wBAAwB,EAAE,aAAa,EAAE,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,KAAoC;IAEpC,OAAO,GAAG,aAAa,CAAC,KAAsC,CAAC,IAAI,CAAC;AACtE,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { KnownFileDigest } from "../model/known-file-transaction.js";
2
+ import type { KnownFileTransactionEnvelopeV1 } from "../model/known-file-transaction-journal.js";
3
+ export interface InstalledKnownFileRecoveryBuild {
4
+ readonly buildIdentity: KnownFileDigest;
5
+ readonly version: string;
6
+ }
7
+ export type KnownFileRecoveryTransition = {
8
+ readonly action: "reject";
9
+ readonly code: "KNOWN_FILE_EXACT_BUILD_REQUIRED";
10
+ readonly message: "The exact Foundation build that created this journal must recover it.";
11
+ } | {
12
+ readonly action: "resume-committed-cleanup";
13
+ } | {
14
+ readonly action: "rollback-applying";
15
+ };
16
+ /**
17
+ * Classifies the next top-level transition for an already parsed and validated
18
+ * known-file v1 recovery envelope. Evidence parsing and all effects remain the
19
+ * responsibility of the calling adapter.
20
+ */
21
+ export declare function classifyKnownFileRecoveryTransition(input: {
22
+ readonly envelope: KnownFileTransactionEnvelopeV1;
23
+ readonly installedBuild: InstalledKnownFileRecoveryBuild;
24
+ }): KnownFileRecoveryTransition;
25
+ //# sourceMappingURL=classify-known-file-recovery-transition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classify-known-file-recovery-transition.d.ts","sourceRoot":"","sources":["../../../../src/repository-mutation/application/policies/classify-known-file-recovery-transition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAC;AAEjG,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,aAAa,EAAE,eAAe,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,2BAA2B,GACnC;IACE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,iCAAiC,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,uEAAuE,CAAC;CAC3F,GACD;IAAE,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAA;CAAE,GAC/C;IAAE,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAE7C;;;;GAIG;AACH,wBAAgB,mCAAmC,CAAC,KAAK,EAAE;IACzD,QAAQ,CAAC,QAAQ,EAAE,8BAA8B,CAAC;IAClD,QAAQ,CAAC,cAAc,EAAE,+BAA+B,CAAC;CAC1D,GAAG,2BAA2B,CAY9B"}