@bradtaylorsf/alpha-loop 1.8.0 → 1.9.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.
- package/dist/cli.js +4 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.js +6 -5
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/plan.d.ts +1 -0
- package/dist/commands/plan.js +298 -195
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/resume.js +6 -5
- package/dist/commands/resume.js.map +1 -1
- package/dist/commands/roadmap.js +2 -3
- package/dist/commands/roadmap.js.map +1 -1
- package/dist/commands/run.d.ts +2 -0
- package/dist/commands/run.js +33 -2
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/triage.js +12 -16
- package/dist/commands/triage.js.map +1 -1
- package/dist/commands/vision.js +4 -3
- package/dist/commands/vision.js.map +1 -1
- package/dist/lib/github.d.ts +16 -3
- package/dist/lib/github.js +151 -75
- package/dist/lib/github.js.map +1 -1
- package/dist/lib/learning.d.ts +13 -1
- package/dist/lib/learning.js +90 -17
- package/dist/lib/learning.js.map +1 -1
- package/dist/lib/logger.d.ts +1 -0
- package/dist/lib/logger.js +2 -0
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/pipeline.js +116 -44
- package/dist/lib/pipeline.js.map +1 -1
- package/dist/lib/planning.d.ts +5 -0
- package/dist/lib/planning.js +14 -0
- package/dist/lib/planning.js.map +1 -1
- package/dist/lib/prompts.d.ts +5 -0
- package/dist/lib/prompts.js +18 -5
- package/dist/lib/prompts.js.map +1 -1
- package/dist/lib/rate-limit.d.ts +55 -0
- package/dist/lib/rate-limit.js +188 -0
- package/dist/lib/rate-limit.js.map +1 -0
- package/dist/lib/session.js +2 -1
- package/dist/lib/session.js.map +1 -1
- package/dist/lib/validation.d.ts +69 -0
- package/dist/lib/validation.js +280 -0
- package/dist/lib/validation.js.map +1 -0
- package/dist/lib/worktree.d.ts +16 -0
- package/dist/lib/worktree.js +99 -31
- package/dist/lib/worktree.js.map +1 -1
- package/package.json +1 -1
- package/templates/agents/reviewer.md +7 -0
package/dist/lib/github.d.ts
CHANGED
|
@@ -74,7 +74,7 @@ export declare function updateProjectStatus(repo: string, projectNum: number, ow
|
|
|
74
74
|
* Create a new issue. Returns the created issue number.
|
|
75
75
|
* Uses --body-file for shell safety (same pattern as commentIssue).
|
|
76
76
|
*/
|
|
77
|
-
export declare function createIssue(repo: string, title: string, body: string, labels: string[], milestone?:
|
|
77
|
+
export declare function createIssue(repo: string, title: string, body: string, labels: string[], milestone?: string): number;
|
|
78
78
|
/**
|
|
79
79
|
* Update an existing issue's title and/or body.
|
|
80
80
|
*/
|
|
@@ -86,18 +86,31 @@ export declare function updateIssue(repo: string, issueNum: number, updates: {
|
|
|
86
86
|
* Close an issue with an optional reason.
|
|
87
87
|
*/
|
|
88
88
|
export declare function closeIssue(repo: string, issueNum: number, reason?: 'completed' | 'not_planned'): void;
|
|
89
|
+
/**
|
|
90
|
+
* List all labels for a repository.
|
|
91
|
+
*/
|
|
92
|
+
export declare function listLabels(repo: string): string[];
|
|
93
|
+
/**
|
|
94
|
+
* Create a label on a repository. Returns true on success.
|
|
95
|
+
*/
|
|
96
|
+
export declare function createLabel(repo: string, name: string, color?: string): boolean;
|
|
89
97
|
/**
|
|
90
98
|
* Create a milestone. Returns the milestone number.
|
|
91
99
|
*/
|
|
92
100
|
export declare function createMilestone(repo: string, title: string, description: string, dueOn?: string): number;
|
|
93
101
|
/**
|
|
94
|
-
* Assign an issue to a milestone by
|
|
102
|
+
* Assign an issue to a milestone by title.
|
|
95
103
|
*/
|
|
96
|
-
export declare function setIssueMilestone(repo: string, issueNum: number,
|
|
104
|
+
export declare function setIssueMilestone(repo: string, issueNum: number, milestoneTitle: string): void;
|
|
97
105
|
/**
|
|
98
106
|
* List all open issues (no label filter). Default limit 100.
|
|
99
107
|
*/
|
|
100
108
|
export declare function listOpenIssues(repo: string, limit?: number): Issue[];
|
|
109
|
+
/**
|
|
110
|
+
* List all open issues with their comments in a single API call.
|
|
111
|
+
* Avoids the N+1 problem of fetching comments per-issue.
|
|
112
|
+
*/
|
|
113
|
+
export declare function listOpenIssuesWithComments(repo: string, limit?: number): Issue[];
|
|
101
114
|
/**
|
|
102
115
|
* Fetch comments for a specific issue.
|
|
103
116
|
*/
|
package/dist/lib/github.js
CHANGED
|
@@ -5,6 +5,7 @@ import { writeFileSync, unlinkSync } from 'node:fs';
|
|
|
5
5
|
import { join } from 'node:path';
|
|
6
6
|
import { tmpdir } from 'node:os';
|
|
7
7
|
import { exec } from './shell.js';
|
|
8
|
+
import { ghExec, getProjectCache, setProjectCache } from './rate-limit.js';
|
|
8
9
|
import { log } from './logger.js';
|
|
9
10
|
/** Max PR body length. GitHub supports 65536 but we leave room for metadata. */
|
|
10
11
|
const MAX_PR_BODY_CHARS = 60_000;
|
|
@@ -12,7 +13,7 @@ const MAX_PR_BODY_CHARS = 60_000;
|
|
|
12
13
|
* List open milestones for a repository.
|
|
13
14
|
*/
|
|
14
15
|
export function listMilestones(repo) {
|
|
15
|
-
const result =
|
|
16
|
+
const result = ghExec(`gh api "repos/${repo}/milestones?state=open&sort=due_on&direction=asc" --jq '[.[] | {number, title, description, openIssues: .open_issues, closedIssues: .closed_issues, dueOn: .due_on, state}]'`);
|
|
16
17
|
if (result.exitCode !== 0) {
|
|
17
18
|
log.warn(`Failed to list milestones: ${result.stderr}`);
|
|
18
19
|
return [];
|
|
@@ -55,7 +56,7 @@ function pollIssuesByProject(owner, project, limit, options) {
|
|
|
55
56
|
// Fetch all project items but filter to only Todo issues via jq to avoid
|
|
56
57
|
// truncating results when Done items fill the limit.
|
|
57
58
|
const jqFilter = `{items: [.items[] | select(.status == "Todo" and .content.type == "Issue")]}`;
|
|
58
|
-
const result =
|
|
59
|
+
const result = ghExec(`gh project item-list ${project} --owner "${owner}" --format json --limit 200 --jq '${jqFilter}'`);
|
|
59
60
|
if (result.exitCode !== 0) {
|
|
60
61
|
log.warn(`Failed to poll project board: ${result.stderr}`);
|
|
61
62
|
return [];
|
|
@@ -88,7 +89,7 @@ function pollIssuesByProject(owner, project, limit, options) {
|
|
|
88
89
|
* Get the set of open issue numbers belonging to a milestone.
|
|
89
90
|
*/
|
|
90
91
|
function getMilestoneIssueNumbers(repo, milestone) {
|
|
91
|
-
const result =
|
|
92
|
+
const result = ghExec(`gh issue list --repo "${repo}" --milestone "${milestone}" --state open --json number --limit 100`);
|
|
92
93
|
if (result.exitCode !== 0)
|
|
93
94
|
return null;
|
|
94
95
|
try {
|
|
@@ -105,7 +106,7 @@ function getMilestoneIssueNumbers(repo, milestone) {
|
|
|
105
106
|
*/
|
|
106
107
|
function pollIssuesByLabel(repo, label, limit, milestone) {
|
|
107
108
|
const milestoneFlag = milestone ? ` --milestone "${milestone}"` : '';
|
|
108
|
-
const result =
|
|
109
|
+
const result = ghExec(`gh issue list --repo "${repo}" --label "${label}" --state open${milestoneFlag} --json number,title,body,labels --limit ${limit}`);
|
|
109
110
|
if (result.exitCode !== 0) {
|
|
110
111
|
log.warn(`Failed to poll issues: ${result.stderr}`);
|
|
111
112
|
return [];
|
|
@@ -135,7 +136,7 @@ export function labelIssue(repo, issueNum, addLabel, removeLabel) {
|
|
|
135
136
|
if (removeLabel) {
|
|
136
137
|
args[0] += ` --remove-label "${removeLabel}"`;
|
|
137
138
|
}
|
|
138
|
-
const result =
|
|
139
|
+
const result = ghExec(args[0], undefined, true);
|
|
139
140
|
if (result.exitCode !== 0) {
|
|
140
141
|
log.warn(`Failed to update labels on issue #${issueNum}: ${result.stderr}`);
|
|
141
142
|
}
|
|
@@ -148,7 +149,7 @@ export function commentIssue(repo, issueNum, body) {
|
|
|
148
149
|
const bodyFile = join(tmpdir(), `alpha-loop-comment-${Date.now()}`);
|
|
149
150
|
writeFileSync(bodyFile, body, 'utf-8');
|
|
150
151
|
try {
|
|
151
|
-
const result =
|
|
152
|
+
const result = ghExec(`gh issue comment ${issueNum} --repo "${repo}" --body-file "${bodyFile}"`, undefined, true);
|
|
152
153
|
if (result.exitCode !== 0) {
|
|
153
154
|
log.warn(`Failed to comment on issue #${issueNum}: ${result.stderr}`);
|
|
154
155
|
}
|
|
@@ -164,7 +165,7 @@ export function commentIssue(repo, issueNum, body) {
|
|
|
164
165
|
* Assign an issue to a user.
|
|
165
166
|
*/
|
|
166
167
|
export function assignIssue(repo, issueNum, assignee) {
|
|
167
|
-
const result =
|
|
168
|
+
const result = ghExec(`gh issue edit ${issueNum} --repo "${repo}" --add-assignee "${assignee}"`, undefined, true);
|
|
168
169
|
if (result.exitCode !== 0) {
|
|
169
170
|
log.warn(`Failed to assign issue #${issueNum} to ${assignee}: ${result.stderr}`);
|
|
170
171
|
}
|
|
@@ -191,14 +192,14 @@ export function createPR(options) {
|
|
|
191
192
|
writeFileSync(bodyFile, truncatedBody, 'utf-8');
|
|
192
193
|
try {
|
|
193
194
|
// Check if PR already exists for this branch
|
|
194
|
-
const existingResult =
|
|
195
|
+
const existingResult = ghExec(`gh pr list --repo "${repo}" --head "${head}" --json number,url --limit 1`);
|
|
195
196
|
if (existingResult.exitCode === 0 && existingResult.stdout) {
|
|
196
197
|
try {
|
|
197
198
|
const existing = JSON.parse(existingResult.stdout);
|
|
198
199
|
if (existing.length > 0) {
|
|
199
200
|
const prUrl = existing[0].url;
|
|
200
201
|
log.info(`PR already exists: ${prUrl}, updating...`);
|
|
201
|
-
|
|
202
|
+
ghExec(`gh pr edit ${existing[0].number} --repo "${repo}" --base "${base}" --title ${JSON.stringify(title)} --body-file "${bodyFile}"`, undefined, true);
|
|
202
203
|
return prUrl;
|
|
203
204
|
}
|
|
204
205
|
}
|
|
@@ -207,7 +208,7 @@ export function createPR(options) {
|
|
|
207
208
|
}
|
|
208
209
|
}
|
|
209
210
|
// Create new PR using --body-file to avoid shell escaping issues
|
|
210
|
-
const createResult =
|
|
211
|
+
const createResult = ghExec(`gh pr create --repo "${repo}" --base "${base}" --head "${head}" --title ${JSON.stringify(title)} --body-file "${bodyFile}"`, undefined, true);
|
|
211
212
|
if (createResult.exitCode !== 0) {
|
|
212
213
|
throw new Error(`Failed to create PR: ${createResult.stderr}`);
|
|
213
214
|
}
|
|
@@ -225,7 +226,7 @@ export function createPR(options) {
|
|
|
225
226
|
*/
|
|
226
227
|
export function mergePR(repo, head, method = 'squash') {
|
|
227
228
|
// Find the PR number by branch
|
|
228
|
-
const listResult =
|
|
229
|
+
const listResult = ghExec(`gh pr list --repo "${repo}" --head "${head}" --json number --limit 1`);
|
|
229
230
|
if (listResult.exitCode !== 0 || !listResult.stdout) {
|
|
230
231
|
log.warn(`No PR found to merge for branch ${head}`);
|
|
231
232
|
return;
|
|
@@ -244,7 +245,7 @@ export function mergePR(repo, head, method = 'squash') {
|
|
|
244
245
|
return;
|
|
245
246
|
}
|
|
246
247
|
const mergeFlag = method === 'squash' ? '--squash' : '--merge';
|
|
247
|
-
const result =
|
|
248
|
+
const result = ghExec(`gh pr merge ${prNum} --repo "${repo}" ${mergeFlag} --delete-branch`, undefined, true);
|
|
248
249
|
if (result.exitCode !== 0) {
|
|
249
250
|
throw new Error(`Failed to merge PR #${prNum}: ${result.stderr}`);
|
|
250
251
|
}
|
|
@@ -255,8 +256,67 @@ export function mergePR(repo, head, method = 'squash') {
|
|
|
255
256
|
* This is a multi-step operation using gh project commands.
|
|
256
257
|
*/
|
|
257
258
|
export function updateProjectStatus(repo, projectNum, owner, issueNum, status) {
|
|
258
|
-
//
|
|
259
|
-
|
|
259
|
+
// ── Resolve project metadata (cached after first call) ────────────────
|
|
260
|
+
let cache = getProjectCache(owner, projectNum);
|
|
261
|
+
if (!cache) {
|
|
262
|
+
// Fetch field list (contains field IDs and option IDs)
|
|
263
|
+
const fieldResult = ghExec(`gh project field-list ${projectNum} --owner "${owner}" --format json`);
|
|
264
|
+
if (fieldResult.exitCode !== 0) {
|
|
265
|
+
log.warn(`Could not list project fields: ${fieldResult.stderr}`);
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
let fieldId;
|
|
269
|
+
const optionMap = new Map();
|
|
270
|
+
try {
|
|
271
|
+
const data = JSON.parse(fieldResult.stdout);
|
|
272
|
+
const statusField = data.fields.find((f) => f.name === 'Status');
|
|
273
|
+
if (statusField) {
|
|
274
|
+
fieldId = statusField.id;
|
|
275
|
+
for (const opt of statusField.options ?? []) {
|
|
276
|
+
optionMap.set(opt.name, opt.id);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
catch {
|
|
281
|
+
log.warn('Failed to parse project fields');
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
if (!fieldId || optionMap.size === 0) {
|
|
285
|
+
log.warn('Could not resolve project Status field');
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
// Fetch project ID
|
|
289
|
+
const projectResult = ghExec(`gh project view ${projectNum} --owner "${owner}" --format json`);
|
|
290
|
+
if (projectResult.exitCode !== 0) {
|
|
291
|
+
log.warn(`Could not view project: ${projectResult.stderr}`);
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
let projectId;
|
|
295
|
+
try {
|
|
296
|
+
const data = JSON.parse(projectResult.stdout);
|
|
297
|
+
projectId = data.id;
|
|
298
|
+
}
|
|
299
|
+
catch {
|
|
300
|
+
log.warn('Failed to parse project data');
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
if (!projectId) {
|
|
304
|
+
log.warn('Could not get project ID');
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
cache = { projectId, fieldId, optionMap };
|
|
308
|
+
setProjectCache(owner, projectNum, cache);
|
|
309
|
+
log.debug(`Cached project metadata for ${owner}/${projectNum}`);
|
|
310
|
+
}
|
|
311
|
+
// ── Resolve option ID for the requested status ──────────────────────
|
|
312
|
+
const optionId = cache.optionMap.get(status);
|
|
313
|
+
if (!optionId) {
|
|
314
|
+
log.warn(`Could not resolve project option for status '${status}'`);
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
// ── Find the item ID for this issue (not cached — items change) ─────
|
|
318
|
+
const jqFilter = `{items: [.items[] | select(.content.number == ${issueNum})]}`;
|
|
319
|
+
const itemResult = ghExec(`gh project item-list ${projectNum} --owner "${owner}" --format json --limit 200 --jq '${jqFilter}'`);
|
|
260
320
|
if (itemResult.exitCode !== 0) {
|
|
261
321
|
log.warn(`Could not list project items: ${itemResult.stderr}`);
|
|
262
322
|
return;
|
|
@@ -264,8 +324,7 @@ export function updateProjectStatus(repo, projectNum, owner, issueNum, status) {
|
|
|
264
324
|
let itemId;
|
|
265
325
|
try {
|
|
266
326
|
const data = JSON.parse(itemResult.stdout);
|
|
267
|
-
|
|
268
|
-
itemId = item?.id;
|
|
327
|
+
itemId = data.items[0]?.id;
|
|
269
328
|
}
|
|
270
329
|
catch {
|
|
271
330
|
log.warn('Failed to parse project items');
|
|
@@ -275,52 +334,8 @@ export function updateProjectStatus(repo, projectNum, owner, issueNum, status) {
|
|
|
275
334
|
log.warn(`Could not find project item for issue #${issueNum}`);
|
|
276
335
|
return;
|
|
277
336
|
}
|
|
278
|
-
//
|
|
279
|
-
const
|
|
280
|
-
if (fieldResult.exitCode !== 0) {
|
|
281
|
-
log.warn(`Could not list project fields: ${fieldResult.stderr}`);
|
|
282
|
-
return;
|
|
283
|
-
}
|
|
284
|
-
let fieldId;
|
|
285
|
-
let optionId;
|
|
286
|
-
try {
|
|
287
|
-
const data = JSON.parse(fieldResult.stdout);
|
|
288
|
-
const statusField = data.fields.find((f) => f.name === 'Status');
|
|
289
|
-
if (statusField) {
|
|
290
|
-
fieldId = statusField.id;
|
|
291
|
-
const option = statusField.options?.find((o) => o.name === status);
|
|
292
|
-
optionId = option?.id;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
catch {
|
|
296
|
-
log.warn('Failed to parse project fields');
|
|
297
|
-
return;
|
|
298
|
-
}
|
|
299
|
-
if (!fieldId || !optionId) {
|
|
300
|
-
log.warn(`Could not resolve project field/option for status '${status}'`);
|
|
301
|
-
return;
|
|
302
|
-
}
|
|
303
|
-
// Get project ID
|
|
304
|
-
const projectResult = exec(`gh project view ${projectNum} --owner "${owner}" --format json`);
|
|
305
|
-
if (projectResult.exitCode !== 0) {
|
|
306
|
-
log.warn(`Could not view project: ${projectResult.stderr}`);
|
|
307
|
-
return;
|
|
308
|
-
}
|
|
309
|
-
let projectId;
|
|
310
|
-
try {
|
|
311
|
-
const data = JSON.parse(projectResult.stdout);
|
|
312
|
-
projectId = data.id;
|
|
313
|
-
}
|
|
314
|
-
catch {
|
|
315
|
-
log.warn('Failed to parse project data');
|
|
316
|
-
return;
|
|
317
|
-
}
|
|
318
|
-
if (!projectId) {
|
|
319
|
-
log.warn('Could not get project ID');
|
|
320
|
-
return;
|
|
321
|
-
}
|
|
322
|
-
// Update the item
|
|
323
|
-
const editResult = exec(`gh project item-edit --project-id "${projectId}" --id "${itemId}" --field-id "${fieldId}" --single-select-option-id "${optionId}"`);
|
|
337
|
+
// ── Update the item ─────────────────────────────────────────────────
|
|
338
|
+
const editResult = ghExec(`gh project item-edit --project-id "${cache.projectId}" --id "${itemId}" --field-id "${cache.fieldId}" --single-select-option-id "${optionId}"`, undefined, true);
|
|
324
339
|
if (editResult.exitCode !== 0) {
|
|
325
340
|
log.warn(`Failed to update project status for #${issueNum}: ${editResult.stderr}`);
|
|
326
341
|
return;
|
|
@@ -336,8 +351,8 @@ export function createIssue(repo, title, body, labels, milestone) {
|
|
|
336
351
|
writeFileSync(bodyFile, body, 'utf-8');
|
|
337
352
|
try {
|
|
338
353
|
const labelFlags = labels.map((l) => `--label ${JSON.stringify(l)}`).join(' ');
|
|
339
|
-
const milestoneFlag = milestone ? ` --milestone ${milestone}` : '';
|
|
340
|
-
const result =
|
|
354
|
+
const milestoneFlag = milestone ? ` --milestone ${JSON.stringify(milestone)}` : '';
|
|
355
|
+
const result = ghExec(`gh issue create --repo "${repo}" --title ${JSON.stringify(title)} --body-file "${bodyFile}" ${labelFlags}${milestoneFlag}`, undefined, true);
|
|
341
356
|
if (result.exitCode !== 0) {
|
|
342
357
|
log.warn(`Failed to create issue: ${result.stderr}`);
|
|
343
358
|
return 0;
|
|
@@ -370,7 +385,7 @@ export function updateIssue(repo, issueNum, updates) {
|
|
|
370
385
|
writeFileSync(bodyFile, updates.body, 'utf-8');
|
|
371
386
|
cmd += ` --body-file "${bodyFile}"`;
|
|
372
387
|
}
|
|
373
|
-
const result =
|
|
388
|
+
const result = ghExec(cmd, undefined, true);
|
|
374
389
|
if (result.exitCode !== 0) {
|
|
375
390
|
log.warn(`Failed to update issue #${issueNum}: ${result.stderr}`);
|
|
376
391
|
}
|
|
@@ -389,17 +404,48 @@ export function updateIssue(repo, issueNum, updates) {
|
|
|
389
404
|
*/
|
|
390
405
|
export function closeIssue(repo, issueNum, reason) {
|
|
391
406
|
const reasonFlag = reason ? ` --reason "${reason}"` : '';
|
|
392
|
-
const result =
|
|
407
|
+
const result = ghExec(`gh issue close ${issueNum} --repo "${repo}"${reasonFlag}`, undefined, true);
|
|
393
408
|
if (result.exitCode !== 0) {
|
|
394
409
|
log.warn(`Failed to close issue #${issueNum}: ${result.stderr}`);
|
|
395
410
|
}
|
|
396
411
|
}
|
|
412
|
+
/**
|
|
413
|
+
* List all labels for a repository.
|
|
414
|
+
*/
|
|
415
|
+
export function listLabels(repo) {
|
|
416
|
+
const result = ghExec(`gh label list --repo "${repo}" --json name --limit 200`);
|
|
417
|
+
if (result.exitCode !== 0) {
|
|
418
|
+
log.warn(`Failed to list labels: ${result.stderr}`);
|
|
419
|
+
return [];
|
|
420
|
+
}
|
|
421
|
+
try {
|
|
422
|
+
const raw = JSON.parse(result.stdout);
|
|
423
|
+
return raw.map((l) => l.name);
|
|
424
|
+
}
|
|
425
|
+
catch {
|
|
426
|
+
log.warn('Failed to parse labels JSON');
|
|
427
|
+
return [];
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* Create a label on a repository. Returns true on success.
|
|
432
|
+
*/
|
|
433
|
+
export function createLabel(repo, name, color) {
|
|
434
|
+
const colorFlag = color ? ` --color "${color}"` : '';
|
|
435
|
+
const result = ghExec(`gh label create ${JSON.stringify(name)} --repo "${repo}"${colorFlag} --force`, undefined, true);
|
|
436
|
+
if (result.exitCode !== 0) {
|
|
437
|
+
log.warn(`Failed to create label "${name}": ${result.stderr}`);
|
|
438
|
+
return false;
|
|
439
|
+
}
|
|
440
|
+
return true;
|
|
441
|
+
}
|
|
397
442
|
/**
|
|
398
443
|
* Create a milestone. Returns the milestone number.
|
|
399
444
|
*/
|
|
400
445
|
export function createMilestone(repo, title, description, dueOn) {
|
|
401
|
-
const
|
|
402
|
-
const
|
|
446
|
+
const dueOnIso = dueOn && !dueOn.includes('T') ? `${dueOn}T00:00:00Z` : dueOn;
|
|
447
|
+
const dueOnFlag = dueOnIso ? ` -f due_on=${JSON.stringify(dueOnIso)}` : '';
|
|
448
|
+
const result = ghExec(`gh api "repos/${repo}/milestones" -X POST -f title=${JSON.stringify(title)} -f description=${JSON.stringify(description)}${dueOnFlag}`, undefined, true);
|
|
403
449
|
if (result.exitCode !== 0) {
|
|
404
450
|
log.warn(`Failed to create milestone: ${result.stderr}`);
|
|
405
451
|
return 0;
|
|
@@ -414,10 +460,10 @@ export function createMilestone(repo, title, description, dueOn) {
|
|
|
414
460
|
}
|
|
415
461
|
}
|
|
416
462
|
/**
|
|
417
|
-
* Assign an issue to a milestone by
|
|
463
|
+
* Assign an issue to a milestone by title.
|
|
418
464
|
*/
|
|
419
|
-
export function setIssueMilestone(repo, issueNum,
|
|
420
|
-
const result =
|
|
465
|
+
export function setIssueMilestone(repo, issueNum, milestoneTitle) {
|
|
466
|
+
const result = ghExec(`gh issue edit ${issueNum} --repo "${repo}" --milestone ${JSON.stringify(milestoneTitle)}`, undefined, true);
|
|
421
467
|
if (result.exitCode !== 0) {
|
|
422
468
|
log.warn(`Failed to set milestone on issue #${issueNum}: ${result.stderr}`);
|
|
423
469
|
}
|
|
@@ -427,7 +473,7 @@ export function setIssueMilestone(repo, issueNum, milestoneNum) {
|
|
|
427
473
|
*/
|
|
428
474
|
export function listOpenIssues(repo, limit = 100) {
|
|
429
475
|
const safeLimit = Math.max(1, Math.min(1000, Math.floor(limit)));
|
|
430
|
-
const result =
|
|
476
|
+
const result = ghExec(`gh issue list --repo "${repo}" --state open --json number,title,body,labels --limit ${safeLimit}`);
|
|
431
477
|
if (result.exitCode !== 0) {
|
|
432
478
|
log.warn(`Failed to list open issues: ${result.stderr}`);
|
|
433
479
|
return [];
|
|
@@ -446,11 +492,41 @@ export function listOpenIssues(repo, limit = 100) {
|
|
|
446
492
|
return [];
|
|
447
493
|
}
|
|
448
494
|
}
|
|
495
|
+
/**
|
|
496
|
+
* List all open issues with their comments in a single API call.
|
|
497
|
+
* Avoids the N+1 problem of fetching comments per-issue.
|
|
498
|
+
*/
|
|
499
|
+
export function listOpenIssuesWithComments(repo, limit = 100) {
|
|
500
|
+
const safeLimit = Math.max(1, Math.min(1000, Math.floor(limit)));
|
|
501
|
+
const result = ghExec(`gh issue list --repo "${repo}" --state open --json number,title,body,labels,comments --limit ${safeLimit}`);
|
|
502
|
+
if (result.exitCode !== 0) {
|
|
503
|
+
log.warn(`Failed to list open issues with comments: ${result.stderr}`);
|
|
504
|
+
return [];
|
|
505
|
+
}
|
|
506
|
+
try {
|
|
507
|
+
const raw = JSON.parse(result.stdout);
|
|
508
|
+
return raw.map((issue) => ({
|
|
509
|
+
number: issue.number,
|
|
510
|
+
title: issue.title,
|
|
511
|
+
body: issue.body ?? '',
|
|
512
|
+
labels: (issue.labels ?? []).map((l) => l.name),
|
|
513
|
+
comments: (issue.comments ?? []).map((c) => ({
|
|
514
|
+
author: c.author?.login ?? 'unknown',
|
|
515
|
+
body: c.body ?? '',
|
|
516
|
+
createdAt: c.createdAt ?? '',
|
|
517
|
+
})),
|
|
518
|
+
}));
|
|
519
|
+
}
|
|
520
|
+
catch {
|
|
521
|
+
log.warn('Failed to parse open issues with comments JSON');
|
|
522
|
+
return [];
|
|
523
|
+
}
|
|
524
|
+
}
|
|
449
525
|
/**
|
|
450
526
|
* Fetch comments for a specific issue.
|
|
451
527
|
*/
|
|
452
528
|
export function getIssueComments(repo, issueNum) {
|
|
453
|
-
const result =
|
|
529
|
+
const result = ghExec(`gh issue view ${issueNum} --repo "${repo}" --json comments`);
|
|
454
530
|
if (result.exitCode !== 0) {
|
|
455
531
|
log.warn(`Failed to fetch comments for issue #${issueNum}: ${result.stderr}`);
|
|
456
532
|
return [];
|
|
@@ -472,7 +548,7 @@ export function getIssueComments(repo, issueNum) {
|
|
|
472
548
|
* Fetch a single issue with its full body and comments.
|
|
473
549
|
*/
|
|
474
550
|
export function getIssueWithComments(repo, issueNum) {
|
|
475
|
-
const result =
|
|
551
|
+
const result = ghExec(`gh issue view ${issueNum} --repo "${repo}" --json number,title,body,labels,comments`);
|
|
476
552
|
if (result.exitCode !== 0) {
|
|
477
553
|
log.warn(`Failed to fetch issue #${issueNum}: ${result.stderr}`);
|
|
478
554
|
return null;
|
|
@@ -501,7 +577,7 @@ export function getIssueWithComments(repo, issueNum) {
|
|
|
501
577
|
*/
|
|
502
578
|
export function addIssueToProject(owner, projectNum, repo, issueNum) {
|
|
503
579
|
const issueUrl = `https://github.com/${repo}/issues/${issueNum}`;
|
|
504
|
-
const result =
|
|
580
|
+
const result = ghExec(`gh project item-add ${projectNum} --owner "${owner}" --url "${issueUrl}"`, undefined, true);
|
|
505
581
|
if (result.exitCode !== 0) {
|
|
506
582
|
log.warn(`Failed to add issue #${issueNum} to project: ${result.stderr}`);
|
|
507
583
|
}
|
package/dist/lib/github.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/lib/github.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,gFAAgF;AAChF,MAAM,iBAAiB,GAAG,MAAM,CAAC;AA0BjC;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,MAAM,GAAG,IAAI,CACjB,iBAAiB,IAAI,8KAA8K,CACpM,CAAC;IACF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,8BAA8B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACxD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAgB,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC5C,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,KAAa,EAAE,KAAK,GAAG,EAAE,EAAE,OAAsE;IACxI,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;IACjC,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,CAAC;IAErC,sDAAsD;IACtD,IAAI,OAAO,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,mBAAmB,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,0BAA0B;IAC1B,OAAO,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAAC,KAAa,EAAE,OAAe,EAAE,KAAa,EAAE,OAA+C;IACzH,yEAAyE;IACzE,qDAAqD;IACrD,MAAM,QAAQ,GAAG,8EAA8E,CAAC;IAChG,MAAM,MAAM,GAAG,IAAI,CACjB,wBAAwB,OAAO,aAAa,KAAK,sCAAsC,QAAQ,GAAG,CACnG,CAAC;IACF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,iCAAiC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3D,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAMpC,CAAC;QAEF,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEvB,mCAAmC;QACnC,IAAI,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YACxC,MAAM,eAAe,GAAG,wBAAwB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAClF,IAAI,eAAe,EAAE,CAAC;gBACpB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QAED,OAAO,KAAK;aACT,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;aACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACd,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE;YAC7B,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAC/C,CAAC,CAAC,CAAC;IACR,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAC/C,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAAC,IAAY,EAAE,SAAiB;IAC/D,MAAM,MAAM,GAAG,IAAI,CACjB,yBAAyB,IAAI,kBAAkB,SAAS,0CAA0C,CACnG,CAAC;IACF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAA8B,CAAC;QACtE,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,IAAY,EAAE,KAAa,EAAE,KAAa,EAAE,SAAkB;IACvF,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,iBAAiB,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,MAAM,MAAM,GAAG,IAAI,CACjB,yBAAyB,IAAI,cAAc,KAAK,iBAAiB,aAAa,4CAA4C,KAAK,EAAE,CAClI,CAAC;IACF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,0BAA0B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACpD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAKlC,CAAC;QACH,OAAO,GAAG;aACP,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACf,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;YACtB,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAChD,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;aACnC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QACxC,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAgB,EAAE,WAAoB;IAC/F,MAAM,IAAI,GAAG,CAAC,iBAAiB,QAAQ,YAAY,IAAI,kBAAkB,QAAQ,GAAG,CAAC,CAAC;IACtF,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC,CAAC,CAAC,IAAI,oBAAoB,WAAW,GAAG,CAAC;IAChD,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,qCAAqC,QAAQ,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,QAAgB,EAAE,IAAY;IACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,sBAAsB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACpE,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CACjB,oBAAoB,QAAQ,YAAY,IAAI,kBAAkB,QAAQ,GAAG,CAC1E,CAAC;QACF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,+BAA+B,QAAQ,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAgB;IAC1E,MAAM,MAAM,GAAG,IAAI,CACjB,iBAAiB,QAAQ,YAAY,IAAI,qBAAqB,QAAQ,GAAG,CAC1E,CAAC;IACF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,2BAA2B,QAAQ,OAAO,QAAQ,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAWD;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAwB;IAC/C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAEvD,wBAAwB;IACxB,MAAM,UAAU,GAAG,IAAI,CAAC,uBAAuB,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACjE,IAAI,UAAU,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC9B,wDAAwD;QACxD,GAAG,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,IAAI,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1E,IAAI,WAAW,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,sBAAsB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACpE,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAEhD,IAAI,CAAC;QACH,6CAA6C;QAC7C,MAAM,cAAc,GAAG,IAAI,CACzB,sBAAsB,IAAI,aAAa,IAAI,+BAA+B,CAC3E,CAAC;QACF,IAAI,cAAc,CAAC,QAAQ,KAAK,CAAC,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;YAC3D,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAA2C,CAAC;gBAC7F,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;oBAC9B,GAAG,CAAC,IAAI,CAAC,sBAAsB,KAAK,eAAe,CAAC,CAAC;oBACrD,IAAI,CAAC,cAAc,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,IAAI,aAAa,IAAI,aAAa,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAiB,QAAQ,GAAG,CAAC,CAAC;oBACtI,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,yBAAyB;YAC3B,CAAC;QACH,CAAC;QAED,iEAAiE;QACjE,MAAM,YAAY,GAAG,IAAI,CACvB,wBAAwB,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAiB,QAAQ,GAAG,CAC7H,CAAC;QACF,IAAI,YAAY,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,wBAAwB,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,IAAY,EAAE,SAA6B,QAAQ;IACvF,+BAA+B;IAC/B,MAAM,UAAU,GAAG,IAAI,CACrB,sBAAsB,IAAI,aAAa,IAAI,2BAA2B,CACvE,CAAC;IACF,IAAI,UAAU,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;QACpD,OAAO;IACT,CAAC;IAED,IAAI,KAAa,CAAC;IAClB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAA8B,CAAC;QACvE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,GAAG,CAAC,IAAI,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QACD,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACpC,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAI,CACjB,eAAe,KAAK,YAAY,IAAI,KAAK,SAAS,kBAAkB,CACrE,CAAC;IACF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,UAAkB,EAClB,KAAa,EACb,QAAgB,EAChB,MAAc;IAEd,iDAAiD;IACjD,MAAM,UAAU,GAAG,IAAI,CACrB,wBAAwB,UAAU,aAAa,KAAK,6BAA6B,CAClF,CAAC;IACF,IAAI,UAAU,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC,iCAAiC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/D,OAAO;IACT,CAAC;IAED,IAAI,MAA0B,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAExC,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC;QACpE,MAAM,GAAG,IAAI,EAAE,EAAE,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,GAAG,CAAC,IAAI,CAAC,0CAA0C,QAAQ,EAAE,CAAC,CAAC;QAC/D,OAAO;IACT,CAAC;IAED,wCAAwC;IACxC,MAAM,WAAW,GAAG,IAAI,CACtB,yBAAyB,UAAU,aAAa,KAAK,iBAAiB,CACvE,CAAC;IACF,IAAI,WAAW,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,IAAI,CAAC,kCAAkC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QACjE,OAAO;IACT,CAAC;IAED,IAAI,OAA2B,CAAC;IAChC,IAAI,QAA4B,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAMzC,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QACjE,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YACnE,QAAQ,GAAG,MAAM,EAAE,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,sDAAsD,MAAM,GAAG,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,iBAAiB;IACjB,MAAM,aAAa,GAAG,IAAI,CACxB,mBAAmB,UAAU,aAAa,KAAK,iBAAiB,CACjE,CAAC;IACF,IAAI,aAAa,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,IAAI,CAAC,2BAA2B,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IAED,IAAI,SAA6B,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAmB,CAAC;QAChE,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IAED,kBAAkB;IAClB,MAAM,UAAU,GAAG,IAAI,CACrB,sCAAsC,SAAS,WAAW,MAAM,iBAAiB,OAAO,gCAAgC,QAAQ,GAAG,CACpI,CAAC;IACF,IAAI,UAAU,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC,wCAAwC,QAAQ,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACnF,OAAO;IACT,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,mBAAmB,QAAQ,OAAO,MAAM,EAAE,CAAC,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY,EAAE,MAAgB,EAAE,SAAkB;IACzG,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,yBAAyB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACvE,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/E,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,MAAM,GAAG,IAAI,CACjB,2BAA2B,IAAI,aAAa,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAiB,QAAQ,KAAK,UAAU,GAAG,aAAa,EAAE,CAC5H,CAAC;QACF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,2BAA2B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACrD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,gFAAgF;QAChF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACtD,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,QAAgB,EAAE,OAA0C;IACpG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO;IACzD,IAAI,QAA4B,CAAC;IACjC,IAAI,CAAC;QACH,IAAI,GAAG,GAAG,iBAAiB,QAAQ,YAAY,IAAI,GAAG,CAAC;QACvD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,GAAG,IAAI,YAAY,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,yBAAyB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACjE,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC/C,GAAG,IAAI,iBAAiB,QAAQ,GAAG,CAAC;QACtC,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,2BAA2B,QAAQ,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC;gBAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,QAAgB,EAAE,MAAoC;IAC7F,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,cAAc,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,MAAM,MAAM,GAAG,IAAI,CACjB,kBAAkB,QAAQ,YAAY,IAAI,IAAI,UAAU,EAAE,CAC3D,CAAC;IACF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,0BAA0B,QAAQ,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,KAAa,EAAE,WAAmB,EAAE,KAAc;IAC9F,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,MAAM,MAAM,GAAG,IAAI,CACjB,iBAAiB,IAAI,iCAAiC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,SAAS,EAAE,CACxI,CAAC;IACF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,+BAA+B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAuB,CAAC;QAC7D,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,QAAgB,EAAE,YAAoB;IACpF,MAAM,MAAM,GAAG,IAAI,CACjB,iBAAiB,IAAI,WAAW,QAAQ,2BAA2B,YAAY,EAAE,CAClF,CAAC;IACF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,qCAAqC,QAAQ,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,KAAK,GAAG,GAAG;IACtD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,IAAI,CACjB,yBAAyB,IAAI,0DAA0D,SAAS,EAAE,CACnG,CAAC;IACF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,+BAA+B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAKlC,CAAC;QACH,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACzB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;YACtB,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAChD,CAAC,CAAC,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAC7C,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,QAAgB;IAC7D,MAAM,MAAM,GAAG,IAAI,CACjB,iBAAiB,QAAQ,YAAY,IAAI,mBAAmB,CAC7D,CAAC;IACF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,uCAAuC,QAAQ,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9E,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAEpC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,SAAS;YACpC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;YAClB,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE;SAC7B,CAAC,CAAC,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAC;QAC5D,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,QAAgB;IACjE,MAAM,MAAM,GAAG,IAAI,CACjB,iBAAiB,QAAQ,YAAY,IAAI,4CAA4C,CACtF,CAAC;IACF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,0BAA0B,QAAQ,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAMpC,CAAC;QACF,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;YACrB,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9C,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC1C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,SAAS;gBACpC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;gBAClB,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE;aAC7B,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,UAAkB,EAAE,IAAY,EAAE,QAAgB;IACjG,MAAM,QAAQ,GAAG,sBAAsB,IAAI,WAAW,QAAQ,EAAE,CAAC;IACjE,MAAM,MAAM,GAAG,IAAI,CACjB,uBAAuB,UAAU,aAAa,KAAK,YAAY,QAAQ,GAAG,CAC3E,CAAC;IACF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,wBAAwB,QAAQ,gBAAgB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,IAAI,CAAC,MAAM,IAAI,iBAAiB;QAAE,OAAO,IAAI,CAAC;IAClD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,GAAG,wCAAwC,CAAC;AACrF,CAAC"}
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/lib/github.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/learning.d.ts
CHANGED
|
@@ -11,10 +11,22 @@ export type ExtractLearningsOptions = {
|
|
|
11
11
|
verifyOutput: string;
|
|
12
12
|
body: string;
|
|
13
13
|
config: Config;
|
|
14
|
+
sessionLogsDir?: string;
|
|
15
|
+
sessionName?: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Parse raw agent output and extract only the expected learning sections.
|
|
19
|
+
* Discards prompt echoes, session logs, tool calls, and other noise.
|
|
20
|
+
*/
|
|
21
|
+
export declare function parseLearningOutput(raw: string): {
|
|
22
|
+
frontmatter: string | null;
|
|
23
|
+
sections: string;
|
|
14
24
|
};
|
|
15
25
|
/**
|
|
16
26
|
* Extract learnings from a completed run.
|
|
17
|
-
* Invokes an agent with the learn prompt
|
|
27
|
+
* Invokes an agent with the learn prompt, parses the output to extract
|
|
28
|
+
* only expected sections, and saves a concise learning file with trace pointers.
|
|
29
|
+
* Raw agent output is saved separately to the traces directory.
|
|
18
30
|
*/
|
|
19
31
|
export declare function extractLearnings(options: ExtractLearningsOptions): Promise<void>;
|
|
20
32
|
/**
|