@getpaseo/server 0.1.3 → 0.1.6
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/server/client/daemon-client-relay-e2ee-transport.d.ts +8 -0
- package/dist/server/client/daemon-client-relay-e2ee-transport.d.ts.map +1 -0
- package/dist/server/client/daemon-client-relay-e2ee-transport.js +161 -0
- package/dist/server/client/daemon-client-relay-e2ee-transport.js.map +1 -0
- package/dist/server/client/daemon-client-terminal-stream-manager.d.ts +43 -0
- package/dist/server/client/daemon-client-terminal-stream-manager.d.ts.map +1 -0
- package/dist/server/client/daemon-client-terminal-stream-manager.js +134 -0
- package/dist/server/client/daemon-client-terminal-stream-manager.js.map +1 -0
- package/dist/server/client/daemon-client-transport-types.d.ts +34 -0
- package/dist/server/client/daemon-client-transport-types.d.ts.map +1 -0
- package/dist/server/client/daemon-client-transport-types.js +2 -0
- package/dist/server/client/daemon-client-transport-types.js.map +1 -0
- package/dist/server/client/daemon-client-transport-utils.d.ts +9 -0
- package/dist/server/client/daemon-client-transport-utils.d.ts.map +1 -0
- package/dist/server/client/daemon-client-transport-utils.js +121 -0
- package/dist/server/client/daemon-client-transport-utils.js.map +1 -0
- package/dist/server/client/daemon-client-transport.d.ts +5 -0
- package/dist/server/client/daemon-client-transport.d.ts.map +1 -0
- package/dist/server/client/daemon-client-transport.js +4 -0
- package/dist/server/client/daemon-client-transport.js.map +1 -0
- package/dist/server/client/daemon-client-websocket-transport.d.ts +7 -0
- package/dist/server/client/daemon-client-websocket-transport.d.ts.map +1 -0
- package/dist/server/client/daemon-client-websocket-transport.js +64 -0
- package/dist/server/client/daemon-client-websocket-transport.js.map +1 -0
- package/dist/server/client/daemon-client.d.ts +63 -46
- package/dist/server/client/daemon-client.d.ts.map +1 -1
- package/dist/server/client/daemon-client.js +497 -796
- package/dist/server/client/daemon-client.js.map +1 -1
- package/dist/server/server/agent/agent-management-mcp.d.ts +2 -0
- package/dist/server/server/agent/agent-management-mcp.d.ts.map +1 -1
- package/dist/server/server/agent/agent-management-mcp.js +29 -4
- package/dist/server/server/agent/agent-management-mcp.js.map +1 -1
- package/dist/server/server/agent/agent-manager.d.ts +48 -0
- package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
- package/dist/server/server/agent/agent-manager.js +224 -14
- package/dist/server/server/agent/agent-manager.js.map +1 -1
- package/dist/server/server/agent/agent-sdk-types.d.ts +14 -0
- package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
- package/dist/server/server/agent/agent-storage.d.ts +4 -4
- package/dist/server/server/agent/mcp-server.d.ts +2 -0
- package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
- package/dist/server/server/agent/mcp-server.js +30 -5
- package/dist/server/server/agent/mcp-server.js.map +1 -1
- package/dist/server/server/agent/providers/claude/tool-call-mapper.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude/tool-call-mapper.js +120 -6
- package/dist/server/server/agent/providers/claude/tool-call-mapper.js.map +1 -1
- package/dist/server/server/agent/providers/claude-agent.d.ts +7 -0
- package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude-agent.js +83 -9
- package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.js +25 -0
- package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +42 -0
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
- package/dist/server/server/agent/stt-manager.d.ts +3 -2
- package/dist/server/server/agent/stt-manager.d.ts.map +1 -1
- package/dist/server/server/agent/stt-manager.js +5 -3
- package/dist/server/server/agent/stt-manager.js.map +1 -1
- package/dist/server/server/agent/timeline-append.d.ts +10 -0
- package/dist/server/server/agent/timeline-append.d.ts.map +1 -0
- package/dist/server/server/agent/timeline-append.js +27 -0
- package/dist/server/server/agent/timeline-append.js.map +1 -0
- package/dist/server/server/agent/timeline-projection.d.ts +19 -0
- package/dist/server/server/agent/timeline-projection.d.ts.map +1 -0
- package/dist/server/server/agent/timeline-projection.js +142 -0
- package/dist/server/server/agent/timeline-projection.js.map +1 -0
- package/dist/server/server/agent/tts-manager.d.ts +3 -2
- package/dist/server/server/agent/tts-manager.d.ts.map +1 -1
- package/dist/server/server/agent/tts-manager.js +5 -3
- package/dist/server/server/agent/tts-manager.js.map +1 -1
- package/dist/server/server/agent-attention-policy.d.ts +20 -0
- package/dist/server/server/agent-attention-policy.d.ts.map +1 -0
- package/dist/server/server/agent-attention-policy.js +40 -0
- package/dist/server/server/agent-attention-policy.js.map +1 -0
- package/dist/server/server/bootstrap.d.ts.map +1 -1
- package/dist/server/server/bootstrap.js +16 -18
- package/dist/server/server/bootstrap.js.map +1 -1
- package/dist/server/server/dictation/dictation-stream-manager.d.ts +10 -2
- package/dist/server/server/dictation/dictation-stream-manager.d.ts.map +1 -1
- package/dist/server/server/dictation/dictation-stream-manager.js +81 -14
- package/dist/server/server/dictation/dictation-stream-manager.js.map +1 -1
- package/dist/server/server/exports.d.ts +1 -1
- package/dist/server/server/exports.d.ts.map +1 -1
- package/dist/server/server/persisted-config.d.ts +12 -12
- package/dist/server/server/relay-transport.d.ts +3 -2
- package/dist/server/server/relay-transport.d.ts.map +1 -1
- package/dist/server/server/relay-transport.js +21 -5
- package/dist/server/server/relay-transport.js.map +1 -1
- package/dist/server/server/session.d.ts +51 -14
- package/dist/server/server/session.d.ts.map +1 -1
- package/dist/server/server/session.js +872 -250
- package/dist/server/server/session.js.map +1 -1
- package/dist/server/server/speech/provider-resolver.d.ts +3 -0
- package/dist/server/server/speech/provider-resolver.d.ts.map +1 -0
- package/dist/server/server/speech/provider-resolver.js +7 -0
- package/dist/server/server/speech/provider-resolver.js.map +1 -0
- package/dist/server/server/speech/providers/local/runtime.d.ts +1 -0
- package/dist/server/server/speech/providers/local/runtime.d.ts.map +1 -1
- package/dist/server/server/speech/providers/local/runtime.js +4 -3
- package/dist/server/server/speech/providers/local/runtime.js.map +1 -1
- package/dist/server/server/speech/providers/local/sherpa/model-downloader.d.ts.map +1 -1
- package/dist/server/server/speech/providers/local/sherpa/model-downloader.js +3 -66
- package/dist/server/server/speech/providers/local/sherpa/model-downloader.js.map +1 -1
- package/dist/server/server/speech/speech-runtime.d.ts +26 -3
- package/dist/server/server/speech/speech-runtime.d.ts.map +1 -1
- package/dist/server/server/speech/speech-runtime.js +466 -112
- package/dist/server/server/speech/speech-runtime.js.map +1 -1
- package/dist/server/server/websocket-server.d.ts +23 -7
- package/dist/server/server/websocket-server.d.ts.map +1 -1
- package/dist/server/server/websocket-server.js +288 -64
- package/dist/server/server/websocket-server.js.map +1 -1
- package/dist/server/server/worktree-bootstrap.d.ts +29 -0
- package/dist/server/server/worktree-bootstrap.d.ts.map +1 -0
- package/dist/server/server/worktree-bootstrap.js +407 -0
- package/dist/server/server/worktree-bootstrap.js.map +1 -0
- package/dist/server/shared/binary-mux.d.ts +31 -0
- package/dist/server/shared/binary-mux.d.ts.map +1 -0
- package/dist/server/shared/binary-mux.js +114 -0
- package/dist/server/shared/binary-mux.js.map +1 -0
- package/dist/server/shared/messages.d.ts +6437 -5839
- package/dist/server/shared/messages.d.ts.map +1 -1
- package/dist/server/shared/messages.js +238 -50
- package/dist/server/shared/messages.js.map +1 -1
- package/dist/server/shared/terminal-key-input.d.ts +9 -0
- package/dist/server/shared/terminal-key-input.d.ts.map +1 -0
- package/dist/server/shared/terminal-key-input.js +132 -0
- package/dist/server/shared/terminal-key-input.js.map +1 -0
- package/dist/server/shared/tool-call-display.d.ts.map +1 -1
- package/dist/server/shared/tool-call-display.js +4 -0
- package/dist/server/shared/tool-call-display.js.map +1 -1
- package/dist/server/terminal/terminal-manager.d.ts +11 -0
- package/dist/server/terminal/terminal-manager.d.ts.map +1 -1
- package/dist/server/terminal/terminal-manager.js +75 -24
- package/dist/server/terminal/terminal-manager.js.map +1 -1
- package/dist/server/terminal/terminal.d.ts +18 -0
- package/dist/server/terminal/terminal.d.ts.map +1 -1
- package/dist/server/terminal/terminal.js +142 -5
- package/dist/server/terminal/terminal.js.map +1 -1
- package/dist/server/utils/checkout-git.d.ts +4 -0
- package/dist/server/utils/checkout-git.d.ts.map +1 -1
- package/dist/server/utils/checkout-git.js +92 -0
- package/dist/server/utils/checkout-git.js.map +1 -1
- package/dist/server/utils/worktree.d.ts +32 -0
- package/dist/server/utils/worktree.d.ts.map +1 -1
- package/dist/server/utils/worktree.js +160 -10
- package/dist/server/utils/worktree.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { DaemonTransport, DaemonTransportFactory, TransportLogger } from "./daemon-client-transport-types.js";
|
|
2
|
+
export declare function createRelayE2eeTransportFactory(args: {
|
|
3
|
+
baseFactory: DaemonTransportFactory;
|
|
4
|
+
daemonPublicKeyB64: string;
|
|
5
|
+
logger: TransportLogger;
|
|
6
|
+
}): DaemonTransportFactory;
|
|
7
|
+
export declare function createEncryptedTransport(base: DaemonTransport, daemonPublicKeyB64: string, logger: TransportLogger): DaemonTransport;
|
|
8
|
+
//# sourceMappingURL=daemon-client-relay-e2ee-transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-client-relay-e2ee-transport.d.ts","sourceRoot":"","sources":["../../../src/client/daemon-client-relay-e2ee-transport.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,eAAe,EACf,sBAAsB,EACtB,eAAe,EAChB,MAAM,oCAAoC,CAAC;AAW5C,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACpD,WAAW,EAAE,sBAAsB,CAAC;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,eAAe,CAAC;CACzB,GAAG,sBAAsB,CAKzB;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,eAAe,EACrB,kBAAkB,EAAE,MAAM,EAC1B,MAAM,EAAE,eAAe,GACtB,eAAe,CAyIjB"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { createClientChannel, } from "@getpaseo/relay/e2ee";
|
|
2
|
+
import { extractRelayMessageData, normalizeTransportPayload, } from "./daemon-client-transport-utils.js";
|
|
3
|
+
export function createRelayE2eeTransportFactory(args) {
|
|
4
|
+
return ({ url, headers }) => {
|
|
5
|
+
const base = args.baseFactory({ url, headers });
|
|
6
|
+
return createEncryptedTransport(base, args.daemonPublicKeyB64, args.logger);
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export function createEncryptedTransport(base, daemonPublicKeyB64, logger) {
|
|
10
|
+
let channel = null;
|
|
11
|
+
let opened = false;
|
|
12
|
+
let closed = false;
|
|
13
|
+
const openHandlers = new Set();
|
|
14
|
+
const closeHandlers = new Set();
|
|
15
|
+
const errorHandlers = new Set();
|
|
16
|
+
const messageHandlers = new Set();
|
|
17
|
+
const emitOpen = () => {
|
|
18
|
+
if (opened || closed) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
opened = true;
|
|
22
|
+
emitHandlers(openHandlers);
|
|
23
|
+
};
|
|
24
|
+
const emitClose = (event) => {
|
|
25
|
+
if (closed) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
closed = true;
|
|
29
|
+
emitHandlers(closeHandlers, event);
|
|
30
|
+
};
|
|
31
|
+
const emitError = (event) => {
|
|
32
|
+
if (closed) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
emitHandlers(errorHandlers, event);
|
|
36
|
+
};
|
|
37
|
+
const emitMessage = (data) => {
|
|
38
|
+
if (closed) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
emitHandlers(messageHandlers, data);
|
|
42
|
+
};
|
|
43
|
+
const relayTransport = {
|
|
44
|
+
send: (data) => {
|
|
45
|
+
if (typeof data === "string") {
|
|
46
|
+
base.send(data);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (ArrayBuffer.isView(data)) {
|
|
50
|
+
base.send(normalizeTransportPayload(data));
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (data instanceof ArrayBuffer) {
|
|
54
|
+
base.send(data);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
base.send(String(data));
|
|
58
|
+
},
|
|
59
|
+
close: (code, reason) => base.close(code, reason),
|
|
60
|
+
onmessage: null,
|
|
61
|
+
onclose: null,
|
|
62
|
+
onerror: null,
|
|
63
|
+
};
|
|
64
|
+
const startHandshake = async () => {
|
|
65
|
+
try {
|
|
66
|
+
channel = await createClientChannel(relayTransport, daemonPublicKeyB64, {
|
|
67
|
+
onopen: emitOpen,
|
|
68
|
+
onmessage: (data) => emitMessage(data),
|
|
69
|
+
onclose: (code, reason) => emitClose({ code, reason }),
|
|
70
|
+
onerror: (error) => emitError(error),
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
logger.warn({ err: normalizeTransportError(error) }, "relay_e2ee_handshake_failed");
|
|
75
|
+
emitError(error);
|
|
76
|
+
// Browser WebSocket.close only accepts 1000 or 3000-4999.
|
|
77
|
+
// Use an app-defined code so this path works in browser and Node runtimes.
|
|
78
|
+
base.close(4001, "E2EE handshake failed");
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
base.onOpen(() => {
|
|
82
|
+
void startHandshake();
|
|
83
|
+
});
|
|
84
|
+
base.onMessage((event) => {
|
|
85
|
+
relayTransport.onmessage?.(extractRelayMessageData(event));
|
|
86
|
+
});
|
|
87
|
+
base.onClose((event) => {
|
|
88
|
+
const record = event;
|
|
89
|
+
relayTransport.onclose?.(record?.code ?? 0, record?.reason ?? "");
|
|
90
|
+
emitClose(event);
|
|
91
|
+
});
|
|
92
|
+
base.onError((event) => {
|
|
93
|
+
relayTransport.onerror?.(event instanceof Error ? event : new Error(String(event)));
|
|
94
|
+
emitError(event);
|
|
95
|
+
});
|
|
96
|
+
return {
|
|
97
|
+
send: (data) => {
|
|
98
|
+
if (!channel) {
|
|
99
|
+
throw new Error("Encrypted channel not ready");
|
|
100
|
+
}
|
|
101
|
+
void channel.send(normalizeTransportPayload(data)).catch((error) => {
|
|
102
|
+
emitError(error);
|
|
103
|
+
});
|
|
104
|
+
},
|
|
105
|
+
close: (code, reason) => {
|
|
106
|
+
if (channel) {
|
|
107
|
+
channel.close(code, reason);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
base.close(code, reason);
|
|
111
|
+
}
|
|
112
|
+
emitClose({ code, reason });
|
|
113
|
+
},
|
|
114
|
+
onMessage: (handler) => {
|
|
115
|
+
messageHandlers.add(handler);
|
|
116
|
+
return () => messageHandlers.delete(handler);
|
|
117
|
+
},
|
|
118
|
+
onOpen: (handler) => {
|
|
119
|
+
openHandlers.add(handler);
|
|
120
|
+
if (opened) {
|
|
121
|
+
invokeHandler(handler);
|
|
122
|
+
}
|
|
123
|
+
return () => openHandlers.delete(handler);
|
|
124
|
+
},
|
|
125
|
+
onClose: (handler) => {
|
|
126
|
+
closeHandlers.add(handler);
|
|
127
|
+
if (closed) {
|
|
128
|
+
invokeHandler(handler);
|
|
129
|
+
}
|
|
130
|
+
return () => closeHandlers.delete(handler);
|
|
131
|
+
},
|
|
132
|
+
onError: (handler) => {
|
|
133
|
+
errorHandlers.add(handler);
|
|
134
|
+
return () => errorHandlers.delete(handler);
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
function emitHandlers(handlers, ...args) {
|
|
139
|
+
for (const handler of handlers) {
|
|
140
|
+
invokeHandler(handler, ...args);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function invokeHandler(handler, ...args) {
|
|
144
|
+
try {
|
|
145
|
+
handler(...args);
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
// no-op
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
function normalizeTransportError(error) {
|
|
152
|
+
if (error instanceof Error) {
|
|
153
|
+
return {
|
|
154
|
+
name: error.name,
|
|
155
|
+
message: error.message,
|
|
156
|
+
...(typeof error.stack === "string" ? { stack: error.stack } : {}),
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
return { message: String(error) };
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=daemon-client-relay-e2ee-transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-client-relay-e2ee-transport.js","sourceRoot":"","sources":["../../../src/client/daemon-client-relay-e2ee-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export type TerminalStreamChunk = {
|
|
2
|
+
streamId: number;
|
|
3
|
+
offset: number;
|
|
4
|
+
endOffset: number;
|
|
5
|
+
replay: boolean;
|
|
6
|
+
data: Uint8Array;
|
|
7
|
+
};
|
|
8
|
+
type TerminalChunkHandler = (chunk: TerminalStreamChunk) => void;
|
|
9
|
+
type TerminalStreamAck = {
|
|
10
|
+
streamId: number;
|
|
11
|
+
offset: number;
|
|
12
|
+
};
|
|
13
|
+
export type TerminalStreamManagerConfig = {
|
|
14
|
+
sendAck: (ack: TerminalStreamAck) => void;
|
|
15
|
+
maxBufferedChunks?: number;
|
|
16
|
+
maxBufferedBytes?: number;
|
|
17
|
+
};
|
|
18
|
+
export declare class TerminalStreamManager {
|
|
19
|
+
private readonly config;
|
|
20
|
+
private readonly handlers;
|
|
21
|
+
private readonly bufferedChunks;
|
|
22
|
+
private readonly ackOffsets;
|
|
23
|
+
private readonly maxBufferedChunks;
|
|
24
|
+
private readonly maxBufferedBytes;
|
|
25
|
+
constructor(config: TerminalStreamManagerConfig);
|
|
26
|
+
clearAll(): void;
|
|
27
|
+
clearStream(input: {
|
|
28
|
+
streamId: number;
|
|
29
|
+
}): void;
|
|
30
|
+
subscribe(input: {
|
|
31
|
+
streamId: number;
|
|
32
|
+
handler: TerminalChunkHandler;
|
|
33
|
+
}): () => void;
|
|
34
|
+
receiveChunk(input: {
|
|
35
|
+
chunk: TerminalStreamChunk;
|
|
36
|
+
}): void;
|
|
37
|
+
noteAck(input: TerminalStreamAck): void;
|
|
38
|
+
private flushBufferedChunks;
|
|
39
|
+
private bufferChunk;
|
|
40
|
+
private maybeAckChunk;
|
|
41
|
+
}
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=daemon-client-terminal-stream-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-client-terminal-stream-manager.d.ts","sourceRoot":"","sources":["../../../src/client/daemon-client-terminal-stream-manager.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;CAClB,CAAC;AAEF,KAAK,oBAAoB,GAAG,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;AAOjE,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,OAAO,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAKF,qBAAa,qBAAqB;IAOpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqD;IAC9E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuD;IACtF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAC7D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAEb,MAAM,EAAE,2BAA2B;IAOhE,QAAQ,IAAI,IAAI;IAMhB,WAAW,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAM9C,SAAS,CAAC,KAAK,EAAE;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,oBAAoB,CAAC;KAC/B,GAAG,MAAM,IAAI;IAkBd,YAAY,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,mBAAmB,CAAA;KAAE,GAAG,IAAI;IA6BzD,OAAO,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAQvC,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,WAAW;IA0BnB,OAAO,CAAC,aAAa;CAqBtB"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
const DEFAULT_MAX_BUFFERED_CHUNKS = 2048;
|
|
2
|
+
const DEFAULT_MAX_BUFFERED_BYTES = 2 * 1024 * 1024;
|
|
3
|
+
export class TerminalStreamManager {
|
|
4
|
+
constructor(config) {
|
|
5
|
+
this.config = config;
|
|
6
|
+
this.handlers = new Map();
|
|
7
|
+
this.bufferedChunks = new Map();
|
|
8
|
+
this.ackOffsets = new Map();
|
|
9
|
+
this.maxBufferedChunks =
|
|
10
|
+
config.maxBufferedChunks ?? DEFAULT_MAX_BUFFERED_CHUNKS;
|
|
11
|
+
this.maxBufferedBytes =
|
|
12
|
+
config.maxBufferedBytes ?? DEFAULT_MAX_BUFFERED_BYTES;
|
|
13
|
+
}
|
|
14
|
+
clearAll() {
|
|
15
|
+
this.handlers.clear();
|
|
16
|
+
this.bufferedChunks.clear();
|
|
17
|
+
this.ackOffsets.clear();
|
|
18
|
+
}
|
|
19
|
+
clearStream(input) {
|
|
20
|
+
this.handlers.delete(input.streamId);
|
|
21
|
+
this.bufferedChunks.delete(input.streamId);
|
|
22
|
+
this.ackOffsets.delete(input.streamId);
|
|
23
|
+
}
|
|
24
|
+
subscribe(input) {
|
|
25
|
+
const { streamId, handler } = input;
|
|
26
|
+
if (!this.handlers.has(streamId)) {
|
|
27
|
+
this.handlers.set(streamId, new Set());
|
|
28
|
+
}
|
|
29
|
+
const streamHandlers = this.handlers.get(streamId);
|
|
30
|
+
streamHandlers.add(handler);
|
|
31
|
+
this.flushBufferedChunks({ streamId, handler });
|
|
32
|
+
return () => {
|
|
33
|
+
streamHandlers.delete(handler);
|
|
34
|
+
if (streamHandlers.size === 0) {
|
|
35
|
+
this.handlers.delete(streamId);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
receiveChunk(input) {
|
|
40
|
+
const { chunk } = input;
|
|
41
|
+
const streamHandlers = this.handlers.get(chunk.streamId);
|
|
42
|
+
if (!streamHandlers || streamHandlers.size === 0) {
|
|
43
|
+
this.bufferChunk({ chunk });
|
|
44
|
+
this.maybeAckChunk({
|
|
45
|
+
streamId: chunk.streamId,
|
|
46
|
+
endOffset: chunk.endOffset,
|
|
47
|
+
});
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
let delivered = false;
|
|
51
|
+
for (const handler of streamHandlers) {
|
|
52
|
+
try {
|
|
53
|
+
handler(chunk);
|
|
54
|
+
delivered = true;
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
// no-op
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (delivered) {
|
|
61
|
+
this.maybeAckChunk({
|
|
62
|
+
streamId: chunk.streamId,
|
|
63
|
+
endOffset: chunk.endOffset,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
noteAck(input) {
|
|
68
|
+
const normalizedOffset = Math.max(0, Math.floor(input.offset));
|
|
69
|
+
const previousAck = this.ackOffsets.get(input.streamId) ?? -1;
|
|
70
|
+
if (normalizedOffset > previousAck) {
|
|
71
|
+
this.ackOffsets.set(input.streamId, normalizedOffset);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
flushBufferedChunks(input) {
|
|
75
|
+
const buffered = this.bufferedChunks.get(input.streamId);
|
|
76
|
+
if (!buffered || buffered.chunks.length === 0) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
for (const chunk of buffered.chunks) {
|
|
80
|
+
try {
|
|
81
|
+
input.handler(chunk);
|
|
82
|
+
this.maybeAckChunk({
|
|
83
|
+
streamId: input.streamId,
|
|
84
|
+
endOffset: chunk.endOffset,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
// no-op
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
this.bufferedChunks.delete(input.streamId);
|
|
92
|
+
}
|
|
93
|
+
bufferChunk(input) {
|
|
94
|
+
const queue = this.bufferedChunks.get(input.chunk.streamId) ?? {
|
|
95
|
+
chunks: [],
|
|
96
|
+
bytes: 0,
|
|
97
|
+
};
|
|
98
|
+
queue.chunks.push(input.chunk);
|
|
99
|
+
queue.bytes += input.chunk.data.byteLength;
|
|
100
|
+
while (queue.chunks.length > this.maxBufferedChunks ||
|
|
101
|
+
queue.bytes > this.maxBufferedBytes) {
|
|
102
|
+
const removed = queue.chunks.shift();
|
|
103
|
+
if (!removed) {
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
queue.bytes -= removed.data.byteLength;
|
|
107
|
+
if (queue.bytes < 0) {
|
|
108
|
+
queue.bytes = 0;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
this.bufferedChunks.set(input.chunk.streamId, queue);
|
|
112
|
+
}
|
|
113
|
+
maybeAckChunk(input) {
|
|
114
|
+
if (!Number.isFinite(input.endOffset) || input.endOffset < 0) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
const normalizedEndOffset = Math.floor(input.endOffset);
|
|
118
|
+
const previousAck = this.ackOffsets.get(input.streamId) ?? -1;
|
|
119
|
+
if (normalizedEndOffset <= previousAck) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
this.ackOffsets.set(input.streamId, normalizedEndOffset);
|
|
123
|
+
try {
|
|
124
|
+
this.config.sendAck({
|
|
125
|
+
streamId: input.streamId,
|
|
126
|
+
offset: normalizedEndOffset,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
// no-op
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=daemon-client-terminal-stream-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-client-terminal-stream-manager.js","sourceRoot":"","sources":["../../../src/client/daemon-client-terminal-stream-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export type DaemonTransport = {
|
|
2
|
+
send: (data: string | Uint8Array | ArrayBuffer) => void;
|
|
3
|
+
close: (code?: number, reason?: string) => void;
|
|
4
|
+
onMessage: (handler: (data: unknown) => void) => () => void;
|
|
5
|
+
onOpen: (handler: () => void) => () => void;
|
|
6
|
+
onClose: (handler: (event?: unknown) => void) => () => void;
|
|
7
|
+
onError: (handler: (event?: unknown) => void) => () => void;
|
|
8
|
+
};
|
|
9
|
+
export type DaemonTransportFactory = (options: {
|
|
10
|
+
url: string;
|
|
11
|
+
headers?: Record<string, string>;
|
|
12
|
+
}) => DaemonTransport;
|
|
13
|
+
export type WebSocketFactory = (url: string, options?: {
|
|
14
|
+
headers?: Record<string, string>;
|
|
15
|
+
}) => WebSocketLike;
|
|
16
|
+
export type WebSocketLike = {
|
|
17
|
+
readyState: number;
|
|
18
|
+
send: (data: string | Uint8Array | ArrayBuffer) => void;
|
|
19
|
+
close: (code?: number, reason?: string) => void;
|
|
20
|
+
binaryType?: string;
|
|
21
|
+
on?: (event: string, listener: (...args: any[]) => void) => void;
|
|
22
|
+
off?: (event: string, listener: (...args: any[]) => void) => void;
|
|
23
|
+
removeListener?: (event: string, listener: (...args: any[]) => void) => void;
|
|
24
|
+
addEventListener?: (event: string, listener: (event: any) => void) => void;
|
|
25
|
+
removeEventListener?: (event: string, listener: (event: any) => void) => void;
|
|
26
|
+
onopen?: ((event: any) => void) | null;
|
|
27
|
+
onclose?: ((event: any) => void) | null;
|
|
28
|
+
onerror?: ((event: any) => void) | null;
|
|
29
|
+
onmessage?: ((event: any) => void) | null;
|
|
30
|
+
};
|
|
31
|
+
export interface TransportLogger {
|
|
32
|
+
warn(obj: object, msg?: string): void;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=daemon-client-transport-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-client-transport-types.d.ts","sourceRoot":"","sources":["../../../src/client/daemon-client-transport-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,KAAK,IAAI,CAAC;IACxD,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IAC5D,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IAC5C,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IAC5D,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;CAC7D,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,KAAK,eAAe,CAAC;AAEtB,MAAM,MAAM,gBAAgB,GAAG,CAC7B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,KAC3C,aAAa,CAAC;AAEnB,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,KAAK,IAAI,CAAC;IACxD,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;IACjE,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;IAClE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;IAC7E,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,CAAC;IAC3E,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,CAAC;IAC9E,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IACxC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;CAC3C,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-client-transport-types.js","sourceRoot":"","sources":["../../../src/client/daemon-client-transport-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function copyArrayBufferViewToBuffer(data: ArrayBufferView): ArrayBuffer;
|
|
2
|
+
export declare function normalizeTransportPayload(data: string | Uint8Array | ArrayBuffer): string | ArrayBuffer;
|
|
3
|
+
export declare function extractRelayMessageData(event: unknown): string | ArrayBuffer;
|
|
4
|
+
export declare function describeTransportClose(event?: unknown): string;
|
|
5
|
+
export declare function describeTransportError(event?: unknown): string;
|
|
6
|
+
export declare function safeRandomId(): string;
|
|
7
|
+
export declare function decodeMessageData(data: unknown): string | null;
|
|
8
|
+
export declare function encodeUtf8String(value: string): Uint8Array;
|
|
9
|
+
//# sourceMappingURL=daemon-client-transport-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-client-transport-utils.d.ts","sourceRoot":"","sources":["../../../src/client/daemon-client-transport-utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CAK9E;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GACtC,MAAM,GAAG,WAAW,CAKtB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,WAAW,CAW5E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAuB9D;AAED,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAiB9D;AAED,wBAAgB,YAAY,IAAI,MAAM,CASrC;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CA4B9D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAY1D"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
export function copyArrayBufferViewToBuffer(data) {
|
|
2
|
+
const view = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
|
|
3
|
+
const out = new Uint8Array(view.byteLength);
|
|
4
|
+
out.set(view);
|
|
5
|
+
return out.buffer;
|
|
6
|
+
}
|
|
7
|
+
export function normalizeTransportPayload(data) {
|
|
8
|
+
if (typeof data === "string" || data instanceof ArrayBuffer) {
|
|
9
|
+
return data;
|
|
10
|
+
}
|
|
11
|
+
return copyArrayBufferViewToBuffer(data);
|
|
12
|
+
}
|
|
13
|
+
export function extractRelayMessageData(event) {
|
|
14
|
+
const raw = event && typeof event === "object" && "data" in event
|
|
15
|
+
? event.data
|
|
16
|
+
: event;
|
|
17
|
+
if (typeof raw === "string")
|
|
18
|
+
return raw;
|
|
19
|
+
if (raw instanceof ArrayBuffer)
|
|
20
|
+
return raw;
|
|
21
|
+
if (ArrayBuffer.isView(raw)) {
|
|
22
|
+
return copyArrayBufferViewToBuffer(raw);
|
|
23
|
+
}
|
|
24
|
+
return String(raw ?? "");
|
|
25
|
+
}
|
|
26
|
+
export function describeTransportClose(event) {
|
|
27
|
+
if (!event) {
|
|
28
|
+
return "Transport closed";
|
|
29
|
+
}
|
|
30
|
+
if (event instanceof Error) {
|
|
31
|
+
return event.message;
|
|
32
|
+
}
|
|
33
|
+
if (typeof event === "string") {
|
|
34
|
+
return event;
|
|
35
|
+
}
|
|
36
|
+
if (typeof event === "object") {
|
|
37
|
+
const record = event;
|
|
38
|
+
if (typeof record.reason === "string" && record.reason.trim().length > 0) {
|
|
39
|
+
return record.reason.trim();
|
|
40
|
+
}
|
|
41
|
+
if (typeof record.message === "string" && record.message.trim().length > 0) {
|
|
42
|
+
return record.message.trim();
|
|
43
|
+
}
|
|
44
|
+
if (typeof record.code === "number") {
|
|
45
|
+
return `Transport closed (code ${record.code})`;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return "Transport closed";
|
|
49
|
+
}
|
|
50
|
+
export function describeTransportError(event) {
|
|
51
|
+
if (!event) {
|
|
52
|
+
return "Transport error";
|
|
53
|
+
}
|
|
54
|
+
if (event instanceof Error) {
|
|
55
|
+
return event.message;
|
|
56
|
+
}
|
|
57
|
+
if (typeof event === "string") {
|
|
58
|
+
return event;
|
|
59
|
+
}
|
|
60
|
+
if (typeof event === "object") {
|
|
61
|
+
const record = event;
|
|
62
|
+
if (typeof record.message === "string" && record.message.trim().length > 0) {
|
|
63
|
+
return record.message.trim();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return "Transport error";
|
|
67
|
+
}
|
|
68
|
+
export function safeRandomId() {
|
|
69
|
+
try {
|
|
70
|
+
if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
|
|
71
|
+
return crypto.randomUUID();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
// ignore
|
|
76
|
+
}
|
|
77
|
+
return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
|
|
78
|
+
}
|
|
79
|
+
export function decodeMessageData(data) {
|
|
80
|
+
if (data === null || data === undefined) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
if (typeof data === "string") {
|
|
84
|
+
return data;
|
|
85
|
+
}
|
|
86
|
+
if (typeof ArrayBuffer !== "undefined" && data instanceof ArrayBuffer) {
|
|
87
|
+
if (typeof Buffer !== "undefined") {
|
|
88
|
+
return Buffer.from(data).toString("utf8");
|
|
89
|
+
}
|
|
90
|
+
if (typeof TextDecoder !== "undefined") {
|
|
91
|
+
return new TextDecoder().decode(data);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (ArrayBuffer.isView(data)) {
|
|
95
|
+
const view = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
|
|
96
|
+
if (typeof Buffer !== "undefined") {
|
|
97
|
+
return Buffer.from(view).toString("utf8");
|
|
98
|
+
}
|
|
99
|
+
if (typeof TextDecoder !== "undefined") {
|
|
100
|
+
return new TextDecoder().decode(view);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (typeof data.toString === "function") {
|
|
104
|
+
return data.toString();
|
|
105
|
+
}
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
export function encodeUtf8String(value) {
|
|
109
|
+
if (typeof TextEncoder !== "undefined") {
|
|
110
|
+
return new TextEncoder().encode(value);
|
|
111
|
+
}
|
|
112
|
+
if (typeof Buffer !== "undefined") {
|
|
113
|
+
return new Uint8Array(Buffer.from(value, "utf8"));
|
|
114
|
+
}
|
|
115
|
+
const out = new Uint8Array(value.length);
|
|
116
|
+
for (let i = 0; i < value.length; i++) {
|
|
117
|
+
out[i] = value.charCodeAt(i) & 0xff;
|
|
118
|
+
}
|
|
119
|
+
return out;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=daemon-client-transport-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-client-transport-utils.js","sourceRoot":"","sources":["../../../src/client/daemon-client-transport-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type { DaemonTransport, DaemonTransportFactory, TransportLogger, WebSocketFactory, WebSocketLike, } from "./daemon-client-transport-types.js";
|
|
2
|
+
export { decodeMessageData, describeTransportClose, describeTransportError, encodeUtf8String, extractRelayMessageData, normalizeTransportPayload, safeRandomId, } from "./daemon-client-transport-utils.js";
|
|
3
|
+
export { createEncryptedTransport, createRelayE2eeTransportFactory, } from "./daemon-client-relay-e2ee-transport.js";
|
|
4
|
+
export { bindWsHandler, createWebSocketTransportFactory, defaultWebSocketFactory, } from "./daemon-client-websocket-transport.js";
|
|
5
|
+
//# sourceMappingURL=daemon-client-transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-client-transport.d.ts","sourceRoot":"","sources":["../../../src/client/daemon-client-transport.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,aAAa,GACd,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,EACzB,YAAY,GACb,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,aAAa,EACb,+BAA+B,EAC/B,uBAAuB,GACxB,MAAM,wCAAwC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { decodeMessageData, describeTransportClose, describeTransportError, encodeUtf8String, extractRelayMessageData, normalizeTransportPayload, safeRandomId, } from "./daemon-client-transport-utils.js";
|
|
2
|
+
export { createEncryptedTransport, createRelayE2eeTransportFactory, } from "./daemon-client-relay-e2ee-transport.js";
|
|
3
|
+
export { bindWsHandler, createWebSocketTransportFactory, defaultWebSocketFactory, } from "./daemon-client-websocket-transport.js";
|
|
4
|
+
//# sourceMappingURL=daemon-client-transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-client-transport.js","sourceRoot":"","sources":["../../../src/client/daemon-client-transport.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,EACzB,YAAY,GACb,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,aAAa,EACb,+BAA+B,EAC/B,uBAAuB,GACxB,MAAM,wCAAwC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DaemonTransportFactory, WebSocketFactory, WebSocketLike } from "./daemon-client-transport-types.js";
|
|
2
|
+
export declare function defaultWebSocketFactory(url: string, _options?: {
|
|
3
|
+
headers?: Record<string, string>;
|
|
4
|
+
}): WebSocketLike;
|
|
5
|
+
export declare function createWebSocketTransportFactory(factory: WebSocketFactory): DaemonTransportFactory;
|
|
6
|
+
export declare function bindWsHandler(ws: WebSocketLike, event: "open" | "close" | "error" | "message", handler: (...args: any[]) => void): () => void;
|
|
7
|
+
//# sourceMappingURL=daemon-client-websocket-transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-client-websocket-transport.d.ts","sourceRoot":"","sources":["../../../src/client/daemon-client-websocket-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACd,MAAM,oCAAoC,CAAC;AAE5C,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC9C,aAAa,CAMf;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,gBAAgB,GACxB,sBAAsB,CAwBxB;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,aAAa,EACjB,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,EAC7C,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAChC,MAAM,IAAI,CA6BZ"}
|