@aviaratech/ai-delivery 0.3.23 → 0.3.25

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 (143) hide show
  1. package/CONTRIBUTING.md +166 -16
  2. package/README.md +75 -446
  3. package/dist/agent.d.ts +5 -11
  4. package/dist/agent.js +4 -8
  5. package/dist/agent.js.map +1 -1
  6. package/dist/agentReadiness.test.d.ts +1 -0
  7. package/dist/agentReadiness.test.js +139 -0
  8. package/dist/agentReadiness.test.js.map +1 -0
  9. package/dist/cli.js +27 -111
  10. package/dist/cli.js.map +1 -1
  11. package/dist/config/deliveryConfig.d.ts +44 -55
  12. package/dist/config/deliveryConfig.js +85 -88
  13. package/dist/config/deliveryConfig.js.map +1 -1
  14. package/dist/config/deliveryConfig.test.js +13 -5
  15. package/dist/config/deliveryConfig.test.js.map +1 -1
  16. package/dist/contributorChecks.test.d.ts +1 -0
  17. package/dist/contributorChecks.test.js +1010 -0
  18. package/dist/contributorChecks.test.js.map +1 -0
  19. package/dist/currentConsumer.test.d.ts +1 -0
  20. package/dist/currentConsumer.test.js +832 -0
  21. package/dist/currentConsumer.test.js.map +1 -0
  22. package/dist/delivery/common.js +7 -2
  23. package/dist/delivery/common.js.map +1 -1
  24. package/dist/delivery/delivery.test.js +2 -3
  25. package/dist/delivery/delivery.test.js.map +1 -1
  26. package/dist/delivery/index.d.ts +0 -6
  27. package/dist/delivery/index.js +0 -3
  28. package/dist/delivery/index.js.map +1 -1
  29. package/dist/delivery/legacy.d.ts +8 -0
  30. package/dist/delivery/legacy.js +5 -0
  31. package/dist/delivery/legacy.js.map +1 -0
  32. package/dist/delivery/policy.js +2 -13
  33. package/dist/delivery/policy.js.map +1 -1
  34. package/dist/dependencyCompatibility.test.d.ts +1 -0
  35. package/dist/dependencyCompatibility.test.js +175 -0
  36. package/dist/dependencyCompatibility.test.js.map +1 -0
  37. package/dist/directoryIndependent.test.d.ts +1 -0
  38. package/dist/directoryIndependent.test.js +352 -0
  39. package/dist/directoryIndependent.test.js.map +1 -0
  40. package/dist/dispatch.d.ts +29 -3
  41. package/dist/dispatch.js +166 -457
  42. package/dist/dispatch.js.map +1 -1
  43. package/dist/genericCompatibility.test.js +0 -35
  44. package/dist/genericCompatibility.test.js.map +1 -1
  45. package/dist/git.js +10 -3
  46. package/dist/git.js.map +1 -1
  47. package/dist/gitProcess.d.ts +6 -0
  48. package/dist/gitProcess.js +56 -0
  49. package/dist/gitProcess.js.map +1 -0
  50. package/dist/github/discovery.d.ts +1 -0
  51. package/dist/github/discovery.js +1 -1
  52. package/dist/github/discovery.js.map +1 -1
  53. package/dist/github/discovery.test.js +25 -20
  54. package/dist/github/discovery.test.js.map +1 -1
  55. package/dist/github/nativeIssueMetadata.d.ts +2 -2
  56. package/dist/github/nativeIssueMetadata.js.map +1 -1
  57. package/dist/github/projectDelivery.d.ts +1 -1
  58. package/dist/github/projectDelivery.js.map +1 -1
  59. package/dist/github/repo.d.ts +7 -1
  60. package/dist/github/repo.js +58 -2
  61. package/dist/github/repo.js.map +1 -1
  62. package/dist/issue.d.ts +18 -6
  63. package/dist/issue.js +136 -319
  64. package/dist/issue.js.map +1 -1
  65. package/dist/issueJournal.d.ts +1 -1
  66. package/dist/issueJournal.test.js +88 -6
  67. package/dist/issueJournal.test.js.map +1 -1
  68. package/dist/lifecycle.test.js +40 -7371
  69. package/dist/lifecycle.test.js.map +1 -1
  70. package/dist/logger.js +4 -4
  71. package/dist/logger.js.map +1 -1
  72. package/dist/mcp/tools.d.ts +32 -42
  73. package/dist/mcp/tools.js +51 -42
  74. package/dist/mcp/tools.js.map +1 -1
  75. package/dist/pluginInstaller.d.ts +1 -1
  76. package/dist/pluginInstaller.js +8 -2
  77. package/dist/pluginInstaller.js.map +1 -1
  78. package/dist/pluginInstaller.test.js +213 -2
  79. package/dist/pluginInstaller.test.js.map +1 -1
  80. package/dist/pluginPackaging.test.js +225 -2
  81. package/dist/pluginPackaging.test.js.map +1 -1
  82. package/dist/pr.d.ts +73 -114
  83. package/dist/pr.js +837 -1085
  84. package/dist/pr.js.map +1 -1
  85. package/dist/pr.test.js +453 -236
  86. package/dist/pr.test.js.map +1 -1
  87. package/dist/prAssociation.test.d.ts +1 -0
  88. package/dist/prAssociation.test.js +1336 -0
  89. package/dist/prAssociation.test.js.map +1 -0
  90. package/dist/prDispatch.test.d.ts +1 -0
  91. package/dist/prDispatch.test.js +96 -0
  92. package/dist/prDispatch.test.js.map +1 -0
  93. package/dist/releaseReconciliation.test.d.ts +1 -0
  94. package/dist/releaseReconciliation.test.js +318 -0
  95. package/dist/releaseReconciliation.test.js.map +1 -0
  96. package/dist/releaseWorkflow.test.d.ts +1 -0
  97. package/dist/releaseWorkflow.test.js +447 -0
  98. package/dist/releaseWorkflow.test.js.map +1 -0
  99. package/dist/review.d.ts +37 -7
  100. package/dist/review.js +106 -45
  101. package/dist/review.js.map +1 -1
  102. package/dist/review.test.js +30 -71
  103. package/dist/review.test.js.map +1 -1
  104. package/dist/services/agentReadinessService.d.ts +1 -1
  105. package/dist/services/agentReadinessService.js +4 -1
  106. package/dist/services/agentReadinessService.js.map +1 -1
  107. package/dist/services/deliveryAdmission.d.ts +4 -4
  108. package/dist/services/deliveryAdmission.js.map +1 -1
  109. package/dist/setup.test.js +10 -5
  110. package/dist/setup.test.js.map +1 -1
  111. package/dist/stagedChecks.test.d.ts +1 -0
  112. package/dist/stagedChecks.test.js +228 -0
  113. package/dist/stagedChecks.test.js.map +1 -0
  114. package/dist/start.test.d.ts +1 -0
  115. package/dist/start.test.js +72 -0
  116. package/dist/start.test.js.map +1 -0
  117. package/dist/stdoutRegression.test.d.ts +1 -0
  118. package/dist/stdoutRegression.test.js +326 -0
  119. package/dist/stdoutRegression.test.js.map +1 -0
  120. package/dist/verification.d.ts +1 -27
  121. package/dist/verification.js +5 -1332
  122. package/dist/verification.js.map +1 -1
  123. package/dist/worktree.d.ts +1 -31
  124. package/dist/worktree.js +5 -200
  125. package/dist/worktree.js.map +1 -1
  126. package/dist/worktreeTransition.d.ts +1 -1
  127. package/dist/worktreeTransition.js +10 -5
  128. package/dist/worktreeTransition.js.map +1 -1
  129. package/dist/worktreeTransition.test.js +2 -3
  130. package/dist/worktreeTransition.test.js.map +1 -1
  131. package/package.json +9 -6
  132. package/plugins/ai-delivery/.claude-plugin/plugin.json +2 -2
  133. package/plugins/ai-delivery/README.md +3 -3
  134. package/plugins/ai-delivery/plugin.json +1 -1
  135. package/plugins/ai-delivery/runtime/dist/THIRD-PARTY-NOTICES.md +1 -1
  136. package/plugins/ai-delivery/runtime/dist/cli.js +50 -59
  137. package/plugins/ai-delivery/runtime/package.json +1 -1
  138. package/plugins/ai-delivery/skills/intake-create/SKILL.md +1 -1
  139. package/plugins/ai-delivery/skills/pr-handoff/SKILL.md +14 -21
  140. package/plugins/ai-delivery/skills/worktree-lifecycle/SKILL.md +12 -23
  141. package/dist/services/deliveryRecordService.d.ts +0 -47
  142. package/dist/services/deliveryRecordService.js +0 -199
  143. package/dist/services/deliveryRecordService.js.map +0 -1
@@ -1,9 +1,9 @@
1
1
  import assert from 'node:assert/strict';
2
2
  import { execFileSync } from 'node:child_process';
3
- import { cpSync, existsSync, mkdtempSync, readFileSync, realpathSync, rmSync, writeFileSync } from 'node:fs';
3
+ import { cpSync, existsSync, mkdirSync, mkdtempSync, readFileSync, realpathSync, rmSync, writeFileSync } from 'node:fs';
4
4
  import { tmpdir } from 'node:os';
5
5
  import { join } from 'node:path';
6
- import { fileURLToPath } from 'node:url';
6
+ import { fileURLToPath, pathToFileURL } from 'node:url';
7
7
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
8
8
  import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
9
9
  import { test } from 'vitest';
@@ -11,8 +11,231 @@ import pkg from '../package.json' with { type: 'json' };
11
11
  import { AI_DELIVERY_MCP_TOOLS } from './mcp/tools.js';
12
12
  import { buildRuntimeAdmission, validateRuntimeAdmission } from './services/deliveryAdmission.js';
13
13
  import { retainedWorktreeTransitionProducerDigest } from './verification.js';
14
+ import { syntheticDiscoveryConfig } from './fixtures/discovery.js';
14
15
  const packageRoot = fileURLToPath(new URL('../', import.meta.url));
15
16
  const pluginRoot = join(packageRoot, 'plugins', 'ai-delivery');
17
+ test('README and delivery skill CLI examples name supported commands and required options', () => {
18
+ const cli = readFileSync(join(packageRoot, 'src', 'cli.ts'), 'utf8');
19
+ const declarations = [...cli.matchAll(/\.command\('([^']+)'\)/gu)];
20
+ const required = new Map(declarations.map((match) => {
21
+ const next = cli.indexOf('.command(', match.index + match[0].length);
22
+ return [
23
+ match[1],
24
+ [...cli.slice(match.index, next < 0 ? undefined : next).matchAll(/\.requiredOption\('--([a-z0-9-]+)/gu)].map((option) => `--${option[1]}`),
25
+ ];
26
+ }));
27
+ const globals = new Set(['--repo', '--repo-root', '--identity']);
28
+ for (const path of [
29
+ 'README.md',
30
+ 'plugins/ai-delivery/skills/worktree-lifecycle/SKILL.md',
31
+ 'plugins/ai-delivery/skills/pr-handoff/SKILL.md',
32
+ ]) {
33
+ const source = readFileSync(join(packageRoot, path), 'utf8').replace(/\\\r?\n\s*/gu, ' ');
34
+ for (const match of source.matchAll(/^ai-delivery\s+(.+)$/gmu)) {
35
+ const words = match[1].split(/\s+/u);
36
+ let index = 0;
37
+ while (globals.has(words[index] ?? ''))
38
+ index += 2;
39
+ const command = words[index];
40
+ const subcommand = command === 'plugin' ? words[index + 1] : undefined;
41
+ const help = execFileSync(process.execPath, [join(packageRoot, 'dist', 'cli.js'), command, ...(subcommand === undefined ? [] : [subcommand]), '--help'], { encoding: 'utf8', maxBuffer: 65536 });
42
+ for (const flag of required.get(command) ?? [])
43
+ assert.ok(words.includes(flag), `${path}: ${command} requires ${flag}`);
44
+ for (const flag of words.filter((word) => word.startsWith('--')))
45
+ assert.ok(globals.has(flag) || help.includes(flag), `${path}: ${command} does not support ${flag}`);
46
+ }
47
+ }
48
+ });
49
+ for (const launchCheckout of [false, true]) {
50
+ test(`the ${launchCheckout ? 'bundled' : 'packed'} launcher creates, updates and journals repository B from ${launchCheckout ? 'checkout A' : 'a non-Git directory'} without an identity environment`, async () => {
51
+ const directory = realpathSync(mkdtempSync(join(tmpdir(), 'delivery-launch-routing-')));
52
+ let selectedPluginRoot = pluginRoot;
53
+ let discoveryFixture = new URL('./fixtures/discovery.js', import.meta.url).href;
54
+ if (!launchCheckout) {
55
+ try {
56
+ const packed = JSON.parse(execFileSync('npm', ['pack', '--ignore-scripts', '--json', '--pack-destination', directory], {
57
+ cwd: packageRoot,
58
+ encoding: 'utf8',
59
+ maxBuffer: 1024 * 1024,
60
+ env: {
61
+ PATH: process.env.PATH ?? '',
62
+ TMPDIR: tmpdir(),
63
+ HOME: directory,
64
+ npm_config_cache: join(directory, 'npm-cache'),
65
+ },
66
+ }));
67
+ assert.equal(packed.length, 1);
68
+ const unpacked = join(directory, 'unpacked');
69
+ mkdirSync(unpacked);
70
+ execFileSync('tar', ['-xzf', join(directory, packed[0].filename), '-C', unpacked]);
71
+ selectedPluginRoot = join(directory, 'plugin-cache');
72
+ // Detach the packed native plugin so the launcher uses its bundled runtime,
73
+ // rather than the package-local CLI whose npm dependencies are not installed here.
74
+ cpSync(join(unpacked, 'package', 'plugins', 'ai-delivery'), selectedPluginRoot, { recursive: true });
75
+ discoveryFixture = pathToFileURL(join(unpacked, 'package', 'dist', 'fixtures', 'discovery.js')).href;
76
+ assert.equal(existsSync(join(selectedPluginRoot, 'runtime', 'dist', 'cli.js')), true);
77
+ }
78
+ catch (error) {
79
+ rmSync(directory, { recursive: true, force: true });
80
+ throw error;
81
+ }
82
+ }
83
+ if (launchCheckout) {
84
+ execFileSync('git', ['init', '-q', directory]);
85
+ execFileSync('git', ['remote', 'add', 'origin', 'https://github.com/example/a.git'], { cwd: directory });
86
+ }
87
+ const preload = join(directory, 'mock-github.mjs');
88
+ const calls = join(directory, 'requests.json');
89
+ const settings = join(directory, 'user.json');
90
+ writeFileSync(settings, JSON.stringify({
91
+ schemaVersion: 'ai-delivery.user@1',
92
+ roles: {
93
+ author: { authSource: 'personal', identity: 'operator', credentialEnv: { token: 'SYNTHETIC_TOKEN' } },
94
+ reviewer: {
95
+ identity: 'reviewer',
96
+ credentialEnv: { appId: 'REVIEW_APP', installationId: 'REVIEW_INSTALL', privateKeyPath: 'REVIEW_KEY' },
97
+ },
98
+ },
99
+ project: 1,
100
+ checkoutRoots: [],
101
+ pointsField: 'Estimate',
102
+ priorityField: 'Urgency',
103
+ statusField: 'Flow',
104
+ statuses: syntheticDiscoveryConfig.native.project.statuses,
105
+ }));
106
+ writeFileSync(preload, `
107
+ import {writeFileSync} from 'node:fs';
108
+ import {syntheticDiscoveryClients} from ${JSON.stringify(discoveryFixture)};
109
+ const configuration=${JSON.stringify(syntheticDiscoveryConfig)};
110
+ const requests=[];
111
+ const comments=[];
112
+ let issue={id:117,number:17,node_id:'ISSUE17',title:'Widget',body:'',state:'open',labels:[],html_url:'https://github.com/example/b/issues/17'};
113
+ const page=nodes=>({nodes,pageInfo:{hasNextPage:false,endCursor:null}});
114
+ globalThis.fetch=async(url,init)=>{
115
+ const path=new URL(String(url)).pathname;const method=init?.method??'GET';
116
+ requests.push({path,method});writeFileSync(${JSON.stringify(calls)},JSON.stringify(requests));
117
+ const json=init?.body?JSON.parse(init.body):{};
118
+ let data;
119
+ if(path==='/graphql'){
120
+ const query=json.query;
121
+ if(query.includes('ProjectDeliveryItems'))data={organization:{projectV2:{items:page([{id:'ITEM17',isArchived:false,content:{id:'ISSUE17'},fieldValueByName:{name:'Queued',optionId:'STATUS-0'}}])}}};
122
+ else if(query.includes('blockedBy('))data={repository:{issue:{parent:null,blockedBy:page([])}}};
123
+ else data=await syntheticDiscoveryClients({...configuration,repository:'example/'+(json.variables?.repo??'b')}).graphql(query,json.variables);
124
+ return new Response(JSON.stringify({data}),{status:200,headers:{'content-type':'application/json'}});
125
+ }
126
+ if(path==='/user')data={id:1,login:'operator'};
127
+ else if(path.endsWith('/issues/17/comments')){
128
+ if(method==='POST'){
129
+ const id=91+comments.length;
130
+ data={id,body:json.body,html_url:'https://github.com/example/b/issues/17#issuecomment-'+id,issue_url:'https://api.github.com/repos/example/b/issues/17',user:{login:'operator'}};
131
+ comments.push(data);
132
+ }else data=comments;
133
+ }
134
+ else if(path.includes('/issues/comments/'))data=comments.find(comment=>comment.id===Number(path.split('/').at(-1)));
135
+ else if(path.endsWith('/labels'))data=[{name:'enhancement'},{name:'bug'}];
136
+ else if(path.endsWith('/issue-field-values'))data=[];
137
+ else if(path.endsWith('/issues')&&method==='POST'){issue={...issue,...json};data=issue;}
138
+ else if(path.endsWith('/issues/17')){if(method==='PATCH')issue={...issue,...json};data=issue;}
139
+ else throw new Error('Unexpected synthetic request '+method+' '+path);
140
+ return new Response(JSON.stringify(data),{status:200,headers:{'content-type':'application/json'}});
141
+ };
142
+ `);
143
+ const transport = new StdioClientTransport({
144
+ command: process.execPath,
145
+ args: [join(selectedPluginRoot, 'dist', 'mcp-launcher.js')],
146
+ cwd: directory,
147
+ env: {
148
+ PATH: process.env.PATH ?? '',
149
+ TMPDIR: tmpdir(),
150
+ HOME: directory,
151
+ AI_DELIVERY_CONFIG: settings,
152
+ SYNTHETIC_TOKEN: 'inert-personal-token',
153
+ NODE_OPTIONS: `--v8-pool-size=1 --import=${preload}`,
154
+ },
155
+ stderr: 'pipe',
156
+ });
157
+ const client = new Client({ name: 'actual-launch-routing', version: '1' });
158
+ try {
159
+ await client.connect(transport, { timeout: 30000 });
160
+ const created = await client.callTool({
161
+ name: 'issue_create',
162
+ arguments: { repo: 'example/b', title: 'Widget', labels: ['enhancement'] },
163
+ });
164
+ assert.equal(created.isError, undefined, JSON.stringify(created));
165
+ const updated = await client.callTool({
166
+ name: 'issue_update',
167
+ arguments: { repo: 'example/b', issueNumber: 17, labels: ['bug'] },
168
+ });
169
+ assert.equal(updated.isError, undefined, JSON.stringify(updated));
170
+ const common = {
171
+ repo: 'example/b',
172
+ issueNumber: 17,
173
+ summary: 'Packed journal validation works.',
174
+ status: 'In progress',
175
+ nextStep: 'Independent review',
176
+ nextDate: '2026-10-09',
177
+ keyNumbers: ['5 journal kinds'],
178
+ evidence: ['https://github.com/example/b/issues/17'],
179
+ };
180
+ const journals = [
181
+ { ...common, kind: 'start', outcome: 'Deliver strict validation' },
182
+ { ...common, kind: 'progress', done: ['Added regression'], decisionNeeded: 'None' },
183
+ { ...common, kind: 'decision', decision: 'Keep variants strict', rationale: 'Preserve the contract' },
184
+ { ...common, kind: 'blocker', blocker: 'Review pending', resolution: 'Independent acceptance' },
185
+ {
186
+ ...common,
187
+ kind: 'closeout',
188
+ acceptance: [{ criterion: 'Explicit repo works', evidence: common.evidence[0] }],
189
+ followUps: [],
190
+ },
191
+ ];
192
+ const decoded = (response) => JSON.parse(response.content[0].text);
193
+ for (const [index, journal] of journals.entries()) {
194
+ const response = await client.callTool({ name: 'issue_comment', arguments: journal });
195
+ assert.equal(response.isError, undefined, JSON.stringify(response));
196
+ const readback = decoded(response);
197
+ assert.equal(readback.commentId, 91 + index);
198
+ assert.equal(readback.url, `https://github.com/example/b/issues/17#issuecomment-${String(91 + index)}`);
199
+ assert.equal(readback.body.split('\n')[0], common.summary);
200
+ assert.ok(readback.body.includes(`**Kind:** ${journal.kind}.`));
201
+ assert.match(readback.body, /<!-- ai-delivery:journal@1:sha256:[a-f0-9]{64} -->$/u);
202
+ assert.equal(readback.reused, false);
203
+ }
204
+ const retried = await client.callTool({ name: 'issue_comment', arguments: journals[1] });
205
+ assert.equal(retried.isError, undefined, JSON.stringify(retried));
206
+ assert.equal(decoded(retried).commentId, 92);
207
+ assert.equal(decoded(retried).reused, true);
208
+ const beforeInvalidRequests = JSON.parse(readFileSync(calls, 'utf8')).length;
209
+ for (const invalid of [
210
+ { ...journals[1], unknown: true },
211
+ { ...journals[1], outcome: 'Wrong variant' },
212
+ { ...journals[1], kind: 'unsupported' },
213
+ { ...journals[1], nextDate: '2026-02-30' },
214
+ { ...journals[1], repo: 'invalid' },
215
+ ]) {
216
+ const refused = await client.callTool({ name: 'issue_comment', arguments: invalid }).then((result) => result.isError === true, () => true);
217
+ assert.equal(refused, true);
218
+ }
219
+ assert.equal(JSON.parse(readFileSync(calls, 'utf8')).length, beforeInvalidRequests, 'invalid packed journals never reach configuration discovery, author authentication or writes');
220
+ const unknown = await client.callTool({
221
+ name: 'issue_create',
222
+ arguments: { repo: 'example/b', title: 'Unknown', labels: ['missing-label'] },
223
+ });
224
+ assert.equal(unknown.isError, true);
225
+ assert.match(JSON.stringify(unknown), /Unknown repository label.*missing-label/u);
226
+ const requests = JSON.parse(readFileSync(calls, 'utf8'));
227
+ assert.equal(requests.some((call) => call.path.startsWith('/repos/example/a/')), false);
228
+ assert.equal(requests.filter((call) => call.path.endsWith('/issues') && call.method === 'POST').length, 1);
229
+ assert.equal(requests.filter((call) => call.path.endsWith('/issues/17/comments') && call.method === 'POST').length, 5, 'five authored journals read back; retry adds no sixth write');
230
+ assert.equal(existsSync(join(directory, '.issue-cli')), false);
231
+ }
232
+ finally {
233
+ await client.close();
234
+ await transport.close();
235
+ rmSync(directory, { recursive: true, force: true });
236
+ }
237
+ });
238
+ }
16
239
  test('CLI reports the selected package version', () => {
17
240
  const displayed = execFileSync(process.execPath, [join(packageRoot, 'dist', 'cli.js'), '--version'], {
18
241
  encoding: 'utf8',
@@ -1 +1 @@
1
- {"version":3,"file":"pluginPackaging.test.js","sourceRoot":"","sources":["../src/pluginPackaging.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pluginPackaging.test.js","sourceRoot":"","sources":["../src/pluginPackaging.test.ts"],"names":[],"mappings":"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"}
package/dist/pr.d.ts CHANGED
@@ -1,75 +1,18 @@
1
- import { z } from 'zod';
2
1
  import { type GitHubClients } from './github/client.js';
3
- import { type DeliveryContext } from './issue.js';
4
- import { readRequiredReviewState } from './review.js';
5
- import { type WorktreeEntry } from './services/worktreeRegistry.js';
6
- declare const PublicationSchema: z.ZodObject<{
7
- baseSha: z.ZodString;
8
- evidenceId: z.ZodString;
9
- headSha: z.ZodString;
10
- issueNumber: z.ZodNumber;
11
- prNumber: z.ZodNumber;
12
- publicationId: z.ZodString;
13
- schemaVersion: z.ZodLiteral<"ai-delivery.publication@1">;
14
- }, z.core.$strict>;
15
- type Publication = z.infer<typeof PublicationSchema>;
16
- declare const MergeIntentSchema: z.ZodObject<{
17
- baseBranch: z.ZodString;
18
- baseSha: z.ZodString;
19
- evidenceId: z.ZodString;
20
- exactBaseHeadLease: z.ZodBoolean;
21
- headBranch: z.ZodString;
22
- headSha: z.ZodString;
23
- headTree: z.ZodString;
24
- intentId: z.ZodString;
25
- issueNumber: z.ZodNumber;
26
- prNumber: z.ZodNumber;
27
- reviewReceiptId: z.ZodString;
28
- schemaVersion: z.ZodLiteral<"ai-delivery.merge-intent@2">;
29
- strategy: z.ZodEnum<{
30
- merge: "merge";
31
- squash: "squash";
32
- rebase: "rebase";
33
- }>;
34
- }, z.core.$strict>;
35
- type MergeIntent = z.infer<typeof MergeIntentSchema>;
36
- declare const MergeSchema: z.ZodObject<{
37
- evidenceId: z.ZodString;
38
- exactBaseHeadLease: z.ZodBoolean;
39
- reviewReceiptId: z.ZodString;
40
- issueNumber: z.ZodNumber;
41
- prNumber: z.ZodNumber;
42
- headSha: z.ZodString;
43
- headBranch: z.ZodString;
44
- baseBranch: z.ZodString;
45
- baseSha: z.ZodString;
46
- strategy: z.ZodEnum<{
47
- merge: "merge";
48
- squash: "squash";
49
- rebase: "rebase";
50
- }>;
51
- headTree: z.ZodString;
52
- intentId: z.ZodString;
53
- mergeId: z.ZodString;
54
- mergeSha: z.ZodString;
55
- mergeTree: z.ZodString;
56
- schemaVersion: z.ZodLiteral<"ai-delivery.merge@3">;
57
- }, z.core.$strict>;
58
- type MergeReceipt = z.infer<typeof MergeSchema>;
59
- export declare function loadPublication(root: string, issueNumber: number, headSha: string): Publication;
60
- /** @internal Selected-author Git transport, exported for process-boundary tests. */
61
- export declare function runAuthorGit(context: DeliveryContext, path: string, args: string[], operation: string): Promise<void>;
2
+ import { startIssueBranch, type DeliveryContext } from './issue.js';
62
3
  export declare function prInfo(context: DeliveryContext, input: {
63
4
  issueNumber?: number;
64
5
  prNumber?: number;
6
+ nonClosing?: boolean;
65
7
  }): Promise<{
66
- number: number | null;
67
- state: string | null;
68
- headSha: string | null;
69
- baseSha: string | null;
70
- draft: boolean | null;
71
- authorLogin: string | null;
72
- url: string | null;
8
+ prNumber: number;
9
+ url: string;
10
+ state: "closed" | "open";
11
+ draft: boolean | undefined;
12
+ headSha: string;
13
+ headBranch: string;
14
+ baseBranch: string;
15
+ merged: boolean;
73
16
  }>;
74
17
  export declare function listPrs(context: DeliveryContext, state?: 'all' | 'closed' | 'open'): Promise<{
75
18
  schemaVersion: "ai-delivery.pr-list@1";
@@ -94,7 +37,6 @@ export declare function prChecks(context: DeliveryContext, prNumber: number): Pr
94
37
  conclusion: "success" | "action_required" | "cancelled" | "failure" | "neutral" | "skipped" | "timed_out" | null;
95
38
  }[];
96
39
  }>;
97
- export declare function checkoutPr(context: DeliveryContext, prNumber: number): Promise<WorktreeEntry>;
98
40
  export interface ReviewRoutePreflight {
99
41
  author: {
100
42
  actorLogin: string;
@@ -122,70 +64,87 @@ export declare function preflightReviewRoute(context: DeliveryContext, base?: st
122
64
  checkResources: () => Promise<void>;
123
65
  }): Promise<ReviewRoutePreflight>;
124
66
  export declare function publishPr(context: DeliveryContext, input: {
125
- body?: string;
126
- draft?: boolean;
127
67
  issueNumber: number;
68
+ prNumber?: number;
69
+ nonClosing?: boolean;
70
+ body?: string;
128
71
  title?: string;
72
+ draft?: boolean;
73
+ headBranch?: string;
74
+ baseBranch?: string;
75
+ dryRun?: boolean;
129
76
  }): Promise<{
77
+ headSha: string;
78
+ headBranch: string;
79
+ baseBranch: string;
80
+ reviewRoute: ReviewRoutePreflight;
81
+ nonClosing?: boolean;
82
+ nonClosingVerified?: boolean;
83
+ body?: string;
84
+ bodyTransition?: boolean;
85
+ prNumber?: number;
86
+ draft?: boolean;
87
+ dryRun: boolean;
88
+ } | {
89
+ nonClosing?: boolean;
130
90
  prNumber: number;
131
91
  url: string;
132
- publicationEvidenceId: string;
133
- reviewRoute?: ReviewRoutePreflight;
134
- reviewState?: Awaited<ReturnType<typeof readRequiredReviewState>>;
92
+ headSha: string;
93
+ draft: boolean | undefined;
94
+ reviewRoute: ReviewRoutePreflight;
135
95
  }>;
136
96
  export declare function submitFormalReview(context: DeliveryContext, input: {
137
97
  artifact: string;
138
98
  issueNumber: number;
139
99
  prNumber: number;
140
- }): Promise<{
141
- receiptId: string;
142
- githubReviewId: number;
143
- reviewState: Awaited<ReturnType<typeof readRequiredReviewState>>;
144
- }>;
145
- /** @internal Lifecycle primitive; exported for local interruption tests. */
146
- export declare function mergeWithExactLease(context: DeliveryContext, input: {
147
- baseBranch: string;
148
- baseSha: string;
149
- headBranch: string;
150
- headSha: string;
151
- headTree: string;
152
- title: string;
153
- prNumber: number;
154
- worktreePath: string;
155
- beforeMutation?: () => void;
156
- onPreparedMergeCommit?: (sha: string) => void;
157
- }): Promise<string>;
158
- /** @internal Lifecycle primitive; exported for local interruption tests. */
159
- export declare function persistMergedResult(context: DeliveryContext, input: {
160
- intent: MergeIntent;
161
- path: string;
162
- worktreePath: string;
163
- branch: string;
164
- expectedSha?: string;
165
- }): Promise<MergeReceipt>;
166
- /** @internal Read-only ancestor validation for the locked committed-descendant continuation. */
167
- export declare function readMergedContinuationTerminal(context: DeliveryContext, row: WorktreeEntry, operator: {
168
- actorLogin: string;
169
- credentialIdentity: string;
170
- }): Promise<{
171
- terminal: MergeReceipt;
172
- preserved: {
173
- path: string;
174
- digest: string;
175
- }[];
176
- }>;
100
+ dryRun?: boolean;
101
+ nonClosing?: boolean;
102
+ }): Promise<import("./review.js").GitHubReviewReceipt | import("./review.js").ReviewDryRun>;
177
103
  export declare function mergePr(context: DeliveryContext, input: {
178
104
  issueNumber: number;
179
105
  prNumber: number;
180
106
  strategy?: 'merge' | 'squash' | 'rebase';
181
- }): Promise<MergeReceipt>;
107
+ reviewedHeadSha?: string;
108
+ dryRun?: boolean;
109
+ nonClosing?: boolean;
110
+ }): Promise<{
111
+ mergeSha: string;
112
+ headSha: string;
113
+ reused: boolean;
114
+ } | {
115
+ commit_title?: string;
116
+ commit_message?: string;
117
+ nonClosing?: boolean;
118
+ dryRun: boolean;
119
+ headSha: string;
120
+ prNumber: number;
121
+ mergeSha?: never;
122
+ reused?: never;
123
+ }>;
182
124
  export declare function finishIssue(context: DeliveryContext, input: {
183
125
  issueNumber: number;
184
126
  prNumber: number;
185
127
  strategy?: 'merge' | 'squash' | 'rebase';
128
+ reviewedHeadSha?: string;
129
+ dryRun?: boolean;
130
+ nonClosing?: boolean;
186
131
  }): Promise<{
187
132
  mergeSha: string;
188
- issueClosed: true;
189
- cleaned: true;
133
+ headSha: string;
134
+ reused: boolean;
135
+ } | {
136
+ commit_title?: string;
137
+ commit_message?: string;
138
+ nonClosing?: boolean;
139
+ dryRun: boolean;
140
+ headSha: string;
141
+ prNumber: number;
142
+ mergeSha?: never;
143
+ reused?: never;
144
+ } | {
145
+ issueClosed: boolean;
146
+ mergeSha: string;
147
+ headSha: string;
148
+ reused: boolean;
190
149
  }>;
191
- export {};
150
+ export { startIssueBranch };