lua-cli 3.9.0 → 3.9.2

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 (81) hide show
  1. package/README.md +2 -90
  2. package/dist/cli/command-definitions.js +14 -14
  3. package/dist/cli/command-definitions.js.map +1 -1
  4. package/dist/commands/agents.d.ts.map +1 -1
  5. package/dist/commands/agents.js +11 -2
  6. package/dist/commands/agents.js.map +1 -1
  7. package/dist/commands/apiKey.d.ts +21 -1
  8. package/dist/commands/apiKey.d.ts.map +1 -1
  9. package/dist/commands/apiKey.js +25 -7
  10. package/dist/commands/apiKey.js.map +1 -1
  11. package/dist/commands/compile.d.ts.map +1 -1
  12. package/dist/commands/compile.js +3 -11
  13. package/dist/commands/compile.js.map +1 -1
  14. package/dist/commands/configure.d.ts +2 -2
  15. package/dist/commands/configure.js +2 -2
  16. package/dist/commands/destroy.d.ts +24 -0
  17. package/dist/commands/destroy.d.ts.map +1 -1
  18. package/dist/commands/destroy.js +30 -8
  19. package/dist/commands/destroy.js.map +1 -1
  20. package/dist/commands/init.d.ts.map +1 -1
  21. package/dist/commands/init.js +29 -0
  22. package/dist/commands/init.js.map +1 -1
  23. package/dist/commands/jobs.js +9 -29
  24. package/dist/commands/jobs.js.map +1 -1
  25. package/dist/commands/sync.d.ts.map +1 -1
  26. package/dist/commands/sync.js +191 -13
  27. package/dist/commands/sync.js.map +1 -1
  28. package/dist/config/constants.d.ts +11 -7
  29. package/dist/config/constants.d.ts.map +1 -1
  30. package/dist/config/constants.js +11 -7
  31. package/dist/config/constants.js.map +1 -1
  32. package/dist/index.js +0 -0
  33. package/dist/primitives/mcp-server.handler.d.ts +16 -5
  34. package/dist/primitives/mcp-server.handler.d.ts.map +1 -1
  35. package/dist/primitives/mcp-server.handler.js +75 -1
  36. package/dist/primitives/mcp-server.handler.js.map +1 -1
  37. package/dist/services/analytics.d.ts.map +1 -1
  38. package/dist/services/analytics.js +2 -6
  39. package/dist/services/analytics.js.map +1 -1
  40. package/dist/services/auth.d.ts +26 -16
  41. package/dist/services/auth.d.ts.map +1 -1
  42. package/dist/services/auth.js +101 -45
  43. package/dist/services/auth.js.map +1 -1
  44. package/dist/utils/auth-flows.d.ts.map +1 -1
  45. package/dist/utils/auth-flows.js +12 -8
  46. package/dist/utils/auth-flows.js.map +1 -1
  47. package/dist/utils/backup-helpers.d.ts +27 -0
  48. package/dist/utils/backup-helpers.d.ts.map +1 -1
  49. package/dist/utils/backup-helpers.js +62 -0
  50. package/dist/utils/backup-helpers.js.map +1 -1
  51. package/dist/utils/cli.d.ts.map +1 -1
  52. package/dist/utils/cli.js +3 -2
  53. package/dist/utils/cli.js.map +1 -1
  54. package/dist/utils/command-utils.d.ts +3 -4
  55. package/dist/utils/command-utils.d.ts.map +1 -1
  56. package/dist/utils/command-utils.js +20 -9
  57. package/dist/utils/command-utils.js.map +1 -1
  58. package/dist/utils/keytar-loader.d.ts +20 -0
  59. package/dist/utils/keytar-loader.d.ts.map +1 -0
  60. package/dist/utils/keytar-loader.js +35 -0
  61. package/dist/utils/keytar-loader.js.map +1 -0
  62. package/dist/utils/sandbox-storage.d.ts +18 -18
  63. package/dist/utils/sandbox-storage.d.ts.map +1 -1
  64. package/dist/utils/sandbox-storage.js +101 -77
  65. package/dist/utils/sandbox-storage.js.map +1 -1
  66. package/dist/utils/sync-display.d.ts +16 -1
  67. package/dist/utils/sync-display.d.ts.map +1 -1
  68. package/dist/utils/sync-display.js +79 -0
  69. package/dist/utils/sync-display.js.map +1 -1
  70. package/dist/utils/sync-fetch.d.ts +68 -0
  71. package/dist/utils/sync-fetch.d.ts.map +1 -1
  72. package/dist/utils/sync-fetch.js +157 -0
  73. package/dist/utils/sync-fetch.js.map +1 -1
  74. package/node_modules/@lua/shared-types/dist/index.d.mts +92 -0
  75. package/node_modules/@lua/shared-types/dist/index.d.ts +92 -0
  76. package/node_modules/@lua/shared-types/dist/index.js +104 -0
  77. package/node_modules/@lua/shared-types/dist/index.mjs +79 -0
  78. package/node_modules/@lua/shared-types/src/index.ts +1 -0
  79. package/node_modules/@lua/shared-types/src/model-registry.ts +20 -0
  80. package/package.json +6 -4
  81. package/template/package.json +1 -1
@@ -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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"}
@@ -0,0 +1,92 @@
1
+ import { FinishReason, LanguageModelUsage, ReasoningOutput, CallWarning, UserContent } from 'ai';
2
+
3
+ /**
4
+ * Channel type.
5
+ * Represents the communication channel through which a request originated.
6
+ * Known channels are typed as string literals, unrecognized channels are unknown.
7
+ */
8
+ type Channel = 'web' | 'whatsapp' | 'facebook' | 'instagram' | 'slack' | 'teams' | 'messagebird' | 'front' | 'api' | 'dev' | 'email' | 'rcs' | 'sms' | 'mms' | string;
9
+
10
+ /**
11
+ * MIME types supported by Unstructured.io for document text extraction.
12
+ * Source: https://docs.unstructured.io/api-reference/supported-file-types
13
+ *
14
+ * Shared across lua-core (FileConversionService) and lua-agents (UnstructuredService).
15
+ */
16
+ declare const UNSTRUCTURED_SUPPORTED_MEDIA_TYPES: Set<string>;
17
+
18
+ /**
19
+ * Wire-format input for sandbox `AI.generate` / `POST .../generate` (JSON-serializable).
20
+ * Serializable subset of AI SDK `generateText` parameters.
21
+ * `messages` is untyped over HTTP; callers typically send AI SDK `ModelMessage[]`.
22
+ */
23
+ interface AiGenerateInput {
24
+ model?: string;
25
+ system?: string;
26
+ prompt?: string;
27
+ messages?: unknown[];
28
+ temperature?: number;
29
+ maxOutputTokens?: number;
30
+ }
31
+ /**
32
+ * URL source from Google Search grounding.
33
+ * Mirrors `LanguageModelV2Source` (AI SDK `Source` type — not exported from `ai` as of v5).
34
+ */
35
+ interface AiGenerateSource {
36
+ sourceType: 'url';
37
+ id: string;
38
+ url: string;
39
+ title?: string;
40
+ }
41
+ /**
42
+ * Serializable tool call. Mirrors `TypedToolCall` without generics.
43
+ * `input` matches the AI SDK field name (renamed from `args` in v5).
44
+ */
45
+ interface AiGenerateToolCall {
46
+ type: 'tool-call';
47
+ toolCallId: string;
48
+ toolName: string;
49
+ input: unknown;
50
+ }
51
+ /**
52
+ * Serializable tool result. Mirrors `TypedToolResult` without generics.
53
+ * `output` matches the AI SDK field name.
54
+ */
55
+ interface AiGenerateToolResult {
56
+ type: 'tool-result';
57
+ toolCallId: string;
58
+ toolName: string;
59
+ output: unknown;
60
+ isError?: boolean;
61
+ }
62
+ /**
63
+ * Wire-format output from `AI.generate` / `POST .../generate`.
64
+ * Fields mirror AI SDK `GenerateTextResult` — uses AI SDK types where exported.
65
+ * See https://ai-sdk.dev/docs/reference/ai-sdk-core/generate-text
66
+ */
67
+ interface AiGenerateOutput {
68
+ text: string;
69
+ /** AI SDK `FinishReason` */
70
+ finishReason: FinishReason;
71
+ /** AI SDK `LanguageModelUsage` */
72
+ usage: LanguageModelUsage;
73
+ /** Model reasoning steps (e.g. Gemini thinking) */
74
+ reasoning?: ReasoningOutput[];
75
+ /** Concatenated reasoning text */
76
+ reasoningText?: string;
77
+ /** URL sources from Google Search grounding */
78
+ sources?: AiGenerateSource[];
79
+ /** Tool calls made during generation */
80
+ toolCalls?: AiGenerateToolCall[];
81
+ /** Tool results from generation */
82
+ toolResults?: AiGenerateToolResult[];
83
+ /** Provider warnings (e.g. unsupported settings) — AI SDK `CallWarning[]` */
84
+ warnings?: CallWarning[];
85
+ }
86
+
87
+ /**
88
+ * Maps simplified `AI.generate(prompt, content?)` calls to wire-format input.
89
+ */
90
+ declare function aiGenerateInputFromSimplified(prompt: string, content?: UserContent): AiGenerateInput;
91
+
92
+ export { type AiGenerateInput, type AiGenerateOutput, type AiGenerateSource, type AiGenerateToolCall, type AiGenerateToolResult, type Channel, UNSTRUCTURED_SUPPORTED_MEDIA_TYPES, aiGenerateInputFromSimplified };
@@ -0,0 +1,92 @@
1
+ import { FinishReason, LanguageModelUsage, ReasoningOutput, CallWarning, UserContent } from 'ai';
2
+
3
+ /**
4
+ * Channel type.
5
+ * Represents the communication channel through which a request originated.
6
+ * Known channels are typed as string literals, unrecognized channels are unknown.
7
+ */
8
+ type Channel = 'web' | 'whatsapp' | 'facebook' | 'instagram' | 'slack' | 'teams' | 'messagebird' | 'front' | 'api' | 'dev' | 'email' | 'rcs' | 'sms' | 'mms' | string;
9
+
10
+ /**
11
+ * MIME types supported by Unstructured.io for document text extraction.
12
+ * Source: https://docs.unstructured.io/api-reference/supported-file-types
13
+ *
14
+ * Shared across lua-core (FileConversionService) and lua-agents (UnstructuredService).
15
+ */
16
+ declare const UNSTRUCTURED_SUPPORTED_MEDIA_TYPES: Set<string>;
17
+
18
+ /**
19
+ * Wire-format input for sandbox `AI.generate` / `POST .../generate` (JSON-serializable).
20
+ * Serializable subset of AI SDK `generateText` parameters.
21
+ * `messages` is untyped over HTTP; callers typically send AI SDK `ModelMessage[]`.
22
+ */
23
+ interface AiGenerateInput {
24
+ model?: string;
25
+ system?: string;
26
+ prompt?: string;
27
+ messages?: unknown[];
28
+ temperature?: number;
29
+ maxOutputTokens?: number;
30
+ }
31
+ /**
32
+ * URL source from Google Search grounding.
33
+ * Mirrors `LanguageModelV2Source` (AI SDK `Source` type — not exported from `ai` as of v5).
34
+ */
35
+ interface AiGenerateSource {
36
+ sourceType: 'url';
37
+ id: string;
38
+ url: string;
39
+ title?: string;
40
+ }
41
+ /**
42
+ * Serializable tool call. Mirrors `TypedToolCall` without generics.
43
+ * `input` matches the AI SDK field name (renamed from `args` in v5).
44
+ */
45
+ interface AiGenerateToolCall {
46
+ type: 'tool-call';
47
+ toolCallId: string;
48
+ toolName: string;
49
+ input: unknown;
50
+ }
51
+ /**
52
+ * Serializable tool result. Mirrors `TypedToolResult` without generics.
53
+ * `output` matches the AI SDK field name.
54
+ */
55
+ interface AiGenerateToolResult {
56
+ type: 'tool-result';
57
+ toolCallId: string;
58
+ toolName: string;
59
+ output: unknown;
60
+ isError?: boolean;
61
+ }
62
+ /**
63
+ * Wire-format output from `AI.generate` / `POST .../generate`.
64
+ * Fields mirror AI SDK `GenerateTextResult` — uses AI SDK types where exported.
65
+ * See https://ai-sdk.dev/docs/reference/ai-sdk-core/generate-text
66
+ */
67
+ interface AiGenerateOutput {
68
+ text: string;
69
+ /** AI SDK `FinishReason` */
70
+ finishReason: FinishReason;
71
+ /** AI SDK `LanguageModelUsage` */
72
+ usage: LanguageModelUsage;
73
+ /** Model reasoning steps (e.g. Gemini thinking) */
74
+ reasoning?: ReasoningOutput[];
75
+ /** Concatenated reasoning text */
76
+ reasoningText?: string;
77
+ /** URL sources from Google Search grounding */
78
+ sources?: AiGenerateSource[];
79
+ /** Tool calls made during generation */
80
+ toolCalls?: AiGenerateToolCall[];
81
+ /** Tool results from generation */
82
+ toolResults?: AiGenerateToolResult[];
83
+ /** Provider warnings (e.g. unsupported settings) — AI SDK `CallWarning[]` */
84
+ warnings?: CallWarning[];
85
+ }
86
+
87
+ /**
88
+ * Maps simplified `AI.generate(prompt, content?)` calls to wire-format input.
89
+ */
90
+ declare function aiGenerateInputFromSimplified(prompt: string, content?: UserContent): AiGenerateInput;
91
+
92
+ export { type AiGenerateInput, type AiGenerateOutput, type AiGenerateSource, type AiGenerateToolCall, type AiGenerateToolResult, type Channel, UNSTRUCTURED_SUPPORTED_MEDIA_TYPES, aiGenerateInputFromSimplified };
@@ -0,0 +1,104 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
+ UNSTRUCTURED_SUPPORTED_MEDIA_TYPES: () => UNSTRUCTURED_SUPPORTED_MEDIA_TYPES,
24
+ aiGenerateInputFromSimplified: () => aiGenerateInputFromSimplified
25
+ });
26
+ module.exports = __toCommonJS(index_exports);
27
+
28
+ // src/unstructured-types.ts
29
+ var UNSTRUCTURED_SUPPORTED_MEDIA_TYPES = /* @__PURE__ */ new Set([
30
+ // PDF
31
+ "application/pdf",
32
+ // Word processing (.doc, .docx, .dot, .dotm, .zabw)
33
+ "application/msword",
34
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
35
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
36
+ "application/vnd.oasis.opendocument.text",
37
+ "application/rtf",
38
+ "text/rtf",
39
+ "application/x-abiword",
40
+ // Spreadsheets (.xls, .xlsx, .fods, .csv, .tsv, .dbf, .et, .mw)
41
+ "application/vnd.ms-excel",
42
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
43
+ "application/vnd.oasis.opendocument.spreadsheet",
44
+ "text/csv",
45
+ "text/tab-separated-values",
46
+ "application/dbase",
47
+ "application/x-et",
48
+ // Presentations (.ppt, .pptx, .pptm, .pot)
49
+ "application/vnd.ms-powerpoint",
50
+ "application/vnd.openxmlformats-officedocument.presentationml.presentation",
51
+ "application/vnd.openxmlformats-officedocument.presentationml.template",
52
+ // Images — OCR (.bmp, .heic, .jpeg, .jpg, .png, .prn, .tiff)
53
+ "image/jpeg",
54
+ "image/jpg",
55
+ "image/png",
56
+ "image/tiff",
57
+ "image/bmp",
58
+ "image/heic",
59
+ // Email (.eml, .msg, .p7s)
60
+ "message/rfc822",
61
+ "application/vnd.ms-outlook",
62
+ "application/pkcs7-signature",
63
+ // Web/Markup (.htm, .html, .md, .rst, .xml, .org)
64
+ "text/html",
65
+ "text/markdown",
66
+ "text/x-rst",
67
+ "text/x-org",
68
+ "application/xml",
69
+ "text/xml",
70
+ // Text (.txt)
71
+ "text/plain",
72
+ // eBook (.epub)
73
+ "application/epub+zip",
74
+ // Other (.hwp, .json, .cwk, .mcw, .dif, .sxg)
75
+ "application/json",
76
+ "application/x-hwp",
77
+ "application/clarisworks",
78
+ "application/x-dif",
79
+ "application/vnd.sun.xml.writer.global"
80
+ ]);
81
+
82
+ // src/ai-generate.utils.ts
83
+ function aiGenerateInputFromSimplified(prompt, content) {
84
+ if (content === void 0) {
85
+ return {
86
+ prompt
87
+ };
88
+ }
89
+ return {
90
+ system: prompt,
91
+ messages: [
92
+ {
93
+ role: "user",
94
+ content
95
+ }
96
+ ]
97
+ };
98
+ }
99
+ __name(aiGenerateInputFromSimplified, "aiGenerateInputFromSimplified");
100
+ // Annotate the CommonJS export names for ESM import in node:
101
+ 0 && (module.exports = {
102
+ UNSTRUCTURED_SUPPORTED_MEDIA_TYPES,
103
+ aiGenerateInputFromSimplified
104
+ });
@@ -0,0 +1,79 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
4
+ // src/unstructured-types.ts
5
+ var UNSTRUCTURED_SUPPORTED_MEDIA_TYPES = /* @__PURE__ */ new Set([
6
+ // PDF
7
+ "application/pdf",
8
+ // Word processing (.doc, .docx, .dot, .dotm, .zabw)
9
+ "application/msword",
10
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
11
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
12
+ "application/vnd.oasis.opendocument.text",
13
+ "application/rtf",
14
+ "text/rtf",
15
+ "application/x-abiword",
16
+ // Spreadsheets (.xls, .xlsx, .fods, .csv, .tsv, .dbf, .et, .mw)
17
+ "application/vnd.ms-excel",
18
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
19
+ "application/vnd.oasis.opendocument.spreadsheet",
20
+ "text/csv",
21
+ "text/tab-separated-values",
22
+ "application/dbase",
23
+ "application/x-et",
24
+ // Presentations (.ppt, .pptx, .pptm, .pot)
25
+ "application/vnd.ms-powerpoint",
26
+ "application/vnd.openxmlformats-officedocument.presentationml.presentation",
27
+ "application/vnd.openxmlformats-officedocument.presentationml.template",
28
+ // Images — OCR (.bmp, .heic, .jpeg, .jpg, .png, .prn, .tiff)
29
+ "image/jpeg",
30
+ "image/jpg",
31
+ "image/png",
32
+ "image/tiff",
33
+ "image/bmp",
34
+ "image/heic",
35
+ // Email (.eml, .msg, .p7s)
36
+ "message/rfc822",
37
+ "application/vnd.ms-outlook",
38
+ "application/pkcs7-signature",
39
+ // Web/Markup (.htm, .html, .md, .rst, .xml, .org)
40
+ "text/html",
41
+ "text/markdown",
42
+ "text/x-rst",
43
+ "text/x-org",
44
+ "application/xml",
45
+ "text/xml",
46
+ // Text (.txt)
47
+ "text/plain",
48
+ // eBook (.epub)
49
+ "application/epub+zip",
50
+ // Other (.hwp, .json, .cwk, .mcw, .dif, .sxg)
51
+ "application/json",
52
+ "application/x-hwp",
53
+ "application/clarisworks",
54
+ "application/x-dif",
55
+ "application/vnd.sun.xml.writer.global"
56
+ ]);
57
+
58
+ // src/ai-generate.utils.ts
59
+ function aiGenerateInputFromSimplified(prompt, content) {
60
+ if (content === void 0) {
61
+ return {
62
+ prompt
63
+ };
64
+ }
65
+ return {
66
+ system: prompt,
67
+ messages: [
68
+ {
69
+ role: "user",
70
+ content
71
+ }
72
+ ]
73
+ };
74
+ }
75
+ __name(aiGenerateInputFromSimplified, "aiGenerateInputFromSimplified");
76
+ export {
77
+ UNSTRUCTURED_SUPPORTED_MEDIA_TYPES,
78
+ aiGenerateInputFromSimplified
79
+ };
@@ -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.0",
3
+ "version": "3.9.2",
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",
@@ -40,10 +40,9 @@
40
40
  "type": "module",
41
41
  "repository": {
42
42
  "type": "git",
43
- "url": "git+https://github.com/lua-ai-global/lua-core-services.git",
44
- "directory": "packages/lua-cli"
43
+ "url": "git+https://github.com/lua-ai-global/lua-cli.git"
45
44
  },
46
- "homepage": "https://github.com/lua-ai-global/lua-core-services/tree/main/packages/lua-cli#readme",
45
+ "homepage": "https://github.com/lua-ai-global/lua-cli#readme",
47
46
  "readme": "README.md",
48
47
  "bugs": {
49
48
  "url": "https://github.com/lua-ai-global/lua-cli/issues"
@@ -83,6 +82,9 @@
83
82
  "bundledDependencies": [
84
83
  "@lua/shared-types"
85
84
  ],
85
+ "optionalDependencies": {
86
+ "keytar": "^7.9.0"
87
+ },
86
88
  "devDependencies": {
87
89
  "@types/diff": "^7.0.2",
88
90
  "@types/inquirer": "^9.0.9",
@@ -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.0",
23
+ "lua-cli": "^3.9.2",
24
24
  "openai": "^5.23.0",
25
25
  "uuid": "^13.0.0",
26
26
  "zod": "^3.24.1"