@telorun/kernel 0.2.5 → 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 (137) 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/capabilities/component.d.ts +3 -0
  6. package/dist/capabilities/component.d.ts.map +1 -0
  7. package/dist/capabilities/component.js +4 -0
  8. package/dist/capabilities/component.js.map +1 -0
  9. package/dist/capabilities/executable.d.ts +3 -0
  10. package/dist/capabilities/executable.d.ts.map +1 -0
  11. package/dist/capabilities/executable.js +5 -0
  12. package/dist/capabilities/executable.js.map +1 -0
  13. package/dist/capabilities/handler.d.ts +3 -0
  14. package/dist/capabilities/handler.d.ts.map +1 -0
  15. package/dist/capabilities/handler.js +4 -0
  16. package/dist/capabilities/handler.js.map +1 -0
  17. package/dist/capabilities/invokable.d.ts +3 -0
  18. package/dist/capabilities/invokable.d.ts.map +1 -0
  19. package/dist/capabilities/invokable.js +5 -0
  20. package/dist/capabilities/invokable.js.map +1 -0
  21. package/dist/capabilities/listener.d.ts +3 -0
  22. package/dist/capabilities/listener.d.ts.map +1 -0
  23. package/dist/capabilities/listener.js +5 -0
  24. package/dist/capabilities/listener.js.map +1 -0
  25. package/dist/capabilities/mount.d.ts +3 -0
  26. package/dist/capabilities/mount.d.ts.map +1 -0
  27. package/dist/capabilities/mount.js +5 -0
  28. package/dist/capabilities/mount.js.map +1 -0
  29. package/dist/capabilities/provider.d.ts +3 -0
  30. package/dist/capabilities/provider.d.ts.map +1 -0
  31. package/dist/capabilities/provider.js +8 -0
  32. package/dist/capabilities/provider.js.map +1 -0
  33. package/dist/capabilities/runnable.d.ts +3 -0
  34. package/dist/capabilities/runnable.d.ts.map +1 -0
  35. package/dist/capabilities/runnable.js +5 -0
  36. package/dist/capabilities/runnable.js.map +1 -0
  37. package/dist/capabilities/service.d.ts +3 -0
  38. package/dist/capabilities/service.d.ts.map +1 -0
  39. package/dist/capabilities/service.js +5 -0
  40. package/dist/capabilities/service.js.map +1 -0
  41. package/dist/capabilities/template.d.ts +3 -0
  42. package/dist/capabilities/template.d.ts.map +1 -0
  43. package/dist/capabilities/template.js +5 -0
  44. package/dist/capabilities/template.js.map +1 -0
  45. package/dist/capabilities/type.d.ts +3 -0
  46. package/dist/capabilities/type.d.ts.map +1 -0
  47. package/dist/capabilities/type.js +5 -0
  48. package/dist/capabilities/type.js.map +1 -0
  49. package/dist/controller-loader.d.ts.map +1 -1
  50. package/dist/controller-loader.js +2 -1
  51. package/dist/controller-loader.js.map +1 -1
  52. package/dist/controller-registry.d.ts +0 -4
  53. package/dist/controller-registry.d.ts.map +1 -1
  54. package/dist/controller-registry.js +11 -22
  55. package/dist/controller-registry.js.map +1 -1
  56. package/dist/controllers/capability/capability-controller.d.ts +0 -5
  57. package/dist/controllers/capability/capability-controller.d.ts.map +1 -1
  58. package/dist/controllers/capability/capability-controller.js +1 -5
  59. package/dist/controllers/capability/capability-controller.js.map +1 -1
  60. package/dist/controllers/module/import-controller.d.ts +0 -3
  61. package/dist/controllers/module/import-controller.d.ts.map +1 -1
  62. package/dist/controllers/module/import-controller.js +21 -27
  63. package/dist/controllers/module/import-controller.js.map +1 -1
  64. package/dist/controllers/module/module-controller.d.ts +0 -59
  65. package/dist/controllers/module/module-controller.d.ts.map +1 -1
  66. package/dist/controllers/module/module-controller.js +0 -45
  67. package/dist/controllers/module/module-controller.js.map +1 -1
  68. package/dist/controllers/resource-definition/resource-definition-controller.d.ts +3 -4
  69. package/dist/controllers/resource-definition/resource-definition-controller.d.ts.map +1 -1
  70. package/dist/controllers/resource-definition/resource-definition-controller.js +6 -8
  71. package/dist/controllers/resource-definition/resource-definition-controller.js.map +1 -1
  72. package/dist/controllers/resource-definition/resource-template-controller.d.ts +12 -0
  73. package/dist/controllers/resource-definition/resource-template-controller.d.ts.map +1 -0
  74. package/dist/controllers/resource-definition/resource-template-controller.js +112 -0
  75. package/dist/controllers/resource-definition/resource-template-controller.js.map +1 -0
  76. package/dist/index.d.ts +1 -1
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +0 -1
  79. package/dist/index.js.map +1 -1
  80. package/dist/kernel.d.ts +21 -24
  81. package/dist/kernel.d.ts.map +1 -1
  82. package/dist/kernel.js +254 -189
  83. package/dist/kernel.js.map +1 -1
  84. package/dist/loader.d.ts +9 -8
  85. package/dist/loader.d.ts.map +1 -1
  86. package/dist/loader.js +50 -132
  87. package/dist/loader.js.map +1 -1
  88. package/dist/manifest-adapters/http-adapter.d.ts.map +1 -1
  89. package/dist/manifest-adapters/http-adapter.js +3 -1
  90. package/dist/manifest-adapters/http-adapter.js.map +1 -1
  91. package/dist/manifest-adapters/local-file-adapter.d.ts +7 -5
  92. package/dist/manifest-adapters/local-file-adapter.d.ts.map +1 -1
  93. package/dist/manifest-adapters/local-file-adapter.js +21 -26
  94. package/dist/manifest-adapters/local-file-adapter.js.map +1 -1
  95. package/dist/manifest-adapters/manifest-adapter.d.ts +2 -0
  96. package/dist/manifest-adapters/manifest-adapter.d.ts.map +1 -1
  97. package/dist/manifest-adapters/registry-adapter.d.ts.map +1 -1
  98. package/dist/manifest-adapters/registry-adapter.js +3 -1
  99. package/dist/manifest-adapters/registry-adapter.js.map +1 -1
  100. package/dist/manifest-schemas.d.ts +61 -25
  101. package/dist/manifest-schemas.d.ts.map +1 -1
  102. package/dist/manifest-schemas.js +56 -16
  103. package/dist/manifest-schemas.js.map +1 -1
  104. package/dist/resource-context.d.ts +2 -5
  105. package/dist/resource-context.d.ts.map +1 -1
  106. package/dist/resource-context.js +31 -21
  107. package/dist/resource-context.js.map +1 -1
  108. package/dist/schema-valiator.d.ts.map +1 -1
  109. package/dist/schema-valiator.js +13 -2
  110. package/dist/schema-valiator.js.map +1 -1
  111. package/package.json +6 -7
  112. package/src/controller-loader.ts +2 -1
  113. package/src/controller-registry.ts +11 -26
  114. package/src/controllers/module/import-controller.ts +30 -30
  115. package/src/controllers/module/module-controller.ts +0 -51
  116. package/src/controllers/resource-definition/resource-definition-controller.ts +14 -15
  117. package/src/controllers/resource-definition/resource-template-controller.ts +138 -0
  118. package/src/index.ts +1 -1
  119. package/src/kernel.ts +313 -224
  120. package/src/loader.ts +54 -165
  121. package/src/manifest-adapters/local-file-adapter.ts +24 -31
  122. package/src/manifest-adapters/manifest-adapter.ts +2 -0
  123. package/src/manifest-schemas.ts +60 -24
  124. package/src/resource-context.ts +31 -30
  125. package/src/schema-valiator.ts +14 -3
  126. package/src/capabilities/component.yaml +0 -4
  127. package/src/capabilities/executable.yaml +0 -8
  128. package/src/capabilities/handler.yaml +0 -4
  129. package/src/capabilities/listener.yaml +0 -4
  130. package/src/capabilities/provider.yaml +0 -4
  131. package/src/capabilities/template.yaml +0 -4
  132. package/src/capabilities/type.yaml +0 -4
  133. package/src/controllers/capability/capability-controller.ts +0 -41
  134. package/src/controllers/module/module.json +0 -48
  135. package/src/controllers/module/module.yaml +0 -32
  136. package/src/manifest-adapters/http-adapter.ts +0 -35
  137. package/src/manifest-adapters/registry-adapter.ts +0 -56
@@ -6,30 +6,70 @@ export const RuntimeResourceSchema = Type.Object({
6
6
  kind: Type.String(),
7
7
  metadata: Type.Object({ name: Type.String() }, { additionalProperties: true }),
8
8
  }, { additionalProperties: true });
9
- export const ResourceDefinitionSchema = Type.Object({
10
- kind: Type.Literal("Kernel.Definition"),
11
- metadata: Type.Object({
12
- name: Type.String(),
13
- module: Type.Optional(Type.String()),
14
- }, { additionalProperties: true }),
15
- schema: Type.Object({}, { additionalProperties: true }),
16
- capabilities: Type.Array(Type.String(), { minItems: 1 }),
17
- events: Type.Optional(Type.Array(Type.String())),
18
- controllers: Type.Optional(Type.Array(Type.String())),
19
- }, { additionalProperties: true });
9
+ const metadataSchema = {
10
+ type: "object",
11
+ required: ["name"],
12
+ properties: {
13
+ name: { type: "string" },
14
+ module: { type: "string" },
15
+ },
16
+ additionalProperties: true,
17
+ };
18
+ const baseDefinition = {
19
+ type: "object",
20
+ required: ["kind", "metadata"],
21
+ properties: {
22
+ kind: { const: "Kernel.Definition" },
23
+ metadata: metadataSchema,
24
+ capability: { type: "string" },
25
+ schema: { type: "object", additionalProperties: true },
26
+ controllers: { type: "array", items: { type: "string" } },
27
+ },
28
+ unevaluatedProperties: false,
29
+ };
30
+ const KNOWN_CAPABILITIES = [
31
+ "Kernel.Service",
32
+ "Kernel.Runnable",
33
+ "Kernel.Invocable",
34
+ "Kernel.Provider",
35
+ "Kernel.Type",
36
+ "Kernel.Mount",
37
+ ];
38
+ export const ResourceDefinitionSchema = {
39
+ ...baseDefinition,
40
+ oneOf: [
41
+ { required: ["capability"], properties: { capability: { const: "Kernel.Service" } } },
42
+ { required: ["capability"], properties: { capability: { const: "Kernel.Runnable" } } },
43
+ { required: ["capability"], properties: { capability: { const: "Kernel.Invocable" } } },
44
+ { required: ["capability"], properties: { capability: { const: "Kernel.Provider" } } },
45
+ { required: ["capability"], properties: { capability: { const: "Kernel.Type" } } },
46
+ {
47
+ required: ["capability"],
48
+ properties: {
49
+ capability: { const: "Kernel.Mount" },
50
+ },
51
+ },
52
+ // Unknown/absent capability: open schema for third-party extensibility
53
+ {
54
+ not: {
55
+ required: ["capability"],
56
+ properties: { capability: { enum: KNOWN_CAPABILITIES } },
57
+ },
58
+ unevaluatedProperties: true,
59
+ },
60
+ ],
61
+ };
20
62
  const ajv = new Ajv({ allErrors: true, strict: false });
21
63
  addFormats.default(ajv);
22
64
  export const validateRuntimeResource = ajv.compile(RuntimeResourceSchema);
23
65
  export const validateResourceDefinition = ajv.compile(ResourceDefinitionSchema);
24
66
  export function formatAjvErrors(errors) {
25
- if (!errors || errors.length === 0) {
67
+ if (!errors || errors.length === 0)
26
68
  return "Unknown schema error";
27
- }
28
69
  return errors
29
70
  .map((err) => {
30
- const path = err.instancePath && err.instancePath.length > 0 ? err.instancePath : "/";
31
- const message = err.message || "is invalid";
32
- return `${path} ${message}`;
71
+ const p = err.instancePath || "/";
72
+ return `${p} ${err.message ?? "is invalid"}`;
33
73
  })
34
74
  .join("; ");
35
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-schemas.js","sourceRoot":"","sources":["../src/manifest-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,SAA0B,MAAM,KAAK,CAAC;AAC7C,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC;AAE3C,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAC9C;IACE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;CAC/E,EACD,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC,MAAM,CACjD;IACE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC;IACvC,QAAQ,EAAE,IAAI,CAAC,MAAM,CACnB;QACE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;QACnB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;KACrC,EACD,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAC/B;IACD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;IACvD,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACxD,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAChD,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;CACtD,EACD,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAC/B,CAAC;AAEF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AACxD,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAExB,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAEhF,MAAM,UAAU,eAAe,CAAC,MAAwC;IACtE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,sBAAsB,CAAC;IAChC,CAAC;IACD,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;QACtF,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,YAAY,CAAC;QAC5C,OAAO,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;IAC9B,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"manifest-schemas.js","sourceRoot":"","sources":["../src/manifest-schemas.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export declare class ResourceContextImpl implements ResourceContext {
14
14
  registerSchema(name: string, schema: object): void;
15
15
  lookupSchema(name: string): object | undefined;
16
16
  validateSchema(value: any, schema: any): void;
17
- invoke(kind: string, name: string, ...args: any[]): Promise<any>;
17
+ invoke<TInputs>(kind: string, name: string, inputs: TInputs): Promise<any>;
18
18
  run(name: string): Promise<void>;
19
19
  registerManifest(resource: any): void;
20
20
  /**
@@ -36,16 +36,12 @@ export declare class ResourceContextImpl implements ResourceContext {
36
36
  getResourcesByName(_kind: string, name: string): RuntimeResource | null;
37
37
  registerController(moduleName: string, kindName: string, controllerInstance: any): Promise<void>;
38
38
  registerDefinition(def: any): void;
39
- registerCapability(name: string, schema?: Record<string, any>): void;
40
- isCapabilityRegistered(name: string): boolean;
41
- getCapabilitySchema(name: string): Record<string, any> | null | undefined;
42
39
  on(event: string, handler: (payload?: any) => void | Promise<void>): void;
43
40
  once(event: string, handler: (payload?: any) => void | Promise<void>): void;
44
41
  off(event: string, handler: (payload?: any) => void | Promise<void>): void;
45
42
  emit(event: string, payload?: any): Promise<void>;
46
43
  acquireHold(reason?: string): () => void;
47
44
  requestExit(code: number): void;
48
- evaluateCel(expression: string, context: Record<string, any>): unknown;
49
45
  expandValue(value: any, context: Record<string, any>): unknown;
50
46
  emitEvent(event: string, payload?: any): Promise<void>;
51
47
  registerModuleImport(alias: string, targetModule: string, kinds: string[]): void;
@@ -57,6 +53,7 @@ export declare class ResourceContextImpl implements ResourceContext {
57
53
  * call initializeChildContext() to initialize them in isolation.
58
54
  */
59
55
  spawnChildContext(): EvaluationContext;
56
+ transientChild(context: Record<string, any>): EvaluationContext;
60
57
  /**
61
58
  * Create a temporary child context, queue manifests on it, run a function,
62
59
  * then tear down the child context and its resources.
@@ -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":"AAAA,OAAO,EACL,iBAAiB,EACjB,aAAa,EAEb,eAAe,EAEf,eAAe,EAEhB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvD,qBAAa,mBAAoB,YAAW,eAAe;IAEvD,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,aAAa,EAAE,aAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAHjB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,EACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,SAAS,GAAE,eAAuC;IAGrE,KAAK,EAAE,MAAM,CAAC,cAAc,CAAiB;IAC7C,MAAM,EAAE,MAAM,CAAC,cAAc,CAAkB;IAC/C,MAAM,EAAE,MAAM,CAAC,cAAc,CAAkB;IAE/C,qBAAqB,CAAC,MAAM,EAAE,GAAG;IAOjC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAIlD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI9C,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;IA2BtC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAIpE,GAAG,CAAC,IAAI,EAAE,MAAM;IAItB,gBAAgB,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IAIrC;;;;;;;;;OASG;IACH,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAyCrF,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3D,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE;IAK7C,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAKjE,kBAAkB,CACtB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,kBAAkB,EAAE,GAAG,GACtB,OAAO,CAAC,IAAI,CAAC;IAIhB,kBAAkB,CAAC,GAAG,EAAE,GAAG;IAI3B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIzE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAI3E,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIpE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG;IAIvC,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,IAAI;IAIxC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI/B,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI9C,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG;IAI5C,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAKhF,kBAAkB,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI9E,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa;IAInD;;;;OAIG;IACH,iBAAiB,IAAI,iBAAiB;IAWtC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,iBAAiB;IAI/D;;;;;OAKG;IACH,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;CAiBnD"}
@@ -1,4 +1,4 @@
1
- import { EvaluationContext, NoopValidator, RuntimeError, } from "@telorun/sdk";
1
+ import { EvaluationContext, NoopValidator, RuntimeError, isCompiledValue, } from "@telorun/sdk";
2
2
  import AjvModule from "ajv";
3
3
  import addFormats from "ajv-formats";
4
4
  import { formatAjvErrors } from "./manifest-schemas.js";
@@ -27,8 +27,13 @@ export class ResourceContextImpl {
27
27
  return this.validator.getSchema(name);
28
28
  }
29
29
  validateSchema(value, schema) {
30
- const ajv = new Ajv();
30
+ const ajv = new Ajv({
31
+ removeAdditional: true,
32
+ });
31
33
  addFormats.default(ajv);
34
+ for (const kw of ["x-telo-ref", "x-telo-scope", "x-telo-context", "x-telo-schema-from"]) {
35
+ ajv.addKeyword(kw);
36
+ }
32
37
  const validate = ajv.compile("type" in schema && typeof schema.type === "string"
33
38
  ? schema
34
39
  : {
@@ -37,13 +42,13 @@ export class ResourceContextImpl {
37
42
  required: Object.keys(schema),
38
43
  additionalProperties: false,
39
44
  });
40
- const isValid = validate(value);
45
+ const isValid = validate(stripCompiledValues(value));
41
46
  if (!isValid) {
42
- throw new RuntimeError("ERR_INVALID_VALUE", `[${this.metadata.name}] Invalid value passed: ${JSON.stringify(value)}. Error: ${formatAjvErrors(validate.errors)}`);
47
+ throw new RuntimeError("ERR_INVALID_VALUE", `[${this.metadata.name}] Invalid value. Error: ${formatAjvErrors(validate.errors)}`);
43
48
  }
44
49
  }
45
- invoke(kind, name, ...args) {
46
- return this.moduleContext.invoke(kind, name, ...args);
50
+ invoke(kind, name, inputs) {
51
+ return this.moduleContext.invoke(kind, name, inputs);
47
52
  }
48
53
  async run(name) {
49
54
  await this.moduleContext.run(name);
@@ -75,7 +80,7 @@ export class ResourceContextImpl {
75
80
  `Unnamed${Math.random().toString(16).slice(2, 8)}`;
76
81
  // If resource has properties beyond kind/name, it's a definition - register it
77
82
  const definitionKeys = Object.keys(resource).filter((k) => k !== "kind" && k !== "name" && k !== "metadata");
78
- if (definitionKeys.length > 0) {
83
+ if (definitionKeys.length > 0 && !this.moduleContext.hasManifest(name)) {
79
84
  this.registerManifest({
80
85
  ...resource,
81
86
  metadata: {
@@ -109,15 +114,6 @@ export class ResourceContextImpl {
109
114
  registerDefinition(def) {
110
115
  this.kernel.registerResourceDefinition(def);
111
116
  }
112
- registerCapability(name, schema) {
113
- this.kernel.registerCapability(name, schema);
114
- }
115
- isCapabilityRegistered(name) {
116
- return this.kernel.isCapabilityRegistered(name);
117
- }
118
- getCapabilitySchema(name) {
119
- return this.kernel.getCapabilitySchema(name);
120
- }
121
117
  on(event, handler) {
122
118
  this.kernel.on(event, handler);
123
119
  }
@@ -136,11 +132,8 @@ export class ResourceContextImpl {
136
132
  requestExit(code) {
137
133
  this.kernel.requestExit(code);
138
134
  }
139
- evaluateCel(expression, context) {
140
- return new EvaluationContext(this.moduleContext.source, context, undefined, new Set(), this.emit).evaluate(expression);
141
- }
142
135
  expandValue(value, context) {
143
- return this.moduleContext.merge(context).expand(value);
136
+ return this.moduleContext.expandWith(value, context);
144
137
  }
145
138
  async emitEvent(event, payload) {
146
139
  await this.kernel.emitRuntimeEvent(event, payload);
@@ -164,6 +157,9 @@ export class ResourceContextImpl {
164
157
  const child = new EvaluationContext(this.moduleContext.source, this.moduleContext.context, this.moduleContext.createInstance, this.moduleContext.secretValues, this.moduleContext.emit);
165
158
  return this.moduleContext.spawnChild(child);
166
159
  }
160
+ transientChild(context) {
161
+ return this.moduleContext.transientChild(context);
162
+ }
167
163
  /**
168
164
  * Create a temporary child context, queue manifests on it, run a function,
169
165
  * then tear down the child context and its resources.
@@ -184,9 +180,23 @@ export class ResourceContextImpl {
184
180
  return await Promise.resolve(fn());
185
181
  }
186
182
  finally {
187
- await this.kernel.teardownContext(child);
183
+ await child.teardownResources();
188
184
  }
189
185
  })();
190
186
  }
191
187
  }
188
+ function stripCompiledValues(v) {
189
+ if (isCompiledValue(v))
190
+ return "";
191
+ if (Array.isArray(v))
192
+ return v.map(stripCompiledValues);
193
+ if (v !== null && typeof v === "object") {
194
+ const out = {};
195
+ for (const [k, val] of Object.entries(v)) {
196
+ out[k] = stripCompiledValues(val);
197
+ }
198
+ return out;
199
+ }
200
+ return v;
201
+ }
192
202
  //# sourceMappingURL=resource-context.js.map
@@ -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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema-valiator.d.ts","sourceRoot":"","sources":["../src/schema-valiator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgB,MAAM,cAAc,CAAC;AAO3D,qBAAa,eAAe;IAC1B,OAAO,CAAC,GAAG,CAA2B;;IAWtC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAM7C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3C,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,aAAa;CA2BpC"}
1
+ {"version":3,"file":"schema-valiator.d.ts","sourceRoot":"","sources":["../src/schema-valiator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgB,MAAM,cAAc,CAAC;AAO3D,qBAAa,eAAe;IAC1B,OAAO,CAAC,GAAG,CAA2B;;IAWtC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAM7C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3C,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,aAAa;CAsCpC"}
@@ -21,14 +21,25 @@ export class SchemaValidator {
21
21
  return this.ajv.getSchema(name);
22
22
  }
23
23
  compile(schema) {
24
- const validate = this.ajv.compile("type" in schema && typeof schema.type === "string"
24
+ const normalized = "type" in schema && typeof schema.type === "string"
25
25
  ? schema
26
26
  : {
27
27
  type: "object",
28
28
  properties: schema,
29
29
  required: Object.keys(schema),
30
30
  additionalProperties: false,
31
- });
31
+ };
32
+ const injected = normalized.additionalProperties === false
33
+ ? {
34
+ ...normalized,
35
+ properties: {
36
+ kind: { type: "string" },
37
+ metadata: { type: "object" },
38
+ ...normalized.properties,
39
+ },
40
+ }
41
+ : normalized;
42
+ const validate = this.ajv.compile(injected);
32
43
  return {
33
44
  validate: (data) => {
34
45
  const isValid = validate(data);
@@ -1 +1 @@
1
- {"version":3,"file":"schema-valiator.js","sourceRoot":"","sources":["../src/schema-valiator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,SAAS,MAAM,KAAK,CAAC;AAC5B,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC;AAE3C,MAAM,OAAO,eAAe;IAG1B;QACE,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC;YACjB,MAAM,EAAE,KAAK;YACb,gBAAgB,EAAE,KAAK;YACvB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,MAAc;QACpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAuB,CAAC;IACxD,CAAC;IAED,OAAO,CAAC,MAAW;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAC/B,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;QAEF,OAAO;YACL,QAAQ,EAAE,CAAC,IAAS,EAAE,EAAE;gBACtB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,IAAI,YAAY,CACpB,wBAAwB,EACxB,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAC5F,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO,EAAE,CAAC,IAAS,EAAE,EAAE;gBACrB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;SACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"schema-valiator.js","sourceRoot":"","sources":["../src/schema-valiator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,SAAS,MAAM,KAAK,CAAC;AAC5B,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC;AAE3C,MAAM,OAAO,eAAe;IAG1B;QACE,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC;YACjB,MAAM,EAAE,KAAK;YACb,gBAAgB,EAAE,KAAK;YACvB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,MAAc;QACpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAuB,CAAC;IACxD,CAAC;IAED,OAAO,CAAC,MAAW;QACjB,MAAM,UAAU,GACd,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,CAAC;QACR,MAAM,QAAQ,GACZ,UAAU,CAAC,oBAAoB,KAAK,KAAK;YACvC,CAAC,CAAC;gBACE,GAAG,UAAU;gBACb,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACxB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC5B,GAAG,UAAU,CAAC,UAAU;iBACzB;aACF;YACH,CAAC,CAAC,UAAU,CAAC;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE5C,OAAO;YACL,QAAQ,EAAE,CAAC,IAAS,EAAE,EAAE;gBACtB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,IAAI,YAAY,CACpB,wBAAwB,EACxB,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAC5F,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO,EAAE,CAAC,IAAS,EAAE,EAAE;gBACrB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;SACF,CAAC;IACJ,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telorun/kernel",
3
- "version": "0.2.5",
3
+ "version": "0.2.6",
4
4
  "description": "Telo Runtime - A lightweight, polyglot execution host.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -27,19 +27,18 @@
27
27
  "@sinclair/typebox": "^0.34.48",
28
28
  "ajv": "^8.17.1",
29
29
  "ajv-formats": "^3.0.1",
30
- "cel-js": "^0.8.2",
31
- "js-yaml": "^4.1.0",
30
+ "@marcbachmann/cel-js": "^7.5.3",
32
31
  "packageurl-js": "^2.0.1",
33
- "@telorun/sdk": "0.2.5",
34
- "@telorun/yaml-cel-templating": "1.0.2"
32
+ "@telorun/analyzer": "0.1.1",
33
+ "@telorun/sdk": "0.2.6",
34
+ "@telorun/yaml-cel-templating": "1.0.3"
35
35
  },
36
36
  "devDependencies": {
37
- "@types/js-yaml": "^4.0.5",
38
37
  "@types/node": "^20.0.0",
39
38
  "typescript": "^5.0.0"
40
39
  },
41
40
  "scripts": {
42
- "build": "tsc && cp -r src/capabilities dist/capabilities",
41
+ "build": "tsc",
43
42
  "dev": "tsc --watch"
44
43
  }
45
44
  }
@@ -39,7 +39,8 @@ export class ControllerLoader {
39
39
  const isLocalManifest =
40
40
  baseUri && !baseUri.startsWith("http://") && !baseUri.startsWith("https://");
41
41
  if (localPath && isLocalManifest) {
42
- const manifestDir = path.dirname(baseUri);
42
+ const baseUriPath = baseUri.startsWith("file://") ? baseUri.slice("file://".length) : baseUri;
43
+ const manifestDir = path.dirname(baseUriPath);
43
44
  const resolvedLocalPath = path.resolve(manifestDir, localPath);
44
45
  if (await this.pathExists(resolvedLocalPath)) {
45
46
  packageRoot = resolvedLocalPath;
@@ -9,20 +9,6 @@ export class ControllerRegistry {
9
9
  private controllersByKind: Map<string, ControllerInstance> = new Map();
10
10
  private definitionsByKind: Map<string, ResourceDefinition> = new Map();
11
11
  private controllerLoaders: Map<string, () => Promise<ControllerInstance>> = new Map();
12
- private capabilitySchemas: Map<string, Record<string, any> | null> = new Map();
13
-
14
- registerCapability(name: string, schema?: Record<string, any>): void {
15
- this.capabilitySchemas.set(name, schema ?? null);
16
- }
17
-
18
- isCapabilityRegistered(name: string): boolean {
19
- return this.capabilitySchemas.has(name);
20
- }
21
-
22
- getCapabilitySchema(name: string): Record<string, any> | null | undefined {
23
- return this.capabilitySchemas.get(name);
24
- }
25
-
26
12
  /**
27
13
  * Register a controller definition
28
14
  */
@@ -64,8 +50,10 @@ export class ControllerRegistry {
64
50
  // this.controllersByKind.set(kind, controller);
65
51
  // return controller;
66
52
  // }
67
-
68
- throw new Error(`No controller registered for kind: ${kind}`);
53
+ return {
54
+ schema: { type: "object", additionalProperties: false },
55
+ };
56
+ // throw new Error(`No controller registered for kind: ${kind}`);
69
57
  }
70
58
 
71
59
  /**
@@ -124,16 +112,13 @@ export class ControllerRegistry {
124
112
  }
125
113
  // Ensure controller has schema from definition
126
114
  const definition = this.definitionsByKind.get(kind);
127
- if (definition?.schema && !controller.schema) {
128
- // Wrap controller to add schema without mutating the original
129
- const wrappedController: ControllerInstance = {
130
- ...controller,
131
- schema: definition.schema,
132
- };
133
- this.controllersByKind.set(kind, wrappedController);
134
- } else {
135
- this.controllersByKind.set(kind, controller);
136
- }
115
+ const wrappedController: ControllerInstance = {
116
+ ...controller,
117
+ schema: controller.schema ?? definition?.schema,
118
+ inputSchema: controller.inputSchema,
119
+ outputSchema: controller.outputSchema,
120
+ };
121
+ this.controllersByKind.set(kind, wrappedController);
137
122
  }
138
123
 
139
124
  /**
@@ -1,20 +1,37 @@
1
+ import { DiagnosticSeverity, Loader, StaticAnalyzer } from "@telorun/analyzer";
1
2
  import type { ResourceContext, ResourceInstance } from "@telorun/sdk";
2
- import { EvaluationContext } from "@telorun/sdk";
3
- import { Loader } from "../../loader.js";
3
+ import { EvaluationContext, RuntimeError } from "@telorun/sdk";
4
+ import { LocalFileAdapter } from "../../manifest-adapters/local-file-adapter.js";
4
5
 
5
6
  export async function create(resource: any, ctx: ResourceContext): Promise<ResourceInstance> {
6
7
  const alias = resource.metadata.name as string;
7
- const declaringModule: string = resource.metadata.module ?? "default";
8
- const loader = new Loader();
8
+ const loader = new Loader([new LocalFileAdapter()]);
9
9
 
10
- // Load target module manifests. Inject variables/secrets as compile context so that
11
- // ${{ variables.x }} / ${{ secrets.y }} templates in the child module resolve correctly.
10
+ const moduleSource: string = resource.module ?? resource.source;
11
+
12
+ // Validate the imported module and all its transitive imports before loading for runtime.
13
+ // loadManifests() follows Kernel.Import chains so definitions from sub-imports are present,
14
+ // preventing false UNDEFINED_KIND errors for kinds that come from the module's own imports.
15
+ const resolvedUrl = new URL(moduleSource, ctx.moduleContext.source).toString();
16
+ const analysisManifests = await loader.loadManifests(resolvedUrl);
17
+ const diagnostics = new StaticAnalyzer().analyze(analysisManifests);
18
+ const errors = diagnostics.filter((d) => d.severity === DiagnosticSeverity.Error);
19
+ if (errors.length > 0) {
20
+ throw new RuntimeError(
21
+ "ERR_MANIFEST_VALIDATION_FAILED",
22
+ errors.map((d) => d.message).join("\n"),
23
+ );
24
+ }
25
+
26
+ // Load target module manifests for runtime. Inject variables/secrets as compile context so
27
+ // that ${{ variables.x }} / ${{ secrets.y }} templates in the child module resolve correctly.
12
28
  // No env — child modules are isolated from host environment.
13
- const manifests = await loader.loadManifest(resource.source as string, ctx.moduleContext.source, {
14
- // Potentially not needed
15
- variables: (resource.variables as Record<string, unknown>) ?? {},
16
- secrets: (resource.secrets as Record<string, unknown>) ?? {},
17
- });
29
+ const manifests = await loader.loadModule(
30
+ new URL(moduleSource, ctx.moduleContext.source).toString(),
31
+ {
32
+ compile: true,
33
+ },
34
+ );
18
35
  // Find the kind: Module manifest to learn the target module name and contract.
19
36
  const moduleManifest = manifests.find((m: any) => m.kind === "Kernel.Module");
20
37
  if (!moduleManifest) {
@@ -22,22 +39,6 @@ export async function create(resource: any, ctx: ResourceContext): Promise<Resou
22
39
  }
23
40
  const targetModule: string = moduleManifest.metadata.name;
24
41
 
25
- // Validate that every non-module manifest's metadata.module (when explicitly set)
26
- // matches the target module name. A mismatch means the author put the wrong module
27
- // name in a resource's metadata, which would silently give it an empty context and
28
- // produce a confusing CEL "Identifier not found" error at runtime.
29
- for (const manifest of manifests) {
30
- if (manifest.kind === "Kernel.Module") continue;
31
- const declaredModule: string | undefined = manifest.metadata?.module;
32
- if (declaredModule && declaredModule !== targetModule) {
33
- throw new Error(
34
- `Resource '${manifest.metadata?.name ?? "(unnamed)"}' (kind: ${manifest.kind}) inside module '${targetModule}' ` +
35
- `has metadata.module: '${declaredModule}', but the module is named '${targetModule}'. ` +
36
- `Update metadata.module to '${targetModule}'.`,
37
- );
38
- }
39
- }
40
-
41
42
  // Validate required inputs before injecting.
42
43
  validateRequiredInputs(moduleManifest.variables ?? {}, resource.variables ?? {}, "variables");
43
44
  validateRequiredInputs(moduleManifest.secrets ?? {}, resource.secrets ?? {}, "secrets");
@@ -82,8 +83,8 @@ export async function create(resource: any, ctx: ResourceContext): Promise<Resou
82
83
  // in the declaring module's evaluation context — no separate imports namespace needed.
83
84
  return {
84
85
  snapshot: () => ({
85
- variables: (resource.variables as Record<string, unknown>) ?? {},
86
- secrets: (resource.secrets as Record<string, unknown>) ?? {},
86
+ variables: ctx.expandValue(resource.variables, {}) ?? {},
87
+ secrets: ctx.expandValue(resource.secrets, {}) ?? {},
87
88
  }),
88
89
  run: async () => {
89
90
  // Proxy run to target module
@@ -128,7 +129,6 @@ export const schema = {
128
129
  type: "object",
129
130
  properties: {
130
131
  name: { type: "string" },
131
- source: { type: "string" },
132
132
  module: { type: "string" },
133
133
  },
134
134
  required: ["name"],
@@ -1,27 +1,6 @@
1
1
  import type { ResourceContext, ResourceInstance } from "@telorun/sdk";
2
- import { Loader } from "../../loader.js";
3
2
 
4
3
  export async function create(resource: any, ctx: ResourceContext): Promise<ResourceInstance> {
5
- const moduleName = resource.metadata.name as string;
6
- const loader = new Loader();
7
-
8
- for (const includePath of (resource.include as string[]) ?? []) {
9
- const manifests = await loader.loadManifest(
10
- includePath,
11
- resource.metadata.source as string,
12
- {},
13
- );
14
- for (const manifest of manifests) {
15
- if (manifest.kind === "Kernel.Module") {
16
- throw new Error(`Included file "${includePath}" must not declare kind: Module`);
17
- }
18
- if (!manifest.metadata.module) {
19
- manifest.metadata.module = moduleName;
20
- }
21
- ctx.registerManifest(manifest);
22
- }
23
- }
24
-
25
4
  return {
26
5
  run: async () => {
27
6
  for (const target of (resource.targets as string[]) ?? []) {
@@ -35,33 +14,3 @@ export async function create(resource: any, ctx: ResourceContext): Promise<Resou
35
14
  };
36
15
  }
37
16
 
38
- export const schema = {
39
- type: "object",
40
- properties: {
41
- kind: { type: "string" },
42
- metadata: {
43
- type: "object",
44
- properties: {
45
- name: { type: "string" },
46
- version: { type: "string" },
47
- source: { type: "string" },
48
- module: { type: "string" },
49
- },
50
- required: ["name"],
51
- additionalProperties: true,
52
- },
53
- include: { type: "array", items: { type: "string" } },
54
- variables: { type: "object" },
55
- secrets: { type: "object" },
56
- targets: { type: "array", items: { type: "string" } },
57
- exports: {
58
- type: "object",
59
- properties: {
60
- kinds: { type: "array", items: { type: "string" } },
61
- },
62
- additionalProperties: true,
63
- },
64
- },
65
- required: ["metadata"],
66
- additionalProperties: false,
67
- };