@nodetool-ai/node-sdk 0.7.0-rc.23 → 0.8.2
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 +34 -0
- package/dist/.nodetool-build-stamp +1 -0
- package/dist/base-node.d.ts +285 -14
- package/dist/base-node.d.ts.map +1 -1
- package/dist/base-node.js +359 -49
- package/dist/base-node.js.map +1 -1
- package/dist/class-name-to-title.d.ts +26 -0
- package/dist/class-name-to-title.d.ts.map +1 -0
- package/dist/class-name-to-title.js +59 -0
- package/dist/class-name-to-title.js.map +1 -0
- package/dist/code-analysis.d.ts +234 -0
- package/dist/code-analysis.d.ts.map +1 -0
- package/dist/code-analysis.js +919 -0
- package/dist/code-analysis.js.map +1 -0
- package/dist/code-body.d.ts +61 -0
- package/dist/code-body.d.ts.map +1 -0
- package/dist/code-body.js +288 -0
- package/dist/code-body.js.map +1 -0
- package/dist/code-node-validation.d.ts +67 -0
- package/dist/code-node-validation.d.ts.map +1 -0
- package/dist/code-node-validation.js +540 -0
- package/dist/code-node-validation.js.map +1 -0
- package/dist/content-card.d.ts +30 -0
- package/dist/content-card.d.ts.map +1 -0
- package/dist/content-card.js +68 -0
- package/dist/content-card.js.map +1 -0
- package/dist/correlation-validation.d.ts +19 -0
- package/dist/correlation-validation.d.ts.map +1 -0
- package/dist/correlation-validation.js +101 -0
- package/dist/correlation-validation.js.map +1 -0
- package/dist/cost-estimate.d.ts +244 -0
- package/dist/cost-estimate.d.ts.map +1 -0
- package/dist/cost-estimate.js +637 -0
- package/dist/cost-estimate.js.map +1 -0
- package/dist/decorators.d.ts.map +1 -1
- package/dist/decorators.js +4 -1
- package/dist/decorators.js.map +1 -1
- package/dist/docs/nodes.d.ts.map +1 -1
- package/dist/docs/nodes.js +3 -2
- package/dist/docs/nodes.js.map +1 -1
- package/dist/docs/overview.d.ts.map +1 -1
- package/dist/docs/overview.js +4 -3
- package/dist/docs/overview.js.map +1 -1
- package/dist/docs/workflows.d.ts.map +1 -1
- package/dist/docs/workflows.js +10 -9
- package/dist/docs/workflows.js.map +1 -1
- package/dist/field-classification.d.ts +31 -0
- package/dist/field-classification.d.ts.map +1 -0
- package/dist/field-classification.js +58 -0
- package/dist/field-classification.js.map +1 -0
- package/dist/graph-validation.d.ts +239 -0
- package/dist/graph-validation.d.ts.map +1 -0
- package/dist/graph-validation.js +1174 -0
- package/dist/graph-validation.js.map +1 -0
- package/dist/index.d.ts +27 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -1
- package/dist/index.js.map +1 -1
- package/dist/js-script-link.d.ts +53 -0
- package/dist/js-script-link.d.ts.map +1 -0
- package/dist/js-script-link.js +58 -0
- package/dist/js-script-link.js.map +1 -0
- package/dist/js-script-materialize.d.ts +52 -0
- package/dist/js-script-materialize.d.ts.map +1 -0
- package/dist/js-script-materialize.js +24 -0
- package/dist/js-script-materialize.js.map +1 -0
- package/dist/manifest-node-values.d.ts +106 -0
- package/dist/manifest-node-values.d.ts.map +1 -0
- package/dist/manifest-node-values.js +195 -0
- package/dist/manifest-node-values.js.map +1 -0
- package/dist/metadata.d.ts +75 -3
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +132 -49
- package/dist/metadata.js.map +1 -1
- package/dist/node-metadata.d.ts.map +1 -1
- package/dist/node-metadata.js +61 -56
- package/dist/node-metadata.js.map +1 -1
- package/dist/node-type-inventory.d.ts +51 -0
- package/dist/node-type-inventory.d.ts.map +1 -0
- package/dist/node-type-inventory.js +121 -0
- package/dist/node-type-inventory.js.map +1 -0
- package/dist/nodes/test-nodes.d.ts +77 -30
- package/dist/nodes/test-nodes.d.ts.map +1 -1
- package/dist/nodes/test-nodes.js +2 -34
- package/dist/nodes/test-nodes.js.map +1 -1
- package/dist/pack-loader.d.ts +202 -0
- package/dist/pack-loader.d.ts.map +1 -0
- package/dist/pack-loader.js +529 -0
- package/dist/pack-loader.js.map +1 -0
- package/dist/port-types.d.ts +15 -0
- package/dist/port-types.d.ts.map +1 -0
- package/dist/port-types.js +72 -0
- package/dist/port-types.js.map +1 -0
- package/dist/pricing-bundle.d.ts +83 -0
- package/dist/pricing-bundle.d.ts.map +1 -0
- package/dist/pricing-bundle.js +82 -0
- package/dist/pricing-bundle.js.map +1 -0
- package/dist/pricing-params.d.ts +59 -0
- package/dist/pricing-params.d.ts.map +1 -0
- package/dist/pricing-params.js +282 -0
- package/dist/pricing-params.js.map +1 -0
- package/dist/python-package-scan.d.ts +8 -0
- package/dist/python-package-scan.d.ts.map +1 -1
- package/dist/python-package-scan.js +21 -8
- package/dist/python-package-scan.js.map +1 -1
- package/dist/registry.d.ts +105 -2
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +403 -30
- package/dist/registry.js.map +1 -1
- package/dist/sandbox-bridge-packs.d.ts +39 -0
- package/dist/sandbox-bridge-packs.d.ts.map +1 -0
- package/dist/sandbox-bridge-packs.js +249 -0
- package/dist/sandbox-bridge-packs.js.map +1 -0
- package/dist/sandbox-catalog-host.d.ts +31 -0
- package/dist/sandbox-catalog-host.d.ts.map +1 -0
- package/dist/sandbox-catalog-host.js +78 -0
- package/dist/sandbox-catalog-host.js.map +1 -0
- package/dist/sandbox-module-catalog.d.ts +14 -0
- package/dist/sandbox-module-catalog.d.ts.map +1 -0
- package/dist/sandbox-module-catalog.js +402 -0
- package/dist/sandbox-module-catalog.js.map +1 -0
- package/dist/sandbox-npm-artifacts.d.ts +56 -0
- package/dist/sandbox-npm-artifacts.d.ts.map +1 -0
- package/dist/sandbox-npm-artifacts.js +17 -0
- package/dist/sandbox-npm-artifacts.js.map +1 -0
- package/dist/sandbox-pack-discovery.d.ts +93 -0
- package/dist/sandbox-pack-discovery.d.ts.map +1 -0
- package/dist/sandbox-pack-discovery.js +807 -0
- package/dist/sandbox-pack-discovery.js.map +1 -0
- package/dist/search.d.ts +29 -1
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +136 -9
- package/dist/search.js.map +1 -1
- package/dist/type-compat.d.ts +36 -0
- package/dist/type-compat.d.ts.map +1 -0
- package/dist/type-compat.js +98 -0
- package/dist/type-compat.js.map +1 -0
- package/dist/type-predicates.d.ts +25 -0
- package/dist/type-predicates.d.ts.map +1 -0
- package/dist/type-predicates.js +31 -0
- package/dist/type-predicates.js.map +1 -0
- package/dist/validation.d.ts +18 -0
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +70 -11
- package/dist/validation.js.map +1 -1
- package/dist/workflow-document-tools.d.ts +35 -0
- package/dist/workflow-document-tools.d.ts.map +1 -0
- package/dist/workflow-document-tools.js +402 -0
- package/dist/workflow-document-tools.js.map +1 -0
- package/dist/workflow-interface.d.ts +62 -0
- package/dist/workflow-interface.d.ts.map +1 -0
- package/dist/workflow-interface.js +351 -0
- package/dist/workflow-interface.js.map +1 -0
- package/package.json +67 -10
- package/dist/package-registry-client.d.ts +0 -12
- package/dist/package-registry-client.d.ts.map +0 -1
- package/dist/package-registry-client.js +0 -40
- package/dist/package-registry-client.js.map +0 -1
package/dist/decorators.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isCallable } from "./type-predicates.js";
|
|
1
2
|
const declaredPropsByClass = new WeakMap();
|
|
2
3
|
function getOrCreatePropMap(ctor) {
|
|
3
4
|
const existing = declaredPropsByClass.get(ctor);
|
|
@@ -8,9 +9,11 @@ function getOrCreatePropMap(ctor) {
|
|
|
8
9
|
return created;
|
|
9
10
|
}
|
|
10
11
|
function collectDeclaredProps(ctor) {
|
|
12
|
+
// Stryker disable next-line ArrayDeclaration: a bogus seed element is a string and declaredPropsByClass.get(string) is undefined → skipped, so the merged result is unchanged (equivalent mutant).
|
|
11
13
|
const chain = [];
|
|
12
14
|
let current = ctor;
|
|
13
|
-
|
|
15
|
+
// Stryker disable next-line ConditionalExpression: a constructor's prototype chain always terminates at Function.prototype via the right-hand guard, which carries no declared props, so neither guard can change the collected chain (equivalent).
|
|
16
|
+
while (isCallable(current) && current !== Function.prototype) {
|
|
14
17
|
chain.push(current);
|
|
15
18
|
current = Object.getPrototypeOf(current);
|
|
16
19
|
}
|
package/dist/decorators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAmBlD,MAAM,oBAAoB,GAAG,IAAI,OAAO,EAGrC,CAAC;AAEJ,SAAS,kBAAkB,CACzB,IAAc;IAEd,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoC,CAAC;IAC5D,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAc;IAC1C,mMAAmM;IACnM,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,IAAI,OAAO,GAAY,IAAI,CAAC;IAC5B,oPAAoP;IACpP,OAAO,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,KAAK,CAAC,OAAO,EAAE,CAAC;IAEhB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoC,CAAC;IAC3D,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACjD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,IAAc,EACd,IAAY,EACZ,OAAoB;IAEpB,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACrC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,IAAc;IAEd,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,OAAoB;IACvC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAQ,EAAE;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;QAChC,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/docs/nodes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/docs/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/docs/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAgCD,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAQ9D;AAiBD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAiC/D;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,YAAY,EAAE,EACrB,IAAI,GAAE,cAAmB,GACxB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAYrB"}
|
package/dist/docs/nodes.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isObjectLike, isString } from "../type-predicates.js";
|
|
1
2
|
function typeMetaToString(type) {
|
|
2
3
|
const args = (type.type_args ?? []).map(typeMetaToString).filter(Boolean);
|
|
3
4
|
if (args.length === 0)
|
|
@@ -15,10 +16,10 @@ function formatDefault(value) {
|
|
|
15
16
|
return "";
|
|
16
17
|
if (value === null)
|
|
17
18
|
return "null";
|
|
18
|
-
if (
|
|
19
|
+
if (isString(value)) {
|
|
19
20
|
return value.length > 40 ? `"${value.slice(0, 37)}..."` : `"${value}"`;
|
|
20
21
|
}
|
|
21
|
-
if (
|
|
22
|
+
if (isObjectLike(value)) {
|
|
22
23
|
try {
|
|
23
24
|
const s = JSON.stringify(value);
|
|
24
25
|
return s.length > 40 ? `${s.slice(0, 37)}...` : s;
|
package/dist/docs/nodes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/docs/nodes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/docs/nodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overview.d.ts","sourceRoot":"","sources":["../../src/docs/overview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"overview.d.ts","sourceRoot":"","sources":["../../src/docs/overview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,gBAAgB,CAAC;AAIpE,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAoBD,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,eAAe,EACpB,IAAI,GAAE,eAAoB,GACzB,MAAM,CA0DR"}
|
package/dist/docs/overview.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { slugifyNodeFilename } from "./nodes.js";
|
|
2
|
+
import { isRecord, isString } from "../type-predicates.js";
|
|
2
3
|
function shortDescription(text) {
|
|
3
4
|
if (!text)
|
|
4
5
|
return "";
|
|
@@ -6,12 +7,12 @@ function shortDescription(text) {
|
|
|
6
7
|
return firstLine.trim();
|
|
7
8
|
}
|
|
8
9
|
function exampleLabel(example) {
|
|
9
|
-
if (!
|
|
10
|
+
if (!isRecord(example)) {
|
|
10
11
|
return String(example);
|
|
11
12
|
}
|
|
12
13
|
const record = example;
|
|
13
|
-
return ((
|
|
14
|
-
(
|
|
14
|
+
return ((isString(record["name"]) && record["name"]) ||
|
|
15
|
+
(isString(record["id"]) && record["id"]) ||
|
|
15
16
|
"example");
|
|
16
17
|
}
|
|
17
18
|
export function generatePackageOverviewMarkdown(pkg, opts = {}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overview.js","sourceRoot":"","sources":["../../src/docs/overview.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"overview.js","sourceRoot":"","sources":["../../src/docs/overview.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/docs/workflows.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/docs/workflows.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAyDD,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,YAAY,GAAG,MAAM,CAgEjE;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,YAAY,EAAE,EACzB,IAAI,GAAE,kBAAuB,GAC5B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAerB"}
|
package/dist/docs/workflows.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
+
import { isNonEmptyString, isString } from "../type-predicates.js";
|
|
2
3
|
function asGraph(data) {
|
|
3
4
|
const graph = (data["graph"] ?? data);
|
|
4
5
|
const nodes = Array.isArray(graph["nodes"])
|
|
@@ -10,17 +11,17 @@ function asGraph(data) {
|
|
|
10
11
|
return { nodes, edges };
|
|
11
12
|
}
|
|
12
13
|
function filterIO(nodes, prefix) {
|
|
13
|
-
return nodes.filter((n) =>
|
|
14
|
+
return nodes.filter((n) => isString(n.type) && n.type.startsWith(prefix));
|
|
14
15
|
}
|
|
15
16
|
function slotName(node) {
|
|
16
|
-
const props =
|
|
17
|
-
if (
|
|
17
|
+
const props = node.properties ?? node.data ?? {};
|
|
18
|
+
if (isNonEmptyString(props["name"]))
|
|
18
19
|
return props["name"];
|
|
19
20
|
return node.id ?? (node.type ?? "unknown");
|
|
20
21
|
}
|
|
21
22
|
function slotDescription(node) {
|
|
22
|
-
const props =
|
|
23
|
-
if (
|
|
23
|
+
const props = node.properties ?? node.data ?? {};
|
|
24
|
+
if (isString(props["description"]))
|
|
24
25
|
return props["description"];
|
|
25
26
|
return "";
|
|
26
27
|
}
|
|
@@ -38,10 +39,10 @@ function slugifyWorkflowName(name) {
|
|
|
38
39
|
}
|
|
39
40
|
export function generateWorkflowMarkdown(wf) {
|
|
40
41
|
const { nodes, edges } = asGraph(wf.data);
|
|
41
|
-
const name =
|
|
42
|
+
const name = isString(wf.data["name"])
|
|
42
43
|
? wf.data["name"]
|
|
43
44
|
: path.basename(wf.path, ".json");
|
|
44
|
-
const description =
|
|
45
|
+
const description = isString(wf.data["description"]) ? wf.data["description"] : "";
|
|
45
46
|
const inputs = filterIO(nodes, "nodetool.input.");
|
|
46
47
|
const outputs = filterIO(nodes, "nodetool.output.");
|
|
47
48
|
const lines = [];
|
|
@@ -98,10 +99,10 @@ export function generateAllWorkflowDocs(workflows, opts = {}) {
|
|
|
98
99
|
for (const wf of workflows) {
|
|
99
100
|
if (opts.packageName) {
|
|
100
101
|
const pkg = wf.data["package_name"];
|
|
101
|
-
if (
|
|
102
|
+
if (isString(pkg) && pkg !== opts.packageName)
|
|
102
103
|
continue;
|
|
103
104
|
}
|
|
104
|
-
const name =
|
|
105
|
+
const name = isString(wf.data["name"])
|
|
105
106
|
? wf.data["name"]
|
|
106
107
|
: path.basename(wf.path, ".json");
|
|
107
108
|
const filename = `${slugifyWorkflowName(name)}.md`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/docs/workflows.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/docs/workflows.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared field-classification helper for node factories.
|
|
3
|
+
*
|
|
4
|
+
* Codegen and runtime factories (replicate, fal, kie) need to derive a
|
|
5
|
+
* node's `inlineFields` / `inputFields` from a flat list of properties.
|
|
6
|
+
* The classification rule is identical across providers:
|
|
7
|
+
*
|
|
8
|
+
* - Asset-ref types (image, video, audio, image_mask, model_3d, document,
|
|
9
|
+
* dataframe, tensor, and their list[] variants) -> `inputFields`
|
|
10
|
+
* (rendered as a handle-only port; wired from upstream).
|
|
11
|
+
* - Short-text properties (`str`, `text`) whose name matches a small set
|
|
12
|
+
* of "user types this directly" keys (prompt, query, code, url, ...)
|
|
13
|
+
* -> `inputFields` as well, so the prompt/text fields are exposed as
|
|
14
|
+
* handles on the node body. The editor is reached via the Inspector.
|
|
15
|
+
* - Everything else -> Inspector only.
|
|
16
|
+
*
|
|
17
|
+
* Callers pre-normalize their field shape (lowercasing propType, skipping
|
|
18
|
+
* sub-fields, etc.) and pass the filtered list to `classifyFields`.
|
|
19
|
+
*/
|
|
20
|
+
export interface ClassifyFieldInput {
|
|
21
|
+
/** Field/property name */
|
|
22
|
+
name: string;
|
|
23
|
+
/** Normalized prop type — callers should lowercase before passing */
|
|
24
|
+
propType: string;
|
|
25
|
+
}
|
|
26
|
+
export interface FieldClassification {
|
|
27
|
+
inlineFields: string[];
|
|
28
|
+
inputFields: string[];
|
|
29
|
+
}
|
|
30
|
+
export declare function classifyFields(fields: ReadonlyArray<ClassifyFieldInput>): FieldClassification;
|
|
31
|
+
//# sourceMappingURL=field-classification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-classification.d.ts","sourceRoot":"","sources":["../src/field-classification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AA6BH,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,CAAC,kBAAkB,CAAC,GACxC,mBAAmB,CAgBrB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared field-classification helper for node factories.
|
|
3
|
+
*
|
|
4
|
+
* Codegen and runtime factories (replicate, fal, kie) need to derive a
|
|
5
|
+
* node's `inlineFields` / `inputFields` from a flat list of properties.
|
|
6
|
+
* The classification rule is identical across providers:
|
|
7
|
+
*
|
|
8
|
+
* - Asset-ref types (image, video, audio, image_mask, model_3d, document,
|
|
9
|
+
* dataframe, tensor, and their list[] variants) -> `inputFields`
|
|
10
|
+
* (rendered as a handle-only port; wired from upstream).
|
|
11
|
+
* - Short-text properties (`str`, `text`) whose name matches a small set
|
|
12
|
+
* of "user types this directly" keys (prompt, query, code, url, ...)
|
|
13
|
+
* -> `inputFields` as well, so the prompt/text fields are exposed as
|
|
14
|
+
* handles on the node body. The editor is reached via the Inspector.
|
|
15
|
+
* - Everything else -> Inspector only.
|
|
16
|
+
*
|
|
17
|
+
* Callers pre-normalize their field shape (lowercasing propType, skipping
|
|
18
|
+
* sub-fields, etc.) and pass the filtered list to `classifyFields`.
|
|
19
|
+
*/
|
|
20
|
+
const ASSET_PROP_TYPES = new Set([
|
|
21
|
+
"image",
|
|
22
|
+
"video",
|
|
23
|
+
"audio",
|
|
24
|
+
"image_mask",
|
|
25
|
+
"model_3d",
|
|
26
|
+
"document",
|
|
27
|
+
"dataframe",
|
|
28
|
+
"tensor",
|
|
29
|
+
"list[image]",
|
|
30
|
+
"list[video]",
|
|
31
|
+
"list[audio]"
|
|
32
|
+
]);
|
|
33
|
+
const TEXT_PROP_TYPES = new Set(["str", "text"]);
|
|
34
|
+
const INLINE_TEXT_FIELD_NAMES = new Set([
|
|
35
|
+
"prompt",
|
|
36
|
+
"system_prompt",
|
|
37
|
+
"query",
|
|
38
|
+
"text",
|
|
39
|
+
"template",
|
|
40
|
+
"code",
|
|
41
|
+
"expression",
|
|
42
|
+
"url"
|
|
43
|
+
]);
|
|
44
|
+
export function classifyFields(fields) {
|
|
45
|
+
const inlineFields = [];
|
|
46
|
+
const inputFields = [];
|
|
47
|
+
for (const field of fields) {
|
|
48
|
+
if (ASSET_PROP_TYPES.has(field.propType)) {
|
|
49
|
+
inputFields.push(field.name);
|
|
50
|
+
}
|
|
51
|
+
else if (TEXT_PROP_TYPES.has(field.propType) &&
|
|
52
|
+
INLINE_TEXT_FIELD_NAMES.has(field.name)) {
|
|
53
|
+
inputFields.push(field.name);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return { inlineFields, inputFields };
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=field-classification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-classification.js","sourceRoot":"","sources":["../src/field-classification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC;IACpD,OAAO;IACP,OAAO;IACP,OAAO;IACP,YAAY;IACZ,UAAU;IACV,UAAU;IACV,WAAW;IACX,QAAQ;IACR,aAAa;IACb,aAAa;IACb,aAAa;CACd,CAAC,CAAC;AAEH,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAEtE,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAAC;IAC3D,QAAQ;IACR,eAAe;IACf,OAAO;IACP,MAAM;IACN,UAAU;IACV,MAAM;IACN,YAAY;IACZ,KAAK;CACN,CAAC,CAAC;AAcH,MAAM,UAAU,cAAc,CAC5B,MAAyC;IAEzC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;aAAM,IACL,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;YACnC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EACvC,CAAC;YACD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static workflow-graph validation.
|
|
3
|
+
*
|
|
4
|
+
* Checks a graph against the node registry WITHOUT executing it: unknown node
|
|
5
|
+
* types, duplicate ids, missing required / unselected-model properties, dangling
|
|
6
|
+
* edges, unknown edge handles, mis-spelled dynamic slot types, Code node bodies
|
|
7
|
+
* (syntax, inputs, outputs), and (best-effort) edge type mismatches. Catches the
|
|
8
|
+
* breakage that would otherwise only surface after a full workflow run.
|
|
9
|
+
*
|
|
10
|
+
* Takes a {@link GraphValidationRegistry} (the slice of NodeRegistry it needs)
|
|
11
|
+
* so it can be unit-tested with a fake and reused by the CLI and agent tools.
|
|
12
|
+
*/
|
|
13
|
+
import { type DynamicSlotMeta } from "@nodetool-ai/protocol";
|
|
14
|
+
import { type SandboxModuleCatalog } from "@nodetool-ai/runtime";
|
|
15
|
+
import { type JsScriptLink, type JsScriptLinkLookup } from "./js-script-link.js";
|
|
16
|
+
import type { NodeMetadata } from "./metadata.js";
|
|
17
|
+
import type { NodePropertyValidationIssue } from "./validation.js";
|
|
18
|
+
/** A node in either kernel (`properties`) or ReactFlow (`data`) shape. */
|
|
19
|
+
export interface GraphValidationNode {
|
|
20
|
+
id?: unknown;
|
|
21
|
+
type?: unknown;
|
|
22
|
+
properties?: Record<string, unknown>;
|
|
23
|
+
data?: Record<string, unknown>;
|
|
24
|
+
/** Inline values of dynamic input slots. */
|
|
25
|
+
dynamic_properties?: Record<string, unknown>;
|
|
26
|
+
/** Typed declarations for dynamic input slots (undeclared slot = `any`). */
|
|
27
|
+
dynamic_inputs?: Record<string, DynamicSlotMeta>;
|
|
28
|
+
/** Typed declarations of dynamic output slots (`{ name: TypeMetadata }`). */
|
|
29
|
+
dynamic_outputs?: unknown;
|
|
30
|
+
}
|
|
31
|
+
export interface GraphValidationEdge {
|
|
32
|
+
id?: unknown;
|
|
33
|
+
source?: unknown;
|
|
34
|
+
sourceHandle?: unknown;
|
|
35
|
+
source_handle?: unknown;
|
|
36
|
+
target?: unknown;
|
|
37
|
+
targetHandle?: unknown;
|
|
38
|
+
target_handle?: unknown;
|
|
39
|
+
/** `"control"` marks an edge the kernel excludes from data-flow analysis. */
|
|
40
|
+
edge_type?: unknown;
|
|
41
|
+
/** ReactFlow edge kind — `"control"` there too. */
|
|
42
|
+
type?: unknown;
|
|
43
|
+
data?: Record<string, unknown>;
|
|
44
|
+
}
|
|
45
|
+
export interface GraphValidationInput {
|
|
46
|
+
nodes?: GraphValidationNode[];
|
|
47
|
+
edges?: GraphValidationEdge[];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* `info` is below the `--warnings-as-errors` ratchet: it reports something
|
|
51
|
+
* worth knowing about a graph that is not a defect. An untyped dynamic slot
|
|
52
|
+
* is the motivating case — every workflow saved before typed slots has one
|
|
53
|
+
* per dynamic edge, and none of them are broken.
|
|
54
|
+
*/
|
|
55
|
+
export type GraphValidationSeverity = "error" | "warning" | "info";
|
|
56
|
+
export interface GraphValidationIssue {
|
|
57
|
+
severity: GraphValidationSeverity;
|
|
58
|
+
/**
|
|
59
|
+
* Stable category: "unknown_node" | "missing_id" | "duplicate_id" |
|
|
60
|
+
* "property" | "dangling_edge" | "unknown_handle" | "missing_handle" |
|
|
61
|
+
* "cycle" | "type_mismatch" | "fan_in" | "untyped_dynamic_slot" |
|
|
62
|
+
* "dynamic_type_mismatch" | "unknown_provider" | "missing_provider" |
|
|
63
|
+
* "unknown_model" | "missing_secret" | "slot_type_alias" | "invalid_graph", plus the `code_*`
|
|
64
|
+
* categories a Code node body produces (see {@link validateCodeNodeBody}).
|
|
65
|
+
*
|
|
66
|
+
* - "invalid_graph" (error): `nodes` or `edges` is not an array, so that half
|
|
67
|
+
* of the graph cannot be read at all.
|
|
68
|
+
* - "missing_id" (error): a node with no id — unaddressable by any edge.
|
|
69
|
+
* - "missing_handle" (error): an edge whose endpoints both exist but which
|
|
70
|
+
* names no source/target handle, so the kernel cannot route it.
|
|
71
|
+
* - "cycle" (error): a self-loop, or a cycle in the data subgraph the
|
|
72
|
+
* kernel's correlation analysis requires to be a DAG.
|
|
73
|
+
* - "untyped_dynamic_slot" (info): an edge targets a dynamic input that
|
|
74
|
+
* carries no `dynamic_inputs` declaration, so its type cannot be checked.
|
|
75
|
+
* Legacy graphs produce one per dynamic edge; never an error, and below
|
|
76
|
+
* the warnings-as-errors ratchet.
|
|
77
|
+
* - "dynamic_type_mismatch" (warning): an inline `dynamic_properties` value
|
|
78
|
+
* does not match its slot's declared type.
|
|
79
|
+
* - "missing_provider" (error): a model reference carries an id but no
|
|
80
|
+
* provider, so nothing can route it. See
|
|
81
|
+
* {@link collectModelSelectionIssues} for this and its two siblings.
|
|
82
|
+
* - "missing_required_model_input" (info): a node leaves a property blank
|
|
83
|
+
* that the model it selects declares required, so swapping the model
|
|
84
|
+
* breaks the graph. Only reported where the provider enumerates its
|
|
85
|
+
* requirements offline. `info` because the graph is not broken, it is
|
|
86
|
+
* model-specific — and because the manifests are generated, so a wrong
|
|
87
|
+
* `required` must not fail a build.
|
|
88
|
+
* - "missing_secret" (warning): a node declares a credential
|
|
89
|
+
* ({@link collectSecretRequirementSites}) that `options.availableSecrets`
|
|
90
|
+
* cannot resolve. Only reported when a set was supplied; warning because
|
|
91
|
+
* some declared keys are optional at call time, so absence does not prove
|
|
92
|
+
* a failed run.
|
|
93
|
+
* - "type_mismatch": a warning for declared properties (best-effort), an
|
|
94
|
+
* error when the target is a *declared* dynamic slot whose type the source
|
|
95
|
+
* output cannot satisfy.
|
|
96
|
+
*/
|
|
97
|
+
code: string;
|
|
98
|
+
nodeId?: string;
|
|
99
|
+
nodeType?: string;
|
|
100
|
+
edgeId?: string;
|
|
101
|
+
message: string;
|
|
102
|
+
}
|
|
103
|
+
export interface GraphValidationReport {
|
|
104
|
+
ok: boolean;
|
|
105
|
+
nodeCount: number;
|
|
106
|
+
edgeCount: number;
|
|
107
|
+
counts: {
|
|
108
|
+
errors: number;
|
|
109
|
+
warnings: number;
|
|
110
|
+
info: number;
|
|
111
|
+
};
|
|
112
|
+
issues: GraphValidationIssue[];
|
|
113
|
+
}
|
|
114
|
+
/** The slice of NodeRegistry the validator needs (kept narrow for testing). */
|
|
115
|
+
export interface GraphValidationRegistry {
|
|
116
|
+
has(nodeType: string): boolean;
|
|
117
|
+
getMetadata(nodeType: string): NodeMetadata | undefined;
|
|
118
|
+
validateNode(descriptor: {
|
|
119
|
+
id: string;
|
|
120
|
+
type: string;
|
|
121
|
+
properties?: Record<string, unknown>;
|
|
122
|
+
dynamic_inputs?: Record<string, DynamicSlotMeta>;
|
|
123
|
+
dynamic_properties?: Record<string, unknown>;
|
|
124
|
+
}, connectedHandles?: ReadonlySet<string>): NodePropertyValidationIssue[];
|
|
125
|
+
/**
|
|
126
|
+
* Provider ids the runtime can actually construct. Optional: a caller that
|
|
127
|
+
* cannot reach the provider registry (the browser) omits it and the
|
|
128
|
+
* provider check is skipped rather than guessing.
|
|
129
|
+
*/
|
|
130
|
+
listProviderIds?(): readonly string[];
|
|
131
|
+
/**
|
|
132
|
+
* Model ids `provider` is known to offer, or undefined when they cannot be
|
|
133
|
+
* enumerated without a network call. Undefined means "cannot tell", never
|
|
134
|
+
* "no such model" — a provider whose catalog is only reachable online must
|
|
135
|
+
* not have its models reported as absent. Optional for the same reason
|
|
136
|
+
* {@link listProviderIds} is: a caller that cannot reach the provider
|
|
137
|
+
* registry omits it and the check is skipped rather than guessed at.
|
|
138
|
+
*/
|
|
139
|
+
listModelIds?(provider: string, modelType: string): readonly string[] | undefined;
|
|
140
|
+
/**
|
|
141
|
+
* Text inputs `modelId` declares it will not run without, named the way the
|
|
142
|
+
* node's own properties are, or undefined when that cannot be established
|
|
143
|
+
* without a network call. Optional and silent-by-default like its two
|
|
144
|
+
* siblings above.
|
|
145
|
+
*/
|
|
146
|
+
listRequiredTextInputs?(provider: string, modelType: string, modelId: string): readonly string[] | undefined;
|
|
147
|
+
}
|
|
148
|
+
export declare function isEditorOnlyType(nodeType: string): boolean;
|
|
149
|
+
/** The slice of the registry {@link collectModelSelectionIssues} needs. */
|
|
150
|
+
export type ModelSelectionRegistry = Pick<GraphValidationRegistry, "listProviderIds" | "listModelIds">;
|
|
151
|
+
/**
|
|
152
|
+
* Every provider/model id in `graph` that the runtime cannot honour.
|
|
153
|
+
*
|
|
154
|
+
* Split out of {@link validateGraph} so a caller that wants only this — a run
|
|
155
|
+
* preflight, an agent about to save a graph — pays for a property walk instead
|
|
156
|
+
* of a full graph validation, and so all of them report the same thing. The
|
|
157
|
+
* checks stay in `validateGraph` too; this is the same code, not a second
|
|
158
|
+
* opinion.
|
|
159
|
+
*
|
|
160
|
+
* Both checks fail toward silence. An empty provider list means the registry
|
|
161
|
+
* could not be reached, not that zero providers exist; an undefined model list
|
|
162
|
+
* means the catalog is only knowable online. Neither is evidence of a bad id.
|
|
163
|
+
*/
|
|
164
|
+
export declare function collectModelSelectionIssues(graph: GraphValidationInput, registry: ModelSelectionRegistry): GraphValidationIssue[];
|
|
165
|
+
export interface SecretRequirementSite {
|
|
166
|
+
nodeId: string;
|
|
167
|
+
nodeType: string;
|
|
168
|
+
/** The credential name, e.g. `OPENAI_API_KEY`. */
|
|
169
|
+
key: string;
|
|
170
|
+
/** The declaration that introduced this credential requirement. */
|
|
171
|
+
source: "required_setting" | "code_secret";
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Every credential name a graph's nodes declare, deduplicated per node.
|
|
175
|
+
*
|
|
176
|
+
* Split out of {@link collectMissingSecretIssues} so a host can resolve the
|
|
177
|
+
* names against its store first and hand back only the availability set —
|
|
178
|
+
* validation stays synchronous and store-shaped knowledge stays with the
|
|
179
|
+
* host that owns it.
|
|
180
|
+
*/
|
|
181
|
+
export declare function collectSecretRequirementSites(graph: GraphValidationInput, registry: Pick<GraphValidationRegistry, "has" | "getMetadata">): SecretRequirementSite[];
|
|
182
|
+
/**
|
|
183
|
+
* Nodes whose declared credentials the supplied set cannot resolve.
|
|
184
|
+
*
|
|
185
|
+
* Both sources warn rather than error. A `required_settings` entry reaches
|
|
186
|
+
* `process()` as an empty string when absent, and some nodes treat that as
|
|
187
|
+
* optional at call time (a HuggingFace token widens the model catalog but is
|
|
188
|
+
* not the only way in), so absence does not prove a failed run. The Code
|
|
189
|
+
* node's list scopes reads rather than requiring them, for the same reason.
|
|
190
|
+
* The certain failure — a provider constructed without the credential its
|
|
191
|
+
* registration requires — is checked where the answer is certain, in the
|
|
192
|
+
* run preflight (`@nodetool-ai/execution`), against the provider registry.
|
|
193
|
+
*
|
|
194
|
+
* Fails toward silence like every catalog here: no set, nothing reported.
|
|
195
|
+
*/
|
|
196
|
+
export declare function collectMissingSecretIssues(graph: GraphValidationInput, registry: Pick<GraphValidationRegistry, "has" | "getMetadata">, availableSecrets?: ReadonlySet<string> | null): GraphValidationIssue[];
|
|
197
|
+
/**
|
|
198
|
+
* Distinct provider ids across every model reference in the graph, in walk
|
|
199
|
+
* order. The run preflight resolves each against the provider registry to
|
|
200
|
+
* refuse a graph whose credentials are missing before anything executes.
|
|
201
|
+
*/
|
|
202
|
+
export declare function collectModelProviders(graph: GraphValidationInput): string[];
|
|
203
|
+
export interface GraphValidationOptions {
|
|
204
|
+
/**
|
|
205
|
+
* Exact credential names resolvable from the host's secret store. When set,
|
|
206
|
+
* a node that declares a credential this set lacks is reported as a
|
|
207
|
+
* `missing_secret` warning: the node may still run (some keys are optional
|
|
208
|
+
* at call time), so it informs rather than refuses. Undefined or null means
|
|
209
|
+
* no store was reachable and nothing is reported — absence of evidence is
|
|
210
|
+
* not evidence of a missing key.
|
|
211
|
+
*/
|
|
212
|
+
availableSecrets?: ReadonlySet<string> | null;
|
|
213
|
+
/**
|
|
214
|
+
* Catalog the Code node bodies' imports resolve against. Defaults
|
|
215
|
+
* to the process-wide catalog the host installed; pass `null` to check the
|
|
216
|
+
* graph without one (a browser client, a test).
|
|
217
|
+
*/
|
|
218
|
+
sandboxModuleCatalog?: SandboxModuleCatalog | null;
|
|
219
|
+
/**
|
|
220
|
+
* Resolves a Code node's pinned `script` link. Validation is synchronous, so
|
|
221
|
+
* a caller that can reach the script store prefetches every link
|
|
222
|
+
* ({@link collectJsScriptLinks}) and passes a lookup over what it found.
|
|
223
|
+
*
|
|
224
|
+
* A link the lookup cannot answer for is a warning either way: the node runs
|
|
225
|
+
* the body it copied at link time, so a script that moved or disappeared
|
|
226
|
+
* costs freshness, not the run.
|
|
227
|
+
*/
|
|
228
|
+
jsScriptLookup?: JsScriptLinkLookup | null;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Every pinned script link a graph's Code nodes carry, deduplicated. A host
|
|
232
|
+
* that wants the linked-script checks loads these first and hands
|
|
233
|
+
* {@link validateGraph} a lookup over the result.
|
|
234
|
+
*/
|
|
235
|
+
export declare function collectJsScriptLinks(graph: GraphValidationInput): JsScriptLink[];
|
|
236
|
+
export declare function validateGraph(rawGraph: GraphValidationInput, registry: GraphValidationRegistry, options?: GraphValidationOptions): GraphValidationReport;
|
|
237
|
+
/** One-line summary headline for human output. */
|
|
238
|
+
export declare function validationHeadline(report: GraphValidationReport): string;
|
|
239
|
+
//# sourceMappingURL=graph-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-validation.d.ts","sourceRoot":"","sources":["../src/graph-validation.ts"],"names":[],"mappings":"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"}
|