lua-cli 3.12.2 → 3.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (568) hide show
  1. package/README.md +14 -13
  2. package/dist/api/agent.api.service.d.ts +20 -20
  3. package/dist/api/agent.api.service.d.ts.map +1 -1
  4. package/dist/api/agent.api.service.js +1 -1
  5. package/dist/api/agent.api.service.js.map +1 -1
  6. package/dist/api/agents.api.service.d.ts +3 -3
  7. package/dist/api/agents.api.service.d.ts.map +1 -1
  8. package/dist/api/agents.api.service.js +11 -9
  9. package/dist/api/agents.api.service.js.map +1 -1
  10. package/dist/api/ai.api.service.d.ts +4 -4
  11. package/dist/api/ai.api.service.d.ts.map +1 -1
  12. package/dist/api/ai.api.service.js +10 -8
  13. package/dist/api/ai.api.service.js.map +1 -1
  14. package/dist/api/auth.api.service.d.ts +3 -3
  15. package/dist/api/auth.api.service.d.ts.map +1 -1
  16. package/dist/api/auth.api.service.js +1 -1
  17. package/dist/api/auth.api.service.js.map +1 -1
  18. package/dist/api/backup.api.service.d.ts.map +1 -1
  19. package/dist/api/backup.api.service.js +21 -7
  20. package/dist/api/backup.api.service.js.map +1 -1
  21. package/dist/api/basket.api.service.d.ts +5 -5
  22. package/dist/api/basket.api.service.d.ts.map +1 -1
  23. package/dist/api/basket.api.service.js +4 -4
  24. package/dist/api/basket.api.service.js.map +1 -1
  25. package/dist/api/cdn.api.service.d.ts +1 -1
  26. package/dist/api/cdn.api.service.js +3 -3
  27. package/dist/api/cdn.api.service.js.map +1 -1
  28. package/dist/api/chat.api.service.d.ts +4 -4
  29. package/dist/api/chat.api.service.js +3 -3
  30. package/dist/api/chat.api.service.js.map +1 -1
  31. package/dist/api/credentials.js +3 -3
  32. package/dist/api/custom.data.api.service.d.ts +4 -4
  33. package/dist/api/custom.data.api.service.d.ts.map +1 -1
  34. package/dist/api/custom.data.api.service.js +2 -2
  35. package/dist/api/custom.data.api.service.js.map +1 -1
  36. package/dist/api/developer.api.service.d.ts +3 -3
  37. package/dist/api/developer.api.service.d.ts.map +1 -1
  38. package/dist/api/developer.api.service.js +7 -3
  39. package/dist/api/developer.api.service.js.map +1 -1
  40. package/dist/api/device-trigger.api.service.d.ts +3 -3
  41. package/dist/api/device-trigger.api.service.d.ts.map +1 -1
  42. package/dist/api/device-trigger.api.service.js +1 -1
  43. package/dist/api/device-trigger.api.service.js.map +1 -1
  44. package/dist/api/device.api.service.d.ts +3 -3
  45. package/dist/api/device.api.service.d.ts.map +1 -1
  46. package/dist/api/device.api.service.js +1 -1
  47. package/dist/api/device.api.service.js.map +1 -1
  48. package/dist/api/http.client.d.ts +1 -1
  49. package/dist/api/http.client.d.ts.map +1 -1
  50. package/dist/api/http.client.js +6 -6
  51. package/dist/api/http.client.js.map +1 -1
  52. package/dist/api/job.api.service.d.ts +13 -14
  53. package/dist/api/job.api.service.d.ts.map +1 -1
  54. package/dist/api/job.api.service.js +12 -20
  55. package/dist/api/job.api.service.js.map +1 -1
  56. package/dist/api/lazy-instances.d.ts +12 -12
  57. package/dist/api/lazy-instances.js +14 -14
  58. package/dist/api/logs.api.service.d.ts +9 -6
  59. package/dist/api/logs.api.service.d.ts.map +1 -1
  60. package/dist/api/logs.api.service.js +12 -11
  61. package/dist/api/logs.api.service.js.map +1 -1
  62. package/dist/api/marketplace.api.service.d.ts +1 -1
  63. package/dist/api/marketplace.api.service.d.ts.map +1 -1
  64. package/dist/api/marketplace.api.service.js +18 -18
  65. package/dist/api/marketplace.api.service.js.map +1 -1
  66. package/dist/api/order.api.service.d.ts +4 -4
  67. package/dist/api/order.api.service.d.ts.map +1 -1
  68. package/dist/api/order.api.service.js +2 -2
  69. package/dist/api/order.api.service.js.map +1 -1
  70. package/dist/api/persona.api.service.d.ts +3 -3
  71. package/dist/api/persona.api.service.d.ts.map +1 -1
  72. package/dist/api/persona.api.service.js +2 -2
  73. package/dist/api/persona.api.service.js.map +1 -1
  74. package/dist/api/postprocessor.api.service.d.ts +8 -9
  75. package/dist/api/postprocessor.api.service.d.ts.map +1 -1
  76. package/dist/api/postprocessor.api.service.js +1 -2
  77. package/dist/api/postprocessor.api.service.js.map +1 -1
  78. package/dist/api/preprocessor.api.service.d.ts +8 -9
  79. package/dist/api/preprocessor.api.service.d.ts.map +1 -1
  80. package/dist/api/preprocessor.api.service.js +1 -2
  81. package/dist/api/preprocessor.api.service.js.map +1 -1
  82. package/dist/api/products.api.service.d.ts +9 -9
  83. package/dist/api/products.api.service.d.ts.map +1 -1
  84. package/dist/api/products.api.service.js +10 -10
  85. package/dist/api/products.api.service.js.map +1 -1
  86. package/dist/api/resource.api.service.d.ts +2 -2
  87. package/dist/api/resource.api.service.js +1 -1
  88. package/dist/api/skills.api.service.d.ts +4 -4
  89. package/dist/api/skills.api.service.d.ts.map +1 -1
  90. package/dist/api/skills.api.service.js +1 -1
  91. package/dist/api/skills.api.service.js.map +1 -1
  92. package/dist/api/tool.api.service.d.ts +2 -2
  93. package/dist/api/tool.api.service.js +1 -1
  94. package/dist/api/unifiedto.api.service.d.ts +3 -3
  95. package/dist/api/unifiedto.api.service.d.ts.map +1 -1
  96. package/dist/api/unifiedto.api.service.js +28 -10
  97. package/dist/api/unifiedto.api.service.js.map +1 -1
  98. package/dist/api/user.data.api.service.d.ts +6 -6
  99. package/dist/api/user.data.api.service.d.ts.map +1 -1
  100. package/dist/api/user.data.api.service.js +5 -5
  101. package/dist/api/user.data.api.service.js.map +1 -1
  102. package/dist/api/webhook.api.service.d.ts +3 -3
  103. package/dist/api/webhook.api.service.d.ts.map +1 -1
  104. package/dist/api/webhook.api.service.js +1 -1
  105. package/dist/api/webhook.api.service.js.map +1 -1
  106. package/dist/api/whatsapp-templates.api.service.d.ts +3 -3
  107. package/dist/api/whatsapp-templates.api.service.js +1 -1
  108. package/dist/api-exports.d.ts +25 -25
  109. package/dist/api-exports.d.ts.map +1 -1
  110. package/dist/api-exports.js +26 -26
  111. package/dist/api-exports.js.map +1 -1
  112. package/dist/cli/command-definitions.d.ts +1 -1
  113. package/dist/cli/command-definitions.d.ts.map +1 -1
  114. package/dist/cli/command-definitions.js +209 -196
  115. package/dist/cli/command-definitions.js.map +1 -1
  116. package/dist/commands/agents.js +2 -2
  117. package/dist/commands/apiKey.js +12 -12
  118. package/dist/commands/channels.d.ts.map +1 -1
  119. package/dist/commands/channels.js +165 -174
  120. package/dist/commands/channels.js.map +1 -1
  121. package/dist/commands/chat-log-probe.d.ts +59 -0
  122. package/dist/commands/chat-log-probe.d.ts.map +1 -0
  123. package/dist/commands/chat-log-probe.js +87 -0
  124. package/dist/commands/chat-log-probe.js.map +1 -0
  125. package/dist/commands/chat.d.ts.map +1 -1
  126. package/dist/commands/chat.js +143 -40
  127. package/dist/commands/chat.js.map +1 -1
  128. package/dist/commands/chatClear.d.ts.map +1 -1
  129. package/dist/commands/chatClear.js +10 -6
  130. package/dist/commands/chatClear.js.map +1 -1
  131. package/dist/commands/compile.d.ts +7 -0
  132. package/dist/commands/compile.d.ts.map +1 -1
  133. package/dist/commands/compile.js +49 -12
  134. package/dist/commands/compile.js.map +1 -1
  135. package/dist/commands/completion.d.ts.map +1 -1
  136. package/dist/commands/completion.js +8 -9
  137. package/dist/commands/completion.js.map +1 -1
  138. package/dist/commands/configure.js +5 -5
  139. package/dist/commands/deploy.d.ts.map +1 -1
  140. package/dist/commands/deploy.js +132 -35
  141. package/dist/commands/deploy.js.map +1 -1
  142. package/dist/commands/destroy.d.ts.map +1 -1
  143. package/dist/commands/destroy.js +27 -17
  144. package/dist/commands/destroy.js.map +1 -1
  145. package/dist/commands/devices.d.ts.map +1 -1
  146. package/dist/commands/devices.js +4 -5
  147. package/dist/commands/devices.js.map +1 -1
  148. package/dist/commands/env.d.ts.map +1 -1
  149. package/dist/commands/env.js +101 -80
  150. package/dist/commands/env.js.map +1 -1
  151. package/dist/commands/features.d.ts.map +1 -1
  152. package/dist/commands/features.js +71 -82
  153. package/dist/commands/features.js.map +1 -1
  154. package/dist/commands/governance.d.ts.map +1 -1
  155. package/dist/commands/governance.js +17 -15
  156. package/dist/commands/governance.js.map +1 -1
  157. package/dist/commands/index.d.ts +37 -36
  158. package/dist/commands/index.d.ts.map +1 -1
  159. package/dist/commands/index.js +37 -36
  160. package/dist/commands/index.js.map +1 -1
  161. package/dist/commands/init.d.ts.map +1 -1
  162. package/dist/commands/init.js +80 -70
  163. package/dist/commands/init.js.map +1 -1
  164. package/dist/commands/integrations.d.ts.map +1 -1
  165. package/dist/commands/integrations.js +373 -341
  166. package/dist/commands/integrations.js.map +1 -1
  167. package/dist/commands/jobs.d.ts.map +1 -1
  168. package/dist/commands/jobs.js +110 -78
  169. package/dist/commands/jobs.js.map +1 -1
  170. package/dist/commands/log-tip.d.ts +79 -0
  171. package/dist/commands/log-tip.d.ts.map +1 -0
  172. package/dist/commands/log-tip.js +83 -0
  173. package/dist/commands/log-tip.js.map +1 -0
  174. package/dist/commands/logs.d.ts.map +1 -1
  175. package/dist/commands/logs.js +166 -198
  176. package/dist/commands/logs.js.map +1 -1
  177. package/dist/commands/marketplace.d.ts.map +1 -1
  178. package/dist/commands/marketplace.js +381 -427
  179. package/dist/commands/marketplace.js.map +1 -1
  180. package/dist/commands/mcp.d.ts.map +1 -1
  181. package/dist/commands/mcp.js +54 -56
  182. package/dist/commands/mcp.js.map +1 -1
  183. package/dist/commands/models.d.ts.map +1 -1
  184. package/dist/commands/models.js +4 -3
  185. package/dist/commands/models.js.map +1 -1
  186. package/dist/commands/persona.d.ts.map +1 -1
  187. package/dist/commands/persona.js +100 -126
  188. package/dist/commands/persona.js.map +1 -1
  189. package/dist/commands/postprocessors.d.ts.map +1 -1
  190. package/dist/commands/postprocessors.js +87 -61
  191. package/dist/commands/postprocessors.js.map +1 -1
  192. package/dist/commands/preprocessors.d.ts.map +1 -1
  193. package/dist/commands/preprocessors.js +87 -61
  194. package/dist/commands/preprocessors.js.map +1 -1
  195. package/dist/commands/production.d.ts.map +1 -1
  196. package/dist/commands/production.js +101 -113
  197. package/dist/commands/production.js.map +1 -1
  198. package/dist/commands/push-helpers.d.ts +42 -0
  199. package/dist/commands/push-helpers.d.ts.map +1 -0
  200. package/dist/commands/push-helpers.js +48 -0
  201. package/dist/commands/push-helpers.js.map +1 -0
  202. package/dist/commands/push.d.ts +2 -0
  203. package/dist/commands/push.d.ts.map +1 -1
  204. package/dist/commands/push.js +388 -124
  205. package/dist/commands/push.js.map +1 -1
  206. package/dist/commands/pushBackup.d.ts.map +1 -1
  207. package/dist/commands/pushBackup.js +8 -4
  208. package/dist/commands/pushBackup.js.map +1 -1
  209. package/dist/commands/resources.d.ts.map +1 -1
  210. package/dist/commands/resources.js +47 -60
  211. package/dist/commands/resources.js.map +1 -1
  212. package/dist/commands/skills.d.ts.map +1 -1
  213. package/dist/commands/skills.js +117 -89
  214. package/dist/commands/skills.js.map +1 -1
  215. package/dist/commands/status.d.ts +14 -0
  216. package/dist/commands/status.d.ts.map +1 -0
  217. package/dist/commands/status.js +731 -0
  218. package/dist/commands/status.js.map +1 -0
  219. package/dist/commands/sync.d.ts.map +1 -1
  220. package/dist/commands/sync.js +70 -30
  221. package/dist/commands/sync.js.map +1 -1
  222. package/dist/commands/telemetry.d.ts.map +1 -1
  223. package/dist/commands/telemetry.js +4 -0
  224. package/dist/commands/telemetry.js.map +1 -1
  225. package/dist/commands/test-output.helpers.d.ts +24 -0
  226. package/dist/commands/test-output.helpers.d.ts.map +1 -0
  227. package/dist/commands/test-output.helpers.js +62 -0
  228. package/dist/commands/test-output.helpers.js.map +1 -0
  229. package/dist/commands/test.d.ts.map +1 -1
  230. package/dist/commands/test.js +291 -121
  231. package/dist/commands/test.js.map +1 -1
  232. package/dist/commands/update.d.ts.map +1 -1
  233. package/dist/commands/update.js +15 -3
  234. package/dist/commands/update.js.map +1 -1
  235. package/dist/commands/webhooks.d.ts.map +1 -1
  236. package/dist/commands/webhooks.js +94 -87
  237. package/dist/commands/webhooks.js.map +1 -1
  238. package/dist/compiler/agent-traverser.d.ts +50 -14
  239. package/dist/compiler/agent-traverser.d.ts.map +1 -1
  240. package/dist/compiler/agent-traverser.js +189 -86
  241. package/dist/compiler/agent-traverser.js.map +1 -1
  242. package/dist/compiler/bundler.d.ts.map +1 -1
  243. package/dist/compiler/bundler.js +5 -5
  244. package/dist/compiler/bundler.js.map +1 -1
  245. package/dist/compiler/compiler.d.ts +32 -0
  246. package/dist/compiler/compiler.d.ts.map +1 -1
  247. package/dist/compiler/compiler.js +154 -28
  248. package/dist/compiler/compiler.js.map +1 -1
  249. package/dist/compiler/index.d.ts +3 -3
  250. package/dist/compiler/index.d.ts.map +1 -1
  251. package/dist/compiler/index.js +3 -3
  252. package/dist/compiler/index.js.map +1 -1
  253. package/dist/compiler/plugins/agent.plugin.d.ts.map +1 -1
  254. package/dist/compiler/plugins/agent.plugin.js +2 -4
  255. package/dist/compiler/plugins/agent.plugin.js.map +1 -1
  256. package/dist/compiler/plugins/base.d.ts +21 -0
  257. package/dist/compiler/plugins/base.d.ts.map +1 -1
  258. package/dist/compiler/plugins/base.js +13 -3
  259. package/dist/compiler/plugins/base.js.map +1 -1
  260. package/dist/compiler/plugins/device-trigger.plugin.d.ts.map +1 -1
  261. package/dist/compiler/plugins/device-trigger.plugin.js +8 -4
  262. package/dist/compiler/plugins/device-trigger.plugin.js.map +1 -1
  263. package/dist/compiler/plugins/device.plugin.d.ts.map +1 -1
  264. package/dist/compiler/plugins/device.plugin.js +4 -4
  265. package/dist/compiler/plugins/device.plugin.js.map +1 -1
  266. package/dist/compiler/plugins/job.plugin.d.ts.map +1 -1
  267. package/dist/compiler/plugins/job.plugin.js +15 -11
  268. package/dist/compiler/plugins/job.plugin.js.map +1 -1
  269. package/dist/compiler/plugins/mcp-server.plugin.d.ts.map +1 -1
  270. package/dist/compiler/plugins/mcp-server.plugin.js +10 -4
  271. package/dist/compiler/plugins/mcp-server.plugin.js.map +1 -1
  272. package/dist/compiler/plugins/registry.js +2 -2
  273. package/dist/compiler/plugins/registry.js.map +1 -1
  274. package/dist/compiler/plugins/skill.plugin.d.ts +35 -9
  275. package/dist/compiler/plugins/skill.plugin.d.ts.map +1 -1
  276. package/dist/compiler/plugins/skill.plugin.js +129 -87
  277. package/dist/compiler/plugins/skill.plugin.js.map +1 -1
  278. package/dist/compiler/plugins/tool.plugin.d.ts.map +1 -1
  279. package/dist/compiler/plugins/tool.plugin.js +13 -9
  280. package/dist/compiler/plugins/tool.plugin.js.map +1 -1
  281. package/dist/compiler/plugins/webhook.plugin.d.ts.map +1 -1
  282. package/dist/compiler/plugins/webhook.plugin.js +7 -5
  283. package/dist/compiler/plugins/webhook.plugin.js.map +1 -1
  284. package/dist/compiler/source-writer.d.ts.map +1 -1
  285. package/dist/compiler/source-writer.js +2 -4
  286. package/dist/compiler/source-writer.js.map +1 -1
  287. package/dist/compiler/types.d.ts +33 -0
  288. package/dist/compiler/types.d.ts.map +1 -1
  289. package/dist/compiler/types.js.map +1 -1
  290. package/dist/compiler/utils/ast-helpers.d.ts +1 -16
  291. package/dist/compiler/utils/ast-helpers.d.ts.map +1 -1
  292. package/dist/compiler/utils/ast-helpers.js +14 -38
  293. package/dist/compiler/utils/ast-helpers.js.map +1 -1
  294. package/dist/compiler/utils/common.d.ts +14 -0
  295. package/dist/compiler/utils/common.d.ts.map +1 -1
  296. package/dist/compiler/utils/common.js +39 -11
  297. package/dist/compiler/utils/common.js.map +1 -1
  298. package/dist/compiler/utils/file-discovery.d.ts.map +1 -1
  299. package/dist/compiler/utils/file-discovery.js +2 -10
  300. package/dist/compiler/utils/file-discovery.js.map +1 -1
  301. package/dist/compiler/utils/path-resolver.d.ts +67 -10
  302. package/dist/compiler/utils/path-resolver.d.ts.map +1 -1
  303. package/dist/compiler/utils/path-resolver.js +120 -24
  304. package/dist/compiler/utils/path-resolver.js.map +1 -1
  305. package/dist/compiler/utils/reference-resolver.d.ts +196 -0
  306. package/dist/compiler/utils/reference-resolver.d.ts.map +1 -0
  307. package/dist/compiler/utils/reference-resolver.js +1026 -0
  308. package/dist/compiler/utils/reference-resolver.js.map +1 -0
  309. package/dist/compiler/utils/schema-converter.d.ts +25 -0
  310. package/dist/compiler/utils/schema-converter.d.ts.map +1 -1
  311. package/dist/compiler/utils/schema-converter.js +80 -4
  312. package/dist/compiler/utils/schema-converter.js.map +1 -1
  313. package/dist/compiler/utils/workspace.d.ts +35 -0
  314. package/dist/compiler/utils/workspace.d.ts.map +1 -0
  315. package/dist/compiler/utils/workspace.js +121 -0
  316. package/dist/compiler/utils/workspace.js.map +1 -0
  317. package/dist/compiler/utils/zod-runtime.mjs +5334 -0
  318. package/dist/config/compile.constants.d.ts.map +1 -1
  319. package/dist/config/compile.constants.js +3 -1
  320. package/dist/config/compile.constants.js.map +1 -1
  321. package/dist/config/constants.d.ts.map +1 -1
  322. package/dist/config/constants.js +1 -5
  323. package/dist/config/constants.js.map +1 -1
  324. package/dist/errors/auth.error.d.ts.map +1 -1
  325. package/dist/errors/auth.error.js +3 -5
  326. package/dist/errors/auth.error.js.map +1 -1
  327. package/dist/errors/index.d.ts +1 -1
  328. package/dist/errors/index.js +1 -1
  329. package/dist/index.js +9 -8
  330. package/dist/index.js.map +1 -1
  331. package/dist/instances/basket.instance.d.ts +3 -3
  332. package/dist/instances/basket.instance.d.ts.map +1 -1
  333. package/dist/instances/basket.instance.js +26 -8
  334. package/dist/instances/basket.instance.js.map +1 -1
  335. package/dist/instances/data.entry.instance.d.ts +2 -2
  336. package/dist/instances/data.entry.instance.d.ts.map +1 -1
  337. package/dist/instances/data.entry.instance.js +5 -5
  338. package/dist/instances/data.entry.instance.js.map +1 -1
  339. package/dist/instances/order.instance.d.ts +2 -2
  340. package/dist/instances/order.instance.d.ts.map +1 -1
  341. package/dist/instances/order.instance.js +20 -9
  342. package/dist/instances/order.instance.js.map +1 -1
  343. package/dist/instances/product.instance.d.ts +1 -1
  344. package/dist/instances/product.instance.d.ts.map +1 -1
  345. package/dist/instances/product.instance.js +3 -3
  346. package/dist/instances/product.instance.js.map +1 -1
  347. package/dist/instances/product.pagination.instance.d.ts +2 -2
  348. package/dist/instances/product.pagination.instance.d.ts.map +1 -1
  349. package/dist/instances/product.pagination.instance.js +6 -7
  350. package/dist/instances/product.pagination.instance.js.map +1 -1
  351. package/dist/instances/product.search.instance.d.ts +3 -3
  352. package/dist/instances/product.search.instance.d.ts.map +1 -1
  353. package/dist/instances/product.search.instance.js +3 -4
  354. package/dist/instances/product.search.instance.js.map +1 -1
  355. package/dist/instances/user.instance.d.ts +3 -3
  356. package/dist/instances/user.instance.d.ts.map +1 -1
  357. package/dist/instances/user.instance.js +19 -36
  358. package/dist/instances/user.instance.js.map +1 -1
  359. package/dist/interfaces/agent.d.ts +8 -8
  360. package/dist/interfaces/agent.d.ts.map +1 -1
  361. package/dist/interfaces/backup.d.ts +19 -1
  362. package/dist/interfaces/backup.d.ts.map +1 -1
  363. package/dist/interfaces/device-triggers.d.ts +0 -2
  364. package/dist/interfaces/device-triggers.d.ts.map +1 -1
  365. package/dist/interfaces/devices.d.ts +0 -1
  366. package/dist/interfaces/devices.d.ts.map +1 -1
  367. package/dist/interfaces/index.d.ts +8 -8
  368. package/dist/interfaces/index.d.ts.map +1 -1
  369. package/dist/interfaces/jobs.d.ts +2 -3
  370. package/dist/interfaces/jobs.d.ts.map +1 -1
  371. package/dist/interfaces/logs.d.ts +7 -4
  372. package/dist/interfaces/logs.d.ts.map +1 -1
  373. package/dist/interfaces/message.d.ts +3 -3
  374. package/dist/interfaces/message.d.ts.map +1 -1
  375. package/dist/interfaces/orders.d.ts +1 -1
  376. package/dist/interfaces/webhooks.d.ts +2 -2
  377. package/dist/interfaces/webhooks.d.ts.map +1 -1
  378. package/dist/primitives/agent.handler.d.ts.map +1 -1
  379. package/dist/primitives/agent.handler.js +1 -1
  380. package/dist/primitives/agent.handler.js.map +1 -1
  381. package/dist/primitives/base.handler.d.ts +12 -2
  382. package/dist/primitives/base.handler.d.ts.map +1 -1
  383. package/dist/primitives/base.handler.js +104 -73
  384. package/dist/primitives/base.handler.js.map +1 -1
  385. package/dist/primitives/device-trigger.handler.d.ts +1 -1
  386. package/dist/primitives/device-trigger.handler.d.ts.map +1 -1
  387. package/dist/primitives/device-trigger.handler.js +2 -3
  388. package/dist/primitives/device-trigger.handler.js.map +1 -1
  389. package/dist/primitives/device.handler.d.ts +1 -1
  390. package/dist/primitives/device.handler.d.ts.map +1 -1
  391. package/dist/primitives/device.handler.js +2 -3
  392. package/dist/primitives/device.handler.js.map +1 -1
  393. package/dist/primitives/index.d.ts +1 -1
  394. package/dist/primitives/index.d.ts.map +1 -1
  395. package/dist/primitives/index.js +2 -3
  396. package/dist/primitives/index.js.map +1 -1
  397. package/dist/primitives/job.handler.d.ts +6 -1
  398. package/dist/primitives/job.handler.d.ts.map +1 -1
  399. package/dist/primitives/job.handler.js +9 -3
  400. package/dist/primitives/job.handler.js.map +1 -1
  401. package/dist/primitives/mcp-server.handler.d.ts.map +1 -1
  402. package/dist/primitives/mcp-server.handler.js +2 -2
  403. package/dist/primitives/mcp-server.handler.js.map +1 -1
  404. package/dist/primitives/postprocessor.handler.d.ts.map +1 -1
  405. package/dist/primitives/postprocessor.handler.js.map +1 -1
  406. package/dist/primitives/preprocessor.handler.d.ts +1 -1
  407. package/dist/primitives/preprocessor.handler.d.ts.map +1 -1
  408. package/dist/primitives/preprocessor.handler.js +2 -3
  409. package/dist/primitives/preprocessor.handler.js.map +1 -1
  410. package/dist/primitives/skill.handler.d.ts +1 -1
  411. package/dist/primitives/skill.handler.d.ts.map +1 -1
  412. package/dist/primitives/skill.handler.js +34 -13
  413. package/dist/primitives/skill.handler.js.map +1 -1
  414. package/dist/primitives/types.d.ts +1 -1
  415. package/dist/primitives/types.d.ts.map +1 -1
  416. package/dist/primitives/types.js.map +1 -1
  417. package/dist/primitives/webhook.handler.d.ts +3 -2
  418. package/dist/primitives/webhook.handler.d.ts.map +1 -1
  419. package/dist/primitives/webhook.handler.js +9 -4
  420. package/dist/primitives/webhook.handler.js.map +1 -1
  421. package/dist/services/analytics.d.ts.map +1 -1
  422. package/dist/services/analytics.js +4 -5
  423. package/dist/services/analytics.js.map +1 -1
  424. package/dist/services/auth.d.ts +9 -1
  425. package/dist/services/auth.d.ts.map +1 -1
  426. package/dist/services/auth.js +26 -7
  427. package/dist/services/auth.js.map +1 -1
  428. package/dist/services/sandbox.service.d.ts.map +1 -1
  429. package/dist/services/sandbox.service.js +132 -80
  430. package/dist/services/sandbox.service.js.map +1 -1
  431. package/dist/types/api-contracts.d.ts +4 -4
  432. package/dist/types/api-contracts.d.ts.map +1 -1
  433. package/dist/types/index.d.ts +2 -2
  434. package/dist/types/index.d.ts.map +1 -1
  435. package/dist/types/index.js.map +1 -1
  436. package/dist/types/skill.d.ts +7 -7
  437. package/dist/types/skill.d.ts.map +1 -1
  438. package/dist/types/skill.js +2 -2
  439. package/dist/types/skill.js.map +1 -1
  440. package/dist/types/tool-validation.js.map +1 -1
  441. package/dist/types/yaml.types.js +0 -1
  442. package/dist/types/yaml.types.js.map +1 -1
  443. package/dist/utils/aliases.d.ts +7 -0
  444. package/dist/utils/aliases.d.ts.map +1 -0
  445. package/dist/utils/aliases.js +492 -0
  446. package/dist/utils/aliases.js.map +1 -0
  447. package/dist/utils/artifact-loader.d.ts +9 -0
  448. package/dist/utils/artifact-loader.d.ts.map +1 -1
  449. package/dist/utils/artifact-loader.js +16 -6
  450. package/dist/utils/artifact-loader.js.map +1 -1
  451. package/dist/utils/auth-flows.d.ts.map +1 -1
  452. package/dist/utils/auth-flows.js +54 -54
  453. package/dist/utils/auth-flows.js.map +1 -1
  454. package/dist/utils/backup-helpers.d.ts +24 -0
  455. package/dist/utils/backup-helpers.d.ts.map +1 -1
  456. package/dist/utils/backup-helpers.js +102 -22
  457. package/dist/utils/backup-helpers.js.map +1 -1
  458. package/dist/utils/bundle-upload.d.ts +42 -0
  459. package/dist/utils/bundle-upload.d.ts.map +1 -0
  460. package/dist/utils/bundle-upload.js +90 -0
  461. package/dist/utils/bundle-upload.js.map +1 -0
  462. package/dist/utils/chat-attachments.js +1 -1
  463. package/dist/utils/chat-attachments.js.map +1 -1
  464. package/dist/utils/cli.d.ts +24 -6
  465. package/dist/utils/cli.d.ts.map +1 -1
  466. package/dist/utils/cli.js +26 -14
  467. package/dist/utils/cli.js.map +1 -1
  468. package/dist/utils/command-utils.d.ts.map +1 -1
  469. package/dist/utils/command-utils.js +4 -4
  470. package/dist/utils/command-utils.js.map +1 -1
  471. package/dist/utils/deploy-helpers.d.ts.map +1 -1
  472. package/dist/utils/deploy-helpers.js +13 -13
  473. package/dist/utils/deploy-helpers.js.map +1 -1
  474. package/dist/utils/env-loader.utils.d.ts +1 -1
  475. package/dist/utils/env-loader.utils.d.ts.map +1 -1
  476. package/dist/utils/env-loader.utils.js +15 -22
  477. package/dist/utils/env-loader.utils.js.map +1 -1
  478. package/dist/utils/files.d.ts.map +1 -1
  479. package/dist/utils/files.js +23 -13
  480. package/dist/utils/files.js.map +1 -1
  481. package/dist/utils/hints.d.ts +81 -0
  482. package/dist/utils/hints.d.ts.map +1 -0
  483. package/dist/utils/hints.js +81 -0
  484. package/dist/utils/hints.js.map +1 -0
  485. package/dist/utils/init-agent.d.ts.map +1 -1
  486. package/dist/utils/init-agent.js +18 -20
  487. package/dist/utils/init-agent.js.map +1 -1
  488. package/dist/utils/init-helpers.d.ts.map +1 -1
  489. package/dist/utils/init-helpers.js +11 -11
  490. package/dist/utils/init-helpers.js.map +1 -1
  491. package/dist/utils/init-prompts.d.ts.map +1 -1
  492. package/dist/utils/init-prompts.js +34 -36
  493. package/dist/utils/init-prompts.js.map +1 -1
  494. package/dist/utils/prompt-handler.js +1 -1
  495. package/dist/utils/prompt-handler.js.map +1 -1
  496. package/dist/utils/sandbox-storage.d.ts.map +1 -1
  497. package/dist/utils/sandbox-storage.js.map +1 -1
  498. package/dist/utils/sandbox.d.ts +1 -1
  499. package/dist/utils/sandbox.d.ts.map +1 -1
  500. package/dist/utils/sandbox.js +107 -106
  501. package/dist/utils/sandbox.js.map +1 -1
  502. package/dist/utils/semver.js +1 -1
  503. package/dist/utils/semver.js.map +1 -1
  504. package/dist/utils/suggest.d.ts +3 -0
  505. package/dist/utils/suggest.d.ts.map +1 -0
  506. package/dist/utils/suggest.js +32 -0
  507. package/dist/utils/suggest.js.map +1 -0
  508. package/dist/utils/sync-display.d.ts.map +1 -1
  509. package/dist/utils/sync-display.js +15 -13
  510. package/dist/utils/sync-display.js.map +1 -1
  511. package/dist/utils/sync-fetch.d.ts.map +1 -1
  512. package/dist/utils/sync-fetch.js +33 -24
  513. package/dist/utils/sync-fetch.js.map +1 -1
  514. package/dist/utils/version-check.js +1 -1
  515. package/dist/utils/version-check.js.map +1 -1
  516. package/dist/utils/write-info.d.ts +9 -0
  517. package/dist/utils/write-info.d.ts.map +1 -0
  518. package/dist/utils/write-info.js +11 -0
  519. package/dist/utils/write-info.js.map +1 -0
  520. package/docs/README.md +1 -1
  521. package/node_modules/@lua/shared-types/dist/index.d.mts +76 -2
  522. package/node_modules/@lua/shared-types/dist/index.d.ts +76 -2
  523. package/node_modules/@lua/shared-types/dist/index.js +27 -0
  524. package/node_modules/@lua/shared-types/dist/index.mjs +24 -0
  525. package/node_modules/@lua/shared-types/src/ai-generate.types.ts +1 -6
  526. package/node_modules/@lua/shared-types/src/ai-generate.utils.ts +1 -4
  527. package/node_modules/@lua/shared-types/src/channel.type.ts +1 -0
  528. package/node_modules/@lua/shared-types/src/chat-stream.types.ts +11 -0
  529. package/node_modules/@lua/shared-types/src/client-tools.types.ts +47 -0
  530. package/node_modules/@lua/shared-types/src/device.types.ts +6 -6
  531. package/node_modules/@lua/shared-types/src/index.ts +3 -0
  532. package/node_modules/@lua/shared-types/src/sandbox-contract.ts +26 -5
  533. package/node_modules/@lua/shared-types/src/vm-execution-log.types.ts +41 -0
  534. package/package.json +10 -6
  535. package/scripts/build-vendor.mjs +53 -0
  536. package/scripts/vendor-entry.mjs +11 -0
  537. package/template/QUICKSTART.md +33 -33
  538. package/template/README.md +35 -34
  539. package/template/examples/README.md +44 -38
  540. package/template/examples/jobs/AbandonedBasketProcessorJob.ts +30 -31
  541. package/template/examples/jobs/DailyCleanupJob.ts +17 -18
  542. package/template/examples/jobs/DataMigrationJob.ts +18 -23
  543. package/template/examples/jobs/HealthCheckJob.ts +13 -14
  544. package/template/examples/postprocessors/modifyResponse.ts +14 -15
  545. package/template/examples/preprocessors/messageMatching.ts +28 -29
  546. package/template/examples/services/ApiService.ts +68 -64
  547. package/template/examples/services/GetWeather.ts +39 -33
  548. package/template/examples/skills/basket.skill.ts +27 -7
  549. package/template/examples/skills/product.skill.ts +21 -8
  550. package/template/examples/skills/tools/BasketTool.ts +97 -98
  551. package/template/examples/skills/tools/CreateInlineJob.ts +38 -36
  552. package/template/examples/skills/tools/CreatePostTool.ts +27 -28
  553. package/template/examples/skills/tools/CustomDataTool.ts +72 -67
  554. package/template/examples/skills/tools/GameScoreTrackerTool.ts +72 -78
  555. package/template/examples/skills/tools/GetWeatherTool.ts +43 -45
  556. package/template/examples/skills/tools/OrderTool.ts +58 -58
  557. package/template/examples/skills/tools/PaymentTool.ts +43 -43
  558. package/template/examples/skills/tools/PremiumFeatureTool.ts +81 -79
  559. package/template/examples/skills/tools/ProductsTool.ts +68 -69
  560. package/template/examples/skills/tools/SmartBasketTool.ts +43 -44
  561. package/template/examples/skills/tools/UserDataTool.ts +97 -98
  562. package/template/examples/skills/user.skill.ts +7 -8
  563. package/template/examples/webhooks/FileUploadWebhook.ts +38 -31
  564. package/template/examples/webhooks/PaymentWebhook.ts +23 -22
  565. package/template/examples/webhooks/UserEventWebhook.ts +16 -19
  566. package/template/lua.skill.yaml +2 -2
  567. package/template/package.json +1 -1
  568. package/template/src/index.ts +28 -28
@@ -2,13 +2,14 @@
2
2
  * Channels Command
3
3
  * Manages agent communication channels (list, create)
4
4
  */
5
- import inquirer from "inquirer";
5
+ import inquirer from 'inquirer';
6
6
  import open from 'open';
7
- import { withErrorHandling, writeSuccess, writeInfo, clearPromptLines, writeProgress } from "../utils/cli.js";
8
- import { initializeCommand } from "../utils/command-utils.js";
7
+ import { withErrorHandling, writeSuccess, writeInfo, clearPromptLines, writeProgress } from '../utils/cli.js';
8
+ import { initializeCommand } from '../utils/command-utils.js';
9
9
  import AgentApi from '../api/agent.api.service.js';
10
10
  import { BASE_URLS } from '../config/constants.js';
11
11
  import { trackEvent } from '../services/analytics.js';
12
+ import { validateOrSuggest } from '../utils/aliases.js';
12
13
  // ─────────────────────────────────────────────────────────────────────────────
13
14
  // Main Command Entry
14
15
  // ─────────────────────────────────────────────────────────────────────────────
@@ -32,7 +33,7 @@ export async function channelsCommand(action) {
32
33
  await channelsInteractive(agentApi, agentId, apiKey, config);
33
34
  }
34
35
  trackEvent('cli_channels_action', { action: action || 'interactive', non_interactive: !!action });
35
- }, "channels management");
36
+ }, 'channels management');
36
37
  }
37
38
  // ─────────────────────────────────────────────────────────────────────────────
38
39
  // Shared Core Functions
@@ -53,12 +54,12 @@ async function fetchChannelsCore(agentApi, agentId) {
53
54
  */
54
55
  function getChannelIcon(type) {
55
56
  const icons = {
56
- 'whatsapp': '📱',
57
- 'facebook': '💬',
58
- 'instagram': '📸',
59
- 'slack': '💼',
60
- 'email': '📧',
61
- 'webchat': '💻'
57
+ whatsapp: '📱',
58
+ facebook: '💬',
59
+ instagram: '📸',
60
+ slack: '💼',
61
+ email: '📧',
62
+ webchat: '💻',
62
63
  };
63
64
  return icons[type] || '📡';
64
65
  }
@@ -85,11 +86,11 @@ function getChannelLabel(channel) {
85
86
  * Displays all channels (non-interactive).
86
87
  */
87
88
  function displayChannelsCore(channels) {
88
- console.log("\n" + "=".repeat(60));
89
- console.log("📡 Agent Channels");
90
- console.log("=".repeat(60) + "\n");
89
+ console.log('\n' + '='.repeat(60));
90
+ console.log('📡 Agent Channels');
91
+ console.log('='.repeat(60) + '\n');
91
92
  if (channels.length === 0) {
92
- console.log("ℹ️ No channels configured for this agent.");
93
+ console.log('ℹ️ No channels configured for this agent.');
93
94
  console.log("💡 Use 'lua channels' (interactive) to add channels.\n");
94
95
  return;
95
96
  }
@@ -103,28 +104,18 @@ function displayChannelsCore(channels) {
103
104
  console.log(` Created: ${created}`);
104
105
  console.log();
105
106
  });
106
- console.log("=".repeat(60));
107
+ console.log('='.repeat(60));
107
108
  console.log(`Total: ${channels.length} channel(s)`);
108
109
  }
109
110
  // ─────────────────────────────────────────────────────────────────────────────
110
111
  // Non-Interactive Mode
111
112
  // ─────────────────────────────────────────────────────────────────────────────
112
113
  async function executeNonInteractive(agentApi, agentId, action) {
113
- const validActions = ['list'];
114
- const normalizedAction = action.toLowerCase();
115
- if (!validActions.includes(normalizedAction)) {
116
- console.error(`❌ Invalid action: "${action}"`);
117
- console.log('\nValid actions: list');
118
- console.log('\nNote: Channel creation requires interactive mode.');
119
- console.log('\nExamples:');
120
- console.log(' lua channels list List all channels');
121
- console.log(' lua channels Interactive mode');
122
- throw new Error("Invalid action:");
123
- }
114
+ action = validateOrSuggest('channels.action', action);
124
115
  writeInfo(`📡 Fetching channels for agent: ${agentId}...`);
125
116
  const channels = await fetchChannelsCore(agentApi, agentId);
126
117
  if (!channels)
127
- throw new Error("Operation failed");
118
+ throw new Error('Operation failed');
128
119
  displayChannelsCore(channels);
129
120
  }
130
121
  // ─────────────────────────────────────────────────────────────────────────────
@@ -133,25 +124,25 @@ async function executeNonInteractive(agentApi, agentId, action) {
133
124
  async function channelsInteractive(agentApi, agentId, apiKey, config) {
134
125
  const { operation } = await inquirer.prompt([
135
126
  {
136
- type: "list",
137
- name: "operation",
138
- message: "What would you like to do?",
127
+ type: 'list',
128
+ name: 'operation',
129
+ message: 'What would you like to do?',
139
130
  choices: [
140
- { name: "📋 List channels", value: "list" },
141
- { name: "🔗 Link new channel", value: "create" },
142
- { name: "🌐 Link on admin dashboard", value: "admin" }
143
- ]
144
- }
131
+ { name: '📋 List channels', value: 'list' },
132
+ { name: '🔗 Link new channel', value: 'create' },
133
+ { name: '🌐 Link on admin dashboard', value: 'admin' },
134
+ ],
135
+ },
145
136
  ]);
146
137
  clearPromptLines(2);
147
138
  trackEvent('cli_channels_interactive_action', { operation });
148
- if (operation === "list") {
139
+ if (operation === 'list') {
149
140
  await listChannelsInteractive(agentApi, agentId, config);
150
141
  }
151
- else if (operation === "create") {
142
+ else if (operation === 'create') {
152
143
  await createChannel(agentApi, agentId);
153
144
  }
154
- else if (operation === "admin") {
145
+ else if (operation === 'admin') {
155
146
  await openAdminDashboard(apiKey, config);
156
147
  }
157
148
  }
@@ -182,10 +173,10 @@ async function listChannelsInteractive(agentApi, agentId, config) {
182
173
  writeInfo(`📡 Fetching channels for agent: ${agentId}...`);
183
174
  const channels = await fetchChannelsCore(agentApi, agentId);
184
175
  if (!channels)
185
- throw new Error("Operation failed");
176
+ throw new Error('Operation failed');
186
177
  writeSuccess(`✅ Found ${channels.length} channel(s)\n`);
187
178
  if (channels.length === 0) {
188
- writeInfo("No channels configured for this agent.");
179
+ writeInfo('No channels configured for this agent.');
189
180
  writeInfo("\n💡 Use the 'Create new channel' option to add channels.\n");
190
181
  return;
191
182
  }
@@ -194,20 +185,20 @@ async function listChannelsInteractive(agentApi, agentId, config) {
194
185
  const label = getChannelLabel(channel);
195
186
  return {
196
187
  name: `${icon} ${channel.type.toUpperCase()} - ${label}`,
197
- value: index
188
+ value: index,
198
189
  };
199
190
  });
200
191
  channelChoices.push({
201
192
  name: '← Back to main menu',
202
- value: -1
193
+ value: -1,
203
194
  });
204
195
  const { selectedIndex } = await inquirer.prompt([
205
196
  {
206
- type: "list",
207
- name: "selectedIndex",
208
- message: "Select a channel to view details:",
209
- choices: channelChoices
210
- }
197
+ type: 'list',
198
+ name: 'selectedIndex',
199
+ message: 'Select a channel to view details:',
200
+ choices: channelChoices,
201
+ },
211
202
  ]);
212
203
  if (selectedIndex === -1) {
213
204
  return;
@@ -374,34 +365,34 @@ function displayEmailDetails(channel) {
374
365
  async function createChannel(agentApi, agentId) {
375
366
  const { channelType } = await inquirer.prompt([
376
367
  {
377
- type: "list",
378
- name: "channelType",
379
- message: "Select channel type:",
368
+ type: 'list',
369
+ name: 'channelType',
370
+ message: 'Select channel type:',
380
371
  choices: [
381
- { name: "📱 WhatsApp", value: "whatsapp" },
382
- { name: "💬 Facebook Messenger", value: "facebook" },
383
- { name: "📧 Email", value: "email" },
384
- { name: "🔒 Slack (Private)", value: "slack-private" },
385
- { name: "🌐 Slack (Public)", value: "slack-public" }
386
- ]
387
- }
372
+ { name: '📱 WhatsApp', value: 'whatsapp' },
373
+ { name: '💬 Facebook Messenger', value: 'facebook' },
374
+ { name: '📧 Email', value: 'email' },
375
+ { name: '🔒 Slack (Private)', value: 'slack-private' },
376
+ { name: '🌐 Slack (Public)', value: 'slack-public' },
377
+ ],
378
+ },
388
379
  ]);
389
380
  clearPromptLines(2);
390
381
  trackEvent('cli_channel_created', { channel_type: channelType });
391
382
  switch (channelType) {
392
- case "whatsapp":
383
+ case 'whatsapp':
393
384
  await createWhatsAppChannel(agentApi, agentId);
394
385
  break;
395
- case "facebook":
386
+ case 'facebook':
396
387
  await createFacebookChannel(agentApi, agentId);
397
388
  break;
398
- case "email":
389
+ case 'email':
399
390
  await createEmailChannel(agentApi, agentId);
400
391
  break;
401
- case "slack-private":
392
+ case 'slack-private':
402
393
  await createSlackPrivateChannel(agentApi, agentId);
403
394
  break;
404
- case "slack-public":
395
+ case 'slack-public':
405
396
  await createSlackPublicChannel(agentApi, agentId);
406
397
  break;
407
398
  }
@@ -410,44 +401,44 @@ async function createChannel(agentApi, agentId) {
410
401
  * Creates a WhatsApp channel
411
402
  */
412
403
  async function createWhatsAppChannel(agentApi, agentId) {
413
- writeInfo("📱 Creating WhatsApp Channel\n");
404
+ writeInfo('📱 Creating WhatsApp Channel\n');
414
405
  const answers = await inquirer.prompt([
415
406
  {
416
- type: "input",
417
- name: "phoneNumberId",
418
- message: "Enter phone number ID:",
407
+ type: 'input',
408
+ name: 'phoneNumberId',
409
+ message: 'Enter phone number ID:',
419
410
  validate: (input) => {
420
- return input.trim().length > 0 || "Phone number ID is required";
421
- }
411
+ return input.trim().length > 0 || 'Phone number ID is required';
412
+ },
422
413
  },
423
414
  {
424
- type: "input",
425
- name: "wabaId",
426
- message: "Enter WhatsApp Business Account ID (WABA ID):",
415
+ type: 'input',
416
+ name: 'wabaId',
417
+ message: 'Enter WhatsApp Business Account ID (WABA ID):',
427
418
  validate: (input) => {
428
- return input.trim().length > 0 || "WABA ID is required";
429
- }
419
+ return input.trim().length > 0 || 'WABA ID is required';
420
+ },
430
421
  },
431
422
  {
432
- type: "password",
433
- name: "accessToken",
434
- message: "Enter access token:",
435
- mask: "*",
423
+ type: 'password',
424
+ name: 'accessToken',
425
+ message: 'Enter access token:',
426
+ mask: '*',
436
427
  validate: (input) => {
437
- return input.trim().length > 0 || "Access token is required";
438
- }
439
- }
428
+ return input.trim().length > 0 || 'Access token is required';
429
+ },
430
+ },
440
431
  ]);
441
432
  const channelData = {
442
- type: "whatsapp",
433
+ type: 'whatsapp',
443
434
  whatsapp: {
444
435
  phoneNumberId: answers.phoneNumberId.trim(),
445
436
  wabaId: answers.wabaId.trim(),
446
- accessToken: answers.accessToken.trim()
437
+ accessToken: answers.accessToken.trim(),
447
438
  },
448
- isManual: true
439
+ isManual: true,
449
440
  };
450
- writeInfo("\n📡 Creating WhatsApp channel...");
441
+ writeInfo('\n📡 Creating WhatsApp channel...');
451
442
  const response = await agentApi.createWhatsAppChannel(agentId, channelData);
452
443
  if (!response.success) {
453
444
  const error = response.error;
@@ -462,10 +453,10 @@ async function createWhatsAppChannel(agentApi, agentId) {
462
453
  console.error(` ${error.error}\n`);
463
454
  }
464
455
  }
465
- throw new Error("Operation failed");
456
+ throw new Error('Operation failed');
466
457
  }
467
458
  const data = response.data;
468
- writeSuccess("\n✅ WhatsApp channel created successfully!\n");
459
+ writeSuccess('\n✅ WhatsApp channel created successfully!\n');
469
460
  writeInfo(`📞 Phone Number: ${data.whatsapp.number}`);
470
461
  writeInfo(`🆔 Identifier: ${data.identifier}`);
471
462
  writeInfo(`✅ Status: ${data.whatsapp.metadata.status}`);
@@ -475,34 +466,34 @@ async function createWhatsAppChannel(agentApi, agentId) {
475
466
  * Creates a Facebook Messenger channel
476
467
  */
477
468
  async function createFacebookChannel(agentApi, agentId) {
478
- writeInfo("💬 Creating Facebook Messenger Channel\n");
469
+ writeInfo('💬 Creating Facebook Messenger Channel\n');
479
470
  const answers = await inquirer.prompt([
480
471
  {
481
- type: "password",
482
- name: "accessToken",
483
- message: "Enter Facebook page access token:",
484
- mask: "*",
472
+ type: 'password',
473
+ name: 'accessToken',
474
+ message: 'Enter Facebook page access token:',
475
+ mask: '*',
485
476
  validate: (input) => {
486
- return input.trim().length > 0 || "Access token is required";
487
- }
477
+ return input.trim().length > 0 || 'Access token is required';
478
+ },
488
479
  },
489
480
  {
490
- type: "input",
491
- name: "pageId",
492
- message: "Enter Facebook page ID:",
481
+ type: 'input',
482
+ name: 'pageId',
483
+ message: 'Enter Facebook page ID:',
493
484
  validate: (input) => {
494
- return input.trim().length > 0 || "Page ID is required";
495
- }
496
- }
485
+ return input.trim().length > 0 || 'Page ID is required';
486
+ },
487
+ },
497
488
  ]);
498
489
  const channelData = {
499
- type: "facebook",
490
+ type: 'facebook',
500
491
  facebook: {
501
492
  accessToken: answers.accessToken.trim(),
502
- pageId: answers.pageId.trim()
503
- }
493
+ pageId: answers.pageId.trim(),
494
+ },
504
495
  };
505
- writeInfo("\n📡 Creating Facebook channel...");
496
+ writeInfo('\n📡 Creating Facebook channel...');
506
497
  const response = await agentApi.createFacebookChannel(agentId, channelData);
507
498
  if (!response.success) {
508
499
  const error = response.error;
@@ -517,10 +508,10 @@ async function createFacebookChannel(agentApi, agentId) {
517
508
  console.error(` ${error.error}\n`);
518
509
  }
519
510
  }
520
- throw new Error("Operation failed");
511
+ throw new Error('Operation failed');
521
512
  }
522
513
  const data = response.data;
523
- writeSuccess("\n✅ Facebook channel created successfully!\n");
514
+ writeSuccess('\n✅ Facebook channel created successfully!\n');
524
515
  writeInfo(`📄 Page Name: ${data.facebook.name}`);
525
516
  writeInfo(`🆔 Identifier: ${data.identifier}`);
526
517
  writeInfo(`📋 Category: ${data.facebook.category}`);
@@ -530,57 +521,57 @@ async function createFacebookChannel(agentApi, agentId) {
530
521
  * Creates an Email channel
531
522
  */
532
523
  async function createEmailChannel(agentApi, agentId) {
533
- writeInfo("📧 Creating Email Channel\n");
524
+ writeInfo('📧 Creating Email Channel\n');
534
525
  const { mode } = await inquirer.prompt([
535
526
  {
536
- type: "list",
537
- name: "mode",
538
- message: "Select email channel mode:",
527
+ type: 'list',
528
+ name: 'mode',
529
+ message: 'Select email channel mode:',
539
530
  choices: [
540
- { name: "📬 Generate new inbox (Lua creates an email address for you)", value: "generated" },
541
- { name: "📧 Use existing email (forward from your own address)", value: "existing" }
542
- ]
543
- }
531
+ { name: '📬 Generate new inbox (Lua creates an email address for you)', value: 'generated' },
532
+ { name: '📧 Use existing email (forward from your own address)', value: 'existing' },
533
+ ],
534
+ },
544
535
  ]);
545
536
  clearPromptLines(2);
546
537
  const { displayName } = await inquirer.prompt([
547
538
  {
548
- type: "input",
549
- name: "displayName",
550
- message: "Enter display name (shown in email header):",
539
+ type: 'input',
540
+ name: 'displayName',
541
+ message: 'Enter display name (shown in email header):',
551
542
  validate: (input) => {
552
- return input.trim().length > 0 || "Display name is required";
553
- }
554
- }
543
+ return input.trim().length > 0 || 'Display name is required';
544
+ },
545
+ },
555
546
  ]);
556
547
  const channelData = {
557
- type: "email",
548
+ type: 'email',
558
549
  email: {
559
550
  mode: mode,
560
551
  displayName: displayName.trim(),
561
- }
552
+ },
562
553
  };
563
- if (mode === "existing") {
554
+ if (mode === 'existing') {
564
555
  const { email } = await inquirer.prompt([
565
556
  {
566
- type: "input",
567
- name: "email",
568
- message: "Enter sender email address:",
557
+ type: 'input',
558
+ name: 'email',
559
+ message: 'Enter sender email address:',
569
560
  validate: (input) => {
570
561
  if (input.trim().length === 0) {
571
- return "Email address is required";
562
+ return 'Email address is required';
572
563
  }
573
564
  const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
574
565
  if (!emailRegex.test(input.trim())) {
575
- return "Please enter a valid email address";
566
+ return 'Please enter a valid email address';
576
567
  }
577
568
  return true;
578
- }
579
- }
569
+ },
570
+ },
580
571
  ]);
581
572
  channelData.email.email = email.trim();
582
573
  }
583
- writeInfo("\n📡 Creating Email channel...");
574
+ writeInfo('\n📡 Creating Email channel...');
584
575
  const response = await agentApi.createEmailChannel(agentId, channelData);
585
576
  if (!response.success) {
586
577
  const error = response.error;
@@ -595,12 +586,12 @@ async function createEmailChannel(agentApi, agentId) {
595
586
  console.error(` ${error.error}\n`);
596
587
  }
597
588
  }
598
- throw new Error("Operation failed");
589
+ throw new Error('Operation failed');
599
590
  }
600
591
  const data = response.data;
601
- writeSuccess("\n✅ Email channel created successfully!\n");
592
+ writeSuccess('\n✅ Email channel created successfully!\n');
602
593
  writeInfo(`📧 Display Name: ${displayName}`);
603
- if (mode === "generated") {
594
+ if (mode === 'generated') {
604
595
  const generatedData = data;
605
596
  writeInfo(`📬 Email Address: ${generatedData.emailAddress}\n`);
606
597
  writeInfo(`${'─'.repeat(60)}`);
@@ -632,32 +623,32 @@ async function createEmailChannel(agentApi, agentId) {
632
623
  * Creates a private Slack channel
633
624
  */
634
625
  async function createSlackPrivateChannel(agentApi, agentId) {
635
- writeInfo("🔒 Creating Private Slack Channel\n");
626
+ writeInfo('🔒 Creating Private Slack Channel\n');
636
627
  const answers = await inquirer.prompt([
637
628
  {
638
- type: "password",
639
- name: "accessToken",
640
- message: "Enter Slack bot access token (xoxb-...):",
641
- mask: "*",
629
+ type: 'password',
630
+ name: 'accessToken',
631
+ message: 'Enter Slack bot access token (xoxb-...):',
632
+ mask: '*',
642
633
  validate: (input) => {
643
634
  if (input.trim().length === 0) {
644
- return "Access token is required";
635
+ return 'Access token is required';
645
636
  }
646
- if (!input.trim().startsWith("xoxb-")) {
637
+ if (!input.trim().startsWith('xoxb-')) {
647
638
  return "Bot token should start with 'xoxb-'";
648
639
  }
649
640
  return true;
650
- }
651
- }
641
+ },
642
+ },
652
643
  ]);
653
644
  const channelData = {
654
- type: "slack",
645
+ type: 'slack',
655
646
  slack: {
656
- type: "private",
657
- accessToken: answers.accessToken.trim()
658
- }
647
+ type: 'private',
648
+ accessToken: answers.accessToken.trim(),
649
+ },
659
650
  };
660
- writeInfo("\n📡 Creating Slack private channel...");
651
+ writeInfo('\n📡 Creating Slack private channel...');
661
652
  const response = await agentApi.createSlackChannel(agentId, channelData);
662
653
  if (!response.success) {
663
654
  const error = response.error;
@@ -672,11 +663,11 @@ async function createSlackPrivateChannel(agentApi, agentId) {
672
663
  console.error(` ${error.error}\n`);
673
664
  }
674
665
  }
675
- throw new Error("Operation failed");
666
+ throw new Error('Operation failed');
676
667
  }
677
668
  const data = response.data;
678
669
  if ('slack' in data && 'botName' in data.slack) {
679
- writeSuccess("\n✅ Slack private channel created successfully!\n");
670
+ writeSuccess('\n✅ Slack private channel created successfully!\n');
680
671
  writeInfo(`🤖 Bot Name: ${data.slack.botName}`);
681
672
  writeInfo(`🏢 Workspace: ${data.slack.url}`);
682
673
  writeInfo(`🆔 Bot ID: ${data.slack.botId}`);
@@ -688,44 +679,44 @@ async function createSlackPrivateChannel(agentApi, agentId) {
688
679
  * Creates a public Slack channel
689
680
  */
690
681
  async function createSlackPublicChannel(agentApi, agentId) {
691
- writeInfo("🌐 Creating Public Slack Channel\n");
682
+ writeInfo('🌐 Creating Public Slack Channel\n');
692
683
  const answers = await inquirer.prompt([
693
684
  {
694
- type: "input",
695
- name: "appId",
696
- message: "Enter Slack app ID:",
685
+ type: 'input',
686
+ name: 'appId',
687
+ message: 'Enter Slack app ID:',
697
688
  validate: (input) => {
698
- return input.trim().length > 0 || "App ID is required";
699
- }
689
+ return input.trim().length > 0 || 'App ID is required';
690
+ },
700
691
  },
701
692
  {
702
- type: "input",
703
- name: "clientId",
704
- message: "Enter Slack client ID:",
693
+ type: 'input',
694
+ name: 'clientId',
695
+ message: 'Enter Slack client ID:',
705
696
  validate: (input) => {
706
- return input.trim().length > 0 || "Client ID is required";
707
- }
697
+ return input.trim().length > 0 || 'Client ID is required';
698
+ },
708
699
  },
709
700
  {
710
- type: "password",
711
- name: "clientSecret",
712
- message: "Enter Slack client secret:",
713
- mask: "*",
701
+ type: 'password',
702
+ name: 'clientSecret',
703
+ message: 'Enter Slack client secret:',
704
+ mask: '*',
714
705
  validate: (input) => {
715
- return input.trim().length > 0 || "Client secret is required";
716
- }
717
- }
706
+ return input.trim().length > 0 || 'Client secret is required';
707
+ },
708
+ },
718
709
  ]);
719
710
  const channelData = {
720
- type: "slack",
711
+ type: 'slack',
721
712
  slack: {
722
- type: "public",
713
+ type: 'public',
723
714
  appId: answers.appId.trim(),
724
715
  clientId: answers.clientId.trim(),
725
- clientSecret: answers.clientSecret.trim()
726
- }
716
+ clientSecret: answers.clientSecret.trim(),
717
+ },
727
718
  };
728
- writeInfo("\n📡 Creating Slack public channel...");
719
+ writeInfo('\n📡 Creating Slack public channel...');
729
720
  const response = await agentApi.createSlackChannel(agentId, channelData);
730
721
  if (!response.success) {
731
722
  const error = response.error;
@@ -740,11 +731,11 @@ async function createSlackPublicChannel(agentApi, agentId) {
740
731
  console.error(` ${error.error}\n`);
741
732
  }
742
733
  }
743
- throw new Error("Operation failed");
734
+ throw new Error('Operation failed');
744
735
  }
745
736
  const data = response.data;
746
737
  if ('redirectUri' in data) {
747
- writeSuccess("\n✅ Slack public channel created successfully!\n");
738
+ writeSuccess('\n✅ Slack public channel created successfully!\n');
748
739
  writeInfo(`🆔 App ID: ${data.appId}`);
749
740
  writeInfo(`🔗 Redirect URI: ${data.redirectUri}`);
750
741
  writeInfo(`🔗 Webhook URL: ${data.webhookUrl}\n`);