@telorun/kernel 0.34.0 → 0.36.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.
@@ -1 +1 @@
1
- {"version":3,"file":"resource-definition-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-definition-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,eAAe,EAChB,MAAM,cAAc,CAAC;AAKtB,KAAK,0BAA0B,GAAG,eAAe,GAAG;IAClD,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,cAAM,kBAAmB,YAAW,gBAAgB;IAGtC,QAAQ,CAAC,QAAQ,EAAE,0BAA0B;IAFzD,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAwB;gBAEtC,QAAQ,EAAE,0BAA0B;IAEnD,IAAI,CAAC,GAAG,EAAE,eAAe;CA0DhC;AAeD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAErD;AAED,wBAAsB,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAW7F;AAED,eAAO,MAAM,MAAM;;;CAGlB,CAAC"}
1
+ {"version":3,"file":"resource-definition-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-definition-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,eAAe,EAChB,MAAM,cAAc,CAAC;AAKtB,KAAK,0BAA0B,GAAG,eAAe,GAAG;IAClD,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,cAAM,kBAAmB,YAAW,gBAAgB;IAGtC,QAAQ,CAAC,QAAQ,EAAE,0BAA0B;IAFzD,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAwB;gBAEtC,QAAQ,EAAE,0BAA0B;IAEnD,IAAI,CAAC,GAAG,EAAE,eAAe;CA+DhC;AAeD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAErD;AAED,wBAAsB,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAW7F;AAED,eAAO,MAAM,MAAM;;;CAGlB,CAAC"}
@@ -15,7 +15,12 @@ class ResourceDefinition {
15
15
  if (this.resource.capability === "Telo.Provider" && this.resource.provide == null) {
16
16
  throw new Error(`Telo.Definition '${this.resource.metadata.name}': 'capability: Telo.Provider' requires either 'controllers:' (TS-backed) or 'provide:' (template-backed).`);
17
17
  }
18
- const controllerInstance = createTemplateController(this.resource);
18
+ // ctx.moduleContext here is the context that DEFINED this kind (the
19
+ // library the Telo.Definition lives in). The template controller spawns
20
+ // its child scope from this context so the template's internal kind
21
+ // aliases / `!ref`s resolve against the defining library's imports — not
22
+ // the consumer module that instantiates the kind.
23
+ const controllerInstance = createTemplateController(this.resource, ctx.moduleContext);
19
24
  ctx.registerDefinition(this.resource);
20
25
  await ctx.registerController(this.resource.metadata.module, this.resource.metadata.name, controllerInstance);
21
26
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"resource-definition-controller.js","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-definition-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-definition-controller.js","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-definition-controller.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ControllerInstance } from "@telorun/sdk";
1
+ import type { ControllerInstance, EvaluationContext } from "@telorun/sdk";
2
2
  export declare function createTemplateController(definition: {
3
3
  schema: Record<string, any>;
4
4
  resources?: any[];
@@ -8,10 +8,14 @@ export declare function createTemplateController(definition: {
8
8
  };
9
9
  inputs?: Record<string, any>;
10
10
  run?: string;
11
+ mount?: string | {
12
+ kind?: string;
13
+ name: string;
14
+ };
11
15
  provide?: {
12
16
  kind: string;
13
17
  name: string;
14
18
  };
15
19
  result?: Record<string, any>;
16
- }): ControllerInstance;
20
+ }, definingContext: EvaluationContext): ControllerInstance;
17
21
  //# sourceMappingURL=resource-template-controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-template-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-template-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAqC,MAAM,cAAc,CAAC;AAqB1F,wBAAgB,wBAAwB,CAAC,UAAU,EAAE;IACnD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B,GAAG,kBAAkB,CA0MrB"}
1
+ {"version":3,"file":"resource-template-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-template-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kBAAkB,EAClB,iBAAiB,EAGlB,MAAM,cAAc,CAAC;AA8CtB,wBAAgB,wBAAwB,CAAC,UAAU,EAAE;IACnD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B,EAAE,eAAe,EAAE,iBAAiB,GAAG,kBAAkB,CAsMzD"}
@@ -1,4 +1,27 @@
1
1
  import { isCompiledValue } from "@telorun/sdk";
2
+ import { isRefSentinel } from "@telorun/templating";
3
+ /** CEL variables that are only bound at call time (request handling, step
4
+ * chaining, error branches) — never at a template's init(). A persistent
5
+ * child's body is expanded against `self` only, so a `${{ }}` node referencing
6
+ * any of these must survive untouched for the consuming controller (e.g. an
7
+ * Http.Api evaluating route CEL per request) to evaluate later. A node mixing
8
+ * `self` with a deferred variable in one expression is unsupported by design —
9
+ * keep `self`-derived literals and request-derived values in separate fields
10
+ * (e.g. a `self`-built SQL string vs. request-built `bindings`). */
11
+ const DEFERRED_VARS = new Set(["request", "result", "steps", "error"]);
12
+ const DEFERRED_RE = new RegExp(`(?<![.\\w])(?:${[...DEFERRED_VARS].join("|")})(?![\\w])`);
13
+ /** True when an expression reads a call-time-only variable. Prefers the AST-
14
+ * derived root identifiers stamped on the CompiledValue at compile time (exact —
15
+ * ignores string literals and substrings); falls back to a source-text scan for
16
+ * values produced by engines that surface no AST. */
17
+ function referencesDeferred(value) {
18
+ if (value.refs)
19
+ return value.refs.some((r) => DEFERRED_VARS.has(r));
20
+ return typeof value.source === "string" && DEFERRED_RE.test(value.source);
21
+ }
22
+ /** Matches a CEL source that is exactly a `self.<path>` member access (capturing
23
+ * the `.<path>` tail) — the form resolved by direct navigation rather than CEL. */
24
+ const SELF_PATH = /^self((?:\.[A-Za-z_$][\w$]*)+)$/;
2
25
  /** Reports the resources: entries available to dispatch against, by expanded
3
26
  * name and kind. Used in error messages to guide the developer back to the
4
27
  * template's `resources:` array when a dispatch target doesn't match. */
@@ -7,165 +30,185 @@ function describeAvailableTargets(ctx, resources, self) {
7
30
  return "<none>";
8
31
  return resources
9
32
  .map((r) => {
10
- const expanded = ctx.moduleContext.expandWith(r?.metadata?.name ?? "", { self });
33
+ const expanded = ctx.expandWith(r?.metadata?.name ?? "", { self });
11
34
  const kind = typeof r?.kind === "string" ? r.kind : "<unknown-kind>";
12
35
  return `'${expanded || "<unnamed>"}' (${kind})`;
13
36
  })
14
37
  .join(", ");
15
38
  }
16
- export function createTemplateController(definition) {
39
+ export function createTemplateController(definition, definingContext) {
17
40
  return {
18
41
  schema: definition.schema ?? { type: "object", additionalProperties: true },
19
42
  create: async (resource, ctx) => {
20
- const self = { ...resource, name: resource.metadata.name };
21
- // `invoke` describes the dispatch target: a string name template (legacy
22
- // shorthand) or an object `{ kind?, name }` for explicit kind-typed
23
- // dispatch. `inputs:` lives as a sibling on the definition (same shape
24
- // as Run.Sequence steps) — the values passed to the dispatch target's
25
- // invoke() after CEL expansion.
26
- const objectInvoke = definition.invoke !== null &&
27
- typeof definition.invoke === "object" &&
28
- !isCompiledValue(definition.invoke)
29
- ? definition.invoke
30
- : null;
31
- const invokeNameTemplate = objectInvoke ? objectInvoke.name : (definition.invoke ?? null);
32
- const invokeTarget = invokeNameTemplate
33
- ? ctx.moduleContext.expandWith(invokeNameTemplate, { self })
34
- : null;
35
- const runTarget = definition.run
36
- ? ctx.moduleContext.expandWith(definition.run, { self })
37
- : null;
38
- const provideTarget = definition.provide?.name
39
- ? ctx.moduleContext.expandWith(definition.provide.name, { self })
40
- : null;
41
- const persistentManifests = [];
42
- let ephemeralTemplate = null;
43
+ void ctx; // child scope is rooted on definingContext, not the instance's ctx
44
+ // `self` is read lazily: Phase 5 injection mutates `resource`'s ref slots
45
+ // (e.g. `connection: !ref Db` the live instance) AFTER create() but before
46
+ // init(), so capturing self here would freeze the pre-injection refs. Every
47
+ // expansion reads the current resource state instead.
48
+ const getSelf = () => ({ ...resource, name: resource.metadata.name });
49
+ // A dispatch field names which `resources:` entry receives the call. It is
50
+ // a string name template (legacy shorthand) or an object `{ kind?, name }`
51
+ // for explicit kind-typed dispatch. Per-call data lives on the top-level
52
+ // `inputs:` sibling (same factoring as Run.Sequence steps), never in the
53
+ // target's resource body — the body is `self`-only so every child can be
54
+ // created once at init and reused across calls.
55
+ const targetName = (field) => {
56
+ if (field == null)
57
+ return null;
58
+ const nameTemplate = typeof field === "object" && !isCompiledValue(field) ? field.name : field;
59
+ return nameTemplate
60
+ ? definingContext.expandWith(nameTemplate, { self: getSelf() })
61
+ : null;
62
+ };
63
+ const invokeTarget = targetName(definition.invoke);
64
+ const runTarget = targetName(definition.run);
65
+ const mountTarget = targetName(definition.mount);
66
+ const provideTarget = targetName(definition.provide);
67
+ const childContext = definingContext.spawnChildContext();
68
+ // Resolves the live instance of a dispatch target from the child context.
69
+ // Every `resources:` entry is a persistent child created once at init(),
70
+ // so the target is looked up — never re-created — per call.
71
+ const dispatchEntry = (target, role) => {
72
+ const entry = childContext.resourceInstances.get(target);
73
+ if (!entry) {
74
+ throw new Error(`Template '${resource.metadata.name}': '${role}:' targets '${target}' ` +
75
+ `but no entry in 'resources:' has that metadata.name. Available: ${describeAvailableTargets(definingContext, definition.resources, getSelf())}.`);
76
+ }
77
+ return entry;
78
+ };
79
+ const capabilityError = (entry, target, role, expected) => {
80
+ const targetKind = (entry?.resource?.kind ?? "<unknown-kind>");
81
+ const targetDef = definingContext.getDefinition?.(targetKind);
82
+ const actualCap = typeof targetDef?.capability === "string" ? targetDef.capability : "<unknown>";
83
+ return new Error(`Template '${resource.metadata.name}': '${role}:' target '${targetKind}/${target}' ` +
84
+ `has capability '${actualCap}', not ${expected}. Update '${role}:' to a ${expected} kind, ` +
85
+ `or change the target's kind in 'resources:'.`);
86
+ };
87
+ const expand = (value, extra) => definingContext.expandWith(definingContext.expandWith(value, extra), extra);
88
+ // A local `!ref` inside a template body names a sibling `resources:` entry.
89
+ // The entry carries the kind, so resolve each sibling's expanded name to its
90
+ // kind — used to stamp the ref's `{kind, name}` injection shape (an empty
91
+ // kind is rejected downstream as a malformed inline resource).
92
+ const siblingKinds = new Map();
43
93
  for (const template of definition.resources ?? []) {
44
- const expandedName = ctx.moduleContext.expandWith(template.metadata?.name ?? "", {
45
- self,
94
+ const expandedName = definingContext.expandWith(template?.metadata?.name ?? "", {
95
+ self: getSelf(),
46
96
  });
47
- const isTarget = expandedName === invokeTarget ||
48
- expandedName === runTarget ||
49
- expandedName === provideTarget;
50
- if (isTarget) {
51
- ephemeralTemplate = template;
52
- }
53
- else {
54
- persistentManifests.push(ctx.moduleContext.expandWith(template, { self }));
97
+ if (expandedName && typeof template?.kind === "string") {
98
+ siblingKinds.set(expandedName, template.kind);
55
99
  }
56
100
  }
57
- const childContext = ctx.spawnChildContext();
58
- // Registers an ephemeral manifest on ctx.moduleContext so it shares the same
59
- // resource scope (and can access connections, etc. via getInstance).
60
- // Tears down and removes the resource after fn() completes.
61
- const withEphemeral = async (expandedManifest, fn) => {
62
- const uniqueName = `${expandedManifest.metadata?.name ?? "eph"}__${Math.random().toString(16).slice(2, 8)}`;
63
- const manifest = {
64
- ...expandedManifest,
65
- metadata: {
66
- ...expandedManifest.metadata,
67
- name: uniqueName,
68
- module: resource.metadata.module,
69
- },
70
- };
71
- ctx.moduleContext.registerManifest(manifest);
72
- await ctx.moduleContext.initializeResources();
73
- const entry = ctx.moduleContext.resourceInstances.get(uniqueName);
74
- try {
75
- return await fn(uniqueName);
101
+ // Expand a persistent child's body against `self`. Self-only CEL resolves
102
+ // to literals now; CEL bound only at call time (DEFERRED_VARS) passes
103
+ // through compiled for the child's own controller. `!ref` sentinels are
104
+ // rewritten to the `{kind, name, alias?}` injection shape here — Phase 2.5
105
+ // (`resolveRefSentinels`) does not descend into template bodies, so the
106
+ // child context's Phase 5 injection would otherwise see an unrecognized
107
+ // sentinel and leave the slot unresolved. Kind is left empty: injection
108
+ // dispatches by name and recovers the kind from the resolved instance.
109
+ const expandSelf = (value) => {
110
+ if (isCompiledValue(value)) {
111
+ if (referencesDeferred(value))
112
+ return value;
113
+ // A pure `self.<path>` access (e.g. a `connection: !ref` passed down) is
114
+ // resolved by navigating the resource directly. Going through CEL would
115
+ // re-emit the value through CEL's output type-checker, which rejects live
116
+ // resource instances (unrecognized class constructors) — so the connection
117
+ // a consumer wired in could never reach a child's slot. Complex self
118
+ // expressions (string building) still evaluate via CEL, where they yield
119
+ // CEL-safe scalars.
120
+ const path = typeof value.source === "string" ? value.source.trim().match(SELF_PATH) : null;
121
+ if (path) {
122
+ let cur = getSelf();
123
+ for (const key of path[1].split(".").slice(1))
124
+ cur = cur?.[key];
125
+ return cur;
126
+ }
127
+ return definingContext.expandWith(value, { self: getSelf() });
128
+ }
129
+ if (isRefSentinel(value)) {
130
+ const source = value.source;
131
+ const dot = source.indexOf(".");
132
+ const alias = dot > 0 ? source.slice(0, dot) : undefined;
133
+ if (alias && alias !== "Self") {
134
+ const name = source.slice(dot + 1);
135
+ return { kind: siblingKinds.get(name) ?? "", name, alias };
136
+ }
137
+ const name = alias === "Self" ? source.slice(dot + 1) : source;
138
+ return { kind: siblingKinds.get(name) ?? "", name };
76
139
  }
77
- finally {
78
- if (entry?.instance?.teardown)
79
- await entry.instance.teardown();
80
- ctx.moduleContext.resourceInstances.delete(uniqueName);
140
+ if (Array.isArray(value))
141
+ return value.map(expandSelf);
142
+ if (value !== null && typeof value === "object") {
143
+ const out = {};
144
+ for (const [k, v] of Object.entries(value))
145
+ out[k] = expandSelf(v);
146
+ return out;
81
147
  }
148
+ return value;
82
149
  };
150
+ // init() may run more than once: when a child's local ref names a sibling
151
+ // not yet initialized, child init defers with ERR_LOCAL_REF_PENDING and the
152
+ // outer multi-pass loop retries this resource. Registration must happen
153
+ // once; each retry only resumes the child init loop (already-initialized
154
+ // children are skipped, still-pending ones advance).
155
+ let registered = false;
83
156
  return {
84
157
  init: async () => {
85
- for (const m of persistentManifests)
86
- childContext.registerManifest(m);
158
+ if (!registered) {
159
+ for (const template of definition.resources ?? []) {
160
+ childContext.registerManifest(expandSelf(template));
161
+ }
162
+ registered = true;
163
+ }
87
164
  await childContext.initializeResources();
88
165
  },
89
166
  ...(invokeTarget && {
90
167
  invoke: async (inputs) => {
91
- if (!ephemeralTemplate) {
92
- throw new Error(`Template '${resource.metadata.name}': 'invoke:' targets '${invokeTarget}' ` +
93
- `but no entry in 'resources:' has that metadata.name. Available: ${describeAvailableTargets(ctx, definition.resources, self)}.`);
168
+ const entry = dispatchEntry(invokeTarget, "invoke");
169
+ if (!entry.instance?.invoke) {
170
+ throw capabilityError(entry, invokeTarget, "invoke", "Telo.Invocable");
94
171
  }
95
- const extraContext = { self, inputs };
96
- const expanded = ctx.moduleContext.expandWith(ctx.moduleContext.expandWith(ephemeralTemplate, extraContext), extraContext);
97
- return withEphemeral(expanded, async (name) => {
98
- const entry = ctx.moduleContext.resourceInstances.get(name);
99
- if (!entry?.instance?.invoke) {
100
- const targetKind = (entry?.resource?.kind ?? expanded?.kind ?? "<unknown-kind>");
101
- const targetDef = ctx.moduleContext.getDefinition?.(targetKind);
102
- const actualCap = typeof targetDef?.capability === "string" ? targetDef.capability : "<unknown>";
103
- throw new Error(`Template '${resource.metadata.name}': 'invoke:' target '${targetKind}/${invokeTarget}' ` +
104
- `has capability '${actualCap}', not Telo.Invocable. Update 'invoke:' to a Telo.Invocable kind, or change the target's kind in 'resources:'.`);
105
- }
106
- // Top-level `inputs:` (sibling of `invoke:`) carries the values passed
107
- // to the dispatch target's invoke(). When absent, fall back to the
108
- // expanded resource entry's own `inputs` field (legacy string-form
109
- // shape where the inputs live on the resource declaration), then
110
- // finally to the caller's `inputs` arg.
111
- const invokeInputs = definition.inputs != null
112
- ? ctx.moduleContext.expandWith(ctx.moduleContext.expandWith(definition.inputs, extraContext), extraContext)
113
- : expanded.inputs ?? inputs;
114
- const raw = await entry.instance.invoke(invokeInputs);
115
- if (definition.result == null)
116
- return raw;
117
- const resultContext = { self, result: raw };
118
- return ctx.moduleContext.expandWith(ctx.moduleContext.expandWith(definition.result, resultContext), resultContext);
119
- });
172
+ const invokeInputs = definition.inputs != null ? expand(definition.inputs, { self: getSelf(), inputs }) : inputs;
173
+ const raw = await entry.instance.invoke(invokeInputs);
174
+ if (definition.result == null)
175
+ return raw;
176
+ return expand(definition.result, { self: getSelf(), result: raw });
120
177
  },
121
178
  }),
122
179
  ...(runTarget && {
123
180
  run: async () => {
124
- if (!ephemeralTemplate) {
125
- throw new Error(`Template '${resource.metadata.name}': 'run:' targets '${runTarget}' ` +
126
- `but no entry in 'resources:' has that metadata.name. Available: ${describeAvailableTargets(ctx, definition.resources, self)}.`);
181
+ const entry = dispatchEntry(runTarget, "run");
182
+ if (!entry.instance?.run) {
183
+ throw capabilityError(entry, runTarget, "run", "Telo.Runnable");
127
184
  }
128
- const extraContext = { self };
129
- const expanded = ctx.moduleContext.expandWith(ctx.moduleContext.expandWith(ephemeralTemplate, extraContext), extraContext);
130
- return withEphemeral(expanded, async (name) => {
131
- const entry = ctx.moduleContext.resourceInstances.get(name);
132
- if (!entry?.instance?.run) {
133
- const targetKind = (entry?.resource?.kind ?? expanded?.kind ?? "<unknown-kind>");
134
- const targetDef = ctx.moduleContext.getDefinition?.(targetKind);
135
- const actualCap = typeof targetDef?.capability === "string" ? targetDef.capability : "<unknown>";
136
- throw new Error(`Template '${resource.metadata.name}': 'run:' target '${targetKind}/${runTarget}' ` +
137
- `has capability '${actualCap}', not Telo.Runnable. Update 'run:' to a Telo.Runnable kind, or change the target's kind in 'resources:'.`);
138
- }
139
- return entry.instance.run();
140
- });
185
+ return entry.instance.run();
141
186
  },
142
187
  }),
143
188
  ...(provideTarget && {
144
189
  provide: async () => {
145
- if (!ephemeralTemplate) {
146
- throw new Error(`Template '${resource.metadata.name}': 'provide:' targets '${provideTarget}' ` +
147
- `but no entry in 'resources:' has that metadata.name. Available: ${describeAvailableTargets(ctx, definition.resources, self)}.`);
190
+ const entry = dispatchEntry(provideTarget, "provide");
191
+ if (!entry.instance?.invoke) {
192
+ throw capabilityError(entry, provideTarget, "provide", "Telo.Invocable");
193
+ }
194
+ const provideInputs = definition.inputs != null ? expand(definition.inputs, { self: getSelf() }) : {};
195
+ const raw = await entry.instance.invoke(provideInputs);
196
+ if (definition.result == null)
197
+ return raw;
198
+ return expand(definition.result, { self: getSelf(), result: raw });
199
+ },
200
+ }),
201
+ ...(mountTarget && {
202
+ // `register(app, prefix)` is the Telo.Mount contract a consuming
203
+ // Http.Server calls. It is not on the base ResourceInstance type, so
204
+ // the persistent mount child is accessed structurally.
205
+ register: (app, prefix) => {
206
+ const entry = dispatchEntry(mountTarget, "mount");
207
+ const mountable = entry.instance;
208
+ if (typeof mountable.register !== "function") {
209
+ throw capabilityError(entry, mountTarget, "mount", "Telo.Mount");
148
210
  }
149
- const extraContext = { self };
150
- const expanded = ctx.moduleContext.expandWith(ctx.moduleContext.expandWith(ephemeralTemplate, extraContext), extraContext);
151
- return withEphemeral(expanded, async (name) => {
152
- const entry = ctx.moduleContext.resourceInstances.get(name);
153
- if (!entry?.instance?.invoke) {
154
- const targetKind = (entry?.resource?.kind ?? expanded?.kind ?? "<unknown-kind>");
155
- const targetDef = ctx.moduleContext.getDefinition?.(targetKind);
156
- const actualCap = typeof targetDef?.capability === "string" ? targetDef.capability : "<unknown>";
157
- throw new Error(`Template '${resource.metadata.name}': 'provide:' target '${targetKind}/${provideTarget}' ` +
158
- `has capability '${actualCap}', not Telo.Invocable. Update 'provide:' to a Telo.Invocable kind, or change the target's kind in 'resources:'.`);
159
- }
160
- const provideInputs = definition.inputs != null
161
- ? ctx.moduleContext.expandWith(ctx.moduleContext.expandWith(definition.inputs, extraContext), extraContext)
162
- : {};
163
- const raw = await entry.instance.invoke(provideInputs);
164
- if (definition.result == null)
165
- return raw;
166
- const resultContext = { self, result: raw };
167
- return ctx.moduleContext.expandWith(ctx.moduleContext.expandWith(definition.result, resultContext), resultContext);
168
- });
211
+ return mountable.register(app, prefix);
169
212
  },
170
213
  }),
171
214
  teardown: async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"resource-template-controller.js","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-template-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-template-controller.js","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-template-controller.ts"],"names":[],"mappings":"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"}
@@ -75,6 +75,14 @@ export declare class EvaluationContext implements IEvaluationContext {
75
75
  * context and the child is registered under the given name.
76
76
  */
77
77
  spawnChild<T extends IEvaluationContext>(child: T): T;
78
+ /** Spawn a fresh child context attached to this node — the isolated scope a
79
+ * templated definition registers its `resources:` into. Rooting it on the
80
+ * context that DEFINED the template (not the consumer that instantiated the
81
+ * kind) is what makes the template's internal kind aliases and `!ref`s
82
+ * resolve against the defining library's imports. Local sibling refs resolve
83
+ * in the child; a cross-module `!ref Alias.name` delegates to this context's
84
+ * imports (a plain child resolves none of its own). */
85
+ spawnChildContext(): EvaluationContext;
78
86
  /**
79
87
  * Resolve a cross-module exported instance (`!ref Alias.name`) to its live instance.
80
88
  * Overridable hook: the base context has no imports, so it returns undefined; ModuleContext
@@ -1 +1 @@
1
- {"version":3,"file":"evaluation-context.d.ts","sourceRoot":"","sources":["../src/evaluation-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evaluation-context.d.ts","sourceRoot":"","sources":["../src/evaluation-context.ts"],"names":[],"mappings":"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"}
@@ -201,6 +201,18 @@ export class EvaluationContext {
201
201
  }
202
202
  return child;
203
203
  }
204
+ /** Spawn a fresh child context attached to this node — the isolated scope a
205
+ * templated definition registers its `resources:` into. Rooting it on the
206
+ * context that DEFINED the template (not the consumer that instantiated the
207
+ * kind) is what makes the template's internal kind aliases and `!ref`s
208
+ * resolve against the defining library's imports. Local sibling refs resolve
209
+ * in the child; a cross-module `!ref Alias.name` delegates to this context's
210
+ * imports (a plain child resolves none of its own). */
211
+ spawnChildContext() {
212
+ const child = new EvaluationContext(this.source, this.context, this._createInstance, this._secretValues, this.emit);
213
+ child.resolveImportedInstance = (alias, name) => this.resolveImportedInstance(alias, name);
214
+ return this.spawnChild(child);
215
+ }
204
216
  /**
205
217
  * Resolve a cross-module exported instance (`!ref Alias.name`) to its live instance.
206
218
  * Overridable hook: the base context has no imports, so it returns undefined; ModuleContext