@telorun/kernel 0.57.0 → 0.59.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/controllers/module/import-controller.d.ts.map +1 -1
- package/dist/controllers/module/import-controller.js +7 -3
- package/dist/controllers/module/import-controller.js.map +1 -1
- package/dist/controllers/resource-definition/resource-definition-controller.d.ts +1 -0
- package/dist/controllers/resource-definition/resource-definition-controller.d.ts.map +1 -1
- package/dist/controllers/resource-definition/resource-definition-controller.js +10 -1
- package/dist/controllers/resource-definition/resource-definition-controller.js.map +1 -1
- package/dist/evaluation-context.d.ts +57 -2
- package/dist/evaluation-context.d.ts.map +1 -1
- package/dist/evaluation-context.js +229 -14
- package/dist/evaluation-context.js.map +1 -1
- package/dist/kernel.d.ts.map +1 -1
- package/dist/kernel.js +6 -3
- package/dist/kernel.js.map +1 -1
- package/dist/manifest-schemas.d.ts +8 -0
- package/dist/manifest-schemas.d.ts.map +1 -1
- package/dist/manifest-schemas.js +6 -0
- package/dist/manifest-schemas.js.map +1 -1
- package/dist/module-context.d.ts +8 -0
- package/dist/module-context.d.ts.map +1 -1
- package/dist/module-context.js +20 -5
- package/dist/module-context.js.map +1 -1
- package/dist/observed-state.d.ts +94 -0
- package/dist/observed-state.d.ts.map +1 -0
- package/dist/observed-state.js +148 -0
- package/dist/observed-state.js.map +1 -0
- package/dist/resource-context.d.ts +52 -1
- package/dist/resource-context.d.ts.map +1 -1
- package/dist/resource-context.js +76 -13
- package/dist/resource-context.js.map +1 -1
- package/package.json +3 -3
- package/src/controllers/module/import-controller.ts +12 -3
- package/src/controllers/resource-definition/resource-definition-controller.ts +14 -0
- package/src/evaluation-context.ts +270 -15
- package/src/kernel.ts +5 -0
- package/src/manifest-schemas.ts +6 -0
- package/src/module-context.ts +19 -5
- package/src/observed-state.ts +210 -0
- package/src/resource-context.ts +76 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-context.js","sourceRoot":"","sources":["../src/resource-context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resource-context.js","sourceRoot":"","sources":["../src/resource-context.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.
|
|
3
|
+
"version": "0.59.0",
|
|
4
4
|
"description": "Telo Runtime - A lightweight, polyglot execution host.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"telo",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"dependencies": {
|
|
62
62
|
"@marcbachmann/cel-js": "^7.6.1",
|
|
63
63
|
"@sinclair/typebox": "^0.34.48",
|
|
64
|
-
"@telorun/analyzer": "0.
|
|
64
|
+
"@telorun/analyzer": "0.47.0",
|
|
65
65
|
"@telorun/glob": "0.2.0",
|
|
66
66
|
"@telorun/templating": "0.11.0",
|
|
67
67
|
"ajv": "^8.17.1",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"@types/tar-stream": "^3.1.3",
|
|
76
76
|
"typescript": "^5.0.0",
|
|
77
77
|
"vitest": "^2.1.8",
|
|
78
|
-
"@telorun/sdk": "0.
|
|
78
|
+
"@telorun/sdk": "0.59.0"
|
|
79
79
|
},
|
|
80
80
|
"optionalDependencies": {
|
|
81
81
|
"esbuild": "^0.28.1"
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AnalysisRegistry, DiagnosticSeverity, foldIntegrity, parseExportEntry, StaticAnalyzer } from "@telorun/analyzer";
|
|
2
2
|
import type { ResourceInstance } from "@telorun/sdk";
|
|
3
3
|
import { RuntimeError } from "@telorun/sdk";
|
|
4
|
+
import { publishedPropsOf } from "../../evaluation-context.js";
|
|
4
5
|
import type { BuiltinControllerContext } from "../../internal-context.js";
|
|
5
6
|
import { buildScopeConfig, type LoggingManifestBlock } from "../../logging/kernel-logging.js";
|
|
6
7
|
import { ModuleContext } from "../../module-context.js";
|
|
@@ -301,9 +302,17 @@ export async function create(
|
|
|
301
302
|
snapshot: async () => {
|
|
302
303
|
const exported: Record<string, unknown> = {};
|
|
303
304
|
for (const name of exportedResourceNames) {
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
305
|
+
// Through the shared publication policy, not the raw snapshot: an
|
|
306
|
+
// exported instance's observed state stays withheld until it starts and
|
|
307
|
+
// is validated against its `status:` on this side of the boundary too.
|
|
308
|
+
const target = childCtx.getExported(name);
|
|
309
|
+
if (target?.instance) {
|
|
310
|
+
exported[name] = await publishedPropsOf(
|
|
311
|
+
target.kind,
|
|
312
|
+
name,
|
|
313
|
+
target.instance,
|
|
314
|
+
childCtx.getDefinition,
|
|
315
|
+
);
|
|
307
316
|
}
|
|
308
317
|
}
|
|
309
318
|
return {
|
|
@@ -9,6 +9,7 @@ import { RuntimeError } from "@telorun/sdk";
|
|
|
9
9
|
import {
|
|
10
10
|
controllerBearingAncestor,
|
|
11
11
|
effectiveAuthorSchema,
|
|
12
|
+
effectiveStatusSchema,
|
|
12
13
|
hasOwnControllerOrTemplate,
|
|
13
14
|
inheritedCapability,
|
|
14
15
|
type DefResolver,
|
|
@@ -26,6 +27,7 @@ type ResourceDefinitionResource = RuntimeResource & {
|
|
|
26
27
|
module?: string;
|
|
27
28
|
};
|
|
28
29
|
schema: Record<string, any>;
|
|
30
|
+
status?: Record<string, any>;
|
|
29
31
|
capability?: string;
|
|
30
32
|
extends?: string;
|
|
31
33
|
base?: Record<string, any>;
|
|
@@ -77,6 +79,18 @@ class ResourceDefinition implements ResourceInstance {
|
|
|
77
79
|
this.resource as ResourceDefinitionManifest,
|
|
78
80
|
resolveDef,
|
|
79
81
|
);
|
|
82
|
+
// Same for the observed-state contract: a child without `base:` merges its
|
|
83
|
+
// parent's `status:`, one with `base:` publishes the parent's unchanged.
|
|
84
|
+
// Stamped here, in the DEFINING library's scope, because an `extends` alias
|
|
85
|
+
// belongs to the file that declared it — a consumer that imports only the
|
|
86
|
+
// backend (the sanctioned "one import instead of two") has no alias for the
|
|
87
|
+
// abstract's library and would resolve the parent to nothing. Stamping also
|
|
88
|
+
// makes the folded schema a stable object, so the publication path's AJV
|
|
89
|
+
// validator cache hits instead of recompiling on every snapshot.
|
|
90
|
+
this.resource.status = effectiveStatusSchema(
|
|
91
|
+
this.resource as ResourceDefinitionManifest,
|
|
92
|
+
resolveDef,
|
|
93
|
+
);
|
|
80
94
|
}
|
|
81
95
|
|
|
82
96
|
// Inherited-controller delegation: a definition that `extends` a concrete
|
|
@@ -26,6 +26,11 @@ import {
|
|
|
26
26
|
} from "@telorun/sdk";
|
|
27
27
|
import { RuntimeError } from "@telorun/sdk";
|
|
28
28
|
import { evalPathCovers } from "@telorun/analyzer";
|
|
29
|
+
import {
|
|
30
|
+
acceptReportedStatus,
|
|
31
|
+
buildPublishedProps,
|
|
32
|
+
diagnoseObservedStateAccess,
|
|
33
|
+
} from "./observed-state.js";
|
|
29
34
|
|
|
30
35
|
export { resourceKey };
|
|
31
36
|
|
|
@@ -165,6 +170,70 @@ export function buildResolvedProperties(
|
|
|
165
170
|
*/
|
|
166
171
|
const cancellationStore = new AsyncLocalStorage<InvokeContext>();
|
|
167
172
|
|
|
173
|
+
/**
|
|
174
|
+
* Instances whose `run()` has been dispatched. Reporting observed state before
|
|
175
|
+
* this is an error (see observed-state.ts).
|
|
176
|
+
*
|
|
177
|
+
* Keyed on the instance rather than on `(context, name)` because the context
|
|
178
|
+
* that STARTS a resource is not always the one that OWNS it: an importer's
|
|
179
|
+
* `targets:` can name a library's exported instance, and the library's own
|
|
180
|
+
* `ctx.setStatus()` — publishing into the context where its name lives — has to
|
|
181
|
+
* see that it started.
|
|
182
|
+
*/
|
|
183
|
+
const startedInstances = new WeakSet<object>();
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* The last observed state each instance reported. Sticky: it stays until the
|
|
187
|
+
* resource is torn down, so a dispatch that reports nothing leaves the previous
|
|
188
|
+
* reading in place — a listener's bound address does not stop being true between
|
|
189
|
+
* calls. Keyed by instance for the same reason as `startedInstances`, and
|
|
190
|
+
* because a scope's per-run instances are distinct by construction, which is
|
|
191
|
+
* what keeps two concurrent runs from observing each other's readings.
|
|
192
|
+
*/
|
|
193
|
+
const reportedStatus = new WeakMap<object, Record<string, unknown>>();
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Instances whose `run()` has RETURNED. A long-lived Service never appears here
|
|
197
|
+
* — its `run()` stays pending for the process lifetime — which is exactly the
|
|
198
|
+
* distinction the reader needs: a Runnable that finished and reported nothing
|
|
199
|
+
* for a field it declares is a producer defect, while a Service that is still
|
|
200
|
+
* coming up is ordering, and telling those apart is not something the reader
|
|
201
|
+
* can do from the manifest.
|
|
202
|
+
*/
|
|
203
|
+
const completedInstances = new WeakSet<object>();
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* The published value for an instance the caller resolved itself, rather than
|
|
207
|
+
* one reached by name through a context's own `resourceInstances`. The
|
|
208
|
+
* cross-module export path uses it: an importer surfaces a library's exported
|
|
209
|
+
* instances under `resources.<Alias>.<name>`, which crosses the boundary
|
|
210
|
+
* without passing through the owner's `resources` map — and must still carry the
|
|
211
|
+
* reading the instance reported, under the same rules.
|
|
212
|
+
*
|
|
213
|
+
* `kind` is already canonical (`<module>.<Kind>`) on that path, so the resolver
|
|
214
|
+
* needs no alias table.
|
|
215
|
+
*/
|
|
216
|
+
export async function publishedPropsOf(
|
|
217
|
+
kind: string,
|
|
218
|
+
name: string,
|
|
219
|
+
instance: ResourceInstance,
|
|
220
|
+
getDefinition: ((kind: string) => ResourceDefinition | undefined) | undefined,
|
|
221
|
+
): Promise<Record<string, unknown>> {
|
|
222
|
+
const snap =
|
|
223
|
+
typeof instance.snapshot === "function"
|
|
224
|
+
? ((await Promise.resolve(instance.snapshot())) as Record<string, unknown> | undefined)
|
|
225
|
+
: undefined;
|
|
226
|
+
return buildPublishedProps(snap, {
|
|
227
|
+
kind,
|
|
228
|
+
name,
|
|
229
|
+
module: kind.split(".")[0],
|
|
230
|
+
statusSchema: getDefinition?.(kind)?.status,
|
|
231
|
+
status: reportedStatus.get(instance),
|
|
232
|
+
started: startedInstances.has(instance),
|
|
233
|
+
completed: completedInstances.has(instance),
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
|
|
168
237
|
/**
|
|
169
238
|
* The ambient dispatch context, for §7.2's automatic trace correlation: a record
|
|
170
239
|
* emitted inside an active span carries that span's ids without the controller
|
|
@@ -194,6 +263,14 @@ function compileWalker(value: unknown): Walker {
|
|
|
194
263
|
} catch (error) {
|
|
195
264
|
const expr = compiled.source ? `\${{ ${compiled.source} }}` : "unknown expression";
|
|
196
265
|
const msg = error instanceof Error ? error.message : String(error);
|
|
266
|
+
// Reading observed state that was never reported is its own failure with
|
|
267
|
+
// its own remedy, so it does not degrade into a bare "No such key".
|
|
268
|
+
const observed = compiled.source
|
|
269
|
+
? describeObservedStateFailure(compiled.source, ctx, msg)
|
|
270
|
+
: null;
|
|
271
|
+
if (observed) {
|
|
272
|
+
throw new RuntimeError("ERR_OBSERVED_STATE_UNAVAILABLE", `${expr}: ${observed}`);
|
|
273
|
+
}
|
|
197
274
|
const hint = compiled.source ? describeFailedAccess(compiled.source, ctx, msg) : null;
|
|
198
275
|
const suffix = hint ? `\n ${hint}` : "";
|
|
199
276
|
throw new Error(`Expression ${expr} failed: ${msg}${suffix}`);
|
|
@@ -334,8 +411,87 @@ export class EvaluationContext implements IEvaluationContext {
|
|
|
334
411
|
return this._createInstance;
|
|
335
412
|
}
|
|
336
413
|
|
|
337
|
-
/** Called after init() when a resource snapshot is available. Overridden by
|
|
338
|
-
|
|
414
|
+
/** Called after init() when a resource snapshot is available. Overridden by
|
|
415
|
+
* ModuleContext, and by a scope child (which keeps its own per-run map). */
|
|
416
|
+
protected onResourceSnapshotted(name: string, snap: Record<string, unknown>): void {
|
|
417
|
+
this.snapshotSink?.(name, snap);
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
/** Where published snapshots go for a context that has no `resources` map of
|
|
421
|
+
* its own — set by `createScopeHandle` on the per-run child so scope-local
|
|
422
|
+
* resources publish like any other. */
|
|
423
|
+
protected snapshotSink: ((name: string, snap: Record<string, unknown>) => void) | undefined;
|
|
424
|
+
|
|
425
|
+
/** Record that an instance has started. Republished so a read that arrives
|
|
426
|
+
* before the resource reports gets the "still running" message rather than
|
|
427
|
+
* the "never started" one. */
|
|
428
|
+
private async markStarted(name: string, instance: ResourceInstance): Promise<void> {
|
|
429
|
+
if (startedInstances.has(instance)) return;
|
|
430
|
+
startedInstances.add(instance);
|
|
431
|
+
await this.publishSnapshot(name);
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
/**
|
|
435
|
+
* Record what a resource observed and republish. Validated against the kind's
|
|
436
|
+
* `status:` here, at the point the claim is made, so an invalid report names
|
|
437
|
+
* the call that made it rather than surfacing at some later publication.
|
|
438
|
+
*
|
|
439
|
+
* Replaces rather than merges: this is the resource's observed state now. A
|
|
440
|
+
* declared field this call omits reads as missing, which is the truth — a
|
|
441
|
+
* sometimes-absent field is declared nullable and reported as `null`.
|
|
442
|
+
*/
|
|
443
|
+
async setResourceStatus(name: string, status: Record<string, unknown>): Promise<void> {
|
|
444
|
+
const entry = this.resourceInstances.get(name) ?? this.createdInstances.get(name);
|
|
445
|
+
if (!entry) return;
|
|
446
|
+
const kind = entry.resource.kind as string;
|
|
447
|
+
if (!startedInstances.has(entry.instance)) {
|
|
448
|
+
throw new RuntimeError(
|
|
449
|
+
"ERR_OBSERVED_STATE_BEFORE_START",
|
|
450
|
+
`${kind} '${name}' reported observed state before it started. init() performs no I/O, so there is nothing observed to report there — call setStatus() from run(), or from a handler it reaches.`,
|
|
451
|
+
);
|
|
452
|
+
}
|
|
453
|
+
reportedStatus.set(
|
|
454
|
+
entry.instance,
|
|
455
|
+
acceptReportedStatus(status, { kind, name, statusSchema: this.statusSchemaOf(kind) }),
|
|
456
|
+
);
|
|
457
|
+
await this.publishSnapshot(name);
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
/** The kind's effective `status:` — already folded through `extends` and
|
|
461
|
+
* stamped onto the definition at registration, in the scope that DECLARED it
|
|
462
|
+
* (`resource-definition-controller`). Only the kind's own alias is resolved
|
|
463
|
+
* here, in the reading module's scope, which is where it was written. */
|
|
464
|
+
private statusSchemaOf(kind: string): Record<string, any> | undefined {
|
|
465
|
+
const def = this.getDefinition?.(this.resolveKindSafe(kind)) ?? this.getDefinition?.(kind);
|
|
466
|
+
return def?.status;
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
/**
|
|
470
|
+
* Re-read a resource's `snapshot()` and republish it, joined with whatever
|
|
471
|
+
* observed state the resource has reported. The single publication path — the
|
|
472
|
+
* post-init capture, the post-run publication, the post-invoke refresh and
|
|
473
|
+
* every `setStatus()` all land here.
|
|
474
|
+
*/
|
|
475
|
+
async publishSnapshot(name: string): Promise<void> {
|
|
476
|
+
const entry = this.resourceInstances.get(name) ?? this.createdInstances.get(name);
|
|
477
|
+
if (!entry?.instance.snapshot) return;
|
|
478
|
+
const snap = (await Promise.resolve(entry.instance.snapshot())) as
|
|
479
|
+
| Record<string, unknown>
|
|
480
|
+
| undefined;
|
|
481
|
+
const kind = entry.resource.kind as string;
|
|
482
|
+
this.onResourceSnapshotted(
|
|
483
|
+
name,
|
|
484
|
+
buildPublishedProps(snap, {
|
|
485
|
+
kind,
|
|
486
|
+
name,
|
|
487
|
+
module: entry.resource.metadata?.module as string | undefined,
|
|
488
|
+
statusSchema: this.statusSchemaOf(kind),
|
|
489
|
+
status: reportedStatus.get(entry.instance),
|
|
490
|
+
started: startedInstances.has(entry.instance),
|
|
491
|
+
completed: completedInstances.has(entry.instance),
|
|
492
|
+
}),
|
|
493
|
+
);
|
|
494
|
+
}
|
|
339
495
|
|
|
340
496
|
get context(): Record<string, unknown> {
|
|
341
497
|
return this._context;
|
|
@@ -425,6 +581,7 @@ export class EvaluationContext implements IEvaluationContext {
|
|
|
425
581
|
this.emit,
|
|
426
582
|
);
|
|
427
583
|
child.resolveImportedInstance = (alias, name) => this.resolveImportedInstance(alias, name);
|
|
584
|
+
child.kindResolver = (kind) => this.resolveKindSafe(kind);
|
|
428
585
|
return this.spawnChild(child);
|
|
429
586
|
}
|
|
430
587
|
|
|
@@ -528,10 +685,13 @@ export class EvaluationContext implements IEvaluationContext {
|
|
|
528
685
|
);
|
|
529
686
|
}
|
|
530
687
|
if (instance.init) await instance.init(ctx);
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
688
|
+
// Publish BEFORE registering: publication can fail (a kind returning
|
|
689
|
+
// the reserved `status` key without declaring it, a report that does
|
|
690
|
+
// not match `status:`), and a resource that failed must not be left
|
|
691
|
+
// reachable through `getInstance` / Phase 5 injection / teardown.
|
|
692
|
+
// `publishSnapshot` looks the instance up in `createdInstances` too,
|
|
693
|
+
// so it resolves fine from here.
|
|
694
|
+
await this.publishSnapshot(name);
|
|
535
695
|
this.resourceInstances.set(name, { resource, instance });
|
|
536
696
|
this.createdInstances.delete(name);
|
|
537
697
|
errors.delete(name);
|
|
@@ -639,6 +799,18 @@ export class EvaluationContext implements IEvaluationContext {
|
|
|
639
799
|
parent.emit,
|
|
640
800
|
),
|
|
641
801
|
);
|
|
802
|
+
child.kindResolver = (kind) => parent.resolveKindSafe(kind);
|
|
803
|
+
|
|
804
|
+
// Per-run map of the scope's OWN resources. Fresh per run, so two
|
|
805
|
+
// concurrent runs of the same sequence never observe each other's.
|
|
806
|
+
// The enclosing module's map is layered in at read time, not copied
|
|
807
|
+
// here: `setResource` replaces `_resources` wholesale on every publish,
|
|
808
|
+
// so a snapshot taken at scope entry would go stale the moment an outer
|
|
809
|
+
// resource republished (a post-invoke refresh, a later boot target).
|
|
810
|
+
const scopeLocal = new Map<string, Record<string, unknown>>();
|
|
811
|
+
child.snapshotSink = (name, snap) => {
|
|
812
|
+
scopeLocal.set(name, snap);
|
|
813
|
+
};
|
|
642
814
|
|
|
643
815
|
// Propagate injection hook: extend getInstance to also resolve parent singleton instances.
|
|
644
816
|
if (parent.preInitHook) {
|
|
@@ -646,13 +818,23 @@ export class EvaluationContext implements IEvaluationContext {
|
|
|
646
818
|
child.preInitHook = (resource, childGetInstance, childIsPending) => {
|
|
647
819
|
parentHook(
|
|
648
820
|
resource,
|
|
649
|
-
(name, alias) =>
|
|
650
|
-
alias && alias !== "Self"
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
821
|
+
(name, alias) => {
|
|
822
|
+
if (alias && alias !== "Self") return parent.resolveImportedInstance(alias, name);
|
|
823
|
+
const scoped = childGetInstance(name);
|
|
824
|
+
if (scoped) return scoped;
|
|
825
|
+
// A name the scope DECLARES resolves to the scope's instance and to
|
|
826
|
+
// nothing else. Falling through to the enclosing module while the
|
|
827
|
+
// scoped one is merely not initialized yet would inject the resource
|
|
828
|
+
// it shadows — an init-order-dependent wrong answer, and a silent
|
|
829
|
+
// one: the ref binds an instance that is never started, so the
|
|
830
|
+
// failure surfaces later as a timeout somewhere else entirely.
|
|
831
|
+
// Returning nothing leaves it pending, which is what makes the init
|
|
832
|
+
// loop come back to it.
|
|
833
|
+
if (child.hasManifest(name)) return undefined;
|
|
834
|
+
return parent.resourceInstances.get(name)?.instance;
|
|
835
|
+
},
|
|
836
|
+
// Only a scope-local dependency can still be pending — an outer resource
|
|
837
|
+
// is live by the time a scope opens — so the child's own predicate suffices.
|
|
656
838
|
childIsPending,
|
|
657
839
|
);
|
|
658
840
|
};
|
|
@@ -684,6 +866,22 @@ export class EvaluationContext implements IEvaluationContext {
|
|
|
684
866
|
`Resource '${name}' not found in scope or outer context. Available scoped: ${[...child.resourceInstances.keys()].join(", ")}`,
|
|
685
867
|
);
|
|
686
868
|
},
|
|
869
|
+
async run(name: string): Promise<void> {
|
|
870
|
+
// Through the child context's chokepoint, so a scope target is
|
|
871
|
+
// traced, records that it started, and publishes its snapshot —
|
|
872
|
+
// exactly like a boot target. A scope target is always a
|
|
873
|
+
// with-resource, so it lives in the child.
|
|
874
|
+
await child.run(name);
|
|
875
|
+
},
|
|
876
|
+
get resources(): Record<string, unknown> {
|
|
877
|
+
// Merged on read so the outer half stays live; scope-local names
|
|
878
|
+
// win, matching `getInstance`'s order so CEL and `!ref` agree.
|
|
879
|
+
const merged: Record<string, unknown> = {
|
|
880
|
+
...((parent._context.resources as Record<string, unknown> | undefined) ?? {}),
|
|
881
|
+
};
|
|
882
|
+
for (const [name, snap] of scopeLocal) merged[name] = snap;
|
|
883
|
+
return merged;
|
|
884
|
+
},
|
|
687
885
|
};
|
|
688
886
|
return await fn(scope);
|
|
689
887
|
} finally {
|
|
@@ -716,6 +914,13 @@ export class EvaluationContext implements IEvaluationContext {
|
|
|
716
914
|
|
|
717
915
|
for (const [key, { resource, instance }] of this.teardownOrder()) {
|
|
718
916
|
const label = `${resource.kind}.${resource.metadata.name}`;
|
|
917
|
+
// A reading belongs to the run that produced it. The WeakMap would drop it
|
|
918
|
+
// with the instance anyway; clearing here also covers an instance something
|
|
919
|
+
// else still holds, so a torn-down resource can never keep publishing what
|
|
920
|
+
// it observed in a previous life.
|
|
921
|
+
reportedStatus.delete(instance);
|
|
922
|
+
startedInstances.delete(instance);
|
|
923
|
+
completedInstances.delete(instance);
|
|
719
924
|
try {
|
|
720
925
|
if (instance.teardown) await instance.teardown();
|
|
721
926
|
} catch (err) {
|
|
@@ -979,6 +1184,10 @@ export class EvaluationContext implements IEvaluationContext {
|
|
|
979
1184
|
// `run()` — side effects only, no outputs. Prefer `invoke()` when both
|
|
980
1185
|
// exist so a dual-capability instance (e.g. Run.Sequence) keeps invoke
|
|
981
1186
|
// semantics and returns its `steps`/`outputs`.
|
|
1187
|
+
// A pure Runnable reached through an `invoke:` slot runs exactly as it
|
|
1188
|
+
// would from a `targets:` list, so it starts here too — its observed state
|
|
1189
|
+
// must not stay withheld just because the dispatch slot was a different one.
|
|
1190
|
+
if (typeof instance.invoke !== "function") await this.markStarted(name, instance);
|
|
982
1191
|
const call = () =>
|
|
983
1192
|
typeof instance.invoke === "function"
|
|
984
1193
|
? (instance.invoke as (i: any, c?: InvokeContext) => any)(inputs as any, invokeCtx)
|
|
@@ -986,6 +1195,7 @@ export class EvaluationContext implements IEvaluationContext {
|
|
|
986
1195
|
const outputs = await (invokeCtx === ambient
|
|
987
1196
|
? call()
|
|
988
1197
|
: cancellationStore.run(invokeCtx, call));
|
|
1198
|
+
if (typeof instance.invoke !== "function") completedInstances.add(instance);
|
|
989
1199
|
await this.emit(`${name}.Invoked`, span("end", "ok", { inputs, outputs }));
|
|
990
1200
|
return outputs;
|
|
991
1201
|
} catch (err) {
|
|
@@ -1047,9 +1257,15 @@ export class EvaluationContext implements IEvaluationContext {
|
|
|
1047
1257
|
* kind unchanged. A typed seam (overridden in `ModuleContext`), matching the
|
|
1048
1258
|
* `traceRootScope()` pattern, rather than reaching across the boundary. */
|
|
1049
1259
|
protected resolveKindSafe(kind: string): string {
|
|
1050
|
-
return kind;
|
|
1260
|
+
return this.kindResolver?.(kind) ?? kind;
|
|
1051
1261
|
}
|
|
1052
1262
|
|
|
1263
|
+
/** Alias-kind resolver inherited from the context that spawned this one. A
|
|
1264
|
+
* scope / template child holds no import table of its own, but its resources
|
|
1265
|
+
* are written with the declaring module's aliases (`Observed.Listener`), so
|
|
1266
|
+
* definition lookups there have to go through the parent's table. */
|
|
1267
|
+
kindResolver: ((kind: string) => string) | undefined;
|
|
1268
|
+
|
|
1053
1269
|
private capabilityOf(kind: string): string | undefined {
|
|
1054
1270
|
const resolved = this.resolveKindSafe(kind);
|
|
1055
1271
|
return this.getDefinition?.(resolved)?.capability ?? this.getDefinition?.(kind)?.capability;
|
|
@@ -1224,6 +1440,12 @@ export class EvaluationContext implements IEvaluationContext {
|
|
|
1224
1440
|
|
|
1225
1441
|
if (tracing) await this.emit(`${name}.Running`, span("start", undefined, {}));
|
|
1226
1442
|
|
|
1443
|
+
// Marked before the call, not after: a Service's `run()` stays pending for
|
|
1444
|
+
// the process lifetime, and reporting what it discovered while listening is
|
|
1445
|
+
// the whole point — `ctx.setStatus()` is an error until the resource counts
|
|
1446
|
+
// as started, so this has to happen first.
|
|
1447
|
+
await this.markStarted(name, instance);
|
|
1448
|
+
|
|
1227
1449
|
try {
|
|
1228
1450
|
// Runnable: run inside the ALS scope so nested invokes inherit the token and
|
|
1229
1451
|
// trace id (skip the redundant `run` when the token is already ambient).
|
|
@@ -1231,6 +1453,10 @@ export class EvaluationContext implements IEvaluationContext {
|
|
|
1231
1453
|
// its long-lived async work does not capture this scope.
|
|
1232
1454
|
const call = () => (instance.run as (c?: InvokeContext) => Promise<void>)(invokeCtx);
|
|
1233
1455
|
await (isService || invokeCtx === ambient ? call() : cancellationStore.run(invokeCtx, call));
|
|
1456
|
+
// A one-shot Runnable that discovered something during run() publishes it
|
|
1457
|
+
// without an explicit call; a Service never reaches this until teardown.
|
|
1458
|
+
completedInstances.add(instance);
|
|
1459
|
+
await this.publishSnapshot(name);
|
|
1234
1460
|
await this.emit(`${name}.Run`, span("end", "ok", {}));
|
|
1235
1461
|
} catch (err) {
|
|
1236
1462
|
if (isCancellationError(err)) {
|
|
@@ -1438,6 +1664,35 @@ export function describeFailedAccess(
|
|
|
1438
1664
|
ctx: unknown,
|
|
1439
1665
|
msg: string,
|
|
1440
1666
|
): string | null {
|
|
1667
|
+
const failure = locateFailedAccess(source, ctx, msg);
|
|
1668
|
+
if (!failure) return null;
|
|
1669
|
+
return `at ${failure.walked}: ${describeMissingAccess(failure.container, failure.missingKey)}`;
|
|
1670
|
+
}
|
|
1671
|
+
|
|
1672
|
+
/**
|
|
1673
|
+
* The observed-state message for a failed access, or null when the failure has
|
|
1674
|
+
* nothing to do with observed state (the caller then falls back to the generic
|
|
1675
|
+
* enrichment above). See `observed-state.ts` for why "has not started" and
|
|
1676
|
+
* "started but reported nothing" are two different messages.
|
|
1677
|
+
*/
|
|
1678
|
+
export function describeObservedStateFailure(
|
|
1679
|
+
source: string,
|
|
1680
|
+
ctx: unknown,
|
|
1681
|
+
msg: string,
|
|
1682
|
+
): string | null {
|
|
1683
|
+
const failure = locateFailedAccess(source, ctx, msg);
|
|
1684
|
+
if (!failure) return null;
|
|
1685
|
+
return diagnoseObservedStateAccess(failure.container, failure.missingKey);
|
|
1686
|
+
}
|
|
1687
|
+
|
|
1688
|
+
/** Walk a dotted CEL access path against the activation and stop at the node
|
|
1689
|
+
* whose key was missing. Null when the error isn't a key-access failure, the
|
|
1690
|
+
* source isn't a plain access path, or the path doesn't match the activation. */
|
|
1691
|
+
function locateFailedAccess(
|
|
1692
|
+
source: string,
|
|
1693
|
+
ctx: unknown,
|
|
1694
|
+
msg: string,
|
|
1695
|
+
): { container: unknown; missingKey: string; walked: string } | null {
|
|
1441
1696
|
const m = /^No such key:\s*(\S+)/.exec(msg);
|
|
1442
1697
|
if (!m) return null;
|
|
1443
1698
|
const missingKey = m[1];
|
|
@@ -1463,7 +1718,7 @@ export function describeFailedAccess(
|
|
|
1463
1718
|
!(tok.name in (current as Record<string, unknown>))
|
|
1464
1719
|
) {
|
|
1465
1720
|
if (tok.name !== missingKey) return null;
|
|
1466
|
-
return
|
|
1721
|
+
return { container: current, missingKey, walked: walked.join("") };
|
|
1467
1722
|
}
|
|
1468
1723
|
current = (current as Record<string, unknown>)[tok.name];
|
|
1469
1724
|
walked.push("." + tok.name);
|
package/src/kernel.ts
CHANGED
|
@@ -1030,6 +1030,7 @@ export class Kernel implements IKernel {
|
|
|
1030
1030
|
resource: ResourceManifest,
|
|
1031
1031
|
args?: ParsedArgs,
|
|
1032
1032
|
ownerPrefix = "",
|
|
1033
|
+
owningContext?: IEvaluationContext,
|
|
1033
1034
|
): ResourceContext {
|
|
1034
1035
|
return new ResourceContextImpl(
|
|
1035
1036
|
this,
|
|
@@ -1042,6 +1043,7 @@ export class Kernel implements IKernel {
|
|
|
1042
1043
|
this.stderr,
|
|
1043
1044
|
args,
|
|
1044
1045
|
ownerPrefix,
|
|
1046
|
+
owningContext ?? moduleContext,
|
|
1045
1047
|
);
|
|
1046
1048
|
}
|
|
1047
1049
|
|
|
@@ -1189,6 +1191,9 @@ export class Kernel implements IKernel {
|
|
|
1189
1191
|
processedResource,
|
|
1190
1192
|
parsedArgs,
|
|
1191
1193
|
evalContext.ownerPrefix,
|
|
1194
|
+
// Snapshot publication targets the context that OWNS the instance — for a
|
|
1195
|
+
// `with:`-scoped resource that is the per-run scope child, not the module.
|
|
1196
|
+
evalContext,
|
|
1192
1197
|
);
|
|
1193
1198
|
const instance = await controller.create(processedResource, ctx);
|
|
1194
1199
|
if (!instance) return null;
|
package/src/manifest-schemas.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import AjvModule from "ajv";
|
|
2
2
|
import addFormats from "ajv-formats";
|
|
3
|
+
// One definition of the `status:` block's shape, shared with `telo check` — the
|
|
4
|
+
// `required:` restriction is reported by the analyzer, which can name the fix.
|
|
5
|
+
import { OBSERVED_STATE_SCHEMA } from "@telorun/analyzer";
|
|
3
6
|
const Ajv = AjvModule.default ?? AjvModule;
|
|
4
7
|
|
|
5
8
|
// Re-export the shared ResourceRef fragment from the templating package
|
|
@@ -74,6 +77,7 @@ const baseDefinition = {
|
|
|
74
77
|
capability: { type: "string" },
|
|
75
78
|
extends: { type: "string", pattern: EXTENDS_ALIAS_PATTERN },
|
|
76
79
|
schema: { type: "object", additionalProperties: true },
|
|
80
|
+
status: OBSERVED_STATE_SCHEMA,
|
|
77
81
|
controllers: { type: "array", items: { type: "string" } },
|
|
78
82
|
throws: throwsSchema,
|
|
79
83
|
},
|
|
@@ -157,6 +161,8 @@ export const ResourceAbstractSchema = {
|
|
|
157
161
|
metadata: metadataSchema,
|
|
158
162
|
capability: { type: "string" },
|
|
159
163
|
schema: { type: "object", additionalProperties: true },
|
|
164
|
+
// A contract may mandate what its implementations report.
|
|
165
|
+
status: OBSERVED_STATE_SCHEMA,
|
|
160
166
|
},
|
|
161
167
|
not: {
|
|
162
168
|
anyOf: [{ required: ["controllers"] }, { required: ["throws"] }],
|
package/src/module-context.ts
CHANGED
|
@@ -219,6 +219,21 @@ export class ModuleContext extends EvaluationContext implements IModuleContext {
|
|
|
219
219
|
this.setResource(name, snap);
|
|
220
220
|
}
|
|
221
221
|
|
|
222
|
+
/**
|
|
223
|
+
* A cross-module exported instance has no entry of its own here — it surfaces
|
|
224
|
+
* under `resources.<alias>.<name>`, published by the `Telo.Import` that owns
|
|
225
|
+
* it. So republishing such a name means republishing that import, which is
|
|
226
|
+
* what makes an exported service's observed state readable once the IMPORTER's
|
|
227
|
+
* `targets:` starts it.
|
|
228
|
+
*/
|
|
229
|
+
override async publishSnapshot(name: string): Promise<void> {
|
|
230
|
+
await super.publishSnapshot(name);
|
|
231
|
+
if (this.resourceInstances.has(name)) return;
|
|
232
|
+
for (const [alias, scope] of this.importedScopes) {
|
|
233
|
+
if (scope.names.has(name)) await super.publishSnapshot(alias);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
222
237
|
/**
|
|
223
238
|
* Register an imported module under the given alias, gated to the kind names it
|
|
224
239
|
* exports (its `exports.kinds`). Only listed kinds resolve; an empty list exports
|
|
@@ -493,11 +508,10 @@ export class ModuleContext extends EvaluationContext implements IModuleContext {
|
|
|
493
508
|
ctx?: InvokeContext,
|
|
494
509
|
): Promise<any> {
|
|
495
510
|
const result = await super.invoke(kind, name, inputs, ctx);
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
}
|
|
511
|
+
// Same publication path as the post-init capture and `setStatus()`:
|
|
512
|
+
// one shape, one target, so a declared `status:` is a guarantee on every
|
|
513
|
+
// path rather than on some of them.
|
|
514
|
+
await this.publishSnapshot(name);
|
|
501
515
|
return result;
|
|
502
516
|
}
|
|
503
517
|
|