@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
package/dist/ref.js ADDED
@@ -0,0 +1,11 @@
1
+ /** Returns a schema node that emits `x-telo-ref` for buildReferenceFieldMap and carries
2
+ * KindRef<T> as its TypeScript type. For TypeBox schemas use Type.Unsafe<KindRef<T>>(Ref(...)).
3
+ *
4
+ * @param ref Canonical ref string: "namespace/module-name#TypeName" or "kernel#TypeName" */
5
+ export const Ref = (ref) => ({ "x-telo-ref": ref });
6
+ /** Returns a schema node that emits `x-telo-scope` for buildReferenceFieldMap and carries
7
+ * ScopeRef as its TypeScript type. For TypeBox schemas use Type.Unsafe<ScopeRef>(Scope(...)).
8
+ *
9
+ * @param visibilityPath JSON Pointer(s) (RFC 6901) declaring where x-telo-ref slots within
10
+ * this field can resolve to scoped resources. */
11
+ export const Scope = (visibilityPath) => ({ "x-telo-scope": visibilityPath });
@@ -6,19 +6,29 @@ export interface DataValidator {
6
6
  validate(data: any): void;
7
7
  isValid(data: any): boolean;
8
8
  }
9
+ export interface TypeRule {
10
+ condition: string;
11
+ code: string;
12
+ message?: string;
13
+ }
9
14
  export declare class NoopValidator implements DataValidator {
10
15
  isValid(): boolean;
11
16
  validate(): void;
12
17
  }
18
+ export type ParsedArgs = Partial<Record<string, string | boolean | string[]>> & {
19
+ _: string[];
20
+ };
13
21
  export interface ResourceContext extends ControllerContext {
22
+ readonly args: ParsedArgs;
14
23
  acquireHold(reason?: string): () => void;
15
24
  emitEvent(event: string, payload?: any): Promise<void>;
16
- invoke(kind: string, name: string, ...args: any[]): Promise<any>;
25
+ invoke<TInputs>(kind: string, name: string, inputs: TInputs, options?: any): Promise<any>;
17
26
  run(kind: string, name: string): Promise<void>;
18
27
  getResources(kind: string): RuntimeResource[];
19
28
  getResourcesByName(kind: string, name: string): RuntimeResource | null;
20
29
  registerManifest(resource: any): void;
21
30
  spawnChildContext(): EvaluationContext;
31
+ transientChild(context: Record<string, any>): EvaluationContext;
22
32
  withManifests<T>(manifests: any[], fn: () => T): T;
23
33
  resolveChildren(resource: any, resourceName?: string): {
24
34
  kind: string;
@@ -28,16 +38,17 @@ export interface ResourceContext extends ControllerContext {
28
38
  createSchemaValidator(schema: any): DataValidator;
29
39
  registerSchema(name: string, schema: object): void;
30
40
  lookupSchema(name: string): object | undefined;
41
+ registerTypeRules(name: string, rules: TypeRule[]): void;
42
+ lookupTypeRules(name: string): TypeRule[] | undefined;
43
+ /** Resolve a type reference (name string or inline schema) to a DataValidator. */
44
+ createTypeValidator(typeRef: string | Record<string, any> | undefined): DataValidator;
31
45
  registerController(moduleName: string, kindName: string, controllerInstance: any): Promise<void>;
32
46
  registerDefinition(definition: any): void;
33
47
  registerModuleImport(alias: string, targetModule: string, kinds: string[]): void;
34
- registerCapability(name: string, schema?: Record<string, any>): void;
35
- isCapabilityRegistered(name: string): boolean;
36
- getCapabilitySchema(name: string): Record<string, any> | null | undefined;
37
48
  teardownResource(kind: string, name: string): Promise<void>;
38
- moduleContext: ModuleContext;
39
- stdin: NodeJS.ReadableStream;
40
- stdout: NodeJS.WritableStream;
41
- stderr: NodeJS.WritableStream;
49
+ readonly moduleContext: ModuleContext;
50
+ readonly stdin: NodeJS.ReadableStream;
51
+ readonly stdout: NodeJS.WritableStream;
52
+ readonly stderr: NodeJS.WritableStream;
42
53
  }
43
54
  //# sourceMappingURL=resource-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-context.d.ts","sourceRoot":"","sources":["../src/resource-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-context.d.ts","sourceRoot":"","sources":["../src/resource-context.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,9 @@
1
- import { ResourceContext } from "./resource-context.js";
2
- export type ResourceInstance = {
1
+ import type { Invocable } from "./capabilities/invokable.js";
2
+ import type { Runnable } from "./capabilities/runnable.js";
3
+ import type { ResourceContext } from "./resource-context.js";
4
+ export type ResourceInstance<TInput = Record<string, any>, TOutput = any> = Partial<Invocable<TInput, TOutput>> & Partial<Runnable> & {
3
5
  init?(ctx?: ResourceContext): Promise<void>;
4
- run?(): void | Promise<void>;
5
- invoke?(input: any): any | Promise<any>;
6
6
  teardown?(): void | Promise<void>;
7
- /**
8
- * Optional method for debugging/snapshots
9
- * Called when taking runtime state snapshots
10
- * Should return serializable state data specific to this resource
11
- */
12
7
  snapshot?(): Record<string, any> | Promise<Record<string, any>>;
13
8
  };
14
9
  //# sourceMappingURL=resource-instance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-instance.d.ts","sourceRoot":"","sources":["../src/resource-instance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,GAAG,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,QAAQ,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;CACjE,CAAC"}
1
+ {"version":3,"file":"resource-instance.d.ts","sourceRoot":"","sources":["../src/resource-instance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,MAAM,gBAAgB,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,GAAG,IAAI,OAAO,CACjF,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAC3B,GACC,OAAO,CAAC,QAAQ,CAAC,GAAG;IAClB,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAQ,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,QAAQ,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;CACjE,CAAC"}
@@ -1,2 +1,9 @@
1
- export type RuntimeErrorCode = "ERR_RESOURCE_NOT_FOUND" | "ERR_RESOURCE_NOT_RUNNABLE" | "ERR_CONTROLLER_NOT_FOUND" | "ERR_CONTROLLER_INVALID" | "ERR_RESOURCE_INITIALIZATION_FAILED" | "ERR_RESOURCE_NOT_INVOKABLE" | "ERR_RESOURCE_SCHEMA_VALIDATION_FAILED" | "ERR_DUPLICATE_RESOURCE" | "ERR_EXECUTION_FAILED" | "ERR_INVALID_VALUE" | "ERR_VISIBILITY_DENIED";
1
+ export interface RuntimeDiagnostic {
2
+ severity?: "error" | "warning";
3
+ message: string;
4
+ resource?: string;
5
+ code?: string;
6
+ }
7
+ /** Well-known kernel error codes. User-defined codes (e.g. from Type.JsonSchema rules) are also valid. */
8
+ export type RuntimeErrorCode = "ERR_RESOURCE_NOT_FOUND" | "ERR_RESOURCE_NOT_RUNNABLE" | "ERR_CONTROLLER_NOT_FOUND" | "ERR_CONTROLLER_INVALID" | "ERR_RESOURCE_INITIALIZATION_FAILED" | "ERR_RESOURCE_NOT_INVOKABLE" | "ERR_RESOURCE_SCHEMA_VALIDATION_FAILED" | "ERR_DUPLICATE_RESOURCE" | "ERR_EXECUTION_FAILED" | "ERR_INVALID_VALUE" | "ERR_VISIBILITY_DENIED" | "ERR_MANIFEST_VALIDATION_FAILED" | "ERR_CIRCULAR_DEPENDENCY" | "ERR_SCOPE_RESOURCE_NOT_FOUND" | "ERR_TYPE_NOT_FOUND" | "ERR_TYPE_VALIDATION_FAILED" | (string & {});
2
9
  //# sourceMappingURL=runtime-error.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-error.d.ts","sourceRoot":"","sources":["../src/runtime-error.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACxB,wBAAwB,GACxB,2BAA2B,GAC3B,0BAA0B,GAC1B,wBAAwB,GACxB,oCAAoC,GACpC,4BAA4B,GAC5B,uCAAuC,GACvC,wBAAwB,GACxB,sBAAsB,GACtB,mBAAmB,GACnB,uBAAuB,CAAC"}
1
+ {"version":3,"file":"runtime-error.d.ts","sourceRoot":"","sources":["../src/runtime-error.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,0GAA0G;AAC1G,MAAM,MAAM,gBAAgB,GACxB,wBAAwB,GACxB,2BAA2B,GAC3B,0BAA0B,GAC1B,wBAAwB,GACxB,oCAAoC,GACpC,4BAA4B,GAC5B,uCAAuC,GACvC,wBAAwB,GACxB,sBAAsB,GACtB,mBAAmB,GACnB,uBAAuB,GACvB,gCAAgC,GAChC,yBAAyB,GACzB,8BAA8B,GAC9B,oBAAoB,GACpB,4BAA4B,GAC5B,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC"}
package/dist/types.d.ts CHANGED
@@ -2,7 +2,7 @@ import { ControllerContext } from "./controller-context.js";
2
2
  import { ResourceContext } from "./resource-context.js";
3
3
  import { ResourceInstance } from "./resource-instance.js";
4
4
  import { ResourceManifest } from "./resource-manifest.js";
5
- import { RuntimeErrorCode } from "./runtime-error.js";
5
+ import { RuntimeDiagnostic, RuntimeErrorCode } from "./runtime-error.js";
6
6
  import { RuntimeResource } from "./runtime-resource.js";
7
7
  export interface KernelContext {
8
8
  kernel: Kernel;
@@ -11,16 +11,15 @@ export interface ExecContext {
11
11
  execute(urn: string, input: any): Promise<any>;
12
12
  [key: string]: any;
13
13
  }
14
- export type ResourceCapability = string;
15
14
  export interface ResourceDefinition {
16
15
  kind: string;
17
16
  metadata: {
18
17
  name: string;
19
18
  module: string;
20
19
  };
21
- schema: Record<string, any>;
22
- capabilities: ResourceCapability[];
23
- events?: string[];
20
+ /** JSON Schema for the resource's compile-time configuration fields. */
21
+ schema?: Record<string, any>;
22
+ capability?: string;
24
23
  controllers?: Array<{
25
24
  runtime: string;
26
25
  entry: string;
@@ -38,13 +37,27 @@ export interface ControllerDefinition {
38
37
  }
39
38
  /**
40
39
  * Controller instance - runtime representation of a controller that handles resource instances.
40
+ *
41
+ * TResource - the typed shape of the resource manifest (compile-time config)
42
+ * TInput - the typed shape of invoke() inputs (runtime)
43
+ * TOutput - the typed shape of invoke() outputs (runtime)
41
44
  */
42
- export interface ControllerInstance {
45
+ export interface ControllerInstance<TResource extends ResourceManifest = ResourceManifest, TInput = Record<string, any>, TOutput = any> {
43
46
  execute?(name: string, inputs: any, ctx: ExecContext): Promise<any>;
44
- compile?(resource: ResourceManifest, ctx: ResourceContext): RuntimeResource | Promise<RuntimeResource>;
47
+ compile?(resource: TResource, ctx: ResourceContext): RuntimeResource | Promise<RuntimeResource>;
45
48
  register?(ctx: ControllerContext): void | Promise<void>;
46
- create?(resource: ResourceManifest, ctx: ResourceContext): ResourceInstance | null | Promise<ResourceInstance | null>;
47
- schema: any;
49
+ create?(resource: TResource, ctx: ResourceContext): ResourceInstance<TInput, TOutput> | null | Promise<ResourceInstance<TInput, TOutput> | null>;
50
+ schema?: any;
51
+ /** CLI argument spec. Keys are arg names; values define type, alias, and description. */
52
+ args?: Record<string, {
53
+ type: "string" | "boolean";
54
+ alias?: string;
55
+ description?: string;
56
+ }>;
57
+ /** Type reference for invoke() inputs — name string or inline type definition. */
58
+ inputType?: string | Record<string, any>;
59
+ /** Type reference for invoke() outputs — name string or inline type definition. */
60
+ outputType?: string | Record<string, any>;
48
61
  }
49
62
  export interface Kernel {
50
63
  loadFromConfig(runtimeYamlPath: string): Promise<void>;
@@ -57,6 +70,7 @@ export interface Kernel {
57
70
  }
58
71
  export declare class RuntimeError extends Error {
59
72
  code: RuntimeErrorCode;
60
- constructor(code: RuntimeErrorCode, message: string);
73
+ diagnostics?: RuntimeDiagnostic[] | undefined;
74
+ constructor(code: RuntimeErrorCode, message: string, diagnostics?: RuntimeDiagnostic[] | undefined);
61
75
  }
62
76
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAExC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACpE,OAAO,CAAC,CACN,QAAQ,EAAE,gBAAgB,EAC1B,GAAG,EAAE,eAAe,GACnB,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC9C,QAAQ,CAAC,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,CACL,QAAQ,EAAE,gBAAgB,EAC1B,GAAG,EAAE,eAAe,GACnB,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC9D,MAAM,EAAE,GAAG,CAAC;CACb;AAED,MAAM,WAAW,MAAM;IACrB,cAAc,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC;IACzC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAI1B,QAAQ,IAAI,IAAI,CAAC;CAClB;AAED,qBAAa,YAAa,SAAQ,KAAK;IAE5B,IAAI,EAAE,gBAAgB;gBAAtB,IAAI,EAAE,gBAAgB,EAC7B,OAAO,EAAE,MAAM;CAKlB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB,CACjC,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,EACrD,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,OAAO,GAAG,GAAG;IAEb,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACpE,OAAO,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,GAAG,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAChG,QAAQ,CAAC,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,CACL,QAAQ,EAAE,SAAS,EACnB,GAAG,EAAE,eAAe,GACnB,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAChG,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,yFAAyF;IACzF,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5F,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzC,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,MAAM;IACrB,cAAc,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC;IACzC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAI1B,QAAQ,IAAI,IAAI,CAAC;CAClB;AAED,qBAAa,YAAa,SAAQ,KAAK;IAE5B,IAAI,EAAE,gBAAgB;IAEtB,WAAW,CAAC,EAAE,iBAAiB,EAAE;gBAFjC,IAAI,EAAE,gBAAgB,EAC7B,OAAO,EAAE,MAAM,EACR,WAAW,CAAC,EAAE,iBAAiB,EAAE,YAAA;CAK3C"}
package/dist/types.js CHANGED
@@ -1,8 +1,10 @@
1
1
  export class RuntimeError extends Error {
2
2
  code;
3
- constructor(code, message) {
3
+ diagnostics;
4
+ constructor(code, message, diagnostics) {
4
5
  super(message);
5
6
  this.code = code;
7
+ this.diagnostics = diagnostics;
6
8
  this.name = "RuntimeError";
7
9
  }
8
10
  }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@telorun/sdk",
3
- "version": "0.2.5",
3
+ "version": "0.2.7",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "exports": {
7
7
  ".": {
8
- "types": "./dist/index.d.ts",
9
8
  "source": "./src/index.ts",
9
+ "types": "./dist/index.d.ts",
10
10
  "bun": "./src/index.ts",
11
11
  "import": "./dist/index.js",
12
12
  "default": "./dist/index.js"
@@ -16,9 +16,6 @@
16
16
  "dist/**",
17
17
  "src/**"
18
18
  ],
19
- "dependencies": {
20
- "cel-js": "^0.8.2"
21
- },
22
19
  "devDependencies": {
23
20
  "@types/node": "^20.0.0",
24
21
  "typescript": "^5.0.0"
@@ -1,3 +1,3 @@
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
  }
@@ -0,0 +1,11 @@
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
+
9
+ export function isCompiledValue(v: unknown): v is CompiledValue {
10
+ return v !== null && typeof v === "object" && (v as any).__compiled === true;
11
+ }