@alexkroman1/aai 0.8.3 → 0.8.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/dist/cli/tsconfig.tsbuildinfo +1 -0
- package/dist/cli.js +1215 -1706
- package/dist/sdk/_mock_ws.js +2 -2
- package/dist/sdk/_mock_ws.js.map +1 -1
- package/dist/sdk/_render_check.d.ts.map +1 -1
- package/dist/sdk/_render_check.js +29 -2
- package/dist/sdk/_render_check.js.map +1 -1
- package/dist/sdk/_utils.d.ts +4 -0
- package/dist/sdk/_utils.d.ts.map +1 -0
- package/dist/sdk/_utils.js +7 -0
- package/dist/sdk/_utils.js.map +1 -0
- package/dist/sdk/builtin_tools.d.ts +35 -11
- package/dist/sdk/builtin_tools.d.ts.map +1 -1
- package/dist/sdk/builtin_tools.js +118 -76
- package/dist/sdk/builtin_tools.js.map +1 -1
- package/dist/sdk/capnweb.d.ts +76 -47
- package/dist/sdk/capnweb.d.ts.map +1 -1
- package/dist/sdk/capnweb.js +99 -242
- package/dist/sdk/capnweb.js.map +1 -1
- package/dist/sdk/direct_executor.d.ts.map +1 -1
- package/dist/sdk/direct_executor.js +0 -2
- package/dist/sdk/direct_executor.js.map +1 -1
- package/dist/sdk/host.d.ts +59 -0
- package/dist/sdk/host.d.ts.map +1 -0
- package/dist/sdk/host.js +131 -0
- package/dist/sdk/host.js.map +1 -0
- package/dist/sdk/mod.d.ts +2 -4
- package/dist/sdk/mod.d.ts.map +1 -1
- package/dist/sdk/mod.js +2 -3
- package/dist/sdk/mod.js.map +1 -1
- package/dist/sdk/protocol.d.ts +33 -135
- package/dist/sdk/protocol.d.ts.map +1 -1
- package/dist/sdk/protocol.js +49 -51
- package/dist/sdk/protocol.js.map +1 -1
- package/dist/sdk/runtime.d.ts +0 -1
- package/dist/sdk/runtime.d.ts.map +1 -1
- package/dist/sdk/runtime.js +5 -24
- package/dist/sdk/runtime.js.map +1 -1
- package/dist/sdk/s2s.d.ts +14 -3
- package/dist/sdk/s2s.d.ts.map +1 -1
- package/dist/sdk/s2s.js +72 -113
- package/dist/sdk/s2s.js.map +1 -1
- package/dist/sdk/server.d.ts +1 -1
- package/dist/sdk/server.d.ts.map +1 -1
- package/dist/sdk/server.js +26 -10
- package/dist/sdk/server.js.map +1 -1
- package/dist/sdk/session.d.ts +5 -1
- package/dist/sdk/session.d.ts.map +1 -1
- package/dist/sdk/session.js +131 -137
- package/dist/sdk/session.js.map +1 -1
- package/dist/sdk/tsconfig.tsbuildinfo +1 -0
- package/dist/sdk/types.d.ts +30 -3
- package/dist/sdk/types.d.ts.map +1 -1
- package/dist/sdk/types.js +37 -0
- package/dist/sdk/types.js.map +1 -1
- package/dist/sdk/winterc_server.d.ts +0 -1
- package/dist/sdk/winterc_server.d.ts.map +1 -1
- package/dist/sdk/winterc_server.js +0 -1
- package/dist/sdk/winterc_server.js.map +1 -1
- package/dist/sdk/worker_entry.d.ts +3 -11
- package/dist/sdk/worker_entry.d.ts.map +1 -1
- package/dist/sdk/worker_entry.js +8 -18
- package/dist/sdk/worker_entry.js.map +1 -1
- package/dist/sdk/worker_shim.d.ts +5 -6
- package/dist/sdk/worker_shim.d.ts.map +1 -1
- package/dist/sdk/worker_shim.js +93 -136
- package/dist/sdk/worker_shim.js.map +1 -1
- package/dist/sdk/ws_handler.d.ts +1 -3
- package/dist/sdk/ws_handler.d.ts.map +1 -1
- package/dist/sdk/ws_handler.js +14 -25
- package/dist/sdk/ws_handler.js.map +1 -1
- package/dist/ui/_cn.d.ts +5 -0
- package/dist/ui/_cn.d.ts.map +1 -0
- package/dist/ui/_cn.js +22 -0
- package/dist/ui/_cn.js.map +1 -0
- package/dist/ui/_components/app.d.ts +3 -1
- package/dist/ui/_components/app.d.ts.map +1 -1
- package/dist/ui/_components/app.js +2 -2
- package/dist/ui/_components/app.js.map +1 -1
- package/dist/ui/_components/button.d.ts +11 -0
- package/dist/ui/_components/button.d.ts.map +1 -0
- package/dist/ui/_components/button.js +17 -0
- package/dist/ui/_components/button.js.map +1 -0
- package/dist/ui/_components/chat_view.d.ts +3 -1
- package/dist/ui/_components/chat_view.d.ts.map +1 -1
- package/dist/ui/_components/chat_view.js +4 -2
- package/dist/ui/_components/chat_view.js.map +1 -1
- package/dist/ui/_components/controls.d.ts +3 -1
- package/dist/ui/_components/controls.d.ts.map +1 -1
- package/dist/ui/_components/controls.js +4 -5
- package/dist/ui/_components/controls.js.map +1 -1
- package/dist/ui/_components/error_banner.d.ts +2 -1
- package/dist/ui/_components/error_banner.d.ts.map +1 -1
- package/dist/ui/_components/error_banner.js +3 -2
- package/dist/ui/_components/error_banner.js.map +1 -1
- package/dist/ui/_components/message_bubble.d.ts +2 -1
- package/dist/ui/_components/message_bubble.d.ts.map +1 -1
- package/dist/ui/_components/message_bubble.js +5 -3
- package/dist/ui/_components/message_bubble.js.map +1 -1
- package/dist/ui/_components/message_list.d.ts +3 -1
- package/dist/ui/_components/message_list.d.ts.map +1 -1
- package/dist/ui/_components/message_list.js +7 -15
- package/dist/ui/_components/message_list.js.map +1 -1
- package/dist/ui/_components/sidebar_layout.d.ts +2 -1
- package/dist/ui/_components/sidebar_layout.d.ts.map +1 -1
- package/dist/ui/_components/sidebar_layout.js +5 -7
- package/dist/ui/_components/sidebar_layout.js.map +1 -1
- package/dist/ui/_components/start_screen.d.ts +2 -1
- package/dist/ui/_components/start_screen.d.ts.map +1 -1
- package/dist/ui/_components/start_screen.js +5 -2
- package/dist/ui/_components/start_screen.js.map +1 -1
- package/dist/ui/_components/state_indicator.d.ts +2 -1
- package/dist/ui/_components/state_indicator.d.ts.map +1 -1
- package/dist/ui/_components/state_indicator.js +3 -2
- package/dist/ui/_components/state_indicator.js.map +1 -1
- package/dist/ui/_components/thinking_indicator.d.ts +3 -1
- package/dist/ui/_components/thinking_indicator.d.ts.map +1 -1
- package/dist/ui/_components/thinking_indicator.js +4 -2
- package/dist/ui/_components/thinking_indicator.js.map +1 -1
- package/dist/ui/_components/tool_call_block.d.ts +2 -1
- package/dist/ui/_components/tool_call_block.d.ts.map +1 -1
- package/dist/ui/_components/tool_call_block.js +13 -25
- package/dist/ui/_components/tool_call_block.js.map +1 -1
- package/dist/ui/_components/transcript.d.ts +2 -1
- package/dist/ui/_components/transcript.d.ts.map +1 -1
- package/dist/ui/_components/transcript.js +3 -2
- package/dist/ui/_components/transcript.js.map +1 -1
- package/dist/ui/_jsdom_setup.d.ts +1 -0
- package/dist/ui/_jsdom_setup.d.ts.map +1 -0
- package/dist/ui/_jsdom_setup.js +6 -0
- package/dist/ui/_jsdom_setup.js.map +1 -0
- package/dist/ui/audio.d.ts.map +1 -1
- package/dist/ui/audio.js +4 -4
- package/dist/ui/audio.js.map +1 -1
- package/dist/ui/components.d.ts +13 -55
- package/dist/ui/components.d.ts.map +1 -1
- package/dist/ui/components.js +13 -42
- package/dist/ui/components.js.map +1 -1
- package/dist/ui/components_mod.d.ts +14 -3
- package/dist/ui/components_mod.d.ts.map +1 -1
- package/dist/ui/components_mod.js +14 -3
- package/dist/ui/components_mod.js.map +1 -1
- package/dist/ui/mod.d.ts +1 -8
- package/dist/ui/mod.d.ts.map +1 -1
- package/dist/ui/mod.js +1 -5
- package/dist/ui/mod.js.map +1 -1
- package/dist/ui/mount.d.ts +1 -1
- package/dist/ui/mount.d.ts.map +1 -1
- package/dist/ui/mount.js +1 -0
- package/dist/ui/mount.js.map +1 -1
- package/dist/ui/session.d.ts +0 -2
- package/dist/ui/session.d.ts.map +1 -1
- package/dist/ui/session.js +9 -18
- package/dist/ui/session.js.map +1 -1
- package/dist/ui/signals.d.ts +8 -3
- package/dist/ui/signals.d.ts.map +1 -1
- package/dist/ui/signals.js +22 -11
- package/dist/ui/signals.js.map +1 -1
- package/dist/ui/tsconfig.tsbuildinfo +1 -0
- package/dist/ui/worklets/playback-processor.js +3 -3
- package/package.json +37 -17
- package/templates/_shared/CLAUDE.md +4 -7
- package/templates/dispatch-center/agent.ts +85 -397
- package/templates/solo-rpg/agent.ts +3 -3
package/dist/sdk/protocol.js
CHANGED
|
@@ -25,28 +25,16 @@ export const DEFAULT_TTS_SAMPLE_RATE = 24_000;
|
|
|
25
25
|
* All audio frames are 16-bit signed PCM, little-endian, mono.
|
|
26
26
|
*/
|
|
27
27
|
export const AUDIO_FORMAT = "pcm16";
|
|
28
|
-
/**
|
|
29
|
-
* Binary audio frame specification. All audio exchanged over the WebSocket as
|
|
30
|
-
* binary frames MUST conform to this spec. Any change here is a breaking
|
|
31
|
-
* protocol change.
|
|
32
|
-
*/
|
|
33
|
-
const _bitsPerSample = 16;
|
|
34
|
-
const _channels = 1;
|
|
35
28
|
/** Specification for binary audio frames exchanged over WebSocket. */
|
|
36
29
|
export const AudioFrameSpec = {
|
|
37
|
-
/** Audio codec identifier sent in the `ready` message. */
|
|
38
30
|
format: AUDIO_FORMAT,
|
|
39
|
-
|
|
40
|
-
bitsPerSample: _bitsPerSample,
|
|
41
|
-
/** Little-endian byte order. */
|
|
31
|
+
bitsPerSample: 16,
|
|
42
32
|
endianness: "little",
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
/** Bytes per sample — derived from bitsPerSample and channels. */
|
|
46
|
-
bytesPerSample: (_bitsPerSample / 8) * _channels,
|
|
33
|
+
channels: 1,
|
|
34
|
+
bytesPerSample: 2,
|
|
47
35
|
};
|
|
48
|
-
/** Zod schema for
|
|
49
|
-
export const
|
|
36
|
+
/** Zod schema for KV operation requests from the worker to the host. */
|
|
37
|
+
export const KvRequestSchema = z.discriminatedUnion("op", [
|
|
50
38
|
z.object({ op: z.literal("get"), key: z.string().min(1) }),
|
|
51
39
|
z.object({
|
|
52
40
|
op: z.literal("set"),
|
|
@@ -61,13 +49,35 @@ export const KvRequestBaseSchema = z.discriminatedUnion("op", [
|
|
|
61
49
|
limit: z.number().int().positive().optional(),
|
|
62
50
|
reverse: z.boolean().optional(),
|
|
63
51
|
}),
|
|
52
|
+
z.object({ op: z.literal("keys"), pattern: z.string().optional() }),
|
|
53
|
+
]);
|
|
54
|
+
// ─── Vector request types ───────────────────────────────────────────────────
|
|
55
|
+
/** Zod schema for vector operation requests. */
|
|
56
|
+
export const VectorRequestSchema = z.discriminatedUnion("op", [
|
|
57
|
+
z.object({
|
|
58
|
+
op: z.literal("upsert"),
|
|
59
|
+
id: z.string().min(1),
|
|
60
|
+
data: z.string().min(1),
|
|
61
|
+
metadata: z.record(z.string(), z.unknown()).optional(),
|
|
62
|
+
}),
|
|
63
|
+
z.object({
|
|
64
|
+
op: z.literal("query"),
|
|
65
|
+
text: z.string().min(1),
|
|
66
|
+
topK: z.number().int().positive().max(100).optional(),
|
|
67
|
+
filter: z.string().optional(),
|
|
68
|
+
}),
|
|
69
|
+
z.object({
|
|
70
|
+
op: z.literal("remove"),
|
|
71
|
+
ids: z.array(z.string().min(1)).min(1),
|
|
72
|
+
}),
|
|
64
73
|
]);
|
|
65
74
|
// ─── Timeout constants ─────────────────────────────────────────────────────
|
|
66
75
|
/** Default timeout for agent lifecycle hooks (onConnect, onTurn, etc). */
|
|
67
76
|
export const HOOK_TIMEOUT_MS = 5_000;
|
|
68
77
|
/** Default timeout for tool execution in the worker. */
|
|
69
78
|
export const TOOL_EXECUTION_TIMEOUT_MS = 30_000;
|
|
70
|
-
|
|
79
|
+
// ─── Error codes ───────────────────────────────────────────────────────────
|
|
80
|
+
/** Zod schema for session error codes. */
|
|
71
81
|
export const SessionErrorCodeSchema = z.enum([
|
|
72
82
|
"stt",
|
|
73
83
|
"llm",
|
|
@@ -78,25 +88,20 @@ export const SessionErrorCodeSchema = z.enum([
|
|
|
78
88
|
"audio",
|
|
79
89
|
"internal",
|
|
80
90
|
]);
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
});
|
|
91
|
+
// ─── Client events ─────────────────────────────────────────────────────────
|
|
92
|
+
/** Helper: simple event with only a type field. */
|
|
93
|
+
const ev = (t) => z.object({ type: z.literal(t) });
|
|
94
|
+
/** Helper: event with type + text. */
|
|
95
|
+
const textEv = (t) => z.object({ type: z.literal(t), text: z.string() });
|
|
96
|
+
const turnOrder = z.number().int().nonnegative().optional();
|
|
88
97
|
/** Zod schema for {@linkcode ClientEvent}. */
|
|
89
98
|
export const ClientEventSchema = z.discriminatedUnion("type", [
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
turnOrder: z.number().int().nonnegative().optional(),
|
|
97
|
-
}),
|
|
98
|
-
z.object({ type: z.literal("chat"), text: z.string() }),
|
|
99
|
-
z.object({ type: z.literal("chat_delta"), text: z.string() }),
|
|
99
|
+
ev("speech_started"),
|
|
100
|
+
ev("speech_stopped"),
|
|
101
|
+
z.object({ type: z.literal("transcript"), text: z.string(), isFinal: z.boolean(), turnOrder }),
|
|
102
|
+
textEv("turn").extend({ turnOrder }),
|
|
103
|
+
textEv("chat"),
|
|
104
|
+
textEv("chat_delta"),
|
|
100
105
|
z.object({
|
|
101
106
|
type: z.literal("tool_call_start"),
|
|
102
107
|
toolCallId: z.string(),
|
|
@@ -108,27 +113,20 @@ export const ClientEventSchema = z.discriminatedUnion("type", [
|
|
|
108
113
|
toolCallId: z.string(),
|
|
109
114
|
result: z.string().max(4000),
|
|
110
115
|
}),
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
z.object({
|
|
115
|
-
type: z.literal("error"),
|
|
116
|
-
code: SessionErrorCodeSchema,
|
|
117
|
-
message: z.string(),
|
|
118
|
-
}),
|
|
116
|
+
ev("tts_done"),
|
|
117
|
+
ev("cancelled"),
|
|
118
|
+
ev("reset"),
|
|
119
|
+
z.object({ type: z.literal("error"), code: SessionErrorCodeSchema, message: z.string() }),
|
|
119
120
|
]);
|
|
120
|
-
/** Zod schema for
|
|
121
|
+
/** Zod schema for client→server text messages. */
|
|
121
122
|
export const ClientMessageSchema = z.discriminatedUnion("type", [
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
123
|
+
ev("audio_ready"),
|
|
124
|
+
ev("cancel"),
|
|
125
|
+
ev("reset"),
|
|
125
126
|
z.object({
|
|
126
127
|
type: z.literal("history"),
|
|
127
128
|
messages: z
|
|
128
|
-
.array(z.object({
|
|
129
|
-
role: z.enum(["user", "assistant"]),
|
|
130
|
-
text: z.string().max(100_000),
|
|
131
|
-
}))
|
|
129
|
+
.array(z.object({ role: z.enum(["user", "assistant"]), text: z.string().max(100_000) }))
|
|
132
130
|
.max(200),
|
|
133
131
|
}),
|
|
134
132
|
]);
|
package/dist/sdk/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../sdk/protocol.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../sdk/protocol.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk/runtime.d.ts
CHANGED
|
@@ -22,7 +22,6 @@ export type Metrics = {
|
|
|
22
22
|
dec(labels: Record<string, string>): void;
|
|
23
23
|
};
|
|
24
24
|
};
|
|
25
|
-
/** Console-based logger that works in all runtimes. */
|
|
26
25
|
export declare const consoleLogger: Logger;
|
|
27
26
|
/** No-op metrics implementation for environments without monitoring. */
|
|
28
27
|
export declare const noopMetrics: Metrics;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../sdk/runtime.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAIH,mDAAmD;AACnD,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,0CAA0C;AAC1C,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1C,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3C,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CAC5C,CAAC;AAEF,wCAAwC;AACxC,MAAM,MAAM,OAAO,GAAG;IACpB,aAAa,EAAE;QAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;KAAE,CAAC;IAC7D,cAAc,EAAE;QACd,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;QAC1C,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;KAC3C,CAAC;CACH,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../sdk/runtime.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAIH,mDAAmD;AACnD,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,0CAA0C;AAC1C,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1C,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3C,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CAC5C,CAAC;AAEF,wCAAwC;AACxC,MAAM,MAAM,OAAO,GAAG;IACpB,aAAa,EAAE;QAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;KAAE,CAAC;IAC7D,cAAc,EAAE;QACd,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;QAC1C,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;KAC3C,CAAC;CACH,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,MAK3B,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,WAAW,EAAE,OAGzB,CAAC;AAEF,oEAAoE;AACpE,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,EAAE,SAIhC,CAAC"}
|
package/dist/sdk/runtime.js
CHANGED
|
@@ -6,31 +6,12 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { DEFAULT_TTS_SAMPLE_RATE } from "./protocol.js";
|
|
8
8
|
/** Console-based logger that works in all runtimes. */
|
|
9
|
+
const _log = (m) => (msg, ctx) => console[m](msg, ...(ctx ? [ctx] : []));
|
|
9
10
|
export const consoleLogger = {
|
|
10
|
-
info(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
console.log(msg);
|
|
15
|
-
},
|
|
16
|
-
warn(msg, ctx) {
|
|
17
|
-
if (ctx)
|
|
18
|
-
console.warn(msg, ctx);
|
|
19
|
-
else
|
|
20
|
-
console.warn(msg);
|
|
21
|
-
},
|
|
22
|
-
error(msg, ctx) {
|
|
23
|
-
if (ctx)
|
|
24
|
-
console.error(msg, ctx);
|
|
25
|
-
else
|
|
26
|
-
console.error(msg);
|
|
27
|
-
},
|
|
28
|
-
debug(msg, ctx) {
|
|
29
|
-
if (ctx)
|
|
30
|
-
console.debug(msg, ctx);
|
|
31
|
-
else
|
|
32
|
-
console.debug(msg);
|
|
33
|
-
},
|
|
11
|
+
info: _log("log"),
|
|
12
|
+
warn: _log("warn"),
|
|
13
|
+
error: _log("error"),
|
|
14
|
+
debug: _log("debug"),
|
|
34
15
|
};
|
|
35
16
|
/** No-op metrics implementation for environments without monitoring. */
|
|
36
17
|
export const noopMetrics = {
|
package/dist/sdk/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../sdk/runtime.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C;;;;GAIG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAsBxD,uDAAuD;AACvD,MAAM,
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../sdk/runtime.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C;;;;GAIG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAsBxD,uDAAuD;AACvD,MAAM,IAAI,GAAG,CAAC,CAAqC,EAAE,EAAE,CAAC,CAAC,GAAW,EAAE,GAAgB,EAAE,EAAE,CACxF,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEzC,MAAM,CAAC,MAAM,aAAa,GAAW;IACnC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAClB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;IACpB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;CACrB,CAAC;AAEF,wEAAwE;AACxE,MAAM,CAAC,MAAM,WAAW,GAAY;IAClC,aAAa,EAAE,EAAE,GAAG,KAAI,CAAC,EAAE;IAC3B,cAAc,EAAE,EAAE,GAAG,KAAI,CAAC,EAAE,GAAG,KAAI,CAAC,EAAE;CACvC,CAAC;AASF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,kBAAkB,GAAc;IAC3C,MAAM,EAAE,sDAAsD;IAC9D,eAAe,EAAE,uBAAuB;IACxC,gBAAgB,EAAE,uBAAuB;CAC1C,CAAC"}
|
package/dist/sdk/s2s.d.ts
CHANGED
|
@@ -12,15 +12,25 @@ import type { Logger, S2SConfig } from "./runtime.ts";
|
|
|
12
12
|
export type S2sWebSocket = {
|
|
13
13
|
readonly readyState: number;
|
|
14
14
|
send(data: string): void;
|
|
15
|
-
/** Send raw binary audio. When present, sendAudio uses this for zero-copy transfer. */
|
|
16
|
-
sendBinary?(data: ArrayBuffer): void;
|
|
17
15
|
close(): void;
|
|
18
|
-
|
|
16
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject): void;
|
|
19
17
|
};
|
|
20
18
|
/** Factory for creating WebSocket connections (e.g. the `ws` package). */
|
|
21
19
|
export type CreateS2sWebSocket = (url: string, opts: {
|
|
22
20
|
headers: Record<string, string>;
|
|
23
21
|
}) => S2sWebSocket;
|
|
22
|
+
/** Minimal `.on()`-style WebSocket interface (matches the `ws` npm package). */
|
|
23
|
+
type OnStyleWebSocket = {
|
|
24
|
+
readonly readyState: number;
|
|
25
|
+
send(data: string): void;
|
|
26
|
+
close(): void;
|
|
27
|
+
on(event: string, handler: (...args: unknown[]) => void): void;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Wraps a `.on()`-style WebSocket (e.g. from the `ws` npm package) as an
|
|
31
|
+
* EventTarget-based {@linkcode S2sWebSocket}.
|
|
32
|
+
*/
|
|
33
|
+
export declare function wrapOnStyleWebSocket(ws: OnStyleWebSocket): S2sWebSocket;
|
|
24
34
|
export type S2sSessionConfig = {
|
|
25
35
|
system_prompt: string;
|
|
26
36
|
tools: S2sToolSchema[];
|
|
@@ -60,4 +70,5 @@ export type ConnectS2sOptions = {
|
|
|
60
70
|
* `session_expired`, `error`, `close`.
|
|
61
71
|
*/
|
|
62
72
|
export declare function connectS2s(opts: ConnectS2sOptions): Promise<S2sHandle>;
|
|
73
|
+
export {};
|
|
63
74
|
//# sourceMappingURL=s2s.d.ts.map
|
package/dist/sdk/s2s.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s2s.d.ts","sourceRoot":"","sources":["../../sdk/s2s.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"s2s.d.ts","sourceRoot":"","sources":["../../sdk/s2s.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAgBtD,sDAAsD;AACtD,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,IAAI,IAAI,CAAC;IACd,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,kCAAkC,GAAG,IAAI,CAAC;CACpF,CAAC;AAKF,0EAA0E;AAC1E,MAAM,MAAM,kBAAkB,GAAG,CAC/B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,KACtC,YAAY,CAAC;AAIlB,gFAAgF;AAChF,KAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,IAAI,IAAI,CAAC;IACd,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;CAChE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,gBAAgB,GAAG,YAAY,CAsBvE;AA4ED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,WAAW,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG;IACpC,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACnC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACrD,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC9C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAIF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,eAAe,EAAE,kBAAkB,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CAoHtE"}
|
package/dist/sdk/s2s.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { errorMessage } from "./_utils.js";
|
|
2
3
|
import { consoleLogger } from "./runtime.js";
|
|
3
4
|
// ─── Base64 helpers (native Buffer for C++-speed encode/decode) ─────────────
|
|
4
5
|
function uint8ToBase64(bytes) {
|
|
@@ -10,6 +11,30 @@ function base64ToUint8(base64) {
|
|
|
10
11
|
}
|
|
11
12
|
/** WebSocket readyState constant for OPEN. */
|
|
12
13
|
const WS_OPEN = 1;
|
|
14
|
+
/**
|
|
15
|
+
* Wraps a `.on()`-style WebSocket (e.g. from the `ws` npm package) as an
|
|
16
|
+
* EventTarget-based {@linkcode S2sWebSocket}.
|
|
17
|
+
*/
|
|
18
|
+
export function wrapOnStyleWebSocket(ws) {
|
|
19
|
+
const target = new EventTarget();
|
|
20
|
+
ws.on("open", () => target.dispatchEvent(new Event("open")));
|
|
21
|
+
ws.on("message", (data) => target.dispatchEvent(new MessageEvent("message", { data })));
|
|
22
|
+
ws.on("close", (code, reason) => {
|
|
23
|
+
const init = { reason: String(reason ?? "") };
|
|
24
|
+
if (typeof code === "number")
|
|
25
|
+
init.code = code;
|
|
26
|
+
target.dispatchEvent(new CloseEvent("close", init));
|
|
27
|
+
});
|
|
28
|
+
ws.on("error", (err) => target.dispatchEvent(new ErrorEvent("error", {
|
|
29
|
+
message: errorMessage(err),
|
|
30
|
+
})));
|
|
31
|
+
Object.defineProperties(target, {
|
|
32
|
+
readyState: { get: () => ws.readyState, enumerable: true },
|
|
33
|
+
send: { value: (data) => ws.send(data), enumerable: true },
|
|
34
|
+
close: { value: () => ws.close(), enumerable: true },
|
|
35
|
+
});
|
|
36
|
+
return target;
|
|
37
|
+
}
|
|
13
38
|
// ─── Incoming S2S message schema ─────────────────────────────────────────────
|
|
14
39
|
const S2sServerMessageSchema = z.discriminatedUnion("type", [
|
|
15
40
|
z.object({ type: z.literal("session.ready"), session_id: z.string() }),
|
|
@@ -23,7 +48,7 @@ const S2sServerMessageSchema = z.discriminatedUnion("type", [
|
|
|
23
48
|
text: z.string(),
|
|
24
49
|
}),
|
|
25
50
|
z.object({ type: z.literal("reply.started"), reply_id: z.string() }),
|
|
26
|
-
// reply.audio is handled on the fast path before Zod
|
|
51
|
+
// reply.audio is handled on the fast path before Zod.
|
|
27
52
|
z.object({ type: z.literal("transcript.agent.delta"), delta: z.string() }).passthrough(),
|
|
28
53
|
z.object({ type: z.literal("transcript.agent"), text: z.string() }),
|
|
29
54
|
z.object({ type: z.literal("reply.content_part.started") }).passthrough(),
|
|
@@ -49,84 +74,31 @@ const S2sServerMessageSchema = z.discriminatedUnion("type", [
|
|
|
49
74
|
message: z.string(),
|
|
50
75
|
}),
|
|
51
76
|
]);
|
|
77
|
+
const S2S_DISPATCH = {
|
|
78
|
+
"session.ready": (m) => ["ready", { session_id: m.session_id }],
|
|
79
|
+
"session.updated": (m) => ["session_updated", m],
|
|
80
|
+
"input.speech.started": () => ["speech_started", undefined],
|
|
81
|
+
"input.speech.stopped": () => ["speech_stopped", undefined],
|
|
82
|
+
"transcript.user.delta": (m) => ["user_transcript_delta", { text: m.text }],
|
|
83
|
+
"transcript.user": (m) => ["user_transcript", { item_id: m.item_id, text: m.text }],
|
|
84
|
+
"reply.started": (m) => ["reply_started", { reply_id: m.reply_id }],
|
|
85
|
+
"transcript.agent.delta": (m) => ["agent_transcript_delta", { text: m.delta }],
|
|
86
|
+
"transcript.agent": (m) => ["agent_transcript", { text: m.text }],
|
|
87
|
+
"tool.call": (m) => ["tool_call", { call_id: m.call_id, name: m.name, args: m.args }],
|
|
88
|
+
"reply.done": (m) => ["reply_done", { status: m.status }],
|
|
89
|
+
"session.error": (m) => [
|
|
90
|
+
m.code === "session_not_found" || m.code === "session_forbidden" ? "session_expired" : "error",
|
|
91
|
+
{ code: m.code, message: m.message },
|
|
92
|
+
],
|
|
93
|
+
error: (m) => ["error", { code: "connection", message: m.message }],
|
|
94
|
+
"reply.content_part.started": () => undefined,
|
|
95
|
+
"reply.content_part.done": () => undefined,
|
|
96
|
+
};
|
|
52
97
|
/** Dispatch a parsed S2S server message to the EventTarget. */
|
|
53
98
|
function dispatchS2sMessage(target, msg) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
detail: { session_id: msg.session_id },
|
|
58
|
-
}));
|
|
59
|
-
break;
|
|
60
|
-
case "session.updated":
|
|
61
|
-
target.dispatchEvent(new CustomEvent("session_updated", { detail: msg }));
|
|
62
|
-
break;
|
|
63
|
-
case "input.speech.started":
|
|
64
|
-
target.dispatchEvent(new CustomEvent("speech_started"));
|
|
65
|
-
break;
|
|
66
|
-
case "input.speech.stopped":
|
|
67
|
-
target.dispatchEvent(new CustomEvent("speech_stopped"));
|
|
68
|
-
break;
|
|
69
|
-
case "transcript.user.delta":
|
|
70
|
-
target.dispatchEvent(new CustomEvent("user_transcript_delta", {
|
|
71
|
-
detail: { text: msg.text },
|
|
72
|
-
}));
|
|
73
|
-
break;
|
|
74
|
-
case "transcript.user":
|
|
75
|
-
target.dispatchEvent(new CustomEvent("user_transcript", {
|
|
76
|
-
detail: {
|
|
77
|
-
item_id: msg.item_id,
|
|
78
|
-
text: msg.text,
|
|
79
|
-
},
|
|
80
|
-
}));
|
|
81
|
-
break;
|
|
82
|
-
case "reply.started":
|
|
83
|
-
target.dispatchEvent(new CustomEvent("reply_started", {
|
|
84
|
-
detail: { reply_id: msg.reply_id },
|
|
85
|
-
}));
|
|
86
|
-
break;
|
|
87
|
-
// reply.audio handled on the fast path — never reaches dispatch.
|
|
88
|
-
case "transcript.agent.delta":
|
|
89
|
-
target.dispatchEvent(new CustomEvent("agent_transcript_delta", {
|
|
90
|
-
detail: { text: msg.delta },
|
|
91
|
-
}));
|
|
92
|
-
break;
|
|
93
|
-
case "transcript.agent":
|
|
94
|
-
target.dispatchEvent(new CustomEvent("agent_transcript", {
|
|
95
|
-
detail: { text: msg.text },
|
|
96
|
-
}));
|
|
97
|
-
break;
|
|
98
|
-
case "tool.call":
|
|
99
|
-
target.dispatchEvent(new CustomEvent("tool_call", {
|
|
100
|
-
detail: {
|
|
101
|
-
call_id: msg.call_id,
|
|
102
|
-
name: msg.name,
|
|
103
|
-
args: msg.args,
|
|
104
|
-
},
|
|
105
|
-
}));
|
|
106
|
-
break;
|
|
107
|
-
case "reply.done":
|
|
108
|
-
target.dispatchEvent(new CustomEvent("reply_done", {
|
|
109
|
-
detail: { status: msg.status },
|
|
110
|
-
}));
|
|
111
|
-
break;
|
|
112
|
-
case "session.error": {
|
|
113
|
-
const isExpired = msg.code === "session_not_found" || msg.code === "session_forbidden";
|
|
114
|
-
target.dispatchEvent(new CustomEvent(isExpired ? "session_expired" : "error", {
|
|
115
|
-
detail: { code: msg.code, message: msg.message },
|
|
116
|
-
}));
|
|
117
|
-
break;
|
|
118
|
-
}
|
|
119
|
-
case "reply.content_part.started":
|
|
120
|
-
case "reply.content_part.done":
|
|
121
|
-
// Structural markers — no action needed.
|
|
122
|
-
break;
|
|
123
|
-
case "error":
|
|
124
|
-
// Connection-level error — should trigger close/reconnect.
|
|
125
|
-
target.dispatchEvent(new CustomEvent("error", {
|
|
126
|
-
detail: { code: "connection", message: msg.message },
|
|
127
|
-
}));
|
|
128
|
-
break;
|
|
129
|
-
}
|
|
99
|
+
const entry = S2S_DISPATCH[msg.type]?.(msg);
|
|
100
|
+
if (entry)
|
|
101
|
+
target.dispatchEvent(new CustomEvent(entry[0], { detail: entry[1] }));
|
|
130
102
|
}
|
|
131
103
|
/**
|
|
132
104
|
* Connect to AssemblyAI's Speech-to-Speech WebSocket API.
|
|
@@ -140,7 +112,7 @@ function dispatchS2sMessage(target, msg) {
|
|
|
140
112
|
export function connectS2s(opts) {
|
|
141
113
|
const { apiKey, config, createWebSocket, logger: log = consoleLogger } = opts;
|
|
142
114
|
return new Promise((resolve, reject) => {
|
|
143
|
-
log.
|
|
115
|
+
log.info("S2S connecting", { url: config.wssUrl });
|
|
144
116
|
const ws = createWebSocket(config.wssUrl, {
|
|
145
117
|
headers: { Authorization: `Bearer ${apiKey}` },
|
|
146
118
|
});
|
|
@@ -151,7 +123,7 @@ export function connectS2s(opts) {
|
|
|
151
123
|
return;
|
|
152
124
|
const json = JSON.stringify(msg);
|
|
153
125
|
if (msg.type !== "input.audio") {
|
|
154
|
-
log.
|
|
126
|
+
log.info(`S2S >> ${msg.type}`, msg.type === "session.update" ? { payload: json } : undefined);
|
|
155
127
|
}
|
|
156
128
|
ws.send(json);
|
|
157
129
|
}
|
|
@@ -159,19 +131,11 @@ export function connectS2s(opts) {
|
|
|
159
131
|
sendAudio(audio) {
|
|
160
132
|
if (ws.readyState !== WS_OPEN)
|
|
161
133
|
return;
|
|
162
|
-
|
|
163
|
-
// Bridged mode: send raw PCM, host does base64+JSON wrap.
|
|
164
|
-
const ab = audio.buffer.slice(audio.byteOffset, audio.byteOffset + audio.byteLength);
|
|
165
|
-
ws.sendBinary(ab);
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
// Direct mode: build JSON inline to avoid intermediate object allocation.
|
|
169
|
-
ws.send(`{"type":"input.audio","audio":"${uint8ToBase64(audio)}"}`);
|
|
170
|
-
}
|
|
134
|
+
ws.send(`{"type":"input.audio","audio":"${uint8ToBase64(audio)}"}`);
|
|
171
135
|
},
|
|
172
136
|
sendToolResult(callId, result) {
|
|
173
137
|
const msg = { type: "tool.result", call_id: callId, result };
|
|
174
|
-
log.
|
|
138
|
+
log.info("S2S >> tool.result", { call_id: callId, resultLength: result.length });
|
|
175
139
|
send(msg);
|
|
176
140
|
},
|
|
177
141
|
updateSession(sessionConfig) {
|
|
@@ -181,35 +145,29 @@ export function connectS2s(opts) {
|
|
|
181
145
|
send({ type: "session.resume", session_id: sessionId });
|
|
182
146
|
},
|
|
183
147
|
close() {
|
|
184
|
-
log.
|
|
148
|
+
log.info("S2S closing");
|
|
185
149
|
ws.close();
|
|
186
150
|
},
|
|
187
151
|
});
|
|
188
|
-
ws.
|
|
152
|
+
ws.addEventListener("open", () => {
|
|
189
153
|
opened = true;
|
|
190
154
|
log.info("S2S WebSocket open");
|
|
191
155
|
resolve(handle);
|
|
192
156
|
});
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
const ab = data;
|
|
196
|
-
target.dispatchEvent(new CustomEvent("audio", { detail: { audio: new Uint8Array(ab) } }));
|
|
197
|
-
});
|
|
198
|
-
ws.on("message", (data) => {
|
|
157
|
+
function handleS2sMessage(ev) {
|
|
158
|
+
const data = ev.data;
|
|
199
159
|
let raw;
|
|
200
160
|
try {
|
|
201
161
|
raw = JSON.parse(String(data));
|
|
202
162
|
}
|
|
203
163
|
catch {
|
|
164
|
+
log.warn("S2S << invalid JSON", { data: String(data).slice(0, 200) });
|
|
204
165
|
return;
|
|
205
166
|
}
|
|
206
|
-
// Fast path: reply.audio
|
|
207
|
-
// Only reached in direct mode (self-hosted); bridged mode uses "audio" event above.
|
|
167
|
+
// Fast path: reply.audio and input.audio are ~95% of traffic — skip logging.
|
|
208
168
|
const obj = raw;
|
|
209
|
-
if (obj.type !== "reply.audio" &&
|
|
210
|
-
obj.type
|
|
211
|
-
obj.type !== "transcript.agent.delta") {
|
|
212
|
-
log.info(`S2S << ${obj.type}`);
|
|
169
|
+
if (obj.type !== "reply.audio" && obj.type !== "input.audio") {
|
|
170
|
+
log.info(`S2S << ${obj.type}`, obj.type === "transcript.agent.delta" ? { delta: obj.delta } : undefined);
|
|
213
171
|
}
|
|
214
172
|
if (obj.type === "reply.audio" && typeof obj.data === "string") {
|
|
215
173
|
const audioBytes = base64ToUint8(obj.data);
|
|
@@ -221,18 +179,19 @@ export function connectS2s(opts) {
|
|
|
221
179
|
log.warn(`S2S << unrecognised message type: ${obj.type ?? JSON.stringify(raw).slice(0, 200)}`);
|
|
222
180
|
return;
|
|
223
181
|
}
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
ws.
|
|
182
|
+
dispatchS2sMessage(target, parsed.data);
|
|
183
|
+
}
|
|
184
|
+
ws.addEventListener("message", handleS2sMessage);
|
|
185
|
+
ws.addEventListener("close", ((ev) => {
|
|
228
186
|
log.info("S2S WebSocket closed", {
|
|
229
|
-
code:
|
|
230
|
-
reason:
|
|
187
|
+
code: ev.code ?? 0,
|
|
188
|
+
reason: ev.reason ?? "",
|
|
231
189
|
});
|
|
232
190
|
target.dispatchEvent(new CustomEvent("close"));
|
|
233
|
-
});
|
|
234
|
-
ws.
|
|
235
|
-
const
|
|
191
|
+
}));
|
|
192
|
+
ws.addEventListener("error", ((ev) => {
|
|
193
|
+
const message = ev instanceof ErrorEvent ? ev.message : "WebSocket error";
|
|
194
|
+
const errObj = new Error(message);
|
|
236
195
|
log.error("S2S WebSocket error", { error: errObj.message });
|
|
237
196
|
if (!opened) {
|
|
238
197
|
reject(errObj);
|
|
@@ -242,7 +201,7 @@ export function connectS2s(opts) {
|
|
|
242
201
|
detail: { code: "ws_error", message: errObj.message },
|
|
243
202
|
}));
|
|
244
203
|
}
|
|
245
|
-
});
|
|
204
|
+
}));
|
|
246
205
|
});
|
|
247
206
|
}
|
|
248
207
|
//# sourceMappingURL=s2s.js.map
|
package/dist/sdk/s2s.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s2s.js","sourceRoot":"","sources":["../../sdk/s2s.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"s2s.js","sourceRoot":"","sources":["../../sdk/s2s.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,+EAA+E;AAE/E,SAAS,aAAa,CAAC,KAAiB;IACtC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACnC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;AACpE,CAAC;AAYD,8CAA8C;AAC9C,MAAM,OAAO,GAAG,CAAC,CAAC;AAkBlB;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAoB;IACvD,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;IACjC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7D,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAa,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACjG,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAa,EAAE,MAAe,EAAE,EAAE;QAChD,MAAM,IAAI,GAAmB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9D,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAC/C,MAAM,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAY,EAAE,EAAE,CAC9B,MAAM,CAAC,aAAa,CAClB,IAAI,UAAU,CAAC,OAAO,EAAE;QACtB,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC;KAC3B,CAAC,CACH,CACF,CAAC;IACF,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE;QAC9B,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE;QAC1D,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;QAClE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;KACrD,CAAC,CAAC;IACH,OAAO,MAAiC,CAAC;AAC3C,CAAC;AAED,gFAAgF;AAEhF,MAAM,sBAAsB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC1D,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACtE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;IAC9D,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,CAAC;IACrD,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,CAAC;IACrD,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACxE,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;QAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;KACjB,CAAC;IACF,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACpE,sDAAsD;IACtD,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE;IACxF,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACnE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;IACzE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;IACtE,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;QAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;KAC/D,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;QAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC9B,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;QAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;KACpB,CAAC;IACF,mEAAmE;IACnE,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;KACpB,CAAC;CACH,CAAC,CAAC;AAMH,MAAM,YAAY,GAA8D;IAC9E,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;IAC/D,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAChD,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC;IAC3D,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC;IAC3D,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3E,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnF,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACnE,wBAAwB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAC9E,kBAAkB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjE,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACrF,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IACzD,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QACtB,CAAC,CAAC,IAAI,KAAK,mBAAmB,IAAI,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO;QAC9F,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;KACrC;IACD,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IACnE,4BAA4B,EAAE,GAAG,EAAE,CAAC,SAAS;IAC7C,yBAAyB,EAAE,GAAG,EAAE,CAAC,SAAS;CAC3C,CAAC;AAEF,+DAA+D;AAC/D,SAAS,kBAAkB,CAAC,MAAmB,EAAE,GAAqB;IACpE,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAU,CAAC,CAAC;IACnD,IAAI,KAAK;QAAE,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnF,CAAC;AAwCD;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,IAAuB;IAChD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,GAAG,aAAa,EAAE,GAAG,IAAI,CAAC;IAE9E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAEnD,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE;YACxC,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE;SAC/C,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QACjC,IAAI,MAAM,GAAG,KAAK,CAAC;QAEnB,SAAS,IAAI,CAAC,GAA6C;YACzD,IAAI,EAAE,CAAC,UAAU,KAAK,OAAO;gBAAE,OAAO;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBAC/B,GAAG,CAAC,IAAI,CACN,UAAU,GAAG,CAAC,IAAI,EAAE,EACpB,GAAG,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAC9D,CAAC;YACJ,CAAC;YACD,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GAAc,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;YAC9C,SAAS,CAAC,KAAiB;gBACzB,IAAI,EAAE,CAAC,UAAU,KAAK,OAAO;oBAAE,OAAO;gBACtC,EAAE,CAAC,IAAI,CAAC,kCAAkC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtE,CAAC;YAED,cAAc,CAAC,MAAc,EAAE,MAAc;gBAC3C,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;gBAC7D,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBACjF,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,CAAC;YAED,aAAa,CAAC,aAA+B;gBAC3C,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YAC3D,CAAC;YAED,aAAa,CAAC,SAAiB;gBAC7B,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;YAC1D,CAAC;YAED,KAAK;gBACH,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACxB,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,CAAC;SACF,CAAC,CAAC;QAEH,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YAC/B,MAAM,GAAG,IAAI,CAAC;YACd,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC/B,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,SAAS,gBAAgB,CAAC,EAAgB;YACxC,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;YACrB,IAAI,GAAY,CAAC;YACjB,IAAI,CAAC;gBACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACP,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBACtE,OAAO;YACT,CAAC;YAED,6EAA6E;YAC7E,MAAM,GAAG,GAAG,GAA0D,CAAC;YACvE,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBAC7D,GAAG,CAAC,IAAI,CACN,UAAU,GAAG,CAAC,IAAI,EAAE,EACpB,GAAG,CAAC,IAAI,KAAK,wBAAwB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CACzE,CAAC;YACJ,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC/D,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC3C,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;gBAClF,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,GAAG,CAAC,IAAI,CACN,qCAAqC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CACrF,CAAC;gBACF,OAAO;YACT,CAAC;YACD,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAED,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAiC,CAAC,CAAC;QAElE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAc,EAAE,EAAE;YAC/C,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE;gBAC/B,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;gBAClB,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,EAAE;aACxB,CAAC,CAAC;YACH,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QACjD,CAAC,CAAkB,CAAC,CAAC;QAErB,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAS,EAAE,EAAE;YAC1C,MAAM,OAAO,GAAG,EAAE,YAAY,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;YAC1E,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YAClC,GAAG,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,CAAC,MAAM,CAAC,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,aAAa,CAClB,IAAI,WAAW,CAAC,OAAO,EAAE;oBACvB,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;iBACtD,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC,CAAkB,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/sdk/server.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import type { Kv } from "./kv.ts";
|
|
10
10
|
import type { Logger, S2SConfig } from "./runtime.ts";
|
|
11
|
-
import type
|
|
11
|
+
import { type CreateS2sWebSocket } from "./s2s.ts";
|
|
12
12
|
import type { AgentDef } from "./types.ts";
|
|
13
13
|
export type ServerOptions = {
|
|
14
14
|
/** The agent definition returned by `defineAgent()`. */
|