@intelligentelectron/pcb-lens 0.0.5 → 0.0.7
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/CHANGELOG.md +22 -0
- package/README.md +2 -0
- package/dist/cli/commands.d.ts +5 -0
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +18 -2
- package/dist/cli/commands.js.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +3 -0
- package/dist/server.js.map +1 -1
- package/dist/telemetry.d.ts +61 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +184 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/tools/export-cadence-board.d.ts.map +1 -1
- package/dist/tools/export-cadence-board.js +3 -2
- package/dist/tools/export-cadence-board.js.map +1 -1
- package/dist/tools/export-cadence-constraints.d.ts.map +1 -1
- package/dist/tools/export-cadence-constraints.js +3 -2
- package/dist/tools/export-cadence-constraints.js.map +1 -1
- package/dist/tools/get-design-overview.d.ts.map +1 -1
- package/dist/tools/get-design-overview.js +3 -2
- package/dist/tools/get-design-overview.js.map +1 -1
- package/dist/tools/lib/types.d.ts +9 -2
- package/dist/tools/lib/types.d.ts.map +1 -1
- package/dist/tools/query-components.d.ts.map +1 -1
- package/dist/tools/query-components.js +3 -2
- package/dist/tools/query-components.js.map +1 -1
- package/dist/tools/query-constraints.d.ts.map +1 -1
- package/dist/tools/query-constraints.js +3 -2
- package/dist/tools/query-constraints.js.map +1 -1
- package/dist/tools/query-net.d.ts +2 -2
- package/dist/tools/query-net.d.ts.map +1 -1
- package/dist/tools/query-net.js +112 -51
- package/dist/tools/query-net.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,27 @@ 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.7] - 2026-02-27
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- `query_net` now extracts pins from `<LogicalNet>` sections instead of only `<LayerFeature>/<Set>`, which returned empty pin arrays
|
|
13
|
+
- `query_net` now extracts layer usage from `<PhyNetPoint>` sections, fixing empty `layersUsed` for nets without routing segments
|
|
14
|
+
- `query_net` now returns all nets matching the regex pattern instead of only the first match
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- `query_net` return type changed from single `QueryNetResult` to `QueryNetsResult` wrapper with `pattern`, `units`, and `matches` array (consistent with `query_components`)
|
|
19
|
+
- Non-matching patterns now return `{ matches: [] }` instead of an error
|
|
20
|
+
|
|
21
|
+
## [0.0.6] - 2026-02-27
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
|
|
25
|
+
- Local JSONL telemetry for usage analytics (session info and tool invocations, local-only, fire-and-forget)
|
|
26
|
+
- `--export-telemetry` CLI flag to export telemetry data as a zip file
|
|
27
|
+
- API documentation in `docs/` (tool reference, response schemas, guides)
|
|
28
|
+
|
|
8
29
|
## [0.0.5] - 2026-02-27
|
|
9
30
|
|
|
10
31
|
### Added
|
|
@@ -62,6 +83,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
62
83
|
- Release automation with CI workflows and binary compilation
|
|
63
84
|
- Integration tests against IPC-2581 consortium fixtures
|
|
64
85
|
|
|
86
|
+
[0.0.6]: https://github.com/IntelligentElectron/pcb-lens/releases/tag/v0.0.6
|
|
65
87
|
[0.0.5]: https://github.com/IntelligentElectron/pcb-lens/releases/tag/v0.0.5
|
|
66
88
|
[0.0.4]: https://github.com/IntelligentElectron/pcb-lens/releases/tag/v0.0.4
|
|
67
89
|
[0.0.3]: https://github.com/IntelligentElectron/pcb-lens/releases/tag/v0.0.3
|
package/README.md
CHANGED
|
@@ -141,6 +141,8 @@ Then enable it in **Configure Tools** (click the tools icon in Copilot chat).
|
|
|
141
141
|
|
|
142
142
|
## Documentation
|
|
143
143
|
|
|
144
|
+
See [docs/](docs/README.md) for API documentation and response schemas.
|
|
145
|
+
|
|
144
146
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for development guidelines.
|
|
145
147
|
|
|
146
148
|
---
|
package/dist/cli/commands.d.ts
CHANGED
|
@@ -20,4 +20,9 @@ export declare const handleUpdateCommand: () => Promise<void>;
|
|
|
20
20
|
* Removes the binary and PATH entries from shell rc files.
|
|
21
21
|
*/
|
|
22
22
|
export declare const handleUninstallCommand: () => Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Handle --export-telemetry command.
|
|
25
|
+
* Exports telemetry data as a zip file in the current working directory.
|
|
26
|
+
*/
|
|
27
|
+
export declare const handleExportTelemetryCommand: () => Promise<void>;
|
|
23
28
|
//# sourceMappingURL=commands.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH;;GAEG;AACH,eAAO,MAAM,YAAY,QAAO,IAE/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,QAAO,IAsB5B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,QAAa,OAAO,CAAC,IAAI,CA4CxD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAa,OAAO,CAAC,IAAI,CAiC3D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,QAAa,OAAO,CAAC,IAAI,CAQjE,CAAC"}
|
package/dist/cli/commands.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { existsSync, rmSync } from "node:fs";
|
|
5
5
|
import { dirname } from "node:path";
|
|
6
6
|
import { VERSION, GITHUB_REPO, BINARY_NAME } from "./version.js";
|
|
7
|
+
import { exportTelemetry } from "../telemetry.js";
|
|
7
8
|
import { checkForUpdate, performUpdate, isNpmInstall, getCurrentExecutablePath, } from "./updater.js";
|
|
8
9
|
import { confirm } from "./prompts.js";
|
|
9
10
|
import { removeFromPath } from "./shell.js";
|
|
@@ -29,8 +30,9 @@ OPTIONS:
|
|
|
29
30
|
--version, -v Print version and exit
|
|
30
31
|
--help, -h Show this help message
|
|
31
32
|
--update Check for and install updates
|
|
32
|
-
--uninstall
|
|
33
|
-
--
|
|
33
|
+
--uninstall Remove binary and PATH entries
|
|
34
|
+
--export-telemetry Export telemetry data as a zip file
|
|
35
|
+
--no-update Disable auto-update check on startup
|
|
34
36
|
|
|
35
37
|
MORE INFO:
|
|
36
38
|
https://github.com/${GITHUB_REPO}
|
|
@@ -110,4 +112,18 @@ export const handleUninstallCommand = async () => {
|
|
|
110
112
|
console.log("");
|
|
111
113
|
console.log(`${BINARY_NAME} has been uninstalled.`);
|
|
112
114
|
};
|
|
115
|
+
/**
|
|
116
|
+
* Handle --export-telemetry command.
|
|
117
|
+
* Exports telemetry data as a zip file in the current working directory.
|
|
118
|
+
*/
|
|
119
|
+
export const handleExportTelemetryCommand = async () => {
|
|
120
|
+
try {
|
|
121
|
+
const zipPath = await exportTelemetry();
|
|
122
|
+
console.log(zipPath);
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
console.error(error instanceof Error ? error.message : String(error));
|
|
126
|
+
process.exit(1);
|
|
127
|
+
}
|
|
128
|
+
};
|
|
113
129
|
//# sourceMappingURL=commands.js.map
|
package/dist/cli/commands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,wBAAwB,GACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAS,EAAE;IACrC,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,KAAK,OAAO,EAAE,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,GAAS,EAAE;IAClC,OAAO,CAAC,GAAG,CACT;EACF,WAAW,KAAK,OAAO;;;;;IAKrB,WAAW
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* --update Check for and install updates
|
|
12
12
|
* --uninstall Remove binary and PATH entries
|
|
13
13
|
*/
|
|
14
|
-
import { printVersion, printHelp, handleUpdateCommand, handleUninstallCommand, } from "./cli/commands.js";
|
|
14
|
+
import { printVersion, printHelp, handleUpdateCommand, handleUninstallCommand, handleExportTelemetryCommand, } from "./cli/commands.js";
|
|
15
15
|
import { autoUpdate, reexec } from "./cli/updater.js";
|
|
16
16
|
import { runServer } from "./server.js";
|
|
17
17
|
const main = async () => {
|
|
@@ -36,6 +36,11 @@ const main = async () => {
|
|
|
36
36
|
await handleUninstallCommand();
|
|
37
37
|
return;
|
|
38
38
|
}
|
|
39
|
+
// Handle --export-telemetry
|
|
40
|
+
if (args.includes("--export-telemetry")) {
|
|
41
|
+
await handleExportTelemetryCommand();
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
39
44
|
// If running in a TTY (interactive terminal), show help instead of starting server
|
|
40
45
|
if (process.stdin.isTTY) {
|
|
41
46
|
console.log("This is an MCP server that communicates via stdio.");
|
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,
|
|
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,EACtB,4BAA4B,GAC7B,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,4BAA4B;IAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACxC,MAAM,4BAA4B,EAAE,CAAC;QACrC,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"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAkDpE;;GAEG;AACH,eAAO,MAAM,YAAY,QAAO,SAuB/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,QAAa,OAAO,CAAC,IAAI,CAK9C,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -4,9 +4,11 @@
|
|
|
4
4
|
* Model Context Protocol server for querying IPC-2581 PCB layout files.
|
|
5
5
|
* Supports any EDA tool that exports IPC-2581 XML.
|
|
6
6
|
*/
|
|
7
|
+
import crypto from "node:crypto";
|
|
7
8
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
8
9
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
9
10
|
import { VERSION } from "./cli/version.js";
|
|
11
|
+
import { initTelemetry } from "./telemetry.js";
|
|
10
12
|
import { register as registerGetDesignOverview } from "./tools/get-design-overview.js";
|
|
11
13
|
import { register as registerQueryComponents } from "./tools/query-components.js";
|
|
12
14
|
import { register as registerQueryNet } from "./tools/query-net.js";
|
|
@@ -75,6 +77,7 @@ export const createServer = () => {
|
|
|
75
77
|
* Run the MCP server with stdio transport.
|
|
76
78
|
*/
|
|
77
79
|
export const runServer = async () => {
|
|
80
|
+
initTelemetry(crypto.randomUUID());
|
|
78
81
|
const server = createServer();
|
|
79
82
|
const transport = new StdioServerTransport();
|
|
80
83
|
await server.connect(transport);
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,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,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,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,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACnC,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,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local JSONL telemetry for usage analytics.
|
|
3
|
+
*
|
|
4
|
+
* Writes session and tool-call events to a local telemetry.jsonl file.
|
|
5
|
+
* All writes are fire-and-forget; errors are silently caught.
|
|
6
|
+
*/
|
|
7
|
+
export interface SessionEvent {
|
|
8
|
+
timestamp: string;
|
|
9
|
+
session_id: string;
|
|
10
|
+
version: string;
|
|
11
|
+
username: string;
|
|
12
|
+
machine: {
|
|
13
|
+
platform: string;
|
|
14
|
+
arch: string;
|
|
15
|
+
os_release: string;
|
|
16
|
+
hostname: string;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export interface ToolEvent {
|
|
20
|
+
timestamp: string;
|
|
21
|
+
session_id: string;
|
|
22
|
+
tool: string;
|
|
23
|
+
args: Record<string, unknown>;
|
|
24
|
+
duration_ms: number;
|
|
25
|
+
success: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get the install directory for telemetry storage.
|
|
29
|
+
*
|
|
30
|
+
* For compiled binaries: parent of the bin/ directory containing the executable.
|
|
31
|
+
* For npm/dev: platform-specific fallback matching install.sh conventions.
|
|
32
|
+
*/
|
|
33
|
+
export declare const getInstallDir: () => string;
|
|
34
|
+
export declare const getTelemetryPath: () => string;
|
|
35
|
+
/**
|
|
36
|
+
* Initialize telemetry for this session.
|
|
37
|
+
* Writes the one-time session event with user/machine info.
|
|
38
|
+
*/
|
|
39
|
+
export declare const initTelemetry: (id: string) => void;
|
|
40
|
+
/**
|
|
41
|
+
* Log a tool invocation event.
|
|
42
|
+
*/
|
|
43
|
+
export declare const logToolEvent: (partial: {
|
|
44
|
+
tool: string;
|
|
45
|
+
args: Record<string, unknown>;
|
|
46
|
+
duration_ms: number;
|
|
47
|
+
success: boolean;
|
|
48
|
+
}) => void;
|
|
49
|
+
type ToolHandler<T, R> = (args: T) => Promise<R>;
|
|
50
|
+
/**
|
|
51
|
+
* Wrap a tool handler to automatically log telemetry.
|
|
52
|
+
* Measures duration, detects errors in results, logs fire-and-forget.
|
|
53
|
+
*/
|
|
54
|
+
export declare const withTelemetry: <T extends Record<string, unknown>, R>(toolName: string, handler: ToolHandler<T, R>) => ToolHandler<T, R>;
|
|
55
|
+
/**
|
|
56
|
+
* Export telemetry file as a zip archive in the current working directory.
|
|
57
|
+
* Returns the path to the created zip file.
|
|
58
|
+
*/
|
|
59
|
+
export declare const exportTelemetry: () => Promise<string>;
|
|
60
|
+
export {};
|
|
61
|
+
//# sourceMappingURL=telemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AASD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,QAAO,MAkBhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,MAKnC,CAAC;AAmBF;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,IAAI,MAAM,KAAG,IAY1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB,KAAG,IAUH,CAAC;AAMF,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,EAChE,UAAU,MAAM,EAChB,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KACzB,WAAW,CAAC,CAAC,EAAE,CAAC,CAuBlB,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAa,OAAO,CAAC,MAAM,CAwBtD,CAAC"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local JSONL telemetry for usage analytics.
|
|
3
|
+
*
|
|
4
|
+
* Writes session and tool-call events to a local telemetry.jsonl file.
|
|
5
|
+
* All writes are fire-and-forget; errors are silently caught.
|
|
6
|
+
*/
|
|
7
|
+
import { appendFileSync, mkdirSync, existsSync, statSync } from "node:fs";
|
|
8
|
+
import { dirname, join } from "node:path";
|
|
9
|
+
import { userInfo, hostname, platform, arch, release } from "node:os";
|
|
10
|
+
import { execSync } from "node:child_process";
|
|
11
|
+
import { VERSION } from "./cli/version.js";
|
|
12
|
+
// =============================================================================
|
|
13
|
+
// Install directory resolution
|
|
14
|
+
// =============================================================================
|
|
15
|
+
const isCompiledBinary = () => !process.execPath.includes("node") && !process.execPath.includes("bun");
|
|
16
|
+
/**
|
|
17
|
+
* Get the install directory for telemetry storage.
|
|
18
|
+
*
|
|
19
|
+
* For compiled binaries: parent of the bin/ directory containing the executable.
|
|
20
|
+
* For npm/dev: platform-specific fallback matching install.sh conventions.
|
|
21
|
+
*/
|
|
22
|
+
export const getInstallDir = () => {
|
|
23
|
+
if (isCompiledBinary()) {
|
|
24
|
+
// execPath = <install_dir>/bin/pcb-lens
|
|
25
|
+
return dirname(dirname(process.execPath));
|
|
26
|
+
}
|
|
27
|
+
// npm/dev fallback: platform-specific data directory
|
|
28
|
+
switch (process.platform) {
|
|
29
|
+
case "darwin":
|
|
30
|
+
return join(process.env.HOME ?? userInfo().homedir, "Library/Application Support/pcb-lens");
|
|
31
|
+
case "win32":
|
|
32
|
+
return join(process.env.LOCALAPPDATA ?? join(userInfo().homedir, "AppData/Local"), "pcb-lens");
|
|
33
|
+
default:
|
|
34
|
+
return join(process.env.HOME ?? userInfo().homedir, ".local/share/pcb-lens");
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
export const getTelemetryPath = () => {
|
|
38
|
+
if (process.env.PCB_LENS_TELEMETRY_PATH) {
|
|
39
|
+
return process.env.PCB_LENS_TELEMETRY_PATH;
|
|
40
|
+
}
|
|
41
|
+
return join(getInstallDir(), "telemetry.jsonl");
|
|
42
|
+
};
|
|
43
|
+
// =============================================================================
|
|
44
|
+
// Module-level state
|
|
45
|
+
// =============================================================================
|
|
46
|
+
let sessionId;
|
|
47
|
+
const machineInfo = {
|
|
48
|
+
platform: platform(),
|
|
49
|
+
arch: arch(),
|
|
50
|
+
os_release: release(),
|
|
51
|
+
hostname: hostname(),
|
|
52
|
+
};
|
|
53
|
+
// =============================================================================
|
|
54
|
+
// Core functions
|
|
55
|
+
// =============================================================================
|
|
56
|
+
/**
|
|
57
|
+
* Initialize telemetry for this session.
|
|
58
|
+
* Writes the one-time session event with user/machine info.
|
|
59
|
+
*/
|
|
60
|
+
export const initTelemetry = (id) => {
|
|
61
|
+
sessionId = id;
|
|
62
|
+
const event = {
|
|
63
|
+
timestamp: new Date().toISOString(),
|
|
64
|
+
session_id: id,
|
|
65
|
+
version: VERSION,
|
|
66
|
+
username: getUserName(),
|
|
67
|
+
machine: machineInfo,
|
|
68
|
+
};
|
|
69
|
+
appendLine(JSON.stringify(event));
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Log a tool invocation event.
|
|
73
|
+
*/
|
|
74
|
+
export const logToolEvent = (partial) => {
|
|
75
|
+
if (!sessionId)
|
|
76
|
+
return;
|
|
77
|
+
const event = {
|
|
78
|
+
timestamp: new Date().toISOString(),
|
|
79
|
+
session_id: sessionId,
|
|
80
|
+
...partial,
|
|
81
|
+
};
|
|
82
|
+
appendLine(JSON.stringify(event));
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Wrap a tool handler to automatically log telemetry.
|
|
86
|
+
* Measures duration, detects errors in results, logs fire-and-forget.
|
|
87
|
+
*/
|
|
88
|
+
export const withTelemetry = (toolName, handler) => {
|
|
89
|
+
return async (args) => {
|
|
90
|
+
const start = Date.now();
|
|
91
|
+
let success = true;
|
|
92
|
+
try {
|
|
93
|
+
const result = await handler(args);
|
|
94
|
+
// Detect error results (objects with an "error" field in the text content)
|
|
95
|
+
if (isErrorContent(result)) {
|
|
96
|
+
success = false;
|
|
97
|
+
}
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
101
|
+
success = false;
|
|
102
|
+
throw err;
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
logToolEvent({
|
|
106
|
+
tool: toolName,
|
|
107
|
+
args: args,
|
|
108
|
+
duration_ms: Date.now() - start,
|
|
109
|
+
success,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
// =============================================================================
|
|
115
|
+
// Export
|
|
116
|
+
// =============================================================================
|
|
117
|
+
/**
|
|
118
|
+
* Export telemetry file as a zip archive in the current working directory.
|
|
119
|
+
* Returns the path to the created zip file.
|
|
120
|
+
*/
|
|
121
|
+
export const exportTelemetry = async () => {
|
|
122
|
+
const telemetryPath = getTelemetryPath();
|
|
123
|
+
if (!existsSync(telemetryPath)) {
|
|
124
|
+
throw new Error(`No telemetry file found at ${telemetryPath}`);
|
|
125
|
+
}
|
|
126
|
+
const stats = statSync(telemetryPath);
|
|
127
|
+
if (stats.size === 0) {
|
|
128
|
+
throw new Error("Telemetry file is empty");
|
|
129
|
+
}
|
|
130
|
+
const zipName = `telemetry-${new Date().toISOString().replace(/[:.]/g, "-")}.zip`;
|
|
131
|
+
const zipPath = join(process.cwd(), zipName);
|
|
132
|
+
if (process.platform === "win32") {
|
|
133
|
+
execSync(`tar -a -cf "${zipPath}" -C "${dirname(telemetryPath)}" telemetry.jsonl`, {
|
|
134
|
+
stdio: "pipe",
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
execSync(`zip -j "${zipPath}" "${telemetryPath}"`, { stdio: "pipe" });
|
|
139
|
+
}
|
|
140
|
+
return zipPath;
|
|
141
|
+
};
|
|
142
|
+
// =============================================================================
|
|
143
|
+
// Internal helpers
|
|
144
|
+
// =============================================================================
|
|
145
|
+
let dirEnsured = false;
|
|
146
|
+
const appendLine = (line) => {
|
|
147
|
+
try {
|
|
148
|
+
const filePath = getTelemetryPath();
|
|
149
|
+
if (!dirEnsured) {
|
|
150
|
+
mkdirSync(dirname(filePath), { recursive: true });
|
|
151
|
+
dirEnsured = true;
|
|
152
|
+
}
|
|
153
|
+
appendFileSync(filePath, line + "\n");
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
// silently ignore all errors
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
const getUserName = () => {
|
|
160
|
+
try {
|
|
161
|
+
return userInfo().username;
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
return "unknown";
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
/**
|
|
168
|
+
* Check if a tool result contains an error by inspecting the MCP content structure.
|
|
169
|
+
*/
|
|
170
|
+
const isErrorContent = (result) => {
|
|
171
|
+
if (typeof result !== "object" || result === null)
|
|
172
|
+
return false;
|
|
173
|
+
const r = result;
|
|
174
|
+
if (!Array.isArray(r.content) || r.content.length === 0)
|
|
175
|
+
return false;
|
|
176
|
+
try {
|
|
177
|
+
const parsed = JSON.parse(r.content[0].text ?? "");
|
|
178
|
+
return typeof parsed === "object" && parsed !== null && "error" in parsed;
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
//# sourceMappingURL=telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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;
|
|
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;AAS5E,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"}
|
|
@@ -5,6 +5,7 @@ import path from "node:path";
|
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
import { detectCadenceInstalls, requireWindows, serializeCadenceCall } from "./lib/cadence.js";
|
|
7
7
|
import { formatResult } from "./shared.js";
|
|
8
|
+
import { withTelemetry } from "../telemetry.js";
|
|
8
9
|
const execAsync = promisify(exec);
|
|
9
10
|
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
11
|
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";
|
|
@@ -100,9 +101,9 @@ export const register = (server) => {
|
|
|
100
101
|
.optional()
|
|
101
102
|
.describe('IPC-2581 revision: "B" (1.03) or "C" (1.04, default). Rev C is richest.'),
|
|
102
103
|
},
|
|
103
|
-
}, async ({ board, output, revision }) => {
|
|
104
|
+
}, withTelemetry("export_cadence_board", async ({ board, output, revision }) => {
|
|
104
105
|
const result = await exportCadenceBoard(board, { output, revision });
|
|
105
106
|
return formatResult(result);
|
|
106
|
-
});
|
|
107
|
+
}));
|
|
107
108
|
};
|
|
108
109
|
//# sourceMappingURL=export-cadence-board.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-cadence-board.js","sourceRoot":"","sources":["../../src/tools/export-cadence-board.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE/F,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"export-cadence-board.js","sourceRoot":"","sources":["../../src/tools/export-cadence-board.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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;
|
|
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;AAMlF,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"}
|
|
@@ -5,6 +5,7 @@ import path from "node:path";
|
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
import { detectCadenceInstalls, requireWindows, serializeCadenceCall } from "./lib/cadence.js";
|
|
7
7
|
import { formatResult } from "./shared.js";
|
|
8
|
+
import { withTelemetry } from "../telemetry.js";
|
|
8
9
|
const execAsync = promisify(exec);
|
|
9
10
|
export const exportCadenceConstraints = async (brdPath, options) => {
|
|
10
11
|
const windowsError = requireWindows("Cadence constraint export");
|
|
@@ -85,9 +86,9 @@ export const register = (server) => {
|
|
|
85
86
|
.optional()
|
|
86
87
|
.describe("Output .tcfx path. Defaults to <boardname>_constraints.tcfx next to the .brd"),
|
|
87
88
|
},
|
|
88
|
-
}, async ({ board, output }) => {
|
|
89
|
+
}, withTelemetry("export_cadence_constraints", async ({ board, output }) => {
|
|
89
90
|
const result = await exportCadenceConstraints(board, { output });
|
|
90
91
|
return formatResult(result);
|
|
91
|
-
});
|
|
92
|
+
}));
|
|
92
93
|
};
|
|
93
94
|
//# sourceMappingURL=export-cadence-constraints.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-cadence-constraints.js","sourceRoot":"","sources":["../../src/tools/export-cadence-constraints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE/F,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"export-cadence-constraints.js","sourceRoot":"","sources":["../../src/tools/export-cadence-constraints.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-design-overview.d.ts","sourceRoot":"","sources":["../../src/tools/get-design-overview.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAA0B,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"get-design-overview.d.ts","sourceRoot":"","sources":["../../src/tools/get-design-overview.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAA0B,MAAM,gBAAgB,CAAC;AAK1F,eAAO,MAAM,iBAAiB,GAC5B,UAAU,MAAM,KACf,OAAO,CAAC,cAAc,GAAG,WAAW,CAoGtC,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,QAAQ,SAAS,KAAG,IAe5C,CAAC"}
|
|
@@ -3,6 +3,7 @@ import path from "node:path";
|
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { attr, streamAllLines } from "./lib/xml-utils.js";
|
|
5
5
|
import { formatResult, validateFile } from "./shared.js";
|
|
6
|
+
import { withTelemetry } from "../telemetry.js";
|
|
6
7
|
export const getDesignOverview = async (filePath) => {
|
|
7
8
|
const err = await validateFile(filePath);
|
|
8
9
|
if (err)
|
|
@@ -95,9 +96,9 @@ export const register = (server) => {
|
|
|
95
96
|
inputSchema: {
|
|
96
97
|
file: z.string().describe("Path to IPC-2581 XML file"),
|
|
97
98
|
},
|
|
98
|
-
}, async ({ file }) => {
|
|
99
|
+
}, withTelemetry("get_design_overview", async ({ file }) => {
|
|
99
100
|
const result = await getDesignOverview(file);
|
|
100
101
|
return formatResult(result);
|
|
101
|
-
});
|
|
102
|
+
}));
|
|
102
103
|
};
|
|
103
104
|
//# sourceMappingURL=get-design-overview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-design-overview.js","sourceRoot":"","sources":["../../src/tools/get-design-overview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"get-design-overview.js","sourceRoot":"","sources":["../../src/tools/get-design-overview.ts"],"names":[],"mappings":"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"}
|
|
@@ -113,11 +113,10 @@ export interface RenderNetResult {
|
|
|
113
113
|
};
|
|
114
114
|
}
|
|
115
115
|
/**
|
|
116
|
-
*
|
|
116
|
+
* Per-net result from query_net tool.
|
|
117
117
|
*/
|
|
118
118
|
export interface QueryNetResult {
|
|
119
119
|
netName: string;
|
|
120
|
-
units: string;
|
|
121
120
|
pins: NetPin[];
|
|
122
121
|
routing: NetRouteInfo[];
|
|
123
122
|
vias: NetViaInfo[];
|
|
@@ -125,6 +124,14 @@ export interface QueryNetResult {
|
|
|
125
124
|
totalVias: number;
|
|
126
125
|
layersUsed: string[];
|
|
127
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Result from query_net tool (multi-match wrapper).
|
|
129
|
+
*/
|
|
130
|
+
export interface QueryNetsResult {
|
|
131
|
+
pattern: string;
|
|
132
|
+
units: string;
|
|
133
|
+
matches: QueryNetResult[];
|
|
134
|
+
}
|
|
128
135
|
/**
|
|
129
136
|
* Detected Cadence SPB installation.
|
|
130
137
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/lib/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,OAAO,KAAG,MAAM,IAAI,WACY,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/lib/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-components.d.ts","sourceRoot":"","sources":["../../src/tools/query-components.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAGV,WAAW,EACX,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"query-components.d.ts","sourceRoot":"","sources":["../../src/tools/query-components.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAGV,WAAW,EACX,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AAKxB,eAAO,MAAM,eAAe,GAC1B,UAAU,MAAM,EAChB,SAAS,MAAM,KACd,OAAO,CAAC,qBAAqB,GAAG,WAAW,CAyH7C,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,QAAQ,SAAS,KAAG,IAkB5C,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { attr, numAttr, streamAllLines } from "./lib/xml-utils.js";
|
|
3
3
|
import { extractMicronFactor, formatResult, validateFile, validatePattern } from "./shared.js";
|
|
4
|
+
import { withTelemetry } from "../telemetry.js";
|
|
4
5
|
export const queryComponents = async (filePath, pattern) => {
|
|
5
6
|
const err = await validateFile(filePath);
|
|
6
7
|
if (err)
|
|
@@ -119,9 +120,9 @@ export const register = (server) => {
|
|
|
119
120
|
.string()
|
|
120
121
|
.describe("Regex pattern for component refdes (e.g., '^U1$', '^C\\\\d+', 'R10[0-9]')"),
|
|
121
122
|
},
|
|
122
|
-
}, async ({ file, pattern }) => {
|
|
123
|
+
}, withTelemetry("query_components", async ({ file, pattern }) => {
|
|
123
124
|
const result = await queryComponents(file, pattern);
|
|
124
125
|
return formatResult(result);
|
|
125
|
-
});
|
|
126
|
+
}));
|
|
126
127
|
};
|
|
127
128
|
//# sourceMappingURL=query-components.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-components.js","sourceRoot":"","sources":["../../src/tools/query-components.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"query-components.js","sourceRoot":"","sources":["../../src/tools/query-components.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,QAAgB,EAChB,OAAe,EAC+B,EAAE;IAChD,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IAEpB,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,OAAO,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAC7C,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;IAE7B,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAEnD,wEAAwE;IACxE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAyB,CAAC;IACpD,IAAI,aAAa,GAAkB,IAAI,CAAC;IAExC,MAAM,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;QACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACpC,IAAI,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,aAAa,GAAG,MAAM,CAAC;gBACvB,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE;oBACrB,MAAM;oBACN,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE;oBAC1C,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,CAAC;oBACJ,QAAQ,EAAE,CAAC;oBACX,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE;oBACnC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;iBACnC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,aAAa,IAAI,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC;YAE5C,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7B,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7B,IAAI,CAAC,KAAK,SAAS;oBAAE,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBACzC,IAAI,CAAC,KAAK,SAAS;oBAAE,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YAC3C,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBAC3C,IAAI,QAAQ,KAAK,SAAS;oBAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACvD,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBAClC,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACnD,CAAC;IAED,+CAA+C;IAC/C,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkC,CAAC;IACrE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD,IAAI,gBAAgB,GAAa,EAAE,CAAC;IACpC,IAAI,eAAe,GAA2B,EAAE,CAAC;IACjD,IAAI,cAAkC,CAAC;IAEvC,MAAM,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;QACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,gBAAgB,GAAG,EAAE,CAAC;YACtB,eAAe,GAAG,EAAE,CAAC;YACrB,cAAc,GAAG,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAChC,IAAI,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC;YACzD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;YAC3D,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;gBAC1B,eAAe,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;YACxC,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;gBACtC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,eAAe,EAAE,CAAC,CAAC;gBACvD,IAAI,cAAc,EAAE,CAAC;oBACnB,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;YACD,gBAAgB,GAAG,EAAE,CAAC;YACtB,eAAe,GAAG,EAAE,CAAC;YACrB,cAAc,GAAG,SAAS,CAAC;QAC7B,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,wBAAwB;IACxB,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,UAAU,EAAE,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC;YACX,GAAG,SAAS;YACZ,WAAW,EAAE,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;YACxC,eAAe,EAAE,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;SACtD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAiB,EAAQ,EAAE;IAClD,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EACT,+HAA+H;QACjI,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YACtD,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,CAAC,2EAA2E,CAAC;SACzF;KACF,EACD,aAAa,CAAC,kBAAkB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;QAC5D,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACpD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-constraints.d.ts","sourceRoot":"","sources":["../../src/tools/query-constraints.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAEV,yBAAyB,EACzB,wBAAwB,EAGxB,WAAW,EACZ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"query-constraints.d.ts","sourceRoot":"","sources":["../../src/tools/query-constraints.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAEV,yBAAyB,EACzB,wBAAwB,EAGxB,WAAW,EACZ,MAAM,gBAAgB,CAAC;AA2SxB,eAAO,MAAM,gBAAgB,GAC3B,UAAU,MAAM,EAChB,UAAU,MAAM,KACf,OAAO,CAAC,yBAAyB,GAAG,wBAAwB,GAAG,WAAW,CAS5E,CAAC;AAMF,eAAO,MAAM,QAAQ,GAAI,QAAQ,SAAS,KAAG,IAqB5C,CAAC"}
|
|
@@ -3,6 +3,7 @@ import path from "node:path";
|
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { attr, numAttr, streamAllLines } from "./lib/xml-utils.js";
|
|
5
5
|
import { formatResult } from "./shared.js";
|
|
6
|
+
import { withTelemetry } from "../telemetry.js";
|
|
6
7
|
// =============================================================================
|
|
7
8
|
// File validation
|
|
8
9
|
// =============================================================================
|
|
@@ -301,9 +302,9 @@ export const register = (server) => {
|
|
|
301
302
|
.optional()
|
|
302
303
|
.describe("Section name to query (e.g., 'PhysicalCSet', 'SpacingCSet'). Omit for overview."),
|
|
303
304
|
},
|
|
304
|
-
}, async ({ file, section }) => {
|
|
305
|
+
}, withTelemetry("query_constraints", async ({ file, section }) => {
|
|
305
306
|
const result = await queryConstraints(file, section);
|
|
306
307
|
return formatResult(result);
|
|
307
|
-
});
|
|
308
|
+
}));
|
|
308
309
|
};
|
|
309
310
|
//# sourceMappingURL=query-constraints.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-constraints.js","sourceRoot":"","sources":["../../src/tools/query-constraints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AASnE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"query-constraints.js","sourceRoot":"","sources":["../../src/tools/query-constraints.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
-
import type { ErrorResult,
|
|
3
|
-
export declare const queryNet: (filePath: string, pattern: string) => Promise<
|
|
2
|
+
import type { ErrorResult, QueryNetsResult } from "./lib/types.js";
|
|
3
|
+
export declare const queryNet: (filePath: string, pattern: string) => Promise<QueryNetsResult | ErrorResult>;
|
|
4
4
|
export declare const register: (server: McpServer) => void;
|
|
5
5
|
//# sourceMappingURL=query-net.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-net.d.ts","sourceRoot":"","sources":["../../src/tools/query-net.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"query-net.d.ts","sourceRoot":"","sources":["../../src/tools/query-net.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EACV,WAAW,EAIX,eAAe,EAChB,MAAM,gBAAgB,CAAC;AAmCxB,eAAO,MAAM,QAAQ,GACnB,UAAU,MAAM,EAChB,SAAS,MAAM,KACd,OAAO,CAAC,eAAe,GAAG,WAAW,CAqMvC,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,QAAQ,SAAS,KAAG,IAkB5C,CAAC"}
|
package/dist/tools/query-net.js
CHANGED
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { attr, numAttr, streamAllLines } from "./lib/xml-utils.js";
|
|
3
3
|
import { buildLineDescDict, extractMicronFactor, formatResult, validateFile, validatePattern, } from "./shared.js";
|
|
4
|
+
import { withTelemetry } from "../telemetry.js";
|
|
5
|
+
const makeAccumulator = () => ({
|
|
6
|
+
pins: [],
|
|
7
|
+
pinsSeen: new Set(),
|
|
8
|
+
phyNetLayers: new Set(),
|
|
9
|
+
routeMap: new Map(),
|
|
10
|
+
viaMap: new Map(),
|
|
11
|
+
});
|
|
12
|
+
const addPin = (acc, refdes, pin) => {
|
|
13
|
+
const key = `${refdes}.${pin}`;
|
|
14
|
+
if (!acc.pinsSeen.has(key)) {
|
|
15
|
+
acc.pinsSeen.add(key);
|
|
16
|
+
acc.pins.push({ refdes, pin });
|
|
17
|
+
}
|
|
18
|
+
};
|
|
4
19
|
export const queryNet = async (filePath, pattern) => {
|
|
5
20
|
const err = await validateFile(filePath);
|
|
6
21
|
if (err)
|
|
@@ -10,32 +25,79 @@ export const queryNet = async (filePath, pattern) => {
|
|
|
10
25
|
return validation;
|
|
11
26
|
const { regex } = validation;
|
|
12
27
|
const factor = await extractMicronFactor(filePath);
|
|
13
|
-
// Pass 1:
|
|
14
|
-
|
|
28
|
+
// Pass 1: Discover matching nets from LogicalNet + PhyNet sections,
|
|
29
|
+
// extract pins from LogicalNet, extract layers from PhyNetPoint.
|
|
30
|
+
const accumulators = new Map();
|
|
31
|
+
let insideMatchedLogicalNet = false;
|
|
32
|
+
let insideMatchedPhyNet = false;
|
|
33
|
+
let currentLogicalNetName = "";
|
|
34
|
+
let currentPhyNetName = "";
|
|
15
35
|
await streamAllLines(filePath, (line) => {
|
|
36
|
+
// Stop once we reach LayerFeature (Pass 3 handles that)
|
|
37
|
+
if (line.includes("<LayerFeature"))
|
|
38
|
+
return false;
|
|
39
|
+
// LogicalNet pin extraction
|
|
40
|
+
if (line.includes("<LogicalNet ")) {
|
|
41
|
+
const name = attr(line, "name");
|
|
42
|
+
if (name && regex.test(name)) {
|
|
43
|
+
insideMatchedLogicalNet = true;
|
|
44
|
+
currentLogicalNetName = name;
|
|
45
|
+
if (!accumulators.has(name))
|
|
46
|
+
accumulators.set(name, makeAccumulator());
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
insideMatchedLogicalNet = false;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (insideMatchedLogicalNet) {
|
|
53
|
+
if (line.includes("<PinRef ")) {
|
|
54
|
+
const compRef = attr(line, "componentRef");
|
|
55
|
+
const pin = attr(line, "pin");
|
|
56
|
+
if (compRef && pin) {
|
|
57
|
+
addPin(accumulators.get(currentLogicalNetName), compRef, pin);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (line.includes("</LogicalNet>")) {
|
|
61
|
+
insideMatchedLogicalNet = false;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// PhyNet layer extraction
|
|
16
65
|
if (line.includes("<PhyNet ")) {
|
|
17
66
|
const name = attr(line, "name");
|
|
18
67
|
if (name && regex.test(name)) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
68
|
+
insideMatchedPhyNet = true;
|
|
69
|
+
currentPhyNetName = name;
|
|
70
|
+
if (!accumulators.has(name))
|
|
71
|
+
accumulators.set(name, makeAccumulator());
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
insideMatchedPhyNet = false;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (insideMatchedPhyNet) {
|
|
78
|
+
if (line.includes("<PhyNetPoint ")) {
|
|
79
|
+
const layerRef = attr(line, "layerRef");
|
|
80
|
+
if (layerRef) {
|
|
81
|
+
accumulators.get(currentPhyNetName).phyNetLayers.add(layerRef);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (line.includes("</PhyNet>")) {
|
|
85
|
+
insideMatchedPhyNet = false;
|
|
22
86
|
}
|
|
23
87
|
}
|
|
24
88
|
});
|
|
25
|
-
|
|
26
|
-
|
|
89
|
+
// If no nets matched, return empty matches (not an error)
|
|
90
|
+
if (accumulators.size === 0) {
|
|
91
|
+
return { pattern, units: "MICRON", matches: [] };
|
|
27
92
|
}
|
|
28
|
-
// Pass 2: Build LineDesc dictionary
|
|
93
|
+
// Pass 2: Build LineDesc dictionary
|
|
29
94
|
const lineDescDict = await buildLineDescDict(filePath);
|
|
30
|
-
// Pass 3:
|
|
31
|
-
|
|
32
|
-
const pins = [];
|
|
33
|
-
const pinsSeen = new Set();
|
|
34
|
-
const routeMap = new Map();
|
|
35
|
-
const viaMap = new Map();
|
|
95
|
+
// Pass 3: LayerFeature routing/vias for all matched nets
|
|
96
|
+
const matchedNames = new Set(accumulators.keys());
|
|
36
97
|
const skipLayers = new Set(["REF-route", "REF-both"]);
|
|
37
98
|
let currentLayerName = "";
|
|
38
99
|
let insideMatchedSet = false;
|
|
100
|
+
let currentSetNetName = "";
|
|
39
101
|
let currentSetHasPolyline = false;
|
|
40
102
|
let currentSetLineDescId;
|
|
41
103
|
let currentSetInlineWidth;
|
|
@@ -46,22 +108,20 @@ export const queryNet = async (filePath, pattern) => {
|
|
|
46
108
|
}
|
|
47
109
|
if (line.includes("<Set ")) {
|
|
48
110
|
const netName = attr(line, "net");
|
|
49
|
-
insideMatchedSet = netName
|
|
111
|
+
insideMatchedSet = Boolean(netName && matchedNames.has(netName) && !skipLayers.has(currentLayerName));
|
|
112
|
+
currentSetNetName = netName ?? "";
|
|
50
113
|
currentSetHasPolyline = false;
|
|
51
114
|
currentSetLineDescId = undefined;
|
|
52
115
|
currentSetInlineWidth = undefined;
|
|
53
116
|
currentSetGeometry = attr(line, "geometry");
|
|
54
117
|
}
|
|
55
118
|
if (insideMatchedSet) {
|
|
119
|
+
const acc = accumulators.get(currentSetNetName);
|
|
56
120
|
if (line.includes("<PinRef ")) {
|
|
57
121
|
const compRef = attr(line, "componentRef");
|
|
58
122
|
const pin = attr(line, "pin");
|
|
59
123
|
if (compRef && pin) {
|
|
60
|
-
|
|
61
|
-
if (!pinsSeen.has(key)) {
|
|
62
|
-
pinsSeen.add(key);
|
|
63
|
-
pins.push({ refdes: compRef, pin });
|
|
64
|
-
}
|
|
124
|
+
addPin(acc, compRef, pin);
|
|
65
125
|
}
|
|
66
126
|
}
|
|
67
127
|
if (line.includes("<Polyline")) {
|
|
@@ -81,15 +141,15 @@ export const queryNet = async (filePath, pattern) => {
|
|
|
81
141
|
if (platingStatus === "VIA") {
|
|
82
142
|
const diameter = numAttr(line, "diameter");
|
|
83
143
|
const key = currentSetGeometry ?? `dia_${diameter ?? "unknown"}`;
|
|
84
|
-
viaMap.set(key, (viaMap.get(key) ?? 0) + 1);
|
|
144
|
+
acc.viaMap.set(key, (acc.viaMap.get(key) ?? 0) + 1);
|
|
85
145
|
}
|
|
86
146
|
}
|
|
87
147
|
if (line.includes("</Set>")) {
|
|
88
148
|
if (currentSetHasPolyline && currentLayerName) {
|
|
89
|
-
if (!routeMap.has(currentLayerName)) {
|
|
90
|
-
routeMap.set(currentLayerName, { widths: new Set(), segments: 0 });
|
|
149
|
+
if (!acc.routeMap.has(currentLayerName)) {
|
|
150
|
+
acc.routeMap.set(currentLayerName, { widths: new Set(), segments: 0 });
|
|
91
151
|
}
|
|
92
|
-
const layerRoute = routeMap.get(currentLayerName);
|
|
152
|
+
const layerRoute = acc.routeMap.get(currentLayerName);
|
|
93
153
|
layerRoute.segments++;
|
|
94
154
|
if (currentSetLineDescId) {
|
|
95
155
|
const width = lineDescDict.get(currentSetLineDescId);
|
|
@@ -105,31 +165,32 @@ export const queryNet = async (filePath, pattern) => {
|
|
|
105
165
|
}
|
|
106
166
|
}
|
|
107
167
|
});
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
layersUsed
|
|
132
|
-
};
|
|
168
|
+
// Assemble results
|
|
169
|
+
const matches = [...accumulators.entries()]
|
|
170
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
171
|
+
.map(([netName, acc]) => {
|
|
172
|
+
const routing = [];
|
|
173
|
+
for (const [layerName, data] of acc.routeMap) {
|
|
174
|
+
routing.push({
|
|
175
|
+
layerName,
|
|
176
|
+
traceWidths: [...data.widths].sort((a, b) => a - b),
|
|
177
|
+
segmentCount: data.segments,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
const vias = [];
|
|
181
|
+
for (const [padstackRef, count] of acc.viaMap) {
|
|
182
|
+
vias.push({ padstackRef, count });
|
|
183
|
+
}
|
|
184
|
+
const totalSegments = routing.reduce((sum, r) => sum + r.segmentCount, 0);
|
|
185
|
+
const totalVias = vias.reduce((sum, v) => sum + v.count, 0);
|
|
186
|
+
// Merge PhyNetPoint layers with routing-derived layers
|
|
187
|
+
const layerSet = new Set(acc.phyNetLayers);
|
|
188
|
+
for (const r of routing)
|
|
189
|
+
layerSet.add(r.layerName);
|
|
190
|
+
const layersUsed = [...layerSet].sort();
|
|
191
|
+
return { netName, pins: acc.pins, routing, vias, totalSegments, totalVias, layersUsed };
|
|
192
|
+
});
|
|
193
|
+
return { pattern, units: "MICRON", matches };
|
|
133
194
|
};
|
|
134
195
|
export const register = (server) => {
|
|
135
196
|
server.registerTool("query_net", {
|
|
@@ -140,9 +201,9 @@ export const register = (server) => {
|
|
|
140
201
|
.string()
|
|
141
202
|
.describe("Regex pattern for net name (e.g., '^DDR_D0$', 'CLK', '^VCC_3V3$')"),
|
|
142
203
|
},
|
|
143
|
-
}, async ({ file, pattern }) => {
|
|
204
|
+
}, withTelemetry("query_net", async ({ file, pattern }) => {
|
|
144
205
|
const result = await queryNet(file, pattern);
|
|
145
206
|
return formatResult(result);
|
|
146
|
-
});
|
|
207
|
+
}));
|
|
147
208
|
};
|
|
148
209
|
//# sourceMappingURL=query-net.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-net.js","sourceRoot":"","sources":["../../src/tools/query-net.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"query-net.js","sourceRoot":"","sources":["../../src/tools/query-net.ts"],"names":[],"mappings":"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"}
|