foundryvtt-mcp 1.1.0 → 1.3.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 +17 -0
- package/dist/foundry/client.d.ts +93 -1
- package/dist/foundry/client.d.ts.map +1 -1
- package/dist/foundry/client.js +194 -0
- package/dist/foundry/client.js.map +1 -1
- package/dist/foundry/types.d.ts +6 -0
- package/dist/foundry/types.d.ts.map +1 -1
- package/dist/tools/definitions.d.ts +104 -0
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +119 -0
- package/dist/tools/definitions.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/token-mutations.d.ts +50 -0
- package/dist/tools/handlers/token-mutations.d.ts.map +1 -0
- package/dist/tools/handlers/token-mutations.js +119 -0
- package/dist/tools/handlers/token-mutations.js.map +1 -0
- package/dist/tools/router.d.ts.map +1 -1
- package/dist/tools/router.js +35 -0
- package/dist/tools/router.js.map +1 -1
- package/package.json +15 -11
|
@@ -458,6 +458,110 @@ export declare const combatTools: {
|
|
|
458
458
|
properties: {};
|
|
459
459
|
};
|
|
460
460
|
}[];
|
|
461
|
+
/**
|
|
462
|
+
* Combat control mutation tool definitions (FR-018)
|
|
463
|
+
*
|
|
464
|
+
* WRITE operations — require FOUNDRY_WRITE_ENABLED=true and an active Socket.IO
|
|
465
|
+
* connection (mutations use the core `modifyDocument` protocol). All operate on
|
|
466
|
+
* the *active* combat; the connected user needs GM/owner permission.
|
|
467
|
+
*/
|
|
468
|
+
export declare const combatMutationTools: ({
|
|
469
|
+
name: string;
|
|
470
|
+
description: string;
|
|
471
|
+
inputSchema: {
|
|
472
|
+
type: string;
|
|
473
|
+
properties: {
|
|
474
|
+
combatantId?: never;
|
|
475
|
+
initiative?: never;
|
|
476
|
+
combatId?: never;
|
|
477
|
+
};
|
|
478
|
+
required?: never;
|
|
479
|
+
};
|
|
480
|
+
} | {
|
|
481
|
+
name: string;
|
|
482
|
+
description: string;
|
|
483
|
+
inputSchema: {
|
|
484
|
+
type: string;
|
|
485
|
+
properties: {
|
|
486
|
+
combatantId: {
|
|
487
|
+
type: string;
|
|
488
|
+
description: string;
|
|
489
|
+
};
|
|
490
|
+
initiative: {
|
|
491
|
+
type: string;
|
|
492
|
+
description: string;
|
|
493
|
+
};
|
|
494
|
+
combatId: {
|
|
495
|
+
type: string;
|
|
496
|
+
description: string;
|
|
497
|
+
};
|
|
498
|
+
};
|
|
499
|
+
required: string[];
|
|
500
|
+
};
|
|
501
|
+
})[];
|
|
502
|
+
/**
|
|
503
|
+
* Token manipulation mutation tool definitions (FR-019)
|
|
504
|
+
*
|
|
505
|
+
* WRITE operations — require FOUNDRY_WRITE_ENABLED=true and an active Socket.IO
|
|
506
|
+
* connection (mutations use the core `modifyDocument` protocol). The connected
|
|
507
|
+
* user needs GM/owner permission.
|
|
508
|
+
*/
|
|
509
|
+
export declare const tokenMutationTools: ({
|
|
510
|
+
name: string;
|
|
511
|
+
description: string;
|
|
512
|
+
inputSchema: {
|
|
513
|
+
type: string;
|
|
514
|
+
properties: {
|
|
515
|
+
tokenId: {
|
|
516
|
+
type: string;
|
|
517
|
+
description: string;
|
|
518
|
+
};
|
|
519
|
+
x: {
|
|
520
|
+
type: string;
|
|
521
|
+
description: string;
|
|
522
|
+
};
|
|
523
|
+
y: {
|
|
524
|
+
type: string;
|
|
525
|
+
description: string;
|
|
526
|
+
};
|
|
527
|
+
sceneId: {
|
|
528
|
+
type: string;
|
|
529
|
+
description: string;
|
|
530
|
+
};
|
|
531
|
+
statusId?: never;
|
|
532
|
+
active?: never;
|
|
533
|
+
};
|
|
534
|
+
required: string[];
|
|
535
|
+
};
|
|
536
|
+
} | {
|
|
537
|
+
name: string;
|
|
538
|
+
description: string;
|
|
539
|
+
inputSchema: {
|
|
540
|
+
type: string;
|
|
541
|
+
properties: {
|
|
542
|
+
tokenId: {
|
|
543
|
+
type: string;
|
|
544
|
+
description: string;
|
|
545
|
+
};
|
|
546
|
+
statusId: {
|
|
547
|
+
type: string;
|
|
548
|
+
description: string;
|
|
549
|
+
};
|
|
550
|
+
active: {
|
|
551
|
+
type: string;
|
|
552
|
+
description: string;
|
|
553
|
+
default: boolean;
|
|
554
|
+
};
|
|
555
|
+
sceneId: {
|
|
556
|
+
type: string;
|
|
557
|
+
description: string;
|
|
558
|
+
};
|
|
559
|
+
x?: never;
|
|
560
|
+
y?: never;
|
|
561
|
+
};
|
|
562
|
+
required: string[];
|
|
563
|
+
};
|
|
564
|
+
})[];
|
|
461
565
|
/**
|
|
462
566
|
* Chat message tool definitions
|
|
463
567
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;GAmBrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqCtB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;GA6B9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;GA2BrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoD3B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoF7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;GActB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8D3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgF5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;GASvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;GAiBrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;GASrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkCxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoCtB,CAAC;AAEF;;GAEG;AACH,wBAAgB,WAAW;;;;;;;
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;GAmBrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqCtB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;GA6B9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;GA2BrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoD3B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoF7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;GActB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8D3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgF5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;GASvB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8C/B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4D9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;GAiBrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;GASrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkCxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoCtB,CAAC;AAEF;;GAEG;AACH,wBAAgB,WAAW;;;;;;;IAmB1B;AAED;;GAEG;AACH,wBAAsB,kBAAkB;;;;KAcvC"}
|
|
@@ -454,6 +454,123 @@ export const combatTools = [
|
|
|
454
454
|
},
|
|
455
455
|
},
|
|
456
456
|
];
|
|
457
|
+
/**
|
|
458
|
+
* Combat control mutation tool definitions (FR-018)
|
|
459
|
+
*
|
|
460
|
+
* WRITE operations — require FOUNDRY_WRITE_ENABLED=true and an active Socket.IO
|
|
461
|
+
* connection (mutations use the core `modifyDocument` protocol). All operate on
|
|
462
|
+
* the *active* combat; the connected user needs GM/owner permission.
|
|
463
|
+
*/
|
|
464
|
+
export const combatMutationTools = [
|
|
465
|
+
{
|
|
466
|
+
name: 'next_turn',
|
|
467
|
+
description: 'Advance the active combat to the next turn, wrapping to the next round after the last combatant. ' +
|
|
468
|
+
'Does not yet skip defeated combatants. ' +
|
|
469
|
+
'Requires FOUNDRY_WRITE_ENABLED=true and an active Socket.IO connection.',
|
|
470
|
+
inputSchema: {
|
|
471
|
+
type: 'object',
|
|
472
|
+
properties: {},
|
|
473
|
+
},
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
name: 'end_combat',
|
|
477
|
+
description: 'End (delete) the active combat encounter. ' +
|
|
478
|
+
'Requires FOUNDRY_WRITE_ENABLED=true and an active Socket.IO connection.',
|
|
479
|
+
inputSchema: {
|
|
480
|
+
type: 'object',
|
|
481
|
+
properties: {},
|
|
482
|
+
},
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
name: 'set_initiative',
|
|
486
|
+
description: "Set a combatant's initiative in the active combat. " +
|
|
487
|
+
'Requires FOUNDRY_WRITE_ENABLED=true and an active Socket.IO connection.',
|
|
488
|
+
inputSchema: {
|
|
489
|
+
type: 'object',
|
|
490
|
+
properties: {
|
|
491
|
+
combatantId: {
|
|
492
|
+
type: 'string',
|
|
493
|
+
description: 'The ID of the combatant whose initiative to set',
|
|
494
|
+
},
|
|
495
|
+
initiative: {
|
|
496
|
+
type: 'number',
|
|
497
|
+
description: 'The initiative value to assign',
|
|
498
|
+
},
|
|
499
|
+
combatId: {
|
|
500
|
+
type: 'string',
|
|
501
|
+
description: 'Optional Combat document ID; defaults to the active combat',
|
|
502
|
+
},
|
|
503
|
+
},
|
|
504
|
+
required: ['combatantId', 'initiative'],
|
|
505
|
+
},
|
|
506
|
+
},
|
|
507
|
+
];
|
|
508
|
+
/**
|
|
509
|
+
* Token manipulation mutation tool definitions (FR-019)
|
|
510
|
+
*
|
|
511
|
+
* WRITE operations — require FOUNDRY_WRITE_ENABLED=true and an active Socket.IO
|
|
512
|
+
* connection (mutations use the core `modifyDocument` protocol). The connected
|
|
513
|
+
* user needs GM/owner permission.
|
|
514
|
+
*/
|
|
515
|
+
export const tokenMutationTools = [
|
|
516
|
+
{
|
|
517
|
+
name: 'move_token',
|
|
518
|
+
description: 'Move a token to new x/y pixel coordinates on its scene. ' +
|
|
519
|
+
'The token is located across scenes by id (optionally scoped with sceneId). ' +
|
|
520
|
+
'Requires FOUNDRY_WRITE_ENABLED=true and an active Socket.IO connection.',
|
|
521
|
+
inputSchema: {
|
|
522
|
+
type: 'object',
|
|
523
|
+
properties: {
|
|
524
|
+
tokenId: {
|
|
525
|
+
type: 'string',
|
|
526
|
+
description: 'The ID of the token to move',
|
|
527
|
+
},
|
|
528
|
+
x: {
|
|
529
|
+
type: 'number',
|
|
530
|
+
description: 'Target x pixel coordinate on the scene',
|
|
531
|
+
},
|
|
532
|
+
y: {
|
|
533
|
+
type: 'number',
|
|
534
|
+
description: 'Target y pixel coordinate on the scene',
|
|
535
|
+
},
|
|
536
|
+
sceneId: {
|
|
537
|
+
type: 'string',
|
|
538
|
+
description: 'Optional Scene ID to scope the token lookup',
|
|
539
|
+
},
|
|
540
|
+
},
|
|
541
|
+
required: ['tokenId', 'x', 'y'],
|
|
542
|
+
},
|
|
543
|
+
},
|
|
544
|
+
{
|
|
545
|
+
name: 'apply_status_effect',
|
|
546
|
+
description: "Apply or remove a status condition (e.g. 'prone', 'stunned') on a token's actor. " +
|
|
547
|
+
'Set active=false to remove. Matches by status id, so re-applying or clearing-when-absent is a no-op. ' +
|
|
548
|
+
'Requires FOUNDRY_WRITE_ENABLED=true and an active Socket.IO connection.',
|
|
549
|
+
inputSchema: {
|
|
550
|
+
type: 'object',
|
|
551
|
+
properties: {
|
|
552
|
+
tokenId: {
|
|
553
|
+
type: 'string',
|
|
554
|
+
description: 'The ID of the token whose actor to affect',
|
|
555
|
+
},
|
|
556
|
+
statusId: {
|
|
557
|
+
type: 'string',
|
|
558
|
+
description: "The status condition id (e.g. 'prone', 'stunned', 'blinded')",
|
|
559
|
+
},
|
|
560
|
+
active: {
|
|
561
|
+
type: 'boolean',
|
|
562
|
+
description: 'true to apply the effect (default), false to remove it',
|
|
563
|
+
default: true,
|
|
564
|
+
},
|
|
565
|
+
sceneId: {
|
|
566
|
+
type: 'string',
|
|
567
|
+
description: 'Optional Scene ID to scope the token lookup',
|
|
568
|
+
},
|
|
569
|
+
},
|
|
570
|
+
required: ['tokenId', 'statusId'],
|
|
571
|
+
},
|
|
572
|
+
},
|
|
573
|
+
];
|
|
457
574
|
/**
|
|
458
575
|
* Chat message tool definitions
|
|
459
576
|
*/
|
|
@@ -579,6 +696,8 @@ export function getAllTools() {
|
|
|
579
696
|
...itemMutationTools,
|
|
580
697
|
...sceneTools,
|
|
581
698
|
...combatTools,
|
|
699
|
+
...combatMutationTools,
|
|
700
|
+
...tokenMutationTools,
|
|
582
701
|
...chatTools,
|
|
583
702
|
...userTools,
|
|
584
703
|
...journalTools,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Combat control mutation tool handlers (FR-018)
|
|
3
|
+
*
|
|
4
|
+
* Provides GM-gated combat-control tools that operate on the *active* combat:
|
|
5
|
+
* advancing the turn, ending the encounter, and setting a combatant's
|
|
6
|
+
* initiative. All are WRITE operations — they require FOUNDRY_WRITE_ENABLED=true
|
|
7
|
+
* and an active Socket.IO connection (mutations use the core `modifyDocument`
|
|
8
|
+
* protocol), and the connected user needs GM/owner permission.
|
|
9
|
+
*/
|
|
10
|
+
import type { FoundryClient } from '../../foundry/client.js';
|
|
11
|
+
import type { WorldCombat } from '../../foundry/types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Computes the next `{ turn, round }` for an active combat.
|
|
14
|
+
*
|
|
15
|
+
* Advances to the next combatant in order; wrapping past the last combatant
|
|
16
|
+
* rolls over to turn 0 of the next round.
|
|
17
|
+
*
|
|
18
|
+
* Known limitation: this does NOT skip `defeated` combatants the way Foundry's
|
|
19
|
+
* `Combat#nextTurn` does with `skipDefeated`. Turn order is treated as the raw
|
|
20
|
+
* combatant array order. Defeated-skipping is deferred to a follow-up.
|
|
21
|
+
*
|
|
22
|
+
* @throws if the combat has no combatants (cannot advance an empty encounter).
|
|
23
|
+
*/
|
|
24
|
+
export declare function computeNextTurn(combat: WorldCombat): {
|
|
25
|
+
turn: number;
|
|
26
|
+
round: number;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Advances the active combat to the next turn (FR-018).
|
|
30
|
+
*/
|
|
31
|
+
export declare function handleNextTurn(_args: Record<string, unknown>, foundryClient: FoundryClient): Promise<{
|
|
32
|
+
content: {
|
|
33
|
+
type: string;
|
|
34
|
+
text: string;
|
|
35
|
+
}[];
|
|
36
|
+
}>;
|
|
37
|
+
/**
|
|
38
|
+
* Ends (deletes) the active combat encounter (FR-018).
|
|
39
|
+
*/
|
|
40
|
+
export declare function handleEndCombat(_args: Record<string, unknown>, foundryClient: FoundryClient): Promise<{
|
|
41
|
+
content: {
|
|
42
|
+
type: string;
|
|
43
|
+
text: string;
|
|
44
|
+
}[];
|
|
45
|
+
}>;
|
|
46
|
+
/**
|
|
47
|
+
* Sets a combatant's initiative in the active combat (FR-018).
|
|
48
|
+
*
|
|
49
|
+
* `combatId` defaults to the active combat when omitted.
|
|
50
|
+
*/
|
|
51
|
+
export declare function handleSetInitiative(args: {
|
|
52
|
+
combatantId: string;
|
|
53
|
+
initiative: number;
|
|
54
|
+
combatId?: string;
|
|
55
|
+
}, foundryClient: FoundryClient): Promise<{
|
|
56
|
+
content: {
|
|
57
|
+
type: string;
|
|
58
|
+
text: string;
|
|
59
|
+
}[];
|
|
60
|
+
}>;
|
|
61
|
+
//# sourceMappingURL=combat-mutations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combat-mutations.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/combat-mutations.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAG1D;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAWpF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,EAAE,aAAa;;;;;GAyBhG;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,aAAa,EAAE,aAAa;;;;;GAqB7B;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EACpE,aAAa,EAAE,aAAa;;;;;GAqC7B"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Combat control mutation tool handlers (FR-018)
|
|
3
|
+
*
|
|
4
|
+
* Provides GM-gated combat-control tools that operate on the *active* combat:
|
|
5
|
+
* advancing the turn, ending the encounter, and setting a combatant's
|
|
6
|
+
* initiative. All are WRITE operations — they require FOUNDRY_WRITE_ENABLED=true
|
|
7
|
+
* and an active Socket.IO connection (mutations use the core `modifyDocument`
|
|
8
|
+
* protocol), and the connected user needs GM/owner permission.
|
|
9
|
+
*/
|
|
10
|
+
import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
11
|
+
import { withToolError } from './utils.js';
|
|
12
|
+
/**
|
|
13
|
+
* Computes the next `{ turn, round }` for an active combat.
|
|
14
|
+
*
|
|
15
|
+
* Advances to the next combatant in order; wrapping past the last combatant
|
|
16
|
+
* rolls over to turn 0 of the next round.
|
|
17
|
+
*
|
|
18
|
+
* Known limitation: this does NOT skip `defeated` combatants the way Foundry's
|
|
19
|
+
* `Combat#nextTurn` does with `skipDefeated`. Turn order is treated as the raw
|
|
20
|
+
* combatant array order. Defeated-skipping is deferred to a follow-up.
|
|
21
|
+
*
|
|
22
|
+
* @throws if the combat has no combatants (cannot advance an empty encounter).
|
|
23
|
+
*/
|
|
24
|
+
export function computeNextTurn(combat) {
|
|
25
|
+
const n = combat.combatants.length;
|
|
26
|
+
if (n === 0) {
|
|
27
|
+
throw new Error('Cannot advance turn: active combat has no combatants');
|
|
28
|
+
}
|
|
29
|
+
const cur = combat.turn ?? 0;
|
|
30
|
+
const next = cur + 1;
|
|
31
|
+
if (next >= n) {
|
|
32
|
+
return { turn: 0, round: combat.round + 1 };
|
|
33
|
+
}
|
|
34
|
+
return { turn: next, round: combat.round };
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Advances the active combat to the next turn (FR-018).
|
|
38
|
+
*/
|
|
39
|
+
export async function handleNextTurn(_args, foundryClient) {
|
|
40
|
+
const combat = foundryClient.getCombatState();
|
|
41
|
+
if (!combat) {
|
|
42
|
+
throw new McpError(ErrorCode.InvalidRequest, 'No active combat to advance.');
|
|
43
|
+
}
|
|
44
|
+
return withToolError('advance combat turn', async () => {
|
|
45
|
+
const { turn, round } = computeNextTurn(combat);
|
|
46
|
+
await foundryClient.updateCombat(combat._id, { turn, round });
|
|
47
|
+
const current = combat.combatants[turn];
|
|
48
|
+
const currentName = current ? current.name : 'unknown';
|
|
49
|
+
return {
|
|
50
|
+
content: [
|
|
51
|
+
{
|
|
52
|
+
type: 'text',
|
|
53
|
+
text: `⚔️ **Combat Turn Advanced**
|
|
54
|
+
**Round:** ${round}
|
|
55
|
+
**Turn:** ${turn + 1} of ${combat.combatants.length}
|
|
56
|
+
**Now acting:** ${currentName}`,
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
};
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Ends (deletes) the active combat encounter (FR-018).
|
|
64
|
+
*/
|
|
65
|
+
export async function handleEndCombat(_args, foundryClient) {
|
|
66
|
+
const combat = foundryClient.getCombatState();
|
|
67
|
+
if (!combat) {
|
|
68
|
+
throw new McpError(ErrorCode.InvalidRequest, 'No active combat to end.');
|
|
69
|
+
}
|
|
70
|
+
return withToolError('end combat', async () => {
|
|
71
|
+
await foundryClient.endCombat(combat._id);
|
|
72
|
+
return {
|
|
73
|
+
content: [
|
|
74
|
+
{
|
|
75
|
+
type: 'text',
|
|
76
|
+
text: `⚔️ **Combat Ended**
|
|
77
|
+
**Encounter:** ${combat._id}
|
|
78
|
+
The active combat encounter has been removed.`,
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
};
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Sets a combatant's initiative in the active combat (FR-018).
|
|
86
|
+
*
|
|
87
|
+
* `combatId` defaults to the active combat when omitted.
|
|
88
|
+
*/
|
|
89
|
+
export async function handleSetInitiative(args, foundryClient) {
|
|
90
|
+
const { combatantId, initiative, combatId } = args;
|
|
91
|
+
if (!combatantId || typeof combatantId !== 'string') {
|
|
92
|
+
throw new McpError(ErrorCode.InvalidParams, 'combatantId is required and must be a string');
|
|
93
|
+
}
|
|
94
|
+
if (typeof initiative !== 'number' || !Number.isFinite(initiative)) {
|
|
95
|
+
throw new McpError(ErrorCode.InvalidParams, 'initiative is required and must be a finite number');
|
|
96
|
+
}
|
|
97
|
+
const resolvedCombatId = combatId ?? foundryClient.getCombatState()?._id;
|
|
98
|
+
if (!resolvedCombatId) {
|
|
99
|
+
throw new McpError(ErrorCode.InvalidRequest, 'No active combat and no combatId provided; cannot set initiative.');
|
|
100
|
+
}
|
|
101
|
+
return withToolError('set combatant initiative', async () => {
|
|
102
|
+
await foundryClient.setCombatantInitiative(resolvedCombatId, combatantId, initiative);
|
|
103
|
+
return {
|
|
104
|
+
content: [
|
|
105
|
+
{
|
|
106
|
+
type: 'text',
|
|
107
|
+
text: `⚔️ **Initiative Set**
|
|
108
|
+
**Combat:** ${resolvedCombatId}
|
|
109
|
+
**Combatant:** ${combatantId}
|
|
110
|
+
**Initiative:** ${initiative}`,
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
};
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=combat-mutations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combat-mutations.js","sourceRoot":"","sources":["../../../src/tools/handlers/combat-mutations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Token manipulation mutation tool handlers (FR-019)
|
|
3
|
+
*
|
|
4
|
+
* Provides GM-gated token-control tools that operate on tokens placed on
|
|
5
|
+
* scenes: moving a token to new coordinates, and applying/removing a status
|
|
6
|
+
* condition (ActiveEffect) on the token's actor. All are WRITE operations —
|
|
7
|
+
* they require FOUNDRY_WRITE_ENABLED=true and an active Socket.IO connection
|
|
8
|
+
* (mutations use the core `modifyDocument` protocol), and the connected user
|
|
9
|
+
* needs GM/owner permission.
|
|
10
|
+
*/
|
|
11
|
+
import type { FoundryClient } from '../../foundry/client.js';
|
|
12
|
+
/**
|
|
13
|
+
* Moves a token to x/y coordinates on its scene (FR-019).
|
|
14
|
+
*
|
|
15
|
+
* The token is resolved from the cached worldData; `sceneId` is optional and
|
|
16
|
+
* only scopes the lookup (the parent scene is derived from the located token).
|
|
17
|
+
*/
|
|
18
|
+
export declare function handleMoveToken(args: {
|
|
19
|
+
tokenId: string;
|
|
20
|
+
x: number;
|
|
21
|
+
y: number;
|
|
22
|
+
sceneId?: string;
|
|
23
|
+
}, foundryClient: FoundryClient): Promise<{
|
|
24
|
+
content: {
|
|
25
|
+
type: string;
|
|
26
|
+
text: string;
|
|
27
|
+
}[];
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Applies or removes a status condition (ActiveEffect) on a token's actor
|
|
31
|
+
* (FR-019).
|
|
32
|
+
*
|
|
33
|
+
* `active` defaults to `true` (apply). Mirrors `Actor#toggleStatusEffect`:
|
|
34
|
+
* the effect is matched by its `statuses` array, so re-applying an already
|
|
35
|
+
* present condition (or removing an absent one) is a no-op. Linked actors
|
|
36
|
+
* resolve to `Actor.<id>`; unlinked tokens target their synthetic actor at
|
|
37
|
+
* `Scene.<sid>.Token.<tid>.Actor.<aid>`.
|
|
38
|
+
*/
|
|
39
|
+
export declare function handleApplyStatusEffect(args: {
|
|
40
|
+
tokenId: string;
|
|
41
|
+
statusId: string;
|
|
42
|
+
active?: boolean;
|
|
43
|
+
sceneId?: string;
|
|
44
|
+
}, foundryClient: FoundryClient): Promise<{
|
|
45
|
+
content: {
|
|
46
|
+
type: "text";
|
|
47
|
+
text: string;
|
|
48
|
+
}[];
|
|
49
|
+
}>;
|
|
50
|
+
//# sourceMappingURL=token-mutations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-mutations.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/token-mutations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAY7D;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EACjE,aAAa,EAAE,aAAa;;;;;GAwC7B;AAED;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/E,aAAa,EAAE,aAAa;;;;;GAiF7B"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Token manipulation mutation tool handlers (FR-019)
|
|
3
|
+
*
|
|
4
|
+
* Provides GM-gated token-control tools that operate on tokens placed on
|
|
5
|
+
* scenes: moving a token to new coordinates, and applying/removing a status
|
|
6
|
+
* condition (ActiveEffect) on the token's actor. All are WRITE operations —
|
|
7
|
+
* they require FOUNDRY_WRITE_ENABLED=true and an active Socket.IO connection
|
|
8
|
+
* (mutations use the core `modifyDocument` protocol), and the connected user
|
|
9
|
+
* needs GM/owner permission.
|
|
10
|
+
*/
|
|
11
|
+
import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
12
|
+
import { withToolError } from './utils.js';
|
|
13
|
+
/**
|
|
14
|
+
* Moves a token to x/y coordinates on its scene (FR-019).
|
|
15
|
+
*
|
|
16
|
+
* The token is resolved from the cached worldData; `sceneId` is optional and
|
|
17
|
+
* only scopes the lookup (the parent scene is derived from the located token).
|
|
18
|
+
*/
|
|
19
|
+
export async function handleMoveToken(args, foundryClient) {
|
|
20
|
+
const { tokenId, x, y, sceneId } = args;
|
|
21
|
+
if (!tokenId || typeof tokenId !== 'string') {
|
|
22
|
+
throw new McpError(ErrorCode.InvalidParams, 'tokenId is required and must be a string');
|
|
23
|
+
}
|
|
24
|
+
if (typeof x !== 'number' ||
|
|
25
|
+
!Number.isFinite(x) ||
|
|
26
|
+
typeof y !== 'number' ||
|
|
27
|
+
!Number.isFinite(y)) {
|
|
28
|
+
throw new McpError(ErrorCode.InvalidParams, 'x and y are required and must be finite numbers');
|
|
29
|
+
}
|
|
30
|
+
const located = foundryClient.findToken(tokenId, sceneId);
|
|
31
|
+
if (!located) {
|
|
32
|
+
throw new McpError(ErrorCode.InvalidRequest, `Token not found: ${tokenId}${sceneId ? ` on scene ${sceneId}` : ''}`);
|
|
33
|
+
}
|
|
34
|
+
return withToolError('move token', async () => {
|
|
35
|
+
const tokenName = located.token.name ?? tokenId;
|
|
36
|
+
await foundryClient.moveToken(located.scene._id, tokenId, x, y);
|
|
37
|
+
return {
|
|
38
|
+
content: [
|
|
39
|
+
{
|
|
40
|
+
type: 'text',
|
|
41
|
+
text: `🚶 **Token Moved**
|
|
42
|
+
**Token:** ${tokenName} (${tokenId})
|
|
43
|
+
**Scene:** ${located.scene.name} (${located.scene._id})
|
|
44
|
+
**Position:** (${x}, ${y})`,
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
};
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Applies or removes a status condition (ActiveEffect) on a token's actor
|
|
52
|
+
* (FR-019).
|
|
53
|
+
*
|
|
54
|
+
* `active` defaults to `true` (apply). Mirrors `Actor#toggleStatusEffect`:
|
|
55
|
+
* the effect is matched by its `statuses` array, so re-applying an already
|
|
56
|
+
* present condition (or removing an absent one) is a no-op. Linked actors
|
|
57
|
+
* resolve to `Actor.<id>`; unlinked tokens target their synthetic actor at
|
|
58
|
+
* `Scene.<sid>.Token.<tid>.Actor.<aid>`.
|
|
59
|
+
*/
|
|
60
|
+
export async function handleApplyStatusEffect(args, foundryClient) {
|
|
61
|
+
const { tokenId, statusId, sceneId } = args;
|
|
62
|
+
const active = args.active ?? true;
|
|
63
|
+
if (!tokenId || typeof tokenId !== 'string') {
|
|
64
|
+
throw new McpError(ErrorCode.InvalidParams, 'tokenId is required and must be a string');
|
|
65
|
+
}
|
|
66
|
+
if (!statusId || typeof statusId !== 'string') {
|
|
67
|
+
throw new McpError(ErrorCode.InvalidParams, 'statusId is required and must be a string');
|
|
68
|
+
}
|
|
69
|
+
const located = foundryClient.findToken(tokenId, sceneId);
|
|
70
|
+
if (!located) {
|
|
71
|
+
throw new McpError(ErrorCode.InvalidRequest, `Token not found: ${tokenId}${sceneId ? ` on scene ${sceneId}` : ''}`);
|
|
72
|
+
}
|
|
73
|
+
const token = located.token;
|
|
74
|
+
const actorId = token.actorId;
|
|
75
|
+
if (!actorId) {
|
|
76
|
+
throw new McpError(ErrorCode.InvalidRequest, `Token ${tokenId} has no associated actor; cannot apply status effects.`);
|
|
77
|
+
}
|
|
78
|
+
// Linked tokens share the world actor; unlinked tokens own a synthetic actor
|
|
79
|
+
// (the per-token delta) that must be addressed through the Scene→Token path.
|
|
80
|
+
const linked = token.actorLink === true;
|
|
81
|
+
const parentActorUuid = linked
|
|
82
|
+
? `Actor.${actorId}`
|
|
83
|
+
: `Scene.${located.scene._id}.Token.${tokenId}.Actor.${actorId}`;
|
|
84
|
+
// Find an existing effect carrying this status (matches toggleStatusEffect).
|
|
85
|
+
const effects = linked
|
|
86
|
+
? (foundryClient.getRawActor(actorId)?.effects ?? [])
|
|
87
|
+
: (token.delta?.effects ?? []);
|
|
88
|
+
const existing = effects.find((e) => e.statuses?.includes(statusId));
|
|
89
|
+
return withToolError('apply status effect', async () => {
|
|
90
|
+
if (active) {
|
|
91
|
+
if (existing) {
|
|
92
|
+
return statusResult(`Status effect '${statusId}' is already active on ${token.name ?? tokenId}.`, tokenId, located.scene, statusId, true);
|
|
93
|
+
}
|
|
94
|
+
const effect = await foundryClient.createActorStatusEffect(parentActorUuid, statusId);
|
|
95
|
+
return statusResult(`Applied status effect '${statusId}' (effect ${effect._id}).`, tokenId, located.scene, statusId, true);
|
|
96
|
+
}
|
|
97
|
+
if (!existing) {
|
|
98
|
+
return statusResult(`Status effect '${statusId}' is not active on ${token.name ?? tokenId}; nothing to remove.`, tokenId, located.scene, statusId, false);
|
|
99
|
+
}
|
|
100
|
+
await foundryClient.deleteActorEffect(parentActorUuid, existing._id);
|
|
101
|
+
return statusResult(`Removed status effect '${statusId}' (effect ${existing._id}).`, tokenId, located.scene, statusId, false);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
/** Builds the MCP text result for a status-effect mutation. */
|
|
105
|
+
function statusResult(summary, tokenId, scene, statusId, active) {
|
|
106
|
+
return {
|
|
107
|
+
content: [
|
|
108
|
+
{
|
|
109
|
+
type: 'text',
|
|
110
|
+
text: `${active ? '✨' : '🧹'} **Status Effect ${active ? 'Applied' : 'Removed'}**
|
|
111
|
+
**Token:** ${tokenId}
|
|
112
|
+
**Scene:** ${scene.name} (${scene._id})
|
|
113
|
+
**Status:** ${statusId}
|
|
114
|
+
${summary}`,
|
|
115
|
+
},
|
|
116
|
+
],
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=token-mutations.js.map
|