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.
Files changed (93) hide show
  1. package/dist/api/http.client.js +5 -1
  2. package/dist/api/http.client.js.map +1 -1
  3. package/dist/commands/compile.d.ts +0 -1
  4. package/dist/commands/compile.js +14 -10
  5. package/dist/commands/compile.js.map +1 -1
  6. package/dist/commands/integrations.js +1 -1
  7. package/dist/commands/integrations.js.map +1 -1
  8. package/dist/commands/push.js +79 -6
  9. package/dist/commands/push.js.map +1 -1
  10. package/dist/commands/sync.js +9 -5
  11. package/dist/commands/sync.js.map +1 -1
  12. package/dist/compiler/agent-traverser.d.ts +1 -0
  13. package/dist/compiler/agent-traverser.js +11 -4
  14. package/dist/compiler/agent-traverser.js.map +1 -1
  15. package/dist/compiler/bundler.d.ts +1 -1
  16. package/dist/compiler/bundler.js +2 -1
  17. package/dist/compiler/bundler.js.map +1 -1
  18. package/dist/compiler/compiler.js +3 -2
  19. package/dist/compiler/compiler.js.map +1 -1
  20. package/dist/compiler/index.d.ts +1 -1
  21. package/dist/compiler/index.js +1 -1
  22. package/dist/compiler/index.js.map +1 -1
  23. package/dist/compiler/plugins/base.d.ts +21 -1
  24. package/dist/compiler/plugins/base.js +37 -1
  25. package/dist/compiler/plugins/base.js.map +1 -1
  26. package/dist/compiler/plugins/job.plugin.js +17 -64
  27. package/dist/compiler/plugins/job.plugin.js.map +1 -1
  28. package/dist/compiler/plugins/mcp-server.plugin.d.ts +0 -8
  29. package/dist/compiler/plugins/mcp-server.plugin.js +25 -58
  30. package/dist/compiler/plugins/mcp-server.plugin.js.map +1 -1
  31. package/dist/compiler/plugins/postprocessor.plugin.js +1 -10
  32. package/dist/compiler/plugins/postprocessor.plugin.js.map +1 -1
  33. package/dist/compiler/plugins/preprocessor.plugin.js +4 -17
  34. package/dist/compiler/plugins/preprocessor.plugin.js.map +1 -1
  35. package/dist/compiler/plugins/processor-base.js +2 -9
  36. package/dist/compiler/plugins/processor-base.js.map +1 -1
  37. package/dist/compiler/plugins/skill.plugin.js +37 -32
  38. package/dist/compiler/plugins/skill.plugin.js.map +1 -1
  39. package/dist/compiler/plugins/tool.plugin.d.ts +1 -0
  40. package/dist/compiler/plugins/tool.plugin.js +9 -30
  41. package/dist/compiler/plugins/tool.plugin.js.map +1 -1
  42. package/dist/compiler/plugins/webhook.plugin.js +11 -23
  43. package/dist/compiler/plugins/webhook.plugin.js.map +1 -1
  44. package/dist/compiler/types.d.ts +5 -0
  45. package/dist/compiler/types.js +7 -0
  46. package/dist/compiler/types.js.map +1 -1
  47. package/dist/compiler/utils/ast-helpers.d.ts +69 -17
  48. package/dist/compiler/utils/ast-helpers.js +250 -61
  49. package/dist/compiler/utils/ast-helpers.js.map +1 -1
  50. package/dist/config/compile.constants.d.ts +26 -0
  51. package/dist/config/compile.constants.js +44 -0
  52. package/dist/config/compile.constants.js.map +1 -1
  53. package/dist/primitives/base.handler.d.ts +45 -6
  54. package/dist/primitives/base.handler.js +121 -17
  55. package/dist/primitives/base.handler.js.map +1 -1
  56. package/dist/primitives/index.d.ts +4 -5
  57. package/dist/primitives/index.js +7 -17
  58. package/dist/primitives/index.js.map +1 -1
  59. package/dist/primitives/job.handler.d.ts +0 -5
  60. package/dist/primitives/job.handler.js +1 -15
  61. package/dist/primitives/job.handler.js.map +1 -1
  62. package/dist/primitives/mcp-server.handler.d.ts +1 -1
  63. package/dist/primitives/mcp-server.handler.js +15 -6
  64. package/dist/primitives/mcp-server.handler.js.map +1 -1
  65. package/dist/primitives/postprocessor.handler.d.ts +0 -11
  66. package/dist/primitives/postprocessor.handler.js +1 -24
  67. package/dist/primitives/postprocessor.handler.js.map +1 -1
  68. package/dist/primitives/preprocessor.handler.d.ts +0 -11
  69. package/dist/primitives/preprocessor.handler.js +1 -24
  70. package/dist/primitives/preprocessor.handler.js.map +1 -1
  71. package/dist/primitives/skill.handler.d.ts +3 -1
  72. package/dist/primitives/skill.handler.js +10 -29
  73. package/dist/primitives/skill.handler.js.map +1 -1
  74. package/dist/primitives/types.d.ts +18 -0
  75. package/dist/primitives/types.js.map +1 -1
  76. package/dist/primitives/webhook.handler.d.ts +0 -5
  77. package/dist/primitives/webhook.handler.js +1 -15
  78. package/dist/primitives/webhook.handler.js.map +1 -1
  79. package/dist/utils/cli.js +3 -3
  80. package/dist/utils/cli.js.map +1 -1
  81. package/dist/utils/command-utils.d.ts +12 -10
  82. package/dist/utils/command-utils.js +19 -17
  83. package/dist/utils/command-utils.js.map +1 -1
  84. package/dist/utils/files.d.ts +10 -0
  85. package/dist/utils/files.js +34 -0
  86. package/dist/utils/files.js.map +1 -1
  87. package/dist/utils/sandbox.js +3 -20
  88. package/dist/utils/sandbox.js.map +1 -1
  89. package/dist/web/app.css +186 -912
  90. package/dist/web/app.js +46 -46
  91. package/docs/README.md +3 -3
  92. package/package.json +1 -1
  93. 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,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"}
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 { PrimitiveMetadata, CommonExtractedFields, ValidationResult, ValidationMessage, SchemaSet, BundledArtifact, CompiledPrimitive, ManifestPrimitive, ManifestContext, BaseMetadataFields } from '../types.js';
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: '2.0.0',
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":"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"}
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 { Node } from 'ts-morph';
9
- import { PrimitiveKind, } from '../types.js';
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 scheduleNode = config.getProperty('schedule');
33
- let scheduleType;
34
- let scheduleExpression;
35
- if (scheduleNode && Node.isPropertyAssignment(scheduleNode)) {
36
- const scheduleValue = scheduleNode.getInitializer();
37
- if (scheduleValue && Node.isObjectLiteralExpression(scheduleValue)) {
38
- scheduleType = extractStringProperty(scheduleValue, 'type');
39
- scheduleExpression = extractStringProperty(scheduleValue, 'expression');
40
- }
41
- }
42
- // Extract timeout value
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
- const job = {
127
- kind: PrimitiveKind.JOB,
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":"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"}
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 { PrimitiveKind, } from '../types.js';
11
- import { BasePlugin, validationError, validationWarning } from './base.js';
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
- const hasUrlResolver = this.hasResolverFunction(config, 'url');
37
- const hasHeadersResolver = this.hasResolverFunction(config, 'headers');
38
- const urlResolverSource = hasUrlResolver ? this.getResolverSource(config, 'url') : undefined;
39
- const headersResolverSource = hasHeadersResolver ? this.getResolverSource(config, 'headers') : undefined;
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: 'node18',
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
- if (!metadata.description) {
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
- const mcpServer = {
173
- kind: PrimitiveKind.MCP_SERVER,
174
- name: compiled.name,
175
- description: compiled.description,
176
- path: `artifacts/${compiled.kind}/${compiled.name}.js`,
177
- sourcePath: compiled.sourcePath,
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":"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"}
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
- const postprocessor = {
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;AAGH,OAAO,EACL,aAAa,GAOd,MAAM,aAAa,CAAC;AACrB,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;IA8BpE,CAAC;IA5BW,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,MAAM,aAAa,GAA0B;YAC3C,IAAI,EAAE,aAAa,CAAC,aAAa;YACjC,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,IAAI,EAAE,aAAa,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK;YACtD,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;SAC7B,CAAC;QACF,OAAO,aAAa,CAAC;IACvB,CAAC;CACF"}
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
- let isAsync = false;
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
- const preprocessor = {
37
- kind: PrimitiveKind.PREPROCESSOR,
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;AAEH,OAAO,EAA2B,IAAI,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EACL,aAAa,GAOd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,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;IAsClE,CAAC;IApCW,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,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,SAAS,IAAI,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC;YACxC,IAAI,IAAI;gBAAE,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,WAAW,CAAC;QAChE,CAAC;QAED,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,MAAM,YAAY,GAAyB;YACzC,IAAI,EAAE,aAAa,CAAC,YAAY;YAChC,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,IAAI,EAAE,aAAa,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK;YACtD,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;YAC5B,OAAO,EAAG,QAAQ,CAAC,QAAuC,EAAE,OAAO,IAAI,KAAK;SAC7E,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;CACF"}
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, validationWarning } from './base.js';
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,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE3E,MAAM,OAAgB,mBAAuD,SAAQ,UAAa;IAChG,QAAQ,CAAC,QAA8B;QACrC,MAAM,MAAM,GAA+B,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAiC,EAAE,CAAC;QAElD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,WAAW,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChG,CAAC;QAED,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,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,WAAW,4BAA4B,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"}
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"}