@telorun/kernel 0.47.0 → 0.49.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/application-env.d.ts +26 -11
- package/dist/application-env.d.ts.map +1 -1
- package/dist/application-env.js +36 -12
- package/dist/application-env.js.map +1 -1
- package/dist/bundle/module-manifest.d.ts +6 -0
- package/dist/bundle/module-manifest.d.ts.map +1 -1
- package/dist/bundle/module-manifest.js +4 -0
- package/dist/bundle/module-manifest.js.map +1 -1
- package/dist/controller-loaders/npm-loader.d.ts +2 -16
- package/dist/controller-loaders/npm-loader.d.ts.map +1 -1
- package/dist/controller-loaders/npm-loader.js +42 -1
- package/dist/controller-loaders/npm-loader.js.map +1 -1
- package/dist/controller-registry.d.ts +6 -6
- package/dist/controller-registry.d.ts.map +1 -1
- package/dist/controller-registry.js +14 -10
- package/dist/controller-registry.js.map +1 -1
- package/dist/controllers/module/import-controller.d.ts +0 -46
- package/dist/controllers/module/import-controller.d.ts.map +1 -1
- package/dist/controllers/module/import-controller.js +0 -27
- package/dist/controllers/module/import-controller.js.map +1 -1
- package/dist/controllers/resource-definition/abstract-controller.d.ts +0 -4
- package/dist/controllers/resource-definition/abstract-controller.d.ts.map +1 -1
- package/dist/controllers/resource-definition/abstract-controller.js +0 -4
- package/dist/controllers/resource-definition/abstract-controller.js.map +1 -1
- package/dist/controllers/resource-definition/resource-definition-controller.d.ts +0 -4
- package/dist/controllers/resource-definition/resource-definition-controller.d.ts.map +1 -1
- package/dist/controllers/resource-definition/resource-definition-controller.js +0 -4
- package/dist/controllers/resource-definition/resource-definition-controller.js.map +1 -1
- package/dist/controllers/resource-definition/resource-inherited-controller.d.ts.map +1 -1
- package/dist/controllers/resource-definition/resource-inherited-controller.js +0 -1
- package/dist/controllers/resource-definition/resource-inherited-controller.js.map +1 -1
- package/dist/controllers/resource-definition/resource-template-controller.d.ts.map +1 -1
- package/dist/controllers/resource-definition/resource-template-controller.js +0 -1
- package/dist/controllers/resource-definition/resource-template-controller.js.map +1 -1
- package/dist/kernel.d.ts.map +1 -1
- package/dist/kernel.js +18 -11
- package/dist/kernel.js.map +1 -1
- package/dist/transports/oci/oci-client.d.ts +5 -0
- package/dist/transports/oci/oci-client.d.ts.map +1 -1
- package/dist/transports/oci/oci-client.js +13 -3
- package/dist/transports/oci/oci-client.js.map +1 -1
- package/dist/transports/oci/oci-transport.d.ts +18 -0
- package/dist/transports/oci/oci-transport.d.ts.map +1 -1
- package/dist/transports/oci/oci-transport.js +41 -8
- package/dist/transports/oci/oci-transport.js.map +1 -1
- package/dist/transports/registry-transport.d.ts +7 -0
- package/dist/transports/registry-transport.d.ts.map +1 -1
- package/dist/transports/registry-transport.js +43 -14
- package/dist/transports/registry-transport.js.map +1 -1
- package/dist/transports/transport.d.ts +19 -0
- package/dist/transports/transport.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/application-env.ts +36 -11
- package/src/bundle/module-manifest.ts +10 -0
- package/src/controller-loaders/npm-loader.ts +47 -1
- package/src/controller-registry.ts +14 -10
- package/src/controllers/module/import-controller.ts +0 -27
- package/src/controllers/resource-definition/abstract-controller.ts +0 -4
- package/src/controllers/resource-definition/resource-definition-controller.ts +0 -4
- package/src/controllers/resource-definition/resource-inherited-controller.ts +0 -2
- package/src/controllers/resource-definition/resource-template-controller.ts +0 -2
- package/src/kernel.ts +20 -11
- package/src/transports/oci/oci-client.ts +18 -3
- package/src/transports/oci/oci-transport.ts +46 -10
- package/src/transports/registry-transport.ts +54 -14
- package/src/transports/transport.ts +20 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DEFAULT_MANIFEST_FILENAME, IntegrityError, verifyIntegrity, } from "@telorun/analyzer";
|
|
1
|
+
import { DEFAULT_MANIFEST_FILENAME, IntegrityError, sha256Base64Url, verifyIntegrity, } from "@telorun/analyzer";
|
|
2
2
|
import { computeFilesIntegrity, injectFilesIntegrity } from "../../bundle/files-integrity.js";
|
|
3
3
|
import { readOwnerManifest } from "../../bundle/module-manifest.js";
|
|
4
4
|
import { makeTarGz, readTarGz, toPayloadFiles } from "../../bundle/tar.js";
|
|
@@ -97,22 +97,53 @@ export class OciTransport {
|
|
|
97
97
|
async fetchArtifact(ref) {
|
|
98
98
|
return pullVerified(ref);
|
|
99
99
|
}
|
|
100
|
+
/** Hashes the **UTF-8 encoding of the extracted `telo.yaml`**, which is what
|
|
101
|
+
* `pullVerified` checks an inline `#sha256-…` pin against on the read path.
|
|
102
|
+
*
|
|
103
|
+
* Cost note: a module is one tar blob, so there is no way to read `telo.yaml`
|
|
104
|
+
* without pulling the whole artifact — including any `files:` payload — and
|
|
105
|
+
* this path is deliberately uncached (a pin must hash what is published
|
|
106
|
+
* *now*, not a cached copy). Two consequences for callers: pinning N imports
|
|
107
|
+
* costs N full artifact pulls, and `pullVerified` also re-checks the
|
|
108
|
+
* dependency's `filesIntegrity`, so a corrupt *payload* upstream surfaces
|
|
109
|
+
* here as a pinning failure rather than a payload error. Both are acceptable
|
|
110
|
+
* for publish-time pinning, where correctness beats latency and refusing to
|
|
111
|
+
* pin against a corrupt dependency is the right outcome. */
|
|
112
|
+
async manifestHash(ref) {
|
|
113
|
+
const { manifest } = await pullVerified(ref);
|
|
114
|
+
return `sha256-${await sha256Base64Url(new TextEncoder().encode(manifest))}`;
|
|
115
|
+
}
|
|
116
|
+
/** Project a module's declared provenance onto the standard
|
|
117
|
+
* `org.opencontainers.image.*` annotation keys. Descriptive only — nothing
|
|
118
|
+
* addresses the artifact by these. Absent fields are omitted rather than
|
|
119
|
+
* written empty, so the manifest carries only what the module declared. */
|
|
120
|
+
static annotationsFor(identity) {
|
|
121
|
+
const mapped = [
|
|
122
|
+
["org.opencontainers.image.title", identity.name],
|
|
123
|
+
["org.opencontainers.image.version", identity.version],
|
|
124
|
+
["org.opencontainers.image.description", identity.description],
|
|
125
|
+
["org.opencontainers.image.source", identity.repository],
|
|
126
|
+
["org.opencontainers.image.licenses", identity.license],
|
|
127
|
+
["org.opencontainers.image.documentation", identity.documentation],
|
|
128
|
+
];
|
|
129
|
+
return Object.fromEntries(mapped.filter((e) => Boolean(e[1])));
|
|
130
|
+
}
|
|
100
131
|
async publish(destination, bundle, _opts = {}) {
|
|
101
132
|
const identity = readOwnerManifest(bundle.manifest);
|
|
102
133
|
if (!identity.version) {
|
|
103
134
|
throw new Error("OCI publish requires metadata.version (used as the tag).");
|
|
104
135
|
}
|
|
105
|
-
// Destination
|
|
106
|
-
//
|
|
136
|
+
// Destination must be a full repo (`oci://host/repo`). Identity is the ref,
|
|
137
|
+
// so the repo is never derived from `metadata.namespace`/`name` — a
|
|
138
|
+
// metadata-derived path is wrong whenever the repo differs from the name,
|
|
139
|
+
// and would silently push to a namespace the publisher may not own.
|
|
107
140
|
const afterScheme = destination.replace(/^oci:\/\//, "").replace(/\/+$/, "");
|
|
108
141
|
const slash = afterScheme.indexOf("/");
|
|
109
142
|
const host = slash > 0 ? afterScheme.slice(0, slash) : afterScheme;
|
|
110
|
-
|
|
143
|
+
const repo = slash > 0 ? afterScheme.slice(slash + 1) : "";
|
|
111
144
|
if (!repo) {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
}
|
|
115
|
-
repo = `${identity.namespace}/${identity.name}`;
|
|
145
|
+
throw new Error(`OCI publish destination '${destination}' is host-only — it must name a full repository, ` +
|
|
146
|
+
`e.g. 'oci://${host || "ghcr.io"}/<org>/<name>'.`);
|
|
116
147
|
}
|
|
117
148
|
const tag = identity.version;
|
|
118
149
|
// Pin the payload, then pack telo.yaml + files into the single module blob.
|
|
@@ -127,12 +158,14 @@ export class OciTransport {
|
|
|
127
158
|
const client = new OciClient(host, repo);
|
|
128
159
|
const layerDigest = await client.pushBlob(tar);
|
|
129
160
|
const config = await client.pushEmptyConfig();
|
|
161
|
+
const annotations = OciTransport.annotationsFor(identity);
|
|
130
162
|
const manifest = {
|
|
131
163
|
schemaVersion: 2,
|
|
132
164
|
mediaType: OCI_MANIFEST_MEDIA_TYPE,
|
|
133
165
|
artifactType: TELO_LAYER_MEDIA_TYPE,
|
|
134
166
|
config,
|
|
135
167
|
layers: [{ mediaType: TELO_LAYER_MEDIA_TYPE, digest: layerDigest, size: tar.length }],
|
|
168
|
+
...(Object.keys(annotations).length > 0 ? { annotations } : {}),
|
|
136
169
|
};
|
|
137
170
|
await client.pushManifest(tag, manifest);
|
|
138
171
|
return { label: `${repo}@${tag}`, url: `${OCI_SCHEME}${host}/${repo}@${tag}` };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oci-transport.js","sourceRoot":"","sources":["../../../src/transports/oci/oci-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,eAAe,GAEhB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"oci-transport.js","sourceRoot":"","sources":["../../../src/transports/oci/oci-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,14 @@ export declare class RegistryTransport implements Transport {
|
|
|
16
16
|
supports(ref: string): boolean;
|
|
17
17
|
cacheLocation(ref: string): string[] | null;
|
|
18
18
|
listVersions(ref: string): Promise<string[] | null>;
|
|
19
|
+
/** Mirrors the sources' fetch-URL derivation: a direct URL points at (or
|
|
20
|
+
* contains) the YAML file; a bare registry ref folds into the registry
|
|
21
|
+
* layout. `null` when this transport does not own the ref's shape. */
|
|
22
|
+
private manifestUrl;
|
|
19
23
|
digest(ref: string): Promise<string | null>;
|
|
24
|
+
/** Hashes the **raw response bytes**, which is exactly what `verifiedFetch`
|
|
25
|
+
* checks an inline `#sha256-…` pin against on the read path. */
|
|
26
|
+
manifestHash(ref: string): Promise<string>;
|
|
20
27
|
fetchArtifact(ref: string): Promise<FetchedArtifact>;
|
|
21
28
|
publish(destination: string, bundle: PublishBundle, opts?: PublishOptions): Promise<PublishResult>;
|
|
22
29
|
canonicalizeSiblingRef(_destination: string, _relativeSource: string, sibling: SiblingIdentity): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry-transport.d.ts","sourceRoot":"","sources":["../../src/transports/registry-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry-transport.d.ts","sourceRoot":"","sources":["../../src/transports/registry-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,cAAc,EACd,aAAa,EACb,eAAe,EACf,SAAS,EACV,MAAM,gBAAgB,CAAC;AAiDxB;;;;;;yEAMyE;AACzE,qBAAa,iBAAkB,YAAW,SAAS;IAKrC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAJxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;gBAEH,WAAW,GAAE,MAA6B;IAiBvE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAK9B,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IA+CrC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAoBzD;;2EAEuE;IACvE,OAAO,CAAC,WAAW;IAYb,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAkBjD;qEACiE;IAC3D,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiB1C,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAmCpD,OAAO,CACX,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,EACrB,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,aAAa,CAAC;IA0EzB,sBAAsB,CACpB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,eAAe,GACvB,MAAM;CASV"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DEFAULT_MANIFEST_FILENAME, HttpSource, IntegrityError, RegistrySource, isRegistryRef, parseModuleRef, sha256Base64Url, splitIntegrity, } from "@telorun/analyzer";
|
|
2
|
+
import { fetchOrThrow } from "@telorun/sdk";
|
|
2
3
|
import { createHash } from "crypto";
|
|
3
4
|
import { computeFilesIntegrity, injectFilesIntegrity } from "../bundle/files-integrity.js";
|
|
4
5
|
import { readOwnerManifest } from "../bundle/module-manifest.js";
|
|
@@ -121,7 +122,7 @@ export class RegistryTransport {
|
|
|
121
122
|
const { modulePath } = parseModuleRef(ref);
|
|
122
123
|
const url = `${this.registryUrl.replace(/\/+$/, "")}/${modulePath}`;
|
|
123
124
|
await assertPublicEgress(url);
|
|
124
|
-
const res = await
|
|
125
|
+
const res = await fetchOrThrow(url, { headers: { accept: "application/json" } }, { operation: "Registry version list", setting: "--registry / TELO_REGISTRY" });
|
|
125
126
|
if (res.status === 404)
|
|
126
127
|
return null;
|
|
127
128
|
if (!res.ok) {
|
|
@@ -130,24 +131,31 @@ export class RegistryTransport {
|
|
|
130
131
|
const body = (await res.json());
|
|
131
132
|
return Array.isArray(body.versions) ? body.versions : [];
|
|
132
133
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
134
|
+
/** Mirrors the sources' fetch-URL derivation: a direct URL points at (or
|
|
135
|
+
* contains) the YAML file; a bare registry ref folds into the registry
|
|
136
|
+
* layout. `null` when this transport does not own the ref's shape. */
|
|
137
|
+
manifestUrl(ref) {
|
|
137
138
|
const { base } = splitIntegrity(ref);
|
|
138
|
-
let fetchUrl;
|
|
139
139
|
if (base.startsWith("http://") || base.startsWith("https://")) {
|
|
140
|
-
|
|
140
|
+
return base.includes(".yaml") ? base : `${base}/${DEFAULT_MANIFEST_FILENAME}`;
|
|
141
141
|
}
|
|
142
|
-
|
|
142
|
+
if (isRegistryRef(ref)) {
|
|
143
143
|
const { modulePath, version } = parseModuleRef(ref);
|
|
144
|
-
|
|
144
|
+
return `${this.registryUrl.replace(/\/+$/, "")}/${modulePath}/${version}/${DEFAULT_MANIFEST_FILENAME}`;
|
|
145
145
|
}
|
|
146
|
-
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
async digest(ref) {
|
|
149
|
+
// The digest is Telo's canonical hash over the `telo.yaml` bytes — the same
|
|
150
|
+
// value `manifestHash` returns, but absent-is-null rather than a throw.
|
|
151
|
+
const fetchUrl = this.manifestUrl(ref);
|
|
152
|
+
if (!fetchUrl)
|
|
147
153
|
return null;
|
|
148
|
-
}
|
|
149
154
|
await assertPublicEgress(fetchUrl);
|
|
150
|
-
const res = await
|
|
155
|
+
const res = await fetchOrThrow(fetchUrl, undefined, {
|
|
156
|
+
operation: "Registry manifest read",
|
|
157
|
+
setting: "--registry / TELO_REGISTRY",
|
|
158
|
+
});
|
|
151
159
|
if (res.status === 404)
|
|
152
160
|
return null;
|
|
153
161
|
if (!res.ok) {
|
|
@@ -156,6 +164,24 @@ export class RegistryTransport {
|
|
|
156
164
|
const bytes = new Uint8Array(await res.arrayBuffer());
|
|
157
165
|
return `sha256-${await sha256Base64Url(bytes)}`;
|
|
158
166
|
}
|
|
167
|
+
/** Hashes the **raw response bytes**, which is exactly what `verifiedFetch`
|
|
168
|
+
* checks an inline `#sha256-…` pin against on the read path. */
|
|
169
|
+
async manifestHash(ref) {
|
|
170
|
+
const fetchUrl = this.manifestUrl(ref);
|
|
171
|
+
if (!fetchUrl) {
|
|
172
|
+
throw new Error(`cannot hash non-remote import '${ref}'`);
|
|
173
|
+
}
|
|
174
|
+
await assertPublicEgress(fetchUrl);
|
|
175
|
+
const res = await fetchOrThrow(fetchUrl, undefined, {
|
|
176
|
+
operation: "Registry manifest hash",
|
|
177
|
+
setting: "--registry / TELO_REGISTRY",
|
|
178
|
+
});
|
|
179
|
+
if (!res.ok) {
|
|
180
|
+
throw new Error(`fetch ${fetchUrl}: ${res.status} ${res.statusText}`);
|
|
181
|
+
}
|
|
182
|
+
const bytes = new Uint8Array(await res.arrayBuffer());
|
|
183
|
+
return `sha256-${await sha256Base64Url(bytes)}`;
|
|
184
|
+
}
|
|
159
185
|
async fetchArtifact(ref) {
|
|
160
186
|
// `read` verifies the manifest bytes against the inline `#sha256-...` hash.
|
|
161
187
|
const { text: manifest, source } = await this.source.read(ref);
|
|
@@ -165,7 +191,10 @@ export class RegistryTransport {
|
|
|
165
191
|
// The payload rides beside the manifest as `module.tar.gz`.
|
|
166
192
|
const tarUrl = source.replace(/\/telo\.yaml$/, "/module.tar.gz");
|
|
167
193
|
await assertPublicEgress(tarUrl);
|
|
168
|
-
const res = await
|
|
194
|
+
const res = await fetchOrThrow(tarUrl, undefined, {
|
|
195
|
+
operation: "Module payload download",
|
|
196
|
+
setting: "--registry / TELO_REGISTRY",
|
|
197
|
+
});
|
|
169
198
|
if (!res.ok) {
|
|
170
199
|
throw new Error(`could not fetch bundle ${tarUrl}: ${res.status} ${res.statusText}`);
|
|
171
200
|
}
|
|
@@ -216,7 +245,7 @@ export class RegistryTransport {
|
|
|
216
245
|
for (let attempt = 1; attempt <= MAX_PUSH_ATTEMPTS; attempt++) {
|
|
217
246
|
networkErr = null;
|
|
218
247
|
try {
|
|
219
|
-
res = await
|
|
248
|
+
res = await fetchOrThrow(url, { method: "PUT", headers, body }, { operation: "Registry publish", setting: "--registry / TELO_REGISTRY" });
|
|
220
249
|
}
|
|
221
250
|
catch (err) {
|
|
222
251
|
networkErr = err;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry-transport.js","sourceRoot":"","sources":["../../src/transports/registry-transport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry-transport.js","sourceRoot":"","sources":["../../src/transports/registry-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -86,6 +86,25 @@ export interface Transport {
|
|
|
86
86
|
* re-pushed to different bytes — so the discovery tracker records this
|
|
87
87
|
* digest per version and re-checks it on every track. */
|
|
88
88
|
digest(ref: string): Promise<string | null>;
|
|
89
|
+
/** Telo's inline integrity hash (`sha256-<base64url>`) for the `telo.yaml`
|
|
90
|
+
* `ref` resolves to — the value written as a `#sha256-…` pin by `telo
|
|
91
|
+
* publish` and re-pinned by `telo upgrade`. Throws when the ref does not
|
|
92
|
+
* resolve; callers decide whether that is fatal (`--frozen`) or best-effort.
|
|
93
|
+
*
|
|
94
|
+
* This is on the interface, not computed by the caller, because *what gets
|
|
95
|
+
* hashed* is transport-specific and must match exactly what that transport's
|
|
96
|
+
* own `source.read()` verifies — otherwise a pin written at publish fails
|
|
97
|
+
* verification at import. HTTP/registry hash the raw response bytes;
|
|
98
|
+
* OCI hashes the UTF-8 encoding of the `telo.yaml` extracted from the tar
|
|
99
|
+
* layer. A caller cannot know which, so a caller-side scheme branch silently
|
|
100
|
+
* degrades the moment a transport is added — which is exactly how `oci://`
|
|
101
|
+
* refs came to be published unpinned.
|
|
102
|
+
*
|
|
103
|
+
* Distinct from `digest()`: that is an opaque transport-native content id for
|
|
104
|
+
* change detection, never written into a manifest or compared across
|
|
105
|
+
* transports. This is the portable, cross-transport hash Telo itself
|
|
106
|
+
* verifies. */
|
|
107
|
+
manifestHash(ref: string): Promise<string>;
|
|
89
108
|
/** Push `bundle` to `destination` (a base ref / repo whose scheme this
|
|
90
109
|
* transport owns), pinning the payload and writing the transport-native
|
|
91
110
|
* artifact shape. Throws on failure. Used by `telo publish`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/transports/transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE;;;sDAGsD;AACtD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED;;;;iEAIiE;AACjE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;kFAEkF;AAClF,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;6CACyC;IACzC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE;QACf,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,KAAK,IAAI,CAAC;CACZ;AAED;;;;;;;;;;;;yDAYyD;AACzD,MAAM,WAAW,SAAS;IACxB,4EAA4E;IAC5E,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAE/B;;gFAE4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAEhC;;6EAEyE;IACzE,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IAE5C;;;6BAGyB;IACzB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAEpD;;;kFAG8E;IAC9E,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAErD;;;;;;;8DAO0D;IAC1D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAE5C;;qEAEiE;IACjE,OAAO,CACL,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,EACrB,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1B;;;;;2BAKuB;IACvB,sBAAsB,CACpB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,eAAe,GACvB,MAAM,CAAC;CACX"}
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/transports/transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE;;;sDAGsD;AACtD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED;;;;iEAIiE;AACjE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;kFAEkF;AAClF,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;6CACyC;IACzC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE;QACf,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,KAAK,IAAI,CAAC;CACZ;AAED;;;;;;;;;;;;yDAYyD;AACzD,MAAM,WAAW,SAAS;IACxB,4EAA4E;IAC5E,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAE/B;;gFAE4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAEhC;;6EAEyE;IACzE,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IAE5C;;;6BAGyB;IACzB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAEpD;;;kFAG8E;IAC9E,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAErD;;;;;;;8DAO0D;IAC1D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAE5C;;;;;;;;;;;;;;;;;oBAiBgB;IAChB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3C;;qEAEiE;IACjE,OAAO,CACL,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,EACrB,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1B;;;;;2BAKuB;IACvB,sBAAsB,CACpB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,eAAe,GACvB,MAAM,CAAC;CACX"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@telorun/kernel",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.49.0",
|
|
4
4
|
"description": "Telo Runtime - A lightweight, polyglot execution host.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"telo",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@marcbachmann/cel-js": "^7.6.1",
|
|
49
49
|
"@sinclair/typebox": "^0.34.48",
|
|
50
|
-
"@telorun/analyzer": "0.
|
|
50
|
+
"@telorun/analyzer": "0.38.0",
|
|
51
51
|
"@telorun/glob": "0.2.0",
|
|
52
52
|
"@telorun/templating": "0.10.1",
|
|
53
53
|
"ajv": "^8.17.1",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"@types/tar-stream": "^3.1.3",
|
|
62
62
|
"typescript": "^5.0.0",
|
|
63
63
|
"vitest": "^2.1.8",
|
|
64
|
-
"@telorun/sdk": "0.
|
|
64
|
+
"@telorun/sdk": "0.49.0"
|
|
65
65
|
},
|
|
66
66
|
"optionalDependencies": {
|
|
67
67
|
"esbuild": "^0.28.1"
|
package/src/application-env.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { residualEntrySchema } from "@telorun/analyzer";
|
|
1
|
+
import { type DefResolver, effectiveAuthorSchema, residualEntrySchema } from "@telorun/analyzer";
|
|
2
|
+
import type { ResourceDefinition } from "@telorun/sdk";
|
|
2
3
|
import { RuntimeError } from "@telorun/sdk";
|
|
3
4
|
import { SchemaValidator } from "./schema-validator.js";
|
|
4
5
|
|
|
@@ -145,24 +146,39 @@ export function precompileApplicationEnvSchemas(
|
|
|
145
146
|
|
|
146
147
|
/**
|
|
147
148
|
* Build-time cache warm for resource-config validators. The runtime
|
|
148
|
-
* `_createInstance` compiles `
|
|
149
|
-
*
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
-
*
|
|
153
|
-
*
|
|
149
|
+
* `_createInstance` compiles the declaring `Telo.Definition`'s `schema` to
|
|
150
|
+
* validate every resource's config, then validates inputs/outputs against
|
|
151
|
+
* `inputType` / `outputType`. The analyze-only warm pass stops before
|
|
152
|
+
* instantiation, so without this those validators are absent from the
|
|
153
|
+
* `__validators` cache and the runtime recompiles (and, on a read-only image,
|
|
154
|
+
* fails to persist) them on every boot.
|
|
154
155
|
*
|
|
155
156
|
* Compiling each definition's `schema` (plus any inline `inputType` /
|
|
156
157
|
* `outputType` object schemas) here writes them into the same content-addressed
|
|
157
158
|
* cache the runtime reads, keyed identically because the same schema object is
|
|
158
|
-
* fed to the same `validator.compile`.
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
159
|
+
* fed to the same `validator.compile`. Every kind is bakeable now that the
|
|
160
|
+
* manifest is the sole config contract — a controller can no longer supply a
|
|
161
|
+
* schema the warm cannot see. Compile failures are swallowed; a genuinely
|
|
162
|
+
* broken schema surfaces through analysis / runtime, not here.
|
|
163
|
+
*
|
|
164
|
+
* `resolverFor` bakes the INHERITANCE-RESOLVED schema too. A `base:`-less
|
|
165
|
+
* `extends` child is validated at runtime against `merge(parent, own)` — a
|
|
166
|
+
* different object than its raw `schema:`, so a different cache key. Without
|
|
167
|
+
* this the warm bakes a schema the runtime never asks for and every inheriting
|
|
168
|
+
* kind misses on every boot, recompiling (and, on a read-only image, failing to
|
|
169
|
+
* persist) forever. Both forms are compiled — the raw one still backs
|
|
170
|
+
* definitions that don't inherit.
|
|
171
|
+
*
|
|
172
|
+
* It is a factory, not a single resolver, because `extends` aliases are scoped
|
|
173
|
+
* to the DECLARING module — `Cache.Store` reads against that library's import
|
|
174
|
+
* map, `Self.Host` against its own name. A global resolver silently fails to
|
|
175
|
+
* resolve those, yielding the un-merged schema and reintroducing the very miss
|
|
176
|
+
* this exists to prevent.
|
|
162
177
|
*/
|
|
163
178
|
export function precompileDefinitionSchemas(
|
|
164
179
|
manifests: Array<Record<string, any>>,
|
|
165
180
|
validator: SchemaValidator,
|
|
181
|
+
resolverFor?: (def: Record<string, any>) => DefResolver,
|
|
166
182
|
): void {
|
|
167
183
|
const compile = (schema: unknown): void => {
|
|
168
184
|
if (!schema || typeof schema !== "object") return;
|
|
@@ -177,6 +193,15 @@ export function precompileDefinitionSchemas(
|
|
|
177
193
|
compile(m.schema);
|
|
178
194
|
compile(m.inputType);
|
|
179
195
|
compile(m.outputType);
|
|
196
|
+
if (resolverFor && m.extends) {
|
|
197
|
+
// Mirrors the runtime stamp in `resource-definition-controller`; sharing
|
|
198
|
+
// `effectiveAuthorSchema` is what keeps the two keys identical.
|
|
199
|
+
try {
|
|
200
|
+
compile(effectiveAuthorSchema(m as unknown as ResourceDefinition, resolverFor(m)));
|
|
201
|
+
} catch {
|
|
202
|
+
// An unresolvable parent is a diagnostic elsewhere; the warm just skips.
|
|
203
|
+
}
|
|
204
|
+
}
|
|
180
205
|
}
|
|
181
206
|
}
|
|
182
207
|
|
|
@@ -27,6 +27,12 @@ export interface OwnerManifest {
|
|
|
27
27
|
filesIntegrity?: string;
|
|
28
28
|
/** True when the owner doc declares a non-empty `files:` list. */
|
|
29
29
|
declaresFiles: boolean;
|
|
30
|
+
/** Descriptive provenance a transport projects into its backend's metadata
|
|
31
|
+
* (OCI annotations). Never used to address the artifact. */
|
|
32
|
+
description?: string;
|
|
33
|
+
repository?: string;
|
|
34
|
+
license?: string;
|
|
35
|
+
documentation?: string;
|
|
30
36
|
}
|
|
31
37
|
|
|
32
38
|
/** Read the owner doc's identity + payload fields from a manifest, parsing once
|
|
@@ -45,5 +51,9 @@ export function readOwnerManifest(text: string): OwnerManifest {
|
|
|
45
51
|
version: str(md.version),
|
|
46
52
|
filesIntegrity: str(parsed?.filesIntegrity),
|
|
47
53
|
declaresFiles: Array.isArray(parsed?.files) && parsed.files.length > 0,
|
|
54
|
+
description: str(md.description),
|
|
55
|
+
repository: str(md.repository),
|
|
56
|
+
license: str(md.license),
|
|
57
|
+
documentation: str(md.documentation),
|
|
48
58
|
};
|
|
49
59
|
}
|
|
@@ -547,6 +547,52 @@ async function resolveKernelPackageRoot(name: string): Promise<string | null> {
|
|
|
547
547
|
}
|
|
548
548
|
}
|
|
549
549
|
|
|
550
|
+
/**
|
|
551
|
+
* Serialize same-process callers for one install root, in memory, ahead of the
|
|
552
|
+
* filesystem lock.
|
|
553
|
+
*
|
|
554
|
+
* Package installs dedupe per alias, so N distinct controllers are N distinct
|
|
555
|
+
* `withInstallLock` calls against the SAME root. Without this queue they all
|
|
556
|
+
* contend through the filesystem: one wins and the rest poll `fs.open` every
|
|
557
|
+
* {@link LOCK_RETRY_MS} for the whole install, each crossing
|
|
558
|
+
* {@link LOCK_WAIT_NOTICE_MS} and printing the wait notice — a notice whose
|
|
559
|
+
* whole point is "another Telo *process* holds this", which is misleading when
|
|
560
|
+
* the holder is us. (`telo install` fanning 52 controllers out through one
|
|
561
|
+
* `Promise.allSettled` printed 51 of them.)
|
|
562
|
+
*
|
|
563
|
+
* Queuing here means exactly one caller per process reaches the fs lock, so the
|
|
564
|
+
* notice regains its cross-process meaning and the losers do no I/O at all. The
|
|
565
|
+
* fs lock is untouched and still provides the cross-process guarantee.
|
|
566
|
+
*/
|
|
567
|
+
const localInstallQueues = new Map<string, Promise<unknown>>();
|
|
568
|
+
|
|
569
|
+
function withLocalInstallQueue<T>(installRoot: string, fn: () => Promise<T>): Promise<T> {
|
|
570
|
+
const prev = localInstallQueues.get(installRoot) ?? Promise.resolve();
|
|
571
|
+
// Run on both settle paths: one failed install must not wedge the queue.
|
|
572
|
+
const run = prev.then(fn, fn);
|
|
573
|
+
// The stored tail never rejects — a failure neither poisons followers nor
|
|
574
|
+
// surfaces as an unhandled rejection on the chain copy.
|
|
575
|
+
const tail = run.then(
|
|
576
|
+
() => {},
|
|
577
|
+
() => {},
|
|
578
|
+
);
|
|
579
|
+
localInstallQueues.set(installRoot, tail);
|
|
580
|
+
// Drop the entry once nothing further is queued, so a long-lived process that
|
|
581
|
+
// touches many entry dirs doesn't retain a promise per root forever.
|
|
582
|
+
void tail.then(() => {
|
|
583
|
+
if (localInstallQueues.get(installRoot) === tail) localInstallQueues.delete(installRoot);
|
|
584
|
+
});
|
|
585
|
+
return run;
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
/**
|
|
589
|
+
* Acquire the install lock for `installRoot` and run `fn` under it: first the
|
|
590
|
+
* in-process queue above, then the cross-process filesystem lock.
|
|
591
|
+
*/
|
|
592
|
+
async function withInstallLock<T>(installRoot: string, fn: () => Promise<T>): Promise<T> {
|
|
593
|
+
return withLocalInstallQueue(installRoot, () => withFileInstallLock(installRoot, fn));
|
|
594
|
+
}
|
|
595
|
+
|
|
550
596
|
/**
|
|
551
597
|
* Acquire a process-portable lock on `<root>/.lock` and execute fn while
|
|
552
598
|
* holding it. `fs.open(path, 'wx')` is atomic on POSIX and Windows, so
|
|
@@ -565,7 +611,7 @@ async function resolveKernelPackageRoot(name: string): Promise<string | null> {
|
|
|
565
611
|
* invocation, and any state-file writes. It does NOT serialize *reads* of
|
|
566
612
|
* already-installed controllers — those run lock-free against a stable tree.
|
|
567
613
|
*/
|
|
568
|
-
async function
|
|
614
|
+
async function withFileInstallLock<T>(installRoot: string, fn: () => Promise<T>): Promise<T> {
|
|
569
615
|
const lockPath = path.join(installRoot, ".lock");
|
|
570
616
|
|
|
571
617
|
await fs.mkdir(installRoot, { recursive: true });
|
|
@@ -111,18 +111,17 @@ export class ControllerRegistry {
|
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
/**
|
|
114
|
-
* Distinct
|
|
115
|
-
* kind
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
114
|
+
* Distinct resource-config schemas across all registered kinds, taken from
|
|
115
|
+
* each kind's DEFINITION. Used by the build-time validator warm to pre-compile
|
|
116
|
+
* the framework/builtin schemas (`Telo.Import`, `Telo.Definition`, the module
|
|
117
|
+
* controller, …) the runtime validates resources against — module-defined
|
|
118
|
+
* kinds aren't registered here until instantiation, so those are warmed from
|
|
119
|
+
* the static manifests instead.
|
|
120
120
|
*/
|
|
121
121
|
getControllerSchemas(): object[] {
|
|
122
122
|
const schemas: object[] = [];
|
|
123
|
-
for (const
|
|
124
|
-
const
|
|
125
|
-
const schema = controller?.schema;
|
|
123
|
+
for (const kind of this.controllersByKind.keys()) {
|
|
124
|
+
const schema = this.definitionsByKind.get(kind)?.schema;
|
|
126
125
|
if (schema && typeof schema === "object") schemas.push(schema);
|
|
127
126
|
}
|
|
128
127
|
return schemas;
|
|
@@ -142,9 +141,14 @@ export class ControllerRegistry {
|
|
|
142
141
|
throw new Error(`Cannot register controller for kind ${kind} without definition`);
|
|
143
142
|
}
|
|
144
143
|
const definition = this.definitionsByKind.get(kind);
|
|
144
|
+
// The DEFINITION's schema is the resource-config contract, always. A
|
|
145
|
+
// controller module's exports become the controller instance verbatim, so a
|
|
146
|
+
// stray `export const schema` used to silently override the manifest — the
|
|
147
|
+
// analyzer never loads controllers, so those overrides were invisible to
|
|
148
|
+
// `telo check`, unbakeable by the validator warm, and free to drift from the
|
|
149
|
+
// manifest they shadowed.
|
|
145
150
|
const wrappedController: ControllerInstance = {
|
|
146
151
|
...controller,
|
|
147
|
-
schema: controller.schema ?? definition?.schema,
|
|
148
152
|
inputType: controller.inputType,
|
|
149
153
|
outputType: controller.outputType,
|
|
150
154
|
};
|
|
@@ -332,30 +332,3 @@ function validateRequiredInputs(
|
|
|
332
332
|
}
|
|
333
333
|
}
|
|
334
334
|
|
|
335
|
-
export const schema = {
|
|
336
|
-
type: "object",
|
|
337
|
-
properties: {
|
|
338
|
-
kind: { type: "string" },
|
|
339
|
-
metadata: {
|
|
340
|
-
type: "object",
|
|
341
|
-
properties: {
|
|
342
|
-
name: { type: "string" },
|
|
343
|
-
module: { type: "string" },
|
|
344
|
-
},
|
|
345
|
-
required: ["name"],
|
|
346
|
-
additionalProperties: true,
|
|
347
|
-
},
|
|
348
|
-
source: { type: "string" },
|
|
349
|
-
integrity: { type: "string" },
|
|
350
|
-
variables: { type: "object" },
|
|
351
|
-
secrets: { type: "object" },
|
|
352
|
-
runtime: {
|
|
353
|
-
oneOf: [
|
|
354
|
-
{ type: "string" },
|
|
355
|
-
{ type: "array", items: { type: "string" } },
|
|
356
|
-
],
|
|
357
|
-
},
|
|
358
|
-
},
|
|
359
|
-
required: ["metadata", "source"],
|
|
360
|
-
additionalProperties: false,
|
|
361
|
-
};
|
|
@@ -125,8 +125,6 @@ export function createInheritedController(
|
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
return {
|
|
128
|
-
schema: authorSchema,
|
|
129
|
-
|
|
130
128
|
create: async (resource: any, ctx: ResourceContext): Promise<ResourceInstance | null> => {
|
|
131
129
|
const self: Record<string, unknown> = { ...resource, name: resource.metadata.name };
|
|
132
130
|
for (const path of refFieldPaths) {
|