easyeda-mcp-pro 0.30.0 → 0.32.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.
Files changed (70) hide show
  1. package/dist/bridge/manager.js +1 -1
  2. package/dist/bridge/manager.js.map +1 -1
  3. package/dist/bridge/protocol.d.ts +4 -0
  4. package/dist/bridge/protocol.js +1 -0
  5. package/dist/bridge/protocol.js.map +1 -1
  6. package/dist/bridge/types.d.ts +4 -0
  7. package/dist/bridge/types.js +4 -0
  8. package/dist/bridge/types.js.map +1 -1
  9. package/dist/config/profiles.js +5 -5
  10. package/dist/config/profiles.js.map +1 -1
  11. package/dist/config/version.d.ts +1 -1
  12. package/dist/config/version.js +1 -1
  13. package/dist/schematic-model/audit.d.ts +112 -0
  14. package/dist/schematic-model/audit.js +331 -0
  15. package/dist/schematic-model/audit.js.map +1 -0
  16. package/dist/schematic-model/index.d.ts +5 -0
  17. package/dist/schematic-model/index.js +6 -0
  18. package/dist/schematic-model/index.js.map +1 -0
  19. package/dist/schematic-model/model.d.ts +206 -0
  20. package/dist/schematic-model/model.js +84 -0
  21. package/dist/schematic-model/model.js.map +1 -0
  22. package/dist/schematic-model/net-names.d.ts +16 -0
  23. package/dist/schematic-model/net-names.js +176 -0
  24. package/dist/schematic-model/net-names.js.map +1 -0
  25. package/dist/schematic-model/normalization-plan.d.ts +194 -0
  26. package/dist/schematic-model/normalization-plan.js +669 -0
  27. package/dist/schematic-model/normalization-plan.js.map +1 -0
  28. package/dist/schematic-model/normalize.d.ts +26 -0
  29. package/dist/schematic-model/normalize.js +293 -0
  30. package/dist/schematic-model/normalize.js.map +1 -0
  31. package/dist/tools/L1_drc_erc.js +10 -12
  32. package/dist/tools/L1_drc_erc.js.map +1 -1
  33. package/dist/tools/L1_schematic_batch.d.ts +5 -0
  34. package/dist/tools/L1_schematic_batch.js +556 -0
  35. package/dist/tools/L1_schematic_batch.js.map +1 -0
  36. package/dist/tools/L1_schematic_read.js +411 -25
  37. package/dist/tools/L1_schematic_read.js.map +1 -1
  38. package/dist/tools/L1_schematic_write.js +76 -11
  39. package/dist/tools/L1_schematic_write.js.map +1 -1
  40. package/dist/tools/L1_transactions.d.ts +5 -0
  41. package/dist/tools/L1_transactions.js +350 -0
  42. package/dist/tools/L1_transactions.js.map +1 -0
  43. package/dist/tools/L2_workflows.js +129 -1
  44. package/dist/tools/L2_workflows.js.map +1 -1
  45. package/dist/tools/register.js +4 -0
  46. package/dist/tools/register.js.map +1 -1
  47. package/dist/tools/registry.js +31 -29
  48. package/dist/tools/registry.js.map +1 -1
  49. package/dist/transactions/easyeda.d.ts +25 -0
  50. package/dist/transactions/easyeda.js +129 -0
  51. package/dist/transactions/easyeda.js.map +1 -0
  52. package/dist/transactions/index.d.ts +4 -0
  53. package/dist/transactions/index.js +5 -0
  54. package/dist/transactions/index.js.map +1 -0
  55. package/dist/transactions/manager.d.ts +38 -0
  56. package/dist/transactions/manager.js +475 -0
  57. package/dist/transactions/manager.js.map +1 -0
  58. package/dist/transactions/model.d.ts +111 -0
  59. package/dist/transactions/model.js +2 -0
  60. package/dist/transactions/model.js.map +1 -0
  61. package/dist/transactions/stable.d.ts +4 -0
  62. package/dist/transactions/stable.js +57 -0
  63. package/dist/transactions/stable.js.map +1 -0
  64. package/dist/workflows/rp2040-servo-module-scaffold.d.ts +65 -0
  65. package/dist/workflows/rp2040-servo-module-scaffold.js +280 -0
  66. package/dist/workflows/rp2040-servo-module-scaffold.js.map +1 -0
  67. package/dist/workflows/schematic-safe-region.js +26 -0
  68. package/dist/workflows/schematic-safe-region.js.map +1 -1
  69. package/easyeda-bridge-extension.eext +0 -0
  70. package/package.json +4 -3
@@ -0,0 +1,331 @@
1
+ import { z } from 'zod';
2
+ export const ImportedAuditSeveritySchema = z.enum(['info', 'warning', 'error']);
3
+ export const ImportedAuditFindingSchema = z.object({
4
+ code: z.string().min(1),
5
+ severity: ImportedAuditSeveritySchema,
6
+ message: z.string().min(1),
7
+ componentId: z.string().optional(),
8
+ componentRef: z.string().optional(),
9
+ netName: z.string().optional(),
10
+ rawNetNames: z.array(z.string()).optional(),
11
+ evidence: z.record(z.string(), z.unknown()).optional(),
12
+ suggestedAction: z.string().min(1),
13
+ confidence: z.enum(['high', 'medium', 'low']),
14
+ });
15
+ export const ImportedDesignAuditSchema = z.object({
16
+ schemaVersion: z.literal('imported-design-audit/v1'),
17
+ status: z.enum(['clean', 'review', 'blocked']),
18
+ readOnly: z.literal(true),
19
+ safeToNormalize: z.boolean(),
20
+ modelSummary: z.object({
21
+ componentCount: z.number().int().nonnegative(),
22
+ bomComponentCount: z.number().int().nonnegative(),
23
+ electricalComponentCount: z.number().int().nonnegative(),
24
+ netCount: z.number().int().nonnegative(),
25
+ importedComponentCount: z.number().int().nonnegative(),
26
+ }),
27
+ summary: z.object({
28
+ findingCount: z.number().int().nonnegative(),
29
+ errorCount: z.number().int().nonnegative(),
30
+ warningCount: z.number().int().nonnegative(),
31
+ infoCount: z.number().int().nonnegative(),
32
+ importedNetCount: z.number().int().nonnegative(),
33
+ aliasedNetCount: z.number().int().nonnegative(),
34
+ unannotatedComponentCount: z.number().int().nonnegative(),
35
+ missingFootprintCount: z.number().int().nonnegative(),
36
+ missingValueCount: z.number().int().nonnegative(),
37
+ duplicateReferenceCount: z.number().int().nonnegative(),
38
+ ambiguousBomCount: z.number().int().nonnegative(),
39
+ unresolvedExpressionCount: z.number().int().nonnegative(),
40
+ }),
41
+ findings: z.array(ImportedAuditFindingSchema),
42
+ normalizationPreview: z.object({
43
+ netAliases: z.array(z.object({
44
+ canonicalNetName: z.string(),
45
+ rawNetNames: z.array(z.string()),
46
+ kind: z.enum(['signal', 'power', 'ground', 'power-flag', 'unnamed']),
47
+ rules: z.array(z.string()),
48
+ })),
49
+ componentRepairs: z.array(z.object({
50
+ componentId: z.string(),
51
+ reference: z.string(),
52
+ actions: z.array(z.enum([
53
+ 'annotate-reference',
54
+ 'assign-footprint',
55
+ 'assign-value',
56
+ 'resolve-value-expression',
57
+ 'resolve-footprint-expression',
58
+ 'review-bom-classification',
59
+ ])),
60
+ })),
61
+ }),
62
+ });
63
+ function unresolvedExpression(value) {
64
+ return typeof value === 'string' && /^=\{[^{}]+\}$/.test(value.trim());
65
+ }
66
+ function componentRepairActions(component) {
67
+ const actions = [];
68
+ if (component.componentKind === 'part') {
69
+ if (!component.annotated)
70
+ actions.push('annotate-reference');
71
+ if (!component.footprint)
72
+ actions.push('assign-footprint');
73
+ if (!component.value)
74
+ actions.push('assign-value');
75
+ if (unresolvedExpression(component.value))
76
+ actions.push('resolve-value-expression');
77
+ if (unresolvedExpression(component.footprint))
78
+ actions.push('resolve-footprint-expression');
79
+ }
80
+ if (['unknown', 'helper'].includes(component.componentKind) &&
81
+ (component.reference || component.value || component.footprint)) {
82
+ actions.push('review-bom-classification');
83
+ }
84
+ return actions;
85
+ }
86
+ function findingSort(a, b) {
87
+ const rank = { error: 0, warning: 1, info: 2 };
88
+ return (rank[a.severity] - rank[b.severity] ||
89
+ a.code.localeCompare(b.code) ||
90
+ (a.componentRef ?? '').localeCompare(b.componentRef ?? '') ||
91
+ (a.netName ?? '').localeCompare(b.netName ?? ''));
92
+ }
93
+ function isAmbiguousBomPrimitive(component) {
94
+ return (['unknown', 'helper'].includes(component.componentKind) &&
95
+ Boolean(component.reference || component.value || component.footprint));
96
+ }
97
+ function componentFindings(component) {
98
+ const findings = [];
99
+ const isPart = component.componentKind === 'part';
100
+ if (isPart && !component.annotated) {
101
+ findings.push({
102
+ code: 'COMPONENT_UNANNOTATED',
103
+ severity: 'warning',
104
+ message: 'A real component does not have a stable reference designator.',
105
+ componentId: component.canonicalComponentId,
106
+ componentRef: component.reference,
107
+ evidence: { rawReference: component.rawReference },
108
+ suggestedAction: 'Assign a unique reference designator before automated reconciliation.',
109
+ confidence: 'high',
110
+ });
111
+ }
112
+ if (isPart && !component.footprint) {
113
+ findings.push({
114
+ code: 'COMPONENT_MISSING_FOOTPRINT',
115
+ severity: 'warning',
116
+ message: 'A BOM-eligible component has no resolved footprint.',
117
+ componentId: component.canonicalComponentId,
118
+ componentRef: component.reference,
119
+ suggestedAction: 'Assign or map the intended EasyEDA footprint.',
120
+ confidence: 'high',
121
+ });
122
+ }
123
+ if (isPart && !component.value) {
124
+ findings.push({
125
+ code: 'COMPONENT_MISSING_VALUE',
126
+ severity: 'warning',
127
+ message: 'A BOM-eligible component has no resolved value or device name.',
128
+ componentId: component.canonicalComponentId,
129
+ componentRef: component.reference,
130
+ suggestedAction: 'Set a value or map the imported value attribute.',
131
+ confidence: 'medium',
132
+ });
133
+ }
134
+ if (isPart && unresolvedExpression(component.value)) {
135
+ findings.push({
136
+ code: 'COMPONENT_VALUE_EXPRESSION_UNRESOLVED',
137
+ severity: 'warning',
138
+ message: 'The component value is still an unresolved metadata expression.',
139
+ componentId: component.canonicalComponentId,
140
+ componentRef: component.reference,
141
+ evidence: { rawValue: component.rawValue, resolvedValue: component.value },
142
+ suggestedAction: 'Map the referenced imported attribute to a concrete value.',
143
+ confidence: 'high',
144
+ });
145
+ }
146
+ if (isPart && unresolvedExpression(component.footprint)) {
147
+ findings.push({
148
+ code: 'COMPONENT_FOOTPRINT_EXPRESSION_UNRESOLVED',
149
+ severity: 'warning',
150
+ message: 'The component footprint is still an unresolved metadata expression.',
151
+ componentId: component.canonicalComponentId,
152
+ componentRef: component.reference,
153
+ evidence: { rawFootprint: component.rawFootprint, resolvedFootprint: component.footprint },
154
+ suggestedAction: 'Map the referenced imported attribute to a concrete footprint.',
155
+ confidence: 'high',
156
+ });
157
+ }
158
+ if (isAmbiguousBomPrimitive(component)) {
159
+ findings.push({
160
+ code: 'BOM_CLASSIFICATION_AMBIGUOUS',
161
+ severity: 'warning',
162
+ message: 'This imported primitive has part-like metadata but an ambiguous component type.',
163
+ componentId: component.canonicalComponentId,
164
+ componentRef: component.reference,
165
+ evidence: {
166
+ componentKind: component.componentKind,
167
+ value: component.value,
168
+ footprint: component.footprint,
169
+ },
170
+ suggestedAction: 'Review whether this primitive should be included in the BOM.',
171
+ confidence: 'medium',
172
+ });
173
+ }
174
+ return findings;
175
+ }
176
+ function duplicateReferenceFindings(components) {
177
+ const groups = new Map();
178
+ for (const component of components) {
179
+ if (component.componentKind !== 'part' || !component.annotated)
180
+ continue;
181
+ const key = component.reference.toUpperCase();
182
+ const group = groups.get(key) ?? [];
183
+ group.push(component);
184
+ groups.set(key, group);
185
+ }
186
+ const findings = [];
187
+ for (const group of groups.values()) {
188
+ if (group.length < 2)
189
+ continue;
190
+ const reference = group[0]?.reference ?? '';
191
+ findings.push({
192
+ code: 'DUPLICATE_COMPONENT_REFERENCE',
193
+ severity: 'error',
194
+ message: `Reference ${reference} is assigned to multiple BOM components.`,
195
+ componentRef: reference,
196
+ evidence: { componentIds: group.map((component) => component.canonicalComponentId) },
197
+ suggestedAction: 'Re-annotate the duplicate components with unique references.',
198
+ confidence: 'high',
199
+ });
200
+ }
201
+ return findings;
202
+ }
203
+ function netFindings(net, includeInfo) {
204
+ const findings = [];
205
+ if (net.kind === 'unnamed') {
206
+ findings.push({
207
+ code: 'NET_NAME_EMPTY',
208
+ severity: 'warning',
209
+ message: 'A net has no stable name after normalization.',
210
+ netName: net.canonicalNetName,
211
+ rawNetNames: net.rawNetNames,
212
+ suggestedAction: 'Assign an explicit net name or verify that the unnamed net is intentional.',
213
+ confidence: 'high',
214
+ });
215
+ }
216
+ if (includeInfo && net.imported) {
217
+ findings.push({
218
+ code: 'IMPORTED_NET_ALIAS',
219
+ severity: 'info',
220
+ message: `Imported net alias resolves to ${net.canonicalNetName}.`,
221
+ netName: net.canonicalNetName,
222
+ rawNetNames: net.rawNetNames,
223
+ evidence: { normalizationRules: net.normalizationRules, kind: net.kind },
224
+ suggestedAction: 'Review the preview before applying any display-name normalization.',
225
+ confidence: 'high',
226
+ });
227
+ }
228
+ if (includeInfo && net.rawNetNames.length > 1) {
229
+ findings.push({
230
+ code: 'NET_ALIASES_MERGED',
231
+ severity: 'info',
232
+ message: `Multiple raw names resolve to canonical net ${net.canonicalNetName}.`,
233
+ netName: net.canonicalNetName,
234
+ rawNetNames: net.rawNetNames,
235
+ suggestedAction: 'Confirm that the aliases represent one intended electrical net.',
236
+ confidence: 'medium',
237
+ });
238
+ }
239
+ if (includeInfo && net.kind === 'power-flag') {
240
+ findings.push({
241
+ code: 'POWER_FLAG_NET_DETECTED',
242
+ severity: 'info',
243
+ message: 'An imported power-flag helper net was detected and excluded from signal semantics.',
244
+ netName: net.canonicalNetName,
245
+ rawNetNames: net.rawNetNames,
246
+ suggestedAction: 'Keep it as a power assertion helper, not a user signal net.',
247
+ confidence: 'high',
248
+ });
249
+ }
250
+ return findings;
251
+ }
252
+ function sourceTruncatedFinding() {
253
+ return {
254
+ code: 'SOURCE_COMPONENTS_TRUNCATED',
255
+ severity: 'warning',
256
+ message: 'The live component inventory was truncated, so this audit is incomplete.',
257
+ suggestedAction: 'Repeat the audit with a complete component inventory before normalization.',
258
+ confidence: 'high',
259
+ };
260
+ }
261
+ function auditStatus(errorCount, warningCount) {
262
+ if (errorCount > 0)
263
+ return 'blocked';
264
+ if (warningCount > 0)
265
+ return 'review';
266
+ return 'clean';
267
+ }
268
+ function countFindingCodes(findings) {
269
+ const counts = new Map();
270
+ for (const finding of findings)
271
+ counts.set(finding.code, (counts.get(finding.code) ?? 0) + 1);
272
+ return counts;
273
+ }
274
+ export function auditImportedDesign(model, options = {}) {
275
+ const includeInfo = options.includeInfo ?? true;
276
+ const sourceTruncated = options.sourceTruncated ?? false;
277
+ const findings = [
278
+ ...model.components.flatMap(componentFindings),
279
+ ...duplicateReferenceFindings(model.components),
280
+ ...model.nets.flatMap((net) => netFindings(net, includeInfo)),
281
+ ...(sourceTruncated ? [sourceTruncatedFinding()] : []),
282
+ ];
283
+ findings.sort(findingSort);
284
+ const errorCount = findings.filter((finding) => finding.severity === 'error').length;
285
+ const warningCount = findings.filter((finding) => finding.severity === 'warning').length;
286
+ const infoCount = findings.filter((finding) => finding.severity === 'info').length;
287
+ const codeCounts = countFindingCodes(findings);
288
+ const componentRepairs = model.components
289
+ .map((component) => ({
290
+ componentId: component.canonicalComponentId,
291
+ reference: component.reference,
292
+ actions: componentRepairActions(component),
293
+ }))
294
+ .filter((repair) => repair.actions.length > 0);
295
+ const unresolvedExpressionCount = (codeCounts.get('COMPONENT_VALUE_EXPRESSION_UNRESOLVED') ?? 0) +
296
+ (codeCounts.get('COMPONENT_FOOTPRINT_EXPRESSION_UNRESOLVED') ?? 0);
297
+ return ImportedDesignAuditSchema.parse({
298
+ schemaVersion: 'imported-design-audit/v1',
299
+ status: auditStatus(errorCount, warningCount),
300
+ readOnly: true,
301
+ safeToNormalize: errorCount === 0 && !sourceTruncated,
302
+ modelSummary: model.summary,
303
+ summary: {
304
+ findingCount: findings.length,
305
+ errorCount,
306
+ warningCount,
307
+ infoCount,
308
+ importedNetCount: model.nets.filter((net) => net.imported).length,
309
+ aliasedNetCount: model.nets.filter((net) => net.rawNetNames.length > 1).length,
310
+ unannotatedComponentCount: codeCounts.get('COMPONENT_UNANNOTATED') ?? 0,
311
+ missingFootprintCount: codeCounts.get('COMPONENT_MISSING_FOOTPRINT') ?? 0,
312
+ missingValueCount: codeCounts.get('COMPONENT_MISSING_VALUE') ?? 0,
313
+ duplicateReferenceCount: codeCounts.get('DUPLICATE_COMPONENT_REFERENCE') ?? 0,
314
+ ambiguousBomCount: codeCounts.get('BOM_CLASSIFICATION_AMBIGUOUS') ?? 0,
315
+ unresolvedExpressionCount,
316
+ },
317
+ findings,
318
+ normalizationPreview: {
319
+ netAliases: model.nets
320
+ .filter((net) => net.imported || net.rawNetNames.length > 1)
321
+ .map((net) => ({
322
+ canonicalNetName: net.canonicalNetName,
323
+ rawNetNames: net.rawNetNames,
324
+ kind: net.kind,
325
+ rules: net.normalizationRules,
326
+ })),
327
+ componentRepairs,
328
+ },
329
+ });
330
+ }
331
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/schematic-model/audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from './model.js';
2
+ export * from './net-names.js';
3
+ export * from './normalize.js';
4
+ export * from './audit.js';
5
+ export * from './normalization-plan.js';
@@ -0,0 +1,6 @@
1
+ export * from './model.js';
2
+ export * from './net-names.js';
3
+ export * from './normalize.js';
4
+ export * from './audit.js';
5
+ export * from './normalization-plan.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schematic-model/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,206 @@
1
+ import { z } from 'zod';
2
+ export declare const ComponentKindSchema: z.ZodEnum<{
3
+ unknown: "unknown";
4
+ part: "part";
5
+ "power-symbol": "power-symbol";
6
+ "power-flag": "power-flag";
7
+ "net-label": "net-label";
8
+ "net-port": "net-port";
9
+ "sheet-frame": "sheet-frame";
10
+ annotation: "annotation";
11
+ helper: "helper";
12
+ }>;
13
+ export type ComponentKind = z.infer<typeof ComponentKindSchema>;
14
+ export declare const SymbolSourceSchema: z.ZodEnum<{
15
+ unknown: "unknown";
16
+ native: "native";
17
+ imported: "imported";
18
+ }>;
19
+ export type SymbolSource = z.infer<typeof SymbolSourceSchema>;
20
+ export declare const NetKindSchema: z.ZodEnum<{
21
+ signal: "signal";
22
+ power: "power";
23
+ ground: "ground";
24
+ "power-flag": "power-flag";
25
+ unnamed: "unnamed";
26
+ }>;
27
+ export type NetKind = z.infer<typeof NetKindSchema>;
28
+ export declare const CanonicalNodeSchema: z.ZodObject<{
29
+ componentRef: z.ZodString;
30
+ pin: z.ZodString;
31
+ x: z.ZodOptional<z.ZodNumber>;
32
+ y: z.ZodOptional<z.ZodNumber>;
33
+ source: z.ZodOptional<z.ZodString>;
34
+ }, z.core.$strip>;
35
+ export type CanonicalNode = z.infer<typeof CanonicalNodeSchema>;
36
+ export declare const CanonicalNetSchema: z.ZodObject<{
37
+ id: z.ZodString;
38
+ canonicalNetName: z.ZodString;
39
+ rawNetNames: z.ZodArray<z.ZodString>;
40
+ kind: z.ZodEnum<{
41
+ signal: "signal";
42
+ power: "power";
43
+ ground: "ground";
44
+ "power-flag": "power-flag";
45
+ unnamed: "unnamed";
46
+ }>;
47
+ nodes: z.ZodArray<z.ZodObject<{
48
+ componentRef: z.ZodString;
49
+ pin: z.ZodString;
50
+ x: z.ZodOptional<z.ZodNumber>;
51
+ y: z.ZodOptional<z.ZodNumber>;
52
+ source: z.ZodOptional<z.ZodString>;
53
+ }, z.core.$strip>>;
54
+ normalizationRules: z.ZodArray<z.ZodString>;
55
+ imported: z.ZodBoolean;
56
+ }, z.core.$strip>;
57
+ export type CanonicalNet = z.infer<typeof CanonicalNetSchema>;
58
+ export declare const CanonicalComponentSchema: z.ZodObject<{
59
+ canonicalComponentId: z.ZodString;
60
+ runtimePrimitiveId: z.ZodOptional<z.ZodString>;
61
+ reference: z.ZodString;
62
+ rawReference: z.ZodString;
63
+ annotated: z.ZodBoolean;
64
+ unit: z.ZodOptional<z.ZodString>;
65
+ symbolSource: z.ZodEnum<{
66
+ unknown: "unknown";
67
+ native: "native";
68
+ imported: "imported";
69
+ }>;
70
+ componentKind: z.ZodEnum<{
71
+ unknown: "unknown";
72
+ part: "part";
73
+ "power-symbol": "power-symbol";
74
+ "power-flag": "power-flag";
75
+ "net-label": "net-label";
76
+ "net-port": "net-port";
77
+ "sheet-frame": "sheet-frame";
78
+ annotation: "annotation";
79
+ helper: "helper";
80
+ }>;
81
+ bomEligible: z.ZodBoolean;
82
+ electricalEligible: z.ZodBoolean;
83
+ rawValue: z.ZodString;
84
+ value: z.ZodString;
85
+ rawFootprint: z.ZodString;
86
+ footprint: z.ZodString;
87
+ manufacturerPart: z.ZodOptional<z.ZodString>;
88
+ manufacturer: z.ZodOptional<z.ZodString>;
89
+ lcsc: z.ZodOptional<z.ZodString>;
90
+ datasheet: z.ZodOptional<z.ZodString>;
91
+ deviceName: z.ZodOptional<z.ZodString>;
92
+ symbolName: z.ZodOptional<z.ZodString>;
93
+ x: z.ZodOptional<z.ZodNumber>;
94
+ y: z.ZodOptional<z.ZodNumber>;
95
+ rotation: z.ZodOptional<z.ZodNumber>;
96
+ }, z.core.$strip>;
97
+ export type CanonicalComponent = z.infer<typeof CanonicalComponentSchema>;
98
+ export declare const ModelDiagnosticSchema: z.ZodObject<{
99
+ code: z.ZodString;
100
+ severity: z.ZodEnum<{
101
+ info: "info";
102
+ error: "error";
103
+ warning: "warning";
104
+ }>;
105
+ message: z.ZodString;
106
+ componentId: z.ZodOptional<z.ZodString>;
107
+ componentRef: z.ZodOptional<z.ZodString>;
108
+ netName: z.ZodOptional<z.ZodString>;
109
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
110
+ }, z.core.$strip>;
111
+ export type ModelDiagnostic = z.infer<typeof ModelDiagnosticSchema>;
112
+ export declare const SchematicDocumentSchema: z.ZodObject<{
113
+ projectId: z.ZodOptional<z.ZodString>;
114
+ schematicName: z.ZodOptional<z.ZodString>;
115
+ pageName: z.ZodOptional<z.ZodString>;
116
+ }, z.core.$strip>;
117
+ export type SchematicDocument = z.infer<typeof SchematicDocumentSchema>;
118
+ export declare const SchematicModelSchema: z.ZodObject<{
119
+ schemaVersion: z.ZodLiteral<"schematic-model/v1">;
120
+ document: z.ZodObject<{
121
+ projectId: z.ZodOptional<z.ZodString>;
122
+ schematicName: z.ZodOptional<z.ZodString>;
123
+ pageName: z.ZodOptional<z.ZodString>;
124
+ }, z.core.$strip>;
125
+ components: z.ZodArray<z.ZodObject<{
126
+ canonicalComponentId: z.ZodString;
127
+ runtimePrimitiveId: z.ZodOptional<z.ZodString>;
128
+ reference: z.ZodString;
129
+ rawReference: z.ZodString;
130
+ annotated: z.ZodBoolean;
131
+ unit: z.ZodOptional<z.ZodString>;
132
+ symbolSource: z.ZodEnum<{
133
+ unknown: "unknown";
134
+ native: "native";
135
+ imported: "imported";
136
+ }>;
137
+ componentKind: z.ZodEnum<{
138
+ unknown: "unknown";
139
+ part: "part";
140
+ "power-symbol": "power-symbol";
141
+ "power-flag": "power-flag";
142
+ "net-label": "net-label";
143
+ "net-port": "net-port";
144
+ "sheet-frame": "sheet-frame";
145
+ annotation: "annotation";
146
+ helper: "helper";
147
+ }>;
148
+ bomEligible: z.ZodBoolean;
149
+ electricalEligible: z.ZodBoolean;
150
+ rawValue: z.ZodString;
151
+ value: z.ZodString;
152
+ rawFootprint: z.ZodString;
153
+ footprint: z.ZodString;
154
+ manufacturerPart: z.ZodOptional<z.ZodString>;
155
+ manufacturer: z.ZodOptional<z.ZodString>;
156
+ lcsc: z.ZodOptional<z.ZodString>;
157
+ datasheet: z.ZodOptional<z.ZodString>;
158
+ deviceName: z.ZodOptional<z.ZodString>;
159
+ symbolName: z.ZodOptional<z.ZodString>;
160
+ x: z.ZodOptional<z.ZodNumber>;
161
+ y: z.ZodOptional<z.ZodNumber>;
162
+ rotation: z.ZodOptional<z.ZodNumber>;
163
+ }, z.core.$strip>>;
164
+ nets: z.ZodArray<z.ZodObject<{
165
+ id: z.ZodString;
166
+ canonicalNetName: z.ZodString;
167
+ rawNetNames: z.ZodArray<z.ZodString>;
168
+ kind: z.ZodEnum<{
169
+ signal: "signal";
170
+ power: "power";
171
+ ground: "ground";
172
+ "power-flag": "power-flag";
173
+ unnamed: "unnamed";
174
+ }>;
175
+ nodes: z.ZodArray<z.ZodObject<{
176
+ componentRef: z.ZodString;
177
+ pin: z.ZodString;
178
+ x: z.ZodOptional<z.ZodNumber>;
179
+ y: z.ZodOptional<z.ZodNumber>;
180
+ source: z.ZodOptional<z.ZodString>;
181
+ }, z.core.$strip>>;
182
+ normalizationRules: z.ZodArray<z.ZodString>;
183
+ imported: z.ZodBoolean;
184
+ }, z.core.$strip>>;
185
+ diagnostics: z.ZodArray<z.ZodObject<{
186
+ code: z.ZodString;
187
+ severity: z.ZodEnum<{
188
+ info: "info";
189
+ error: "error";
190
+ warning: "warning";
191
+ }>;
192
+ message: z.ZodString;
193
+ componentId: z.ZodOptional<z.ZodString>;
194
+ componentRef: z.ZodOptional<z.ZodString>;
195
+ netName: z.ZodOptional<z.ZodString>;
196
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
197
+ }, z.core.$strip>>;
198
+ summary: z.ZodObject<{
199
+ componentCount: z.ZodNumber;
200
+ bomComponentCount: z.ZodNumber;
201
+ electricalComponentCount: z.ZodNumber;
202
+ netCount: z.ZodNumber;
203
+ importedComponentCount: z.ZodNumber;
204
+ }, z.core.$strip>;
205
+ }, z.core.$strip>;
206
+ export type SchematicModel = z.infer<typeof SchematicModelSchema>;
@@ -0,0 +1,84 @@
1
+ import { z } from 'zod';
2
+ export const ComponentKindSchema = z.enum([
3
+ 'part',
4
+ 'power-symbol',
5
+ 'power-flag',
6
+ 'net-label',
7
+ 'net-port',
8
+ 'sheet-frame',
9
+ 'annotation',
10
+ 'helper',
11
+ 'unknown',
12
+ ]);
13
+ export const SymbolSourceSchema = z.enum(['native', 'imported', 'unknown']);
14
+ export const NetKindSchema = z.enum(['signal', 'power', 'ground', 'power-flag', 'unnamed']);
15
+ export const CanonicalNodeSchema = z.object({
16
+ componentRef: z.string(),
17
+ pin: z.string(),
18
+ x: z.number().optional(),
19
+ y: z.number().optional(),
20
+ source: z.string().optional(),
21
+ });
22
+ export const CanonicalNetSchema = z.object({
23
+ id: z.string().min(1),
24
+ canonicalNetName: z.string().min(1),
25
+ rawNetNames: z.array(z.string()).min(1),
26
+ kind: NetKindSchema,
27
+ nodes: z.array(CanonicalNodeSchema),
28
+ normalizationRules: z.array(z.string()),
29
+ imported: z.boolean(),
30
+ });
31
+ export const CanonicalComponentSchema = z.object({
32
+ canonicalComponentId: z.string().min(1),
33
+ runtimePrimitiveId: z.string().optional(),
34
+ reference: z.string(),
35
+ rawReference: z.string(),
36
+ annotated: z.boolean(),
37
+ unit: z.string().optional(),
38
+ symbolSource: SymbolSourceSchema,
39
+ componentKind: ComponentKindSchema,
40
+ bomEligible: z.boolean(),
41
+ electricalEligible: z.boolean(),
42
+ rawValue: z.string(),
43
+ value: z.string(),
44
+ rawFootprint: z.string(),
45
+ footprint: z.string(),
46
+ manufacturerPart: z.string().optional(),
47
+ manufacturer: z.string().optional(),
48
+ lcsc: z.string().optional(),
49
+ datasheet: z.string().optional(),
50
+ deviceName: z.string().optional(),
51
+ symbolName: z.string().optional(),
52
+ x: z.number().optional(),
53
+ y: z.number().optional(),
54
+ rotation: z.number().optional(),
55
+ });
56
+ export const ModelDiagnosticSchema = z.object({
57
+ code: z.string().min(1),
58
+ severity: z.enum(['info', 'warning', 'error']),
59
+ message: z.string().min(1),
60
+ componentId: z.string().optional(),
61
+ componentRef: z.string().optional(),
62
+ netName: z.string().optional(),
63
+ details: z.record(z.string(), z.unknown()).optional(),
64
+ });
65
+ export const SchematicDocumentSchema = z.object({
66
+ projectId: z.string().optional(),
67
+ schematicName: z.string().optional(),
68
+ pageName: z.string().optional(),
69
+ });
70
+ export const SchematicModelSchema = z.object({
71
+ schemaVersion: z.literal('schematic-model/v1'),
72
+ document: SchematicDocumentSchema,
73
+ components: z.array(CanonicalComponentSchema),
74
+ nets: z.array(CanonicalNetSchema),
75
+ diagnostics: z.array(ModelDiagnosticSchema),
76
+ summary: z.object({
77
+ componentCount: z.number().int().nonnegative(),
78
+ bomComponentCount: z.number().int().nonnegative(),
79
+ electricalComponentCount: z.number().int().nonnegative(),
80
+ netCount: z.number().int().nonnegative(),
81
+ importedComponentCount: z.number().int().nonnegative(),
82
+ }),
83
+ });
84
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/schematic-model/model.ts"],"names":[],"mappings":"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"}