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,8 +2,8 @@
2
2
  * Compile Command
3
3
  * Uses the plugin-based compiler to compile all primitives
4
4
  */
5
- import path from "path";
6
- import { withErrorHandling, writeProgress, writeSuccess, writeError, writeInfo } from "../utils/cli.js";
5
+ import path from 'path';
6
+ import { withErrorHandling, writeProgress, writeSuccess, writeError, writeInfo, writeNextStep, writeHintBlock, } from '../utils/cli.js';
7
7
  import { readYamlConfig, ensureGitignored } from '../utils/files.js';
8
8
  import { getToken } from '../services/auth.js';
9
9
  import { runSyncCheck } from './sync.js';
@@ -41,6 +41,12 @@ import { trackEvent } from '../services/analytics.js';
41
41
  * @param options.debug - Enable debug mode (preserves temp files, verbose esbuild)
42
42
  * @param options.verbose - Show detailed progress output
43
43
  * @param options.sync - Run drift detection check before compiling (default: off)
44
+ * @param options.topLevel - When true, emit a post-compile next-step hint.
45
+ * Sub-invocations (from `lua push`, `lua chat`, `lua test`) must pass
46
+ * `topLevel: false` (or omit — it defaults to false) so the hint is
47
+ * suppressed; otherwise users see a spurious "run `lua test`" suggestion
48
+ * mid-flow during `lua push` or, worse, mid `lua test` itself.
49
+ * The hint fires only when the user explicitly runs `lua compile`.
44
50
  */
45
51
  export async function compileCommand(options) {
46
52
  return withErrorHandling(async () => {
@@ -59,7 +65,9 @@ export async function compileCommand(options) {
59
65
  try {
60
66
  apiKey = getToken();
61
67
  }
62
- catch { /* no key — skip sync */ }
68
+ catch {
69
+ /* no key — skip sync */
70
+ }
63
71
  if (apiKey && agentId) {
64
72
  const shouldContinue = await runSyncCheck(apiKey, agentId);
65
73
  if (!shouldContinue) {
@@ -73,7 +81,7 @@ export async function compileCommand(options) {
73
81
  }
74
82
  }
75
83
  }
76
- writeProgress("šŸ”Ø Compiling...");
84
+ writeProgress('šŸ”Ø Compiling...');
77
85
  // Step 1: Run the compiler
78
86
  const rootDir = process.cwd();
79
87
  const outDir = path.join(rootDir, 'dist-v2');
@@ -102,7 +110,20 @@ export async function compileCommand(options) {
102
110
  first_error: result.errors[0]?.message?.substring(0, 200) || null,
103
111
  debug_mode: debugMode,
104
112
  });
105
- throw new Error("Operation failed");
113
+ // B12: only show the compile-specific debug hint when this is a top-level
114
+ // `lua compile` invocation. Sub-invocations from lua push/chat/test should
115
+ // not tell users to run `lua compile --verbose` mid-flow.
116
+ if (options?.topLevel) {
117
+ writeHintBlock({
118
+ headline: 'Compilation failed. Debug options:',
119
+ lines: [
120
+ { label: 'More context:', command: 'lua compile --verbose' },
121
+ { label: 'Full esbuild output:', command: 'lua compile --debug' },
122
+ ],
123
+ when: 'error',
124
+ });
125
+ }
126
+ throw new Error('Compilation failed — see errors above.');
106
127
  }
107
128
  // Ensure dist-v2/ is in .gitignore
108
129
  ensureGitignored(rootDir, 'dist-v2/', 'dist/');
@@ -113,7 +134,7 @@ export async function compileCommand(options) {
113
134
  }
114
135
  }
115
136
  // Step 4: Sync YAML with manifest (all versioned primitives)
116
- writeProgress("šŸ”„ Syncing YAML with manifest...");
137
+ writeProgress('šŸ”„ Syncing YAML with manifest...');
117
138
  let config = readYamlConfig();
118
139
  for (const handler of versionedHandlers) {
119
140
  handler.syncYamlWithManifest(result.manifest, config);
@@ -124,23 +145,28 @@ export async function compileCommand(options) {
124
145
  try {
125
146
  apiKey = getToken();
126
147
  }
127
- catch { /* no key — skip server sync */ }
148
+ catch {
149
+ /* no key — skip server sync */
150
+ }
128
151
  let syncConfig = readYamlConfig();
129
152
  const agentId = syncConfig?.agent?.agentId;
130
153
  if (apiKey && agentId) {
131
- writeProgress("šŸ”„ Syncing with server...");
154
+ writeProgress('šŸ”„ Syncing with server...');
132
155
  // Phase 1: Fetch all server state in parallel (6 HTTP calls at once)
133
- const fetchResults = await Promise.all(syncableHandlers.map(h => h.fetchServerState(apiKey, agentId)));
156
+ const fetchResults = await Promise.all(syncableHandlers.map((h) => h.fetchServerState(apiKey, agentId)));
134
157
  // Phase 2: Apply YAML changes sequentially (each handler writes to its own YAML key)
135
158
  for (let i = 0; i < syncableHandlers.length; i++) {
136
- const applyResult = await syncableHandlers[i].applySyncToYaml(fetchResults[i], syncConfig, result.manifest, { apiKey, agentId });
159
+ const applyResult = await syncableHandlers[i].applySyncToYaml(fetchResults[i], syncConfig, result.manifest, {
160
+ apiKey,
161
+ agentId,
162
+ });
137
163
  if (applyResult.yamlUpdated) {
138
164
  syncConfig = readYamlConfig(); // Re-read only if changed
139
165
  }
140
166
  }
141
167
  }
142
168
  else {
143
- console.log("āš ļø Skipping server sync (no API key or agent ID configured)");
169
+ console.log('āš ļø Skipping server sync (no API key or agent ID configured)');
144
170
  }
145
171
  // Step 6: Print summary
146
172
  const { stats } = result;
@@ -148,6 +174,17 @@ export async function compileCommand(options) {
148
174
  .map(([kind, count]) => `${count} ${kind}${count > 1 ? 's' : ''}`)
149
175
  .join(', ');
150
176
  writeSuccess(`āœ… Compiled ${stats.totalPrimitives} primitives (${parts}) in ${stats.duration}ms`);
177
+ // Emit next-step hint only when called as a top-level `lua compile`
178
+ // invocation. Sub-invocations from `lua push`, `lua chat`, and `lua test`
179
+ // must not print "run `lua test`" mid-flow — especially not during
180
+ // `lua test` itself. Fixes Bugbot issue f45d2169.
181
+ if (options?.topLevel) {
182
+ writeNextStep({
183
+ command: 'lua test',
184
+ rationale: 'to verify your tools work locally before pushing',
185
+ when: 'success',
186
+ });
187
+ }
151
188
  if (debugMode) {
152
189
  console.log(`šŸ“Š Output: ${outDir}`);
153
190
  console.log(` Total size: ${(stats.totalSize / 1024).toFixed(1)}KB`);
@@ -174,6 +211,6 @@ export async function compileCommand(options) {
174
211
  server_sync_performed: !!(apiKey && agentId),
175
212
  backup_out_of_sync: backupOutOfSync,
176
213
  });
177
- }, "compilation");
214
+ }, 'compilation');
178
215
  }
179
216
  //# sourceMappingURL=compile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6JH;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDrE"}
1
+ {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgKH;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+CrE"}
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import { withErrorHandling } from '../utils/cli.js';
6
6
  import { trackEvent } from '../services/analytics.js';
7
+ import { validateOrSuggest } from '../utils/aliases.js';
7
8
  /**
8
9
  * Bash completion script
9
10
  */
@@ -15,7 +16,7 @@ _lua_completion() {
15
16
  prev="\${COMP_WORDS[COMP_CWORD-1]}"
16
17
 
17
18
  # Main commands
18
- commands="auth init compile test push deploy chat env persona production resources admin docs channels logs skills features completion"
19
+ commands="admin auth channels chat compile completion deploy describe docs env features init logs persona production push resources skills status test"
19
20
 
20
21
  # Subcommands
21
22
  case "\${prev}" in
@@ -66,7 +67,7 @@ _lua() {
66
67
  local line state
67
68
 
68
69
  _arguments -C \\
69
- "1: :(auth init compile test push deploy chat env persona production resources admin docs channels logs skills features completion)" \\
70
+ "1: :(admin auth channels chat compile completion deploy describe docs env features init logs persona production push resources skills status test)" \\
70
71
  "*::arg:->args"
71
72
 
72
73
  case $line[1] in
@@ -119,6 +120,8 @@ complete -c lua -f -n "__fish_use_subcommand" -a "channels" -d "Manage channels"
119
120
  complete -c lua -f -n "__fish_use_subcommand" -a "logs" -d "View logs"
120
121
  complete -c lua -f -n "__fish_use_subcommand" -a "skills" -d "Manage skills"
121
122
  complete -c lua -f -n "__fish_use_subcommand" -a "features" -d "Manage agent features"
123
+ complete -c lua -f -n "__fish_use_subcommand" -a "status" -d "Show project status"
124
+ complete -c lua -f -n "__fish_use_subcommand" -a "describe" -d "Describe project state"
122
125
  complete -c lua -f -n "__fish_use_subcommand" -a "completion" -d "Generate completion script"
123
126
 
124
127
  # Auth subcommands
@@ -189,13 +192,9 @@ Then follow the instructions above to add it to your shell configuration.
189
192
  return;
190
193
  }
191
194
  // Validate shell type
192
- const validShells = ['bash', 'zsh', 'fish'];
193
- if (!validShells.includes(shell.toLowerCase())) {
194
- console.error(`āŒ Invalid shell: "${shell}". Must be one of: ${validShells.join(', ')}`);
195
- throw new Error("Invalid shell:");
196
- }
195
+ shell = validateOrSuggest('completion.shell', shell);
197
196
  // Output the appropriate completion script
198
- switch (shell.toLowerCase()) {
197
+ switch (shell) {
199
198
  case 'bash':
200
199
  console.log(BASH_COMPLETION);
201
200
  break;
@@ -207,6 +206,6 @@ Then follow the instructions above to add it to your shell configuration.
207
206
  break;
208
207
  }
209
208
  trackEvent('cli_completion_generated', { shell_type: shell || null });
210
- }, "completion");
209
+ }, 'completion');
211
210
  }
212
211
  //# sourceMappingURL=completion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;GAEG;AACH,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDvB,CAAC;AAEF;;GAEG;AACH,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCtB,CAAC;AAEF;;GAEG;AACH,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDvB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAc;IACpD,OAAO,iBAAiB,CAAC,KAAK,IAAI,EAAE;QAClC,2CAA2C;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;CAsBjB,CAAC,CAAC;YACG,OAAO;QACT,CAAC;QAED,sBAAsB;QACtB,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,KAAK,CAAC,qBAAqB,KAAK,sBAAsB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxF,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QAED,2CAA2C;QAC3C,QAAQ,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YAC5B,KAAK,MAAM;gBACT,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC7B,MAAM;YACR,KAAK,KAAK;gBACR,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAC5B,MAAM;YACR,KAAK,MAAM;gBACT,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC7B,MAAM;QACV,CAAC;QACD,UAAU,CAAC,0BAA0B,EAAE,EAAE,UAAU,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC,EAAE,YAAY,CAAC,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;GAEG;AACH,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDvB,CAAC;AAEF;;GAEG;AACH,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCtB,CAAC;AAEF;;GAEG;AACH,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDvB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAc;IACpD,OAAO,iBAAiB,CAAC,KAAK,IAAI,EAAE;QAClC,2CAA2C;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;CAsBjB,CAAC,CAAC;YACG,OAAO;QACT,CAAC;QAED,sBAAsB;QACtB,KAAK,GAAG,iBAAiB,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QAErD,2CAA2C;QAC3C,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,MAAM;gBACT,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC7B,MAAM;YACR,KAAK,KAAK;gBACR,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAC5B,MAAM;YACR,KAAK,MAAM;gBACT,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC7B,MAAM;QACV,CAAC;QACD,UAAU,CAAC,0BAA0B,EAAE,EAAE,UAAU,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC,EAAE,YAAY,CAAC,CAAC;AACnB,CAAC"}
@@ -2,8 +2,8 @@
2
2
  * Configure Command
3
3
  * Orchestrates the authentication setup process
4
4
  */
5
- import { withErrorHandling, clearPromptLines } from "../utils/cli.js";
6
- import { promptAuthMethod, handleApiKeyAuth, handleEmailAuth, handleApiKeyAuthNonInteractive, handleEmailOtpRequest, handleEmailOtpVerify, } from "../utils/auth-flows.js";
5
+ import { withErrorHandling, clearPromptLines } from '../utils/cli.js';
6
+ import { promptAuthMethod, handleApiKeyAuth, handleEmailAuth, handleApiKeyAuthNonInteractive, handleEmailOtpRequest, handleEmailOtpVerify, } from '../utils/auth-flows.js';
7
7
  import { trackEvent } from '../services/analytics.js';
8
8
  /**
9
9
  * Main configure command - sets up authentication credentials.
@@ -59,10 +59,10 @@ export async function configureCommand(options = {}) {
59
59
  // Interactive mode: Prompt for auth method
60
60
  authMethod = await promptAuthMethod();
61
61
  clearPromptLines(2);
62
- if (authMethod === "api-key") {
62
+ if (authMethod === 'api-key') {
63
63
  await handleApiKeyAuth();
64
64
  }
65
- else if (authMethod === "email") {
65
+ else if (authMethod === 'email') {
66
66
  await handleEmailAuth();
67
67
  }
68
68
  }
@@ -71,6 +71,6 @@ export async function configureCommand(options = {}) {
71
71
  non_interactive_mode: nonInteractive,
72
72
  otp_step: email ? (otp ? 'verify' : 'request') : null,
73
73
  });
74
- }, "configuration");
74
+ }, 'configuration');
75
75
  }
76
76
  //# sourceMappingURL=configure.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA8HH;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAmF9E"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqIH;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CA0H9E"}
@@ -4,10 +4,10 @@
4
4
  */
5
5
  import { readYamlConfig, validateSkillConfig } from '../utils/files.js';
6
6
  import { skillHandler, webhookHandler, jobHandler, preprocessorHandler, postprocessorHandler, } from '../primitives/index.js';
7
- import { withErrorHandling, writeProgress, writeSuccess, writeInfo, clearPromptLines } from '../utils/cli.js';
7
+ import { withErrorHandling, writeProgress, writeSuccess, writeInfo, clearPromptLines, writeNextStep, writeHintBlock, writeTip, } from '../utils/cli.js';
8
8
  import { requireAuthOrExit } from '../utils/command-utils.js';
9
9
  import { safePrompt } from '../utils/prompt-handler.js';
10
- import { sortVersionsByDate, promptVersionSelection, confirmDeployment, } from '../utils/deploy-helpers.js';
10
+ import { sortVersionsByDate, promptVersionSelection, confirmDeployment } from '../utils/deploy-helpers.js';
11
11
  import { BASE_URLS } from '../config/constants.js';
12
12
  import SkillApi from '../api/skills.api.service.js';
13
13
  import WebhookApi from '../api/webhook.api.service.js';
@@ -15,7 +15,9 @@ import JobApi from '../api/job.api.service.js';
15
15
  import PreProcessorApi from '../api/preprocessor.api.service.js';
16
16
  import PostProcessorApi from '../api/postprocessor.api.service.js';
17
17
  import PersonaApi from '../api/persona.api.service.js';
18
+ import { buildLogsCommand } from './log-tip.js';
18
19
  import { trackEvent } from '../services/analytics.js';
20
+ import { validateOrSuggest } from '../utils/aliases.js';
19
21
  /**
20
22
  * Normalize a server version object to the VersionInfo shape expected by
21
23
  * sortVersionsByDate / promptVersionSelection / formatVersionChoice.
@@ -116,6 +118,10 @@ export async function deployCommand(type, cmdObj) {
116
118
  if (!type && (cmdObj?.skillName || cmdObj?.skillVersion)) {
117
119
  type = 'skill';
118
120
  }
121
+ // Normalize alias first (e.g. 'everything' → 'all') so the guard below can catch it
122
+ if (type) {
123
+ type = validateOrSuggest('deploy.type', type, { allowAll: true });
124
+ }
119
125
  // Handle 'all' (requires --force, like `lua push all`)
120
126
  if (type === 'all') {
121
127
  if (!options.force) {
@@ -128,25 +134,13 @@ export async function deployCommand(type, cmdObj) {
128
134
  const config = readYamlConfig();
129
135
  validateSkillConfig(config);
130
136
  const agentId = config.agent.agentId;
131
- const validTypes = ['skill', 'webhook', 'job', 'preprocessor', 'postprocessor', 'persona'];
132
137
  let selectedType;
133
138
  if (type) {
134
- if (!validTypes.includes(type)) {
135
- console.log('\nUsage:');
136
- console.log(' lua deploy Interactive selection');
137
- console.log(' lua deploy skill Deploy a skill version');
138
- console.log(' lua deploy webhook Deploy a webhook version');
139
- console.log(' lua deploy job Deploy a job version');
140
- console.log(' lua deploy preprocessor Deploy a preprocessor version');
141
- console.log(' lua deploy postprocessor Deploy a postprocessor version');
142
- console.log(' lua deploy persona Deploy a persona version');
143
- console.log(' lua deploy all --force Deploy latest version of all');
144
- throw new Error(`Invalid type: "${type}". Must be one of: ${validTypes.join(', ')}, or "all".`);
145
- }
146
139
  selectedType = type;
147
140
  }
148
141
  else {
149
- const answer = await safePrompt([{
142
+ const answer = await safePrompt([
143
+ {
150
144
  type: 'list',
151
145
  name: 'type',
152
146
  message: 'What would you like to deploy?',
@@ -158,7 +152,8 @@ export async function deployCommand(type, cmdObj) {
158
152
  { name: 'šŸ“¤ PostProcessor', value: 'postprocessor' },
159
153
  { name: 'šŸ¤– Persona', value: 'persona' },
160
154
  ],
161
- }]);
155
+ },
156
+ ]);
162
157
  if (!answer) {
163
158
  console.log('Deployment cancelled.');
164
159
  return;
@@ -166,12 +161,14 @@ export async function deployCommand(type, cmdObj) {
166
161
  selectedType = answer.type;
167
162
  }
168
163
  const apiKey = await requireAuthOrExit();
164
+ let personaDeployed = false;
165
+ let versionedOutcome = null;
169
166
  if (selectedType === 'persona') {
170
- await deployPersonaVersion(apiKey, agentId, options);
167
+ personaDeployed = await deployPersonaVersion(apiKey, agentId, options);
171
168
  }
172
169
  else {
173
- const deployConfig = VERSIONED_DEPLOY_TYPES.find(dt => dt.type === selectedType);
174
- await deployVersionedPrimitive(deployConfig, config, apiKey, agentId, options);
170
+ const deployConfig = VERSIONED_DEPLOY_TYPES.find((dt) => dt.type === selectedType);
171
+ versionedOutcome = await deployVersionedPrimitive(deployConfig, config, apiKey, agentId, options);
175
172
  }
176
173
  trackEvent('cli_deploy_completed', {
177
174
  primitive_type: selectedType,
@@ -179,6 +176,47 @@ export async function deployCommand(type, cmdObj) {
179
176
  entity_selected_by_name: !!options.name,
180
177
  version_selected_by_flag: !!options.version,
181
178
  });
179
+ const deployed = selectedType === 'persona' ? personaDeployed : (versionedOutcome?.deployed ?? false);
180
+ const hintPrintedAlready = selectedType !== 'persona' && !!versionedOutcome?.hintPrinted;
181
+ if (!deployed) {
182
+ return;
183
+ }
184
+ if (selectedType === 'webhook') {
185
+ // B8: use the resolved entity name (available for both --name and interactive selections)
186
+ const webhookNameToken = versionedOutcome?.entityName || options.name?.trim() || '<webhook-name>';
187
+ writeHintBlock({
188
+ headline: 'Webhook is live. Trigger it, then inspect logs:',
189
+ lines: [
190
+ { label: 'Find URL:', command: `lua webhooks view --webhook-name ${webhookNameToken}` },
191
+ { label: 'Trigger:', command: 'curl -X POST <URL from above>' },
192
+ {
193
+ label: 'Inspect:',
194
+ command: buildLogsCommand({
195
+ primitiveType: 'webhook',
196
+ name: webhookNameToken !== '<webhook-name>' ? webhookNameToken : undefined,
197
+ }),
198
+ },
199
+ ],
200
+ when: 'success',
201
+ });
202
+ }
203
+ else if (selectedType === 'persona') {
204
+ writeNextStep({
205
+ command: 'lua chat -e production -m "test"',
206
+ rationale: 'to verify the new persona responds correctly',
207
+ when: 'success',
208
+ });
209
+ }
210
+ else if (!hintPrintedAlready) {
211
+ writeHintBlock({
212
+ headline: 'Version is live. Generate traffic first, then inspect:',
213
+ lines: [
214
+ { label: 'Test:', command: `lua chat -e production -m "your test message"` },
215
+ { label: 'Inspect:', command: buildLogsCommand({ primitiveType: selectedType }) },
216
+ ],
217
+ when: 'success',
218
+ });
219
+ }
182
220
  }, 'deployment');
183
221
  }
184
222
  /**
@@ -188,7 +226,7 @@ async function deployVersionedPrimitive(deployConfig, config, apiKey, agentId, o
188
226
  const entities = deployConfig.handler.getFromYaml(config);
189
227
  if (entities.length === 0) {
190
228
  writeInfo(`ā„¹ļø No ${deployConfig.label}s found in configuration. Nothing to deploy.`);
191
- return;
229
+ return { deployed: false, hintPrinted: false, entityName: '' };
192
230
  }
193
231
  // Select entity
194
232
  let selectedEntity;
@@ -204,15 +242,17 @@ async function deployVersionedPrimitive(deployConfig, config, apiKey, agentId, o
204
242
  selectedEntity = entities[0];
205
243
  }
206
244
  else {
207
- const answer = await safePrompt([{
245
+ const answer = await safePrompt([
246
+ {
208
247
  type: 'list',
209
248
  name: 'entity',
210
249
  message: `Select a ${deployConfig.label} to deploy:`,
211
250
  choices: entities.map((e) => ({ name: `${e.name} (v${e.version})`, value: e })),
212
- }]);
251
+ },
252
+ ]);
213
253
  if (!answer) {
214
254
  console.log('Deployment cancelled.');
215
- return;
255
+ return { deployed: false, hintPrinted: false, entityName: '' };
216
256
  }
217
257
  clearPromptLines(2);
218
258
  selectedEntity = answer.entity;
@@ -236,10 +276,10 @@ async function deployVersionedPrimitive(deployConfig, config, apiKey, agentId, o
236
276
  selectedVersion = sortedVersions[0].version;
237
277
  }
238
278
  else {
239
- const exists = sortedVersions.some(v => v.version === options.version);
279
+ const exists = sortedVersions.some((v) => v.version === options.version);
240
280
  if (!exists) {
241
281
  console.log('\nAvailable versions:');
242
- sortedVersions.slice(0, 5).forEach(v => console.log(` - ${v.version}`));
282
+ sortedVersions.slice(0, 5).forEach((v) => console.log(` - ${v.version}`));
243
283
  if (sortedVersions.length > 5)
244
284
  console.log(` ... and ${sortedVersions.length - 5} more`);
245
285
  throw new Error(`Version "${options.version}" not found.`);
@@ -263,14 +303,30 @@ async function deployVersionedPrimitive(deployConfig, config, apiKey, agentId, o
263
303
  writeProgress('šŸ”„ Publishing version...');
264
304
  const result = await deployConfig.handler.publishVersion(apiKey, agentId, entityId, selectedVersion);
265
305
  if (!result.success) {
306
+ // Publish is a management operation — no execution logs exist for a failed publish.
307
+ // The error reason is already on screen.
266
308
  throw new Error(`Failed to deploy: ${result.error || 'Unknown error'}`);
267
309
  }
268
310
  writeSuccess(`āœ… ${deployConfig.label} "${selectedEntity.name}" v${selectedVersion} deployed successfully`);
269
- // Update YAML with the deployed version
311
+ // B11: consolidate YAML update to a single location (applies to all types including job).
270
312
  if (selectedVersion !== selectedEntity.version) {
271
313
  writeInfo(`šŸ“ Updating YAML with deployed version: ${selectedVersion}`);
272
314
  deployConfig.handler.updateVersionInYaml(selectedEntity.name, selectedVersion);
273
315
  }
316
+ // B6: job prints its own hint block; set hintPrinted so the outer deployCommand
317
+ // skips the generic "Version is live" block (avoiding duplicate hints).
318
+ if (deployConfig.type === 'job') {
319
+ writeHintBlock({
320
+ headline: 'Job is live. Trigger or wait for schedule, then inspect logs:',
321
+ lines: [
322
+ { label: 'Manual trigger:', command: `lua jobs trigger --job-name ${selectedEntity.name}` },
323
+ { label: 'Inspect:', command: buildLogsCommand({ primitiveType: 'job', name: selectedEntity.name }) },
324
+ ],
325
+ when: 'success',
326
+ });
327
+ return { deployed: true, hintPrinted: true, entityName: selectedEntity.name };
328
+ }
329
+ return { deployed: true, hintPrinted: false, entityName: selectedEntity.name };
274
330
  }
275
331
  /**
276
332
  * Deploy a persona version. Persona uses integer version IDs (not semver).
@@ -296,25 +352,27 @@ async function deployPersonaVersion(apiKey, agentId, options) {
296
352
  if (isNaN(v)) {
297
353
  throw new Error(`Invalid persona version: "${options.version}". Must be a number or 'latest'.`);
298
354
  }
299
- if (!sortedVersions.some(pv => pv.version === v)) {
355
+ if (!sortedVersions.some((pv) => pv.version === v)) {
300
356
  throw new Error(`Persona version ${v} not found.`);
301
357
  }
302
358
  selectedVersion = v;
303
359
  }
304
360
  }
305
361
  else {
306
- const answer = await safePrompt([{
362
+ const answer = await safePrompt([
363
+ {
307
364
  type: 'list',
308
365
  name: 'version',
309
366
  message: 'Select a persona version to deploy:',
310
- choices: sortedVersions.map(v => ({
367
+ choices: sortedVersions.map((v) => ({
311
368
  name: `v${v.version}${v.isCurrent ? ' (CURRENT)' : ''} — ${new Date(v.createdDate).toLocaleDateString()}`,
312
369
  value: v.version,
313
370
  })),
314
- }]);
371
+ },
372
+ ]);
315
373
  if (!answer) {
316
374
  console.log('Deployment cancelled.');
317
- return;
375
+ return false;
318
376
  }
319
377
  clearPromptLines(2);
320
378
  selectedVersion = answer.version;
@@ -330,9 +388,11 @@ async function deployPersonaVersion(apiKey, agentId, options) {
330
388
  writeProgress('šŸ”„ Deploying persona...');
331
389
  const deployResult = await personaApi.deployVersion(selectedVersion);
332
390
  if (!deployResult.success) {
391
+ // Persona deploy is a management operation — no execution logs exist.
333
392
  throw new Error(`Failed to deploy persona: ${deployResult.error?.message || 'Unknown error'}`);
334
393
  }
335
394
  writeSuccess(`āœ… Persona v${selectedVersion} deployed successfully`);
395
+ return true;
336
396
  }
337
397
  /**
338
398
  * Deploy latest version of every primitive — mirrors `lua push all --force --auto-deploy`.
@@ -344,6 +404,7 @@ async function deployAllCommand(_options) {
344
404
  const agentId = config.agent.agentId;
345
405
  let deployedCount = 0;
346
406
  let failedCount = 0;
407
+ const failedItems = [];
347
408
  console.log('\nšŸš€ Deploying latest versions of all primitives...\n');
348
409
  // Deploy all versioned primitives
349
410
  for (const deployConfig of VERSIONED_DEPLOY_TYPES) {
@@ -371,11 +432,13 @@ async function deployAllCommand(_options) {
371
432
  }
372
433
  else {
373
434
  console.warn(` āš ļø Failed to deploy ${deployConfig.label} "${entity.name}": ${result.error}`);
435
+ failedItems.push({ kind: deployConfig.type, name: entity.name, error: result.error || 'Unknown error' });
374
436
  failedCount++;
375
437
  }
376
438
  }
377
439
  catch (e) {
378
440
  console.warn(` āš ļø Error deploying ${deployConfig.label} "${entity.name}": ${e.message}`);
441
+ failedItems.push({ kind: deployConfig.type, name: entity.name, error: e.message });
379
442
  failedCount++;
380
443
  }
381
444
  }
@@ -392,29 +455,63 @@ async function deployAllCommand(_options) {
392
455
  }
393
456
  else {
394
457
  console.warn(' āš ļø Failed to deploy persona');
458
+ failedItems.push({
459
+ kind: 'persona',
460
+ name: 'persona',
461
+ error: deployResult.error?.message || 'Unknown error',
462
+ });
395
463
  failedCount++;
396
464
  }
397
465
  }
398
466
  }
399
467
  catch (e) {
400
468
  console.warn(` āš ļø Error deploying persona: ${e.message}`);
469
+ failedItems.push({ kind: 'persona', name: 'persona', error: e.message });
401
470
  failedCount++;
402
471
  }
403
472
  console.log();
404
473
  if (deployedCount > 0) {
405
474
  writeSuccess(`āœ… Deployed ${deployedCount} primitive${deployedCount !== 1 ? 's' : ''} successfully`);
406
475
  }
407
- if (failedCount > 0) {
408
- console.warn(`āš ļø ${failedCount} deployment${failedCount !== 1 ? 's' : ''} failed`);
409
- }
410
476
  if (deployedCount === 0 && failedCount === 0) {
411
477
  writeInfo('ā„¹ļø No primitives found to deploy.');
412
478
  }
479
+ // Aggregate failure block. Deploy failures are management-plane — no execution logs
480
+ // exist for them. Suggest retrying rather than checking logs.
481
+ if (failedItems.length > 0) {
482
+ console.warn(`\nāš ļø ${failedItems.length} deployment${failedItems.length !== 1 ? 's' : ''} failed:`);
483
+ for (const item of failedItems) {
484
+ console.warn(` ${item.kind} "${item.name}": ${item.error}`);
485
+ }
486
+ writeTip('Re-deploy failed items with: lua deploy all --force');
487
+ }
413
488
  trackEvent('cli_deploy_completed', {
414
489
  primitive_type: 'all',
415
490
  force_mode: true,
416
491
  deployed_count: deployedCount,
417
492
  failed_count: failedCount,
418
493
  });
494
+ if (deployedCount > 0 && failedCount === 0) {
495
+ writeHintBlock({
496
+ headline: 'All deployed. Generate traffic first, then inspect:',
497
+ lines: [
498
+ { label: 'Test:', command: 'lua chat -e production -m "your test message"' },
499
+ { label: 'Inspect:', command: buildLogsCommand({ limit: 10 }) },
500
+ ],
501
+ when: 'success',
502
+ });
503
+ }
504
+ else if (deployedCount > 0 && failedCount > 0) {
505
+ // Some succeeded — remind them to test what's live, and retry failures.
506
+ writeHintBlock({
507
+ headline: 'Partial deploy. Test what is live and re-deploy failures:',
508
+ lines: [
509
+ { label: 'Test live:', command: 'lua chat -e production -m "your test message"' },
510
+ { label: 'Re-deploy:', command: 'lua deploy all --force' },
511
+ ],
512
+ when: 'partial',
513
+ });
514
+ }
515
+ // Total failure: no hint — errors already shown above.
419
516
  }
420
517
  //# sourceMappingURL=deploy.js.map