toolception 0.2.0 → 0.2.3

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.
@@ -0,0 +1,65 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { ExposurePolicy, ToolSetDefinition, ToolingErrorCode } from '../types/index.js';
3
+ import { ModuleResolver } from '../mode/ModuleResolver.js';
4
+ import { ToolRegistry } from './ToolRegistry.js';
5
+ export interface DynamicToolManagerOptions {
6
+ server: McpServer;
7
+ resolver: ModuleResolver;
8
+ context?: unknown;
9
+ onToolsListChanged?: () => Promise<void> | void;
10
+ exposurePolicy?: ExposurePolicy;
11
+ toolRegistry?: ToolRegistry;
12
+ }
13
+ export declare class DynamicToolManager {
14
+ private readonly server;
15
+ private readonly resolver;
16
+ private readonly context?;
17
+ private readonly onToolsListChanged?;
18
+ private readonly exposurePolicy?;
19
+ private readonly toolRegistry;
20
+ private readonly activeToolsets;
21
+ constructor(options: DynamicToolManagerOptions);
22
+ getAvailableToolsets(): string[];
23
+ getActiveToolsets(): string[];
24
+ getToolsetDefinition(name: string): ToolSetDefinition | undefined;
25
+ isActive(name: string): boolean;
26
+ enableToolset(toolsetName: string): Promise<{
27
+ success: boolean;
28
+ message: string;
29
+ }>;
30
+ disableToolset(toolsetName: string): Promise<{
31
+ success: boolean;
32
+ message: string;
33
+ }>;
34
+ getStatus(): {
35
+ availableToolsets: string[];
36
+ activeToolsets: string[];
37
+ registeredModules: never[];
38
+ totalToolsets: number;
39
+ activeCount: number;
40
+ tools: string[];
41
+ toolsetToTools: Record<string, string[]>;
42
+ };
43
+ enableToolsets(toolsetNames: string[]): Promise<{
44
+ success: boolean;
45
+ results: Array<{
46
+ name: string;
47
+ success: boolean;
48
+ message: string;
49
+ code?: ToolingErrorCode;
50
+ }>;
51
+ message: string;
52
+ }>;
53
+ private registerDirectTools;
54
+ enableAllToolsets(): Promise<{
55
+ success: boolean;
56
+ results: Array<{
57
+ name: string;
58
+ success: boolean;
59
+ message: string;
60
+ code?: ToolingErrorCode;
61
+ }>;
62
+ message: string;
63
+ }>;
64
+ }
65
+ //# sourceMappingURL=DynamicToolManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DynamicToolManager.d.ts","sourceRoot":"","sources":["../../src/core/DynamicToolManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EACV,cAAc,EAEd,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAA6B;IACjE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAE5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;gBAExC,OAAO,EAAE,yBAAyB;IAUvC,oBAAoB,IAAI,MAAM,EAAE;IAIhC,iBAAiB,IAAI,MAAM,EAAE;IAI7B,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIjE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIzB,aAAa,CACxB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IA2FpC,cAAc,CACzB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAoC1C,SAAS;;;;;;;;;IAYH,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC3D,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,KAAK,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,OAAO,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,CAAC,EAAE,gBAAgB,CAAC;SACzB,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAgCF,OAAO,CAAC,mBAAmB;IAuBd,iBAAiB,IAAI,OAAO,CAAC;QACxC,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,KAAK,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,OAAO,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,CAAC,EAAE,gBAAgB,CAAC;SACzB,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CAIH"}
@@ -0,0 +1,27 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { DynamicToolManager } from './DynamicToolManager.js';
3
+ import { ExposurePolicy, Mode, ToolSetCatalog } from '../types/index.js';
4
+ export interface ServerOrchestratorOptions {
5
+ server: McpServer;
6
+ catalog: ToolSetCatalog;
7
+ moduleLoaders?: Record<string, any>;
8
+ exposurePolicy?: ExposurePolicy;
9
+ context?: unknown;
10
+ notifyToolsListChanged?: () => Promise<void> | void;
11
+ startup?: {
12
+ mode?: Exclude<Mode, "ALL">;
13
+ toolsets?: string[] | "ALL";
14
+ };
15
+ registerMetaTools?: boolean;
16
+ }
17
+ export declare class ServerOrchestrator {
18
+ private readonly mode;
19
+ private readonly resolver;
20
+ private readonly manager;
21
+ private readonly toolsetValidator;
22
+ constructor(options: ServerOrchestratorOptions);
23
+ private resolveStartupConfig;
24
+ getMode(): Exclude<Mode, "ALL">;
25
+ getManager(): DynamicToolManager;
26
+ }
27
+ //# sourceMappingURL=ServerOrchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerOrchestrator.d.ts","sourceRoot":"","sources":["../../src/core/ServerOrchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG9E,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,cAAc,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpD,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;KAAE,CAAC;IACvE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;gBAExC,OAAO,EAAE,yBAAyB;IAoC9C,OAAO,CAAC,oBAAoB;IAqDrB,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;IAI/B,UAAU,IAAI,kBAAkB;CAGxC"}
@@ -0,0 +1,18 @@
1
+ import { McpToolDefinition } from '../types/index.js';
2
+ export interface ToolRegistryOptions {
3
+ namespaceWithToolset?: boolean;
4
+ }
5
+ export declare class ToolRegistry {
6
+ private readonly options;
7
+ private readonly names;
8
+ private readonly toolsetToNames;
9
+ constructor(options?: ToolRegistryOptions);
10
+ getSafeName(toolsetKey: string, toolName: string): string;
11
+ has(name: string): boolean;
12
+ add(name: string): void;
13
+ addForToolset(toolsetKey: string, name: string): void;
14
+ mapAndValidate(toolsetKey: string, tools: McpToolDefinition[]): McpToolDefinition[];
15
+ list(): string[];
16
+ listByToolset(): Record<string, string[]>;
17
+ }
18
+ //# sourceMappingURL=ToolRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolRegistry.d.ts","sourceRoot":"","sources":["../../src/core/ToolRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,MAAM,WAAW,mBAAmB;IAClC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkC;gBAErD,OAAO,GAAE,mBAAwB;IAMtC,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAMzD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAUvB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAOrD,cAAc,CACnB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,iBAAiB,EAAE,GACzB,iBAAiB,EAAE;IAaf,IAAI,IAAI,MAAM,EAAE;IAIhB,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAOjD"}
@@ -0,0 +1,7 @@
1
+ import { ToolingErrorCode } from '../types/index.js';
2
+ export declare class ToolingError extends Error {
3
+ readonly code: ToolingErrorCode;
4
+ readonly details?: Record<string, unknown>;
5
+ constructor(message: string, code: ToolingErrorCode, details?: Record<string, unknown>, _options?: unknown);
6
+ }
7
+ //# sourceMappingURL=ToolingError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolingError.d.ts","sourceRoot":"","sources":["../../src/errors/ToolingError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,qBAAa,YAAa,SAAQ,KAAK;IACrC,SAAgB,IAAI,EAAE,gBAAgB,CAAC;IACvC,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAGhD,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,gBAAgB,EACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,QAAQ,CAAC,EAAE,OAAO;CAOrB"}
@@ -0,0 +1,27 @@
1
+ import { FastifyInstance } from 'fastify';
2
+ import { DynamicToolManager } from '../core/DynamicToolManager.js';
3
+ import { ServerOrchestrator } from '../core/ServerOrchestrator.js';
4
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ export interface FastifyTransportOptions {
6
+ host?: string;
7
+ port?: number;
8
+ basePath?: string;
9
+ cors?: boolean;
10
+ logger?: boolean;
11
+ app?: FastifyInstance;
12
+ }
13
+ export declare class FastifyTransport {
14
+ private readonly options;
15
+ private readonly defaultManager;
16
+ private readonly createBundle;
17
+ private app;
18
+ private readonly configSchema?;
19
+ private readonly clientCache;
20
+ constructor(defaultManager: DynamicToolManager, createBundle: () => {
21
+ server: McpServer;
22
+ orchestrator: ServerOrchestrator;
23
+ }, options?: FastifyTransportOptions, configSchema?: object);
24
+ start(): Promise<void>;
25
+ stop(): Promise<void>;
26
+ }
27
+ //# sourceMappingURL=FastifyTransport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FastifyTransport.d.ts","sourceRoot":"","sources":["../../src/http/FastifyTransport.ts"],"names":[],"mappings":"AAAA,OAAgB,EACd,KAAK,eAAe,EAGrB,MAAM,SAAS,CAAC;AAGjB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAIxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAOtB;IACF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAG3B;IACF,OAAO,CAAC,GAAG,CAAgC;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;IAGvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAIvB;gBAGH,cAAc,EAAE,kBAAkB,EAClC,YAAY,EAAE,MAAM;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,YAAY,EAAE,kBAAkB,CAAA;KAAE,EAC3E,OAAO,GAAE,uBAA4B,EACrC,YAAY,CAAC,EAAE,MAAM;IAeV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiLtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAOnC"}
@@ -0,0 +1,4 @@
1
+ export { createMcpServer } from './server/createMcpServer.js';
2
+ export type { CreateMcpServerOptions } from './server/createMcpServer.js';
3
+ export type { ToolSetCatalog, ToolSetDefinition, McpToolDefinition, ExposurePolicy, Mode, ModuleLoader, } from './types/index.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,IAAI,EACJ,YAAY,GACb,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { Mode } from '../types/index.js';
3
+ import { DynamicToolManager } from '../core/DynamicToolManager.js';
4
+ export declare function registerMetaTools(server: McpServer, manager: DynamicToolManager, options?: {
5
+ mode?: Exclude<Mode, "ALL">;
6
+ }): void;
7
+ //# sourceMappingURL=registerMetaTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerMetaTools.d.ts","sourceRoot":"","sources":["../../src/meta/registerMetaTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;CAAE,GACxC,IAAI,CAgHN"}
@@ -0,0 +1,29 @@
1
+ import { Mode, ToolSetCatalog } from '../types/index.js';
2
+ interface ModeResolverKeys {
3
+ dynamic?: string[];
4
+ toolsets?: string[];
5
+ }
6
+ interface ModeResolverOptions {
7
+ keys?: ModeResolverKeys;
8
+ }
9
+ export declare class ToolsetValidator {
10
+ private readonly keys;
11
+ constructor(options?: ModeResolverOptions);
12
+ resolveMode(env?: Record<string, string | undefined>, args?: Record<string, unknown>): Mode | null;
13
+ parseCommaSeparatedToolSets(input: string, catalog: ToolSetCatalog): string[];
14
+ getModulesForToolSets(toolsets: string[], catalog: ToolSetCatalog): string[];
15
+ validateToolsetName(name: unknown, catalog: ToolSetCatalog): {
16
+ isValid: boolean;
17
+ sanitized?: string;
18
+ error?: string;
19
+ };
20
+ validateToolsetModules(toolsetNames: string[], catalog: ToolSetCatalog): {
21
+ isValid: boolean;
22
+ modules?: string[];
23
+ error?: string;
24
+ };
25
+ private isDynamicEnabled;
26
+ private getToolsetsString;
27
+ }
28
+ export {};
29
+ //# sourceMappingURL=ModeResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModeResolver.d.ts","sourceRoot":"","sources":["../../src/mode/ModeResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE9D,UAAU,gBAAgB;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,UAAU,mBAAmB;IAC3B,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB;AAWD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;gBAEtC,OAAO,GAAE,mBAAwB;IAOtC,WAAW,CAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACxC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,IAAI,GAAG,IAAI;IAgBP,2BAA2B,CAChC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,cAAc,GACtB,MAAM,EAAE;IAqBJ,qBAAqB,CAC1B,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,EAAE,cAAc,GACtB,MAAM,EAAE;IAUJ,mBAAmB,CACxB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,cAAc,GACtB;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IA6BpD,sBAAsB,CAC3B,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,EAAE,cAAc,GACtB;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAoB3D,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,iBAAiB;CAW1B"}
@@ -0,0 +1,19 @@
1
+ import { ToolSetCatalog, ToolSetDefinition, McpToolDefinition, ModuleLoader } from '../types/index.js';
2
+ export interface ModuleResolverOptions {
3
+ catalog: ToolSetCatalog;
4
+ moduleLoaders?: Record<string, ModuleLoader>;
5
+ }
6
+ export declare class ModuleResolver {
7
+ private readonly catalog;
8
+ private readonly moduleLoaders;
9
+ constructor(options: ModuleResolverOptions);
10
+ getAvailableToolsets(): string[];
11
+ getToolsetDefinition(name: string): ToolSetDefinition | undefined;
12
+ validateToolsetName(name: unknown): {
13
+ isValid: boolean;
14
+ sanitized?: string;
15
+ error?: string;
16
+ };
17
+ resolveToolsForToolsets(toolsets: string[], context?: unknown): Promise<McpToolDefinition[]>;
18
+ }
19
+ //# sourceMappingURL=ModuleResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleResolver.d.ts","sourceRoot":"","sources":["../../src/mode/ModuleResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACb,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,cAAc,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAC9C;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+B;gBAEjD,OAAO,EAAE,qBAAqB;IAKnC,oBAAoB,IAAI,MAAM,EAAE;IAIhC,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIjE,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG;QACzC,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;IA6BY,uBAAuB,CAClC,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,iBAAiB,EAAE,CAAC;CA4BhC"}
@@ -0,0 +1,2 @@
1
+ export * from './ModeResolver.js';
2
+ //# sourceMappingURL=ToolsetValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolsetValidator.d.ts","sourceRoot":"","sources":["../../src/mode/ToolsetValidator.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=moduleLoading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moduleLoading.d.ts","sourceRoot":"","sources":["../../src/mode/moduleLoading.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { ExposurePolicy, Mode, ToolSetCatalog } from '../types/index.js';
3
+ import { FastifyTransportOptions } from '../http/FastifyTransport.js';
4
+ export interface CreateMcpServerOptions {
5
+ catalog: ToolSetCatalog;
6
+ moduleLoaders?: Record<string, any>;
7
+ exposurePolicy?: ExposurePolicy;
8
+ context?: unknown;
9
+ startup?: {
10
+ mode?: Exclude<Mode, "ALL">;
11
+ toolsets?: string[] | "ALL";
12
+ };
13
+ registerMetaTools?: boolean;
14
+ http?: FastifyTransportOptions;
15
+ /** Factory to create an MCP server instance. Required.
16
+ * In DYNAMIC mode, a new instance is created per client bundle.
17
+ * In STATIC mode, a single instance is created and reused across bundles.
18
+ */
19
+ createServer: () => McpServer;
20
+ configSchema?: object;
21
+ }
22
+ export declare function createMcpServer(options: CreateMcpServerOptions): Promise<{
23
+ server: McpServer;
24
+ start: () => Promise<void>;
25
+ close: () => Promise<void>;
26
+ }>;
27
+ //# sourceMappingURL=createMcpServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMcpServer.d.ts","sourceRoot":"","sources":["../../src/server/createMcpServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE9E,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,6BAA6B,CAAC;AAErC,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,cAAc,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;KAAE,CAAC;IACvE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,IAAI,CAAC,EAAE,uBAAuB,CAAC;IAC/B;;;OAGG;IACH,YAAY,EAAE,MAAM,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB;;;;GA+EpE"}
@@ -0,0 +1,22 @@
1
+ export interface ClientResourceCacheOptions {
2
+ maxSize?: number;
3
+ ttlMs?: number;
4
+ pruneIntervalMs?: number;
5
+ }
6
+ export declare class ClientResourceCache<T> {
7
+ private storage;
8
+ private maxSize;
9
+ private ttlMs;
10
+ private pruneInterval?;
11
+ constructor(options?: ClientResourceCacheOptions);
12
+ getEntryCount(): number;
13
+ getMaxSize(): number;
14
+ getTtl(): number;
15
+ get(key: string): T | null;
16
+ set(key: string, resource: T): void;
17
+ delete(key: string): void;
18
+ stop(): void;
19
+ private evictLeastRecentlyUsed;
20
+ private pruneExpired;
21
+ }
22
+ //# sourceMappingURL=ClientResourceCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientResourceCache.d.ts","sourceRoot":"","sources":["../../src/session/ClientResourceCache.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAOD,qBAAa,mBAAmB,CAAC,CAAC;IAChC,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,aAAa,CAAC,CAAiC;gBAE3C,OAAO,GAAE,0BAA+B;IAO7C,aAAa,IAAI,MAAM;IAIvB,UAAU,IAAI,MAAM;IAIpB,MAAM,IAAI,MAAM;IAIhB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAa1B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI;IAQnC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIzB,IAAI,IAAI,IAAI;IAOnB,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,YAAY;CAQrB"}
@@ -0,0 +1,25 @@
1
+ export type McpToolDefinition = {
2
+ name: string;
3
+ description: string;
4
+ inputSchema: Record<string, any>;
5
+ handler: (args: any) => Promise<any> | any;
6
+ };
7
+ export type ToolSetDefinition = {
8
+ name: string;
9
+ description: string;
10
+ tools?: McpToolDefinition[];
11
+ modules?: string[];
12
+ decisionCriteria?: string;
13
+ };
14
+ export type ToolSetCatalog = Record<string, ToolSetDefinition>;
15
+ export type Mode = "DYNAMIC" | "STATIC" | "ALL";
16
+ export type ExposurePolicy = {
17
+ maxActiveToolsets?: number;
18
+ namespaceToolsWithSetKey?: boolean;
19
+ allowlist?: string[];
20
+ denylist?: string[];
21
+ onLimitExceeded?: (attempted: string[], active: string[]) => void;
22
+ };
23
+ export type ToolingErrorCode = "E_VALIDATION" | "E_POLICY_MAX_ACTIVE" | "E_TOOL_NAME_CONFLICT" | "E_NOTIFY_FAILED" | "E_INTERNAL";
24
+ export type ModuleLoader = (context?: unknown) => Promise<McpToolDefinition[]> | McpToolDefinition[];
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAE5B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAE/D,MAAM,MAAM,IAAI,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEhD,MAAM,MAAM,cAAc,GAAG;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACnE,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB,cAAc,GACd,qBAAqB,GACrB,sBAAsB,GACtB,iBAAiB,GACjB,YAAY,CAAC;AAKjB,MAAM,MAAM,YAAY,GAAG,CACzB,OAAO,CAAC,EAAE,OAAO,KACd,OAAO,CAAC,iBAAiB,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "toolception",
3
- "version": "0.2.0",
3
+ "version": "0.2.3",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -22,7 +22,6 @@
22
22
  "dev:client-demo": "tsx tests/smoke-e2e/client-demo.ts",
23
23
  "prepublishOnly": "npm run typecheck && npm run build && npm run test:run"
24
24
  },
25
- "peerDependencies": {},
26
25
  "dependencies": {
27
26
  "@fastify/cors": "^10.0.1",
28
27
  "@modelcontextprotocol/sdk": "^1.0.0",
@@ -36,6 +35,7 @@
36
35
  "tsx": "^4.19.0",
37
36
  "typescript": "^5.3.3",
38
37
  "vite": "^5.3.1",
38
+ "vite-plugin-dts": "^4.5.4",
39
39
  "vitest": "^3.2.4"
40
40
  },
41
41
  "engines": {
@@ -64,5 +64,12 @@
64
64
  "ai",
65
65
  "llm",
66
66
  "agents"
67
- ]
67
+ ],
68
+ "repository": {
69
+ "type": "git",
70
+ "url": "https://github.com/code-rabi/toolception.git"
71
+ },
72
+ "bugs": {
73
+ "url": "https://github.com/code-rabi/toolception/issues"
74
+ }
68
75
  }