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,521 @@
1
+ # LuaTool
2
+
3
+ The `LuaTool` interface defines the structure for creating custom tools that your AI agent can use. Tools are functions with validated inputs and well-defined outputs.
4
+
5
+ ## Import
6
+
7
+ ```typescript
8
+ import { LuaTool } from 'lua-cli/skill';
9
+ ```
10
+
11
+ ## Overview
12
+
13
+ Tools are the building blocks of your agent's capabilities. Each tool:
14
+ - Has a unique name
15
+ - Describes what it does
16
+ - Validates its inputs with Zod schemas
17
+ - Executes custom logic
18
+ - Returns structured data
19
+
20
+ ## Interface Definition
21
+
22
+ ```typescript
23
+ interface LuaTool<TInput extends ZodType = ZodType> {
24
+ /**
25
+ * Unique tool name (lowercase, underscores only)
26
+ * Example: 'get_weather', 'create_order'
27
+ */
28
+ name: string;
29
+
30
+ /**
31
+ * Human-readable description of what the tool does
32
+ * The AI uses this to understand when to call the tool
33
+ */
34
+ description: string;
35
+
36
+ /**
37
+ * Zod schema defining the input structure
38
+ * Validates and type-checks all inputs
39
+ */
40
+ inputSchema: TInput;
41
+
42
+ /**
43
+ * Optional Zod schema defining the output structure
44
+ * Used for documentation and validation
45
+ */
46
+ outputSchema?: ZodType;
47
+
48
+ /**
49
+ * The function that executes when the tool is called
50
+ * @param input - Validated input matching inputSchema
51
+ * @returns Promise resolving to the tool's output
52
+ */
53
+ execute: (input: z.infer<TInput>) => Promise<any>;
54
+ }
55
+ ```
56
+
57
+ ## Creating a Tool
58
+
59
+ ### Basic Example
60
+
61
+ ```typescript
62
+ import { LuaTool } from 'lua-cli/skill';
63
+ import { z } from 'zod';
64
+
65
+ export default class GreetingTool implements LuaTool {
66
+ name = 'greet_user';
67
+ description = 'Generate a personalized greeting';
68
+
69
+ inputSchema = z.object({
70
+ name: z.string().describe('User name'),
71
+ language: z.enum(['en', 'es', 'fr']).optional().describe('Language code')
72
+ });
73
+
74
+ async execute(input: z.infer<typeof this.inputSchema>) {
75
+ const greetings = {
76
+ en: `Hello, ${input.name}!`,
77
+ es: `¡Hola, ${input.name}!`,
78
+ fr: `Bonjour, ${input.name}!`
79
+ };
80
+
81
+ const lang = input.language || 'en';
82
+ return { greeting: greetings[lang] };
83
+ }
84
+ }
85
+ ```
86
+
87
+ ### With Output Schema
88
+
89
+ ```typescript
90
+ import { LuaTool } from 'lua-cli/skill';
91
+ import { z } from 'zod';
92
+
93
+ export default class CalculatorTool implements LuaTool {
94
+ name = 'calculator';
95
+ description = 'Perform mathematical calculations';
96
+
97
+ inputSchema = z.object({
98
+ operation: z.enum(['add', 'subtract', 'multiply', 'divide']),
99
+ a: z.number(),
100
+ b: z.number()
101
+ });
102
+
103
+ outputSchema = z.object({
104
+ result: z.number(),
105
+ operation: z.string()
106
+ });
107
+
108
+ async execute(input: z.infer<typeof this.inputSchema>) {
109
+ let result: number;
110
+
111
+ switch (input.operation) {
112
+ case 'add':
113
+ result = input.a + input.b;
114
+ break;
115
+ case 'subtract':
116
+ result = input.a - input.b;
117
+ break;
118
+ case 'multiply':
119
+ result = input.a * input.b;
120
+ break;
121
+ case 'divide':
122
+ if (input.b === 0) {
123
+ throw new Error('Division by zero');
124
+ }
125
+ result = input.a / input.b;
126
+ break;
127
+ }
128
+
129
+ return {
130
+ result,
131
+ operation: input.operation
132
+ };
133
+ }
134
+ }
135
+ ```
136
+
137
+ ## Using Runtime APIs
138
+
139
+ Tools can access Lua platform APIs:
140
+
141
+ ```typescript
142
+ import { LuaTool, User, Products, Data } from 'lua-cli/skill';
143
+ import { z } from 'zod';
144
+
145
+ export default class UserPreferencesTool implements LuaTool {
146
+ name = 'save_user_preferences';
147
+ description = 'Save user preferences for personalization';
148
+
149
+ inputSchema = z.object({
150
+ theme: z.enum(['light', 'dark']).optional(),
151
+ language: z.string().optional(),
152
+ notifications: z.boolean().optional()
153
+ });
154
+
155
+ async execute(input: z.infer<typeof this.inputSchema>) {
156
+ // Get current user
157
+ const user = await User.get();
158
+
159
+ // Update user data
160
+ await user.update({
161
+ preferences: {
162
+ theme: input.theme,
163
+ language: input.language,
164
+ notifications: input.notifications
165
+ }
166
+ });
167
+
168
+ return {
169
+ success: true,
170
+ message: 'Preferences saved successfully',
171
+ preferences: input
172
+ };
173
+ }
174
+ }
175
+ ```
176
+
177
+ ## External API Integration
178
+
179
+ ```typescript
180
+ import { LuaTool } from 'lua-cli/skill';
181
+ import { z } from 'zod';
182
+ import axios from 'axios';
183
+ import { env } from 'lua-cli/skill';
184
+
185
+ export default class WeatherTool implements LuaTool {
186
+ name = 'get_weather';
187
+ description = 'Get current weather for any city';
188
+
189
+ inputSchema = z.object({
190
+ city: z.string().describe('City name'),
191
+ units: z.enum(['metric', 'imperial']).default('metric')
192
+ });
193
+
194
+ outputSchema = z.object({
195
+ temperature: z.number(),
196
+ condition: z.string(),
197
+ humidity: z.number(),
198
+ city: z.string()
199
+ });
200
+
201
+ async execute(input: z.infer<typeof this.inputSchema>) {
202
+ const apiKey = env('WEATHER_API_KEY');
203
+
204
+ if (!apiKey) {
205
+ throw new Error('WEATHER_API_KEY not configured');
206
+ }
207
+
208
+ try {
209
+ const response = await axios.get('https://api.openweathermap.org/data/2.5/weather', {
210
+ params: {
211
+ q: input.city,
212
+ appid: apiKey,
213
+ units: input.units
214
+ }
215
+ });
216
+
217
+ return {
218
+ temperature: response.data.main.temp,
219
+ condition: response.data.weather[0].main,
220
+ humidity: response.data.main.humidity,
221
+ city: input.city
222
+ };
223
+ } catch (error) {
224
+ if (axios.isAxiosError(error)) {
225
+ throw new Error(`Weather API error: ${error.message}`);
226
+ }
227
+ throw error;
228
+ }
229
+ }
230
+ }
231
+ ```
232
+
233
+ ## Error Handling
234
+
235
+ ```typescript
236
+ import { LuaTool, Products } from 'lua-cli/skill';
237
+ import { z } from 'zod';
238
+
239
+ export default class GetProductTool implements LuaTool {
240
+ name = 'get_product';
241
+ description = 'Retrieve a product by ID';
242
+
243
+ inputSchema = z.object({
244
+ productId: z.string()
245
+ });
246
+
247
+ async execute(input: z.infer<typeof this.inputSchema>) {
248
+ try {
249
+ const product = await Products.getById(input.productId);
250
+
251
+ if (!product) {
252
+ return {
253
+ success: false,
254
+ error: 'Product not found',
255
+ productId: input.productId
256
+ };
257
+ }
258
+
259
+ return {
260
+ success: true,
261
+ product: {
262
+ id: product.id,
263
+ name: product.name,
264
+ price: product.price,
265
+ stock: product.stock
266
+ }
267
+ };
268
+ } catch (error) {
269
+ return {
270
+ success: false,
271
+ error: error instanceof Error ? error.message : 'Unknown error'
272
+ };
273
+ }
274
+ }
275
+ }
276
+ ```
277
+
278
+ ## Complex Tool with State
279
+
280
+ ```typescript
281
+ import { LuaTool, Data } from 'lua-cli/skill';
282
+ import { z } from 'zod';
283
+
284
+ export default class GameTool implements LuaTool {
285
+ name = 'play_game';
286
+ description = 'Play a number guessing game';
287
+
288
+ inputSchema = z.object({
289
+ action: z.enum(['start', 'guess', 'status']),
290
+ guess: z.number().min(1).max(100).optional()
291
+ });
292
+
293
+ async execute(input: z.infer<typeof this.inputSchema>) {
294
+ // Use Data API to persist game state
295
+ const games = await Data.get('games');
296
+ let gameState = games.length > 0 ? games[0].data : null;
297
+
298
+ if (input.action === 'start') {
299
+ // Start new game
300
+ const secretNumber = Math.floor(Math.random() * 100) + 1;
301
+ gameState = {
302
+ secretNumber,
303
+ attempts: 0,
304
+ started: new Date()
305
+ };
306
+
307
+ await Data.create('games', gameState);
308
+
309
+ return {
310
+ message: 'Game started! Guess a number between 1 and 100',
311
+ attempts: 0
312
+ };
313
+ }
314
+
315
+ if (input.action === 'guess') {
316
+ if (!gameState) {
317
+ return { error: 'No active game. Use action: "start"' };
318
+ }
319
+
320
+ gameState.attempts++;
321
+
322
+ if (input.guess === gameState.secretNumber) {
323
+ await Data.delete('games', gameState.id);
324
+ return {
325
+ message: '🎉 Correct! You won!',
326
+ attempts: gameState.attempts
327
+ };
328
+ }
329
+
330
+ const hint = input.guess! < gameState.secretNumber ? 'higher' : 'lower';
331
+ await Data.update('games', gameState.id, gameState);
332
+
333
+ return {
334
+ message: `Try ${hint}`,
335
+ attempts: gameState.attempts
336
+ };
337
+ }
338
+
339
+ // Status
340
+ if (!gameState) {
341
+ return { message: 'No active game' };
342
+ }
343
+
344
+ return {
345
+ message: 'Game in progress',
346
+ attempts: gameState.attempts
347
+ };
348
+ }
349
+ }
350
+ ```
351
+
352
+ ## Tool Composition
353
+
354
+ Tools can call other tools or create jobs:
355
+
356
+ ```typescript
357
+ import { LuaTool, Jobs, JobInstance } from 'lua-cli/skill';
358
+ import { z } from 'zod';
359
+
360
+ export default class ReminderTool implements LuaTool {
361
+ name = 'set_reminder';
362
+ description = 'Set a reminder to notify user later';
363
+
364
+ inputSchema = z.object({
365
+ message: z.string(),
366
+ minutes: z.number().min(1).max(1440)
367
+ });
368
+
369
+ async execute(input: z.infer<typeof this.inputSchema>) {
370
+ // Create a job that will notify the user later
371
+ const job = await Jobs.create({
372
+ name: `reminder-${Date.now()}`,
373
+ description: 'User reminder',
374
+ metadata: {
375
+ message: input.message
376
+ },
377
+ schedule: {
378
+ type: 'once',
379
+ executeAt: new Date(Date.now() + input.minutes * 60000)
380
+ },
381
+ execute: async (jobInstance: JobInstance) => {
382
+ const user = await jobInstance.user();
383
+ await user.send([{
384
+ type: 'text',
385
+ text: `⏰ Reminder: ${jobInstance.metadata.message}`
386
+ }]);
387
+ return { success: true };
388
+ }
389
+ });
390
+
391
+ return {
392
+ success: true,
393
+ message: `Reminder set for ${input.minutes} minutes from now`,
394
+ jobId: job.id
395
+ };
396
+ }
397
+ }
398
+ ```
399
+
400
+ ## Naming Conventions
401
+
402
+ ### ✅ Good Names
403
+ - `get_weather` - Action + noun, clear purpose
404
+ - `create_order` - Verb + noun, describes action
405
+ - `search_products` - Clear, specific
406
+ - `calculate_tax` - Action verb, specific
407
+
408
+ ### ❌ Bad Names
409
+ - `weather` - Too vague, unclear if getting or setting
410
+ - `doIt` - Meaningless
411
+ - `tool1` - Not descriptive
412
+ - `get-weather` - Use underscores, not hyphens
413
+
414
+ ## Best Practices
415
+
416
+ ### 1. Single Responsibility
417
+ Each tool should do one thing well:
418
+
419
+ ```typescript
420
+ // ✅ Good - Focused purpose
421
+ class GetWeatherTool { }
422
+ class GetForecastTool { }
423
+
424
+ // ❌ Bad - Too many responsibilities
425
+ class WeatherAndNewsAndStocksTool { }
426
+ ```
427
+
428
+ ### 2. Descriptive Schemas
429
+
430
+ ```typescript
431
+ // ✅ Good - With descriptions
432
+ inputSchema = z.object({
433
+ email: z.string().email().describe('User email address'),
434
+ sendCopy: z.boolean().optional().describe('Send copy to user')
435
+ });
436
+
437
+ // ❌ Bad - No context
438
+ inputSchema = z.object({
439
+ email: z.string(),
440
+ sendCopy: z.boolean()
441
+ });
442
+ ```
443
+
444
+ ### 3. Structured Returns
445
+
446
+ ```typescript
447
+ // ✅ Good - Structured object
448
+ return {
449
+ success: true,
450
+ orderId: '123',
451
+ total: 99.99,
452
+ items: [...]
453
+ };
454
+
455
+ // ❌ Bad - Just a string
456
+ return 'Order 123 created for $99.99';
457
+ ```
458
+
459
+ ### 4. Error Handling
460
+
461
+ ```typescript
462
+ // ✅ Good - Graceful error handling
463
+ async execute(input) {
464
+ try {
465
+ const result = await externalAPI.call(input);
466
+ return { success: true, data: result };
467
+ } catch (error) {
468
+ return {
469
+ success: false,
470
+ error: error.message,
471
+ suggestion: 'Please try again later'
472
+ };
473
+ }
474
+ }
475
+
476
+ // ❌ Bad - Uncaught errors
477
+ async execute(input) {
478
+ const result = await externalAPI.call(input); // May throw!
479
+ return result;
480
+ }
481
+ ```
482
+
483
+ ## Testing
484
+
485
+ Test your tool before adding to agent:
486
+
487
+ ```bash
488
+ # Interactive testing
489
+ lua test
490
+
491
+ # Or create a test file
492
+ ```
493
+
494
+ ```typescript
495
+ // test-tool.ts
496
+ import MyTool from './src/tools/MyTool';
497
+
498
+ async function test() {
499
+ const tool = new MyTool();
500
+ const result = await tool.execute({ param: 'value' });
501
+ console.log(result);
502
+ }
503
+
504
+ test();
505
+ ```
506
+
507
+ ## Related Documentation
508
+
509
+ - [LuaSkill](./LuaSkill.md) - Organizing tools into skills
510
+ - [LuaAgent](./LuaAgent.md) - Agent configuration
511
+ - [User API](./User.md) - Accessing user data
512
+ - [Products API](./Products.md) - Product operations
513
+ - [Data API](./Data.md) - Custom data storage
514
+
515
+ ## Examples
516
+
517
+ - [Weather Tool](../../template/src/skills/tools/GetWeatherTool.ts)
518
+ - [Product Tools](../../template/src/skills/tools/ProductsTool.ts)
519
+ - [Basket Tools](../../template/src/skills/tools/BasketTool.ts)
520
+ - [Game Tracker](../../template/src/skills/tools/GameScoreTrackerTool.ts)
521
+