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,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Device compilation plugin.
|
|
3
|
+
*
|
|
4
|
+
* Detects BOTH patterns:
|
|
5
|
+
* 1. Class-based (legacy): new LuaDevice({ ... })
|
|
6
|
+
* 2. Function-based (new): const myDevice = defineDevice({ ... })
|
|
7
|
+
*
|
|
8
|
+
* Devices are bidirectional:
|
|
9
|
+
* - commands: agent → device (each becomes a Mastra tool at runtime)
|
|
10
|
+
* - triggers: device → agent (each has an execute handler that runs on lua-core)
|
|
11
|
+
*/
|
|
12
|
+
import { ObjectLiteralExpression, Project } from 'ts-morph';
|
|
13
|
+
import { type DeviceMetadata, type DeviceMetadataFields, type ValidationResult, type SchemaSet, type CompiledPrimitive, type ManifestPrimitive } from '../types.js';
|
|
14
|
+
import { BasePlugin } from './base.js';
|
|
15
|
+
/**
|
|
16
|
+
* Plugin for compiling device primitives.
|
|
17
|
+
* Extends BasePlugin for common detection/entry point/postProcess logic.
|
|
18
|
+
*/
|
|
19
|
+
export declare class DevicePlugin extends BasePlugin<DeviceMetadataFields> {
|
|
20
|
+
readonly kind = "device";
|
|
21
|
+
readonly displayName = "Device";
|
|
22
|
+
readonly defineFunction = "defineDevice";
|
|
23
|
+
readonly legacyClassNames: string[];
|
|
24
|
+
/**
|
|
25
|
+
* Extract metadata from device config object.
|
|
26
|
+
*/
|
|
27
|
+
protected extractFromConfig(config: ObjectLiteralExpression, exportName: string, sourcePath: string, position: {
|
|
28
|
+
line: number;
|
|
29
|
+
column: number;
|
|
30
|
+
}, pattern: 'function' | 'class'): DeviceMetadata | null;
|
|
31
|
+
validate(metadata: DeviceMetadata): ValidationResult;
|
|
32
|
+
/**
|
|
33
|
+
* Add device-specific fields to the entry point's __lua_primitive__ object.
|
|
34
|
+
*/
|
|
35
|
+
/**
|
|
36
|
+
* Extract inputSchema (commands) and payloadSchema (triggers) as JSON Schema.
|
|
37
|
+
*/
|
|
38
|
+
extractSchemas(metadata: DeviceMetadata, project: Project): Promise<SchemaSet | undefined>;
|
|
39
|
+
protected getEntryPointFields(metadata: DeviceMetadata): string;
|
|
40
|
+
/**
|
|
41
|
+
* Runtime validation: device artifact must have commands or triggers map.
|
|
42
|
+
*/
|
|
43
|
+
protected getRuntimeValidation(): string;
|
|
44
|
+
toManifestEntry(compiled: CompiledPrimitive, _allPrimitives?: CompiledPrimitive[]): ManifestPrimitive;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=device.plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device.plugin.d.ts","sourceRoot":"","sources":["../../../src/compiler/plugins/device.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAQ,uBAAuB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EAEvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAsC,MAAM,WAAW,CAAC;AAO3E;;;GAGG;AACH,qBAAa,YAAa,SAAQ,UAAU,CAAC,oBAAoB,CAAC;IAChE,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,YAAY;IAChC,QAAQ,CAAC,cAAc,kBAAkB;IACzC,QAAQ,CAAC,gBAAgB,WAAiB;IAE1C;;OAEG;IACH,SAAS,CAAC,iBAAiB,CACzB,MAAM,EAAE,uBAAuB,EAC/B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAC1C,OAAO,EAAE,UAAU,GAAG,OAAO,GAC5B,cAAc,GAAG,IAAI;IAqGxB,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,gBAAgB;IAmDpD;;OAEG;IACH;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAqEhG,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM;IAS/D;;OAEG;IACH,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAWxC,eAAe,CAAC,QAAQ,EAAE,iBAAiB,EAAE,cAAc,CAAC,EAAE,iBAAiB,EAAE,GAAG,iBAAiB;CAyBtG"}
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Device compilation plugin.
|
|
3
|
+
*
|
|
4
|
+
* Detects BOTH patterns:
|
|
5
|
+
* 1. Class-based (legacy): new LuaDevice({ ... })
|
|
6
|
+
* 2. Function-based (new): const myDevice = defineDevice({ ... })
|
|
7
|
+
*
|
|
8
|
+
* Devices are bidirectional:
|
|
9
|
+
* - commands: agent → device (each becomes a Mastra tool at runtime)
|
|
10
|
+
* - triggers: device → agent (each has an execute handler that runs on lua-core)
|
|
11
|
+
*/
|
|
12
|
+
import { Node } from 'ts-morph';
|
|
13
|
+
import { BasePlugin, validationError, validationWarning } from './base.js';
|
|
14
|
+
import { extractStringProperty, extractSchemaProperty } from '../utils/ast-helpers.js';
|
|
15
|
+
import { zodToJsonSchema } from '../utils/schema-converter.js';
|
|
16
|
+
/** Reserved system trigger names (auto-fired by the gateway) */
|
|
17
|
+
const SYSTEM_TRIGGERS = ['device_connected', 'device_disconnected'];
|
|
18
|
+
/**
|
|
19
|
+
* Plugin for compiling device primitives.
|
|
20
|
+
* Extends BasePlugin for common detection/entry point/postProcess logic.
|
|
21
|
+
*/
|
|
22
|
+
export class DevicePlugin extends BasePlugin {
|
|
23
|
+
constructor() {
|
|
24
|
+
super(...arguments);
|
|
25
|
+
this.kind = 'device';
|
|
26
|
+
this.displayName = 'Device';
|
|
27
|
+
this.defineFunction = 'defineDevice';
|
|
28
|
+
this.legacyClassNames = ['LuaDevice'];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Extract metadata from device config object.
|
|
32
|
+
*/
|
|
33
|
+
extractFromConfig(config, exportName, sourcePath, position, pattern) {
|
|
34
|
+
const common = this.extractCommonFields(config, exportName, sourcePath, position);
|
|
35
|
+
if (!common)
|
|
36
|
+
return null;
|
|
37
|
+
const group = extractStringProperty(config, 'group');
|
|
38
|
+
// Extract command names from commands: { print: {...}, status: {...} }
|
|
39
|
+
const commandNames = [];
|
|
40
|
+
const commandDescriptions = {};
|
|
41
|
+
const commandHasInputSchema = {};
|
|
42
|
+
const commandHasRetry = {};
|
|
43
|
+
const commandRetryConfig = {};
|
|
44
|
+
const commandHasTimeout = {};
|
|
45
|
+
const commandTimeoutMs = {};
|
|
46
|
+
const commandsProp = config.getProperty('commands');
|
|
47
|
+
if (commandsProp && Node.isPropertyAssignment(commandsProp)) {
|
|
48
|
+
const commandsInit = commandsProp.getInitializer();
|
|
49
|
+
if (commandsInit && Node.isObjectLiteralExpression(commandsInit)) {
|
|
50
|
+
for (const prop of commandsInit.getProperties()) {
|
|
51
|
+
if (Node.isPropertyAssignment(prop)) {
|
|
52
|
+
const cmdName = prop.getName();
|
|
53
|
+
commandNames.push(cmdName);
|
|
54
|
+
const cmdObj = prop.getInitializer();
|
|
55
|
+
if (cmdObj && Node.isObjectLiteralExpression(cmdObj)) {
|
|
56
|
+
commandDescriptions[cmdName] = extractStringProperty(cmdObj, 'description') || '';
|
|
57
|
+
commandHasInputSchema[cmdName] = cmdObj.getProperty('inputSchema') !== undefined;
|
|
58
|
+
commandHasRetry[cmdName] = cmdObj.getProperty('retry') !== undefined;
|
|
59
|
+
commandHasTimeout[cmdName] = cmdObj.getProperty('timeoutMs') !== undefined;
|
|
60
|
+
// Extract actual retry config values
|
|
61
|
+
const retryProp = cmdObj.getProperty('retry');
|
|
62
|
+
if (retryProp && Node.isPropertyAssignment(retryProp)) {
|
|
63
|
+
const retryInit = retryProp.getInitializer();
|
|
64
|
+
if (retryInit && Node.isObjectLiteralExpression(retryInit)) {
|
|
65
|
+
try {
|
|
66
|
+
const maxAttempts = parseInt(extractStringProperty(retryInit, 'maxAttempts') || '3');
|
|
67
|
+
const backoffMs = parseInt(extractStringProperty(retryInit, 'backoffMs') || '1000');
|
|
68
|
+
commandRetryConfig[cmdName] = { maxAttempts, backoffMs };
|
|
69
|
+
}
|
|
70
|
+
catch { /* use undefined */ }
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Extract actual timeout value
|
|
74
|
+
const timeoutProp = cmdObj.getProperty('timeoutMs');
|
|
75
|
+
if (timeoutProp && Node.isPropertyAssignment(timeoutProp)) {
|
|
76
|
+
try {
|
|
77
|
+
const timeoutVal = timeoutProp.getInitializer()?.getText();
|
|
78
|
+
if (timeoutVal)
|
|
79
|
+
commandTimeoutMs[cmdName] = parseInt(timeoutVal);
|
|
80
|
+
}
|
|
81
|
+
catch { /* use undefined */ }
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// Extract trigger names from triggers: { paper_low: {...}, error: {...} }
|
|
89
|
+
const triggerNames = [];
|
|
90
|
+
const triggerDescriptions = {};
|
|
91
|
+
const triggerHasPayloadSchema = {};
|
|
92
|
+
const triggerHasExecute = {};
|
|
93
|
+
const triggersProp = config.getProperty('triggers');
|
|
94
|
+
if (triggersProp && Node.isPropertyAssignment(triggersProp)) {
|
|
95
|
+
const triggersInit = triggersProp.getInitializer();
|
|
96
|
+
if (triggersInit && Node.isObjectLiteralExpression(triggersInit)) {
|
|
97
|
+
for (const prop of triggersInit.getProperties()) {
|
|
98
|
+
if (Node.isPropertyAssignment(prop)) {
|
|
99
|
+
const trigName = prop.getName();
|
|
100
|
+
triggerNames.push(trigName);
|
|
101
|
+
const trigObj = prop.getInitializer();
|
|
102
|
+
if (trigObj && Node.isObjectLiteralExpression(trigObj)) {
|
|
103
|
+
triggerDescriptions[trigName] = extractStringProperty(trigObj, 'description') || '';
|
|
104
|
+
triggerHasPayloadSchema[trigName] = trigObj.getProperty('payloadSchema') !== undefined;
|
|
105
|
+
triggerHasExecute[trigName] = trigObj.getProperty('execute') !== undefined;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
kind: this.kind,
|
|
113
|
+
...common,
|
|
114
|
+
metadata: {
|
|
115
|
+
pattern,
|
|
116
|
+
group,
|
|
117
|
+
hasCommands: commandNames.length > 0,
|
|
118
|
+
commandNames,
|
|
119
|
+
commandDescriptions,
|
|
120
|
+
commandHasInputSchema,
|
|
121
|
+
commandHasRetry,
|
|
122
|
+
commandRetryConfig,
|
|
123
|
+
commandHasTimeout,
|
|
124
|
+
commandTimeoutMs,
|
|
125
|
+
hasTriggers: triggerNames.length > 0,
|
|
126
|
+
triggerNames,
|
|
127
|
+
triggerDescriptions,
|
|
128
|
+
triggerHasPayloadSchema,
|
|
129
|
+
triggerHasExecute,
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
validate(metadata) {
|
|
134
|
+
const { errors, warnings } = this.baseValidation(metadata);
|
|
135
|
+
const meta = metadata.metadata;
|
|
136
|
+
if (!meta.hasCommands && !meta.hasTriggers) {
|
|
137
|
+
warnings.push(validationWarning('Device should have at least one command or trigger defined', { line: metadata.line }));
|
|
138
|
+
}
|
|
139
|
+
// Check for duplicate command/trigger names
|
|
140
|
+
const allNames = [...meta.commandNames, ...meta.triggerNames];
|
|
141
|
+
const dupes = allNames.filter((name, i) => allNames.indexOf(name) !== i);
|
|
142
|
+
if (dupes.length > 0) {
|
|
143
|
+
errors.push(validationError(`Device has duplicate command/trigger names: ${dupes.join(', ')}`, { line: metadata.line }));
|
|
144
|
+
}
|
|
145
|
+
// Warn if trigger has payloadSchema but no execute handler
|
|
146
|
+
for (const trigName of meta.triggerNames) {
|
|
147
|
+
if (meta.triggerHasPayloadSchema[trigName] && !meta.triggerHasExecute[trigName]) {
|
|
148
|
+
warnings.push(validationWarning(`Trigger '${trigName}' has a payloadSchema but no execute handler`, { line: metadata.line }));
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
// Warn about system trigger naming
|
|
152
|
+
for (const trigName of meta.triggerNames) {
|
|
153
|
+
if (SYSTEM_TRIGGERS.includes(trigName) && meta.triggerHasPayloadSchema[trigName]) {
|
|
154
|
+
warnings.push(validationWarning(`System trigger '${trigName}' uses a system-provided payload; custom payloadSchema will be ignored`, { line: metadata.line }));
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
if (metadata.name && !/^[a-z][a-z0-9-]*$/.test(metadata.name)) {
|
|
158
|
+
warnings.push(validationWarning('Device name should be lowercase with hyphens only (e.g., "label-printer")', { line: metadata.line }));
|
|
159
|
+
}
|
|
160
|
+
return { valid: errors.length === 0, errors, warnings };
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Add device-specific fields to the entry point's __lua_primitive__ object.
|
|
164
|
+
*/
|
|
165
|
+
/**
|
|
166
|
+
* Extract inputSchema (commands) and payloadSchema (triggers) as JSON Schema.
|
|
167
|
+
*/
|
|
168
|
+
async extractSchemas(metadata, project) {
|
|
169
|
+
const sourceFile = project.getSourceFile(metadata.sourcePath);
|
|
170
|
+
if (!sourceFile)
|
|
171
|
+
return undefined;
|
|
172
|
+
const varDecl = sourceFile.getVariableDeclaration(metadata.exportName);
|
|
173
|
+
if (!varDecl)
|
|
174
|
+
return undefined;
|
|
175
|
+
const initializer = varDecl.getInitializer();
|
|
176
|
+
if (!initializer || !Node.isCallExpression(initializer))
|
|
177
|
+
return undefined;
|
|
178
|
+
const args = initializer.getArguments();
|
|
179
|
+
if (args.length === 0)
|
|
180
|
+
return undefined;
|
|
181
|
+
const config = args[0];
|
|
182
|
+
if (!Node.isObjectLiteralExpression(config))
|
|
183
|
+
return undefined;
|
|
184
|
+
const schemas = {};
|
|
185
|
+
// Extract command inputSchemas
|
|
186
|
+
const commandsProp = config.getProperty('commands');
|
|
187
|
+
if (commandsProp && Node.isPropertyAssignment(commandsProp)) {
|
|
188
|
+
const commandsInit = commandsProp.getInitializer();
|
|
189
|
+
if (commandsInit && Node.isObjectLiteralExpression(commandsInit)) {
|
|
190
|
+
for (const prop of commandsInit.getProperties()) {
|
|
191
|
+
if (Node.isPropertyAssignment(prop)) {
|
|
192
|
+
const cmdName = prop.getName();
|
|
193
|
+
const cmdObj = prop.getInitializer();
|
|
194
|
+
if (cmdObj && Node.isObjectLiteralExpression(cmdObj)) {
|
|
195
|
+
const schemaNode = extractSchemaProperty(cmdObj, 'inputSchema');
|
|
196
|
+
if (schemaNode) {
|
|
197
|
+
try {
|
|
198
|
+
schemas[`command_${cmdName}`] = await zodToJsonSchema(schemaNode);
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
// Schema extraction failed — continue without it
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
// Extract trigger payloadSchemas
|
|
210
|
+
const triggersProp = config.getProperty('triggers');
|
|
211
|
+
if (triggersProp && Node.isPropertyAssignment(triggersProp)) {
|
|
212
|
+
const triggersInit = triggersProp.getInitializer();
|
|
213
|
+
if (triggersInit && Node.isObjectLiteralExpression(triggersInit)) {
|
|
214
|
+
for (const prop of triggersInit.getProperties()) {
|
|
215
|
+
if (Node.isPropertyAssignment(prop)) {
|
|
216
|
+
const trigName = prop.getName();
|
|
217
|
+
const trigObj = prop.getInitializer();
|
|
218
|
+
if (trigObj && Node.isObjectLiteralExpression(trigObj)) {
|
|
219
|
+
const schemaNode = extractSchemaProperty(trigObj, 'payloadSchema');
|
|
220
|
+
if (schemaNode) {
|
|
221
|
+
try {
|
|
222
|
+
schemas[`trigger_${trigName}`] = await zodToJsonSchema(schemaNode);
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
// Schema extraction failed — continue without it
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
return Object.keys(schemas).length > 0 ? schemas : undefined;
|
|
234
|
+
}
|
|
235
|
+
getEntryPointFields(metadata) {
|
|
236
|
+
const meta = metadata.metadata;
|
|
237
|
+
return [
|
|
238
|
+
`commands: ${JSON.stringify(meta.commandNames)},`,
|
|
239
|
+
`triggers: ${JSON.stringify(meta.triggerNames)},`,
|
|
240
|
+
meta.group ? `group: ${JSON.stringify(meta.group)},` : '',
|
|
241
|
+
].filter(Boolean).join('\n ');
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Runtime validation: device artifact must have commands or triggers map.
|
|
245
|
+
*/
|
|
246
|
+
getRuntimeValidation() {
|
|
247
|
+
return `
|
|
248
|
+
const p = primitive.primitive;
|
|
249
|
+
if (!p) {
|
|
250
|
+
throw new Error('[Lua] Invalid device artifact: missing primitive export');
|
|
251
|
+
}
|
|
252
|
+
if (!p.commands && !p.triggers) {
|
|
253
|
+
throw new Error('[Lua] Invalid device artifact: must have commands or triggers');
|
|
254
|
+
}`;
|
|
255
|
+
}
|
|
256
|
+
toManifestEntry(compiled, _allPrimitives) {
|
|
257
|
+
const meta = compiled.metadata;
|
|
258
|
+
const commands = meta.commandNames.map(name => ({
|
|
259
|
+
name,
|
|
260
|
+
description: meta.commandDescriptions[name] || '',
|
|
261
|
+
inputSchema: compiled.schemas?.[`command_${name}`],
|
|
262
|
+
retry: meta.commandRetryConfig[name],
|
|
263
|
+
timeoutMs: meta.commandTimeoutMs[name],
|
|
264
|
+
}));
|
|
265
|
+
const triggers = meta.triggerNames.map(name => ({
|
|
266
|
+
name,
|
|
267
|
+
description: meta.triggerDescriptions[name] || '',
|
|
268
|
+
payloadSchema: compiled.schemas?.[`trigger_${name}`],
|
|
269
|
+
hasExecute: meta.triggerHasExecute[name] || false,
|
|
270
|
+
}));
|
|
271
|
+
return {
|
|
272
|
+
...this.baseManifestFields(compiled),
|
|
273
|
+
group: meta.group,
|
|
274
|
+
commands,
|
|
275
|
+
triggers,
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=device.plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device.plugin.js","sourceRoot":"","sources":["../../../src/compiler/plugins/device.plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/compiler/plugins/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/compiler/plugins/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAWnD;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAA6C;;IAqB5D;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAWzC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIhD;;OAEG;IACH,MAAM,IAAI,iBAAiB,EAAE;IAI7B;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;IAIvB;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF;AAMD;;;GAGG;AACH,eAAO,MAAM,cAAc,gBAAuB,CAAC;AAMnD;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEzF"}
|
|
@@ -17,6 +17,7 @@ import { PostProcessorPlugin } from './postprocessor.plugin.js';
|
|
|
17
17
|
import { MCPServerPlugin } from './mcp-server.plugin.js';
|
|
18
18
|
import { SkillPlugin } from './skill.plugin.js';
|
|
19
19
|
import { AgentPlugin } from './agent.plugin.js';
|
|
20
|
+
import { DevicePlugin } from './device.plugin.js';
|
|
20
21
|
/**
|
|
21
22
|
* Registry of all compilation plugins.
|
|
22
23
|
*
|
|
@@ -38,6 +39,7 @@ export class PluginRegistry {
|
|
|
38
39
|
this.register(new MCPServerPlugin());
|
|
39
40
|
this.register(new SkillPlugin());
|
|
40
41
|
this.register(new AgentPlugin());
|
|
42
|
+
this.register(new DevicePlugin());
|
|
41
43
|
// =========================================================================
|
|
42
44
|
}
|
|
43
45
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/compiler/plugins/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/compiler/plugins/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,7 +65,7 @@ export interface SourceWriteOptions {
|
|
|
65
65
|
*
|
|
66
66
|
* @param updates - Object with property names and their new values (undefined values are skipped)
|
|
67
67
|
* @param options - Optional configuration
|
|
68
|
-
* @returns true if
|
|
68
|
+
* @returns true if the LuaAgent constructor was found and properties were written, false otherwise
|
|
69
69
|
*
|
|
70
70
|
* @example
|
|
71
71
|
* ```typescript
|
|
@@ -105,4 +105,20 @@ export declare function setAgentPersona(persona: string, options?: SourceWriteOp
|
|
|
105
105
|
* @returns true if update succeeded, false otherwise
|
|
106
106
|
*/
|
|
107
107
|
export declare function setAgentModel(model: string, options?: SourceWriteOptions): boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Remove a property from the LuaAgent config object in source code.
|
|
110
|
+
*
|
|
111
|
+
* @param propertyName - Name of the property to remove (e.g. 'model')
|
|
112
|
+
* @param options - Optional configuration
|
|
113
|
+
* @returns true if the LuaAgent constructor was found (property may already be absent), false if not found or on error
|
|
114
|
+
*/
|
|
115
|
+
export declare function removeAgentConfigProperty(propertyName: string, options?: SourceWriteOptions): boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Remove the model property from the LuaAgent config in source code,
|
|
118
|
+
* causing the platform to fall back to its default model.
|
|
119
|
+
*
|
|
120
|
+
* @param options - Optional configuration
|
|
121
|
+
* @returns true if the LuaAgent constructor was found, false if not found or on error
|
|
122
|
+
*/
|
|
123
|
+
export declare function removeAgentModel(options?: SourceWriteOptions): boolean;
|
|
108
124
|
//# sourceMappingURL=source-writer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-writer.d.ts","sourceRoot":"","sources":["../../src/compiler/source-writer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAOH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"source-writer.d.ts","sourceRoot":"","sources":["../../src/compiler/source-writer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAOH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAqCD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC3C,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CA+ET;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAEhF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAEtF;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAElF;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAuCrG;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAEtE"}
|
|
@@ -52,6 +52,40 @@ import { Project, Node } from 'ts-morph';
|
|
|
52
52
|
import fs from 'fs';
|
|
53
53
|
import path from 'path';
|
|
54
54
|
import { findEntryPoint } from './utils/file-discovery.js';
|
|
55
|
+
/**
|
|
56
|
+
* Resolves the entry-point file path for source-writing operations.
|
|
57
|
+
* Checks options.indexFile first, then runs entry-point discovery,
|
|
58
|
+
* falling back to src/index.ts.
|
|
59
|
+
*
|
|
60
|
+
* @returns The resolved path, or null if the file does not exist.
|
|
61
|
+
*/
|
|
62
|
+
function resolveEntryPath(options) {
|
|
63
|
+
let indexPath;
|
|
64
|
+
try {
|
|
65
|
+
if (options?.indexFile) {
|
|
66
|
+
indexPath = options.indexFile;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
const entryPoint = findEntryPoint(options?.projectDir);
|
|
70
|
+
if (entryPoint) {
|
|
71
|
+
indexPath = entryPoint;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
const baseDir = options?.projectDir || process.cwd();
|
|
75
|
+
indexPath = path.join(baseDir, 'src', 'index.ts');
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
const baseDir = options?.projectDir || process.cwd();
|
|
81
|
+
indexPath = path.join(baseDir, 'src', 'index.ts');
|
|
82
|
+
}
|
|
83
|
+
if (!fs.existsSync(indexPath)) {
|
|
84
|
+
console.warn(`Warning: Entry file not found at ${indexPath}`);
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
return indexPath;
|
|
88
|
+
}
|
|
55
89
|
/**
|
|
56
90
|
* Update string properties in the LuaAgent configuration in source code.
|
|
57
91
|
*
|
|
@@ -60,7 +94,7 @@ import { findEntryPoint } from './utils/file-discovery.js';
|
|
|
60
94
|
*
|
|
61
95
|
* @param updates - Object with property names and their new values (undefined values are skipped)
|
|
62
96
|
* @param options - Optional configuration
|
|
63
|
-
* @returns true if
|
|
97
|
+
* @returns true if the LuaAgent constructor was found and properties were written, false otherwise
|
|
64
98
|
*
|
|
65
99
|
* @example
|
|
66
100
|
* ```typescript
|
|
@@ -85,33 +119,9 @@ export function updateAgentConfig(updates, options) {
|
|
|
85
119
|
if (Object.keys(filteredUpdates).length === 0) {
|
|
86
120
|
return true; // Nothing to update
|
|
87
121
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if (options?.indexFile) {
|
|
91
|
-
indexPath = options.indexFile;
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
// Try to find the entry point
|
|
95
|
-
const entryPoint = findEntryPoint(options?.projectDir);
|
|
96
|
-
if (entryPoint) {
|
|
97
|
-
indexPath = entryPoint;
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
// Fallback to src/index.ts
|
|
101
|
-
const baseDir = options?.projectDir || process.cwd();
|
|
102
|
-
indexPath = path.join(baseDir, 'src', 'index.ts');
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
catch {
|
|
107
|
-
// Fallback to src/index.ts if discovery fails
|
|
108
|
-
const baseDir = options?.projectDir || process.cwd();
|
|
109
|
-
indexPath = path.join(baseDir, 'src', 'index.ts');
|
|
110
|
-
}
|
|
111
|
-
if (!fs.existsSync(indexPath)) {
|
|
112
|
-
console.warn(`Warning: Entry file not found at ${indexPath}`);
|
|
122
|
+
const indexPath = resolveEntryPath(options);
|
|
123
|
+
if (!indexPath)
|
|
113
124
|
return false;
|
|
114
|
-
}
|
|
115
125
|
try {
|
|
116
126
|
const project = new Project({ skipAddingFilesFromTsConfig: true });
|
|
117
127
|
const sourceFile = project.addSourceFileAtPath(indexPath);
|
|
@@ -162,7 +172,7 @@ export function updateAgentConfig(updates, options) {
|
|
|
162
172
|
if (updated) {
|
|
163
173
|
sourceFile.saveSync();
|
|
164
174
|
}
|
|
165
|
-
return
|
|
175
|
+
return updated;
|
|
166
176
|
}
|
|
167
177
|
catch (error) {
|
|
168
178
|
console.warn('Warning: Could not update agent config in source:', error);
|
|
@@ -200,6 +210,60 @@ export function setAgentPersona(persona, options) {
|
|
|
200
210
|
export function setAgentModel(model, options) {
|
|
201
211
|
return updateAgentConfig({ model }, options);
|
|
202
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* Remove a property from the LuaAgent config object in source code.
|
|
215
|
+
*
|
|
216
|
+
* @param propertyName - Name of the property to remove (e.g. 'model')
|
|
217
|
+
* @param options - Optional configuration
|
|
218
|
+
* @returns true if the LuaAgent constructor was found (property may already be absent), false if not found or on error
|
|
219
|
+
*/
|
|
220
|
+
export function removeAgentConfigProperty(propertyName, options) {
|
|
221
|
+
const indexPath = resolveEntryPath(options);
|
|
222
|
+
if (!indexPath)
|
|
223
|
+
return false;
|
|
224
|
+
try {
|
|
225
|
+
const project = new Project({ skipAddingFilesFromTsConfig: true });
|
|
226
|
+
const sourceFile = project.addSourceFileAtPath(indexPath);
|
|
227
|
+
let foundConstructor = false;
|
|
228
|
+
let removed = false;
|
|
229
|
+
sourceFile.forEachDescendant((node) => {
|
|
230
|
+
if (Node.isNewExpression(node) && node.getExpression().getText() === 'LuaAgent') {
|
|
231
|
+
const args = node.getArguments();
|
|
232
|
+
if (args.length > 0 && Node.isObjectLiteralExpression(args[0])) {
|
|
233
|
+
foundConstructor = true;
|
|
234
|
+
const configObj = args[0];
|
|
235
|
+
const props = configObj.getProperties();
|
|
236
|
+
for (const prop of props) {
|
|
237
|
+
if (Node.isPropertyAssignment(prop) && prop.getName() === propertyName) {
|
|
238
|
+
prop.remove();
|
|
239
|
+
removed = true;
|
|
240
|
+
break;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
if (removed) {
|
|
247
|
+
sourceFile.saveSync();
|
|
248
|
+
}
|
|
249
|
+
// Success if we found the constructor (property may or may not have been present)
|
|
250
|
+
return foundConstructor;
|
|
251
|
+
}
|
|
252
|
+
catch (error) {
|
|
253
|
+
console.warn('Warning: Could not remove agent config property from source:', error);
|
|
254
|
+
return false;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Remove the model property from the LuaAgent config in source code,
|
|
259
|
+
* causing the platform to fall back to its default model.
|
|
260
|
+
*
|
|
261
|
+
* @param options - Optional configuration
|
|
262
|
+
* @returns true if the LuaAgent constructor was found, false if not found or on error
|
|
263
|
+
*/
|
|
264
|
+
export function removeAgentModel(options) {
|
|
265
|
+
return removeAgentConfigProperty('model', options);
|
|
266
|
+
}
|
|
203
267
|
// =============================================================================
|
|
204
268
|
// FUTURE: GENERIC PRIMITIVE UPDATE TYPES
|
|
205
269
|
// =============================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-writer.js","sourceRoot":"","sources":["../../src/compiler/source-writer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAiB,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAY1E
|
|
1
|
+
{"version":3,"file":"source-writer.js","sourceRoot":"","sources":["../../src/compiler/source-writer.ts"],"names":[],"mappings":"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"}
|