@exellix/graph-engine 6.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.
- package/.env.example +3 -0
- package/CHANGELOG.md +208 -0
- package/README.md +827 -0
- package/dist/src/errors/ExellixGraphError.d.ts +38 -0
- package/dist/src/errors/ExellixGraphError.js +21 -0
- package/dist/src/errors/exellixGraphErrorCodes.d.ts +31 -0
- package/dist/src/errors/exellixGraphErrorCodes.js +32 -0
- package/dist/src/index.d.ts +100 -0
- package/dist/src/index.js +75 -0
- package/dist/src/inspection/contractInspection.d.ts +21 -0
- package/dist/src/inspection/contractInspection.js +526 -0
- package/dist/src/inspection/contractTypes.d.ts +137 -0
- package/dist/src/inspection/contractTypes.js +1 -0
- package/dist/src/inspection/controlInspection.d.ts +22 -0
- package/dist/src/inspection/controlInspection.js +130 -0
- package/dist/src/inspection/graphInspection.d.ts +51 -0
- package/dist/src/inspection/graphInspection.js +467 -0
- package/dist/src/inspection/index.d.ts +21 -0
- package/dist/src/inspection/index.js +17 -0
- package/dist/src/inspection/nodeInspection.d.ts +42 -0
- package/dist/src/inspection/nodeInspection.js +474 -0
- package/dist/src/inspection/types.d.ts +321 -0
- package/dist/src/inspection/types.js +14 -0
- package/dist/src/inspection/validateAiTasksNodeExtensions.d.ts +12 -0
- package/dist/src/inspection/validateAiTasksNodeExtensions.js +119 -0
- package/dist/src/inspection/validateCatalogPlanning.d.ts +21 -0
- package/dist/src/inspection/validateCatalogPlanning.js +187 -0
- package/dist/src/integrations/ActivityTrackerIntegration.d.ts +86 -0
- package/dist/src/integrations/ActivityTrackerIntegration.js +134 -0
- package/dist/src/integrations/ActivixGraphRunIntegration.d.ts +34 -0
- package/dist/src/integrations/ActivixGraphRunIntegration.js +338 -0
- package/dist/src/integrations/ActivixNodeActivityIntegration.d.ts +33 -0
- package/dist/src/integrations/ActivixNodeActivityIntegration.js +220 -0
- package/dist/src/integrations/cataloxGraphCatalog.d.ts +21 -0
- package/dist/src/integrations/cataloxGraphCatalog.js +30 -0
- package/dist/src/integrations/createActivixExellixIntegration.d.ts +14 -0
- package/dist/src/integrations/createActivixExellixIntegration.js +16 -0
- package/dist/src/integrations/createActivixFromEnv.d.ts +31 -0
- package/dist/src/integrations/createActivixFromEnv.js +53 -0
- package/dist/src/loaders/FileGraphLoader.d.ts +23 -0
- package/dist/src/loaders/FileGraphLoader.js +31 -0
- package/dist/src/playground/PlaygroundReporter.d.ts +40 -0
- package/dist/src/playground/PlaygroundReporter.js +480 -0
- package/dist/src/playground/index.d.ts +1 -0
- package/dist/src/playground/index.js +1 -0
- package/dist/src/runtime/ExellixGraphRuntime.d.ts +263 -0
- package/dist/src/runtime/ExellixGraphRuntime.js +1716 -0
- package/dist/src/runtime/GraphEngine.d.ts +33 -0
- package/dist/src/runtime/GraphEngine.js +4 -0
- package/dist/src/runtime/aiTasksObservability.d.ts +6 -0
- package/dist/src/runtime/aiTasksObservability.js +37 -0
- package/dist/src/runtime/aiTasksStrategyPhases.d.ts +46 -0
- package/dist/src/runtime/aiTasksStrategyPhases.js +93 -0
- package/dist/src/runtime/applyAiTaskProfileWebScopingToNarrix.d.ts +17 -0
- package/dist/src/runtime/applyAiTaskProfileWebScopingToNarrix.js +46 -0
- package/dist/src/runtime/buildAiTasksRunTaskRequest.d.ts +67 -0
- package/dist/src/runtime/buildAiTasksRunTaskRequest.js +164 -0
- package/dist/src/runtime/buildRunLog.d.ts +27 -0
- package/dist/src/runtime/buildRunLog.js +234 -0
- package/dist/src/runtime/buildRunTaskTaskConfigurationForward.d.ts +9 -0
- package/dist/src/runtime/buildRunTaskTaskConfigurationForward.js +80 -0
- package/dist/src/runtime/buildTaskNodeJobContext.d.ts +11 -0
- package/dist/src/runtime/buildTaskNodeJobContext.js +30 -0
- package/dist/src/runtime/canonicalModelUsed.d.ts +6 -0
- package/dist/src/runtime/canonicalModelUsed.js +36 -0
- package/dist/src/runtime/contextualScope.d.ts +7 -0
- package/dist/src/runtime/contextualScope.js +121 -0
- package/dist/src/runtime/dataFiltersEvaluation.d.ts +60 -0
- package/dist/src/runtime/dataFiltersEvaluation.js +169 -0
- package/dist/src/runtime/deepMerge.d.ts +5 -0
- package/dist/src/runtime/deepMerge.js +22 -0
- package/dist/src/runtime/events.d.ts +92 -0
- package/dist/src/runtime/events.js +122 -0
- package/dist/src/runtime/executionMatrixHost.d.ts +98 -0
- package/dist/src/runtime/executionMatrixHost.js +134 -0
- package/dist/src/runtime/executionVariableBuckets.d.ts +67 -0
- package/dist/src/runtime/executionVariableBuckets.js +96 -0
- package/dist/src/runtime/finalizers/errors.d.ts +9 -0
- package/dist/src/runtime/finalizers/errors.js +10 -0
- package/dist/src/runtime/finalizers/executeFinalizer.d.ts +40 -0
- package/dist/src/runtime/finalizers/executeFinalizer.js +471 -0
- package/dist/src/runtime/finalizers/schema.d.ts +18 -0
- package/dist/src/runtime/finalizers/schema.js +63 -0
- package/dist/src/runtime/finalizers/validateFinalizer.d.ts +16 -0
- package/dist/src/runtime/finalizers/validateFinalizer.js +534 -0
- package/dist/src/runtime/graphDocumentFingerprint.d.ts +8 -0
- package/dist/src/runtime/graphDocumentFingerprint.js +21 -0
- package/dist/src/runtime/graphEngineMemoryPaths.d.ts +12 -0
- package/dist/src/runtime/graphEngineMemoryPaths.js +55 -0
- package/dist/src/runtime/graphResponseMapping.d.ts +23 -0
- package/dist/src/runtime/graphResponseMapping.js +156 -0
- package/dist/src/runtime/graphResponseMigration.d.ts +7 -0
- package/dist/src/runtime/graphResponseMigration.js +44 -0
- package/dist/src/runtime/graphRunExecutionSeed.d.ts +29 -0
- package/dist/src/runtime/graphRunExecutionSeed.js +61 -0
- package/dist/src/runtime/graphRunIdentity.d.ts +7 -0
- package/dist/src/runtime/graphRunIdentity.js +18 -0
- package/dist/src/runtime/localSkills/deterministicRule.d.ts +137 -0
- package/dist/src/runtime/localSkills/deterministicRule.js +196 -0
- package/dist/src/runtime/localSkills/index.d.ts +12 -0
- package/dist/src/runtime/localSkills/index.js +14 -0
- package/dist/src/runtime/localSkills/memorixItemToScopedOutput.d.ts +7 -0
- package/dist/src/runtime/localSkills/memorixItemToScopedOutput.js +104 -0
- package/dist/src/runtime/localSkills/memorixRuntime.d.ts +9 -0
- package/dist/src/runtime/localSkills/memorixRuntime.js +70 -0
- package/dist/src/runtime/localSkills/memorixScopedConfig.d.ts +16 -0
- package/dist/src/runtime/localSkills/memorixScopedConfig.js +18 -0
- package/dist/src/runtime/localSkills/scopedAnswerAssembler.d.ts +23 -0
- package/dist/src/runtime/localSkills/scopedAnswerAssembler.js +35 -0
- package/dist/src/runtime/localSkills/scopedAnswerFields.d.ts +12 -0
- package/dist/src/runtime/localSkills/scopedAnswerFields.js +66 -0
- package/dist/src/runtime/localSkills/scopedAnswerWriter.d.ts +32 -0
- package/dist/src/runtime/localSkills/scopedAnswerWriter.js +156 -0
- package/dist/src/runtime/localSkills/scopedDataReader.d.ts +47 -0
- package/dist/src/runtime/localSkills/scopedDataReader.js +89 -0
- package/dist/src/runtime/localSkills/utils.d.ts +12 -0
- package/dist/src/runtime/localSkills/utils.js +39 -0
- package/dist/src/runtime/materializeStructuredRunTaskInput.d.ts +9 -0
- package/dist/src/runtime/materializeStructuredRunTaskInput.js +34 -0
- package/dist/src/runtime/memory.d.ts +51 -0
- package/dist/src/runtime/memory.js +250 -0
- package/dist/src/runtime/mergeExellixGraphRuntimeInvocation.d.ts +18 -0
- package/dist/src/runtime/mergeExellixGraphRuntimeInvocation.js +32 -0
- package/dist/src/runtime/modelConfigSelection.d.ts +7 -0
- package/dist/src/runtime/modelConfigSelection.js +37 -0
- package/dist/src/runtime/narrixIngestEnv.d.ts +9 -0
- package/dist/src/runtime/narrixIngestEnv.js +18 -0
- package/dist/src/runtime/pathExpr.d.ts +36 -0
- package/dist/src/runtime/pathExpr.js +131 -0
- package/dist/src/runtime/predicates.d.ts +14 -0
- package/dist/src/runtime/predicates.js +86 -0
- package/dist/src/runtime/readTaskNodeInputsConfig.d.ts +23 -0
- package/dist/src/runtime/readTaskNodeInputsConfig.js +27 -0
- package/dist/src/runtime/resolveExecutionPipelineForTaskNode.d.ts +11 -0
- package/dist/src/runtime/resolveExecutionPipelineForTaskNode.js +93 -0
- package/dist/src/runtime/resolveGraphEngineMemoryPaths.d.ts +63 -0
- package/dist/src/runtime/resolveGraphEngineMemoryPaths.js +213 -0
- package/dist/src/runtime/resolveModelConfigForNode.d.ts +20 -0
- package/dist/src/runtime/resolveModelConfigForNode.js +69 -0
- package/dist/src/runtime/resolveNarrixForTaskNode.d.ts +14 -0
- package/dist/src/runtime/resolveNarrixForTaskNode.js +19 -0
- package/dist/src/runtime/resolveTaskKey.d.ts +11 -0
- package/dist/src/runtime/resolveTaskKey.js +28 -0
- package/dist/src/runtime/resolveTaskNodeInputs.d.ts +25 -0
- package/dist/src/runtime/resolveTaskNodeInputs.js +140 -0
- package/dist/src/runtime/runTaskAugments.d.ts +17 -0
- package/dist/src/runtime/runTaskAugments.js +37 -0
- package/dist/src/runtime/runTaskResponse.d.ts +4 -0
- package/dist/src/runtime/runTaskResponse.js +13 -0
- package/dist/src/runtime/runtimeObjects.d.ts +85 -0
- package/dist/src/runtime/runtimeObjects.js +50 -0
- package/dist/src/runtime/smartInputPaths.d.ts +13 -0
- package/dist/src/runtime/smartInputPaths.js +38 -0
- package/dist/src/runtime/stepRetry.d.ts +21 -0
- package/dist/src/runtime/stepRetry.js +238 -0
- package/dist/src/runtime/synthesizedContextPipeline.d.ts +12 -0
- package/dist/src/runtime/synthesizedContextPipeline.js +28 -0
- package/dist/src/runtime/taskNodeConditionsEvaluation.d.ts +27 -0
- package/dist/src/runtime/taskNodeConditionsEvaluation.js +140 -0
- package/dist/src/runtime/taskNodeMainReadiness.d.ts +45 -0
- package/dist/src/runtime/taskNodeMainReadiness.js +164 -0
- package/dist/src/runtime/taskNodeRunTaskPreflight.d.ts +89 -0
- package/dist/src/runtime/taskNodeRunTaskPreflight.js +204 -0
- package/dist/src/runtime/validateCanonicalGraphDocument.d.ts +25 -0
- package/dist/src/runtime/validateCanonicalGraphDocument.js +567 -0
- package/dist/src/runtime/variables.d.ts +2 -0
- package/dist/src/runtime/variables.js +1 -0
- package/dist/src/runtime/withTimeout.d.ts +5 -0
- package/dist/src/runtime/withTimeout.js +20 -0
- package/dist/src/types/aiTaskProfile.d.ts +41 -0
- package/dist/src/types/aiTaskProfile.js +6 -0
- package/dist/src/types/aiTasksDerivedTypes.d.ts +5 -0
- package/dist/src/types/aiTasksDerivedTypes.js +1 -0
- package/dist/src/types/events.d.ts +23 -0
- package/dist/src/types/events.js +1 -0
- package/dist/src/types/job.d.ts +9 -0
- package/dist/src/types/job.js +1 -0
- package/dist/src/types/narrix.d.ts +60 -0
- package/dist/src/types/narrix.js +1 -0
- package/dist/src/types/options.d.ts +122 -0
- package/dist/src/types/options.js +1 -0
- package/dist/src/types/refs.d.ts +747 -0
- package/dist/src/types/refs.js +12 -0
- package/dist/src/types/results.d.ts +103 -0
- package/dist/src/types/results.js +1 -0
- package/dist/src/types/runLog.d.ts +72 -0
- package/dist/src/types/runLog.js +18 -0
- package/dist/src/types/taskNodeConfiguration.d.ts +95 -0
- package/dist/src/types/taskNodeConfiguration.js +3 -0
- package/dist/src/util/packageVersion.d.ts +2 -0
- package/dist/src/util/packageVersion.js +12 -0
- package/dist/testkit/RealTasksClient.d.ts +16 -0
- package/dist/testkit/RealTasksClient.js +143 -0
- package/dist/testkit/depGraphEngineFactory.d.ts +6 -0
- package/dist/testkit/depGraphEngineFactory.js +54 -0
- package/dist/testkit/exellixRuntimeObjects.d.ts +7 -0
- package/dist/testkit/exellixRuntimeObjects.js +25 -0
- package/dist/testkit/inMemoryGraphLoader.d.ts +6 -0
- package/dist/testkit/inMemoryGraphLoader.js +12 -0
- package/dist/testkit/index.d.ts +4 -0
- package/dist/testkit/index.js +4 -0
- package/package.json +70 -0
package/.env.example
ADDED
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 5.16.0
|
|
4
|
+
|
|
5
|
+
### Breaking
|
|
6
|
+
|
|
7
|
+
- **Flat MAIN `input` only:** Removed automatic `execution.input.raw` / `jobMemory.raw` seeding from `job.raw` / `job.input.raw` in `seedGraphRunExecutionState`. Hosts must pass entity fields directly on `runtime.input` (no nested `input.raw` wrapper). In-repo graphs and docs migrated to `input` / `input.*` paths; use `inputsConfig` with `path: "input"` when aliasing the full MAIN bucket onto `runTask.input.record`.
|
|
8
|
+
|
|
9
|
+
## 5.15.0
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- **Task-node runTask preflight:** `buildTaskNodeRunTaskRequest`, `validateTaskNodeRunTaskConfig`, `validateTaskNodeRunTaskInvoke`, and `analyzeTaskNodeRunTaskRequest` build the same outbound `RunTaskRequest` as `executeNode` and delegate to `@exellix/ai-tasks` validation/analysis (no LLM invoke).
|
|
14
|
+
- **Re-exports:** `validateRunTaskConfig`, `validateRunTaskInvoke`, `analyzeRunTaskRequest`, `analyzeSkillRequest`, `formatSkillRequestAnalysisMarkdown`, Rendrix template helpers, and related types from the package root so hosts can depend on graph-engine only.
|
|
15
|
+
|
|
16
|
+
## 5.13.0
|
|
17
|
+
|
|
18
|
+
### Breaking
|
|
19
|
+
|
|
20
|
+
- **Two variable buckets only:** Graph and job scopes share `execution.jobVariables` (paths `jobVariables.*`; legacy alias `variables.*`). Removed separate `execution.variables`. Task/node scope remains `execution.taskVariables` (`taskVariables.*`). Outbound `runTask.variables` carries the job bucket (ai-tasks ≥ 7.6.2 passthrough).
|
|
21
|
+
|
|
22
|
+
## 5.12.0
|
|
23
|
+
|
|
24
|
+
### Breaking
|
|
25
|
+
|
|
26
|
+
- **No merged variables bag:** Removed `mergeVariables` and `buildVariablesForTaskNode`. Graph/job/task scopes are mirrored separately on `executionMemory` as `variables`, `jobVariables`, and `taskVariables`. Memory paths `variables.*`, `jobVariables.*`, and `taskVariables.*` resolve against distinct buckets (no cross-bucket fallback). Outbound `runTask.variables` carries the graph bucket only; job/task scopes are on `executionMemory`.
|
|
27
|
+
|
|
28
|
+
### Added
|
|
29
|
+
|
|
30
|
+
- **Variable bucket helpers:** `readExecutionVariableBuckets`, `seedGraphVariableBucketsOnExecution`, `mirrorTaskVariablesOnExecution`, `buildMemoryResolutionRootFromExecution`, `buildPredicateEvalContextForNode`.
|
|
31
|
+
- **`GraphRuntimeObject.jobVariables` / `taskVariables`** top-level runtime fields mirrored to execution.
|
|
32
|
+
|
|
33
|
+
## 5.11.0
|
|
34
|
+
|
|
35
|
+
### Added
|
|
36
|
+
|
|
37
|
+
- **`inputsConfig` on task nodes:** Canonical name for runtime payload bindings (replaces confusing `node.inputs`). Dual read: `inputsConfig` → `inputBindings` → `inputs`. Export `readTaskNodeInputsConfig`.
|
|
38
|
+
- **`nodeInputsConfig` response selector:** Replaces `nodeInputs`; reads `inputsConfig` + `taskVariable` on the referenced node. Legacy `nodeInputs` selector type still accepted.
|
|
39
|
+
|
|
40
|
+
### Changed
|
|
41
|
+
|
|
42
|
+
- Docs and inspection label bindings as `inputsConfig.*`. Finalizer nodes still use `inputs`.
|
|
43
|
+
|
|
44
|
+
## 5.10.0
|
|
45
|
+
|
|
46
|
+
### Added
|
|
47
|
+
|
|
48
|
+
- **`taskVariable` on task nodes:** Dynamic task configuration (prompts, literals, `{ "$path": "variables.*" }`) is resolved separately from runtime payload bindings in `inputs` / `inputBindings`. `resolveTaskNodeInputsForRunTask` merges `taskVariable` + bindings into MAIN `input` (legacy literals and `variables.*` refs still under `inputs` are supported until graphs are composer-canonicalized).
|
|
49
|
+
- **Exports:** `resolveTaskNodeTaskVariableForRunTask`, `resolveTaskNodeInputBindingsForRunTask`.
|
|
50
|
+
|
|
51
|
+
### Changed
|
|
52
|
+
|
|
53
|
+
- **Inspection:** `getNodeScopingQuestion` reads `taskVariable.question` and classifies input bindings vs variable refs separately.
|
|
54
|
+
|
|
55
|
+
## 5.9.0
|
|
56
|
+
|
|
57
|
+
### Breaking
|
|
58
|
+
|
|
59
|
+
- **No legacy input shims:** Removed `coalesceRunTaskInputBucket`, `canonicalizeGraphEngineMemoryPath`, `mapInputsMemoryPathToInputRoot`, `mapSmartInputPathsInputsToInput`, `canonicalizeSmartInputConfig`, `normalizeNodeAiTasksMemoryPaths`, `materializeStructuredRunTaskInput`, `parseLooseJsonObject`, and `isDeprecatedGraphEngineMemoryPath`. `input.*` and `inputs.*` resolve as **distinct roots** (no cross-fallback). MAIN `input` must be a plain object (no stringified JSON blob promotion). `extractNonSystemFields` variable leak removed — use `node.variables` only.
|
|
60
|
+
|
|
61
|
+
### Changed
|
|
62
|
+
|
|
63
|
+
- **MAIN `input` vs caller `inputs`:** `buildRunTaskMainInput` builds outbound `RunTaskRequest.input` from runtime MAIN plus node bindings only; caller bag on `inputs` separately.
|
|
64
|
+
|
|
65
|
+
## 5.8.0
|
|
66
|
+
|
|
67
|
+
### Changed
|
|
68
|
+
|
|
69
|
+
- **MAIN `input` vs caller `inputs`:** `buildRunTaskMainInput` builds outbound `RunTaskRequest.input` from runtime MAIN (`executionMemory.input`) plus materialized node bindings only. The caller bag (`runtime.inputs`) is forwarded separately on `inputs` and is no longer merged into `input`.
|
|
70
|
+
|
|
71
|
+
### Added
|
|
72
|
+
|
|
73
|
+
- **Smart-input / MAIN readiness (G1, G3, G4):** `materializeStructuredRunTaskInput` promotes fields from legacy string `input` blobs; `executionMemory.input` is mirrored before `runTask`. `input.*` paths alias to `inputs.*` via `resolveGraphEngineMemoryPathValue`. Configurable `mainReadinessPolicy` (`fail` | `warn` | `off`) with check ids `execution_input_empty` and `synthesis_context_empty` before MAIN `runTask`.
|
|
74
|
+
- **Graph response mapping (G7):** `finalOutput` mapping snapshots full accumulated `executionMemory` / `outputsMemory` after parallel batches complete.
|
|
75
|
+
- **Canonical model (G9):** `resolveCanonicalModelUsed` and `buildAiTasksObservabilityRecord` emit authoritative `modelUsed` from gateway metadata.
|
|
76
|
+
|
|
77
|
+
## 5.7.0
|
|
78
|
+
|
|
79
|
+
### Breaking
|
|
80
|
+
|
|
81
|
+
- **Task-node `conditions`:** Removed `conditions.aiFilter` and structured `conditions.dataFilters` v1 on task nodes. Use `jsonConditions`, `jsConditionFunction`, and `aiCondition` (runx). Opaque `conditions.dataFilters: string[]` remains declarative only.
|
|
82
|
+
- **`modelConfig`:** Flat `{ xynthesisModel, skillModel }` at graph root and `taskConfiguration` replaced by `{ cases: ModelConfigCase[] }` with exactly one no-`when` default case. Migrate: `{ cases: [{ modelConfig: { xynthesisModel, skillModel } }] }`.
|
|
83
|
+
- **`scope.contextualKnowledge.filter.where`:** Removed `cidrContains`. Use `eq` / `eqAny` on host-prepared fields only.
|
|
84
|
+
|
|
85
|
+
### Added
|
|
86
|
+
|
|
87
|
+
- **runx integration:** `evaluateTaskNodeConditions`, `evaluateConditionWhen`, conditional `modelConfig` resolution via `resolveModelConfigForNode`.
|
|
88
|
+
- **Runtime options:** `runx`, `runxCreateOptions` on `createExellixGraphRuntime`.
|
|
89
|
+
- **Docs:** [`.docs/task-node-conditions-evaluation.md`](.docs/task-node-conditions-evaluation.md), [`.docs/platform-generic-vs-implementation.md`](.docs/platform-generic-vs-implementation.md).
|
|
90
|
+
|
|
91
|
+
## 5.5.0
|
|
92
|
+
|
|
93
|
+
### Changed
|
|
94
|
+
|
|
95
|
+
- **Dual memory roots `input` and `inputs`:** Both are allowlisted for `smartInput.paths` and `inputSynthesis.sources`; paths are no longer rewritten to `input.*` at validation or runtime. Optional migration via `mapInputsMemoryPathToInputRoot` / `mapSmartInputPathsInputsToInput`.
|
|
96
|
+
- **`runTask` wire:** Forwards `inputs` (caller bag) alongside coalesced `input` when present. See [CR-input-and-inputs-dual-root.md](.docs/CR-input-and-inputs-dual-root.md) for downstream `@exellix/ai-tasks` and graphs-studio work.
|
|
97
|
+
|
|
98
|
+
## 5.4.0
|
|
99
|
+
|
|
100
|
+
### Added
|
|
101
|
+
|
|
102
|
+
- **`canonicalizeGraphEngineMemoryPath`** — maps legacy `inputs` / `inputs.*` smart-input and input-synthesis paths to canonical `input` / `input.*` without adding `inputs` as a public memory root.
|
|
103
|
+
- **`coalesceRunTaskInputBucket`**, **`resolveGraphEngineMemoryPathValue`**, **`buildGraphEngineMemoryResolutionRootFromWorkingMemory`** — resolve smart-input paths against working-memory shapes (caller `inputs` bag, stringified `input` JSON, bare `input`, `xynthesized.job`); runtime `runTask` uses coalesced `input` for ai-tasks.
|
|
104
|
+
- **`isAllowedGraphEngineMemoryPath`**, **`graphEngineMemoryPathValidationMessage`**, **`canonicalizeSmartInputConfig`**, **`normalizeNodeAiTasksMemoryPaths`**, **`collectAiTasksNodeExtensionIssues`**, and **`assertAiTasksNodeExtensionsValid`** exported from the package root for hosts (e.g. graphs-studio).
|
|
105
|
+
|
|
106
|
+
### Fixed
|
|
107
|
+
|
|
108
|
+
- **`validateCatalogPlanning`** now runs ai-tasks extension checks (`smartInput`, `inputSynthesis`) on all non-finalizer task nodes, not only nodes with `metadata`.
|
|
109
|
+
- Runtime **`runTask`** forwards canonicalized `smartInput.paths`; input-synthesis PRE `memoryPaths` are canonicalized when the pipeline is built.
|
|
110
|
+
|
|
111
|
+
## 5.0.3
|
|
112
|
+
|
|
113
|
+
### Added
|
|
114
|
+
|
|
115
|
+
- **`executeGraph` inline graph contract.** Optional **`ExecuteGraphInput.graph`** (canonical full document) skips **`graphLoader`** when validation succeeds. Callers may omit **`graphId`** / **`job.graphId`** when the document includes a non-empty **`id`**. If inline validation fails and **`graphId ?? job.graphId`** is set, the engine loads by that id instead.
|
|
116
|
+
- **`ExecuteGraphResult.graphAudit`.** `{ source: 'inline' | 'loader', contentSha256 }` fingerprints the resolved graph (stable sorted JSON + SHA-256) for matrix / host persistence alongside catalog **`graphVersion`**.
|
|
117
|
+
- **`computeGraphDocumentContentSha256`** and **`stableStringifyGraphDocument`** exported from the package root.
|
|
118
|
+
|
|
119
|
+
## 5.0.0 — Canonical no-legacy
|
|
120
|
+
|
|
121
|
+
> **Hard-break release.** Every legacy / dual-path surface is removed in one cut.
|
|
122
|
+
> See [`BREAKING-CHANGES.md`](BREAKING-CHANGES.md) for the full migration matrix
|
|
123
|
+
> (every deleted alias, every renamed key, before / after JSON snippets).
|
|
124
|
+
|
|
125
|
+
### Breaking
|
|
126
|
+
|
|
127
|
+
- **Single client surface.** `createExellixGraphRuntime` + `ExecuteGraphInput` is the only public executor. The functional `executeGraph` / `executeNode` and the `ExellixGraphClient` class are deleted; their re-exports and the `HYBRID_MODE_REQUIRES_INJECTED_RUNTIME` error code are gone.
|
|
128
|
+
- **Canonical graph JSON.** [`assertCanonicalGraphDocument`](src/runtime/validateCanonicalGraphDocument.ts) now rejects every legacy alias at load time:
|
|
129
|
+
- `graph.nodes` must be a `GraphNode[]` (record-keyed `Record<string, GraphNode>` is rejected with `NON_CANONICAL_GRAPH_DOCUMENT`).
|
|
130
|
+
- Task nodes must use `node.skillKey` / `node.variables` only — `node.data.skillKey`, `node.data.variables`, `node.metadata.skillKey`, `node.metadata.variables` are rejected with `NON_CANONICAL_TASK_NODE`.
|
|
131
|
+
- `metadata.synthesizedContext`, `metadata.executionStrategyKey`, `metadata.outputConstraints`, and the web-scope keys on `metadata.narrix` (`enableWebScope`, `forceWebScope`, `webScopeQuestions`, `webScoping`, `webScopeTemplates`, `webScopeQuestionTemplate`, `webScopeObjects`, `webScopeEntityIdPath`, `webScopeEntityTypePath`, `enrichWebScopeQuestionFromExecutionRaw`) are rejected. Web scoping authoring lives only on `metadata.aiTaskProfile.webScoping`; structured output validation lives only on `metadata.aiTasksOutputValidation`.
|
|
132
|
+
- **`RunTaskRequest` builder.** `metadata.executionStrategyKey` is no longer typed or forwarded; only `metadata.executionStrategies` is honored. `taskKind ∈ {decision, utility, content}`.
|
|
133
|
+
- **Run-log metadata keys.** `EXELLIX_RUN_LOG_METADATA_KEY` (`exellixRunLog`) and `EXELLIX_LOGXER_CORRELATION_METADATA_KEY` (`logxerCorrelationId`) are removed from the public surface. Only `runLog` (`AI_TASKS_RUN_LOG_METADATA_KEY`) and `logxerRunId` (`AI_TASKS_LOGXER_RUN_ID_METADATA_KEY`) are read by `extractTaskRunLogFromMetadata` / `extractLogxerCorrelationFromMetadata`.
|
|
134
|
+
- **Narrix authoring split.** `NarrixPreProcessorConfig` (graph JSON) no longer carries web-scope fields; the outbound wire payload (`RunTaskRequest.narrix`, type `ResolvedNarrixWirePayload`) is composed by [`applyAiTaskProfileWebScopingToNarrix`](src/runtime/applyAiTaskProfileWebScopingToNarrix.ts) from `metadata.aiTaskProfile.webScoping`. The `WOROX_LOCAL_WEB_SCOPE_*` and `WOROX_ENRICH_WEB_SCOPE_QUESTION_FROM_RAW` env vars no longer affect graph-engine.
|
|
135
|
+
|
|
136
|
+
### Added
|
|
137
|
+
|
|
138
|
+
- **Runtime parity ports.** Local-skill interception (`isLocalSkillKey` + `runScopedDataReader` / `runDeterministicRule` / `runScopedAnswerWriter` / `runScopedAnswerAssembler`), `evaluateGraphPredicate` conditional-edge filtering, `eventEmitter` lifecycle hooks, and `debugMode` per-node trace are now native to `ExellixGraphRuntime`. Local skills short-circuit `tasksClient.runTask`.
|
|
139
|
+
- **`ExecuteGraphResult.debug`.** Populated only when `ExecuteGraphInput.debugMode === true`; surfaces `nodes: NodeTraceEntry[]` (sorted by `startedAt`).
|
|
140
|
+
- **Compile-time `RunTaskRequest` parity test.** [`tests/passthrough-parity.test.ts`](tests/passthrough-parity.test.ts) classifies every `keyof RunTaskRequest` as REQUIRED / BUILT / STRATEGY / PASSTHROUGH / IGNORED via an exhaustive `Record<keyof RunTaskRequest, true>`. Adding a field upstream without classifying it breaks the build.
|
|
141
|
+
- **`npm run check:no-legacy`.** Greps `src/`, `testkit/`, and `graphs/` for removed identifiers (`executeGraph`, `executeNode`, `ExellixGraphClient`, `EXELLIX_RUN_LOG_METADATA_KEY`, `EXELLIX_LOGXER_CORRELATION_METADATA_KEY`, `executionStrategyKey`, `synthesizedContext`, `outputConstraints`, `enableWebScope`) and fails on hits.
|
|
142
|
+
|
|
143
|
+
### Removed
|
|
144
|
+
|
|
145
|
+
- `src/client/ExellixGraphClient.ts`, `src/runtime/executeGraph.ts`, `src/runtime/executeNode.ts`, `src/loaders/GraphLoader.ts` (the wrapper class — `FileGraphLoader` and the runtime's `GraphLoader` interface stay).
|
|
146
|
+
- Legacy types from [`src/types/options.ts`](src/types/options.ts) (`ExecuteGraphOptions`, `ExecuteNodeOptions`, `ExellixGraphClientConfig`, `GraphLoader`, `GraphenixEngine`, `AITasksClient`) and [`src/types/results.ts`](src/types/results.ts) (`ExecuteGraphResponse`, `ExecuteGraphFinalizedResponse`, `ExecuteGraphDebugResponse`, `GraphExecutionResult`).
|
|
147
|
+
- `getGraphVariables`, `getNodeVariables`, `getGraphMemory`, `getNodeMemory` from `src/runtime/variables.ts` and `src/runtime/memory.ts`.
|
|
148
|
+
- `HYBRID_MODE_REQUIRES_INJECTED_RUNTIME` from `exellixGraphErrorCodes.ts`.
|
|
149
|
+
|
|
150
|
+
### Migration
|
|
151
|
+
|
|
152
|
+
See [`BREAKING-CHANGES.md`](BREAKING-CHANGES.md) for before/after JSON snippets and code substitutions.
|
|
153
|
+
|
|
154
|
+
## 4.7.1
|
|
155
|
+
|
|
156
|
+
### Fixed
|
|
157
|
+
|
|
158
|
+
- **`executeNode` vs `ExellixGraphRuntime` parity:** Shared [`buildTaskNodeJobContext`](src/runtime/buildTaskNodeJobContext.ts) (jobContextMapping + `scope.contextualKnowledge`) and [`resolveNarrixForTaskNode`](src/runtime/resolveNarrixForTaskNode.ts) (graph `variables.narrix` defaults + `aiTaskProfile` web merge). Injected runtime previously omitted contextual scope and graph-level Narrix defaults.
|
|
159
|
+
- **`ExellixGraphRuntime` variables:** Merges `graph.variables` and `mergeGraphDocumentModel` → `variables.__graphModel` into the template `variables` bucket before `runTask`, matching functional `getNodeVariables` / `mergeVariables` precedence.
|
|
160
|
+
- **MAIN `runTask`:** `node.data.upstreamNodeIds` is now forwarded into canonical `input` on the functional path (already present on `ExellixGraphRuntime`).
|
|
161
|
+
|
|
162
|
+
### Documentation
|
|
163
|
+
|
|
164
|
+
- **[`.docs/exellix-graph-engine-format.md`](.docs/exellix-graph-engine-format.md):** Align **Narrix / web scoping** with runtime (`executeNode` forwards **`narrix`** only; **`@exellix/ai-tasks`** owns internal web scoper). Replace stale "local web scoping" narrative; cite **`documenations/web-scoping-in-ai-tasks.md`**. Document **`@exellix/ai-tasks`** semver from **`package.json`** (^7.3.8) and **run-log** metadata keys (`runLog` / `exellixRunLog`, `logxerRunId` / `logxerCorrelationId`); note **`RunLogEntry`** has no **`schemaVersion`** yet.
|
|
165
|
+
- **[`README.md`](README.md):** Same compatibility wording for ai-tasks and optional CI note.
|
|
166
|
+
|
|
167
|
+
### Added
|
|
168
|
+
|
|
169
|
+
- **Metadata passthrough:** [`extractRunTaskMetadataPassthrough`](src/runtime/buildAiTasksRunTaskRequest.ts) whitelists optional `@exellix/ai-tasks` **7.2.x** request fields from task-node `metadata` (`narrixScope`, `aiScoping`, `aiScopingOptions`, `timeoutMs`, template tokens/options, `aiEngineId`, `sessionId`, `agentType`, `gatewayDiagnostics`, `context`, `knowledge`), merged inside [`buildAiTasksRunTaskRequest`](src/runtime/buildAiTasksRunTaskRequest.ts).
|
|
170
|
+
- **Exports:** `extractRunTaskMetadataPassthrough`, `RunTaskMetadataPassthrough`, `buildTaskNodeJobContext`, `resolveNarrixForTaskNode` from the package root.
|
|
171
|
+
|
|
172
|
+
## 4.6.0
|
|
173
|
+
|
|
174
|
+
### Changed
|
|
175
|
+
|
|
176
|
+
- **Naming / docs:** Internal module `xynthesisStrategyPhases.ts` → **`aiTasksStrategyPhases.ts`**; **`runEngineAiTasksStrategyPhase`** replaces `runEngineXynthesisStrategyPhase`. Documentation states explicitly that PRE/POST strategy utilities call **`@exellix/ai-tasks` `runTask` only** — graph-engine does **not** import **`@exellix/xynthesis`**.
|
|
177
|
+
- **`@exellix/ai-tasks`:** Dependency **`^7.1.2`**. **`src/types/aiTasksDerivedTypes.ts`** re-exports stable request subtree types from the ai-tasks package root (`XynthesizedMemory`, `SmartInputConfig`, `ExecutionStrategyInvocation`, …).
|
|
178
|
+
|
|
179
|
+
## 4.4.0
|
|
180
|
+
|
|
181
|
+
### Added
|
|
182
|
+
|
|
183
|
+
- **Graph format / ai-tasks v7:** Task node `metadata` may include **`narrixMode`**, **`inputStrategyKey`**, and **`narrixInput`** — forwarded on MAIN `runTask` via **`extractRunTaskStrategyOverrides`** (classic `executeNode` + `ExellixGraphRuntime`). **`metadata.executionStrategies`** maps to **`RunTaskRequest.executionStrategies`** (engine sends **`[]`** when omitted). **`metadata.executionStrategyKey`** is **authoring-only** and is **not** forwarded (use **`executionStrategies`** per ai-tasks **7.1.x**). Root **`executionType`** is not forwarded.
|
|
184
|
+
- **Docs:** [`.docs/exellix-graph-engine-format.md`](.docs/exellix-graph-engine-format.md) — “`metadata` — `@exellix/ai-tasks` runtime strategy & Narrix wiring”.
|
|
185
|
+
|
|
186
|
+
## 4.0.0 (historical — pre-4.4.0 cutover to ai-tasks v6)
|
|
187
|
+
|
|
188
|
+
> Note: this entry was previously labeled `5.0.0` in the changelog but
|
|
189
|
+
> chronologically predates `4.4.0` / `4.6.0` / `4.7.1`. Renamed to `4.0.0` for
|
|
190
|
+
> the canonical no-legacy 5.0 release; the real 5.0.0 entry is at the top of
|
|
191
|
+
> this file.
|
|
192
|
+
|
|
193
|
+
### Breaking
|
|
194
|
+
|
|
195
|
+
- **`@exellix/ai-tasks` ≥ 6.0.1:** Every MAIN `runTask` now carries **`jobTypeId`**, **`taskTypeId`**, canonical **`input`**, and graph telemetry **`nodeId`** / **`coreSkillId`**. Graph-engine **no longer** spreads duplicate root-level task fields (`inputs`, root `question`, etc.). Stub clients that read **`req.skillId`** should use **`req.nodeId`** or **`req.coreSkillId`** (see `src/tests/test-finalizers-runtime.ts`).
|
|
196
|
+
- **Public types:** `RunTaskRequest` / `RunTaskResponse` align with `@exellix/ai-tasks`; adapters may still add **`success`** / **`ok`** / **`output`** (e.g. `RealTasksClient`).
|
|
197
|
+
|
|
198
|
+
### Added
|
|
199
|
+
|
|
200
|
+
- **`buildAiTasksRunTaskRequest`** (`src/runtime/buildAiTasksRunTaskRequest.ts`): single canonical builder for MAIN node requests (classic `executeNode` + injected `ExellixGraphRuntime`).
|
|
201
|
+
- **Engine PRE/POST strategy utilities:** `metadata.aiTaskProfile.preStrategyKey` / `postStrategyKey` → extra `@exellix/ai-tasks` **`runTask`** calls (no direct Xynthesis SDK in graph-engine); merge **`execution.xynthesis.pre`** / **`execution.xynthesis.post`**.
|
|
202
|
+
- **`copyExecutionContextFields`** exported from `memory.ts`; runtime success path copies **`webContext`** / **`synthesizedContext`** like classic `executeNode`.
|
|
203
|
+
- **`Job.jobTypeId`** optional field for explicit `runTask.jobTypeId`.
|
|
204
|
+
|
|
205
|
+
### Changed
|
|
206
|
+
|
|
207
|
+
- **`RealTasksClient`:** Forwards requests without pre-merging `variables` via `mergeSkillTemplateVariables` (ai-tasks owns merge order per `RUNTASK_REQUEST.md`).
|
|
208
|
+
- **Finalizer synthesize `runTask`:** Supplies `jobTypeId`, `taskTypeId`, `coreSkillId`, `nodeId`, and non-empty `input`.
|