@aviaratech/ai-delivery 0.1.0

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 (140) hide show
  1. package/CONTRIBUTING.md +47 -0
  2. package/LICENSE +21 -0
  3. package/README.md +84 -0
  4. package/dist/agent.d.ts +17 -0
  5. package/dist/agent.js +16 -0
  6. package/dist/agent.js.map +1 -0
  7. package/dist/cli.d.ts +2 -0
  8. package/dist/cli.js +314 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/cliResult.d.ts +2 -0
  11. package/dist/cliResult.js +12 -0
  12. package/dist/cliResult.js.map +1 -0
  13. package/dist/cliResult.test.d.ts +1 -0
  14. package/dist/cliResult.test.js +30 -0
  15. package/dist/cliResult.test.js.map +1 -0
  16. package/dist/config/deliveryConfig.d.ts +113 -0
  17. package/dist/config/deliveryConfig.js +261 -0
  18. package/dist/config/deliveryConfig.js.map +1 -0
  19. package/dist/config/deliveryConfig.test.d.ts +1 -0
  20. package/dist/config/deliveryConfig.test.js +355 -0
  21. package/dist/config/deliveryConfig.test.js.map +1 -0
  22. package/dist/delivery/common.d.ts +28 -0
  23. package/dist/delivery/common.js +117 -0
  24. package/dist/delivery/common.js.map +1 -0
  25. package/dist/delivery/delivery.test.d.ts +1 -0
  26. package/dist/delivery/delivery.test.js +234 -0
  27. package/dist/delivery/delivery.test.js.map +1 -0
  28. package/dist/delivery/evidence.d.ts +92 -0
  29. package/dist/delivery/evidence.js +126 -0
  30. package/dist/delivery/evidence.js.map +1 -0
  31. package/dist/delivery/index.d.ts +8 -0
  32. package/dist/delivery/index.js +5 -0
  33. package/dist/delivery/index.js.map +1 -0
  34. package/dist/delivery/policy.d.ts +237 -0
  35. package/dist/delivery/policy.js +246 -0
  36. package/dist/delivery/policy.js.map +1 -0
  37. package/dist/delivery/stage.d.ts +125 -0
  38. package/dist/delivery/stage.js +218 -0
  39. package/dist/delivery/stage.js.map +1 -0
  40. package/dist/dispatch.d.ts +15 -0
  41. package/dist/dispatch.js +397 -0
  42. package/dist/dispatch.js.map +1 -0
  43. package/dist/errors.d.ts +4 -0
  44. package/dist/errors.js +9 -0
  45. package/dist/errors.js.map +1 -0
  46. package/dist/genericCompatibility.test.d.ts +1 -0
  47. package/dist/genericCompatibility.test.js +92 -0
  48. package/dist/genericCompatibility.test.js.map +1 -0
  49. package/dist/git.d.ts +13 -0
  50. package/dist/git.js +65 -0
  51. package/dist/git.js.map +1 -0
  52. package/dist/github/client.d.ts +34 -0
  53. package/dist/github/client.js +143 -0
  54. package/dist/github/client.js.map +1 -0
  55. package/dist/github/commandIdentityPolicy.d.ts +13 -0
  56. package/dist/github/commandIdentityPolicy.js +46 -0
  57. package/dist/github/commandIdentityPolicy.js.map +1 -0
  58. package/dist/github/nativeIssueMetadata.d.ts +78 -0
  59. package/dist/github/nativeIssueMetadata.js +249 -0
  60. package/dist/github/nativeIssueMetadata.js.map +1 -0
  61. package/dist/github/projectDelivery.d.ts +68 -0
  62. package/dist/github/projectDelivery.js +540 -0
  63. package/dist/github/projectDelivery.js.map +1 -0
  64. package/dist/github/relationships.d.ts +69 -0
  65. package/dist/github/relationships.js +395 -0
  66. package/dist/github/relationships.js.map +1 -0
  67. package/dist/github/repo.d.ts +8 -0
  68. package/dist/github/repo.js +34 -0
  69. package/dist/github/repo.js.map +1 -0
  70. package/dist/index.d.ts +2 -0
  71. package/dist/index.js +3 -0
  72. package/dist/index.js.map +1 -0
  73. package/dist/issue.d.ts +86 -0
  74. package/dist/issue.js +347 -0
  75. package/dist/issue.js.map +1 -0
  76. package/dist/lifecycle.test.d.ts +1 -0
  77. package/dist/lifecycle.test.js +1118 -0
  78. package/dist/lifecycle.test.js.map +1 -0
  79. package/dist/logger.d.ts +21 -0
  80. package/dist/logger.js +86 -0
  81. package/dist/logger.js.map +1 -0
  82. package/dist/mcp/index.d.ts +5 -0
  83. package/dist/mcp/index.js +46 -0
  84. package/dist/mcp/index.js.map +1 -0
  85. package/dist/mcp/tools.d.ts +162 -0
  86. package/dist/mcp/tools.js +154 -0
  87. package/dist/mcp/tools.js.map +1 -0
  88. package/dist/pr.d.ts +146 -0
  89. package/dist/pr.js +972 -0
  90. package/dist/pr.js.map +1 -0
  91. package/dist/pr.test.d.ts +1 -0
  92. package/dist/pr.test.js +252 -0
  93. package/dist/pr.test.js.map +1 -0
  94. package/dist/review.d.ts +104 -0
  95. package/dist/review.js +228 -0
  96. package/dist/review.js.map +1 -0
  97. package/dist/review.test.d.ts +1 -0
  98. package/dist/review.test.js +327 -0
  99. package/dist/review.test.js.map +1 -0
  100. package/dist/services/agentReadinessService.d.ts +17 -0
  101. package/dist/services/agentReadinessService.js +225 -0
  102. package/dist/services/agentReadinessService.js.map +1 -0
  103. package/dist/services/deliveryAdmission.d.ts +33 -0
  104. package/dist/services/deliveryAdmission.js +122 -0
  105. package/dist/services/deliveryAdmission.js.map +1 -0
  106. package/dist/services/deliveryRecordService.d.ts +47 -0
  107. package/dist/services/deliveryRecordService.js +199 -0
  108. package/dist/services/deliveryRecordService.js.map +1 -0
  109. package/dist/services/legacyIssueMigration.d.ts +46 -0
  110. package/dist/services/legacyIssueMigration.js +313 -0
  111. package/dist/services/legacyIssueMigration.js.map +1 -0
  112. package/dist/services/worktreeRegistry.d.ts +67 -0
  113. package/dist/services/worktreeRegistry.js +545 -0
  114. package/dist/services/worktreeRegistry.js.map +1 -0
  115. package/dist/terminalMessages.d.ts +13 -0
  116. package/dist/terminalMessages.js +43 -0
  117. package/dist/terminalMessages.js.map +1 -0
  118. package/dist/utils/atomicJson.d.ts +6 -0
  119. package/dist/utils/atomicJson.js +78 -0
  120. package/dist/utils/atomicJson.js.map +1 -0
  121. package/dist/utils/filesystem.d.ts +9 -0
  122. package/dist/utils/filesystem.js +19 -0
  123. package/dist/utils/filesystem.js.map +1 -0
  124. package/dist/utils/lockfile.d.ts +12 -0
  125. package/dist/utils/lockfile.js +78 -0
  126. package/dist/utils/lockfile.js.map +1 -0
  127. package/dist/verification.d.ts +24 -0
  128. package/dist/verification.js +227 -0
  129. package/dist/verification.js.map +1 -0
  130. package/dist/worktree.d.ts +44 -0
  131. package/dist/worktree.js +255 -0
  132. package/dist/worktree.js.map +1 -0
  133. package/package.json +82 -0
  134. package/plugins/ai-delivery/.claude-plugin/plugin.json +6 -0
  135. package/plugins/ai-delivery/.mcp.json +8 -0
  136. package/plugins/ai-delivery/README.md +5 -0
  137. package/plugins/ai-delivery/dist/mcp-launcher.js +22 -0
  138. package/plugins/ai-delivery/skills/intake-create/SKILL.md +26 -0
  139. package/plugins/ai-delivery/skills/pr-handoff/SKILL.md +28 -0
  140. package/plugins/ai-delivery/skills/worktree-lifecycle/SKILL.md +24 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deliveryRecordService.js","sourceRoot":"","sources":["../../src/services/deliveryRecordService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import type { ConfiguredNativeIssueMetadata as NativeIssueMetadata } from '../github/nativeIssueMetadata.js';
2
+ import type { ProjectDeliveryStatus } from '../github/projectDelivery.js';
3
+ export interface CanonicalMigratedIssueState extends NativeIssueMetadata {
4
+ blockedBy: number[];
5
+ issueType?: string;
6
+ projectStatus: ProjectDeliveryStatus;
7
+ }
8
+ export interface LegacyIssueMigrationInput {
9
+ body: string;
10
+ existingNative?: LegacyNativeIssueState | undefined;
11
+ labels: string[];
12
+ resolvedLegacyBlockers?: LegacyNativeBlockerRelationship[] | undefined;
13
+ trackingParent?: boolean | undefined;
14
+ }
15
+ export interface LegacyIssueMigrationPlan extends LegacyIssueMigrationResult {
16
+ number: number;
17
+ }
18
+ export interface LegacyIssueMigrationResult {
19
+ body: string;
20
+ clearPoints: boolean;
21
+ native: CanonicalMigratedIssueState;
22
+ retainedLabels: string[];
23
+ retiredLabels: string[];
24
+ }
25
+ export interface LegacyIssueMigrationRun {
26
+ mode: 'dry-run';
27
+ plans: LegacyIssueMigrationPlan[];
28
+ retiredRepositoryLabels: string[];
29
+ schemaVersion: 'ai-delivery.legacy-issue-migration@1';
30
+ validated: number;
31
+ }
32
+ /** Offline only: emit native conversion plans without touching live issues or active receipts. */
33
+ export declare function planOfflineLegacyIssueMigration(raw: unknown): LegacyIssueMigrationRun;
34
+ export interface LegacyNativeBlockerRelationship {
35
+ number: number;
36
+ state: 'CLOSED' | 'OPEN';
37
+ }
38
+ export interface LegacyNativeIssueState extends NativeIssueMetadata {
39
+ blockedBy: LegacyNativeBlockerRelationship[];
40
+ issueType?: string;
41
+ projectStatus?: ProjectDeliveryStatus;
42
+ }
43
+ export declare function normalizeLegacyIssue(input: LegacyIssueMigrationInput): LegacyIssueMigrationResult;
44
+ /** Read legacy dependency declarations without activating them as a runtime workflow contract. */
45
+ export declare function readLegacyBlockerNumbers(body: string): number[];
46
+ export declare function resolveRetiredRepositoryLabels(labels: readonly string[]): string[];
@@ -0,0 +1,313 @@
1
+ import { DeliveryError } from '../errors.js';
2
+ import { z } from 'zod';
3
+ const isRetainedTaxonomyLabel = (value) => /^(?:area|risk):[^\s:]+$/u.test(value);
4
+ const isRetainedIssueLabel = isRetainedTaxonomyLabel;
5
+ const MigrationIssueSchema = z
6
+ .object({
7
+ number: z.number().int().positive(),
8
+ body: z.string(),
9
+ labels: z.array(z.string()),
10
+ trackingParent: z.boolean().optional(),
11
+ resolvedLegacyBlockers: z
12
+ .array(z.object({ number: z.number().int().positive(), state: z.enum(['OPEN', 'CLOSED']) }).strict())
13
+ .optional(),
14
+ existingNative: z
15
+ .object({
16
+ blockedBy: z.array(z.object({ number: z.number().int().positive(), state: z.enum(['OPEN', 'CLOSED']) }).strict()),
17
+ issueType: z.string().optional(),
18
+ points: z.number().int().positive().optional(),
19
+ priority: z.string().optional(),
20
+ projectStatus: z.enum(['Todo', 'In Progress', 'Blocked', 'Done']).optional(),
21
+ })
22
+ .strict()
23
+ .optional(),
24
+ })
25
+ .strict();
26
+ /** Offline only: emit native conversion plans without touching live issues or active receipts. */
27
+ export function planOfflineLegacyIssueMigration(raw) {
28
+ const input = z
29
+ .object({ issues: z.array(MigrationIssueSchema), repositoryLabels: z.array(z.string()).optional() })
30
+ .strict()
31
+ .parse(raw);
32
+ const numbers = input.issues.map((issue) => issue.number);
33
+ if (new Set(numbers).size !== numbers.length)
34
+ throw new DeliveryError('Legacy issue input repeats an issue number.');
35
+ return {
36
+ mode: 'dry-run',
37
+ plans: input.issues.map((issue) => {
38
+ const native = issue.existingNative;
39
+ const existingNative = native === undefined
40
+ ? undefined
41
+ : {
42
+ blockedBy: native.blockedBy,
43
+ ...(native.issueType === undefined ? {} : { issueType: native.issueType }),
44
+ ...(native.points === undefined ? {} : { points: native.points }),
45
+ ...(native.priority === undefined ? {} : { priority: native.priority }),
46
+ ...(native.projectStatus === undefined ? {} : { projectStatus: native.projectStatus }),
47
+ };
48
+ return {
49
+ number: issue.number,
50
+ ...normalizeLegacyIssue({
51
+ body: issue.body,
52
+ labels: issue.labels,
53
+ ...(existingNative === undefined ? {} : { existingNative }),
54
+ ...(issue.resolvedLegacyBlockers === undefined
55
+ ? {}
56
+ : { resolvedLegacyBlockers: issue.resolvedLegacyBlockers }),
57
+ ...(issue.trackingParent === undefined ? {} : { trackingParent: issue.trackingParent }),
58
+ }),
59
+ };
60
+ }),
61
+ retiredRepositoryLabels: resolveRetiredRepositoryLabels(input.repositoryLabels ?? []),
62
+ schemaVersion: 'ai-delivery.legacy-issue-migration@1',
63
+ validated: 0,
64
+ };
65
+ }
66
+ const effortPoints = new Map([
67
+ ['effort:l', 5],
68
+ ['effort:m', 3],
69
+ ['effort:medium', 3],
70
+ ['effort:s', 2],
71
+ ['effort:xl', 8],
72
+ ['effort:xs', 1],
73
+ ]);
74
+ const priorityValues = new Map([
75
+ ['priority:high', 'P1'],
76
+ ['priority:p0', 'P0'],
77
+ ['priority:p1', 'P1'],
78
+ ['priority:p2', 'P2'],
79
+ ['priority:p3', 'P3'],
80
+ ['priority:p4', 'P4'],
81
+ ]);
82
+ const typeValues = new Map([
83
+ ['type:bug', 'Bug'],
84
+ ['type:design', 'Task'],
85
+ ['type:epic', 'Task'],
86
+ ['type:feature', 'Feature'],
87
+ ['type:spike', 'Task'],
88
+ ['type:task', 'Task'],
89
+ ['type:tracking', 'Task'],
90
+ ]);
91
+ export function normalizeLegacyIssue(input) {
92
+ const labels = [...new Set(input.labels.map((label) => label.trim()).filter(Boolean))];
93
+ const legacyBody = normalizeLegacyBody(input.body);
94
+ const executionContract = readCommentObject(input.body, 'executionContract');
95
+ const dependencyDeclaration = readCommentObject(input.body, 'dependencyDeclaration');
96
+ const related = readCommentObject(input.body, 'related');
97
+ const existingBlockers = normalizeNativeBlockers([
98
+ ...(input.existingNative?.blockedBy ?? []),
99
+ ...(input.resolvedLegacyBlockers ?? []),
100
+ ]);
101
+ const legacyBlockers = resolveBlockedBy({ dependencyDeclaration, executionContract, related });
102
+ const blockedBy = [...new Set([...existingBlockers.keys(), ...legacyBlockers])].sort((left, right) => left - right);
103
+ const unresolvedBlockers = new Set(blockedBy.filter((number) => existingBlockers.get(number) !== 'CLOSED'));
104
+ const hasLegacyTrackingLabel = labels.some((label) => label.toLowerCase() === 'type:tracking');
105
+ if (hasLegacyTrackingLabel && input.trackingParent !== true) {
106
+ throw new DeliveryError('Legacy type:tracking requires a native sub-issue relationship before its label can be retired.');
107
+ }
108
+ const trackingParent = input.trackingParent === true;
109
+ const points = trackingParent
110
+ ? undefined
111
+ : (input.existingNative?.points ??
112
+ resolvePoints({
113
+ ...(legacyBody.points === undefined ? {} : { bodyPoint: legacyBody.points }),
114
+ executionContract,
115
+ labels,
116
+ }));
117
+ const priority = input.existingNative?.priority ?? resolveSingleMappedValue({ label: 'priority', labels, mapping: priorityValues });
118
+ const issueType = input.existingNative?.issueType ?? resolveSingleMappedValue({ label: 'issue type', labels, mapping: typeValues });
119
+ if (input.existingNative?.projectStatus === 'Done') {
120
+ throw new DeliveryError('An open issue cannot retain Project Done during legacy migration.');
121
+ }
122
+ const projectStatus = resolveMigrationProjectStatus({
123
+ existing: input.existingNative?.projectStatus,
124
+ labels,
125
+ unresolvedBlockers,
126
+ });
127
+ const retainedLabels = labels.filter(isRetainedTaxonomyLabel);
128
+ retainedLabels.sort();
129
+ const retiredLabels = labels.filter((label) => !retainedLabels.includes(label)).sort();
130
+ return {
131
+ body: removeLegacyComments(legacyBody.body),
132
+ clearPoints: trackingParent && input.existingNative?.points !== undefined,
133
+ native: {
134
+ blockedBy,
135
+ ...(issueType === undefined ? {} : { issueType }),
136
+ ...(points === undefined ? {} : { points }),
137
+ ...(priority === undefined ? {} : { priority }),
138
+ projectStatus,
139
+ },
140
+ retainedLabels,
141
+ retiredLabels,
142
+ };
143
+ }
144
+ /** Read legacy dependency declarations without activating them as a runtime workflow contract. */
145
+ export function readLegacyBlockerNumbers(body) {
146
+ return resolveBlockedBy({
147
+ dependencyDeclaration: readCommentObject(body, 'dependencyDeclaration'),
148
+ executionContract: readCommentObject(body, 'executionContract'),
149
+ related: readCommentObject(body, 'related'),
150
+ });
151
+ }
152
+ export function resolveRetiredRepositoryLabels(labels) {
153
+ return [...new Set(labels.map((label) => label.trim()).filter((label) => label.length > 0))]
154
+ .filter((label) => !isRetainedIssueLabel(label))
155
+ .sort((left, right) => left.localeCompare(right));
156
+ }
157
+ /**
158
+ * The sole legacy conversion path. Dry-run performs no writes; apply validates
159
+ * every open issue after mutation before retired labels may be deleted.
160
+ */
161
+ function normalizeLegacyBody(body) {
162
+ const lines = body.split(/\r?\n/u);
163
+ const headings = lines.flatMap((line, index) => (line.trim().toLowerCase() === '## fibonacci points' ? [index] : []));
164
+ if (headings.length === 0)
165
+ return { body };
166
+ if (headings.length > 1) {
167
+ throw new DeliveryError('Found duplicate legacy Fibonacci points sections.');
168
+ }
169
+ const start = headings[0];
170
+ if (start === undefined)
171
+ return { body };
172
+ let end = lines.length;
173
+ for (let index = start + 1; index < lines.length; index += 1) {
174
+ if (lines[index]?.trimStart().startsWith('## ') === true) {
175
+ end = index;
176
+ break;
177
+ }
178
+ }
179
+ const values = lines
180
+ .slice(start + 1, end)
181
+ .map((line) => line.trim())
182
+ .filter(Boolean);
183
+ if (values.length !== 1 || !/^(?:1|2|3|5|8|13)$/u.test(values[0] ?? '')) {
184
+ throw new DeliveryError('Legacy Fibonacci points section must contain exactly one supported numeric value.');
185
+ }
186
+ return {
187
+ body: [...lines.slice(0, start), ...lines.slice(end)].join('\n'),
188
+ points: Number(values[0]),
189
+ };
190
+ }
191
+ function isIssueNumber(value) {
192
+ return typeof value === 'number' && Number.isSafeInteger(value) && value > 0;
193
+ }
194
+ function normalizeNativeBlockers(blockers) {
195
+ const states = new Map();
196
+ for (const blocker of blockers) {
197
+ if (!isIssueNumber(blocker.number)) {
198
+ throw new DeliveryError('Native blocked-by relationship evidence is malformed.');
199
+ }
200
+ const existing = states.get(blocker.number);
201
+ if (existing !== undefined && existing !== blocker.state) {
202
+ throw new DeliveryError(`Native blocker #${String(blocker.number)} has conflicting relationship states.`);
203
+ }
204
+ states.set(blocker.number, blocker.state);
205
+ }
206
+ return states;
207
+ }
208
+ function parseLegacyIssueNumber(value) {
209
+ if (isIssueNumber(value)) {
210
+ return value;
211
+ }
212
+ if (typeof value !== 'string') {
213
+ return undefined;
214
+ }
215
+ const match = /^#?([1-9]\d*)$/u.exec(value.trim());
216
+ const parsed = match?.[1] === undefined ? Number.NaN : Number(match[1]);
217
+ return isIssueNumber(parsed) ? parsed : undefined;
218
+ }
219
+ function readCommentObject(body, key) {
220
+ const match = new RegExp(`<!--\\s*${key}:\\s*([\\s\\S]*?)\\s*-->`, 'u').exec(body);
221
+ const payload = match?.[1];
222
+ if (payload === undefined) {
223
+ return undefined;
224
+ }
225
+ try {
226
+ const parsed = JSON.parse(payload);
227
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
228
+ throw new Error('not an object');
229
+ }
230
+ return parsed;
231
+ }
232
+ catch {
233
+ throw new DeliveryError(`Invalid legacy ${key} payload.`);
234
+ }
235
+ }
236
+ function removeLegacyComments(body) {
237
+ return body.replace(/<!--\s*(?:executionContract|dependencyDeclaration|related):[\s\S]*?-->\s*/gu, '').trim();
238
+ }
239
+ function resolveBlockedBy({ dependencyDeclaration, executionContract, related, }) {
240
+ const values = [];
241
+ const dependencies = executionContract?.dependencies;
242
+ if (Array.isArray(dependencies)) {
243
+ for (const dependency of dependencies) {
244
+ if (typeof dependency !== 'object' || dependency === null)
245
+ continue;
246
+ const candidate = dependency;
247
+ const issueNumber = parseLegacyIssueNumber(candidate.issue);
248
+ if (candidate.type === 'blockedBy' && issueNumber !== undefined) {
249
+ values.push(issueNumber);
250
+ }
251
+ }
252
+ }
253
+ values.push(...resolveLegacyIssueNumbers(dependencyDeclaration?.blockedBy));
254
+ values.push(...resolveLegacyIssueNumbers(related?.blockedBy));
255
+ return [...new Set(values)].sort((left, right) => left - right);
256
+ }
257
+ function resolveLegacyIssueNumbers(raw) {
258
+ if (!Array.isArray(raw)) {
259
+ return [];
260
+ }
261
+ return raw.map(parseLegacyIssueNumber).filter((value) => value !== undefined);
262
+ }
263
+ function resolveMigrationProjectStatus(input) {
264
+ if (input.unresolvedBlockers.size > 0)
265
+ return 'Blocked';
266
+ const legacyTaskOwned = input.labels.some((label) => ['status:in-progress', 'status:review'].includes(label.toLowerCase()));
267
+ return input.existing === 'In Progress' || legacyTaskOwned ? 'In Progress' : 'Todo';
268
+ }
269
+ function resolvePoints(input) {
270
+ const candidates = [];
271
+ for (const label of input.labels) {
272
+ const effort = effortPoints.get(label.toLowerCase());
273
+ if (effort !== undefined) {
274
+ candidates.push(effort);
275
+ }
276
+ const pointMatch = /^points:(1|2|3|5|8|13)$/u.exec(label.toLowerCase());
277
+ if (pointMatch?.[1] !== undefined) {
278
+ candidates.push(Number(pointMatch[1]));
279
+ }
280
+ }
281
+ const contractEffort = input.executionContract?.effort;
282
+ if (typeof contractEffort === 'string') {
283
+ const normalized = contractEffort.startsWith('effort:') ? contractEffort : `effort:${contractEffort}`;
284
+ const mapped = effortPoints.get(normalized.toLowerCase());
285
+ if (mapped !== undefined) {
286
+ candidates.push(mapped);
287
+ }
288
+ }
289
+ if (input.bodyPoint !== undefined) {
290
+ candidates.push(input.bodyPoint);
291
+ }
292
+ const distinct = [...new Set(candidates)];
293
+ if (distinct.length > 1) {
294
+ throw new DeliveryError(`Found conflicting legacy sizing values: ${distinct.join(', ')}.`);
295
+ }
296
+ const [points] = distinct;
297
+ if (points === undefined) {
298
+ throw new DeliveryError('Issue has no canonical Fibonacci sizing value; assign native Points before migration.');
299
+ }
300
+ return points;
301
+ }
302
+ function resolveSingleMappedValue({ label, labels, mapping, }) {
303
+ const candidates = labels.flatMap((value) => {
304
+ const mapped = mapping.get(value.toLowerCase());
305
+ return mapped === undefined ? [] : [mapped];
306
+ });
307
+ const distinct = [...new Set(candidates)];
308
+ if (distinct.length > 1) {
309
+ throw new DeliveryError(`Found conflicting legacy ${label} values.`);
310
+ }
311
+ return distinct[0];
312
+ }
313
+ //# sourceMappingURL=legacyIssueMigration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacyIssueMigration.js","sourceRoot":"","sources":["../../src/services/legacyIssueMigration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ export interface WorktreeEntry {
2
+ branch: string;
3
+ createdAt: string;
4
+ /** Agent identity that prepared the worktree; hook-context commands (lint-guard) fall back to it. */
5
+ identity?: string;
6
+ issueNumber?: number;
7
+ path: string;
8
+ prNumber?: number;
9
+ status: WorktreeStatus;
10
+ type: 'issue' | 'pr' | 'standalone';
11
+ updatedAt: string;
12
+ }
13
+ export type WorktreeStatus = 'active' | 'error' | 'merged' | 'pr-published' | 'stale';
14
+ /** An immutable witness separates new rows from legacy rows in the same canonical registry. */
15
+ export declare function assertAiDeliveryWorktreeOwner(entry: WorktreeEntry, root: string): void;
16
+ /**
17
+ * The only recovery transition for a worktree that remained active after its
18
+ * delivery completed elsewhere. Callers must establish the terminal delivery
19
+ * from GitHub and immutable receipts before invoking this locked transition.
20
+ */
21
+ export interface CompletedIssueWorktreeReconciliation {
22
+ branch: string;
23
+ issueNumber: number;
24
+ path: string;
25
+ prNumber: number;
26
+ projectRoot?: string;
27
+ }
28
+ type IssueWorktreeDeliveryTransition = {
29
+ branch: string;
30
+ issueNumber: number;
31
+ path: string;
32
+ prNumber: number;
33
+ projectRoot?: string;
34
+ status: 'pr-published';
35
+ } | {
36
+ branch: string;
37
+ issueNumber: number;
38
+ path: string;
39
+ projectRoot?: string;
40
+ status: 'merged';
41
+ };
42
+ export declare function addWorktreeEntry(entry: WorktreeEntry, projectRoot?: string): Promise<void>;
43
+ /** Resolve the sole canonical issue row for a provider-mutating lifecycle transition. */
44
+ export declare function getIssueWorktreeStrict(issueNumber: number, projectRoot?: string): WorktreeEntry;
45
+ /** Tracking writes may target an issue without a worktree, but never adopt a foreign active row. */
46
+ export declare function assertNoForeignIssueWorktree(issueNumber: number, root: string): void;
47
+ export declare function getStaleWorktrees(daysOld: number, projectRoot?: string): WorktreeEntry[];
48
+ export declare function getWorktreeByIssue(issueNumber: number, projectRoot?: string): null | WorktreeEntry;
49
+ export declare function getWorktreeByPR(prNumber: number, projectRoot?: string): null | WorktreeEntry;
50
+ export declare function listWorktrees(projectRoot?: string): WorktreeEntry[];
51
+ /**
52
+ * Reads the registry for a terminal safety decision. Unlike the operational
53
+ * listing helper, this fails closed if an existing registry cannot be read.
54
+ */
55
+ export declare function listWorktreesStrict(projectRoot?: string): WorktreeEntry[];
56
+ export declare function markStaleEntries(thresholdMs: number, projectRoot?: string): Promise<number>;
57
+ /** Atomically reconcile one verified terminal PR without changing its original producer identity. */
58
+ export declare function reconcileCompletedIssueWorktreeDelivery(options: CompletedIssueWorktreeReconciliation): Promise<'already-reconciled' | 'reconciled'>;
59
+ /** Remove one exact active standalone row without weakening registry parsing or identity checks. */
60
+ export declare function removeActiveStandaloneWorktreeEntry(input: {
61
+ branch: string;
62
+ path: string;
63
+ projectRoot: string;
64
+ }): Promise<void>;
65
+ export declare function removeWorktreeEntry(path: string, projectRoot?: string): Promise<boolean>;
66
+ export declare function updateIssueWorktreeDelivery(options: IssueWorktreeDeliveryTransition): Promise<void>;
67
+ export {};