@exellix/ai-tasks 8.8.0 → 9.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 (91) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/RUNTASK_REQUEST.md +10 -2
  3. package/dist/builders/task-request-builder.d.ts +2 -0
  4. package/dist/builders/task-request-builder.d.ts.map +1 -1
  5. package/dist/builders/task-request-builder.js +8 -0
  6. package/dist/builders/task-request-builder.js.map +1 -1
  7. package/dist/core/task-sdk.d.ts.map +1 -1
  8. package/dist/core/task-sdk.js +83 -976
  9. package/dist/core/task-sdk.js.map +1 -1
  10. package/dist/errors/nodePlanValidationError.d.ts +18 -0
  11. package/dist/errors/nodePlanValidationError.d.ts.map +1 -0
  12. package/dist/errors/nodePlanValidationError.js +29 -0
  13. package/dist/errors/nodePlanValidationError.js.map +1 -0
  14. package/dist/index.d.ts +4 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +4 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/methods/convenience-methods.d.ts.map +1 -1
  19. package/dist/methods/convenience-methods.js +2 -0
  20. package/dist/methods/convenience-methods.js.map +1 -1
  21. package/dist/narrix/narrixUnitExecution.d.ts +8 -0
  22. package/dist/narrix/narrixUnitExecution.d.ts.map +1 -0
  23. package/dist/narrix/narrixUnitExecution.js +132 -0
  24. package/dist/narrix/narrixUnitExecution.js.map +1 -0
  25. package/dist/node-execution/buildRequestFromNodePlan.d.ts +10 -0
  26. package/dist/node-execution/buildRequestFromNodePlan.d.ts.map +1 -0
  27. package/dist/node-execution/buildRequestFromNodePlan.js +96 -0
  28. package/dist/node-execution/buildRequestFromNodePlan.js.map +1 -0
  29. package/dist/node-execution/createNodeExecutionHost.d.ts +18 -0
  30. package/dist/node-execution/createNodeExecutionHost.d.ts.map +1 -0
  31. package/dist/node-execution/createNodeExecutionHost.js +236 -0
  32. package/dist/node-execution/createNodeExecutionHost.js.map +1 -0
  33. package/dist/node-execution/dispatchExecutionUnit.d.ts +11 -0
  34. package/dist/node-execution/dispatchExecutionUnit.d.ts.map +1 -0
  35. package/dist/node-execution/dispatchExecutionUnit.js +80 -0
  36. package/dist/node-execution/dispatchExecutionUnit.js.map +1 -0
  37. package/dist/node-execution/executeNodeFromPlan.d.ts +4 -0
  38. package/dist/node-execution/executeNodeFromPlan.d.ts.map +1 -0
  39. package/dist/node-execution/executeNodeFromPlan.js +58 -0
  40. package/dist/node-execution/executeNodeFromPlan.js.map +1 -0
  41. package/dist/node-execution/index.d.ts +7 -0
  42. package/dist/node-execution/index.d.ts.map +1 -0
  43. package/dist/node-execution/index.js +6 -0
  44. package/dist/node-execution/index.js.map +1 -0
  45. package/dist/node-execution/minimalNodePlan.d.ts +4 -0
  46. package/dist/node-execution/minimalNodePlan.d.ts.map +1 -0
  47. package/dist/node-execution/minimalNodePlan.js +31 -0
  48. package/dist/node-execution/minimalNodePlan.js.map +1 -0
  49. package/dist/node-execution/rejectForbiddenWireFields.d.ts +4 -0
  50. package/dist/node-execution/rejectForbiddenWireFields.d.ts.map +1 -0
  51. package/dist/node-execution/rejectForbiddenWireFields.js +23 -0
  52. package/dist/node-execution/rejectForbiddenWireFields.js.map +1 -0
  53. package/dist/node-execution/resolveUnitModelSelection.d.ts +4 -0
  54. package/dist/node-execution/resolveUnitModelSelection.d.ts.map +1 -0
  55. package/dist/node-execution/resolveUnitModelSelection.js +63 -0
  56. package/dist/node-execution/resolveUnitModelSelection.js.map +1 -0
  57. package/dist/node-execution/skipUnit.d.ts +3 -0
  58. package/dist/node-execution/skipUnit.d.ts.map +1 -0
  59. package/dist/node-execution/skipUnit.js +11 -0
  60. package/dist/node-execution/skipUnit.js.map +1 -0
  61. package/dist/node-execution/types.d.ts +26 -0
  62. package/dist/node-execution/types.d.ts.map +1 -0
  63. package/dist/node-execution/types.js +2 -0
  64. package/dist/node-execution/types.js.map +1 -0
  65. package/dist/node-execution/unitTrace.d.ts +12 -0
  66. package/dist/node-execution/unitTrace.d.ts.map +1 -0
  67. package/dist/node-execution/unitTrace.js +52 -0
  68. package/dist/node-execution/unitTrace.js.map +1 -0
  69. package/dist/observability/graphExecutionRunLogContract.d.ts +8 -7
  70. package/dist/observability/graphExecutionRunLogContract.d.ts.map +1 -1
  71. package/dist/observability/graphExecutionRunLogContract.js +4 -5
  72. package/dist/observability/graphExecutionRunLogContract.js.map +1 -1
  73. package/dist/post-steps/polish/runPolishCall.d.ts.map +1 -1
  74. package/dist/post-steps/polish/runPolishCall.js +1 -0
  75. package/dist/post-steps/polish/runPolishCall.js.map +1 -1
  76. package/dist/types/task-types.d.ts +12 -6
  77. package/dist/types/task-types.d.ts.map +1 -1
  78. package/dist/utils/runTaskRequestShape.d.ts +1 -1
  79. package/dist/utils/runTaskRequestShape.d.ts.map +1 -1
  80. package/dist/utils/runTaskRequestShape.js +5 -3
  81. package/dist/utils/runTaskRequestShape.js.map +1 -1
  82. package/dist/utils/xynthesizedWrite.d.ts +12 -1
  83. package/dist/utils/xynthesizedWrite.d.ts.map +1 -1
  84. package/dist/utils/xynthesizedWrite.js +38 -0
  85. package/dist/utils/xynthesizedWrite.js.map +1 -1
  86. package/dist/validation/validateRunTaskConfig.d.ts.map +1 -1
  87. package/dist/validation/validateRunTaskConfig.js +30 -14
  88. package/dist/validation/validateRunTaskConfig.js.map +1 -1
  89. package/documenations/node-execution-graphenix.md +40 -0
  90. package/documenations/schemas/v1/run-task-request.json +21 -3
  91. package/package.json +7 -2
@@ -0,0 +1,132 @@
1
+ import { adaptMemorixToNarrixInput } from "@exellix/memorix-narrix-adapter";
2
+ import { applyNarrixScope } from "./applyNarrixScope.js";
3
+ import { buildNarrixAttachment } from "./buildNarrixAttachment.js";
4
+ import { narrixRunHandler } from "./task.js";
5
+ import { getByPath } from "../utils/jsonPaths.js";
6
+ function isRecord(v) {
7
+ return !!v && typeof v === "object" && !Array.isArray(v);
8
+ }
9
+ export function resolveNarrixInput(narrixInput, jobMemory) {
10
+ if (isRecord(narrixInput) && "$path" in narrixInput && typeof narrixInput.$path === "string") {
11
+ const resolved = getByPath(jobMemory ?? {}, narrixInput.$path);
12
+ if (resolved && typeof resolved === "object")
13
+ return resolved;
14
+ return null;
15
+ }
16
+ if (isRecord(narrixInput) && typeof narrixInput.medium === "string") {
17
+ return narrixInput;
18
+ }
19
+ return null;
20
+ }
21
+ export async function runNarrixPreprocessorUnit(request) {
22
+ const narrixCfg = request.narrix;
23
+ if (!narrixCfg) {
24
+ throw new Error("narrativePreprocessor requires narrix configuration on invokeContract");
25
+ }
26
+ const adaptResult = adaptMemorixToNarrixInput({
27
+ datasetId: narrixCfg.datasetId,
28
+ mediumHint: "record",
29
+ memorix: {
30
+ jobMemory: request.jobMemory,
31
+ executionMemory: request.executionMemory,
32
+ input: request.input,
33
+ },
34
+ }, {
35
+ record: {
36
+ minKeys: 1,
37
+ preferPaths: [
38
+ "executionMemory.input.raw",
39
+ "executionMemory.input",
40
+ "jobMemory.record",
41
+ "executionMemory.record",
42
+ ],
43
+ },
44
+ });
45
+ if (!adaptResult.ok) {
46
+ throw new Error(`NARRIX pre-processor: no usable input. ${adaptResult.message}`);
47
+ }
48
+ const ctx = {
49
+ skillKey: request.skillKey,
50
+ jobMemory: request.jobMemory,
51
+ taskMemory: request.taskMemory,
52
+ executionMemory: request.executionMemory,
53
+ variables: request.variables,
54
+ xynthesized: request.xynthesized,
55
+ smartInput: request.smartInput,
56
+ jobId: request.jobId,
57
+ taskId: request.taskId,
58
+ agentId: request.agentId,
59
+ graphId: request.graphId,
60
+ nodeId: request.nodeId,
61
+ };
62
+ const narrixResult = await narrixRunHandler({ input: adaptResult.narrixInput, ctx });
63
+ if (!narrixResult.ok) {
64
+ const fail = narrixResult;
65
+ throw new Error(`NARRIX pre-processor failed: ${fail.error}`);
66
+ }
67
+ const attachment = buildNarrixAttachment(narrixResult);
68
+ const attachToField = narrixCfg.attachToField ?? "_narrix";
69
+ return {
70
+ ...request,
71
+ executionMemory: {
72
+ ...(request.executionMemory || {}),
73
+ [attachToField]: attachment,
74
+ },
75
+ jobMemory: request.jobMemory ? { ...request.jobMemory, _narrix: attachment } : { _narrix: attachment },
76
+ };
77
+ }
78
+ function buildNarrixFailureResponse(request, error) {
79
+ const parsed = {
80
+ ok: false,
81
+ phase: "narrix",
82
+ error,
83
+ message: error,
84
+ };
85
+ return {
86
+ skillKey: request.skillKey,
87
+ rawText: JSON.stringify(parsed),
88
+ flexMd: { frame: "narrix.failure.v1", payloads: parsed },
89
+ parsed,
90
+ metadata: { narrix: { ok: false, error } },
91
+ };
92
+ }
93
+ export async function runNarrixHandlerUnit(request) {
94
+ if (!request.narrixInput) {
95
+ throw new Error("narrativeHandler requires narrixInput on invokeContract");
96
+ }
97
+ const resolvedNarrixInput = resolveNarrixInput(request.narrixInput, request.jobMemory);
98
+ if (!resolvedNarrixInput) {
99
+ return buildNarrixFailureResponse(request, "narrixInput could not be resolved");
100
+ }
101
+ const narrixHandlerCtx = {
102
+ skillKey: request.skillKey,
103
+ jobMemory: request.jobMemory,
104
+ taskMemory: request.taskMemory,
105
+ executionMemory: request.executionMemory,
106
+ variables: request.variables,
107
+ xynthesized: request.xynthesized,
108
+ smartInput: request.smartInput,
109
+ jobId: request.jobId,
110
+ taskId: request.taskId,
111
+ agentId: request.agentId,
112
+ graphId: request.graphId,
113
+ nodeId: request.nodeId,
114
+ };
115
+ const narrixResult = await narrixRunHandler({ input: resolvedNarrixInput, ctx: narrixHandlerCtx });
116
+ if (!narrixResult.ok) {
117
+ return buildNarrixFailureResponse(request, narrixResult.error);
118
+ }
119
+ const filteredEntry = applyNarrixScope(narrixResult, request.narrixScope);
120
+ const existingNarrix = Array.isArray(request.taskMemory?.narrix)
121
+ ? request.taskMemory.narrix
122
+ : [];
123
+ const skillInput = typeof request.input === "object" && request.input !== null
124
+ ? { ...request.input, narrixContext: filteredEntry }
125
+ : { narrixContext: filteredEntry };
126
+ return {
127
+ ...request,
128
+ taskMemory: { ...(request.taskMemory ?? {}), narrix: [...existingNarrix, filteredEntry] },
129
+ input: skillInput,
130
+ };
131
+ }
132
+ //# sourceMappingURL=narrixUnitExecution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"narrixUnitExecution.js","sourceRoot":"","sources":["../../src/narrix/narrixUnitExecution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { RunTaskRequest } from "../types/task-types.js";
2
+ export declare function buildRequestFromNodePlan(request: RunTaskRequest): RunTaskRequest;
3
+ export declare function assertNodePlanNodeIdAlignment(request: RunTaskRequest): void;
4
+ export type UnitContextBag = {
5
+ skillOutput?: unknown;
6
+ lastResponse?: unknown;
7
+ };
8
+ export declare function readUnitContextPath(path: string, request: RunTaskRequest, unitContext: UnitContextBag): unknown;
9
+ export declare function applyIncludeContextFromUnit(request: RunTaskRequest, unit: import("@x12i/graphenix-executable-contracts").ExecutionUnitPlanV2): RunTaskRequest;
10
+ //# sourceMappingURL=buildRequestFromNodePlan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildRequestFromNodePlan.d.ts","sourceRoot":"","sources":["../../src/node-execution/buildRequestFromNodePlan.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAiB7D,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CAsDhF;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAQ3E;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,cAAc,GAC1B,OAAO,CAiBT;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,OAAO,sCAAsC,EAAE,mBAAmB,GACvE,cAAc,CAMhB"}
@@ -0,0 +1,96 @@
1
+ function isRecord(v) {
2
+ return !!v && typeof v === "object" && !Array.isArray(v);
3
+ }
4
+ function mergeInputWithTaskVariable(input, taskVariable) {
5
+ if (!taskVariable || Object.keys(taskVariable).length === 0)
6
+ return input;
7
+ if (input === undefined || input === null)
8
+ return { ...taskVariable };
9
+ if (typeof input === "string")
10
+ return input;
11
+ return { ...taskVariable, ...input };
12
+ }
13
+ export function buildRequestFromNodePlan(request) {
14
+ const nodePlan = request.nodePlan;
15
+ const contract = nodePlan.invokeContract ?? {};
16
+ const pipeline = isRecord(contract.pipeline) ? contract.pipeline : undefined;
17
+ const executionStrategies = Array.isArray(pipeline?.executionStrategies)
18
+ ? pipeline.executionStrategies
19
+ : request.executionStrategies ?? [];
20
+ const taskVariable = isRecord(contract.taskVariable)
21
+ ? contract.taskVariable
22
+ : undefined;
23
+ const smartInput = contract.smartInput !== undefined && contract.smartInput !== null
24
+ ? contract.smartInput
25
+ : request.smartInput;
26
+ const pipelineRecord = pipeline;
27
+ const narrix = isRecord(pipelineRecord?.narrix)
28
+ ? pipelineRecord.narrix
29
+ : request.narrix;
30
+ const narrixInput = pipelineRecord?.narrixInput !== undefined
31
+ ? pipelineRecord.narrixInput
32
+ : request.narrixInput;
33
+ const narrixMode = typeof pipelineRecord?.narrixMode === "string"
34
+ ? pipelineRecord.narrixMode
35
+ : request.narrixMode;
36
+ const outputValidation = isRecord(contract.validation)
37
+ ? (contract.validation.outputValidation ??
38
+ request.outputValidation)
39
+ : request.outputValidation;
40
+ const skillKey = nodePlan.skillKey ?? request.skillKey;
41
+ return {
42
+ ...request,
43
+ skillKey,
44
+ input: mergeInputWithTaskVariable(request.input, taskVariable),
45
+ smartInput,
46
+ executionStrategies,
47
+ narrix,
48
+ narrixInput,
49
+ narrixMode,
50
+ outputValidation,
51
+ taskConfiguration: undefined,
52
+ executionPipeline: undefined,
53
+ modelConfig: undefined,
54
+ };
55
+ }
56
+ export function assertNodePlanNodeIdAlignment(request) {
57
+ const nodePlan = request.nodePlan;
58
+ const reqNodeId = request.nodeId;
59
+ if (reqNodeId && nodePlan.nodeId && reqNodeId !== nodePlan.nodeId) {
60
+ throw new Error(`nodePlan.nodeId (${nodePlan.nodeId}) does not match request.nodeId (${reqNodeId})`);
61
+ }
62
+ }
63
+ export function readUnitContextPath(path, request, unitContext) {
64
+ if (path === "response.skillOutput")
65
+ return unitContext.skillOutput;
66
+ if (path.startsWith("executionMemory.")) {
67
+ const sub = path.slice("executionMemory.".length);
68
+ const mem = request.executionMemory;
69
+ return sub.split(".").reduce((acc, key) => {
70
+ if (acc && typeof acc === "object")
71
+ return acc[key];
72
+ return undefined;
73
+ }, mem);
74
+ }
75
+ if (path === "input")
76
+ return request.input;
77
+ if (path === "inputs")
78
+ return request.inputs;
79
+ if (path === "smartInput")
80
+ return request.smartInput;
81
+ if (path === "xynthesized")
82
+ return request.xynthesized;
83
+ if (path === "jobMemory")
84
+ return request.jobMemory;
85
+ if (path === "taskMemory")
86
+ return request.taskMemory;
87
+ return undefined;
88
+ }
89
+ export function applyIncludeContextFromUnit(request, unit) {
90
+ const contract = unit.invokeContract;
91
+ if (contract && typeof contract === "object" && contract.includeContextInPrompt === true) {
92
+ return { ...request, includeContextInPrompt: true };
93
+ }
94
+ return request;
95
+ }
96
+ //# sourceMappingURL=buildRequestFromNodePlan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildRequestFromNodePlan.js","sourceRoot":"","sources":["../../src/node-execution/buildRequestFromNodePlan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { AnySynthesizedContextArtifact, RunTaskRequest, RunTaskResponse, SynthesisConfig, XynthesizedMemory } from "../types/task-types.js";
2
+ import type { DirectRunOptions, NodeExecutionHost } from "./types.js";
3
+ export type NodeExecutionHostDeps<TParsed> = {
4
+ runSynthesizedContextPreStep: (request: RunTaskRequest, config: SynthesisConfig) => Promise<{
5
+ contextMarkdown: string;
6
+ artifact?: AnySynthesizedContextArtifact;
7
+ synthesizedInput?: import("../types/task-types.js").SynthesizedInputArtifact;
8
+ }>;
9
+ runMainWithExecutionStrategies: (request: RunTaskRequest, options?: DirectRunOptions) => Promise<RunTaskResponse<TParsed>>;
10
+ traceCollector: import("../observability/debugTrace.js").DebugTraceCollector | null;
11
+ taskId: string;
12
+ isStrictDecisionTask: (request: RunTaskRequest) => boolean;
13
+ xynthesizedPatchAccumulator: {
14
+ value?: XynthesizedMemory;
15
+ };
16
+ };
17
+ export declare function createNodeExecutionHost<TParsed>(deps: NodeExecutionHostDeps<TParsed>): NodeExecutionHost<TParsed>;
18
+ //# sourceMappingURL=createNodeExecutionHost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createNodeExecutionHost.d.ts","sourceRoot":"","sources":["../../src/node-execution/createNodeExecutionHost.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,6BAA6B,EAE7B,cAAc,EACd,eAAe,EACf,eAAe,EACf,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAMhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,MAAM,qBAAqB,CAAC,OAAO,IAAI;IAC3C,4BAA4B,EAAE,CAC5B,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,eAAe,KACpB,OAAO,CAAC;QACX,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,6BAA6B,CAAC;QACzC,gBAAgB,CAAC,EAAE,OAAO,wBAAwB,EAAE,wBAAwB,CAAC;KAC9E,CAAC,CAAC;IACH,8BAA8B,EAAE,CAC9B,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,gBAAgB,KACvB,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,cAAc,EAAE,OAAO,gCAAgC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACpF,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC;IAC3D,2BAA2B,EAAE;QAAE,KAAK,CAAC,EAAE,iBAAiB,CAAA;KAAE,CAAC;CAC5D,CAAC;AAuCF,wBAAgB,uBAAuB,CAAC,OAAO,EAC7C,IAAI,EAAE,qBAAqB,CAAC,OAAO,CAAC,GACnC,iBAAiB,CAAC,OAAO,CAAC,CA8M5B"}
@@ -0,0 +1,236 @@
1
+ import { applyPlannerOutputToRequest } from "../execution-strategies/applyExecutionStrategyOutputs.js";
2
+ import { buildExecutionStrategyRequestPayload } from "../execution-strategies/executionStrategyRequestPayload.js";
3
+ import { runPlannerViaXynthesis } from "../execution-strategies/runExecutionStrategyViaXynthesis.js";
4
+ import { getLocalTask } from "../localTasks/registry.js";
5
+ import { buildXynthesisWorkScopeIdentity } from "../internal/buildXynthesisWorkScopeIdentity.js";
6
+ import { runAuditPostStep } from "../post-steps/audit/runAudit.js";
7
+ import { runPolishPostStep } from "../post-steps/polish/runPolish.js";
8
+ import { runNarrixHandlerUnit, runNarrixPreprocessorUnit, } from "../narrix/narrixUnitExecution.js";
9
+ import { validateParsedOutput } from "../utils/outputValidation.js";
10
+ import { resolveRunTaskModelReferences } from "../utils/resolveRunTaskModelReferences.js";
11
+ import { assertMainSkillModelConfigReadyForInvoke } from "../utils/routeModelConfigSlots.js";
12
+ import { applySynthesisPreStepToRequest, mergeXynthesizedPatchSlices, } from "../utils/xynthesizedWrite.js";
13
+ function applyPreSynthesisUnit(resolved, config, pre, patchAccumulator) {
14
+ const { request: next, patchSlice } = applySynthesisPreStepToRequest(resolved, config, pre);
15
+ if (patchSlice) {
16
+ patchAccumulator.value = mergeXynthesizedPatchSlices(patchAccumulator.value, patchSlice);
17
+ }
18
+ return next;
19
+ }
20
+ function synthesisConfigFromUnit(unit) {
21
+ const params = (unit.unitParams ?? {});
22
+ const contract = unit.invokeContract;
23
+ const cfg = { ...params };
24
+ if (contract?.includeContextInPrompt === true) {
25
+ cfg.autoEnableContext = true;
26
+ }
27
+ return cfg;
28
+ }
29
+ async function resolveUnitRequest(request) {
30
+ const resolved = await resolveRunTaskModelReferences(request);
31
+ if (resolved.modelConfig?.skillModel) {
32
+ await assertMainSkillModelConfigReadyForInvoke(resolved.modelConfig, resolved.llmCall, {
33
+ skillKey: resolved.skillKey,
34
+ });
35
+ }
36
+ return resolved;
37
+ }
38
+ export function createNodeExecutionHost(deps) {
39
+ return {
40
+ async runExternalPreUtility(unit, request) {
41
+ const resolved = await resolveUnitRequest(request);
42
+ const config = synthesisConfigFromUnit(unit);
43
+ const pre = await deps.runSynthesizedContextPreStep(resolved, config);
44
+ return applyPreSynthesisUnit(resolved, config, pre, deps.xynthesizedPatchAccumulator);
45
+ },
46
+ async runPipelinePhase(unit, request) {
47
+ const resolved = await resolveUnitRequest(request);
48
+ const config = synthesisConfigFromUnit(unit);
49
+ const pre = await deps.runSynthesizedContextPreStep(resolved, config);
50
+ return applyPreSynthesisUnit(resolved, config, pre, deps.xynthesizedPatchAccumulator);
51
+ },
52
+ async runExecutionStrategyPlanner(unit, request) {
53
+ const resolved = await resolveUnitRequest(request);
54
+ const spec = resolved.executionStrategies?.find((s) => s.strategyKey === "planner");
55
+ if (!spec) {
56
+ throw new Error(`executionStrategyPlanner unit ${unit.unitId} requires planner in executionStrategies`);
57
+ }
58
+ const payload = buildExecutionStrategyRequestPayload({
59
+ skillKey: resolved.skillKey,
60
+ input: resolved.input,
61
+ variables: resolved.variables,
62
+ jobContext: resolved.jobContext,
63
+ jobMemory: resolved.jobMemory,
64
+ taskMemory: resolved.taskMemory,
65
+ executionMemory: resolved.executionMemory,
66
+ jobId: resolved.jobId,
67
+ taskId: resolved.taskId,
68
+ agentId: resolved.agentId,
69
+ graphId: resolved.graphId,
70
+ nodeId: resolved.nodeId,
71
+ prevNodeId: resolved.prevNodeId,
72
+ coreSkillId: resolved.coreSkillId,
73
+ includeContextInPrompt: resolved.includeContextInPrompt,
74
+ });
75
+ const plannerOut = await runPlannerViaXynthesis({
76
+ args: spec.args,
77
+ requestPayload: payload,
78
+ modelConfig: resolved.modelConfig,
79
+ jobId: resolved.jobId,
80
+ taskId: resolved.taskId,
81
+ agentId: resolved.agentId,
82
+ workScopeIdentity: buildXynthesisWorkScopeIdentity({
83
+ jobId: resolved.jobId,
84
+ taskId: resolved.taskId,
85
+ agentId: resolved.agentId,
86
+ graphId: resolved.graphId,
87
+ nodeId: resolved.nodeId,
88
+ prevNodeId: resolved.prevNodeId,
89
+ coreSkillId: resolved.coreSkillId,
90
+ }),
91
+ });
92
+ return applyPlannerOutputToRequest(resolved, plannerOut, 0);
93
+ },
94
+ async runMainSkill(unit, request, _unitContext, options) {
95
+ const resolved = await resolveUnitRequest(request);
96
+ const skillKey = unit.skillKey ?? resolved.skillKey;
97
+ const synthArtifact = resolved.executionMemory?.synthesizedContext;
98
+ let directOpts = options;
99
+ if (synthArtifact &&
100
+ typeof synthArtifact === "object" &&
101
+ typeof synthArtifact.contextMarkdown === "string") {
102
+ directOpts = {
103
+ ...directOpts,
104
+ overrideContext: synthArtifact.contextMarkdown,
105
+ synthesisContextAuthoritative: true,
106
+ };
107
+ }
108
+ const maxIter = unit.optimizerPolicy?.maxIterations;
109
+ if (maxIter !== undefined && resolved.executionStrategies) {
110
+ for (const s of resolved.executionStrategies) {
111
+ if (s.strategyKey === "optimizer" && s.phase === "after") {
112
+ s.args = {
113
+ ...(s.args ?? {}),
114
+ maxIterations: maxIter,
115
+ };
116
+ }
117
+ }
118
+ }
119
+ return deps.runMainWithExecutionStrategies({ ...resolved, skillKey }, directOpts);
120
+ },
121
+ async runExternalPostUtility(unit, request, _unitContext, prior) {
122
+ const resolved = await resolveUnitRequest(request);
123
+ const strategyKey = unit.strategyKey ?? unit.actionKey;
124
+ if (strategyKey === "audit") {
125
+ const auditResult = await runAuditPostStep({
126
+ request: resolved,
127
+ mainResult: prior,
128
+ contextMarkdown: "",
129
+ config: unit.unitParams ?? { gateway: { must: [], should: [] } },
130
+ reRunMain: async () => prior,
131
+ traceCollector: deps.traceCollector,
132
+ });
133
+ return {
134
+ ...prior,
135
+ rawText: auditResult.outputText,
136
+ parsed: prior.parsed,
137
+ metadata: {
138
+ ...(prior.metadata ?? {}),
139
+ postSteps: { audit: auditResult.metadata },
140
+ },
141
+ };
142
+ }
143
+ if (strategyKey === "polish") {
144
+ const polishResult = await runPolishPostStep({
145
+ currentOutput: prior.rawText ?? String(prior.parsed ?? ""),
146
+ config: unit.unitParams ?? { checklist: [] },
147
+ traceCollector: deps.traceCollector,
148
+ jobId: resolved.jobId,
149
+ taskId: resolved.taskId,
150
+ skillKey: resolved.skillKey,
151
+ agentId: resolved.agentId,
152
+ graphId: resolved.graphId,
153
+ nodeId: resolved.nodeId,
154
+ modelConfig: resolved.modelConfig,
155
+ });
156
+ const priorSteps = (prior.intermediateSteps ??
157
+ []);
158
+ let nextStepNumber = priorSteps.length + 1;
159
+ const polishSteps = polishResult.intermediateSteps.map((s) => ({
160
+ ...s,
161
+ step: nextStepNumber++,
162
+ }));
163
+ return {
164
+ ...prior,
165
+ rawText: polishResult.outputText,
166
+ parsed: polishResult.outputText,
167
+ intermediateSteps: [...priorSteps, ...polishSteps],
168
+ metadata: {
169
+ ...(prior.metadata ?? {}),
170
+ postSteps: { polish: polishResult.metadata },
171
+ },
172
+ };
173
+ }
174
+ throw new Error(`Unsupported externalPostUtility strategyKey: ${String(strategyKey)}`);
175
+ },
176
+ async runNarrativePreprocessor(_unit, request) {
177
+ return runNarrixPreprocessorUnit(request);
178
+ },
179
+ async runNarrativeHandler(_unit, request) {
180
+ return runNarrixHandlerUnit(request);
181
+ },
182
+ async runLocalSkill(unit, request) {
183
+ const resolved = await resolveUnitRequest(request);
184
+ const skillKey = unit.skillKey ?? resolved.skillKey;
185
+ const handler = getLocalTask(skillKey);
186
+ if (!handler) {
187
+ throw new Error(`localSkill unit ${unit.unitId}: no handler for ${skillKey}`);
188
+ }
189
+ const started = Date.now();
190
+ const ctx = {
191
+ skillKey,
192
+ jobMemory: resolved.jobMemory,
193
+ taskMemory: resolved.taskMemory,
194
+ executionMemory: resolved.executionMemory,
195
+ variables: resolved.variables,
196
+ xynthesized: resolved.xynthesized,
197
+ smartInput: resolved.smartInput,
198
+ jobId: resolved.jobId,
199
+ taskId: resolved.taskId,
200
+ agentId: resolved.agentId,
201
+ graphId: resolved.graphId,
202
+ nodeId: resolved.nodeId,
203
+ prevNodeId: resolved.prevNodeId,
204
+ coreSkillId: resolved.coreSkillId,
205
+ };
206
+ const value = await handler({ input: resolved.input, ctx });
207
+ const durationMs = Date.now() - started;
208
+ const response = {
209
+ skillKey,
210
+ rawText: JSON.stringify(value, null, 2),
211
+ flexMd: { frame: "localTask.v1", payloads: { value: JSON.stringify(value, null, 2) } },
212
+ parsed: value,
213
+ metadata: { instructionVersion: "local", durationMs, localSkillKey: skillKey },
214
+ };
215
+ if (deps.isStrictDecisionTask(resolved)) {
216
+ if (response.parsed === undefined || response.parsed === null) {
217
+ throw new Error(`Decision task "${skillKey}" did not return response.parsed`);
218
+ }
219
+ }
220
+ const outputValidation = resolved.outputValidation;
221
+ if (outputValidation?.schema) {
222
+ const vr = validateParsedOutput(response.parsed, outputValidation.schema);
223
+ vr.correlationId = deps.taskId;
224
+ response.metadata = {
225
+ ...(response.metadata ?? {}),
226
+ outputValidation: vr,
227
+ };
228
+ if (!vr.ok && (outputValidation.mode ?? "fail") === "fail") {
229
+ throw new Error(`outputValidation failed for ${skillKey}`);
230
+ }
231
+ }
232
+ return response;
233
+ },
234
+ };
235
+ }
236
+ //# sourceMappingURL=createNodeExecutionHost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createNodeExecutionHost.js","sourceRoot":"","sources":["../../src/node-execution/createNodeExecutionHost.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,0DAA0D,CAAC;AACvG,OAAO,EAAE,oCAAoC,EAAE,MAAM,4DAA4D,CAAC;AAClH,OAAO,EAAE,sBAAsB,EAAE,MAAM,6DAA6D,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,+BAA+B,EAAE,MAAM,gDAAgD,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EACL,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,EAAE,wCAAwC,EAAE,MAAM,mCAAmC,CAAC;AAS7F,OAAO,EACL,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,8BAA8B,CAAC;AAuBtC,SAAS,qBAAqB,CAC5B,QAAwB,EACxB,MAAuB,EACvB,GAIC,EACD,gBAA+C;IAE/C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,8BAA8B,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5F,IAAI,UAAU,EAAE,CAAC;QACf,gBAAgB,CAAC,KAAK,GAAG,2BAA2B,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAyB;IACxD,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAoB,CAAC;IAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAkE,CAAC;IACzF,MAAM,GAAG,GAAoB,EAAE,GAAG,MAAM,EAAE,CAAC;IAC3C,IAAI,QAAQ,EAAE,sBAAsB,KAAK,IAAI,EAAE,CAAC;QAC9C,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAC/B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,OAAuB;IACvD,MAAM,QAAQ,GAAG,MAAM,6BAA6B,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC;QACrC,MAAM,wCAAwC,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE;YACrF,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC5B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,IAAoC;IAEpC,OAAO;QACL,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO;YACvC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACtE,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACxF,CAAC;QAED,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO;YAClC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACtE,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACxF,CAAC;QAED,KAAK,CAAC,2BAA2B,CAAC,IAAI,EAAE,OAAO;YAC7C,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC;YACpF,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAC,MAAM,0CAA0C,CAAC,CAAC;YAC1G,CAAC;YACD,MAAM,OAAO,GAAG,oCAAoC,CAAC;gBACnD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,SAAS,EAAE,QAAQ,CAAC,SAAgD;gBACpE,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,OAAO,EAAG,QAAiC,CAAC,OAAO;gBACnD,OAAO,EAAG,QAAiC,CAAC,OAAO;gBACnD,MAAM,EAAG,QAAgC,CAAC,MAAM;gBAChD,UAAU,EAAG,QAAoC,CAAC,UAAU;gBAC5D,WAAW,EAAG,QAAqC,CAAC,WAAW;gBAC/D,sBAAsB,EAAE,QAAQ,CAAC,sBAAsB;aACxD,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC;gBAC9C,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,cAAc,EAAE,OAAO;gBACvB,WAAW,EAAE,QAAQ,CAAC,WAAY;gBAClC,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,OAAO,EAAG,QAAiC,CAAC,OAAO;gBACnD,iBAAiB,EAAE,+BAA+B,CAAC;oBACjD,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,OAAO,EAAG,QAAiC,CAAC,OAAO;oBACnD,OAAO,EAAG,QAAiC,CAAC,OAAO;oBACnD,MAAM,EAAG,QAAgC,CAAC,MAAM;oBAChD,UAAU,EAAG,QAAoC,CAAC,UAAU;oBAC5D,WAAW,EAAG,QAAqC,CAAC,WAAW;iBAChE,CAAC;aACH,CAAC,CAAC;YACH,OAAO,2BAA2B,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO;YACrD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC;YACpD,MAAM,aAAa,GAAG,QAAQ,CAAC,eAAe,EAAE,kBAAkB,CAAC;YACnE,IAAI,UAAU,GAAG,OAAO,CAAC;YACzB,IACE,aAAa;gBACb,OAAO,aAAa,KAAK,QAAQ;gBACjC,OAAQ,aAA8C,CAAC,eAAe,KAAK,QAAQ,EACnF,CAAC;gBACD,UAAU,GAAG;oBACX,GAAG,UAAU;oBACb,eAAe,EAAG,aAA6C,CAAC,eAAe;oBAC/E,6BAA6B,EAAE,IAAI;iBACpC,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC;YACpD,IAAI,OAAO,KAAK,SAAS,IAAI,QAAQ,CAAC,mBAAmB,EAAE,CAAC;gBAC1D,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,mBAAmB,EAAE,CAAC;oBAC7C,IAAI,CAAC,CAAC,WAAW,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;wBACxD,CAAwC,CAAC,IAAI,GAAG;4BAC/C,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;4BACjB,aAAa,EAAE,OAAO;yBACvB,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC,8BAA8B,CAAC,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,EAAE,UAAU,CAAC,CAAC;QACpF,CAAC;QAED,KAAK,CAAC,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK;YAC7D,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC;YACvD,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;gBAC5B,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC;oBACzC,OAAO,EAAE,QAAQ;oBACjB,UAAU,EAAE,KAAK;oBACjB,eAAe,EAAE,EAAE;oBACnB,MAAM,EAAG,IAAI,CAAC,UAAqC,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE;oBAC5F,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,KAAK;oBAC5B,cAAc,EAAE,IAAI,CAAC,cAAc;iBACpC,CAAC,CAAC;gBACH,OAAO;oBACL,GAAG,KAAK;oBACR,OAAO,EAAE,WAAW,CAAC,UAAU;oBAC/B,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,QAAQ,EAAE;wBACR,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;wBACzB,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE;qBAC3C;iBAC0B,CAAC;YAChC,CAAC;YACD,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;gBAC7B,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC;oBAC3C,aAAa,EAAE,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;oBAC1D,MAAM,EAAG,IAAI,CAAC,UAAsC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE;oBACzE,cAAc,EAAE,IAAI,CAAC,cAAc;oBACnC,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,OAAO,EAAG,QAAiC,CAAC,OAAO;oBACnD,OAAO,EAAG,QAAiC,CAAC,OAAO;oBACnD,MAAM,EAAG,QAAgC,CAAC,MAAM;oBAChD,WAAW,EAAE,QAAQ,CAAC,WAAW;iBAClC,CAAC,CAAC;gBACH,MAAM,UAAU,GAAG,CAAE,KAAoD,CAAC,iBAAiB;oBACzF,EAAE,CAAuB,CAAC;gBAC5B,IAAI,cAAc,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC3C,MAAM,WAAW,GAAG,YAAY,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC7D,GAAG,CAAC;oBACJ,IAAI,EAAE,cAAc,EAAE;iBACvB,CAAC,CAAC,CAAC;gBACJ,OAAO;oBACL,GAAG,KAAK;oBACR,OAAO,EAAE,YAAY,CAAC,UAAU;oBAChC,MAAM,EAAE,YAAY,CAAC,UAAqB;oBAC1C,iBAAiB,EAAE,CAAC,GAAG,UAAU,EAAE,GAAG,WAAW,CAAC;oBAClD,QAAQ,EAAE;wBACR,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;wBACzB,SAAS,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;qBAC7C;iBAC0B,CAAC;YAChC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,gDAAgD,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;QAED,KAAK,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO;YAC3C,OAAO,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QAED,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO;YACtC,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO;YAC/B,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC;YACpD,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,MAAM,oBAAoB,QAAQ,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG;gBACV,QAAQ;gBACR,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,OAAO,EAAG,QAAiC,CAAC,OAAO;gBACnD,OAAO,EAAG,QAAiC,CAAC,OAAO;gBACnD,MAAM,EAAG,QAAgC,CAAC,MAAM;gBAChD,UAAU,EAAG,QAAoC,CAAC,UAAU;gBAC5D,WAAW,EAAG,QAAqC,CAAC,WAAW;aAChE,CAAC;YACF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;YACxC,MAAM,QAAQ,GAAG;gBACf,QAAQ;gBACR,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvC,MAAM,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;gBACtF,MAAM,EAAE,KAAgB;gBACxB,QAAQ,EAAE,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE;aACnD,CAAC;YAC9B,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxC,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;oBAC9D,MAAM,IAAI,KAAK,CAAC,kBAAkB,QAAQ,kCAAkC,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;YACD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;YACnD,IAAI,gBAAgB,EAAE,MAAM,EAAE,CAAC;gBAC7B,MAAM,EAAE,GAAG,oBAAoB,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC1E,EAAE,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC9B,QAAmD,CAAC,QAAQ,GAAG;oBAC9D,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;oBAC5B,gBAAgB,EAAE,EAAE;iBACrB,CAAC;gBACF,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;oBAC3D,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { ExecutionUnitPlanV2 } from "@x12i/graphenix-executable-contracts";
2
+ import type { RunTaskRequest, RunTaskResponse } from "../types/task-types.js";
3
+ import { type UnitContextBag } from "./buildRequestFromNodePlan.js";
4
+ import type { NodeExecutionHost } from "./types.js";
5
+ import { type UnitTraceContext } from "./unitTrace.js";
6
+ export declare function dispatchExecutionUnit<TParsed>(unit: ExecutionUnitPlanV2, request: RunTaskRequest, unitContext: UnitContextBag, host: NodeExecutionHost<TParsed>, traceCtx: UnitTraceContext): Promise<{
7
+ request: RunTaskRequest;
8
+ response?: RunTaskResponse<TParsed>;
9
+ }>;
10
+ export declare function recordFallbackIfNeeded(traceCtx: UnitTraceContext, unit: ExecutionUnitPlanV2, applied: boolean): void;
11
+ //# sourceMappingURL=dispatchExecutionUnit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatchExecutionUnit.d.ts","sourceRoot":"","sources":["../../src/node-execution/dispatchExecutionUnit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAML,KAAK,gBAAgB,EAEtB,MAAM,gBAAgB,CAAC;AAExB,wBAAsB,qBAAqB,CAAC,OAAO,EACjD,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,cAAc,EAC3B,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAChC,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC,CA+E3E;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,OAAO,GACf,IAAI,CAIN"}
@@ -0,0 +1,80 @@
1
+ import { applyIncludeContextFromUnit, } from "./buildRequestFromNodePlan.js";
2
+ import { overlayUnitModelOnRequest } from "./resolveUnitModelSelection.js";
3
+ import { appendFallbackApplied, appendModelInvocationCompleted, appendModelInvocationFailed, appendModelInvocationStarted, appendUnitTraceEvent, unitUsesModelInvocation, } from "./unitTrace.js";
4
+ export async function dispatchExecutionUnit(unit, request, unitContext, host, traceCtx) {
5
+ let working = overlayUnitModelOnRequest(request, unit);
6
+ working = applyIncludeContextFromUnit(working, unit);
7
+ appendUnitTraceEvent(traceCtx, "unit.started", unit);
8
+ const invocationId = unitUsesModelInvocation(unit)
9
+ ? appendModelInvocationStarted(traceCtx, unit)
10
+ : undefined;
11
+ try {
12
+ let response;
13
+ switch (unit.unitKind) {
14
+ case "externalPreUtility":
15
+ working = await host.runExternalPreUtility(unit, working, unitContext);
16
+ break;
17
+ case "pipelinePhase":
18
+ working = await host.runPipelinePhase(unit, working, unitContext);
19
+ break;
20
+ case "executionStrategyPlanner":
21
+ working = await host.runExecutionStrategyPlanner(unit, working, unitContext);
22
+ break;
23
+ case "narrativePreprocessor":
24
+ working = await host.runNarrativePreprocessor(unit, working, unitContext);
25
+ break;
26
+ case "narrativeHandler": {
27
+ const handlerResult = await host.runNarrativeHandler(unit, working, unitContext);
28
+ if ("skillKey" in handlerResult && "rawText" in handlerResult) {
29
+ response = handlerResult;
30
+ unitContext.skillOutput = response.parsed ?? response.rawText;
31
+ unitContext.lastResponse = response;
32
+ }
33
+ else {
34
+ working = handlerResult;
35
+ }
36
+ break;
37
+ }
38
+ case "mainSkill":
39
+ response = await host.runMainSkill(unit, working, unitContext);
40
+ unitContext.skillOutput = response.parsed ?? response.rawText;
41
+ unitContext.lastResponse = response;
42
+ break;
43
+ case "localSkill":
44
+ response = await host.runLocalSkill(unit, working, unitContext);
45
+ unitContext.skillOutput = response.parsed ?? response.rawText;
46
+ unitContext.lastResponse = response;
47
+ break;
48
+ case "externalPostUtility":
49
+ if (!unitContext.lastResponse) {
50
+ throw new Error(`externalPostUtility ${unit.unitId} requires a prior mainSkill response`);
51
+ }
52
+ response = await host.runExternalPostUtility(unit, working, unitContext, unitContext.lastResponse);
53
+ unitContext.skillOutput = response.parsed ?? response.rawText;
54
+ unitContext.lastResponse = response;
55
+ break;
56
+ default:
57
+ throw new Error(`Unsupported execution unit kind: ${unit.unitKind}`);
58
+ }
59
+ if (invocationId) {
60
+ appendModelInvocationCompleted(traceCtx, unit, invocationId);
61
+ }
62
+ appendUnitTraceEvent(traceCtx, "unit.completed", unit);
63
+ return { request: working, response };
64
+ }
65
+ catch (error) {
66
+ if (invocationId) {
67
+ appendModelInvocationFailed(traceCtx, unit, invocationId, error);
68
+ }
69
+ appendUnitTraceEvent(traceCtx, "unit.failed", unit, {
70
+ errorMessage: error instanceof Error ? error.message : String(error),
71
+ });
72
+ throw error;
73
+ }
74
+ }
75
+ export function recordFallbackIfNeeded(traceCtx, unit, applied) {
76
+ if (applied && unit.fallbackPolicy?.enabled) {
77
+ appendFallbackApplied(traceCtx, unit);
78
+ }
79
+ }
80
+ //# sourceMappingURL=dispatchExecutionUnit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatchExecutionUnit.js","sourceRoot":"","sources":["../../src/node-execution/dispatchExecutionUnit.ts"],"names":[],"mappings":"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"}