@x12i/graphenix-executable-format 1.0.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/README.md +341 -0
- package/dist/adapter/build-graph-execution-request-from-studio-execute.d.ts +6 -0
- package/dist/adapter/build-graph-execution-request-from-studio-execute.d.ts.map +1 -0
- package/dist/adapter/build-graph-execution-request-from-studio-execute.js +41 -0
- package/dist/adapter/build-graph-execution-request-from-studio-execute.js.map +1 -0
- package/dist/api.d.ts +36 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +99 -0
- package/dist/api.js.map +1 -0
- package/dist/case-condition/allowed-paths.d.ts +4 -0
- package/dist/case-condition/allowed-paths.d.ts.map +1 -0
- package/dist/case-condition/allowed-paths.js +74 -0
- package/dist/case-condition/allowed-paths.js.map +1 -0
- package/dist/case-condition/evaluate-case-condition.d.ts +4 -0
- package/dist/case-condition/evaluate-case-condition.d.ts.map +1 -0
- package/dist/case-condition/evaluate-case-condition.js +106 -0
- package/dist/case-condition/evaluate-case-condition.js.map +1 -0
- package/dist/case-condition/select-graph-model-case.d.ts +6 -0
- package/dist/case-condition/select-graph-model-case.d.ts.map +1 -0
- package/dist/case-condition/select-graph-model-case.js +40 -0
- package/dist/case-condition/select-graph-model-case.js.map +1 -0
- package/dist/case-condition/select-node-model-case.d.ts +4 -0
- package/dist/case-condition/select-node-model-case.d.ts.map +1 -0
- package/dist/case-condition/select-node-model-case.js +34 -0
- package/dist/case-condition/select-node-model-case.js.map +1 -0
- package/dist/case-condition/validate-case-condition.d.ts +5 -0
- package/dist/case-condition/validate-case-condition.d.ts.map +1 -0
- package/dist/case-condition/validate-case-condition.js +118 -0
- package/dist/case-condition/validate-case-condition.js.map +1 -0
- package/dist/compile/build-node-execution-units.d.ts +6 -0
- package/dist/compile/build-node-execution-units.d.ts.map +1 -0
- package/dist/compile/build-node-execution-units.js +77 -0
- package/dist/compile/build-node-execution-units.js.map +1 -0
- package/dist/compile/compile-executable-plan.d.ts +5 -0
- package/dist/compile/compile-executable-plan.d.ts.map +1 -0
- package/dist/compile/compile-executable-plan.js +142 -0
- package/dist/compile/compile-executable-plan.js.map +1 -0
- package/dist/constants.d.ts +12 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +19 -0
- package/dist/constants.js.map +1 -0
- package/dist/explain/explain-executable-graph-error.d.ts +4 -0
- package/dist/explain/explain-executable-graph-error.d.ts.map +1 -0
- package/dist/explain/explain-executable-graph-error.js +14 -0
- package/dist/explain/explain-executable-graph-error.js.map +1 -0
- package/dist/explain/explain-node-inheritance.d.ts +3 -0
- package/dist/explain/explain-node-inheritance.d.ts.map +1 -0
- package/dist/explain/explain-node-inheritance.js +41 -0
- package/dist/explain/explain-node-inheritance.js.map +1 -0
- package/dist/fixtures/minimal-executable-graph.d.ts +4 -0
- package/dist/fixtures/minimal-executable-graph.d.ts.map +1 -0
- package/dist/fixtures/minimal-executable-graph.js +170 -0
- package/dist/fixtures/minimal-executable-graph.js.map +1 -0
- package/dist/helpers/add-finalizer-node.d.ts +5 -0
- package/dist/helpers/add-finalizer-node.d.ts.map +1 -0
- package/dist/helpers/add-finalizer-node.js +13 -0
- package/dist/helpers/add-finalizer-node.js.map +1 -0
- package/dist/helpers/add-task-node.d.ts +5 -0
- package/dist/helpers/add-task-node.d.ts.map +1 -0
- package/dist/helpers/add-task-node.js +13 -0
- package/dist/helpers/add-task-node.js.map +1 -0
- package/dist/helpers/connect-task-to-task.d.ts +10 -0
- package/dist/helpers/connect-task-to-task.d.ts.map +1 -0
- package/dist/helpers/connect-task-to-task.js +23 -0
- package/dist/helpers/connect-task-to-task.js.map +1 -0
- package/dist/helpers/set-graph-model-config.d.ts +5 -0
- package/dist/helpers/set-graph-model-config.d.ts.map +1 -0
- package/dist/helpers/set-graph-model-config.js +30 -0
- package/dist/helpers/set-graph-model-config.js.map +1 -0
- package/dist/helpers/set-node-model-config.d.ts +5 -0
- package/dist/helpers/set-node-model-config.d.ts.map +1 -0
- package/dist/helpers/set-node-model-config.js +25 -0
- package/dist/helpers/set-node-model-config.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/hash.d.ts +4 -0
- package/dist/internal/hash.d.ts.map +1 -0
- package/dist/internal/hash.js +26 -0
- package/dist/internal/hash.js.map +1 -0
- package/dist/internal/utils.d.ts +16 -0
- package/dist/internal/utils.d.ts.map +1 -0
- package/dist/internal/utils.js +80 -0
- package/dist/internal/utils.js.map +1 -0
- package/dist/migration/migrate-legacy-graph-model-object.d.ts +4 -0
- package/dist/migration/migrate-legacy-graph-model-object.d.ts.map +1 -0
- package/dist/migration/migrate-legacy-graph-model-object.js +217 -0
- package/dist/migration/migrate-legacy-graph-model-object.js.map +1 -0
- package/dist/normalize/normalize-executable-graph.d.ts +3 -0
- package/dist/normalize/normalize-executable-graph.d.ts.map +1 -0
- package/dist/normalize/normalize-executable-graph.js +34 -0
- package/dist/normalize/normalize-executable-graph.js.map +1 -0
- package/dist/normalize/normalize-model-config.d.ts +4 -0
- package/dist/normalize/normalize-model-config.d.ts.map +1 -0
- package/dist/normalize/normalize-model-config.js +64 -0
- package/dist/normalize/normalize-model-config.js.map +1 -0
- package/dist/profile-choice/known-profile-choices.d.ts +10 -0
- package/dist/profile-choice/known-profile-choices.d.ts.map +1 -0
- package/dist/profile-choice/known-profile-choices.js +19 -0
- package/dist/profile-choice/known-profile-choices.js.map +1 -0
- package/dist/profile-choice/validate-profile-choice.d.ts +8 -0
- package/dist/profile-choice/validate-profile-choice.d.ts.map +1 -0
- package/dist/profile-choice/validate-profile-choice.js +55 -0
- package/dist/profile-choice/validate-profile-choice.js.map +1 -0
- package/dist/resolution/build-deterministic-case-context.d.ts +9 -0
- package/dist/resolution/build-deterministic-case-context.d.ts.map +1 -0
- package/dist/resolution/build-deterministic-case-context.js +26 -0
- package/dist/resolution/build-deterministic-case-context.js.map +1 -0
- package/dist/resolution/resolve-graph-model-config.d.ts +12 -0
- package/dist/resolution/resolve-graph-model-config.d.ts.map +1 -0
- package/dist/resolution/resolve-graph-model-config.js +28 -0
- package/dist/resolution/resolve-graph-model-config.js.map +1 -0
- package/dist/resolution/resolve-node-ai-plan.d.ts +7 -0
- package/dist/resolution/resolve-node-ai-plan.d.ts.map +1 -0
- package/dist/resolution/resolve-node-ai-plan.js +64 -0
- package/dist/resolution/resolve-node-ai-plan.js.map +1 -0
- package/dist/resolution/resolve-node-model-config.d.ts +15 -0
- package/dist/resolution/resolve-node-model-config.d.ts.map +1 -0
- package/dist/resolution/resolve-node-model-config.js +37 -0
- package/dist/resolution/resolve-node-model-config.js.map +1 -0
- package/dist/resolution/resolve-node-model-slot.d.ts +7 -0
- package/dist/resolution/resolve-node-model-slot.d.ts.map +1 -0
- package/dist/resolution/resolve-node-model-slot.js +65 -0
- package/dist/resolution/resolve-node-model-slot.js.map +1 -0
- package/dist/test/executable-format.test.d.ts +2 -0
- package/dist/test/executable-format.test.d.ts.map +1 -0
- package/dist/test/executable-format.test.js +844 -0
- package/dist/test/executable-format.test.js.map +1 -0
- package/dist/trace/append-execution-event.d.ts +5 -0
- package/dist/trace/append-execution-event.d.ts.map +1 -0
- package/dist/trace/append-execution-event.js +9 -0
- package/dist/trace/append-execution-event.js.map +1 -0
- package/dist/trace/create-execution-trace.d.ts +5 -0
- package/dist/trace/create-execution-trace.d.ts.map +1 -0
- package/dist/trace/create-execution-trace.js +56 -0
- package/dist/trace/create-execution-trace.js.map +1 -0
- package/dist/types/case-condition.d.ts +50 -0
- package/dist/types/case-condition.d.ts.map +1 -0
- package/dist/types/case-condition.js +3 -0
- package/dist/types/case-condition.js.map +1 -0
- package/dist/types/errors.d.ts +16 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +3 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/executable-graph.d.ts +19 -0
- package/dist/types/executable-graph.d.ts.map +1 -0
- package/dist/types/executable-graph.js +3 -0
- package/dist/types/executable-graph.js.map +1 -0
- package/dist/types/executable-nodes.d.ts +54 -0
- package/dist/types/executable-nodes.d.ts.map +1 -0
- package/dist/types/executable-nodes.js +3 -0
- package/dist/types/executable-nodes.js.map +1 -0
- package/dist/types/executable-plan.d.ts +78 -0
- package/dist/types/executable-plan.d.ts.map +1 -0
- package/dist/types/executable-plan.js +5 -0
- package/dist/types/executable-plan.js.map +1 -0
- package/dist/types/executable-profile.d.ts +18 -0
- package/dist/types/executable-profile.d.ts.map +1 -0
- package/dist/types/executable-profile.js +3 -0
- package/dist/types/executable-profile.js.map +1 -0
- package/dist/types/execution-trace.d.ts +278 -0
- package/dist/types/execution-trace.d.ts.map +1 -0
- package/dist/types/execution-trace.js +5 -0
- package/dist/types/execution-trace.js.map +1 -0
- package/dist/types/execution-unit.d.ts +19 -0
- package/dist/types/execution-unit.d.ts.map +1 -0
- package/dist/types/execution-unit.js +3 -0
- package/dist/types/execution-unit.js.map +1 -0
- package/dist/types/index.d.ts +16 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/legacy.d.ts +21 -0
- package/dist/types/legacy.d.ts.map +1 -0
- package/dist/types/legacy.js +3 -0
- package/dist/types/legacy.js.map +1 -0
- package/dist/types/model-config.d.ts +80 -0
- package/dist/types/model-config.d.ts.map +1 -0
- package/dist/types/model-config.js +3 -0
- package/dist/types/model-config.js.map +1 -0
- package/dist/types/resolution.d.ts +55 -0
- package/dist/types/resolution.d.ts.map +1 -0
- package/dist/types/resolution.js +3 -0
- package/dist/types/resolution.js.map +1 -0
- package/dist/types/runtime.d.ts +19 -0
- package/dist/types/runtime.d.ts.map +1 -0
- package/dist/types/runtime.js +3 -0
- package/dist/types/runtime.js.map +1 -0
- package/dist/types/studio-execute.d.ts +25 -0
- package/dist/types/studio-execute.d.ts.map +1 -0
- package/dist/types/studio-execute.js +3 -0
- package/dist/types/studio-execute.js.map +1 -0
- package/dist/validators/assert-executable-graph.d.ts +3 -0
- package/dist/validators/assert-executable-graph.d.ts.map +1 -0
- package/dist/validators/assert-executable-graph.js +14 -0
- package/dist/validators/assert-executable-graph.js.map +1 -0
- package/dist/validators/assert-normalized-executable-graph.d.ts +3 -0
- package/dist/validators/assert-normalized-executable-graph.d.ts.map +1 -0
- package/dist/validators/assert-normalized-executable-graph.js +14 -0
- package/dist/validators/assert-normalized-executable-graph.js.map +1 -0
- package/dist/validators/validate-authoring-executable-graph.d.ts +3 -0
- package/dist/validators/validate-authoring-executable-graph.d.ts.map +1 -0
- package/dist/validators/validate-authoring-executable-graph.js +134 -0
- package/dist/validators/validate-authoring-executable-graph.js.map +1 -0
- package/dist/validators/validate-authoring-graph.d.ts +2 -0
- package/dist/validators/validate-authoring-graph.d.ts.map +1 -0
- package/dist/validators/validate-authoring-graph.js +6 -0
- package/dist/validators/validate-authoring-graph.js.map +1 -0
- package/dist/validators/validate-executable-graph.d.ts +4 -0
- package/dist/validators/validate-executable-graph.d.ts.map +1 -0
- package/dist/validators/validate-executable-graph.js +9 -0
- package/dist/validators/validate-executable-graph.js.map +1 -0
- package/dist/validators/validate-executable-plan.d.ts +3 -0
- package/dist/validators/validate-executable-plan.d.ts.map +1 -0
- package/dist/validators/validate-executable-plan.js +211 -0
- package/dist/validators/validate-executable-plan.js.map +1 -0
- package/dist/validators/validate-execution-trace.d.ts +4 -0
- package/dist/validators/validate-execution-trace.d.ts.map +1 -0
- package/dist/validators/validate-execution-trace.js +158 -0
- package/dist/validators/validate-execution-trace.js.map +1 -0
- package/dist/validators/validate-finalizer-node.d.ts +4 -0
- package/dist/validators/validate-finalizer-node.d.ts.map +1 -0
- package/dist/validators/validate-finalizer-node.js +36 -0
- package/dist/validators/validate-finalizer-node.js.map +1 -0
- package/dist/validators/validate-model-config.d.ts +7 -0
- package/dist/validators/validate-model-config.d.ts.map +1 -0
- package/dist/validators/validate-model-config.js +197 -0
- package/dist/validators/validate-model-config.js.map +1 -0
- package/dist/validators/validate-normalized-executable-graph.d.ts +3 -0
- package/dist/validators/validate-normalized-executable-graph.d.ts.map +1 -0
- package/dist/validators/validate-normalized-executable-graph.js +26 -0
- package/dist/validators/validate-normalized-executable-graph.js.map +1 -0
- package/dist/validators/validate-runtime-object.d.ts +10 -0
- package/dist/validators/validate-runtime-object.d.ts.map +1 -0
- package/dist/validators/validate-runtime-object.js +63 -0
- package/dist/validators/validate-runtime-object.js.map +1 -0
- package/dist/validators/validate-studio-execute-request.d.ts +5 -0
- package/dist/validators/validate-studio-execute-request.d.ts.map +1 -0
- package/dist/validators/validate-studio-execute-request.js +37 -0
- package/dist/validators/validate-studio-execute-request.js.map +1 -0
- package/dist/validators/validate-task-actions.d.ts +4 -0
- package/dist/validators/validate-task-actions.d.ts.map +1 -0
- package/dist/validators/validate-task-actions.js +93 -0
- package/dist/validators/validate-task-actions.js.map +1 -0
- package/dist/validators/validate-task-node.d.ts +6 -0
- package/dist/validators/validate-task-node.d.ts.map +1 -0
- package/dist/validators/validate-task-node.js +43 -0
- package/dist/validators/validate-task-node.js.map +1 -0
- package/docs/IMPLEMENTATION-REPORT.md +200 -0
- package/package.json +56 -0
- package/schema/graphenix-executable-format-1.0.0.schema.json +40 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isRecord = isRecord;
|
|
4
|
+
exports.execError = execError;
|
|
5
|
+
exports.getExecutableProfile = getExecutableProfile;
|
|
6
|
+
exports.isExecutableTaskNode = isExecutableTaskNode;
|
|
7
|
+
exports.isExecutableFinalizerNode = isExecutableFinalizerNode;
|
|
8
|
+
exports.getTaskNodeConfig = getTaskNodeConfig;
|
|
9
|
+
exports.getFinalizerNodeConfig = getFinalizerNodeConfig;
|
|
10
|
+
exports.isAiModelSelection = isAiModelSelection;
|
|
11
|
+
exports.nodeHasInputPort = nodeHasInputPort;
|
|
12
|
+
exports.nodeHasOutputPort = nodeHasOutputPort;
|
|
13
|
+
exports.isExecutableNodeParameters = isExecutableNodeParameters;
|
|
14
|
+
const constants_js_1 = require("../constants.js");
|
|
15
|
+
const constants_js_2 = require("../constants.js");
|
|
16
|
+
function isRecord(value) {
|
|
17
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
18
|
+
}
|
|
19
|
+
function execError(code, message, path) {
|
|
20
|
+
return { source: "x12i.executable", code, message, path };
|
|
21
|
+
}
|
|
22
|
+
function getExecutableProfile(doc) {
|
|
23
|
+
const raw = doc.graph.metadata?.extensions?.[constants_js_2.EXECUTABLE_PROFILE_NAMESPACE];
|
|
24
|
+
if (!isRecord(raw))
|
|
25
|
+
return undefined;
|
|
26
|
+
return raw;
|
|
27
|
+
}
|
|
28
|
+
function isExecutableTaskNode(node) {
|
|
29
|
+
return node.kind === constants_js_1.TASK_NODE_KIND;
|
|
30
|
+
}
|
|
31
|
+
function isExecutableFinalizerNode(node) {
|
|
32
|
+
return node.kind === constants_js_1.FINALIZER_NODE_KIND;
|
|
33
|
+
}
|
|
34
|
+
function getTaskNodeConfig(node) {
|
|
35
|
+
if (!isExecutableTaskNode(node))
|
|
36
|
+
return undefined;
|
|
37
|
+
const params = node.parameters;
|
|
38
|
+
if (!isRecord(params) || params.nodeType !== "task")
|
|
39
|
+
return undefined;
|
|
40
|
+
return params;
|
|
41
|
+
}
|
|
42
|
+
function getFinalizerNodeConfig(node) {
|
|
43
|
+
if (!isExecutableFinalizerNode(node))
|
|
44
|
+
return undefined;
|
|
45
|
+
const params = node.parameters;
|
|
46
|
+
if (!isRecord(params) || params.nodeType !== "finalizer")
|
|
47
|
+
return undefined;
|
|
48
|
+
return params;
|
|
49
|
+
}
|
|
50
|
+
function isAiModelSelection(value) {
|
|
51
|
+
if (!isRecord(value))
|
|
52
|
+
return false;
|
|
53
|
+
if (value.kind === "profileChoice") {
|
|
54
|
+
return typeof value.key === "string";
|
|
55
|
+
}
|
|
56
|
+
if (value.kind === "profile") {
|
|
57
|
+
return typeof value.profile === "string";
|
|
58
|
+
}
|
|
59
|
+
if (value.kind === "model") {
|
|
60
|
+
const modelId = typeof value.modelId === "string"
|
|
61
|
+
? value.modelId
|
|
62
|
+
: typeof value.model === "string"
|
|
63
|
+
? value.model
|
|
64
|
+
: undefined;
|
|
65
|
+
return typeof value.provider === "string" && modelId !== undefined;
|
|
66
|
+
}
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
function nodeHasInputPort(node, portId) {
|
|
70
|
+
return (node.inputs ?? []).some((p) => p.id === portId);
|
|
71
|
+
}
|
|
72
|
+
function nodeHasOutputPort(node, portId) {
|
|
73
|
+
return (node.outputs ?? []).some((p) => p.id === portId);
|
|
74
|
+
}
|
|
75
|
+
function isExecutableNodeParameters(value) {
|
|
76
|
+
if (!isRecord(value))
|
|
77
|
+
return false;
|
|
78
|
+
return value.profile === constants_js_1.EXECUTABLE_NODE_PROFILE;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/internal/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ExecutableGraphDocument } from "../types/executable-graph.js";
|
|
2
|
+
import type { LegacyGraphModelObject } from "../types/legacy.js";
|
|
3
|
+
export declare function migrateLegacyGraphModelObjectToGraphenixExecutable(legacy: LegacyGraphModelObject): ExecutableGraphDocument;
|
|
4
|
+
//# sourceMappingURL=migrate-legacy-graph-model-object.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-legacy-graph-model-object.d.ts","sourceRoot":"","sources":["../../src/migration/migrate-legacy-graph-model-object.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAajE,wBAAgB,kDAAkD,CAChE,MAAM,EAAE,sBAAsB,GAC7B,uBAAuB,CAqDzB"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.migrateLegacyGraphModelObjectToGraphenixExecutable = migrateLegacyGraphModelObjectToGraphenixExecutable;
|
|
4
|
+
const graphenix_core_1 = require("@x12i/graphenix-core");
|
|
5
|
+
const constants_js_1 = require("../constants.js");
|
|
6
|
+
const utils_js_1 = require("../internal/utils.js");
|
|
7
|
+
function migrateLegacyGraphModelObjectToGraphenixExecutable(legacy) {
|
|
8
|
+
const nodes = migrateNodes(legacy.nodes);
|
|
9
|
+
const edges = migrateEdges(legacy.edges, nodes);
|
|
10
|
+
const modelConfig = migrateGraphModelConfig(legacy.modelConfig);
|
|
11
|
+
const doc = {
|
|
12
|
+
formatVersion: graphenix_core_1.GRAPHENIX_FORMAT_VERSION,
|
|
13
|
+
id: legacy.id ?? "graph:migrated",
|
|
14
|
+
revision: legacy.version,
|
|
15
|
+
name: legacy.name,
|
|
16
|
+
graph: {
|
|
17
|
+
nodes: nodes,
|
|
18
|
+
edges,
|
|
19
|
+
inputs: [],
|
|
20
|
+
outputs: [],
|
|
21
|
+
metadata: {
|
|
22
|
+
graphEntry: legacy.metadata?.graphEntry,
|
|
23
|
+
graphResponse: legacy.metadata?.graphResponse,
|
|
24
|
+
extensions: {
|
|
25
|
+
[constants_js_1.EXECUTABLE_PROFILE_NAMESPACE]: {
|
|
26
|
+
profileVersion: constants_js_1.EXECUTABLE_PROFILE_VERSION,
|
|
27
|
+
modelConfig: modelConfig ?? defaultGraphModelConfig(),
|
|
28
|
+
variables: legacy.variables,
|
|
29
|
+
jobKnowledge: legacy.jobKnowledge
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
types: []
|
|
35
|
+
};
|
|
36
|
+
if (legacy.response?.shape) {
|
|
37
|
+
doc.graph.outputs.push({
|
|
38
|
+
id: "graph-output:final",
|
|
39
|
+
name: "Final Output",
|
|
40
|
+
type: "builtin:object",
|
|
41
|
+
contract: {
|
|
42
|
+
semanticKind: "final-output",
|
|
43
|
+
required: true,
|
|
44
|
+
schema: legacy.response.shape
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
doc.graph.metadata.graphResponse = {
|
|
48
|
+
...doc.graph.metadata?.graphResponse,
|
|
49
|
+
finalOutputSchema: legacy.response.shape
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return doc;
|
|
53
|
+
}
|
|
54
|
+
const LEGACY_PROFILE_TO_CHOICE = {
|
|
55
|
+
economy: "cheap/default",
|
|
56
|
+
cheap: "cheap/default",
|
|
57
|
+
balanced: "vol/default",
|
|
58
|
+
thinking: "deep/openai_deep",
|
|
59
|
+
strong: "vol/pro"
|
|
60
|
+
};
|
|
61
|
+
function migrateProfileSelection(selection) {
|
|
62
|
+
if (selection.kind === "profile") {
|
|
63
|
+
const key = selection.choice
|
|
64
|
+
? `${selection.profile}/${selection.choice}`
|
|
65
|
+
: LEGACY_PROFILE_TO_CHOICE[selection.profile] ?? `${selection.profile}/default`;
|
|
66
|
+
return { kind: "profileChoice", key, params: selection.params };
|
|
67
|
+
}
|
|
68
|
+
if (selection.kind === "model") {
|
|
69
|
+
return {
|
|
70
|
+
kind: "model",
|
|
71
|
+
provider: selection.provider,
|
|
72
|
+
modelId: selection.modelId ?? selection.model ?? "unknown",
|
|
73
|
+
params: selection.params
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
return selection;
|
|
77
|
+
}
|
|
78
|
+
function migrateTriplet(triplet) {
|
|
79
|
+
return {
|
|
80
|
+
preActionModel: migrateProfileSelection(triplet.preActionModel),
|
|
81
|
+
skillModel: migrateProfileSelection(triplet.skillModel),
|
|
82
|
+
postActionModel: migrateProfileSelection(triplet.postActionModel)
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
function migrateGraphModelConfig(modelConfig) {
|
|
86
|
+
if (!modelConfig) {
|
|
87
|
+
return defaultGraphModelConfig();
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
...modelConfig,
|
|
91
|
+
cases: modelConfig.cases.map((graphCase) => ({
|
|
92
|
+
...graphCase,
|
|
93
|
+
modelConfig: migrateTriplet(graphCase.modelConfig)
|
|
94
|
+
}))
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function defaultGraphModelConfig() {
|
|
98
|
+
return {
|
|
99
|
+
version: "graph-model-config/v1",
|
|
100
|
+
cases: [
|
|
101
|
+
{
|
|
102
|
+
id: "default",
|
|
103
|
+
modelConfig: {
|
|
104
|
+
preActionModel: { kind: "profileChoice", key: "cheap/default" },
|
|
105
|
+
skillModel: { kind: "profileChoice", key: "vol/default" },
|
|
106
|
+
postActionModel: { kind: "profileChoice", key: "cheap/default" }
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
],
|
|
110
|
+
fallbackPolicy: {
|
|
111
|
+
enabled: true,
|
|
112
|
+
allowedTriggers: ["nodeSlotMissing", "nodeModelUnavailable"],
|
|
113
|
+
maxAttemptsPerSlot: 1
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
function migrateNodes(rawNodes) {
|
|
118
|
+
if (!Array.isArray(rawNodes))
|
|
119
|
+
return [];
|
|
120
|
+
return rawNodes.map((raw, index) => {
|
|
121
|
+
if (!(0, utils_js_1.isRecord)(raw)) {
|
|
122
|
+
return createPlaceholderTaskNode(`node:migrated-${index}`);
|
|
123
|
+
}
|
|
124
|
+
const id = typeof raw.id === "string" ? raw.id : `node:migrated-${index}`;
|
|
125
|
+
const kind = typeof raw.kind === "string"
|
|
126
|
+
? raw.kind === "task"
|
|
127
|
+
? constants_js_1.TASK_NODE_KIND
|
|
128
|
+
: raw.kind === "finalizer"
|
|
129
|
+
? constants_js_1.FINALIZER_NODE_KIND
|
|
130
|
+
: raw.kind
|
|
131
|
+
: constants_js_1.TASK_NODE_KIND;
|
|
132
|
+
const inputs = Array.isArray(raw.inputs)
|
|
133
|
+
? raw.inputs
|
|
134
|
+
: [{ id: constants_js_1.DEFAULT_INPUT_PORT_ID, direction: "input", type: "builtin:object" }];
|
|
135
|
+
const outputs = Array.isArray(raw.outputs)
|
|
136
|
+
? raw.outputs
|
|
137
|
+
: [{ id: constants_js_1.DEFAULT_OUTPUT_PORT_ID, direction: "output", type: "builtin:object" }];
|
|
138
|
+
const parameters = (0, utils_js_1.isRecord)(raw.parameters)
|
|
139
|
+
? raw.parameters
|
|
140
|
+
: {
|
|
141
|
+
profile: constants_js_1.EXECUTABLE_NODE_PROFILE,
|
|
142
|
+
nodeType: kind === constants_js_1.FINALIZER_NODE_KIND ? "finalizer" : "task",
|
|
143
|
+
skillKey: typeof raw.skillKey === "string" ? raw.skillKey : "migrated-skill",
|
|
144
|
+
finalizerType: "single-output",
|
|
145
|
+
config: { from: id }
|
|
146
|
+
};
|
|
147
|
+
return {
|
|
148
|
+
id,
|
|
149
|
+
name: typeof raw.name === "string" ? raw.name : undefined,
|
|
150
|
+
kind,
|
|
151
|
+
inputs,
|
|
152
|
+
outputs,
|
|
153
|
+
parameters
|
|
154
|
+
};
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
function createPlaceholderTaskNode(id) {
|
|
158
|
+
return {
|
|
159
|
+
id,
|
|
160
|
+
kind: constants_js_1.TASK_NODE_KIND,
|
|
161
|
+
inputs: [
|
|
162
|
+
{ id: constants_js_1.DEFAULT_INPUT_PORT_ID, direction: "input", type: "builtin:object" }
|
|
163
|
+
],
|
|
164
|
+
outputs: [
|
|
165
|
+
{ id: constants_js_1.DEFAULT_OUTPUT_PORT_ID, direction: "output", type: "builtin:object" }
|
|
166
|
+
],
|
|
167
|
+
parameters: {
|
|
168
|
+
profile: constants_js_1.EXECUTABLE_NODE_PROFILE,
|
|
169
|
+
nodeType: "task",
|
|
170
|
+
skillKey: "migrated-skill"
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
function migrateEdges(rawEdges, nodes) {
|
|
175
|
+
if (!Array.isArray(rawEdges))
|
|
176
|
+
return [];
|
|
177
|
+
return rawEdges.flatMap((raw, index) => {
|
|
178
|
+
if (!(0, utils_js_1.isRecord)(raw))
|
|
179
|
+
return [];
|
|
180
|
+
const fromNodeId = typeof raw.from === "string"
|
|
181
|
+
? raw.from
|
|
182
|
+
: (0, utils_js_1.isRecord)(raw.from) && typeof raw.from.nodeId === "string"
|
|
183
|
+
? raw.from.nodeId
|
|
184
|
+
: undefined;
|
|
185
|
+
const toNodeId = typeof raw.to === "string"
|
|
186
|
+
? raw.to
|
|
187
|
+
: (0, utils_js_1.isRecord)(raw.to) && typeof raw.to.nodeId === "string"
|
|
188
|
+
? raw.to.nodeId
|
|
189
|
+
: undefined;
|
|
190
|
+
if (!fromNodeId || !toNodeId)
|
|
191
|
+
return [];
|
|
192
|
+
const fromNode = nodes.find((n) => n.id === fromNodeId);
|
|
193
|
+
const toNode = nodes.find((n) => n.id === toNodeId);
|
|
194
|
+
return [
|
|
195
|
+
{
|
|
196
|
+
id: typeof raw.id === "string" ? raw.id : `edge:migrated-${index}`,
|
|
197
|
+
from: {
|
|
198
|
+
nodeId: fromNodeId,
|
|
199
|
+
portId: ((0, utils_js_1.isRecord)(raw.from) && typeof raw.from.portId === "string"
|
|
200
|
+
? raw.from.portId
|
|
201
|
+
: undefined) ??
|
|
202
|
+
fromNode?.outputs?.[0]?.id ??
|
|
203
|
+
constants_js_1.DEFAULT_OUTPUT_PORT_ID
|
|
204
|
+
},
|
|
205
|
+
to: {
|
|
206
|
+
nodeId: toNodeId,
|
|
207
|
+
portId: ((0, utils_js_1.isRecord)(raw.to) && typeof raw.to.portId === "string"
|
|
208
|
+
? raw.to.portId
|
|
209
|
+
: undefined) ??
|
|
210
|
+
toNode?.inputs?.[0]?.id ??
|
|
211
|
+
constants_js_1.DEFAULT_INPUT_PORT_ID
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
];
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=migrate-legacy-graph-model-object.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-legacy-graph-model-object.js","sourceRoot":"","sources":["../../src/migration/migrate-legacy-graph-model-object.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { AuthoringExecutableGraphDocument, NormalizedExecutableGraphDocument } from "../types/executable-graph.js";
|
|
2
|
+
export declare function normalizeExecutableGraph(doc: AuthoringExecutableGraphDocument): NormalizedExecutableGraphDocument;
|
|
3
|
+
//# sourceMappingURL=normalize-executable-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-executable-graph.d.ts","sourceRoot":"","sources":["../../src/normalize/normalize-executable-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gCAAgC,EAChC,iCAAiC,EAClC,MAAM,8BAA8B,CAAC;AAUtC,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,gCAAgC,GACpC,iCAAiC,CAoCnC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeExecutableGraph = normalizeExecutableGraph;
|
|
4
|
+
const constants_js_1 = require("../constants.js");
|
|
5
|
+
const utils_js_1 = require("../internal/utils.js");
|
|
6
|
+
const normalize_model_config_js_1 = require("./normalize-model-config.js");
|
|
7
|
+
function normalizeExecutableGraph(doc) {
|
|
8
|
+
const next = structuredClone(doc);
|
|
9
|
+
const profile = (0, utils_js_1.getExecutableProfile)(next);
|
|
10
|
+
if (!profile?.modelConfig) {
|
|
11
|
+
return next;
|
|
12
|
+
}
|
|
13
|
+
const metadata = next.graph.metadata;
|
|
14
|
+
if (!metadata?.extensions) {
|
|
15
|
+
return next;
|
|
16
|
+
}
|
|
17
|
+
const normalizedProfile = {
|
|
18
|
+
...profile,
|
|
19
|
+
modelConfig: (0, normalize_model_config_js_1.normalizeGraphModelConfig)(profile.modelConfig)
|
|
20
|
+
};
|
|
21
|
+
metadata.extensions[constants_js_1.EXECUTABLE_PROFILE_NAMESPACE] = normalizedProfile;
|
|
22
|
+
for (const node of next.graph.nodes) {
|
|
23
|
+
if (!(0, utils_js_1.isExecutableTaskNode)(node)) {
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
const taskConfig = (0, utils_js_1.getTaskNodeConfig)(node);
|
|
27
|
+
if (!taskConfig?.taskConfiguration?.modelConfig) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
taskConfig.taskConfiguration.modelConfig = (0, normalize_model_config_js_1.normalizeNodeModelConfig)(taskConfig.taskConfiguration.modelConfig);
|
|
31
|
+
}
|
|
32
|
+
return next;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=normalize-executable-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-executable-graph.js","sourceRoot":"","sources":["../../src/normalize/normalize-executable-graph.ts"],"names":[],"mappings":";;AAaA,4DAsCC;AA7CD,kDAA+D;AAC/D,mDAAqG;AACrG,2EAGqC;AAErC,SAAgB,wBAAwB,CACtC,GAAqC;IAErC,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAsC,CAAC;IACvE,MAAM,OAAO,GAAG,IAAA,+BAAoB,EAAC,IAAI,CAAC,CAAC;IAE3C,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,iBAAiB,GAA2B;QAChD,GAAG,OAAO;QACV,WAAW,EAAE,IAAA,qDAAyB,EACpC,OAAO,CAAC,WAAwC,CACjD;KACF,CAAC;IAEF,QAAQ,CAAC,UAAU,CAAC,2CAA4B,CAAC,GAAG,iBAAiB,CAAC;IAEtE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC,IAAA,+BAAoB,EAAC,IAAI,CAAC,EAAE,CAAC;YAChC,SAAS;QACX,CAAC;QACD,MAAM,UAAU,GAAG,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC;YAChD,SAAS;QACX,CAAC;QACD,UAAU,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAA,oDAAwB,EACjE,UAAU,CAAC,iBAAiB,CAAC,WAAW,CACzC,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { AuthoringGraphModelConfig, AuthoringNodeModelConfig, NormalizedGraphModelConfig } from "../types/model-config.js";
|
|
2
|
+
export declare function normalizeGraphModelConfig(modelConfig: AuthoringGraphModelConfig): NormalizedGraphModelConfig;
|
|
3
|
+
export declare function normalizeNodeModelConfig(modelConfig: AuthoringNodeModelConfig | undefined): AuthoringNodeModelConfig | undefined;
|
|
4
|
+
//# sourceMappingURL=normalize-model-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-model-config.d.ts","sourceRoot":"","sources":["../../src/normalize/normalize-model-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EAGxB,0BAA0B,EAE3B,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,yBAAyB,GACrC,0BAA0B,CA6C5B;AAED,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,wBAAwB,GAAG,SAAS,GAChD,wBAAwB,GAAG,SAAS,CAwBtC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeGraphModelConfig = normalizeGraphModelConfig;
|
|
4
|
+
exports.normalizeNodeModelConfig = normalizeNodeModelConfig;
|
|
5
|
+
function normalizeGraphModelConfig(modelConfig) {
|
|
6
|
+
if (modelConfig.cases && modelConfig.cases.length > 0) {
|
|
7
|
+
const cases = structuredClone(modelConfig.cases);
|
|
8
|
+
if (modelConfig.default &&
|
|
9
|
+
!cases.some((graphCase) => graphCase.id === "default")) {
|
|
10
|
+
cases.unshift({
|
|
11
|
+
id: "default",
|
|
12
|
+
modelConfig: structuredClone(modelConfig.default)
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
return {
|
|
16
|
+
version: "graph-model-config/v1",
|
|
17
|
+
cases,
|
|
18
|
+
fallbackPolicy: modelConfig.fallbackPolicy
|
|
19
|
+
? structuredClone(modelConfig.fallbackPolicy)
|
|
20
|
+
: undefined
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
if (modelConfig.default) {
|
|
24
|
+
return {
|
|
25
|
+
version: "graph-model-config/v1",
|
|
26
|
+
cases: [
|
|
27
|
+
{
|
|
28
|
+
id: "default",
|
|
29
|
+
modelConfig: structuredClone(modelConfig.default)
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
fallbackPolicy: modelConfig.fallbackPolicy
|
|
33
|
+
? structuredClone(modelConfig.fallbackPolicy)
|
|
34
|
+
: undefined
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
version: "graph-model-config/v1",
|
|
39
|
+
cases: []
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function normalizeNodeModelConfig(modelConfig) {
|
|
43
|
+
if (!modelConfig) {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
if (modelConfig.cases && modelConfig.cases.length > 0) {
|
|
47
|
+
return structuredClone(modelConfig);
|
|
48
|
+
}
|
|
49
|
+
if (modelConfig.modelConfig) {
|
|
50
|
+
const cases = [
|
|
51
|
+
{
|
|
52
|
+
id: "default",
|
|
53
|
+
modelConfig: structuredClone(modelConfig.modelConfig)
|
|
54
|
+
}
|
|
55
|
+
];
|
|
56
|
+
return {
|
|
57
|
+
version: modelConfig.version,
|
|
58
|
+
inherit: modelConfig.inherit,
|
|
59
|
+
cases
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
return structuredClone(modelConfig);
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=normalize-model-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-model-config.js","sourceRoot":"","sources":["../../src/normalize/normalize-model-config.ts"],"names":[],"mappings":";;AASA,8DA+CC;AAED,4DA0BC;AA3ED,SAAgB,yBAAyB,CACvC,WAAsC;IAEtC,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjD,IACE,WAAW,CAAC,OAAO;YACnB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,SAAS,CAAC,EACtD,CAAC;YACD,KAAK,CAAC,OAAO,CAAC;gBACZ,EAAE,EAAE,SAAS;gBACb,WAAW,EAAE,eAAe,CAC1B,WAAW,CAAC,OAAO,CACM;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,OAAO,EAAE,uBAAuB;YAChC,KAAK;YACL,cAAc,EAAE,WAAW,CAAC,cAAc;gBACxC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,cAAc,CAAC;gBAC7C,CAAC,CAAC,SAAS;SACd,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO;YACL,OAAO,EAAE,uBAAuB;YAChC,KAAK,EAAE;gBACL;oBACE,EAAE,EAAE,SAAS;oBACb,WAAW,EAAE,eAAe,CAC1B,WAAW,CAAC,OAAO,CACM;iBAC5B;aACF;YACD,cAAc,EAAE,WAAW,CAAC,cAAc;gBACxC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,cAAc,CAAC;gBAC7C,CAAC,CAAC,SAAS;SACd,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,uBAAuB;QAChC,KAAK,EAAE,EAAE;KACV,CAAC;AACJ,CAAC;AAED,SAAgB,wBAAwB,CACtC,WAAiD;IAEjD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,OAAO,eAAe,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;QAC5B,MAAM,KAAK,GAA0B;YACnC;gBACE,EAAE,EAAE,SAAS;gBACb,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC,WAAW,CAAC;aACtD;SACF,CAAC;QACF,OAAO;YACL,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,KAAK;SACN,CAAC;IACJ,CAAC;IAED,OAAO,eAAe,CAAC,WAAW,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { isProfileChoiceKeyFormat } from "@x12i/ai-profiles";
|
|
2
|
+
export { isProfileChoiceKeyFormat };
|
|
3
|
+
/** All bundled profile/choice keys from @x12i/ai-profiles. */
|
|
4
|
+
export declare const KNOWN_PROFILE_CHOICE_KEYS: Set<string>;
|
|
5
|
+
/**
|
|
6
|
+
* Whether a key is a known valid profile/choice.
|
|
7
|
+
* Uses the bundled @x12i/ai-profiles registry unless a custom set is supplied (e.g. tests).
|
|
8
|
+
*/
|
|
9
|
+
export declare function isKnownProfileChoice(key: string, knownKeys?: Set<string>): boolean;
|
|
10
|
+
//# sourceMappingURL=known-profile-choices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"known-profile-choices.d.ts","sourceRoot":"","sources":["../../src/profile-choice/known-profile-choices.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,wBAAwB,EAEzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAEpC,8DAA8D;AAC9D,eAAO,MAAM,yBAAyB,aAIrC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACtB,OAAO,CAKT"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KNOWN_PROFILE_CHOICE_KEYS = exports.isProfileChoiceKeyFormat = void 0;
|
|
4
|
+
exports.isKnownProfileChoice = isKnownProfileChoice;
|
|
5
|
+
const ai_profiles_1 = require("@x12i/ai-profiles");
|
|
6
|
+
Object.defineProperty(exports, "isProfileChoiceKeyFormat", { enumerable: true, get: function () { return ai_profiles_1.isProfileChoiceKeyFormat; } });
|
|
7
|
+
/** All bundled profile/choice keys from @x12i/ai-profiles. */
|
|
8
|
+
exports.KNOWN_PROFILE_CHOICE_KEYS = new Set((0, ai_profiles_1.listRegistryProfileChoiceKeys)((0, ai_profiles_1.getBundledRegistry)()).map((ref) => (0, ai_profiles_1.formatProfileChoiceKey)(ref.profile, ref.choice)));
|
|
9
|
+
/**
|
|
10
|
+
* Whether a key is a known valid profile/choice.
|
|
11
|
+
* Uses the bundled @x12i/ai-profiles registry unless a custom set is supplied (e.g. tests).
|
|
12
|
+
*/
|
|
13
|
+
function isKnownProfileChoice(key, knownKeys) {
|
|
14
|
+
if (knownKeys) {
|
|
15
|
+
return knownKeys.has(key);
|
|
16
|
+
}
|
|
17
|
+
return (0, ai_profiles_1.isKnownProfileChoice)(key);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=known-profile-choices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"known-profile-choices.js","sourceRoot":"","sources":["../../src/profile-choice/known-profile-choices.ts"],"names":[],"mappings":";;;AAqBA,oDAQC;AA7BD,mDAM2B;AAElB,yGAJP,sCAAwB,OAIO;AAEjC,8DAA8D;AACjD,QAAA,yBAAyB,GAAG,IAAI,GAAG,CAC9C,IAAA,2CAA6B,EAAC,IAAA,gCAAkB,GAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9D,IAAA,oCAAsB,EAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAChD,CACF,CAAC;AAEF;;;GAGG;AACH,SAAgB,oBAAoB,CAClC,GAAW,EACX,SAAuB;IAEvB,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,IAAA,kCAAgC,EAAC,GAAG,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ExecutableGraphValidationError } from "../types/errors.js";
|
|
2
|
+
import type { AiModelSelection } from "../types/model-config.js";
|
|
3
|
+
export interface ProfileChoiceValidationOptions {
|
|
4
|
+
knownKeys?: Set<string>;
|
|
5
|
+
}
|
|
6
|
+
export declare function validateAiModelSelection(selection: unknown, path: string, options?: ProfileChoiceValidationOptions): ExecutableGraphValidationError[];
|
|
7
|
+
export declare function formatAiModelSelectionLabel(selection: AiModelSelection): string;
|
|
8
|
+
//# sourceMappingURL=validate-profile-choice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-profile-choice.d.ts","sourceRoot":"","sources":["../../src/profile-choice/validate-profile-choice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAOjE,MAAM,WAAW,8BAA8B;IAC7C,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACzB;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,8BAAmC,GAC3C,8BAA8B,EAAE,CAwFlC;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,CAS/E"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateAiModelSelection = validateAiModelSelection;
|
|
4
|
+
exports.formatAiModelSelectionLabel = formatAiModelSelectionLabel;
|
|
5
|
+
const utils_js_1 = require("../internal/utils.js");
|
|
6
|
+
const known_profile_choices_js_1 = require("./known-profile-choices.js");
|
|
7
|
+
function validateAiModelSelection(selection, path, options = {}) {
|
|
8
|
+
const errors = [];
|
|
9
|
+
if (!(0, utils_js_1.isRecord)(selection)) {
|
|
10
|
+
errors.push((0, utils_js_1.execError)("NODE_MODEL_CONFIG_INVALID", "AI model selection must be an object.", path));
|
|
11
|
+
return errors;
|
|
12
|
+
}
|
|
13
|
+
if (selection.kind === "profile") {
|
|
14
|
+
errors.push((0, utils_js_1.execError)("PROFILE_SELECTION_KIND_DEPRECATED", 'Use kind "profileChoice" with an explicit profile/choice key instead of kind "profile".', path));
|
|
15
|
+
return errors;
|
|
16
|
+
}
|
|
17
|
+
if (selection.kind === "profileChoice") {
|
|
18
|
+
if (typeof selection.key !== "string") {
|
|
19
|
+
errors.push((0, utils_js_1.execError)("PROFILE_CHOICE_KEY_FORMAT_INVALID", "profileChoice.key must be a string.", `${path}/key`));
|
|
20
|
+
return errors;
|
|
21
|
+
}
|
|
22
|
+
if (!(0, known_profile_choices_js_1.isProfileChoiceKeyFormat)(selection.key)) {
|
|
23
|
+
errors.push((0, utils_js_1.execError)("PROFILE_CHOICE_KEY_FORMAT_INVALID", `profileChoice key "${selection.key}" must use profile/choice format (e.g. vol/default).`, `${path}/key`));
|
|
24
|
+
return errors;
|
|
25
|
+
}
|
|
26
|
+
if (!(0, known_profile_choices_js_1.isKnownProfileChoice)(selection.key, options.knownKeys)) {
|
|
27
|
+
errors.push((0, utils_js_1.execError)("PROFILE_CHOICE_KEY_UNKNOWN", `Unknown profileChoice key "${selection.key}".`, `${path}/key`));
|
|
28
|
+
}
|
|
29
|
+
return errors;
|
|
30
|
+
}
|
|
31
|
+
if (selection.kind === "model") {
|
|
32
|
+
const modelId = typeof selection.modelId === "string"
|
|
33
|
+
? selection.modelId
|
|
34
|
+
: typeof selection.model === "string"
|
|
35
|
+
? selection.model
|
|
36
|
+
: undefined;
|
|
37
|
+
if (typeof selection.provider !== "string" || !modelId) {
|
|
38
|
+
errors.push((0, utils_js_1.execError)("NODE_MODEL_CONFIG_INVALID", 'Concrete model selection requires provider and modelId.', path));
|
|
39
|
+
}
|
|
40
|
+
return errors;
|
|
41
|
+
}
|
|
42
|
+
errors.push((0, utils_js_1.execError)("NODE_MODEL_CONFIG_INVALID", 'AI model selection kind must be "profileChoice" or "model".', path));
|
|
43
|
+
return errors;
|
|
44
|
+
}
|
|
45
|
+
function formatAiModelSelectionLabel(selection) {
|
|
46
|
+
if (selection.kind === "profileChoice") {
|
|
47
|
+
return `profileChoice:${selection.key}`;
|
|
48
|
+
}
|
|
49
|
+
if (selection.kind === "profile") {
|
|
50
|
+
return `profile:${selection.profile}`;
|
|
51
|
+
}
|
|
52
|
+
const modelId = selection.modelId ?? selection.model ?? "unknown";
|
|
53
|
+
return `${selection.provider}/${modelId}`;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=validate-profile-choice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-profile-choice.js","sourceRoot":"","sources":["../../src/profile-choice/validate-profile-choice.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DeterministicCaseContext } from "../types/case-condition.js";
|
|
2
|
+
import type { ExecutableGraphDocument } from "../types/executable-graph.js";
|
|
3
|
+
import type { GraphRuntimeObject } from "../types/runtime.js";
|
|
4
|
+
export declare function buildDeterministicCaseContext(doc: ExecutableGraphDocument, runtime?: Partial<GraphRuntimeObject> & {
|
|
5
|
+
environment?: DeterministicCaseContext["runtime"]["environment"];
|
|
6
|
+
flags?: Record<string, unknown>;
|
|
7
|
+
context?: Record<string, unknown>;
|
|
8
|
+
}): DeterministicCaseContext;
|
|
9
|
+
//# sourceMappingURL=build-deterministic-case-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-deterministic-case-context.d.ts","sourceRoot":"","sources":["../../src/resolution/build-deterministic-case-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,uBAAuB,EAC5B,OAAO,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG;IACtC,WAAW,CAAC,EAAE,wBAAwB,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,GACA,wBAAwB,CAqB1B"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildDeterministicCaseContext = buildDeterministicCaseContext;
|
|
4
|
+
function buildDeterministicCaseContext(doc, runtime) {
|
|
5
|
+
return {
|
|
6
|
+
runtime: {
|
|
7
|
+
mode: runtime?.mode,
|
|
8
|
+
environment: runtime?.environment,
|
|
9
|
+
job: runtime?.job
|
|
10
|
+
? {
|
|
11
|
+
agentId: runtime.job.agentId,
|
|
12
|
+
jobTypeId: runtime.job.jobTypeId
|
|
13
|
+
}
|
|
14
|
+
: undefined,
|
|
15
|
+
input: runtime?.input,
|
|
16
|
+
variables: runtime?.variables,
|
|
17
|
+
flags: runtime?.flags,
|
|
18
|
+
context: runtime?.context
|
|
19
|
+
},
|
|
20
|
+
graph: {
|
|
21
|
+
id: doc.id,
|
|
22
|
+
revision: doc.revision
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=build-deterministic-case-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-deterministic-case-context.js","sourceRoot":"","sources":["../../src/resolution/build-deterministic-case-context.ts"],"names":[],"mappings":";;AAIA,sEA4BC;AA5BD,SAAgB,6BAA6B,CAC3C,GAA4B,EAC5B,OAIC;IAED,OAAO;QACL,OAAO,EAAE;YACP,IAAI,EAAE,OAAO,EAAE,IAAI;YACnB,WAAW,EAAE,OAAO,EAAE,WAAW;YACjC,GAAG,EAAE,OAAO,EAAE,GAAG;gBACf,CAAC,CAAC;oBACE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;oBAC5B,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS;iBACjC;gBACH,CAAC,CAAC,SAAS;YACb,KAAK,EAAE,OAAO,EAAE,KAAK;YACrB,SAAS,EAAE,OAAO,EAAE,SAAS;YAC7B,KAAK,EAAE,OAAO,EAAE,KAAK;YACrB,OAAO,EAAE,OAAO,EAAE,OAAO;SAC1B;QACD,KAAK,EAAE;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ExecutableGraphDocument } from "../types/executable-graph.js";
|
|
2
|
+
import type { GraphModelConfig, RequiredAiModelTriplet } from "../types/model-config.js";
|
|
3
|
+
import type { DeterministicCaseContext, SelectedGraphModelCase } from "../types/case-condition.js";
|
|
4
|
+
import { selectGraphModelCase } from "../case-condition/select-graph-model-case.js";
|
|
5
|
+
export declare function resolveGraphModelConfig(doc: ExecutableGraphDocument, context?: DeterministicCaseContext): {
|
|
6
|
+
caseId: string;
|
|
7
|
+
triplet: RequiredAiModelTriplet;
|
|
8
|
+
modelConfig: GraphModelConfig;
|
|
9
|
+
selection: SelectedGraphModelCase;
|
|
10
|
+
};
|
|
11
|
+
export { selectGraphModelCase };
|
|
12
|
+
//# sourceMappingURL=resolve-graph-model-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-graph-model-config.d.ts","sourceRoot":"","sources":["../../src/resolution/resolve-graph-model-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAGpF,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,uBAAuB,EAC5B,OAAO,CAAC,EAAE,wBAAwB,GACjC;IACD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,sBAAsB,CAAC;IAChC,WAAW,EAAE,gBAAgB,CAAC;IAC9B,SAAS,EAAE,sBAAsB,CAAC;CACnC,CAoBA;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|