@nodetool-ai/node-sdk 0.7.0-rc.11
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/dist/base-node.d.ts +141 -0
- package/dist/base-node.d.ts.map +1 -0
- package/dist/base-node.js +225 -0
- package/dist/base-node.js.map +1 -0
- package/dist/decorators.d.ts +19 -0
- package/dist/decorators.d.ts.map +1 -0
- package/dist/decorators.js +42 -0
- package/dist/decorators.js.map +1 -0
- package/dist/docs/index.d.ts +4 -0
- package/dist/docs/index.d.ts.map +1 -0
- package/dist/docs/index.js +4 -0
- package/dist/docs/index.js.map +1 -0
- package/dist/docs/nodes.d.ts +10 -0
- package/dist/docs/nodes.d.ts.map +1 -0
- package/dist/docs/nodes.js +99 -0
- package/dist/docs/nodes.js.map +1 -0
- package/dist/docs/overview.d.ts +6 -0
- package/dist/docs/overview.d.ts.map +1 -0
- package/dist/docs/overview.js +71 -0
- package/dist/docs/overview.js.map +1 -0
- package/dist/docs/workflows.d.ts +10 -0
- package/dist/docs/workflows.d.ts.map +1 -0
- package/dist/docs/workflows.js +112 -0
- package/dist/docs/workflows.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/metadata.d.ts +76 -0
- package/dist/metadata.d.ts.map +1 -0
- package/dist/metadata.js +247 -0
- package/dist/metadata.js.map +1 -0
- package/dist/node-metadata.d.ts +16 -0
- package/dist/node-metadata.d.ts.map +1 -0
- package/dist/node-metadata.js +266 -0
- package/dist/node-metadata.js.map +1 -0
- package/dist/nodes/test-nodes.d.ts +215 -0
- package/dist/nodes/test-nodes.d.ts.map +1 -0
- package/dist/nodes/test-nodes.js +436 -0
- package/dist/nodes/test-nodes.js.map +1 -0
- package/dist/package-registry-client.d.ts +12 -0
- package/dist/package-registry-client.d.ts.map +1 -0
- package/dist/package-registry-client.js +40 -0
- package/dist/package-registry-client.js.map +1 -0
- package/dist/python-package-scan.d.ts +45 -0
- package/dist/python-package-scan.d.ts.map +1 -0
- package/dist/python-package-scan.js +158 -0
- package/dist/python-package-scan.js.map +1 -0
- package/dist/registry.d.ts +55 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +188 -0
- package/dist/registry.js.map +1 -0
- package/dist/search.d.ts +58 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/search.js +127 -0
- package/dist/search.js.map +1 -0
- package/dist/validation.d.ts +63 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +138 -0
- package/dist/validation.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node-level validation.
|
|
3
|
+
*
|
|
4
|
+
* Validates that a node descriptor has all of its required properties set
|
|
5
|
+
* before a workflow is executed. Properties supplied via incoming edges are
|
|
6
|
+
* skipped (the value will be produced at runtime by an upstream node).
|
|
7
|
+
*
|
|
8
|
+
* Three checks are run for each declared property:
|
|
9
|
+
*
|
|
10
|
+
* 1. `required: true` — the value must be present and non-empty.
|
|
11
|
+
* 2. Model fields (`type` ending in `_model`) — if the value carries a
|
|
12
|
+
* `provider`, it must not be the sentinel `"empty"` and `id` must be
|
|
13
|
+
* a non-empty string. This catches the very common "user forgot to
|
|
14
|
+
* pick a model" case for LLM/agent nodes.
|
|
15
|
+
* 3. Required asset fields (`audio`, `image`, `video`, `document`,
|
|
16
|
+
* `dataframe`, `model_3d`, `folder`, `font`, `text`, `asset`) — when
|
|
17
|
+
* `required: true`, the value must carry a `uri`, `asset_id`,
|
|
18
|
+
* `temp_id`, or inline `data`. The default placeholder
|
|
19
|
+
* (`{ type: "audio", uri: "", asset_id: null, data: null }`) otherwise
|
|
20
|
+
* looks "non-empty" to the generic emptiness check, so without this
|
|
21
|
+
* branch a `required: true` audio/image input would slip through.
|
|
22
|
+
*
|
|
23
|
+
* The validator works against the @prop metadata on a node class, so any
|
|
24
|
+
* node that uses `@prop({ required: true, ... })`, a model-typed field, or
|
|
25
|
+
* an asset-typed field gets validation for free with no per-node code.
|
|
26
|
+
*/
|
|
27
|
+
import type { DeclaredPropertyMetadata } from "./decorators.js";
|
|
28
|
+
/** A single validation issue tied to a node property. */
|
|
29
|
+
export interface NodePropertyValidationIssue {
|
|
30
|
+
/** Node id, when known. */
|
|
31
|
+
nodeId?: string;
|
|
32
|
+
/** Node type, when known. */
|
|
33
|
+
nodeType?: string;
|
|
34
|
+
/** Property name that failed validation. */
|
|
35
|
+
property: string;
|
|
36
|
+
/** Human-readable message describing the failure. */
|
|
37
|
+
message: string;
|
|
38
|
+
}
|
|
39
|
+
export interface ValidateNodePropertiesOptions {
|
|
40
|
+
/**
|
|
41
|
+
* Set of property names that are connected to incoming data edges. These
|
|
42
|
+
* properties are produced at runtime, so their default value (often empty)
|
|
43
|
+
* should not be flagged as missing.
|
|
44
|
+
*/
|
|
45
|
+
connectedHandles?: ReadonlySet<string> | ReadonlyArray<string>;
|
|
46
|
+
/** Node id to attach to issues. */
|
|
47
|
+
nodeId?: string;
|
|
48
|
+
/** Node type to attach to issues. */
|
|
49
|
+
nodeType?: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Validate property values against declared @prop metadata.
|
|
53
|
+
*
|
|
54
|
+
* Properties whose name appears in `connectedHandles` are skipped because
|
|
55
|
+
* they will receive a value from an upstream node at runtime.
|
|
56
|
+
*/
|
|
57
|
+
export declare function validateNodeProperties(declared: ReadonlyArray<DeclaredPropertyMetadata>, properties: Record<string, unknown>, options?: ValidateNodePropertiesOptions): NodePropertyValidationIssue[];
|
|
58
|
+
/**
|
|
59
|
+
* Format a list of validation issues into a single human-readable message.
|
|
60
|
+
* Used by GraphValidationError when validation fails.
|
|
61
|
+
*/
|
|
62
|
+
export declare function formatValidationIssues(issues: ReadonlyArray<NodePropertyValidationIssue>): string;
|
|
63
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAEhE,yDAAyD;AACzD,MAAM,WAAW,2BAA2B;IAC1C,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,6BAA6B;IAC5C;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/D,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA4ED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,aAAa,CAAC,wBAAwB,CAAC,EACjD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,OAAO,GAAE,6BAAkC,GAC1C,2BAA2B,EAAE,CAsC/B;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,CAAC,2BAA2B,CAAC,GACjD,MAAM,CAWR"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
const MODEL_TYPE_SUFFIX = "_model";
|
|
2
|
+
const EMPTY_PROVIDER = "empty";
|
|
3
|
+
const ASSET_TYPES = new Set([
|
|
4
|
+
"asset",
|
|
5
|
+
"audio",
|
|
6
|
+
"image",
|
|
7
|
+
"video",
|
|
8
|
+
"text",
|
|
9
|
+
"document",
|
|
10
|
+
"dataframe",
|
|
11
|
+
"model_3d",
|
|
12
|
+
"folder",
|
|
13
|
+
"font"
|
|
14
|
+
]);
|
|
15
|
+
function isModelType(typeStr) {
|
|
16
|
+
if (!typeStr)
|
|
17
|
+
return false;
|
|
18
|
+
return typeStr.endsWith(MODEL_TYPE_SUFFIX);
|
|
19
|
+
}
|
|
20
|
+
function isAssetType(typeStr) {
|
|
21
|
+
if (!typeStr)
|
|
22
|
+
return false;
|
|
23
|
+
return ASSET_TYPES.has(typeStr);
|
|
24
|
+
}
|
|
25
|
+
function isUnsetAsset(value) {
|
|
26
|
+
if (value === null || value === undefined)
|
|
27
|
+
return true;
|
|
28
|
+
if (typeof value !== "object")
|
|
29
|
+
return false;
|
|
30
|
+
const v = value;
|
|
31
|
+
const uri = v.uri;
|
|
32
|
+
const assetId = v.asset_id;
|
|
33
|
+
const tempId = v.temp_id;
|
|
34
|
+
const data = v.data;
|
|
35
|
+
const hasUri = typeof uri === "string" && uri.length > 0;
|
|
36
|
+
const hasAssetId = typeof assetId === "string" && assetId.length > 0;
|
|
37
|
+
const hasTempId = typeof tempId === "string" && tempId.length > 0;
|
|
38
|
+
const hasData = data != null &&
|
|
39
|
+
!(typeof data === "string" && data.length === 0) &&
|
|
40
|
+
!(Array.isArray(data) && data.length === 0);
|
|
41
|
+
return !hasUri && !hasAssetId && !hasTempId && !hasData;
|
|
42
|
+
}
|
|
43
|
+
function isEmptyValue(value) {
|
|
44
|
+
if (value === null || value === undefined)
|
|
45
|
+
return true;
|
|
46
|
+
if (typeof value === "string")
|
|
47
|
+
return value.length === 0;
|
|
48
|
+
if (Array.isArray(value))
|
|
49
|
+
return value.length === 0;
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
function isUnsetModel(value) {
|
|
53
|
+
if (value === null || value === undefined)
|
|
54
|
+
return true;
|
|
55
|
+
if (typeof value !== "object")
|
|
56
|
+
return false;
|
|
57
|
+
const v = value;
|
|
58
|
+
const provider = v.provider;
|
|
59
|
+
const id = v.id;
|
|
60
|
+
// A bare placeholder like `{ type: "language_model" }` (no provider, no id)
|
|
61
|
+
// is exactly the unselected default we want to flag.
|
|
62
|
+
if (provider == null)
|
|
63
|
+
return true;
|
|
64
|
+
if (typeof provider === "string" && provider === EMPTY_PROVIDER)
|
|
65
|
+
return true;
|
|
66
|
+
if (id == null)
|
|
67
|
+
return true;
|
|
68
|
+
if (typeof id === "string" && id.length === 0)
|
|
69
|
+
return true;
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
function toSet(handles) {
|
|
73
|
+
if (!handles)
|
|
74
|
+
return new Set();
|
|
75
|
+
if (handles instanceof Set)
|
|
76
|
+
return handles;
|
|
77
|
+
return new Set(handles);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Validate property values against declared @prop metadata.
|
|
81
|
+
*
|
|
82
|
+
* Properties whose name appears in `connectedHandles` are skipped because
|
|
83
|
+
* they will receive a value from an upstream node at runtime.
|
|
84
|
+
*/
|
|
85
|
+
export function validateNodeProperties(declared, properties, options = {}) {
|
|
86
|
+
const connected = toSet(options.connectedHandles);
|
|
87
|
+
const issues = [];
|
|
88
|
+
for (const { name, options: meta } of declared) {
|
|
89
|
+
if (connected.has(name))
|
|
90
|
+
continue;
|
|
91
|
+
const value = properties[name];
|
|
92
|
+
const typeStr = meta.type;
|
|
93
|
+
if (meta.required) {
|
|
94
|
+
// Asset-typed fields hold object placeholders that pass the generic
|
|
95
|
+
// emptiness check, so route them through the asset-specific check.
|
|
96
|
+
const isAsset = isAssetType(typeStr);
|
|
97
|
+
const empty = isAsset ? isUnsetAsset(value) : isEmptyValue(value);
|
|
98
|
+
if (empty) {
|
|
99
|
+
issues.push({
|
|
100
|
+
nodeId: options.nodeId,
|
|
101
|
+
nodeType: options.nodeType,
|
|
102
|
+
property: name,
|
|
103
|
+
message: isAsset
|
|
104
|
+
? `Property "${name}" requires a ${typeStr} (asset, uri, or inline data)`
|
|
105
|
+
: `Required property "${name}" is not set`
|
|
106
|
+
});
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (isModelType(typeStr) && isUnsetModel(value)) {
|
|
111
|
+
issues.push({
|
|
112
|
+
nodeId: options.nodeId,
|
|
113
|
+
nodeType: options.nodeType,
|
|
114
|
+
property: name,
|
|
115
|
+
message: `Property "${name}" requires a ${typeStr} to be selected (provider and model id)`
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return issues;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Format a list of validation issues into a single human-readable message.
|
|
123
|
+
* Used by GraphValidationError when validation fails.
|
|
124
|
+
*/
|
|
125
|
+
export function formatValidationIssues(issues) {
|
|
126
|
+
if (issues.length === 0)
|
|
127
|
+
return "";
|
|
128
|
+
const lines = issues.map((issue) => {
|
|
129
|
+
const where = issue.nodeId
|
|
130
|
+
? ` on node "${issue.nodeId}"${issue.nodeType ? ` (${issue.nodeType})` : ""}`
|
|
131
|
+
: issue.nodeType
|
|
132
|
+
? ` on ${issue.nodeType}`
|
|
133
|
+
: "";
|
|
134
|
+
return ` - ${issue.message}${where}`;
|
|
135
|
+
});
|
|
136
|
+
return `Graph validation failed with ${issues.length} issue(s):\n${lines.join("\n")}`;
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nodetool-ai/node-sdk",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "0.7.0-rc.11",
|
|
5
|
+
"description": "Node SDK: BaseNode, NodeRegistry, and example nodes",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "node ../../scripts/build-typescript-workspace.mjs",
|
|
10
|
+
"test": "vitest run",
|
|
11
|
+
"test:metadata": "vitest run tests/metadata.test.ts",
|
|
12
|
+
"test:watch": "vitest",
|
|
13
|
+
"lint": "tsc --noEmit"
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@nodetool-ai/kernel": "^0.7.0-rc.11",
|
|
17
|
+
"@nodetool-ai/protocol": "^0.7.0-rc.11",
|
|
18
|
+
"@nodetool-ai/runtime": "^0.7.0-rc.11"
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@types/node": "^22.0.0",
|
|
22
|
+
"typescript": "^5.7.2",
|
|
23
|
+
"vitest": "^4.1.2"
|
|
24
|
+
},
|
|
25
|
+
"exports": {
|
|
26
|
+
".": {
|
|
27
|
+
"types": "./dist/index.d.ts",
|
|
28
|
+
"import": "./dist/index.js",
|
|
29
|
+
"default": "./dist/index.js"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"license": "MIT",
|
|
33
|
+
"repository": {
|
|
34
|
+
"type": "git",
|
|
35
|
+
"url": "https://github.com/nodetool-ai/nodetool.git",
|
|
36
|
+
"directory": "packages/node-sdk"
|
|
37
|
+
},
|
|
38
|
+
"homepage": "https://nodetool.ai",
|
|
39
|
+
"bugs": {
|
|
40
|
+
"url": "https://github.com/nodetool-ai/nodetool/issues"
|
|
41
|
+
},
|
|
42
|
+
"publishConfig": {
|
|
43
|
+
"access": "public"
|
|
44
|
+
},
|
|
45
|
+
"files": [
|
|
46
|
+
"dist",
|
|
47
|
+
"README.md"
|
|
48
|
+
]
|
|
49
|
+
}
|