@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.
@@ -1 +1 @@
1
- {"version":3,"file":"Synapse.d.ts","sourceRoot":"","sources":["../src/Synapse.ts"],"names":[],"mappings":"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"}
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 = new MessageManager_1.MessageManager(this.connection, this.config?.callbacks);
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
- constructor(connection: BaseConnection, callbacks?: SynapseSDKCallbacks);
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;AACpD,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,YAAY,CAA6B;gBAErC,UAAU,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,mBAAmB;IAIvE;;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;IAsE/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;IAmCjB;;OAEG;IACI,sBAAsB,IAAI,IAAI;IAsBrC;;OAEG;IACI,qBAAqB,IAAI,IAAI;IAU7B,2BAA2B,IAAI,IAAI;IAM1C;;OAEG;IACI,yBAAyB,IAAI,IAAI;IAkBxC,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,gBAAgB;CAsCzB"}
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
- constructor(connection, callbacks) {
15
- this.connection = connection || null;
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
- const connection = this.assertConnection("sendSocketChatMessage");
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
- // this.connection?.handleConnected();
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.65",
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",