easyeda-mcp-pro 0.3.2 → 0.5.2
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 +369 -52
- package/dist/bom-quality/adapter.d.ts +90 -0
- package/dist/bom-quality/adapter.js +295 -0
- package/dist/bom-quality/adapter.js.map +1 -0
- package/dist/bom-quality/index.d.ts +10 -0
- package/dist/bom-quality/index.js +9 -0
- package/dist/bom-quality/index.js.map +1 -0
- package/dist/bom-quality/quality.d.ts +28 -0
- package/dist/bom-quality/quality.js +179 -0
- package/dist/bom-quality/quality.js.map +1 -0
- package/dist/bom-quality/types.d.ts +94 -0
- package/dist/bom-quality/types.js +12 -0
- package/dist/bom-quality/types.js.map +1 -0
- package/dist/bridge/manager.d.ts +41 -0
- package/dist/bridge/manager.js +334 -47
- package/dist/bridge/manager.js.map +1 -1
- package/dist/bridge/protocol.d.ts +48 -1
- package/dist/bridge/protocol.js +43 -1
- package/dist/bridge/protocol.js.map +1 -1
- package/dist/bridge/types.d.ts +6 -0
- package/dist/bridge/types.js +6 -0
- package/dist/bridge/types.js.map +1 -1
- package/dist/catalog/errors.d.ts +49 -0
- package/dist/catalog/errors.js +60 -0
- package/dist/catalog/errors.js.map +1 -0
- package/dist/catalog/index.d.ts +15 -0
- package/dist/catalog/index.js +17 -0
- package/dist/catalog/index.js.map +1 -0
- package/dist/catalog/schema.d.ts +268 -0
- package/dist/catalog/schema.js +245 -0
- package/dist/catalog/schema.js.map +1 -0
- package/dist/catalog/starter.d.ts +159 -0
- package/dist/catalog/starter.js +579 -0
- package/dist/catalog/starter.js.map +1 -0
- package/dist/catalog/validation.d.ts +48 -0
- package/dist/catalog/validation.js +263 -0
- package/dist/catalog/validation.js.map +1 -0
- package/dist/circuit/circuit-ir.d.ts +460 -0
- package/dist/circuit/circuit-ir.js +292 -0
- package/dist/circuit/circuit-ir.js.map +1 -0
- package/dist/circuit/compiler.d.ts +55 -0
- package/dist/circuit/compiler.js +197 -0
- package/dist/circuit/compiler.js.map +1 -0
- package/dist/circuit/design-intent.d.ts +94 -0
- package/dist/circuit/design-intent.js +118 -0
- package/dist/circuit/design-intent.js.map +1 -0
- package/dist/circuit/errors.d.ts +50 -0
- package/dist/circuit/errors.js +61 -0
- package/dist/circuit/errors.js.map +1 -0
- package/dist/circuit/index.d.ts +17 -0
- package/dist/circuit/index.js +18 -0
- package/dist/circuit/index.js.map +1 -0
- package/dist/circuit/types.d.ts +186 -0
- package/dist/circuit/types.js +123 -0
- package/dist/circuit/types.js.map +1 -0
- package/dist/cli/auto-setup.d.ts +5 -0
- package/dist/cli/auto-setup.js +355 -0
- package/dist/cli/auto-setup.js.map +1 -0
- package/dist/cli/client-definitions.d.ts +34 -0
- package/dist/cli/client-definitions.js +194 -0
- package/dist/cli/client-definitions.js.map +1 -0
- package/dist/cli/local-setup.d.ts +5 -1
- package/dist/cli/local-setup.js +40 -6
- package/dist/cli/local-setup.js.map +1 -1
- package/dist/config/env.d.ts +6 -1
- package/dist/config/env.js +93 -5
- package/dist/config/env.js.map +1 -1
- package/dist/config/profiles.js +4 -4
- package/dist/config/version.d.ts +1 -1
- package/dist/config/version.js +1 -1
- package/dist/export-manifest/errors.d.ts +55 -0
- package/dist/export-manifest/errors.js +69 -0
- package/dist/export-manifest/errors.js.map +1 -0
- package/dist/export-manifest/index.d.ts +10 -0
- package/dist/export-manifest/index.js +9 -0
- package/dist/export-manifest/index.js.map +1 -0
- package/dist/export-manifest/types.d.ts +170 -0
- package/dist/export-manifest/types.js +36 -0
- package/dist/export-manifest/types.js.map +1 -0
- package/dist/export-manifest/validation.d.ts +39 -0
- package/dist/export-manifest/validation.js +298 -0
- package/dist/export-manifest/validation.js.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -1
- package/dist/net-validation/errors.d.ts +89 -0
- package/dist/net-validation/errors.js +69 -0
- package/dist/net-validation/errors.js.map +1 -0
- package/dist/net-validation/fixtures.d.ts +38 -0
- package/dist/net-validation/fixtures.js +215 -0
- package/dist/net-validation/fixtures.js.map +1 -0
- package/dist/net-validation/index.d.ts +10 -0
- package/dist/net-validation/index.js +9 -0
- package/dist/net-validation/index.js.map +1 -0
- package/dist/net-validation/schema.d.ts +118 -0
- package/dist/net-validation/schema.js +140 -0
- package/dist/net-validation/schema.js.map +1 -0
- package/dist/net-validation/validation.d.ts +45 -0
- package/dist/net-validation/validation.js +369 -0
- package/dist/net-validation/validation.js.map +1 -0
- package/dist/pcb-constraints/errors.d.ts +39 -0
- package/dist/pcb-constraints/errors.js +133 -0
- package/dist/pcb-constraints/errors.js.map +1 -0
- package/dist/pcb-constraints/index.d.ts +9 -0
- package/dist/pcb-constraints/index.js +9 -0
- package/dist/pcb-constraints/index.js.map +1 -0
- package/dist/pcb-constraints/types.d.ts +102 -0
- package/dist/pcb-constraints/types.js +7 -0
- package/dist/pcb-constraints/types.js.map +1 -0
- package/dist/pcb-constraints/validation.d.ts +70 -0
- package/dist/pcb-constraints/validation.js +309 -0
- package/dist/pcb-constraints/validation.js.map +1 -0
- package/dist/server/factory.js +2 -0
- package/dist/server/factory.js.map +1 -1
- package/dist/server/transports/http.d.ts +20 -1
- package/dist/server/transports/http.js +156 -34
- package/dist/server/transports/http.js.map +1 -1
- package/dist/storage/database.d.ts +25 -0
- package/dist/storage/database.js +126 -51
- package/dist/storage/database.js.map +1 -1
- package/dist/tools/{L0_diagnostics.d.ts → L0_diagnostics_api.d.ts} +2 -2
- package/dist/tools/L0_diagnostics_api.js +152 -0
- package/dist/tools/L0_diagnostics_api.js.map +1 -0
- package/dist/tools/L0_diagnostics_core.d.ts +6 -0
- package/dist/tools/{L0_diagnostics.js → L0_diagnostics_core.js} +50 -124
- package/dist/tools/L0_diagnostics_core.js.map +1 -0
- package/dist/tools/L1_board.js +20 -4
- package/dist/tools/L1_board.js.map +1 -1
- package/dist/tools/{L1_bom.d.ts → L1_bom_core.d.ts} +2 -2
- package/dist/tools/{L1_bom.js → L1_bom_core.js} +21 -101
- package/dist/tools/L1_bom_core.js.map +1 -0
- package/dist/tools/{L1_schematic.d.ts → L1_bom_sourcing.d.ts} +2 -2
- package/dist/tools/L1_bom_sourcing.js +265 -0
- package/dist/tools/L1_bom_sourcing.js.map +1 -0
- package/dist/tools/L1_drc_erc.js +15 -3
- package/dist/tools/L1_drc_erc.js.map +1 -1
- package/dist/tools/L1_export.js +20 -4
- package/dist/tools/L1_export.js.map +1 -1
- package/dist/tools/L1_pcb_constraints.d.ts +6 -0
- package/dist/tools/L1_pcb_constraints.js +234 -0
- package/dist/tools/L1_pcb_constraints.js.map +1 -0
- package/dist/tools/L1_pcb_write.js +26 -12
- package/dist/tools/L1_pcb_write.js.map +1 -1
- package/dist/tools/L1_schematic_read.d.ts +6 -0
- package/dist/tools/{L1_schematic.js → L1_schematic_read.js} +125 -190
- package/dist/tools/L1_schematic_read.js.map +1 -0
- package/dist/tools/L1_schematic_write.d.ts +6 -0
- package/dist/tools/L1_schematic_write.js +516 -0
- package/dist/tools/L1_schematic_write.js.map +1 -0
- package/dist/tools/register.js +15 -7
- package/dist/tools/register.js.map +1 -1
- package/dist/tools/registry.d.ts +41 -7
- package/dist/tools/registry.js +111 -12
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/types.d.ts +16 -0
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/logger.js +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/vendors/base-http-client.d.ts +48 -0
- package/dist/vendors/base-http-client.js +75 -0
- package/dist/vendors/base-http-client.js.map +1 -0
- package/dist/vendors/digikey/client.js +10 -19
- package/dist/vendors/digikey/client.js.map +1 -1
- package/dist/vendors/jlcpcb/client.js +41 -70
- package/dist/vendors/jlcpcb/client.js.map +1 -1
- package/dist/vendors/lcsc/client.js +5 -18
- package/dist/vendors/lcsc/client.js.map +1 -1
- package/dist/vendors/mouser/client.js +4 -12
- package/dist/vendors/mouser/client.js.map +1 -1
- package/easyeda-bridge-extension.eext +0 -0
- package/package.json +41 -26
- package/dist/tools/L0_diagnostics.js.map +0 -1
- package/dist/tools/L1_bom.js.map +0 -1
- package/dist/tools/L1_schematic.js.map +0 -1
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { dirname, join } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { execFile } from 'node:child_process';
|
|
5
|
+
// ── Constants ───────────────────────────────────────────────
|
|
6
|
+
export const SERVER_NAME = 'easyeda-mcp-pro';
|
|
7
|
+
export const NPX_COMMAND = 'npx';
|
|
8
|
+
export const NPX_ARGS = ['-y', `${SERVER_NAME}@latest`];
|
|
9
|
+
// ── Package / extension helpers ─────────────────────────────
|
|
10
|
+
export function resolvePackageRoot() {
|
|
11
|
+
return fileURLToPath(new URL('../../', import.meta.url));
|
|
12
|
+
}
|
|
13
|
+
export function getExtensionPath() {
|
|
14
|
+
return join(resolvePackageRoot(), 'easyeda-bridge-extension.eext');
|
|
15
|
+
}
|
|
16
|
+
// ── Path helpers ────────────────────────────────────────────
|
|
17
|
+
export function home() {
|
|
18
|
+
return process.env.HOME ?? process.env.USERPROFILE ?? '';
|
|
19
|
+
}
|
|
20
|
+
export function appData() {
|
|
21
|
+
return process.env.APPDATA ?? join(home(), 'AppData', 'Roaming');
|
|
22
|
+
}
|
|
23
|
+
// ── Client definitions ──────────────────────────────────────
|
|
24
|
+
export const CLIENTS = [
|
|
25
|
+
{
|
|
26
|
+
name: 'claude',
|
|
27
|
+
displayName: 'Claude Desktop',
|
|
28
|
+
serverKey: 'mcpServers',
|
|
29
|
+
configPaths: [
|
|
30
|
+
{ platform: 'win32', path: join(appData(), 'Claude', 'claude_desktop_config.json') },
|
|
31
|
+
{
|
|
32
|
+
platform: 'darwin',
|
|
33
|
+
path: join(home(), 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json'),
|
|
34
|
+
},
|
|
35
|
+
{ platform: 'linux', path: join(home(), '.config', 'Claude', 'claude_desktop_config.json') },
|
|
36
|
+
],
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'cursor',
|
|
40
|
+
displayName: 'Cursor IDE',
|
|
41
|
+
serverKey: 'mcpServers',
|
|
42
|
+
configPaths: [{ platform: 'all', path: join(home(), '.cursor', 'mcp.json') }],
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'vscode',
|
|
46
|
+
displayName: 'VS Code (Copilot)',
|
|
47
|
+
serverKey: 'servers',
|
|
48
|
+
configPaths: [
|
|
49
|
+
{ platform: 'win32', path: join(appData(), 'Code', 'User', 'mcp.json') },
|
|
50
|
+
{
|
|
51
|
+
platform: 'darwin',
|
|
52
|
+
path: join(home(), 'Library', 'Application Support', 'Code', 'User', 'mcp.json'),
|
|
53
|
+
},
|
|
54
|
+
{ platform: 'linux', path: join(home(), '.config', 'Code', 'User', 'mcp.json') },
|
|
55
|
+
],
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: 'windsurf',
|
|
59
|
+
displayName: 'Windsurf (Codeium)',
|
|
60
|
+
serverKey: 'mcpServers',
|
|
61
|
+
configPaths: [
|
|
62
|
+
{ platform: 'all', path: join(home(), '.codeium', 'windsurf', 'mcp_config.json') },
|
|
63
|
+
],
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: 'cline',
|
|
67
|
+
displayName: 'Cline',
|
|
68
|
+
serverKey: 'mcpServers',
|
|
69
|
+
configPaths: [
|
|
70
|
+
{
|
|
71
|
+
platform: 'win32',
|
|
72
|
+
path: join(appData(), 'Code', 'User', 'globalStorage', 'saoudrizwan.claude-dev', 'settings', 'cline_mcp_settings.json'),
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
platform: 'darwin',
|
|
76
|
+
path: join(home(), 'Library', 'Application Support', 'Code', 'User', 'globalStorage', 'saoudrizwan.claude-dev', 'settings', 'cline_mcp_settings.json'),
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
platform: 'linux',
|
|
80
|
+
path: join(home(), '.config', 'Code', 'User', 'globalStorage', 'saoudrizwan.claude-dev', 'settings', 'cline_mcp_settings.json'),
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
name: 'gemini',
|
|
86
|
+
displayName: 'Gemini CLI / Antigravity',
|
|
87
|
+
serverKey: 'mcpServers',
|
|
88
|
+
configPaths: [{ platform: 'all', path: join(home(), '.gemini', 'settings.json') }],
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
name: 'zed',
|
|
92
|
+
displayName: 'Zed Editor',
|
|
93
|
+
serverKey: 'context_servers',
|
|
94
|
+
configPaths: [
|
|
95
|
+
{ platform: 'darwin', path: join(home(), '.config', 'zed', 'settings.json') },
|
|
96
|
+
{ platform: 'linux', path: join(home(), '.config', 'zed', 'settings.json') },
|
|
97
|
+
{ platform: 'win32', path: join(appData(), 'Zed', 'settings.json') },
|
|
98
|
+
],
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: 'amazonq',
|
|
102
|
+
displayName: 'Amazon Q Developer',
|
|
103
|
+
serverKey: 'mcpServers',
|
|
104
|
+
configPaths: [{ platform: 'all', path: join(home(), '.aws', 'amazonq', 'mcp.json') }],
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: 'continue',
|
|
108
|
+
displayName: 'Continue.dev',
|
|
109
|
+
serverKey: 'mcpServers',
|
|
110
|
+
configPaths: [{ platform: 'all', path: join(home(), '.continue', 'config.json') }],
|
|
111
|
+
},
|
|
112
|
+
];
|
|
113
|
+
// ── Detection ───────────────────────────────────────────────
|
|
114
|
+
export function findConfigPath(client) {
|
|
115
|
+
const platform = process.platform;
|
|
116
|
+
// First try to find an existing config file
|
|
117
|
+
for (const cp of client.configPaths) {
|
|
118
|
+
if (cp.platform === 'all' || cp.platform === platform) {
|
|
119
|
+
if (existsSync(cp.path))
|
|
120
|
+
return cp.path;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// If none exists, return the first matching platform path
|
|
124
|
+
for (const cp of client.configPaths) {
|
|
125
|
+
if (cp.platform === 'all' || cp.platform === platform) {
|
|
126
|
+
return cp.path;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
export function detectInstalledClients() {
|
|
132
|
+
return CLIENTS.filter((client) => {
|
|
133
|
+
const configPath = findConfigPath(client);
|
|
134
|
+
if (!configPath)
|
|
135
|
+
return false;
|
|
136
|
+
// Check if config file exists
|
|
137
|
+
if (existsSync(configPath))
|
|
138
|
+
return true;
|
|
139
|
+
// Check if parent directory exists (client is likely installed)
|
|
140
|
+
const parentDir = dirname(configPath);
|
|
141
|
+
return existsSync(parentDir);
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
export function configHasServer(configPath, serverKey) {
|
|
145
|
+
try {
|
|
146
|
+
const data = readJsonFile(configPath);
|
|
147
|
+
const servers = data[serverKey];
|
|
148
|
+
return servers !== undefined && SERVER_NAME in servers;
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
// ── Platform helpers ────────────────────────────────────────
|
|
155
|
+
export function openFileLocation(filePath) {
|
|
156
|
+
const dir = dirname(filePath);
|
|
157
|
+
try {
|
|
158
|
+
switch (process.platform) {
|
|
159
|
+
case 'win32':
|
|
160
|
+
execFile('explorer', ['/select,' + filePath.replace(/\//g, '\\')]);
|
|
161
|
+
break;
|
|
162
|
+
case 'darwin':
|
|
163
|
+
execFile('open', ['-R', filePath]);
|
|
164
|
+
break;
|
|
165
|
+
default:
|
|
166
|
+
execFile('xdg-open', [dir]);
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
catch {
|
|
171
|
+
// Silently ignore — the path is already printed
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// ── Status helpers ───────────────────────────────────────────
|
|
175
|
+
export function ok(text) {
|
|
176
|
+
return ` ✅ ${text}`;
|
|
177
|
+
}
|
|
178
|
+
export function info(text) {
|
|
179
|
+
return ` ℹ️ ${text}`;
|
|
180
|
+
}
|
|
181
|
+
export function warn(text) {
|
|
182
|
+
return ` ⚠️ ${text}`;
|
|
183
|
+
}
|
|
184
|
+
// ── Shared JSON helper (also used by configHasServer) ───────
|
|
185
|
+
function readJsonFile(path) {
|
|
186
|
+
try {
|
|
187
|
+
const raw = readFileSync(path, 'utf8');
|
|
188
|
+
return JSON.parse(raw);
|
|
189
|
+
}
|
|
190
|
+
catch {
|
|
191
|
+
return {};
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=client-definitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-definitions.js","sourceRoot":"","sources":["../../src/cli/client-definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
type CliCommand = 'server' | 'setup-local' | 'doctor' | 'help' | 'version';
|
|
1
|
+
type CliCommand = 'server' | 'setup-local' | 'setup' | 'extension' | 'doctor' | 'help' | 'version' | 'init';
|
|
2
2
|
export interface ParsedCliArgs {
|
|
3
3
|
command: CliCommand;
|
|
4
|
+
setupClient?: string;
|
|
5
|
+
setupProfile?: string;
|
|
6
|
+
extensionOpen?: boolean;
|
|
7
|
+
extensionCopy?: string;
|
|
4
8
|
}
|
|
5
9
|
export interface LocalSetupInfo {
|
|
6
10
|
packageName: string;
|
package/dist/cli/local-setup.js
CHANGED
|
@@ -12,9 +12,26 @@ export function parseCliArgs(args) {
|
|
|
12
12
|
case '--setup-local':
|
|
13
13
|
case 'setup-local':
|
|
14
14
|
return { command: 'setup-local' };
|
|
15
|
+
case '--setup':
|
|
16
|
+
case 'setup': {
|
|
17
|
+
const client = args[1] ?? 'list';
|
|
18
|
+
const profileIdx = args.indexOf('--profile');
|
|
19
|
+
const profile = profileIdx !== -1 ? args[profileIdx + 1] : undefined;
|
|
20
|
+
return { command: 'setup', setupClient: client, setupProfile: profile };
|
|
21
|
+
}
|
|
22
|
+
case '--extension':
|
|
23
|
+
case 'extension': {
|
|
24
|
+
const open = args.includes('--open');
|
|
25
|
+
const copyIdx = args.indexOf('--copy');
|
|
26
|
+
const copy = copyIdx !== -1 ? args[copyIdx + 1] : undefined;
|
|
27
|
+
return { command: 'extension', extensionOpen: open, extensionCopy: copy };
|
|
28
|
+
}
|
|
15
29
|
case '--doctor':
|
|
16
30
|
case 'doctor':
|
|
17
31
|
return { command: 'doctor' };
|
|
32
|
+
case '--init':
|
|
33
|
+
case 'init':
|
|
34
|
+
return { command: 'init' };
|
|
18
35
|
case '--help':
|
|
19
36
|
case '-h':
|
|
20
37
|
case 'help':
|
|
@@ -83,7 +100,7 @@ export async function createDoctorReport(packageRoot = resolvePackageRoot()) {
|
|
|
83
100
|
const setup = getLocalSetupInfo(packageRoot);
|
|
84
101
|
const env = parseCliEnv();
|
|
85
102
|
const bridgeHost = env.config?.BRIDGE_HOST ?? '127.0.0.1';
|
|
86
|
-
const ports = parsePortScanSpec(env.config?.BRIDGE_PORT_SCAN ?? '
|
|
103
|
+
const ports = parsePortScanSpec(env.config?.BRIDGE_PORT_SCAN ?? '49620');
|
|
87
104
|
const bridgePorts = [];
|
|
88
105
|
for (const port of ports.slice(0, 20)) {
|
|
89
106
|
bridgePorts.push({
|
|
@@ -125,17 +142,34 @@ export function formatHelp() {
|
|
|
125
142
|
'easyeda-mcp-pro',
|
|
126
143
|
'',
|
|
127
144
|
'Usage:',
|
|
128
|
-
' easyeda-mcp-pro
|
|
129
|
-
'
|
|
130
|
-
' easyeda-mcp-pro
|
|
131
|
-
'
|
|
145
|
+
' easyeda-mcp-pro Start the MCP server (stdio/http)',
|
|
146
|
+
'',
|
|
147
|
+
' easyeda-mcp-pro init Start interactive setup wizard',
|
|
148
|
+
'',
|
|
149
|
+
' easyeda-mcp-pro setup [client] Auto-configure an MCP client',
|
|
150
|
+
' Clients: claude, cursor, vscode, windsurf, cline, gemini, zed, amazonq, continue, all',
|
|
151
|
+
' Options: --profile <core|pro|full|dev>',
|
|
152
|
+
'',
|
|
153
|
+
' easyeda-mcp-pro extension Show bridge extension path and install guide',
|
|
154
|
+
' Options: --open Open file location in file manager',
|
|
155
|
+
' --copy <dir> Copy .eext to the specified directory',
|
|
156
|
+
'',
|
|
157
|
+
' easyeda-mcp-pro --setup-local Print MCP client config (legacy)',
|
|
158
|
+
' easyeda-mcp-pro --doctor Check runtime, package, and bridge status',
|
|
159
|
+
' easyeda-mcp-pro --version Print package version',
|
|
160
|
+
'',
|
|
161
|
+
'Examples:',
|
|
162
|
+
' npx easyeda-mcp-pro init Run interactive setup wizard',
|
|
163
|
+
' npx easyeda-mcp-pro setup claude Configure Claude Desktop',
|
|
164
|
+
' npx easyeda-mcp-pro setup all --profile full Configure all detected clients',
|
|
165
|
+
' npx easyeda-mcp-pro extension --open Open extension file location',
|
|
132
166
|
].join('\n');
|
|
133
167
|
}
|
|
134
168
|
export function formatVersion(packageRoot = resolvePackageRoot()) {
|
|
135
169
|
const packageInfo = readPackageInfo(packageRoot);
|
|
136
170
|
return `${packageInfo.name}@${packageInfo.version}`;
|
|
137
171
|
}
|
|
138
|
-
async function checkTcpPort(host, port, timeoutMs =
|
|
172
|
+
async function checkTcpPort(host, port, timeoutMs = 2000) {
|
|
139
173
|
return new Promise((resolve) => {
|
|
140
174
|
const socket = createConnection({ host, port });
|
|
141
175
|
let settled = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-setup.js","sourceRoot":"","sources":["../../src/cli/local-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAkB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"local-setup.js","sourceRoot":"","sources":["../../src/cli/local-setup.ts"],"names":[],"mappings":"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"}
|
package/dist/config/env.d.ts
CHANGED
|
@@ -31,6 +31,7 @@ export declare const EnvSchema: z.ZodObject<{
|
|
|
31
31
|
HTTP_AUTH_DISABLED: z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>;
|
|
32
32
|
HTTP_RATE_LIMIT_MAX: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
33
33
|
CORS_ORIGIN: z.ZodDefault<z.ZodString>;
|
|
34
|
+
ALLOWED_ORIGINS: z.ZodDefault<z.ZodString>;
|
|
34
35
|
MCP_TASKS_ENABLED: z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>;
|
|
35
36
|
MCP_APPS_ENABLED: z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>;
|
|
36
37
|
MCP_V2_EXPERIMENTAL: z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>;
|
|
@@ -39,7 +40,9 @@ export declare const EnvSchema: z.ZodObject<{
|
|
|
39
40
|
BRIDGE_PORT_SCAN: z.ZodDefault<z.ZodString>;
|
|
40
41
|
BRIDGE_TIMEOUT_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
41
42
|
BRIDGE_HEARTBEAT_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
42
|
-
|
|
43
|
+
BRIDGE_RECONNECT_MAX_ATTEMPTS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
44
|
+
BRIDGE_WAIT_FOR_EDA_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
45
|
+
BRIDGE_MAX_PAYLOAD_SIZE: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
43
46
|
BRIDGE_TOKEN: z.ZodDefault<z.ZodString>;
|
|
44
47
|
EASYEDA_DEV_BRIDGE: z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>;
|
|
45
48
|
BRIDGE_RAW_EXEC_ENABLED: z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>;
|
|
@@ -96,4 +99,6 @@ export declare const EnvSchema: z.ZodObject<{
|
|
|
96
99
|
TRACE_SAMPLE_RATE: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
97
100
|
}, z.core.$strip>;
|
|
98
101
|
export type EnvConfig = z.infer<typeof EnvSchema>;
|
|
102
|
+
export declare function detectUnknownEnvVars(env: Record<string, string | undefined>): string[];
|
|
99
103
|
export declare function loadEnvConfig(): EnvConfig;
|
|
104
|
+
export declare function validateSafeConfig(config: EnvConfig): void;
|
package/dist/config/env.js
CHANGED
|
@@ -21,15 +21,18 @@ export const EnvSchema = z.object({
|
|
|
21
21
|
HTTP_AUTH_DISABLED: envBoolean().default(false),
|
|
22
22
|
HTTP_RATE_LIMIT_MAX: z.coerce.number().int().min(1).max(10000).default(100),
|
|
23
23
|
CORS_ORIGIN: z.string().default(''),
|
|
24
|
+
ALLOWED_ORIGINS: z.string().default(''),
|
|
24
25
|
MCP_TASKS_ENABLED: envBoolean().default(false),
|
|
25
26
|
MCP_APPS_ENABLED: envBoolean().default(false),
|
|
26
27
|
MCP_V2_EXPERIMENTAL: envBoolean().default(false),
|
|
27
28
|
BRIDGE_HOST: z.string().default('127.0.0.1'),
|
|
28
|
-
BRIDGE_PORT: z.coerce.number().int().min(1).max(65535).default(
|
|
29
|
-
BRIDGE_PORT_SCAN: z.string().default('
|
|
29
|
+
BRIDGE_PORT: z.coerce.number().int().min(1).max(65535).default(49620),
|
|
30
|
+
BRIDGE_PORT_SCAN: z.string().default('49620-49629'),
|
|
30
31
|
BRIDGE_TIMEOUT_MS: z.coerce.number().int().min(1000).max(120000).default(15000),
|
|
31
32
|
BRIDGE_HEARTBEAT_MS: z.coerce.number().int().min(1000).max(60000).default(10000),
|
|
32
|
-
|
|
33
|
+
BRIDGE_RECONNECT_MAX_ATTEMPTS: z.coerce.number().int().min(0).max(100).default(0),
|
|
34
|
+
BRIDGE_WAIT_FOR_EDA_MS: z.coerce.number().int().min(0).max(60000).default(30000),
|
|
35
|
+
BRIDGE_MAX_PAYLOAD_SIZE: z.coerce.number().int().min(1024).max(10485760).default(1048576),
|
|
33
36
|
BRIDGE_TOKEN: z.string().default(''),
|
|
34
37
|
EASYEDA_DEV_BRIDGE: envBoolean().default(false),
|
|
35
38
|
BRIDGE_RAW_EXEC_ENABLED: envBoolean().default(false),
|
|
@@ -72,30 +75,115 @@ export const EnvSchema = z.object({
|
|
|
72
75
|
OTEL_EXPORTER_OTLP_ENDPOINT: z.string().default(''),
|
|
73
76
|
TRACE_SAMPLE_RATE: z.coerce.number().min(0).max(1).default(1.0),
|
|
74
77
|
});
|
|
78
|
+
const PROJECT_VAR_PREFIXES = [
|
|
79
|
+
'NODE_ENV',
|
|
80
|
+
'LOG_LEVEL',
|
|
81
|
+
'TOOL_PROFILE',
|
|
82
|
+
'MCP_PROTOCOL_VERSION',
|
|
83
|
+
'TRANSPORT',
|
|
84
|
+
'HTTP_',
|
|
85
|
+
'CORS_',
|
|
86
|
+
'MCP_',
|
|
87
|
+
'BRIDGE_',
|
|
88
|
+
'EASYEDA_',
|
|
89
|
+
'DATA_DIR',
|
|
90
|
+
'SQLITE_',
|
|
91
|
+
'ARTIFACT_',
|
|
92
|
+
'CACHE_',
|
|
93
|
+
'AI_',
|
|
94
|
+
'JLCPCB_',
|
|
95
|
+
'JLCSEARCH_',
|
|
96
|
+
'LCSC_',
|
|
97
|
+
'MOUSER_',
|
|
98
|
+
'DIGIKEY_',
|
|
99
|
+
'OAUTH_',
|
|
100
|
+
'OTEL_',
|
|
101
|
+
'TRACE_',
|
|
102
|
+
];
|
|
103
|
+
export function detectUnknownEnvVars(env) {
|
|
104
|
+
const knownKeys = new Set(Object.keys(EnvSchema.shape));
|
|
105
|
+
const warnings = [];
|
|
106
|
+
for (const key of Object.keys(env)) {
|
|
107
|
+
if (knownKeys.has(key))
|
|
108
|
+
continue;
|
|
109
|
+
const isProjectVar = PROJECT_VAR_PREFIXES.some((prefix) => key === prefix || key.startsWith(prefix));
|
|
110
|
+
if (!isProjectVar)
|
|
111
|
+
continue;
|
|
112
|
+
const msg = `Unknown environment variable "${key}" is not recognized by this server. ` +
|
|
113
|
+
'Check for typos or remove if unused.';
|
|
114
|
+
// Logger not yet initialized — env config is loaded first
|
|
115
|
+
console.warn('WARNING:', msg);
|
|
116
|
+
warnings.push(msg);
|
|
117
|
+
}
|
|
118
|
+
return warnings;
|
|
119
|
+
}
|
|
75
120
|
export function loadEnvConfig() {
|
|
76
121
|
const result = EnvSchema.safeParse(process.env);
|
|
77
122
|
if (!result.success) {
|
|
123
|
+
// Logger not yet initialized — env config is loaded first
|
|
78
124
|
console.error('Config validation failed:');
|
|
79
125
|
for (const issue of result.error.issues) {
|
|
126
|
+
// Logger not yet initialized — env config is loaded first
|
|
80
127
|
console.error(` - ${issue.path.join('.')}: ${issue.message}`);
|
|
81
128
|
}
|
|
82
129
|
process.exit(1);
|
|
83
130
|
}
|
|
131
|
+
detectUnknownEnvVars(process.env);
|
|
84
132
|
validateSafeConfig(result.data);
|
|
85
133
|
return result.data;
|
|
86
134
|
}
|
|
87
|
-
|
|
135
|
+
/** Check whether HTTP_HOST refers to a loopback address. */
|
|
136
|
+
function isLoopbackHost(host) {
|
|
137
|
+
return host === '127.0.0.1' || host === 'localhost' || host === '::1';
|
|
138
|
+
}
|
|
139
|
+
export function validateSafeConfig(config) {
|
|
140
|
+
// ── CORS / origin policy ─────────────────────────────────
|
|
141
|
+
if (config.TRANSPORT === 'http' && !isLoopbackHost(config.HTTP_HOST) && !config.ALLOWED_ORIGINS) {
|
|
142
|
+
// Logger not yet initialized — env config is loaded first
|
|
143
|
+
console.error('SAFETY: HTTP_HOST is not a loopback address but ALLOWED_ORIGINS is empty. ' +
|
|
144
|
+
'Non-loopback HTTP deployments must declare an explicit origin allowlist. ' +
|
|
145
|
+
'Set ALLOWED_ORIGINS to a comma-separated list of allowed origins or use HTTP_HOST=127.0.0.1.');
|
|
146
|
+
process.exit(1);
|
|
147
|
+
}
|
|
148
|
+
// ── OAuth/JWKS validation ─────────────────────────────────
|
|
149
|
+
if (config.OAUTH_ENABLED && !isLoopbackHost(config.HTTP_HOST)) {
|
|
150
|
+
const missing = [];
|
|
151
|
+
if (!config.OAUTH_JWKS_URI)
|
|
152
|
+
missing.push('OAUTH_JWKS_URI');
|
|
153
|
+
if (!config.OAUTH_ISSUER)
|
|
154
|
+
missing.push('OAUTH_ISSUER');
|
|
155
|
+
if (!config.OAUTH_AUDIENCE)
|
|
156
|
+
missing.push('OAUTH_AUDIENCE');
|
|
157
|
+
if (missing.length > 0) {
|
|
158
|
+
// Logger not yet initialized — env config is loaded first
|
|
159
|
+
console.error(`SAFETY: OAuth is enabled for non-loopback HTTP but required variables are missing: ${missing.join(', ')}. ` +
|
|
160
|
+
'Set all required OAuth variables or use HTTP_HOST=127.0.0.1 for local development.');
|
|
161
|
+
process.exit(1);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// No weak-token fallback: if OAuth is enabled, JWKS must be configured
|
|
165
|
+
if (config.OAUTH_ENABLED && !config.OAUTH_JWKS_URI) {
|
|
166
|
+
// Logger not yet initialized — env config is loaded first
|
|
167
|
+
console.error('SAFETY: OAUTH_ENABLED=true requires OAUTH_JWKS_URI. ' +
|
|
168
|
+
'The weak bearer-token fallback (no JWKS) is no longer supported. ' +
|
|
169
|
+
'Configure a valid JWKS endpoint or disable OAuth.');
|
|
170
|
+
process.exit(1);
|
|
171
|
+
}
|
|
172
|
+
// ── NODE_ENV production checks ──────────────────────────
|
|
88
173
|
if (config.NODE_ENV === 'production') {
|
|
89
|
-
if (config.HTTP_HOST
|
|
174
|
+
if (!isLoopbackHost(config.HTTP_HOST) && !config.OAUTH_ENABLED) {
|
|
175
|
+
// Logger not yet initialized — env config is loaded first
|
|
90
176
|
console.error('SAFETY: HTTP_HOST is not localhost but OAUTH_ENABLED is false. ' +
|
|
91
177
|
'Set OAUTH_ENABLED=true or use HTTP_HOST=127.0.0.1.');
|
|
92
178
|
process.exit(1);
|
|
93
179
|
}
|
|
94
180
|
if (config.BRIDGE_RAW_EXEC_ENABLED) {
|
|
181
|
+
// Logger not yet initialized — env config is loaded first
|
|
95
182
|
console.error('SAFETY: BRIDGE_RAW_EXEC_ENABLED=true is not allowed in production mode.');
|
|
96
183
|
process.exit(1);
|
|
97
184
|
}
|
|
98
185
|
if (config.JLCPCB_ENABLE_ORDERING && config.JLCPCB_MODE !== 'approved_api') {
|
|
186
|
+
// Logger not yet initialized — env config is loaded first
|
|
99
187
|
console.error('SAFETY: JLCPCB_ENABLE_ORDERING=true requires JLCPCB_MODE=approved_api.');
|
|
100
188
|
process.exit(1);
|
|
101
189
|
}
|
package/dist/config/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,SAAS,UAAU;IACjB,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;QAC1B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,EAAE;gBAAE,OAAO,KAAK,CAAC;YACrE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IAC9E,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACjG,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACpF,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;IAEtD,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACrD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAClE,kBAAkB,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/C,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAC3E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"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"}
|
package/dist/config/profiles.js
CHANGED
|
@@ -3,28 +3,28 @@ export const PROFILE_DEFINITIONS = {
|
|
|
3
3
|
name: 'core',
|
|
4
4
|
label: 'Core',
|
|
5
5
|
description: 'High-confidence tools: diagnostics, EasyEDA API inventory, schematic, BOM, DRC/ERC, board layers/stackup, Gerber export',
|
|
6
|
-
approxToolCount: '
|
|
6
|
+
approxToolCount: '29',
|
|
7
7
|
isDefault: true,
|
|
8
8
|
},
|
|
9
9
|
pro: {
|
|
10
10
|
name: 'pro',
|
|
11
11
|
label: 'Pro',
|
|
12
12
|
description: 'Adds pick-and-place, PDF, netlist export for manufacturing workflows',
|
|
13
|
-
approxToolCount: '
|
|
13
|
+
approxToolCount: '32',
|
|
14
14
|
isDefault: false,
|
|
15
15
|
},
|
|
16
16
|
full: {
|
|
17
17
|
name: 'full',
|
|
18
18
|
label: 'Full',
|
|
19
19
|
description: 'Adds controlled documented EasyEDA API method calls for full runtime control without raw JavaScript execution',
|
|
20
|
-
approxToolCount: '
|
|
20
|
+
approxToolCount: '39',
|
|
21
21
|
isDefault: false,
|
|
22
22
|
},
|
|
23
23
|
dev: {
|
|
24
24
|
name: 'dev',
|
|
25
25
|
label: 'Dev',
|
|
26
26
|
description: 'Adds diagnostics probes for bridge methods and live component runtime shape inspection',
|
|
27
|
-
approxToolCount: '
|
|
27
|
+
approxToolCount: '41',
|
|
28
28
|
isDefault: false,
|
|
29
29
|
},
|
|
30
30
|
experimental: {
|
package/dist/config/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SERVER_VERSION = "0.
|
|
1
|
+
export declare const SERVER_VERSION = "0.5.2";
|
package/dist/config/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const SERVER_VERSION = '0.
|
|
1
|
+
export const SERVER_VERSION = '0.5.2';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export manifest — error codes, structured issues, and factories.
|
|
3
|
+
*
|
|
4
|
+
* Follows the same pattern as `net-validation/errors.ts`:
|
|
5
|
+
* a const-object error code enum, a structured issue interface
|
|
6
|
+
* (re-exported from types.ts), and factory helpers.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
import type { ExportManifestIssue } from './types.js';
|
|
11
|
+
export declare const ExportManifestCode: {
|
|
12
|
+
/** A required artifact file was not found in the export output. */
|
|
13
|
+
readonly MISSING_REQUIRED_FILE: "MISSING_REQUIRED_FILE";
|
|
14
|
+
/** An artifact file exists but has zero bytes. */
|
|
15
|
+
readonly EMPTY_FILE: "EMPTY_FILE";
|
|
16
|
+
/** An artifact is flagged as stale (outdated). */
|
|
17
|
+
readonly STALE_FILE: "STALE_FILE";
|
|
18
|
+
/** An artifact appears in the output but was not in the expected set. */
|
|
19
|
+
readonly UNEXPECTED_FILE: "UNEXPECTED_FILE";
|
|
20
|
+
/** Artifact checksum does not match the expected value. */
|
|
21
|
+
readonly CHECKSUM_MISMATCH: "CHECKSUM_MISMATCH";
|
|
22
|
+
/** Artifact's declared file type does not match its content/name. */
|
|
23
|
+
readonly WRONG_FILE_TYPE: "WRONG_FILE_TYPE";
|
|
24
|
+
/** Artifact is missing a human-readable purpose description. */
|
|
25
|
+
readonly MISSING_PURPOSE: "MISSING_PURPOSE";
|
|
26
|
+
/** Artifact is missing a generation timestamp. */
|
|
27
|
+
readonly MISSING_GENERATED_TIMESTAMP: "MISSING_GENERATED_TIMESTAMP";
|
|
28
|
+
/** Artifact is missing a source project reference. */
|
|
29
|
+
readonly MISSING_SOURCE_PROJECT: "MISSING_SOURCE_PROJECT";
|
|
30
|
+
/** Manifest version string is not valid semver. */
|
|
31
|
+
readonly INVALID_MANIFEST_VERSION: "INVALID_MANIFEST_VERSION";
|
|
32
|
+
/** Validation could not be completed due to an internal error. */
|
|
33
|
+
readonly MANIFEST_INTERNAL: "MANIFEST_INTERNAL";
|
|
34
|
+
};
|
|
35
|
+
export type ExportManifestCode = (typeof ExportManifestCode)[keyof typeof ExportManifestCode];
|
|
36
|
+
/**
|
|
37
|
+
* Create a single export manifest issue.
|
|
38
|
+
*/
|
|
39
|
+
export declare function manifestIssue(code: ExportManifestCode, message: string, opts?: {
|
|
40
|
+
severity?: 'error' | 'warning';
|
|
41
|
+
path?: string;
|
|
42
|
+
artifactPath?: string;
|
|
43
|
+
artifactType?: string;
|
|
44
|
+
purpose?: string;
|
|
45
|
+
remediationHint?: string;
|
|
46
|
+
details?: Record<string, unknown>;
|
|
47
|
+
}): ExportManifestIssue;
|
|
48
|
+
/**
|
|
49
|
+
* Convenience: create an error-severity issue.
|
|
50
|
+
*/
|
|
51
|
+
export declare function manifestError(code: ExportManifestCode, message: string, opts?: Omit<Parameters<typeof manifestIssue>[2], 'severity'>): ExportManifestIssue;
|
|
52
|
+
/**
|
|
53
|
+
* Convenience: create a warning-severity issue.
|
|
54
|
+
*/
|
|
55
|
+
export declare function manifestWarning(code: ExportManifestCode, message: string, opts?: Omit<Parameters<typeof manifestIssue>[2], 'severity'>): ExportManifestIssue;
|