@bradtaylorsf/alpha-loop 1.0.0 → 1.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.
- package/README.md +34 -4
- package/dist/cli.js +25 -5
- package/dist/cli.js.map +1 -1
- package/dist/commands/history.js +196 -93
- package/dist/commands/history.js.map +1 -1
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.js +163 -107
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/resume.d.ts +8 -0
- package/dist/commands/resume.js +391 -0
- package/dist/commands/resume.js.map +1 -0
- package/dist/commands/review.d.ts +8 -0
- package/dist/commands/review.js +549 -0
- package/dist/commands/review.js.map +1 -0
- package/dist/commands/run.js +2 -2
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/scan.d.ts +5 -0
- package/dist/commands/scan.js +129 -0
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/sync.d.ts +27 -3
- package/dist/commands/sync.js +222 -44
- package/dist/commands/sync.js.map +1 -1
- package/dist/lib/agent.d.ts +4 -0
- package/dist/lib/agent.js +43 -11
- package/dist/lib/agent.js.map +1 -1
- package/dist/lib/config.d.ts +1 -0
- package/dist/lib/config.js +2 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/github.d.ts +5 -0
- package/dist/lib/github.js +22 -2
- package/dist/lib/github.js.map +1 -1
- package/dist/lib/pipeline.js +19 -11
- package/dist/lib/pipeline.js.map +1 -1
- package/dist/lib/session.js +25 -5
- package/dist/lib/session.js.map +1 -1
- package/dist/lib/templates.d.ts +16 -0
- package/dist/lib/templates.js +59 -0
- package/dist/lib/templates.js.map +1 -0
- package/dist/lib/verify.js +18 -13
- package/dist/lib/verify.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,549 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Review Command — self-improvement loop: analyze accumulated learnings and propose
|
|
3
|
+
* improvements to agent prompts, skill definitions, and harness configuration.
|
|
4
|
+
*/
|
|
5
|
+
import { existsSync, readdirSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
6
|
+
import { join } from 'node:path';
|
|
7
|
+
import { loadConfig } from '../lib/config.js';
|
|
8
|
+
import { log } from '../lib/logger.js';
|
|
9
|
+
import { exec } from '../lib/shell.js';
|
|
10
|
+
import { formatTimestamp } from '../lib/shell.js';
|
|
11
|
+
import { spawnAgent } from '../lib/agent.js';
|
|
12
|
+
import { createPR } from '../lib/github.js';
|
|
13
|
+
import { syncAgentAssets } from './sync.js';
|
|
14
|
+
import { findDistributionTemplatesDir, diffSkills } from '../lib/templates.js';
|
|
15
|
+
/** Directories that proposed changes are allowed to target. */
|
|
16
|
+
const ALLOWED_PREFIXES = [
|
|
17
|
+
'.alpha-loop/templates/skills/',
|
|
18
|
+
'.alpha-loop/templates/agents/',
|
|
19
|
+
'.alpha-loop.yaml',
|
|
20
|
+
];
|
|
21
|
+
/** Max total learning content to include in the prompt (chars). */
|
|
22
|
+
const MAX_LEARNINGS_CHARS = 50_000;
|
|
23
|
+
/**
|
|
24
|
+
* Reject paths with traversal sequences or absolute paths.
|
|
25
|
+
*/
|
|
26
|
+
function isSafePath(filePath) {
|
|
27
|
+
if (!filePath || filePath.startsWith('/') || filePath.includes('..'))
|
|
28
|
+
return false;
|
|
29
|
+
return ALLOWED_PREFIXES.some((prefix) => filePath === prefix || filePath.startsWith(prefix));
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Parse simple YAML-style frontmatter from a learning file.
|
|
33
|
+
* Returns only the fields we care about for metrics.
|
|
34
|
+
*/
|
|
35
|
+
function parseFrontmatter(content) {
|
|
36
|
+
const meta = { status: 'unknown', retries: 0, duration: 0 };
|
|
37
|
+
const fmMatch = content.match(/^---\n([\s\S]*?)\n---/);
|
|
38
|
+
if (!fmMatch)
|
|
39
|
+
return meta;
|
|
40
|
+
const fm = fmMatch[1];
|
|
41
|
+
const statusMatch = fm.match(/^status:\s*(.+)$/m);
|
|
42
|
+
const retriesMatch = fm.match(/^retries:\s*(\d+)$/m);
|
|
43
|
+
const durationMatch = fm.match(/^duration:\s*(\d+)$/m);
|
|
44
|
+
if (statusMatch)
|
|
45
|
+
meta.status = statusMatch[1].trim();
|
|
46
|
+
if (retriesMatch)
|
|
47
|
+
meta.retries = parseInt(retriesMatch[1], 10);
|
|
48
|
+
if (durationMatch)
|
|
49
|
+
meta.duration = parseInt(durationMatch[1], 10);
|
|
50
|
+
return meta;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Compute summary metrics from an array of learning file contents.
|
|
54
|
+
*/
|
|
55
|
+
function computeMetrics(learnings) {
|
|
56
|
+
const metas = learnings.map(parseFrontmatter);
|
|
57
|
+
const total = metas.length;
|
|
58
|
+
const successes = metas.filter((m) => m.status === 'success').length;
|
|
59
|
+
const failures = total - successes;
|
|
60
|
+
const avgRetries = total > 0
|
|
61
|
+
? Math.round((metas.reduce((s, m) => s + m.retries, 0) / total) * 10) / 10
|
|
62
|
+
: 0;
|
|
63
|
+
const avgDurationSecs = total > 0
|
|
64
|
+
? Math.round(metas.reduce((s, m) => s + m.duration, 0) / total)
|
|
65
|
+
: 0;
|
|
66
|
+
// Extract failure reasons from "What Failed" sections
|
|
67
|
+
const failureReasons = [];
|
|
68
|
+
for (const content of learnings) {
|
|
69
|
+
const failedMatch = content.match(/## What Failed\n([\s\S]*?)(?=\n## |$)/);
|
|
70
|
+
if (failedMatch) {
|
|
71
|
+
const lines = failedMatch[1]
|
|
72
|
+
.split('\n')
|
|
73
|
+
.map((l) => l.replace(/^[-*]\s*/, '').trim())
|
|
74
|
+
.filter(Boolean);
|
|
75
|
+
failureReasons.push(...lines.slice(0, 3));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return { total, successes, failures, avgRetries, avgDurationSecs, failureReasons };
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Read all files from a directory, returning { path, content } pairs.
|
|
82
|
+
* Non-existent directories are silently skipped.
|
|
83
|
+
*/
|
|
84
|
+
function readDirFiles(dir, exts) {
|
|
85
|
+
if (!existsSync(dir))
|
|
86
|
+
return [];
|
|
87
|
+
const results = [];
|
|
88
|
+
function walk(current) {
|
|
89
|
+
try {
|
|
90
|
+
const entries = readdirSync(current, { withFileTypes: true });
|
|
91
|
+
for (const entry of entries) {
|
|
92
|
+
const fullPath = join(current, entry.name);
|
|
93
|
+
if (entry.isDirectory()) {
|
|
94
|
+
walk(fullPath);
|
|
95
|
+
}
|
|
96
|
+
else if (entry.isFile()) {
|
|
97
|
+
if (exts.length > 0 && !exts.some((ext) => entry.name.endsWith(ext)))
|
|
98
|
+
continue;
|
|
99
|
+
try {
|
|
100
|
+
const content = readFileSync(fullPath, 'utf-8');
|
|
101
|
+
results.push({ path: fullPath, content });
|
|
102
|
+
}
|
|
103
|
+
catch { /* skip unreadable */ }
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
catch { /* skip unreadable dirs */ }
|
|
108
|
+
}
|
|
109
|
+
walk(dir);
|
|
110
|
+
return results;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Format the metrics object as a Markdown table.
|
|
114
|
+
*/
|
|
115
|
+
function formatMetricsTable(metrics) {
|
|
116
|
+
const successRate = metrics.total > 0
|
|
117
|
+
? Math.round((metrics.successes / metrics.total) * 100)
|
|
118
|
+
: 0;
|
|
119
|
+
return [
|
|
120
|
+
'| Metric | Value |',
|
|
121
|
+
'|--------|-------|',
|
|
122
|
+
`| Total runs | ${metrics.total} |`,
|
|
123
|
+
`| Successes | ${metrics.successes} |`,
|
|
124
|
+
`| Failures | ${metrics.failures} |`,
|
|
125
|
+
`| Success rate | ${successRate}% |`,
|
|
126
|
+
`| Avg retries | ${metrics.avgRetries} |`,
|
|
127
|
+
`| Avg duration | ${metrics.avgDurationSecs}s |`,
|
|
128
|
+
].join('\n');
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Build the improvement prompt to send to Claude.
|
|
132
|
+
*/
|
|
133
|
+
function buildImprovementPrompt(options) {
|
|
134
|
+
const { metrics, learningsContent, agentDefs, skillDefs, harnessConfig } = options;
|
|
135
|
+
const agentDefsText = agentDefs.length > 0
|
|
136
|
+
? agentDefs.map((f) => `### ${f.path}\n\`\`\`\n${f.content}\n\`\`\``).join('\n\n')
|
|
137
|
+
: '(no agent definitions found)';
|
|
138
|
+
const skillDefsText = skillDefs.length > 0
|
|
139
|
+
? skillDefs.map((f) => `### ${f.path}\n\`\`\`\n${f.content}\n\`\`\``).join('\n\n')
|
|
140
|
+
: '(no skill definitions found)';
|
|
141
|
+
return `You are a self-improvement agent for the Alpha Loop automated development system. Your job is to analyze accumulated learnings from development runs and propose specific, targeted improvements to the agent prompts, skill definitions, and configuration.
|
|
142
|
+
|
|
143
|
+
## Session Metrics
|
|
144
|
+
|
|
145
|
+
${formatMetricsTable(metrics)}
|
|
146
|
+
|
|
147
|
+
### Top Failure Reasons
|
|
148
|
+
${metrics.failureReasons.length > 0 ? metrics.failureReasons.map((r) => `- ${r}`).join('\n') : '- (none recorded)'}
|
|
149
|
+
|
|
150
|
+
## Accumulated Learnings
|
|
151
|
+
|
|
152
|
+
${learningsContent}
|
|
153
|
+
|
|
154
|
+
## Current Agent Definitions
|
|
155
|
+
|
|
156
|
+
${agentDefsText}
|
|
157
|
+
|
|
158
|
+
## Current Skill Definitions
|
|
159
|
+
|
|
160
|
+
${skillDefsText}
|
|
161
|
+
|
|
162
|
+
## Current Harness Configuration (.alpha-loop.yaml)
|
|
163
|
+
|
|
164
|
+
\`\`\`yaml
|
|
165
|
+
${harnessConfig}
|
|
166
|
+
\`\`\`
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Your Task
|
|
171
|
+
|
|
172
|
+
Analyze the learnings and propose specific improvements. Focus on:
|
|
173
|
+
|
|
174
|
+
1. **Agent prompts** (\`.alpha-loop/templates/agents/implementer.md\`, \`.alpha-loop/templates/agents/reviewer.md\`):
|
|
175
|
+
- Are there recurring patterns or anti-patterns that should be baked into the prompts?
|
|
176
|
+
- Are there common mistakes the agent makes that a prompt instruction would prevent?
|
|
177
|
+
- Are there successful strategies that should be reinforced?
|
|
178
|
+
|
|
179
|
+
2. **Skill definitions** (in \`.alpha-loop/templates/skills/\`, synced to harness-specific paths):
|
|
180
|
+
- Should any skills be added, updated, or removed based on the learnings?
|
|
181
|
+
- Are there recurring test patterns (Playwright, Jest) that deserve a skill?
|
|
182
|
+
- Are there common environment issues (ports, auth, seeding) that should be documented?
|
|
183
|
+
|
|
184
|
+
3. **Testing environment**:
|
|
185
|
+
- Playwright/browser configuration failures
|
|
186
|
+
- Port conflict patterns
|
|
187
|
+
- Authentication state issues
|
|
188
|
+
- Database seeding / test data problems
|
|
189
|
+
- Environment variable gaps
|
|
190
|
+
- Virtual environment or dependency setup in worktrees
|
|
191
|
+
|
|
192
|
+
4. **Harness configuration** (\`.alpha-loop.yaml\` defaults):
|
|
193
|
+
- Should any defaults change based on what consistently works or fails?
|
|
194
|
+
- Are there timeout or retry values that need tuning?
|
|
195
|
+
|
|
196
|
+
5. **Prompt engineering**:
|
|
197
|
+
- Are there prompt patterns that consistently lead to success or failure?
|
|
198
|
+
- Are there structural changes to the prompts that would improve reliability?
|
|
199
|
+
|
|
200
|
+
## Output Format
|
|
201
|
+
|
|
202
|
+
Respond with ONLY a JSON array of proposed changes. Each change must have this exact structure:
|
|
203
|
+
|
|
204
|
+
\`\`\`json
|
|
205
|
+
[
|
|
206
|
+
{
|
|
207
|
+
"path": "agents/implementer.md",
|
|
208
|
+
"content": "...full file content after the change...",
|
|
209
|
+
"reason": "Concise explanation of why this change is proposed, referencing specific learning patterns",
|
|
210
|
+
"category": "agent"
|
|
211
|
+
}
|
|
212
|
+
]
|
|
213
|
+
\`\`\`
|
|
214
|
+
|
|
215
|
+
Rules:
|
|
216
|
+
- \`path\` must be one of: \`.alpha-loop/templates/agents/*.md\`, \`.alpha-loop/templates/skills/*\`, or \`.alpha-loop.yaml\`
|
|
217
|
+
- \`content\` is the COMPLETE new file content (not a diff)
|
|
218
|
+
- \`category\` must be one of: \`agent\`, \`skill\`, \`config\`, \`testing\`
|
|
219
|
+
- Only propose changes that are clearly supported by the learnings data
|
|
220
|
+
- Do not propose changes just to change things — only when there is a clear pattern
|
|
221
|
+
- If no changes are warranted, return an empty array: \`[]\`
|
|
222
|
+
|
|
223
|
+
Output ONLY the JSON array with no other text before or after it.`;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Extract a JSON array from agent output using regex.
|
|
227
|
+
*/
|
|
228
|
+
function extractJsonArray(output) {
|
|
229
|
+
// Look for a JSON array — greedy match from first [ to last ]
|
|
230
|
+
const match = output.match(/\[[\s\S]*\]/);
|
|
231
|
+
if (!match)
|
|
232
|
+
return [];
|
|
233
|
+
try {
|
|
234
|
+
const parsed = JSON.parse(match[0]);
|
|
235
|
+
if (!Array.isArray(parsed))
|
|
236
|
+
return [];
|
|
237
|
+
const changes = [];
|
|
238
|
+
for (const item of parsed) {
|
|
239
|
+
if (typeof item === 'object' && item !== null &&
|
|
240
|
+
'path' in item && typeof item.path === 'string' &&
|
|
241
|
+
'content' in item && typeof item.content === 'string' &&
|
|
242
|
+
'reason' in item && typeof item.reason === 'string' &&
|
|
243
|
+
'category' in item) {
|
|
244
|
+
changes.push(item);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return changes;
|
|
248
|
+
}
|
|
249
|
+
catch {
|
|
250
|
+
return [];
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Display proposed changes to the user, grouped by category.
|
|
255
|
+
*/
|
|
256
|
+
function displayProposals(changes) {
|
|
257
|
+
const byCategory = {};
|
|
258
|
+
for (const change of changes) {
|
|
259
|
+
const cat = change.category ?? 'other';
|
|
260
|
+
if (!byCategory[cat])
|
|
261
|
+
byCategory[cat] = [];
|
|
262
|
+
byCategory[cat].push(change);
|
|
263
|
+
}
|
|
264
|
+
const categoryLabels = {
|
|
265
|
+
agent: 'Agent Prompts',
|
|
266
|
+
skill: 'Skill Definitions',
|
|
267
|
+
config: 'Harness Configuration',
|
|
268
|
+
testing: 'Testing Environment',
|
|
269
|
+
};
|
|
270
|
+
for (const [category, categoryChanges] of Object.entries(byCategory)) {
|
|
271
|
+
const label = categoryLabels[category] ?? category;
|
|
272
|
+
log.info(`\n ${label.toUpperCase()}`);
|
|
273
|
+
for (const change of categoryChanges) {
|
|
274
|
+
log.info(` ${change.path}`);
|
|
275
|
+
log.info(` Reason: ${change.reason}`);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Save proposals to a markdown file in .alpha-loop/learnings/proposed-updates/.
|
|
281
|
+
*/
|
|
282
|
+
function saveProposals(proposals, metrics, timestamp, projectDir) {
|
|
283
|
+
const dir = join(projectDir, '.alpha-loop', 'learnings', 'proposed-updates');
|
|
284
|
+
mkdirSync(dir, { recursive: true });
|
|
285
|
+
const outFile = join(dir, `${timestamp}-proposals.md`);
|
|
286
|
+
const lines = [
|
|
287
|
+
`# Proposed Improvements — ${timestamp}`,
|
|
288
|
+
'',
|
|
289
|
+
'## Metrics',
|
|
290
|
+
'',
|
|
291
|
+
formatMetricsTable(metrics),
|
|
292
|
+
'',
|
|
293
|
+
'## Proposed Changes',
|
|
294
|
+
'',
|
|
295
|
+
];
|
|
296
|
+
if (proposals.length === 0) {
|
|
297
|
+
lines.push('No changes proposed.');
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
for (const change of proposals) {
|
|
301
|
+
lines.push(`### ${change.path}`);
|
|
302
|
+
lines.push('');
|
|
303
|
+
lines.push(`**Category:** ${change.category}`);
|
|
304
|
+
lines.push('');
|
|
305
|
+
lines.push(`**Reason:** ${change.reason}`);
|
|
306
|
+
lines.push('');
|
|
307
|
+
lines.push('```');
|
|
308
|
+
lines.push(change.content);
|
|
309
|
+
lines.push('```');
|
|
310
|
+
lines.push('');
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
writeFileSync(outFile, lines.join('\n'), 'utf-8');
|
|
314
|
+
return outFile;
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Apply proposed changes to files and create a draft PR.
|
|
318
|
+
*/
|
|
319
|
+
async function applyChanges(proposals, metrics, timestamp, projectDir, config) {
|
|
320
|
+
const branch = `improve/learnings-${timestamp}`;
|
|
321
|
+
// Create and switch to improvement branch
|
|
322
|
+
log.step(`Creating branch ${branch}...`);
|
|
323
|
+
const branchResult = exec(`git checkout -b "${branch}"`, { cwd: projectDir });
|
|
324
|
+
if (branchResult.exitCode !== 0) {
|
|
325
|
+
throw new Error(`Failed to create branch: ${branchResult.stderr}`);
|
|
326
|
+
}
|
|
327
|
+
// Apply each change
|
|
328
|
+
const appliedPaths = [];
|
|
329
|
+
for (const change of proposals) {
|
|
330
|
+
if (!isSafePath(change.path)) {
|
|
331
|
+
log.warn(`Skipping unsafe path: ${change.path}`);
|
|
332
|
+
continue;
|
|
333
|
+
}
|
|
334
|
+
const fullPath = join(projectDir, change.path);
|
|
335
|
+
const dir = fullPath.substring(0, fullPath.lastIndexOf('/'));
|
|
336
|
+
mkdirSync(dir, { recursive: true });
|
|
337
|
+
writeFileSync(fullPath, change.content, 'utf-8');
|
|
338
|
+
appliedPaths.push(change.path);
|
|
339
|
+
log.success(`Applied: ${change.path}`);
|
|
340
|
+
}
|
|
341
|
+
if (appliedPaths.length === 0) {
|
|
342
|
+
log.warn('No changes were applied (all paths were rejected). Switching back to base branch.');
|
|
343
|
+
exec(`git checkout "${config.baseBranch}"`, { cwd: projectDir });
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
// Sync skills to all configured harnesses so editor copies stay current
|
|
347
|
+
const syncResult = syncAgentAssets(config.harnesses, { projectDir });
|
|
348
|
+
if (syncResult.synced) {
|
|
349
|
+
log.success('Synced agent assets after applying changes');
|
|
350
|
+
}
|
|
351
|
+
// Stage and commit changes (including synced copies)
|
|
352
|
+
const stageResult = exec(`git add ${appliedPaths.map((p) => JSON.stringify(p)).join(' ')} .alpha-loop/templates/ .claude/ .agents/ .codex/ 2>/dev/null || true`, { cwd: projectDir });
|
|
353
|
+
if (stageResult.exitCode !== 0) {
|
|
354
|
+
throw new Error(`Failed to stage changes: ${stageResult.stderr}`);
|
|
355
|
+
}
|
|
356
|
+
const commitMsg = `improve: apply ${appliedPaths.length} learning-driven improvement(s)`;
|
|
357
|
+
const commitResult = exec(`git commit -m ${JSON.stringify(commitMsg)}`, { cwd: projectDir });
|
|
358
|
+
if (commitResult.exitCode !== 0) {
|
|
359
|
+
throw new Error(`Failed to commit: ${commitResult.stderr}`);
|
|
360
|
+
}
|
|
361
|
+
// Build PR body
|
|
362
|
+
const successRate = metrics.total > 0
|
|
363
|
+
? Math.round((metrics.successes / metrics.total) * 100)
|
|
364
|
+
: 0;
|
|
365
|
+
const prBody = [
|
|
366
|
+
'## Self-Improvement: Learnings-Driven Updates',
|
|
367
|
+
'',
|
|
368
|
+
'This PR was generated automatically by `alpha-loop review --apply` after analyzing accumulated run learnings.',
|
|
369
|
+
'',
|
|
370
|
+
'## Metrics',
|
|
371
|
+
'',
|
|
372
|
+
formatMetricsTable(metrics),
|
|
373
|
+
'',
|
|
374
|
+
`Success rate: ${successRate}%`,
|
|
375
|
+
'',
|
|
376
|
+
'## Changes',
|
|
377
|
+
'',
|
|
378
|
+
...proposals
|
|
379
|
+
.filter((p) => appliedPaths.includes(p.path))
|
|
380
|
+
.map((p) => `### \`${p.path}\`\n\n**Category:** ${p.category}\n\n**Reason:** ${p.reason}`),
|
|
381
|
+
].join('\n');
|
|
382
|
+
// Create draft PR
|
|
383
|
+
log.step('Creating draft PR...');
|
|
384
|
+
const prUrl = createPR({
|
|
385
|
+
repo: config.repo,
|
|
386
|
+
base: config.baseBranch,
|
|
387
|
+
head: branch,
|
|
388
|
+
title: `improve: learning-driven agent/skill improvements (${appliedPaths.length} changes)`,
|
|
389
|
+
body: prBody,
|
|
390
|
+
cwd: projectDir,
|
|
391
|
+
});
|
|
392
|
+
log.success(`Draft PR created: ${prUrl}`);
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Main review command implementation.
|
|
396
|
+
*/
|
|
397
|
+
export async function reviewCommand(options) {
|
|
398
|
+
const config = loadConfig();
|
|
399
|
+
const projectDir = process.cwd();
|
|
400
|
+
const timestamp = formatTimestamp(new Date());
|
|
401
|
+
log.step('Starting self-improvement review...');
|
|
402
|
+
// --- Gather learnings ---
|
|
403
|
+
const learningsDir = join(projectDir, '.alpha-loop', 'learnings');
|
|
404
|
+
if (!existsSync(learningsDir)) {
|
|
405
|
+
log.warn('No learnings directory found at .alpha-loop/learnings/. Run the loop first to accumulate learnings.');
|
|
406
|
+
return;
|
|
407
|
+
}
|
|
408
|
+
let learningFiles = readdirSync(learningsDir)
|
|
409
|
+
.filter((f) => f.endsWith('.md'))
|
|
410
|
+
.sort();
|
|
411
|
+
if (learningFiles.length === 0) {
|
|
412
|
+
log.warn('No learning files found. Run the loop first to accumulate learnings.');
|
|
413
|
+
return;
|
|
414
|
+
}
|
|
415
|
+
// Filter to session if --session is provided
|
|
416
|
+
if (options.session) {
|
|
417
|
+
const sessionSlug = options.session;
|
|
418
|
+
const before = learningFiles.length;
|
|
419
|
+
learningFiles = learningFiles.filter((f) => f.includes(sessionSlug));
|
|
420
|
+
if (learningFiles.length === 0) {
|
|
421
|
+
log.warn(`No learnings found for session "${sessionSlug}" (checked ${before} files).`);
|
|
422
|
+
return;
|
|
423
|
+
}
|
|
424
|
+
log.info(`Filtered to ${learningFiles.length} learning(s) for session "${sessionSlug}"`);
|
|
425
|
+
}
|
|
426
|
+
else {
|
|
427
|
+
log.info(`Found ${learningFiles.length} learning file(s)`);
|
|
428
|
+
}
|
|
429
|
+
// Read learning contents
|
|
430
|
+
const learnings = learningFiles.map((f) => {
|
|
431
|
+
try {
|
|
432
|
+
return readFileSync(join(learningsDir, f), 'utf-8');
|
|
433
|
+
}
|
|
434
|
+
catch {
|
|
435
|
+
return '';
|
|
436
|
+
}
|
|
437
|
+
}).filter(Boolean);
|
|
438
|
+
// Truncate combined learnings if too long
|
|
439
|
+
let learningsContent = learnings.join('\n\n---\n\n');
|
|
440
|
+
if (learningsContent.length > MAX_LEARNINGS_CHARS) {
|
|
441
|
+
log.info(`Learnings truncated from ${learningsContent.length} to ${MAX_LEARNINGS_CHARS} chars`);
|
|
442
|
+
learningsContent = learningsContent.slice(0, MAX_LEARNINGS_CHARS) + '\n\n[... truncated ...]';
|
|
443
|
+
}
|
|
444
|
+
// --- Compute metrics ---
|
|
445
|
+
const metrics = computeMetrics(learnings);
|
|
446
|
+
log.info(`Metrics: ${metrics.total} runs, ${metrics.successes} succeeded, ${metrics.failures} failed`);
|
|
447
|
+
// --- Gather agent definitions from .alpha-loop/templates/ (source of truth) ---
|
|
448
|
+
const templateAgentsDir = join(projectDir, '.alpha-loop', 'templates', 'agents');
|
|
449
|
+
const agentDefs = readDirFiles(templateAgentsDir, ['.md', '.yaml', '.yml']);
|
|
450
|
+
log.info(`Found ${agentDefs.length} agent definition(s)`);
|
|
451
|
+
// --- Gather skill definitions from .alpha-loop/templates/ (source of truth) ---
|
|
452
|
+
const templateSkillsDir = join(projectDir, '.alpha-loop', 'templates', 'skills');
|
|
453
|
+
const allSkills = readDirFiles(templateSkillsDir, []);
|
|
454
|
+
log.info(`Found ${allSkills.length} skill definition(s)`);
|
|
455
|
+
// --- Gather harness config ---
|
|
456
|
+
const harnessConfigPath = join(projectDir, '.alpha-loop.yaml');
|
|
457
|
+
const harnessConfig = existsSync(harnessConfigPath)
|
|
458
|
+
? readFileSync(harnessConfigPath, 'utf-8')
|
|
459
|
+
: '(no .alpha-loop.yaml found)';
|
|
460
|
+
// --- Build and send improvement prompt ---
|
|
461
|
+
log.step('Sending improvement prompt to Claude...');
|
|
462
|
+
const prompt = buildImprovementPrompt({
|
|
463
|
+
metrics,
|
|
464
|
+
learningsContent,
|
|
465
|
+
agentDefs: agentDefs.map((f) => ({
|
|
466
|
+
path: f.path.replace(projectDir + '/', ''),
|
|
467
|
+
content: f.content,
|
|
468
|
+
})),
|
|
469
|
+
skillDefs: allSkills.map((f) => ({
|
|
470
|
+
path: f.path.replace(projectDir + '/', ''),
|
|
471
|
+
content: f.content,
|
|
472
|
+
})),
|
|
473
|
+
harnessConfig,
|
|
474
|
+
});
|
|
475
|
+
const agentResult = await spawnAgent({
|
|
476
|
+
agent: 'claude',
|
|
477
|
+
model: config.reviewModel,
|
|
478
|
+
prompt,
|
|
479
|
+
cwd: projectDir,
|
|
480
|
+
});
|
|
481
|
+
if (agentResult.exitCode !== 0 || !agentResult.output.trim()) {
|
|
482
|
+
log.error(`Agent invocation failed (exit ${agentResult.exitCode}). Cannot produce proposals.`);
|
|
483
|
+
return;
|
|
484
|
+
}
|
|
485
|
+
// --- Parse proposals ---
|
|
486
|
+
const proposals = extractJsonArray(agentResult.output);
|
|
487
|
+
if (proposals.length === 0) {
|
|
488
|
+
log.info('No improvements proposed. The agent found no clear patterns to act on.');
|
|
489
|
+
return;
|
|
490
|
+
}
|
|
491
|
+
// Filter out unsafe paths before doing anything further
|
|
492
|
+
const safeProposals = proposals.filter((p) => {
|
|
493
|
+
if (!isSafePath(p.path)) {
|
|
494
|
+
log.warn(`Rejected proposal for unsafe path: ${p.path}`);
|
|
495
|
+
return false;
|
|
496
|
+
}
|
|
497
|
+
return true;
|
|
498
|
+
});
|
|
499
|
+
log.success(`${safeProposals.length} improvement(s) proposed`);
|
|
500
|
+
displayProposals(safeProposals);
|
|
501
|
+
// --- Check for skill upgrades from distribution templates ---
|
|
502
|
+
const distTemplatesDir = findDistributionTemplatesDir();
|
|
503
|
+
if (distTemplatesDir) {
|
|
504
|
+
const distSkillsDir = join(distTemplatesDir, 'skills');
|
|
505
|
+
const projectSkillsDir = join(projectDir, '.alpha-loop', 'templates', 'skills');
|
|
506
|
+
const upgrades = diffSkills(distSkillsDir, projectSkillsDir);
|
|
507
|
+
if (upgrades.length > 0) {
|
|
508
|
+
log.info('');
|
|
509
|
+
log.step(`Skill upgrades available (${upgrades.length}):`);
|
|
510
|
+
for (const u of upgrades) {
|
|
511
|
+
log.info(` ${u.status === 'new' ? '[NEW]' : '[UPDATE]'} ${u.name}`);
|
|
512
|
+
}
|
|
513
|
+
if (options.apply) {
|
|
514
|
+
// Apply skill upgrades
|
|
515
|
+
mkdirSync(projectSkillsDir, { recursive: true });
|
|
516
|
+
for (const u of upgrades) {
|
|
517
|
+
const destDir = join(projectSkillsDir, u.name);
|
|
518
|
+
mkdirSync(destDir, { recursive: true });
|
|
519
|
+
writeFileSync(join(destDir, 'SKILL.md'), u.distContent);
|
|
520
|
+
log.success(`Upgraded skill: ${u.name}`);
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
else {
|
|
524
|
+
log.info(' Run with --apply to install these upgrades.');
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
// --- Apply or save ---
|
|
529
|
+
if (options.apply) {
|
|
530
|
+
if (!config.repo) {
|
|
531
|
+
log.error('No repo configured in .alpha-loop.yaml. Cannot create PR.');
|
|
532
|
+
return;
|
|
533
|
+
}
|
|
534
|
+
log.step('Applying changes and creating draft PR...');
|
|
535
|
+
await applyChanges(safeProposals, metrics, timestamp, projectDir, {
|
|
536
|
+
repo: config.repo,
|
|
537
|
+
baseBranch: config.baseBranch,
|
|
538
|
+
model: config.model,
|
|
539
|
+
reviewModel: config.reviewModel,
|
|
540
|
+
harnesses: config.harnesses,
|
|
541
|
+
});
|
|
542
|
+
}
|
|
543
|
+
else {
|
|
544
|
+
const savedPath = saveProposals(safeProposals, metrics, timestamp, projectDir);
|
|
545
|
+
log.success(`Proposals saved to ${savedPath}`);
|
|
546
|
+
log.info('Run with --apply to apply the changes and create a draft PR.');
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
//# sourceMappingURL=review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/run.js
CHANGED
|
@@ -190,8 +190,8 @@ export async function runCommand(options) {
|
|
|
190
190
|
};
|
|
191
191
|
process.on('SIGINT', () => { void cleanup(); });
|
|
192
192
|
process.on('SIGTERM', () => { void cleanup(); });
|
|
193
|
-
// Sync agent assets
|
|
194
|
-
const syncResult = syncAgentAssets();
|
|
193
|
+
// Sync agent assets to all configured harnesses before starting the loop
|
|
194
|
+
const syncResult = syncAgentAssets(config.harnesses);
|
|
195
195
|
if (syncResult.synced) {
|
|
196
196
|
log.success('Agent assets synced before run');
|
|
197
197
|
}
|
package/dist/commands/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/scan.d.ts
CHANGED
|
@@ -1 +1,6 @@
|
|
|
1
1
|
export declare function scanCommand(): void;
|
|
2
|
+
/**
|
|
3
|
+
* Generate or update the instructions file at .alpha-loop/templates/instructions.md.
|
|
4
|
+
* If no existing file, generates from scratch. If existing, merges with fresh scan.
|
|
5
|
+
*/
|
|
6
|
+
export declare function generateInstructions(projectDir: string, model: string): void;
|