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,567 @@
1
+ # User API
2
+
3
+ The User API provides access to user data, chat history, and communication capabilities within your tools and jobs.
4
+
5
+ ## Import
6
+
7
+ ```typescript
8
+ import { User } from 'lua-cli';
9
+ ```
10
+
11
+ ## Overview
12
+
13
+ The User API allows you to:
14
+ - Retrieve user profile data
15
+ - Update user information
16
+ - Send messages to users
17
+ - Access chat history
18
+ - Manage user preferences
19
+
20
+ ## Methods
21
+
22
+ ### `User.get()`
23
+
24
+ Retrieves user data by userId, email, or phone.
25
+
26
+ **Signature:**
27
+ ```typescript
28
+ async get(identifier?: string | UserLookupOptions): Promise<UserDataInstance | null>
29
+ ```
30
+
31
+ **Parameters:**
32
+ - `identifier` (optional) - One of:
33
+ - No parameter: Returns current user's data (in tools with conversation context)
34
+ - `string`: User ID to retrieve
35
+ - `{ email: string }`: Look up user by email address
36
+ - `{ phone: string }`: Look up user by phone number (with or without `+` prefix)
37
+
38
+ **Returns:** `UserDataInstance` with proxy access to user data, or `null` if user not found (for email/phone lookup)
39
+
40
+ **Examples:**
41
+
42
+ ```typescript
43
+ // Get current user (in tools with conversation context)
44
+ const user = await User.get();
45
+
46
+ // Access properties directly
47
+ console.log(user.email);
48
+ console.log(user.name);
49
+
50
+ // Or access via .data
51
+ console.log(user.data.email);
52
+ ```
53
+
54
+ ### `User.get(userId)`
55
+
56
+ Retrieves a specific user's data by ID. This allows tools, webhooks, and jobs to access any user's data, not just the current user.
57
+
58
+ ```typescript
59
+ // Get current user (existing behavior)
60
+ const currentUser = await User.get();
61
+
62
+ // Get specific user by ID
63
+ const specificUser = await User.get('user_123456');
64
+ console.log(specificUser.email);
65
+ ```
66
+
67
+ **Use Cases:**
68
+ - Fetch data for specific users in admin tools
69
+ - Access user information in webhooks/jobs
70
+ - Multi-user data operations
71
+ - User management features
72
+
73
+ ### `User.get({ email })` / `User.get({ phone })`
74
+
75
+ Look up a user by email or phone number. This is particularly useful in webhooks where you don't have the user ID but know the user's contact information.
76
+
77
+ **Signature:**
78
+ ```typescript
79
+ async get(options: { email?: string; phone?: string }): Promise<UserDataInstance | null>
80
+ ```
81
+
82
+ **Returns:** `UserDataInstance` if found, or `null` if no user exists with that email/phone
83
+
84
+ **Examples:**
85
+
86
+ ```typescript
87
+ // Look up user by email
88
+ const user = await User.get({ email: 'customer@example.com' });
89
+ if (!user) {
90
+ return { error: 'User not found' };
91
+ }
92
+ console.log(user.name);
93
+
94
+ // Look up user by phone (both formats work)
95
+ const user1 = await User.get({ phone: '+1234567890' });
96
+ const user2 = await User.get({ phone: '1234567890' });
97
+
98
+ // Handle not found gracefully
99
+ const user = await User.get({ email: 'unknown@example.com' });
100
+ if (!user) {
101
+ // User doesn't exist in the system
102
+ return { error: 'User not found' };
103
+ }
104
+ ```
105
+
106
+ **Use Cases:**
107
+ - Webhooks that receive user email/phone from external systems
108
+ - Admin tools where operators search by contact info
109
+ - Integration with third-party systems that don't have Lua user IDs
110
+
111
+ ### `User.getChatHistory()`
112
+
113
+ Gets the conversation history for the current user.
114
+
115
+ **Signature:**
116
+ ```typescript
117
+ async getChatHistory(): Promise<ChatHistoryMessage[]>
118
+ ```
119
+
120
+ **Returns:** Array of chat messages
121
+
122
+ **Example:**
123
+ ```typescript
124
+ const history = await User.getChatHistory();
125
+
126
+ // Each message has:
127
+ // - role: 'user' | 'assistant'
128
+ // - content: Array of content items
129
+ // - createdAt: ISO timestamp
130
+ // - id: Message ID
131
+ // - threadId: Thread ID
132
+
133
+ for (const message of history) {
134
+ console.log(`${message.role}: ${message.content[0].text}`);
135
+ }
136
+ ```
137
+
138
+ ## UserDataInstance
139
+
140
+ The user object returned by `User.get()` uses a Proxy for convenient property access:
141
+
142
+ ```typescript
143
+ const user = await User.get();
144
+
145
+ // Direct property access
146
+ user.email = 'new@email.com';
147
+ user.preferences = { theme: 'dark' };
148
+
149
+ // Or explicit data access
150
+ user.data.email = 'new@email.com';
151
+ ```
152
+
153
+ ### Immutable User Profile (`user._luaProfile`)
154
+
155
+ Starting in v3.1.0, the user object includes a read-only `_luaProfile` property that provides secure access to core user identity data.
156
+
157
+ **Properties:**
158
+ - `userId` - The unique user identifier
159
+ - `fullName` - User's full name
160
+ - `mobileNumbers` - Array of mobile numbers
161
+ - `emailAddresses` - Array of email addresses
162
+
163
+ **Important:**
164
+ - `_luaProfile` is **read-only** - attempts to modify it are silently ignored
165
+ - Uses the `_lua` prefix to avoid conflicts with custom `user.profile` fields
166
+ - `user.userId` is deprecated in favor of `user._luaProfile.userId`
167
+
168
+ **Example:**
169
+ ```typescript
170
+ const user = await User.get();
171
+
172
+ // ✅ Correct way to access user ID
173
+ const userId = user._luaProfile.userId;
174
+
175
+ // ⚠️ Deprecated (still works, but shows as deprecated in IDE)
176
+ const deprecatedId = user.userId;
177
+
178
+ // ✅ Custom profile field remains unaffected
179
+ user.profile = { customData: 'value' }; // Still works for custom data
180
+
181
+ // ❌ Attempts to modify _luaProfile are ignored
182
+ user._luaProfile.userId = 'new-id'; // Silently ignored
183
+ ```
184
+
185
+ ### Methods
186
+
187
+ #### `user.update(data)`
188
+
189
+ Updates user data.
190
+
191
+ **Parameters:**
192
+ - `data` (object) - Data to update
193
+
194
+ **Returns:** Promise<object> - Updated user data
195
+
196
+ **Example:**
197
+ ```typescript
198
+ const user = await User.get();
199
+
200
+ await user.update({
201
+ preferences: {
202
+ theme: 'dark',
203
+ language: 'en',
204
+ notifications: true
205
+ },
206
+ metadata: {
207
+ lastActive: new Date().toISOString()
208
+ }
209
+ });
210
+ ```
211
+
212
+ #### `user.send(messages)`
213
+
214
+ Sends messages to the user.
215
+
216
+ **Parameters:**
217
+ - `messages` (ChatMessage[]) - Array of messages to send
218
+
219
+ **Returns:** Promise<boolean>
220
+
221
+ **Example:**
222
+ ```typescript
223
+ const user = await User.get();
224
+
225
+ // Send text message
226
+ await user.send([{
227
+ type: 'text',
228
+ text: 'Hello! Your order has shipped.'
229
+ }]);
230
+
231
+ // Send image
232
+ await user.send([{
233
+ type: 'image',
234
+ imageUrl: 'https://example.com/product.jpg',
235
+ altText: 'Product image'
236
+ }]);
237
+
238
+ // Send multiple messages
239
+ await user.send([
240
+ { type: 'text', text: 'Your order summary:' },
241
+ { type: 'text', text: '- Item 1: $10' },
242
+ { type: 'text', text: 'Total: $10' }
243
+ ]);
244
+ ```
245
+
246
+ #### `user.clear()`
247
+
248
+ Clears all user data.
249
+
250
+ **Returns:** Promise<boolean>
251
+
252
+ **Example:**
253
+ ```typescript
254
+ const user = await User.get();
255
+ await user.clear();
256
+ ```
257
+
258
+ #### `user.save()`
259
+
260
+ Saves current user data state.
261
+
262
+ **Returns:** Promise<boolean>
263
+
264
+ **Example:**
265
+ ```typescript
266
+ const user = await User.get();
267
+ user.data.lastLogin = new Date().toISOString();
268
+ await user.save();
269
+ ```
270
+
271
+ #### `user.getChatHistory()`
272
+
273
+ Gets chat history for this user.
274
+
275
+ **Returns:** Promise<ChatHistoryMessage[]>
276
+
277
+ **Example:**
278
+ ```typescript
279
+ const user = await User.get();
280
+ const history = await user.getChatHistory();
281
+
282
+ // Analyze conversation
283
+ const userMessages = history.filter(m => m.role === 'user');
284
+ console.log(`User sent ${userMessages.length} messages`);
285
+ ```
286
+
287
+ ## Complete Examples
288
+
289
+ ### Update User Preferences
290
+
291
+ ```typescript
292
+ import { LuaTool, User } from 'lua-cli/skill';
293
+ import { z } from 'zod';
294
+
295
+ export default class UpdatePreferencesTool implements LuaTool {
296
+ name = 'update_preferences';
297
+ description = 'Update user preferences';
298
+
299
+ inputSchema = z.object({
300
+ theme: z.enum(['light', 'dark']).optional(),
301
+ language: z.string().optional(),
302
+ notifications: z.boolean().optional()
303
+ });
304
+
305
+ async execute(input: z.infer<typeof this.inputSchema>) {
306
+ const user = await User.get();
307
+
308
+ // Get current preferences
309
+ const currentPrefs = user.data.preferences || {};
310
+
311
+ // Merge with new preferences
312
+ const newPrefs = {
313
+ ...currentPrefs,
314
+ ...input
315
+ };
316
+
317
+ // Update
318
+ await user.update({ preferences: newPrefs });
319
+
320
+ return {
321
+ success: true,
322
+ message: 'Preferences updated',
323
+ preferences: newPrefs
324
+ };
325
+ }
326
+ }
327
+ ```
328
+
329
+ ### Send Notification
330
+
331
+ ```typescript
332
+ import { LuaTool, User } from 'lua-cli/skill';
333
+ import { z } from 'zod';
334
+
335
+ export default class NotifyUserTool implements LuaTool {
336
+ name = 'notify_user';
337
+ description = 'Send a notification to the user';
338
+
339
+ inputSchema = z.object({
340
+ title: z.string(),
341
+ message: z.string(),
342
+ urgent: z.boolean().optional()
343
+ });
344
+
345
+ async execute(input: z.infer<typeof this.inputSchema>) {
346
+ const user = await User.get();
347
+
348
+ const prefix = input.urgent ? '🚨 URGENT: ' : '📬 ';
349
+ const fullMessage = `${prefix}${input.title}\n\n${input.message}`;
350
+
351
+ await user.send([{
352
+ type: 'text',
353
+ text: fullMessage
354
+ }]);
355
+
356
+ // Log the notification
357
+ await user.update({
358
+ lastNotification: {
359
+ title: input.title,
360
+ sentAt: new Date().toISOString(),
361
+ urgent: input.urgent || false
362
+ }
363
+ });
364
+
365
+ return {
366
+ success: true,
367
+ message: 'Notification sent'
368
+ };
369
+ }
370
+ }
371
+ ```
372
+
373
+ ### Analyze Chat History
374
+
375
+ ```typescript
376
+ import { LuaTool, User } from 'lua-cli/skill';
377
+ import { z } from 'zod';
378
+
379
+ export default class ChatAnalyticsTool implements LuaTool {
380
+ name = 'analyze_conversation';
381
+ description = 'Analyze the conversation history';
382
+
383
+ inputSchema = z.object({});
384
+
385
+ async execute(input: z.infer<typeof this.inputSchema>) {
386
+ const history = await User.getChatHistory();
387
+
388
+ const stats = {
389
+ totalMessages: history.length,
390
+ userMessages: history.filter(m => m.role === 'user').length,
391
+ assistantMessages: history.filter(m => m.role === 'assistant').length,
392
+ averageLength: 0,
393
+ topics: [] as string[]
394
+ };
395
+
396
+ // Calculate average message length
397
+ const lengths = history.map(m =>
398
+ m.content.reduce((sum, c) => sum + (c.text?.length || 0), 0)
399
+ );
400
+ stats.averageLength = Math.round(
401
+ lengths.reduce((a, b) => a + b, 0) / lengths.length
402
+ );
403
+
404
+ return {
405
+ success: true,
406
+ analytics: stats,
407
+ recentMessages: history.slice(-5).map(m => ({
408
+ role: m.role,
409
+ preview: m.content[0]?.text?.substring(0, 50) + '...'
410
+ }))
411
+ };
412
+ }
413
+ }
414
+ ```
415
+
416
+ ## Message Types
417
+
418
+ ### Text Message
419
+ ```typescript
420
+ {
421
+ type: 'text',
422
+ text: string
423
+ }
424
+ ```
425
+
426
+ ### Image Message
427
+ ```typescript
428
+ {
429
+ type: 'image',
430
+ imageUrl: string,
431
+ altText?: string
432
+ }
433
+ ```
434
+
435
+ ### File Message
436
+ ```typescript
437
+ {
438
+ type: 'file',
439
+ fileUrl: string,
440
+ fileName?: string,
441
+ mimeType?: string
442
+ }
443
+ ```
444
+
445
+ ## Best Practices
446
+
447
+ ### ✅ DO
448
+ - Always handle missing user data gracefully
449
+ - Use `user.update()` instead of modifying and saving separately
450
+ - Check if data exists before accessing nested properties
451
+ - Send clear, actionable messages to users
452
+
453
+ ### ❌ DON'T
454
+ - Don't assume user data structure
455
+ - Don't modify user data without validation
456
+ - Don't send empty or malformed messages
457
+ - Don't expose internal IDs to users
458
+
459
+ ## Common Patterns
460
+
461
+ ### Safe Data Access
462
+
463
+ ```typescript
464
+ const user = await User.get();
465
+
466
+ // ✅ Safe access with optional chaining
467
+ const theme = user.data?.preferences?.theme || 'light';
468
+
469
+ // ❌ Unsafe - may throw
470
+ const theme = user.data.preferences.theme;
471
+ ```
472
+
473
+ ### Batch Updates
474
+
475
+ ```typescript
476
+ const user = await User.get();
477
+
478
+ // ✅ Update multiple fields at once
479
+ await user.update({
480
+ name: 'John Doe',
481
+ email: 'john@example.com',
482
+ preferences: { theme: 'dark' }
483
+ });
484
+
485
+ // ❌ Multiple separate updates (slower)
486
+ await user.update({ name: 'John Doe' });
487
+ await user.update({ email: 'john@example.com' });
488
+ await user.update({ preferences: { theme: 'dark' } });
489
+ ```
490
+
491
+ ### Message Formatting
492
+
493
+ ```typescript
494
+ // ✅ Clear, formatted message
495
+ await user.send([{
496
+ type: 'text',
497
+ text: `Order Confirmation\n\nOrder ID: ${orderId}\nTotal: $${total}\n\nThank you for your order!`
498
+ }]);
499
+
500
+ // ❌ Unformatted dump
501
+ await user.send([{
502
+ type: 'text',
503
+ text: JSON.stringify(orderData)
504
+ }]);
505
+ ```
506
+
507
+ ## Webhook Example: User Lookup by Phone
508
+
509
+ A common use case is building webhooks that allow external systems to modify user data. Here's an example of a webhook that updates user routing preferences:
510
+
511
+ ```typescript
512
+ import { LuaWebhook, User } from 'lua-cli';
513
+
514
+ export default new LuaWebhook({
515
+ name: 'update-routing-preference',
516
+ description: 'Update user routing preference by phone number',
517
+
518
+ execute: async (event) => {
519
+ const { phone, routingEnabled } = event.body;
520
+
521
+ if (!phone) {
522
+ return { error: 'Phone number is required' };
523
+ }
524
+
525
+ // Look up user by phone
526
+ const user = await User.get({ phone });
527
+ if (!user) {
528
+ return { error: 'User not found' };
529
+ }
530
+
531
+ // Update routing preference
532
+ user.routingEnabled = routingEnabled;
533
+ await user.save();
534
+
535
+ return {
536
+ success: true,
537
+ userId: user._luaProfile.userId,
538
+ routingEnabled
539
+ };
540
+ }
541
+ });
542
+ ```
543
+
544
+ ## Types
545
+
546
+ ### UserLookupOptions
547
+
548
+ ```typescript
549
+ interface UserLookupOptions {
550
+ /** Email address to look up */
551
+ email?: string;
552
+ /** Phone number to look up (with or without + prefix) */
553
+ phone?: string;
554
+ }
555
+ ```
556
+
557
+ ## Related APIs
558
+
559
+ - [Data API](./Data.md) - Store custom user data
560
+ - [JobInstance](./instances/JobInstance.md) - Access user from jobs
561
+ - [ChatHistoryMessage](./types/ChatHistoryMessage.md) - Message types
562
+
563
+ ## See Also
564
+
565
+ - [User Data Tool Example](../../template/src/skills/tools/UserDataTool.ts)
566
+ - [Notification Patterns](../guides/NotificationPatterns.md)
567
+