lua-cli 3.2.0-alpha.2 → 3.3.0
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/agent.api.service.js +1 -0
- package/dist/api/agent.api.service.js.map +1 -0
- package/dist/api/auth.api.service.js +1 -0
- package/dist/api/auth.api.service.js.map +1 -0
- package/dist/api/basket.api.service.js +1 -0
- package/dist/api/basket.api.service.js.map +1 -0
- package/dist/api/cdn.api.service.js +1 -0
- package/dist/api/cdn.api.service.js.map +1 -0
- package/dist/api/chat.api.service.js +1 -0
- package/dist/api/chat.api.service.js.map +1 -0
- package/dist/api/credentials.js +1 -0
- package/dist/api/credentials.js.map +1 -0
- package/dist/api/custom.data.api.service.js +1 -0
- package/dist/api/custom.data.api.service.js.map +1 -0
- package/dist/api/developer.api.service.js +1 -0
- package/dist/api/developer.api.service.js.map +1 -0
- package/dist/api/job.api.service.js +1 -0
- package/dist/api/job.api.service.js.map +1 -0
- package/dist/api/lazy-instances.js +1 -0
- package/dist/api/lazy-instances.js.map +1 -0
- package/dist/api/logs.api.service.d.ts +1 -1
- package/dist/api/logs.api.service.js +1 -0
- package/dist/api/logs.api.service.js.map +1 -0
- package/dist/api/marketplace.api.service.js +1 -0
- package/dist/api/marketplace.api.service.js.map +1 -0
- package/dist/api/order.api.service.js +1 -0
- package/dist/api/order.api.service.js.map +1 -0
- package/dist/api/persona.api.service.js +1 -0
- package/dist/api/persona.api.service.js.map +1 -0
- package/dist/api/postprocessor.api.service.js +1 -0
- package/dist/api/postprocessor.api.service.js.map +1 -0
- package/dist/api/preprocessor.api.service.js +1 -0
- package/dist/api/preprocessor.api.service.js.map +1 -0
- package/dist/api/products.api.service.d.ts +17 -5
- package/dist/api/products.api.service.js +22 -9
- package/dist/api/products.api.service.js.map +1 -0
- package/dist/api/skills.api.service.js +1 -0
- package/dist/api/skills.api.service.js.map +1 -0
- package/dist/api/tool.api.service.js +1 -0
- package/dist/api/tool.api.service.js.map +1 -0
- package/dist/api/user.data.api.service.js +1 -0
- package/dist/api/user.data.api.service.js.map +1 -0
- package/dist/api/webhook.api.service.js +1 -0
- package/dist/api/webhook.api.service.js.map +1 -0
- package/dist/api/whatsapp-templates.api.service.js +1 -0
- package/dist/api/whatsapp-templates.api.service.js.map +1 -0
- package/dist/api-exports.d.ts +23 -6
- package/dist/api-exports.js +27 -5
- package/dist/api-exports.js.map +1 -0
- package/dist/cli/command-definitions.js +321 -88
- package/dist/cli/command-definitions.js.map +1 -0
- package/dist/commands/admin.js +1 -0
- package/dist/commands/admin.js.map +1 -0
- package/dist/commands/agents.js +1 -0
- package/dist/commands/agents.js.map +1 -0
- package/dist/commands/apiKey.d.ts +5 -2
- package/dist/commands/apiKey.js +9 -2
- package/dist/commands/apiKey.js.map +1 -0
- package/dist/commands/channels.d.ts +4 -9
- package/dist/commands/channels.js +141 -84
- package/dist/commands/channels.js.map +1 -0
- package/dist/commands/chat.d.ts +4 -2
- package/dist/commands/chat.js +127 -32
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/chatClear.d.ts +3 -2
- package/dist/commands/chatClear.js +17 -15
- package/dist/commands/chatClear.js.map +1 -0
- package/dist/commands/compile.js +68 -4
- package/dist/commands/compile.js.map +1 -0
- package/dist/commands/completion.js +1 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/configure.js +1 -0
- package/dist/commands/configure.js.map +1 -0
- package/dist/commands/deploy.d.ts +5 -24
- package/dist/commands/deploy.js +76 -48
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/destroy.d.ts +5 -2
- package/dist/commands/destroy.js +15 -2
- package/dist/commands/destroy.js.map +1 -0
- package/dist/commands/dev.js +1 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/docs.js +1 -0
- package/dist/commands/docs.js.map +1 -0
- package/dist/commands/env.d.ts +3 -1
- package/dist/commands/env.js +323 -122
- package/dist/commands/env.js.map +1 -0
- package/dist/commands/evals.js +1 -0
- package/dist/commands/evals.js.map +1 -0
- package/dist/commands/features.d.ts +5 -9
- package/dist/commands/features.js +250 -129
- package/dist/commands/features.js.map +1 -0
- package/dist/commands/index.js +1 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +7 -1
- package/dist/commands/init.js +252 -65
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/jobs.d.ts +5 -13
- package/dist/commands/jobs.js +450 -364
- package/dist/commands/jobs.js.map +1 -0
- package/dist/commands/logs.d.ts +5 -10
- package/dist/commands/logs.js +260 -103
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/marketplace.d.ts +23 -2
- package/dist/commands/marketplace.js +531 -7
- package/dist/commands/marketplace.js.map +1 -0
- package/dist/commands/mcp.d.ts +5 -11
- package/dist/commands/mcp.js +304 -288
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/persona.d.ts +5 -9
- package/dist/commands/persona.js +350 -232
- package/dist/commands/persona.js.map +1 -0
- package/dist/commands/postprocessors.d.ts +6 -2
- package/dist/commands/postprocessors.js +388 -280
- package/dist/commands/postprocessors.js.map +1 -0
- package/dist/commands/preprocessors.d.ts +6 -2
- package/dist/commands/preprocessors.js +388 -280
- package/dist/commands/preprocessors.js.map +1 -0
- package/dist/commands/production.d.ts +5 -8
- package/dist/commands/production.js +318 -228
- package/dist/commands/production.js.map +1 -0
- package/dist/commands/push.js +386 -427
- package/dist/commands/push.js.map +1 -0
- package/dist/commands/resources.d.ts +5 -10
- package/dist/commands/resources.js +220 -154
- package/dist/commands/resources.js.map +1 -0
- package/dist/commands/skills.d.ts +5 -9
- package/dist/commands/skills.js +355 -278
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/sync.d.ts +10 -8
- package/dist/commands/sync.js +111 -19
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/test.d.ts +1 -11
- package/dist/commands/test.js +396 -438
- package/dist/commands/test.js.map +1 -0
- package/dist/commands/webhooks.d.ts +5 -11
- package/dist/commands/webhooks.js +357 -290
- package/dist/commands/webhooks.js.map +1 -0
- package/dist/common/basket.instance.js +1 -0
- package/dist/common/basket.instance.js.map +1 -0
- package/dist/common/data.entry.instance.js +1 -0
- package/dist/common/data.entry.instance.js.map +1 -0
- package/dist/common/http.client.js +1 -0
- package/dist/common/http.client.js.map +1 -0
- package/dist/common/job.instance.js +1 -0
- package/dist/common/job.instance.js.map +1 -0
- package/dist/common/order.instance.js +1 -0
- package/dist/common/order.instance.js.map +1 -0
- package/dist/common/product.instance.js +1 -0
- package/dist/common/product.instance.js.map +1 -0
- package/dist/common/product.pagination.instance.js +1 -0
- package/dist/common/product.pagination.instance.js.map +1 -0
- package/dist/common/product.search.instance.js +1 -0
- package/dist/common/product.search.instance.js.map +1 -0
- package/dist/common/user.instance.js +1 -0
- package/dist/common/user.instance.js.map +1 -0
- package/dist/config/auth.constants.js +1 -0
- package/dist/config/auth.constants.js.map +1 -0
- package/dist/config/compile.constants.js +1 -0
- package/dist/config/compile.constants.js.map +1 -0
- package/dist/config/constants.js +1 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/config/dev.constants.js +1 -0
- package/dist/config/dev.constants.js.map +1 -0
- package/dist/config/init.constants.d.ts +0 -8
- package/dist/config/init.constants.js +1 -24
- package/dist/config/init.constants.js.map +1 -0
- package/dist/errors/auth.error.js +1 -0
- package/dist/errors/auth.error.js.map +1 -0
- package/dist/errors/index.js +1 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/admin.js +1 -0
- package/dist/interfaces/admin.js.map +1 -0
- package/dist/interfaces/agent.d.ts +2 -27
- package/dist/interfaces/agent.js +1 -0
- package/dist/interfaces/agent.js.map +1 -0
- package/dist/interfaces/baskets.js +1 -0
- package/dist/interfaces/baskets.js.map +1 -0
- package/dist/interfaces/cdn.js +1 -0
- package/dist/interfaces/cdn.js.map +1 -0
- package/dist/interfaces/chat.js +1 -0
- package/dist/interfaces/chat.js.map +1 -0
- package/dist/interfaces/common.js +1 -0
- package/dist/interfaces/common.js.map +1 -0
- package/dist/interfaces/compile.js +1 -0
- package/dist/interfaces/compile.js.map +1 -0
- package/dist/interfaces/custom.data.js +1 -0
- package/dist/interfaces/custom.data.js.map +1 -0
- package/dist/interfaces/deploy.js +1 -0
- package/dist/interfaces/deploy.js.map +1 -0
- package/dist/interfaces/dev.js +1 -0
- package/dist/interfaces/dev.js.map +1 -0
- package/dist/interfaces/index.js +1 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/interfaces/init.d.ts +0 -19
- package/dist/interfaces/init.js +1 -0
- package/dist/interfaces/init.js.map +1 -0
- package/dist/interfaces/jobs.js +1 -0
- package/dist/interfaces/jobs.js.map +1 -0
- package/dist/interfaces/logs.js +1 -0
- package/dist/interfaces/logs.js.map +1 -0
- package/dist/interfaces/lua.d.ts +11 -1
- package/dist/interfaces/lua.js +1 -0
- package/dist/interfaces/lua.js.map +1 -0
- package/dist/interfaces/marketplace.js +1 -0
- package/dist/interfaces/marketplace.js.map +1 -0
- package/dist/interfaces/mcp.d.ts +28 -1
- package/dist/interfaces/mcp.js +1 -0
- package/dist/interfaces/mcp.js.map +1 -0
- package/dist/interfaces/message.js +1 -0
- package/dist/interfaces/message.js.map +1 -0
- package/dist/interfaces/orders.js +1 -0
- package/dist/interfaces/orders.js.map +1 -0
- package/dist/interfaces/persona.js +1 -0
- package/dist/interfaces/persona.js.map +1 -0
- package/dist/interfaces/postprocessors.js +1 -0
- package/dist/interfaces/postprocessors.js.map +1 -0
- package/dist/interfaces/preprocessors.js +1 -0
- package/dist/interfaces/preprocessors.js.map +1 -0
- package/dist/interfaces/product.d.ts +26 -0
- package/dist/interfaces/product.js +1 -0
- package/dist/interfaces/product.js.map +1 -0
- package/dist/interfaces/push.js +1 -0
- package/dist/interfaces/push.js.map +1 -0
- package/dist/interfaces/skills.js +1 -0
- package/dist/interfaces/skills.js.map +1 -0
- package/dist/interfaces/test.js +1 -0
- package/dist/interfaces/test.js.map +1 -0
- package/dist/interfaces/user.js +1 -0
- package/dist/interfaces/user.js.map +1 -0
- package/dist/interfaces/webhooks.js +1 -0
- package/dist/interfaces/webhooks.js.map +1 -0
- package/dist/interfaces/whatsapp-templates.js +1 -0
- package/dist/interfaces/whatsapp-templates.js.map +1 -0
- package/dist/services/auth.js +1 -0
- package/dist/services/auth.js.map +1 -0
- package/dist/types/api-contracts.d.ts +8 -4
- package/dist/types/api-contracts.js +1 -0
- package/dist/types/api-contracts.js.map +1 -0
- package/dist/types/compile.types.js +1 -0
- package/dist/types/compile.types.js.map +1 -0
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/skill.d.ts +92 -17
- package/dist/types/skill.js +16 -11
- package/dist/types/skill.js.map +1 -0
- package/dist/types/tool-validation.js +1 -0
- package/dist/types/tool-validation.js.map +1 -0
- package/dist/utils/agent-code-utils.d.ts +2 -1
- package/dist/utils/agent-code-utils.js +14 -3
- package/dist/utils/agent-code-utils.js.map +1 -0
- package/dist/utils/auth-flows.js +1 -0
- package/dist/utils/auth-flows.js.map +1 -0
- package/dist/utils/bundling.d.ts +17 -0
- package/dist/utils/bundling.js +146 -12
- package/dist/utils/bundling.js.map +1 -0
- package/dist/utils/cli.js +1 -0
- package/dist/utils/cli.js.map +1 -0
- package/dist/utils/compile.d.ts +5 -0
- package/dist/utils/compile.js +154 -15
- package/dist/utils/compile.js.map +1 -0
- package/dist/utils/deploy-api.js +1 -0
- package/dist/utils/deploy-api.js.map +1 -0
- package/dist/utils/deploy-helpers.js +1 -0
- package/dist/utils/deploy-helpers.js.map +1 -0
- package/dist/utils/deployment.js +1 -0
- package/dist/utils/deployment.js.map +1 -0
- package/dist/utils/dev-api.js +1 -0
- package/dist/utils/dev-api.js.map +1 -0
- package/dist/utils/dev-helpers.d.ts +3 -2
- package/dist/utils/dev-helpers.js +4 -5
- package/dist/utils/dev-helpers.js.map +1 -0
- package/dist/utils/dev-server.js +1 -0
- package/dist/utils/dev-server.js.map +1 -0
- package/dist/utils/dev-watcher.js +1 -0
- package/dist/utils/dev-watcher.js.map +1 -0
- package/dist/utils/env-loader.utils.js +1 -0
- package/dist/utils/env-loader.utils.js.map +1 -0
- package/dist/utils/files.js +1 -0
- package/dist/utils/files.js.map +1 -0
- package/dist/utils/init-agent.d.ts +4 -4
- package/dist/utils/init-agent.js +12 -14
- package/dist/utils/init-agent.js.map +1 -0
- package/dist/utils/init-helpers.js +1 -0
- package/dist/utils/init-helpers.js.map +1 -0
- package/dist/utils/init-prompts.d.ts +10 -6
- package/dist/utils/init-prompts.js +41 -75
- package/dist/utils/init-prompts.js.map +1 -0
- package/dist/utils/job-management.js +1 -0
- package/dist/utils/job-management.js.map +1 -0
- package/dist/utils/mcp-server-management.d.ts +1 -1
- package/dist/utils/mcp-server-management.js +14 -14
- package/dist/utils/mcp-server-management.js.map +1 -0
- package/dist/utils/postprocessor-management.js +1 -0
- package/dist/utils/postprocessor-management.js.map +1 -0
- package/dist/utils/pre-bundle-jobs.js +1 -0
- package/dist/utils/pre-bundle-jobs.js.map +1 -0
- package/dist/utils/preprocessor-management.js +1 -0
- package/dist/utils/preprocessor-management.js.map +1 -0
- package/dist/utils/prompt-handler.js +1 -0
- package/dist/utils/prompt-handler.js.map +1 -0
- package/dist/utils/push-api.js +1 -0
- package/dist/utils/push-api.js.map +1 -0
- package/dist/utils/push-helpers.js +1 -0
- package/dist/utils/push-helpers.js.map +1 -0
- package/dist/utils/sandbox-storage.js +1 -0
- package/dist/utils/sandbox-storage.js.map +1 -0
- package/dist/utils/sandbox.d.ts +1 -0
- package/dist/utils/sandbox.js +2 -0
- package/dist/utils/sandbox.js.map +1 -0
- package/dist/utils/semver.js +1 -0
- package/dist/utils/semver.js.map +1 -0
- package/dist/utils/skill-management.js +1 -0
- package/dist/utils/skill-management.js.map +1 -0
- package/dist/utils/sync-helpers.js +23 -4
- package/dist/utils/sync-helpers.js.map +1 -0
- package/dist/utils/test-helpers.js +1 -0
- package/dist/utils/test-helpers.js.map +1 -0
- package/dist/utils/test-prompts.js +1 -0
- package/dist/utils/test-prompts.js.map +1 -0
- package/dist/utils/tool-detection.js +1 -0
- package/dist/utils/tool-detection.js.map +1 -0
- package/dist/utils/webhook-management.js +1 -0
- package/dist/utils/webhook-management.js.map +1 -0
- package/package.json +2 -1
- package/template/package.json +1 -1
package/dist/utils/bundling.js
CHANGED
|
@@ -9,6 +9,8 @@ import { Project, Node } from "ts-morph";
|
|
|
9
9
|
import { writeProgress } from "./cli.js";
|
|
10
10
|
import { COMPILE_DIRS, COMPILE_FILES, ESBUILD_TOOL_CONFIG, ESBUILD_INDEX_CONFIG, DEFAULT_INPUT_SCHEMA, EXTERNAL_PACKAGES, } from '../config/compile.constants.js';
|
|
11
11
|
import { wrapExecuteForVM, wrapConditionForVM, evaluateZodSchemaToJsonSchema } from './compile.js';
|
|
12
|
+
import { evaluate } from 'ts-evaluator';
|
|
13
|
+
import ts from 'typescript';
|
|
12
14
|
/**
|
|
13
15
|
* Helper function to remove lua-cli and api-exports imports from source code.
|
|
14
16
|
* Used when bundling via stdin or temp files where the plugin can't process them.
|
|
@@ -890,7 +892,7 @@ export async function extractToolCode(tool, project) {
|
|
|
890
892
|
tool.conditionCode = wrapConditionForVM(rawBundledCode, tool.className);
|
|
891
893
|
}
|
|
892
894
|
}
|
|
893
|
-
// Extract
|
|
895
|
+
// Extract input schema using ts-evaluator (resolves all imports/expressions automatically)
|
|
894
896
|
tool.inputSchema = await extractInputSchema(classDecl, tool);
|
|
895
897
|
}
|
|
896
898
|
catch (error) {
|
|
@@ -908,27 +910,159 @@ function readBundledToolCode(tool) {
|
|
|
908
910
|
return undefined;
|
|
909
911
|
}
|
|
910
912
|
/**
|
|
911
|
-
* Extracts and converts the input schema from a tool class.
|
|
912
|
-
*
|
|
913
|
+
* Extracts and converts the input schema from a tool class using ts-evaluator.
|
|
914
|
+
* This evaluates the actual TypeScript AST node, resolving all imports and expressions.
|
|
913
915
|
*
|
|
914
916
|
* @param classDecl - The tool class declaration from ts-morph
|
|
915
|
-
* @param tool - The tool being analyzed
|
|
917
|
+
* @param tool - The tool being analyzed
|
|
916
918
|
* @returns The JSON Schema object or default schema
|
|
917
919
|
*/
|
|
918
920
|
async function extractInputSchema(classDecl, tool) {
|
|
919
921
|
const inputSchemaProperty = classDecl.getProperty('inputSchema');
|
|
920
|
-
if (inputSchemaProperty
|
|
922
|
+
if (!inputSchemaProperty?.getInitializer()) {
|
|
923
|
+
return DEFAULT_INPUT_SCHEMA;
|
|
924
|
+
}
|
|
925
|
+
try {
|
|
921
926
|
const initializer = inputSchemaProperty.getInitializer();
|
|
922
|
-
|
|
927
|
+
const sourceFile = initializer.getSourceFile();
|
|
928
|
+
const project = sourceFile.getProject();
|
|
929
|
+
// Get the underlying TypeScript compiler objects for ts-evaluator
|
|
930
|
+
const tsNode = initializer.compilerNode;
|
|
931
|
+
const typeChecker = project.getTypeChecker().compilerObject;
|
|
932
|
+
const compilerOptions = project.getCompilerOptions();
|
|
933
|
+
// Get zod from node_modules to provide as extra global
|
|
934
|
+
const { z } = await import('zod');
|
|
935
|
+
// Evaluate the AST node using ts-evaluator
|
|
936
|
+
// This resolves all imports, variables, and expressions automatically
|
|
937
|
+
const result = evaluate({
|
|
938
|
+
node: tsNode,
|
|
939
|
+
typeChecker,
|
|
940
|
+
typescript: ts,
|
|
941
|
+
environment: {
|
|
942
|
+
preset: 'NODE',
|
|
943
|
+
extra: { z } // Provide zod as a global to avoid import resolution issues
|
|
944
|
+
},
|
|
945
|
+
policy: {
|
|
946
|
+
deterministic: false,
|
|
947
|
+
network: false,
|
|
948
|
+
console: false,
|
|
949
|
+
io: { read: true, write: false },
|
|
950
|
+
process: { exit: false, spawnChild: false }
|
|
951
|
+
}
|
|
952
|
+
});
|
|
953
|
+
if (!result.success) {
|
|
954
|
+
throw new Error(result.reason?.message || 'Failed to evaluate schema');
|
|
955
|
+
}
|
|
956
|
+
const zodSchema = result.value;
|
|
957
|
+
if (!zodSchema || typeof zodSchema !== 'object') {
|
|
958
|
+
return DEFAULT_INPUT_SCHEMA;
|
|
959
|
+
}
|
|
960
|
+
// Convert Zod schema to JSON Schema
|
|
961
|
+
const { zodToJsonSchema } = await import('zod-to-json-schema');
|
|
962
|
+
const jsonSchema = zodToJsonSchema(zodSchema, { target: 'jsonSchema7' });
|
|
963
|
+
// Clean up the JSON schema (remove $schema, title, etc.)
|
|
964
|
+
const { $schema, title, definitions, $ref, ...cleanSchema } = jsonSchema;
|
|
965
|
+
return cleanSchema;
|
|
966
|
+
}
|
|
967
|
+
catch (error) {
|
|
968
|
+
console.warn(`Warning: Could not evaluate schema for ${tool.className}:`, error?.message || error);
|
|
969
|
+
return DEFAULT_INPUT_SCHEMA;
|
|
970
|
+
}
|
|
971
|
+
}
|
|
972
|
+
/**
|
|
973
|
+
* Bundles and compresses an MCP resolver function using esbuild.
|
|
974
|
+
*
|
|
975
|
+
* MCP resolver functions are simple arrow functions like:
|
|
976
|
+
* () => ({ KEY: env("KEY") })
|
|
977
|
+
*
|
|
978
|
+
* They don't have imports (env is runtime-provided), but may have TypeScript
|
|
979
|
+
* type annotations that need transpilation. Uses esbuild for TypeScript support.
|
|
980
|
+
*
|
|
981
|
+
* @param functionCode - Raw function code (e.g., "() => ({ KEY: env('KEY') })")
|
|
982
|
+
* @param resolverType - Type of resolver ('env', 'headers', 'url') for temp file naming
|
|
983
|
+
* @param serverName - MCP server name for temp file naming
|
|
984
|
+
* @param distDir - Distribution directory for temp files
|
|
985
|
+
* @param debugMode - Enable verbose logging and preserve temp files
|
|
986
|
+
* @returns Compressed base64-encoded bundled code, or null if bundling fails
|
|
987
|
+
*/
|
|
988
|
+
export async function bundleMCPResolverFunction(functionCode, resolverType, serverName, distDir, debugMode) {
|
|
989
|
+
const { compressCode } = await import('./compile.js');
|
|
990
|
+
// Create temporary file with the function wrapped as a module
|
|
991
|
+
const tempDir = path.join(distDir, '.temp');
|
|
992
|
+
if (!fs.existsSync(tempDir)) {
|
|
993
|
+
fs.mkdirSync(tempDir, { recursive: true });
|
|
994
|
+
}
|
|
995
|
+
const safeName = serverName.replace(/[^a-zA-Z0-9]/g, '_');
|
|
996
|
+
const tempFile = path.join(tempDir, `mcp-${safeName}-${resolverType}.ts`);
|
|
997
|
+
const tempOutput = path.join(tempDir, `mcp-${safeName}-${resolverType}.js`);
|
|
998
|
+
try {
|
|
999
|
+
// Write function as a module export
|
|
1000
|
+
// The function references `env` which will be provided by the runtime sandbox
|
|
1001
|
+
const moduleCode = `
|
|
1002
|
+
// MCP ${resolverType} resolver for ${serverName}
|
|
1003
|
+
// Note: env() is provided by the runtime sandbox, not imported
|
|
1004
|
+
const resolverFunc = ${functionCode};
|
|
1005
|
+
export default resolverFunc;
|
|
1006
|
+
`;
|
|
1007
|
+
fs.writeFileSync(tempFile, moduleCode);
|
|
1008
|
+
if (debugMode) {
|
|
1009
|
+
console.log(` → Bundling MCP ${resolverType} resolver for ${serverName}...`);
|
|
1010
|
+
}
|
|
1011
|
+
// Bundle with esbuild - minimal config since there are no imports to resolve
|
|
1012
|
+
await build({
|
|
1013
|
+
entryPoints: [tempFile],
|
|
1014
|
+
bundle: true,
|
|
1015
|
+
platform: 'node',
|
|
1016
|
+
target: 'node16',
|
|
1017
|
+
format: 'cjs',
|
|
1018
|
+
minify: true,
|
|
1019
|
+
outfile: tempOutput,
|
|
1020
|
+
external: [...EXTERNAL_PACKAGES],
|
|
1021
|
+
plugins: [sandboxGlobalsPlugin],
|
|
1022
|
+
});
|
|
1023
|
+
// Read bundled code
|
|
1024
|
+
if (!fs.existsSync(tempOutput)) {
|
|
1025
|
+
throw new Error(`esbuild failed to create output file for MCP ${resolverType} resolver`);
|
|
1026
|
+
}
|
|
1027
|
+
const bundledCode = fs.readFileSync(tempOutput, 'utf8');
|
|
1028
|
+
if (bundledCode.length === 0) {
|
|
1029
|
+
throw new Error(`esbuild created empty bundle for MCP ${resolverType} resolver`);
|
|
1030
|
+
}
|
|
1031
|
+
// Wrap for VM execution - the resolver function returns a value directly
|
|
1032
|
+
const wrappedCode = `(async () => {
|
|
1033
|
+
${bundledCode}
|
|
1034
|
+
|
|
1035
|
+
const resolverFunc = module.exports.default || module.exports;
|
|
1036
|
+
return resolverFunc();
|
|
1037
|
+
})()`;
|
|
1038
|
+
// Compress the wrapped code
|
|
1039
|
+
const compressed = compressCode(wrappedCode);
|
|
1040
|
+
if (debugMode) {
|
|
1041
|
+
console.log(` → MCP ${resolverType} resolver bundled: ${(compressed.length / 1024).toFixed(2)}KB`);
|
|
1042
|
+
}
|
|
1043
|
+
// Clean up temp files (unless in debug mode)
|
|
1044
|
+
if (!debugMode) {
|
|
923
1045
|
try {
|
|
924
|
-
|
|
925
|
-
|
|
1046
|
+
fs.unlinkSync(tempFile);
|
|
1047
|
+
fs.unlinkSync(tempOutput);
|
|
926
1048
|
}
|
|
927
|
-
catch (
|
|
928
|
-
|
|
929
|
-
return DEFAULT_INPUT_SCHEMA;
|
|
1049
|
+
catch (cleanupError) {
|
|
1050
|
+
// Ignore cleanup errors
|
|
930
1051
|
}
|
|
931
1052
|
}
|
|
1053
|
+
return compressed;
|
|
1054
|
+
}
|
|
1055
|
+
catch (error) {
|
|
1056
|
+
console.warn(`Warning: Could not bundle MCP ${resolverType} resolver for ${serverName}: ${error.message}`);
|
|
1057
|
+
// Fallback: compress the raw function with simple wrapper (may fail at runtime if TS syntax)
|
|
1058
|
+
try {
|
|
1059
|
+
const fallbackCode = `(${functionCode})()`;
|
|
1060
|
+
return compressCode(fallbackCode);
|
|
1061
|
+
}
|
|
1062
|
+
catch (fallbackError) {
|
|
1063
|
+
console.warn(`Warning: Fallback compression also failed for MCP ${resolverType} resolver`);
|
|
1064
|
+
return null;
|
|
1065
|
+
}
|
|
932
1066
|
}
|
|
933
|
-
return DEFAULT_INPUT_SCHEMA;
|
|
934
1067
|
}
|
|
1068
|
+
//# sourceMappingURL=bundling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundling.js","sourceRoot":"","sources":["../../src/utils/bundling.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/cli.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAA2B,EAC3B,WAAmB;IAEnB,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACrC,2CAA2C;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,OAAO,CAAC,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3D,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,kBAAkB,WAAW,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB,CAAC;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,8BAA8B;IACxE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,0EAA0E;IAC1E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,gEAAgE;IAChE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,8DAA8D;IAC9D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,gEAAgE;IAChE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;AACpD,CAAC"}
|
package/dist/utils/compile.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export declare function findIndexFile(): string;
|
|
|
14
14
|
/**
|
|
15
15
|
* Resolves import path from module specifier with support for multiple extensions and index files.
|
|
16
16
|
* Handles modern TypeScript projects that use .js extensions in imports (Node16/NodeNext resolution).
|
|
17
|
+
* Also handles TypeScript path aliases configured in tsconfig.json (e.g., @/, ~/).
|
|
17
18
|
* @param moduleSpecifier - The import path (e.g., './tools/MyTool.js' or '../utils')
|
|
18
19
|
* @param currentFilePath - The file doing the importing
|
|
19
20
|
* @returns Resolved absolute file path
|
|
@@ -107,5 +108,9 @@ export declare function resolveLuaAgentReferences(agentMetadata: {
|
|
|
107
108
|
/**
|
|
108
109
|
* Extracts MCP server metadata from a source file.
|
|
109
110
|
* Looks for LuaMCPServer constructor calls.
|
|
111
|
+
*
|
|
112
|
+
* Note: Function-based resolvers for env, headers, and url are detected
|
|
113
|
+
* during extraction but bundled separately in compile.ts using esbuild
|
|
114
|
+
* for proper TypeScript transpilation.
|
|
110
115
|
*/
|
|
111
116
|
export declare function extractMCPServersMetadata(sourceFile: any): any[];
|
package/dist/utils/compile.js
CHANGED
|
@@ -28,9 +28,63 @@ export function findIndexFile() {
|
|
|
28
28
|
}
|
|
29
29
|
throw new Error("index.ts not found in current directory or src/ directory");
|
|
30
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Resolves TypeScript path aliases from tsconfig.json (e.g., @/ -> ./src/)
|
|
33
|
+
* @returns Object with baseUrl and paths mappings, or null if not found
|
|
34
|
+
*/
|
|
35
|
+
function getTsConfigPathMappings() {
|
|
36
|
+
const tsconfigPath = path.join(process.cwd(), 'tsconfig.json');
|
|
37
|
+
if (!fs.existsSync(tsconfigPath)) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
const tsconfigContent = fs.readFileSync(tsconfigPath, 'utf-8');
|
|
42
|
+
const tsconfig = JSON.parse(tsconfigContent);
|
|
43
|
+
const compilerOptions = tsconfig.compilerOptions || {};
|
|
44
|
+
if (compilerOptions.paths) {
|
|
45
|
+
return {
|
|
46
|
+
baseUrl: compilerOptions.baseUrl || '.',
|
|
47
|
+
paths: compilerOptions.paths
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
// Ignore parsing errors
|
|
53
|
+
}
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Resolves a path alias to a relative path using tsconfig.json mappings
|
|
58
|
+
* @param specifier - The import specifier (e.g., '@/src/skills/numida.skill')
|
|
59
|
+
* @returns Resolved path or null if no alias matched
|
|
60
|
+
*/
|
|
61
|
+
function resolvePathAlias(specifier) {
|
|
62
|
+
const mappings = getTsConfigPathMappings();
|
|
63
|
+
if (!mappings)
|
|
64
|
+
return null;
|
|
65
|
+
// Sort patterns by specificity (longest first) to match TypeScript's behavior
|
|
66
|
+
// e.g., "@/tools/*" should match before "@/*"
|
|
67
|
+
const sortedPatterns = Object.entries(mappings.paths).sort(([a], [b]) => b.length - a.length);
|
|
68
|
+
for (const [pattern, targets] of sortedPatterns) {
|
|
69
|
+
// Convert TypeScript path pattern to regex (e.g., "@/*" -> /^@\/(.*)$/)
|
|
70
|
+
const patternRegex = new RegExp('^' + pattern.replace(/\*/g, '(.*)').replace(/\//g, '\\/') + '$');
|
|
71
|
+
const match = specifier.match(patternRegex);
|
|
72
|
+
if (match) {
|
|
73
|
+
// Get the captured wildcard portion
|
|
74
|
+
const captured = match[1] || '';
|
|
75
|
+
// Use first target path and substitute the wildcard
|
|
76
|
+
const targetPath = targets[0].replace('*', captured);
|
|
77
|
+
// Resolve relative to baseUrl (which is relative to tsconfig location)
|
|
78
|
+
const resolvedPath = path.join(process.cwd(), mappings.baseUrl, targetPath);
|
|
79
|
+
return resolvedPath;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
31
84
|
/**
|
|
32
85
|
* Resolves import path from module specifier with support for multiple extensions and index files.
|
|
33
86
|
* Handles modern TypeScript projects that use .js extensions in imports (Node16/NodeNext resolution).
|
|
87
|
+
* Also handles TypeScript path aliases configured in tsconfig.json (e.g., @/, ~/).
|
|
34
88
|
* @param moduleSpecifier - The import path (e.g., './tools/MyTool.js' or '../utils')
|
|
35
89
|
* @param currentFilePath - The file doing the importing
|
|
36
90
|
* @returns Resolved absolute file path
|
|
@@ -43,6 +97,19 @@ export function resolveImportPath(moduleSpecifier, currentFilePath) {
|
|
|
43
97
|
if (moduleSpecifier.endsWith('.js')) {
|
|
44
98
|
normalizedSpecifier = moduleSpecifier.slice(0, -3);
|
|
45
99
|
}
|
|
100
|
+
// Try to resolve path aliases first (e.g., @/src/skills/numida.skill)
|
|
101
|
+
const aliasResolved = resolvePathAlias(normalizedSpecifier);
|
|
102
|
+
if (aliasResolved) {
|
|
103
|
+
// Try each extension for the alias-resolved path
|
|
104
|
+
for (const ext of extensions) {
|
|
105
|
+
const fullPath = ext.startsWith('/') ? path.join(aliasResolved, ext) : aliasResolved + ext;
|
|
106
|
+
if (fs.existsSync(fullPath)) {
|
|
107
|
+
return fullPath;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Fallback: return .ts extension
|
|
111
|
+
return aliasResolved + '.ts';
|
|
112
|
+
}
|
|
46
113
|
if (normalizedSpecifier.startsWith('./') || normalizedSpecifier.startsWith('../')) {
|
|
47
114
|
// Relative import - resolve relative to current file
|
|
48
115
|
const currentDir = path.dirname(currentFilePath);
|
|
@@ -524,12 +591,26 @@ export function extractLuaAgentMetadata(indexFile) {
|
|
|
524
591
|
if (Node.isStringLiteral(value) || Node.isNoSubstitutionTemplateLiteral(value)) {
|
|
525
592
|
name = value.getLiteralValue();
|
|
526
593
|
}
|
|
594
|
+
else if (Node.isIdentifier(value)) {
|
|
595
|
+
// Handle variable reference - resolve to find the actual value
|
|
596
|
+
const resolved = resolveIdentifierValue(indexFile, value.getText());
|
|
597
|
+
if (resolved) {
|
|
598
|
+
name = resolved;
|
|
599
|
+
}
|
|
600
|
+
}
|
|
527
601
|
}
|
|
528
602
|
else if (propName === 'persona' && value) {
|
|
529
603
|
// Use getLiteralValue to get actual string value (handles escapes correctly)
|
|
530
604
|
if (Node.isStringLiteral(value) || Node.isNoSubstitutionTemplateLiteral(value)) {
|
|
531
605
|
persona = value.getLiteralValue().trim();
|
|
532
606
|
}
|
|
607
|
+
else if (Node.isIdentifier(value)) {
|
|
608
|
+
// Handle variable reference - resolve to find the actual value
|
|
609
|
+
const resolved = resolveIdentifierValue(indexFile, value.getText());
|
|
610
|
+
if (resolved) {
|
|
611
|
+
persona = resolved.trim();
|
|
612
|
+
}
|
|
613
|
+
}
|
|
533
614
|
}
|
|
534
615
|
else if (propName === 'skills' && value && Node.isArrayLiteralExpression(value)) {
|
|
535
616
|
// Extract skill references from the array
|
|
@@ -542,7 +623,7 @@ export function extractLuaAgentMetadata(indexFile) {
|
|
|
542
623
|
// Extract inline skill metadata
|
|
543
624
|
const skillArgs = element.getArguments();
|
|
544
625
|
if (skillArgs.length > 0 && Node.isObjectLiteralExpression(skillArgs[0])) {
|
|
545
|
-
const skillConfig = extractConfigFromObjectLiteral(skillArgs[0]);
|
|
626
|
+
const skillConfig = extractConfigFromObjectLiteral(skillArgs[0], indexFile);
|
|
546
627
|
skills.push(skillConfig);
|
|
547
628
|
}
|
|
548
629
|
}
|
|
@@ -556,7 +637,7 @@ export function extractLuaAgentMetadata(indexFile) {
|
|
|
556
637
|
else if (Node.isNewExpression(element)) {
|
|
557
638
|
const webhookArgs = element.getArguments();
|
|
558
639
|
if (webhookArgs.length > 0 && Node.isObjectLiteralExpression(webhookArgs[0])) {
|
|
559
|
-
const webhookConfig = extractConfigFromObjectLiteral(webhookArgs[0]);
|
|
640
|
+
const webhookConfig = extractConfigFromObjectLiteral(webhookArgs[0], indexFile);
|
|
560
641
|
webhooks.push(webhookConfig);
|
|
561
642
|
}
|
|
562
643
|
}
|
|
@@ -570,7 +651,7 @@ export function extractLuaAgentMetadata(indexFile) {
|
|
|
570
651
|
else if (Node.isNewExpression(element)) {
|
|
571
652
|
const jobArgs = element.getArguments();
|
|
572
653
|
if (jobArgs.length > 0 && Node.isObjectLiteralExpression(jobArgs[0])) {
|
|
573
|
-
const jobConfig = extractConfigFromObjectLiteral(jobArgs[0]);
|
|
654
|
+
const jobConfig = extractConfigFromObjectLiteral(jobArgs[0], indexFile);
|
|
574
655
|
jobs.push(jobConfig);
|
|
575
656
|
}
|
|
576
657
|
}
|
|
@@ -584,7 +665,7 @@ export function extractLuaAgentMetadata(indexFile) {
|
|
|
584
665
|
else if (Node.isNewExpression(element)) {
|
|
585
666
|
const processorArgs = element.getArguments();
|
|
586
667
|
if (processorArgs.length > 0 && Node.isObjectLiteralExpression(processorArgs[0])) {
|
|
587
|
-
const processorConfig = extractConfigFromObjectLiteral(processorArgs[0]);
|
|
668
|
+
const processorConfig = extractConfigFromObjectLiteral(processorArgs[0], indexFile);
|
|
588
669
|
preProcessors.push(processorConfig);
|
|
589
670
|
}
|
|
590
671
|
}
|
|
@@ -598,7 +679,7 @@ export function extractLuaAgentMetadata(indexFile) {
|
|
|
598
679
|
else if (Node.isNewExpression(element)) {
|
|
599
680
|
const processorArgs = element.getArguments();
|
|
600
681
|
if (processorArgs.length > 0 && Node.isObjectLiteralExpression(processorArgs[0])) {
|
|
601
|
-
const processorConfig = extractConfigFromObjectLiteral(processorArgs[0]);
|
|
682
|
+
const processorConfig = extractConfigFromObjectLiteral(processorArgs[0], indexFile);
|
|
602
683
|
postProcessors.push(processorConfig);
|
|
603
684
|
}
|
|
604
685
|
}
|
|
@@ -614,7 +695,7 @@ export function extractLuaAgentMetadata(indexFile) {
|
|
|
614
695
|
// Extract inline MCP server metadata
|
|
615
696
|
const mcpArgs = element.getArguments();
|
|
616
697
|
if (mcpArgs.length > 0 && Node.isObjectLiteralExpression(mcpArgs[0])) {
|
|
617
|
-
const mcpConfig = extractConfigFromObjectLiteral(mcpArgs[0]);
|
|
698
|
+
const mcpConfig = extractConfigFromObjectLiteral(mcpArgs[0], indexFile);
|
|
618
699
|
mcpServers.push(mcpConfig);
|
|
619
700
|
}
|
|
620
701
|
}
|
|
@@ -622,7 +703,9 @@ export function extractLuaAgentMetadata(indexFile) {
|
|
|
622
703
|
}
|
|
623
704
|
}
|
|
624
705
|
});
|
|
625
|
-
if
|
|
706
|
+
// Return metadata if we found at least a name or persona
|
|
707
|
+
// (previously required both, but that broke variable reference detection)
|
|
708
|
+
if (name || persona) {
|
|
626
709
|
agentMetadata = {
|
|
627
710
|
name,
|
|
628
711
|
persona,
|
|
@@ -644,15 +727,18 @@ export function extractLuaAgentMetadata(indexFile) {
|
|
|
644
727
|
* Helper function to extract configuration from an object literal expression.
|
|
645
728
|
* Used by extractLuaAgentMetadata to parse inline skill/webhook/job definitions.
|
|
646
729
|
* Handles nested objects, arrays, and various data types.
|
|
730
|
+
*
|
|
731
|
+
* @param configObj - The object literal expression to extract from
|
|
732
|
+
* @param sourceFile - Optional source file for resolving variable references
|
|
647
733
|
*/
|
|
648
|
-
function extractConfigFromObjectLiteral(configObj) {
|
|
734
|
+
function extractConfigFromObjectLiteral(configObj, sourceFile) {
|
|
649
735
|
const config = {};
|
|
650
736
|
configObj.getProperties().forEach((prop) => {
|
|
651
737
|
if (Node.isPropertyAssignment(prop)) {
|
|
652
738
|
const name = prop.getName();
|
|
653
739
|
const value = prop.getInitializer();
|
|
654
740
|
if (value) {
|
|
655
|
-
config[name] = extractValueFromNode(value);
|
|
741
|
+
config[name] = extractValueFromNode(value, sourceFile);
|
|
656
742
|
}
|
|
657
743
|
}
|
|
658
744
|
});
|
|
@@ -660,14 +746,21 @@ function extractConfigFromObjectLiteral(configObj) {
|
|
|
660
746
|
}
|
|
661
747
|
/**
|
|
662
748
|
* Extracts a value from an AST node, handling various types.
|
|
749
|
+
*
|
|
750
|
+
* @param node - The AST node to extract value from
|
|
751
|
+
* @param sourceFile - Optional source file for resolving variable references
|
|
663
752
|
*/
|
|
664
|
-
function extractValueFromNode(node) {
|
|
753
|
+
function extractValueFromNode(node, sourceFile) {
|
|
665
754
|
if (!node)
|
|
666
755
|
return undefined;
|
|
667
756
|
// String literal
|
|
668
757
|
if (Node.isStringLiteral(node)) {
|
|
669
758
|
return node.getLiteralValue();
|
|
670
759
|
}
|
|
760
|
+
// Template literal without substitutions
|
|
761
|
+
if (Node.isNoSubstitutionTemplateLiteral(node)) {
|
|
762
|
+
return node.getLiteralValue();
|
|
763
|
+
}
|
|
671
764
|
// Numeric literal
|
|
672
765
|
if (Node.isNumericLiteral(node)) {
|
|
673
766
|
return node.getLiteralValue();
|
|
@@ -678,6 +771,15 @@ function extractValueFromNode(node) {
|
|
|
678
771
|
return true; // TrueKeyword
|
|
679
772
|
if (nodeKind === 95)
|
|
680
773
|
return false; // FalseKeyword
|
|
774
|
+
// Identifier (variable reference) - resolve to actual value if sourceFile provided
|
|
775
|
+
if (Node.isIdentifier(node) && sourceFile) {
|
|
776
|
+
const resolved = resolveIdentifierValue(sourceFile, node.getText());
|
|
777
|
+
if (resolved !== null) {
|
|
778
|
+
return resolved;
|
|
779
|
+
}
|
|
780
|
+
// If we can't resolve it, return the identifier name as-is (might be a class reference)
|
|
781
|
+
return node.getText();
|
|
782
|
+
}
|
|
681
783
|
// New expression (for tools: [new ToolClass()])
|
|
682
784
|
// Extract just the class name for compatibility with buildSkillsArray
|
|
683
785
|
if (Node.isNewExpression(node)) {
|
|
@@ -686,11 +788,11 @@ function extractValueFromNode(node) {
|
|
|
686
788
|
}
|
|
687
789
|
// Array literal
|
|
688
790
|
if (Node.isArrayLiteralExpression(node)) {
|
|
689
|
-
return node.getElements().map((element) => extractValueFromNode(element));
|
|
791
|
+
return node.getElements().map((element) => extractValueFromNode(element, sourceFile));
|
|
690
792
|
}
|
|
691
793
|
// Object literal
|
|
692
794
|
if (Node.isObjectLiteralExpression(node)) {
|
|
693
|
-
return extractConfigFromObjectLiteral(node);
|
|
795
|
+
return extractConfigFromObjectLiteral(node, sourceFile);
|
|
694
796
|
}
|
|
695
797
|
// Arrow function or function expression (for execute, etc.)
|
|
696
798
|
if (Node.isArrowFunction(node) || Node.isFunctionExpression(node)) {
|
|
@@ -776,7 +878,7 @@ export function resolveLuaAgentReferences(agentMetadata, indexFile, project) {
|
|
|
776
878
|
const expression = initializer.getExpression();
|
|
777
879
|
const args = initializer.getArguments();
|
|
778
880
|
if (args.length > 0 && Node.isObjectLiteralExpression(args[0])) {
|
|
779
|
-
const config = extractConfigFromObjectLiteral(args[0]);
|
|
881
|
+
const config = extractConfigFromObjectLiteral(args[0], indexFile);
|
|
780
882
|
resolved.push(config);
|
|
781
883
|
}
|
|
782
884
|
}
|
|
@@ -808,6 +910,10 @@ export function resolveLuaAgentReferences(agentMetadata, indexFile, project) {
|
|
|
808
910
|
/**
|
|
809
911
|
* Extracts MCP server metadata from a source file.
|
|
810
912
|
* Looks for LuaMCPServer constructor calls.
|
|
913
|
+
*
|
|
914
|
+
* Note: Function-based resolvers for env, headers, and url are detected
|
|
915
|
+
* during extraction but bundled separately in compile.ts using esbuild
|
|
916
|
+
* for proper TypeScript transpilation.
|
|
811
917
|
*/
|
|
812
918
|
export function extractMCPServersMetadata(sourceFile) {
|
|
813
919
|
const mcpServers = [];
|
|
@@ -817,7 +923,8 @@ export function extractMCPServersMetadata(sourceFile) {
|
|
|
817
923
|
if (expression.getText() === 'LuaMCPServer') {
|
|
818
924
|
const args = node.getArguments();
|
|
819
925
|
if (args.length > 0 && Node.isObjectLiteralExpression(args[0])) {
|
|
820
|
-
const config = extractConfigFromObjectLiteral(args[0]);
|
|
926
|
+
const config = extractConfigFromObjectLiteral(args[0], sourceFile);
|
|
927
|
+
// Return raw config - resolver bundling is done in compile.ts
|
|
821
928
|
mcpServers.push(config);
|
|
822
929
|
}
|
|
823
930
|
}
|
|
@@ -825,6 +932,37 @@ export function extractMCPServersMetadata(sourceFile) {
|
|
|
825
932
|
});
|
|
826
933
|
return mcpServers;
|
|
827
934
|
}
|
|
935
|
+
/**
|
|
936
|
+
* Resolves an identifier (variable name) to its string value.
|
|
937
|
+
* Used when name or persona are defined as variables rather than inline literals.
|
|
938
|
+
*
|
|
939
|
+
* @param sourceFile - The source file containing the identifier
|
|
940
|
+
* @param identifierName - The name of the variable to resolve
|
|
941
|
+
* @returns The string value if found, null otherwise
|
|
942
|
+
*/
|
|
943
|
+
function resolveIdentifierValue(sourceFile, identifierName) {
|
|
944
|
+
// Find the variable declaration
|
|
945
|
+
const varDecl = findVariableDeclaration(sourceFile, identifierName);
|
|
946
|
+
if (!varDecl) {
|
|
947
|
+
return null;
|
|
948
|
+
}
|
|
949
|
+
const initializer = varDecl.getInitializer();
|
|
950
|
+
if (!initializer) {
|
|
951
|
+
return null;
|
|
952
|
+
}
|
|
953
|
+
// Check if it's a string literal or template literal
|
|
954
|
+
if (Node.isStringLiteral(initializer) || Node.isNoSubstitutionTemplateLiteral(initializer)) {
|
|
955
|
+
return initializer.getLiteralValue();
|
|
956
|
+
}
|
|
957
|
+
// For template literals with substitutions, get the text and clean it up
|
|
958
|
+
if (Node.isTemplateExpression(initializer)) {
|
|
959
|
+
// This is a complex template with ${} substitutions - get raw text
|
|
960
|
+
const text = initializer.getText();
|
|
961
|
+
// Remove the backticks
|
|
962
|
+
return text.slice(1, -1);
|
|
963
|
+
}
|
|
964
|
+
return null;
|
|
965
|
+
}
|
|
828
966
|
/**
|
|
829
967
|
* Finds a variable declaration in a source file by name.
|
|
830
968
|
*/
|
|
@@ -894,7 +1032,7 @@ function findImportedDefinition(sourceFile, varName, project, extractFunction) {
|
|
|
894
1032
|
const args = initializer.getArguments();
|
|
895
1033
|
if (args.length > 0 && Node.isObjectLiteralExpression(args[0])) {
|
|
896
1034
|
// Extract configuration from the object literal
|
|
897
|
-
const config = extractConfigFromObjectLiteral(args[0]);
|
|
1035
|
+
const config = extractConfigFromObjectLiteral(args[0], importedFile);
|
|
898
1036
|
return [config];
|
|
899
1037
|
}
|
|
900
1038
|
}
|
|
@@ -921,3 +1059,4 @@ function findImportedDefinition(sourceFile, varName, project, extractFunction) {
|
|
|
921
1059
|
}
|
|
922
1060
|
return null;
|
|
923
1061
|
}
|
|
1062
|
+
//# sourceMappingURL=compile.js.map
|