@nexface/tools 0.1.14 → 0.1.15-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/actions.js +10 -34
- package/dist/browser/actions.js.map +1 -0
- package/dist/browser/controller.js +74 -53
- package/dist/browser/controller.js.map +1 -0
- package/dist/browser/diagnostics.js +3 -8
- package/dist/browser/diagnostics.js.map +1 -0
- package/dist/browser/dom.js +28 -12
- package/dist/browser/dom.js.map +1 -0
- package/dist/browser/feedback.js +5 -6
- package/dist/browser/feedback.js.map +1 -0
- package/dist/browser/focus.js +1 -0
- package/dist/browser/focus.js.map +1 -0
- package/dist/browser/locator.js +9 -3
- package/dist/browser/locator.js.map +1 -0
- package/dist/browser/prompt.generated.js +1 -0
- package/dist/browser/prompt.generated.js.map +1 -0
- package/dist/browser/prompt.js +1 -0
- package/dist/browser/prompt.js.map +1 -0
- package/dist/browser/snapshot.js +22 -10
- package/dist/browser/snapshot.js.map +1 -0
- package/dist/browser/toolset.js +36 -42
- package/dist/browser/toolset.js.map +1 -0
- package/dist/browser/types.d.ts +1 -1
- package/dist/browser/types.js +1 -0
- package/dist/browser/types.js.map +1 -0
- package/dist/browser/worker-runner.js +1 -0
- package/dist/browser/worker-runner.js.map +1 -0
- package/dist/definition.d.ts +3 -1
- package/dist/definition.js +2 -2
- package/dist/definition.js.map +1 -0
- package/dist/index.browser.js +1 -0
- package/dist/index.browser.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -0
- package/dist/internal-react.d.ts +1 -1
- package/dist/internal-react.js +4 -3
- package/dist/internal-react.js.map +1 -0
- package/dist/internal-types.js +1 -0
- package/dist/internal-types.js.map +1 -0
- package/dist/navigation.js +1 -0
- package/dist/navigation.js.map +1 -0
- package/dist/operation-lock.js +2 -36
- package/dist/operation-lock.js.map +1 -0
- package/dist/operation-runtime.js +13 -41
- package/dist/operation-runtime.js.map +1 -0
- package/dist/operation-surface.js +41 -118
- package/dist/operation-surface.js.map +1 -0
- package/dist/operation-types.js +1 -0
- package/dist/operation-types.js.map +1 -0
- package/dist/operation-view.d.ts +1 -1
- package/dist/operation-view.js +60 -120
- package/dist/operation-view.js.map +1 -0
- package/dist/react.js +9 -6
- package/dist/react.js.map +1 -0
- package/dist/registration.d.ts +6 -0
- package/dist/registration.js +25 -3
- package/dist/registration.js.map +1 -0
- package/dist/runtime.d.ts +2 -4
- package/dist/runtime.js +44 -103
- package/dist/runtime.js.map +1 -0
- package/dist/shared/definition.js +1 -0
- package/dist/shared/definition.js.map +1 -0
- package/dist/shared/errors.d.ts +1 -1
- package/dist/shared/errors.js +1 -0
- package/dist/shared/errors.js.map +1 -0
- package/dist/shared/page-protocol.js +1 -0
- package/dist/shared/page-protocol.js.map +1 -0
- package/dist/shared/page-tools.js +1 -0
- package/dist/shared/page-tools.js.map +1 -0
- package/dist/shared/runtime-controller.d.ts +0 -1
- package/dist/shared/runtime-controller.js +1 -0
- package/dist/shared/runtime-controller.js.map +1 -0
- package/dist/shared/runtime-execution.js +1 -0
- package/dist/shared/runtime-execution.js.map +1 -0
- package/dist/shared/schema.js +19 -45
- package/dist/shared/schema.js.map +1 -0
- package/dist/shared/tool-registry.d.ts +6 -0
- package/dist/shared/tool-registry.js +10 -0
- package/dist/shared/tool-registry.js.map +1 -0
- package/dist/styles.css +109 -879
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -0
- package/dist/webmcp.js +12 -38
- package/dist/webmcp.js.map +1 -0
- package/package.json +2 -6
- package/dist/tool-search.d.ts +0 -11
- package/dist/tool-search.js +0 -117
package/dist/shared/schema.js
CHANGED
|
@@ -3,17 +3,8 @@ const types = new Set(["object", "array", "string", "number", "integer", "boolea
|
|
|
3
3
|
const counts = ["minLength", "maxLength", "minItems", "maxItems"];
|
|
4
4
|
const bounds = ["minimum", "maximum", "exclusiveMinimum", "exclusiveMaximum"];
|
|
5
5
|
const keywords = new Set([
|
|
6
|
-
"type",
|
|
7
|
-
"
|
|
8
|
-
"properties",
|
|
9
|
-
"required",
|
|
10
|
-
"items",
|
|
11
|
-
"enum",
|
|
12
|
-
"additionalProperties",
|
|
13
|
-
...counts,
|
|
14
|
-
...bounds,
|
|
15
|
-
"pattern",
|
|
16
|
-
"uniqueItems",
|
|
6
|
+
"type", "description", "properties", "required", "items", "enum", "additionalProperties",
|
|
7
|
+
...counts, ...bounds, "pattern", "uniqueItems",
|
|
17
8
|
]);
|
|
18
9
|
const checkedSchemas = new WeakSet();
|
|
19
10
|
const patterns = new WeakMap();
|
|
@@ -33,9 +24,7 @@ function assertJson(value, path, ancestors = new Set()) {
|
|
|
33
24
|
invalid(path, "must be JSON-compatible.");
|
|
34
25
|
if (ancestors.has(value))
|
|
35
26
|
invalid(path, "must not contain circular references.");
|
|
36
|
-
if (!Array.isArray(value) &&
|
|
37
|
-
Object.getPrototypeOf(value) !== Object.prototype &&
|
|
38
|
-
Object.getPrototypeOf(value) !== null) {
|
|
27
|
+
if (!Array.isArray(value) && Object.getPrototypeOf(value) !== Object.prototype && Object.getPrototypeOf(value) !== null) {
|
|
39
28
|
invalid(path, "must be a plain JSON object.");
|
|
40
29
|
}
|
|
41
30
|
if (Object.getOwnPropertySymbols(value).length)
|
|
@@ -96,8 +85,7 @@ function assertSchema(value, path) {
|
|
|
96
85
|
invalid(`${path}.${key}`, "must be a non-negative integer.");
|
|
97
86
|
}
|
|
98
87
|
for (const key of bounds) {
|
|
99
|
-
if (value[key] !== undefined &&
|
|
100
|
-
(typeof value[key] !== "number" || !Number.isFinite(value[key])))
|
|
88
|
+
if (value[key] !== undefined && (typeof value[key] !== "number" || !Number.isFinite(value[key])))
|
|
101
89
|
invalid(`${path}.${key}`, "must be a finite number.");
|
|
102
90
|
}
|
|
103
91
|
if (value.pattern !== undefined) {
|
|
@@ -107,8 +95,7 @@ function assertSchema(value, path) {
|
|
|
107
95
|
}
|
|
108
96
|
if (value.enum !== undefined && (!Array.isArray(value.enum) || value.enum.length === 0))
|
|
109
97
|
invalid(`${path}.enum`, "must be a non-empty array.");
|
|
110
|
-
if (Array.isArray(value.enum) &&
|
|
111
|
-
value.enum.some((item, index, entries) => entries.slice(0, index).some((other) => jsonEqual(item, other))))
|
|
98
|
+
if (Array.isArray(value.enum) && value.enum.some((item, index, entries) => entries.slice(0, index).some((other) => jsonEqual(item, other))))
|
|
112
99
|
invalid(`${path}.enum`, "must contain unique values.");
|
|
113
100
|
if (value.properties !== undefined) {
|
|
114
101
|
if (value.type !== "object" || !isRecord(value.properties))
|
|
@@ -117,10 +104,7 @@ function assertSchema(value, path) {
|
|
|
117
104
|
assertSchema(property, `${path}.properties.${name}`);
|
|
118
105
|
}
|
|
119
106
|
if (value.required !== undefined) {
|
|
120
|
-
if (value.type !== "object" ||
|
|
121
|
-
!Array.isArray(value.required) ||
|
|
122
|
-
value.required.some((name) => typeof name !== "string") ||
|
|
123
|
-
new Set(value.required).size !== value.required.length)
|
|
107
|
+
if (value.type !== "object" || !Array.isArray(value.required) || value.required.some((name) => typeof name !== "string") || new Set(value.required).size !== value.required.length)
|
|
124
108
|
invalid(`${path}.required`, "must contain unique property names.");
|
|
125
109
|
const properties = value.properties;
|
|
126
110
|
if (value.required.some((name) => !properties || !Object.hasOwn(properties, name)))
|
|
@@ -134,7 +118,7 @@ function assertSchema(value, path) {
|
|
|
134
118
|
}
|
|
135
119
|
export function assertAgentToolInputSchema(value, path = "inputSchema") {
|
|
136
120
|
if (!isRecord(value) || value.type !== "object")
|
|
137
|
-
invalid(path,
|
|
121
|
+
invalid(path, 'root type must be object.');
|
|
138
122
|
if (checkedSchemas.has(value))
|
|
139
123
|
return;
|
|
140
124
|
const frozen = assertJson(value, path);
|
|
@@ -146,29 +130,21 @@ function jsonEqual(left, right) {
|
|
|
146
130
|
if (left === right)
|
|
147
131
|
return true;
|
|
148
132
|
if (Array.isArray(left) && Array.isArray(right))
|
|
149
|
-
return
|
|
133
|
+
return left.length === right.length && left.every((item, index) => jsonEqual(item, right[index]));
|
|
150
134
|
if (!isRecord(left) || !isRecord(right))
|
|
151
135
|
return false;
|
|
152
136
|
const keys = Object.keys(left);
|
|
153
|
-
return
|
|
154
|
-
keys.every((key) => Object.hasOwn(right, key) && jsonEqual(left[key], right[key])));
|
|
137
|
+
return keys.length === Object.keys(right).length && keys.every((key) => Object.hasOwn(right, key) && jsonEqual(left[key], right[key]));
|
|
155
138
|
}
|
|
156
139
|
function typeMatches(schema, value) {
|
|
157
140
|
switch (schema.type) {
|
|
158
|
-
case undefined:
|
|
159
|
-
|
|
160
|
-
case "
|
|
161
|
-
|
|
162
|
-
case "
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
return isRecord(value);
|
|
166
|
-
case "integer":
|
|
167
|
-
return typeof value === "number" && Number.isInteger(value);
|
|
168
|
-
case "number":
|
|
169
|
-
return typeof value === "number" && Number.isFinite(value);
|
|
170
|
-
default:
|
|
171
|
-
return typeof value === schema.type;
|
|
141
|
+
case undefined: return true;
|
|
142
|
+
case "null": return value === null;
|
|
143
|
+
case "array": return Array.isArray(value);
|
|
144
|
+
case "object": return isRecord(value);
|
|
145
|
+
case "integer": return typeof value === "number" && Number.isInteger(value);
|
|
146
|
+
case "number": return typeof value === "number" && Number.isFinite(value);
|
|
147
|
+
default: return typeof value === schema.type;
|
|
172
148
|
}
|
|
173
149
|
}
|
|
174
150
|
export function validateAgentToolInput(schema, value, path = "input") {
|
|
@@ -201,8 +177,7 @@ export function validateAgentToolInput(schema, value, path = "input") {
|
|
|
201
177
|
errors.push(`${path} must have at least ${schema.minItems} items.`);
|
|
202
178
|
if (schema.maxItems !== undefined && value.length > schema.maxItems)
|
|
203
179
|
errors.push(`${path} must have at most ${schema.maxItems} items.`);
|
|
204
|
-
if (schema.uniqueItems &&
|
|
205
|
-
value.some((item, index) => value.slice(0, index).some((other) => jsonEqual(item, other))))
|
|
180
|
+
if (schema.uniqueItems && value.some((item, index) => value.slice(0, index).some((other) => jsonEqual(item, other))))
|
|
206
181
|
errors.push(`${path} must contain unique items.`);
|
|
207
182
|
if (schema.items)
|
|
208
183
|
value.forEach((item, index) => errors.push(...validateAgentToolInput(schema.items, item, `${path}[${index}]`)));
|
|
@@ -213,9 +188,7 @@ export function validateAgentToolInput(schema, value, path = "input") {
|
|
|
213
188
|
errors.push(`${path}.${key} is required.`);
|
|
214
189
|
}
|
|
215
190
|
for (const [key, item] of Object.entries(value)) {
|
|
216
|
-
const property = schema.properties && Object.hasOwn(schema.properties, key)
|
|
217
|
-
? schema.properties[key]
|
|
218
|
-
: undefined;
|
|
191
|
+
const property = schema.properties && Object.hasOwn(schema.properties, key) ? schema.properties[key] : undefined;
|
|
219
192
|
if (property)
|
|
220
193
|
errors.push(...validateAgentToolInput(property, item, `${path}.${key}`));
|
|
221
194
|
else if (schema.additionalProperties === false)
|
|
@@ -224,3 +197,4 @@ export function validateAgentToolInput(schema, value, path = "input") {
|
|
|
224
197
|
}
|
|
225
198
|
return errors;
|
|
226
199
|
}
|
|
200
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/shared/schema.ts"],"names":[],"mappings":"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","sourcesContent":["// Generated from shared/schema.ts. Do not edit manually.\n\nimport type { JsonSchema } from \"../types.js\";\n\nconst types = new Set([\"object\", \"array\", \"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nconst counts = [\"minLength\", \"maxLength\", \"minItems\", \"maxItems\"] as const;\nconst bounds = [\"minimum\", \"maximum\", \"exclusiveMinimum\", \"exclusiveMaximum\"] as const;\nconst keywords = new Set([\n \"type\", \"description\", \"properties\", \"required\", \"items\", \"enum\", \"additionalProperties\",\n ...counts, ...bounds, \"pattern\", \"uniqueItems\",\n]);\nconst checkedSchemas = new WeakSet<object>();\nconst patterns = new WeakMap<object, { source: string; regex: RegExp }>();\n\nfunction invalid(path: string, message: string): never {\n throw new TypeError(`${path} ${message}`);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === \"object\" && !Array.isArray(value);\n}\n\n// Only deeply frozen, JSON-compatible values can safely share validation results.\nfunction assertJson(value: unknown, path: string, ancestors = new Set<object>()): boolean {\n if (value === null || typeof value === \"string\" || typeof value === \"boolean\") return true;\n if (typeof value === \"number\" && Number.isFinite(value)) return true;\n if (typeof value !== \"object\" || value === null) invalid(path, \"must be JSON-compatible.\");\n if (ancestors.has(value)) invalid(path, \"must not contain circular references.\");\n if (!Array.isArray(value) && Object.getPrototypeOf(value) !== Object.prototype && Object.getPrototypeOf(value) !== null) {\n invalid(path, \"must be a plain JSON object.\");\n }\n if (Object.getOwnPropertySymbols(value).length) invalid(path, \"must not contain symbol properties.\");\n for (const [key, descriptor] of Object.entries(Object.getOwnPropertyDescriptors(value))) {\n if (!descriptor.enumerable && !(Array.isArray(value) && key === \"length\")) invalid(`${path}.${key}`, \"must be enumerable.\");\n if (descriptor.get || descriptor.set) invalid(`${path}.${key}`, \"must be a data property.\");\n }\n if (Array.isArray(value)) {\n for (let index = 0; index < value.length; index++) {\n if (!Object.hasOwn(value, index)) invalid(`${path}[${index}]`, \"must not be a sparse array slot.\");\n }\n }\n ancestors.add(value);\n let frozen = Object.isFrozen(value);\n for (const [key, child] of Object.entries(value)) {\n const childFrozen = assertJson(child, `${path}.${key}`, ancestors);\n frozen = frozen && childFrozen;\n }\n ancestors.delete(value);\n return frozen;\n}\n\nfunction patternFor(schema: JsonSchema, path: string): RegExp {\n const source = schema.pattern!;\n const cached = patterns.get(schema);\n if (cached?.source === source) return cached.regex;\n let regex: RegExp;\n try {\n regex = new RegExp(source, \"u\");\n } catch {\n invalid(`${path}.pattern`, \"must be a valid Unicode regular expression.\");\n }\n patterns.set(schema, { source, regex });\n return regex;\n}\n\nfunction assertSchema(value: unknown, path: string): void {\n if (!isRecord(value)) invalid(path, \"must be an object.\");\n const unexpected = Object.keys(value).filter((key) => !keywords.has(key));\n if (unexpected.length) invalid(path, `has unsupported fields: ${unexpected.join(\", \")}.`);\n if (value.type !== undefined && (typeof value.type !== \"string\" || !types.has(value.type))) invalid(`${path}.type`, \"is not supported.\");\n if (value.description !== undefined && typeof value.description !== \"string\") invalid(`${path}.description`, \"must be a string.\");\n for (const key of [\"additionalProperties\", \"uniqueItems\"] as const) {\n if (value[key] !== undefined && typeof value[key] !== \"boolean\") invalid(`${path}.${key}`, \"must be a boolean.\");\n }\n for (const key of counts) {\n const count = value[key];\n if (count !== undefined && (typeof count !== \"number\" || !Number.isInteger(count) || count < 0)) invalid(`${path}.${key}`, \"must be a non-negative integer.\");\n }\n for (const key of bounds) {\n if (value[key] !== undefined && (typeof value[key] !== \"number\" || !Number.isFinite(value[key]))) invalid(`${path}.${key}`, \"must be a finite number.\");\n }\n if (value.pattern !== undefined) {\n if (typeof value.pattern !== \"string\") invalid(`${path}.pattern`, \"must be a string.\");\n patternFor(value as JsonSchema, path);\n }\n if (value.enum !== undefined && (!Array.isArray(value.enum) || value.enum.length === 0)) invalid(`${path}.enum`, \"must be a non-empty array.\");\n if (Array.isArray(value.enum) && value.enum.some((item, index, entries) => entries.slice(0, index).some((other) => jsonEqual(item, other)))) invalid(`${path}.enum`, \"must contain unique values.\");\n if (value.properties !== undefined) {\n if (value.type !== \"object\" || !isRecord(value.properties)) invalid(`${path}.properties`, \"requires an object schema.\");\n for (const [name, property] of Object.entries(value.properties)) assertSchema(property, `${path}.properties.${name}`);\n }\n if (value.required !== undefined) {\n if (value.type !== \"object\" || !Array.isArray(value.required) || value.required.some((name) => typeof name !== \"string\") || new Set(value.required).size !== value.required.length) invalid(`${path}.required`, \"must contain unique property names.\");\n const properties = value.properties as Record<string, unknown> | undefined;\n if (value.required.some((name) => !properties || !Object.hasOwn(properties, name))) invalid(`${path}.required`, \"must reference declared properties.\");\n }\n if (value.items !== undefined) {\n if (value.type !== \"array\") invalid(`${path}.items`, \"requires an array schema.\");\n assertSchema(value.items, `${path}.items`);\n }\n}\n\nexport function assertAgentToolInputSchema(value: unknown, path = \"inputSchema\"): void {\n if (!isRecord(value) || value.type !== \"object\") invalid(path, 'root type must be object.');\n if (checkedSchemas.has(value)) return;\n const frozen = assertJson(value, path);\n assertSchema(value, path);\n if (frozen) checkedSchemas.add(value);\n}\n\nfunction jsonEqual(left: unknown, right: unknown): boolean {\n if (left === right) return true;\n if (Array.isArray(left) && Array.isArray(right)) return left.length === right.length && left.every((item, index) => jsonEqual(item, right[index]));\n if (!isRecord(left) || !isRecord(right)) return false;\n const keys = Object.keys(left);\n return keys.length === Object.keys(right).length && keys.every((key) => Object.hasOwn(right, key) && jsonEqual(left[key], right[key]));\n}\n\nfunction typeMatches(schema: JsonSchema, value: unknown): boolean {\n switch (schema.type) {\n case undefined: return true;\n case \"null\": return value === null;\n case \"array\": return Array.isArray(value);\n case \"object\": return isRecord(value);\n case \"integer\": return typeof value === \"number\" && Number.isInteger(value);\n case \"number\": return typeof value === \"number\" && Number.isFinite(value);\n default: return typeof value === schema.type;\n }\n}\n\nexport function validateAgentToolInput(schema: JsonSchema, value: unknown, path = \"input\"): string[] {\n if (!typeMatches(schema, value)) return [`${path} must be ${schema.type}.`];\n const errors: string[] = [];\n if (schema.enum && !schema.enum.some((item) => jsonEqual(item, value))) errors.push(`${path} must be one of the declared enum values.`);\n if (typeof value === \"string\") {\n const length = Array.from(value).length;\n if (schema.minLength !== undefined && length < schema.minLength) errors.push(`${path} must have at least ${schema.minLength} characters.`);\n if (schema.maxLength !== undefined && length > schema.maxLength) errors.push(`${path} must have at most ${schema.maxLength} characters.`);\n if (schema.pattern !== undefined && !patternFor(schema, path).test(value)) errors.push(`${path} must match pattern ${schema.pattern}.`);\n }\n if (typeof value === \"number\") {\n if (schema.minimum !== undefined && value < schema.minimum) errors.push(`${path} must be >= ${schema.minimum}.`);\n if (schema.maximum !== undefined && value > schema.maximum) errors.push(`${path} must be <= ${schema.maximum}.`);\n if (schema.exclusiveMinimum !== undefined && value <= schema.exclusiveMinimum) errors.push(`${path} must be > ${schema.exclusiveMinimum}.`);\n if (schema.exclusiveMaximum !== undefined && value >= schema.exclusiveMaximum) errors.push(`${path} must be < ${schema.exclusiveMaximum}.`);\n }\n if (Array.isArray(value)) {\n if (schema.minItems !== undefined && value.length < schema.minItems) errors.push(`${path} must have at least ${schema.minItems} items.`);\n if (schema.maxItems !== undefined && value.length > schema.maxItems) errors.push(`${path} must have at most ${schema.maxItems} items.`);\n if (schema.uniqueItems && value.some((item, index) => value.slice(0, index).some((other) => jsonEqual(item, other)))) errors.push(`${path} must contain unique items.`);\n if (schema.items) value.forEach((item, index) => errors.push(...validateAgentToolInput(schema.items!, item, `${path}[${index}]`)));\n }\n if (isRecord(value)) {\n for (const key of schema.required ?? []) {\n if (!Object.hasOwn(value, key)) errors.push(`${path}.${key} is required.`);\n }\n for (const [key, item] of Object.entries(value)) {\n const property = schema.properties && Object.hasOwn(schema.properties, key) ? schema.properties[key] : undefined;\n if (property) errors.push(...validateAgentToolInput(property, item, `${path}.${key}`));\n else if (schema.additionalProperties === false) errors.push(`${path}.${key} is not allowed.`);\n }\n }\n return errors;\n}\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { createAgentToolRegistry, RegisteredAgentTool } from "../registration.js";
|
|
2
|
+
export declare const toolRegistrySymbol: unique symbol;
|
|
3
|
+
export interface ToolRegistryController {
|
|
4
|
+
getTools(): readonly RegisteredAgentTool[];
|
|
5
|
+
}
|
|
6
|
+
export declare function getToolRegistryController(registry: ReturnType<typeof createAgentToolRegistry>): ToolRegistryController;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Generated from shared/tool-registry.ts. Do not edit manually.
|
|
2
|
+
export const toolRegistrySymbol = Symbol.for("@nexface/tools/tool-registry");
|
|
3
|
+
export function getToolRegistryController(registry) {
|
|
4
|
+
const controller = registry?.[toolRegistrySymbol];
|
|
5
|
+
if (!controller || typeof controller.getTools !== "function") {
|
|
6
|
+
throw new TypeError("toolRegistry must be created by createAgentToolRegistry(). Use matching Nexface package versions.");
|
|
7
|
+
}
|
|
8
|
+
return controller;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=tool-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../src/shared/tool-registry.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAIhE,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;AAM7E,MAAM,UAAU,yBAAyB,CAAC,QAAoD;IAC5F,MAAM,UAAU,GAAI,QAAgF,EAAE,CAAC,kBAAkB,CAAC,CAAC;IAC3H,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC7D,MAAM,IAAI,SAAS,CAAC,mGAAmG,CAAC,CAAC;IAC3H,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC","sourcesContent":["// Generated from shared/tool-registry.ts. Do not edit manually.\n\nimport type { createAgentToolRegistry, RegisteredAgentTool } from \"../registration.js\";\n\nexport const toolRegistrySymbol = Symbol.for(\"@nexface/tools/tool-registry\");\n\nexport interface ToolRegistryController {\n getTools(): readonly RegisteredAgentTool[];\n}\n\nexport function getToolRegistryController(registry: ReturnType<typeof createAgentToolRegistry>): ToolRegistryController {\n const controller = (registry as typeof registry & { [toolRegistrySymbol]?: ToolRegistryController })?.[toolRegistrySymbol];\n if (!controller || typeof controller.getTools !== \"function\") {\n throw new TypeError(\"toolRegistry must be created by createAgentToolRegistry(). Use matching Nexface package versions.\");\n }\n return controller;\n}\n"]}
|