@node-in-layers/mcp-server 1.6.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/index.js.map +1 -1
- package/libs.d.ts +28 -0
- package/libs.js +397 -0
- package/libs.js.map +1 -0
- package/mcp.d.ts +1 -169
- package/mcp.js +263 -117
- package/mcp.js.map +1 -1
- package/package.json +13 -9
- package/types.d.ts +52 -8
- package/types.js.map +1 -1
package/index.d.ts
CHANGED
package/index.js
CHANGED
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,4BAA4B,CAAA;AAEzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,4BAA4B,CAAA;AAEzC,OAAO,EAAE,IAAI,EAAE,CAAA;AACf,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,cAAc,YAAY,CAAA"}
|
package/libs.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { McpTool } from '@l4t/mcp-ai/common/types.js';
|
|
2
|
+
import { NilAnnotatedFunction } from '@node-in-layers/core';
|
|
3
|
+
import { OpenApiFunctionDescription } from './types.js';
|
|
4
|
+
export declare const isNilAnnotatedFunction: (fn: any) => fn is NilAnnotatedFunction<any, any>;
|
|
5
|
+
export declare const describeFeatureMcpTool: () => McpTool;
|
|
6
|
+
export declare const listFeaturesMcpTool: () => McpTool;
|
|
7
|
+
export declare const describeModelMcpTool: () => McpTool;
|
|
8
|
+
export declare const listModelsMcpTool: () => McpTool;
|
|
9
|
+
export declare const listDomainsMcpTool: () => McpTool;
|
|
10
|
+
export declare const createOpenApiForNonNilAnnotatedFunction: (name: string) => {
|
|
11
|
+
name: string;
|
|
12
|
+
input: {
|
|
13
|
+
type: string;
|
|
14
|
+
additionalProperties: boolean;
|
|
15
|
+
properties: {
|
|
16
|
+
args: {
|
|
17
|
+
type: string;
|
|
18
|
+
};
|
|
19
|
+
crossLayerProps: Record<string, any>;
|
|
20
|
+
};
|
|
21
|
+
required: string[];
|
|
22
|
+
};
|
|
23
|
+
output: {
|
|
24
|
+
type: string;
|
|
25
|
+
additionalProperties: boolean;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
export declare const nilAnnotatedFunctionToOpenApi: (name: string, fn: NilAnnotatedFunction<any, any>) => OpenApiFunctionDescription;
|
package/libs.js
ADDED
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
export const isNilAnnotatedFunction = (fn) => {
|
|
2
|
+
if (fn.schema) {
|
|
3
|
+
return true;
|
|
4
|
+
}
|
|
5
|
+
return false;
|
|
6
|
+
};
|
|
7
|
+
export const describeFeatureMcpTool = () => {
|
|
8
|
+
return {
|
|
9
|
+
name: 'describe_feature',
|
|
10
|
+
description: 'Gets the schema of a given feature',
|
|
11
|
+
inputSchema: {
|
|
12
|
+
type: 'object',
|
|
13
|
+
properties: {
|
|
14
|
+
domain: { type: 'string' },
|
|
15
|
+
featureName: { type: 'string' },
|
|
16
|
+
},
|
|
17
|
+
required: ['domain', 'featureName'],
|
|
18
|
+
},
|
|
19
|
+
outputSchema: {
|
|
20
|
+
type: 'object',
|
|
21
|
+
properties: {
|
|
22
|
+
schema: { type: 'object' },
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export const listFeaturesMcpTool = () => {
|
|
28
|
+
return {
|
|
29
|
+
name: 'list_features',
|
|
30
|
+
description: 'Gets a list of features for a given domain',
|
|
31
|
+
inputSchema: {
|
|
32
|
+
type: 'object',
|
|
33
|
+
properties: {
|
|
34
|
+
domain: { type: 'string' },
|
|
35
|
+
},
|
|
36
|
+
required: ['domain'],
|
|
37
|
+
},
|
|
38
|
+
outputSchema: {
|
|
39
|
+
type: 'object',
|
|
40
|
+
properties: {
|
|
41
|
+
features: {
|
|
42
|
+
type: 'array',
|
|
43
|
+
// @ts-ignore
|
|
44
|
+
items: {
|
|
45
|
+
type: 'object',
|
|
46
|
+
required: ['name'],
|
|
47
|
+
properties: {
|
|
48
|
+
name: { type: 'string' },
|
|
49
|
+
description: { type: 'string' },
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
export const describeModelMcpTool = () => {
|
|
58
|
+
return {
|
|
59
|
+
name: 'describe_model',
|
|
60
|
+
description: 'Gets the schema of a given model',
|
|
61
|
+
inputSchema: {
|
|
62
|
+
type: 'object',
|
|
63
|
+
properties: {
|
|
64
|
+
domain: { type: 'string' },
|
|
65
|
+
modelType: { type: 'string' },
|
|
66
|
+
},
|
|
67
|
+
required: ['domain', 'modelType'],
|
|
68
|
+
},
|
|
69
|
+
outputSchema: {
|
|
70
|
+
type: 'object',
|
|
71
|
+
// @ts-ignore
|
|
72
|
+
additionalProperties: true,
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
export const listModelsMcpTool = () => {
|
|
77
|
+
return {
|
|
78
|
+
name: 'list_models',
|
|
79
|
+
description: 'Gets a list of models for a given domain and their description.',
|
|
80
|
+
inputSchema: {
|
|
81
|
+
type: 'object',
|
|
82
|
+
properties: {
|
|
83
|
+
domain: { type: 'string' },
|
|
84
|
+
},
|
|
85
|
+
required: ['domain'],
|
|
86
|
+
},
|
|
87
|
+
outputSchema: {
|
|
88
|
+
type: 'object',
|
|
89
|
+
properties: {
|
|
90
|
+
models: {
|
|
91
|
+
type: 'array',
|
|
92
|
+
// @ts-ignore
|
|
93
|
+
items: {
|
|
94
|
+
type: 'object',
|
|
95
|
+
required: ['modelType'],
|
|
96
|
+
properties: {
|
|
97
|
+
modelType: { type: 'string' },
|
|
98
|
+
description: { type: 'string' },
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
export const listDomainsMcpTool = () => {
|
|
107
|
+
return {
|
|
108
|
+
name: 'list_domains',
|
|
109
|
+
description: 'Gets a list of domains on the system, including their descriptions.',
|
|
110
|
+
outputSchema: {
|
|
111
|
+
type: 'object',
|
|
112
|
+
properties: {
|
|
113
|
+
domains: {
|
|
114
|
+
type: 'array',
|
|
115
|
+
// @ts-ignore
|
|
116
|
+
items: {
|
|
117
|
+
type: 'object',
|
|
118
|
+
required: ['name'],
|
|
119
|
+
properties: {
|
|
120
|
+
name: { type: 'string' },
|
|
121
|
+
description: { type: 'string' },
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
const _defOf = (schema) => { var _a, _b; return ((_b = (_a = schema === null || schema === void 0 ? void 0 : schema._zod) === null || _a === void 0 ? void 0 : _a.def) !== null && _b !== void 0 ? _b : schema === null || schema === void 0 ? void 0 : schema._def); };
|
|
130
|
+
const _unwrap = (schema) => {
|
|
131
|
+
const defAny = _defOf(schema);
|
|
132
|
+
const inner = (defAny === null || defAny === void 0 ? void 0 : defAny.innerType) || (defAny === null || defAny === void 0 ? void 0 : defAny.type) || (defAny === null || defAny === void 0 ? void 0 : defAny.schema) || (defAny === null || defAny === void 0 ? void 0 : defAny.wrapped);
|
|
133
|
+
return inner && (inner._zod || inner._def) ? _unwrap(inner) : schema;
|
|
134
|
+
};
|
|
135
|
+
const _getDescription = (schema, defAny) => {
|
|
136
|
+
var _a;
|
|
137
|
+
return ((schema && schema.description) ||
|
|
138
|
+
(defAny === null || defAny === void 0 ? void 0 : defAny.description) ||
|
|
139
|
+
((_a = defAny === null || defAny === void 0 ? void 0 : defAny.doc) === null || _a === void 0 ? void 0 : _a.description));
|
|
140
|
+
};
|
|
141
|
+
// c8 ignore start
|
|
142
|
+
const _normalizeType = (t) => {
|
|
143
|
+
switch (t) {
|
|
144
|
+
case 'ZodString':
|
|
145
|
+
return 'string';
|
|
146
|
+
case 'ZodNumber':
|
|
147
|
+
return 'number';
|
|
148
|
+
case 'ZodBoolean':
|
|
149
|
+
return 'boolean';
|
|
150
|
+
case 'ZodLiteral':
|
|
151
|
+
return 'literal';
|
|
152
|
+
case 'ZodEnum':
|
|
153
|
+
return 'enum';
|
|
154
|
+
case 'ZodArray':
|
|
155
|
+
return 'array';
|
|
156
|
+
case 'ZodRecord':
|
|
157
|
+
return 'record';
|
|
158
|
+
case 'ZodObject':
|
|
159
|
+
return 'object';
|
|
160
|
+
case 'ZodUnion':
|
|
161
|
+
return 'union';
|
|
162
|
+
case 'ZodTuple':
|
|
163
|
+
return 'tuple';
|
|
164
|
+
case 'ZodUndefined':
|
|
165
|
+
return 'undefined';
|
|
166
|
+
// c8 ignore next 3: unused mappings in current paths
|
|
167
|
+
// case 'ZodUnknown':
|
|
168
|
+
// return 'unknown'
|
|
169
|
+
// case 'ZodAny':
|
|
170
|
+
// return 'any'
|
|
171
|
+
default:
|
|
172
|
+
return t;
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
// c8 ignore stop
|
|
176
|
+
// c8 ignore start
|
|
177
|
+
const _numberSchema = (defAny, desc) => {
|
|
178
|
+
const checks = Array.isArray(defAny === null || defAny === void 0 ? void 0 : defAny.checks) ? defAny.checks : [];
|
|
179
|
+
const baseType = checks.some((c) => (c === null || c === void 0 ? void 0 : c.kind) === 'int')
|
|
180
|
+
? 'integer'
|
|
181
|
+
: 'number';
|
|
182
|
+
const extras = checks.reduce((acc, c) => {
|
|
183
|
+
if ((c === null || c === void 0 ? void 0 : c.kind) === 'min') {
|
|
184
|
+
return Object.assign(Object.assign({}, acc), { minimum: c.value });
|
|
185
|
+
}
|
|
186
|
+
if ((c === null || c === void 0 ? void 0 : c.kind) === 'max') {
|
|
187
|
+
return Object.assign(Object.assign({}, acc), { maximum: c.value });
|
|
188
|
+
}
|
|
189
|
+
if ((c === null || c === void 0 ? void 0 : c.kind) === 'multipleOf') {
|
|
190
|
+
return Object.assign(Object.assign({}, acc), { multipleOf: c.value });
|
|
191
|
+
}
|
|
192
|
+
return acc;
|
|
193
|
+
}, {});
|
|
194
|
+
return Object.assign(Object.assign({ type: baseType }, (desc ? { description: desc } : {})), extras);
|
|
195
|
+
};
|
|
196
|
+
// c8 ignore stop
|
|
197
|
+
// c8 ignore start
|
|
198
|
+
const _enumValues = (s, defAny) => {
|
|
199
|
+
var _a;
|
|
200
|
+
const zValues = (_a = s === null || s === void 0 ? void 0 : s._zod) === null || _a === void 0 ? void 0 : _a.values;
|
|
201
|
+
return zValues && typeof zValues.forEach === 'function'
|
|
202
|
+
? Array.from(zValues)
|
|
203
|
+
: Array.isArray(defAny === null || defAny === void 0 ? void 0 : defAny.entries)
|
|
204
|
+
? defAny.entries
|
|
205
|
+
: (defAny === null || defAny === void 0 ? void 0 : defAny.entries) && typeof defAny.entries === 'object'
|
|
206
|
+
? Object.values(defAny.entries)
|
|
207
|
+
: Array.isArray(defAny === null || defAny === void 0 ? void 0 : defAny.values)
|
|
208
|
+
? defAny.values
|
|
209
|
+
: (defAny === null || defAny === void 0 ? void 0 : defAny.values) && typeof defAny.values === 'object'
|
|
210
|
+
? Object.values(defAny.values)
|
|
211
|
+
: Array.isArray(defAny === null || defAny === void 0 ? void 0 : defAny.options)
|
|
212
|
+
? defAny.options
|
|
213
|
+
: (defAny === null || defAny === void 0 ? void 0 : defAny.options) && typeof defAny.options === 'object'
|
|
214
|
+
? Object.values(defAny.options)
|
|
215
|
+
: [];
|
|
216
|
+
};
|
|
217
|
+
// c8 ignore stop
|
|
218
|
+
// c8 ignore start
|
|
219
|
+
const _literalSchema = (defAny, desc) => {
|
|
220
|
+
const literalValue = Array.isArray(defAny === null || defAny === void 0 ? void 0 : defAny.values)
|
|
221
|
+
? defAny.values[0]
|
|
222
|
+
: defAny === null || defAny === void 0 ? void 0 : defAny.value;
|
|
223
|
+
const t = typeof literalValue;
|
|
224
|
+
const jsonType = t === 'string' || t === 'number' || t === 'boolean' ? t : undefined;
|
|
225
|
+
return Object.assign(Object.assign(Object.assign({}, (jsonType ? { type: jsonType } : {})), { const: literalValue }), (desc ? { description: desc } : {}));
|
|
226
|
+
};
|
|
227
|
+
// c8 ignore stop
|
|
228
|
+
const _objectFromShape = (shape, desc) => {
|
|
229
|
+
const entries = Object.entries(shape || {});
|
|
230
|
+
const reduced = entries.reduce((acc, [key, field]) => {
|
|
231
|
+
const fieldDefAny = _defOf(field) || {};
|
|
232
|
+
const fieldType = (fieldDefAny === null || fieldDefAny === void 0 ? void 0 : fieldDefAny.type) || (fieldDefAny === null || fieldDefAny === void 0 ? void 0 : fieldDefAny.typeName);
|
|
233
|
+
const isOptional = fieldType === 'optional' ||
|
|
234
|
+
fieldType === 'default' ||
|
|
235
|
+
fieldType === 'ZodOptional' ||
|
|
236
|
+
fieldType === 'ZodDefault';
|
|
237
|
+
const nextProps = Object.assign(Object.assign({}, acc.properties), { [key]: _zodToJson(field) });
|
|
238
|
+
const nextReq = isOptional ? acc.required : acc.required.concat(key);
|
|
239
|
+
return { properties: nextProps, required: nextReq };
|
|
240
|
+
}, { properties: {}, required: [] });
|
|
241
|
+
return Object.assign(Object.assign({ type: 'object', properties: reduced.properties, additionalProperties: false }, (desc ? { description: desc } : {})), (reduced.required.length > 0 ? { required: reduced.required } : {}));
|
|
242
|
+
};
|
|
243
|
+
const _arrayItems = (defAny) => { var _a, _b; return (_b = (_a = defAny === null || defAny === void 0 ? void 0 : defAny.element) !== null && _a !== void 0 ? _a : defAny === null || defAny === void 0 ? void 0 : defAny.type) !== null && _b !== void 0 ? _b : defAny === null || defAny === void 0 ? void 0 : defAny.element; };
|
|
244
|
+
const _recordValueType = (defAny) => { var _a; return (_a = defAny === null || defAny === void 0 ? void 0 : defAny.valueType) !== null && _a !== void 0 ? _a : defAny === null || defAny === void 0 ? void 0 : defAny.value; };
|
|
245
|
+
const _zodToJsonHandlers = {
|
|
246
|
+
string: (_defAny, _s, desc) => (Object.assign({ type: 'string' }, (desc ? { description: desc } : {}))),
|
|
247
|
+
number: (defAny, _s, desc) => _numberSchema(defAny, desc),
|
|
248
|
+
boolean: (_defAny, _s, desc) => (Object.assign({ type: 'boolean' }, (desc ? { description: desc } : {}))),
|
|
249
|
+
literal: (defAny, _s, desc) => _literalSchema(defAny, desc),
|
|
250
|
+
enum: (defAny, s, desc) => (Object.assign({ type: 'string', enum: _enumValues(s, defAny) }, (desc ? { description: desc } : {}))),
|
|
251
|
+
array: (defAny, _s, desc) => {
|
|
252
|
+
const item = _arrayItems(defAny);
|
|
253
|
+
return Object.assign({ type: 'array', items: _zodToJson(item) }, (desc ? { description: desc } : {}));
|
|
254
|
+
},
|
|
255
|
+
record: (defAny, _s, desc) => {
|
|
256
|
+
const valueType = _recordValueType(defAny);
|
|
257
|
+
return Object.assign({ type: 'object', additionalProperties: _zodToJson(valueType) }, (desc ? { description: desc } : {}));
|
|
258
|
+
},
|
|
259
|
+
object: (defAny, _s, desc) => {
|
|
260
|
+
const shapeGetter = defAny === null || defAny === void 0 ? void 0 : defAny.shape;
|
|
261
|
+
const shape = typeof shapeGetter === 'function' ? shapeGetter() : shapeGetter || {};
|
|
262
|
+
return _objectFromShape(shape, desc);
|
|
263
|
+
},
|
|
264
|
+
union: (defAny, _s, desc) => {
|
|
265
|
+
var _a;
|
|
266
|
+
const options = ((_a = defAny === null || defAny === void 0 ? void 0 : defAny.options) !== null && _a !== void 0 ? _a : []);
|
|
267
|
+
return Object.assign({ anyOf: options.map(_zodToJson) }, (desc ? { description: desc } : {}));
|
|
268
|
+
},
|
|
269
|
+
// undefined -> OpenAPI null
|
|
270
|
+
undefined: (_defAny, _s, desc) => (Object.assign({ type: 'null' }, (desc ? { description: desc } : {}))),
|
|
271
|
+
// tuple handler intentionally ignored
|
|
272
|
+
// c8 ignore next 7
|
|
273
|
+
// tuple: (defAny, _s, desc) => {
|
|
274
|
+
// const items = _tupleItems(defAny)
|
|
275
|
+
// const arr = Array.isArray(items) ? items : Array.from(items as any)
|
|
276
|
+
// return {
|
|
277
|
+
// type: 'array',
|
|
278
|
+
// prefixItems: arr.map(_zodToJson),
|
|
279
|
+
// ...(desc ? { description: desc } : {}),
|
|
280
|
+
// }
|
|
281
|
+
// },
|
|
282
|
+
};
|
|
283
|
+
const _zodToJson = (schema) => {
|
|
284
|
+
// c8 ignore next 2
|
|
285
|
+
if (!schema) {
|
|
286
|
+
return {};
|
|
287
|
+
}
|
|
288
|
+
const original = schema;
|
|
289
|
+
const s = _unwrap(schema);
|
|
290
|
+
const defAny = _defOf(s);
|
|
291
|
+
const t = _normalizeType((defAny === null || defAny === void 0 ? void 0 : defAny.type) || (defAny === null || defAny === void 0 ? void 0 : defAny.typeName)) || 'unknown';
|
|
292
|
+
const desc = _getDescription(original, _defOf(original)) || _getDescription(s, defAny);
|
|
293
|
+
const handler = _zodToJsonHandlers[t];
|
|
294
|
+
if (handler) {
|
|
295
|
+
return handler(defAny, s, desc);
|
|
296
|
+
}
|
|
297
|
+
// c8 ignore next: fallback defensive return
|
|
298
|
+
return {};
|
|
299
|
+
};
|
|
300
|
+
/**
|
|
301
|
+
* CrossLayerProps OpenAPI schema (static):
|
|
302
|
+
* {
|
|
303
|
+
* logging?: {
|
|
304
|
+
* ids?: Array<Record<string,string>>
|
|
305
|
+
* }
|
|
306
|
+
* }
|
|
307
|
+
*/
|
|
308
|
+
const _crossLayerPropsOpenApi = () => ({
|
|
309
|
+
type: 'object',
|
|
310
|
+
additionalProperties: true,
|
|
311
|
+
properties: {
|
|
312
|
+
logging: {
|
|
313
|
+
type: 'object',
|
|
314
|
+
additionalProperties: true,
|
|
315
|
+
properties: {
|
|
316
|
+
ids: {
|
|
317
|
+
type: 'array',
|
|
318
|
+
items: {
|
|
319
|
+
type: 'object',
|
|
320
|
+
additionalProperties: { type: 'string' },
|
|
321
|
+
},
|
|
322
|
+
},
|
|
323
|
+
},
|
|
324
|
+
},
|
|
325
|
+
},
|
|
326
|
+
});
|
|
327
|
+
/**
|
|
328
|
+
* NOTE: Unused breadth-first search fallback for tuple/object discovery. Commented out to avoid
|
|
329
|
+
* non-functional patterns (loops/mutation) and because current Zod v4 paths cover our use-cases.
|
|
330
|
+
*/
|
|
331
|
+
/*
|
|
332
|
+
const _findZodNodesByType = (
|
|
333
|
+
root: any,
|
|
334
|
+
typeName: string,
|
|
335
|
+
maxDepth = 6
|
|
336
|
+
): any[] => {
|
|
337
|
+
return []
|
|
338
|
+
}
|
|
339
|
+
*/
|
|
340
|
+
const _firstDefined = (...vals) => vals.find(v => v !== undefined);
|
|
341
|
+
const _getFirstArgSchema = (fnSchema) => {
|
|
342
|
+
const def = _defOf(fnSchema);
|
|
343
|
+
const inputSchema = def === null || def === void 0 ? void 0 : def.input;
|
|
344
|
+
const tupleDef = _firstDefined(_defOf(inputSchema), inputSchema);
|
|
345
|
+
const itemsAny = _firstDefined(tupleDef === null || tupleDef === void 0 ? void 0 : tupleDef.items, tupleDef === null || tupleDef === void 0 ? void 0 : tupleDef.elements, tupleDef === null || tupleDef === void 0 ? void 0 : tupleDef.itemsArray);
|
|
346
|
+
// c8 ignore next 3
|
|
347
|
+
const items = Array.isArray(itemsAny)
|
|
348
|
+
? itemsAny
|
|
349
|
+
: itemsAny
|
|
350
|
+
? Array.from(itemsAny)
|
|
351
|
+
: undefined;
|
|
352
|
+
return Array.isArray(items) ? items[0] : undefined;
|
|
353
|
+
};
|
|
354
|
+
export const createOpenApiForNonNilAnnotatedFunction = (name) => {
|
|
355
|
+
return {
|
|
356
|
+
name,
|
|
357
|
+
input: {
|
|
358
|
+
type: 'object',
|
|
359
|
+
additionalProperties: true,
|
|
360
|
+
properties: {
|
|
361
|
+
args: {
|
|
362
|
+
type: 'object',
|
|
363
|
+
},
|
|
364
|
+
crossLayerProps: _crossLayerPropsOpenApi(),
|
|
365
|
+
},
|
|
366
|
+
required: ['args'],
|
|
367
|
+
},
|
|
368
|
+
output: {
|
|
369
|
+
type: 'object',
|
|
370
|
+
additionalProperties: true,
|
|
371
|
+
},
|
|
372
|
+
};
|
|
373
|
+
};
|
|
374
|
+
export const nilAnnotatedFunctionToOpenApi = (name, fn) => {
|
|
375
|
+
var _a, _b;
|
|
376
|
+
const schema = fn.schema;
|
|
377
|
+
const def = _defOf(schema);
|
|
378
|
+
const returnsSchema = _firstDefined(def === null || def === void 0 ? void 0 : def.output, def === null || def === void 0 ? void 0 : def.returns, def === null || def === void 0 ? void 0 : def.returnType, def === null || def === void 0 ? void 0 : def.result);
|
|
379
|
+
const argsSchema = _getFirstArgSchema(schema);
|
|
380
|
+
const argsJson = argsSchema ? _zodToJson(argsSchema) : {};
|
|
381
|
+
const outputJson = returnsSchema ? _zodToJson(returnsSchema) : {};
|
|
382
|
+
const inputObject = {
|
|
383
|
+
type: 'object',
|
|
384
|
+
additionalProperties: false,
|
|
385
|
+
properties: {
|
|
386
|
+
args: argsJson,
|
|
387
|
+
crossLayerProps: _crossLayerPropsOpenApi(),
|
|
388
|
+
},
|
|
389
|
+
required: ['args'],
|
|
390
|
+
};
|
|
391
|
+
const output = (outputJson === null || outputJson === void 0 ? void 0 : outputJson.type) === 'object' && (outputJson === null || outputJson === void 0 ? void 0 : outputJson.properties)
|
|
392
|
+
? outputJson.properties
|
|
393
|
+
: outputJson;
|
|
394
|
+
const description = (_a = schema.description) !== null && _a !== void 0 ? _a : (_b = _defOf(schema)) === null || _b === void 0 ? void 0 : _b.description;
|
|
395
|
+
return Object.assign(Object.assign({ name }, (description ? { description } : {})), { input: inputObject, output });
|
|
396
|
+
};
|
|
397
|
+
//# sourceMappingURL=libs.js.map
|
package/libs.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"libs.js","sourceRoot":"","sources":["../src/libs.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,EAAO,EAC+B,EAAE;IACxC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAY,EAAE;IAClD,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,oCAAoC;QACjD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAChC;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;SACpC;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC3B;SACF;KACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAY,EAAE;IAC/C,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,4CAA4C;QACzD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC3B;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,OAAO;oBACb,aAAa;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,CAAC,MAAM,CAAC;wBAClB,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAChC;qBACF;iBACF;aACF;SACF;KACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAY,EAAE;IAChD,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,kCAAkC;QAC/C,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC9B;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;SAClC;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,aAAa;YACb,oBAAoB,EAAE,IAAI;SAC3B;KACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAY,EAAE;IAC7C,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,iEAAiE;QACnE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC3B;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,OAAO;oBACb,aAAa;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,CAAC,WAAW,CAAC;wBACvB,UAAU,EAAE;4BACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC7B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAChC;qBACF;iBACF;aACF;SACF;KACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAY,EAAE;IAC9C,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,qEAAqE;QACvE,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,aAAa;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,CAAC,MAAM,CAAC;wBAClB,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAChC;qBACF;iBACF;aACF;SACF;KACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,MAAW,EAAE,EAAE,eAAC,OAAA,CAAC,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,0CAAE,GAAG,mCAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAQ,CAAA,EAAA,CAAA;AAE1E,MAAM,OAAO,GAAG,CAAC,MAAW,EAAO,EAAE;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAC7B,MAAM,KAAK,GACT,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,MAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAA,KAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,KAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAA,CAAA;IACxE,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;AACtE,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,MAAW,EAAE,MAAW,EAAsB,EAAE;;IACvE,OAAO,CACL,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC;SAC9B,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,CAAA;SACnB,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,0CAAE,WAAW,CAAA,CACzB,CAAA;AACH,CAAC,CAAA;AAED,kBAAkB;AAClB,MAAM,cAAc,GAAG,CAAC,CAAqB,EAAE,EAAE;IAC/C,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,WAAW;YACd,OAAO,QAAQ,CAAA;QACjB,KAAK,WAAW;YACd,OAAO,QAAQ,CAAA;QACjB,KAAK,YAAY;YACf,OAAO,SAAS,CAAA;QAClB,KAAK,YAAY;YACf,OAAO,SAAS,CAAA;QAClB,KAAK,SAAS;YACZ,OAAO,MAAM,CAAA;QACf,KAAK,UAAU;YACb,OAAO,OAAO,CAAA;QAChB,KAAK,WAAW;YACd,OAAO,QAAQ,CAAA;QACjB,KAAK,WAAW;YACd,OAAO,QAAQ,CAAA;QACjB,KAAK,UAAU;YACb,OAAO,OAAO,CAAA;QAChB,KAAK,UAAU;YACb,OAAO,OAAO,CAAA;QAChB,KAAK,cAAc;YACjB,OAAO,WAAW,CAAA;QACpB,qDAAqD;QACrD,qBAAqB;QACrB,qBAAqB;QACrB,iBAAiB;QACjB,iBAAiB;QACjB;YACE,OAAO,CAAC,CAAA;IACZ,CAAC;AACH,CAAC,CAAA;AACD,iBAAiB;AAEjB,kBAAkB;AAClB,MAAM,aAAa,GAAG,CAAC,MAAW,EAAE,IAAa,EAAE,EAAE;IACnD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;IACjE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,MAAK,KAAK,CAAC;QACzD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,QAAQ,CAAA;IACZ,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAwB,EAAE,CAAM,EAAE,EAAE;QAChE,IAAI,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,MAAK,KAAK,EAAE,CAAC;YACtB,uCAAY,GAAG,KAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAE;QACrC,CAAC;QACD,IAAI,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,MAAK,KAAK,EAAE,CAAC;YACtB,uCAAY,GAAG,KAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAE;QACrC,CAAC;QACD,IAAI,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,MAAK,YAAY,EAAE,CAAC;YAC7B,uCAAY,GAAG,KAAE,UAAU,EAAE,CAAC,CAAC,KAAK,IAAE;QACxC,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,qCAAS,IAAI,EAAE,QAAQ,IAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAK,MAAM,EAAE;AAC9E,CAAC,CAAA;AACD,iBAAiB;AAEjB,kBAAkB;AAClB,MAAM,WAAW,GAAG,CAAC,CAAM,EAAE,MAAW,EAAkB,EAAE;;IAC1D,MAAM,OAAO,GAAG,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,0CAAE,MAAM,CAAA;IAC/B,OAAO,OAAO,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU;QACrD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC;YAC9B,CAAC,CAAC,MAAM,CAAC,OAAO;YAChB,CAAC,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,KAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;gBACrD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC/B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC;oBAC7B,CAAC,CAAC,MAAM,CAAC,MAAM;oBACf,CAAC,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,KAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;wBACnD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;wBAC9B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC;4BAC9B,CAAC,CAAC,MAAM,CAAC,OAAO;4BAChB,CAAC,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,KAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;gCACrD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;gCAC/B,CAAC,CAAC,EAAE,CAAA;AACpB,CAAC,CAAA;AACD,iBAAiB;AAEjB,kBAAkB;AAClB,MAAM,cAAc,GAAG,CAAC,MAAW,EAAE,IAAa,EAAE,EAAE;IACpD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC;QAChD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAA;IACjB,MAAM,CAAC,GAAG,OAAO,YAAY,CAAA;IAC7B,MAAM,QAAQ,GACZ,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACrE,qDACK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACvC,KAAK,EAAE,YAAY,KAChB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACvC;AACH,CAAC,CAAA;AACD,iBAAiB;AAEjB,MAAM,gBAAgB,GAAG,CAAC,KAA0B,EAAE,IAAa,EAAE,EAAE;IACrE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAC5B,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACpB,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QACvC,MAAM,SAAS,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,MAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,CAAA,CAAA;QAC5D,MAAM,UAAU,GACd,SAAS,KAAK,UAAU;YACxB,SAAS,KAAK,SAAS;YACvB,SAAS,KAAK,aAAa;YAC3B,SAAS,KAAK,YAAY,CAAA;QAC5B,MAAM,SAAS,mCAAQ,GAAG,CAAC,UAAU,KAAE,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,GAAE,CAAA;QACjE,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACpE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;IACrD,CAAC,EACD,EAAE,UAAU,EAAE,EAAyB,EAAE,QAAQ,EAAE,EAAc,EAAE,CACpE,CAAA;IACD,qCACE,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,OAAO,CAAC,UAAU,EAC9B,oBAAoB,EAAE,KAAK,IACxB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACnC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACvE;AACH,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,MAAW,EAAE,EAAE,eAClC,OAAA,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,mCAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAA,EAAA,CAAA;AAEpD,MAAM,gBAAgB,GAAG,CAAC,MAAW,EAAE,EAAE,WAAC,OAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,mCAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAA,EAAA,CAAA;AAE5E,MAAM,kBAAkB,GAGpB;IACF,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,iBAC7B,IAAI,EAAE,QAAQ,IACX,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACtC;IACF,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;IACzD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,iBAC9B,IAAI,EAAE,SAAS,IACZ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACtC;IACF,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC;IAC3D,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,iBACzB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,IACzB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACtC;IACF,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;QAChC,uBACE,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,IACpB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACvC;IACH,CAAC;IACD,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAC1C,uBACE,IAAI,EAAE,QAAQ,EACd,oBAAoB,EAAE,UAAU,CAAC,SAAS,CAAC,IACxC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACvC;IACH,CAAC;IACD,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,WAAW,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAA;QACjC,MAAM,KAAK,GACT,OAAO,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAA;QACvE,OAAO,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACtC,CAAC;IACD,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;;QAC1B,MAAM,OAAO,GAAG,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,mCAAI,EAAE,CAAmB,CAAA;QACzD,uBACE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAC3B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACvC;IACH,CAAC;IACD,4BAA4B;IAC5B,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,iBAChC,IAAI,EAAE,MAAM,IACT,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACtC;IACF,sCAAsC;IACtC,mBAAmB;IACnB,iCAAiC;IACjC,sCAAsC;IACtC,wEAAwE;IACxE,aAAa;IACb,qBAAqB;IACrB,wCAAwC;IACxC,8CAA8C;IAC9C,MAAM;IACN,KAAK;CACN,CAAA;AAED,MAAM,UAAU,GAAG,CAAC,MAAW,EAAuB,EAAE;IACtD,mBAAmB;IACnB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAA;IACvB,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACzB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IACxB,MAAM,CAAC,GAAG,cAAc,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,MAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAA,CAAC,IAAI,SAAS,CAAA;IACvE,MAAM,IAAI,GACR,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IAC3E,MAAM,OAAO,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAA;IACrC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;IACjC,CAAC;IACD,4CAA4C;IAC5C,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,uBAAuB,GAAG,GAAwB,EAAE,CAAC,CAAC;IAC1D,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,IAAI;IAC1B,UAAU,EAAE;QACV,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,IAAI;YAC1B,UAAU,EAAE;gBACV,GAAG,EAAE;oBACH,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBACzC;iBACF;aACF;SACF;KACF;CACF,CAAC,CAAA;AAEF;;;GAGG;AACH;;;;;;;;EAQE;AAEF,MAAM,aAAa,GAAG,CAAI,GAAG,IAAgC,EAAE,EAAE,CAC/D,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAA;AAEjC,MAAM,kBAAkB,GAAG,CAAC,QAAa,EAAO,EAAE;IAChD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC5B,MAAM,WAAW,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,CAAA;IAC9B,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAA;IAChE,MAAM,QAAQ,GAAG,aAAa,CAC5B,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,EACf,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,EAClB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CACrB,CAAA;IACD,mBAAmB;IACnB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QACnC,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,QAAQ;YACR,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;YACtB,CAAC,CAAC,SAAS,CAAA;IACf,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACpD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC,IAAY,EAAE,EAAE;IACtE,OAAO;QACL,IAAI;QACJ,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,IAAI;YAC1B,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;iBACf;gBACD,eAAe,EAAE,uBAAuB,EAAE;aAC3C;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,IAAI;SAC3B;KACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,IAAY,EACZ,EAAkC,EACN,EAAE;;IAC9B,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAA;IACxB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAC1B,MAAM,aAAa,GAAG,aAAa,CACjC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,EACX,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,EACZ,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,EACf,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,CACZ,CAAA;IAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAE7C,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACzD,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAEjE,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,eAAe,EAAE,uBAAuB,EAAE;SAC3C;QACD,QAAQ,EAAE,CAAC,MAAM,CAAC;KACnB,CAAA;IAED,MAAM,MAAM,GACV,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,MAAK,QAAQ,KAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,CAAA;QACrD,CAAC,CAAC,UAAU,CAAC,UAAU;QACvB,CAAC,CAAC,UAAU,CAAA;IAEhB,MAAM,WAAW,GACf,MAAC,MAAc,CAAC,WAAW,mCAAI,MAAA,MAAM,CAAC,MAAM,CAAC,0CAAE,WAAW,CAAA;IAE5D,qCACE,IAAI,IACD,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACvC,KAAK,EAAE,WAAW,EAClB,MAAM,IACP;AACH,CAAC,CAAA"}
|
package/mcp.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Config } from '@node-in-layers/core';
|
|
2
|
-
import { ToolNameGenerator } from 'functional-models-orm-mcp';
|
|
3
2
|
import { McpServerMcp, McpServerConfig, McpContext } from './types.js';
|
|
4
3
|
declare const create: (context: McpContext<McpServerConfig & Config>) => McpServerMcp;
|
|
5
4
|
/**
|
|
@@ -8,171 +7,4 @@ declare const create: (context: McpContext<McpServerConfig & Config>) => McpServ
|
|
|
8
7
|
* @param opts Options for the tool name generator.
|
|
9
8
|
* @returns A function that can be used to add the models to the MCP server.
|
|
10
9
|
*/
|
|
11
|
-
|
|
12
|
-
systemName: string;
|
|
13
|
-
environment: string;
|
|
14
|
-
"@node-in-layers/core": Readonly<{
|
|
15
|
-
logging: {
|
|
16
|
-
logLevel: import("@node-in-layers/core/types.js").LogLevelNames;
|
|
17
|
-
logFormat: import("@node-in-layers/core/types.js").LogFormat | readonly import("@node-in-layers/core/types.js").LogFormat[];
|
|
18
|
-
maxLogSizeInCharacters?: number | undefined;
|
|
19
|
-
tcpLoggingOptions?: Readonly<{
|
|
20
|
-
url: string;
|
|
21
|
-
headers?: Record<string, string | object> | undefined;
|
|
22
|
-
}> | undefined;
|
|
23
|
-
customLogger?: Readonly<{
|
|
24
|
-
getLogger: (context: Readonly<{
|
|
25
|
-
config: Readonly<any>;
|
|
26
|
-
rootLogger: Readonly<any>;
|
|
27
|
-
constants: {
|
|
28
|
-
environment: string;
|
|
29
|
-
workingDirectory: string;
|
|
30
|
-
runtimeId: string;
|
|
31
|
-
};
|
|
32
|
-
}>, props?: {
|
|
33
|
-
ids?: readonly Readonly<Record<string, string>>[] | undefined;
|
|
34
|
-
data?: Record<string, any> | undefined;
|
|
35
|
-
} | undefined) => import("@node-in-layers/core/types.js").HighLevelLogger;
|
|
36
|
-
}> | undefined;
|
|
37
|
-
getFunctionWrapLogLevel?: ((layerName: string, functionName?: string | undefined) => import("@node-in-layers/core/types.js").LogLevelNames) | undefined;
|
|
38
|
-
ignoreLayerFunctions?: Record<string, boolean | Record<string, boolean | Record<string, boolean>>> | undefined;
|
|
39
|
-
};
|
|
40
|
-
layerOrder: readonly import("@node-in-layers/core/types.js").LayerDescription[];
|
|
41
|
-
apps: readonly Readonly<{
|
|
42
|
-
name: string;
|
|
43
|
-
services?: Readonly<{
|
|
44
|
-
create: (context: any) => import("@node-in-layers/core/types.js").MaybePromise<object>;
|
|
45
|
-
}> | undefined;
|
|
46
|
-
features?: Readonly<{
|
|
47
|
-
create: (context: any) => import("@node-in-layers/core/types.js").MaybePromise<object>;
|
|
48
|
-
}> | undefined;
|
|
49
|
-
globals?: Readonly<{
|
|
50
|
-
create: (context: Readonly<{
|
|
51
|
-
config: Readonly<any>;
|
|
52
|
-
rootLogger: Readonly<{
|
|
53
|
-
getLogger: (context: Readonly<{
|
|
54
|
-
config: Readonly<any>;
|
|
55
|
-
rootLogger: Readonly<any>;
|
|
56
|
-
constants: {
|
|
57
|
-
environment: string;
|
|
58
|
-
workingDirectory: string;
|
|
59
|
-
runtimeId: string;
|
|
60
|
-
};
|
|
61
|
-
}>, props?: {
|
|
62
|
-
ids?: readonly Readonly<Record<string, string>>[] | undefined;
|
|
63
|
-
data?: Record<string, any> | undefined;
|
|
64
|
-
} | undefined) => import("@node-in-layers/core/types.js").HighLevelLogger;
|
|
65
|
-
}>;
|
|
66
|
-
constants: {
|
|
67
|
-
environment: string;
|
|
68
|
-
workingDirectory: string;
|
|
69
|
-
runtimeId: string;
|
|
70
|
-
};
|
|
71
|
-
}>) => Promise<any>;
|
|
72
|
-
}> | undefined;
|
|
73
|
-
models?: Record<string, Readonly<{
|
|
74
|
-
create: <T extends Readonly<{
|
|
75
|
-
[s: string]: any;
|
|
76
|
-
}>, TModelExtensions extends object = object, TModelInstanceExtensions extends object = object>(modelProps: Readonly<{
|
|
77
|
-
Model: import("functional-models/types.js").ModelFactory<object, object>;
|
|
78
|
-
fetcher: import("functional-models/types.js").ModelInstanceFetcher<object, object>;
|
|
79
|
-
getModel: <T_1 extends Readonly<{
|
|
80
|
-
[s: string]: any;
|
|
81
|
-
}>>(namespace: string, modelName: string) => () => import("functional-models/types.js").ModelType<T_1, object, object>;
|
|
82
|
-
}>) => import("functional-models/types.js").ModelType<T, TModelExtensions, TModelInstanceExtensions>;
|
|
83
|
-
}>> | undefined;
|
|
84
|
-
}>[];
|
|
85
|
-
modelFactory?: string | undefined;
|
|
86
|
-
modelCruds?: boolean | undefined;
|
|
87
|
-
customModelFactory?: {
|
|
88
|
-
[x: string]: {
|
|
89
|
-
[x: string]: string | [string, string] | [string, string, any[]];
|
|
90
|
-
};
|
|
91
|
-
} | undefined;
|
|
92
|
-
}>;
|
|
93
|
-
}> = Readonly<{
|
|
94
|
-
systemName: string;
|
|
95
|
-
environment: string;
|
|
96
|
-
"@node-in-layers/core": Readonly<{
|
|
97
|
-
logging: {
|
|
98
|
-
logLevel: import("@node-in-layers/core/types.js").LogLevelNames;
|
|
99
|
-
logFormat: import("@node-in-layers/core/types.js").LogFormat | readonly import("@node-in-layers/core/types.js").LogFormat[];
|
|
100
|
-
maxLogSizeInCharacters?: number | undefined;
|
|
101
|
-
tcpLoggingOptions?: Readonly<{
|
|
102
|
-
url: string;
|
|
103
|
-
headers?: Record<string, string | object> | undefined;
|
|
104
|
-
}> | undefined;
|
|
105
|
-
customLogger?: Readonly<{
|
|
106
|
-
getLogger: (context: Readonly<{
|
|
107
|
-
config: Readonly<any>;
|
|
108
|
-
rootLogger: Readonly<any>;
|
|
109
|
-
constants: {
|
|
110
|
-
environment: string;
|
|
111
|
-
workingDirectory: string;
|
|
112
|
-
runtimeId: string;
|
|
113
|
-
};
|
|
114
|
-
}>, props?: {
|
|
115
|
-
ids?: readonly Readonly<Record<string, string>>[] | undefined;
|
|
116
|
-
data?: Record<string, any> | undefined;
|
|
117
|
-
} | undefined) => import("@node-in-layers/core/types.js").HighLevelLogger;
|
|
118
|
-
}> | undefined;
|
|
119
|
-
getFunctionWrapLogLevel?: ((layerName: string, functionName?: string | undefined) => import("@node-in-layers/core/types.js").LogLevelNames) | undefined;
|
|
120
|
-
ignoreLayerFunctions?: Record<string, boolean | Record<string, boolean | Record<string, boolean>>> | undefined;
|
|
121
|
-
};
|
|
122
|
-
layerOrder: readonly import("@node-in-layers/core/types.js").LayerDescription[];
|
|
123
|
-
apps: readonly Readonly<{
|
|
124
|
-
name: string;
|
|
125
|
-
services?: Readonly<{
|
|
126
|
-
create: (context: any) => import("@node-in-layers/core/types.js").MaybePromise<object>;
|
|
127
|
-
}> | undefined;
|
|
128
|
-
features?: Readonly<{
|
|
129
|
-
create: (context: any) => import("@node-in-layers/core/types.js").MaybePromise<object>;
|
|
130
|
-
}> | undefined;
|
|
131
|
-
globals?: Readonly<{
|
|
132
|
-
create: (context: Readonly<{
|
|
133
|
-
config: Readonly<any>;
|
|
134
|
-
rootLogger: Readonly<{
|
|
135
|
-
getLogger: (context: Readonly<{
|
|
136
|
-
config: Readonly<any>;
|
|
137
|
-
rootLogger: Readonly<any>;
|
|
138
|
-
constants: {
|
|
139
|
-
environment: string;
|
|
140
|
-
workingDirectory: string;
|
|
141
|
-
runtimeId: string;
|
|
142
|
-
};
|
|
143
|
-
}>, props?: {
|
|
144
|
-
ids?: readonly Readonly<Record<string, string>>[] | undefined;
|
|
145
|
-
data?: Record<string, any> | undefined;
|
|
146
|
-
} | undefined) => import("@node-in-layers/core/types.js").HighLevelLogger;
|
|
147
|
-
}>;
|
|
148
|
-
constants: {
|
|
149
|
-
environment: string;
|
|
150
|
-
workingDirectory: string;
|
|
151
|
-
runtimeId: string;
|
|
152
|
-
};
|
|
153
|
-
}>) => Promise<any>;
|
|
154
|
-
}> | undefined;
|
|
155
|
-
models?: Record<string, Readonly<{
|
|
156
|
-
create: <T extends Readonly<{
|
|
157
|
-
[s: string]: any;
|
|
158
|
-
}>, TModelExtensions extends object = object, TModelInstanceExtensions extends object = object>(modelProps: Readonly<{
|
|
159
|
-
Model: import("functional-models/types.js").ModelFactory<object, object>;
|
|
160
|
-
fetcher: import("functional-models/types.js").ModelInstanceFetcher<object, object>;
|
|
161
|
-
getModel: <T_1 extends Readonly<{
|
|
162
|
-
[s: string]: any;
|
|
163
|
-
}>>(namespace: string, modelName: string) => () => import("functional-models/types.js").ModelType<T_1, object, object>;
|
|
164
|
-
}>) => import("functional-models/types.js").ModelType<T, TModelExtensions, TModelInstanceExtensions>;
|
|
165
|
-
}>> | undefined;
|
|
166
|
-
}>[];
|
|
167
|
-
modelFactory?: string | undefined;
|
|
168
|
-
modelCruds?: boolean | undefined;
|
|
169
|
-
customModelFactory?: {
|
|
170
|
-
[x: string]: {
|
|
171
|
-
[x: string]: string | [string, string] | [string, string, any[]];
|
|
172
|
-
};
|
|
173
|
-
} | undefined;
|
|
174
|
-
}>;
|
|
175
|
-
}>>(namespace: string, context: McpContext<TConfig>, opts?: {
|
|
176
|
-
nameGenerator: ToolNameGenerator;
|
|
177
|
-
}) => {};
|
|
178
|
-
export { create, mcpModels };
|
|
10
|
+
export { create };
|
package/mcp.js
CHANGED
|
@@ -7,18 +7,48 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import
|
|
11
|
-
import { createErrorObject, } from '@node-in-layers/core';
|
|
10
|
+
import { randomUUID } from 'crypto';
|
|
11
|
+
import { createErrorObject, isErrorObject, } from '@node-in-layers/core';
|
|
12
|
+
import { ValidationError } from 'functional-models';
|
|
13
|
+
import { createMcpToolBulkDelete, createMcpToolBulkInsert, createMcpToolDelete, createMcpToolRetrieve, createMcpToolSearch, createMcpToolSave, defaultModelTypeParser, } from 'functional-models-orm-mcp';
|
|
12
14
|
import { createSimpleServer } from '@l4t/mcp-ai/simple-server/index.js';
|
|
13
|
-
import { generateMcpToolForModelOperation, } from 'functional-models-orm-mcp';
|
|
14
|
-
import { v4 as uuidv4 } from 'uuid';
|
|
15
15
|
import { asyncMap } from 'modern-async';
|
|
16
16
|
import { McpNamespace, } from './types.js';
|
|
17
|
-
import {
|
|
17
|
+
import { describeFeatureMcpTool, listFeaturesMcpTool, describeModelMcpTool, listModelsMcpTool, listDomainsMcpTool, isNilAnnotatedFunction, nilAnnotatedFunctionToOpenApi, createOpenApiForNonNilAnnotatedFunction, } from './libs.js';
|
|
18
18
|
const DEFAULT_RESPONSE_REQUEST_LOG_LEVEL = 'info';
|
|
19
|
+
const createMcpResponse = (result, opts) => {
|
|
20
|
+
const isError = (opts === null || opts === void 0 ? void 0 : opts.isError) || isErrorObject(result);
|
|
21
|
+
return Object.assign(Object.assign({}, (isError ? { isError: true } : {})), { content: [
|
|
22
|
+
{
|
|
23
|
+
type: 'text',
|
|
24
|
+
text: JSON.stringify(result !== undefined ? result : '""'),
|
|
25
|
+
},
|
|
26
|
+
] });
|
|
27
|
+
};
|
|
28
|
+
const createDomainNotFoundError = () => createErrorObject('DOMAIN_NOT_FOUND', 'Domain not found');
|
|
29
|
+
const createModelNotFoundError = () => createErrorObject('MODEL_NOT_FOUND', 'Model not found');
|
|
30
|
+
const createFeatureNotFoundError = () => createErrorObject('FEATURE_NOT_FOUND', 'Feature not found');
|
|
31
|
+
const createModelsNotFoundError = () => createErrorObject('MODELS_NOT_FOUND', 'Models not found');
|
|
32
|
+
const isDomainHidden = (hiddenPaths) => (domain) => {
|
|
33
|
+
return hiddenPaths.has(domain);
|
|
34
|
+
};
|
|
35
|
+
const areAllModelsHidden = (hiddenPaths) => (domain) => {
|
|
36
|
+
return hiddenPaths.has(`${domain}.cruds`);
|
|
37
|
+
};
|
|
38
|
+
const isFeatureHidden = (hiddenPaths) => (domain, featureName) => {
|
|
39
|
+
return hiddenPaths.has(`${domain}.${featureName}`);
|
|
40
|
+
};
|
|
41
|
+
const isModelHidden = (hiddenPaths) => (domain, modelName) => {
|
|
42
|
+
return hiddenPaths.has(`${domain}.cruds.${modelName}`);
|
|
43
|
+
};
|
|
19
44
|
const create = (context) => {
|
|
45
|
+
const hiddenPaths = new Set([
|
|
46
|
+
'@node-in-layers/core',
|
|
47
|
+
'@node-in-layers/data',
|
|
48
|
+
'@node-in-layers/mcp-server',
|
|
49
|
+
...(context.config[McpNamespace].hiddenPaths || []),
|
|
50
|
+
]);
|
|
20
51
|
const tools = [];
|
|
21
|
-
const models = [];
|
|
22
52
|
const sets = [];
|
|
23
53
|
const preRouteMiddleware = [];
|
|
24
54
|
const additionalRoutes = [];
|
|
@@ -26,44 +56,14 @@ const create = (context) => {
|
|
|
26
56
|
// eslint-disable-next-line functional/immutable-data
|
|
27
57
|
tools.push(tool);
|
|
28
58
|
};
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const _createToolsForModelCruds = (cruds, opts) => {
|
|
34
|
-
const model = cruds.getModel();
|
|
35
|
-
const tools = [
|
|
36
|
-
Object.assign(Object.assign({}, generateMcpToolForModelOperation(model, 'save', opts)), { execute: _execute((input) => __awaiter(void 0, void 0, void 0, function* () {
|
|
37
|
-
return cruds.create(input).then(x => x.toObj());
|
|
38
|
-
})) }),
|
|
39
|
-
Object.assign(Object.assign({}, generateMcpToolForModelOperation(model, 'retrieve', opts)), { execute: _execute(({ id }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
40
|
-
return cruds.retrieve(id).then(x => (x ? x.toObj() : null));
|
|
41
|
-
})) }),
|
|
42
|
-
Object.assign(Object.assign({}, generateMcpToolForModelOperation(model, 'delete', opts)), { execute: _execute(({ id }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
43
|
-
yield cruds.delete(id);
|
|
44
|
-
})) }),
|
|
45
|
-
Object.assign(Object.assign({}, generateMcpToolForModelOperation(model, 'search', opts)), { execute: _execute((input) => __awaiter(void 0, void 0, void 0, function* () {
|
|
46
|
-
return cruds.search(input).then((result) => __awaiter(void 0, void 0, void 0, function* () {
|
|
47
|
-
const instances = yield asyncMap(result.instances, y => y.toObj());
|
|
48
|
-
return {
|
|
49
|
-
instances,
|
|
50
|
-
page: result.page,
|
|
51
|
-
};
|
|
52
|
-
}));
|
|
53
|
-
})) }),
|
|
54
|
-
Object.assign(Object.assign({}, generateMcpToolForModelOperation(model, 'bulkInsert', opts)), { execute: _execute((input) => __awaiter(void 0, void 0, void 0, function* () {
|
|
55
|
-
yield cruds.bulkInsert(input.items);
|
|
56
|
-
})) }),
|
|
57
|
-
Object.assign(Object.assign({}, generateMcpToolForModelOperation(model, 'bulkDelete', opts)), { execute: _execute((input) => __awaiter(void 0, void 0, void 0, function* () {
|
|
58
|
-
yield cruds.bulkDelete(input.ids);
|
|
59
|
-
})) }),
|
|
60
|
-
];
|
|
61
|
-
return tools;
|
|
62
|
-
};
|
|
59
|
+
const isDomainHiddenFunc = isDomainHidden(hiddenPaths);
|
|
60
|
+
const areAllModelsHiddenFunc = areAllModelsHidden(hiddenPaths);
|
|
61
|
+
const isFeatureHiddenFunc = isFeatureHidden(hiddenPaths);
|
|
62
|
+
const isModelHiddenFunc = isModelHidden(hiddenPaths);
|
|
63
63
|
const _wrapToolsWithLogger = (tool) => {
|
|
64
64
|
const execute = (input) => __awaiter(void 0, void 0, void 0, function* () {
|
|
65
65
|
var _a, _b, _c, _d, _e, _f;
|
|
66
|
-
const requestId =
|
|
66
|
+
const requestId = randomUUID();
|
|
67
67
|
const logger = context.log
|
|
68
68
|
.getIdLogger('logRequest', 'requestId', requestId)
|
|
69
69
|
.applyData({
|
|
@@ -86,8 +86,193 @@ const create = (context) => {
|
|
|
86
86
|
});
|
|
87
87
|
return Object.assign(Object.assign({}, tool), { execute });
|
|
88
88
|
};
|
|
89
|
+
const _listDomainsTool = () => {
|
|
90
|
+
return Object.assign(Object.assign({}, listDomainsMcpTool()), { execute: _execute(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
91
|
+
const domains = Object.entries(context.features).reduce((acc, [domainName]) => {
|
|
92
|
+
var _a;
|
|
93
|
+
if (isDomainHiddenFunc(domainName)) {
|
|
94
|
+
return acc;
|
|
95
|
+
}
|
|
96
|
+
const description = (_a = context.config['@node-in-layers/core'].apps.find(app => app.name === domainName)) === null || _a === void 0 ? void 0 : _a.description;
|
|
97
|
+
return acc.concat(Object.assign({ name: domainName }, (description ? { description } : {})));
|
|
98
|
+
}, []);
|
|
99
|
+
return createMcpResponse(domains);
|
|
100
|
+
})) });
|
|
101
|
+
};
|
|
102
|
+
const _describeFeatureTool = () => {
|
|
103
|
+
return Object.assign(Object.assign({}, describeFeatureMcpTool()), { execute: _execute((input) => __awaiter(void 0, void 0, void 0, function* () {
|
|
104
|
+
var _a;
|
|
105
|
+
const domain = input.domain;
|
|
106
|
+
const featureName = input.featureName;
|
|
107
|
+
const feature = (_a = context[domain]) === null || _a === void 0 ? void 0 : _a[featureName];
|
|
108
|
+
if (!feature ||
|
|
109
|
+
isDomainHiddenFunc(domain) ||
|
|
110
|
+
isFeatureHiddenFunc(domain, featureName)) {
|
|
111
|
+
return createFeatureNotFoundError();
|
|
112
|
+
}
|
|
113
|
+
const openapi = isNilAnnotatedFunction(feature)
|
|
114
|
+
? nilAnnotatedFunctionToOpenApi(feature.name, feature)
|
|
115
|
+
: createOpenApiForNonNilAnnotatedFunction(feature.name);
|
|
116
|
+
return createMcpResponse(openapi);
|
|
117
|
+
})) });
|
|
118
|
+
};
|
|
119
|
+
const _listFeaturesTool = () => {
|
|
120
|
+
return Object.assign(Object.assign({}, listFeaturesMcpTool()), { execute: _execute((input) => __awaiter(void 0, void 0, void 0, function* () {
|
|
121
|
+
const domain = input.domain;
|
|
122
|
+
if (isDomainHiddenFunc(domain)) {
|
|
123
|
+
return createDomainNotFoundError();
|
|
124
|
+
}
|
|
125
|
+
const features = domain.features;
|
|
126
|
+
const result = Object.entries(features).reduce((acc, [featureName, feature]) => {
|
|
127
|
+
var _a;
|
|
128
|
+
if (typeof feature !== 'function') {
|
|
129
|
+
return acc;
|
|
130
|
+
}
|
|
131
|
+
if (isFeatureHiddenFunc(domain, featureName)) {
|
|
132
|
+
return acc;
|
|
133
|
+
}
|
|
134
|
+
const obj = Object.assign({ name: featureName }, (((_a = feature.schema) === null || _a === void 0 ? void 0 : _a.description)
|
|
135
|
+
? // @ts-ignore
|
|
136
|
+
{ description: feature.schema.description }
|
|
137
|
+
: {}));
|
|
138
|
+
return acc.concat(obj);
|
|
139
|
+
}, []);
|
|
140
|
+
return createMcpResponse(result);
|
|
141
|
+
})) });
|
|
142
|
+
};
|
|
143
|
+
const _listModelsTool = () => {
|
|
144
|
+
return Object.assign(Object.assign({}, listModelsMcpTool()), { execute: _execute((input) => __awaiter(void 0, void 0, void 0, function* () {
|
|
145
|
+
const domain = input.domain;
|
|
146
|
+
if (isDomainHiddenFunc(domain) || areAllModelsHiddenFunc(domain)) {
|
|
147
|
+
return createDomainNotFoundError();
|
|
148
|
+
}
|
|
149
|
+
const models = context.features[domain].cruds;
|
|
150
|
+
if (!models) {
|
|
151
|
+
return createMcpResponse(createModelsNotFoundError());
|
|
152
|
+
}
|
|
153
|
+
const result = Object.entries(models).reduce((acc, [modelName, model]) => {
|
|
154
|
+
if (isModelHiddenFunc(domain, modelName)) {
|
|
155
|
+
return acc;
|
|
156
|
+
}
|
|
157
|
+
const description = model
|
|
158
|
+
.getModel()
|
|
159
|
+
.getModelDefinition().description;
|
|
160
|
+
return acc.concat(Object.assign({ modelType: model.getModel().getName() }, (description ? { description } : {})));
|
|
161
|
+
}, []);
|
|
162
|
+
return createMcpResponse(result);
|
|
163
|
+
})) });
|
|
164
|
+
};
|
|
165
|
+
const _describeModelTool = () => {
|
|
166
|
+
return Object.assign(Object.assign({}, describeModelMcpTool()), { execute: _execute((input) => __awaiter(void 0, void 0, void 0, function* () {
|
|
167
|
+
const domain = input.domain;
|
|
168
|
+
if (isDomainHiddenFunc(domain)) {
|
|
169
|
+
return createDomainNotFoundError();
|
|
170
|
+
}
|
|
171
|
+
const { modelName } = defaultModelTypeParser(input.modelType);
|
|
172
|
+
const model = context.features[domain].cruds[modelName];
|
|
173
|
+
if (!model ||
|
|
174
|
+
isModelHiddenFunc(domain, modelName) ||
|
|
175
|
+
areAllModelsHiddenFunc(domain)) {
|
|
176
|
+
return createModelNotFoundError();
|
|
177
|
+
}
|
|
178
|
+
const schema = model.getModel().getModelDefinition().schema;
|
|
179
|
+
return createMcpResponse(schema);
|
|
180
|
+
})) });
|
|
181
|
+
};
|
|
182
|
+
const _createMcpModelFunc = (modelFunc) => __awaiter(void 0, void 0, void 0, function* () {
|
|
183
|
+
return _execute((input) => __awaiter(void 0, void 0, void 0, function* () {
|
|
184
|
+
const modelType = input.modelType;
|
|
185
|
+
const { domain, modelName } = defaultModelTypeParser(modelType);
|
|
186
|
+
if (isDomainHiddenFunc(domain)) {
|
|
187
|
+
return createDomainNotFoundError();
|
|
188
|
+
}
|
|
189
|
+
const model = context.features[domain].cruds[modelName];
|
|
190
|
+
if (!model ||
|
|
191
|
+
isModelHiddenFunc(domain, modelName) ||
|
|
192
|
+
areAllModelsHiddenFunc(domain)) {
|
|
193
|
+
return createModelNotFoundError();
|
|
194
|
+
}
|
|
195
|
+
const result = yield modelFunc(input, model.getModel()).catch(e => {
|
|
196
|
+
if (e instanceof ValidationError) {
|
|
197
|
+
return createErrorObject('VALIDATION_ERROR', 'Validation Error', {
|
|
198
|
+
details: {
|
|
199
|
+
keysToErrors: e.keysToErrors,
|
|
200
|
+
modelName: e.modelName,
|
|
201
|
+
},
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
return createErrorObject('UNCAUGHT_EXCEPTION', 'An uncaught exception occurred while executing the feature.', e);
|
|
205
|
+
});
|
|
206
|
+
if (isErrorObject(result)) {
|
|
207
|
+
return createMcpResponse(result, { isError: true });
|
|
208
|
+
}
|
|
209
|
+
return createMcpResponse(result);
|
|
210
|
+
}));
|
|
211
|
+
});
|
|
212
|
+
const _createMcpToolSave = () => {
|
|
213
|
+
return Object.assign(Object.assign({}, createMcpToolSave()), { execute: _createMcpModelFunc((input, model) => __awaiter(void 0, void 0, void 0, function* () {
|
|
214
|
+
const data = input.instance;
|
|
215
|
+
const result = yield model.save(data).catch(e => {
|
|
216
|
+
if (e instanceof ValidationError) {
|
|
217
|
+
return createErrorObject('VALIDATION_ERROR', 'Validation Error', e);
|
|
218
|
+
}
|
|
219
|
+
return createErrorObject('UNCAUGHT_EXCEPTION', 'An uncaught exception occurred while executing the feature.', e);
|
|
220
|
+
});
|
|
221
|
+
if (isErrorObject(result)) {
|
|
222
|
+
return result;
|
|
223
|
+
}
|
|
224
|
+
return result.toObj();
|
|
225
|
+
})) });
|
|
226
|
+
};
|
|
227
|
+
const _createMcpToolRetrieve = () => {
|
|
228
|
+
return Object.assign(Object.assign({}, createMcpToolRetrieve()), { execute: _createMcpModelFunc((input, model) => __awaiter(void 0, void 0, void 0, function* () {
|
|
229
|
+
const result = yield model.retrieve(input.id);
|
|
230
|
+
if (!result) {
|
|
231
|
+
return createModelNotFoundError();
|
|
232
|
+
}
|
|
233
|
+
return result.toObj();
|
|
234
|
+
})) });
|
|
235
|
+
};
|
|
236
|
+
const _createMcpToolDelete = () => {
|
|
237
|
+
return Object.assign(Object.assign({}, createMcpToolDelete()), { execute: _createMcpModelFunc((input, model) => __awaiter(void 0, void 0, void 0, function* () {
|
|
238
|
+
yield model.delete(input.id);
|
|
239
|
+
return null;
|
|
240
|
+
})) });
|
|
241
|
+
};
|
|
242
|
+
const _createMcpToolSearch = () => {
|
|
243
|
+
return Object.assign(Object.assign({}, createMcpToolSearch()), { execute: _createMcpModelFunc((input, model) => __awaiter(void 0, void 0, void 0, function* () {
|
|
244
|
+
const result = yield model.search(input.query);
|
|
245
|
+
const instances = yield asyncMap(result.instances, i => i.toObj());
|
|
246
|
+
return { instances, page: result.page };
|
|
247
|
+
})) });
|
|
248
|
+
};
|
|
249
|
+
const _createMcpToolBulkInsert = () => {
|
|
250
|
+
return Object.assign(Object.assign({}, createMcpToolBulkInsert()), { execute: _createMcpModelFunc((input, model) => __awaiter(void 0, void 0, void 0, function* () {
|
|
251
|
+
yield model.bulkInsert(input.items);
|
|
252
|
+
return null;
|
|
253
|
+
})) });
|
|
254
|
+
};
|
|
255
|
+
const _createMcpToolBulkDelete = () => {
|
|
256
|
+
return Object.assign(Object.assign({}, createMcpToolBulkDelete()), { execute: _createMcpModelFunc((input, model) => __awaiter(void 0, void 0, void 0, function* () {
|
|
257
|
+
yield model.bulkDelete(input.ids);
|
|
258
|
+
return null;
|
|
259
|
+
})) });
|
|
260
|
+
};
|
|
89
261
|
const _getServer = (options) => {
|
|
90
|
-
const allTools = [
|
|
262
|
+
const allTools = [
|
|
263
|
+
_listDomainsTool(),
|
|
264
|
+
_listFeaturesTool(),
|
|
265
|
+
_describeFeatureTool(),
|
|
266
|
+
_listModelsTool(),
|
|
267
|
+
_describeModelTool(),
|
|
268
|
+
_createMcpToolSave(),
|
|
269
|
+
_createMcpToolRetrieve(),
|
|
270
|
+
_createMcpToolDelete(),
|
|
271
|
+
_createMcpToolSearch(),
|
|
272
|
+
_createMcpToolBulkInsert(),
|
|
273
|
+
_createMcpToolBulkDelete(),
|
|
274
|
+
...tools,
|
|
275
|
+
].map(_wrapToolsWithLogger);
|
|
91
276
|
const server = createSimpleServer({
|
|
92
277
|
name: context.config[McpNamespace].name || '@node-in-layers/mcp-server',
|
|
93
278
|
version: context.config[McpNamespace].version || '1.0.0',
|
|
@@ -129,80 +314,28 @@ const create = (context) => {
|
|
|
129
314
|
};
|
|
130
315
|
const _formatResponse = (result) => {
|
|
131
316
|
if (result !== null && result !== undefined) {
|
|
132
|
-
if (
|
|
133
|
-
return {
|
|
134
|
-
content: [
|
|
135
|
-
{
|
|
136
|
-
type: 'text',
|
|
137
|
-
text: JSON.stringify(result),
|
|
138
|
-
},
|
|
139
|
-
],
|
|
140
|
-
};
|
|
317
|
+
if (isErrorObject(result)) {
|
|
318
|
+
return createMcpResponse(result, { isError: true });
|
|
141
319
|
}
|
|
142
320
|
}
|
|
143
|
-
return
|
|
144
|
-
content: [
|
|
145
|
-
{
|
|
146
|
-
type: 'text',
|
|
147
|
-
text: result ? JSON.stringify(result) : '\"\"',
|
|
148
|
-
},
|
|
149
|
-
],
|
|
150
|
-
};
|
|
321
|
+
return createMcpResponse(result);
|
|
151
322
|
};
|
|
152
323
|
const _execute = (func) => (...inputs) => {
|
|
153
324
|
return func(...inputs)
|
|
154
325
|
.then(_formatResponse)
|
|
155
326
|
.catch(error => {
|
|
156
|
-
|
|
157
|
-
return {
|
|
158
|
-
isError: true,
|
|
159
|
-
content: [
|
|
160
|
-
{
|
|
161
|
-
type: 'text',
|
|
162
|
-
text: JSON.stringify({
|
|
163
|
-
error: {
|
|
164
|
-
code: 'VALIDATION_ERROR',
|
|
165
|
-
message: 'Validation Error',
|
|
166
|
-
details: {
|
|
167
|
-
keysToErrors: error.keysToErrors,
|
|
168
|
-
modelName: error.modelName,
|
|
169
|
-
},
|
|
170
|
-
},
|
|
171
|
-
}),
|
|
172
|
-
},
|
|
173
|
-
],
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
const errorObj = createErrorObject('UNCAUGHT_EXCEPTION', 'An uncaught exception occurred while executing the feature.', error);
|
|
177
|
-
return {
|
|
178
|
-
isError: true,
|
|
179
|
-
content: [
|
|
180
|
-
{
|
|
181
|
-
type: 'text',
|
|
182
|
-
text: JSON.stringify(errorObj),
|
|
183
|
-
},
|
|
184
|
-
],
|
|
185
|
-
};
|
|
327
|
+
return _formatResponse(createErrorObject('UNCAUGHT_EXCEPTION', 'An uncaught exception occurred while executing the feature.', error));
|
|
186
328
|
});
|
|
187
329
|
};
|
|
188
|
-
const addFeature = (featureFunc, tool) => {
|
|
189
|
-
// eslint-disable-next-line functional/immutable-data
|
|
190
|
-
tools.push(Object.assign(Object.assign({}, tool), { execute: _execute((input, crossLayerProps) => {
|
|
191
|
-
return featureFunc(
|
|
192
|
-
// @ts-ignore
|
|
193
|
-
...(Array.isArray(input) ? input : [input]).concat(crossLayerProps));
|
|
194
|
-
}) }));
|
|
195
|
-
};
|
|
196
330
|
const set = (key, value) => {
|
|
331
|
+
// eslint-disable-next-line functional/immutable-data
|
|
197
332
|
sets.push([key, value]);
|
|
198
333
|
};
|
|
199
334
|
return {
|
|
200
335
|
start,
|
|
201
336
|
getApp,
|
|
202
337
|
addTool,
|
|
203
|
-
addModelCruds,
|
|
204
338
|
addPreRouteMiddleware,
|
|
205
|
-
addFeature,
|
|
206
339
|
addAdditionalRoute,
|
|
207
340
|
set,
|
|
208
341
|
};
|
|
@@ -213,23 +346,36 @@ const create = (context) => {
|
|
|
213
346
|
* @param opts Options for the tool name generator.
|
|
214
347
|
* @returns A function that can be used to add the models to the MCP server.
|
|
215
348
|
*/
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
349
|
+
/*
|
|
350
|
+
const mcpModels = <TConfig extends Config = Config>(
|
|
351
|
+
namespace: string,
|
|
352
|
+
context: McpContext<TConfig>
|
|
353
|
+
) => {
|
|
354
|
+
const mcpFunctions = context.mcp[McpNamespace]
|
|
355
|
+
const namedFeatures = get(context, `features.${namespace}`)
|
|
356
|
+
if (!namedFeatures) {
|
|
357
|
+
throw new Error(
|
|
358
|
+
`features.${namespace} does not exist on context needed for mcp.`
|
|
359
|
+
)
|
|
360
|
+
}
|
|
361
|
+
// Look for CRUDS functions.
|
|
362
|
+
Object.entries(namedFeatures).forEach(
|
|
363
|
+
([key, value]: [key: string, value: any]) => {
|
|
364
|
+
if (typeof value === 'object') {
|
|
365
|
+
if (key === 'cruds') {
|
|
366
|
+
Object.entries(value).forEach(([, modelCrudFuncs]) => {
|
|
367
|
+
mcpFunctions.addModelCruds(
|
|
368
|
+
modelCrudFuncs as ModelCrudsFunctions<any>
|
|
369
|
+
)
|
|
370
|
+
})
|
|
230
371
|
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
}
|
|
234
|
-
|
|
372
|
+
}
|
|
373
|
+
},
|
|
374
|
+
{}
|
|
375
|
+
)
|
|
376
|
+
|
|
377
|
+
return {}
|
|
378
|
+
}
|
|
379
|
+
*/
|
|
380
|
+
export { create };
|
|
235
381
|
//# sourceMappingURL=mcp.js.map
|
package/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@node-in-layers/mcp-server",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "2.0.1",
|
|
5
5
|
"description": "An MCP Server Node In Layers Package, generated by the Node In Layers Toolkit.",
|
|
6
6
|
"main": "index.js",
|
|
7
7
|
"scripts": {
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
"eslint": "eslint .",
|
|
13
13
|
"feature-tests": "./node_modules/.bin/cucumber-js -p default",
|
|
14
14
|
"prettier": "prettier --write .",
|
|
15
|
-
"test": "
|
|
16
|
-
"test:coverage": "
|
|
15
|
+
"test": "mocha -r tsx ./test/src/*.test.ts ./test/mocha/src/**/*.test.ts ./test/mocha/src/**/**/*.test.ts",
|
|
16
|
+
"test:coverage": "c8 --all --reporter cobertura --reporter text --reporter lcov --reporter html npm run test"
|
|
17
17
|
},
|
|
18
18
|
"config": {
|
|
19
19
|
"commitizen": {
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"author": "",
|
|
24
24
|
"license": "ISC",
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@cucumber/cucumber": "11.0
|
|
26
|
+
"@cucumber/cucumber": "^11.3.0",
|
|
27
27
|
"@eslint/compat": "^1.2.0",
|
|
28
28
|
"@eslint/eslintrc": "^3.1.0",
|
|
29
29
|
"@eslint/js": "^9.12.0",
|
|
@@ -38,9 +38,10 @@
|
|
|
38
38
|
"@typescript-eslint/eslint-plugin": "8.13.0",
|
|
39
39
|
"@typescript-eslint/parser": "8.13.0",
|
|
40
40
|
"argparse": "^2.0.1",
|
|
41
|
+
"c8": "^10.1.3",
|
|
41
42
|
"chai": "^4.2.0",
|
|
42
43
|
"chai-as-promised": "^7.1.1",
|
|
43
|
-
"cz-conventional-changelog": "^3.
|
|
44
|
+
"cz-conventional-changelog": "^3.0.1",
|
|
44
45
|
"eslint": "9.14.0",
|
|
45
46
|
"eslint-config-prettier": "^9.1.0",
|
|
46
47
|
"eslint-import-resolver-typescript": "^3.6.3",
|
|
@@ -58,17 +59,20 @@
|
|
|
58
59
|
"sinon-chai": "^3.5.0",
|
|
59
60
|
"source-map-support": "^0.5.21",
|
|
60
61
|
"ts-node": "^10.4.0",
|
|
62
|
+
"tsx": "^4.20.6",
|
|
61
63
|
"typescript": "5.3.3"
|
|
62
64
|
},
|
|
63
65
|
"dependencies": {
|
|
64
66
|
"@l4t/mcp-ai": "^1.5.1",
|
|
65
67
|
"@modelcontextprotocol/sdk": "^1.13.2",
|
|
66
|
-
"@node-in-layers/core": "^1.
|
|
68
|
+
"@node-in-layers/core": "^1.9.1",
|
|
67
69
|
"express": "^5.1.0",
|
|
68
|
-
"functional-models": "^3.
|
|
69
|
-
"functional-models-
|
|
70
|
+
"functional-models": "^3.5.1",
|
|
71
|
+
"functional-models-openapi": "^3.0.2",
|
|
72
|
+
"functional-models-orm-mcp": "^3.5.2",
|
|
70
73
|
"lodash": "^4.17.21",
|
|
71
74
|
"modern-async": "^2.0.4",
|
|
72
|
-
"uuid": "^11.1.0"
|
|
75
|
+
"uuid": "^11.1.0",
|
|
76
|
+
"zod": "^4.1.11"
|
|
73
77
|
}
|
|
74
78
|
}
|
package/types.d.ts
CHANGED
|
@@ -1,23 +1,65 @@
|
|
|
1
|
-
import { ExpressRoute, ExpressMiddleware
|
|
1
|
+
import { ExpressRoute, ExpressMiddleware } from '@l4t/mcp-ai/common/types.js';
|
|
2
2
|
import { ServerTool } from '@l4t/mcp-ai/simple-server/types.js';
|
|
3
3
|
import { ServerHttpConfig, ServerCliConfig, ServerSseConfig, ServerStatelessHttpConfig } from '@l4t/mcp-ai';
|
|
4
|
-
import { Config,
|
|
4
|
+
import { Config, LogLevelNames, LayerContext } from '@node-in-layers/core';
|
|
5
5
|
import { Express } from 'express';
|
|
6
|
-
import { ToolNameGenerator } from 'functional-models-orm-mcp';
|
|
7
6
|
import { JsonAble } from 'functional-models';
|
|
8
7
|
type Connection = ServerHttpConfig | ServerCliConfig | ServerSseConfig | ServerStatelessHttpConfig;
|
|
8
|
+
/**
|
|
9
|
+
* Configuration for the MCP server.
|
|
10
|
+
* @interface
|
|
11
|
+
*/
|
|
9
12
|
export type McpServerConfig = Readonly<{
|
|
10
13
|
[McpNamespace]: {
|
|
14
|
+
/**
|
|
15
|
+
* The name of the MCP server.
|
|
16
|
+
*/
|
|
11
17
|
name?: string;
|
|
18
|
+
/**
|
|
19
|
+
* The version of the MCP server.
|
|
20
|
+
*/
|
|
12
21
|
version?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Whether the MCP server is stateless.
|
|
24
|
+
*/
|
|
13
25
|
stateless?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* The server configuration.
|
|
28
|
+
*/
|
|
14
29
|
server: {
|
|
30
|
+
/**
|
|
31
|
+
* Connection configuration.
|
|
32
|
+
*/
|
|
15
33
|
connection: Connection;
|
|
16
34
|
};
|
|
35
|
+
/**
|
|
36
|
+
* Dot paths, to hide from the server.
|
|
37
|
+
* Example:
|
|
38
|
+
* myDomain - hides an entire domain.
|
|
39
|
+
* myDomain.myFeature - hides a feature.
|
|
40
|
+
* myDomain.cruds - hides ALL models of the domain
|
|
41
|
+
* myDomain.cruds.MyModel - hides a specific model
|
|
42
|
+
*/
|
|
43
|
+
hiddenPaths?: string[];
|
|
44
|
+
/**
|
|
45
|
+
* Logging configuration.
|
|
46
|
+
*/
|
|
17
47
|
logging?: {
|
|
48
|
+
/**
|
|
49
|
+
* The log level for requests.
|
|
50
|
+
*/
|
|
18
51
|
requestLogLevel?: LogLevelNames;
|
|
52
|
+
/**
|
|
53
|
+
* The log level for responses.
|
|
54
|
+
*/
|
|
19
55
|
responseLogLevel?: LogLevelNames;
|
|
56
|
+
/**
|
|
57
|
+
* The data to get for requests.
|
|
58
|
+
*/
|
|
20
59
|
requestLogGetData?: (req: Request) => Record<string, any>;
|
|
60
|
+
/**
|
|
61
|
+
* The data to get for responses.
|
|
62
|
+
*/
|
|
21
63
|
responseLogGetData?: (req: Request) => Record<string, any>;
|
|
22
64
|
};
|
|
23
65
|
};
|
|
@@ -28,11 +70,7 @@ export type McpServerMcp = Readonly<{
|
|
|
28
70
|
addTool: (tool: ServerTool) => void;
|
|
29
71
|
getApp: (options?: AppOptions) => Express;
|
|
30
72
|
set: (key: string, value: any) => void;
|
|
31
|
-
addModelCruds: (modelCruds: ModelCrudsFunctions<any>, opts?: {
|
|
32
|
-
nameGenerator: ToolNameGenerator;
|
|
33
|
-
}) => void;
|
|
34
73
|
addPreRouteMiddleware: (middleware: ExpressMiddleware) => void;
|
|
35
|
-
addFeature: <T extends object = object, R extends JsonAble | void = void>(featureFunc: (input: T) => Promise<Response<R>>, tool: McpTool) => void;
|
|
36
74
|
addAdditionalRoute: (route: ExpressRoute) => void;
|
|
37
75
|
}>;
|
|
38
76
|
export type McpServerMcpLayer = Readonly<{
|
|
@@ -47,5 +85,11 @@ export type AppOptions = Readonly<{
|
|
|
47
85
|
export type McpContext<TConfig extends Config = Config, TFeatures extends object = object, TMcpLayer extends object = object> = LayerContext<TConfig, {
|
|
48
86
|
features: TFeatures;
|
|
49
87
|
mcp: McpServerMcpLayer & TMcpLayer;
|
|
50
|
-
}
|
|
88
|
+
}>;
|
|
89
|
+
export type OpenApiFunctionDescription = Readonly<{
|
|
90
|
+
name: string;
|
|
91
|
+
description?: string;
|
|
92
|
+
input: Record<string, JsonAble>;
|
|
93
|
+
output: Record<string, JsonAble>;
|
|
94
|
+
}>;
|
|
51
95
|
export {};
|
package/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA8EA,MAAM,CAAC,MAAM,YAAY,GAAG,4BAA4B,CAAA"}
|