@telorun/kernel 0.2.6 → 0.2.7
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/controller-registry.js +2 -2
- package/dist/controller-registry.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/kernel.d.ts +18 -1
- package/dist/kernel.d.ts.map +1 -1
- package/dist/kernel.js +48 -18
- package/dist/kernel.js.map +1 -1
- package/dist/resource-context.d.ts +9 -5
- package/dist/resource-context.d.ts.map +1 -1
- package/dist/resource-context.js +39 -4
- package/dist/resource-context.js.map +1 -1
- package/dist/schema-valiator.d.ts +6 -1
- package/dist/schema-valiator.d.ts.map +1 -1
- package/dist/schema-valiator.js +64 -3
- package/dist/schema-valiator.js.map +1 -1
- package/package.json +3 -3
- package/src/controller-registry.ts +2 -2
- package/src/index.ts +1 -1
- package/src/kernel.ts +77 -28
- package/src/resource-context.ts +59 -5
- package/src/schema-valiator.ts +78 -12
- package/src/loader.ts +0 -134
|
@@ -100,8 +100,8 @@ export class ControllerRegistry {
|
|
|
100
100
|
const wrappedController = {
|
|
101
101
|
...controller,
|
|
102
102
|
schema: controller.schema ?? definition?.schema,
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
inputType: controller.inputType,
|
|
104
|
+
outputType: controller.outputType,
|
|
105
105
|
};
|
|
106
106
|
this.controllersByKind.set(kind, wrappedController);
|
|
107
107
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller-registry.js","sourceRoot":"","sources":["../src/controller-registry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"controller-registry.js","sourceRoot":"","sources":["../src/controller-registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IAA/B;QACU,sBAAiB,GAAoC,IAAI,GAAG,EAAE,CAAC;QAC/D,sBAAiB,GAAoC,IAAI,GAAG,EAAE,CAAC;QAC/D,sBAAiB,GAAmD,IAAI,GAAG,EAAE,CAAC;IAoLxF,CAAC;IAnLC;;OAEG;IACH,kBAAkB,CAChB,UAA8B;QAI9B,iDAAiD;QACjD,8EAA8E;QAC9E,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC;QACrB,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;QACtC,MAAM,IAAI,GAAG,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAE9E,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAE7C,0DAA0D;QAC1D,IAAI,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;YAC3E,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,IAAY;QACxB,sCAAsC;QACtC,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QAC3C,CAAC;QAED,0CAA0C;QAC1C,mDAAmD;QACnD,gBAAgB;QAChB,uCAAuC;QACvC,kDAAkD;QAClD,uBAAuB;QACvB,IAAI;QACJ,OAAO;YACL,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE;SACxD,CAAC;QACF,iEAAiE;IACnE,CAAC;IAED;;OAEG;IACH,wBAAwB,CAAC,IAAY;QACnC,sCAAsC;QACtC,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,kBAAkB;QAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,QAAyB,EAAE,GAAQ;QAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,IAAY,EAAE,UAA8B;QAC7D,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,qBAAqB,CAAC,CAAC;QACpF,CAAC;QACD,+CAA+C;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,iBAAiB,GAAuB;YAC5C,GAAG,UAAU;YACb,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,UAAU,EAAE,MAAM;YAC/C,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,UAAU,EAAE,UAAU,CAAC,UAAU;SAClC,CAAC;QACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACK,wBAAwB,CAC9B,IAAY,EACZ,UAA8B,EAC9B,SAAiB;QAEjB,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,wCAAwC;QAC3F,IAAI,CAAC,aAAa;YAAE,OAAO;QAE3B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;YAChE,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC;YAEhF,MAAM,UAAU,GACd,OAAO,aAAa,CAAC,QAAQ,KAAK,UAAU;gBAC1C,CAAC,CAAC,aAAa,CAAC,QAAQ;gBACxB,CAAC,CAAC,OAAO,QAAQ,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;oBAC/D,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,IAAI,CAAC;YAEb,MAAM,QAAQ,GACZ,OAAO,aAAa,CAAC,MAAM,KAAK,UAAU;gBACxC,CAAC,CAAC,aAAa,CAAC,MAAM;gBACtB,CAAC,CAAC,OAAO,QAAQ,EAAE,MAAM,KAAK,UAAU;oBACtC,CAAC,CAAC,QAAQ,CAAC,MAAM;oBACjB,CAAC,CAAC,IAAI,CAAC;YAEb,MAAM,SAAS,GACb,OAAO,aAAa,CAAC,OAAO,KAAK,UAAU;gBACzC,CAAC,CAAC,aAAa,CAAC,OAAO;gBACvB,CAAC,CAAC,OAAO,QAAQ,EAAE,OAAO,KAAK,UAAU;oBACvC,CAAC,CAAC,QAAQ,CAAC,OAAO;oBAClB,CAAC,CAAC,IAAI,CAAC;YAEb,MAAM,SAAS,GACb,OAAO,aAAa,CAAC,OAAO,KAAK,UAAU;gBACzC,CAAC,CAAC,aAAa,CAAC,OAAO;gBACvB,CAAC,CAAC,OAAO,QAAQ,EAAE,OAAO,KAAK,UAAU;oBACvC,CAAC,CAAC,QAAQ,CAAC,OAAO;oBAClB,CAAC,CAAC,IAAI,CAAC;YAEb,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;gBACzD,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,8BAA8B,CAAC,CAAC;YACzE,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,wBAAwB,CAAC,CAAC;YACnE,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE,UAAU,IAAI,SAAS;gBACjC,MAAM,EAAE,QAAQ,IAAI,SAAS;gBAC7B,OAAO,EAAE,SAAS,IAAI,SAAS;gBAC/B,OAAO,EAAE,SAAS,IAAI,SAAS;gBAC/B,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,GAAQ;QAC5B,OAAO,CACL,OAAO,GAAG,KAAK,UAAU,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAC7F,CAAC;IACJ,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { ControllerRegistry } from "./controller-registry.js";
|
|
2
2
|
export { EventStream } from "./event-stream.js";
|
|
3
|
-
export { Kernel } from "./kernel.js";
|
|
3
|
+
export { Kernel, type KernelOptions } from "./kernel.js";
|
|
4
4
|
export { ManifestRegistry as Registry } from "./registry.js";
|
|
5
5
|
export { ResourceURI } from "./resource-uri.js";
|
|
6
6
|
export type { RuntimeDiagnostic } from "@telorun/sdk";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,gBAAgB,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,gBAAgB,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/kernel.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { AnalysisRegistry } from "@telorun/analyzer";
|
|
2
2
|
import { Kernel as IKernel, ModuleContext, ResourceDefinition, RuntimeEvent } from "@telorun/sdk";
|
|
3
3
|
import { EventStream } from "./event-stream.js";
|
|
4
|
+
export interface KernelOptions {
|
|
5
|
+
stdin?: NodeJS.ReadableStream;
|
|
6
|
+
stdout?: NodeJS.WritableStream;
|
|
7
|
+
stderr?: NodeJS.WritableStream;
|
|
8
|
+
env?: Record<string, string | undefined>;
|
|
9
|
+
argv?: string[];
|
|
10
|
+
}
|
|
4
11
|
/**
|
|
5
12
|
* Kernel: Central orchestrator managing lifecycle and message bus
|
|
6
13
|
* Handles resource loading, initialization, and execution through controllers
|
|
@@ -18,7 +25,12 @@ export declare class Kernel implements IKernel {
|
|
|
18
25
|
private readonly sharedSchemaValidator;
|
|
19
26
|
private rootContext;
|
|
20
27
|
private staticManifests;
|
|
21
|
-
|
|
28
|
+
readonly stdin: NodeJS.ReadableStream;
|
|
29
|
+
readonly stdout: NodeJS.WritableStream;
|
|
30
|
+
readonly stderr: NodeJS.WritableStream;
|
|
31
|
+
readonly env: Record<string, string | undefined>;
|
|
32
|
+
readonly argv: string[];
|
|
33
|
+
constructor(options?: KernelOptions);
|
|
22
34
|
registerController(moduleName: string, kindName: string, controllerInstance: any): Promise<void>;
|
|
23
35
|
/**
|
|
24
36
|
* Register a resource definition with the controller registry
|
|
@@ -66,6 +78,11 @@ export declare class Kernel implements IKernel {
|
|
|
66
78
|
on(event: string, handler: (event: RuntimeEvent) => void | Promise<void>): void;
|
|
67
79
|
private createControllerContext;
|
|
68
80
|
private createResourceContext;
|
|
81
|
+
/**
|
|
82
|
+
* Parse kernel.argv using a controller's args spec (if present).
|
|
83
|
+
* If the controller exports no args spec, does a generic parse.
|
|
84
|
+
*/
|
|
85
|
+
private parseArgsForController;
|
|
69
86
|
/**
|
|
70
87
|
* Create phase only: resolves the controller, validates the schema, and calls
|
|
71
88
|
* controller.create(). Returns { instance, ctx } so initializeResources can
|
package/dist/kernel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../src/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../src/kernel.ts"],"names":[],"mappings":"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"}
|
package/dist/kernel.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { AnalysisRegistry, StaticAnalyzer } from "@telorun/analyzer";
|
|
1
|
+
import { AnalysisRegistry, Loader, StaticAnalyzer } from "@telorun/analyzer";
|
|
2
2
|
import { ModuleContext, RuntimeError, isCompiledValue, } from "@telorun/sdk";
|
|
3
3
|
import * as path from "path";
|
|
4
|
+
import { parseArgs } from "util";
|
|
4
5
|
import { ControllerRegistry } from "./controller-registry.js";
|
|
5
6
|
import { EventStream } from "./event-stream.js";
|
|
6
7
|
import { EventBus } from "./events.js";
|
|
7
|
-
import {
|
|
8
|
+
import { LocalFileAdapter } from "./manifest-adapters/local-file-adapter.js";
|
|
8
9
|
import { ResourceContextImpl } from "./resource-context.js";
|
|
9
10
|
import { SchemaValidator } from "./schema-valiator.js";
|
|
10
11
|
/**
|
|
@@ -12,26 +13,24 @@ import { SchemaValidator } from "./schema-valiator.js";
|
|
|
12
13
|
* Handles resource loading, initialization, and execution through controllers
|
|
13
14
|
*/
|
|
14
15
|
export class Kernel {
|
|
15
|
-
constructor() {
|
|
16
|
+
constructor(options = {}) {
|
|
16
17
|
this.loader = new Loader();
|
|
17
18
|
this.analyzer = new StaticAnalyzer();
|
|
18
19
|
this.registry = new AnalysisRegistry();
|
|
19
|
-
// private manifests: ManifestRegistry = new ManifestRegistry();
|
|
20
20
|
this.controllers = new ControllerRegistry();
|
|
21
21
|
this.eventBus = new EventBus();
|
|
22
22
|
this.eventStream = new EventStream();
|
|
23
|
-
// private snapshotSerializer: SnapshotSerializer = new SnapshotSerializer();
|
|
24
|
-
// private runtimeManifests: ResourceManifest[] | null = null;
|
|
25
|
-
// private resourceInstances: Map<
|
|
26
|
-
// string,
|
|
27
|
-
// { resource: ResourceManifest; instance: ResourceInstance }
|
|
28
|
-
// > = new Map();
|
|
29
23
|
this.holdCount = 0;
|
|
30
24
|
this.idleResolvers = [];
|
|
31
25
|
this._exitCode = 0;
|
|
32
|
-
// private bootContextRegistry = new BootContextRegistry();
|
|
33
26
|
this.sharedSchemaValidator = new SchemaValidator();
|
|
34
27
|
this.staticManifests = [];
|
|
28
|
+
this.stdin = options.stdin ?? process.stdin;
|
|
29
|
+
this.stdout = options.stdout ?? process.stdout;
|
|
30
|
+
this.stderr = options.stderr ?? process.stderr;
|
|
31
|
+
this.env = options.env ?? process.env;
|
|
32
|
+
this.argv = options.argv ?? [];
|
|
33
|
+
this.loader.register(new LocalFileAdapter());
|
|
35
34
|
this.setupEventStreaming();
|
|
36
35
|
}
|
|
37
36
|
async registerController(moduleName, kindName, controllerInstance) {
|
|
@@ -83,10 +82,9 @@ export class Kernel {
|
|
|
83
82
|
* Load from runtime configuration file
|
|
84
83
|
*/
|
|
85
84
|
async loadFromConfig(runtimeYamlPath) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
this.rootContext = new ModuleContext(sourceUrl, {}, {}, {}, [], this._createInstance.bind(this), (event, payload) => this.eventBus.emit(event, payload), process.env);
|
|
85
|
+
const resolvedUrl = new URL(runtimeYamlPath, `file://${process.cwd()}/`).href;
|
|
86
|
+
const sourceUrl = await this.loader.resolveEntryPoint(resolvedUrl);
|
|
87
|
+
this.rootContext = new ModuleContext(sourceUrl, {}, {}, {}, [], this._createInstance.bind(this), (event, payload) => this.eventBus.emit(event, payload), this.env);
|
|
90
88
|
// Initialize built-in Runtime definitions first
|
|
91
89
|
await this.loadBuiltinDefinitions();
|
|
92
90
|
// Phase 5: attach injection hook — fires between create() and init() for every resource
|
|
@@ -256,8 +254,39 @@ export class Kernel {
|
|
|
256
254
|
requestExit: (code) => this.requestExit(code),
|
|
257
255
|
};
|
|
258
256
|
}
|
|
259
|
-
createResourceContext(moduleContext, resource) {
|
|
260
|
-
return new ResourceContextImpl(this, moduleContext, resource.metadata, this.sharedSchemaValidator);
|
|
257
|
+
createResourceContext(moduleContext, resource, args) {
|
|
258
|
+
return new ResourceContextImpl(this, moduleContext, resource.metadata, this.sharedSchemaValidator, this.stdin, this.stdout, this.stderr, args);
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Parse kernel.argv using a controller's args spec (if present).
|
|
262
|
+
* If the controller exports no args spec, does a generic parse.
|
|
263
|
+
*/
|
|
264
|
+
parseArgsForController(controller) {
|
|
265
|
+
if (this.argv.length === 0)
|
|
266
|
+
return { _: [] };
|
|
267
|
+
const argSpec = controller.args;
|
|
268
|
+
if (argSpec) {
|
|
269
|
+
const options = {};
|
|
270
|
+
for (const [name, def] of Object.entries(argSpec)) {
|
|
271
|
+
options[name] = { type: def.type ?? "string" };
|
|
272
|
+
if (def.alias)
|
|
273
|
+
options[name].short = def.alias;
|
|
274
|
+
}
|
|
275
|
+
const { values, positionals } = parseArgs({
|
|
276
|
+
args: this.argv,
|
|
277
|
+
options,
|
|
278
|
+
allowPositionals: true,
|
|
279
|
+
strict: false,
|
|
280
|
+
});
|
|
281
|
+
return { ...values, _: positionals };
|
|
282
|
+
}
|
|
283
|
+
// Generic parse: no spec, best-effort
|
|
284
|
+
const { values, positionals } = parseArgs({
|
|
285
|
+
args: this.argv,
|
|
286
|
+
allowPositionals: true,
|
|
287
|
+
strict: false,
|
|
288
|
+
});
|
|
289
|
+
return { ...values, _: positionals };
|
|
261
290
|
}
|
|
262
291
|
/**
|
|
263
292
|
* Create phase only: resolves the controller, validates the schema, and calls
|
|
@@ -309,7 +338,8 @@ export class Kernel {
|
|
|
309
338
|
const processedResource = compile.length
|
|
310
339
|
? evalContext.expandPaths(resource, compile, runtime)
|
|
311
340
|
: resource;
|
|
312
|
-
const
|
|
341
|
+
const parsedArgs = this.parseArgsForController(controller);
|
|
342
|
+
const ctx = this.createResourceContext(evalContext, processedResource, parsedArgs);
|
|
313
343
|
const instance = await controller.create(processedResource, ctx);
|
|
314
344
|
if (!instance)
|
|
315
345
|
return null;
|
package/dist/kernel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../src/kernel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../src/kernel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EvaluationContext, ModuleContext, ResourceContext, RuntimeResource } from "@telorun/sdk";
|
|
1
|
+
import { EvaluationContext, ModuleContext, ResourceContext, RuntimeResource, type ParsedArgs, type TypeRule } from "@telorun/sdk";
|
|
2
2
|
import { Kernel } from "./kernel.js";
|
|
3
3
|
import { SchemaValidator } from "./schema-valiator.js";
|
|
4
4
|
export declare class ResourceContextImpl implements ResourceContext {
|
|
@@ -6,13 +6,17 @@ export declare class ResourceContextImpl implements ResourceContext {
|
|
|
6
6
|
readonly moduleContext: ModuleContext;
|
|
7
7
|
private readonly metadata;
|
|
8
8
|
private readonly validator;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
readonly stdin: NodeJS.ReadableStream;
|
|
10
|
+
readonly stdout: NodeJS.WritableStream;
|
|
11
|
+
readonly stderr: NodeJS.WritableStream;
|
|
12
|
+
readonly args: ParsedArgs;
|
|
13
|
+
constructor(kernel: Kernel, moduleContext: ModuleContext, metadata: Record<string, any>, validator?: SchemaValidator, stdin?: NodeJS.ReadableStream, stdout?: NodeJS.WritableStream, stderr?: NodeJS.WritableStream, args?: ParsedArgs);
|
|
13
14
|
createSchemaValidator(schema: any): import("@telorun/sdk").DataValidator;
|
|
14
15
|
registerSchema(name: string, schema: object): void;
|
|
15
16
|
lookupSchema(name: string): object | undefined;
|
|
17
|
+
registerTypeRules(name: string, rules: TypeRule[]): void;
|
|
18
|
+
lookupTypeRules(name: string): TypeRule[] | undefined;
|
|
19
|
+
createTypeValidator(typeRef: string | Record<string, any> | undefined): import("@telorun/sdk").DataValidator;
|
|
16
20
|
validateSchema(value: any, schema: any): void;
|
|
17
21
|
invoke<TInputs>(kind: string, name: string, inputs: TInputs): Promise<any>;
|
|
18
22
|
run(name: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-context.d.ts","sourceRoot":"","sources":["../src/resource-context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,aAAa,EAEb,eAAe,EAEf,eAAe,
|
|
1
|
+
{"version":3,"file":"resource-context.d.ts","sourceRoot":"","sources":["../src/resource-context.ts"],"names":[],"mappings":"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"}
|
package/dist/resource-context.js
CHANGED
|
@@ -5,14 +5,15 @@ import { formatAjvErrors } from "./manifest-schemas.js";
|
|
|
5
5
|
import { SchemaValidator } from "./schema-valiator.js";
|
|
6
6
|
const Ajv = AjvModule.default ?? AjvModule;
|
|
7
7
|
export class ResourceContextImpl {
|
|
8
|
-
constructor(kernel, moduleContext, metadata, validator = new SchemaValidator()) {
|
|
8
|
+
constructor(kernel, moduleContext, metadata, validator = new SchemaValidator(), stdin, stdout, stderr, args) {
|
|
9
9
|
this.kernel = kernel;
|
|
10
10
|
this.moduleContext = moduleContext;
|
|
11
11
|
this.metadata = metadata;
|
|
12
12
|
this.validator = validator;
|
|
13
|
-
this.stdin = process.stdin;
|
|
14
|
-
this.stdout = process.stdout;
|
|
15
|
-
this.stderr = process.stderr;
|
|
13
|
+
this.stdin = stdin ?? process.stdin;
|
|
14
|
+
this.stdout = stdout ?? process.stdout;
|
|
15
|
+
this.stderr = stderr ?? process.stderr;
|
|
16
|
+
this.args = args ?? { _: [] };
|
|
16
17
|
}
|
|
17
18
|
createSchemaValidator(schema) {
|
|
18
19
|
if (!schema) {
|
|
@@ -26,6 +27,40 @@ export class ResourceContextImpl {
|
|
|
26
27
|
lookupSchema(name) {
|
|
27
28
|
return this.validator.getSchema(name);
|
|
28
29
|
}
|
|
30
|
+
registerTypeRules(name, rules) {
|
|
31
|
+
this.validator.addTypeRules(name, rules);
|
|
32
|
+
}
|
|
33
|
+
lookupTypeRules(name) {
|
|
34
|
+
return this.validator.getTypeRules(name);
|
|
35
|
+
}
|
|
36
|
+
createTypeValidator(typeRef) {
|
|
37
|
+
if (!typeRef)
|
|
38
|
+
return new NoopValidator();
|
|
39
|
+
// String reference: look up registered type schema by name
|
|
40
|
+
if (typeof typeRef === "string") {
|
|
41
|
+
const schema = this.validator.getSchema(typeRef);
|
|
42
|
+
if (!schema) {
|
|
43
|
+
throw new RuntimeError("ERR_TYPE_NOT_FOUND", `Type "${typeRef}" not found in schema registry`);
|
|
44
|
+
}
|
|
45
|
+
const base = this.validator.compile(schema);
|
|
46
|
+
const rules = this.validator.getTypeRules(typeRef);
|
|
47
|
+
if (rules && rules.length > 0) {
|
|
48
|
+
return this.validator.composeWithRules(base, typeRef, rules);
|
|
49
|
+
}
|
|
50
|
+
return base;
|
|
51
|
+
}
|
|
52
|
+
// Inline schema object: if it has a `schema` property, it's a type resource shape
|
|
53
|
+
if (typeRef.schema && typeof typeRef.schema === "object") {
|
|
54
|
+
const base = this.validator.compile(typeRef.schema);
|
|
55
|
+
const rules = Array.isArray(typeRef.rules) ? typeRef.rules : [];
|
|
56
|
+
if (rules.length > 0) {
|
|
57
|
+
return this.validator.composeWithRules(base, "inline", rules);
|
|
58
|
+
}
|
|
59
|
+
return base;
|
|
60
|
+
}
|
|
61
|
+
// Raw JSON Schema object (direct schema, not wrapped in type resource)
|
|
62
|
+
return this.validator.compile(typeRef);
|
|
63
|
+
}
|
|
29
64
|
validateSchema(value, schema) {
|
|
30
65
|
const ajv = new Ajv({
|
|
31
66
|
removeAdditional: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-context.js","sourceRoot":"","sources":["../src/resource-context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAEjB,aAAa,EAEb,YAAY,EAEZ,eAAe,
|
|
1
|
+
{"version":3,"file":"resource-context.js","sourceRoot":"","sources":["../src/resource-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import { DataValidator } from "@telorun/sdk";
|
|
1
|
+
import { DataValidator, TypeRule } from "@telorun/sdk";
|
|
2
2
|
export declare class SchemaValidator {
|
|
3
3
|
private ajv;
|
|
4
|
+
private typeRules;
|
|
5
|
+
private rawSchemas;
|
|
4
6
|
constructor();
|
|
5
7
|
addSchema(name: string, schema: object): void;
|
|
6
8
|
getSchema(name: string): object | undefined;
|
|
9
|
+
addTypeRules(name: string, rules: TypeRule[]): void;
|
|
10
|
+
getTypeRules(name: string): TypeRule[] | undefined;
|
|
7
11
|
compile(schema: any): DataValidator;
|
|
12
|
+
composeWithRules(base: DataValidator, typeName: string, rules: TypeRule[]): DataValidator;
|
|
8
13
|
}
|
|
9
14
|
//# sourceMappingURL=schema-valiator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-valiator.d.ts","sourceRoot":"","sources":["../src/schema-valiator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema-valiator.d.ts","sourceRoot":"","sources":["../src/schema-valiator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAgB,QAAQ,EAAE,MAAM,cAAc,CAAC;AAOrE,qBAAa,eAAe;IAC1B,OAAO,CAAC,GAAG,CAA2B;IACtC,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,UAAU,CAA6B;;IAwB/C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAO7C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI;IAInD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,GAAG,SAAS;IAIlD,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,aAAa;IA4CnC,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,aAAa;CAmC1F"}
|
package/dist/schema-valiator.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { evaluate } from "@marcbachmann/cel-js";
|
|
1
2
|
import { RuntimeError } from "@telorun/sdk";
|
|
2
3
|
import AjvModule from "ajv";
|
|
3
4
|
import addFormats from "ajv-formats";
|
|
@@ -5,23 +6,50 @@ import { formatAjvErrors } from "./manifest-schemas.js";
|
|
|
5
6
|
const Ajv = AjvModule.default ?? AjvModule;
|
|
6
7
|
export class SchemaValidator {
|
|
7
8
|
constructor() {
|
|
9
|
+
this.typeRules = new Map();
|
|
10
|
+
this.rawSchemas = new Map();
|
|
8
11
|
this.ajv = new Ajv({
|
|
9
12
|
strict: false,
|
|
10
13
|
removeAdditional: false,
|
|
11
14
|
useDefaults: true,
|
|
12
15
|
});
|
|
13
16
|
addFormats.default(this.ajv);
|
|
17
|
+
for (const kw of [
|
|
18
|
+
"x-telo-ref",
|
|
19
|
+
"x-telo-eval",
|
|
20
|
+
"x-telo-scope",
|
|
21
|
+
"x-telo-context",
|
|
22
|
+
"x-telo-context-from",
|
|
23
|
+
"x-telo-context-ref-from",
|
|
24
|
+
"x-telo-schema-from",
|
|
25
|
+
"x-telo-topology-role",
|
|
26
|
+
"x-telo-step-context",
|
|
27
|
+
]) {
|
|
28
|
+
this.ajv.addKeyword(kw);
|
|
29
|
+
}
|
|
14
30
|
}
|
|
15
31
|
addSchema(name, schema) {
|
|
16
32
|
if (!this.ajv.getSchema(name)) {
|
|
17
33
|
this.ajv.addSchema(schema, name);
|
|
18
34
|
}
|
|
35
|
+
this.rawSchemas.set(name, schema);
|
|
19
36
|
}
|
|
20
37
|
getSchema(name) {
|
|
21
|
-
return this.
|
|
38
|
+
return this.rawSchemas.get(name);
|
|
39
|
+
}
|
|
40
|
+
addTypeRules(name, rules) {
|
|
41
|
+
this.typeRules.set(name, rules);
|
|
42
|
+
}
|
|
43
|
+
getTypeRules(name) {
|
|
44
|
+
return this.typeRules.get(name);
|
|
22
45
|
}
|
|
23
46
|
compile(schema) {
|
|
24
|
-
const
|
|
47
|
+
const isFullSchema = ("type" in schema && typeof schema.type === "string") ||
|
|
48
|
+
"allOf" in schema ||
|
|
49
|
+
"anyOf" in schema ||
|
|
50
|
+
"oneOf" in schema ||
|
|
51
|
+
"$ref" in schema;
|
|
52
|
+
const normalized = isFullSchema
|
|
25
53
|
? schema
|
|
26
54
|
: {
|
|
27
55
|
type: "object",
|
|
@@ -44,7 +72,7 @@ export class SchemaValidator {
|
|
|
44
72
|
validate: (data) => {
|
|
45
73
|
const isValid = validate(data);
|
|
46
74
|
if (!isValid) {
|
|
47
|
-
throw new RuntimeError("
|
|
75
|
+
throw new RuntimeError("ERR_RESOURCE_SCHEMA_VALIDATION_FAILED", `Invalid value passed: ${JSON.stringify(data)}. Error: ${formatAjvErrors(validate.errors)}`);
|
|
48
76
|
}
|
|
49
77
|
},
|
|
50
78
|
isValid: (data) => {
|
|
@@ -52,5 +80,38 @@ export class SchemaValidator {
|
|
|
52
80
|
},
|
|
53
81
|
};
|
|
54
82
|
}
|
|
83
|
+
composeWithRules(base, typeName, rules) {
|
|
84
|
+
return {
|
|
85
|
+
validate: (data) => {
|
|
86
|
+
base.validate(data);
|
|
87
|
+
for (const rule of rules) {
|
|
88
|
+
let result;
|
|
89
|
+
try {
|
|
90
|
+
result = evaluate(rule.condition, { this: data });
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
throw new RuntimeError("ERR_TYPE_VALIDATION_FAILED", `Type "${typeName}" rule evaluation failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
94
|
+
}
|
|
95
|
+
if (result !== true) {
|
|
96
|
+
throw new RuntimeError(rule.code ?? "ERR_TYPE_VALIDATION_FAILED", rule.message ?? `Type "${typeName}" validation failed: rule "${rule.code}" not satisfied`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
isValid: (data) => {
|
|
101
|
+
if (!base.isValid(data))
|
|
102
|
+
return false;
|
|
103
|
+
for (const rule of rules) {
|
|
104
|
+
try {
|
|
105
|
+
if (evaluate(rule.condition, { this: data }) !== true)
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return true;
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
}
|
|
55
116
|
}
|
|
56
117
|
//# sourceMappingURL=schema-valiator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-valiator.js","sourceRoot":"","sources":["../src/schema-valiator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,
|
|
1
|
+
{"version":3,"file":"schema-valiator.js","sourceRoot":"","sources":["../src/schema-valiator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@telorun/kernel",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.7",
|
|
4
4
|
"description": "Telo Runtime - A lightweight, polyglot execution host.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"ajv-formats": "^3.0.1",
|
|
30
30
|
"@marcbachmann/cel-js": "^7.5.3",
|
|
31
31
|
"packageurl-js": "^2.0.1",
|
|
32
|
-
"@telorun/analyzer": "0.1.
|
|
33
|
-
"@telorun/sdk": "0.2.
|
|
32
|
+
"@telorun/analyzer": "0.1.2",
|
|
33
|
+
"@telorun/sdk": "0.2.7",
|
|
34
34
|
"@telorun/yaml-cel-templating": "1.0.3"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
@@ -115,8 +115,8 @@ export class ControllerRegistry {
|
|
|
115
115
|
const wrappedController: ControllerInstance = {
|
|
116
116
|
...controller,
|
|
117
117
|
schema: controller.schema ?? definition?.schema,
|
|
118
|
-
|
|
119
|
-
|
|
118
|
+
inputType: controller.inputType,
|
|
119
|
+
outputType: controller.outputType,
|
|
120
120
|
};
|
|
121
121
|
this.controllersByKind.set(kind, wrappedController);
|
|
122
122
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { ControllerRegistry } from "./controller-registry.js";
|
|
2
2
|
export { EventStream } from "./event-stream.js";
|
|
3
|
-
export { Kernel } from "./kernel.js";
|
|
3
|
+
export { Kernel, type KernelOptions } from "./kernel.js";
|
|
4
4
|
export { ManifestRegistry as Registry } from "./registry.js";
|
|
5
5
|
export { ResourceURI } from "./resource-uri.js";
|
|
6
6
|
export type { RuntimeDiagnostic } from "@telorun/sdk";
|
package/src/kernel.ts
CHANGED
|
@@ -1,24 +1,34 @@
|
|
|
1
|
-
import { AnalysisRegistry, StaticAnalyzer } from "@telorun/analyzer";
|
|
1
|
+
import { AnalysisRegistry, Loader, StaticAnalyzer } from "@telorun/analyzer";
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
3
|
+
ControllerContext,
|
|
4
|
+
Kernel as IKernel,
|
|
5
|
+
ModuleContext,
|
|
6
|
+
ResourceContext,
|
|
7
|
+
ResourceDefinition,
|
|
8
|
+
ResourceInstance,
|
|
9
|
+
ResourceManifest,
|
|
10
|
+
RuntimeError,
|
|
11
|
+
RuntimeEvent,
|
|
12
|
+
isCompiledValue,
|
|
13
|
+
type ParsedArgs,
|
|
13
14
|
} from "@telorun/sdk";
|
|
14
15
|
import * as path from "path";
|
|
16
|
+
import { parseArgs } from "util";
|
|
15
17
|
import { ControllerRegistry } from "./controller-registry.js";
|
|
16
18
|
import { EventStream } from "./event-stream.js";
|
|
17
19
|
import { EventBus } from "./events.js";
|
|
18
|
-
import {
|
|
20
|
+
import { LocalFileAdapter } from "./manifest-adapters/local-file-adapter.js";
|
|
19
21
|
import { ResourceContextImpl } from "./resource-context.js";
|
|
20
22
|
import { SchemaValidator } from "./schema-valiator.js";
|
|
21
23
|
|
|
24
|
+
export interface KernelOptions {
|
|
25
|
+
stdin?: NodeJS.ReadableStream;
|
|
26
|
+
stdout?: NodeJS.WritableStream;
|
|
27
|
+
stderr?: NodeJS.WritableStream;
|
|
28
|
+
env?: Record<string, string | undefined>;
|
|
29
|
+
argv?: string[];
|
|
30
|
+
}
|
|
31
|
+
|
|
22
32
|
/**
|
|
23
33
|
* Kernel: Central orchestrator managing lifecycle and message bus
|
|
24
34
|
* Handles resource loading, initialization, and execution through controllers
|
|
@@ -27,26 +37,30 @@ export class Kernel implements IKernel {
|
|
|
27
37
|
private readonly loader = new Loader();
|
|
28
38
|
private readonly analyzer = new StaticAnalyzer();
|
|
29
39
|
private readonly registry = new AnalysisRegistry();
|
|
30
|
-
// private manifests: ManifestRegistry = new ManifestRegistry();
|
|
31
40
|
private controllers: ControllerRegistry = new ControllerRegistry();
|
|
32
41
|
private eventBus: EventBus = new EventBus();
|
|
33
42
|
private eventStream: EventStream = new EventStream();
|
|
34
|
-
// private snapshotSerializer: SnapshotSerializer = new SnapshotSerializer();
|
|
35
|
-
// private runtimeManifests: ResourceManifest[] | null = null;
|
|
36
|
-
// private resourceInstances: Map<
|
|
37
|
-
// string,
|
|
38
|
-
// { resource: ResourceManifest; instance: ResourceInstance }
|
|
39
|
-
// > = new Map();
|
|
40
43
|
|
|
41
44
|
private holdCount = 0;
|
|
42
45
|
private idleResolvers: Array<() => void> = [];
|
|
43
46
|
private _exitCode = 0;
|
|
44
|
-
// private bootContextRegistry = new BootContextRegistry();
|
|
45
47
|
private readonly sharedSchemaValidator = new SchemaValidator();
|
|
46
48
|
private rootContext!: ModuleContext;
|
|
47
49
|
private staticManifests: ResourceManifest[] = [];
|
|
48
50
|
|
|
49
|
-
|
|
51
|
+
readonly stdin: NodeJS.ReadableStream;
|
|
52
|
+
readonly stdout: NodeJS.WritableStream;
|
|
53
|
+
readonly stderr: NodeJS.WritableStream;
|
|
54
|
+
readonly env: Record<string, string | undefined>;
|
|
55
|
+
readonly argv: string[];
|
|
56
|
+
|
|
57
|
+
constructor(options: KernelOptions = {}) {
|
|
58
|
+
this.stdin = options.stdin ?? process.stdin;
|
|
59
|
+
this.stdout = options.stdout ?? process.stdout;
|
|
60
|
+
this.stderr = options.stderr ?? process.stderr;
|
|
61
|
+
this.env = options.env ?? process.env;
|
|
62
|
+
this.argv = options.argv ?? [];
|
|
63
|
+
this.loader.register(new LocalFileAdapter());
|
|
50
64
|
this.setupEventStreaming();
|
|
51
65
|
}
|
|
52
66
|
|
|
@@ -125,11 +139,8 @@ export class Kernel implements IKernel {
|
|
|
125
139
|
* Load from runtime configuration file
|
|
126
140
|
*/
|
|
127
141
|
async loadFromConfig(runtimeYamlPath: string): Promise<void> {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
const sourceUrl = await this.loader.resolveEntryPoint(
|
|
131
|
-
new URL(runtimeYamlPath, `file://${process.cwd()}/`).href,
|
|
132
|
-
);
|
|
142
|
+
const resolvedUrl = new URL(runtimeYamlPath, `file://${process.cwd()}/`).href;
|
|
143
|
+
const sourceUrl = await this.loader.resolveEntryPoint(resolvedUrl);
|
|
133
144
|
this.rootContext = new ModuleContext(
|
|
134
145
|
sourceUrl,
|
|
135
146
|
{},
|
|
@@ -138,7 +149,7 @@ export class Kernel implements IKernel {
|
|
|
138
149
|
[],
|
|
139
150
|
this._createInstance.bind(this),
|
|
140
151
|
(event, payload) => this.eventBus.emit(event, payload),
|
|
141
|
-
|
|
152
|
+
this.env,
|
|
142
153
|
);
|
|
143
154
|
// Initialize built-in Runtime definitions first
|
|
144
155
|
await this.loadBuiltinDefinitions();
|
|
@@ -353,15 +364,52 @@ export class Kernel implements IKernel {
|
|
|
353
364
|
private createResourceContext(
|
|
354
365
|
moduleContext: ModuleContext,
|
|
355
366
|
resource: ResourceManifest,
|
|
367
|
+
args?: ParsedArgs,
|
|
356
368
|
): ResourceContext {
|
|
357
369
|
return new ResourceContextImpl(
|
|
358
370
|
this,
|
|
359
371
|
moduleContext,
|
|
360
372
|
resource.metadata,
|
|
361
373
|
this.sharedSchemaValidator,
|
|
374
|
+
this.stdin,
|
|
375
|
+
this.stdout,
|
|
376
|
+
this.stderr,
|
|
377
|
+
args,
|
|
362
378
|
);
|
|
363
379
|
}
|
|
364
380
|
|
|
381
|
+
/**
|
|
382
|
+
* Parse kernel.argv using a controller's args spec (if present).
|
|
383
|
+
* If the controller exports no args spec, does a generic parse.
|
|
384
|
+
*/
|
|
385
|
+
private parseArgsForController(controller: any): ParsedArgs {
|
|
386
|
+
if (this.argv.length === 0) return { _: [] };
|
|
387
|
+
|
|
388
|
+
const argSpec = controller.args;
|
|
389
|
+
if (argSpec) {
|
|
390
|
+
const options: Record<string, { type: "string" | "boolean"; short?: string }> = {};
|
|
391
|
+
for (const [name, def] of Object.entries(argSpec) as [string, any][]) {
|
|
392
|
+
options[name] = { type: def.type ?? "string" };
|
|
393
|
+
if (def.alias) options[name].short = def.alias;
|
|
394
|
+
}
|
|
395
|
+
const { values, positionals } = parseArgs({
|
|
396
|
+
args: this.argv,
|
|
397
|
+
options,
|
|
398
|
+
allowPositionals: true,
|
|
399
|
+
strict: false,
|
|
400
|
+
});
|
|
401
|
+
return { ...values, _: positionals } as ParsedArgs;
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
// Generic parse: no spec, best-effort
|
|
405
|
+
const { values, positionals } = parseArgs({
|
|
406
|
+
args: this.argv,
|
|
407
|
+
allowPositionals: true,
|
|
408
|
+
strict: false,
|
|
409
|
+
});
|
|
410
|
+
return { ...values, _: positionals } as ParsedArgs;
|
|
411
|
+
}
|
|
412
|
+
|
|
365
413
|
/**
|
|
366
414
|
* Create phase only: resolves the controller, validates the schema, and calls
|
|
367
415
|
* controller.create(). Returns { instance, ctx } so initializeResources can
|
|
@@ -434,7 +482,8 @@ export class Kernel implements IKernel {
|
|
|
434
482
|
) as ResourceManifest)
|
|
435
483
|
: resource;
|
|
436
484
|
|
|
437
|
-
const
|
|
485
|
+
const parsedArgs = this.parseArgsForController(controller);
|
|
486
|
+
const ctx = this.createResourceContext(evalContext, processedResource, parsedArgs);
|
|
438
487
|
const instance = await controller.create(processedResource, ctx);
|
|
439
488
|
if (!instance) return null;
|
|
440
489
|
|
package/src/resource-context.ts
CHANGED
|
@@ -6,6 +6,8 @@ import {
|
|
|
6
6
|
RuntimeError,
|
|
7
7
|
RuntimeResource,
|
|
8
8
|
isCompiledValue,
|
|
9
|
+
type ParsedArgs,
|
|
10
|
+
type TypeRule,
|
|
9
11
|
} from "@telorun/sdk";
|
|
10
12
|
import AjvModule from "ajv";
|
|
11
13
|
import addFormats from "ajv-formats";
|
|
@@ -16,16 +18,26 @@ import { SchemaValidator } from "./schema-valiator.js";
|
|
|
16
18
|
const Ajv = AjvModule.default ?? AjvModule;
|
|
17
19
|
|
|
18
20
|
export class ResourceContextImpl implements ResourceContext {
|
|
21
|
+
readonly stdin: NodeJS.ReadableStream;
|
|
22
|
+
readonly stdout: NodeJS.WritableStream;
|
|
23
|
+
readonly stderr: NodeJS.WritableStream;
|
|
24
|
+
readonly args: ParsedArgs;
|
|
25
|
+
|
|
19
26
|
constructor(
|
|
20
27
|
readonly kernel: Kernel,
|
|
21
28
|
readonly moduleContext: ModuleContext,
|
|
22
29
|
private readonly metadata: Record<string, any>,
|
|
23
30
|
private readonly validator: SchemaValidator = new SchemaValidator(),
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
31
|
+
stdin?: NodeJS.ReadableStream,
|
|
32
|
+
stdout?: NodeJS.WritableStream,
|
|
33
|
+
stderr?: NodeJS.WritableStream,
|
|
34
|
+
args?: ParsedArgs,
|
|
35
|
+
) {
|
|
36
|
+
this.stdin = stdin ?? process.stdin;
|
|
37
|
+
this.stdout = stdout ?? process.stdout;
|
|
38
|
+
this.stderr = stderr ?? process.stderr;
|
|
39
|
+
this.args = args ?? { _: [] };
|
|
40
|
+
}
|
|
29
41
|
|
|
30
42
|
createSchemaValidator(schema: any) {
|
|
31
43
|
if (!schema) {
|
|
@@ -42,6 +54,48 @@ export class ResourceContextImpl implements ResourceContext {
|
|
|
42
54
|
return this.validator.getSchema(name);
|
|
43
55
|
}
|
|
44
56
|
|
|
57
|
+
registerTypeRules(name: string, rules: TypeRule[]): void {
|
|
58
|
+
this.validator.addTypeRules(name, rules);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
lookupTypeRules(name: string): TypeRule[] | undefined {
|
|
62
|
+
return this.validator.getTypeRules(name);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
createTypeValidator(typeRef: string | Record<string, any> | undefined) {
|
|
66
|
+
if (!typeRef) return new NoopValidator();
|
|
67
|
+
|
|
68
|
+
// String reference: look up registered type schema by name
|
|
69
|
+
if (typeof typeRef === "string") {
|
|
70
|
+
const schema = this.validator.getSchema(typeRef);
|
|
71
|
+
if (!schema) {
|
|
72
|
+
throw new RuntimeError(
|
|
73
|
+
"ERR_TYPE_NOT_FOUND",
|
|
74
|
+
`Type "${typeRef}" not found in schema registry`,
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
const base = this.validator.compile(schema);
|
|
78
|
+
const rules = this.validator.getTypeRules(typeRef);
|
|
79
|
+
if (rules && rules.length > 0) {
|
|
80
|
+
return this.validator.composeWithRules(base, typeRef, rules);
|
|
81
|
+
}
|
|
82
|
+
return base;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Inline schema object: if it has a `schema` property, it's a type resource shape
|
|
86
|
+
if (typeRef.schema && typeof typeRef.schema === "object") {
|
|
87
|
+
const base = this.validator.compile(typeRef.schema);
|
|
88
|
+
const rules = Array.isArray(typeRef.rules) ? typeRef.rules : [];
|
|
89
|
+
if (rules.length > 0) {
|
|
90
|
+
return this.validator.composeWithRules(base, "inline", rules);
|
|
91
|
+
}
|
|
92
|
+
return base;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Raw JSON Schema object (direct schema, not wrapped in type resource)
|
|
96
|
+
return this.validator.compile(typeRef);
|
|
97
|
+
}
|
|
98
|
+
|
|
45
99
|
validateSchema(value: any, schema: any) {
|
|
46
100
|
const ajv = new Ajv({
|
|
47
101
|
removeAdditional: true,
|
package/src/schema-valiator.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { evaluate } from "@marcbachmann/cel-js";
|
|
2
|
+
import { DataValidator, RuntimeError, TypeRule } from "@telorun/sdk";
|
|
2
3
|
import AjvModule from "ajv";
|
|
3
4
|
import addFormats from "ajv-formats";
|
|
4
5
|
import { formatAjvErrors } from "./manifest-schemas.js";
|
|
@@ -7,6 +8,8 @@ const Ajv = AjvModule.default ?? AjvModule;
|
|
|
7
8
|
|
|
8
9
|
export class SchemaValidator {
|
|
9
10
|
private ajv: InstanceType<typeof Ajv>;
|
|
11
|
+
private typeRules = new Map<string, TypeRule[]>();
|
|
12
|
+
private rawSchemas = new Map<string, object>();
|
|
10
13
|
|
|
11
14
|
constructor() {
|
|
12
15
|
this.ajv = new Ajv({
|
|
@@ -15,28 +18,55 @@ export class SchemaValidator {
|
|
|
15
18
|
useDefaults: true,
|
|
16
19
|
});
|
|
17
20
|
addFormats.default(this.ajv);
|
|
21
|
+
for (const kw of [
|
|
22
|
+
"x-telo-ref",
|
|
23
|
+
"x-telo-eval",
|
|
24
|
+
"x-telo-scope",
|
|
25
|
+
"x-telo-context",
|
|
26
|
+
"x-telo-context-from",
|
|
27
|
+
"x-telo-context-ref-from",
|
|
28
|
+
"x-telo-schema-from",
|
|
29
|
+
"x-telo-topology-role",
|
|
30
|
+
"x-telo-step-context",
|
|
31
|
+
]) {
|
|
32
|
+
this.ajv.addKeyword(kw);
|
|
33
|
+
}
|
|
18
34
|
}
|
|
19
35
|
|
|
20
36
|
addSchema(name: string, schema: object): void {
|
|
21
37
|
if (!this.ajv.getSchema(name)) {
|
|
22
38
|
this.ajv.addSchema(schema, name);
|
|
23
39
|
}
|
|
40
|
+
this.rawSchemas.set(name, schema);
|
|
24
41
|
}
|
|
25
42
|
|
|
26
43
|
getSchema(name: string): object | undefined {
|
|
27
|
-
return this.
|
|
44
|
+
return this.rawSchemas.get(name);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
addTypeRules(name: string, rules: TypeRule[]): void {
|
|
48
|
+
this.typeRules.set(name, rules);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
getTypeRules(name: string): TypeRule[] | undefined {
|
|
52
|
+
return this.typeRules.get(name);
|
|
28
53
|
}
|
|
29
54
|
|
|
30
55
|
compile(schema: any): DataValidator {
|
|
31
|
-
const
|
|
32
|
-
"type" in schema && typeof schema.type === "string"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
56
|
+
const isFullSchema =
|
|
57
|
+
("type" in schema && typeof schema.type === "string") ||
|
|
58
|
+
"allOf" in schema ||
|
|
59
|
+
"anyOf" in schema ||
|
|
60
|
+
"oneOf" in schema ||
|
|
61
|
+
"$ref" in schema;
|
|
62
|
+
const normalized = isFullSchema
|
|
63
|
+
? schema
|
|
64
|
+
: {
|
|
65
|
+
type: "object",
|
|
66
|
+
properties: schema,
|
|
67
|
+
required: Object.keys(schema),
|
|
68
|
+
additionalProperties: false,
|
|
69
|
+
};
|
|
40
70
|
const injected =
|
|
41
71
|
normalized.additionalProperties === false
|
|
42
72
|
? {
|
|
@@ -55,7 +85,7 @@ export class SchemaValidator {
|
|
|
55
85
|
const isValid = validate(data);
|
|
56
86
|
if (!isValid) {
|
|
57
87
|
throw new RuntimeError(
|
|
58
|
-
"
|
|
88
|
+
"ERR_RESOURCE_SCHEMA_VALIDATION_FAILED",
|
|
59
89
|
`Invalid value passed: ${JSON.stringify(data)}. Error: ${formatAjvErrors(validate.errors)}`,
|
|
60
90
|
);
|
|
61
91
|
}
|
|
@@ -65,4 +95,40 @@ export class SchemaValidator {
|
|
|
65
95
|
},
|
|
66
96
|
};
|
|
67
97
|
}
|
|
98
|
+
|
|
99
|
+
composeWithRules(base: DataValidator, typeName: string, rules: TypeRule[]): DataValidator {
|
|
100
|
+
return {
|
|
101
|
+
validate: (data: any) => {
|
|
102
|
+
base.validate(data);
|
|
103
|
+
for (const rule of rules) {
|
|
104
|
+
let result: unknown;
|
|
105
|
+
try {
|
|
106
|
+
result = evaluate(rule.condition, { this: data });
|
|
107
|
+
} catch (err) {
|
|
108
|
+
throw new RuntimeError(
|
|
109
|
+
"ERR_TYPE_VALIDATION_FAILED",
|
|
110
|
+
`Type "${typeName}" rule evaluation failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
if (result !== true) {
|
|
114
|
+
throw new RuntimeError(
|
|
115
|
+
rule.code ?? "ERR_TYPE_VALIDATION_FAILED",
|
|
116
|
+
rule.message ?? `Type "${typeName}" validation failed: rule "${rule.code}" not satisfied`,
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
isValid: (data: any) => {
|
|
122
|
+
if (!base.isValid(data)) return false;
|
|
123
|
+
for (const rule of rules) {
|
|
124
|
+
try {
|
|
125
|
+
if (evaluate(rule.condition, { this: data }) !== true) return false;
|
|
126
|
+
} catch {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return true;
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
}
|
|
68
134
|
}
|
package/src/loader.ts
DELETED
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import { Loader as BaseLoader } from "@telorun/analyzer";
|
|
2
|
-
import { ResourceManifest, RuntimeResource } from "@telorun/sdk";
|
|
3
|
-
import * as path from "path";
|
|
4
|
-
import { LocalFileAdapter } from "./manifest-adapters/local-file-adapter.js";
|
|
5
|
-
import { formatAjvErrors, validateRuntimeResource } from "./manifest-schemas.js";
|
|
6
|
-
|
|
7
|
-
export class Loader extends BaseLoader {
|
|
8
|
-
private static projectRoot: string | null = null;
|
|
9
|
-
private readonly localAdapter: LocalFileAdapter;
|
|
10
|
-
|
|
11
|
-
constructor() {
|
|
12
|
-
super();
|
|
13
|
-
this.localAdapter = new LocalFileAdapter();
|
|
14
|
-
this.register(this.localAdapter);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
private static ensureProjectRoot(baseDir: string): void {
|
|
18
|
-
if (!Loader.projectRoot) {
|
|
19
|
-
Loader.projectRoot = path.resolve(baseDir);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
resolvePath(base: string, relative: string): string {
|
|
24
|
-
return this.localAdapter.resolveRelative(base, relative);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Resolve a path-or-URL to its canonical file source URL.
|
|
29
|
-
* If the path refers to a directory, returns the URL of module.yaml inside it.
|
|
30
|
-
*/
|
|
31
|
-
async resolveEntryPoint(pathOrUrl: string): Promise<string> {
|
|
32
|
-
const { source } = await this.localAdapter.read(pathOrUrl);
|
|
33
|
-
return source;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
async loadDirectory(pathOrUrl: string): Promise<ResourceManifest[]> {
|
|
37
|
-
const sources = await this.localAdapter.readAll(pathOrUrl);
|
|
38
|
-
const firstPath = sources[0] ? new URL(sources[0]).pathname : process.cwd();
|
|
39
|
-
Loader.ensureProjectRoot(path.dirname(firstPath));
|
|
40
|
-
const resources: RuntimeResource[] = [];
|
|
41
|
-
for (const source of sources) {
|
|
42
|
-
const manifests = await this.loadModule(source);
|
|
43
|
-
for (const m of manifests) {
|
|
44
|
-
if (!m.metadata?.name) continue;
|
|
45
|
-
const resource = m as RuntimeResource;
|
|
46
|
-
if (!validateRuntimeResource(resource)) {
|
|
47
|
-
throw new Error(
|
|
48
|
-
`Resource validation failed for ${m.kind}.${m.metadata.name}: ${formatAjvErrors(validateRuntimeResource.errors)}`,
|
|
49
|
-
);
|
|
50
|
-
}
|
|
51
|
-
const filePath = new URL(m.metadata.source as string).pathname;
|
|
52
|
-
const uriBase = `file://localhost${filePath.replace(/\\/g, "/")}`;
|
|
53
|
-
resource.metadata.uri = `${uriBase}#${m.kind}.${m.metadata.name as string}`;
|
|
54
|
-
resource.metadata.generationDepth = 0;
|
|
55
|
-
resources.push(resource);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return this.orderResourcesByKindDependencies(resources);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
async loadManifest(
|
|
62
|
-
pathOrUrl: string,
|
|
63
|
-
baseUrl: string,
|
|
64
|
-
compileContext: Record<string, unknown> = {},
|
|
65
|
-
): Promise<ResourceManifest[]> {
|
|
66
|
-
if (!baseUrl) {
|
|
67
|
-
throw new Error("Base URL is required to load target manifest");
|
|
68
|
-
}
|
|
69
|
-
const url = new URL(pathOrUrl, baseUrl).toString();
|
|
70
|
-
if (!Loader.projectRoot) {
|
|
71
|
-
Loader.ensureProjectRoot(path.dirname(new URL(url).pathname));
|
|
72
|
-
}
|
|
73
|
-
return this.loadModule(url, { compile: true });
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
private orderResourcesByKindDependencies(resources: RuntimeResource[]): RuntimeResource[] {
|
|
77
|
-
if (resources.length <= 1) return resources;
|
|
78
|
-
|
|
79
|
-
const indicesByName = new Map<string, number[]>();
|
|
80
|
-
for (let i = 0; i < resources.length; i++) {
|
|
81
|
-
const name = resources[i]?.metadata?.name;
|
|
82
|
-
if (!name) continue;
|
|
83
|
-
const list = indicesByName.get(name);
|
|
84
|
-
if (list) list.push(i);
|
|
85
|
-
else indicesByName.set(name, [i]);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
const edges = new Map<number, Set<number>>();
|
|
89
|
-
const indegree = new Map<number, number>();
|
|
90
|
-
for (let i = 0; i < resources.length; i++) indegree.set(i, 0);
|
|
91
|
-
|
|
92
|
-
for (let i = 0; i < resources.length; i++) {
|
|
93
|
-
const kind = resources[i]?.kind;
|
|
94
|
-
if (!kind) continue;
|
|
95
|
-
const definers = indicesByName.get(kind);
|
|
96
|
-
if (!definers) continue;
|
|
97
|
-
for (const definerIndex of definers) {
|
|
98
|
-
if (definerIndex === i) continue;
|
|
99
|
-
let set = edges.get(definerIndex);
|
|
100
|
-
if (!set) {
|
|
101
|
-
set = new Set();
|
|
102
|
-
edges.set(definerIndex, set);
|
|
103
|
-
}
|
|
104
|
-
if (!set.has(i)) {
|
|
105
|
-
set.add(i);
|
|
106
|
-
indegree.set(i, (indegree.get(i) || 0) + 1);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
const ready: number[] = [];
|
|
112
|
-
for (let i = 0; i < resources.length; i++) {
|
|
113
|
-
if ((indegree.get(i) || 0) === 0) ready.push(i);
|
|
114
|
-
}
|
|
115
|
-
ready.sort((a, b) => a - b);
|
|
116
|
-
|
|
117
|
-
const ordered: RuntimeResource[] = [];
|
|
118
|
-
while (ready.length > 0) {
|
|
119
|
-
const index = ready.shift() as number;
|
|
120
|
-
ordered.push(resources[index]);
|
|
121
|
-
const next = edges.get(index);
|
|
122
|
-
if (!next) continue;
|
|
123
|
-
for (const dependent of next) {
|
|
124
|
-
const count = (indegree.get(dependent) || 0) - 1;
|
|
125
|
-
indegree.set(dependent, count);
|
|
126
|
-
if (count === 0) ready.push(dependent);
|
|
127
|
-
}
|
|
128
|
-
if (ready.length > 1) ready.sort((a, b) => a - b);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
if (ordered.length !== resources.length) throw new Error("Resource dependency cycle detected");
|
|
132
|
-
return ordered;
|
|
133
|
-
}
|
|
134
|
-
}
|