@x12i/graphenix-executable-format 1.0.0 → 2.0.1

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 (259) hide show
  1. package/README.md +512 -341
  2. package/dist/api.d.ts +13 -35
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +13 -98
  5. package/dist/api.js.map +1 -1
  6. package/dist/constants.d.ts +1 -11
  7. package/dist/constants.d.ts.map +1 -1
  8. package/dist/constants.js +1 -18
  9. package/dist/constants.js.map +1 -1
  10. package/dist/index.js +1 -17
  11. package/dist/index.js.map +1 -1
  12. package/dist/test/executable-format.test.js +316 -289
  13. package/dist/test/executable-format.test.js.map +1 -1
  14. package/dist/test/executable-plan-v2.test.d.ts +2 -0
  15. package/dist/test/executable-plan-v2.test.d.ts.map +1 -0
  16. package/dist/test/executable-plan-v2.test.js +342 -0
  17. package/dist/test/executable-plan-v2.test.js.map +1 -0
  18. package/dist/test/execution-trace-v2.test.d.ts +2 -0
  19. package/dist/test/execution-trace-v2.test.d.ts.map +1 -0
  20. package/dist/test/execution-trace-v2.test.js +411 -0
  21. package/dist/test/execution-trace-v2.test.js.map +1 -0
  22. package/dist/test/phase-1-format.test.d.ts +2 -0
  23. package/dist/test/phase-1-format.test.d.ts.map +1 -0
  24. package/dist/test/phase-1-format.test.js +297 -0
  25. package/dist/test/phase-1-format.test.js.map +1 -0
  26. package/package.json +69 -56
  27. package/dist/adapter/build-graph-execution-request-from-studio-execute.d.ts +0 -6
  28. package/dist/adapter/build-graph-execution-request-from-studio-execute.d.ts.map +0 -1
  29. package/dist/adapter/build-graph-execution-request-from-studio-execute.js +0 -41
  30. package/dist/adapter/build-graph-execution-request-from-studio-execute.js.map +0 -1
  31. package/dist/case-condition/allowed-paths.d.ts +0 -4
  32. package/dist/case-condition/allowed-paths.d.ts.map +0 -1
  33. package/dist/case-condition/allowed-paths.js +0 -74
  34. package/dist/case-condition/allowed-paths.js.map +0 -1
  35. package/dist/case-condition/evaluate-case-condition.d.ts +0 -4
  36. package/dist/case-condition/evaluate-case-condition.d.ts.map +0 -1
  37. package/dist/case-condition/evaluate-case-condition.js +0 -106
  38. package/dist/case-condition/evaluate-case-condition.js.map +0 -1
  39. package/dist/case-condition/select-graph-model-case.d.ts +0 -6
  40. package/dist/case-condition/select-graph-model-case.d.ts.map +0 -1
  41. package/dist/case-condition/select-graph-model-case.js +0 -40
  42. package/dist/case-condition/select-graph-model-case.js.map +0 -1
  43. package/dist/case-condition/select-node-model-case.d.ts +0 -4
  44. package/dist/case-condition/select-node-model-case.d.ts.map +0 -1
  45. package/dist/case-condition/select-node-model-case.js +0 -34
  46. package/dist/case-condition/select-node-model-case.js.map +0 -1
  47. package/dist/case-condition/validate-case-condition.d.ts +0 -5
  48. package/dist/case-condition/validate-case-condition.d.ts.map +0 -1
  49. package/dist/case-condition/validate-case-condition.js +0 -118
  50. package/dist/case-condition/validate-case-condition.js.map +0 -1
  51. package/dist/compile/build-node-execution-units.d.ts +0 -6
  52. package/dist/compile/build-node-execution-units.d.ts.map +0 -1
  53. package/dist/compile/build-node-execution-units.js +0 -77
  54. package/dist/compile/build-node-execution-units.js.map +0 -1
  55. package/dist/compile/compile-executable-plan.d.ts +0 -5
  56. package/dist/compile/compile-executable-plan.d.ts.map +0 -1
  57. package/dist/compile/compile-executable-plan.js +0 -142
  58. package/dist/compile/compile-executable-plan.js.map +0 -1
  59. package/dist/explain/explain-executable-graph-error.d.ts +0 -4
  60. package/dist/explain/explain-executable-graph-error.d.ts.map +0 -1
  61. package/dist/explain/explain-executable-graph-error.js +0 -14
  62. package/dist/explain/explain-executable-graph-error.js.map +0 -1
  63. package/dist/explain/explain-node-inheritance.d.ts +0 -3
  64. package/dist/explain/explain-node-inheritance.d.ts.map +0 -1
  65. package/dist/explain/explain-node-inheritance.js +0 -41
  66. package/dist/explain/explain-node-inheritance.js.map +0 -1
  67. package/dist/fixtures/minimal-executable-graph.d.ts +0 -4
  68. package/dist/fixtures/minimal-executable-graph.d.ts.map +0 -1
  69. package/dist/fixtures/minimal-executable-graph.js +0 -170
  70. package/dist/fixtures/minimal-executable-graph.js.map +0 -1
  71. package/dist/helpers/add-finalizer-node.d.ts +0 -5
  72. package/dist/helpers/add-finalizer-node.d.ts.map +0 -1
  73. package/dist/helpers/add-finalizer-node.js +0 -13
  74. package/dist/helpers/add-finalizer-node.js.map +0 -1
  75. package/dist/helpers/add-task-node.d.ts +0 -5
  76. package/dist/helpers/add-task-node.d.ts.map +0 -1
  77. package/dist/helpers/add-task-node.js +0 -13
  78. package/dist/helpers/add-task-node.js.map +0 -1
  79. package/dist/helpers/connect-task-to-task.d.ts +0 -10
  80. package/dist/helpers/connect-task-to-task.d.ts.map +0 -1
  81. package/dist/helpers/connect-task-to-task.js +0 -23
  82. package/dist/helpers/connect-task-to-task.js.map +0 -1
  83. package/dist/helpers/set-graph-model-config.d.ts +0 -5
  84. package/dist/helpers/set-graph-model-config.d.ts.map +0 -1
  85. package/dist/helpers/set-graph-model-config.js +0 -30
  86. package/dist/helpers/set-graph-model-config.js.map +0 -1
  87. package/dist/helpers/set-node-model-config.d.ts +0 -5
  88. package/dist/helpers/set-node-model-config.d.ts.map +0 -1
  89. package/dist/helpers/set-node-model-config.js +0 -25
  90. package/dist/helpers/set-node-model-config.js.map +0 -1
  91. package/dist/internal/hash.d.ts +0 -4
  92. package/dist/internal/hash.d.ts.map +0 -1
  93. package/dist/internal/hash.js +0 -26
  94. package/dist/internal/hash.js.map +0 -1
  95. package/dist/internal/utils.d.ts +0 -16
  96. package/dist/internal/utils.d.ts.map +0 -1
  97. package/dist/internal/utils.js +0 -80
  98. package/dist/internal/utils.js.map +0 -1
  99. package/dist/migration/migrate-legacy-graph-model-object.d.ts +0 -4
  100. package/dist/migration/migrate-legacy-graph-model-object.d.ts.map +0 -1
  101. package/dist/migration/migrate-legacy-graph-model-object.js +0 -217
  102. package/dist/migration/migrate-legacy-graph-model-object.js.map +0 -1
  103. package/dist/normalize/normalize-executable-graph.d.ts +0 -3
  104. package/dist/normalize/normalize-executable-graph.d.ts.map +0 -1
  105. package/dist/normalize/normalize-executable-graph.js +0 -34
  106. package/dist/normalize/normalize-executable-graph.js.map +0 -1
  107. package/dist/normalize/normalize-model-config.d.ts +0 -4
  108. package/dist/normalize/normalize-model-config.d.ts.map +0 -1
  109. package/dist/normalize/normalize-model-config.js +0 -64
  110. package/dist/normalize/normalize-model-config.js.map +0 -1
  111. package/dist/profile-choice/known-profile-choices.d.ts +0 -10
  112. package/dist/profile-choice/known-profile-choices.d.ts.map +0 -1
  113. package/dist/profile-choice/known-profile-choices.js +0 -19
  114. package/dist/profile-choice/known-profile-choices.js.map +0 -1
  115. package/dist/profile-choice/validate-profile-choice.d.ts +0 -8
  116. package/dist/profile-choice/validate-profile-choice.d.ts.map +0 -1
  117. package/dist/profile-choice/validate-profile-choice.js +0 -55
  118. package/dist/profile-choice/validate-profile-choice.js.map +0 -1
  119. package/dist/resolution/build-deterministic-case-context.d.ts +0 -9
  120. package/dist/resolution/build-deterministic-case-context.d.ts.map +0 -1
  121. package/dist/resolution/build-deterministic-case-context.js +0 -26
  122. package/dist/resolution/build-deterministic-case-context.js.map +0 -1
  123. package/dist/resolution/resolve-graph-model-config.d.ts +0 -12
  124. package/dist/resolution/resolve-graph-model-config.d.ts.map +0 -1
  125. package/dist/resolution/resolve-graph-model-config.js +0 -28
  126. package/dist/resolution/resolve-graph-model-config.js.map +0 -1
  127. package/dist/resolution/resolve-node-ai-plan.d.ts +0 -7
  128. package/dist/resolution/resolve-node-ai-plan.d.ts.map +0 -1
  129. package/dist/resolution/resolve-node-ai-plan.js +0 -64
  130. package/dist/resolution/resolve-node-ai-plan.js.map +0 -1
  131. package/dist/resolution/resolve-node-model-config.d.ts +0 -15
  132. package/dist/resolution/resolve-node-model-config.d.ts.map +0 -1
  133. package/dist/resolution/resolve-node-model-config.js +0 -37
  134. package/dist/resolution/resolve-node-model-config.js.map +0 -1
  135. package/dist/resolution/resolve-node-model-slot.d.ts +0 -7
  136. package/dist/resolution/resolve-node-model-slot.d.ts.map +0 -1
  137. package/dist/resolution/resolve-node-model-slot.js +0 -65
  138. package/dist/resolution/resolve-node-model-slot.js.map +0 -1
  139. package/dist/trace/append-execution-event.d.ts +0 -5
  140. package/dist/trace/append-execution-event.d.ts.map +0 -1
  141. package/dist/trace/append-execution-event.js +0 -9
  142. package/dist/trace/append-execution-event.js.map +0 -1
  143. package/dist/trace/create-execution-trace.d.ts +0 -5
  144. package/dist/trace/create-execution-trace.d.ts.map +0 -1
  145. package/dist/trace/create-execution-trace.js +0 -56
  146. package/dist/trace/create-execution-trace.js.map +0 -1
  147. package/dist/types/case-condition.d.ts +0 -50
  148. package/dist/types/case-condition.d.ts.map +0 -1
  149. package/dist/types/case-condition.js +0 -3
  150. package/dist/types/case-condition.js.map +0 -1
  151. package/dist/types/errors.d.ts +0 -16
  152. package/dist/types/errors.d.ts.map +0 -1
  153. package/dist/types/errors.js +0 -3
  154. package/dist/types/errors.js.map +0 -1
  155. package/dist/types/executable-graph.d.ts +0 -19
  156. package/dist/types/executable-graph.d.ts.map +0 -1
  157. package/dist/types/executable-graph.js +0 -3
  158. package/dist/types/executable-graph.js.map +0 -1
  159. package/dist/types/executable-nodes.d.ts +0 -54
  160. package/dist/types/executable-nodes.d.ts.map +0 -1
  161. package/dist/types/executable-nodes.js +0 -3
  162. package/dist/types/executable-nodes.js.map +0 -1
  163. package/dist/types/executable-plan.d.ts +0 -78
  164. package/dist/types/executable-plan.d.ts.map +0 -1
  165. package/dist/types/executable-plan.js +0 -5
  166. package/dist/types/executable-plan.js.map +0 -1
  167. package/dist/types/executable-profile.d.ts +0 -18
  168. package/dist/types/executable-profile.d.ts.map +0 -1
  169. package/dist/types/executable-profile.js +0 -3
  170. package/dist/types/executable-profile.js.map +0 -1
  171. package/dist/types/execution-trace.d.ts +0 -278
  172. package/dist/types/execution-trace.d.ts.map +0 -1
  173. package/dist/types/execution-trace.js +0 -5
  174. package/dist/types/execution-trace.js.map +0 -1
  175. package/dist/types/execution-unit.d.ts +0 -19
  176. package/dist/types/execution-unit.d.ts.map +0 -1
  177. package/dist/types/execution-unit.js +0 -3
  178. package/dist/types/execution-unit.js.map +0 -1
  179. package/dist/types/index.d.ts +0 -16
  180. package/dist/types/index.d.ts.map +0 -1
  181. package/dist/types/index.js +0 -8
  182. package/dist/types/index.js.map +0 -1
  183. package/dist/types/legacy.d.ts +0 -21
  184. package/dist/types/legacy.d.ts.map +0 -1
  185. package/dist/types/legacy.js +0 -3
  186. package/dist/types/legacy.js.map +0 -1
  187. package/dist/types/model-config.d.ts +0 -80
  188. package/dist/types/model-config.d.ts.map +0 -1
  189. package/dist/types/model-config.js +0 -3
  190. package/dist/types/model-config.js.map +0 -1
  191. package/dist/types/resolution.d.ts +0 -55
  192. package/dist/types/resolution.d.ts.map +0 -1
  193. package/dist/types/resolution.js +0 -3
  194. package/dist/types/resolution.js.map +0 -1
  195. package/dist/types/runtime.d.ts +0 -19
  196. package/dist/types/runtime.d.ts.map +0 -1
  197. package/dist/types/runtime.js +0 -3
  198. package/dist/types/runtime.js.map +0 -1
  199. package/dist/types/studio-execute.d.ts +0 -25
  200. package/dist/types/studio-execute.d.ts.map +0 -1
  201. package/dist/types/studio-execute.js +0 -3
  202. package/dist/types/studio-execute.js.map +0 -1
  203. package/dist/validators/assert-executable-graph.d.ts +0 -3
  204. package/dist/validators/assert-executable-graph.d.ts.map +0 -1
  205. package/dist/validators/assert-executable-graph.js +0 -14
  206. package/dist/validators/assert-executable-graph.js.map +0 -1
  207. package/dist/validators/assert-normalized-executable-graph.d.ts +0 -3
  208. package/dist/validators/assert-normalized-executable-graph.d.ts.map +0 -1
  209. package/dist/validators/assert-normalized-executable-graph.js +0 -14
  210. package/dist/validators/assert-normalized-executable-graph.js.map +0 -1
  211. package/dist/validators/validate-authoring-executable-graph.d.ts +0 -3
  212. package/dist/validators/validate-authoring-executable-graph.d.ts.map +0 -1
  213. package/dist/validators/validate-authoring-executable-graph.js +0 -134
  214. package/dist/validators/validate-authoring-executable-graph.js.map +0 -1
  215. package/dist/validators/validate-authoring-graph.d.ts +0 -2
  216. package/dist/validators/validate-authoring-graph.d.ts.map +0 -1
  217. package/dist/validators/validate-authoring-graph.js +0 -6
  218. package/dist/validators/validate-authoring-graph.js.map +0 -1
  219. package/dist/validators/validate-executable-graph.d.ts +0 -4
  220. package/dist/validators/validate-executable-graph.d.ts.map +0 -1
  221. package/dist/validators/validate-executable-graph.js +0 -9
  222. package/dist/validators/validate-executable-graph.js.map +0 -1
  223. package/dist/validators/validate-executable-plan.d.ts +0 -3
  224. package/dist/validators/validate-executable-plan.d.ts.map +0 -1
  225. package/dist/validators/validate-executable-plan.js +0 -211
  226. package/dist/validators/validate-executable-plan.js.map +0 -1
  227. package/dist/validators/validate-execution-trace.d.ts +0 -4
  228. package/dist/validators/validate-execution-trace.d.ts.map +0 -1
  229. package/dist/validators/validate-execution-trace.js +0 -158
  230. package/dist/validators/validate-execution-trace.js.map +0 -1
  231. package/dist/validators/validate-finalizer-node.d.ts +0 -4
  232. package/dist/validators/validate-finalizer-node.d.ts.map +0 -1
  233. package/dist/validators/validate-finalizer-node.js +0 -36
  234. package/dist/validators/validate-finalizer-node.js.map +0 -1
  235. package/dist/validators/validate-model-config.d.ts +0 -7
  236. package/dist/validators/validate-model-config.d.ts.map +0 -1
  237. package/dist/validators/validate-model-config.js +0 -197
  238. package/dist/validators/validate-model-config.js.map +0 -1
  239. package/dist/validators/validate-normalized-executable-graph.d.ts +0 -3
  240. package/dist/validators/validate-normalized-executable-graph.d.ts.map +0 -1
  241. package/dist/validators/validate-normalized-executable-graph.js +0 -26
  242. package/dist/validators/validate-normalized-executable-graph.js.map +0 -1
  243. package/dist/validators/validate-runtime-object.d.ts +0 -10
  244. package/dist/validators/validate-runtime-object.d.ts.map +0 -1
  245. package/dist/validators/validate-runtime-object.js +0 -63
  246. package/dist/validators/validate-runtime-object.js.map +0 -1
  247. package/dist/validators/validate-studio-execute-request.d.ts +0 -5
  248. package/dist/validators/validate-studio-execute-request.d.ts.map +0 -1
  249. package/dist/validators/validate-studio-execute-request.js +0 -37
  250. package/dist/validators/validate-studio-execute-request.js.map +0 -1
  251. package/dist/validators/validate-task-actions.d.ts +0 -4
  252. package/dist/validators/validate-task-actions.d.ts.map +0 -1
  253. package/dist/validators/validate-task-actions.js +0 -93
  254. package/dist/validators/validate-task-actions.js.map +0 -1
  255. package/dist/validators/validate-task-node.d.ts +0 -6
  256. package/dist/validators/validate-task-node.d.ts.map +0 -1
  257. package/dist/validators/validate-task-node.js +0 -43
  258. package/dist/validators/validate-task-node.js.map +0 -1
  259. package/schema/graphenix-executable-format-1.0.0.schema.json +0 -40
@@ -0,0 +1,297 @@
1
+ import assert from "node:assert/strict";
2
+ import { describe, it } from "node:test";
3
+ import { createMinimalExecutableGraph, createContentPipelineReferenceGraph, validateAuthoringGraph, validateConceptDocument, validateExecutableProfileExtension, preservesSiblingTaskNodeFields, validateTaskNode, isLocalSkillKey, TASK_NODE_KIND, TASK_NODE_PROFILE } from "../api.js";
4
+ function withTaskNodeParams(doc, patch) {
5
+ const next = structuredClone(doc);
6
+ const node = next.graph.nodes.find((n) => n.kind === TASK_NODE_KIND);
7
+ node.parameters = {
8
+ ...(node.parameters ?? {}),
9
+ ...patch
10
+ };
11
+ return next;
12
+ }
13
+ describe("Phase 1: task-node-format (TN-*)", () => {
14
+ it("TN-SUB-001: Node with taskVariable.question validates", () => {
15
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
16
+ taskVariable: { question: "What is the answer?" }
17
+ });
18
+ const result = validateAuthoringGraph(doc);
19
+ assert.equal(result.valid, true, result.errors.map((e) => e.message).join("; "));
20
+ });
21
+ it("TN-SUB-002: Node with outputContract validates", () => {
22
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
23
+ taskVariable: { outputContract: { type: "object" } }
24
+ });
25
+ const result = validateAuthoringGraph(doc);
26
+ assert.equal(result.valid, true);
27
+ });
28
+ it("TN-SUB-003: Node without taskVariable validates for standard skill", () => {
29
+ const doc = createMinimalExecutableGraph();
30
+ const result = validateAuthoringGraph(doc);
31
+ assert.equal(result.valid, true);
32
+ });
33
+ it("TN-IN-001: inputsConfig executionMemoryPath binding validates", () => {
34
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
35
+ inputsConfig: {
36
+ record: { executionMemoryPath: "executionMemory.input.record" }
37
+ }
38
+ });
39
+ const result = validateAuthoringGraph(doc);
40
+ assert.equal(result.valid, true);
41
+ });
42
+ it("TN-IN-002: literal input binding validates", () => {
43
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
44
+ inputsConfig: { mode: { literal: "fast" } }
45
+ });
46
+ const result = validateAuthoringGraph(doc);
47
+ assert.equal(result.valid, true);
48
+ });
49
+ it("TN-IN-003: missing path on path binding fails", () => {
50
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
51
+ inputsConfig: { record: { executionMemoryPath: "" } }
52
+ });
53
+ const node = doc.graph.nodes.find((n) => n.kind === TASK_NODE_KIND);
54
+ const errors = validateTaskNode(node, doc);
55
+ assert.ok(errors.some((e) => e.code === "TASK_INPUT_BINDING_PATH_MISSING"));
56
+ });
57
+ it("TN-SI-001: smartInput with executionMemory path validates", () => {
58
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
59
+ smartInput: {
60
+ paths: [{ path: "executionMemory.input.record", label: "Record" }]
61
+ }
62
+ });
63
+ const result = validateAuthoringGraph(doc);
64
+ assert.equal(result.valid, true);
65
+ });
66
+ it("TN-SI-002: smartInput path without path fails", () => {
67
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
68
+ smartInput: { paths: [{ label: "missing path" }] }
69
+ });
70
+ const node = doc.graph.nodes.find((n) => n.kind === TASK_NODE_KIND);
71
+ const errors = validateTaskNode(node, doc);
72
+ assert.ok(errors.some((e) => e.code === "SMART_INPUT_PATH_MISSING"));
73
+ });
74
+ it("TN-EM-001: executionMapping replace validates", () => {
75
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
76
+ executionMapping: { path: "executionMemory.output", mode: "replace" }
77
+ });
78
+ const result = validateAuthoringGraph(doc);
79
+ assert.equal(result.valid, true);
80
+ });
81
+ it("TN-EM-004: executionMapping without path fails", () => {
82
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
83
+ executionMapping: { mode: "merge" }
84
+ });
85
+ const node = doc.graph.nodes.find((n) => n.kind === TASK_NODE_KIND);
86
+ const errors = validateTaskNode(node, doc);
87
+ assert.ok(errors.some((e) => e.code === "EXECUTION_MAPPING_PATH_MISSING"));
88
+ });
89
+ it("TN-PIPE-003: executionStrategies = [] is preserved and valid", () => {
90
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
91
+ taskConfiguration: { executionStrategies: [] }
92
+ });
93
+ const result = validateAuthoringGraph(doc);
94
+ assert.equal(result.valid, true);
95
+ });
96
+ it("TN-PIPE-001: PRE-phase utility strategy key synthesis validates", () => {
97
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
98
+ taskConfiguration: { aiTaskStrategies: { pre: "synthesis" } }
99
+ });
100
+ const result = validateAuthoringGraph(doc);
101
+ assert.equal(result.valid, true);
102
+ });
103
+ it("TN-COND-001: jsonCondition on task validates", () => {
104
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
105
+ conditions: { jsonConditions: [{ path: "runtime.mode", eq: "live" }] }
106
+ });
107
+ const result = validateAuthoringGraph(doc);
108
+ assert.equal(result.valid, true);
109
+ });
110
+ it("TN-LOCAL-001: scoped-data-reader validates as local skill", () => {
111
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
112
+ skillKey: "scoped-data-reader"
113
+ });
114
+ assert.equal(isLocalSkillKey("scoped-data-reader"), true);
115
+ const result = validateAuthoringGraph(doc);
116
+ assert.equal(result.valid, true);
117
+ });
118
+ it("TN-CG-001: invokeGraphId on taskConfiguration validates", () => {
119
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
120
+ taskConfiguration: { invokeGraphId: "graph:called-subgraph" }
121
+ });
122
+ const result = validateAuthoringGraph(doc);
123
+ assert.equal(result.valid, true);
124
+ });
125
+ it("TN-CG-002: empty invokeGraphId fails", () => {
126
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
127
+ taskConfiguration: { invokeGraphId: " " }
128
+ });
129
+ const node = doc.graph.nodes.find((n) => n.kind === TASK_NODE_KIND);
130
+ const errors = validateTaskNode(node, doc);
131
+ assert.ok(errors.some((e) => e.code === "TASK_CALL_GRAPH_INVALID"));
132
+ });
133
+ it("TN-LAY-001: node.layout with x,y validates", () => {
134
+ const doc = createMinimalExecutableGraph();
135
+ const node = doc.graph.nodes.find((n) => n.kind === TASK_NODE_KIND);
136
+ node.layout = { x: 120, y: 80 };
137
+ const result = validateAuthoringGraph(doc);
138
+ assert.equal(result.valid, true);
139
+ });
140
+ it("TN-LAY-002: invalid layout axis fails", () => {
141
+ const doc = createMinimalExecutableGraph();
142
+ const node = doc.graph.nodes.find((n) => n.kind === TASK_NODE_KIND);
143
+ node.layout = { x: "bad", y: 80 };
144
+ const errors = validateTaskNode(node, doc);
145
+ assert.ok(errors.some((e) => e.code === "NODE_LAYOUT_INVALID"));
146
+ });
147
+ });
148
+ describe("Phase 1: executable-profile-format (EX-PROF-*)", () => {
149
+ it("EX-PROF-001: Graph with graphenix.executable/v1 extension validates", () => {
150
+ const doc = createMinimalExecutableGraph();
151
+ const result = validateExecutableProfileExtension(doc);
152
+ assert.equal(result.valid, true);
153
+ });
154
+ it("EX-PROF-002: Graph with taskVariable beside model config does not fail", () => {
155
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
156
+ taskVariable: { question: "Q?" },
157
+ taskConfiguration: {
158
+ modelConfig: {
159
+ inherit: true,
160
+ cases: [
161
+ {
162
+ id: "default",
163
+ modelConfig: {
164
+ skillModel: { kind: "profileChoice", key: "vol/default" }
165
+ }
166
+ }
167
+ ]
168
+ }
169
+ }
170
+ });
171
+ const result = validateExecutableProfileExtension(doc, { mode: "extensionOnly" });
172
+ assert.equal(result.valid, true);
173
+ assert.equal(preservesSiblingTaskNodeFields(doc.graph.nodes[0].parameters), true);
174
+ });
175
+ it("EX-PROF-003: Graph with aiTaskStrategies beside model config does not fail", () => {
176
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
177
+ taskConfiguration: {
178
+ aiTaskStrategies: { pre: "synthesis", post: "validate" },
179
+ modelConfig: { inherit: true }
180
+ }
181
+ });
182
+ const result = validateExecutableProfileExtension(doc);
183
+ assert.equal(result.valid, true);
184
+ });
185
+ it("EX-PROF-004: Unknown sibling task-node fields are ignored by extension validator", () => {
186
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
187
+ customFutureField: { foo: "bar" },
188
+ inputsConfig: { x: { literal: 1 } }
189
+ });
190
+ const result = validateExecutableProfileExtension(doc);
191
+ assert.equal(result.valid, true);
192
+ });
193
+ });
194
+ describe("Phase 1: authoring-format composer (AUTH-*)", () => {
195
+ it("AUTH-001: minimal executable graph validates", () => {
196
+ const doc = createMinimalExecutableGraph();
197
+ const result = validateAuthoringGraph(doc);
198
+ assert.equal(result.valid, true);
199
+ assert.equal(doc.name, "Minimal Executable Graph");
200
+ });
201
+ it("AUTH-001c: Content pipeline reference graph validates", () => {
202
+ const doc = createContentPipelineReferenceGraph();
203
+ const result = validateAuthoringGraph(doc);
204
+ assert.equal(result.valid, true, result.errors.map((e) => e.message).join("; "));
205
+ assert.equal(doc.id, "graph:content-pipeline");
206
+ assert.equal(doc.name, "Content pipeline");
207
+ assert.equal(doc.graph.nodes.filter((n) => n.kind === TASK_NODE_KIND).length, 3);
208
+ const task = doc.graph.nodes.find((n) => n.id === "node:audience-insights");
209
+ const tc = task.parameters.taskConfiguration;
210
+ const strategies = tc.aiTaskStrategies;
211
+ assert.equal(strategies.pre, "synthesis");
212
+ assert.equal(strategies.preInputStrategy, "execution-memory-only");
213
+ assert.deepEqual(tc.executionStrategies, []);
214
+ assert.equal("post" in strategies, false);
215
+ });
216
+ it("AUTH-002: Authoring graph preserves taskVariable", () => {
217
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
218
+ taskVariable: { question: " preserved " }
219
+ });
220
+ const result = validateAuthoringGraph(doc);
221
+ assert.equal(result.valid, true);
222
+ const node = doc.graph.nodes.find((n) => n.kind === TASK_NODE_KIND);
223
+ assert.deepEqual(node.parameters.taskVariable, { question: " preserved " });
224
+ });
225
+ it("AUTH-003: Authoring graph preserves inputsConfig", () => {
226
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
227
+ inputsConfig: { record: { executionMemoryPath: "executionMemory.input" } }
228
+ });
229
+ validateAuthoringGraph(doc);
230
+ const node = doc.graph.nodes.find((n) => n.kind === TASK_NODE_KIND);
231
+ assert.ok(node.parameters.inputsConfig);
232
+ });
233
+ it("AUTH-005: Authoring graph preserves aiTaskStrategies", () => {
234
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
235
+ taskConfiguration: { aiTaskStrategies: { pre: "synthesis" } }
236
+ });
237
+ validateAuthoringGraph(doc);
238
+ const tc = doc.graph.nodes[0].parameters.taskConfiguration;
239
+ assert.deepEqual(tc.aiTaskStrategies, { pre: "synthesis" });
240
+ });
241
+ it("AUTH-007: Authoring graph rejects jobId at graph root", () => {
242
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {});
243
+ doc.jobId = "job-123";
244
+ const result = validateAuthoringGraph(doc);
245
+ assert.equal(result.valid, false);
246
+ assert.ok(result.errors.some((e) => e.code === "AUTHORING_FORBIDDEN_RUNTIME_FIELD"));
247
+ });
248
+ it("AUTH-008: Authoring graph rejects trace events", () => {
249
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {});
250
+ doc.traceEvents = [];
251
+ const result = validateAuthoringGraph(doc);
252
+ assert.ok(result.errors.some((e) => e.code === "AUTHORING_FORBIDDEN_RUNTIME_FIELD"));
253
+ });
254
+ it("AUTH-009: Authoring graph rejects credentials", () => {
255
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {});
256
+ doc.credentials = { openai: "secret" };
257
+ const result = validateAuthoringGraph(doc);
258
+ assert.ok(result.errors.some((e) => e.code === "AUTHORING_FORBIDDEN_RUNTIME_FIELD"));
259
+ });
260
+ it("AUTH-010: Authoring validation does not require preActions[] in design", () => {
261
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {
262
+ taskConfiguration: {
263
+ aiTaskStrategies: { pre: "synthesis" },
264
+ executionStrategies: []
265
+ }
266
+ });
267
+ const result = validateAuthoringGraph(doc);
268
+ assert.equal(result.valid, true);
269
+ });
270
+ it("supports graphenix.task-node/v1 profile on task nodes", () => {
271
+ const doc = withTaskNodeParams(createMinimalExecutableGraph(), {});
272
+ const node = doc.graph.nodes.find((n) => n.kind === TASK_NODE_KIND);
273
+ node.parameters.profile = TASK_NODE_PROFILE;
274
+ const result = validateAuthoringGraph(doc);
275
+ assert.equal(result.valid, true);
276
+ });
277
+ it("rejects deprecated task node profile values", () => {
278
+ const doc = createMinimalExecutableGraph();
279
+ const node = doc.graph.nodes.find((n) => n.kind === TASK_NODE_KIND);
280
+ node.parameters.profile = "graphenix.executable/v1";
281
+ const result = validateAuthoringGraph(doc);
282
+ assert.equal(result.valid, false);
283
+ assert.ok(result.errors.some((e) => e.code === "TASK_NODE_PROFILE_INVALID"));
284
+ });
285
+ it("AUTH-011: ConceptDocument validates separately from authoring graph", () => {
286
+ const result = validateConceptDocument({
287
+ formatVersion: "graphenix.concept/v1",
288
+ graphId: "graph:content-pipeline",
289
+ name: "Content pipeline",
290
+ graphConcept: {
291
+ primaryIntentStatement: "Turn a campaign brief into a structured content package."
292
+ }
293
+ });
294
+ assert.equal(result.valid, true);
295
+ });
296
+ });
297
+ //# sourceMappingURL=phase-1-format.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-1-format.test.js","sourceRoot":"","sources":["../../src/test/phase-1-format.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,56 +1,69 @@
1
- {
2
- "name": "@x12i/graphenix-executable-format",
3
- "version": "1.0.0",
4
- "description": "X12i executable graph profile: deterministic model cases, profileChoice validation via @x12i/ai-profiles, compile/trace lifecycle, studio adapter.",
5
- "license": "MIT",
6
- "main": "dist/index.cjs",
7
- "module": "dist/index.mjs",
8
- "types": "dist/index.d.ts",
9
- "scripts": {
10
- "build": "tsc -p tsconfig.json && tsc -p tsconfig.cjs.json",
11
- "clean": "rimraf dist",
12
- "test": "npm run build && node --test dist/test/*.test.js",
13
- "prepare": "npm run build"
14
- },
15
- "files": [
16
- "dist",
17
- "schema",
18
- "docs"
19
- ],
20
- "keywords": [
21
- "graph",
22
- "graphenix",
23
- "executable",
24
- "workflow",
25
- "validation",
26
- "ai-profiles",
27
- "profileChoice",
28
- "deterministic"
29
- ],
30
- "repository": {
31
- "type": "git",
32
- "url": "git+https://github.com/x12i/graphenix-format.git",
33
- "directory": "packages/executable-format"
34
- },
35
- "bugs": {
36
- "url": "https://github.com/x12i/graphenix-format/issues"
37
- },
38
- "homepage": "https://github.com/x12i/graphenix-format/tree/master/packages/executable-format#readme",
39
- "publishConfig": {
40
- "access": "public",
41
- "registry": "https://registry.npmjs.org/"
42
- },
43
- "peerDependencies": {
44
- "@x12i/graphenix-core": "^2.0.0"
45
- },
46
- "dependencies": {
47
- "@x12i/ai-profiles": "^3.2.0",
48
- "@x12i/graphenix-core": "^2.0.0",
49
- "ajv": "^8.17.1"
50
- },
51
- "devDependencies": {
52
- "@types/node": "^22.10.1",
53
- "rimraf": "^6.0.1",
54
- "typescript": "^5.6.3"
55
- }
56
- }
1
+ {
2
+ "name": "@x12i/graphenix-executable-format",
3
+ "version": "2.0.1",
4
+ "description": "Umbrella package: re-exports graphenix executable lifecycle packages for convenience.",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js",
13
+ "default": "./dist/index.js"
14
+ }
15
+ },
16
+ "scripts": {
17
+ "build": "tsc -p tsconfig.json",
18
+ "clean": "rimraf dist",
19
+ "test": "npm run build && node --test dist/test/*.test.js"
20
+ },
21
+ "files": [
22
+ "dist",
23
+ "docs",
24
+ "README.md"
25
+ ],
26
+ "keywords": [
27
+ "graph",
28
+ "graphenix",
29
+ "executable",
30
+ "workflow",
31
+ "validation",
32
+ "ai-profiles",
33
+ "profileChoice",
34
+ "deterministic"
35
+ ],
36
+ "repository": {
37
+ "type": "git",
38
+ "url": "git+https://github.com/x12i/graphenix-format.git",
39
+ "directory": "packages/executable-format"
40
+ },
41
+ "bugs": {
42
+ "url": "https://github.com/x12i/graphenix-format/issues"
43
+ },
44
+ "homepage": "https://github.com/x12i/graphenix-format/tree/master/packages/executable-format#readme",
45
+ "publishConfig": {
46
+ "access": "public",
47
+ "registry": "https://registry.npmjs.org/"
48
+ },
49
+ "peerDependencies": {
50
+ "@x12i/graphenix-core": "^2.0.0"
51
+ },
52
+ "dependencies": {
53
+ "@x12i/graphenix-authoring-format": "^1.0.2",
54
+ "@x12i/graphenix-case-format": "^1.0.0",
55
+ "@x12i/graphenix-core": "^2.0.0",
56
+ "@x12i/graphenix-executable-contracts": "^1.0.0",
57
+ "@x12i/graphenix-executable-profile-format": "^1.0.0",
58
+ "@x12i/graphenix-task-node-format": "^1.0.0",
59
+ "@x12i/graphenix-execute-envelope": "^1.0.0",
60
+ "@x12i/graphenix-plan-compiler": "^1.0.1",
61
+ "@x12i/graphenix-plan-format": "^1.0.0",
62
+ "@x12i/graphenix-trace-format": "^1.0.0"
63
+ },
64
+ "devDependencies": {
65
+ "@types/node": "^22.10.1",
66
+ "rimraf": "^6.0.1",
67
+ "typescript": "^5.6.3"
68
+ }
69
+ }
@@ -1,6 +0,0 @@
1
- import type { GraphExecutionRequest, StudioGraphExecuteRequest } from "../types/studio-execute.js";
2
- export declare function buildGraphExecutionRequestFromStudioExecute(request: StudioGraphExecuteRequest, options?: {
3
- agentId?: string;
4
- jobTypeId?: string;
5
- }): GraphExecutionRequest;
6
- //# sourceMappingURL=build-graph-execution-request-from-studio-execute.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-graph-execution-request-from-studio-execute.d.ts","sourceRoot":"","sources":["../../src/adapter/build-graph-execution-request-from-studio-execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,yBAAyB,EAC1B,MAAM,4BAA4B,CAAC;AAMpC,wBAAgB,2CAA2C,CACzD,OAAO,EAAE,yBAAyB,EAClC,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,qBAAqB,CAyCvB"}
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildGraphExecutionRequestFromStudioExecute = buildGraphExecutionRequestFromStudioExecute;
4
- const validate_studio_execute_request_js_1 = require("../validators/validate-studio-execute-request.js");
5
- const validate_runtime_object_js_1 = require("../validators/validate-runtime-object.js");
6
- const compile_executable_plan_js_1 = require("../compile/compile-executable-plan.js");
7
- const validate_executable_plan_js_1 = require("../validators/validate-executable-plan.js");
8
- function buildGraphExecutionRequestFromStudioExecute(request, options = {}) {
9
- const validation = (0, validate_studio_execute_request_js_1.validateStudioExecuteRequest)(request);
10
- if (!validation.valid) {
11
- const summary = validation.errors
12
- .map((error) => `${error.path}: ${error.message}`)
13
- .join("; ");
14
- throw new Error(`Invalid studio execute request: ${summary}`);
15
- }
16
- const runtime = (0, validate_runtime_object_js_1.buildRuntimeObject)({
17
- jobId: request.jobId,
18
- input: request.runtime?.input,
19
- mode: request.graphExecution?.mode ?? request.runtime?.mode,
20
- runLogMode: request.runLogMode ?? request.runtime?.runLogMode,
21
- maxRunLogEntries: request.maxRunLogEntries ?? request.runtime?.maxRunLogEntries,
22
- maxRunLogDataJsonChars: request.maxRunLogDataJsonChars ??
23
- request.runtime?.maxRunLogDataJsonChars,
24
- runTaskDiagnostics: request.runTaskDiagnostics ?? request.runtime?.runTaskDiagnostics,
25
- variables: request.runtime?.variables,
26
- job: request.runtime?.job
27
- }, options);
28
- const plan = (0, compile_executable_plan_js_1.compileExecutablePlan)(request.graph, runtime);
29
- const planValidation = (0, validate_executable_plan_js_1.validateExecutablePlan)(plan);
30
- if (!planValidation.valid) {
31
- const summary = planValidation.errors
32
- .map((error) => `${error.path}: ${error.message}`)
33
- .join("; ");
34
- throw new Error(`Invalid executable plan: ${summary}`);
35
- }
36
- return {
37
- plan,
38
- runtime
39
- };
40
- }
41
- //# sourceMappingURL=build-graph-execution-request-from-studio-execute.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-graph-execution-request-from-studio-execute.js","sourceRoot":"","sources":["../../src/adapter/build-graph-execution-request-from-studio-execute.ts"],"names":[],"mappings":";;AASA,kGA+CC;AApDD,yGAAgG;AAChG,yFAA8E;AAC9E,sFAA8E;AAC9E,2FAAmF;AAEnF,SAAgB,2CAA2C,CACzD,OAAkC,EAClC,UAGI,EAAE;IAEN,MAAM,UAAU,GAAG,IAAA,iEAA4B,EAAC,OAAO,CAAC,CAAC;IACzD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM;aAC9B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;aACjD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,mCAAmC,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,+CAAkB,EAChC;QACE,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK;QAC7B,IAAI,EAAE,OAAO,CAAC,cAAc,EAAE,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI;QAC3D,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,UAAU;QAC7D,gBAAgB,EACd,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,OAAO,EAAE,gBAAgB;QAC/D,sBAAsB,EACpB,OAAO,CAAC,sBAAsB;YAC9B,OAAO,CAAC,OAAO,EAAE,sBAAsB;QACzC,kBAAkB,EAChB,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,OAAO,EAAE,kBAAkB;QACnE,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS;QACrC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG;KAC1B,EACD,OAAO,CACR,CAAC;IAEF,MAAM,IAAI,GAAG,IAAA,kDAAqB,EAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,IAAA,oDAAsB,EAAC,IAAI,CAAC,CAAC;IACpD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM;aAClC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;aACjD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,OAAO;QACL,IAAI;QACJ,OAAO;KACR,CAAC;AACJ,CAAC"}
@@ -1,4 +0,0 @@
1
- export declare function isForbiddenCaseSelectorKey(key: string): boolean;
2
- export declare function isForbiddenCasePath(path: string): boolean;
3
- export declare function isAllowedCasePath(path: string): boolean;
4
- //# sourceMappingURL=allowed-paths.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"allowed-paths.d.ts","sourceRoot":"","sources":["../../src/case-condition/allowed-paths.ts"],"names":[],"mappings":"AAoCA,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAoCvD"}
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isForbiddenCaseSelectorKey = isForbiddenCaseSelectorKey;
4
- exports.isForbiddenCasePath = isForbiddenCasePath;
5
- exports.isAllowedCasePath = isAllowedCasePath;
6
- const ALLOWED_PATH_ROOTS = [
7
- "runtime.mode",
8
- "runtime.environment",
9
- "runtime.job.agentId",
10
- "runtime.job.jobTypeId",
11
- "runtime.input",
12
- "runtime.variables",
13
- "runtime.flags",
14
- "runtime.context",
15
- "graph.revision",
16
- "graph.id"
17
- ];
18
- const FORBIDDEN_PATH_ROOTS = [
19
- "ai.",
20
- "llm.",
21
- "model.",
22
- "provider.",
23
- "node.output.",
24
- "executionMemory.ai.",
25
- "executionMemory.nodeOutputs.",
26
- "previousAiResult.",
27
- "semantic.",
28
- "classification."
29
- ];
30
- const FORBIDDEN_SELECTOR_KEYS = new Set([
31
- "ai",
32
- "llm",
33
- "semanticMatch",
34
- "function",
35
- "eval",
36
- "script",
37
- "prompt"
38
- ]);
39
- function isForbiddenCaseSelectorKey(key) {
40
- return FORBIDDEN_SELECTOR_KEYS.has(key);
41
- }
42
- function isForbiddenCasePath(path) {
43
- return FORBIDDEN_PATH_ROOTS.some((root) => path.startsWith(root));
44
- }
45
- function isAllowedCasePath(path) {
46
- if (isForbiddenCasePath(path)) {
47
- return false;
48
- }
49
- if (path === "runtime.mode" || path === "runtime.environment") {
50
- return true;
51
- }
52
- if (path === "runtime.job.agentId" || path === "runtime.job.jobTypeId") {
53
- return true;
54
- }
55
- if (path === "graph.id" || path === "graph.revision") {
56
- return true;
57
- }
58
- if (path.startsWith("runtime.input.") ||
59
- path === "runtime.input") {
60
- return true;
61
- }
62
- if (path.startsWith("runtime.variables.") ||
63
- path === "runtime.variables") {
64
- return true;
65
- }
66
- if (path.startsWith("runtime.flags.") || path === "runtime.flags") {
67
- return true;
68
- }
69
- if (path.startsWith("runtime.context.") || path === "runtime.context") {
70
- return true;
71
- }
72
- return ALLOWED_PATH_ROOTS.some((root) => path === root || path.startsWith(`${root}.`));
73
- }
74
- //# sourceMappingURL=allowed-paths.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"allowed-paths.js","sourceRoot":"","sources":["../../src/case-condition/allowed-paths.ts"],"names":[],"mappings":";;AAoCA,gEAEC;AAED,kDAEC;AAED,8CAoCC;AAhFD,MAAM,kBAAkB,GAAG;IACzB,cAAc;IACd,qBAAqB;IACrB,qBAAqB;IACrB,uBAAuB;IACvB,eAAe;IACf,mBAAmB;IACnB,eAAe;IACf,iBAAiB;IACjB,gBAAgB;IAChB,UAAU;CACF,CAAC;AAEX,MAAM,oBAAoB,GAAG;IAC3B,KAAK;IACL,MAAM;IACN,QAAQ;IACR,WAAW;IACX,cAAc;IACd,qBAAqB;IACrB,8BAA8B;IAC9B,mBAAmB;IACnB,WAAW;IACX,iBAAiB;CACT,CAAC;AAEX,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,IAAI;IACJ,KAAK;IACL,eAAe;IACf,UAAU;IACV,MAAM;IACN,QAAQ;IACR,QAAQ;CACT,CAAC,CAAC;AAEH,SAAgB,0BAA0B,CAAC,GAAW;IACpD,OAAO,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,qBAAqB,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,KAAK,qBAAqB,IAAI,IAAI,KAAK,uBAAuB,EAAE,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IACE,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;QACjC,IAAI,KAAK,eAAe,EACxB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IACE,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;QACrC,IAAI,KAAK,mBAAmB,EAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,kBAAkB,CAAC,IAAI,CAC5B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CACvD,CAAC;AACJ,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { CaseCondition, DeterministicCaseContext } from "../types/case-condition.js";
2
- export declare function evaluateCaseCondition(condition: CaseCondition, context: DeterministicCaseContext): boolean;
3
- export declare function explainMatchedCondition(condition: CaseCondition, context: DeterministicCaseContext): string[];
4
- //# sourceMappingURL=evaluate-case-condition.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evaluate-case-condition.d.ts","sourceRoot":"","sources":["../../src/case-condition/evaluate-case-condition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,wBAAwB,EACzB,MAAM,4BAA4B,CAAC;AAGpC,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAsBT;AAuED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,wBAAwB,GAChC,MAAM,EAAE,CAkCV"}