@agent-teams/engineering-foundation 0.17.0 → 0.19.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 (167) 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/adapters/node/node-document-transaction-coordinator.d.ts.map +1 -1
  57. package/dist/document-authoring/adapters/node/node-document-transaction-coordinator.js +4 -26
  58. package/dist/document-authoring/adapters/node/node-document-transaction-coordinator.js.map +1 -1
  59. package/dist/document-authoring/index.d.ts +6 -1
  60. package/dist/document-authoring/index.d.ts.map +1 -1
  61. package/dist/document-authoring/index.js.map +1 -1
  62. package/dist/index.d.ts +2 -0
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +2 -0
  65. package/dist/index.js.map +1 -1
  66. package/dist/local-mode/attach-transaction.d.ts.map +1 -1
  67. package/dist/local-mode/attach-transaction.js +4 -2
  68. package/dist/local-mode/attach-transaction.js.map +1 -1
  69. package/dist/local-mode/index.d.ts +5 -0
  70. package/dist/local-mode/index.d.ts.map +1 -1
  71. package/dist/local-mode/index.js +5 -0
  72. package/dist/local-mode/index.js.map +1 -1
  73. package/dist/local-mode/inspection.d.ts.map +1 -1
  74. package/dist/local-mode/inspection.js +1 -6
  75. package/dist/local-mode/inspection.js.map +1 -1
  76. package/dist/local-mode/service.d.ts.map +1 -1
  77. package/dist/local-mode/service.js +4 -2
  78. package/dist/local-mode/service.js.map +1 -1
  79. package/dist/mutation/index.d.ts +8 -0
  80. package/dist/mutation/index.d.ts.map +1 -1
  81. package/dist/mutation/index.js.map +1 -1
  82. package/dist/mutation/qualification/index.d.ts +10 -0
  83. package/dist/mutation/qualification/index.d.ts.map +1 -0
  84. package/dist/mutation/qualification/index.js +6 -0
  85. package/dist/mutation/qualification/index.js.map +1 -0
  86. package/dist/repository-mutation/adapters/node/node-known-file-apply-effects.d.ts +84 -0
  87. package/dist/repository-mutation/adapters/node/node-known-file-apply-effects.d.ts.map +1 -0
  88. package/dist/repository-mutation/adapters/node/node-known-file-apply-effects.js +232 -0
  89. package/dist/repository-mutation/adapters/node/node-known-file-apply-effects.js.map +1 -0
  90. package/dist/repository-mutation/adapters/node/node-known-file-apply-faults.d.ts +9 -0
  91. package/dist/repository-mutation/adapters/node/node-known-file-apply-faults.d.ts.map +1 -0
  92. package/dist/repository-mutation/adapters/node/node-known-file-apply-faults.js +2 -0
  93. package/dist/repository-mutation/adapters/node/node-known-file-apply-faults.js.map +1 -0
  94. package/dist/repository-mutation/adapters/node/node-known-file-apply-observation.d.ts +6 -0
  95. package/dist/repository-mutation/adapters/node/node-known-file-apply-observation.d.ts.map +1 -0
  96. package/dist/repository-mutation/adapters/node/node-known-file-apply-observation.js +30 -0
  97. package/dist/repository-mutation/adapters/node/node-known-file-apply-observation.js.map +1 -0
  98. package/dist/repository-mutation/adapters/node/node-known-file-apply-operation.d.ts +11 -0
  99. package/dist/repository-mutation/adapters/node/node-known-file-apply-operation.d.ts.map +1 -0
  100. package/dist/repository-mutation/adapters/node/node-known-file-apply-operation.js +159 -0
  101. package/dist/repository-mutation/adapters/node/node-known-file-apply-operation.js.map +1 -0
  102. package/dist/repository-mutation/adapters/node/node-known-file-apply-state.d.ts +9 -0
  103. package/dist/repository-mutation/adapters/node/node-known-file-apply-state.d.ts.map +1 -0
  104. package/dist/repository-mutation/adapters/node/node-known-file-apply-state.js +21 -0
  105. package/dist/repository-mutation/adapters/node/node-known-file-apply-state.js.map +1 -0
  106. package/dist/repository-mutation/adapters/node/node-known-file-recovery-cleanup.d.ts +9 -0
  107. package/dist/repository-mutation/adapters/node/node-known-file-recovery-cleanup.d.ts.map +1 -0
  108. package/dist/repository-mutation/adapters/node/node-known-file-recovery-cleanup.js +203 -0
  109. package/dist/repository-mutation/adapters/node/node-known-file-recovery-cleanup.js.map +1 -0
  110. package/dist/repository-mutation/adapters/node/node-known-file-recovery-executor.d.ts +17 -0
  111. package/dist/repository-mutation/adapters/node/node-known-file-recovery-executor.d.ts.map +1 -0
  112. package/dist/repository-mutation/adapters/node/node-known-file-recovery-executor.js +22 -0
  113. package/dist/repository-mutation/adapters/node/node-known-file-recovery-executor.js.map +1 -0
  114. package/dist/repository-mutation/adapters/node/node-known-file-recovery-observation.d.ts +15 -0
  115. package/dist/repository-mutation/adapters/node/node-known-file-recovery-observation.d.ts.map +1 -0
  116. package/dist/repository-mutation/adapters/node/node-known-file-recovery-observation.js +47 -0
  117. package/dist/repository-mutation/adapters/node/node-known-file-recovery-observation.js.map +1 -0
  118. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage-captured-cleanup.d.ts +29 -0
  119. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage-captured-cleanup.d.ts.map +1 -0
  120. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage-captured-cleanup.js +72 -0
  121. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage-captured-cleanup.js.map +1 -0
  122. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage-captured.d.ts +31 -0
  123. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage-captured.d.ts.map +1 -0
  124. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage-captured.js +254 -0
  125. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage-captured.js.map +1 -0
  126. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage.d.ts +13 -0
  127. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage.d.ts.map +1 -0
  128. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage.js +210 -0
  129. package/dist/repository-mutation/adapters/node/node-known-file-recovery-preimage.js.map +1 -0
  130. package/dist/repository-mutation/adapters/node/node-known-file-recovery-retirement.d.ts +15 -0
  131. package/dist/repository-mutation/adapters/node/node-known-file-recovery-retirement.d.ts.map +1 -0
  132. package/dist/repository-mutation/adapters/node/node-known-file-recovery-retirement.js +172 -0
  133. package/dist/repository-mutation/adapters/node/node-known-file-recovery-retirement.js.map +1 -0
  134. package/dist/repository-mutation/adapters/node/node-known-file-recovery-state.d.ts +12 -0
  135. package/dist/repository-mutation/adapters/node/node-known-file-recovery-state.d.ts.map +1 -0
  136. package/dist/repository-mutation/adapters/node/node-known-file-recovery-state.js +17 -0
  137. package/dist/repository-mutation/adapters/node/node-known-file-recovery-state.js.map +1 -0
  138. package/dist/repository-mutation/adapters/node/node-known-file-transaction-lease-release.d.ts +14 -0
  139. package/dist/repository-mutation/adapters/node/node-known-file-transaction-lease-release.d.ts.map +1 -0
  140. package/dist/repository-mutation/adapters/node/node-known-file-transaction-lease-release.js +23 -0
  141. package/dist/repository-mutation/adapters/node/node-known-file-transaction-lease-release.js.map +1 -0
  142. package/dist/repository-mutation/adapters/node/node-known-file-transaction-recovery.d.ts +2 -5
  143. package/dist/repository-mutation/adapters/node/node-known-file-transaction-recovery.d.ts.map +1 -1
  144. package/dist/repository-mutation/adapters/node/node-known-file-transaction-recovery.js +30 -861
  145. package/dist/repository-mutation/adapters/node/node-known-file-transaction-recovery.js.map +1 -1
  146. package/dist/repository-mutation/adapters/node/node-known-file-transaction.d.ts +3 -9
  147. package/dist/repository-mutation/adapters/node/node-known-file-transaction.d.ts.map +1 -1
  148. package/dist/repository-mutation/adapters/node/node-known-file-transaction.js +44 -452
  149. package/dist/repository-mutation/adapters/node/node-known-file-transaction.js.map +1 -1
  150. package/dist/repository-mutation/application/policies/classify-known-file-recovery-transition.d.ts +25 -0
  151. package/dist/repository-mutation/application/policies/classify-known-file-recovery-transition.d.ts.map +1 -0
  152. package/dist/repository-mutation/application/policies/classify-known-file-recovery-transition.js +19 -0
  153. package/dist/repository-mutation/application/policies/classify-known-file-recovery-transition.js.map +1 -0
  154. package/dist/scaffolding/adapters/node/filesystem-authority-workspace.d.ts.map +1 -1
  155. package/dist/scaffolding/adapters/node/filesystem-authority-workspace.js +8 -5
  156. package/dist/scaffolding/adapters/node/filesystem-authority-workspace.js.map +1 -1
  157. package/dist/transaction-coordination/application/model/transaction-status.d.ts +10 -0
  158. package/dist/transaction-coordination/application/model/transaction-status.d.ts.map +1 -1
  159. package/dist/transaction-coordination/application/release-foundation-transaction-lease.d.ts +6 -0
  160. package/dist/transaction-coordination/application/release-foundation-transaction-lease.d.ts.map +1 -0
  161. package/dist/transaction-coordination/application/release-foundation-transaction-lease.js +23 -0
  162. package/dist/transaction-coordination/application/release-foundation-transaction-lease.js.map +1 -0
  163. package/dist/unexpected-failure.d.ts +9 -0
  164. package/dist/unexpected-failure.d.ts.map +1 -0
  165. package/dist/unexpected-failure.js +105 -0
  166. package/dist/unexpected-failure.js.map +1 -0
  167. package/package.json +5 -1
@@ -0,0 +1,203 @@
1
+ import { lstat, rmdir } from "node:fs/promises";
2
+ import { basename, dirname, join } from "node:path";
3
+ import { deserializeKnownFileIdentity } from "../../application/model/known-file-transaction-journal.js";
4
+ import { readBoundedRegularFile } from "./node-bounded-regular-file.js";
5
+ import { syncDirectoryStrictly } from "./node-directory-durability.js";
6
+ import { knownFileErrorCode, knownFileTemporaryName, KnownFileTransactionError, matchesKnownFileImage, sameKnownFileIdentity } from "./node-known-file-transaction-filesystem.js";
7
+ import { knownFileCapturePaths } from "./node-known-file-recovery-filesystem.js";
8
+ import { restorePreimage } from "./node-known-file-recovery-preimage.js";
9
+ import { retireJournalBoundPath } from "./node-known-file-recovery-retirement.js";
10
+ async function cleanupOperationTemporaries(options) {
11
+ const operation = options.stored.envelope.journal.plan.operations[options.operationIndex];
12
+ const journalOperation = options.stored.envelope.journal.operations[options.operationIndex];
13
+ const parent = dirname(join(options.root, ...operation.path.split("/")));
14
+ const candidates = [
15
+ {
16
+ identity: "temporaryIdentity" in journalOperation
17
+ ? deserializeKnownFileIdentity(journalOperation.temporaryIdentity)
18
+ : undefined,
19
+ image: operation.postimage,
20
+ kind: "temporary",
21
+ authorizedWithoutIdentity: journalOperation.state === "temporary-authorized",
22
+ path: join(parent, knownFileTemporaryName(operation.path, options.stored.envelope.journal.plan.planDigest, options.operationIndex))
23
+ },
24
+ ...(operation.precondition.state === "known-file" &&
25
+ journalOperation.matchedPreimage !== undefined
26
+ ? [{
27
+ identity: journalOperation.rollbackTemporaryIdentity === undefined
28
+ ? undefined
29
+ : deserializeKnownFileIdentity(journalOperation.rollbackTemporaryIdentity),
30
+ image: operation.precondition.acceptedPreimages[journalOperation.matchedPreimage],
31
+ kind: "rollback-temporary",
32
+ path: join(parent, `.${basename(operation.path)}.agent-teams.rollback.${options.operationIndex}.tmp`)
33
+ }]
34
+ : [])
35
+ ];
36
+ for (const candidate of candidates) {
37
+ let observed;
38
+ try {
39
+ observed = await readBoundedRegularFile(candidate.path, candidate.image.size);
40
+ }
41
+ catch (error) {
42
+ if (knownFileErrorCode(error) === "ENOENT") {
43
+ continue;
44
+ }
45
+ throw error;
46
+ }
47
+ if (observed.outcome !== "read" || !matchesKnownFileImage({
48
+ state: "file", bytes: observed.bytes, identity: observed.identity,
49
+ mode: observed.mode & 0o777
50
+ }, candidate.image)) {
51
+ throw new KnownFileTransactionError("KNOWN_FILE_RECOVERY_CONFLICT", `Transaction temporary is foreign or modified: ${operation.path}.`);
52
+ }
53
+ if (candidate.identity === undefined && candidate.authorizedWithoutIdentity === true) {
54
+ throw new KnownFileTransactionError("KNOWN_FILE_RECOVERY_CONFLICT", `Authorized temporary exists without durable ownership identity: ${operation.path}.`);
55
+ }
56
+ if (candidate.identity === undefined ||
57
+ !sameKnownFileIdentity(observed.identity, candidate.identity)) {
58
+ throw new KnownFileTransactionError("KNOWN_FILE_RECOVERY_CONFLICT", `Transaction temporary identity is absent or changed: ${operation.path}.`);
59
+ }
60
+ await retireJournalBoundPath({
61
+ expectedIdentity: candidate.identity,
62
+ kind: candidate.kind,
63
+ operationIndex: options.operationIndex,
64
+ root: options.root,
65
+ store: options.store,
66
+ stored: options.stored
67
+ });
68
+ }
69
+ }
70
+ async function cleanupAuthorizedCapture(options) {
71
+ const operation = options.journal.plan.operations[options.operationIndex];
72
+ const parent = dirname(join(options.root, ...operation.path.split("/")));
73
+ const paths = knownFileCapturePaths({
74
+ operationIndex: options.operationIndex,
75
+ operationPath: operation.path,
76
+ parent,
77
+ planDigest: options.journal.plan.planDigest
78
+ });
79
+ const metadata = await lstat(paths.directory).catch((error) => {
80
+ if (knownFileErrorCode(error) === "ENOENT") {
81
+ return null;
82
+ }
83
+ throw error;
84
+ });
85
+ if (metadata === null) {
86
+ return;
87
+ }
88
+ if (!metadata.isDirectory() || metadata.isSymbolicLink()) {
89
+ throw new KnownFileTransactionError("KNOWN_FILE_RECOVERY_CONFLICT", `Authorized capture path is foreign: ${operation.path}.`);
90
+ }
91
+ throw new KnownFileTransactionError("KNOWN_FILE_RECOVERY_CONFLICT", `Authorized capture exists without durable ownership identity: ${operation.path}.`);
92
+ }
93
+ async function removeAuthorizedDirectories(root, directories) {
94
+ for (const repositoryPath of directories.toReversed()) {
95
+ const path = join(root, ...repositoryPath.split("/"));
96
+ const metadata = await lstat(path).catch((error) => {
97
+ if (knownFileErrorCode(error) === "ENOENT") {
98
+ return null;
99
+ }
100
+ throw error;
101
+ });
102
+ if (metadata === null) {
103
+ continue;
104
+ }
105
+ if (!metadata.isDirectory() || metadata.isSymbolicLink()) {
106
+ throw new KnownFileTransactionError("KNOWN_FILE_RECOVERY_CONFLICT", `Authorized directory path is foreign: ${repositoryPath}.`);
107
+ }
108
+ throw new KnownFileTransactionError("KNOWN_FILE_RECOVERY_CONFLICT", `Authorized directory exists without durable ownership identity: ${repositoryPath}.`);
109
+ }
110
+ }
111
+ async function removeCreatedDirectories(root, directories) {
112
+ for (const directory of directories.toReversed()) {
113
+ const path = join(root, ...directory.path.split("/"));
114
+ let metadata;
115
+ try {
116
+ metadata = await lstat(path, { bigint: true });
117
+ }
118
+ catch (error) {
119
+ if (knownFileErrorCode(error) === "ENOENT") {
120
+ continue;
121
+ }
122
+ throw error;
123
+ }
124
+ const expected = deserializeKnownFileIdentity(directory.identity);
125
+ if (!metadata.isDirectory() || metadata.isSymbolicLink() ||
126
+ metadata.dev !== expected.dev || metadata.ino !== expected.ino ||
127
+ metadata.birthtimeNs !== expected.birthtimeNs) {
128
+ throw new KnownFileTransactionError("KNOWN_FILE_RECOVERY_CONFLICT", `Transaction-created directory changed before cleanup: ${directory.path}.`);
129
+ }
130
+ try {
131
+ await rmdir(path);
132
+ await syncDirectoryStrictly(dirname(path));
133
+ }
134
+ catch (error) {
135
+ if (knownFileErrorCode(error) !== "ENOTEMPTY") {
136
+ throw error;
137
+ }
138
+ }
139
+ }
140
+ }
141
+ export async function rollbackKnownFileRecovery(options) {
142
+ for (let index = options.stored.envelope.journal.operations.length - 1; index >= 0; index -= 1) {
143
+ let journalOperation = options.stored.envelope.journal.operations[index];
144
+ if (journalOperation.retirement !== undefined) {
145
+ await retireJournalBoundPath({
146
+ expectedIdentity: deserializeKnownFileIdentity(journalOperation.retirement.pathIdentity),
147
+ ...(options.faultInjector === undefined ? {} : { faultInjector: options.faultInjector }),
148
+ kind: journalOperation.retirement.kind,
149
+ operationIndex: index,
150
+ root: options.root,
151
+ store: options.store,
152
+ stored: options.stored
153
+ });
154
+ journalOperation = options.stored.envelope.journal.operations[index];
155
+ }
156
+ if (journalOperation.state === "capture-authorized") {
157
+ await cleanupAuthorizedCapture({
158
+ journal: options.stored.envelope.journal,
159
+ operationIndex: index,
160
+ root: options.root
161
+ });
162
+ continue;
163
+ }
164
+ if (![
165
+ "capture-ready", "preimage-captured", "destination-retired",
166
+ "publishing", "published", "rollback-restored"
167
+ ].includes(journalOperation.state)) {
168
+ continue;
169
+ }
170
+ await restorePreimage({
171
+ ...(options.faultInjector === undefined ? {} : { faultInjector: options.faultInjector }),
172
+ operation: options.stored.envelope.journal.plan.operations[index],
173
+ operationIndex: index,
174
+ root: options.root,
175
+ store: options.store,
176
+ stored: options.stored
177
+ });
178
+ await cleanupOperationTemporaries({
179
+ operationIndex: index,
180
+ root: options.root,
181
+ store: options.store,
182
+ stored: options.stored
183
+ });
184
+ }
185
+ for (let index = options.stored.envelope.journal.operations.length - 1; index >= 0; index -= 1) {
186
+ const journal = options.stored.envelope.journal;
187
+ if (![
188
+ "capture-ready", "preimage-captured", "destination-retired",
189
+ "publishing", "published", "rollback-restored"
190
+ ].includes(journal.operations[index].state)) {
191
+ await cleanupOperationTemporaries({
192
+ operationIndex: index,
193
+ root: options.root,
194
+ store: options.store,
195
+ stored: options.stored
196
+ });
197
+ }
198
+ }
199
+ const journal = options.stored.envelope.journal;
200
+ await removeCreatedDirectories(options.root, journal.createdDirectories);
201
+ await removeAuthorizedDirectories(options.root, journal.authorizedDirectories);
202
+ }
203
+ //# sourceMappingURL=node-known-file-recovery-cleanup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-known-file-recovery-cleanup.js","sourceRoot":"","sources":["../../../../src/repository-mutation/adapters/node/node-known-file-recovery-cleanup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { KnownFileTransactionReceiptV1 } from "../../application/model/known-file-transaction.js";
2
+ import { type KnownFileRecoveryFaultInjector, type StoredRecoveryJournal } from "./node-known-file-recovery-state.js";
3
+ import type { NodeKnownFileTransactionJournalStore } from "./node-known-file-transaction-journal-store.js";
4
+ export type { KnownFileRecoveryFaultInjector } from "./node-known-file-recovery-state.js";
5
+ export declare function executeCommittedKnownFileRecovery(options: {
6
+ readonly faultInjector?: KnownFileRecoveryFaultInjector;
7
+ readonly root: string;
8
+ readonly store: NodeKnownFileTransactionJournalStore;
9
+ readonly stored: StoredRecoveryJournal;
10
+ }): Promise<KnownFileTransactionReceiptV1>;
11
+ export declare function executeApplyingKnownFileRollback(options: {
12
+ readonly faultInjector?: KnownFileRecoveryFaultInjector;
13
+ readonly root: string;
14
+ readonly store: NodeKnownFileTransactionJournalStore;
15
+ readonly stored: StoredRecoveryJournal;
16
+ }): Promise<KnownFileTransactionReceiptV1>;
17
+ //# sourceMappingURL=node-known-file-recovery-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-known-file-recovery-executor.d.ts","sourceRoot":"","sources":["../../../../src/repository-mutation/adapters/node/node-known-file-recovery-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAC;AAGvG,OAAO,EACL,KAAK,8BAA8B,EACnC,KAAK,qBAAqB,EAC3B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,gDAAgD,CAAC;AAQ3G,YAAY,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAE1F,wBAAsB,iCAAiC,CAAC,OAAO,EAAE;IAC/D,QAAQ,CAAC,aAAa,CAAC,EAAE,8BAA8B,CAAC;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,oCAAoC,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;CACxC,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAczC;AAED,wBAAsB,gCAAgC,CAAC,OAAO,EAAE;IAC9D,QAAQ,CAAC,aAAa,CAAC,EAAE,8BAA8B,CAAC;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,oCAAoC,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;CACxC,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAMzC"}
@@ -0,0 +1,22 @@
1
+ import { cleanupCommittedKnownFileCaptures } from "./node-known-file-recovery-filesystem.js";
2
+ import { rollbackKnownFileRecovery } from "./node-known-file-recovery-cleanup.js";
3
+ import {} from "./node-known-file-recovery-state.js";
4
+ import { compileKnownFileTransactionReceipt, verifyCommittedKnownFilePostimages } from "./node-known-file-transaction.js";
5
+ import { compileRolledBackReceipt } from "./node-known-file-transaction-receipt.js";
6
+ import { verifyRolledBackKnownFileState } from "./node-known-file-recovery-observation.js";
7
+ export async function executeCommittedKnownFileRecovery(options) {
8
+ await verifyCommittedKnownFilePostimages(options.root, options.stored.envelope.journal);
9
+ await cleanupCommittedKnownFileCaptures(options.root, options.stored.envelope.journal, options.faultInjector);
10
+ await verifyCommittedKnownFilePostimages(options.root, options.stored.envelope.journal);
11
+ const result = compileKnownFileTransactionReceipt(options.stored.envelope.journal, "applied");
12
+ await options.store.remove(options.stored.authority);
13
+ return result;
14
+ }
15
+ export async function executeApplyingKnownFileRollback(options) {
16
+ await rollbackKnownFileRecovery(options);
17
+ await verifyRolledBackKnownFileState(options.root, options.stored.envelope.journal);
18
+ const result = compileRolledBackReceipt(options.stored.envelope.journal);
19
+ await options.store.remove(options.stored.authority);
20
+ return result;
21
+ }
22
+ //# sourceMappingURL=node-known-file-recovery-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-known-file-recovery-executor.js","sourceRoot":"","sources":["../../../../src/repository-mutation/adapters/node/node-known-file-recovery-executor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iCAAiC,EAAE,MAAM,0CAA0C,CAAC;AAC7F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAGN,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACL,kCAAkC,EAClC,kCAAkC,EACnC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAI3F,MAAM,CAAC,KAAK,UAAU,iCAAiC,CAAC,OAKvD;IACC,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,MAAM,MAAM,GAAG,kCAAkC,CAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAC/B,SAAS,CACV,CAAC;IACF,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CAAC,OAKtD;IACC,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,8BAA8B,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzE,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { KnownFileTransactionEnvelopeV1, KnownFileTransactionJournalV1 } from "../../application/model/known-file-transaction-journal.js";
2
+ import type { InstalledKnownFileRecoveryBuild } from "../../application/policies/classify-known-file-recovery-transition.js";
3
+ import { NodeKnownFileTransactionJournalStore, type KnownFileJournalAuthority } from "./node-known-file-transaction-journal-store.js";
4
+ export interface StoredKnownFileRecoveryJournal {
5
+ authority: KnownFileJournalAuthority;
6
+ envelope: KnownFileTransactionEnvelopeV1;
7
+ }
8
+ export interface KnownFileRecoveryEvidence {
9
+ readonly installedBuild: InstalledKnownFileRecoveryBuild;
10
+ readonly store: NodeKnownFileTransactionJournalStore;
11
+ readonly stored: StoredKnownFileRecoveryJournal;
12
+ }
13
+ export declare function observeKnownFileRecoveryEvidence(root: string): Promise<KnownFileRecoveryEvidence>;
14
+ export declare function verifyRolledBackKnownFileState(root: string, journal: KnownFileTransactionJournalV1): Promise<void>;
15
+ //# sourceMappingURL=node-known-file-recovery-observation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-known-file-recovery-observation.d.ts","sourceRoot":"","sources":["../../../../src/repository-mutation/adapters/node/node-known-file-recovery-observation.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,8BAA8B,EAC9B,6BAA6B,EAC9B,MAAM,2DAA2D,CAAC;AACnE,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,uEAAuE,CAAC;AAO7H,OAAO,EACL,oCAAoC,EACpC,KAAK,yBAAyB,EAC/B,MAAM,gDAAgD,CAAC;AAExD,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,yBAAyB,CAAC;IACrC,QAAQ,EAAE,8BAA8B,CAAC;CAC1C;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,cAAc,EAAE,+BAA+B,CAAC;IACzD,QAAQ,CAAC,KAAK,EAAE,oCAAoC,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,8BAA8B,CAAC;CACjD;AAED,wBAAsB,gCAAgC,CACpD,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,yBAAyB,CAAC,CAmBpC;AAED,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,IAAI,CAAC,CAmCf"}
@@ -0,0 +1,47 @@
1
+ import { join } from "node:path";
2
+ import { LOCAL_STATE_DIRECTORY } from "../../../foundation-state-contract.js";
3
+ import { installedFoundationVersion } from "../../../package-version.js";
4
+ import { installedFoundationBuildIdentity } from "../../../transaction-coordination/adapters/node/installed-foundation-build-identity.js";
5
+ import { KnownFileTransactionError, matchesKnownFileImage, maximumKnownFileEvidenceBytes, observeKnownFile } from "./node-known-file-transaction-filesystem.js";
6
+ import { NodeKnownFileTransactionJournalStore } from "./node-known-file-transaction-journal-store.js";
7
+ export async function observeKnownFileRecoveryEvidence(root) {
8
+ const store = new NodeKnownFileTransactionJournalStore(join(root, LOCAL_STATE_DIRECTORY));
9
+ await store.canonicalizeTemporary();
10
+ const observed = await store.read();
11
+ if (observed === undefined) {
12
+ throw new KnownFileTransactionError("KNOWN_FILE_JOURNAL_MISSING", "Known-file recovery journal disappeared.");
13
+ }
14
+ const [version, buildIdentity] = await Promise.all([
15
+ installedFoundationVersion(),
16
+ installedFoundationBuildIdentity()
17
+ ]);
18
+ return {
19
+ installedBuild: { buildIdentity, version },
20
+ store,
21
+ stored: observed
22
+ };
23
+ }
24
+ export async function verifyRolledBackKnownFileState(root, journal) {
25
+ for (const [index, operation] of journal.plan.operations.entries()) {
26
+ const journalOperation = journal.operations[index];
27
+ const observed = await observeKnownFile(root, operation.path, maximumKnownFileEvidenceBytes(operation));
28
+ if (journalOperation.state === "already-satisfied") {
29
+ if (!matchesKnownFileImage(observed, operation.postimage)) {
30
+ throw new KnownFileTransactionError("KNOWN_FILE_RECOVERY_CONFLICT", `Unchanged guard drifted during rollback: ${operation.path}.`);
31
+ }
32
+ continue;
33
+ }
34
+ if (operation.precondition.state === "absent") {
35
+ if (observed.state !== "absent") {
36
+ throw new KnownFileTransactionError("KNOWN_FILE_RECOVERY_CONFLICT", `Absent preimage was not restored: ${operation.path}.`);
37
+ }
38
+ continue;
39
+ }
40
+ const matched = journalOperation.matchedPreimage;
41
+ if (matched === undefined ||
42
+ !matchesKnownFileImage(observed, operation.precondition.acceptedPreimages[matched])) {
43
+ throw new KnownFileTransactionError("KNOWN_FILE_RECOVERY_CONFLICT", `Exact preimage was not restored: ${operation.path}.`);
44
+ }
45
+ }
46
+ }
47
+ //# sourceMappingURL=node-known-file-recovery-observation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-known-file-recovery-observation.js","sourceRoot":"","sources":["../../../../src/repository-mutation/adapters/node/node-known-file-recovery-observation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,gCAAgC,EAAE,MAAM,wFAAwF,CAAC;AAM1I,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,6BAA6B,EAC7B,gBAAgB,EACjB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,oCAAoC,EAErC,MAAM,gDAAgD,CAAC;AAaxD,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,IAAY;IAEZ,MAAM,KAAK,GAAG,IAAI,oCAAoC,CAAC,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAC1F,MAAM,KAAK,CAAC,qBAAqB,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,yBAAyB,CACjC,4BAA4B,EAC5B,0CAA0C,CAC3C,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACjD,0BAA0B,EAAE;QAC5B,gCAAgC,EAAE;KACnC,CAAC,CAAC;IACH,OAAO;QACL,cAAc,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE;QAC1C,KAAK;QACL,MAAM,EAAE,QAAQ;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,IAAY,EACZ,OAAsC;IAEtC,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;QACnE,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CACrC,IAAI,EACJ,SAAS,CAAC,IAAI,EACd,6BAA6B,CAAC,SAAS,CAAC,CACzC,CAAC;QACF,IAAI,gBAAgB,CAAC,KAAK,KAAK,mBAAmB,EAAE,CAAC;YACnD,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1D,MAAM,IAAI,yBAAyB,CACjC,8BAA8B,EAC9B,4CAA4C,SAAS,CAAC,IAAI,GAAG,CAC9D,CAAC;YACJ,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,SAAS,CAAC,YAAY,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9C,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,IAAI,yBAAyB,CACjC,8BAA8B,EAC9B,qCAAqC,SAAS,CAAC,IAAI,GAAG,CACvD,CAAC;YACJ,CAAC;YACD,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,eAAe,CAAC;QACjD,IAAI,OAAO,KAAK,SAAS;YACvB,CAAC,qBAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAE,CAAC,EAAE,CAAC;YACvF,MAAM,IAAI,yBAAyB,CACjC,8BAA8B,EAC9B,oCAAoC,SAAS,CAAC,IAAI,GAAG,CACtD,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { KnownFileTransactionPlanV1 } from "../../application/model/known-file-transaction.js";
2
+ import type { KnownFileTransactionJournalV1 } from "../../application/model/known-file-transaction-journal.js";
3
+ import type { KnownFileRecoveryFaultInjector } from "./node-known-file-recovery-state.js";
4
+ export declare function cleanupRestoredCapturedPreimage(options: {
5
+ readonly destination: string;
6
+ readonly faultInjector?: KnownFileRecoveryFaultInjector;
7
+ readonly journalOperation: KnownFileTransactionJournalV1["operations"][number] & {
8
+ readonly captureDirectoryIdentity: NonNullable<Extract<KnownFileTransactionJournalV1["operations"][number], {
9
+ readonly temporaryIdentity: unknown;
10
+ }>["captureDirectoryIdentity"]>;
11
+ readonly capturedPreimageIdentity?: NonNullable<Extract<KnownFileTransactionJournalV1["operations"][number], {
12
+ readonly temporaryIdentity: unknown;
13
+ }>["capturedPreimageIdentity"]>;
14
+ };
15
+ readonly operation: KnownFileTransactionPlanV1["operations"][number] & {
16
+ readonly precondition: Extract<KnownFileTransactionPlanV1["operations"][number]["precondition"], {
17
+ readonly state: "known-file";
18
+ }>;
19
+ };
20
+ readonly operationIndex: number;
21
+ readonly parent: string;
22
+ readonly paths: {
23
+ readonly captured: string;
24
+ readonly directory: string;
25
+ readonly retired: string;
26
+ };
27
+ readonly recoveryMaximumBytes: number;
28
+ }): Promise<void>;
29
+ //# sourceMappingURL=node-known-file-recovery-preimage-captured-cleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-known-file-recovery-preimage-captured-cleanup.d.ts","sourceRoot":"","sources":["../../../../src/repository-mutation/adapters/node/node-known-file-recovery-preimage-captured-cleanup.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AACpG,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,2DAA2D,CAAC;AAU/G,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAY1F,wBAAsB,+BAA+B,CAAC,OAAO,EAAE;IAC7D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,8BAA8B,CAAC;IACxD,QAAQ,CAAC,gBAAgB,EAAE,6BAA6B,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,GAAG;QAC/E,QAAQ,CAAC,wBAAwB,EAAE,WAAW,CAAC,OAAO,CACpD,6BAA6B,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EACnD;YAAE,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;SAAE,CACxC,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAC/B,QAAQ,CAAC,wBAAwB,CAAC,EAAE,WAAW,CAAC,OAAO,CACrD,6BAA6B,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EACnD;YAAE,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;SAAE,CACxC,CAAC,0BAA0B,CAAC,CAAC,CAAC;KAChC,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE,0BAA0B,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,GAAG;QACrE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAC5B,0BAA0B,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,EAChE;YAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;SAAE,CACjC,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACpG,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC,GAAG,OAAO,CAAC,IAAI,CAAC,CA2FhB"}
@@ -0,0 +1,72 @@
1
+ import { lstat, rmdir, unlink } from "node:fs/promises";
2
+ import { basename, join } from "node:path";
3
+ import { deserializeKnownFileIdentity } from "../../application/model/known-file-transaction-journal.js";
4
+ import { syncDirectoryStrictly } from "./node-directory-durability.js";
5
+ import { knownFileErrorCode, KnownFileTransactionError, matchesKnownFileImage, sameKnownFileIdentity } from "./node-known-file-transaction-filesystem.js";
6
+ import { observeRecoveryFile } from "./node-known-file-recovery-filesystem.js";
7
+ function matchesRollbackCopy(observed, expected, preimage) {
8
+ return observed.state === "file" && observed.identity !== undefined &&
9
+ sameKnownFileIdentity(observed.identity, expected) &&
10
+ matchesKnownFileImage(observed, preimage);
11
+ }
12
+ export async function cleanupRestoredCapturedPreimage(options) {
13
+ const matched = options.journalOperation.matchedPreimage;
14
+ if (matched === undefined) {
15
+ throw new KnownFileTransactionError("KNOWN_FILE_JOURNAL_INVALID", `Restored replacement lacks exact preimage authority: ${options.operation.path}.`);
16
+ }
17
+ const preimage = options.operation.precondition.acceptedPreimages[matched];
18
+ const destinationObserved = await observeRecoveryFile(options.destination, options.recoveryMaximumBytes);
19
+ if (!matchesKnownFileImage(destinationObserved, preimage)) {
20
+ throw new KnownFileTransactionError("KNOWN_FILE_RECOVERY_CONFLICT", `Restored destination changed during cleanup: ${options.operation.path}.`);
21
+ }
22
+ const rollbackPath = join(options.parent, `.${basename(options.operation.path)}.agent-teams.rollback.${options.operationIndex}.tmp`);
23
+ if (options.journalOperation.rollbackTemporaryIdentity !== undefined) {
24
+ const rollbackObserved = await observeRecoveryFile(rollbackPath, preimage.size);
25
+ if (rollbackObserved.state === "file") {
26
+ const expectedRollback = deserializeKnownFileIdentity(options.journalOperation.rollbackTemporaryIdentity);
27
+ if (!matchesRollbackCopy(rollbackObserved, expectedRollback, preimage)) {
28
+ throw new KnownFileTransactionError("KNOWN_FILE_RECOVERY_CONFLICT", `Rollback copy changed during cleanup: ${options.operation.path}.`);
29
+ }
30
+ await unlink(rollbackPath);
31
+ await syncDirectoryStrictly(options.parent);
32
+ }
33
+ }
34
+ const directory = await lstat(options.paths.directory, { bigint: true }).catch((error) => {
35
+ if (knownFileErrorCode(error) === "ENOENT") {
36
+ return null;
37
+ }
38
+ throw error;
39
+ });
40
+ if (directory === null) {
41
+ return;
42
+ }
43
+ const expectedDirectory = deserializeKnownFileIdentity(options.journalOperation.captureDirectoryIdentity);
44
+ if (!directory.isDirectory() || directory.isSymbolicLink() ||
45
+ directory.birthtimeNs !== expectedDirectory.birthtimeNs ||
46
+ directory.dev !== expectedDirectory.dev || directory.ino !== expectedDirectory.ino) {
47
+ throw new KnownFileTransactionError("KNOWN_FILE_RECOVERY_CONFLICT", `Rollback capture directory changed during cleanup: ${options.operation.path}.`);
48
+ }
49
+ const capturedObserved = await observeRecoveryFile(options.paths.captured, options.recoveryMaximumBytes);
50
+ if (capturedObserved.state === "file") {
51
+ const expectedCaptured = options.journalOperation.capturedPreimageIdentity;
52
+ if (expectedCaptured === undefined || capturedObserved.identity === undefined ||
53
+ !sameKnownFileIdentity(capturedObserved.identity, deserializeKnownFileIdentity(expectedCaptured)) ||
54
+ !matchesKnownFileImage(capturedObserved, preimage)) {
55
+ throw new KnownFileTransactionError("KNOWN_FILE_RECOVERY_CONFLICT", `Rollback capture changed during cleanup: ${options.operation.path}.`);
56
+ }
57
+ await unlink(options.paths.captured);
58
+ await syncDirectoryStrictly(options.paths.directory);
59
+ await options.faultInjector?.({
60
+ phase: "after-rollback-capture-unlinked",
61
+ operationIndex: options.operationIndex,
62
+ path: options.operation.path
63
+ });
64
+ }
65
+ const retiredObserved = await observeRecoveryFile(options.paths.retired, options.recoveryMaximumBytes);
66
+ if (retiredObserved.state !== "absent") {
67
+ throw new KnownFileTransactionError("KNOWN_FILE_RECOVERY_CONFLICT", `Rollback capture retains foreign retired evidence: ${options.operation.path}.`);
68
+ }
69
+ await rmdir(options.paths.directory);
70
+ await syncDirectoryStrictly(options.parent);
71
+ }
72
+ //# sourceMappingURL=node-known-file-recovery-preimage-captured-cleanup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-known-file-recovery-preimage-captured-cleanup.js","sourceRoot":"","sources":["../../../../src/repository-mutation/adapters/node/node-known-file-recovery-preimage-captured-cleanup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { KnownFileTransactionPlanV1 } from "../../application/model/known-file-transaction.js";
2
+ import type { KnownFileTransactionJournalV1 } from "../../application/model/known-file-transaction-journal.js";
3
+ import { type KnownFileRecoveryFaultInjector, type StoredRecoveryJournal } from "./node-known-file-recovery-state.js";
4
+ import type { NodeKnownFileTransactionJournalStore } from "./node-known-file-transaction-journal-store.js";
5
+ interface CapturedPreimageOptions {
6
+ readonly faultInjector?: KnownFileRecoveryFaultInjector;
7
+ readonly journalOperation: KnownFileTransactionJournalV1["operations"][number] & {
8
+ readonly captureDirectoryIdentity: NonNullable<Extract<KnownFileTransactionJournalV1["operations"][number], {
9
+ readonly temporaryIdentity: unknown;
10
+ }>["captureDirectoryIdentity"]>;
11
+ readonly temporaryIdentity: NonNullable<Extract<KnownFileTransactionJournalV1["operations"][number], {
12
+ readonly temporaryIdentity: unknown;
13
+ }>["temporaryIdentity"]>;
14
+ readonly capturedPreimageIdentity?: NonNullable<Extract<KnownFileTransactionJournalV1["operations"][number], {
15
+ readonly temporaryIdentity: unknown;
16
+ }>["capturedPreimageIdentity"]>;
17
+ };
18
+ readonly operation: KnownFileTransactionPlanV1["operations"][number] & {
19
+ readonly precondition: Extract<KnownFileTransactionPlanV1["operations"][number]["precondition"], {
20
+ readonly state: "known-file";
21
+ }>;
22
+ };
23
+ readonly operationIndex: number;
24
+ readonly planDigest: string;
25
+ readonly root: string;
26
+ readonly store: NodeKnownFileTransactionJournalStore;
27
+ readonly stored: StoredRecoveryJournal;
28
+ }
29
+ export declare function restoreCapturedPreimage(options: CapturedPreimageOptions): Promise<void>;
30
+ export {};
31
+ //# sourceMappingURL=node-known-file-recovery-preimage-captured.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-known-file-recovery-preimage-captured.d.ts","sourceRoot":"","sources":["../../../../src/repository-mutation/adapters/node/node-known-file-recovery-preimage-captured.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoB,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AACtH,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,2DAA2D,CAAC;AAc/G,OAAO,EACL,KAAK,8BAA8B,EAGnC,KAAK,qBAAqB,EAC3B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,gDAAgD,CAAC;AAM3G,UAAU,uBAAuB;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,8BAA8B,CAAC;IACxD,QAAQ,CAAC,gBAAgB,EAAE,6BAA6B,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,GAAG;QAC/E,QAAQ,CAAC,wBAAwB,EAAE,WAAW,CAAC,OAAO,CACpD,6BAA6B,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EACnD;YAAE,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;SAAE,CACxC,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAC/B,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC,OAAO,CAC7C,6BAA6B,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EACnD;YAAE,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;SAAE,CACxC,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACxB,QAAQ,CAAC,wBAAwB,CAAC,EAAE,WAAW,CAAC,OAAO,CACrD,6BAA6B,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EACnD;YAAE,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;SAAE,CACxC,CAAC,0BAA0B,CAAC,CAAC,CAAC;KAChC,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE,0BAA0B,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,GAAG;QACrE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAC5B,0BAA0B,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,EAChE;YAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;SAAE,CACjC,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,oCAAoC,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;CACxC;AAsSD,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgF7F"}