@telorun/kernel 0.2.5 → 0.2.6
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/base-definition.d.ts +14 -0
- package/dist/base-definition.d.ts.map +1 -0
- package/dist/base-definition.js +17 -0
- package/dist/base-definition.js.map +1 -0
- package/dist/capabilities/component.d.ts +3 -0
- package/dist/capabilities/component.d.ts.map +1 -0
- package/dist/capabilities/component.js +4 -0
- package/dist/capabilities/component.js.map +1 -0
- package/dist/capabilities/executable.d.ts +3 -0
- package/dist/capabilities/executable.d.ts.map +1 -0
- package/dist/capabilities/executable.js +5 -0
- package/dist/capabilities/executable.js.map +1 -0
- package/dist/capabilities/handler.d.ts +3 -0
- package/dist/capabilities/handler.d.ts.map +1 -0
- package/dist/capabilities/handler.js +4 -0
- package/dist/capabilities/handler.js.map +1 -0
- package/dist/capabilities/invokable.d.ts +3 -0
- package/dist/capabilities/invokable.d.ts.map +1 -0
- package/dist/capabilities/invokable.js +5 -0
- package/dist/capabilities/invokable.js.map +1 -0
- package/dist/capabilities/listener.d.ts +3 -0
- package/dist/capabilities/listener.d.ts.map +1 -0
- package/dist/capabilities/listener.js +5 -0
- package/dist/capabilities/listener.js.map +1 -0
- package/dist/capabilities/mount.d.ts +3 -0
- package/dist/capabilities/mount.d.ts.map +1 -0
- package/dist/capabilities/mount.js +5 -0
- package/dist/capabilities/mount.js.map +1 -0
- package/dist/capabilities/provider.d.ts +3 -0
- package/dist/capabilities/provider.d.ts.map +1 -0
- package/dist/capabilities/provider.js +8 -0
- package/dist/capabilities/provider.js.map +1 -0
- package/dist/capabilities/runnable.d.ts +3 -0
- package/dist/capabilities/runnable.d.ts.map +1 -0
- package/dist/capabilities/runnable.js +5 -0
- package/dist/capabilities/runnable.js.map +1 -0
- package/dist/capabilities/service.d.ts +3 -0
- package/dist/capabilities/service.d.ts.map +1 -0
- package/dist/capabilities/service.js +5 -0
- package/dist/capabilities/service.js.map +1 -0
- package/dist/capabilities/template.d.ts +3 -0
- package/dist/capabilities/template.d.ts.map +1 -0
- package/dist/capabilities/template.js +5 -0
- package/dist/capabilities/template.js.map +1 -0
- package/dist/capabilities/type.d.ts +3 -0
- package/dist/capabilities/type.d.ts.map +1 -0
- package/dist/capabilities/type.js +5 -0
- package/dist/capabilities/type.js.map +1 -0
- package/dist/controller-loader.d.ts.map +1 -1
- package/dist/controller-loader.js +2 -1
- package/dist/controller-loader.js.map +1 -1
- package/dist/controller-registry.d.ts +0 -4
- package/dist/controller-registry.d.ts.map +1 -1
- package/dist/controller-registry.js +11 -22
- package/dist/controller-registry.js.map +1 -1
- package/dist/controllers/capability/capability-controller.d.ts +0 -5
- package/dist/controllers/capability/capability-controller.d.ts.map +1 -1
- package/dist/controllers/capability/capability-controller.js +1 -5
- package/dist/controllers/capability/capability-controller.js.map +1 -1
- package/dist/controllers/module/import-controller.d.ts +0 -3
- package/dist/controllers/module/import-controller.d.ts.map +1 -1
- package/dist/controllers/module/import-controller.js +21 -27
- package/dist/controllers/module/import-controller.js.map +1 -1
- package/dist/controllers/module/module-controller.d.ts +0 -59
- package/dist/controllers/module/module-controller.d.ts.map +1 -1
- package/dist/controllers/module/module-controller.js +0 -45
- package/dist/controllers/module/module-controller.js.map +1 -1
- package/dist/controllers/resource-definition/resource-definition-controller.d.ts +3 -4
- package/dist/controllers/resource-definition/resource-definition-controller.d.ts.map +1 -1
- package/dist/controllers/resource-definition/resource-definition-controller.js +6 -8
- package/dist/controllers/resource-definition/resource-definition-controller.js.map +1 -1
- package/dist/controllers/resource-definition/resource-template-controller.d.ts +12 -0
- package/dist/controllers/resource-definition/resource-template-controller.d.ts.map +1 -0
- package/dist/controllers/resource-definition/resource-template-controller.js +112 -0
- package/dist/controllers/resource-definition/resource-template-controller.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/kernel.d.ts +21 -24
- package/dist/kernel.d.ts.map +1 -1
- package/dist/kernel.js +254 -189
- package/dist/kernel.js.map +1 -1
- package/dist/loader.d.ts +9 -8
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +50 -132
- package/dist/loader.js.map +1 -1
- package/dist/manifest-adapters/http-adapter.d.ts.map +1 -1
- package/dist/manifest-adapters/http-adapter.js +3 -1
- package/dist/manifest-adapters/http-adapter.js.map +1 -1
- package/dist/manifest-adapters/local-file-adapter.d.ts +7 -5
- package/dist/manifest-adapters/local-file-adapter.d.ts.map +1 -1
- package/dist/manifest-adapters/local-file-adapter.js +21 -26
- package/dist/manifest-adapters/local-file-adapter.js.map +1 -1
- package/dist/manifest-adapters/manifest-adapter.d.ts +2 -0
- package/dist/manifest-adapters/manifest-adapter.d.ts.map +1 -1
- package/dist/manifest-adapters/registry-adapter.d.ts.map +1 -1
- package/dist/manifest-adapters/registry-adapter.js +3 -1
- package/dist/manifest-adapters/registry-adapter.js.map +1 -1
- package/dist/manifest-schemas.d.ts +61 -25
- package/dist/manifest-schemas.d.ts.map +1 -1
- package/dist/manifest-schemas.js +56 -16
- package/dist/manifest-schemas.js.map +1 -1
- package/dist/resource-context.d.ts +2 -5
- package/dist/resource-context.d.ts.map +1 -1
- package/dist/resource-context.js +31 -21
- package/dist/resource-context.js.map +1 -1
- package/dist/schema-valiator.d.ts.map +1 -1
- package/dist/schema-valiator.js +13 -2
- package/dist/schema-valiator.js.map +1 -1
- package/package.json +6 -7
- package/src/controller-loader.ts +2 -1
- package/src/controller-registry.ts +11 -26
- package/src/controllers/module/import-controller.ts +30 -30
- package/src/controllers/module/module-controller.ts +0 -51
- package/src/controllers/resource-definition/resource-definition-controller.ts +14 -15
- package/src/controllers/resource-definition/resource-template-controller.ts +138 -0
- package/src/index.ts +1 -1
- package/src/kernel.ts +313 -224
- package/src/loader.ts +54 -165
- package/src/manifest-adapters/local-file-adapter.ts +24 -31
- package/src/manifest-adapters/manifest-adapter.ts +2 -0
- package/src/manifest-schemas.ts +60 -24
- package/src/resource-context.ts +31 -30
- package/src/schema-valiator.ts +14 -3
- package/src/capabilities/component.yaml +0 -4
- package/src/capabilities/executable.yaml +0 -8
- package/src/capabilities/handler.yaml +0 -4
- package/src/capabilities/listener.yaml +0 -4
- package/src/capabilities/provider.yaml +0 -4
- package/src/capabilities/template.yaml +0 -4
- package/src/capabilities/type.yaml +0 -4
- package/src/controllers/capability/capability-controller.ts +0 -41
- package/src/controllers/module/module.json +0 -48
- package/src/controllers/module/module.yaml +0 -32
- package/src/manifest-adapters/http-adapter.ts +0 -35
- package/src/manifest-adapters/registry-adapter.ts +0 -56
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-controller.js","sourceRoot":"","sources":["../../../src/controllers/module/import-controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"import-controller.js","sourceRoot":"","sources":["../../../src/controllers/module/import-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,62 +1,3 @@
|
|
|
1
1
|
import type { ResourceContext, ResourceInstance } from "@telorun/sdk";
|
|
2
2
|
export declare function create(resource: any, ctx: ResourceContext): Promise<ResourceInstance>;
|
|
3
|
-
export declare const schema: {
|
|
4
|
-
type: string;
|
|
5
|
-
properties: {
|
|
6
|
-
kind: {
|
|
7
|
-
type: string;
|
|
8
|
-
};
|
|
9
|
-
metadata: {
|
|
10
|
-
type: string;
|
|
11
|
-
properties: {
|
|
12
|
-
name: {
|
|
13
|
-
type: string;
|
|
14
|
-
};
|
|
15
|
-
version: {
|
|
16
|
-
type: string;
|
|
17
|
-
};
|
|
18
|
-
source: {
|
|
19
|
-
type: string;
|
|
20
|
-
};
|
|
21
|
-
module: {
|
|
22
|
-
type: string;
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
required: string[];
|
|
26
|
-
additionalProperties: boolean;
|
|
27
|
-
};
|
|
28
|
-
include: {
|
|
29
|
-
type: string;
|
|
30
|
-
items: {
|
|
31
|
-
type: string;
|
|
32
|
-
};
|
|
33
|
-
};
|
|
34
|
-
variables: {
|
|
35
|
-
type: string;
|
|
36
|
-
};
|
|
37
|
-
secrets: {
|
|
38
|
-
type: string;
|
|
39
|
-
};
|
|
40
|
-
targets: {
|
|
41
|
-
type: string;
|
|
42
|
-
items: {
|
|
43
|
-
type: string;
|
|
44
|
-
};
|
|
45
|
-
};
|
|
46
|
-
exports: {
|
|
47
|
-
type: string;
|
|
48
|
-
properties: {
|
|
49
|
-
kinds: {
|
|
50
|
-
type: string;
|
|
51
|
-
items: {
|
|
52
|
-
type: string;
|
|
53
|
-
};
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
additionalProperties: boolean;
|
|
57
|
-
};
|
|
58
|
-
};
|
|
59
|
-
required: string[];
|
|
60
|
-
additionalProperties: boolean;
|
|
61
|
-
};
|
|
62
3
|
//# sourceMappingURL=module-controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/module/module-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"module-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/module/module-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEtE,wBAAsB,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAY3F"}
|
|
@@ -1,19 +1,4 @@
|
|
|
1
|
-
import { Loader } from "../../loader.js";
|
|
2
1
|
export async function create(resource, ctx) {
|
|
3
|
-
const moduleName = resource.metadata.name;
|
|
4
|
-
const loader = new Loader();
|
|
5
|
-
for (const includePath of resource.include ?? []) {
|
|
6
|
-
const manifests = await loader.loadManifest(includePath, resource.metadata.source, {});
|
|
7
|
-
for (const manifest of manifests) {
|
|
8
|
-
if (manifest.kind === "Kernel.Module") {
|
|
9
|
-
throw new Error(`Included file "${includePath}" must not declare kind: Module`);
|
|
10
|
-
}
|
|
11
|
-
if (!manifest.metadata.module) {
|
|
12
|
-
manifest.metadata.module = moduleName;
|
|
13
|
-
}
|
|
14
|
-
ctx.registerManifest(manifest);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
2
|
return {
|
|
18
3
|
run: async () => {
|
|
19
4
|
for (const target of resource.targets ?? []) {
|
|
@@ -26,34 +11,4 @@ export async function create(resource, ctx) {
|
|
|
26
11
|
},
|
|
27
12
|
};
|
|
28
13
|
}
|
|
29
|
-
export const schema = {
|
|
30
|
-
type: "object",
|
|
31
|
-
properties: {
|
|
32
|
-
kind: { type: "string" },
|
|
33
|
-
metadata: {
|
|
34
|
-
type: "object",
|
|
35
|
-
properties: {
|
|
36
|
-
name: { type: "string" },
|
|
37
|
-
version: { type: "string" },
|
|
38
|
-
source: { type: "string" },
|
|
39
|
-
module: { type: "string" },
|
|
40
|
-
},
|
|
41
|
-
required: ["name"],
|
|
42
|
-
additionalProperties: true,
|
|
43
|
-
},
|
|
44
|
-
include: { type: "array", items: { type: "string" } },
|
|
45
|
-
variables: { type: "object" },
|
|
46
|
-
secrets: { type: "object" },
|
|
47
|
-
targets: { type: "array", items: { type: "string" } },
|
|
48
|
-
exports: {
|
|
49
|
-
type: "object",
|
|
50
|
-
properties: {
|
|
51
|
-
kinds: { type: "array", items: { type: "string" } },
|
|
52
|
-
},
|
|
53
|
-
additionalProperties: true,
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
required: ["metadata"],
|
|
57
|
-
additionalProperties: false,
|
|
58
|
-
};
|
|
59
14
|
//# sourceMappingURL=module-controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-controller.js","sourceRoot":"","sources":["../../../src/controllers/module/module-controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module-controller.js","sourceRoot":"","sources":["../../../src/controllers/module/module-controller.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,QAAa,EAAE,GAAoB;IAC9D,OAAO;QACL,GAAG,EAAE,KAAK,IAAI,EAAE;YACd,KAAK,MAAM,MAAM,IAAK,QAAQ,CAAC,OAAoB,IAAI,EAAE,EAAE,CAAC;gBAC1D,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnB,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,yBAAyB,CAAC,CAAC;gBAC9E,CAAC;gBACD,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import type { ControllerContext, ResourceContext, ResourceInstance, RuntimeResource } from "@telorun/sdk";
|
|
2
2
|
import { ControllerLoader } from "../../controller-loader.js";
|
|
3
3
|
type ResourceDefinitionResource = RuntimeResource & {
|
|
4
|
-
kind: "Definition";
|
|
4
|
+
kind: "Kernel.Definition";
|
|
5
5
|
metadata: {
|
|
6
6
|
[key: string]: any;
|
|
7
7
|
name: string;
|
|
8
8
|
module?: string;
|
|
9
9
|
};
|
|
10
10
|
schema: Record<string, any>;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
controllers: Array<string>;
|
|
11
|
+
capability?: string;
|
|
12
|
+
controllers?: Array<string>;
|
|
14
13
|
};
|
|
15
14
|
/**
|
|
16
15
|
* ResourceDefinition resource - acts as metadata holder for resource type definitions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-definition-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-definition-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,eAAe,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"resource-definition-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-definition-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,eAAe,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAI9D,KAAK,0BAA0B,GAAG,eAAe,GAAG;IAClD,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,cAAM,kBAAmB,YAAW,gBAAgB;IAIhD,QAAQ,CAAC,QAAQ,EAAE,0BAA0B;IAC7C,OAAO,CAAC,gBAAgB;IAJ1B,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAwB;gBAGhD,QAAQ,EAAE,0BAA0B,EACrC,gBAAgB,EAAE,gBAAgB;IAGtC,IAAI,CAAC,GAAG,EAAE,eAAe;CA6BhC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAErD;AAED,wBAAsB,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAW7F;AAED,eAAO,MAAM,MAAM;;;CAGlB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ControllerLoader } from "../../controller-loader.js";
|
|
2
2
|
import { formatAjvErrors, validateResourceDefinition } from "../../manifest-schemas.js";
|
|
3
|
+
import { createTemplateController } from "./resource-template-controller.js";
|
|
3
4
|
/**
|
|
4
5
|
* ResourceDefinition resource - acts as metadata holder for resource type definitions
|
|
5
6
|
* Validates incoming definitions against schema and maintains definition metadata
|
|
@@ -11,14 +12,11 @@ class ResourceDefinition {
|
|
|
11
12
|
this.kind = "ResourceDefinition";
|
|
12
13
|
}
|
|
13
14
|
async init(ctx) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (capSchema) {
|
|
20
|
-
ctx.validateSchema(this.resource, capSchema);
|
|
21
|
-
}
|
|
15
|
+
if (!this.resource.controllers?.length) {
|
|
16
|
+
const controllerInstance = createTemplateController(this.resource);
|
|
17
|
+
ctx.registerDefinition(this.resource);
|
|
18
|
+
await ctx.registerController(this.resource.metadata.module, this.resource.metadata.name, controllerInstance);
|
|
19
|
+
return;
|
|
22
20
|
}
|
|
23
21
|
ctx.emit("ControllerLoading", { controllers: this.resource.controllers });
|
|
24
22
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-definition-controller.js","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-definition-controller.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"resource-definition-controller.js","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-definition-controller.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAc7E;;;GAGG;AACH,MAAM,kBAAkB;IAGtB,YACW,QAAoC,EACrC,gBAAkC;QADjC,aAAQ,GAAR,QAAQ,CAA4B;QACrC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAJnC,SAAI,GAAyB,oBAAoB,CAAC;IAKxD,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,GAAoB;QAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;YACvC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,IAAI,CAAC,QAAe,CAAC,CAAC;YAC1E,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,GAAG,CAAC,kBAAkB,CAC1B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAC7B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAC3B,kBAAkB,CACnB,CAAC;YACF,OAAO;QACT,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC;YACH,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACzD,IAAI,CAAC,QAAQ,CAAC,WAAW,EACzB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAC9B,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC;YACpE,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,GAAG,CAAC,kBAAkB,CAC1B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAC7B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAC3B,kBAAkB,CACnB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACpE,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,QAAQ,CAAC,GAAsB;IAC7C,oEAAoE;AACtE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,QAAa,EAAE,GAAoB;IAC9D,uDAAuD;IACvD,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,+BAA+B,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,eAAe,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAChH,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,MAAM,UAAU,GAAG,QAAiD,CAAC;IACrE,OAAO,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,IAAI;CAC3B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ControllerInstance } from "@telorun/sdk";
|
|
2
|
+
export declare function createTemplateController(definition: {
|
|
3
|
+
schema: Record<string, any>;
|
|
4
|
+
resources?: any[];
|
|
5
|
+
invoke?: string | {
|
|
6
|
+
kind?: string;
|
|
7
|
+
name: string;
|
|
8
|
+
inputs?: Record<string, any>;
|
|
9
|
+
};
|
|
10
|
+
run?: string;
|
|
11
|
+
}): ControllerInstance;
|
|
12
|
+
//# sourceMappingURL=resource-template-controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-template-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-template-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAqC,MAAM,cAAc,CAAC;AAG1F,wBAAgB,wBAAwB,CAAC,UAAU,EAAE;IACnD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,CAAC;IAChF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,kBAAkB,CAiIrB"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { isCompiledValue } from "@telorun/sdk";
|
|
2
|
+
export function createTemplateController(definition) {
|
|
3
|
+
return {
|
|
4
|
+
schema: definition.schema ?? { type: "object", additionalProperties: true },
|
|
5
|
+
create: async (resource, ctx) => {
|
|
6
|
+
const self = { ...resource, name: resource.metadata.name };
|
|
7
|
+
// Old string form: invoke is a plain string or a CompiledValue (after precompile).
|
|
8
|
+
// New object form: invoke is a plain object (non-CompiledValue) with at least `name`.
|
|
9
|
+
const objectInvoke = definition.invoke !== null &&
|
|
10
|
+
typeof definition.invoke === "object" &&
|
|
11
|
+
!isCompiledValue(definition.invoke)
|
|
12
|
+
? definition.invoke
|
|
13
|
+
: null;
|
|
14
|
+
const invokeNameTemplate = objectInvoke ? objectInvoke.name : (definition.invoke ?? null);
|
|
15
|
+
const invokeTarget = invokeNameTemplate
|
|
16
|
+
? ctx.moduleContext.expandWith(invokeNameTemplate, { self })
|
|
17
|
+
: null;
|
|
18
|
+
const runTarget = definition.run
|
|
19
|
+
? ctx.moduleContext.expandWith(definition.run, { self })
|
|
20
|
+
: null;
|
|
21
|
+
const persistentManifests = [];
|
|
22
|
+
let ephemeralTemplate = null;
|
|
23
|
+
for (const template of definition.resources ?? []) {
|
|
24
|
+
const expandedName = ctx.moduleContext.expandWith(template.metadata?.name ?? "", {
|
|
25
|
+
self,
|
|
26
|
+
});
|
|
27
|
+
const isTarget = expandedName === invokeTarget || expandedName === runTarget;
|
|
28
|
+
if (isTarget) {
|
|
29
|
+
ephemeralTemplate = template;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
persistentManifests.push(ctx.moduleContext.expandWith(template, { self }));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const childContext = ctx.spawnChildContext();
|
|
36
|
+
// Registers an ephemeral manifest on ctx.moduleContext so it shares the same
|
|
37
|
+
// resource scope (and can access connections, etc. via getInstance).
|
|
38
|
+
// Tears down and removes the resource after fn() completes.
|
|
39
|
+
const withEphemeral = async (expandedManifest, fn) => {
|
|
40
|
+
const uniqueName = `${expandedManifest.metadata?.name ?? "eph"}__${Math.random().toString(16).slice(2, 8)}`;
|
|
41
|
+
const manifest = {
|
|
42
|
+
...expandedManifest,
|
|
43
|
+
metadata: {
|
|
44
|
+
...expandedManifest.metadata,
|
|
45
|
+
name: uniqueName,
|
|
46
|
+
module: resource.metadata.module,
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
ctx.moduleContext.registerManifest(manifest);
|
|
50
|
+
await ctx.moduleContext.initializeResources();
|
|
51
|
+
const entry = ctx.moduleContext.resourceInstances.get(uniqueName);
|
|
52
|
+
try {
|
|
53
|
+
return await fn(uniqueName);
|
|
54
|
+
}
|
|
55
|
+
finally {
|
|
56
|
+
if (entry?.instance?.teardown)
|
|
57
|
+
await entry.instance.teardown();
|
|
58
|
+
ctx.moduleContext.resourceInstances.delete(uniqueName);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
return {
|
|
62
|
+
init: async () => {
|
|
63
|
+
for (const m of persistentManifests)
|
|
64
|
+
childContext.registerManifest(m);
|
|
65
|
+
await childContext.initializeResources();
|
|
66
|
+
},
|
|
67
|
+
...(invokeTarget && {
|
|
68
|
+
invoke: async (inputs) => {
|
|
69
|
+
if (!ephemeralTemplate) {
|
|
70
|
+
throw new Error(`Template '${resource.metadata.name}': no ephemeral resource for invoke target '${invokeTarget}'`);
|
|
71
|
+
}
|
|
72
|
+
const extraContext = { self, inputs };
|
|
73
|
+
const expanded = ctx.moduleContext.expandWith(ctx.moduleContext.expandWith(ephemeralTemplate, extraContext), extraContext);
|
|
74
|
+
return withEphemeral(expanded, async (name) => {
|
|
75
|
+
const entry = ctx.moduleContext.resourceInstances.get(name);
|
|
76
|
+
if (!entry?.instance?.invoke) {
|
|
77
|
+
throw new Error(`Ephemeral resource '${name}' is not invocable`);
|
|
78
|
+
}
|
|
79
|
+
// New object form: expand objectInvoke.inputs with invoke context and pass as arg.
|
|
80
|
+
// Old string form: the manifest inputs were computed during template expansion;
|
|
81
|
+
// pass expanded.inputs so Sql.Exec/Query controllers receive { sql, bindings }.
|
|
82
|
+
const invokeInputs = objectInvoke?.inputs != null
|
|
83
|
+
? ctx.moduleContext.expandWith(ctx.moduleContext.expandWith(objectInvoke.inputs, extraContext), extraContext)
|
|
84
|
+
: expanded.inputs ?? inputs;
|
|
85
|
+
return entry.instance.invoke(invokeInputs);
|
|
86
|
+
});
|
|
87
|
+
},
|
|
88
|
+
}),
|
|
89
|
+
...(runTarget && {
|
|
90
|
+
run: async () => {
|
|
91
|
+
if (!ephemeralTemplate) {
|
|
92
|
+
throw new Error(`Template '${resource.metadata.name}': no ephemeral resource for run target '${runTarget}'`);
|
|
93
|
+
}
|
|
94
|
+
const extraContext = { self };
|
|
95
|
+
const expanded = ctx.moduleContext.expandWith(ctx.moduleContext.expandWith(ephemeralTemplate, extraContext), extraContext);
|
|
96
|
+
return withEphemeral(expanded, async (name) => {
|
|
97
|
+
const entry = ctx.moduleContext.resourceInstances.get(name);
|
|
98
|
+
if (!entry?.instance?.run) {
|
|
99
|
+
throw new Error(`Ephemeral resource '${name}' is not runnable`);
|
|
100
|
+
}
|
|
101
|
+
return entry.instance.run();
|
|
102
|
+
});
|
|
103
|
+
},
|
|
104
|
+
}),
|
|
105
|
+
teardown: async () => {
|
|
106
|
+
await childContext.teardownResources();
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=resource-template-controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-template-controller.js","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-template-controller.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { ControllerRegistry } from "./controller-registry.js";
|
|
2
2
|
export { EventStream } from "./event-stream.js";
|
|
3
3
|
export { Kernel } from "./kernel.js";
|
|
4
|
-
export { Loader } from "./loader.js";
|
|
5
4
|
export { ManifestRegistry as Registry } from "./registry.js";
|
|
6
5
|
export { ResourceURI } from "./resource-uri.js";
|
|
6
|
+
export type { RuntimeDiagnostic } from "@telorun/sdk";
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
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;AACrC,OAAO,EAAE,
|
|
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;AACrC,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
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export { ControllerRegistry } from "./controller-registry.js";
|
|
2
2
|
export { EventStream } from "./event-stream.js";
|
|
3
3
|
export { Kernel } from "./kernel.js";
|
|
4
|
-
export { Loader } from "./loader.js";
|
|
5
4
|
export { ManifestRegistry as Registry } from "./registry.js";
|
|
6
5
|
export { ResourceURI } from "./resource-uri.js";
|
|
7
6
|
//# sourceMappingURL=index.js.map
|
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,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,
|
|
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,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/kernel.d.ts
CHANGED
|
@@ -1,32 +1,36 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AnalysisRegistry } from "@telorun/analyzer";
|
|
2
|
+
import { Kernel as IKernel, ModuleContext, ResourceDefinition, RuntimeEvent } from "@telorun/sdk";
|
|
2
3
|
import { EventStream } from "./event-stream.js";
|
|
3
4
|
/**
|
|
4
5
|
* Kernel: Central orchestrator managing lifecycle and message bus
|
|
5
6
|
* Handles resource loading, initialization, and execution through controllers
|
|
6
7
|
*/
|
|
7
8
|
export declare class Kernel implements IKernel {
|
|
8
|
-
private loader;
|
|
9
|
+
private readonly loader;
|
|
10
|
+
private readonly analyzer;
|
|
11
|
+
private readonly registry;
|
|
9
12
|
private controllers;
|
|
10
13
|
private eventBus;
|
|
11
14
|
private eventStream;
|
|
12
|
-
private resourceEventBuses;
|
|
13
15
|
private holdCount;
|
|
14
16
|
private idleResolvers;
|
|
15
17
|
private _exitCode;
|
|
16
18
|
private readonly sharedSchemaValidator;
|
|
17
19
|
private rootContext;
|
|
20
|
+
private staticManifests;
|
|
18
21
|
constructor();
|
|
19
22
|
registerController(moduleName: string, kindName: string, controllerInstance: any): Promise<void>;
|
|
20
23
|
/**
|
|
21
24
|
* Register a resource definition with the controller registry
|
|
22
25
|
*/
|
|
23
26
|
registerResourceDefinition(definition: ResourceDefinition): void;
|
|
24
|
-
registerCapability(name: string, schema?: Record<string, any>): void;
|
|
25
27
|
getModuleContext(_moduleName: string): ModuleContext;
|
|
26
28
|
resolveModuleAlias(_declaringModule: string, alias: string): string | undefined;
|
|
27
29
|
registerModuleImport(_declaringModule: string, alias: string, targetModule: string, kinds: string[]): void;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
/** Returns the live analysis registry backed by this kernel's known definitions and aliases.
|
|
31
|
+
* Pass to StaticAnalyzer.analyze() for incremental validation of new manifests against
|
|
32
|
+
* already-registered types (e.g. front-end editor validating a manifest before submitting). */
|
|
33
|
+
getAnalysisRegistry(): AnalysisRegistry;
|
|
30
34
|
/**
|
|
31
35
|
* Load built-in Runtime definitions (e.g., Kernel.Module)
|
|
32
36
|
* Also declares all known module namespaces upfront so that resources can be
|
|
@@ -63,28 +67,21 @@ export declare class Kernel implements IKernel {
|
|
|
63
67
|
private createControllerContext;
|
|
64
68
|
private createResourceContext;
|
|
65
69
|
/**
|
|
66
|
-
* Create
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
+
* Create phase only: resolves the controller, validates the schema, and calls
|
|
71
|
+
* controller.create(). Returns { instance, ctx } so initializeResources can
|
|
72
|
+
* run init() separately in its second phase. Returns null when the controller
|
|
73
|
+
* is not yet registered (retry signal).
|
|
70
74
|
*/
|
|
71
75
|
private _createInstance;
|
|
72
76
|
/**
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
+
* Phase 5 — Inject live instances into reference fields of a resource config.
|
|
78
|
+
*
|
|
79
|
+
* Called between create() and init() for every resource. Walks the definition's
|
|
80
|
+
* field map and replaces each {kind, name} reference value (outside scope visibility
|
|
81
|
+
* paths) with the live ResourceInstance returned by getInstance(name). Fields within
|
|
82
|
+
* scope paths are left as {kind, name} — the controller resolves them at runtime.
|
|
77
83
|
*/
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Returns the unique set of local file paths from which resources were loaded.
|
|
81
|
-
* HTTP/HTTPS sources are excluded — they cannot be watched on disk.
|
|
82
|
-
*/
|
|
83
|
-
/**
|
|
84
|
-
* Reload all resources that were loaded from the given source file.
|
|
85
|
-
* Safe order: parse first → if parse succeeds, tear down old → init new → run new only.
|
|
86
|
-
*/
|
|
87
|
-
private getResourceKey;
|
|
84
|
+
private _injectDependencies;
|
|
88
85
|
/**
|
|
89
86
|
* Enable event streaming to a file (JSONL format)
|
|
90
87
|
*/
|
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,
|
|
1
|
+
{"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../src/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAkB,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAEH,MAAM,IAAI,OAAO,EACjB,aAAa,EAEb,kBAAkB,EAIlB,YAAY,EAEf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMhD;;;GAGG;AACH,qBAAa,MAAO,YAAW,OAAO;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IAEnD,OAAO,CAAC,WAAW,CAAgD;IACnE,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,WAAW,CAAkC;IAQrD,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAyB;IAC/D,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,eAAe,CAA0B;;IAM3C,kBAAkB,CACtB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,kBAAkB,EAAE,GAAG,GACtB,OAAO,CAAC,IAAI,CAAC;IAKhB;;OAEG;IACH,0BAA0B,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI;IAKhE,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa;IAIpD,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI/E,oBAAoB,CAClB,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EAAE,GACd,IAAI;IAKP;;oGAEgG;IAChG,mBAAmB,IAAI,gBAAgB;IAIvC;;;;;OAKG;YACW,sBAAsB;IAuBpC;;OAEG;IACG,cAAc,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4E5D;;;OAGG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsDtB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI/B,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,IAAI;IAyBxC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;;;OAIG;IACH,QAAQ,IAAI,IAAI;IAKhB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIxC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAI/E,OAAO,CAAC,uBAAuB;IAmB/B,OAAO,CAAC,qBAAqB;IAY7B;;;;;OAKG;YACW,eAAe;IAkF7B;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAkB3B;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAI1B;;OAEG;IACH,cAAc,IAAI,WAAW;IAI7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAS5B"}
|