@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.
Files changed (158) hide show
  1. package/README.md +34 -0
  2. package/dist/.nodetool-build-stamp +1 -0
  3. package/dist/base-node.d.ts +285 -14
  4. package/dist/base-node.d.ts.map +1 -1
  5. package/dist/base-node.js +359 -49
  6. package/dist/base-node.js.map +1 -1
  7. package/dist/class-name-to-title.d.ts +26 -0
  8. package/dist/class-name-to-title.d.ts.map +1 -0
  9. package/dist/class-name-to-title.js +59 -0
  10. package/dist/class-name-to-title.js.map +1 -0
  11. package/dist/code-analysis.d.ts +234 -0
  12. package/dist/code-analysis.d.ts.map +1 -0
  13. package/dist/code-analysis.js +919 -0
  14. package/dist/code-analysis.js.map +1 -0
  15. package/dist/code-body.d.ts +61 -0
  16. package/dist/code-body.d.ts.map +1 -0
  17. package/dist/code-body.js +288 -0
  18. package/dist/code-body.js.map +1 -0
  19. package/dist/code-node-validation.d.ts +67 -0
  20. package/dist/code-node-validation.d.ts.map +1 -0
  21. package/dist/code-node-validation.js +540 -0
  22. package/dist/code-node-validation.js.map +1 -0
  23. package/dist/content-card.d.ts +30 -0
  24. package/dist/content-card.d.ts.map +1 -0
  25. package/dist/content-card.js +68 -0
  26. package/dist/content-card.js.map +1 -0
  27. package/dist/correlation-validation.d.ts +19 -0
  28. package/dist/correlation-validation.d.ts.map +1 -0
  29. package/dist/correlation-validation.js +101 -0
  30. package/dist/correlation-validation.js.map +1 -0
  31. package/dist/cost-estimate.d.ts +244 -0
  32. package/dist/cost-estimate.d.ts.map +1 -0
  33. package/dist/cost-estimate.js +637 -0
  34. package/dist/cost-estimate.js.map +1 -0
  35. package/dist/decorators.d.ts.map +1 -1
  36. package/dist/decorators.js +4 -1
  37. package/dist/decorators.js.map +1 -1
  38. package/dist/docs/nodes.d.ts.map +1 -1
  39. package/dist/docs/nodes.js +3 -2
  40. package/dist/docs/nodes.js.map +1 -1
  41. package/dist/docs/overview.d.ts.map +1 -1
  42. package/dist/docs/overview.js +4 -3
  43. package/dist/docs/overview.js.map +1 -1
  44. package/dist/docs/workflows.d.ts.map +1 -1
  45. package/dist/docs/workflows.js +10 -9
  46. package/dist/docs/workflows.js.map +1 -1
  47. package/dist/field-classification.d.ts +31 -0
  48. package/dist/field-classification.d.ts.map +1 -0
  49. package/dist/field-classification.js +58 -0
  50. package/dist/field-classification.js.map +1 -0
  51. package/dist/graph-validation.d.ts +239 -0
  52. package/dist/graph-validation.d.ts.map +1 -0
  53. package/dist/graph-validation.js +1174 -0
  54. package/dist/graph-validation.js.map +1 -0
  55. package/dist/index.d.ts +27 -2
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +29 -1
  58. package/dist/index.js.map +1 -1
  59. package/dist/js-script-link.d.ts +53 -0
  60. package/dist/js-script-link.d.ts.map +1 -0
  61. package/dist/js-script-link.js +58 -0
  62. package/dist/js-script-link.js.map +1 -0
  63. package/dist/js-script-materialize.d.ts +52 -0
  64. package/dist/js-script-materialize.d.ts.map +1 -0
  65. package/dist/js-script-materialize.js +24 -0
  66. package/dist/js-script-materialize.js.map +1 -0
  67. package/dist/manifest-node-values.d.ts +106 -0
  68. package/dist/manifest-node-values.d.ts.map +1 -0
  69. package/dist/manifest-node-values.js +195 -0
  70. package/dist/manifest-node-values.js.map +1 -0
  71. package/dist/metadata.d.ts +75 -3
  72. package/dist/metadata.d.ts.map +1 -1
  73. package/dist/metadata.js +132 -49
  74. package/dist/metadata.js.map +1 -1
  75. package/dist/node-metadata.d.ts.map +1 -1
  76. package/dist/node-metadata.js +61 -56
  77. package/dist/node-metadata.js.map +1 -1
  78. package/dist/node-type-inventory.d.ts +51 -0
  79. package/dist/node-type-inventory.d.ts.map +1 -0
  80. package/dist/node-type-inventory.js +121 -0
  81. package/dist/node-type-inventory.js.map +1 -0
  82. package/dist/nodes/test-nodes.d.ts +77 -30
  83. package/dist/nodes/test-nodes.d.ts.map +1 -1
  84. package/dist/nodes/test-nodes.js +2 -34
  85. package/dist/nodes/test-nodes.js.map +1 -1
  86. package/dist/pack-loader.d.ts +202 -0
  87. package/dist/pack-loader.d.ts.map +1 -0
  88. package/dist/pack-loader.js +529 -0
  89. package/dist/pack-loader.js.map +1 -0
  90. package/dist/port-types.d.ts +15 -0
  91. package/dist/port-types.d.ts.map +1 -0
  92. package/dist/port-types.js +72 -0
  93. package/dist/port-types.js.map +1 -0
  94. package/dist/pricing-bundle.d.ts +83 -0
  95. package/dist/pricing-bundle.d.ts.map +1 -0
  96. package/dist/pricing-bundle.js +82 -0
  97. package/dist/pricing-bundle.js.map +1 -0
  98. package/dist/pricing-params.d.ts +59 -0
  99. package/dist/pricing-params.d.ts.map +1 -0
  100. package/dist/pricing-params.js +282 -0
  101. package/dist/pricing-params.js.map +1 -0
  102. package/dist/python-package-scan.d.ts +8 -0
  103. package/dist/python-package-scan.d.ts.map +1 -1
  104. package/dist/python-package-scan.js +21 -8
  105. package/dist/python-package-scan.js.map +1 -1
  106. package/dist/registry.d.ts +105 -2
  107. package/dist/registry.d.ts.map +1 -1
  108. package/dist/registry.js +403 -30
  109. package/dist/registry.js.map +1 -1
  110. package/dist/sandbox-bridge-packs.d.ts +39 -0
  111. package/dist/sandbox-bridge-packs.d.ts.map +1 -0
  112. package/dist/sandbox-bridge-packs.js +249 -0
  113. package/dist/sandbox-bridge-packs.js.map +1 -0
  114. package/dist/sandbox-catalog-host.d.ts +31 -0
  115. package/dist/sandbox-catalog-host.d.ts.map +1 -0
  116. package/dist/sandbox-catalog-host.js +78 -0
  117. package/dist/sandbox-catalog-host.js.map +1 -0
  118. package/dist/sandbox-module-catalog.d.ts +14 -0
  119. package/dist/sandbox-module-catalog.d.ts.map +1 -0
  120. package/dist/sandbox-module-catalog.js +402 -0
  121. package/dist/sandbox-module-catalog.js.map +1 -0
  122. package/dist/sandbox-npm-artifacts.d.ts +56 -0
  123. package/dist/sandbox-npm-artifacts.d.ts.map +1 -0
  124. package/dist/sandbox-npm-artifacts.js +17 -0
  125. package/dist/sandbox-npm-artifacts.js.map +1 -0
  126. package/dist/sandbox-pack-discovery.d.ts +93 -0
  127. package/dist/sandbox-pack-discovery.d.ts.map +1 -0
  128. package/dist/sandbox-pack-discovery.js +807 -0
  129. package/dist/sandbox-pack-discovery.js.map +1 -0
  130. package/dist/search.d.ts +29 -1
  131. package/dist/search.d.ts.map +1 -1
  132. package/dist/search.js +136 -9
  133. package/dist/search.js.map +1 -1
  134. package/dist/type-compat.d.ts +36 -0
  135. package/dist/type-compat.d.ts.map +1 -0
  136. package/dist/type-compat.js +98 -0
  137. package/dist/type-compat.js.map +1 -0
  138. package/dist/type-predicates.d.ts +25 -0
  139. package/dist/type-predicates.d.ts.map +1 -0
  140. package/dist/type-predicates.js +31 -0
  141. package/dist/type-predicates.js.map +1 -0
  142. package/dist/validation.d.ts +18 -0
  143. package/dist/validation.d.ts.map +1 -1
  144. package/dist/validation.js +70 -11
  145. package/dist/validation.js.map +1 -1
  146. package/dist/workflow-document-tools.d.ts +35 -0
  147. package/dist/workflow-document-tools.d.ts.map +1 -0
  148. package/dist/workflow-document-tools.js +402 -0
  149. package/dist/workflow-document-tools.js.map +1 -0
  150. package/dist/workflow-interface.d.ts +62 -0
  151. package/dist/workflow-interface.d.ts.map +1 -0
  152. package/dist/workflow-interface.js +351 -0
  153. package/dist/workflow-interface.js.map +1 -0
  154. package/package.json +67 -10
  155. package/dist/package-registry-client.d.ts +0 -12
  156. package/dist/package-registry-client.d.ts.map +0 -1
  157. package/dist/package-registry-client.js +0 -40
  158. package/dist/package-registry-client.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-pack-discovery.js","sourceRoot":"","sources":["../src/sandbox-pack-discovery.ts"],"names":[],"mappings":"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"}
package/dist/search.d.ts CHANGED
@@ -31,7 +31,9 @@ export interface ScoreOptions {
31
31
  includeProviderNodes?: boolean;
32
32
  /**
33
33
  * Restrict to nodes whose namespace starts with this prefix.
34
- * Applied as a hard filter before scoring.
34
+ * Applied as a hard filter before scoring. An explicit prefix also lifts
35
+ * the provider-node exclusion — asking for `openai.` implies the caller
36
+ * wants provider nodes.
35
37
  */
36
38
  namespacePrefix?: string;
37
39
  }
@@ -53,6 +55,32 @@ export interface ScoredNode<T extends NodeMetadata = NodeMetadata> {
53
55
  * Score and rank a list of node metadata against search terms.
54
56
  * Returns nodes with score > 0, sorted by score descending; ties broken
55
57
  * alphabetically on `node_type` for deterministic output.
58
+ *
59
+ * For repeated searches over a stable node set, build a {@link NodeSearchIndex}
60
+ * once and call its `rank` method instead — this function rebuilds the
61
+ * per-field lowercasing/tokenization on every call.
56
62
  */
57
63
  export declare function rankNodeMetadata<T extends NodeMetadata>(nodes: readonly T[], terms: readonly string[], options?: ScoreOptions): ScoredNode<T>[];
64
+ /**
65
+ * Precomputed search index over a fixed set of node metadata.
66
+ *
67
+ * Building the index lowercases and tokenizes each node's title, node_type,
68
+ * namespace, and description once; `rank` then reuses that work across every
69
+ * query. The ranking is identical to {@link rankNodeMetadata} — same field
70
+ * weights, exact-token bonus, core multiplier, and tie-break — so the indexed
71
+ * path is a drop-in for the inner loop of repeated node searches (e.g. the
72
+ * graph planner, which searches the same registry many times per build).
73
+ */
74
+ export declare class NodeSearchIndex<T extends NodeMetadata = NodeMetadata> {
75
+ private readonly entries;
76
+ constructor(nodes: readonly T[]);
77
+ /** Number of nodes covered by this index. */
78
+ get size(): number;
79
+ /**
80
+ * Rank the indexed nodes against `terms`. Equivalent to
81
+ * `rankNodeMetadata(nodes, terms, options)` but without rebuilding the
82
+ * per-field projections on each call.
83
+ */
84
+ rank(terms: readonly string[], options?: ScoreOptions): ScoredNode<T>[];
85
+ }
58
86
  //# sourceMappingURL=search.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAgBhD,CAAC;AAIF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,CAQ5E;AAED,MAAM,WAAW,YAAY;IAC3B,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AA2BD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,GAAE,YAAiB,GACzB,MAAM,CAyBR;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY;IAC/D,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,YAAY,EACrD,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,GAAE,YAAiB,GACzB,UAAU,CAAC,CAAC,CAAC,EAAE,CAWjB"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAgBhD,CAAC;AAIF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,CAS5E;AAED,MAAM,WAAW,YAAY;IAC3B,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AA4BD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,GAAE,YAAiB,GACzB,MAAM,CAyCR;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY;IAC/D,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,YAAY,EACrD,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,GAAE,YAAiB,GACzB,UAAU,CAAC,CAAC,CAAC,EAAE,CAWjB;AAoCD;;;;;;;;;GASG;AACH,qBAAa,eAAe,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY;IAChE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IAEpD,YAAY,KAAK,EAAE,SAAS,CAAC,EAAE,EAY9B;IAED,6CAA6C;IAC7C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAuD1E;CACF"}
package/dist/search.js CHANGED
@@ -28,7 +28,7 @@ export const PROVIDER_NAMESPACES = [
28
28
  "fal",
29
29
  "replicate",
30
30
  "kie",
31
- "comfyui",
31
+ "atlascloud",
32
32
  "apify",
33
33
  "messaging",
34
34
  "search"
@@ -46,6 +46,7 @@ export function namespaceClass(namespace) {
46
46
  if (namespace.startsWith("nodetool.") || namespace === "nodetool") {
47
47
  return "core";
48
48
  }
49
+ // Stryker disable next-line StringLiteral: String.split always returns a non-empty array, so [0] is never undefined and the ?? "" never fires (equivalent).
49
50
  const root = namespace.split(".")[0] ?? "";
50
51
  if (PROVIDER_NAMESPACE_SET.has(root))
51
52
  return "provider";
@@ -67,6 +68,7 @@ function fieldScore(field, term, weight) {
67
68
  return 0;
68
69
  let score = weight;
69
70
  // Exact-token bonus: term appears as a whole word/segment.
71
+ // Stryker disable next-line Regex,MethodExpression: dropping the + (or the .filter(Boolean)) only changes whether empty tokens appear, and empty tokens never match a non-empty term, so includes(term) is unchanged (equivalent).
70
72
  const tokens = lower.split(/[\s._\-/]+/).filter(Boolean);
71
73
  if (tokens.includes(term))
72
74
  score += weight * EXACT_TOKEN_BONUS;
@@ -82,25 +84,38 @@ function fieldScore(field, term, weight) {
82
84
  * whole token. Core (`nodetool.*`) namespaces get a 1.5× multiplier.
83
85
  */
84
86
  export function scoreNodeMetadata(meta, terms, options = {}) {
87
+ // Stryker disable next-line ConditionalExpression: with no terms the loop below runs zero times, leaving raw === 0 → returns 0 anyway (equivalent).
85
88
  if (terms.length === 0)
86
89
  return 0;
87
90
  if (options.namespacePrefix &&
91
+ // Stryker disable next-line StringLiteral: the ?? "" default only changes the receiver of startsWith for an undefined namespace; no realistic prefix distinguishes "" from the seeded literal (equivalent).
88
92
  !(meta.namespace ?? "").startsWith(options.namespacePrefix)) {
89
93
  return 0;
90
94
  }
91
95
  const cls = namespaceClass(meta.namespace);
92
- if (cls === "provider" && !options.includeProviderNodes)
96
+ // A namespacePrefix is an explicit request for whatever lives under that
97
+ // prefix, so it overrides the default provider-node exclusion.
98
+ if (cls === "provider" &&
99
+ !options.includeProviderNodes &&
100
+ !options.namespacePrefix) {
93
101
  return 0;
102
+ }
94
103
  let raw = 0;
104
+ // Each search term may itself be a multi-word phrase (agents often pass
105
+ // ["text input string"] rather than ["text","input","string"]). Match on
106
+ // individual words so a phrase doesn't collapse to a single substring probe
107
+ // that almost never hits — this is the difference between 0 and many results.
95
108
  for (const rawTerm of terms) {
96
- const term = rawTerm.toLowerCase();
97
- if (!term)
98
- continue;
99
- raw += fieldScore(meta.title, term, FIELD_WEIGHTS.title);
100
- raw += fieldScore(meta.node_type, term, FIELD_WEIGHTS.nodeType);
101
- raw += fieldScore(meta.namespace, term, FIELD_WEIGHTS.namespace);
102
- raw += fieldScore(meta.description, term, FIELD_WEIGHTS.description);
109
+ for (const term of rawTerm.toLowerCase().split(/\s+/)) {
110
+ if (!term)
111
+ continue;
112
+ raw += fieldScore(meta.title, term, FIELD_WEIGHTS.title);
113
+ raw += fieldScore(meta.node_type, term, FIELD_WEIGHTS.nodeType);
114
+ raw += fieldScore(meta.namespace, term, FIELD_WEIGHTS.namespace);
115
+ raw += fieldScore(meta.description, term, FIELD_WEIGHTS.description);
116
+ }
103
117
  }
118
+ // Stryker disable next-line ConditionalExpression: when raw is 0 the core branch returns 0 * 1.5 === 0, so the guard cannot change the result (equivalent).
104
119
  if (raw === 0)
105
120
  return 0;
106
121
  return cls === "core" ? raw * CORE_MULTIPLIER : raw;
@@ -109,6 +124,10 @@ export function scoreNodeMetadata(meta, terms, options = {}) {
109
124
  * Score and rank a list of node metadata against search terms.
110
125
  * Returns nodes with score > 0, sorted by score descending; ties broken
111
126
  * alphabetically on `node_type` for deterministic output.
127
+ *
128
+ * For repeated searches over a stable node set, build a {@link NodeSearchIndex}
129
+ * once and call its `rank` method instead — this function rebuilds the
130
+ * per-field lowercasing/tokenization on every call.
112
131
  */
113
132
  export function rankNodeMetadata(nodes, terms, options = {}) {
114
133
  const scored = [];
@@ -124,4 +143,112 @@ export function rankNodeMetadata(nodes, terms, options = {}) {
124
143
  });
125
144
  return scored;
126
145
  }
146
+ /**
147
+ * The four scored fields, paired with their weight, in the order they are
148
+ * indexed. Kept parallel to {@link FIELD_WEIGHTS} so the indexed scorer and
149
+ * {@link scoreNodeMetadata} stay in lockstep.
150
+ */
151
+ const INDEXED_FIELDS = [
152
+ FIELD_WEIGHTS.title,
153
+ FIELD_WEIGHTS.nodeType,
154
+ FIELD_WEIGHTS.namespace,
155
+ FIELD_WEIGHTS.description
156
+ ];
157
+ function indexField(value) {
158
+ const lower = (value ?? "").toLowerCase();
159
+ // Mirrors fieldScore's tokenization so exact-token bonuses match exactly.
160
+ const tokens = new Set(lower.split(/[\s._\-/]+/).filter(Boolean));
161
+ return { lower, tokens };
162
+ }
163
+ /**
164
+ * Precomputed search index over a fixed set of node metadata.
165
+ *
166
+ * Building the index lowercases and tokenizes each node's title, node_type,
167
+ * namespace, and description once; `rank` then reuses that work across every
168
+ * query. The ranking is identical to {@link rankNodeMetadata} — same field
169
+ * weights, exact-token bonus, core multiplier, and tie-break — so the indexed
170
+ * path is a drop-in for the inner loop of repeated node searches (e.g. the
171
+ * graph planner, which searches the same registry many times per build).
172
+ */
173
+ export class NodeSearchIndex {
174
+ entries;
175
+ constructor(nodes) {
176
+ this.entries = nodes.map((meta) => ({
177
+ meta,
178
+ cls: namespaceClass(meta.namespace),
179
+ namespace: meta.namespace ?? "",
180
+ fields: [
181
+ indexField(meta.title),
182
+ indexField(meta.node_type),
183
+ indexField(meta.namespace),
184
+ indexField(meta.description)
185
+ ]
186
+ }));
187
+ }
188
+ /** Number of nodes covered by this index. */
189
+ get size() {
190
+ return this.entries.length;
191
+ }
192
+ /**
193
+ * Rank the indexed nodes against `terms`. Equivalent to
194
+ * `rankNodeMetadata(nodes, terms, options)` but without rebuilding the
195
+ * per-field projections on each call.
196
+ */
197
+ rank(terms, options = {}) {
198
+ if (terms.length === 0)
199
+ return [];
200
+ // Mirror scoreNodeMetadata: each term may be a multi-word phrase (agents
201
+ // often pass ["text input string"]). Split on whitespace and match on
202
+ // individual words, else a phrase collapses to a single substring probe
203
+ // that almost never hits — the difference between 0 and many results.
204
+ const lowered = [];
205
+ for (const term of terms) {
206
+ for (const word of term.toLowerCase().split(/\s+/)) {
207
+ if (word)
208
+ lowered.push(word);
209
+ }
210
+ }
211
+ if (lowered.length === 0)
212
+ return [];
213
+ const { namespacePrefix } = options;
214
+ const includeProviderNodes = options.includeProviderNodes ?? false;
215
+ const scored = [];
216
+ for (const entry of this.entries) {
217
+ if (namespacePrefix && !entry.namespace.startsWith(namespacePrefix)) {
218
+ continue;
219
+ }
220
+ // A namespacePrefix is an explicit request for whatever lives under that
221
+ // prefix, so it overrides the default provider-node exclusion.
222
+ if (entry.cls === "provider" &&
223
+ !includeProviderNodes &&
224
+ !namespacePrefix) {
225
+ continue;
226
+ }
227
+ let raw = 0;
228
+ for (let f = 0; f < INDEXED_FIELDS.length; f++) {
229
+ const field = entry.fields[f];
230
+ const weight = INDEXED_FIELDS[f];
231
+ for (const term of lowered) {
232
+ if (!field.lower.includes(term))
233
+ continue;
234
+ raw += weight;
235
+ if (field.tokens.has(term))
236
+ raw += weight * EXACT_TOKEN_BONUS;
237
+ }
238
+ }
239
+ if (raw === 0)
240
+ continue;
241
+ scored.push({
242
+ meta: entry.meta,
243
+ score: entry.cls === "core" ? raw * CORE_MULTIPLIER : raw
244
+ });
245
+ }
246
+ scored.sort((a, b) => {
247
+ if (b.score !== a.score)
248
+ return b.score - a.score;
249
+ return a.meta.node_type.localeCompare(b.meta.node_type);
250
+ });
251
+ return scored;
252
+ }
253
+ }
127
254
  //# sourceMappingURL=search.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Type-string helpers shared by the property validator, the graph validator
3
+ * and the typed dynamic-slot machinery on BaseNode.
4
+ *
5
+ * Everything here works on the JSON type-metadata shape (`{ type, type_args }`)
6
+ * that travels over the wire in node metadata, `dynamic_outputs` and
7
+ * `dynamic_inputs`. The protocol's `TypeMetadata` *class* names its children
8
+ * `args` instead of `type_args`, so both spellings are accepted.
9
+ */
10
+ import { type DynamicSlotMeta } from "@nodetool-ai/protocol";
11
+ /** Structural view of a type-metadata object, whatever produced it. */
12
+ export interface TypeMetaLike {
13
+ type?: unknown;
14
+ type_args?: unknown;
15
+ args?: unknown;
16
+ }
17
+ /** Render type metadata as a NodeTool type string (`list[image]`, `str`, …). */
18
+ export declare function typeMetaToString(tm: TypeMetaLike | null | undefined): string;
19
+ /** The declared type of a dynamic slot as a type string ("" when unknown). */
20
+ export declare function slotTypeToString(slot: DynamicSlotMeta | null | undefined): string;
21
+ /**
22
+ * Conservative type compatibility: only flag a mismatch when both sides are
23
+ * known, concrete scalars that clearly differ. `any`/`object`/`union`/empty and
24
+ * any generic container (type_args) are treated as compatible to avoid false
25
+ * positives.
26
+ */
27
+ export declare function typesIncompatible(sourceType: string, targetType: string): boolean;
28
+ /**
29
+ * Conservative value/type check for an inline dynamic-slot value.
30
+ *
31
+ * Only clear scalar mismatches count. Anything null/undefined, any ref or
32
+ * object type, and every container type passes — a scalar in a `list[T]` slot
33
+ * is coerced by {@link coerceToDeclaredType}, not rejected.
34
+ */
35
+ export declare function valueIncompatibleWithType(value: unknown, typeStr: string): boolean;
36
+ //# sourceMappingURL=type-compat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-compat.d.ts","sourceRoot":"","sources":["../src/type-compat.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAG/B,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,GAClC,MAAM,CAWR;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,GACvC,MAAM,CAGR;AAgBD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAST;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAqBT"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Type-string helpers shared by the property validator, the graph validator
3
+ * and the typed dynamic-slot machinery on BaseNode.
4
+ *
5
+ * Everything here works on the JSON type-metadata shape (`{ type, type_args }`)
6
+ * that travels over the wire in node metadata, `dynamic_outputs` and
7
+ * `dynamic_inputs`. The protocol's `TypeMetadata` *class* names its children
8
+ * `args` instead of `type_args`, so both spellings are accepted.
9
+ */
10
+ import { areTypeNamesCompatible } from "@nodetool-ai/protocol";
11
+ import { isBoolean, isNumber, isString } from "./type-predicates.js";
12
+ /** Render type metadata as a NodeTool type string (`list[image]`, `str`, …). */
13
+ export function typeMetaToString(tm) {
14
+ if (!tm || !isString(tm.type) || !tm.type)
15
+ return "";
16
+ const rawArgs = Array.isArray(tm.type_args)
17
+ ? tm.type_args
18
+ : Array.isArray(tm.args)
19
+ ? tm.args
20
+ : [];
21
+ const args = rawArgs
22
+ .map((a) => typeMetaToString(a))
23
+ .filter(Boolean);
24
+ return args.length > 0 ? `${tm.type}[${args.join(", ")}]` : tm.type;
25
+ }
26
+ /** The declared type of a dynamic slot as a type string ("" when unknown). */
27
+ export function slotTypeToString(slot) {
28
+ if (!slot)
29
+ return "";
30
+ return typeMetaToString(slot.type);
31
+ }
32
+ /** Types that accept anything — never a mismatch on either side of an edge. */
33
+ const PERMISSIVE_TYPES = new Set([
34
+ "any",
35
+ "object",
36
+ "union",
37
+ "list",
38
+ "dict"
39
+ ]);
40
+ function baseType(t) {
41
+ const i = t.indexOf("[");
42
+ return i >= 0 ? t.slice(0, i) : t;
43
+ }
44
+ /**
45
+ * Conservative type compatibility: only flag a mismatch when both sides are
46
+ * known, concrete scalars that clearly differ. `any`/`object`/`union`/empty and
47
+ * any generic container (type_args) are treated as compatible to avoid false
48
+ * positives.
49
+ */
50
+ export function typesIncompatible(sourceType, targetType) {
51
+ if (!sourceType || !targetType)
52
+ return false;
53
+ if (sourceType === targetType)
54
+ return false;
55
+ const s = baseType(sourceType);
56
+ const t = baseType(targetType);
57
+ if (PERMISSIVE_TYPES.has(s) || PERMISSIVE_TYPES.has(t))
58
+ return false;
59
+ if (s !== sourceType || t !== targetType)
60
+ return false; // generic container — skip
61
+ if (areTypeNamesCompatible(s, t))
62
+ return false;
63
+ return s !== t;
64
+ }
65
+ /**
66
+ * Conservative value/type check for an inline dynamic-slot value.
67
+ *
68
+ * Only clear scalar mismatches count. Anything null/undefined, any ref or
69
+ * object type, and every container type passes — a scalar in a `list[T]` slot
70
+ * is coerced by {@link coerceToDeclaredType}, not rejected.
71
+ */
72
+ export function valueIncompatibleWithType(value, typeStr) {
73
+ if (value === null || value === undefined)
74
+ return false;
75
+ if (!typeStr)
76
+ return false;
77
+ const base = baseType(typeStr);
78
+ if (base !== typeStr)
79
+ return false; // container — the element check is not ours
80
+ if (PERMISSIVE_TYPES.has(base))
81
+ return false;
82
+ switch (base) {
83
+ case "str":
84
+ return !isString(value);
85
+ // NaN and ±Infinity are numbers to `typeof` but nothing downstream can use
86
+ // them: they do not survive JSON, and an `int` slot holding 3.5 is the same
87
+ // defect as one holding "3.5".
88
+ case "int":
89
+ return !Number.isInteger(value);
90
+ case "float":
91
+ return !isNumber(value) || !Number.isFinite(value);
92
+ case "bool":
93
+ return !isBoolean(value);
94
+ default:
95
+ return false;
96
+ }
97
+ }
98
+ //# sourceMappingURL=type-compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-compat.js","sourceRoot":"","sources":["../src/type-compat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * The predicate set the node packages import from `@nodetool-ai/node-sdk`.
3
+ *
4
+ * The representation checks that behave identically everywhere come from
5
+ * `@nodetool-ai/protocol`, the workspace's one definition. The three below stay
6
+ * here because their narrowing differs from protocol's on purpose.
7
+ */
8
+ export { isBoolean, isFiniteNumber, isNonEmptyString, isNumber, isRecord, isString } from "@nodetool-ai/protocol";
9
+ /** A number greater than zero — a sample rate, a channel count, a duration. */
10
+ export declare function isPositiveNumber(value: unknown): value is number;
11
+ /**
12
+ * An object or an array — anything `typeof` calls "object" except `null`.
13
+ * Use {@link isRecord} when array payloads must be rejected.
14
+ *
15
+ * Unlike protocol's, the narrowed type keeps whatever the caller already knew
16
+ * and adds index access, so `isObjectLike(raw) && isNumber(raw.x)` reads a
17
+ * field off an `unknown` without collapsing a known type to a record.
18
+ */
19
+ export declare function isObjectLike<T>(value: T): value is T & Record<string, unknown>;
20
+ /**
21
+ * Narrowing keeps the caller's own type, so a guarded optional method stays
22
+ * callable with its real arguments instead of collapsing to `never[]`.
23
+ */
24
+ export declare function isCallable<T>(value: T): value is T & ((...args: never[]) => unknown);
25
+ //# sourceMappingURL=type-predicates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-predicates.d.ts","sourceRoot":"","sources":["../src/type-predicates.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,QAAQ,EACT,MAAM,uBAAuB,CAAC;AAE/B,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEhE;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE9E;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAC1B,KAAK,EAAE,CAAC,GACP,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC,CAE9C"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * The predicate set the node packages import from `@nodetool-ai/node-sdk`.
3
+ *
4
+ * The representation checks that behave identically everywhere come from
5
+ * `@nodetool-ai/protocol`, the workspace's one definition. The three below stay
6
+ * here because their narrowing differs from protocol's on purpose.
7
+ */
8
+ export { isBoolean, isFiniteNumber, isNonEmptyString, isNumber, isRecord, isString } from "@nodetool-ai/protocol";
9
+ /** A number greater than zero — a sample rate, a channel count, a duration. */
10
+ export function isPositiveNumber(value) {
11
+ return typeof value === "number" && value > 0;
12
+ }
13
+ /**
14
+ * An object or an array — anything `typeof` calls "object" except `null`.
15
+ * Use {@link isRecord} when array payloads must be rejected.
16
+ *
17
+ * Unlike protocol's, the narrowed type keeps whatever the caller already knew
18
+ * and adds index access, so `isObjectLike(raw) && isNumber(raw.x)` reads a
19
+ * field off an `unknown` without collapsing a known type to a record.
20
+ */
21
+ export function isObjectLike(value) {
22
+ return value !== null && typeof value === "object";
23
+ }
24
+ /**
25
+ * Narrowing keeps the caller's own type, so a guarded optional method stays
26
+ * callable with its real arguments instead of collapsing to `never[]`.
27
+ */
28
+ export function isCallable(value) {
29
+ return typeof value === "function";
30
+ }
31
+ //# sourceMappingURL=type-predicates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-predicates.js","sourceRoot":"","sources":["../src/type-predicates.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,QAAQ,EACT,MAAM,uBAAuB,CAAC;AAE/B,+EAA+E;AAC/E,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAI,KAAQ;IACtC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CACxB,KAAQ;IAER,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC"}
@@ -24,8 +24,17 @@
24
24
  * node that uses `@prop({ required: true, ... })`, a model-typed field, or
25
25
  * an asset-typed field gets validation for free with no per-node code.
26
26
  */
27
+ import type { DynamicSlotMeta } from "@nodetool-ai/protocol";
27
28
  import type { DeclaredPropertyMetadata } from "./decorators.js";
28
29
  /** A single validation issue tied to a node property. */
30
+ /**
31
+ * What kind of property check failed. Lets callers filter by cause instead of
32
+ * matching on message prose — the graph planner suppresses `unset_model`,
33
+ * since it is asked to omit models and have them supplied at run time.
34
+ */
35
+ export type NodePropertyValidationCode = "required" | "unset_model" | "unsupported_platform"
36
+ /** An inline dynamic-slot value does not match the slot's declared type. */
37
+ | "dynamic_type_mismatch";
29
38
  export interface NodePropertyValidationIssue {
30
39
  /** Node id, when known. */
31
40
  nodeId?: string;
@@ -35,6 +44,8 @@ export interface NodePropertyValidationIssue {
35
44
  property: string;
36
45
  /** Human-readable message describing the failure. */
37
46
  message: string;
47
+ /** Machine-readable cause. */
48
+ code: NodePropertyValidationCode;
38
49
  }
39
50
  export interface ValidateNodePropertiesOptions {
40
51
  /**
@@ -47,6 +58,13 @@ export interface ValidateNodePropertiesOptions {
47
58
  nodeId?: string;
48
59
  /** Node type to attach to issues. */
49
60
  nodeType?: string;
61
+ /**
62
+ * Typed dynamic input slot declarations (`Node.dynamic_inputs`). Only slots
63
+ * listed here are validated — an undeclared slot is an untyped legacy slot.
64
+ */
65
+ dynamicSlots?: Record<string, DynamicSlotMeta>;
66
+ /** Inline dynamic slot values (`Node.dynamic_properties`). */
67
+ dynamicValues?: Record<string, unknown>;
50
68
  }
51
69
  /**
52
70
  * Validate property values against declared @prop metadata.
@@ -1 +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"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAIhE,yDAAyD;AACzD;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAClC,UAAU,GACV,aAAa,GACb,sBAAsB;AACxB,4EAA4E;GAC1E,uBAAuB,CAAC;AAE5B,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;IAChB,8BAA8B;IAC9B,IAAI,EAAE,0BAA0B,CAAC;CAClC;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;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC/C,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAqFD;;;;;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,CA8C/B;AAkDD;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,CAAC,2BAA2B,CAAC,GACjD,MAAM,CAWR"}