lua-cli 3.5.0-alpha.3 → 3.5.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (465) hide show
  1. package/README.md +137 -689
  2. package/dist/api/agent.api.service.d.ts +1 -8
  3. package/dist/api/agent.api.service.js +1 -11
  4. package/dist/api/agent.api.service.js.map +1 -1
  5. package/dist/api/auth.api.service.d.ts +1 -1
  6. package/dist/api/auth.api.service.js +1 -1
  7. package/dist/api/auth.api.service.js.map +1 -1
  8. package/dist/api/backup.api.service.d.ts +80 -0
  9. package/dist/api/backup.api.service.js +101 -0
  10. package/dist/api/backup.api.service.js.map +1 -0
  11. package/dist/api/basket.api.service.d.ts +4 -5
  12. package/dist/api/basket.api.service.js +13 -18
  13. package/dist/api/basket.api.service.js.map +1 -1
  14. package/dist/api/cdn.api.service.d.ts +2 -0
  15. package/dist/api/cdn.api.service.js +2 -0
  16. package/dist/api/cdn.api.service.js.map +1 -1
  17. package/dist/api/chat.api.service.d.ts +10 -2
  18. package/dist/api/chat.api.service.js +21 -2
  19. package/dist/api/chat.api.service.js.map +1 -1
  20. package/dist/api/credentials.js +5 -8
  21. package/dist/api/credentials.js.map +1 -1
  22. package/dist/api/custom.data.api.service.d.ts +3 -3
  23. package/dist/api/custom.data.api.service.js +9 -10
  24. package/dist/api/custom.data.api.service.js.map +1 -1
  25. package/dist/api/developer.api.service.d.ts +1 -1
  26. package/dist/api/developer.api.service.js +1 -1
  27. package/dist/api/developer.api.service.js.map +1 -1
  28. package/dist/api/http.client.js.map +1 -0
  29. package/dist/api/job.api.service.d.ts +2 -2
  30. package/dist/api/job.api.service.js +2 -2
  31. package/dist/api/job.api.service.js.map +1 -1
  32. package/dist/api/logs.api.service.d.ts +1 -1
  33. package/dist/api/logs.api.service.js +1 -1
  34. package/dist/api/logs.api.service.js.map +1 -1
  35. package/dist/api/marketplace.api.service.d.ts +6 -6
  36. package/dist/api/marketplace.api.service.js.map +1 -1
  37. package/dist/api/order.api.service.d.ts +3 -4
  38. package/dist/api/order.api.service.js +8 -10
  39. package/dist/api/order.api.service.js.map +1 -1
  40. package/dist/api/persona.api.service.d.ts +1 -1
  41. package/dist/api/persona.api.service.js +1 -1
  42. package/dist/api/persona.api.service.js.map +1 -1
  43. package/dist/api/postprocessor.api.service.d.ts +1 -1
  44. package/dist/api/postprocessor.api.service.js +1 -1
  45. package/dist/api/postprocessor.api.service.js.map +1 -1
  46. package/dist/api/preprocessor.api.service.d.ts +1 -1
  47. package/dist/api/preprocessor.api.service.js +1 -1
  48. package/dist/api/preprocessor.api.service.js.map +1 -1
  49. package/dist/api/products.api.service.d.ts +4 -4
  50. package/dist/api/products.api.service.js +6 -6
  51. package/dist/api/products.api.service.js.map +1 -1
  52. package/dist/api/resource.api.service.d.ts +76 -0
  53. package/dist/api/resource.api.service.js +74 -0
  54. package/dist/api/resource.api.service.js.map +1 -0
  55. package/dist/api/skills.api.service.d.ts +7 -15
  56. package/dist/api/skills.api.service.js +1 -1
  57. package/dist/api/skills.api.service.js.map +1 -1
  58. package/dist/api/tool.api.service.d.ts +1 -1
  59. package/dist/api/tool.api.service.js +1 -1
  60. package/dist/api/tool.api.service.js.map +1 -1
  61. package/dist/api/unifiedto.api.service.d.ts +1 -1
  62. package/dist/api/unifiedto.api.service.js +1 -1
  63. package/dist/api/unifiedto.api.service.js.map +1 -1
  64. package/dist/api/user.data.api.service.d.ts +7 -8
  65. package/dist/api/user.data.api.service.js +2 -3
  66. package/dist/api/user.data.api.service.js.map +1 -1
  67. package/dist/api/webhook.api.service.d.ts +1 -1
  68. package/dist/api/webhook.api.service.js +1 -1
  69. package/dist/api/webhook.api.service.js.map +1 -1
  70. package/dist/api/whatsapp-templates.api.service.d.ts +1 -1
  71. package/dist/api/whatsapp-templates.api.service.js +1 -1
  72. package/dist/api/whatsapp-templates.api.service.js.map +1 -1
  73. package/dist/api-exports.d.ts +14 -12
  74. package/dist/api-exports.js +8 -8
  75. package/dist/api-exports.js.map +1 -1
  76. package/dist/cli/command-definitions.js +32 -17
  77. package/dist/cli/command-definitions.js.map +1 -1
  78. package/dist/commands/admin.js +3 -24
  79. package/dist/commands/admin.js.map +1 -1
  80. package/dist/commands/agents.d.ts +8 -7
  81. package/dist/commands/agents.js +63 -21
  82. package/dist/commands/agents.js.map +1 -1
  83. package/dist/commands/channels.js +11 -23
  84. package/dist/commands/channels.js.map +1 -1
  85. package/dist/commands/chat.js +33 -47
  86. package/dist/commands/chat.js.map +1 -1
  87. package/dist/commands/chatClear.js +11 -41
  88. package/dist/commands/chatClear.js.map +1 -1
  89. package/dist/commands/compile.d.ts +26 -23
  90. package/dist/commands/compile.js +98 -403
  91. package/dist/commands/compile.js.map +1 -1
  92. package/dist/commands/completion.js +1 -1
  93. package/dist/commands/completion.js.map +1 -1
  94. package/dist/commands/deploy.js +55 -25
  95. package/dist/commands/deploy.js.map +1 -1
  96. package/dist/commands/dev.js +29 -45
  97. package/dist/commands/dev.js.map +1 -1
  98. package/dist/commands/env.js +12 -25
  99. package/dist/commands/env.js.map +1 -1
  100. package/dist/commands/evals.js +3 -20
  101. package/dist/commands/evals.js.map +1 -1
  102. package/dist/commands/features.js +10 -23
  103. package/dist/commands/features.js.map +1 -1
  104. package/dist/commands/index.d.ts +1 -0
  105. package/dist/commands/index.js +1 -0
  106. package/dist/commands/index.js.map +1 -1
  107. package/dist/commands/init.d.ts +1 -0
  108. package/dist/commands/init.js +135 -19
  109. package/dist/commands/init.js.map +1 -1
  110. package/dist/commands/integrations.js +26 -37
  111. package/dist/commands/integrations.js.map +1 -1
  112. package/dist/commands/jobs.js +32 -56
  113. package/dist/commands/jobs.js.map +1 -1
  114. package/dist/commands/logs.js +9 -20
  115. package/dist/commands/logs.js.map +1 -1
  116. package/dist/commands/marketplace.js +34 -52
  117. package/dist/commands/marketplace.js.map +1 -1
  118. package/dist/commands/mcp.js +10 -23
  119. package/dist/commands/mcp.js.map +1 -1
  120. package/dist/commands/persona.js +43 -74
  121. package/dist/commands/persona.js.map +1 -1
  122. package/dist/commands/postprocessors.js +15 -28
  123. package/dist/commands/postprocessors.js.map +1 -1
  124. package/dist/commands/preprocessors.js +15 -28
  125. package/dist/commands/preprocessors.js.map +1 -1
  126. package/dist/commands/production.js +30 -63
  127. package/dist/commands/production.js.map +1 -1
  128. package/dist/commands/push.js +294 -1241
  129. package/dist/commands/push.js.map +1 -1
  130. package/dist/commands/pushBackup.d.ts +22 -0
  131. package/dist/commands/pushBackup.js +133 -0
  132. package/dist/commands/pushBackup.js.map +1 -0
  133. package/dist/commands/resources.js +29 -72
  134. package/dist/commands/resources.js.map +1 -1
  135. package/dist/commands/skills.d.ts +1 -1
  136. package/dist/commands/skills.js +58 -70
  137. package/dist/commands/skills.js.map +1 -1
  138. package/dist/commands/sync.d.ts +1 -3
  139. package/dist/commands/sync.js +12 -24
  140. package/dist/commands/sync.js.map +1 -1
  141. package/dist/commands/test.js +135 -104
  142. package/dist/commands/test.js.map +1 -1
  143. package/dist/commands/webhooks.js +15 -28
  144. package/dist/commands/webhooks.js.map +1 -1
  145. package/dist/compiler/agent-traverser.d.ts +104 -0
  146. package/dist/compiler/agent-traverser.js +311 -0
  147. package/dist/compiler/agent-traverser.js.map +1 -0
  148. package/dist/compiler/bundler.d.ts +42 -0
  149. package/dist/compiler/bundler.js +187 -0
  150. package/dist/compiler/bundler.js.map +1 -0
  151. package/dist/compiler/compiler.d.ts +177 -0
  152. package/dist/compiler/compiler.js +580 -0
  153. package/dist/compiler/compiler.js.map +1 -0
  154. package/dist/compiler/index.d.ts +36 -0
  155. package/dist/compiler/index.js +42 -0
  156. package/dist/compiler/index.js.map +1 -0
  157. package/dist/compiler/plugins/base.d.ts +264 -0
  158. package/dist/compiler/plugins/base.js +307 -0
  159. package/dist/compiler/plugins/base.js.map +1 -0
  160. package/dist/compiler/plugins/job.plugin.d.ts +33 -0
  161. package/dist/compiler/plugins/job.plugin.js +143 -0
  162. package/dist/compiler/plugins/job.plugin.js.map +1 -0
  163. package/dist/compiler/plugins/mcp-server.plugin.d.ts +50 -0
  164. package/dist/compiler/plugins/mcp-server.plugin.js +186 -0
  165. package/dist/compiler/plugins/mcp-server.plugin.js.map +1 -0
  166. package/dist/compiler/plugins/postprocessor.plugin.d.ts +20 -0
  167. package/dist/compiler/plugins/postprocessor.plugin.js +39 -0
  168. package/dist/compiler/plugins/postprocessor.plugin.js.map +1 -0
  169. package/dist/compiler/plugins/preprocessor.plugin.d.ts +20 -0
  170. package/dist/compiler/plugins/preprocessor.plugin.js +48 -0
  171. package/dist/compiler/plugins/preprocessor.plugin.js.map +1 -0
  172. package/dist/compiler/plugins/processor-base.d.ts +16 -0
  173. package/dist/compiler/plugins/processor-base.js +34 -0
  174. package/dist/compiler/plugins/processor-base.js.map +1 -0
  175. package/dist/compiler/plugins/registry.d.ts +61 -0
  176. package/dist/compiler/plugins/registry.js +107 -0
  177. package/dist/compiler/plugins/registry.js.map +1 -0
  178. package/dist/compiler/plugins/skill.plugin.d.ts +71 -0
  179. package/dist/compiler/plugins/skill.plugin.js +243 -0
  180. package/dist/compiler/plugins/skill.plugin.js.map +1 -0
  181. package/dist/compiler/plugins/tool.plugin.d.ts +67 -0
  182. package/dist/compiler/plugins/tool.plugin.js +279 -0
  183. package/dist/compiler/plugins/tool.plugin.js.map +1 -0
  184. package/dist/compiler/plugins/webhook.plugin.d.ts +37 -0
  185. package/dist/compiler/plugins/webhook.plugin.js +127 -0
  186. package/dist/compiler/plugins/webhook.plugin.js.map +1 -0
  187. package/dist/compiler/source-writer.d.ts +98 -0
  188. package/dist/compiler/source-writer.js +223 -0
  189. package/dist/compiler/source-writer.js.map +1 -0
  190. package/dist/compiler/types.d.ts +289 -0
  191. package/dist/compiler/types.js +20 -0
  192. package/dist/compiler/types.js.map +1 -0
  193. package/dist/compiler/utils/ast-helpers.d.ts +57 -0
  194. package/dist/compiler/utils/ast-helpers.js +164 -0
  195. package/dist/compiler/utils/ast-helpers.js.map +1 -0
  196. package/dist/compiler/utils/common.d.ts +23 -0
  197. package/dist/compiler/utils/common.js +66 -0
  198. package/dist/compiler/utils/common.js.map +1 -0
  199. package/dist/compiler/utils/file-discovery.d.ts +34 -0
  200. package/dist/compiler/utils/file-discovery.js +68 -0
  201. package/dist/compiler/utils/file-discovery.js.map +1 -0
  202. package/dist/compiler/utils/path-resolver.d.ts +25 -0
  203. package/dist/compiler/utils/path-resolver.js +66 -0
  204. package/dist/compiler/utils/path-resolver.js.map +1 -0
  205. package/dist/compiler/utils/schema-converter.d.ts +26 -0
  206. package/dist/compiler/utils/schema-converter.js +94 -0
  207. package/dist/compiler/utils/schema-converter.js.map +1 -0
  208. package/dist/config/compile.constants.d.ts +2 -22
  209. package/dist/config/compile.constants.js +2 -49
  210. package/dist/config/compile.constants.js.map +1 -1
  211. package/dist/config/constants.d.ts +18 -2
  212. package/dist/config/constants.js +28 -8
  213. package/dist/config/constants.js.map +1 -1
  214. package/dist/config/dev.constants.d.ts +0 -10
  215. package/dist/config/dev.constants.js +0 -10
  216. package/dist/config/dev.constants.js.map +1 -1
  217. package/dist/index.js +7 -0
  218. package/dist/index.js.map +1 -1
  219. package/dist/instances/basket.instance.js.map +1 -0
  220. package/dist/instances/data.entry.instance.js.map +1 -0
  221. package/dist/instances/job.instance.js.map +1 -0
  222. package/dist/instances/order.instance.js.map +1 -0
  223. package/dist/instances/product.instance.js.map +1 -0
  224. package/dist/instances/product.pagination.instance.js.map +1 -0
  225. package/dist/instances/product.search.instance.js.map +1 -0
  226. package/dist/instances/user.instance.js.map +1 -0
  227. package/dist/interfaces/admin.d.ts +0 -38
  228. package/dist/interfaces/backup.d.ts +125 -0
  229. package/dist/interfaces/backup.js +8 -0
  230. package/dist/interfaces/backup.js.map +1 -0
  231. package/dist/interfaces/baskets.d.ts +0 -56
  232. package/dist/interfaces/common.d.ts +1 -0
  233. package/dist/interfaces/deploy.d.ts +0 -15
  234. package/dist/interfaces/index.d.ts +1 -1
  235. package/dist/interfaces/marketplace.d.ts +51 -0
  236. package/dist/interfaces/marketplace.js +1 -1
  237. package/dist/interfaces/marketplace.js.map +1 -1
  238. package/dist/interfaces/message.d.ts +0 -3
  239. package/dist/interfaces/orders.d.ts +0 -24
  240. package/dist/interfaces/postprocessors.d.ts +0 -18
  241. package/dist/interfaces/preprocessors.d.ts +0 -18
  242. package/dist/interfaces/skills.d.ts +61 -0
  243. package/dist/interfaces/user.d.ts +25 -0
  244. package/dist/interfaces/webhooks.d.ts +0 -9
  245. package/dist/primitives/base.handler.d.ts +106 -0
  246. package/dist/primitives/base.handler.js +370 -0
  247. package/dist/primitives/base.handler.js.map +1 -0
  248. package/dist/primitives/index.d.ts +47 -0
  249. package/dist/primitives/index.js +78 -0
  250. package/dist/primitives/index.js.map +1 -0
  251. package/dist/primitives/job.handler.d.ts +52 -0
  252. package/dist/primitives/job.handler.js +118 -0
  253. package/dist/primitives/job.handler.js.map +1 -0
  254. package/dist/primitives/mcp-server.handler.d.ts +54 -0
  255. package/dist/primitives/mcp-server.handler.js +91 -0
  256. package/dist/primitives/mcp-server.handler.js.map +1 -0
  257. package/dist/primitives/postprocessor.handler.d.ts +49 -0
  258. package/dist/primitives/postprocessor.handler.js +81 -0
  259. package/dist/primitives/postprocessor.handler.js.map +1 -0
  260. package/dist/primitives/preprocessor.handler.d.ts +54 -0
  261. package/dist/primitives/preprocessor.handler.js +95 -0
  262. package/dist/primitives/preprocessor.handler.js.map +1 -0
  263. package/dist/primitives/skill.handler.d.ts +44 -0
  264. package/dist/primitives/skill.handler.js +192 -0
  265. package/dist/primitives/skill.handler.js.map +1 -0
  266. package/dist/primitives/types.d.ts +72 -0
  267. package/dist/primitives/types.js +17 -0
  268. package/dist/primitives/types.js.map +1 -0
  269. package/dist/primitives/webhook.handler.d.ts +50 -0
  270. package/dist/primitives/webhook.handler.js +96 -0
  271. package/dist/primitives/webhook.handler.js.map +1 -0
  272. package/dist/services/auth.js +1 -2
  273. package/dist/services/auth.js.map +1 -1
  274. package/dist/services/sandbox.service.d.ts +103 -0
  275. package/dist/services/sandbox.service.js +479 -0
  276. package/dist/services/sandbox.service.js.map +1 -0
  277. package/dist/types/api-contracts.d.ts +1 -1
  278. package/dist/types/index.d.ts +2 -1
  279. package/dist/types/index.js.map +1 -1
  280. package/dist/types/skill.d.ts +8 -2
  281. package/dist/types/skill.js +8 -0
  282. package/dist/types/skill.js.map +1 -1
  283. package/dist/types/yaml.types.d.ts +69 -0
  284. package/dist/types/yaml.types.js +6 -0
  285. package/dist/types/yaml.types.js.map +1 -0
  286. package/dist/utils/artifact-loader.d.ts +108 -0
  287. package/dist/utils/artifact-loader.js +188 -0
  288. package/dist/utils/artifact-loader.js.map +1 -0
  289. package/dist/utils/backup-helpers.d.ts +122 -0
  290. package/dist/utils/backup-helpers.js +274 -0
  291. package/dist/utils/backup-helpers.js.map +1 -0
  292. package/dist/utils/cli.d.ts +8 -0
  293. package/dist/utils/cli.js +19 -2
  294. package/dist/utils/cli.js.map +1 -1
  295. package/dist/utils/command-utils.d.ts +42 -0
  296. package/dist/utils/command-utils.js +83 -0
  297. package/dist/utils/command-utils.js.map +1 -0
  298. package/dist/utils/deploy-helpers.d.ts +0 -29
  299. package/dist/utils/deploy-helpers.js +0 -70
  300. package/dist/utils/deploy-helpers.js.map +1 -1
  301. package/dist/utils/dev-api.d.ts +3 -99
  302. package/dist/utils/dev-api.js +3 -430
  303. package/dist/utils/dev-api.js.map +1 -1
  304. package/dist/utils/dev-server.d.ts +3 -1
  305. package/dist/utils/dev-server.js +69 -145
  306. package/dist/utils/dev-server.js.map +1 -1
  307. package/dist/utils/dev-watcher.d.ts +0 -1
  308. package/dist/utils/dev-watcher.js +23 -8
  309. package/dist/utils/dev-watcher.js.map +1 -1
  310. package/dist/utils/env-loader.utils.d.ts +10 -1
  311. package/dist/utils/env-loader.utils.js +39 -31
  312. package/dist/utils/env-loader.utils.js.map +1 -1
  313. package/dist/utils/files.d.ts +47 -3
  314. package/dist/utils/files.js +98 -40
  315. package/dist/utils/files.js.map +1 -1
  316. package/dist/utils/init-agent.js +1 -2
  317. package/dist/utils/init-agent.js.map +1 -1
  318. package/dist/utils/init-helpers.d.ts +2 -10
  319. package/dist/utils/init-helpers.js +9 -17
  320. package/dist/utils/init-helpers.js.map +1 -1
  321. package/dist/utils/init-prompts.d.ts +0 -8
  322. package/dist/utils/init-prompts.js +0 -22
  323. package/dist/utils/init-prompts.js.map +1 -1
  324. package/dist/utils/prompt-handler.d.ts +3 -0
  325. package/dist/utils/prompt-handler.js +13 -0
  326. package/dist/utils/prompt-handler.js.map +1 -1
  327. package/dist/utils/sandbox-storage.d.ts +6 -5
  328. package/dist/utils/sandbox-storage.js +12 -12
  329. package/dist/utils/sandbox-storage.js.map +1 -1
  330. package/dist/utils/sandbox.d.ts +7 -30
  331. package/dist/utils/sandbox.js +247 -223
  332. package/dist/utils/sandbox.js.map +1 -1
  333. package/dist/utils/semver.d.ts +12 -0
  334. package/dist/utils/semver.js +23 -0
  335. package/dist/utils/semver.js.map +1 -1
  336. package/dist/utils/sync-display.d.ts +9 -0
  337. package/dist/utils/sync-display.js +67 -0
  338. package/dist/utils/sync-display.js.map +1 -0
  339. package/dist/utils/sync-fetch.d.ts +23 -0
  340. package/dist/utils/sync-fetch.js +64 -0
  341. package/dist/utils/sync-fetch.js.map +1 -0
  342. package/dist/utils/sync-helpers.d.ts +4 -59
  343. package/dist/utils/sync-helpers.js +4 -206
  344. package/dist/utils/sync-helpers.js.map +1 -1
  345. package/dist/web/app.css +912 -186
  346. package/dist/web/app.js +46 -46
  347. package/docs/API_INDEX.md +100 -0
  348. package/docs/API_REFERENCE.md +773 -0
  349. package/docs/CLI_REFERENCE.md +924 -0
  350. package/docs/GETTING_STARTED.md +862 -0
  351. package/docs/README.md +270 -0
  352. package/docs/api/AI.md +882 -0
  353. package/docs/api/Baskets.md +511 -0
  354. package/docs/api/CDN.md +524 -0
  355. package/docs/api/Data.md +446 -0
  356. package/docs/api/Jobs.md +524 -0
  357. package/docs/api/LuaAgent.md +454 -0
  358. package/docs/api/LuaJob.md +604 -0
  359. package/docs/api/LuaSkill.md +396 -0
  360. package/docs/api/LuaTool.md +521 -0
  361. package/docs/api/LuaWebhook.md +601 -0
  362. package/docs/api/Orders.md +514 -0
  363. package/docs/api/PostProcessor.md +565 -0
  364. package/docs/api/PreProcessor.md +630 -0
  365. package/docs/api/Products.md +507 -0
  366. package/docs/api/Templates.md +662 -0
  367. package/docs/api/User.md +567 -0
  368. package/docs/archive/DEVELOPMENT_GUIDE_V1.md +1294 -0
  369. package/docs/compiler-v2/ASSESSMENT.md +205 -0
  370. package/docs/compiler-v2/TEST_PLAN.md +306 -0
  371. package/package.json +3 -7
  372. package/template/tsconfig.json +1 -1
  373. package/dist/common/basket.instance.js.map +0 -1
  374. package/dist/common/data.entry.instance.js.map +0 -1
  375. package/dist/common/http.client.js.map +0 -1
  376. package/dist/common/job.instance.js.map +0 -1
  377. package/dist/common/order.instance.js.map +0 -1
  378. package/dist/common/product.instance.js.map +0 -1
  379. package/dist/common/product.pagination.instance.js.map +0 -1
  380. package/dist/common/product.search.instance.js.map +0 -1
  381. package/dist/common/user.instance.js.map +0 -1
  382. package/dist/config/auth.constants.d.ts +0 -11
  383. package/dist/config/auth.constants.js +0 -12
  384. package/dist/config/auth.constants.js.map +0 -1
  385. package/dist/config/init.constants.d.ts +0 -15
  386. package/dist/config/init.constants.js +0 -20
  387. package/dist/config/init.constants.js.map +0 -1
  388. package/dist/interfaces/compile.d.ts +0 -12
  389. package/dist/interfaces/compile.js +0 -5
  390. package/dist/interfaces/compile.js.map +0 -1
  391. package/dist/types/compile.types.d.ts +0 -131
  392. package/dist/types/compile.types.js +0 -6
  393. package/dist/types/compile.types.js.map +0 -1
  394. package/dist/utils/agent-code-utils.d.ts +0 -25
  395. package/dist/utils/agent-code-utils.js +0 -107
  396. package/dist/utils/agent-code-utils.js.map +0 -1
  397. package/dist/utils/bundling.d.ts +0 -89
  398. package/dist/utils/bundling.js +0 -1068
  399. package/dist/utils/bundling.js.map +0 -1
  400. package/dist/utils/compile.d.ts +0 -116
  401. package/dist/utils/compile.js +0 -1062
  402. package/dist/utils/compile.js.map +0 -1
  403. package/dist/utils/deploy-api.d.ts +0 -26
  404. package/dist/utils/deploy-api.js +0 -54
  405. package/dist/utils/deploy-api.js.map +0 -1
  406. package/dist/utils/deployment.d.ts +0 -26
  407. package/dist/utils/deployment.js +0 -218
  408. package/dist/utils/deployment.js.map +0 -1
  409. package/dist/utils/dev-helpers.d.ts +0 -47
  410. package/dist/utils/dev-helpers.js +0 -82
  411. package/dist/utils/dev-helpers.js.map +0 -1
  412. package/dist/utils/job-management.d.ts +0 -27
  413. package/dist/utils/job-management.js +0 -248
  414. package/dist/utils/job-management.js.map +0 -1
  415. package/dist/utils/mcp-server-management.d.ts +0 -26
  416. package/dist/utils/mcp-server-management.js +0 -197
  417. package/dist/utils/mcp-server-management.js.map +0 -1
  418. package/dist/utils/postprocessor-management.d.ts +0 -9
  419. package/dist/utils/postprocessor-management.js +0 -117
  420. package/dist/utils/postprocessor-management.js.map +0 -1
  421. package/dist/utils/pre-bundle-jobs.d.ts +0 -27
  422. package/dist/utils/pre-bundle-jobs.js +0 -189
  423. package/dist/utils/pre-bundle-jobs.js.map +0 -1
  424. package/dist/utils/preprocessor-management.d.ts +0 -9
  425. package/dist/utils/preprocessor-management.js +0 -117
  426. package/dist/utils/preprocessor-management.js.map +0 -1
  427. package/dist/utils/push-api.d.ts +0 -15
  428. package/dist/utils/push-api.js +0 -49
  429. package/dist/utils/push-api.js.map +0 -1
  430. package/dist/utils/push-helpers.d.ts +0 -82
  431. package/dist/utils/push-helpers.js +0 -246
  432. package/dist/utils/push-helpers.js.map +0 -1
  433. package/dist/utils/skill-management.d.ts +0 -39
  434. package/dist/utils/skill-management.js +0 -299
  435. package/dist/utils/skill-management.js.map +0 -1
  436. package/dist/utils/test-helpers.d.ts +0 -33
  437. package/dist/utils/test-helpers.js +0 -84
  438. package/dist/utils/test-helpers.js.map +0 -1
  439. package/dist/utils/test-prompts.d.ts +0 -23
  440. package/dist/utils/test-prompts.js +0 -187
  441. package/dist/utils/test-prompts.js.map +0 -1
  442. package/dist/utils/tool-detection.d.ts +0 -19
  443. package/dist/utils/tool-detection.js +0 -125
  444. package/dist/utils/tool-detection.js.map +0 -1
  445. package/dist/utils/webhook-management.d.ts +0 -27
  446. package/dist/utils/webhook-management.js +0 -241
  447. package/dist/utils/webhook-management.js.map +0 -1
  448. /package/dist/{common → api}/http.client.d.ts +0 -0
  449. /package/dist/{common → api}/http.client.js +0 -0
  450. /package/dist/{common → instances}/basket.instance.d.ts +0 -0
  451. /package/dist/{common → instances}/basket.instance.js +0 -0
  452. /package/dist/{common → instances}/data.entry.instance.d.ts +0 -0
  453. /package/dist/{common → instances}/data.entry.instance.js +0 -0
  454. /package/dist/{common → instances}/job.instance.d.ts +0 -0
  455. /package/dist/{common → instances}/job.instance.js +0 -0
  456. /package/dist/{common → instances}/order.instance.d.ts +0 -0
  457. /package/dist/{common → instances}/order.instance.js +0 -0
  458. /package/dist/{common → instances}/product.instance.d.ts +0 -0
  459. /package/dist/{common → instances}/product.instance.js +0 -0
  460. /package/dist/{common → instances}/product.pagination.instance.d.ts +0 -0
  461. /package/dist/{common → instances}/product.pagination.instance.js +0 -0
  462. /package/dist/{common → instances}/product.search.instance.d.ts +0 -0
  463. /package/dist/{common → instances}/product.search.instance.js +0 -0
  464. /package/dist/{common → instances}/user.instance.d.ts +0 -0
  465. /package/dist/{common → instances}/user.instance.js +0 -0
@@ -0,0 +1,279 @@
1
+ /**
2
+ * Tool compilation plugin.
3
+ *
4
+ * BACKWARD COMPATIBLE: Detects BOTH patterns:
5
+ * 1. Class-based (legacy): class MyTool extends LuaTool { ... }
6
+ * 2. Function-based (new): const myTool = defineTool({ ... })
7
+ *
8
+ * NOTE: This plugin extends BasePlugin but overrides class-based detection because:
9
+ * - Class-based tools use extends/implements detection (not `new LuaTool` instantiation)
10
+ * - Class-based metadata is extracted from class properties, not config objects
11
+ * - Entry point generation differs significantly for class-based tools
12
+ */
13
+ import { Node } from 'ts-morph';
14
+ import { PrimitiveKind, } from '../types.js';
15
+ import { BasePlugin, validationError, validationWarning } from './base.js';
16
+ import { extractSchemaProperty } from '../utils/ast-helpers.js';
17
+ import { zodToJsonSchema } from '../utils/schema-converter.js';
18
+ /**
19
+ * Plugin for compiling tool primitives.
20
+ * Extends BasePlugin for function-based detection; overrides class-based detection.
21
+ */
22
+ export class ToolPlugin extends BasePlugin {
23
+ constructor() {
24
+ super(...arguments);
25
+ this.kind = 'tool';
26
+ this.displayName = 'Tool';
27
+ this.defineFunction = 'defineTool';
28
+ this.legacyClassNames = ['LuaTool'];
29
+ }
30
+ /**
31
+ * Extract metadata from tool config object (function-based pattern).
32
+ * Used by BasePlugin's detectFunctionBased().
33
+ */
34
+ extractFromConfig(config, exportName, sourcePath, position, pattern) {
35
+ const common = this.extractCommonFields(config, exportName, sourcePath, position);
36
+ if (!common)
37
+ return null;
38
+ return {
39
+ kind: this.kind,
40
+ ...common,
41
+ metadata: {
42
+ pattern,
43
+ hasInputSchema: config.getProperty('inputSchema') !== undefined,
44
+ hasCondition: config.getProperty('condition') !== undefined,
45
+ hasExecute: config.getProperty('execute') !== undefined,
46
+ },
47
+ };
48
+ }
49
+ /**
50
+ * Override class-based detection to detect class DEFINITIONS (extends/implements)
51
+ * instead of class INSTANTIATIONS (new LuaTool).
52
+ *
53
+ * Detects:
54
+ * - class MyTool extends LuaTool { ... }
55
+ * - export default class MyTool extends LuaTool { ... }
56
+ */
57
+ detectClassBased(sourceFile, primitives) {
58
+ sourceFile.getClasses().forEach(classDecl => {
59
+ if (!this.isToolClass(classDecl))
60
+ return;
61
+ const className = classDecl.getName();
62
+ if (!className)
63
+ return;
64
+ // Check if this is a default export
65
+ const isDefaultExport = classDecl.isDefaultExport();
66
+ // Extract name from class property or derive from class name
67
+ let name = this.extractClassProperty(classDecl, 'name') ||
68
+ className.replace(/Tool$/, '').toLowerCase().replace(/([A-Z])/g, '-$1').replace(/^-/, '');
69
+ primitives.push({
70
+ kind: this.kind,
71
+ name,
72
+ description: this.extractClassProperty(classDecl, 'description') || '',
73
+ sourcePath: sourceFile.getFilePath(),
74
+ exportName: isDefaultExport ? 'default' : className,
75
+ isDefaultExport,
76
+ line: classDecl.getStartLineNumber(),
77
+ column: 1,
78
+ metadata: {
79
+ pattern: 'class',
80
+ className,
81
+ hasInputSchema: classDecl.getProperty('inputSchema') !== undefined,
82
+ hasCondition: classDecl.getMethod('condition') !== undefined || classDecl.getProperty('condition') !== undefined,
83
+ hasExecute: classDecl.getMethod('execute') !== undefined || classDecl.getProperty('execute') !== undefined,
84
+ },
85
+ });
86
+ });
87
+ }
88
+ /**
89
+ * Check if a class extends or implements LuaTool.
90
+ */
91
+ isToolClass(classDecl) {
92
+ // Check extends
93
+ const extendsClause = classDecl.getExtends();
94
+ if (extendsClause && this.legacyClassNames.includes(extendsClause.getExpression().getText())) {
95
+ return true;
96
+ }
97
+ // Check implements
98
+ for (const impl of classDecl.getImplements()) {
99
+ if (this.legacyClassNames.includes(impl.getExpression().getText())) {
100
+ return true;
101
+ }
102
+ }
103
+ return false;
104
+ }
105
+ /**
106
+ * Extract a string property from a class declaration.
107
+ */
108
+ extractClassProperty(classDecl, propName) {
109
+ const prop = classDecl.getProperty(propName);
110
+ if (!prop)
111
+ return undefined;
112
+ const initializer = prop.getInitializer();
113
+ if (initializer && Node.isStringLiteral(initializer)) {
114
+ return initializer.getLiteralValue();
115
+ }
116
+ return undefined;
117
+ }
118
+ validate(metadata) {
119
+ const errors = [];
120
+ const warnings = [];
121
+ if (!metadata.name) {
122
+ errors.push(validationError('Tool must have a name', {
123
+ line: metadata.line,
124
+ suggestion: 'Add a name property: name: "my-tool"',
125
+ }));
126
+ }
127
+ if (!metadata.metadata.hasExecute) {
128
+ errors.push(validationError('Tool must have an execute function', {
129
+ line: metadata.line,
130
+ suggestion: 'Add an execute function: execute: async (input, context) => { ... }',
131
+ }));
132
+ }
133
+ if (!metadata.description) {
134
+ warnings.push(validationWarning('Tool should have a description for better AI understanding', {
135
+ line: metadata.line,
136
+ suggestion: 'Add a description: description: "What this tool does"',
137
+ }));
138
+ }
139
+ if (!metadata.metadata.hasInputSchema) {
140
+ warnings.push(validationWarning('Tool should have an inputSchema for type safety', {
141
+ line: metadata.line,
142
+ suggestion: 'Add a schema: inputSchema: z.object({ ... })',
143
+ }));
144
+ }
145
+ if (metadata.name && !/^[a-z][a-z0-9-_]*$/.test(metadata.name)) {
146
+ warnings.push(validationWarning('Tool name should be lowercase with hyphens or underscores', { line: metadata.line }));
147
+ }
148
+ return { valid: errors.length === 0, errors, warnings };
149
+ }
150
+ /**
151
+ * Override entry point generation to handle class-based tools specially.
152
+ * Function-based tools use BasePlugin's implementation.
153
+ */
154
+ generateEntryPoint(metadata) {
155
+ // Class-based tools need special wrapper that instantiates the class
156
+ if (metadata.metadata.pattern === 'class') {
157
+ return this.generateClassBasedEntryPoint(metadata);
158
+ }
159
+ // Function-based tools use base implementation
160
+ return super.generateEntryPoint(metadata);
161
+ }
162
+ /**
163
+ * Generate entry point for class-based tools.
164
+ * Creates an instance and wraps it in the standard primitive format.
165
+ */
166
+ generateClassBasedEntryPoint(metadata) {
167
+ // For default exports, use default import syntax
168
+ const importStatement = metadata.isDefaultExport
169
+ ? `import __ToolClass__ from '${metadata.sourcePath}';`
170
+ : `import { __lua_target__ as __ToolClass__ } from '${metadata.sourcePath}';`;
171
+ // For default exports, we don't re-export the class
172
+ const exportStatement = metadata.isDefaultExport
173
+ ? ''
174
+ : `export { __ToolClass__ as ${metadata.exportName} };`;
175
+ return `
176
+ // =============================================================================
177
+ // AUTO-GENERATED ENTRY POINT (Class-based)
178
+ // Tool: ${metadata.name}
179
+ // Source: ${metadata.sourcePath}
180
+ // =============================================================================
181
+
182
+ ${importStatement}
183
+
184
+ const toolInstance = new __ToolClass__();
185
+
186
+ const __lua_primitive__ = {
187
+ version: '2.0.0',
188
+ kind: 'tool',
189
+ name: ${JSON.stringify(metadata.name)},
190
+ description: ${JSON.stringify(metadata.description)},
191
+ exportName: ${JSON.stringify(metadata.exportName)},
192
+ pattern: 'class',
193
+ };
194
+
195
+ export default {
196
+ __lua_primitive__,
197
+ primitive: {
198
+ kind: 'tool',
199
+ name: toolInstance.name,
200
+ description: toolInstance.description,
201
+ inputSchema: toolInstance.inputSchema,
202
+ execute: toolInstance.execute.bind(toolInstance),
203
+ condition: toolInstance.condition?.bind(toolInstance),
204
+ },
205
+ };
206
+
207
+ ${exportStatement}
208
+ `;
209
+ }
210
+ /**
211
+ * Add runtime validation for execute function.
212
+ */
213
+ getRuntimeValidation() {
214
+ return `
215
+ if (typeof primitive.primitive?.execute !== 'function') {
216
+ throw new Error('[Lua] Invalid tool artifact: execute is not a function');
217
+ }`;
218
+ }
219
+ async extractSchemas(metadata, project) {
220
+ if (!metadata.metadata.hasInputSchema)
221
+ return undefined;
222
+ const sourceFile = project.getSourceFile(metadata.sourcePath);
223
+ if (!sourceFile)
224
+ return undefined;
225
+ let schemaNode;
226
+ if (metadata.metadata.pattern === 'class' && metadata.metadata.className) {
227
+ // Class-based: class X implements LuaTool { inputSchema = z.object(...) }
228
+ const classDecl = sourceFile.getClass(metadata.metadata.className);
229
+ if (!classDecl)
230
+ return undefined;
231
+ const inputSchemaProp = classDecl.getProperty('inputSchema');
232
+ if (!inputSchemaProp)
233
+ return undefined;
234
+ schemaNode = inputSchemaProp.getInitializer();
235
+ }
236
+ else {
237
+ // Function-based: const x = defineTool({ inputSchema: z.object(...) })
238
+ const varDecl = sourceFile.getVariableDeclaration(metadata.exportName);
239
+ if (!varDecl)
240
+ return undefined;
241
+ const initializer = varDecl.getInitializer();
242
+ if (!initializer || !Node.isCallExpression(initializer))
243
+ return undefined;
244
+ const args = initializer.getArguments();
245
+ if (args.length === 0)
246
+ return undefined;
247
+ const config = args[0];
248
+ if (!Node.isObjectLiteralExpression(config))
249
+ return undefined;
250
+ schemaNode = extractSchemaProperty(config, 'inputSchema');
251
+ }
252
+ if (!schemaNode)
253
+ return undefined;
254
+ try {
255
+ const jsonSchema = await zodToJsonSchema(schemaNode);
256
+ return { input: jsonSchema };
257
+ }
258
+ catch (error) {
259
+ console.warn(`Warning: Could not convert schema for ${metadata.name}:`, error);
260
+ return undefined;
261
+ }
262
+ }
263
+ toManifestEntry(compiled, _context) {
264
+ const tool = {
265
+ kind: PrimitiveKind.TOOL,
266
+ name: compiled.name,
267
+ description: compiled.description,
268
+ path: `artifacts/${compiled.kind}/${compiled.name}.js`,
269
+ sourcePath: compiled.sourcePath,
270
+ hash: compiled.artifact.hash,
271
+ schemas: compiled.schemas ? {
272
+ input: compiled.schemas.input,
273
+ output: compiled.schemas.output,
274
+ } : undefined,
275
+ };
276
+ return tool;
277
+ }
278
+ }
279
+ //# sourceMappingURL=tool.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.plugin.js","sourceRoot":"","sources":["../../../src/compiler/plugins/tool.plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Webhook compilation plugin.
3
+ *
4
+ * BACKWARD COMPATIBLE: Detects BOTH patterns:
5
+ * 1. Class-based (legacy): new LuaWebhook({ ... })
6
+ * 2. Function-based (new): const myWebhook = defineWebhook({ ... })
7
+ */
8
+ import { Project, ObjectLiteralExpression } from 'ts-morph';
9
+ import { type WebhookMetadata, type WebhookMetadataFields, type ValidationResult, type SchemaSet, type ManifestContext, type CompiledPrimitive, type ManifestPrimitive } from '../types.js';
10
+ import { BasePlugin } from './base.js';
11
+ /**
12
+ * Plugin for compiling webhook primitives.
13
+ * Extends BasePlugin for common detection/entry point/postProcess logic.
14
+ */
15
+ export declare class WebhookPlugin extends BasePlugin<WebhookMetadataFields> {
16
+ readonly kind = "webhook";
17
+ readonly displayName = "Webhook";
18
+ readonly defineFunction = "defineWebhook";
19
+ readonly legacyClassNames: string[];
20
+ /**
21
+ * Extract metadata from webhook config object.
22
+ */
23
+ protected extractFromConfig(config: ObjectLiteralExpression, exportName: string, sourcePath: string, position: {
24
+ line: number;
25
+ column: number;
26
+ }, pattern: 'function' | 'class'): WebhookMetadata | null;
27
+ validate(metadata: WebhookMetadata): ValidationResult;
28
+ /**
29
+ * Add runtime validation for execute function.
30
+ */
31
+ protected getRuntimeValidation(): string;
32
+ /**
33
+ * Extract query, header, and body schemas from webhook.
34
+ */
35
+ extractSchemas(metadata: WebhookMetadata, project: Project): Promise<SchemaSet | undefined>;
36
+ toManifestEntry(compiled: CompiledPrimitive, _context?: ManifestContext): ManifestPrimitive;
37
+ }
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Webhook compilation plugin.
3
+ *
4
+ * BACKWARD COMPATIBLE: Detects BOTH patterns:
5
+ * 1. Class-based (legacy): new LuaWebhook({ ... })
6
+ * 2. Function-based (new): const myWebhook = defineWebhook({ ... })
7
+ */
8
+ import { Node } from 'ts-morph';
9
+ import { PrimitiveKind, } from '../types.js';
10
+ import { BasePlugin, validationError, validationWarning } from './base.js';
11
+ import { extractSchemaProperty } from '../utils/ast-helpers.js';
12
+ import { zodToJsonSchema } from '../utils/schema-converter.js';
13
+ /**
14
+ * Plugin for compiling webhook primitives.
15
+ * Extends BasePlugin for common detection/entry point/postProcess logic.
16
+ */
17
+ export class WebhookPlugin extends BasePlugin {
18
+ constructor() {
19
+ super(...arguments);
20
+ this.kind = 'webhook';
21
+ this.displayName = 'Webhook';
22
+ this.defineFunction = 'defineWebhook';
23
+ this.legacyClassNames = ['LuaWebhook'];
24
+ }
25
+ /**
26
+ * Extract metadata from webhook config object.
27
+ */
28
+ extractFromConfig(config, exportName, sourcePath, position, pattern) {
29
+ const common = this.extractCommonFields(config, exportName, sourcePath, position);
30
+ if (!common)
31
+ return null;
32
+ return {
33
+ kind: this.kind,
34
+ ...common,
35
+ metadata: {
36
+ pattern,
37
+ hasExecute: config.getProperty('execute') !== undefined,
38
+ hasQuerySchema: config.getProperty('querySchema') !== undefined,
39
+ hasHeaderSchema: config.getProperty('headerSchema') !== undefined,
40
+ hasBodySchema: config.getProperty('bodySchema') !== undefined,
41
+ },
42
+ };
43
+ }
44
+ validate(metadata) {
45
+ const errors = [];
46
+ const warnings = [];
47
+ if (!metadata.name) {
48
+ errors.push(validationError('Webhook must have a name', { line: metadata.line }));
49
+ }
50
+ if (!metadata.metadata.hasExecute) {
51
+ errors.push(validationError('Webhook must have an execute function', { line: metadata.line }));
52
+ }
53
+ if (!metadata.description) {
54
+ warnings.push(validationWarning('Webhook should have a description', { line: metadata.line }));
55
+ }
56
+ // Validate name format (URL-safe)
57
+ if (metadata.name && !/^[a-z][a-z0-9-]*$/.test(metadata.name)) {
58
+ warnings.push(validationWarning('Webhook name should be URL-safe (lowercase, hyphens only)', { line: metadata.line }));
59
+ }
60
+ return { valid: errors.length === 0, errors, warnings };
61
+ }
62
+ /**
63
+ * Add runtime validation for execute function.
64
+ */
65
+ getRuntimeValidation() {
66
+ return `
67
+ if (typeof primitive.primitive?.execute !== 'function') {
68
+ throw new Error('[Lua] Invalid webhook artifact: execute is not a function');
69
+ }`;
70
+ }
71
+ /**
72
+ * Extract query, header, and body schemas from webhook.
73
+ */
74
+ async extractSchemas(metadata, project) {
75
+ const sourceFile = project.getSourceFile(metadata.sourcePath);
76
+ if (!sourceFile)
77
+ return undefined;
78
+ const varDecl = sourceFile.getVariableDeclaration(metadata.exportName);
79
+ if (!varDecl)
80
+ return undefined;
81
+ const initializer = varDecl.getInitializer();
82
+ if (!initializer || !Node.isCallExpression(initializer))
83
+ return undefined;
84
+ const args = initializer.getArguments();
85
+ if (args.length === 0)
86
+ return undefined;
87
+ const config = args[0];
88
+ if (!Node.isObjectLiteralExpression(config))
89
+ return undefined;
90
+ const schemas = {};
91
+ // Extract each schema type
92
+ const schemaProps = ['querySchema', 'headerSchema', 'bodySchema'];
93
+ for (const propName of schemaProps) {
94
+ if (metadata.metadata[`has${propName.charAt(0).toUpperCase() + propName.slice(1)}`]) {
95
+ const schemaNode = extractSchemaProperty(config, propName);
96
+ if (schemaNode) {
97
+ try {
98
+ const jsonSchema = await zodToJsonSchema(schemaNode);
99
+ const key = propName.replace('Schema', '');
100
+ schemas[key] = jsonSchema;
101
+ }
102
+ catch (error) {
103
+ console.warn(`Warning: Could not convert ${propName} for ${metadata.name}:`, error);
104
+ }
105
+ }
106
+ }
107
+ }
108
+ return Object.keys(schemas).length > 0 ? schemas : undefined;
109
+ }
110
+ toManifestEntry(compiled, _context) {
111
+ const webhook = {
112
+ kind: PrimitiveKind.WEBHOOK,
113
+ name: compiled.name,
114
+ description: compiled.description,
115
+ path: `artifacts/${compiled.kind}/${compiled.name}.js`,
116
+ sourcePath: compiled.sourcePath,
117
+ hash: compiled.artifact.hash,
118
+ schemas: compiled.schemas ? {
119
+ query: compiled.schemas.query,
120
+ headers: compiled.schemas.headers,
121
+ body: compiled.schemas.body,
122
+ } : undefined,
123
+ };
124
+ return webhook;
125
+ }
126
+ }
127
+ //# sourceMappingURL=webhook.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook.plugin.js","sourceRoot":"","sources":["../../../src/compiler/plugins/webhook.plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Source Writer
3
+ *
4
+ * Utilities for modifying Lua agent source code via AST manipulation.
5
+ * All ts-morph write operations are centralized here.
6
+ *
7
+ * ## Current Implementation
8
+ *
9
+ * Currently only supports updating `LuaAgent` config properties (name, persona)
10
+ * in the entry point file. This covers the main use cases:
11
+ * - `lua init` - setting initial agent config
12
+ * - `lua sync` - syncing agent name/persona from server
13
+ * - `lua persona` - updating persona
14
+ *
15
+ * ## Future Extensibility
16
+ *
17
+ * To support modifying other primitives (skills, jobs, webhooks, etc.),
18
+ * this module could be extended with a generic API like:
19
+ *
20
+ * ```typescript
21
+ * // Generic primitive update
22
+ * updatePrimitiveConfig({
23
+ * kind: 'LuaSkill', // Target class: LuaSkill, LuaJob, LuaWebhook, etc.
24
+ * name: 'my-skill', // Find by name property
25
+ * file: 'src/skills/my.ts', // Or specify file directly
26
+ * updates: {
27
+ * description: 'New desc',
28
+ * context: 'New context',
29
+ * }
30
+ * });
31
+ *
32
+ * // Or batch updates across files
33
+ * updatePrimitivesFromManifest(manifest, serverData);
34
+ * ```
35
+ *
36
+ * Key considerations for generic implementation:
37
+ * - Support different primitive classes (LuaSkill, LuaJob, LuaWebhook, LuaMCPServer)
38
+ * - Find primitives across multiple files (not just entry point)
39
+ * - Handle different value types (strings, numbers, objects, arrays)
40
+ * - Support adding/removing properties, not just updating
41
+ * - Preserve code formatting and comments where possible
42
+ *
43
+ * @example
44
+ * ```typescript
45
+ * // Current API - agent config only
46
+ * updateAgentConfig({ name: 'New Name', persona: 'New persona...' });
47
+ * setAgentName('New Name');
48
+ * setAgentPersona('New persona...');
49
+ * ```
50
+ */
51
+ /**
52
+ * Options for source writing operations.
53
+ */
54
+ export interface SourceWriteOptions {
55
+ /** Project directory to search (defaults to cwd) */
56
+ projectDir?: string;
57
+ /** Override default index file discovery with specific file path */
58
+ indexFile?: string;
59
+ }
60
+ /**
61
+ * Update string properties in the LuaAgent configuration in source code.
62
+ *
63
+ * This is a generic writer that can update any string properties in
64
+ * the LuaAgent constructor's config object.
65
+ *
66
+ * @param updates - Object with property names and their new values (undefined values are skipped)
67
+ * @param options - Optional configuration
68
+ * @returns true if update succeeded, false otherwise
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * // Update name only
73
+ * updateAgentConfig({ name: 'New Agent Name' });
74
+ *
75
+ * // Update multiple properties
76
+ * updateAgentConfig({
77
+ * name: 'My Agent',
78
+ * persona: 'You are a helpful assistant...'
79
+ * });
80
+ * ```
81
+ */
82
+ export declare function updateAgentConfig(updates: Record<string, string | undefined>, options?: SourceWriteOptions): boolean;
83
+ /**
84
+ * Set the agent name in source code.
85
+ *
86
+ * @param name - New agent name
87
+ * @param options - Optional configuration
88
+ * @returns true if update succeeded, false otherwise
89
+ */
90
+ export declare function setAgentName(name: string, options?: SourceWriteOptions): boolean;
91
+ /**
92
+ * Set the agent persona in source code.
93
+ *
94
+ * @param persona - New agent persona
95
+ * @param options - Optional configuration
96
+ * @returns true if update succeeded, false otherwise
97
+ */
98
+ export declare function setAgentPersona(persona: string, options?: SourceWriteOptions): boolean;