copperhead 0.3.0 → 0.4.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/NOTICE +5 -0
- package/README.md +55 -9
- package/dist/agent/ledger.js +7 -0
- package/dist/agent/ledger.js.map +1 -1
- package/dist/agent/loop.js +275 -33
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/prompts.js +3 -1
- package/dist/agent/prompts.js.map +1 -1
- package/dist/agent/providers/anthropic.js +28 -13
- package/dist/agent/providers/anthropic.js.map +1 -1
- package/dist/agent/render.js +170 -0
- package/dist/agent/render.js.map +1 -0
- package/dist/agent/runmeta.js +124 -0
- package/dist/agent/runmeta.js.map +1 -0
- package/dist/agent/tools.js +117 -16
- package/dist/agent/tools.js.map +1 -1
- package/dist/agent/transcript.js +23 -0
- package/dist/agent/transcript.js.map +1 -1
- package/dist/cli.js +45 -9
- package/dist/cli.js.map +1 -1
- package/dist/commands/check.js +9 -2
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/create.js +57 -3
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/sync.js +3 -1
- package/dist/commands/sync.js.map +1 -1
- package/dist/config.js +11 -5
- package/dist/config.js.map +1 -1
- package/dist/kicad/cli.js +58 -8
- package/dist/kicad/cli.js.map +1 -1
- package/dist/memory/constraints.js +63 -3
- package/dist/memory/constraints.js.map +1 -1
- package/dist/memory/drift.js +31 -0
- package/dist/memory/drift.js.map +1 -1
- package/dist/memory/synap.js +152 -0
- package/dist/memory/synap.js.map +1 -0
- package/dist/util/git.js +125 -4
- package/dist/util/git.js.map +1 -1
- package/dist/util/preflight.js +24 -0
- package/dist/util/preflight.js.map +1 -0
- package/package.json +10 -6
- package/src/agent/ledger.ts +9 -1
- package/src/agent/loop.ts +300 -34
- package/src/agent/prompts.ts +3 -1
- package/src/agent/providers/anthropic.ts +40 -16
- package/src/agent/render.ts +194 -0
- package/src/agent/runmeta.ts +198 -0
- package/src/agent/tools.ts +119 -15
- package/src/agent/transcript.ts +49 -0
- package/src/cli.ts +49 -10
- package/src/commands/check.ts +9 -3
- package/src/commands/create.ts +61 -4
- package/src/commands/sync.ts +5 -0
- package/src/config.ts +24 -6
- package/src/kicad/cli.ts +60 -9
- package/src/memory/constraints.ts +90 -3
- package/src/memory/drift.ts +32 -0
- package/src/memory/synap.ts +217 -0
- package/src/util/git.ts +134 -4
- package/src/util/preflight.ts +22 -0
package/dist/agent/tools.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import { writeFile, mkdir, appendFile } from 'node:fs/promises';
|
|
2
|
+
import { writeFile, mkdir, appendFile, readFile } from 'node:fs/promises';
|
|
3
3
|
import { toolReadFile, toolWriteFile, toolEditFile, toolSearch } from './filetools.js';
|
|
4
4
|
import { resolveInRepo, isKicadFile } from '../util/paths.js';
|
|
5
|
-
import { runErc, runDrc, exportSvg, exportFab } from '../kicad/cli.js';
|
|
5
|
+
import { runErc, runDrc, exportSvg, exportFab, kicadLoadError, isProbeableKicadFile } from '../kicad/cli.js';
|
|
6
6
|
import { formatViolations } from '../kicad/report.js';
|
|
7
7
|
import { listSymbols, listNets } from '../kicad/sexp.js';
|
|
8
8
|
import { checkDrift } from '../memory/drift.js';
|
|
9
|
-
import { saveConstraint } from '../memory/constraints.js';
|
|
9
|
+
import { saveConstraint, classifyAffectsTarget, affectsTargetExists } from '../memory/constraints.js';
|
|
10
10
|
import { openspecValidate } from '../openspec/cli.js';
|
|
11
11
|
import { existsSync } from 'node:fs';
|
|
12
12
|
const str = (args, key) => {
|
|
@@ -58,7 +58,11 @@ export const TOOLS = [
|
|
|
58
58
|
},
|
|
59
59
|
requiresUnlock: false,
|
|
60
60
|
handler: async (ctx, args) => {
|
|
61
|
-
const
|
|
61
|
+
const pattern = args.pattern;
|
|
62
|
+
if (typeof pattern !== 'string' || pattern.trim() === '') {
|
|
63
|
+
return 'error: search requires a non-empty regex in "pattern" (narrow by file with "glob", e.g. {"pattern": "GPIO", "glob": "**/*.md"}); to list files, use a broad pattern like "." with a glob';
|
|
64
|
+
}
|
|
65
|
+
const matches = await toolSearch(ctx.repoRoot, pattern, args.glob);
|
|
62
66
|
if (!matches.length)
|
|
63
67
|
return 'no matches';
|
|
64
68
|
return matches.map((m) => `${m.file}:${m.line}: ${m.text}`).join('\n');
|
|
@@ -173,7 +177,32 @@ export const TOOLS = [
|
|
|
173
177
|
requiresUnlock: true,
|
|
174
178
|
handler: async (ctx, args) => {
|
|
175
179
|
const rel = str(args, 'path');
|
|
180
|
+
const abs = resolveInRepo(ctx.repoRoot, rel);
|
|
181
|
+
// Text edits can corrupt an s-expression file in ways the editor cannot
|
|
182
|
+
// see; a corrupted file then fails every later ERC/DRC with an opaque
|
|
183
|
+
// error. Validate loadability with KiCad itself and roll the edit back
|
|
184
|
+
// rather than letting the file drift unusable. Only schematics and
|
|
185
|
+
// boards are probeable; .kicad_pro/.kicad_sym/.kicad_mod edits must not
|
|
186
|
+
// be probed (a sch/pcb probe rejects them wholesale).
|
|
187
|
+
const before = isProbeableKicadFile(rel) ? await readFile(abs, 'utf8') : null;
|
|
176
188
|
const res = await toolEditFile(ctx.repoRoot, rel, str(args, 'old_string'), args.new_string, args.replace_all === true);
|
|
189
|
+
if (before !== null) {
|
|
190
|
+
const loadErr = await kicadLoadError(abs);
|
|
191
|
+
if (loadErr) {
|
|
192
|
+
const after = await readFile(abs, 'utf8');
|
|
193
|
+
await writeFile(abs, before, 'utf8');
|
|
194
|
+
if (await kicadLoadError(abs)) {
|
|
195
|
+
// The file was already unloadable before this edit. Reverting
|
|
196
|
+
// would deadlock incremental repair (every partial fix undone
|
|
197
|
+
// unless one edit fixes the whole file), so keep the edit and
|
|
198
|
+
// keep the pressure on with the probe output.
|
|
199
|
+
await writeFile(abs, after, 'utf8');
|
|
200
|
+
markTouched(ctx, rel);
|
|
201
|
+
return `${res}\nnote: ${rel} was already unloadable before this edit, so the edit is KEPT. Keep repairing until it loads. kicad-cli says:\n${loadErr}`;
|
|
202
|
+
}
|
|
203
|
+
return `edit REVERTED: it would make ${rel} unloadable in KiCad. kicad-cli says:\n${loadErr}\nRe-read the surrounding file text and make a smaller, syntactically complete edit.`;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
177
206
|
markTouched(ctx, rel);
|
|
178
207
|
return res;
|
|
179
208
|
},
|
|
@@ -205,7 +234,7 @@ export const TOOLS = [
|
|
|
205
234
|
requiresUnlock: false,
|
|
206
235
|
handler: async (ctx) => {
|
|
207
236
|
if (!ctx.config.schematic)
|
|
208
|
-
return 'no schematic configured';
|
|
237
|
+
return 'no schematic configured; ERC does not apply yet — skip it until a schematic exists and is set in .copperhead/config.json';
|
|
209
238
|
const report = await runErc(path.join(ctx.repoRoot, ctx.config.schematic));
|
|
210
239
|
ctx.lastErc = report;
|
|
211
240
|
if (report.ok)
|
|
@@ -224,7 +253,7 @@ export const TOOLS = [
|
|
|
224
253
|
requiresUnlock: false,
|
|
225
254
|
handler: async (ctx) => {
|
|
226
255
|
if (!ctx.config.board)
|
|
227
|
-
return 'no board configured';
|
|
256
|
+
return 'no board configured; DRC does not apply yet — skip it until a board exists and is set in .copperhead/config.json';
|
|
228
257
|
const report = await runDrc(path.join(ctx.repoRoot, ctx.config.board));
|
|
229
258
|
ctx.lastDrc = report;
|
|
230
259
|
if (report.ok)
|
|
@@ -283,8 +312,16 @@ export const TOOLS = [
|
|
|
283
312
|
},
|
|
284
313
|
requiresUnlock: false,
|
|
285
314
|
handler: async (ctx) => {
|
|
286
|
-
|
|
287
|
-
|
|
315
|
+
// No schematic yet means there is nothing for the docs to drift against,
|
|
316
|
+
// so the obligation is vacuously satisfied and must be cleared. Returning
|
|
317
|
+
// without clearing deadlocks every docs-only stage of the create pipeline
|
|
318
|
+
// (spec-seed, architecture, part-selection all run before the schematic
|
|
319
|
+
// exists): a doc edit opens the drift obligation, this is the only tool
|
|
320
|
+
// that clears it, and finish refuses while any obligation is open.
|
|
321
|
+
if (!ctx.config.schematic) {
|
|
322
|
+
ctx.ledger.clear('drift');
|
|
323
|
+
return 'no schematic configured; drift vacuously clean';
|
|
324
|
+
}
|
|
288
325
|
const mismatches = await checkDrift(ctx.repoRoot, ctx.config.docs, ctx.config.schematic);
|
|
289
326
|
if (!mismatches.length) {
|
|
290
327
|
ctx.ledger.clear('drift');
|
|
@@ -315,6 +352,21 @@ export const TOOLS = [
|
|
|
315
352
|
handler: async (ctx, args) => {
|
|
316
353
|
const key = str(args, 'key');
|
|
317
354
|
const affects = args.affects ?? [];
|
|
355
|
+
// An affects item whose target artifact is not built yet (no schematic or
|
|
356
|
+
// board configured, no BOM.md) has nothing to revisit; opening an
|
|
357
|
+
// obligation now only forces a ceremonial "not yet created" resolution.
|
|
358
|
+
// Defer it in the registry instead — reopenDeferredAffects re-opens it at
|
|
359
|
+
// the start of the first run where the artifact exists, which is when the
|
|
360
|
+
// revisit actually means something.
|
|
361
|
+
const deferred = [];
|
|
362
|
+
const openNow = [];
|
|
363
|
+
for (const item of affects) {
|
|
364
|
+
const target = classifyAffectsTarget(item);
|
|
365
|
+
if (target && !affectsTargetExists(target, ctx.repoRoot, ctx.config))
|
|
366
|
+
deferred.push(item);
|
|
367
|
+
else
|
|
368
|
+
openNow.push(item);
|
|
369
|
+
}
|
|
318
370
|
await saveConstraint(ctx.repoRoot, key, {
|
|
319
371
|
...(args.min !== undefined ? { min: args.min } : {}),
|
|
320
372
|
...(args.max !== undefined ? { max: args.max } : {}),
|
|
@@ -322,32 +374,81 @@ export const TOOLS = [
|
|
|
322
374
|
...(args.value !== undefined ? { value: args.value } : {}),
|
|
323
375
|
source: str(args, 'source'),
|
|
324
376
|
affects,
|
|
377
|
+
...(deferred.length ? { deferred } : {}),
|
|
325
378
|
});
|
|
326
|
-
ctx.ledger.onConstraintChange(key,
|
|
379
|
+
ctx.ledger.onConstraintChange(key, openNow);
|
|
327
380
|
ctx.ledger.clear('constraint-dual-write', key);
|
|
328
|
-
|
|
381
|
+
const parts = [`constraint ${key} recorded`];
|
|
382
|
+
parts.push(`revisit obligations opened for: ${openNow.join(', ') || '(none)'}`);
|
|
383
|
+
if (deferred.length) {
|
|
384
|
+
parts.push(`deferred until the target artifact exists (no resolve_affected needed now): ${deferred.join(', ')}`);
|
|
385
|
+
}
|
|
386
|
+
return parts.join('; ');
|
|
329
387
|
},
|
|
330
388
|
},
|
|
331
389
|
{
|
|
332
390
|
schema: {
|
|
333
391
|
name: 'resolve_affected',
|
|
334
|
-
description: 'Explicitly resolve
|
|
392
|
+
description: 'Explicitly resolve affects-revisit obligations: state whether each affected item changed or why no change is needed. Pass resolutions[] to clear many in one call, or the single constraint_key/item/resolution form.',
|
|
335
393
|
parameters: {
|
|
336
394
|
type: 'object',
|
|
337
395
|
properties: {
|
|
338
396
|
constraint_key: { type: 'string' },
|
|
339
397
|
item: { type: 'string' },
|
|
340
398
|
resolution: { type: 'string', description: '"changed: ..." or "no change needed: <reason>"' },
|
|
399
|
+
resolutions: {
|
|
400
|
+
type: 'array',
|
|
401
|
+
description: 'batch form: resolve many obligations in one call',
|
|
402
|
+
items: {
|
|
403
|
+
type: 'object',
|
|
404
|
+
properties: {
|
|
405
|
+
constraint_key: { type: 'string' },
|
|
406
|
+
item: { type: 'string' },
|
|
407
|
+
resolution: { type: 'string' },
|
|
408
|
+
},
|
|
409
|
+
required: ['constraint_key', 'item', 'resolution'],
|
|
410
|
+
},
|
|
411
|
+
},
|
|
341
412
|
},
|
|
342
|
-
required: [
|
|
413
|
+
required: [],
|
|
343
414
|
},
|
|
344
415
|
},
|
|
345
416
|
requiresUnlock: true,
|
|
346
417
|
handler: async (ctx, args) => {
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
418
|
+
// An item that matches nothing must not read as success: the model would
|
|
419
|
+
// move on believing the obligation closed, and only find out at finish.
|
|
420
|
+
const resolveOne = (constraintKey, item, resolution) => {
|
|
421
|
+
const detail = `${constraintKey} affects ${item}`;
|
|
422
|
+
if (!ctx.ledger.clear('affects-revisit', detail)) {
|
|
423
|
+
const open = ctx.ledger.openOfKind('affects-revisit');
|
|
424
|
+
if (!open.length)
|
|
425
|
+
return `error: no open affects-revisit obligation matches "${detail}"`;
|
|
426
|
+
return [
|
|
427
|
+
`error: no open affects-revisit obligation matches "${detail}".`,
|
|
428
|
+
'Match these exactly:',
|
|
429
|
+
...open.map((o) => ` - ${o.detail}`),
|
|
430
|
+
].join('\n');
|
|
431
|
+
}
|
|
432
|
+
ctx.decisions.push(`[affects] ${detail}: ${resolution}`);
|
|
433
|
+
return `resolved: ${detail}`;
|
|
434
|
+
};
|
|
435
|
+
const batch = args.resolutions;
|
|
436
|
+
if (Array.isArray(batch) && batch.length) {
|
|
437
|
+
// Entries resolve independently: one bad key must not waste the call.
|
|
438
|
+
return batch
|
|
439
|
+
.map((entry, i) => {
|
|
440
|
+
const e = entry;
|
|
441
|
+
if (typeof e?.constraint_key !== 'string' || typeof e?.item !== 'string' || typeof e?.resolution !== 'string') {
|
|
442
|
+
return `error: resolutions[${i}] needs string constraint_key, item, and resolution`;
|
|
443
|
+
}
|
|
444
|
+
return resolveOne(e.constraint_key, e.item, e.resolution);
|
|
445
|
+
})
|
|
446
|
+
.join('\n');
|
|
447
|
+
}
|
|
448
|
+
if (typeof args.constraint_key === 'string' && typeof args.item === 'string' && typeof args.resolution === 'string') {
|
|
449
|
+
return resolveOne(args.constraint_key, args.item, args.resolution);
|
|
450
|
+
}
|
|
451
|
+
return 'error: pass either resolutions: [{constraint_key, item, resolution}, ...] or the single form constraint_key + item + resolution';
|
|
351
452
|
},
|
|
352
453
|
},
|
|
353
454
|
{
|
package/dist/agent/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/agent/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/agent/tools.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/transcript.js
CHANGED
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
import { appendFile, mkdir, writeFile } from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { redactSecrets } from '../util/redact.js';
|
|
4
|
+
import { renderEnvironmentSection } from './runmeta.js';
|
|
5
|
+
import { fmtDuration, fmtTokens } from './render.js';
|
|
6
|
+
function renderRunStats(s) {
|
|
7
|
+
return [
|
|
8
|
+
`## Run stats`,
|
|
9
|
+
``,
|
|
10
|
+
`- **Exit path:** ${s.exitPath}`,
|
|
11
|
+
`- **Turns:** ${s.turnsUsed} / ${s.maxTurns}`,
|
|
12
|
+
`- **Repair cycles:** ${s.repairCyclesUsed} / ${s.maxRepairCycles}`,
|
|
13
|
+
`- **Tokens:** ${fmtTokens(s.tokensIn)} in / ${fmtTokens(s.tokensOut)} out`,
|
|
14
|
+
`- **Duration:** ${fmtDuration(s.durationMs)}`,
|
|
15
|
+
...(s.perTurn.length
|
|
16
|
+
? [`- **Per turn:** ${s.perTurn.map((t) => `${t.turn}: ${t.in}/${t.out}`).join(' · ')}`]
|
|
17
|
+
: []),
|
|
18
|
+
];
|
|
19
|
+
}
|
|
4
20
|
/**
|
|
5
21
|
* Audit trail for a run: JSONL transcript plus a human-readable summary.md,
|
|
6
22
|
* both redacted at write time (AC-4.1, design D12).
|
|
@@ -19,6 +35,10 @@ export class Transcript {
|
|
|
19
35
|
}
|
|
20
36
|
async event(type, data) {
|
|
21
37
|
const line = redactSecrets(JSON.stringify({ ts: new Date().toISOString(), type, data }));
|
|
38
|
+
// The audit trail must survive anything that happens to the working tree
|
|
39
|
+
// mid-run (a rollback path once deleted this directory); losing an event
|
|
40
|
+
// is acceptable, crashing the run to report one is not.
|
|
41
|
+
await mkdir(this.dir, { recursive: true });
|
|
22
42
|
await appendFile(this.jsonlPath, line + '\n', 'utf8');
|
|
23
43
|
}
|
|
24
44
|
async writeSummary(s) {
|
|
@@ -30,6 +50,8 @@ export class Transcript {
|
|
|
30
50
|
`- **OpenSpec change:** ${s.changeId ?? 'n/a'}`,
|
|
31
51
|
`- **Tokens:** ${s.tokensIn} in / ${s.tokensOut} out`,
|
|
32
52
|
``,
|
|
53
|
+
...(s.env ? [...renderEnvironmentSection(s.env), ``] : []),
|
|
54
|
+
...(s.stats ? [...renderRunStats(s.stats), ``] : []),
|
|
33
55
|
`## Plan`,
|
|
34
56
|
``,
|
|
35
57
|
s.plan ?? '(no plan recorded)',
|
|
@@ -53,6 +75,7 @@ export class Transcript {
|
|
|
53
75
|
if (s.detail)
|
|
54
76
|
lines.push('', '## Detail', '', s.detail);
|
|
55
77
|
const out = path.join(this.dir, 'summary.md');
|
|
78
|
+
await mkdir(this.dir, { recursive: true });
|
|
56
79
|
await writeFile(out, redactSecrets(lines.join('\n') + '\n'), 'utf8');
|
|
57
80
|
return out;
|
|
58
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../src/agent/transcript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../src/agent/transcript.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from 'commander';
|
|
3
3
|
import path from 'node:path';
|
|
4
|
+
import { createRequire } from 'node:module';
|
|
4
5
|
import { createInterface } from 'node:readline/promises';
|
|
5
6
|
import { loadConfig, resolveModel } from './config.js';
|
|
6
7
|
import { runInit, InitError } from './memory/scaffold.js';
|
|
@@ -8,6 +9,7 @@ import { runCheck } from './commands/check.js';
|
|
|
8
9
|
import { syncVerify, syncResolve, formatSyncReport } from './commands/sync.js';
|
|
9
10
|
import { runCreate } from './commands/create.js';
|
|
10
11
|
import { runAgentLoop } from './agent/loop.js';
|
|
12
|
+
import { makeRenderer } from './agent/render.js';
|
|
11
13
|
import { kicadCliVersion } from './kicad/cli.js';
|
|
12
14
|
import { loadEnvFile } from './util/env.js';
|
|
13
15
|
// Read .env from the working directory before any command resolves a model or a
|
|
@@ -15,6 +17,11 @@ import { loadEnvFile } from './util/env.js';
|
|
|
15
17
|
// though check never reads a key: it stays LLM-free and network-free either way.
|
|
16
18
|
// A real environment variable always beats the file.
|
|
17
19
|
loadEnvFile(process.cwd());
|
|
20
|
+
// Single source of truth for the version. Both src/cli.ts (via tsx) and
|
|
21
|
+
// dist/cli.js sit one level below the package root, so the path holds either
|
|
22
|
+
// way, and a release can never ship a version string that disagrees with the
|
|
23
|
+
// package it was published as.
|
|
24
|
+
const { version } = createRequire(import.meta.url)('../package.json');
|
|
18
25
|
const program = new Command();
|
|
19
26
|
const repoOf = (opts) => path.resolve(opts.repo ?? process.cwd());
|
|
20
27
|
async function confirmTty(question) {
|
|
@@ -23,12 +30,30 @@ async function confirmTty(question) {
|
|
|
23
30
|
rl.close();
|
|
24
31
|
return /^y(es)?$/i.test(answer.trim());
|
|
25
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Attended runs get a decision point instead of a rollback when the turn
|
|
35
|
+
* budget runs out (issue #15). Non-TTY (CI, pipes) keeps fail-and-restore.
|
|
36
|
+
*/
|
|
37
|
+
function budgetContinuePrompt() {
|
|
38
|
+
if (!process.stdin.isTTY || !process.stdout.isTTY)
|
|
39
|
+
return undefined;
|
|
40
|
+
return async (stats) => {
|
|
41
|
+
// ceil of the ORIGINAL budget (design D1), so repeat extensions offer the
|
|
42
|
+
// same increment instead of escalating with the extended turn count.
|
|
43
|
+
const extra = Math.ceil(stats.maxTurns / 2);
|
|
44
|
+
const k = (n) => `${(n / 1000).toFixed(1)}k`;
|
|
45
|
+
const q = `Turn budget exhausted (${stats.turnsUsed} turns, ${k(stats.tokensIn)} in / ${k(stats.tokensOut)} out, ${stats.filesTouched.length} file(s) touched, ${stats.openObligations} open obligation(s)). Continue with ${extra} more turns?`;
|
|
46
|
+
return (await confirmTty(q)) ? extra : 0;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
26
49
|
program
|
|
27
50
|
.name('copperhead')
|
|
28
51
|
.description('Cursor for circuit boards: an AI agent for real KiCad repositories')
|
|
29
|
-
.version(
|
|
52
|
+
.version(version)
|
|
30
53
|
.option('--repo <path>', 'target repository (default: cwd)')
|
|
31
|
-
.option('--json', 'machine-readable output')
|
|
54
|
+
.option('--json', 'machine-readable output')
|
|
55
|
+
.option('--plain', 'plain log-style output (no interactive status line)');
|
|
56
|
+
const rendererOf = () => makeRenderer({ json: Boolean(program.opts().json), plain: Boolean(program.opts().plain) });
|
|
32
57
|
program
|
|
33
58
|
.command('init')
|
|
34
59
|
.description('scaffold docs/ from an existing schematic; idempotent')
|
|
@@ -95,9 +120,10 @@ program
|
|
|
95
120
|
.action(async (request, opts) => {
|
|
96
121
|
const repo = repoOf(program.opts());
|
|
97
122
|
try {
|
|
98
|
-
await kicadCliVersion();
|
|
123
|
+
const kicadVer = await kicadCliVersion();
|
|
99
124
|
const config = await loadConfig(repo);
|
|
100
|
-
const model = resolveModel(opts.model, config);
|
|
125
|
+
const { model, source } = resolveModel(opts.model, config);
|
|
126
|
+
const continuePrompt = budgetContinuePrompt();
|
|
101
127
|
const res = await runAgentLoop({
|
|
102
128
|
repoRoot: repo,
|
|
103
129
|
request,
|
|
@@ -107,6 +133,9 @@ program
|
|
|
107
133
|
dryRun: opts.dryRun ?? false,
|
|
108
134
|
interactive: opts.interactive ?? false,
|
|
109
135
|
confirm: confirmTty,
|
|
136
|
+
...(continuePrompt ? { onBudgetExhausted: continuePrompt } : {}),
|
|
137
|
+
renderer: rendererOf(),
|
|
138
|
+
meta: { command: 'do', modelSource: source, version, kicadCliVersion: kicadVer },
|
|
110
139
|
});
|
|
111
140
|
if (program.opts().json)
|
|
112
141
|
console.log(JSON.stringify(res, null, 2));
|
|
@@ -125,7 +154,7 @@ program
|
|
|
125
154
|
.action(async (opts) => {
|
|
126
155
|
const repo = repoOf(program.opts());
|
|
127
156
|
try {
|
|
128
|
-
await kicadCliVersion();
|
|
157
|
+
const kicadVer = await kicadCliVersion();
|
|
129
158
|
const report = await syncVerify(repo);
|
|
130
159
|
const json = Boolean(program.opts().json);
|
|
131
160
|
if (json)
|
|
@@ -143,8 +172,11 @@ program
|
|
|
143
172
|
process.exit(0);
|
|
144
173
|
}
|
|
145
174
|
const config = await loadConfig(repo);
|
|
146
|
-
const model = resolveModel(opts.model, config);
|
|
147
|
-
const res = await syncResolve(repo, report, model, json ? () => { } : (s) => console.log(s)
|
|
175
|
+
const { model, source } = resolveModel(opts.model, config);
|
|
176
|
+
const res = await syncResolve(repo, report, model, json ? () => { } : (s) => console.log(s), {
|
|
177
|
+
renderer: rendererOf(),
|
|
178
|
+
meta: { command: 'sync', modelSource: source, version, kicadCliVersion: kicadVer },
|
|
179
|
+
});
|
|
148
180
|
process.exit(res.ok ? 0 : 1);
|
|
149
181
|
}
|
|
150
182
|
catch (err) {
|
|
@@ -161,15 +193,19 @@ program
|
|
|
161
193
|
.action(async (opts) => {
|
|
162
194
|
const repo = repoOf(program.opts());
|
|
163
195
|
try {
|
|
164
|
-
await kicadCliVersion();
|
|
196
|
+
const kicadVer = await kicadCliVersion();
|
|
165
197
|
const config = await loadConfig(repo);
|
|
166
|
-
const model = resolveModel(opts.model, config);
|
|
198
|
+
const { model, source } = resolveModel(opts.model, config);
|
|
199
|
+
const continuePrompt = budgetContinuePrompt();
|
|
167
200
|
const res = await runCreate({
|
|
168
201
|
repoRoot: repo,
|
|
169
202
|
briefPath: opts.brief,
|
|
170
203
|
model,
|
|
171
204
|
interactive: opts.interactive ?? false,
|
|
205
|
+
...(continuePrompt ? { onBudgetExhausted: continuePrompt } : {}),
|
|
172
206
|
log: (s) => console.log(s),
|
|
207
|
+
renderer: rendererOf(),
|
|
208
|
+
meta: { command: 'create', modelSource: source, version, kicadCliVersion: kicadVer },
|
|
173
209
|
});
|
|
174
210
|
process.exit(res.ok ? 0 : 1);
|
|
175
211
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/check.js
CHANGED
|
@@ -3,7 +3,7 @@ import { existsSync } from 'node:fs';
|
|
|
3
3
|
import { loadConfig } from '../config.js';
|
|
4
4
|
import { runErc, runDrc } from '../kicad/cli.js';
|
|
5
5
|
import { formatViolations } from '../kicad/report.js';
|
|
6
|
-
import { checkDrift } from '../memory/drift.js';
|
|
6
|
+
import { checkDrift, emptySchematicWarning } from '../memory/drift.js';
|
|
7
7
|
import { loadConstraints, checkForbiddenPins } from '../memory/constraints.js';
|
|
8
8
|
import { pinNets } from '../kicad/sexp.js';
|
|
9
9
|
import { openspecValidate } from '../openspec/cli.js';
|
|
@@ -26,9 +26,16 @@ export async function runCheck(repoRoot, log) {
|
|
|
26
26
|
log('DRC skipped (no board configured)');
|
|
27
27
|
}
|
|
28
28
|
let drift = [];
|
|
29
|
+
let driftWarning = null;
|
|
29
30
|
if (config.schematic && existsSync(path.join(repoRoot, config.schematic))) {
|
|
30
31
|
drift = await checkDrift(repoRoot, config.docs, config.schematic);
|
|
31
32
|
log(drift.length === 0 ? 'drift ✓' : drift.map((m) => `drift: ${m.doc} claims "${m.claim}" but actual is "${m.actual}"`).join('\n'));
|
|
33
|
+
// Informational, never a failure: the zero-symbol drift exemption is for
|
|
34
|
+
// bootstrap, but an established repo that lost its schematic content
|
|
35
|
+
// deserves a visible note rather than a silent green.
|
|
36
|
+
driftWarning = await emptySchematicWarning(repoRoot, config.docs, config.schematic);
|
|
37
|
+
if (driftWarning)
|
|
38
|
+
log(`drift warning: ${driftWarning}`);
|
|
32
39
|
}
|
|
33
40
|
let openspec = null;
|
|
34
41
|
if (existsSync(path.join(repoRoot, 'openspec', 'config.yaml'))) {
|
|
@@ -56,7 +63,7 @@ export async function runCheck(repoRoot, log) {
|
|
|
56
63
|
ok,
|
|
57
64
|
erc: erc ? { ok: erc.ok, violations: erc.violations.length } : null,
|
|
58
65
|
drc: drc ? { ok: drc.ok, violations: drc.violations.length } : null,
|
|
59
|
-
drift: { ok: drift.length === 0, mismatches: drift },
|
|
66
|
+
drift: { ok: drift.length === 0, mismatches: drift, ...(driftWarning ? { warning: driftWarning } : {}) },
|
|
60
67
|
openspec,
|
|
61
68
|
constraints: { ok: constraintViolations.length === 0, violations: constraintViolations },
|
|
62
69
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAoB,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAsB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
|