@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.
Files changed (40) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +2 -2
  3. package/dist/aiTaskProfile.d.ts +10 -8
  4. package/dist/aiTaskProfile.d.ts.map +1 -1
  5. package/dist/aiTaskProfile.js +27 -19
  6. package/dist/canonicalGraphDocument.d.ts.map +1 -1
  7. package/dist/canonicalGraphDocument.js +22 -60
  8. package/dist/canonicalGraphWarnings.d.ts.map +1 -1
  9. package/dist/canonicalGraphWarnings.js +2 -1
  10. package/dist/catalogMatchAssist.d.ts.map +1 -1
  11. package/dist/catalogMatchAssist.js +10 -2
  12. package/dist/cataloxCatalogBridge.js +1 -1
  13. package/dist/exampleGeneration.d.ts.map +1 -1
  14. package/dist/exampleGeneration.js +7 -17
  15. package/dist/graphComposerActions.d.ts.map +1 -1
  16. package/dist/graphComposerActions.js +1 -10
  17. package/dist/graphComposerOutputValidation.d.ts +1 -1
  18. package/dist/graphComposerOutputValidation.d.ts.map +1 -1
  19. package/dist/graphComposerOutputValidation.js +8 -5
  20. package/dist/graphEntryContract.d.ts +0 -23
  21. package/dist/graphEntryContract.d.ts.map +1 -1
  22. package/dist/graphEntryContract.js +1 -125
  23. package/dist/graphEntryOutputValidation.d.ts +0 -1
  24. package/dist/graphEntryOutputValidation.d.ts.map +1 -1
  25. package/dist/graphEntryOutputValidation.js +3 -48
  26. package/dist/graphEntryPostProcess.d.ts.map +1 -1
  27. package/dist/graphEntryPostProcess.js +3 -7
  28. package/dist/index.d.ts +3 -3
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +2 -2
  31. package/dist/types.d.ts +4 -2
  32. package/dist/types.d.ts.map +1 -1
  33. package/examples/network-vuln-subnet-triage.v2.json +0 -3
  34. package/functions/graph-composer/meta.json +1 -1
  35. package/functions/graph-composer/prompts/action-create.md +9 -7
  36. package/functions/graph-composer/prompts/action-review-concept.md +3 -3
  37. package/functions/graph-composer/prompts/judge-rules.md +2 -2
  38. package/functions/graph-composer/prompts/shared/graph-format.md +2 -2
  39. package/functions/graph-composer/prompts/shared/structural-validation.md +2 -2
  40. 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":"AAQA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAgLlF,wBAAgB,qCAAqC,CACnD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,GAAG,CAAC,EAAE,uBAAuB,GAC5B,IAAI,CAIN;AAED,wBAAgB,uCAAuC,CACrD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,GAAG,CAAC,EAAE,uBAAuB,GAC5B,IAAI,CAUN;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,CA0EN"}
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, GRAPH_ENTRY_PATH_PREFIX, GRAPH_EXECUTION_PATCH_ALLOWLIST, isValidGraphEntryPath, parseJsonExampleValue, } from "./graphEntryContract.js";
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, requireInputs, requireExamples) {
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", false, true);
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,CA6BN;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"}
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 inputs = Array.isArray(entry.inputs) ? entry.inputs : [];
57
- const requiredPaths = inputs
58
- .filter((r) => {
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, buildGraphEntryExampleJsonSchema, validateGraphEntryPaths, isValidGraphEntryPath, findGraphEntryEntityBindingMismatches, parseJsonExampleValue, resolveGraphEntryContextFromInput, assertGraphEntryAgentSurface, GRAPH_ENTRY_PATH_PREFIX, GRAPH_ENTRY_FINDING_CATEGORIES, GRAPH_EXECUTION_PATCH_ALLOWLIST, type GraphEntryPatch, type GraphEntryInputRow, type GraphEntryExampleRow, type GraphEntryFinding, type ModelConfigPatch, type JobPagentiKnowledgePatch, type GraphExecutionPatch, type GraphResponsePatch, type GraphEntryAgentContext, type TaskNodeAgentContext, type ComposerAgentSurface, } from "./graphEntryContract.js";
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, validateSuggestGraphEntryInputsOutput, validateSuggestGraphEntryExamplesOutput, validateSuggestGraphEntryConditionsOutput, validateSuggestJobModelDefaultsOutput, validateSuggestJobKnowledgeRefsOutput, validateSuggestGraphExecutionDefaultsOutput, type OutputValidationContext, } from "./graphComposerOutputValidation.js";
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 WebScopingNodeConfig, type InputSynthesisNodeConfig, type InputSynthesisDestination, } from "./aiTaskProfile.js";
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";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
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, buildGraphEntryExampleJsonSchema, validateGraphEntryPaths, isValidGraphEntryPath, findGraphEntryEntityBindingMismatches, parseJsonExampleValue, resolveGraphEntryContextFromInput, assertGraphEntryAgentSurface, GRAPH_ENTRY_PATH_PREFIX, GRAPH_ENTRY_FINDING_CATEGORIES, GRAPH_EXECUTION_PATCH_ALLOWLIST, } from "./graphEntryContract.js";
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, validateSuggestGraphEntryInputsOutput, validateSuggestGraphEntryExamplesOutput, validateSuggestGraphEntryConditionsOutput, validateSuggestJobModelDefaultsOutput, validateSuggestJobKnowledgeRefsOutput, validateSuggestGraphExecutionDefaultsOutput, } from "./graphComposerOutputValidation.js";
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
- enableWebScope?: boolean;
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
- webScoping?: Record<string, unknown>;
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 = {
@@ -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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"}
@@ -262,9 +262,6 @@
262
262
  "aiTaskProfile": {
263
263
  "preStrategyKey": "subnet-context-pre-v1",
264
264
  "postStrategyKey": "subnet-answer-post-v1",
265
- "webScoping": {
266
- "enabled": false
267
- },
268
265
  "inputSynthesis": {
269
266
  "enabled": false
270
267
  }
@@ -80,7 +80,7 @@
80
80
  "requirements": {
81
81
  "$ref": "#/$defs/GraphConceptRequirementsPatch"
82
82
  },
83
- "webScoping": { "type": "object" },
83
+ "webQueryTemplate": { "type": "string" },
84
84
  "synthesis": { "type": "object" }
85
85
  }
86
86
  },
@@ -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 — optional **`enableWebScope`** boolean). Add **`webScoping`** / **`inputSynthesis`** under **`aiTaskProfile`** when needed. Use **`inputsConfig`** + **`taskVariable`** + **`executionMapping`** (not deprecated `inputs` / `outputMapping`). Add **`metadata.graphReadability`** / **`catalogBinding`** for planning 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 scoping migration (author on `aiTaskProfile`, not `narrix`):**
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": { "enableWebScope": true },
21
- "aiTaskProfile": { "webScoping": { "enabled": true, "questions": ["Is this asset reachable?"] } }
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 **`webScoping`**, bad **`inputSynthesis`**) and mention the issue codes in **`suggestedChange`** so hosts can grep CI.
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].webScoping`**, editor **`synthesis`** | Discovery configuration. **Never** use these alone to stand in for missing **`entityBindings`** when the graph is clearly about a typed entity collection. |
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`**, when **`webScoping.enabled`** is true, require a non-empty **`webScoping.questions`** list (do not author web questions on **`taskConfiguration.narrix`**). When **`inputSynthesis.enabled`** is true, require non-empty **`catalogId`**, **`strategyKey`**, **`outputKey`**, **`sources`**, and **`destination`** (`job`, `task`, or `execution`). Flag **`catalog`** / **`core_task`** findings when **`questions`** exist but scoping is off, or synthesis is enabled without required fields.
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 taskConfiguration.aiTaskProfile.webScoping.enabled is true, webScoping.questions must be non-empty; 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, webScoping, inputSynthesis) on taskConfiguration.aiTaskProfile", "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 },
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
- "webScoping": { "enabled": false },
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 **`webScoping`** / **`inputSynthesis`** under **`aiTaskProfile`** when needed. Legacy **`metadata.aiTaskProfile`** is dual-read and canonicalized to **`taskConfiguration`** on output — do not author new graphs under `metadata`.
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.webScoping.enabled`** is `true`, include a non-empty **`webScoping.questions`** array. Do not set `questions` when `enabled` is `false`.
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). Author web questions only under **`taskConfiguration.aiTaskProfile.webScoping`**, not on `narrix`.
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.10.0",
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.5.0",
68
- "@x12i/graphenix-core": "^2.5.0",
69
- "@x12i/graphenix-executable-contracts": "^2.5.0",
70
- "@x12i/graphenix-executable-format": "^2.5.0",
71
- "@x12i/graphenix-execute-envelope": "^2.5.0",
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.5.0",
74
- "@x12i/graphenix-plan-format": "^2.5.0",
75
- "@x12i/graphenix-task-node-format": "^2.5.0",
76
- "@x12i/graphenix-trace-format": "^2.5.0"
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.0",
80
- "@exellix/ai-tasks": "^10.0.4",
81
- "@exellix/graph-engine": "^8.4.0"
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.7",
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.0",
102
- "@exellix/ai-tasks": "^10.0.4",
103
- "@exellix/graph-engine": "^8.4.0",
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",