@exellix/graph-engine 8.2.0 → 8.3.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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 8.3.0 — Graphenix 2.4.0 PRE synthesis input contract alignment
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- **`@x12i/graphenix-*` ^2.4.0** — PRE synthesis reads decoupled from `inputsConfig` / `smartInput`; empty `memoryPaths` / `reads` valid (runtime default trio).
|
|
8
|
+
- **`@exellix/ai-tasks` ^10.0.4**, **`@exellix/ai-skills` ^6.12.0** — PRE path resolver + default `jobVariables`, `taskVariables`, `input` reads.
|
|
9
|
+
- **`check:no-legacy`** — floors ai-tasks ≥10.0.4, ai-skills ≥6.12.0, graphenix-core/plan-compiler/plan-format ≥2.4.0; rejects `executionMemory.input` in fixture `smartInput.paths`.
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- **`assertCanonicalTaskNode`** rejects `executionMemory.input` in `smartInput.paths` and `inputSynthesis.sources`.
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- **`graph-qcrbz6t-pre-synthesis` fixture** — removed legacy `smartInput: executionMemory.input` on synthesis task nodes (matches studio Part 2 target export).
|
|
18
|
+
- **Integration tests** — expect PRE synthesis unit `memoryPaths: []`, `reads: []`; no `smartInput` on wire when absent.
|
|
19
|
+
|
|
20
|
+
### Downstream
|
|
21
|
+
|
|
22
|
+
- Studio handoff split: `temp/downstream/graphs-studio/CRS-FRS-005-PART-1` (UI housekeeping) and `PART-2` (PRE emission).
|
|
23
|
+
|
|
3
24
|
## 8.1.12 — Graphenix 2.1.0 path-only synthesis release
|
|
4
25
|
|
|
5
26
|
### Changed
|
|
@@ -6,6 +6,7 @@ import { getStructuredDataFilterPathViolations } from './dataFiltersEvaluation.j
|
|
|
6
6
|
import { conditionWhenSignature, countDefaultModelConfigCases, isEmptyConditionWhen, isGraphAiModelConfig, isModelConfigSelection, isPartialGraphAiModelConfig, } from './modelConfigSelection.js';
|
|
7
7
|
import { assertGraphAiProfileNameString } from './graphAiModelConfig.js';
|
|
8
8
|
import { assertCanonicalGraphDocumentMetadata } from './graphModelStudioSeparation.js';
|
|
9
|
+
import { collectSmartInputPaths } from './smartInputPaths.js';
|
|
9
10
|
/** Top-level keys permitted on a canonical exellix-graph executable graph JSON document. */
|
|
10
11
|
export const CANONICAL_GRAPH_TOP_LEVEL_KEYS = [
|
|
11
12
|
'id',
|
|
@@ -544,7 +545,7 @@ export function assertCanonicalTaskNode(node, context, options) {
|
|
|
544
545
|
}
|
|
545
546
|
}
|
|
546
547
|
if (legacyPreInputPaths.length > 0) {
|
|
547
|
-
throw new ExellixGraphError(ExellixGraphErrorCode.NON_CANONICAL_TASK_NODE, `Task node "${String(node.id)}": ${legacyPreInputPaths.join(', ')} is not allowed —
|
|
548
|
+
throw new ExellixGraphError(ExellixGraphErrorCode.NON_CANONICAL_TASK_NODE, `Task node "${String(node.id)}": ${legacyPreInputPaths.join(', ')} is not allowed — use optional taskConfiguration.aiTaskProfile.inputSynthesis.sources for explicit PRE read scope; otherwise runtime applies the platform default trio (jobVariables, taskVariables, input). Template key is skill-catalog-only.`, { jobId: context?.jobId, graphId: context?.graphId, nodeId: String(node.id) });
|
|
548
549
|
}
|
|
549
550
|
}
|
|
550
551
|
const narrixTc = tc && isPlainObject(tc.narrix) ? tc.narrix : undefined;
|
|
@@ -593,6 +594,24 @@ export function assertCanonicalTaskNode(node, context, options) {
|
|
|
593
594
|
}
|
|
594
595
|
}
|
|
595
596
|
}
|
|
597
|
+
for (const path of collectSmartInputPaths(taskNode)) {
|
|
598
|
+
if (path === 'executionMemory.input' || path.startsWith('executionMemory.input.')) {
|
|
599
|
+
throw new ExellixGraphError(ExellixGraphErrorCode.NON_CANONICAL_TASK_NODE, `Task node "${String(node.id)}": smartInput.paths must not use executionMemory.input — use path "input" for invoke payload or omit smartInput on synthesis nodes (runtime PRE default reads apply).`, { jobId: context?.jobId, graphId: context?.graphId, nodeId: String(node.id) });
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
const synthesisSources = inputSynthesis?.sources;
|
|
603
|
+
if (Array.isArray(synthesisSources)) {
|
|
604
|
+
for (const entry of synthesisSources) {
|
|
605
|
+
const path = typeof entry === 'string'
|
|
606
|
+
? entry.trim()
|
|
607
|
+
: isPlainObject(entry) && typeof entry.path === 'string'
|
|
608
|
+
? entry.path.trim()
|
|
609
|
+
: '';
|
|
610
|
+
if (path === 'executionMemory.input' || path.startsWith('executionMemory.input.')) {
|
|
611
|
+
throw new ExellixGraphError(ExellixGraphErrorCode.NON_CANONICAL_TASK_NODE, `Task node "${String(node.id)}": inputSynthesis.sources must not use executionMemory.input — use path "input" for invoke payload.`, { jobId: context?.jobId, graphId: context?.graphId, nodeId: String(node.id) });
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
}
|
|
596
615
|
}
|
|
597
616
|
/**
|
|
598
617
|
* Throws {@link ExellixGraphError} when the value is not a canonical graph document
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@exellix/graph-engine",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Graph executor SDK",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -52,23 +52,23 @@
|
|
|
52
52
|
"access": "public"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@exellix/ai-skills": "^6.
|
|
56
|
-
"@exellix/ai-tasks": "^10.0.
|
|
55
|
+
"@exellix/ai-skills": "^6.12.0",
|
|
56
|
+
"@exellix/ai-tasks": "^10.0.4",
|
|
57
57
|
"@x12i/activix": "^8.6.3",
|
|
58
58
|
"@x12i/catalox": "^5.9.7",
|
|
59
59
|
"@x12i/env": "^4.0.1",
|
|
60
60
|
"@x12i/funcx": "^4.9.13",
|
|
61
61
|
"@x12i/graphenix": "^2.5.0",
|
|
62
|
-
"@x12i/graphenix-authoring-format": "^2.
|
|
63
|
-
"@x12i/graphenix-core": "^2.
|
|
64
|
-
"@x12i/graphenix-executable-contracts": "^2.
|
|
65
|
-
"@x12i/graphenix-executable-format": "^2.
|
|
66
|
-
"@x12i/graphenix-execute-envelope": "^2.
|
|
62
|
+
"@x12i/graphenix-authoring-format": "^2.4.0",
|
|
63
|
+
"@x12i/graphenix-core": "^2.4.0",
|
|
64
|
+
"@x12i/graphenix-executable-contracts": "^2.4.0",
|
|
65
|
+
"@x12i/graphenix-executable-format": "^2.4.0",
|
|
66
|
+
"@x12i/graphenix-execute-envelope": "^2.4.0",
|
|
67
67
|
"@x12i/graphenix-format": "^2.0.0",
|
|
68
|
-
"@x12i/graphenix-plan-compiler": "^2.
|
|
69
|
-
"@x12i/graphenix-plan-format": "^2.
|
|
70
|
-
"@x12i/graphenix-task-node-format": "^2.
|
|
71
|
-
"@x12i/graphenix-trace-format": "^2.
|
|
68
|
+
"@x12i/graphenix-plan-compiler": "^2.4.0",
|
|
69
|
+
"@x12i/graphenix-plan-format": "^2.4.0",
|
|
70
|
+
"@x12i/graphenix-task-node-format": "^2.4.0",
|
|
71
|
+
"@x12i/graphenix-trace-format": "^2.4.0",
|
|
72
72
|
"@x12i/logxer": "^4.6.0",
|
|
73
73
|
"@x12i/memorix-descriptors": "^1.6.0",
|
|
74
74
|
"@x12i/memorix-retrieval": "^1.11.2",
|