@telorun/kernel 0.2.4

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 (122) hide show
  1. package/LICENSE +17 -0
  2. package/dist/boot-context-registry.d.ts +47 -0
  3. package/dist/boot-context-registry.d.ts.map +1 -0
  4. package/dist/boot-context-registry.js +131 -0
  5. package/dist/boot-context-registry.js.map +1 -0
  6. package/dist/capabilities/capabilities/component.yaml +3 -0
  7. package/dist/capabilities/capabilities/executable.yaml +7 -0
  8. package/dist/capabilities/capabilities/handler.yaml +3 -0
  9. package/dist/capabilities/capabilities/listener.yaml +3 -0
  10. package/dist/capabilities/capabilities/provider.yaml +3 -0
  11. package/dist/capabilities/capabilities/template.yaml +3 -0
  12. package/dist/capabilities/capabilities/type.yaml +3 -0
  13. package/dist/capabilities/component.yaml +3 -0
  14. package/dist/capabilities/executable.yaml +7 -0
  15. package/dist/capabilities/handler.yaml +3 -0
  16. package/dist/capabilities/listener.yaml +3 -0
  17. package/dist/capabilities/provider.yaml +3 -0
  18. package/dist/capabilities/template.yaml +3 -0
  19. package/dist/capabilities/type.yaml +3 -0
  20. package/dist/cli.d.ts +3 -0
  21. package/dist/cli.d.ts.map +1 -0
  22. package/dist/cli.js +109 -0
  23. package/dist/cli.js.map +1 -0
  24. package/dist/controller-loader.d.ts +24 -0
  25. package/dist/controller-loader.d.ts.map +1 -0
  26. package/dist/controller-loader.js +265 -0
  27. package/dist/controller-loader.js.map +1 -0
  28. package/dist/controller-registry.d.ts +56 -0
  29. package/dist/controller-registry.d.ts.map +1 -0
  30. package/dist/controller-registry.js +169 -0
  31. package/dist/controller-registry.js.map +1 -0
  32. package/dist/controllers/capability/capability-controller.d.ts +37 -0
  33. package/dist/controllers/capability/capability-controller.d.ts.map +1 -0
  34. package/dist/controllers/capability/capability-controller.js +30 -0
  35. package/dist/controllers/capability/capability-controller.js.map +1 -0
  36. package/dist/controllers/module/module-controller.d.ts +16 -0
  37. package/dist/controllers/module/module-controller.d.ts.map +1 -0
  38. package/dist/controllers/module/module-controller.js +95 -0
  39. package/dist/controllers/module/module-controller.js.map +1 -0
  40. package/dist/controllers/module/module.json +48 -0
  41. package/dist/controllers/resource-definition/resource-definition-controller.d.ts +33 -0
  42. package/dist/controllers/resource-definition/resource-definition-controller.d.ts.map +1 -0
  43. package/dist/controllers/resource-definition/resource-definition-controller.js +44 -0
  44. package/dist/controllers/resource-definition/resource-definition-controller.js.map +1 -0
  45. package/dist/event-stream.d.ts +45 -0
  46. package/dist/event-stream.d.ts.map +1 -0
  47. package/dist/event-stream.js +98 -0
  48. package/dist/event-stream.js.map +1 -0
  49. package/dist/events.d.ts +13 -0
  50. package/dist/events.d.ts.map +1 -0
  51. package/dist/events.js +89 -0
  52. package/dist/events.js.map +1 -0
  53. package/dist/expressions.d.ts +20 -0
  54. package/dist/expressions.d.ts.map +1 -0
  55. package/dist/expressions.js +253 -0
  56. package/dist/expressions.js.map +1 -0
  57. package/dist/index.d.ts +10 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +9 -0
  60. package/dist/index.js.map +1 -0
  61. package/dist/kernel.d.ts +113 -0
  62. package/dist/kernel.d.ts.map +1 -0
  63. package/dist/kernel.js +558 -0
  64. package/dist/kernel.js.map +1 -0
  65. package/dist/loader.d.ts +17 -0
  66. package/dist/loader.d.ts.map +1 -0
  67. package/dist/loader.js +189 -0
  68. package/dist/loader.js.map +1 -0
  69. package/dist/manifest-adapters/http-adapter.d.ts +8 -0
  70. package/dist/manifest-adapters/http-adapter.d.ts.map +1 -0
  71. package/dist/manifest-adapters/http-adapter.js +29 -0
  72. package/dist/manifest-adapters/http-adapter.js.map +1 -0
  73. package/dist/manifest-adapters/local-file-adapter.d.ts +11 -0
  74. package/dist/manifest-adapters/local-file-adapter.d.ts.map +1 -0
  75. package/dist/manifest-adapters/local-file-adapter.js +51 -0
  76. package/dist/manifest-adapters/local-file-adapter.js.map +1 -0
  77. package/dist/manifest-adapters/manifest-adapter.d.ts +33 -0
  78. package/dist/manifest-adapters/manifest-adapter.d.ts.map +1 -0
  79. package/dist/manifest-adapters/manifest-adapter.js +2 -0
  80. package/dist/manifest-adapters/manifest-adapter.js.map +1 -0
  81. package/dist/manifest-adapters/registry-adapter.d.ts +9 -0
  82. package/dist/manifest-adapters/registry-adapter.d.ts.map +1 -0
  83. package/dist/manifest-adapters/registry-adapter.js +46 -0
  84. package/dist/manifest-adapters/registry-adapter.js.map +1 -0
  85. package/dist/manifest-schemas.d.ts +66 -0
  86. package/dist/manifest-schemas.d.ts.map +1 -0
  87. package/dist/manifest-schemas.js +55 -0
  88. package/dist/manifest-schemas.js.map +1 -0
  89. package/dist/registry.d.ts +41 -0
  90. package/dist/registry.d.ts.map +1 -0
  91. package/dist/registry.js +122 -0
  92. package/dist/registry.js.map +1 -0
  93. package/dist/resource-context.d.ts +48 -0
  94. package/dist/resource-context.d.ts.map +1 -0
  95. package/dist/resource-context.js +146 -0
  96. package/dist/resource-context.js.map +1 -0
  97. package/dist/resource-uri.d.ts +80 -0
  98. package/dist/resource-uri.d.ts.map +1 -0
  99. package/dist/resource-uri.js +160 -0
  100. package/dist/resource-uri.js.map +1 -0
  101. package/dist/schema-valiator.d.ts +9 -0
  102. package/dist/schema-valiator.d.ts.map +1 -0
  103. package/dist/schema-valiator.js +43 -0
  104. package/dist/schema-valiator.js.map +1 -0
  105. package/dist/snapshot-serializer.d.ts +63 -0
  106. package/dist/snapshot-serializer.d.ts.map +1 -0
  107. package/dist/snapshot-serializer.js +164 -0
  108. package/dist/snapshot-serializer.js.map +1 -0
  109. package/dist/src/controllers/module/module.yaml +32 -0
  110. package/dist/template-definition.d.ts +38 -0
  111. package/dist/template-definition.d.ts.map +1 -0
  112. package/dist/template-definition.js +26 -0
  113. package/dist/template-definition.js.map +1 -0
  114. package/dist/template-expander.d.ts +19 -0
  115. package/dist/template-expander.d.ts.map +1 -0
  116. package/dist/template-expander.js +425 -0
  117. package/dist/template-expander.js.map +1 -0
  118. package/dist/types.d.ts +62 -0
  119. package/dist/types.d.ts.map +1 -0
  120. package/dist/types.js +8 -0
  121. package/dist/types.js.map +1 -0
  122. package/package.json +42 -0
@@ -0,0 +1,253 @@
1
+ import { evaluate } from "cel-js";
2
+ const TEMPLATE_REGEX = /\$\{\{\s*([^}]+?)\s*\}\}/g;
3
+ const EXACT_TEMPLATE_REGEX = /^\s*\$\{\{\s*([^}]+?)\s*\}\}\s*$/;
4
+ export function evaluateCel(expression, context) {
5
+ return evaluate(expression, context);
6
+ }
7
+ export function expandValue(value, context) {
8
+ if (typeof value === "string") {
9
+ return expandString(value, context);
10
+ }
11
+ if (Array.isArray(value)) {
12
+ return value.map((entry) => expandValue(entry, context));
13
+ }
14
+ if (!value || typeof value !== "object") {
15
+ return value;
16
+ }
17
+ const resolved = {};
18
+ for (const [key, entry] of Object.entries(value)) {
19
+ resolved[key] = expandValue(entry, context);
20
+ }
21
+ return resolved;
22
+ }
23
+ export function resolveExpressionsInRegistry(registry, runtimeConfig) {
24
+ const maxPasses = 5;
25
+ for (let pass = 0; pass < maxPasses; pass += 1) {
26
+ const context = buildEvaluationContext(registry, runtimeConfig);
27
+ let changed = false;
28
+ for (const [kind, resourcesByName] of registry.entries()) {
29
+ for (const [name, resource] of resourcesByName.entries()) {
30
+ const { value, updated } = resolveResource(resource, context, {
31
+ kind,
32
+ name,
33
+ });
34
+ if (updated) {
35
+ resourcesByName.set(name, value);
36
+ changed = true;
37
+ }
38
+ }
39
+ }
40
+ if (!changed) {
41
+ break;
42
+ }
43
+ }
44
+ }
45
+ function buildEvaluationContext(registry, runtimeConfig) {
46
+ // Whitelist environment variables
47
+ const allowedEnvVars = ["NODE_ENV", "PORT", "HOST", "PATH", "HOME", "USER", "LANG"];
48
+ const env = {};
49
+ for (const key of allowedEnvVars) {
50
+ if (process.env[key] !== undefined) {
51
+ env[key] = process.env[key];
52
+ }
53
+ }
54
+ const context = { env };
55
+ const modules = {};
56
+ if (runtimeConfig?.name) {
57
+ const moduleEntry = {
58
+ name: runtimeConfig.name,
59
+ version: runtimeConfig.version,
60
+ };
61
+ modules[runtimeConfig.name] = moduleEntry;
62
+ const alias = capitalize(runtimeConfig.name);
63
+ if (alias && alias !== runtimeConfig.name) {
64
+ modules[alias] = moduleEntry;
65
+ }
66
+ }
67
+ context.Namespace = modules;
68
+ for (const [kind, resourcesByName] of registry.entries()) {
69
+ const kindBucket = {};
70
+ for (const [name, resource] of resourcesByName.entries()) {
71
+ kindBucket[name] = resource;
72
+ }
73
+ const parts = kind.split(".").filter(Boolean);
74
+ if (parts.length <= 1) {
75
+ context[kind] = kindBucket;
76
+ continue;
77
+ }
78
+ let cursor = context;
79
+ for (let i = 0; i < parts.length - 1; i += 1) {
80
+ const part = parts[i];
81
+ if (!cursor[part] || typeof cursor[part] !== "object") {
82
+ cursor[part] = {};
83
+ }
84
+ cursor = cursor[part];
85
+ }
86
+ cursor[parts[parts.length - 1]] = kindBucket;
87
+ }
88
+ return context;
89
+ }
90
+ function resolveResource(resource, context, id) {
91
+ const { value, updated } = resolveValue(resource, context, id, {
92
+ isRoot: true,
93
+ });
94
+ return { value: value, updated };
95
+ }
96
+ function resolveValue(value, context, id, options) {
97
+ if (typeof value === "string") {
98
+ return resolveString(value, context, id);
99
+ }
100
+ if (Array.isArray(value)) {
101
+ let changed = false;
102
+ const resolved = value.map((entry) => {
103
+ const result = resolveValue(entry, context, id);
104
+ if (result.updated) {
105
+ changed = true;
106
+ }
107
+ return result.value;
108
+ });
109
+ return { value: changed ? resolved : value, updated: changed };
110
+ }
111
+ if (!value || typeof value !== "object") {
112
+ return { value, updated: false };
113
+ }
114
+ let changed = false;
115
+ const resolved = {};
116
+ for (const [key, entry] of Object.entries(value)) {
117
+ if (options?.isRoot && key === "kind") {
118
+ resolved[key] = entry;
119
+ continue;
120
+ }
121
+ if (options?.isMetadata && key === "name") {
122
+ resolved[key] = entry;
123
+ continue;
124
+ }
125
+ if (options?.isRoot && key === "metadata" && entry && typeof entry === "object") {
126
+ const result = resolveValue(entry, context, id, { isMetadata: true });
127
+ resolved[key] = result.value;
128
+ if (result.updated) {
129
+ changed = true;
130
+ }
131
+ continue;
132
+ }
133
+ const result = resolveValue(entry, context, id);
134
+ resolved[key] = result.value;
135
+ if (result.updated) {
136
+ changed = true;
137
+ }
138
+ }
139
+ return { value: changed ? resolved : value, updated: changed };
140
+ }
141
+ function resolveString(value, context, id) {
142
+ if (!value.includes("${{")) {
143
+ return { value, updated: false };
144
+ }
145
+ const exact = value.match(EXACT_TEMPLATE_REGEX);
146
+ if (exact) {
147
+ const expr = exact[1];
148
+ const evaluated = evaluateExpression(expr, context, id);
149
+ if (evaluated.deferred) {
150
+ return { value, updated: false };
151
+ }
152
+ return { value: evaluated.value, updated: true };
153
+ }
154
+ let replaced = value;
155
+ replaced = replaced.replace(TEMPLATE_REGEX, (_match, expr) => {
156
+ const evaluated = evaluateExpression(expr, context, id);
157
+ if (evaluated.deferred) {
158
+ return _match;
159
+ }
160
+ if (evaluated.value === null || evaluated.value === undefined) {
161
+ return "";
162
+ }
163
+ return String(evaluated.value);
164
+ });
165
+ return { value: replaced, updated: replaced !== value };
166
+ }
167
+ function expandString(value, context) {
168
+ if (!value.includes("${{")) {
169
+ return value;
170
+ }
171
+ const exact = value.match(EXACT_TEMPLATE_REGEX);
172
+ if (exact) {
173
+ return evaluateCelWithError(exact[1], context, {
174
+ kind: "Value",
175
+ name: "expand",
176
+ });
177
+ }
178
+ return value.replace(TEMPLATE_REGEX, (_match, expr) => {
179
+ const evaluated = evaluateCelWithError(expr, context, {
180
+ kind: "Value",
181
+ name: "expand",
182
+ });
183
+ if (evaluated === null || evaluated === undefined) {
184
+ return "";
185
+ }
186
+ return String(evaluated);
187
+ });
188
+ }
189
+ function evaluateExpression(expr, context, id) {
190
+ try {
191
+ return { value: evaluateCelWithError(expr, context, id), deferred: false };
192
+ }
193
+ catch (error) {
194
+ const message = error instanceof Error ? error.message : String(error);
195
+ if (isDeferredExpressionError(message, expr)) {
196
+ return { deferred: true };
197
+ }
198
+ throw new Error(`CEL evaluation failed for ${id.kind}.${id.name}: "${expr}": ${message}`);
199
+ }
200
+ }
201
+ function capitalize(value) {
202
+ if (!value) {
203
+ return value;
204
+ }
205
+ return value[0].toUpperCase() + value.slice(1);
206
+ }
207
+ function isDeferredExpressionError(message, expr) {
208
+ const trimmed = expr.trim();
209
+ const deferredRoots = ["request.", "result."];
210
+ if (!deferredRoots.some((root) => trimmed.startsWith(root))) {
211
+ return false;
212
+ }
213
+ return message.includes('Identifier "') && message.includes("not found");
214
+ }
215
+ /**
216
+ * Resolve all non-deferred CEL expressions in a resource manifest using the
217
+ * provided boot context. Expressions referencing `request.*` or `result.*` are
218
+ * left untouched — they will be resolved at request time by the runtime.
219
+ *
220
+ * Missing identifiers that are not deferred prefixes will throw, which is
221
+ * intentional: if a consumer's manifest references a boot-context identifier
222
+ * that is absent from the context, it is a configuration error.
223
+ *
224
+ * @param manifest - The raw (pre-creation) ResourceManifest
225
+ * @param context - CEL evaluation context built by BootContextRegistry.buildContext()
226
+ * @returns A new manifest object with all resolvable `${{ }}` templates replaced
227
+ */
228
+ export function resolveManifestWithContext(manifest, context) {
229
+ const id = {
230
+ kind: manifest.kind,
231
+ name: manifest.metadata?.name ?? '(unknown)',
232
+ };
233
+ const { value } = resolveValue(manifest, context, id, { isRoot: true });
234
+ return value;
235
+ }
236
+ function evaluateCelWithError(expr, context, id) {
237
+ try {
238
+ return evaluateCel(expr, context);
239
+ }
240
+ catch (error) {
241
+ const message = error instanceof Error ? error.message : String(error);
242
+ // Build helpful context information
243
+ const availableVars = Object.keys(context)
244
+ .filter((k) => k !== "env")
245
+ .concat(context.env ? Object.keys(context.env).map((k) => `env.${k}`) : [])
246
+ .sort();
247
+ throw new Error(`CEL evaluation failed for resource ${id.kind}.${id.name}\n` +
248
+ `Expression: "${expr}"\n` +
249
+ `Error: ${message}\n` +
250
+ `Available variables: ${availableVars.slice(0, 20).join(", ")}${availableVars.length > 20 ? "..." : ""}`);
251
+ }
252
+ }
253
+ //# sourceMappingURL=expressions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressions.js","sourceRoot":"","sources":["../src/expressions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export { ControllerRegistry } from "./controller-registry.js";
2
+ export { EventStream } from "./event-stream.js";
3
+ export { Kernel } from "./kernel.js";
4
+ export { Loader } from "./loader.js";
5
+ export { ManifestRegistry as Registry } from "./registry.js";
6
+ export { ResourceURI } from "./resource-uri.js";
7
+ export { SnapshotSerializer } from "./snapshot-serializer.js";
8
+ export { RuntimeError } from "./types.js";
9
+ export type { ControllerDefinition, ControllerInstance, ExecContext, Kernel as IKernel, KernelContext, ResourceDefinition } from "./types.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EACR,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACX,MAAM,IAAI,OAAO,EACjB,aAAa,EACb,kBAAkB,EACrB,MAAM,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ export { ControllerRegistry } from "./controller-registry.js";
2
+ export { EventStream } from "./event-stream.js";
3
+ export { Kernel } from "./kernel.js";
4
+ export { Loader } from "./loader.js";
5
+ export { ManifestRegistry as Registry } from "./registry.js";
6
+ export { ResourceURI } from "./resource-uri.js";
7
+ export { SnapshotSerializer } from "./snapshot-serializer.js";
8
+ export { RuntimeError } from "./types.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,113 @@
1
+ import { RuntimeEvent, RuntimeResource } from "@telorun/sdk";
2
+ import { EventStream } from "./event-stream.js";
3
+ import { Kernel as IKernel, ResourceDefinition, ResourceManifest } from "./types.js";
4
+ /**
5
+ * Kernel: Central orchestrator managing lifecycle and message bus
6
+ * Handles resource loading, initialization, and execution through controllers
7
+ */
8
+ export declare class Kernel implements IKernel {
9
+ private loader;
10
+ private initializationQueue;
11
+ private controllers;
12
+ private eventBus;
13
+ private eventStream;
14
+ private resourceInstances;
15
+ private resourceEventBuses;
16
+ private resourceChildren;
17
+ private holdCount;
18
+ private idleResolvers;
19
+ private _exitCode;
20
+ private bootContextRegistry;
21
+ private readonly sharedSchemaValidator;
22
+ constructor();
23
+ /**
24
+ * Register a resource dynamically during initialization
25
+ */
26
+ registerManifest(resource: ResourceManifest): void;
27
+ /**
28
+ * Register a child resource and track the parent-child relationship for cascade teardown
29
+ */
30
+ registerChildManifest(parentKey: string, resource: ResourceManifest): void;
31
+ /**
32
+ * Tear down a single resource and cascade to its children first
33
+ */
34
+ teardownResource(module: string, kind: string, name: string): Promise<void>;
35
+ registerController(moduleName: string, kindName: string, controllerInstance: any): Promise<void>;
36
+ /**
37
+ * Register a resource definition with the controller registry
38
+ */
39
+ registerResourceDefinition(definition: ResourceDefinition): void;
40
+ registerCapability(name: string, schema?: Record<string, any>): void;
41
+ isCapabilityRegistered(name: string): boolean;
42
+ getCapabilitySchema(name: string): Record<string, any> | null | undefined;
43
+ /**
44
+ * Load built-in Runtime definitions (e.g., Runtime.Module)
45
+ */
46
+ private loadBuiltinDefinitions;
47
+ /**
48
+ * Load from runtime configuration file
49
+ */
50
+ loadFromConfig(runtimeYamlPath: string): Promise<void>;
51
+ /**
52
+ * Phase 1: Load - Ingest files from directory and load runtime config
53
+ * @deprecated Use loadFromConfig instead
54
+ */
55
+ loadDirectory(dirPath: string): Promise<void>;
56
+ /**
57
+ * Phase 2: Start - Initialize resources
58
+ */
59
+ start(): Promise<void>;
60
+ runInstances(): Promise<void>;
61
+ emitRuntimeEvent(event: string, payload?: any): Promise<void>;
62
+ get exitCode(): number;
63
+ requestExit(code: number): void;
64
+ acquireHold(reason?: string): () => void;
65
+ waitForIdle(): Promise<void>;
66
+ /**
67
+ * Force-resolve waitForIdle() regardless of active holds.
68
+ * Used for graceful shutdown when external signals (e.g. SIGINT) should
69
+ * bypass resource holds and proceed directly to teardown.
70
+ */
71
+ shutdown(): void;
72
+ hasEventHandlers(event: string): boolean;
73
+ hasResourceInstances(): boolean;
74
+ teardownResources(): Promise<void>;
75
+ on(event: string, handler: (event: RuntimeEvent) => void | Promise<void>): void;
76
+ private createControllerContext;
77
+ private createResourceContext;
78
+ getResourcesByKind(kind: string): RuntimeResource[];
79
+ getResourceByName(module: string, kind: string, name: string): RuntimeResource | null;
80
+ /**
81
+ * Returns the unique set of local file paths from which resources were loaded.
82
+ * HTTP/HTTPS sources are excluded — they cannot be watched on disk.
83
+ */
84
+ getSourceFiles(): string[];
85
+ /**
86
+ * Reload all resources that were loaded from the given source file.
87
+ * Safe order: parse first → if parse succeeds, tear down old → init new → run new only.
88
+ */
89
+ reloadSource(sourcePath: string): Promise<void>;
90
+ private initializeResources;
91
+ invoke(module: string, kind: string, name: string, ...args: any[]): Promise<any>;
92
+ private getResourceKey;
93
+ /**
94
+ * Enable event streaming to a file (JSONL format)
95
+ */
96
+ enableEventStream(filePath: string): Promise<void>;
97
+ /**
98
+ * Disable event streaming
99
+ */
100
+ disableEventStream(): void;
101
+ /**
102
+ * Get the event stream for testing and inspection
103
+ */
104
+ getEventStream(): EventStream;
105
+ /**
106
+ * Take a snapshot of current runtime state
107
+ */
108
+ /**
109
+ * Setup event streaming hook to capture all events
110
+ */
111
+ private setupEventStreaming;
112
+ }
113
+ //# sourceMappingURL=kernel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../src/kernel.ts"],"names":[],"mappings":"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"}