easyeda-mcp-pro 0.20.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +84 -16
- package/dist/bom-quality/adapter.js +4 -1
- package/dist/bom-quality/adapter.js.map +1 -1
- package/dist/bom-quality/types.d.ts +2 -0
- package/dist/bom-quality/types.js.map +1 -1
- package/dist/bridge/hotswap-watcher.d.ts +12 -0
- package/dist/bridge/hotswap-watcher.js +96 -0
- package/dist/bridge/hotswap-watcher.js.map +1 -0
- package/dist/bridge/hotswap.d.ts +50 -0
- package/dist/bridge/hotswap.js +69 -0
- package/dist/bridge/hotswap.js.map +1 -0
- package/dist/bridge/manager.d.ts +20 -0
- package/dist/bridge/manager.js +144 -14
- package/dist/bridge/manager.js.map +1 -1
- package/dist/bridge/protocol.d.ts +6 -0
- package/dist/bridge/protocol.js +16 -0
- package/dist/bridge/protocol.js.map +1 -1
- package/dist/bridge/types.d.ts +41 -24
- package/dist/bridge/types.js +17 -0
- package/dist/bridge/types.js.map +1 -1
- package/dist/catalog/errors.d.ts +2 -0
- package/dist/catalog/errors.js +2 -0
- package/dist/catalog/errors.js.map +1 -1
- package/dist/catalog/index.d.ts +3 -1
- package/dist/catalog/index.js +3 -1
- package/dist/catalog/index.js.map +1 -1
- package/dist/catalog/ingest.d.ts +56 -0
- package/dist/catalog/ingest.js +166 -0
- package/dist/catalog/ingest.js.map +1 -0
- package/dist/catalog/schema.d.ts +13 -3
- package/dist/catalog/schema.js +10 -0
- package/dist/catalog/schema.js.map +1 -1
- package/dist/catalog/validation.js +25 -1
- package/dist/catalog/validation.js.map +1 -1
- package/dist/circuit/circuit-ir.d.ts +20 -20
- package/dist/circuit/component-planning.d.ts +36 -8
- package/dist/circuit/component-planning.js +78 -15
- package/dist/circuit/component-planning.js.map +1 -1
- package/dist/cli/auto-setup.js +38 -0
- package/dist/cli/auto-setup.js.map +1 -1
- package/dist/cli/local-setup.d.ts +4 -1
- package/dist/cli/local-setup.js +51 -5
- package/dist/cli/local-setup.js.map +1 -1
- package/dist/config/env.d.ts +6 -0
- package/dist/config/env.js +18 -0
- package/dist/config/env.js.map +1 -1
- package/dist/config/profiles.js +8 -8
- package/dist/config/profiles.js.map +1 -1
- package/dist/config/version.d.ts +1 -1
- package/dist/config/version.js +1 -1
- package/dist/design-rules/clearance.d.ts +33 -0
- package/dist/design-rules/clearance.js +68 -0
- package/dist/design-rules/clearance.js.map +1 -0
- package/dist/design-rules/decoupling.d.ts +40 -0
- package/dist/design-rules/decoupling.js +133 -0
- package/dist/design-rules/decoupling.js.map +1 -0
- package/dist/design-rules/dfm-checklist.d.ts +33 -0
- package/dist/design-rules/dfm-checklist.js +152 -0
- package/dist/design-rules/dfm-checklist.js.map +1 -0
- package/dist/design-rules/index.d.ts +11 -0
- package/dist/design-rules/index.js +7 -0
- package/dist/design-rules/index.js.map +1 -0
- package/dist/design-rules/protocol-routing.d.ts +32 -0
- package/dist/design-rules/protocol-routing.js +147 -0
- package/dist/design-rules/protocol-routing.js.map +1 -0
- package/dist/design-rules/trace-width.d.ts +58 -0
- package/dist/design-rules/trace-width.js +79 -0
- package/dist/design-rules/trace-width.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/live/ngspice-smoke.d.ts +27 -0
- package/dist/live/ngspice-smoke.js +106 -0
- package/dist/live/ngspice-smoke.js.map +1 -0
- package/dist/net-validation/pin-classifier.d.ts +25 -0
- package/dist/net-validation/pin-classifier.js +85 -0
- package/dist/net-validation/pin-classifier.js.map +1 -0
- package/dist/pcb-layout/floorplan.d.ts +62 -0
- package/dist/pcb-layout/floorplan.js +161 -0
- package/dist/pcb-layout/floorplan.js.map +1 -0
- package/dist/pcb-layout/index.d.ts +2 -0
- package/dist/pcb-layout/index.js +1 -0
- package/dist/pcb-layout/index.js.map +1 -1
- package/dist/pcb-layout/planner.js +1 -2
- package/dist/pcb-layout/planner.js.map +1 -1
- package/dist/power-tree/analysis.d.ts +3 -1
- package/dist/power-tree/analysis.js +2 -2
- package/dist/power-tree/analysis.js.map +1 -1
- package/dist/power-tree/index.d.ts +1 -1
- package/dist/power-tree/index.js +1 -1
- package/dist/power-tree/index.js.map +1 -1
- package/dist/remote/protocol.d.ts +2 -2
- package/dist/server/factory.js +42 -3
- package/dist/server/factory.js.map +1 -1
- package/dist/server/resources-prompts.js +59 -0
- package/dist/server/resources-prompts.js.map +1 -1
- package/dist/simulation/index.d.ts +9 -0
- package/dist/simulation/index.js +7 -0
- package/dist/simulation/index.js.map +1 -0
- package/dist/simulation/models.d.ts +17 -0
- package/dist/simulation/models.js +52 -0
- package/dist/simulation/models.js.map +1 -0
- package/dist/simulation/netlist.d.ts +15 -0
- package/dist/simulation/netlist.js +109 -0
- package/dist/simulation/netlist.js.map +1 -0
- package/dist/simulation/parser.d.ts +20 -0
- package/dist/simulation/parser.js +80 -0
- package/dist/simulation/parser.js.map +1 -0
- package/dist/simulation/runner.d.ts +21 -0
- package/dist/simulation/runner.js +49 -0
- package/dist/simulation/runner.js.map +1 -0
- package/dist/simulation/types.d.ts +123 -0
- package/dist/simulation/types.js +14 -0
- package/dist/simulation/types.js.map +1 -0
- package/dist/simulation/verify.d.ts +3 -0
- package/dist/simulation/verify.js +20 -0
- package/dist/simulation/verify.js.map +1 -0
- package/dist/storage/database.d.ts +9 -1
- package/dist/storage/database.js +86 -0
- package/dist/storage/database.js.map +1 -1
- package/dist/storage/types.d.ts +17 -0
- package/dist/tools/L0_diagnostics_api.js +332 -0
- package/dist/tools/L0_diagnostics_api.js.map +1 -1
- package/dist/tools/L0_diagnostics_core.js +94 -7
- package/dist/tools/L0_diagnostics_core.js.map +1 -1
- package/dist/tools/L1_bom_sourcing.js +30 -27
- package/dist/tools/L1_bom_sourcing.js.map +1 -1
- package/dist/tools/L1_catalog.d.ts +6 -0
- package/dist/tools/L1_catalog.js +203 -0
- package/dist/tools/L1_catalog.js.map +1 -0
- package/dist/tools/L1_design_rules.d.ts +6 -0
- package/dist/tools/L1_design_rules.js +253 -0
- package/dist/tools/L1_design_rules.js.map +1 -0
- package/dist/tools/L1_drc_erc.js +154 -16
- package/dist/tools/L1_drc_erc.js.map +1 -1
- package/dist/tools/L1_export.js +117 -16
- package/dist/tools/L1_export.js.map +1 -1
- package/dist/tools/L1_pcb_constraints.d.ts +44 -1
- package/dist/tools/L1_pcb_constraints.js +2 -2
- package/dist/tools/L1_pcb_constraints.js.map +1 -1
- package/dist/tools/L1_pcb_read.d.ts +6 -0
- package/dist/tools/L1_pcb_read.js +125 -0
- package/dist/tools/L1_pcb_read.js.map +1 -0
- package/dist/tools/L1_pcb_write.d.ts +32 -1
- package/dist/tools/L1_pcb_write.js +165 -25
- package/dist/tools/L1_pcb_write.js.map +1 -1
- package/dist/tools/L1_schematic_read.js +127 -34
- package/dist/tools/L1_schematic_read.js.map +1 -1
- package/dist/tools/L1_schematic_write.js +366 -14
- package/dist/tools/L1_schematic_write.js.map +1 -1
- package/dist/tools/L1_visual.d.ts +6 -0
- package/dist/tools/L1_visual.js +184 -0
- package/dist/tools/L1_visual.js.map +1 -0
- package/dist/tools/L2_autorouting.d.ts +6 -0
- package/dist/tools/L2_autorouting.js +487 -0
- package/dist/tools/L2_autorouting.js.map +1 -0
- package/dist/tools/L2_simulation.d.ts +7 -0
- package/dist/tools/L2_simulation.js +249 -0
- package/dist/tools/L2_simulation.js.map +1 -0
- package/dist/tools/L2_workflows.d.ts +6 -0
- package/dist/tools/L2_workflows.js +560 -0
- package/dist/tools/L2_workflows.js.map +1 -0
- package/dist/tools/register.js +14 -0
- package/dist/tools/register.js.map +1 -1
- package/dist/tools/registry.js +19 -1
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/schematic-helpers.d.ts +20 -0
- package/dist/tools/schematic-helpers.js +35 -0
- package/dist/tools/schematic-helpers.js.map +1 -0
- package/dist/tools/types.d.ts +23 -0
- package/dist/vendors/base-http-client.d.ts +8 -0
- package/dist/vendors/base-http-client.js +29 -0
- package/dist/vendors/base-http-client.js.map +1 -1
- package/dist/vendors/cache.d.ts +21 -0
- package/dist/vendors/cache.js +65 -0
- package/dist/vendors/cache.js.map +1 -0
- package/dist/vendors/lcsc/client.d.ts +46 -13
- package/dist/vendors/lcsc/client.js +199 -41
- package/dist/vendors/lcsc/client.js.map +1 -1
- package/dist/vendors/sourcing-facade.d.ts +44 -0
- package/dist/vendors/sourcing-facade.js +58 -0
- package/dist/vendors/sourcing-facade.js.map +1 -0
- package/dist/workflows/index.d.ts +3 -0
- package/dist/workflows/index.js +3 -0
- package/dist/workflows/index.js.map +1 -0
- package/dist/workflows/planner.d.ts +19 -0
- package/dist/workflows/planner.js +174 -0
- package/dist/workflows/planner.js.map +1 -0
- package/dist/workflows/types.d.ts +99 -0
- package/dist/workflows/types.js +3 -0
- package/dist/workflows/types.js.map +1 -0
- package/easyeda-bridge-extension.eext +0 -0
- package/package.json +7 -2
package/README.md
CHANGED
|
@@ -550,12 +550,12 @@ See `.env.example` for the complete list of configuration variables.
|
|
|
550
550
|
|
|
551
551
|
## MCP Tools
|
|
552
552
|
|
|
553
|
-
The server currently registers up to
|
|
553
|
+
The server currently registers up to 77 profile-gated tools. Tools are filtered by the active `TOOL_PROFILE`:
|
|
554
554
|
|
|
555
|
-
- `core`:
|
|
556
|
-
- `pro`:
|
|
557
|
-
- `full`:
|
|
558
|
-
- `dev`:
|
|
555
|
+
- `core`: 48 tools
|
|
556
|
+
- `pro`: 63 tools
|
|
557
|
+
- `full`: 73 tools
|
|
558
|
+
- `dev`: 77 tools
|
|
559
559
|
|
|
560
560
|
`core` exposes the standard workflow tools, `pro` adds manufacturing exports, `full` adds controlled documented EasyEDA API calls, and `dev` adds runtime probes for debugging.
|
|
561
561
|
|
|
@@ -694,6 +694,69 @@ Installation: Open EasyEDA Pro → **Settings** → **Extensions** → **Extensi
|
|
|
694
694
|
|
|
695
695
|
---
|
|
696
696
|
|
|
697
|
+
## Agent plugin and skills
|
|
698
|
+
|
|
699
|
+
This repository owns the product-level agent plugin and EasyEDA-specific skills for
|
|
700
|
+
EasyEDA MCP Pro. The central [`agent-tools`](https://github.com/oaslananka/agent-tools)
|
|
701
|
+
repository should catalog this plugin, but the manifest and workflow instructions live
|
|
702
|
+
here so they stay synchronized with the actual MCP server, bridge extension, tool
|
|
703
|
+
profiles, and EasyEDA runtime behavior.
|
|
704
|
+
|
|
705
|
+
| File | Purpose |
|
|
706
|
+
| ------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------- |
|
|
707
|
+
| [`.claude-plugin/plugin.json`](.claude-plugin/plugin.json) | Claude Code-valid plugin manifest for compatible agent runtimes and marketplace catalogs. |
|
|
708
|
+
| [`.mcp.json`](.mcp.json) | Project-local Claude Code MCP server configuration. |
|
|
709
|
+
| [`.codex/config.example.toml`](.codex/config.example.toml) | Codex CLI MCP configuration example. |
|
|
710
|
+
| [`.vscode/mcp.example.json`](.vscode/mcp.example.json) | VS Code / GitHub Copilot workspace MCP configuration example. |
|
|
711
|
+
| [`opencode.example.jsonc`](opencode.example.jsonc) | OpenCode project MCP configuration example. |
|
|
712
|
+
| [`.opencode/skills/`](.opencode/skills) | OpenCode-native mirrored skill definitions. |
|
|
713
|
+
| [`docs/agent-runtime-config.md`](docs/agent-runtime-config.md) | Agent runtime setup and validation matrix. |
|
|
714
|
+
| [`skills/easyeda-workflow/SKILL.md`](skills/easyeda-workflow/SKILL.md) | End-to-end EasyEDA setup, inspection, controlled write, export, and reporting workflow. |
|
|
715
|
+
| [`skills/component-search/SKILL.md`](skills/component-search/SKILL.md) | Component search, BOM review, sourcing, pricing, availability, and part-risk workflow. |
|
|
716
|
+
| [`skills/design-validation/SKILL.md`](skills/design-validation/SKILL.md) | DRC/ERC, semantic ERC, PCB constraints, production QA, export, and release-validation workflow. |
|
|
717
|
+
|
|
718
|
+
### Agent setup
|
|
719
|
+
|
|
720
|
+
EasyEDA MCP Pro can be launched with the published npm package or from a source checkout:
|
|
721
|
+
|
|
722
|
+
```bash
|
|
723
|
+
npx easyeda-mcp-pro
|
|
724
|
+
TRANSPORT=http HTTP_HOST=127.0.0.1 HTTP_PORT=3000 npx easyeda-mcp-pro
|
|
725
|
+
pnpm build && node dist/index.js
|
|
726
|
+
```
|
|
727
|
+
|
|
728
|
+
For live EasyEDA Pro workflows, install the EasyEDA bridge extension and confirm the
|
|
729
|
+
bridge is reachable with `easyeda_health_check` and `easyeda_bridge_status`. Tool
|
|
730
|
+
availability depends on `TOOL_PROFILE` and optional `TOOL_SCOPES` restrictions.
|
|
731
|
+
|
|
732
|
+
For source checkouts, run the normal validation path before publishing plugin changes:
|
|
733
|
+
|
|
734
|
+
```bash
|
|
735
|
+
python3 -m json.tool .claude-plugin/plugin.json >/dev/null
|
|
736
|
+
claude plugin validate .
|
|
737
|
+
pnpm format:check
|
|
738
|
+
pnpm typecheck
|
|
739
|
+
pnpm test
|
|
740
|
+
pnpm build
|
|
741
|
+
pnpm check:metadata
|
|
742
|
+
```
|
|
743
|
+
|
|
744
|
+
### Validation workflow
|
|
745
|
+
|
|
746
|
+
Before listing this plugin as active from `agent-tools`, verify at least one compatible
|
|
747
|
+
agent runtime can:
|
|
748
|
+
|
|
749
|
+
1. Discover `.claude-plugin/plugin.json`.
|
|
750
|
+
2. Launch or connect to `easyeda-mcp-pro` over `stdio` or HTTP.
|
|
751
|
+
3. Call `easyeda_health_check`, `easyeda_bridge_status`, or `easyeda_get_capabilities`.
|
|
752
|
+
4. Load a skill from `skills/` and follow the workflow without referencing missing tools.
|
|
753
|
+
5. Report bridge state, tool profile, ERC, DRC, BOM, export artifacts, assumptions, and
|
|
754
|
+
human-review requirements separately.
|
|
755
|
+
|
|
756
|
+
EasyEDA MCP Pro is an engineering assistant, not an autonomous manufacturing sign-off
|
|
757
|
+
authority. Generated designs, component selections, and fabrication outputs require
|
|
758
|
+
qualified human review before purchase, fabrication, or assembly.
|
|
759
|
+
|
|
697
760
|
## Development
|
|
698
761
|
|
|
699
762
|
### Prerequisites
|
|
@@ -710,15 +773,18 @@ pnpm install
|
|
|
710
773
|
cp .env.example .env
|
|
711
774
|
|
|
712
775
|
# All quality gates (lint + format + typecheck + test + build)
|
|
776
|
+
pnpm verify
|
|
777
|
+
|
|
778
|
+
# Or, if you use Go Task:
|
|
713
779
|
task verify
|
|
714
780
|
|
|
715
|
-
#
|
|
781
|
+
# Use focused checks while iterating:
|
|
716
782
|
pnpm format:check # Prettier
|
|
717
783
|
pnpm typecheck # TypeScript
|
|
718
784
|
pnpm lint # ESLint
|
|
719
785
|
|
|
720
786
|
# Test
|
|
721
|
-
pnpm test # Vitest (
|
|
787
|
+
pnpm test # Vitest (812 tests across 67 files)
|
|
722
788
|
pnpm test:coverage # With coverage report
|
|
723
789
|
|
|
724
790
|
# Golden E2E fixture smoke tests are included in `pnpm test`
|
|
@@ -739,15 +805,17 @@ pnpm inspector
|
|
|
739
805
|
|
|
740
806
|
This project includes a `Taskfile.yml` with the following commands:
|
|
741
807
|
|
|
742
|
-
| Command | Description
|
|
743
|
-
| ---------------- |
|
|
744
|
-
| `task install` | Install dependencies
|
|
745
|
-
| `task lint` | Run ESLint
|
|
746
|
-
| `task format` | Check formatting with Prettier
|
|
747
|
-
| `task typecheck` | Run TypeScript type checking
|
|
748
|
-
| `task test` | Run tests
|
|
749
|
-
| `task build` | Build the project
|
|
750
|
-
| `task verify` | Run all quality gates
|
|
808
|
+
| Command | Description |
|
|
809
|
+
| ---------------- | ---------------------------------- |
|
|
810
|
+
| `task install` | Install dependencies |
|
|
811
|
+
| `task lint` | Run ESLint |
|
|
812
|
+
| `task format` | Check formatting with Prettier |
|
|
813
|
+
| `task typecheck` | Run TypeScript type checking |
|
|
814
|
+
| `task test` | Run tests |
|
|
815
|
+
| `task build` | Build the project |
|
|
816
|
+
| `task verify` | Run all quality gates via Taskfile |
|
|
817
|
+
|
|
818
|
+
The package also exposes `pnpm verify`, which runs the same CI-equivalent local gate without requiring Go Task.
|
|
751
819
|
|
|
752
820
|
Install [Go Task](https://taskfile.dev/installation/) to use these commands.
|
|
753
821
|
|
|
@@ -174,8 +174,11 @@ export class LcscAdapter {
|
|
|
174
174
|
unitPrice,
|
|
175
175
|
currency: 'USD',
|
|
176
176
|
leadTimeDays: detail.leadTime,
|
|
177
|
+
classification: detail.classification,
|
|
177
178
|
queriedAt: now,
|
|
178
|
-
|
|
179
|
+
source: supplierSource('lcsc'),
|
|
180
|
+
cacheAgeSeconds: detail.fromCache ? (detail.cacheAgeSeconds ?? 0) : 0,
|
|
181
|
+
fromCache: detail.fromCache ?? false,
|
|
179
182
|
confidence: 'high',
|
|
180
183
|
};
|
|
181
184
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/bom-quality/adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/bom-quality/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,8 @@ export interface SupplierQueryResult {
|
|
|
42
42
|
unitPrice?: number;
|
|
43
43
|
currency?: string;
|
|
44
44
|
leadTimeDays?: number;
|
|
45
|
+
/** Supplier-specific assembly classification (e.g. LCSC/JLCPCB basic/preferred/extended). */
|
|
46
|
+
classification?: string;
|
|
45
47
|
/** ISO-8601 timestamp of this supplier response. */
|
|
46
48
|
queriedAt: string;
|
|
47
49
|
/** Data source endpoint or integration family used for provenance. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/bom-quality/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/bom-quality/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA+MH,MAAM,CAAC,MAAM,0BAA0B,GAAqB;IAC1D,iBAAiB,EAAE,GAAG;IACtB,WAAW,EAAE,KAAK;IAClB,UAAU,EAAE,IAAI;IAChB,gBAAgB,EAAE,IAAI;IACtB,sBAAsB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;IACxC,mBAAmB,EAAE,EAAE;CACxB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type EnvConfig } from '../config/env.js';
|
|
2
|
+
import { type BridgeManager } from './manager.js';
|
|
3
|
+
/**
|
|
4
|
+
* The dev hot-swap loop: while BRIDGE_HOT_SWAP_ENABLED is set and
|
|
5
|
+
* BRIDGE_HOT_SWAP_WATCH points at the built dispatcher bundle, push the bundle
|
|
6
|
+
* to the extension whenever (a) the extension (re)connects with a different
|
|
7
|
+
* build than the one on disk — e.g. after an EasyEDA restart it comes back
|
|
8
|
+
* with the stale baked dispatcher — or (b) the bundle file changes on disk
|
|
9
|
+
* (the extension build:watch rebuilt it). Combined with `tsx watch` for the
|
|
10
|
+
* server this closes the edit → run loop without any .eext re-import.
|
|
11
|
+
*/
|
|
12
|
+
export declare function startHotSwapWatcher(bridge: BridgeManager, config: EnvConfig): () => void;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { watch, existsSync } from 'node:fs';
|
|
2
|
+
import { getLogger } from '../utils/logger.js';
|
|
3
|
+
import { fetchLoaderStatus, pushDispatcher, readDispatcherArtifact } from './hotswap.js';
|
|
4
|
+
const DEBOUNCE_MS = 300;
|
|
5
|
+
/**
|
|
6
|
+
* The dev hot-swap loop: while BRIDGE_HOT_SWAP_ENABLED is set and
|
|
7
|
+
* BRIDGE_HOT_SWAP_WATCH points at the built dispatcher bundle, push the bundle
|
|
8
|
+
* to the extension whenever (a) the extension (re)connects with a different
|
|
9
|
+
* build than the one on disk — e.g. after an EasyEDA restart it comes back
|
|
10
|
+
* with the stale baked dispatcher — or (b) the bundle file changes on disk
|
|
11
|
+
* (the extension build:watch rebuilt it). Combined with `tsx watch` for the
|
|
12
|
+
* server this closes the edit → run loop without any .eext re-import.
|
|
13
|
+
*/
|
|
14
|
+
export function startHotSwapWatcher(bridge, config) {
|
|
15
|
+
const logger = getLogger();
|
|
16
|
+
const bundlePath = config.BRIDGE_HOT_SWAP_WATCH;
|
|
17
|
+
if (!config.BRIDGE_HOT_SWAP_ENABLED || !bundlePath) {
|
|
18
|
+
return () => { };
|
|
19
|
+
}
|
|
20
|
+
if (!existsSync(bundlePath)) {
|
|
21
|
+
logger.warn({ bundlePath }, 'BRIDGE_HOT_SWAP_WATCH does not exist yet; hot-swap auto-push waits for it');
|
|
22
|
+
}
|
|
23
|
+
let syncing = false;
|
|
24
|
+
let pendingResync = false;
|
|
25
|
+
let debounceTimer = null;
|
|
26
|
+
let watcher = null;
|
|
27
|
+
let stopped = false;
|
|
28
|
+
const sync = async (reason) => {
|
|
29
|
+
if (stopped || !bridge.connected)
|
|
30
|
+
return;
|
|
31
|
+
if (syncing) {
|
|
32
|
+
pendingResync = true;
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
syncing = true;
|
|
36
|
+
try {
|
|
37
|
+
const artifact = readDispatcherArtifact(bundlePath);
|
|
38
|
+
const status = await fetchLoaderStatus(bridge.call.bind(bridge));
|
|
39
|
+
if (status.hotSwapCompiled === false) {
|
|
40
|
+
logger.warn('extension build does not include hot-swap support; re-import a dev build once (pnpm --filter bridge-extension build:dev)');
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (status.buildId === artifact.buildId) {
|
|
44
|
+
logger.debug({ buildId: artifact.buildId, reason }, 'dispatcher already current');
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
logger.info({ from: status.buildId, to: artifact.buildId, reason }, 'pushing dispatcher hot-swap');
|
|
48
|
+
const result = await pushDispatcher(bridge.call.bind(bridge), artifact, config.BRIDGE_HOT_SWAP_CHUNK_BYTES);
|
|
49
|
+
logger.info({ buildId: result.buildId, methodCount: result.methodCount }, 'dispatcher hot-swap complete');
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
logger.error({ err, reason }, 'dispatcher hot-swap push failed');
|
|
53
|
+
}
|
|
54
|
+
finally {
|
|
55
|
+
syncing = false;
|
|
56
|
+
if (pendingResync) {
|
|
57
|
+
pendingResync = false;
|
|
58
|
+
void sync('resync');
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
const scheduleSync = (reason) => {
|
|
63
|
+
if (debounceTimer)
|
|
64
|
+
clearTimeout(debounceTimer);
|
|
65
|
+
debounceTimer = setTimeout(() => {
|
|
66
|
+
debounceTimer = null;
|
|
67
|
+
void sync(reason);
|
|
68
|
+
}, DEBOUNCE_MS);
|
|
69
|
+
};
|
|
70
|
+
const onConnected = () => scheduleSync('bridge connected');
|
|
71
|
+
bridge.on('connected', onConnected);
|
|
72
|
+
if (bridge.connected)
|
|
73
|
+
scheduleSync('watcher started');
|
|
74
|
+
const startFileWatcher = () => {
|
|
75
|
+
try {
|
|
76
|
+
watcher = watch(bundlePath, () => scheduleSync('bundle changed'));
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
logger.warn({ err, bundlePath }, 'could not watch dispatcher bundle; retrying in 5s');
|
|
80
|
+
setTimeout(() => {
|
|
81
|
+
if (!stopped)
|
|
82
|
+
startFileWatcher();
|
|
83
|
+
}, 5000);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
startFileWatcher();
|
|
87
|
+
logger.info({ bundlePath }, 'dispatcher hot-swap watcher active');
|
|
88
|
+
return () => {
|
|
89
|
+
stopped = true;
|
|
90
|
+
if (debounceTimer)
|
|
91
|
+
clearTimeout(debounceTimer);
|
|
92
|
+
bridge.off('connected', onConnected);
|
|
93
|
+
watcher?.close();
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=hotswap-watcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hotswap-watcher.js","sourceRoot":"","sources":["../../src/bridge/hotswap-watcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dev-only dispatcher hot swap (BRIDGE_HOT_SWAP_ENABLED): pushes a freshly
|
|
3
|
+
* built extension dispatcher bundle (easyeda-bridge-extension/dist/dispatcher.js)
|
|
4
|
+
* over the bridge as system.hotSwap.begin/chunk/commit frames. The extension
|
|
5
|
+
* loader verifies the sha256, evals the bundle, and swaps its active
|
|
6
|
+
* dispatcher — no .eext re-import, no reconnect.
|
|
7
|
+
*/
|
|
8
|
+
export interface DispatcherArtifact {
|
|
9
|
+
source: string;
|
|
10
|
+
buildId: string;
|
|
11
|
+
sha256: string;
|
|
12
|
+
byteLength: number;
|
|
13
|
+
}
|
|
14
|
+
export interface LoaderStatus {
|
|
15
|
+
loaderVersion?: string;
|
|
16
|
+
activeDispatcher?: 'baked' | 'pushed';
|
|
17
|
+
buildId?: string;
|
|
18
|
+
bakedBuildId?: string;
|
|
19
|
+
methodCount?: number;
|
|
20
|
+
methodListHash?: string;
|
|
21
|
+
hotSwapCompiled?: boolean;
|
|
22
|
+
hotSwapEnabled?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface HotSwapResult {
|
|
25
|
+
swapped: boolean;
|
|
26
|
+
buildId?: string;
|
|
27
|
+
methodCount?: number;
|
|
28
|
+
methodListHash?: string;
|
|
29
|
+
}
|
|
30
|
+
type BridgeCall = <TParams, TResult>(method: string, params?: TParams, opts?: {
|
|
31
|
+
timeoutMs?: number;
|
|
32
|
+
}) => Promise<TResult>;
|
|
33
|
+
/**
|
|
34
|
+
* Read the dispatcher bundle plus its build metadata. The buildId comes from
|
|
35
|
+
* the `dispatcher.meta.json` sidecar written by the extension build script;
|
|
36
|
+
* the hash/size are recomputed from the actual bundle so a stale sidecar can
|
|
37
|
+
* never push mismatched bytes.
|
|
38
|
+
*/
|
|
39
|
+
export declare function readDispatcherArtifact(bundlePath: string): DispatcherArtifact;
|
|
40
|
+
export declare function fetchLoaderStatus(call: BridgeCall): Promise<LoaderStatus>;
|
|
41
|
+
/**
|
|
42
|
+
* Drive a full begin → chunk* → commit push. Throws on any step failure; the
|
|
43
|
+
* extension keeps its previous dispatcher in that case.
|
|
44
|
+
*/
|
|
45
|
+
export declare function pushDispatcher(call: BridgeCall, artifact: DispatcherArtifact, chunkBytes: number): Promise<HotSwapResult>;
|
|
46
|
+
export declare function revertDispatcher(call: BridgeCall): Promise<{
|
|
47
|
+
reverted: boolean;
|
|
48
|
+
buildId?: string;
|
|
49
|
+
}>;
|
|
50
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import crypto from 'node:crypto';
|
|
2
|
+
import { readFileSync } from 'node:fs';
|
|
3
|
+
const BUILD_ID_PATTERN = /^[A-Za-z0-9x-]{4,64}$/;
|
|
4
|
+
/**
|
|
5
|
+
* Read the dispatcher bundle plus its build metadata. The buildId comes from
|
|
6
|
+
* the `dispatcher.meta.json` sidecar written by the extension build script;
|
|
7
|
+
* the hash/size are recomputed from the actual bundle so a stale sidecar can
|
|
8
|
+
* never push mismatched bytes.
|
|
9
|
+
*/
|
|
10
|
+
export function readDispatcherArtifact(bundlePath) {
|
|
11
|
+
const source = readFileSync(bundlePath, 'utf8');
|
|
12
|
+
const metaPath = bundlePath.replace(/\.js$/, '.meta.json');
|
|
13
|
+
let buildId = '';
|
|
14
|
+
try {
|
|
15
|
+
const meta = JSON.parse(readFileSync(metaPath, 'utf8'));
|
|
16
|
+
if (typeof meta.buildId === 'string' && BUILD_ID_PATTERN.test(meta.buildId)) {
|
|
17
|
+
buildId = meta.buildId;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
// Sidecar missing/unreadable — fall back to a content hash id below.
|
|
22
|
+
}
|
|
23
|
+
const sha256 = crypto.createHash('sha256').update(source, 'utf8').digest('hex');
|
|
24
|
+
if (!buildId) {
|
|
25
|
+
const h = sha256.slice(0, 12);
|
|
26
|
+
buildId = `d${h.slice(0, 4)}x${h.slice(4, 8)}x${h.slice(8, 12)}`;
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
source,
|
|
30
|
+
buildId,
|
|
31
|
+
sha256,
|
|
32
|
+
byteLength: Buffer.byteLength(source, 'utf8'),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export async function fetchLoaderStatus(call) {
|
|
36
|
+
return call('system.loaderStatus', {});
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Drive a full begin → chunk* → commit push. Throws on any step failure; the
|
|
40
|
+
* extension keeps its previous dispatcher in that case.
|
|
41
|
+
*/
|
|
42
|
+
export async function pushDispatcher(call, artifact, chunkBytes) {
|
|
43
|
+
const chunkSize = Math.max(4096, chunkBytes);
|
|
44
|
+
const totalChunks = Math.max(1, Math.ceil(artifact.source.length / chunkSize));
|
|
45
|
+
await call('system.hotSwap.begin', {
|
|
46
|
+
totalChunks,
|
|
47
|
+
byteLength: artifact.byteLength,
|
|
48
|
+
sha256: artifact.sha256,
|
|
49
|
+
buildId: artifact.buildId,
|
|
50
|
+
});
|
|
51
|
+
for (let seq = 0; seq < totalChunks; seq += 1) {
|
|
52
|
+
await call('system.hotSwap.chunk', {
|
|
53
|
+
seq,
|
|
54
|
+
data: artifact.source.slice(seq * chunkSize, (seq + 1) * chunkSize),
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
const result = await call('system.hotSwap.commit', {});
|
|
58
|
+
if (!result?.swapped) {
|
|
59
|
+
throw new Error('Hot-swap commit did not report a successful swap');
|
|
60
|
+
}
|
|
61
|
+
if (result.buildId !== artifact.buildId) {
|
|
62
|
+
throw new Error(`Hot-swap build id mismatch: pushed ${artifact.buildId}, extension reports ${result.buildId}`);
|
|
63
|
+
}
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
export async function revertDispatcher(call) {
|
|
67
|
+
return call('system.hotSwap.revert', {});
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=hotswap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hotswap.js","sourceRoot":"","sources":["../../src/bridge/hotswap.ts"],"names":[],"mappings":"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"}
|
package/dist/bridge/manager.d.ts
CHANGED
|
@@ -20,6 +20,9 @@ export declare class BridgeManager extends EventEmitter {
|
|
|
20
20
|
private reconnectStartMs;
|
|
21
21
|
private pairingChallenges;
|
|
22
22
|
private _methodRegistryHash;
|
|
23
|
+
private _extensionVersion;
|
|
24
|
+
private _extensionMethodListHash;
|
|
25
|
+
private _loaderVersion;
|
|
23
26
|
constructor(config: EnvConfig);
|
|
24
27
|
get lastHeartbeatMs(): number;
|
|
25
28
|
get activePort(): number;
|
|
@@ -31,6 +34,23 @@ export declare class BridgeManager extends EventEmitter {
|
|
|
31
34
|
*/
|
|
32
35
|
waitForConnection(timeoutMs: number): Promise<void>;
|
|
33
36
|
get methodRegistryHash(): string;
|
|
37
|
+
/** EasyEDA Pro application version reported at the last successful handshake. */
|
|
38
|
+
get easyedaVersion(): string | undefined;
|
|
39
|
+
/** Bridge extension version reported at the last successful handshake. */
|
|
40
|
+
get extensionVersion(): string | undefined;
|
|
41
|
+
/** Whether the connected extension's version differs from this server's version. */
|
|
42
|
+
get extensionVersionMismatch(): boolean;
|
|
43
|
+
/** Method-list hash reported by the extension's active dispatcher at handshake. */
|
|
44
|
+
get extensionMethodListHash(): string | undefined;
|
|
45
|
+
/** Extension loader version reported at handshake (tracks the .eext import). */
|
|
46
|
+
get loaderVersion(): string | undefined;
|
|
47
|
+
/**
|
|
48
|
+
* True when the extension reported a dispatcher method-list hash that does
|
|
49
|
+
* not match this server's method registry — i.e. the extension is serving
|
|
50
|
+
* stale (or newer) dispatch logic. Undefined-hash extensions (older builds)
|
|
51
|
+
* report false here; extension_version_mismatch covers those.
|
|
52
|
+
*/
|
|
53
|
+
get registryMismatch(): boolean;
|
|
34
54
|
private isLoopbackHost;
|
|
35
55
|
private computeMethodRegistryHash;
|
|
36
56
|
connect(): Promise<void>;
|