@exellix/graph-composer 2.9.0 → 2.11.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 +20 -0
- package/dist/canonicalGraphDocument.d.ts.map +1 -1
- package/dist/canonicalGraphDocument.js +27 -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 +1 -1
- 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 +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/package.json +17 -16
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.11.0 — Graphenix 2.7.0 + CR-006 alignment
|
|
4
|
+
|
|
5
|
+
### Breaking
|
|
6
|
+
|
|
7
|
+
- **CR-006:** Removed `suggestGraphEntryInputs` action, `GraphEntryInputRow` / `inputs` patch types, `validateGraphEntryInputRows`, and entity-binding helpers tied to graph-entry inputs. Graphs must not declare `metadata.graphEntry.inputs`.
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- **Peer / dev dependencies:** `@exellix/graph-engine` ^8.5.0, `@exellix/ai-tasks` ^10.0.9, `@exellix/ai-skills` ^6.12.3.
|
|
12
|
+
- **npm overrides** — `@x12i/graphenix-*` **^2.7.0** (format ^2.0.0).
|
|
13
|
+
- **`buildGraphEntryExampleGuidance`** — uses `requiredExecutionPaths` only (no inputs-based schema).
|
|
14
|
+
|
|
15
|
+
## 2.10.0 — Graphenix 2.5.0 jobMemory.context alignment
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- **Peer / dev dependencies:** `@exellix/graph-engine` ^8.4.0.
|
|
20
|
+
- **npm overrides** — `@x12i/graphenix-*` **^2.5.0** (format ^2.0.0).
|
|
21
|
+
- **Canonical graph shell** — `jobMemory` is a allowed root key (declarative `context[]` defaults); strips runtime `rows` if authors embed them.
|
|
22
|
+
|
|
3
23
|
## 2.9.0 — Graphenix 2.4.0 PRE synthesis alignment
|
|
4
24
|
|
|
5
25
|
### Changed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonicalGraphDocument.d.ts","sourceRoot":"","sources":["../src/canonicalGraphDocument.ts"],"names":[],"mappings":"AAAA;;GAEG;AAwcH,qFAAqF;AACrF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAc7E;
|
|
1
|
+
{"version":3,"file":"canonicalGraphDocument.d.ts","sourceRoot":"","sources":["../src/canonicalGraphDocument.ts"],"names":[],"mappings":"AAAA;;GAEG;AAwcH,qFAAqF;AACrF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAc7E;AAyBD,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAkCtF;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAWpF"}
|
|
@@ -7,6 +7,7 @@ const CANONICAL_TOP_LEVEL_KEYS = new Set([
|
|
|
7
7
|
"version",
|
|
8
8
|
"modelConfig",
|
|
9
9
|
"jobKnowledge",
|
|
10
|
+
"jobMemory",
|
|
10
11
|
"nodes",
|
|
11
12
|
"edges",
|
|
12
13
|
"variables",
|
|
@@ -16,7 +17,6 @@ const CANONICAL_TOP_LEVEL_KEYS = new Set([
|
|
|
16
17
|
const FORBIDDEN_ROOT_RUNTIME_KEYS = new Set([
|
|
17
18
|
"input",
|
|
18
19
|
"inputs",
|
|
19
|
-
"jobMemory",
|
|
20
20
|
"taskMemory",
|
|
21
21
|
"executionMemory",
|
|
22
22
|
"outputsMemory",
|
|
@@ -433,6 +433,30 @@ export function normalizeNodesToArray(graph) {
|
|
|
433
433
|
graph.nodes = next;
|
|
434
434
|
return true;
|
|
435
435
|
}
|
|
436
|
+
/** Strip runtime-populated `rows` from declarative `jobMemory.context[]` entries. */
|
|
437
|
+
function stripRuntimePopulatedJobMemoryContext(jobMemory) {
|
|
438
|
+
const context = jobMemory.context;
|
|
439
|
+
if (!Array.isArray(context))
|
|
440
|
+
return false;
|
|
441
|
+
let changed = false;
|
|
442
|
+
for (const entry of context) {
|
|
443
|
+
const rec = readRecord(entry);
|
|
444
|
+
if (rec !== undefined && "rows" in rec) {
|
|
445
|
+
delete rec.rows;
|
|
446
|
+
changed = true;
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
return changed;
|
|
450
|
+
}
|
|
451
|
+
function canonicalizeGraphJobMemory(graph) {
|
|
452
|
+
const jobMemory = readRecord(graph.jobMemory);
|
|
453
|
+
if (jobMemory === undefined)
|
|
454
|
+
return false;
|
|
455
|
+
if (!stripRuntimePopulatedJobMemoryContext(jobMemory))
|
|
456
|
+
return false;
|
|
457
|
+
graph.jobMemory = jobMemory;
|
|
458
|
+
return true;
|
|
459
|
+
}
|
|
436
460
|
export function canonicalizeGraphDocumentShell(graph) {
|
|
437
461
|
let changed = false;
|
|
438
462
|
if (normalizeNodesToArray(graph))
|
|
@@ -443,6 +467,8 @@ export function canonicalizeGraphDocumentShell(graph) {
|
|
|
443
467
|
changed = true;
|
|
444
468
|
if (canonicalizeGraphRootModelConfig(graph))
|
|
445
469
|
changed = true;
|
|
470
|
+
if (canonicalizeGraphJobMemory(graph))
|
|
471
|
+
changed = true;
|
|
446
472
|
for (const key of Object.keys(graph)) {
|
|
447
473
|
if (!CANONICAL_TOP_LEVEL_KEYS.has(key)) {
|
|
448
474
|
if (FORBIDDEN_ROOT_RUNTIME_KEYS.has(key)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exampleGeneration.d.ts","sourceRoot":"","sources":["../src/exampleGeneration.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"exampleGeneration.d.ts","sourceRoot":"","sources":["../src/exampleGeneration.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;AAI/B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAI7D,MAAM,MAAM,mCAAmC,GAAG,oBAAoB,GAAG;IACvE,+DAA+D;IAC/D,UAAU,EAAE,OAAO,CAAC;IACpB,oFAAoF;IACpF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB,CAAC;AA0DF,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,QAAQ,GAAE,MAAM,EAAO,GACtB,MAAM,EAAE,CASV;AAED,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,mCAAmC,GAC1C,OAAO,CAAC,yBAAyB,CAAC,CAcpC;AAED,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,EACxD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,cAAc,CAAC,EAAE,0BAA0B,EAC3C,aAAa,GAAE,MAAM,EAAO,GAC3B,MAAM,EAAE,CA0BV;AAED,MAAM,MAAM,oCAAoC,GAAG,oBAAoB,GAAG;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;IAC9C,cAAc,CAAC,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,oCAAoC,GAC3C,OAAO,CAAC,yBAAyB,CAAC,CAmCpC;AAED,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,GAC7B,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { generateContentExample, generateJsonExample, generateMdExample, } from "@x12i/funcx/functions";
|
|
2
|
-
import {
|
|
2
|
+
import { resolveEffectiveGraphEntry, } from "./graphEntryContract.js";
|
|
3
3
|
function asObject(v) {
|
|
4
4
|
return v !== null && typeof v === "object" && !Array.isArray(v)
|
|
5
5
|
? v
|
|
@@ -74,24 +74,11 @@ export function buildGraphEntryExampleGuidance(graphEntry, graphConcept, entityB
|
|
|
74
74
|
const entry = resolveEffectiveGraphEntry(graphEntry !== undefined && typeof graphEntry === "object"
|
|
75
75
|
? graphEntry
|
|
76
76
|
: undefined);
|
|
77
|
-
const inputs = Array.isArray(entry.inputs) ? entry.inputs : [];
|
|
78
|
-
const pathHints = inputs
|
|
79
|
-
.slice(0, 12)
|
|
80
|
-
.map((row, i) => {
|
|
81
|
-
const r = row;
|
|
82
|
-
const path = typeof r.path === "string" ? r.path : "";
|
|
83
|
-
const kind = typeof r.kind === "string" ? r.kind : "scalar";
|
|
84
|
-
return path ? `${i + 1}. ${kind} @ ${path}` : undefined;
|
|
85
|
-
})
|
|
86
|
-
.filter((x) => x !== undefined);
|
|
87
77
|
const hints = [
|
|
88
78
|
"Generate example rows for metadata.graphEntry.exampleInputs (graph job-start contract).",
|
|
89
79
|
"Each example value must be a string; use format json with parseable JSON in value.",
|
|
90
|
-
"Paths
|
|
80
|
+
"Paths are dot-paths under execution.input (e.g. execution.input.subnetId).",
|
|
91
81
|
];
|
|
92
|
-
if (pathHints.length > 0) {
|
|
93
|
-
hints.push(`Declared entry inputs: ${pathHints.join(" | ")}.`);
|
|
94
|
-
}
|
|
95
82
|
if (entityBindings?.coreEntityCollectionId) {
|
|
96
83
|
hints.push(`Core entity collection: ${entityBindings.coreEntityCollectionId}.`);
|
|
97
84
|
}
|
|
@@ -99,6 +86,10 @@ export function buildGraphEntryExampleGuidance(graphEntry, graphConcept, entityB
|
|
|
99
86
|
if (typeof expected === "string" && expected.trim()) {
|
|
100
87
|
hints.push(`Concept expectedInput: ${truncate(expected)}.`);
|
|
101
88
|
}
|
|
89
|
+
const requiredPaths = entry.requiredExecutionPaths;
|
|
90
|
+
if (Array.isArray(requiredPaths) && requiredPaths.length > 0) {
|
|
91
|
+
hints.push(`Required execution paths: ${requiredPaths.join(", ")}.`);
|
|
92
|
+
}
|
|
102
93
|
return [...hints, ...extraGuidance];
|
|
103
94
|
}
|
|
104
95
|
export async function generateGraphEntryInputExample(params) {
|
|
@@ -108,8 +99,7 @@ export async function generateGraphEntryInputExample(params) {
|
|
|
108
99
|
: graph !== undefined
|
|
109
100
|
? resolveEffectiveGraphEntry(graph)
|
|
110
101
|
: {};
|
|
111
|
-
const
|
|
112
|
-
const jsonSchema = buildGraphEntryExampleJsonSchema(inputs, entityBindings);
|
|
102
|
+
const jsonSchema = { type: "object", additionalProperties: true };
|
|
113
103
|
const concept = graph !== null && graph !== undefined && typeof graph === "object"
|
|
114
104
|
? graph.metadata?.graphConcept
|
|
115
105
|
: undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphComposerActions.d.ts","sourceRoot":"","sources":["../src/graphComposerActions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EACL,KAAK,eAAe,EASrB,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"graphComposerActions.d.ts","sourceRoot":"","sources":["../src/graphComposerActions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EACL,KAAK,eAAe,EASrB,MAAM,oCAAoC,CAAC;AAW5C,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AAEhE,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,uDAAuD;IACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,yDAAyD;IACzD,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IACxC,oDAAoD;IACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,eAAe,CAAC;CAC1C,CAAC;AAaF,eAAO,MAAM,8BAA8B,EAAE,SAAS,6BAA6B,EA8LvE,CAAC;AAYb,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,GACb,6BAA6B,CAQ/B;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,GACf,6BAA6B,GAAG,SAAS,CAE3C;AAED,uEAAuE;AACvE,wBAAgB,+BAA+B,IAAI,MAAM,EAAE,CAQ1D;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAS1E"}
|
|
@@ -2,7 +2,7 @@ import { readFileSync, existsSync } from "node:fs";
|
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { graphComposerPackRoot } from "./packDir.js";
|
|
4
4
|
import { validateCreateModifyOutput, validateExplainOutput, validateSuggestCatalogCreationsOutput, validateSuggestCatalogResolutionOutput, validateSuggestConceptOutput, validateSuggestScopingMapCreationOutput, validateSuggestScopingNeedMatchOutput, validateReviewConceptOutput, } from "./graphComposerOutputValidation.js";
|
|
5
|
-
import { validateReviewGraphEntryContractOutput,
|
|
5
|
+
import { validateReviewGraphEntryContractOutput, validateSuggestGraphEntryExamplesOutput, validateSuggestGraphEntryConditionsOutput, validateSuggestJobModelDefaultsOutput, validateSuggestJobKnowledgeRefsOutput, validateSuggestGraphExecutionDefaultsOutput, } from "./graphEntryOutputValidation.js";
|
|
6
6
|
import { GRAPH_ENTRY_SHARED_INCLUDES } from "./graphEntryPostProcess.js";
|
|
7
7
|
function readPromptRelative(rel) {
|
|
8
8
|
const root = graphComposerPackRoot();
|
|
@@ -142,15 +142,6 @@ export const GRAPH_COMPOSER_ACTION_REGISTRY = [
|
|
|
142
142
|
toolDescription: "Review job-start graphEntry contract, job defaults, and alignment with graphConcept Lane 1. Returns verdict, graph-scoped findings, optional partial patches. No graph JSON.",
|
|
143
143
|
validateOutput: validateReviewGraphEntryContractOutput,
|
|
144
144
|
},
|
|
145
|
-
{
|
|
146
|
-
action: "suggestGraphEntryInputs",
|
|
147
|
-
promptFile: "action-suggest-graph-entry-inputs.md",
|
|
148
|
-
sharedIncludes: GRAPH_ENTRY_SHARED_INCLUDES,
|
|
149
|
-
requiresExistingGraph: true,
|
|
150
|
-
toolName: "graph_suggest_graph_entry_inputs",
|
|
151
|
-
toolDescription: "Propose metadata.graphEntry.inputs rows (execution.input.* paths). No graph JSON.",
|
|
152
|
-
validateOutput: validateSuggestGraphEntryInputsOutput,
|
|
153
|
-
},
|
|
154
145
|
{
|
|
155
146
|
action: "suggestGraphEntryExamples",
|
|
156
147
|
promptFile: "action-suggest-graph-entry-examples.md",
|
|
@@ -4,7 +4,7 @@ export type OutputValidationContext = {
|
|
|
4
4
|
input?: GraphComposerInput;
|
|
5
5
|
};
|
|
6
6
|
export type OutputValidator = (out: Record<string, unknown>, ctx?: OutputValidationContext) => void;
|
|
7
|
-
export { validateReviewGraphEntryContractOutput,
|
|
7
|
+
export { validateReviewGraphEntryContractOutput, validateSuggestGraphEntryExamplesOutput, validateSuggestGraphEntryConditionsOutput, validateSuggestJobModelDefaultsOutput, validateSuggestJobKnowledgeRefsOutput, validateSuggestGraphExecutionDefaultsOutput, } from "./graphEntryOutputValidation.js";
|
|
8
8
|
export declare function validateExplainOutput(out: Record<string, unknown>, _ctx?: OutputValidationContext): void;
|
|
9
9
|
export declare function validateReviewConceptOutput(out: Record<string, unknown>, _ctx?: OutputValidationContext): void;
|
|
10
10
|
/**
|
|
@@ -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,
|
|
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;AAmYD,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"}
|
|
@@ -3,7 +3,7 @@ import { collectAuthoringGraphValidationWarnings } from "./authoringGraphValidat
|
|
|
3
3
|
import { collectCanonicalGraphWarnings } from "./canonicalGraphWarnings.js";
|
|
4
4
|
import { assertCanonicalGraphDocument } from "./graphEngineBridge.js";
|
|
5
5
|
import { canonicalizeGraphModel, reportTaskNodeInputsLayoutIssues, taskNodeInputsLayoutWarningMessage, } from "./taskNodeTaskVariable.js";
|
|
6
|
-
export { validateReviewGraphEntryContractOutput,
|
|
6
|
+
export { validateReviewGraphEntryContractOutput, validateSuggestGraphEntryExamplesOutput, validateSuggestGraphEntryConditionsOutput, validateSuggestJobModelDefaultsOutput, validateSuggestJobKnowledgeRefsOutput, validateSuggestGraphExecutionDefaultsOutput, } from "./graphEntryOutputValidation.js";
|
|
7
7
|
const PRIMARY_INTENT_TYPES = new Set([
|
|
8
8
|
"question",
|
|
9
9
|
"decision",
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { GraphConceptEntityBindings } from "./types.js";
|
|
2
1
|
export type ComposerAgentSurface = "graph-entry" | "task-node";
|
|
3
2
|
/** Studio `buildGraphEntryAgentContext` envelope (FR-G1). */
|
|
4
3
|
export type GraphEntryAgentContext = {
|
|
@@ -18,15 +17,6 @@ export type TaskNodeAgentContext = {
|
|
|
18
17
|
lastRunMeta?: Record<string, unknown>;
|
|
19
18
|
};
|
|
20
19
|
export type GraphComposerAgentContext = GraphEntryAgentContext | TaskNodeAgentContext;
|
|
21
|
-
export type GraphEntryInputKind = "scalar" | "record";
|
|
22
|
-
export type GraphEntryInputRow = {
|
|
23
|
-
kind?: GraphEntryInputKind | string;
|
|
24
|
-
path: string;
|
|
25
|
-
required?: boolean;
|
|
26
|
-
entityIds?: string[];
|
|
27
|
-
label?: string;
|
|
28
|
-
description?: string;
|
|
29
|
-
};
|
|
30
20
|
export type GraphEntryExampleFormat = "json" | "markdown" | "text";
|
|
31
21
|
export type GraphEntryExampleRow = {
|
|
32
22
|
path?: string;
|
|
@@ -39,7 +29,6 @@ export type GraphEntryConditionsPatch = {
|
|
|
39
29
|
aiCondition?: Record<string, unknown>;
|
|
40
30
|
};
|
|
41
31
|
export type GraphEntryPatch = {
|
|
42
|
-
inputs?: GraphEntryInputRow[];
|
|
43
32
|
exampleInputs?: GraphEntryExampleRow[];
|
|
44
33
|
conditions?: GraphEntryConditionsPatch;
|
|
45
34
|
};
|
|
@@ -83,21 +72,9 @@ export type GraphResponsePatch = {
|
|
|
83
72
|
studio?: Record<string, unknown>;
|
|
84
73
|
};
|
|
85
74
|
export declare const GRAPH_ENTRY_FINDING_CATEGORIES: Set<string>;
|
|
86
|
-
export declare const GRAPH_ENTRY_PATH_PREFIX = "execution.input.";
|
|
87
75
|
export declare const GRAPH_EXECUTION_PATCH_ALLOWLIST: Set<string>;
|
|
88
76
|
/** Read `metadata.graphEntry` and normalize legacy `exampleInput` → `exampleInputs`. */
|
|
89
77
|
export declare function resolveEffectiveGraphEntry(graphOrEntry: object | Record<string, unknown> | undefined): Record<string, unknown>;
|
|
90
|
-
export declare function isValidGraphEntryPath(path: string): boolean;
|
|
91
|
-
export declare function validateGraphEntryPaths(paths: string[]): string[];
|
|
92
|
-
/** Infer JSON Schema for example generation from declared graph-entry inputs (FR-G4). */
|
|
93
|
-
export declare function buildGraphEntryExampleJsonSchema(inputs: GraphEntryInputRow[] | unknown[], _entityBindings?: GraphConceptEntityBindings): Record<string, unknown>;
|
|
94
|
-
export type EntityBindingMismatch = {
|
|
95
|
-
inputPath: string;
|
|
96
|
-
entityIds: string[];
|
|
97
|
-
message: string;
|
|
98
|
-
};
|
|
99
|
-
/** FR-G3: flag when graphEntry.inputs[].entityIds disagree with graphConcept.entityBindings. */
|
|
100
|
-
export declare function findGraphEntryEntityBindingMismatches(inputs: GraphEntryInputRow[] | unknown[], graphConcept: Record<string, unknown> | undefined): EntityBindingMismatch[];
|
|
101
78
|
export declare function parseJsonExampleValue(value: string): {
|
|
102
79
|
ok: boolean;
|
|
103
80
|
error?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphEntryContract.d.ts","sourceRoot":"","sources":["../src/graphEntryContract.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"graphEntryContract.d.ts","sourceRoot":"","sources":["../src/graphEntryContract.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,12 +8,12 @@ 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";
|
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@exellix/graph-composer",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.11.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.0",
|
|
68
|
+
"@x12i/graphenix-case-format": "^2.7.0",
|
|
69
|
+
"@x12i/graphenix-core": "^2.7.0",
|
|
70
|
+
"@x12i/graphenix-executable-contracts": "^2.7.0",
|
|
71
|
+
"@x12i/graphenix-executable-format": "^2.7.0",
|
|
72
|
+
"@x12i/graphenix-execute-envelope": "^2.7.0",
|
|
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.0",
|
|
75
|
+
"@x12i/graphenix-plan-format": "^2.7.0",
|
|
76
|
+
"@x12i/graphenix-task-node-format": "^2.7.0",
|
|
77
|
+
"@x12i/graphenix-trace-format": "^2.7.0"
|
|
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.3",
|
|
81
|
+
"@exellix/ai-tasks": "^10.0.9",
|
|
82
|
+
"@exellix/graph-engine": "^8.5.0"
|
|
82
83
|
},
|
|
83
84
|
"peerDependenciesMeta": {
|
|
84
85
|
"@exellix/graph-engine": {
|
|
@@ -98,9 +99,9 @@
|
|
|
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.3",
|
|
103
|
+
"@exellix/ai-tasks": "^10.0.9",
|
|
104
|
+
"@exellix/graph-engine": "^8.5.0",
|
|
104
105
|
"@types/node": "^22.10.2",
|
|
105
106
|
"@x12i/rendrix": "^4.3.0",
|
|
106
107
|
"nx-config2": "^3.6.5",
|