@telorun/kernel 0.2.4 → 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/boot-context-registry.d.ts.map +1 -1
- package/dist/boot-context-registry.js +6 -6
- package/dist/boot-context-registry.js.map +1 -1
- package/dist/capabilities/capabilities/component.yaml +2 -1
- package/dist/capabilities/capabilities/executable.yaml +2 -1
- package/dist/capabilities/capabilities/handler.yaml +2 -1
- package/dist/capabilities/capabilities/listener.yaml +2 -1
- package/dist/capabilities/capabilities/provider.yaml +2 -1
- package/dist/capabilities/capabilities/template.yaml +2 -1
- package/dist/capabilities/capabilities/type.yaml +2 -1
- 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/component.yaml +1 -1
- 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/executable.yaml +1 -1
- 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/handler.yaml +1 -1
- 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/listener.yaml +1 -1
- 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/provider.yaml +1 -1
- 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/template.yaml +1 -1
- 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/capabilities/type.yaml +1 -1
- package/dist/controller-loader.d.ts +1 -1
- package/dist/controller-loader.d.ts.map +1 -1
- package/dist/controller-loader.js +6 -3
- package/dist/controller-loader.js.map +1 -1
- package/dist/controller-registry.d.ts +1 -6
- 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 +35 -0
- package/dist/controllers/module/import-controller.d.ts.map +1 -0
- package/dist/controllers/module/import-controller.js +113 -0
- package/dist/controllers/module/import-controller.js.map +1 -0
- package/dist/controllers/module/module-controller.d.ts +2 -15
- package/dist/controllers/module/module-controller.d.ts.map +1 -1
- package/dist/controllers/module/module-controller.js +9 -90
- 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 +17 -11
- 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/evaluation-context.d.ts +91 -0
- package/dist/evaluation-context.d.ts.map +1 -0
- package/dist/evaluation-context.js +220 -0
- package/dist/evaluation-context.js.map +1 -0
- package/dist/execution-context.d.ts +13 -0
- package/dist/execution-context.d.ts.map +1 -0
- package/dist/execution-context.js +14 -0
- package/dist/execution-context.js.map +1 -0
- package/dist/index.d.ts +1 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -3
- package/dist/index.js.map +1 -1
- package/dist/kernel.d.ts +31 -42
- package/dist/kernel.d.ts.map +1 -1
- package/dist/kernel.js +315 -371
- package/dist/kernel.js.map +1 -1
- package/dist/loader.d.ts +11 -10
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +50 -112
- 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 +28 -24
- 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 -49
- package/dist/manifest-schemas.d.ts.map +1 -1
- package/dist/manifest-schemas.js +58 -37
- package/dist/manifest-schemas.js.map +1 -1
- package/dist/module-context-registry.d.ts +48 -0
- package/dist/module-context-registry.d.ts.map +1 -0
- package/dist/module-context-registry.js +91 -0
- package/dist/module-context-registry.js.map +1 -0
- package/dist/module-context.d.ts +31 -0
- package/dist/module-context.d.ts.map +1 -0
- package/dist/module-context.js +67 -0
- package/dist/module-context.js.map +1 -0
- package/dist/registry.d.ts +1 -2
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +3 -3
- package/dist/registry.js.map +1 -1
- package/dist/resource-context.d.ts +27 -10
- package/dist/resource-context.d.ts.map +1 -1
- package/dist/resource-context.js +100 -44
- package/dist/resource-context.js.map +1 -1
- package/dist/schema-valiator.d.ts.map +1 -1
- package/dist/schema-valiator.js +16 -3
- package/dist/schema-valiator.js.map +1 -1
- package/dist/snapshot-serializer.d.ts +1 -2
- package/dist/snapshot-serializer.d.ts.map +1 -1
- package/dist/snapshot-serializer.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +11 -9
- package/src/boot-context-registry.ts +169 -0
- package/src/controller-loader.ts +299 -0
- package/src/controller-registry.ts +191 -0
- package/src/controllers/module/import-controller.ts +143 -0
- package/src/controllers/module/module-controller.ts +16 -0
- package/src/controllers/resource-definition/resource-definition-controller.ts +86 -0
- package/src/controllers/resource-definition/resource-definition.json +18 -0
- package/src/controllers/resource-definition/resource-template-controller.ts +138 -0
- package/src/event-stream.ts +121 -0
- package/src/events.ts +99 -0
- package/src/index.ts +7 -0
- package/src/kernel.ts +647 -0
- package/src/loader.ts +134 -0
- package/src/manifest-adapters/local-file-adapter.ts +62 -0
- package/src/manifest-adapters/manifest-adapter.ts +35 -0
- package/src/manifest-schemas.ts +85 -0
- package/src/registry.ts +137 -0
- package/src/resource-context.ts +267 -0
- package/src/resource-uri.ts +200 -0
- package/src/schema-valiator.ts +68 -0
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -109
- package/dist/cli.js.map +0 -1
- package/dist/expressions.d.ts +0 -20
- package/dist/expressions.d.ts.map +0 -1
- package/dist/expressions.js +0 -253
- package/dist/expressions.js.map +0 -1
- package/dist/src/controllers/module/module.yaml +0 -32
- package/dist/template-definition.d.ts +0 -38
- package/dist/template-definition.d.ts.map +0 -1
- package/dist/template-definition.js +0 -26
- package/dist/template-definition.js.map +0 -1
- package/dist/template-expander.d.ts +0 -19
- package/dist/template-expander.d.ts.map +0 -1
- package/dist/template-expander.js +0 -425
- package/dist/template-expander.js.map +0 -1
|
@@ -1,45 +1,68 @@
|
|
|
1
|
-
import AjvModule
|
|
2
|
-
export declare const ModuleManifestSchema: import("@sinclair/typebox").TObject<{
|
|
3
|
-
kind: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
4
|
-
name: import("@sinclair/typebox").TString;
|
|
5
|
-
version: import("@sinclair/typebox").TString;
|
|
6
|
-
imports: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
7
|
-
definitions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
8
|
-
entry: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
9
|
-
entries: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
10
|
-
runtime: import("@sinclair/typebox").TString;
|
|
11
|
-
entry: import("@sinclair/typebox").TString;
|
|
12
|
-
}>>>;
|
|
13
|
-
importEntries: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
14
|
-
runtime: import("@sinclair/typebox").TString;
|
|
15
|
-
entry: import("@sinclair/typebox").TString;
|
|
16
|
-
}>>>>;
|
|
17
|
-
}>;
|
|
1
|
+
import AjvModule from "ajv";
|
|
18
2
|
export declare const RuntimeResourceSchema: import("@sinclair/typebox").TObject<{
|
|
19
3
|
kind: import("@sinclair/typebox").TString;
|
|
20
4
|
metadata: import("@sinclair/typebox").TObject<{
|
|
21
5
|
name: import("@sinclair/typebox").TString;
|
|
22
6
|
}>;
|
|
23
7
|
}>;
|
|
24
|
-
export declare const ResourceDefinitionSchema:
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
}
|
|
8
|
+
export declare const ResourceDefinitionSchema: {
|
|
9
|
+
oneOf: ({
|
|
10
|
+
required: string[];
|
|
11
|
+
properties: {
|
|
12
|
+
capability: {
|
|
13
|
+
const: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
not?: undefined;
|
|
17
|
+
unevaluatedProperties?: undefined;
|
|
18
|
+
} | {
|
|
19
|
+
not: {
|
|
20
|
+
required: string[];
|
|
21
|
+
properties: {
|
|
22
|
+
capability: {
|
|
23
|
+
enum: readonly ["Kernel.Service", "Kernel.Runnable", "Kernel.Invocable", "Kernel.Provider", "Kernel.Type", "Kernel.Mount"];
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
unevaluatedProperties: boolean;
|
|
28
|
+
required?: undefined;
|
|
29
|
+
properties?: undefined;
|
|
30
|
+
})[];
|
|
31
|
+
type: string;
|
|
32
|
+
required: string[];
|
|
33
|
+
properties: {
|
|
34
|
+
kind: {
|
|
35
|
+
const: string;
|
|
36
|
+
};
|
|
37
|
+
metadata: {
|
|
38
|
+
type: string;
|
|
39
|
+
required: string[];
|
|
40
|
+
properties: {
|
|
41
|
+
name: {
|
|
42
|
+
type: string;
|
|
43
|
+
};
|
|
44
|
+
module: {
|
|
45
|
+
type: string;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
additionalProperties: boolean;
|
|
49
|
+
};
|
|
50
|
+
capability: {
|
|
51
|
+
type: string;
|
|
52
|
+
};
|
|
53
|
+
schema: {
|
|
54
|
+
type: string;
|
|
55
|
+
additionalProperties: boolean;
|
|
56
|
+
};
|
|
57
|
+
controllers: {
|
|
58
|
+
type: string;
|
|
59
|
+
items: {
|
|
60
|
+
type: string;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
unevaluatedProperties: boolean;
|
|
65
|
+
};
|
|
43
66
|
export declare const validateRuntimeResource: AjvModule.ValidateFunction<{
|
|
44
67
|
kind: any;
|
|
45
68
|
metadata: any;
|
|
@@ -49,18 +72,7 @@ export declare const validateRuntimeResource: AjvModule.ValidateFunction<{
|
|
|
49
72
|
metadata: any;
|
|
50
73
|
}>;
|
|
51
74
|
export declare const validateResourceDefinition: AjvModule.ValidateFunction<{
|
|
52
|
-
|
|
53
|
-
kind: any;
|
|
54
|
-
metadata: any;
|
|
55
|
-
capabilities: any;
|
|
56
|
-
} & {
|
|
57
|
-
schema: any;
|
|
58
|
-
} & {
|
|
59
|
-
kind: any;
|
|
60
|
-
} & {
|
|
61
|
-
metadata: any;
|
|
62
|
-
} & {
|
|
63
|
-
capabilities: any;
|
|
75
|
+
[x: string]: {};
|
|
64
76
|
}>;
|
|
65
|
-
export declare function formatAjvErrors(errors:
|
|
77
|
+
export declare function formatAjvErrors(errors: any[] | null | undefined): string;
|
|
66
78
|
//# sourceMappingURL=manifest-schemas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-schemas.d.ts","sourceRoot":"","sources":["../src/manifest-schemas.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,
|
|
1
|
+
{"version":3,"file":"manifest-schemas.d.ts","sourceRoot":"","sources":["../src/manifest-schemas.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,KAAK,CAAC;AAI5B,eAAO,MAAM,qBAAqB;;;;;EAMjC,CAAC;AAkCF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBpC,CAAC;AAKF,eAAO,MAAM,uBAAuB;;;;;;;EAAqC,CAAC;AAC1E,eAAO,MAAM,0BAA0B;;EAAwC,CAAC;AAEhF,wBAAgB,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAQxE"}
|
package/dist/manifest-schemas.js
CHANGED
|
@@ -1,54 +1,75 @@
|
|
|
1
1
|
import { Type } from "@sinclair/typebox";
|
|
2
2
|
import AjvModule from "ajv";
|
|
3
|
+
import addFormats from "ajv-formats";
|
|
3
4
|
const Ajv = AjvModule.default ?? AjvModule;
|
|
4
|
-
const EntrypointSchema = Type.Object({
|
|
5
|
-
runtime: Type.String(),
|
|
6
|
-
entry: Type.String(),
|
|
7
|
-
}, { additionalProperties: false });
|
|
8
|
-
const PackageControllerSchema = Type.Object({
|
|
9
|
-
runtime: Type.String(),
|
|
10
|
-
registry: Type.Optional(Type.String()),
|
|
11
|
-
package: Type.String(),
|
|
12
|
-
entry: Type.String(),
|
|
13
|
-
}, { additionalProperties: false });
|
|
14
|
-
export const ModuleManifestSchema = Type.Object({
|
|
15
|
-
kind: Type.Optional(Type.String()),
|
|
16
|
-
name: Type.String(),
|
|
17
|
-
version: Type.String(),
|
|
18
|
-
imports: Type.Optional(Type.Array(Type.String())),
|
|
19
|
-
definitions: Type.Optional(Type.Array(Type.String())),
|
|
20
|
-
entry: Type.Optional(Type.String()),
|
|
21
|
-
entries: Type.Optional(Type.Array(EntrypointSchema)),
|
|
22
|
-
importEntries: Type.Optional(Type.Record(Type.String(), Type.Array(EntrypointSchema))),
|
|
23
|
-
}, { additionalProperties: true });
|
|
24
5
|
export const RuntimeResourceSchema = Type.Object({
|
|
25
6
|
kind: Type.String(),
|
|
26
7
|
metadata: Type.Object({ name: Type.String() }, { additionalProperties: true }),
|
|
27
8
|
}, { additionalProperties: true });
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
9
|
+
const metadataSchema = {
|
|
10
|
+
type: "object",
|
|
11
|
+
required: ["name"],
|
|
12
|
+
properties: {
|
|
13
|
+
name: { type: "string" },
|
|
14
|
+
module: { type: "string" },
|
|
15
|
+
},
|
|
16
|
+
additionalProperties: true,
|
|
17
|
+
};
|
|
18
|
+
const baseDefinition = {
|
|
19
|
+
type: "object",
|
|
20
|
+
required: ["kind", "metadata"],
|
|
21
|
+
properties: {
|
|
22
|
+
kind: { const: "Kernel.Definition" },
|
|
23
|
+
metadata: metadataSchema,
|
|
24
|
+
capability: { type: "string" },
|
|
25
|
+
schema: { type: "object", additionalProperties: true },
|
|
26
|
+
controllers: { type: "array", items: { type: "string" } },
|
|
27
|
+
},
|
|
28
|
+
unevaluatedProperties: false,
|
|
29
|
+
};
|
|
30
|
+
const KNOWN_CAPABILITIES = [
|
|
31
|
+
"Kernel.Service",
|
|
32
|
+
"Kernel.Runnable",
|
|
33
|
+
"Kernel.Invocable",
|
|
34
|
+
"Kernel.Provider",
|
|
35
|
+
"Kernel.Type",
|
|
36
|
+
"Kernel.Mount",
|
|
37
|
+
];
|
|
38
|
+
export const ResourceDefinitionSchema = {
|
|
39
|
+
...baseDefinition,
|
|
40
|
+
oneOf: [
|
|
41
|
+
{ required: ["capability"], properties: { capability: { const: "Kernel.Service" } } },
|
|
42
|
+
{ required: ["capability"], properties: { capability: { const: "Kernel.Runnable" } } },
|
|
43
|
+
{ required: ["capability"], properties: { capability: { const: "Kernel.Invocable" } } },
|
|
44
|
+
{ required: ["capability"], properties: { capability: { const: "Kernel.Provider" } } },
|
|
45
|
+
{ required: ["capability"], properties: { capability: { const: "Kernel.Type" } } },
|
|
46
|
+
{
|
|
47
|
+
required: ["capability"],
|
|
48
|
+
properties: {
|
|
49
|
+
capability: { const: "Kernel.Mount" },
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
// Unknown/absent capability: open schema for third-party extensibility
|
|
53
|
+
{
|
|
54
|
+
not: {
|
|
55
|
+
required: ["capability"],
|
|
56
|
+
properties: { capability: { enum: KNOWN_CAPABILITIES } },
|
|
57
|
+
},
|
|
58
|
+
unevaluatedProperties: true,
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
};
|
|
39
62
|
const ajv = new Ajv({ allErrors: true, strict: false });
|
|
40
|
-
|
|
63
|
+
addFormats.default(ajv);
|
|
41
64
|
export const validateRuntimeResource = ajv.compile(RuntimeResourceSchema);
|
|
42
65
|
export const validateResourceDefinition = ajv.compile(ResourceDefinitionSchema);
|
|
43
66
|
export function formatAjvErrors(errors) {
|
|
44
|
-
if (!errors || errors.length === 0)
|
|
67
|
+
if (!errors || errors.length === 0)
|
|
45
68
|
return "Unknown schema error";
|
|
46
|
-
}
|
|
47
69
|
return errors
|
|
48
70
|
.map((err) => {
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
return `${path} ${message}`;
|
|
71
|
+
const p = err.instancePath || "/";
|
|
72
|
+
return `${p} ${err.message ?? "is invalid"}`;
|
|
52
73
|
})
|
|
53
74
|
.join("; ");
|
|
54
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-schemas.js","sourceRoot":"","sources":["../src/manifest-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"manifest-schemas.js","sourceRoot":"","sources":["../src/manifest-schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { EmitEvent, InstanceFactory, ModuleContext } from "@telorun/sdk";
|
|
2
|
+
/**
|
|
3
|
+
* Per-module ModuleContext registry, keyed by module name.
|
|
4
|
+
*
|
|
5
|
+
* Stores persistent (stateful) ModuleContext instances that accumulate
|
|
6
|
+
* variables, secrets, and resources throughout the initialization phase.
|
|
7
|
+
* Each instance is created once and mutated in place — no ephemeral snapshots.
|
|
8
|
+
*/
|
|
9
|
+
export declare class ModuleContextRegistry {
|
|
10
|
+
private readonly createInstance;
|
|
11
|
+
private readonly emitEvent;
|
|
12
|
+
private readonly store;
|
|
13
|
+
private readonly declaredModules;
|
|
14
|
+
constructor(createInstance: InstanceFactory | undefined, emitEvent: EmitEvent);
|
|
15
|
+
/**
|
|
16
|
+
* Mark a module name as declared and ensure its persistent context exists.
|
|
17
|
+
* Called by the kernel whenever a kind: Kernel.Module manifest is registered
|
|
18
|
+
* so that getContext() can distinguish "not yet populated" from "unknown".
|
|
19
|
+
*/
|
|
20
|
+
declareModule(moduleName: string): void;
|
|
21
|
+
private getOrCreate;
|
|
22
|
+
/**
|
|
23
|
+
* Set variables and secrets on the module's persistent context.
|
|
24
|
+
* Called by the kernel after a Kernel.Module resource is created.
|
|
25
|
+
*/
|
|
26
|
+
setVariablesAndSecrets(moduleName: string, variables: Record<string, unknown>, secrets: Record<string, unknown>): void;
|
|
27
|
+
/**
|
|
28
|
+
* Register or update a single resource's exported properties in the
|
|
29
|
+
* module's `resources` namespace.
|
|
30
|
+
*/
|
|
31
|
+
setResource(moduleName: string, resourceName: string, props: Record<string, unknown>): void;
|
|
32
|
+
/**
|
|
33
|
+
* Return the persistent ModuleContext for the given module name.
|
|
34
|
+
*
|
|
35
|
+
* If the module has been declared but not yet populated, returns the empty
|
|
36
|
+
* context so the multi-pass init loop can retry once the import controller
|
|
37
|
+
* has injected variables and secrets.
|
|
38
|
+
*
|
|
39
|
+
* If the module name is completely unknown throws immediately so the error
|
|
40
|
+
* surfaces as an init failure rather than a cryptic CEL runtime message.
|
|
41
|
+
*/
|
|
42
|
+
getContext(moduleName: string): ModuleContext;
|
|
43
|
+
hasModule(moduleName: string): boolean;
|
|
44
|
+
isDeclared(moduleName: string): boolean;
|
|
45
|
+
/** Iterate all registered module contexts (used for kernel-wide queries). */
|
|
46
|
+
allContexts(): IterableIterator<ModuleContext>;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=module-context-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-context-registry.d.ts","sourceRoot":"","sources":["../src/module-context-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEzE;;;;;;GAMG;AACH,qBAAa,qBAAqB;IAK9B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAL5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoC;IAC1D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;gBAGlC,cAAc,EAAE,eAAe,YAAmB,EAClD,SAAS,EAAE,SAAS;IAGvC;;;;OAIG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAWvC,OAAO,CAAC,WAAW;IAUnB;;;OAGG;IACH,sBAAsB,CACpB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI;IAMP;;;OAGG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI3F;;;;;;;;;OASG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa;IAsB7C,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAItC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAIvC,6EAA6E;IAC7E,WAAW,IAAI,gBAAgB,CAAC,aAAa,CAAC;CAG/C"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { ModuleContext } from "@telorun/sdk";
|
|
2
|
+
/**
|
|
3
|
+
* Per-module ModuleContext registry, keyed by module name.
|
|
4
|
+
*
|
|
5
|
+
* Stores persistent (stateful) ModuleContext instances that accumulate
|
|
6
|
+
* variables, secrets, and resources throughout the initialization phase.
|
|
7
|
+
* Each instance is created once and mutated in place — no ephemeral snapshots.
|
|
8
|
+
*/
|
|
9
|
+
export class ModuleContextRegistry {
|
|
10
|
+
constructor(createInstance = async () => null, emitEvent) {
|
|
11
|
+
this.createInstance = createInstance;
|
|
12
|
+
this.emitEvent = emitEvent;
|
|
13
|
+
this.store = new Map();
|
|
14
|
+
this.declaredModules = new Set();
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Mark a module name as declared and ensure its persistent context exists.
|
|
18
|
+
* Called by the kernel whenever a kind: Kernel.Module manifest is registered
|
|
19
|
+
* so that getContext() can distinguish "not yet populated" from "unknown".
|
|
20
|
+
*/
|
|
21
|
+
declareModule(moduleName) {
|
|
22
|
+
// this.declaredModules.add(moduleName);
|
|
23
|
+
// // Idempotent: if the module context was already created (e.g. by a previous pass
|
|
24
|
+
// // of the multi-pass init loop that was retried), keep the existing context.
|
|
25
|
+
// if (this.store.has(moduleName)) return;
|
|
26
|
+
// const ctx = new ModuleContext({}, {}, {}, [], this.createInstance, this.emitEvent);
|
|
27
|
+
// // Every module automatically gets access to Kernel.* built-in kinds.
|
|
28
|
+
// ctx.registerImport("Kernel", "Kernel", []);
|
|
29
|
+
// this.store.set(moduleName, ctx);
|
|
30
|
+
}
|
|
31
|
+
getOrCreate(moduleName) {
|
|
32
|
+
if (!this.store.has(moduleName)) {
|
|
33
|
+
this.store.set(moduleName, new ModuleContext("", {}, {}, {}, [], this.createInstance, this.emitEvent));
|
|
34
|
+
}
|
|
35
|
+
return this.store.get(moduleName);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Set variables and secrets on the module's persistent context.
|
|
39
|
+
* Called by the kernel after a Kernel.Module resource is created.
|
|
40
|
+
*/
|
|
41
|
+
setVariablesAndSecrets(moduleName, variables, secrets) {
|
|
42
|
+
const ctx = this.getOrCreate(moduleName);
|
|
43
|
+
ctx.setVariables(variables);
|
|
44
|
+
ctx.setSecrets(secrets);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Register or update a single resource's exported properties in the
|
|
48
|
+
* module's `resources` namespace.
|
|
49
|
+
*/
|
|
50
|
+
setResource(moduleName, resourceName, props) {
|
|
51
|
+
this.getOrCreate(moduleName).setResource(resourceName, props);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Return the persistent ModuleContext for the given module name.
|
|
55
|
+
*
|
|
56
|
+
* If the module has been declared but not yet populated, returns the empty
|
|
57
|
+
* context so the multi-pass init loop can retry once the import controller
|
|
58
|
+
* has injected variables and secrets.
|
|
59
|
+
*
|
|
60
|
+
* If the module name is completely unknown throws immediately so the error
|
|
61
|
+
* surfaces as an init failure rather than a cryptic CEL runtime message.
|
|
62
|
+
*/
|
|
63
|
+
getContext(moduleName) {
|
|
64
|
+
// throw new Error("asd");
|
|
65
|
+
const ctx = this.store.get(moduleName);
|
|
66
|
+
if (!ctx) {
|
|
67
|
+
if (!this.declaredModules.has(moduleName)) {
|
|
68
|
+
const known = [...this.declaredModules].join(", ") || "(none)";
|
|
69
|
+
throw new Error(`Module '${moduleName}' not found. ` +
|
|
70
|
+
`Check that metadata.module matches a declared module name. ` +
|
|
71
|
+
`Known modules: ${known}.`);
|
|
72
|
+
}
|
|
73
|
+
// Declared but context not yet populated — return the empty context that
|
|
74
|
+
// declareModule() already created.
|
|
75
|
+
return (this.store.get(moduleName) ??
|
|
76
|
+
new ModuleContext("", {}, {}, {}, [], this.createInstance, this.emitEvent));
|
|
77
|
+
}
|
|
78
|
+
return ctx;
|
|
79
|
+
}
|
|
80
|
+
hasModule(moduleName) {
|
|
81
|
+
return this.store.has(moduleName);
|
|
82
|
+
}
|
|
83
|
+
isDeclared(moduleName) {
|
|
84
|
+
return this.declaredModules.has(moduleName);
|
|
85
|
+
}
|
|
86
|
+
/** Iterate all registered module contexts (used for kernel-wide queries). */
|
|
87
|
+
allContexts() {
|
|
88
|
+
return this.store.values();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=module-context-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-context-registry.js","sourceRoot":"","sources":["../src/module-context-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,aAAa,EAAE,MAAM,cAAc,CAAC;AAEzE;;;;;;GAMG;AACH,MAAM,OAAO,qBAAqB;IAIhC,YACmB,iBAAkC,KAAK,IAAI,EAAE,CAAC,IAAI,EAClD,SAAoB;QADpB,mBAAc,GAAd,cAAc,CAAoC;QAClD,cAAS,GAAT,SAAS,CAAW;QALtB,UAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;QACzC,oBAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAKlD,CAAC;IAEJ;;;;OAIG;IACH,aAAa,CAAC,UAAkB;QAC9B,wCAAwC;QACxC,oFAAoF;QACpF,+EAA+E;QAC/E,0CAA0C;QAC1C,sFAAsF;QACtF,wEAAwE;QACxE,8CAA8C;QAC9C,mCAAmC;IACrC,CAAC;IAEO,WAAW,CAAC,UAAkB;QACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,UAAU,EACV,IAAI,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,CAC3E,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,sBAAsB,CACpB,UAAkB,EAClB,SAAkC,EAClC,OAAgC;QAEhC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACzC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC5B,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,UAAkB,EAAE,YAAoB,EAAE,KAA8B;QAClF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;;OASG;IACH,UAAU,CAAC,UAAkB;QAC3B,0BAA0B;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC1C,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;gBAC/D,MAAM,IAAI,KAAK,CACb,WAAW,UAAU,eAAe;oBAClC,6DAA6D;oBAC7D,kBAAkB,KAAK,GAAG,CAC7B,CAAC;YACJ,CAAC;YACD,yEAAyE;YACzE,mCAAmC;YACnC,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;gBAC1B,IAAI,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,CAC3E,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,SAAS,CAAC,UAAkB;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,UAAU,CAAC,UAAkB;QAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,6EAA6E;IAC7E,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { EvaluationContext, InstanceFactory } from "./evaluation-context.js";
|
|
2
|
+
/**
|
|
3
|
+
* Persistent, module-scoped context. Three reserved CEL namespaces:
|
|
4
|
+
* variables, secrets, resources.
|
|
5
|
+
*
|
|
6
|
+
* Unlike the base EvaluationContext, ModuleContext is stateful and mutable:
|
|
7
|
+
* variables/secrets/resources accumulate during multi-pass initialization and
|
|
8
|
+
* the context record is rebuilt on each mutation. Import aliases are tracked
|
|
9
|
+
* here for alias-prefixed kind resolution (e.g. MyImport.Http.Route).
|
|
10
|
+
*
|
|
11
|
+
* Imported modules are surfaced under resources.<alias> alongside local
|
|
12
|
+
* resources — no separate imports namespace needed.
|
|
13
|
+
*/
|
|
14
|
+
export declare class ModuleContext extends EvaluationContext {
|
|
15
|
+
private _variables;
|
|
16
|
+
private _secrets;
|
|
17
|
+
private _resources;
|
|
18
|
+
/** Maps import alias → real module name for kind resolution. */
|
|
19
|
+
readonly importAliases: Map<string, string>;
|
|
20
|
+
constructor(variables?: Record<string, unknown>, secrets?: Record<string, unknown>, resources?: Record<string, unknown>, createInstance?: InstanceFactory);
|
|
21
|
+
get variables(): Record<string, unknown>;
|
|
22
|
+
get secrets(): Record<string, unknown>;
|
|
23
|
+
get resources(): Record<string, unknown>;
|
|
24
|
+
setVariables(vars: Record<string, unknown>): void;
|
|
25
|
+
setSecrets(secrets: Record<string, unknown>): void;
|
|
26
|
+
setResource(name: string, props: Record<string, unknown>): void;
|
|
27
|
+
/** Record that alias in this module refers to targetModule. */
|
|
28
|
+
declareAlias(alias: string, targetModule: string): void;
|
|
29
|
+
private _rebuildContext;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=module-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-context.d.ts","sourceRoot":"","sources":["../src/module-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAY7E;;;;;;;;;;;GAWG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;IAClD,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,UAAU,CAA0B;IAE5C,gEAAgE;IAChE,QAAQ,CAAC,aAAa,sBAA6B;gBAGjD,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACvC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACvC,cAAc,GAAE,eAAkC;IASpD,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEvC;IAED,IAAI,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAErC;IAED,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEvC;IAED,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAKjD,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAKlD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAK/D,+DAA+D;IAC/D,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAIvD,OAAO,CAAC,eAAe;CAQxB"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { EvaluationContext } from "./evaluation-context.js";
|
|
2
|
+
function collectSecretValues(secrets) {
|
|
3
|
+
const values = new Set();
|
|
4
|
+
for (const value of Object.values(secrets)) {
|
|
5
|
+
if (typeof value === "string" && value.length > 0) {
|
|
6
|
+
values.add(value);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return values;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Persistent, module-scoped context. Three reserved CEL namespaces:
|
|
13
|
+
* variables, secrets, resources.
|
|
14
|
+
*
|
|
15
|
+
* Unlike the base EvaluationContext, ModuleContext is stateful and mutable:
|
|
16
|
+
* variables/secrets/resources accumulate during multi-pass initialization and
|
|
17
|
+
* the context record is rebuilt on each mutation. Import aliases are tracked
|
|
18
|
+
* here for alias-prefixed kind resolution (e.g. MyImport.Http.Route).
|
|
19
|
+
*
|
|
20
|
+
* Imported modules are surfaced under resources.<alias> alongside local
|
|
21
|
+
* resources — no separate imports namespace needed.
|
|
22
|
+
*/
|
|
23
|
+
export class ModuleContext extends EvaluationContext {
|
|
24
|
+
constructor(variables = {}, secrets = {}, resources = {}, createInstance = async () => null) {
|
|
25
|
+
super({}, createInstance);
|
|
26
|
+
/** Maps import alias → real module name for kind resolution. */
|
|
27
|
+
this.importAliases = new Map();
|
|
28
|
+
this._variables = variables;
|
|
29
|
+
this._secrets = secrets;
|
|
30
|
+
this._resources = resources;
|
|
31
|
+
this._rebuildContext();
|
|
32
|
+
}
|
|
33
|
+
get variables() {
|
|
34
|
+
return this._variables;
|
|
35
|
+
}
|
|
36
|
+
get secrets() {
|
|
37
|
+
return this._secrets;
|
|
38
|
+
}
|
|
39
|
+
get resources() {
|
|
40
|
+
return this._resources;
|
|
41
|
+
}
|
|
42
|
+
setVariables(vars) {
|
|
43
|
+
this._variables = vars;
|
|
44
|
+
this._rebuildContext();
|
|
45
|
+
}
|
|
46
|
+
setSecrets(secrets) {
|
|
47
|
+
this._secrets = secrets;
|
|
48
|
+
this._rebuildContext();
|
|
49
|
+
}
|
|
50
|
+
setResource(name, props) {
|
|
51
|
+
this._resources = { ...this._resources, [name]: props };
|
|
52
|
+
this._rebuildContext();
|
|
53
|
+
}
|
|
54
|
+
/** Record that alias in this module refers to targetModule. */
|
|
55
|
+
declareAlias(alias, targetModule) {
|
|
56
|
+
this.importAliases.set(alias, targetModule);
|
|
57
|
+
}
|
|
58
|
+
_rebuildContext() {
|
|
59
|
+
this._context = {
|
|
60
|
+
variables: this._variables,
|
|
61
|
+
secrets: this._secrets,
|
|
62
|
+
resources: this._resources,
|
|
63
|
+
};
|
|
64
|
+
this._secretValues = collectSecretValues(this._secrets);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=module-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-context.js","sourceRoot":"","sources":["../src/module-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAmB,MAAM,yBAAyB,CAAC;AAE7E,SAAS,mBAAmB,CAAC,OAAgC;IAC3D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,aAAc,SAAQ,iBAAiB;IAQlD,YACE,YAAqC,EAAE,EACvC,UAAmC,EAAE,EACrC,YAAqC,EAAE,EACvC,iBAAkC,KAAK,IAAI,EAAE,CAAC,IAAI;QAElD,KAAK,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;QAT5B,gEAAgE;QACvD,kBAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;QASjD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,YAAY,CAAC,IAA6B;QACxC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,OAAgC;QACzC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,KAA8B;QACtD,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;QACxD,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,+DAA+D;IAC/D,YAAY,CAAC,KAAa,EAAE,YAAoB;QAC9C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC9C,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,QAAQ,GAAG;YACd,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,SAAS,EAAE,IAAI,CAAC,UAAU;SAC3B,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;CACF"}
|
package/dist/registry.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { RuntimeResource } from "@telorun/sdk";
|
|
2
|
-
import { ResourceManifest } from "./types.js";
|
|
1
|
+
import { ResourceManifest, RuntimeResource } from "@telorun/sdk";
|
|
3
2
|
/**
|
|
4
3
|
* Registry: Indexes resources by composite key of Kind and Name
|
|
5
4
|
* Maintains URI-based lookup for tracking resource origins and lineage
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAgB,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/E;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAyD;IAC1E,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,QAAQ,CAA4C;IAC5D,OAAO,CAAC,WAAW,CAA8C;IACjE,OAAO,CAAC,UAAU,CAA8C;IAEhE,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAoDzC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI/C,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAUxC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI7D,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAK3C;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAInD;;OAEG;IACH,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAI3D;;;OAGG;IACH,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAIvD;;OAEG;IACH,oBAAoB,IAAI,gBAAgB,EAAE;IAU1C;;OAEG;IACH,iBAAiB,IAAI,gBAAgB,EAAE;IAIvC,MAAM,IAAI,gBAAgB,EAAE;CAK7B"}
|
package/dist/registry.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { RuntimeError } from "@telorun/sdk";
|
|
1
2
|
import { ResourceURI } from "./resource-uri.js";
|
|
2
|
-
import { RuntimeError } from "./types.js";
|
|
3
3
|
/**
|
|
4
4
|
* Registry: Indexes resources by composite key of Kind and Name
|
|
5
5
|
* Maintains URI-based lookup for tracking resource origins and lineage
|
|
@@ -48,8 +48,8 @@ export class ManifestRegistry {
|
|
|
48
48
|
this.depthIndex.set(depth, []);
|
|
49
49
|
}
|
|
50
50
|
this.depthIndex.get(depth).push(resource);
|
|
51
|
-
// Check if this is a
|
|
52
|
-
// if (kind === '
|
|
51
|
+
// Check if this is a Kernel.KindDefinition that creates a new kind
|
|
52
|
+
// if (kind === 'Kernel.KindDefinition') {
|
|
53
53
|
// const newKind = name;
|
|
54
54
|
// const parentKind = resource?.extends;
|
|
55
55
|
// if (parentKind) {
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|