@exellix/graph-engine 7.5.1 → 7.6.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.
@@ -39,7 +39,7 @@ export type { PathSegment } from './runtime/pathExpr.js';
39
39
  export { evaluateStructuredDataFilters, evaluateDataFilterPredicate, getStructuredDataFilterPathViolations, isStructuredDataFiltersV1, } from './runtime/dataFiltersEvaluation.js';
40
40
  export { evaluateTaskNodeConditions, evaluateConditionWhen, applyConditionNegate, } from './runtime/taskNodeConditionsEvaluation.js';
41
41
  export type { TaskNodeConditionsEvalDeps, TaskNodeConditionsEvalResult, TaskNodeConditionEvalContext, } from './runtime/taskNodeConditionsEvaluation.js';
42
- export { resolveModelConfigForNode, resolveGraphAiModelConfig, toRunTaskModelConfigForPhase, DEFAULT_GRAPH_AI_MODEL_IDS, DEFAULT_GRAPH_AI_MODEL_PROFILE_CONFIG, } from './runtime/resolveModelConfigForNode.js';
42
+ export { resolveModelConfigForNode, resolveGraphAiModelConfig, toRunTaskModelConfig, toRunTaskModelConfigForPhase, DEFAULT_GRAPH_AI_MODEL_IDS, DEFAULT_GRAPH_AI_MODEL_PROFILE_CONFIG, } from './runtime/resolveModelConfigForNode.js';
43
43
  export { looksLikeConcreteModelId, isGraphAiProfileName, assertGraphAiProfileNameString, type RunTaskModelConfigWire, type EngineModelPhase, } from './runtime/graphAiModelConfig.js';
44
44
  /** @deprecated Use {@link resolveGraphAiModelConfig}. */
45
45
  export { resolveGraphAiModelConfig as resolveGraphAiModelConfigAliases } from './runtime/graphAiModelConfig.js';
@@ -73,7 +73,7 @@ export { runTaskResponseSucceeded } from './runtime/runTaskResponse.js';
73
73
  export { buildTaskNodeRunTaskRequest, validateTaskNodeRunTaskConfig, validateTaskNodeRunTaskInvoke, analyzeTaskNodeRunTaskRequest, } from './runtime/taskNodeRunTaskPreflight.js';
74
74
  export type { BuildTaskNodeRunTaskRequestArgs, BuildTaskNodeRunTaskRequestResult, TaskNodeRunTaskPreflightSkipReason, ValidateTaskNodeRunTaskConfigArgs, ValidateTaskNodeRunTaskConfigResult, ValidateTaskNodeRunTaskInvokeArgs, ValidateTaskNodeRunTaskInvokeResult, AnalyzeTaskNodeRunTaskRequestArgs, AnalyzeTaskNodeRunTaskRequestResult, } from './runtime/taskNodeRunTaskPreflight.js';
75
75
  /** Re-exported from `@exellix/ai-tasks` — preflight validation and analysis without `runTask`. */
76
- export { validateRunTaskConfig, validateRunTaskInvoke, analyzeExpectedRunTaskInput, checkExpectedInputAgainstRequest, collectSmartInputValidationIssues, buildRunTaskValidationContext, analyzeRunTaskRequest, validateParsedOutput, analyzeSkillRequest, buildSkillRequestAnalysisPacket, formatSkillRequestAnalysisMarkdown, listTokens, analyzeTemplateResolution, renderSmartInput, extractTokenNamesFromStrings, getSkillTokens, getSkillContent, } from '@exellix/ai-tasks';
76
+ export { validateRunTaskConfig, validateRunTaskInvoke, analyzeExpectedRunTaskInput, checkExpectedInputAgainstRequest, collectSmartInputValidationIssues, buildRunTaskValidationContext, analyzeRunTaskRequest, validateParsedOutput, buildSkillRequestAnalysisPacket, formatSkillRequestAnalysisMarkdown, listTokens, analyzeTemplateResolution, renderSmartInput, extractTokenNamesFromStrings, getSkillTokens, getSkillContent, } from '@exellix/ai-tasks';
77
77
  export type { RunTaskValidationIssue, RunTaskValidationResult, RunTaskInvokeValidationResult, ExpectedRunTaskInputPath, AnalyzeExpectedRunTaskInputResult, ValidateRunTaskInvokeParams, RunTaskTemplateResolver, AnalyzeRunTaskRequestOptions, AnalyzeRunTaskRequestResult, AnalyzeSkillRequestOptions, AnalyzeSkillRequestResult, SkillRequestAnalysisReport, OutputValidationResult, } from '@exellix/ai-tasks';
78
78
  export { buildExellixGraphRuntimeObjects, setRuntimeObjectsLastJobId, summarizeRuntimeObjectsForPlayground, EXELLIX_GRAPH_RUNTIME_PACKAGE_NAME, EXELLIX_AI_TASKS_PACKAGE_NAME, } from './runtime/runtimeObjects.js';
79
79
  export type { ActivixQueryableClient, LogxerQueryableClient, LogxerLogLine, PackageRuntimeObjects, RuntimeObjects, BuildExellixGraphRuntimeObjectsInput, RuntimeObjectsObservabilitySummary, } from './runtime/runtimeObjects.js';
package/dist/src/index.js CHANGED
@@ -29,7 +29,7 @@ export { mergeMemory } from './runtime/memory.js';
29
29
  export { selectByPath, writeByPath, parsePath } from './runtime/pathExpr.js';
30
30
  export { evaluateStructuredDataFilters, evaluateDataFilterPredicate, getStructuredDataFilterPathViolations, isStructuredDataFiltersV1, } from './runtime/dataFiltersEvaluation.js';
31
31
  export { evaluateTaskNodeConditions, evaluateConditionWhen, applyConditionNegate, } from './runtime/taskNodeConditionsEvaluation.js';
32
- export { resolveModelConfigForNode, resolveGraphAiModelConfig, toRunTaskModelConfigForPhase, DEFAULT_GRAPH_AI_MODEL_IDS, DEFAULT_GRAPH_AI_MODEL_PROFILE_CONFIG, } from './runtime/resolveModelConfigForNode.js';
32
+ export { resolveModelConfigForNode, resolveGraphAiModelConfig, toRunTaskModelConfig, toRunTaskModelConfigForPhase, DEFAULT_GRAPH_AI_MODEL_IDS, DEFAULT_GRAPH_AI_MODEL_PROFILE_CONFIG, } from './runtime/resolveModelConfigForNode.js';
33
33
  export { looksLikeConcreteModelId, isGraphAiProfileName, assertGraphAiProfileNameString, } from './runtime/graphAiModelConfig.js';
34
34
  /** @deprecated Use {@link resolveGraphAiModelConfig}. */
35
35
  export { resolveGraphAiModelConfig as resolveGraphAiModelConfigAliases } from './runtime/graphAiModelConfig.js';
@@ -56,7 +56,7 @@ export { resolveNarrixForTaskNode } from './runtime/resolveNarrixForTaskNode.js'
56
56
  export { runTaskResponseSucceeded } from './runtime/runTaskResponse.js';
57
57
  export { buildTaskNodeRunTaskRequest, validateTaskNodeRunTaskConfig, validateTaskNodeRunTaskInvoke, analyzeTaskNodeRunTaskRequest, } from './runtime/taskNodeRunTaskPreflight.js';
58
58
  /** Re-exported from `@exellix/ai-tasks` — preflight validation and analysis without `runTask`. */
59
- export { validateRunTaskConfig, validateRunTaskInvoke, analyzeExpectedRunTaskInput, checkExpectedInputAgainstRequest, collectSmartInputValidationIssues, buildRunTaskValidationContext, analyzeRunTaskRequest, validateParsedOutput, analyzeSkillRequest, buildSkillRequestAnalysisPacket, formatSkillRequestAnalysisMarkdown, listTokens, analyzeTemplateResolution, renderSmartInput, extractTokenNamesFromStrings, getSkillTokens, getSkillContent, } from '@exellix/ai-tasks';
59
+ export { validateRunTaskConfig, validateRunTaskInvoke, analyzeExpectedRunTaskInput, checkExpectedInputAgainstRequest, collectSmartInputValidationIssues, buildRunTaskValidationContext, analyzeRunTaskRequest, validateParsedOutput, buildSkillRequestAnalysisPacket, formatSkillRequestAnalysisMarkdown, listTokens, analyzeTemplateResolution, renderSmartInput, extractTokenNamesFromStrings, getSkillTokens, getSkillContent, } from '@exellix/ai-tasks';
60
60
  export { buildExellixGraphRuntimeObjects, setRuntimeObjectsLastJobId, summarizeRuntimeObjectsForPlayground, EXELLIX_GRAPH_RUNTIME_PACKAGE_NAME, EXELLIX_AI_TASKS_PACKAGE_NAME, } from './runtime/runtimeObjects.js';
61
61
  export { assertCanonicalGraphDocument, assertCanonicalTaskNode, getCanonicalGraphDocumentViolations, CANONICAL_GRAPH_TOP_LEVEL_KEYS, } from './runtime/validateCanonicalGraphDocument.js';
62
62
  export { GRAPH_ENTRY_STUDIO_ONLY_KEYS, GRAPH_METADATA_STUDIO_ONLY_KEYS, stripGraphModelStudioFields, primaryRuntimeInputFromStudioDocument, getGraphEntryStudioOnlyKeyViolations, getGraphMetadataStudioOnlyKeyViolations, getGraphEntryEmptyInputPathViolations, } from './runtime/graphModelStudioSeparation.js';
@@ -36,7 +36,7 @@ import { evaluateGraphPredicate } from "./predicates.js";
36
36
  import { evaluateStructuredDataFilters } from "./dataFiltersEvaluation.js";
37
37
  import { evaluateTaskNodeConditions } from "./taskNodeConditionsEvaluation.js";
38
38
  import { resolveModelConfigForNode } from "./resolveModelConfigForNode.js";
39
- import { toRunTaskModelConfigForPhase } from "./graphAiModelConfig.js";
39
+ import { toRunTaskModelConfig } from "./graphAiModelConfig.js";
40
40
  import { createRunx } from "@x12i/runx";
41
41
  import { selectByPath } from "./pathExpr.js";
42
42
  import { createGraphStartEvent, createGraphCompleteEvent, createGraphFailEvent, createNodeStartEvent, createNodeCompleteEvent, createNodeFailEvent, } from "./events.js";
@@ -396,7 +396,7 @@ export function createExellixGraphRuntime(opts) {
396
396
  },
397
397
  ...(input.modelConfig != null
398
398
  ? {
399
- modelConfig: toRunTaskModelConfigForPhase(input.modelConfig, 'pre', input.aiProfiles),
399
+ modelConfig: toRunTaskModelConfig(input.modelConfig, input.aiProfiles),
400
400
  }
401
401
  : {}),
402
402
  ...(effectiveLlmCall != null ? { llmCall: effectiveLlmCall } : {}),
@@ -609,7 +609,7 @@ export function createExellixGraphRuntime(opts) {
609
609
  }
610
610
  const effectiveModelConfig = input.modelConfig;
611
611
  const mainRunTaskModelConfig = effectiveModelConfig != null
612
- ? toRunTaskModelConfigForPhase(effectiveModelConfig, 'main', input.aiProfiles)
612
+ ? toRunTaskModelConfig(effectiveModelConfig, input.aiProfiles)
613
613
  : undefined;
614
614
  // DEBUG: Verify execution object before sending
615
615
  traceExecutionMemory('executeNode', 'Node execution object before runTask', {
@@ -1,4 +1,4 @@
1
- import { toRunTaskModelConfigForPhase } from './graphAiModelConfig.js';
1
+ import { toRunTaskModelConfig } from './graphAiModelConfig.js';
2
2
  import { buildAiTasksRunTaskRequest } from './buildAiTasksRunTaskRequest.js';
3
3
  import { buildRunTaskIdentityEnvelope } from './runTaskAugments.js';
4
4
  import { runTaskResponseSucceeded } from './runTaskResponse.js';
@@ -55,7 +55,7 @@ export async function runEngineAiTasksStrategyPhase(args) {
55
55
  executionPipeline: [{ phase: 'main', type: 'direct' }],
56
56
  executionStrategies: [],
57
57
  modelConfig: args.modelConfig != null
58
- ? toRunTaskModelConfigForPhase(args.modelConfig, args.phase, args.aiProfiles)
58
+ ? toRunTaskModelConfig(args.modelConfig, args.aiProfiles)
59
59
  : undefined,
60
60
  llmCall: args.llmCall ?? undefined,
61
61
  identity,
@@ -46,7 +46,7 @@ export type BuildAiTasksRunTaskRequestArgs = {
46
46
  narrix?: ResolvedNarrixWirePayload;
47
47
  outputValidation?: RunTaskRequest['outputValidation'];
48
48
  diagnostics?: RunTaskRequest['diagnostics'];
49
- /** Resolved ai-tasks slot pair (`xynthesisModel` / `skillModel`) for this runTask phase. */
49
+ /** Resolved ai-tasks 3-slot model config (`preActionModel` / `skillModel` / `postActionModel`). */
50
50
  modelConfig?: RunTaskModelConfigWire;
51
51
  llmCall?: LlmCallConfig;
52
52
  identity?: Record<string, unknown>;
@@ -1,8 +1,9 @@
1
1
  import type { GraphAiModelConfig } from '../types/refs.js';
2
- /** Wire shape expected by `@exellix/ai-tasks` `RunTaskRequest.modelConfig`. */
2
+ /** Wire shape for `@exellix/ai-tasks` `RunTaskRequest.modelConfig` (8.4+). */
3
3
  export type RunTaskModelConfigWire = {
4
- xynthesisModel: string;
4
+ preActionModel: string;
5
5
  skillModel: string;
6
+ postActionModel: string;
6
7
  };
7
8
  /** Profile alias names used when no modelConfig tier resolves. */
8
9
  export declare const DEFAULT_GRAPH_AI_MODEL_PROFILE_CONFIG: GraphAiModelConfig;
@@ -34,11 +35,15 @@ export declare function assertGraphAiProfileNameString(value: unknown, path: str
34
35
  export declare function resolveGraphAiModelConfig(modelConfig: GraphAiModelConfig | undefined, context?: GraphAiModelConfigResolveContext): Promise<GraphAiModelConfig>;
35
36
  export type EngineModelPhase = 'pre' | 'main' | 'post';
36
37
  /**
37
- * Maps three-phase graph config to ai-tasks slot pair for a single runTask phase.
38
- * Values are forwarded as-is (profile aliases or concrete ids).
38
+ * Maps graph three-phase config to ai-tasks `RunTaskRequest.modelConfig`.
39
+ * Values are forwarded as-is (profile aliases or concrete ids); ai-tasks routes slots per pipeline phase.
39
40
  *
40
- * When {@link aiProfiles} is set (studio/playground host pattern), xynthesis slots use profile
41
- * aliases so PRE synthesis inside ai-tasks resolves via ai-profiles even when {@link config}
41
+ * When {@link aiProfiles} is set (studio/playground host pattern), PRE/POST slots use profile
42
+ * aliases so synthesis inside ai-tasks resolves via its bundled ai-profiles even when {@link config}
42
43
  * carries host-resolved concrete provider ids on `runtime.modelConfig`.
43
44
  */
44
- export declare function toRunTaskModelConfigForPhase(config: GraphAiModelConfig, phase: EngineModelPhase, aiProfiles?: GraphAiModelConfig): RunTaskModelConfigWire;
45
+ export declare function toRunTaskModelConfig(config: GraphAiModelConfig, aiProfiles?: GraphAiModelConfig): RunTaskModelConfigWire;
46
+ /**
47
+ * @deprecated Use {@link toRunTaskModelConfig}. The phase argument is ignored; ai-tasks 8.4+ routes slots internally.
48
+ */
49
+ export declare function toRunTaskModelConfigForPhase(config: GraphAiModelConfig, _phase: EngineModelPhase, aiProfiles?: GraphAiModelConfig): RunTaskModelConfigWire;
@@ -79,37 +79,31 @@ export async function resolveGraphAiModelConfig(modelConfig, context) {
79
79
  postActionModel: normalizeModelSlot(modelConfig.postActionModel, context),
80
80
  };
81
81
  }
82
- function xynthesisSlotForWire(config, phase, aiProfiles) {
83
- if (aiProfiles != null) {
84
- return phase === 'post' ? aiProfiles.postActionModel : aiProfiles.preActionModel;
85
- }
86
- return phase === 'post' ? config.postActionModel : config.preActionModel;
87
- }
88
82
  /**
89
- * Maps three-phase graph config to ai-tasks slot pair for a single runTask phase.
90
- * Values are forwarded as-is (profile aliases or concrete ids).
83
+ * Maps graph three-phase config to ai-tasks `RunTaskRequest.modelConfig`.
84
+ * Values are forwarded as-is (profile aliases or concrete ids); ai-tasks routes slots per pipeline phase.
91
85
  *
92
- * When {@link aiProfiles} is set (studio/playground host pattern), xynthesis slots use profile
93
- * aliases so PRE synthesis inside ai-tasks resolves via ai-profiles even when {@link config}
86
+ * When {@link aiProfiles} is set (studio/playground host pattern), PRE/POST slots use profile
87
+ * aliases so synthesis inside ai-tasks resolves via its bundled ai-profiles even when {@link config}
94
88
  * carries host-resolved concrete provider ids on `runtime.modelConfig`.
95
89
  */
96
- export function toRunTaskModelConfigForPhase(config, phase, aiProfiles) {
97
- const xynthesisModel = xynthesisSlotForWire(config, phase, aiProfiles);
98
- switch (phase) {
99
- case 'pre':
100
- return {
101
- xynthesisModel,
102
- skillModel: xynthesisModel,
103
- };
104
- case 'main':
105
- return {
106
- xynthesisModel,
107
- skillModel: config.skillModel,
108
- };
109
- case 'post':
110
- return {
111
- xynthesisModel,
112
- skillModel: xynthesisModel,
113
- };
90
+ export function toRunTaskModelConfig(config, aiProfiles) {
91
+ if (aiProfiles != null) {
92
+ return {
93
+ preActionModel: aiProfiles.preActionModel,
94
+ skillModel: config.skillModel,
95
+ postActionModel: aiProfiles.postActionModel,
96
+ };
114
97
  }
98
+ return {
99
+ preActionModel: config.preActionModel,
100
+ skillModel: config.skillModel,
101
+ postActionModel: config.postActionModel,
102
+ };
103
+ }
104
+ /**
105
+ * @deprecated Use {@link toRunTaskModelConfig}. The phase argument is ignored; ai-tasks 8.4+ routes slots internally.
106
+ */
107
+ export function toRunTaskModelConfigForPhase(config, _phase, aiProfiles) {
108
+ return toRunTaskModelConfig(config, aiProfiles);
115
109
  }
@@ -17,8 +17,8 @@ export type ResolveModelConfigForNodeArgs = {
17
17
  /**
18
18
  * Resolves effective model config for a task node (precedence + conditional cases).
19
19
  * Returns profile aliases (or host-resolved concrete ids from runtime overrides) for
20
- * {@link toRunTaskModelConfigForPhase} / ai-tasks wire. Alias → model resolution is downstream.
20
+ * {@link toRunTaskModelConfig} / ai-tasks wire. Alias → model resolution is downstream in ai-tasks.
21
21
  */
22
22
  export declare function resolveModelConfigForNode(args: ResolveModelConfigForNodeArgs): Promise<GraphAiModelConfig>;
23
23
  export { conditionWhenSignature, isEmptyConditionWhen };
24
- export { resolveGraphAiModelConfig, toRunTaskModelConfigForPhase, DEFAULT_GRAPH_AI_MODEL_IDS, DEFAULT_GRAPH_AI_MODEL_PROFILE_CONFIG, } from './graphAiModelConfig.js';
24
+ export { resolveGraphAiModelConfig, toRunTaskModelConfig, toRunTaskModelConfigForPhase, DEFAULT_GRAPH_AI_MODEL_IDS, DEFAULT_GRAPH_AI_MODEL_PROFILE_CONFIG, } from './graphAiModelConfig.js';
@@ -36,7 +36,7 @@ async function resolveTier(value, ctx, executionInput, runx) {
36
36
  /**
37
37
  * Resolves effective model config for a task node (precedence + conditional cases).
38
38
  * Returns profile aliases (or host-resolved concrete ids from runtime overrides) for
39
- * {@link toRunTaskModelConfigForPhase} / ai-tasks wire. Alias → model resolution is downstream.
39
+ * {@link toRunTaskModelConfig} / ai-tasks wire. Alias → model resolution is downstream in ai-tasks.
40
40
  */
41
41
  export async function resolveModelConfigForNode(args) {
42
42
  const staticHost = args.runtimeNodeConfig?.modelConfig;
@@ -53,4 +53,4 @@ export async function resolveModelConfigForNode(args) {
53
53
  return DEFAULT_GRAPH_AI_MODEL_PROFILE_CONFIG;
54
54
  }
55
55
  export { conditionWhenSignature, isEmptyConditionWhen };
56
- export { resolveGraphAiModelConfig, toRunTaskModelConfigForPhase, DEFAULT_GRAPH_AI_MODEL_IDS, DEFAULT_GRAPH_AI_MODEL_PROFILE_CONFIG, } from './graphAiModelConfig.js';
56
+ export { resolveGraphAiModelConfig, toRunTaskModelConfig, toRunTaskModelConfigForPhase, DEFAULT_GRAPH_AI_MODEL_IDS, DEFAULT_GRAPH_AI_MODEL_PROFILE_CONFIG, } from './graphAiModelConfig.js';
@@ -1,5 +1,5 @@
1
1
  import { analyzeRunTaskRequest, validateRunTaskConfig, validateRunTaskInvoke, } from '@exellix/ai-tasks';
2
- import { toRunTaskModelConfigForPhase } from './graphAiModelConfig.js';
2
+ import { toRunTaskModelConfig } from './graphAiModelConfig.js';
3
3
  import { resolveTaskKey } from './resolveTaskKey.js';
4
4
  import { isLocalSkillKey } from './localSkills/index.js';
5
5
  import { buildAiTasksRunTaskRequest, extractRunTaskStrategyOverrides, } from './buildAiTasksRunTaskRequest.js';
@@ -121,7 +121,7 @@ export async function buildTaskNodeRunTaskRequest(args) {
121
121
  });
122
122
  const metaStrats = node.taskConfiguration?.executionStrategies;
123
123
  const ov = node.taskConfiguration?.aiTasksOutputValidation;
124
- const mainRunTaskModelConfig = args.modelConfig != null ? toRunTaskModelConfigForPhase(args.modelConfig, 'main') : undefined;
124
+ const mainRunTaskModelConfig = args.modelConfig != null ? toRunTaskModelConfig(args.modelConfig) : undefined;
125
125
  const request = buildAiTasksRunTaskRequest({
126
126
  skillKey,
127
127
  job: args.job,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exellix/graph-engine",
3
- "version": "7.5.1",
3
+ "version": "7.6.0",
4
4
  "type": "module",
5
5
  "description": "Graph executor SDK",
6
6
  "main": "dist/src/index.js",
@@ -52,18 +52,17 @@
52
52
  "access": "public"
53
53
  },
54
54
  "dependencies": {
55
- "@exellix/ai-tasks": "^8.2.9",
55
+ "@exellix/ai-tasks": "^8.4.0",
56
56
  "@x12i/activix": "8.5.0",
57
57
  "@x12i/catalox": "5.1.3",
58
58
  "@x12i/env": "4.0.1",
59
- "@x12i/funcx": "4.3.0",
59
+ "@x12i/funcx": "4.3.2",
60
60
  "@x12i/graphenix": "2.5.0",
61
61
  "@x12i/graphenix-format": "2.0.0",
62
62
  "@x12i/logxer": "^4.6.0",
63
63
  "@x12i/memorix-descriptors": "1.6.0",
64
64
  "@x12i/memorix-retrieval": "1.11.2",
65
65
  "@x12i/memorix-writer": "1.0.0",
66
- "@x12i/optimixer": "^2.4.4",
67
66
  "@x12i/rendrix": "4.3.0",
68
67
  "@x12i/runx": "1.3.0"
69
68
  },