@nexface/tools 0.1.13 → 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/index.d.ts CHANGED
@@ -7,4 +7,4 @@ export type { AgentNavigation, AgentNavigationConfig, AgentNavigationExecutors,
7
7
  export type { AgentToolBinding, AgentToolChatConfirmationConfig, AgentToolPageConfirmationConfig, AgentUIActionChildProps, AgentUIActionEvent, AgentUIActionProps, UseAgentToolDefaultOptions, UseAgentToolPageConfirmationOptions, } from "./react.js";
8
8
  export type { AgentToolConfirmationConfig, RuntimeAgentTool, ToolRuntime, ToolOperation, ToolRuntimeOptions, ToolRuntimeToolChangeEvent, } from "./runtime.js";
9
9
  export type { AgentContextEntry, AgentContextValue, AgentToolDefinition, AgentToolEffect, AgentToolExecutionContext, AgentToolExecutor, AgentToolInputSchema, InferJsonSchema, JsonSchema, } from "./types.js";
10
- export { registerAgentTool, type RegisteredAgentTool } from "./registration.js";
10
+ export { createAgentToolRegistry, registerAgentTool, type RegisteredAgentTool } from "./registration.js";
package/dist/index.js CHANGED
@@ -3,5 +3,5 @@ export { defineAgentNavigation } from "./navigation.js";
3
3
  export { AgentOperationSurface } from "./operation-surface.js";
4
4
  export { createToolRuntime, isToolRuntimeError, } from "./runtime.js";
5
5
  export { AgentContext, ToolsProvider, AgentUIAction, useAgentContext, useAgentNavigation, useAgentTool, } from "./react.js";
6
- export { registerAgentTool } from "./registration.js";
6
+ export { createAgentToolRegistry, registerAgentTool } from "./registration.js";
7
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAmC,MAAM,wBAAwB,CAAC;AAChG,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,YAAY,GACb,MAAM,YAAY,CAAC;AAqCpB,OAAO,EAAE,iBAAiB,EAA4B,MAAM,mBAAmB,CAAC","sourcesContent":["export { defineAgentTool } from \"./definition.js\";\nexport { defineAgentNavigation } from \"./navigation.js\";\nexport { AgentOperationSurface, type AgentOperationSurfaceProps } from \"./operation-surface.js\";\nexport {\n createToolRuntime,\n isToolRuntimeError,\n} from \"./runtime.js\";\nexport {\n AgentContext,\n ToolsProvider,\n AgentUIAction,\n useAgentContext,\n useAgentNavigation,\n useAgentTool,\n} from \"./react.js\";\nexport type {\n AgentNavigation,\n AgentNavigationConfig,\n AgentNavigationExecutors,\n AgentNavigationRouteConfig,\n} from \"./navigation.js\";\nexport type {\n AgentToolBinding,\n AgentToolChatConfirmationConfig,\n AgentToolPageConfirmationConfig,\n AgentUIActionChildProps,\n AgentUIActionEvent,\n AgentUIActionProps,\n UseAgentToolDefaultOptions,\n UseAgentToolPageConfirmationOptions,\n} from \"./react.js\";\nexport type {\n AgentToolConfirmationConfig,\n RuntimeAgentTool,\n ToolRuntime,\n ToolOperation,\n ToolRuntimeOptions,\n ToolRuntimeToolChangeEvent,\n} from \"./runtime.js\";\nexport type {\n AgentContextEntry,\n AgentContextValue,\n AgentToolDefinition,\n AgentToolEffect,\n AgentToolExecutionContext,\n AgentToolExecutor,\n AgentToolInputSchema,\n InferJsonSchema,\n JsonSchema,\n} from \"./types.js\";\n\nexport { registerAgentTool, type RegisteredAgentTool } from \"./registration.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAmC,MAAM,wBAAwB,CAAC;AAChG,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,YAAY,GACb,MAAM,YAAY,CAAC;AAqCpB,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAA4B,MAAM,mBAAmB,CAAC","sourcesContent":["export { defineAgentTool } from \"./definition.js\";\nexport { defineAgentNavigation } from \"./navigation.js\";\nexport { AgentOperationSurface, type AgentOperationSurfaceProps } from \"./operation-surface.js\";\nexport {\n createToolRuntime,\n isToolRuntimeError,\n} from \"./runtime.js\";\nexport {\n AgentContext,\n ToolsProvider,\n AgentUIAction,\n useAgentContext,\n useAgentNavigation,\n useAgentTool,\n} from \"./react.js\";\nexport type {\n AgentNavigation,\n AgentNavigationConfig,\n AgentNavigationExecutors,\n AgentNavigationRouteConfig,\n} from \"./navigation.js\";\nexport type {\n AgentToolBinding,\n AgentToolChatConfirmationConfig,\n AgentToolPageConfirmationConfig,\n AgentUIActionChildProps,\n AgentUIActionEvent,\n AgentUIActionProps,\n UseAgentToolDefaultOptions,\n UseAgentToolPageConfirmationOptions,\n} from \"./react.js\";\nexport type {\n AgentToolConfirmationConfig,\n RuntimeAgentTool,\n ToolRuntime,\n ToolOperation,\n ToolRuntimeOptions,\n ToolRuntimeToolChangeEvent,\n} from \"./runtime.js\";\nexport type {\n AgentContextEntry,\n AgentContextValue,\n AgentToolDefinition,\n AgentToolEffect,\n AgentToolExecutionContext,\n AgentToolExecutor,\n AgentToolInputSchema,\n InferJsonSchema,\n JsonSchema,\n} from \"./types.js\";\n\nexport { createAgentToolRegistry, registerAgentTool, type RegisteredAgentTool } from \"./registration.js\";\n"]}
@@ -9,3 +9,9 @@ export declare function registerAgentTool<TInput, TResult>(definition: AgentTool
9
9
  execute: RegisteredAgentTool<TInput, TResult>["execute"];
10
10
  requiresConfirmation?: never;
11
11
  }): RegisteredAgentTool<TInput, TResult>;
12
+ export declare function createAgentToolRegistry(): {
13
+ register<TInput, TResult>(definition: AgentToolDefinition<TInput, TResult>, options: {
14
+ execute: RegisteredAgentTool<TInput, TResult>["execute"];
15
+ requiresConfirmation?: never;
16
+ }): () => void;
17
+ };
@@ -1,3 +1,5 @@
1
+ import { defineAgentTool } from "./definition.js";
2
+ import { toolRegistrySymbol } from "./shared/tool-registry.js";
1
3
  import { assertAgentToolInputSchema } from "./shared/schema.js";
2
4
  export function registerAgentTool(definition, options) {
3
5
  if (!definition || typeof definition.name !== "string" || typeof options?.execute !== "function") {
@@ -9,4 +11,25 @@ export function registerAgentTool(definition, options) {
9
11
  assertAgentToolInputSchema(definition.inputSchema, `Tool "${definition.name}".inputSchema`);
10
12
  return Object.freeze({ definition, execute: options.execute });
11
13
  }
14
+ export function createAgentToolRegistry() {
15
+ const tools = new Map();
16
+ const registry = {
17
+ register(definition, options) {
18
+ const validated = registerAgentTool(definition, options);
19
+ if (tools.has(definition.name))
20
+ throw new TypeError(`Tool "${definition.name}" is already registered.`);
21
+ const copied = defineAgentTool(validated.definition);
22
+ const tool = Object.freeze({ definition: copied, execute: validated.execute });
23
+ tools.set(copied.name, tool);
24
+ return () => {
25
+ if (tools.get(copied.name) === tool)
26
+ tools.delete(copied.name);
27
+ };
28
+ },
29
+ };
30
+ Object.defineProperty(registry, toolRegistrySymbol, {
31
+ value: Object.freeze({ getTools: () => [...tools.values()] }),
32
+ });
33
+ return Object.freeze(registry);
34
+ }
12
35
  //# sourceMappingURL=registration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registration.js","sourceRoot":"","sources":["../src/registration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAQhE,MAAM,UAAU,iBAAiB,CAC/B,UAAgD,EAChD,OAAmG;IAEnG,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,OAAO,EAAE,OAAO,KAAK,UAAU,EAAE,CAAC;QACjG,MAAM,IAAI,SAAS,CAAC,+DAA+D,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,sBAAsB,IAAI,OAAO,EAAE,CAAC;QACtC,MAAM,IAAI,SAAS,CAAC,6DAA6D,CAAC,CAAC;IACrF,CAAC;IACD,0BAA0B,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,UAAU,CAAC,IAAI,eAAe,CAAC,CAAC;IAC5F,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AACjE,CAAC","sourcesContent":["import { assertAgentToolInputSchema } from \"./shared/schema.js\";\nimport type { AgentToolDefinition } from \"./types.js\";\n\nexport interface RegisteredAgentTool<TInput = any, TResult = any> {\n readonly definition: AgentToolDefinition<TInput, TResult>;\n readonly execute: (input: TInput, context: { signal: AbortSignal }) => TResult | Promise<TResult>;\n}\n\nexport function registerAgentTool<TInput, TResult>(\n definition: AgentToolDefinition<TInput, TResult>,\n options: { execute: RegisteredAgentTool<TInput, TResult>[\"execute\"]; requiresConfirmation?: never },\n): RegisteredAgentTool<TInput, TResult> {\n if (!definition || typeof definition.name !== \"string\" || typeof options?.execute !== \"function\") {\n throw new TypeError(\"registerAgentTool requires a definition and execute function.\");\n }\n if (\"requiresConfirmation\" in options) {\n throw new TypeError(\"Registered Agent tools do not support requiresConfirmation.\");\n }\n assertAgentToolInputSchema(definition.inputSchema, `Tool \"${definition.name}\".inputSchema`);\n return Object.freeze({ definition, execute: options.execute });\n}\n"]}
1
+ {"version":3,"file":"registration.js","sourceRoot":"","sources":["../src/registration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAQhE,MAAM,UAAU,iBAAiB,CAC/B,UAAgD,EAChD,OAAmG;IAEnG,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,OAAO,EAAE,OAAO,KAAK,UAAU,EAAE,CAAC;QACjG,MAAM,IAAI,SAAS,CAAC,+DAA+D,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,sBAAsB,IAAI,OAAO,EAAE,CAAC;QACtC,MAAM,IAAI,SAAS,CAAC,6DAA6D,CAAC,CAAC;IACrF,CAAC;IACD,0BAA0B,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,UAAU,CAAC,IAAI,eAAe,CAAC,CAAC;IAC5F,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,uBAAuB;IAMrC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA+B,CAAC;IACrD,MAAM,QAAQ,GAAG;QACf,QAAQ,CACN,UAAgD,EAChD,OAAmG;YAEnG,MAAM,SAAS,GAAG,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACzD,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,SAAS,UAAU,CAAC,IAAI,0BAA0B,CAAC,CAAC;YACxG,MAAM,MAAM,GAAG,eAAe,CAAkB,SAAS,CAAC,UAAU,CAAC,CAAC;YACtE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/E,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7B,OAAO,GAAG,EAAE;gBACV,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI;oBAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjE,CAAC,CAAC;QACJ,CAAC;KACF,CAAC;IACF,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,kBAAkB,EAAE;QAClD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;KAC9D,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC","sourcesContent":["import { defineAgentTool } from \"./definition.js\";\nimport { toolRegistrySymbol } from \"./shared/tool-registry.js\";\nimport { assertAgentToolInputSchema } from \"./shared/schema.js\";\nimport type { AgentToolDefinition } from \"./types.js\";\n\nexport interface RegisteredAgentTool<TInput = any, TResult = any> {\n readonly definition: AgentToolDefinition<TInput, TResult>;\n readonly execute: (input: TInput, context: { signal: AbortSignal }) => TResult | Promise<TResult>;\n}\n\nexport function registerAgentTool<TInput, TResult>(\n definition: AgentToolDefinition<TInput, TResult>,\n options: { execute: RegisteredAgentTool<TInput, TResult>[\"execute\"]; requiresConfirmation?: never },\n): RegisteredAgentTool<TInput, TResult> {\n if (!definition || typeof definition.name !== \"string\" || typeof options?.execute !== \"function\") {\n throw new TypeError(\"registerAgentTool requires a definition and execute function.\");\n }\n if (\"requiresConfirmation\" in options) {\n throw new TypeError(\"Registered Agent tools do not support requiresConfirmation.\");\n }\n assertAgentToolInputSchema(definition.inputSchema, `Tool \"${definition.name}\".inputSchema`);\n return Object.freeze({ definition, execute: options.execute });\n}\n\nexport function createAgentToolRegistry(): {\n register<TInput, TResult>(\n definition: AgentToolDefinition<TInput, TResult>,\n options: { execute: RegisteredAgentTool<TInput, TResult>[\"execute\"]; requiresConfirmation?: never },\n ): () => void;\n} {\n const tools = new Map<string, RegisteredAgentTool>();\n const registry = {\n register<TInput, TResult>(\n definition: AgentToolDefinition<TInput, TResult>,\n options: { execute: RegisteredAgentTool<TInput, TResult>[\"execute\"]; requiresConfirmation?: never },\n ): () => void {\n const validated = registerAgentTool(definition, options);\n if (tools.has(definition.name)) throw new TypeError(`Tool \"${definition.name}\" is already registered.`);\n const copied = defineAgentTool<TInput, TResult>(validated.definition);\n const tool = Object.freeze({ definition: copied, execute: validated.execute });\n tools.set(copied.name, tool);\n return () => {\n if (tools.get(copied.name) === tool) tools.delete(copied.name);\n };\n },\n };\n Object.defineProperty(registry, toolRegistrySymbol, {\n value: Object.freeze({ getTools: () => [...tools.values()] }),\n });\n return Object.freeze(registry);\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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexface/tools",
3
- "version": "0.1.13",
3
+ "version": "0.1.15-alpha.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {