@x12i/graphenix-plan-compiler 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +192 -0
  2. package/dist/compile/build-deferred-gates.d.ts +8 -0
  3. package/dist/compile/build-deferred-gates.d.ts.map +1 -0
  4. package/dist/compile/build-deferred-gates.js +95 -0
  5. package/dist/compile/build-deferred-gates.js.map +1 -0
  6. package/dist/compile/build-finalizer-plans.d.ts +7 -0
  7. package/dist/compile/build-finalizer-plans.d.ts.map +1 -0
  8. package/dist/compile/build-finalizer-plans.js +54 -0
  9. package/dist/compile/build-finalizer-plans.js.map +1 -0
  10. package/dist/compile/build-node-execution-units-v2.d.ts +6 -0
  11. package/dist/compile/build-node-execution-units-v2.d.ts.map +1 -0
  12. package/dist/compile/build-node-execution-units-v2.js +172 -0
  13. package/dist/compile/build-node-execution-units-v2.js.map +1 -0
  14. package/dist/compile/build-node-execution-units.d.ts +6 -0
  15. package/dist/compile/build-node-execution-units.d.ts.map +1 -0
  16. package/dist/compile/build-node-execution-units.js +112 -0
  17. package/dist/compile/build-node-execution-units.js.map +1 -0
  18. package/dist/compile/build-node-invoke-contract.d.ts +5 -0
  19. package/dist/compile/build-node-invoke-contract.d.ts.map +1 -0
  20. package/dist/compile/build-node-invoke-contract.js +123 -0
  21. package/dist/compile/build-node-invoke-contract.js.map +1 -0
  22. package/dist/compile/build-plan-topology.d.ts +8 -0
  23. package/dist/compile/build-plan-topology.d.ts.map +1 -0
  24. package/dist/compile/build-plan-topology.js +84 -0
  25. package/dist/compile/build-plan-topology.js.map +1 -0
  26. package/dist/compile/compile-executable-plan-v2.d.ts +5 -0
  27. package/dist/compile/compile-executable-plan-v2.d.ts.map +1 -0
  28. package/dist/compile/compile-executable-plan-v2.js +251 -0
  29. package/dist/compile/compile-executable-plan-v2.js.map +1 -0
  30. package/dist/compile/compile-executable-plan.d.ts +5 -0
  31. package/dist/compile/compile-executable-plan.d.ts.map +1 -0
  32. package/dist/compile/compile-executable-plan.js +139 -0
  33. package/dist/compile/compile-executable-plan.js.map +1 -0
  34. package/dist/compile/phase-utility-strategy.d.ts +6 -0
  35. package/dist/compile/phase-utility-strategy.d.ts.map +1 -0
  36. package/dist/compile/phase-utility-strategy.js +22 -0
  37. package/dist/compile/phase-utility-strategy.js.map +1 -0
  38. package/dist/explain/explain-node-inheritance.d.ts +3 -0
  39. package/dist/explain/explain-node-inheritance.d.ts.map +1 -0
  40. package/dist/explain/explain-node-inheritance.js +38 -0
  41. package/dist/explain/explain-node-inheritance.js.map +1 -0
  42. package/dist/index.d.ts +15 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +15 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/resolution/build-deterministic-case-context.d.ts +9 -0
  47. package/dist/resolution/build-deterministic-case-context.d.ts.map +1 -0
  48. package/dist/resolution/build-deterministic-case-context.js +23 -0
  49. package/dist/resolution/build-deterministic-case-context.js.map +1 -0
  50. package/dist/resolution/resolve-graph-model-config.d.ts +12 -0
  51. package/dist/resolution/resolve-graph-model-config.d.ts.map +1 -0
  52. package/dist/resolution/resolve-graph-model-config.js +24 -0
  53. package/dist/resolution/resolve-graph-model-config.js.map +1 -0
  54. package/dist/resolution/resolve-node-ai-plan.d.ts +7 -0
  55. package/dist/resolution/resolve-node-ai-plan.d.ts.map +1 -0
  56. package/dist/resolution/resolve-node-ai-plan.js +60 -0
  57. package/dist/resolution/resolve-node-ai-plan.js.map +1 -0
  58. package/dist/resolution/resolve-node-model-config.d.ts +15 -0
  59. package/dist/resolution/resolve-node-model-config.d.ts.map +1 -0
  60. package/dist/resolution/resolve-node-model-config.js +33 -0
  61. package/dist/resolution/resolve-node-model-config.js.map +1 -0
  62. package/dist/resolution/resolve-node-model-slot.d.ts +7 -0
  63. package/dist/resolution/resolve-node-model-slot.d.ts.map +1 -0
  64. package/dist/resolution/resolve-node-model-slot.js +62 -0
  65. package/dist/resolution/resolve-node-model-slot.js.map +1 -0
  66. package/package.json +58 -0
@@ -0,0 +1,112 @@
1
+ import { readPhaseUtilityStrategyKey, shouldExpandPhaseUtilityStrategy } from "./phase-utility-strategy.js";
2
+ function buildUnitId(nodeId, suffix) {
3
+ return `unit:${nodeId}:${suffix}`;
4
+ }
5
+ function slotSourceToUnitSource(source) {
6
+ return source;
7
+ }
8
+ function plannedModelFromSlot(slotPlan) {
9
+ return {
10
+ modelSelection: slotPlan.selection,
11
+ modelSource: slotSourceToUnitSource(slotPlan.source),
12
+ inherited: slotPlan.inherited
13
+ };
14
+ }
15
+ function plannedModelFromAction(action, slotPlan) {
16
+ if (action.modelSelection) {
17
+ return {
18
+ modelSelection: action.modelSelection,
19
+ modelSource: "actionOverride",
20
+ inherited: false
21
+ };
22
+ }
23
+ return plannedModelFromSlot(slotPlan);
24
+ }
25
+ function buildActionUnit(nodeId, action, unitKind, order, modelSlot, slotPlan) {
26
+ const model = plannedModelFromAction(action, slotPlan);
27
+ return {
28
+ unitId: buildUnitId(nodeId, action.id),
29
+ nodeId,
30
+ unitKind,
31
+ order,
32
+ actionKey: action.actionKey,
33
+ modelSlot,
34
+ modelSelection: model.modelSelection,
35
+ modelSource: model.modelSource,
36
+ inherited: model.inherited,
37
+ config: action.config ? structuredClone(action.config) : undefined,
38
+ inputsConfig: action.inputsConfig
39
+ ? structuredClone(action.inputsConfig)
40
+ : undefined,
41
+ outputMapping: action.outputMapping
42
+ ? structuredClone(action.outputMapping)
43
+ : undefined
44
+ };
45
+ }
46
+ export function buildNodeExecutionUnits(nodeId, params, modelSlots) {
47
+ const taskConfiguration = params.taskConfiguration;
48
+ const preActions = taskConfiguration?.preActions ?? [];
49
+ const postActions = taskConfiguration?.postActions ?? [];
50
+ const aiTaskStrategies = taskConfiguration?.aiTaskStrategies;
51
+ const units = [];
52
+ let order = 0;
53
+ if (shouldExpandPhaseUtilityStrategy(preActions)) {
54
+ const preStrategyKey = readPhaseUtilityStrategyKey(aiTaskStrategies, "pre");
55
+ if (preStrategyKey) {
56
+ const preModel = plannedModelFromSlot(modelSlots.preActionModel);
57
+ units.push({
58
+ unitId: buildUnitId(nodeId, "pre:0"),
59
+ nodeId,
60
+ unitKind: "preAction",
61
+ order,
62
+ actionKey: preStrategyKey,
63
+ modelSlot: "preActionModel",
64
+ modelSelection: preModel.modelSelection,
65
+ modelSource: preModel.modelSource,
66
+ inherited: preModel.inherited
67
+ });
68
+ order += 1;
69
+ }
70
+ }
71
+ for (const action of preActions) {
72
+ units.push(buildActionUnit(nodeId, action, "preAction", order, "preActionModel", modelSlots.preActionModel));
73
+ order += 1;
74
+ }
75
+ const skillModel = plannedModelFromSlot(modelSlots.skillModel);
76
+ units.push({
77
+ unitId: buildUnitId(nodeId, "skill"),
78
+ nodeId,
79
+ unitKind: "skill",
80
+ order,
81
+ skillKey: params.skillKey,
82
+ modelSlot: "skillModel",
83
+ modelSelection: skillModel.modelSelection,
84
+ modelSource: skillModel.modelSource,
85
+ inherited: skillModel.inherited
86
+ });
87
+ order += 1;
88
+ if (shouldExpandPhaseUtilityStrategy(postActions)) {
89
+ const postStrategyKey = readPhaseUtilityStrategyKey(aiTaskStrategies, "post");
90
+ if (postStrategyKey) {
91
+ const postModel = plannedModelFromSlot(modelSlots.postActionModel);
92
+ units.push({
93
+ unitId: buildUnitId(nodeId, "post:0"),
94
+ nodeId,
95
+ unitKind: "postAction",
96
+ order,
97
+ actionKey: postStrategyKey,
98
+ modelSlot: "postActionModel",
99
+ modelSelection: postModel.modelSelection,
100
+ modelSource: postModel.modelSource,
101
+ inherited: postModel.inherited
102
+ });
103
+ order += 1;
104
+ }
105
+ }
106
+ for (const action of postActions) {
107
+ units.push(buildActionUnit(nodeId, action, "postAction", order, "postActionModel", modelSlots.postActionModel));
108
+ order += 1;
109
+ }
110
+ return units;
111
+ }
112
+ //# sourceMappingURL=build-node-execution-units.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-node-execution-units.js","sourceRoot":"","sources":["../../src/compile/build-node-execution-units.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { ExecutableTaskNodeParameters, NormalizedExecutableGraphDocument } from "@x12i/graphenix-executable-contracts";
2
+ import type { NodeInvokeContract } from "@x12i/graphenix-executable-contracts";
3
+ export declare function buildNodeInvokeContract(graph: NormalizedExecutableGraphDocument, nodeId: string, params: ExecutableTaskNodeParameters): NodeInvokeContract;
4
+ export declare const TASK_NODE_FIELDS_COVERED: readonly ["taskVariable", "inputs", "inputsConfig", "smartInput", "executionMapping", "jobContextMapping", "executionStrategies", "aiTaskStrategies", "aiTaskProfile", "inputSynthesis", "webScoping", "narrix", "narrixInput", "narrixMode", "llmCall", "conditions", "taskKnowledge", "taskPagentiKnowledge", "outputValidation", "scope", "memory", "localConfig", "modelConfig"];
5
+ //# sourceMappingURL=build-node-invoke-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-node-invoke-contract.d.ts","sourceRoot":"","sources":["../../src/compile/build-node-invoke-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,iCAAiC,EAClC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAW/E,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,iCAAiC,EACxC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,4BAA4B,GACnC,kBAAkB,CAoHpB;AAED,eAAO,MAAM,wBAAwB,sXAwB3B,CAAC"}
@@ -0,0 +1,123 @@
1
+ import { isRecord } from "@x12i/graphenix-executable-contracts";
2
+ import { getNodeSourcePath } from "./build-plan-topology.js";
3
+ function readParamField(params, key) {
4
+ return params[key];
5
+ }
6
+ export function buildNodeInvokeContract(graph, nodeId, params) {
7
+ const tc = params.taskConfiguration ?? {};
8
+ const contract = {};
9
+ if (params.taskVariable !== undefined) {
10
+ contract.taskVariable = structuredClone(params.taskVariable);
11
+ }
12
+ if (params.inputsConfig !== undefined) {
13
+ contract.inputsConfig = structuredClone(params.inputsConfig);
14
+ }
15
+ const inputs = readParamField(params, "inputs");
16
+ if (inputs !== undefined && isRecord(inputs)) {
17
+ contract.inputBindings = structuredClone(inputs);
18
+ }
19
+ const smartInput = readParamField(params, "smartInput");
20
+ if (smartInput !== undefined && isRecord(smartInput)) {
21
+ contract.smartInput = structuredClone(smartInput);
22
+ }
23
+ if (params.executionMapping !== undefined) {
24
+ contract.executionMapping = structuredClone(params.executionMapping);
25
+ }
26
+ const jobContextMapping = readParamField(params, "jobContextMapping");
27
+ if (jobContextMapping !== undefined && isRecord(jobContextMapping)) {
28
+ contract.jobContextMapping = structuredClone(jobContextMapping);
29
+ }
30
+ const scope = readParamField(params, "scope");
31
+ if (scope !== undefined && isRecord(scope)) {
32
+ contract.scope = structuredClone(scope);
33
+ }
34
+ const memory = readParamField(params, "memory");
35
+ if (memory !== undefined && isRecord(memory)) {
36
+ contract.memory = structuredClone(memory);
37
+ }
38
+ const knowledgeRefs = {};
39
+ const taskKnowledge = readParamField(params, "taskKnowledge");
40
+ if (Array.isArray(taskKnowledge)) {
41
+ knowledgeRefs.taskKnowledge = structuredClone(taskKnowledge);
42
+ }
43
+ const taskPagentiKnowledge = readParamField(params, "taskPagentiKnowledge");
44
+ if (Array.isArray(taskPagentiKnowledge)) {
45
+ knowledgeRefs.taskPagentiKnowledge = structuredClone(taskPagentiKnowledge);
46
+ }
47
+ if (Object.keys(knowledgeRefs).length > 0) {
48
+ contract.knowledgeRefs = knowledgeRefs;
49
+ }
50
+ const pipeline = {};
51
+ if (tc.executionStrategies !== undefined) {
52
+ pipeline.executionStrategies = structuredClone(tc.executionStrategies);
53
+ }
54
+ if (tc.aiTaskStrategies !== undefined && tc.aiTaskStrategies !== null) {
55
+ pipeline.aiTaskStrategies = structuredClone(tc.aiTaskStrategies);
56
+ }
57
+ if (tc.aiTaskProfile !== undefined) {
58
+ pipeline.aiTaskProfile = structuredClone(tc.aiTaskProfile);
59
+ }
60
+ if (tc.narrix !== undefined) {
61
+ pipeline.narrix = structuredClone(tc.narrix);
62
+ }
63
+ if (tc.narrixInput !== undefined) {
64
+ pipeline.narrixInput = structuredClone(tc.narrixInput);
65
+ }
66
+ if (tc.narrixMode !== undefined) {
67
+ pipeline.narrixMode = String(tc.narrixMode);
68
+ }
69
+ if (tc.llmCall !== undefined) {
70
+ pipeline.llmCall = structuredClone(tc.llmCall);
71
+ }
72
+ if (Object.keys(pipeline).length > 0) {
73
+ contract.pipeline = pipeline;
74
+ }
75
+ const validation = {};
76
+ const outputValidation = readParamField(params, "outputValidation");
77
+ if (outputValidation !== undefined && isRecord(outputValidation)) {
78
+ validation.outputValidation = structuredClone(outputValidation);
79
+ }
80
+ if (tc.aiTasksOutputValidation !== undefined) {
81
+ validation.aiTasksOutputValidation = structuredClone(tc.aiTasksOutputValidation);
82
+ }
83
+ if (Object.keys(validation).length > 0) {
84
+ contract.validation = validation;
85
+ }
86
+ if (isRecord(tc.localConfig)) {
87
+ contract.localConfig = structuredClone(tc.localConfig);
88
+ }
89
+ else {
90
+ const localConfig = readParamField(params, "localConfig");
91
+ if (isRecord(localConfig)) {
92
+ contract.localConfig = structuredClone(localConfig);
93
+ }
94
+ }
95
+ void getNodeSourcePath(graph, nodeId);
96
+ return contract;
97
+ }
98
+ export const TASK_NODE_FIELDS_COVERED = [
99
+ "taskVariable",
100
+ "inputs",
101
+ "inputsConfig",
102
+ "smartInput",
103
+ "executionMapping",
104
+ "jobContextMapping",
105
+ "executionStrategies",
106
+ "aiTaskStrategies",
107
+ "aiTaskProfile",
108
+ "inputSynthesis",
109
+ "webScoping",
110
+ "narrix",
111
+ "narrixInput",
112
+ "narrixMode",
113
+ "llmCall",
114
+ "conditions",
115
+ "taskKnowledge",
116
+ "taskPagentiKnowledge",
117
+ "outputValidation",
118
+ "scope",
119
+ "memory",
120
+ "localConfig",
121
+ "modelConfig"
122
+ ];
123
+ //# sourceMappingURL=build-node-invoke-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-node-invoke-contract.js","sourceRoot":"","sources":["../../src/compile/build-node-invoke-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { NormalizedExecutableGraphDocument } from "@x12i/graphenix-executable-contracts";
2
+ import type { PlanTopology } from "@x12i/graphenix-executable-contracts";
3
+ export declare function buildPlanTopology(graph: NormalizedExecutableGraphDocument, deferredEdgeGateIds: Record<string, string>): PlanTopology;
4
+ export declare function isLocalTaskNode(nodeId: string, graph: NormalizedExecutableGraphDocument): boolean;
5
+ export declare function getNodeSourcePath(graph: NormalizedExecutableGraphDocument, nodeId: string): string;
6
+ export declare function getEdgeSourcePath(graph: NormalizedExecutableGraphDocument, edgeId: string): string;
7
+ export declare function getFinalizerType(graph: NormalizedExecutableGraphDocument, nodeId: string): string;
8
+ //# sourceMappingURL=build-plan-topology.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-plan-topology.d.ts","sourceRoot":"","sources":["../../src/compile/build-plan-topology.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,sCAAsC,CAAC;AAC9F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAwCzE,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,iCAAiC,EACxC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1C,YAAY,CA0Cd;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iCAAiC,GAAG,OAAO,CAMjG;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,iCAAiC,EACxC,MAAM,EAAE,MAAM,GACb,MAAM,CAGR;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,iCAAiC,EACxC,MAAM,EAAE,MAAM,GACb,MAAM,CAGR;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,iCAAiC,EACxC,MAAM,EAAE,MAAM,GACb,MAAM,CAIR"}
@@ -0,0 +1,84 @@
1
+ import { getFinalizerNodeConfig, getTaskNodeConfig, isExecutableFinalizerNode, isExecutableTaskNode, isRecord } from "@x12i/graphenix-executable-contracts";
2
+ function inferExecutionClass(nodeType, params) {
3
+ if (nodeType === "finalizer")
4
+ return "finalizer";
5
+ const taskConfiguration = params?.taskConfiguration;
6
+ const tc = isRecord(taskConfiguration) ? taskConfiguration : undefined;
7
+ const taskKind = params?.taskKind ?? tc?.taskKind;
8
+ if (taskKind === "local" || params?.localSkill)
9
+ return "localTask";
10
+ return "aiTask";
11
+ }
12
+ function computeRootNodeIds(graph) {
13
+ const nodesWithIncoming = new Set(graph.graph.edges.map((e) => e.to.nodeId));
14
+ return graph.graph.nodes
15
+ .filter((n) => !nodesWithIncoming.has(n.id))
16
+ .map((n) => n.id);
17
+ }
18
+ function computeEntryNodeIds(graph) {
19
+ const graphInputTargets = new Set((graph.graph.inputs ?? []).map((input) => input.target?.nodeId).filter(Boolean));
20
+ if (graphInputTargets.size > 0) {
21
+ return [...graphInputTargets];
22
+ }
23
+ return computeRootNodeIds(graph);
24
+ }
25
+ export function buildPlanTopology(graph, deferredEdgeGateIds) {
26
+ const nodes = graph.graph.nodes.map((node, index) => {
27
+ const params = node.parameters;
28
+ const nodeType = isExecutableFinalizerNode(node)
29
+ ? "finalizer"
30
+ : isExecutableTaskNode(node)
31
+ ? "task"
32
+ : "special";
33
+ return {
34
+ nodeId: node.id,
35
+ kind: node.kind,
36
+ nodeType,
37
+ executionClass: inferExecutionClass(nodeType, params)
38
+ };
39
+ });
40
+ const edges = graph.graph.edges.map((edge) => {
41
+ const gateId = deferredEdgeGateIds[edge.id];
42
+ return {
43
+ edgeId: edge.id,
44
+ from: { nodeId: edge.from.nodeId, portId: edge.from.portId },
45
+ to: { nodeId: edge.to.nodeId, portId: edge.to.portId },
46
+ hasDeferredGate: gateId !== undefined,
47
+ deferredGateId: gateId
48
+ };
49
+ });
50
+ return {
51
+ nodes,
52
+ edges,
53
+ entryNodeIds: computeEntryNodeIds(graph),
54
+ rootNodeIds: computeRootNodeIds(graph),
55
+ finalizerNodeIds: graph.graph.nodes
56
+ .filter(isExecutableFinalizerNode)
57
+ .map((n) => n.id),
58
+ outputNodeIds: (graph.graph.outputs ?? []).map((output) => output.source?.nodeId).filter(Boolean),
59
+ graphInputIds: (graph.graph.inputs ?? []).map((input) => input.id),
60
+ graphOutputIds: (graph.graph.outputs ?? []).map((output) => output.id)
61
+ };
62
+ }
63
+ export function isLocalTaskNode(nodeId, graph) {
64
+ const node = graph.graph.nodes.find((n) => n.id === nodeId);
65
+ if (!node || !isExecutableTaskNode(node))
66
+ return false;
67
+ const params = getTaskNodeConfig(node);
68
+ const tc = params?.taskConfiguration;
69
+ return tc?.taskKind === "local" || tc?.taskTypeId === "local";
70
+ }
71
+ export function getNodeSourcePath(graph, nodeId) {
72
+ const index = graph.graph.nodes.findIndex((n) => n.id === nodeId);
73
+ return index >= 0 ? `/graph/nodes/${index}` : `/graph/nodes/${nodeId}`;
74
+ }
75
+ export function getEdgeSourcePath(graph, edgeId) {
76
+ const index = graph.graph.edges.findIndex((e) => e.id === edgeId);
77
+ return index >= 0 ? `/graph/edges/${index}` : `/graph/edges/${edgeId}`;
78
+ }
79
+ export function getFinalizerType(graph, nodeId) {
80
+ const node = graph.graph.nodes.find((n) => n.id === nodeId);
81
+ const config = node ? getFinalizerNodeConfig(node) : undefined;
82
+ return config?.finalizerType ?? "unknown";
83
+ }
84
+ //# sourceMappingURL=build-plan-topology.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-plan-topology.js","sourceRoot":"","sources":["../../src/compile/build-plan-topology.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { AuthoringGraphDocument } from "@x12i/graphenix-executable-contracts";
2
+ import type { CompileExecutablePlanV2Options, ExecutableGraphPlanV2 } from "@x12i/graphenix-executable-contracts";
3
+ import type { GraphRuntimeObject } from "@x12i/graphenix-executable-contracts";
4
+ export declare function compileExecutablePlanV2(doc: AuthoringGraphDocument, runtime: GraphRuntimeObject, options?: CompileExecutablePlanV2Options): ExecutableGraphPlanV2;
5
+ //# sourceMappingURL=compile-executable-plan-v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile-executable-plan-v2.d.ts","sourceRoot":"","sources":["../../src/compile/compile-executable-plan-v2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,KAAK,EACV,8BAA8B,EAC9B,qBAAqB,EAItB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAgJ/E,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,kBAAkB,EAC3B,OAAO,GAAE,8BAAmC,GAC3C,qBAAqB,CAkLvB"}
@@ -0,0 +1,251 @@
1
+ import { validateAuthoringExecutableGraph } from "@x12i/graphenix-authoring-format";
2
+ import { assertNormalizedExecutableGraph } from "@x12i/graphenix-authoring-format";
3
+ import { normalizeExecutableGraph, stripDesignOnlyFieldsFromGraph } from "@x12i/graphenix-authoring-format";
4
+ import { buildDeterministicCaseContext } from "../resolution/build-deterministic-case-context.js";
5
+ import { resolveGraphModelConfig } from "../resolution/resolve-graph-model-config.js";
6
+ import { resolveNodeAiPlan } from "../resolution/resolve-node-ai-plan.js";
7
+ import { getExecutableProfile, getTaskNodeConfig, isExecutableTaskNode } from "@x12i/graphenix-executable-contracts";
8
+ import { defaultHashFunction } from "@x12i/graphenix-executable-contracts";
9
+ import { EXECUTABLE_PLAN_FORMAT_V2 } from "@x12i/graphenix-executable-contracts";
10
+ import { buildDeferredGates, hasDeferredGates } from "./build-deferred-gates.js";
11
+ import { buildFinalizerPlans } from "./build-finalizer-plans.js";
12
+ import { buildNodeExecutionUnitsV2 } from "./build-node-execution-units-v2.js";
13
+ import { buildNodeInvokeContract, TASK_NODE_FIELDS_COVERED } from "./build-node-invoke-contract.js";
14
+ import { buildPlanTopology, getNodeSourcePath, isLocalTaskNode } from "./build-plan-topology.js";
15
+ const AI_MODEL_SLOTS = [
16
+ "preActionModel",
17
+ "skillModel",
18
+ "postActionModel"
19
+ ];
20
+ function buildPlanId(graphId, jobId) {
21
+ const graphSlug = graphId.replace(/^graph:/, "");
22
+ return `plan:${graphSlug}:${jobId}`;
23
+ }
24
+ function toSelectedCaseV2(caseId, matchedConditions, sourcePath, defaulted) {
25
+ return {
26
+ caseId,
27
+ matched: true,
28
+ defaulted,
29
+ reason: matchedConditions.length === 0
30
+ ? "default case"
31
+ : matchedConditions.join("; "),
32
+ matchedConditions: matchedConditions.map((description) => ({ description })),
33
+ sourcePath
34
+ };
35
+ }
36
+ function toResolvedModelSlots(aiPlan) {
37
+ const modelSlots = {};
38
+ for (const slot of AI_MODEL_SLOTS) {
39
+ const resolved = aiPlan.slots[slot];
40
+ modelSlots[slot] = {
41
+ selection: resolved.selected,
42
+ source: resolved.source,
43
+ inherited: resolved.inherited,
44
+ graphCaseId: aiPlan.graphCaseId,
45
+ nodeCaseId: aiPlan.nodeCaseId
46
+ };
47
+ }
48
+ return modelSlots;
49
+ }
50
+ function inferExecutionClass(graph, nodeId) {
51
+ return isLocalTaskNode(nodeId, graph) ? "localTask" : "aiTask";
52
+ }
53
+ function buildNodePlanV2(graph, nodeId, context) {
54
+ const node = graph.graph.nodes.find((n) => n.id === nodeId);
55
+ if (!node || !isExecutableTaskNode(node)) {
56
+ throw new Error(`Node ${nodeId} is not an executable task node.`);
57
+ }
58
+ const params = getTaskNodeConfig(node);
59
+ if (!params) {
60
+ throw new Error(`Node ${nodeId} is missing task parameters.`);
61
+ }
62
+ const executionClass = inferExecutionClass(graph, nodeId);
63
+ const sourcePath = getNodeSourcePath(graph, nodeId);
64
+ const aiPlan = executionClass === "aiTask"
65
+ ? resolveNodeAiPlan(graph, nodeId, context)
66
+ : undefined;
67
+ const modelSlots = executionClass === "aiTask" && aiPlan
68
+ ? toResolvedModelSlots(aiPlan)
69
+ : null;
70
+ const invokeContract = buildNodeInvokeContract(graph, nodeId, params);
71
+ const nodeGateId = `gate:node:${nodeId}`;
72
+ const paramsRecord = node.parameters;
73
+ const deferredGateIds = paramsRecord?.conditions !== undefined ? [nodeGateId] : undefined;
74
+ return {
75
+ nodeId,
76
+ nodeType: "task",
77
+ executionClass,
78
+ skillKey: params.skillKey,
79
+ selectedCases: aiPlan
80
+ ? {
81
+ graphModelCaseId: aiPlan.graphCaseId,
82
+ nodeModelCaseId: aiPlan.nodeCaseId
83
+ }
84
+ : undefined,
85
+ modelSlots,
86
+ invokeContract,
87
+ executionUnits: buildNodeExecutionUnitsV2(graph, nodeId, params, modelSlots, executionClass),
88
+ deferredGateIds,
89
+ outputMapping: params.executionMapping
90
+ ? structuredClone(params.executionMapping)
91
+ : undefined,
92
+ sourcePath
93
+ };
94
+ }
95
+ export function compileExecutablePlanV2(doc, runtime, options = {}) {
96
+ const validation = validateAuthoringExecutableGraph(doc);
97
+ if (!validation.valid) {
98
+ const summary = validation.errors
99
+ .map((error) => `${error.path}: ${error.message}`)
100
+ .join("; ");
101
+ throw new Error(`Invalid authoring graph: ${summary}`);
102
+ }
103
+ const hash = options.hash ?? defaultHashFunction;
104
+ const now = options.now ?? (() => new Date());
105
+ const normalized = stripDesignOnlyFieldsFromGraph(normalizeExecutableGraph(doc));
106
+ assertNormalizedExecutableGraph(normalized);
107
+ const context = buildDeterministicCaseContext(normalized, runtime);
108
+ const graphHash = hash(doc);
109
+ const normalizedGraphHash = hash(normalized);
110
+ const contextHash = hash(context);
111
+ const inputHash = runtime.input !== undefined ? hash(runtime.input) : undefined;
112
+ const variablesHash = runtime.variables !== undefined ? hash(runtime.variables) : undefined;
113
+ const jobHash = runtime.job !== undefined ? hash(runtime.job) : undefined;
114
+ const profileRegistry = options.profileRegistry ?? {
115
+ version: "3.0.0",
116
+ registryHash: "sha256:profiles-default"
117
+ };
118
+ const registryHash = profileRegistry.registryHash ?? `sha256:registry-${profileRegistry.version}`;
119
+ const { gates: deferredGates, edgeGateIds } = buildDeferredGates(normalized);
120
+ const topology = buildPlanTopology(normalized, edgeGateIds);
121
+ const graphResolution = resolveGraphModelConfig(normalized, context);
122
+ const graphCaseSelection = toSelectedCaseV2(graphResolution.caseId, graphResolution.selection.matchedConditions, "/graph/metadata/extensions/graphenix.executable~1v1/modelConfig", graphResolution.selection.matchedConditions.length === 0);
123
+ const taskNodes = normalized.graph.nodes.filter(isExecutableTaskNode);
124
+ const nodePlans = {};
125
+ const nodeModelCases = {};
126
+ for (const node of taskNodes) {
127
+ if (inferExecutionClass(normalized, node.id) === "aiTask") {
128
+ const aiPlan = resolveNodeAiPlan(normalized, node.id, context);
129
+ nodeModelCases[node.id] = aiPlan.nodeCaseId
130
+ ? toSelectedCaseV2(aiPlan.nodeCaseId, aiPlan.caseSelection.node?.matchedConditions ?? [], `${getNodeSourcePath(normalized, node.id)}/parameters/taskConfiguration/modelConfig`, false)
131
+ : null;
132
+ }
133
+ else {
134
+ nodeModelCases[node.id] = null;
135
+ }
136
+ nodePlans[node.id] = buildNodePlanV2(normalized, node.id, context);
137
+ }
138
+ const finalizerPlans = buildFinalizerPlans(normalized);
139
+ const metadata = doc.graph.metadata;
140
+ const profile = getExecutableProfile(normalized);
141
+ const fallbackPolicy = profile?.modelConfig.fallbackPolicy ?? {
142
+ enabled: false,
143
+ allowedTriggers: []
144
+ };
145
+ const plan = {
146
+ format: EXECUTABLE_PLAN_FORMAT_V2,
147
+ planId: buildPlanId(doc.id, runtime.jobId),
148
+ createdAt: now().toISOString(),
149
+ source: {
150
+ graphId: doc.id,
151
+ graphRevision: doc.revision,
152
+ graphHash,
153
+ formatVersion: doc.formatVersion
154
+ },
155
+ runtimeBinding: {
156
+ jobId: runtime.jobId,
157
+ mode: runtime.mode,
158
+ environment: options.environment,
159
+ inputHash,
160
+ contextHash,
161
+ variablesHash,
162
+ jobHash,
163
+ sourceGraphHash: graphHash,
164
+ profileRegistryHash: registryHash
165
+ },
166
+ runtimeExpectations: {
167
+ requiredFields: ["jobId", "job"],
168
+ hashIncludes: inputHash ? ["input", "context"] : ["context"],
169
+ requiresAgentId: false,
170
+ requiresJobTypeId: false
171
+ },
172
+ profileRegistry: {
173
+ package: "@x12i/ai-profiles",
174
+ version: profileRegistry.version,
175
+ registryHash
176
+ },
177
+ normalizedGraph: {
178
+ mode: "embedded",
179
+ graph: normalized,
180
+ graphHash: normalizedGraphHash
181
+ },
182
+ topology,
183
+ schedulingPolicy: {
184
+ mode: "forward",
185
+ wavePlanning: hasDeferredGates(deferredGates)
186
+ ? "executorEvaluatesDeferredGates"
187
+ : "staticSchedule",
188
+ failFast: false
189
+ },
190
+ caseSelection: {
191
+ graphModelCase: graphCaseSelection,
192
+ nodeModelCases
193
+ },
194
+ deferredGates,
195
+ nodePlans,
196
+ finalizerPlans,
197
+ contracts: {
198
+ entry: metadata?.graphEntry
199
+ ? {
200
+ graphEntryRef: "/graph/metadata/graphEntry",
201
+ executionSchema: metadata.graphEntry.executionSchema,
202
+ entryGateIds: deferredGates.entryGates?.map((g) => g.gateId)
203
+ }
204
+ : undefined,
205
+ response: {
206
+ graphResponseRef: "/graph/metadata/graphResponse",
207
+ graphOutputIds: (normalized.graph.outputs ?? []).map((o) => o.id),
208
+ responseShapePath: "/graph/metadata/graphResponse",
209
+ finalOutputSchema: metadata?.graphResponse?.finalOutputSchema
210
+ }
211
+ },
212
+ policies: {
213
+ directModelPolicy: options.directModelPolicy ?? "forbidden",
214
+ fallbackPolicy: {
215
+ enabled: fallbackPolicy.enabled,
216
+ owner: options.fallbackOwner ?? "executor",
217
+ slots: fallbackPolicy.slots ?? [
218
+ "preActionModel",
219
+ "skillModel",
220
+ "postActionModel"
221
+ ],
222
+ allowedTriggers: fallbackPolicy.allowedTriggers,
223
+ maxAttemptsPerSlot: fallbackPolicy.maxAttemptsPerSlot
224
+ },
225
+ tracePolicy: {},
226
+ dataPolicy: {
227
+ storeFullRuntimeInputInPlan: false,
228
+ allowInputPreview: false,
229
+ useDataRefsForLargeValues: true
230
+ }
231
+ },
232
+ compatibility: {
233
+ authoringFormatVersion: doc.formatVersion,
234
+ planFormatVersion: EXECUTABLE_PLAN_FORMAT_V2,
235
+ requiredExecutorCapabilities: [
236
+ "executable-plan-v2",
237
+ "deferred-gates",
238
+ "invoke-contract"
239
+ ],
240
+ taskNodeFieldsCovered: [...TASK_NODE_FIELDS_COVERED]
241
+ },
242
+ validation: {
243
+ valid: true,
244
+ validatedAt: now().toISOString(),
245
+ errorCount: 0,
246
+ warningCount: 0
247
+ }
248
+ };
249
+ return plan;
250
+ }
251
+ //# sourceMappingURL=compile-executable-plan-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile-executable-plan-v2.js","sourceRoot":"","sources":["../../src/compile/compile-executable-plan-v2.ts"],"names":[],"mappings":"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"}