@aviaratech/ai-delivery 0.3.23 → 0.3.24
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.
- package/CONTRIBUTING.md +9 -0
- package/README.md +56 -447
- package/dist/agent.d.ts +5 -11
- package/dist/agent.js +4 -8
- package/dist/agent.js.map +1 -1
- package/dist/cli.js +12 -107
- package/dist/cli.js.map +1 -1
- package/dist/config/deliveryConfig.d.ts +44 -55
- package/dist/config/deliveryConfig.js +85 -88
- package/dist/config/deliveryConfig.js.map +1 -1
- package/dist/config/deliveryConfig.test.js +13 -5
- package/dist/config/deliveryConfig.test.js.map +1 -1
- package/dist/delivery/common.js +7 -2
- package/dist/delivery/common.js.map +1 -1
- package/dist/delivery/delivery.test.js +2 -3
- package/dist/delivery/delivery.test.js.map +1 -1
- package/dist/delivery/index.d.ts +0 -6
- package/dist/delivery/index.js +0 -3
- package/dist/delivery/index.js.map +1 -1
- package/dist/delivery/legacy.d.ts +8 -0
- package/dist/delivery/legacy.js +5 -0
- package/dist/delivery/legacy.js.map +1 -0
- package/dist/delivery/policy.js +2 -13
- package/dist/delivery/policy.js.map +1 -1
- package/dist/directoryIndependent.test.d.ts +1 -0
- package/dist/directoryIndependent.test.js +262 -0
- package/dist/directoryIndependent.test.js.map +1 -0
- package/dist/dispatch.d.ts +29 -3
- package/dist/dispatch.js +160 -457
- package/dist/dispatch.js.map +1 -1
- package/dist/genericCompatibility.test.js +0 -35
- package/dist/genericCompatibility.test.js.map +1 -1
- package/dist/git.js +10 -3
- package/dist/git.js.map +1 -1
- package/dist/gitProcess.d.ts +6 -0
- package/dist/gitProcess.js +56 -0
- package/dist/gitProcess.js.map +1 -0
- package/dist/github/discovery.d.ts +1 -0
- package/dist/github/discovery.js +1 -1
- package/dist/github/discovery.js.map +1 -1
- package/dist/github/discovery.test.js +25 -20
- package/dist/github/discovery.test.js.map +1 -1
- package/dist/github/nativeIssueMetadata.d.ts +2 -2
- package/dist/github/nativeIssueMetadata.js.map +1 -1
- package/dist/github/projectDelivery.d.ts +1 -1
- package/dist/github/projectDelivery.js.map +1 -1
- package/dist/github/repo.d.ts +7 -1
- package/dist/github/repo.js +58 -2
- package/dist/github/repo.js.map +1 -1
- package/dist/issue.d.ts +11 -6
- package/dist/issue.js +136 -319
- package/dist/issue.js.map +1 -1
- package/dist/issueJournal.d.ts +1 -1
- package/dist/lifecycle.test.js +40 -7371
- package/dist/lifecycle.test.js.map +1 -1
- package/dist/logger.js +4 -4
- package/dist/logger.js.map +1 -1
- package/dist/mcp/tools.d.ts +26 -42
- package/dist/mcp/tools.js +33 -42
- package/dist/mcp/tools.js.map +1 -1
- package/dist/pluginInstaller.d.ts +1 -1
- package/dist/pluginPackaging.test.js +129 -0
- package/dist/pluginPackaging.test.js.map +1 -1
- package/dist/pr.d.ts +66 -114
- package/dist/pr.js +288 -1108
- package/dist/pr.js.map +1 -1
- package/dist/pr.test.js +295 -237
- package/dist/pr.test.js.map +1 -1
- package/dist/releaseReconciliation.test.d.ts +1 -0
- package/dist/releaseReconciliation.test.js +314 -0
- package/dist/releaseReconciliation.test.js.map +1 -0
- package/dist/review.d.ts +37 -7
- package/dist/review.js +106 -45
- package/dist/review.js.map +1 -1
- package/dist/review.test.js +30 -71
- package/dist/review.test.js.map +1 -1
- package/dist/services/agentReadinessService.d.ts +1 -1
- package/dist/services/agentReadinessService.js +2 -0
- package/dist/services/agentReadinessService.js.map +1 -1
- package/dist/services/deliveryAdmission.d.ts +4 -4
- package/dist/services/deliveryAdmission.js.map +1 -1
- package/dist/setup.test.js +10 -5
- package/dist/setup.test.js.map +1 -1
- package/dist/start.test.d.ts +1 -0
- package/dist/start.test.js +72 -0
- package/dist/start.test.js.map +1 -0
- package/dist/stdoutRegression.test.d.ts +1 -0
- package/dist/stdoutRegression.test.js +326 -0
- package/dist/stdoutRegression.test.js.map +1 -0
- package/dist/verification.d.ts +1 -27
- package/dist/verification.js +5 -1332
- package/dist/verification.js.map +1 -1
- package/dist/worktree.d.ts +1 -31
- package/dist/worktree.js +5 -200
- package/dist/worktree.js.map +1 -1
- package/dist/worktreeTransition.d.ts +1 -1
- package/dist/worktreeTransition.js +10 -5
- package/dist/worktreeTransition.js.map +1 -1
- package/dist/worktreeTransition.test.js +2 -3
- package/dist/worktreeTransition.test.js.map +1 -1
- package/package.json +1 -1
- package/plugins/ai-delivery/.claude-plugin/plugin.json +2 -2
- package/plugins/ai-delivery/README.md +3 -3
- package/plugins/ai-delivery/plugin.json +1 -1
- package/plugins/ai-delivery/runtime/dist/cli.js +50 -59
- package/plugins/ai-delivery/runtime/package.json +1 -1
- package/plugins/ai-delivery/skills/intake-create/SKILL.md +1 -1
- package/plugins/ai-delivery/skills/pr-handoff/SKILL.md +14 -21
- package/plugins/ai-delivery/skills/worktree-lifecycle/SKILL.md +12 -23
- package/dist/services/deliveryRecordService.d.ts +0 -47
- package/dist/services/deliveryRecordService.js +0 -199
- package/dist/services/deliveryRecordService.js.map +0 -1
package/dist/logger.js
CHANGED
|
@@ -9,20 +9,20 @@ export const logDebug = (message) => {
|
|
|
9
9
|
return;
|
|
10
10
|
}
|
|
11
11
|
if (process.env.DEBUG === 'true' || process.env.DEBUG === '1') {
|
|
12
|
-
console.
|
|
12
|
+
console.error(chalk.gray(formatTerminalLogLine('debug', message)));
|
|
13
13
|
}
|
|
14
14
|
};
|
|
15
15
|
export const logInfo = (message) => {
|
|
16
16
|
if (logsSuppressed) {
|
|
17
17
|
return;
|
|
18
18
|
}
|
|
19
|
-
console.
|
|
19
|
+
console.error(chalk.blue(formatTerminalLogLine('info', message)));
|
|
20
20
|
};
|
|
21
21
|
export const logSuccess = (message) => {
|
|
22
22
|
if (logsSuppressed) {
|
|
23
23
|
return;
|
|
24
24
|
}
|
|
25
|
-
console.
|
|
25
|
+
console.error(chalk.green(formatTerminalLogLine('success', message)));
|
|
26
26
|
};
|
|
27
27
|
export const logWarn = (message) => {
|
|
28
28
|
if (logsSuppressed) {
|
|
@@ -74,7 +74,7 @@ export const handleCommandError = (error) => {
|
|
|
74
74
|
if (error instanceof CLIError && typeof error.hint === 'string' && error.hint.trim().length > 0) {
|
|
75
75
|
const hintLine = `💡 Recovery: ${error.hint}`;
|
|
76
76
|
if (logsSuppressed) {
|
|
77
|
-
// logInfo
|
|
77
|
+
// logInfo is silenced in MCP mode; route the
|
|
78
78
|
// recovery hint to stderr so failures stay diagnosable.
|
|
79
79
|
console.error(chalk.blue(formatTerminalLogLine('info', hintLine)));
|
|
80
80
|
}
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,IAAI,cAAc,GAAG,KAAK,CAAC;AAE3B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,UAAmB,EAAQ,EAAE;IAC7D,cAAc,GAAG,UAAU,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,EAAE;IAC1C,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,EAAE,CAAC;QAC9D,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/tools.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export declare const AI_DELIVERY_MCP_CONTRACT_VERSION: "ai-delivery.mcp@
|
|
2
|
+
export declare const AI_DELIVERY_MCP_CONTRACT_VERSION: "ai-delivery.mcp@2";
|
|
3
3
|
export declare const AI_DELIVERY_MCP_TOOLS: readonly [{
|
|
4
4
|
readonly name: "issue_comment";
|
|
5
5
|
readonly commandName: "comment";
|
|
@@ -7,8 +7,8 @@ export declare const AI_DELIVERY_MCP_TOOLS: readonly [{
|
|
|
7
7
|
readonly inputSchema: z.ZodObject<{
|
|
8
8
|
kind: z.ZodEnum<{
|
|
9
9
|
start: "start";
|
|
10
|
-
progress: "progress";
|
|
11
10
|
blocker: "blocker";
|
|
11
|
+
progress: "progress";
|
|
12
12
|
decision: "decision";
|
|
13
13
|
closeout: "closeout";
|
|
14
14
|
}>;
|
|
@@ -33,6 +33,7 @@ export declare const AI_DELIVERY_MCP_TOOLS: readonly [{
|
|
|
33
33
|
evidence: z.ZodArray<z.ZodURL>;
|
|
34
34
|
details: z.ZodOptional<z.ZodString>;
|
|
35
35
|
lengthCap: z.ZodOptional<z.ZodNumber>;
|
|
36
|
+
repo: z.ZodOptional<z.ZodString>;
|
|
36
37
|
}, z.core.$strict>;
|
|
37
38
|
}, {
|
|
38
39
|
readonly name: "runtime_stage";
|
|
@@ -50,6 +51,7 @@ export declare const AI_DELIVERY_MCP_TOOLS: readonly [{
|
|
|
50
51
|
maxNewOutputBytes: z.ZodNumber;
|
|
51
52
|
maxCapturedOutputBytes: z.ZodOptional<z.ZodNumber>;
|
|
52
53
|
}, z.core.$strict>>;
|
|
54
|
+
repo: z.ZodOptional<z.ZodString>;
|
|
53
55
|
identity: z.ZodOptional<z.ZodString>;
|
|
54
56
|
expectedSourceCommit: z.ZodString;
|
|
55
57
|
expectedConfigDigest: z.ZodString;
|
|
@@ -63,6 +65,7 @@ export declare const AI_DELIVERY_MCP_TOOLS: readonly [{
|
|
|
63
65
|
authority: z.ZodLiteral<"runtime:admit">;
|
|
64
66
|
stageId: z.ZodString;
|
|
65
67
|
expectedPriorAdmissionSha256: z.ZodNullable<z.ZodString>;
|
|
68
|
+
repo: z.ZodOptional<z.ZodString>;
|
|
66
69
|
identity: z.ZodOptional<z.ZodString>;
|
|
67
70
|
expectedSourceCommit: z.ZodString;
|
|
68
71
|
expectedConfigDigest: z.ZodString;
|
|
@@ -87,7 +90,7 @@ export declare const AI_DELIVERY_MCP_TOOLS: readonly [{
|
|
|
87
90
|
}, {
|
|
88
91
|
readonly name: "issue_start";
|
|
89
92
|
readonly commandName: "start";
|
|
90
|
-
readonly description: "Create or resume a tracked issue and
|
|
93
|
+
readonly description: "Create or resume a tracked issue and its GitHub-linked branch";
|
|
91
94
|
readonly inputSchema: z.ZodObject<{
|
|
92
95
|
body: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
93
96
|
issueType: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
@@ -96,9 +99,8 @@ export declare const AI_DELIVERY_MCP_TOOLS: readonly [{
|
|
|
96
99
|
title: z.ZodOptional<z.ZodString>;
|
|
97
100
|
issueNumber: z.ZodOptional<z.ZodNumber>;
|
|
98
101
|
request: z.ZodOptional<z.ZodString>;
|
|
99
|
-
|
|
102
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
100
103
|
resumeCreated: z.ZodOptional<z.ZodBoolean>;
|
|
101
|
-
scratch: z.ZodOptional<z.ZodBoolean>;
|
|
102
104
|
branch: z.ZodOptional<z.ZodString>;
|
|
103
105
|
blockedBy: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
104
106
|
labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -112,6 +114,7 @@ export declare const AI_DELIVERY_MCP_TOOLS: readonly [{
|
|
|
112
114
|
readonly description: "List repository issues with native filters, named organization fields and pagination";
|
|
113
115
|
readonly inputSchema: z.ZodObject<{
|
|
114
116
|
query: z.ZodOptional<z.ZodString>;
|
|
117
|
+
repo: z.ZodOptional<z.ZodString>;
|
|
115
118
|
state: z.ZodOptional<z.ZodEnum<{
|
|
116
119
|
closed: "closed";
|
|
117
120
|
all: "all";
|
|
@@ -136,6 +139,7 @@ export declare const AI_DELIVERY_MCP_TOOLS: readonly [{
|
|
|
136
139
|
readonly description: "Search literal issue text in the selected repository with native filters and pagination";
|
|
137
140
|
readonly inputSchema: z.ZodObject<{
|
|
138
141
|
query: z.ZodString;
|
|
142
|
+
repo: z.ZodOptional<z.ZodString>;
|
|
139
143
|
state: z.ZodOptional<z.ZodEnum<{
|
|
140
144
|
closed: "closed";
|
|
141
145
|
all: "all";
|
|
@@ -159,6 +163,7 @@ export declare const AI_DELIVERY_MCP_TOOLS: readonly [{
|
|
|
159
163
|
readonly commandName: "update";
|
|
160
164
|
readonly description: "Update native issue fields and exact relationship sets with readback";
|
|
161
165
|
readonly inputSchema: z.ZodObject<{
|
|
166
|
+
repo: z.ZodOptional<z.ZodString>;
|
|
162
167
|
blockedBy: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
163
168
|
body: z.ZodOptional<z.ZodString>;
|
|
164
169
|
issueNumber: z.ZodNumber;
|
|
@@ -185,10 +190,10 @@ export declare const AI_DELIVERY_MCP_TOOLS: readonly [{
|
|
|
185
190
|
}, {
|
|
186
191
|
readonly name: "issue_info";
|
|
187
192
|
readonly commandName: "info";
|
|
188
|
-
readonly description: "Read live issue metadata, relationships
|
|
193
|
+
readonly description: "Read live issue metadata, relationships and Project status";
|
|
189
194
|
readonly inputSchema: z.ZodObject<{
|
|
190
195
|
issueNumber: z.ZodNumber;
|
|
191
|
-
|
|
196
|
+
repo: z.ZodOptional<z.ZodString>;
|
|
192
197
|
}, z.core.$strict>;
|
|
193
198
|
}, {
|
|
194
199
|
readonly name: "issue_ready_check";
|
|
@@ -198,45 +203,25 @@ export declare const AI_DELIVERY_MCP_TOOLS: readonly [{
|
|
|
198
203
|
issueNumber: z.ZodNumber;
|
|
199
204
|
repo: z.ZodOptional<z.ZodString>;
|
|
200
205
|
}, z.core.$strict>;
|
|
201
|
-
}, {
|
|
202
|
-
readonly name: "issue_develop";
|
|
203
|
-
readonly commandName: "develop";
|
|
204
|
-
readonly description: "Prepare the one registered issue worktree after readiness passes";
|
|
205
|
-
readonly inputSchema: z.ZodObject<{
|
|
206
|
-
issueNumber: z.ZodNumber;
|
|
207
|
-
assignee: z.ZodOptional<z.ZodString>;
|
|
208
|
-
}, z.core.$strict>;
|
|
209
|
-
}, {
|
|
210
|
-
readonly name: "issue_verify";
|
|
211
|
-
readonly commandName: "verify";
|
|
212
|
-
readonly description: "Resume exact-head policy stages and produce versioned delivery evidence";
|
|
213
|
-
readonly inputSchema: z.ZodObject<{
|
|
214
|
-
issueNumber: z.ZodNumber;
|
|
215
|
-
admit: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
216
|
-
prepublicationReview: z.ZodOptional<z.ZodString>;
|
|
217
|
-
resourceBounds: z.ZodOptional<z.ZodObject<{
|
|
218
|
-
maxAggregateRssBytes: z.ZodNumber;
|
|
219
|
-
maxNewOutputBytes: z.ZodOptional<z.ZodNumber>;
|
|
220
|
-
minFreeDiskBytes: z.ZodNumber;
|
|
221
|
-
outputRoots: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
222
|
-
}, z.core.$strict>>;
|
|
223
|
-
}, z.core.$strict>;
|
|
224
206
|
}, {
|
|
225
207
|
readonly name: "issue_pr_create";
|
|
226
208
|
readonly commandName: "pr:create";
|
|
227
|
-
readonly description: "
|
|
209
|
+
readonly description: "Create or reuse a PR from its GitHub-linked issue branch";
|
|
228
210
|
readonly inputSchema: z.ZodObject<{
|
|
211
|
+
repo: z.ZodOptional<z.ZodString>;
|
|
229
212
|
issueNumber: z.ZodNumber;
|
|
230
213
|
body: z.ZodOptional<z.ZodString>;
|
|
231
214
|
draft: z.ZodOptional<z.ZodBoolean>;
|
|
232
215
|
dryRun: z.ZodOptional<z.ZodBoolean>;
|
|
233
216
|
title: z.ZodOptional<z.ZodString>;
|
|
217
|
+
headBranch: z.ZodOptional<z.ZodString>;
|
|
234
218
|
}, z.core.$strict>;
|
|
235
219
|
}, {
|
|
236
220
|
readonly name: "issue_pr_info";
|
|
237
221
|
readonly commandName: "pr:info";
|
|
238
|
-
readonly description: "Inspect a PR by
|
|
222
|
+
readonly description: "Inspect a PR by number or its GitHub-linked issue branch";
|
|
239
223
|
readonly inputSchema: z.ZodObject<{
|
|
224
|
+
repo: z.ZodOptional<z.ZodString>;
|
|
240
225
|
issueNumber: z.ZodOptional<z.ZodNumber>;
|
|
241
226
|
prNumber: z.ZodOptional<z.ZodNumber>;
|
|
242
227
|
}, z.core.$strict>;
|
|
@@ -245,6 +230,7 @@ export declare const AI_DELIVERY_MCP_TOOLS: readonly [{
|
|
|
245
230
|
readonly commandName: "pr:review";
|
|
246
231
|
readonly description: "Submit one existing exact-head independent review with the reviewer App role";
|
|
247
232
|
readonly inputSchema: z.ZodObject<{
|
|
233
|
+
repo: z.ZodOptional<z.ZodString>;
|
|
248
234
|
issueNumber: z.ZodNumber;
|
|
249
235
|
prNumber: z.ZodNumber;
|
|
250
236
|
artifact: z.ZodString;
|
|
@@ -256,8 +242,10 @@ export declare const AI_DELIVERY_MCP_TOOLS: readonly [{
|
|
|
256
242
|
readonly commandName: "pr:merge";
|
|
257
243
|
readonly description: "Guarded exact-head merge with live blocker, check and review readback";
|
|
258
244
|
readonly inputSchema: z.ZodObject<{
|
|
245
|
+
repo: z.ZodOptional<z.ZodString>;
|
|
259
246
|
issueNumber: z.ZodNumber;
|
|
260
247
|
prNumber: z.ZodNumber;
|
|
248
|
+
reviewedHeadSha: z.ZodOptional<z.ZodString>;
|
|
261
249
|
strategy: z.ZodOptional<z.ZodEnum<{
|
|
262
250
|
merge: "merge";
|
|
263
251
|
squash: "squash";
|
|
@@ -268,10 +256,12 @@ export declare const AI_DELIVERY_MCP_TOOLS: readonly [{
|
|
|
268
256
|
}, {
|
|
269
257
|
readonly name: "issue_finish";
|
|
270
258
|
readonly commandName: "finish";
|
|
271
|
-
readonly description: "Resume merge
|
|
259
|
+
readonly description: "Resume a guarded merge and close its issue after merged-PR readback";
|
|
272
260
|
readonly inputSchema: z.ZodObject<{
|
|
261
|
+
repo: z.ZodOptional<z.ZodString>;
|
|
273
262
|
issueNumber: z.ZodNumber;
|
|
274
263
|
prNumber: z.ZodNumber;
|
|
264
|
+
reviewedHeadSha: z.ZodOptional<z.ZodString>;
|
|
275
265
|
strategy: z.ZodOptional<z.ZodEnum<{
|
|
276
266
|
merge: "merge";
|
|
277
267
|
squash: "squash";
|
|
@@ -279,27 +269,20 @@ export declare const AI_DELIVERY_MCP_TOOLS: readonly [{
|
|
|
279
269
|
}>>;
|
|
280
270
|
dryRun: z.ZodOptional<z.ZodBoolean>;
|
|
281
271
|
}, z.core.$strict>;
|
|
282
|
-
}, {
|
|
283
|
-
readonly name: "issue_worktree_create";
|
|
284
|
-
readonly commandName: "worktree:create";
|
|
285
|
-
readonly description: "Prepare one explicit standalone worktree without an issue";
|
|
286
|
-
readonly inputSchema: z.ZodObject<{
|
|
287
|
-
name: z.ZodString;
|
|
288
|
-
branch: z.ZodString;
|
|
289
|
-
}, z.core.$strict>;
|
|
290
272
|
}, {
|
|
291
273
|
readonly name: "issue_worktree_transition_inspect";
|
|
292
274
|
readonly commandName: "worktree:transition:inspect";
|
|
293
275
|
readonly description: "Read a legacy issue row, original evidence and exact closure gaps without changing ownership";
|
|
294
276
|
readonly inputSchema: z.ZodObject<{
|
|
277
|
+
repo: z.ZodOptional<z.ZodString>;
|
|
295
278
|
issueNumber: z.ZodNumber;
|
|
296
279
|
purpose: z.ZodEnum<{
|
|
297
280
|
"active-resume": "active-resume";
|
|
298
281
|
"merged-cleanup": "merged-cleanup";
|
|
299
282
|
}>;
|
|
300
283
|
disposition: z.ZodOptional<z.ZodEnum<{
|
|
301
|
-
remove: "remove";
|
|
302
284
|
retain: "retain";
|
|
285
|
+
remove: "remove";
|
|
303
286
|
}>>;
|
|
304
287
|
terminalPrNumber: z.ZodOptional<z.ZodNumber>;
|
|
305
288
|
retainedHoldCommentIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
@@ -311,6 +294,7 @@ export declare const AI_DELIVERY_MCP_TOOLS: readonly [{
|
|
|
311
294
|
readonly commandName: "worktree:transition:apply";
|
|
312
295
|
readonly description: "Apply or resume one exact independently accepted transition with immutable preservation and closure proof";
|
|
313
296
|
readonly inputSchema: z.ZodObject<{
|
|
297
|
+
repo: z.ZodOptional<z.ZodString>;
|
|
314
298
|
authority: z.ZodLiteral<"worktree:transition">;
|
|
315
299
|
planPath: z.ZodString;
|
|
316
300
|
expectedPlanId: z.ZodString;
|
package/dist/mcp/tools.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { JournalInputSchema } from '../issueJournal.js';
|
|
3
3
|
const Positive = z.number().int().positive();
|
|
4
|
-
const Labels = z.array(z.string().
|
|
5
|
-
|
|
4
|
+
const Labels = z.array(z.string().trim().min(1));
|
|
5
|
+
const Repo = z
|
|
6
|
+
.string()
|
|
7
|
+
.regex(/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/u)
|
|
8
|
+
.optional();
|
|
9
|
+
export const AI_DELIVERY_MCP_CONTRACT_VERSION = 'ai-delivery.mcp@2';
|
|
6
10
|
const Tracking = {
|
|
7
11
|
blockedBy: z.array(Positive).optional(),
|
|
8
12
|
body: z.string().optional(),
|
|
@@ -19,6 +23,7 @@ const Tracking = {
|
|
|
19
23
|
title: z.string().trim().min(1).max(256),
|
|
20
24
|
};
|
|
21
25
|
const IssueListing = {
|
|
26
|
+
repo: Repo,
|
|
22
27
|
state: z.enum(['open', 'closed', 'all']).optional(),
|
|
23
28
|
labels: z
|
|
24
29
|
.array(z
|
|
@@ -40,6 +45,7 @@ const SearchText = z
|
|
|
40
45
|
.max(256)
|
|
41
46
|
.regex(/^[^"\\\r\n]+$/u);
|
|
42
47
|
const RuntimeController = {
|
|
48
|
+
repo: Repo,
|
|
43
49
|
identity: z.string().min(1).optional(),
|
|
44
50
|
expectedSourceCommit: z.string().regex(/^[a-f0-9]{40}$/u),
|
|
45
51
|
expectedConfigDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/u),
|
|
@@ -50,7 +56,7 @@ export const AI_DELIVERY_MCP_TOOLS = [
|
|
|
50
56
|
name: 'issue_comment',
|
|
51
57
|
commandName: 'comment',
|
|
52
58
|
description: 'Post a typed issue journal with authoritative comment readback',
|
|
53
|
-
inputSchema: JournalInputSchema,
|
|
59
|
+
inputSchema: JournalInputSchema.extend({ repo: Repo }),
|
|
54
60
|
},
|
|
55
61
|
{
|
|
56
62
|
name: 'runtime_stage',
|
|
@@ -102,7 +108,7 @@ export const AI_DELIVERY_MCP_TOOLS = [
|
|
|
102
108
|
{
|
|
103
109
|
name: 'issue_start',
|
|
104
110
|
commandName: 'start',
|
|
105
|
-
description: 'Create or resume a tracked issue and
|
|
111
|
+
description: 'Create or resume a tracked issue and its GitHub-linked branch',
|
|
106
112
|
inputSchema: z.strictObject({
|
|
107
113
|
...Tracking,
|
|
108
114
|
body: Tracking.body.optional(),
|
|
@@ -112,9 +118,8 @@ export const AI_DELIVERY_MCP_TOOLS = [
|
|
|
112
118
|
title: Tracking.title.optional(),
|
|
113
119
|
issueNumber: Positive.optional(),
|
|
114
120
|
request: z.string().min(1).optional(),
|
|
115
|
-
|
|
121
|
+
requestId: z.string().trim().min(1).max(256).optional(),
|
|
116
122
|
resumeCreated: z.boolean().optional(),
|
|
117
|
-
scratch: z.boolean().optional(),
|
|
118
123
|
branch: z.string().min(1).optional(),
|
|
119
124
|
}),
|
|
120
125
|
},
|
|
@@ -136,6 +141,7 @@ export const AI_DELIVERY_MCP_TOOLS = [
|
|
|
136
141
|
description: 'Update native issue fields and exact relationship sets with readback',
|
|
137
142
|
inputSchema: z
|
|
138
143
|
.strictObject({
|
|
144
|
+
repo: Repo,
|
|
139
145
|
blockedBy: z.array(Positive).optional(),
|
|
140
146
|
body: z.string().optional(),
|
|
141
147
|
issueNumber: Positive,
|
|
@@ -157,8 +163,8 @@ export const AI_DELIVERY_MCP_TOOLS = [
|
|
|
157
163
|
{
|
|
158
164
|
name: 'issue_info',
|
|
159
165
|
commandName: 'info',
|
|
160
|
-
description: 'Read live issue metadata, relationships
|
|
161
|
-
inputSchema: z.strictObject({ issueNumber: Positive,
|
|
166
|
+
description: 'Read live issue metadata, relationships and Project status',
|
|
167
|
+
inputSchema: z.strictObject({ issueNumber: Positive, repo: Repo }),
|
|
162
168
|
},
|
|
163
169
|
{
|
|
164
170
|
name: 'issue_ready_check',
|
|
@@ -166,53 +172,32 @@ export const AI_DELIVERY_MCP_TOOLS = [
|
|
|
166
172
|
description: 'Evaluate deterministic readiness from live native issue state',
|
|
167
173
|
inputSchema: z.strictObject({ issueNumber: Positive, repo: Tracking.repo }),
|
|
168
174
|
},
|
|
169
|
-
{
|
|
170
|
-
name: 'issue_develop',
|
|
171
|
-
commandName: 'develop',
|
|
172
|
-
description: 'Prepare the one registered issue worktree after readiness passes',
|
|
173
|
-
inputSchema: z.strictObject({ issueNumber: Positive, assignee: z.string().min(1).optional() }),
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
name: 'issue_verify',
|
|
177
|
-
commandName: 'verify',
|
|
178
|
-
description: 'Resume exact-head policy stages and produce versioned delivery evidence',
|
|
179
|
-
inputSchema: z.strictObject({
|
|
180
|
-
issueNumber: Positive,
|
|
181
|
-
admit: z.array(z.string().min(1)).optional(),
|
|
182
|
-
prepublicationReview: z.string().min(1).optional(),
|
|
183
|
-
resourceBounds: z
|
|
184
|
-
.strictObject({
|
|
185
|
-
maxAggregateRssBytes: z.number().int().positive().safe(),
|
|
186
|
-
maxNewOutputBytes: z.number().int().positive().safe().optional(),
|
|
187
|
-
minFreeDiskBytes: z.number().int().positive().safe(),
|
|
188
|
-
outputRoots: z.array(z.string().min(1)).min(1).optional(),
|
|
189
|
-
})
|
|
190
|
-
.optional(),
|
|
191
|
-
}),
|
|
192
|
-
},
|
|
193
175
|
{
|
|
194
176
|
name: 'issue_pr_create',
|
|
195
177
|
commandName: 'pr:create',
|
|
196
|
-
description: '
|
|
178
|
+
description: 'Create or reuse a PR from its GitHub-linked issue branch',
|
|
197
179
|
inputSchema: z.strictObject({
|
|
180
|
+
repo: Repo,
|
|
198
181
|
issueNumber: Positive,
|
|
199
182
|
body: z.string().min(1).optional(),
|
|
200
183
|
draft: z.boolean().optional(),
|
|
201
184
|
dryRun: z.boolean().optional(),
|
|
202
185
|
title: z.string().min(1).optional(),
|
|
186
|
+
headBranch: z.string().min(1).optional(),
|
|
203
187
|
}),
|
|
204
188
|
},
|
|
205
189
|
{
|
|
206
190
|
name: 'issue_pr_info',
|
|
207
191
|
commandName: 'pr:info',
|
|
208
|
-
description: 'Inspect a PR by
|
|
209
|
-
inputSchema: z.strictObject({ issueNumber: Positive.optional(), prNumber: Positive.optional() }),
|
|
192
|
+
description: 'Inspect a PR by number or its GitHub-linked issue branch',
|
|
193
|
+
inputSchema: z.strictObject({ repo: Repo, issueNumber: Positive.optional(), prNumber: Positive.optional() }),
|
|
210
194
|
},
|
|
211
195
|
{
|
|
212
196
|
name: 'issue_pr_review',
|
|
213
197
|
commandName: 'pr:review',
|
|
214
198
|
description: 'Submit one existing exact-head independent review with the reviewer App role',
|
|
215
199
|
inputSchema: z.strictObject({
|
|
200
|
+
repo: Repo,
|
|
216
201
|
issueNumber: Positive,
|
|
217
202
|
prNumber: Positive,
|
|
218
203
|
artifact: z.string().min(1),
|
|
@@ -225,8 +210,13 @@ export const AI_DELIVERY_MCP_TOOLS = [
|
|
|
225
210
|
commandName: 'pr:merge',
|
|
226
211
|
description: 'Guarded exact-head merge with live blocker, check and review readback',
|
|
227
212
|
inputSchema: z.strictObject({
|
|
213
|
+
repo: Repo,
|
|
228
214
|
issueNumber: Positive,
|
|
229
215
|
prNumber: Positive,
|
|
216
|
+
reviewedHeadSha: z
|
|
217
|
+
.string()
|
|
218
|
+
.regex(/^[a-f0-9]{40}$/u)
|
|
219
|
+
.optional(),
|
|
230
220
|
strategy: z.enum(['merge', 'squash', 'rebase']).optional(),
|
|
231
221
|
dryRun: z.boolean().optional(),
|
|
232
222
|
}),
|
|
@@ -234,25 +224,25 @@ export const AI_DELIVERY_MCP_TOOLS = [
|
|
|
234
224
|
{
|
|
235
225
|
name: 'issue_finish',
|
|
236
226
|
commandName: 'finish',
|
|
237
|
-
description: 'Resume merge
|
|
227
|
+
description: 'Resume a guarded merge and close its issue after merged-PR readback',
|
|
238
228
|
inputSchema: z.strictObject({
|
|
229
|
+
repo: Repo,
|
|
239
230
|
issueNumber: Positive,
|
|
240
231
|
prNumber: Positive,
|
|
232
|
+
reviewedHeadSha: z
|
|
233
|
+
.string()
|
|
234
|
+
.regex(/^[a-f0-9]{40}$/u)
|
|
235
|
+
.optional(),
|
|
241
236
|
strategy: z.enum(['merge', 'squash', 'rebase']).optional(),
|
|
242
237
|
dryRun: z.boolean().optional(),
|
|
243
238
|
}),
|
|
244
239
|
},
|
|
245
|
-
{
|
|
246
|
-
name: 'issue_worktree_create',
|
|
247
|
-
commandName: 'worktree:create',
|
|
248
|
-
description: 'Prepare one explicit standalone worktree without an issue',
|
|
249
|
-
inputSchema: z.strictObject({ name: z.string().min(1), branch: z.string().min(1) }),
|
|
250
|
-
},
|
|
251
240
|
{
|
|
252
241
|
name: 'issue_worktree_transition_inspect',
|
|
253
242
|
commandName: 'worktree:transition:inspect',
|
|
254
243
|
description: 'Read a legacy issue row, original evidence and exact closure gaps without changing ownership',
|
|
255
244
|
inputSchema: z.strictObject({
|
|
245
|
+
repo: Repo,
|
|
256
246
|
issueNumber: Positive,
|
|
257
247
|
purpose: z.enum(['active-resume', 'merged-cleanup']),
|
|
258
248
|
disposition: z.enum(['retain', 'remove']).optional(),
|
|
@@ -267,6 +257,7 @@ export const AI_DELIVERY_MCP_TOOLS = [
|
|
|
267
257
|
commandName: 'worktree:transition:apply',
|
|
268
258
|
description: 'Apply or resume one exact independently accepted transition with immutable preservation and closure proof',
|
|
269
259
|
inputSchema: z.strictObject({
|
|
260
|
+
repo: Repo,
|
|
270
261
|
authority: z.literal('worktree:transition'),
|
|
271
262
|
planPath: z.string().min(1),
|
|
272
263
|
expectedPlanId: z.string().regex(/^sha256:[a-f0-9]{64}$/u),
|
package/dist/mcp/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,137 @@ 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 bundled launcher creates and updates 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
|
+
if (launchCheckout) {
|
|
53
|
+
execFileSync('git', ['init', '-q', directory]);
|
|
54
|
+
execFileSync('git', ['remote', 'add', 'origin', 'https://github.com/example/a.git'], { cwd: directory });
|
|
55
|
+
}
|
|
56
|
+
const preload = join(directory, 'mock-github.mjs');
|
|
57
|
+
const calls = join(directory, 'requests.json');
|
|
58
|
+
const settings = join(directory, 'user.json');
|
|
59
|
+
writeFileSync(settings, JSON.stringify({
|
|
60
|
+
schemaVersion: 'ai-delivery.user@1',
|
|
61
|
+
roles: {
|
|
62
|
+
author: { authSource: 'personal', identity: 'operator', credentialEnv: { token: 'SYNTHETIC_TOKEN' } },
|
|
63
|
+
reviewer: {
|
|
64
|
+
identity: 'reviewer',
|
|
65
|
+
credentialEnv: { appId: 'REVIEW_APP', installationId: 'REVIEW_INSTALL', privateKeyPath: 'REVIEW_KEY' },
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
project: 1,
|
|
69
|
+
checkoutRoots: [],
|
|
70
|
+
pointsField: 'Estimate',
|
|
71
|
+
priorityField: 'Urgency',
|
|
72
|
+
statusField: 'Flow',
|
|
73
|
+
statuses: syntheticDiscoveryConfig.native.project.statuses,
|
|
74
|
+
}));
|
|
75
|
+
writeFileSync(preload, `
|
|
76
|
+
import {writeFileSync} from 'node:fs';
|
|
77
|
+
import {syntheticDiscoveryClients} from ${JSON.stringify(new URL('./fixtures/discovery.js', import.meta.url).href)};
|
|
78
|
+
const configuration=${JSON.stringify(syntheticDiscoveryConfig)};
|
|
79
|
+
const requests=[];
|
|
80
|
+
let issue={id:117,number:17,node_id:'ISSUE17',title:'Widget',body:'',state:'open',labels:[],html_url:'https://github.com/example/b/issues/17'};
|
|
81
|
+
const page=nodes=>({nodes,pageInfo:{hasNextPage:false,endCursor:null}});
|
|
82
|
+
globalThis.fetch=async(url,init)=>{
|
|
83
|
+
const path=new URL(String(url)).pathname;const method=init?.method??'GET';
|
|
84
|
+
requests.push({path,method});writeFileSync(${JSON.stringify(calls)},JSON.stringify(requests));
|
|
85
|
+
const json=init?.body?JSON.parse(init.body):{};
|
|
86
|
+
let data;
|
|
87
|
+
if(path==='/graphql'){
|
|
88
|
+
const query=json.query;
|
|
89
|
+
if(query.includes('ProjectDeliveryItems'))data={organization:{projectV2:{items:page([{id:'ITEM17',isArchived:false,content:{id:'ISSUE17'},fieldValueByName:{name:'Queued',optionId:'STATUS-0'}}])}}};
|
|
90
|
+
else if(query.includes('blockedBy('))data={repository:{issue:{parent:null,blockedBy:page([])}}};
|
|
91
|
+
else data=await syntheticDiscoveryClients({...configuration,repository:'example/'+(json.variables?.repo??'b')}).graphql(query,json.variables);
|
|
92
|
+
return new Response(JSON.stringify({data}),{status:200,headers:{'content-type':'application/json'}});
|
|
93
|
+
}
|
|
94
|
+
if(path.endsWith('/labels'))data=[{name:'enhancement'},{name:'bug'}];
|
|
95
|
+
else if(path.endsWith('/issue-field-values'))data=[];
|
|
96
|
+
else if(path.endsWith('/issues')&&method==='POST'){issue={...issue,...json};data=issue;}
|
|
97
|
+
else if(path.endsWith('/issues/17')){if(method==='PATCH')issue={...issue,...json};data=issue;}
|
|
98
|
+
else throw new Error('Unexpected synthetic request '+method+' '+path);
|
|
99
|
+
return new Response(JSON.stringify(data),{status:200,headers:{'content-type':'application/json'}});
|
|
100
|
+
};
|
|
101
|
+
`);
|
|
102
|
+
const transport = new StdioClientTransport({
|
|
103
|
+
command: process.execPath,
|
|
104
|
+
args: [join(pluginRoot, 'dist', 'mcp-launcher.js')],
|
|
105
|
+
cwd: directory,
|
|
106
|
+
env: {
|
|
107
|
+
PATH: process.env.PATH ?? '',
|
|
108
|
+
TMPDIR: tmpdir(),
|
|
109
|
+
AI_DELIVERY_CONFIG: settings,
|
|
110
|
+
SYNTHETIC_TOKEN: 'inert-personal-token',
|
|
111
|
+
NODE_OPTIONS: `--v8-pool-size=1 --import=${preload}`,
|
|
112
|
+
},
|
|
113
|
+
stderr: 'pipe',
|
|
114
|
+
});
|
|
115
|
+
const client = new Client({ name: 'actual-launch-routing', version: '1' });
|
|
116
|
+
try {
|
|
117
|
+
await client.connect(transport, { timeout: 30000 });
|
|
118
|
+
const created = await client.callTool({
|
|
119
|
+
name: 'issue_create',
|
|
120
|
+
arguments: { repo: 'example/b', title: 'Widget', labels: ['enhancement'] },
|
|
121
|
+
});
|
|
122
|
+
assert.equal(created.isError, undefined, JSON.stringify(created));
|
|
123
|
+
const updated = await client.callTool({
|
|
124
|
+
name: 'issue_update',
|
|
125
|
+
arguments: { repo: 'example/b', issueNumber: 17, labels: ['bug'] },
|
|
126
|
+
});
|
|
127
|
+
assert.equal(updated.isError, undefined, JSON.stringify(updated));
|
|
128
|
+
const unknown = await client.callTool({
|
|
129
|
+
name: 'issue_create',
|
|
130
|
+
arguments: { repo: 'example/b', title: 'Unknown', labels: ['missing-label'] },
|
|
131
|
+
});
|
|
132
|
+
assert.equal(unknown.isError, true);
|
|
133
|
+
assert.match(JSON.stringify(unknown), /Unknown repository label.*missing-label/u);
|
|
134
|
+
const requests = JSON.parse(readFileSync(calls, 'utf8'));
|
|
135
|
+
assert.equal(requests.filter((call) => call.path.endsWith('/issues') && call.method === 'POST').length, 1);
|
|
136
|
+
assert.equal(existsSync(join(directory, '.issue-cli')), false);
|
|
137
|
+
}
|
|
138
|
+
finally {
|
|
139
|
+
await client.close();
|
|
140
|
+
await transport.close();
|
|
141
|
+
rmSync(directory, { recursive: true, force: true });
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
}
|
|
16
145
|
test('CLI reports the selected package version', () => {
|
|
17
146
|
const displayed = execFileSync(process.execPath, [join(packageRoot, 'dist', 'cli.js'), '--version'], {
|
|
18
147
|
encoding: 'utf8',
|