@x12i/graphenix-plan-format 1.0.0 → 1.1.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 (28) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +2 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/test/golden-fixtures.test.d.ts +2 -0
  6. package/dist/test/golden-fixtures.test.d.ts.map +1 -0
  7. package/dist/test/golden-fixtures.test.js +31 -0
  8. package/dist/test/golden-fixtures.test.js.map +1 -0
  9. package/dist/validators/validate-executable-plan-v2.d.ts.map +1 -1
  10. package/dist/validators/validate-executable-plan-v2.js +1 -81
  11. package/dist/validators/validate-executable-plan-v2.js.map +1 -1
  12. package/dist/validators/validate-execution-unit.d.ts +13 -0
  13. package/dist/validators/validate-execution-unit.d.ts.map +1 -0
  14. package/dist/validators/validate-execution-unit.js +221 -0
  15. package/dist/validators/validate-execution-unit.js.map +1 -0
  16. package/dist/validators/validate-node-execution-plan.d.ts +6 -0
  17. package/dist/validators/validate-node-execution-plan.d.ts.map +1 -0
  18. package/dist/validators/validate-node-execution-plan.js +39 -0
  19. package/dist/validators/validate-node-execution-plan.js.map +1 -0
  20. package/fixtures/content-pipeline.plan.json +1292 -0
  21. package/fixtures/nodes/node-audience-insights.plan.json +184 -0
  22. package/fixtures/nodes/node-execution-strategies.plan.json +162 -0
  23. package/fixtures/nodes/node-hand-authored-units.plan.json +75 -0
  24. package/fixtures/nodes/node-input-synthesis-profile.plan.json +105 -0
  25. package/fixtures/nodes/node-narrative-preprocessor.plan.json +112 -0
  26. package/fixtures/nodes/node-post-audit.plan.json +106 -0
  27. package/fixtures/nodes/node-professional-answer-plain.plan.json +70 -0
  28. package/package.json +6 -3
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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=golden-fixtures.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"golden-fixtures.test.d.ts","sourceRoot":"","sources":["../../src/test/golden-fixtures.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,31 @@
1
+ import assert from "node:assert/strict";
2
+ import { readFileSync } from "node:fs";
3
+ import { dirname, join } from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ import { describe, it } from "node:test";
6
+ import { createContentPipelineReferencePlan } from "@x12i/graphenix-plan-compiler";
7
+ import { validateExecutablePlanV2 } from "../validators/validate-executable-plan-v2.js";
8
+ const FIXTURE_DIR = join(dirname(fileURLToPath(import.meta.url)), "../../fixtures");
9
+ const PROFILE_REGISTRY = {
10
+ version: "3.2.0",
11
+ registryHash: "sha256:profiles-content-pipeline-reference"
12
+ };
13
+ describe("plan-format golden fixtures", () => {
14
+ it("content-pipeline.plan.json validates as v2 executable plan", () => {
15
+ const golden = JSON.parse(readFileSync(join(FIXTURE_DIR, "content-pipeline.plan.json"), "utf8"));
16
+ assert.equal(validateExecutablePlanV2(golden).valid, true);
17
+ assert.equal(golden.source.graphId, "graph:content-pipeline");
18
+ assert.ok(golden.nodePlans["node:audience-insights"]);
19
+ });
20
+ it("golden plan matches createContentPipelineReferencePlan", () => {
21
+ const golden = JSON.parse(readFileSync(join(FIXTURE_DIR, "content-pipeline.plan.json"), "utf8"));
22
+ const generated = createContentPipelineReferencePlan({
23
+ jobId: "job-content-pipeline-reference",
24
+ profileRegistry: PROFILE_REGISTRY
25
+ });
26
+ assert.equal(golden.planId, generated.planId);
27
+ assert.equal(golden.source.graphId, generated.source.graphId);
28
+ assert.deepEqual(Object.keys(golden.nodePlans).sort(), Object.keys(generated.nodePlans).sort());
29
+ });
30
+ });
31
+ //# sourceMappingURL=golden-fixtures.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"golden-fixtures.test.js","sourceRoot":"","sources":["../../src/test/golden-fixtures.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,kCAAkC,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AAExF,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;AACpF,MAAM,gBAAgB,GAAG;IACvB,OAAO,EAAE,OAAO;IAChB,YAAY,EAAE,4CAA4C;CAC3D,CAAC;AAEF,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,4BAA4B,CAAC,EAAE,MAAM,CAAC,CACtE,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;QAC9D,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,4BAA4B,CAAC,EAAE,MAAM,CAAC,CACtE,CAAC;QACF,MAAM,SAAS,GAAG,kCAAkC,CAAC;YACnD,KAAK,EAAE,gCAAgC;YACvC,eAAe,EAAE,gBAAgB;SAClC,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,CAAC,SAAS,CACd,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EACpC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CACxC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,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"}