@x12i/graphenix-executable-format 1.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 (252) hide show
  1. package/README.md +341 -0
  2. package/dist/adapter/build-graph-execution-request-from-studio-execute.d.ts +6 -0
  3. package/dist/adapter/build-graph-execution-request-from-studio-execute.d.ts.map +1 -0
  4. package/dist/adapter/build-graph-execution-request-from-studio-execute.js +41 -0
  5. package/dist/adapter/build-graph-execution-request-from-studio-execute.js.map +1 -0
  6. package/dist/api.d.ts +36 -0
  7. package/dist/api.d.ts.map +1 -0
  8. package/dist/api.js +99 -0
  9. package/dist/api.js.map +1 -0
  10. package/dist/case-condition/allowed-paths.d.ts +4 -0
  11. package/dist/case-condition/allowed-paths.d.ts.map +1 -0
  12. package/dist/case-condition/allowed-paths.js +74 -0
  13. package/dist/case-condition/allowed-paths.js.map +1 -0
  14. package/dist/case-condition/evaluate-case-condition.d.ts +4 -0
  15. package/dist/case-condition/evaluate-case-condition.d.ts.map +1 -0
  16. package/dist/case-condition/evaluate-case-condition.js +106 -0
  17. package/dist/case-condition/evaluate-case-condition.js.map +1 -0
  18. package/dist/case-condition/select-graph-model-case.d.ts +6 -0
  19. package/dist/case-condition/select-graph-model-case.d.ts.map +1 -0
  20. package/dist/case-condition/select-graph-model-case.js +40 -0
  21. package/dist/case-condition/select-graph-model-case.js.map +1 -0
  22. package/dist/case-condition/select-node-model-case.d.ts +4 -0
  23. package/dist/case-condition/select-node-model-case.d.ts.map +1 -0
  24. package/dist/case-condition/select-node-model-case.js +34 -0
  25. package/dist/case-condition/select-node-model-case.js.map +1 -0
  26. package/dist/case-condition/validate-case-condition.d.ts +5 -0
  27. package/dist/case-condition/validate-case-condition.d.ts.map +1 -0
  28. package/dist/case-condition/validate-case-condition.js +118 -0
  29. package/dist/case-condition/validate-case-condition.js.map +1 -0
  30. package/dist/compile/build-node-execution-units.d.ts +6 -0
  31. package/dist/compile/build-node-execution-units.d.ts.map +1 -0
  32. package/dist/compile/build-node-execution-units.js +77 -0
  33. package/dist/compile/build-node-execution-units.js.map +1 -0
  34. package/dist/compile/compile-executable-plan.d.ts +5 -0
  35. package/dist/compile/compile-executable-plan.d.ts.map +1 -0
  36. package/dist/compile/compile-executable-plan.js +142 -0
  37. package/dist/compile/compile-executable-plan.js.map +1 -0
  38. package/dist/constants.d.ts +12 -0
  39. package/dist/constants.d.ts.map +1 -0
  40. package/dist/constants.js +19 -0
  41. package/dist/constants.js.map +1 -0
  42. package/dist/explain/explain-executable-graph-error.d.ts +4 -0
  43. package/dist/explain/explain-executable-graph-error.d.ts.map +1 -0
  44. package/dist/explain/explain-executable-graph-error.js +14 -0
  45. package/dist/explain/explain-executable-graph-error.js.map +1 -0
  46. package/dist/explain/explain-node-inheritance.d.ts +3 -0
  47. package/dist/explain/explain-node-inheritance.d.ts.map +1 -0
  48. package/dist/explain/explain-node-inheritance.js +41 -0
  49. package/dist/explain/explain-node-inheritance.js.map +1 -0
  50. package/dist/fixtures/minimal-executable-graph.d.ts +4 -0
  51. package/dist/fixtures/minimal-executable-graph.d.ts.map +1 -0
  52. package/dist/fixtures/minimal-executable-graph.js +170 -0
  53. package/dist/fixtures/minimal-executable-graph.js.map +1 -0
  54. package/dist/helpers/add-finalizer-node.d.ts +5 -0
  55. package/dist/helpers/add-finalizer-node.d.ts.map +1 -0
  56. package/dist/helpers/add-finalizer-node.js +13 -0
  57. package/dist/helpers/add-finalizer-node.js.map +1 -0
  58. package/dist/helpers/add-task-node.d.ts +5 -0
  59. package/dist/helpers/add-task-node.d.ts.map +1 -0
  60. package/dist/helpers/add-task-node.js +13 -0
  61. package/dist/helpers/add-task-node.js.map +1 -0
  62. package/dist/helpers/connect-task-to-task.d.ts +10 -0
  63. package/dist/helpers/connect-task-to-task.d.ts.map +1 -0
  64. package/dist/helpers/connect-task-to-task.js +23 -0
  65. package/dist/helpers/connect-task-to-task.js.map +1 -0
  66. package/dist/helpers/set-graph-model-config.d.ts +5 -0
  67. package/dist/helpers/set-graph-model-config.d.ts.map +1 -0
  68. package/dist/helpers/set-graph-model-config.js +30 -0
  69. package/dist/helpers/set-graph-model-config.js.map +1 -0
  70. package/dist/helpers/set-node-model-config.d.ts +5 -0
  71. package/dist/helpers/set-node-model-config.d.ts.map +1 -0
  72. package/dist/helpers/set-node-model-config.js +25 -0
  73. package/dist/helpers/set-node-model-config.js.map +1 -0
  74. package/dist/index.d.ts +2 -0
  75. package/dist/index.d.ts.map +1 -0
  76. package/dist/index.js +18 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/internal/hash.d.ts +4 -0
  79. package/dist/internal/hash.d.ts.map +1 -0
  80. package/dist/internal/hash.js +26 -0
  81. package/dist/internal/hash.js.map +1 -0
  82. package/dist/internal/utils.d.ts +16 -0
  83. package/dist/internal/utils.d.ts.map +1 -0
  84. package/dist/internal/utils.js +80 -0
  85. package/dist/internal/utils.js.map +1 -0
  86. package/dist/migration/migrate-legacy-graph-model-object.d.ts +4 -0
  87. package/dist/migration/migrate-legacy-graph-model-object.d.ts.map +1 -0
  88. package/dist/migration/migrate-legacy-graph-model-object.js +217 -0
  89. package/dist/migration/migrate-legacy-graph-model-object.js.map +1 -0
  90. package/dist/normalize/normalize-executable-graph.d.ts +3 -0
  91. package/dist/normalize/normalize-executable-graph.d.ts.map +1 -0
  92. package/dist/normalize/normalize-executable-graph.js +34 -0
  93. package/dist/normalize/normalize-executable-graph.js.map +1 -0
  94. package/dist/normalize/normalize-model-config.d.ts +4 -0
  95. package/dist/normalize/normalize-model-config.d.ts.map +1 -0
  96. package/dist/normalize/normalize-model-config.js +64 -0
  97. package/dist/normalize/normalize-model-config.js.map +1 -0
  98. package/dist/profile-choice/known-profile-choices.d.ts +10 -0
  99. package/dist/profile-choice/known-profile-choices.d.ts.map +1 -0
  100. package/dist/profile-choice/known-profile-choices.js +19 -0
  101. package/dist/profile-choice/known-profile-choices.js.map +1 -0
  102. package/dist/profile-choice/validate-profile-choice.d.ts +8 -0
  103. package/dist/profile-choice/validate-profile-choice.d.ts.map +1 -0
  104. package/dist/profile-choice/validate-profile-choice.js +55 -0
  105. package/dist/profile-choice/validate-profile-choice.js.map +1 -0
  106. package/dist/resolution/build-deterministic-case-context.d.ts +9 -0
  107. package/dist/resolution/build-deterministic-case-context.d.ts.map +1 -0
  108. package/dist/resolution/build-deterministic-case-context.js +26 -0
  109. package/dist/resolution/build-deterministic-case-context.js.map +1 -0
  110. package/dist/resolution/resolve-graph-model-config.d.ts +12 -0
  111. package/dist/resolution/resolve-graph-model-config.d.ts.map +1 -0
  112. package/dist/resolution/resolve-graph-model-config.js +28 -0
  113. package/dist/resolution/resolve-graph-model-config.js.map +1 -0
  114. package/dist/resolution/resolve-node-ai-plan.d.ts +7 -0
  115. package/dist/resolution/resolve-node-ai-plan.d.ts.map +1 -0
  116. package/dist/resolution/resolve-node-ai-plan.js +64 -0
  117. package/dist/resolution/resolve-node-ai-plan.js.map +1 -0
  118. package/dist/resolution/resolve-node-model-config.d.ts +15 -0
  119. package/dist/resolution/resolve-node-model-config.d.ts.map +1 -0
  120. package/dist/resolution/resolve-node-model-config.js +37 -0
  121. package/dist/resolution/resolve-node-model-config.js.map +1 -0
  122. package/dist/resolution/resolve-node-model-slot.d.ts +7 -0
  123. package/dist/resolution/resolve-node-model-slot.d.ts.map +1 -0
  124. package/dist/resolution/resolve-node-model-slot.js +65 -0
  125. package/dist/resolution/resolve-node-model-slot.js.map +1 -0
  126. package/dist/test/executable-format.test.d.ts +2 -0
  127. package/dist/test/executable-format.test.d.ts.map +1 -0
  128. package/dist/test/executable-format.test.js +844 -0
  129. package/dist/test/executable-format.test.js.map +1 -0
  130. package/dist/trace/append-execution-event.d.ts +5 -0
  131. package/dist/trace/append-execution-event.d.ts.map +1 -0
  132. package/dist/trace/append-execution-event.js +9 -0
  133. package/dist/trace/append-execution-event.js.map +1 -0
  134. package/dist/trace/create-execution-trace.d.ts +5 -0
  135. package/dist/trace/create-execution-trace.d.ts.map +1 -0
  136. package/dist/trace/create-execution-trace.js +56 -0
  137. package/dist/trace/create-execution-trace.js.map +1 -0
  138. package/dist/types/case-condition.d.ts +50 -0
  139. package/dist/types/case-condition.d.ts.map +1 -0
  140. package/dist/types/case-condition.js +3 -0
  141. package/dist/types/case-condition.js.map +1 -0
  142. package/dist/types/errors.d.ts +16 -0
  143. package/dist/types/errors.d.ts.map +1 -0
  144. package/dist/types/errors.js +3 -0
  145. package/dist/types/errors.js.map +1 -0
  146. package/dist/types/executable-graph.d.ts +19 -0
  147. package/dist/types/executable-graph.d.ts.map +1 -0
  148. package/dist/types/executable-graph.js +3 -0
  149. package/dist/types/executable-graph.js.map +1 -0
  150. package/dist/types/executable-nodes.d.ts +54 -0
  151. package/dist/types/executable-nodes.d.ts.map +1 -0
  152. package/dist/types/executable-nodes.js +3 -0
  153. package/dist/types/executable-nodes.js.map +1 -0
  154. package/dist/types/executable-plan.d.ts +78 -0
  155. package/dist/types/executable-plan.d.ts.map +1 -0
  156. package/dist/types/executable-plan.js +5 -0
  157. package/dist/types/executable-plan.js.map +1 -0
  158. package/dist/types/executable-profile.d.ts +18 -0
  159. package/dist/types/executable-profile.d.ts.map +1 -0
  160. package/dist/types/executable-profile.js +3 -0
  161. package/dist/types/executable-profile.js.map +1 -0
  162. package/dist/types/execution-trace.d.ts +278 -0
  163. package/dist/types/execution-trace.d.ts.map +1 -0
  164. package/dist/types/execution-trace.js +5 -0
  165. package/dist/types/execution-trace.js.map +1 -0
  166. package/dist/types/execution-unit.d.ts +19 -0
  167. package/dist/types/execution-unit.d.ts.map +1 -0
  168. package/dist/types/execution-unit.js +3 -0
  169. package/dist/types/execution-unit.js.map +1 -0
  170. package/dist/types/index.d.ts +16 -0
  171. package/dist/types/index.d.ts.map +1 -0
  172. package/dist/types/index.js +8 -0
  173. package/dist/types/index.js.map +1 -0
  174. package/dist/types/legacy.d.ts +21 -0
  175. package/dist/types/legacy.d.ts.map +1 -0
  176. package/dist/types/legacy.js +3 -0
  177. package/dist/types/legacy.js.map +1 -0
  178. package/dist/types/model-config.d.ts +80 -0
  179. package/dist/types/model-config.d.ts.map +1 -0
  180. package/dist/types/model-config.js +3 -0
  181. package/dist/types/model-config.js.map +1 -0
  182. package/dist/types/resolution.d.ts +55 -0
  183. package/dist/types/resolution.d.ts.map +1 -0
  184. package/dist/types/resolution.js +3 -0
  185. package/dist/types/resolution.js.map +1 -0
  186. package/dist/types/runtime.d.ts +19 -0
  187. package/dist/types/runtime.d.ts.map +1 -0
  188. package/dist/types/runtime.js +3 -0
  189. package/dist/types/runtime.js.map +1 -0
  190. package/dist/types/studio-execute.d.ts +25 -0
  191. package/dist/types/studio-execute.d.ts.map +1 -0
  192. package/dist/types/studio-execute.js +3 -0
  193. package/dist/types/studio-execute.js.map +1 -0
  194. package/dist/validators/assert-executable-graph.d.ts +3 -0
  195. package/dist/validators/assert-executable-graph.d.ts.map +1 -0
  196. package/dist/validators/assert-executable-graph.js +14 -0
  197. package/dist/validators/assert-executable-graph.js.map +1 -0
  198. package/dist/validators/assert-normalized-executable-graph.d.ts +3 -0
  199. package/dist/validators/assert-normalized-executable-graph.d.ts.map +1 -0
  200. package/dist/validators/assert-normalized-executable-graph.js +14 -0
  201. package/dist/validators/assert-normalized-executable-graph.js.map +1 -0
  202. package/dist/validators/validate-authoring-executable-graph.d.ts +3 -0
  203. package/dist/validators/validate-authoring-executable-graph.d.ts.map +1 -0
  204. package/dist/validators/validate-authoring-executable-graph.js +134 -0
  205. package/dist/validators/validate-authoring-executable-graph.js.map +1 -0
  206. package/dist/validators/validate-authoring-graph.d.ts +2 -0
  207. package/dist/validators/validate-authoring-graph.d.ts.map +1 -0
  208. package/dist/validators/validate-authoring-graph.js +6 -0
  209. package/dist/validators/validate-authoring-graph.js.map +1 -0
  210. package/dist/validators/validate-executable-graph.d.ts +4 -0
  211. package/dist/validators/validate-executable-graph.d.ts.map +1 -0
  212. package/dist/validators/validate-executable-graph.js +9 -0
  213. package/dist/validators/validate-executable-graph.js.map +1 -0
  214. package/dist/validators/validate-executable-plan.d.ts +3 -0
  215. package/dist/validators/validate-executable-plan.d.ts.map +1 -0
  216. package/dist/validators/validate-executable-plan.js +211 -0
  217. package/dist/validators/validate-executable-plan.js.map +1 -0
  218. package/dist/validators/validate-execution-trace.d.ts +4 -0
  219. package/dist/validators/validate-execution-trace.d.ts.map +1 -0
  220. package/dist/validators/validate-execution-trace.js +158 -0
  221. package/dist/validators/validate-execution-trace.js.map +1 -0
  222. package/dist/validators/validate-finalizer-node.d.ts +4 -0
  223. package/dist/validators/validate-finalizer-node.d.ts.map +1 -0
  224. package/dist/validators/validate-finalizer-node.js +36 -0
  225. package/dist/validators/validate-finalizer-node.js.map +1 -0
  226. package/dist/validators/validate-model-config.d.ts +7 -0
  227. package/dist/validators/validate-model-config.d.ts.map +1 -0
  228. package/dist/validators/validate-model-config.js +197 -0
  229. package/dist/validators/validate-model-config.js.map +1 -0
  230. package/dist/validators/validate-normalized-executable-graph.d.ts +3 -0
  231. package/dist/validators/validate-normalized-executable-graph.d.ts.map +1 -0
  232. package/dist/validators/validate-normalized-executable-graph.js +26 -0
  233. package/dist/validators/validate-normalized-executable-graph.js.map +1 -0
  234. package/dist/validators/validate-runtime-object.d.ts +10 -0
  235. package/dist/validators/validate-runtime-object.d.ts.map +1 -0
  236. package/dist/validators/validate-runtime-object.js +63 -0
  237. package/dist/validators/validate-runtime-object.js.map +1 -0
  238. package/dist/validators/validate-studio-execute-request.d.ts +5 -0
  239. package/dist/validators/validate-studio-execute-request.d.ts.map +1 -0
  240. package/dist/validators/validate-studio-execute-request.js +37 -0
  241. package/dist/validators/validate-studio-execute-request.js.map +1 -0
  242. package/dist/validators/validate-task-actions.d.ts +4 -0
  243. package/dist/validators/validate-task-actions.d.ts.map +1 -0
  244. package/dist/validators/validate-task-actions.js +93 -0
  245. package/dist/validators/validate-task-actions.js.map +1 -0
  246. package/dist/validators/validate-task-node.d.ts +6 -0
  247. package/dist/validators/validate-task-node.d.ts.map +1 -0
  248. package/dist/validators/validate-task-node.js +43 -0
  249. package/dist/validators/validate-task-node.js.map +1 -0
  250. package/docs/IMPLEMENTATION-REPORT.md +200 -0
  251. package/package.json +56 -0
  252. package/schema/graphenix-executable-format-1.0.0.schema.json +40 -0
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.selectGraphModelCase = void 0;
4
+ exports.resolveGraphModelConfig = resolveGraphModelConfig;
5
+ const utils_js_1 = require("../internal/utils.js");
6
+ const validate_model_config_js_1 = require("../validators/validate-model-config.js");
7
+ const select_graph_model_case_js_1 = require("../case-condition/select-graph-model-case.js");
8
+ Object.defineProperty(exports, "selectGraphModelCase", { enumerable: true, get: function () { return select_graph_model_case_js_1.selectGraphModelCase; } });
9
+ const build_deterministic_case_context_js_1 = require("./build-deterministic-case-context.js");
10
+ function resolveGraphModelConfig(doc, context) {
11
+ const profile = (0, utils_js_1.getExecutableProfile)(doc);
12
+ if (!profile?.modelConfig) {
13
+ throw new Error("Executable graph is missing graph modelConfig.");
14
+ }
15
+ const validationErrors = (0, validate_model_config_js_1.validateGraphModelConfig)(profile.modelConfig);
16
+ if (validationErrors.length > 0) {
17
+ throw new Error(validationErrors[0]?.message ?? "Invalid graph modelConfig.");
18
+ }
19
+ const resolvedContext = context ?? (0, build_deterministic_case_context_js_1.buildDeterministicCaseContext)(doc);
20
+ const selection = (0, select_graph_model_case_js_1.selectGraphModelCase)(profile.modelConfig, resolvedContext);
21
+ return {
22
+ caseId: selection.caseId,
23
+ triplet: selection.triplet,
24
+ modelConfig: profile.modelConfig,
25
+ selection
26
+ };
27
+ }
28
+ //# sourceMappingURL=resolve-graph-model-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-graph-model-config.js","sourceRoot":"","sources":["../../src/resolution/resolve-graph-model-config.ts"],"names":[],"mappings":";;;AAcA,0DA4BC;AAjCD,mDAA4D;AAC5D,qFAAkF;AAClF,6FAAoF;AAiC3E,qGAjCA,iDAAoB,OAiCA;AAhC7B,+FAAsF;AAEtF,SAAgB,uBAAuB,CACrC,GAA4B,EAC5B,OAAkC;IAOlC,MAAM,OAAO,GAAG,IAAA,+BAAoB,EAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAA,mDAAwB,EAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACvE,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,4BAA4B,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,eAAe,GAAG,OAAO,IAAI,IAAA,mEAA6B,EAAC,GAAG,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,IAAA,iDAAoB,EAAC,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAE7E,OAAO;QACL,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,SAAS;KACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ExecutableGraphDocument } from "../types/executable-graph.js";
2
+ import type { ResolvedNodeAiPlan } from "../types/resolution.js";
3
+ import type { AiModelSlot } from "../types/model-config.js";
4
+ import type { DeterministicCaseContext } from "../types/case-condition.js";
5
+ export declare function resolveNodeAiPlan(doc: ExecutableGraphDocument, nodeId: string, context?: DeterministicCaseContext, availabilityBySlot?: Partial<Record<AiModelSlot, import("../types/resolution.js").AiModelAvailabilityResult>>): ResolvedNodeAiPlan;
6
+ export declare function resolveAllNodeAiPlans(doc: ExecutableGraphDocument, context?: DeterministicCaseContext): ResolvedNodeAiPlan[];
7
+ //# sourceMappingURL=resolve-node-ai-plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-node-ai-plan.d.ts","sourceRoot":"","sources":["../../src/resolution/resolve-node-ai-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAQ3E,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,uBAAuB,EAC5B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,wBAAwB,EAClC,kBAAkB,CAAC,EAAE,OAAO,CAC1B,MAAM,CAAC,WAAW,EAAE,OAAO,wBAAwB,EAAE,yBAAyB,CAAC,CAChF,GACA,kBAAkB,CAqDpB;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,uBAAuB,EAC5B,OAAO,CAAC,EAAE,wBAAwB,GACjC,kBAAkB,EAAE,CAItB"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveNodeAiPlan = resolveNodeAiPlan;
4
+ exports.resolveAllNodeAiPlans = resolveAllNodeAiPlans;
5
+ const utils_js_1 = require("../internal/utils.js");
6
+ const resolve_graph_model_config_js_1 = require("./resolve-graph-model-config.js");
7
+ const resolve_node_model_config_js_1 = require("./resolve-node-model-config.js");
8
+ const resolve_node_model_slot_js_1 = require("./resolve-node-model-slot.js");
9
+ const utils_js_2 = require("../internal/utils.js");
10
+ const build_deterministic_case_context_js_1 = require("./build-deterministic-case-context.js");
11
+ function resolveNodeAiPlan(doc, nodeId, context, availabilityBySlot) {
12
+ const node = doc.graph.nodes.find((n) => n.id === nodeId);
13
+ if (!node || !(0, utils_js_1.isExecutableTaskNode)(node)) {
14
+ throw new Error(`Node ${nodeId} is not an executable task node.`);
15
+ }
16
+ const resolvedContext = context ?? (0, build_deterministic_case_context_js_1.buildDeterministicCaseContext)(doc);
17
+ const profile = (0, utils_js_2.getExecutableProfile)(doc);
18
+ const fallbackPolicy = profile?.modelConfig.fallbackPolicy ?? {
19
+ enabled: false,
20
+ allowedTriggers: []
21
+ };
22
+ const { caseId: graphCaseId, selection: graphSelection } = (0, resolve_graph_model_config_js_1.resolveGraphModelConfig)(doc, resolvedContext);
23
+ const nodeResolution = (0, resolve_node_model_config_js_1.resolveNodeModelConfig)(doc, node, resolvedContext);
24
+ const slots = ["preActionModel", "skillModel", "postActionModel"];
25
+ const resolvedSlots = {};
26
+ for (const slot of slots) {
27
+ resolvedSlots[slot] = (0, resolve_node_model_slot_js_1.resolveNodeModelSlot)({
28
+ slot,
29
+ graphSelection: graphSelection.triplet[slot],
30
+ nodeSelection: nodeResolution.partial[slot],
31
+ fallbackPolicy,
32
+ availabilityResult: availabilityBySlot?.[slot],
33
+ graphCaseId,
34
+ nodeCaseId: nodeResolution.nodeCaseId,
35
+ nodeId
36
+ });
37
+ }
38
+ return {
39
+ graphId: doc.id,
40
+ graphRevision: doc.revision,
41
+ nodeId,
42
+ graphCaseId,
43
+ nodeCaseId: nodeResolution.nodeCaseId,
44
+ slots: resolvedSlots,
45
+ caseSelection: {
46
+ graph: {
47
+ selectedCaseId: graphCaseId,
48
+ matchedConditions: graphSelection.matchedConditions
49
+ },
50
+ node: nodeResolution.nodeCaseId
51
+ ? {
52
+ selectedCaseId: nodeResolution.nodeCaseId,
53
+ matchedConditions: nodeResolution.nodeMatchedConditions
54
+ }
55
+ : undefined
56
+ }
57
+ };
58
+ }
59
+ function resolveAllNodeAiPlans(doc, context) {
60
+ return doc.graph.nodes
61
+ .filter(utils_js_1.isExecutableTaskNode)
62
+ .map((node) => resolveNodeAiPlan(doc, node.id, context));
63
+ }
64
+ //# sourceMappingURL=resolve-node-ai-plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-node-ai-plan.js","sourceRoot":"","sources":["../../src/resolution/resolve-node-ai-plan.ts"],"names":[],"mappings":";;AAWA,8CA4DC;AAED,sDAOC;AA5ED,mDAA4D;AAC5D,mFAA0E;AAC1E,iFAAwE;AACxE,6EAAoE;AACpE,mDAA4D;AAC5D,+FAAsF;AAEtF,SAAgB,iBAAiB,CAC/B,GAA4B,EAC5B,MAAc,EACd,OAAkC,EAClC,kBAEC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,IAAI,CAAC,IAAA,+BAAoB,EAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,kCAAkC,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,eAAe,GAAG,OAAO,IAAI,IAAA,mEAA6B,EAAC,GAAG,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,IAAA,+BAAoB,EAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,OAAO,EAAE,WAAW,CAAC,cAAc,IAAI;QAC5D,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,EAAE;KACpB,CAAC;IAEF,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,GACtD,IAAA,uDAAuB,EAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,IAAA,qDAAsB,EAAC,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;IAE1E,MAAM,KAAK,GAAG,CAAC,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,CAAU,CAAC;IAC3E,MAAM,aAAa,GAAG,EAAiC,CAAC;IAExD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,aAAa,CAAC,IAAI,CAAC,GAAG,IAAA,iDAAoB,EAAC;YACzC,IAAI;YACJ,cAAc,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;YAC5C,aAAa,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;YAC3C,cAAc;YACd,kBAAkB,EAAE,kBAAkB,EAAE,CAAC,IAAI,CAAC;YAC9C,WAAW;YACX,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,OAAO,EAAE,GAAG,CAAC,EAAE;QACf,aAAa,EAAE,GAAG,CAAC,QAAQ;QAC3B,MAAM;QACN,WAAW;QACX,UAAU,EAAE,cAAc,CAAC,UAAU;QACrC,KAAK,EAAE,aAAa;QACpB,aAAa,EAAE;YACb,KAAK,EAAE;gBACL,cAAc,EAAE,WAAW;gBAC3B,iBAAiB,EAAE,cAAc,CAAC,iBAAiB;aACpD;YACD,IAAI,EAAE,cAAc,CAAC,UAAU;gBAC7B,CAAC,CAAC;oBACE,cAAc,EAAE,cAAc,CAAC,UAAU;oBACzC,iBAAiB,EAAE,cAAc,CAAC,qBAAqB;iBACxD;gBACH,CAAC,CAAC,SAAS;SACd;KACF,CAAC;AACJ,CAAC;AAED,SAAgB,qBAAqB,CACnC,GAA4B,EAC5B,OAAkC;IAElC,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK;SACnB,MAAM,CAAC,+BAAoB,CAAC;SAC5B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { PartialAiModelTriplet, RequiredAiModelTriplet } from "../types/model-config.js";
2
+ import type { ExecutableGraphDocument } from "../types/executable-graph.js";
3
+ import type { Node } from "@x12i/graphenix-core";
4
+ import type { DeterministicCaseContext } from "../types/case-condition.js";
5
+ import { selectNodeModelCase } from "../case-condition/select-node-model-case.js";
6
+ export declare function resolveNodeModelConfig(doc: ExecutableGraphDocument, node: Node, context?: DeterministicCaseContext): {
7
+ inherit: boolean;
8
+ nodeCaseId?: string;
9
+ partial: PartialAiModelTriplet;
10
+ resolved: RequiredAiModelTriplet;
11
+ graphCaseId: string;
12
+ nodeMatchedConditions: string[];
13
+ };
14
+ export { selectNodeModelCase };
15
+ //# sourceMappingURL=resolve-node-model-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-node-model-config.d.ts","sourceRoot":"","sources":["../../src/resolution/resolve-node-model-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAG3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAElF,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,uBAAuB,EAC5B,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,wBAAwB,GACjC;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,qBAAqB,CAAC;IAC/B,QAAQ,EAAE,sBAAsB,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC,CAoCA;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.selectNodeModelCase = void 0;
4
+ exports.resolveNodeModelConfig = resolveNodeModelConfig;
5
+ const utils_js_1 = require("../internal/utils.js");
6
+ const validate_model_config_js_1 = require("../validators/validate-model-config.js");
7
+ const resolve_graph_model_config_js_1 = require("./resolve-graph-model-config.js");
8
+ const select_node_model_case_js_1 = require("../case-condition/select-node-model-case.js");
9
+ Object.defineProperty(exports, "selectNodeModelCase", { enumerable: true, get: function () { return select_node_model_case_js_1.selectNodeModelCase; } });
10
+ function resolveNodeModelConfig(doc, node, context) {
11
+ const { caseId: graphCaseId, triplet: graphTriplet } = (0, resolve_graph_model_config_js_1.resolveGraphModelConfig)(doc, context);
12
+ const taskConfig = (0, utils_js_1.getTaskNodeConfig)(node);
13
+ const nodeModelConfig = taskConfig?.taskConfiguration?.modelConfig;
14
+ const inherit = nodeModelConfig?.inherit !== false;
15
+ const resolvedContext = context ?? {
16
+ runtime: {},
17
+ graph: { id: doc.id, revision: doc.revision }
18
+ };
19
+ const nodeCase = (0, select_node_model_case_js_1.selectNodeModelCase)(nodeModelConfig, resolvedContext);
20
+ const partial = nodeCase?.partial ??
21
+ nodeModelConfig?.cases?.find((c) => c.id === "default")?.modelConfig ??
22
+ nodeModelConfig?.modelConfig ??
23
+ {};
24
+ const resolved = (0, validate_model_config_js_1.mergeTriplets)(graphTriplet, partial, inherit);
25
+ if (!resolved) {
26
+ throw new Error(`Node ${node.id} could not resolve model inheritance.`);
27
+ }
28
+ return {
29
+ inherit,
30
+ nodeCaseId: nodeCase?.caseId,
31
+ partial,
32
+ resolved,
33
+ graphCaseId,
34
+ nodeMatchedConditions: nodeCase?.matchedConditions ?? []
35
+ };
36
+ }
37
+ //# sourceMappingURL=resolve-node-model-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-node-model-config.js","sourceRoot":"","sources":["../../src/resolution/resolve-node-model-config.ts"],"names":[],"mappings":";;;AAaA,wDA+CC;AAvDD,mDAAyD;AAIzD,qFAAuE;AACvE,mFAA0E;AAC1E,2FAAkF;AAmDzE,oGAnDA,+CAAmB,OAmDA;AAjD5B,SAAgB,sBAAsB,CACpC,GAA4B,EAC5B,IAAU,EACV,OAAkC;IASlC,MAAM,EACJ,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,YAAY,EACtB,GAAG,IAAA,uDAAuB,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAE1C,MAAM,UAAU,GAAG,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,eAAe,GACnB,UAAU,EAAE,iBAAiB,EAAE,WAAW,CAAC;IAE7C,MAAM,OAAO,GAAG,eAAe,EAAE,OAAO,KAAK,KAAK,CAAC;IACnD,MAAM,eAAe,GAAG,OAAO,IAAI;QACjC,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE;KAC9C,CAAC;IACF,MAAM,QAAQ,GAAG,IAAA,+CAAmB,EAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IAEvE,MAAM,OAAO,GACX,QAAQ,EAAE,OAAO;QACjB,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,WAAW;QACpE,eAAe,EAAE,WAAW;QAC5B,EAAE,CAAC;IAEL,MAAM,QAAQ,GAAG,IAAA,wCAAa,EAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,EAAE,uCAAuC,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO;QACL,OAAO;QACP,UAAU,EAAE,QAAQ,EAAE,MAAM;QAC5B,OAAO;QACP,QAAQ;QACR,WAAW;QACX,qBAAqB,EAAE,QAAQ,EAAE,iBAAiB,IAAI,EAAE;KACzD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ResolvedAiModelSlot, ResolveNodeModelSlotArgs } from "../types/resolution.js";
2
+ export declare function resolveNodeModelSlot(args: ResolveNodeModelSlotArgs & {
3
+ graphCaseId: string;
4
+ nodeCaseId?: string;
5
+ nodeId: string;
6
+ }): ResolvedAiModelSlot;
7
+ //# sourceMappingURL=resolve-node-model-slot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-node-model-slot.d.ts","sourceRoot":"","sources":["../../src/resolution/resolve-node-model-slot.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,wBAAwB,CAAC;AAShC,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,wBAAwB,GAAG;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,GACA,mBAAmB,CA6ErB"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveNodeModelSlot = resolveNodeModelSlot;
4
+ const constants_js_1 = require("../constants.js");
5
+ const DEFAULT_SLOTS = [
6
+ "preActionModel",
7
+ "skillModel",
8
+ "postActionModel"
9
+ ];
10
+ function resolveNodeModelSlot(args) {
11
+ const { slot, graphSelection, nodeSelection, fallbackPolicy, availabilityResult, graphCaseId, nodeCaseId, nodeId } = args;
12
+ const graphPath = `${constants_js_1.EXECUTABLE_PROFILE_PATH}/modelConfig`;
13
+ const nodePath = `/graph/nodes/${nodeId}/parameters/taskConfiguration/modelConfig/modelConfig/${slot}`;
14
+ const provenance = {
15
+ graphPath,
16
+ nodePath: nodeSelection ? nodePath : undefined,
17
+ graphCaseId,
18
+ nodeCaseId
19
+ };
20
+ if (nodeSelection === undefined) {
21
+ return {
22
+ slot,
23
+ selected: graphSelection,
24
+ source: "graphDefault",
25
+ inherited: true,
26
+ provenance
27
+ };
28
+ }
29
+ const available = availabilityResult?.available ?? true;
30
+ if (available) {
31
+ return {
32
+ slot,
33
+ selected: nodeSelection,
34
+ source: nodeCaseId ? "nodeCaseOverride" : "nodeOverride",
35
+ inherited: false,
36
+ provenance
37
+ };
38
+ }
39
+ if (!fallbackPolicy.enabled) {
40
+ throw new Error(`Fallback to graph ${slot} is not allowed for node ${nodeId}: fallback disabled.`);
41
+ }
42
+ const allowedSlots = fallbackPolicy.slots ?? DEFAULT_SLOTS;
43
+ if (!allowedSlots.includes(slot)) {
44
+ throw new Error(`Fallback to graph ${slot} is not allowed for node ${nodeId}: slot not in policy.`);
45
+ }
46
+ const trigger = availabilityResult?.trigger;
47
+ if (trigger && !fallbackPolicy.allowedTriggers.includes(trigger)) {
48
+ throw new Error(`Fallback to graph ${slot} is not allowed for node ${nodeId}: trigger ${trigger} not allowed.`);
49
+ }
50
+ return {
51
+ slot,
52
+ selected: graphSelection,
53
+ source: "fallbackToGraphDefault",
54
+ inherited: true,
55
+ fallback: {
56
+ attempted: true,
57
+ from: nodeSelection,
58
+ to: graphSelection,
59
+ trigger: trigger ?? "nodeModelUnavailable",
60
+ reason: availabilityResult?.reason
61
+ },
62
+ provenance
63
+ };
64
+ }
65
+ //# sourceMappingURL=resolve-node-model-slot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-node-model-slot.js","sourceRoot":"","sources":["../../src/resolution/resolve-node-model-slot.ts"],"names":[],"mappings":";;AAaA,oDAmFC;AA3FD,kDAA0D;AAE1D,MAAM,aAAa,GAAkB;IACnC,gBAAgB;IAChB,YAAY;IACZ,iBAAiB;CAClB,CAAC;AAEF,SAAgB,oBAAoB,CAClC,IAIC;IAED,MAAM,EACJ,IAAI,EACJ,cAAc,EACd,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,MAAM,EACP,GAAG,IAAI,CAAC;IAET,MAAM,SAAS,GAAG,GAAG,sCAAuB,cAAc,CAAC;IAC3D,MAAM,QAAQ,GAAG,gBAAgB,MAAM,yDAAyD,IAAI,EAAE,CAAC;IACvG,MAAM,UAAU,GAAG;QACjB,SAAS;QACT,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAC9C,WAAW;QACX,UAAU;KACX,CAAC;IAEF,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO;YACL,IAAI;YACJ,QAAQ,EAAE,cAAc;YACxB,MAAM,EAAE,cAAc;YACtB,SAAS,EAAE,IAAI;YACf,UAAU;SACX,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,kBAAkB,EAAE,SAAS,IAAI,IAAI,CAAC;IAExD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO;YACL,IAAI;YACJ,QAAQ,EAAE,aAAa;YACvB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc;YACxD,SAAS,EAAE,KAAK;YAChB,UAAU;SACX,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,qBAAqB,IAAI,4BAA4B,MAAM,sBAAsB,CAClF,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,IAAI,aAAa,CAAC;IAC3D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,qBAAqB,IAAI,4BAA4B,MAAM,uBAAuB,CACnF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,kBAAkB,EAAE,OAAO,CAAC;IAC5C,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CACb,qBAAqB,IAAI,4BAA4B,MAAM,aAAa,OAAO,eAAe,CAC/F,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI;QACJ,QAAQ,EAAE,cAAc;QACxB,MAAM,EAAE,wBAAwB;QAChC,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE;YACR,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,aAAa;YACnB,EAAE,EAAE,cAAc;YAClB,OAAO,EAAE,OAAO,IAAI,sBAAsB;YAC1C,MAAM,EAAE,kBAAkB,EAAE,MAAM;SACnC;QACD,UAAU;KACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=executable-format.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executable-format.test.d.ts","sourceRoot":"","sources":["../../src/test/executable-format.test.ts"],"names":[],"mappings":""}