@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependencyCompatibility.test.js","sourceRoot":"","sources":["../src/dependencyCompatibility.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,352 @@
1
+ import assert from 'node:assert/strict';
2
+ import { execFileSync } from 'node:child_process';
3
+ import { existsSync, mkdirSync, mkdtempSync, unlinkSync, rmSync, writeFileSync } from 'node:fs';
4
+ import { tmpdir } from 'node:os';
5
+ import { join } from 'node:path';
6
+ import { afterEach, describe, it, vi } from 'vitest';
7
+ import { loadDeliveryConfig, loadDeliverySettings } from './config/deliveryConfig.js';
8
+ import * as githubClients from './github/client.js';
9
+ import * as repository from './github/repo.js';
10
+ import * as gitCommands from './git.js';
11
+ import { executeTool } from './dispatch.js';
12
+ import { createAiDeliveryMcpServer, AI_DELIVERY_MCP_TOOLS } from './mcp/index.js';
13
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
14
+ import { InMemoryTransport } from '@modelcontextprotocol/sdk/inMemory.js';
15
+ import { syntheticDiscoveryClients, syntheticDiscoveryConfig } from './fixtures/discovery.js';
16
+ const userSettings = {
17
+ schemaVersion: 'ai-delivery.user@1',
18
+ roles: {
19
+ author: { authSource: 'personal', identity: 'host-author', credentialEnv: { token: 'SYNTHETIC_TOKEN' } },
20
+ reviewer: {
21
+ identity: 'app-reviewer',
22
+ credentialEnv: { appId: 'APP_ID', installationId: 'INSTALLATION_ID', privateKeyPath: 'KEY_PATH' },
23
+ },
24
+ },
25
+ project: 1,
26
+ checkoutRoots: [],
27
+ pointsField: 'Estimate',
28
+ priorityField: 'Urgency',
29
+ statusField: 'Flow',
30
+ statuses: { blocked: 'Waiting', done: 'Shipped', inProgress: 'Active', todo: 'Queued' },
31
+ };
32
+ describe('directory-independent user configuration', () => {
33
+ it('resolves an explicit repository in a non-Git directory without repository policy', async () => {
34
+ const root = mkdtempSync(join(tmpdir(), 'delivery-directory-'));
35
+ const previous = process.env.AI_DELIVERY_CONFIG;
36
+ try {
37
+ process.env.AI_DELIVERY_CONFIG = join(root, 'user.json');
38
+ writeFileSync(process.env.AI_DELIVERY_CONFIG, JSON.stringify(userSettings));
39
+ const loaded = await loadDeliveryConfig(root, {
40
+ repository: 'example/widget',
41
+ clients: syntheticDiscoveryClients(syntheticDiscoveryConfig),
42
+ });
43
+ assert.equal(loaded.config.repository, 'example/widget');
44
+ assert.equal(loaded.config.roles.author.identity, 'host-author');
45
+ assert.equal(loaded.configPath, process.env.AI_DELIVERY_CONFIG);
46
+ assert.equal('policy' in loaded.config, false);
47
+ }
48
+ finally {
49
+ if (previous === undefined)
50
+ delete process.env.AI_DELIVERY_CONFIG;
51
+ else
52
+ process.env.AI_DELIVERY_CONFIG = previous;
53
+ rmSync(root, { recursive: true, force: true });
54
+ }
55
+ });
56
+ it('never imports a tracked hostile policy while resolving a local checkout', async () => {
57
+ const root = mkdtempSync(join(tmpdir(), 'delivery-hostile-'));
58
+ const previous = process.env.AI_DELIVERY_CONFIG;
59
+ const sentinel = join(root, 'executed');
60
+ try {
61
+ execFileSync('git', ['init', '--quiet', root]);
62
+ execFileSync('git', ['remote', 'add', 'origin', 'https://github.com/example/widget.git'], { cwd: root });
63
+ writeFileSync(join(root, 'ai-delivery.policy.mjs'), `import {writeFileSync} from 'node:fs';writeFileSync(${JSON.stringify(sentinel)},'executed');export const deliverySettings={};`);
64
+ execFileSync('git', ['add', 'ai-delivery.policy.mjs'], { cwd: root });
65
+ process.env.AI_DELIVERY_CONFIG = join(root, 'user.json');
66
+ writeFileSync(process.env.AI_DELIVERY_CONFIG, JSON.stringify(userSettings));
67
+ await loadDeliverySettings(root);
68
+ for (const body of ['tracked', 'edited']) {
69
+ writeFileSync(join(root, 'ai-delivery.policy.mjs'), `import {writeFileSync} from 'node:fs';writeFileSync(${JSON.stringify(sentinel)},${JSON.stringify(body)});export const deliverySettings={};`);
70
+ await loadDeliveryConfig(root, {
71
+ repository: 'example/widget',
72
+ clients: syntheticDiscoveryClients(syntheticDiscoveryConfig),
73
+ });
74
+ }
75
+ assert.equal(existsSync(sentinel), false);
76
+ }
77
+ finally {
78
+ if (previous === undefined)
79
+ delete process.env.AI_DELIVERY_CONFIG;
80
+ else
81
+ process.env.AI_DELIVERY_CONFIG = previous;
82
+ rmSync(root, { recursive: true, force: true });
83
+ }
84
+ });
85
+ it('names a missing user setting before accessing Git or credentials', async () => {
86
+ const root = mkdtempSync(join(tmpdir(), 'delivery-setting-'));
87
+ const previous = process.env.AI_DELIVERY_CONFIG;
88
+ try {
89
+ process.env.AI_DELIVERY_CONFIG = join(root, 'user.json');
90
+ writeFileSync(process.env.AI_DELIVERY_CONFIG, JSON.stringify({ ...userSettings, roles: {} }));
91
+ await assert.rejects(loadDeliverySettings(root), /roles.author/u);
92
+ }
93
+ finally {
94
+ if (previous === undefined)
95
+ delete process.env.AI_DELIVERY_CONFIG;
96
+ else
97
+ process.env.AI_DELIVERY_CONFIG = previous;
98
+ rmSync(root, { recursive: true, force: true });
99
+ }
100
+ });
101
+ });
102
+ for (const path of [
103
+ 'schemaVersion',
104
+ 'roles.author',
105
+ 'roles.reviewer',
106
+ 'roles.author.identity',
107
+ 'roles.reviewer.identity',
108
+ 'roles.author.credentialEnv',
109
+ 'roles.reviewer.credentialEnv',
110
+ 'project',
111
+ 'checkoutRoots',
112
+ 'roles.author.credentialEnv.token',
113
+ 'roles.reviewer.credentialEnv.appId',
114
+ 'roles.reviewer.credentialEnv.installationId',
115
+ 'roles.reviewer.credentialEnv.privateKeyPath',
116
+ ]) {
117
+ it(`names missing ${path} in operator settings`, async () => {
118
+ const root = mkdtempSync(join(tmpdir(), 'delivery-required-'));
119
+ vi.stubEnv('AI_DELIVERY_CONFIG', join(root, 'user.json'));
120
+ const settings = structuredClone(userSettings);
121
+ const keys = path.split('.');
122
+ let target = settings;
123
+ for (const key of keys.slice(0, -1))
124
+ target = target[key];
125
+ delete target[keys.at(-1)];
126
+ writeFileSync(process.env.AI_DELIVERY_CONFIG, JSON.stringify(settings));
127
+ try {
128
+ await assert.rejects(loadDeliverySettings(root), (error) => error instanceof Error && error.message.includes(path));
129
+ }
130
+ finally {
131
+ rmSync(root, { recursive: true, force: true });
132
+ }
133
+ });
134
+ }
135
+ afterEach(() => {
136
+ vi.restoreAllMocks();
137
+ vi.unstubAllEnvs();
138
+ });
139
+ describe('per-call repository selection', () => {
140
+ it('selects matching origins A → B → A, prefers a matching current checkout and refuses ambiguous clones', () => {
141
+ const root = mkdtempSync(join(tmpdir(), 'delivery-checkouts-'));
142
+ const clone = (name, repo) => {
143
+ const path = join(root, name);
144
+ execFileSync('git', ['init', '-q', path]);
145
+ execFileSync('git', ['remote', 'add', 'origin', `https://github.com/${repo}.git`], { cwd: path });
146
+ return path;
147
+ };
148
+ try {
149
+ const a = clone('a', 'example/a'), b = clone('b', 'example/b');
150
+ const input = { launchDirectory: root, checkoutRoots: [root] };
151
+ assert.equal(repository.resolveCheckout({ ...input, repository: 'example/a' }), a);
152
+ assert.equal(repository.resolveCheckout({ ...input, repository: 'example/b' }), b);
153
+ assert.equal(repository.resolveCheckout({ ...input, repository: 'example/a' }), a);
154
+ clone('a-duplicate', 'example/a');
155
+ assert.throws(() => repository.resolveCheckout({ ...input, repository: 'example/a' }), /ambiguous/u);
156
+ assert.equal(repository.resolveCheckout({ ...input, repository: 'example/a', launchDirectory: a }), a);
157
+ assert.throws(() => repository.resolveCheckout({ ...input, repository: 'example/missing' }), /no matching/u);
158
+ }
159
+ finally {
160
+ rmSync(root, { recursive: true, force: true });
161
+ }
162
+ });
163
+ it('does not execute checkout filters or fsmonitor during local Git probes', () => {
164
+ const root = mkdtempSync(join(tmpdir(), 'delivery-hostile-git-'));
165
+ const sentinel = join(root, 'executed');
166
+ const git = (...args) => execFileSync('git', args, { cwd: root });
167
+ try {
168
+ git('init', '-q');
169
+ git('config', 'user.name', 'Synthetic');
170
+ git('config', 'user.email', 'synthetic@example.test');
171
+ writeFileSync(join(root, '.gitattributes'), '*.txt filter=hostile\n');
172
+ writeFileSync(join(root, 'change.txt'), 'original');
173
+ git('add', '.');
174
+ git('commit', '-qm', 'fixture');
175
+ const script = join(root, 'hostile.cjs');
176
+ writeFileSync(script, `require('node:fs').writeFileSync(${JSON.stringify(sentinel)},'executed');process.stdin.pipe(process.stdout);`);
177
+ git('config', 'filter.hostile.clean', `${process.execPath} ${script}`);
178
+ git('config', 'filter.hostile.smudge', `${process.execPath} ${script}`);
179
+ git('config', 'core.fsmonitor', `${process.execPath} ${script}`);
180
+ mkdirSync(join(root, '.git', 'hooks'), { recursive: true });
181
+ writeFileSync(join(root, 'change.txt'), 'changed');
182
+ git('hash-object', '--path', 'change.txt', 'change.txt');
183
+ assert.equal(existsSync(sentinel), true, 'fixture filter must be executable before the protected probe');
184
+ unlinkSync(sentinel);
185
+ gitCommands.git(root, 'hash-object', '--path', 'change.txt', 'change.txt');
186
+ assert.throws(() => gitCommands.assertClean(root));
187
+ assert.equal(existsSync(sentinel), false);
188
+ }
189
+ finally {
190
+ rmSync(root, { recursive: true, force: true });
191
+ }
192
+ });
193
+ it('routes PRs and journals through one MCP server A → B → A without launch Git or identity environment', async () => {
194
+ const root = mkdtempSync(join(tmpdir(), 'delivery-mcp-routing-'));
195
+ const visited = [];
196
+ const journalTargets = [];
197
+ const stored = [];
198
+ let authorCalls = 0;
199
+ vi.stubEnv('AI_DELIVERY_CONFIG', join(root, 'user.json'));
200
+ vi.stubEnv('AI_DELIVERY_IDENTITY', '');
201
+ writeFileSync(process.env.AI_DELIVERY_CONFIG, JSON.stringify(userSettings));
202
+ vi.spyOn(repository, 'resolveRepoFromRemote').mockImplementation(() => {
203
+ throw new Error('launch Git must never run');
204
+ });
205
+ vi.spyOn(gitCommands, 'git').mockImplementation(() => {
206
+ throw new Error('launch Git must never run');
207
+ });
208
+ vi.spyOn(githubClients, 'createDeliveryGitHubClients').mockImplementation(async (input) => ({
209
+ role: input.role,
210
+ authSource: 'personal',
211
+ authenticatedAuthor: async () => {
212
+ authorCalls += 1;
213
+ return { actorLogin: 'operator', credentialIdentity: 'user:1' };
214
+ },
215
+ graphql: (async (query, variables) => {
216
+ const repo = typeof variables.repo === 'string' ? variables.repo : 'a';
217
+ return syntheticDiscoveryClients({ ...syntheticDiscoveryConfig, repository: `example/${repo}` }).graphql(query, variables);
218
+ }),
219
+ rest: {
220
+ issues: {
221
+ get: async (input) => {
222
+ journalTargets.push(`${input.owner}/${input.repo}`);
223
+ return { data: { number: input.issue_number } };
224
+ },
225
+ listComments: async (input) => ({
226
+ data: stored.filter((comment) => comment.issue_url ===
227
+ `https://api.github.com/repos/${input.owner}/${input.repo}/issues/${String(input.issue_number)}`),
228
+ }),
229
+ createComment: async (input) => {
230
+ const id = 101 + stored.length;
231
+ const data = {
232
+ id,
233
+ body: input.body,
234
+ html_url: `https://github.com/${input.owner}/${input.repo}/issues/${String(input.issue_number)}#issuecomment-${String(id)}`,
235
+ issue_url: `https://api.github.com/repos/${input.owner}/${input.repo}/issues/${String(input.issue_number)}`,
236
+ user: { login: 'operator' },
237
+ };
238
+ stored.push(data);
239
+ return { data };
240
+ },
241
+ getComment: async (input) => ({
242
+ data: stored.find((comment) => comment.id === input.comment_id &&
243
+ comment.issue_url === `https://api.github.com/repos/${input.owner}/${input.repo}/issues/17`),
244
+ }),
245
+ },
246
+ pulls: {
247
+ get: async (input) => {
248
+ visited.push(`${input.owner}/${input.repo}`);
249
+ return {
250
+ data: {
251
+ number: input.pull_number,
252
+ head: { sha: 'a'.repeat(40), ref: 'issue/17', repo: { full_name: `${input.owner}/${input.repo}` } },
253
+ base: { sha: 'b'.repeat(40), ref: 'main', repo: { full_name: `${input.owner}/${input.repo}` } },
254
+ state: 'open',
255
+ merged: false,
256
+ draft: true,
257
+ html_url: `https://github.com/${input.owner}/${input.repo}/pull/23`,
258
+ },
259
+ };
260
+ },
261
+ },
262
+ },
263
+ }));
264
+ const server = createAiDeliveryMcpServer({ repoRoot: root });
265
+ const client = new Client({ name: 'directory-fixture', version: '1' });
266
+ const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();
267
+ const journal = {
268
+ issueNumber: 17,
269
+ kind: 'progress',
270
+ summary: 'Validation is implemented.',
271
+ status: 'In progress',
272
+ done: ['Added validation'],
273
+ decisionNeeded: 'None',
274
+ keyNumbers: [],
275
+ evidence: ['https://github.com/example/widget/pull/23'],
276
+ nextStep: 'Review',
277
+ nextDate: '2026-10-09',
278
+ };
279
+ try {
280
+ await server.connect(serverTransport);
281
+ await client.connect(clientTransport);
282
+ for (const repo of ['example/a', 'example/b', 'example/a']) {
283
+ const response = await client.callTool({ name: 'issue_pr_info', arguments: { repo, prNumber: 23 } });
284
+ assert.equal(response.isError, undefined);
285
+ const comment = await client.callTool({ name: 'issue_comment', arguments: { ...journal, repo } });
286
+ assert.equal(comment.isError, undefined, JSON.stringify(comment));
287
+ assert.match(JSON.stringify(comment), new RegExp(`https://github.com/${repo}/issues/17#issuecomment-10[12]`, 'u'));
288
+ }
289
+ await executeTool('issue_pr_info', { repo: 'example/b', prNumber: 23 }, { repoRoot: root });
290
+ assert.deepEqual(visited, ['example/a', 'example/b', 'example/a', 'example/b']);
291
+ assert.deepEqual(journalTargets, ['example/a', 'example/b', 'example/a']);
292
+ assert.equal(stored.length, 2, 'A retry reuses its own journal, without leaking repository B');
293
+ const beforeInvalid = vi.mocked(githubClients.createDeliveryGitHubClients).mock.calls.length;
294
+ const beforeInvalidAuthor = authorCalls;
295
+ for (const invalid of [
296
+ { ...journal, repo: 'example/a', unknown: true },
297
+ { ...journal, repo: 'example/a', outcome: 'Wrong variant' },
298
+ { ...journal, repo: 'example/a', kind: 'unsupported' },
299
+ { ...journal, repo: 'example/a', nextDate: '2026-02-30' },
300
+ { ...journal, repo: 'invalid' },
301
+ ]) {
302
+ const refused = await client.callTool({ name: 'issue_comment', arguments: invalid }).then((result) => result.isError === true, () => true);
303
+ assert.equal(refused, true);
304
+ }
305
+ const fixedServer = createAiDeliveryMcpServer({ repoRoot: root, repo: 'example/a' });
306
+ const fixedClient = new Client({ name: 'fixed-repository-fixture', version: '1' });
307
+ const [fixedClientTransport, fixedServerTransport] = InMemoryTransport.createLinkedPair();
308
+ try {
309
+ await fixedServer.connect(fixedServerTransport);
310
+ await fixedClient.connect(fixedClientTransport);
311
+ const conflict = await fixedClient.callTool({
312
+ name: 'issue_comment',
313
+ arguments: { ...journal, repo: 'example/b' },
314
+ });
315
+ assert.equal(conflict.isError, true);
316
+ assert.match(JSON.stringify(conflict), /selectors disagree/u);
317
+ assert.equal(vi.mocked(githubClients.createDeliveryGitHubClients).mock.calls.length, beforeInvalid);
318
+ assert.equal(authorCalls, beforeInvalidAuthor, 'refusals precede authentication');
319
+ assert.equal(stored.length, 2, 'refusals do not write');
320
+ assert.deepEqual(journalTargets, ['example/a', 'example/b', 'example/a'], 'refusals do not read a target');
321
+ const inherited = await fixedClient.callTool({ name: 'issue_comment', arguments: journal });
322
+ assert.equal(inherited.isError, undefined, JSON.stringify(inherited));
323
+ const readback = JSON.parse(inherited.content[0].text);
324
+ assert.equal(readback.url, 'https://github.com/example/a/issues/17#issuecomment-101');
325
+ assert.equal(readback.reused, true, 'omitting repo uses the fixed server selector');
326
+ }
327
+ finally {
328
+ await fixedClient.close();
329
+ await fixedServer.close();
330
+ }
331
+ assert.equal(stored.length, 2, 'inheriting the server selector reuses repository A');
332
+ assert.deepEqual(journalTargets, ['example/a', 'example/b', 'example/a', 'example/a']);
333
+ assert.equal(vi.mocked(repository.resolveRepoFromRemote).mock.calls.length, 0);
334
+ const names = AI_DELIVERY_MCP_TOOLS.map((tool) => tool.name);
335
+ for (const removed of ['issue_develop', 'issue_verify', 'issue_worktree_create'])
336
+ assert.equal(names.includes(removed), false);
337
+ for (const retained of [
338
+ 'runtime_stage',
339
+ 'runtime_admit',
340
+ 'issue_worktree_transition_inspect',
341
+ 'issue_worktree_transition_apply',
342
+ ])
343
+ assert.equal(names.includes(retained), true);
344
+ }
345
+ finally {
346
+ await client.close();
347
+ await server.close();
348
+ rmSync(root, { recursive: true, force: true });
349
+ }
350
+ });
351
+ });
352
+ //# sourceMappingURL=directoryIndependent.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directoryIndependent.test.js","sourceRoot":"","sources":["../src/directoryIndependent.test.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,35 @@ export interface ExecutionContext {
8
8
  runtimeEntryPath?: string;
9
9
  signal?: AbortSignal;
10
10
  }
11
- /** @internal Preserve every accepted tracking field when completing a partially created issue. */
11
+ /** Preserve every accepted tracking field when completing a partially created issue. */
12
12
  export declare function resumedIssueUpdate(input: Record<string, unknown>): UpdateIssueInput;
13
13
  export declare function contextFor(input: ExecutionContext, commandName: string, role?: 'author' | 'reviewer'): Promise<import("./issue.js").DeliveryContext>;
14
- /** @internal Keep CLI and MCP start routing on the same native lifecycle owner. */
15
- export declare function startTrackedIssue(context: Awaited<ReturnType<typeof loadDeliveryContext>>, input: Record<string, unknown>, runtimeEntryPath?: string): Promise<Record<string, unknown>>;
14
+ /** GitHub owns branch linkage; hosts own worktree preparation. */
15
+ export declare function startTrackedIssue(context: Awaited<ReturnType<typeof loadDeliveryContext>>, input: Record<string, unknown>): Promise<{
16
+ status: string;
17
+ repository: string;
18
+ createdIssue: {
19
+ number: number;
20
+ title: string;
21
+ url: string;
22
+ } | undefined;
23
+ failure: {
24
+ phase: string;
25
+ message: string;
26
+ };
27
+ safeResume: {
28
+ tool: string;
29
+ arguments: {
30
+ repo: string;
31
+ issueNumber: number | undefined;
32
+ resumeCreated: boolean;
33
+ };
34
+ };
35
+ } | {
36
+ issueNumber: number;
37
+ repository: string;
38
+ branch: string;
39
+ headSha: string;
40
+ reused: boolean;
41
+ }>;
16
42
  export declare function executeTool(name: AiDeliveryMcpToolName, raw: unknown, execution: ExecutionContext): Promise<unknown>;