@zhin.js/adapter-sandbox 3.0.4 → 3.0.5
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/CHANGELOG.md +15 -0
- package/README.md +8 -20
- package/client/Sandbox.tsx +9 -72
- package/client/sandboxTransport.ts +0 -49
- package/dist/index.js +8 -8
- package/lib/fetch-ws.d.ts +3 -7
- package/lib/fetch-ws.d.ts.map +1 -1
- package/lib/fetch-ws.js +6 -9
- package/lib/fetch-ws.js.map +1 -1
- package/lib/index.d.ts +3 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -3
- package/lib/index.js.map +1 -1
- package/lib/sandbox-ws.d.ts +3 -18
- package/lib/sandbox-ws.d.ts.map +1 -1
- package/lib/sandbox-ws.js +2 -81
- package/lib/sandbox-ws.js.map +1 -1
- package/package.json +11 -11
- package/src/fetch-ws.ts +5 -14
- package/src/index.ts +2 -8
- package/src/sandbox-ws.ts +3 -103
- package/lib/fetch-sse.d.ts +0 -11
- package/lib/fetch-sse.d.ts.map +0 -1
- package/lib/fetch-sse.js +0 -76
- package/lib/fetch-sse.js.map +0 -1
- package/lib/sandbox-sse-hub.d.ts +0 -10
- package/lib/sandbox-sse-hub.d.ts.map +0 -1
- package/lib/sandbox-sse-hub.js +0 -101
- package/lib/sandbox-sse-hub.js.map +0 -1
- package/src/fetch-sse.ts +0 -87
- package/src/sandbox-sse-hub.ts +0 -118
package/lib/sandbox-ws.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sandbox 传输 — Node WebSocket;Edge HTTP+SSE(见 sandbox-sse-hub / fetch-sse)。
|
|
3
|
-
*/
|
|
1
|
+
/** Sandbox 传输 — Node WebSocket。 */
|
|
4
2
|
import { EventEmitter } from "node:events";
|
|
5
3
|
import { Adapter, Bot, Message, type MessageElement, type MessageType, type Plugin, type SendOptions } from "zhin.js";
|
|
6
4
|
export interface SandboxWsConfig {
|
|
@@ -13,9 +11,6 @@ export interface SandboxWsConfig {
|
|
|
13
11
|
}
|
|
14
12
|
/** 无 WS 时的占位 socket(仅用于 bot:list,不可收发) */
|
|
15
13
|
export declare function createOfflineSandboxWs(): SandboxWsSocket;
|
|
16
|
-
export declare function createSandboxSseTransport(sessionId: string, onClose?: () => void): SandboxWsSocket & {
|
|
17
|
-
sessionId: string;
|
|
18
|
-
};
|
|
19
14
|
/** 兼容 `ws` 包与标准 WebSocket */
|
|
20
15
|
export type SandboxWsSocket = {
|
|
21
16
|
send(data: string): void;
|
|
@@ -28,16 +23,14 @@ export type SandboxWsSocket = {
|
|
|
28
23
|
export type SandboxBotDefaults = {
|
|
29
24
|
name: string;
|
|
30
25
|
owner: string;
|
|
31
|
-
/** true:每连接随机 bot 名(Node 本地默认);false:固定 name
|
|
26
|
+
/** true:每连接随机 bot 名(Node 本地默认);false:固定 name */
|
|
32
27
|
randomNamePerConnection?: boolean;
|
|
33
28
|
};
|
|
34
|
-
export type SandboxTransport = "websocket" | "http-sse";
|
|
35
29
|
export type ResolvedSandboxBot = {
|
|
36
30
|
context: "sandbox";
|
|
37
31
|
name: string;
|
|
38
32
|
owner: string;
|
|
39
33
|
randomNamePerConnection: boolean;
|
|
40
|
-
transport: SandboxTransport;
|
|
41
34
|
};
|
|
42
35
|
export declare function resolveSandboxBot(appConfig: Record<string, unknown>): ResolvedSandboxBot;
|
|
43
36
|
export declare function bindSandboxWsSocket(ws: SandboxWsSocket, handlers: {
|
|
@@ -71,21 +64,13 @@ export declare class SandboxWsBot extends EventEmitter implements Bot<SandboxWsC
|
|
|
71
64
|
$recallMessage(_id: string): Promise<void>;
|
|
72
65
|
}
|
|
73
66
|
export declare class SandboxWsHostAdapter extends Adapter<SandboxWsBot> {
|
|
74
|
-
#private;
|
|
75
67
|
protected readonly defaults: ResolvedSandboxBot;
|
|
76
68
|
constructor(plugin: Plugin, defaults: ResolvedSandboxBot);
|
|
77
|
-
get transport(): SandboxTransport;
|
|
78
|
-
hasSseSession(sessionId: string): boolean;
|
|
79
|
-
getBotBySseSession(sessionId: string): SandboxWsBot | undefined;
|
|
80
69
|
createBot(config: SandboxWsConfig): SandboxWsBot;
|
|
81
70
|
/** `zhin.config.yml` 中 `context: sandbox` + 固定 `name` 时,启动即出现在 bot:list(离线) */
|
|
82
71
|
registerConfiguredPlaceholder(): void;
|
|
83
|
-
/**
|
|
72
|
+
/** 外部 upgrade:注入已建立的 WebSocket */
|
|
84
73
|
acceptWebSocket(ws: SandboxWsSocket, overrides?: Partial<Pick<SandboxWsConfig, "name" | "owner">>): SandboxWsBot;
|
|
85
|
-
/** Edge SSE:建立会话并绑定固定 bot */
|
|
86
|
-
acceptSseSession(sessionId: string, overrides?: Partial<Pick<SandboxWsConfig, "name" | "owner">>): SandboxWsBot;
|
|
87
|
-
/** POST /sandbox/message — 与 WebSocket 帧同格式的 JSON 字符串 */
|
|
88
|
-
ingestSseClientMessage(sessionId: string, raw: string): void;
|
|
89
74
|
}
|
|
90
75
|
export {};
|
|
91
76
|
//# sourceMappingURL=sandbox-ws.d.ts.map
|
package/lib/sandbox-ws.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-ws.d.ts","sourceRoot":"","sources":["../src/sandbox-ws.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sandbox-ws.d.ts","sourceRoot":"","sources":["../src/sandbox-ws.ts"],"names":[],"mappings":"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"}
|
package/lib/sandbox-ws.js
CHANGED
|
@@ -1,25 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sandbox 传输 — Node WebSocket;Edge HTTP+SSE(见 sandbox-sse-hub / fetch-sse)。
|
|
3
|
-
*/
|
|
1
|
+
/** Sandbox 传输 — Node WebSocket。 */
|
|
4
2
|
import { EventEmitter } from "node:events";
|
|
5
|
-
import { broadcastSandboxSse, closeSandboxSseSession } from "./sandbox-sse-hub.js";
|
|
6
3
|
import { Adapter, Message, segment, } from "zhin.js";
|
|
7
4
|
/** 无 WS 时的占位 socket(仅用于 bot:list,不可收发) */
|
|
8
5
|
export function createOfflineSandboxWs() {
|
|
9
6
|
return { send: () => { }, close: () => { } };
|
|
10
7
|
}
|
|
11
|
-
export function createSandboxSseTransport(sessionId, onClose) {
|
|
12
|
-
return {
|
|
13
|
-
sessionId,
|
|
14
|
-
send(data) {
|
|
15
|
-
broadcastSandboxSse(sessionId, data);
|
|
16
|
-
},
|
|
17
|
-
close() {
|
|
18
|
-
closeSandboxSseSession(sessionId);
|
|
19
|
-
onClose?.();
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
8
|
function envVar(key) {
|
|
24
9
|
const g = globalThis;
|
|
25
10
|
return g.Deno?.env.get(key) ?? g.process?.env[key];
|
|
@@ -34,16 +19,11 @@ export function resolveSandboxBot(appConfig) {
|
|
|
34
19
|
const owner = (typeof entry?.owner === "string" && entry.owner) ||
|
|
35
20
|
envVar("SANDBOX_BOT_OWNER") ||
|
|
36
21
|
"sandbox-user";
|
|
37
|
-
const transportRaw = (typeof entry?.transport === "string" && entry.transport) ||
|
|
38
|
-
envVar("SANDBOX_TRANSPORT") ||
|
|
39
|
-
"websocket";
|
|
40
|
-
const transport = transportRaw === "http-sse" || transportRaw === "sse" ? "http-sse" : "websocket";
|
|
41
22
|
return {
|
|
42
23
|
context: "sandbox",
|
|
43
24
|
name,
|
|
44
25
|
owner,
|
|
45
26
|
randomNamePerConnection: !fixedName,
|
|
46
|
-
transport,
|
|
47
27
|
};
|
|
48
28
|
}
|
|
49
29
|
/** 标准 WebSocket 在 upgrade 后可能尚未 OPEN;Node `ws` 在 connection 回调里通常已可 send */
|
|
@@ -214,21 +194,10 @@ export class SandboxWsBot extends EventEmitter {
|
|
|
214
194
|
}
|
|
215
195
|
export class SandboxWsHostAdapter extends Adapter {
|
|
216
196
|
defaults;
|
|
217
|
-
#sseSessions = new Map();
|
|
218
197
|
constructor(plugin, defaults) {
|
|
219
198
|
super(plugin, "sandbox", []);
|
|
220
199
|
this.defaults = defaults;
|
|
221
200
|
}
|
|
222
|
-
get transport() {
|
|
223
|
-
return this.defaults.transport;
|
|
224
|
-
}
|
|
225
|
-
hasSseSession(sessionId) {
|
|
226
|
-
return this.#sseSessions.has(sessionId);
|
|
227
|
-
}
|
|
228
|
-
getBotBySseSession(sessionId) {
|
|
229
|
-
const name = this.#sseSessions.get(sessionId);
|
|
230
|
-
return name ? this.bots.get(name) : undefined;
|
|
231
|
-
}
|
|
232
201
|
createBot(config) {
|
|
233
202
|
const bot = new SandboxWsBot(this, config);
|
|
234
203
|
this.bots.set(bot.$id, bot);
|
|
@@ -248,7 +217,7 @@ export class SandboxWsHostAdapter extends Adapter {
|
|
|
248
217
|
offline: true,
|
|
249
218
|
});
|
|
250
219
|
}
|
|
251
|
-
/**
|
|
220
|
+
/** 外部 upgrade:注入已建立的 WebSocket */
|
|
252
221
|
acceptWebSocket(ws, overrides) {
|
|
253
222
|
const name = overrides?.name ??
|
|
254
223
|
(this.defaults.randomNamePerConnection
|
|
@@ -285,53 +254,5 @@ export class SandboxWsHostAdapter extends Adapter {
|
|
|
285
254
|
}
|
|
286
255
|
return bot;
|
|
287
256
|
}
|
|
288
|
-
/** Edge SSE:建立会话并绑定固定 bot */
|
|
289
|
-
acceptSseSession(sessionId, overrides) {
|
|
290
|
-
const name = overrides?.name ?? this.defaults.name;
|
|
291
|
-
const owner = overrides?.owner ?? this.defaults.owner;
|
|
292
|
-
const existing = this.bots.get(name);
|
|
293
|
-
if (existing) {
|
|
294
|
-
void existing.$disconnect();
|
|
295
|
-
this.bots.delete(name);
|
|
296
|
-
}
|
|
297
|
-
const ws = createSandboxSseTransport(sessionId, () => {
|
|
298
|
-
this.#sseSessions.delete(sessionId);
|
|
299
|
-
this.bots.delete(name);
|
|
300
|
-
});
|
|
301
|
-
const bot = this.createBot({ context: "sandbox", ws, name, owner, offline: false });
|
|
302
|
-
this.#sseSessions.set(sessionId, name);
|
|
303
|
-
void bot.$connect();
|
|
304
|
-
if (!this.defaults.randomNamePerConnection) {
|
|
305
|
-
const readyPayload = JSON.stringify({
|
|
306
|
-
type: "ready",
|
|
307
|
-
id: owner,
|
|
308
|
-
bot: name,
|
|
309
|
-
content: [
|
|
310
|
-
{
|
|
311
|
-
type: "text",
|
|
312
|
-
data: {
|
|
313
|
-
text: [
|
|
314
|
-
`已连接 Sandbox「${name}」`,
|
|
315
|
-
"传输: HTTP + SSE(Edge)",
|
|
316
|
-
"命令: help · ping · zt · status",
|
|
317
|
-
].join("\n"),
|
|
318
|
-
},
|
|
319
|
-
},
|
|
320
|
-
],
|
|
321
|
-
timestamp: Date.now(),
|
|
322
|
-
});
|
|
323
|
-
ws.send(readyPayload);
|
|
324
|
-
}
|
|
325
|
-
return bot;
|
|
326
|
-
}
|
|
327
|
-
/** POST /sandbox/message — 与 WebSocket 帧同格式的 JSON 字符串 */
|
|
328
|
-
ingestSseClientMessage(sessionId, raw) {
|
|
329
|
-
const bot = this.getBotBySseSession(sessionId);
|
|
330
|
-
if (!bot || !bot.$connected) {
|
|
331
|
-
throw new Error(`sandbox session not connected: ${sessionId}`);
|
|
332
|
-
}
|
|
333
|
-
const { type, id, content, timestamp } = parseSandboxWsPayload(raw);
|
|
334
|
-
this.emit("message.receive", bot.$formatMessage({ content, type, id, ts: timestamp }));
|
|
335
|
-
}
|
|
336
257
|
}
|
|
337
258
|
//# sourceMappingURL=sandbox-ws.js.map
|
package/lib/sandbox-ws.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-ws.js","sourceRoot":"","sources":["../src/sandbox-ws.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sandbox-ws.js","sourceRoot":"","sources":["../src/sandbox-ws.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhin.js/adapter-sandbox",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.5",
|
|
4
4
|
"description": "Zhin.js adapter for local testing and development",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -46,19 +46,19 @@
|
|
|
46
46
|
"@types/react": "^19.2.15",
|
|
47
47
|
"@types/react-dom": "^19.2.3",
|
|
48
48
|
"radix-ui": "^1.4.3",
|
|
49
|
-
"lucide-react": "^1.
|
|
49
|
+
"lucide-react": "^1.17.0",
|
|
50
50
|
"typescript": "^6.0.3",
|
|
51
|
-
"@zhin.js/http-host": "0.1.
|
|
52
|
-
"@zhin.js/cli": "1.0.
|
|
53
|
-
"zhin.js": "1.0.
|
|
51
|
+
"@zhin.js/http-host": "0.1.4",
|
|
52
|
+
"@zhin.js/cli": "1.0.82",
|
|
53
|
+
"zhin.js": "1.0.86"
|
|
54
54
|
},
|
|
55
55
|
"peerDependencies": {
|
|
56
|
-
"@zhin.js/core": "1.1.
|
|
57
|
-
"@zhin.js/client": "1.1.
|
|
58
|
-
"@zhin.js/http": "1.
|
|
59
|
-
"@zhin.js/http
|
|
60
|
-
"
|
|
61
|
-
"zhin.js": "
|
|
56
|
+
"@zhin.js/core": "1.1.28",
|
|
57
|
+
"@zhin.js/client": "1.1.4",
|
|
58
|
+
"@zhin.js/http-host": "0.1.4",
|
|
59
|
+
"@zhin.js/http": "1.0.79",
|
|
60
|
+
"zhin.js": "1.0.86",
|
|
61
|
+
"@zhin.js/console": "3.0.5"
|
|
62
62
|
},
|
|
63
63
|
"peerDependenciesMeta": {
|
|
64
64
|
"@zhin.js/http": {
|
package/src/fetch-ws.ts
CHANGED
|
@@ -1,23 +1,14 @@
|
|
|
1
|
-
import { registerWebSocketRoute, type RouteTable } from "@zhin.js/http-host
|
|
1
|
+
import { registerWebSocketRoute, type RouteTable } from "@zhin.js/http-host";
|
|
2
2
|
import type { SandboxWsHostAdapter, SandboxWsSocket } from "./sandbox-ws.js";
|
|
3
3
|
|
|
4
|
-
export type RegisterSandboxWsOptions = {
|
|
5
|
-
/** 兼容旧路径,默认 `/ws` */
|
|
6
|
-
legacyPaths?: string[];
|
|
7
|
-
};
|
|
8
|
-
|
|
9
4
|
/**
|
|
10
|
-
*
|
|
5
|
+
* 在 {@link RouteTable} 上注册 `/sandbox` WebSocket。
|
|
11
6
|
*/
|
|
12
7
|
export function registerSandboxWebSocketRoutes(
|
|
13
8
|
table: RouteTable,
|
|
14
9
|
getAdapter: () => SandboxWsHostAdapter,
|
|
15
|
-
options: RegisterSandboxWsOptions = {},
|
|
16
10
|
): void {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
getAdapter().acceptWebSocket(ws as SandboxWsSocket);
|
|
21
|
-
});
|
|
22
|
-
}
|
|
11
|
+
registerWebSocketRoute(table, "/sandbox", (ws: unknown) => {
|
|
12
|
+
getAdapter().acceptWebSocket(ws as SandboxWsSocket);
|
|
13
|
+
});
|
|
23
14
|
}
|
package/src/index.ts
CHANGED
|
@@ -21,7 +21,7 @@ declare module "zhin.js" {
|
|
|
21
21
|
const plugin = usePlugin();
|
|
22
22
|
const logger = plugin.logger;
|
|
23
23
|
|
|
24
|
-
/** Node:`Router.ws
|
|
24
|
+
/** Node:`Router.ws` */
|
|
25
25
|
export class SandboxAdapter extends SandboxWsHostAdapter {
|
|
26
26
|
wss?: { on: (ev: string, fn: (...args: unknown[]) => void) => void; close: () => void };
|
|
27
27
|
|
|
@@ -66,7 +66,7 @@ const { provide } = usePlugin();
|
|
|
66
66
|
|
|
67
67
|
provide({
|
|
68
68
|
name: "sandbox",
|
|
69
|
-
description: "Sandbox Adapter — Node Router.ws
|
|
69
|
+
description: "Sandbox Adapter — Node Router.ws",
|
|
70
70
|
mounted: async (p: Plugin) => {
|
|
71
71
|
const adapter = new SandboxAdapter(p);
|
|
72
72
|
await adapter.start();
|
|
@@ -96,12 +96,7 @@ plugin.useContext("web", (pageManager) => {
|
|
|
96
96
|
|
|
97
97
|
export {
|
|
98
98
|
registerSandboxWebSocketRoutes,
|
|
99
|
-
type RegisterSandboxWsOptions,
|
|
100
99
|
} from "./fetch-ws.js";
|
|
101
|
-
export {
|
|
102
|
-
registerSandboxSseRoutes,
|
|
103
|
-
type RegisterSandboxSseOptions,
|
|
104
|
-
} from "./fetch-sse.js";
|
|
105
100
|
export {
|
|
106
101
|
SandboxWsBot,
|
|
107
102
|
SandboxWsHostAdapter,
|
|
@@ -109,7 +104,6 @@ export {
|
|
|
109
104
|
bindSandboxWsSocket,
|
|
110
105
|
parseSandboxWsPayload,
|
|
111
106
|
type ResolvedSandboxBot,
|
|
112
|
-
type SandboxTransport,
|
|
113
107
|
type SandboxWsConfig,
|
|
114
108
|
type SandboxWsSocket,
|
|
115
109
|
} from "./sandbox-ws.js";
|
package/src/sandbox-ws.ts
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sandbox 传输 — Node WebSocket;Edge HTTP+SSE(见 sandbox-sse-hub / fetch-sse)。
|
|
3
|
-
*/
|
|
1
|
+
/** Sandbox 传输 — Node WebSocket。 */
|
|
4
2
|
import { EventEmitter } from "node:events";
|
|
5
|
-
import { broadcastSandboxSse, closeSandboxSseSession } from "./sandbox-sse-hub.js";
|
|
6
3
|
import {
|
|
7
4
|
Adapter,
|
|
8
5
|
Bot,
|
|
@@ -29,22 +26,6 @@ export function createOfflineSandboxWs(): SandboxWsSocket {
|
|
|
29
26
|
return { send: () => {}, close: () => {} };
|
|
30
27
|
}
|
|
31
28
|
|
|
32
|
-
export function createSandboxSseTransport(
|
|
33
|
-
sessionId: string,
|
|
34
|
-
onClose?: () => void,
|
|
35
|
-
): SandboxWsSocket & { sessionId: string } {
|
|
36
|
-
return {
|
|
37
|
-
sessionId,
|
|
38
|
-
send(data: string) {
|
|
39
|
-
broadcastSandboxSse(sessionId, data);
|
|
40
|
-
},
|
|
41
|
-
close() {
|
|
42
|
-
closeSandboxSseSession(sessionId);
|
|
43
|
-
onClose?.();
|
|
44
|
-
},
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
|
|
48
29
|
/** 兼容 `ws` 包与标准 WebSocket */
|
|
49
30
|
export type SandboxWsSocket = {
|
|
50
31
|
send(data: string): void;
|
|
@@ -67,18 +48,15 @@ export type SandboxWsSocket = {
|
|
|
67
48
|
export type SandboxBotDefaults = {
|
|
68
49
|
name: string;
|
|
69
50
|
owner: string;
|
|
70
|
-
/** true:每连接随机 bot 名(Node 本地默认);false:固定 name
|
|
51
|
+
/** true:每连接随机 bot 名(Node 本地默认);false:固定 name */
|
|
71
52
|
randomNamePerConnection?: boolean;
|
|
72
53
|
};
|
|
73
54
|
|
|
74
|
-
export type SandboxTransport = "websocket" | "http-sse";
|
|
75
|
-
|
|
76
55
|
export type ResolvedSandboxBot = {
|
|
77
56
|
context: "sandbox";
|
|
78
57
|
name: string;
|
|
79
58
|
owner: string;
|
|
80
59
|
randomNamePerConnection: boolean;
|
|
81
|
-
transport: SandboxTransport;
|
|
82
60
|
};
|
|
83
61
|
|
|
84
62
|
function envVar(key: string): string | undefined {
|
|
@@ -103,18 +81,11 @@ export function resolveSandboxBot(
|
|
|
103
81
|
(typeof entry?.owner === "string" && entry.owner) ||
|
|
104
82
|
envVar("SANDBOX_BOT_OWNER") ||
|
|
105
83
|
"sandbox-user";
|
|
106
|
-
const transportRaw =
|
|
107
|
-
(typeof entry?.transport === "string" && entry.transport) ||
|
|
108
|
-
envVar("SANDBOX_TRANSPORT") ||
|
|
109
|
-
"websocket";
|
|
110
|
-
const transport: SandboxTransport =
|
|
111
|
-
transportRaw === "http-sse" || transportRaw === "sse" ? "http-sse" : "websocket";
|
|
112
84
|
return {
|
|
113
85
|
context: "sandbox",
|
|
114
86
|
name,
|
|
115
87
|
owner,
|
|
116
88
|
randomNamePerConnection: !fixedName,
|
|
117
|
-
transport,
|
|
118
89
|
};
|
|
119
90
|
}
|
|
120
91
|
|
|
@@ -321,8 +292,6 @@ export class SandboxWsBot extends EventEmitter implements Bot<SandboxWsConfig, B
|
|
|
321
292
|
}
|
|
322
293
|
|
|
323
294
|
export class SandboxWsHostAdapter extends Adapter<SandboxWsBot> {
|
|
324
|
-
readonly #sseSessions = new Map<string, string>();
|
|
325
|
-
|
|
326
295
|
constructor(
|
|
327
296
|
plugin: Plugin,
|
|
328
297
|
protected readonly defaults: ResolvedSandboxBot,
|
|
@@ -330,19 +299,6 @@ export class SandboxWsHostAdapter extends Adapter<SandboxWsBot> {
|
|
|
330
299
|
super(plugin, "sandbox" as keyof Plugin.Contexts, []);
|
|
331
300
|
}
|
|
332
301
|
|
|
333
|
-
get transport(): SandboxTransport {
|
|
334
|
-
return this.defaults.transport;
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
hasSseSession(sessionId: string): boolean {
|
|
338
|
-
return this.#sseSessions.has(sessionId);
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
getBotBySseSession(sessionId: string): SandboxWsBot | undefined {
|
|
342
|
-
const name = this.#sseSessions.get(sessionId);
|
|
343
|
-
return name ? this.bots.get(name) : undefined;
|
|
344
|
-
}
|
|
345
|
-
|
|
346
302
|
createBot(config: SandboxWsConfig): SandboxWsBot {
|
|
347
303
|
const bot = new SandboxWsBot(this, config);
|
|
348
304
|
this.bots.set(bot.$id, bot);
|
|
@@ -362,7 +318,7 @@ export class SandboxWsHostAdapter extends Adapter<SandboxWsBot> {
|
|
|
362
318
|
});
|
|
363
319
|
}
|
|
364
320
|
|
|
365
|
-
/**
|
|
321
|
+
/** 外部 upgrade:注入已建立的 WebSocket */
|
|
366
322
|
acceptWebSocket(
|
|
367
323
|
ws: SandboxWsSocket,
|
|
368
324
|
overrides?: Partial<Pick<SandboxWsConfig, "name" | "owner">>,
|
|
@@ -402,61 +358,5 @@ export class SandboxWsHostAdapter extends Adapter<SandboxWsBot> {
|
|
|
402
358
|
}
|
|
403
359
|
return bot;
|
|
404
360
|
}
|
|
405
|
-
|
|
406
|
-
/** Edge SSE:建立会话并绑定固定 bot */
|
|
407
|
-
acceptSseSession(
|
|
408
|
-
sessionId: string,
|
|
409
|
-
overrides?: Partial<Pick<SandboxWsConfig, "name" | "owner">>,
|
|
410
|
-
): SandboxWsBot {
|
|
411
|
-
const name = overrides?.name ?? this.defaults.name;
|
|
412
|
-
const owner = overrides?.owner ?? this.defaults.owner;
|
|
413
|
-
const existing = this.bots.get(name);
|
|
414
|
-
if (existing) {
|
|
415
|
-
void existing.$disconnect();
|
|
416
|
-
this.bots.delete(name);
|
|
417
|
-
}
|
|
418
|
-
const ws = createSandboxSseTransport(sessionId, () => {
|
|
419
|
-
this.#sseSessions.delete(sessionId);
|
|
420
|
-
this.bots.delete(name);
|
|
421
|
-
});
|
|
422
|
-
const bot = this.createBot({ context: "sandbox", ws, name, owner, offline: false });
|
|
423
|
-
this.#sseSessions.set(sessionId, name);
|
|
424
|
-
void bot.$connect();
|
|
425
|
-
if (!this.defaults.randomNamePerConnection) {
|
|
426
|
-
const readyPayload = JSON.stringify({
|
|
427
|
-
type: "ready",
|
|
428
|
-
id: owner,
|
|
429
|
-
bot: name,
|
|
430
|
-
content: [
|
|
431
|
-
{
|
|
432
|
-
type: "text",
|
|
433
|
-
data: {
|
|
434
|
-
text: [
|
|
435
|
-
`已连接 Sandbox「${name}」`,
|
|
436
|
-
"传输: HTTP + SSE(Edge)",
|
|
437
|
-
"命令: help · ping · zt · status",
|
|
438
|
-
].join("\n"),
|
|
439
|
-
},
|
|
440
|
-
},
|
|
441
|
-
],
|
|
442
|
-
timestamp: Date.now(),
|
|
443
|
-
});
|
|
444
|
-
ws.send(readyPayload);
|
|
445
|
-
}
|
|
446
|
-
return bot;
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
/** POST /sandbox/message — 与 WebSocket 帧同格式的 JSON 字符串 */
|
|
450
|
-
ingestSseClientMessage(sessionId: string, raw: string): void {
|
|
451
|
-
const bot = this.getBotBySseSession(sessionId);
|
|
452
|
-
if (!bot || !bot.$connected) {
|
|
453
|
-
throw new Error(`sandbox session not connected: ${sessionId}`);
|
|
454
|
-
}
|
|
455
|
-
const { type, id, content, timestamp } = parseSandboxWsPayload(raw);
|
|
456
|
-
this.emit(
|
|
457
|
-
"message.receive",
|
|
458
|
-
bot.$formatMessage({ content, type, id, ts: timestamp }),
|
|
459
|
-
);
|
|
460
|
-
}
|
|
461
361
|
}
|
|
462
362
|
|
package/lib/fetch-sse.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { type RouteTable } from "@zhin.js/http-host/edge";
|
|
2
|
-
import type { SandboxWsHostAdapter } from "./sandbox-ws.js";
|
|
3
|
-
export type RegisterSandboxSseOptions = {
|
|
4
|
-
eventsPath?: string;
|
|
5
|
-
messagePath?: string;
|
|
6
|
-
};
|
|
7
|
-
/**
|
|
8
|
-
* Edge / Vercel 等:Sandbox 使用 HTTP POST 上行 + SSE 下行(无 WebSocket upgrade)。
|
|
9
|
-
*/
|
|
10
|
-
export declare function registerSandboxSseRoutes(table: RouteTable, getAdapter: () => SandboxWsHostAdapter, options?: RegisterSandboxSseOptions): void;
|
|
11
|
-
//# sourceMappingURL=fetch-sse.d.ts.map
|
package/lib/fetch-sse.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-sse.d.ts","sourceRoot":"","sources":["../src/fetch-sse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAG5D,MAAM,MAAM,yBAAyB,GAAG;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAcF;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,MAAM,oBAAoB,EACtC,OAAO,GAAE,yBAA8B,GACtC,IAAI,CAyDN"}
|
package/lib/fetch-sse.js
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { registerFetchRoute } from "@zhin.js/http-host/edge";
|
|
2
|
-
import { subscribeSandboxSse } from "./sandbox-sse-hub.js";
|
|
3
|
-
function resolveSessionId(ctx) {
|
|
4
|
-
const q = ctx.query.session?.trim();
|
|
5
|
-
if (q)
|
|
6
|
-
return q;
|
|
7
|
-
const h = ctx.get("x-sandbox-session")?.trim();
|
|
8
|
-
if (h)
|
|
9
|
-
return h;
|
|
10
|
-
const body = ctx.request.body;
|
|
11
|
-
if (body && typeof body.session === "string" && body.session.trim()) {
|
|
12
|
-
return body.session.trim();
|
|
13
|
-
}
|
|
14
|
-
return undefined;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Edge / Vercel 等:Sandbox 使用 HTTP POST 上行 + SSE 下行(无 WebSocket upgrade)。
|
|
18
|
-
*/
|
|
19
|
-
export function registerSandboxSseRoutes(table, getAdapter, options = {}) {
|
|
20
|
-
const eventsPath = options.eventsPath ?? "/sandbox/events";
|
|
21
|
-
const messagePath = options.messagePath ?? "/sandbox/message";
|
|
22
|
-
registerFetchRoute(table, "GET", eventsPath, (ctx) => {
|
|
23
|
-
const sessionId = resolveSessionId(ctx);
|
|
24
|
-
if (!sessionId) {
|
|
25
|
-
ctx.status = 400;
|
|
26
|
-
ctx.body = { success: false, error: "Missing session (query ?session= or X-Sandbox-Session)" };
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
const adapter = getAdapter();
|
|
30
|
-
if (!adapter.hasSseSession(sessionId)) {
|
|
31
|
-
adapter.acceptSseSession(sessionId);
|
|
32
|
-
}
|
|
33
|
-
const lastEventId = ctx.query["last-event-id"] ?? ctx.query.lastEventId;
|
|
34
|
-
const stream = subscribeSandboxSse(sessionId, lastEventId);
|
|
35
|
-
ctx.status = 200;
|
|
36
|
-
ctx.set("Content-Type", "text/event-stream; charset=utf-8");
|
|
37
|
-
ctx.set("Cache-Control", "no-cache, no-transform");
|
|
38
|
-
ctx.set("Connection", "keep-alive");
|
|
39
|
-
ctx.set("X-Accel-Buffering", "no");
|
|
40
|
-
ctx.body = stream;
|
|
41
|
-
});
|
|
42
|
-
registerFetchRoute(table, "POST", messagePath, async (ctx) => {
|
|
43
|
-
const sessionId = resolveSessionId(ctx);
|
|
44
|
-
if (!sessionId) {
|
|
45
|
-
ctx.status = 400;
|
|
46
|
-
ctx.body = { success: false, error: "Missing session (X-Sandbox-Session or body.session)" };
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
const adapter = getAdapter();
|
|
50
|
-
if (!adapter.hasSseSession(sessionId)) {
|
|
51
|
-
ctx.status = 404;
|
|
52
|
-
ctx.body = { success: false, error: "No sandbox session; open GET /sandbox/events first" };
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
const body = ctx.request.body;
|
|
56
|
-
const raw = typeof body === "string"
|
|
57
|
-
? body
|
|
58
|
-
: body === undefined || body === null
|
|
59
|
-
? ""
|
|
60
|
-
: JSON.stringify(body);
|
|
61
|
-
if (!raw) {
|
|
62
|
-
ctx.status = 400;
|
|
63
|
-
ctx.body = { success: false, error: "Empty message body" };
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
try {
|
|
67
|
-
adapter.ingestSseClientMessage(sessionId, raw);
|
|
68
|
-
ctx.body = { success: true };
|
|
69
|
-
}
|
|
70
|
-
catch (err) {
|
|
71
|
-
ctx.status = 500;
|
|
72
|
-
ctx.body = { success: false, error: err.message };
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=fetch-sse.js.map
|
package/lib/fetch-sse.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-sse.js","sourceRoot":"","sources":["../src/fetch-sse.ts"],"names":[],"mappings":"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"}
|
package/lib/sandbox-sse-hub.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 按 session 隔离的 Sandbox SSE 推送(Edge / Vercel 等无 WebSocket 入站时使用)。
|
|
3
|
-
* SSE `data` 字段为与 WebSocket 相同的 JSON 字符串。
|
|
4
|
-
*/
|
|
5
|
-
export declare function broadcastSandboxSse(sessionId: string, jsonPayload: string): void;
|
|
6
|
-
export declare function subscribeSandboxSse(sessionId: string, lastEventId?: string): ReadableStream<Uint8Array>;
|
|
7
|
-
export declare function closeSandboxSseSession(sessionId: string): void;
|
|
8
|
-
/** @internal */
|
|
9
|
-
export declare function resetSandboxSseHubForTests(): void;
|
|
10
|
-
//# sourceMappingURL=sandbox-sse-hub.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-sse-hub.d.ts","sourceRoot":"","sources":["../src/sandbox-sse-hub.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqCH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAYhF;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,cAAc,CAAC,UAAU,CAAC,CA8C5B;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAM9D;AAED,gBAAgB;AAChB,wBAAgB,0BAA0B,IAAI,IAAI,CAGjD"}
|