@bradtaylorsf/alpha-loop 1.15.0 → 1.15.1

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.
@@ -62,9 +62,6 @@ export function normalizePlanMilestones(draft) {
62
62
  : draft.issues;
63
63
  return { ...draft, milestones: normalized, issues };
64
64
  }
65
- /**
66
- * Normalize roadmap milestones and update assignment references.
67
- */
68
65
  export function normalizeRoadmapMilestones(milestones, assignments) {
69
66
  const originalTitles = milestones.map((ms) => ms.title);
70
67
  const normalized = normalizeMilestoneTitles(milestones);
@@ -74,13 +71,81 @@ export function normalizeRoadmapMilestones(milestones, assignments) {
74
71
  titleMap.set(originalTitles[i], normalized[i].title);
75
72
  }
76
73
  }
77
- const updatedAssignments = titleMap.size > 0
78
- ? assignments.map((a) => {
74
+ const updateAssignments = (items) => {
75
+ if (titleMap.size === 0)
76
+ return items;
77
+ return items.map((a) => {
79
78
  const mapped = titleMap.get(a.milestone);
80
79
  return mapped ? { ...a, milestone: mapped } : a;
81
- })
82
- : assignments;
83
- return { milestones: normalized, assignments: updatedAssignments };
80
+ });
81
+ };
82
+ if (Array.isArray(assignments)) {
83
+ return { milestones: normalized, assignments: updateAssignments(assignments) };
84
+ }
85
+ return {
86
+ milestones: normalized,
87
+ epicAssignments: updateAssignments(assignments.epicAssignments),
88
+ standaloneAssignments: updateAssignments(assignments.standaloneAssignments),
89
+ };
90
+ }
91
+ function normalizeRoadmapAssignment(value, context) {
92
+ if (!isRecord(value)) {
93
+ throw new Error(`${context} must be an object`);
94
+ }
95
+ const issueNum = value.issueNum;
96
+ if (!Number.isInteger(issueNum) || issueNum <= 0) {
97
+ throw new Error(`${context}.issueNum must be a positive integer`);
98
+ }
99
+ const title = value.title;
100
+ if (typeof title !== 'string' || title.trim().length === 0) {
101
+ throw new Error(`${context}.title must be a non-empty string`);
102
+ }
103
+ const milestone = value.milestone;
104
+ if (typeof milestone !== 'string' || milestone.trim().length === 0) {
105
+ throw new Error(`${context}.milestone must be a non-empty string`);
106
+ }
107
+ const currentMilestone = value.currentMilestone;
108
+ if (currentMilestone !== undefined && typeof currentMilestone !== 'string') {
109
+ throw new Error(`${context}.currentMilestone must be a string`);
110
+ }
111
+ const selected = value.selected;
112
+ if (selected !== undefined && typeof selected !== 'boolean') {
113
+ throw new Error(`${context}.selected must be a boolean`);
114
+ }
115
+ return {
116
+ issueNum: issueNum,
117
+ title: title.trim(),
118
+ milestone: milestone.trim(),
119
+ currentMilestone: typeof currentMilestone === 'string' ? currentMilestone.trim() : '',
120
+ selected: selected === undefined ? false : selected,
121
+ };
122
+ }
123
+ function normalizeRoadmapAssignmentArray(value, field) {
124
+ if (value === undefined)
125
+ return [];
126
+ if (!Array.isArray(value)) {
127
+ throw new Error(`Roadmap ${field} must be an array`);
128
+ }
129
+ return value.map((assignment, index) => normalizeRoadmapAssignment(assignment, `${field}[${index}]`));
130
+ }
131
+ /**
132
+ * Normalize roadmap JSON into split assignment arrays. Legacy `assignments`
133
+ * responses are accepted as standalone issue assignments for no-epic repos.
134
+ */
135
+ export function normalizeRoadmapPlan(value) {
136
+ if (!isRecord(value)) {
137
+ throw new Error('Roadmap plan must be a JSON object');
138
+ }
139
+ if (!Array.isArray(value.milestones)) {
140
+ throw new Error('Roadmap milestones must be an array');
141
+ }
142
+ const epicAssignments = normalizeRoadmapAssignmentArray(value.epicAssignments, 'epicAssignments');
143
+ const explicitStandaloneAssignments = normalizeRoadmapAssignmentArray(value.standaloneAssignments, 'standaloneAssignments');
144
+ const legacyAssignments = normalizeRoadmapAssignmentArray(value.assignments, 'assignments');
145
+ const standaloneAssignments = explicitStandaloneAssignments.length > 0 || value.standaloneAssignments !== undefined
146
+ ? explicitStandaloneAssignments
147
+ : legacyAssignments;
148
+ return normalizeRoadmapMilestones(value.milestones, { epicAssignments, standaloneAssignments });
84
149
  }
85
150
  /**
86
151
  * Extract JSON from an AI agent response that may include markdown fences,
@@ -139,6 +204,105 @@ export function extractJsonFromResponse(response) {
139
204
  throw new Error('Could not extract valid JSON from response. Expected a JSON object or array, ' +
140
205
  'optionally wrapped in ```json ... ``` fences.');
141
206
  }
207
+ function isRecord(value) {
208
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
209
+ }
210
+ function requireString(value, field, context) {
211
+ const raw = value[field];
212
+ if (typeof raw !== 'string' || raw.trim().length === 0) {
213
+ throw new Error(`${context}.${String(field)} must be a non-empty string`);
214
+ }
215
+ return raw.trim();
216
+ }
217
+ function requireStringArray(value, field, context) {
218
+ const raw = value[field];
219
+ if (!Array.isArray(raw) ||
220
+ raw.length === 0 ||
221
+ raw.some((item) => typeof item !== 'string' || item.trim().length === 0)) {
222
+ throw new Error(`${context}.${String(field)} must be a non-empty array of non-empty strings`);
223
+ }
224
+ return raw.map((item) => item.trim());
225
+ }
226
+ function requireIssueNumberArray(value, field, context) {
227
+ const raw = value[field];
228
+ if (!Array.isArray(raw) || raw.length < 2) {
229
+ throw new Error(`${context}.${String(field)} must include at least two issue numbers`);
230
+ }
231
+ const numbers = raw.map((item) => {
232
+ if (!Number.isInteger(item) || item <= 0) {
233
+ throw new Error(`${context}.${String(field)} must contain positive integer issue numbers`);
234
+ }
235
+ return item;
236
+ });
237
+ const unique = new Set(numbers);
238
+ if (unique.size !== numbers.length) {
239
+ throw new Error(`${context}.${String(field)} must not contain duplicate issue numbers`);
240
+ }
241
+ return numbers;
242
+ }
243
+ function normalizeSelected(value, context) {
244
+ const raw = value.selected;
245
+ if (raw === undefined)
246
+ return false;
247
+ if (typeof raw !== 'boolean') {
248
+ throw new Error(`${context}.selected must be a boolean`);
249
+ }
250
+ return raw;
251
+ }
252
+ function normalizeOptionalIssueNumber(value, field, context) {
253
+ const raw = value[field];
254
+ if (raw === undefined || raw === null)
255
+ return undefined;
256
+ if (typeof raw !== 'number' || !Number.isInteger(raw) || raw <= 0) {
257
+ throw new Error(`${context}.${String(field)} must be a positive integer issue number`);
258
+ }
259
+ return raw;
260
+ }
261
+ function normalizeProposedEpicGroup(value, index) {
262
+ const context = `epicGroups[${index}]`;
263
+ if (!isRecord(value)) {
264
+ throw new Error(`${context} must be an object`);
265
+ }
266
+ return {
267
+ title: requireString(value, 'title', context),
268
+ goal: requireString(value, 'goal', context),
269
+ rationale: requireString(value, 'rationale', context),
270
+ orderedChildIssueNumbers: requireIssueNumberArray(value, 'orderedChildIssueNumbers', context),
271
+ acceptanceCriteria: requireStringArray(value, 'acceptanceCriteria', context),
272
+ selected: normalizeSelected(value, context),
273
+ existingEpicIssueNum: normalizeOptionalIssueNumber(value, 'existingEpicIssueNum', context),
274
+ };
275
+ }
276
+ /**
277
+ * Normalize triage JSON into the current analysis shape. Legacy TriageFinding[]
278
+ * responses are still accepted so older agents fail gracefully.
279
+ */
280
+ export function normalizeTriageAnalysis(value) {
281
+ if (Array.isArray(value)) {
282
+ return { findings: value, epicGroups: [] };
283
+ }
284
+ if (!isRecord(value)) {
285
+ throw new Error('Triage analysis must be a JSON object with findings and epicGroups arrays');
286
+ }
287
+ const findings = value.findings ?? [];
288
+ const epicGroups = value.epicGroups ?? [];
289
+ if (!Array.isArray(findings)) {
290
+ throw new Error('Triage analysis findings must be an array');
291
+ }
292
+ if (!Array.isArray(epicGroups)) {
293
+ throw new Error('Triage analysis epicGroups must be an array');
294
+ }
295
+ return {
296
+ findings: findings,
297
+ epicGroups: epicGroups.map((group, index) => normalizeProposedEpicGroup(group, index)),
298
+ };
299
+ }
300
+ /**
301
+ * Extract and normalize a triage agent response.
302
+ */
303
+ export function parseTriageAnalysisResponse(response) {
304
+ return normalizeTriageAnalysis(extractJsonFromResponse(response));
305
+ }
142
306
  /**
143
307
  * Format a table of planned issues grouped by milestone, with colored
144
308
  * priority and complexity columns.
@@ -232,17 +396,62 @@ export function formatTriageFindings(findings) {
232
396
  }
233
397
  return lines.join('\n');
234
398
  }
399
+ /**
400
+ * Format proposed epic groups separately from per-issue cleanup findings.
401
+ */
402
+ export function formatEpicGroupProposals(groups) {
403
+ if (groups.length === 0) {
404
+ return `${GRAY}No proposed epic groups.${NC}`;
405
+ }
406
+ const lines = [`\n${BOLD}${CYAN}── Proposed Epic Groups (${groups.length}) ──${NC}`];
407
+ groups.forEach((group, index) => {
408
+ const sel = group.selected ? '✓' : ' ';
409
+ const target = group.existingEpicIssueNum
410
+ ? `updates epic #${group.existingEpicIssueNum}`
411
+ : 'creates new epic';
412
+ lines.push(` [${sel}] ${index + 1}. ${group.title} (${target})`);
413
+ lines.push(` ${GRAY}Goal: ${group.goal}${NC}`);
414
+ lines.push(` ${GRAY}Rationale: ${group.rationale}${NC}`);
415
+ lines.push(` Children: ${group.orderedChildIssueNumbers.map((n) => `#${n}`).join(' -> ')}`);
416
+ lines.push(' Acceptance Criteria:');
417
+ for (const criterion of group.acceptanceCriteria) {
418
+ lines.push(` - ${criterion.replace(/^[-*]\s+/, '').trim()}`);
419
+ }
420
+ });
421
+ return lines.join('\n');
422
+ }
235
423
  /**
236
424
  * Format a roadmap table grouped by milestone, showing [NEW]/[EXISTS] tags
237
425
  * per milestone and [currently: <milestone>]/[currently: unassigned] per issue.
238
426
  */
239
427
  export function formatRoadmapTable(milestones, assignments, existingMilestones) {
240
- if (assignments.length === 0) {
428
+ const groups = Array.isArray(assignments)
429
+ ? { epicAssignments: [], standaloneAssignments: assignments }
430
+ : assignments;
431
+ const hasEpicAssignments = groups.epicAssignments.length > 0;
432
+ const hasStandaloneAssignments = groups.standaloneAssignments.length > 0;
433
+ if (!hasEpicAssignments && !hasStandaloneAssignments) {
241
434
  return `${GRAY}No assignments to display.${NC}`;
242
435
  }
243
436
  const sorted = [...milestones].sort((a, b) => a.order - b.order);
244
437
  const existingSet = new Set(existingMilestones);
245
- // Group assignments by milestone
438
+ const lines = [];
439
+ if (hasEpicAssignments) {
440
+ lines.push(`${BOLD}${YELLOW}Epic Milestone Assignments (${groups.epicAssignments.length})${NC}`, formatRoadmapAssignmentSection(sorted, groups.epicAssignments, existingSet));
441
+ }
442
+ if (hasStandaloneAssignments) {
443
+ if (lines.length > 0)
444
+ lines.push('');
445
+ const header = hasEpicAssignments
446
+ ? `${BOLD}${YELLOW}Standalone Issue Milestone Assignments (${groups.standaloneAssignments.length})${NC}`
447
+ : '';
448
+ if (header)
449
+ lines.push(header);
450
+ lines.push(formatRoadmapAssignmentSection(sorted, groups.standaloneAssignments, existingSet));
451
+ }
452
+ return lines.filter((line) => line !== '').join('\n');
453
+ }
454
+ function formatRoadmapAssignmentSection(sortedMilestones, assignments, existingSet) {
246
455
  const grouped = new Map();
247
456
  for (const a of assignments) {
248
457
  const key = a.milestone || '(no milestone)';
@@ -251,7 +460,7 @@ export function formatRoadmapTable(milestones, assignments, existingMilestones)
251
460
  grouped.get(key).push(a);
252
461
  }
253
462
  const lines = [];
254
- for (const ms of sorted) {
463
+ for (const ms of sortedMilestones) {
255
464
  const group = grouped.get(ms.title);
256
465
  if (!group || group.length === 0)
257
466
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"planning.js","sourceRoot":"","sources":["../../src/lib/planning.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"planning.js","sourceRoot":"","sources":["../../src/lib/planning.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  * Prompt Builder — construct prompts for AI agents.
3
3
  * Pure string template functions with no side effects.
4
4
  */
5
+ import type { RoadmapEpicContext } from './github.js';
5
6
  export type ImplementPromptOptions = {
6
7
  issueNum: number;
7
8
  title: string;
@@ -12,6 +13,7 @@ export type ImplementPromptOptions = {
12
13
  createdAt: string;
13
14
  }>;
14
15
  planContent?: string;
16
+ epicContext?: EpicPromptContext;
15
17
  visionContext?: string;
16
18
  projectContext?: string;
17
19
  previousResult?: string;
@@ -27,8 +29,20 @@ export type ReviewPromptOptions = {
27
29
  createdAt: string;
28
30
  }>;
29
31
  baseBranch: string;
32
+ epicContext?: EpicPromptContext;
30
33
  visionContext?: string;
31
34
  };
35
+ export type EpicPromptContext = {
36
+ number: number;
37
+ title: string;
38
+ bodySummary: string;
39
+ acceptanceCriteria: string[];
40
+ subIssues: Array<{
41
+ issueNum: number;
42
+ title?: string;
43
+ checked: boolean;
44
+ }>;
45
+ };
32
46
  /** A single issue within a batch. */
33
47
  export type BatchIssue = {
34
48
  issueNum: number;
@@ -42,10 +56,12 @@ export type BatchIssue = {
42
56
  };
43
57
  export type BatchPlanPromptOptions = {
44
58
  issues: BatchIssue[];
59
+ epicContext?: EpicPromptContext;
45
60
  };
46
61
  export type BatchImplementPromptOptions = {
47
62
  issues: BatchIssue[];
48
63
  planContent?: string;
64
+ epicContext?: EpicPromptContext;
49
65
  visionContext?: string;
50
66
  projectContext?: string;
51
67
  learningContext?: string;
@@ -53,8 +69,15 @@ export type BatchImplementPromptOptions = {
53
69
  export type BatchReviewPromptOptions = {
54
70
  issues: BatchIssue[];
55
71
  baseBranch: string;
72
+ epicContext?: EpicPromptContext;
56
73
  visionContext?: string;
57
74
  };
75
+ export type IssuePlanPromptOptions = {
76
+ issueNum: number;
77
+ title: string;
78
+ body: string;
79
+ epicContext?: EpicPromptContext;
80
+ };
58
81
  export type LearnPromptOptions = {
59
82
  issueNum: number;
60
83
  title: string;
@@ -67,6 +90,11 @@ export type LearnPromptOptions = {
67
90
  verifyOutput: string;
68
91
  body?: string;
69
92
  };
93
+ export declare function formatEpicPromptContext(context: EpicPromptContext): string;
94
+ /**
95
+ * Build the planning prompt for a single issue.
96
+ */
97
+ export declare function buildIssuePlanPrompt(options: IssuePlanPromptOptions): string;
70
98
  /**
71
99
  * Build the implementation prompt for an AI agent.
72
100
  */
@@ -98,6 +126,7 @@ export type SessionReviewPromptOptions = {
98
126
  testsPassing: boolean;
99
127
  }>;
100
128
  includeSecurityScan: boolean;
129
+ epicContext?: EpicPromptContext;
101
130
  visionContext?: string;
102
131
  };
103
132
  /**
@@ -127,6 +156,7 @@ export type TriagePromptOptions = {
127
156
  number: number;
128
157
  title: string;
129
158
  body: string;
159
+ labels?: string[];
130
160
  comments?: Array<{
131
161
  author: string;
132
162
  body: string;
@@ -138,7 +168,7 @@ export type TriagePromptOptions = {
138
168
  };
139
169
  /**
140
170
  * Build the triage analysis prompt for an AI agent.
141
- * Instructs the agent to categorize open issues and output TriageFinding[] JSON.
171
+ * Instructs the agent to categorize open issues and output TriageAnalysis JSON.
142
172
  */
143
173
  export declare function buildTriagePrompt(options: TriagePromptOptions): string;
144
174
  export type RoadmapPromptOptions = {
@@ -148,6 +178,7 @@ export type RoadmapPromptOptions = {
148
178
  body: string;
149
179
  milestone: string | null;
150
180
  }>;
181
+ epics?: RoadmapEpicContext[];
151
182
  milestones: Array<{
152
183
  title: string;
153
184
  description: string;