@kernlang/mcp-server 3.1.7 → 3.1.9
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 +324 -0
- package/dist/index.js +460 -9
- package/dist/index.js.map +1 -1
- package/package.json +30 -12
package/README.md
ADDED
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
# @kernlang/mcp-server
|
|
2
|
+
|
|
3
|
+
MCP server for KERN -- the LLM-native language that compiles to 12 targets. Give any AI agent the ability to write, compile, review, and self-correct `.kern` code.
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
npx @kernlang/mcp-server
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## What is this?
|
|
10
|
+
|
|
11
|
+
KERN is a declarative DSL designed specifically for AI code generation. This MCP server exposes KERN's full compiler, reviewer, and schema to any MCP-compatible client (Claude Desktop, Cursor, Windsurf, VS Code, etc.).
|
|
12
|
+
|
|
13
|
+
An AI agent using this server can:
|
|
14
|
+
1. **Ask what it can write** -- `schema` tool returns the full language spec as JSON
|
|
15
|
+
2. **Compile .kern to any target** -- Next.js, React, Vue, Express, FastAPI, MCP servers, and more
|
|
16
|
+
3. **Self-correct from errors** -- `compile-json` returns structured diagnostics with line numbers and suggestions
|
|
17
|
+
4. **Review code** -- 76+ static analysis rules with taint tracking and OWASP coverage
|
|
18
|
+
|
|
19
|
+
## Quick start
|
|
20
|
+
|
|
21
|
+
### Claude Desktop
|
|
22
|
+
|
|
23
|
+
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{
|
|
27
|
+
"mcpServers": {
|
|
28
|
+
"kern": {
|
|
29
|
+
"command": "npx",
|
|
30
|
+
"args": ["@kernlang/mcp-server"]
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Cursor
|
|
37
|
+
|
|
38
|
+
Add to `.cursor/mcp.json` in your project:
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"mcpServers": {
|
|
43
|
+
"kern": {
|
|
44
|
+
"command": "npx",
|
|
45
|
+
"args": ["@kernlang/mcp-server"]
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Claude Code
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
claude mcp add kern -- npx @kernlang/mcp-server
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Windsurf / VS Code
|
|
58
|
+
|
|
59
|
+
Add to your MCP settings:
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"kern": {
|
|
64
|
+
"command": "npx",
|
|
65
|
+
"args": ["@kernlang/mcp-server"]
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Tools
|
|
71
|
+
|
|
72
|
+
### compile
|
|
73
|
+
|
|
74
|
+
Compile `.kern` source to any target framework. Returns generated code.
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
source: ".kern source code"
|
|
78
|
+
target: "nextjs" | "react" | "vue" | "express" | "fastapi" | "mcp" | ...
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### compile-json
|
|
82
|
+
|
|
83
|
+
Compile with structured JSON diagnostics for programmatic self-correction. Returns `{ success, code, diagnostics, stats }`.
|
|
84
|
+
|
|
85
|
+
Each diagnostic includes `code`, `severity`, `line`, `col`, `endCol`, and `suggestion` -- everything an LLM needs to fix its own mistakes.
|
|
86
|
+
|
|
87
|
+
### schema
|
|
88
|
+
|
|
89
|
+
Returns the full KERN language schema as JSON: all node types, their props (with required/optional and types), allowed children, style shorthands, and multiline block types.
|
|
90
|
+
|
|
91
|
+
Use this before writing `.kern` code to know exactly what's valid.
|
|
92
|
+
|
|
93
|
+
### review
|
|
94
|
+
|
|
95
|
+
Run static analysis (76+ rules, taint tracking, OWASP) on TypeScript/JavaScript source code.
|
|
96
|
+
|
|
97
|
+
### review-kern
|
|
98
|
+
|
|
99
|
+
Lint `.kern` source for structural issues, missing props, and pattern violations.
|
|
100
|
+
|
|
101
|
+
### review-mcp-server
|
|
102
|
+
|
|
103
|
+
Scan MCP server code for security vulnerabilities. 13 rules mapped to OWASP MCP Top 10.
|
|
104
|
+
|
|
105
|
+
### parse
|
|
106
|
+
|
|
107
|
+
Parse `.kern` source and return the intermediate representation (IR). Useful for debugging.
|
|
108
|
+
|
|
109
|
+
### decompile
|
|
110
|
+
|
|
111
|
+
Convert parsed IR back to human-readable `.kern` text.
|
|
112
|
+
|
|
113
|
+
### validate
|
|
114
|
+
|
|
115
|
+
Validate `.kern` syntax without compiling. Returns parse errors or success.
|
|
116
|
+
|
|
117
|
+
### list-targets
|
|
118
|
+
|
|
119
|
+
List all 12 available compile targets with descriptions.
|
|
120
|
+
|
|
121
|
+
### list-nodes
|
|
122
|
+
|
|
123
|
+
Browse KERN node types by category (layout, backend, state, types, mcp, etc.) with their props and allowed children.
|
|
124
|
+
|
|
125
|
+
## Resources
|
|
126
|
+
|
|
127
|
+
| Resource | URI | Description |
|
|
128
|
+
|----------|-----|-------------|
|
|
129
|
+
| kern-spec | `kern://spec` | Full language specification |
|
|
130
|
+
| kern-examples | `kern://examples/{category}` | Example code by category (ui, api, state-machine, mcp, terminal) |
|
|
131
|
+
| kern-targets | `kern://targets` | Available compile targets as JSON |
|
|
132
|
+
|
|
133
|
+
## Prompts
|
|
134
|
+
|
|
135
|
+
### write-kern
|
|
136
|
+
|
|
137
|
+
Comprehensive system prompt that teaches an LLM how to write `.kern` code -- grammar rules, node types, style shorthands, and annotated examples for UI, API, state machines, MCP servers, hooks, and type systems.
|
|
138
|
+
|
|
139
|
+
## LLM self-correction loop
|
|
140
|
+
|
|
141
|
+
The `schema` and `compile-json` tools enable a closed-loop workflow:
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
1. schema --> "what can I write?"
|
|
145
|
+
2. write .kern --> generate code using schema
|
|
146
|
+
3. compile-json --> "did I get it right?"
|
|
147
|
+
4. if errors:
|
|
148
|
+
read diagnostics (line, col, suggestion)
|
|
149
|
+
fix and goto 3
|
|
150
|
+
5. done
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
No human intervention needed. The LLM can iterate to correct code autonomously.
|
|
154
|
+
|
|
155
|
+
## KERN syntax at a glance
|
|
156
|
+
|
|
157
|
+
```kern
|
|
158
|
+
// Comments work with // or #
|
|
159
|
+
|
|
160
|
+
doc text="User management API"
|
|
161
|
+
server name=UserAPI port=3001
|
|
162
|
+
middleware name=cors
|
|
163
|
+
middleware name=json
|
|
164
|
+
|
|
165
|
+
route GET /api/users
|
|
166
|
+
auth required
|
|
167
|
+
handler <<<
|
|
168
|
+
const users = await db.query('SELECT * FROM users');
|
|
169
|
+
res.json(users);
|
|
170
|
+
>>>
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
```kern
|
|
174
|
+
// State machine -- 7 lines, 140+ lines TypeScript output
|
|
175
|
+
machine name=Order initial=pending
|
|
176
|
+
transition from=pending to=confirmed event=confirm
|
|
177
|
+
transition from=confirmed to=shipped event=ship
|
|
178
|
+
transition from=shipped to=delivered event=deliver
|
|
179
|
+
transition from=pending to=cancelled event=cancel
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## Project structure
|
|
183
|
+
|
|
184
|
+
A typical KERN project looks like this:
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
my-project/
|
|
188
|
+
kern.config.ts # KERN configuration
|
|
189
|
+
src/
|
|
190
|
+
features/
|
|
191
|
+
auth.kern # .kern source files
|
|
192
|
+
dashboard.kern
|
|
193
|
+
generated/ # compiled output (--outdir)
|
|
194
|
+
auth.ts
|
|
195
|
+
dashboard.tsx
|
|
196
|
+
src/ # facade re-exports (--facades)
|
|
197
|
+
auth.ts # export * from '../generated/auth.js'
|
|
198
|
+
dashboard.ts
|
|
199
|
+
index.ts # barrel exports (auto-generated)
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
With `kern compile src/features --outdir=generated --facades`, you write `.kern` files and everything else is auto-generated.
|
|
203
|
+
|
|
204
|
+
## Configuration
|
|
205
|
+
|
|
206
|
+
Create `kern.config.ts` in your project root:
|
|
207
|
+
|
|
208
|
+
```ts
|
|
209
|
+
import type { KernConfig } from 'kern-lang';
|
|
210
|
+
|
|
211
|
+
const config: KernConfig = {
|
|
212
|
+
// Target framework
|
|
213
|
+
target: 'nextjs',
|
|
214
|
+
|
|
215
|
+
// Output directory for generated files
|
|
216
|
+
output: {
|
|
217
|
+
outDir: 'src/generated',
|
|
218
|
+
sourceMaps: true,
|
|
219
|
+
},
|
|
220
|
+
|
|
221
|
+
// i18n support
|
|
222
|
+
i18n: {
|
|
223
|
+
enabled: true,
|
|
224
|
+
hookName: 'useTranslation',
|
|
225
|
+
importPath: 'react-i18next',
|
|
226
|
+
},
|
|
227
|
+
|
|
228
|
+
// Component import mappings
|
|
229
|
+
components: {
|
|
230
|
+
uiLibrary: '@components/ui',
|
|
231
|
+
componentRoot: '@/components',
|
|
232
|
+
},
|
|
233
|
+
|
|
234
|
+
// Color palette (hex -> Tailwind class)
|
|
235
|
+
colors: {
|
|
236
|
+
'#09090b': 'zinc-950',
|
|
237
|
+
'#f97316': 'orange-500',
|
|
238
|
+
},
|
|
239
|
+
|
|
240
|
+
// Code review settings
|
|
241
|
+
review: {
|
|
242
|
+
showConfidence: true,
|
|
243
|
+
maxComplexity: 15,
|
|
244
|
+
},
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
export default config;
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
The config is auto-loaded by the CLI. All fields are optional -- sensible defaults are applied.
|
|
251
|
+
|
|
252
|
+
### Configuration options
|
|
253
|
+
|
|
254
|
+
| Key | Default | Description |
|
|
255
|
+
|-----|---------|-------------|
|
|
256
|
+
| `target` | `nextjs` | Compile target (auto-detected from package.json) |
|
|
257
|
+
| `structure` | `flat` | Output structure: `flat`, `bulletproof`, `atomic`, `kern` |
|
|
258
|
+
| `output.outDir` | `.` | Directory for generated files |
|
|
259
|
+
| `output.sourceMaps` | `false` | Generate `.map` files |
|
|
260
|
+
| `i18n.enabled` | `true` | Wrap strings in `t()` calls |
|
|
261
|
+
| `i18n.hookName` | `useTranslation` | i18n hook name |
|
|
262
|
+
| `components.uiLibrary` | `@components/ui` | UI component import path |
|
|
263
|
+
| `colors` | Zinc scale | Hex-to-Tailwind color mappings |
|
|
264
|
+
| `review.maxComplexity` | `15` | Max cognitive complexity |
|
|
265
|
+
| `review.disabledRules` | `[]` | Rule IDs to disable |
|
|
266
|
+
| `express.security` | `strict` | Express security level |
|
|
267
|
+
| `fastapi.cors` | `false` | Enable CORS for FastAPI |
|
|
268
|
+
|
|
269
|
+
## CLI commands
|
|
270
|
+
|
|
271
|
+
The KERN CLI (`kern-lang` npm package) provides these commands:
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
# Compile .kern files to TypeScript
|
|
275
|
+
kern compile src/ --outdir=generated --facades --barrel
|
|
276
|
+
|
|
277
|
+
# Compile with JSON diagnostics (for LLM self-correction)
|
|
278
|
+
kern compile src/ --outdir=generated --json
|
|
279
|
+
|
|
280
|
+
# Dump full language schema as JSON
|
|
281
|
+
kern schema
|
|
282
|
+
|
|
283
|
+
# Watch mode -- recompile on changes
|
|
284
|
+
kern dev src/
|
|
285
|
+
|
|
286
|
+
# Scan project and auto-detect target
|
|
287
|
+
kern scan
|
|
288
|
+
|
|
289
|
+
# LLM-powered code review
|
|
290
|
+
kern review src/
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### Compile flags
|
|
294
|
+
|
|
295
|
+
| Flag | Description |
|
|
296
|
+
|------|-------------|
|
|
297
|
+
| `--outdir=DIR` | Output directory (default: `generated/`) |
|
|
298
|
+
| `--target=TARGET` | Override compile target |
|
|
299
|
+
| `--facades` | Auto-generate `src/*.ts` re-export facades |
|
|
300
|
+
| `--facades-dir=DIR` | Custom facades directory |
|
|
301
|
+
| `--barrel` | Generate barrel `index.ts` in output dir |
|
|
302
|
+
| `--strict-parse` | Fail on parse errors |
|
|
303
|
+
| `--json` | Output structured JSON diagnostics |
|
|
304
|
+
|
|
305
|
+
## Compile targets
|
|
306
|
+
|
|
307
|
+
| Target | Output |
|
|
308
|
+
|--------|--------|
|
|
309
|
+
| `nextjs` | Next.js App Router (TypeScript/React) |
|
|
310
|
+
| `tailwind` | React + Tailwind CSS |
|
|
311
|
+
| `web` | Plain React components |
|
|
312
|
+
| `vue` | Vue 3 SFC |
|
|
313
|
+
| `nuxt` | Nuxt 3 |
|
|
314
|
+
| `express` | Express TypeScript REST API |
|
|
315
|
+
| `fastapi` | FastAPI Python async backend |
|
|
316
|
+
| `native` | React Native (iOS/Android) |
|
|
317
|
+
| `cli` | Node.js CLI |
|
|
318
|
+
| `terminal` | Terminal UI (ANSI) |
|
|
319
|
+
| `ink` | Ink (React for terminals) |
|
|
320
|
+
| `mcp` | MCP server (Model Context Protocol) |
|
|
321
|
+
|
|
322
|
+
## License
|
|
323
|
+
|
|
324
|
+
AGPL-3.0
|
package/dist/index.js
CHANGED
|
@@ -8,13 +8,13 @@
|
|
|
8
8
|
* Usage: kern-mcp
|
|
9
9
|
* Config: { "mcpServers": { "kern": { "command": "npx", "args": ["@kernlang/mcp-server"] } } }
|
|
10
10
|
*/
|
|
11
|
-
import { countTokens, decompile, KERN_VERSION, NODE_SCHEMAS, NODE_TYPES, parse, resolveConfig, STYLE_SHORTHANDS, serializeIR, VALID_TARGETS, } from '@kernlang/core';
|
|
11
|
+
import { countTokens, decompile, defaultRuntime, KERN_VERSION, NODE_SCHEMAS, NODE_TYPES, parse, parseWithDiagnostics, resolveConfig, STYLE_SHORTHANDS, serializeIR, VALID_TARGETS, VALUE_SHORTHANDS, } from '@kernlang/core';
|
|
12
12
|
import { transpileExpress } from '@kernlang/express';
|
|
13
13
|
import { transpileFastAPI } from '@kernlang/fastapi';
|
|
14
|
-
import { transpileMCP } from '@kernlang/mcp';
|
|
14
|
+
import { transpileMCP, transpileMCPPython } from '@kernlang/mcp';
|
|
15
15
|
import { transpileNextjs, transpileTailwind, transpileWeb } from '@kernlang/react';
|
|
16
16
|
import { reviewKernSource, reviewSource } from '@kernlang/review';
|
|
17
|
-
import { reviewMCPSource } from '@kernlang/review-mcp';
|
|
17
|
+
import { computeSecurityScore, generateLiveLockFile, inferMCP, inspectMcpServers, reviewMCPSource, runPostScan, scanMcpConfigs, verifyLiveLockFile, } from '@kernlang/review-mcp';
|
|
18
18
|
import { transpileInk, transpileTerminal } from '@kernlang/terminal';
|
|
19
19
|
import { transpileNuxt, transpileVue } from '@kernlang/vue';
|
|
20
20
|
import { McpServer, ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
@@ -70,6 +70,140 @@ function countNodes(node) {
|
|
|
70
70
|
return count;
|
|
71
71
|
}
|
|
72
72
|
const targetEnum = z.enum(VALID_TARGETS);
|
|
73
|
+
const MALICIOUS_PAYLOADS = {
|
|
74
|
+
sanitize: [
|
|
75
|
+
{ value: '<script>alert(1)</script>', label: 'XSS payload' },
|
|
76
|
+
{ value: '"; DROP TABLE users; --', label: 'SQL injection' },
|
|
77
|
+
{ value: '$(whoami)', label: 'command substitution' },
|
|
78
|
+
{ value: '{{7*7}}', label: 'template injection' },
|
|
79
|
+
],
|
|
80
|
+
pathContainment: [
|
|
81
|
+
{ value: '../../../etc/passwd', label: 'path traversal (unix)' },
|
|
82
|
+
{ value: '..\\..\\..\\windows\\system32\\config\\sam', label: 'path traversal (windows)' },
|
|
83
|
+
{ value: '/etc/shadow', label: 'absolute path escape' },
|
|
84
|
+
{ value: 'data/../../../etc/hosts', label: 'nested traversal' },
|
|
85
|
+
],
|
|
86
|
+
validate: [
|
|
87
|
+
{ value: -999999, label: 'extreme negative number' },
|
|
88
|
+
{ value: 999999999, label: 'extreme large number' },
|
|
89
|
+
{ value: '', label: 'empty string' },
|
|
90
|
+
],
|
|
91
|
+
sizeLimit: [{ value: 'x'.repeat(2_000_000), label: '2MB payload' }],
|
|
92
|
+
rateLimit: [],
|
|
93
|
+
auth: [],
|
|
94
|
+
sanitizeOutput: [],
|
|
95
|
+
};
|
|
96
|
+
function irChildren(node, type) {
|
|
97
|
+
return (node.children || []).filter((c) => c.type === type);
|
|
98
|
+
}
|
|
99
|
+
function irStr(val) {
|
|
100
|
+
return val === undefined || val === null ? undefined : String(val);
|
|
101
|
+
}
|
|
102
|
+
function generateTestSuites(ast) {
|
|
103
|
+
const mcpNode = ast.type === 'mcp' ? ast : ((ast.children || []).find((c) => c.type === 'mcp') ?? ast);
|
|
104
|
+
const tools = irChildren(mcpNode, 'tool');
|
|
105
|
+
const suites = [];
|
|
106
|
+
for (const tool of tools) {
|
|
107
|
+
const toolName = irStr(tool.props?.name) || 'tool';
|
|
108
|
+
const params = irChildren(tool, 'param');
|
|
109
|
+
const guards = irChildren(tool, 'guard');
|
|
110
|
+
const cases = [];
|
|
111
|
+
const validInput = {};
|
|
112
|
+
for (const p of params) {
|
|
113
|
+
const name = irStr(p.props?.name) || 'input';
|
|
114
|
+
const pType = irStr(p.props?.type) || 'string';
|
|
115
|
+
const defaultVal = irStr(p.props?.default);
|
|
116
|
+
validInput[name] = defaultVal ?? (pType === 'number' ? 1 : pType === 'boolean' ? true : 'test-value');
|
|
117
|
+
}
|
|
118
|
+
cases.push({
|
|
119
|
+
name: `${toolName} — valid input passes`,
|
|
120
|
+
description: 'All parameters within bounds, should succeed',
|
|
121
|
+
input: { ...validInput },
|
|
122
|
+
expectBlocked: false,
|
|
123
|
+
});
|
|
124
|
+
for (const guard of guards) {
|
|
125
|
+
const kind = irStr(guard.props?.type) || irStr(guard.props?.kind) || irStr(guard.props?.name) || '';
|
|
126
|
+
const target = irStr(guard.props?.param) || irStr(guard.props?.target);
|
|
127
|
+
const payloads = MALICIOUS_PAYLOADS[kind] || [];
|
|
128
|
+
for (const payload of payloads) {
|
|
129
|
+
const malInput = { ...validInput };
|
|
130
|
+
if (target) {
|
|
131
|
+
malInput[target] = payload.value;
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
const firstStr = params.find((p) => (irStr(p.props?.type) || 'string') === 'string');
|
|
135
|
+
if (firstStr)
|
|
136
|
+
malInput[irStr(firstStr.props?.name) || 'input'] = payload.value;
|
|
137
|
+
}
|
|
138
|
+
cases.push({
|
|
139
|
+
name: `${toolName} — ${kind} blocks ${payload.label}`,
|
|
140
|
+
description: `Guard type=${kind} should reject: ${payload.label}`,
|
|
141
|
+
input: malInput,
|
|
142
|
+
expectBlocked: true,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
if (kind === 'validate' && target) {
|
|
146
|
+
const min = irStr(guard.props?.min);
|
|
147
|
+
const max = irStr(guard.props?.max);
|
|
148
|
+
if (min) {
|
|
149
|
+
cases.push({
|
|
150
|
+
name: `${toolName} — validate rejects below min (${min})`,
|
|
151
|
+
description: `Value below minimum ${min} should be rejected`,
|
|
152
|
+
input: { ...validInput, [target]: Number(min) - 1 },
|
|
153
|
+
expectBlocked: true,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
if (max) {
|
|
157
|
+
cases.push({
|
|
158
|
+
name: `${toolName} — validate rejects above max (${max})`,
|
|
159
|
+
description: `Value above maximum ${max} should be rejected`,
|
|
160
|
+
input: { ...validInput, [target]: Number(max) + 1 },
|
|
161
|
+
expectBlocked: true,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
suites.push({ toolName, cases });
|
|
167
|
+
}
|
|
168
|
+
return suites;
|
|
169
|
+
}
|
|
170
|
+
function renderTestFile(suites, serverPath) {
|
|
171
|
+
const lines = [];
|
|
172
|
+
lines.push('// Auto-generated security tests from .kern definition');
|
|
173
|
+
lines.push('// Tests that guards correctly block malicious inputs');
|
|
174
|
+
lines.push("import { describe, it, expect } from 'vitest';");
|
|
175
|
+
lines.push('');
|
|
176
|
+
lines.push("// TODO: Import your compiled MCP server's tool handlers");
|
|
177
|
+
lines.push(`// import { callTool } from '${serverPath}';`);
|
|
178
|
+
lines.push('');
|
|
179
|
+
for (const suite of suites) {
|
|
180
|
+
lines.push(`describe('${suite.toolName}', () => {`);
|
|
181
|
+
for (const tc of suite.cases) {
|
|
182
|
+
const inputStr = JSON.stringify(tc.input, null, 2).replace(/\n/g, '\n ');
|
|
183
|
+
if (tc.expectBlocked) {
|
|
184
|
+
lines.push(` it('${tc.name}', async () => {`);
|
|
185
|
+
lines.push(` const input = ${inputStr};`);
|
|
186
|
+
lines.push(` // ${tc.description}`);
|
|
187
|
+
lines.push(` // await expect(callTool('${suite.toolName}', input)).rejects.toThrow();`);
|
|
188
|
+
lines.push(' expect(true).toBe(true); // TODO: wire up tool call');
|
|
189
|
+
lines.push(' });');
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
lines.push(` it('${tc.name}', async () => {`);
|
|
193
|
+
lines.push(` const input = ${inputStr};`);
|
|
194
|
+
lines.push(` // ${tc.description}`);
|
|
195
|
+
lines.push(` // const result = await callTool('${suite.toolName}', input);`);
|
|
196
|
+
lines.push(' // expect(result.isError).toBeFalsy();');
|
|
197
|
+
lines.push(' expect(true).toBe(true); // TODO: wire up tool call');
|
|
198
|
+
lines.push(' });');
|
|
199
|
+
}
|
|
200
|
+
lines.push('');
|
|
201
|
+
}
|
|
202
|
+
lines.push('});');
|
|
203
|
+
lines.push('');
|
|
204
|
+
}
|
|
205
|
+
return lines.join('\n');
|
|
206
|
+
}
|
|
73
207
|
// ── Tools ───────────────────────────────────────────────────────────────
|
|
74
208
|
// 1. compile
|
|
75
209
|
server.tool('compile', 'Compile .kern source code to a target framework (Next.js, React, Vue, Express, FastAPI, MCP, etc.). Returns generated code.', {
|
|
@@ -147,21 +281,56 @@ server.tool('review-kern', 'Lint .kern source code for structural issues, missin
|
|
|
147
281
|
return { isError: true, content: [{ type: 'text', text: `Review error: ${fmtError(e)}` }] };
|
|
148
282
|
}
|
|
149
283
|
});
|
|
150
|
-
// 4. review-mcp-server — scan MCP server code for security issues
|
|
151
|
-
server.tool('review-mcp-server', 'Scan MCP server TypeScript/Python code for security vulnerabilities. 13 rules mapped to OWASP MCP Top 10.', {
|
|
284
|
+
// 4. review-mcp-server — scan MCP server code for security issues (with scoring)
|
|
285
|
+
server.tool('review-mcp-server', 'Scan MCP server TypeScript/Python code for security vulnerabilities. 13 rules mapped to OWASP MCP Top 10. Returns findings + security score (0-100, A-F).', {
|
|
152
286
|
source: z.string().describe('MCP server source code to scan'),
|
|
153
287
|
filePath: z.string().default('server.ts').describe('File path for context'),
|
|
154
288
|
}, async ({ source, filePath }) => {
|
|
155
289
|
log('tool:review-mcp-server', { filePath });
|
|
156
290
|
try {
|
|
157
291
|
const findings = reviewMCPSource(source, filePath);
|
|
158
|
-
|
|
159
|
-
|
|
292
|
+
const postFindings = runPostScan(source, filePath);
|
|
293
|
+
findings.push(...postFindings);
|
|
294
|
+
let irNodes = [];
|
|
295
|
+
if (!filePath.endsWith('.py')) {
|
|
296
|
+
try {
|
|
297
|
+
irNodes = inferMCP(source, filePath);
|
|
298
|
+
}
|
|
299
|
+
catch {
|
|
300
|
+
irNodes = [];
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
const score = computeSecurityScore(irNodes, findings);
|
|
304
|
+
if (!findings.length) {
|
|
305
|
+
return {
|
|
306
|
+
content: [
|
|
307
|
+
{
|
|
308
|
+
type: 'text',
|
|
309
|
+
text: `No MCP security issues found.\n\nSecurity Score: ${score.total}/100 (${score.grade})`,
|
|
310
|
+
},
|
|
311
|
+
],
|
|
312
|
+
};
|
|
313
|
+
}
|
|
160
314
|
const lines = findings.map((f) => {
|
|
161
315
|
const loc = f.primarySpan?.startLine ? `L${f.primarySpan.startLine}` : '';
|
|
162
|
-
|
|
316
|
+
const conf = f.confidence !== undefined ? ` [${f.confidence.toFixed(2)}]` : '';
|
|
317
|
+
return `${f.severity === 'error' ? '!' : '~'} ${loc}: [${f.ruleId}]${conf} ${f.message}${f.suggestion ? `\n → ${f.suggestion}` : ''}`;
|
|
163
318
|
});
|
|
164
|
-
|
|
319
|
+
const errors = findings.filter((f) => f.severity === 'error').length;
|
|
320
|
+
const warnings = findings.filter((f) => f.severity === 'warning').length;
|
|
321
|
+
return {
|
|
322
|
+
content: [
|
|
323
|
+
{
|
|
324
|
+
type: 'text',
|
|
325
|
+
text: [
|
|
326
|
+
`Security Score: ${score.total}/100 (${score.grade})`,
|
|
327
|
+
`${findings.length} finding(s) — ${errors} errors, ${warnings} warnings`,
|
|
328
|
+
'',
|
|
329
|
+
...lines,
|
|
330
|
+
].join('\n'),
|
|
331
|
+
},
|
|
332
|
+
],
|
|
333
|
+
};
|
|
165
334
|
}
|
|
166
335
|
catch (e) {
|
|
167
336
|
err('tool:review-mcp:error', { error: fmtError(e) });
|
|
@@ -299,6 +468,7 @@ server.tool('list-nodes', 'List KERN node types with their properties and allowe
|
|
|
299
468
|
'strategy',
|
|
300
469
|
],
|
|
301
470
|
mcp: ['mcp', 'tool', 'resource', 'prompt', 'param', 'description', 'sampling', 'elicitation'],
|
|
471
|
+
meta: ['doc', 'theme', 'import', 'module', 'export'],
|
|
302
472
|
};
|
|
303
473
|
const lines = [];
|
|
304
474
|
if (filter && filter in categories) {
|
|
@@ -340,6 +510,282 @@ server.tool('list-nodes', 'List KERN node types with their properties and allowe
|
|
|
340
510
|
}
|
|
341
511
|
return { content: [{ type: 'text', text: lines.join('\n') }] };
|
|
342
512
|
});
|
|
513
|
+
// 10. schema — machine-readable JSON schema for LLM self-correction loops
|
|
514
|
+
server.tool('schema', 'Get the full KERN language schema as machine-readable JSON. Use this to know what node types, props, and children are valid before writing .kern code.', {}, async () => {
|
|
515
|
+
const schema = {
|
|
516
|
+
version: KERN_VERSION,
|
|
517
|
+
nodeTypes: [...NODE_TYPES],
|
|
518
|
+
multilineBlockTypes: [...defaultRuntime.multilineBlockTypes],
|
|
519
|
+
schemas: NODE_SCHEMAS,
|
|
520
|
+
styleShorthands: STYLE_SHORTHANDS,
|
|
521
|
+
valueShorthands: VALUE_SHORTHANDS,
|
|
522
|
+
};
|
|
523
|
+
return { content: [{ type: 'text', text: JSON.stringify(schema) }] };
|
|
524
|
+
});
|
|
525
|
+
// 11. compile-json — compile with structured diagnostics for self-correction
|
|
526
|
+
server.tool('compile-json', 'Compile .kern source and return structured JSON diagnostics (code, line, col, suggestion). Use this for programmatic self-correction.', {
|
|
527
|
+
source: z.string().describe('.kern source code'),
|
|
528
|
+
target: targetEnum.default('nextjs').describe('Target framework'),
|
|
529
|
+
}, async ({ source, target }) => {
|
|
530
|
+
log('tool:compile-json', { target, len: source.length });
|
|
531
|
+
try {
|
|
532
|
+
const result = parseWithDiagnostics(source);
|
|
533
|
+
const config = resolveConfig({ target: target });
|
|
534
|
+
const compiled = transpile(result.root, target, config);
|
|
535
|
+
const output = {
|
|
536
|
+
success: result.diagnostics.filter((d) => d.severity === 'error').length === 0,
|
|
537
|
+
code: compiled.code,
|
|
538
|
+
diagnostics: result.diagnostics,
|
|
539
|
+
stats: { irTokens: compiled.irTokenCount, outputTokens: compiled.tsTokenCount },
|
|
540
|
+
};
|
|
541
|
+
return { content: [{ type: 'text', text: JSON.stringify(output) }] };
|
|
542
|
+
}
|
|
543
|
+
catch (e) {
|
|
544
|
+
err('tool:compile-json:error', { error: fmtError(e) });
|
|
545
|
+
return {
|
|
546
|
+
isError: true,
|
|
547
|
+
content: [{ type: 'text', text: JSON.stringify({ success: false, error: fmtError(e) }) }],
|
|
548
|
+
};
|
|
549
|
+
}
|
|
550
|
+
});
|
|
551
|
+
// 12. compile-and-review — compile .kern → MCP, then auto-scan the output
|
|
552
|
+
server.tool('compile-and-review', 'Compile .kern to a secure MCP server (TypeScript or Python), then auto-scan the compiled output for security vulnerabilities. Returns code + security score + findings in one call.', {
|
|
553
|
+
source: z.string().describe('.kern source code'),
|
|
554
|
+
target: z.enum(['typescript', 'python']).default('typescript').describe('Output language'),
|
|
555
|
+
}, async ({ source, target }) => {
|
|
556
|
+
log('tool:compile-and-review', { target, len: source.length });
|
|
557
|
+
try {
|
|
558
|
+
const ast = parse(source);
|
|
559
|
+
const config = resolveConfig({ target: 'mcp' });
|
|
560
|
+
const compiled = target === 'python' ? transpileMCPPython(ast, config) : transpileMCP(ast, config);
|
|
561
|
+
const filePath = target === 'python' ? 'server.py' : 'server.ts';
|
|
562
|
+
const findings = reviewMCPSource(compiled.code, filePath);
|
|
563
|
+
const postFindings = runPostScan(compiled.code, filePath);
|
|
564
|
+
findings.push(...postFindings);
|
|
565
|
+
let irNodes = [];
|
|
566
|
+
if (target !== 'python') {
|
|
567
|
+
try {
|
|
568
|
+
irNodes = inferMCP(compiled.code, filePath);
|
|
569
|
+
}
|
|
570
|
+
catch {
|
|
571
|
+
irNodes = [];
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
const score = computeSecurityScore(irNodes, findings);
|
|
575
|
+
const errors = findings.filter((f) => f.severity === 'error').length;
|
|
576
|
+
const warnings = findings.filter((f) => f.severity === 'warning').length;
|
|
577
|
+
const findingLines = findings.map((f) => {
|
|
578
|
+
const loc = f.primarySpan?.startLine ? `L${f.primarySpan.startLine}` : '';
|
|
579
|
+
return `${f.severity === 'error' ? '!' : '~'} ${loc}: [${f.ruleId}] ${f.message}${f.suggestion ? `\n → ${f.suggestion}` : ''}`;
|
|
580
|
+
});
|
|
581
|
+
const header = [
|
|
582
|
+
`// Compiled to MCP ${target === 'python' ? 'Python' : 'TypeScript'} (${compiled.irTokenCount} KERN → ${compiled.tsTokenCount} output tokens)`,
|
|
583
|
+
`// Security Score: ${score.total}/100 (${score.grade}) — ${findings.length} finding(s): ${errors} errors, ${warnings} warnings`,
|
|
584
|
+
'',
|
|
585
|
+
].join('\n');
|
|
586
|
+
const review = findings.length > 0
|
|
587
|
+
? `\n\n--- Security Review ---\n${findingLines.join('\n')}`
|
|
588
|
+
: '\n\n--- Security Review ---\nNo issues found.';
|
|
589
|
+
return { content: [{ type: 'text', text: header + compiled.code + review }] };
|
|
590
|
+
}
|
|
591
|
+
catch (e) {
|
|
592
|
+
err('tool:compile-and-review:error', { error: fmtError(e) });
|
|
593
|
+
return { isError: true, content: [{ type: 'text', text: `Compile-and-review error: ${fmtError(e)}` }] };
|
|
594
|
+
}
|
|
595
|
+
});
|
|
596
|
+
// 13. audit-mcp-config — scan MCP configuration files for security issues
|
|
597
|
+
server.tool('audit-mcp-config', 'Scan MCP configuration files (Claude Desktop, Cursor, VS Code, Windsurf) for hardcoded secrets, missing version pins, and wide permissions. Scans the host machine config files.', {
|
|
598
|
+
workspaceRoot: z
|
|
599
|
+
.string()
|
|
600
|
+
.optional()
|
|
601
|
+
.describe('Workspace root path to also scan .cursor/mcp.json, .vscode/mcp.json, .windsurf/mcp.json'),
|
|
602
|
+
}, async ({ workspaceRoot }) => {
|
|
603
|
+
log('tool:audit-mcp-config', { workspaceRoot });
|
|
604
|
+
try {
|
|
605
|
+
const result = scanMcpConfigs(workspaceRoot);
|
|
606
|
+
if (result.servers.length === 0) {
|
|
607
|
+
return {
|
|
608
|
+
content: [
|
|
609
|
+
{
|
|
610
|
+
type: 'text',
|
|
611
|
+
text: [
|
|
612
|
+
`Scanned ${result.configsScanned.length} config file(s), ${result.configsMissing.length} not found.`,
|
|
613
|
+
'No MCP servers configured.',
|
|
614
|
+
'',
|
|
615
|
+
result.configsMissing.length > 0
|
|
616
|
+
? `Missing configs:\n${result.configsMissing.map((p) => ` ${p}`).join('\n')}`
|
|
617
|
+
: '',
|
|
618
|
+
]
|
|
619
|
+
.filter(Boolean)
|
|
620
|
+
.join('\n'),
|
|
621
|
+
},
|
|
622
|
+
],
|
|
623
|
+
};
|
|
624
|
+
}
|
|
625
|
+
const lines = [
|
|
626
|
+
`Scanned ${result.configsScanned.length} config(s) — ${result.servers.length} server(s), ${result.totalIssues} issue(s)`,
|
|
627
|
+
'',
|
|
628
|
+
];
|
|
629
|
+
for (const server of result.servers) {
|
|
630
|
+
const trustIcon = server.trust === 'verified' ? '+' : server.trust === 'risky' ? '!' : '~';
|
|
631
|
+
lines.push(`${trustIcon} ${server.name} (${server.source})`);
|
|
632
|
+
lines.push(` command: ${server.command} ${server.args.join(' ')}`);
|
|
633
|
+
if (server.issues.length === 0) {
|
|
634
|
+
lines.push(' No issues.');
|
|
635
|
+
}
|
|
636
|
+
else {
|
|
637
|
+
for (const issue of server.issues) {
|
|
638
|
+
const sev = issue.severity === 'error' ? '!' : issue.severity === 'warning' ? '~' : '-';
|
|
639
|
+
lines.push(` ${sev} [${issue.type}] ${issue.message}`);
|
|
640
|
+
if (issue.detail)
|
|
641
|
+
lines.push(` → ${issue.detail}`);
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
lines.push('');
|
|
645
|
+
}
|
|
646
|
+
return { content: [{ type: 'text', text: lines.join('\n') }] };
|
|
647
|
+
}
|
|
648
|
+
catch (e) {
|
|
649
|
+
err('tool:audit-mcp-config:error', { error: fmtError(e) });
|
|
650
|
+
return { isError: true, content: [{ type: 'text', text: `Config audit error: ${fmtError(e)}` }] };
|
|
651
|
+
}
|
|
652
|
+
});
|
|
653
|
+
// 14. generate-security-tests — auto-generate test cases from .kern AST
|
|
654
|
+
server.tool('generate-security-tests', 'Generate security test cases from .kern source. For each tool and guard, generates valid + malicious inputs to verify guards block attacks. Returns a vitest test file.', {
|
|
655
|
+
source: z.string().describe('.kern source code with MCP tools and guards'),
|
|
656
|
+
serverImportPath: z.string().default('./server').describe('Import path for the compiled server module'),
|
|
657
|
+
}, async ({ source, serverImportPath }) => {
|
|
658
|
+
log('tool:generate-security-tests', { len: source.length });
|
|
659
|
+
try {
|
|
660
|
+
const ast = parse(source);
|
|
661
|
+
const suites = generateTestSuites(ast);
|
|
662
|
+
if (suites.length === 0) {
|
|
663
|
+
return { content: [{ type: 'text', text: 'No MCP tools with guards found in source. Nothing to test.' }] };
|
|
664
|
+
}
|
|
665
|
+
const testFile = renderTestFile(suites, serverImportPath);
|
|
666
|
+
const totalCases = suites.reduce((sum, s) => sum + s.cases.length, 0);
|
|
667
|
+
return {
|
|
668
|
+
content: [
|
|
669
|
+
{
|
|
670
|
+
type: 'text',
|
|
671
|
+
text: `// ${suites.length} tool(s), ${totalCases} test case(s)\n\n${testFile}`,
|
|
672
|
+
},
|
|
673
|
+
],
|
|
674
|
+
};
|
|
675
|
+
}
|
|
676
|
+
catch (e) {
|
|
677
|
+
err('tool:generate-security-tests:error', { error: fmtError(e) });
|
|
678
|
+
return { isError: true, content: [{ type: 'text', text: `Test generation error: ${fmtError(e)}` }] };
|
|
679
|
+
}
|
|
680
|
+
});
|
|
681
|
+
// 15. inspect-mcp-servers — connect to configured servers and check for poisoning
|
|
682
|
+
server.tool('inspect-mcp-servers', 'Connect to locally configured MCP servers (Claude Desktop, Cursor, VS Code, Windsurf), retrieve their tool lists, and check for poisoning patterns (hidden instructions, cross-origin escalation, tool shadowing, data exfiltration). Returns findings per server.', {
|
|
683
|
+
workspaceRoot: z.string().optional().describe('Workspace root for .cursor/mcp.json, .vscode/mcp.json scanning'),
|
|
684
|
+
allowlist: z.array(z.string()).optional().describe('Only inspect servers with these names (default: all)'),
|
|
685
|
+
timeout: z.number().default(10000).describe('Timeout per server connection in ms'),
|
|
686
|
+
}, async ({ workspaceRoot, allowlist, timeout }) => {
|
|
687
|
+
log('tool:inspect-mcp-servers', { workspaceRoot, allowlist, timeout });
|
|
688
|
+
try {
|
|
689
|
+
const result = await inspectMcpServers(workspaceRoot, { allowlist, timeout });
|
|
690
|
+
if (result.servers.length === 0) {
|
|
691
|
+
return {
|
|
692
|
+
content: [
|
|
693
|
+
{
|
|
694
|
+
type: 'text',
|
|
695
|
+
text: `Scanned ${result.configsScanned} config(s) — no MCP servers found to inspect.`,
|
|
696
|
+
},
|
|
697
|
+
],
|
|
698
|
+
};
|
|
699
|
+
}
|
|
700
|
+
const lines = [
|
|
701
|
+
`Inspected ${result.servers.length} server(s) — ${result.totalTools} tool(s), ${result.totalFindings} finding(s)`,
|
|
702
|
+
'',
|
|
703
|
+
];
|
|
704
|
+
for (const srv of result.servers) {
|
|
705
|
+
const statusIcon = srv.status === 'ok' ? '+' : srv.status === 'timeout' ? '~' : '!';
|
|
706
|
+
lines.push(`${statusIcon} ${srv.name} (${srv.source}) — ${srv.status}`);
|
|
707
|
+
if (srv.error)
|
|
708
|
+
lines.push(` Error: ${srv.error}`);
|
|
709
|
+
if (srv.tools.length > 0) {
|
|
710
|
+
lines.push(` Tools: ${srv.tools.map((t) => t.name).join(', ')}`);
|
|
711
|
+
}
|
|
712
|
+
for (const f of srv.findings) {
|
|
713
|
+
const sev = f.severity === 'error' ? '!' : '~';
|
|
714
|
+
lines.push(` ${sev} [${f.pattern}] ${f.toolName}: ${f.message}`);
|
|
715
|
+
}
|
|
716
|
+
lines.push('');
|
|
717
|
+
}
|
|
718
|
+
return { content: [{ type: 'text', text: lines.join('\n') }] };
|
|
719
|
+
}
|
|
720
|
+
catch (e) {
|
|
721
|
+
err('tool:inspect-mcp-servers:error', { error: fmtError(e) });
|
|
722
|
+
return { isError: true, content: [{ type: 'text', text: `Inspection error: ${fmtError(e)}` }] };
|
|
723
|
+
}
|
|
724
|
+
});
|
|
725
|
+
// 16. verify-tool-pins — generate or verify a lockfile of tool hashes
|
|
726
|
+
server.tool('verify-tool-pins', 'Generate or verify a lockfile of MCP tool description and schema hashes. Detects rug pulls — when a server changes its tool behavior after initial trust. Pass mode="generate" to create a new lockfile, mode="verify" to check against an existing one.', {
|
|
727
|
+
mode: z.enum(['generate', 'verify']).describe('"generate" to create lockfile, "verify" to check against existing'),
|
|
728
|
+
lockfileJson: z.string().optional().describe('Existing lockfile JSON content (required for verify mode)'),
|
|
729
|
+
workspaceRoot: z.string().optional().describe('Workspace root for config discovery'),
|
|
730
|
+
timeout: z.number().default(10000).describe('Timeout per server connection in ms'),
|
|
731
|
+
}, async ({ mode, lockfileJson, workspaceRoot, timeout }) => {
|
|
732
|
+
log('tool:verify-tool-pins', { mode, workspaceRoot });
|
|
733
|
+
try {
|
|
734
|
+
const result = await inspectMcpServers(workspaceRoot, { timeout });
|
|
735
|
+
if (mode === 'generate') {
|
|
736
|
+
const lockFile = generateLiveLockFile(result);
|
|
737
|
+
return {
|
|
738
|
+
content: [
|
|
739
|
+
{
|
|
740
|
+
type: 'text',
|
|
741
|
+
text: JSON.stringify(lockFile, null, 2),
|
|
742
|
+
},
|
|
743
|
+
],
|
|
744
|
+
};
|
|
745
|
+
}
|
|
746
|
+
// Verify mode
|
|
747
|
+
if (!lockfileJson) {
|
|
748
|
+
return {
|
|
749
|
+
isError: true,
|
|
750
|
+
content: [{ type: 'text', text: 'verify mode requires lockfileJson parameter' }],
|
|
751
|
+
};
|
|
752
|
+
}
|
|
753
|
+
let lockFile;
|
|
754
|
+
try {
|
|
755
|
+
lockFile = JSON.parse(lockfileJson);
|
|
756
|
+
}
|
|
757
|
+
catch {
|
|
758
|
+
return {
|
|
759
|
+
isError: true,
|
|
760
|
+
content: [{ type: 'text', text: 'lockfileJson is not valid JSON' }],
|
|
761
|
+
};
|
|
762
|
+
}
|
|
763
|
+
const drifts = verifyLiveLockFile(lockFile, result);
|
|
764
|
+
if (drifts.length === 0) {
|
|
765
|
+
return {
|
|
766
|
+
content: [
|
|
767
|
+
{
|
|
768
|
+
type: 'text',
|
|
769
|
+
text: `All tool pins verified — no changes detected across ${result.servers.length} server(s).`,
|
|
770
|
+
},
|
|
771
|
+
],
|
|
772
|
+
};
|
|
773
|
+
}
|
|
774
|
+
const lines = [
|
|
775
|
+
`${drifts.length} drift(s) detected:`,
|
|
776
|
+
'',
|
|
777
|
+
...drifts.map((d) => {
|
|
778
|
+
const sev = d.severity === 'error' ? '!' : '~';
|
|
779
|
+
return `${sev} [${d.field}] ${d.serverName}/${d.toolName}: ${d.message}`;
|
|
780
|
+
}),
|
|
781
|
+
];
|
|
782
|
+
return { content: [{ type: 'text', text: lines.join('\n') }] };
|
|
783
|
+
}
|
|
784
|
+
catch (e) {
|
|
785
|
+
err('tool:verify-tool-pins:error', { error: fmtError(e) });
|
|
786
|
+
return { isError: true, content: [{ type: 'text', text: `Pin verification error: ${fmtError(e)}` }] };
|
|
787
|
+
}
|
|
788
|
+
});
|
|
343
789
|
// ── Resources ───────────────────────────────────────────────────────────
|
|
344
790
|
// Full spec
|
|
345
791
|
server.resource('kern-spec', 'kern://spec', {
|
|
@@ -553,6 +999,8 @@ server.prompt('write-kern', 'Comprehensive system prompt for writing .kern code
|
|
|
553
999
|
- Styles: inline {shorthand: value, shorthand: value}
|
|
554
1000
|
- Handlers: <<< multi-line code >>>
|
|
555
1001
|
- Theme refs: $refName
|
|
1002
|
+
- Comments: // or # (full-line and inline)
|
|
1003
|
+
- Documentation: doc text="..." or doc <<< multiline >>> (emits JSDoc)
|
|
556
1004
|
|
|
557
1005
|
## Available Node Types
|
|
558
1006
|
${nodeList}
|
|
@@ -611,7 +1059,10 @@ mcp name=Tools version=1.0
|
|
|
611
1059
|
|
|
612
1060
|
### Type System
|
|
613
1061
|
\`\`\`kern
|
|
1062
|
+
// Define user status enum
|
|
614
1063
|
type name=Status values=active|inactive|pending
|
|
1064
|
+
|
|
1065
|
+
doc text="Core user entity"
|
|
615
1066
|
interface name=User
|
|
616
1067
|
field name=id type=string
|
|
617
1068
|
field name=email type=string
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG;AAGH,OAAO,EACL,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,KAAK,EACL,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,cAAc,EACd,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,2EAA2E;AAE3E,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;IACE,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EACV,+NAA+N;CAClO,CACF,CAAC;AAEF,2EAA2E;AAE3E,SAAS,GAAG,CAAC,KAAa,EAAE,UAAmC,EAAE;IAC/D,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,GAAG,CAAC,KAAa,EAAE,UAAmC,EAAE;IAC/D,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;AACrG,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,MAAkB,EAAE,MAA0B;IAC5E,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,KAAK;YACR,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACnC,KAAK,UAAU;YACb,OAAO,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxC,KAAK,QAAQ;YACX,OAAO,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACtC,KAAK,SAAS;YACZ,OAAO,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACvC,KAAK,SAAS;YACZ,OAAO,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACvC,KAAK,UAAU;YACb,OAAO,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxC,KAAK,KAAK;YACR,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACnC,KAAK,KAAK;YACR,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACnC,KAAK,MAAM;YACT,OAAO,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACpC,KAAK,KAAK;YACR,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACnC;YACE,OAAO,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;QAAE,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IACpE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,aAAsC,CAAC,CAAC;AAgBlE,MAAM,kBAAkB,GAAwD;IAC9E,QAAQ,EAAE;QACR,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,aAAa,EAAE;QAC5D,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,eAAe,EAAE;QAC5D,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,sBAAsB,EAAE;QACrD,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,oBAAoB,EAAE;KAClD;IACD,eAAe,EAAE;QACf,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,uBAAuB,EAAE;QAChE,EAAE,KAAK,EAAE,4CAA4C,EAAE,KAAK,EAAE,0BAA0B,EAAE;QAC1F,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,sBAAsB,EAAE;QACvD,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,kBAAkB,EAAE;KAChE;IACD,QAAQ,EAAE;QACR,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,yBAAyB,EAAE;QACpD,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,sBAAsB,EAAE;QACnD,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE;KACrC;IACD,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IACnE,SAAS,EAAE,EAAE;IACb,IAAI,EAAE,EAAE;IACR,cAAc,EAAE,EAAE;CACnB,CAAC;AAEF,SAAS,UAAU,CAAC,IAAY,EAAE,IAAY;IAC5C,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,KAAK,CAAC,GAAY;IACzB,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IACvG,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAoB,EAAE,CAAC;IAEnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC;QACnD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzC,MAAM,KAAK,GAAe,EAAE,CAAC;QAE7B,MAAM,UAAU,GAA4B,EAAE,CAAC;QAC/C,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC;YAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAC;YAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC3C,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACxG,CAAC;QAED,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,GAAG,QAAQ,uBAAuB;YACxC,WAAW,EAAE,8CAA8C;YAC3D,KAAK,EAAE,EAAE,GAAG,UAAU,EAAE;YACxB,aAAa,EAAE,KAAK;SACrB,CAAC,CAAC;QAEH,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YACpG,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACvE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAEhD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;gBACnC,IAAI,MAAM,EAAE,CAAC;oBACX,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACN,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC;oBACrF,IAAI,QAAQ;wBAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;gBACjF,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,GAAG,QAAQ,MAAM,IAAI,WAAW,OAAO,CAAC,KAAK,EAAE;oBACrD,WAAW,EAAE,cAAc,IAAI,mBAAmB,OAAO,CAAC,KAAK,EAAE;oBACjE,KAAK,EAAE,QAAQ;oBACf,aAAa,EAAE,IAAI;iBACpB,CAAC,CAAC;YACL,CAAC;YAED,IAAI,IAAI,KAAK,UAAU,IAAI,MAAM,EAAE,CAAC;gBAClC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACpC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACpC,IAAI,GAAG,EAAE,CAAC;oBACR,KAAK,CAAC,IAAI,CAAC;wBACT,IAAI,EAAE,GAAG,QAAQ,kCAAkC,GAAG,GAAG;wBACzD,WAAW,EAAE,uBAAuB,GAAG,qBAAqB;wBAC5D,KAAK,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;wBACnD,aAAa,EAAE,IAAI;qBACpB,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,GAAG,EAAE,CAAC;oBACR,KAAK,CAAC,IAAI,CAAC;wBACT,IAAI,EAAE,GAAG,QAAQ,kCAAkC,GAAG,GAAG;wBACzD,WAAW,EAAE,uBAAuB,GAAG,qBAAqB;wBAC5D,KAAK,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;wBACnD,aAAa,EAAE,IAAI;qBACpB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,MAAuB,EAAE,UAAkB;IACjE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IACrE,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IACpE,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IACvE,KAAK,CAAC,IAAI,CAAC,gCAAgC,UAAU,IAAI,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,QAAQ,YAAY,CAAC,CAAC;QACpD,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC5E,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC;gBACrB,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,kBAAkB,CAAC,CAAC;gBAC/C,KAAK,CAAC,IAAI,CAAC,qBAAqB,QAAQ,GAAG,CAAC,CAAC;gBAC7C,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;gBACvC,KAAK,CAAC,IAAI,CAAC,iCAAiC,KAAK,CAAC,QAAQ,+BAA+B,CAAC,CAAC;gBAC3F,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;gBACtE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,kBAAkB,CAAC,CAAC;gBAC/C,KAAK,CAAC,IAAI,CAAC,qBAAqB,QAAQ,GAAG,CAAC,CAAC;gBAC7C,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;gBACvC,KAAK,CAAC,IAAI,CAAC,yCAAyC,KAAK,CAAC,QAAQ,YAAY,CAAC,CAAC;gBAChF,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;gBACzD,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;gBACtE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,2EAA2E;AAE3E,aAAa;AACb,MAAM,CAAC,IAAI,CACT,SAAS,EACT,6HAA6H,EAC7H;IACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAChD,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;CAClE,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;IAC3B,GAAG,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,MAAoB,EAAE,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,MAAoB,EAAE,MAAM,CAAC,CAAC;QAC5D,IAAI,IAAI,GAAG,kBAAkB,MAAM,KAAK,MAAM,CAAC,YAAY,WAAW,MAAM,CAAC,YAAY,oBAAoB,MAAM,CAAC,IAAI,EAAE,CAAC;QAC3H,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;YAC7B,IAAI,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/F,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAC/C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAC/F,CAAC;AACH,CAAC,CACF,CAAC;AAEF,oDAAoD;AACpD,MAAM,CAAC,IAAI,CACT,QAAQ,EACR,mGAAmG,EACnG;IACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IAC7E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC/E,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;CACrF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;IACrC,GAAG,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAoB,EAAE,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;QACvF,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/B,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAChF,OAAO,GAAG,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC1G,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;QACrE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QACzE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,iBAAiB,MAAM,YAAY,QAAQ,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBACtG;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAC9F,CAAC;AACH,CAAC,CACF,CAAC;AAEF,2CAA2C;AAC3C,MAAM,CAAC,IAAI,CACT,aAAa,EACb,sFAAsF,EACtF;IACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;CAC3D,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IACnB,GAAG,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kCAAkC,EAAE,CAAC,EAAE,CAAC;QACvG,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/B,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,OAAO,GAAG,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QACpF,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,kBAAkB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IACvG,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAC9F,CAAC;AACH,CAAC,CACF,CAAC;AAEF,iFAAiF;AACjF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,2JAA2J,EAC3J;IACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC7D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;CAC5E,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC7B,GAAG,CAAC,wBAAwB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACnD,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QAE/B,IAAI,OAAO,GAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACvC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,GAAG,EAAE,CAAC;YACf,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAEtD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,oDAAoD,KAAK,CAAC,KAAK,SAAS,KAAK,CAAC,KAAK,GAAG;qBAC7F;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/B,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,MAAM,IAAI,GAAI,CAAS,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,KAAO,CAAS,CAAC,UAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7G,OAAO,GAAG,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACzI,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;QACrE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QAEzE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,mBAAmB,KAAK,CAAC,KAAK,SAAS,KAAK,CAAC,KAAK,GAAG;wBACrD,GAAG,QAAQ,CAAC,MAAM,iBAAiB,MAAM,YAAY,QAAQ,WAAW;wBACxE,EAAE;wBACF,GAAG,KAAK;qBACT,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAClG,CAAC;AACH,CAAC,CACF,CAAC;AAEF,yBAAyB;AACzB,MAAM,CAAC,IAAI,CACT,OAAO,EACP,4HAA4H,EAC5H,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,EACpD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IACnB,GAAG,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC,EAAE,CAAC,eAAe,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;IACnH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAC7F,CAAC;AACH,CAAC,CACF,CAAC;AAEF,qDAAqD;AACrD,MAAM,CAAC,IAAI,CACT,WAAW,EACX,yHAAyH,EACzH,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC,EAAE,EAC5E,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IACnB,GAAG,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;IAC5D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IACjG,CAAC;AACH,CAAC,CACF,CAAC;AAEF,cAAc;AACd,MAAM,CAAC,IAAI,CACT,UAAU,EACV,2EAA2E,EAC3E,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,EACpD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,UAAU,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC;IACnG,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAC9F,CAAC;AACH,CAAC,CACF,CAAC;AAEF,kBAAkB;AAClB,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,0CAA0C,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE;IACrF,MAAM,OAAO,GAA2B;QACtC,MAAM,EAAE,wCAAwC;QAChD,QAAQ,EAAE,sBAAsB;QAChC,GAAG,EAAE,wBAAwB;QAC7B,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,6BAA6B;QACnC,OAAO,EAAE,6BAA6B;QACtC,OAAO,EAAE,8BAA8B;QACvC,MAAM,EAAE,4BAA4B;QACpC,GAAG,EAAE,aAAa;QAClB,QAAQ,EAAE,oBAAoB;QAC9B,GAAG,EAAE,2BAA2B;QAChC,GAAG,EAAE,qCAAqC;KAC3C,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClF,OAAO;QACL,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,YAAY,MAAM,aAAa,CAAC,MAAM,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;SAC1G;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,iEAAiE;AACjE,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,oHAAoH,EACpH;IACE,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,4HAA4H,CAC7H;CACJ,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IACnB,MAAM,UAAU,GAA6B;QAC3C,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC;QACrF,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC;QAC7E,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAC7F,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC7D,OAAO,EAAE;YACP,QAAQ;YACR,OAAO;YACP,YAAY;YACZ,SAAS;YACT,QAAQ;YACR,QAAQ;YACR,OAAO;YACP,OAAO;YACP,IAAI;YACJ,KAAK;YACL,WAAW;SACZ;QACD,IAAI,EAAE;YACJ,OAAO;YACP,QAAQ;YACR,UAAU;YACV,YAAY;YACZ,OAAO;YACP,OAAO;YACP,YAAY;YACZ,YAAY;YACZ,QAAQ;YACR,QAAQ;YACR,OAAO;SACR;QACD,KAAK,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;QAC9D,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC;QACtG,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC;QACvG,GAAG,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC;QACtC,QAAQ,EAAE;YACR,WAAW;YACX,OAAO;YACP,OAAO;YACP,OAAO;YACP,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,YAAY;YACZ,QAAQ;YACR,SAAS;YACT,KAAK;YACL,UAAU;SACX;QACD,MAAM,EAAE;YACN,QAAQ;YACR,WAAW;YACX,QAAQ;YACR,QAAQ;YACR,WAAW;YACX,QAAQ;YACR,MAAM;YACN,SAAS;YACT,OAAO;YACP,SAAS;YACT,SAAS;YACT,OAAO;YACP,QAAQ;YACR,SAAS;YACT,UAAU;SACX;QACD,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,CAAC;QAC7F,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;KACrD,CAAC;IAEF,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,MAAM,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,MAAM,MAAM,WAAW,CAAC,CAAC;QACpC,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;qBACvC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;qBACxD,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3F,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QAClB,uBAAuB;QACvB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;YACzB,KAAK,CAAC,IAAI,CACR,YAAY,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;iBACrC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpE,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;YACF,IAAI,MAAM,CAAC,eAAe;gBAAE,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,qEAAqE,CAAC,CAAC;QACxG,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACjE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxG,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AACjE,CAAC,CACF,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,IAAI,CACT,QAAQ,EACR,wJAAwJ,EACxJ,EAAE,EACF,KAAK,IAAI,EAAE;IACT,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,YAAY;QACrB,SAAS,EAAE,CAAC,GAAG,UAAU,CAAC;QAC1B,mBAAmB,EAAE,CAAC,GAAG,cAAc,CAAC,mBAAmB,CAAC;QAC5D,OAAO,EAAE,YAAY;QACrB,eAAe,EAAE,gBAAgB;QACjC,eAAe,EAAE,gBAAgB;KAClC,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;AACvE,CAAC,CACF,CAAC;AAEF,6EAA6E;AAC7E,MAAM,CAAC,IAAI,CACT,cAAc,EACd,uIAAuI,EACvI;IACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAChD,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;CAClE,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;IAC3B,GAAG,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,MAAoB,EAAE,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAoB,EAAE,MAAM,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG;YACb,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;YAC9E,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE;SAChF,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;IACvE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;SAC1F,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,qLAAqL,EACrL;IACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAChD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;CAC3F,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;IAC3B,GAAG,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,KAAmB,EAAE,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAEnG,MAAM,QAAQ,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;QACjE,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1D,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QAE/B,IAAI,OAAO,GAAa,EAAE,CAAC;QAC3B,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC9C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,GAAG,EAAE,CAAC;YACf,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;QACrE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QAEzE,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACtC,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,OAAO,GAAG,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAClI,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG;YACb,sBAAsB,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY,WAAW,QAAQ,CAAC,YAAY,iBAAiB;YAC9I,sBAAsB,KAAK,CAAC,KAAK,SAAS,KAAK,CAAC,KAAK,OAAO,QAAQ,CAAC,MAAM,gBAAgB,MAAM,YAAY,QAAQ,WAAW;YAChI,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,MAAM,GACV,QAAQ,CAAC,MAAM,GAAG,CAAC;YACjB,CAAC,CAAC,gCAAgC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC3D,CAAC,CAAC,+CAA+C,CAAC;QAEtD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,+BAA+B,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6BAA6B,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAC1G,CAAC;AACH,CAAC,CACF,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,kLAAkL,EAClL;IACE,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,yFAAyF,CAAC;CACvG,EACD,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;IAC1B,GAAG,CAAC,uBAAuB,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;QAE7C,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;4BACJ,WAAW,MAAM,CAAC,cAAc,CAAC,MAAM,oBAAoB,MAAM,CAAC,cAAc,CAAC,MAAM,aAAa;4BACpG,4BAA4B;4BAC5B,EAAE;4BACF,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;gCAC9B,CAAC,CAAC,qBAAqB,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gCAC9E,CAAC,CAAC,EAAE;yBACP;6BACE,MAAM,CAAC,OAAO,CAAC;6BACf,IAAI,CAAC,IAAI,CAAC;qBACd;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAa;YACtB,WAAW,MAAM,CAAC,cAAc,CAAC,MAAM,gBAAgB,MAAM,CAAC,OAAO,CAAC,MAAM,eAAe,MAAM,CAAC,WAAW,WAAW;YACxH,EAAE;SACH,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC3F,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7D,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClC,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;oBACxF,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;oBACxD,IAAI,KAAK,CAAC,MAAM;wBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACjE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IACpG,CAAC;AACH,CAAC,CACF,CAAC;AAEF,wEAAwE;AACxE,MAAM,CAAC,IAAI,CACT,yBAAyB,EACzB,yKAAyK,EACzK;IACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IAC1E,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;CACxG,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,EAAE;IACrC,GAAG,CAAC,8BAA8B,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAEvC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,4DAA4D,EAAE,CAAC,EAAE,CAAC;QAC7G,CAAC;QAED,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAEtE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM,MAAM,CAAC,MAAM,aAAa,UAAU,oBAAoB,QAAQ,EAAE;iBAC/E;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,oCAAoC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IACvG,CAAC;AACH,CAAC,CACF,CAAC;AAEF,kFAAkF;AAClF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,oQAAoQ,EACpQ;IACE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;IAC/G,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IAC1G,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;CACnF,EACD,KAAK,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IAC9C,GAAG,CAAC,0BAA0B,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IACvE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAE9E,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,WAAW,MAAM,CAAC,cAAc,+CAA+C;qBACtF;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAa;YACtB,aAAa,MAAM,CAAC,OAAO,CAAC,MAAM,gBAAgB,MAAM,CAAC,UAAU,aAAa,MAAM,CAAC,aAAa,aAAa;YACjH,EAAE;SACH,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACpF,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACxE,IAAI,GAAG,CAAC,KAAK;gBAAE,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;YACnD,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpE,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/C,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACpE,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACjE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAClG,CAAC;AACH,CAAC,CACF,CAAC;AAEF,sEAAsE;AACtE,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,0PAA0P,EAC1P;IACE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,mEAAmE,CAAC;IAClH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IACzG,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IACpF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;CACnF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;IACvD,GAAG,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAEnE,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;qBACxC;iBACF;aACF,CAAC;QACJ,CAAC;QAED,cAAc;QACd,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE,CAAC;aACjF,CAAC;QACJ,CAAC;QAED,IAAI,QAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gCAAgC,EAAE,CAAC;aACpE,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEpD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,uDAAuD,MAAM,CAAC,OAAO,CAAC,MAAM,aAAa;qBAChG;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG;YACZ,GAAG,MAAM,CAAC,MAAM,qBAAqB;YACrC,EAAE;YACF,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAClB,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/C,OAAO,GAAG,GAAG,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;YAC3E,CAAC,CAAC;SACH,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACjE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IACxG,CAAC;AACH,CAAC,CACF,CAAC;AAEF,2EAA2E;AAE3E,YAAY;AACZ,MAAM,CAAC,QAAQ,CACb,WAAW,EACX,aAAa,EACb;IACE,WAAW,EAAE,0FAA0F;IACvG,QAAQ,EAAE,YAAY;CACvB,EACD,KAAK,EAAE,GAAG,EAAE,EAAE;IACZ,MAAM,QAAQ,GAAI,UAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;SACnD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;SAChC,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;SAC5C,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;aACxD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,QAAQ,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,OAAO,KAAK,IAAI,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;IAC1C,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,IAAI,GAAG;QACX,SAAS,YAAY,yBAAyB;QAC9C,EAAE;QACF,eAAe;QACf,oBAAoB;QACpB,2DAA2D;QAC3D,8BAA8B;QAC9B,4BAA4B;QAC5B,yCAAyC;QACzC,EAAE;QACF,aAAa;QACb,8BAA8B;QAC9B,+CAA+C;QAC/C,4CAA4C;QAC5C,iDAAiD;QACjD,iDAAiD;QACjD,EAAE;QACF,kBAAkB,UAAU,CAAC,MAAM,MAAM;QACzC,QAAQ;QACR,EAAE;QACF,uCAAuC;QACvC,UAAU;QACV,EAAE;QACF,wBAAwB;QACxB,aAAa;QACb,EAAE;QACF,uBAAuB,aAAa,CAAC,MAAM,MAAM;QACjD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;KACzB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACzE,CAAC,CACF,CAAC;AAEF,uBAAuB;AACvB,MAAM,CAAC,QAAQ,CACb,eAAe,EACf,IAAI,gBAAgB,CAAC,4BAA4B,EAAE;IACjD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QACjB,SAAS,EAAE;YACT,EAAE,GAAG,EAAE,oBAAoB,EAAE,IAAI,EAAE,uCAAuC,EAAE;YAC5E,EAAE,GAAG,EAAE,qBAAqB,EAAE,IAAI,EAAE,wCAAwC,EAAE;YAC9E,EAAE,GAAG,EAAE,+BAA+B,EAAE,IAAI,EAAE,wBAAwB,EAAE;YACxE,EAAE,GAAG,EAAE,qBAAqB,EAAE,IAAI,EAAE,qBAAqB,EAAE;YAC3D,EAAE,GAAG,EAAE,0BAA0B,EAAE,IAAI,EAAE,sBAAsB,EAAE;SAClE;KACF,CAAC;CACH,CAAC,EACF,EAAE,WAAW,EAAE,+BAA+B,EAAE,QAAQ,EAAE,YAAY,EAAE,EACxE,KAAK,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC1B,MAAM,QAAQ,GAA2B;QACvC,EAAE,EAAE;;;;;;;;;;;;;;;;;;;;;;;6CAuBmC;QAEvC,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA8BK;QAEV,eAAe,EAAE;;;;;;;;;2EASoD;QAErE,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAiC2C;QAEhD,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;sBAqBM;KACjB,CAAC;IAEF,MAAM,IAAI,GACR,QAAQ,CAAC,QAAkB,CAAC,IAAI,qBAAqB,QAAQ,gBAAgB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAClH,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACzE,CAAC,CACF,CAAC;AAEF,mBAAmB;AACnB,MAAM,CAAC,QAAQ,CACb,cAAc,EACd,gBAAgB,EAChB,EAAE,WAAW,EAAE,gCAAgC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAC/E,KAAK,EAAE,GAAG,EAAE,EAAE;IACZ,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9G,CAAC,CACF,CAAC;AAEF,2EAA2E;AAE3E,MAAM,CAAC,MAAM,CACX,YAAY,EACZ,sFAAsF,EACtF,KAAK,IAAI,EAAE;IACT,MAAM,QAAQ,GAAI,UAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;SACnD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;SAC5B,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;QACL,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE;;;;;;;;;;;;;EAahB,QAAQ;;;EAGR,aAAa;;;EAGb,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2DA6EiC;iBAChD;aACF;SACF;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,2EAA2E;AAE3E,KAAK,UAAU,IAAI;IACjB,GAAG,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;IACnF,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC1B,GAAG,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kernlang/mcp-server",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.9",
|
|
4
4
|
"description": "KERN MCP server — compile, review, and analyze .kern files via MCP",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -15,30 +15,48 @@
|
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
17
|
"files": [
|
|
18
|
-
"dist"
|
|
18
|
+
"dist",
|
|
19
|
+
"README.md"
|
|
19
20
|
],
|
|
20
21
|
"keywords": [
|
|
21
22
|
"kern",
|
|
22
23
|
"mcp",
|
|
23
24
|
"model-context-protocol",
|
|
24
25
|
"ai",
|
|
26
|
+
"llm",
|
|
27
|
+
"dsl",
|
|
28
|
+
"compiler",
|
|
25
29
|
"transpiler",
|
|
30
|
+
"code-generation",
|
|
26
31
|
"review",
|
|
27
|
-
"security"
|
|
32
|
+
"security",
|
|
33
|
+
"claude",
|
|
34
|
+
"cursor",
|
|
35
|
+
"react",
|
|
36
|
+
"nextjs",
|
|
37
|
+
"express",
|
|
38
|
+
"vue"
|
|
28
39
|
],
|
|
40
|
+
"homepage": "https://kernlang.dev",
|
|
41
|
+
"repository": {
|
|
42
|
+
"type": "git",
|
|
43
|
+
"url": "https://github.com/nickcukas/kern",
|
|
44
|
+
"directory": "packages/mcp-server"
|
|
45
|
+
},
|
|
46
|
+
"author": "Nicolas Cukas",
|
|
29
47
|
"license": "AGPL-3.0",
|
|
30
48
|
"dependencies": {
|
|
31
49
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
32
50
|
"zod": "^4.3.6",
|
|
33
|
-
"@kernlang/
|
|
34
|
-
"@kernlang/
|
|
35
|
-
"@kernlang/
|
|
36
|
-
"@kernlang/
|
|
37
|
-
"@kernlang/
|
|
38
|
-
"@kernlang/
|
|
39
|
-
"@kernlang/review
|
|
40
|
-
"@kernlang/
|
|
41
|
-
"@kernlang/
|
|
51
|
+
"@kernlang/core": "3.1.9",
|
|
52
|
+
"@kernlang/express": "3.1.9",
|
|
53
|
+
"@kernlang/fastapi": "3.1.9",
|
|
54
|
+
"@kernlang/mcp": "3.1.9",
|
|
55
|
+
"@kernlang/react": "3.1.9",
|
|
56
|
+
"@kernlang/vue": "3.1.9",
|
|
57
|
+
"@kernlang/review": "3.1.9",
|
|
58
|
+
"@kernlang/review-mcp": "3.1.9",
|
|
59
|
+
"@kernlang/terminal": "3.1.9"
|
|
42
60
|
},
|
|
43
61
|
"devDependencies": {
|
|
44
62
|
"@types/express": "^5.0.6",
|