@sxl-studio/bridge 1.7.1 → 1.7.2
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/command-queue.d.ts +13 -1
- package/dist/command-queue.js +96 -25
- package/dist/command-queue.js.map +1 -1
- package/package.json +2 -2
package/dist/command-queue.d.ts
CHANGED
|
@@ -15,15 +15,27 @@ type CommandSender = (command: {
|
|
|
15
15
|
export declare class CommandQueue {
|
|
16
16
|
private queue;
|
|
17
17
|
private current;
|
|
18
|
+
private immediate;
|
|
18
19
|
private sendCommand;
|
|
19
|
-
private
|
|
20
|
+
private timeoutHandles;
|
|
20
21
|
setSender(sender: CommandSender): void;
|
|
21
22
|
get queueLength(): number;
|
|
22
23
|
get currentCommand(): string | null;
|
|
23
24
|
execute(commandType: string, payload?: Record<string, unknown>): Promise<CommandResult>;
|
|
25
|
+
/**
|
|
26
|
+
* Out-of-band command dispatch for control-plane operations.
|
|
27
|
+
*
|
|
28
|
+
* Long Figma operations are intentionally serialized, but cancellation must be able
|
|
29
|
+
* to reach the plugin while another command is running. The plugin main handler can
|
|
30
|
+
* process this command concurrently during generator yields and flip its cancellation
|
|
31
|
+
* flag; queuing it behind the running command makes cancellation ineffective.
|
|
32
|
+
*/
|
|
33
|
+
private executeImmediate;
|
|
34
|
+
private scheduleTimeout;
|
|
24
35
|
resolveCommand(commandId: string, status: CommandStatus, result?: unknown, error?: string, events?: unknown[], durationMs?: number): void;
|
|
25
36
|
cancelAll(): void;
|
|
26
37
|
private processNext;
|
|
27
38
|
private clearTimeout;
|
|
39
|
+
private clearAllTimeouts;
|
|
28
40
|
}
|
|
29
41
|
export {};
|
package/dist/command-queue.js
CHANGED
|
@@ -63,11 +63,15 @@ export const BRIDGE_COMMAND_TIMEOUT_MS = {
|
|
|
63
63
|
apply_coverage_suggestions: 3_600_000,
|
|
64
64
|
};
|
|
65
65
|
const DEFAULT_TIMEOUT = 3_600_000;
|
|
66
|
+
const IMMEDIATE_COMMAND_TYPES = new Set([
|
|
67
|
+
"cancel_composition_generation",
|
|
68
|
+
]);
|
|
66
69
|
export class CommandQueue {
|
|
67
70
|
queue = [];
|
|
68
71
|
current = null;
|
|
72
|
+
immediate = new Map();
|
|
69
73
|
sendCommand = null;
|
|
70
|
-
|
|
74
|
+
timeoutHandles = new Map();
|
|
71
75
|
setSender(sender) {
|
|
72
76
|
this.sendCommand = sender;
|
|
73
77
|
}
|
|
@@ -78,6 +82,9 @@ export class CommandQueue {
|
|
|
78
82
|
return this.current?.commandType ?? null;
|
|
79
83
|
}
|
|
80
84
|
async execute(commandType, payload = {}) {
|
|
85
|
+
if (IMMEDIATE_COMMAND_TYPES.has(commandType)) {
|
|
86
|
+
return this.executeImmediate(commandType, payload);
|
|
87
|
+
}
|
|
81
88
|
const commandId = randomUUID();
|
|
82
89
|
const timeout = BRIDGE_COMMAND_TIMEOUT_MS[commandType] ?? DEFAULT_TIMEOUT;
|
|
83
90
|
return new Promise((resolve) => {
|
|
@@ -91,29 +98,76 @@ export class CommandQueue {
|
|
|
91
98
|
};
|
|
92
99
|
this.queue.push(command);
|
|
93
100
|
this.processNext();
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
101
|
+
this.scheduleTimeout(command, timeout);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Out-of-band command dispatch for control-plane operations.
|
|
106
|
+
*
|
|
107
|
+
* Long Figma operations are intentionally serialized, but cancellation must be able
|
|
108
|
+
* to reach the plugin while another command is running. The plugin main handler can
|
|
109
|
+
* process this command concurrently during generator yields and flip its cancellation
|
|
110
|
+
* flag; queuing it behind the running command makes cancellation ineffective.
|
|
111
|
+
*/
|
|
112
|
+
async executeImmediate(commandType, payload) {
|
|
113
|
+
const commandId = randomUUID();
|
|
114
|
+
const timeout = BRIDGE_COMMAND_TIMEOUT_MS[commandType] ?? DEFAULT_TIMEOUT;
|
|
115
|
+
return new Promise((resolve) => {
|
|
116
|
+
const command = {
|
|
117
|
+
commandId,
|
|
118
|
+
commandType,
|
|
119
|
+
payload,
|
|
120
|
+
status: "running",
|
|
121
|
+
createdAt: Date.now(),
|
|
122
|
+
startedAt: Date.now(),
|
|
123
|
+
resolve,
|
|
124
|
+
};
|
|
125
|
+
if (!this.sendCommand) {
|
|
126
|
+
command.status = "failed";
|
|
127
|
+
command.completedAt = Date.now();
|
|
128
|
+
resolve({ commandId, status: "failed", error: "No plugin connected" });
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
const sent = this.sendCommand({
|
|
132
|
+
commandId,
|
|
133
|
+
commandType,
|
|
134
|
+
payload,
|
|
135
|
+
});
|
|
136
|
+
if (!sent) {
|
|
137
|
+
command.status = "failed";
|
|
138
|
+
command.completedAt = Date.now();
|
|
139
|
+
resolve({ commandId, status: "failed", error: "Failed to send to plugin" });
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
this.immediate.set(commandId, command);
|
|
143
|
+
this.scheduleTimeout(command, timeout);
|
|
111
144
|
});
|
|
112
145
|
}
|
|
146
|
+
scheduleTimeout(command, timeout) {
|
|
147
|
+
const handle = setTimeout(() => {
|
|
148
|
+
if (command.status === "pending" || command.status === "running") {
|
|
149
|
+
command.status = "timeout";
|
|
150
|
+
command.completedAt = Date.now();
|
|
151
|
+
command.error = `Command "${command.commandType}" timed out after ${timeout}ms`;
|
|
152
|
+
command.resolve?.({
|
|
153
|
+
commandId: command.commandId,
|
|
154
|
+
status: "timeout",
|
|
155
|
+
error: command.error,
|
|
156
|
+
});
|
|
157
|
+
this.immediate.delete(command.commandId);
|
|
158
|
+
this.clearTimeout(command.commandId);
|
|
159
|
+
if (this.current?.commandId === command.commandId) {
|
|
160
|
+
this.current = null;
|
|
161
|
+
this.processNext();
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}, timeout);
|
|
165
|
+
this.timeoutHandles.set(command.commandId, handle);
|
|
166
|
+
}
|
|
113
167
|
resolveCommand(commandId, status, result, error, events, durationMs) {
|
|
114
168
|
const target = this.current?.commandId === commandId
|
|
115
169
|
? this.current
|
|
116
|
-
: this.queue.find((c) => c.commandId === commandId);
|
|
170
|
+
: this.immediate.get(commandId) ?? this.queue.find((c) => c.commandId === commandId);
|
|
117
171
|
if (!target)
|
|
118
172
|
return;
|
|
119
173
|
target.status = status;
|
|
@@ -130,9 +184,12 @@ export class CommandQueue {
|
|
|
130
184
|
events,
|
|
131
185
|
durationMs,
|
|
132
186
|
});
|
|
187
|
+
this.clearTimeout(commandId);
|
|
188
|
+
if (this.immediate.delete(commandId)) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
133
191
|
if (this.current?.commandId === commandId) {
|
|
134
192
|
this.current = null;
|
|
135
|
-
this.clearTimeout();
|
|
136
193
|
this.processNext();
|
|
137
194
|
}
|
|
138
195
|
}
|
|
@@ -144,12 +201,19 @@ export class CommandQueue {
|
|
|
144
201
|
}
|
|
145
202
|
}
|
|
146
203
|
this.queue = [];
|
|
204
|
+
for (const cmd of this.immediate.values()) {
|
|
205
|
+
if (cmd.status === "pending" || cmd.status === "running") {
|
|
206
|
+
cmd.status = "cancelled";
|
|
207
|
+
cmd.resolve?.({ commandId: cmd.commandId, status: "cancelled", error: "Session disconnected" });
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
this.immediate.clear();
|
|
147
211
|
if (this.current && this.current.status === "running") {
|
|
148
212
|
this.current.status = "cancelled";
|
|
149
213
|
this.current.resolve?.({ commandId: this.current.commandId, status: "cancelled", error: "Session disconnected" });
|
|
150
214
|
this.current = null;
|
|
151
215
|
}
|
|
152
|
-
this.
|
|
216
|
+
this.clearAllTimeouts();
|
|
153
217
|
}
|
|
154
218
|
processNext() {
|
|
155
219
|
if (this.current)
|
|
@@ -184,11 +248,18 @@ export class CommandQueue {
|
|
|
184
248
|
next.startedAt = Date.now();
|
|
185
249
|
this.current = next;
|
|
186
250
|
}
|
|
187
|
-
clearTimeout() {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
251
|
+
clearTimeout(commandId) {
|
|
252
|
+
const handle = this.timeoutHandles.get(commandId);
|
|
253
|
+
if (handle) {
|
|
254
|
+
clearTimeout(handle);
|
|
255
|
+
this.timeoutHandles.delete(commandId);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
clearAllTimeouts() {
|
|
259
|
+
for (const handle of this.timeoutHandles.values()) {
|
|
260
|
+
clearTimeout(handle);
|
|
191
261
|
}
|
|
262
|
+
this.timeoutHandles.clear();
|
|
192
263
|
}
|
|
193
264
|
}
|
|
194
265
|
//# sourceMappingURL=command-queue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-queue.js","sourceRoot":"","sources":["../src/command-queue.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,yFAAyF;AACzF,MAAM,CAAC,MAAM,yBAAyB,GAAqC;IACzE,gBAAgB,EAAE,SAAS;IAC3B,QAAQ,EAAE,SAAS;IACnB,aAAa,EAAE,SAAS;IACxB,QAAQ,EAAE,SAAS;IACnB,oBAAoB,EAAE,SAAS;IAC/B,iBAAiB,EAAE,SAAS;IAC5B,kBAAkB,EAAE,SAAS;IAC7B,uBAAuB,EAAE,SAAS;IAClC,sBAAsB,EAAE,SAAS;IACjC,eAAe,EAAE,SAAS;IAC1B,iBAAiB,EAAE,SAAS;IAC5B,2BAA2B,EAAE,SAAS;IACtC,oBAAoB,EAAE,SAAS;IAC/B,cAAc,EAAE,SAAS;IACzB,qBAAqB,EAAE,SAAS;IAChC,mBAAmB,EAAE,SAAS;IAC9B,cAAc,EAAE,SAAS;IACzB,kBAAkB,EAAE,SAAS;IAC7B,sBAAsB,EAAE,SAAS;IACjC,oBAAoB,EAAE,SAAS;IAC/B,qBAAqB,EAAE,SAAS;IAChC,qBAAqB,EAAE,SAAS;IAChC,0CAA0C;IAC1C,sBAAsB,EAAE,SAAS;IACjC,yBAAyB,EAAE,SAAS;IACpC,sBAAsB,EAAE,SAAS;IACjC,oBAAoB,EAAE,SAAS;IAC/B,yFAAyF;IACzF,aAAa,EAAE,SAAS;IACxB,oBAAoB,EAAE,SAAS;IAC/B,iBAAiB,EAAE,SAAS;IAC5B,aAAa,EAAE,SAAS;IACxB,gBAAgB,EAAE,SAAS;IAC3B,eAAe,EAAE,SAAS;IAC1B,UAAU,EAAE,SAAS;IACrB,kBAAkB,EAAE,SAAS;IAC7B,aAAa,EAAE,SAAS;IACxB,uBAAuB,EAAE,SAAS;IAClC,iDAAiD;IACjD,sBAAsB,EAAE,SAAS;IACjC,oBAAoB,EAAE,SAAS;IAC/B,0BAA0B,EAAE,SAAS;IACrC,uBAAuB,EAAE,SAAS;IAClC,6BAA6B,EAAE,SAAS;IACxC,oBAAoB,EAAE,SAAS;IAC/B,0BAA0B,EAAE,SAAS;IACrC,qBAAqB,EAAE,SAAS;IAChC,kBAAkB,EAAE,SAAS;IAC7B,wDAAwD;IACxD,oBAAoB,EAAE,SAAS;IAC/B,sBAAsB,EAAE,SAAS;IACjC,gBAAgB,EAAE,SAAS;IAC3B,uBAAuB,EAAE,SAAS;IAClC,0BAA0B,EAAE,SAAS;CACtC,CAAC;AAEF,MAAM,eAAe,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"command-queue.js","sourceRoot":"","sources":["../src/command-queue.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sxl-studio/bridge",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.2",
|
|
4
4
|
"description": "MCP/HTTP bridge server for SXL Studio Figma plugin — enables remote control from IDE",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -35,4 +35,4 @@
|
|
|
35
35
|
"typescript": "^5.7.0",
|
|
36
36
|
"vitest": "^3.0.0"
|
|
37
37
|
}
|
|
38
|
-
}
|
|
38
|
+
}
|