modality-kit 0.9.4 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js
CHANGED
|
@@ -147,28 +147,35 @@ class ModalityLogger {
|
|
|
147
147
|
case "debug":
|
|
148
148
|
console.debug(payload);
|
|
149
149
|
break;
|
|
150
|
-
case "info":
|
|
151
|
-
|
|
152
|
-
console.
|
|
150
|
+
case "info": {
|
|
151
|
+
const { message, ...restPayload } = payload;
|
|
152
|
+
console.info(message);
|
|
153
|
+
console.dir(restPayload, {
|
|
153
154
|
depth: null,
|
|
154
155
|
colors: true,
|
|
155
156
|
maxArrayLength: null
|
|
156
157
|
});
|
|
157
158
|
break;
|
|
158
|
-
|
|
159
|
+
}
|
|
160
|
+
case "warn": {
|
|
161
|
+
const { message, ...restPayload } = payload;
|
|
159
162
|
console.warn(payload);
|
|
160
|
-
console.
|
|
161
|
-
|
|
163
|
+
console.dir(restPayload, {
|
|
164
|
+
depth: null,
|
|
165
|
+
colors: true,
|
|
166
|
+
maxArrayLength: null
|
|
167
|
+
});
|
|
162
168
|
break;
|
|
163
|
-
|
|
169
|
+
}
|
|
170
|
+
case "error": {
|
|
164
171
|
const error = payload.error;
|
|
165
172
|
if (error instanceof Error || error.stack) {
|
|
166
173
|
delete payload.error;
|
|
167
174
|
const { message, stack, ...restError } = error;
|
|
168
175
|
if (stack) {
|
|
169
176
|
if (Object.keys(restError).length) {
|
|
170
|
-
console.error(restError
|
|
171
|
-
|
|
177
|
+
console.error(restError);
|
|
178
|
+
console.log(stack);
|
|
172
179
|
} else {
|
|
173
180
|
console.error(stack);
|
|
174
181
|
}
|
|
@@ -182,6 +189,7 @@ class ModalityLogger {
|
|
|
182
189
|
console.error(payload);
|
|
183
190
|
}
|
|
184
191
|
break;
|
|
192
|
+
}
|
|
185
193
|
case "success":
|
|
186
194
|
console.log(payload);
|
|
187
195
|
break;
|
|
@@ -5651,6 +5659,8 @@ var logger3 = getLoggerInstance("WebSocket-Client");
|
|
|
5651
5659
|
|
|
5652
5660
|
class WebSocketClient {
|
|
5653
5661
|
ws = null;
|
|
5662
|
+
wsStream = null;
|
|
5663
|
+
streamWriter = null;
|
|
5654
5664
|
url;
|
|
5655
5665
|
config = {
|
|
5656
5666
|
initialReconnectDelay: 1000,
|
|
@@ -5734,24 +5744,60 @@ class WebSocketClient {
|
|
|
5734
5744
|
const url = new URL(this.url);
|
|
5735
5745
|
return url.searchParams.get("clientId") ?? (this.connectionId ? String(this.connectionId) : "");
|
|
5736
5746
|
}
|
|
5737
|
-
|
|
5738
|
-
if (
|
|
5747
|
+
async initializeWebSocketStream() {
|
|
5748
|
+
if (typeof WebSocketStream === "undefined") {
|
|
5749
|
+
logger3.warn("WebSocketStream not supported in this environment");
|
|
5750
|
+
return false;
|
|
5751
|
+
}
|
|
5752
|
+
try {
|
|
5753
|
+
this.wsStream = new WebSocketStream(this.url);
|
|
5754
|
+
const { writable } = await this.wsStream.opened;
|
|
5755
|
+
this.streamWriter = writable.getWriter();
|
|
5756
|
+
logger3.info("WebSocketStream initialized successfully");
|
|
5757
|
+
return true;
|
|
5758
|
+
} catch (error) {
|
|
5759
|
+
logger3.error("Failed to initialize WebSocketStream:", error);
|
|
5760
|
+
this.wsStream = null;
|
|
5761
|
+
this.streamWriter = null;
|
|
5762
|
+
return false;
|
|
5763
|
+
}
|
|
5764
|
+
}
|
|
5765
|
+
async send(data, useStream = false) {
|
|
5766
|
+
const message = JSON.stringify({
|
|
5767
|
+
...data,
|
|
5768
|
+
jsonrpc: "2.0",
|
|
5769
|
+
timestamp: new Date().toISOString()
|
|
5770
|
+
});
|
|
5771
|
+
if (useStream) {
|
|
5772
|
+
if (!this.streamWriter) {
|
|
5773
|
+
const streamInitialized = await this.initializeWebSocketStream();
|
|
5774
|
+
if (!streamInitialized) {
|
|
5775
|
+
logger3.warn("WebSocketStream not available, cannot send with streaming");
|
|
5776
|
+
return false;
|
|
5777
|
+
}
|
|
5778
|
+
}
|
|
5739
5779
|
try {
|
|
5740
|
-
|
|
5741
|
-
|
|
5742
|
-
jsonrpc: "2.0",
|
|
5743
|
-
timestamp: new Date().toISOString()
|
|
5744
|
-
});
|
|
5745
|
-
this.ws.send(message);
|
|
5746
|
-
logger3.info("Message sent:", message);
|
|
5780
|
+
await this.streamWriter.write(message);
|
|
5781
|
+
logger3.info("Message sent via WebSocketStream:", message);
|
|
5747
5782
|
return true;
|
|
5748
5783
|
} catch (error) {
|
|
5749
|
-
logger3.error("Error sending
|
|
5784
|
+
logger3.error("Error sending via WebSocketStream:", error);
|
|
5750
5785
|
return false;
|
|
5751
5786
|
}
|
|
5752
5787
|
} else {
|
|
5753
|
-
|
|
5754
|
-
|
|
5788
|
+
if (this.ws && this.ws.readyState === WebSocket.OPEN) {
|
|
5789
|
+
try {
|
|
5790
|
+
this.ws.send(message);
|
|
5791
|
+
logger3.info("Message sent:", message);
|
|
5792
|
+
return true;
|
|
5793
|
+
} catch (error) {
|
|
5794
|
+
logger3.error("Error sending message:", error);
|
|
5795
|
+
return false;
|
|
5796
|
+
}
|
|
5797
|
+
} else {
|
|
5798
|
+
logger3.warn("WebSocket is not connected during send operation.");
|
|
5799
|
+
return false;
|
|
5800
|
+
}
|
|
5755
5801
|
}
|
|
5756
5802
|
}
|
|
5757
5803
|
isConnected() {
|
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
import type { JSONRPCValidationResult } from "./schemas/jsonrpc";
|
|
2
|
+
declare global {
|
|
3
|
+
interface WebSocketStream {
|
|
4
|
+
readonly opened: Promise<{
|
|
5
|
+
readable: ReadableStream;
|
|
6
|
+
writable: WritableStream;
|
|
7
|
+
}>;
|
|
8
|
+
readonly closed: Promise<void>;
|
|
9
|
+
close(code?: number, reason?: string): void;
|
|
10
|
+
}
|
|
11
|
+
const WebSocketStream: {
|
|
12
|
+
new (url: string): WebSocketStream;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
2
15
|
interface WebSocketConfig {
|
|
3
16
|
maxReconnectAttempts: number;
|
|
4
17
|
initialReconnectDelay: number;
|
|
@@ -18,6 +31,8 @@ interface WebSocketInfo {
|
|
|
18
31
|
}
|
|
19
32
|
export declare class WebSocketClient {
|
|
20
33
|
private ws;
|
|
34
|
+
private wsStream;
|
|
35
|
+
private streamWriter;
|
|
21
36
|
private url;
|
|
22
37
|
private config;
|
|
23
38
|
private connectionId;
|
|
@@ -35,7 +50,8 @@ export declare class WebSocketClient {
|
|
|
35
50
|
private onOpen;
|
|
36
51
|
private onClose;
|
|
37
52
|
private getClientId;
|
|
38
|
-
|
|
53
|
+
private initializeWebSocketStream;
|
|
54
|
+
send(data: any, useStream?: boolean): Promise<boolean>;
|
|
39
55
|
isConnected(): boolean;
|
|
40
56
|
getInfo(): WebSocketInfo;
|
|
41
57
|
/**
|
package/package.json
CHANGED