lua-cli 3.2.0 → 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 (102) hide show
  1. package/dist/api/logs.api.service.d.ts +1 -1
  2. package/dist/api/logs.api.service.js.map +1 -1
  3. package/dist/api/products.api.service.d.ts +17 -5
  4. package/dist/api/products.api.service.js +21 -9
  5. package/dist/api/products.api.service.js.map +1 -1
  6. package/dist/api-exports.d.ts +17 -5
  7. package/dist/api-exports.js +20 -5
  8. package/dist/api-exports.js.map +1 -1
  9. package/dist/cli/command-definitions.js +320 -88
  10. package/dist/cli/command-definitions.js.map +1 -1
  11. package/dist/commands/apiKey.d.ts +5 -2
  12. package/dist/commands/apiKey.js +8 -2
  13. package/dist/commands/apiKey.js.map +1 -1
  14. package/dist/commands/channels.d.ts +4 -9
  15. package/dist/commands/channels.js +140 -84
  16. package/dist/commands/channels.js.map +1 -1
  17. package/dist/commands/chat.d.ts +4 -2
  18. package/dist/commands/chat.js +126 -32
  19. package/dist/commands/chat.js.map +1 -1
  20. package/dist/commands/chatClear.d.ts +3 -2
  21. package/dist/commands/chatClear.js +16 -15
  22. package/dist/commands/chatClear.js.map +1 -1
  23. package/dist/commands/compile.js +67 -4
  24. package/dist/commands/compile.js.map +1 -1
  25. package/dist/commands/deploy.d.ts +5 -24
  26. package/dist/commands/deploy.js +75 -48
  27. package/dist/commands/deploy.js.map +1 -1
  28. package/dist/commands/destroy.d.ts +5 -2
  29. package/dist/commands/destroy.js +14 -2
  30. package/dist/commands/destroy.js.map +1 -1
  31. package/dist/commands/env.d.ts +3 -1
  32. package/dist/commands/env.js +322 -122
  33. package/dist/commands/env.js.map +1 -1
  34. package/dist/commands/features.d.ts +5 -9
  35. package/dist/commands/features.js +249 -129
  36. package/dist/commands/features.js.map +1 -1
  37. package/dist/commands/init.d.ts +7 -1
  38. package/dist/commands/init.js +242 -59
  39. package/dist/commands/init.js.map +1 -1
  40. package/dist/commands/jobs.d.ts +5 -13
  41. package/dist/commands/jobs.js +449 -364
  42. package/dist/commands/jobs.js.map +1 -1
  43. package/dist/commands/logs.d.ts +5 -10
  44. package/dist/commands/logs.js +259 -103
  45. package/dist/commands/logs.js.map +1 -1
  46. package/dist/commands/marketplace.d.ts +23 -2
  47. package/dist/commands/marketplace.js +530 -7
  48. package/dist/commands/marketplace.js.map +1 -1
  49. package/dist/commands/mcp.d.ts +5 -11
  50. package/dist/commands/mcp.js +303 -288
  51. package/dist/commands/mcp.js.map +1 -1
  52. package/dist/commands/persona.d.ts +5 -9
  53. package/dist/commands/persona.js +349 -232
  54. package/dist/commands/persona.js.map +1 -1
  55. package/dist/commands/postprocessors.d.ts +6 -2
  56. package/dist/commands/postprocessors.js +387 -280
  57. package/dist/commands/postprocessors.js.map +1 -1
  58. package/dist/commands/preprocessors.d.ts +6 -2
  59. package/dist/commands/preprocessors.js +387 -280
  60. package/dist/commands/preprocessors.js.map +1 -1
  61. package/dist/commands/production.d.ts +5 -8
  62. package/dist/commands/production.js +317 -228
  63. package/dist/commands/production.js.map +1 -1
  64. package/dist/commands/push.js +385 -427
  65. package/dist/commands/push.js.map +1 -1
  66. package/dist/commands/resources.d.ts +5 -10
  67. package/dist/commands/resources.js +219 -154
  68. package/dist/commands/resources.js.map +1 -1
  69. package/dist/commands/skills.d.ts +5 -9
  70. package/dist/commands/skills.js +354 -277
  71. package/dist/commands/skills.js.map +1 -1
  72. package/dist/commands/sync.d.ts +10 -8
  73. package/dist/commands/sync.js +110 -19
  74. package/dist/commands/sync.js.map +1 -1
  75. package/dist/commands/test.d.ts +1 -11
  76. package/dist/commands/test.js +395 -438
  77. package/dist/commands/test.js.map +1 -1
  78. package/dist/commands/webhooks.d.ts +5 -11
  79. package/dist/commands/webhooks.js +356 -290
  80. package/dist/commands/webhooks.js.map +1 -1
  81. package/dist/interfaces/mcp.d.ts +28 -1
  82. package/dist/interfaces/product.d.ts +26 -0
  83. package/dist/types/api-contracts.d.ts +8 -4
  84. package/dist/types/index.d.ts +1 -1
  85. package/dist/types/index.js.map +1 -1
  86. package/dist/types/skill.d.ts +92 -17
  87. package/dist/types/skill.js +15 -11
  88. package/dist/types/skill.js.map +1 -1
  89. package/dist/utils/bundling.d.ts +17 -0
  90. package/dist/utils/bundling.js +96 -0
  91. package/dist/utils/bundling.js.map +1 -1
  92. package/dist/utils/compile.d.ts +4 -0
  93. package/dist/utils/compile.js +5 -0
  94. package/dist/utils/compile.js.map +1 -1
  95. package/dist/utils/dev-helpers.d.ts +3 -2
  96. package/dist/utils/dev-helpers.js +3 -5
  97. package/dist/utils/dev-helpers.js.map +1 -1
  98. package/dist/utils/mcp-server-management.d.ts +1 -1
  99. package/dist/utils/mcp-server-management.js +13 -14
  100. package/dist/utils/mcp-server-management.js.map +1 -1
  101. package/package.json +1 -1
  102. package/template/package.json +1 -1
@@ -11,85 +11,112 @@ import { updateSkillVersionInYaml } from '../utils/push-helpers.js';
11
11
  /**
12
12
  * Main deploy command - deploys a skill version to production.
13
13
  *
14
- * This command performs the following steps:
15
- * 1. Validates configuration has required fields
16
- * 2. Prompts user to select a skill (if multiple skills exist)
17
- * 3. Authenticates the user
18
- * 4. Fetches available versions from server for selected skill
19
- * 5. Prompts user to select a version
20
- * 6. Shows warning and requests confirmation
21
- * 7. Publishes selected version to production
22
- *
23
- * Features:
24
- * - Supports multi-skill projects
25
- * - Lists all available versions with metadata
26
- * - Shows which version is currently deployed
27
- * - Sorts versions by date (newest first)
28
- * - Requires explicit confirmation before deployment
29
- * - Safety warning about production deployment
30
- *
31
- * Use this command to:
32
- * - Deploy a tested version to production
33
- * - Make your skill available to all users
34
- * - Roll back to a previous version
35
- *
36
- * ⚠️ WARNING: This deploys to ALL users immediately!
14
+ * Supports both interactive and non-interactive modes:
15
+ * - Interactive: prompts for skill, version, and confirmation
16
+ * - Non-interactive: use --skill-name, --skill-version, --force flags
37
17
  *
18
+ * @param cmdObj - Commander command object with options
38
19
  * @returns Promise that resolves when deployment completes
39
20
  */
40
- export async function deployCommand() {
21
+ export async function deployCommand(cmdObj) {
41
22
  return withErrorHandling(async () => {
23
+ const options = {
24
+ skillName: cmdObj?.skillName || null,
25
+ skillVersion: cmdObj?.skillVersion || null,
26
+ force: cmdObj?.force || false,
27
+ };
42
28
  // Step 1: Validate configuration
43
29
  const config = readSkillConfig();
44
30
  validateDeployConfig(config);
45
- // Step 2: Get available skills and prompt for selection
31
+ // Step 2: Get available skills
46
32
  const availableSkills = getAvailableSkills(config);
47
33
  if (availableSkills.length === 0) {
48
34
  console.error("❌ No skills found in configuration. Please compile your skill first using 'lua compile'.");
49
35
  process.exit(1);
50
36
  }
51
- let selectedSkill;
52
- if (availableSkills.length === 1) {
53
- // Only one skill, use it automatically
54
- selectedSkill = availableSkills[0];
55
- writeInfo(`📦 Deploying skill: ${selectedSkill.name}`);
56
- }
57
- else {
58
- // Multiple skills, prompt for selection
59
- selectedSkill = await promptSkillSelection(availableSkills);
60
- writeInfo(`📦 Selected skill: ${selectedSkill.name}`);
61
- }
62
- // Step 3: Authenticate
37
+ // Step 3: Select skill (non-interactive or interactive)
38
+ const selectedSkill = await selectSkill(availableSkills, options.skillName);
39
+ writeInfo(`📦 Deploying skill: ${selectedSkill.name}`);
40
+ // Step 4: Authenticate
63
41
  const apiKey = await loadApiKey();
64
42
  if (!apiKey) {
65
43
  console.error("❌ No API key found. Please run 'lua auth configure' to set up your API key.");
66
44
  process.exit(1);
67
45
  }
68
- const userData = await checkApiKey(apiKey);
46
+ await checkApiKey(apiKey);
69
47
  writeProgress("✅ Authenticated");
70
- // Step 4: Fetch available versions for the selected skill
48
+ // Step 5: Fetch available versions for the selected skill
71
49
  writeProgress("🔄 Fetching available versions...");
72
50
  const versionsResponse = await fetchVersions(apiKey, config.agent.agentId, selectedSkill.skillId);
73
51
  validateVersionsAvailable(versionsResponse.versions);
74
- // Step 5: Sort and display versions
75
52
  const sortedVersions = sortVersionsByDate(versionsResponse.versions);
76
- const selectedVersion = await promptVersionSelection(sortedVersions);
77
- // Step 6: Confirm deployment
78
- const confirmed = await confirmDeployment();
79
- if (!confirmed) {
80
- console.log("❌ Deployment cancelled.");
81
- process.exit(0);
53
+ // Step 6: Select version (non-interactive or interactive)
54
+ const selectedVersion = await selectVersion(sortedVersions, options.skillVersion);
55
+ writeInfo(`📦 Selected version: ${selectedVersion}`);
56
+ // Step 7: Confirm deployment (skip if --force)
57
+ if (!options.force) {
58
+ const confirmed = await confirmDeployment();
59
+ if (!confirmed) {
60
+ console.log("❌ Deployment cancelled.");
61
+ process.exit(0);
62
+ }
82
63
  }
83
- // Step 7: Publish the selected version
64
+ // Step 8: Publish the selected version
84
65
  writeProgress("🔄 Publishing version...");
85
66
  const publishResponse = await publishVersion(apiKey, config.agent.agentId, selectedSkill.skillId, selectedVersion);
86
67
  const deployedVersion = publishResponse.activeVersionId;
87
68
  writeSuccess(`✅ Version ${deployedVersion} of "${selectedSkill.name}" deployed successfully`);
88
- // Step 8: Update YAML with the deployed version
69
+ // Step 9: Update YAML with the deployed version
89
70
  if (deployedVersion !== selectedSkill.version) {
90
71
  writeInfo(`📝 Updating YAML with deployed version: ${deployedVersion}`);
91
72
  updateSkillVersionInYaml(selectedSkill.name, deployedVersion);
92
73
  }
93
74
  }, "deployment");
94
75
  }
76
+ /**
77
+ * Selects a skill by name (non-interactive) or prompts user (interactive).
78
+ */
79
+ async function selectSkill(availableSkills, skillName) {
80
+ if (skillName) {
81
+ // Non-interactive: find by ID or name
82
+ const skill = availableSkills.find(s => s.skillId === skillName || s.name === skillName);
83
+ if (!skill) {
84
+ console.error(`❌ Skill "${skillName}" not found`);
85
+ console.log('\nAvailable skills:');
86
+ availableSkills.forEach(s => console.log(` - ${s.name} (${s.skillId})`));
87
+ process.exit(1);
88
+ }
89
+ return skill;
90
+ }
91
+ if (availableSkills.length === 1) {
92
+ return availableSkills[0];
93
+ }
94
+ // Interactive: prompt for selection
95
+ return promptSkillSelection(availableSkills);
96
+ }
97
+ /**
98
+ * Selects a version (non-interactive with "latest" support) or prompts user (interactive).
99
+ */
100
+ async function selectVersion(sortedVersions, skillVersion) {
101
+ if (skillVersion) {
102
+ // Handle "latest" special case
103
+ if (skillVersion.toLowerCase() === 'latest') {
104
+ return sortedVersions[0].version;
105
+ }
106
+ // Validate version exists
107
+ const versionExists = sortedVersions.some(v => v.version === skillVersion);
108
+ if (!versionExists) {
109
+ console.error(`❌ Version "${skillVersion}" not found`);
110
+ console.log('\nAvailable versions:');
111
+ sortedVersions.slice(0, 5).forEach(v => console.log(` - ${v.version}`));
112
+ if (sortedVersions.length > 5) {
113
+ console.log(` ... and ${sortedVersions.length - 5} more`);
114
+ }
115
+ process.exit(1);
116
+ }
117
+ return skillVersion;
118
+ }
119
+ // Interactive: prompt for selection
120
+ return promptVersionSelection(sortedVersions);
121
+ }
95
122
  //# sourceMappingURL=deploy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,13 @@
7
7
  *
8
8
  * This command:
9
9
  * 1. Checks if an API key exists
10
- * 2. Prompts for confirmation before deletion
10
+ * 2. Prompts for confirmation before deletion (unless --force)
11
11
  * 3. Deletes the API key from secure storage if confirmed
12
12
  *
13
13
  * Security:
14
14
  * - Requires explicit confirmation to prevent accidental deletion
15
15
  * - Action cannot be undone (must reconfigure to use CLI again)
16
+ * - Use --force to skip confirmation (for scripting/CI)
16
17
  *
17
18
  * Use this command to:
18
19
  * - Log out of the CLI
@@ -25,4 +26,6 @@
25
26
  *
26
27
  * @returns Promise that resolves when command completes
27
28
  */
28
- export declare function destroyCommand(): Promise<void>;
29
+ export declare function destroyCommand(options?: {
30
+ force?: boolean;
31
+ }): Promise<void>;
@@ -10,12 +10,13 @@ import { withErrorHandling, clearPromptLines, writeProgress, writeSuccess } from
10
10
  *
11
11
  * This command:
12
12
  * 1. Checks if an API key exists
13
- * 2. Prompts for confirmation before deletion
13
+ * 2. Prompts for confirmation before deletion (unless --force)
14
14
  * 3. Deletes the API key from secure storage if confirmed
15
15
  *
16
16
  * Security:
17
17
  * - Requires explicit confirmation to prevent accidental deletion
18
18
  * - Action cannot be undone (must reconfigure to use CLI again)
19
+ * - Use --force to skip confirmation (for scripting/CI)
19
20
  *
20
21
  * Use this command to:
21
22
  * - Log out of the CLI
@@ -28,13 +29,24 @@ import { withErrorHandling, clearPromptLines, writeProgress, writeSuccess } from
28
29
  *
29
30
  * @returns Promise that resolves when command completes
30
31
  */
31
- export async function destroyCommand() {
32
+ export async function destroyCommand(options) {
32
33
  return withErrorHandling(async () => {
33
34
  const apiKey = await loadApiKey();
34
35
  if (!apiKey) {
35
36
  writeProgress("ℹ️ No API key found to delete.");
36
37
  return;
37
38
  }
39
+ // Skip confirmation if --force flag is provided
40
+ if (options?.force) {
41
+ const deleted = await deleteApiKey();
42
+ if (deleted) {
43
+ writeSuccess("✅ API key deleted successfully.");
44
+ }
45
+ else {
46
+ writeProgress("❌ Failed to delete API key.");
47
+ }
48
+ return;
49
+ }
38
50
  const { confirm } = await inquirer.prompt([
39
51
  {
40
52
  type: "confirm",
@@ -1 +1 @@
1
- {"version":3,"file":"destroy.js","sourceRoot":"","sources":["../../src/commands/destroy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEnG;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,OAAO,iBAAiB,CAAC,KAAK,IAAI,EAAE;QAClC,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,aAAa,CAAC,iCAAiC,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACxC;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,6EAA6E;gBACtF,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QAEH,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;YACrC,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,CAAC,iCAAiC,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,6BAA6B,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,iCAAiC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,EAAE,QAAQ,CAAC,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"destroy.js","sourceRoot":"","sources":["../../src/commands/destroy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEnG;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAA6B;IAChE,OAAO,iBAAiB,CAAC,KAAK,IAAI,EAAE;QAClC,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,aAAa,CAAC,iCAAiC,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,gDAAgD;QAChD,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;YACrC,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,CAAC,iCAAiC,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,6BAA6B,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACxC;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,6EAA6E;gBACtF,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QAEH,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;YACrC,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,CAAC,iCAAiC,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,6BAA6B,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,iCAAiC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,EAAE,QAAQ,CAAC,CAAC;AACf,CAAC"}
@@ -24,8 +24,10 @@ export interface EnvCommandContext {
24
24
  * - Delete variables
25
25
  * - Sandbox: manages .env file
26
26
  * - Production: uses API endpoints
27
+ * - Non-interactive mode: direct operations with --key, --value, --delete, --list
27
28
  *
28
29
  * @param env - Optional environment argument ('sandbox', 'staging', or 'production')
30
+ * @param cmdObj - Commander command object with options
29
31
  * @returns Promise that resolves when command completes
30
32
  */
31
- export declare function envCommand(env?: string): Promise<void>;
33
+ export declare function envCommand(env?: string, cmdObj?: any): Promise<void>;