foundryvtt-mcp 0.11.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/LICENSE +21 -0
- package/README.md +142 -0
- package/dist/character/manager.d.ts +92 -0
- package/dist/character/manager.d.ts.map +1 -0
- package/dist/character/manager.js +208 -0
- package/dist/character/manager.js.map +1 -0
- package/dist/combat/manager.d.ts +94 -0
- package/dist/combat/manager.d.ts.map +1 -0
- package/dist/combat/manager.js +373 -0
- package/dist/combat/manager.js.map +1 -0
- package/dist/config/index.d.ts +114 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +177 -0
- package/dist/config/index.js.map +1 -0
- package/dist/diagnostics/client.d.ts +193 -0
- package/dist/diagnostics/client.d.ts.map +1 -0
- package/dist/diagnostics/client.js +314 -0
- package/dist/diagnostics/client.js.map +1 -0
- package/dist/diagnostics/types.d.ts +414 -0
- package/dist/diagnostics/types.d.ts.map +1 -0
- package/dist/diagnostics/types.js +94 -0
- package/dist/diagnostics/types.js.map +1 -0
- package/dist/foundry/auth.d.ts +19 -0
- package/dist/foundry/auth.d.ts.map +1 -0
- package/dist/foundry/auth.js +135 -0
- package/dist/foundry/auth.js.map +1 -0
- package/dist/foundry/client.d.ts +95 -0
- package/dist/foundry/client.d.ts.map +1 -0
- package/dist/foundry/client.js +692 -0
- package/dist/foundry/client.js.map +1 -0
- package/dist/foundry/types.d.ts +805 -0
- package/dist/foundry/types.d.ts.map +1 -0
- package/dist/foundry/types.js +13 -0
- package/dist/foundry/types.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +199 -0
- package/dist/index.js.map +1 -0
- package/dist/resources/index.d.ts +3 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +93 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/tools/base.d.ts +80 -0
- package/dist/tools/base.d.ts.map +1 -0
- package/dist/tools/base.js +73 -0
- package/dist/tools/base.js.map +1 -0
- package/dist/tools/definitions.d.ts +414 -0
- package/dist/tools/definitions.d.ts.map +1 -0
- package/dist/tools/definitions.js +429 -0
- package/dist/tools/definitions.js.map +1 -0
- package/dist/tools/handlers/actors.d.ts +31 -0
- package/dist/tools/handlers/actors.d.ts.map +1 -0
- package/dist/tools/handlers/actors.js +76 -0
- package/dist/tools/handlers/actors.js.map +1 -0
- package/dist/tools/handlers/chat.d.ts +13 -0
- package/dist/tools/handlers/chat.d.ts.map +1 -0
- package/dist/tools/handlers/chat.js +38 -0
- package/dist/tools/handlers/chat.js.map +1 -0
- package/dist/tools/handlers/combat.d.ts +11 -0
- package/dist/tools/handlers/combat.d.ts.map +1 -0
- package/dist/tools/handlers/combat.js +48 -0
- package/dist/tools/handlers/combat.js.map +1 -0
- package/dist/tools/handlers/diagnostics.d.ts +64 -0
- package/dist/tools/handlers/diagnostics.d.ts.map +1 -0
- package/dist/tools/handlers/diagnostics.js +182 -0
- package/dist/tools/handlers/diagnostics.js.map +1 -0
- package/dist/tools/handlers/dice.d.ts +39 -0
- package/dist/tools/handlers/dice.d.ts.map +1 -0
- package/dist/tools/handlers/dice.js +53 -0
- package/dist/tools/handlers/dice.js.map +1 -0
- package/dist/tools/handlers/generation.d.ts +44 -0
- package/dist/tools/handlers/generation.d.ts.map +1 -0
- package/dist/tools/handlers/generation.js +205 -0
- package/dist/tools/handlers/generation.js.map +1 -0
- package/dist/tools/handlers/items.d.ts +21 -0
- package/dist/tools/handlers/items.d.ts.map +1 -0
- package/dist/tools/handlers/items.js +50 -0
- package/dist/tools/handlers/items.js.map +1 -0
- package/dist/tools/handlers/journals.d.ts +22 -0
- package/dist/tools/handlers/journals.d.ts.map +1 -0
- package/dist/tools/handlers/journals.js +62 -0
- package/dist/tools/handlers/journals.js.map +1 -0
- package/dist/tools/handlers/resources.d.ts +13 -0
- package/dist/tools/handlers/resources.d.ts.map +1 -0
- package/dist/tools/handlers/resources.js +188 -0
- package/dist/tools/handlers/resources.js.map +1 -0
- package/dist/tools/handlers/scenes.d.ts +18 -0
- package/dist/tools/handlers/scenes.d.ts.map +1 -0
- package/dist/tools/handlers/scenes.js +34 -0
- package/dist/tools/handlers/scenes.js.map +1 -0
- package/dist/tools/handlers/users.d.ts +11 -0
- package/dist/tools/handlers/users.d.ts.map +1 -0
- package/dist/tools/handlers/users.js +34 -0
- package/dist/tools/handlers/users.js.map +1 -0
- package/dist/tools/handlers/utils.d.ts +11 -0
- package/dist/tools/handlers/utils.d.ts.map +1 -0
- package/dist/tools/handlers/utils.js +24 -0
- package/dist/tools/handlers/utils.js.map +1 -0
- package/dist/tools/handlers/world.d.ts +26 -0
- package/dist/tools/handlers/world.d.ts.map +1 -0
- package/dist/tools/handlers/world.js +92 -0
- package/dist/tools/handlers/world.js.map +1 -0
- package/dist/tools/index.d.ts +19 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +22 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/new-router.d.ts +29 -0
- package/dist/tools/new-router.d.ts.map +1 -0
- package/dist/tools/new-router.js +97 -0
- package/dist/tools/new-router.js.map +1 -0
- package/dist/tools/registry.d.ts +51 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +79 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/resources.d.ts +16 -0
- package/dist/tools/resources.d.ts.map +1 -0
- package/dist/tools/resources.js +63 -0
- package/dist/tools/resources.js.map +1 -0
- package/dist/tools/router.d.ts +22 -0
- package/dist/tools/router.d.ts.map +1 -0
- package/dist/tools/router.js +128 -0
- package/dist/tools/router.js.map +1 -0
- package/dist/utils/cache-instance.d.ts +25 -0
- package/dist/utils/cache-instance.d.ts.map +1 -0
- package/dist/utils/cache-instance.js +30 -0
- package/dist/utils/cache-instance.js.map +1 -0
- package/dist/utils/cache.d.ts +80 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +205 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/diagnostics.d.ts +114 -0
- package/dist/utils/diagnostics.d.ts.map +1 -0
- package/dist/utils/diagnostics.js +330 -0
- package/dist/utils/diagnostics.js.map +1 -0
- package/dist/utils/logger.d.ts +137 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +158 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +98 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"world.js","sourceRoot":"","sources":["../../../src/tools/handlers/world.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools module entry point
|
|
3
|
+
*/
|
|
4
|
+
export { getAllTools } from './definitions.js';
|
|
5
|
+
export * from './handlers/actors.js';
|
|
6
|
+
export * from './handlers/chat.js';
|
|
7
|
+
export * from './handlers/combat.js';
|
|
8
|
+
export * from './handlers/diagnostics.js';
|
|
9
|
+
export * from './handlers/dice.js';
|
|
10
|
+
export * from './handlers/generation.js';
|
|
11
|
+
export * from './handlers/items.js';
|
|
12
|
+
export * from './handlers/journals.js';
|
|
13
|
+
export * from './handlers/resources.js';
|
|
14
|
+
export * from './handlers/scenes.js';
|
|
15
|
+
export * from './handlers/users.js';
|
|
16
|
+
export * from './handlers/world.js';
|
|
17
|
+
export { getAllResources } from './resources.js';
|
|
18
|
+
export { routeResourceRequest, routeToolRequest } from './router.js';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools module entry point
|
|
3
|
+
*/
|
|
4
|
+
// Export tool and resource definitions
|
|
5
|
+
export { getAllTools } from './definitions.js';
|
|
6
|
+
export * from './handlers/actors.js';
|
|
7
|
+
export * from './handlers/chat.js';
|
|
8
|
+
export * from './handlers/combat.js';
|
|
9
|
+
export * from './handlers/diagnostics.js';
|
|
10
|
+
// Export individual handlers for testing
|
|
11
|
+
export * from './handlers/dice.js';
|
|
12
|
+
export * from './handlers/generation.js';
|
|
13
|
+
export * from './handlers/items.js';
|
|
14
|
+
export * from './handlers/journals.js';
|
|
15
|
+
export * from './handlers/resources.js';
|
|
16
|
+
export * from './handlers/scenes.js';
|
|
17
|
+
export * from './handlers/users.js';
|
|
18
|
+
export * from './handlers/world.js';
|
|
19
|
+
export { getAllResources } from './resources.js';
|
|
20
|
+
// Export routing functions
|
|
21
|
+
export { routeResourceRequest, routeToolRequest } from './router.js';
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,uCAAuC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,yCAAyC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,2BAA2B;AAC3B,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview New tool routing implementation using registry pattern
|
|
3
|
+
*
|
|
4
|
+
* This module provides a cleaner routing system that uses the tool registry
|
|
5
|
+
* and eliminates the need for manual switch statements and validation.
|
|
6
|
+
*/
|
|
7
|
+
import type { DiagnosticsClient } from '../diagnostics/client.js';
|
|
8
|
+
import type { FoundryClient } from '../foundry/client.js';
|
|
9
|
+
import type { DiagnosticSystem } from '../utils/diagnostics.js';
|
|
10
|
+
/**
|
|
11
|
+
* Routes tool requests using the new registry system
|
|
12
|
+
*/
|
|
13
|
+
export declare function routeToolRequest(name: string, args: Record<string, unknown>, foundryClient: FoundryClient, diagnosticsClient: DiagnosticsClient, diagnosticSystem: DiagnosticSystem): Promise<import("./base.js").ToolResult | {
|
|
14
|
+
content: {
|
|
15
|
+
type: string;
|
|
16
|
+
text: string;
|
|
17
|
+
}[];
|
|
18
|
+
}>;
|
|
19
|
+
/**
|
|
20
|
+
* Routes resource requests to appropriate handlers
|
|
21
|
+
*/
|
|
22
|
+
export declare function routeResourceRequest(uri: string, foundryClient: FoundryClient, diagnosticsClient: DiagnosticsClient): Promise<{
|
|
23
|
+
contents: {
|
|
24
|
+
uri: string;
|
|
25
|
+
mimeType: string;
|
|
26
|
+
text: string;
|
|
27
|
+
}[];
|
|
28
|
+
}>;
|
|
29
|
+
//# sourceMappingURL=new-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new-router.d.ts","sourceRoot":"","sources":["../../src/tools/new-router.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAkBhE;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB;;;;;GA2BnC;AAuED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB;;;;;;GAIrC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview New tool routing implementation using registry pattern
|
|
3
|
+
*
|
|
4
|
+
* This module provides a cleaner routing system that uses the tool registry
|
|
5
|
+
* and eliminates the need for manual switch statements and validation.
|
|
6
|
+
*/
|
|
7
|
+
import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
8
|
+
import { logger } from '../utils/logger.js';
|
|
9
|
+
// Import legacy handlers for tools not yet converted
|
|
10
|
+
import { handleGetActorDetails, handleSearchActors } from './handlers/actors.js';
|
|
11
|
+
import { handleDiagnoseErrors, handleGetHealthStatus, handleGetRecentLogs, handleGetSystemHealth, handleSearchLogs, } from './handlers/diagnostics.js';
|
|
12
|
+
import { handleGenerateLoot, handleGenerateNPC, handleLookupRule } from './handlers/generation.js';
|
|
13
|
+
import { handleSearchItems } from './handlers/items.js';
|
|
14
|
+
import { handleReadResource } from './handlers/resources.js';
|
|
15
|
+
import { handleGetSceneInfo } from './handlers/scenes.js';
|
|
16
|
+
import { toolRegistry } from './registry.js';
|
|
17
|
+
/**
|
|
18
|
+
* Routes tool requests using the new registry system
|
|
19
|
+
*/
|
|
20
|
+
export async function routeToolRequest(name, args, foundryClient, diagnosticsClient, diagnosticSystem) {
|
|
21
|
+
logger.debug(`Routing tool request: ${name}`, { args });
|
|
22
|
+
const context = {
|
|
23
|
+
foundryClient,
|
|
24
|
+
diagnosticsClient,
|
|
25
|
+
diagnosticSystem,
|
|
26
|
+
};
|
|
27
|
+
// Try to execute using the new registry system
|
|
28
|
+
if (toolRegistry.has(name)) {
|
|
29
|
+
try {
|
|
30
|
+
return await toolRegistry.execute(name, args, context);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
if (error instanceof McpError) {
|
|
34
|
+
throw error;
|
|
35
|
+
}
|
|
36
|
+
throw new McpError(ErrorCode.InternalError, `Tool execution failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// Fallback to legacy handlers for tools not yet converted
|
|
40
|
+
return await routeLegacyTool(name, args, foundryClient, diagnosticsClient, diagnosticSystem);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Legacy routing for tools not yet converted to the new system
|
|
44
|
+
* @deprecated This will be removed once all tools are converted
|
|
45
|
+
*/
|
|
46
|
+
async function routeLegacyTool(name, args, foundryClient, diagnosticsClient, diagnosticSystem) {
|
|
47
|
+
switch (name) {
|
|
48
|
+
// Actor tools
|
|
49
|
+
case 'search_actors':
|
|
50
|
+
return handleSearchActors(args, foundryClient);
|
|
51
|
+
case 'get_actor_details':
|
|
52
|
+
if (!('actorId' in args) || typeof args.actorId !== 'string') {
|
|
53
|
+
throw new Error('Missing required parameter: actorId');
|
|
54
|
+
}
|
|
55
|
+
return handleGetActorDetails(args, foundryClient);
|
|
56
|
+
// Item tools
|
|
57
|
+
case 'search_items':
|
|
58
|
+
return handleSearchItems(args, foundryClient);
|
|
59
|
+
// Scene tools
|
|
60
|
+
case 'get_scene_info':
|
|
61
|
+
return handleGetSceneInfo(args, foundryClient);
|
|
62
|
+
// Generation tools
|
|
63
|
+
case 'generate_npc':
|
|
64
|
+
return handleGenerateNPC(args, foundryClient);
|
|
65
|
+
case 'generate_loot':
|
|
66
|
+
return handleGenerateLoot(args, foundryClient);
|
|
67
|
+
case 'lookup_rule':
|
|
68
|
+
if (!('query' in args) || typeof args.query !== 'string') {
|
|
69
|
+
throw new Error('Missing required parameter: query');
|
|
70
|
+
}
|
|
71
|
+
return handleLookupRule(args, foundryClient);
|
|
72
|
+
// Diagnostics tools
|
|
73
|
+
case 'get_recent_logs':
|
|
74
|
+
return handleGetRecentLogs(args, diagnosticsClient);
|
|
75
|
+
case 'search_logs':
|
|
76
|
+
if (!('query' in args) || typeof args.query !== 'string') {
|
|
77
|
+
throw new Error('Missing required parameter: query');
|
|
78
|
+
}
|
|
79
|
+
return handleSearchLogs(args, diagnosticsClient);
|
|
80
|
+
case 'get_system_health':
|
|
81
|
+
return handleGetSystemHealth(args, diagnosticsClient);
|
|
82
|
+
case 'diagnose_errors':
|
|
83
|
+
return handleDiagnoseErrors(args, diagnosticSystem);
|
|
84
|
+
case 'get_health_status':
|
|
85
|
+
return handleGetHealthStatus(args, foundryClient, diagnosticsClient);
|
|
86
|
+
default:
|
|
87
|
+
throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Routes resource requests to appropriate handlers
|
|
92
|
+
*/
|
|
93
|
+
export async function routeResourceRequest(uri, foundryClient, diagnosticsClient) {
|
|
94
|
+
logger.debug(`Routing resource request: ${uri}`);
|
|
95
|
+
return handleReadResource(uri, foundryClient, diagnosticsClient);
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=new-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new-router.js","sourceRoot":"","sources":["../../src/tools/new-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Tool registry for the new tool system
|
|
3
|
+
*
|
|
4
|
+
* This module manages tool registration and provides a clean interface
|
|
5
|
+
* for tool execution with automatic validation.
|
|
6
|
+
*/
|
|
7
|
+
import type { Tool, ToolContext, ToolResult } from './base.js';
|
|
8
|
+
/**
|
|
9
|
+
* Tool registry manages all available tools
|
|
10
|
+
*/
|
|
11
|
+
export declare class ToolRegistry {
|
|
12
|
+
private tools;
|
|
13
|
+
constructor();
|
|
14
|
+
/**
|
|
15
|
+
* Register a tool in the registry
|
|
16
|
+
*/
|
|
17
|
+
register(tool: Tool): void;
|
|
18
|
+
/**
|
|
19
|
+
* Execute a tool by name with given arguments
|
|
20
|
+
*/
|
|
21
|
+
execute(name: string, args: Record<string, unknown>, context: ToolContext): Promise<ToolResult>;
|
|
22
|
+
/**
|
|
23
|
+
* Get all registered tool names
|
|
24
|
+
*/
|
|
25
|
+
getToolNames(): string[];
|
|
26
|
+
/**
|
|
27
|
+
* Get tool definitions for MCP
|
|
28
|
+
*/
|
|
29
|
+
getToolDefinitions(): Array<{
|
|
30
|
+
name: string;
|
|
31
|
+
description: string;
|
|
32
|
+
inputSchema: object;
|
|
33
|
+
}>;
|
|
34
|
+
/**
|
|
35
|
+
* Check if a tool is registered
|
|
36
|
+
*/
|
|
37
|
+
has(name: string): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Get a specific tool instance
|
|
40
|
+
*/
|
|
41
|
+
get(name: string): Tool | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Register all default tools
|
|
44
|
+
*/
|
|
45
|
+
private registerDefaultTools;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Global tool registry instance
|
|
49
|
+
*/
|
|
50
|
+
export declare const toolRegistry: ToolRegistry;
|
|
51
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG/D;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAA2B;;IAMxC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAS1B;;OAEG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC;IAUtB;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;OAEG;IACH,kBAAkB,IAAI,KAAK,CAAC;QAC1B,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAQF;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAInC;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAO7B;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,cAAqB,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Tool registry for the new tool system
|
|
3
|
+
*
|
|
4
|
+
* This module manages tool registration and provides a clean interface
|
|
5
|
+
* for tool execution with automatic validation.
|
|
6
|
+
*/
|
|
7
|
+
import { logger } from '../utils/logger.js';
|
|
8
|
+
import { RollDiceTool } from './handlers/dice.js';
|
|
9
|
+
/**
|
|
10
|
+
* Tool registry manages all available tools
|
|
11
|
+
*/
|
|
12
|
+
export class ToolRegistry {
|
|
13
|
+
tools = new Map();
|
|
14
|
+
constructor() {
|
|
15
|
+
this.registerDefaultTools();
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Register a tool in the registry
|
|
19
|
+
*/
|
|
20
|
+
register(tool) {
|
|
21
|
+
if (this.tools.has(tool.name)) {
|
|
22
|
+
logger.warn(`Tool '${tool.name}' is already registered, replacing...`);
|
|
23
|
+
}
|
|
24
|
+
this.tools.set(tool.name, tool);
|
|
25
|
+
logger.debug(`Registered tool: ${tool.name}`);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Execute a tool by name with given arguments
|
|
29
|
+
*/
|
|
30
|
+
async execute(name, args, context) {
|
|
31
|
+
const tool = this.tools.get(name);
|
|
32
|
+
if (!tool) {
|
|
33
|
+
throw new Error(`Unknown tool: ${name}`);
|
|
34
|
+
}
|
|
35
|
+
return await tool.execute(args, context);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get all registered tool names
|
|
39
|
+
*/
|
|
40
|
+
getToolNames() {
|
|
41
|
+
return Array.from(this.tools.keys());
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get tool definitions for MCP
|
|
45
|
+
*/
|
|
46
|
+
getToolDefinitions() {
|
|
47
|
+
return Array.from(this.tools.values()).map((tool) => ({
|
|
48
|
+
name: tool.name,
|
|
49
|
+
description: tool.description,
|
|
50
|
+
inputSchema: tool.inputSchema,
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Check if a tool is registered
|
|
55
|
+
*/
|
|
56
|
+
has(name) {
|
|
57
|
+
return this.tools.has(name);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get a specific tool instance
|
|
61
|
+
*/
|
|
62
|
+
get(name) {
|
|
63
|
+
return this.tools.get(name);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Register all default tools
|
|
67
|
+
*/
|
|
68
|
+
registerDefaultTools() {
|
|
69
|
+
// Register the dice tool (converted to new system)
|
|
70
|
+
this.register(new RollDiceTool());
|
|
71
|
+
// TODO: Register other tools as they are converted
|
|
72
|
+
logger.info(`Registered ${this.tools.size} tools`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Global tool registry instance
|
|
77
|
+
*/
|
|
78
|
+
export const toolRegistry = new ToolRegistry();
|
|
79
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,KAAK,GAAG,IAAI,GAAG,EAAgB,CAAC;IAExC;QACE,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAU;QACjB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,uCAAuC,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CACX,IAAY,EACZ,IAA6B,EAC7B,OAAoB;QAEpB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAElC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,kBAAkB;QAKhB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,mDAAmD;QACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;QAElC,mDAAmD;QACnD,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC;IACrD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resource definitions for FoundryVTT MCP Server
|
|
3
|
+
*/
|
|
4
|
+
export declare const resourceDefinitions: {
|
|
5
|
+
uri: string;
|
|
6
|
+
name: string;
|
|
7
|
+
description: string;
|
|
8
|
+
mimeType: string;
|
|
9
|
+
}[];
|
|
10
|
+
export declare function getAllResources(): {
|
|
11
|
+
uri: string;
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
mimeType: string;
|
|
15
|
+
}[];
|
|
16
|
+
//# sourceMappingURL=resources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/tools/resources.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,mBAAmB;;;;;GAuD/B,CAAC;AAEF,wBAAgB,eAAe;;;;;IAE9B"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resource definitions for FoundryVTT MCP Server
|
|
3
|
+
*/
|
|
4
|
+
export const resourceDefinitions = [
|
|
5
|
+
{
|
|
6
|
+
uri: 'foundry://actors',
|
|
7
|
+
name: 'All Actors',
|
|
8
|
+
description: 'List of all actors in the current world',
|
|
9
|
+
mimeType: 'application/json',
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
uri: 'foundry://items',
|
|
13
|
+
name: 'All Items',
|
|
14
|
+
description: 'List of all items in the current world',
|
|
15
|
+
mimeType: 'application/json',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
uri: 'foundry://scenes',
|
|
19
|
+
name: 'All Scenes',
|
|
20
|
+
description: 'List of all scenes in the current world',
|
|
21
|
+
mimeType: 'application/json',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
uri: 'foundry://scenes/current',
|
|
25
|
+
name: 'Current Scene',
|
|
26
|
+
description: 'Information about the currently active scene',
|
|
27
|
+
mimeType: 'application/json',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
uri: 'foundry://journals',
|
|
31
|
+
name: 'All Journals',
|
|
32
|
+
description: 'List of all journal entries in the current world',
|
|
33
|
+
mimeType: 'application/json',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
uri: 'foundry://users',
|
|
37
|
+
name: 'Users',
|
|
38
|
+
description: 'List of users and their online status',
|
|
39
|
+
mimeType: 'application/json',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
uri: 'foundry://combat',
|
|
43
|
+
name: 'Active Combat',
|
|
44
|
+
description: 'Current active combat encounter state',
|
|
45
|
+
mimeType: 'application/json',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
uri: 'foundry://world/settings',
|
|
49
|
+
name: 'Game Settings',
|
|
50
|
+
description: 'Current world and game system settings',
|
|
51
|
+
mimeType: 'application/json',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
uri: 'foundry://system/diagnostics',
|
|
55
|
+
name: 'System Diagnostics',
|
|
56
|
+
description: 'System health and diagnostic information (requires REST API module)',
|
|
57
|
+
mimeType: 'application/json',
|
|
58
|
+
},
|
|
59
|
+
];
|
|
60
|
+
export function getAllResources() {
|
|
61
|
+
return resourceDefinitions;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=resources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/tools/resources.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC;QACE,GAAG,EAAE,kBAAkB;QACvB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,yCAAyC;QACtD,QAAQ,EAAE,kBAAkB;KAC7B;IACD;QACE,GAAG,EAAE,iBAAiB;QACtB,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,wCAAwC;QACrD,QAAQ,EAAE,kBAAkB;KAC7B;IACD;QACE,GAAG,EAAE,kBAAkB;QACvB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,yCAAyC;QACtD,QAAQ,EAAE,kBAAkB;KAC7B;IACD;QACE,GAAG,EAAE,0BAA0B;QAC/B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,8CAA8C;QAC3D,QAAQ,EAAE,kBAAkB;KAC7B;IACD;QACE,GAAG,EAAE,oBAAoB;QACzB,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,kDAAkD;QAC/D,QAAQ,EAAE,kBAAkB;KAC7B;IACD;QACE,GAAG,EAAE,iBAAiB;QACtB,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,uCAAuC;QACpD,QAAQ,EAAE,kBAAkB;KAC7B;IACD;QACE,GAAG,EAAE,kBAAkB;QACvB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,uCAAuC;QACpD,QAAQ,EAAE,kBAAkB;KAC7B;IACD;QACE,GAAG,EAAE,0BAA0B;QAC/B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,wCAAwC;QACrD,QAAQ,EAAE,kBAAkB;KAC7B;IACD;QACE,GAAG,EAAE,8BAA8B;QACnC,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,qEAAqE;QAClF,QAAQ,EAAE,kBAAkB;KAC7B;CACF,CAAC;AAEF,MAAM,UAAU,eAAe;IAC7B,OAAO,mBAAmB,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool routing and handler coordination
|
|
3
|
+
*/
|
|
4
|
+
import type { DiagnosticsClient } from '../diagnostics/client.js';
|
|
5
|
+
import type { FoundryClient } from '../foundry/client.js';
|
|
6
|
+
import type { DiagnosticSystem } from '../utils/diagnostics.js';
|
|
7
|
+
import type { ToolResult } from './base.js';
|
|
8
|
+
/**
|
|
9
|
+
* Routes tool requests to appropriate handlers
|
|
10
|
+
*/
|
|
11
|
+
export declare function routeToolRequest(name: string, args: Record<string, unknown>, foundryClient: FoundryClient, diagnosticsClient: DiagnosticsClient, diagnosticSystem: DiagnosticSystem): Promise<ToolResult>;
|
|
12
|
+
/**
|
|
13
|
+
* Routes resource requests to appropriate handlers
|
|
14
|
+
*/
|
|
15
|
+
export declare function routeResourceRequest(uri: string, foundryClient: FoundryClient, diagnosticsClient: DiagnosticsClient): Promise<{
|
|
16
|
+
contents: {
|
|
17
|
+
uri: string;
|
|
18
|
+
mimeType: string;
|
|
19
|
+
text: string;
|
|
20
|
+
}[];
|
|
21
|
+
}>;
|
|
22
|
+
//# sourceMappingURL=router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/tools/router.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,KAAK,EAAe,UAAU,EAAE,MAAM,WAAW,CAAC;AA0BzD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC,UAAU,CAAC,CA0HrB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB;;;;;;GAIrC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool routing and handler coordination
|
|
3
|
+
*/
|
|
4
|
+
import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
import { logger } from '../utils/logger.js';
|
|
6
|
+
import { handleGetActorDetails, handleSearchActors } from './handlers/actors.js';
|
|
7
|
+
import { handleGetChatMessages } from './handlers/chat.js';
|
|
8
|
+
import { handleGetCombatState } from './handlers/combat.js';
|
|
9
|
+
import { handleDiagnoseErrors, handleGetHealthStatus, handleGetRecentLogs, handleGetSystemHealth, handleSearchLogs, } from './handlers/diagnostics.js';
|
|
10
|
+
// Import all tool handlers
|
|
11
|
+
import { handleRollDice } from './handlers/dice.js';
|
|
12
|
+
import { handleGenerateLoot, handleGenerateNPC, handleLookupRule } from './handlers/generation.js';
|
|
13
|
+
import { handleSearchItems } from './handlers/items.js';
|
|
14
|
+
import { handleGetJournal, handleSearchJournals } from './handlers/journals.js';
|
|
15
|
+
import { handleReadResource } from './handlers/resources.js';
|
|
16
|
+
import { handleGetSceneInfo } from './handlers/scenes.js';
|
|
17
|
+
import { handleGetUsers } from './handlers/users.js';
|
|
18
|
+
import { handleGetWorldSummary, handleRefreshWorldData, handleSearchWorld, } from './handlers/world.js';
|
|
19
|
+
import { toolRegistry } from './registry.js';
|
|
20
|
+
/**
|
|
21
|
+
* Routes tool requests to appropriate handlers
|
|
22
|
+
*/
|
|
23
|
+
export async function routeToolRequest(name, args, foundryClient, diagnosticsClient, diagnosticSystem) {
|
|
24
|
+
logger.debug(`Routing tool request: ${name}`, { args });
|
|
25
|
+
// Try the new registry system first
|
|
26
|
+
if (toolRegistry.has(name)) {
|
|
27
|
+
const context = {
|
|
28
|
+
foundryClient,
|
|
29
|
+
diagnosticsClient,
|
|
30
|
+
diagnosticSystem,
|
|
31
|
+
};
|
|
32
|
+
try {
|
|
33
|
+
return await toolRegistry.execute(name, args, context);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
if (error instanceof McpError) {
|
|
37
|
+
throw error;
|
|
38
|
+
}
|
|
39
|
+
throw new McpError(ErrorCode.InternalError, `Tool execution failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
switch (name) {
|
|
43
|
+
// Dice tools
|
|
44
|
+
case 'roll_dice':
|
|
45
|
+
if (!('formula' in args) || typeof args.formula !== 'string') {
|
|
46
|
+
throw new Error('Missing required parameter: formula');
|
|
47
|
+
}
|
|
48
|
+
return handleRollDice(args, foundryClient);
|
|
49
|
+
// Actor tools
|
|
50
|
+
case 'search_actors':
|
|
51
|
+
return handleSearchActors(args, foundryClient);
|
|
52
|
+
case 'get_actor_details':
|
|
53
|
+
if (!('actorId' in args) || typeof args.actorId !== 'string') {
|
|
54
|
+
throw new Error('Missing required parameter: actorId');
|
|
55
|
+
}
|
|
56
|
+
return handleGetActorDetails(args, foundryClient);
|
|
57
|
+
// Item tools
|
|
58
|
+
case 'search_items':
|
|
59
|
+
return handleSearchItems(args, foundryClient);
|
|
60
|
+
// Scene tools
|
|
61
|
+
case 'get_scene_info':
|
|
62
|
+
return handleGetSceneInfo(args, foundryClient);
|
|
63
|
+
// Combat tools
|
|
64
|
+
case 'get_combat_state':
|
|
65
|
+
return handleGetCombatState(args, foundryClient);
|
|
66
|
+
// Chat tools
|
|
67
|
+
case 'get_chat_messages':
|
|
68
|
+
return handleGetChatMessages(args, foundryClient);
|
|
69
|
+
// User tools
|
|
70
|
+
case 'get_users':
|
|
71
|
+
return handleGetUsers(args, foundryClient);
|
|
72
|
+
// Journal tools
|
|
73
|
+
case 'search_journals':
|
|
74
|
+
if (!('query' in args) || typeof args.query !== 'string') {
|
|
75
|
+
throw new Error('Missing required parameter: query');
|
|
76
|
+
}
|
|
77
|
+
return handleSearchJournals(args, foundryClient);
|
|
78
|
+
case 'get_journal':
|
|
79
|
+
if (!('journalId' in args) || typeof args.journalId !== 'string') {
|
|
80
|
+
throw new Error('Missing required parameter: journalId');
|
|
81
|
+
}
|
|
82
|
+
return handleGetJournal(args, foundryClient);
|
|
83
|
+
// World tools
|
|
84
|
+
case 'search_world':
|
|
85
|
+
if (!('query' in args) || typeof args.query !== 'string') {
|
|
86
|
+
throw new Error('Missing required parameter: query');
|
|
87
|
+
}
|
|
88
|
+
return handleSearchWorld(args, foundryClient);
|
|
89
|
+
case 'get_world_summary':
|
|
90
|
+
return handleGetWorldSummary(args, foundryClient);
|
|
91
|
+
case 'refresh_world_data':
|
|
92
|
+
return handleRefreshWorldData(args, foundryClient);
|
|
93
|
+
// Generation tools
|
|
94
|
+
case 'generate_npc':
|
|
95
|
+
return handleGenerateNPC(args, foundryClient);
|
|
96
|
+
case 'generate_loot':
|
|
97
|
+
return handleGenerateLoot(args, foundryClient);
|
|
98
|
+
case 'lookup_rule':
|
|
99
|
+
if (!('query' in args) || typeof args.query !== 'string') {
|
|
100
|
+
throw new Error('Missing required parameter: query');
|
|
101
|
+
}
|
|
102
|
+
return handleLookupRule(args, foundryClient);
|
|
103
|
+
// Diagnostics tools (require REST API module)
|
|
104
|
+
case 'get_recent_logs':
|
|
105
|
+
return handleGetRecentLogs(args, diagnosticsClient);
|
|
106
|
+
case 'search_logs':
|
|
107
|
+
if (!('query' in args) || typeof args.query !== 'string') {
|
|
108
|
+
throw new Error('Missing required parameter: query');
|
|
109
|
+
}
|
|
110
|
+
return handleSearchLogs(args, diagnosticsClient);
|
|
111
|
+
case 'get_system_health':
|
|
112
|
+
return handleGetSystemHealth(args, diagnosticsClient);
|
|
113
|
+
case 'diagnose_errors':
|
|
114
|
+
return handleDiagnoseErrors(args, diagnosticSystem);
|
|
115
|
+
case 'get_health_status':
|
|
116
|
+
return handleGetHealthStatus(args, foundryClient, diagnosticsClient);
|
|
117
|
+
default:
|
|
118
|
+
throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Routes resource requests to appropriate handlers
|
|
123
|
+
*/
|
|
124
|
+
export async function routeResourceRequest(uri, foundryClient, diagnosticsClient) {
|
|
125
|
+
logger.debug(`Routing resource request: ${uri}`);
|
|
126
|
+
return handleReadResource(uri, foundryClient, diagnosticsClient);
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/tools/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Global cache instance singleton
|
|
3
|
+
*
|
|
4
|
+
* This module provides a singleton cache instance that's configured
|
|
5
|
+
* from the application configuration.
|
|
6
|
+
*/
|
|
7
|
+
import { CacheService } from './cache.js';
|
|
8
|
+
/**
|
|
9
|
+
* Global cache instance
|
|
10
|
+
* Initialized with configuration from config system
|
|
11
|
+
*/
|
|
12
|
+
export declare const cache: CacheService;
|
|
13
|
+
/**
|
|
14
|
+
* Cache key generators for consistent naming
|
|
15
|
+
*/
|
|
16
|
+
export declare const CacheKeys: {
|
|
17
|
+
readonly worldInfo: () => string;
|
|
18
|
+
readonly actor: (id: string) => string;
|
|
19
|
+
readonly actorSearch: (query: string, type?: string, limit?: number) => string;
|
|
20
|
+
readonly item: (id: string) => string;
|
|
21
|
+
readonly itemSearch: (query: string, type?: string, rarity?: string, limit?: number) => string;
|
|
22
|
+
readonly scene: (id?: string) => string;
|
|
23
|
+
readonly rule: (query: string, system?: string) => string;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=cache-instance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-instance.d.ts","sourceRoot":"","sources":["../../src/utils/cache-instance.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,KAAK,cAMjB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS;;yBAER,MAAM;kCACG,MAAM,SAAS,MAAM,UAAU,MAAM;wBAE/C,MAAM;iCACG,MAAM,SAAS,MAAM,WAAW,MAAM,UAAU,MAAM;0BAE7D,MAAM;2BACL,MAAM,WAAW,MAAM;CAC7B,CAAC"}
|