@telorun/sdk 0.2.5 → 0.2.7

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.
Files changed (43) hide show
  1. package/dist/capabilities/invokable.d.ts +2 -2
  2. package/dist/capabilities/invokable.d.ts.map +1 -1
  3. package/dist/capability-definition.d.ts +8 -0
  4. package/dist/capability-definition.d.ts.map +1 -0
  5. package/dist/capability-definition.js +21 -0
  6. package/dist/cel-environment.d.ts +3 -0
  7. package/dist/cel-environment.d.ts.map +1 -0
  8. package/dist/cel-environment.js +13 -0
  9. package/dist/compiled-value.d.ts +9 -0
  10. package/dist/compiled-value.d.ts.map +1 -0
  11. package/dist/compiled-value.js +3 -0
  12. package/dist/evaluation-context.d.ts +85 -26
  13. package/dist/evaluation-context.d.ts.map +1 -1
  14. package/dist/evaluation-context.js +227 -89
  15. package/dist/index.d.ts +2 -0
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +2 -0
  18. package/dist/module-context.d.ts +6 -4
  19. package/dist/module-context.d.ts.map +1 -1
  20. package/dist/module-context.js +31 -4
  21. package/dist/ref.d.ts +47 -0
  22. package/dist/ref.d.ts.map +1 -0
  23. package/dist/ref.js +11 -0
  24. package/dist/resource-context.d.ts +19 -8
  25. package/dist/resource-context.d.ts.map +1 -1
  26. package/dist/resource-instance.d.ts +4 -9
  27. package/dist/resource-instance.d.ts.map +1 -1
  28. package/dist/runtime-error.d.ts +8 -1
  29. package/dist/runtime-error.d.ts.map +1 -1
  30. package/dist/types.d.ts +24 -10
  31. package/dist/types.d.ts.map +1 -1
  32. package/dist/types.js +3 -1
  33. package/package.json +2 -5
  34. package/src/capabilities/invokable.ts +2 -2
  35. package/src/compiled-value.ts +11 -0
  36. package/src/evaluation-context.ts +283 -101
  37. package/src/index.ts +2 -0
  38. package/src/module-context.ts +33 -5
  39. package/src/ref.ts +61 -0
  40. package/src/resource-context.ts +19 -8
  41. package/src/resource-instance.ts +11 -14
  42. package/src/runtime-error.ts +15 -1
  43. package/src/types.ts +24 -14
@@ -1,4 +1,4 @@
1
- export interface Invokable {
2
- invoke(inputs: Record<string, any>): Promise<any>;
1
+ export interface Invocable<TInput = Record<string, any>, TOutput = any> {
2
+ invoke(inputs: TInput): Promise<TOutput>;
3
3
  }
4
4
  //# sourceMappingURL=invokable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"invokable.d.ts","sourceRoot":"","sources":["../../src/capabilities/invokable.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACnD"}
1
+ {"version":3,"file":"invokable.d.ts","sourceRoot":"","sources":["../../src/capabilities/invokable.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,GAAG;IACpE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1C"}
@@ -0,0 +1,8 @@
1
+ import type { CapabilityDefinition } from "./types.js";
2
+ /**
3
+ * Factory that wires the declarative `expand` config on a CapabilityDefinition
4
+ * into the `onManifest` and `onInvoke` lifecycle hooks. The kernel only ever
5
+ * calls these hooks — it has no knowledge of the `expand` config.
6
+ */
7
+ export declare function createCapability(def: CapabilityDefinition): CapabilityDefinition;
8
+ //# sourceMappingURL=capability-definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-definition.d.ts","sourceRoot":"","sources":["../src/capability-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGvD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,GAAG,oBAAoB,CAwBhF"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Factory that wires the declarative `expand` config on a CapabilityDefinition
3
+ * into the `onManifest` and `onInvoke` lifecycle hooks. The kernel only ever
4
+ * calls these hooks — it has no knowledge of the `expand` config.
5
+ */
6
+ export function createCapability(def) {
7
+ const compile = def.expand?.compile ?? [];
8
+ const runtime = def.expand?.runtime ?? [];
9
+ return {
10
+ ...def,
11
+ onManifest: compile.length
12
+ ? (manifest, ctx) => ctx.expandPaths(manifest, compile, runtime)
13
+ : def.onManifest,
14
+ onInvoke: runtime.length
15
+ ? async (instance, inputs, ctx) => {
16
+ const expanded = ctx.moduleContext.expandPaths(inputs, runtime);
17
+ return instance.invoke(expanded);
18
+ }
19
+ : def.onInvoke,
20
+ };
21
+ }
@@ -0,0 +1,3 @@
1
+ import { Environment } from "@marcbachmann/cel-js";
2
+ export declare const celEnvironment: Environment;
3
+ //# sourceMappingURL=cel-environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cel-environment.d.ts","sourceRoot":"","sources":["../src/cel-environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,eAAO,MAAM,cAAc,aAWvB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { Environment } from "@marcbachmann/cel-js";
2
+ export const celEnvironment = new Environment({ unlistedVariablesAreDyn: true })
3
+ .registerFunction("join(list, string): string", (list, sep) => list.map(String).join(sep))
4
+ .registerFunction("keys(map): list", (map) => {
5
+ if (map instanceof Map)
6
+ return [...map.keys()];
7
+ return Object.keys(map);
8
+ })
9
+ .registerFunction("values(map): list", (map) => {
10
+ if (map instanceof Map)
11
+ return [...map.values()];
12
+ return Object.values(map);
13
+ });
@@ -0,0 +1,9 @@
1
+ /** A precompiled template or expression produced by the analyzer.
2
+ * Replaces raw "${{ }}" strings in manifests at load time.
3
+ * The SDK has no knowledge of CEL — it only calls .call(). */
4
+ export interface CompiledValue {
5
+ readonly __compiled: true;
6
+ call(ctx: Record<string, unknown>): unknown;
7
+ }
8
+ export declare function isCompiledValue(v: unknown): v is CompiledValue;
9
+ //# sourceMappingURL=compiled-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compiled-value.d.ts","sourceRoot":"","sources":["../src/compiled-value.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAC/D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;IAC1B,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;CAC7C;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,aAAa,CAE9D"}
@@ -0,0 +1,3 @@
1
+ export function isCompiledValue(v) {
2
+ return v !== null && typeof v === "object" && v.__compiled === true;
3
+ }
@@ -1,19 +1,40 @@
1
- import { ModuleContext } from "./module-context.js";
1
+ import type { ModuleContext } from "./module-context.js";
2
+ import type { ScopeHandle } from "./ref.js";
2
3
  import { ResourceInstance } from "./resource-instance.js";
3
4
  import { ResourceManifest } from "./resource-manifest.js";
4
5
  export type EmitEvent = (event: string, payload?: any) => void | Promise<void>;
5
6
  /** Four-stage resource lifecycle defined in resource-lifecycle.md */
6
7
  export type LifecycleState = "Pending" | "Validated" | "Initialized" | "Draining" | "Teardown";
8
+ /**
9
+ * Result of the create phase: the instance and its bound ResourceContext.
10
+ * The ctx is typed as any to avoid a circular import with resource-context.ts.
11
+ */
12
+ export type CreatedResource = {
13
+ instance: ResourceInstance;
14
+ ctx: any;
15
+ };
7
16
  /**
8
17
  * Creates a ResourceInstance for the given manifest, or returns null if not yet
9
18
  * ready (e.g. a dependency is still initializing). Injected at construction so
10
19
  * every EvaluationContext node owns its full resource lifecycle.
20
+ * Returns a CreatedResource (instance + ctx) so initializeResources can run
21
+ * init() separately in a second phase.
22
+ */
23
+ export type InstanceFactory = (moduleContext: ModuleContext, resource: ResourceManifest) => Promise<CreatedResource | null>;
24
+ /**
25
+ * Hook called after controller.create() and before controller.init() for each resource.
26
+ * Implementations (e.g. the kernel) use this to inject live instances into reference
27
+ * fields of the resource config before the controller sees them in init().
28
+ *
29
+ * @param resource The resource manifest whose config fields may be mutated in-place.
30
+ * @param getInstance Looks up an already-initialized instance by resource name.
31
+ * Returns undefined when the named resource is not yet initialized.
11
32
  */
12
- export type InstanceFactory = (moduleContext: ModuleContext, resource: ResourceManifest) => Promise<ResourceInstance | null>;
33
+ export type PreInitHook = (resource: ResourceManifest, getInstance: (name: string) => ResourceInstance | undefined) => void;
13
34
  /** Canonical key for a resource instance: "<module>.<kind>.<name>" */
14
35
  export declare function resourceKey(r: ResourceManifest): string;
15
36
  /**
16
- * Base class for all evaluation contexts. Owns CEL evaluation, template
37
+ * Base class for all evaluation contexts. Owns template
17
38
  * expansion, secrets redaction, and the generic resource lifecycle tree.
18
39
  *
19
40
  * Every EvaluationContext node can:
@@ -40,15 +61,36 @@ export declare class EvaluationContext {
40
61
  resource: ResourceManifest;
41
62
  instance: ResourceInstance;
42
63
  }>;
64
+ /** Resources that have been created but not yet initialized (between phases). */
65
+ protected readonly createdInstances: Map<string, {
66
+ resource: ResourceManifest;
67
+ instance: ResourceInstance;
68
+ ctx: any;
69
+ }>;
43
70
  /** Resources queued for initialization on this context node. */
44
71
  private pendingResources;
72
+ /**
73
+ * Optional hook called between create() and init() for each resource.
74
+ * Set by the kernel to inject live instances into reference fields.
75
+ */
76
+ preInitHook?: PreInitHook;
45
77
  constructor(source: string, context: Record<string, unknown>, createInstance: InstanceFactory | undefined, secretValues: Set<string>, emit: EmitEvent);
46
78
  get createInstance(): InstanceFactory;
79
+ /** Called after init() when a resource snapshot is available. Overridden by ModuleContext. */
80
+ protected onResourceSnapshotted(_name: string, _snap: Record<string, unknown>): void;
47
81
  get context(): Record<string, unknown>;
48
82
  get secretValues(): Set<string>;
83
+ /**
84
+ * Reorder pending resources to match the given name sequence (topo order from Phase 4).
85
+ * Resources not present in `names` are left at the end in their original order.
86
+ * Call before initializeResources() so the create/init sub-phases run in dependency order,
87
+ * guaranteeing that Phase 5 injection always finds initialized dependencies.
88
+ */
89
+ setInitOrder(names: string[]): void;
49
90
  /**
50
91
  * Queue a resource manifest for initialization on this context.
51
92
  */
93
+ hasManifest(name: string): boolean;
52
94
  registerManifest(resource: ResourceManifest): void;
53
95
  /**
54
96
  * Attach a child context to this node. The child's parent is set to this
@@ -56,48 +98,65 @@ export declare class EvaluationContext {
56
98
  */
57
99
  spawnChild<T extends EvaluationContext>(child: T): T;
58
100
  /**
59
- * Multi-pass initialization loop. Processes pendingResources by calling the
60
- * supplied instantiator for each resource, retrying failures across up to 10
61
- * passes (handles dependency ordering without explicit topological sort).
101
+ * Interleaved create/init loop.
102
+ *
103
+ * Each pass has two sub-phases run back-to-back:
104
+ * 1. Create sub-phase: call controller.create() for each pending resource that
105
+ * hasn't been created yet. Successful results go into createdInstances.
106
+ * 2. Init sub-phase: call instance.init(ctx) for each created-but-not-inited
107
+ * resource. Successful results go into resourceInstances.
108
+ *
109
+ * Interleaving is necessary because some resources' create() depends on effects
110
+ * produced by other resources' init() (e.g. Kernel.Import.init() runs
111
+ * child.initializeResources() which registers controllers needed by sibling
112
+ * resources' create()). Running both sub-phases each pass lets those effects
113
+ * propagate before the next create attempt.
62
114
  *
63
- * ERR_VISIBILITY_DENIED errors are fatal and re-thrown immediately.
115
+ * Each resource is created at most once and inited at most once.
116
+ * ERR_VISIBILITY_DENIED is fatal and re-thrown immediately.
64
117
  * All other errors are tracked and retried until no progress is made.
65
118
  */
66
119
  initializeResources(): Promise<void>;
67
120
  withManifests<T>(manifests: any[], fn: () => T): T;
121
+ /**
122
+ * Returns a ScopeHandle that initializes `manifests` in a fresh child context each time
123
+ * `run()` is called, executes the callback with a ScopeContext, and tears down when done.
124
+ *
125
+ * The child inherits the parent's preInitHook (if any), extended so that `getInstance`
126
+ * also checks the parent's already-initialized singleton instances. This lets scoped
127
+ * resources hold x-telo-ref slots pointing to outer resources — those deps are already
128
+ * live when the scope opens.
129
+ */
130
+ createScopeHandle(manifests: ResourceManifest[]): ScopeHandle;
68
131
  /**
69
132
  * Cascade teardown depth-first through the tree:
70
133
  * 1. Tear down child contexts in reverse registration order.
71
- * 2. Tear down own resource instances in reverse registration order.
72
- *
73
- * Note: Kernel-level events (e.g. Teardown events) are NOT emitted here —
74
- * they remain the Kernel's responsibility.
134
+ * 2. Tear down own resource instances in reverse registration order,
135
+ * emitting a Teardown event for each via the injected emit callback.
75
136
  */
76
137
  teardownResources(): Promise<void>;
138
+ transientChild(context: Record<string, any>): EvaluationContext;
77
139
  /**
78
140
  * Invoke a resource by kind and name within this context's resourceInstances.
79
141
  * Emits a scoped Invoked event via the injected emit callback after invocation.
80
142
  */
81
- invoke(kind: string, name: string, ...args: any[]): Promise<any>;
143
+ invoke<TInputs>(kind: string, name: string, inputs: TInputs): Promise<any>;
82
144
  run(name: string): Promise<void>;
83
145
  /**
84
- * Evaluate a single CEL expression string against the context.
85
- * Secret values are redacted from any thrown error message.
86
- */
87
- evaluate(expression: string): unknown;
88
- /**
89
- * Expand a value that may contain ${{ }} templates.
90
- * Works recursively over strings, arrays, and objects.
91
- * Templates whose identifiers are not present in the context are left
92
- * unchanged (deferred) — they will be resolved at execution time when a
93
- * richer ExecutionContext is available. All other CEL errors are propagated.
146
+ * Expand a value that may contain precompiled ${{ }} templates.
147
+ * Works recursively over CompiledValues, arrays, and objects.
94
148
  */
95
149
  expand(value: unknown): unknown;
96
150
  /**
97
- * Merge another context on top of this one.
98
- * Returns a new base EvaluationContext 'other' wins on key conflict.
151
+ * Expand a value using this context merged with additional properties.
152
+ * Equivalent to merge(extraContext).expand(value) without allocating a context object.
99
153
  */
100
- merge(other: EvaluationContext | Record<string, unknown>): EvaluationContext;
101
- private expandString;
154
+ expandWith(value: unknown, extraContext: Record<string, unknown>): unknown;
155
+ /**
156
+ * Expand specific dot-paths within an object. '**' expands the entire object.
157
+ * Paths listed in excludePaths are left untouched (runtime takes precedence).
158
+ * Always throws if an expression cannot be resolved.
159
+ */
160
+ expandPaths(value: Record<string, unknown>, paths: string[], excludePaths?: string[]): Record<string, unknown>;
102
161
  }
103
162
  //# sourceMappingURL=evaluation-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"evaluation-context.d.ts","sourceRoot":"","sources":["../src/evaluation-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAK/E,qEAAqE;AACrE,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,UAAU,GAAG,UAAU,CAAC;AAE/F;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,CAC5B,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,gBAAgB,KACvB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;AAEtC,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAEvD;AAYD;;;;;;;;;;GAUG;AACH,qBAAa,iBAAiB;IAwB1B,QAAQ,CAAC,MAAM,EAAE,MAAM;IAvBzB,QAAQ,CAAC,EAAE,SAA0C;IACrD,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAEzB,sCAAsC;IACtC,MAAM,EAAE,iBAAiB,GAAG,SAAS,CAAa;IAClD,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAM;IAE5C,oDAAoD;IACpD,KAAK,EAAE,cAAc,CAAa;IAElC,6EAA6E;IAC7E,QAAQ,CAAC,iBAAiB;kBAEZ,gBAAgB;kBAAY,gBAAgB;OACtD;IAEJ,gEAAgE;IAChE,OAAO,CAAC,gBAAgB,CAA0B;gBAGvC,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,cAAc,EAAE,eAAe,YAAmB,EAClD,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,EACzB,IAAI,EAAE,SAAS;IAQjB,IAAI,cAAc,IAAI,eAAe,CAEpC;IAED,IAAI,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAErC;IAED,IAAI,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC,CAE9B;IAED;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAOlD;;;OAGG;IACH,UAAU,CAAC,CAAC,SAAS,iBAAiB,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;IAMpD;;;;;;;OAOG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoD1C,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAuBlD;;;;;;;OAOG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAaxC;;;OAGG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAqBhE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtC;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAUrC;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAiB/B;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB;IAkB5E,OAAO,CAAC,YAAY;CAkBrB"}
1
+ {"version":3,"file":"evaluation-context.d.ts","sourceRoot":"","sources":["../src/evaluation-context.ts"],"names":[],"mappings":"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"}