lua-cli 3.10.5 → 3.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -0
- package/dist/api/agents.api.service.d.ts +21 -0
- package/dist/api/agents.api.service.d.ts.map +1 -0
- package/dist/api/agents.api.service.js +49 -0
- package/dist/api/agents.api.service.js.map +1 -0
- package/dist/api/device-trigger.api.service.d.ts +136 -0
- package/dist/api/device-trigger.api.service.d.ts.map +1 -0
- package/dist/api/device-trigger.api.service.js +120 -0
- package/dist/api/device-trigger.api.service.js.map +1 -0
- package/dist/api/lazy-instances.d.ts +8 -0
- package/dist/api/lazy-instances.d.ts.map +1 -1
- package/dist/api/lazy-instances.js +16 -0
- package/dist/api/lazy-instances.js.map +1 -1
- package/dist/api/unifiedto.api.service.d.ts +18 -1
- package/dist/api/unifiedto.api.service.d.ts.map +1 -1
- package/dist/api/unifiedto.api.service.js +26 -0
- package/dist/api/unifiedto.api.service.js.map +1 -1
- package/dist/api-exports.d.ts +57 -2
- package/dist/api-exports.d.ts.map +1 -1
- package/dist/api-exports.js +36 -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 +57 -3
- package/dist/cli/command-definitions.js.map +1 -1
- package/dist/commands/governance.d.ts +7 -0
- package/dist/commands/governance.d.ts.map +1 -0
- package/dist/commands/governance.js +256 -0
- package/dist/commands/governance.js.map +1 -0
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/integrations.d.ts.map +1 -1
- package/dist/commands/integrations.js +456 -80
- package/dist/commands/integrations.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +25 -27
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +67 -1
- 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/compiler.d.ts.map +1 -1
- package/dist/compiler/compiler.js +13 -0
- package/dist/compiler/compiler.js.map +1 -1
- package/dist/compiler/plugins/agent.plugin.d.ts +5 -0
- package/dist/compiler/plugins/agent.plugin.d.ts.map +1 -1
- package/dist/compiler/plugins/agent.plugin.js +13 -0
- package/dist/compiler/plugins/agent.plugin.js.map +1 -1
- package/dist/compiler/plugins/base.d.ts +28 -0
- package/dist/compiler/plugins/base.d.ts.map +1 -1
- package/dist/compiler/plugins/base.js.map +1 -1
- package/dist/compiler/plugins/device-trigger.plugin.d.ts +38 -0
- package/dist/compiler/plugins/device-trigger.plugin.d.ts.map +1 -0
- package/dist/compiler/plugins/device-trigger.plugin.js +103 -0
- package/dist/compiler/plugins/device-trigger.plugin.js.map +1 -0
- package/dist/compiler/plugins/device.plugin.d.ts +2 -9
- package/dist/compiler/plugins/device.plugin.d.ts.map +1 -1
- package/dist/compiler/plugins/device.plugin.js +2 -204
- package/dist/compiler/plugins/device.plugin.js.map +1 -1
- 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/plugins/skill.plugin.d.ts +7 -3
- package/dist/compiler/plugins/skill.plugin.d.ts.map +1 -1
- package/dist/compiler/plugins/skill.plugin.js +22 -4
- package/dist/compiler/plugins/skill.plugin.js.map +1 -1
- package/dist/compiler/types.d.ts +21 -35
- 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/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/agent.d.ts +3 -1
- package/dist/interfaces/agent.d.ts.map +1 -1
- package/dist/interfaces/device-triggers.d.ts +82 -0
- package/dist/interfaces/device-triggers.d.ts.map +1 -0
- package/dist/interfaces/device-triggers.js +6 -0
- package/dist/interfaces/device-triggers.js.map +1 -0
- package/dist/interfaces/unifiedto.d.ts +19 -0
- package/dist/interfaces/unifiedto.d.ts.map +1 -1
- package/dist/primitives/agent.handler.d.ts +7 -2
- package/dist/primitives/agent.handler.d.ts.map +1 -1
- package/dist/primitives/agent.handler.js +43 -6
- package/dist/primitives/agent.handler.js.map +1 -1
- package/dist/primitives/base.handler.d.ts +76 -3
- package/dist/primitives/base.handler.d.ts.map +1 -1
- package/dist/primitives/base.handler.js +99 -8
- package/dist/primitives/base.handler.js.map +1 -1
- package/dist/primitives/device-trigger.handler.d.ts +56 -0
- package/dist/primitives/device-trigger.handler.d.ts.map +1 -0
- package/dist/primitives/device-trigger.handler.js +100 -0
- package/dist/primitives/device-trigger.handler.js.map +1 -0
- package/dist/primitives/device.handler.d.ts.map +1 -1
- package/dist/primitives/device.handler.js +0 -2
- package/dist/primitives/device.handler.js.map +1 -1
- 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/primitives/mcp-server.handler.d.ts +46 -22
- package/dist/primitives/mcp-server.handler.d.ts.map +1 -1
- package/dist/primitives/mcp-server.handler.js +52 -21
- package/dist/primitives/mcp-server.handler.js.map +1 -1
- package/dist/types/skill.d.ts +65 -8
- package/dist/types/skill.d.ts.map +1 -1
- package/dist/types/skill.js +18 -0
- package/dist/types/skill.js.map +1 -1
- package/dist/types/yaml.types.d.ts +7 -0
- package/dist/types/yaml.types.d.ts.map +1 -1
- package/dist/utils/artifact-loader.d.ts +2 -1
- package/dist/utils/artifact-loader.d.ts.map +1 -1
- package/dist/utils/artifact-loader.js +3 -0
- package/dist/utils/artifact-loader.js.map +1 -1
- package/dist/utils/sandbox.d.ts.map +1 -1
- package/dist/utils/sandbox.js +10 -0
- package/dist/utils/sandbox.js.map +1 -1
- package/dist/utils/sync-display.d.ts +1 -0
- package/dist/utils/sync-display.d.ts.map +1 -1
- package/dist/utils/sync-display.js +8 -0
- package/dist/utils/sync-display.js.map +1 -1
- package/dist/utils/sync-fetch.d.ts +9 -2
- package/dist/utils/sync-fetch.d.ts.map +1 -1
- package/dist/utils/sync-fetch.js +21 -7
- package/dist/utils/sync-fetch.js.map +1 -1
- package/dist/utils/sync-helpers.d.ts +2 -2
- package/dist/utils/sync-helpers.d.ts.map +1 -1
- package/dist/utils/sync-helpers.js +2 -2
- package/dist/utils/sync-helpers.js.map +1 -1
- package/docs/README.md +1 -1
- package/node_modules/@lua/shared-types/dist/index.d.mts +122 -1
- package/node_modules/@lua/shared-types/dist/index.d.ts +122 -1
- package/node_modules/@lua/shared-types/src/agent-config.types.ts +31 -0
- package/node_modules/@lua/shared-types/src/agent-invocation.types.ts +73 -0
- package/node_modules/@lua/shared-types/src/device.types.ts +18 -0
- package/node_modules/@lua/shared-types/src/index.ts +2 -0
- package/package.json +2 -1
- package/template/package.json +1 -1
|
@@ -105,6 +105,34 @@ export interface CompilationPlugin {
|
|
|
105
105
|
* @returns Transformed artifact
|
|
106
106
|
*/
|
|
107
107
|
postProcess?(artifact: BundledArtifact, metadata: PrimitiveMetadata): BundledArtifact;
|
|
108
|
+
/**
|
|
109
|
+
* Optional: produce the artifact directly, bypassing esbuild.
|
|
110
|
+
*
|
|
111
|
+
* For primitives whose artifact is never loaded at runtime for a given
|
|
112
|
+
* metadata shape. When this returns an artifact, the compiler skips
|
|
113
|
+
* `generateEntryPoint → bundler.bundle → postProcess → extractSchemas`
|
|
114
|
+
* for that primitive and uses the returned artifact as-is. Return
|
|
115
|
+
* `undefined` (or omit the method) to fall back to the default esbuild
|
|
116
|
+
* path — useful for conditional opt-outs.
|
|
117
|
+
*
|
|
118
|
+
* Current implementers:
|
|
119
|
+
* - `SkillPlugin` — unconditional; skills have no executable code and
|
|
120
|
+
* `SkillHandler.prepareForPush()` only loads tool artifacts, never the
|
|
121
|
+
* skill's own.
|
|
122
|
+
*
|
|
123
|
+
* Candidate extensions (implement conditionally):
|
|
124
|
+
* - `AgentPlugin` — when `!hasModelResolver` (static `model: 'gpt-4o'`).
|
|
125
|
+
* `AgentHandler` skips `loadArtifact` in that case
|
|
126
|
+
* (`agent.handler.ts:95-107`).
|
|
127
|
+
* - `MCPServerPlugin` — when `!hasUrlResolver && !hasHeadersResolver`
|
|
128
|
+
* (static URL + static headers). `MCPServerHandler.loadBundledServers`
|
|
129
|
+
* skips `loadArtifact` in that case (`mcp-server.handler.ts:67-68`).
|
|
130
|
+
*
|
|
131
|
+
* @param metadata - The primitive metadata
|
|
132
|
+
* @returns Artifact to use, `undefined` to fall back to esbuild, or a
|
|
133
|
+
* Promise of either
|
|
134
|
+
*/
|
|
135
|
+
buildArtifact?(metadata: PrimitiveMetadata): BundledArtifact | undefined | Promise<BundledArtifact | undefined>;
|
|
108
136
|
/**
|
|
109
137
|
* Create the manifest entry for this primitive.
|
|
110
138
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/compiler/plugins/base.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/compiler/plugins/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,OAAO,EAAQ,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAEL,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAOrB;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,mDAAmD;IACnD,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC1E,2BAA2B;IAC3B,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,iBAAiB,GAAG,SAAS,CAAC;IAC3D,oBAAoB;IACpB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAMD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC;;;;;;;;OAQG;IACH,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,iBAAiB,EAAE,CAAC;IAEpD;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,GAAG,gBAAgB,CAAC;IAExD;;;;;;;;;;OAUG;IACH,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAAC;IAExD;;;;;;;;;OASG;IACH,cAAc,CAAC,CAAC,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAE/F;;;;;;;;;OASG;IACH,WAAW,CAAC,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,iBAAiB,GAAG,eAAe,CAAC;IAEtF;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,aAAa,CAAC,CACZ,QAAQ,EAAE,iBAAiB,GAC1B,eAAe,GAAG,SAAS,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;IAEtE;;;;;;;;;;OAUG;IACH,eAAe,CACb,QAAQ,EAAE,iBAAiB,EAC3B,aAAa,CAAC,EAAE,iBAAiB,EAAE,GAClC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAElD;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,CAChB,QAAQ,EAAE,iBAAiB,EAC3B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,wBAAwB,GAChC,iBAAiB,EAAE,CAAC;CACxB;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,8BAAsB,UAAU,CAAC,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,CAAE,YAAW,iBAAiB;IAC9G,gDAAgD;IAChD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B,yCAAyC;IACzC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAEtC,uDAAuD;IACvD,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEzC,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAM7C;;;OAGG;IACH,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE;IAYtD;;;;;;;OAOG;IACH,SAAS,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IAuC/F;;;;;;;OAOG;IACH,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IAgD5F;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IA0B3B;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAClC,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,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI;IAE9B;;;;;OAKG;IACH,SAAS,CAAC,mBAAmB,CAC3B,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,GACzC,qBAAqB,GAAG,IAAI;IAmB/B;;;OAGG;IACH,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG;QAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;QAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAA;KAAE;IAYxH,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,gBAAgB;IAMnE;;;;;;OAMG;IACH,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM;IAkC1D;;;OAGG;IACH,SAAS,CAAC,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM;IAQtE;;;OAGG;IACG,cAAc,CAClB,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC/B,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAQjC;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,eAAe;IAgCvF;;;OAGG;IACH,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM;IAQvE;;;OAGG;IACH,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB;cAEjC,aAAa;;;;;;;IASpC,QAAQ,CAAC,eAAe,CACtB,QAAQ,EAAE,iBAAiB,EAC3B,aAAa,CAAC,EAAE,iBAAiB,EAAE,GAClC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAClD;AAMD;;GAEG;AACH,wBAAgB,WAAW,IAAI,gBAAgB,CAE9C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAClF,iBAAiB,CAEnB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAClF,iBAAiB,CAEnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/compiler/plugins/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAuB,IAAI,EAA2B,MAAM,UAAU,CAAC;AAC9E,OAAO,EACL,gBAAgB,GAWjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/compiler/plugins/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Device Trigger compilation plugin.
|
|
3
|
+
*
|
|
4
|
+
* BACKWARD COMPATIBLE: Detects BOTH patterns:
|
|
5
|
+
* 1. Class-based (legacy): new LuaDeviceTrigger({ ... })
|
|
6
|
+
* 2. Function-based (new): const myTrigger = defineDeviceTrigger({ ... })
|
|
7
|
+
*/
|
|
8
|
+
import { Project, ObjectLiteralExpression } from 'ts-morph';
|
|
9
|
+
import { type DeviceTriggerMetadata, type DeviceTriggerMetadataFields, type ValidationResult, type SchemaSet, type CompiledPrimitive, type ManifestPrimitive } from '../types.js';
|
|
10
|
+
import { BasePlugin } from './base.js';
|
|
11
|
+
/**
|
|
12
|
+
* Plugin for compiling device trigger primitives.
|
|
13
|
+
* Extends BasePlugin for common detection/entry point/postProcess logic.
|
|
14
|
+
*/
|
|
15
|
+
export declare class DeviceTriggerPlugin extends BasePlugin<DeviceTriggerMetadataFields> {
|
|
16
|
+
readonly kind = "device-trigger";
|
|
17
|
+
readonly displayName = "Device Trigger";
|
|
18
|
+
readonly defineFunction = "defineDeviceTrigger";
|
|
19
|
+
readonly legacyClassNames: string[];
|
|
20
|
+
/**
|
|
21
|
+
* Extract metadata from device trigger config object.
|
|
22
|
+
*/
|
|
23
|
+
protected extractFromConfig(config: ObjectLiteralExpression, exportName: string, sourcePath: string, position: {
|
|
24
|
+
line: number;
|
|
25
|
+
column: number;
|
|
26
|
+
}, pattern: 'function' | 'class'): DeviceTriggerMetadata | null;
|
|
27
|
+
validate(metadata: DeviceTriggerMetadata): ValidationResult;
|
|
28
|
+
/**
|
|
29
|
+
* Add runtime validation for execute function.
|
|
30
|
+
*/
|
|
31
|
+
protected getRuntimeValidation(): string;
|
|
32
|
+
/**
|
|
33
|
+
* Extract payload schema from device trigger.
|
|
34
|
+
*/
|
|
35
|
+
extractSchemas(metadata: DeviceTriggerMetadata, project: Project): Promise<SchemaSet | undefined>;
|
|
36
|
+
toManifestEntry(compiled: CompiledPrimitive, _allPrimitives?: CompiledPrimitive[]): ManifestPrimitive;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=device-trigger.plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-trigger.plugin.d.ts","sourceRoot":"","sources":["../../../src/compiler/plugins/device-trigger.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAQ,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EAEvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAsC,MAAM,WAAW,CAAC;AAI3E;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,UAAU,CAAC,2BAA2B,CAAC;IAC9E,QAAQ,CAAC,IAAI,oBAAoB;IACjC,QAAQ,CAAC,WAAW,oBAAoB;IACxC,QAAQ,CAAC,cAAc,yBAAyB;IAChD,QAAQ,CAAC,gBAAgB,WAAwB;IAEjD;;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,qBAAqB,GAAG,IAAI;IAe/B,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,GAAG,gBAAgB;IAiB3D;;OAEG;IACH,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAOxC;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,qBAAqB,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAiCvG,eAAe,CAAC,QAAQ,EAAE,iBAAiB,EAAE,cAAc,CAAC,EAAE,iBAAiB,EAAE,GAAG,iBAAiB;CAQtG"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Device Trigger compilation plugin.
|
|
3
|
+
*
|
|
4
|
+
* BACKWARD COMPATIBLE: Detects BOTH patterns:
|
|
5
|
+
* 1. Class-based (legacy): new LuaDeviceTrigger({ ... })
|
|
6
|
+
* 2. Function-based (new): const myTrigger = defineDeviceTrigger({ ... })
|
|
7
|
+
*/
|
|
8
|
+
import { Node } from 'ts-morph';
|
|
9
|
+
import { BasePlugin, validationError, validationWarning } from './base.js';
|
|
10
|
+
import { extractSchemaProperty } from '../utils/ast-helpers.js';
|
|
11
|
+
import { zodToJsonSchema } from '../utils/schema-converter.js';
|
|
12
|
+
/**
|
|
13
|
+
* Plugin for compiling device trigger primitives.
|
|
14
|
+
* Extends BasePlugin for common detection/entry point/postProcess logic.
|
|
15
|
+
*/
|
|
16
|
+
export class DeviceTriggerPlugin extends BasePlugin {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.kind = 'device-trigger';
|
|
20
|
+
this.displayName = 'Device Trigger';
|
|
21
|
+
this.defineFunction = 'defineDeviceTrigger';
|
|
22
|
+
this.legacyClassNames = ['LuaDeviceTrigger'];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Extract metadata from device trigger config object.
|
|
26
|
+
*/
|
|
27
|
+
extractFromConfig(config, exportName, sourcePath, position, pattern) {
|
|
28
|
+
const common = this.extractCommonFields(config, exportName, sourcePath, position);
|
|
29
|
+
if (!common)
|
|
30
|
+
return null;
|
|
31
|
+
return {
|
|
32
|
+
kind: this.kind,
|
|
33
|
+
...common,
|
|
34
|
+
metadata: {
|
|
35
|
+
pattern,
|
|
36
|
+
hasExecute: config.getProperty('execute') !== undefined,
|
|
37
|
+
hasPayloadSchema: config.getProperty('payloadSchema') !== undefined,
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
validate(metadata) {
|
|
42
|
+
const { errors, warnings } = this.baseValidation(metadata);
|
|
43
|
+
if (!metadata.metadata.hasExecute) {
|
|
44
|
+
errors.push(validationError('Device trigger must have an execute function', { line: metadata.line }));
|
|
45
|
+
}
|
|
46
|
+
if (metadata.name && !/^[a-z][a-z0-9_-]*$/.test(metadata.name)) {
|
|
47
|
+
warnings.push(validationWarning('Device trigger name should be lowercase with hyphens or underscores only', { line: metadata.line }));
|
|
48
|
+
}
|
|
49
|
+
return { valid: errors.length === 0, errors, warnings };
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Add runtime validation for execute function.
|
|
53
|
+
*/
|
|
54
|
+
getRuntimeValidation() {
|
|
55
|
+
return `
|
|
56
|
+
if (typeof primitive.primitive?.execute !== 'function') {
|
|
57
|
+
throw new Error('[Lua] Invalid device trigger artifact: execute is not a function');
|
|
58
|
+
}`;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Extract payload schema from device trigger.
|
|
62
|
+
*/
|
|
63
|
+
async extractSchemas(metadata, project) {
|
|
64
|
+
const sourceFile = project.getSourceFile(metadata.sourcePath);
|
|
65
|
+
if (!sourceFile)
|
|
66
|
+
return undefined;
|
|
67
|
+
const varDecl = sourceFile.getVariableDeclaration(metadata.exportName);
|
|
68
|
+
if (!varDecl)
|
|
69
|
+
return undefined;
|
|
70
|
+
const initializer = varDecl.getInitializer();
|
|
71
|
+
if (!initializer || !Node.isCallExpression(initializer))
|
|
72
|
+
return undefined;
|
|
73
|
+
const args = initializer.getArguments();
|
|
74
|
+
if (args.length === 0)
|
|
75
|
+
return undefined;
|
|
76
|
+
const config = args[0];
|
|
77
|
+
if (!Node.isObjectLiteralExpression(config))
|
|
78
|
+
return undefined;
|
|
79
|
+
const schemas = {};
|
|
80
|
+
if (metadata.metadata.hasPayloadSchema) {
|
|
81
|
+
const schemaNode = extractSchemaProperty(config, 'payloadSchema');
|
|
82
|
+
if (schemaNode) {
|
|
83
|
+
try {
|
|
84
|
+
const jsonSchema = await zodToJsonSchema(schemaNode);
|
|
85
|
+
schemas['payload'] = jsonSchema;
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
console.warn(`Warning: Could not convert payloadSchema for ${metadata.name}:`, error);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return Object.keys(schemas).length > 0 ? schemas : undefined;
|
|
93
|
+
}
|
|
94
|
+
toManifestEntry(compiled, _allPrimitives) {
|
|
95
|
+
return {
|
|
96
|
+
...this.baseManifestFields(compiled),
|
|
97
|
+
schemas: compiled.schemas ? {
|
|
98
|
+
payload: compiled.schemas.payload,
|
|
99
|
+
} : undefined,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=device-trigger.plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-trigger.plugin.js","sourceRoot":"","sources":["../../../src/compiler/plugins/device-trigger.plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
* - commands: agent → device (each becomes a Mastra tool at runtime)
|
|
10
10
|
* - triggers: device → agent (each has an execute handler that runs on lua-core)
|
|
11
11
|
*/
|
|
12
|
-
import { ObjectLiteralExpression
|
|
13
|
-
import { type DeviceMetadata, type DeviceMetadataFields, type ValidationResult, type
|
|
12
|
+
import { ObjectLiteralExpression } from 'ts-morph';
|
|
13
|
+
import { type DeviceMetadata, type DeviceMetadataFields, type ValidationResult, type CompiledPrimitive, type ManifestPrimitive } from '../types.js';
|
|
14
14
|
import { BasePlugin } from './base.js';
|
|
15
15
|
/**
|
|
16
16
|
* Plugin for compiling device primitives.
|
|
@@ -29,13 +29,6 @@ export declare class DevicePlugin extends BasePlugin<DeviceMetadataFields> {
|
|
|
29
29
|
column: number;
|
|
30
30
|
}, pattern: 'function' | 'class'): DeviceMetadata | null;
|
|
31
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
32
|
protected getEntryPointFields(metadata: DeviceMetadata): string;
|
|
40
33
|
/**
|
|
41
34
|
* Runtime validation: device artifact must have commands or triggers map.
|
|
@@ -1 +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,
|
|
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,MAAM,UAAU,CAAC;AACzD,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EAEvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAqB,MAAM,WAAW,CAAC;AAG1D;;;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;IAgBxB,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,gBAAgB;IAapD,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM;IAO/D;;OAEG;IACH,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAWxC,eAAe,CAAC,QAAQ,EAAE,iBAAiB,EAAE,cAAc,CAAC,EAAE,iBAAiB,EAAE,GAAG,iBAAiB;CAQtG"}
|
|
@@ -9,12 +9,8 @@
|
|
|
9
9
|
* - commands: agent → device (each becomes a Mastra tool at runtime)
|
|
10
10
|
* - triggers: device → agent (each has an execute handler that runs on lua-core)
|
|
11
11
|
*/
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
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'];
|
|
12
|
+
import { BasePlugin, validationWarning } from './base.js';
|
|
13
|
+
import { extractStringProperty } from '../utils/ast-helpers.js';
|
|
18
14
|
/**
|
|
19
15
|
* Plugin for compiling device primitives.
|
|
20
16
|
* Extends BasePlugin for common detection/entry point/postProcess logic.
|
|
@@ -35,208 +31,25 @@ export class DevicePlugin extends BasePlugin {
|
|
|
35
31
|
if (!common)
|
|
36
32
|
return null;
|
|
37
33
|
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
34
|
return {
|
|
112
35
|
kind: this.kind,
|
|
113
36
|
...common,
|
|
114
37
|
metadata: {
|
|
115
38
|
pattern,
|
|
116
39
|
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
40
|
},
|
|
131
41
|
};
|
|
132
42
|
}
|
|
133
43
|
validate(metadata) {
|
|
134
44
|
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
45
|
if (metadata.name && !/^[a-z][a-z0-9-]*$/.test(metadata.name)) {
|
|
158
46
|
warnings.push(validationWarning('Device name should be lowercase with hyphens only (e.g., "label-printer")', { line: metadata.line }));
|
|
159
47
|
}
|
|
160
48
|
return { valid: errors.length === 0, errors, warnings };
|
|
161
49
|
}
|
|
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
50
|
getEntryPointFields(metadata) {
|
|
236
51
|
const meta = metadata.metadata;
|
|
237
52
|
return [
|
|
238
|
-
`commands: ${JSON.stringify(meta.commandNames)},`,
|
|
239
|
-
`triggers: ${JSON.stringify(meta.triggerNames)},`,
|
|
240
53
|
meta.group ? `group: ${JSON.stringify(meta.group)},` : '',
|
|
241
54
|
].filter(Boolean).join('\n ');
|
|
242
55
|
}
|
|
@@ -255,24 +68,9 @@ export class DevicePlugin extends BasePlugin {
|
|
|
255
68
|
}
|
|
256
69
|
toManifestEntry(compiled, _allPrimitives) {
|
|
257
70
|
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
71
|
return {
|
|
272
72
|
...this.baseManifestFields(compiled),
|
|
273
73
|
group: meta.group,
|
|
274
|
-
commands,
|
|
275
|
-
triggers,
|
|
276
74
|
};
|
|
277
75
|
}
|
|
278
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.plugin.js","sourceRoot":"","sources":["../../../src/compiler/plugins/device.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"device.plugin.js","sourceRoot":"","sources":["../../../src/compiler/plugins/device.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;GAGG;AACH,MAAM,OAAO,YAAa,SAAQ,UAAgC;IAAlE;;QACW,SAAI,GAAG,QAAQ,CAAC;QAChB,gBAAW,GAAG,QAAQ,CAAC;QACvB,mBAAc,GAAG,cAAc,CAAC;QAChC,qBAAgB,GAAG,CAAC,WAAW,CAAC,CAAC;IAqE5C,CAAC;IAnEC;;OAEG;IACO,iBAAiB,CACzB,MAA+B,EAC/B,UAAkB,EAClB,UAAkB,EAClB,QAA0C,EAC1C,OAA6B;QAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClF,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAErD,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,MAAM;YACT,QAAQ,EAAE;gBACR,OAAO;gBACP,KAAK;aACN;SACF,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,QAAwB;QAC/B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAE3D,IAAI,QAAQ,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9D,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAC7B,2EAA2E,EAC3E,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CACxB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC1D,CAAC;IAES,mBAAmB,CAAC,QAAwB;QACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC/B,OAAO;YACL,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;SAC1D,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACO,oBAAoB;QAC5B,OAAO;;;;;;;IAOP,CAAC;IACH,CAAC;IAED,eAAe,CAAC,QAA2B,EAAE,cAAoC;QAC/E,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAgC,CAAC;QAEvD,OAAO;YACL,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;YACpC,KAAK,EAAE,IAAI,CAAC,KAAK;SACA,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -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;AAYnD;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAA6C;;IAsB5D;;;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"}
|
|
@@ -18,6 +18,7 @@ import { MCPServerPlugin } from './mcp-server.plugin.js';
|
|
|
18
18
|
import { SkillPlugin } from './skill.plugin.js';
|
|
19
19
|
import { AgentPlugin } from './agent.plugin.js';
|
|
20
20
|
import { DevicePlugin } from './device.plugin.js';
|
|
21
|
+
import { DeviceTriggerPlugin } from './device-trigger.plugin.js';
|
|
21
22
|
/**
|
|
22
23
|
* Registry of all compilation plugins.
|
|
23
24
|
*
|
|
@@ -40,6 +41,7 @@ export class PluginRegistry {
|
|
|
40
41
|
this.register(new SkillPlugin());
|
|
41
42
|
this.register(new AgentPlugin());
|
|
42
43
|
this.register(new DevicePlugin());
|
|
44
|
+
this.register(new DeviceTriggerPlugin());
|
|
43
45
|
// =========================================================================
|
|
44
46
|
}
|
|
45
47
|
/**
|
|
@@ -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;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/compiler/plugins/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* - tool references (names of tools belonging to this skill)
|
|
15
15
|
*/
|
|
16
16
|
import { SourceFile, ObjectLiteralExpression } from 'ts-morph';
|
|
17
|
-
import { type PrimitiveMetadata, type SkillMetadata, type SkillMetadataFields, type ValidationResult, type CompiledPrimitive, type ManifestPrimitive } from '../types.js';
|
|
17
|
+
import { type PrimitiveMetadata, type SkillMetadata, type SkillMetadataFields, type ValidationResult, type CompiledPrimitive, type ManifestPrimitive, type BundledArtifact } from '../types.js';
|
|
18
18
|
import { BasePlugin, ReferenceResolverContext } from './base.js';
|
|
19
19
|
/**
|
|
20
20
|
* Plugin for compiling skill primitives.
|
|
@@ -51,9 +51,13 @@ export declare class SkillPlugin extends BasePlugin<SkillMetadataFields> {
|
|
|
51
51
|
private extractToolRefsFromMethodCalls;
|
|
52
52
|
validate(metadata: SkillMetadata): ValidationResult;
|
|
53
53
|
/**
|
|
54
|
-
*
|
|
54
|
+
* Skills have no executable code and their artifact is never loaded at
|
|
55
|
+
* runtime (see `SkillHandler.prepareForPush` — it loads tool artifacts
|
|
56
|
+
* but never the skill's own). Emit a JSON metadata artifact instead of
|
|
57
|
+
* running esbuild on `new LuaSkill({...})`, which would otherwise bundle
|
|
58
|
+
* a non-executable shell (LuaSkill is stripped as an external import).
|
|
55
59
|
*/
|
|
56
|
-
|
|
60
|
+
buildArtifact(metadata: PrimitiveMetadata): Promise<BundledArtifact>;
|
|
57
61
|
/**
|
|
58
62
|
* Resolve tool references from this skill.
|
|
59
63
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.plugin.d.ts","sourceRoot":"","sources":["../../../src/compiler/plugins/skill.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"skill.plugin.d.ts","sourceRoot":"","sources":["../../../src/compiler/plugins/skill.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,UAAU,EAAQ,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAErE,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EAExB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EAEtB,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAqB,MAAM,WAAW,CAAC;AAGpF;;;GAGG;AACH,qBAAa,WAAY,SAAQ,UAAU,CAAC,mBAAmB,CAAC;IAC9D,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,WAAW,WAAW;IAC/B,QAAQ,CAAC,cAAc,iBAAiB;IACxC,QAAQ,CAAC,gBAAgB,WAAgB;IAEzC;;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,aAAa,GAAG,IAAI;IAwBvB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,eAAe;IAkDvB;;;OAGG;IACH,OAAO,CAAC,8BAA8B;IA2CtC,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,gBAAgB;IAanD;;;;;;OAMG;IACG,aAAa,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;IAmB1E;;;;;;;OAOG;IACH,iBAAiB,CACf,QAAQ,EAAE,iBAAiB,EAC3B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,wBAAwB,GAChC,iBAAiB,EAAE;IA+CtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;;OAGG;IACH,eAAe,CAAC,QAAQ,EAAE,iBAAiB,EAAE,aAAa,CAAC,EAAE,iBAAiB,EAAE,GAAG,iBAAiB;CAoBrG"}
|