toolception 0.2.1 → 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.
- package/dist/core/DynamicToolManager.d.ts +65 -0
- package/dist/core/DynamicToolManager.d.ts.map +1 -0
- package/dist/core/ServerOrchestrator.d.ts +27 -0
- package/dist/core/ServerOrchestrator.d.ts.map +1 -0
- package/dist/core/ToolRegistry.d.ts +18 -0
- package/dist/core/ToolRegistry.d.ts.map +1 -0
- package/dist/errors/ToolingError.d.ts +7 -0
- package/dist/errors/ToolingError.d.ts.map +1 -0
- package/dist/http/FastifyTransport.d.ts +27 -0
- package/dist/http/FastifyTransport.d.ts.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/meta/registerMetaTools.d.ts +7 -0
- package/dist/meta/registerMetaTools.d.ts.map +1 -0
- package/dist/mode/ModeResolver.d.ts +29 -0
- package/dist/mode/ModeResolver.d.ts.map +1 -0
- package/dist/mode/ModuleResolver.d.ts +19 -0
- package/dist/mode/ModuleResolver.d.ts.map +1 -0
- package/dist/mode/ToolsetValidator.d.ts +2 -0
- package/dist/mode/ToolsetValidator.d.ts.map +1 -0
- package/dist/mode/moduleLoading.d.ts +2 -0
- package/dist/mode/moduleLoading.d.ts.map +1 -0
- package/dist/server/createMcpServer.d.ts +27 -0
- package/dist/server/createMcpServer.d.ts.map +1 -0
- package/dist/session/ClientResourceCache.d.ts +22 -0
- package/dist/session/ClientResourceCache.d.ts.map +1 -0
- package/dist/types/index.d.ts +25 -0
- package/dist/types/index.d.ts.map +1 -0
- package/package.json +2 -2
|
@@ -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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"ToolsetValidator.d.ts","sourceRoot":"","sources":["../../src/mode/ToolsetValidator.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
|
@@ -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.
|
|
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": {
|