easyeda-mcp-pro 0.35.1 → 0.35.3
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 +61 -25
- package/config/runtime-policy.json +10 -0
- package/dist/cli/local-setup.d.ts +23 -2
- package/dist/cli/local-setup.js +123 -15
- package/dist/cli/local-setup.js.map +1 -1
- package/dist/config/feature-flags.js +8 -6
- package/dist/config/feature-flags.js.map +1 -1
- package/dist/config/feature-maturity.d.ts +25 -0
- package/dist/config/feature-maturity.js +60 -0
- package/dist/config/feature-maturity.js.map +1 -0
- package/dist/config/version.d.ts +1 -1
- package/dist/config/version.js +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/remote/gateway.js +46 -27
- package/dist/remote/gateway.js.map +1 -1
- package/dist/runtime/policy.d.ts +12 -0
- package/dist/runtime/policy.js +32 -0
- package/dist/runtime/policy.js.map +1 -0
- package/dist/tools/L0_diagnostics_core.js +22 -22
- package/dist/tools/L0_diagnostics_core.js.map +1 -1
- package/dist/tools/L1_export.js +6 -0
- package/dist/tools/L1_export.js.map +1 -1
- package/dist/tools/diagnostics-feature-report.d.ts +4 -0
- package/dist/tools/diagnostics-feature-report.js +39 -0
- package/dist/tools/diagnostics-feature-report.js.map +1 -0
- package/dist/tools/registry.d.ts +3 -2
- package/dist/tools/registry.js +12 -3
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/types.d.ts +3 -0
- package/easyeda-bridge-extension.eext +0 -0
- package/package.json +31 -8
- package/scripts/check-runtime.mjs +100 -0
package/README.md
CHANGED
|
@@ -110,7 +110,7 @@ For advanced configurations, manual instructions, and specific clients, see [Ins
|
|
|
110
110
|
|
|
111
111
|
## Overview
|
|
112
112
|
|
|
113
|
-
easyeda-mcp-pro is a [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that bridges AI assistants with hardware design workflows in EasyEDA Pro. It exposes up to
|
|
113
|
+
easyeda-mcp-pro is a [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that bridges AI assistants with hardware design workflows in EasyEDA Pro. It exposes up to 115 profile-gated MCP tools for schematic inspection and editing, controlled EasyEDA Pro API calls, BOM management, design rule checks, PCB board analysis, fabrication exports, diagnostics, and supplier integration.
|
|
114
114
|
|
|
115
115
|
The server connects to EasyEDA Pro via a WebSocket bridge extension, enabling real-time access to open project data. It integrates with JLCPCB, LCSC, Mouser, and DigiKey for BOM sourcing and pricing.
|
|
116
116
|
|
|
@@ -129,8 +129,19 @@ The server connects to EasyEDA Pro via a WebSocket bridge extension, enabling re
|
|
|
129
129
|
|
|
130
130
|
## Prerequisites
|
|
131
131
|
|
|
132
|
-
- **Node.js
|
|
133
|
-
- **pnpm
|
|
132
|
+
- **Node.js**: Node.js 24.x is required; repository automation is pinned to **24.18.0**.
|
|
133
|
+
- **pnpm**: local development and automation require exactly **11.5.1**.
|
|
134
|
+
|
|
135
|
+
Prepare the supported runtime before installing dependencies:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
nvm install 24.18.0
|
|
139
|
+
nvm use 24.18.0
|
|
140
|
+
corepack enable
|
|
141
|
+
corepack prepare pnpm@11.5.1 --activate
|
|
142
|
+
node scripts/check-runtime.mjs --require-pnpm
|
|
143
|
+
```
|
|
144
|
+
|
|
134
145
|
- **EasyEDA Pro** with the bundled bridge extension installed and running
|
|
135
146
|
- For supplier integration: API credentials from JLCPCB, LCSC, Mouser, or DigiKey
|
|
136
147
|
|
|
@@ -487,18 +498,23 @@ Enable suppliers by setting their credentials. All suppliers are disabled by def
|
|
|
487
498
|
- **Mouser**: `MOUSER_ENABLED=true` + API key
|
|
488
499
|
- **DigiKey**: `DIGIKEY_ENABLED=true` + OAuth2 client ID/secret
|
|
489
500
|
|
|
490
|
-
### AI
|
|
501
|
+
### Reserved AI configuration
|
|
502
|
+
|
|
503
|
+
No in-process AI provider client is currently implemented. The `AI_*` variables remain accepted for
|
|
504
|
+
configuration compatibility but are reported as `reserved`, are always ineffective, and must not be
|
|
505
|
+
used to infer that the server sends design data to an AI provider. Do not supply an API key.
|
|
491
506
|
|
|
492
|
-
|
|
507
|
+
| Variable | Default | Current behavior |
|
|
508
|
+
| --------------------------- | ------- | ----------------------------------------------------- |
|
|
509
|
+
| `AI_PROVIDER` | `none` | Reserved; no provider client is invoked |
|
|
510
|
+
| `AI_MODEL` | `''` | Reserved; no model is selected |
|
|
511
|
+
| `AI_API_KEY` | `''` | Reserved; no credential consumer exists |
|
|
512
|
+
| `AI_MAX_TOKENS` | `8000` | Reserved compatibility setting |
|
|
513
|
+
| `AI_TIMEOUT_MS` | `60000` | Reserved compatibility setting |
|
|
514
|
+
| `AI_ALLOW_DESIGN_MUTATIONS` | `false` | Reserved; cannot enable AI-originated design mutation |
|
|
493
515
|
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
| `AI_PROVIDER` | `none` | `anthropic`, `openai`, `openrouter`, or `local` |
|
|
497
|
-
| `AI_MODEL` | `''` | Model name (e.g., `claude-sonnet-4-20250514`) |
|
|
498
|
-
| `AI_API_KEY` | `''` | AI provider API key |
|
|
499
|
-
| `AI_MAX_TOKENS` | `8000` | Max tokens per AI response |
|
|
500
|
-
| `AI_TIMEOUT_MS` | `60000` | AI request timeout in ms |
|
|
501
|
-
| `AI_ALLOW_DESIGN_MUTATIONS` | `false` | Allow AI to modify schematic/board designs |
|
|
516
|
+
Use `easyeda_get_feature_flags` or `easyeda_get_capabilities` to inspect `configured`, `effective`,
|
|
517
|
+
and `maturity` values for optional settings.
|
|
502
518
|
|
|
503
519
|
### HTTP transport
|
|
504
520
|
|
|
@@ -559,12 +575,19 @@ See `.env.example` for the complete list of configuration variables.
|
|
|
559
575
|
|
|
560
576
|
## MCP Tools
|
|
561
577
|
|
|
562
|
-
The server
|
|
578
|
+
The server registers profile-gated tools according to the active `TOOL_PROFILE`. The table below is generated from the same registry used at runtime:
|
|
579
|
+
|
|
580
|
+
<!-- capability-counts:start -->
|
|
563
581
|
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
582
|
+
| Profile | Registered tools |
|
|
583
|
+
| -------------- | ---------------: |
|
|
584
|
+
| `core` | 71 |
|
|
585
|
+
| `pro` | 98 |
|
|
586
|
+
| `full` | 110 |
|
|
587
|
+
| `dev` | 115 |
|
|
588
|
+
| `experimental` | 115 |
|
|
589
|
+
|
|
590
|
+
<!-- capability-counts:end -->
|
|
568
591
|
|
|
569
592
|
`core` exposes the standard workflow tools, `pro` adds manufacturing exports, `full` adds controlled documented EasyEDA API calls, and `dev` adds runtime probes for debugging.
|
|
570
593
|
|
|
@@ -666,7 +689,7 @@ The schematic write APIs use EasyEDA Pro extension APIs that EasyEDA currently m
|
|
|
666
689
|
│ (via Plugin) │ Protocol │ └───────────────┘ │
|
|
667
690
|
└─────────────────┘ │ ┌───────────────┐ │
|
|
668
691
|
│ │ ToolRegistry │ │
|
|
669
|
-
│ │ (up to
|
|
692
|
+
│ │ (up to 115 tools) │ │
|
|
670
693
|
│ └───────────────┘ │
|
|
671
694
|
│ ┌───────────────┐ │
|
|
672
695
|
│ │ Storage │──┼──► SQLite
|
|
@@ -701,6 +724,8 @@ required by EasyEDA Pro.
|
|
|
701
724
|
|
|
702
725
|
Installation: Open EasyEDA Pro → **Settings** → **Extensions** → **Extension Manager...** → **Import Extension**, then select the `.eext` file. Make sure **Allow External Interaction** is enabled for the extension.
|
|
703
726
|
|
|
727
|
+
For local bridge development, an experimental loopback-only CDP transport is documented in the [CDP Bridge guide](docs/guide/cdp-bridge.md). The extension remains the recommended transport for normal use. Public delivery targets and milestone lifecycle rules are maintained in the [roadmap](docs/ROADMAP.md).
|
|
728
|
+
|
|
704
729
|
---
|
|
705
730
|
|
|
706
731
|
## Agent plugin and skills
|
|
@@ -770,8 +795,19 @@ qualified human review before purchase, fabrication, or assembly.
|
|
|
770
795
|
|
|
771
796
|
### Prerequisites
|
|
772
797
|
|
|
773
|
-
- **Node.js
|
|
774
|
-
- **pnpm**
|
|
798
|
+
- **Node.js**: Node.js 24.x is required; repository automation is pinned to **24.18.0**.
|
|
799
|
+
- **pnpm**: local development and automation require exactly **11.5.1**.
|
|
800
|
+
|
|
801
|
+
Prepare the supported runtime before installing dependencies:
|
|
802
|
+
|
|
803
|
+
```bash
|
|
804
|
+
nvm install 24.18.0
|
|
805
|
+
nvm use 24.18.0
|
|
806
|
+
corepack enable
|
|
807
|
+
corepack prepare pnpm@11.5.1 --activate
|
|
808
|
+
node scripts/check-runtime.mjs --require-pnpm
|
|
809
|
+
```
|
|
810
|
+
|
|
775
811
|
- **Go Task** (optional, for Taskfile commands)
|
|
776
812
|
|
|
777
813
|
### Quick Start
|
|
@@ -793,7 +829,7 @@ pnpm typecheck # TypeScript
|
|
|
793
829
|
pnpm lint # ESLint
|
|
794
830
|
|
|
795
831
|
# Test
|
|
796
|
-
pnpm test # Vitest
|
|
832
|
+
pnpm test # Vitest suite
|
|
797
833
|
pnpm test:coverage # With coverage report
|
|
798
834
|
|
|
799
835
|
# Golden E2E fixture smoke tests are included in `pnpm test`
|
|
@@ -846,7 +882,7 @@ src/
|
|
|
846
882
|
│ ├── http.ts # HTTP/Streamable HTTP transport
|
|
847
883
|
│ └── oauth-resource-metadata.ts
|
|
848
884
|
├── storage/ # Node.js sqlite storage (cache, artifacts)
|
|
849
|
-
├── tools/ # Up to
|
|
885
|
+
├── tools/ # Up to 115 profile-gated MCP tool definitions
|
|
850
886
|
│ ├── register.ts, registry.ts, types.ts, transaction.ts
|
|
851
887
|
│ ├── L0_diagnostics_core.ts, L0_diagnostics_api.ts
|
|
852
888
|
│ ├── L1_schematic_read.ts, L1_schematic_write.ts
|
|
@@ -884,8 +920,8 @@ See [Security Architecture & Threat Model](docs/security-architecture.md) for th
|
|
|
884
920
|
This repository uses automated workflows to manage dependencies and releases:
|
|
885
921
|
|
|
886
922
|
- **Renovate**: Automatically scans and updates dependencies based on rules configured in [.github/renovate.json](.github/renovate.json). For details on PR policies and automerging, see [Repository Governance](docs/REPOSITORY_GOVERNANCE.md).
|
|
887
|
-
- **Release Please**:
|
|
888
|
-
- **Secure Publishing**: The release workflow
|
|
923
|
+
- **Release Please**: Automates stable version bumps, release metadata, and `CHANGELOG.md`. Numbered `rc.N` candidates use the isolated prerelease path. See the [Release Policy](docs/RELEASE_POLICY.md) and [Release Process](docs/RELEASE_PROCESS.md).
|
|
924
|
+
- **Secure Publishing**: The release workflow rebuilds and verifies all assets, publishes npm with provenance to channel-safe `latest` or `next` dist-tags, uploads the extension and SBOM to the matching GitHub Release, and keeps GHCR/MCP Registry promotion aligned with the selected channel.
|
|
889
925
|
|
|
890
926
|
---
|
|
891
927
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { evaluateNodeRuntime, evaluatePnpmRuntime } from '../runtime/policy.js';
|
|
1
2
|
type CliCommand = 'server' | 'setup-local' | 'setup' | 'extension' | 'doctor' | 'help' | 'version' | 'init';
|
|
2
3
|
export interface ParsedCliArgs {
|
|
3
4
|
command: CliCommand;
|
|
@@ -34,11 +35,24 @@ export interface RemoteBackendDoctorStatus {
|
|
|
34
35
|
httpAuthDisabled: boolean;
|
|
35
36
|
warnings: string[];
|
|
36
37
|
}
|
|
38
|
+
export interface UserServiceRuntimeStatus {
|
|
39
|
+
applicable: boolean;
|
|
40
|
+
installed: boolean;
|
|
41
|
+
unitPath: string;
|
|
42
|
+
execStart?: string;
|
|
43
|
+
nodePath?: string;
|
|
44
|
+
nodePathExists?: boolean;
|
|
45
|
+
nodeVersion?: string | null;
|
|
46
|
+
nodeSupported?: boolean;
|
|
47
|
+
issues: string[];
|
|
48
|
+
}
|
|
37
49
|
export interface DoctorReport {
|
|
38
50
|
setup: LocalSetupInfo;
|
|
39
51
|
nodeVersion: string;
|
|
40
52
|
nodeSupported: boolean;
|
|
41
53
|
pnpmVersion: string | null;
|
|
54
|
+
pnpmSupported: boolean;
|
|
55
|
+
userServiceRuntime?: UserServiceRuntimeStatus;
|
|
42
56
|
envValid: boolean;
|
|
43
57
|
envIssues: string[];
|
|
44
58
|
bridgeHost: string;
|
|
@@ -53,11 +67,18 @@ export interface DoctorReport {
|
|
|
53
67
|
remoteBackend?: RemoteBackendDoctorStatus;
|
|
54
68
|
}
|
|
55
69
|
export declare function parseCliArgs(args: string[]): ParsedCliArgs;
|
|
56
|
-
export declare function formatSetupLocalReport(setup?: LocalSetupInfo): string;
|
|
70
|
+
export declare function formatSetupLocalReport(setup?: LocalSetupInfo, nodeExecutablePath?: string): string;
|
|
71
|
+
export declare function pnpmExecutableForPlatform(platform: NodeJS.Platform): string;
|
|
72
|
+
export declare function inspectUserServiceRuntime(options?: {
|
|
73
|
+
platform?: NodeJS.Platform;
|
|
74
|
+
unitPath?: string;
|
|
75
|
+
unitText?: string | null;
|
|
76
|
+
executableExists?: (path: string) => boolean;
|
|
77
|
+
readNodeVersion?: (path: string) => Promise<string | null>;
|
|
78
|
+
}): Promise<UserServiceRuntimeStatus>;
|
|
57
79
|
export declare function createDoctorReport(packageRoot?: string): Promise<DoctorReport>;
|
|
58
80
|
export declare function formatDoctorReport(report: DoctorReport, options?: {
|
|
59
81
|
fix?: boolean;
|
|
60
82
|
}): string;
|
|
61
83
|
export declare function formatHelp(): string;
|
|
62
84
|
export declare function formatVersion(packageRoot?: string): string;
|
|
63
|
-
export {};
|
package/dist/cli/local-setup.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
2
3
|
import { connect as createConnection } from 'node:net';
|
|
3
4
|
import { join } from 'node:path';
|
|
4
5
|
import { fileURLToPath } from 'node:url';
|
|
@@ -8,6 +9,8 @@ import { ToolRegistry } from '../tools/registry.js';
|
|
|
8
9
|
import { registerBuiltinTools } from '../tools/register.js';
|
|
9
10
|
import { EnvSchema, getBridgePairingConfigIssue, getHttpSecurityConfigIssues, } from '../config/env.js';
|
|
10
11
|
import { parsePortScanSpec } from '../bridge/manager.js';
|
|
12
|
+
import { evaluateNodeRuntime, evaluatePnpmRuntime, PINNED_NODE_VERSION, PINNED_PNPM_VERSION, } from '../runtime/policy.js';
|
|
13
|
+
export { evaluateNodeRuntime, evaluatePnpmRuntime } from '../runtime/policy.js';
|
|
11
14
|
function remoteBackendStatusFromConfig(config) {
|
|
12
15
|
if (!config)
|
|
13
16
|
return undefined;
|
|
@@ -142,7 +145,7 @@ function getLocalSetupInfo(packageRoot = resolvePackageRoot()) {
|
|
|
142
145
|
extensionPackageExists: existsSync(extensionPackagePath),
|
|
143
146
|
};
|
|
144
147
|
}
|
|
145
|
-
export function formatSetupLocalReport(setup = getLocalSetupInfo()) {
|
|
148
|
+
export function formatSetupLocalReport(setup = getLocalSetupInfo(), nodeExecutablePath = process.execPath) {
|
|
146
149
|
return [
|
|
147
150
|
'easyeda-mcp-pro local setup',
|
|
148
151
|
'',
|
|
@@ -154,7 +157,7 @@ export function formatSetupLocalReport(setup = getLocalSetupInfo()) {
|
|
|
154
157
|
stringifyConfig({
|
|
155
158
|
mcpServers: {
|
|
156
159
|
'easyeda-mcp-pro': {
|
|
157
|
-
command:
|
|
160
|
+
command: nodeExecutablePath,
|
|
158
161
|
args: [setup.serverEntryPath],
|
|
159
162
|
},
|
|
160
163
|
},
|
|
@@ -174,10 +177,98 @@ export function formatSetupLocalReport(setup = getLocalSetupInfo()) {
|
|
|
174
177
|
'1. Install or reload the EasyEDA extension package above.',
|
|
175
178
|
'2. Add one MCP config block to your MCP client.',
|
|
176
179
|
'3. Open an EasyEDA Pro project, then use MCP Bridge > Connect.',
|
|
177
|
-
|
|
180
|
+
`4. Rerun setup after replacing or moving this Node runtime: ${nodeExecutablePath}`,
|
|
178
181
|
].join('\n');
|
|
179
182
|
}
|
|
180
183
|
const execFileAsync = promisify(execFile);
|
|
184
|
+
export function pnpmExecutableForPlatform(platform) {
|
|
185
|
+
return platform === 'win32' ? 'pnpm.cmd' : 'pnpm';
|
|
186
|
+
}
|
|
187
|
+
function parseSystemdExecStart(unitText) {
|
|
188
|
+
const line = unitText
|
|
189
|
+
.split(/\r?\n/)
|
|
190
|
+
.map((entry) => entry.trim())
|
|
191
|
+
.find((entry) => entry.startsWith('ExecStart='));
|
|
192
|
+
if (!line)
|
|
193
|
+
return undefined;
|
|
194
|
+
return line.slice('ExecStart='.length).trim() || undefined;
|
|
195
|
+
}
|
|
196
|
+
function firstCommandToken(command) {
|
|
197
|
+
if (command.startsWith('"')) {
|
|
198
|
+
const end = command.indexOf('"', 1);
|
|
199
|
+
return end > 1 ? command.slice(1, end) : undefined;
|
|
200
|
+
}
|
|
201
|
+
return /^\S+/.exec(command)?.[0];
|
|
202
|
+
}
|
|
203
|
+
export async function inspectUserServiceRuntime(options = {}) {
|
|
204
|
+
const platform = options.platform ?? process.platform;
|
|
205
|
+
const unitPath = options.unitPath ??
|
|
206
|
+
join(process.env.XDG_CONFIG_HOME ?? join(homedir(), '.config'), 'systemd', 'user', 'easyeda-mcp-pro.service');
|
|
207
|
+
if (platform !== 'linux') {
|
|
208
|
+
return { applicable: false, installed: false, unitPath, issues: [] };
|
|
209
|
+
}
|
|
210
|
+
const installed = options.unitText !== undefined ? options.unitText !== null : existsSync(unitPath);
|
|
211
|
+
if (!installed)
|
|
212
|
+
return { applicable: true, installed: false, unitPath, issues: [] };
|
|
213
|
+
const unitText = options.unitText ?? readFileSync(unitPath, 'utf8');
|
|
214
|
+
const execStart = parseSystemdExecStart(unitText);
|
|
215
|
+
const issues = [];
|
|
216
|
+
if (!execStart) {
|
|
217
|
+
issues.push('User service has no ExecStart command.');
|
|
218
|
+
return { applicable: true, installed: true, unitPath, issues };
|
|
219
|
+
}
|
|
220
|
+
const nodePath = firstCommandToken(execStart);
|
|
221
|
+
if (!nodePath) {
|
|
222
|
+
issues.push('User service ExecStart command could not be parsed.');
|
|
223
|
+
return { applicable: true, installed: true, unitPath, execStart, issues };
|
|
224
|
+
}
|
|
225
|
+
const executableExists = options.executableExists ?? existsSync;
|
|
226
|
+
const nodePathExists = executableExists(nodePath);
|
|
227
|
+
if (!nodePathExists) {
|
|
228
|
+
issues.push(`ExecStart Node executable does not exist: ${nodePath}.`);
|
|
229
|
+
if (/^Restart=on-failure$/m.test(unitText)) {
|
|
230
|
+
issues.push('Restart=on-failure can turn this missing executable into a restart loop.');
|
|
231
|
+
}
|
|
232
|
+
return {
|
|
233
|
+
applicable: true,
|
|
234
|
+
installed: true,
|
|
235
|
+
unitPath,
|
|
236
|
+
execStart,
|
|
237
|
+
nodePath,
|
|
238
|
+
nodePathExists,
|
|
239
|
+
nodeVersion: null,
|
|
240
|
+
nodeSupported: false,
|
|
241
|
+
issues,
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
const readNodeVersion = options.readNodeVersion ??
|
|
245
|
+
(async (path) => {
|
|
246
|
+
try {
|
|
247
|
+
const { stdout } = await execFileAsync(path, ['--version']);
|
|
248
|
+
return stdout.trim().replace(/^v/, '');
|
|
249
|
+
}
|
|
250
|
+
catch {
|
|
251
|
+
return null;
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
const nodeVersion = await readNodeVersion(nodePath);
|
|
255
|
+
const nodeSupported = nodeVersion ? evaluateNodeRuntime(nodeVersion).supported : false;
|
|
256
|
+
if (!nodeVersion)
|
|
257
|
+
issues.push(`Unable to read Node.js version from ${nodePath}.`);
|
|
258
|
+
else if (!nodeSupported)
|
|
259
|
+
issues.push(`User service requires Node.js 24.x but ${nodePath} reports ${nodeVersion}.`);
|
|
260
|
+
return {
|
|
261
|
+
applicable: true,
|
|
262
|
+
installed: true,
|
|
263
|
+
unitPath,
|
|
264
|
+
execStart,
|
|
265
|
+
nodePath,
|
|
266
|
+
nodePathExists,
|
|
267
|
+
nodeVersion,
|
|
268
|
+
nodeSupported,
|
|
269
|
+
issues,
|
|
270
|
+
};
|
|
271
|
+
}
|
|
181
272
|
export async function createDoctorReport(packageRoot = resolvePackageRoot()) {
|
|
182
273
|
const setup = getLocalSetupInfo(packageRoot);
|
|
183
274
|
const env = parseCliEnv();
|
|
@@ -192,12 +283,17 @@ export async function createDoctorReport(packageRoot = resolvePackageRoot()) {
|
|
|
192
283
|
}
|
|
193
284
|
let pnpmVersion = null;
|
|
194
285
|
try {
|
|
195
|
-
const { stdout } = await execFileAsync(
|
|
286
|
+
const { stdout } = await execFileAsync(pnpmExecutableForPlatform(process.platform), [
|
|
287
|
+
'--version',
|
|
288
|
+
]);
|
|
196
289
|
pnpmVersion = stdout.trim();
|
|
197
290
|
}
|
|
198
291
|
catch {
|
|
199
292
|
// Ignore if pnpm is not found
|
|
200
293
|
}
|
|
294
|
+
const nodeEvaluation = evaluateNodeRuntime(process.versions.node);
|
|
295
|
+
const pnpmEvaluation = evaluatePnpmRuntime(pnpmVersion);
|
|
296
|
+
const userServiceRuntime = await inspectUserServiceRuntime();
|
|
201
297
|
let toolCounts = undefined;
|
|
202
298
|
if (env.config) {
|
|
203
299
|
const registry = new ToolRegistry();
|
|
@@ -215,8 +311,10 @@ export async function createDoctorReport(packageRoot = resolvePackageRoot()) {
|
|
|
215
311
|
return {
|
|
216
312
|
setup,
|
|
217
313
|
nodeVersion: process.versions.node,
|
|
218
|
-
nodeSupported:
|
|
314
|
+
nodeSupported: nodeEvaluation.supported,
|
|
219
315
|
pnpmVersion,
|
|
316
|
+
pnpmSupported: pnpmEvaluation.supported,
|
|
317
|
+
userServiceRuntime,
|
|
220
318
|
envValid: env.issues.length === 0,
|
|
221
319
|
envIssues: env.issues,
|
|
222
320
|
bridgeHost,
|
|
@@ -232,11 +330,15 @@ function buildSuggestedFixes(report) {
|
|
|
232
330
|
const fixes = [];
|
|
233
331
|
const reachable = report.bridgePorts.find((port) => port.reachable);
|
|
234
332
|
if (!report.nodeSupported) {
|
|
235
|
-
|
|
236
|
-
|
|
333
|
+
fixes.push(`Node.js ${report.nodeVersion} is not supported (required: 24.x; pinned: ${PINNED_NODE_VERSION}).`, ` Fix: nvm install ${PINNED_NODE_VERSION} && nvm use ${PINNED_NODE_VERSION} (or install the pinned Node.js runtime from https://nodejs.org)`);
|
|
334
|
+
}
|
|
335
|
+
if (!report.pnpmSupported) {
|
|
336
|
+
fixes.push(report.pnpmVersion
|
|
337
|
+
? `pnpm ${report.pnpmVersion} is not supported (required: ${PINNED_PNPM_VERSION}).`
|
|
338
|
+
: 'pnpm was not found on PATH.', ' Fix: corepack enable', ` Fix: corepack prepare pnpm@${PINNED_PNPM_VERSION} --activate`);
|
|
237
339
|
}
|
|
238
|
-
if (
|
|
239
|
-
fixes.push('
|
|
340
|
+
if (report.userServiceRuntime?.installed && report.userServiceRuntime.issues.length > 0) {
|
|
341
|
+
fixes.push(...report.userServiceRuntime.issues, ' Fix: systemctl --user disable --now easyeda-mcp-pro.service', ' Fix: Rerun your MCP client setup under the supported Node.js runtime; do not preserve a stale absolute ExecStart path.');
|
|
240
342
|
}
|
|
241
343
|
if (!report.envValid) {
|
|
242
344
|
fixes.push('Environment configuration is invalid:');
|
|
@@ -292,14 +394,24 @@ export function formatDoctorReport(report, options) {
|
|
|
292
394
|
const remoteBackendStr = report.remoteBackend
|
|
293
395
|
? `${report.remoteBackend.backend} / transport=${report.remoteBackend.transport} / session=${report.remoteBackend.remoteSessionConfigured ? 'configured' : 'per-request'} / oauth=${report.remoteBackend.oauthEnabled ? 'enabled' : 'disabled'}${report.remoteBackend.warnings.length ? ` / warnings=${report.remoteBackend.warnings.length}` : ''}`
|
|
294
396
|
: 'Unknown remote backend configuration';
|
|
397
|
+
let pnpmStatus = 'MISSING';
|
|
398
|
+
if (report.pnpmVersion)
|
|
399
|
+
pnpmStatus = report.pnpmSupported ? 'OK' : 'UNSUPPORTED';
|
|
400
|
+
const pnpmVersionSuffix = report.pnpmVersion ? ` ${report.pnpmVersion}` : '';
|
|
295
401
|
const lines = [
|
|
296
402
|
'easyeda-mcp-pro doctor',
|
|
297
403
|
'',
|
|
298
|
-
`Node.js: ${
|
|
299
|
-
`pnpm: ${
|
|
404
|
+
`Node.js: ${report.nodeSupported ? 'OK' : 'UNSUPPORTED'} ${report.nodeVersion} (required: 24.x; pinned: ${PINNED_NODE_VERSION})`,
|
|
405
|
+
`pnpm: ${pnpmStatus}${pnpmVersionSuffix} (required: ${PINNED_PNPM_VERSION})`,
|
|
300
406
|
`Environment: ${status(report.envValid)}${report.envIssues.length ? ` ${report.envIssues.join('; ')}` : ''}`,
|
|
301
407
|
`MCP server entry: ${status(report.setup.serverEntryExists)} ${report.setup.serverEntryPath}`,
|
|
302
408
|
`EasyEDA extension package: ${status(report.setup.extensionPackageExists)} ${report.setup.extensionPackagePath}`,
|
|
409
|
+
...(report.userServiceRuntime?.installed
|
|
410
|
+
? [
|
|
411
|
+
`User service runtime: ${report.userServiceRuntime.issues.length === 0 ? 'OK' : 'BROKEN'} ${report.userServiceRuntime.nodePath ?? report.userServiceRuntime.execStart ?? report.userServiceRuntime.unitPath}`,
|
|
412
|
+
...report.userServiceRuntime.issues.map((issue) => `User service warning: ${issue}`),
|
|
413
|
+
]
|
|
414
|
+
: []),
|
|
303
415
|
`Bridge server: ${reachable ? 'OK' : 'INFO'} ${bridgeStatus}`,
|
|
304
416
|
`Remote backend: ${remoteBackendStr}`,
|
|
305
417
|
...(report.remoteBackend?.warnings.length
|
|
@@ -390,10 +502,6 @@ function readPackageInfo(packageRoot) {
|
|
|
390
502
|
version: parsed.version ?? '0.0.0',
|
|
391
503
|
};
|
|
392
504
|
}
|
|
393
|
-
function isSupportedNodeVersion(version) {
|
|
394
|
-
const major = Number(version.split('.')[0]);
|
|
395
|
-
return Number.isInteger(major) && major >= 24 && major < 27;
|
|
396
|
-
}
|
|
397
505
|
function status(ok) {
|
|
398
506
|
return ok ? 'OK' : 'MISSING';
|
|
399
507
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-setup.js","sourceRoot":"","sources":["../../src/cli/local-setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"local-setup.js","sourceRoot":"","sources":["../../src/cli/local-setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
+
import { getFeatureMaturity } from './feature-maturity.js';
|
|
1
2
|
export function loadFeatureFlags(config) {
|
|
3
|
+
const maturity = getFeatureMaturity(config);
|
|
2
4
|
return {
|
|
3
|
-
mcpTasksEnabled:
|
|
4
|
-
mcpAppsEnabled:
|
|
5
|
-
mcpV2Experimental:
|
|
5
|
+
mcpTasksEnabled: maturity.mcp_tasks.effective,
|
|
6
|
+
mcpAppsEnabled: maturity.mcp_apps.effective,
|
|
7
|
+
mcpV2Experimental: maturity.mcp_v2.effective,
|
|
6
8
|
jlcpcbOrderingEnabled: config.JLCPCB_ENABLE_ORDERING,
|
|
7
9
|
jlcsearchEnabled: config.JLCSEARCH_ENABLED,
|
|
8
10
|
mouserEnabled: config.MOUSER_ENABLED,
|
|
9
11
|
digikeyEnabled: config.DIGIKEY_ENABLED,
|
|
10
|
-
oauthEnabled:
|
|
11
|
-
otelEnabled:
|
|
12
|
-
aiEnabled:
|
|
12
|
+
oauthEnabled: maturity.oauth.effective,
|
|
13
|
+
otelEnabled: maturity.otel_export.effective,
|
|
14
|
+
aiEnabled: maturity.ai_provider.effective,
|
|
13
15
|
devBridge: config.EASYEDA_DEV_BRIDGE,
|
|
14
16
|
bridgeRawExecEnabled: config.BRIDGE_RAW_EXEC_ENABLED,
|
|
15
17
|
rawExecExperimental: config.MCP_RAW_EXEC_EXPERIMENTAL,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-flags.js","sourceRoot":"","sources":["../../src/config/feature-flags.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"feature-flags.js","sourceRoot":"","sources":["../../src/config/feature-flags.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAkB3D,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO;QACL,eAAe,EAAE,QAAQ,CAAC,SAAS,CAAC,SAAS;QAC7C,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS;QAC3C,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;QAC5C,qBAAqB,EAAE,MAAM,CAAC,sBAAsB;QACpD,gBAAgB,EAAE,MAAM,CAAC,iBAAiB;QAC1C,aAAa,EAAE,MAAM,CAAC,cAAc;QACpC,cAAc,EAAE,MAAM,CAAC,eAAe;QACtC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS;QACtC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,SAAS;QAC3C,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,SAAS;QACzC,SAAS,EAAE,MAAM,CAAC,kBAAkB;QACpC,oBAAoB,EAAE,MAAM,CAAC,uBAAuB;QACpD,mBAAmB,EAAE,MAAM,CAAC,yBAAyB;KACtD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type EnvConfig } from './env.js';
|
|
2
|
+
export type FeatureMaturity = 'implemented' | 'experimental' | 'reserved';
|
|
3
|
+
export interface FeatureMaturityEntry {
|
|
4
|
+
maturity: FeatureMaturity;
|
|
5
|
+
configured: boolean;
|
|
6
|
+
effective: boolean;
|
|
7
|
+
note: string;
|
|
8
|
+
}
|
|
9
|
+
export interface FeatureMaturityReport {
|
|
10
|
+
mcp_tasks: FeatureMaturityEntry;
|
|
11
|
+
mcp_apps: FeatureMaturityEntry;
|
|
12
|
+
mcp_v2: FeatureMaturityEntry;
|
|
13
|
+
ai_provider: FeatureMaturityEntry;
|
|
14
|
+
otel_export: FeatureMaturityEntry;
|
|
15
|
+
remote_relay: FeatureMaturityEntry;
|
|
16
|
+
raw_execution: FeatureMaturityEntry;
|
|
17
|
+
oauth: FeatureMaturityEntry;
|
|
18
|
+
[key: string]: FeatureMaturityEntry;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Describe user-visible configuration independently from whether a value was set.
|
|
22
|
+
* Reserved settings remain parseable for compatibility but cannot be reported as
|
|
23
|
+
* active until a runtime implementation consumes them.
|
|
24
|
+
*/
|
|
25
|
+
export declare function getFeatureMaturity(config: EnvConfig): FeatureMaturityReport;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Describe user-visible configuration independently from whether a value was set.
|
|
3
|
+
* Reserved settings remain parseable for compatibility but cannot be reported as
|
|
4
|
+
* active until a runtime implementation consumes them.
|
|
5
|
+
*/
|
|
6
|
+
export function getFeatureMaturity(config) {
|
|
7
|
+
return {
|
|
8
|
+
mcp_tasks: {
|
|
9
|
+
maturity: 'reserved',
|
|
10
|
+
configured: config.MCP_TASKS_ENABLED,
|
|
11
|
+
effective: false,
|
|
12
|
+
note: 'The setting is reserved; this server does not advertise or execute MCP Tasks.',
|
|
13
|
+
},
|
|
14
|
+
mcp_apps: {
|
|
15
|
+
maturity: 'reserved',
|
|
16
|
+
configured: config.MCP_APPS_ENABLED,
|
|
17
|
+
effective: false,
|
|
18
|
+
note: 'The setting is reserved; no MCP Apps UI/resource runtime is registered.',
|
|
19
|
+
},
|
|
20
|
+
mcp_v2: {
|
|
21
|
+
maturity: 'reserved',
|
|
22
|
+
configured: config.MCP_V2_EXPERIMENTAL,
|
|
23
|
+
effective: false,
|
|
24
|
+
note: 'The setting is reserved and does not change the negotiated MCP protocol.',
|
|
25
|
+
},
|
|
26
|
+
ai_provider: {
|
|
27
|
+
maturity: 'reserved',
|
|
28
|
+
configured: config.AI_PROVIDER !== 'none',
|
|
29
|
+
effective: false,
|
|
30
|
+
note: 'Provider/model settings are reserved; no in-process AI provider is invoked.',
|
|
31
|
+
},
|
|
32
|
+
otel_export: {
|
|
33
|
+
maturity: 'reserved',
|
|
34
|
+
configured: config.OTEL_ENABLED,
|
|
35
|
+
effective: false,
|
|
36
|
+
note: 'OTLP settings are reserved; the current observability path is local structured metrics.',
|
|
37
|
+
},
|
|
38
|
+
remote_relay: {
|
|
39
|
+
maturity: 'experimental',
|
|
40
|
+
configured: config.MCP_BRIDGE_BACKEND === 'remote_relay',
|
|
41
|
+
effective: config.MCP_BRIDGE_BACKEND === 'remote_relay',
|
|
42
|
+
note: 'The paired relay path is implemented behind explicit configuration and is not Beta.',
|
|
43
|
+
},
|
|
44
|
+
raw_execution: {
|
|
45
|
+
maturity: 'experimental',
|
|
46
|
+
configured: config.MCP_RAW_EXEC_EXPERIMENTAL || config.BRIDGE_RAW_EXEC_ENABLED,
|
|
47
|
+
effective: config.NODE_ENV !== 'production' &&
|
|
48
|
+
config.MCP_RAW_EXEC_EXPERIMENTAL &&
|
|
49
|
+
config.BRIDGE_RAW_EXEC_ENABLED,
|
|
50
|
+
note: 'Raw execution requires both development-only gates and remains quarantined.',
|
|
51
|
+
},
|
|
52
|
+
oauth: {
|
|
53
|
+
maturity: 'implemented',
|
|
54
|
+
configured: config.OAUTH_ENABLED,
|
|
55
|
+
effective: config.OAUTH_ENABLED,
|
|
56
|
+
note: 'OAuth/JWKS validation is implemented and mandatory for non-loopback HTTP.',
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=feature-maturity.js.map
|