@aviaratech/ai-delivery 0.3.4 → 0.3.6

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 (55) hide show
  1. package/README.md +135 -20
  2. package/dist/agent.d.ts +2 -0
  3. package/dist/agent.js +1 -0
  4. package/dist/agent.js.map +1 -1
  5. package/dist/cli.js +77 -2
  6. package/dist/cli.js.map +1 -1
  7. package/dist/dispatch.js +39 -1
  8. package/dist/dispatch.js.map +1 -1
  9. package/dist/github/client.d.ts +1 -0
  10. package/dist/github/client.js +4 -1
  11. package/dist/github/client.js.map +1 -1
  12. package/dist/github/commandIdentityPolicy.js +3 -0
  13. package/dist/github/commandIdentityPolicy.js.map +1 -1
  14. package/dist/issue.d.ts +1 -0
  15. package/dist/issue.js +24 -10
  16. package/dist/issue.js.map +1 -1
  17. package/dist/lifecycle.test.js +496 -30
  18. package/dist/lifecycle.test.js.map +1 -1
  19. package/dist/mcp/index.js +1 -1
  20. package/dist/mcp/tools.d.ts +63 -0
  21. package/dist/mcp/tools.js +66 -0
  22. package/dist/mcp/tools.js.map +1 -1
  23. package/dist/pr.d.ts +4 -4
  24. package/dist/pr.js +10 -6
  25. package/dist/pr.js.map +1 -1
  26. package/dist/review.test.js +163 -0
  27. package/dist/review.test.js.map +1 -1
  28. package/dist/services/deliveryAdmission.d.ts +13 -2
  29. package/dist/services/deliveryAdmission.js +41 -2
  30. package/dist/services/deliveryAdmission.js.map +1 -1
  31. package/dist/services/worktreeRegistry.d.ts +12 -0
  32. package/dist/services/worktreeRegistry.js +146 -4
  33. package/dist/services/worktreeRegistry.js.map +1 -1
  34. package/dist/setup.d.ts +58 -0
  35. package/dist/setup.js +415 -0
  36. package/dist/setup.js.map +1 -0
  37. package/dist/setup.test.d.ts +1 -0
  38. package/dist/setup.test.js +744 -0
  39. package/dist/setup.test.js.map +1 -0
  40. package/dist/verification.d.ts +37 -0
  41. package/dist/verification.js +214 -15
  42. package/dist/verification.js.map +1 -1
  43. package/dist/worktree.d.ts +3 -0
  44. package/dist/worktree.js +38 -8
  45. package/dist/worktree.js.map +1 -1
  46. package/dist/worktreeTransition.d.ts +173 -0
  47. package/dist/worktreeTransition.js +1012 -0
  48. package/dist/worktreeTransition.js.map +1 -0
  49. package/dist/worktreeTransition.test.d.ts +1 -0
  50. package/dist/worktreeTransition.test.js +1179 -0
  51. package/dist/worktreeTransition.test.js.map +1 -0
  52. package/package.json +1 -1
  53. package/plugins/ai-delivery/.claude-plugin/plugin.json +1 -1
  54. package/plugins/ai-delivery/README.md +1 -1
  55. package/plugins/ai-delivery/skills/worktree-lifecycle/SKILL.md +9 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.test.js","sourceRoot":"","sources":["../src/setup.test.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,38 @@ declare const ResourceSummarySchema: z.ZodObject<{
35
35
  sampleCount: z.ZodNumber;
36
36
  }, z.core.$strict>;
37
37
  export type VerificationResourceSummary = z.infer<typeof ResourceSummarySchema>;
38
+ /** @internal Durable transition evidence must precede changes to the existing writer slot. */
39
+ export interface WorktreeTransitionWriterLeaseInput {
40
+ repoRoot: string;
41
+ worktreePath?: string;
42
+ writerId: string;
43
+ beforeClaim(input: {
44
+ previousBytes: Buffer | undefined;
45
+ owner: {
46
+ pid: number;
47
+ identity: string;
48
+ };
49
+ }): void | Promise<void>;
50
+ recordClaim(bytes: Buffer): void | Promise<void>;
51
+ afterClaim?(bytes: Buffer): void | Promise<void>;
52
+ recordRelease(bytes: Buffer): void | Promise<void>;
53
+ afterRelease?(): void | Promise<void>;
54
+ }
55
+ /** @internal Read-only closure check shared by inspection and the locked transition lease. */
56
+ export declare function assertWorktreeTransitionWriterQuiescent(worktreePath: string, bytes: Buffer | undefined): void;
57
+ /** @internal Hold the existing writer lock while reading a sealed transition; never claim or recover its slot. */
58
+ export declare function withWorktreeTransitionWriterAbsent<T>(repoRoot: string, worktreePath: string, operation: () => Promise<T>): Promise<T>;
59
+ /** @internal Check-only lease for the explicit transition owner; never recovers or signals old commands. */
60
+ export declare function withWorktreeTransitionWriterLease<T>(input: WorktreeTransitionWriterLeaseInput, operation: () => Promise<T>): Promise<T>;
61
+ /** @internal Retained public code is hashed as data; it is never imported or executed. */
62
+ export declare function retainedWorktreeTransitionProducerDigest(distDirectory: string): string;
63
+ /** @internal Preserve the same dependency manifests that participate in the existing producer digest. */
64
+ export declare function retainedWorktreeTransitionDependencyManifests(distDirectory: string): {
65
+ source: string;
66
+ digest: string;
67
+ }[];
68
+ /** @internal Original manifests validate as history and cannot authorize current verification. */
69
+ export declare function readWorktreeTransitionRun(bytes: Buffer): VerificationRun;
38
70
  export declare function verifyIssue(input: {
39
71
  personalAuth?: boolean;
40
72
  admittedResourceClasses?: readonly string[];
@@ -54,4 +86,9 @@ export declare function createIssuePhaseEvidence(input: {
54
86
  export declare function loadVerifiedRun(repoRoot: string, issueNumber: number): VerificationRun;
55
87
  /** Recover an exact merged run after worktree removal interrupted terminal recording. */
56
88
  export declare function loadRemovedMergedRun(primaryRepoRoot: string, issueNumber: number): VerificationRun;
89
+ /** @internal Runtime setup shares the existing writer, ownership handshake and bounded command runner. */
90
+ export declare function withRuntimeSetupWriter<T>(root: string, operation: (runner: {
91
+ assertQuiescent(): void;
92
+ run(argv: readonly string[], bounds: VerificationResourceBounds, signal?: AbortSignal): Promise<Buffer>;
93
+ }) => Promise<T>): Promise<T>;
57
94
  export {};
@@ -1,7 +1,7 @@
1
1
  import { spawn, spawnSync } from 'node:child_process';
2
2
  import { randomUUID } from 'node:crypto';
3
3
  import { createRequire } from 'node:module';
4
- import { existsSync, unlinkSync, lstatSync, readFileSync, readdirSync, statfsSync } from 'node:fs';
4
+ import { closeSync, existsSync, fsyncSync, openSync, unlinkSync, lstatSync, readFileSync, readdirSync, realpathSync, statfsSync, } from 'node:fs';
5
5
  import { basename, dirname, join, resolve, sep } from 'node:path';
6
6
  import { fileURLToPath } from 'node:url';
7
7
  import { z } from 'zod';
@@ -155,7 +155,18 @@ function scanOutputRoots(roots) {
155
155
  throw error;
156
156
  }
157
157
  if (metadata.isSymbolicLink()) {
158
- throw new DeliveryError('Filesystem output observation encountered a symbolic link.');
158
+ let target;
159
+ try {
160
+ target = realpathSync(path);
161
+ }
162
+ catch {
163
+ throw new DeliveryError('Filesystem output observation encountered a broken or cyclic symbolic link.');
164
+ }
165
+ if (!roots.some((root) => target === root || target.startsWith(`${root}${sep}`))) {
166
+ throw new DeliveryError('Filesystem output observation encountered an escaping symbolic link.');
167
+ }
168
+ // Observe physical targets through their declared root only, never traverse aliases.
169
+ return;
159
170
  }
160
171
  if (metadata.isDirectory()) {
161
172
  for (const name of readdirSync(path))
@@ -169,8 +180,11 @@ function scanOutputRoots(roots) {
169
180
  if (files.size > 1_000_000)
170
181
  throw new DeliveryError('Filesystem output observation exceeded its file limit.');
171
182
  };
172
- for (const root of roots)
183
+ for (const root of roots) {
184
+ if (existsSync(root) && realpathSync(root) !== root)
185
+ throw new DeliveryError('Filesystem output roots must not be symbolic links.');
173
186
  visit(root);
187
+ }
174
188
  return files;
175
189
  }
176
190
  function outputBaseline(repoRoot, common, classificationReceiptId, bounds) {
@@ -478,9 +492,30 @@ const WriterStateSchema = z
478
492
  if (stateId !== digestValue(content))
479
493
  ctx.addIssue({ code: 'custom', message: 'Writer state is corrupt.' });
480
494
  });
481
- async function withVerificationWriter(root, operation) {
495
+ /** @internal Read-only closure check shared by inspection and the locked transition lease. */
496
+ export function assertWorktreeTransitionWriterQuiescent(worktreePath, bytes) {
497
+ if (bytes === undefined)
498
+ return;
499
+ const previous = WriterStateSchema.parse(JSON.parse(bytes.toString('utf8')));
500
+ if (previous.worktreeDigest !== worktreeDigest(worktreePath))
501
+ throw new DeliveryError('Verification writer belongs to another worktree.');
502
+ const snapshot = processSnapshot();
503
+ const owner = snapshot.get(previous.owner.pid);
504
+ if (owner?.identity === previous.owner.identity && !owner.status.startsWith('Z'))
505
+ throw new DeliveryError('A live verification writer still owns this worktree.');
506
+ if (previous.command.phase === 'starting')
507
+ throw new DeliveryError('Interrupted writer has unknown command ownership; reconcile before retrying.');
508
+ if (previous.command.phase === 'running') {
509
+ const identities = [previous.command.root, ...previous.command.tracked];
510
+ const groups = new Set([previous.command.root.pid, ...previous.command.tracked.map((member) => member.pgid)]);
511
+ if (identities.some((member) => snapshot.has(member.pid)) ||
512
+ [...snapshot.values()].some((member) => groups.has(member.pgid)))
513
+ throw new DeliveryError('Transition requires identity-bound command and process-group absence.');
514
+ }
515
+ }
516
+ async function withVerificationWriter(root, operation, transition, commonDirectory) {
482
517
  const digest = worktreeDigest(root);
483
- const path = join(gitCommonDir(root), 'ai-delivery', 'writers@1', `${digest.slice(7)}.json`);
518
+ const path = join(commonDirectory ?? gitCommonDir(root), 'ai-delivery', 'writers@1', `${digest.slice(7)}.json`);
484
519
  ensurePrivateDirectoryDurably(dirname(path));
485
520
  return withLock(path, {
486
521
  projectRoot: root,
@@ -490,8 +525,23 @@ async function withVerificationWriter(root, operation) {
490
525
  const owner = snapshot.get(process.pid);
491
526
  if (owner === undefined || owner.status.startsWith('Z'))
492
527
  throw new DeliveryError('Verification writer identity is unknown.');
493
- if (existsSync(path)) {
494
- const previous = WriterStateSchema.parse(JSON.parse(assertPrivateFile(path).toString('utf8')));
528
+ let previousBytes;
529
+ if (transition) {
530
+ try {
531
+ lstatSync(path);
532
+ previousBytes = assertPrivateFile(path);
533
+ }
534
+ catch (error) {
535
+ if (error.code !== 'ENOENT')
536
+ throw error;
537
+ }
538
+ }
539
+ else if (existsSync(path))
540
+ previousBytes = assertPrivateFile(path);
541
+ if (transition)
542
+ assertWorktreeTransitionWriterQuiescent(root, previousBytes);
543
+ if (previousBytes !== undefined && !transition) {
544
+ const previous = WriterStateSchema.parse(JSON.parse(previousBytes.toString('utf8')));
495
545
  if (previous.worktreeDigest !== digest)
496
546
  throw new DeliveryError('Verification writer belongs to another worktree.');
497
547
  const priorOwner = snapshot.get(previous.owner.pid);
@@ -519,9 +569,15 @@ async function withVerificationWriter(root, operation) {
519
569
  });
520
570
  }
521
571
  }
572
+ if (transition) {
573
+ await transition.beforeClaim({
574
+ previousBytes: previousBytes === undefined ? undefined : Buffer.from(previousBytes),
575
+ owner: { pid: owner.pid, identity: owner.identity },
576
+ });
577
+ }
522
578
  let state = {
523
579
  schemaVersion: 'ai-delivery.verification-writer@1',
524
- writerId: randomUUID(),
580
+ writerId: transition?.writerId ?? randomUUID(),
525
581
  worktreeDigest: digest,
526
582
  owner: { pid: owner.pid, identity: owner.identity },
527
583
  command: { phase: 'idle' },
@@ -530,6 +586,22 @@ async function withVerificationWriter(root, operation) {
530
586
  state = { ...state, command };
531
587
  writePrivateJsonFileAtomically(path, { ...state, stateId: digestValue(state) });
532
588
  };
589
+ if (transition) {
590
+ const bytes = Buffer.from(`${JSON.stringify({ ...state, stateId: digestValue(state) }, null, 2)}\n`);
591
+ await transition.recordClaim(Buffer.from(bytes));
592
+ let actual;
593
+ try {
594
+ lstatSync(path);
595
+ actual = assertPrivateFile(path);
596
+ }
597
+ catch (error) {
598
+ if (error.code !== 'ENOENT')
599
+ throw error;
600
+ }
601
+ if ((actual === undefined) !== (previousBytes === undefined) ||
602
+ (actual !== undefined && previousBytes !== undefined && !actual.equals(previousBytes)))
603
+ throw new DeliveryError('Writer changed after transition intent preservation.');
604
+ }
533
605
  persist({ phase: 'idle' });
534
606
  const writer = {
535
607
  starting: () => persist({ phase: 'starting' }),
@@ -543,23 +615,86 @@ async function withVerificationWriter(root, operation) {
543
615
  });
544
616
  },
545
617
  idle: () => persist({ phase: 'idle' }),
618
+ assertQuiescent: () => {
619
+ const current = WriterStateSchema.parse(JSON.parse(assertPrivateFile(path).toString('utf8')));
620
+ if (current.writerId !== state.writerId || current.command.phase !== 'idle')
621
+ throw new DeliveryError('Verification writer command quiescence is not confirmed.');
622
+ },
546
623
  };
547
- const releaseWriter = () => {
548
- const current = WriterStateSchema.parse(JSON.parse(assertPrivateFile(path).toString('utf8')));
624
+ const releaseWriter = async () => {
625
+ const bytes = assertPrivateFile(path);
626
+ const current = WriterStateSchema.parse(JSON.parse(bytes.toString('utf8')));
549
627
  if (current.writerId !== state.writerId)
550
628
  throw new DeliveryError('Verification writer ownership changed.');
551
- if (current.command.phase === 'idle')
629
+ if (current.command.phase === 'idle') {
630
+ if (transition) {
631
+ await transition.recordRelease(Buffer.from(bytes));
632
+ if (!assertPrivateFile(path).equals(bytes))
633
+ throw new DeliveryError('Writer changed before recorded release.');
634
+ }
552
635
  unlinkSync(path);
636
+ if (transition) {
637
+ const descriptor = openSync(dirname(path), 'r');
638
+ try {
639
+ fsyncSync(descriptor);
640
+ }
641
+ finally {
642
+ closeSync(descriptor);
643
+ }
644
+ try {
645
+ lstatSync(path);
646
+ }
647
+ catch (error) {
648
+ if (error.code !== 'ENOENT')
649
+ throw error;
650
+ await transition.afterRelease?.();
651
+ return;
652
+ }
653
+ throw new DeliveryError('Writer absence is not confirmed after recorded release.');
654
+ }
655
+ }
553
656
  };
554
657
  try {
658
+ await transition?.afterClaim?.(Buffer.from(assertPrivateFile(path)));
555
659
  return await operation(writer);
556
660
  }
557
661
  finally {
558
- releaseWriter();
662
+ await releaseWriter();
559
663
  }
560
664
  },
561
665
  });
562
666
  }
667
+ /** @internal Hold the existing writer lock while reading a sealed transition; never claim or recover its slot. */
668
+ export async function withWorktreeTransitionWriterAbsent(repoRoot, worktreePath, operation) {
669
+ const path = join(gitCommonDir(repoRoot), 'ai-delivery', 'writers@1', `${worktreeDigest(worktreePath).slice(7)}.json`);
670
+ return withLock(path, {
671
+ projectRoot: repoRoot,
672
+ timeout: 200,
673
+ operation: async () => {
674
+ try {
675
+ lstatSync(path);
676
+ }
677
+ catch (error) {
678
+ if (error.code !== 'ENOENT')
679
+ throw error;
680
+ return operation();
681
+ }
682
+ throw new DeliveryError('Sealed transition writer absence postcondition drifted.');
683
+ },
684
+ });
685
+ }
686
+ /** @internal Check-only lease for the explicit transition owner; never recovers or signals old commands. */
687
+ export async function withWorktreeTransitionWriterLease(input, operation) {
688
+ z.uuid().parse(input.writerId);
689
+ const repository = gitRoot(input.repoRoot);
690
+ const subject = input.worktreePath === undefined ? repository : resolve(input.worktreePath);
691
+ return withVerificationWriter(subject, async (writer) => {
692
+ writer.assertQuiescent();
693
+ const result = await operation();
694
+ writer.assertQuiescent();
695
+ return result;
696
+ }, input, gitCommonDir(repository));
697
+ }
563
698
  function primaryRoot(worktreeRoot) {
564
699
  const common = gitCommonDir(worktreeRoot);
565
700
  if (basename(common) !== '.git')
@@ -578,8 +713,7 @@ function assertRegisteredIssue(worktreeRoot, issueNumber, allowMerged = false) {
578
713
  function worktreeDigest(root) {
579
714
  return digestValue(resolve(root));
580
715
  }
581
- function producerDigest() {
582
- const root = dirname(fileURLToPath(import.meta.url));
716
+ function producerContent(root) {
583
717
  const code = [];
584
718
  const collect = (directory) => {
585
719
  for (const entry of readdirSync(directory, { withFileTypes: true }).sort((a, b) => a.name.localeCompare(b.name))) {
@@ -627,7 +761,22 @@ function producerDigest() {
627
761
  }
628
762
  };
629
763
  collectDependencies(join(dirname(root), 'package.json'));
630
- return digestValue({ code, dependencies: [...dependencies].sort(([a], [b]) => a.localeCompare(b)) });
764
+ return { code, dependencies: [...dependencies].sort(([a], [b]) => a.localeCompare(b)) };
765
+ }
766
+ function producerDigest(root = dirname(fileURLToPath(import.meta.url))) {
767
+ return digestValue(producerContent(root));
768
+ }
769
+ /** @internal Retained public code is hashed as data; it is never imported or executed. */
770
+ export function retainedWorktreeTransitionProducerDigest(distDirectory) {
771
+ return producerDigest(realpathSync(distDirectory));
772
+ }
773
+ /** @internal Preserve the same dependency manifests that participate in the existing producer digest. */
774
+ export function retainedWorktreeTransitionDependencyManifests(distDirectory) {
775
+ return producerContent(realpathSync(distDirectory)).dependencies.map(([source, digest]) => ({ source, digest }));
776
+ }
777
+ /** @internal Original manifests validate as history and cannot authorize current verification. */
778
+ export function readWorktreeTransitionRun(bytes) {
779
+ return parseRun(JSON.parse(bytes.toString('utf8')));
631
780
  }
632
781
  function manifestPath(common, headSha, root) {
633
782
  return root === undefined
@@ -1268,4 +1417,54 @@ export function loadRemovedMergedRun(primaryRepoRoot, issueNumber) {
1268
1417
  }
1269
1418
  return run;
1270
1419
  }
1420
+ /** @internal Runtime setup shares the existing writer, ownership handshake and bounded command runner. */
1421
+ export async function withRuntimeSetupWriter(root, operation) {
1422
+ return withVerificationWriter(root, async (writer) => operation({
1423
+ assertQuiescent: () => writer.assertQuiescent(),
1424
+ run: async (argv, bounds, signal) => {
1425
+ assertResourceBounds(bounds);
1426
+ const roots = bounds.outputRoots?.map((path) => resolve(root, path)).sort();
1427
+ if (roots !== undefined) {
1428
+ for (let i = 1; i < roots.length; i++)
1429
+ if (roots[i] === roots[i - 1] || roots[i].startsWith(`${roots[i - 1]}${sep}`))
1430
+ throw new DeliveryError('Filesystem output roots must not overlap.');
1431
+ }
1432
+ const files = roots === undefined ? undefined : scanOutputRoots(roots);
1433
+ const baseline = roots === undefined || files === undefined
1434
+ ? undefined
1435
+ : {
1436
+ roots,
1437
+ files,
1438
+ baselineId: digestValue([...files]),
1439
+ };
1440
+ assertDiskHeadroom(root, bounds, baseline);
1441
+ const started = Date.now();
1442
+ const output = await runStageCommand(root, argv, signal, (capturedOutputBytes, sample) => reportVerificationProgress({
1443
+ state: 'running',
1444
+ stageId: 'runtime-setup',
1445
+ completedStages: 0,
1446
+ reusedStages: 0,
1447
+ remainingStages: 1,
1448
+ elapsedMs: Date.now() - started,
1449
+ capturedOutputBytes,
1450
+ ...(sample === undefined
1451
+ ? {}
1452
+ : {
1453
+ sampledAggregateRssBytes: sample.aggregateRssBytes,
1454
+ sampledFreeDiskBytes: sample.freeDiskBytes,
1455
+ sampledNewOutputBytes: sample.newOutputBytes,
1456
+ }),
1457
+ }), bounds, baseline, undefined, writer);
1458
+ reportVerificationProgress({
1459
+ state: 'completed',
1460
+ stageId: 'runtime-setup',
1461
+ completedStages: 1,
1462
+ reusedStages: 0,
1463
+ remainingStages: 0,
1464
+ elapsedMs: Date.now() - started,
1465
+ });
1466
+ return output;
1467
+ },
1468
+ }));
1469
+ }
1271
1470
  //# sourceMappingURL=verification.js.map