foundryvtt-mcp 1.5.2 → 1.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/diagnostics/types.d.ts +0 -3
- package/dist/diagnostics/types.d.ts.map +1 -1
- package/dist/diagnostics/types.js +0 -3
- package/dist/diagnostics/types.js.map +1 -1
- package/dist/foundry/auth.d.ts +27 -9
- package/dist/foundry/auth.d.ts.map +1 -1
- package/dist/foundry/auth.js +42 -12
- package/dist/foundry/auth.js.map +1 -1
- package/dist/foundry/client.d.ts +4 -1
- package/dist/foundry/client.d.ts.map +1 -1
- package/dist/foundry/client.js +49 -7
- package/dist/foundry/client.js.map +1 -1
- package/dist/foundry/rest-probe.d.ts +25 -0
- package/dist/foundry/rest-probe.d.ts.map +1 -0
- package/dist/foundry/rest-probe.js +65 -0
- package/dist/foundry/rest-probe.js.map +1 -0
- package/dist/foundry/types.d.ts +9 -1
- package/dist/foundry/types.d.ts.map +1 -1
- package/dist/foundry/types.js.map +1 -1
- package/dist/tools/definitions.d.ts +1 -1
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +1 -1
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/handlers/dice.d.ts +1 -1
- package/dist/tools/handlers/dice.d.ts.map +1 -1
- package/dist/tools/handlers/dice.js +1 -0
- package/dist/tools/handlers/dice.js.map +1 -1
- package/dist/utils/cache.d.ts +5 -0
- package/dist/utils/cache.d.ts.map +1 -1
- package/dist/utils/cache.js +14 -4
- package/dist/utils/cache.js.map +1 -1
- package/dist/utils/diagnostics.d.ts +3 -2
- package/dist/utils/diagnostics.d.ts.map +1 -1
- package/dist/utils/diagnostics.js +10 -9
- package/dist/utils/diagnostics.js.map +1 -1
- package/package.json +35 -35
|
@@ -408,7 +408,4 @@ export declare const ErrorDiagnosisSchema: z.ZodObject<{
|
|
|
408
408
|
}, z.core.$strip>>;
|
|
409
409
|
healthScore: z.ZodNumber;
|
|
410
410
|
}, z.core.$strip>;
|
|
411
|
-
export declare const ApiStatusResponseSchema: z.ZodObject<{
|
|
412
|
-
status: z.ZodString;
|
|
413
|
-
}, z.core.$strip>;
|
|
414
411
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/diagnostics/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/diagnostics/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/diagnostics/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/diagnostics/types.ts"],"names":[],"mappings":"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"}
|
package/dist/foundry/auth.d.ts
CHANGED
|
@@ -11,23 +11,41 @@ import type { ManagerOptions, SocketOptions } from 'socket.io-client';
|
|
|
11
11
|
/**
|
|
12
12
|
* Socket.IO connection options carrying a FoundryVTT session.
|
|
13
13
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
14
|
+
* The session is sent twice, and both copies are load-bearing — do not drop
|
|
15
|
+
* either. Per #231, FoundryVTT v14 resolves the session from the `session`
|
|
16
|
+
* **cookie** on the handshake request, while v13 reads it from
|
|
17
|
+
* `handshake.query` (not yet verified against a server; tracked in #253).
|
|
18
|
+
* A socket whose server finds no session still connects at the transport
|
|
19
|
+
* level — it simply never answers `getJoinData` and emits `session` as
|
|
20
|
+
* `null` — so the only symptom of losing either copy is a bare timeout with
|
|
21
|
+
* no `connect_error` (#206).
|
|
19
22
|
*
|
|
20
23
|
* `extraHeaders` is honoured by socket.io-client in Node.js for both the
|
|
21
|
-
* WebSocket and polling handshakes
|
|
22
|
-
*
|
|
24
|
+
* WebSocket and polling handshakes.
|
|
25
|
+
*
|
|
26
|
+
* `path` is the server's Socket.IO endpoint (`FOUNDRY_SOCKET_PATH`): behind a
|
|
27
|
+
* `routePrefix` it is `/<prefix>/socket.io/` (#231). Pair it with
|
|
28
|
+
* {@link socketOrigin} — the URL handed to `io()` must not carry the prefix.
|
|
29
|
+
*/
|
|
30
|
+
export declare function sessionSocketOptions(session: string, path?: string): Partial<ManagerOptions & SocketOptions>;
|
|
31
|
+
/**
|
|
32
|
+
* The URL to hand `io()` for a FoundryVTT base URL: its origin only.
|
|
33
|
+
*
|
|
34
|
+
* socket.io-client reads the URL's pathname as the **namespace**, not the
|
|
35
|
+
* transport path, so `io('https://host/foundry')` would join namespace
|
|
36
|
+
* `/foundry` instead of reaching a server behind a `routePrefix` (#231). The
|
|
37
|
+
* prefix belongs in the `path` option ({@link sessionSocketOptions}); the
|
|
38
|
+
* HTTP `/join` calls keep the full base URL.
|
|
23
39
|
*/
|
|
24
|
-
export declare function
|
|
40
|
+
export declare function socketOrigin(baseUrl: string): string;
|
|
25
41
|
/**
|
|
26
42
|
* Authenticates with FoundryVTT using the proven 4-step flow.
|
|
27
43
|
*
|
|
44
|
+
* @param socketPath Socket.IO endpoint for the user-resolution handshake;
|
|
45
|
+
* defaults to `/socket.io/` (see {@link sessionSocketOptions}).
|
|
28
46
|
* @returns Session cookie and resolved user document _id
|
|
29
47
|
*/
|
|
30
|
-
export declare function authenticateFoundry(baseUrl: string, user: string, password: string): Promise<{
|
|
48
|
+
export declare function authenticateFoundry(baseUrl: string, user: string, password: string, socketPath?: string): Promise<{
|
|
31
49
|
session: string;
|
|
32
50
|
userId: string;
|
|
33
51
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/foundry/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAItE
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/foundry/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAItE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,IAAI,SAAgB,GACnB,OAAO,CAAC,cAAc,GAAG,aAAa,CAAC,CAOzC;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpD;AAgGD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAqE9C"}
|
package/dist/foundry/auth.js
CHANGED
|
@@ -13,23 +13,42 @@ import { logger } from '../utils/logger.js';
|
|
|
13
13
|
/**
|
|
14
14
|
* Socket.IO connection options carrying a FoundryVTT session.
|
|
15
15
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
16
|
+
* The session is sent twice, and both copies are load-bearing — do not drop
|
|
17
|
+
* either. Per #231, FoundryVTT v14 resolves the session from the `session`
|
|
18
|
+
* **cookie** on the handshake request, while v13 reads it from
|
|
19
|
+
* `handshake.query` (not yet verified against a server; tracked in #253).
|
|
20
|
+
* A socket whose server finds no session still connects at the transport
|
|
21
|
+
* level — it simply never answers `getJoinData` and emits `session` as
|
|
22
|
+
* `null` — so the only symptom of losing either copy is a bare timeout with
|
|
23
|
+
* no `connect_error` (#206).
|
|
21
24
|
*
|
|
22
25
|
* `extraHeaders` is honoured by socket.io-client in Node.js for both the
|
|
23
|
-
* WebSocket and polling handshakes
|
|
24
|
-
*
|
|
26
|
+
* WebSocket and polling handshakes.
|
|
27
|
+
*
|
|
28
|
+
* `path` is the server's Socket.IO endpoint (`FOUNDRY_SOCKET_PATH`): behind a
|
|
29
|
+
* `routePrefix` it is `/<prefix>/socket.io/` (#231). Pair it with
|
|
30
|
+
* {@link socketOrigin} — the URL handed to `io()` must not carry the prefix.
|
|
25
31
|
*/
|
|
26
|
-
export function sessionSocketOptions(session) {
|
|
32
|
+
export function sessionSocketOptions(session, path = '/socket.io/') {
|
|
27
33
|
return {
|
|
28
34
|
transports: ['websocket'],
|
|
35
|
+
path,
|
|
29
36
|
query: { session },
|
|
30
37
|
extraHeaders: { Cookie: `session=${session}` },
|
|
31
38
|
};
|
|
32
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* The URL to hand `io()` for a FoundryVTT base URL: its origin only.
|
|
42
|
+
*
|
|
43
|
+
* socket.io-client reads the URL's pathname as the **namespace**, not the
|
|
44
|
+
* transport path, so `io('https://host/foundry')` would join namespace
|
|
45
|
+
* `/foundry` instead of reaching a server behind a `routePrefix` (#231). The
|
|
46
|
+
* prefix belongs in the `path` option ({@link sessionSocketOptions}); the
|
|
47
|
+
* HTTP `/join` calls keep the full base URL.
|
|
48
|
+
*/
|
|
49
|
+
export function socketOrigin(baseUrl) {
|
|
50
|
+
return new URL(baseUrl).origin;
|
|
51
|
+
}
|
|
33
52
|
/**
|
|
34
53
|
* Extracts the session cookie value from a GET /join response.
|
|
35
54
|
*/
|
|
@@ -58,7 +77,7 @@ async function getSessionCookie(baseUrl) {
|
|
|
58
77
|
* returns it directly. Otherwise, connects via Socket.IO and emits getJoinData
|
|
59
78
|
* to look up the _id by display name.
|
|
60
79
|
*/
|
|
61
|
-
async function resolveUserId(baseUrl, user, session) {
|
|
80
|
+
async function resolveUserId(baseUrl, user, session, socketPath) {
|
|
62
81
|
// FoundryVTT document IDs are 16-character alphanumeric strings
|
|
63
82
|
if (/^[a-zA-Z0-9]{16}$/.test(user)) {
|
|
64
83
|
logger.debug('User identifier is already a document _id', { userId: user });
|
|
@@ -66,7 +85,7 @@ async function resolveUserId(baseUrl, user, session) {
|
|
|
66
85
|
}
|
|
67
86
|
logger.debug('Resolving display name to document _id', { displayName: user });
|
|
68
87
|
return new Promise((resolve, reject) => {
|
|
69
|
-
const socket = io(baseUrl, sessionSocketOptions(session));
|
|
88
|
+
const socket = io(socketOrigin(baseUrl), sessionSocketOptions(session, socketPath));
|
|
70
89
|
const cleanup = () => {
|
|
71
90
|
socket.off('session', onSession);
|
|
72
91
|
socket.off('connect_error', onConnectError);
|
|
@@ -107,9 +126,11 @@ async function resolveUserId(baseUrl, user, session) {
|
|
|
107
126
|
/**
|
|
108
127
|
* Authenticates with FoundryVTT using the proven 4-step flow.
|
|
109
128
|
*
|
|
129
|
+
* @param socketPath Socket.IO endpoint for the user-resolution handshake;
|
|
130
|
+
* defaults to `/socket.io/` (see {@link sessionSocketOptions}).
|
|
110
131
|
* @returns Session cookie and resolved user document _id
|
|
111
132
|
*/
|
|
112
|
-
export async function authenticateFoundry(baseUrl, user, password) {
|
|
133
|
+
export async function authenticateFoundry(baseUrl, user, password, socketPath) {
|
|
113
134
|
// Warn when credentials are sent over plaintext HTTP to a non-localhost host
|
|
114
135
|
try {
|
|
115
136
|
const parsed = new URL(baseUrl);
|
|
@@ -129,11 +150,20 @@ export async function authenticateFoundry(baseUrl, user, password) {
|
|
|
129
150
|
// Step 1: Get session cookie
|
|
130
151
|
const session = await getSessionCookie(baseUrl);
|
|
131
152
|
// Step 2: Resolve user to document _id
|
|
132
|
-
const userId = await resolveUserId(baseUrl, user, session);
|
|
153
|
+
const userId = await resolveUserId(baseUrl, user, session, socketPath);
|
|
133
154
|
// Step 3: POST /join as JSON with document _id
|
|
134
155
|
const joinRes = await axios.post(`${baseUrl}/join`, {
|
|
135
156
|
action: 'join',
|
|
157
|
+
// Both spellings are deliberate — do not "de-duplicate" them (#222).
|
|
158
|
+
// sessions.authenticateUser destructures the id straight off the body and
|
|
159
|
+
// never validates a schema, so the spelling it does not read is simply
|
|
160
|
+
// undefined and the other is ignored. Reading the shipped server bundles:
|
|
161
|
+
// v13.348 and v14.364 both take `{ userid, password }`; #222 reports
|
|
162
|
+
// v14.367 taking `{ userId, password }`. A key the server does not read
|
|
163
|
+
// yields `db.User.get(undefined)` → HTTP 401 JOIN.ErrorUserDoesNotExist,
|
|
164
|
+
// so sending only one spelling breaks whichever generation wants the other.
|
|
136
165
|
userid: userId,
|
|
166
|
+
userId: userId,
|
|
137
167
|
password,
|
|
138
168
|
}, {
|
|
139
169
|
headers: {
|
package/dist/foundry/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/foundry/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/foundry/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/foundry/client.d.ts
CHANGED
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
* caches worldData in memory, and serves all queries from the snapshot.
|
|
6
6
|
*/
|
|
7
7
|
import { type AxiosRequestConfig, type AxiosResponse } from 'axios';
|
|
8
|
+
import { probeRestModule } from './rest-probe.js';
|
|
8
9
|
import type { ActorAttributeUpdateResult, ActorItemCreateSource, ActorSearchResult, CompendiumSearchResult, DiceRoll, DocumentVisibility, FoundryActor, FoundryItem, FoundryScene, FoundryWorld, ItemSearchResult, JournalPageCreateSource, WorldActor, WorldCombat, WorldData, WorldEffect, WorldItem, WorldJournal, WorldMessage, WorldScene, WorldUser } from './types.js';
|
|
10
|
+
export { probeRestModule };
|
|
9
11
|
export interface FoundryClientConfig {
|
|
10
12
|
baseUrl: string;
|
|
11
13
|
apiKey?: string;
|
|
@@ -65,7 +67,8 @@ export declare class FoundryClient {
|
|
|
65
67
|
constructor(config: FoundryClientConfig);
|
|
66
68
|
/**
|
|
67
69
|
* Connects to FoundryVTT.
|
|
68
|
-
* REST API mode:
|
|
70
|
+
* REST API mode: probes the module's authenticated /api/world route
|
|
71
|
+
* (`probeRestModule`); connected only once it answers with a JSON object.
|
|
69
72
|
* Socket.IO mode: authenticates and loads full worldData.
|
|
70
73
|
*/
|
|
71
74
|
connect(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/foundry/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAc,EAAsB,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAM/F,OAAO,KAAK,EACV,0BAA0B,EAC1B,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,QAAQ,EACR,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,UAAU,EACV,WAAW,EACX,SAAS,EACT,WAAW,EACX,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,SAAS,EACV,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/foundry/client.ts"],"names":[],"mappings":"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"}
|
package/dist/foundry/client.js
CHANGED
|
@@ -8,10 +8,13 @@ import axios from 'axios';
|
|
|
8
8
|
import { io } from 'socket.io-client';
|
|
9
9
|
import { z } from 'zod';
|
|
10
10
|
import { logger } from '../utils/logger.js';
|
|
11
|
-
import { authenticateFoundry, sessionSocketOptions } from './auth.js';
|
|
11
|
+
import { authenticateFoundry, sessionSocketOptions, socketOrigin } from './auth.js';
|
|
12
12
|
import { evaluateDiceFormula } from './dice-formula.js';
|
|
13
|
+
import { probeRestModule } from './rest-probe.js';
|
|
13
14
|
import { VISIBILITY_LEVELS } from './types.js';
|
|
14
15
|
import { applyDocumentBroadcast, applyUserActivity, parseDocumentBroadcast, parseUserActivity, } from './world-cache.js';
|
|
16
|
+
// Re-exported so existing importers of `client.js` keep working (#255 moved it).
|
|
17
|
+
export { probeRestModule };
|
|
15
18
|
/** FoundryVTT document IDs are 16-character alphanumeric strings. */
|
|
16
19
|
const FOUNDRY_ID_PATTERN = /^[a-zA-Z0-9]{16}$/;
|
|
17
20
|
/**
|
|
@@ -89,6 +92,37 @@ const RestDiceRollSchema = z.object({
|
|
|
89
92
|
total: z.number(),
|
|
90
93
|
terms: z.array(z.object({ results: z.array(z.number()).optional() })).optional(),
|
|
91
94
|
});
|
|
95
|
+
/**
|
|
96
|
+
* Loggable summary of why a REST dice call failed (#254).
|
|
97
|
+
*
|
|
98
|
+
* Reads only the HTTP status and the error code, structurally rather than via
|
|
99
|
+
* `axios.isAxiosError`, so nothing else on the error — in particular
|
|
100
|
+
* `config.headers`, which carries the `x-api-key` — reaches the log.
|
|
101
|
+
*/
|
|
102
|
+
function describeRestFailure(error) {
|
|
103
|
+
if (error instanceof z.ZodError) {
|
|
104
|
+
return { reason: 'response body failed schema validation' };
|
|
105
|
+
}
|
|
106
|
+
if (typeof error !== 'object' || error === null) {
|
|
107
|
+
return { reason: 'request failed' };
|
|
108
|
+
}
|
|
109
|
+
const summary = {
|
|
110
|
+
reason: 'request failed',
|
|
111
|
+
};
|
|
112
|
+
const response = 'response' in error ? error.response : undefined;
|
|
113
|
+
if (typeof response === 'object' && response !== null && 'status' in response) {
|
|
114
|
+
const status = response.status;
|
|
115
|
+
if (typeof status === 'number') {
|
|
116
|
+
summary.status = status;
|
|
117
|
+
summary.reason = 'HTTP error response';
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
const code = 'code' in error ? error.code : undefined;
|
|
121
|
+
if (typeof code === 'string') {
|
|
122
|
+
summary.code = code;
|
|
123
|
+
}
|
|
124
|
+
return summary;
|
|
125
|
+
}
|
|
92
126
|
/**
|
|
93
127
|
* Minimal Zod schema for the WorldData Socket.IO payload.
|
|
94
128
|
* Validates the required top-level array fields; extra fields pass through.
|
|
@@ -170,13 +204,14 @@ export class FoundryClient {
|
|
|
170
204
|
}
|
|
171
205
|
/**
|
|
172
206
|
* Connects to FoundryVTT.
|
|
173
|
-
* REST API mode:
|
|
207
|
+
* REST API mode: probes the module's authenticated /api/world route
|
|
208
|
+
* (`probeRestModule`); connected only once it answers with a JSON object.
|
|
174
209
|
* Socket.IO mode: authenticates and loads full worldData.
|
|
175
210
|
*/
|
|
176
211
|
async connect() {
|
|
177
212
|
if (this.config.apiKey) {
|
|
178
213
|
try {
|
|
179
|
-
await this.http.get(
|
|
214
|
+
await probeRestModule((url) => this.http.get(url));
|
|
180
215
|
this._isConnected = true;
|
|
181
216
|
logger.info('Connected to FoundryVTT via REST API module');
|
|
182
217
|
}
|
|
@@ -191,7 +226,7 @@ export class FoundryClient {
|
|
|
191
226
|
throw new Error('Socket.IO mode requires username/userId and password. ' +
|
|
192
227
|
'Set FOUNDRY_USERNAME + FOUNDRY_PASSWORD or FOUNDRY_USER_ID + FOUNDRY_PASSWORD.');
|
|
193
228
|
}
|
|
194
|
-
const { session } = await authenticateFoundry(this.config.baseUrl, user, this.config.password);
|
|
229
|
+
const { session } = await authenticateFoundry(this.config.baseUrl, user, this.config.password, this.config.socketPath);
|
|
195
230
|
// Connect authenticated socket and load world data
|
|
196
231
|
this.worldData = await this.connectAndLoadWorld(session);
|
|
197
232
|
this.worldDataStale = false;
|
|
@@ -209,7 +244,9 @@ export class FoundryClient {
|
|
|
209
244
|
// A previous socket must not outlive its replacement (see `detachSocket`).
|
|
210
245
|
this.detachSocket();
|
|
211
246
|
return new Promise((resolve, reject) => {
|
|
212
|
-
|
|
247
|
+
// Origin + `path`, not the full baseUrl: a routePrefix in the URL would
|
|
248
|
+
// be read as a Socket.IO namespace (#231).
|
|
249
|
+
this.socket = io(socketOrigin(this.config.baseUrl), sessionSocketOptions(session, this.config.socketPath));
|
|
213
250
|
const cleanup = () => {
|
|
214
251
|
this.socket?.off('session', onSession);
|
|
215
252
|
this.socket?.off('connect_error', onConnectError);
|
|
@@ -1290,14 +1327,18 @@ export class FoundryClient {
|
|
|
1290
1327
|
total: rolled.total,
|
|
1291
1328
|
breakdown: rolled.terms?.map((term) => term.results?.join(', ')).join(' + ') || formula,
|
|
1292
1329
|
timestamp: new Date().toISOString(),
|
|
1330
|
+
source: 'server',
|
|
1293
1331
|
};
|
|
1294
1332
|
if (reason) {
|
|
1295
1333
|
result.reason = reason;
|
|
1296
1334
|
}
|
|
1297
1335
|
return result;
|
|
1298
1336
|
}
|
|
1299
|
-
catch {
|
|
1300
|
-
//
|
|
1337
|
+
catch (error) {
|
|
1338
|
+
// Keep the fallback, but never in silence (#254): the result is marked
|
|
1339
|
+
// `source: 'local'` and the failure is logged without the request
|
|
1340
|
+
// config, which carries the API key header.
|
|
1341
|
+
logger.warn('REST dice roll failed — falling back to the local roller', describeRestFailure(error));
|
|
1301
1342
|
}
|
|
1302
1343
|
}
|
|
1303
1344
|
return this.fallbackDiceRoll(formula, reason);
|
|
@@ -1315,6 +1356,7 @@ export class FoundryClient {
|
|
|
1315
1356
|
total,
|
|
1316
1357
|
breakdown,
|
|
1317
1358
|
timestamp: new Date().toISOString(),
|
|
1359
|
+
source: 'local',
|
|
1318
1360
|
};
|
|
1319
1361
|
if (reason) {
|
|
1320
1362
|
result.reason = reason;
|