@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
package/dist/commands/scan.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as fs from 'node:fs';
|
|
2
2
|
import * as path from 'node:path';
|
|
3
|
+
import { tmpdir } from 'node:os';
|
|
3
4
|
import { exec } from '../lib/shell.js';
|
|
4
5
|
import { log } from '../lib/logger.js';
|
|
5
6
|
import { assertSafeShellArg, loadConfig } from '../lib/config.js';
|
|
@@ -25,12 +26,66 @@ const SCAN_PROMPT = `Analyze this codebase and produce a concise project context
|
|
|
25
26
|
- Recent changes: (will be filled in by the loop)
|
|
26
27
|
|
|
27
28
|
Keep each section to 3-5 bullet points. Be specific to THIS codebase, not generic advice. Under 400 words total.`;
|
|
29
|
+
/**
|
|
30
|
+
* Prompt for generating the lean instructions file.
|
|
31
|
+
* Contains ONLY project context — procedural content (testing, git, security) lives in skills.
|
|
32
|
+
*/
|
|
33
|
+
const INSTRUCTIONS_PROMPT = `Analyze this codebase and produce a concise project instructions file for AI coding agents working in this repo.
|
|
34
|
+
|
|
35
|
+
Output ONLY this markdown structure with the marker comment on the first line:
|
|
36
|
+
|
|
37
|
+
<!-- managed by alpha-loop -->
|
|
38
|
+
# [Project Name]
|
|
39
|
+
|
|
40
|
+
## Overview
|
|
41
|
+
[2-3 sentences: what this project is, what it does, who it's for]
|
|
42
|
+
|
|
43
|
+
## Tech Stack
|
|
44
|
+
- Language: [e.g., TypeScript (strict mode, ESM)]
|
|
45
|
+
- Runtime: [e.g., Node.js 20+]
|
|
46
|
+
- Framework: [e.g., Express 5, React 19]
|
|
47
|
+
- Package manager: [e.g., pnpm]
|
|
48
|
+
- Key dependencies: [top 3-5 important dependencies]
|
|
49
|
+
|
|
50
|
+
## Directory Structure
|
|
51
|
+
[List key directories and what they contain — only the important ones, not every folder]
|
|
52
|
+
|
|
53
|
+
## Code Style
|
|
54
|
+
[Naming conventions, import ordering, formatting rules, architectural patterns — be specific to THIS codebase]
|
|
55
|
+
|
|
56
|
+
## Non-Negotiables
|
|
57
|
+
[Critical rules that must never be violated — security, data safety, patterns that break things if not followed]
|
|
58
|
+
|
|
59
|
+
IMPORTANT RULES:
|
|
60
|
+
- Do NOT include testing procedures, git workflow, code review checklists, or security scanning procedures — those belong in separate skills, not here.
|
|
61
|
+
- Do NOT include build/deploy commands — those are operational, not instructional.
|
|
62
|
+
- Keep it under 150 lines. Be specific to THIS codebase, not generic advice.
|
|
63
|
+
- The marker comment "<!-- managed by alpha-loop -->" MUST be the very first line.`;
|
|
64
|
+
/**
|
|
65
|
+
* Prompt for merging an existing instructions file with fresh scan results.
|
|
66
|
+
*/
|
|
67
|
+
const INSTRUCTIONS_MERGE_PROMPT = `You are updating a project instructions file for AI coding agents.
|
|
68
|
+
|
|
69
|
+
Below is the EXISTING instructions file and the CURRENT state of the codebase. Your job is to:
|
|
70
|
+
1. PRESERVE any user customizations and project-specific rules in the existing file
|
|
71
|
+
2. UPDATE sections that are stale or incorrect based on the current codebase
|
|
72
|
+
3. ADD any important new context discovered in the codebase
|
|
73
|
+
4. REMOVE information that is no longer accurate
|
|
74
|
+
|
|
75
|
+
The marker comment "<!-- managed by alpha-loop -->" MUST remain as the very first line.
|
|
76
|
+
|
|
77
|
+
IMPORTANT: Do NOT add testing procedures, git workflow, code review checklists, or security scanning — those belong in skills, not instructions. Keep the same 5-section structure (Overview, Tech Stack, Directory Structure, Code Style, Non-Negotiables). Keep it under 150 lines.
|
|
78
|
+
|
|
79
|
+
## EXISTING INSTRUCTIONS FILE:
|
|
80
|
+
|
|
81
|
+
`;
|
|
28
82
|
export function scanCommand() {
|
|
29
83
|
const projectDir = process.cwd();
|
|
30
84
|
const contextDir = path.join(projectDir, '.alpha-loop');
|
|
31
85
|
const contextFile = path.join(contextDir, 'context.md');
|
|
32
86
|
const config = loadConfig();
|
|
33
87
|
fs.mkdirSync(contextDir, { recursive: true });
|
|
88
|
+
// --- Generate project context ---
|
|
34
89
|
log.step('Scanning codebase for project context...');
|
|
35
90
|
const model = assertSafeShellArg(config.model ?? 'opus', 'model');
|
|
36
91
|
const result = exec(`echo ${JSON.stringify(SCAN_PROMPT)} | claude -p --model ${model} --dangerously-skip-permissions --output-format text 2>/dev/null`, { cwd: projectDir });
|
|
@@ -46,5 +101,79 @@ export function scanCommand() {
|
|
|
46
101
|
else {
|
|
47
102
|
log.error(`Project context generation failed: ${result.stderr || 'empty output'}`);
|
|
48
103
|
}
|
|
104
|
+
// --- Generate instructions file ---
|
|
105
|
+
generateInstructions(projectDir, model);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Generate or update the instructions file at .alpha-loop/templates/instructions.md.
|
|
109
|
+
* If no existing file, generates from scratch. If existing, merges with fresh scan.
|
|
110
|
+
*/
|
|
111
|
+
export function generateInstructions(projectDir, model) {
|
|
112
|
+
const templatesDir = path.join(projectDir, '.alpha-loop', 'templates');
|
|
113
|
+
fs.mkdirSync(templatesDir, { recursive: true });
|
|
114
|
+
const instructionsFile = path.join(templatesDir, 'instructions.md');
|
|
115
|
+
const existing = fs.existsSync(instructionsFile)
|
|
116
|
+
? fs.readFileSync(instructionsFile, 'utf-8')
|
|
117
|
+
: null;
|
|
118
|
+
if (existing) {
|
|
119
|
+
// Merge mode: preserve user customizations, update stale content
|
|
120
|
+
log.step('Updating instructions file...');
|
|
121
|
+
// Back up existing before merge
|
|
122
|
+
fs.writeFileSync(instructionsFile + '.bak', existing, 'utf-8');
|
|
123
|
+
const mergePrompt = INSTRUCTIONS_MERGE_PROMPT + existing +
|
|
124
|
+
'\n\n## OUTPUT:\nProduce the updated instructions file. Output ONLY the markdown content, nothing else.';
|
|
125
|
+
// Write prompt to temp file to avoid shell injection from file content
|
|
126
|
+
const safeModel = assertSafeShellArg(model, 'model');
|
|
127
|
+
const promptFile = path.join(tmpdir(), `alpha-loop-merge-${Date.now()}.txt`);
|
|
128
|
+
fs.writeFileSync(promptFile, mergePrompt, 'utf-8');
|
|
129
|
+
const mergeResult = exec(`claude -p --model ${safeModel} --dangerously-skip-permissions --output-format text < "${promptFile}" 2>/dev/null`, { cwd: projectDir });
|
|
130
|
+
try {
|
|
131
|
+
fs.unlinkSync(promptFile);
|
|
132
|
+
}
|
|
133
|
+
catch { /* cleanup best-effort */ }
|
|
134
|
+
if (mergeResult.exitCode === 0 && mergeResult.stdout.trim()) {
|
|
135
|
+
let output = mergeResult.stdout.trim();
|
|
136
|
+
// Ensure marker is present
|
|
137
|
+
if (!output.startsWith('<!-- managed by alpha-loop -->')) {
|
|
138
|
+
output = '<!-- managed by alpha-loop -->\n' + output;
|
|
139
|
+
}
|
|
140
|
+
fs.writeFileSync(instructionsFile, output + '\n');
|
|
141
|
+
log.success('Instructions file updated (backup at instructions.md.bak)');
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
log.warn('Instructions merge failed, keeping existing file');
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
// Fresh generation
|
|
149
|
+
log.step('Generating baseline instructions file...');
|
|
150
|
+
const safeModel = assertSafeShellArg(model, 'model');
|
|
151
|
+
const genPromptFile = path.join(tmpdir(), `alpha-loop-gen-${Date.now()}.txt`);
|
|
152
|
+
fs.writeFileSync(genPromptFile, INSTRUCTIONS_PROMPT, 'utf-8');
|
|
153
|
+
const genResult = exec(`claude -p --model ${safeModel} --dangerously-skip-permissions --output-format text < "${genPromptFile}" 2>/dev/null`, { cwd: projectDir });
|
|
154
|
+
try {
|
|
155
|
+
fs.unlinkSync(genPromptFile);
|
|
156
|
+
}
|
|
157
|
+
catch { /* cleanup best-effort */ }
|
|
158
|
+
if (genResult.exitCode === 0 && genResult.stdout.trim()) {
|
|
159
|
+
let output = genResult.stdout.trim();
|
|
160
|
+
if (!output.startsWith('<!-- managed by alpha-loop -->')) {
|
|
161
|
+
output = '<!-- managed by alpha-loop -->\n' + output;
|
|
162
|
+
}
|
|
163
|
+
fs.writeFileSync(instructionsFile, output + '\n');
|
|
164
|
+
log.success(`Instructions file generated: ${instructionsFile}`);
|
|
165
|
+
}
|
|
166
|
+
else if (genResult.stdout?.trim()) {
|
|
167
|
+
let output = genResult.stdout.trim();
|
|
168
|
+
if (!output.startsWith('<!-- managed by alpha-loop -->')) {
|
|
169
|
+
output = '<!-- managed by alpha-loop -->\n' + output;
|
|
170
|
+
}
|
|
171
|
+
fs.writeFileSync(instructionsFile, output + '\n');
|
|
172
|
+
log.warn('Claude exited with errors but produced instructions output');
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
log.warn('Instructions generation failed — will retry on next scan');
|
|
176
|
+
}
|
|
177
|
+
}
|
|
49
178
|
}
|
|
50
179
|
//# sourceMappingURL=scan.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAElE,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;iHAqB6F,CAAC;AAElH,MAAM,UAAU,WAAW;IACzB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9C,GAAG,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IAErD,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,EAAE,OAAO,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,IAAI,CACjB,QAAQ,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,wBAAwB,KAAK,kEAAkE,EAClI,EAAE,GAAG,EAAE,UAAU,EAAE,CACpB,CAAC;IAEF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC3C,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACpD,GAAG,CAAC,OAAO,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAC;IACzD,CAAC;SAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACzB,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC1D,GAAG,CAAC,OAAO,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,KAAK,CAAC,sCAAsC,MAAM,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC,CAAC;IACrF,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/sync.d.ts
CHANGED
|
@@ -1,20 +1,44 @@
|
|
|
1
|
+
export type HarnessConfig = {
|
|
2
|
+
skillsDir: string;
|
|
3
|
+
agentsDir?: string;
|
|
4
|
+
instructionsFile?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const HARNESS_REGISTRY: Record<string, HarnessConfig>;
|
|
7
|
+
/** Marker that identifies files managed by alpha-loop (safe to overwrite). */
|
|
8
|
+
export declare const MANAGED_MARKER = "<!-- managed by alpha-loop -->";
|
|
1
9
|
export type SyncResult = {
|
|
2
10
|
synced: boolean;
|
|
3
11
|
docSynced: boolean;
|
|
4
12
|
skillsDirs: string[];
|
|
5
13
|
};
|
|
6
14
|
/**
|
|
7
|
-
* Sync agent assets
|
|
15
|
+
* Sync agent assets from templates to each configured harness's paths.
|
|
8
16
|
*
|
|
9
|
-
*
|
|
17
|
+
* @param harnesses - list of harness names from .alpha-loop.yaml config
|
|
18
|
+
* @param options - check-only mode and project directory override
|
|
10
19
|
*/
|
|
11
|
-
export declare function syncAgentAssets(options?: {
|
|
20
|
+
export declare function syncAgentAssets(harnesses: string[], options?: {
|
|
12
21
|
check?: boolean;
|
|
13
22
|
projectDir?: string;
|
|
14
23
|
}): SyncResult;
|
|
24
|
+
/**
|
|
25
|
+
* Migrate legacy root-level assets to the canonical templates directory.
|
|
26
|
+
*
|
|
27
|
+
* Moves:
|
|
28
|
+
* skills/ → .alpha-loop/templates/skills/
|
|
29
|
+
* .claude/agents/ → .alpha-loop/templates/agents/
|
|
30
|
+
*
|
|
31
|
+
* Does NOT delete the originals — the next sync run will recreate them
|
|
32
|
+
* from the new template location.
|
|
33
|
+
*/
|
|
34
|
+
export declare function migrateToTemplates(projectDir?: string): void;
|
|
15
35
|
/**
|
|
16
36
|
* CLI command handler for `alpha-loop sync`.
|
|
37
|
+
*
|
|
38
|
+
* Reads harness list from the caller-supplied options (populated from
|
|
39
|
+
* .alpha-loop.yaml) and delegates to syncAgentAssets.
|
|
17
40
|
*/
|
|
18
41
|
export declare function syncCommand(options?: {
|
|
19
42
|
check?: boolean;
|
|
43
|
+
harnesses?: string[];
|
|
20
44
|
}): void;
|
package/dist/commands/sync.js
CHANGED
|
@@ -1,20 +1,83 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Sync Command — keep
|
|
2
|
+
* Sync Command — keep skills, sub-agents, and instructions in sync across coding harnesses.
|
|
3
3
|
*
|
|
4
|
-
* Source of truth:
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Source of truth: .alpha-loop/templates/
|
|
5
|
+
* skills/ → each harness's skillsDir
|
|
6
|
+
* agents/ → each harness's agentsDir (if defined)
|
|
7
|
+
* instructions.md → each harness's instructionsFile (e.g., CLAUDE.md, AGENTS.md)
|
|
7
8
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
9
|
+
* Instructions files are only overwritten if they contain the "<!-- managed by alpha-loop -->"
|
|
10
|
+
* marker. Existing hand-written CLAUDE.md/AGENTS.md files are never touched.
|
|
11
|
+
*
|
|
12
|
+
* Harnesses to sync are read from the `harnesses` array supplied by the caller
|
|
13
|
+
* (typically loaded from .alpha-loop.yaml). Only harnesses that exist in the
|
|
14
|
+
* HARNESS_REGISTRY are processed.
|
|
10
15
|
*/
|
|
11
|
-
import { existsSync, copyFileSync, mkdirSync, readdirSync, statSync, readFileSync, rmSync } from 'node:fs';
|
|
16
|
+
import { existsSync, copyFileSync, mkdirSync, readdirSync, statSync, readFileSync, rmSync, renameSync, } from 'node:fs';
|
|
12
17
|
import { join } from 'node:path';
|
|
13
18
|
import { log } from '../lib/logger.js';
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
19
|
+
export const HARNESS_REGISTRY = {
|
|
20
|
+
amp: { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
21
|
+
antigravity: { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
22
|
+
augment: { skillsDir: '.augment/skills' },
|
|
23
|
+
bob: { skillsDir: '.bob/skills' },
|
|
24
|
+
'claude-code': { skillsDir: '.claude/skills', agentsDir: '.claude/agents', instructionsFile: 'CLAUDE.md' },
|
|
25
|
+
openclaw: { skillsDir: 'skills' },
|
|
26
|
+
cline: { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
27
|
+
warp: { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
28
|
+
codebuddy: { skillsDir: '.codebuddy/skills' },
|
|
29
|
+
codex: { skillsDir: '.agents/skills', agentsDir: '.codex/agents', instructionsFile: 'AGENTS.md' },
|
|
30
|
+
'command-code': { skillsDir: '.commandcode/skills' },
|
|
31
|
+
continue: { skillsDir: '.continue/skills' },
|
|
32
|
+
cortex: { skillsDir: '.cortex/skills' },
|
|
33
|
+
crush: { skillsDir: '.crush/skills' },
|
|
34
|
+
cursor: { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
35
|
+
deepagents: { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
36
|
+
droid: { skillsDir: '.factory/skills' },
|
|
37
|
+
firebender: { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
38
|
+
'gemini-cli': { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
39
|
+
'github-copilot': { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
40
|
+
goose: { skillsDir: '.goose/skills' },
|
|
41
|
+
junie: { skillsDir: '.junie/skills' },
|
|
42
|
+
'iflow-cli': { skillsDir: '.iflow/skills' },
|
|
43
|
+
kilo: { skillsDir: '.kilocode/skills' },
|
|
44
|
+
'kimi-cli': { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
45
|
+
'kiro-cli': { skillsDir: '.kiro/skills' },
|
|
46
|
+
kode: { skillsDir: '.kode/skills' },
|
|
47
|
+
mcpjam: { skillsDir: '.mcpjam/skills' },
|
|
48
|
+
'mistral-vibe': { skillsDir: '.vibe/skills' },
|
|
49
|
+
mux: { skillsDir: '.mux/skills' },
|
|
50
|
+
opencode: { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
51
|
+
openhands: { skillsDir: '.openhands/skills' },
|
|
52
|
+
pi: { skillsDir: '.pi/skills' },
|
|
53
|
+
qoder: { skillsDir: '.qoder/skills' },
|
|
54
|
+
'qwen-code': { skillsDir: '.qwen/skills' },
|
|
55
|
+
replit: { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
56
|
+
roo: { skillsDir: '.roo/skills' },
|
|
57
|
+
trae: { skillsDir: '.trae/skills' },
|
|
58
|
+
'trae-cn': { skillsDir: '.trae/skills' },
|
|
59
|
+
universal: { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
60
|
+
windsurf: { skillsDir: '.windsurf/skills' },
|
|
61
|
+
zencoder: { skillsDir: '.zencoder/skills' },
|
|
62
|
+
neovate: { skillsDir: '.neovate/skills' },
|
|
63
|
+
pochi: { skillsDir: '.pochi/skills' },
|
|
64
|
+
adal: { skillsDir: '.adal/skills' },
|
|
65
|
+
};
|
|
66
|
+
// ---------------------------------------------------------------------------
|
|
67
|
+
// Path constants
|
|
68
|
+
// ---------------------------------------------------------------------------
|
|
69
|
+
const TEMPLATES_DIR = '.alpha-loop/templates';
|
|
70
|
+
const TEMPLATE_SKILLS_SUBDIR = 'skills';
|
|
71
|
+
const TEMPLATE_AGENTS_SUBDIR = 'agents';
|
|
72
|
+
const TEMPLATE_INSTRUCTIONS_FILE = 'instructions.md';
|
|
73
|
+
/** Marker that identifies files managed by alpha-loop (safe to overwrite). */
|
|
74
|
+
export const MANAGED_MARKER = '<!-- managed by alpha-loop -->';
|
|
75
|
+
// Legacy root-level fallbacks
|
|
76
|
+
const LEGACY_SKILLS_DIR = 'skills';
|
|
77
|
+
const LEGACY_CLAUDE_AGENTS_DIR = '.claude/agents';
|
|
78
|
+
// ---------------------------------------------------------------------------
|
|
79
|
+
// Helper functions (kept exactly as before)
|
|
80
|
+
// ---------------------------------------------------------------------------
|
|
18
81
|
/**
|
|
19
82
|
* Recursively copy a directory, deleting files in target that don't exist in source.
|
|
20
83
|
*/
|
|
@@ -78,63 +141,178 @@ function dirsMatch(src, dest) {
|
|
|
78
141
|
}
|
|
79
142
|
return true;
|
|
80
143
|
}
|
|
144
|
+
function resolveTemplateSources(projectDir) {
|
|
145
|
+
const templatesBase = join(projectDir, TEMPLATES_DIR);
|
|
146
|
+
const templateSkills = join(templatesBase, TEMPLATE_SKILLS_SUBDIR);
|
|
147
|
+
const templateAgents = join(templatesBase, TEMPLATE_AGENTS_SUBDIR);
|
|
148
|
+
const templateInstructions = join(templatesBase, TEMPLATE_INSTRUCTIONS_FILE);
|
|
149
|
+
if (existsSync(templatesBase)) {
|
|
150
|
+
return {
|
|
151
|
+
skillsDir: templateSkills,
|
|
152
|
+
agentsDir: templateAgents,
|
|
153
|
+
instructionsFile: templateInstructions,
|
|
154
|
+
isLegacy: false,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
// Fall back to legacy root-level files
|
|
158
|
+
const legacySkills = join(projectDir, LEGACY_SKILLS_DIR);
|
|
159
|
+
if (existsSync(legacySkills)) {
|
|
160
|
+
log.warn(`Legacy layout detected (${LEGACY_SKILLS_DIR}/ at project root). ` +
|
|
161
|
+
`Run "alpha-loop init" to migrate to ${TEMPLATES_DIR}/.`);
|
|
162
|
+
return {
|
|
163
|
+
skillsDir: legacySkills,
|
|
164
|
+
agentsDir: join(projectDir, LEGACY_CLAUDE_AGENTS_DIR),
|
|
165
|
+
instructionsFile: '', // No instructions in legacy layout
|
|
166
|
+
isLegacy: true,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
81
171
|
/**
|
|
82
|
-
* Sync agent assets
|
|
172
|
+
* Sync agent assets from templates to each configured harness's paths.
|
|
83
173
|
*
|
|
84
|
-
*
|
|
174
|
+
* @param harnesses - list of harness names from .alpha-loop.yaml config
|
|
175
|
+
* @param options - check-only mode and project directory override
|
|
85
176
|
*/
|
|
86
|
-
export function syncAgentAssets(options = {}) {
|
|
177
|
+
export function syncAgentAssets(harnesses, options = {}) {
|
|
87
178
|
const { check = false, projectDir = process.cwd() } = options;
|
|
88
|
-
const sourceDoc = join(projectDir, SOURCE_DOC);
|
|
89
|
-
const targetDoc = join(projectDir, TARGET_DOC);
|
|
90
|
-
const sourceSkills = join(projectDir, SOURCE_SKILLS);
|
|
91
179
|
const result = { synced: false, docSynced: false, skillsDirs: [] };
|
|
92
|
-
|
|
93
|
-
if (
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
180
|
+
const sources = resolveTemplateSources(projectDir);
|
|
181
|
+
if (!sources) {
|
|
182
|
+
log.warn(`No template sources found. Create ${TEMPLATES_DIR}/ with skills/, agents/, and instructions.md.`);
|
|
183
|
+
return result;
|
|
184
|
+
}
|
|
185
|
+
for (const harness of harnesses) {
|
|
186
|
+
const config = HARNESS_REGISTRY[harness];
|
|
187
|
+
if (!config) {
|
|
188
|
+
log.warn(`Unknown harness "${harness}" — not in HARNESS_REGISTRY, skipping.`);
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
// -- Skills dir --
|
|
192
|
+
if (existsSync(sources.skillsDir)) {
|
|
193
|
+
const targetSkills = join(projectDir, config.skillsDir);
|
|
194
|
+
if (!dirsMatch(sources.skillsDir, targetSkills)) {
|
|
195
|
+
if (check) {
|
|
196
|
+
log.warn(`Drift [${harness}]: ${config.skillsDir} differs from template skills/`);
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
syncDir(sources.skillsDir, targetSkills);
|
|
200
|
+
log.info(`Synced [${harness}] skills/ → ${config.skillsDir}`);
|
|
201
|
+
}
|
|
202
|
+
if (!result.skillsDirs.includes(config.skillsDir)) {
|
|
203
|
+
result.skillsDirs.push(config.skillsDir);
|
|
204
|
+
}
|
|
205
|
+
result.synced = true;
|
|
101
206
|
}
|
|
102
|
-
result.docSynced = true;
|
|
103
|
-
result.synced = true;
|
|
104
207
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
const targetPath = join(projectDir, targetDir);
|
|
110
|
-
if (!dirsMatch(sourceSkills, targetPath)) {
|
|
208
|
+
// -- Agents dir --
|
|
209
|
+
if (config.agentsDir && existsSync(sources.agentsDir)) {
|
|
210
|
+
const targetAgents = join(projectDir, config.agentsDir);
|
|
211
|
+
if (!dirsMatch(sources.agentsDir, targetAgents)) {
|
|
111
212
|
if (check) {
|
|
112
|
-
log.warn(`Drift: ${
|
|
213
|
+
log.warn(`Drift [${harness}]: ${config.agentsDir} differs from template agents/`);
|
|
113
214
|
}
|
|
114
215
|
else {
|
|
115
|
-
syncDir(
|
|
116
|
-
log.info(`Synced ${
|
|
216
|
+
syncDir(sources.agentsDir, targetAgents);
|
|
217
|
+
log.info(`Synced [${harness}] agents/ → ${config.agentsDir}`);
|
|
117
218
|
}
|
|
118
|
-
result.skillsDirs.push(targetDir);
|
|
119
219
|
result.synced = true;
|
|
120
220
|
}
|
|
121
221
|
}
|
|
222
|
+
// -- Instructions file --
|
|
223
|
+
if (config.instructionsFile && sources.instructionsFile && existsSync(sources.instructionsFile)) {
|
|
224
|
+
const targetFile = join(projectDir, config.instructionsFile);
|
|
225
|
+
if (!filesMatch(sources.instructionsFile, targetFile)) {
|
|
226
|
+
// Safety: only overwrite if the target doesn't exist or contains the managed marker
|
|
227
|
+
const targetExists = existsSync(targetFile);
|
|
228
|
+
const targetManaged = targetExists &&
|
|
229
|
+
readFileSync(targetFile, 'utf-8').startsWith(MANAGED_MARKER);
|
|
230
|
+
if (!targetExists || targetManaged) {
|
|
231
|
+
if (check) {
|
|
232
|
+
log.warn(`Drift [${harness}]: ${config.instructionsFile} differs from template instructions.md`);
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
mkdirSync(join(targetFile, '..'), { recursive: true });
|
|
236
|
+
copyFileSync(sources.instructionsFile, targetFile);
|
|
237
|
+
log.info(`Synced [${harness}] instructions.md → ${config.instructionsFile}`);
|
|
238
|
+
}
|
|
239
|
+
result.docSynced = true;
|
|
240
|
+
result.synced = true;
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
log.warn(`Skipping ${config.instructionsFile} — file exists without alpha-loop marker. ` +
|
|
244
|
+
`Run "alpha-loop scan" to generate a managed instructions file.`);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
122
248
|
}
|
|
123
249
|
return result;
|
|
124
250
|
}
|
|
251
|
+
/**
|
|
252
|
+
* Migrate legacy root-level assets to the canonical templates directory.
|
|
253
|
+
*
|
|
254
|
+
* Moves:
|
|
255
|
+
* skills/ → .alpha-loop/templates/skills/
|
|
256
|
+
* .claude/agents/ → .alpha-loop/templates/agents/
|
|
257
|
+
*
|
|
258
|
+
* Does NOT delete the originals — the next sync run will recreate them
|
|
259
|
+
* from the new template location.
|
|
260
|
+
*/
|
|
261
|
+
export function migrateToTemplates(projectDir = process.cwd()) {
|
|
262
|
+
const templatesBase = join(projectDir, TEMPLATES_DIR);
|
|
263
|
+
mkdirSync(templatesBase, { recursive: true });
|
|
264
|
+
const moves = [
|
|
265
|
+
{
|
|
266
|
+
src: join(projectDir, LEGACY_SKILLS_DIR),
|
|
267
|
+
dest: join(templatesBase, TEMPLATE_SKILLS_SUBDIR),
|
|
268
|
+
label: `${LEGACY_SKILLS_DIR}/ → ${TEMPLATES_DIR}/skills/`,
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
src: join(projectDir, LEGACY_CLAUDE_AGENTS_DIR),
|
|
272
|
+
dest: join(templatesBase, TEMPLATE_AGENTS_SUBDIR),
|
|
273
|
+
label: `${LEGACY_CLAUDE_AGENTS_DIR}/ → ${TEMPLATES_DIR}/agents/`,
|
|
274
|
+
},
|
|
275
|
+
];
|
|
276
|
+
let moved = false;
|
|
277
|
+
for (const { src, dest, label } of moves) {
|
|
278
|
+
if (!existsSync(src))
|
|
279
|
+
continue;
|
|
280
|
+
if (existsSync(dest)) {
|
|
281
|
+
log.warn(`Migration skipped (destination already exists): ${label}`);
|
|
282
|
+
continue;
|
|
283
|
+
}
|
|
284
|
+
mkdirSync(join(dest, '..'), { recursive: true });
|
|
285
|
+
renameSync(src, dest);
|
|
286
|
+
log.info(`Migrated: ${label}`);
|
|
287
|
+
moved = true;
|
|
288
|
+
}
|
|
289
|
+
if (!moved) {
|
|
290
|
+
log.info('Nothing to migrate — no legacy assets found or all destinations already exist.');
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
log.info(`Migration complete. Re-run "alpha-loop sync" to propagate from ${TEMPLATES_DIR}/ to all configured harnesses.`);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
125
296
|
/**
|
|
126
297
|
* CLI command handler for `alpha-loop sync`.
|
|
298
|
+
*
|
|
299
|
+
* Reads harness list from the caller-supplied options (populated from
|
|
300
|
+
* .alpha-loop.yaml) and delegates to syncAgentAssets.
|
|
127
301
|
*/
|
|
128
302
|
export function syncCommand(options = {}) {
|
|
129
303
|
const projectDir = process.cwd();
|
|
130
|
-
const
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
log.
|
|
134
|
-
|
|
304
|
+
const harnesses = options.harnesses ?? [];
|
|
305
|
+
if (harnesses.length === 0) {
|
|
306
|
+
log.warn('No harnesses configured. Add a "harnesses" list to .alpha-loop.yaml.');
|
|
307
|
+
log.info('Example: harnesses:\n - claude-code\n - codex');
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
const sources = resolveTemplateSources(projectDir);
|
|
311
|
+
if (!sources) {
|
|
312
|
+
log.warn(`No source assets found. Create ${TEMPLATES_DIR}/ with skills/ and agents/ subdirectories.`);
|
|
135
313
|
return;
|
|
136
314
|
}
|
|
137
|
-
const result = syncAgentAssets({ check: options.check, projectDir });
|
|
315
|
+
const result = syncAgentAssets(harnesses, { check: options.check, projectDir });
|
|
138
316
|
if (!result.synced) {
|
|
139
317
|
log.success('Agent assets are in sync.');
|
|
140
318
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/agent.d.ts
CHANGED
|
@@ -10,6 +10,10 @@ export type AgentOptions = {
|
|
|
10
10
|
cwd: string;
|
|
11
11
|
logFile?: string;
|
|
12
12
|
verbose?: boolean;
|
|
13
|
+
/** Timeout in milliseconds. Defaults to 30 minutes. */
|
|
14
|
+
timeout?: number;
|
|
15
|
+
/** Max conversation turns for the agent. Only supported by claude. */
|
|
16
|
+
maxTurns?: number;
|
|
13
17
|
};
|
|
14
18
|
/**
|
|
15
19
|
* Build CLI command and args for a given agent type.
|