@nestia/sdk 12.0.0-dev.20260612.2 → 12.0.0-dev.20260619.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/assets/bundle/distribute/package.json +1 -1
- package/lib/factories/ExpressionFactory.d.ts +9 -0
- package/lib/factories/ExpressionFactory.js +16 -0
- package/lib/factories/ExpressionFactory.js.map +1 -0
- package/lib/factories/IdentifierFactory.d.ts +22 -0
- package/lib/factories/IdentifierFactory.js +50 -0
- package/lib/factories/IdentifierFactory.js.map +1 -0
- package/lib/factories/LiteralFactory.d.ts +9 -0
- package/lib/factories/LiteralFactory.js +48 -0
- package/lib/factories/LiteralFactory.js.map +1 -0
- package/lib/factories/StatementFactory.d.ts +14 -0
- package/lib/factories/StatementFactory.js +20 -0
- package/lib/factories/StatementFactory.js.map +1 -0
- package/lib/factories/TypeFactory.d.ts +24 -0
- package/lib/factories/TypeFactory.js +27 -0
- package/lib/factories/TypeFactory.js.map +1 -0
- package/lib/generates/CloneGenerator.js +2 -2
- package/lib/generates/CloneGenerator.js.map +1 -1
- package/lib/generates/internal/E2eFileProgrammer.js +30 -29
- package/lib/generates/internal/E2eFileProgrammer.js.map +1 -1
- package/lib/generates/internal/FilePrinter.d.ts +2 -2
- package/lib/generates/internal/FilePrinter.js +14 -25
- package/lib/generates/internal/FilePrinter.js.map +1 -1
- package/lib/generates/internal/ImportDictionary.d.ts +1 -1
- package/lib/generates/internal/ImportDictionary.js +10 -9
- package/lib/generates/internal/ImportDictionary.js.map +1 -1
- package/lib/generates/internal/SdkAliasCollection.d.ts +12 -12
- package/lib/generates/internal/SdkAliasCollection.js +23 -25
- package/lib/generates/internal/SdkAliasCollection.js.map +1 -1
- package/lib/generates/internal/SdkFileProgrammer.js +2 -2
- package/lib/generates/internal/SdkFileProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpCloneProgrammer.d.ts +1 -1
- package/lib/generates/internal/SdkHttpCloneProgrammer.js +3 -3
- package/lib/generates/internal/SdkHttpCloneProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpFunctionProgrammer.d.ts +1 -1
- package/lib/generates/internal/SdkHttpFunctionProgrammer.js +45 -48
- package/lib/generates/internal/SdkHttpFunctionProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.d.ts +1 -1
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.js +61 -60
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpParameterProgrammer.d.ts +2 -2
- package/lib/generates/internal/SdkHttpParameterProgrammer.js +11 -13
- package/lib/generates/internal/SdkHttpParameterProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpRouteProgrammer.d.ts +1 -1
- package/lib/generates/internal/SdkHttpSimulationProgrammer.d.ts +1 -1
- package/lib/generates/internal/SdkHttpSimulationProgrammer.js +50 -48
- package/lib/generates/internal/SdkHttpSimulationProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkMcpRouteProgrammer.d.ts +1 -1
- package/lib/generates/internal/SdkMcpRouteProgrammer.js +54 -53
- package/lib/generates/internal/SdkMcpRouteProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkTypeProgrammer.d.ts +3 -3
- package/lib/generates/internal/SdkTypeProgrammer.js +42 -43
- package/lib/generates/internal/SdkTypeProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkTypeTagProgrammer.d.ts +2 -1
- package/lib/generates/internal/SdkTypeTagProgrammer.js +7 -9
- package/lib/generates/internal/SdkTypeTagProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.d.ts +2 -2
- package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js +45 -47
- package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketParameterProgrammer.d.ts +3 -3
- package/lib/generates/internal/SdkWebSocketParameterProgrammer.js +9 -9
- package/lib/generates/internal/SdkWebSocketParameterProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.d.ts +2 -2
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.js +34 -40
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.js.map +1 -1
- package/lib/transform.d.ts +5 -9
- package/lib/transform.js +8 -31
- package/lib/transform.js.map +1 -1
- package/package.json +11 -11
- package/src/factories/ExpressionFactory.ts +23 -0
- package/src/factories/IdentifierFactory.ts +84 -0
- package/src/factories/LiteralFactory.ts +54 -0
- package/src/factories/StatementFactory.ts +56 -0
- package/src/factories/TypeFactory.ts +27 -0
- package/src/generates/CloneGenerator.ts +8 -7
- package/src/generates/internal/E2eFileProgrammer.ts +59 -53
- package/src/generates/internal/FilePrinter.ts +28 -36
- package/src/generates/internal/ImportDictionary.ts +19 -21
- package/src/generates/internal/SdkAliasCollection.ts +55 -49
- package/src/generates/internal/SdkFileProgrammer.ts +4 -7
- package/src/generates/internal/SdkHttpCloneProgrammer.ts +11 -13
- package/src/generates/internal/SdkHttpFunctionProgrammer.ts +90 -101
- package/src/generates/internal/SdkHttpNamespaceProgrammer.ts +153 -166
- package/src/generates/internal/SdkHttpParameterProgrammer.ts +15 -17
- package/src/generates/internal/SdkHttpRouteProgrammer.ts +1 -1
- package/src/generates/internal/SdkHttpSimulationProgrammer.ts +121 -130
- package/src/generates/internal/SdkMcpRouteProgrammer.ts +135 -140
- package/src/generates/internal/SdkTypeProgrammer.ts +389 -382
- package/src/generates/internal/SdkTypeTagProgrammer.ts +13 -17
- package/src/generates/internal/SdkWebSocketNamespaceProgrammer.ts +124 -130
- package/src/generates/internal/SdkWebSocketParameterProgrammer.ts +17 -15
- package/src/generates/internal/SdkWebSocketRouteProgrammer.ts +112 -139
- package/src/transform.ts +14 -45
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
Node,
|
|
2
|
+
type Expression,
|
|
3
|
+
type Node,
|
|
4
4
|
NodeFlags,
|
|
5
|
+
type ObjectLiteralElement,
|
|
6
|
+
type ParameterDeclaration,
|
|
7
|
+
type Statement,
|
|
5
8
|
SyntaxKind,
|
|
6
|
-
|
|
7
|
-
} from "@
|
|
9
|
+
factory,
|
|
10
|
+
} from "@ttsc/factory";
|
|
8
11
|
|
|
12
|
+
import { IdentifierFactory } from "../../factories/IdentifierFactory";
|
|
9
13
|
import { INestiaProject } from "../../structures/INestiaProject";
|
|
10
14
|
import { ITypedMcpRoute } from "../../structures/ITypedMcpRoute";
|
|
11
15
|
import { FilePrinter } from "./FilePrinter";
|
|
@@ -35,7 +39,7 @@ export namespace SdkMcpRouteProgrammer {
|
|
|
35
39
|
(_project: INestiaProject) =>
|
|
36
40
|
(importer: ImportDictionary) =>
|
|
37
41
|
(route: ITypedMcpRoute): Node => {
|
|
38
|
-
const clientType =
|
|
42
|
+
const clientType = factory.createTypeReferenceNode(
|
|
39
43
|
importer.external({
|
|
40
44
|
declaration: true,
|
|
41
45
|
file: "@modelcontextprotocol/sdk/client/index.js",
|
|
@@ -61,14 +65,14 @@ export namespace SdkMcpRouteProgrammer {
|
|
|
61
65
|
});
|
|
62
66
|
|
|
63
67
|
const inputRef: Node = route.input
|
|
64
|
-
?
|
|
65
|
-
:
|
|
66
|
-
const outputRef: Node =
|
|
68
|
+
? factory.createTypeReferenceNode(`${route.name}.Input`)
|
|
69
|
+
: factory.createTypeLiteralNode([]);
|
|
70
|
+
const outputRef: Node = factory.createTypeReferenceNode(
|
|
67
71
|
`${route.name}.Output`,
|
|
68
72
|
);
|
|
69
73
|
|
|
70
|
-
const params:
|
|
71
|
-
|
|
74
|
+
const params: ParameterDeclaration[] = [
|
|
75
|
+
factory.createParameterDeclaration(
|
|
72
76
|
undefined,
|
|
73
77
|
undefined,
|
|
74
78
|
"client",
|
|
@@ -79,7 +83,7 @@ export namespace SdkMcpRouteProgrammer {
|
|
|
79
83
|
];
|
|
80
84
|
if (route.input)
|
|
81
85
|
params.push(
|
|
82
|
-
|
|
86
|
+
factory.createParameterDeclaration(
|
|
83
87
|
undefined,
|
|
84
88
|
undefined,
|
|
85
89
|
"args",
|
|
@@ -89,55 +93,53 @@ export namespace SdkMcpRouteProgrammer {
|
|
|
89
93
|
),
|
|
90
94
|
);
|
|
91
95
|
|
|
92
|
-
const toolNameExpr =
|
|
93
|
-
|
|
94
|
-
|
|
96
|
+
const toolNameExpr = factory.createPropertyAccessExpression(
|
|
97
|
+
factory.createPropertyAccessExpression(
|
|
98
|
+
factory.createIdentifier(route.name),
|
|
95
99
|
"METADATA",
|
|
96
100
|
),
|
|
97
101
|
"tool",
|
|
98
102
|
);
|
|
99
103
|
|
|
100
|
-
const callToolParams:
|
|
101
|
-
|
|
104
|
+
const callToolParams: ObjectLiteralElement[] = [
|
|
105
|
+
factory.createPropertyAssignment("name", toolNameExpr),
|
|
102
106
|
];
|
|
103
107
|
if (route.input)
|
|
104
108
|
callToolParams.push(
|
|
105
|
-
|
|
109
|
+
factory.createPropertyAssignment(
|
|
106
110
|
"arguments",
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
+
factory.createAsExpression(
|
|
112
|
+
factory.createAsExpression(
|
|
113
|
+
factory.createIdentifier("args"),
|
|
114
|
+
factory.createKeywordTypeNode(SyntaxKind.AnyKeyword),
|
|
111
115
|
),
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
),
|
|
116
|
-
TypeScriptFactory.createKeywordTypeNode(SyntaxKind.AnyKeyword),
|
|
116
|
+
factory.createTypeReferenceNode("Record", [
|
|
117
|
+
factory.createKeywordTypeNode(SyntaxKind.StringKeyword),
|
|
118
|
+
factory.createKeywordTypeNode(SyntaxKind.AnyKeyword),
|
|
117
119
|
]),
|
|
118
120
|
),
|
|
119
121
|
),
|
|
120
122
|
);
|
|
121
123
|
|
|
122
|
-
const body =
|
|
124
|
+
const body = factory.createBlock(
|
|
123
125
|
[
|
|
124
|
-
|
|
126
|
+
factory.createVariableStatement(
|
|
125
127
|
undefined,
|
|
126
|
-
|
|
128
|
+
factory.createVariableDeclarationList(
|
|
127
129
|
[
|
|
128
|
-
|
|
130
|
+
factory.createVariableDeclaration(
|
|
129
131
|
"raw",
|
|
130
132
|
undefined,
|
|
131
133
|
undefined,
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
134
|
+
factory.createAwaitExpression(
|
|
135
|
+
factory.createCallExpression(
|
|
136
|
+
factory.createPropertyAccessExpression(
|
|
137
|
+
factory.createIdentifier("client"),
|
|
136
138
|
"callTool",
|
|
137
139
|
),
|
|
138
140
|
undefined,
|
|
139
141
|
[
|
|
140
|
-
|
|
142
|
+
factory.createObjectLiteralExpression(
|
|
141
143
|
callToolParams,
|
|
142
144
|
true,
|
|
143
145
|
),
|
|
@@ -149,12 +151,12 @@ export namespace SdkMcpRouteProgrammer {
|
|
|
149
151
|
NodeFlags.Const,
|
|
150
152
|
),
|
|
151
153
|
),
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
154
|
+
factory.createIfStatement(
|
|
155
|
+
factory.createCallExpression(
|
|
156
|
+
factory.createPropertyAccessExpression(
|
|
157
|
+
factory.createPropertyAccessExpression(
|
|
158
|
+
factory.createPropertyAccessExpression(
|
|
159
|
+
factory.createIdentifier("Object"),
|
|
158
160
|
"prototype",
|
|
159
161
|
),
|
|
160
162
|
"hasOwnProperty",
|
|
@@ -163,8 +165,8 @@ export namespace SdkMcpRouteProgrammer {
|
|
|
163
165
|
),
|
|
164
166
|
undefined,
|
|
165
167
|
[
|
|
166
|
-
|
|
167
|
-
|
|
168
|
+
factory.createIdentifier("raw"),
|
|
169
|
+
factory.createStringLiteral("toolResult"),
|
|
168
170
|
],
|
|
169
171
|
),
|
|
170
172
|
throwToolError(
|
|
@@ -172,74 +174,70 @@ export namespace SdkMcpRouteProgrammer {
|
|
|
172
174
|
'" returned a legacy (pre-2024-11-05) compatibility result',
|
|
173
175
|
),
|
|
174
176
|
),
|
|
175
|
-
|
|
177
|
+
factory.createVariableStatement(
|
|
176
178
|
undefined,
|
|
177
|
-
|
|
179
|
+
factory.createVariableDeclarationList(
|
|
178
180
|
[
|
|
179
|
-
|
|
181
|
+
factory.createVariableDeclaration(
|
|
180
182
|
"result",
|
|
181
183
|
undefined,
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
TypeScriptFactory.createIdentifier("raw"),
|
|
187
|
-
TypeScriptFactory.createTypeReferenceNode(
|
|
188
|
-
callToolResultTypeName,
|
|
189
|
-
),
|
|
184
|
+
factory.createTypeReferenceNode(callToolResultTypeName),
|
|
185
|
+
factory.createAsExpression(
|
|
186
|
+
factory.createIdentifier("raw"),
|
|
187
|
+
factory.createTypeReferenceNode(callToolResultTypeName),
|
|
190
188
|
),
|
|
191
189
|
),
|
|
192
190
|
],
|
|
193
191
|
NodeFlags.Const,
|
|
194
192
|
),
|
|
195
193
|
),
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
194
|
+
factory.createIfStatement(
|
|
195
|
+
factory.createBinaryExpression(
|
|
196
|
+
factory.createPropertyAccessExpression(
|
|
197
|
+
factory.createIdentifier("result"),
|
|
200
198
|
"isError",
|
|
201
199
|
),
|
|
202
|
-
|
|
203
|
-
|
|
200
|
+
factory.createToken(SyntaxKind.EqualsEqualsEqualsToken),
|
|
201
|
+
factory.createTrue(),
|
|
204
202
|
),
|
|
205
203
|
throwToolError(toolNameExpr, '" returned isError'),
|
|
206
204
|
),
|
|
207
205
|
...(isVoid
|
|
208
|
-
? [
|
|
206
|
+
? [factory.createReturnStatement()]
|
|
209
207
|
: [
|
|
210
|
-
|
|
208
|
+
factory.createVariableStatement(
|
|
211
209
|
undefined,
|
|
212
|
-
|
|
210
|
+
factory.createVariableDeclarationList(
|
|
213
211
|
[
|
|
214
|
-
|
|
212
|
+
factory.createVariableDeclaration(
|
|
215
213
|
"first",
|
|
216
214
|
undefined,
|
|
217
215
|
undefined,
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
216
|
+
factory.createCallExpression(
|
|
217
|
+
factory.createPropertyAccessExpression(
|
|
218
|
+
factory.createPropertyAccessExpression(
|
|
219
|
+
factory.createIdentifier("result"),
|
|
222
220
|
"content",
|
|
223
221
|
),
|
|
224
222
|
"find",
|
|
225
223
|
),
|
|
226
224
|
undefined,
|
|
227
225
|
[
|
|
228
|
-
|
|
226
|
+
factory.createArrowFunction(
|
|
229
227
|
undefined,
|
|
230
228
|
undefined,
|
|
231
229
|
[IdentifierFactory.parameter("entry")],
|
|
232
230
|
undefined,
|
|
233
231
|
undefined,
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
232
|
+
factory.createBinaryExpression(
|
|
233
|
+
factory.createPropertyAccessExpression(
|
|
234
|
+
factory.createIdentifier("entry"),
|
|
237
235
|
"type",
|
|
238
236
|
),
|
|
239
|
-
|
|
237
|
+
factory.createToken(
|
|
240
238
|
SyntaxKind.EqualsEqualsEqualsToken,
|
|
241
239
|
),
|
|
242
|
-
|
|
240
|
+
factory.createStringLiteral("text"),
|
|
243
241
|
),
|
|
244
242
|
),
|
|
245
243
|
],
|
|
@@ -249,38 +247,34 @@ export namespace SdkMcpRouteProgrammer {
|
|
|
249
247
|
NodeFlags.Const,
|
|
250
248
|
),
|
|
251
249
|
),
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
),
|
|
258
|
-
TypeScriptFactory.createIdentifier("undefined"),
|
|
250
|
+
factory.createIfStatement(
|
|
251
|
+
factory.createBinaryExpression(
|
|
252
|
+
factory.createIdentifier("first"),
|
|
253
|
+
factory.createToken(SyntaxKind.EqualsEqualsEqualsToken),
|
|
254
|
+
factory.createIdentifier("undefined"),
|
|
259
255
|
),
|
|
260
256
|
throwToolError(toolNameExpr, '" returned no text content'),
|
|
261
257
|
),
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
258
|
+
factory.createIfStatement(
|
|
259
|
+
factory.createBinaryExpression(
|
|
260
|
+
factory.createPropertyAccessExpression(
|
|
261
|
+
factory.createIdentifier("first"),
|
|
266
262
|
"type",
|
|
267
263
|
),
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
),
|
|
271
|
-
TypeScriptFactory.createStringLiteral("text"),
|
|
264
|
+
factory.createToken(SyntaxKind.EqualsEqualsEqualsToken),
|
|
265
|
+
factory.createStringLiteral("text"),
|
|
272
266
|
),
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
267
|
+
factory.createReturnStatement(
|
|
268
|
+
factory.createAsExpression(
|
|
269
|
+
factory.createCallExpression(
|
|
270
|
+
factory.createPropertyAccessExpression(
|
|
271
|
+
factory.createIdentifier("JSON"),
|
|
278
272
|
"parse",
|
|
279
273
|
),
|
|
280
274
|
undefined,
|
|
281
275
|
[
|
|
282
|
-
|
|
283
|
-
|
|
276
|
+
factory.createPropertyAccessExpression(
|
|
277
|
+
factory.createIdentifier("first"),
|
|
284
278
|
"text",
|
|
285
279
|
),
|
|
286
280
|
],
|
|
@@ -295,16 +289,16 @@ export namespace SdkMcpRouteProgrammer {
|
|
|
295
289
|
true,
|
|
296
290
|
);
|
|
297
291
|
|
|
298
|
-
return
|
|
292
|
+
return factory.createFunctionDeclaration(
|
|
299
293
|
[
|
|
300
|
-
|
|
301
|
-
|
|
294
|
+
factory.createModifier(SyntaxKind.ExportKeyword),
|
|
295
|
+
factory.createModifier(SyntaxKind.AsyncKeyword),
|
|
302
296
|
],
|
|
303
297
|
undefined,
|
|
304
298
|
route.name,
|
|
305
299
|
undefined,
|
|
306
300
|
params,
|
|
307
|
-
|
|
301
|
+
factory.createTypeReferenceNode("Promise", [outputRef]),
|
|
308
302
|
body,
|
|
309
303
|
);
|
|
310
304
|
};
|
|
@@ -313,21 +307,21 @@ export namespace SdkMcpRouteProgrammer {
|
|
|
313
307
|
(_project: INestiaProject) =>
|
|
314
308
|
(importer: ImportDictionary) =>
|
|
315
309
|
(route: ITypedMcpRoute): Node => {
|
|
316
|
-
const statements:
|
|
310
|
+
const statements: Statement[] = [];
|
|
317
311
|
|
|
318
312
|
if (route.input)
|
|
319
313
|
statements.push(
|
|
320
|
-
|
|
321
|
-
[
|
|
314
|
+
factory.createTypeAliasDeclaration(
|
|
315
|
+
[factory.createModifier(SyntaxKind.ExportKeyword)],
|
|
322
316
|
"Input",
|
|
323
317
|
undefined,
|
|
324
|
-
|
|
318
|
+
factory.createTypeReferenceNode(route.input.type.name),
|
|
325
319
|
),
|
|
326
320
|
);
|
|
327
321
|
|
|
328
322
|
const outputType: Node =
|
|
329
323
|
!isVoidReturn(route) && route.returnType !== null
|
|
330
|
-
?
|
|
324
|
+
? factory.createTypeReferenceNode(
|
|
331
325
|
importer.external({
|
|
332
326
|
declaration: true,
|
|
333
327
|
file: "typia",
|
|
@@ -335,15 +329,15 @@ export namespace SdkMcpRouteProgrammer {
|
|
|
335
329
|
name: "Primitive",
|
|
336
330
|
}),
|
|
337
331
|
[
|
|
338
|
-
|
|
332
|
+
factory.createTypeReferenceNode(
|
|
339
333
|
unwrapPromise(route.returnType.name),
|
|
340
334
|
),
|
|
341
335
|
],
|
|
342
336
|
)
|
|
343
|
-
:
|
|
337
|
+
: factory.createKeywordTypeNode(SyntaxKind.VoidKeyword);
|
|
344
338
|
statements.push(
|
|
345
|
-
|
|
346
|
-
[
|
|
339
|
+
factory.createTypeAliasDeclaration(
|
|
340
|
+
[factory.createModifier(SyntaxKind.ExportKeyword)],
|
|
347
341
|
"Output",
|
|
348
342
|
undefined,
|
|
349
343
|
outputType,
|
|
@@ -351,43 +345,41 @@ export namespace SdkMcpRouteProgrammer {
|
|
|
351
345
|
);
|
|
352
346
|
|
|
353
347
|
statements.push(
|
|
354
|
-
|
|
355
|
-
[
|
|
356
|
-
|
|
348
|
+
factory.createVariableStatement(
|
|
349
|
+
[factory.createModifier(SyntaxKind.ExportKeyword)],
|
|
350
|
+
factory.createVariableDeclarationList(
|
|
357
351
|
[
|
|
358
|
-
|
|
352
|
+
factory.createVariableDeclaration(
|
|
359
353
|
"METADATA",
|
|
360
354
|
undefined,
|
|
361
355
|
undefined,
|
|
362
|
-
|
|
363
|
-
|
|
356
|
+
factory.createAsExpression(
|
|
357
|
+
factory.createObjectLiteralExpression(
|
|
364
358
|
[
|
|
365
|
-
|
|
359
|
+
factory.createPropertyAssignment(
|
|
366
360
|
"protocol",
|
|
367
|
-
|
|
361
|
+
factory.createStringLiteral("mcp"),
|
|
368
362
|
),
|
|
369
|
-
|
|
363
|
+
factory.createPropertyAssignment(
|
|
370
364
|
"tool",
|
|
371
|
-
|
|
365
|
+
factory.createStringLiteral(route.toolName),
|
|
372
366
|
),
|
|
373
|
-
|
|
367
|
+
factory.createPropertyAssignment(
|
|
374
368
|
"title",
|
|
375
369
|
route.title === null
|
|
376
|
-
?
|
|
377
|
-
:
|
|
370
|
+
? factory.createNull()
|
|
371
|
+
: factory.createStringLiteral(route.title),
|
|
378
372
|
),
|
|
379
|
-
|
|
373
|
+
factory.createPropertyAssignment(
|
|
380
374
|
"description",
|
|
381
375
|
route.toolDescription === null
|
|
382
|
-
?
|
|
383
|
-
:
|
|
384
|
-
route.toolDescription,
|
|
385
|
-
),
|
|
376
|
+
? factory.createNull()
|
|
377
|
+
: factory.createStringLiteral(route.toolDescription),
|
|
386
378
|
),
|
|
387
379
|
],
|
|
388
380
|
true,
|
|
389
381
|
),
|
|
390
|
-
|
|
382
|
+
factory.createTypeReferenceNode("const"),
|
|
391
383
|
),
|
|
392
384
|
),
|
|
393
385
|
],
|
|
@@ -396,10 +388,10 @@ export namespace SdkMcpRouteProgrammer {
|
|
|
396
388
|
),
|
|
397
389
|
);
|
|
398
390
|
|
|
399
|
-
return
|
|
400
|
-
[
|
|
401
|
-
|
|
402
|
-
|
|
391
|
+
return factory.createModuleDeclaration(
|
|
392
|
+
[factory.createModifier(SyntaxKind.ExportKeyword)],
|
|
393
|
+
factory.createIdentifier(route.name),
|
|
394
|
+
factory.createModuleBlock(statements),
|
|
403
395
|
NodeFlags.Namespace,
|
|
404
396
|
);
|
|
405
397
|
};
|
|
@@ -431,18 +423,21 @@ export namespace SdkMcpRouteProgrammer {
|
|
|
431
423
|
const isVoidName = (name: string): boolean =>
|
|
432
424
|
name === "void" || name === "undefined";
|
|
433
425
|
|
|
434
|
-
const throwToolError = (
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
426
|
+
const throwToolError = (
|
|
427
|
+
toolNameExpr: Expression,
|
|
428
|
+
suffix: string,
|
|
429
|
+
): Statement =>
|
|
430
|
+
factory.createThrowStatement(
|
|
431
|
+
factory.createNewExpression(
|
|
432
|
+
factory.createIdentifier("Error"),
|
|
438
433
|
undefined,
|
|
439
434
|
[
|
|
440
|
-
|
|
441
|
-
|
|
435
|
+
factory.createTemplateExpression(
|
|
436
|
+
factory.createTemplateHead('MCP tool "'),
|
|
442
437
|
[
|
|
443
|
-
|
|
438
|
+
factory.createTemplateSpan(
|
|
444
439
|
toolNameExpr,
|
|
445
|
-
|
|
440
|
+
factory.createTemplateTail(suffix),
|
|
446
441
|
),
|
|
447
442
|
],
|
|
448
443
|
),
|