@intelligentelectron/pcb-lens 0.0.3 → 0.0.5

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 (83) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/cli/commands.js +1 -1
  3. package/dist/cli/commands.js.map +1 -1
  4. package/dist/cli/updater.d.ts +0 -1
  5. package/dist/cli/updater.d.ts.map +1 -1
  6. package/dist/cli/updater.js +1 -2
  7. package/dist/cli/updater.js.map +1 -1
  8. package/dist/cli/version.d.ts.map +1 -0
  9. package/dist/{version.js → cli/version.js} +1 -1
  10. package/dist/cli/version.js.map +1 -0
  11. package/dist/index.js +4 -7
  12. package/dist/index.js.map +1 -1
  13. package/dist/server.d.ts.map +1 -1
  14. package/dist/server.js +19 -133
  15. package/dist/server.js.map +1 -1
  16. package/dist/tools/export-cadence-board.d.ts +8 -0
  17. package/dist/tools/export-cadence-board.d.ts.map +1 -0
  18. package/dist/tools/export-cadence-board.js +108 -0
  19. package/dist/tools/export-cadence-board.js.map +1 -0
  20. package/dist/tools/export-cadence-constraints.d.ts +7 -0
  21. package/dist/tools/export-cadence-constraints.d.ts.map +1 -0
  22. package/dist/tools/export-cadence-constraints.js +93 -0
  23. package/dist/tools/export-cadence-constraints.js.map +1 -0
  24. package/dist/tools/get-design-overview.d.ts +5 -0
  25. package/dist/tools/get-design-overview.d.ts.map +1 -0
  26. package/dist/tools/get-design-overview.js +103 -0
  27. package/dist/tools/get-design-overview.js.map +1 -0
  28. package/dist/tools/lib/async-mutex.d.ts.map +1 -0
  29. package/dist/tools/lib/async-mutex.js.map +1 -0
  30. package/dist/tools/lib/cadence.d.ts +24 -0
  31. package/dist/tools/lib/cadence.d.ts.map +1 -0
  32. package/dist/tools/lib/cadence.js +58 -0
  33. package/dist/tools/lib/cadence.js.map +1 -0
  34. package/dist/{types.d.ts → tools/lib/types.d.ts} +64 -0
  35. package/dist/tools/lib/types.d.ts.map +1 -0
  36. package/dist/tools/lib/types.js.map +1 -0
  37. package/dist/tools/lib/wasm-embed.d.ts.map +1 -0
  38. package/dist/tools/lib/wasm-embed.js.map +1 -0
  39. package/dist/tools/lib/xml-utils.d.ts.map +1 -0
  40. package/dist/tools/lib/xml-utils.js.map +1 -0
  41. package/dist/tools/query-components.d.ts +5 -0
  42. package/dist/tools/query-components.d.ts.map +1 -0
  43. package/dist/tools/query-components.js +127 -0
  44. package/dist/tools/query-components.js.map +1 -0
  45. package/dist/tools/query-constraints.d.ts +5 -0
  46. package/dist/tools/query-constraints.d.ts.map +1 -0
  47. package/dist/tools/query-constraints.js +309 -0
  48. package/dist/tools/query-constraints.js.map +1 -0
  49. package/dist/tools/query-net.d.ts +5 -0
  50. package/dist/tools/query-net.d.ts.map +1 -0
  51. package/dist/tools/query-net.js +148 -0
  52. package/dist/tools/query-net.js.map +1 -0
  53. package/dist/tools/render-net.d.ts +5 -0
  54. package/dist/tools/render-net.d.ts.map +1 -0
  55. package/dist/tools/render-net.js +683 -0
  56. package/dist/tools/render-net.js.map +1 -0
  57. package/dist/tools/shared.d.ts +20 -0
  58. package/dist/tools/shared.d.ts.map +1 -0
  59. package/dist/tools/shared.js +102 -0
  60. package/dist/tools/shared.js.map +1 -0
  61. package/package.json +1 -1
  62. package/dist/async-mutex.d.ts.map +0 -1
  63. package/dist/async-mutex.js.map +0 -1
  64. package/dist/service.d.ts +0 -25
  65. package/dist/service.d.ts.map +0 -1
  66. package/dist/service.js +0 -1270
  67. package/dist/service.js.map +0 -1
  68. package/dist/types.d.ts.map +0 -1
  69. package/dist/types.js.map +0 -1
  70. package/dist/version.d.ts.map +0 -1
  71. package/dist/version.js.map +0 -1
  72. package/dist/wasm-embed.d.ts.map +0 -1
  73. package/dist/wasm-embed.js.map +0 -1
  74. package/dist/xml-utils.d.ts.map +0 -1
  75. package/dist/xml-utils.js.map +0 -1
  76. /package/dist/{version.d.ts → cli/version.d.ts} +0 -0
  77. /package/dist/{async-mutex.d.ts → tools/lib/async-mutex.d.ts} +0 -0
  78. /package/dist/{async-mutex.js → tools/lib/async-mutex.js} +0 -0
  79. /package/dist/{types.js → tools/lib/types.js} +0 -0
  80. /package/dist/{wasm-embed.d.ts → tools/lib/wasm-embed.d.ts} +0 -0
  81. /package/dist/{wasm-embed.js → tools/lib/wasm-embed.js} +0 -0
  82. /package/dist/{xml-utils.d.ts → tools/lib/xml-utils.d.ts} +0 -0
  83. /package/dist/{xml-utils.js → tools/lib/xml-utils.js} +0 -0
package/CHANGELOG.md CHANGED
@@ -5,6 +5,29 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.0.5] - 2026-02-27
9
+
10
+ ### Added
11
+
12
+ - `export_cadence_constraints` tool for exporting Cadence `.brd` constraint data to `.tcfx` XML (Windows only)
13
+ - `query_constraints` tool for parsing `.tcfx` files: overview mode (section names, object counts) and section query mode (constraint objects with attributes, references, members, cross-section stackup)
14
+ - Shared Cadence utilities module (`src/tools/lib/cadence.ts`) with install detection, license mutex, and platform guard
15
+
16
+ ### Changed
17
+
18
+ - Refactored `export_cadence_board` to use shared Cadence utilities, ensuring a single mutex across all Cadence export tools
19
+ - Enforced strict module hierarchy: tool files import only from `./lib/` and `./shared.js`, no peer imports
20
+
21
+ ### Removed
22
+
23
+ - Claude Code Review and Claude CI/CD GitHub workflows
24
+
25
+ ## [0.0.4] - 2026-02-24
26
+
27
+ ### Removed
28
+
29
+ - `--no-update` CLI flag: auto-update now always runs on startup
30
+
8
31
  ## [0.0.3] - 2026-02-23
9
32
 
10
33
  ### Fixed
@@ -39,6 +62,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
39
62
  - Release automation with CI workflows and binary compilation
40
63
  - Integration tests against IPC-2581 consortium fixtures
41
64
 
65
+ [0.0.5]: https://github.com/IntelligentElectron/pcb-lens/releases/tag/v0.0.5
66
+ [0.0.4]: https://github.com/IntelligentElectron/pcb-lens/releases/tag/v0.0.4
42
67
  [0.0.3]: https://github.com/IntelligentElectron/pcb-lens/releases/tag/v0.0.3
43
68
  [0.0.2]: https://github.com/IntelligentElectron/pcb-lens/releases/tag/v0.0.2
44
69
  [0.0.1]: https://github.com/IntelligentElectron/pcb-lens/releases/tag/v0.0.1
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { existsSync, rmSync } from "node:fs";
5
5
  import { dirname } from "node:path";
6
- import { VERSION, GITHUB_REPO, BINARY_NAME } from "../version.js";
6
+ import { VERSION, GITHUB_REPO, BINARY_NAME } from "./version.js";
7
7
  import { checkForUpdate, performUpdate, isNpmInstall, getCurrentExecutablePath, } from "./updater.js";
8
8
  import { confirm } from "./prompts.js";
9
9
  import { removeFromPath } from "./shell.js";
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,6 @@
2
2
  * Auto-updater for pcb-lens server.
3
3
  *
4
4
  * Checks GitHub Releases for newer versions and self-updates on startup.
5
- * Can be disabled via --no-update CLI flag.
6
5
  */
7
6
  /** Result of an update check. */
8
7
  export interface UpdateCheckResult {
@@ -1 +1 @@
1
- {"version":3,"file":"updater.d.ts","sourceRoot":"","sources":["../../src/cli/updater.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwBH,iCAAiC;AACjC,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qCAAqC;AACrC,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,QAAO,OAG/B,CAAC;AAwEF;;GAEG;AACH,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC,iBAAiB,CA8BhE,CAAC;AAiCF;;GAEG;AACH,eAAO,MAAM,wBAAwB,QAAO,MAS3C,CAAC;AAkCF;;GAEG;AACH,eAAO,MAAM,aAAa,GACxB,aAAa,MAAM,EACnB,YAAY,MAAM,KACjB,OAAO,CAAC,YAAY,CAmEtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,QAAO,KAuBzB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,QAAa,OAAO,CAAC,OAAO,CA6BlD,CAAC"}
1
+ {"version":3,"file":"updater.d.ts","sourceRoot":"","sources":["../../src/cli/updater.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAwBH,iCAAiC;AACjC,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qCAAqC;AACrC,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,QAAO,OAG/B,CAAC;AAwEF;;GAEG;AACH,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC,iBAAiB,CA8BhE,CAAC;AAiCF;;GAEG;AACH,eAAO,MAAM,wBAAwB,QAAO,MAS3C,CAAC;AAkCF;;GAEG;AACH,eAAO,MAAM,aAAa,GACxB,aAAa,MAAM,EACnB,YAAY,MAAM,KACjB,OAAO,CAAC,YAAY,CAmEtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,QAAO,KAuBzB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,QAAa,OAAO,CAAC,OAAO,CA6BlD,CAAC"}
@@ -2,13 +2,12 @@
2
2
  * Auto-updater for pcb-lens server.
3
3
  *
4
4
  * Checks GitHub Releases for newer versions and self-updates on startup.
5
- * Can be disabled via --no-update CLI flag.
6
5
  */
7
6
  import { createWriteStream, chmodSync, renameSync, unlinkSync, existsSync, readdirSync, } from "node:fs";
8
7
  import { tmpdir } from "node:os";
9
8
  import { join, dirname, basename } from "node:path";
10
9
  import { spawn } from "node:child_process";
11
- import { VERSION, GITHUB_REPO, BINARY_NAME } from "../version.js";
10
+ import { VERSION, GITHUB_REPO, BINARY_NAME } from "./version.js";
12
11
  /**
13
12
  * Detect if running as an npm global install or via npx.
14
13
  * npm installs run from node_modules, not as compiled binaries.
@@ -1 +1 @@
1
- {"version":3,"file":"updater.js","sourceRoot":"","sources":["../../src/cli/updater.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"updater.js","sourceRoot":"","sources":["../../src/cli/updater.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/cli/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,qCAAqC;AACrC,eAAO,MAAM,OAAO,QAahB,CAAC;AAEL,8CAA8C;AAC9C,eAAO,MAAM,WAAW,iCAAiC,CAAC;AAE1D,+CAA+C;AAC/C,eAAO,MAAM,WAAW,aAAa,CAAC"}
@@ -11,7 +11,7 @@ export const VERSION = (() => {
11
11
  // Node.js/npm: read from package.json
12
12
  try {
13
13
  const require = createRequire(import.meta.url);
14
- const pkg = require("../package.json");
14
+ const pkg = require("../../package.json");
15
15
  return pkg.version;
16
16
  }
17
17
  catch {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/cli/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAK5C,qCAAqC;AACrC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE;IAC3B,4CAA4C;IAC5C,IAAI,OAAO,aAAa,KAAK,WAAW,EAAE,CAAC;QACzC,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,sCAAsC;IACtC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;QACjE,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,WAAW,CAAC;IACrB,CAAC;AACH,CAAC,CAAC,EAAE,CAAC;AAEL,8CAA8C;AAC9C,MAAM,CAAC,MAAM,WAAW,GAAG,8BAA8B,CAAC;AAE1D,+CAA+C;AAC/C,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC"}
package/dist/index.js CHANGED
@@ -45,13 +45,10 @@ const main = async () => {
45
45
  console.log("Run with --help for available options.");
46
46
  return;
47
47
  }
48
- // Auto-update on startup (unless --no-update flag is present)
49
- if (!args.includes("--no-update")) {
50
- const updated = await autoUpdate();
51
- if (updated) {
52
- // Re-execute with the new binary
53
- reexec();
54
- }
48
+ // Auto-update on startup
49
+ const updated = await autoUpdate();
50
+ if (updated) {
51
+ reexec();
55
52
  }
56
53
  await runServer();
57
54
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,YAAY,EACZ,SAAS,EACT,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,wBAAwB;IACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,YAAY,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,qBAAqB;IACrB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,SAAS,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,kBAAkB;IAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,mBAAmB,EAAE,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,qBAAqB;IACrB,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACjC,MAAM,sBAAsB,EAAE,CAAC;QAC/B,OAAO;IACT,CAAC;IAED,mFAAmF;IACnF,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CACT,mHAAmH,CACpH,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,8DAA8D;IAC9D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;QACnC,IAAI,OAAO,EAAE,CAAC;YACZ,iCAAiC;YACjC,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED,MAAM,SAAS,EAAE,CAAC;AACpB,CAAC,CAAC;AAEF,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,YAAY,EACZ,SAAS,EACT,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,wBAAwB;IACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,YAAY,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,qBAAqB;IACrB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,SAAS,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,kBAAkB;IAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,mBAAmB,EAAE,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,qBAAqB;IACrB,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACjC,MAAM,sBAAsB,EAAE,CAAC;QAC/B,OAAO;IACT,CAAC;IAED,mFAAmF;IACnF,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CACT,mHAAmH,CACpH,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,yBAAyB;IACzB,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;IACnC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,EAAE,CAAC;IACX,CAAC;IAED,MAAM,SAAS,EAAE,CAAC;AACpB,CAAC,CAAC;AAEF,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoHpE;;GAEG;AACH,eAAO,MAAM,YAAY,QAAO,SA2H/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,QAAa,OAAO,CAAC,IAAI,CAI9C,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiDpE;;GAEG;AACH,eAAO,MAAM,YAAY,QAAO,SAuB/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,QAAa,OAAO,CAAC,IAAI,CAI9C,CAAC"}
package/dist/server.js CHANGED
@@ -6,13 +6,13 @@
6
6
  */
7
7
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
8
8
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
9
- import { Resvg, initWasm } from "@resvg/resvg-wasm";
10
- import { readFile } from "node:fs/promises";
11
- import { fileURLToPath } from "node:url";
12
- import { z } from "zod";
13
- import { VERSION } from "./version.js";
14
- import { getDesignOverview, queryComponents, queryNet, renderNet, exportCadenceBoard, } from "./service.js";
15
- import { isErrorResult } from "./types.js";
9
+ import { VERSION } from "./cli/version.js";
10
+ import { register as registerGetDesignOverview } from "./tools/get-design-overview.js";
11
+ import { register as registerQueryComponents } from "./tools/query-components.js";
12
+ import { register as registerQueryNet } from "./tools/query-net.js";
13
+ import { register as registerExportCadenceBoard } from "./tools/export-cadence-board.js";
14
+ import { register as registerExportCadenceConstraints } from "./tools/export-cadence-constraints.js";
15
+ import { register as registerQueryConstraints } from "./tools/query-constraints.js";
16
16
  // =============================================================================
17
17
  // Server Instructions
18
18
  // =============================================================================
@@ -25,10 +25,11 @@ Supports IPC-2581 XML files (RevA, RevB, RevC) exported from any compliant EDA t
25
25
  ## Workflow Guidance
26
26
 
27
27
  1. If starting from a Cadence Allegro .brd file, use \`export_cadence_board\` to generate the IPC-2581 XML first (Windows only)
28
- 2. Use \`get_design_overview\` first to understand the design structure, layer stackup, and size
29
- 3. Use \`query_components\` to find component placements by refdes pattern (regex)
30
- 4. Use \`query_net\` to trace a net's routing, trace widths, vias, and connected pins
31
- 5. Use \`render_net\` to visualize a net's routing geometry as SVG
28
+ 2. To access design constraints (trace width rules, spacing rules, net classes, stackup), use \`export_cadence_constraints\` to generate a .tcfx file, then \`query_constraints\` to read it
29
+ 3. Use \`get_design_overview\` first to understand the design structure, layer stackup, and size
30
+ 4. Use \`query_components\` to find component placements by refdes pattern (regex)
31
+ 5. Use \`query_net\` to trace a net's routing, trace widths, vias, and connected pins
32
+ 6. Use \`render_net\` to visualize a net's routing geometry as SVG
32
33
 
33
34
  ## Tool Usage Tips
34
35
 
@@ -46,51 +47,6 @@ Results with an \`error\` field indicate a problem:
46
47
  - Invalid regex: Check pattern syntax
47
48
  `.trim();
48
49
  // =============================================================================
49
- // Helper Functions
50
- // =============================================================================
51
- /**
52
- * Format a result as MCP tool response content.
53
- */
54
- const formatResult = (result) => ({
55
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
56
- });
57
- let wasmInitialized = false;
58
- const resolveWasmBuffer = async () => {
59
- if (typeof BUILD_VERSION !== "undefined") {
60
- const { default: wasmPath } = await import("./wasm-embed.js");
61
- return readFile(wasmPath);
62
- }
63
- const wasmUrl = import.meta.resolve("@resvg/resvg-wasm/index_bg.wasm");
64
- return readFile(fileURLToPath(wasmUrl));
65
- };
66
- const ensureWasmInitialized = async () => {
67
- if (wasmInitialized)
68
- return;
69
- await initWasm(await resolveWasmBuffer());
70
- wasmInitialized = true;
71
- };
72
- /**
73
- * Render SVG to PNG using resvg-wasm, return as MCP image content + stats text.
74
- */
75
- const formatRenderResult = async (result) => {
76
- await ensureWasmInitialized();
77
- const resvg = new Resvg(result.svg, { fitTo: { mode: "width", value: 1200 } });
78
- const png = resvg.render().asPng();
79
- return {
80
- content: [
81
- {
82
- type: "image",
83
- data: Buffer.from(png).toString("base64"),
84
- mimeType: "image/png",
85
- },
86
- {
87
- type: "text",
88
- text: JSON.stringify({ netName: result.netName, units: result.units, stats: result.stats }, null, 2),
89
- },
90
- ],
91
- };
92
- };
93
- // =============================================================================
94
50
  // Server Setup
95
51
  // =============================================================================
96
52
  /**
@@ -106,83 +62,13 @@ export const createServer = () => {
106
62
  },
107
63
  instructions: SERVER_INSTRUCTIONS,
108
64
  });
109
- // -------------------------------------------------------------------------
110
- // Tool: get_design_overview
111
- // -------------------------------------------------------------------------
112
- server.registerTool("get_design_overview", {
113
- description: "Get an overview of an IPC-2581 PCB design file: metadata, layer stackup, component/net counts, and section sizes",
114
- inputSchema: {
115
- file: z.string().describe("Path to IPC-2581 XML file"),
116
- },
117
- }, async ({ file }) => {
118
- const result = await getDesignOverview(file);
119
- return formatResult(result);
120
- });
121
- // -------------------------------------------------------------------------
122
- // Tool: query_components
123
- // -------------------------------------------------------------------------
124
- server.registerTool("query_components", {
125
- description: "Find components by refdes pattern in an IPC-2581 file. Returns placement coordinates, rotation, layer, package, and BOM data.",
126
- inputSchema: {
127
- file: z.string().describe("Path to IPC-2581 XML file"),
128
- pattern: z
129
- .string()
130
- .describe("Regex pattern for component refdes (e.g., '^U1$', '^C\\\\d+', 'R10[0-9]')"),
131
- },
132
- }, async ({ file, pattern }) => {
133
- const result = await queryComponents(file, pattern);
134
- return formatResult(result);
135
- });
136
- // -------------------------------------------------------------------------
137
- // Tool: query_net
138
- // -------------------------------------------------------------------------
139
- server.registerTool("query_net", {
140
- description: "Query a net by name pattern in an IPC-2581 file. Returns connected pins, routing per layer (trace widths, segment counts), and via information.",
141
- inputSchema: {
142
- file: z.string().describe("Path to IPC-2581 XML file"),
143
- pattern: z
144
- .string()
145
- .describe("Regex pattern for net name (e.g., '^DDR_D0$', 'CLK', '^VCC_3V3$')"),
146
- },
147
- }, async ({ file, pattern }) => {
148
- const result = await queryNet(file, pattern);
149
- return formatResult(result);
150
- });
151
- // -------------------------------------------------------------------------
152
- // Tool: render_net
153
- // -------------------------------------------------------------------------
154
- server.registerTool("render_net", {
155
- description: "Render a net's routing geometry as SVG from an IPC-2581 file. Returns an SVG showing board outline, trace paths by layer, exact SMD pad shapes, via annular rings, and pin labels.",
156
- inputSchema: {
157
- file: z.string().describe("Path to IPC-2581 XML file"),
158
- pattern: z.string().describe("Regex pattern for net name (e.g., '^VDD_3V3B$', 'CLK')"),
159
- },
160
- }, async ({ file, pattern }) => {
161
- const result = await renderNet(file, pattern);
162
- if (isErrorResult(result))
163
- return formatResult(result);
164
- return await formatRenderResult(result);
165
- });
166
- // -------------------------------------------------------------------------
167
- // Tool: export_cadence_board
168
- // -------------------------------------------------------------------------
169
- server.registerTool("export_cadence_board", {
170
- description: "Export a Cadence Allegro .brd file to IPC-2581 XML. Windows only. Requires Cadence SPB installation (auto-detected). Calls are serialized internally to avoid license conflicts.",
171
- inputSchema: {
172
- board: z.string().describe("Path to Cadence Allegro .brd file"),
173
- output: z
174
- .string()
175
- .optional()
176
- .describe("Output path (without .xml extension — Cadence appends it). Defaults to <boardname>_ipc2581.xml next to the .brd"),
177
- revision: z
178
- .enum(["B", "C"])
179
- .optional()
180
- .describe('IPC-2581 revision: "B" (1.03) or "C" (1.04, default). Rev C is richest.'),
181
- },
182
- }, async ({ board, output, revision }) => {
183
- const result = await exportCadenceBoard(board, { output, revision });
184
- return formatResult(result);
185
- });
65
+ registerGetDesignOverview(server);
66
+ registerQueryComponents(server);
67
+ registerQueryNet(server);
68
+ registerExportCadenceBoard(server);
69
+ registerExportCadenceConstraints(server);
70
+ registerQueryConstraints(server);
71
+ // TODO: register render-net once PNG output via resvg-wasm is stable in compiled binaries
186
72
  return server;
187
73
  };
188
74
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,QAAQ,IAAI,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,EAAE,QAAQ,IAAI,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,QAAQ,IAAI,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,QAAQ,IAAI,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AACrG,OAAO,EAAE,QAAQ,IAAI,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAEpF,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B3B,CAAC,IAAI,EAAE,CAAC;AAET,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAc,EAAE;IAC1C,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;QACE,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,OAAO;KACjB,EACD;QACE,YAAY,EAAE;YACZ,KAAK,EAAE,EAAE;SACV;QACD,YAAY,EAAE,mBAAmB;KAClC,CACF,CAAC;IAEF,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAClC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzB,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,gCAAgC,CAAC,MAAM,CAAC,CAAC;IACzC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,0FAA0F;IAE1F,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,IAAmB,EAAE;IACjD,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { ErrorResult, ExportCadenceBoardResult } from "./lib/types.js";
3
+ export declare const exportCadenceBoard: (brdPath: string, options?: {
4
+ output?: string;
5
+ revision?: "B" | "C";
6
+ }) => Promise<ExportCadenceBoardResult | ErrorResult>;
7
+ export declare const register: (server: McpServer) => void;
8
+ //# sourceMappingURL=export-cadence-board.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-cadence-board.d.ts","sourceRoot":"","sources":["../../src/tools/export-cadence-board.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAQ5E,eAAO,MAAM,kBAAkB,GAC7B,SAAS,MAAM,EACf,UAAU;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,GAAG,CAAA;CAAE,KAClD,OAAO,CAAC,wBAAwB,GAAG,WAAW,CAqFhD,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,QAAQ,SAAS,KAAG,IAyB5C,CAAC"}
@@ -0,0 +1,108 @@
1
+ import { stat } from "node:fs/promises";
2
+ import { exec } from "node:child_process";
3
+ import { promisify } from "node:util";
4
+ import path from "node:path";
5
+ import { z } from "zod";
6
+ import { detectCadenceInstalls, requireWindows, serializeCadenceCall } from "./lib/cadence.js";
7
+ import { formatResult } from "./shared.js";
8
+ const execAsync = promisify(exec);
9
+ const REV_B_FLAGS = "-f 1.03 -u MICRON -d -b -l -R -K -n -p -t -c -O -I -D -M -S -k -e";
10
+ const REV_C_FLAGS = "-f 1.04 -u MICRON -d -b -l -R -K -G -Y -p -t -c -O -I -D -M -A -B -C -U -k -e";
11
+ export const exportCadenceBoard = async (brdPath, options) => {
12
+ const windowsError = requireWindows("Cadence export");
13
+ if (windowsError)
14
+ return windowsError;
15
+ const resolvedBrd = path.resolve(brdPath);
16
+ if (!resolvedBrd.toLowerCase().endsWith(".brd")) {
17
+ return { error: `Expected a .brd file, got: '${path.basename(resolvedBrd)}'` };
18
+ }
19
+ try {
20
+ const s = await stat(resolvedBrd);
21
+ if (!s.isFile()) {
22
+ return { error: `'${resolvedBrd}' is not a file` };
23
+ }
24
+ }
25
+ catch {
26
+ return { error: `Board file not found: '${resolvedBrd}'` };
27
+ }
28
+ const installs = await detectCadenceInstalls("ipc2581_out.exe");
29
+ if (installs.length === 0) {
30
+ return {
31
+ error: "No Cadence SPB installation with ipc2581_out.exe found in C:/Cadence. Ensure Cadence Allegro/OrCAD PCB Editor is installed.",
32
+ };
33
+ }
34
+ const cadence = installs[0];
35
+ const revision = options?.revision ?? "C";
36
+ const flags = revision === "B" ? REV_B_FLAGS : REV_C_FLAGS;
37
+ const brdDir = path.dirname(resolvedBrd);
38
+ const brdName = path.basename(resolvedBrd, ".brd");
39
+ const outputBase = options?.output ?? path.join(brdDir, `${brdName}_ipc2581`);
40
+ const expectedOutput = outputBase.endsWith(".xml") ? outputBase : `${outputBase}.xml`;
41
+ const command = `"${cadence.exePath}" ${flags} -o "${outputBase}" "${resolvedBrd}"`;
42
+ return serializeCadenceCall(async () => {
43
+ try {
44
+ const { stdout, stderr } = await execAsync(command, {
45
+ cwd: brdDir,
46
+ timeout: 300_000,
47
+ });
48
+ const log = (stdout + stderr).trim();
49
+ if (log.includes("License checking failed. Terminating")) {
50
+ return {
51
+ error: `Cadence license check failed. Ensure a valid Allegro license is available. Log: ${log}`,
52
+ };
53
+ }
54
+ if (!log.includes("a2ipc2581 complete")) {
55
+ return {
56
+ error: `Export did not complete successfully. Log: ${log}`,
57
+ };
58
+ }
59
+ try {
60
+ const outStat = await stat(expectedOutput);
61
+ if (outStat.size < 1024) {
62
+ return {
63
+ error: `Output file is suspiciously small (${outStat.size} bytes): '${expectedOutput}'`,
64
+ };
65
+ }
66
+ }
67
+ catch {
68
+ return {
69
+ error: `Export reported success but output file not found: '${expectedOutput}'`,
70
+ };
71
+ }
72
+ return {
73
+ success: true,
74
+ outputPath: expectedOutput,
75
+ revision,
76
+ cadenceVersion: cadence.version,
77
+ log: log || undefined,
78
+ };
79
+ }
80
+ catch (err) {
81
+ const execError = err;
82
+ const combinedLog = [execError.stdout, execError.stderr].filter(Boolean).join("\n").trim();
83
+ return {
84
+ error: `Cadence ipc2581_out failed: ${execError.message ?? "Unknown error"}${combinedLog ? `\nLog: ${combinedLog}` : ""}`,
85
+ };
86
+ }
87
+ });
88
+ };
89
+ export const register = (server) => {
90
+ server.registerTool("export_cadence_board", {
91
+ description: "Export a Cadence Allegro .brd file to IPC-2581 XML. Windows only. Requires Cadence SPB installation (auto-detected). Calls are serialized internally to avoid license conflicts.",
92
+ inputSchema: {
93
+ board: z.string().describe("Path to Cadence Allegro .brd file"),
94
+ output: z
95
+ .string()
96
+ .optional()
97
+ .describe("Output path (without .xml extension — Cadence appends it). Defaults to <boardname>_ipc2581.xml next to the .brd"),
98
+ revision: z
99
+ .enum(["B", "C"])
100
+ .optional()
101
+ .describe('IPC-2581 revision: "B" (1.03) or "C" (1.04, default). Rev C is richest.'),
102
+ },
103
+ }, async ({ board, output, revision }) => {
104
+ const result = await exportCadenceBoard(board, { output, revision });
105
+ return formatResult(result);
106
+ });
107
+ };
108
+ //# sourceMappingURL=export-cadence-board.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-cadence-board.js","sourceRoot":"","sources":["../../src/tools/export-cadence-board.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { ErrorResult, ExportCadenceConstraintsResult } from "./lib/types.js";
3
+ export declare const exportCadenceConstraints: (brdPath: string, options?: {
4
+ output?: string;
5
+ }) => Promise<ExportCadenceConstraintsResult | ErrorResult>;
6
+ export declare const register: (server: McpServer) => void;
7
+ //# sourceMappingURL=export-cadence-constraints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-cadence-constraints.d.ts","sourceRoot":"","sources":["../../src/tools/export-cadence-constraints.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,WAAW,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAKlF,eAAO,MAAM,wBAAwB,GACnC,SAAS,MAAM,EACf,UAAU;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KAC5B,OAAO,CAAC,8BAA8B,GAAG,WAAW,CA0EtD,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,QAAQ,SAAS,KAAG,IAmB5C,CAAC"}
@@ -0,0 +1,93 @@
1
+ import { stat } from "node:fs/promises";
2
+ import { exec } from "node:child_process";
3
+ import { promisify } from "node:util";
4
+ import path from "node:path";
5
+ import { z } from "zod";
6
+ import { detectCadenceInstalls, requireWindows, serializeCadenceCall } from "./lib/cadence.js";
7
+ import { formatResult } from "./shared.js";
8
+ const execAsync = promisify(exec);
9
+ export const exportCadenceConstraints = async (brdPath, options) => {
10
+ const windowsError = requireWindows("Cadence constraint export");
11
+ if (windowsError)
12
+ return windowsError;
13
+ const resolvedBrd = path.resolve(brdPath);
14
+ if (!resolvedBrd.toLowerCase().endsWith(".brd")) {
15
+ return { error: `Expected a .brd file, got: '${path.basename(resolvedBrd)}'` };
16
+ }
17
+ try {
18
+ const s = await stat(resolvedBrd);
19
+ if (!s.isFile()) {
20
+ return { error: `'${resolvedBrd}' is not a file` };
21
+ }
22
+ }
23
+ catch {
24
+ return { error: `Board file not found: '${resolvedBrd}'` };
25
+ }
26
+ const installs = await detectCadenceInstalls("techfile.exe");
27
+ if (installs.length === 0) {
28
+ return {
29
+ error: "No Cadence SPB installation with techfile.exe found in C:/Cadence. Ensure Cadence Allegro/OrCAD PCB Editor is installed.",
30
+ };
31
+ }
32
+ const cadence = installs[0];
33
+ const brdDir = path.dirname(resolvedBrd);
34
+ const brdName = path.basename(resolvedBrd, ".brd");
35
+ const outputPath = options?.output ?? path.join(brdDir, `${brdName}_constraints.tcfx`);
36
+ const command = `"${cadence.exePath}" -w "${resolvedBrd}" "${outputPath}"`;
37
+ return serializeCadenceCall(async () => {
38
+ try {
39
+ const { stdout, stderr } = await execAsync(command, {
40
+ cwd: brdDir,
41
+ timeout: 120_000,
42
+ });
43
+ const log = (stdout + stderr).trim();
44
+ if (log.includes("License checking failed")) {
45
+ return {
46
+ error: `Cadence license check failed. Ensure a valid Allegro license is available. Log: ${log}`,
47
+ };
48
+ }
49
+ try {
50
+ const outStat = await stat(outputPath);
51
+ if (outStat.size < 100) {
52
+ return {
53
+ error: `Output file is suspiciously small (${outStat.size} bytes): '${outputPath}'`,
54
+ };
55
+ }
56
+ }
57
+ catch {
58
+ return {
59
+ error: `Export completed but output file not found: '${outputPath}'`,
60
+ };
61
+ }
62
+ return {
63
+ success: true,
64
+ outputPath,
65
+ cadenceVersion: cadence.version,
66
+ log: log || undefined,
67
+ };
68
+ }
69
+ catch (err) {
70
+ const execError = err;
71
+ const combinedLog = [execError.stdout, execError.stderr].filter(Boolean).join("\n").trim();
72
+ return {
73
+ error: `Cadence techfile failed: ${execError.message ?? "Unknown error"}${combinedLog ? `\nLog: ${combinedLog}` : ""}`,
74
+ };
75
+ }
76
+ });
77
+ };
78
+ export const register = (server) => {
79
+ server.registerTool("export_cadence_constraints", {
80
+ description: "Export a Cadence Allegro .brd file to .tcfx constraint XML. Windows only. Requires Cadence SPB installation (auto-detected). Calls are serialized internally to avoid license conflicts.",
81
+ inputSchema: {
82
+ board: z.string().describe("Path to Cadence Allegro .brd file"),
83
+ output: z
84
+ .string()
85
+ .optional()
86
+ .describe("Output .tcfx path. Defaults to <boardname>_constraints.tcfx next to the .brd"),
87
+ },
88
+ }, async ({ board, output }) => {
89
+ const result = await exportCadenceConstraints(board, { output });
90
+ return formatResult(result);
91
+ });
92
+ };
93
+ //# sourceMappingURL=export-cadence-constraints.js.map