@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
|
@@ -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
|
package/dist/search.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
-
"
|
|
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
|
-
|
|
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
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
package/dist/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,SAAS;IACT,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,aAAa;IACb,KAAK;IACL,WAAW;IACX,KAAK;IACL,
|
|
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"}
|
package/dist/validation.d.ts
CHANGED
|
@@ -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.
|
package/dist/validation.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|