@telorun/kernel 0.18.0 → 0.19.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/evaluation-context.d.ts +4 -4
- package/dist/evaluation-context.d.ts.map +1 -1
- package/dist/evaluation-context.js +55 -10
- package/dist/evaluation-context.js.map +1 -1
- package/dist/kernel.d.ts +13 -2
- package/dist/kernel.d.ts.map +1 -1
- package/dist/kernel.js +54 -4
- package/dist/kernel.js.map +1 -1
- package/dist/module-context.d.ts +4 -4
- package/dist/module-context.d.ts.map +1 -1
- package/dist/module-context.js +21 -15
- package/dist/module-context.js.map +1 -1
- package/dist/resource-context.d.ts +3 -2
- package/dist/resource-context.d.ts.map +1 -1
- package/dist/resource-context.js +6 -3
- package/dist/resource-context.js.map +1 -1
- package/package.json +2 -2
- package/src/evaluation-context.ts +71 -6
- package/src/kernel.ts +63 -2
- package/src/module-context.ts +30 -14
- package/src/resource-context.ts +9 -1
package/dist/module-context.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { executeInvokeStep } from "@telorun/sdk";
|
|
1
|
+
import { executeInvokeStep, RuntimeError } from "@telorun/sdk";
|
|
2
2
|
import { EvaluationContext } from "./evaluation-context.js";
|
|
3
3
|
/** Wraps process.env so that missing keys return null instead of throwing in CEL.
|
|
4
4
|
* cel-js uses Object.hasOwn(obj, key) before accessing obj[key], so we must
|
|
@@ -208,8 +208,8 @@ export class ModuleContext extends EvaluationContext {
|
|
|
208
208
|
};
|
|
209
209
|
this._secretValues = collectSecretValues(this._secrets);
|
|
210
210
|
}
|
|
211
|
-
async invoke(kind, name, inputs) {
|
|
212
|
-
const result = await super.invoke(kind, name, inputs);
|
|
211
|
+
async invoke(kind, name, inputs, ctx) {
|
|
212
|
+
const result = await super.invoke(kind, name, inputs, ctx);
|
|
213
213
|
const entry = this.resourceInstances.get(name);
|
|
214
214
|
if (entry && typeof entry.instance.snapshot === "function") {
|
|
215
215
|
const snap = await Promise.resolve(entry.instance.snapshot());
|
|
@@ -217,30 +217,30 @@ export class ModuleContext extends EvaluationContext {
|
|
|
217
217
|
}
|
|
218
218
|
return result;
|
|
219
219
|
}
|
|
220
|
-
async run(name) {
|
|
220
|
+
async run(name, ctx) {
|
|
221
221
|
const resource = this.resourceInstances.get(name);
|
|
222
222
|
if (!resource) {
|
|
223
223
|
throw new Error(`Target resource ${name} not found in module context. Available resources: ${[...this.resourceInstances.keys()].join(", ")}`);
|
|
224
224
|
}
|
|
225
|
-
if (typeof resource.instance.run
|
|
226
|
-
await resource.instance.run();
|
|
227
|
-
}
|
|
228
|
-
else {
|
|
225
|
+
if (typeof resource.instance.run !== "function") {
|
|
229
226
|
throw new Error(`Target resource ${name} does not have a run() method.`);
|
|
230
227
|
}
|
|
228
|
+
// Delegate execution to the base run(), which applies the cancellation gate
|
|
229
|
+
// and scope; the checks above keep the module-scoped error messages.
|
|
230
|
+
await super.run(name, ctx);
|
|
231
231
|
}
|
|
232
|
-
async runTargets() {
|
|
232
|
+
async runTargets(ctx) {
|
|
233
233
|
const steps = {};
|
|
234
234
|
const stepCtx = {
|
|
235
235
|
expandValue: (value, context) => this.expandWith(value, context),
|
|
236
|
-
invoke: (kind, name, inputs) => this.invoke(kind, name, inputs),
|
|
237
|
-
invokeResolved: (kind, name, instance, inputs) => this.invokeResolved(kind, name, instance, inputs),
|
|
236
|
+
invoke: (kind, name, inputs) => this.invoke(kind, name, inputs, ctx),
|
|
237
|
+
invokeResolved: (kind, name, instance, inputs) => this.invokeResolved(kind, name, instance, inputs, ctx),
|
|
238
238
|
resolveImportedInstance: (alias, name) => this.resolveImportedInstance(alias, name),
|
|
239
239
|
};
|
|
240
240
|
for (let i = 0; i < this.targets.length; i++) {
|
|
241
241
|
const target = this.targets[i];
|
|
242
242
|
if (typeof target === "string") {
|
|
243
|
-
await this.run(target);
|
|
243
|
+
await this.run(target, ctx);
|
|
244
244
|
continue;
|
|
245
245
|
}
|
|
246
246
|
if ("invoke" in target && target.invoke !== undefined) {
|
|
@@ -265,16 +265,22 @@ export class ModuleContext extends EvaluationContext {
|
|
|
265
265
|
if (!inst || typeof inst.run !== "function") {
|
|
266
266
|
throw new Error(`Boot target '${r.alias}.${r.name}' is not a runnable exported instance`);
|
|
267
267
|
}
|
|
268
|
-
|
|
268
|
+
// Mirror the local-run gate: refuse a cross-module target reached
|
|
269
|
+
// after the boot run was cancelled.
|
|
270
|
+
const token = ctx?.cancellation;
|
|
271
|
+
if (token?.isCancelled) {
|
|
272
|
+
throw new RuntimeError("ERR_INVOKE_CANCELLED", `Run ${r.alias}.${r.name} was cancelled${token.reason ? `: ${token.reason}` : ""}`);
|
|
273
|
+
}
|
|
274
|
+
await inst.run(ctx);
|
|
269
275
|
}
|
|
270
276
|
else {
|
|
271
|
-
await this.run(typeof ref === "string" ? ref : r.name);
|
|
277
|
+
await this.run(typeof ref === "string" ? ref : r.name, ctx);
|
|
272
278
|
}
|
|
273
279
|
}
|
|
274
280
|
continue;
|
|
275
281
|
}
|
|
276
282
|
if ("name" in target && typeof target.name === "string") {
|
|
277
|
-
await this.run(target.name);
|
|
283
|
+
await this.run(target.name, ctx);
|
|
278
284
|
continue;
|
|
279
285
|
}
|
|
280
286
|
throw new Error(`Unrecognized target shape at index ${i}: ${JSON.stringify(target)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-context.js","sourceRoot":"","sources":["../src/module-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"module-context.js","sourceRoot":"","sources":["../src/module-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAY/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D;;;;;;iCAMiC;AACjC,SAAS,UAAU,CAAC,GAAuC;IACzD,OAAO,IAAI,KAAK,CAAC,GAAoC,EAAE;QACrD,GAAG,CAAC,MAAM,EAAE,GAAG;YACb,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,OAAQ,MAAc,CAAC,GAAG,CAAC,CAAC;YACzD,IAAI,GAAG,KAAK,aAAa;gBAAE,OAAO,MAA2B,CAAC;YAC9D,OAAO,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtD,CAAC;QACD,GAAG;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,wBAAwB,CAAC,MAAM,EAAE,GAAG;YAClC,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,OAAO,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACjF,MAAM,KAAK,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3D,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACzE,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAgC;IAC3D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,aAAc,SAAQ,iBAAiB;IAoClD,YACE,MAAc,EACd,YAAqC,EAAE,EACvC,UAAmC,EAAE,EACrC,YAAqC,EAAE,EAC/B,UAAwB,EAAE,EAClC,iBAAkC,KAAK,IAAI,EAAE,CAAC,IAAI,EAClD,IAAe,EACE,QAA6C;QAE9D,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QAL3C,YAAO,GAAP,OAAO,CAAmB;QAGjB,aAAQ,GAAR,QAAQ,CAAqC;QAxChE;;sDAE8C;QACtC,WAAM,GAA4B,EAAE,CAAC;QAE7C,gEAAgE;QAC/C,kBAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE3D,yFAAyF;QACxE,kBAAa,GAAG,IAAI,GAAG,EAAuB,CAAC;QAEhE;;;8EAGsE;QACrD,mBAAc,GAAG,IAAI,GAAG,EAMtC,CAAC;QAsBF,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,YAAY,CAAC,IAA6B;QACxC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,QAAQ,CAAC,KAA8B;QACrC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,IAAkB;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,UAAU,CAAC,OAAgC;QACzC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,KAA8B;QACtD,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;QACxD,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,mBAAmB,CAAC,MAAoC;QACtD,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;IAClC,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAEkB,qBAAqB,CAAC,IAAY,EAAE,IAA6B;QAClF,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,KAAa,EAAE,YAAoB,EAAE,KAAe;QACjE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;;gBAGY;IACZ,qBAAqB,CACnB,KAAa,EACb,KAAe,EACf,GAA+E;QAE/E,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;wFAEoF;IAC3E,uBAAuB,CAAC,KAAa,EAAE,IAAY;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QACvD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACnC,CAAC;IAED;;4FAEwF;IACxF,kBAAkB,CAAC,KAAa,EAAE,IAAY;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QACvD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACxD,CAAC;IAED,SAAS,CAAC,KAAa;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,uDAAuD,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxH,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,EAAE,QAAQ,CAAC;IACzB,CAAC;IAED,YAAY,CACV,IAAY;QAEZ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAExC,IAAI,OAAQ,QAAgB,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,qCAAqC,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,QAAsC,CAAC;IAChD,CAAC;IAED;;;;;;;;OAQG;IACH,WAAW,CAAC,IAAY;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,oDAAoD,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;YACtB,OAAO,GAAG,EAAE,CAAC;gBACX,IAAI,GAAG,YAAY,aAAa;oBAAE,OAAO,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC/D,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;YACnB,CAAC;YACD,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;YACpE,MAAM,IAAI,KAAK,CACb,SAAS,IAAI,qCAAqC,MAAM,qBAAqB,KAAK,EAAE,CACrF,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CACb,SAAS,MAAM,gCAAgC,UAAU,mBAAmB,MAAM,MAAM;gBACtF,mBAAmB,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/C,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,UAAU,IAAI,MAAM,EAAE,CAAC;IACnC,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,QAAQ,GAAG;YACd,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAEQ,KAAK,CAAC,MAAM,CACnB,IAAY,EACZ,IAAY,EACZ,MAAe,EACf,GAAmB;QAEnB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,KAAK,IAAI,OAAQ,KAAK,CAAC,QAAgB,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YACpE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAE,KAAK,CAAC,QAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAA+B,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEQ,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,GAAmB;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,mBAAmB,IAAI,sDAAsD,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7H,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,QAAQ,CAAC,QAAQ,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,gCAAgC,CAAC,CAAC;QAC3E,CAAC;QACD,4EAA4E;QAC5E,qEAAqE;QACrE,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAmB;QAClC,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAsB;YACjC,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC;YAChE,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC;YACpE,cAAc,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAC/C,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC;YACxD,uBAAuB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC;SACpF,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;YAChC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC5B,SAAS;YACX,CAAC;YACD,IAAI,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACtD,MAAM,IAAI,GAAe;oBACvB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,EAAE;oBACjC,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,iFAAiF;oBACjF,gFAAgF;oBAChF,uEAAuE;oBACvE,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB,CAAC;gBACF,MAAM,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBAClD,SAAS;YACX,CAAC;YACD,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;gBAC1C,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;oBACzE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAc,CAAC;oBAClC,MAAM,CAAC,GACL,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAE,GAAwC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACzF,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;wBAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;wBAC3D,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;4BAC5C,MAAM,IAAI,KAAK,CACb,gBAAgB,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,uCAAuC,CACzE,CAAC;wBACJ,CAAC;wBACD,kEAAkE;wBAClE,oCAAoC;wBACpC,MAAM,KAAK,GAAG,GAAG,EAAE,YAAY,CAAC;wBAChC,IAAI,KAAK,EAAE,WAAW,EAAE,CAAC;4BACvB,MAAM,IAAI,YAAY,CACpB,sBAAsB,EACtB,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,iBAAiB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACnF,CAAC;wBACJ,CAAC;wBACD,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACtB,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;oBAC/D,CAAC;gBACH,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,MAAM,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACxD,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACjC,SAAS;YACX,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ResourceContext, ResourceInstance, ResourceManifest, RuntimeResource, type ControllerPolicy, type EvaluationContext as IEvaluationContext, type LoadOptions, type ModuleContext, type ParsedArgs, type TypeRule } from "@telorun/sdk";
|
|
1
|
+
import { ResourceContext, ResourceInstance, ResourceManifest, RuntimeResource, type CancellationSource, type ControllerPolicy, type EvaluationContext as IEvaluationContext, type InvokeContext, type LoadOptions, type ModuleContext, type ParsedArgs, type TypeRule } from "@telorun/sdk";
|
|
2
2
|
import { Kernel } from "./kernel.js";
|
|
3
3
|
import { SchemaValidator } from "./schema-validator.js";
|
|
4
4
|
export declare class ResourceContextImpl implements ResourceContext {
|
|
@@ -19,8 +19,9 @@ export declare class ResourceContextImpl implements ResourceContext {
|
|
|
19
19
|
lookupTypeRules(name: string): TypeRule[] | undefined;
|
|
20
20
|
createTypeValidator(typeRef: string | Record<string, any> | undefined): import("@telorun/sdk").DataValidator;
|
|
21
21
|
validateSchema(value: any, schema: any): void;
|
|
22
|
+
createCancellationSource(): CancellationSource;
|
|
22
23
|
invoke<TInputs>(kind: string, name: string, inputs: TInputs): Promise<any>;
|
|
23
|
-
invokeResolved<TInputs>(kind: string, name: string, instance: ResourceInstance, inputs: TInputs): Promise<any>;
|
|
24
|
+
invokeResolved<TInputs>(kind: string, name: string, instance: ResourceInstance, inputs: TInputs, ctx?: InvokeContext): Promise<any>;
|
|
24
25
|
resolveImportedInstance(alias: string, name: string): ResourceInstance | undefined;
|
|
25
26
|
run(name: string): Promise<void>;
|
|
26
27
|
registerManifest(resource: any): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-context.d.ts","sourceRoot":"","sources":["../src/resource-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAEhB,eAAe,
|
|
1
|
+
{"version":3,"file":"resource-context.d.ts","sourceRoot":"","sources":["../src/resource-context.ts"],"names":[],"mappings":"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"}
|
package/dist/resource-context.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NoopValidator, RuntimeError, isCompiledValue, } from "@telorun/sdk";
|
|
1
|
+
import { NoopValidator, RuntimeError, createCancellationSource, isCompiledValue, } from "@telorun/sdk";
|
|
2
2
|
import { isRefSentinel } from "@telorun/templating";
|
|
3
3
|
import AjvModule from "ajv";
|
|
4
4
|
import addFormats from "ajv-formats";
|
|
@@ -98,11 +98,14 @@ export class ResourceContextImpl {
|
|
|
98
98
|
throw new RuntimeError("ERR_INVALID_VALUE", `[${this.metadata.name}] Invalid value. Error: ${formatAjvErrors(validate.errors)}`);
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
|
+
createCancellationSource() {
|
|
102
|
+
return createCancellationSource();
|
|
103
|
+
}
|
|
101
104
|
invoke(kind, name, inputs) {
|
|
102
105
|
return this.moduleContext.invoke(kind, name, inputs);
|
|
103
106
|
}
|
|
104
|
-
invokeResolved(kind, name, instance, inputs) {
|
|
105
|
-
return this.moduleContext.invokeResolved(kind, name, instance, inputs);
|
|
107
|
+
invokeResolved(kind, name, instance, inputs, ctx) {
|
|
108
|
+
return this.moduleContext.invokeResolved(kind, name, instance, inputs, ctx);
|
|
106
109
|
}
|
|
107
110
|
resolveImportedInstance(alias, name) {
|
|
108
111
|
return this.moduleContext.resolveImportedInstance(alias, name);
|
|
@@ -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":"AAAA,OAAO,EACL,aAAa,EAIb,YAAY,EAEZ,wBAAwB,EACxB,eAAe,GAShB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,SAAS,MAAM,KAAK,CAAC;AAC5B,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC;AAE3C,MAAM,OAAO,mBAAmB;IAO9B,YACW,MAAc,EACd,aAA4B,EACpB,QAA6B,EAC7B,YAA6B,IAAI,eAAe,EAAE,EACnE,GAAwC,EACxC,KAA6B,EAC7B,MAA8B,EAC9B,MAA8B,EAC9B,IAAiB;QARR,WAAM,GAAN,MAAM,CAAQ;QACd,kBAAa,GAAb,aAAa,CAAe;QACpB,aAAQ,GAAR,QAAQ,CAAqB;QAC7B,cAAS,GAAT,SAAS,CAAyC;QAOnE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IAChC,CAAC;IAED,qBAAqB,CAAC,MAAW;QAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,aAAa,EAAE,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,cAAc,CAAC,IAAY,EAAE,MAAc;QACzC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,YAAY,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,iBAAiB,CAAC,IAAY,EAAE,KAAiB;QAC/C,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,eAAe,CAAC,IAAY;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,mBAAmB,CAAC,OAAiD;QACnE,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,aAAa,EAAE,CAAC;QAEzC,qEAAqE;QACrE,0EAA0E;QAC1E,4DAA4D;QAC5D,MAAM,eAAe,GACnB,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC;QACtF,MAAM,OAAO,GACX,OAAO,OAAO,KAAK,QAAQ;YACzB,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,eAAe;gBACpD,CAAC,CAAC,OAAO,CAAC,IAAI;gBACd,CAAC,CAAC,SAAS,CAAC;QAElB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,YAAY,CACpB,oBAAoB,EACpB,SAAS,OAAO,gCAAgC,CACjD,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,wEAAwE;QACxE,qDAAqD;QACrD,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAExE,kFAAkF;QAClF,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,uEAAuE;QACvE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,cAAc,CAAC,KAAU,EAAE,MAAW;QACpC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;YAClB,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;QACH,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxB,KAAK,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,oBAAoB,CAAC,EAAE,CAAC;YACxF,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAC1B,MAAM,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;YACjD,CAAC,CAAC,MAAM;YACR,CAAC,CAAC;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,MAAM;gBAClB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC7B,oBAAoB,EAAE,KAAK;aAC5B,CACN,CAAC;QACF,MAAM,OAAO,GAAG,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,YAAY,CACpB,mBAAmB,EACnB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,2BAA2B,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CACpF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,wBAAwB;QACtB,OAAO,wBAAwB,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,CAAU,IAAY,EAAE,IAAY,EAAE,MAAe;QACzD,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,cAAc,CACZ,IAAY,EACZ,IAAY,EACZ,QAA0B,EAC1B,MAAe,EACf,GAAmB;QAEnB,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9E,CAAC;IAED,uBAAuB,CAAC,KAAa,EAAE,IAAY;QACjD,OAAO,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY;QACpB,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,gBAAgB,CAAC,QAAa;QAC5B,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,UAAU,CAAC,GAAW,EAAE,OAAqB;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,aAAa,CAAC,GAAW;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,uBAAuB,CAAC,GAAW;QACjC,OAAO,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,gBAAgB,CAAC,UAAkB,EAAE,YAAoB;QACvD,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;;OASG;IACH,eAAe,CACb,QAAa,EACb,YAAqB;QAErB,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC9C,MAAM,IAAI,YAAY,CACpB,mBAAmB,EACnB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,sCAAsC,OAAO,QAAQ,EAAE,CAC9E,CAAC;QACJ,CAAC;QAED,qEAAqE;QACrE,qEAAqE;QACrE,+DAA+D;QAC/D,4DAA4D;QAC5D,qEAAqE;QACrE,+DAA+D;QAC/D,gEAAgE;QAChE,mEAAmE;QACnE,mEAAmE;QACnE,mEAAmE;QACnE,oEAAoE;QACpE,mEAAmE;QACnE,iDAAiD;QACjD,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzD,oFAAoF;YACpF,8EAA8E;YAC9E,qFAAqF;YACrF,mDAAmD;YACnD,IAAI,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBACnC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC/D,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,MAAM,IAAI,YAAY,CACpB,wBAAwB,EACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,WAAW,MAAM,4CAA4C,KAAK,IAAI,CAC7F,CAAC;gBACJ,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YACnD,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAClE,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAChE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,YAAY,CACpB,wBAAwB,EACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,WAAW,OAAO,6CAA6C,CACtF,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAc,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,YAAY,CACpB,mBAAmB,EACnB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,8CAA8C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAC/F,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3B,MAAM,IAAI,GACR,QAAQ,CAAC,IAAI;YACb,QAAQ,CAAC,QAAQ,EAAE,IAAI;YACvB,YAAY;YACZ,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAErD,oCAAoC;QACpC,8EAA8E;QAC9E,4EAA4E;QAC5E,2EAA2E;QAC3E,wEAAwE;QACxE,oDAAoD;QACpD,0EAA0E;QAC1E,yEAAyE;QACzE,uEAAuE;QACvE,qEAAqE;QACrE,wEAAwE;QACxE,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CACpD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,UAAU,CACxD,CAAC;QACF,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,EAAE,IAAI,KAAK,SAAS,CAAC;QAC7F,MAAM,cAAc,GAClB,mBAAmB,IAAI,CAAC,CAAC,eAAe,IAAI,YAAY,KAAK,SAAS,CAAC,CAAC;QAE1E,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,gBAAgB,CAAC;gBACpB,GAAG,QAAQ;gBACX,QAAQ,EAAE;oBACR,IAAI;oBACJ,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;oBAC5B,GAAG,QAAQ,CAAC,QAAQ;iBACrB;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;IAED,kBAAkB,CAAC,KAAa,EAAE,IAAY;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,EAAE,QAAQ,IAAI,IAAI,CAA2B,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,UAAkB,EAClB,QAAgB,EAChB,kBAAuB;QAEvB,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAChF,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;IAC9F,CAAC;IAED,kBAAkB,CAAC,GAAQ;QACzB,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;IAClD,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC;IAED,EAAE,CAAC,KAAa,EAAE,OAAgD;QAChE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,OAAa;QACrC,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;IAED,WAAW,CAAC,MAAe;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,WAAW,CAAC,KAAU,EAAE,OAA4B;QAClD,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,OAAa;QAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,oBAAoB,CAAC,KAAa,EAAE,YAAoB,EAAE,KAAe;QACvE,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAED;;;;OAIG;IACH,iBAAiB;QACf,MAAM,KAAK,GAAG,IAAI,iBAAiB,CACjC,IAAI,CAAC,aAAa,CAAC,MAAM,EACzB,IAAI,CAAC,aAAa,CAAC,OAAO,EAC1B,IAAI,CAAC,aAAa,CAAC,cAAc,EACjC,IAAI,CAAC,aAAa,CAAC,YAAY,EAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,CACxB,CAAC;QACF,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,cAAc,CAAC,OAA4B;QACzC,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAI,SAAgB,EAAE,EAAW;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvC,sDAAsD;QACtD,OAAO,CAAC,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC;gBACH,KAAK,MAAM,QAAQ,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC;oBACvC,IAAI,QAAQ,EAAE,CAAC;wBACb,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;oBACnC,CAAC;gBACH,CAAC;gBACD,MAAM,KAAK,CAAC,mBAAmB,EAAE,CAAC;gBAClC,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,EAAS,CAAC,CAAC;YAC5C,CAAC;oBAAS,CAAC;gBACT,MAAM,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,EAAkB,CAAC;IACvB,CAAC;CACF;AAED,SAAS,mBAAmB,CAAC,CAAU;IACrC,IAAI,eAAe,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAA4B,CAAC,EAAE,CAAC;YACpE,GAAG,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@telorun/kernel",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "Telo Runtime - A lightweight, polyglot execution host.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"telo",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"@types/node": "^20.0.0",
|
|
60
60
|
"typescript": "^5.0.0",
|
|
61
61
|
"vitest": "^2.1.8",
|
|
62
|
-
"@telorun/sdk": "0.
|
|
62
|
+
"@telorun/sdk": "0.19.0"
|
|
63
63
|
},
|
|
64
64
|
"peerDependencies": {
|
|
65
65
|
"@telorun/sdk": "*"
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
1
2
|
import {
|
|
2
3
|
isCompiledValue,
|
|
3
4
|
isInvokeError,
|
|
5
|
+
isCancellationError,
|
|
4
6
|
resourceKey,
|
|
7
|
+
UNCANCELLABLE_CONTEXT,
|
|
5
8
|
type EvaluationContext as IEvaluationContext,
|
|
6
9
|
type EmitEvent,
|
|
7
10
|
type InstanceFactory,
|
|
11
|
+
type InvokeContext,
|
|
8
12
|
type LifecycleState,
|
|
9
13
|
type PreInitHook,
|
|
10
14
|
type ResourceDefinition,
|
|
@@ -18,6 +22,15 @@ import { RuntimeError } from "@telorun/sdk";
|
|
|
18
22
|
|
|
19
23
|
export { resourceKey };
|
|
20
24
|
|
|
25
|
+
/**
|
|
26
|
+
* Kernel-internal propagation of the current invocation tree's cancellation
|
|
27
|
+
* scope. NEVER the controller-facing contract — controllers always receive the
|
|
28
|
+
* token as the explicit `InvokeContext` argument. This store exists only so the
|
|
29
|
+
* kernel's own `invoke`/`invokeResolved` can discover which token to forward
|
|
30
|
+
* when a composing controller re-invokes without threading it by hand.
|
|
31
|
+
*/
|
|
32
|
+
const cancellationStore = new AsyncLocalStorage<InvokeContext>();
|
|
33
|
+
|
|
21
34
|
type Walker = (ctx: Record<string, unknown>) => unknown;
|
|
22
35
|
|
|
23
36
|
/** Compile a manifest subtree into a tightly-bound walker closure. The returned
|
|
@@ -467,7 +480,12 @@ export class EvaluationContext implements IEvaluationContext {
|
|
|
467
480
|
* emit callback. The single emission point for invoke-level events — callers
|
|
468
481
|
* holding an already-resolved instance should use invokeResolved() instead.
|
|
469
482
|
*/
|
|
470
|
-
async invoke<TInputs>(
|
|
483
|
+
async invoke<TInputs>(
|
|
484
|
+
kind: string,
|
|
485
|
+
name: string,
|
|
486
|
+
inputs: TInputs,
|
|
487
|
+
ctx?: InvokeContext,
|
|
488
|
+
): Promise<any> {
|
|
471
489
|
const entry = this.resourceInstances.get(name);
|
|
472
490
|
|
|
473
491
|
if (!entry) {
|
|
@@ -484,7 +502,7 @@ export class EvaluationContext implements IEvaluationContext {
|
|
|
484
502
|
);
|
|
485
503
|
}
|
|
486
504
|
|
|
487
|
-
return this.runInvoke(kind, name, entry.instance, inputs);
|
|
505
|
+
return this.runInvoke(kind, name, entry.instance, inputs, ctx);
|
|
488
506
|
}
|
|
489
507
|
|
|
490
508
|
/**
|
|
@@ -498,6 +516,7 @@ export class EvaluationContext implements IEvaluationContext {
|
|
|
498
516
|
name: string,
|
|
499
517
|
instance: ResourceInstance,
|
|
500
518
|
inputs: TInputs,
|
|
519
|
+
ctx?: InvokeContext,
|
|
501
520
|
): Promise<any> {
|
|
502
521
|
if (typeof instance.invoke !== "function") {
|
|
503
522
|
throw new RuntimeError(
|
|
@@ -505,7 +524,7 @@ export class EvaluationContext implements IEvaluationContext {
|
|
|
505
524
|
`Resource ${kind}.${name} does not have an invoke method`,
|
|
506
525
|
);
|
|
507
526
|
}
|
|
508
|
-
return this.runInvoke(kind, name, instance, inputs);
|
|
527
|
+
return this.runInvoke(kind, name, instance, inputs, ctx);
|
|
509
528
|
}
|
|
510
529
|
|
|
511
530
|
private async runInvoke<TInputs>(
|
|
@@ -513,12 +532,43 @@ export class EvaluationContext implements IEvaluationContext {
|
|
|
513
532
|
name: string,
|
|
514
533
|
instance: ResourceInstance,
|
|
515
534
|
inputs: TInputs,
|
|
535
|
+
ctx?: InvokeContext,
|
|
516
536
|
): Promise<any> {
|
|
537
|
+
// Explicit seed (trigger / embedder) wins; otherwise inherit the ambient
|
|
538
|
+
// tree token; otherwise open a fresh, never-cancellable scope. The token
|
|
539
|
+
// reaches the controller only as the explicit argument below.
|
|
540
|
+
const ambient = cancellationStore.getStore();
|
|
541
|
+
const invokeCtx = ctx ?? ambient ?? UNCANCELLABLE_CONTEXT;
|
|
542
|
+
const token = invokeCtx.cancellation;
|
|
543
|
+
|
|
544
|
+
// Pre-dispatch gate: a sub-invoke reached after the tree was cancelled is
|
|
545
|
+
// refused without ever touching the controller.
|
|
546
|
+
if (token.isCancelled) {
|
|
547
|
+
await this.emit(`${kind}.${name}.InvokeCancelled`, { reason: token.reason });
|
|
548
|
+
throw new RuntimeError(
|
|
549
|
+
"ERR_INVOKE_CANCELLED",
|
|
550
|
+
`Invoke ${kind}.${name} was cancelled${token.reason ? `: ${token.reason}` : ""}`,
|
|
551
|
+
);
|
|
552
|
+
}
|
|
553
|
+
|
|
517
554
|
try {
|
|
518
|
-
|
|
555
|
+
// Only (re)establish the ALS scope when the token differs from the ambient
|
|
556
|
+
// one — nested invokes that inherited it skip the redundant `run`.
|
|
557
|
+
const call = () =>
|
|
558
|
+
(instance.invoke as (i: any, c?: InvokeContext) => any)(inputs as any, invokeCtx);
|
|
559
|
+
const outputs = await (invokeCtx === ambient
|
|
560
|
+
? call()
|
|
561
|
+
: cancellationStore.run(invokeCtx, call));
|
|
519
562
|
await this.emit(`${kind}.${name}.Invoked`, { outputs });
|
|
520
563
|
return outputs;
|
|
521
564
|
} catch (err) {
|
|
565
|
+
// Cooperative mid-flight cancellation (`throwIfCancelled`) joins the same
|
|
566
|
+
// observable event family rather than masquerading as a rejection/failure.
|
|
567
|
+
if (isCancellationError(err)) {
|
|
568
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
569
|
+
await this.emit(`${kind}.${name}.InvokeCancelled`, { reason });
|
|
570
|
+
throw err;
|
|
571
|
+
}
|
|
522
572
|
if (isInvokeError(err)) {
|
|
523
573
|
const payload = { code: err.code, message: err.message, data: err.data };
|
|
524
574
|
await this.emit(`${kind}.${name}.InvokeRejected`, payload);
|
|
@@ -574,10 +624,25 @@ export class EvaluationContext implements IEvaluationContext {
|
|
|
574
624
|
return new Set(Object.keys(codes));
|
|
575
625
|
}
|
|
576
626
|
|
|
577
|
-
async run(name: string): Promise<void> {
|
|
627
|
+
async run(name: string, ctx?: InvokeContext): Promise<void> {
|
|
578
628
|
const entry = this.resourceInstances.get(name);
|
|
579
629
|
if (entry && typeof entry.instance.run === "function") {
|
|
580
|
-
|
|
630
|
+
const ambient = cancellationStore.getStore();
|
|
631
|
+
const invokeCtx = ctx ?? ambient ?? UNCANCELLABLE_CONTEXT;
|
|
632
|
+
const token = invokeCtx.cancellation;
|
|
633
|
+
// Refuse a target reached after the boot run was cancelled.
|
|
634
|
+
if (token.isCancelled) {
|
|
635
|
+
await this.emit(`${entry.resource.kind}.${name}.RunCancelled`, { reason: token.reason });
|
|
636
|
+
throw new RuntimeError(
|
|
637
|
+
"ERR_INVOKE_CANCELLED",
|
|
638
|
+
`Run ${entry.resource.kind}.${name} was cancelled${token.reason ? `: ${token.reason}` : ""}`,
|
|
639
|
+
);
|
|
640
|
+
}
|
|
641
|
+
// Run inside the scope so the runnable's nested invokes inherit the token,
|
|
642
|
+
// and pass it explicitly so long-lived targets can observe cancellation.
|
|
643
|
+
// Skip the redundant `run` when the token is already the ambient one.
|
|
644
|
+
const call = () => (entry.instance.run as (c?: InvokeContext) => Promise<void>)(invokeCtx);
|
|
645
|
+
return invokeCtx === ambient ? call() : cancellationStore.run(invokeCtx, call);
|
|
581
646
|
}
|
|
582
647
|
throw new RuntimeError(
|
|
583
648
|
"ERR_RESOURCE_NOT_RUNNABLE",
|
package/src/kernel.ts
CHANGED
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
import {
|
|
12
12
|
ControllerContext,
|
|
13
13
|
ControllerPolicy,
|
|
14
|
+
createCancellationSource,
|
|
14
15
|
Kernel as IKernel,
|
|
15
16
|
isCompiledValue,
|
|
16
17
|
ResourceContext,
|
|
@@ -20,7 +21,9 @@ import {
|
|
|
20
21
|
RuntimeError,
|
|
21
22
|
RuntimeEvent,
|
|
22
23
|
type BootTarget,
|
|
24
|
+
type CancellationSource,
|
|
23
25
|
type EvaluationContext as IEvaluationContext,
|
|
26
|
+
type InvokeOptions,
|
|
24
27
|
type ModuleContext as IModuleContext,
|
|
25
28
|
type LoadOptions,
|
|
26
29
|
type ParsedArgs,
|
|
@@ -66,6 +69,32 @@ function throwInvalidState(operation: string, reason: string): never {
|
|
|
66
69
|
);
|
|
67
70
|
}
|
|
68
71
|
|
|
72
|
+
/** Translate embedder `InvokeOptions` (external signal / absolute deadline)
|
|
73
|
+
* into a seeded cancellation source, or `undefined` when nothing was requested
|
|
74
|
+
* so the dispatch path stays on its allocation-free sentinel. The caller
|
|
75
|
+
* disposes the returned source once the invoke settles. */
|
|
76
|
+
function seedInvokeSource(opts?: InvokeOptions): CancellationSource | undefined {
|
|
77
|
+
if (!opts?.signal && opts?.deadlineAt === undefined) return undefined;
|
|
78
|
+
const source = createCancellationSource();
|
|
79
|
+
if (opts.deadlineAt !== undefined) source.cancelAt(opts.deadlineAt);
|
|
80
|
+
const signal = opts.signal;
|
|
81
|
+
if (signal && !signal.aborted) {
|
|
82
|
+
const onAbort = () => source.cancel(String(signal.reason ?? "aborted"));
|
|
83
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
84
|
+
// Detach from the (possibly long-lived) external signal on dispose so the
|
|
85
|
+
// listener — which captures the source — doesn't pin it until the signal
|
|
86
|
+
// eventually aborts (or forever if it never does).
|
|
87
|
+
const baseDispose = source.dispose.bind(source);
|
|
88
|
+
source.dispose = () => {
|
|
89
|
+
signal.removeEventListener("abort", onAbort);
|
|
90
|
+
baseDispose();
|
|
91
|
+
};
|
|
92
|
+
} else if (signal?.aborted) {
|
|
93
|
+
source.cancel(String(signal.reason ?? "aborted"));
|
|
94
|
+
}
|
|
95
|
+
return source;
|
|
96
|
+
}
|
|
97
|
+
|
|
69
98
|
function parseRef(ref: string): { kind: string; name: string } {
|
|
70
99
|
const lastDot = ref.lastIndexOf(".");
|
|
71
100
|
if (lastDot <= 0 || lastDot === ref.length - 1) {
|
|
@@ -133,6 +162,10 @@ export class Kernel implements IKernel {
|
|
|
133
162
|
private _isBooted = false;
|
|
134
163
|
private _targetsRan = false;
|
|
135
164
|
private _isTornDown = false;
|
|
165
|
+
// Cancellation scope for the boot `targets` run. Created lazily so an early
|
|
166
|
+
// SIGINT (before runTargets) still has a source to cancel, which the run then
|
|
167
|
+
// observes via the pre-dispatch gate.
|
|
168
|
+
private _bootCancellation?: CancellationSource;
|
|
136
169
|
|
|
137
170
|
readonly stdin: NodeJS.ReadableStream;
|
|
138
171
|
readonly stdout: NodeJS.WritableStream;
|
|
@@ -545,10 +578,27 @@ export class Kernel implements IKernel {
|
|
|
545
578
|
this._targetsRan = true;
|
|
546
579
|
|
|
547
580
|
await this.eventBus.emit("Kernel.Starting", {});
|
|
548
|
-
await this.rootContext.runTargets();
|
|
581
|
+
await this.rootContext.runTargets(this.bootCancellation.context);
|
|
549
582
|
await this.eventBus.emit("Kernel.Started", {});
|
|
550
583
|
}
|
|
551
584
|
|
|
585
|
+
/** The boot run's cancellation source, created on first access so a signal
|
|
586
|
+
* handler can cancel even before `runTargets()` begins. */
|
|
587
|
+
private get bootCancellation(): CancellationSource {
|
|
588
|
+
if (!this._bootCancellation) this._bootCancellation = createCancellationSource();
|
|
589
|
+
return this._bootCancellation;
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
/**
|
|
593
|
+
* Cooperatively cancel the boot `targets` run. Not-yet-started targets are
|
|
594
|
+
* refused at the dispatch gate; long-lived runnables and in-flight invoke
|
|
595
|
+
* trees observe the token (`ctx.cancellation`) and stop early. Used by the
|
|
596
|
+
* CLI's SIGINT/SIGTERM handler. Safe to call before or after `runTargets()`.
|
|
597
|
+
*/
|
|
598
|
+
cancel(reason = "cancelled"): void {
|
|
599
|
+
this.bootCancellation.cancel(reason);
|
|
600
|
+
}
|
|
601
|
+
|
|
552
602
|
/**
|
|
553
603
|
* Tear down every initialized resource. Emits Kernel.Stopping before,
|
|
554
604
|
* Kernel.Stopped after. Idempotent — second call is a no-op (does not
|
|
@@ -597,6 +647,7 @@ export class Kernel implements IKernel {
|
|
|
597
647
|
async invoke<TInputs = any, TOutput = any>(
|
|
598
648
|
ref: string | { kind: string; name: string },
|
|
599
649
|
inputs: TInputs,
|
|
650
|
+
opts?: InvokeOptions,
|
|
600
651
|
): Promise<TOutput> {
|
|
601
652
|
if (this._isTornDown) {
|
|
602
653
|
throwInvalidState("invoke", "kernel has been torn down");
|
|
@@ -605,7 +656,17 @@ export class Kernel implements IKernel {
|
|
|
605
656
|
throwInvalidState("invoke", "boot() has not completed");
|
|
606
657
|
}
|
|
607
658
|
const parsed = typeof ref === "string" ? parseRef(ref) : ref;
|
|
608
|
-
|
|
659
|
+
const source = seedInvokeSource(opts);
|
|
660
|
+
try {
|
|
661
|
+
return (await this.rootContext.invoke(
|
|
662
|
+
parsed.kind,
|
|
663
|
+
parsed.name,
|
|
664
|
+
inputs,
|
|
665
|
+
source?.context,
|
|
666
|
+
)) as TOutput;
|
|
667
|
+
} finally {
|
|
668
|
+
source?.dispose();
|
|
669
|
+
}
|
|
609
670
|
}
|
|
610
671
|
|
|
611
672
|
async emitRuntimeEvent(event: string, payload?: any): Promise<void> {
|
package/src/module-context.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { executeInvokeStep } from "@telorun/sdk";
|
|
1
|
+
import { executeInvokeStep, RuntimeError } from "@telorun/sdk";
|
|
2
2
|
import type {
|
|
3
3
|
BootTarget,
|
|
4
4
|
ControllerPolicy,
|
|
5
5
|
Invocable,
|
|
6
|
+
InvokeContext,
|
|
6
7
|
InvokeStep,
|
|
7
8
|
InvokeStepContext,
|
|
8
9
|
ModuleContext as IModuleContext,
|
|
@@ -279,8 +280,13 @@ export class ModuleContext extends EvaluationContext implements IModuleContext {
|
|
|
279
280
|
this._secretValues = collectSecretValues(this._secrets);
|
|
280
281
|
}
|
|
281
282
|
|
|
282
|
-
override async invoke<TInputs>(
|
|
283
|
-
|
|
283
|
+
override async invoke<TInputs>(
|
|
284
|
+
kind: string,
|
|
285
|
+
name: string,
|
|
286
|
+
inputs: TInputs,
|
|
287
|
+
ctx?: InvokeContext,
|
|
288
|
+
): Promise<any> {
|
|
289
|
+
const result = await super.invoke(kind, name, inputs, ctx);
|
|
284
290
|
const entry = this.resourceInstances.get(name);
|
|
285
291
|
if (entry && typeof (entry.instance as any).snapshot === "function") {
|
|
286
292
|
const snap = await Promise.resolve((entry.instance as any).snapshot());
|
|
@@ -289,33 +295,34 @@ export class ModuleContext extends EvaluationContext implements IModuleContext {
|
|
|
289
295
|
return result;
|
|
290
296
|
}
|
|
291
297
|
|
|
292
|
-
async run(name: string) {
|
|
298
|
+
override async run(name: string, ctx?: InvokeContext) {
|
|
293
299
|
const resource = this.resourceInstances.get(name);
|
|
294
300
|
if (!resource) {
|
|
295
301
|
throw new Error(
|
|
296
302
|
`Target resource ${name} not found in module context. Available resources: ${[...this.resourceInstances.keys()].join(", ")}`,
|
|
297
303
|
);
|
|
298
304
|
}
|
|
299
|
-
if (typeof resource.instance.run
|
|
300
|
-
await resource.instance.run();
|
|
301
|
-
} else {
|
|
305
|
+
if (typeof resource.instance.run !== "function") {
|
|
302
306
|
throw new Error(`Target resource ${name} does not have a run() method.`);
|
|
303
307
|
}
|
|
308
|
+
// Delegate execution to the base run(), which applies the cancellation gate
|
|
309
|
+
// and scope; the checks above keep the module-scoped error messages.
|
|
310
|
+
await super.run(name, ctx);
|
|
304
311
|
}
|
|
305
312
|
|
|
306
|
-
async runTargets() {
|
|
313
|
+
async runTargets(ctx?: InvokeContext) {
|
|
307
314
|
const steps: Record<string, unknown> = {};
|
|
308
315
|
const stepCtx: InvokeStepContext = {
|
|
309
316
|
expandValue: (value, context) => this.expandWith(value, context),
|
|
310
|
-
invoke: (kind, name, inputs) => this.invoke(kind, name, inputs),
|
|
317
|
+
invoke: (kind, name, inputs) => this.invoke(kind, name, inputs, ctx),
|
|
311
318
|
invokeResolved: (kind, name, instance, inputs) =>
|
|
312
|
-
this.invokeResolved(kind, name, instance, inputs),
|
|
319
|
+
this.invokeResolved(kind, name, instance, inputs, ctx),
|
|
313
320
|
resolveImportedInstance: (alias, name) => this.resolveImportedInstance(alias, name),
|
|
314
321
|
};
|
|
315
322
|
for (let i = 0; i < this.targets.length; i++) {
|
|
316
323
|
const target = this.targets[i]!;
|
|
317
324
|
if (typeof target === "string") {
|
|
318
|
-
await this.run(target);
|
|
325
|
+
await this.run(target, ctx);
|
|
319
326
|
continue;
|
|
320
327
|
}
|
|
321
328
|
if ("invoke" in target && target.invoke !== undefined) {
|
|
@@ -343,15 +350,24 @@ export class ModuleContext extends EvaluationContext implements IModuleContext {
|
|
|
343
350
|
`Boot target '${r.alias}.${r.name}' is not a runnable exported instance`,
|
|
344
351
|
);
|
|
345
352
|
}
|
|
346
|
-
|
|
353
|
+
// Mirror the local-run gate: refuse a cross-module target reached
|
|
354
|
+
// after the boot run was cancelled.
|
|
355
|
+
const token = ctx?.cancellation;
|
|
356
|
+
if (token?.isCancelled) {
|
|
357
|
+
throw new RuntimeError(
|
|
358
|
+
"ERR_INVOKE_CANCELLED",
|
|
359
|
+
`Run ${r.alias}.${r.name} was cancelled${token.reason ? `: ${token.reason}` : ""}`,
|
|
360
|
+
);
|
|
361
|
+
}
|
|
362
|
+
await inst.run(ctx);
|
|
347
363
|
} else {
|
|
348
|
-
await this.run(typeof ref === "string" ? ref : r!.name);
|
|
364
|
+
await this.run(typeof ref === "string" ? ref : r!.name, ctx);
|
|
349
365
|
}
|
|
350
366
|
}
|
|
351
367
|
continue;
|
|
352
368
|
}
|
|
353
369
|
if ("name" in target && typeof target.name === "string") {
|
|
354
|
-
await this.run(target.name);
|
|
370
|
+
await this.run(target.name, ctx);
|
|
355
371
|
continue;
|
|
356
372
|
}
|
|
357
373
|
throw new Error(`Unrecognized target shape at index ${i}: ${JSON.stringify(target)}`);
|
package/src/resource-context.ts
CHANGED
|
@@ -5,9 +5,12 @@ import {
|
|
|
5
5
|
ResourceManifest,
|
|
6
6
|
RuntimeError,
|
|
7
7
|
RuntimeResource,
|
|
8
|
+
createCancellationSource,
|
|
8
9
|
isCompiledValue,
|
|
10
|
+
type CancellationSource,
|
|
9
11
|
type ControllerPolicy,
|
|
10
12
|
type EvaluationContext as IEvaluationContext,
|
|
13
|
+
type InvokeContext,
|
|
11
14
|
type LoadOptions,
|
|
12
15
|
type ModuleContext,
|
|
13
16
|
type ParsedArgs,
|
|
@@ -148,6 +151,10 @@ export class ResourceContextImpl implements ResourceContext {
|
|
|
148
151
|
}
|
|
149
152
|
}
|
|
150
153
|
|
|
154
|
+
createCancellationSource(): CancellationSource {
|
|
155
|
+
return createCancellationSource();
|
|
156
|
+
}
|
|
157
|
+
|
|
151
158
|
invoke<TInputs>(kind: string, name: string, inputs: TInputs): Promise<any> {
|
|
152
159
|
return this.moduleContext.invoke(kind, name, inputs);
|
|
153
160
|
}
|
|
@@ -157,8 +164,9 @@ export class ResourceContextImpl implements ResourceContext {
|
|
|
157
164
|
name: string,
|
|
158
165
|
instance: ResourceInstance,
|
|
159
166
|
inputs: TInputs,
|
|
167
|
+
ctx?: InvokeContext,
|
|
160
168
|
): Promise<any> {
|
|
161
|
-
return this.moduleContext.invokeResolved(kind, name, instance, inputs);
|
|
169
|
+
return this.moduleContext.invokeResolved(kind, name, instance, inputs, ctx);
|
|
162
170
|
}
|
|
163
171
|
|
|
164
172
|
resolveImportedInstance(alias: string, name: string): ResourceInstance | undefined {
|