@exellix/graph-composer 2.15.2 → 2.16.1
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 +17 -0
- package/dist/aiTaskProfile.d.ts +10 -2
- package/dist/aiTaskProfile.d.ts.map +1 -1
- package/dist/aiTaskProfile.js +38 -2
- package/dist/graphComposerOutputValidation.d.ts.map +1 -1
- package/dist/graphComposerOutputValidation.js +5 -0
- package/dist/graphModelLayers.d.ts +6 -4
- package/dist/graphModelLayers.d.ts.map +1 -1
- package/dist/graphModelLayers.js +52 -38
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/functions/graph-composer/meta.json +4 -0
- package/functions/graph-composer/prompts/judge-rules.md +1 -1
- package/functions/graph-composer/prompts/shared/graph-format.md +2 -1
- package/functions/graph-composer/prompts/shared/structural-validation.md +2 -2
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.16.1 — Web synthesis alignment (graph-engine 9.3.1 / ai-tasks 10.4.1)
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- **`@exellix/graph-engine` ^9.3.1** — `webSynthesis` host patch emits `pipelinePhase`; plan validated after host patches.
|
|
8
|
+
- **Peer/dev pins:** `@exellix/ai-tasks` **^10.4.1** (unchanged from 2.16.0 intent).
|
|
9
|
+
- **Docs:** `task-node-execution-protocol.md` — `pipelinePhase` compiled unit example for `webSynthesis`.
|
|
10
|
+
|
|
11
|
+
## 2.16.0 — Input synthesis sources + graph-engine 9.3.0
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- **`@exellix/graph-engine` ^9.3.0** — native Graphenix `inputSources` compile path.
|
|
16
|
+
- **Peer/dev pins:** `@exellix/ai-tasks` **^10.3.0**, `@exellix/ai-skills` **^6.14.0**.
|
|
17
|
+
- **Prompts:** `structural-validation.md`, `judge-rules.md` — `inputSources` read-scope rules.
|
|
18
|
+
- **Docs:** `task-node-execution-protocol.md`, `worox-graph.md` — `synthesizedInput` runtime row.
|
|
19
|
+
|
|
3
20
|
## 2.15.2 — Logxer 5.1.0 + graph-engine 9.2.4
|
|
4
21
|
|
|
5
22
|
### Changed
|
package/dist/aiTaskProfile.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ export type WebQueryTemplateConfig = {
|
|
|
7
7
|
webQueryTemplate?: string;
|
|
8
8
|
webQueryTemplates?: string[];
|
|
9
9
|
webScopeOptions?: Record<string, unknown>;
|
|
10
|
+
/** Model/profile for web-only synthesis; inactive when absent, empty, or `"off"`. */
|
|
11
|
+
webSynthesizerModel?: string | null;
|
|
10
12
|
};
|
|
11
13
|
export type InputSynthesisDestination = "job" | "task" | "execution";
|
|
12
14
|
/**
|
|
@@ -31,8 +33,13 @@ export type InputSynthesisNodeConfig = {
|
|
|
31
33
|
destination?: InputSynthesisDestination;
|
|
32
34
|
/** Non-empty when `enabled` is true. */
|
|
33
35
|
outputKey?: string;
|
|
34
|
-
/** Non-empty memory paths when `enabled` is true. */
|
|
36
|
+
/** Non-empty memory paths when `enabled` is true (advanced / legacy). */
|
|
35
37
|
sources?: string[];
|
|
38
|
+
/**
|
|
39
|
+
* Semantic PRE input selectors: `input`, `jobMemory`, `jobMemory.context` (one or more).
|
|
40
|
+
* When set, drives synthesizedInput vs synthesizedContext write targets.
|
|
41
|
+
*/
|
|
42
|
+
inputSources?: string[];
|
|
36
43
|
/** Optional extra hint for ai-tasks templates (not validated by graph-composer). */
|
|
37
44
|
mode?: string;
|
|
38
45
|
};
|
|
@@ -47,11 +54,12 @@ export type AiTaskProfileMetadata = {
|
|
|
47
54
|
webQueryTemplate?: string;
|
|
48
55
|
webQueryTemplates?: string[];
|
|
49
56
|
webScopeOptions?: Record<string, unknown>;
|
|
57
|
+
webSynthesizerModel?: string | null;
|
|
50
58
|
inputSynthesis?: InputSynthesisNodeConfig;
|
|
51
59
|
};
|
|
52
60
|
/** Built-in worox-graph local skills — no aiTaskProfile required. */
|
|
53
61
|
export declare const DEFAULT_LOCAL_SKILL_KEYS: readonly string[];
|
|
54
|
-
export type TaskNodeProtocolIssueCode = "missing_preStrategyKey" | "missing_postStrategyKey" | "legacy_web_scoping" | "web_query_template_invalid" | "synthesis_enabled_without_catalogId" | "synthesis_enabled_without_strategyKey" | "synthesis_enabled_without_outputKey" | "synthesis_enabled_without_sources" | "synthesis_enabled_without_destination" | "synthesis_pipeline_conflict";
|
|
62
|
+
export type TaskNodeProtocolIssueCode = "missing_preStrategyKey" | "missing_postStrategyKey" | "legacy_web_scoping" | "web_query_template_invalid" | "web_synthesizer_model_invalid" | "synthesis_enabled_without_catalogId" | "synthesis_enabled_without_strategyKey" | "synthesis_enabled_without_outputKey" | "synthesis_enabled_without_sources" | "synthesis_enabled_without_inputSources_or_sources" | "synthesis_enabled_without_destination" | "synthesis_pipeline_conflict";
|
|
55
63
|
export type TaskNodeProtocolGap = {
|
|
56
64
|
nodeId: string;
|
|
57
65
|
skillKey: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiTaskProfile.d.ts","sourceRoot":"","sources":["../src/aiTaskProfile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"aiTaskProfile.d.ts","sourceRoot":"","sources":["../src/aiTaskProfile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,qFAAqF;IACrF,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,KAAK,GAAG,MAAM,GAAG,WAAW,CAAC;AAErE;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,WAAW,CAAC,EAAE,yBAAyB,CAAC;IACxC,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,oFAAoF;IACpF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,cAAc,CAAC,EAAE,wBAAwB,CAAC;CAC3C,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAK5C,CAAC;AAEX,MAAM,MAAM,yBAAyB,GACjC,wBAAwB,GACxB,yBAAyB,GACzB,oBAAoB,GACpB,4BAA4B,GAC5B,+BAA+B,GAC/B,qCAAqC,GACrC,uCAAuC,GACvC,qCAAqC,GACrC,mCAAmC,GACnC,mDAAmD,GACnD,uCAAuC,GACvC,6BAA6B,CAAC;AAElC,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,yBAAyB,EAAE,CAAC;CACrC,CAAC;AAqJF;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;IACR,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;IAClC,mBAAmB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CACxC,GACA,mBAAmB,EAAE,CA4FvB"}
|
package/dist/aiTaskProfile.js
CHANGED
|
@@ -34,6 +34,20 @@ function readAiTaskProfileFromRecord(container) {
|
|
|
34
34
|
const webQueryTemplates = Array.isArray(qraw)
|
|
35
35
|
? qraw.filter((x) => nonEmptyString(x)).map((s) => s.trim())
|
|
36
36
|
: undefined;
|
|
37
|
+
const wsmRaw = p.webSynthesizerModel;
|
|
38
|
+
let webSynthesizerModel;
|
|
39
|
+
if (!("webSynthesizerModel" in p)) {
|
|
40
|
+
webSynthesizerModel = undefined;
|
|
41
|
+
}
|
|
42
|
+
else if (wsmRaw === null) {
|
|
43
|
+
webSynthesizerModel = null;
|
|
44
|
+
}
|
|
45
|
+
else if (typeof wsmRaw === "string") {
|
|
46
|
+
webSynthesizerModel = wsmRaw;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
webSynthesizerModel = undefined;
|
|
50
|
+
}
|
|
37
51
|
const synRaw = readRecord(p.inputSynthesis);
|
|
38
52
|
let synthesis;
|
|
39
53
|
if (synRaw !== undefined) {
|
|
@@ -57,6 +71,10 @@ function readAiTaskProfileFromRecord(container) {
|
|
|
57
71
|
const sources = Array.isArray(sourcesRaw)
|
|
58
72
|
? sourcesRaw.filter((x) => nonEmptyString(x)).map((s) => s.trim())
|
|
59
73
|
: undefined;
|
|
74
|
+
const inputSourcesRaw = synRaw.inputSources;
|
|
75
|
+
const inputSources = Array.isArray(inputSourcesRaw)
|
|
76
|
+
? inputSourcesRaw.filter((x) => nonEmptyString(x)).map((s) => s.trim())
|
|
77
|
+
: undefined;
|
|
60
78
|
synthesis = {
|
|
61
79
|
enabled,
|
|
62
80
|
...(catalogId !== undefined ? { catalogId } : {}),
|
|
@@ -64,6 +82,7 @@ function readAiTaskProfileFromRecord(container) {
|
|
|
64
82
|
...(outputKey !== undefined ? { outputKey } : {}),
|
|
65
83
|
...(destination !== undefined ? { destination } : {}),
|
|
66
84
|
...(sources !== undefined && sources.length > 0 ? { sources } : {}),
|
|
85
|
+
...(inputSources !== undefined && inputSources.length > 0 ? { inputSources } : {}),
|
|
67
86
|
...(mode !== undefined ? { mode } : {}),
|
|
68
87
|
};
|
|
69
88
|
}
|
|
@@ -75,6 +94,7 @@ function readAiTaskProfileFromRecord(container) {
|
|
|
75
94
|
? { webQueryTemplates }
|
|
76
95
|
: {}),
|
|
77
96
|
...(legacyWebScoping ? { legacyWebScoping: true } : {}),
|
|
97
|
+
...("webSynthesizerModel" in p ? { webSynthesizerModel } : {}),
|
|
78
98
|
...(synthesis !== undefined ? { synthesis } : {}),
|
|
79
99
|
};
|
|
80
100
|
}
|
|
@@ -159,6 +179,20 @@ export function reportTaskNodeProtocolGaps(graph, options) {
|
|
|
159
179
|
webQueryTemplate === "input.question") {
|
|
160
180
|
issues.push("web_query_template_invalid");
|
|
161
181
|
}
|
|
182
|
+
const tcProfile = readRecord(taskConfiguration)?.aiTaskProfile;
|
|
183
|
+
const metaProfile = readRecord(meta)?.aiTaskProfile;
|
|
184
|
+
for (const rawProfile of [tcProfile, metaProfile]) {
|
|
185
|
+
const pr = readRecord(rawProfile);
|
|
186
|
+
if (pr === undefined)
|
|
187
|
+
continue;
|
|
188
|
+
if ("webSynthesizerModel" in pr &&
|
|
189
|
+
pr.webSynthesizerModel !== undefined &&
|
|
190
|
+
pr.webSynthesizerModel !== null &&
|
|
191
|
+
typeof pr.webSynthesizerModel !== "string") {
|
|
192
|
+
issues.push("web_synthesizer_model_invalid");
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
162
196
|
if (synthesis?.enabled === true) {
|
|
163
197
|
if (!nonEmptyString(synthesis.catalogId)) {
|
|
164
198
|
issues.push("synthesis_enabled_without_catalogId");
|
|
@@ -169,8 +203,10 @@ export function reportTaskNodeProtocolGaps(graph, options) {
|
|
|
169
203
|
if (!nonEmptyString(synthesis.outputKey)) {
|
|
170
204
|
issues.push("synthesis_enabled_without_outputKey");
|
|
171
205
|
}
|
|
172
|
-
|
|
173
|
-
|
|
206
|
+
const hasSources = (synthesis.sources?.length ?? 0) > 0;
|
|
207
|
+
const hasInputSources = (synthesis.inputSources?.length ?? 0) > 0;
|
|
208
|
+
if (!hasSources && !hasInputSources) {
|
|
209
|
+
issues.push("synthesis_enabled_without_inputSources_or_sources");
|
|
174
210
|
}
|
|
175
211
|
if (synthesis.destination === undefined) {
|
|
176
212
|
issues.push("synthesis_enabled_without_destination");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphComposerOutputValidation.d.ts","sourceRoot":"","sources":["../src/graphComposerOutputValidation.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,kBAAkB,EAAwB,MAAM,YAAY,CAAC;AAE3E,mHAAmH;AACnH,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,GAAG,CAAC,EAAE,uBAAuB,KAC1B,IAAI,CAAC;AAEV,OAAO,EACL,sCAAsC,EACtC,uCAAuC,EACvC,yCAAyC,EACzC,qCAAqC,EACrC,qCAAqC,EACrC,2CAA2C,GAC5C,MAAM,iCAAiC,CAAC;AAuBzC,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,CAAC,EAAE,uBAAuB,GAC7B,IAAI,CAIN;
|
|
1
|
+
{"version":3,"file":"graphComposerOutputValidation.d.ts","sourceRoot":"","sources":["../src/graphComposerOutputValidation.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,kBAAkB,EAAwB,MAAM,YAAY,CAAC;AAE3E,mHAAmH;AACnH,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,GAAG,CAAC,EAAE,uBAAuB,KAC1B,IAAI,CAAC;AAEV,OAAO,EACL,sCAAsC,EACtC,uCAAuC,EACvC,yCAAyC,EACzC,qCAAqC,EACrC,qCAAqC,EACrC,2CAA2C,GAC5C,MAAM,iCAAiC,CAAC;AAuBzC,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,CAAC,EAAE,uBAAuB,GAC7B,IAAI,CAIN;AA+YD,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,CAAC,EAAE,uBAAuB,GAC7B,IAAI,CAwGN;AAED;;;;GAIG;AACH,wBAAgB,uCAAuC,CACrD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,KAAK,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GACjC,IAAI,CAqCN;AAuBD,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,CAAC,EAAE,uBAAuB,GAC7B,IAAI,CAmBN;AAsBD,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,GAAG,CAAC,EAAE,uBAAuB,GAC5B,IAAI,CA+BN;AAmBD,wBAAgB,sCAAsC,CACpD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,CAAC,EAAE,uBAAuB,GAC7B,IAAI,CAkDN;AAED,wBAAgB,qCAAqC,CACnD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,CAAC,EAAE,uBAAuB,GAC7B,IAAI,CAiCN;AAUD,wBAAgB,qCAAqC,CACnD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,CAAC,EAAE,uBAAuB,GAC7B,IAAI,CAwDN;AAED,wBAAgB,uCAAuC,CACrD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,CAAC,EAAE,uBAAuB,GAC7B,IAAI,CAwDN"}
|
|
@@ -237,6 +237,11 @@ function validateReviewConceptCoreTaskPatchItem(t, ctxPrefix) {
|
|
|
237
237
|
throw new Error(`${ctxPrefix}.webQueryTemplate must be a non-empty string when present`);
|
|
238
238
|
}
|
|
239
239
|
}
|
|
240
|
+
if ("webSynthesizerModel" in t && t.webSynthesizerModel !== undefined && t.webSynthesizerModel !== null) {
|
|
241
|
+
if (typeof t.webSynthesizerModel !== "string") {
|
|
242
|
+
throw new Error(`${ctxPrefix}.webSynthesizerModel must be a string, null, or omitted when present`);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
240
245
|
if ("synthesis" in t && t.synthesis !== undefined) {
|
|
241
246
|
const syn = t.synthesis;
|
|
242
247
|
if (syn === null || typeof syn !== "object" || Array.isArray(syn)) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Precedence layer ids (lowest number = wins when present). Matches @exellix/graph-engine 7.2. */
|
|
2
|
-
export type GraphModelLayerSource = "runtime.nodes.modelConfig" | "node.taskConfiguration.modelConfig" | "runtime.modelConfig" | "graph.modelConfig" | "
|
|
2
|
+
export type GraphModelLayerSource = "runtime.nodes.modelConfig" | "node.taskConfiguration.modelConfig" | "runtime.modelConfig" | "graph.modelConfig" | "modelConfig.incomplete";
|
|
3
3
|
export type GraphModelLayerPhase = "preActionModel" | "skillModel" | "postActionModel";
|
|
4
4
|
/** Same three slots as `GraphAiModelConfig` in @exellix/graph-engine (profile names or concrete ids). */
|
|
5
5
|
export type GraphModelProfilesTriple = {
|
|
@@ -27,15 +27,17 @@ export type GraphModelLayerStackEntry = {
|
|
|
27
27
|
export type NodeGraphModelLayers = {
|
|
28
28
|
nodeId: string;
|
|
29
29
|
skillKey: string;
|
|
30
|
-
winning: Pick<GraphModelLayerStackEntry, "source" | "sourcePath" | "layerColor" | "layerOrder" | "
|
|
30
|
+
winning: Pick<GraphModelLayerStackEntry, "source" | "sourcePath" | "layerColor" | "layerOrder" | "providerIds"> & {
|
|
31
|
+
profiles?: GraphModelProfilesTriple;
|
|
32
|
+
};
|
|
31
33
|
/** All declared tiers on this graph/run (map layers), highest precedence first. */
|
|
32
34
|
stack: GraphModelLayerStackEntry[];
|
|
33
35
|
};
|
|
34
36
|
export type GraphModelLayersAnalysis = {
|
|
35
37
|
analyzedAt: string;
|
|
36
|
-
/** False when `runtime` was omitted — analysis reflects model JSON
|
|
38
|
+
/** False when `runtime` was omitted — analysis reflects model JSON only. */
|
|
37
39
|
runtimeIncluded: boolean;
|
|
38
|
-
graphDefaultProfiles
|
|
40
|
+
graphDefaultProfiles?: GraphModelProfilesTriple;
|
|
39
41
|
graphDefaultProviderIds?: GraphModelProfilesTriple;
|
|
40
42
|
nodes: NodeGraphModelLayers[];
|
|
41
43
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphModelLayers.d.ts","sourceRoot":"","sources":["../src/graphModelLayers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graphModelLayers.d.ts","sourceRoot":"","sources":["../src/graphModelLayers.ts"],"names":[],"mappings":"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"}
|
package/dist/graphModelLayers.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Model resolution map for worox graphs: which graph-engine profile names apply per AI node,
|
|
3
3
|
* which precedence layer wins — without registry resolution (execute-time owns provider ids).
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
5
|
+
import { isGraphAiModelConfig, isModelConfigSelection, looksLikeConcreteModelId, resolveGraphAiModelConfig, } from "./graphEngineBridge.js";
|
|
6
6
|
import { DEFAULT_LOCAL_SKILL_KEYS } from "./aiTaskProfile.js";
|
|
7
7
|
const LAYER_META = {
|
|
8
8
|
"runtime.nodes.modelConfig": {
|
|
@@ -25,10 +25,10 @@ const LAYER_META = {
|
|
|
25
25
|
layerColor: "#2563eb",
|
|
26
26
|
label: "graph default model",
|
|
27
27
|
},
|
|
28
|
-
"
|
|
28
|
+
"modelConfig.incomplete": {
|
|
29
29
|
layerOrder: 5,
|
|
30
30
|
layerColor: "#6b7280",
|
|
31
|
-
label: "
|
|
31
|
+
label: "modelConfig incomplete (execute will fail)",
|
|
32
32
|
},
|
|
33
33
|
};
|
|
34
34
|
/** Distinct accent per profile name for MAIN slot badges in UIs. */
|
|
@@ -135,9 +135,8 @@ async function resolveWinningTier(tiers) {
|
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
137
|
return {
|
|
138
|
-
source: "
|
|
139
|
-
sourcePath: "
|
|
140
|
-
profiles: { ...DEFAULT_GRAPH_AI_MODEL_PROFILE_CONFIG },
|
|
138
|
+
source: "modelConfig.incomplete",
|
|
139
|
+
sourcePath: "graph.modelConfig / node.taskConfiguration.modelConfig",
|
|
141
140
|
};
|
|
142
141
|
}
|
|
143
142
|
/**
|
|
@@ -155,19 +154,21 @@ export async function analyzeGraphModelLayers(graph, options) {
|
|
|
155
154
|
const runtimeIncluded = runtime !== undefined;
|
|
156
155
|
const locals = localSkillKeys(options);
|
|
157
156
|
const graphTier = describeModelConfigTier(g.modelConfig, "graph.modelConfig");
|
|
158
|
-
const graphDefaultProfiles = graphTier.profiles
|
|
159
|
-
const normalizedGraphDefault =
|
|
160
|
-
graphId
|
|
161
|
-
|
|
162
|
-
const graphDefaultProviderIds =
|
|
157
|
+
const graphDefaultProfiles = graphTier.profiles;
|
|
158
|
+
const normalizedGraphDefault = graphDefaultProfiles != null
|
|
159
|
+
? await normalizeProfilesTriple(graphDefaultProfiles, { graphId })
|
|
160
|
+
: undefined;
|
|
161
|
+
const graphDefaultProviderIds = normalizedGraphDefault != null
|
|
162
|
+
? providerIdsFromConcreteSlots(normalizedGraphDefault)
|
|
163
|
+
: undefined;
|
|
163
164
|
const nodes = [];
|
|
164
165
|
const nodeList = g.nodes;
|
|
165
166
|
if (!Array.isArray(nodeList)) {
|
|
166
167
|
return {
|
|
167
168
|
analyzedAt: new Date().toISOString(),
|
|
168
169
|
runtimeIncluded,
|
|
169
|
-
graphDefaultProfiles: normalizedGraphDefault,
|
|
170
|
-
graphDefaultProviderIds,
|
|
170
|
+
...(normalizedGraphDefault != null ? { graphDefaultProfiles: normalizedGraphDefault } : {}),
|
|
171
|
+
...(graphDefaultProviderIds !== undefined ? { graphDefaultProviderIds } : {}),
|
|
171
172
|
nodes,
|
|
172
173
|
};
|
|
173
174
|
}
|
|
@@ -214,11 +215,10 @@ export async function analyzeGraphModelLayers(graph, options) {
|
|
|
214
215
|
});
|
|
215
216
|
}
|
|
216
217
|
const winning = await resolveWinningTier(tiers);
|
|
217
|
-
const winningProfiles =
|
|
218
|
-
graphId,
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
const winningProviderIds = providerIdsFromConcreteSlots(winningProfiles);
|
|
218
|
+
const winningProfiles = winning.profiles != null
|
|
219
|
+
? await normalizeProfilesTriple(winning.profiles, { graphId, nodeId })
|
|
220
|
+
: undefined;
|
|
221
|
+
const winningProviderIds = winningProfiles != null ? providerIdsFromConcreteSlots(winningProfiles) : undefined;
|
|
222
222
|
const stack = [];
|
|
223
223
|
const pushTier = async (tier) => {
|
|
224
224
|
const described = describeModelConfigTier(tier.value, tier.basePath);
|
|
@@ -236,12 +236,19 @@ export async function analyzeGraphModelLayers(graph, options) {
|
|
|
236
236
|
for (const tier of tiers) {
|
|
237
237
|
await pushTier(tier);
|
|
238
238
|
}
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
239
|
+
if (winning.source === "modelConfig.incomplete") {
|
|
240
|
+
const meta = LAYER_META["modelConfig.incomplete"];
|
|
241
|
+
stack.push({
|
|
242
|
+
source: "modelConfig.incomplete",
|
|
243
|
+
sourcePath: winning.sourcePath,
|
|
244
|
+
layerColor: meta.layerColor,
|
|
245
|
+
layerOrder: meta.layerOrder,
|
|
246
|
+
active: true,
|
|
247
|
+
profiles: { preActionModel: "—", skillModel: "—", postActionModel: "—" },
|
|
248
|
+
conditionalNote: tiers.length === 0
|
|
249
|
+
? "no modelConfig on graph or node — declare preActionModel, skillModel, postActionModel"
|
|
250
|
+
: "declared modelConfig cases are incomplete — all three slots required at execute",
|
|
251
|
+
});
|
|
245
252
|
}
|
|
246
253
|
stack.sort((a, b) => a.layerOrder - b.layerOrder);
|
|
247
254
|
nodes.push({
|
|
@@ -252,7 +259,7 @@ export async function analyzeGraphModelLayers(graph, options) {
|
|
|
252
259
|
sourcePath: winning.sourcePath,
|
|
253
260
|
layerColor: LAYER_META[winning.source].layerColor,
|
|
254
261
|
layerOrder: LAYER_META[winning.source].layerOrder,
|
|
255
|
-
profiles: winningProfiles,
|
|
262
|
+
...(winningProfiles != null ? { profiles: winningProfiles } : {}),
|
|
256
263
|
...(winningProviderIds !== undefined ? { providerIds: winningProviderIds } : {}),
|
|
257
264
|
},
|
|
258
265
|
stack,
|
|
@@ -261,8 +268,8 @@ export async function analyzeGraphModelLayers(graph, options) {
|
|
|
261
268
|
return {
|
|
262
269
|
analyzedAt: new Date().toISOString(),
|
|
263
270
|
runtimeIncluded,
|
|
264
|
-
graphDefaultProfiles: normalizedGraphDefault,
|
|
265
|
-
graphDefaultProviderIds,
|
|
271
|
+
...(normalizedGraphDefault != null ? { graphDefaultProfiles: normalizedGraphDefault } : {}),
|
|
272
|
+
...(graphDefaultProviderIds !== undefined ? { graphDefaultProviderIds } : {}),
|
|
266
273
|
nodes,
|
|
267
274
|
};
|
|
268
275
|
}
|
|
@@ -300,13 +307,16 @@ export async function stampGraphModelLayersOnGraph(graph, options) {
|
|
|
300
307
|
if (layer === undefined)
|
|
301
308
|
continue;
|
|
302
309
|
const meta = { ...readRecord(node.metadata) };
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
profileAccents: {
|
|
310
|
+
const profileAccents = layer.winning.profiles != null
|
|
311
|
+
? {
|
|
306
312
|
preActionModel: graphModelProfileAccent(layer.winning.profiles.preActionModel),
|
|
307
313
|
skillModel: graphModelProfileAccent(layer.winning.profiles.skillModel),
|
|
308
314
|
postActionModel: graphModelProfileAccent(layer.winning.profiles.postActionModel),
|
|
309
|
-
}
|
|
315
|
+
}
|
|
316
|
+
: undefined;
|
|
317
|
+
meta.graphModelLayers = {
|
|
318
|
+
...layer,
|
|
319
|
+
...(profileAccents != null ? { profileAccents } : {}),
|
|
310
320
|
legend: graphModelLayerLegend(),
|
|
311
321
|
};
|
|
312
322
|
node.metadata = meta;
|
|
@@ -316,13 +326,17 @@ export async function stampGraphModelLayersOnGraph(graph, options) {
|
|
|
316
326
|
analyzedAt: analysis.analyzedAt,
|
|
317
327
|
runtimeIncluded: analysis.runtimeIncluded,
|
|
318
328
|
legend: graphModelLayerLegend(),
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
329
|
+
...(analysis.graphDefaultProfiles != null
|
|
330
|
+
? {
|
|
331
|
+
graphDefault: {
|
|
332
|
+
profiles: analysis.graphDefaultProfiles,
|
|
333
|
+
...(analysis.graphDefaultProviderIds !== undefined
|
|
334
|
+
? { providerIds: analysis.graphDefaultProviderIds }
|
|
335
|
+
: {}),
|
|
336
|
+
},
|
|
337
|
+
}
|
|
338
|
+
: {}),
|
|
339
|
+
note: "Planning overlay only. Profile/choice keys come from graph JSON; concrete provider ids are resolved at execute time by ai-tasks. Missing or partial modelConfig fails at execute — no engine default fill-in. Runtime model overlays are analysis-only — graph-engine 7.7+ rejects them at execute time.",
|
|
326
340
|
};
|
|
327
341
|
g.metadata = rootMeta;
|
|
328
342
|
return graph;
|
package/dist/types.d.ts
CHANGED
|
@@ -86,6 +86,8 @@ export type GraphConceptCoreTaskPatchItem = {
|
|
|
86
86
|
requirements?: GraphConceptRequirementsPatch;
|
|
87
87
|
/** Rendrix web query template for PRE webScope (Graphenix 2.7.3+). */
|
|
88
88
|
webQueryTemplate?: string;
|
|
89
|
+
/** Optional model for web-only synthesis; `"off"` or empty disables. */
|
|
90
|
+
webSynthesizerModel?: string | null;
|
|
89
91
|
synthesis?: Record<string, unknown>;
|
|
90
92
|
};
|
|
91
93
|
export type GraphConceptPatch = {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -81,6 +81,10 @@
|
|
|
81
81
|
"$ref": "#/$defs/GraphConceptRequirementsPatch"
|
|
82
82
|
},
|
|
83
83
|
"webQueryTemplate": { "type": "string" },
|
|
84
|
+
"webSynthesizerModel": {
|
|
85
|
+
"description": "Model/profile for web-only synthesis after webScope; omit, empty, or off to disable",
|
|
86
|
+
"anyOf": [{ "type": "string" }, { "type": "null" }]
|
|
87
|
+
},
|
|
84
88
|
"synthesis": { "type": "object" }
|
|
85
89
|
}
|
|
86
90
|
},
|
|
@@ -18,7 +18,7 @@ Weighted rules passed to aifunctions-js for scoring model outputs. **Source of t
|
|
|
18
18
|
{ "rule": "For reviewConcept: when a single requirement value cannot be chosen with confidence, include requirementOptions with ranked candidates and/or catalogProposals or findings with structured proposal — not only free-text findings summaries", "weight": 2 },
|
|
19
19
|
{ "rule": "For create/modify: every AI task node must include taskConfiguration.aiTaskProfile.preStrategyKey and postStrategyKey (non-empty); core skill stays skillKey", "weight": 3 },
|
|
20
20
|
{ "rule": "For create/modify: use inputsConfig (not inputs) on task nodes; executionMapping (not outputMapping) for task result wiring; taskVariable for question and variable refs (jobVariables.* / taskVariables.*)", "weight": 3 },
|
|
21
|
-
{ "rule": "For create/modify: when web scope is needed, taskConfiguration.aiTaskProfile.webQueryTemplate must be a non-empty Rendrix template; when inputSynthesis.enabled is true, catalogId and strategyKey must be non-empty", "weight": 3 },
|
|
21
|
+
{ "rule": "For create/modify: when web scope is needed, taskConfiguration.aiTaskProfile.webQueryTemplate must be a non-empty Rendrix template; optional webSynthesizerModel must be string/null/off when present; when inputSynthesis.enabled is true, catalogId and strategyKey must be non-empty and inputSources and/or sources must declare read scope", "weight": 3 },
|
|
22
22
|
{ "rule": "For create/modify: returned graph must pass offline task-node protocol (pre/post, webQueryTemplate, inputSynthesis) on taskConfiguration.aiTaskProfile", "weight": 3 },
|
|
23
23
|
{ "rule": "In locked mode, no skillKey outside the provided catalog may appear in nodes", "weight": 3 },
|
|
24
24
|
{ "rule": "In extensible mode, every novel skillKey must have a corresponding requiredSkills entry with all required fields", "weight": 2 },
|
|
@@ -44,6 +44,7 @@ A graph is a single JSON object. Top-level fields (canonical root keys only):
|
|
|
44
44
|
"preStrategyKey": "<pre-strategy-row-id>",
|
|
45
45
|
"postStrategyKey": "<post-strategy-row-id>",
|
|
46
46
|
"webQueryTemplate": "Optional Rendrix template, e.g. Patch status for input.cveId (wrap field paths in Rendrix double-brace syntax in real graph JSON)",
|
|
47
|
+
"webSynthesizerModel": "Optional model/profile for web-only synthesis (cheap, pro/default, or off to disable)",
|
|
47
48
|
"inputSynthesis": { "enabled": false }
|
|
48
49
|
},
|
|
49
50
|
"narrix": { "datasetId": "<optional>", "layer": "<optional>" },
|
|
@@ -68,7 +69,7 @@ A graph is a single JSON object. Top-level fields (canonical root keys only):
|
|
|
68
69
|
| Planning / UX | `metadata.*` | `graphReadability`, `catalogBinding`, `name`, `description` — **not** `aiTaskProfile` or `narrix`. |
|
|
69
70
|
| Result wiring | `executionMapping` | Writes into execution memory after the task succeeds. |
|
|
70
71
|
|
|
71
|
-
- **AI task nodes** must include **`taskConfiguration.aiTaskProfile`** with non-empty **`preStrategyKey`** and **`postStrategyKey`** (deployment catalog row ids). Add **`taskConfiguration.narrix`** when discovery applies. Add **`webQueryTemplate`** (
|
|
72
|
+
- **AI task nodes** must include **`taskConfiguration.aiTaskProfile`** with non-empty **`preStrategyKey`** and **`postStrategyKey`** (deployment catalog row ids). Add **`taskConfiguration.narrix`** when discovery applies. Add **`webQueryTemplate`** (optional **`webScopeOptions`**, **`webSynthesizerModel`**) / **`inputSynthesis`** under **`aiTaskProfile`** when needed. When **`inputSynthesis.enabled`**, set **`inputSources`** (`input`, `jobMemory`, `jobMemory.context` — one or more) and/or **`sources`** memory paths; `input`-only → `executionMemory.synthesizedInput`, job-memory → `executionMemory.synthesizedContext`, both → prefer `executionMemory.synthesizedInput` for preAction input. **`webSynthesizerModel`**: omit, empty, or `"off"` → web search only; non-empty model → synthesize `webContext` to `synthesizedContext.contextMarkdown` via PRE `webSynthesis` (independent of `inputSynthesis`). Do **not** author **`webScoping`**, **`narrix.enableWebScope`**, or **`narrix.webScopeQuestions`**. Legacy **`metadata.aiTaskProfile`** is dual-read and canonicalized to **`taskConfiguration`** on output — do not author new graphs under `metadata`.
|
|
72
73
|
- **`taskConfiguration.llmCall`** (MAIN tuning only): optional **`temperature`**, **`topP`**, **`reasoningEffort`** (`not-applicable` | `none` | `low` | `medium` | `high`), **`timeoutMs`**, **`outputExpectation`**. Do **not** author **`maxTokens`**, **`max_completion_tokens`**, or **`maxTokensCap`** — Optimixer owns completion budget at invoke. Do **not** set **`llmCall.model`** on graph JSON (runtime resolves from **`skillModel`**).
|
|
73
74
|
- **`modelConfig`** cases hold **`@x12i/ai-profiles` profile names only** in three slots — never token caps or provider ids on graph JSON.
|
|
74
75
|
- `skillKey` must come from the provided skill catalog unless extensible mode is active.
|
|
@@ -10,8 +10,8 @@ Before returning any graph (create/modify only), verify:
|
|
|
10
10
|
8. If `maxNodes` is set, the total node count does not exceed it.
|
|
11
11
|
9. All `skillKey` values exist in the provided catalog (unless extensible mode is active).
|
|
12
12
|
10. For every **AI task** node, include **`taskConfiguration.aiTaskProfile.preStrategyKey`** and **`postStrategyKey`** (non-empty strings matching deployment PRE/POST strategy catalog row ids). Omit only on local/utility skills.
|
|
13
|
-
11. When web scope is needed, set non-empty **`taskConfiguration.aiTaskProfile.webQueryTemplate`** (Rendrix string with `input.<fieldName>` refs in double-brace syntax). Optional **`webQueryTemplates[]`** for pack mode. Do **not** author **`webScoping`** or web keys on **`narrix`**.
|
|
14
|
-
12. When **`inputSynthesis.enabled`** is `true`, set non-empty **`inputSynthesis.catalogId`**, **`strategyKey`**, **`outputKey`**, **`
|
|
13
|
+
11. When web scope is needed, set non-empty **`taskConfiguration.aiTaskProfile.webQueryTemplate`** (Rendrix string with `input.<fieldName>` refs in double-brace syntax). Optional **`webQueryTemplates[]`** for pack mode. Optional **`webSynthesizerModel`**: omit/empty/`"off"` for raw web only; non-empty model runs web-only synthesis to **`executionMemory.synthesizedContext.contextMarkdown`**. Do **not** author **`webScoping`** or web keys on **`narrix`**.
|
|
14
|
+
12. When **`inputSynthesis.enabled`** is `true`, set non-empty **`inputSynthesis.catalogId`**, **`strategyKey`**, **`outputKey`**, and **`destination`** (`job`, `task`, or `execution`). Declare read scope with **`inputSources`** (`input`, `jobMemory`, `jobMemory.context` — one or more) **and/or** **`sources`** (memory paths); at least one must be non-empty. `input`-only → `executionMemory.synthesizedInput`; job-memory selectors → `executionMemory.synthesizedContext`; both → prefer `executionMemory.synthesizedInput` for preAction input. Do not add manual PRE `synthesized-context` steps when profile synthesis is enabled.
|
|
15
15
|
13. Do not author deprecated task-node **`inputs`** or **`outputMapping`** — use **`inputsConfig`** and **`executionMapping`**.
|
|
16
16
|
14. **Narrix** belongs under **`taskConfiguration.narrix`** (`datasetId`, `layer`, `narrativeTypeIds` when needed). Discovery only — no web fields on `narrix`.
|
|
17
17
|
15. **`metadata`** is for planning fields (`graphReadability`, `catalogBinding`, …) only.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@exellix/graph-composer",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.16.1",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -64,8 +64,8 @@
|
|
|
64
64
|
},
|
|
65
65
|
"homepage": "https://github.com/woroces/graph-composer#readme",
|
|
66
66
|
"peerDependencies": {
|
|
67
|
-
"@exellix/ai-skills": "^6.
|
|
68
|
-
"@exellix/ai-tasks": "^10.
|
|
67
|
+
"@exellix/ai-skills": "^6.14.0",
|
|
68
|
+
"@exellix/ai-tasks": "^10.4.1"
|
|
69
69
|
},
|
|
70
70
|
"peerDependenciesMeta": {
|
|
71
71
|
"@exellix/ai-tasks": {
|
|
@@ -76,15 +76,15 @@
|
|
|
76
76
|
}
|
|
77
77
|
},
|
|
78
78
|
"dependencies": {
|
|
79
|
-
"@exellix/graph-engine": "^9.
|
|
79
|
+
"@exellix/graph-engine": "^9.3.1",
|
|
80
80
|
"@x12i/catalox": "^5.10.1",
|
|
81
81
|
"@x12i/env": "^4.0.3",
|
|
82
82
|
"@x12i/funcx": "^4.9.14",
|
|
83
83
|
"@x12i/logxer": "^5.1.0"
|
|
84
84
|
},
|
|
85
85
|
"devDependencies": {
|
|
86
|
-
"@exellix/ai-skills": "^6.
|
|
87
|
-
"@exellix/ai-tasks": "^10.
|
|
86
|
+
"@exellix/ai-skills": "^6.14.0",
|
|
87
|
+
"@exellix/ai-tasks": "^10.4.1",
|
|
88
88
|
"@types/node": "^26.0.1",
|
|
89
89
|
"@x12i/rendrix": "^4.3.0",
|
|
90
90
|
"tsx": "^4.22.4",
|