lua-cli 3.9.3 → 3.10.1
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.
- package/dist/api/device.api.service.d.ts +61 -0
- package/dist/api/device.api.service.d.ts.map +1 -0
- package/dist/api/device.api.service.js +72 -0
- package/dist/api/device.api.service.js.map +1 -0
- package/dist/api/lazy-instances.d.ts +1 -0
- package/dist/api/lazy-instances.d.ts.map +1 -1
- package/dist/api/lazy-instances.js +12 -0
- package/dist/api/lazy-instances.js.map +1 -1
- package/dist/api-exports.d.ts +38 -2
- package/dist/api-exports.d.ts.map +1 -1
- package/dist/api-exports.js +45 -2
- package/dist/api-exports.js.map +1 -1
- package/dist/cli/command-definitions.d.ts.map +1 -1
- package/dist/cli/command-definitions.js +75 -11
- package/dist/cli/command-definitions.js.map +1 -1
- package/dist/commands/devices.d.ts +6 -0
- package/dist/commands/devices.d.ts.map +1 -0
- package/dist/commands/devices.js +266 -0
- package/dist/commands/devices.js.map +1 -0
- package/dist/commands/index.d.ts +2 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +2 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/models.d.ts +18 -0
- package/dist/commands/models.d.ts.map +1 -0
- package/dist/commands/models.js +206 -0
- package/dist/commands/models.js.map +1 -0
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +8 -4
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/pushBackup.d.ts.map +1 -1
- package/dist/commands/pushBackup.js +9 -1
- package/dist/commands/pushBackup.js.map +1 -1
- package/dist/commands/sync.d.ts +2 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +116 -17
- package/dist/commands/sync.js.map +1 -1
- package/dist/compiler/agent-traverser.d.ts.map +1 -1
- package/dist/compiler/agent-traverser.js +1 -0
- package/dist/compiler/agent-traverser.js.map +1 -1
- package/dist/compiler/index.d.ts +1 -1
- package/dist/compiler/index.d.ts.map +1 -1
- package/dist/compiler/index.js +1 -1
- package/dist/compiler/index.js.map +1 -1
- package/dist/compiler/plugins/device.plugin.d.ts +46 -0
- package/dist/compiler/plugins/device.plugin.d.ts.map +1 -0
- package/dist/compiler/plugins/device.plugin.js +279 -0
- package/dist/compiler/plugins/device.plugin.js.map +1 -0
- package/dist/compiler/plugins/registry.d.ts.map +1 -1
- package/dist/compiler/plugins/registry.js +2 -0
- package/dist/compiler/plugins/registry.js.map +1 -1
- package/dist/compiler/source-writer.d.ts +17 -1
- package/dist/compiler/source-writer.d.ts.map +1 -1
- package/dist/compiler/source-writer.js +92 -28
- package/dist/compiler/source-writer.js.map +1 -1
- package/dist/compiler/types.d.ts +44 -2
- package/dist/compiler/types.d.ts.map +1 -1
- package/dist/compiler/types.js +1 -0
- package/dist/compiler/types.js.map +1 -1
- package/dist/interfaces/devices.d.ts +75 -0
- package/dist/interfaces/devices.d.ts.map +1 -0
- package/dist/interfaces/devices.js +5 -0
- package/dist/interfaces/devices.js.map +1 -0
- package/dist/primitives/base.handler.d.ts.map +1 -1
- package/dist/primitives/base.handler.js +31 -7
- package/dist/primitives/base.handler.js.map +1 -1
- package/dist/primitives/device.handler.d.ts +57 -0
- package/dist/primitives/device.handler.d.ts.map +1 -0
- package/dist/primitives/device.handler.js +106 -0
- package/dist/primitives/device.handler.js.map +1 -0
- package/dist/primitives/index.d.ts +2 -0
- package/dist/primitives/index.d.ts.map +1 -1
- package/dist/primitives/index.js +4 -0
- package/dist/primitives/index.js.map +1 -1
- package/dist/types/skill.d.ts +98 -0
- package/dist/types/skill.d.ts.map +1 -1
- package/dist/types/skill.js +21 -0
- package/dist/types/skill.js.map +1 -1
- package/dist/types/yaml.types.d.ts +8 -0
- package/dist/types/yaml.types.d.ts.map +1 -1
- package/dist/utils/backup-helpers.d.ts +41 -10
- package/dist/utils/backup-helpers.d.ts.map +1 -1
- package/dist/utils/backup-helpers.js +227 -15
- package/dist/utils/backup-helpers.js.map +1 -1
- package/dist/utils/init-agent.d.ts +8 -1
- package/dist/utils/init-agent.d.ts.map +1 -1
- package/dist/utils/init-agent.js +14 -1
- package/dist/utils/init-agent.js.map +1 -1
- package/dist/utils/init-prompts.d.ts +1 -1
- package/dist/utils/init-prompts.d.ts.map +1 -1
- package/dist/utils/init-prompts.js +7 -20
- package/dist/utils/init-prompts.js.map +1 -1
- package/dist/utils/sandbox-storage.d.ts +6 -0
- package/dist/utils/sandbox-storage.d.ts.map +1 -1
- package/dist/utils/sandbox-storage.js +32 -1
- package/dist/utils/sandbox-storage.js.map +1 -1
- package/dist/utils/sandbox.d.ts.map +1 -1
- package/dist/utils/sandbox.js +23 -0
- package/dist/utils/sandbox.js.map +1 -1
- package/docs/CLI_REFERENCE.md +152 -2
- package/docs/README.md +3 -1
- package/node_modules/@lua/shared-types/dist/index.d.mts +135 -2
- package/node_modules/@lua/shared-types/dist/index.d.ts +135 -2
- package/node_modules/@lua/shared-types/dist/index.js +57 -2
- package/node_modules/@lua/shared-types/dist/index.mjs +55 -1
- package/node_modules/@lua/shared-types/src/channel.type.ts +1 -0
- package/node_modules/@lua/shared-types/src/device.types.ts +172 -0
- package/node_modules/@lua/shared-types/src/index.ts +2 -0
- package/node_modules/@lua/shared-types/src/persona-defaults.ts +59 -0
- package/package.json +1 -1
- package/template/package.json +1 -1
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Devices Command
|
|
3
|
+
* Manages agent device definitions and tests device communication
|
|
4
|
+
*/
|
|
5
|
+
import { withErrorHandling, writeProgress, writeSuccess, writeInfo } from '../utils/cli.js';
|
|
6
|
+
import { BASE_URLS } from '../config/constants.js';
|
|
7
|
+
import { safePrompt } from '../utils/prompt-handler.js';
|
|
8
|
+
import { initializeCommand } from '../utils/command-utils.js';
|
|
9
|
+
import DeviceApi from '../api/device.api.service.js';
|
|
10
|
+
import { trackEvent } from '../services/analytics.js';
|
|
11
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
12
|
+
// Main Command Entry
|
|
13
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
14
|
+
export async function devicesCommand(action, cmdObj) {
|
|
15
|
+
return withErrorHandling(async () => {
|
|
16
|
+
const options = {
|
|
17
|
+
deviceName: cmdObj?.deviceName || null,
|
|
18
|
+
group: cmdObj?.group || null,
|
|
19
|
+
payload: cmdObj?.payload || '{}',
|
|
20
|
+
timeout: cmdObj?.timeout || '30000',
|
|
21
|
+
};
|
|
22
|
+
const { apiKey, agentId } = await initializeCommand();
|
|
23
|
+
const api = new DeviceApi(BASE_URLS.API, apiKey, agentId);
|
|
24
|
+
let selectedAction;
|
|
25
|
+
if (action && ['list', 'status', 'enable', 'disable', 'remove', 'test', 'test-trigger'].includes(action)) {
|
|
26
|
+
selectedAction = action;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
const answer = await safePrompt([
|
|
30
|
+
{
|
|
31
|
+
type: 'list',
|
|
32
|
+
name: 'action',
|
|
33
|
+
message: 'What would you like to do?',
|
|
34
|
+
choices: [
|
|
35
|
+
{ name: '📋 List devices', value: 'list' },
|
|
36
|
+
{ name: '📊 Device status', value: 'status' },
|
|
37
|
+
{ name: '✅ Enable device', value: 'enable' },
|
|
38
|
+
{ name: '⛔ Disable device', value: 'disable' },
|
|
39
|
+
{ name: '🗑️ Remove device', value: 'remove' },
|
|
40
|
+
{ name: '🧪 Test command', value: 'test' },
|
|
41
|
+
{ name: '🔔 Test trigger', value: 'test-trigger' },
|
|
42
|
+
],
|
|
43
|
+
},
|
|
44
|
+
]);
|
|
45
|
+
if (!answer)
|
|
46
|
+
return;
|
|
47
|
+
selectedAction = answer.action;
|
|
48
|
+
}
|
|
49
|
+
switch (selectedAction) {
|
|
50
|
+
case 'list':
|
|
51
|
+
await listDevices(api, options);
|
|
52
|
+
break;
|
|
53
|
+
case 'status':
|
|
54
|
+
await deviceStatus(api, options);
|
|
55
|
+
break;
|
|
56
|
+
case 'enable':
|
|
57
|
+
await enableDevice(api, options);
|
|
58
|
+
break;
|
|
59
|
+
case 'disable':
|
|
60
|
+
await disableDevice(api, options);
|
|
61
|
+
break;
|
|
62
|
+
case 'remove':
|
|
63
|
+
await removeDevice(api, options, cmdObj?.force);
|
|
64
|
+
break;
|
|
65
|
+
case 'test':
|
|
66
|
+
await testCommand(api, options);
|
|
67
|
+
break;
|
|
68
|
+
case 'test-trigger':
|
|
69
|
+
await testTrigger(api, options);
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
trackEvent('cli_devices_completed', {
|
|
73
|
+
action: selectedAction,
|
|
74
|
+
device_name: options.deviceName || undefined,
|
|
75
|
+
non_interactive: !!action,
|
|
76
|
+
});
|
|
77
|
+
}, 'devices');
|
|
78
|
+
}
|
|
79
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
80
|
+
// Actions
|
|
81
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
82
|
+
async function listDevices(api, options) {
|
|
83
|
+
writeProgress('Fetching devices...');
|
|
84
|
+
const response = await api.getDevices();
|
|
85
|
+
if (!response.success || !response.data) {
|
|
86
|
+
throw new Error(response.error?.message || 'Failed to fetch devices');
|
|
87
|
+
}
|
|
88
|
+
const devices = response.data.devices || response.data;
|
|
89
|
+
if (!Array.isArray(devices) || devices.length === 0) {
|
|
90
|
+
writeInfo('No devices registered. Connect a device using @lua/device-client.');
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
let filtered = devices;
|
|
94
|
+
if (options.group) {
|
|
95
|
+
filtered = devices.filter((d) => d.group === options.group);
|
|
96
|
+
if (filtered.length === 0) {
|
|
97
|
+
writeInfo(`No devices found in group '${options.group}'.`);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
console.log(`\n Devices (${filtered.length}):\n`);
|
|
102
|
+
for (const d of filtered) {
|
|
103
|
+
const statusIcon = d.active === false ? '⛔' : '📡';
|
|
104
|
+
console.log(` ${statusIcon} ${d.name}${d.group ? ` [${d.group}]` : ''}`);
|
|
105
|
+
console.log(` ID: ${d.id}`);
|
|
106
|
+
if (d.description)
|
|
107
|
+
console.log(` ${d.description}`);
|
|
108
|
+
console.log('');
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
async function deviceStatus(api, options) {
|
|
112
|
+
const name = await resolveDeviceName(api, options.deviceName, 'Check status of');
|
|
113
|
+
writeProgress(`Checking status of '${name}'...`);
|
|
114
|
+
const response = await api.getDeviceStatus(name);
|
|
115
|
+
if (!response.success) {
|
|
116
|
+
throw new Error(response.error?.message || 'Failed to get device status');
|
|
117
|
+
}
|
|
118
|
+
const status = response.data.status;
|
|
119
|
+
const icon = status === 'online' ? '🟢' : status === 'disabled' ? '⛔' : '🔴';
|
|
120
|
+
writeSuccess(`${icon} Device '${name}' is ${status}`);
|
|
121
|
+
}
|
|
122
|
+
async function enableDevice(api, options) {
|
|
123
|
+
const name = await resolveDeviceName(api, options.deviceName, 'Enable');
|
|
124
|
+
writeProgress(`Enabling '${name}'...`);
|
|
125
|
+
const response = await api.enableDevice(name);
|
|
126
|
+
if (!response.success) {
|
|
127
|
+
throw new Error(response.error?.message || 'Failed to enable device');
|
|
128
|
+
}
|
|
129
|
+
writeSuccess(`Device '${name}' enabled`);
|
|
130
|
+
}
|
|
131
|
+
async function disableDevice(api, options) {
|
|
132
|
+
const name = await resolveDeviceName(api, options.deviceName, 'Disable');
|
|
133
|
+
writeProgress(`Disabling '${name}'...`);
|
|
134
|
+
const response = await api.disableDevice(name);
|
|
135
|
+
if (!response.success) {
|
|
136
|
+
throw new Error(response.error?.message || 'Failed to disable device');
|
|
137
|
+
}
|
|
138
|
+
writeSuccess(`Device '${name}' disabled`);
|
|
139
|
+
}
|
|
140
|
+
async function removeDevice(api, options, force) {
|
|
141
|
+
const name = await resolveDeviceName(api, options.deviceName, 'Remove');
|
|
142
|
+
if (!force) {
|
|
143
|
+
const confirm = await safePrompt([
|
|
144
|
+
{ type: 'confirm', name: 'yes', message: `Remove device '${name}'? This cannot be undone.`, default: false },
|
|
145
|
+
]);
|
|
146
|
+
if (!confirm?.yes) {
|
|
147
|
+
console.log('Cancelled.');
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
writeProgress(`Removing '${name}'...`);
|
|
152
|
+
const response = await api.deleteDevice(name);
|
|
153
|
+
if (!response.success) {
|
|
154
|
+
throw new Error(response.error?.message || 'Failed to remove device');
|
|
155
|
+
}
|
|
156
|
+
writeSuccess(`Device '${name}' removed`);
|
|
157
|
+
}
|
|
158
|
+
async function testCommand(api, options) {
|
|
159
|
+
const name = await resolveDeviceName(api, options.deviceName, 'Test command on');
|
|
160
|
+
let command;
|
|
161
|
+
if (cmdHasPositionalCommand(options)) {
|
|
162
|
+
command = options.command;
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
const answer = await safePrompt([
|
|
166
|
+
{ type: 'input', name: 'command', message: 'Command name:' },
|
|
167
|
+
]);
|
|
168
|
+
if (!answer?.command)
|
|
169
|
+
return;
|
|
170
|
+
command = answer.command;
|
|
171
|
+
}
|
|
172
|
+
let payload;
|
|
173
|
+
try {
|
|
174
|
+
payload = JSON.parse(options.payload || '{}');
|
|
175
|
+
}
|
|
176
|
+
catch {
|
|
177
|
+
throw new Error(`Invalid JSON payload: ${options.payload}`);
|
|
178
|
+
}
|
|
179
|
+
const timeout = parseInt(options.timeout || '30000');
|
|
180
|
+
console.log(`\n Sending '${command}' to device '${name}'...`);
|
|
181
|
+
const start = Date.now();
|
|
182
|
+
const response = await api.sendCommand(name, command, payload, timeout);
|
|
183
|
+
const latency = Date.now() - start;
|
|
184
|
+
if (response.success && response.data) {
|
|
185
|
+
const data = response.data;
|
|
186
|
+
if (data.success !== false) {
|
|
187
|
+
writeSuccess(`Response received (${latency}ms):`);
|
|
188
|
+
console.log(JSON.stringify(data.data || data, null, 2));
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
console.log(`\n ❌ Device returned error (${latency}ms):`);
|
|
192
|
+
console.log(` ${data.error || 'Unknown error'}`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
const msg = response.error?.message || 'Command failed';
|
|
197
|
+
if (msg.includes('offline')) {
|
|
198
|
+
console.log(`\n ❌ Device '${name}' is offline`);
|
|
199
|
+
}
|
|
200
|
+
else if (msg.includes('timed out')) {
|
|
201
|
+
console.log(`\n ❌ Command timed out after ${timeout}ms`);
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
throw new Error(msg);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
async function testTrigger(api, options) {
|
|
209
|
+
const name = await resolveDeviceName(api, options.deviceName, 'Test trigger on');
|
|
210
|
+
let triggerName;
|
|
211
|
+
const answer = await safePrompt([
|
|
212
|
+
{ type: 'input', name: 'trigger', message: 'Trigger name:' },
|
|
213
|
+
]);
|
|
214
|
+
if (!answer?.trigger)
|
|
215
|
+
return;
|
|
216
|
+
triggerName = answer.trigger;
|
|
217
|
+
let payload;
|
|
218
|
+
try {
|
|
219
|
+
payload = JSON.parse(options.payload || '{}');
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
throw new Error(`Invalid JSON payload: ${options.payload}`);
|
|
223
|
+
}
|
|
224
|
+
console.log(`\n Simulating trigger '${triggerName}' on device '${name}'...`);
|
|
225
|
+
writeInfo('Note: This sends the trigger through the full execution pipeline on the server.');
|
|
226
|
+
// test-trigger sends a command to the server to simulate a trigger
|
|
227
|
+
// This could be a dedicated endpoint, but for now we use the command endpoint
|
|
228
|
+
// with a special command name that the gateway recognizes
|
|
229
|
+
const response = await api.sendCommand(name, `__test_trigger__${triggerName}`, payload, parseInt(options.timeout || '30000'));
|
|
230
|
+
if (response.success) {
|
|
231
|
+
writeSuccess('Trigger sent successfully. Check agent logs for execution results.');
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
console.log(`\n ❌ ${response.error?.message || 'Failed to send trigger'}`);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
238
|
+
// Helpers
|
|
239
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
240
|
+
async function resolveDeviceName(api, name, actionLabel) {
|
|
241
|
+
if (name)
|
|
242
|
+
return name;
|
|
243
|
+
const response = await api.getDevices();
|
|
244
|
+
const devices = response.data?.devices || response.data || [];
|
|
245
|
+
if (!Array.isArray(devices) || devices.length === 0) {
|
|
246
|
+
throw new Error('No devices registered.');
|
|
247
|
+
}
|
|
248
|
+
const answer = await safePrompt([
|
|
249
|
+
{
|
|
250
|
+
type: 'list',
|
|
251
|
+
name: 'device',
|
|
252
|
+
message: `${actionLabel} which device?`,
|
|
253
|
+
choices: devices.map((d) => ({
|
|
254
|
+
name: `${d.name}${d.group ? ` [${d.group}]` : ''}`,
|
|
255
|
+
value: d.name,
|
|
256
|
+
})),
|
|
257
|
+
},
|
|
258
|
+
]);
|
|
259
|
+
if (!answer?.device)
|
|
260
|
+
throw new Error('No device selected.');
|
|
261
|
+
return answer.device;
|
|
262
|
+
}
|
|
263
|
+
function cmdHasPositionalCommand(options) {
|
|
264
|
+
return !!options.command;
|
|
265
|
+
}
|
|
266
|
+
//# sourceMappingURL=devices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devices.js","sourceRoot":"","sources":["../../src/commands/devices.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export { logsCommand } from "./logs.js";
|
|
|
20
20
|
export { completionCommand } from "./completion.js";
|
|
21
21
|
export { skillsCommand } from "./skills.js";
|
|
22
22
|
export { webhooksCommand } from "./webhooks.js";
|
|
23
|
+
export { devicesCommand } from "./devices.js";
|
|
23
24
|
export { jobsCommand } from "./jobs.js";
|
|
24
25
|
export { featuresCommand } from "./features.js";
|
|
25
26
|
export { preprocessorsCommand } from "./preprocessors.js";
|
|
@@ -31,4 +32,5 @@ export { integrationsCommand } from "./integrations.js";
|
|
|
31
32
|
export { agentsCommand } from "./agents.js";
|
|
32
33
|
export { updateCommand } from "./update.js";
|
|
33
34
|
export { telemetryCommand } from "./telemetry.js";
|
|
35
|
+
export { modelsCommand } from "./models.js";
|
|
34
36
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/commands/index.js
CHANGED
|
@@ -20,6 +20,7 @@ export { logsCommand } from "./logs.js";
|
|
|
20
20
|
export { completionCommand } from "./completion.js";
|
|
21
21
|
export { skillsCommand } from "./skills.js";
|
|
22
22
|
export { webhooksCommand } from "./webhooks.js";
|
|
23
|
+
export { devicesCommand } from "./devices.js";
|
|
23
24
|
export { jobsCommand } from "./jobs.js";
|
|
24
25
|
export { featuresCommand } from "./features.js";
|
|
25
26
|
export { preprocessorsCommand } from "./preprocessors.js";
|
|
@@ -31,4 +32,5 @@ export { integrationsCommand } from "./integrations.js";
|
|
|
31
32
|
export { agentsCommand } from "./agents.js";
|
|
32
33
|
export { updateCommand } from "./update.js";
|
|
33
34
|
export { telemetryCommand } from "./telemetry.js";
|
|
35
|
+
export { modelsCommand } from "./models.js";
|
|
34
36
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Models Command
|
|
3
|
+
* Lists available LLM models and optionally sets the model for the current project.
|
|
4
|
+
*/
|
|
5
|
+
interface ModelsCommandOptions {
|
|
6
|
+
model?: string;
|
|
7
|
+
json?: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Main models command handler.
|
|
11
|
+
*
|
|
12
|
+
* Actions:
|
|
13
|
+
* - list (default): display all approved models, mark the current one
|
|
14
|
+
* - set: interactively select (or non-interactively via --model) and apply it
|
|
15
|
+
*/
|
|
16
|
+
export declare function modelsCommand(action: string | undefined, opts: ModelsCommandOptions): Promise<void>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/commands/models.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,UAAU,oBAAoB;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAyED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,IAAI,CAAC,CAyIf"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Models Command
|
|
3
|
+
* Lists available LLM models and optionally sets the model for the current project.
|
|
4
|
+
*/
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
import { withErrorHandling, writeSuccess, writeInfo, writeError, writeProgress } from '../utils/cli.js';
|
|
7
|
+
import { getToken } from '../services/auth.js';
|
|
8
|
+
import { readYamlConfig } from '../utils/files.js';
|
|
9
|
+
import { fetchApprovedModels, validateModelCode, updateAgentModel, clearAgentModel } from '../utils/init-agent.js';
|
|
10
|
+
import { promptModelSelection } from '../utils/init-prompts.js';
|
|
11
|
+
import { setAgentModel, removeAgentModel } from '../compiler/index.js';
|
|
12
|
+
import { getAgentModel } from '../utils/artifact-loader.js';
|
|
13
|
+
import { fetchServerModel } from '../utils/sync-fetch.js';
|
|
14
|
+
import { trackEvent } from '../services/analytics.js';
|
|
15
|
+
/**
|
|
16
|
+
* Resolves the currently configured model code for the project.
|
|
17
|
+
* Prefers the server (authoritative, always fresh) and falls back
|
|
18
|
+
* to the compiled artifact only when the server call fails entirely.
|
|
19
|
+
*
|
|
20
|
+
* fetchServerModel returns:
|
|
21
|
+
* - model string → agent has this model
|
|
22
|
+
* - '' → agent exists but no model configured
|
|
23
|
+
* - null → API call failed
|
|
24
|
+
*/
|
|
25
|
+
async function resolveCurrentModel(apiKey, agentId) {
|
|
26
|
+
const serverModel = await fetchServerModel(apiKey, agentId);
|
|
27
|
+
if (serverModel)
|
|
28
|
+
return serverModel;
|
|
29
|
+
if (serverModel === '')
|
|
30
|
+
return null;
|
|
31
|
+
// serverModel === null → API failure, fall back to local compiled artifact
|
|
32
|
+
const localModel = getAgentModel();
|
|
33
|
+
return localModel || null;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Displays all available models grouped by provider,
|
|
37
|
+
* highlighting the currently configured model.
|
|
38
|
+
*/
|
|
39
|
+
async function listModels(models, currentModel, opts) {
|
|
40
|
+
if (opts.json) {
|
|
41
|
+
console.log(JSON.stringify({ currentModel, models }, null, 2));
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const providers = [...new Set(models.map(m => m.provider))].sort();
|
|
45
|
+
console.log('');
|
|
46
|
+
console.log('============================================================');
|
|
47
|
+
console.log(' 🧠 Available LLM Models');
|
|
48
|
+
console.log('============================================================');
|
|
49
|
+
console.log('');
|
|
50
|
+
if (currentModel) {
|
|
51
|
+
console.log(` Current model: ${chalk.bold.cyan(currentModel)}`);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
console.log(` Current model: ${chalk.gray('(platform default)')}`);
|
|
55
|
+
}
|
|
56
|
+
console.log('');
|
|
57
|
+
for (const provider of providers) {
|
|
58
|
+
const providerModels = models.filter(m => m.provider === provider);
|
|
59
|
+
console.log(chalk.yellow(` ── ${provider} ──`));
|
|
60
|
+
for (const m of providerModels) {
|
|
61
|
+
const isCurrent = m.code === currentModel;
|
|
62
|
+
const code = isCurrent ? chalk.bold.cyan(m.code.padEnd(30)) : m.code.padEnd(30);
|
|
63
|
+
const desc = chalk.gray(m.description);
|
|
64
|
+
const marker = isCurrent ? chalk.bold.green(' ← current') : '';
|
|
65
|
+
console.log(` ${code} ${desc}${marker}`);
|
|
66
|
+
}
|
|
67
|
+
console.log('');
|
|
68
|
+
}
|
|
69
|
+
console.log('============================================================');
|
|
70
|
+
if (!currentModel) {
|
|
71
|
+
console.log(` 💡 Run ${chalk.cyan('lua models set')} to choose a model for your agent`);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
console.log(` 💡 Run ${chalk.cyan('lua models set')} to change your model`);
|
|
75
|
+
}
|
|
76
|
+
console.log('============================================================');
|
|
77
|
+
console.log('');
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Main models command handler.
|
|
81
|
+
*
|
|
82
|
+
* Actions:
|
|
83
|
+
* - list (default): display all approved models, mark the current one
|
|
84
|
+
* - set: interactively select (or non-interactively via --model) and apply it
|
|
85
|
+
*/
|
|
86
|
+
export async function modelsCommand(action, opts) {
|
|
87
|
+
const resolvedAction = action ?? 'list';
|
|
88
|
+
return withErrorHandling(async () => {
|
|
89
|
+
const apiKey = getToken();
|
|
90
|
+
const config = readYamlConfig();
|
|
91
|
+
const agentId = config?.agent?.agentId;
|
|
92
|
+
// -------------------------------------------------------------------------
|
|
93
|
+
// LIST
|
|
94
|
+
// -------------------------------------------------------------------------
|
|
95
|
+
if (resolvedAction === 'list') {
|
|
96
|
+
writeProgress('🔄 Fetching available models...');
|
|
97
|
+
const models = await fetchApprovedModels(apiKey);
|
|
98
|
+
writeProgress('');
|
|
99
|
+
if (models.length === 0) {
|
|
100
|
+
writeError('❌ Could not fetch models from the server. Check your connection and API key.');
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const currentModel = agentId ? await resolveCurrentModel(apiKey, agentId) : null;
|
|
104
|
+
await listModels(models, currentModel, opts);
|
|
105
|
+
trackEvent('cli_models_listed', {
|
|
106
|
+
models_count: models.length,
|
|
107
|
+
has_current_model: !!currentModel,
|
|
108
|
+
json_output: opts.json ?? false,
|
|
109
|
+
});
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
// -------------------------------------------------------------------------
|
|
113
|
+
// SET
|
|
114
|
+
// -------------------------------------------------------------------------
|
|
115
|
+
if (resolvedAction === 'set') {
|
|
116
|
+
if (!agentId) {
|
|
117
|
+
writeError('❌ No agent configured. Run `lua init` first to set up a project.');
|
|
118
|
+
process.exit(1);
|
|
119
|
+
}
|
|
120
|
+
writeProgress('🔄 Fetching available models...');
|
|
121
|
+
const models = await fetchApprovedModels(apiKey);
|
|
122
|
+
writeProgress('');
|
|
123
|
+
if (models.length === 0) {
|
|
124
|
+
writeError('❌ Could not fetch models from the server. Check your connection and API key.');
|
|
125
|
+
process.exit(1);
|
|
126
|
+
}
|
|
127
|
+
let selectedModel;
|
|
128
|
+
if (opts.model) {
|
|
129
|
+
selectedModel = validateModelCode(models, opts.model);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
const currentModel = await resolveCurrentModel(apiKey, agentId);
|
|
133
|
+
if (!opts.json) {
|
|
134
|
+
writeInfo(` Current model: ${currentModel ? chalk.bold.cyan(currentModel) : chalk.gray('(platform default)')}\n`);
|
|
135
|
+
}
|
|
136
|
+
selectedModel = await promptModelSelection(models);
|
|
137
|
+
}
|
|
138
|
+
if (!selectedModel) {
|
|
139
|
+
writeInfo('ℹ️ No model selected. Keeping existing configuration.');
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
// Write to local source code
|
|
143
|
+
const localWriteOk = setAgentModel(selectedModel);
|
|
144
|
+
if (localWriteOk) {
|
|
145
|
+
writeSuccess(`✅ Model written to source: ${chalk.bold(selectedModel)}`);
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
writeInfo(`⚠️ Could not write model to source file (no LuaAgent constructor found). You can set it manually in your code.`);
|
|
149
|
+
}
|
|
150
|
+
// Push to server
|
|
151
|
+
try {
|
|
152
|
+
await updateAgentModel(apiKey, agentId, selectedModel);
|
|
153
|
+
writeSuccess(`✅ Model pushed to server: ${chalk.bold(selectedModel)}`);
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
writeInfo(`⚠️ Could not push model to server: ${err.message}. Run \`lua push agent\` to retry.`);
|
|
157
|
+
}
|
|
158
|
+
trackEvent('cli_models_set', {
|
|
159
|
+
model: selectedModel,
|
|
160
|
+
local_write_ok: localWriteOk,
|
|
161
|
+
non_interactive: !!opts.model,
|
|
162
|
+
});
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
// -------------------------------------------------------------------------
|
|
166
|
+
// UNSET
|
|
167
|
+
// -------------------------------------------------------------------------
|
|
168
|
+
if (resolvedAction === 'unset') {
|
|
169
|
+
if (!agentId) {
|
|
170
|
+
writeError('❌ No agent configured. Run `lua init` first to set up a project.');
|
|
171
|
+
process.exit(1);
|
|
172
|
+
}
|
|
173
|
+
const currentModel = await resolveCurrentModel(apiKey, agentId);
|
|
174
|
+
if (!currentModel) {
|
|
175
|
+
writeInfo('ℹ️ No model is currently set — the platform default is already in use.');
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
writeInfo(` Current model: ${chalk.bold.cyan(currentModel)}`);
|
|
179
|
+
writeInfo(` This will remove the model and let the Lua platform use its default.\n`);
|
|
180
|
+
// Remove from local source code
|
|
181
|
+
const localRemoveOk = removeAgentModel();
|
|
182
|
+
if (localRemoveOk) {
|
|
183
|
+
writeSuccess('✅ Model removed from source code');
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
writeInfo('⚠️ Could not remove model from source file. Remove the `model` property manually from your LuaAgent config.');
|
|
187
|
+
}
|
|
188
|
+
// Clear on server
|
|
189
|
+
try {
|
|
190
|
+
await clearAgentModel(apiKey, agentId);
|
|
191
|
+
writeSuccess('✅ Model cleared on server — platform default will be used');
|
|
192
|
+
}
|
|
193
|
+
catch (err) {
|
|
194
|
+
writeInfo(`⚠️ Could not clear model on server: ${err.message}. Run \`lua push agent\` to retry.`);
|
|
195
|
+
}
|
|
196
|
+
trackEvent('cli_models_unset', {
|
|
197
|
+
previous_model: currentModel,
|
|
198
|
+
local_remove_ok: localRemoveOk,
|
|
199
|
+
});
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
writeError(`❌ Unknown action '${resolvedAction}'. Use 'list', 'set', or 'unset'.`);
|
|
203
|
+
process.exit(1);
|
|
204
|
+
}, 'models');
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/commands/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA8UH;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CA8G5E"}
|
package/dist/commands/push.js
CHANGED
|
@@ -13,7 +13,7 @@ import PersonaApi from '../api/persona.api.service.js';
|
|
|
13
13
|
import { loadManifest, getPrimitivesByKind } from '../utils/artifact-loader.js';
|
|
14
14
|
import { PrimitiveKind } from '../compiler/types.js';
|
|
15
15
|
import { agentHandler } from '../primitives/agent.handler.js';
|
|
16
|
-
import { skillHandler as skillH, webhookHandler as webhookH, jobHandler as jobH, preprocessorHandler as preprocessorH, postprocessorHandler as postprocessorH, } from '../primitives/index.js';
|
|
16
|
+
import { skillHandler as skillH, webhookHandler as webhookH, jobHandler as jobH, preprocessorHandler as preprocessorH, postprocessorHandler as postprocessorH, deviceHandler as deviceH, } from '../primitives/index.js';
|
|
17
17
|
import { pushBackupCommand } from './pushBackup.js';
|
|
18
18
|
import { trackEvent } from '../services/analytics.js';
|
|
19
19
|
// ============================================================================
|
|
@@ -295,7 +295,7 @@ export async function pushCommand(type, cmdObj) {
|
|
|
295
295
|
// Step 1: Check if type was provided as argument
|
|
296
296
|
if (type) {
|
|
297
297
|
// Validate the provided type
|
|
298
|
-
const validTypes = ['skill', 'agent', 'persona', 'webhook', 'job', 'preprocessor', 'postprocessor', 'mcp', 'backup'];
|
|
298
|
+
const validTypes = ['skill', 'agent', 'persona', 'webhook', 'job', 'preprocessor', 'postprocessor', 'mcp', 'device', 'backup'];
|
|
299
299
|
if (!validTypes.includes(type)) {
|
|
300
300
|
console.log('\nUsage:');
|
|
301
301
|
console.log(' lua push - Interactive selection');
|
|
@@ -329,6 +329,7 @@ export async function pushCommand(type, cmdObj) {
|
|
|
329
329
|
{ name: '📥 PreProcessor', value: 'preprocessor' },
|
|
330
330
|
{ name: '📤 PostProcessor', value: 'postprocessor' },
|
|
331
331
|
{ name: '🔌 MCP Server', value: 'mcp' },
|
|
332
|
+
{ name: '📡 Device', value: 'device' },
|
|
332
333
|
{ name: '🤖 Agent (persona, model)', value: 'agent' },
|
|
333
334
|
{ name: '💾 Backup (source files)', value: 'backup' }
|
|
334
335
|
]
|
|
@@ -356,6 +357,9 @@ export async function pushCommand(type, cmdObj) {
|
|
|
356
357
|
else if (selectedType === 'postprocessor') {
|
|
357
358
|
await pushVersionedPrimitive(postprocessorH, options);
|
|
358
359
|
}
|
|
360
|
+
else if (selectedType === 'device') {
|
|
361
|
+
await pushVersionedPrimitive(deviceH, options);
|
|
362
|
+
}
|
|
359
363
|
else if (selectedType === 'mcp') {
|
|
360
364
|
await pushMCPServer(options);
|
|
361
365
|
}
|
|
@@ -567,10 +571,10 @@ async function pushAllCommand(options) {
|
|
|
567
571
|
let backupSuccess = false;
|
|
568
572
|
// Icons per kind for display
|
|
569
573
|
const kindIcons = {
|
|
570
|
-
skill: '📦', webhook: '🪝', job: '⏰', preprocessor: '📥', postprocessor: '📤',
|
|
574
|
+
skill: '📦', webhook: '🪝', job: '⏰', preprocessor: '📥', postprocessor: '📤', device: '📡',
|
|
571
575
|
};
|
|
572
576
|
// Step 4: Pre-fetch highest versions in parallel (one HTTP call per handler type)
|
|
573
|
-
const handlers = [skillH, webhookH, jobH, preprocessorH, postprocessorH];
|
|
577
|
+
const handlers = [skillH, webhookH, jobH, preprocessorH, postprocessorH, deviceH];
|
|
574
578
|
// Collect entity IDs per handler and batch-fetch versions in parallel
|
|
575
579
|
const handlerItems = handlers.map(handler => ({
|
|
576
580
|
handler,
|