@telorun/kernel 0.26.0 → 0.26.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"import-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/module/import-controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAI1E,wBAAsB,MAAM,CAC1B,QAAQ,EAAE,GAAG,EACb,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAiP3B;AAeD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBlB,CAAC"}
1
+ {"version":3,"file":"import-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/module/import-controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAI1E,wBAAsB,MAAM,CAC1B,QAAQ,EAAE,GAAG,EACb,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAqR3B;AAmCD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBlB,CAAC"}
@@ -96,8 +96,16 @@ export async function create(resource, ctx) {
96
96
  // no resources/env/ports in import inputs — is enforced by the analyzer, not here;
97
97
  // a `${{ resources.X }}` slipping past analysis (skipValidation / programmatic
98
98
  // load) would evaluate at runtime rather than being rejected.
99
- const importVariables = ctx.expandValue(resource.variables, {}) ?? {};
100
- const importSecrets = ctx.expandValue(resource.secrets, {}) ?? {};
99
+ // Defaults declared on the library's own `variables` / `secrets` contract fill
100
+ // any input the importer didn't override — the import-time analogue of the root
101
+ // Application's env defaulting (`resolveApplicationEnv`). Child modules are
102
+ // isolated from the host environment, so there is no env lookup here: the value
103
+ // is the importer's override, else the library default. Without this a contract
104
+ // var with a default but no override reaches a `${{ variables.X }}` template as
105
+ // a missing key, even though analysis validated the reference against the
106
+ // (defaulted) contract.
107
+ const importVariables = applyDefaults(ctx.expandValue(resource.variables, {}) ?? {}, moduleManifest.variables ?? {});
108
+ const importSecrets = applyDefaults(ctx.expandValue(resource.secrets, {}) ?? {}, moduleManifest.secrets ?? {});
101
109
  const childCtx = new ModuleContext(ctx.moduleContext.source, importVariables, importSecrets, {}, [], ctx.moduleContext.createInstance, ctx.moduleContext.emit);
102
110
  const child = ctx.moduleContext.spawnChild(childCtx);
103
111
  // A library references its own kinds via `Self.<Kind>` (e.g. when it declares an
@@ -120,6 +128,27 @@ export async function create(resource, ctx) {
120
128
  for (const manifest of manifests) {
121
129
  child.registerManifest(manifest);
122
130
  }
131
+ // Initialize the child's resources in dependency order, mirroring the root
132
+ // context (kernel.boot → setInitOrder). Without this, an imported library's
133
+ // resources init in registration order, so a dependent can run Phase 5
134
+ // injection before its dependency exists — e.g. an Http.Api whose inline route
135
+ // handler is appended after it during inline-resource extraction would init,
136
+ // and inject, before the handler is created, leaving the handler ref
137
+ // unresolved. The order is computed in the library's OWN scope (childRegistry),
138
+ // so an anonymous child resolves against the declaring library, not the
139
+ // consumer. setInitOrder ignores names it doesn't recognize, so a partial order
140
+ // is safe. A cycle purely among a library's own resources is invisible to the
141
+ // root graph (which stops at the import boundary), so this is the only place it
142
+ // surfaces — throw it the same way the root does rather than silently falling
143
+ // back to registration order (which would re-manifest as a confusing runtime
144
+ // ERR_RESOURCE_NOT_INVOKABLE). `prepare` returns null order on a ref-validation
145
+ // error too (already reported by analyze above); those we leave to fall back.
146
+ const { order, cycleError } = analyzer.prepare(manifests, childRegistry);
147
+ if (cycleError) {
148
+ throw new RuntimeError("ERR_CIRCULAR_DEPENDENCY", `Circular dependency in imported library '${targetModule}': ${cycleError}`);
149
+ }
150
+ if (order)
151
+ child.setInitOrder(order);
123
152
  // Link the target module context as a child of the declaring module context in
124
153
  // the lifecycle tree. This enables cascading teardown (parent → child order)
125
154
  // and makes the import hierarchy visible at runtime.
@@ -195,6 +224,23 @@ export async function create(resource, ctx) {
195
224
  },
196
225
  };
197
226
  }
227
+ /**
228
+ * Fill in library-declared `default:` values for any input the importer left
229
+ * unset. Mirrors the root Application's env defaulting: a provided value (incl.
230
+ * an explicit `null`) wins; otherwise the contract default applies. Returns a new
231
+ * object — the resolved input map is never mutated in place.
232
+ */
233
+ function applyDefaults(provided, schemaDefs) {
234
+ const out = { ...provided };
235
+ for (const [key, def] of Object.entries(schemaDefs)) {
236
+ if (typeof def !== "object" || def === null || !("default" in def))
237
+ continue;
238
+ if (out[key] === undefined || out[key] === null) {
239
+ out[key] = def.default;
240
+ }
241
+ }
242
+ return out;
243
+ }
198
244
  function validateRequiredInputs(schemaDefs, provided, kind) {
199
245
  for (const [key, def] of Object.entries(schemaDefs)) {
200
246
  const isRequired = typeof def === "object" && def !== null && !("default" in def);
@@ -1 +1 @@
1
- {"version":3,"file":"import-controller.js","sourceRoot":"","sources":["../../../src/controllers/module/import-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import-controller.js","sourceRoot":"","sources":["../../../src/controllers/module/import-controller.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telorun/kernel",
3
- "version": "0.26.0",
3
+ "version": "0.26.1",
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.23.0",
50
+ "@telorun/analyzer": "0.23.1",
51
51
  "@telorun/templating": "0.8.0",
52
52
  "ajv": "^8.17.1",
53
53
  "ajv-formats": "^3.0.1",
@@ -121,10 +121,22 @@ export async function create(
121
121
  // no resources/env/ports in import inputs — is enforced by the analyzer, not here;
122
122
  // a `${{ resources.X }}` slipping past analysis (skipValidation / programmatic
123
123
  // load) would evaluate at runtime rather than being rejected.
124
- const importVariables =
125
- (ctx.expandValue(resource.variables, {}) as Record<string, unknown>) ?? {};
126
- const importSecrets =
127
- (ctx.expandValue(resource.secrets, {}) as Record<string, unknown>) ?? {};
124
+ // Defaults declared on the library's own `variables` / `secrets` contract fill
125
+ // any input the importer didn't override — the import-time analogue of the root
126
+ // Application's env defaulting (`resolveApplicationEnv`). Child modules are
127
+ // isolated from the host environment, so there is no env lookup here: the value
128
+ // is the importer's override, else the library default. Without this a contract
129
+ // var with a default but no override reaches a `${{ variables.X }}` template as
130
+ // a missing key, even though analysis validated the reference against the
131
+ // (defaulted) contract.
132
+ const importVariables = applyDefaults(
133
+ (ctx.expandValue(resource.variables, {}) as Record<string, unknown>) ?? {},
134
+ moduleManifest.variables ?? {},
135
+ );
136
+ const importSecrets = applyDefaults(
137
+ (ctx.expandValue(resource.secrets, {}) as Record<string, unknown>) ?? {},
138
+ moduleManifest.secrets ?? {},
139
+ );
128
140
  const childCtx = new ModuleContext(
129
141
  ctx.moduleContext.source,
130
142
  importVariables,
@@ -159,6 +171,30 @@ export async function create(
159
171
  child.registerManifest(manifest);
160
172
  }
161
173
 
174
+ // Initialize the child's resources in dependency order, mirroring the root
175
+ // context (kernel.boot → setInitOrder). Without this, an imported library's
176
+ // resources init in registration order, so a dependent can run Phase 5
177
+ // injection before its dependency exists — e.g. an Http.Api whose inline route
178
+ // handler is appended after it during inline-resource extraction would init,
179
+ // and inject, before the handler is created, leaving the handler ref
180
+ // unresolved. The order is computed in the library's OWN scope (childRegistry),
181
+ // so an anonymous child resolves against the declaring library, not the
182
+ // consumer. setInitOrder ignores names it doesn't recognize, so a partial order
183
+ // is safe. A cycle purely among a library's own resources is invisible to the
184
+ // root graph (which stops at the import boundary), so this is the only place it
185
+ // surfaces — throw it the same way the root does rather than silently falling
186
+ // back to registration order (which would re-manifest as a confusing runtime
187
+ // ERR_RESOURCE_NOT_INVOKABLE). `prepare` returns null order on a ref-validation
188
+ // error too (already reported by analyze above); those we leave to fall back.
189
+ const { order, cycleError } = analyzer.prepare(manifests, childRegistry);
190
+ if (cycleError) {
191
+ throw new RuntimeError(
192
+ "ERR_CIRCULAR_DEPENDENCY",
193
+ `Circular dependency in imported library '${targetModule}': ${cycleError}`,
194
+ );
195
+ }
196
+ if (order) (child as ModuleContext).setInitOrder(order);
197
+
162
198
  // Link the target module context as a child of the declaring module context in
163
199
  // the lifecycle tree. This enables cascading teardown (parent → child order)
164
200
  // and makes the import hierarchy visible at runtime.
@@ -251,6 +287,26 @@ export async function create(
251
287
  };
252
288
  }
253
289
 
290
+ /**
291
+ * Fill in library-declared `default:` values for any input the importer left
292
+ * unset. Mirrors the root Application's env defaulting: a provided value (incl.
293
+ * an explicit `null`) wins; otherwise the contract default applies. Returns a new
294
+ * object — the resolved input map is never mutated in place.
295
+ */
296
+ function applyDefaults(
297
+ provided: Record<string, unknown>,
298
+ schemaDefs: Record<string, any>,
299
+ ): Record<string, unknown> {
300
+ const out = { ...provided };
301
+ for (const [key, def] of Object.entries(schemaDefs)) {
302
+ if (typeof def !== "object" || def === null || !("default" in def)) continue;
303
+ if (out[key] === undefined || out[key] === null) {
304
+ out[key] = def.default;
305
+ }
306
+ }
307
+ return out;
308
+ }
309
+
254
310
  function validateRequiredInputs(
255
311
  schemaDefs: Record<string, any>,
256
312
  provided: Record<string, unknown>,