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.
Files changed (328) hide show
  1. package/dist/api/agent.api.service.js +1 -0
  2. package/dist/api/agent.api.service.js.map +1 -0
  3. package/dist/api/auth.api.service.js +1 -0
  4. package/dist/api/auth.api.service.js.map +1 -0
  5. package/dist/api/basket.api.service.js +1 -0
  6. package/dist/api/basket.api.service.js.map +1 -0
  7. package/dist/api/cdn.api.service.js +1 -0
  8. package/dist/api/cdn.api.service.js.map +1 -0
  9. package/dist/api/chat.api.service.js +1 -0
  10. package/dist/api/chat.api.service.js.map +1 -0
  11. package/dist/api/credentials.js +1 -0
  12. package/dist/api/credentials.js.map +1 -0
  13. package/dist/api/custom.data.api.service.js +1 -0
  14. package/dist/api/custom.data.api.service.js.map +1 -0
  15. package/dist/api/developer.api.service.js +1 -0
  16. package/dist/api/developer.api.service.js.map +1 -0
  17. package/dist/api/job.api.service.js +1 -0
  18. package/dist/api/job.api.service.js.map +1 -0
  19. package/dist/api/lazy-instances.js +1 -0
  20. package/dist/api/lazy-instances.js.map +1 -0
  21. package/dist/api/logs.api.service.d.ts +1 -1
  22. package/dist/api/logs.api.service.js +1 -0
  23. package/dist/api/logs.api.service.js.map +1 -0
  24. package/dist/api/marketplace.api.service.js +1 -0
  25. package/dist/api/marketplace.api.service.js.map +1 -0
  26. package/dist/api/order.api.service.js +1 -0
  27. package/dist/api/order.api.service.js.map +1 -0
  28. package/dist/api/persona.api.service.js +1 -0
  29. package/dist/api/persona.api.service.js.map +1 -0
  30. package/dist/api/postprocessor.api.service.js +1 -0
  31. package/dist/api/postprocessor.api.service.js.map +1 -0
  32. package/dist/api/preprocessor.api.service.js +1 -0
  33. package/dist/api/preprocessor.api.service.js.map +1 -0
  34. package/dist/api/products.api.service.d.ts +17 -5
  35. package/dist/api/products.api.service.js +22 -9
  36. package/dist/api/products.api.service.js.map +1 -0
  37. package/dist/api/skills.api.service.js +1 -0
  38. package/dist/api/skills.api.service.js.map +1 -0
  39. package/dist/api/tool.api.service.js +1 -0
  40. package/dist/api/tool.api.service.js.map +1 -0
  41. package/dist/api/user.data.api.service.js +1 -0
  42. package/dist/api/user.data.api.service.js.map +1 -0
  43. package/dist/api/webhook.api.service.js +1 -0
  44. package/dist/api/webhook.api.service.js.map +1 -0
  45. package/dist/api/whatsapp-templates.api.service.js +1 -0
  46. package/dist/api/whatsapp-templates.api.service.js.map +1 -0
  47. package/dist/api-exports.d.ts +23 -6
  48. package/dist/api-exports.js +27 -5
  49. package/dist/api-exports.js.map +1 -0
  50. package/dist/cli/command-definitions.js +321 -88
  51. package/dist/cli/command-definitions.js.map +1 -0
  52. package/dist/commands/admin.js +1 -0
  53. package/dist/commands/admin.js.map +1 -0
  54. package/dist/commands/agents.js +1 -0
  55. package/dist/commands/agents.js.map +1 -0
  56. package/dist/commands/apiKey.d.ts +5 -2
  57. package/dist/commands/apiKey.js +9 -2
  58. package/dist/commands/apiKey.js.map +1 -0
  59. package/dist/commands/channels.d.ts +4 -9
  60. package/dist/commands/channels.js +141 -84
  61. package/dist/commands/channels.js.map +1 -0
  62. package/dist/commands/chat.d.ts +4 -2
  63. package/dist/commands/chat.js +127 -32
  64. package/dist/commands/chat.js.map +1 -0
  65. package/dist/commands/chatClear.d.ts +3 -2
  66. package/dist/commands/chatClear.js +17 -15
  67. package/dist/commands/chatClear.js.map +1 -0
  68. package/dist/commands/compile.js +68 -4
  69. package/dist/commands/compile.js.map +1 -0
  70. package/dist/commands/completion.js +1 -0
  71. package/dist/commands/completion.js.map +1 -0
  72. package/dist/commands/configure.js +1 -0
  73. package/dist/commands/configure.js.map +1 -0
  74. package/dist/commands/deploy.d.ts +5 -24
  75. package/dist/commands/deploy.js +76 -48
  76. package/dist/commands/deploy.js.map +1 -0
  77. package/dist/commands/destroy.d.ts +5 -2
  78. package/dist/commands/destroy.js +15 -2
  79. package/dist/commands/destroy.js.map +1 -0
  80. package/dist/commands/dev.js +1 -0
  81. package/dist/commands/dev.js.map +1 -0
  82. package/dist/commands/docs.js +1 -0
  83. package/dist/commands/docs.js.map +1 -0
  84. package/dist/commands/env.d.ts +3 -1
  85. package/dist/commands/env.js +323 -122
  86. package/dist/commands/env.js.map +1 -0
  87. package/dist/commands/evals.js +1 -0
  88. package/dist/commands/evals.js.map +1 -0
  89. package/dist/commands/features.d.ts +5 -9
  90. package/dist/commands/features.js +250 -129
  91. package/dist/commands/features.js.map +1 -0
  92. package/dist/commands/index.js +1 -0
  93. package/dist/commands/index.js.map +1 -0
  94. package/dist/commands/init.d.ts +7 -1
  95. package/dist/commands/init.js +252 -65
  96. package/dist/commands/init.js.map +1 -0
  97. package/dist/commands/jobs.d.ts +5 -13
  98. package/dist/commands/jobs.js +450 -364
  99. package/dist/commands/jobs.js.map +1 -0
  100. package/dist/commands/logs.d.ts +5 -10
  101. package/dist/commands/logs.js +260 -103
  102. package/dist/commands/logs.js.map +1 -0
  103. package/dist/commands/marketplace.d.ts +23 -2
  104. package/dist/commands/marketplace.js +531 -7
  105. package/dist/commands/marketplace.js.map +1 -0
  106. package/dist/commands/mcp.d.ts +5 -11
  107. package/dist/commands/mcp.js +304 -288
  108. package/dist/commands/mcp.js.map +1 -0
  109. package/dist/commands/persona.d.ts +5 -9
  110. package/dist/commands/persona.js +350 -232
  111. package/dist/commands/persona.js.map +1 -0
  112. package/dist/commands/postprocessors.d.ts +6 -2
  113. package/dist/commands/postprocessors.js +388 -280
  114. package/dist/commands/postprocessors.js.map +1 -0
  115. package/dist/commands/preprocessors.d.ts +6 -2
  116. package/dist/commands/preprocessors.js +388 -280
  117. package/dist/commands/preprocessors.js.map +1 -0
  118. package/dist/commands/production.d.ts +5 -8
  119. package/dist/commands/production.js +318 -228
  120. package/dist/commands/production.js.map +1 -0
  121. package/dist/commands/push.js +386 -427
  122. package/dist/commands/push.js.map +1 -0
  123. package/dist/commands/resources.d.ts +5 -10
  124. package/dist/commands/resources.js +220 -154
  125. package/dist/commands/resources.js.map +1 -0
  126. package/dist/commands/skills.d.ts +5 -9
  127. package/dist/commands/skills.js +355 -278
  128. package/dist/commands/skills.js.map +1 -0
  129. package/dist/commands/sync.d.ts +10 -8
  130. package/dist/commands/sync.js +111 -19
  131. package/dist/commands/sync.js.map +1 -0
  132. package/dist/commands/test.d.ts +1 -11
  133. package/dist/commands/test.js +396 -438
  134. package/dist/commands/test.js.map +1 -0
  135. package/dist/commands/webhooks.d.ts +5 -11
  136. package/dist/commands/webhooks.js +357 -290
  137. package/dist/commands/webhooks.js.map +1 -0
  138. package/dist/common/basket.instance.js +1 -0
  139. package/dist/common/basket.instance.js.map +1 -0
  140. package/dist/common/data.entry.instance.js +1 -0
  141. package/dist/common/data.entry.instance.js.map +1 -0
  142. package/dist/common/http.client.js +1 -0
  143. package/dist/common/http.client.js.map +1 -0
  144. package/dist/common/job.instance.js +1 -0
  145. package/dist/common/job.instance.js.map +1 -0
  146. package/dist/common/order.instance.js +1 -0
  147. package/dist/common/order.instance.js.map +1 -0
  148. package/dist/common/product.instance.js +1 -0
  149. package/dist/common/product.instance.js.map +1 -0
  150. package/dist/common/product.pagination.instance.js +1 -0
  151. package/dist/common/product.pagination.instance.js.map +1 -0
  152. package/dist/common/product.search.instance.js +1 -0
  153. package/dist/common/product.search.instance.js.map +1 -0
  154. package/dist/common/user.instance.js +1 -0
  155. package/dist/common/user.instance.js.map +1 -0
  156. package/dist/config/auth.constants.js +1 -0
  157. package/dist/config/auth.constants.js.map +1 -0
  158. package/dist/config/compile.constants.js +1 -0
  159. package/dist/config/compile.constants.js.map +1 -0
  160. package/dist/config/constants.js +1 -0
  161. package/dist/config/constants.js.map +1 -0
  162. package/dist/config/dev.constants.js +1 -0
  163. package/dist/config/dev.constants.js.map +1 -0
  164. package/dist/config/init.constants.d.ts +0 -8
  165. package/dist/config/init.constants.js +1 -24
  166. package/dist/config/init.constants.js.map +1 -0
  167. package/dist/errors/auth.error.js +1 -0
  168. package/dist/errors/auth.error.js.map +1 -0
  169. package/dist/errors/index.js +1 -0
  170. package/dist/errors/index.js.map +1 -0
  171. package/dist/index.js +1 -0
  172. package/dist/index.js.map +1 -0
  173. package/dist/interfaces/admin.js +1 -0
  174. package/dist/interfaces/admin.js.map +1 -0
  175. package/dist/interfaces/agent.d.ts +2 -27
  176. package/dist/interfaces/agent.js +1 -0
  177. package/dist/interfaces/agent.js.map +1 -0
  178. package/dist/interfaces/baskets.js +1 -0
  179. package/dist/interfaces/baskets.js.map +1 -0
  180. package/dist/interfaces/cdn.js +1 -0
  181. package/dist/interfaces/cdn.js.map +1 -0
  182. package/dist/interfaces/chat.js +1 -0
  183. package/dist/interfaces/chat.js.map +1 -0
  184. package/dist/interfaces/common.js +1 -0
  185. package/dist/interfaces/common.js.map +1 -0
  186. package/dist/interfaces/compile.js +1 -0
  187. package/dist/interfaces/compile.js.map +1 -0
  188. package/dist/interfaces/custom.data.js +1 -0
  189. package/dist/interfaces/custom.data.js.map +1 -0
  190. package/dist/interfaces/deploy.js +1 -0
  191. package/dist/interfaces/deploy.js.map +1 -0
  192. package/dist/interfaces/dev.js +1 -0
  193. package/dist/interfaces/dev.js.map +1 -0
  194. package/dist/interfaces/index.js +1 -0
  195. package/dist/interfaces/index.js.map +1 -0
  196. package/dist/interfaces/init.d.ts +0 -19
  197. package/dist/interfaces/init.js +1 -0
  198. package/dist/interfaces/init.js.map +1 -0
  199. package/dist/interfaces/jobs.js +1 -0
  200. package/dist/interfaces/jobs.js.map +1 -0
  201. package/dist/interfaces/logs.js +1 -0
  202. package/dist/interfaces/logs.js.map +1 -0
  203. package/dist/interfaces/lua.d.ts +11 -1
  204. package/dist/interfaces/lua.js +1 -0
  205. package/dist/interfaces/lua.js.map +1 -0
  206. package/dist/interfaces/marketplace.js +1 -0
  207. package/dist/interfaces/marketplace.js.map +1 -0
  208. package/dist/interfaces/mcp.d.ts +28 -1
  209. package/dist/interfaces/mcp.js +1 -0
  210. package/dist/interfaces/mcp.js.map +1 -0
  211. package/dist/interfaces/message.js +1 -0
  212. package/dist/interfaces/message.js.map +1 -0
  213. package/dist/interfaces/orders.js +1 -0
  214. package/dist/interfaces/orders.js.map +1 -0
  215. package/dist/interfaces/persona.js +1 -0
  216. package/dist/interfaces/persona.js.map +1 -0
  217. package/dist/interfaces/postprocessors.js +1 -0
  218. package/dist/interfaces/postprocessors.js.map +1 -0
  219. package/dist/interfaces/preprocessors.js +1 -0
  220. package/dist/interfaces/preprocessors.js.map +1 -0
  221. package/dist/interfaces/product.d.ts +26 -0
  222. package/dist/interfaces/product.js +1 -0
  223. package/dist/interfaces/product.js.map +1 -0
  224. package/dist/interfaces/push.js +1 -0
  225. package/dist/interfaces/push.js.map +1 -0
  226. package/dist/interfaces/skills.js +1 -0
  227. package/dist/interfaces/skills.js.map +1 -0
  228. package/dist/interfaces/test.js +1 -0
  229. package/dist/interfaces/test.js.map +1 -0
  230. package/dist/interfaces/user.js +1 -0
  231. package/dist/interfaces/user.js.map +1 -0
  232. package/dist/interfaces/webhooks.js +1 -0
  233. package/dist/interfaces/webhooks.js.map +1 -0
  234. package/dist/interfaces/whatsapp-templates.js +1 -0
  235. package/dist/interfaces/whatsapp-templates.js.map +1 -0
  236. package/dist/services/auth.js +1 -0
  237. package/dist/services/auth.js.map +1 -0
  238. package/dist/types/api-contracts.d.ts +8 -4
  239. package/dist/types/api-contracts.js +1 -0
  240. package/dist/types/api-contracts.js.map +1 -0
  241. package/dist/types/compile.types.js +1 -0
  242. package/dist/types/compile.types.js.map +1 -0
  243. package/dist/types/index.d.ts +3 -3
  244. package/dist/types/index.js +1 -0
  245. package/dist/types/index.js.map +1 -0
  246. package/dist/types/skill.d.ts +92 -17
  247. package/dist/types/skill.js +16 -11
  248. package/dist/types/skill.js.map +1 -0
  249. package/dist/types/tool-validation.js +1 -0
  250. package/dist/types/tool-validation.js.map +1 -0
  251. package/dist/utils/agent-code-utils.d.ts +2 -1
  252. package/dist/utils/agent-code-utils.js +14 -3
  253. package/dist/utils/agent-code-utils.js.map +1 -0
  254. package/dist/utils/auth-flows.js +1 -0
  255. package/dist/utils/auth-flows.js.map +1 -0
  256. package/dist/utils/bundling.d.ts +17 -0
  257. package/dist/utils/bundling.js +146 -12
  258. package/dist/utils/bundling.js.map +1 -0
  259. package/dist/utils/cli.js +1 -0
  260. package/dist/utils/cli.js.map +1 -0
  261. package/dist/utils/compile.d.ts +5 -0
  262. package/dist/utils/compile.js +154 -15
  263. package/dist/utils/compile.js.map +1 -0
  264. package/dist/utils/deploy-api.js +1 -0
  265. package/dist/utils/deploy-api.js.map +1 -0
  266. package/dist/utils/deploy-helpers.js +1 -0
  267. package/dist/utils/deploy-helpers.js.map +1 -0
  268. package/dist/utils/deployment.js +1 -0
  269. package/dist/utils/deployment.js.map +1 -0
  270. package/dist/utils/dev-api.js +1 -0
  271. package/dist/utils/dev-api.js.map +1 -0
  272. package/dist/utils/dev-helpers.d.ts +3 -2
  273. package/dist/utils/dev-helpers.js +4 -5
  274. package/dist/utils/dev-helpers.js.map +1 -0
  275. package/dist/utils/dev-server.js +1 -0
  276. package/dist/utils/dev-server.js.map +1 -0
  277. package/dist/utils/dev-watcher.js +1 -0
  278. package/dist/utils/dev-watcher.js.map +1 -0
  279. package/dist/utils/env-loader.utils.js +1 -0
  280. package/dist/utils/env-loader.utils.js.map +1 -0
  281. package/dist/utils/files.js +1 -0
  282. package/dist/utils/files.js.map +1 -0
  283. package/dist/utils/init-agent.d.ts +4 -4
  284. package/dist/utils/init-agent.js +12 -14
  285. package/dist/utils/init-agent.js.map +1 -0
  286. package/dist/utils/init-helpers.js +1 -0
  287. package/dist/utils/init-helpers.js.map +1 -0
  288. package/dist/utils/init-prompts.d.ts +10 -6
  289. package/dist/utils/init-prompts.js +41 -75
  290. package/dist/utils/init-prompts.js.map +1 -0
  291. package/dist/utils/job-management.js +1 -0
  292. package/dist/utils/job-management.js.map +1 -0
  293. package/dist/utils/mcp-server-management.d.ts +1 -1
  294. package/dist/utils/mcp-server-management.js +14 -14
  295. package/dist/utils/mcp-server-management.js.map +1 -0
  296. package/dist/utils/postprocessor-management.js +1 -0
  297. package/dist/utils/postprocessor-management.js.map +1 -0
  298. package/dist/utils/pre-bundle-jobs.js +1 -0
  299. package/dist/utils/pre-bundle-jobs.js.map +1 -0
  300. package/dist/utils/preprocessor-management.js +1 -0
  301. package/dist/utils/preprocessor-management.js.map +1 -0
  302. package/dist/utils/prompt-handler.js +1 -0
  303. package/dist/utils/prompt-handler.js.map +1 -0
  304. package/dist/utils/push-api.js +1 -0
  305. package/dist/utils/push-api.js.map +1 -0
  306. package/dist/utils/push-helpers.js +1 -0
  307. package/dist/utils/push-helpers.js.map +1 -0
  308. package/dist/utils/sandbox-storage.js +1 -0
  309. package/dist/utils/sandbox-storage.js.map +1 -0
  310. package/dist/utils/sandbox.d.ts +1 -0
  311. package/dist/utils/sandbox.js +2 -0
  312. package/dist/utils/sandbox.js.map +1 -0
  313. package/dist/utils/semver.js +1 -0
  314. package/dist/utils/semver.js.map +1 -0
  315. package/dist/utils/skill-management.js +1 -0
  316. package/dist/utils/skill-management.js.map +1 -0
  317. package/dist/utils/sync-helpers.js +23 -4
  318. package/dist/utils/sync-helpers.js.map +1 -0
  319. package/dist/utils/test-helpers.js +1 -0
  320. package/dist/utils/test-helpers.js.map +1 -0
  321. package/dist/utils/test-prompts.js +1 -0
  322. package/dist/utils/test-prompts.js.map +1 -0
  323. package/dist/utils/tool-detection.js +1 -0
  324. package/dist/utils/tool-detection.js.map +1 -0
  325. package/dist/utils/webhook-management.js +1 -0
  326. package/dist/utils/webhook-management.js.map +1 -0
  327. package/package.json +2 -1
  328. package/template/package.json +1 -1
@@ -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 and convert input schema
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
- * Converts Zod schemas to JSON Schema format.
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 (for logging)
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 && inputSchemaProperty.getInitializer()) {
922
+ if (!inputSchemaProperty?.getInitializer()) {
923
+ return DEFAULT_INPUT_SCHEMA;
924
+ }
925
+ try {
921
926
  const initializer = inputSchemaProperty.getInitializer();
922
- if (initializer) {
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
- const zodSchemaCode = initializer.getText();
925
- return await evaluateZodSchemaToJsonSchema(zodSchemaCode);
1046
+ fs.unlinkSync(tempFile);
1047
+ fs.unlinkSync(tempOutput);
926
1048
  }
927
- catch (error) {
928
- console.warn(`Warning: Could not parse Zod schema for ${tool.className}:`, error);
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
@@ -66,3 +66,4 @@ export function writeInfo(message) {
66
66
  // Clear any progress message, write message, and ensure newline
67
67
  process.stdout.write('\r\x1b[K' + message + '\n');
68
68
  }
69
+ //# sourceMappingURL=cli.js.map
@@ -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"}
@@ -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[];
@@ -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 (name && persona) {
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