@x12i/graphenix-executable-format 1.0.0 → 2.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.
@@ -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.0",
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.0",
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.0",
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,40 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://graphenix.dev/schema/graphenix-executable-format-1.0.0.json",
4
- "title": "Graphenix Executable Profile 1.0.0",
5
- "description": "JSON Schema fragment for x12i.executable/v1 profile under graph.metadata.extensions.",
6
- "type": "object",
7
- "required": ["profileVersion", "modelConfig"],
8
- "additionalProperties": true,
9
- "properties": {
10
- "profileVersion": {
11
- "const": "x12i.executable/v1"
12
- },
13
- "modelConfig": {
14
- "type": "object",
15
- "required": ["version", "cases"],
16
- "properties": {
17
- "version": { "const": "graph-model-config/v1" },
18
- "cases": {
19
- "type": "array",
20
- "minItems": 1,
21
- "items": {
22
- "type": "object",
23
- "required": ["id", "modelConfig"],
24
- "properties": {
25
- "id": { "type": "string" },
26
- "modelConfig": {
27
- "type": "object",
28
- "required": [
29
- "preActionModel",
30
- "skillModel",
31
- "postActionModel"
32
- ]
33
- }
34
- }
35
- }
36
- }
37
- }
38
- }
39
- }
40
- }