foundryvtt-mcp 1.0.0 → 1.2.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/README.md +40 -3
- package/dist/character/manager.js +1 -1
- package/dist/character/manager.js.map +1 -1
- package/dist/combat/manager.d.ts +1 -2
- package/dist/combat/manager.d.ts.map +1 -1
- package/dist/combat/manager.js +3 -5
- package/dist/combat/manager.js.map +1 -1
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +4 -0
- package/dist/config/index.js.map +1 -1
- package/dist/foundry/auth.d.ts.map +1 -1
- package/dist/foundry/auth.js +5 -4
- package/dist/foundry/auth.js.map +1 -1
- package/dist/foundry/client.d.ts +144 -1
- package/dist/foundry/client.d.ts.map +1 -1
- package/dist/foundry/client.js +420 -10
- package/dist/foundry/client.js.map +1 -1
- package/dist/foundry/types.d.ts +76 -16
- package/dist/foundry/types.d.ts.map +1 -1
- package/dist/index.js +26 -2
- package/dist/index.js.map +1 -1
- package/dist/tools/definitions.d.ts +208 -0
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +231 -1
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/handlers/actor-mutations.d.ts +26 -0
- package/dist/tools/handlers/actor-mutations.d.ts.map +1 -0
- package/dist/tools/handlers/actor-mutations.js +49 -0
- package/dist/tools/handlers/actor-mutations.js.map +1 -0
- package/dist/tools/handlers/chat.js +1 -1
- package/dist/tools/handlers/chat.js.map +1 -1
- package/dist/tools/handlers/combat-mutations.d.ts +61 -0
- package/dist/tools/handlers/combat-mutations.d.ts.map +1 -0
- package/dist/tools/handlers/combat-mutations.js +116 -0
- package/dist/tools/handlers/combat-mutations.js.map +1 -0
- package/dist/tools/handlers/compendium.d.ts +37 -0
- package/dist/tools/handlers/compendium.d.ts.map +1 -0
- package/dist/tools/handlers/compendium.js +83 -0
- package/dist/tools/handlers/compendium.js.map +1 -0
- package/dist/tools/handlers/diagnostics.d.ts +6 -1
- package/dist/tools/handlers/diagnostics.d.ts.map +1 -1
- package/dist/tools/handlers/diagnostics.js +52 -11
- package/dist/tools/handlers/diagnostics.js.map +1 -1
- package/dist/tools/handlers/item-mutations.d.ts +51 -0
- package/dist/tools/handlers/item-mutations.d.ts.map +1 -0
- package/dist/tools/handlers/item-mutations.js +118 -0
- package/dist/tools/handlers/item-mutations.js.map +1 -0
- package/dist/tools/router.d.ts.map +1 -1
- package/dist/tools/router.js +60 -0
- package/dist/tools/router.js.map +1 -1
- package/dist/utils/logger.d.ts +0 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +0 -1
- package/dist/utils/logger.js.map +1 -1
- package/package.json +30 -14
- package/dist/resources/index.d.ts +0 -3
- package/dist/resources/index.d.ts.map +0 -1
- package/dist/resources/index.js +0 -93
- package/dist/resources/index.js.map +0 -1
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Compendium search tool handlers
|
|
3
|
+
*
|
|
4
|
+
* Read-only search across FoundryVTT compendium packs by name and metadata.
|
|
5
|
+
* Compendium data is not part of the cached worldData snapshot, so this tool
|
|
6
|
+
* requires the REST API module (FOUNDRY_API_KEY). Without it the search
|
|
7
|
+
* returns gracefully empty and the handler explains why.
|
|
8
|
+
*/
|
|
9
|
+
import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
10
|
+
import { withToolError } from './utils.js';
|
|
11
|
+
/**
|
|
12
|
+
* Handles compendium search requests.
|
|
13
|
+
*
|
|
14
|
+
* Searches across all enabled compendiums by default; the `compendiumId`
|
|
15
|
+
* filter scopes the search to a single pack. Returns enough metadata
|
|
16
|
+
* (compendiumId, itemId, type, system.source.rules) to disambiguate
|
|
17
|
+
* near-identical entries across rule revisions.
|
|
18
|
+
*/
|
|
19
|
+
export async function handleSearchCompendium(args, foundryClient) {
|
|
20
|
+
const { query, filters, limit = 20, cursor } = args;
|
|
21
|
+
if (!query || typeof query !== 'string') {
|
|
22
|
+
throw new McpError(ErrorCode.InvalidParams, 'query is required and must be a string');
|
|
23
|
+
}
|
|
24
|
+
return withToolError('search compendium', async () => {
|
|
25
|
+
const params = { query, limit };
|
|
26
|
+
if (cursor) {
|
|
27
|
+
params.cursor = cursor;
|
|
28
|
+
}
|
|
29
|
+
if (filters?.compendiumId) {
|
|
30
|
+
params.compendiumId = filters.compendiumId;
|
|
31
|
+
}
|
|
32
|
+
if (filters?.packType) {
|
|
33
|
+
params.packType = filters.packType;
|
|
34
|
+
}
|
|
35
|
+
if (filters?.itemType) {
|
|
36
|
+
params.itemType = filters.itemType;
|
|
37
|
+
}
|
|
38
|
+
if (filters?.spellLevel !== undefined) {
|
|
39
|
+
params.spellLevel = filters.spellLevel;
|
|
40
|
+
}
|
|
41
|
+
if (filters?.source) {
|
|
42
|
+
params.source = filters.source;
|
|
43
|
+
}
|
|
44
|
+
const result = await foundryClient.searchCompendium(params);
|
|
45
|
+
const entryList = result.results
|
|
46
|
+
.map((entry) => {
|
|
47
|
+
const meta = [`pack: ${entry.compendiumId}`, `id: ${entry.itemId}`];
|
|
48
|
+
if (entry.system?.level !== undefined) {
|
|
49
|
+
meta.push(`level ${entry.system.level}`);
|
|
50
|
+
}
|
|
51
|
+
if (entry.system?.school) {
|
|
52
|
+
meta.push(entry.system.school);
|
|
53
|
+
}
|
|
54
|
+
if (entry.system?.source?.rules) {
|
|
55
|
+
meta.push(`rules: ${entry.system.source.rules}`);
|
|
56
|
+
}
|
|
57
|
+
return `- **${entry.name}** (${entry.type}) — ${meta.join(', ')}`;
|
|
58
|
+
})
|
|
59
|
+
.join('\n');
|
|
60
|
+
const restNote = result.restAvailable === false
|
|
61
|
+
? '\n\n_Note: compendium search requires FOUNDRY_API_KEY (REST API module); returning no results._'
|
|
62
|
+
: '';
|
|
63
|
+
const cursorNote = result.nextCursor
|
|
64
|
+
? `\n**Next page:** pass cursor \`${result.nextCursor}\` to retrieve more results.`
|
|
65
|
+
: '';
|
|
66
|
+
return {
|
|
67
|
+
content: [
|
|
68
|
+
{
|
|
69
|
+
type: 'text',
|
|
70
|
+
text: `📚 **Compendium Search Results**
|
|
71
|
+
**Query:** ${query}
|
|
72
|
+
**Pack Filter:** ${filters?.compendiumId || 'All enabled compendiums'}
|
|
73
|
+
**Results:** ${result.results.length}/${result.total} total
|
|
74
|
+
|
|
75
|
+
${entryList || 'No compendium entries found matching the criteria.'}
|
|
76
|
+
|
|
77
|
+
**Page:** ${result.page} | **Limit:** ${result.limit}${cursorNote}${restNote}`,
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
};
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=compendium.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compendium.js","sourceRoot":"","sources":["../../../src/tools/handlers/compendium.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,10 +8,15 @@ import type { FoundryClient } from '../../foundry/client.js';
|
|
|
8
8
|
import type { DiagnosticSystem } from '../../utils/diagnostics.js';
|
|
9
9
|
/**
|
|
10
10
|
* Handles recent log retrieval requests
|
|
11
|
+
*
|
|
12
|
+
* Filtering is applied after fetching all logs from the underlying source:
|
|
13
|
+
* - `limit`: clamps result count (default 20, hard cap 1000)
|
|
14
|
+
* - `level`: case-insensitive match against log entry level; unrecognized values are silently ignored
|
|
15
|
+
* - `since`: ISO 8601 timestamp; entries older than this are excluded; unparseable values are silently ignored
|
|
11
16
|
*/
|
|
12
17
|
export declare function handleGetRecentLogs(args: {
|
|
13
18
|
limit?: number;
|
|
14
|
-
level?: string;
|
|
19
|
+
level?: string | string[];
|
|
15
20
|
since?: string;
|
|
16
21
|
}, diagnosticsClient: DiagnosticsClient): Promise<{
|
|
17
22
|
content: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AASnE;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE;IACJ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,EACD,iBAAiB,EAAE,iBAAiB;;;;;GAqErC;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE;IACJ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,EACD,iBAAiB,EAAE,iBAAiB;;;;;GAoCrC;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,iBAAiB,EAAE,iBAAiB;;;;;GA0BrC;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE;IACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,EACD,iBAAiB,EAAE,gBAAgB;;;;;GA+CpC;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB;;;;;GA0CrC"}
|
|
@@ -5,28 +5,69 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
7
7
|
import { withToolError } from './utils.js';
|
|
8
|
+
/** Valid log levels recognized by the tool schema */
|
|
9
|
+
const VALID_LOG_LEVELS = new Set(['debug', 'info', 'warn', 'error', 'log', 'notification']);
|
|
10
|
+
/** Hard upper bound on entries returned, regardless of caller-supplied limit */
|
|
11
|
+
const MAX_LOG_LIMIT = 1000;
|
|
8
12
|
/**
|
|
9
13
|
* Handles recent log retrieval requests
|
|
14
|
+
*
|
|
15
|
+
* Filtering is applied after fetching all logs from the underlying source:
|
|
16
|
+
* - `limit`: clamps result count (default 20, hard cap 1000)
|
|
17
|
+
* - `level`: case-insensitive match against log entry level; unrecognized values are silently ignored
|
|
18
|
+
* - `since`: ISO 8601 timestamp; entries older than this are excluded; unparseable values are silently ignored
|
|
10
19
|
*/
|
|
11
20
|
export async function handleGetRecentLogs(args, diagnosticsClient) {
|
|
12
21
|
const { limit = 20, level, since } = args;
|
|
22
|
+
// Clamp limit to [1, MAX_LOG_LIMIT]
|
|
23
|
+
const effectiveLimit = Math.min(Math.max(1, limit ?? 20), MAX_LOG_LIMIT);
|
|
24
|
+
// Normalize level filter: resolve to a Set of valid lowercase level strings, or null if none recognized
|
|
25
|
+
let levelFilter = null;
|
|
26
|
+
if (level !== undefined && level !== null) {
|
|
27
|
+
const requested = (Array.isArray(level) ? level : [level])
|
|
28
|
+
.map((l) => l.toLowerCase())
|
|
29
|
+
.filter((l) => VALID_LOG_LEVELS.has(l));
|
|
30
|
+
if (requested.length > 0) {
|
|
31
|
+
levelFilter = new Set(requested);
|
|
32
|
+
}
|
|
33
|
+
// If no recognized levels, levelFilter stays null → all entries pass through
|
|
34
|
+
}
|
|
35
|
+
// Parse since timestamp; ignore if unparseable
|
|
36
|
+
let sinceMs = null;
|
|
37
|
+
if (since !== undefined && since !== null && since !== '') {
|
|
38
|
+
const parsed = Date.parse(since);
|
|
39
|
+
if (!Number.isNaN(parsed)) {
|
|
40
|
+
sinceMs = parsed;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
13
43
|
return withToolError('get recent logs', async () => {
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
44
|
+
const response = await diagnosticsClient.getRecentLogs();
|
|
45
|
+
let entries = response.logs;
|
|
46
|
+
// Apply level filter
|
|
47
|
+
if (levelFilter !== null) {
|
|
48
|
+
entries = entries.filter((entry) => levelFilter?.has(entry.level.toLowerCase()));
|
|
49
|
+
}
|
|
50
|
+
// Apply since filter
|
|
51
|
+
if (sinceMs !== null) {
|
|
52
|
+
const sinceThreshold = sinceMs;
|
|
53
|
+
entries = entries.filter((entry) => {
|
|
54
|
+
const entryMs = Date.parse(entry.timestamp);
|
|
55
|
+
return !Number.isNaN(entryMs) && entryMs >= sinceThreshold;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
// Apply limit
|
|
59
|
+
entries = entries.slice(0, effectiveLimit);
|
|
60
|
+
const logEntries = entries
|
|
61
|
+
.map((entry) => `[${entry.timestamp}] **${entry.level.toUpperCase()}** ${entry.message}`)
|
|
62
|
+
.join('\n');
|
|
63
|
+
const levelLabel = level ? (Array.isArray(level) ? level.join(', ') : level) : 'All levels';
|
|
23
64
|
return {
|
|
24
65
|
content: [
|
|
25
66
|
{
|
|
26
67
|
type: 'text',
|
|
27
68
|
text: `📋 **Recent Log Entries**
|
|
28
|
-
**Filter:** ${
|
|
29
|
-
**Limit:** ${
|
|
69
|
+
**Filter:** ${levelLabel}
|
|
70
|
+
**Limit:** ${effectiveLimit}
|
|
30
71
|
**Since:** ${since || 'Beginning'}
|
|
31
72
|
|
|
32
73
|
${logEntries || 'No log entries found.'}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../src/tools/handlers/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAIzE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../src/tools/handlers/diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Actor item mutation tool handlers (create / update / delete)
|
|
3
|
+
*
|
|
4
|
+
* WRITE operations — require FOUNDRY_WRITE_ENABLED=true and an active Socket.IO
|
|
5
|
+
* connection (mutations use the core `modifyDocument` protocol). The canonical
|
|
6
|
+
* mutation target is the D&D 5e v4+ activity schema; item `system` patches
|
|
7
|
+
* honour JSON-merge-patch semantics on nested paths such as
|
|
8
|
+
* `activities.{id}.consumption.targets`.
|
|
9
|
+
*/
|
|
10
|
+
import type { FoundryClient } from '../../foundry/client.js';
|
|
11
|
+
import type { ActorItemCreateSource } from '../../foundry/types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Handles creating an item on an actor from a compendium reference or an inline
|
|
14
|
+
* item document.
|
|
15
|
+
*/
|
|
16
|
+
export declare function handleCreateActorItem(args: {
|
|
17
|
+
actorId: string;
|
|
18
|
+
source: ActorItemCreateSource;
|
|
19
|
+
}, foundryClient: FoundryClient): Promise<{
|
|
20
|
+
content: {
|
|
21
|
+
type: string;
|
|
22
|
+
text: string;
|
|
23
|
+
}[];
|
|
24
|
+
}>;
|
|
25
|
+
/**
|
|
26
|
+
* Handles applying a JSON merge patch to an item's `system` data. Supports
|
|
27
|
+
* nested paths (e.g. `activities.{id}.consumption.targets`).
|
|
28
|
+
*/
|
|
29
|
+
export declare function handleUpdateActorItem(args: {
|
|
30
|
+
actorId: string;
|
|
31
|
+
itemId: string;
|
|
32
|
+
patch: Record<string, unknown>;
|
|
33
|
+
}, foundryClient: FoundryClient): Promise<{
|
|
34
|
+
content: {
|
|
35
|
+
type: string;
|
|
36
|
+
text: string;
|
|
37
|
+
}[];
|
|
38
|
+
}>;
|
|
39
|
+
/**
|
|
40
|
+
* Handles deleting an item owned by an actor.
|
|
41
|
+
*/
|
|
42
|
+
export declare function handleDeleteActorItem(args: {
|
|
43
|
+
actorId: string;
|
|
44
|
+
itemId: string;
|
|
45
|
+
}, foundryClient: FoundryClient): Promise<{
|
|
46
|
+
content: {
|
|
47
|
+
type: string;
|
|
48
|
+
text: string;
|
|
49
|
+
}[];
|
|
50
|
+
}>;
|
|
51
|
+
//# sourceMappingURL=item-mutations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item-mutations.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/item-mutations.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAGpE;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE;IACJ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,qBAAqB,CAAC;CAC/B,EACD,aAAa,EAAE,aAAa;;;;;GAgD7B;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE;IACJ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,EACD,aAAa,EAAE,aAAa;;;;;GAgC7B;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE;IACJ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,EACD,aAAa,EAAE,aAAa;;;;;GA2B7B"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Actor item mutation tool handlers (create / update / delete)
|
|
3
|
+
*
|
|
4
|
+
* WRITE operations — require FOUNDRY_WRITE_ENABLED=true and an active Socket.IO
|
|
5
|
+
* connection (mutations use the core `modifyDocument` protocol). The canonical
|
|
6
|
+
* mutation target is the D&D 5e v4+ activity schema; item `system` patches
|
|
7
|
+
* honour JSON-merge-patch semantics on nested paths such as
|
|
8
|
+
* `activities.{id}.consumption.targets`.
|
|
9
|
+
*/
|
|
10
|
+
import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
11
|
+
import { withToolError } from './utils.js';
|
|
12
|
+
/**
|
|
13
|
+
* Handles creating an item on an actor from a compendium reference or an inline
|
|
14
|
+
* item document.
|
|
15
|
+
*/
|
|
16
|
+
export async function handleCreateActorItem(args, foundryClient) {
|
|
17
|
+
const { actorId, source } = args;
|
|
18
|
+
if (!actorId || typeof actorId !== 'string') {
|
|
19
|
+
throw new McpError(ErrorCode.InvalidParams, 'actorId is required and must be a string');
|
|
20
|
+
}
|
|
21
|
+
if (!source || typeof source !== 'object') {
|
|
22
|
+
throw new McpError(ErrorCode.InvalidParams, 'source is required and must be an object');
|
|
23
|
+
}
|
|
24
|
+
if (source.type === 'compendium') {
|
|
25
|
+
if (typeof source.compendiumId !== 'string' || typeof source.itemId !== 'string') {
|
|
26
|
+
throw new McpError(ErrorCode.InvalidParams, 'compendium source requires compendiumId and itemId strings');
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
else if (source.type === 'inline') {
|
|
30
|
+
if (!source.item || typeof source.item !== 'object') {
|
|
31
|
+
throw new McpError(ErrorCode.InvalidParams, 'inline source requires an item object');
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
throw new McpError(ErrorCode.InvalidParams, 'source.type must be "compendium" or "inline"');
|
|
36
|
+
}
|
|
37
|
+
return withToolError('create item', async () => {
|
|
38
|
+
const newItem = await foundryClient.createActorItem(actorId, source);
|
|
39
|
+
const origin = source.type === 'compendium'
|
|
40
|
+
? `compendium ${source.compendiumId} / ${source.itemId}`
|
|
41
|
+
: 'inline definition';
|
|
42
|
+
return {
|
|
43
|
+
content: [
|
|
44
|
+
{
|
|
45
|
+
type: 'text',
|
|
46
|
+
text: `⚔️ **Item Created**
|
|
47
|
+
**Actor:** ${actorId}
|
|
48
|
+
**Item:** ${newItem.name} (${newItem.type})
|
|
49
|
+
**Item ID:** ${newItem._id}
|
|
50
|
+
**Source:** ${origin}
|
|
51
|
+
|
|
52
|
+
_Canonical target: D&D 5e v4+ activity schema._`,
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
};
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Handles applying a JSON merge patch to an item's `system` data. Supports
|
|
60
|
+
* nested paths (e.g. `activities.{id}.consumption.targets`).
|
|
61
|
+
*/
|
|
62
|
+
export async function handleUpdateActorItem(args, foundryClient) {
|
|
63
|
+
const { actorId, itemId, patch } = args;
|
|
64
|
+
if (!actorId || typeof actorId !== 'string') {
|
|
65
|
+
throw new McpError(ErrorCode.InvalidParams, 'actorId is required and must be a string');
|
|
66
|
+
}
|
|
67
|
+
if (!itemId || typeof itemId !== 'string') {
|
|
68
|
+
throw new McpError(ErrorCode.InvalidParams, 'itemId is required and must be a string');
|
|
69
|
+
}
|
|
70
|
+
if (!patch || typeof patch !== 'object' || Array.isArray(patch)) {
|
|
71
|
+
throw new McpError(ErrorCode.InvalidParams, 'patch is required and must be an object');
|
|
72
|
+
}
|
|
73
|
+
return withToolError('update item', async () => {
|
|
74
|
+
const updatedItem = await foundryClient.updateActorItem(actorId, itemId, patch);
|
|
75
|
+
return {
|
|
76
|
+
content: [
|
|
77
|
+
{
|
|
78
|
+
type: 'text',
|
|
79
|
+
text: `⚔️ **Item Updated**
|
|
80
|
+
**Actor:** ${actorId}
|
|
81
|
+
**Item:** ${updatedItem.name} (${updatedItem.type})
|
|
82
|
+
**Item ID:** ${updatedItem._id}
|
|
83
|
+
**Patched keys:** ${Object.keys(patch).join(', ') || '(none)'}
|
|
84
|
+
|
|
85
|
+
_JSON merge patch applied to item.system. Canonical target: D&D 5e v4+ activity schema (e.g. activities.{id}.consumption.targets)._`,
|
|
86
|
+
},
|
|
87
|
+
],
|
|
88
|
+
};
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Handles deleting an item owned by an actor.
|
|
93
|
+
*/
|
|
94
|
+
export async function handleDeleteActorItem(args, foundryClient) {
|
|
95
|
+
const { actorId, itemId } = args;
|
|
96
|
+
if (!actorId || typeof actorId !== 'string') {
|
|
97
|
+
throw new McpError(ErrorCode.InvalidParams, 'actorId is required and must be a string');
|
|
98
|
+
}
|
|
99
|
+
if (!itemId || typeof itemId !== 'string') {
|
|
100
|
+
throw new McpError(ErrorCode.InvalidParams, 'itemId is required and must be a string');
|
|
101
|
+
}
|
|
102
|
+
return withToolError('delete item', async () => {
|
|
103
|
+
await foundryClient.deleteActorItem(actorId, itemId);
|
|
104
|
+
return {
|
|
105
|
+
content: [
|
|
106
|
+
{
|
|
107
|
+
type: 'text',
|
|
108
|
+
text: `🗑️ **Item Deleted**
|
|
109
|
+
**Actor:** ${actorId}
|
|
110
|
+
**Item ID:** ${itemId}
|
|
111
|
+
|
|
112
|
+
_Canonical target: D&D 5e v4+ activity schema._`,
|
|
113
|
+
},
|
|
114
|
+
],
|
|
115
|
+
};
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=item-mutations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item-mutations.js","sourceRoot":"","sources":["../../../src/tools/handlers/item-mutations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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,
|
|
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,EAAkB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,KAAK,EAAe,UAAU,EAAE,MAAM,WAAW,CAAC;AAsCzD;;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,CAgNrB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB;;;;;;GAIrC"}
|
package/dist/tools/router.js
CHANGED
|
@@ -3,13 +3,17 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
5
5
|
import { logger } from '../utils/logger.js';
|
|
6
|
+
import { handleUpdateActorAttribute } from './handlers/actor-mutations.js';
|
|
6
7
|
import { handleGetActorDetails, handleSearchActors } from './handlers/actors.js';
|
|
7
8
|
import { handleGetChatMessages } from './handlers/chat.js';
|
|
8
9
|
import { handleGetCombatState } from './handlers/combat.js';
|
|
10
|
+
import { handleEndCombat, handleNextTurn, handleSetInitiative, } from './handlers/combat-mutations.js';
|
|
11
|
+
import { handleSearchCompendium } from './handlers/compendium.js';
|
|
9
12
|
import { handleDiagnoseErrors, handleGetHealthStatus, handleGetRecentLogs, handleGetSystemHealth, handleSearchLogs, } from './handlers/diagnostics.js';
|
|
10
13
|
// Import all tool handlers
|
|
11
14
|
import { handleRollDice } from './handlers/dice.js';
|
|
12
15
|
import { handleGenerateLoot, handleGenerateNPC, handleLookupRule } from './handlers/generation.js';
|
|
16
|
+
import { handleCreateActorItem, handleDeleteActorItem, handleUpdateActorItem, } from './handlers/item-mutations.js';
|
|
13
17
|
import { handleSearchItems } from './handlers/items.js';
|
|
14
18
|
import { handleGetJournal, handleSearchJournals } from './handlers/journals.js';
|
|
15
19
|
import { handleReadResource } from './handlers/resources.js';
|
|
@@ -54,15 +58,71 @@ export async function routeToolRequest(name, args, foundryClient, diagnosticsCli
|
|
|
54
58
|
throw new Error('Missing required parameter: actorId');
|
|
55
59
|
}
|
|
56
60
|
return handleGetActorDetails(args, foundryClient);
|
|
61
|
+
// Actor mutation tools (#143, require REST API module)
|
|
62
|
+
case 'update_actor_attributes':
|
|
63
|
+
if (!('actorId' in args) || typeof args.actorId !== 'string') {
|
|
64
|
+
throw new Error('Missing required parameter: actorId');
|
|
65
|
+
}
|
|
66
|
+
if (!('patch' in args) || typeof args.patch !== 'object' || args.patch === null) {
|
|
67
|
+
throw new Error('Missing required parameter: patch');
|
|
68
|
+
}
|
|
69
|
+
return handleUpdateActorAttribute(args, foundryClient);
|
|
57
70
|
// Item tools
|
|
58
71
|
case 'search_items':
|
|
59
72
|
return handleSearchItems(args, foundryClient);
|
|
73
|
+
// Compendium tools (#144)
|
|
74
|
+
case 'search_compendium':
|
|
75
|
+
if (!('query' in args) || typeof args.query !== 'string') {
|
|
76
|
+
throw new Error('Missing required parameter: query');
|
|
77
|
+
}
|
|
78
|
+
return handleSearchCompendium(args, foundryClient);
|
|
79
|
+
// Item mutation tools (WRITE — require REST API module)
|
|
80
|
+
case 'create_actor_item':
|
|
81
|
+
if (!('actorId' in args) || typeof args.actorId !== 'string') {
|
|
82
|
+
throw new Error('Missing required parameter: actorId');
|
|
83
|
+
}
|
|
84
|
+
if (!('source' in args) || typeof args.source !== 'object' || args.source === null) {
|
|
85
|
+
throw new Error('Missing required parameter: source');
|
|
86
|
+
}
|
|
87
|
+
return handleCreateActorItem(args, foundryClient);
|
|
88
|
+
case 'update_actor_item':
|
|
89
|
+
if (!('actorId' in args) || typeof args.actorId !== 'string') {
|
|
90
|
+
throw new Error('Missing required parameter: actorId');
|
|
91
|
+
}
|
|
92
|
+
if (!('itemId' in args) || typeof args.itemId !== 'string') {
|
|
93
|
+
throw new Error('Missing required parameter: itemId');
|
|
94
|
+
}
|
|
95
|
+
if (!('patch' in args) || typeof args.patch !== 'object' || args.patch === null) {
|
|
96
|
+
throw new Error('Missing required parameter: patch');
|
|
97
|
+
}
|
|
98
|
+
return handleUpdateActorItem(args, foundryClient);
|
|
99
|
+
case 'delete_actor_item':
|
|
100
|
+
if (!('actorId' in args) || typeof args.actorId !== 'string') {
|
|
101
|
+
throw new Error('Missing required parameter: actorId');
|
|
102
|
+
}
|
|
103
|
+
if (!('itemId' in args) || typeof args.itemId !== 'string') {
|
|
104
|
+
throw new Error('Missing required parameter: itemId');
|
|
105
|
+
}
|
|
106
|
+
return handleDeleteActorItem(args, foundryClient);
|
|
60
107
|
// Scene tools
|
|
61
108
|
case 'get_scene_info':
|
|
62
109
|
return handleGetSceneInfo(args, foundryClient);
|
|
63
110
|
// Combat tools
|
|
64
111
|
case 'get_combat_state':
|
|
65
112
|
return handleGetCombatState(args, foundryClient);
|
|
113
|
+
// Combat mutation tools (FR-018, WRITE — require FOUNDRY_WRITE_ENABLED)
|
|
114
|
+
case 'next_turn':
|
|
115
|
+
return handleNextTurn(args, foundryClient);
|
|
116
|
+
case 'end_combat':
|
|
117
|
+
return handleEndCombat(args, foundryClient);
|
|
118
|
+
case 'set_initiative':
|
|
119
|
+
if (!('combatantId' in args) || typeof args.combatantId !== 'string') {
|
|
120
|
+
throw new Error('Missing required parameter: combatantId');
|
|
121
|
+
}
|
|
122
|
+
if (!('initiative' in args) || typeof args.initiative !== 'number') {
|
|
123
|
+
throw new Error('Missing required parameter: initiative');
|
|
124
|
+
}
|
|
125
|
+
return handleSetInitiative(args, foundryClient);
|
|
66
126
|
// Chat tools
|
|
67
127
|
case 'get_chat_messages':
|
|
68
128
|
return handleGetChatMessages(args, foundryClient);
|
package/dist/tools/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/tools/router.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/tools/router.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/logger.d.ts
CHANGED
|
@@ -23,7 +23,6 @@ type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
|
|
23
23
|
* Provides methods for different log levels and automatically filters
|
|
24
24
|
* messages based on the configured minimum log level.
|
|
25
25
|
*
|
|
26
|
-
* @class Logger
|
|
27
26
|
* @example
|
|
28
27
|
* ```typescript
|
|
29
28
|
* import { logger } from './utils/logger.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH;;;;;;;GAOG;AACH,KAAK,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpD
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH;;;;;;;GAOG;AACH,KAAK,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpD;;;;;;;;;;;;;;GAcG;AACH,cAAM,MAAM;IACV,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,MAAM,CAKZ;IAEF;;;;OAIG;gBACS,QAAQ,GAAE,QAAiB;IAIvC;;;;;;OAMG;IACH,OAAO,CAAC,SAAS;IAIjB;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IAMrB;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAM5C;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAM3C;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAM3C;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;CAO9C;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,QAA8B,CAAC"}
|
package/dist/utils/logger.js
CHANGED
|
@@ -15,7 +15,6 @@ import { config } from '../config/index.js';
|
|
|
15
15
|
* Provides methods for different log levels and automatically filters
|
|
16
16
|
* messages based on the configured minimum log level.
|
|
17
17
|
*
|
|
18
|
-
* @class Logger
|
|
19
18
|
* @example
|
|
20
19
|
* ```typescript
|
|
21
20
|
* import { logger } from './utils/logger.js';
|
package/dist/utils/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAY5C
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAY5C;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM;IACF,QAAQ,CAAW;IACnB,MAAM,GAA6B;QACzC,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;KACT,CAAC;IAEF;;;;OAIG;IACH,YAAY,WAAqB,MAAM;QACrC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACK,SAAS,CAAC,KAAe;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;OAQG;IACK,aAAa,CAAC,KAAe,EAAE,OAAe,EAAE,IAAc;QACpE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,IAAI,SAAS,KAAK,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,GAAG,OAAO,EAAE,CAAC;IACvE,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,OAAe,EAAE,IAAc;QACnC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,OAAe,EAAE,IAAc;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,OAAe,EAAE,IAAc;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,OAAe,EAAE,KAAe;QACpC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;YAClF,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC"}
|