@x12i/graphenix-plan-format 1.0.0 → 1.1.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.
package/dist/index.d.ts CHANGED
@@ -1,2 +1,4 @@
1
1
  export { validateExecutablePlan, validateExecutablePlanV1, validateExecutablePlanV2 } from "./validators/validate-executable-plan.js";
2
+ export { validateExecutionUnit, validateExecutionUnitsV2, UNIT_KIND_INVOKE_MODE, AI_UNIT_KINDS, ORCHESTRATOR_OWNED_UNIT_KINDS } from "./validators/validate-execution-unit.js";
3
+ export { validateNodeExecutionPlan } from "./validators/validate-node-execution-plan.js";
2
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,0CAA0C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,aAAa,EACb,6BAA6B,EAC9B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,4 @@
1
1
  export { validateExecutablePlan, validateExecutablePlanV1, validateExecutablePlanV2 } from "./validators/validate-executable-plan.js";
2
+ export { validateExecutionUnit, validateExecutionUnitsV2, UNIT_KIND_INVOKE_MODE, AI_UNIT_KINDS, ORCHESTRATOR_OWNED_UNIT_KINDS } from "./validators/validate-execution-unit.js";
3
+ export { validateNodeExecutionPlan } from "./validators/validate-node-execution-plan.js";
2
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,0CAA0C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,aAAa,EACb,6BAA6B,EAC9B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-executable-plan-v2.d.ts","sourceRoot":"","sources":["../../src/validators/validate-executable-plan-v2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAqkB5F,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,OAAO,GACZ,+BAA+B,CA+iBjC"}
1
+ {"version":3,"file":"validate-executable-plan-v2.d.ts","sourceRoot":"","sources":["../../src/validators/validate-executable-plan-v2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAwZ5F,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,OAAO,GACZ,+BAA+B,CA+iBjC"}
@@ -3,6 +3,7 @@ import { execError, getExecutableProfile, getFinalizerNodeConfig, getTaskNodeCon
3
3
  import { EXECUTABLE_PROFILE_PATH } from "@x12i/graphenix-executable-contracts";
4
4
  import { validateNormalizedExecutableGraph } from "@x12i/graphenix-authoring-format";
5
5
  import { isProfileChoiceKeyFormat } from "@x12i/graphenix-authoring-format";
6
+ import { validateExecutionUnitsV2 } from "./validate-execution-unit.js";
6
7
  const FORBIDDEN_PLAN_FIELDS = [
7
8
  "credentials",
8
9
  "openrouterApiKey",
@@ -17,23 +18,6 @@ const AI_MODEL_SLOTS = [
17
18
  "postActionModel",
18
19
  "finalizerModel"
19
20
  ];
20
- const UNIT_KIND_INVOKE_MODE = {
21
- externalPreUtility: "externalRunTask",
22
- mainSkill: "mainRunTask",
23
- pipelinePhase: "pipelinePhase",
24
- externalPostUtility: "externalRunTask",
25
- localSkill: "local",
26
- finalizer: "finalizer",
27
- validation: "none",
28
- mapping: "none"
29
- };
30
- const AI_UNIT_KINDS = new Set([
31
- "externalPreUtility",
32
- "mainSkill",
33
- "pipelinePhase",
34
- "externalPostUtility",
35
- "finalizer"
36
- ]);
37
21
  function containsForbiddenFields(value, path, errors) {
38
22
  if (!isRecord(value))
39
23
  return;
@@ -76,70 +60,6 @@ function getEmbeddedGraph(plan) {
76
60
  return normalizedGraph.graph;
77
61
  return undefined;
78
62
  }
79
- function validateExecutionUnitsV2(nodeId, executionUnits, executionClass, directModelPolicy, errors) {
80
- if (executionUnits.length === 0) {
81
- errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `nodePlans.${nodeId}.executionUnits must contain at least one unit.`, `/nodePlans/${nodeId}/executionUnits`));
82
- return;
83
- }
84
- const seenUnitIds = new Set();
85
- const seenOrders = new Set();
86
- let mainSkillCount = 0;
87
- for (const [index, unit] of executionUnits.entries()) {
88
- const path = `/nodePlans/${nodeId}/executionUnits/${index}`;
89
- if (!isRecord(unit)) {
90
- errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `Execution unit ${index} on node ${nodeId} must be an object.`, path));
91
- continue;
92
- }
93
- if (typeof unit.unitId !== "string" || unit.unitId.length === 0) {
94
- errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `Execution unit ${index} on node ${nodeId} must define unitId.`, `${path}/unitId`));
95
- }
96
- else if (seenUnitIds.has(unit.unitId)) {
97
- errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `Duplicate execution unit id "${unit.unitId}" on node ${nodeId}.`, `${path}/unitId`));
98
- }
99
- else {
100
- seenUnitIds.add(unit.unitId);
101
- }
102
- if (unit.nodeId !== nodeId) {
103
- errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `Execution unit ${index} must reference nodeId ${nodeId}.`, `${path}/nodeId`));
104
- }
105
- if (typeof unit.order !== "number" || !Number.isInteger(unit.order)) {
106
- errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `Execution unit ${index} must define integer order.`, `${path}/order`));
107
- }
108
- else if (seenOrders.has(unit.order)) {
109
- errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `Duplicate execution unit order ${unit.order} on node ${nodeId}.`, `${path}/order`));
110
- }
111
- else {
112
- seenOrders.add(unit.order);
113
- }
114
- const unitKind = String(unit.unitKind ?? "");
115
- const expectedInvokeMode = UNIT_KIND_INVOKE_MODE[unitKind];
116
- if (!expectedInvokeMode) {
117
- errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `Unknown unitKind "${unitKind}" on node ${nodeId}.`, `${path}/unitKind`));
118
- }
119
- else if (unit.invokeMode !== expectedInvokeMode) {
120
- errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `Execution unit ${unit.unitId ?? index} must use invokeMode ${expectedInvokeMode}.`, `${path}/invokeMode`));
121
- }
122
- if (typeof unit.sourcePath !== "string") {
123
- errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `Execution unit ${index} must define sourcePath.`, `${path}/sourcePath`));
124
- }
125
- if (unitKind === "mainSkill") {
126
- mainSkillCount += 1;
127
- }
128
- if (AI_UNIT_KINDS.has(unitKind) && executionClass !== "localTask") {
129
- validateModelSelection(unit.modelSelection, `${path}/modelSelection`, directModelPolicy, errors);
130
- }
131
- }
132
- if (executionClass === "aiTask" && mainSkillCount !== 1) {
133
- errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `AI task node ${nodeId} must contain exactly one mainSkill unit.`, `/nodePlans/${nodeId}/executionUnits`));
134
- }
135
- const orders = [...seenOrders].sort((a, b) => a - b);
136
- for (let index = 0; index < orders.length; index += 1) {
137
- if (orders[index] !== index) {
138
- errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `Execution unit orders on node ${nodeId} must be contiguous starting at 0.`, `/nodePlans/${nodeId}/executionUnits`));
139
- break;
140
- }
141
- }
142
- }
143
63
  function validateTopology(plan, graph, errors) {
144
64
  const topology = plan.topology;
145
65
  if (!isRecord(topology)) {
@@ -1 +1 @@
1
- {"version":3,"file":"validate-executable-plan-v2.js","sourceRoot":"","sources":["../../src/validators/validate-executable-plan-v2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate-executable-plan-v2.js","sourceRoot":"","sources":["../../src/validators/validate-executable-plan-v2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { DirectModelPolicy, ExecutableGraphValidationError, ExecutableGraphValidationResult, ExecutionUnitPlanV2 } from "@x12i/graphenix-executable-contracts";
2
+ export declare const UNIT_KIND_INVOKE_MODE: Record<string, string>;
3
+ export declare const AI_UNIT_KINDS: Set<string>;
4
+ export declare const ORCHESTRATOR_OWNED_UNIT_KINDS: Set<string>;
5
+ export declare function validateExecutionUnit(unit: unknown, options?: {
6
+ nodeId?: string;
7
+ executionClass?: string;
8
+ directModelPolicy?: DirectModelPolicy;
9
+ path?: string;
10
+ }): ExecutableGraphValidationResult;
11
+ export declare function validateExecutionUnitsV2(nodeId: string, executionUnits: unknown[], executionClass: string, directModelPolicy: DirectModelPolicy, errors: ExecutableGraphValidationError[]): void;
12
+ export type { ExecutionUnitPlanV2 };
13
+ //# sourceMappingURL=validate-execution-unit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-execution-unit.d.ts","sourceRoot":"","sources":["../../src/validators/validate-execution-unit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,8BAA8B,EAC9B,+BAA+B,EAC/B,mBAAmB,EACpB,MAAM,sCAAsC,CAAC;AAa9C,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAaxD,CAAC;AAEF,eAAO,MAAM,aAAa,aASxB,CAAC;AAEH,eAAO,MAAM,6BAA6B,aAAqC,CAAC;AAqNhF,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,OAAO,EACb,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;CACV,GACL,+BAA+B,CAuGjC;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,OAAO,EAAE,EACzB,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,8BAA8B,EAAE,GACvC,IAAI,CAiGN;AAED,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,221 @@
1
+ import { execError, isAiModelSelection, isRecord } from "@x12i/graphenix-executable-contracts";
2
+ import { isProfileChoiceKeyFormat } from "@x12i/graphenix-authoring-format";
3
+ import { isAllowlistedReadPath } from "@x12i/graphenix-executable-contracts";
4
+ import { lookupStrategyKey, UNIT_KIND_MODEL_SLOT } from "@x12i/graphenix-executable-contracts";
5
+ export const UNIT_KIND_INVOKE_MODE = {
6
+ externalPreUtility: "externalRunTask",
7
+ mainSkill: "mainRunTask",
8
+ pipelinePhase: "pipelinePhase",
9
+ externalPostUtility: "externalRunTask",
10
+ narrativePreprocessor: "narrativePreprocessor",
11
+ narrativeHandler: "narrativeHandler",
12
+ executionStrategyPlanner: "executionStrategyPlanner",
13
+ localSkill: "local",
14
+ finalizer: "finalizer",
15
+ validation: "none",
16
+ mapping: "none",
17
+ callGraph: "none"
18
+ };
19
+ export const AI_UNIT_KINDS = new Set([
20
+ "externalPreUtility",
21
+ "mainSkill",
22
+ "pipelinePhase",
23
+ "externalPostUtility",
24
+ "narrativePreprocessor",
25
+ "narrativeHandler",
26
+ "executionStrategyPlanner",
27
+ "finalizer"
28
+ ]);
29
+ export const ORCHESTRATOR_OWNED_UNIT_KINDS = new Set(["mapping", "validation"]);
30
+ function validateDirectModelSelection(selection, path, policy, errors) {
31
+ if (!isRecord(selection) || selection.kind !== "model")
32
+ return;
33
+ if (policy === "forbidden" || policy === "breakGlassOnly") {
34
+ errors.push(execError("EXECUTABLE_PLAN_V2_DIRECT_MODEL_FORBIDDEN", `Direct model selection is not allowed under directModelPolicy=${policy}.`, path));
35
+ }
36
+ }
37
+ function validateModelSelection(selection, path, policy, errors) {
38
+ if (!isAiModelSelection(selection)) {
39
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", "modelSelection must be a valid AiModelSelection.", path));
40
+ return;
41
+ }
42
+ if (isRecord(selection) &&
43
+ selection.kind === "profileChoice" &&
44
+ typeof selection.key === "string" &&
45
+ !isProfileChoiceKeyFormat(selection.key)) {
46
+ errors.push(execError("PROFILE_CHOICE_KEY_FORMAT_INVALID", `Invalid profileChoice key format: ${selection.key}.`, path));
47
+ }
48
+ validateDirectModelSelection(selection, path, policy, errors);
49
+ }
50
+ function validateUnitInvokeContract(unit, path, errors) {
51
+ const unitKind = String(unit.unitKind ?? "");
52
+ if (ORCHESTRATOR_OWNED_UNIT_KINDS.has(unitKind)) {
53
+ return;
54
+ }
55
+ const contract = unit.invokeContract;
56
+ if (!isRecord(contract)) {
57
+ errors.push(execError("EXECUTABLE_PLAN_V2_INVOKE_CONTRACT_MISSING", `Execution unit must define invokeContract.`, `${path}/invokeContract`));
58
+ return;
59
+ }
60
+ if (!Array.isArray(contract.reads)) {
61
+ errors.push(execError("EXECUTABLE_PLAN_V2_INVOKE_CONTRACT_MISSING", `invokeContract.reads must be an array.`, `${path}/invokeContract/reads`));
62
+ }
63
+ else {
64
+ for (const [readIndex, readPath] of contract.reads.entries()) {
65
+ if (typeof readPath !== "string") {
66
+ errors.push(execError("EXECUTABLE_PLAN_V2_INVOKE_CONTRACT_MISSING", `invokeContract.reads[${readIndex}] must be a string.`, `${path}/invokeContract/reads/${readIndex}`));
67
+ }
68
+ else if (!isAllowlistedReadPath(readPath)) {
69
+ errors.push(execError("EXECUTABLE_PLAN_V2_INVOKE_CONTRACT_MISSING", `invokeContract.reads path not allowlisted: ${readPath}.`, `${path}/invokeContract/reads/${readIndex}`));
70
+ }
71
+ }
72
+ }
73
+ if (!Array.isArray(contract.writes)) {
74
+ errors.push(execError("EXECUTABLE_PLAN_V2_INVOKE_CONTRACT_MISSING", `invokeContract.writes must be an array.`, `${path}/invokeContract/writes`));
75
+ }
76
+ }
77
+ function validatePerKindRequiredFields(unit, path, errors) {
78
+ const unitKind = String(unit.unitKind ?? "");
79
+ if (unitKind === "externalPreUtility" ||
80
+ unitKind === "externalPostUtility" ||
81
+ unitKind === "narrativePreprocessor") {
82
+ if (typeof unit.strategyKey !== "string" || unit.strategyKey.length === 0) {
83
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `${unitKind} unit must define strategyKey.`, `${path}/strategyKey`));
84
+ }
85
+ else {
86
+ const entry = lookupStrategyKey(unit.strategyKey);
87
+ if (!entry) {
88
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `Unknown strategyKey "${unit.strategyKey}".`, `${path}/strategyKey`));
89
+ }
90
+ else if (entry.unitKind !== unitKind) {
91
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `strategyKey "${unit.strategyKey}" requires unitKind ${entry.unitKind}.`, `${path}/unitKind`));
92
+ }
93
+ }
94
+ }
95
+ if (unitKind === "mainSkill" || unitKind === "localSkill") {
96
+ if (typeof unit.skillKey !== "string" || unit.skillKey.length === 0) {
97
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `${unitKind} unit must define skillKey.`, `${path}/skillKey`));
98
+ }
99
+ }
100
+ if (unitKind === "executionStrategyPlanner") {
101
+ if (typeof unit.strategyKey !== "string") {
102
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `executionStrategyPlanner unit must define strategyKey.`, `${path}/strategyKey`));
103
+ }
104
+ }
105
+ const expectedSlot = UNIT_KIND_MODEL_SLOT[unitKind];
106
+ if (expectedSlot === null) {
107
+ if (unit.modelSelection !== undefined) {
108
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `${unitKind} unit must not define modelSelection.`, `${path}/modelSelection`));
109
+ }
110
+ return;
111
+ }
112
+ if (AI_UNIT_KINDS.has(unitKind)) {
113
+ const modelSlot = unit.modelSlot;
114
+ if (modelSlot !== expectedSlot) {
115
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `${unitKind} unit must use modelSlot ${expectedSlot}.`, `${path}/modelSlot`));
116
+ }
117
+ }
118
+ }
119
+ export function validateExecutionUnit(unit, options = {}) {
120
+ const errors = [];
121
+ const path = options.path ?? "";
122
+ const nodeId = options.nodeId ?? "";
123
+ const executionClass = options.executionClass ?? "aiTask";
124
+ const directModelPolicy = options.directModelPolicy ?? "forbidden";
125
+ if (!isRecord(unit)) {
126
+ return {
127
+ valid: false,
128
+ errors: [
129
+ execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", "Execution unit must be an object.", path)
130
+ ]
131
+ };
132
+ }
133
+ if (typeof unit.unitId !== "string" || unit.unitId.length === 0) {
134
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", "Execution unit must define unitId.", `${path}/unitId`));
135
+ }
136
+ if (nodeId && unit.nodeId !== nodeId) {
137
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `Execution unit must reference nodeId ${nodeId}.`, `${path}/nodeId`));
138
+ }
139
+ const unitKind = String(unit.unitKind ?? "");
140
+ const expectedInvokeMode = UNIT_KIND_INVOKE_MODE[unitKind];
141
+ if (!expectedInvokeMode) {
142
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `Unknown unitKind "${unitKind}".`, `${path}/unitKind`));
143
+ }
144
+ else if (unit.invokeMode !== expectedInvokeMode) {
145
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `Execution unit must use invokeMode ${expectedInvokeMode}.`, `${path}/invokeMode`));
146
+ }
147
+ if (typeof unit.order !== "number" || !Number.isInteger(unit.order)) {
148
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", "Execution unit must define integer order.", `${path}/order`));
149
+ }
150
+ if (typeof unit.sourcePath !== "string") {
151
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", "Execution unit must define sourcePath.", `${path}/sourcePath`));
152
+ }
153
+ validatePerKindRequiredFields(unit, path, errors);
154
+ validateUnitInvokeContract(unit, path, errors);
155
+ if (AI_UNIT_KINDS.has(unitKind) && executionClass !== "localTask") {
156
+ validateModelSelection(unit.modelSelection, `${path}/modelSelection`, directModelPolicy, errors);
157
+ }
158
+ if (unitKind === "localSkill" && unit.modelSelection !== undefined) {
159
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", "localSkill unit must not define modelSelection.", `${path}/modelSelection`));
160
+ }
161
+ return { valid: errors.length === 0, errors };
162
+ }
163
+ export function validateExecutionUnitsV2(nodeId, executionUnits, executionClass, directModelPolicy, errors) {
164
+ if (executionUnits.length === 0) {
165
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `nodePlans.${nodeId}.executionUnits must contain at least one unit.`, `/nodePlans/${nodeId}/executionUnits`));
166
+ return;
167
+ }
168
+ const seenUnitIds = new Set();
169
+ const seenOrders = new Set();
170
+ let mainSkillCount = 0;
171
+ let terminalWithoutMain = false;
172
+ for (const [index, unit] of executionUnits.entries()) {
173
+ const unitPath = `/nodePlans/${nodeId}/executionUnits/${index}`;
174
+ const result = validateExecutionUnit(unit, {
175
+ nodeId,
176
+ executionClass,
177
+ directModelPolicy,
178
+ path: unitPath
179
+ });
180
+ errors.push(...result.errors);
181
+ if (!isRecord(unit))
182
+ continue;
183
+ const unitId = String(unit.unitId ?? "");
184
+ if (unitId && seenUnitIds.has(unitId)) {
185
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `Duplicate execution unit id "${unitId}" on node ${nodeId}.`, `${unitPath}/unitId`));
186
+ }
187
+ else if (unitId) {
188
+ seenUnitIds.add(unitId);
189
+ }
190
+ if (typeof unit.order === "number") {
191
+ if (seenOrders.has(unit.order)) {
192
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `Duplicate execution unit order ${unit.order} on node ${nodeId}.`, `${unitPath}/order`));
193
+ }
194
+ else {
195
+ seenOrders.add(unit.order);
196
+ }
197
+ }
198
+ if (unit.unitKind === "mainSkill") {
199
+ mainSkillCount += 1;
200
+ }
201
+ if (unit.unitKind === "narrativeHandler" && unit.terminal === true) {
202
+ terminalWithoutMain = true;
203
+ }
204
+ }
205
+ if (executionClass === "aiTask") {
206
+ if (terminalWithoutMain && mainSkillCount > 0) {
207
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `Node ${nodeId} with terminal narrativeHandler must not include mainSkill.`, `/nodePlans/${nodeId}/executionUnits`));
208
+ }
209
+ else if (!terminalWithoutMain && mainSkillCount !== 1) {
210
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `AI task node ${nodeId} must contain exactly one mainSkill unit.`, `/nodePlans/${nodeId}/executionUnits`));
211
+ }
212
+ }
213
+ const orders = [...seenOrders].sort((a, b) => a - b);
214
+ for (let index = 0; index < orders.length; index += 1) {
215
+ if (orders[index] !== index) {
216
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNIT_INVALID", `Execution unit orders on node ${nodeId} must be contiguous starting at 0.`, `/nodePlans/${nodeId}/executionUnits`));
217
+ break;
218
+ }
219
+ }
220
+ }
221
+ //# sourceMappingURL=validate-execution-unit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-execution-unit.js","sourceRoot":"","sources":["../../src/validators/validate-execution-unit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { DirectModelPolicy, ExecutableGraphValidationResult, NodeExecutionPlan } from "@x12i/graphenix-executable-contracts";
2
+ export declare function validateNodeExecutionPlan(nodePlan: unknown, options?: {
3
+ directModelPolicy?: DirectModelPolicy;
4
+ }): ExecutableGraphValidationResult;
5
+ export type { NodeExecutionPlan };
6
+ //# sourceMappingURL=validate-node-execution-plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-node-execution-plan.d.ts","sourceRoot":"","sources":["../../src/validators/validate-node-execution-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,+BAA+B,EAC/B,iBAAiB,EAClB,MAAM,sCAAsC,CAAC;AAI9C,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,OAAO,EACjB,OAAO,GAAE;IACP,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CAClC,GACL,+BAA+B,CAkFjC;AAED,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { execError, isRecord } from "@x12i/graphenix-executable-contracts";
2
+ import { validateExecutionUnitsV2 } from "./validate-execution-unit.js";
3
+ export function validateNodeExecutionPlan(nodePlan, options = {}) {
4
+ const errors = [];
5
+ const directModelPolicy = options.directModelPolicy ?? "forbidden";
6
+ if (!isRecord(nodePlan)) {
7
+ return {
8
+ valid: false,
9
+ errors: [
10
+ execError("EXECUTABLE_PLAN_NODE_PLAN_MISSING", "Node execution plan must be an object.", "")
11
+ ]
12
+ };
13
+ }
14
+ const nodeId = String(nodePlan.nodeId ?? "");
15
+ if (nodeId.length === 0) {
16
+ errors.push(execError("EXECUTABLE_PLAN_NODE_PLAN_MISSING", "nodeId is required.", "/nodeId"));
17
+ }
18
+ const executionClass = String(nodePlan.executionClass ?? "aiTask");
19
+ if (executionClass === "localTask") {
20
+ if (nodePlan.modelSlots !== null) {
21
+ errors.push(execError("EXECUTABLE_PLAN_V2_LOCAL_TASK_REQUIRES_NULL_SLOTS", `Local task node ${nodeId} must have modelSlots = null.`, "/modelSlots"));
22
+ }
23
+ }
24
+ if (!isRecord(nodePlan.invokeContract)) {
25
+ errors.push(execError("EXECUTABLE_PLAN_V2_INVOKE_CONTRACT_MISSING", "invokeContract is required.", "/invokeContract"));
26
+ }
27
+ if (typeof nodePlan.sourcePath !== "string") {
28
+ errors.push(execError("EXECUTABLE_PLAN_V2_INVOKE_CONTRACT_MISSING", "sourcePath is required.", "/sourcePath"));
29
+ }
30
+ const executionUnits = nodePlan.executionUnits;
31
+ if (!Array.isArray(executionUnits)) {
32
+ errors.push(execError("EXECUTABLE_PLAN_EXECUTION_UNITS_MISSING", "executionUnits is required.", "/executionUnits"));
33
+ }
34
+ else if (nodeId) {
35
+ validateExecutionUnitsV2(nodeId, executionUnits, executionClass, directModelPolicy, errors);
36
+ }
37
+ return { valid: errors.length === 0, errors };
38
+ }
39
+ //# sourceMappingURL=validate-node-execution-plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-node-execution-plan.js","sourceRoot":"","sources":["../../src/validators/validate-node-execution-plan.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAExE,MAAM,UAAU,yBAAyB,CACvC,QAAiB,EACjB,UAEI,EAAE;IAEN,MAAM,MAAM,GAA8C,EAAE,CAAC;IAC7D,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,WAAW,CAAC;IAEnE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE;gBACN,SAAS,CACP,mCAAmC,EACnC,wCAAwC,EACxC,EAAE,CACH;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CACT,SAAS,CACP,mCAAmC,EACnC,qBAAqB,EACrB,SAAS,CACV,CACF,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,CAAC;IAEnE,IAAI,cAAc,KAAK,WAAW,EAAE,CAAC;QACnC,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CACT,SAAS,CACP,mDAAmD,EACnD,mBAAmB,MAAM,+BAA+B,EACxD,aAAa,CACd,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,IAAI,CACT,SAAS,CACP,4CAA4C,EAC5C,6BAA6B,EAC7B,iBAAiB,CAClB,CACF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CACT,SAAS,CACP,4CAA4C,EAC5C,yBAAyB,EACzB,aAAa,CACd,CACF,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;IAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CACT,SAAS,CACP,yCAAyC,EACzC,6BAA6B,EAC7B,iBAAiB,CAClB,CACF,CAAC;IACJ,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QAClB,wBAAwB,CACtB,MAAM,EACN,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,MAAM,CACP,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC"}
@@ -0,0 +1,184 @@
1
+ {
2
+ "nodeId": "node:audience-insights",
3
+ "nodeType": "task",
4
+ "executionClass": "aiTask",
5
+ "skillKey": "professional-answer",
6
+ "selectedCases": {
7
+ "graphModelCaseId": "default"
8
+ },
9
+ "modelSlots": {
10
+ "preActionModel": {
11
+ "selection": {
12
+ "kind": "profileChoice",
13
+ "key": "cheap/default"
14
+ },
15
+ "source": "graphDefault",
16
+ "inherited": true,
17
+ "graphCaseId": "default"
18
+ },
19
+ "skillModel": {
20
+ "selection": {
21
+ "kind": "profileChoice",
22
+ "key": "vol/default"
23
+ },
24
+ "source": "graphDefault",
25
+ "inherited": true,
26
+ "graphCaseId": "default"
27
+ },
28
+ "postActionModel": {
29
+ "selection": {
30
+ "kind": "profileChoice",
31
+ "key": "cheap/default"
32
+ },
33
+ "source": "graphDefault",
34
+ "inherited": true,
35
+ "graphCaseId": "default"
36
+ }
37
+ },
38
+ "invokeContract": {
39
+ "taskVariable": {
40
+ "question": "Who is the primary audience for this campaign?",
41
+ "outputContract": {
42
+ "shortAnswer": "One paragraph summary.",
43
+ "fullAnswer": "Bullet list of segments and pains."
44
+ }
45
+ },
46
+ "inputsConfig": {
47
+ "brief": {
48
+ "executionMemoryPath": "executionMemory.input"
49
+ }
50
+ },
51
+ "smartInput": {
52
+ "paths": [
53
+ {
54
+ "path": "executionMemory.input",
55
+ "label": "Campaign brief"
56
+ }
57
+ ]
58
+ },
59
+ "executionMapping": {
60
+ "path": "content.audience",
61
+ "mode": "replace",
62
+ "map": {
63
+ "shortAnswer": "output.parsed.shortAnswer",
64
+ "fullAnswer": "output.parsed.fullAnswer"
65
+ }
66
+ },
67
+ "pipeline": {
68
+ "executionStrategies": [],
69
+ "aiTaskStrategies": {
70
+ "pre": "synthesis",
71
+ "preInputStrategy": "execution-memory-only"
72
+ }
73
+ }
74
+ },
75
+ "executionUnits": [
76
+ {
77
+ "unitId": "unit:node:audience-insights:pre:0",
78
+ "nodeId": "node:audience-insights",
79
+ "unitKind": "externalPreUtility",
80
+ "invokeMode": "externalRunTask",
81
+ "order": 0,
82
+ "strategyKey": "synthesis",
83
+ "actionKey": "synthesis",
84
+ "modelSlot": "preActionModel",
85
+ "modelSelection": {
86
+ "kind": "profileChoice",
87
+ "key": "cheap/default"
88
+ },
89
+ "modelSource": "graphDefault",
90
+ "unitParams": {
91
+ "synthesisInputStrategy": "execution-memory-only"
92
+ },
93
+ "invokeContract": {
94
+ "reads": [
95
+ "executionMemory.input"
96
+ ],
97
+ "writes": [
98
+ {
99
+ "destination": "execution",
100
+ "key": "xynthesized",
101
+ "mode": "replace"
102
+ }
103
+ ],
104
+ "includeContextInPrompt": true
105
+ },
106
+ "sourcePath": "/graph/nodes/0/parameters/taskConfiguration/aiTaskStrategies/pre"
107
+ },
108
+ {
109
+ "unitId": "unit:node:audience-insights:main",
110
+ "nodeId": "node:audience-insights",
111
+ "unitKind": "mainSkill",
112
+ "invokeMode": "mainRunTask",
113
+ "order": 1,
114
+ "skillKey": "professional-answer",
115
+ "modelSlot": "skillModel",
116
+ "modelSelection": {
117
+ "kind": "profileChoice",
118
+ "key": "vol/default"
119
+ },
120
+ "modelSource": "graphDefault",
121
+ "invokeContract": {
122
+ "reads": [
123
+ "executionMemory.input"
124
+ ],
125
+ "writes": [
126
+ {
127
+ "destination": "response",
128
+ "key": "skillOutput",
129
+ "mode": "replace"
130
+ }
131
+ ]
132
+ },
133
+ "sourcePath": "/graph/nodes/0/parameters/skillKey"
134
+ },
135
+ {
136
+ "unitId": "unit:node:audience-insights:mapping",
137
+ "nodeId": "node:audience-insights",
138
+ "unitKind": "mapping",
139
+ "invokeMode": "none",
140
+ "order": 2,
141
+ "outputContract": {
142
+ "path": "content.audience",
143
+ "mode": "replace",
144
+ "map": {
145
+ "shortAnswer": "output.parsed.shortAnswer",
146
+ "fullAnswer": "output.parsed.fullAnswer"
147
+ }
148
+ },
149
+ "invokeContract": {
150
+ "reads": [
151
+ "response.skillOutput"
152
+ ],
153
+ "writes": [
154
+ {
155
+ "destination": "execution",
156
+ "key": "content.audience",
157
+ "mode": "replace"
158
+ }
159
+ ]
160
+ },
161
+ "sourcePath": "/graph/nodes/0/parameters/executionMapping"
162
+ }
163
+ ],
164
+ "outputMapping": {
165
+ "path": "content.audience",
166
+ "mode": "replace",
167
+ "map": {
168
+ "shortAnswer": "output.parsed.shortAnswer",
169
+ "fullAnswer": "output.parsed.fullAnswer"
170
+ }
171
+ },
172
+ "executionMapping": {
173
+ "path": "content.audience",
174
+ "mode": "replace",
175
+ "map": {
176
+ "shortAnswer": "output.parsed.shortAnswer",
177
+ "fullAnswer": "output.parsed.fullAnswer"
178
+ }
179
+ },
180
+ "planVersion": "graphenix.node-plan/v2.1",
181
+ "compiledAt": "2026-06-07T07:48:49.252Z",
182
+ "compilerVersion": "1.1.0",
183
+ "sourcePath": "/graph/nodes/0"
184
+ }
@@ -0,0 +1,162 @@
1
+ {
2
+ "nodeId": "node:professional-answer",
3
+ "nodeType": "task",
4
+ "executionClass": "aiTask",
5
+ "skillKey": "professional-answer",
6
+ "selectedCases": {
7
+ "graphModelCaseId": "default"
8
+ },
9
+ "modelSlots": {
10
+ "preActionModel": {
11
+ "selection": {
12
+ "kind": "profileChoice",
13
+ "key": "cheap/default"
14
+ },
15
+ "source": "graphDefault",
16
+ "inherited": true,
17
+ "graphCaseId": "default"
18
+ },
19
+ "skillModel": {
20
+ "selection": {
21
+ "kind": "profileChoice",
22
+ "key": "vol/default"
23
+ },
24
+ "source": "graphDefault",
25
+ "inherited": true,
26
+ "graphCaseId": "default"
27
+ },
28
+ "postActionModel": {
29
+ "selection": {
30
+ "kind": "profileChoice",
31
+ "key": "cheap/default"
32
+ },
33
+ "source": "graphDefault",
34
+ "inherited": true,
35
+ "graphCaseId": "default"
36
+ }
37
+ },
38
+ "invokeContract": {
39
+ "inputsConfig": {
40
+ "brief": {
41
+ "executionMemoryPath": "executionMemory.input"
42
+ }
43
+ },
44
+ "pipeline": {
45
+ "executionStrategies": [
46
+ {
47
+ "strategyKey": "planner",
48
+ "phase": "before",
49
+ "priority": 0
50
+ },
51
+ {
52
+ "strategyKey": "optimizer",
53
+ "phase": "after",
54
+ "priority": 0,
55
+ "maxIterations": 2
56
+ }
57
+ ],
58
+ "aiTaskStrategies": {
59
+ "pre": "synthesis",
60
+ "preInputStrategy": "execution-memory-only"
61
+ }
62
+ }
63
+ },
64
+ "executionUnits": [
65
+ {
66
+ "unitId": "unit:node:professional-answer:pre:0",
67
+ "nodeId": "node:professional-answer",
68
+ "unitKind": "externalPreUtility",
69
+ "invokeMode": "externalRunTask",
70
+ "order": 0,
71
+ "strategyKey": "synthesis",
72
+ "actionKey": "synthesis",
73
+ "modelSlot": "preActionModel",
74
+ "modelSelection": {
75
+ "kind": "profileChoice",
76
+ "key": "cheap/default"
77
+ },
78
+ "modelSource": "graphDefault",
79
+ "unitParams": {
80
+ "synthesisInputStrategy": "execution-memory-only"
81
+ },
82
+ "invokeContract": {
83
+ "reads": [
84
+ "executionMemory.input"
85
+ ],
86
+ "writes": [
87
+ {
88
+ "destination": "execution",
89
+ "key": "xynthesized",
90
+ "mode": "replace"
91
+ }
92
+ ],
93
+ "includeContextInPrompt": true
94
+ },
95
+ "sourcePath": "/graph/nodes/0/parameters/taskConfiguration/aiTaskStrategies/pre"
96
+ },
97
+ {
98
+ "unitId": "unit:node:professional-answer:planner:0",
99
+ "nodeId": "node:professional-answer",
100
+ "unitKind": "executionStrategyPlanner",
101
+ "invokeMode": "executionStrategyPlanner",
102
+ "order": 1,
103
+ "strategyKey": "execution-plan",
104
+ "modelSlot": "postActionModel",
105
+ "modelSelection": {
106
+ "kind": "profileChoice",
107
+ "key": "cheap/default"
108
+ },
109
+ "modelSource": "graphDefault",
110
+ "invokeContract": {
111
+ "reads": [
112
+ "executionMemory.input",
113
+ "input",
114
+ "response.skillOutput"
115
+ ],
116
+ "writes": [
117
+ {
118
+ "destination": "execution",
119
+ "key": "executionPlan",
120
+ "mode": "replace"
121
+ }
122
+ ]
123
+ },
124
+ "sourcePath": "/graph/nodes/0/parameters/taskConfiguration/executionStrategies/0"
125
+ },
126
+ {
127
+ "unitId": "unit:node:professional-answer:main",
128
+ "nodeId": "node:professional-answer",
129
+ "unitKind": "mainSkill",
130
+ "invokeMode": "mainRunTask",
131
+ "order": 2,
132
+ "skillKey": "professional-answer",
133
+ "modelSlot": "skillModel",
134
+ "modelSelection": {
135
+ "kind": "profileChoice",
136
+ "key": "vol/default"
137
+ },
138
+ "modelSource": "graphDefault",
139
+ "invokeContract": {
140
+ "reads": [
141
+ "executionMemory.input"
142
+ ],
143
+ "writes": [
144
+ {
145
+ "destination": "response",
146
+ "key": "skillOutput",
147
+ "mode": "replace"
148
+ }
149
+ ]
150
+ },
151
+ "sourcePath": "/graph/nodes/0/parameters/skillKey",
152
+ "optimizerPolicy": {
153
+ "strategyKey": "execution-evaluate-result",
154
+ "maxIterations": 2
155
+ }
156
+ }
157
+ ],
158
+ "planVersion": "graphenix.node-plan/v2.1",
159
+ "compiledAt": "2026-06-07T07:48:49.281Z",
160
+ "compilerVersion": "1.1.0",
161
+ "sourcePath": "/graph/nodes/0"
162
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "nodeId": "node:professional-answer",
3
+ "nodeType": "task",
4
+ "executionClass": "aiTask",
5
+ "skillKey": "professional-answer",
6
+ "selectedCases": {
7
+ "graphModelCaseId": "default"
8
+ },
9
+ "modelSlots": {
10
+ "preActionModel": {
11
+ "selection": {
12
+ "kind": "profileChoice",
13
+ "key": "cheap/default"
14
+ },
15
+ "source": "graphDefault",
16
+ "inherited": true,
17
+ "graphCaseId": "default"
18
+ },
19
+ "skillModel": {
20
+ "selection": {
21
+ "kind": "profileChoice",
22
+ "key": "vol/default"
23
+ },
24
+ "source": "graphDefault",
25
+ "inherited": true,
26
+ "graphCaseId": "default"
27
+ },
28
+ "postActionModel": {
29
+ "selection": {
30
+ "kind": "profileChoice",
31
+ "key": "cheap/default"
32
+ },
33
+ "source": "graphDefault",
34
+ "inherited": true,
35
+ "graphCaseId": "default"
36
+ }
37
+ },
38
+ "invokeContract": {
39
+ "pipeline": {
40
+ "executionStrategies": []
41
+ }
42
+ },
43
+ "executionUnits": [
44
+ {
45
+ "unitId": "unit:node:professional-answer:main",
46
+ "unitKind": "mainSkill",
47
+ "invokeMode": "mainRunTask",
48
+ "order": 0,
49
+ "skillKey": "professional-answer",
50
+ "modelSlot": "skillModel",
51
+ "modelSelection": {
52
+ "kind": "profileChoice",
53
+ "key": "vol/default"
54
+ },
55
+ "invokeContract": {
56
+ "reads": [
57
+ "executionMemory.input"
58
+ ],
59
+ "writes": [
60
+ {
61
+ "destination": "response",
62
+ "key": "skillOutput",
63
+ "mode": "replace"
64
+ }
65
+ ]
66
+ },
67
+ "sourcePath": "/graph/nodes/node:professional-answer/parameters/taskConfiguration/executionUnits/0",
68
+ "nodeId": "node:professional-answer"
69
+ }
70
+ ],
71
+ "planVersion": "graphenix.node-plan/v2.1",
72
+ "compiledAt": "2026-06-07T07:48:49.277Z",
73
+ "compilerVersion": "1.1.0",
74
+ "sourcePath": "/graph/nodes/0"
75
+ }
@@ -0,0 +1,112 @@
1
+ {
2
+ "nodeId": "node:professional-answer",
3
+ "nodeType": "task",
4
+ "executionClass": "aiTask",
5
+ "skillKey": "professional-answer",
6
+ "selectedCases": {
7
+ "graphModelCaseId": "default"
8
+ },
9
+ "modelSlots": {
10
+ "preActionModel": {
11
+ "selection": {
12
+ "kind": "profileChoice",
13
+ "key": "cheap/default"
14
+ },
15
+ "source": "graphDefault",
16
+ "inherited": true,
17
+ "graphCaseId": "default"
18
+ },
19
+ "skillModel": {
20
+ "selection": {
21
+ "kind": "profileChoice",
22
+ "key": "vol/default"
23
+ },
24
+ "source": "graphDefault",
25
+ "inherited": true,
26
+ "graphCaseId": "default"
27
+ },
28
+ "postActionModel": {
29
+ "selection": {
30
+ "kind": "profileChoice",
31
+ "key": "cheap/default"
32
+ },
33
+ "source": "graphDefault",
34
+ "inherited": true,
35
+ "graphCaseId": "default"
36
+ }
37
+ },
38
+ "invokeContract": {
39
+ "pipeline": {
40
+ "executionStrategies": [],
41
+ "narrix": {
42
+ "datasetId": "ds:campaign",
43
+ "attachToField": "executionMemory._narrative"
44
+ },
45
+ "narrixMode": "preprocessor"
46
+ }
47
+ },
48
+ "executionUnits": [
49
+ {
50
+ "unitId": "unit:node:professional-answer:narrative:pre",
51
+ "nodeId": "node:professional-answer",
52
+ "unitKind": "narrativePreprocessor",
53
+ "invokeMode": "narrativePreprocessor",
54
+ "order": 0,
55
+ "strategyKey": "narrative-preprocessor",
56
+ "modelSlot": "preActionModel",
57
+ "modelSelection": {
58
+ "kind": "profileChoice",
59
+ "key": "cheap/default"
60
+ },
61
+ "modelSource": "graphDefault",
62
+ "unitParams": {
63
+ "datasetId": "ds:campaign",
64
+ "attachToField": "executionMemory._narrative",
65
+ "enableWebScope": false
66
+ },
67
+ "invokeContract": {
68
+ "reads": [
69
+ "executionMemory.input",
70
+ "input"
71
+ ],
72
+ "writes": [
73
+ {
74
+ "destination": "execution",
75
+ "key": "executionMemory._narrative",
76
+ "mode": "merge"
77
+ }
78
+ ]
79
+ },
80
+ "sourcePath": "/graph/nodes/0/parameters/taskConfiguration/narrixMode"
81
+ },
82
+ {
83
+ "unitId": "unit:node:professional-answer:main",
84
+ "nodeId": "node:professional-answer",
85
+ "unitKind": "mainSkill",
86
+ "invokeMode": "mainRunTask",
87
+ "order": 1,
88
+ "skillKey": "professional-answer",
89
+ "modelSlot": "skillModel",
90
+ "modelSelection": {
91
+ "kind": "profileChoice",
92
+ "key": "vol/default"
93
+ },
94
+ "modelSource": "graphDefault",
95
+ "invokeContract": {
96
+ "reads": [],
97
+ "writes": [
98
+ {
99
+ "destination": "response",
100
+ "key": "skillOutput",
101
+ "mode": "replace"
102
+ }
103
+ ]
104
+ },
105
+ "sourcePath": "/graph/nodes/0/parameters/skillKey"
106
+ }
107
+ ],
108
+ "planVersion": "graphenix.node-plan/v2.1",
109
+ "compiledAt": "2026-06-07T07:48:49.271Z",
110
+ "compilerVersion": "1.1.0",
111
+ "sourcePath": "/graph/nodes/0"
112
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "nodeId": "node:professional-answer",
3
+ "nodeType": "task",
4
+ "executionClass": "aiTask",
5
+ "skillKey": "professional-answer",
6
+ "selectedCases": {
7
+ "graphModelCaseId": "default"
8
+ },
9
+ "modelSlots": {
10
+ "preActionModel": {
11
+ "selection": {
12
+ "kind": "profileChoice",
13
+ "key": "cheap/default"
14
+ },
15
+ "source": "graphDefault",
16
+ "inherited": true,
17
+ "graphCaseId": "default"
18
+ },
19
+ "skillModel": {
20
+ "selection": {
21
+ "kind": "profileChoice",
22
+ "key": "vol/default"
23
+ },
24
+ "source": "graphDefault",
25
+ "inherited": true,
26
+ "graphCaseId": "default"
27
+ },
28
+ "postActionModel": {
29
+ "selection": {
30
+ "kind": "profileChoice",
31
+ "key": "cheap/default"
32
+ },
33
+ "source": "graphDefault",
34
+ "inherited": true,
35
+ "graphCaseId": "default"
36
+ }
37
+ },
38
+ "invokeContract": {},
39
+ "executionUnits": [
40
+ {
41
+ "unitId": "unit:node:professional-answer:main",
42
+ "nodeId": "node:professional-answer",
43
+ "unitKind": "mainSkill",
44
+ "invokeMode": "mainRunTask",
45
+ "order": 0,
46
+ "skillKey": "professional-answer",
47
+ "modelSlot": "skillModel",
48
+ "modelSelection": {
49
+ "kind": "profileChoice",
50
+ "key": "vol/default"
51
+ },
52
+ "modelSource": "graphDefault",
53
+ "invokeContract": {
54
+ "reads": [],
55
+ "writes": [
56
+ {
57
+ "destination": "response",
58
+ "key": "skillOutput",
59
+ "mode": "replace"
60
+ }
61
+ ]
62
+ },
63
+ "sourcePath": "/graph/nodes/0/parameters/skillKey"
64
+ }
65
+ ],
66
+ "planVersion": "graphenix.node-plan/v2.1",
67
+ "compiledAt": "2026-06-07T07:48:49.264Z",
68
+ "compilerVersion": "1.1.0",
69
+ "sourcePath": "/graph/nodes/0"
70
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@x12i/graphenix-plan-format",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "ExecutableGraphPlan format: plan schema validation and canonicalization.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -19,6 +19,7 @@
19
19
  },
20
20
  "files": [
21
21
  "dist",
22
+ "fixtures",
22
23
  "README.md"
23
24
  ],
24
25
  "keywords": [
@@ -42,7 +43,7 @@
42
43
  },
43
44
  "dependencies": {
44
45
  "@x12i/graphenix-authoring-format": "^1.0.0",
45
- "@x12i/graphenix-executable-contracts": "^1.0.0"
46
+ "@x12i/graphenix-executable-contracts": "^1.1.0"
46
47
  },
47
48
  "devDependencies": {
48
49
  "@types/node": "^22.10.1",