lua-cli 3.5.0-alpha.4 → 3.5.0-alpha.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.
- package/dist/api/http.client.js +5 -1
- package/dist/api/http.client.js.map +1 -1
- package/dist/commands/compile.d.ts +0 -1
- package/dist/commands/compile.js +14 -10
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/integrations.js +1 -1
- package/dist/commands/integrations.js.map +1 -1
- package/dist/commands/push.js +79 -6
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/sync.js +9 -5
- package/dist/commands/sync.js.map +1 -1
- package/dist/compiler/agent-traverser.d.ts +1 -0
- package/dist/compiler/agent-traverser.js +11 -4
- package/dist/compiler/agent-traverser.js.map +1 -1
- package/dist/compiler/bundler.d.ts +1 -1
- package/dist/compiler/bundler.js +2 -1
- package/dist/compiler/bundler.js.map +1 -1
- package/dist/compiler/compiler.js +3 -2
- package/dist/compiler/compiler.js.map +1 -1
- package/dist/compiler/index.d.ts +1 -1
- package/dist/compiler/index.js +1 -1
- package/dist/compiler/index.js.map +1 -1
- package/dist/compiler/plugins/base.d.ts +21 -1
- package/dist/compiler/plugins/base.js +37 -1
- package/dist/compiler/plugins/base.js.map +1 -1
- package/dist/compiler/plugins/job.plugin.js +17 -64
- package/dist/compiler/plugins/job.plugin.js.map +1 -1
- package/dist/compiler/plugins/mcp-server.plugin.d.ts +0 -8
- package/dist/compiler/plugins/mcp-server.plugin.js +25 -58
- package/dist/compiler/plugins/mcp-server.plugin.js.map +1 -1
- package/dist/compiler/plugins/postprocessor.plugin.js +1 -10
- package/dist/compiler/plugins/postprocessor.plugin.js.map +1 -1
- package/dist/compiler/plugins/preprocessor.plugin.js +4 -17
- package/dist/compiler/plugins/preprocessor.plugin.js.map +1 -1
- package/dist/compiler/plugins/processor-base.js +2 -9
- package/dist/compiler/plugins/processor-base.js.map +1 -1
- package/dist/compiler/plugins/skill.plugin.js +37 -32
- package/dist/compiler/plugins/skill.plugin.js.map +1 -1
- package/dist/compiler/plugins/tool.plugin.d.ts +1 -0
- package/dist/compiler/plugins/tool.plugin.js +9 -30
- package/dist/compiler/plugins/tool.plugin.js.map +1 -1
- package/dist/compiler/plugins/webhook.plugin.js +11 -23
- package/dist/compiler/plugins/webhook.plugin.js.map +1 -1
- package/dist/compiler/types.d.ts +5 -0
- package/dist/compiler/types.js +7 -0
- package/dist/compiler/types.js.map +1 -1
- package/dist/compiler/utils/ast-helpers.d.ts +69 -17
- package/dist/compiler/utils/ast-helpers.js +250 -61
- package/dist/compiler/utils/ast-helpers.js.map +1 -1
- package/dist/config/compile.constants.d.ts +26 -0
- package/dist/config/compile.constants.js +44 -0
- package/dist/config/compile.constants.js.map +1 -1
- package/dist/primitives/base.handler.d.ts +45 -6
- package/dist/primitives/base.handler.js +121 -17
- package/dist/primitives/base.handler.js.map +1 -1
- package/dist/primitives/index.d.ts +4 -5
- package/dist/primitives/index.js +7 -17
- package/dist/primitives/index.js.map +1 -1
- package/dist/primitives/job.handler.d.ts +0 -5
- package/dist/primitives/job.handler.js +1 -15
- package/dist/primitives/job.handler.js.map +1 -1
- package/dist/primitives/mcp-server.handler.d.ts +1 -1
- package/dist/primitives/mcp-server.handler.js +15 -6
- package/dist/primitives/mcp-server.handler.js.map +1 -1
- package/dist/primitives/postprocessor.handler.d.ts +0 -11
- package/dist/primitives/postprocessor.handler.js +1 -24
- package/dist/primitives/postprocessor.handler.js.map +1 -1
- package/dist/primitives/preprocessor.handler.d.ts +0 -11
- package/dist/primitives/preprocessor.handler.js +1 -24
- package/dist/primitives/preprocessor.handler.js.map +1 -1
- package/dist/primitives/skill.handler.d.ts +3 -1
- package/dist/primitives/skill.handler.js +10 -29
- package/dist/primitives/skill.handler.js.map +1 -1
- package/dist/primitives/types.d.ts +18 -0
- package/dist/primitives/types.js.map +1 -1
- package/dist/primitives/webhook.handler.d.ts +0 -5
- package/dist/primitives/webhook.handler.js +1 -15
- package/dist/primitives/webhook.handler.js.map +1 -1
- package/dist/utils/cli.js +3 -3
- package/dist/utils/cli.js.map +1 -1
- package/dist/utils/command-utils.d.ts +12 -10
- package/dist/utils/command-utils.js +19 -17
- package/dist/utils/command-utils.js.map +1 -1
- package/dist/utils/files.d.ts +10 -0
- package/dist/utils/files.js +34 -0
- package/dist/utils/files.js.map +1 -1
- package/dist/utils/sandbox.js +3 -20
- package/dist/utils/sandbox.js.map +1 -1
- package/dist/web/app.css +186 -912
- package/dist/web/app.js +46 -46
- package/docs/README.md +3 -3
- package/package.json +1 -1
- package/template/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compiler/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,gBAAgB;AAChB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAqDlD,gBAAgB;AAChB,OAAO,EACL,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAE/B,mBAAmB;AACnB,OAAO,EACL,WAAW,EACX,eAAe,EACf,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,mBAAmB;AACnB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,YAAY;AACZ,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compiler/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,gBAAgB;AAChB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAqDlD,gBAAgB;AAChB,OAAO,EACL,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAE/B,mBAAmB;AACnB,OAAO,EACL,WAAW,EACX,eAAe,EACf,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,mBAAmB;AACnB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,YAAY;AACZ,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,eAAe,EACf,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AAErC,yCAAyC;AACzC,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,eAAe,GAEhB,MAAM,oBAAoB,CAAC;AAE5B,iBAAiB;AACjB,OAAO,EACL,cAAc,EACd,aAAa,EACb,qBAAqB,GACtB,MAAM,2BAA2B,CAAC"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* Data types are in ../types.ts
|
|
10
10
|
*/
|
|
11
11
|
import { SourceFile, Project, ObjectLiteralExpression } from 'ts-morph';
|
|
12
|
-
import type
|
|
12
|
+
import { PrimitiveKind, type PrimitiveMetadata, type CommonExtractedFields, type ValidationResult, type ValidationMessage, type SchemaSet, type BundledArtifact, type CompiledPrimitive, type ManifestPrimitive, type ManifestContext, type BaseMetadataFields } from '../types.js';
|
|
13
13
|
/**
|
|
14
14
|
* Context for resolving references between primitives.
|
|
15
15
|
* Passed to plugins when they need to resolve dependencies.
|
|
@@ -210,6 +210,14 @@ export declare abstract class BasePlugin<T extends BaseMetadataFields = BaseMeta
|
|
|
210
210
|
line: number;
|
|
211
211
|
column: number;
|
|
212
212
|
}): CommonExtractedFields | null;
|
|
213
|
+
/**
|
|
214
|
+
* Common validation: name required (error), description recommended (warning).
|
|
215
|
+
* Subclasses call this first, then add type-specific checks to the returned arrays.
|
|
216
|
+
*/
|
|
217
|
+
protected baseValidation(metadata: PrimitiveMetadata<T>): {
|
|
218
|
+
errors: ValidationMessage[];
|
|
219
|
+
warnings: ValidationMessage[];
|
|
220
|
+
};
|
|
213
221
|
abstract validate(metadata: PrimitiveMetadata<T>): ValidationResult;
|
|
214
222
|
/**
|
|
215
223
|
* Generate entry point code for bundling.
|
|
@@ -238,6 +246,18 @@ export declare abstract class BasePlugin<T extends BaseMetadataFields = BaseMeta
|
|
|
238
246
|
* Return JavaScript code to add to the validation IIFE.
|
|
239
247
|
*/
|
|
240
248
|
protected getRuntimeValidation(_metadata: PrimitiveMetadata<T>): string;
|
|
249
|
+
/**
|
|
250
|
+
* Common manifest fields shared by ALL primitive types.
|
|
251
|
+
* Subclasses spread this and add type-specific fields.
|
|
252
|
+
*/
|
|
253
|
+
protected baseManifestFields(compiled: CompiledPrimitive): {
|
|
254
|
+
kind: PrimitiveKind;
|
|
255
|
+
name: string;
|
|
256
|
+
description: string;
|
|
257
|
+
path: string;
|
|
258
|
+
sourcePath: string;
|
|
259
|
+
hash: string;
|
|
260
|
+
};
|
|
241
261
|
abstract toManifestEntry(compiled: CompiledPrimitive, context?: ManifestContext): ManifestPrimitive | Promise<ManifestPrimitive>;
|
|
242
262
|
}
|
|
243
263
|
/**
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* Data types are in ../types.ts
|
|
10
10
|
*/
|
|
11
11
|
import { Node } from 'ts-morph';
|
|
12
|
+
import { COMPILER_VERSION, } from '../types.js';
|
|
12
13
|
import { extractStringProperty } from '../utils/ast-helpers.js';
|
|
13
14
|
// =============================================================================
|
|
14
15
|
// BASE PLUGIN ABSTRACT CLASS
|
|
@@ -183,6 +184,24 @@ export class BasePlugin {
|
|
|
183
184
|
};
|
|
184
185
|
}
|
|
185
186
|
// ===========================================================================
|
|
187
|
+
// VALIDATION (must be implemented by subclass)
|
|
188
|
+
// ===========================================================================
|
|
189
|
+
/**
|
|
190
|
+
* Common validation: name required (error), description recommended (warning).
|
|
191
|
+
* Subclasses call this first, then add type-specific checks to the returned arrays.
|
|
192
|
+
*/
|
|
193
|
+
baseValidation(metadata) {
|
|
194
|
+
const errors = [];
|
|
195
|
+
const warnings = [];
|
|
196
|
+
if (!metadata.name) {
|
|
197
|
+
errors.push(validationError(`${this.displayName} must have a name`, { line: metadata.line }));
|
|
198
|
+
}
|
|
199
|
+
if (!metadata.description) {
|
|
200
|
+
warnings.push(validationWarning(`${this.displayName} should have a description`, { line: metadata.line }));
|
|
201
|
+
}
|
|
202
|
+
return { errors, warnings };
|
|
203
|
+
}
|
|
204
|
+
// ===========================================================================
|
|
186
205
|
// ENTRY POINT GENERATION (common implementation)
|
|
187
206
|
// ===========================================================================
|
|
188
207
|
/**
|
|
@@ -210,7 +229,7 @@ export class BasePlugin {
|
|
|
210
229
|
${importStatement}
|
|
211
230
|
|
|
212
231
|
const __lua_primitive__ = {
|
|
213
|
-
version: '
|
|
232
|
+
version: '${COMPILER_VERSION}',
|
|
214
233
|
kind: '${this.kind}',
|
|
215
234
|
name: ${JSON.stringify(metadata.name)},
|
|
216
235
|
description: ${JSON.stringify(metadata.description)},
|
|
@@ -282,6 +301,23 @@ ${artifact.code}
|
|
|
282
301
|
getRuntimeValidation(_metadata) {
|
|
283
302
|
return '';
|
|
284
303
|
}
|
|
304
|
+
// ===========================================================================
|
|
305
|
+
// MANIFEST ENTRY
|
|
306
|
+
// ===========================================================================
|
|
307
|
+
/**
|
|
308
|
+
* Common manifest fields shared by ALL primitive types.
|
|
309
|
+
* Subclasses spread this and add type-specific fields.
|
|
310
|
+
*/
|
|
311
|
+
baseManifestFields(compiled) {
|
|
312
|
+
return {
|
|
313
|
+
kind: this.kind,
|
|
314
|
+
name: compiled.name,
|
|
315
|
+
description: compiled.description,
|
|
316
|
+
path: `artifacts/${compiled.kind}/${compiled.name}.js`,
|
|
317
|
+
sourcePath: compiled.sourcePath,
|
|
318
|
+
hash: compiled.artifact.hash,
|
|
319
|
+
};
|
|
320
|
+
}
|
|
285
321
|
}
|
|
286
322
|
// =============================================================================
|
|
287
323
|
// HELPER FUNCTIONS
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/compiler/plugins/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAuB,IAAI,EAA2B,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/compiler/plugins/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,8 @@
|
|
|
5
5
|
* 1. Class-based (legacy): new LuaJob({ ... })
|
|
6
6
|
* 2. Function-based (new): const myJob = defineJob({ ... })
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { BasePlugin, validationError, validationWarning } from './base.js';
|
|
11
|
-
import { extractStringProperty } from '../utils/ast-helpers.js';
|
|
8
|
+
import { BasePlugin, validationError } from './base.js';
|
|
9
|
+
import { extractNumberProperty, extractObjectProperty, extractNestedProperty } from '../utils/ast-helpers.js';
|
|
12
10
|
/**
|
|
13
11
|
* Plugin for compiling job primitives.
|
|
14
12
|
* Extends BasePlugin for common detection/entry point/postProcess logic.
|
|
@@ -28,49 +26,18 @@ export class JobPlugin extends BasePlugin {
|
|
|
28
26
|
const common = this.extractCommonFields(config, exportName, sourcePath, position);
|
|
29
27
|
if (!common)
|
|
30
28
|
return null;
|
|
31
|
-
// Extract schedule
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
let timeoutValue;
|
|
44
|
-
const timeoutNode = config.getProperty('timeout');
|
|
45
|
-
if (timeoutNode && Node.isPropertyAssignment(timeoutNode)) {
|
|
46
|
-
const init = timeoutNode.getInitializer();
|
|
47
|
-
if (init && Node.isNumericLiteral(init)) {
|
|
48
|
-
timeoutValue = Number(init.getText());
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
// Extract retry config
|
|
52
|
-
let retryConfig;
|
|
53
|
-
const retryNode = config.getProperty('retry');
|
|
54
|
-
if (retryNode && Node.isPropertyAssignment(retryNode)) {
|
|
55
|
-
const retryValue = retryNode.getInitializer();
|
|
56
|
-
if (retryValue && Node.isObjectLiteralExpression(retryValue)) {
|
|
57
|
-
retryConfig = {};
|
|
58
|
-
const maxProp = retryValue.getProperty('maxAttempts');
|
|
59
|
-
if (maxProp && Node.isPropertyAssignment(maxProp)) {
|
|
60
|
-
const maxInit = maxProp.getInitializer();
|
|
61
|
-
if (maxInit && Node.isNumericLiteral(maxInit)) {
|
|
62
|
-
retryConfig.maxAttempts = Number(maxInit.getText());
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
const backoffProp = retryValue.getProperty('backoffSeconds');
|
|
66
|
-
if (backoffProp && Node.isPropertyAssignment(backoffProp)) {
|
|
67
|
-
const backoffInit = backoffProp.getInitializer();
|
|
68
|
-
if (backoffInit && Node.isNumericLiteral(backoffInit)) {
|
|
69
|
-
retryConfig.backoffSeconds = Number(backoffInit.getText());
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
29
|
+
// Extract schedule (use extractObjectProperty to handle variable references)
|
|
30
|
+
const scheduleObj = extractObjectProperty(config, 'schedule');
|
|
31
|
+
const scheduleType = extractNestedProperty(scheduleObj, 'type');
|
|
32
|
+
const scheduleExpression = extractNestedProperty(scheduleObj, 'expression');
|
|
33
|
+
// Extract timeout
|
|
34
|
+
const timeoutValue = extractNumberProperty(config, 'timeout');
|
|
35
|
+
// Extract retry config (use extractObjectProperty to handle variable references)
|
|
36
|
+
const retryObj = extractObjectProperty(config, 'retry');
|
|
37
|
+
const retryConfig = retryObj ? {
|
|
38
|
+
maxAttempts: extractNestedProperty(retryObj, 'maxAttempts'),
|
|
39
|
+
backoffSeconds: extractNestedProperty(retryObj, 'backoffSeconds'),
|
|
40
|
+
} : undefined;
|
|
74
41
|
return {
|
|
75
42
|
kind: this.kind,
|
|
76
43
|
...common,
|
|
@@ -87,11 +54,7 @@ export class JobPlugin extends BasePlugin {
|
|
|
87
54
|
};
|
|
88
55
|
}
|
|
89
56
|
validate(metadata) {
|
|
90
|
-
const errors =
|
|
91
|
-
const warnings = [];
|
|
92
|
-
if (!metadata.name) {
|
|
93
|
-
errors.push(validationError('Job must have a name', { line: metadata.line }));
|
|
94
|
-
}
|
|
57
|
+
const { errors, warnings } = this.baseValidation(metadata);
|
|
95
58
|
if (!metadata.metadata.hasExecute) {
|
|
96
59
|
errors.push(validationError('Job must have an execute function', { line: metadata.line }));
|
|
97
60
|
}
|
|
@@ -101,10 +64,6 @@ export class JobPlugin extends BasePlugin {
|
|
|
101
64
|
suggestion: 'Add a schedule: schedule: { type: "cron", expression: "0 9 * * *" }',
|
|
102
65
|
}));
|
|
103
66
|
}
|
|
104
|
-
if (!metadata.description) {
|
|
105
|
-
warnings.push(validationWarning('Job should have a description', { line: metadata.line }));
|
|
106
|
-
}
|
|
107
|
-
// Validate schedule type
|
|
108
67
|
const validScheduleTypes = ['cron', 'interval', 'once'];
|
|
109
68
|
if (metadata.metadata.scheduleType && !validScheduleTypes.includes(metadata.metadata.scheduleType)) {
|
|
110
69
|
errors.push(validationError(`Invalid schedule type: ${metadata.metadata.scheduleType}. Must be one of: ${validScheduleTypes.join(', ')}`, { line: metadata.line }));
|
|
@@ -123,13 +82,8 @@ export class JobPlugin extends BasePlugin {
|
|
|
123
82
|
}
|
|
124
83
|
toManifestEntry(compiled, _context) {
|
|
125
84
|
const jobMeta = compiled.metadata;
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
name: compiled.name,
|
|
129
|
-
description: compiled.description,
|
|
130
|
-
path: `artifacts/${compiled.kind}/${compiled.name}.js`,
|
|
131
|
-
sourcePath: compiled.sourcePath,
|
|
132
|
-
hash: compiled.artifact.hash,
|
|
85
|
+
return {
|
|
86
|
+
...this.baseManifestFields(compiled),
|
|
133
87
|
schedule: jobMeta.scheduleType ? {
|
|
134
88
|
type: jobMeta.scheduleType,
|
|
135
89
|
expression: jobMeta.scheduleExpression,
|
|
@@ -137,7 +91,6 @@ export class JobPlugin extends BasePlugin {
|
|
|
137
91
|
timeout: jobMeta.timeoutValue,
|
|
138
92
|
retry: jobMeta.retryConfig,
|
|
139
93
|
};
|
|
140
|
-
return job;
|
|
141
94
|
}
|
|
142
95
|
}
|
|
143
96
|
//# sourceMappingURL=job.plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job.plugin.js","sourceRoot":"","sources":["../../../src/compiler/plugins/job.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"job.plugin.js","sourceRoot":"","sources":["../../../src/compiler/plugins/job.plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,19 +24,11 @@ export declare class MCPServerPlugin extends BasePlugin<MCPServerMetadataFields>
|
|
|
24
24
|
line: number;
|
|
25
25
|
column: number;
|
|
26
26
|
}, pattern: 'function' | 'class'): MCPServerMetadata | null;
|
|
27
|
-
/**
|
|
28
|
-
* Extract the source text of a resolver function property.
|
|
29
|
-
*/
|
|
30
|
-
private getResolverSource;
|
|
31
27
|
/**
|
|
32
28
|
* Bundle a resolver function into a self-contained, compressed, VM-executable string.
|
|
33
29
|
* This is called during compilation for MCP servers with dynamic resolvers.
|
|
34
30
|
*/
|
|
35
31
|
private bundleResolver;
|
|
36
|
-
/**
|
|
37
|
-
* Check if a property has a resolver function (arrow function or function expression).
|
|
38
|
-
*/
|
|
39
|
-
private hasResolverFunction;
|
|
40
32
|
validate(metadata: MCPServerMetadata): ValidationResult;
|
|
41
33
|
/**
|
|
42
34
|
* Add transport field to the entry point.
|
|
@@ -5,11 +5,10 @@
|
|
|
5
5
|
* 1. Class-based (legacy): new LuaMCPServer({ ... })
|
|
6
6
|
* 2. Function-based (new): const myServer = defineMCPServer({ ... })
|
|
7
7
|
*/
|
|
8
|
-
import { Node } from 'ts-morph';
|
|
9
8
|
import { build } from 'esbuild';
|
|
10
|
-
import {
|
|
11
|
-
import { BasePlugin, validationError
|
|
12
|
-
import { extractStringProperty } from '../utils/ast-helpers.js';
|
|
9
|
+
import { ESBUILD_TARGET, } from '../types.js';
|
|
10
|
+
import { BasePlugin, validationError } from './base.js';
|
|
11
|
+
import { extractStringProperty, extractSchemaProperty, isFunction, extractFunctionProperty } from '../utils/ast-helpers.js';
|
|
13
12
|
import { compressForPush } from '../../utils/artifact-loader.js';
|
|
14
13
|
/**
|
|
15
14
|
* Plugin for compiling MCP server primitives.
|
|
@@ -33,10 +32,19 @@ export class MCPServerPlugin extends BasePlugin {
|
|
|
33
32
|
const transport = extractStringProperty(config, 'transport') || 'streamable-http';
|
|
34
33
|
const url = extractStringProperty(config, 'url');
|
|
35
34
|
// Check for resolver functions and extract their source text
|
|
36
|
-
|
|
37
|
-
const
|
|
38
|
-
const
|
|
39
|
-
const
|
|
35
|
+
// Try both AST extraction (inline functions) and evaluation (variable references)
|
|
36
|
+
const urlProp = extractSchemaProperty(config, 'url');
|
|
37
|
+
const headersProp = extractSchemaProperty(config, 'headers');
|
|
38
|
+
const urlResolverEvaluated = extractFunctionProperty(config, 'url');
|
|
39
|
+
const headersResolverEvaluated = extractFunctionProperty(config, 'headers');
|
|
40
|
+
const hasUrlResolver = (urlProp && isFunction(urlProp)) || urlResolverEvaluated !== undefined;
|
|
41
|
+
const hasHeadersResolver = (headersProp && isFunction(headersProp)) || headersResolverEvaluated !== undefined;
|
|
42
|
+
const urlResolverSource = hasUrlResolver
|
|
43
|
+
? (urlProp && isFunction(urlProp) ? urlProp.getText() : urlResolverEvaluated?.toString())
|
|
44
|
+
: undefined;
|
|
45
|
+
const headersResolverSource = hasHeadersResolver
|
|
46
|
+
? (headersProp && isFunction(headersProp) ? headersProp.getText() : headersResolverEvaluated?.toString())
|
|
47
|
+
: undefined;
|
|
40
48
|
return {
|
|
41
49
|
kind: this.kind,
|
|
42
50
|
...common,
|
|
@@ -51,21 +59,6 @@ export class MCPServerPlugin extends BasePlugin {
|
|
|
51
59
|
},
|
|
52
60
|
};
|
|
53
61
|
}
|
|
54
|
-
/**
|
|
55
|
-
* Extract the source text of a resolver function property.
|
|
56
|
-
*/
|
|
57
|
-
getResolverSource(config, propName) {
|
|
58
|
-
const prop = config.getProperty(propName);
|
|
59
|
-
if (!prop || !Node.isPropertyAssignment(prop))
|
|
60
|
-
return undefined;
|
|
61
|
-
const value = prop.getInitializer();
|
|
62
|
-
if (!value)
|
|
63
|
-
return undefined;
|
|
64
|
-
if (Node.isArrowFunction(value) || Node.isFunctionExpression(value)) {
|
|
65
|
-
return value.getText();
|
|
66
|
-
}
|
|
67
|
-
return undefined;
|
|
68
|
-
}
|
|
69
62
|
/**
|
|
70
63
|
* Bundle a resolver function into a self-contained, compressed, VM-executable string.
|
|
71
64
|
* This is called during compilation for MCP servers with dynamic resolvers.
|
|
@@ -81,7 +74,7 @@ export class MCPServerPlugin extends BasePlugin {
|
|
|
81
74
|
},
|
|
82
75
|
bundle: true,
|
|
83
76
|
platform: 'node',
|
|
84
|
-
target:
|
|
77
|
+
target: ESBUILD_TARGET,
|
|
85
78
|
format: 'cjs',
|
|
86
79
|
minify: true,
|
|
87
80
|
write: false,
|
|
@@ -105,24 +98,8 @@ export class MCPServerPlugin extends BasePlugin {
|
|
|
105
98
|
}
|
|
106
99
|
}
|
|
107
100
|
}
|
|
108
|
-
/**
|
|
109
|
-
* Check if a property has a resolver function (arrow function or function expression).
|
|
110
|
-
*/
|
|
111
|
-
hasResolverFunction(config, propName) {
|
|
112
|
-
const prop = config.getProperty(propName);
|
|
113
|
-
if (!prop || !Node.isPropertyAssignment(prop))
|
|
114
|
-
return false;
|
|
115
|
-
const value = prop.getInitializer();
|
|
116
|
-
if (!value)
|
|
117
|
-
return false;
|
|
118
|
-
return Node.isArrowFunction(value) || Node.isFunctionExpression(value);
|
|
119
|
-
}
|
|
120
101
|
validate(metadata) {
|
|
121
|
-
const errors =
|
|
122
|
-
const warnings = [];
|
|
123
|
-
if (!metadata.name) {
|
|
124
|
-
errors.push(validationError('MCP Server must have a name', { line: metadata.line }));
|
|
125
|
-
}
|
|
102
|
+
const { errors, warnings } = this.baseValidation(metadata);
|
|
126
103
|
const transport = metadata.metadata.transport;
|
|
127
104
|
const validTransports = ['streamable-http', 'sse'];
|
|
128
105
|
if (transport === 'stdio') {
|
|
@@ -138,14 +115,7 @@ export class MCPServerPlugin extends BasePlugin {
|
|
|
138
115
|
if (!metadata.metadata.url && !metadata.metadata.hasUrlResolver) {
|
|
139
116
|
errors.push(validationError('MCP Server must have a url or url resolver', { line: metadata.line }));
|
|
140
117
|
}
|
|
141
|
-
|
|
142
|
-
warnings.push(validationWarning('MCP Server should have a description', { line: metadata.line }));
|
|
143
|
-
}
|
|
144
|
-
return {
|
|
145
|
-
valid: errors.length === 0,
|
|
146
|
-
errors,
|
|
147
|
-
warnings,
|
|
148
|
-
};
|
|
118
|
+
return { valid: errors.length === 0, errors, warnings };
|
|
149
119
|
}
|
|
150
120
|
/**
|
|
151
121
|
* Add transport field to the entry point.
|
|
@@ -169,18 +139,15 @@ export class MCPServerPlugin extends BasePlugin {
|
|
|
169
139
|
if (mcpMeta.headersResolverSource) {
|
|
170
140
|
headersResolver = await this.bundleResolver(mcpMeta.headersResolverSource, 'headers', compiled.name, outDir) ?? undefined;
|
|
171
141
|
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
hash: compiled.artifact.hash,
|
|
179
|
-
config: mcpMeta.config,
|
|
142
|
+
return {
|
|
143
|
+
...this.baseManifestFields(compiled),
|
|
144
|
+
config: {
|
|
145
|
+
transport: mcpMeta.transport,
|
|
146
|
+
url: mcpMeta.url,
|
|
147
|
+
},
|
|
180
148
|
urlResolver,
|
|
181
149
|
headersResolver,
|
|
182
150
|
};
|
|
183
|
-
return mcpServer;
|
|
184
151
|
}
|
|
185
152
|
}
|
|
186
153
|
//# sourceMappingURL=mcp-server.plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.plugin.js","sourceRoot":"","sources":["../../../src/compiler/plugins/mcp-server.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"mcp-server.plugin.js","sourceRoot":"","sources":["../../../src/compiler/plugins/mcp-server.plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* Extends ProcessorPluginBase for shared validation and runtime checks.
|
|
5
5
|
* Minimal — just config fields and manifest entry.
|
|
6
6
|
*/
|
|
7
|
-
import { PrimitiveKind, } from '../types.js';
|
|
8
7
|
import { ProcessorPluginBase } from './processor-base.js';
|
|
9
8
|
export class PostProcessorPlugin extends ProcessorPluginBase {
|
|
10
9
|
constructor() {
|
|
@@ -25,15 +24,7 @@ export class PostProcessorPlugin extends ProcessorPluginBase {
|
|
|
25
24
|
};
|
|
26
25
|
}
|
|
27
26
|
toManifestEntry(compiled, _context) {
|
|
28
|
-
|
|
29
|
-
kind: PrimitiveKind.POSTPROCESSOR,
|
|
30
|
-
name: compiled.name,
|
|
31
|
-
description: compiled.description,
|
|
32
|
-
path: `artifacts/${compiled.kind}/${compiled.name}.js`,
|
|
33
|
-
sourcePath: compiled.sourcePath,
|
|
34
|
-
hash: compiled.artifact.hash,
|
|
35
|
-
};
|
|
36
|
-
return postprocessor;
|
|
27
|
+
return { ...this.baseManifestFields(compiled) };
|
|
37
28
|
}
|
|
38
29
|
}
|
|
39
30
|
//# sourceMappingURL=postprocessor.plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postprocessor.plugin.js","sourceRoot":"","sources":["../../../src/compiler/plugins/postprocessor.plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"postprocessor.plugin.js","sourceRoot":"","sources":["../../../src/compiler/plugins/postprocessor.plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,OAAO,mBAAoB,SAAQ,mBAAgD;IAAzF;;QACW,SAAI,GAAG,eAAe,CAAC;QACvB,gBAAW,GAAG,eAAe,CAAC;QAC9B,mBAAc,GAAG,qBAAqB,CAAC;QACvC,qBAAgB,GAAG,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;IAsBpE,CAAC;IApBW,iBAAiB,CACzB,MAA+B,EAC/B,UAAkB,EAClB,UAAkB,EAClB,QAA0C,EAC1C,OAA6B;QAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClF,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,MAAM;YACT,QAAQ,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE;SAC/E,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,QAA2B,EAAE,QAA0B;QACrE,OAAO,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAA2B,CAAC;IAC3E,CAAC;CACF"}
|
|
@@ -4,9 +4,8 @@
|
|
|
4
4
|
* Extends ProcessorPluginBase for shared validation and runtime checks.
|
|
5
5
|
* Only adds: isAsync extraction + isAsync in manifest entry.
|
|
6
6
|
*/
|
|
7
|
-
import { Node, SyntaxKind } from 'ts-morph';
|
|
8
|
-
import { PrimitiveKind, } from '../types.js';
|
|
9
7
|
import { ProcessorPluginBase } from './processor-base.js';
|
|
8
|
+
import { extractBooleanProperty } from '../utils/ast-helpers.js';
|
|
10
9
|
export class PreProcessorPlugin extends ProcessorPluginBase {
|
|
11
10
|
constructor() {
|
|
12
11
|
super(...arguments);
|
|
@@ -19,13 +18,7 @@ export class PreProcessorPlugin extends ProcessorPluginBase {
|
|
|
19
18
|
const common = this.extractCommonFields(config, exportName, sourcePath, position);
|
|
20
19
|
if (!common)
|
|
21
20
|
return null;
|
|
22
|
-
|
|
23
|
-
const asyncProp = config.getProperty('async');
|
|
24
|
-
if (asyncProp && Node.isPropertyAssignment(asyncProp)) {
|
|
25
|
-
const init = asyncProp.getInitializer();
|
|
26
|
-
if (init)
|
|
27
|
-
isAsync = init.getKind() === SyntaxKind.TrueKeyword;
|
|
28
|
-
}
|
|
21
|
+
const isAsync = extractBooleanProperty(config, 'async') ?? false;
|
|
29
22
|
return {
|
|
30
23
|
kind: this.kind,
|
|
31
24
|
...common,
|
|
@@ -33,16 +26,10 @@ export class PreProcessorPlugin extends ProcessorPluginBase {
|
|
|
33
26
|
};
|
|
34
27
|
}
|
|
35
28
|
toManifestEntry(compiled, _context) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
name: compiled.name,
|
|
39
|
-
description: compiled.description,
|
|
40
|
-
path: `artifacts/${compiled.kind}/${compiled.name}.js`,
|
|
41
|
-
sourcePath: compiled.sourcePath,
|
|
42
|
-
hash: compiled.artifact.hash,
|
|
29
|
+
return {
|
|
30
|
+
...this.baseManifestFields(compiled),
|
|
43
31
|
isAsync: compiled.metadata?.isAsync ?? false,
|
|
44
32
|
};
|
|
45
|
-
return preprocessor;
|
|
46
33
|
}
|
|
47
34
|
}
|
|
48
35
|
//# sourceMappingURL=preprocessor.plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preprocessor.plugin.js","sourceRoot":"","sources":["../../../src/compiler/plugins/preprocessor.plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"preprocessor.plugin.js","sourceRoot":"","sources":["../../../src/compiler/plugins/preprocessor.plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,OAAO,kBAAmB,SAAQ,mBAA+C;IAAvF;;QACW,SAAI,GAAG,cAAc,CAAC;QACtB,gBAAW,GAAG,cAAc,CAAC;QAC7B,mBAAc,GAAG,oBAAoB,CAAC;QACtC,qBAAgB,GAAG,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IA2BlE,CAAC;IAzBW,iBAAiB,CACzB,MAA+B,EAC/B,UAAkB,EAClB,UAAkB,EAClB,QAA0C,EAC1C,OAA6B;QAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClF,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC;QAEjE,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,MAAM;YACT,QAAQ,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,OAAO,EAAE;SACxF,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,QAA2B,EAAE,QAA0B;QACrE,OAAO;YACL,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;YACpC,OAAO,EAAG,QAAQ,CAAC,QAAuC,EAAE,OAAO,IAAI,KAAK;SACrD,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -8,20 +8,13 @@
|
|
|
8
8
|
* - extractFromConfig() (preprocessor extracts isAsync, postprocessor doesn't)
|
|
9
9
|
* - toManifestEntry() (preprocessor includes isAsync field)
|
|
10
10
|
*/
|
|
11
|
-
import { BasePlugin, validationError
|
|
11
|
+
import { BasePlugin, validationError } from './base.js';
|
|
12
12
|
export class ProcessorPluginBase extends BasePlugin {
|
|
13
13
|
validate(metadata) {
|
|
14
|
-
const errors =
|
|
15
|
-
const warnings = [];
|
|
16
|
-
if (!metadata.name) {
|
|
17
|
-
errors.push(validationError(`${this.displayName} must have a name`, { line: metadata.line }));
|
|
18
|
-
}
|
|
14
|
+
const { errors, warnings } = this.baseValidation(metadata);
|
|
19
15
|
if (!metadata.metadata?.hasExecute) {
|
|
20
16
|
errors.push(validationError(`${this.displayName} must have an execute function`, { line: metadata.line }));
|
|
21
17
|
}
|
|
22
|
-
if (!metadata.description) {
|
|
23
|
-
warnings.push(validationWarning(`${this.displayName} should have a description`, { line: metadata.line }));
|
|
24
|
-
}
|
|
25
18
|
return { valid: errors.length === 0, errors, warnings };
|
|
26
19
|
}
|
|
27
20
|
getRuntimeValidation() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor-base.js","sourceRoot":"","sources":["../../../src/compiler/plugins/processor-base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"processor-base.js","sourceRoot":"","sources":["../../../src/compiler/plugins/processor-base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,OAAgB,mBAAuD,SAAQ,UAAa;IAChG,QAAQ,CAAC,QAA8B;QACrC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAE3D,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,WAAW,gCAAgC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7G,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC1D,CAAC;IAES,oBAAoB;QAC5B,OAAO;;qCAE0B,IAAI,CAAC,IAAI;IAC1C,CAAC;IACH,CAAC;CACF"}
|