compounding-loop 0.4.0 → 0.6.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 +152 -128
- package/dist/cli/draft.js +69 -0
- package/dist/cli/draft.js.map +1 -0
- package/dist/cli/eval.js +186 -0
- package/dist/cli/eval.js.map +1 -0
- package/dist/cli/hook.js +92 -0
- package/dist/cli/hook.js.map +1 -0
- package/dist/cli/index.js +336 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.js +41 -4
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/lanesInit.js +8 -2
- package/dist/cli/lanesInit.js.map +1 -1
- package/dist/cli/pace.js +41 -0
- package/dist/cli/pace.js.map +1 -0
- package/dist/cli/pause.js +3 -3
- package/dist/cli/pause.js.map +1 -1
- package/dist/cli/recipe.js +89 -0
- package/dist/cli/recipe.js.map +1 -0
- package/dist/cli/recipeDraft.js +64 -0
- package/dist/cli/recipeDraft.js.map +1 -0
- package/dist/cli/runs.js +49 -11
- package/dist/cli/runs.js.map +1 -1
- package/dist/cli/schedule.js +177 -0
- package/dist/cli/schedule.js.map +1 -0
- package/dist/core/brief.js +35 -12
- package/dist/core/brief.js.map +1 -1
- package/dist/core/draftBrief.js +68 -0
- package/dist/core/draftBrief.js.map +1 -0
- package/dist/core/eval.js +123 -0
- package/dist/core/eval.js.map +1 -0
- package/dist/core/hooksInit.js +54 -0
- package/dist/core/hooksInit.js.map +1 -0
- package/dist/core/laneRound.js +28 -7
- package/dist/core/laneRound.js.map +1 -1
- package/dist/core/lanes.js +3 -0
- package/dist/core/lanes.js.map +1 -1
- package/dist/core/lanesInit.js +19 -0
- package/dist/core/lanesInit.js.map +1 -1
- package/dist/core/parse/index.js +8 -0
- package/dist/core/parse/index.js.map +1 -1
- package/dist/core/parse/outcomes.js +51 -0
- package/dist/core/parse/outcomes.js.map +1 -0
- package/dist/core/parse/policy.js +56 -0
- package/dist/core/parse/policy.js.map +1 -0
- package/dist/core/parse/runs.js +1 -0
- package/dist/core/parse/runs.js.map +1 -1
- package/dist/core/parse/schedule.js +101 -0
- package/dist/core/parse/schedule.js.map +1 -0
- package/dist/core/parse/steer.js +68 -0
- package/dist/core/parse/steer.js.map +1 -0
- package/dist/core/recipeDraft.js +37 -0
- package/dist/core/recipeDraft.js.map +1 -0
- package/dist/core/recipes.js +185 -0
- package/dist/core/recipes.js.map +1 -0
- package/dist/core/repo.js +16 -1
- package/dist/core/repo.js.map +1 -1
- package/dist/core/triggers.js +137 -0
- package/dist/core/triggers.js.map +1 -0
- package/dist/server/actionBody.js +54 -0
- package/dist/server/actionBody.js.map +1 -0
- package/dist/server/checkLabels.js +7 -2
- package/dist/server/checkLabels.js.map +1 -1
- package/dist/server/claude.js +18 -0
- package/dist/server/claude.js.map +1 -0
- package/dist/server/controls.js +28 -1
- package/dist/server/controls.js.map +1 -1
- package/dist/server/data.js +8 -3
- package/dist/server/data.js.map +1 -1
- package/dist/server/draftInputs.js +33 -0
- package/dist/server/draftInputs.js.map +1 -0
- package/dist/server/health.js +3 -3
- package/dist/server/health.js.map +1 -1
- package/dist/server/index.js +55 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/laneChecks.js +1 -1
- package/dist/server/laneChecks.js.map +1 -1
- package/dist/server/laneSchedule.js +15 -0
- package/dist/server/laneSchedule.js.map +1 -0
- package/dist/server/live/build.js +25 -10
- package/dist/server/live/build.js.map +1 -1
- package/dist/server/live/index.js +4 -2
- package/dist/server/live/index.js.map +1 -1
- package/dist/server/live/urls.js +3 -1
- package/dist/server/live/urls.js.map +1 -1
- package/dist/server/loops.js +145 -20
- package/dist/server/loops.js.map +1 -1
- package/dist/server/memory.js +115 -0
- package/dist/server/memory.js.map +1 -0
- package/dist/server/memory.json +398 -0
- package/dist/server/paceNote.js +13 -0
- package/dist/server/paceNote.js.map +1 -0
- package/dist/server/roundState.js +26 -2
- package/dist/server/roundState.js.map +1 -1
- package/dist/server/runs.js +72 -9
- package/dist/server/runs.js.map +1 -1
- package/dist/server/shipped.js +35 -0
- package/dist/server/shipped.js.map +1 -0
- package/dist/server/static-export.js +8 -2
- package/dist/server/static-export.js.map +1 -1
- package/dist/server/this-repo.json +2367 -858
- package/dist/web/assets/index-C5q9d5-n.css +2 -0
- package/dist/web/assets/index-DDEAcJFt.js +123 -0
- package/dist/web/index.html +2 -2
- package/method/COMPOUNDING_LOOP.md +33 -6
- package/method/operating-card.md +1 -1
- package/method/retro.md +4 -3
- package/package.json +4 -4
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/commands/loop-init.md +1 -0
- package/plugin/commands/retro.md +3 -2
- package/plugin/hooks/hooks.json +62 -0
- package/runners/github-actions/lanes.yml +2 -2
- package/runners/routine/README.md +4 -0
- package/runners/routine/control-room-prompt.md +4 -14
- package/runners/routine/lane-prompt.md +4 -10
- package/templates/lanes/README.md +5 -1
- package/templates/lanes/claude-section.md +1 -0
- package/templates/lanes/control-run.md +37 -0
- package/templates/lanes/lane-run.md +33 -0
- package/templates/lanes/schedule.json +4 -0
- package/templates/lanes/steer.md +3 -0
- package/templates/recipe.md +39 -0
- package/templates/recipes/cli-command-json.md +47 -0
- package/templates/recipes/static-calculator-site.md +50 -0
- package/templates/static-site/CLAUDE.md +1 -1
- package/dist/web/assets/index-BOPytDNU.js +0 -53
- package/dist/web/assets/index-BSHEI7fa.css +0 -2
package/dist/cli/hook.js
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { appendFile, mkdir, readFile, realpath } from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { entryText, hookOutput, injectPath, matchTriggers, parseTriggerLog, parseTriggers, triggerStats, EVENT_KINDS, TRIGGERS_FILE, TRIGGER_LOG_FILE } from '../core/triggers.js';
|
|
4
|
+
import { matchHere } from './recipe.js';
|
|
5
|
+
const read = (file) => readFile(file, 'utf8').catch(() => undefined);
|
|
6
|
+
const str = (v) => (typeof v === 'string' ? v : undefined);
|
|
7
|
+
/** Repo-relative, forward-slash path of what a tool reads or edits; undefined when it is outside the repo. */
|
|
8
|
+
function relativeFile(dir, file) {
|
|
9
|
+
if (!file)
|
|
10
|
+
return undefined;
|
|
11
|
+
const rel = path.relative(dir, path.resolve(dir, file)).split(path.sep).join('/');
|
|
12
|
+
return rel.startsWith('..') || path.isAbsolute(rel) ? undefined : rel;
|
|
13
|
+
}
|
|
14
|
+
/** The text a trigger injects: literal, or the first 1,200 characters of the knowledge entry it points at (inside the repo only). */
|
|
15
|
+
async function injectedText(dir, inject) {
|
|
16
|
+
const rel = injectPath(inject);
|
|
17
|
+
if (!rel)
|
|
18
|
+
return inject;
|
|
19
|
+
// Real paths on both sides, so a symlink inside the repo cannot point the hook at a file outside it.
|
|
20
|
+
const [root, abs] = await Promise.all([realpath(dir), realpath(path.resolve(dir, rel))].map((p) => p.catch(() => undefined)));
|
|
21
|
+
if (!root || !abs)
|
|
22
|
+
return undefined;
|
|
23
|
+
const inside = path.relative(root, abs);
|
|
24
|
+
if (inside.startsWith('..') || path.isAbsolute(inside))
|
|
25
|
+
return undefined;
|
|
26
|
+
const text = await read(abs);
|
|
27
|
+
return text === undefined ? undefined : entryText(text);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* `loop hook <event>`: stdin is Claude Code's hook JSON; the return value is what to print on stdout ('' for nothing).
|
|
31
|
+
* No network and no model call. Throws only on bugs; the CLI wrapper turns any throw into "print nothing, exit 0".
|
|
32
|
+
*/
|
|
33
|
+
export async function runHook(event, stdin, dir) {
|
|
34
|
+
if (event !== 'SessionStart' && !(event in EVENT_KINDS))
|
|
35
|
+
return '';
|
|
36
|
+
const input = JSON.parse(stdin || '{}');
|
|
37
|
+
const session = str(input.session_id) ?? 'no-session';
|
|
38
|
+
const toolInput = (input.tool_input && typeof input.tool_input === 'object' ? input.tool_input : {});
|
|
39
|
+
const logFile = path.join(dir, ...TRIGGER_LOG_FILE.split('/'));
|
|
40
|
+
const fired = new Set(parseTriggerLog((await read(logFile)) ?? '').filter((r) => r.session === session).map((r) => r.id));
|
|
41
|
+
const texts = [];
|
|
42
|
+
const ids = [];
|
|
43
|
+
if (event === 'SessionStart') {
|
|
44
|
+
const best = (await matchHere(dir, '', 1))[0];
|
|
45
|
+
if (best && !fired.has(best.id)) {
|
|
46
|
+
texts.push(`Recipe for this repo: ${best.id} (${best.reason}). Run \`loop recipe show ${best.id} --context\` for its steps and checks.`);
|
|
47
|
+
ids.push(best.id);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
const { triggers } = parseTriggers((await read(path.join(dir, ...TRIGGERS_FILE.split('/')))) ?? '');
|
|
52
|
+
const tool = str(input.tool_name);
|
|
53
|
+
const matched = matchTriggers(triggers, {
|
|
54
|
+
event,
|
|
55
|
+
sessionId: session,
|
|
56
|
+
// PostToolUseFailure carries the failure text in `error`; some versions put it in the tool response.
|
|
57
|
+
...(event === 'PostToolUseFailure' && { error: [str(input.error), str(input.tool_response)].filter(Boolean).join('\n') }),
|
|
58
|
+
...(event !== 'UserPromptSubmit' && { file: relativeFile(dir, str(toolInput.file_path) ?? str(toolInput.path)) }),
|
|
59
|
+
...(event === 'PreToolUse' && tool === 'Bash' && { command: str(toolInput.command) }),
|
|
60
|
+
...(event === 'UserPromptSubmit' && { prompt: str(input.prompt) }),
|
|
61
|
+
}, fired);
|
|
62
|
+
for (const t of matched) {
|
|
63
|
+
const text = await injectedText(dir, t.inject);
|
|
64
|
+
if (text) {
|
|
65
|
+
texts.push(text);
|
|
66
|
+
ids.push(t.id);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
const out = hookOutput(event, texts);
|
|
71
|
+
if (!out)
|
|
72
|
+
return '';
|
|
73
|
+
await mkdir(path.dirname(logFile), { recursive: true });
|
|
74
|
+
const at = new Date().toISOString();
|
|
75
|
+
await appendFile(logFile, ids.map((id) => `${JSON.stringify({ at, session, id, event })}\n`).join(''));
|
|
76
|
+
return JSON.stringify(out);
|
|
77
|
+
}
|
|
78
|
+
/** `loop triggers stats`: fired counts per id from `.ai/.trigger-log.jsonl`. */
|
|
79
|
+
export async function triggersStats(dir) {
|
|
80
|
+
const { triggers, problems } = parseTriggers((await read(path.join(dir, ...TRIGGERS_FILE.split('/')))) ?? '');
|
|
81
|
+
// SessionStart lines record recipe offers (once per session), not trigger fires.
|
|
82
|
+
const log = parseTriggerLog((await read(path.join(dir, ...TRIGGER_LOG_FILE.split('/')))) ?? '').filter((r) => r.event !== 'SessionStart');
|
|
83
|
+
return { stats: triggerStats(triggers, log), total: log.length, problems };
|
|
84
|
+
}
|
|
85
|
+
export function formatTriggersReport(report) {
|
|
86
|
+
if (report.stats.length === 0)
|
|
87
|
+
return 'No triggers yet. Add entries to .ai/triggers.yaml (or run `loop init --hooks`).';
|
|
88
|
+
const lines = report.stats.map((s) => `${s.id.padEnd(12)} fired ${String(s.fired).padStart(3)} ${s.lastFired ? `last ${s.lastFired}` : 'never'}${s.defined ? '' : ' (not in triggers.yaml)'}`);
|
|
89
|
+
lines.push(`${report.total} fires in total.`, ...report.problems.map((p) => `warning: ${p}`));
|
|
90
|
+
return lines.join('\n');
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=hook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/cli/hook.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -18,6 +18,13 @@ import { formatShipCheck, runShipCheck } from './shipCheck.js';
|
|
|
18
18
|
import { formatRuns, logRun, readRuns } from './runs.js';
|
|
19
19
|
import { runPause, runResume } from './pause.js';
|
|
20
20
|
import { runRound } from './run.js';
|
|
21
|
+
import { runDraft } from './draft.js';
|
|
22
|
+
import { fakeRunner, formatEvalReport, parseArms, readEvalReport, realRunner, runEval } from './eval.js';
|
|
23
|
+
import { formatTriggersReport, runHook, triggersStats } from './hook.js';
|
|
24
|
+
import { runRecipeDraft } from './recipeDraft.js';
|
|
25
|
+
import { addRecipe, checkRecipes, formatMatches, formatRecipeList, listRecipes, matchHere, showRecipe } from './recipe.js';
|
|
26
|
+
import { formatPaceReport, runPaceSet, runPaceShow } from './pace.js';
|
|
27
|
+
import { formatScheduleReport, runScheduleAction, runScheduleShow, runScheduleUpdate, runSteer } from './schedule.js';
|
|
21
28
|
const pkg = JSON.parse(readFileSync(new URL('../../package.json', import.meta.url), 'utf8'));
|
|
22
29
|
// Commands are added by the core lane: init, new, run, status, next-round, answer, dashboard.
|
|
23
30
|
export const program = new Command('loop')
|
|
@@ -29,6 +36,8 @@ program
|
|
|
29
36
|
.argument('[dir]', 'target repo folder', '.')
|
|
30
37
|
.option('--force', 'skip the brief check and overwrite existing kit files')
|
|
31
38
|
.option('--dry-run', 'show what would be written without writing')
|
|
39
|
+
.option('--hooks', 'also add the loop hook commands to .claude/settings.json (for people without the plugin)')
|
|
40
|
+
.option('--recipes', 'also install the seed recipes that match this repo (they are listed either way)')
|
|
32
41
|
.option('--lanes <names>', 'also set up parallel lanes, e.g. --lanes core,web,docs (writes .ai/lanes.json and per-lane files)')
|
|
33
42
|
.action(async (dir, options) => {
|
|
34
43
|
const laneList = options.lanes === undefined ? undefined : parseLaneList(options.lanes);
|
|
@@ -37,7 +46,7 @@ program
|
|
|
37
46
|
process.exitCode = 1;
|
|
38
47
|
return;
|
|
39
48
|
}
|
|
40
|
-
const result = await runInit(path.resolve(dir), { force: Boolean(options.force), dryRun: Boolean(options.dryRun), ...(laneList && { skipTask: true }) });
|
|
49
|
+
const result = await runInit(path.resolve(dir), { force: Boolean(options.force), dryRun: Boolean(options.dryRun), hooks: Boolean(options.hooks), recipes: Boolean(options.recipes), ...(laneList && { skipTask: true }) });
|
|
41
50
|
if (result.refused) {
|
|
42
51
|
console.error(result.refused);
|
|
43
52
|
process.exitCode = 1;
|
|
@@ -45,6 +54,10 @@ program
|
|
|
45
54
|
}
|
|
46
55
|
for (const action of result.actions)
|
|
47
56
|
console.log(`${action.kind.padEnd(9)} ${action.dest}${action.reason ? ` (${action.reason})` : ''}`);
|
|
57
|
+
if (result.hooksAdded?.length)
|
|
58
|
+
console.log('note the hooks run `loop hook`, so `loop` must be on PATH for Claude Code: npm install -g compounding-loop (npx alone is not enough).');
|
|
59
|
+
for (const offer of result.recipeOffers)
|
|
60
|
+
console.log(`recipe ${offer.id} fits this repo (${offer.reason}). Install it with: loop init --recipes`);
|
|
48
61
|
if (result.missing.includes('method/operating-card.md'))
|
|
49
62
|
console.error('warning: the Operating Card was NOT installed, so CLAUDE.md is unchanged.');
|
|
50
63
|
for (const rel of result.missing)
|
|
@@ -130,8 +143,20 @@ program
|
|
|
130
143
|
.option('--brief <file>', 'laned repos: the next round\'s brief (scored first)')
|
|
131
144
|
.option('--no-commit', 'with --brief: write the changes but do not commit')
|
|
132
145
|
.option('--json', 'with --brief: print the plan as JSON (shape: RoundPlan in src/core/laneRound.ts)')
|
|
146
|
+
.option('--draft', 'ask Claude (claude -p) to draft the next brief from the DONE.md lists, open audit findings and steering; writes it and prints its score')
|
|
147
|
+
.option('--out <file>', 'with --draft: where the draft goes (default .ai/next-round.draft.md)')
|
|
148
|
+
.option('--print-prompt', 'with --draft: print the prompt only, to paste into Claude Code yourself')
|
|
149
|
+
.option('--model <model>', 'with --draft: the Claude model to use')
|
|
133
150
|
.action(async (dir, options) => {
|
|
134
151
|
try {
|
|
152
|
+
if (options.draft || options.printPrompt) {
|
|
153
|
+
const r = await runDraft(path.resolve(dir), { ...(options.printPrompt && { printPrompt: true }), ...(options.out && { out: options.out }), ...(options.model && { model: options.model }) });
|
|
154
|
+
if (!r.draft)
|
|
155
|
+
console.log(r.prompt);
|
|
156
|
+
else
|
|
157
|
+
console.log(`Draft written to ${path.relative(process.cwd(), r.outFile) || r.outFile}. Brief score ${r.lint?.score}/100${r.lint?.gaps.length ? `; missing: ${r.lint.gaps.map((g) => g.message).join(' ')}` : ''}\nReview it, then: loop next-round --brief ${options.out ?? '.ai/next-round.draft.md'}`);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
135
160
|
if (options.brief) {
|
|
136
161
|
const result = await runLaneRound(path.resolve(dir), { briefFile: options.brief, dryRun: Boolean(options.dryRun), commit: options.commit });
|
|
137
162
|
console.log(options.json ? JSON.stringify(result, null, 2) : formatLaneRound(result, Boolean(options.dryRun)));
|
|
@@ -328,6 +353,109 @@ program
|
|
|
328
353
|
fail(error);
|
|
329
354
|
}
|
|
330
355
|
});
|
|
356
|
+
const scheduleNote = (r) => (r.pushed === false ? `\nCommitted, but the push failed: ${r.pushError}` : '');
|
|
357
|
+
const scheduleCmd = program.command('schedule').description('Which lanes are due (.ai/schedule.json): show, pause, resume, snooze, wake, update');
|
|
358
|
+
const scheduleOpts = (c) => c.option('--no-commit', 'write the file but do not commit').option('--no-push', 'commit but do not push').option('--dir <dir>', 'repo folder', '.');
|
|
359
|
+
scheduleCmd
|
|
360
|
+
.command('show')
|
|
361
|
+
.description('Each lane: due, paused, sleeping or snoozed, with idle runs')
|
|
362
|
+
.option('--json', 'print the report as JSON (shape: ScheduleReport in src/cli/schedule.ts)')
|
|
363
|
+
.option('--dir <dir>', 'repo folder', '.')
|
|
364
|
+
.action(async (options) => {
|
|
365
|
+
try {
|
|
366
|
+
const report = await runScheduleShow(path.resolve(options.dir));
|
|
367
|
+
console.log(options.json ? JSON.stringify(report, null, 2) : formatScheduleReport(report));
|
|
368
|
+
}
|
|
369
|
+
catch (error) {
|
|
370
|
+
fail(error);
|
|
371
|
+
}
|
|
372
|
+
});
|
|
373
|
+
const simple = (name, args, description, build, withReason) => {
|
|
374
|
+
const c = scheduleOpts(scheduleCmd.command(`${name} ${args}`).description(description));
|
|
375
|
+
if (withReason)
|
|
376
|
+
c.option('--reason <text>', 'why');
|
|
377
|
+
c.action(async (...argv) => {
|
|
378
|
+
const opts = argv[argv.length - 2];
|
|
379
|
+
const positional = argv.slice(0, -2);
|
|
380
|
+
try {
|
|
381
|
+
const r = await runScheduleAction(path.resolve(opts.dir), build(positional, opts), { commit: opts.commit, push: opts.push });
|
|
382
|
+
console.log(r.changed.length ? `${name}: ${r.changed.join(', ')}${scheduleNote(r)}` : `${name}: nothing to change.`);
|
|
383
|
+
if (r.pushed === false)
|
|
384
|
+
process.exitCode = 1;
|
|
385
|
+
}
|
|
386
|
+
catch (error) {
|
|
387
|
+
fail(error);
|
|
388
|
+
}
|
|
389
|
+
});
|
|
390
|
+
};
|
|
391
|
+
simple('pause', '<lane>', 'Hold a lane back until it is resumed', ([lane], o) => ({ action: 'pause', lane: lane, ...(o.reason && { reason: o.reason }) }), true);
|
|
392
|
+
simple('resume', '<lane>', 'Undo `schedule pause`', ([lane]) => ({ action: 'resume', lane: lane }), false);
|
|
393
|
+
simple('snooze', '<lane> <until>', 'Hold a lane back until a time (ISO, a date, or 3h / 2d)', ([lane, until], o) => ({ action: 'snooze', lane: lane, until: until, ...(o.reason && { reason: o.reason }) }), true);
|
|
394
|
+
simple('wake', '<lane|all>', 'Make a sleeping or snoozed lane due now', ([lane]) => ({ action: 'wake', lane: lane }), false);
|
|
395
|
+
scheduleOpts(scheduleCmd.command('update').description('Idle backoff from the run logs, and wake lanes that have steering, a message or a new round'))
|
|
396
|
+
.option('--new-round', 'a new round started: wake every lane')
|
|
397
|
+
.option('--lane <name>', 'change only this lane\'s entry and commit as that lane (the end-of-run backoff)')
|
|
398
|
+
.action(async (options) => {
|
|
399
|
+
try {
|
|
400
|
+
const r = await runScheduleUpdate(path.resolve(options.dir), { commit: options.commit, push: options.push, ...(options.newRound && { newRound: true }), ...(options.lane && { lane: options.lane }) });
|
|
401
|
+
console.log(r.changed.length ? `update: ${r.changed.join(', ')}${scheduleNote(r)}` : 'update: nothing to change.');
|
|
402
|
+
if (r.pushed === false)
|
|
403
|
+
process.exitCode = 1;
|
|
404
|
+
}
|
|
405
|
+
catch (error) {
|
|
406
|
+
fail(error);
|
|
407
|
+
}
|
|
408
|
+
});
|
|
409
|
+
const paceCmd = program.command('pace').description('How much checking a run does (.ai/policy.json): show, set');
|
|
410
|
+
paceCmd
|
|
411
|
+
.command('show')
|
|
412
|
+
.description('The global pace and any lane overrides, with what each skips')
|
|
413
|
+
.option('--json', 'print the report as JSON (shape: PaceReport in src/cli/pace.ts)')
|
|
414
|
+
.option('--dir <dir>', 'repo folder', '.')
|
|
415
|
+
.action(async (options) => {
|
|
416
|
+
try {
|
|
417
|
+
const report = await runPaceShow(path.resolve(options.dir));
|
|
418
|
+
console.log(options.json ? JSON.stringify(report, null, 2) : formatPaceReport(report));
|
|
419
|
+
}
|
|
420
|
+
catch (error) {
|
|
421
|
+
fail(error);
|
|
422
|
+
}
|
|
423
|
+
});
|
|
424
|
+
scheduleOpts(paceCmd.command('set').description('Set the pace: careful, balanced, fast or sprint (commits with Lane: control)'))
|
|
425
|
+
.argument('<preset>', 'careful | balanced | fast | sprint')
|
|
426
|
+
.option('--lane <name>', 'override only this lane')
|
|
427
|
+
.action(async (preset, options) => {
|
|
428
|
+
try {
|
|
429
|
+
const r = await runPaceSet(path.resolve(options.dir), preset, { commit: options.commit, push: options.push, ...(options.lane && { lane: options.lane }) });
|
|
430
|
+
console.log(r.changed.length ? `pace: ${preset}${options.lane ? ` for ${options.lane}` : ''}${scheduleNote(r)}` : 'pace: nothing to change.');
|
|
431
|
+
if (r.pushed === false)
|
|
432
|
+
process.exitCode = 1;
|
|
433
|
+
}
|
|
434
|
+
catch (error) {
|
|
435
|
+
fail(error);
|
|
436
|
+
}
|
|
437
|
+
});
|
|
438
|
+
program
|
|
439
|
+
.command('steer')
|
|
440
|
+
.description('Leave a note for a lane in .ai/lanes/<lane>/steer.md, wake the lane and commit (Lane: control)')
|
|
441
|
+
.argument('<lane>', 'lane name')
|
|
442
|
+
.argument('<text>', 'what the lane should do')
|
|
443
|
+
.option('--standing', 'applies to every run until removed (default: the next run only)')
|
|
444
|
+
.option('--author <name>', 'your name (default: git config user.name)')
|
|
445
|
+
.option('--no-commit', 'write the file but do not commit')
|
|
446
|
+
.option('--no-push', 'commit but do not push')
|
|
447
|
+
.option('--dir <dir>', 'repo folder', '.')
|
|
448
|
+
.action(async (lane, text, options) => {
|
|
449
|
+
try {
|
|
450
|
+
const r = await runSteer(path.resolve(options.dir), lane, text, { commit: options.commit, push: options.push, ...(options.standing && { standing: true }), ...(options.author && { author: options.author }) });
|
|
451
|
+
console.log(`Steer saved for ${lane}${options.standing ? ' (standing)' : ''}.${scheduleNote(r)}`);
|
|
452
|
+
if (r.pushed === false)
|
|
453
|
+
process.exitCode = 1;
|
|
454
|
+
}
|
|
455
|
+
catch (error) {
|
|
456
|
+
fail(error);
|
|
457
|
+
}
|
|
458
|
+
});
|
|
331
459
|
program
|
|
332
460
|
.command('ship-check')
|
|
333
461
|
.description('Is this repo ready to release? Checks DONE.md, open findings, CHANGELOG, the tag, a clean tree and the latest test result; exit 0 only if ready')
|
|
@@ -366,6 +494,7 @@ runsCommand
|
|
|
366
494
|
.option('--units <list...>', 'units finished this run')
|
|
367
495
|
.option('--passed <n>', 'tests passed on the last npm test')
|
|
368
496
|
.option('--failed <n>', 'tests failed on the last npm test')
|
|
497
|
+
.option('--triggers <n>', 'how many triggers fired during the run (see `loop triggers stats`)')
|
|
369
498
|
.option('--pushed', 'this run pushed to main')
|
|
370
499
|
.option('--no-pushed', 'this run pushed nothing')
|
|
371
500
|
.option('--session <url>', 'session link or id')
|
|
@@ -379,6 +508,7 @@ runsCommand
|
|
|
379
508
|
...(options.units && { units: options.units }),
|
|
380
509
|
...(options.passed !== undefined && { passed: Number(options.passed) }),
|
|
381
510
|
...(options.failed !== undefined && { failed: Number(options.failed) }),
|
|
511
|
+
...(options.triggers !== undefined && { triggers: Number(options.triggers) }),
|
|
382
512
|
pushed: options.pushed ?? false,
|
|
383
513
|
...(options.session && { session: options.session }),
|
|
384
514
|
...(options.note && { note: options.note }),
|
|
@@ -389,5 +519,210 @@ runsCommand
|
|
|
389
519
|
fail(error);
|
|
390
520
|
}
|
|
391
521
|
});
|
|
522
|
+
const recipeCmd = program.command('recipe').description('Recipes: small exact contexts for work you repeat (.ai/recipes/, ~/.ai/recipes/)');
|
|
523
|
+
recipeCmd
|
|
524
|
+
.command('list')
|
|
525
|
+
.description('Every recipe in the project and user stores')
|
|
526
|
+
.option('--json', 'print as JSON (RecipeSummary[])')
|
|
527
|
+
.option('--dir <dir>', 'repo folder', '.')
|
|
528
|
+
.action(async (options) => {
|
|
529
|
+
try {
|
|
530
|
+
const recipes = await listRecipes(path.resolve(options.dir));
|
|
531
|
+
console.log(options.json ? JSON.stringify(recipes, null, 2) : formatRecipeList(recipes));
|
|
532
|
+
}
|
|
533
|
+
catch (error) {
|
|
534
|
+
fail(error);
|
|
535
|
+
}
|
|
536
|
+
});
|
|
537
|
+
recipeCmd
|
|
538
|
+
.command('show')
|
|
539
|
+
.description('Print a recipe; --context prints exactly what a model would receive (no front matter)')
|
|
540
|
+
.argument('<id>', 'recipe id, e.g. R-static-calculator-site')
|
|
541
|
+
.option('--context', 'drop the front matter')
|
|
542
|
+
.option('--json', 'print {id, context|text} as JSON')
|
|
543
|
+
.option('--dir <dir>', 'repo folder', '.')
|
|
544
|
+
.action(async (id, options) => {
|
|
545
|
+
try {
|
|
546
|
+
const text = await showRecipe(path.resolve(options.dir), id, options.context === true);
|
|
547
|
+
console.log(options.json ? JSON.stringify({ id, [options.context ? 'context' : 'text']: text }, null, 2) : text.trimEnd());
|
|
548
|
+
}
|
|
549
|
+
catch (error) {
|
|
550
|
+
fail(error);
|
|
551
|
+
}
|
|
552
|
+
});
|
|
553
|
+
recipeCmd
|
|
554
|
+
.command('match')
|
|
555
|
+
.description('Rank recipes for this repo (stack from package.json) and an optional task text; prints the top 3')
|
|
556
|
+
.argument('[task...]', 'what you are about to do')
|
|
557
|
+
.option('--json', 'print as JSON')
|
|
558
|
+
.option('--dir <dir>', 'repo folder', '.')
|
|
559
|
+
.action(async (task, options) => {
|
|
560
|
+
try {
|
|
561
|
+
const matches = await matchHere(path.resolve(options.dir), task.join(' '));
|
|
562
|
+
console.log(options.json ? JSON.stringify(matches, null, 2) : formatMatches(matches));
|
|
563
|
+
}
|
|
564
|
+
catch (error) {
|
|
565
|
+
fail(error);
|
|
566
|
+
}
|
|
567
|
+
});
|
|
568
|
+
recipeCmd
|
|
569
|
+
.command('check')
|
|
570
|
+
.description('Lint a recipe file (or every project recipe): fields, sections, 6 KB cap, a proof per step, no paths, emails or tokens')
|
|
571
|
+
.argument('[file]', 'recipe file')
|
|
572
|
+
.option('--json', 'print as JSON')
|
|
573
|
+
.option('--dir <dir>', 'repo folder', '.')
|
|
574
|
+
.action(async (file, options) => {
|
|
575
|
+
try {
|
|
576
|
+
const results = await checkRecipes(path.resolve(options.dir), file);
|
|
577
|
+
if (options.json)
|
|
578
|
+
console.log(JSON.stringify(results, null, 2));
|
|
579
|
+
else if (results.length === 0)
|
|
580
|
+
console.log('No recipes to check.');
|
|
581
|
+
else
|
|
582
|
+
for (const r of results)
|
|
583
|
+
console.log(r.problems.length ? `${r.file}\n- ${r.problems.join('\n- ')}` : `${r.file}: ok`);
|
|
584
|
+
if (results.some((r) => r.problems.length > 0))
|
|
585
|
+
process.exitCode = 1;
|
|
586
|
+
}
|
|
587
|
+
catch (error) {
|
|
588
|
+
fail(error);
|
|
589
|
+
}
|
|
590
|
+
});
|
|
591
|
+
recipeCmd
|
|
592
|
+
.command('draft')
|
|
593
|
+
.description('Ask Claude (claude -p) to draft a recipe from finished work; writes .ai/recipes/<id>.draft.md and scores it. A human renames it to accept it')
|
|
594
|
+
.option('--from <lane|dir>', 'a lane name, or a folder inside the repo with its own .ai/ (default: this repo)')
|
|
595
|
+
.option('--id <id>', 'the recipe id (R-<slug>); an existing id gets a delta, not a rewrite')
|
|
596
|
+
.option('--print-prompt', 'print the prompt only; makes no Claude call')
|
|
597
|
+
.option('--model <model>', 'the Claude model to use')
|
|
598
|
+
.option('--json', 'print as JSON')
|
|
599
|
+
.option('--dir <dir>', 'repo folder', '.')
|
|
600
|
+
.action(async (options) => {
|
|
601
|
+
try {
|
|
602
|
+
const r = await runRecipeDraft(path.resolve(options.dir), { ...(options.from && { from: options.from }), ...(options.id && { id: options.id }), ...(options.printPrompt && { printPrompt: true }), ...(options.model && { model: options.model }) });
|
|
603
|
+
if (options.json)
|
|
604
|
+
console.log(JSON.stringify(r, null, 2));
|
|
605
|
+
else if (!r.draft)
|
|
606
|
+
console.log(r.prompt);
|
|
607
|
+
else if (r.delta)
|
|
608
|
+
console.log(`${r.draft}\n\nThis id already exists, so this is a delta: apply the items by hand, nothing was written.`);
|
|
609
|
+
else if (!r.outFile)
|
|
610
|
+
console.log(`${r.draft}\n\nNot saved: ${(r.problems ?? []).join(' ')}`);
|
|
611
|
+
else
|
|
612
|
+
console.log(`Draft written to ${r.outFile}.${r.problems?.length ? ` Fix before accepting:\n- ${r.problems.join('\n- ')}` : ' It passes `loop recipe check`.'}\nAccept it by renaming it to ${r.outFile.replace('.draft', '')}, or \`loop recipe add ${r.outFile}\`.`);
|
|
613
|
+
}
|
|
614
|
+
catch (error) {
|
|
615
|
+
fail(error);
|
|
616
|
+
}
|
|
617
|
+
});
|
|
618
|
+
recipeCmd
|
|
619
|
+
.command('add')
|
|
620
|
+
.description('Copy a recipe that passes `check` into .ai/recipes/ (or ~/.ai/recipes/ with --global)')
|
|
621
|
+
.argument('<file>', 'recipe file')
|
|
622
|
+
.option('--global', 'add to the user store')
|
|
623
|
+
.option('--json', 'print as JSON')
|
|
624
|
+
.option('--dir <dir>', 'repo folder', '.')
|
|
625
|
+
.action(async (file, options) => {
|
|
626
|
+
try {
|
|
627
|
+
const added = await addRecipe(path.resolve(options.dir), file, options.global === true);
|
|
628
|
+
console.log(options.json ? JSON.stringify(added, null, 2) : `Added ${added.id} to ${added.path}`);
|
|
629
|
+
}
|
|
630
|
+
catch (error) {
|
|
631
|
+
fail(error);
|
|
632
|
+
}
|
|
633
|
+
});
|
|
634
|
+
program
|
|
635
|
+
.command('hook')
|
|
636
|
+
.description('Claude Code hook entry point: reads the hook JSON on stdin and prints context from .ai/triggers.yaml (or the best recipe on SessionStart). Always exits 0')
|
|
637
|
+
.argument('<event>', 'SessionStart | UserPromptSubmit | PreToolUse | PostToolUse | PostToolUseFailure')
|
|
638
|
+
.action(async (event) => {
|
|
639
|
+
try {
|
|
640
|
+
const chunks = [];
|
|
641
|
+
for await (const chunk of process.stdin)
|
|
642
|
+
chunks.push(chunk);
|
|
643
|
+
const out = await runHook(event, Buffer.concat(chunks).toString('utf8'), path.resolve(process.env.CLAUDE_PROJECT_DIR || '.'));
|
|
644
|
+
if (out)
|
|
645
|
+
process.stdout.write(`${out}\n`);
|
|
646
|
+
}
|
|
647
|
+
catch {
|
|
648
|
+
// A broken hook must never break a run: print nothing.
|
|
649
|
+
}
|
|
650
|
+
process.exitCode = 0;
|
|
651
|
+
});
|
|
652
|
+
const triggersCmd = program.command('triggers').description('Triggers from .ai/triggers.yaml');
|
|
653
|
+
triggersCmd
|
|
654
|
+
.command('stats')
|
|
655
|
+
.description('How often each trigger fired (from .ai/.trigger-log.jsonl)')
|
|
656
|
+
.option('--json', 'print as JSON')
|
|
657
|
+
.option('--dir <dir>', 'repo folder', '.')
|
|
658
|
+
.action(async (options) => {
|
|
659
|
+
try {
|
|
660
|
+
const report = await triggersStats(path.resolve(options.dir));
|
|
661
|
+
console.log(options.json ? JSON.stringify(report, null, 2) : formatTriggersReport(report));
|
|
662
|
+
}
|
|
663
|
+
catch (error) {
|
|
664
|
+
fail(error);
|
|
665
|
+
}
|
|
666
|
+
});
|
|
667
|
+
const evalCmd = program.command('eval').description('The proof: rebuild known tasks cold and with a recipe, and report pass rate, tokens and time');
|
|
668
|
+
evalCmd
|
|
669
|
+
.command('run')
|
|
670
|
+
.description('Run eval tasks in temp copies (never your repo). --runner claude spends your Claude usage; --runner fake spends nothing and does not save results')
|
|
671
|
+
.option('--task <id...>', 'task ids in evals/ (default: all)')
|
|
672
|
+
.option('--arm <arm>', 'cold | recipe | recipe+triggers | both (cold + recipe) | all', 'both')
|
|
673
|
+
.option('--model <name>', 'model passed to claude --model', 'default')
|
|
674
|
+
.option('--runs <n>', 'runs per task and arm', '1')
|
|
675
|
+
.option('--runner <runner>', 'claude | fake', 'claude')
|
|
676
|
+
.option('--fake-mode <mode>', 'with --runner fake: solve (apply solution/) or nothing', 'solve')
|
|
677
|
+
.option('--env-file <path>', 'KEY=value lines for the claude process (for local models); values are never printed')
|
|
678
|
+
.option('--json', 'print the results as JSON')
|
|
679
|
+
.option('--dir <dir>', 'repo folder', '.')
|
|
680
|
+
.action(async (options) => {
|
|
681
|
+
try {
|
|
682
|
+
if (options.runner !== 'claude' && options.runner !== 'fake')
|
|
683
|
+
throw new Error('--runner must be claude or fake.');
|
|
684
|
+
if (options.fakeMode !== 'solve' && options.fakeMode !== 'nothing')
|
|
685
|
+
throw new Error('--fake-mode must be solve or nothing.');
|
|
686
|
+
const dir = path.resolve(options.dir);
|
|
687
|
+
const fake = options.runner === 'fake';
|
|
688
|
+
const report = await runEval({
|
|
689
|
+
evalsDir: path.join(dir, 'evals'),
|
|
690
|
+
...(options.task && { tasks: options.task }),
|
|
691
|
+
arms: parseArms(options.arm),
|
|
692
|
+
model: fake ? 'fake' : options.model,
|
|
693
|
+
runs: Number(options.runs),
|
|
694
|
+
runner: fake ? fakeRunner(options.fakeMode) : realRunner,
|
|
695
|
+
...(options.envFile && { envFile: path.resolve(options.envFile) }),
|
|
696
|
+
log: (line) => console.error(line),
|
|
697
|
+
...(!fake && { save: { dir, date: new Date().toISOString().slice(0, 10) } }),
|
|
698
|
+
});
|
|
699
|
+
if (options.json)
|
|
700
|
+
console.log(JSON.stringify(report, null, 2));
|
|
701
|
+
else {
|
|
702
|
+
for (const r of report.results)
|
|
703
|
+
console.log(`${r.pass ? 'PASS' : 'FAIL'} ${r.task} ${r.arm} ${r.model} ${r.durationMs}ms ${r.turns} turns`);
|
|
704
|
+
console.log(report.savedTo ? `Saved to ${report.savedTo}. See: loop eval report` : fake ? 'Fake runner: results are not saved.' : '');
|
|
705
|
+
}
|
|
706
|
+
if (report.results.some((r) => !r.pass) && fake)
|
|
707
|
+
process.exitCode = 1;
|
|
708
|
+
}
|
|
709
|
+
catch (error) {
|
|
710
|
+
fail(error);
|
|
711
|
+
}
|
|
712
|
+
});
|
|
713
|
+
evalCmd
|
|
714
|
+
.command('report')
|
|
715
|
+
.description('A table per task × arm × model and one headline sentence, from evals/results/*.jsonl (no results, no headline)')
|
|
716
|
+
.option('--json', 'print as JSON (rows, headline)')
|
|
717
|
+
.option('--dir <dir>', 'repo folder', '.')
|
|
718
|
+
.action(async (options) => {
|
|
719
|
+
try {
|
|
720
|
+
const report = await readEvalReport(path.join(path.resolve(options.dir), 'evals'));
|
|
721
|
+
console.log(options.json ? JSON.stringify(report, null, 2) : formatEvalReport(report));
|
|
722
|
+
}
|
|
723
|
+
catch (error) {
|
|
724
|
+
fail(error);
|
|
725
|
+
}
|
|
726
|
+
});
|
|
392
727
|
await program.parseAsync();
|
|
393
728
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|