copperhead 0.9.0 → 0.11.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 +1 -1
- package/README.md +47 -8
- package/dist/agent/context.js +2 -0
- package/dist/agent/context.js.map +1 -0
- package/dist/agent/dock-renderer.js +2 -2
- package/dist/agent/dock-renderer.js.map +1 -1
- package/dist/agent/envelope.js +105 -0
- package/dist/agent/envelope.js.map +1 -0
- package/dist/agent/filetools.js +24 -1
- package/dist/agent/filetools.js.map +1 -1
- package/dist/agent/ledger.js +24 -0
- package/dist/agent/ledger.js.map +1 -1
- package/dist/agent/loop.js +63 -72
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/prompts.js +4 -3
- package/dist/agent/prompts.js.map +1 -1
- package/dist/agent/providers/claude-code.js +17 -1
- package/dist/agent/providers/claude-code.js.map +1 -1
- package/dist/agent/providers/codex.js +84 -39
- package/dist/agent/providers/codex.js.map +1 -1
- package/dist/agent/providers/tool-protocol.js +21 -0
- package/dist/agent/providers/tool-protocol.js.map +1 -1
- package/dist/agent/recovery.js +186 -15
- package/dist/agent/recovery.js.map +1 -1
- package/dist/agent/registry.js +49 -0
- package/dist/agent/registry.js.map +1 -0
- package/dist/agent/render.js +2 -2
- package/dist/agent/render.js.map +1 -1
- package/dist/agent/theme.js +10 -5
- package/dist/agent/theme.js.map +1 -1
- package/dist/agent/tools.js +100 -586
- package/dist/agent/tools.js.map +1 -1
- package/dist/agent/transcript.js +2 -0
- package/dist/agent/transcript.js.map +1 -1
- package/dist/capabilities/define.js +35 -0
- package/dist/capabilities/define.js.map +1 -0
- package/dist/capabilities/handlers.js +744 -0
- package/dist/capabilities/handlers.js.map +1 -0
- package/dist/capabilities/helpers.js +39 -0
- package/dist/capabilities/helpers.js.map +1 -0
- package/dist/capabilities/index.js +50 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/skills/generate-report.js +23 -0
- package/dist/capabilities/skills/generate-report.js.map +1 -0
- package/dist/cli.js +158 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/check.js +33 -1
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/create.js +181 -26
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/doctor.js +83 -6
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/skill.js +109 -0
- package/dist/commands/skill.js.map +1 -0
- package/dist/commands/sync.js +3 -1
- package/dist/commands/sync.js.map +1 -1
- package/dist/config.js +19 -6
- package/dist/config.js.map +1 -1
- package/dist/kicad/bootstrap.js +24 -3
- package/dist/kicad/bootstrap.js.map +1 -1
- package/dist/kicad/cli.js +106 -18
- package/dist/kicad/cli.js.map +1 -1
- package/dist/kicad/dossier.js +207 -0
- package/dist/kicad/dossier.js.map +1 -0
- package/dist/kicad/draft/draft.js +135 -0
- package/dist/kicad/draft/draft.js.map +1 -0
- package/dist/kicad/draft/engine.js +5310 -0
- package/dist/kicad/draft/engine.js.map +1 -0
- package/dist/kicad/draft/ir.js +368 -0
- package/dist/kicad/draft/ir.js.map +1 -0
- package/dist/kicad/draft/symsource.js +504 -0
- package/dist/kicad/draft/symsource.js.map +1 -0
- package/dist/kicad/emit.js +220 -0
- package/dist/kicad/emit.js.map +1 -0
- package/dist/kicad/fab.js +13 -0
- package/dist/kicad/fab.js.map +1 -1
- package/dist/kicad/legibility.js +608 -0
- package/dist/kicad/legibility.js.map +1 -0
- package/dist/kicad/score.js +431 -0
- package/dist/kicad/score.js.map +1 -0
- package/dist/kicad/sexp.js +265 -6
- package/dist/kicad/sexp.js.map +1 -1
- package/dist/kicad/symlib.js +346 -16
- package/dist/kicad/symlib.js.map +1 -1
- package/dist/mcp/server.js +485 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/memory/bom-table.js +75 -39
- package/dist/memory/bom-table.js.map +1 -1
- package/dist/memory/scaffold.js +14 -1
- package/dist/memory/scaffold.js.map +1 -1
- package/dist/util/redact.js +6 -0
- package/dist/util/redact.js.map +1 -1
- package/package.json +13 -8
- package/src/agent/context.ts +35 -0
- package/src/agent/dock-renderer.ts +3 -2
- package/src/agent/envelope.ts +124 -0
- package/src/agent/filetools.ts +26 -1
- package/src/agent/ledger.ts +24 -0
- package/src/agent/loop.ts +73 -78
- package/src/agent/prompts.ts +4 -3
- package/src/agent/providers/claude-code.ts +22 -1
- package/src/agent/providers/codex.ts +91 -42
- package/src/agent/providers/tool-protocol.ts +22 -0
- package/src/agent/recovery.ts +183 -13
- package/src/agent/registry.ts +58 -0
- package/src/agent/render.ts +4 -3
- package/src/agent/theme.ts +15 -5
- package/src/agent/tools.ts +124 -628
- package/src/agent/transcript.ts +6 -0
- package/src/agent/types.ts +10 -5
- package/src/capabilities/define.ts +88 -0
- package/src/capabilities/handlers.ts +769 -0
- package/src/capabilities/helpers.ts +37 -0
- package/src/capabilities/index.ts +53 -0
- package/src/capabilities/skills/generate-report.ts +25 -0
- package/src/cli.ts +154 -0
- package/src/commands/check.ts +51 -1
- package/src/commands/create.ts +183 -21
- package/src/commands/doctor.ts +85 -6
- package/src/commands/skill.ts +127 -0
- package/src/commands/sync.ts +5 -3
- package/src/config.ts +56 -8
- package/src/kicad/bootstrap.ts +24 -3
- package/src/kicad/cli.ts +129 -18
- package/src/kicad/dossier.ts +217 -0
- package/src/kicad/draft/draft.ts +173 -0
- package/src/kicad/draft/engine.ts +5274 -0
- package/src/kicad/draft/ir.ts +416 -0
- package/src/kicad/draft/symsource.ts +549 -0
- package/src/kicad/emit.ts +300 -0
- package/src/kicad/fab.ts +15 -0
- package/src/kicad/legibility.ts +695 -0
- package/src/kicad/score.ts +502 -0
- package/src/kicad/sexp.ts +346 -6
- package/src/kicad/symlib.ts +364 -18
- package/src/mcp/server.ts +560 -0
- package/src/memory/bom-table.ts +85 -38
- package/src/memory/scaffold.ts +14 -1
- package/src/util/redact.ts +6 -0
- package/dist/memory/synap.js +0 -152
- package/dist/memory/synap.js.map +0 -1
- package/src/memory/synap.ts +0 -217
package/dist/kicad/sexp.js
CHANGED
|
@@ -14,7 +14,11 @@ export function parseSexp(text) {
|
|
|
14
14
|
let s = '';
|
|
15
15
|
while (j < text.length && text[j] !== '"') {
|
|
16
16
|
if (text[j] === '\\' && j + 1 < text.length) {
|
|
17
|
-
|
|
17
|
+
// KiCad writes multi-line text as `\n` (and tabs as `\t`) inside the
|
|
18
|
+
// quoted atom; mapping the escape to the literal letter would give
|
|
19
|
+
// the legibility width model a one-line `line1nline2` string.
|
|
20
|
+
const e = text[j + 1];
|
|
21
|
+
s += e === 'n' ? '\n' : e === 't' ? '\t' : e;
|
|
18
22
|
j += 2;
|
|
19
23
|
}
|
|
20
24
|
else {
|
|
@@ -98,7 +102,10 @@ async function loadSheets(rootSch) {
|
|
|
98
102
|
await load(rootSch, '/');
|
|
99
103
|
return out;
|
|
100
104
|
}
|
|
101
|
-
/** Pin definitions per lib symbol name, in symbol coordinates.
|
|
105
|
+
/** Pin definitions per lib symbol name, in symbol coordinates. Each pin
|
|
106
|
+
* carries the unit of the `_<unit>_<style>` child it was defined in (0 for
|
|
107
|
+
* the common unit); de Morgan alternates (style ≥ 2) are skipped so a pin is
|
|
108
|
+
* recorded once. */
|
|
102
109
|
function libPinDefs(root) {
|
|
103
110
|
const map = new Map();
|
|
104
111
|
const libs = child(root, 'lib_symbols');
|
|
@@ -109,9 +116,17 @@ function libPinDefs(root) {
|
|
|
109
116
|
if (!name)
|
|
110
117
|
continue;
|
|
111
118
|
const pins = [];
|
|
112
|
-
const walk = (n) => {
|
|
119
|
+
const walk = (n, unit) => {
|
|
113
120
|
if (!isList(n))
|
|
114
121
|
return;
|
|
122
|
+
if (tag(n) === 'symbol') {
|
|
123
|
+
const m = /_(\d+)_(\d+)$/.exec(atomAt(n, 1) ?? '');
|
|
124
|
+
if (m) {
|
|
125
|
+
if (Number(m[2]) >= 2)
|
|
126
|
+
return; // de Morgan alternate body style
|
|
127
|
+
unit = Number(m[1]);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
115
130
|
if (tag(n) === 'pin') {
|
|
116
131
|
const at = child(n, 'at');
|
|
117
132
|
const num = atomAt(child(n, 'number'), 1);
|
|
@@ -122,17 +137,26 @@ function libPinDefs(root) {
|
|
|
122
137
|
name: pinName ?? '~',
|
|
123
138
|
x: parseFloat(atomAt(at, 1) ?? '0'),
|
|
124
139
|
y: parseFloat(atomAt(at, 2) ?? '0'),
|
|
140
|
+
unit,
|
|
125
141
|
});
|
|
126
142
|
}
|
|
127
143
|
}
|
|
128
144
|
for (const c of n)
|
|
129
|
-
walk(c);
|
|
145
|
+
walk(c, unit);
|
|
130
146
|
};
|
|
131
|
-
walk(sym);
|
|
147
|
+
walk(sym, 0);
|
|
132
148
|
map.set(name, pins);
|
|
133
149
|
}
|
|
134
150
|
return map;
|
|
135
151
|
}
|
|
152
|
+
/** The pins a PLACED instance actually shows: its own unit's plus the common
|
|
153
|
+
* unit's. A single-unit symbol keeps every pin (they are all unit ≤ 1). */
|
|
154
|
+
export function pinsOfUnit(defs, unit) {
|
|
155
|
+
const multi = defs.some((p) => p.unit >= 2);
|
|
156
|
+
if (!multi)
|
|
157
|
+
return defs;
|
|
158
|
+
return defs.filter((p) => p.unit === 0 || p.unit === unit);
|
|
159
|
+
}
|
|
136
160
|
/** Symbol-space → schematic-space transform (schematic Y grows downward). */
|
|
137
161
|
export function pinAbsolute(symAt, mirror, pin) {
|
|
138
162
|
let px = pin.x;
|
|
@@ -189,6 +213,7 @@ function symbolsOf(sheet) {
|
|
|
189
213
|
rot: parseFloat(atomAt(at, 3) ?? '0'),
|
|
190
214
|
},
|
|
191
215
|
uuid: atomAt(child(s, 'uuid'), 1) ?? '',
|
|
216
|
+
unit: parseInt(atomAt(child(s, 'unit'), 1) ?? '1', 10) || 1,
|
|
192
217
|
},
|
|
193
218
|
});
|
|
194
219
|
}
|
|
@@ -244,6 +269,237 @@ export async function listNets(rootSch) {
|
|
|
244
269
|
}
|
|
245
270
|
return [...names].sort();
|
|
246
271
|
}
|
|
272
|
+
const num = (n, idx, fallback = 0) => {
|
|
273
|
+
const v = atomAt(n, idx);
|
|
274
|
+
return v === undefined ? fallback : parseFloat(v);
|
|
275
|
+
};
|
|
276
|
+
function effectsOf(node) {
|
|
277
|
+
const effects = child(node, 'effects');
|
|
278
|
+
const font = effects ? child(effects, 'font') : undefined;
|
|
279
|
+
const size = font ? child(font, 'size') : undefined;
|
|
280
|
+
// hidden: legacy bare `hide` atom, v9 `(hide yes)` inside effects, or
|
|
281
|
+
// KiCad 10's `(hide yes)` as a direct child of the property (a sheet
|
|
282
|
+
// re-saved by eeschema 10 flagged every hidden power reference as text
|
|
283
|
+
// on a wire until this was read)
|
|
284
|
+
const hideNode = effects ? child(effects, 'hide') : undefined;
|
|
285
|
+
const hideProp = child(node, 'hide');
|
|
286
|
+
const hidden = (effects?.some((c) => c === 'hide') ?? false) ||
|
|
287
|
+
(hideNode !== undefined && atomAt(hideNode, 1) !== 'no') ||
|
|
288
|
+
(hideProp !== undefined && atomAt(hideProp, 1) !== 'no');
|
|
289
|
+
return { height: size ? num(size, 1, 1.27) : 1.27, hidden };
|
|
290
|
+
}
|
|
291
|
+
function libBodyBounds(root) {
|
|
292
|
+
const map = new Map();
|
|
293
|
+
const libs = child(root, 'lib_symbols');
|
|
294
|
+
if (!libs)
|
|
295
|
+
return map;
|
|
296
|
+
for (const sym of children(libs, 'symbol')) {
|
|
297
|
+
const name = atomAt(sym, 1);
|
|
298
|
+
if (!name)
|
|
299
|
+
continue;
|
|
300
|
+
/** Union across the whole symbol under `name`, per-unit union (common
|
|
301
|
+
* graphics included) under `name#<unit>` — a placed unit of a multi-unit
|
|
302
|
+
* symbol draws only its own unit's graphics, so measuring it with the
|
|
303
|
+
* package union would size every instance like the whole gate pack. */
|
|
304
|
+
const perUnit = new Map();
|
|
305
|
+
let b = null;
|
|
306
|
+
const grow = (prev, x, y) => {
|
|
307
|
+
if (!prev)
|
|
308
|
+
return { minX: x, minY: y, maxX: x, maxY: y };
|
|
309
|
+
prev.minX = Math.min(prev.minX, x);
|
|
310
|
+
prev.minY = Math.min(prev.minY, y);
|
|
311
|
+
prev.maxX = Math.max(prev.maxX, x);
|
|
312
|
+
prev.maxY = Math.max(prev.maxY, y);
|
|
313
|
+
return prev;
|
|
314
|
+
};
|
|
315
|
+
const walk = (n, unit) => {
|
|
316
|
+
if (!isList(n))
|
|
317
|
+
return;
|
|
318
|
+
const t = tag(n);
|
|
319
|
+
if (t === 'symbol') {
|
|
320
|
+
const m = /_(\d+)_(\d+)$/.exec(atomAt(n, 1) ?? '');
|
|
321
|
+
if (m) {
|
|
322
|
+
if (Number(m[2]) >= 2)
|
|
323
|
+
return; // de Morgan alternate body style
|
|
324
|
+
unit = Number(m[1]);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
const extend = (x, y) => {
|
|
328
|
+
b = grow(b, x, y);
|
|
329
|
+
if (unit !== null)
|
|
330
|
+
perUnit.set(unit, grow(perUnit.get(unit) ?? null, x, y));
|
|
331
|
+
};
|
|
332
|
+
if (t === 'rectangle') {
|
|
333
|
+
const s = child(n, 'start');
|
|
334
|
+
const e = child(n, 'end');
|
|
335
|
+
extend(num(s, 1), num(s, 2));
|
|
336
|
+
extend(num(e, 1), num(e, 2));
|
|
337
|
+
}
|
|
338
|
+
else if (t === 'circle') {
|
|
339
|
+
const c = child(n, 'center');
|
|
340
|
+
const r = num(child(n, 'radius'), 1);
|
|
341
|
+
extend(num(c, 1) - r, num(c, 2) - r);
|
|
342
|
+
extend(num(c, 1) + r, num(c, 2) + r);
|
|
343
|
+
}
|
|
344
|
+
else if (t === 'arc') {
|
|
345
|
+
for (const part of ['start', 'mid', 'end']) {
|
|
346
|
+
const p = child(n, part);
|
|
347
|
+
if (p)
|
|
348
|
+
extend(num(p, 1), num(p, 2));
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
else if (t === 'polyline') {
|
|
352
|
+
for (const xy of children(child(n, 'pts') ?? [], 'xy'))
|
|
353
|
+
extend(num(xy, 1), num(xy, 2));
|
|
354
|
+
}
|
|
355
|
+
// pin/text graphics are deliberately excluded from the body box (design C2)
|
|
356
|
+
if (t !== 'pin' && t !== 'text')
|
|
357
|
+
for (const c of n)
|
|
358
|
+
walk(c, unit);
|
|
359
|
+
};
|
|
360
|
+
walk(sym, null);
|
|
361
|
+
map.set(name, b);
|
|
362
|
+
const common = perUnit.get(0) ?? null;
|
|
363
|
+
for (const [unit, ub] of perUnit) {
|
|
364
|
+
if (unit === 0)
|
|
365
|
+
continue;
|
|
366
|
+
const merged = ub && common
|
|
367
|
+
? {
|
|
368
|
+
minX: Math.min(ub.minX, common.minX),
|
|
369
|
+
minY: Math.min(ub.minY, common.minY),
|
|
370
|
+
maxX: Math.max(ub.maxX, common.maxX),
|
|
371
|
+
maxY: Math.max(ub.maxY, common.maxY),
|
|
372
|
+
}
|
|
373
|
+
: (ub ?? (common ? { ...common } : null));
|
|
374
|
+
map.set(`${name}#${unit}`, merged);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
return map;
|
|
378
|
+
}
|
|
379
|
+
function textItemsOf(sym, symRot = 0) {
|
|
380
|
+
const out = [];
|
|
381
|
+
for (const p of children(sym, 'property')) {
|
|
382
|
+
const key = atomAt(p, 1);
|
|
383
|
+
if (key !== 'Reference' && key !== 'Value')
|
|
384
|
+
continue;
|
|
385
|
+
const at = child(p, 'at');
|
|
386
|
+
const fx = effectsOf(p);
|
|
387
|
+
out.push({
|
|
388
|
+
text: atomAt(p, 2) ?? '',
|
|
389
|
+
x: num(at, 1),
|
|
390
|
+
y: num(at, 2),
|
|
391
|
+
// KiCad draws a property at its stored angle PLUS the symbol's: a
|
|
392
|
+
// resistor turned 90 stores 90 on its fields to read horizontally,
|
|
393
|
+
// and a field stored at 0 on that resistor stands on end. The
|
|
394
|
+
// checker measures what is drawn.
|
|
395
|
+
rot: (((num(at, 3) + symRot) % 360) + 360) % 360,
|
|
396
|
+
height: fx.height,
|
|
397
|
+
hidden: fx.hidden,
|
|
398
|
+
// property text keeps the centred measurement: its justification is
|
|
399
|
+
// relative to the symbol's own rotation and mirror, which the checker
|
|
400
|
+
// does not model, and the engine emits it centred
|
|
401
|
+
justifyH: null,
|
|
402
|
+
justifyV: null,
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
return out;
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Everything the legibility checker needs to see per sheet, extracted read-only.
|
|
409
|
+
* Never serializes and never mutates the file.
|
|
410
|
+
*/
|
|
411
|
+
export async function readSheetGeometry(rootSch) {
|
|
412
|
+
const sheets = await loadSheets(rootSch);
|
|
413
|
+
const powerSyms = collectPowerSymbols(sheets);
|
|
414
|
+
return sheets.map((sheet) => {
|
|
415
|
+
const paperNode = child(sheet.root, 'paper');
|
|
416
|
+
const paperName = atomAt(paperNode, 1) ?? null;
|
|
417
|
+
const portrait = paperNode?.includes('portrait') ?? false;
|
|
418
|
+
const explicitW = num(paperNode, 2, NaN);
|
|
419
|
+
const explicitH = num(paperNode, 3, NaN);
|
|
420
|
+
const tb = child(sheet.root, 'title_block');
|
|
421
|
+
const tbField = (name) => (tb ? (atomAt(child(tb, name), 1) ?? '') : '');
|
|
422
|
+
const wires = [];
|
|
423
|
+
for (const w of children(sheet.root, 'wire')) {
|
|
424
|
+
const pts = children(child(w, 'pts') ?? [], 'xy');
|
|
425
|
+
for (let i = 1; i < pts.length; i++) {
|
|
426
|
+
wires.push({ x1: num(pts[i - 1], 1), y1: num(pts[i - 1], 2), x2: num(pts[i], 1), y2: num(pts[i], 2) });
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
const labels = [];
|
|
430
|
+
for (const kind of ['label', 'global_label', 'hierarchical_label']) {
|
|
431
|
+
for (const l of children(sheet.root, kind)) {
|
|
432
|
+
const at = child(l, 'at');
|
|
433
|
+
const effects = child(l, 'effects');
|
|
434
|
+
const justify = effects ? child(effects, 'justify') : undefined;
|
|
435
|
+
labels.push({
|
|
436
|
+
name: atomAt(l, 1) ?? '',
|
|
437
|
+
kind,
|
|
438
|
+
x: num(at, 1),
|
|
439
|
+
y: num(at, 2),
|
|
440
|
+
rot: num(at, 3),
|
|
441
|
+
height: effectsOf(l).height,
|
|
442
|
+
justify: justify?.some((c) => c === 'right') ? 'right' : justify?.some((c) => c === 'left') ? 'left' : null,
|
|
443
|
+
});
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
const texts = children(sheet.root, 'text').map((t) => {
|
|
447
|
+
const at = child(t, 'at');
|
|
448
|
+
const fx = effectsOf(t);
|
|
449
|
+
const effects = child(t, 'effects');
|
|
450
|
+
const justify = effects ? child(effects, 'justify') : undefined;
|
|
451
|
+
return {
|
|
452
|
+
text: atomAt(t, 1) ?? '',
|
|
453
|
+
x: num(at, 1),
|
|
454
|
+
y: num(at, 2),
|
|
455
|
+
rot: num(at, 3),
|
|
456
|
+
height: fx.height,
|
|
457
|
+
hidden: fx.hidden,
|
|
458
|
+
justifyH: justify?.some((c) => c === 'right') ? 'right' : justify?.some((c) => c === 'left') ? 'left' : null,
|
|
459
|
+
justifyV: justify?.some((c) => c === 'bottom') ? 'bottom' : justify?.some((c) => c === 'top') ? 'top' : null,
|
|
460
|
+
};
|
|
461
|
+
});
|
|
462
|
+
const rectangles = children(sheet.root, 'rectangle').map((r) => {
|
|
463
|
+
const s = child(r, 'start');
|
|
464
|
+
const e = child(r, 'end');
|
|
465
|
+
const stroke = child(r, 'stroke');
|
|
466
|
+
return {
|
|
467
|
+
x1: num(s, 1),
|
|
468
|
+
y1: num(s, 2),
|
|
469
|
+
x2: num(e, 1),
|
|
470
|
+
y2: num(e, 2),
|
|
471
|
+
strokeType: atomAt(child(stroke ?? [], 'type'), 1) ?? 'default',
|
|
472
|
+
};
|
|
473
|
+
});
|
|
474
|
+
return {
|
|
475
|
+
filePath: sheet.filePath,
|
|
476
|
+
sheetName: sheet.sheetName,
|
|
477
|
+
paper: {
|
|
478
|
+
name: paperName,
|
|
479
|
+
width: Number.isNaN(explicitW) ? null : explicitW,
|
|
480
|
+
height: Number.isNaN(explicitH) ? null : explicitH,
|
|
481
|
+
portrait,
|
|
482
|
+
},
|
|
483
|
+
titleBlock: tb ? { title: tbField('title'), date: tbField('date'), rev: tbField('rev') } : null,
|
|
484
|
+
symbols: symbolsOf(sheet).map(({ sym, mirror, node }) => ({
|
|
485
|
+
ref: sym.ref,
|
|
486
|
+
libId: sym.libId,
|
|
487
|
+
value: sym.value,
|
|
488
|
+
at: sym.at,
|
|
489
|
+
mirror,
|
|
490
|
+
isPower: isPowerSymbol(sym.libId, powerSyms),
|
|
491
|
+
unit: sym.unit,
|
|
492
|
+
props: textItemsOf(node, sym.at.rot),
|
|
493
|
+
})),
|
|
494
|
+
wires,
|
|
495
|
+
labels,
|
|
496
|
+
texts,
|
|
497
|
+
rectangles,
|
|
498
|
+
libBounds: libBodyBounds(sheet.root),
|
|
499
|
+
libPins: libPinDefs(sheet.root),
|
|
500
|
+
};
|
|
501
|
+
});
|
|
502
|
+
}
|
|
247
503
|
/**
|
|
248
504
|
* Geometric connectivity per sheet: pins, labels, and wire endpoints that share
|
|
249
505
|
* coordinates (or are joined by wires) form a group; a group's net name comes
|
|
@@ -280,7 +536,10 @@ export async function pinNets(rootSch) {
|
|
|
280
536
|
}
|
|
281
537
|
const symPins = [];
|
|
282
538
|
for (const { sym, mirror } of symbolsOf(sheet)) {
|
|
283
|
-
|
|
539
|
+
// a placed unit of a multi-unit symbol shows only its own unit's pins;
|
|
540
|
+
// resolving the whole package at each instance would invent phantom
|
|
541
|
+
// connection points at every other unit's coordinates
|
|
542
|
+
const defs = pinsOfUnit(pinDefs.get(sym.libId) ?? [], sym.unit);
|
|
284
543
|
for (const pin of defs) {
|
|
285
544
|
const abs = pinAbsolute(sym.at, mirror, pin);
|
|
286
545
|
const k = key(abs.x, abs.y);
|
package/dist/kicad/sexp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sexp.js","sourceRoot":"","sources":["../../src/kicad/sexp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sexp.js","sourceRoot":"","sources":["../../src/kicad/sexp.ts"],"names":[],"mappings":"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"}
|