easyeda-mcp-pro 0.21.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/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 +13 -0
- package/dist/bridge/manager.js +127 -14
- package/dist/bridge/manager.js.map +1 -1
- package/dist/bridge/protocol.d.ts +5 -0
- package/dist/bridge/protocol.js +12 -0
- package/dist/bridge/protocol.js.map +1 -1
- package/dist/bridge/types.d.ts +40 -28
- package/dist/bridge/types.js +12 -0
- package/dist/bridge/types.js.map +1 -1
- package/dist/config/env.d.ts +3 -0
- package/dist/config/env.js +12 -0
- package/dist/config/env.js.map +1 -1
- package/dist/config/profiles.js +5 -5
- package/dist/config/version.d.ts +1 -1
- package/dist/config/version.js +1 -1
- 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/planner.js +1 -2
- package/dist/pcb-layout/planner.js.map +1 -1
- package/dist/server/factory.js +12 -0
- package/dist/server/factory.js.map +1 -1
- 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 +53 -4
- package/dist/tools/L0_diagnostics_core.js.map +1 -1
- package/dist/tools/L1_drc_erc.js +154 -16
- package/dist/tools/L1_drc_erc.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.js +161 -21
- package/dist/tools/L1_pcb_write.js.map +1 -1
- package/dist/tools/L1_schematic_read.js +123 -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/register.js +2 -0
- package/dist/tools/register.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 +6 -0
- package/easyeda-bridge-extension.eext +0 -0
- package/package.json +3 -1
|
@@ -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
|
@@ -21,6 +21,8 @@ export declare class BridgeManager extends EventEmitter {
|
|
|
21
21
|
private pairingChallenges;
|
|
22
22
|
private _methodRegistryHash;
|
|
23
23
|
private _extensionVersion;
|
|
24
|
+
private _extensionMethodListHash;
|
|
25
|
+
private _loaderVersion;
|
|
24
26
|
constructor(config: EnvConfig);
|
|
25
27
|
get lastHeartbeatMs(): number;
|
|
26
28
|
get activePort(): number;
|
|
@@ -38,6 +40,17 @@ export declare class BridgeManager extends EventEmitter {
|
|
|
38
40
|
get extensionVersion(): string | undefined;
|
|
39
41
|
/** Whether the connected extension's version differs from this server's version. */
|
|
40
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;
|
|
41
54
|
private isLoopbackHost;
|
|
42
55
|
private computeMethodRegistryHash;
|
|
43
56
|
connect(): Promise<void>;
|
package/dist/bridge/manager.js
CHANGED
|
@@ -12,6 +12,11 @@ const RECONNECT_BASE_MS = 1_000;
|
|
|
12
12
|
const RECONNECT_MAX_DELAY_MS = 30_000;
|
|
13
13
|
// Zombie detection: if no heartbeat received within 3× the heartbeat interval, close the socket.
|
|
14
14
|
const HEARTBEAT_LIVENESS_MULTIPLIER = 3;
|
|
15
|
+
// A chunked payload may total this many times BRIDGE_MAX_PAYLOAD_SIZE before
|
|
16
|
+
// the connection is closed (memory bound for reassembly).
|
|
17
|
+
const CHUNK_AGGREGATE_MULTIPLIER = 8;
|
|
18
|
+
// Drop a partial chunk assembly that has not completed within this window.
|
|
19
|
+
const CHUNK_ASSEMBLY_TTL_MS = 60_000;
|
|
15
20
|
export class BridgeManager extends EventEmitter {
|
|
16
21
|
state = 'disconnected';
|
|
17
22
|
hello = null;
|
|
@@ -31,6 +36,8 @@ export class BridgeManager extends EventEmitter {
|
|
|
31
36
|
pairingChallenges = new Map();
|
|
32
37
|
_methodRegistryHash;
|
|
33
38
|
_extensionVersion;
|
|
39
|
+
_extensionMethodListHash;
|
|
40
|
+
_loaderVersion;
|
|
34
41
|
constructor(config) {
|
|
35
42
|
super();
|
|
36
43
|
this.config = config;
|
|
@@ -84,11 +91,31 @@ export class BridgeManager extends EventEmitter {
|
|
|
84
91
|
get extensionVersionMismatch() {
|
|
85
92
|
return this._extensionVersion !== undefined && this._extensionVersion !== SERVER_VERSION;
|
|
86
93
|
}
|
|
94
|
+
/** Method-list hash reported by the extension's active dispatcher at handshake. */
|
|
95
|
+
get extensionMethodListHash() {
|
|
96
|
+
return this._extensionMethodListHash;
|
|
97
|
+
}
|
|
98
|
+
/** Extension loader version reported at handshake (tracks the .eext import). */
|
|
99
|
+
get loaderVersion() {
|
|
100
|
+
return this._loaderVersion;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* True when the extension reported a dispatcher method-list hash that does
|
|
104
|
+
* not match this server's method registry — i.e. the extension is serving
|
|
105
|
+
* stale (or newer) dispatch logic. Undefined-hash extensions (older builds)
|
|
106
|
+
* report false here; extension_version_mismatch covers those.
|
|
107
|
+
*/
|
|
108
|
+
get registryMismatch() {
|
|
109
|
+
return (this._extensionMethodListHash !== undefined &&
|
|
110
|
+
this._extensionMethodListHash !== this._methodRegistryHash);
|
|
111
|
+
}
|
|
87
112
|
isLoopbackHost(host) {
|
|
88
113
|
return host === '127.0.0.1' || host === 'localhost' || host === '::1';
|
|
89
114
|
}
|
|
90
115
|
computeMethodRegistryHash() {
|
|
91
|
-
|
|
116
|
+
// Locale-independent ordering: must produce byte-identical input to the
|
|
117
|
+
// extension loader's refreshMethodListHash (do NOT use localeCompare here).
|
|
118
|
+
const sorted = [...EasyedaApiMethodSchema.options].sort((a, b) => (a < b ? -1 : a > b ? 1 : 0));
|
|
92
119
|
return crypto.createHash('sha256').update(sorted.join(',')).digest('hex').slice(0, 16);
|
|
93
120
|
}
|
|
94
121
|
async connect() {
|
|
@@ -163,6 +190,77 @@ export class BridgeManager extends EventEmitter {
|
|
|
163
190
|
ws.send(JSON.stringify({ type: 'pairing_challenge', challenge }));
|
|
164
191
|
logger.info('sent pairing challenge to new client');
|
|
165
192
|
}
|
|
193
|
+
// A5: reassembly buffers for `{type:'chunk'}` envelopes from this client.
|
|
194
|
+
// A chunked payload may exceed the per-frame cap but is bounded by the
|
|
195
|
+
// aggregate cap; partial assemblies expire after CHUNK_ASSEMBLY_TTL_MS.
|
|
196
|
+
const chunkAssemblies = new Map();
|
|
197
|
+
const aggregateCap = this.config.BRIDGE_MAX_PAYLOAD_SIZE * CHUNK_AGGREGATE_MULTIPLIER;
|
|
198
|
+
const routeParsed = (data) => {
|
|
199
|
+
if (data.type === 'handshake') {
|
|
200
|
+
this.handleHandshake(ws, data);
|
|
201
|
+
}
|
|
202
|
+
else if (data.type === 'response') {
|
|
203
|
+
this.handleResponse(data);
|
|
204
|
+
}
|
|
205
|
+
else if (data.type === 'request') {
|
|
206
|
+
this.handleIncomingRequest(ws, data);
|
|
207
|
+
}
|
|
208
|
+
else if (data.type === 'heartbeat') {
|
|
209
|
+
this._lastHeartbeatMs = Date.now();
|
|
210
|
+
this.emit('heartbeat', data.timestamp);
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
const handleChunk = (data) => {
|
|
214
|
+
const id = typeof data.id === 'string' ? data.id : '';
|
|
215
|
+
const seq = typeof data.seq === 'number' ? data.seq : -1;
|
|
216
|
+
const total = typeof data.total === 'number' ? data.total : 0;
|
|
217
|
+
const piece = typeof data.data === 'string' ? data.data : undefined;
|
|
218
|
+
if (!id || seq < 0 || total < 1 || total > 4096 || seq >= total || piece === undefined) {
|
|
219
|
+
logger.warn({ id, seq, total }, 'invalid chunk envelope');
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
const now = Date.now();
|
|
223
|
+
for (const [key, entry] of chunkAssemblies) {
|
|
224
|
+
if (now - entry.startedAt > CHUNK_ASSEMBLY_TTL_MS)
|
|
225
|
+
chunkAssemblies.delete(key);
|
|
226
|
+
}
|
|
227
|
+
let assembly = chunkAssemblies.get(id);
|
|
228
|
+
if (!assembly) {
|
|
229
|
+
assembly = {
|
|
230
|
+
chunks: new Array(total),
|
|
231
|
+
total,
|
|
232
|
+
received: 0,
|
|
233
|
+
bytes: 0,
|
|
234
|
+
startedAt: now,
|
|
235
|
+
};
|
|
236
|
+
chunkAssemblies.set(id, assembly);
|
|
237
|
+
}
|
|
238
|
+
if (assembly.total !== total) {
|
|
239
|
+
chunkAssemblies.delete(id);
|
|
240
|
+
logger.warn({ id }, 'chunk total changed mid-assembly, dropping');
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
if (assembly.chunks[seq] === undefined) {
|
|
244
|
+
assembly.received += 1;
|
|
245
|
+
assembly.bytes += piece.length;
|
|
246
|
+
}
|
|
247
|
+
assembly.chunks[seq] = piece;
|
|
248
|
+
if (assembly.bytes > aggregateCap) {
|
|
249
|
+
chunkAssemblies.delete(id);
|
|
250
|
+
logger.warn({ id, bytes: assembly.bytes, aggregateCap }, 'chunked payload exceeds aggregate cap');
|
|
251
|
+
ws.close(4009, 'payload_too_large');
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
if (assembly.received === assembly.total) {
|
|
255
|
+
chunkAssemblies.delete(id);
|
|
256
|
+
try {
|
|
257
|
+
routeParsed(JSON.parse(assembly.chunks.join('')));
|
|
258
|
+
}
|
|
259
|
+
catch (err) {
|
|
260
|
+
logger.error({ err, id }, 'failed to parse reassembled chunked payload');
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
};
|
|
166
264
|
ws.on('message', (raw) => {
|
|
167
265
|
try {
|
|
168
266
|
// 0. Payload size enforcement (before parsing)
|
|
@@ -200,20 +298,12 @@ export class BridgeManager extends EventEmitter {
|
|
|
200
298
|
ws.close(4001, 'pairing_required');
|
|
201
299
|
return;
|
|
202
300
|
}
|
|
203
|
-
// 3. Normal message routing
|
|
204
|
-
if (data.type === '
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
else if (data.type === 'response') {
|
|
208
|
-
this.handleResponse(data);
|
|
209
|
-
}
|
|
210
|
-
else if (data.type === 'request') {
|
|
211
|
-
this.handleIncomingRequest(ws, data);
|
|
212
|
-
}
|
|
213
|
-
else if (data.type === 'heartbeat') {
|
|
214
|
-
this._lastHeartbeatMs = Date.now();
|
|
215
|
-
this.emit('heartbeat', data.timestamp);
|
|
301
|
+
// 3. Normal message routing (chunk envelopes reassemble, then route)
|
|
302
|
+
if (data.type === 'chunk') {
|
|
303
|
+
handleChunk(data);
|
|
304
|
+
return;
|
|
216
305
|
}
|
|
306
|
+
routeParsed(data);
|
|
217
307
|
}
|
|
218
308
|
catch (err) {
|
|
219
309
|
logger.error({ err }, 'bridge message processing error');
|
|
@@ -231,6 +321,8 @@ export class BridgeManager extends EventEmitter {
|
|
|
231
321
|
this._connectedAtMs = 0;
|
|
232
322
|
this.hello = null;
|
|
233
323
|
this._extensionVersion = undefined;
|
|
324
|
+
this._extensionMethodListHash = undefined;
|
|
325
|
+
this._loaderVersion = undefined;
|
|
234
326
|
this.stopStaleSweep();
|
|
235
327
|
this.stopHeartbeat();
|
|
236
328
|
// Clean up any pending pairing challenges
|
|
@@ -295,6 +387,22 @@ export class BridgeManager extends EventEmitter {
|
|
|
295
387
|
if (extVer && extVer !== SERVER_VERSION) {
|
|
296
388
|
logger.warn(`⚠️ EasyEDA Pro bridge extension version mismatch: extension is v${extVer}, but MCP server is v${SERVER_VERSION}. Please update the extension in EasyEDA Pro.`);
|
|
297
389
|
}
|
|
390
|
+
// Dispatcher registry staleness: unlike the advisory version warning, this
|
|
391
|
+
// compares the actual method surface, so a stale dispatcher fails loudly
|
|
392
|
+
// in health_check/run_self_test (and triggers an auto-push in hot-swap dev mode).
|
|
393
|
+
this._extensionMethodListHash = parsed.data.methodListHash;
|
|
394
|
+
this._loaderVersion = parsed.data.loaderVersion;
|
|
395
|
+
if (this.registryMismatch) {
|
|
396
|
+
logger.error({
|
|
397
|
+
extensionMethodListHash: this._extensionMethodListHash,
|
|
398
|
+
serverMethodRegistryHash: this._methodRegistryHash,
|
|
399
|
+
}, 'bridge method registry mismatch: the extension dispatcher is stale. ' +
|
|
400
|
+
'Re-import the extension, or enable BRIDGE_HOT_SWAP_ENABLED for auto-push in dev.');
|
|
401
|
+
this.emit('registryMismatch', {
|
|
402
|
+
extensionMethodListHash: this._extensionMethodListHash,
|
|
403
|
+
serverMethodRegistryHash: this._methodRegistryHash,
|
|
404
|
+
});
|
|
405
|
+
}
|
|
298
406
|
this.hello = {
|
|
299
407
|
type: 'hello',
|
|
300
408
|
bridgeVersion: SERVER_VERSION,
|
|
@@ -304,6 +412,9 @@ export class BridgeManager extends EventEmitter {
|
|
|
304
412
|
capabilities: EasyedaApiMethodSchema.options,
|
|
305
413
|
methodRegistryHash: this._methodRegistryHash,
|
|
306
414
|
maxPayloadSize: this.config.BRIDGE_MAX_PAYLOAD_SIZE,
|
|
415
|
+
supportsChunking: true,
|
|
416
|
+
maxAggregatePayloadSize: this.config.BRIDGE_MAX_PAYLOAD_SIZE * CHUNK_AGGREGATE_MULTIPLIER,
|
|
417
|
+
hotSwapEnabled: this.config.BRIDGE_HOT_SWAP_ENABLED || undefined,
|
|
307
418
|
devMode: parsed.data.devMode ?? false,
|
|
308
419
|
};
|
|
309
420
|
// Reply with hello
|
|
@@ -436,6 +547,8 @@ export class BridgeManager extends EventEmitter {
|
|
|
436
547
|
}
|
|
437
548
|
this.hello = null;
|
|
438
549
|
this._extensionVersion = undefined;
|
|
550
|
+
this._extensionMethodListHash = undefined;
|
|
551
|
+
this._loaderVersion = undefined;
|
|
439
552
|
this.reconnectAttempts = 0;
|
|
440
553
|
this.emit('stateChanged', this.state, prev);
|
|
441
554
|
this.emit('disconnected', reason ?? 'unknown');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/bridge/manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/bridge/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,8 @@ export declare const BridgeHandshakeSchema: z.ZodObject<{
|
|
|
21
21
|
easyedaVersion: z.ZodOptional<z.ZodString>;
|
|
22
22
|
devMode: z.ZodOptional<z.ZodBoolean>;
|
|
23
23
|
sessionToken: z.ZodOptional<z.ZodString>;
|
|
24
|
+
methodListHash: z.ZodOptional<z.ZodString>;
|
|
25
|
+
loaderVersion: z.ZodOptional<z.ZodString>;
|
|
24
26
|
}, z.core.$strip>;
|
|
25
27
|
/**
|
|
26
28
|
* Server → Client: issued before handshake when the bridge requires
|
|
@@ -57,6 +59,9 @@ export declare const BridgeHelloSchema: z.ZodObject<{
|
|
|
57
59
|
methodRegistryHash: z.ZodString;
|
|
58
60
|
devMode: z.ZodBoolean;
|
|
59
61
|
maxPayloadSize: z.ZodOptional<z.ZodNumber>;
|
|
62
|
+
supportsChunking: z.ZodOptional<z.ZodBoolean>;
|
|
63
|
+
maxAggregatePayloadSize: z.ZodOptional<z.ZodNumber>;
|
|
64
|
+
hotSwapEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
60
65
|
}, z.core.$strip>;
|
|
61
66
|
/**
|
|
62
67
|
* Zod schema for an RPC request message.
|
package/dist/bridge/protocol.js
CHANGED
|
@@ -19,6 +19,11 @@ export const BridgeHandshakeSchema = z.object({
|
|
|
19
19
|
easyedaVersion: z.string().optional(),
|
|
20
20
|
devMode: z.boolean().optional(),
|
|
21
21
|
sessionToken: z.string().optional(),
|
|
22
|
+
/** Hash of the extension's active dispatcher method list (same algorithm as
|
|
23
|
+
* the server's methodRegistryHash) so stale dispatch logic fails loudly. */
|
|
24
|
+
methodListHash: z.string().optional(),
|
|
25
|
+
/** Version of the extension loader shell (tracks the .eext import). */
|
|
26
|
+
loaderVersion: z.string().optional(),
|
|
22
27
|
});
|
|
23
28
|
/**
|
|
24
29
|
* Server → Client: issued before handshake when the bridge requires
|
|
@@ -56,6 +61,13 @@ export const BridgeHelloSchema = z.object({
|
|
|
56
61
|
* binary (Blob/File) results before sending — avoiding a payload-too-large close
|
|
57
62
|
* of the whole connection over one oversized response. */
|
|
58
63
|
maxPayloadSize: z.number().int().positive().optional(),
|
|
64
|
+
/** Whether this server reassembles `{type:'chunk'}` envelopes, letting the
|
|
65
|
+
* extension split payloads larger than maxPayloadSize across frames. */
|
|
66
|
+
supportsChunking: z.boolean().optional(),
|
|
67
|
+
/** Aggregate cap for one chunked payload (defaults to 8× maxPayloadSize). */
|
|
68
|
+
maxAggregatePayloadSize: z.number().int().positive().optional(),
|
|
69
|
+
/** Whether this server accepts system.hotSwap.* dispatcher pushes (dev only). */
|
|
70
|
+
hotSwapEnabled: z.boolean().optional(),
|
|
59
71
|
});
|
|
60
72
|
/**
|
|
61
73
|
* Zod schema for an RPC request message.
|