lua-cli 3.2.0-alpha.2 → 3.3.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 (328) hide show
  1. package/dist/api/agent.api.service.js +1 -0
  2. package/dist/api/agent.api.service.js.map +1 -0
  3. package/dist/api/auth.api.service.js +1 -0
  4. package/dist/api/auth.api.service.js.map +1 -0
  5. package/dist/api/basket.api.service.js +1 -0
  6. package/dist/api/basket.api.service.js.map +1 -0
  7. package/dist/api/cdn.api.service.js +1 -0
  8. package/dist/api/cdn.api.service.js.map +1 -0
  9. package/dist/api/chat.api.service.js +1 -0
  10. package/dist/api/chat.api.service.js.map +1 -0
  11. package/dist/api/credentials.js +1 -0
  12. package/dist/api/credentials.js.map +1 -0
  13. package/dist/api/custom.data.api.service.js +1 -0
  14. package/dist/api/custom.data.api.service.js.map +1 -0
  15. package/dist/api/developer.api.service.js +1 -0
  16. package/dist/api/developer.api.service.js.map +1 -0
  17. package/dist/api/job.api.service.js +1 -0
  18. package/dist/api/job.api.service.js.map +1 -0
  19. package/dist/api/lazy-instances.js +1 -0
  20. package/dist/api/lazy-instances.js.map +1 -0
  21. package/dist/api/logs.api.service.d.ts +1 -1
  22. package/dist/api/logs.api.service.js +1 -0
  23. package/dist/api/logs.api.service.js.map +1 -0
  24. package/dist/api/marketplace.api.service.js +1 -0
  25. package/dist/api/marketplace.api.service.js.map +1 -0
  26. package/dist/api/order.api.service.js +1 -0
  27. package/dist/api/order.api.service.js.map +1 -0
  28. package/dist/api/persona.api.service.js +1 -0
  29. package/dist/api/persona.api.service.js.map +1 -0
  30. package/dist/api/postprocessor.api.service.js +1 -0
  31. package/dist/api/postprocessor.api.service.js.map +1 -0
  32. package/dist/api/preprocessor.api.service.js +1 -0
  33. package/dist/api/preprocessor.api.service.js.map +1 -0
  34. package/dist/api/products.api.service.d.ts +17 -5
  35. package/dist/api/products.api.service.js +22 -9
  36. package/dist/api/products.api.service.js.map +1 -0
  37. package/dist/api/skills.api.service.js +1 -0
  38. package/dist/api/skills.api.service.js.map +1 -0
  39. package/dist/api/tool.api.service.js +1 -0
  40. package/dist/api/tool.api.service.js.map +1 -0
  41. package/dist/api/user.data.api.service.js +1 -0
  42. package/dist/api/user.data.api.service.js.map +1 -0
  43. package/dist/api/webhook.api.service.js +1 -0
  44. package/dist/api/webhook.api.service.js.map +1 -0
  45. package/dist/api/whatsapp-templates.api.service.js +1 -0
  46. package/dist/api/whatsapp-templates.api.service.js.map +1 -0
  47. package/dist/api-exports.d.ts +23 -6
  48. package/dist/api-exports.js +27 -5
  49. package/dist/api-exports.js.map +1 -0
  50. package/dist/cli/command-definitions.js +321 -88
  51. package/dist/cli/command-definitions.js.map +1 -0
  52. package/dist/commands/admin.js +1 -0
  53. package/dist/commands/admin.js.map +1 -0
  54. package/dist/commands/agents.js +1 -0
  55. package/dist/commands/agents.js.map +1 -0
  56. package/dist/commands/apiKey.d.ts +5 -2
  57. package/dist/commands/apiKey.js +9 -2
  58. package/dist/commands/apiKey.js.map +1 -0
  59. package/dist/commands/channels.d.ts +4 -9
  60. package/dist/commands/channels.js +141 -84
  61. package/dist/commands/channels.js.map +1 -0
  62. package/dist/commands/chat.d.ts +4 -2
  63. package/dist/commands/chat.js +127 -32
  64. package/dist/commands/chat.js.map +1 -0
  65. package/dist/commands/chatClear.d.ts +3 -2
  66. package/dist/commands/chatClear.js +17 -15
  67. package/dist/commands/chatClear.js.map +1 -0
  68. package/dist/commands/compile.js +68 -4
  69. package/dist/commands/compile.js.map +1 -0
  70. package/dist/commands/completion.js +1 -0
  71. package/dist/commands/completion.js.map +1 -0
  72. package/dist/commands/configure.js +1 -0
  73. package/dist/commands/configure.js.map +1 -0
  74. package/dist/commands/deploy.d.ts +5 -24
  75. package/dist/commands/deploy.js +76 -48
  76. package/dist/commands/deploy.js.map +1 -0
  77. package/dist/commands/destroy.d.ts +5 -2
  78. package/dist/commands/destroy.js +15 -2
  79. package/dist/commands/destroy.js.map +1 -0
  80. package/dist/commands/dev.js +1 -0
  81. package/dist/commands/dev.js.map +1 -0
  82. package/dist/commands/docs.js +1 -0
  83. package/dist/commands/docs.js.map +1 -0
  84. package/dist/commands/env.d.ts +3 -1
  85. package/dist/commands/env.js +323 -122
  86. package/dist/commands/env.js.map +1 -0
  87. package/dist/commands/evals.js +1 -0
  88. package/dist/commands/evals.js.map +1 -0
  89. package/dist/commands/features.d.ts +5 -9
  90. package/dist/commands/features.js +250 -129
  91. package/dist/commands/features.js.map +1 -0
  92. package/dist/commands/index.js +1 -0
  93. package/dist/commands/index.js.map +1 -0
  94. package/dist/commands/init.d.ts +7 -1
  95. package/dist/commands/init.js +252 -65
  96. package/dist/commands/init.js.map +1 -0
  97. package/dist/commands/jobs.d.ts +5 -13
  98. package/dist/commands/jobs.js +450 -364
  99. package/dist/commands/jobs.js.map +1 -0
  100. package/dist/commands/logs.d.ts +5 -10
  101. package/dist/commands/logs.js +260 -103
  102. package/dist/commands/logs.js.map +1 -0
  103. package/dist/commands/marketplace.d.ts +23 -2
  104. package/dist/commands/marketplace.js +531 -7
  105. package/dist/commands/marketplace.js.map +1 -0
  106. package/dist/commands/mcp.d.ts +5 -11
  107. package/dist/commands/mcp.js +304 -288
  108. package/dist/commands/mcp.js.map +1 -0
  109. package/dist/commands/persona.d.ts +5 -9
  110. package/dist/commands/persona.js +350 -232
  111. package/dist/commands/persona.js.map +1 -0
  112. package/dist/commands/postprocessors.d.ts +6 -2
  113. package/dist/commands/postprocessors.js +388 -280
  114. package/dist/commands/postprocessors.js.map +1 -0
  115. package/dist/commands/preprocessors.d.ts +6 -2
  116. package/dist/commands/preprocessors.js +388 -280
  117. package/dist/commands/preprocessors.js.map +1 -0
  118. package/dist/commands/production.d.ts +5 -8
  119. package/dist/commands/production.js +318 -228
  120. package/dist/commands/production.js.map +1 -0
  121. package/dist/commands/push.js +386 -427
  122. package/dist/commands/push.js.map +1 -0
  123. package/dist/commands/resources.d.ts +5 -10
  124. package/dist/commands/resources.js +220 -154
  125. package/dist/commands/resources.js.map +1 -0
  126. package/dist/commands/skills.d.ts +5 -9
  127. package/dist/commands/skills.js +355 -278
  128. package/dist/commands/skills.js.map +1 -0
  129. package/dist/commands/sync.d.ts +10 -8
  130. package/dist/commands/sync.js +111 -19
  131. package/dist/commands/sync.js.map +1 -0
  132. package/dist/commands/test.d.ts +1 -11
  133. package/dist/commands/test.js +396 -438
  134. package/dist/commands/test.js.map +1 -0
  135. package/dist/commands/webhooks.d.ts +5 -11
  136. package/dist/commands/webhooks.js +357 -290
  137. package/dist/commands/webhooks.js.map +1 -0
  138. package/dist/common/basket.instance.js +1 -0
  139. package/dist/common/basket.instance.js.map +1 -0
  140. package/dist/common/data.entry.instance.js +1 -0
  141. package/dist/common/data.entry.instance.js.map +1 -0
  142. package/dist/common/http.client.js +1 -0
  143. package/dist/common/http.client.js.map +1 -0
  144. package/dist/common/job.instance.js +1 -0
  145. package/dist/common/job.instance.js.map +1 -0
  146. package/dist/common/order.instance.js +1 -0
  147. package/dist/common/order.instance.js.map +1 -0
  148. package/dist/common/product.instance.js +1 -0
  149. package/dist/common/product.instance.js.map +1 -0
  150. package/dist/common/product.pagination.instance.js +1 -0
  151. package/dist/common/product.pagination.instance.js.map +1 -0
  152. package/dist/common/product.search.instance.js +1 -0
  153. package/dist/common/product.search.instance.js.map +1 -0
  154. package/dist/common/user.instance.js +1 -0
  155. package/dist/common/user.instance.js.map +1 -0
  156. package/dist/config/auth.constants.js +1 -0
  157. package/dist/config/auth.constants.js.map +1 -0
  158. package/dist/config/compile.constants.js +1 -0
  159. package/dist/config/compile.constants.js.map +1 -0
  160. package/dist/config/constants.js +1 -0
  161. package/dist/config/constants.js.map +1 -0
  162. package/dist/config/dev.constants.js +1 -0
  163. package/dist/config/dev.constants.js.map +1 -0
  164. package/dist/config/init.constants.d.ts +0 -8
  165. package/dist/config/init.constants.js +1 -24
  166. package/dist/config/init.constants.js.map +1 -0
  167. package/dist/errors/auth.error.js +1 -0
  168. package/dist/errors/auth.error.js.map +1 -0
  169. package/dist/errors/index.js +1 -0
  170. package/dist/errors/index.js.map +1 -0
  171. package/dist/index.js +1 -0
  172. package/dist/index.js.map +1 -0
  173. package/dist/interfaces/admin.js +1 -0
  174. package/dist/interfaces/admin.js.map +1 -0
  175. package/dist/interfaces/agent.d.ts +2 -27
  176. package/dist/interfaces/agent.js +1 -0
  177. package/dist/interfaces/agent.js.map +1 -0
  178. package/dist/interfaces/baskets.js +1 -0
  179. package/dist/interfaces/baskets.js.map +1 -0
  180. package/dist/interfaces/cdn.js +1 -0
  181. package/dist/interfaces/cdn.js.map +1 -0
  182. package/dist/interfaces/chat.js +1 -0
  183. package/dist/interfaces/chat.js.map +1 -0
  184. package/dist/interfaces/common.js +1 -0
  185. package/dist/interfaces/common.js.map +1 -0
  186. package/dist/interfaces/compile.js +1 -0
  187. package/dist/interfaces/compile.js.map +1 -0
  188. package/dist/interfaces/custom.data.js +1 -0
  189. package/dist/interfaces/custom.data.js.map +1 -0
  190. package/dist/interfaces/deploy.js +1 -0
  191. package/dist/interfaces/deploy.js.map +1 -0
  192. package/dist/interfaces/dev.js +1 -0
  193. package/dist/interfaces/dev.js.map +1 -0
  194. package/dist/interfaces/index.js +1 -0
  195. package/dist/interfaces/index.js.map +1 -0
  196. package/dist/interfaces/init.d.ts +0 -19
  197. package/dist/interfaces/init.js +1 -0
  198. package/dist/interfaces/init.js.map +1 -0
  199. package/dist/interfaces/jobs.js +1 -0
  200. package/dist/interfaces/jobs.js.map +1 -0
  201. package/dist/interfaces/logs.js +1 -0
  202. package/dist/interfaces/logs.js.map +1 -0
  203. package/dist/interfaces/lua.d.ts +11 -1
  204. package/dist/interfaces/lua.js +1 -0
  205. package/dist/interfaces/lua.js.map +1 -0
  206. package/dist/interfaces/marketplace.js +1 -0
  207. package/dist/interfaces/marketplace.js.map +1 -0
  208. package/dist/interfaces/mcp.d.ts +28 -1
  209. package/dist/interfaces/mcp.js +1 -0
  210. package/dist/interfaces/mcp.js.map +1 -0
  211. package/dist/interfaces/message.js +1 -0
  212. package/dist/interfaces/message.js.map +1 -0
  213. package/dist/interfaces/orders.js +1 -0
  214. package/dist/interfaces/orders.js.map +1 -0
  215. package/dist/interfaces/persona.js +1 -0
  216. package/dist/interfaces/persona.js.map +1 -0
  217. package/dist/interfaces/postprocessors.js +1 -0
  218. package/dist/interfaces/postprocessors.js.map +1 -0
  219. package/dist/interfaces/preprocessors.js +1 -0
  220. package/dist/interfaces/preprocessors.js.map +1 -0
  221. package/dist/interfaces/product.d.ts +26 -0
  222. package/dist/interfaces/product.js +1 -0
  223. package/dist/interfaces/product.js.map +1 -0
  224. package/dist/interfaces/push.js +1 -0
  225. package/dist/interfaces/push.js.map +1 -0
  226. package/dist/interfaces/skills.js +1 -0
  227. package/dist/interfaces/skills.js.map +1 -0
  228. package/dist/interfaces/test.js +1 -0
  229. package/dist/interfaces/test.js.map +1 -0
  230. package/dist/interfaces/user.js +1 -0
  231. package/dist/interfaces/user.js.map +1 -0
  232. package/dist/interfaces/webhooks.js +1 -0
  233. package/dist/interfaces/webhooks.js.map +1 -0
  234. package/dist/interfaces/whatsapp-templates.js +1 -0
  235. package/dist/interfaces/whatsapp-templates.js.map +1 -0
  236. package/dist/services/auth.js +1 -0
  237. package/dist/services/auth.js.map +1 -0
  238. package/dist/types/api-contracts.d.ts +8 -4
  239. package/dist/types/api-contracts.js +1 -0
  240. package/dist/types/api-contracts.js.map +1 -0
  241. package/dist/types/compile.types.js +1 -0
  242. package/dist/types/compile.types.js.map +1 -0
  243. package/dist/types/index.d.ts +3 -3
  244. package/dist/types/index.js +1 -0
  245. package/dist/types/index.js.map +1 -0
  246. package/dist/types/skill.d.ts +92 -17
  247. package/dist/types/skill.js +16 -11
  248. package/dist/types/skill.js.map +1 -0
  249. package/dist/types/tool-validation.js +1 -0
  250. package/dist/types/tool-validation.js.map +1 -0
  251. package/dist/utils/agent-code-utils.d.ts +2 -1
  252. package/dist/utils/agent-code-utils.js +14 -3
  253. package/dist/utils/agent-code-utils.js.map +1 -0
  254. package/dist/utils/auth-flows.js +1 -0
  255. package/dist/utils/auth-flows.js.map +1 -0
  256. package/dist/utils/bundling.d.ts +17 -0
  257. package/dist/utils/bundling.js +146 -12
  258. package/dist/utils/bundling.js.map +1 -0
  259. package/dist/utils/cli.js +1 -0
  260. package/dist/utils/cli.js.map +1 -0
  261. package/dist/utils/compile.d.ts +5 -0
  262. package/dist/utils/compile.js +154 -15
  263. package/dist/utils/compile.js.map +1 -0
  264. package/dist/utils/deploy-api.js +1 -0
  265. package/dist/utils/deploy-api.js.map +1 -0
  266. package/dist/utils/deploy-helpers.js +1 -0
  267. package/dist/utils/deploy-helpers.js.map +1 -0
  268. package/dist/utils/deployment.js +1 -0
  269. package/dist/utils/deployment.js.map +1 -0
  270. package/dist/utils/dev-api.js +1 -0
  271. package/dist/utils/dev-api.js.map +1 -0
  272. package/dist/utils/dev-helpers.d.ts +3 -2
  273. package/dist/utils/dev-helpers.js +4 -5
  274. package/dist/utils/dev-helpers.js.map +1 -0
  275. package/dist/utils/dev-server.js +1 -0
  276. package/dist/utils/dev-server.js.map +1 -0
  277. package/dist/utils/dev-watcher.js +1 -0
  278. package/dist/utils/dev-watcher.js.map +1 -0
  279. package/dist/utils/env-loader.utils.js +1 -0
  280. package/dist/utils/env-loader.utils.js.map +1 -0
  281. package/dist/utils/files.js +1 -0
  282. package/dist/utils/files.js.map +1 -0
  283. package/dist/utils/init-agent.d.ts +4 -4
  284. package/dist/utils/init-agent.js +12 -14
  285. package/dist/utils/init-agent.js.map +1 -0
  286. package/dist/utils/init-helpers.js +1 -0
  287. package/dist/utils/init-helpers.js.map +1 -0
  288. package/dist/utils/init-prompts.d.ts +10 -6
  289. package/dist/utils/init-prompts.js +41 -75
  290. package/dist/utils/init-prompts.js.map +1 -0
  291. package/dist/utils/job-management.js +1 -0
  292. package/dist/utils/job-management.js.map +1 -0
  293. package/dist/utils/mcp-server-management.d.ts +1 -1
  294. package/dist/utils/mcp-server-management.js +14 -14
  295. package/dist/utils/mcp-server-management.js.map +1 -0
  296. package/dist/utils/postprocessor-management.js +1 -0
  297. package/dist/utils/postprocessor-management.js.map +1 -0
  298. package/dist/utils/pre-bundle-jobs.js +1 -0
  299. package/dist/utils/pre-bundle-jobs.js.map +1 -0
  300. package/dist/utils/preprocessor-management.js +1 -0
  301. package/dist/utils/preprocessor-management.js.map +1 -0
  302. package/dist/utils/prompt-handler.js +1 -0
  303. package/dist/utils/prompt-handler.js.map +1 -0
  304. package/dist/utils/push-api.js +1 -0
  305. package/dist/utils/push-api.js.map +1 -0
  306. package/dist/utils/push-helpers.js +1 -0
  307. package/dist/utils/push-helpers.js.map +1 -0
  308. package/dist/utils/sandbox-storage.js +1 -0
  309. package/dist/utils/sandbox-storage.js.map +1 -0
  310. package/dist/utils/sandbox.d.ts +1 -0
  311. package/dist/utils/sandbox.js +2 -0
  312. package/dist/utils/sandbox.js.map +1 -0
  313. package/dist/utils/semver.js +1 -0
  314. package/dist/utils/semver.js.map +1 -0
  315. package/dist/utils/skill-management.js +1 -0
  316. package/dist/utils/skill-management.js.map +1 -0
  317. package/dist/utils/sync-helpers.js +23 -4
  318. package/dist/utils/sync-helpers.js.map +1 -0
  319. package/dist/utils/test-helpers.js +1 -0
  320. package/dist/utils/test-helpers.js.map +1 -0
  321. package/dist/utils/test-prompts.js +1 -0
  322. package/dist/utils/test-prompts.js.map +1 -0
  323. package/dist/utils/tool-detection.js +1 -0
  324. package/dist/utils/tool-detection.js.map +1 -0
  325. package/dist/utils/webhook-management.js +1 -0
  326. package/dist/utils/webhook-management.js.map +1 -0
  327. package/package.json +2 -1
  328. package/template/package.json +1 -1
@@ -7,11 +7,115 @@ import path from 'path';
7
7
  import inquirer from 'inquirer';
8
8
  import { loadApiKey, checkApiKey } from '../services/auth.js';
9
9
  import { readSkillConfig } from '../utils/files.js';
10
- import { withErrorHandling, writeProgress, writeSuccess } from '../utils/cli.js';
10
+ import { withErrorHandling, writeProgress, writeSuccess, writeInfo } from '../utils/cli.js';
11
11
  import { BASE_URLS } from '../config/constants.js';
12
12
  import { validateConfig, validateAgentConfig, } from '../utils/dev-helpers.js';
13
13
  import DeveloperApi from '../api/developer.api.service.js';
14
14
  import { loadEnvironmentVariables } from '../utils/env-loader.utils.js';
15
+ /**
16
+ * Resolves which environment to use based on provided argument and flags
17
+ *
18
+ * Valid resolutions:
19
+ * - resolved: env argument provided and valid (sandbox/staging/production)
20
+ * - prompt: no env argument, no non-interactive flags → show interactive prompt
21
+ *
22
+ * Invalid combinations:
23
+ * - Invalid env value
24
+ * - Non-interactive flags without env specified
25
+ */
26
+ function resolveEnvironment(env, hasNonInteractiveFlags) {
27
+ // Environment argument provided
28
+ if (env) {
29
+ const normalizedEnv = env.toLowerCase();
30
+ if (normalizedEnv === 'sandbox' || normalizedEnv === 'staging') {
31
+ return { type: 'resolved', environment: 'sandbox' };
32
+ }
33
+ if (normalizedEnv === 'production') {
34
+ return { type: 'resolved', environment: 'production' };
35
+ }
36
+ // Invalid environment value
37
+ return {
38
+ type: 'error',
39
+ message: `Invalid environment: "${env}". Must be "sandbox", "staging", or "production".`,
40
+ usage: [
41
+ 'lua env - Interactive selection',
42
+ 'lua env sandbox - Manage sandbox env vars directly',
43
+ 'lua env staging - Manage staging env vars (alias for sandbox)',
44
+ 'lua env production - Manage production env vars directly'
45
+ ]
46
+ };
47
+ }
48
+ // No env argument but has non-interactive flags → must specify environment
49
+ if (hasNonInteractiveFlags) {
50
+ return {
51
+ type: 'error',
52
+ message: 'Environment must be specified when using non-interactive options.',
53
+ usage: [
54
+ 'lua env sandbox --list List sandbox variables',
55
+ 'lua env production -k KEY -v VALUE Set variable',
56
+ 'lua env production -k KEY --delete Delete variable'
57
+ ]
58
+ };
59
+ }
60
+ // No env, no flags → interactive prompt
61
+ return { type: 'prompt' };
62
+ }
63
+ /**
64
+ * Determines which operation mode to use based on provided options
65
+ *
66
+ * Valid modes:
67
+ * - list: --list flag provided
68
+ * - delete: -k KEY --delete
69
+ * - set: -k KEY -v VALUE
70
+ * - interactive: no flags (opens interactive menu)
71
+ *
72
+ * Invalid combinations result in error mode with helpful message
73
+ */
74
+ function determineEnvMode(options) {
75
+ const { key, value, deleteFlag, listFlag } = options;
76
+ const hasKey = !!key;
77
+ const hasValue = value !== null;
78
+ // --list: list all variables
79
+ if (listFlag) {
80
+ return { type: 'list' };
81
+ }
82
+ // -k KEY --delete: delete a variable
83
+ if (hasKey && deleteFlag) {
84
+ return { type: 'delete' };
85
+ }
86
+ // -k KEY -v VALUE: set/update a variable
87
+ if (hasKey && hasValue) {
88
+ return { type: 'set' };
89
+ }
90
+ // Error: -k KEY without -v or --delete
91
+ if (hasKey && !hasValue && !deleteFlag) {
92
+ return {
93
+ type: 'error',
94
+ message: 'Invalid usage: -k requires either -v VALUE to set or --delete to remove',
95
+ examples: [
96
+ 'lua env production -k MY_VAR -v "value" # Set variable',
97
+ 'lua env production -k MY_VAR --delete # Delete variable'
98
+ ]
99
+ };
100
+ }
101
+ // Error: --delete without -k KEY
102
+ if (deleteFlag && !hasKey) {
103
+ return {
104
+ type: 'error',
105
+ message: 'Delete operation requires -k KEY with --delete flag'
106
+ };
107
+ }
108
+ // Error: -v VALUE without -k KEY
109
+ if (hasValue && !hasKey) {
110
+ return {
111
+ type: 'error',
112
+ message: 'Invalid usage: -v requires -k KEY to specify which variable to set',
113
+ examples: ['lua env production -k MY_VAR -v "value" # Set variable']
114
+ };
115
+ }
116
+ // No flags: interactive mode
117
+ return { type: 'interactive' };
118
+ }
15
119
  /**
16
120
  * Main env command - manages environment variables
17
121
  *
@@ -23,52 +127,53 @@ import { loadEnvironmentVariables } from '../utils/env-loader.utils.js';
23
127
  * - Delete variables
24
128
  * - Sandbox: manages .env file
25
129
  * - Production: uses API endpoints
130
+ * - Non-interactive mode: direct operations with --key, --value, --delete, --list
26
131
  *
27
132
  * @param env - Optional environment argument ('sandbox', 'staging', or 'production')
133
+ * @param cmdObj - Commander command object with options
28
134
  * @returns Promise that resolves when command completes
29
135
  */
30
- export async function envCommand(env) {
136
+ export async function envCommand(env, cmdObj) {
31
137
  return withErrorHandling(async () => {
138
+ // Extract options
139
+ const key = cmdObj?.key || null;
140
+ const value = cmdObj?.value ?? null;
141
+ const deleteFlag = cmdObj?.delete || false;
142
+ const listFlag = cmdObj?.list || false;
32
143
  // Step 1: Load configuration
33
144
  const config = readSkillConfig();
34
145
  validateConfig(config);
35
146
  validateAgentConfig(config);
36
147
  const agentId = config.agent.agentId;
37
148
  let selectedEnvironment;
38
- // Step 2: Check if environment was provided as argument
39
- if (env) {
40
- // Normalize the environment (staging is an alias for sandbox)
41
- const normalizedEnv = env.toLowerCase();
42
- if (normalizedEnv === 'sandbox' || normalizedEnv === 'staging') {
43
- selectedEnvironment = 'sandbox';
44
- }
45
- else if (normalizedEnv === 'production') {
46
- selectedEnvironment = 'production';
47
- }
48
- else {
49
- console.error(`❌ Invalid environment: "${env}". Must be "sandbox", "staging", or "production".`);
50
- console.log('\nUsage:');
51
- console.log(' lua env - Interactive selection');
52
- console.log(' lua env sandbox - Manage sandbox env vars directly');
53
- console.log(' lua env staging - Manage staging env vars (alias for sandbox)');
54
- console.log(' lua env production - Manage production env vars directly');
55
- process.exit(1);
56
- }
57
- }
58
- else {
59
- // Step 3: Prompt for environment selection
60
- const { environment } = await inquirer.prompt([
61
- {
62
- type: 'list',
63
- name: 'environment',
64
- message: 'Select environment:',
65
- choices: [
66
- { name: '🔧 Sandbox (.env file)', value: 'sandbox' },
67
- { name: '🚀 Production (API)', value: 'production' }
68
- ]
149
+ // Step 2: Resolve environment
150
+ const hasNonInteractiveFlags = listFlag || !!key || value !== null || deleteFlag;
151
+ const envResolution = resolveEnvironment(env, hasNonInteractiveFlags);
152
+ switch (envResolution.type) {
153
+ case 'resolved':
154
+ selectedEnvironment = envResolution.environment;
155
+ break;
156
+ case 'prompt':
157
+ const { environment } = await inquirer.prompt([
158
+ {
159
+ type: 'list',
160
+ name: 'environment',
161
+ message: 'Select environment:',
162
+ choices: [
163
+ { name: '🔧 Sandbox (.env file)', value: 'sandbox' },
164
+ { name: '🚀 Production (API)', value: 'production' }
165
+ ]
166
+ }
167
+ ]);
168
+ selectedEnvironment = environment;
169
+ break;
170
+ case 'error':
171
+ console.log(`❌ ${envResolution.message}`);
172
+ if (envResolution.usage) {
173
+ console.log('\nUsage:');
174
+ envResolution.usage.forEach(line => console.log(` ${line}`));
69
175
  }
70
- ]);
71
- selectedEnvironment = environment;
176
+ process.exit(1);
72
177
  }
73
178
  let context = {
74
179
  environment: selectedEnvironment,
@@ -87,35 +192,178 @@ export async function envCommand(env) {
87
192
  context.developerApi = new DeveloperApi(BASE_URLS.API, apiKey, agentId);
88
193
  writeProgress("✅ Authenticated");
89
194
  }
90
- // Step 5: Start management loop
91
- await manageEnvironmentVariables(context);
195
+ // Step 5: Determine operation mode and execute
196
+ const mode = determineEnvMode({ key, value, deleteFlag, listFlag });
197
+ switch (mode.type) {
198
+ case 'list':
199
+ await listVariables(context);
200
+ break;
201
+ case 'delete':
202
+ await removeVariable(context, key);
203
+ break;
204
+ case 'set':
205
+ await setVariable(context, key, value);
206
+ break;
207
+ case 'interactive':
208
+ await manageEnvironmentVariables(context);
209
+ break;
210
+ case 'error':
211
+ console.log(`❌ ${mode.message}`);
212
+ if (mode.examples) {
213
+ console.log('\nExamples:');
214
+ mode.examples.forEach(ex => console.log(` ${ex}`));
215
+ }
216
+ process.exit(1);
217
+ }
92
218
  }, "env");
93
219
  }
220
+ // ============================================================================
221
+ // Core Operations (shared by interactive and non-interactive modes)
222
+ // ============================================================================
223
+ /**
224
+ * Masks a value for display (shows first 4 chars, rest as asterisks)
225
+ */
226
+ function maskValue(value) {
227
+ return value.length > 4
228
+ ? value.substring(0, 4) + '*'.repeat(Math.min(value.length - 4, 20))
229
+ : '*'.repeat(value.length);
230
+ }
231
+ /**
232
+ * Validates a variable key format
233
+ * @returns Error message if invalid, null if valid
234
+ */
235
+ function validateKeyFormat(key) {
236
+ if (!key.trim()) {
237
+ return 'Variable name cannot be empty';
238
+ }
239
+ if (!/^[A-Z_][A-Z0-9_]*$/i.test(key.trim())) {
240
+ return 'Variable name must start with a letter or underscore and contain only letters, numbers, and underscores';
241
+ }
242
+ return null;
243
+ }
244
+ /**
245
+ * Displays environment variables with masked values
246
+ */
247
+ function displayVariables(variables, context, numbered = false) {
248
+ console.log(`\n🌙 Environment Variables (${context.environment === 'sandbox' ? 'Sandbox' : 'Production'})\n`);
249
+ if (variables.length === 0) {
250
+ console.log("ℹ️ No environment variables configured.\n");
251
+ }
252
+ else {
253
+ variables.forEach((v, index) => {
254
+ const prefix = numbered ? `${index + 1}. ` : '';
255
+ console.log(`${prefix}${v.key} = ${maskValue(v.value)}`);
256
+ });
257
+ console.log();
258
+ }
259
+ }
260
+ /**
261
+ * Core: Save or update a variable (no prompts)
262
+ * @returns true on success, throws on error
263
+ */
264
+ async function saveVariableCore(context, key, value) {
265
+ const variables = await loadEnvironmentVariables(context);
266
+ const trimmedKey = key.trim();
267
+ const existingIndex = variables.findIndex(v => v.key === trimmedKey);
268
+ const created = existingIndex < 0;
269
+ if (created) {
270
+ variables.push({ key: trimmedKey, value });
271
+ }
272
+ else {
273
+ variables[existingIndex].value = value;
274
+ }
275
+ let success = false;
276
+ if (context.environment === 'sandbox') {
277
+ success = saveSandboxEnvVariables(variables);
278
+ }
279
+ else {
280
+ success = await saveProductionEnvVariables(context, variables);
281
+ }
282
+ if (!success) {
283
+ throw new Error(`Failed to save variable "${trimmedKey}"`);
284
+ }
285
+ return { created };
286
+ }
287
+ /**
288
+ * Core: Delete a variable by key (no prompts)
289
+ * @returns true on success, throws on error
290
+ */
291
+ async function deleteVariableCore(context, key) {
292
+ const variables = await loadEnvironmentVariables(context);
293
+ const trimmedKey = key.trim();
294
+ const indexToDelete = variables.findIndex(v => v.key === trimmedKey);
295
+ if (indexToDelete < 0) {
296
+ throw new Error(`Variable "${trimmedKey}" not found`);
297
+ }
298
+ if (context.environment === 'sandbox') {
299
+ variables.splice(indexToDelete, 1);
300
+ const success = saveSandboxEnvVariables(variables);
301
+ if (!success) {
302
+ throw new Error(`Failed to delete variable "${trimmedKey}"`);
303
+ }
304
+ }
305
+ else {
306
+ if (!context.developerApi) {
307
+ throw new Error('Developer API not initialized');
308
+ }
309
+ const response = await context.developerApi.deleteEnvironmentVariable(trimmedKey);
310
+ if (!response.success) {
311
+ throw new Error(response.error?.message || 'Failed to delete environment variable');
312
+ }
313
+ }
314
+ }
315
+ // ============================================================================
316
+ // Non-Interactive Mode Functions
317
+ // ============================================================================
318
+ /**
319
+ * List all environment variables (non-interactive mode)
320
+ */
321
+ async function listVariables(context) {
322
+ const variables = await loadEnvironmentVariables(context);
323
+ displayVariables(variables, context);
324
+ }
325
+ /**
326
+ * Set an environment variable (non-interactive mode)
327
+ */
328
+ async function setVariable(context, key, value) {
329
+ const validationError = validateKeyFormat(key);
330
+ if (validationError) {
331
+ console.log(`❌ ${validationError}`);
332
+ process.exit(1);
333
+ }
334
+ try {
335
+ const { created } = await saveVariableCore(context, key, value);
336
+ writeInfo(`${created ? 'Created' : 'Updated'} ${key.trim()}`);
337
+ writeSuccess(`✅ Successfully set ${key.trim()}`);
338
+ }
339
+ catch (error) {
340
+ console.log(`❌ Error setting variable: ${error instanceof Error ? error.message : 'Unknown error'}`);
341
+ process.exit(1);
342
+ }
343
+ }
344
+ /**
345
+ * Remove an environment variable (non-interactive mode)
346
+ */
347
+ async function removeVariable(context, key) {
348
+ try {
349
+ await deleteVariableCore(context, key);
350
+ writeSuccess(`✅ Successfully deleted ${key.trim()}`);
351
+ }
352
+ catch (error) {
353
+ console.log(`❌ ${error instanceof Error ? error.message : 'Unknown error'}`);
354
+ process.exit(1);
355
+ }
356
+ }
94
357
  /**
95
358
  * Main management loop for environment variables
96
359
  */
97
360
  async function manageEnvironmentVariables(context) {
98
361
  let continueManaging = true;
99
362
  while (continueManaging) {
100
- // Load current variables
363
+ // Load and display current variables
101
364
  const variables = await loadEnvironmentVariables(context);
102
- // Show current state
103
365
  console.log("\n" + "=".repeat(60));
104
- console.log(`🌙 Environment Variables (${context.environment === 'sandbox' ? 'Sandbox' : 'Production'})`);
105
- console.log("=".repeat(60) + "\n");
106
- if (variables.length === 0) {
107
- console.log("ℹ️ No environment variables configured.\n");
108
- }
109
- else {
110
- variables.forEach((v, index) => {
111
- // Mask values partially for security
112
- const maskedValue = v.value.length > 4
113
- ? v.value.substring(0, 4) + '*'.repeat(Math.min(v.value.length - 4, 20))
114
- : '*'.repeat(v.value.length);
115
- console.log(`${index + 1}. ${v.key} = ${maskedValue}`);
116
- });
117
- console.log();
118
- }
366
+ displayVariables(variables, context, true);
119
367
  // Show menu
120
368
  const { action } = await inquirer.prompt([
121
369
  {
@@ -204,7 +452,7 @@ async function saveProductionEnvVariables(context, variables) {
204
452
  }
205
453
  }
206
454
  /**
207
- * Add a new environment variable
455
+ * Add a new environment variable (interactive)
208
456
  */
209
457
  async function addVariable(context, currentVariables) {
210
458
  const answers = await inquirer.prompt([
@@ -213,11 +461,9 @@ async function addVariable(context, currentVariables) {
213
461
  name: 'key',
214
462
  message: 'Variable name:',
215
463
  validate: (input) => {
216
- if (!input.trim())
217
- return 'Variable name is required';
218
- if (!/^[A-Z_][A-Z0-9_]*$/i.test(input.trim())) {
219
- return 'Variable name must start with a letter or underscore and contain only letters, numbers, and underscores';
220
- }
464
+ const error = validateKeyFormat(input);
465
+ if (error)
466
+ return error;
221
467
  if (currentVariables.some(v => v.key === input.trim())) {
222
468
  return 'Variable already exists. Use update to modify it.';
223
469
  }
@@ -227,36 +473,20 @@ async function addVariable(context, currentVariables) {
227
473
  {
228
474
  type: 'input',
229
475
  name: 'value',
230
- message: 'Variable value:',
231
- validate: (input) => {
232
- if (input === '')
233
- return true; // Allow empty values
234
- return true;
235
- }
476
+ message: 'Variable value:'
236
477
  }
237
478
  ]);
238
- const newVariable = {
239
- key: answers.key.trim(),
240
- value: answers.value
241
- };
242
- const updatedVariables = [...currentVariables, newVariable];
243
479
  writeProgress("🔄 Saving...");
244
- let success = false;
245
- if (context.environment === 'sandbox') {
246
- success = saveSandboxEnvVariables(updatedVariables);
247
- }
248
- else {
249
- success = await saveProductionEnvVariables(context, updatedVariables);
250
- }
251
- if (success) {
252
- writeSuccess(`✅ Variable "${newVariable.key}" added successfully`);
480
+ try {
481
+ await saveVariableCore(context, answers.key, answers.value);
482
+ writeSuccess(`✅ Variable "${answers.key.trim()}" added successfully`);
253
483
  }
254
- else {
255
- console.error("❌ Failed to save variable");
484
+ catch (error) {
485
+ console.log(`❌ Failed to save variable: ${error instanceof Error ? error.message : 'Unknown error'}`);
256
486
  }
257
487
  }
258
488
  /**
259
- * Update an existing environment variable
489
+ * Update an existing environment variable (interactive)
260
490
  */
261
491
  async function updateVariable(context, currentVariables) {
262
492
  if (currentVariables.length === 0) {
@@ -283,24 +513,17 @@ async function updateVariable(context, currentVariables) {
283
513
  default: currentVariable.value
284
514
  }
285
515
  ]);
286
- const updatedVariables = currentVariables.map(v => v.key === selectedKey ? { ...v, value: newValue } : v);
287
516
  writeProgress("🔄 Saving...");
288
- let success = false;
289
- if (context.environment === 'sandbox') {
290
- success = saveSandboxEnvVariables(updatedVariables);
291
- }
292
- else {
293
- success = await saveProductionEnvVariables(context, updatedVariables);
294
- }
295
- if (success) {
517
+ try {
518
+ await saveVariableCore(context, selectedKey, newValue);
296
519
  writeSuccess(`✅ Variable "${selectedKey}" updated successfully`);
297
520
  }
298
- else {
299
- console.error("❌ Failed to update variable");
521
+ catch (error) {
522
+ console.log(`❌ Failed to update variable: ${error instanceof Error ? error.message : 'Unknown error'}`);
300
523
  }
301
524
  }
302
525
  /**
303
- * Delete an environment variable
526
+ * Delete an environment variable (interactive)
304
527
  */
305
528
  async function deleteVariable(context, currentVariables) {
306
529
  if (currentVariables.length === 0) {
@@ -331,35 +554,12 @@ async function deleteVariable(context, currentVariables) {
331
554
  return;
332
555
  }
333
556
  writeProgress("🔄 Deleting...");
334
- let success = false;
335
- if (context.environment === 'sandbox') {
336
- const updatedVariables = currentVariables.filter(v => v.key !== selectedKey);
337
- success = saveSandboxEnvVariables(updatedVariables);
338
- }
339
- else {
340
- // Use the dedicated delete API endpoint for production
341
- if (!context.developerApi) {
342
- console.error("❌ Developer API not initialized");
343
- return;
344
- }
345
- try {
346
- const response = await context.developerApi.deleteEnvironmentVariable(selectedKey);
347
- if (response.success) {
348
- success = true;
349
- }
350
- else {
351
- console.error(`❌ ${response.error?.message || 'Failed to delete variable'}`);
352
- }
353
- }
354
- catch (error) {
355
- console.error('❌ Error deleting production env variable:', error);
356
- }
357
- }
358
- if (success) {
557
+ try {
558
+ await deleteVariableCore(context, selectedKey);
359
559
  writeSuccess(`✅ Variable "${selectedKey}" deleted successfully`);
360
560
  }
361
- else {
362
- console.error("❌ Failed to delete variable");
561
+ catch (error) {
562
+ console.log(`❌ ${error instanceof Error ? error.message : 'Failed to delete variable'}`);
363
563
  }
364
564
  }
365
565
  /**
@@ -395,3 +595,4 @@ async function viewVariable(currentVariables) {
395
595
  }
396
596
  ]);
397
597
  }
598
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/commands/env.ts"],"names":[],"mappings":"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"}
@@ -39,3 +39,4 @@ export async function evalsCommand() {
39
39
  console.log(` Agent ID: ${agentId}\n`);
40
40
  }, 'evals');
41
41
  }
42
+ //# sourceMappingURL=evals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evals.js","sourceRoot":"","sources":["../../src/commands/evals.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEjF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,OAAO,iBAAiB,CAAC,KAAK,IAAI,EAAE;QAClC,aAAa,CAAC,sCAAsC,CAAC,CAAC;QAEtD,mCAAmC;QACnC,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC9E,CAAC;QAED,2BAA2B;QAC3B,IAAI,MAAM,CAAC;QACX,IAAI,CAAC;YACH,MAAM,GAAG,eAAe,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,yHAAyH,CAAC,CAAC;QAC7I,CAAC;QAED,8BAA8B;QAC9B,MAAM,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC;QAEvC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;QACpG,CAAC;QAED,oCAAoC;QACpC,MAAM,QAAQ,GAAG,kCAAkC,MAAM,YAAY,OAAO,EAAE,CAAC;QAE/E,sCAAsC;QACtC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;QAErB,YAAY,CAAC,kDAAkD,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,IAAI,CAAC,CAAC;IAC1C,CAAC,EAAE,OAAO,CAAC,CAAC;AACd,CAAC"}
@@ -3,14 +3,10 @@
3
3
  * Manages agent features (tickets, RAG, webSearch, etc.)
4
4
  */
5
5
  /**
6
- * Main features command - manages agent features
6
+ * Main features command - manages agent features.
7
7
  *
8
- * Features:
9
- * - List all available features
10
- * - View feature details (active status and context)
11
- * - Enable/disable features
12
- * - Update feature context
13
- *
14
- * @returns Promise that resolves when command completes
8
+ * Supports both interactive and non-interactive modes:
9
+ * - Interactive: prompts for action and feature selection
10
+ * - Non-interactive: use action argument with -i flag
15
11
  */
16
- export declare function featuresCommand(): Promise<void>;
12
+ export declare function featuresCommand(action?: string, cmdObj?: any): Promise<void>;