@kernlang/mcp 3.1.6

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.
@@ -0,0 +1,428 @@
1
+ import { accountNode, buildDiagnostics, camelKey, countTokens, getChildren, getFirstChild, getProps, serializeIR } from '@kernlang/core';
2
+ // ── Helpers ─────────────────────────────────────────────────────────────
3
+ function json(value) {
4
+ return JSON.stringify(value);
5
+ }
6
+ function findMcpNode(root) {
7
+ if (root.type === 'mcp')
8
+ return root;
9
+ for (const child of root.children || []) {
10
+ const found = findMcpNode(child);
11
+ if (found)
12
+ return found;
13
+ }
14
+ return undefined;
15
+ }
16
+ function str(value) {
17
+ if (value === undefined || value === null)
18
+ return undefined;
19
+ return String(value);
20
+ }
21
+ function extractDescription(node) {
22
+ const props = getProps(node);
23
+ const descNode = getFirstChild(node, 'description');
24
+ const raw = str(props.description)
25
+ || (descNode ? str(getProps(descNode).text) || str(getProps(descNode).value) : undefined)
26
+ || '';
27
+ return raw.replace(/[\u0000-\u001F\u007F-\u009F]/g, '').trim();
28
+ }
29
+ function indent(code, spaces) {
30
+ const prefix = ' '.repeat(spaces);
31
+ return code.split('\n').map(line => line.length > 0 ? `${prefix}${line}` : '');
32
+ }
33
+ function splitCsv(value) {
34
+ return (value || '').split(',').map(p => p.trim()).filter(Boolean);
35
+ }
36
+ // ── Guard collection (from Codex — robust prop aliases) ─────────────────
37
+ function guardTarget(props) {
38
+ return str(props.param) || str(props.field) || str(props.target) || str(props.on);
39
+ }
40
+ function collectGuard(node, fallbackAllowlist) {
41
+ const props = getProps(node);
42
+ const kind = str(props.name) || str(props.kind) || str(props.type);
43
+ if (kind !== 'sanitize' && kind !== 'pathContainment' && kind !== 'validate')
44
+ return null;
45
+ const rawAllow = splitCsv(str(props.allowlist) || str(props.allow) || str(props.roots));
46
+ return {
47
+ kind,
48
+ target: guardTarget(props),
49
+ pattern: str(props.pattern),
50
+ replacement: str(props.replacement),
51
+ min: str(props.min),
52
+ max: str(props.max),
53
+ regex: str(props.regex),
54
+ baseDir: str(props.baseDir) || str(props.base) || str(props.root),
55
+ allowlist: rawAllow.length > 0 ? rawAllow : fallbackAllowlist,
56
+ };
57
+ }
58
+ function isPathLikeParam(name) {
59
+ return /(?:path|file|dir|root|workspace)/i.test(name);
60
+ }
61
+ function collectParams(node, fallbackAllowlist) {
62
+ const paramNodes = getChildren(node, 'param');
63
+ const parentGuards = getChildren(node, 'guard')
64
+ .map(g => collectGuard(g, fallbackAllowlist))
65
+ .filter((g) => !!g);
66
+ return paramNodes.map((paramNode) => {
67
+ const props = getProps(paramNode);
68
+ const name = str(props.name) || 'input';
69
+ const type = str(props.type) || 'string';
70
+ const guards = [
71
+ ...getChildren(paramNode, 'guard')
72
+ .map(g => collectGuard(g, fallbackAllowlist))
73
+ .filter((g) => !!g),
74
+ ...parentGuards.filter(g => !g.target ? paramNodes.length === 1 : g.target === name),
75
+ ];
76
+ // Auto-inject pathContainment for path-like params (from Codex)
77
+ if (!guards.some(g => g.kind === 'pathContainment') && isPathLikeParam(name)) {
78
+ guards.push({ kind: 'pathContainment', target: name, allowlist: fallbackAllowlist });
79
+ }
80
+ return {
81
+ name,
82
+ type,
83
+ optional: str(props.required) === 'false' || props.default !== undefined,
84
+ defaultValue: str(props.default),
85
+ description: str(props.description),
86
+ guards,
87
+ node: paramNode,
88
+ };
89
+ });
90
+ }
91
+ // ── Zod schema generation ───────────────────────────────────────────────
92
+ function zodForParam(param) {
93
+ let expr;
94
+ switch (param.type) {
95
+ case 'number':
96
+ case 'float':
97
+ expr = 'z.number()';
98
+ break;
99
+ case 'int':
100
+ case 'integer':
101
+ expr = 'z.number().int()';
102
+ break;
103
+ case 'boolean':
104
+ case 'bool':
105
+ expr = 'z.boolean()';
106
+ break;
107
+ case 'string[]':
108
+ expr = 'z.array(z.string())';
109
+ break;
110
+ case 'number[]':
111
+ expr = 'z.array(z.number())';
112
+ break;
113
+ case 'object':
114
+ case 'json':
115
+ expr = 'z.record(z.string(), z.unknown())';
116
+ break;
117
+ default:
118
+ expr = 'z.string()';
119
+ break;
120
+ }
121
+ // Apply validate guards
122
+ for (const guard of param.guards.filter(g => g.kind === 'validate')) {
123
+ if (guard.min)
124
+ expr += `.min(${Number(guard.min)})`;
125
+ if (guard.max)
126
+ expr += `.max(${Number(guard.max)})`;
127
+ if (guard.regex)
128
+ expr += `.regex(new RegExp(${json(guard.regex)}))`;
129
+ }
130
+ // Apply inline min/max/regex from param props
131
+ const pp = getProps(param.node);
132
+ if (pp.min !== undefined && !param.guards.some(g => g.kind === 'validate' && g.min)) {
133
+ expr += `.min(${Number(pp.min)})`;
134
+ }
135
+ if (pp.max !== undefined && !param.guards.some(g => g.kind === 'validate' && g.max)) {
136
+ expr += `.max(${Number(pp.max)})`;
137
+ }
138
+ if (param.description) {
139
+ expr += `.describe(${json(param.description)})`;
140
+ }
141
+ if (param.defaultValue !== undefined) {
142
+ const dv = param.type === 'number' || param.type === 'int' ? param.defaultValue : json(param.defaultValue);
143
+ expr += `.default(${dv})`;
144
+ }
145
+ else if (param.optional) {
146
+ expr += '.optional()';
147
+ }
148
+ return expr;
149
+ }
150
+ // ── Runtime guard emission ──────────────────────────────────────────────
151
+ function emitGuardLines(params) {
152
+ const lines = [];
153
+ for (const param of params) {
154
+ const accessor = `params[${json(param.name)}]`;
155
+ for (const guard of param.guards.filter(g => g.kind === 'sanitize')) {
156
+ const pattern = guard.pattern || '[^\\w./ -]';
157
+ lines.push(`${accessor} = sanitizeValue(${accessor}, ${json(pattern)}, ${json(guard.replacement || '')});`);
158
+ }
159
+ const pathGuard = param.guards.find(g => g.kind === 'pathContainment');
160
+ if (pathGuard) {
161
+ const base = pathGuard.baseDir
162
+ ? `path.resolve(${json(pathGuard.baseDir)}, String(${accessor}))`
163
+ : `path.resolve(String(${accessor}))`;
164
+ lines.push(`${accessor} = ensurePathContainment(${base}, ALLOWED_PATHS);`);
165
+ }
166
+ }
167
+ return lines;
168
+ }
169
+ // ── Tool / Resource / Prompt emission ───────────────────────────────────
170
+ function emitTool(node, fallbackAllowlist) {
171
+ const name = str(getProps(node).name) || 'tool';
172
+ const description = extractDescription(node) || `Run ${name}`;
173
+ const params = collectParams(node, fallbackAllowlist);
174
+ const handlerNode = getFirstChild(node, 'handler');
175
+ const handlerCode = handlerNode ? str(getProps(handlerNode).code) || '' : '';
176
+ const lines = [];
177
+ // Zod schema object
178
+ if (params.length > 0) {
179
+ lines.push(`const ${camelKey(name)}Schema = {`);
180
+ for (const param of params) {
181
+ lines.push(` ${json(param.name)}: ${zodForParam(param)},`);
182
+ }
183
+ lines.push(`};`);
184
+ lines.push('');
185
+ }
186
+ lines.push(`server.tool(${json(name)}, ${json(description)}, ${params.length > 0 ? `${camelKey(name)}Schema` : '{}'}, async (input) => {`);
187
+ lines.push(` const requestId = nextRequestId();`);
188
+ lines.push(` logger.info("tool:call", { requestId, tool: ${json(name)} });`);
189
+ lines.push(` try {`);
190
+ if (params.length > 0) {
191
+ lines.push(` const params = { ...input } as Record<string, unknown>;`);
192
+ for (const line of emitGuardLines(params)) {
193
+ lines.push(` ${line}`);
194
+ }
195
+ }
196
+ lines.push(` const result = await (async () => {`);
197
+ if (handlerCode) {
198
+ lines.push(...indent(handlerCode, 6));
199
+ }
200
+ else {
201
+ lines.push(` return { content: [{ type: "text" as const, text: ${json(`${name} completed`)} }] };`);
202
+ }
203
+ lines.push(` })();`);
204
+ lines.push(` logger.info("tool:ok", { requestId, tool: ${json(name)} });`);
205
+ lines.push(` return normalizeToolResult(result);`);
206
+ lines.push(` } catch (error) {`);
207
+ lines.push(` logger.error("tool:error", { requestId, tool: ${json(name)}, error: fmtError(error) });`);
208
+ lines.push(` return { isError: true as const, content: [{ type: "text" as const, text: fmtError(error) }] };`);
209
+ lines.push(` }`);
210
+ lines.push(`});`);
211
+ return lines;
212
+ }
213
+ function emitResource(node, fallbackAllowlist) {
214
+ const name = str(getProps(node).name) || 'resource';
215
+ const uri = str(getProps(node).uri) || `${name}://default`;
216
+ const description = extractDescription(node);
217
+ const params = collectParams(node, fallbackAllowlist);
218
+ const handlerNode = getFirstChild(node, 'handler');
219
+ const handlerCode = handlerNode ? str(getProps(handlerNode).code) || '' : '';
220
+ const lines = [];
221
+ const hasTemplate = uri.includes('{');
222
+ if (description)
223
+ lines.push(`// ${description}`);
224
+ const uriArg = hasTemplate
225
+ ? `new ResourceTemplate(${json(uri)}, { list: undefined })`
226
+ : json(uri);
227
+ lines.push(`server.resource(${json(name)}, ${uriArg}, async (uri${hasTemplate ? ', variables' : ''}) => {`);
228
+ lines.push(` logger.info("resource:read", { resource: ${json(name)}, uri: uri.href });`);
229
+ lines.push(` try {`);
230
+ if (params.length > 0) {
231
+ lines.push(` const params = { ...(${hasTemplate ? 'variables' : '{}'}) } as Record<string, unknown>;`);
232
+ for (const line of emitGuardLines(params)) {
233
+ lines.push(` ${line}`);
234
+ }
235
+ }
236
+ lines.push(` const result = await (async () => {`);
237
+ if (handlerCode) {
238
+ lines.push(...indent(handlerCode, 6));
239
+ }
240
+ else {
241
+ lines.push(` return { contents: [{ uri: uri.href, text: ${json(`${name} content`)} }] };`);
242
+ }
243
+ lines.push(` })();`);
244
+ lines.push(` return result;`);
245
+ lines.push(` } catch (error) {`);
246
+ lines.push(` logger.error("resource:error", { resource: ${json(name)}, error: fmtError(error) });`);
247
+ lines.push(` throw error;`);
248
+ lines.push(` }`);
249
+ lines.push(`});`);
250
+ return lines;
251
+ }
252
+ function emitPrompt(node) {
253
+ const name = str(getProps(node).name) || 'prompt';
254
+ const description = extractDescription(node);
255
+ const paramNodes = getChildren(node, 'param');
256
+ const handlerNode = getFirstChild(node, 'handler');
257
+ const handlerCode = handlerNode ? str(getProps(handlerNode).code) || '' : '';
258
+ const lines = [];
259
+ if (description)
260
+ lines.push(`// ${description}`);
261
+ lines.push(`server.prompt(${json(name)}, ${json(description || name)}, [`);
262
+ for (const p of paramNodes) {
263
+ const pp = getProps(p);
264
+ const pName = str(pp.name) || 'input';
265
+ const required = str(pp.required) !== 'false';
266
+ lines.push(` { name: ${json(pName)}, required: ${required} },`);
267
+ }
268
+ lines.push(`], async (args) => {`);
269
+ lines.push(` const requestId = nextRequestId();`);
270
+ lines.push(` logger.info("prompt:call", { requestId, prompt: ${json(name)} });`);
271
+ lines.push(` try {`);
272
+ if (handlerCode) {
273
+ lines.push(...indent(handlerCode, 4));
274
+ }
275
+ else {
276
+ lines.push(` return { messages: [{ role: "user" as const, content: { type: "text" as const, text: ${json(`${name} prompt`)} } }] };`);
277
+ }
278
+ lines.push(` } catch (error) {`);
279
+ lines.push(` logger.error("prompt:error", { requestId, prompt: ${json(name)}, error: fmtError(error) });`);
280
+ lines.push(` return { messages: [{ role: "user" as const, content: { type: "text" as const, text: fmtError(error) } }] };`);
281
+ lines.push(` }`);
282
+ lines.push(`});`);
283
+ return lines;
284
+ }
285
+ // ── Main transpiler ─────────────────────────────────────────────────────
286
+ function buildCode(root, _config) {
287
+ const accounted = new Map();
288
+ accountNode(accounted, root, 'consumed', 'parse root');
289
+ const mcpNode = findMcpNode(root);
290
+ const container = mcpNode || root;
291
+ if (mcpNode)
292
+ accountNode(accounted, mcpNode, 'expressed', 'mcp server root', true);
293
+ const props = mcpNode ? getProps(mcpNode) : {};
294
+ const serverName = str(props.name) || 'KernMCPServer';
295
+ const serverVersion = str(props.version) || '1.0.0';
296
+ // Allowlist from mcp node props
297
+ const rawAllow = splitCsv(str(props.allowlist) || str(props.allowedPaths) || str(props.baseDir));
298
+ const allowlist = rawAllow.length > 0 ? rawAllow : ['process.cwd()'];
299
+ const toolNodes = getChildren(container, 'tool');
300
+ const resourceNodes = getChildren(container, 'resource');
301
+ const promptNodes = getChildren(container, 'prompt');
302
+ // Track all children
303
+ for (const n of [...toolNodes, ...resourceNodes, ...promptNodes]) {
304
+ accountNode(accounted, n, 'expressed', `mcp ${n.type}`, true);
305
+ }
306
+ // Determine if we need path import and ResourceTemplate — scan ALL node types, not just tools
307
+ const allNodes = [...toolNodes, ...resourceNodes, ...promptNodes];
308
+ const allGuards = allNodes.flatMap(n => getChildren(n, 'guard'));
309
+ const allParams = allNodes.flatMap(n => collectParams(n, allowlist));
310
+ const needsPath = allGuards.some(g => str(getProps(g).type) === 'pathContainment' || str(getProps(g).kind) === 'pathContainment')
311
+ || allParams.some(p => p.guards.some(g => g.kind === 'pathContainment'));
312
+ const needsResourceTemplate = resourceNodes.some(r => (str(getProps(r).uri) || '').includes('{'));
313
+ const allowlistLiteral = `[${allowlist.map(v => v === 'process.cwd()' ? 'process.cwd()' : json(v)).join(', ')}]`;
314
+ const sourceMap = [];
315
+ const lines = [];
316
+ // ── Imports
317
+ if (needsResourceTemplate) {
318
+ lines.push(`import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";`);
319
+ }
320
+ else {
321
+ lines.push(`import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";`);
322
+ }
323
+ lines.push(`import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";`);
324
+ lines.push(`import { z } from "zod";`);
325
+ if (needsPath) {
326
+ lines.push(`import path from "node:path";`);
327
+ }
328
+ lines.push('');
329
+ // ── Server instance
330
+ lines.push(`const server = new McpServer({`);
331
+ lines.push(` name: ${json(serverName)},`);
332
+ lines.push(` version: ${json(serverVersion)},`);
333
+ lines.push(`});`);
334
+ lines.push('');
335
+ // ── Runtime helpers (auto-injected — from Codex's structured approach)
336
+ if (needsPath) {
337
+ lines.push(`const ALLOWED_PATHS = ${allowlistLiteral}.map(r => path.resolve(r));`);
338
+ lines.push('');
339
+ }
340
+ lines.push(`const logger = {`);
341
+ lines.push(` info(event: string, details: Record<string, unknown> = {}) {`);
342
+ lines.push(` console.error(JSON.stringify({ level: "info", event, ...details, ts: new Date().toISOString() }));`);
343
+ lines.push(` },`);
344
+ lines.push(` error(event: string, details: Record<string, unknown> = {}) {`);
345
+ lines.push(` console.error(JSON.stringify({ level: "error", event, ...details, ts: new Date().toISOString() }));`);
346
+ lines.push(` },`);
347
+ lines.push(`};`);
348
+ lines.push('');
349
+ lines.push(`function nextRequestId(): string {`);
350
+ lines.push(' return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;');
351
+ lines.push(`}`);
352
+ lines.push('');
353
+ lines.push(`function fmtError(error: unknown): string {`);
354
+ lines.push(` return error instanceof Error ? error.message : String(error);`);
355
+ lines.push(`}`);
356
+ lines.push('');
357
+ if (allParams.some(p => p.guards.some(g => g.kind === 'sanitize'))) {
358
+ lines.push(`function sanitizeValue(value: unknown, pattern: string, replacement: string): unknown {`);
359
+ lines.push(` if (typeof value !== "string") return value;`);
360
+ lines.push(` return value.replace(new RegExp(pattern, "g"), replacement);`);
361
+ lines.push(`}`);
362
+ lines.push('');
363
+ }
364
+ if (needsPath) {
365
+ lines.push(`function ensurePathContainment(candidate: string, allowlist: string[]): string {`);
366
+ lines.push(` const resolved = path.resolve(candidate);`);
367
+ lines.push(' const ok = allowlist.some(root => resolved === root || resolved.startsWith(`${root}${path.sep}`));');
368
+ lines.push(` if (!ok) throw new Error("Path escapes allowed directories: " + candidate);`);
369
+ lines.push(` return resolved;`);
370
+ lines.push(`}`);
371
+ lines.push('');
372
+ }
373
+ lines.push(`function normalizeToolResult(result: unknown): { content: Array<{ type: "text"; text: string }> } {`);
374
+ lines.push(` if (result && typeof result === "object" && "content" in result) return result as { content: Array<{ type: "text"; text: string }> };`);
375
+ lines.push(` return { content: [{ type: "text", text: typeof result === "string" ? result : JSON.stringify(result, null, 2) }] };`);
376
+ lines.push(`}`);
377
+ lines.push('');
378
+ // ── Registrations
379
+ for (const toolNode of toolNodes) {
380
+ sourceMap.push({ irLine: toolNode.loc?.line || 0, irCol: toolNode.loc?.col || 1, outLine: lines.length + 1, outCol: 1 });
381
+ lines.push(...emitTool(toolNode, allowlist), '');
382
+ }
383
+ for (const resourceNode of resourceNodes) {
384
+ sourceMap.push({ irLine: resourceNode.loc?.line || 0, irCol: resourceNode.loc?.col || 1, outLine: lines.length + 1, outCol: 1 });
385
+ lines.push(...emitResource(resourceNode, allowlist), '');
386
+ }
387
+ for (const promptNode of promptNodes) {
388
+ sourceMap.push({ irLine: promptNode.loc?.line || 0, irCol: promptNode.loc?.col || 1, outLine: lines.length + 1, outCol: 1 });
389
+ lines.push(...emitPrompt(promptNode), '');
390
+ }
391
+ // ── Main entrypoint (from Codex — proper async main + fatal handler)
392
+ lines.push(`async function main(): Promise<void> {`);
393
+ lines.push(` logger.info("server:start", { server: ${json(serverName)}, version: ${json(serverVersion)} });`);
394
+ lines.push(` const transport = new StdioServerTransport();`);
395
+ lines.push(` await server.connect(transport);`);
396
+ lines.push(`}`);
397
+ lines.push('');
398
+ lines.push(`void main().catch((error) => {`);
399
+ lines.push(` logger.error("server:fatal", { error: fmtError(error) });`);
400
+ lines.push(` process.exitCode = 1;`);
401
+ lines.push(`});`);
402
+ lines.push('');
403
+ return {
404
+ code: lines.join('\n'),
405
+ sourceMap,
406
+ diagnostics: buildDiagnostics(root, accounted, 'mcp'),
407
+ };
408
+ }
409
+ /** Transpile a KERN IR tree to MCP server TypeScript code string. */
410
+ export function transpileMCP(root, config) {
411
+ const { code, sourceMap, diagnostics } = buildCode(root, config);
412
+ const ir = serializeIR(root);
413
+ const irTokenCount = countTokens(ir);
414
+ const tsTokenCount = countTokens(code);
415
+ return {
416
+ code,
417
+ sourceMap: sourceMap.length > 0 ? sourceMap : [{ irLine: root.loc?.line || 0, irCol: root.loc?.col || 1, outLine: 1, outCol: 1 }],
418
+ irTokenCount,
419
+ tsTokenCount,
420
+ tokenReduction: irTokenCount === 0 ? 0 : Math.round((1 - irTokenCount / tsTokenCount) * 100),
421
+ diagnostics,
422
+ };
423
+ }
424
+ /** Alias for use from CLI where config may not be fully resolved. */
425
+ export function transpileMCPResult(root, config) {
426
+ return transpileMCP(root, config);
427
+ }
428
+ //# sourceMappingURL=transpiler-mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transpiler-mcp.js","sourceRoot":"","sources":["../src/transpiler-mcp.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "@kernlang/mcp",
3
+ "version": "3.1.6",
4
+ "description": "Kern MCP server transpiler — compile .kern to secure MCP servers",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "keywords": [
18
+ "kern",
19
+ "llm",
20
+ "mcp",
21
+ "model-context-protocol",
22
+ "transpiler",
23
+ "ai",
24
+ "security"
25
+ ],
26
+ "license": "AGPL-3.0",
27
+ "dependencies": {
28
+ "@kernlang/core": "3.1.6"
29
+ },
30
+ "scripts": {
31
+ "build": "tsc -b",
32
+ "test": "node --experimental-vm-modules ../../node_modules/jest/bin/jest.js --passWithNoTests --config jest.config.js"
33
+ }
34
+ }