@eka-care/medassist-core 1.0.65 → 1.0.66
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/Synapse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Synapse.d.ts","sourceRoot":"","sources":["../src/Synapse.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH,OAAO,EACL,uBAAuB,EAExB,MAAM,kBAAkB,CAAC;AAuB1B,OAAO,EACL,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,kBAAkB,EAA2C,gBAAgB,EAAiB,aAAa,EAAE,MAAM,SAAS,CAAC;AACxL,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKhD,qBAAa,UAAU;IACrB,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"Synapse.d.ts","sourceRoot":"","sources":["../src/Synapse.ts"],"names":[],"mappings":"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"}
|
package/dist/Synapse.js
CHANGED
|
@@ -43,6 +43,7 @@ class SynapseSDK {
|
|
|
43
43
|
...(this.config.auth && { authorization: this.config.auth }),
|
|
44
44
|
...(this.config.authToken && { authToken: this.config.authToken }),
|
|
45
45
|
});
|
|
46
|
+
this.messageManager = new MessageManager_1.MessageManager(this.config?.callbacks);
|
|
46
47
|
}
|
|
47
48
|
/**
|
|
48
49
|
* Start the session
|
|
@@ -78,14 +79,6 @@ class SynapseSDK {
|
|
|
78
79
|
* Send a message conetnt will be text always
|
|
79
80
|
*/
|
|
80
81
|
async sendMessage({ message, files, audio, tool_declined, tool_id, initial_prompts, tool_result }) {
|
|
81
|
-
if (!this.connection) {
|
|
82
|
-
const error = new Error_2.ConnectionError("Connection not established. Session may not be initialized.", {
|
|
83
|
-
context: { stage: "sendChatMessage" },
|
|
84
|
-
hint: "Call startSession() and wait for connection before sending messages.",
|
|
85
|
-
});
|
|
86
|
-
this.emitError(error);
|
|
87
|
-
throw error;
|
|
88
|
-
}
|
|
89
82
|
switch (this.connectionType) {
|
|
90
83
|
case ConnectionFactory_1.ConnectionType.SOCKET:
|
|
91
84
|
case ConnectionFactory_1.ConnectionType.SSE:
|
|
@@ -216,14 +209,6 @@ class SynapseSDK {
|
|
|
216
209
|
* Send audio
|
|
217
210
|
* */
|
|
218
211
|
async startRecording({ onChunks, onError, }) {
|
|
219
|
-
if (!this.connection) {
|
|
220
|
-
const error = new Error_2.ConnectionError("Connection not established. Session may not be initialized.", {
|
|
221
|
-
context: { stage: "sendAudio" },
|
|
222
|
-
hint: "Call startSession() before attempting to send audio.",
|
|
223
|
-
});
|
|
224
|
-
this.emitError(error);
|
|
225
|
-
throw error;
|
|
226
|
-
}
|
|
227
212
|
switch (this.connectionType) {
|
|
228
213
|
case ConnectionFactory_1.ConnectionType.SOCKET:
|
|
229
214
|
case ConnectionFactory_1.ConnectionType.SSE:
|
|
@@ -249,14 +234,6 @@ class SynapseSDK {
|
|
|
249
234
|
* Stop recording audio
|
|
250
235
|
*/
|
|
251
236
|
endRecording() {
|
|
252
|
-
if (!this.connection) {
|
|
253
|
-
const error = new Error_2.ConnectionError("Connection not established. Session may not be initialized.", {
|
|
254
|
-
context: { stage: "endRecording" },
|
|
255
|
-
hint: "Call startRecording() before attempting to stop recording.",
|
|
256
|
-
});
|
|
257
|
-
this.emitError(error);
|
|
258
|
-
throw error;
|
|
259
|
-
}
|
|
260
237
|
switch (this.connectionType) {
|
|
261
238
|
case ConnectionFactory_1.ConnectionType.SOCKET:
|
|
262
239
|
case ConnectionFactory_1.ConnectionType.SSE:
|
|
@@ -377,7 +354,7 @@ class SynapseSDK {
|
|
|
377
354
|
overrides: this.config.overrides,
|
|
378
355
|
});
|
|
379
356
|
this.connectionAttempts++;
|
|
380
|
-
this.messageManager
|
|
357
|
+
this.messageManager.setConnection(this.connection);
|
|
381
358
|
// Bridge all connection events to the persistent SDK-level emitter so that
|
|
382
359
|
// widget listeners registered via .on() survive internal reconnections.
|
|
383
360
|
const originalEmit = this.connection.emit.bind(this.connection);
|
|
@@ -9,7 +9,9 @@ export declare class MessageManager {
|
|
|
9
9
|
private callbacks;
|
|
10
10
|
private fileManager;
|
|
11
11
|
private audioManager;
|
|
12
|
-
|
|
12
|
+
private outgoingBuffer;
|
|
13
|
+
constructor(callbacks?: SynapseSDKCallbacks);
|
|
14
|
+
setConnection(connection: BaseConnection): void;
|
|
13
15
|
/**
|
|
14
16
|
* Handle file upload process
|
|
15
17
|
*/
|
|
@@ -59,6 +61,7 @@ export declare class MessageManager {
|
|
|
59
61
|
*/
|
|
60
62
|
sendSocketPongMessage(): void;
|
|
61
63
|
handleConnectionEstablished(): void;
|
|
64
|
+
private flushOutgoingBuffer;
|
|
62
65
|
/**
|
|
63
66
|
* Cleanup message service
|
|
64
67
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageManager.d.ts","sourceRoot":"","sources":["../../src/messages/MessageManager.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,gCAAgC,EACtC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAEvE,OAAO,EAEL,KAAK,qBAAqB,EAI3B,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAS1D,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"MessageManager.d.ts","sourceRoot":"","sources":["../../src/messages/MessageManager.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,gCAAgC,EACtC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAEvE,OAAO,EAEL,KAAK,qBAAqB,EAI3B,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAS1D,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAGpD,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,cAAc,CAAwB;gBAElC,SAAS,CAAC,EAAE,mBAAmB;IAIpC,aAAa,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI;IAGtD;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAuD/B;;OAEG;IACI,iBAAiB,CAAC,EACvB,OAAO,EACP,KAAK,EACL,KAAK,EACL,IAAI,EACJ,aAAa,EACb,OAAO,EACP,WAAW,EACX,eAAe,EAChB,EAAE,qBAAqB,GAAG,IAAI;IAmF/B;;OAEG;IACI,+BAA+B,CACpC,OAAO,EAAE,yBAAyB,GACjC,IAAI;IA8EP;;OAEG;IACI,iCAAiC,CACtC,OAAO,EAAE,2BAA2B,GACnC,IAAI;IAoFA,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAI5D;;OAEG;IACI,sCAAsC,CAC3C,QAAQ,EAAE,gCAAgC,GACzC,IAAI;IAOP;;OAEG;IACI,gCAAgC,CACrC,OAAO,EAAE,0BAA0B,GAClC,IAAI;IAwBP;;OAEG;IACI,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAWxD;;OAEG;IACI,qBAAqB,IAAI,IAAI;IAUpC;;OAEG;IACU,cAAc,CAAC,EAC1B,QAAQ,EACR,OAAO,GACR,EAAE;QACD,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;QAC1C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;KAClC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCjB;;OAEG;IACI,sBAAsB,IAAI,IAAI;IAsBrC;;OAEG;IACI,qBAAqB,IAAI,IAAI;IAU7B,2BAA2B,IAAI,IAAI;IAM1C,OAAO,CAAC,mBAAmB;IAO3B;;OAEG;IACI,yBAAyB,IAAI,IAAI;IAoBxC,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,gBAAgB;CAsCzB"}
|
|
@@ -11,10 +11,13 @@ class MessageManager {
|
|
|
11
11
|
callbacks = null;
|
|
12
12
|
fileManager = null;
|
|
13
13
|
audioManager = null;
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
outgoingBuffer = null;
|
|
15
|
+
constructor(callbacks) {
|
|
16
16
|
this.callbacks = callbacks || null;
|
|
17
17
|
}
|
|
18
|
+
setConnection(connection) {
|
|
19
|
+
this.connection = connection;
|
|
20
|
+
}
|
|
18
21
|
/**
|
|
19
22
|
* Handle file upload process
|
|
20
23
|
*/
|
|
@@ -64,7 +67,20 @@ class MessageManager {
|
|
|
64
67
|
* send chat message through socket
|
|
65
68
|
*/
|
|
66
69
|
sendSocketMessage({ message, files, audio, urls, tool_declined, tool_id, tool_result, initial_prompts }) {
|
|
67
|
-
|
|
70
|
+
if (!this.connection?.isConnected()) {
|
|
71
|
+
this.outgoingBuffer = {
|
|
72
|
+
...(message !== undefined && { message }),
|
|
73
|
+
...(files && { files }),
|
|
74
|
+
...(audio && { audio }),
|
|
75
|
+
...(urls && { urls }),
|
|
76
|
+
...(tool_declined && { tool_declined }),
|
|
77
|
+
...(tool_id && { tool_id }),
|
|
78
|
+
...(tool_result && { tool_result }),
|
|
79
|
+
...(initial_prompts && { initial_prompts }),
|
|
80
|
+
};
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const connection = this.connection;
|
|
68
84
|
let outMessage;
|
|
69
85
|
if ((files && files.length > 0) || (urls && urls.length > 0)) {
|
|
70
86
|
if (files && files.length > 3) {
|
|
@@ -355,7 +371,6 @@ class MessageManager {
|
|
|
355
371
|
this.emitError(error);
|
|
356
372
|
throw error;
|
|
357
373
|
}
|
|
358
|
-
this.assertConnection("startRecording");
|
|
359
374
|
if (!this.audioManager) {
|
|
360
375
|
this.audioManager = new Audio_1.AudioManager();
|
|
361
376
|
}
|
|
@@ -406,12 +421,21 @@ class MessageManager {
|
|
|
406
421
|
handleConnectionEstablished() {
|
|
407
422
|
this.connection?.handleConnected(); //this will call the onConnectionStatusChange callback with connected
|
|
408
423
|
this.connection?.emit(types_1.SYNAPSE_REALTIME_EVENTS.CONNECTED);
|
|
409
|
-
|
|
424
|
+
this.flushOutgoingBuffer();
|
|
425
|
+
}
|
|
426
|
+
flushOutgoingBuffer() {
|
|
427
|
+
if (!this.connection?.isConnected() || !this.outgoingBuffer)
|
|
428
|
+
return;
|
|
429
|
+
const buf = this.outgoingBuffer;
|
|
430
|
+
this.outgoingBuffer = null;
|
|
431
|
+
this.sendSocketMessage(buf);
|
|
410
432
|
}
|
|
411
433
|
/**
|
|
412
434
|
* Cleanup message service
|
|
413
435
|
*/
|
|
414
436
|
cleanupMessageServerState() {
|
|
437
|
+
this.outgoingBuffer = null;
|
|
438
|
+
this.connection = null;
|
|
415
439
|
if (this.fileManager) {
|
|
416
440
|
this.fileManager.clearPendingFilesState();
|
|
417
441
|
this.fileManager = null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eka-care/medassist-core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.66",
|
|
4
4
|
"description": "TypeScript SDK for real-time medical chatbot experiences with session management, WebSocket connectivity, and media handling",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|