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,16 @@
1
+ import { type NetKind } from './model.js';
2
+ export interface NetNameNormalization {
3
+ rawNetName: string;
4
+ canonicalNetName: string;
5
+ kind: NetKind;
6
+ changed: boolean;
7
+ imported: boolean;
8
+ rules: string[];
9
+ }
10
+ export declare function classifyCanonicalNetName(name: string): NetKind;
11
+ /**
12
+ * Normalize only well-known imported/power aliases. Arbitrary user signal names
13
+ * are preserved byte-for-byte (apart from surrounding whitespace and the
14
+ * explicit {SLASH} import token), so this function is safe for readback use.
15
+ */
16
+ export declare function normalizeNetName(input: unknown): NetNameNormalization;
@@ -0,0 +1,176 @@
1
+ const GROUND_NAMES = new Set(['GND', 'AGND', 'DGND', 'PGND', 'GNDA', 'GNDD', 'VSS', 'GROUND']);
2
+ const NAMED_POWER_PREFIXES = [
3
+ 'VCC',
4
+ 'VDD',
5
+ 'VSS',
6
+ 'VEE',
7
+ 'VIN',
8
+ 'VOUT',
9
+ 'VBUS',
10
+ 'VSYS',
11
+ 'VBAT',
12
+ 'VREF',
13
+ 'VDRV',
14
+ 'VDRIVE',
15
+ 'VMOT',
16
+ 'VUSB',
17
+ 'VCORE',
18
+ 'VIO',
19
+ 'VANA',
20
+ 'VDIG',
21
+ ];
22
+ function isAsciiDigit(char) {
23
+ return char >= '0' && char <= '9';
24
+ }
25
+ function isPowerSuffixChar(char) {
26
+ return ((char >= 'A' && char <= 'Z') ||
27
+ isAsciiDigit(char) ||
28
+ char === '_' ||
29
+ char === '+' ||
30
+ char === '-');
31
+ }
32
+ function isNumericPowerName(name) {
33
+ const upper = name.toUpperCase();
34
+ const unsigned = upper.startsWith('+') || upper.startsWith('-') ? upper.slice(1) : upper;
35
+ let index = 0;
36
+ while (index < unsigned.length && isAsciiDigit(unsigned.charAt(index)))
37
+ index += 1;
38
+ if (index === 0)
39
+ return false;
40
+ if (index === unsigned.length)
41
+ return true;
42
+ if (unsigned[index] !== 'V')
43
+ return false;
44
+ index += 1;
45
+ while (index < unsigned.length && isAsciiDigit(unsigned.charAt(index)))
46
+ index += 1;
47
+ return index === unsigned.length;
48
+ }
49
+ function isNamedPowerName(name) {
50
+ const upper = name.toUpperCase();
51
+ const prefix = NAMED_POWER_PREFIXES.find((candidate) => upper.startsWith(candidate));
52
+ if (!prefix)
53
+ return false;
54
+ for (const char of upper.slice(prefix.length)) {
55
+ if (!isPowerSuffixChar(char))
56
+ return false;
57
+ }
58
+ return true;
59
+ }
60
+ function isGroundName(name) {
61
+ return GROUND_NAMES.has(name.toUpperCase());
62
+ }
63
+ function isPowerName(name) {
64
+ return isNumericPowerName(name) || isNamedPowerName(name);
65
+ }
66
+ function isImportedPowerSuffix(name) {
67
+ return name.toUpperCase() === 'PWR_FLAG' || isGroundName(name) || isPowerName(name);
68
+ }
69
+ function canonicalizePowerRail(name) {
70
+ const upper = name.toUpperCase();
71
+ if (isGroundName(upper))
72
+ return upper === 'GROUND' || upper === 'VSS' ? 'GND' : upper;
73
+ if (!upper.startsWith('+') &&
74
+ !upper.startsWith('-') &&
75
+ upper.includes('V') &&
76
+ isNumericPowerName(upper)) {
77
+ return `+${upper}`;
78
+ }
79
+ return upper;
80
+ }
81
+ function safeNetNameInput(input) {
82
+ if (typeof input === 'string')
83
+ return input;
84
+ if (typeof input === 'number' || typeof input === 'boolean' || typeof input === 'bigint') {
85
+ return String(input);
86
+ }
87
+ return '';
88
+ }
89
+ function decodeSlashToken(value) {
90
+ if (!/\{SLASH\}/i.test(value))
91
+ return { value, changed: false };
92
+ return { value: value.replace(/\{SLASH\}/gi, '/'), changed: true };
93
+ }
94
+ function stripImportedSymbolsPrefix(value) {
95
+ const prefix = 'SYMBOLS_';
96
+ if (!value.toUpperCase().startsWith(prefix))
97
+ return { value, changed: false };
98
+ const suffix = value.slice(prefix.length);
99
+ if (!suffix || !isImportedPowerSuffix(suffix))
100
+ return { value, changed: false };
101
+ return { value: canonicalizePowerRail(suffix), changed: true };
102
+ }
103
+ function normalizeSymbolPrefix(value, prefix) {
104
+ if (!value.toUpperCase().startsWith(prefix))
105
+ return { value, changed: false };
106
+ const suffix = value.slice(prefix.length);
107
+ const recognized = prefix === 'GROUND-' ? isGroundName(suffix) : isImportedPowerSuffix(suffix);
108
+ if (!suffix || !recognized)
109
+ return { value, changed: false };
110
+ return { value: canonicalizePowerRail(suffix), changed: true };
111
+ }
112
+ function canonicalizeKnownRail(value, rules) {
113
+ if (!isGroundName(value) && !isPowerName(value) && value !== 'PWR_FLAG')
114
+ return value;
115
+ const canonical = canonicalizePowerRail(value);
116
+ if (canonical !== value) {
117
+ rules.push(isGroundName(value) ? 'canonicalize-ground-name' : 'canonicalize-power-name');
118
+ }
119
+ return canonical;
120
+ }
121
+ export function classifyCanonicalNetName(name) {
122
+ if (!name || name === 'UNNAMED')
123
+ return 'unnamed';
124
+ if (name === 'PWR_FLAG')
125
+ return 'power-flag';
126
+ if (isGroundName(name))
127
+ return 'ground';
128
+ if (isPowerName(name))
129
+ return 'power';
130
+ return 'signal';
131
+ }
132
+ /**
133
+ * Normalize only well-known imported/power aliases. Arbitrary user signal names
134
+ * are preserved byte-for-byte (apart from surrounding whitespace and the
135
+ * explicit {SLASH} import token), so this function is safe for readback use.
136
+ */
137
+ export function normalizeNetName(input) {
138
+ const rawNetName = safeNetNameInput(input);
139
+ let canonical = rawNetName.trim();
140
+ const rules = [];
141
+ let imported = false;
142
+ if (!canonical) {
143
+ canonical = 'UNNAMED';
144
+ rules.push('empty-to-unnamed');
145
+ }
146
+ const slash = decodeSlashToken(canonical);
147
+ canonical = slash.value;
148
+ if (slash.changed) {
149
+ rules.push('decode-import-slash-token');
150
+ imported = true;
151
+ }
152
+ const symbols = stripImportedSymbolsPrefix(canonical);
153
+ canonical = symbols.value;
154
+ if (symbols.changed) {
155
+ rules.push('strip-imported-symbols-power-prefix');
156
+ imported = true;
157
+ }
158
+ const ground = normalizeSymbolPrefix(canonical, 'GROUND-');
159
+ canonical = ground.value;
160
+ if (ground.changed)
161
+ rules.push('normalize-ground-symbol-name');
162
+ const power = normalizeSymbolPrefix(canonical, 'POWER-');
163
+ canonical = power.value;
164
+ if (power.changed)
165
+ rules.push('normalize-power-symbol-name');
166
+ canonical = canonicalizeKnownRail(canonical, rules);
167
+ return {
168
+ rawNetName,
169
+ canonicalNetName: canonical,
170
+ kind: classifyCanonicalNetName(canonical),
171
+ changed: canonical !== rawNetName,
172
+ imported,
173
+ rules,
174
+ };
175
+ }
176
+ //# sourceMappingURL=net-names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"net-names.js","sourceRoot":"","sources":["../../src/schematic-model/net-names.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,194 @@
1
+ import { z } from 'zod';
2
+ import { type SchematicModel } from './model.js';
3
+ export declare const NormalizationOperationKindSchema: z.ZodEnum<{
4
+ "annotate-reference": "annotate-reference";
5
+ "normalize-net-name": "normalize-net-name";
6
+ "set-component-value": "set-component-value";
7
+ "set-component-footprint": "set-component-footprint";
8
+ "classify-bom": "classify-bom";
9
+ }>;
10
+ export type NormalizationOperationKind = z.infer<typeof NormalizationOperationKindSchema>;
11
+ export declare const NormalizationComponentOverrideSchema: z.ZodObject<{
12
+ componentId: z.ZodString;
13
+ reference: z.ZodOptional<z.ZodString>;
14
+ value: z.ZodOptional<z.ZodString>;
15
+ footprint: z.ZodOptional<z.ZodString>;
16
+ bomEligible: z.ZodOptional<z.ZodBoolean>;
17
+ }, z.core.$strict>;
18
+ export type NormalizationComponentOverride = z.infer<typeof NormalizationComponentOverrideSchema>;
19
+ export declare const NormalizationPlanOptionsSchema: z.ZodObject<{
20
+ normalizeNetNames: z.ZodDefault<z.ZodBoolean>;
21
+ annotateReferences: z.ZodDefault<z.ZodBoolean>;
22
+ resolveMetadataExpressions: z.ZodDefault<z.ZodBoolean>;
23
+ sourceTruncated: z.ZodDefault<z.ZodBoolean>;
24
+ componentOverrides: z.ZodDefault<z.ZodArray<z.ZodObject<{
25
+ componentId: z.ZodString;
26
+ reference: z.ZodOptional<z.ZodString>;
27
+ value: z.ZodOptional<z.ZodString>;
28
+ footprint: z.ZodOptional<z.ZodString>;
29
+ bomEligible: z.ZodOptional<z.ZodBoolean>;
30
+ }, z.core.$strict>>>;
31
+ }, z.core.$strict>;
32
+ export type NormalizationPlanOptions = z.input<typeof NormalizationPlanOptionsSchema>;
33
+ export type ParsedNormalizationPlanOptions = z.output<typeof NormalizationPlanOptionsSchema>;
34
+ declare const NormalizationOperationSchema: z.ZodObject<{
35
+ operationId: z.ZodString;
36
+ kind: z.ZodEnum<{
37
+ "annotate-reference": "annotate-reference";
38
+ "normalize-net-name": "normalize-net-name";
39
+ "set-component-value": "set-component-value";
40
+ "set-component-footprint": "set-component-footprint";
41
+ "classify-bom": "classify-bom";
42
+ }>;
43
+ targetType: z.ZodEnum<{
44
+ component: "component";
45
+ net: "net";
46
+ }>;
47
+ targetId: z.ZodString;
48
+ selector: z.ZodRecord<z.ZodString, z.ZodString>;
49
+ before: z.ZodRecord<z.ZodString, z.ZodUnknown>;
50
+ after: z.ZodRecord<z.ZodString, z.ZodUnknown>;
51
+ automatic: z.ZodBoolean;
52
+ requiresConfirmation: z.ZodBoolean;
53
+ confidence: z.ZodEnum<{
54
+ low: "low";
55
+ medium: "medium";
56
+ high: "high";
57
+ }>;
58
+ risk: z.ZodEnum<{
59
+ low: "low";
60
+ medium: "medium";
61
+ high: "high";
62
+ }>;
63
+ reason: z.ZodString;
64
+ validationGates: z.ZodArray<z.ZodString>;
65
+ }, z.core.$strip>;
66
+ export type NormalizationOperation = z.infer<typeof NormalizationOperationSchema>;
67
+ declare const NormalizationPlanDiagnosticSchema: z.ZodObject<{
68
+ code: z.ZodString;
69
+ severity: z.ZodEnum<{
70
+ error: "error";
71
+ warning: "warning";
72
+ }>;
73
+ message: z.ZodString;
74
+ componentId: z.ZodOptional<z.ZodString>;
75
+ componentRef: z.ZodOptional<z.ZodString>;
76
+ netName: z.ZodOptional<z.ZodString>;
77
+ suggestedAction: z.ZodString;
78
+ confidence: z.ZodEnum<{
79
+ low: "low";
80
+ medium: "medium";
81
+ high: "high";
82
+ }>;
83
+ }, z.core.$strip>;
84
+ export type NormalizationPlanDiagnostic = z.infer<typeof NormalizationPlanDiagnosticSchema>;
85
+ export declare const ImportedNormalizationPlanSchema: z.ZodObject<{
86
+ schemaVersion: z.ZodLiteral<"imported-normalization-plan/v1">;
87
+ planId: z.ZodString;
88
+ modelHash: z.ZodString;
89
+ readOnly: z.ZodLiteral<true>;
90
+ status: z.ZodEnum<{
91
+ review: "review";
92
+ blocked: "blocked";
93
+ noop: "noop";
94
+ ready: "ready";
95
+ }>;
96
+ applicationReady: z.ZodBoolean;
97
+ safeToAutoApply: z.ZodBoolean;
98
+ requiresConfirmation: z.ZodBoolean;
99
+ options: z.ZodObject<{
100
+ normalizeNetNames: z.ZodDefault<z.ZodBoolean>;
101
+ annotateReferences: z.ZodDefault<z.ZodBoolean>;
102
+ resolveMetadataExpressions: z.ZodDefault<z.ZodBoolean>;
103
+ sourceTruncated: z.ZodDefault<z.ZodBoolean>;
104
+ componentOverrides: z.ZodDefault<z.ZodArray<z.ZodObject<{
105
+ componentId: z.ZodString;
106
+ reference: z.ZodOptional<z.ZodString>;
107
+ value: z.ZodOptional<z.ZodString>;
108
+ footprint: z.ZodOptional<z.ZodString>;
109
+ bomEligible: z.ZodOptional<z.ZodBoolean>;
110
+ }, z.core.$strict>>>;
111
+ }, z.core.$strict>;
112
+ summary: z.ZodObject<{
113
+ operationCount: z.ZodNumber;
114
+ automaticOperationCount: z.ZodNumber;
115
+ confirmationOperationCount: z.ZodNumber;
116
+ netRenameCount: z.ZodNumber;
117
+ referenceAnnotationCount: z.ZodNumber;
118
+ valueUpdateCount: z.ZodNumber;
119
+ footprintUpdateCount: z.ZodNumber;
120
+ bomClassificationCount: z.ZodNumber;
121
+ blockerCount: z.ZodNumber;
122
+ warningCount: z.ZodNumber;
123
+ }, z.core.$strip>;
124
+ operations: z.ZodArray<z.ZodObject<{
125
+ operationId: z.ZodString;
126
+ kind: z.ZodEnum<{
127
+ "annotate-reference": "annotate-reference";
128
+ "normalize-net-name": "normalize-net-name";
129
+ "set-component-value": "set-component-value";
130
+ "set-component-footprint": "set-component-footprint";
131
+ "classify-bom": "classify-bom";
132
+ }>;
133
+ targetType: z.ZodEnum<{
134
+ component: "component";
135
+ net: "net";
136
+ }>;
137
+ targetId: z.ZodString;
138
+ selector: z.ZodRecord<z.ZodString, z.ZodString>;
139
+ before: z.ZodRecord<z.ZodString, z.ZodUnknown>;
140
+ after: z.ZodRecord<z.ZodString, z.ZodUnknown>;
141
+ automatic: z.ZodBoolean;
142
+ requiresConfirmation: z.ZodBoolean;
143
+ confidence: z.ZodEnum<{
144
+ low: "low";
145
+ medium: "medium";
146
+ high: "high";
147
+ }>;
148
+ risk: z.ZodEnum<{
149
+ low: "low";
150
+ medium: "medium";
151
+ high: "high";
152
+ }>;
153
+ reason: z.ZodString;
154
+ validationGates: z.ZodArray<z.ZodString>;
155
+ }, z.core.$strip>>;
156
+ blockers: z.ZodArray<z.ZodObject<{
157
+ code: z.ZodString;
158
+ severity: z.ZodEnum<{
159
+ error: "error";
160
+ warning: "warning";
161
+ }>;
162
+ message: z.ZodString;
163
+ componentId: z.ZodOptional<z.ZodString>;
164
+ componentRef: z.ZodOptional<z.ZodString>;
165
+ netName: z.ZodOptional<z.ZodString>;
166
+ suggestedAction: z.ZodString;
167
+ confidence: z.ZodEnum<{
168
+ low: "low";
169
+ medium: "medium";
170
+ high: "high";
171
+ }>;
172
+ }, z.core.$strip>>;
173
+ warnings: z.ZodArray<z.ZodObject<{
174
+ code: z.ZodString;
175
+ severity: z.ZodEnum<{
176
+ error: "error";
177
+ warning: "warning";
178
+ }>;
179
+ message: z.ZodString;
180
+ componentId: z.ZodOptional<z.ZodString>;
181
+ componentRef: z.ZodOptional<z.ZodString>;
182
+ netName: z.ZodOptional<z.ZodString>;
183
+ suggestedAction: z.ZodString;
184
+ confidence: z.ZodEnum<{
185
+ low: "low";
186
+ medium: "medium";
187
+ high: "high";
188
+ }>;
189
+ }, z.core.$strip>>;
190
+ expectedPostconditions: z.ZodArray<z.ZodString>;
191
+ }, z.core.$strip>;
192
+ export type ImportedNormalizationPlan = z.infer<typeof ImportedNormalizationPlanSchema>;
193
+ export declare function previewImportedNormalization(model: SchematicModel, inputOptions?: NormalizationPlanOptions): ImportedNormalizationPlan;
194
+ export {};