rbxstudio-mcp 2.3.1 → 2.4.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 +67 -14
- package/dist/__tests__/bridge-service.test.js +25 -13
- package/dist/__tests__/bridge-service.test.js.map +1 -1
- package/dist/__tests__/bridge-session.test.d.ts +2 -0
- package/dist/__tests__/bridge-session.test.d.ts.map +1 -0
- package/dist/__tests__/bridge-session.test.js +171 -0
- package/dist/__tests__/bridge-session.test.js.map +1 -0
- package/dist/__tests__/chunker.test.d.ts +2 -0
- package/dist/__tests__/chunker.test.d.ts.map +1 -0
- package/dist/__tests__/chunker.test.js +201 -0
- package/dist/__tests__/chunker.test.js.map +1 -0
- package/dist/__tests__/docs-core.test.d.ts +2 -0
- package/dist/__tests__/docs-core.test.d.ts.map +1 -0
- package/dist/__tests__/docs-core.test.js +137 -0
- package/dist/__tests__/docs-core.test.js.map +1 -0
- package/dist/__tests__/docs-fetcher.test.d.ts +2 -0
- package/dist/__tests__/docs-fetcher.test.d.ts.map +1 -0
- package/dist/__tests__/docs-fetcher.test.js +173 -0
- package/dist/__tests__/docs-fetcher.test.js.map +1 -0
- package/dist/__tests__/helpers.d.ts +8 -0
- package/dist/__tests__/helpers.d.ts.map +1 -0
- package/dist/__tests__/helpers.js +23 -0
- package/dist/__tests__/helpers.js.map +1 -0
- package/dist/__tests__/http-routes.test.d.ts +2 -0
- package/dist/__tests__/http-routes.test.d.ts.map +1 -0
- package/dist/__tests__/http-routes.test.js +233 -0
- package/dist/__tests__/http-routes.test.js.map +1 -0
- package/dist/__tests__/http-server.test.js +13 -6
- package/dist/__tests__/http-server.test.js.map +1 -1
- package/dist/__tests__/integration.test.js +9 -4
- package/dist/__tests__/integration.test.js.map +1 -1
- package/dist/__tests__/semantic-search.test.d.ts +2 -0
- package/dist/__tests__/semantic-search.test.d.ts.map +1 -0
- package/dist/__tests__/semantic-search.test.js +202 -0
- package/dist/__tests__/semantic-search.test.js.map +1 -0
- package/dist/__tests__/smoke.test.js +7 -3
- package/dist/__tests__/smoke.test.js.map +1 -1
- package/dist/__tests__/studio-client.test.d.ts +2 -0
- package/dist/__tests__/studio-client.test.d.ts.map +1 -0
- package/dist/__tests__/studio-client.test.js +25 -0
- package/dist/__tests__/studio-client.test.js.map +1 -0
- package/dist/__tests__/tool-nudges.test.d.ts +2 -0
- package/dist/__tests__/tool-nudges.test.d.ts.map +1 -0
- package/dist/__tests__/tool-nudges.test.js +60 -0
- package/dist/__tests__/tool-nudges.test.js.map +1 -0
- package/dist/__tests__/tool-registry.test.d.ts +2 -0
- package/dist/__tests__/tool-registry.test.d.ts.map +1 -0
- package/dist/__tests__/tool-registry.test.js +365 -0
- package/dist/__tests__/tool-registry.test.js.map +1 -0
- package/dist/__tests__/tools-bridge.test.d.ts +2 -0
- package/dist/__tests__/tools-bridge.test.d.ts.map +1 -0
- package/dist/__tests__/tools-bridge.test.js +396 -0
- package/dist/__tests__/tools-bridge.test.js.map +1 -0
- package/dist/__tests__/tools-docs.test.d.ts +2 -0
- package/dist/__tests__/tools-docs.test.d.ts.map +1 -0
- package/dist/__tests__/tools-docs.test.js +112 -0
- package/dist/__tests__/tools-docs.test.js.map +1 -0
- package/dist/__tests__/tools-guards.test.d.ts +2 -0
- package/dist/__tests__/tools-guards.test.d.ts.map +1 -0
- package/dist/__tests__/tools-guards.test.js +131 -0
- package/dist/__tests__/tools-guards.test.js.map +1 -0
- package/dist/__tests__/tools-runtime.test.d.ts +2 -0
- package/dist/__tests__/tools-runtime.test.d.ts.map +1 -0
- package/dist/__tests__/tools-runtime.test.js +214 -0
- package/dist/__tests__/tools-runtime.test.js.map +1 -0
- package/dist/__tests__/tools-visual.test.d.ts +2 -0
- package/dist/__tests__/tools-visual.test.d.ts.map +1 -0
- package/dist/__tests__/tools-visual.test.js +149 -0
- package/dist/__tests__/tools-visual.test.js.map +1 -0
- package/dist/bridge-service.d.ts +99 -12
- package/dist/bridge-service.d.ts.map +1 -1
- package/dist/bridge-service.js +238 -21
- package/dist/bridge-service.js.map +1 -1
- package/dist/docs/cache.d.ts +50 -0
- package/dist/docs/cache.d.ts.map +1 -0
- package/dist/docs/cache.js +123 -0
- package/dist/docs/cache.js.map +1 -0
- package/dist/docs/embeddings/chunker.d.ts +120 -0
- package/dist/docs/embeddings/chunker.d.ts.map +1 -0
- package/dist/docs/embeddings/chunker.js +395 -0
- package/dist/docs/embeddings/chunker.js.map +1 -0
- package/dist/docs/embeddings/embedder.d.ts +41 -0
- package/dist/docs/embeddings/embedder.d.ts.map +1 -0
- package/dist/docs/embeddings/embedder.js +113 -0
- package/dist/docs/embeddings/embedder.js.map +1 -0
- package/dist/docs/embeddings/index.d.ts +102 -0
- package/dist/docs/embeddings/index.d.ts.map +1 -0
- package/dist/docs/embeddings/index.js +250 -0
- package/dist/docs/embeddings/index.js.map +1 -0
- package/dist/docs/embeddings/manager.d.ts +68 -0
- package/dist/docs/embeddings/manager.d.ts.map +1 -0
- package/dist/docs/embeddings/manager.js +97 -0
- package/dist/docs/embeddings/manager.js.map +1 -0
- package/dist/docs/fetcher.d.ts +29 -0
- package/dist/docs/fetcher.d.ts.map +1 -0
- package/dist/docs/fetcher.js +244 -0
- package/dist/docs/fetcher.js.map +1 -0
- package/dist/docs/reference.d.ts +37 -0
- package/dist/docs/reference.d.ts.map +1 -0
- package/dist/docs/reference.js +108 -0
- package/dist/docs/reference.js.map +1 -0
- package/dist/docs/search.d.ts +194 -0
- package/dist/docs/search.d.ts.map +1 -0
- package/dist/docs/search.js +733 -0
- package/dist/docs/search.js.map +1 -0
- package/dist/http-server.d.ts.map +1 -1
- package/dist/http-server.js +52 -5
- package/dist/http-server.js.map +1 -1
- package/dist/index.d.ts +8 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -1035
- package/dist/index.js.map +1 -1
- package/dist/instructions.d.ts +15 -0
- package/dist/instructions.d.ts.map +1 -0
- package/dist/instructions.js +26 -0
- package/dist/instructions.js.map +1 -0
- package/dist/tools/defs/attributes.d.ts +6 -0
- package/dist/tools/defs/attributes.d.ts.map +1 -0
- package/dist/tools/defs/attributes.js +85 -0
- package/dist/tools/defs/attributes.js.map +1 -0
- package/dist/tools/defs/docs.d.ts +17 -0
- package/dist/tools/defs/docs.d.ts.map +1 -0
- package/dist/tools/defs/docs.js +151 -0
- package/dist/tools/defs/docs.js.map +1 -0
- package/dist/tools/defs/execute.d.ts +6 -0
- package/dist/tools/defs/execute.d.ts.map +1 -0
- package/dist/tools/defs/execute.js +21 -0
- package/dist/tools/defs/execute.js.map +1 -0
- package/dist/tools/defs/inspection.d.ts +7 -0
- package/dist/tools/defs/inspection.d.ts.map +1 -0
- package/dist/tools/defs/inspection.js +202 -0
- package/dist/tools/defs/inspection.js.map +1 -0
- package/dist/tools/defs/objects.d.ts +6 -0
- package/dist/tools/defs/objects.d.ts.map +1 -0
- package/dist/tools/defs/objects.js +111 -0
- package/dist/tools/defs/objects.js.map +1 -0
- package/dist/tools/defs/properties.d.ts +6 -0
- package/dist/tools/defs/properties.d.ts.map +1 -0
- package/dist/tools/defs/properties.js +71 -0
- package/dist/tools/defs/properties.js.map +1 -0
- package/dist/tools/defs/runtime.d.ts +6 -0
- package/dist/tools/defs/runtime.d.ts.map +1 -0
- package/dist/tools/defs/runtime.js +145 -0
- package/dist/tools/defs/runtime.js.map +1 -0
- package/dist/tools/defs/scripts.d.ts +18 -0
- package/dist/tools/defs/scripts.d.ts.map +1 -0
- package/dist/tools/defs/scripts.js +163 -0
- package/dist/tools/defs/scripts.js.map +1 -0
- package/dist/tools/defs/tags.d.ts +6 -0
- package/dist/tools/defs/tags.d.ts.map +1 -0
- package/dist/tools/defs/tags.js +74 -0
- package/dist/tools/defs/tags.js.map +1 -0
- package/dist/tools/defs/visual.d.ts +7 -0
- package/dist/tools/defs/visual.d.ts.map +1 -0
- package/dist/tools/defs/visual.js +208 -0
- package/dist/tools/defs/visual.js.map +1 -0
- package/dist/tools/index.d.ts +101 -25
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +580 -63
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/nudges.d.ts +25 -0
- package/dist/tools/nudges.d.ts.map +1 -0
- package/dist/tools/nudges.js +34 -0
- package/dist/tools/nudges.js.map +1 -0
- package/dist/tools/registry.d.ts +20 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +65 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/types.d.ts +24 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -0
- package/package.json +7 -6
- package/studio-plugin/MCPPlugin.rbxmx +3 -238
- package/studio-plugin/plugin.luau +2041 -365
package/dist/bridge-service.d.ts
CHANGED
|
@@ -3,12 +3,43 @@ export interface TestSessionLogEntry {
|
|
|
3
3
|
message: string;
|
|
4
4
|
messageType: string;
|
|
5
5
|
timestamp: number;
|
|
6
|
-
source: 'server' | 'plugin';
|
|
6
|
+
source: 'server' | 'plugin' | 'client';
|
|
7
7
|
}
|
|
8
8
|
export interface TestSessionCommand {
|
|
9
|
-
cmd: 'end';
|
|
9
|
+
cmd: 'end' | 'eval';
|
|
10
10
|
args?: any;
|
|
11
11
|
}
|
|
12
|
+
export interface EvalReplyPayload {
|
|
13
|
+
ok: boolean;
|
|
14
|
+
values?: any[];
|
|
15
|
+
errorType?: 'compile_error' | 'runtime_error' | 'timeout' | 'loadstring_disabled' | 'companion_error';
|
|
16
|
+
error?: string;
|
|
17
|
+
traceback?: string;
|
|
18
|
+
logs?: Array<{
|
|
19
|
+
message: string;
|
|
20
|
+
messageType: string;
|
|
21
|
+
timestamp: number;
|
|
22
|
+
}>;
|
|
23
|
+
durationMs?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface TestClientState {
|
|
26
|
+
userId: number;
|
|
27
|
+
name: string;
|
|
28
|
+
loadstringReady: boolean;
|
|
29
|
+
ready: boolean;
|
|
30
|
+
registeredAt: number;
|
|
31
|
+
lastPolledAt: number;
|
|
32
|
+
pendingCommands: TestSessionCommand[];
|
|
33
|
+
}
|
|
34
|
+
interface PendingEvalReply {
|
|
35
|
+
resolve: (payload: EvalReplyPayload) => void;
|
|
36
|
+
timeoutHandle: ReturnType<typeof setTimeout>;
|
|
37
|
+
target: 'server' | {
|
|
38
|
+
client: number;
|
|
39
|
+
};
|
|
40
|
+
claimed: boolean;
|
|
41
|
+
startedAt: number;
|
|
42
|
+
}
|
|
12
43
|
export interface TestSessionState {
|
|
13
44
|
sessionId: string;
|
|
14
45
|
status: 'active' | 'ended';
|
|
@@ -16,9 +47,14 @@ export interface TestSessionState {
|
|
|
16
47
|
endedAt: number | null;
|
|
17
48
|
endReason: string | null;
|
|
18
49
|
endValue: any;
|
|
19
|
-
|
|
50
|
+
serverReady: boolean;
|
|
51
|
+
serverLoadstringReady: boolean;
|
|
52
|
+
serverLastPolledAt: number;
|
|
53
|
+
clients: Map<number, TestClientState>;
|
|
54
|
+
pendingCommandsServer: TestSessionCommand[];
|
|
20
55
|
outputBuffer: TestSessionLogEntry[];
|
|
21
56
|
outputSeq: number;
|
|
57
|
+
evalReplies: Map<string, PendingEvalReply>;
|
|
22
58
|
endWaiters: Array<(ended: boolean) => void>;
|
|
23
59
|
}
|
|
24
60
|
export declare class BridgeService {
|
|
@@ -56,22 +92,38 @@ export declare class BridgeService {
|
|
|
56
92
|
*/
|
|
57
93
|
endTestSession(sessionId: string, reason: string, value?: any): boolean;
|
|
58
94
|
/**
|
|
59
|
-
* Queue a command for the companion
|
|
60
|
-
*
|
|
95
|
+
* Queue a command for either the server companion or a specific client
|
|
96
|
+
* companion. Defaults to the server queue (preserves prior call-site
|
|
97
|
+
* behavior for the existing 'end' command path).
|
|
98
|
+
*
|
|
99
|
+
* Returns false if the targeted queue doesn't exist (e.g. no such
|
|
100
|
+
* client), the session is null/ended, etc.
|
|
61
101
|
*/
|
|
62
|
-
enqueueTestCommand(cmd: TestSessionCommand
|
|
102
|
+
enqueueTestCommand(cmd: TestSessionCommand, target?: 'server' | {
|
|
103
|
+
client: number;
|
|
104
|
+
}): boolean;
|
|
63
105
|
/**
|
|
64
|
-
* Companion poll: returns the oldest pending command
|
|
65
|
-
* If the session was already marked ended, signals
|
|
66
|
-
* stops polling.
|
|
106
|
+
* Companion poll: returns the oldest pending command for this target,
|
|
107
|
+
* or null if none. If the session was already marked ended, signals
|
|
108
|
+
* that so the companion stops polling.
|
|
109
|
+
*
|
|
110
|
+
* The hello payload (sent by a companion on its first poll) registers
|
|
111
|
+
* its readiness state. Server companion sends `{ loadstringReady }`;
|
|
112
|
+
* client companions add `{ userId, name, loadstringReady }`.
|
|
67
113
|
*/
|
|
68
|
-
popTestCommand(sessionId: string
|
|
114
|
+
popTestCommand(sessionId: string, target?: 'server' | 'client', options?: {
|
|
115
|
+
userId?: number;
|
|
116
|
+
playerName?: string;
|
|
117
|
+
hello?: {
|
|
118
|
+
loadstringReady?: boolean;
|
|
119
|
+
};
|
|
120
|
+
}): {
|
|
69
121
|
command: TestSessionCommand | null;
|
|
70
122
|
ended: boolean;
|
|
71
123
|
sessionMatch: boolean;
|
|
72
124
|
};
|
|
73
125
|
/**
|
|
74
|
-
* Append a batch of log entries from
|
|
126
|
+
* Append a batch of log entries from a companion. Drops oldest entries
|
|
75
127
|
* if the buffer would exceed MAX_OUTPUT_BUFFER. Each entry gets a
|
|
76
128
|
* monotonically increasing seq for "since" cursor support.
|
|
77
129
|
*/
|
|
@@ -79,7 +131,7 @@ export declare class BridgeService {
|
|
|
79
131
|
message: string;
|
|
80
132
|
messageType: string;
|
|
81
133
|
timestamp: number;
|
|
82
|
-
}>, source?: 'server' | 'plugin'): {
|
|
134
|
+
}>, source?: 'server' | 'plugin' | 'client'): {
|
|
83
135
|
accepted: number;
|
|
84
136
|
sessionMatch: boolean;
|
|
85
137
|
};
|
|
@@ -107,5 +159,40 @@ export declare class BridgeService {
|
|
|
107
159
|
* active session, resolves true immediately.
|
|
108
160
|
*/
|
|
109
161
|
waitForTestEnd(timeoutMs: number): Promise<boolean>;
|
|
162
|
+
/**
|
|
163
|
+
* Snapshot of companion readiness for diagnostic / pre-flight callers.
|
|
164
|
+
* Returns null if no session is tracked.
|
|
165
|
+
*/
|
|
166
|
+
getTestSessionStatus(): null | {
|
|
167
|
+
sessionId: string;
|
|
168
|
+
status: 'active' | 'ended';
|
|
169
|
+
serverReady: boolean;
|
|
170
|
+
serverLoadstringReady: boolean;
|
|
171
|
+
clients: Array<{
|
|
172
|
+
userId: number;
|
|
173
|
+
name: string;
|
|
174
|
+
ready: boolean;
|
|
175
|
+
loadstringReady: boolean;
|
|
176
|
+
}>;
|
|
177
|
+
};
|
|
178
|
+
/**
|
|
179
|
+
* Register a pending eval and return a Promise that resolves with the
|
|
180
|
+
* companion's reply (or a synthetic timeout reply).
|
|
181
|
+
*
|
|
182
|
+
* The watchdog fires at `timeoutMs + EVAL_GRACE_MS`, capped at
|
|
183
|
+
* EVAL_HARD_CAP_MS. If the command was never claimed by a companion,
|
|
184
|
+
* we surface `companion_error` (companion unreachable) rather than
|
|
185
|
+
* `timeout` so the AI can distinguish "infinite loop in user code"
|
|
186
|
+
* from "no companion picked up the work".
|
|
187
|
+
*/
|
|
188
|
+
registerEvalReply(replyId: string, target: 'server' | {
|
|
189
|
+
client: number;
|
|
190
|
+
}, timeoutMs: number): Promise<EvalReplyPayload>;
|
|
191
|
+
/**
|
|
192
|
+
* Companion-side eval result delivery. Idempotent w.r.t. the same
|
|
193
|
+
* replyId. Returns true if the reply was matched and dispatched.
|
|
194
|
+
*/
|
|
195
|
+
resolveEvalReply(sessionId: string, replyId: string, payload: EvalReplyPayload): boolean;
|
|
110
196
|
}
|
|
197
|
+
export {};
|
|
111
198
|
//# sourceMappingURL=bridge-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge-service.d.ts","sourceRoot":"","sources":["../src/bridge-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bridge-service.d.ts","sourceRoot":"","sources":["../src/bridge-service.ts"],"names":[],"mappings":"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"}
|
package/dist/bridge-service.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
2
|
const MAX_OUTPUT_BUFFER = 5000;
|
|
3
|
+
// How long after the user-supplied timeoutMs we keep waiting before giving
|
|
4
|
+
// up entirely. Accounts for HTTP RTT + companion poll latency.
|
|
5
|
+
const EVAL_GRACE_MS = 1500;
|
|
6
|
+
// Hard cap on how long a single eval can take before we abandon the reply
|
|
7
|
+
// slot regardless of what the companion claims.
|
|
8
|
+
const EVAL_HARD_CAP_MS = 60_000;
|
|
3
9
|
export class BridgeService {
|
|
4
10
|
pendingRequests = new Map();
|
|
5
11
|
requestTimeout = 30000; // 30 seconds timeout
|
|
@@ -8,24 +14,24 @@ export class BridgeService {
|
|
|
8
14
|
// startTestSession call.
|
|
9
15
|
testSession = null;
|
|
10
16
|
async sendRequest(endpoint, data) {
|
|
11
|
-
const requestId =
|
|
17
|
+
const requestId = randomUUID();
|
|
12
18
|
return new Promise((resolve, reject) => {
|
|
19
|
+
const timeoutHandle = setTimeout(() => {
|
|
20
|
+
if (this.pendingRequests.has(requestId)) {
|
|
21
|
+
this.pendingRequests.delete(requestId);
|
|
22
|
+
reject(new Error('Request timeout'));
|
|
23
|
+
}
|
|
24
|
+
}, this.requestTimeout);
|
|
13
25
|
const request = {
|
|
14
26
|
id: requestId,
|
|
15
27
|
endpoint,
|
|
16
28
|
data,
|
|
17
29
|
timestamp: Date.now(),
|
|
30
|
+
timeoutHandle,
|
|
18
31
|
resolve,
|
|
19
32
|
reject
|
|
20
33
|
};
|
|
21
34
|
this.pendingRequests.set(requestId, request);
|
|
22
|
-
// Set timeout
|
|
23
|
-
setTimeout(() => {
|
|
24
|
-
if (this.pendingRequests.has(requestId)) {
|
|
25
|
-
this.pendingRequests.delete(requestId);
|
|
26
|
-
reject(new Error('Request timeout'));
|
|
27
|
-
}
|
|
28
|
-
}, this.requestTimeout);
|
|
29
35
|
});
|
|
30
36
|
}
|
|
31
37
|
getPendingRequest() {
|
|
@@ -51,6 +57,7 @@ export class BridgeService {
|
|
|
51
57
|
const request = this.pendingRequests.get(requestId);
|
|
52
58
|
if (request) {
|
|
53
59
|
this.pendingRequests.delete(requestId);
|
|
60
|
+
clearTimeout(request.timeoutHandle);
|
|
54
61
|
request.resolve(response);
|
|
55
62
|
}
|
|
56
63
|
}
|
|
@@ -58,6 +65,7 @@ export class BridgeService {
|
|
|
58
65
|
const request = this.pendingRequests.get(requestId);
|
|
59
66
|
if (request) {
|
|
60
67
|
this.pendingRequests.delete(requestId);
|
|
68
|
+
clearTimeout(request.timeoutHandle);
|
|
61
69
|
request.reject(error);
|
|
62
70
|
}
|
|
63
71
|
}
|
|
@@ -67,6 +75,7 @@ export class BridgeService {
|
|
|
67
75
|
for (const [id, request] of this.pendingRequests.entries()) {
|
|
68
76
|
if (now - request.timestamp > this.requestTimeout) {
|
|
69
77
|
this.pendingRequests.delete(id);
|
|
78
|
+
clearTimeout(request.timeoutHandle);
|
|
70
79
|
request.reject(new Error('Request timeout'));
|
|
71
80
|
}
|
|
72
81
|
}
|
|
@@ -74,6 +83,7 @@ export class BridgeService {
|
|
|
74
83
|
// Force cleanup all pending requests (used on disconnect)
|
|
75
84
|
clearAllPendingRequests() {
|
|
76
85
|
for (const [, request] of this.pendingRequests.entries()) {
|
|
86
|
+
clearTimeout(request.timeoutHandle);
|
|
77
87
|
request.reject(new Error('Connection closed'));
|
|
78
88
|
}
|
|
79
89
|
this.pendingRequests.clear();
|
|
@@ -94,7 +104,7 @@ export class BridgeService {
|
|
|
94
104
|
if (this.testSession && this.testSession.status === 'active') {
|
|
95
105
|
this.markTestSessionEnded('superseded');
|
|
96
106
|
}
|
|
97
|
-
const sessionId =
|
|
107
|
+
const sessionId = randomUUID();
|
|
98
108
|
this.testSession = {
|
|
99
109
|
sessionId,
|
|
100
110
|
status: 'active',
|
|
@@ -102,9 +112,14 @@ export class BridgeService {
|
|
|
102
112
|
endedAt: null,
|
|
103
113
|
endReason: null,
|
|
104
114
|
endValue: null,
|
|
105
|
-
|
|
115
|
+
serverReady: false,
|
|
116
|
+
serverLoadstringReady: false,
|
|
117
|
+
serverLastPolledAt: 0,
|
|
118
|
+
clients: new Map(),
|
|
119
|
+
pendingCommandsServer: [],
|
|
106
120
|
outputBuffer: [],
|
|
107
121
|
outputSeq: 0,
|
|
122
|
+
evalReplies: new Map(),
|
|
108
123
|
endWaiters: [],
|
|
109
124
|
};
|
|
110
125
|
return sessionId;
|
|
@@ -121,6 +136,17 @@ export class BridgeService {
|
|
|
121
136
|
session.endedAt = Date.now();
|
|
122
137
|
session.endReason = reason;
|
|
123
138
|
session.endValue = value ?? null;
|
|
139
|
+
// Reject any in-flight eval waiters — the test died before the
|
|
140
|
+
// companion could reply. Clear their watchdog timers too.
|
|
141
|
+
for (const [replyId, pending] of session.evalReplies.entries()) {
|
|
142
|
+
clearTimeout(pending.timeoutHandle);
|
|
143
|
+
pending.resolve({
|
|
144
|
+
ok: false,
|
|
145
|
+
errorType: 'companion_error',
|
|
146
|
+
error: `Play test ended (${reason}) before eval reply could be delivered.`,
|
|
147
|
+
});
|
|
148
|
+
session.evalReplies.delete(replyId);
|
|
149
|
+
}
|
|
124
150
|
const waiters = session.endWaiters.splice(0);
|
|
125
151
|
for (const w of waiters) {
|
|
126
152
|
try {
|
|
@@ -144,34 +170,107 @@ export class BridgeService {
|
|
|
144
170
|
return true;
|
|
145
171
|
}
|
|
146
172
|
/**
|
|
147
|
-
* Queue a command for the companion
|
|
148
|
-
*
|
|
173
|
+
* Queue a command for either the server companion or a specific client
|
|
174
|
+
* companion. Defaults to the server queue (preserves prior call-site
|
|
175
|
+
* behavior for the existing 'end' command path).
|
|
176
|
+
*
|
|
177
|
+
* Returns false if the targeted queue doesn't exist (e.g. no such
|
|
178
|
+
* client), the session is null/ended, etc.
|
|
149
179
|
*/
|
|
150
|
-
enqueueTestCommand(cmd) {
|
|
180
|
+
enqueueTestCommand(cmd, target = 'server') {
|
|
151
181
|
const session = this.testSession;
|
|
152
182
|
if (!session || session.status !== 'active')
|
|
153
183
|
return false;
|
|
154
|
-
|
|
184
|
+
if (target === 'server') {
|
|
185
|
+
session.pendingCommandsServer.push(cmd);
|
|
186
|
+
return true;
|
|
187
|
+
}
|
|
188
|
+
const client = session.clients.get(target.client);
|
|
189
|
+
if (!client)
|
|
190
|
+
return false;
|
|
191
|
+
client.pendingCommands.push(cmd);
|
|
155
192
|
return true;
|
|
156
193
|
}
|
|
157
194
|
/**
|
|
158
|
-
* Companion poll: returns the oldest pending command
|
|
159
|
-
* If the session was already marked ended, signals
|
|
160
|
-
* stops polling.
|
|
195
|
+
* Companion poll: returns the oldest pending command for this target,
|
|
196
|
+
* or null if none. If the session was already marked ended, signals
|
|
197
|
+
* that so the companion stops polling.
|
|
198
|
+
*
|
|
199
|
+
* The hello payload (sent by a companion on its first poll) registers
|
|
200
|
+
* its readiness state. Server companion sends `{ loadstringReady }`;
|
|
201
|
+
* client companions add `{ userId, name, loadstringReady }`.
|
|
161
202
|
*/
|
|
162
|
-
popTestCommand(sessionId) {
|
|
203
|
+
popTestCommand(sessionId, target = 'server', options = {}) {
|
|
163
204
|
const session = this.testSession;
|
|
164
205
|
if (!session || session.sessionId !== sessionId) {
|
|
165
206
|
return { command: null, ended: true, sessionMatch: false };
|
|
166
207
|
}
|
|
208
|
+
// Update handshake/poll-time bookkeeping regardless of status, so
|
|
209
|
+
// late polls after end still update lastPolledAt for diagnostics.
|
|
210
|
+
if (target === 'server') {
|
|
211
|
+
if (!session.serverReady) {
|
|
212
|
+
session.serverReady = true;
|
|
213
|
+
session.serverLoadstringReady = !!options.hello?.loadstringReady;
|
|
214
|
+
}
|
|
215
|
+
else if (options.hello && typeof options.hello.loadstringReady === 'boolean') {
|
|
216
|
+
// Allow re-handshake (e.g. companion re-checked).
|
|
217
|
+
session.serverLoadstringReady = options.hello.loadstringReady;
|
|
218
|
+
}
|
|
219
|
+
session.serverLastPolledAt = Date.now();
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
// Client target: require userId for routing.
|
|
223
|
+
const userId = typeof options.userId === 'number' ? options.userId : null;
|
|
224
|
+
if (userId === null) {
|
|
225
|
+
return { command: null, ended: session.status === 'ended', sessionMatch: true };
|
|
226
|
+
}
|
|
227
|
+
let client = session.clients.get(userId);
|
|
228
|
+
if (!client) {
|
|
229
|
+
client = {
|
|
230
|
+
userId,
|
|
231
|
+
name: options.playerName || `User_${userId}`,
|
|
232
|
+
loadstringReady: !!options.hello?.loadstringReady,
|
|
233
|
+
ready: true,
|
|
234
|
+
registeredAt: Date.now(),
|
|
235
|
+
lastPolledAt: Date.now(),
|
|
236
|
+
pendingCommands: [],
|
|
237
|
+
};
|
|
238
|
+
session.clients.set(userId, client);
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
client.lastPolledAt = Date.now();
|
|
242
|
+
if (options.playerName)
|
|
243
|
+
client.name = options.playerName;
|
|
244
|
+
if (options.hello && typeof options.hello.loadstringReady === 'boolean') {
|
|
245
|
+
client.loadstringReady = options.hello.loadstringReady;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
167
249
|
if (session.status === 'ended') {
|
|
168
250
|
return { command: null, ended: true, sessionMatch: true };
|
|
169
251
|
}
|
|
170
|
-
|
|
252
|
+
let command = null;
|
|
253
|
+
if (target === 'server') {
|
|
254
|
+
command = session.pendingCommandsServer.shift() ?? null;
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
const userId = typeof options.userId === 'number' ? options.userId : null;
|
|
258
|
+
if (userId !== null) {
|
|
259
|
+
const client = session.clients.get(userId);
|
|
260
|
+
command = client?.pendingCommands.shift() ?? null;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
// If we just popped an eval, mark its reply slot as claimed so the
|
|
264
|
+
// watchdog knows the companion at least picked it up.
|
|
265
|
+
if (command && command.cmd === 'eval' && command.args && typeof command.args.replyId === 'string') {
|
|
266
|
+
const slot = session.evalReplies.get(command.args.replyId);
|
|
267
|
+
if (slot)
|
|
268
|
+
slot.claimed = true;
|
|
269
|
+
}
|
|
171
270
|
return { command, ended: false, sessionMatch: true };
|
|
172
271
|
}
|
|
173
272
|
/**
|
|
174
|
-
* Append a batch of log entries from
|
|
273
|
+
* Append a batch of log entries from a companion. Drops oldest entries
|
|
175
274
|
* if the buffer would exceed MAX_OUTPUT_BUFFER. Each entry gets a
|
|
176
275
|
* monotonically increasing seq for "since" cursor support.
|
|
177
276
|
*/
|
|
@@ -260,5 +359,123 @@ export class BridgeService {
|
|
|
260
359
|
setTimeout(() => finish(false), timeoutMs);
|
|
261
360
|
});
|
|
262
361
|
}
|
|
362
|
+
// ==========================================================================
|
|
363
|
+
// run_live_lua eval reply tracking
|
|
364
|
+
// ==========================================================================
|
|
365
|
+
/**
|
|
366
|
+
* Snapshot of companion readiness for diagnostic / pre-flight callers.
|
|
367
|
+
* Returns null if no session is tracked.
|
|
368
|
+
*/
|
|
369
|
+
getTestSessionStatus() {
|
|
370
|
+
const session = this.testSession;
|
|
371
|
+
if (!session)
|
|
372
|
+
return null;
|
|
373
|
+
return {
|
|
374
|
+
sessionId: session.sessionId,
|
|
375
|
+
status: session.status,
|
|
376
|
+
serverReady: session.serverReady,
|
|
377
|
+
serverLoadstringReady: session.serverLoadstringReady,
|
|
378
|
+
clients: [...session.clients.values()].map((c) => ({
|
|
379
|
+
userId: c.userId,
|
|
380
|
+
name: c.name,
|
|
381
|
+
ready: c.ready,
|
|
382
|
+
loadstringReady: c.loadstringReady,
|
|
383
|
+
})),
|
|
384
|
+
};
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Register a pending eval and return a Promise that resolves with the
|
|
388
|
+
* companion's reply (or a synthetic timeout reply).
|
|
389
|
+
*
|
|
390
|
+
* The watchdog fires at `timeoutMs + EVAL_GRACE_MS`, capped at
|
|
391
|
+
* EVAL_HARD_CAP_MS. If the command was never claimed by a companion,
|
|
392
|
+
* we surface `companion_error` (companion unreachable) rather than
|
|
393
|
+
* `timeout` so the AI can distinguish "infinite loop in user code"
|
|
394
|
+
* from "no companion picked up the work".
|
|
395
|
+
*/
|
|
396
|
+
registerEvalReply(replyId, target, timeoutMs) {
|
|
397
|
+
const session = this.testSession;
|
|
398
|
+
if (!session || session.status !== 'active') {
|
|
399
|
+
return Promise.resolve({
|
|
400
|
+
ok: false,
|
|
401
|
+
errorType: 'companion_error',
|
|
402
|
+
error: 'No active play test session.',
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
const watchdogMs = Math.min(EVAL_HARD_CAP_MS, Math.max(1000, timeoutMs + EVAL_GRACE_MS));
|
|
406
|
+
return new Promise((resolve) => {
|
|
407
|
+
let done = false;
|
|
408
|
+
const finish = (payload) => {
|
|
409
|
+
if (done)
|
|
410
|
+
return;
|
|
411
|
+
done = true;
|
|
412
|
+
const cur = this.testSession;
|
|
413
|
+
if (cur && cur.sessionId === session.sessionId) {
|
|
414
|
+
const slot = cur.evalReplies.get(replyId);
|
|
415
|
+
if (slot) {
|
|
416
|
+
clearTimeout(slot.timeoutHandle);
|
|
417
|
+
cur.evalReplies.delete(replyId);
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
resolve(payload);
|
|
421
|
+
};
|
|
422
|
+
const timeoutHandle = setTimeout(() => {
|
|
423
|
+
const cur = this.testSession;
|
|
424
|
+
if (!cur || cur.sessionId !== session.sessionId) {
|
|
425
|
+
finish({
|
|
426
|
+
ok: false,
|
|
427
|
+
errorType: 'companion_error',
|
|
428
|
+
error: 'Play test session changed while waiting for eval reply.',
|
|
429
|
+
});
|
|
430
|
+
return;
|
|
431
|
+
}
|
|
432
|
+
const slot = cur.evalReplies.get(replyId);
|
|
433
|
+
if (!slot) {
|
|
434
|
+
// Reply already arrived and removed the slot — race with timeout.
|
|
435
|
+
finish({
|
|
436
|
+
ok: false,
|
|
437
|
+
errorType: 'companion_error',
|
|
438
|
+
error: 'Eval reply slot vanished before resolution (internal race).',
|
|
439
|
+
});
|
|
440
|
+
return;
|
|
441
|
+
}
|
|
442
|
+
if (!slot.claimed) {
|
|
443
|
+
finish({
|
|
444
|
+
ok: false,
|
|
445
|
+
errorType: 'companion_error',
|
|
446
|
+
error: 'Companion never picked up the eval command within the watchdog window. The injected companion script may have died, or its HTTP polling is blocked.',
|
|
447
|
+
});
|
|
448
|
+
}
|
|
449
|
+
else {
|
|
450
|
+
finish({
|
|
451
|
+
ok: false,
|
|
452
|
+
errorType: 'timeout',
|
|
453
|
+
error: `Eval did not complete within ${timeoutMs}ms (watchdog fired after ${watchdogMs}ms grace).`,
|
|
454
|
+
});
|
|
455
|
+
}
|
|
456
|
+
}, watchdogMs);
|
|
457
|
+
session.evalReplies.set(replyId, {
|
|
458
|
+
resolve: finish,
|
|
459
|
+
timeoutHandle,
|
|
460
|
+
target,
|
|
461
|
+
claimed: false,
|
|
462
|
+
startedAt: Date.now(),
|
|
463
|
+
});
|
|
464
|
+
});
|
|
465
|
+
}
|
|
466
|
+
/**
|
|
467
|
+
* Companion-side eval result delivery. Idempotent w.r.t. the same
|
|
468
|
+
* replyId. Returns true if the reply was matched and dispatched.
|
|
469
|
+
*/
|
|
470
|
+
resolveEvalReply(sessionId, replyId, payload) {
|
|
471
|
+
const session = this.testSession;
|
|
472
|
+
if (!session || session.sessionId !== sessionId)
|
|
473
|
+
return false;
|
|
474
|
+
const slot = session.evalReplies.get(replyId);
|
|
475
|
+
if (!slot)
|
|
476
|
+
return false;
|
|
477
|
+
slot.resolve(payload);
|
|
478
|
+
return true;
|
|
479
|
+
}
|
|
263
480
|
}
|
|
264
481
|
//# sourceMappingURL=bridge-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge-service.js","sourceRoot":"","sources":["../src/bridge-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bridge-service.js","sourceRoot":"","sources":["../src/bridge-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAoHzC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B,2EAA2E;AAC3E,+DAA+D;AAC/D,MAAM,aAAa,GAAG,IAAI,CAAC;AAC3B,0EAA0E;AAC1E,gDAAgD;AAChD,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC,MAAM,OAAO,aAAa;IAChB,eAAe,GAAgC,IAAI,GAAG,EAAE,CAAC;IACzD,cAAc,GAAG,KAAK,CAAC,CAAC,qBAAqB;IAErD,qEAAqE;IACrE,+DAA+D;IAC/D,yBAAyB;IACzB,WAAW,GAA4B,IAAI,CAAC;IAE5C,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,IAAS;QAC3C,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAE/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;gBACpC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBACxC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACvC,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAExB,MAAM,OAAO,GAAmB;gBAC9B,EAAE,EAAE,SAAS;gBACb,QAAQ;gBACR,IAAI;gBACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,aAAa;gBACb,OAAO;gBACP,MAAM;aACP,CAAC;YAEF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;QACf,6BAA6B;QAC7B,IAAI,aAAa,GAA0B,IAAI,CAAC;QAEhD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YACpD,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;gBAClE,aAAa,GAAG,OAAO,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO;gBACL,SAAS,EAAE,aAAa,CAAC,EAAE;gBAC3B,OAAO,EAAE;oBACP,QAAQ,EAAE,aAAa,CAAC,QAAQ;oBAChC,IAAI,EAAE,aAAa,CAAC,IAAI;iBACzB;aACF,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,SAAiB,EAAE,QAAa;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACvC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACpC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,aAAa,CAAC,SAAiB,EAAE,KAAU;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACvC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,kBAAkB;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3D,IAAI,GAAG,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;gBAClD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAChC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBACpC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,uBAAuB;QACrB,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;YACzD,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED,6EAA6E;IAC7E,mBAAmB;IACnB,6EAA6E;IAE7E;;;;;OAKG;IACH,gBAAgB;QACd,qEAAqE;QACrE,oEAAoE;QACpE,uBAAuB;QACvB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7D,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG;YACjB,SAAS;YACT,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,KAAK;YAClB,qBAAqB,EAAE,KAAK;YAC5B,kBAAkB,EAAE,CAAC;YACrB,OAAO,EAAE,IAAI,GAAG,EAAE;YAClB,qBAAqB,EAAE,EAAE;YACzB,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,IAAI,GAAG,EAAE;YACtB,UAAU,EAAE,EAAE;SACf,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACK,oBAAoB,CAAC,MAAc,EAAE,KAAW;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO;YAAE,OAAO;QACnD,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;QACzB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;QAC3B,OAAO,CAAC,QAAQ,GAAG,KAAK,IAAI,IAAI,CAAC;QAEjC,+DAA+D;QAC/D,0DAA0D;QAC1D,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/D,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACpC,OAAO,CAAC,OAAO,CAAC;gBACd,EAAE,EAAE,KAAK;gBACT,SAAS,EAAE,iBAAiB;gBAC5B,KAAK,EAAE,oBAAoB,MAAM,yCAAyC;aAC3E,CAAC,CAAC;YACH,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC;gBAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,SAAiB,EAAE,MAAc,EAAE,KAAW;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QAC5C,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACH,kBAAkB,CAChB,GAAuB,EACvB,SAAwC,QAAQ;QAEhD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC1D,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,cAAc,CACZ,SAAiB,EACjB,SAA8B,QAAQ,EACtC,UAII,EAAE;QAMN,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;QAC7D,CAAC;QAED,kEAAkE;QAClE,kEAAkE;QAClE,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBACzB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC3B,OAAO,CAAC,qBAAqB,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC;YACnE,CAAC;iBAAM,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;gBAC/E,kDAAkD;gBAClD,OAAO,CAAC,qBAAqB,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC;YAChE,CAAC;YACD,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,6CAA6C;YAC7C,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1E,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;YAClF,CAAC;YACD,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,GAAG;oBACP,MAAM;oBACN,IAAI,EAAE,OAAO,CAAC,UAAU,IAAI,QAAQ,MAAM,EAAE;oBAC5C,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,eAAe;oBACjD,KAAK,EAAE,IAAI;oBACX,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;oBACxB,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;oBACxB,eAAe,EAAE,EAAE;iBACpB,CAAC;gBACF,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACjC,IAAI,OAAO,CAAC,UAAU;oBAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;gBACzD,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;oBACxE,MAAM,CAAC,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC;gBACzD,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC/B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QAC5D,CAAC;QAED,IAAI,OAAO,GAA8B,IAAI,CAAC;QAC9C,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1E,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC3C,OAAO,GAAG,MAAM,EAAE,eAAe,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC;YACpD,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,sDAAsD;QACtD,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAClG,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3D,IAAI,IAAI;gBAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAChC,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CACd,SAAiB,EACjB,QAA4E,EAC5E,SAAyC,QAAQ;QAEjD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAChD,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;QAC9C,CAAC;QACD,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;YACvB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;gBACxB,GAAG,EAAE,OAAO,CAAC,SAAS;gBACtB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;gBAChC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,eAAe,CAAC;gBACrD,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;gBAC5E,MAAM;aACP,CAAC,CAAC;YACH,QAAQ,IAAI,CAAC,CAAC;QAChB,CAAC;QACD,mCAAmC;QACnC,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;YACpD,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,iBAAiB,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,OAIV,EAAE;QAQJ,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE;gBACX,YAAY,EAAE,CAAC;gBACf,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEpG,MAAM,QAAQ,GAA0B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACrC,IAAI,CAAC,CAAC,GAAG,IAAI,QAAQ;gBAAE,SAAS;YAChC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC;gBAAE,SAAS;YACjD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,IAAI,QAAQ,CAAC,MAAM,IAAI,KAAK;gBAAE,MAAM;QACtC,CAAC;QACD,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QACxF,OAAO;YACL,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,QAAQ;YACjB,YAAY;YACZ,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,SAAiB;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzE,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;YACtC,IAAI,IAAI,GAAG,KAAK,CAAC;YACjB,MAAM,MAAM,GAAG,CAAC,EAAW,EAAE,EAAE;gBAC7B,IAAI,IAAI;oBAAE,OAAO;gBACjB,IAAI,GAAG,IAAI,CAAC;gBACZ,OAAO,CAAC,EAAE,CAAC,CAAC;YACd,CAAC,CAAC;YACF,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5C,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAC7E,mCAAmC;IACnC,6EAA6E;IAE7E;;;OAGG;IACH,oBAAoB;QAclB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,OAAO;YACL,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;YACpD,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjD,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,eAAe,EAAE,CAAC,CAAC,eAAe;aACnC,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,iBAAiB,CACf,OAAe,EACf,MAAqC,EACrC,SAAiB;QAEjB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,OAAO,CAAC,OAAO,CAAC;gBACrB,EAAE,EAAE,KAAK;gBACT,SAAS,EAAE,iBAAiB;gBAC5B,KAAK,EAAE,8BAA8B;aACtC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC;QACzF,OAAO,IAAI,OAAO,CAAmB,CAAC,OAAO,EAAE,EAAE;YAC/C,IAAI,IAAI,GAAG,KAAK,CAAC;YACjB,MAAM,MAAM,GAAG,CAAC,OAAyB,EAAE,EAAE;gBAC3C,IAAI,IAAI;oBAAE,OAAO;gBACjB,IAAI,GAAG,IAAI,CAAC;gBACZ,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC7B,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC;oBAC/C,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAC1C,IAAI,IAAI,EAAE,CAAC;wBACT,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;wBACjC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAClC,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC,CAAC;YACF,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;gBACpC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC7B,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC;oBAChD,MAAM,CAAC;wBACL,EAAE,EAAE,KAAK;wBACT,SAAS,EAAE,iBAAiB;wBAC5B,KAAK,EAAE,yDAAyD;qBACjE,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBACD,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,kEAAkE;oBAClE,MAAM,CAAC;wBACL,EAAE,EAAE,KAAK;wBACT,SAAS,EAAE,iBAAiB;wBAC5B,KAAK,EAAE,6DAA6D;qBACrE,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,MAAM,CAAC;wBACL,EAAE,EAAE,KAAK;wBACT,SAAS,EAAE,iBAAiB;wBAC5B,KAAK,EACH,qJAAqJ;qBACxJ,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC;wBACL,EAAE,EAAE,KAAK;wBACT,SAAS,EAAE,SAAS;wBACpB,KAAK,EAAE,gCAAgC,SAAS,4BAA4B,UAAU,YAAY;qBACnG,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,EAAE,UAAU,CAAC,CAAC;YAEf,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE;gBAC/B,OAAO,EAAE,MAAM;gBACf,aAAa;gBACb,MAAM;gBACN,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,SAAiB,EAAE,OAAe,EAAE,OAAyB;QAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache layout for the Roblox creator-docs mirror.
|
|
3
|
+
*
|
|
4
|
+
* <cacheDir>/
|
|
5
|
+
* meta.json ← bookkeeping (sha, downloadedAt, …)
|
|
6
|
+
* content/ ← extracted, scope-filtered docs tree
|
|
7
|
+
* en-us/
|
|
8
|
+
* reference/engine/classes/Part.yaml
|
|
9
|
+
* reference/engine/datatypes/CFrame.yaml
|
|
10
|
+
* …
|
|
11
|
+
*
|
|
12
|
+
* Cache directory is resolved by `env-paths` (cross-platform) but can be
|
|
13
|
+
* overridden via `RBXSTUDIO_DOCS_DIR` for tests, sandboxes, or users with
|
|
14
|
+
* non-standard layouts.
|
|
15
|
+
*/
|
|
16
|
+
export interface DocsMeta {
|
|
17
|
+
/** Repo we cloned from, e.g. "Roblox/creator-docs". */
|
|
18
|
+
repo: string;
|
|
19
|
+
/** Branch/ref we tracked, e.g. "main". */
|
|
20
|
+
branch: string;
|
|
21
|
+
/** Commit SHA of the snapshot on disk. Empty if cache is empty. */
|
|
22
|
+
sha: string;
|
|
23
|
+
/** ISO timestamp of when the tarball was last extracted. */
|
|
24
|
+
downloadedAt: string;
|
|
25
|
+
/** ISO timestamp of when we last hit the GitHub API to check freshness. */
|
|
26
|
+
lastCheckedAt: string;
|
|
27
|
+
/** How many files survived scope-filtering and are sitting in `content/`. */
|
|
28
|
+
fileCount: number;
|
|
29
|
+
/** Approximate bytes-on-disk for the extracted tree. */
|
|
30
|
+
bytesOnDisk: number;
|
|
31
|
+
/** Schema version — bump if we change the layout incompatibly. */
|
|
32
|
+
schemaVersion: number;
|
|
33
|
+
}
|
|
34
|
+
export declare function resolveCacheDir(): string;
|
|
35
|
+
export declare function metaPath(cacheDir: string): string;
|
|
36
|
+
export declare function contentRoot(cacheDir: string): string;
|
|
37
|
+
export declare function readMeta(cacheDir: string): Promise<DocsMeta | null>;
|
|
38
|
+
export declare function writeMeta(cacheDir: string, meta: Omit<DocsMeta, 'schemaVersion'>): Promise<void>;
|
|
39
|
+
export declare function ensureCacheDir(cacheDir: string): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Wipe the extracted content tree (but keep the cacheDir itself, so users
|
|
42
|
+
* can `tail -F` it if they want to).
|
|
43
|
+
*/
|
|
44
|
+
export declare function clearContent(cacheDir: string): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Best-effort byte-count of the content tree. Used for status reporting
|
|
47
|
+
* only; not safety-critical, so errors are swallowed.
|
|
48
|
+
*/
|
|
49
|
+
export declare function approxSizeOnDisk(dir: string): Promise<number>;
|
|
50
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/docs/cache.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,QAAQ;IACvB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,YAAY,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,aAAa,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAC;CACvB;AAkBD,wBAAgB,eAAe,IAAI,MAAM,CAYxC;AAqBD,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAezE;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAItG;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlE;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBnE"}
|