easyeda-mcp-pro 0.16.0 → 0.17.1

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 CHANGED
@@ -1,19 +1,49 @@
1
- # easyeda-mcp-pro
1
+ <div align="center">
2
2
 
3
- **Production-grade MCP server for EasyEDA Pro: safe PCB design inspection, BOM sourcing, manufacturing export, and AI-assisted hardware review.**
3
+ # easyeda-mcp-pro
4
4
 
5
- [![CI](https://github.com/oaslananka/easyeda-mcp-pro/actions/workflows/ci.yml/badge.svg)](https://github.com/oaslananka/easyeda-mcp-pro/actions/workflows/ci.yml)
6
- [![npm version](https://img.shields.io/npm/v/easyeda-mcp-pro.svg)](https://www.npmjs.com/package/easyeda-mcp-pro)
7
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
- [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/13406/badge)](https://www.bestpractices.dev/projects/13406)
9
- [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/oaslananka/easyeda-mcp-pro)
5
+ <p>
6
+ Production-grade MCP server for EasyEDA Pro: safe PCB design inspection, BOM sourcing, manufacturing export, and AI-assisted hardware review.
7
+ </p>
10
8
 
11
- <p align="center">
12
- <a href="https://www.buymeacoffee.com/oaslananka">
13
- <img src="https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20coffee&emoji=%E2%98%95&slug=oaslananka&button_colour=FFDD00&font_colour=000000&font_family=Arial&outline_colour=000000&coffee_colour=ffffff" alt="Buy me a coffee" />
9
+ <p>
10
+ <a href="https://github.com/oaslananka/easyeda-mcp-pro/actions/workflows/ci.yml">
11
+ <img src="https://github.com/oaslananka/easyeda-mcp-pro/actions/workflows/ci.yml/badge.svg" alt="CI status" />
12
+ </a>
13
+ <a href="https://www.npmjs.com/package/easyeda-mcp-pro">
14
+ <img src="https://img.shields.io/npm/v/easyeda-mcp-pro.svg?logo=npm" alt="npm version" />
15
+ </a>
16
+ <a href="https://www.npmjs.com/package/easyeda-mcp-pro">
17
+ <img src="https://img.shields.io/npm/dt/easyeda-mcp-pro?logo=npm&label=total%20downloads" alt="npm total downloads" />
18
+ </a>
19
+ <a href="https://www.npmjs.com/package/easyeda-mcp-pro">
20
+ <img src="https://img.shields.io/node/v/easyeda-mcp-pro" alt="supported Node.js version" />
21
+ </a>
22
+ <a href="https://opensource.org/licenses/MIT">
23
+ <img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT" />
24
+ </a>
25
+ <a href="https://www.bestpractices.dev/projects/13406">
26
+ <img src="https://www.bestpractices.dev/projects/13406/badge" alt="OpenSSF Best Practices" />
27
+ </a>
28
+ <a href="https://github.com/oaslananka/easyeda-mcp-pro/security/policy">
29
+ <img src="https://img.shields.io/badge/security-policy-blue" alt="Security policy" />
30
+ </a>
31
+ <a href="https://deepwiki.com/oaslananka/easyeda-mcp-pro">
32
+ <img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki" />
14
33
  </a>
15
34
  </p>
16
35
 
36
+ <p>
37
+ <strong>Compliance docs:</strong>
38
+ <a href="THIRD_PARTY_NOTICES.md">Third-Party Notices</a>
39
+ ·
40
+ <a href="docs/vendor-terms.md">Vendor Terms and Unsupported Workflows</a>
41
+ ·
42
+ <a href="docs/OPENSSF_BEST_PRACTICES.md">OpenSSF Best Practices</a>
43
+ </p>
44
+
45
+ </div>
46
+
17
47
  ---
18
48
 
19
49
  ## Quick Start
@@ -46,7 +76,7 @@ For advanced configurations, manual instructions, and specific clients, see [Ins
46
76
 
47
77
  ## Overview
48
78
 
49
- 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 52 profile-gated MCP tools for schematic inspection and editing, controlled EasyEDA Pro API calls, BOM management, design rule checks, PCB board analysis, fabrication exports, and supplier integration.
79
+ 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 60 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.
50
80
 
51
81
  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.
52
82
 
@@ -456,6 +486,24 @@ When `OAUTH_ENABLED=true`, every request to `/mcp` must include an `Authorizatio
456
486
 
457
487
  The server enforces startup safety checks: **non-loopback `HTTP_HOST` without OAuth is rejected**, and `HTTP_AUTH_DISABLED=true` is rejected outside non-production loopback deployments.
458
488
 
489
+ ### Docker defaults
490
+
491
+ The Docker image starts in HTTP mode with `HTTP_HOST=127.0.0.1` so the default container boot path is safe and passes the same startup safety checks as local HTTP mode. For an externally reachable container, override the bind address and configure OAuth plus an explicit origin allowlist:
492
+
493
+ ```bash
494
+ docker run --rm \
495
+ -e HTTP_HOST=0.0.0.0 \
496
+ -e ALLOWED_ORIGINS=https://your-client.example.com \
497
+ -e OAUTH_ENABLED=true \
498
+ -e OAUTH_ISSUER=https://issuer.example.com/ \
499
+ -e OAUTH_JWKS_URI=https://issuer.example.com/.well-known/jwks.json \
500
+ -e OAUTH_AUDIENCE=easyeda-mcp-pro \
501
+ -p 127.0.0.1:3000:3000 \
502
+ ghcr.io/oaslananka/easyeda-mcp-pro:latest
503
+ ```
504
+
505
+ Do not expose non-loopback HTTP without OAuth. Use a reverse proxy or platform gateway for TLS termination and external access.
506
+
459
507
  #### HTTP Security Features
460
508
 
461
509
  - **Rate limiting**: Per-IP sliding window (configurable via `HTTP_RATE_LIMIT_MAX`), returns `429 Too Many Requests` with retry-after header
@@ -468,7 +516,14 @@ See `.env.example` for the complete list of configuration variables.
468
516
 
469
517
  ## MCP Tools
470
518
 
471
- The server currently registers 50 default profile-gated tools. Tools are filtered by the active `TOOL_PROFILE`: `core` exposes the normal workflow tools, `pro` adds manufacturing exports, `full` adds controlled documented EasyEDA API calls, and `dev` adds runtime probes for debugging.
519
+ The server currently registers up to 60 profile-gated tools. Tools are filtered by the active `TOOL_PROFILE`:
520
+
521
+ - `core`: 42 tools
522
+ - `pro`: 47 tools
523
+ - `full`: 56 tools
524
+ - `dev`: 60 tools
525
+
526
+ `core` exposes the standard workflow tools, `pro` adds manufacturing exports, `full` adds controlled documented EasyEDA API calls, and `dev` adds runtime probes for debugging.
472
527
 
473
528
  Capability scopes add a second authorization layer when `TOOL_SCOPES` is set. Leave it empty for the default local all-capabilities mode, or restrict it with comma/space separated scopes such as `diagnostics:read`, `schematic:read`, `schematic:write`, `bom:read`, `bom:source`, `checks:read`, `pcb:read`, `pcb:write`, `export:write`, `api:read`, `api:write`, and `bridge:execute`.
474
529
 
@@ -568,7 +623,7 @@ The schematic write APIs use EasyEDA Pro extension APIs that EasyEDA currently m
568
623
  │ (via Plugin) │ Protocol │ └───────────────┘ │
569
624
  └─────────────────┘ │ ┌───────────────┐ │
570
625
  │ │ ToolRegistry │ │
571
- │ │ (41 tools) │ │
626
+ │ │ (up to 60 tools) │ │
572
627
  │ └───────────────┘ │
573
628
  │ ┌───────────────┐ │
574
629
  │ │ Storage │──┼──► SQLite
@@ -712,6 +767,18 @@ This repository uses automated workflows to manage dependencies and releases:
712
767
 
713
768
  ---
714
769
 
770
+ ## Support the project
771
+
772
+ If this project helps you save time while working with EasyEDA Pro, BOM workflows, or MCP integrations, you can support ongoing development here:
773
+
774
+ <p align="left">
775
+ <a href="https://www.buymeacoffee.com/oaslananka">
776
+ <img src="https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20coffee&emoji=%E2%98%95&slug=oaslananka&button_colour=FFDD00&font_colour=000000&font_family=Inter&outline_colour=000000&coffee_colour=ffffff" alt="Buy me a coffee" />
777
+ </a>
778
+ </p>
779
+
780
+ ---
781
+
715
782
  ## License
716
783
 
717
784
  [MIT](LICENSE)
@@ -10,21 +10,21 @@ export const PROFILE_DEFINITIONS = {
10
10
  name: 'pro',
11
11
  label: 'Pro',
12
12
  description: 'Adds pick-and-place, PDF, netlist export for manufacturing workflows',
13
- approxToolCount: '46',
13
+ approxToolCount: '47',
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: '55',
20
+ approxToolCount: '56',
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: '59',
27
+ approxToolCount: '60',
28
28
  isDefault: false,
29
29
  },
30
30
  experimental: {
@@ -1 +1 @@
1
- export declare const SERVER_VERSION = "0.16.0";
1
+ export declare const SERVER_VERSION = "0.17.1";
@@ -1,2 +1,2 @@
1
- export const SERVER_VERSION = '0.16.0'; // x-release-please-version
1
+ export const SERVER_VERSION = '0.17.1'; // x-release-please-version
2
2
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,2 @@
1
+ export { evaluateQuoteWorkflow } from './workflow.js';
2
+ export type * from './types.js';
@@ -0,0 +1,2 @@
1
+ export { evaluateQuoteWorkflow } from './workflow.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/quote-gating/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,87 @@
1
+ /** Quote workflow gating and confirmation types. */
2
+ export type QuoteProvider = 'jlcpcb' | 'custom';
3
+ export type QuoteAction = 'estimate' | 'verify_quote' | 'place_order';
4
+ export type QuoteWorkflowStatus = 'ready' | 'blocked' | 'requires_confirmation';
5
+ export type QuoteRiskLevel = 'low' | 'medium' | 'high' | 'critical';
6
+ export interface QuoteBoardSpec {
7
+ boardCount: number;
8
+ layers: number;
9
+ widthMm: number;
10
+ heightMm: number;
11
+ thicknessMm?: number;
12
+ surfaceFinish?: string;
13
+ solderMask?: string;
14
+ copperWeight?: string;
15
+ assembly?: boolean;
16
+ stencil?: boolean;
17
+ }
18
+ export interface QuoteCostBreakdownItem {
19
+ item: string;
20
+ cost: number;
21
+ }
22
+ export interface QuoteCostSnapshot {
23
+ total?: number;
24
+ currency?: string;
25
+ breakdown?: QuoteCostBreakdownItem[];
26
+ estimated: boolean;
27
+ nonBinding: boolean;
28
+ verifiedAt?: string;
29
+ source: 'local-estimate' | 'vendor-api' | 'user-provided';
30
+ }
31
+ export interface QuoteConfirmationInput {
32
+ confirmed?: boolean;
33
+ confirmationText?: string;
34
+ userId?: string;
35
+ reason?: string;
36
+ }
37
+ export interface QuoteWorkflowInput {
38
+ provider: QuoteProvider;
39
+ action: QuoteAction;
40
+ projectId?: string;
41
+ board: QuoteBoardSpec;
42
+ quote?: QuoteCostSnapshot;
43
+ confirmation?: QuoteConfirmationInput;
44
+ vendorTermsReviewed?: boolean;
45
+ productionFilesReady?: boolean;
46
+ exportManifestVerified?: boolean;
47
+ productionReviewPassed?: boolean;
48
+ allowedPaidOperations?: boolean;
49
+ }
50
+ export interface QuoteGateIssue {
51
+ code: 'QUOTE_VENDOR_TERMS_NOT_REVIEWED' | 'QUOTE_PRODUCTION_FILES_NOT_READY' | 'QUOTE_EXPORT_MANIFEST_NOT_VERIFIED' | 'QUOTE_PRODUCTION_REVIEW_NOT_PASSED' | 'QUOTE_PAID_OPERATION_UNSUPPORTED' | 'QUOTE_CONFIRMATION_REQUIRED' | 'QUOTE_NON_BINDING_ESTIMATE' | 'QUOTE_BOARD_SPEC_RISK';
52
+ severity: 'error' | 'warning' | 'info';
53
+ message: string;
54
+ remediationHint: string;
55
+ details?: Record<string, unknown>;
56
+ }
57
+ export interface QuoteAuditEvent {
58
+ id: string;
59
+ createdAt: string;
60
+ provider: QuoteProvider;
61
+ action: QuoteAction;
62
+ projectId?: string;
63
+ confirmed: boolean;
64
+ userId?: string;
65
+ confirmationText?: string;
66
+ reason?: string;
67
+ paidOperationAttempted: boolean;
68
+ paidOperationAllowed: boolean;
69
+ }
70
+ export interface QuoteWorkflowReport {
71
+ provider: QuoteProvider;
72
+ action: QuoteAction;
73
+ projectId: string;
74
+ status: QuoteWorkflowStatus;
75
+ allowed: boolean;
76
+ quote: QuoteCostSnapshot;
77
+ risk: {
78
+ level: QuoteRiskLevel;
79
+ paidOperation: boolean;
80
+ humanConfirmationRequired: boolean;
81
+ nonBindingEstimate: boolean;
82
+ vendorTermsReviewed: boolean;
83
+ };
84
+ issues: QuoteGateIssue[];
85
+ audit: QuoteAuditEvent;
86
+ summary: string;
87
+ }
@@ -0,0 +1,3 @@
1
+ /** Quote workflow gating and confirmation types. */
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/quote-gating/types.ts"],"names":[],"mappings":"AAAA,oDAAoD"}
@@ -0,0 +1,3 @@
1
+ import type { QuoteWorkflowInput, QuoteWorkflowReport } from './types.js';
2
+ export declare function evaluateQuoteWorkflow(input: QuoteWorkflowInput): QuoteWorkflowReport;
3
+ export declare const QUOTE_CONFIRMATION_TEXT = "I understand this quote workflow is non-binding and no paid order will be placed by this tool";
@@ -0,0 +1,120 @@
1
+ import { createHash } from 'node:crypto';
2
+ const REQUIRED_CONFIRMATION = 'I understand this quote workflow is non-binding and no paid order will be placed by this tool';
3
+ function issue(code, severity, message, remediationHint, details) {
4
+ return { code, severity, message, remediationHint, details };
5
+ }
6
+ function auditId(input) {
7
+ return `quote_${createHash('sha256').update(JSON.stringify(input)).digest('hex').slice(0, 16)}`;
8
+ }
9
+ function paidOperation(action) {
10
+ return action === 'place_order';
11
+ }
12
+ function confirmationSatisfied(input) {
13
+ return Boolean(input.confirmation?.confirmed === true &&
14
+ input.confirmation.confirmationText === REQUIRED_CONFIRMATION &&
15
+ input.confirmation.userId);
16
+ }
17
+ function normalizeQuote(input) {
18
+ return {
19
+ total: input.quote?.total,
20
+ currency: input.quote?.currency ?? 'USD',
21
+ breakdown: input.quote?.breakdown ?? [],
22
+ estimated: input.quote?.estimated ?? true,
23
+ nonBinding: true,
24
+ verifiedAt: input.quote?.verifiedAt,
25
+ source: input.quote?.source ?? 'local-estimate',
26
+ };
27
+ }
28
+ function boardSpecRisk(input) {
29
+ const issues = [];
30
+ if (input.board.boardCount <= 0 ||
31
+ input.board.layers <= 0 ||
32
+ input.board.widthMm <= 0 ||
33
+ input.board.heightMm <= 0) {
34
+ issues.push(issue('QUOTE_BOARD_SPEC_RISK', 'error', 'Board quote specification contains non-positive dimensions, layer count, or quantity', 'Provide positive board dimensions, layer count, and quantity before requesting a quote snapshot.', { board: input.board }));
35
+ }
36
+ if (input.board.assembly && !input.exportManifestVerified) {
37
+ issues.push(issue('QUOTE_EXPORT_MANIFEST_NOT_VERIFIED', 'error', 'Assembly quote requires a verified export manifest', 'Verify Gerber, drill, BOM, pick-place, and QA artifacts before assembly quote review.'));
38
+ }
39
+ return issues;
40
+ }
41
+ function riskLevel(issues, isPaid) {
42
+ if (isPaid)
43
+ return 'critical';
44
+ if (issues.some((entry) => entry.severity === 'error'))
45
+ return 'high';
46
+ if (issues.some((entry) => entry.severity === 'warning'))
47
+ return 'medium';
48
+ return 'low';
49
+ }
50
+ function statusFor(issues, isPaid, confirmed) {
51
+ if (issues.some((entry) => entry.severity === 'error'))
52
+ return 'blocked';
53
+ if (isPaid && !confirmed)
54
+ return 'requires_confirmation';
55
+ return 'ready';
56
+ }
57
+ export function evaluateQuoteWorkflow(input) {
58
+ const issues = [];
59
+ const isPaid = paidOperation(input.action);
60
+ const confirmed = confirmationSatisfied(input);
61
+ const quote = normalizeQuote(input);
62
+ issues.push(...boardSpecRisk(input));
63
+ if (!input.vendorTermsReviewed) {
64
+ issues.push(issue('QUOTE_VENDOR_TERMS_NOT_REVIEWED', 'warning', 'Vendor terms have not been marked as reviewed', 'Review current vendor terms, supported operations, and account restrictions before relying on quote output.'));
65
+ }
66
+ if (!input.productionFilesReady) {
67
+ issues.push(issue('QUOTE_PRODUCTION_FILES_NOT_READY', 'warning', 'Production files are not marked as ready', 'Generate and verify Gerber, drill, BOM, pick-place, manifest, and QA artifacts before quote review.'));
68
+ }
69
+ if (!input.productionReviewPassed) {
70
+ issues.push(issue('QUOTE_PRODUCTION_REVIEW_NOT_PASSED', 'warning', 'Production review has not passed', 'Run PCB production review and resolve blocking manufacturing findings before quote review.'));
71
+ }
72
+ if (quote.nonBinding || quote.estimated) {
73
+ issues.push(issue('QUOTE_NON_BINDING_ESTIMATE', 'info', 'Quote output is an estimate and must be treated as non-binding until verified by the vendor UI or approved API', 'Show the estimate to a human reviewer and re-check final cost, shipping, taxes, coupons, and lead time before purchase.', { source: quote.source, estimated: quote.estimated }));
74
+ }
75
+ if (isPaid) {
76
+ issues.push(issue('QUOTE_PAID_OPERATION_UNSUPPORTED', 'error', 'Paid/order-like operations are intentionally unsupported by this workflow', 'Use the vendor UI or an approved external procurement workflow after human review. This tool only prepares quote/audit evidence.'));
77
+ if (!confirmed) {
78
+ issues.push(issue('QUOTE_CONFIRMATION_REQUIRED', 'error', 'Explicit human confirmation is required for order-like intent', `Set confirmation.confirmed=true, confirmation.userId, and confirmation.confirmationText exactly to: ${REQUIRED_CONFIRMATION}`));
79
+ }
80
+ }
81
+ const status = statusFor(issues, isPaid, confirmed);
82
+ const allowed = status === 'ready' && !isPaid;
83
+ const audit = {
84
+ id: auditId(input),
85
+ createdAt: new Date().toISOString(),
86
+ provider: input.provider,
87
+ action: input.action,
88
+ projectId: input.projectId,
89
+ confirmed,
90
+ userId: input.confirmation?.userId,
91
+ confirmationText: input.confirmation?.confirmationText,
92
+ reason: input.confirmation?.reason,
93
+ paidOperationAttempted: isPaid,
94
+ paidOperationAllowed: false,
95
+ };
96
+ const errorCount = issues.filter((entry) => entry.severity === 'error').length;
97
+ const warningCount = issues.filter((entry) => entry.severity === 'warning').length;
98
+ return {
99
+ provider: input.provider,
100
+ action: input.action,
101
+ projectId: input.projectId ?? '',
102
+ status,
103
+ allowed,
104
+ quote,
105
+ risk: {
106
+ level: riskLevel(issues, isPaid),
107
+ paidOperation: isPaid,
108
+ humanConfirmationRequired: isPaid,
109
+ nonBindingEstimate: quote.nonBinding || quote.estimated,
110
+ vendorTermsReviewed: Boolean(input.vendorTermsReviewed),
111
+ },
112
+ issues,
113
+ audit,
114
+ summary: allowed
115
+ ? 'Quote workflow is ready for human review. No paid operation will be performed.'
116
+ : `Quote workflow blocked or requires review: ${errorCount} error(s), ${warningCount} warning(s). No paid operation will be performed.`,
117
+ };
118
+ }
119
+ export const QUOTE_CONFIRMATION_TEXT = REQUIRED_CONFIRMATION;
120
+ //# sourceMappingURL=workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/quote-gating/workflow.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,41 @@
1
1
  import { z } from 'zod';
2
2
  import { validatePcbConstraints } from '../pcb-constraints/index.js';
3
3
  import { generateProductionQaArtifacts } from '../production-qa/index.js';
4
+ import { evaluateQuoteWorkflow } from '../quote-gating/index.js';
5
+ const quoteBoardSchema = z.object({
6
+ boardCount: z.number().int().positive(),
7
+ layers: z.number().int().positive(),
8
+ widthMm: z.number().positive(),
9
+ heightMm: z.number().positive(),
10
+ thicknessMm: z.number().positive().optional(),
11
+ surfaceFinish: z.string().optional(),
12
+ solderMask: z.string().optional(),
13
+ copperWeight: z.string().optional(),
14
+ assembly: z.boolean().optional(),
15
+ stencil: z.boolean().optional(),
16
+ });
17
+ const quoteSnapshotSchema = z.object({
18
+ total: z.number().nonnegative().optional(),
19
+ currency: z.string().optional(),
20
+ breakdown: z.array(z.object({ item: z.string(), cost: z.number().nonnegative() })).optional(),
21
+ estimated: z.boolean().optional(),
22
+ nonBinding: z.boolean().optional(),
23
+ verifiedAt: z.string().optional(),
24
+ source: z.enum(['local-estimate', 'vendor-api', 'user-provided']).optional(),
25
+ });
26
+ const quoteConfirmationSchema = z.object({
27
+ confirmed: z.boolean().optional(),
28
+ confirmationText: z.string().optional(),
29
+ userId: z.string().optional(),
30
+ reason: z.string().optional(),
31
+ });
32
+ const quoteGateIssueSchema = z.object({
33
+ code: z.string(),
34
+ severity: z.enum(['error', 'warning', 'info']),
35
+ message: z.string(),
36
+ remediationHint: z.string(),
37
+ details: z.record(z.string(), z.unknown()).optional(),
38
+ });
4
39
  const productionReviewBoardDataSchema = z.object({}).passthrough();
5
40
  const productionReviewIssueSchema = z.object({
6
41
  code: z.string(),
@@ -83,6 +118,122 @@ const qaArtifactSchema = z.object({
83
118
  required: z.boolean(),
84
119
  });
85
120
  function registerExportTools(registry, _config) {
121
+ registry.register({
122
+ name: 'easyeda_jlcpcb_quote_workflow',
123
+ title: 'JLCPCB quote workflow gate',
124
+ description: 'Prepare a non-binding JLCPCB quote workflow snapshot with explicit human-review gates and audit evidence. This tool never places orders or performs paid operations.',
125
+ profile: 'pro',
126
+ evidence: ['official-docs', 'inferred'],
127
+ risk: 'medium',
128
+ confirmWrite: false,
129
+ group: 'export',
130
+ version: '1.0.0',
131
+ annotations: {
132
+ readOnlyHint: true,
133
+ destructiveHint: false,
134
+ idempotentHint: true,
135
+ },
136
+ inputSchema: z.object({
137
+ provider: z.enum(['jlcpcb', 'custom']).default('jlcpcb'),
138
+ action: z.enum(['estimate', 'verify_quote', 'place_order']).default('estimate'),
139
+ projectId: z.string().optional(),
140
+ board: quoteBoardSchema,
141
+ quote: quoteSnapshotSchema.optional(),
142
+ confirmation: quoteConfirmationSchema.optional(),
143
+ vendorTermsReviewed: z.boolean().optional(),
144
+ productionFilesReady: z.boolean().optional(),
145
+ exportManifestVerified: z.boolean().optional(),
146
+ productionReviewPassed: z.boolean().optional(),
147
+ allowedPaidOperations: z.boolean().optional(),
148
+ }),
149
+ outputSchema: z.object({
150
+ provider: z.string(),
151
+ action: z.string(),
152
+ project_id: z.string(),
153
+ status: z.string(),
154
+ allowed: z.boolean(),
155
+ quote: z.object({
156
+ total: z.number().optional(),
157
+ currency: z.string().optional(),
158
+ breakdown: z.array(z.object({ item: z.string(), cost: z.number() })).optional(),
159
+ estimated: z.boolean(),
160
+ non_binding: z.boolean(),
161
+ verified_at: z.string().optional(),
162
+ source: z.string(),
163
+ }),
164
+ risk: z.object({
165
+ level: z.string(),
166
+ paid_operation: z.boolean(),
167
+ human_confirmation_required: z.boolean(),
168
+ non_binding_estimate: z.boolean(),
169
+ vendor_terms_reviewed: z.boolean(),
170
+ }),
171
+ issues: z.array(quoteGateIssueSchema),
172
+ audit: z.object({
173
+ id: z.string(),
174
+ created_at: z.string(),
175
+ provider: z.string(),
176
+ action: z.string(),
177
+ project_id: z.string().optional(),
178
+ confirmed: z.boolean(),
179
+ user_id: z.string().optional(),
180
+ confirmation_text: z.string().optional(),
181
+ reason: z.string().optional(),
182
+ paid_operation_attempted: z.boolean(),
183
+ paid_operation_allowed: z.boolean(),
184
+ }),
185
+ summary: z.string(),
186
+ unsupported_operations: z.array(z.string()),
187
+ }),
188
+ handler: async (_ctx, params) => {
189
+ const report = evaluateQuoteWorkflow(params);
190
+ return {
191
+ provider: report.provider,
192
+ action: report.action,
193
+ project_id: report.projectId,
194
+ status: report.status,
195
+ allowed: report.allowed,
196
+ quote: {
197
+ total: report.quote.total,
198
+ currency: report.quote.currency,
199
+ breakdown: report.quote.breakdown,
200
+ estimated: report.quote.estimated,
201
+ non_binding: report.quote.nonBinding,
202
+ verified_at: report.quote.verifiedAt,
203
+ source: report.quote.source,
204
+ },
205
+ risk: {
206
+ level: report.risk.level,
207
+ paid_operation: report.risk.paidOperation,
208
+ human_confirmation_required: report.risk.humanConfirmationRequired,
209
+ non_binding_estimate: report.risk.nonBindingEstimate,
210
+ vendor_terms_reviewed: report.risk.vendorTermsReviewed,
211
+ },
212
+ issues: report.issues,
213
+ audit: {
214
+ id: report.audit.id,
215
+ created_at: report.audit.createdAt,
216
+ provider: report.audit.provider,
217
+ action: report.audit.action,
218
+ project_id: report.audit.projectId,
219
+ confirmed: report.audit.confirmed,
220
+ user_id: report.audit.userId,
221
+ confirmation_text: report.audit.confirmationText,
222
+ reason: report.audit.reason,
223
+ paid_operation_attempted: report.audit.paidOperationAttempted,
224
+ paid_operation_allowed: report.audit.paidOperationAllowed,
225
+ },
226
+ summary: report.summary,
227
+ unsupported_operations: [
228
+ 'place_order',
229
+ 'checkout',
230
+ 'payment',
231
+ 'coupon_apply',
232
+ 'shipping_purchase',
233
+ ],
234
+ };
235
+ },
236
+ });
86
237
  registry.register({
87
238
  name: 'easyeda_production_qa_artifacts',
88
239
  title: 'Generate production QA artifacts',
@@ -1 +1 @@
1
- {"version":3,"file":"L1_export.js","sourceRoot":"","sources":["../../src/tools/L1_export.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"L1_export.js","sourceRoot":"","sources":["../../src/tools/L1_export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACvC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAC1C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7F,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC7E,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC9C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC;AAEH,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAEnE,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;CAC5B,CAAC,CAAC;AAEH,SAAS,mBAAmB,CAC1B,SAAkD,EAClD,IAA0C;IAE1C,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IAC9C,MAAM,MAAM,GAAG,sBAAsB,CAAC,CAAC,SAAS,IAAI,EAAE,CAAuB,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,eAAe,EAAE,KAAK,CAAC,eAAe;KACvC,CAAC,CAAC,CAAC;IACJ,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/C,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,eAAe,EAAE,KAAK,CAAC,eAAe;KACvC,CAAC,CAAC,CAAC;IACJ,OAAO;QACL,IAAI;QACJ,MAAM,EAAE,MAAM,CAAC,KAAK;QACpB,OAAO,EAAE,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAC9C,WAAW,EAAE,MAAM,CAAC,MAAM;QAC1B,aAAa,EAAE,QAAQ,CAAC,MAAM;QAC9B,MAAM;QACN,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC;SACR,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;SAC3F,QAAQ,EAAE;IACb,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACpC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACvC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACrC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC9C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IAC3E,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QACX,qBAAqB;QACrB,gBAAgB;QAChB,cAAc;QACd,yBAAyB;QACzB,aAAa;KACd,CAAC;IACF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;CACtB,CAAC,CAAC;AAEH,SAAS,mBAAmB,CAC1B,QAAqD,EACrD,OAAkB;IAElB,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,+BAA+B;QACrC,KAAK,EAAE,4BAA4B;QACnC,WAAW,EACT,sKAAsK;QACxK,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,CAAC,eAAe,EAAE,UAAU,CAAC;QACvC,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,KAAK;QACnB,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;SACrB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;YACxD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;YAC/E,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAChC,KAAK,EAAE,gBAAgB;YACvB,KAAK,EAAE,mBAAmB,CAAC,QAAQ,EAAE;YACrC,YAAY,EAAE,uBAAuB,CAAC,QAAQ,EAAE;YAChD,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC3C,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC5C,sBAAsB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC9C,sBAAsB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC9C,qBAAqB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC9C,CAAC;QACF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;YACtB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;YACpB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;gBACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC/B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;gBAC/E,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;gBACtB,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;gBACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;aACnB,CAAC;YACF,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;gBACb,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;gBACjB,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;gBAC3B,2BAA2B,EAAE,CAAC,CAAC,OAAO,EAAE;gBACxC,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE;gBACjC,qBAAqB,EAAE,CAAC,CAAC,OAAO,EAAE;aACnC,CAAC;YACF,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC;YACrC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;gBACd,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;gBACd,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;gBACtB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;gBAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBACjC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;gBACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC9B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBACxC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC7B,wBAAwB,EAAE,CAAC,CAAC,OAAO,EAAE;gBACrC,sBAAsB,EAAE,CAAC,CAAC,OAAO,EAAE;aACpC,CAAC;YACF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,sBAAsB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SAC5C,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,IAAiB,EAAE,MAAe,EAAE,EAAE;YACpD,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAqD,CAAC,CAAC;YAC5F,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,UAAU,EAAE,MAAM,CAAC,SAAS;gBAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,KAAK,EAAE;oBACL,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;oBACzB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;oBAC/B,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;oBACjC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;oBACjC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU;oBACpC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU;oBACpC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;iBAC5B;gBACD,IAAI,EAAE;oBACJ,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;oBACxB,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa;oBACzC,2BAA2B,EAAE,MAAM,CAAC,IAAI,CAAC,yBAAyB;oBAClE,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB;oBACpD,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB;iBACvD;gBACD,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE;oBACL,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;oBACnB,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;oBAClC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;oBAC/B,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;oBAC3B,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;oBAClC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;oBACjC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;oBAC5B,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,gBAAgB;oBAChD,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;oBAC3B,wBAAwB,EAAE,MAAM,CAAC,KAAK,CAAC,sBAAsB;oBAC7D,sBAAsB,EAAE,MAAM,CAAC,KAAK,CAAC,oBAAoB;iBAC1D;gBACD,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,sBAAsB,EAAE;oBACtB,aAAa;oBACb,UAAU;oBACV,SAAS;oBACT,cAAc;oBACd,mBAAmB;iBACpB;aACF,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,iCAAiC;QACvC,KAAK,EAAE,kCAAkC;QACzC,WAAW,EACT,2IAA2I;QAC7I,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,CAAC,UAAU,CAAC;QACtB,IAAI,EAAE,KAAK;QACX,YAAY,EAAE,KAAK;QACnB,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;SACrB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC/B,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;YACrD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;YACjD,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC3C,qBAAqB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;YACrD,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC5C,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAClC,sBAAsB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC/C,CAAC;QACF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;YACtB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC/B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;YACnB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;YAC9B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;YACzC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;YACpC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;gBAChB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;gBAChD,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;gBACrD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;gBACjD,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;gBAClD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;gBAC1C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;gBAC5C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;aACzB,CAAC;SACH,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,IAAiB,EAAE,MAAe,EAAE,EAAE;YACpD,MAAM,MAAM,GAAG,6BAA6B,CAC1C,MAA6D,CAC9D,CAAC;YACF,OAAO;gBACL,UAAU,EAAE,MAAM,CAAC,SAAS;gBAC5B,YAAY,EAAE,MAAM,CAAC,WAAW;gBAChC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,wDAAwD;QACrE,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,CAAC,eAAe,CAAC;QAC3B,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,KAAK;QACnB,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;SACrB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;YACrB,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;YAClE,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;YAC5C,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAChC,gBAAgB,EAAE,CAAC;iBAChB,MAAM,CAAC;gBACN,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;gBACtD,SAAS,EAAE,+BAA+B,CAAC,QAAQ,EAAE;aACtD,CAAC;iBACD,QAAQ,EAAE;SACd,CAAC;QACF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;YACtB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;YACrD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;YACrB,4BAA4B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACpD,iBAAiB,EAAE,CAAC;iBACjB,MAAM,CAAC;gBACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;gBAChB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;gBACnB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;gBACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;gBAC3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;gBAC7C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC;gBAC5C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC;aAC/C,CAAC;iBACD,QAAQ,EAAE;YACb,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SACtC,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,GAAgB,EAAE,MAAe,EAAE,EAAE;YACnD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,MAS5E,CAAC;YACF,IAAI,CAAC;gBACH,MAAM,sBAAsB,GAAG,mBAAmB,CAChD,gBAAgB,EAAE,SAAS,EAC3B,gBAAgB,EAAE,IAAI,CACvB,CAAC;gBAEF,IAAI,sBAAsB,EAAE,OAAO,EAAE,CAAC;oBACpC,OAAO;wBACL,UAAU,EAAE,SAAS;wBACrB,QAAQ,EAAE,KAAK;wBACf,4BAA4B,EAAE,IAAI;wBAClC,iBAAiB,EAAE,sBAAsB;qBAC1C,CAAC;gBACJ,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;oBAC1D,SAAS;oBACT,WAAW;oBACX,YAAY;oBACZ,QAAQ;iBACT,CAAC,CAAC;gBACH,MAAM,IAAI,GAAG,MAAuD,CAAC;gBACrE,OAAO;oBACL,UAAU,EAAE,SAAS;oBACrB,aAAa,EAAE,IAAI,CAAC,YAAY;oBAChC,UAAU,EAAE,IAAI,CAAC,SAAS;oBAC1B,QAAQ,EAAE,IAAI;oBACd,iBAAiB,EAAE,sBAAsB;iBAC1C,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,UAAU,EAAE,SAAS;oBACrB,QAAQ,EAAE,KAAK;oBACf,iBAAiB,EAAE,mBAAmB,CACpC,gBAAgB,EAAE,SAAS,EAC3B,gBAAgB,EAAE,IAAI,CACvB;oBACD,aAAa,EAAE,IAAI;oBACnB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,4BAA4B;QACnC,WAAW,EACT,sHAAsH;QACxH,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,CAAC,eAAe,CAAC;QAC3B,IAAI,EAAE,KAAK;QACX,YAAY,EAAE,KAAK;QACnB,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;SACrB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;YACrB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;SAC9C,CAAC;QACF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;YACtB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAChC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;YAC1D,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;YACrB,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SACtC,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,GAAgB,EAAE,MAAe,EAAE,EAAE;YACnD,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAA+C,CAAC;YAC9E,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE;oBACvD,SAAS;oBACT,MAAM;iBACP,CAAC,CAAC;gBACH,MAAM,IAAI,GAAG,MAAwD,CAAC;gBACtE,OAAO;oBACL,UAAU,EAAE,SAAS;oBACrB,MAAM;oBACN,SAAS,EAAE,IAAI,CAAC,QAAQ;oBACxB,eAAe,EAAE,IAAI,CAAC,cAAc;oBACpC,QAAQ,EAAE,IAAI;iBACf,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,UAAU,EAAE,SAAS;oBACrB,MAAM;oBACN,QAAQ,EAAE,KAAK;oBACf,aAAa,EAAE,IAAI;oBACnB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,kDAAkD;QAC/D,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,CAAC,eAAe,CAAC;QAC3B,IAAI,EAAE,KAAK;QACX,YAAY,EAAE,KAAK;QACnB,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;SACrB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;YACrB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;YAC7D,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;SACpE,CAAC;QACF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;YACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;YACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;YAChD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;YACrB,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SACtC,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,GAAgB,EAAE,MAAe,EAAE,EAAE;YACnD,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAIzC,CAAC;YACF,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE;oBACjD,SAAS;oBACT,KAAK;oBACL,WAAW;oBACX,IAAI,EAAE,KAAK;iBACZ,CAAC,CAAC;gBACH,MAAM,IAAI,GAAG,MAA+C,CAAC;gBAC7D,OAAO;oBACL,UAAU,EAAE,SAAS;oBACrB,KAAK;oBACL,WAAW;oBACX,SAAS,EAAE,IAAI,CAAC,QAAQ;oBACxB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,QAAQ,EAAE,IAAI;iBACf,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,UAAU,EAAE,SAAS;oBACrB,KAAK;oBACL,WAAW;oBACX,QAAQ,EAAE,KAAK;oBACf,aAAa,EAAE,IAAI;oBACnB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,yFAAyF;QAC3F,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,CAAC,eAAe,CAAC;QAC3B,IAAI,EAAE,KAAK;QACX,YAAY,EAAE,KAAK;QACnB,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;SACrB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;YACrB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;SAC9D,CAAC;QACF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;YACtB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;YACpD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;YACrB,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SACtC,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,GAAgB,EAAE,MAAe,EAAE,EAAE;YACnD,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAA+C,CAAC;YAC9E,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;oBACrD,SAAS;oBACT,MAAM;iBACP,CAAC,CAAC;gBACH,MAAM,IAAI,GAAG,MAAkD,CAAC;gBAChE,OAAO;oBACL,UAAU,EAAE,SAAS;oBACrB,MAAM;oBACN,SAAS,EAAE,IAAI,CAAC,QAAQ;oBACxB,SAAS,EAAE,IAAI,CAAC,QAAQ;oBACxB,QAAQ,EAAE,IAAI;iBACf,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,UAAU,EAAE,SAAS;oBACrB,MAAM;oBACN,QAAQ,EAAE,KAAK;oBACf,aAAa,EAAE,IAAI;oBACnB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -59,11 +59,10 @@ export declare class JlcpcbClient {
59
59
  */
60
60
  getQuote(request: JlcPcbOrderRequest): Promise<JlcPcbQuoteResult>;
61
61
  /**
62
- * Place a PCB order with JLCPCB.
63
- * @param request - The PCB order specification
64
- * @returns Order result containing the order ID
62
+ * Paid/order-like operations are intentionally unsupported by this MCP package.
63
+ * Use the quote gating workflow to prepare audit evidence, then complete procurement outside the agent.
65
64
  */
66
- placeOrder(request: JlcPcbOrderRequest): Promise<JlcPcbOrderResult>;
65
+ placeOrder(_request: JlcPcbOrderRequest): Promise<JlcPcbOrderResult>;
67
66
  /**
68
67
  * Get the current status of an existing JLCPCB order.
69
68
  * @param orderId - The JLCPCB order ID
@@ -94,14 +94,15 @@ export class JlcpcbClient {
94
94
  });
95
95
  }
96
96
  /**
97
- * Place a PCB order with JLCPCB.
98
- * @param request - The PCB order specification
99
- * @returns Order result containing the order ID
97
+ * Paid/order-like operations are intentionally unsupported by this MCP package.
98
+ * Use the quote gating workflow to prepare audit evidence, then complete procurement outside the agent.
100
99
  */
101
- async placeOrder(request) {
102
- return this.requestWithRetry('/api/order/addOrder', {
103
- method: 'POST',
104
- body: request,
100
+ async placeOrder(_request) {
101
+ throw new EasyEdaMcpError({
102
+ code: 'FEATURE_DISABLED',
103
+ message: 'JLCPCB order placement is intentionally unsupported by easyeda-mcp-pro.',
104
+ suggestion: 'Use easyeda_jlcpcb_quote_workflow for quote/audit preparation, then complete any purchase manually in an approved procurement workflow.',
105
+ retryable: false,
105
106
  });
106
107
  }
107
108
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/vendors/jlcpcb/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/vendors/jlcpcb/client.ts"],"names":[],"mappings":"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"}
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "easyeda-mcp-pro",
3
- "version": "0.16.0",
3
+ "version": "0.17.1",
4
4
  "mcpName": "io.github.oaslananka/easyeda-mcp-pro",
5
5
  "description": "MCP server for EasyEDA Pro: PCB inspection, BOM, exports, and hardware review.",
6
6
  "keywords": [
@@ -72,7 +72,8 @@
72
72
  "check:metadata": "node scripts/check-metadata.mjs",
73
73
  "inventory:capture": "tsx scripts/capture-runtime-inventory.mts",
74
74
  "inventory:diff": "tsx scripts/diff-runtime-inventory.mts",
75
- "eval:golden": "tsx scripts/run-evals.mts"
75
+ "eval:golden": "tsx scripts/run-evals.mts",
76
+ "eval:golden:update": "tsx scripts/run-evals.mts --update-baseline"
76
77
  },
77
78
  "dependencies": {
78
79
  "@modelcontextprotocol/sdk": "^1.29.0",