@telorun/kernel 0.4.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/controller-loader.d.ts +19 -20
- package/dist/controller-loader.d.ts.map +1 -1
- package/dist/controller-loader.js +67 -247
- package/dist/controller-loader.js.map +1 -1
- package/dist/controller-loaders/napi-loader.d.ts +27 -0
- package/dist/controller-loaders/napi-loader.d.ts.map +1 -0
- package/dist/controller-loaders/napi-loader.js +158 -0
- package/dist/controller-loaders/napi-loader.js.map +1 -0
- package/dist/controller-loaders/npm-loader.d.ts +20 -0
- package/dist/controller-loaders/npm-loader.d.ts.map +1 -0
- package/dist/controller-loaders/npm-loader.js +256 -0
- package/dist/controller-loaders/npm-loader.js.map +1 -0
- package/dist/controller-registry.d.ts +30 -20
- package/dist/controller-registry.d.ts.map +1 -1
- package/dist/controller-registry.js +50 -99
- package/dist/controller-registry.js.map +1 -1
- package/dist/controllers/module/import-controller.d.ts +11 -0
- package/dist/controllers/module/import-controller.d.ts.map +1 -1
- package/dist/controllers/module/import-controller.js +30 -3
- package/dist/controllers/module/import-controller.js.map +1 -1
- package/dist/controllers/resource-definition/abstract-controller.d.ts +35 -0
- package/dist/controllers/resource-definition/abstract-controller.d.ts.map +1 -0
- package/dist/controllers/resource-definition/abstract-controller.js +34 -0
- package/dist/controllers/resource-definition/abstract-controller.js.map +1 -0
- package/dist/controllers/resource-definition/resource-definition-controller.d.ts.map +1 -1
- package/dist/controllers/resource-definition/resource-definition-controller.js +1 -1
- package/dist/controllers/resource-definition/resource-definition-controller.js.map +1 -1
- package/dist/evaluation-context.js +1 -1
- package/dist/evaluation-context.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/kernel.d.ts +14 -16
- package/dist/kernel.d.ts.map +1 -1
- package/dist/kernel.js +58 -49
- package/dist/kernel.js.map +1 -1
- package/dist/manifest-schemas.d.ts +50 -0
- package/dist/manifest-schemas.d.ts.map +1 -1
- package/dist/manifest-schemas.js +31 -0
- package/dist/manifest-schemas.js.map +1 -1
- package/dist/{manifest-adapters/local-file-adapter.d.ts → manifest-sources/local-file-source.d.ts} +3 -3
- package/dist/manifest-sources/local-file-source.d.ts.map +1 -0
- package/dist/{manifest-adapters/local-file-adapter.js → manifest-sources/local-file-source.js} +2 -2
- package/dist/manifest-sources/local-file-source.js.map +1 -0
- package/dist/manifest-sources/memory-source.d.ts +23 -0
- package/dist/manifest-sources/memory-source.d.ts.map +1 -0
- package/dist/manifest-sources/memory-source.js +83 -0
- package/dist/manifest-sources/memory-source.js.map +1 -0
- package/dist/module-context.d.ts +17 -3
- package/dist/module-context.d.ts.map +1 -1
- package/dist/module-context.js +19 -1
- package/dist/module-context.js.map +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +0 -1
- package/dist/registry.js.map +1 -1
- package/dist/resource-context.d.ts +2 -7
- package/dist/resource-context.d.ts.map +1 -1
- package/dist/resource-context.js +8 -28
- package/dist/resource-context.js.map +1 -1
- package/dist/runtime-registry.d.ts +50 -0
- package/dist/runtime-registry.d.ts.map +1 -0
- package/dist/runtime-registry.js +140 -0
- package/dist/runtime-registry.js.map +1 -0
- package/package.json +16 -5
- package/src/controller-loader.ts +77 -273
- package/src/controller-loaders/napi-loader.ts +191 -0
- package/src/controller-loaders/npm-loader.ts +285 -0
- package/src/controller-registry.ts +66 -129
- package/src/controllers/module/import-controller.ts +32 -3
- package/src/controllers/resource-definition/abstract-controller.ts +56 -0
- package/src/controllers/resource-definition/resource-definition-controller.ts +1 -0
- package/src/evaluation-context.ts +1 -1
- package/src/index.ts +2 -1
- package/src/kernel.ts +86 -67
- package/src/manifest-schemas.ts +33 -0
- package/src/{manifest-adapters/local-file-adapter.ts → manifest-sources/local-file-source.ts} +2 -2
- package/src/manifest-sources/memory-source.ts +104 -0
- package/src/module-context.ts +36 -3
- package/src/registry.ts +0 -1
- package/src/resource-context.ts +11 -36
- package/src/runtime-registry.ts +170 -0
- package/dist/manifest-adapters/local-file-adapter.d.ts.map +0 -1
- package/dist/manifest-adapters/local-file-adapter.js.map +0 -1
- package/dist/manifest-adapters/manifest-adapter.d.ts +0 -35
- package/dist/manifest-adapters/manifest-adapter.d.ts.map +0 -1
- package/dist/manifest-adapters/manifest-adapter.js +0 -2
- package/dist/manifest-adapters/manifest-adapter.js.map +0 -1
- package/src/manifest-adapters/manifest-adapter.ts +0 -35
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import type { ControllerPolicy } from "@telorun/sdk";
|
|
2
|
+
import { RuntimeError } from "@telorun/sdk";
|
|
3
|
+
|
|
4
|
+
export type { ControllerPolicy } from "@telorun/sdk";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* The PURL-type prefix the kernel itself runs (i.e. "no FFI" controllers
|
|
8
|
+
* for this kernel). For the Node.js kernel, that's `pkg:npm`. A future
|
|
9
|
+
* Rust kernel reports `pkg:cargo` here.
|
|
10
|
+
*/
|
|
11
|
+
export const KERNEL_NATIVE_PURL_TYPE = "pkg:npm";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Wildcard sentinel inside a resolved `ControllerPolicy.load`. Means
|
|
15
|
+
* "all remaining controllers in declaration order, minus PURL types
|
|
16
|
+
* already listed earlier in the same policy." May appear at most once.
|
|
17
|
+
*/
|
|
18
|
+
export const POLICY_WILDCARD = "*";
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Maps user-facing runtime labels to PURL-type prefixes. The user-facing
|
|
22
|
+
* label is the implementation directory name a contributor sees at
|
|
23
|
+
* `modules/<name>/<label>/`.
|
|
24
|
+
*/
|
|
25
|
+
const LABEL_TO_PURL_TYPE: Readonly<Record<string, string>> = {
|
|
26
|
+
nodejs: "pkg:npm",
|
|
27
|
+
rust: "pkg:cargo",
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Labels that only make sense as a single value (`runtime: auto`,
|
|
32
|
+
* `runtime: native`) — they describe a whole policy, not one slot in a
|
|
33
|
+
* list. `any` is also reserved but is allowed as the final list entry,
|
|
34
|
+
* so it is handled separately in `normalizeRuntime`.
|
|
35
|
+
*/
|
|
36
|
+
const SINGLE_ONLY_LABELS = new Set(["auto", "native"]);
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Default policy for missing `runtime:` field — equivalent to `runtime: auto`.
|
|
40
|
+
* Tries kernel-native first, then any other declared controller in declaration order.
|
|
41
|
+
*/
|
|
42
|
+
export const DEFAULT_POLICY: ControllerPolicy = {
|
|
43
|
+
load: [KERNEL_NATIVE_PURL_TYPE, POLICY_WILDCARD],
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Resolve a `runtime:` field value (string, array, or undefined) into a
|
|
48
|
+
* canonical `ControllerPolicy`. Throws `ERR_RUNTIME_INVALID` on:
|
|
49
|
+
* - empty array
|
|
50
|
+
* - unknown label
|
|
51
|
+
* - `any` anywhere but the final list entry
|
|
52
|
+
* - duplicate label
|
|
53
|
+
*/
|
|
54
|
+
export function normalizeRuntime(value: string | ReadonlyArray<string> | undefined): ControllerPolicy {
|
|
55
|
+
if (value === undefined) {
|
|
56
|
+
return DEFAULT_POLICY;
|
|
57
|
+
}
|
|
58
|
+
if (typeof value === "string") {
|
|
59
|
+
return resolveSingle(value);
|
|
60
|
+
}
|
|
61
|
+
if (!Array.isArray(value)) {
|
|
62
|
+
throw new RuntimeError(
|
|
63
|
+
"ERR_RUNTIME_INVALID",
|
|
64
|
+
`runtime must be a string or array of strings, got ${typeof value}`,
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
if (value.length === 0) {
|
|
68
|
+
throw new RuntimeError(
|
|
69
|
+
"ERR_RUNTIME_INVALID",
|
|
70
|
+
"runtime: [] has no useful meaning. Omit the field for `auto`, or list at least one runtime label.",
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
const load: string[] = [];
|
|
74
|
+
for (let i = 0; i < value.length; i++) {
|
|
75
|
+
const entry = value[i];
|
|
76
|
+
if (typeof entry !== "string") {
|
|
77
|
+
throw new RuntimeError(
|
|
78
|
+
"ERR_RUNTIME_INVALID",
|
|
79
|
+
`runtime list entries must be strings, got ${typeof entry}`,
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
if (entry === "any") {
|
|
83
|
+
if (i !== value.length - 1) {
|
|
84
|
+
throw new RuntimeError(
|
|
85
|
+
"ERR_RUNTIME_INVALID",
|
|
86
|
+
"runtime: 'any' may only appear as the last entry in the list",
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
load.push(POLICY_WILDCARD);
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
const purlType = labelToPurlType(entry);
|
|
93
|
+
if (load.includes(purlType)) {
|
|
94
|
+
throw new RuntimeError(
|
|
95
|
+
"ERR_RUNTIME_INVALID",
|
|
96
|
+
`runtime: '${entry}' listed twice (resolves to ${purlType})`,
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
load.push(purlType);
|
|
100
|
+
}
|
|
101
|
+
return { load };
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
function resolveSingle(label: string): ControllerPolicy {
|
|
105
|
+
if (label === "auto") {
|
|
106
|
+
return DEFAULT_POLICY;
|
|
107
|
+
}
|
|
108
|
+
if (label === "native") {
|
|
109
|
+
return { load: [KERNEL_NATIVE_PURL_TYPE] };
|
|
110
|
+
}
|
|
111
|
+
if (label === "any") {
|
|
112
|
+
return { load: [POLICY_WILDCARD] };
|
|
113
|
+
}
|
|
114
|
+
return { load: [labelToPurlType(label)] };
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
function labelToPurlType(label: string): string {
|
|
118
|
+
if (SINGLE_ONLY_LABELS.has(label)) {
|
|
119
|
+
throw new RuntimeError(
|
|
120
|
+
"ERR_RUNTIME_INVALID",
|
|
121
|
+
`runtime label '${label}' describes a whole policy and is only valid as a single value, not inside a list`,
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
const purlType = LABEL_TO_PURL_TYPE[label];
|
|
125
|
+
if (!purlType) {
|
|
126
|
+
const known = Object.keys(LABEL_TO_PURL_TYPE).concat(["auto", "native", "any"]).sort().join(", ");
|
|
127
|
+
throw new RuntimeError(
|
|
128
|
+
"ERR_RUNTIME_INVALID",
|
|
129
|
+
`Unknown runtime label '${label}'. Known: ${known}`,
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
return purlType;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Stable short hash of a resolved policy, for use as a registry cache key
|
|
137
|
+
* suffix. Two imports with the same resolved policy share a cached
|
|
138
|
+
* controller; divergent policies get separate entries.
|
|
139
|
+
*
|
|
140
|
+
* Both `undefined` (no policy stamped) and any policy structurally equal to
|
|
141
|
+
* `DEFAULT_POLICY` (`runtime: auto`, missing `runtime:`, or any list that
|
|
142
|
+
* normalizes to the auto shape) collapse to the `"default"` fingerprint —
|
|
143
|
+
* the plan's contract is that "missing" is sugar for "auto", so they must
|
|
144
|
+
* share a cache entry.
|
|
145
|
+
*/
|
|
146
|
+
export function policyFingerprint(policy: ControllerPolicy | undefined): string {
|
|
147
|
+
if (!policy || isDefaultPolicy(policy)) {
|
|
148
|
+
return "default";
|
|
149
|
+
}
|
|
150
|
+
return policy.load.join(",");
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Structural equality check against `DEFAULT_POLICY`. Used at policy-stamp
|
|
155
|
+
* time (import-controller) to skip stamping when the resolved policy is the
|
|
156
|
+
* canonical default — `runtime: auto`, `runtime: [nodejs, any]`, etc. all
|
|
157
|
+
* normalize to the same shape and should be observationally identical to a
|
|
158
|
+
* plain omitted `runtime:` field, both at the fingerprint level (handled by
|
|
159
|
+
* `policyFingerprint`) and at the policy-presence level.
|
|
160
|
+
*/
|
|
161
|
+
export function isDefaultPolicy(policy: ControllerPolicy): boolean {
|
|
162
|
+
if (policy === DEFAULT_POLICY) return true;
|
|
163
|
+
const a = policy.load;
|
|
164
|
+
const b = DEFAULT_POLICY.load;
|
|
165
|
+
if (a.length !== b.length) return false;
|
|
166
|
+
for (let i = 0; i < a.length; i++) {
|
|
167
|
+
if (a[i] !== b[i]) return false;
|
|
168
|
+
}
|
|
169
|
+
return true;
|
|
170
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"local-file-adapter.d.ts","sourceRoot":"","sources":["../../src/manifest-adapters/local-file-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAcpF,qBAAa,gBAAiB,YAAW,eAAe;IACtD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAU9B,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAQlE,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IASnD,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAMjD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgB/D,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YAqB/C,kBAAkB;IAchC,OAAO,CAAC,UAAU;CAGnB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"local-file-adapter.js","sourceRoot":"","sources":["../../src/manifest-adapters/local-file-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
export interface ManifestSourceData {
|
|
2
|
-
/** Raw YAML text */
|
|
3
|
-
text: string;
|
|
4
|
-
/** Parsed YAML documents (result of yaml.loadAll) */
|
|
5
|
-
documents: any[];
|
|
6
|
-
/** Stored as metadata.source (file path or URL) */
|
|
7
|
-
source: string;
|
|
8
|
-
/** Base directory for resolving relative controller entrypoints */
|
|
9
|
-
baseDir: string;
|
|
10
|
-
/** URI prefix — full resource URI is `${uriBase}#${kind}.${name}` */
|
|
11
|
-
uriBase: string;
|
|
12
|
-
}
|
|
13
|
-
export interface ManifestAdapter {
|
|
14
|
-
/** Returns true if this adapter can handle the given path/URL */
|
|
15
|
-
supports(pathOrUrl: string): boolean;
|
|
16
|
-
/**
|
|
17
|
-
* Read a single manifest entry point.
|
|
18
|
-
* - File path or URL → read that file/URL.
|
|
19
|
-
* - Directory path → find and read `telo.yaml` within it.
|
|
20
|
-
*/
|
|
21
|
-
read(pathOrUrl: string): Promise<ManifestSourceData>;
|
|
22
|
-
/**
|
|
23
|
-
* Read all manifest files reachable from the given path/URL.
|
|
24
|
-
* Used for module imports.
|
|
25
|
-
* - Directory path → recursive walk, one entry per .yaml/.yml file found.
|
|
26
|
-
* - File path or URL → single-item array.
|
|
27
|
-
*/
|
|
28
|
-
readAll(pathOrUrl: string): Promise<ManifestSourceData[]>;
|
|
29
|
-
/**
|
|
30
|
-
* Resolve a potentially relative path/URL against a base directory/URL.
|
|
31
|
-
* For absolute inputs the base is ignored.
|
|
32
|
-
*/
|
|
33
|
-
resolveRelative(base: string, relative: string): string;
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=manifest-adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-adapter.d.ts","sourceRoot":"","sources":["../../src/manifest-adapters/manifest-adapter.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC;;;;OAIG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrD;;;;;OAKG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC1D;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;CACzD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-adapter.js","sourceRoot":"","sources":["../../src/manifest-adapters/manifest-adapter.ts"],"names":[],"mappings":""}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
export interface ManifestSourceData {
|
|
2
|
-
/** Raw YAML text */
|
|
3
|
-
text: string;
|
|
4
|
-
/** Parsed YAML documents (result of yaml.loadAll) */
|
|
5
|
-
documents: any[];
|
|
6
|
-
/** Stored as metadata.source (file path or URL) */
|
|
7
|
-
source: string;
|
|
8
|
-
/** Base directory for resolving relative controller entrypoints */
|
|
9
|
-
baseDir: string;
|
|
10
|
-
/** URI prefix — full resource URI is `${uriBase}#${kind}.${name}` */
|
|
11
|
-
uriBase: string;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface ManifestAdapter {
|
|
15
|
-
/** Returns true if this adapter can handle the given path/URL */
|
|
16
|
-
supports(pathOrUrl: string): boolean;
|
|
17
|
-
/**
|
|
18
|
-
* Read a single manifest entry point.
|
|
19
|
-
* - File path or URL → read that file/URL.
|
|
20
|
-
* - Directory path → find and read `telo.yaml` within it.
|
|
21
|
-
*/
|
|
22
|
-
read(pathOrUrl: string): Promise<ManifestSourceData>;
|
|
23
|
-
/**
|
|
24
|
-
* Read all manifest files reachable from the given path/URL.
|
|
25
|
-
* Used for module imports.
|
|
26
|
-
* - Directory path → recursive walk, one entry per .yaml/.yml file found.
|
|
27
|
-
* - File path or URL → single-item array.
|
|
28
|
-
*/
|
|
29
|
-
readAll(pathOrUrl: string): Promise<ManifestSourceData[]>;
|
|
30
|
-
/**
|
|
31
|
-
* Resolve a potentially relative path/URL against a base directory/URL.
|
|
32
|
-
* For absolute inputs the base is ignored.
|
|
33
|
-
*/
|
|
34
|
-
resolveRelative(base: string, relative: string): string;
|
|
35
|
-
}
|