@exellix/graph-composer 2.10.0 → 2.12.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 +29 -0
- package/README.md +2 -2
- package/dist/aiTaskProfile.d.ts +10 -8
- package/dist/aiTaskProfile.d.ts.map +1 -1
- package/dist/aiTaskProfile.js +27 -19
- package/dist/canonicalGraphDocument.d.ts.map +1 -1
- package/dist/canonicalGraphDocument.js +22 -60
- package/dist/canonicalGraphWarnings.d.ts.map +1 -1
- package/dist/canonicalGraphWarnings.js +2 -1
- package/dist/catalogMatchAssist.d.ts.map +1 -1
- package/dist/catalogMatchAssist.js +10 -2
- package/dist/cataloxCatalogBridge.js +1 -1
- package/dist/exampleGeneration.d.ts.map +1 -1
- package/dist/exampleGeneration.js +7 -17
- package/dist/graphComposerActions.d.ts.map +1 -1
- package/dist/graphComposerActions.js +1 -10
- package/dist/graphComposerOutputValidation.d.ts +1 -1
- package/dist/graphComposerOutputValidation.d.ts.map +1 -1
- package/dist/graphComposerOutputValidation.js +8 -5
- package/dist/graphEntryContract.d.ts +0 -23
- package/dist/graphEntryContract.d.ts.map +1 -1
- package/dist/graphEntryContract.js +1 -125
- package/dist/graphEntryOutputValidation.d.ts +0 -1
- package/dist/graphEntryOutputValidation.d.ts.map +1 -1
- package/dist/graphEntryOutputValidation.js +3 -48
- package/dist/graphEntryPostProcess.d.ts.map +1 -1
- package/dist/graphEntryPostProcess.js +3 -7
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/types.d.ts +4 -2
- package/dist/types.d.ts.map +1 -1
- package/examples/network-vuln-subnet-triage.v2.json +0 -3
- package/functions/graph-composer/meta.json +1 -1
- package/functions/graph-composer/prompts/action-create.md +9 -7
- package/functions/graph-composer/prompts/action-review-concept.md +3 -3
- package/functions/graph-composer/prompts/judge-rules.md +2 -2
- package/functions/graph-composer/prompts/shared/graph-format.md +2 -2
- package/functions/graph-composer/prompts/shared/structural-validation.md +2 -2
- package/package.json +18 -17
|
@@ -6,7 +6,6 @@ export const GRAPH_ENTRY_FINDING_CATEGORIES = new Set([
|
|
|
6
6
|
"graph_execution",
|
|
7
7
|
"graph_conditions",
|
|
8
8
|
]);
|
|
9
|
-
export const GRAPH_ENTRY_PATH_PREFIX = "execution.input.";
|
|
10
9
|
export const GRAPH_EXECUTION_PATCH_ALLOWLIST = new Set([
|
|
11
10
|
"failFast",
|
|
12
11
|
"nodeTimeoutMs",
|
|
@@ -28,9 +27,7 @@ function asObject(v) {
|
|
|
28
27
|
export function resolveEffectiveGraphEntry(graphOrEntry) {
|
|
29
28
|
const root = asObject(graphOrEntry);
|
|
30
29
|
const fromMeta = asObject(root?.metadata)?.graphEntry;
|
|
31
|
-
const entry = asObject(fromMeta) ??
|
|
32
|
-
(root && "inputs" in root ? root : undefined) ??
|
|
33
|
-
{};
|
|
30
|
+
const entry = asObject(fromMeta) ?? {};
|
|
34
31
|
const out = { ...entry };
|
|
35
32
|
if (!Array.isArray(out.exampleInputs)) {
|
|
36
33
|
const legacy = out.exampleInput;
|
|
@@ -45,127 +42,6 @@ export function resolveEffectiveGraphEntry(graphOrEntry) {
|
|
|
45
42
|
}
|
|
46
43
|
return out;
|
|
47
44
|
}
|
|
48
|
-
export function isValidGraphEntryPath(path) {
|
|
49
|
-
const p = path.trim();
|
|
50
|
-
return p.startsWith(GRAPH_ENTRY_PATH_PREFIX) && p.length > GRAPH_ENTRY_PATH_PREFIX.length;
|
|
51
|
-
}
|
|
52
|
-
export function validateGraphEntryPaths(paths) {
|
|
53
|
-
const invalid = [];
|
|
54
|
-
for (const path of paths) {
|
|
55
|
-
if (!isValidGraphEntryPath(path))
|
|
56
|
-
invalid.push(path);
|
|
57
|
-
}
|
|
58
|
-
return invalid;
|
|
59
|
-
}
|
|
60
|
-
function pathTail(path) {
|
|
61
|
-
return path.startsWith(GRAPH_ENTRY_PATH_PREFIX)
|
|
62
|
-
? path.slice(GRAPH_ENTRY_PATH_PREFIX.length)
|
|
63
|
-
: path;
|
|
64
|
-
}
|
|
65
|
-
function schemaPropertyForTail(tail, kind) {
|
|
66
|
-
const segments = tail.split(".").filter(Boolean);
|
|
67
|
-
if (segments.length === 0) {
|
|
68
|
-
return { type: "object", additionalProperties: true };
|
|
69
|
-
}
|
|
70
|
-
if (kind === "record" && segments.length === 1) {
|
|
71
|
-
return {
|
|
72
|
-
type: "object",
|
|
73
|
-
additionalProperties: true,
|
|
74
|
-
description: `Record at execution.input.${segments[0]}`,
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
const last = segments[segments.length - 1];
|
|
78
|
-
if (last === "raw" || tail.endsWith(".raw")) {
|
|
79
|
-
return { type: "string", description: "Raw caller payload" };
|
|
80
|
-
}
|
|
81
|
-
return { type: ["string", "number", "boolean", "object", "array", "null"] };
|
|
82
|
-
}
|
|
83
|
-
/** Infer JSON Schema for example generation from declared graph-entry inputs (FR-G4). */
|
|
84
|
-
export function buildGraphEntryExampleJsonSchema(inputs, _entityBindings) {
|
|
85
|
-
const rows = Array.isArray(inputs) ? inputs : [];
|
|
86
|
-
const properties = {};
|
|
87
|
-
const required = [];
|
|
88
|
-
for (const row of rows) {
|
|
89
|
-
const r = asObject(row);
|
|
90
|
-
if (!r || typeof r.path !== "string")
|
|
91
|
-
continue;
|
|
92
|
-
const tail = pathTail(r.path);
|
|
93
|
-
if (!tail)
|
|
94
|
-
continue;
|
|
95
|
-
const kind = typeof r.kind === "string" ? r.kind : "scalar";
|
|
96
|
-
const topKey = tail.split(".")[0];
|
|
97
|
-
if (!(topKey in properties)) {
|
|
98
|
-
if (tail.includes(".") || kind === "scalar") {
|
|
99
|
-
const nestedTail = tail;
|
|
100
|
-
if (nestedTail === topKey) {
|
|
101
|
-
properties[topKey] = schemaPropertyForTail(tail, kind);
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
properties[topKey] = {
|
|
105
|
-
type: "object",
|
|
106
|
-
properties: {
|
|
107
|
-
[nestedTail.slice(topKey.length + 1)]: schemaPropertyForTail(nestedTail, kind),
|
|
108
|
-
},
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
properties[topKey] = schemaPropertyForTail(tail, kind);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
if (r.required === true && !required.includes(topKey)) {
|
|
117
|
-
required.push(topKey);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
if (Object.keys(properties).length === 0) {
|
|
121
|
-
return {
|
|
122
|
-
type: "object",
|
|
123
|
-
properties: {
|
|
124
|
-
raw: { type: "string", description: "Default execution.input.raw" },
|
|
125
|
-
},
|
|
126
|
-
additionalProperties: true,
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
return {
|
|
130
|
-
type: "object",
|
|
131
|
-
properties,
|
|
132
|
-
...(required.length > 0 ? { required } : {}),
|
|
133
|
-
additionalProperties: true,
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
/** FR-G3: flag when graphEntry.inputs[].entityIds disagree with graphConcept.entityBindings. */
|
|
137
|
-
export function findGraphEntryEntityBindingMismatches(inputs, graphConcept) {
|
|
138
|
-
const concept = asObject(graphConcept);
|
|
139
|
-
const eb = asObject(concept?.entityBindings);
|
|
140
|
-
const allowed = new Set();
|
|
141
|
-
if (eb?.coreEntityCollectionId)
|
|
142
|
-
allowed.add(eb.coreEntityCollectionId);
|
|
143
|
-
for (const id of eb?.supportingEntityCollectionIds ?? []) {
|
|
144
|
-
if (typeof id === "string")
|
|
145
|
-
allowed.add(id);
|
|
146
|
-
}
|
|
147
|
-
if (eb?.targetEntityCollectionId)
|
|
148
|
-
allowed.add(eb.targetEntityCollectionId);
|
|
149
|
-
if (allowed.size === 0)
|
|
150
|
-
return [];
|
|
151
|
-
const mismatches = [];
|
|
152
|
-
const rows = Array.isArray(inputs) ? inputs : [];
|
|
153
|
-
for (const row of rows) {
|
|
154
|
-
const r = asObject(row);
|
|
155
|
-
if (!r?.entityIds || !Array.isArray(r.entityIds) || r.entityIds.length === 0) {
|
|
156
|
-
continue;
|
|
157
|
-
}
|
|
158
|
-
const bad = r.entityIds.filter((id) => typeof id === "string" && !allowed.has(id));
|
|
159
|
-
if (bad.length > 0) {
|
|
160
|
-
mismatches.push({
|
|
161
|
-
inputPath: r.path,
|
|
162
|
-
entityIds: bad,
|
|
163
|
-
message: `entityIds [${bad.join(", ")}] not in graphConcept.entityBindings`,
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
return mismatches;
|
|
168
|
-
}
|
|
169
45
|
export function parseJsonExampleValue(value) {
|
|
170
46
|
const trimmed = value.trim();
|
|
171
47
|
if (trimmed === "")
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { OutputValidationContext } from "./graphComposerOutputValidation.js";
|
|
2
|
-
export declare function validateSuggestGraphEntryInputsOutput(out: Record<string, unknown>, ctx?: OutputValidationContext): void;
|
|
3
2
|
export declare function validateSuggestGraphEntryExamplesOutput(out: Record<string, unknown>, ctx?: OutputValidationContext): void;
|
|
4
3
|
export declare function validateSuggestGraphEntryConditionsOutput(out: Record<string, unknown>, ctx?: OutputValidationContext): void;
|
|
5
4
|
export declare function validateSuggestJobModelDefaultsOutput(out: Record<string, unknown>, ctx?: OutputValidationContext): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphEntryOutputValidation.d.ts","sourceRoot":"","sources":["../src/graphEntryOutputValidation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graphEntryOutputValidation.d.ts","sourceRoot":"","sources":["../src/graphEntryOutputValidation.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAqIlF,wBAAgB,uCAAuC,CACrD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,GAAG,CAAC,EAAE,uBAAuB,GAC5B,IAAI,CASN;AAED,wBAAgB,yCAAyC,CACvD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,GAAG,CAAC,EAAE,uBAAuB,GAC5B,IAAI,CAWN;AAED,wBAAgB,qCAAqC,CACnD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,GAAG,CAAC,EAAE,uBAAuB,GAC5B,IAAI,CAWN;AAED,wBAAgB,qCAAqC,CACnD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,GAAG,CAAC,EAAE,uBAAuB,GAC5B,IAAI,CAaN;AAED,wBAAgB,2CAA2C,CACzD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,GAAG,CAAC,EAAE,uBAAuB,GAC5B,IAAI,CAeN;AAED,wBAAgB,sCAAsC,CACpD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,GAAG,CAAC,EAAE,uBAAuB,GAC5B,IAAI,CAyEN"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { assertGraphEntryAgentSurface, GRAPH_ENTRY_FINDING_CATEGORIES,
|
|
1
|
+
import { assertGraphEntryAgentSurface, GRAPH_ENTRY_FINDING_CATEGORIES, GRAPH_EXECUTION_PATCH_ALLOWLIST, parseJsonExampleValue, } from "./graphEntryContract.js";
|
|
2
2
|
function assertNoGraph(out, action) {
|
|
3
3
|
if ("graph" in out && out.graph !== undefined) {
|
|
4
4
|
throw new Error(`${action} action must not return a graph object`);
|
|
@@ -10,37 +10,6 @@ function assertStringField(o, key, ctx) {
|
|
|
10
10
|
throw new Error(`${ctx}.${key} must be a non-empty string`);
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
function validateGraphEntryInputRows(rows, ctx) {
|
|
14
|
-
for (let i = 0; i < rows.length; i++) {
|
|
15
|
-
const row = rows[i];
|
|
16
|
-
if (row === null || typeof row !== "object" || Array.isArray(row)) {
|
|
17
|
-
throw new Error(`${ctx}[${i}] must be an object`);
|
|
18
|
-
}
|
|
19
|
-
const r = row;
|
|
20
|
-
if (typeof r.path !== "string" || !isValidGraphEntryPath(r.path)) {
|
|
21
|
-
throw new Error(`${ctx}[${i}].path must be a non-empty string starting with ${GRAPH_ENTRY_PATH_PREFIX}`);
|
|
22
|
-
}
|
|
23
|
-
if (r.kind !== undefined) {
|
|
24
|
-
const k = r.kind;
|
|
25
|
-
if (k !== "scalar" && k !== "record" && typeof k !== "string") {
|
|
26
|
-
throw new Error(`${ctx}[${i}].kind must be scalar, record, or string`);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
if (r.required !== undefined && typeof r.required !== "boolean") {
|
|
30
|
-
throw new Error(`${ctx}[${i}].required must be a boolean when present`);
|
|
31
|
-
}
|
|
32
|
-
if (r.entityIds !== undefined) {
|
|
33
|
-
if (!Array.isArray(r.entityIds)) {
|
|
34
|
-
throw new Error(`${ctx}[${i}].entityIds must be an array when present`);
|
|
35
|
-
}
|
|
36
|
-
for (let j = 0; j < r.entityIds.length; j++) {
|
|
37
|
-
if (typeof r.entityIds[j] !== "string") {
|
|
38
|
-
throw new Error(`${ctx}[${i}].entityIds[${j}] must be a string`);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
13
|
function validateGraphEntryExampleRows(rows, ctx) {
|
|
45
14
|
for (let i = 0; i < rows.length; i++) {
|
|
46
15
|
const row = rows[i];
|
|
@@ -62,22 +31,13 @@ function validateGraphEntryExampleRows(rows, ctx) {
|
|
|
62
31
|
}
|
|
63
32
|
}
|
|
64
33
|
}
|
|
65
|
-
function validateOptionalGraphEntryPatch(patch, fieldName,
|
|
34
|
+
function validateOptionalGraphEntryPatch(patch, fieldName, requireExamples) {
|
|
66
35
|
if (patch === undefined)
|
|
67
36
|
return;
|
|
68
37
|
if (patch === null || typeof patch !== "object" || Array.isArray(patch)) {
|
|
69
38
|
throw new Error(`${fieldName} must be a plain object when present`);
|
|
70
39
|
}
|
|
71
40
|
const p = patch;
|
|
72
|
-
if (p.inputs !== undefined) {
|
|
73
|
-
if (!Array.isArray(p.inputs)) {
|
|
74
|
-
throw new Error(`${fieldName}.inputs must be an array when present`);
|
|
75
|
-
}
|
|
76
|
-
validateGraphEntryInputRows(p.inputs, `${fieldName}.inputs`);
|
|
77
|
-
}
|
|
78
|
-
else if (requireInputs) {
|
|
79
|
-
throw new Error(`${fieldName} must include inputs array`);
|
|
80
|
-
}
|
|
81
41
|
if (p.exampleInputs !== undefined) {
|
|
82
42
|
if (!Array.isArray(p.exampleInputs)) {
|
|
83
43
|
throw new Error(`${fieldName}.exampleInputs must be an array when present`);
|
|
@@ -149,15 +109,10 @@ function graphEntrySurfaceCheck(ctx, action) {
|
|
|
149
109
|
return;
|
|
150
110
|
assertGraphEntryAgentSurface(ctx.input, action);
|
|
151
111
|
}
|
|
152
|
-
export function validateSuggestGraphEntryInputsOutput(out, ctx) {
|
|
153
|
-
graphEntrySurfaceCheck(ctx, "suggestGraphEntryInputs");
|
|
154
|
-
assertNoGraph(out, "suggestGraphEntryInputs");
|
|
155
|
-
validateOptionalGraphEntryPatch(out.graphEntryPatch, "graphEntryPatch", true);
|
|
156
|
-
}
|
|
157
112
|
export function validateSuggestGraphEntryExamplesOutput(out, ctx) {
|
|
158
113
|
graphEntrySurfaceCheck(ctx, "suggestGraphEntryExamples");
|
|
159
114
|
assertNoGraph(out, "suggestGraphEntryExamples");
|
|
160
|
-
validateOptionalGraphEntryPatch(out.graphEntryPatch, "graphEntryPatch",
|
|
115
|
+
validateOptionalGraphEntryPatch(out.graphEntryPatch, "graphEntryPatch", true);
|
|
161
116
|
validateRequirementOptions(out.requirementOptions, "requirementOptions");
|
|
162
117
|
}
|
|
163
118
|
export function validateSuggestGraphEntryConditionsOutput(out, ctx) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphEntryPostProcess.d.ts","sourceRoot":"","sources":["../src/graphEntryPostProcess.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAQrD,eAAO,MAAM,2BAA2B,EAAE,SAAS,MAAM,EAAuB,CAAC;AAQjF,0EAA0E;AAC1E,wBAAgB,uCAAuC,CACrD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,IAAI,CAaN;AAED,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,aAAa,EAAE,MAAM,GACpB,IAAI,CAQN;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,aAAa,EAAE,MAAM,GACpB,IAAI,
|
|
1
|
+
{"version":3,"file":"graphEntryPostProcess.d.ts","sourceRoot":"","sources":["../src/graphEntryPostProcess.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAQrD,eAAO,MAAM,2BAA2B,EAAE,SAAS,MAAM,EAAuB,CAAC;AAQjF,0EAA0E;AAC1E,wBAAgB,uCAAuC,CACrD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,IAAI,CAaN;AAED,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,aAAa,EAAE,MAAM,GACpB,IAAI,CAQN;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,aAAa,EAAE,MAAM,GACpB,IAAI,CAyBN;AAED,wBAAsB,sCAAsC,CAC1D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,aAAa,EAAE,MAAM,CAAA;CAAE,GAC1E,OAAO,CAAC,IAAI,CAAC,CAqDf"}
|
|
@@ -53,13 +53,9 @@ export function repairGraphEntryExampleRows(shaped, existingGraph) {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
const entry = resolveEffectiveGraphEntry(existingGraph);
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
const o = asObject(r);
|
|
60
|
-
return o?.required === true && typeof o.path === "string";
|
|
61
|
-
})
|
|
62
|
-
.map((r) => asObject(r).path);
|
|
56
|
+
const requiredPaths = Array.isArray(entry.requiredExecutionPaths)
|
|
57
|
+
? entry.requiredExecutionPaths.filter(Boolean)
|
|
58
|
+
: [];
|
|
63
59
|
if (requiredPaths.length > 0 && rows.length === 0) {
|
|
64
60
|
shaped._graphEntryExamplesIncomplete = true;
|
|
65
61
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,18 +8,18 @@ export { applyPackageLogLevelsFromEnv, configurePackageLogLevels, } from "@x12i/
|
|
|
8
8
|
export { GRAPH_COMPOSER_LOG_ENV_PREFIX, configureGraphComposerLogging, createGraphComposerLogger, getGraphComposerLogger, getGraphComposerLoggingConfig, parseGraphComposerLogsLevel, withGraphComposerLogsLevel, type ConfigureGraphComposerLoggingOptions, type GraphComposerLoggingConfig, type GraphComposerLogsLevelInput, } from "./graphComposerLogging.js";
|
|
9
9
|
export { applyGraphConceptPatchOnlyIfEmpty } from "./graphConceptPatchMerge.js";
|
|
10
10
|
export { applyModelConfigPatchGuard } from "./modelConfigPatchMerge.js";
|
|
11
|
-
export { resolveEffectiveGraphEntry,
|
|
11
|
+
export { resolveEffectiveGraphEntry, parseJsonExampleValue, resolveGraphEntryContextFromInput, assertGraphEntryAgentSurface, GRAPH_ENTRY_FINDING_CATEGORIES, GRAPH_EXECUTION_PATCH_ALLOWLIST, type GraphEntryPatch, type GraphEntryExampleRow, type GraphEntryFinding, type ModelConfigPatch, type JobPagentiKnowledgePatch, type GraphExecutionPatch, type GraphResponsePatch, type GraphEntryAgentContext, type TaskNodeAgentContext, type ComposerAgentSurface, } from "./graphEntryContract.js";
|
|
12
12
|
export { runGraphComposerAgent, type GraphComposerAgentResult, type GraphComposerAgentOrchestrationStep, type RunGraphComposerAgentOptions, } from "./graphComposerAgent.js";
|
|
13
13
|
export type { GraphComposerInput, GraphComposerAgentInput, GraphComposerIntent, GraphComposerConstraints, SkillDescriptor, PrimaryIntentType, GraphConceptStatus, GraphConceptEntityBindings, GraphConceptPatch, GraphConceptPatchKey, GraphConceptRequirementsPatch, GraphConceptCoreTaskPatchItem, RequirementOptionCandidate, RequirementOptionEntry, CatalogCandidates, ScopingMapCandidate, NarrixTemplateCandidate, } from "./types.js";
|
|
14
14
|
export { buildCatalogMatchHints, type CatalogMatchAssistOptions, } from "./catalogMatchAssist.js";
|
|
15
15
|
export { buildScopingNeedMatchHints, type ScopingNeedMatchAssistOptions, } from "./scopingNeedMatchAssist.js";
|
|
16
|
-
export { validateCreateModifyOutput, validateSuggestCatalogResolutionOutput, validateSuggestCatalogCreationsOutput, validateSuggestScopingNeedMatchOutput, validateSuggestScopingMapCreationOutput, validateReviewConceptOutput, validateReviewConceptOutputAgainstInput, validateReviewGraphEntryContractOutput,
|
|
16
|
+
export { validateCreateModifyOutput, validateSuggestCatalogResolutionOutput, validateSuggestCatalogCreationsOutput, validateSuggestScopingNeedMatchOutput, validateSuggestScopingMapCreationOutput, validateReviewConceptOutput, validateReviewConceptOutputAgainstInput, validateReviewGraphEntryContractOutput, validateSuggestGraphEntryExamplesOutput, validateSuggestGraphEntryConditionsOutput, validateSuggestJobModelDefaultsOutput, validateSuggestJobKnowledgeRefsOutput, validateSuggestGraphExecutionDefaultsOutput, type OutputValidationContext, } from "./graphComposerOutputValidation.js";
|
|
17
17
|
export type { WoroxScopingMapCatalogCreatePayload, WoroxScopedDataDocumentShape, } from "./scopingCatalogHostTypes.js";
|
|
18
18
|
export { loadExampleGraph, inputExplainNetworkVulnSubnet, inputSuggestConceptObjectiveNetworkVulnSubnet, inputReviewConceptIoSmoke, } from "./exampleInputs.js";
|
|
19
19
|
export { buildGraphInputExampleGuidance, buildGraphEntryExampleGuidance, generateGraphJsonInputExample, generateGraphEntryInputExample, generateJsonExample, generateMdExample, generateContentExample, type GenerateGraphJsonInputExampleParams, type GenerateGraphEntryInputExampleParams, type GenerateJsonExampleResult, type GenerateMdExampleParams, type GenerateMdExampleResult, type GenerateContentExampleParams, type GenerateContentExampleResult, } from "./exampleGeneration.js";
|
|
20
20
|
export { parseGraphConceptStory, parseGraphConceptStoryBody, isGraphConceptStoryDescription, GRAPH_CONCEPT_STORY_MARKER, } from "./parseGraphConceptStory.js";
|
|
21
21
|
export type { ParsedGraphConcept } from "./parseGraphConceptStory.js";
|
|
22
|
-
export { reportTaskNodeProtocolGaps, DEFAULT_LOCAL_SKILL_KEYS, type AiTaskProfileMetadata, type TaskNodeProtocolGap, type TaskNodeProtocolIssueCode, type
|
|
22
|
+
export { reportTaskNodeProtocolGaps, DEFAULT_LOCAL_SKILL_KEYS, type AiTaskProfileMetadata, type TaskNodeProtocolGap, type TaskNodeProtocolIssueCode, type WebQueryTemplateConfig, type InputSynthesisNodeConfig, type InputSynthesisDestination, } from "./aiTaskProfile.js";
|
|
23
23
|
export { assertCanonicalGraphDocument, getCanonicalGraphDocumentViolations, CANONICAL_GRAPH_TOP_LEVEL_KEYS, GRAPH_ENGINE_MEMORY_PATH_ROOTS, isAllowedGraphEngineMemoryPath, collectAiTasksNodeExtensionIssues, assertAiTasksNodeExtensionsValid, resolveGraphEngineMemoryPathValue, buildGraphEngineMemoryResolutionRootFromWorkingMemory, DEFAULT_GRAPH_AI_MODEL_PROFILE_CONFIG, looksLikeConcreteModelId, isGraphAiProfileName, compileExellixExecutablePlan, type GraphEngineMemoryResolutionRoot, type AuthoringGraphDocument, type ExecutableGraphPlanV2, type NodeExecutionPlan, type CompileExellixExecutablePlanOptions, } from "./graphEngineBridge.js";
|
|
24
24
|
export { collectAuthoringGraphValidationIssues, collectAuthoringGraphValidationWarnings, type AuthoringGraphValidationIssue, } from "./authoringGraphValidation.js";
|
|
25
25
|
export { collectCanonicalGraphWarnings } from "./canonicalGraphWarnings.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,8BAA8B,EAC9B,mBAAmB,EACnB,6BAA6B,EAC7B,+BAA+B,EAC/B,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,KAAK,6BAA6B,GACnC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,0BAA0B,EAC1B,yBAAyB,EACzB,UAAU,EACV,mCAAmC,EACnC,oCAAoC,EACpC,uCAAuC,EACvC,mBAAmB,EACnB,KAAK,uBAAuB,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,iBAAiB,EACjB,QAAQ,EACR,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,yBAAyB,EACzB,sBAAsB,EACtB,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,KAAK,oCAAoC,EACzC,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,GACjC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EACL,0BAA0B,EAC1B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,11 +7,11 @@ export { applyPackageLogLevelsFromEnv, configurePackageLogLevels, } from "@x12i/
|
|
|
7
7
|
export { GRAPH_COMPOSER_LOG_ENV_PREFIX, configureGraphComposerLogging, createGraphComposerLogger, getGraphComposerLogger, getGraphComposerLoggingConfig, parseGraphComposerLogsLevel, withGraphComposerLogsLevel, } from "./graphComposerLogging.js";
|
|
8
8
|
export { applyGraphConceptPatchOnlyIfEmpty } from "./graphConceptPatchMerge.js";
|
|
9
9
|
export { applyModelConfigPatchGuard } from "./modelConfigPatchMerge.js";
|
|
10
|
-
export { resolveEffectiveGraphEntry,
|
|
10
|
+
export { resolveEffectiveGraphEntry, parseJsonExampleValue, resolveGraphEntryContextFromInput, assertGraphEntryAgentSurface, GRAPH_ENTRY_FINDING_CATEGORIES, GRAPH_EXECUTION_PATCH_ALLOWLIST, } from "./graphEntryContract.js";
|
|
11
11
|
export { runGraphComposerAgent, } from "./graphComposerAgent.js";
|
|
12
12
|
export { buildCatalogMatchHints, } from "./catalogMatchAssist.js";
|
|
13
13
|
export { buildScopingNeedMatchHints, } from "./scopingNeedMatchAssist.js";
|
|
14
|
-
export { validateCreateModifyOutput, validateSuggestCatalogResolutionOutput, validateSuggestCatalogCreationsOutput, validateSuggestScopingNeedMatchOutput, validateSuggestScopingMapCreationOutput, validateReviewConceptOutput, validateReviewConceptOutputAgainstInput, validateReviewGraphEntryContractOutput,
|
|
14
|
+
export { validateCreateModifyOutput, validateSuggestCatalogResolutionOutput, validateSuggestCatalogCreationsOutput, validateSuggestScopingNeedMatchOutput, validateSuggestScopingMapCreationOutput, validateReviewConceptOutput, validateReviewConceptOutputAgainstInput, validateReviewGraphEntryContractOutput, validateSuggestGraphEntryExamplesOutput, validateSuggestGraphEntryConditionsOutput, validateSuggestJobModelDefaultsOutput, validateSuggestJobKnowledgeRefsOutput, validateSuggestGraphExecutionDefaultsOutput, } from "./graphComposerOutputValidation.js";
|
|
15
15
|
export { loadExampleGraph, inputExplainNetworkVulnSubnet, inputSuggestConceptObjectiveNetworkVulnSubnet, inputReviewConceptIoSmoke, } from "./exampleInputs.js";
|
|
16
16
|
export { buildGraphInputExampleGuidance, buildGraphEntryExampleGuidance, generateGraphJsonInputExample, generateGraphEntryInputExample, generateJsonExample, generateMdExample, generateContentExample, } from "./exampleGeneration.js";
|
|
17
17
|
export { parseGraphConceptStory, parseGraphConceptStoryBody, isGraphConceptStoryDescription, GRAPH_CONCEPT_STORY_MARKER, } from "./parseGraphConceptStory.js";
|
package/dist/types.d.ts
CHANGED
|
@@ -24,7 +24,8 @@ export type NarrixTemplateCandidate = {
|
|
|
24
24
|
datasetId?: string;
|
|
25
25
|
layer?: string;
|
|
26
26
|
narrativeTypeIds?: string[];
|
|
27
|
-
|
|
27
|
+
/** Example Rendrix web query template for catalog hints (not graph narrix). */
|
|
28
|
+
webQueryTemplate?: string;
|
|
28
29
|
tags?: string[];
|
|
29
30
|
};
|
|
30
31
|
/**
|
|
@@ -83,7 +84,8 @@ export type GraphConceptCoreTaskPatchItem = {
|
|
|
83
84
|
stepInputs?: string | Record<string, unknown>;
|
|
84
85
|
subTasks?: Record<string, unknown>[];
|
|
85
86
|
requirements?: GraphConceptRequirementsPatch;
|
|
86
|
-
|
|
87
|
+
/** Rendrix web query template for PRE webScope (Graphenix 2.7.3+). */
|
|
88
|
+
webQueryTemplate?: string;
|
|
87
89
|
synthesis?: Record<string, unknown>;
|
|
88
90
|
};
|
|
89
91
|
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":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,YAAY,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjG,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF,qGAAqG;AACrG,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF,6EAA6E;AAC7E,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,18 +9,20 @@ You are a graph architect for the **worox-graph** flat authoring format (`@exell
|
|
|
9
9
|
4. Add edges to express dependencies. Use conditional edges only when a prior step's output determines which path to take and `allowConditionalEdges` is not forbidding it.
|
|
10
10
|
5. Add a finalizer that assembles the canonical output from upstream nodes when `requireFinalizer` is true.
|
|
11
11
|
6. Validate: no orphan nodes, no dangling memory paths, no cycles.
|
|
12
|
-
7. **Task node config:** For every **non-local** AI task node, set **`taskConfiguration.aiTaskProfile`** with non-empty **`preStrategyKey`** and **`postStrategyKey`**. Add **`taskConfiguration.narrix`** when discovery applies (discovery only
|
|
12
|
+
7. **Task node config:** For every **non-local** AI task node, set **`taskConfiguration.aiTaskProfile`** with non-empty **`preStrategyKey`** and **`postStrategyKey`**. Add **`taskConfiguration.narrix`** when discovery applies (discovery only). Add **`webQueryTemplate`** / **`inputSynthesis`** under **`aiTaskProfile`** when needed. Use **`inputsConfig`** + **`taskVariable`** + **`executionMapping`** (not deprecated `inputs` / `outputMapping`). Add **`metadata.graphReadability`** / **`catalogBinding`** for planning only.
|
|
13
13
|
|
|
14
|
-
**Web
|
|
14
|
+
**Web scope (Graphenix 2.7.2+ — Rendrix template on `aiTaskProfile`, not `narrix`):**
|
|
15
15
|
```json
|
|
16
|
-
// Legacy (do not emit)
|
|
17
|
-
"taskConfiguration": { "narrix": { "webScopeQuestions": ["Is this asset reachable?"] } }
|
|
18
|
-
// Canonical
|
|
19
16
|
"taskConfiguration": {
|
|
20
|
-
"narrix": { "
|
|
21
|
-
"aiTaskProfile": {
|
|
17
|
+
"narrix": { "datasetId": "network.assets", "layer": "asset" },
|
|
18
|
+
"aiTaskProfile": {
|
|
19
|
+
"preStrategyKey": "pre-v1",
|
|
20
|
+
"postStrategyKey": "post-v1",
|
|
21
|
+
"webQueryTemplate": "Is {{input.assetId}} reachable from the internet?"
|
|
22
|
+
}
|
|
22
23
|
}
|
|
23
24
|
```
|
|
25
|
+
Do **not** emit `webScoping`, `narrix.enableWebScope`, or `narrix.webScopeQuestions`.
|
|
24
26
|
|
|
25
27
|
**Task I/O example:**
|
|
26
28
|
```json
|
|
@@ -8,7 +8,7 @@ You are a **senior graph architect** reviewing **worox-graph** DAGs at the **con
|
|
|
8
8
|
3. **`graphConceptFromStory.parsed`**: When present (server-injected alongside a concept story), use it as **structured** expected intent (`coreTasks`, `expectedInput`, `outputDescription`, `persistenceNotes`, etc.) and compare to what the graph actually implements.
|
|
9
9
|
4. **`analysisContext`**: When provided, use it for execution order, IO summaries, and known issues—**if** consistent with `existingGraph`.
|
|
10
10
|
5. **Skill catalogs** in the request (`aiSkills`, `utilitySkills`, and **`catalogCandidates`** when present): Judge whether `skillKey` choices fit each step (AI vs local, appropriateness). Infer **catalog / scoping / Narrix** hints from nodes and these lists.
|
|
11
|
-
6. **Offline protocol parity:** When helpful, cross-check **non-local** AI nodes against the same rules as **`reportTaskNodeProtocolGaps`** (missing **`aiTaskProfile`**, bad **`
|
|
11
|
+
6. **Offline protocol parity:** When helpful, cross-check **non-local** AI nodes against the same rules as **`reportTaskNodeProtocolGaps`** (missing **`aiTaskProfile`**, **`legacy_web_scoping`**, bad **`webQueryTemplate`**, bad **`inputSynthesis`**) and mention the issue codes in **`suggestedChange`** so hosts can grep CI.
|
|
12
12
|
|
|
13
13
|
### Intent Map v3 — orthogonal lanes (do not conflate)
|
|
14
14
|
|
|
@@ -18,7 +18,7 @@ Product **`metadata.graphConcept`** separates three concerns. Your patch must re
|
|
|
18
18
|
|------|-----------------|--------|
|
|
19
19
|
| **Graph subject (xmemory entity scope)** | **Top-level** **`entityBindings`** (`coreEntityCollectionId`, optional `supportingEntityCollectionIds`, `targetEntityCollectionId`) | Which **entity collections** the graph is *about* (Catalox **`xmemory.entityCollections`**). When the host loads that catalog via the Catalox bridge, rows are often merged into **`catalogCandidates.scopingMaps`** — use them to infer **`entityBindings`**, not execution paths. |
|
|
20
20
|
| **Per-step execution handoff** | **`coreTasks[i].requirements.memoryIO`** | Reads / writes / **`jobContextMappings`** for **execution memory** between steps. |
|
|
21
|
-
| **Discovery / web / narrative** | **`coreTasks[i].requirements.narrix`**, **`coreTasks[i].
|
|
21
|
+
| **Discovery / web / narrative** | **`coreTasks[i].requirements.narrix`**, **`coreTasks[i].webQueryTemplate`**, editor **`synthesis`** | Discovery + Rendrix web query template. **Never** use these alone to stand in for missing **`entityBindings`** when the graph is clearly about a typed entity collection. |
|
|
22
22
|
|
|
23
23
|
Also populate **`requirements.strategies`** with **`pre`** / **`post`** string arrays (strategy catalog ids) when **`taskConfiguration.aiTaskProfile.preStrategyKey`** / **`postStrategyKey`** on nodes map to an intent step. Use **`conceptStatus`** on the patch (`not-started`, `generated-draft`, `user-refined`, `complete`) when your review implies a lifecycle transition. Prefer **`stepInputs`** as a **single execution-memory path hint string** (v3); a plain object is still accepted for legacy merges. **Do not** put legacy graphConcept keys in patches (`primaryOutputs`, `downstreamEffects`, `primaryQuestionOrDecision`, `subquestions` — consumers migrate those on read).
|
|
24
24
|
|
|
@@ -29,7 +29,7 @@ Cover what matters for the graph at hand; skip axes that clearly do not apply. *
|
|
|
29
29
|
- **Narrix discovery**: For **`professional-answer`** (or other LLM) nodes that imply discovery, check **`taskConfiguration.narrix`** (`datasetId`, `layer`, `narrativeTypeIds`) for coherence with **`inputsConfig`** / **`taskVariable`** and **`catalogCandidates.narrixTemplates`** when present.
|
|
30
30
|
- **Catalog planning vs runtime**: When **`metadata.catalogBinding`** / **`metadata.catalogRequests`** (graph) exist, note mismatches vs actual **`taskConfiguration.narrix`** / **`taskConfiguration.scopingMapId`** on nodes, or vs gaps declared in **`catalogRequests`**.
|
|
31
31
|
- **Graph I/O contracts**: When **`metadata.graphEntry`** or **`metadata.graphResponse`** exist, comment on whether **`inputs`**, **`taskVariable`**, execution paths, and finalizer outputs align with declared **`requiredExecutionPaths`** / **`notableExecutionPaths`** / schemas (authoring-level review).
|
|
32
|
-
- **Web scoping + input synthesis (node-level)**: Under **`taskConfiguration.aiTaskProfile`**,
|
|
32
|
+
- **Web scoping + input synthesis (node-level)**: Under **`taskConfiguration.aiTaskProfile`**, web scope requires non-empty **`webQueryTemplate`** (Rendrix string with `{{input.*}}` refs) — do **not** author **`webScoping`** or web keys on **`narrix`**. When **`inputSynthesis.enabled`** is true, require non-empty **`catalogId`**, **`strategyKey`**, **`outputKey`**, **`sources`**, and **`destination`** (`job`, `task`, or `execution`).
|
|
33
33
|
- **Task decomposition**: One clear responsibility per node; avoid redundant or oversized steps.
|
|
34
34
|
- **Skill selection**: Right tool for deterministic vs inferential work; catalog alignment in locked mode.
|
|
35
35
|
- **Data flow**: Execution-memory paths and `jobContextMapping` / `inputs` trace from `input.*` or upstream writers; `taskVariable.question` and other task variables stay out of runtime payload bindings; `taskVariable` refs trace to top-level `variables`; no obvious dangling reads.
|
|
@@ -18,8 +18,8 @@ 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
|
|
22
|
-
{ "rule": "For create/modify: returned graph must pass offline task-node protocol (pre/post,
|
|
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 },
|
|
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 },
|
|
25
25
|
{ "rule": "taskVariable.question for AI skills must be specific and self-contained; question, literals, and variable refs belong in taskVariable not inputsConfig", "weight": 2 },
|
|
@@ -43,7 +43,7 @@ A graph is a single JSON object. Top-level fields (canonical root keys only):
|
|
|
43
43
|
"aiTaskProfile": {
|
|
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}}?",
|
|
47
47
|
"inputSynthesis": { "enabled": false }
|
|
48
48
|
},
|
|
49
49
|
"narrix": { "datasetId": "<optional>", "layer": "<optional>" },
|
|
@@ -68,7 +68,7 @@ A graph is a single JSON object. Top-level fields (canonical root keys only):
|
|
|
68
68
|
| Planning / UX | `metadata.*` | `graphReadability`, `catalogBinding`, `name`, `description` — **not** `aiTaskProfile` or `narrix`. |
|
|
69
69
|
| Result wiring | `executionMapping` | Writes into execution memory after the task succeeds. |
|
|
70
70
|
|
|
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 **`
|
|
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`** (and optional **`webScopeOptions`**) / **`inputSynthesis`** under **`aiTaskProfile`** when needed. 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
72
|
- **`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
73
|
- **`modelConfig`** cases hold **`@x12i/ai-profiles` profile names only** in three slots — never token caps or provider ids on graph JSON.
|
|
74
74
|
- `skillKey` must come from the provided skill catalog unless extensible mode is active.
|
|
@@ -10,10 +10,10 @@ 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 **`taskConfiguration.aiTaskProfile.
|
|
13
|
+
11. When web scope is needed, set non-empty **`taskConfiguration.aiTaskProfile.webQueryTemplate`** (Rendrix string with `{{input.*}}` refs). Optional **`webQueryTemplates[]`** for pack mode. Do **not** author **`webScoping`** or web keys on **`narrix`**.
|
|
14
14
|
12. When **`inputSynthesis.enabled`** is `true`, set non-empty **`inputSynthesis.catalogId`**, **`strategyKey`**, **`outputKey`**, **`sources`** (memory paths), and **`destination`** (`job`, `task`, or `execution`). 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
|
-
14. **Narrix** belongs under **`taskConfiguration.narrix`** (`datasetId`, `layer`, `narrativeTypeIds` when needed).
|
|
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.
|
|
18
18
|
16. Optional **`metadata.catalogBinding`** / **`metadata.catalogRequests`** per product catalog planning.
|
|
19
19
|
17. New graphs should include root **`response`** with `shape` selectors; legacy `metadata.graphResponse` is non-canonical.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@exellix/graph-composer",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.12.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -64,21 +64,22 @@
|
|
|
64
64
|
},
|
|
65
65
|
"homepage": "https://github.com/woroces/graph-composer#readme",
|
|
66
66
|
"overrides": {
|
|
67
|
-
"@x12i/graphenix-authoring-format": "^2.
|
|
68
|
-
"@x12i/graphenix-
|
|
69
|
-
"@x12i/graphenix-
|
|
70
|
-
"@x12i/graphenix-executable-
|
|
71
|
-
"@x12i/graphenix-
|
|
67
|
+
"@x12i/graphenix-authoring-format": "^2.7.3",
|
|
68
|
+
"@x12i/graphenix-case-format": "^2.7.3",
|
|
69
|
+
"@x12i/graphenix-core": "^2.7.3",
|
|
70
|
+
"@x12i/graphenix-executable-contracts": "^2.7.3",
|
|
71
|
+
"@x12i/graphenix-executable-format": "^2.7.3",
|
|
72
|
+
"@x12i/graphenix-execute-envelope": "^2.7.3",
|
|
72
73
|
"@x12i/graphenix-format": "^2.0.0",
|
|
73
|
-
"@x12i/graphenix-plan-compiler": "^2.
|
|
74
|
-
"@x12i/graphenix-plan-format": "^2.
|
|
75
|
-
"@x12i/graphenix-task-node-format": "^2.
|
|
76
|
-
"@x12i/graphenix-trace-format": "^2.
|
|
74
|
+
"@x12i/graphenix-plan-compiler": "^2.7.3",
|
|
75
|
+
"@x12i/graphenix-plan-format": "^2.7.3",
|
|
76
|
+
"@x12i/graphenix-task-node-format": "^2.7.3",
|
|
77
|
+
"@x12i/graphenix-trace-format": "^2.7.3"
|
|
77
78
|
},
|
|
78
79
|
"peerDependencies": {
|
|
79
|
-
"@exellix/ai-skills": "^6.12.
|
|
80
|
-
"@exellix/ai-tasks": "^10.0.
|
|
81
|
-
"@exellix/graph-engine": "^8.
|
|
80
|
+
"@exellix/ai-skills": "^6.12.5",
|
|
81
|
+
"@exellix/ai-tasks": "^10.0.13",
|
|
82
|
+
"@exellix/graph-engine": "^8.6.0"
|
|
82
83
|
},
|
|
83
84
|
"peerDependenciesMeta": {
|
|
84
85
|
"@exellix/graph-engine": {
|
|
@@ -92,15 +93,15 @@
|
|
|
92
93
|
}
|
|
93
94
|
},
|
|
94
95
|
"dependencies": {
|
|
95
|
-
"@x12i/catalox": "^5.9.
|
|
96
|
+
"@x12i/catalox": "^5.9.8",
|
|
96
97
|
"@x12i/env": "^4.0.1",
|
|
97
98
|
"@x12i/funcx": "^4.9.13",
|
|
98
99
|
"@x12i/logxer": "^4.6.0"
|
|
99
100
|
},
|
|
100
101
|
"devDependencies": {
|
|
101
|
-
"@exellix/ai-skills": "^6.12.
|
|
102
|
-
"@exellix/ai-tasks": "^10.0.
|
|
103
|
-
"@exellix/graph-engine": "^8.
|
|
102
|
+
"@exellix/ai-skills": "^6.12.5",
|
|
103
|
+
"@exellix/ai-tasks": "^10.0.13",
|
|
104
|
+
"@exellix/graph-engine": "^8.6.0",
|
|
104
105
|
"@types/node": "^22.10.2",
|
|
105
106
|
"@x12i/rendrix": "^4.3.0",
|
|
106
107
|
"nx-config2": "^3.6.5",
|