@aviaratech/ai-delivery 0.3.3 → 0.3.5

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 (60) hide show
  1. package/CONTRIBUTING.md +36 -9
  2. package/README.md +134 -21
  3. package/dist/agent.d.ts +2 -0
  4. package/dist/agent.js +1 -0
  5. package/dist/agent.js.map +1 -1
  6. package/dist/cli.js +43 -2
  7. package/dist/cli.js.map +1 -1
  8. package/dist/config/deliveryConfig.d.ts +4 -1
  9. package/dist/config/deliveryConfig.js +5 -2
  10. package/dist/config/deliveryConfig.js.map +1 -1
  11. package/dist/delivery/common.d.ts +1 -1
  12. package/dist/delivery/common.js +39 -15
  13. package/dist/delivery/common.js.map +1 -1
  14. package/dist/delivery/delivery.test.js +251 -2
  15. package/dist/delivery/delivery.test.js.map +1 -1
  16. package/dist/delivery/policy.d.ts +19 -4
  17. package/dist/delivery/policy.js +18 -5
  18. package/dist/delivery/policy.js.map +1 -1
  19. package/dist/delivery/stage.d.ts +56 -8
  20. package/dist/delivery/stage.js +60 -30
  21. package/dist/delivery/stage.js.map +1 -1
  22. package/dist/dispatch.js +85 -4
  23. package/dist/dispatch.js.map +1 -1
  24. package/dist/fixtures/discovery.d.ts +1 -1
  25. package/dist/github/client.d.ts +1 -0
  26. package/dist/github/client.js +4 -1
  27. package/dist/github/client.js.map +1 -1
  28. package/dist/github/commandIdentityPolicy.js +2 -0
  29. package/dist/github/commandIdentityPolicy.js.map +1 -1
  30. package/dist/issue.js +2 -0
  31. package/dist/issue.js.map +1 -1
  32. package/dist/lifecycle.test.js +1159 -66
  33. package/dist/lifecycle.test.js.map +1 -1
  34. package/dist/mcp/index.js +1 -1
  35. package/dist/mcp/tools.d.ts +32 -0
  36. package/dist/mcp/tools.js +39 -0
  37. package/dist/mcp/tools.js.map +1 -1
  38. package/dist/pr.d.ts +4 -4
  39. package/dist/pr.js +10 -6
  40. package/dist/pr.js.map +1 -1
  41. package/dist/review.test.js +163 -0
  42. package/dist/review.test.js.map +1 -1
  43. package/dist/services/deliveryAdmission.d.ts +13 -2
  44. package/dist/services/deliveryAdmission.js +41 -2
  45. package/dist/services/deliveryAdmission.js.map +1 -1
  46. package/dist/setup.d.ts +58 -0
  47. package/dist/setup.js +415 -0
  48. package/dist/setup.js.map +1 -0
  49. package/dist/setup.test.d.ts +1 -0
  50. package/dist/setup.test.js +744 -0
  51. package/dist/setup.test.js.map +1 -0
  52. package/dist/utils/atomicJson.js +11 -2
  53. package/dist/utils/atomicJson.js.map +1 -1
  54. package/dist/verification.d.ts +10 -1
  55. package/dist/verification.js +462 -111
  56. package/dist/verification.js.map +1 -1
  57. package/package.json +1 -1
  58. package/plugins/ai-delivery/.claude-plugin/plugin.json +1 -1
  59. package/plugins/ai-delivery/README.md +1 -1
  60. package/plugins/ai-delivery/skills/worktree-lifecycle/SKILL.md +3 -0
package/dist/setup.js ADDED
@@ -0,0 +1,415 @@
1
+ import { closeSync, existsSync, fsyncSync, lstatSync, mkdirSync, openSync, readFileSync, rmSync } from 'node:fs';
2
+ import { dirname, isAbsolute, join, resolve, sep } from 'node:path';
3
+ import { z } from 'zod';
4
+ import { assertPrivateFile, writeCreateOnly } from './delivery/common.js';
5
+ import { digestBytes, digestValue } from './delivery/index.js';
6
+ import { DeliveryError } from './errors.js';
7
+ import { assertClean, coordinate, gitCommonDir, gitRoot, primaryGitRoot } from './git.js';
8
+ import { evaluateCommandIdentityPolicy } from './github/commandIdentityPolicy.js';
9
+ import { loadDeliveryContext } from './issue.js';
10
+ import { preflightReviewRoute } from './pr.js';
11
+ import { buildRuntimeAdmission, RuntimeAdmissionSchema, validateRuntimeAdmission, } from './services/deliveryAdmission.js';
12
+ import { ensurePrivateDirectoryDurably, writePrivateJsonFileAtomically } from './utils/atomicJson.js';
13
+ import { withLock } from './utils/lockfile.js';
14
+ import { withRuntimeSetupWriter } from './verification.js';
15
+ const Digest = z.string().regex(/^sha256:[a-f0-9]{64}$/u);
16
+ const IntentSchema = z.strictObject({
17
+ archivePath: z.string().min(1),
18
+ archiveSha256: Digest,
19
+ configDigest: Digest,
20
+ packageVersion: z.string().regex(/^\d+\.\d+\.\d+$/u),
21
+ repoRoot: z.string().min(1),
22
+ repository: z.string().min(1),
23
+ reviewRouteDigest: Digest,
24
+ runtimeDirectory: z.string().min(1),
25
+ sourceCommit: z.string().regex(/^[a-f0-9]{40}$/u),
26
+ });
27
+ const StageSchema = z
28
+ .strictObject({
29
+ schemaVersion: z.literal('ai-delivery.runtime-stage@1'),
30
+ stageId: Digest,
31
+ intent: IntentSchema,
32
+ directory: z.strictObject({ device: z.number().int(), inode: z.number().int() }),
33
+ admission: RuntimeAdmissionSchema.optional(),
34
+ status: z.enum(['incomplete', 'complete']),
35
+ recordId: Digest,
36
+ })
37
+ .superRefine((value, context) => {
38
+ const { recordId, ...content } = value;
39
+ if (recordId !== digestValue(content) ||
40
+ value.stageId !== digestValue(value.intent) ||
41
+ (value.status === 'complete') !== (value.admission !== undefined) ||
42
+ (value.admission !== undefined &&
43
+ (value.admission.sourceCommit !== value.intent.sourceCommit ||
44
+ value.admission.sourceArchiveSha256 !== value.intent.archiveSha256 ||
45
+ value.admission.packageVersion !== value.intent.packageVersion ||
46
+ value.admission.configDigest !== value.intent.configDigest ||
47
+ value.admission.repository !== value.intent.repository ||
48
+ value.admission.cliPath !==
49
+ join(value.intent.runtimeDirectory, 'node_modules/@aviaratech/ai-delivery/dist/cli.js') ||
50
+ value.admission.mcpLauncherPath !==
51
+ join(value.intent.runtimeDirectory, 'node_modules/@aviaratech/ai-delivery/plugins/ai-delivery/dist/mcp-launcher.js') ||
52
+ value.admission.pluginManifestPath !==
53
+ join(value.intent.runtimeDirectory, 'node_modules/@aviaratech/ai-delivery/plugins/ai-delivery/.claude-plugin/plugin.json'))))
54
+ context.addIssue({ code: 'custom', message: 'Runtime stage identity or completion is corrupt.' });
55
+ });
56
+ /** Paths are explicit canonical locations; setup never traverses host aliases or current links. */
57
+ function canonicalPath(path) {
58
+ if (!isAbsolute(path) || resolve(path) !== path)
59
+ throw new DeliveryError('Runtime setup paths must be absolute and canonical.');
60
+ const parts = path.split(sep).filter(Boolean);
61
+ let parent = sep;
62
+ for (const part of parts) {
63
+ parent = join(parent, part);
64
+ try {
65
+ if (lstatSync(parent).isSymbolicLink())
66
+ throw new DeliveryError('Runtime setup path contains a symbolic link.');
67
+ }
68
+ catch (error) {
69
+ if (error.code !== 'ENOENT')
70
+ throw error;
71
+ }
72
+ }
73
+ return path;
74
+ }
75
+ function assertArchive(path, expected) {
76
+ canonicalPath(path);
77
+ Digest.parse(expected);
78
+ const metadata = lstatSync(path);
79
+ if (!metadata.isFile() || metadata.nlink !== 1)
80
+ throw new DeliveryError('Reviewed runtime archive bytes do not match the expected digest.');
81
+ const bytes = readFileSync(path);
82
+ if (digestBytes(bytes) !== expected)
83
+ throw new DeliveryError('Reviewed runtime archive bytes do not match the expected digest.');
84
+ return bytes;
85
+ }
86
+ function assertArchiveSnapshot(intent) {
87
+ const path = canonicalPath(join(intent.runtimeDirectory, 'reviewed-archive.tgz'));
88
+ if (digestBytes(assertPrivateFile(path)) !== intent.archiveSha256)
89
+ throw new DeliveryError('Runtime stage archive snapshot bytes changed.');
90
+ return path;
91
+ }
92
+ async function controller(input, command) {
93
+ if (typeof input.identity !== 'string' || !input.identity.trim())
94
+ throw new DeliveryError('Runtime setup requires an explicit configured author identity.');
95
+ const root = gitRoot(input.repoRoot);
96
+ if (root !== primaryGitRoot(root))
97
+ throw new DeliveryError('Runtime setup requires the primary consumer controller checkout.');
98
+ assertClean(root);
99
+ if (coordinate(root).sha !== input.expectedSourceCommit)
100
+ throw new DeliveryError('Primary controller source commit changed.');
101
+ canonicalPath(input.runtimeDirectory);
102
+ const context = await loadDeliveryContext({
103
+ identity: input.identity,
104
+ repoRoot: root,
105
+ role: 'author',
106
+ ...(input.personalAuth === undefined ? {} : { personalAuth: input.personalAuth }),
107
+ });
108
+ const policy = evaluateCommandIdentityPolicy({
109
+ commandName: command,
110
+ deliveryConfig: context.config,
111
+ identity: input.identity,
112
+ ...(input.personalAuth === undefined ? {} : { personalAuth: input.personalAuth }),
113
+ });
114
+ if (policy.error)
115
+ throw new DeliveryError(policy.error);
116
+ if (!context.configuration || context.configuration.configDigest !== input.expectedConfigDigest)
117
+ throw new DeliveryError('Primary controller resolver config digest changed.');
118
+ const reviewRoute = await preflightReviewRoute(context);
119
+ // Publication preflight requires the actual configured author credential, not a development override.
120
+ assertClean(root);
121
+ if (coordinate(root).sha !== input.expectedSourceCommit)
122
+ throw new DeliveryError('Primary controller source commit changed during preflight.');
123
+ return { root, configuration: context.configuration, reviewRoute };
124
+ }
125
+ function readStage(directory) {
126
+ canonicalPath(directory);
127
+ const metadata = lstatSync(directory);
128
+ if (!metadata.isDirectory() || (metadata.mode & 0o777) !== 0o700)
129
+ throw new DeliveryError('Runtime stage directory must be private and owned.');
130
+ let record;
131
+ try {
132
+ record = StageSchema.parse(JSON.parse(assertPrivateFile(join(directory, 'runtime-stage.json')).toString('utf8')));
133
+ }
134
+ catch {
135
+ throw new DeliveryError('Runtime stage is unowned, incompatible or corrupt.');
136
+ }
137
+ if (record.intent.runtimeDirectory !== directory ||
138
+ metadata.dev !== record.directory.device ||
139
+ metadata.ino !== record.directory.inode)
140
+ throw new DeliveryError('Runtime stage directory ownership changed.');
141
+ if (record.status === 'complete')
142
+ assertArchiveSnapshot(record.intent);
143
+ return record;
144
+ }
145
+ function writeStage(directory, content) {
146
+ const record = StageSchema.parse({ ...content, recordId: digestValue(content) });
147
+ writePrivateJsonFileAtomically(join(directory, 'runtime-stage.json'), record);
148
+ const readback = readStage(directory);
149
+ if (readback.recordId !== record.recordId)
150
+ throw new DeliveryError('Runtime stage completion readback changed.');
151
+ return readback;
152
+ }
153
+ function syncDirectory(directory) {
154
+ const descriptor = openSync(directory, 'r');
155
+ try {
156
+ fsyncSync(descriptor);
157
+ }
158
+ finally {
159
+ closeSync(descriptor);
160
+ }
161
+ }
162
+ function durability(path) {
163
+ const bytes = assertPrivateFile(path);
164
+ const fd = openSync(path, 'r');
165
+ try {
166
+ fsyncSync(fd);
167
+ }
168
+ finally {
169
+ closeSync(fd);
170
+ }
171
+ syncDirectory(dirname(path));
172
+ if (!assertPrivateFile(path).equals(bytes))
173
+ throw new DeliveryError('Runtime admission third-party replacement conflict.');
174
+ }
175
+ function stageResult(record, reviewRoute, reused) {
176
+ if (!record.admission)
177
+ throw new DeliveryError('Runtime stage completion is missing.');
178
+ return {
179
+ stageId: record.stageId,
180
+ admission: record.admission,
181
+ reused,
182
+ reviewRoute,
183
+ launch: {
184
+ cli: { command: process.execPath, args: [record.admission.cliPath] },
185
+ mcp: { command: process.execPath, args: [record.admission.mcpLauncherPath] },
186
+ },
187
+ };
188
+ }
189
+ function assertStageController(record, current, input) {
190
+ if (record.intent.repoRoot !== current.root ||
191
+ record.intent.repository !== current.configuration.config.repository ||
192
+ record.intent.sourceCommit !== input.expectedSourceCommit ||
193
+ record.intent.configDigest !== input.expectedConfigDigest)
194
+ throw new DeliveryError('Runtime stage primary controller source or configuration changed.');
195
+ if (record.intent.reviewRouteDigest !== digestValue(current.reviewRoute))
196
+ throw new DeliveryError('Runtime stage configured actors or review route changed.');
197
+ }
198
+ /** Stage one reviewed local archive without activating host references or issuing admission. */
199
+ export async function stageRuntime(input) {
200
+ if (input.authority !== 'runtime:stage')
201
+ throw new DeliveryError('Explicit runtime:stage authority is required.');
202
+ const current = await controller(input, 'runtime:stage');
203
+ assertArchive(input.archivePath, input.expectedArchiveSha256);
204
+ const intent = IntentSchema.parse({
205
+ archivePath: input.archivePath,
206
+ archiveSha256: input.expectedArchiveSha256,
207
+ configDigest: input.expectedConfigDigest,
208
+ sourceCommit: input.expectedSourceCommit,
209
+ packageVersion: input.packageVersion,
210
+ repoRoot: current.root,
211
+ repository: current.configuration.config.repository,
212
+ reviewRouteDigest: digestValue(current.reviewRoute),
213
+ runtimeDirectory: input.runtimeDirectory,
214
+ });
215
+ const stageId = digestValue(intent);
216
+ return withRuntimeSetupWriter(current.root, async (runner) => {
217
+ if (existsSync(input.runtimeDirectory)) {
218
+ const prior = readStage(input.runtimeDirectory);
219
+ if (prior.stageId !== stageId)
220
+ throw new DeliveryError('Runtime stage belongs to an incompatible setup intent.');
221
+ if (prior.status === 'complete') {
222
+ const reread = await controller(input, 'runtime:stage');
223
+ assertStageController(prior, reread, input);
224
+ assertArchive(intent.archivePath, intent.archiveSha256);
225
+ durability(join(input.runtimeDirectory, 'reviewed-archive.tgz'));
226
+ assertArchiveSnapshot(intent);
227
+ validateRuntimeAdmission(prior.admission, reread.configuration, prior.admission.cliPath);
228
+ durability(join(input.runtimeDirectory, 'runtime-stage.json'));
229
+ syncDirectory(dirname(input.runtimeDirectory));
230
+ return stageResult(prior, reread.reviewRoute, true);
231
+ }
232
+ runner.assertQuiescent();
233
+ rmSync(input.runtimeDirectory, { recursive: true });
234
+ }
235
+ ensurePrivateDirectoryDurably(dirname(input.runtimeDirectory));
236
+ mkdirSync(input.runtimeDirectory, { mode: 0o700 });
237
+ const directory = lstatSync(input.runtimeDirectory);
238
+ const content = {
239
+ schemaVersion: 'ai-delivery.runtime-stage@1',
240
+ stageId,
241
+ intent,
242
+ directory: { device: directory.dev, inode: directory.ino },
243
+ status: 'incomplete',
244
+ };
245
+ let owned = false;
246
+ try {
247
+ syncDirectory(dirname(input.runtimeDirectory));
248
+ writeStage(input.runtimeDirectory, content);
249
+ owned = true;
250
+ if (input.signal?.aborted)
251
+ throw new DeliveryError('Runtime stage cancelled.');
252
+ const bounds = input.resourceBounds ?? {
253
+ maxAggregateRssBytes: 1024 ** 3,
254
+ minFreeDiskBytes: 256 * 1024 ** 2,
255
+ maxNewOutputBytes: 512 * 1024 ** 2,
256
+ };
257
+ // Hash and persist the same captured bytes. npm must never reopen the mutable transport pathname.
258
+ const archiveBytes = assertArchive(input.archivePath, input.expectedArchiveSha256);
259
+ if (!Number.isSafeInteger(bounds.maxNewOutputBytes) || archiveBytes.length >= bounds.maxNewOutputBytes)
260
+ throw new DeliveryError('Reviewed archive snapshot exceeds the stage output limit.');
261
+ writeCreateOnly(join(input.runtimeDirectory, 'reviewed-archive.tgz'), archiveBytes);
262
+ const snapshot = assertArchiveSnapshot(intent);
263
+ await runner.run([
264
+ 'npm',
265
+ 'install',
266
+ '--prefix',
267
+ input.runtimeDirectory,
268
+ '--omit=dev',
269
+ '--ignore-scripts',
270
+ '--no-audit',
271
+ '--no-fund',
272
+ '--package-lock=false',
273
+ snapshot,
274
+ ], {
275
+ ...bounds,
276
+ maxNewOutputBytes: bounds.maxNewOutputBytes - archiveBytes.length,
277
+ outputRoots: [input.runtimeDirectory],
278
+ }, input.signal);
279
+ const reread = await controller(input, 'runtime:stage');
280
+ assertStageController({ ...content, recordId: digestValue(content) }, reread, input);
281
+ assertArchive(input.archivePath, input.expectedArchiveSha256);
282
+ assertArchiveSnapshot(intent);
283
+ const packageRoot = join(input.runtimeDirectory, 'node_modules', '@aviaratech', 'ai-delivery');
284
+ const plugin = join(packageRoot, 'plugins', 'ai-delivery');
285
+ const admission = buildRuntimeAdmission({
286
+ cliPath: join(packageRoot, 'dist', 'cli.js'),
287
+ mcpLauncherPath: join(plugin, 'dist', 'mcp-launcher.js'),
288
+ pluginManifestPath: join(plugin, '.claude-plugin', 'plugin.json'),
289
+ packageVersion: input.packageVersion,
290
+ sourceArchiveSha256: input.expectedArchiveSha256,
291
+ sourceCommit: input.expectedSourceCommit,
292
+ configuration: reread.configuration,
293
+ });
294
+ if (input.signal?.aborted)
295
+ throw new DeliveryError('Runtime stage cancelled.');
296
+ runner.assertQuiescent();
297
+ const complete = writeStage(input.runtimeDirectory, { ...content, status: 'complete', admission });
298
+ validateRuntimeAdmission(complete.admission, reread.configuration, complete.admission.cliPath);
299
+ return stageResult(complete, reread.reviewRoute, false);
300
+ }
301
+ catch (error) {
302
+ // Completion is a durable unit. Never prune it after a lost write response.
303
+ if (!owned) {
304
+ runner.assertQuiescent();
305
+ const retained = lstatSync(input.runtimeDirectory);
306
+ if (retained.dev !== directory.dev || retained.ino !== directory.ino || retained.isSymbolicLink())
307
+ throw new DeliveryError('Runtime stage cleanup ownership changed.');
308
+ rmSync(input.runtimeDirectory, { recursive: true });
309
+ }
310
+ else {
311
+ runner.assertQuiescent();
312
+ const retained = readStage(input.runtimeDirectory);
313
+ if (retained.stageId !== stageId)
314
+ throw new DeliveryError('Runtime stage cleanup ownership changed.');
315
+ if (retained.status === 'incomplete')
316
+ rmSync(input.runtimeDirectory, { recursive: true });
317
+ else {
318
+ const final = await controller(input, 'runtime:stage');
319
+ assertStageController(retained, final, input);
320
+ assertArchive(intent.archivePath, intent.archiveSha256);
321
+ durability(join(input.runtimeDirectory, 'reviewed-archive.tgz'));
322
+ assertArchiveSnapshot(intent);
323
+ validateRuntimeAdmission(retained.admission, final.configuration, retained.admission.cliPath);
324
+ durability(join(input.runtimeDirectory, 'runtime-stage.json'));
325
+ syncDirectory(dirname(input.runtimeDirectory));
326
+ return stageResult(retained, final.reviewRoute, true);
327
+ }
328
+ }
329
+ throw error;
330
+ }
331
+ });
332
+ }
333
+ export class RuntimeAdmissionCommitUnknownError extends DeliveryError {
334
+ admissionId;
335
+ stageId;
336
+ status = 'commit-status-unknown';
337
+ constructor(admissionId, stageId) {
338
+ super(`Runtime admission commit-status-unknown for ${admissionId}; retry runtime:admit with the same stage ${stageId} to reconcile durability.`);
339
+ this.admissionId = admissionId;
340
+ this.stageId = stageId;
341
+ }
342
+ }
343
+ /** Explicit final binding, with prior-byte compare-and-swap and same-stage ambiguous-commit reconciliation. */
344
+ export async function admitRuntime(input) {
345
+ if (input.authority !== 'runtime:admit')
346
+ throw new DeliveryError('Explicit runtime:admit authority is required.');
347
+ Digest.parse(input.stageId);
348
+ if (input.expectedPriorAdmissionSha256 !== null)
349
+ Digest.parse(input.expectedPriorAdmissionSha256);
350
+ const initial = await controller(input, 'runtime:admit');
351
+ const path = join(gitCommonDir(initial.root), 'ai-delivery', 'runtime-admission.json');
352
+ canonicalPath(path);
353
+ ensurePrivateDirectoryDurably(dirname(path));
354
+ return withLock(path, {
355
+ projectRoot: initial.root,
356
+ timeout: 200,
357
+ operation: async () => {
358
+ const record = readStage(input.runtimeDirectory);
359
+ if (record.stageId !== input.stageId || record.status !== 'complete' || !record.admission)
360
+ throw new DeliveryError('Exact completed runtime stage identity is required.');
361
+ const current = await controller(input, 'runtime:admit');
362
+ assertStageController(record, current, input);
363
+ assertArchive(record.intent.archivePath, record.intent.archiveSha256);
364
+ assertArchiveSnapshot(record.intent);
365
+ validateRuntimeAdmission(record.admission, current.configuration, record.admission.cliPath);
366
+ const desired = Buffer.from(`${JSON.stringify(record.admission, null, 2)}\n`);
367
+ canonicalPath(path);
368
+ const existing = existsSync(path) ? assertPrivateFile(path) : undefined;
369
+ const reconcile = () => {
370
+ canonicalPath(path);
371
+ assertArchiveSnapshot(record.intent);
372
+ validateRuntimeAdmission(record.admission, current.configuration, record.admission.cliPath);
373
+ if (!existsSync(path) || !assertPrivateFile(path).equals(desired))
374
+ throw new DeliveryError('Runtime admission third-party replacement conflict; current bytes preserved.');
375
+ try {
376
+ durability(path);
377
+ }
378
+ catch {
379
+ if (!existsSync(path) || !assertPrivateFile(path).equals(desired))
380
+ throw new DeliveryError('Runtime admission third-party replacement conflict; current bytes preserved.');
381
+ throw new RuntimeAdmissionCommitUnknownError(record.admission.admissionId, record.stageId);
382
+ }
383
+ return { admission: record.admission, reused: true };
384
+ };
385
+ if (existing?.equals(desired))
386
+ return reconcile();
387
+ if ((existing === undefined ? null : digestBytes(existing)) !== input.expectedPriorAdmissionSha256)
388
+ throw new DeliveryError('Runtime admission prior-byte compare-and-swap conflict; current bytes preserved.');
389
+ // Recheck exact staged/source/config/actor bindings immediately before the sole publication write.
390
+ const final = await controller(input, 'runtime:admit');
391
+ assertStageController(record, final, input);
392
+ assertArchive(record.intent.archivePath, record.intent.archiveSha256);
393
+ assertArchiveSnapshot(record.intent);
394
+ validateRuntimeAdmission(record.admission, final.configuration, record.admission.cliPath);
395
+ canonicalPath(path);
396
+ const priorNow = existsSync(path) ? assertPrivateFile(path) : undefined;
397
+ if ((priorNow === undefined ? null : digestBytes(priorNow)) !== input.expectedPriorAdmissionSha256)
398
+ throw new DeliveryError('Runtime admission prior-byte compare-and-swap conflict; current bytes preserved.');
399
+ try {
400
+ writePrivateJsonFileAtomically(path, record.admission);
401
+ }
402
+ catch (error) {
403
+ const after = existsSync(path) ? assertPrivateFile(path) : undefined;
404
+ if (after?.equals(desired))
405
+ return reconcile();
406
+ if ((after === undefined ? null : digestBytes(after)) !== input.expectedPriorAdmissionSha256)
407
+ throw new DeliveryError('Runtime admission third-party replacement conflict; current bytes preserved.');
408
+ throw error;
409
+ }
410
+ reconcile();
411
+ return { admission: record.admission, reused: false };
412
+ },
413
+ });
414
+ }
415
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};