@relkit/compiler 0.0.0

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 (303) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/dist/config-loader-deployment.d.ts +7 -0
  4. package/dist/config-loader-deployment.d.ts.map +1 -0
  5. package/dist/config-loader-deployment.js +36 -0
  6. package/dist/config-loader-deployment.js.map +1 -0
  7. package/dist/config-loader-runtime.d.ts +30 -0
  8. package/dist/config-loader-runtime.d.ts.map +1 -0
  9. package/dist/config-loader-runtime.js +105 -0
  10. package/dist/config-loader-runtime.js.map +1 -0
  11. package/dist/config-loader-types.d.ts +107 -0
  12. package/dist/config-loader-types.d.ts.map +1 -0
  13. package/dist/config-loader-types.js +37 -0
  14. package/dist/config-loader-types.js.map +1 -0
  15. package/dist/config-loader-utils.d.ts +10 -0
  16. package/dist/config-loader-utils.d.ts.map +1 -0
  17. package/dist/config-loader-utils.js +88 -0
  18. package/dist/config-loader-utils.js.map +1 -0
  19. package/dist/config-loader.d.ts +12 -0
  20. package/dist/config-loader.d.ts.map +1 -0
  21. package/dist/config-loader.js +89 -0
  22. package/dist/config-loader.js.map +1 -0
  23. package/dist/context-registry.d.ts +7 -0
  24. package/dist/context-registry.d.ts.map +1 -0
  25. package/dist/context-registry.js +55 -0
  26. package/dist/context-registry.js.map +1 -0
  27. package/dist/conventions.d.ts +32 -0
  28. package/dist/conventions.d.ts.map +1 -0
  29. package/dist/conventions.js +125 -0
  30. package/dist/conventions.js.map +1 -0
  31. package/dist/discovery/ast-prefilter-utils.d.ts +4 -0
  32. package/dist/discovery/ast-prefilter-utils.d.ts.map +1 -0
  33. package/dist/discovery/ast-prefilter-utils.js +186 -0
  34. package/dist/discovery/ast-prefilter-utils.js.map +1 -0
  35. package/dist/discovery/ast-prefilter.d.ts +36 -0
  36. package/dist/discovery/ast-prefilter.d.ts.map +1 -0
  37. package/dist/discovery/ast-prefilter.js +33 -0
  38. package/dist/discovery/ast-prefilter.js.map +1 -0
  39. package/dist/discovery/data-model-isolation.d.ts +8 -0
  40. package/dist/discovery/data-model-isolation.d.ts.map +1 -0
  41. package/dist/discovery/data-model-isolation.js +52 -0
  42. package/dist/discovery/data-model-isolation.js.map +1 -0
  43. package/dist/discovery/evaluator-child-utils.d.ts +4 -0
  44. package/dist/discovery/evaluator-child-utils.d.ts.map +1 -0
  45. package/dist/discovery/evaluator-child-utils.js +48 -0
  46. package/dist/discovery/evaluator-child-utils.js.map +1 -0
  47. package/dist/discovery/evaluator-child.d.ts +2 -0
  48. package/dist/discovery/evaluator-child.d.ts.map +1 -0
  49. package/dist/discovery/evaluator-child.js +139 -0
  50. package/dist/discovery/evaluator-child.js.map +1 -0
  51. package/dist/discovery/evaluator-detector-files.d.ts +9 -0
  52. package/dist/discovery/evaluator-detector-files.d.ts.map +1 -0
  53. package/dist/discovery/evaluator-detector-files.js +105 -0
  54. package/dist/discovery/evaluator-detector-files.js.map +1 -0
  55. package/dist/discovery/evaluator-detector-network.d.ts +6 -0
  56. package/dist/discovery/evaluator-detector-network.d.ts.map +1 -0
  57. package/dist/discovery/evaluator-detector-network.js +109 -0
  58. package/dist/discovery/evaluator-detector-network.js.map +1 -0
  59. package/dist/discovery/evaluator-detector-timers.d.ts +9 -0
  60. package/dist/discovery/evaluator-detector-timers.d.ts.map +1 -0
  61. package/dist/discovery/evaluator-detector-timers.js +105 -0
  62. package/dist/discovery/evaluator-detector-timers.js.map +1 -0
  63. package/dist/discovery/evaluator-detectors.d.ts +18 -0
  64. package/dist/discovery/evaluator-detectors.d.ts.map +1 -0
  65. package/dist/discovery/evaluator-detectors.js +54 -0
  66. package/dist/discovery/evaluator-detectors.js.map +1 -0
  67. package/dist/discovery/evaluator-protocol.d.ts +94 -0
  68. package/dist/discovery/evaluator-protocol.d.ts.map +1 -0
  69. package/dist/discovery/evaluator-protocol.js +89 -0
  70. package/dist/discovery/evaluator-protocol.js.map +1 -0
  71. package/dist/discovery/evaluator-request.d.ts +18 -0
  72. package/dist/discovery/evaluator-request.d.ts.map +1 -0
  73. package/dist/discovery/evaluator-request.js +49 -0
  74. package/dist/discovery/evaluator-request.js.map +1 -0
  75. package/dist/discovery/evaluator-snapshot.d.ts +12 -0
  76. package/dist/discovery/evaluator-snapshot.d.ts.map +1 -0
  77. package/dist/discovery/evaluator-snapshot.js +87 -0
  78. package/dist/discovery/evaluator-snapshot.js.map +1 -0
  79. package/dist/discovery/evaluator.d.ts +8 -0
  80. package/dist/discovery/evaluator.d.ts.map +1 -0
  81. package/dist/discovery/evaluator.js +123 -0
  82. package/dist/discovery/evaluator.js.map +1 -0
  83. package/dist/discovery/extract.d.ts +21 -0
  84. package/dist/discovery/extract.d.ts.map +1 -0
  85. package/dist/discovery/extract.js +60 -0
  86. package/dist/discovery/extract.js.map +1 -0
  87. package/dist/discovery/source-facts-factory.d.ts +5 -0
  88. package/dist/discovery/source-facts-factory.d.ts.map +1 -0
  89. package/dist/discovery/source-facts-factory.js +109 -0
  90. package/dist/discovery/source-facts-factory.js.map +1 -0
  91. package/dist/discovery/source-facts-types.d.ts +52 -0
  92. package/dist/discovery/source-facts-types.d.ts.map +1 -0
  93. package/dist/discovery/source-facts-types.js +2 -0
  94. package/dist/discovery/source-facts-types.js.map +1 -0
  95. package/dist/discovery/source-facts.d.ts +6 -0
  96. package/dist/discovery/source-facts.d.ts.map +1 -0
  97. package/dist/discovery/source-facts.js +141 -0
  98. package/dist/discovery/source-facts.js.map +1 -0
  99. package/dist/discovery/source-id-route.d.ts +3 -0
  100. package/dist/discovery/source-id-route.d.ts.map +1 -0
  101. package/dist/discovery/source-id-route.js +61 -0
  102. package/dist/discovery/source-id-route.js.map +1 -0
  103. package/dist/discovery/source-id.d.ts +36 -0
  104. package/dist/discovery/source-id.d.ts.map +1 -0
  105. package/dist/discovery/source-id.js +146 -0
  106. package/dist/discovery/source-id.js.map +1 -0
  107. package/dist/discovery/source-map-utils.d.ts +10 -0
  108. package/dist/discovery/source-map-utils.d.ts.map +1 -0
  109. package/dist/discovery/source-map-utils.js +29 -0
  110. package/dist/discovery/source-map-utils.js.map +1 -0
  111. package/dist/discovery/source-map.d.ts +26 -0
  112. package/dist/discovery/source-map.d.ts.map +1 -0
  113. package/dist/discovery/source-map.js +119 -0
  114. package/dist/discovery/source-map.js.map +1 -0
  115. package/dist/event-registry.d.ts +9 -0
  116. package/dist/event-registry.d.ts.map +1 -0
  117. package/dist/event-registry.js +43 -0
  118. package/dist/event-registry.js.map +1 -0
  119. package/dist/generate-manifest-event.d.ts +5 -0
  120. package/dist/generate-manifest-event.d.ts.map +1 -0
  121. package/dist/generate-manifest-event.js +81 -0
  122. package/dist/generate-manifest-event.js.map +1 -0
  123. package/dist/generate-manifest-expressions.d.ts +12 -0
  124. package/dist/generate-manifest-expressions.d.ts.map +1 -0
  125. package/dist/generate-manifest-expressions.js +141 -0
  126. package/dist/generate-manifest-expressions.js.map +1 -0
  127. package/dist/generate-manifest-format.d.ts +4 -0
  128. package/dist/generate-manifest-format.d.ts.map +1 -0
  129. package/dist/generate-manifest-format.js +74 -0
  130. package/dist/generate-manifest-format.js.map +1 -0
  131. package/dist/generate-manifest-identities.d.ts +6 -0
  132. package/dist/generate-manifest-identities.d.ts.map +1 -0
  133. package/dist/generate-manifest-identities.js +115 -0
  134. package/dist/generate-manifest-identities.js.map +1 -0
  135. package/dist/generate-manifest-utils.d.ts +23 -0
  136. package/dist/generate-manifest-utils.d.ts.map +1 -0
  137. package/dist/generate-manifest-utils.js +125 -0
  138. package/dist/generate-manifest-utils.js.map +1 -0
  139. package/dist/generate-manifest.d.ts +30 -0
  140. package/dist/generate-manifest.d.ts.map +1 -0
  141. package/dist/generate-manifest.js +89 -0
  142. package/dist/generate-manifest.js.map +1 -0
  143. package/dist/generated-artifacts.d.ts +69 -0
  144. package/dist/generated-artifacts.d.ts.map +1 -0
  145. package/dist/generated-artifacts.js +124 -0
  146. package/dist/generated-artifacts.js.map +1 -0
  147. package/dist/index.d.ts +17 -0
  148. package/dist/index.d.ts.map +1 -0
  149. package/dist/index.js +17 -0
  150. package/dist/index.js.map +1 -0
  151. package/dist/middleware-coverage.d.ts +12 -0
  152. package/dist/middleware-coverage.d.ts.map +1 -0
  153. package/dist/middleware-coverage.js +90 -0
  154. package/dist/middleware-coverage.js.map +1 -0
  155. package/dist/normalize-compat.d.ts +26 -0
  156. package/dist/normalize-compat.d.ts.map +1 -0
  157. package/dist/normalize-compat.js +155 -0
  158. package/dist/normalize-compat.js.map +1 -0
  159. package/dist/normalize-event-listener.d.ts +11 -0
  160. package/dist/normalize-event-listener.d.ts.map +1 -0
  161. package/dist/normalize-event-listener.js +123 -0
  162. package/dist/normalize-event-listener.js.map +1 -0
  163. package/dist/normalize-event-validation.d.ts +4 -0
  164. package/dist/normalize-event-validation.d.ts.map +1 -0
  165. package/dist/normalize-event-validation.js +137 -0
  166. package/dist/normalize-event-validation.js.map +1 -0
  167. package/dist/normalize-generated-function.d.ts +10 -0
  168. package/dist/normalize-generated-function.d.ts.map +1 -0
  169. package/dist/normalize-generated-function.js +20 -0
  170. package/dist/normalize-generated-function.js.map +1 -0
  171. package/dist/normalize-graph-app.d.ts +8 -0
  172. package/dist/normalize-graph-app.d.ts.map +1 -0
  173. package/dist/normalize-graph-app.js +71 -0
  174. package/dist/normalize-graph-app.js.map +1 -0
  175. package/dist/normalize-graph-config.d.ts +5 -0
  176. package/dist/normalize-graph-config.d.ts.map +1 -0
  177. package/dist/normalize-graph-config.js +97 -0
  178. package/dist/normalize-graph-config.js.map +1 -0
  179. package/dist/normalize-graph-edges.d.ts +3 -0
  180. package/dist/normalize-graph-edges.d.ts.map +1 -0
  181. package/dist/normalize-graph-edges.js +139 -0
  182. package/dist/normalize-graph-edges.js.map +1 -0
  183. package/dist/normalize-graph-nodes.d.ts +3 -0
  184. package/dist/normalize-graph-nodes.d.ts.map +1 -0
  185. package/dist/normalize-graph-nodes.js +184 -0
  186. package/dist/normalize-graph-nodes.js.map +1 -0
  187. package/dist/normalize-graph-providers.d.ts +4 -0
  188. package/dist/normalize-graph-providers.d.ts.map +1 -0
  189. package/dist/normalize-graph-providers.js +63 -0
  190. package/dist/normalize-graph-providers.js.map +1 -0
  191. package/dist/normalize-graph-services.d.ts +2 -0
  192. package/dist/normalize-graph-services.d.ts.map +1 -0
  193. package/dist/normalize-graph-services.js +23 -0
  194. package/dist/normalize-graph-services.js.map +1 -0
  195. package/dist/normalize-graph-types.d.ts +26 -0
  196. package/dist/normalize-graph-types.d.ts.map +1 -0
  197. package/dist/normalize-graph-types.js +2 -0
  198. package/dist/normalize-graph-types.js.map +1 -0
  199. package/dist/normalize-graph-utils.d.ts +4 -0
  200. package/dist/normalize-graph-utils.d.ts.map +1 -0
  201. package/dist/normalize-graph-utils.js +29 -0
  202. package/dist/normalize-graph-utils.js.map +1 -0
  203. package/dist/normalize-graph.d.ts +4 -0
  204. package/dist/normalize-graph.d.ts.map +1 -0
  205. package/dist/normalize-graph.js +21 -0
  206. package/dist/normalize-graph.js.map +1 -0
  207. package/dist/normalize-http-validation.d.ts +8 -0
  208. package/dist/normalize-http-validation.d.ts.map +1 -0
  209. package/dist/normalize-http-validation.js +86 -0
  210. package/dist/normalize-http-validation.js.map +1 -0
  211. package/dist/normalize-identity-rewrite.d.ts +3 -0
  212. package/dist/normalize-identity-rewrite.d.ts.map +1 -0
  213. package/dist/normalize-identity-rewrite.js +30 -0
  214. package/dist/normalize-identity-rewrite.js.map +1 -0
  215. package/dist/normalize-job-validation.d.ts +3 -0
  216. package/dist/normalize-job-validation.d.ts.map +1 -0
  217. package/dist/normalize-job-validation.js +31 -0
  218. package/dist/normalize-job-validation.js.map +1 -0
  219. package/dist/normalize-model-selection.d.ts +17 -0
  220. package/dist/normalize-model-selection.d.ts.map +1 -0
  221. package/dist/normalize-model-selection.js +103 -0
  222. package/dist/normalize-model-selection.js.map +1 -0
  223. package/dist/normalize-output.d.ts +4 -0
  224. package/dist/normalize-output.d.ts.map +1 -0
  225. package/dist/normalize-output.js +42 -0
  226. package/dist/normalize-output.js.map +1 -0
  227. package/dist/normalize-pass-core.d.ts +9 -0
  228. package/dist/normalize-pass-core.d.ts.map +1 -0
  229. package/dist/normalize-pass-core.js +113 -0
  230. package/dist/normalize-pass-core.js.map +1 -0
  231. package/dist/normalize-pass-semantic.d.ts +11 -0
  232. package/dist/normalize-pass-semantic.d.ts.map +1 -0
  233. package/dist/normalize-pass-semantic.js +149 -0
  234. package/dist/normalize-pass-semantic.js.map +1 -0
  235. package/dist/normalize-pass-utils.d.ts +12 -0
  236. package/dist/normalize-pass-utils.d.ts.map +1 -0
  237. package/dist/normalize-pass-utils.js +116 -0
  238. package/dist/normalize-pass-utils.js.map +1 -0
  239. package/dist/normalize-passes.d.ts +3 -0
  240. package/dist/normalize-passes.d.ts.map +1 -0
  241. package/dist/normalize-passes.js +3 -0
  242. package/dist/normalize-passes.js.map +1 -0
  243. package/dist/normalize-provider-validation.d.ts +4 -0
  244. package/dist/normalize-provider-validation.d.ts.map +1 -0
  245. package/dist/normalize-provider-validation.js +34 -0
  246. package/dist/normalize-provider-validation.js.map +1 -0
  247. package/dist/normalize-public-types.d.ts +13 -0
  248. package/dist/normalize-public-types.d.ts.map +1 -0
  249. package/dist/normalize-public-types.js +2 -0
  250. package/dist/normalize-public-types.js.map +1 -0
  251. package/dist/normalize-rate-limit.d.ts +4 -0
  252. package/dist/normalize-rate-limit.d.ts.map +1 -0
  253. package/dist/normalize-rate-limit.js +35 -0
  254. package/dist/normalize-rate-limit.js.map +1 -0
  255. package/dist/normalize-reference-index.d.ts +6 -0
  256. package/dist/normalize-reference-index.d.ts.map +1 -0
  257. package/dist/normalize-reference-index.js +82 -0
  258. package/dist/normalize-reference-index.js.map +1 -0
  259. package/dist/normalize-reference-validation.d.ts +4 -0
  260. package/dist/normalize-reference-validation.d.ts.map +1 -0
  261. package/dist/normalize-reference-validation.js +88 -0
  262. package/dist/normalize-reference-validation.js.map +1 -0
  263. package/dist/normalize-route-file.d.ts +4 -0
  264. package/dist/normalize-route-file.d.ts.map +1 -0
  265. package/dist/normalize-route-file.js +41 -0
  266. package/dist/normalize-route-file.js.map +1 -0
  267. package/dist/normalize-route-inference.d.ts +4 -0
  268. package/dist/normalize-route-inference.d.ts.map +1 -0
  269. package/dist/normalize-route-inference.js +117 -0
  270. package/dist/normalize-route-inference.js.map +1 -0
  271. package/dist/normalize-schema-validation.d.ts +3 -0
  272. package/dist/normalize-schema-validation.d.ts.map +1 -0
  273. package/dist/normalize-schema-validation.js +50 -0
  274. package/dist/normalize-schema-validation.js.map +1 -0
  275. package/dist/normalize-source-identities.d.ts +3 -0
  276. package/dist/normalize-source-identities.d.ts.map +1 -0
  277. package/dist/normalize-source-identities.js +158 -0
  278. package/dist/normalize-source-identities.js.map +1 -0
  279. package/dist/normalize-types.d.ts +130 -0
  280. package/dist/normalize-types.d.ts.map +1 -0
  281. package/dist/normalize-types.js +99 -0
  282. package/dist/normalize-types.js.map +1 -0
  283. package/dist/normalize-utils.d.ts +24 -0
  284. package/dist/normalize-utils.d.ts.map +1 -0
  285. package/dist/normalize-utils.js +139 -0
  286. package/dist/normalize-utils.js.map +1 -0
  287. package/dist/normalize.d.ts +9 -0
  288. package/dist/normalize.d.ts.map +1 -0
  289. package/dist/normalize.js +106 -0
  290. package/dist/normalize.js.map +1 -0
  291. package/dist/project-typecheck.d.ts +4 -0
  292. package/dist/project-typecheck.d.ts.map +1 -0
  293. package/dist/project-typecheck.js +49 -0
  294. package/dist/project-typecheck.js.map +1 -0
  295. package/dist/route-file.d.ts +29 -0
  296. package/dist/route-file.d.ts.map +1 -0
  297. package/dist/route-file.js +97 -0
  298. package/dist/route-file.js.map +1 -0
  299. package/dist/watch.d.ts +27 -0
  300. package/dist/watch.d.ts.map +1 -0
  301. package/dist/watch.js +117 -0
  302. package/dist/watch.js.map +1 -0
  303. package/package.json +45 -0
@@ -0,0 +1,141 @@
1
+ import { normalizeSourcePath } from "@relkit/contracts";
2
+ import { isRecord, generatedAgentMarker, missingReference, } from "./generate-manifest-utils.js";
3
+ import { eventListenerExecutableExpression } from "./generate-manifest-event.js";
4
+ export function functionExpressionsFor(functions, functionById, bindings, input, diagnostics) {
5
+ const expressions = new Map();
6
+ for (const descriptor of functions) {
7
+ const listener = eventListenerExecutableExpression(descriptor, bindings, input, "handler");
8
+ if (listener !== undefined) {
9
+ expressions.set(descriptor.id, listener);
10
+ continue;
11
+ }
12
+ const generated = isGeneratedFunction(descriptor.value);
13
+ if (generated !== undefined) {
14
+ expressions.set(descriptor.id, `__relkit_createGeneratedAgentFunction(${JSON.stringify(generated.agentId)})`);
15
+ continue;
16
+ }
17
+ const reference = executableExpression(descriptor, "handler", bindings, input);
18
+ const liveHandler = isRecord(descriptor.value) && typeof descriptor.value.handler === "function";
19
+ if (reference !== undefined)
20
+ expressions.set(descriptor.id, reference);
21
+ else if (descriptor.reference === undefined && liveHandler)
22
+ expressions.set(descriptor.id, "undefined");
23
+ else
24
+ missingReference(diagnostics, descriptor, "function");
25
+ }
26
+ for (const id of functionById.keys())
27
+ if (!expressions.has(id))
28
+ expressions.set(id, "undefined");
29
+ return expressions;
30
+ }
31
+ export function functionTargetExpressionsFor(functions, bindings, input) {
32
+ const expressions = new Map();
33
+ for (const descriptor of functions) {
34
+ const listener = eventListenerExecutableExpression(descriptor, bindings, input, "target");
35
+ if (listener !== undefined) {
36
+ expressions.set(descriptor.id, listener);
37
+ continue;
38
+ }
39
+ const expression = executableExpression(descriptor, "descriptor", bindings, input);
40
+ if (expression !== undefined)
41
+ expressions.set(descriptor.id, expression);
42
+ }
43
+ return expressions;
44
+ }
45
+ export function applicationExpressionFor(descriptor, bindings, input) {
46
+ return descriptor === undefined
47
+ ? undefined
48
+ : executableExpression(descriptor, "descriptor", bindings, input);
49
+ }
50
+ export function descriptorExpressionsFor(descriptors, bindings, input) {
51
+ return new Map(descriptors.flatMap((descriptor) => {
52
+ const expression = executableExpression(descriptor, "descriptor", bindings, input);
53
+ return expression === undefined ? [] : [[descriptor.id, expression]];
54
+ }));
55
+ }
56
+ function isGeneratedFunction(value) {
57
+ if (!isRecord(value) || !isRecord(value.generated))
58
+ return undefined;
59
+ if (value.generated.generated !== true ||
60
+ value.generated.generatedBy !== "agent" ||
61
+ typeof value.generated.agentId !== "string" ||
62
+ typeof value.generated.functionId !== "string")
63
+ return undefined;
64
+ return value.generated;
65
+ }
66
+ export function transformExpressionsFor(transforms, bindings, input, diagnostics) {
67
+ const expressions = new Map();
68
+ for (const descriptor of transforms) {
69
+ const expression = executableExpression(descriptor, "schema", bindings, input);
70
+ const liveSchema = isExecutableSchema(descriptor.value);
71
+ if (expression !== undefined)
72
+ expressions.set(descriptor.id, expression);
73
+ else if (descriptor.reference === undefined && liveSchema)
74
+ expressions.set(descriptor.id, "undefined");
75
+ else
76
+ missingReference(diagnostics, descriptor, "transform");
77
+ }
78
+ return expressions;
79
+ }
80
+ export function middlewareExpressionsFor(middleware, bindings, input, diagnostics) {
81
+ const expressions = new Map();
82
+ for (const descriptor of middleware) {
83
+ const expression = executableExpression(descriptor, "descriptor", bindings, input);
84
+ if (expression !== undefined)
85
+ expressions.set(descriptor.id, expression);
86
+ else if (descriptor.reference === undefined &&
87
+ isExecutableProperty(descriptor.value, "handler"))
88
+ expressions.set(descriptor.id, "undefined");
89
+ else
90
+ missingReference(diagnostics, descriptor, "middleware");
91
+ }
92
+ return expressions;
93
+ }
94
+ export function hookExpressionsFor(descriptors, bindings, input) {
95
+ const expressions = new Map();
96
+ for (const descriptor of descriptors) {
97
+ if (descriptor.kind !== "function" && descriptor.kind !== "tool")
98
+ continue;
99
+ const target = executableExpression(descriptor, "descriptor", bindings, input);
100
+ for (const phase of ["before", "after"]) {
101
+ const property = phase === "before" ? "onBefore" : "onAfter";
102
+ if (!isExecutableProperty(descriptor.value, property))
103
+ continue;
104
+ expressions.set(`${descriptor.id}.${phase}`, target === undefined ? "undefined" : `${target}.${property}`);
105
+ }
106
+ }
107
+ return expressions;
108
+ }
109
+ function executableExpression(descriptor, property, bindings, input) {
110
+ const reference = descriptor.reference;
111
+ if (reference === undefined ||
112
+ reference.kind !== descriptor.kind ||
113
+ reference.descriptorId !== descriptor.id)
114
+ return undefined;
115
+ const module = modulePath(reference, input);
116
+ const binding = module === undefined ? undefined : bindings.get(module);
117
+ if (binding === undefined)
118
+ return undefined;
119
+ const value = `${binding.alias}[${JSON.stringify(reference.exportName)}]`;
120
+ return property === "descriptor" ? value : `${value}.${property}`;
121
+ }
122
+ function modulePath(reference, input) {
123
+ try {
124
+ return normalizeSourcePath(reference.module, input.projectRoot);
125
+ }
126
+ catch {
127
+ return undefined;
128
+ }
129
+ }
130
+ function isExecutableSchema(value) {
131
+ if (!isRecord(value) || !isRecord(value.schema) || !isRecord(value.schema["~standard"]))
132
+ return false;
133
+ return typeof value.schema["~standard"].validate === "function";
134
+ }
135
+ function isExecutableProperty(value, property) {
136
+ if (!isRecord(value))
137
+ return false;
138
+ const candidate = value[property];
139
+ return (typeof candidate === "function" || (isRecord(candidate) && candidate.$relkit === "function"));
140
+ }
141
+ //# sourceMappingURL=generate-manifest-expressions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-manifest-expressions.js","sourceRoot":"","sources":["../src/generate-manifest-expressions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ManifestGenerationInput } from "./generate-manifest.js";
2
+ import type { ImportBinding } from "./generate-manifest-utils.js";
3
+ export declare function renderManifest(input: ManifestGenerationInput, bindings: ReadonlyMap<string, ImportBinding>, functions: ReadonlyMap<string, string>, targets: ReadonlyMap<string, string>, middleware: ReadonlyMap<string, string>, hooks: ReadonlyMap<string, string>, transforms: ReadonlyMap<string, string>, providers: readonly string[], application?: string, agents?: ReadonlyMap<string, string>, tools?: ReadonlyMap<string, string>, routes?: ReadonlyMap<string, string>, constants?: ReadonlyMap<string, string>, prompts?: ReadonlyMap<string, string>, dataModel?: string, services?: ReadonlyMap<string, string>, identityBindings?: readonly string[]): string;
4
+ //# sourceMappingURL=generate-manifest-format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-manifest-format.d.ts","sourceRoot":"","sources":["../src/generate-manifest-format.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,wBAAgB,cAAc,CAC5B,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,EAC5C,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACtC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAa,EAC/C,KAAK,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAa,EAC9C,MAAM,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAa,EAC/C,SAAS,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAa,EAClD,OAAO,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAa,EAChD,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAa,EACjD,gBAAgB,GAAE,SAAS,MAAM,EAAO,GACvC,MAAM,CAqDR"}
@@ -0,0 +1,74 @@
1
+ import { GENERATOR_VERSION, MANIFEST_VERSION } from "@relkit/contracts";
2
+ export function renderManifest(input, bindings, functions, targets, middleware, hooks, transforms, providers, application, agents = new Map(), tools = new Map(), routes = new Map(), constants = new Map(), prompts = new Map(), dataModel, services = new Map(), identityBindings = []) {
3
+ const imports = [...bindings.values()]
4
+ .map(({ alias, module }) => `import * as ${alias} from ${JSON.stringify(importPath(module, input))};`)
5
+ .join("\n");
6
+ const generatedImports = [
7
+ identityBindings.length > 0
8
+ ? 'import { bindDescriptorIdentity as __relkit_bindDescriptorIdentity } from "@relkit/invocation";'
9
+ : "",
10
+ [...functions.values()].some((value) => value.startsWith("__relkit_createGeneratedAgentFunction("))
11
+ ? 'import { createGeneratedAgentFunction as __relkit_createGeneratedAgentFunction } from "@relkit/agents";'
12
+ : "",
13
+ [...targets.values()].some((value) => value.startsWith("__relkit_createEventListenerTarget("))
14
+ ? 'import { createEventListenerTarget as __relkit_createEventListenerTarget } from "@relkit/events";'
15
+ : "",
16
+ ]
17
+ .filter(Boolean)
18
+ .join("\n");
19
+ return [
20
+ [generatedImports, imports].filter(Boolean).join("\n"),
21
+ ...(generatedImports !== "" || imports !== "" ? [""] : []),
22
+ ...identityBindings,
23
+ ...(identityBindings.length > 0 ? [""] : []),
24
+ `export const manifestContractVersion = ${MANIFEST_VERSION} as const;`,
25
+ `export const manifestGeneratorVersion = ${GENERATOR_VERSION} as const;`,
26
+ `export const manifestGraphHash = ${JSON.stringify(input.graphHash)} as const;`,
27
+ `export const providerFactories = ${renderProviders(providers)} as const;`,
28
+ "export const runtimeManifest = {",
29
+ " contractVersion: manifestContractVersion,",
30
+ " generatorVersion: manifestGeneratorVersion,",
31
+ " graphHash: manifestGraphHash,",
32
+ ` functions: ${renderMap(functions)},`,
33
+ ` targets: ${renderMap(targets)},`,
34
+ ` agents: ${renderMap(agents)},`,
35
+ ` tools: ${renderMap(tools)},`,
36
+ ` routes: ${renderMap(routes)},`,
37
+ ` constants: ${renderMap(constants)},`,
38
+ ` prompts: ${renderMap(prompts)},`,
39
+ ...(dataModel === undefined ? [] : [` dataModel: ${dataModel},`]),
40
+ ` services: ${renderMap(services)},`,
41
+ " providers: providerFactories,",
42
+ " providerFactories,",
43
+ ` middleware: ${renderMap(middleware)},`,
44
+ ` hooks: ${renderMap(hooks)},`,
45
+ ` requestTransforms: ${renderMap(transforms)},`,
46
+ ...(application === undefined ? [] : [` application: ${application},`]),
47
+ "} as const;",
48
+ "",
49
+ ].join("\n");
50
+ }
51
+ function renderMap(values) {
52
+ const entries = [...values.entries()].sort(([left], [right]) => left.localeCompare(right));
53
+ return `{ ${entries.map(([key, value]) => `${JSON.stringify(key)}: ${value}`).join(", ")} }`;
54
+ }
55
+ function renderProviders(keys) {
56
+ return `{ ${keys
57
+ .map((key) => {
58
+ const separator = key.indexOf(":");
59
+ const capability = key.slice(0, separator);
60
+ const adapter = key.slice(separator + 1);
61
+ return `${JSON.stringify(key)}: { capability: ${JSON.stringify(capability)}, adapter: ${JSON.stringify(adapter)}, factory: undefined }`;
62
+ })
63
+ .join(", ")} }`;
64
+ }
65
+ function importPath(module, input) {
66
+ const generated = (input.generatedDirectory ?? ".relkit/generated")
67
+ .replaceAll("\\", "/")
68
+ .replace(/\/+$/, "");
69
+ const depth = generated.split("/").filter(Boolean).length;
70
+ const prefix = depth === 0 ? "" : "../".repeat(depth);
71
+ const path = `${prefix}${module}`;
72
+ return path.startsWith(".") ? path : `./${path}`;
73
+ }
74
+ //# sourceMappingURL=generate-manifest-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-manifest-format.js","sourceRoot":"","sources":["../src/generate-manifest-format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { ManifestGenerationInput } from "./generate-manifest.js";
2
+ import type { ImportBinding } from "./generate-manifest-utils.js";
3
+ import type { NormalizedDescriptor } from "./normalize-types.js";
4
+ /** Emits deterministic runtime bindings for imported descriptors and nested errors. */
5
+ export declare function identityBindingStatements(descriptors: readonly NormalizedDescriptor[], bindings: ReadonlyMap<string, ImportBinding>, input: ManifestGenerationInput): readonly string[];
6
+ //# sourceMappingURL=generate-manifest-identities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-manifest-identities.d.ts","sourceRoot":"","sources":["../src/generate-manifest-identities.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AASjE,uFAAuF;AACvF,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,SAAS,oBAAoB,EAAE,EAC5C,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,EAC5C,KAAK,EAAE,uBAAuB,GAC7B,SAAS,MAAM,EAAE,CA0BnB"}
@@ -0,0 +1,115 @@
1
+ import { normalizeSourcePath } from "@relkit/contracts";
2
+ /** Emits deterministic runtime bindings for imported descriptors and nested errors. */
3
+ export function identityBindingStatements(descriptors, bindings, input) {
4
+ const entries = descriptors.flatMap((descriptor) => descriptorBindings(descriptor, bindings, input));
5
+ const seen = new Set();
6
+ return Object.freeze(entries
7
+ .sort(compareBindings)
8
+ .filter((entry) => {
9
+ const key = `${entry.module}\0${entry.exportName}\0${pathKey(entry.path)}\0${entry.id}`;
10
+ if (seen.has(key))
11
+ return false;
12
+ seen.add(key);
13
+ return true;
14
+ })
15
+ .map((entry) => {
16
+ const binding = bindings.get(entry.module);
17
+ if (binding === undefined)
18
+ return "";
19
+ const root = `${binding.alias}[${JSON.stringify(entry.exportName)}]`;
20
+ const value = entry.path.reduce((expression, segment) => `${expression}[${JSON.stringify(segment)}]`, root);
21
+ return `__relkit_bindDescriptorIdentity(${value}, ${JSON.stringify(entry.id)});`;
22
+ })
23
+ .filter(Boolean));
24
+ }
25
+ function descriptorBindings(descriptor, bindings, input) {
26
+ if (isGeneratedEventListener(descriptor.value))
27
+ return [];
28
+ const reference = descriptor.reference;
29
+ if (reference === undefined)
30
+ return [];
31
+ const module = modulePath(reference.module, input);
32
+ if (module === undefined || bindings.has(module) === false)
33
+ return [];
34
+ const entries = [
35
+ {
36
+ module,
37
+ exportName: reference.exportName,
38
+ path: [],
39
+ id: descriptor.id,
40
+ },
41
+ ];
42
+ collectNested(descriptor.value, [], module, reference.exportName, entries, new Set());
43
+ return entries;
44
+ }
45
+ function collectNested(value, path, module, exportName, entries, active) {
46
+ if (Array.isArray(value)) {
47
+ if (active.has(value))
48
+ return;
49
+ active.add(value);
50
+ value.forEach((entry, index) => collectNested(entry, [...path, index], module, exportName, entries, active));
51
+ active.delete(value);
52
+ return;
53
+ }
54
+ if (!isObjectLike(value) || active.has(value))
55
+ return;
56
+ active.add(value);
57
+ if (path.length > 0) {
58
+ if (isIdentityRecord(value)) {
59
+ entries.push({ module, exportName, path, id: value.id });
60
+ }
61
+ else if (isFunctionTarget(value)) {
62
+ entries.push({ module, exportName, path, id: value.ref.id });
63
+ }
64
+ }
65
+ const record = value;
66
+ for (const key of Object.keys(record).sort()) {
67
+ collectNested(record[key], [...path, key], module, exportName, entries, active);
68
+ }
69
+ active.delete(value);
70
+ }
71
+ function isIdentityRecord(value) {
72
+ const candidate = value;
73
+ const ref = candidate.ref;
74
+ return (typeof candidate.kind === "string" &&
75
+ typeof candidate.id === "string" &&
76
+ isObjectLike(ref) &&
77
+ ref.kind === candidate.kind &&
78
+ ref.id === candidate.id);
79
+ }
80
+ function isFunctionTarget(value) {
81
+ const candidate = value;
82
+ const ref = candidate.ref;
83
+ return (!Object.hasOwn(candidate, "id") &&
84
+ isObjectLike(ref) &&
85
+ ref.kind === "function" &&
86
+ typeof ref.id === "string");
87
+ }
88
+ function isGeneratedEventListener(value) {
89
+ if (!isObjectLike(value))
90
+ return false;
91
+ const generated = value.generated;
92
+ return (isObjectLike(generated) &&
93
+ generated.generatedBy === "event-listener");
94
+ }
95
+ function isObjectLike(value) {
96
+ return value !== null && (typeof value === "object" || typeof value === "function");
97
+ }
98
+ function modulePath(module, input) {
99
+ try {
100
+ return normalizeSourcePath(module, input.projectRoot);
101
+ }
102
+ catch {
103
+ return undefined;
104
+ }
105
+ }
106
+ function compareBindings(left, right) {
107
+ return (left.module.localeCompare(right.module) ||
108
+ left.exportName.localeCompare(right.exportName) ||
109
+ pathKey(left.path).localeCompare(pathKey(right.path)) ||
110
+ left.id.localeCompare(right.id));
111
+ }
112
+ function pathKey(path) {
113
+ return path.map((segment) => String(segment)).join("\0");
114
+ }
115
+ //# sourceMappingURL=generate-manifest-identities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-manifest-identities.js","sourceRoot":"","sources":["../src/generate-manifest-identities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { type Diagnostic } from "@relkit/diagnostics";
2
+ import type { ManifestGenerationInput } from "./generate-manifest.js";
3
+ import type { NormalizedDescriptor } from "./normalize-types.js";
4
+ export interface ImportBinding {
5
+ readonly module: string;
6
+ readonly alias: string;
7
+ }
8
+ export declare function descriptorsOf(descriptors: readonly NormalizedDescriptor[], kind: string): readonly NormalizedDescriptor[];
9
+ export declare function generatedFunctionDescriptors(descriptors: readonly NormalizedDescriptor[]): readonly NormalizedDescriptor[];
10
+ export declare function uniqueById(descriptors: readonly NormalizedDescriptor[], diagnostics: Diagnostic[]): ReadonlyMap<string, NormalizedDescriptor>;
11
+ export declare function collectModules(functions: readonly NormalizedDescriptor[], middleware: readonly NormalizedDescriptor[], transforms: readonly NormalizedDescriptor[], input: ManifestGenerationInput, application?: NormalizedDescriptor, runtimeDescriptors?: readonly NormalizedDescriptor[]): readonly string[];
12
+ export declare function importBindings(modules: readonly string[]): ReadonlyMap<string, ImportBinding>;
13
+ export declare function providerFactoryKeys(descriptors: readonly NormalizedDescriptor[]): readonly string[];
14
+ export declare function referenceId(value: unknown): string | undefined;
15
+ export declare function missingReference(diagnostics: Diagnostic[], descriptor: NormalizedDescriptor | undefined, kind: string): void;
16
+ export declare function isRecord(value: unknown): value is Record<string, any>;
17
+ export declare function generatedAgentMarker(agentId: string): {
18
+ readonly generated: true;
19
+ readonly generatedBy: "agent";
20
+ readonly agentId: string;
21
+ readonly functionId: string;
22
+ };
23
+ //# sourceMappingURL=generate-manifest-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-manifest-utils.d.ts","sourceRoot":"","sources":["../src/generate-manifest-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGxE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAGjE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,aAAa,CAC3B,WAAW,EAAE,SAAS,oBAAoB,EAAE,EAC5C,IAAI,EAAE,MAAM,GACX,SAAS,oBAAoB,EAAE,CAEjC;AAED,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,SAAS,oBAAoB,EAAE,GAC3C,SAAS,oBAAoB,EAAE,CAYjC;AAYD,wBAAgB,UAAU,CACxB,WAAW,EAAE,SAAS,oBAAoB,EAAE,EAC5C,WAAW,EAAE,UAAU,EAAE,GACxB,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAoB3C;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,SAAS,oBAAoB,EAAE,EAC1C,UAAU,EAAE,SAAS,oBAAoB,EAAE,EAC3C,UAAU,EAAE,SAAS,oBAAoB,EAAE,EAC3C,KAAK,EAAE,uBAAuB,EAC9B,WAAW,CAAC,EAAE,oBAAoB,EAClC,kBAAkB,GAAE,SAAS,oBAAoB,EAAO,GACvD,SAAS,MAAM,EAAE,CAcnB;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAI7F;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,SAAS,oBAAoB,EAAE,GAC3C,SAAS,MAAM,EAAE,CAYnB;AAaD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAQ9D;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,UAAU,EAAE,EACzB,UAAU,EAAE,oBAAoB,GAAG,SAAS,EAC5C,IAAI,EAAE,MAAM,GACX,IAAI,CAiBN;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAErE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG;IACrD,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAOA"}
@@ -0,0 +1,125 @@
1
+ import { createDiagnostic } from "@relkit/diagnostics";
2
+ import { normalizeSourcePath } from "@relkit/contracts";
3
+ import { providerMaps } from "./normalize-graph-app.js";
4
+ export function descriptorsOf(descriptors, kind) {
5
+ return descriptors.filter((descriptor) => descriptor.kind === kind).sort(compareDescriptors);
6
+ }
7
+ export function generatedFunctionDescriptors(descriptors) {
8
+ return descriptorsOf(descriptors, "agent").map((descriptor) => {
9
+ const generated = generatedAgentMarker(descriptor.id);
10
+ return {
11
+ kind: "function",
12
+ id: generated.functionId,
13
+ source: descriptor.source,
14
+ exportName: `<generated:${descriptor.id}>`,
15
+ exportKind: "named",
16
+ value: { kind: "function", id: generated.functionId, generated },
17
+ };
18
+ });
19
+ }
20
+ function compareDescriptors(left, right) {
21
+ return (left.id.localeCompare(right.id) ||
22
+ left.source.file.localeCompare(right.source.file) ||
23
+ left.source.line - right.source.line ||
24
+ left.source.column - right.source.column ||
25
+ left.exportName.localeCompare(right.exportName));
26
+ }
27
+ export function uniqueById(descriptors, diagnostics) {
28
+ const result = new Map();
29
+ for (const descriptor of descriptors) {
30
+ const previous = result.get(descriptor.id);
31
+ if (previous !== undefined) {
32
+ diagnostics.push(createDiagnostic({
33
+ code: "RELKIT_DUPLICATE_ID",
34
+ severity: "error",
35
+ message: `Duplicate function ID "${descriptor.id}" cannot be registered twice.`,
36
+ descriptorId: descriptor.id,
37
+ location: descriptor.source,
38
+ related: [{ ...previous.source, descriptorId: previous.id }],
39
+ }));
40
+ continue;
41
+ }
42
+ result.set(descriptor.id, descriptor);
43
+ }
44
+ return result;
45
+ }
46
+ export function collectModules(functions, middleware, transforms, input, application, runtimeDescriptors = []) {
47
+ const modules = new Set();
48
+ const add = (descriptor) => {
49
+ const reference = descriptor?.reference;
50
+ if (reference === undefined)
51
+ return;
52
+ const module = modulePath(reference, input);
53
+ if (module !== undefined)
54
+ modules.add(module);
55
+ };
56
+ functions.forEach(add);
57
+ transforms.forEach(add);
58
+ middleware.forEach(add);
59
+ add(application);
60
+ runtimeDescriptors.forEach(add);
61
+ return [...modules].sort();
62
+ }
63
+ export function importBindings(modules) {
64
+ return new Map(modules.map((module, index) => [module, { module, alias: `__relkit_module_${index}` }]));
65
+ }
66
+ export function providerFactoryKeys(descriptors) {
67
+ const keys = new Set();
68
+ const app = descriptors.find((descriptor) => descriptor.kind === "app");
69
+ const value = app && isRecord(app.value) ? app.value : {};
70
+ for (const [capability, profiles] of providerMaps(value)) {
71
+ if (!isRecord(profiles))
72
+ continue;
73
+ for (const binding of Object.values(profiles)) {
74
+ const adapter = isRecord(binding) && isRecord(binding.adapter) ? binding.adapter : {};
75
+ if (typeof adapter.adapter === "string")
76
+ keys.add(`${capability}:${adapter.adapter}`);
77
+ }
78
+ }
79
+ return [...keys].sort();
80
+ }
81
+ function modulePath(reference, input) {
82
+ try {
83
+ return normalizeSourcePath(reference.module, input.projectRoot);
84
+ }
85
+ catch {
86
+ return undefined;
87
+ }
88
+ }
89
+ export function referenceId(value) {
90
+ return isRecord(value) &&
91
+ isRecord(value.target) &&
92
+ isRecord(value.target.ref) &&
93
+ value.target.ref.kind === "function" &&
94
+ typeof value.target.ref.id === "string"
95
+ ? value.target.ref.id
96
+ : undefined;
97
+ }
98
+ export function missingReference(diagnostics, descriptor, kind) {
99
+ if (descriptor === undefined)
100
+ return;
101
+ const code = kind === "function"
102
+ ? "RELKIT_MANIFEST_HANDLER_MISSING"
103
+ : kind === "transform"
104
+ ? "RELKIT_MANIFEST_TRANSFORM_MISSING"
105
+ : "RELKIT_MANIFEST_MIDDLEWARE_MISSING";
106
+ diagnostics.push(createDiagnostic({
107
+ code,
108
+ severity: "error",
109
+ message: `Manifest ${kind} "${descriptor.id}" has no executable reference.`,
110
+ descriptorId: descriptor.id,
111
+ location: descriptor.source,
112
+ }));
113
+ }
114
+ export function isRecord(value) {
115
+ return value !== null && typeof value === "object" && !Array.isArray(value);
116
+ }
117
+ export function generatedAgentMarker(agentId) {
118
+ return {
119
+ generated: true,
120
+ generatedBy: "agent",
121
+ agentId,
122
+ functionId: `relkit.agent.${agentId}.invoke`,
123
+ };
124
+ }
125
+ //# sourceMappingURL=generate-manifest-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-manifest-utils.js","sourceRoot":"","sources":["../src/generate-manifest-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { type Diagnostic } from "@relkit/diagnostics";
2
+ import type { NormalizedDescriptor, NormalizedGraph } from "./normalize-types.js";
3
+ import { type ImportBinding } from "./generate-manifest-utils.js";
4
+ export declare const MANIFEST_CODES: Readonly<{
5
+ handler: "RELKIT_MANIFEST_HANDLER_MISSING";
6
+ middleware: "RELKIT_MANIFEST_MIDDLEWARE_MISSING";
7
+ transform: "RELKIT_MANIFEST_TRANSFORM_MISSING";
8
+ mismatch: "RELKIT_GRAPH_MANIFEST_MISMATCH";
9
+ }>;
10
+ export interface ManifestGenerationInput {
11
+ readonly graph?: NormalizedGraph;
12
+ readonly graphHash: string;
13
+ readonly descriptors: readonly NormalizedDescriptor[];
14
+ readonly middleware?: readonly NormalizedDescriptor[];
15
+ readonly transforms?: readonly NormalizedDescriptor[];
16
+ readonly diagnostics?: readonly Diagnostic[];
17
+ readonly projectRoot?: string;
18
+ readonly generatedDirectory?: string;
19
+ }
20
+ export interface GeneratedManifest {
21
+ readonly source: string;
22
+ readonly diagnostics: readonly Diagnostic[];
23
+ readonly activatable: boolean;
24
+ }
25
+ /** Generates the executable manifest source after graph and semantic validation. */
26
+ export declare function generateManifest(input: ManifestGenerationInput): GeneratedManifest;
27
+ export declare const MANIFEST_CONTRACT_VERSION: 5;
28
+ export declare const MANIFEST_GENERATOR_VERSION: 2;
29
+ export type { ImportBinding };
30
+ //# sourceMappingURL=generate-manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-manifest.d.ts","sourceRoot":"","sources":["../src/generate-manifest.ts"],"names":[],"mappings":"AACA,OAAO,EAAqC,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEzF,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAC;AAatC,eAAO,MAAM,cAAc;;;;;EAKzB,CAAC;AAEH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACtD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,uBAAuB,GAAG,iBAAiB,CAsGlF;AAcD,eAAO,MAAM,yBAAyB,GAAmB,CAAC;AAC1D,eAAO,MAAM,0BAA0B,GAAoB,CAAC;AAM5D,YAAY,EAAE,aAAa,EAAE,CAAC"}