@telorun/kernel 0.2.4 → 0.2.6

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 (192) hide show
  1. package/dist/base-definition.d.ts +14 -0
  2. package/dist/base-definition.d.ts.map +1 -0
  3. package/dist/base-definition.js +17 -0
  4. package/dist/base-definition.js.map +1 -0
  5. package/dist/boot-context-registry.d.ts.map +1 -1
  6. package/dist/boot-context-registry.js +6 -6
  7. package/dist/boot-context-registry.js.map +1 -1
  8. package/dist/capabilities/capabilities/component.yaml +2 -1
  9. package/dist/capabilities/capabilities/executable.yaml +2 -1
  10. package/dist/capabilities/capabilities/handler.yaml +2 -1
  11. package/dist/capabilities/capabilities/listener.yaml +2 -1
  12. package/dist/capabilities/capabilities/provider.yaml +2 -1
  13. package/dist/capabilities/capabilities/template.yaml +2 -1
  14. package/dist/capabilities/capabilities/type.yaml +2 -1
  15. package/dist/capabilities/component.d.ts +3 -0
  16. package/dist/capabilities/component.d.ts.map +1 -0
  17. package/dist/capabilities/component.js +4 -0
  18. package/dist/capabilities/component.js.map +1 -0
  19. package/dist/capabilities/component.yaml +1 -1
  20. package/dist/capabilities/executable.d.ts +3 -0
  21. package/dist/capabilities/executable.d.ts.map +1 -0
  22. package/dist/capabilities/executable.js +5 -0
  23. package/dist/capabilities/executable.js.map +1 -0
  24. package/dist/capabilities/executable.yaml +1 -1
  25. package/dist/capabilities/handler.d.ts +3 -0
  26. package/dist/capabilities/handler.d.ts.map +1 -0
  27. package/dist/capabilities/handler.js +4 -0
  28. package/dist/capabilities/handler.js.map +1 -0
  29. package/dist/capabilities/handler.yaml +1 -1
  30. package/dist/capabilities/invokable.d.ts +3 -0
  31. package/dist/capabilities/invokable.d.ts.map +1 -0
  32. package/dist/capabilities/invokable.js +5 -0
  33. package/dist/capabilities/invokable.js.map +1 -0
  34. package/dist/capabilities/listener.d.ts +3 -0
  35. package/dist/capabilities/listener.d.ts.map +1 -0
  36. package/dist/capabilities/listener.js +5 -0
  37. package/dist/capabilities/listener.js.map +1 -0
  38. package/dist/capabilities/listener.yaml +1 -1
  39. package/dist/capabilities/mount.d.ts +3 -0
  40. package/dist/capabilities/mount.d.ts.map +1 -0
  41. package/dist/capabilities/mount.js +5 -0
  42. package/dist/capabilities/mount.js.map +1 -0
  43. package/dist/capabilities/provider.d.ts +3 -0
  44. package/dist/capabilities/provider.d.ts.map +1 -0
  45. package/dist/capabilities/provider.js +8 -0
  46. package/dist/capabilities/provider.js.map +1 -0
  47. package/dist/capabilities/provider.yaml +1 -1
  48. package/dist/capabilities/runnable.d.ts +3 -0
  49. package/dist/capabilities/runnable.d.ts.map +1 -0
  50. package/dist/capabilities/runnable.js +5 -0
  51. package/dist/capabilities/runnable.js.map +1 -0
  52. package/dist/capabilities/service.d.ts +3 -0
  53. package/dist/capabilities/service.d.ts.map +1 -0
  54. package/dist/capabilities/service.js +5 -0
  55. package/dist/capabilities/service.js.map +1 -0
  56. package/dist/capabilities/template.d.ts +3 -0
  57. package/dist/capabilities/template.d.ts.map +1 -0
  58. package/dist/capabilities/template.js +5 -0
  59. package/dist/capabilities/template.js.map +1 -0
  60. package/dist/capabilities/template.yaml +1 -1
  61. package/dist/capabilities/type.d.ts +3 -0
  62. package/dist/capabilities/type.d.ts.map +1 -0
  63. package/dist/capabilities/type.js +5 -0
  64. package/dist/capabilities/type.js.map +1 -0
  65. package/dist/capabilities/type.yaml +1 -1
  66. package/dist/controller-loader.d.ts +1 -1
  67. package/dist/controller-loader.d.ts.map +1 -1
  68. package/dist/controller-loader.js +6 -3
  69. package/dist/controller-loader.js.map +1 -1
  70. package/dist/controller-registry.d.ts +1 -6
  71. package/dist/controller-registry.d.ts.map +1 -1
  72. package/dist/controller-registry.js +11 -22
  73. package/dist/controller-registry.js.map +1 -1
  74. package/dist/controllers/capability/capability-controller.d.ts +0 -5
  75. package/dist/controllers/capability/capability-controller.d.ts.map +1 -1
  76. package/dist/controllers/capability/capability-controller.js +1 -5
  77. package/dist/controllers/capability/capability-controller.js.map +1 -1
  78. package/dist/controllers/module/import-controller.d.ts +35 -0
  79. package/dist/controllers/module/import-controller.d.ts.map +1 -0
  80. package/dist/controllers/module/import-controller.js +113 -0
  81. package/dist/controllers/module/import-controller.js.map +1 -0
  82. package/dist/controllers/module/module-controller.d.ts +2 -15
  83. package/dist/controllers/module/module-controller.d.ts.map +1 -1
  84. package/dist/controllers/module/module-controller.js +9 -90
  85. package/dist/controllers/module/module-controller.js.map +1 -1
  86. package/dist/controllers/resource-definition/resource-definition-controller.d.ts +3 -4
  87. package/dist/controllers/resource-definition/resource-definition-controller.d.ts.map +1 -1
  88. package/dist/controllers/resource-definition/resource-definition-controller.js +17 -11
  89. package/dist/controllers/resource-definition/resource-definition-controller.js.map +1 -1
  90. package/dist/controllers/resource-definition/resource-template-controller.d.ts +12 -0
  91. package/dist/controllers/resource-definition/resource-template-controller.d.ts.map +1 -0
  92. package/dist/controllers/resource-definition/resource-template-controller.js +112 -0
  93. package/dist/controllers/resource-definition/resource-template-controller.js.map +1 -0
  94. package/dist/evaluation-context.d.ts +91 -0
  95. package/dist/evaluation-context.d.ts.map +1 -0
  96. package/dist/evaluation-context.js +220 -0
  97. package/dist/evaluation-context.js.map +1 -0
  98. package/dist/execution-context.d.ts +13 -0
  99. package/dist/execution-context.d.ts.map +1 -0
  100. package/dist/execution-context.js +14 -0
  101. package/dist/execution-context.js.map +1 -0
  102. package/dist/index.d.ts +1 -4
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +0 -3
  105. package/dist/index.js.map +1 -1
  106. package/dist/kernel.d.ts +31 -42
  107. package/dist/kernel.d.ts.map +1 -1
  108. package/dist/kernel.js +315 -371
  109. package/dist/kernel.js.map +1 -1
  110. package/dist/loader.d.ts +11 -10
  111. package/dist/loader.d.ts.map +1 -1
  112. package/dist/loader.js +50 -112
  113. package/dist/loader.js.map +1 -1
  114. package/dist/manifest-adapters/http-adapter.d.ts.map +1 -1
  115. package/dist/manifest-adapters/http-adapter.js +3 -1
  116. package/dist/manifest-adapters/http-adapter.js.map +1 -1
  117. package/dist/manifest-adapters/local-file-adapter.d.ts +7 -5
  118. package/dist/manifest-adapters/local-file-adapter.d.ts.map +1 -1
  119. package/dist/manifest-adapters/local-file-adapter.js +28 -24
  120. package/dist/manifest-adapters/local-file-adapter.js.map +1 -1
  121. package/dist/manifest-adapters/manifest-adapter.d.ts +2 -0
  122. package/dist/manifest-adapters/manifest-adapter.d.ts.map +1 -1
  123. package/dist/manifest-adapters/registry-adapter.d.ts.map +1 -1
  124. package/dist/manifest-adapters/registry-adapter.js +3 -1
  125. package/dist/manifest-adapters/registry-adapter.js.map +1 -1
  126. package/dist/manifest-schemas.d.ts +61 -49
  127. package/dist/manifest-schemas.d.ts.map +1 -1
  128. package/dist/manifest-schemas.js +58 -37
  129. package/dist/manifest-schemas.js.map +1 -1
  130. package/dist/module-context-registry.d.ts +48 -0
  131. package/dist/module-context-registry.d.ts.map +1 -0
  132. package/dist/module-context-registry.js +91 -0
  133. package/dist/module-context-registry.js.map +1 -0
  134. package/dist/module-context.d.ts +31 -0
  135. package/dist/module-context.d.ts.map +1 -0
  136. package/dist/module-context.js +67 -0
  137. package/dist/module-context.js.map +1 -0
  138. package/dist/registry.d.ts +1 -2
  139. package/dist/registry.d.ts.map +1 -1
  140. package/dist/registry.js +3 -3
  141. package/dist/registry.js.map +1 -1
  142. package/dist/resource-context.d.ts +27 -10
  143. package/dist/resource-context.d.ts.map +1 -1
  144. package/dist/resource-context.js +100 -44
  145. package/dist/resource-context.js.map +1 -1
  146. package/dist/schema-valiator.d.ts.map +1 -1
  147. package/dist/schema-valiator.js +16 -3
  148. package/dist/schema-valiator.js.map +1 -1
  149. package/dist/snapshot-serializer.d.ts +1 -2
  150. package/dist/snapshot-serializer.d.ts.map +1 -1
  151. package/dist/snapshot-serializer.js.map +1 -1
  152. package/dist/types.d.ts +3 -0
  153. package/dist/types.d.ts.map +1 -1
  154. package/dist/types.js.map +1 -1
  155. package/package.json +11 -9
  156. package/src/boot-context-registry.ts +169 -0
  157. package/src/controller-loader.ts +299 -0
  158. package/src/controller-registry.ts +191 -0
  159. package/src/controllers/module/import-controller.ts +143 -0
  160. package/src/controllers/module/module-controller.ts +16 -0
  161. package/src/controllers/resource-definition/resource-definition-controller.ts +86 -0
  162. package/src/controllers/resource-definition/resource-definition.json +18 -0
  163. package/src/controllers/resource-definition/resource-template-controller.ts +138 -0
  164. package/src/event-stream.ts +121 -0
  165. package/src/events.ts +99 -0
  166. package/src/index.ts +7 -0
  167. package/src/kernel.ts +647 -0
  168. package/src/loader.ts +134 -0
  169. package/src/manifest-adapters/local-file-adapter.ts +62 -0
  170. package/src/manifest-adapters/manifest-adapter.ts +35 -0
  171. package/src/manifest-schemas.ts +85 -0
  172. package/src/registry.ts +137 -0
  173. package/src/resource-context.ts +267 -0
  174. package/src/resource-uri.ts +200 -0
  175. package/src/schema-valiator.ts +68 -0
  176. package/dist/cli.d.ts +0 -3
  177. package/dist/cli.d.ts.map +0 -1
  178. package/dist/cli.js +0 -109
  179. package/dist/cli.js.map +0 -1
  180. package/dist/expressions.d.ts +0 -20
  181. package/dist/expressions.d.ts.map +0 -1
  182. package/dist/expressions.js +0 -253
  183. package/dist/expressions.js.map +0 -1
  184. package/dist/src/controllers/module/module.yaml +0 -32
  185. package/dist/template-definition.d.ts +0 -38
  186. package/dist/template-definition.d.ts.map +0 -1
  187. package/dist/template-definition.js +0 -26
  188. package/dist/template-definition.js.map +0 -1
  189. package/dist/template-expander.d.ts +0 -19
  190. package/dist/template-expander.d.ts.map +0 -1
  191. package/dist/template-expander.js +0 -425
  192. package/dist/template-expander.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"controller-registry.js","sourceRoot":"","sources":["../src/controller-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controller-registry.js","sourceRoot":"","sources":["../src/controller-registry.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,6 @@ type CapabilityResource = {
5
5
  name: string;
6
6
  [key: string]: any;
7
7
  };
8
- schema?: Record<string, any>;
9
8
  };
10
9
  declare class Capability implements ResourceInstance {
11
10
  private readonly resource;
@@ -25,10 +24,6 @@ export declare const schema: {
25
24
  };
26
25
  required: string[];
27
26
  };
28
- schema: {
29
- type: string;
30
- additionalProperties: boolean;
31
- };
32
27
  };
33
28
  required: string[];
34
29
  additionalProperties: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"capability-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/capability/capability-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEtE,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B,CAAC;AAEF,cAAM,UAAW,YAAW,gBAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,kBAAkB;IAEnD,IAAI,CAAC,GAAG,EAAE,eAAe;CAGhC;AAED,wBAAsB,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAEtF;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;CAiBlB,CAAC"}
1
+ {"version":3,"file":"capability-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/capability/capability-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEtE,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,cAAM,UAAW,YAAW,gBAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,kBAAkB;IAEnD,IAAI,CAAC,GAAG,EAAE,eAAe;CAGhC;AAED,wBAAsB,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAEtF;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;CAalB,CAAC"}
@@ -3,7 +3,7 @@ class Capability {
3
3
  this.resource = resource;
4
4
  }
5
5
  async init(ctx) {
6
- ctx.registerCapability(this.resource.metadata.name, this.resource.schema);
6
+ ctx.registerCapability(this.resource.metadata.name);
7
7
  }
8
8
  }
9
9
  export async function create(resource, _ctx) {
@@ -19,10 +19,6 @@ export const schema = {
19
19
  },
20
20
  required: ["name"],
21
21
  },
22
- schema: {
23
- type: "object",
24
- additionalProperties: true,
25
- },
26
22
  },
27
23
  required: ["metadata"],
28
24
  additionalProperties: true,
@@ -1 +1 @@
1
- {"version":3,"file":"capability-controller.js","sourceRoot":"","sources":["../../../src/controllers/capability/capability-controller.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU;IACd,YAA6B,QAA4B;QAA5B,aAAQ,GAAR,QAAQ,CAAoB;IAAG,CAAC;IAE7D,KAAK,CAAC,IAAI,CAAC,GAAoB;QAC7B,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5E,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,QAAa,EAAE,IAAqB;IAC/D,OAAO,IAAI,UAAU,CAAC,QAA8B,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACzB;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,oBAAoB,EAAE,IAAI;CAC3B,CAAC"}
1
+ {"version":3,"file":"capability-controller.js","sourceRoot":"","sources":["../../../src/controllers/capability/capability-controller.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU;IACd,YAA6B,QAA4B;QAA5B,aAAQ,GAAR,QAAQ,CAAoB;IAAG,CAAC;IAE7D,KAAK,CAAC,IAAI,CAAC,GAAoB;QAC7B,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,QAAa,EAAE,IAAqB;IAC/D,OAAO,IAAI,UAAU,CAAC,QAA8B,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACzB;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;KACF;IACD,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,oBAAoB,EAAE,IAAI;CAC3B,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { ResourceContext, ResourceInstance } from "@telorun/sdk";
2
+ export declare function create(resource: any, ctx: ResourceContext): Promise<ResourceInstance>;
3
+ export declare const schema: {
4
+ type: string;
5
+ properties: {
6
+ kind: {
7
+ type: string;
8
+ };
9
+ metadata: {
10
+ type: string;
11
+ properties: {
12
+ name: {
13
+ type: string;
14
+ };
15
+ module: {
16
+ type: string;
17
+ };
18
+ };
19
+ required: string[];
20
+ additionalProperties: boolean;
21
+ };
22
+ source: {
23
+ type: string;
24
+ };
25
+ variables: {
26
+ type: string;
27
+ };
28
+ secrets: {
29
+ type: string;
30
+ };
31
+ };
32
+ required: string[];
33
+ additionalProperties: boolean;
34
+ };
35
+ //# sourceMappingURL=import-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/module/import-controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAItE,wBAAsB,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuG3F;AAeD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmBlB,CAAC"}
@@ -0,0 +1,113 @@
1
+ import { DiagnosticSeverity, Loader, StaticAnalyzer } from "@telorun/analyzer";
2
+ import { EvaluationContext, RuntimeError } from "@telorun/sdk";
3
+ import { LocalFileAdapter } from "../../manifest-adapters/local-file-adapter.js";
4
+ export async function create(resource, ctx) {
5
+ const alias = resource.metadata.name;
6
+ const loader = new Loader([new LocalFileAdapter()]);
7
+ const moduleSource = resource.module ?? resource.source;
8
+ // Validate the imported module and all its transitive imports before loading for runtime.
9
+ // loadManifests() follows Kernel.Import chains so definitions from sub-imports are present,
10
+ // preventing false UNDEFINED_KIND errors for kinds that come from the module's own imports.
11
+ const resolvedUrl = new URL(moduleSource, ctx.moduleContext.source).toString();
12
+ const analysisManifests = await loader.loadManifests(resolvedUrl);
13
+ const diagnostics = new StaticAnalyzer().analyze(analysisManifests);
14
+ const errors = diagnostics.filter((d) => d.severity === DiagnosticSeverity.Error);
15
+ if (errors.length > 0) {
16
+ throw new RuntimeError("ERR_MANIFEST_VALIDATION_FAILED", errors.map((d) => d.message).join("\n"));
17
+ }
18
+ // Load target module manifests for runtime. Inject variables/secrets as compile context so
19
+ // that ${{ variables.x }} / ${{ secrets.y }} templates in the child module resolve correctly.
20
+ // No env — child modules are isolated from host environment.
21
+ const manifests = await loader.loadModule(new URL(moduleSource, ctx.moduleContext.source).toString(), {
22
+ compile: true,
23
+ });
24
+ // Find the kind: Module manifest to learn the target module name and contract.
25
+ const moduleManifest = manifests.find((m) => m.kind === "Kernel.Module");
26
+ if (!moduleManifest) {
27
+ throw new Error(`No kind: Module manifest found in source "${resource.source}"`);
28
+ }
29
+ const targetModule = moduleManifest.metadata.name;
30
+ // Validate required inputs before injecting.
31
+ validateRequiredInputs(moduleManifest.variables ?? {}, resource.variables ?? {}, "variables");
32
+ validateRequiredInputs(moduleManifest.secrets ?? {}, resource.secrets ?? {}, "secrets");
33
+ // Create child context with the imported variables/secrets baked in, so that
34
+ // ${{ variables.x }} / ${{ secrets.y }} templates resolve correctly at runtime.
35
+ const child = ctx.moduleContext.spawnChild(new EvaluationContext(ctx.moduleContext.source, {
36
+ variables: resource.variables ?? {},
37
+ secrets: resource.secrets ?? {},
38
+ resources: {},
39
+ }, ctx.moduleContext.createInstance, ctx.moduleContext.secretValues, ctx.moduleContext.emit));
40
+ for (const manifest of manifests) {
41
+ child.registerManifest(manifest);
42
+ }
43
+ // Link the target module context as a child of the declaring module context in
44
+ // the lifecycle tree. This enables cascading teardown (parent → child order)
45
+ // and makes the import hierarchy visible at runtime.
46
+ // const declaringCtx: ModuleContext = ctx.getModuleContext(declaringModule);
47
+ // const targetCtx: ModuleContext = (ctx as any).getModuleContext(targetModule);
48
+ // if (!targetCtx.parent) {
49
+ // declaringCtx.spawnChild(targetCtx);
50
+ // }
51
+ // Try to evaluate the target module's exports.
52
+ // Throws if resources.X is not yet populated — the kernel retry loop catches this and retries.
53
+ // const evaluatedExports: any = child.expand(moduleManifest.exports ?? {});
54
+ const exportedKinds = moduleManifest.exports?.kinds ?? [];
55
+ ctx.registerModuleImport(alias, targetModule, exportedKinds);
56
+ // Return a ResourceInstance whose snapshot() surfaces the exported values.
57
+ // The kernel's generic setResource() call stores them under resources.<alias>
58
+ // in the declaring module's evaluation context — no separate imports namespace needed.
59
+ return {
60
+ snapshot: () => ({
61
+ variables: ctx.expandValue(resource.variables, {}) ?? {},
62
+ secrets: ctx.expandValue(resource.secrets, {}) ?? {},
63
+ }),
64
+ run: async () => {
65
+ // Proxy run to target module
66
+ for (const target of moduleManifest.targets ?? []) {
67
+ await child.run(target);
68
+ }
69
+ },
70
+ invoke: async () => {
71
+ // Proxy run to target module
72
+ // for (const target of (moduleManifest.targets as string[]) ?? []) {
73
+ // child.invoke(target);
74
+ // }
75
+ console.log("invoking");
76
+ },
77
+ init: async () => {
78
+ await child.initializeResources();
79
+ },
80
+ teardown: async () => {
81
+ await child.teardownResources();
82
+ },
83
+ };
84
+ }
85
+ function validateRequiredInputs(schemaDefs, provided, kind) {
86
+ for (const [key, def] of Object.entries(schemaDefs)) {
87
+ const isRequired = typeof def === "object" && def !== null && !("default" in def);
88
+ if (isRequired && !(key in provided)) {
89
+ throw new Error(`Required ${kind} input "${key}" not provided for module import`);
90
+ }
91
+ }
92
+ }
93
+ export const schema = {
94
+ type: "object",
95
+ properties: {
96
+ kind: { type: "string" },
97
+ metadata: {
98
+ type: "object",
99
+ properties: {
100
+ name: { type: "string" },
101
+ module: { type: "string" },
102
+ },
103
+ required: ["name"],
104
+ additionalProperties: true,
105
+ },
106
+ source: { type: "string" },
107
+ variables: { type: "object" },
108
+ secrets: { type: "object" },
109
+ },
110
+ required: ["metadata", "source"],
111
+ additionalProperties: false,
112
+ };
113
+ //# sourceMappingURL=import-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-controller.js","sourceRoot":"","sources":["../../../src/controllers/module/import-controller.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,3 @@
1
- import type { ResourceContext, ResourceInstance, RuntimeResource } from "@telorun/sdk";
2
- type ModuleResource = RuntimeResource & {
3
- source?: string;
4
- imports?: string[];
5
- definitions?: string[];
6
- resources?: (string | {
7
- path: string;
8
- })[];
9
- };
10
- export declare function create(resource: ModuleResource, ctx: ResourceContext): Promise<ResourceInstance>;
11
- export declare const schema: {
12
- type: string;
13
- additionalProperties: boolean;
14
- };
15
- export {};
1
+ import type { ResourceContext, ResourceInstance } from "@telorun/sdk";
2
+ export declare function create(resource: any, ctx: ResourceContext): Promise<ResourceInstance>;
16
3
  //# sourceMappingURL=module-controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/module/module-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,eAAe,EAChB,MAAM,cAAc,CAAC;AAItB,KAAK,cAAc,GAAG,eAAe,GAAG;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,CAAC,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;CAC3C,CAAC;AAqBF,wBAAsB,MAAM,CAC1B,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,eAAe,GACnB,OAAO,CAAC,gBAAgB,CAAC,CA6C3B;AAgCD,eAAO,MAAM,MAAM;;;CAGlB,CAAC"}
1
+ {"version":3,"file":"module-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/module/module-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEtE,wBAAsB,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAY3F"}
@@ -1,95 +1,14 @@
1
- import * as path from "path";
2
- import { Loader } from "../../loader.js";
3
- /**
4
- * Check if a path is a URL (http:// or https://)
5
- */
6
- function isUrl(pathOrUrl) {
7
- return pathOrUrl.startsWith("http://") || pathOrUrl.startsWith("https://");
8
- }
9
- /**
10
- * Resolve a path relative to a base, handling both local paths and URLs
11
- */
12
- function resolvePath(loader, base, relative) {
13
- // If the relative path is actually a URL, return it as-is
14
- if (isUrl(relative)) {
15
- return relative;
16
- }
17
- // Otherwise, resolve it relative to the base
18
- return loader.resolvePath(base, relative);
19
- }
20
1
  export async function create(resource, ctx) {
21
- // Get the module base path from the resource's URI or source
22
- const moduleBasePath = resource.metadata.source
23
- ? path.dirname(resource.metadata.source)
24
- : getModuleBasePath(resource.metadata.uri);
25
- const loader = new Loader();
26
- try {
27
- // Load and register resource definitions from imports
28
- if (resource.imports && Array.isArray(resource.imports)) {
29
- for (const importPath of resource.imports) {
30
- const resolvedPath = resolvePath(loader, moduleBasePath, importPath);
31
- const defResources = await loader.loadDirectory(resolvedPath);
32
- for (const defResource of defResources) {
33
- ctx.registerManifest(defResource);
2
+ return {
3
+ run: async () => {
4
+ for (const target of resource.targets ?? []) {
5
+ const [kind, name] = target.split(".");
6
+ if (!kind || !name) {
7
+ throw new Error(`Invalid target format: "${target}". Expected "Kind.Name"`);
34
8
  }
9
+ await ctx.invoke(kind, name, {});
35
10
  }
36
- }
37
- // Load and register resources from definitions and resources paths
38
- if (resource.definitions && Array.isArray(resource.definitions)) {
39
- for (const defPath of resource.definitions) {
40
- const resolvedPath = resolvePath(loader, moduleBasePath, defPath);
41
- const defResources = await loader.loadManifest(resolvedPath);
42
- for (const defResource of defResources) {
43
- ctx.registerManifest(defResource);
44
- }
45
- }
46
- }
47
- if (resource.resources && Array.isArray(resource.resources)) {
48
- for (const defPath of resource.resources) {
49
- const rawPath = typeof defPath === "string" ? defPath : defPath.path;
50
- const resolvedPath = resolvePath(loader, moduleBasePath, rawPath);
51
- const defResources = await loader.loadManifest(resolvedPath);
52
- for (const defResource of defResources) {
53
- ctx.registerManifest(defResource);
54
- }
55
- }
56
- }
57
- return {};
58
- }
59
- catch (error) {
60
- throw new Error(`Failed to process Module "${resource.metadata.name}": ${error instanceof Error ? error.message : String(error)}`);
61
- }
62
- }
63
- function getModuleBasePath(uri) {
64
- if (!uri) {
65
- return process.cwd();
66
- }
67
- try {
68
- // URI format: file://localhost/path/to/file.yaml#kind.name
69
- // Extract the file path part (before the #)
70
- const hashIndex = uri.indexOf("#");
71
- const filePath = hashIndex > 0 ? uri.substring(0, hashIndex) : uri;
72
- // Parse as URL to handle file:// scheme
73
- if (filePath.startsWith("file://")) {
74
- // Remove 'file://localhost' and get the path
75
- let pathPart = filePath.substring("file://".length);
76
- if (pathPart.startsWith("localhost/")) {
77
- pathPart = pathPart.substring("localhost".length);
78
- }
79
- else if (pathPart.startsWith("localhost\\")) {
80
- pathPart = pathPart.substring("localhost".length);
81
- }
82
- return path.dirname(pathPart);
83
- }
84
- // Fallback: treat as regular path
85
- return path.dirname(filePath);
86
- }
87
- catch {
88
- return process.cwd();
89
- }
11
+ },
12
+ };
90
13
  }
91
- export const schema = {
92
- type: "object",
93
- additionalProperties: true,
94
- };
95
14
  //# sourceMappingURL=module-controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"module-controller.js","sourceRoot":"","sources":["../../../src/controllers/module/module-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module-controller.js","sourceRoot":"","sources":["../../../src/controllers/module/module-controller.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,QAAa,EAAE,GAAoB;IAC9D,OAAO;QACL,GAAG,EAAE,KAAK,IAAI,EAAE;YACd,KAAK,MAAM,MAAM,IAAK,QAAQ,CAAC,OAAoB,IAAI,EAAE,EAAE,CAAC;gBAC1D,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnB,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,yBAAyB,CAAC,CAAC;gBAC9E,CAAC;gBACD,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,16 +1,15 @@
1
1
  import type { ControllerContext, ResourceContext, ResourceInstance, RuntimeResource } from "@telorun/sdk";
2
2
  import { ControllerLoader } from "../../controller-loader.js";
3
3
  type ResourceDefinitionResource = RuntimeResource & {
4
- kind: "Definition";
4
+ kind: "Kernel.Definition";
5
5
  metadata: {
6
6
  [key: string]: any;
7
7
  name: string;
8
8
  module?: string;
9
9
  };
10
10
  schema: Record<string, any>;
11
- capabilities: string[];
12
- events?: string[];
13
- controllers: Array<string>;
11
+ capability?: string;
12
+ controllers?: Array<string>;
14
13
  };
15
14
  /**
16
15
  * ResourceDefinition resource - acts as metadata holder for resource type definitions
@@ -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;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,KAAK,0BAA0B,GAAG,eAAe,GAAG;IAClD,IAAI,EAAE,YAAY,CAAC;IACnB,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,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC5B,CAAC;AAEF;;;GAGG;AACH,cAAM,kBAAmB,YAAW,gBAAgB;IAIhD,QAAQ,CAAC,QAAQ,EAAE,0BAA0B;IAC7C,OAAO,CAAC,gBAAgB;IAJ1B,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAwB;gBAGhD,QAAQ,EAAE,0BAA0B,EACrC,gBAAgB,EAAE,gBAAgB;IAGtC,IAAI,CAAC,GAAG,EAAE,eAAe;CAwBhC;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;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAI9D,KAAK,0BAA0B,GAAG,eAAe,GAAG;IAClD,IAAI,EAAE,mBAAmB,CAAC;IAC1B,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;CAC7B,CAAC;AAEF;;;GAGG;AACH,cAAM,kBAAmB,YAAW,gBAAgB;IAIhD,QAAQ,CAAC,QAAQ,EAAE,0BAA0B;IAC7C,OAAO,CAAC,gBAAgB;IAJ1B,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAwB;gBAGhD,QAAQ,EAAE,0BAA0B,EACrC,gBAAgB,EAAE,gBAAgB;IAGtC,IAAI,CAAC,GAAG,EAAE,eAAe;CA6BhC;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,5 +1,6 @@
1
1
  import { ControllerLoader } from "../../controller-loader.js";
2
2
  import { formatAjvErrors, validateResourceDefinition } from "../../manifest-schemas.js";
3
+ import { createTemplateController } from "./resource-template-controller.js";
3
4
  /**
4
5
  * ResourceDefinition resource - acts as metadata holder for resource type definitions
5
6
  * Validates incoming definitions against schema and maintains definition metadata
@@ -11,18 +12,23 @@ class ResourceDefinition {
11
12
  this.kind = "ResourceDefinition";
12
13
  }
13
14
  async init(ctx) {
14
- for (const cap of this.resource.capabilities) {
15
- if (!ctx.isCapabilityRegistered(cap)) {
16
- throw new Error(`Capability "${cap}" is not registered. Declare it as a Runtime.Capability resource.`);
17
- }
18
- const capSchema = ctx.getCapabilitySchema(cap);
19
- if (capSchema) {
20
- ctx.validateSchema(this.resource, capSchema);
21
- }
15
+ if (!this.resource.controllers?.length) {
16
+ const controllerInstance = createTemplateController(this.resource);
17
+ ctx.registerDefinition(this.resource);
18
+ await ctx.registerController(this.resource.metadata.module, this.resource.metadata.name, controllerInstance);
19
+ return;
20
+ }
21
+ ctx.emit("ControllerLoading", { controllers: this.resource.controllers });
22
+ try {
23
+ const controllerInstance = await this.controllerLoader.load(this.resource.controllers, this.resource.metadata.source);
24
+ ctx.emit("ControllerLoaded", { schema: controllerInstance.schema });
25
+ ctx.registerDefinition(this.resource);
26
+ await ctx.registerController(this.resource.metadata.module, this.resource.metadata.name, controllerInstance);
27
+ }
28
+ catch (err) {
29
+ ctx.emit("ControllerLoadFailed", { error: err.message });
30
+ throw err;
22
31
  }
23
- const controllerInstance = await this.controllerLoader.load(this.resource.controllers, this.resource.metadata.source);
24
- ctx.registerDefinition(this.resource);
25
- await ctx.registerController(this.resource.metadata.module, this.resource.metadata.name, controllerInstance);
26
32
  }
27
33
  }
28
34
  export function register(ctx) {
@@ -1 +1 @@
1
- {"version":3,"file":"resource-definition-controller.js","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-definition-controller.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAexF;;;GAGG;AACH,MAAM,kBAAkB;IAGtB,YACW,QAAoC,EACrC,gBAAkC;QADjC,aAAQ,GAAR,QAAQ,CAA4B;QACrC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAJnC,SAAI,GAAyB,oBAAoB,CAAC;IAKxD,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,GAAoB;QAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CACb,eAAe,GAAG,mEAAmE,CACtF,CAAC;YACJ,CAAC;YACD,MAAM,SAAS,GAAG,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC/C,IAAI,SAAS,EAAE,CAAC;gBACd,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACzD,IAAI,CAAC,QAAQ,CAAC,WAAW,EACzB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAC9B,CAAC;QACF,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,GAAG,CAAC,kBAAkB,CAC1B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAC7B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAC3B,kBAAkB,CACnB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,QAAQ,CAAC,GAAsB;IAC7C,oEAAoE;AACtE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,QAAa,EAAE,GAAoB;IAC9D,uDAAuD;IACvD,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,+BAA+B,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,eAAe,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAChH,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,MAAM,UAAU,GAAG,QAAsC,CAAC;IAC1D,OAAO,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,IAAI;CAC3B,CAAC"}
1
+ {"version":3,"file":"resource-definition-controller.js","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-definition-controller.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAc7E;;;GAGG;AACH,MAAM,kBAAkB;IAGtB,YACW,QAAoC,EACrC,gBAAkC;QADjC,aAAQ,GAAR,QAAQ,CAA4B;QACrC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAJnC,SAAI,GAAyB,oBAAoB,CAAC;IAKxD,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,GAAoB;QAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;YACvC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,IAAI,CAAC,QAAe,CAAC,CAAC;YAC1E,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,GAAG,CAAC,kBAAkB,CAC1B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAC7B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAC3B,kBAAkB,CACnB,CAAC;YACF,OAAO;QACT,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC;YACH,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACzD,IAAI,CAAC,QAAQ,CAAC,WAAW,EACzB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAC9B,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC;YACpE,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,GAAG,CAAC,kBAAkB,CAC1B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAC7B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAC3B,kBAAkB,CACnB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACpE,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,QAAQ,CAAC,GAAsB;IAC7C,oEAAoE;AACtE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,QAAa,EAAE,GAAoB;IAC9D,uDAAuD;IACvD,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,+BAA+B,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,eAAe,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAChH,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,MAAM,UAAU,GAAG,QAAiD,CAAC;IACrE,OAAO,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,IAAI;CAC3B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { ControllerInstance } from "@telorun/sdk";
2
+ export declare function createTemplateController(definition: {
3
+ schema: Record<string, any>;
4
+ resources?: any[];
5
+ invoke?: string | {
6
+ kind?: string;
7
+ name: string;
8
+ inputs?: Record<string, any>;
9
+ };
10
+ run?: string;
11
+ }): ControllerInstance;
12
+ //# sourceMappingURL=resource-template-controller.d.ts.map
@@ -0,0 +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;AAG1F,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,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,CAAC;IAChF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,kBAAkB,CAiIrB"}
@@ -0,0 +1,112 @@
1
+ import { isCompiledValue } from "@telorun/sdk";
2
+ export function createTemplateController(definition) {
3
+ return {
4
+ schema: definition.schema ?? { type: "object", additionalProperties: true },
5
+ create: async (resource, ctx) => {
6
+ const self = { ...resource, name: resource.metadata.name };
7
+ // Old string form: invoke is a plain string or a CompiledValue (after precompile).
8
+ // New object form: invoke is a plain object (non-CompiledValue) with at least `name`.
9
+ const objectInvoke = definition.invoke !== null &&
10
+ typeof definition.invoke === "object" &&
11
+ !isCompiledValue(definition.invoke)
12
+ ? definition.invoke
13
+ : null;
14
+ const invokeNameTemplate = objectInvoke ? objectInvoke.name : (definition.invoke ?? null);
15
+ const invokeTarget = invokeNameTemplate
16
+ ? ctx.moduleContext.expandWith(invokeNameTemplate, { self })
17
+ : null;
18
+ const runTarget = definition.run
19
+ ? ctx.moduleContext.expandWith(definition.run, { self })
20
+ : null;
21
+ const persistentManifests = [];
22
+ let ephemeralTemplate = null;
23
+ for (const template of definition.resources ?? []) {
24
+ const expandedName = ctx.moduleContext.expandWith(template.metadata?.name ?? "", {
25
+ self,
26
+ });
27
+ const isTarget = expandedName === invokeTarget || expandedName === runTarget;
28
+ if (isTarget) {
29
+ ephemeralTemplate = template;
30
+ }
31
+ else {
32
+ persistentManifests.push(ctx.moduleContext.expandWith(template, { self }));
33
+ }
34
+ }
35
+ const childContext = ctx.spawnChildContext();
36
+ // Registers an ephemeral manifest on ctx.moduleContext so it shares the same
37
+ // resource scope (and can access connections, etc. via getInstance).
38
+ // Tears down and removes the resource after fn() completes.
39
+ const withEphemeral = async (expandedManifest, fn) => {
40
+ const uniqueName = `${expandedManifest.metadata?.name ?? "eph"}__${Math.random().toString(16).slice(2, 8)}`;
41
+ const manifest = {
42
+ ...expandedManifest,
43
+ metadata: {
44
+ ...expandedManifest.metadata,
45
+ name: uniqueName,
46
+ module: resource.metadata.module,
47
+ },
48
+ };
49
+ ctx.moduleContext.registerManifest(manifest);
50
+ await ctx.moduleContext.initializeResources();
51
+ const entry = ctx.moduleContext.resourceInstances.get(uniqueName);
52
+ try {
53
+ return await fn(uniqueName);
54
+ }
55
+ finally {
56
+ if (entry?.instance?.teardown)
57
+ await entry.instance.teardown();
58
+ ctx.moduleContext.resourceInstances.delete(uniqueName);
59
+ }
60
+ };
61
+ return {
62
+ init: async () => {
63
+ for (const m of persistentManifests)
64
+ childContext.registerManifest(m);
65
+ await childContext.initializeResources();
66
+ },
67
+ ...(invokeTarget && {
68
+ invoke: async (inputs) => {
69
+ if (!ephemeralTemplate) {
70
+ throw new Error(`Template '${resource.metadata.name}': no ephemeral resource for invoke target '${invokeTarget}'`);
71
+ }
72
+ const extraContext = { self, inputs };
73
+ const expanded = ctx.moduleContext.expandWith(ctx.moduleContext.expandWith(ephemeralTemplate, extraContext), extraContext);
74
+ return withEphemeral(expanded, async (name) => {
75
+ const entry = ctx.moduleContext.resourceInstances.get(name);
76
+ if (!entry?.instance?.invoke) {
77
+ throw new Error(`Ephemeral resource '${name}' is not invocable`);
78
+ }
79
+ // New object form: expand objectInvoke.inputs with invoke context and pass as arg.
80
+ // Old string form: the manifest inputs were computed during template expansion;
81
+ // pass expanded.inputs so Sql.Exec/Query controllers receive { sql, bindings }.
82
+ const invokeInputs = objectInvoke?.inputs != null
83
+ ? ctx.moduleContext.expandWith(ctx.moduleContext.expandWith(objectInvoke.inputs, extraContext), extraContext)
84
+ : expanded.inputs ?? inputs;
85
+ return entry.instance.invoke(invokeInputs);
86
+ });
87
+ },
88
+ }),
89
+ ...(runTarget && {
90
+ run: async () => {
91
+ if (!ephemeralTemplate) {
92
+ throw new Error(`Template '${resource.metadata.name}': no ephemeral resource for run target '${runTarget}'`);
93
+ }
94
+ const extraContext = { self };
95
+ const expanded = ctx.moduleContext.expandWith(ctx.moduleContext.expandWith(ephemeralTemplate, extraContext), extraContext);
96
+ return withEphemeral(expanded, async (name) => {
97
+ const entry = ctx.moduleContext.resourceInstances.get(name);
98
+ if (!entry?.instance?.run) {
99
+ throw new Error(`Ephemeral resource '${name}' is not runnable`);
100
+ }
101
+ return entry.instance.run();
102
+ });
103
+ },
104
+ }),
105
+ teardown: async () => {
106
+ await childContext.teardownResources();
107
+ },
108
+ };
109
+ },
110
+ };
111
+ }
112
+ //# sourceMappingURL=resource-template-controller.js.map
@@ -0,0 +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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"}