lua-cli 3.9.1 → 3.9.3

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 (55) hide show
  1. package/dist/api/agent.api.service.d.ts +8 -0
  2. package/dist/api/agent.api.service.d.ts.map +1 -1
  3. package/dist/api/agent.api.service.js +12 -0
  4. package/dist/api/agent.api.service.js.map +1 -1
  5. package/dist/cli/command-definitions.d.ts.map +1 -1
  6. package/dist/cli/command-definitions.js +11 -8
  7. package/dist/cli/command-definitions.js.map +1 -1
  8. package/dist/commands/init.d.ts +1 -0
  9. package/dist/commands/init.d.ts.map +1 -1
  10. package/dist/commands/init.js +120 -28
  11. package/dist/commands/init.js.map +1 -1
  12. package/dist/commands/sync.d.ts.map +1 -1
  13. package/dist/commands/sync.js +191 -13
  14. package/dist/commands/sync.js.map +1 -1
  15. package/dist/compiler/source-writer.d.ts.map +1 -1
  16. package/dist/compiler/source-writer.js +22 -1
  17. package/dist/compiler/source-writer.js.map +1 -1
  18. package/dist/interfaces/agent.d.ts +11 -0
  19. package/dist/interfaces/agent.d.ts.map +1 -1
  20. package/dist/primitives/mcp-server.handler.d.ts +16 -5
  21. package/dist/primitives/mcp-server.handler.d.ts.map +1 -1
  22. package/dist/primitives/mcp-server.handler.js +75 -1
  23. package/dist/primitives/mcp-server.handler.js.map +1 -1
  24. package/dist/types/skill.js.map +1 -1
  25. package/dist/utils/backup-helpers.d.ts +27 -0
  26. package/dist/utils/backup-helpers.d.ts.map +1 -1
  27. package/dist/utils/backup-helpers.js +62 -0
  28. package/dist/utils/backup-helpers.js.map +1 -1
  29. package/dist/utils/init-agent.d.ts +30 -1
  30. package/dist/utils/init-agent.d.ts.map +1 -1
  31. package/dist/utils/init-agent.js +56 -1
  32. package/dist/utils/init-agent.js.map +1 -1
  33. package/dist/utils/init-helpers.d.ts +2 -1
  34. package/dist/utils/init-helpers.d.ts.map +1 -1
  35. package/dist/utils/init-helpers.js +3 -2
  36. package/dist/utils/init-helpers.js.map +1 -1
  37. package/dist/utils/init-prompts.d.ts +10 -0
  38. package/dist/utils/init-prompts.d.ts.map +1 -1
  39. package/dist/utils/init-prompts.js +42 -2
  40. package/dist/utils/init-prompts.js.map +1 -1
  41. package/dist/utils/sync-display.d.ts +16 -1
  42. package/dist/utils/sync-display.d.ts.map +1 -1
  43. package/dist/utils/sync-display.js +79 -0
  44. package/dist/utils/sync-display.js.map +1 -1
  45. package/dist/utils/sync-fetch.d.ts +68 -0
  46. package/dist/utils/sync-fetch.d.ts.map +1 -1
  47. package/dist/utils/sync-fetch.js +157 -0
  48. package/dist/utils/sync-fetch.js.map +1 -1
  49. package/docs/README.md +3 -3
  50. package/node_modules/@lua/shared-types/dist/index.d.mts +24 -1
  51. package/node_modules/@lua/shared-types/dist/index.d.ts +24 -1
  52. package/node_modules/@lua/shared-types/src/index.ts +1 -0
  53. package/node_modules/@lua/shared-types/src/model-registry.ts +20 -0
  54. package/package.json +1 -1
  55. package/template/package.json +1 -1
@@ -10,6 +10,14 @@ const colors = {
10
10
  reset: '\x1b[0m',
11
11
  bold: '\x1b[1m',
12
12
  };
13
+ const primitiveTypeLabels = {
14
+ skill: 'SKILLS',
15
+ webhook: 'WEBHOOKS',
16
+ job: 'JOBS',
17
+ preprocessor: 'PREPROCESSORS',
18
+ postprocessor: 'POSTPROCESSORS',
19
+ mcpServer: 'MCP SERVERS',
20
+ };
13
21
  export function showColoredDiff(oldText, newText, oldLabel = 'Server', newLabel = 'Local') {
14
22
  if (!oldText && !newText) {
15
23
  console.log(colors.gray + '(both empty)' + colors.reset);
@@ -72,4 +80,75 @@ export function showModelDiff(serverModel, localModel) {
72
80
  console.log(colors.green + `+ Local: "${localModel || '(none)'}"` + colors.reset);
73
81
  console.log('='.repeat(60) + '\n');
74
82
  }
83
+ /**
84
+ * Displays primitive drift in interactive mode, grouped by type.
85
+ * Shows each item's local version, server version, and backup availability.
86
+ *
87
+ * @param items - The list of drifted primitives to display.
88
+ * @param backupAvailable - Whether a backup exists for this agent.
89
+ */
90
+ export function showPrimitiveDrift(items, backupAvailable) {
91
+ if (items.length === 0)
92
+ return;
93
+ // Group items by type preserving insertion order.
94
+ const grouped = new Map();
95
+ for (const item of items) {
96
+ const group = grouped.get(item.type);
97
+ if (group) {
98
+ group.push(item);
99
+ }
100
+ else {
101
+ grouped.set(item.type, [item]);
102
+ }
103
+ }
104
+ for (const [type, groupItems] of grouped) {
105
+ const label = primitiveTypeLabels[type] ?? type.toUpperCase();
106
+ console.log('\n' + colors.bold + `━━━ ${label} ━━━` + colors.reset);
107
+ for (const item of groupItems) {
108
+ console.log('\n ' + colors.bold + item.name + colors.reset);
109
+ const localDisplay = item.localVersion
110
+ ? `v${item.localVersion}`
111
+ : colors.gray + '(not found)' + colors.reset;
112
+ console.log(` Local: ${localDisplay}`);
113
+ const serverDisplay = item.serverVersion
114
+ ? `v${item.serverVersion}`
115
+ : colors.gray + '(not found)' + colors.reset;
116
+ console.log(` Server: ${serverDisplay}`);
117
+ }
118
+ }
119
+ if (backupAvailable !== undefined) {
120
+ const backupDisplay = backupAvailable
121
+ ? colors.green + 'available' + colors.reset
122
+ : colors.red + 'not available' + colors.reset;
123
+ console.log(`\n Backup: ${backupDisplay}`);
124
+ }
125
+ console.log('');
126
+ }
127
+ /**
128
+ * Displays a compact summary of primitive drift for check mode.
129
+ * Prints one line per drifted item showing type, name, and version info.
130
+ *
131
+ * @param items - The list of drifted primitives to summarise.
132
+ */
133
+ export function showPrimitiveDriftSummary(items) {
134
+ if (items.length === 0)
135
+ return;
136
+ console.log('Primitive drift detected:');
137
+ for (const item of items) {
138
+ const label = primitiveTypeLabels[item.type] ?? item.type.toUpperCase();
139
+ const vSuffix = (ver) => (ver ? `, v${ver}` : '');
140
+ let versionInfo;
141
+ if (item.status === 'version-mismatch') {
142
+ versionInfo = `local v${item.localVersion}, server v${item.serverVersion}`;
143
+ }
144
+ else if (item.status === 'missing-locally') {
145
+ versionInfo = `server only${vSuffix(item.serverVersion)}`;
146
+ }
147
+ else {
148
+ versionInfo = `local only${vSuffix(item.localVersion)}`;
149
+ }
150
+ const paddedLabel = label.padEnd(16);
151
+ console.log(` ${colors.red}${paddedLabel}${colors.reset} ${item.name} (${versionInfo})`);
152
+ }
153
+ }
75
154
  //# sourceMappingURL=sync-display.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-display.js","sourceRoot":"","sources":["../../src/utils/sync-display.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-display.js","sourceRoot":"","sources":["../../src/utils/sync-display.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  * Sync Fetch — Data fetching layer for drift detection.
3
3
  * Fetches server state (persona, name) and compares with local code.
4
4
  */
5
+ import type { YamlConfig } from '../types/yaml.types.js';
5
6
  export interface PersonaDrift {
6
7
  hasDrift: boolean;
7
8
  serverPersona: string | null;
@@ -28,4 +29,71 @@ export interface ModelDrift {
28
29
  }
29
30
  export declare function fetchServerModel(apiKey: string, agentId: string): Promise<string | null>;
30
31
  export declare function checkModelDrift(apiKey: string, agentId: string): Promise<ModelDrift | null>;
32
+ /** Describes how a primitive differs between local config and the server. */
33
+ export type PrimitiveDriftStatus = 'version-mismatch' | 'missing-locally' | 'missing-on-server';
34
+ /** A single primitive that has drifted between local config and the server. */
35
+ export interface PrimitiveDriftItem {
36
+ /** The name of the primitive as it appears in the YAML config or on the server. */
37
+ name: string;
38
+ /** The primitive type. */
39
+ type: 'skill' | 'webhook' | 'job' | 'preprocessor' | 'postprocessor' | 'mcpServer';
40
+ /** How the local config and server differ for this primitive. */
41
+ status: PrimitiveDriftStatus;
42
+ /** The version recorded in the local YAML config, or null when not present locally. */
43
+ localVersion: string | null;
44
+ /** The active version on the server, or null when not present on the server. */
45
+ serverVersion: string | null;
46
+ /** The server-assigned entity ID, if known. */
47
+ entityId: string | null;
48
+ }
49
+ /** Aggregate result of comparing all primitives between local config and the server. */
50
+ export interface PrimitiveDrift {
51
+ items: PrimitiveDriftItem[];
52
+ hasDrift: boolean;
53
+ /** Whether a backup exists for this agent (per-agent, not per-primitive). */
54
+ backupAvailable?: boolean;
55
+ }
56
+ interface ServerPrimitive {
57
+ id: string;
58
+ name: string;
59
+ /** Active version string, or null when none exists. */
60
+ activeVersion: string | null;
61
+ }
62
+ interface ServerPrimitives {
63
+ skills: ServerPrimitive[];
64
+ webhooks: ServerPrimitive[];
65
+ jobs: ServerPrimitive[];
66
+ preprocessors: ServerPrimitive[];
67
+ postprocessors: ServerPrimitive[];
68
+ mcpServers: ServerPrimitive[];
69
+ }
70
+ /**
71
+ * Fetches all primitive types from the server in parallel.
72
+ * Each fetch failure is caught individually — a partial result is returned
73
+ * rather than failing the entire operation.
74
+ *
75
+ * @param apiKey - Developer API key used for authentication.
76
+ * @param agentId - The agent whose primitives to fetch.
77
+ * @returns Normalised server primitives grouped by type.
78
+ */
79
+ export declare function fetchServerPrimitives(apiKey: string, agentId: string): Promise<ServerPrimitives>;
80
+ /**
81
+ * Compares one primitive type across local and server lists.
82
+ * Returns items that have drifted (version mismatch, missing locally, or missing on server).
83
+ */
84
+ export declare function comparePrimitives(type: PrimitiveDriftItem['type'], localItems: Array<{
85
+ name: string;
86
+ version: string | null;
87
+ entityId: string | null;
88
+ }>, serverItems: Array<{
89
+ id: string;
90
+ name: string;
91
+ activeVersion: string | null;
92
+ }>): PrimitiveDriftItem[];
93
+ /**
94
+ * Compares all primitive types in the local YAML config against the server
95
+ * and returns items that have drifted.
96
+ */
97
+ export declare function checkPrimitiveDrift(apiKey: string, agentId: string, localConfig: YamlConfig): Promise<PrimitiveDrift>;
98
+ export {};
31
99
  //# sourceMappingURL=sync-fetch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-fetch.d.ts","sourceRoot":"","sources":["../../src/utils/sync-fetch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAYD,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAG1F;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAWtD;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAMrG;AAYD,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAG7F;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAO/F;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAI9F;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CASjG"}
1
+ {"version":3,"file":"sync-fetch.d.ts","sourceRoot":"","sources":["../../src/utils/sync-fetch.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,13 @@ import { BASE_URLS } from '../config/constants.js';
6
6
  import { getAgentName, getAgentPersona, getAgentModel } from './artifact-loader.js';
7
7
  import PersonaApi from '../api/persona.api.service.js';
8
8
  import AgentApi from '../api/agent.api.service.js';
9
+ import SkillApi from '../api/skills.api.service.js';
10
+ import WebhookApi from '../api/webhook.api.service.js';
11
+ import JobApi from '../api/job.api.service.js';
12
+ import PreProcessorApi from '../api/preprocessor.api.service.js';
13
+ import PostProcessorApi from '../api/postprocessor.api.service.js';
14
+ import DeveloperApi from '../api/developer.api.service.js';
15
+ import { mcpServerHandler } from '../primitives/mcp-server.handler.js';
9
16
  function normalizeForComparison(str) {
10
17
  return str
11
18
  .trim()
@@ -81,4 +88,154 @@ export async function checkModelDrift(apiKey, agentId) {
81
88
  return null;
82
89
  return { hasDrift: true, serverModel: serverModel || null, localModel };
83
90
  }
91
+ /** Resolves the active version string from a list of version entries. */
92
+ function resolveActiveVersion(versions, activeVersionId) {
93
+ if (activeVersionId) {
94
+ const match = versions.find(v => v.id === activeVersionId || v.versionId === activeVersionId);
95
+ if (match?.version)
96
+ return match.version;
97
+ }
98
+ const activeByFlag = versions.find(v => v.active);
99
+ if (activeByFlag?.version)
100
+ return activeByFlag.version;
101
+ return versions[versions.length - 1]?.version ?? null;
102
+ }
103
+ // ============================================================================
104
+ // fetchServerPrimitives
105
+ // ============================================================================
106
+ /**
107
+ * Fetches all primitive types from the server in parallel.
108
+ * Each fetch failure is caught individually — a partial result is returned
109
+ * rather than failing the entire operation.
110
+ *
111
+ * @param apiKey - Developer API key used for authentication.
112
+ * @param agentId - The agent whose primitives to fetch.
113
+ * @returns Normalised server primitives grouped by type.
114
+ */
115
+ export async function fetchServerPrimitives(apiKey, agentId) {
116
+ const skillApi = new SkillApi(BASE_URLS.API, apiKey, agentId);
117
+ const webhookApi = new WebhookApi(BASE_URLS.API, apiKey, agentId);
118
+ const jobApi = new JobApi(BASE_URLS.API, apiKey, agentId);
119
+ const preProcessorApi = new PreProcessorApi(BASE_URLS.API, apiKey, agentId);
120
+ const postProcessorApi = new PostProcessorApi(BASE_URLS.API, apiKey, agentId);
121
+ const developerApi = new DeveloperApi(BASE_URLS.API, apiKey, agentId);
122
+ const [skillsRes, webhooksRes, jobsRes, preprocessorsRes, postprocessorsRes, mcpServersRes] = await Promise.all([
123
+ skillApi.getSkills().catch(() => null),
124
+ webhookApi.getWebhooks().catch(() => null),
125
+ jobApi.getJobs().catch(() => null),
126
+ preProcessorApi.getPreProcessors().catch(() => null),
127
+ postProcessorApi.getPostProcessors().catch(() => null),
128
+ developerApi.getMCPServers().catch(() => null),
129
+ ]);
130
+ const skills = (skillsRes?.success && skillsRes.data?.skills)
131
+ ? skillsRes.data.skills.map(s => ({
132
+ id: s.id,
133
+ name: s.name,
134
+ activeVersion: resolveActiveVersion(s.versions),
135
+ }))
136
+ : [];
137
+ const webhooks = (webhooksRes?.success && webhooksRes.data?.webhooks)
138
+ ? webhooksRes.data.webhooks.map(w => ({
139
+ id: w.id,
140
+ name: w.name,
141
+ activeVersion: resolveActiveVersion(w.versions, w.activeVersionId),
142
+ }))
143
+ : [];
144
+ const jobs = (jobsRes?.success && jobsRes.data?.jobs)
145
+ ? jobsRes.data.jobs.map(j => ({
146
+ id: j.id,
147
+ name: j.name,
148
+ activeVersion: resolveActiveVersion(j.versions, j.activeVersionId),
149
+ }))
150
+ : [];
151
+ const preprocessors = (preprocessorsRes?.success && preprocessorsRes.data?.preprocessors)
152
+ ? preprocessorsRes.data.preprocessors.map(p => ({
153
+ id: p.id,
154
+ name: p.name,
155
+ activeVersion: resolveActiveVersion(p.versions, p.activeVersionId),
156
+ }))
157
+ : [];
158
+ const postprocessors = (postprocessorsRes?.success && postprocessorsRes.data?.postprocessors)
159
+ ? postprocessorsRes.data.postprocessors.map(p => ({
160
+ id: p.id,
161
+ name: p.name,
162
+ activeVersion: resolveActiveVersion(p.versions, p.activeVersionId),
163
+ }))
164
+ : [];
165
+ // Integration-sourced (e.g. UnifiedTo) and deactivated servers are excluded from drift —
166
+ // the handler's isActive() encodes both rules and stays the single source of truth.
167
+ const mcpServers = (mcpServersRes?.success && mcpServersRes.data)
168
+ ? mcpServersRes.data
169
+ .filter(m => mcpServerHandler.isActive(m))
170
+ .map(m => ({ id: m.id, name: m.name, activeVersion: null }))
171
+ : [];
172
+ return { skills, webhooks, jobs, preprocessors, postprocessors, mcpServers };
173
+ }
174
+ // ============================================================================
175
+ // comparePrimitives
176
+ // ============================================================================
177
+ /**
178
+ * Compares one primitive type across local and server lists.
179
+ * Returns items that have drifted (version mismatch, missing locally, or missing on server).
180
+ */
181
+ export function comparePrimitives(type, localItems, serverItems) {
182
+ const items = [];
183
+ const serverByName = new Map(serverItems.map(s => [s.name, s]));
184
+ const localByName = new Map(localItems.map(l => [l.name, l]));
185
+ for (const local of localItems) {
186
+ const serverItem = serverByName.get(local.name);
187
+ if (!serverItem) {
188
+ items.push({
189
+ name: local.name,
190
+ type,
191
+ status: 'missing-on-server',
192
+ localVersion: local.version,
193
+ serverVersion: null,
194
+ entityId: local.entityId,
195
+ });
196
+ }
197
+ else if (serverItem.activeVersion && serverItem.activeVersion !== local.version) {
198
+ items.push({
199
+ name: local.name,
200
+ type,
201
+ status: 'version-mismatch',
202
+ localVersion: local.version,
203
+ serverVersion: serverItem.activeVersion,
204
+ entityId: serverItem.id,
205
+ });
206
+ }
207
+ }
208
+ for (const serverItem of serverItems) {
209
+ if (!localByName.has(serverItem.name)) {
210
+ items.push({
211
+ name: serverItem.name,
212
+ type,
213
+ status: 'missing-locally',
214
+ localVersion: null,
215
+ serverVersion: serverItem.activeVersion,
216
+ entityId: serverItem.id,
217
+ });
218
+ }
219
+ }
220
+ return items;
221
+ }
222
+ // ============================================================================
223
+ // checkPrimitiveDrift
224
+ // ============================================================================
225
+ /**
226
+ * Compares all primitive types in the local YAML config against the server
227
+ * and returns items that have drifted.
228
+ */
229
+ export async function checkPrimitiveDrift(apiKey, agentId, localConfig) {
230
+ const server = await fetchServerPrimitives(apiKey, agentId);
231
+ const items = [
232
+ ...comparePrimitives('skill', (localConfig.skills ?? []).map(s => ({ name: s.name, version: s.version, entityId: s.skillId })), server.skills),
233
+ ...comparePrimitives('webhook', (localConfig.webhooks ?? []).map(w => ({ name: w.name, version: w.version, entityId: w.webhookId })), server.webhooks),
234
+ ...comparePrimitives('job', (localConfig.jobs ?? []).map(j => ({ name: j.name, version: j.version, entityId: j.jobId })), server.jobs),
235
+ ...comparePrimitives('preprocessor', (localConfig.preprocessors ?? []).map(p => ({ name: p.name, version: p.version, entityId: p.preprocessorId })), server.preprocessors),
236
+ ...comparePrimitives('postprocessor', (localConfig.postprocessors ?? []).map(p => ({ name: p.name, version: p.version, entityId: p.postprocessorId })), server.postprocessors),
237
+ ...comparePrimitives('mcpServer', (localConfig.mcpServers ?? []).map(m => ({ name: m.name, version: null, entityId: m.mcpServerId })), server.mcpServers),
238
+ ];
239
+ return { items, hasDrift: items.length > 0 };
240
+ }
84
241
  //# sourceMappingURL=sync-fetch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-fetch.js","sourceRoot":"","sources":["../../src/utils/sync-fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-fetch.js","sourceRoot":"","sources":["../../src/utils/sync-fetch.ts"],"names":[],"mappings":"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"}
package/docs/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Lua CLI - Complete API Documentation
2
2
 
3
- Welcome to the comprehensive API documentation for lua-cli v3.7.1. This guide covers every API, class, and function exported by the package.
3
+ Welcome to the comprehensive API documentation for lua-cli v3.9.3. This guide covers every API, class, and function exported by the package.
4
4
 
5
5
  ## 📚 Documentation Index
6
6
 
@@ -245,8 +245,8 @@ Each API doc includes:
245
245
 
246
246
  ---
247
247
 
248
- **Version:** 3.7.0
249
- **Last Updated:** March 2026
248
+ **Version:** 3.9.3
249
+ **Last Updated:** April 2026
250
250
 
251
251
  ---
252
252
 
@@ -119,4 +119,27 @@ declare const REQUIRED_ENUMS: {
119
119
  };
120
120
  declare const REQUIRED_UTILITIES: readonly ["env"];
121
121
 
122
- export { type AiGenerateInput, type AiGenerateOutput, type AiGenerateSource, type AiGenerateToolCall, type AiGenerateToolResult, type Channel, REQUIRED_ENUMS, REQUIRED_NESTED_APIS, REQUIRED_PLATFORM_APIS, REQUIRED_PRIMITIVE_SHIMS, REQUIRED_UTILITIES, UNSTRUCTURED_SUPPORTED_MEDIA_TYPES, aiGenerateInputFromSimplified };
122
+ /**
123
+ * Shared type definitions for the model registry.
124
+ *
125
+ * Runtime data (provider configs, context windows, approved model list) lives
126
+ * exclusively in the MongoDB `approvedModels` collection. lua-core loads it at
127
+ * startup via initModelRegistry() in mastra/common/model-registry.ts.
128
+ */
129
+ interface ApprovedModelDef {
130
+ provider: string;
131
+ /** Full user-facing model string, e.g. "zhipuai/glm-5". */
132
+ code: string;
133
+ /** Model ID portion for display, e.g. "glm-5". */
134
+ model: string;
135
+ description: string;
136
+ /** Advertised input token context window (raw, from provider docs). */
137
+ contextWindow?: number;
138
+ /** If set, route requests through a gateway instead of calling the provider directly. */
139
+ gateway?: {
140
+ via: string;
141
+ modelPrefix: string;
142
+ };
143
+ }
144
+
145
+ export { type AiGenerateInput, type AiGenerateOutput, type AiGenerateSource, type AiGenerateToolCall, type AiGenerateToolResult, type ApprovedModelDef, type Channel, REQUIRED_ENUMS, REQUIRED_NESTED_APIS, REQUIRED_PLATFORM_APIS, REQUIRED_PRIMITIVE_SHIMS, REQUIRED_UTILITIES, UNSTRUCTURED_SUPPORTED_MEDIA_TYPES, aiGenerateInputFromSimplified };
@@ -119,4 +119,27 @@ declare const REQUIRED_ENUMS: {
119
119
  };
120
120
  declare const REQUIRED_UTILITIES: readonly ["env"];
121
121
 
122
- export { type AiGenerateInput, type AiGenerateOutput, type AiGenerateSource, type AiGenerateToolCall, type AiGenerateToolResult, type Channel, REQUIRED_ENUMS, REQUIRED_NESTED_APIS, REQUIRED_PLATFORM_APIS, REQUIRED_PRIMITIVE_SHIMS, REQUIRED_UTILITIES, UNSTRUCTURED_SUPPORTED_MEDIA_TYPES, aiGenerateInputFromSimplified };
122
+ /**
123
+ * Shared type definitions for the model registry.
124
+ *
125
+ * Runtime data (provider configs, context windows, approved model list) lives
126
+ * exclusively in the MongoDB `approvedModels` collection. lua-core loads it at
127
+ * startup via initModelRegistry() in mastra/common/model-registry.ts.
128
+ */
129
+ interface ApprovedModelDef {
130
+ provider: string;
131
+ /** Full user-facing model string, e.g. "zhipuai/glm-5". */
132
+ code: string;
133
+ /** Model ID portion for display, e.g. "glm-5". */
134
+ model: string;
135
+ description: string;
136
+ /** Advertised input token context window (raw, from provider docs). */
137
+ contextWindow?: number;
138
+ /** If set, route requests through a gateway instead of calling the provider directly. */
139
+ gateway?: {
140
+ via: string;
141
+ modelPrefix: string;
142
+ };
143
+ }
144
+
145
+ export { type AiGenerateInput, type AiGenerateOutput, type AiGenerateSource, type AiGenerateToolCall, type AiGenerateToolResult, type ApprovedModelDef, type Channel, REQUIRED_ENUMS, REQUIRED_NESTED_APIS, REQUIRED_PLATFORM_APIS, REQUIRED_PRIMITIVE_SHIMS, REQUIRED_UTILITIES, UNSTRUCTURED_SUPPORTED_MEDIA_TYPES, aiGenerateInputFromSimplified };
@@ -3,3 +3,4 @@ export * from './unstructured-types';
3
3
  export * from './ai-generate.types';
4
4
  export * from './ai-generate.utils';
5
5
  export * from './sandbox-contract';
6
+ export * from './model-registry';
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Shared type definitions for the model registry.
3
+ *
4
+ * Runtime data (provider configs, context windows, approved model list) lives
5
+ * exclusively in the MongoDB `approvedModels` collection. lua-core loads it at
6
+ * startup via initModelRegistry() in mastra/common/model-registry.ts.
7
+ */
8
+
9
+ export interface ApprovedModelDef {
10
+ provider: string;
11
+ /** Full user-facing model string, e.g. "zhipuai/glm-5". */
12
+ code: string;
13
+ /** Model ID portion for display, e.g. "glm-5". */
14
+ model: string;
15
+ description: string;
16
+ /** Advertised input token context window (raw, from provider docs). */
17
+ contextWindow?: number;
18
+ /** If set, route requests through a gateway instead of calling the provider directly. */
19
+ gateway?: { via: string; modelPrefix: string };
20
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lua-cli",
3
- "version": "3.9.1",
3
+ "version": "3.9.3",
4
4
  "description": "Build, test, and deploy AI agents with custom tools, webhooks, and scheduled jobs. Features LuaAgent unified configuration, streaming chat, and batch deployment.",
5
5
  "readmeFilename": "README.md",
6
6
  "main": "dist/api-exports.js",
@@ -20,7 +20,7 @@
20
20
  "inquirer": "^12.9.6",
21
21
  "stripe": "^17.5.0",
22
22
  "js-yaml": "^4.1.0",
23
- "lua-cli": "^3.9.1",
23
+ "lua-cli": "^3.9.3",
24
24
  "openai": "^5.23.0",
25
25
  "uuid": "^13.0.0",
26
26
  "zod": "^3.24.1"