@eka-care/medassist-core 1.0.5 → 1.0.7
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 +18 -5
- package/dist/Synapse.d.ts.map +1 -1
- package/dist/Synapse.js +60 -16
- package/dist/connection/Websocket.d.ts.map +1 -1
- package/dist/connection/Websocket.js +7 -2
- package/dist/constants/index.d.ts +7 -0
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +18 -5
- package/dist/events/Events.d.ts +4 -5
- package/dist/events/Events.d.ts.map +1 -1
- package/dist/events/Events.js +3 -4
- package/dist/events/types.d.ts +15 -11
- package/dist/events/types.d.ts.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -7
- package/dist/messages/MessageManager.d.ts +1 -1
- package/dist/messages/MessageManager.d.ts.map +1 -1
- package/dist/messages/MessageManager.js +44 -53
- package/dist/messages/types.d.ts +36 -17
- package/dist/messages/types.d.ts.map +1 -1
- package/dist/messages/types.js +14 -1
- package/dist/resources/index.d.ts +7 -0
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +12 -0
- package/dist/resources/session/types.d.ts +11 -5
- package/dist/resources/session/types.d.ts.map +1 -1
- package/dist/resources/toolCall/ToolCall.d.ts +8 -0
- package/dist/resources/toolCall/ToolCall.d.ts.map +1 -0
- package/dist/resources/toolCall/ToolCall.js +53 -0
- package/dist/resources/toolCall/types.d.ts +80 -0
- package/dist/resources/toolCall/types.d.ts.map +1 -0
- package/dist/resources/toolCall/types.js +24 -0
- package/dist/resources/types.d.ts +6 -0
- package/dist/resources/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/Synapse.d.ts
CHANGED
|
@@ -4,15 +4,20 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { ConnectionType } from "./connection/ConnectionFactory";
|
|
6
6
|
import { type Environment } from "./constants";
|
|
7
|
-
import { SYNAPSE_REALTIME_EVENTS } from "./messages/types";
|
|
7
|
+
import { SYNAPSE_REALTIME_EVENTS, type TInitalPrompt } from "./messages/types";
|
|
8
8
|
import { SynapseError } from "./internal/Error/Error";
|
|
9
|
-
import { type SessionResponse } from "./resources/session/types";
|
|
9
|
+
import { type TInitialMessage, type SessionResponse } from "./resources/session/types";
|
|
10
10
|
import { type AudioMetaData } from "./media/audio/types";
|
|
11
|
+
import type { ToolCallResponse } from "./resources/toolCall/types";
|
|
11
12
|
export interface SendMessageOptions {
|
|
12
13
|
message?: string;
|
|
13
14
|
messageId?: string;
|
|
14
15
|
files?: File[];
|
|
15
16
|
audio?: AudioMetaData;
|
|
17
|
+
toolCalled?: boolean;
|
|
18
|
+
tool_declined?: boolean;
|
|
19
|
+
tool_id?: string;
|
|
20
|
+
initial_prompts?: TInitalPrompt[];
|
|
16
21
|
}
|
|
17
22
|
export interface SynapseSDKOverrides {
|
|
18
23
|
prompt?: string;
|
|
@@ -33,6 +38,11 @@ export interface SynapseSDKConfig {
|
|
|
33
38
|
overrides?: SynapseSDKOverrides;
|
|
34
39
|
callbacks?: SynapseSDKCallbacks;
|
|
35
40
|
}
|
|
41
|
+
export interface SessionConfig {
|
|
42
|
+
session_id: string;
|
|
43
|
+
session_token?: string;
|
|
44
|
+
initial_message?: TInitialMessage;
|
|
45
|
+
}
|
|
36
46
|
export interface ExistingSessionOptions {
|
|
37
47
|
session_id: string;
|
|
38
48
|
session_token: string;
|
|
@@ -41,8 +51,7 @@ export declare class SynapseSDK {
|
|
|
41
51
|
private connection;
|
|
42
52
|
private messageManager;
|
|
43
53
|
private resourceManager;
|
|
44
|
-
private
|
|
45
|
-
private sessionId;
|
|
54
|
+
private sessionConfig;
|
|
46
55
|
private config;
|
|
47
56
|
private connectionType;
|
|
48
57
|
constructor(config: SynapseSDKConfig);
|
|
@@ -57,7 +66,7 @@ export declare class SynapseSDK {
|
|
|
57
66
|
/**
|
|
58
67
|
* Send a message conetnt will be text always
|
|
59
68
|
*/
|
|
60
|
-
sendMessage({ message, files, audio, }: SendMessageOptions): Promise<void>;
|
|
69
|
+
sendMessage({ message, files, audio, tool_declined, tool_id, initial_prompts }: SendMessageOptions): Promise<void>;
|
|
61
70
|
/**
|
|
62
71
|
* Register a listener for a specific event
|
|
63
72
|
*/
|
|
@@ -70,6 +79,10 @@ export declare class SynapseSDK {
|
|
|
70
79
|
* Get the session ID
|
|
71
80
|
*/
|
|
72
81
|
getSessionConfig(): SessionResponse;
|
|
82
|
+
/**
|
|
83
|
+
* Call tool
|
|
84
|
+
*/
|
|
85
|
+
callTool<R extends ToolCallResponse = ToolCallResponse>(name: string, params?: Record<string, unknown>): Promise<R>;
|
|
73
86
|
/**
|
|
74
87
|
* Send audio
|
|
75
88
|
* */
|
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;AAGH,OAAO,EAEL,cAAc,EACf,MAAM,gCAAgC,CAAC;AAKxC,OAAO,EAAE,KAAK,WAAW,EAAa,MAAM,aAAa,CAAC;AAI1D,OAAO,EACL,uBAAuB,
|
|
1
|
+
{"version":3,"file":"Synapse.d.ts","sourceRoot":"","sources":["../src/Synapse.ts"],"names":[],"mappings":"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"}
|
package/dist/Synapse.js
CHANGED
|
@@ -14,13 +14,13 @@ const types_1 = require("./messages/types");
|
|
|
14
14
|
const Error_1 = require("./utils/Error");
|
|
15
15
|
const Error_2 = require("./internal/Error/Error");
|
|
16
16
|
const Events_1 = require("./events/Events");
|
|
17
|
+
//TODO: Fix issue with handling error content type ,which is comming as a connection error to the user
|
|
17
18
|
class SynapseSDK {
|
|
18
19
|
connection = null;
|
|
19
20
|
messageManager;
|
|
20
21
|
resourceManager;
|
|
21
22
|
// private agentConfig: AgentConfig | null = null;
|
|
22
|
-
|
|
23
|
-
sessionId = null;
|
|
23
|
+
sessionConfig = null;
|
|
24
24
|
config;
|
|
25
25
|
connectionType;
|
|
26
26
|
constructor(config) {
|
|
@@ -63,7 +63,7 @@ class SynapseSDK {
|
|
|
63
63
|
/**
|
|
64
64
|
* Send a message conetnt will be text always
|
|
65
65
|
*/
|
|
66
|
-
async sendMessage({ message, files, audio, }) {
|
|
66
|
+
async sendMessage({ message, files, audio, tool_declined, tool_id, initial_prompts }) {
|
|
67
67
|
if (!this.connection) {
|
|
68
68
|
const error = new Error_2.ConnectionError("Connection not established. Session may not be initialized.", {
|
|
69
69
|
context: { stage: "sendChatMessage" },
|
|
@@ -78,6 +78,9 @@ class SynapseSDK {
|
|
|
78
78
|
message: message,
|
|
79
79
|
files: files,
|
|
80
80
|
audio: audio,
|
|
81
|
+
...(tool_declined && { tool_declined }),
|
|
82
|
+
...(tool_id && { tool_id }),
|
|
83
|
+
...(initial_prompts?.length && { initial_prompts })
|
|
81
84
|
});
|
|
82
85
|
break;
|
|
83
86
|
default:
|
|
@@ -107,16 +110,57 @@ class SynapseSDK {
|
|
|
107
110
|
* Get the session ID
|
|
108
111
|
*/
|
|
109
112
|
getSessionConfig() {
|
|
110
|
-
if (!this.
|
|
113
|
+
if (!this.sessionConfig?.session_id || !this.sessionConfig?.session_token) {
|
|
111
114
|
throw new Error_2.SessionError("Session ID or token not found", {
|
|
112
115
|
context: { stage: "getSessionConfig" },
|
|
113
116
|
hint: "Ensure the session API returns both identifiers.",
|
|
114
117
|
});
|
|
115
118
|
}
|
|
116
|
-
return
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
119
|
+
return this.sessionConfig;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Call tool
|
|
123
|
+
*/
|
|
124
|
+
async callTool(name, params) {
|
|
125
|
+
if (!this.connection) {
|
|
126
|
+
const error = new Error_2.ConnectionError("Connection not established. Session may not be initialized.", {
|
|
127
|
+
context: { stage: "callTool" },
|
|
128
|
+
hint: "Call startSession() before attempting to call tool.",
|
|
129
|
+
});
|
|
130
|
+
this.emitError(error);
|
|
131
|
+
throw error;
|
|
132
|
+
}
|
|
133
|
+
if (!this.sessionConfig?.session_id) {
|
|
134
|
+
const error = new Error_2.SessionError("Session ID not found", {
|
|
135
|
+
context: { stage: "callTool" },
|
|
136
|
+
hint: "Call startSession() before attempting to call tool.",
|
|
137
|
+
});
|
|
138
|
+
this.emitError(error);
|
|
139
|
+
throw error;
|
|
140
|
+
}
|
|
141
|
+
switch (this.connectionType) {
|
|
142
|
+
case ConnectionFactory_1.ConnectionType.SOCKET:
|
|
143
|
+
try {
|
|
144
|
+
const response = await this.resourceManager.callTool(this.sessionConfig.session_id, name, params);
|
|
145
|
+
if (response.err) {
|
|
146
|
+
throw new Error_2.APIError(response.err.msg, 500, response.err);
|
|
147
|
+
}
|
|
148
|
+
return response;
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
if (error instanceof Error_2.APIError && error?.status === 401) {
|
|
152
|
+
await this.handleSessionExpiry();
|
|
153
|
+
return await this.callTool(name, params);
|
|
154
|
+
}
|
|
155
|
+
throw error;
|
|
156
|
+
}
|
|
157
|
+
default:
|
|
158
|
+
const error = new Error_2.ConnectionError("Unsupported connection type", {
|
|
159
|
+
context: { stage: "callTool", connectionType: this.connectionType },
|
|
160
|
+
});
|
|
161
|
+
this.emitError(error);
|
|
162
|
+
throw error;
|
|
163
|
+
}
|
|
120
164
|
}
|
|
121
165
|
/**
|
|
122
166
|
* Send audio
|
|
@@ -222,8 +266,7 @@ class SynapseSDK {
|
|
|
222
266
|
hint: "Ensure the session API returns both identifiers.",
|
|
223
267
|
});
|
|
224
268
|
}
|
|
225
|
-
this.
|
|
226
|
-
this.sessionToken = sessionResponse.session_token;
|
|
269
|
+
this.sessionConfig = sessionResponse;
|
|
227
270
|
const serverUrl = (0, constants_1.getConfig)(this.config?.environment).WEBSOCKET_URL;
|
|
228
271
|
const connectionType = this.config.connectionType === "socket"
|
|
229
272
|
? ConnectionFactory_1.ConnectionType.SOCKET
|
|
@@ -353,7 +396,7 @@ class SynapseSDK {
|
|
|
353
396
|
* Handle socket connection open
|
|
354
397
|
*/
|
|
355
398
|
onSocketConnectionOpen() {
|
|
356
|
-
if (!this.
|
|
399
|
+
if (!this.sessionConfig?.session_token) {
|
|
357
400
|
const error = new Error_2.SessionError("Session token not set. Call startSession() first.", {
|
|
358
401
|
context: { stage: "onSocketConnectionOpen" },
|
|
359
402
|
hint: "Ensure startSession() completes successfully before socket opens.",
|
|
@@ -361,7 +404,7 @@ class SynapseSDK {
|
|
|
361
404
|
this.emitError(error);
|
|
362
405
|
throw error;
|
|
363
406
|
}
|
|
364
|
-
this.messageManager.sendSocketAuthMessage(this.
|
|
407
|
+
this.messageManager.sendSocketAuthMessage(this.sessionConfig.session_token);
|
|
365
408
|
}
|
|
366
409
|
/**
|
|
367
410
|
* Handle incoming socket messages
|
|
@@ -411,21 +454,22 @@ class SynapseSDK {
|
|
|
411
454
|
async handleSessionExpiry() {
|
|
412
455
|
try {
|
|
413
456
|
this.endSession();
|
|
414
|
-
if (!this.
|
|
457
|
+
if (!this.sessionConfig?.session_id ||
|
|
458
|
+
!this.sessionConfig?.session_token) {
|
|
415
459
|
const error = new Error_2.SessionError("Session ID or token not found", {
|
|
416
460
|
context: { stage: "handleSessionExpiry" },
|
|
417
461
|
});
|
|
418
462
|
this.emitError(error);
|
|
419
463
|
throw error;
|
|
420
464
|
}
|
|
421
|
-
const refreshed = await this.refreshSession(this.
|
|
465
|
+
const refreshed = await this.refreshSession(this.sessionConfig.session_id, this.sessionConfig.session_token);
|
|
422
466
|
if (!refreshed.session_id || !refreshed.session_token) {
|
|
423
467
|
throw new Error_2.SessionError("Session refresh failed", {
|
|
424
468
|
context: { stage: "handleSessionExpiry" },
|
|
425
469
|
});
|
|
426
470
|
}
|
|
427
|
-
this.
|
|
428
|
-
this.
|
|
471
|
+
this.sessionConfig.session_id = refreshed.session_id;
|
|
472
|
+
this.sessionConfig.session_token = refreshed.session_token;
|
|
429
473
|
await this.initializeConnection(refreshed);
|
|
430
474
|
this.setupEventHandlers();
|
|
431
475
|
this.config.callbacks?.onSessionRefreshed?.(refreshed);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Websocket.d.ts","sourceRoot":"","sources":["../../src/connection/Websocket.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"Websocket.d.ts","sourceRoot":"","sources":["../../src/connection/Websocket.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAO9D,MAAM,WAAW,yBAA0B,SAAQ,aAAa;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE;QACJ,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,SAAgB,cAAc,EAAE,MAAM,CAAC;IACvC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,cAAc,CAAa;gBAEvB,MAAM,EAAE,yBAAyB;IAY7C;;OAEG;IACH,OAAO,CAAC,OAAO;IA6Bf;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAQ1B;;OAEG;IACH,OAAO,CAAC,UAAU;IAclB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACH,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACH,OAAO,CAAC,WAAW;IA8CnB;;OAEG;IACI,WAAW,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAyBxD;;OAEG;IACI,KAAK,IAAI,IAAI;IAQpB;;OAEG;IACI,WAAW,IAAI,OAAO;IAItB,eAAe,IAAI,IAAI;CAI/B"}
|
|
@@ -14,7 +14,12 @@ class WebSocketConnection extends BaseConnection_1.BaseConnection {
|
|
|
14
14
|
reconnectCount = 0;
|
|
15
15
|
constructor(config) {
|
|
16
16
|
super();
|
|
17
|
-
this.config = {
|
|
17
|
+
this.config = {
|
|
18
|
+
...config,
|
|
19
|
+
reconnect: config.reconnect || true,
|
|
20
|
+
reconnectAttempts: config.reconnectAttempts || 3,
|
|
21
|
+
reconnectDelay: config.reconnectDelay || 1000,
|
|
22
|
+
};
|
|
18
23
|
this.conversationId = config.auth.sessionId;
|
|
19
24
|
this.connect();
|
|
20
25
|
}
|
|
@@ -49,7 +54,7 @@ class WebSocketConnection extends BaseConnection_1.BaseConnection {
|
|
|
49
54
|
*/
|
|
50
55
|
buildConnectionUrl() {
|
|
51
56
|
const url = new URL(this.config.serverUrl);
|
|
52
|
-
url.pathname = `/ws/med-assist/session/${this.config.auth.sessionId}/`;
|
|
57
|
+
url.pathname = `/reloaded/ws/med-assist/session/${this.config.auth.sessionId}/`;
|
|
53
58
|
return url.toString();
|
|
54
59
|
}
|
|
55
60
|
/**
|
|
@@ -12,6 +12,13 @@ declare const STAGING_CONFIG: {
|
|
|
12
12
|
};
|
|
13
13
|
export type EnvironmentConfig = typeof DEVELOPMENT_CONFIG | typeof PRODUCTION_CONFIG | typeof STAGING_CONFIG;
|
|
14
14
|
export declare const getConfig: (environment?: Environment) => EnvironmentConfig;
|
|
15
|
+
export declare enum SYNAPSE_TOOL_NAME {
|
|
16
|
+
MOBILE_VERIFICATION = "mobile_verification",
|
|
17
|
+
AVAILABILITY_DATES = "availability_dates",
|
|
18
|
+
AVAILABILITY_SLOTS = "availability_slots",
|
|
19
|
+
DOCTOR_DETAILS = "doctor_details",
|
|
20
|
+
GET_LOCATION = "get_location"
|
|
21
|
+
}
|
|
15
22
|
export type Environment = "development" | "production" | "staging";
|
|
16
23
|
export {};
|
|
17
24
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB;;;CAGtB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB;;;CAGtB,CAAC;AAKF,QAAA,MAAM,kBAAkB;;;CAIvB,CAAC;AAEF,QAAA,MAAM,cAAc;;;CAGnB,CAAC;AACF,MAAM,MAAM,iBAAiB,GACzB,OAAO,kBAAkB,GACzB,OAAO,iBAAiB,GACxB,OAAO,cAAc,CAAC;AAE1B,eAAO,MAAM,SAAS,GACpB,cAAa,WAA0B,KACtC,iBASF,CAAC;AAEF,oBAAY,iBAAiB;IAC3B,mBAAmB,wBAAwB;IAC3C,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IACzC,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;CAC9B;AAED,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,CAAC"}
|
package/dist/constants/index.js
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getConfig = void 0;
|
|
3
|
+
exports.SYNAPSE_TOOL_NAME = exports.getConfig = void 0;
|
|
4
4
|
const PRODUCTION_CONFIG = {
|
|
5
|
-
WEBSOCKET_URL: "wss://matrix-ws.eka.care",
|
|
6
|
-
BASE_API_URL: "https://matrix.eka.care",
|
|
5
|
+
WEBSOCKET_URL: "wss://matrix-ws.eka.care/reloaded",
|
|
6
|
+
BASE_API_URL: "https://matrix.eka.care/reloaded",
|
|
7
7
|
};
|
|
8
|
+
// const PRODUCTION_CONFIG = {
|
|
9
|
+
// WEBSOCKET_URL: "ws://7d122fab59fd.ngrok-free.app/reloaded",
|
|
10
|
+
// BASE_API_URL: "https://7d122fab59fd.ngrok-free.app/reloaded",
|
|
11
|
+
// }
|
|
8
12
|
const DEVELOPMENT_CONFIG = {
|
|
9
|
-
|
|
10
|
-
|
|
13
|
+
// can be used for local development
|
|
14
|
+
WEBSOCKET_URL: "wss://matrix-ws.dev.eka.care/reloaded",
|
|
15
|
+
BASE_API_URL: "https://matrix.dev.eka.care/reloaded",
|
|
11
16
|
};
|
|
12
17
|
const STAGING_CONFIG = {
|
|
13
18
|
WEBSOCKET_URL: "wss://matrix-ws.dev.eka.care",
|
|
@@ -26,3 +31,11 @@ const getConfig = (environment = "production") => {
|
|
|
26
31
|
return PRODUCTION_CONFIG;
|
|
27
32
|
};
|
|
28
33
|
exports.getConfig = getConfig;
|
|
34
|
+
var SYNAPSE_TOOL_NAME;
|
|
35
|
+
(function (SYNAPSE_TOOL_NAME) {
|
|
36
|
+
SYNAPSE_TOOL_NAME["MOBILE_VERIFICATION"] = "mobile_verification";
|
|
37
|
+
SYNAPSE_TOOL_NAME["AVAILABILITY_DATES"] = "availability_dates";
|
|
38
|
+
SYNAPSE_TOOL_NAME["AVAILABILITY_SLOTS"] = "availability_slots";
|
|
39
|
+
SYNAPSE_TOOL_NAME["DOCTOR_DETAILS"] = "doctor_details";
|
|
40
|
+
SYNAPSE_TOOL_NAME["GET_LOCATION"] = "get_location";
|
|
41
|
+
})(SYNAPSE_TOOL_NAME || (exports.SYNAPSE_TOOL_NAME = SYNAPSE_TOOL_NAME = {}));
|
package/dist/events/Events.d.ts
CHANGED
|
@@ -5,15 +5,14 @@ export declare const SOCKET_CONTENT_TYPES: {
|
|
|
5
5
|
readonly TEXT: "text";
|
|
6
6
|
readonly AUDIO: "audio";
|
|
7
7
|
readonly FILE: "file";
|
|
8
|
-
readonly
|
|
9
|
-
readonly MULTI: "multi";
|
|
10
|
-
readonly DOCTOR_CARD: "doctor_card";
|
|
8
|
+
readonly TOOL_CALL: "tool";
|
|
11
9
|
readonly TIPS: "tips";
|
|
12
10
|
readonly INLINE_TEXT: "inline_text";
|
|
13
|
-
readonly
|
|
11
|
+
readonly TOOL_START: "tool_start";
|
|
12
|
+
readonly TOOL_END: "tool_end";
|
|
14
13
|
};
|
|
15
14
|
export type SOCKET_CONTENT_TYPES = (typeof SOCKET_CONTENT_TYPES)[keyof typeof SOCKET_CONTENT_TYPES];
|
|
16
|
-
export type SOCKET_CHAT_CONTENT_TYPES = (typeof SOCKET_CONTENT_TYPES)["TEXT"] | (typeof SOCKET_CONTENT_TYPES)["FILE"] | (typeof SOCKET_CONTENT_TYPES)["
|
|
15
|
+
export type SOCKET_CHAT_CONTENT_TYPES = (typeof SOCKET_CONTENT_TYPES)["TEXT"] | (typeof SOCKET_CONTENT_TYPES)["FILE"] | (typeof SOCKET_CONTENT_TYPES)["TOOL_CALL"];
|
|
17
16
|
export declare const SOCKET_EVENTS: {
|
|
18
17
|
readonly PING: "ping";
|
|
19
18
|
readonly PONG: "pong";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../src/events/Events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,MAAM,qBAAqB,GAC7B,QAAQ,CAAC,WAAW,GACpB,QAAQ,CAAC,WAAW,GACpB,QAAQ,CAAC,YAAY,GACrB,QAAQ,CAAC,WAAW,GACpB,QAAQ,CAAC,0BAA0B,GACnC,QAAQ,CAAC,0BAA0B,GACnC,QAAQ,CAAC,4BAA4B,GACrC,QAAQ,CAAC,iCAAiC,CAAC;AAE/C,MAAM,MAAM,qBAAqB,GAC7B,QAAQ,CAAC,WAAW,GACpB,QAAQ,CAAC,WAAW,GACpB,QAAQ,CAAC,YAAY,GACrB,QAAQ,CAAC,WAAW,GACpB,QAAQ,CAAC,2CAA2C,GACpD,QAAQ,CAAC,0BAA0B,GACnC,QAAQ,CAAC,4BAA4B,GACrC,QAAQ,CAAC,iCAAiC,CAAC;AAG/C,eAAO,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../src/events/Events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,MAAM,qBAAqB,GAC7B,QAAQ,CAAC,WAAW,GACpB,QAAQ,CAAC,WAAW,GACpB,QAAQ,CAAC,YAAY,GACrB,QAAQ,CAAC,WAAW,GACpB,QAAQ,CAAC,0BAA0B,GACnC,QAAQ,CAAC,0BAA0B,GACnC,QAAQ,CAAC,4BAA4B,GACrC,QAAQ,CAAC,iCAAiC,CAAC;AAE/C,MAAM,MAAM,qBAAqB,GAC7B,QAAQ,CAAC,WAAW,GACpB,QAAQ,CAAC,WAAW,GACpB,QAAQ,CAAC,YAAY,GACrB,QAAQ,CAAC,WAAW,GACpB,QAAQ,CAAC,2CAA2C,GACpD,QAAQ,CAAC,0BAA0B,GACnC,QAAQ,CAAC,4BAA4B,GACrC,QAAQ,CAAC,iCAAiC,CAAC;AAG/C,eAAO,MAAM,oBAAoB;;;;;;;;;CASvB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAC9B,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEnE,MAAM,MAAM,yBAAyB,GACjC,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,GACrC,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,GACrC,CAAC,OAAO,oBAAoB,CAAC,CAAC,WAAW,CAAC,CAAC;AAE/C,eAAO,MAAM,aAAa;;;;;;;;;;CAahB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE/E,eAAO,MAAM,8BAA8B;;;CAGjC,CAAC;AAEX,MAAM,MAAM,8BAA8B,GACxC,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,OAAO,8BAA8B,CAAC,CAAC;AAEvF,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC,WAAW,CAAC;AAC7D,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC,WAAW,CAAC;AAC7D,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAAC,YAAY,CAAC;AAC/D,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC,WAAW,CAAC;AAC7D,MAAM,MAAM,0CAA0C,GACpD,QAAQ,CAAC,2CAA2C,CAAC;AACvD,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC,0BAA0B,CAAC;AAC5E,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CAAC,4BAA4B,CAAC;AAChF,MAAM,MAAM,gCAAgC,GAC1C,QAAQ,CAAC,iCAAiC,CAAC;AAE7C,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC,0BAA0B,CAAC;AAC5E,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CAAC,4BAA4B,CAAC;AAChF,MAAM,MAAM,gCAAgC,GAC1C,QAAQ,CAAC,iCAAiC,CAAC;AAC7C,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC;AAClD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,GAAG,GACX,OAAO,IAAI,qBAAqB,CAYlC"}
|
package/dist/events/Events.js
CHANGED
|
@@ -7,12 +7,11 @@ exports.SOCKET_CONTENT_TYPES = {
|
|
|
7
7
|
TEXT: "text",
|
|
8
8
|
AUDIO: "audio",
|
|
9
9
|
FILE: "file",
|
|
10
|
-
|
|
11
|
-
MULTI: "multi",
|
|
12
|
-
DOCTOR_CARD: "doctor_card",
|
|
10
|
+
TOOL_CALL: "tool",
|
|
13
11
|
TIPS: "tips",
|
|
14
12
|
INLINE_TEXT: "inline_text",
|
|
15
|
-
|
|
13
|
+
TOOL_START: "tool_start",
|
|
14
|
+
TOOL_END: "tool_end",
|
|
16
15
|
};
|
|
17
16
|
exports.SOCKET_EVENTS = {
|
|
18
17
|
// Client to Server events
|
package/dist/events/types.d.ts
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* Event types for message layer
|
|
3
3
|
* These are specific to the messaging layer and don't affect the base connection layer
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
5
|
+
import { type SYNAPSE_TOOL_TYPES, type ToolDetails } from "../resources/toolCall/types";
|
|
6
|
+
import { SOCKET_CONTENT_TYPES, SOCKET_EVENTS } from "./Events";
|
|
6
7
|
export interface BaseMessage {
|
|
7
8
|
ev: SOCKET_EVENTS;
|
|
8
9
|
_id: string;
|
|
@@ -30,11 +31,11 @@ export interface AuthSynapseToMatrixMessage extends BaseMessage {
|
|
|
30
31
|
}
|
|
31
32
|
export interface ChatSynapseToMatrixMessage extends BaseMessage {
|
|
32
33
|
ev: (typeof SOCKET_EVENTS)["CHAT"];
|
|
33
|
-
ct: (typeof SOCKET_CONTENT_TYPES)["TEXT"] | (typeof SOCKET_CONTENT_TYPES)["FILE"] | (typeof SOCKET_CONTENT_TYPES)["
|
|
34
|
+
ct: (typeof SOCKET_CONTENT_TYPES)["TEXT"] | (typeof SOCKET_CONTENT_TYPES)["FILE"] | (typeof SOCKET_CONTENT_TYPES)["TOOL_CALL"];
|
|
34
35
|
data?: {
|
|
35
36
|
url?: string;
|
|
36
37
|
text?: string;
|
|
37
|
-
|
|
38
|
+
tool_id?: string;
|
|
38
39
|
hidden?: boolean;
|
|
39
40
|
extension?: string;
|
|
40
41
|
tool_use_params?: any;
|
|
@@ -56,6 +57,13 @@ export interface ConnectionEstablishedMatrixToSynapseMessage extends BaseMessage
|
|
|
56
57
|
sid: string;
|
|
57
58
|
msg: string;
|
|
58
59
|
}
|
|
60
|
+
export type ToolCallData = {
|
|
61
|
+
tool_id: string | null;
|
|
62
|
+
tool_type?: SYNAPSE_TOOL_TYPES;
|
|
63
|
+
tool_name: string;
|
|
64
|
+
details?: ToolDetails;
|
|
65
|
+
_meta?: Record<string, unknown>;
|
|
66
|
+
};
|
|
59
67
|
export interface ChatMatrixToSynapseMessage extends BaseMessage {
|
|
60
68
|
ev: (typeof SOCKET_EVENTS)["CHAT"];
|
|
61
69
|
ct: Exclude<SOCKET_CONTENT_TYPES, (typeof SOCKET_CONTENT_TYPES)["AUDIO"]>;
|
|
@@ -63,21 +71,17 @@ export interface ChatMatrixToSynapseMessage extends BaseMessage {
|
|
|
63
71
|
urls?: string[];
|
|
64
72
|
exp?: number;
|
|
65
73
|
text?: string;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
callbacks: Record<string, boolean>;
|
|
69
|
-
additional_option?: typeof MULTI_SELECT_ADDITIONAL_OPTION;
|
|
70
|
-
mobile_number?: string;
|
|
71
|
-
};
|
|
74
|
+
tips?: string[];
|
|
75
|
+
} & Partial<ToolCallData>;
|
|
72
76
|
}
|
|
73
77
|
export interface StreamMatrixToSynapseMessage extends BaseMessage {
|
|
74
78
|
ev: (typeof SOCKET_EVENTS)["STREAM"];
|
|
75
|
-
ct: (typeof SOCKET_CONTENT_TYPES)["TEXT"] | (typeof SOCKET_CONTENT_TYPES)["TIPS"];
|
|
79
|
+
ct: (typeof SOCKET_CONTENT_TYPES)["TEXT"] | (typeof SOCKET_CONTENT_TYPES)["TIPS"] | (typeof SOCKET_CONTENT_TYPES)["TOOL_CALL"] | (typeof SOCKET_CONTENT_TYPES)["TOOL_START"] | (typeof SOCKET_CONTENT_TYPES)["TOOL_END"];
|
|
76
80
|
data: {
|
|
77
81
|
text?: string;
|
|
78
82
|
progress_msg?: string;
|
|
79
83
|
tips?: string[];
|
|
80
|
-
}
|
|
84
|
+
} & Partial<ToolCallData>;
|
|
81
85
|
}
|
|
82
86
|
export interface EndOfStreamMatrixToSynapseMessage extends BaseMessage {
|
|
83
87
|
ev: (typeof SOCKET_EVENTS)["END_OF_STREAM"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -13,13 +13,16 @@ export { ResourceManager } from "./resources";
|
|
|
13
13
|
export * from "./resources/types";
|
|
14
14
|
export { Session } from "./resources/session/Session";
|
|
15
15
|
export * from "./resources/session/types";
|
|
16
|
+
export { ToolCall } from "./resources/toolCall/ToolCall";
|
|
17
|
+
export * from "./resources/toolCall/types";
|
|
16
18
|
export { MessageManager } from "./messages/MessageManager";
|
|
17
|
-
export
|
|
19
|
+
export * from "./messages/types";
|
|
20
|
+
export * from "./events/types";
|
|
18
21
|
export { HttpClient } from "./internal/Api/HttpClient";
|
|
19
22
|
export type { HttpClientConfig } from "./internal/Api/HttpClient";
|
|
20
23
|
export { SynapseError, APIError, APIUserAbortError, APIConnectionTimeoutError, BadRequestError, UnauthorizedError, PermissionDeniedError, NotFoundError, MethodNotAllowedError, RateLimitError, InternalServerError, SynapseErrorCode, } from "./internal/Error/Error";
|
|
21
24
|
export { ErrorType } from "./internal/Error/types";
|
|
22
|
-
export type
|
|
25
|
+
export { type Environment } from "./constants";
|
|
23
26
|
export { ErrorUtils } from "./utils/Error";
|
|
24
27
|
export * from "./media/audio/types";
|
|
25
28
|
export type { SendMessageOptions } from "./Synapse";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EACL,iBAAiB,EACjB,cAAc,GACf,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,cAAc,6BAA6B,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,cAAc,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EACL,iBAAiB,EACjB,cAAc,GACf,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,cAAc,6BAA6B,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,cAAc,2BAA2B,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,cAAc,4BAA4B,CAAC;AAG3C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,cAAc,kBAAkB,CAAC;AAEjC,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,iBAAiB,EACjB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,cAAc,qBAAqB,CAAC;AAEpC,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -18,7 +18,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
18
18
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
19
|
};
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.SYNAPSE_MESSAGE_TYPES = exports.ErrorUtils = exports.ErrorType = exports.SynapseErrorCode = exports.InternalServerError = exports.RateLimitError = exports.MethodNotAllowedError = exports.NotFoundError = exports.PermissionDeniedError = exports.UnauthorizedError = exports.BadRequestError = exports.APIConnectionTimeoutError = exports.APIUserAbortError = exports.APIError = exports.SynapseError = exports.HttpClient = exports.
|
|
21
|
+
exports.SYNAPSE_MESSAGE_TYPES = exports.ErrorUtils = exports.ErrorType = exports.SynapseErrorCode = exports.InternalServerError = exports.RateLimitError = exports.MethodNotAllowedError = exports.NotFoundError = exports.PermissionDeniedError = exports.UnauthorizedError = exports.BadRequestError = exports.APIConnectionTimeoutError = exports.APIUserAbortError = exports.APIError = exports.SynapseError = exports.HttpClient = exports.MessageManager = exports.ToolCall = exports.Session = exports.ResourceManager = exports.ConnectionType = exports.ConnectionFactory = exports.WebSocketConnection = exports.BaseConnection = exports.SynapseSDK = void 0;
|
|
22
22
|
// High-level API (Primary interface for most users)
|
|
23
23
|
var Synapse_1 = require("./Synapse");
|
|
24
24
|
Object.defineProperty(exports, "SynapseSDK", { enumerable: true, get: function () { return Synapse_1.SynapseSDK; } });
|
|
@@ -38,11 +38,14 @@ __exportStar(require("./resources/types"), exports);
|
|
|
38
38
|
var Session_1 = require("./resources/session/Session");
|
|
39
39
|
Object.defineProperty(exports, "Session", { enumerable: true, get: function () { return Session_1.Session; } });
|
|
40
40
|
__exportStar(require("./resources/session/types"), exports);
|
|
41
|
+
var ToolCall_1 = require("./resources/toolCall/ToolCall");
|
|
42
|
+
Object.defineProperty(exports, "ToolCall", { enumerable: true, get: function () { return ToolCall_1.ToolCall; } });
|
|
43
|
+
__exportStar(require("./resources/toolCall/types"), exports);
|
|
41
44
|
// Message layer (for advanced usage)
|
|
42
45
|
var MessageManager_1 = require("./messages/MessageManager");
|
|
43
46
|
Object.defineProperty(exports, "MessageManager", { enumerable: true, get: function () { return MessageManager_1.MessageManager; } });
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
__exportStar(require("./messages/types"), exports);
|
|
48
|
+
__exportStar(require("./events/types"), exports);
|
|
46
49
|
// Core HTTP client (for advanced usage)
|
|
47
50
|
var HttpClient_1 = require("./internal/Api/HttpClient");
|
|
48
51
|
Object.defineProperty(exports, "HttpClient", { enumerable: true, get: function () { return HttpClient_1.HttpClient; } });
|
|
@@ -60,11 +63,11 @@ Object.defineProperty(exports, "MethodNotAllowedError", { enumerable: true, get:
|
|
|
60
63
|
Object.defineProperty(exports, "RateLimitError", { enumerable: true, get: function () { return Error_1.RateLimitError; } });
|
|
61
64
|
Object.defineProperty(exports, "InternalServerError", { enumerable: true, get: function () { return Error_1.InternalServerError; } });
|
|
62
65
|
Object.defineProperty(exports, "SynapseErrorCode", { enumerable: true, get: function () { return Error_1.SynapseErrorCode; } });
|
|
63
|
-
var
|
|
64
|
-
Object.defineProperty(exports, "ErrorType", { enumerable: true, get: function () { return
|
|
66
|
+
var types_1 = require("./internal/Error/types");
|
|
67
|
+
Object.defineProperty(exports, "ErrorType", { enumerable: true, get: function () { return types_1.ErrorType; } });
|
|
65
68
|
// Utilities
|
|
66
69
|
var Error_2 = require("./utils/Error");
|
|
67
70
|
Object.defineProperty(exports, "ErrorUtils", { enumerable: true, get: function () { return Error_2.ErrorUtils; } });
|
|
68
71
|
__exportStar(require("./media/audio/types"), exports);
|
|
69
|
-
var
|
|
70
|
-
Object.defineProperty(exports, "SYNAPSE_MESSAGE_TYPES", { enumerable: true, get: function () { return
|
|
72
|
+
var types_2 = require("./messages/types");
|
|
73
|
+
Object.defineProperty(exports, "SYNAPSE_MESSAGE_TYPES", { enumerable: true, get: function () { return types_2.SYNAPSE_MESSAGE_TYPES; } });
|
|
@@ -21,7 +21,7 @@ export declare class MessageManager {
|
|
|
21
21
|
/**
|
|
22
22
|
* send chat message through socket
|
|
23
23
|
*/
|
|
24
|
-
sendSocketMessage({ message, files, audio, url, }: SocketChatRequestData): void;
|
|
24
|
+
sendSocketMessage({ message, files, audio, url, tool_declined, tool_id, initial_prompts }: SocketChatRequestData): void;
|
|
25
25
|
/**
|
|
26
26
|
* Handle incoming chat message
|
|
27
27
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageManager.d.ts","sourceRoot":"","sources":["../../src/messages/MessageManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,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;AAEzE,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;IA+C/B;;OAEG;IACI,iBAAiB,CAAC,EACvB,OAAO,EACP,KAAK,EACL,KAAK,EACL,GAAG,
|
|
1
|
+
{"version":3,"file":"MessageManager.d.ts","sourceRoot":"","sources":["../../src/messages/MessageManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,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;AAEzE,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;IA+C/B;;OAEG;IACI,iBAAiB,CAAC,EACvB,OAAO,EACP,KAAK,EACL,KAAK,EACL,GAAG,EACH,aAAa,EACb,OAAO,EACP,eAAe,EAChB,EAAE,qBAAqB,GAAG,IAAI;IAiD/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;IAoBP;;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"}
|
|
@@ -59,7 +59,7 @@ class MessageManager {
|
|
|
59
59
|
/**
|
|
60
60
|
* send chat message through socket
|
|
61
61
|
*/
|
|
62
|
-
sendSocketMessage({ message, files, audio, url, }) {
|
|
62
|
+
sendSocketMessage({ message, files, audio, url, tool_declined, tool_id, initial_prompts }) {
|
|
63
63
|
const connection = this.assertConnection("sendSocketChatMessage");
|
|
64
64
|
let outMessage;
|
|
65
65
|
if ((files && files.length > 0) || (url && url.trim() !== "")) {
|
|
@@ -77,6 +77,9 @@ class MessageManager {
|
|
|
77
77
|
ts: Date.now(),
|
|
78
78
|
data: {
|
|
79
79
|
text: message,
|
|
80
|
+
...(tool_declined && { tool_declined }),
|
|
81
|
+
...(tool_id && { tool_id }),
|
|
82
|
+
...(initial_prompts && { initial_prompts })
|
|
80
83
|
},
|
|
81
84
|
};
|
|
82
85
|
}
|
|
@@ -141,17 +144,15 @@ class MessageManager {
|
|
|
141
144
|
connection.emit(types_1.SYNAPSE_REALTIME_EVENTS.MESSAGE_CHUNK, messageData);
|
|
142
145
|
}
|
|
143
146
|
break;
|
|
144
|
-
case Events_1.SOCKET_CONTENT_TYPES.
|
|
145
|
-
|
|
146
|
-
// case SOCKET_CONTENT_TYPES.DOCTOR_CARD:
|
|
147
|
-
if (message?.data?.tool_use_id && message._id) {
|
|
147
|
+
case Events_1.SOCKET_CONTENT_TYPES.TOOL_CALL:
|
|
148
|
+
if (message?.data?.tool_id && message._id) {
|
|
148
149
|
const chatMessageData = {
|
|
149
|
-
data: { ...message.data
|
|
150
|
+
data: { ...message.data },
|
|
150
151
|
// type: message.ct,
|
|
151
152
|
messageId: message._id,
|
|
152
153
|
timestamp: message.ts,
|
|
153
154
|
};
|
|
154
|
-
connection.emit(types_1.SYNAPSE_REALTIME_EVENTS.
|
|
155
|
+
connection.emit(types_1.SYNAPSE_REALTIME_EVENTS.TOOL_CALL, chatMessageData);
|
|
155
156
|
// this.callbacks?.onElicitationTool?.(chatMessageData, message._id);
|
|
156
157
|
}
|
|
157
158
|
break;
|
|
@@ -168,14 +169,14 @@ class MessageManager {
|
|
|
168
169
|
}
|
|
169
170
|
break;
|
|
170
171
|
default:
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
172
|
+
// const error = new MessageError("Unsupported content type", {
|
|
173
|
+
// context: {
|
|
174
|
+
// stage: "handleIncomingSocketChatMessage",
|
|
175
|
+
// contentType: message.ct,
|
|
176
|
+
// },
|
|
177
|
+
// });
|
|
178
|
+
// this.emitError(error);
|
|
179
|
+
// throw error;
|
|
179
180
|
}
|
|
180
181
|
}
|
|
181
182
|
/**
|
|
@@ -218,8 +219,35 @@ class MessageManager {
|
|
|
218
219
|
return;
|
|
219
220
|
}
|
|
220
221
|
break;
|
|
222
|
+
case Events_1.SOCKET_CONTENT_TYPES.TOOL_CALL:
|
|
223
|
+
if (message?.data?.tool_id && message._id) {
|
|
224
|
+
const streamMessageData = {
|
|
225
|
+
data: { ...message.data },
|
|
226
|
+
// type: message.ct,
|
|
227
|
+
messageId: message._id,
|
|
228
|
+
timestamp: message.ts,
|
|
229
|
+
};
|
|
230
|
+
connection.emit(types_1.SYNAPSE_REALTIME_EVENTS.TOOL_CALL, streamMessageData);
|
|
231
|
+
// this.callbacks?.onElicitationTool?.(chatMessageData, message._id);
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
break;
|
|
235
|
+
case Events_1.SOCKET_CONTENT_TYPES.TOOL_START:
|
|
236
|
+
const toolStartMessage = {
|
|
237
|
+
data: message?.data,
|
|
238
|
+
messageId: message._id || Date.now().toString(),
|
|
239
|
+
};
|
|
240
|
+
connection.emit(types_1.SYNAPSE_REALTIME_EVENTS.TOOL_START, toolStartMessage);
|
|
241
|
+
break;
|
|
242
|
+
case Events_1.SOCKET_CONTENT_TYPES.TOOL_END:
|
|
243
|
+
const toolEndMessage = {
|
|
244
|
+
data: message?.data,
|
|
245
|
+
messageId: message._id || Date.now().toString(),
|
|
246
|
+
};
|
|
247
|
+
connection.emit(types_1.SYNAPSE_REALTIME_EVENTS.TOOL_END, toolEndMessage);
|
|
248
|
+
break;
|
|
221
249
|
default:
|
|
222
|
-
const error = new Error_1.MessageError(
|
|
250
|
+
const error = new Error_1.MessageError(`Unsupported content type ${message?.ct}`, {
|
|
223
251
|
context: {
|
|
224
252
|
stage: "handleIncomingSocketStreamMessage",
|
|
225
253
|
contentType: message.ct,
|
|
@@ -284,43 +312,6 @@ class MessageManager {
|
|
|
284
312
|
};
|
|
285
313
|
connection.sendMessage(pingMessage);
|
|
286
314
|
}
|
|
287
|
-
// /**
|
|
288
|
-
// * start recording audio
|
|
289
|
-
// */
|
|
290
|
-
// private sendSocketStreamMessage({
|
|
291
|
-
// data,
|
|
292
|
-
// type,
|
|
293
|
-
// messageId,
|
|
294
|
-
// timestamp,
|
|
295
|
-
// }: {
|
|
296
|
-
// data: SOCKET_STREAM_DATA;
|
|
297
|
-
// type: SOCKET_CONTENT_TYPES;
|
|
298
|
-
// messageId?: string;
|
|
299
|
-
// timestamp?: number;
|
|
300
|
-
// }): void {
|
|
301
|
-
// const connection = this.assertConnection("sendSocketStreamMessage");
|
|
302
|
-
// switch (type) {
|
|
303
|
-
// case SOCKET_CONTENT_TYPES.AUDIO:
|
|
304
|
-
// const message: Outgoing.StreamSynapseToMatrixMessage = {
|
|
305
|
-
// ev: SOCKET_EVENTS.STREAM,
|
|
306
|
-
// ct: type,
|
|
307
|
-
// _id: messageId || this.generateId(),
|
|
308
|
-
// ts: timestamp || Date.now(),
|
|
309
|
-
// data: {
|
|
310
|
-
// audio: data.audio,
|
|
311
|
-
// format: data.format,
|
|
312
|
-
// },
|
|
313
|
-
// };
|
|
314
|
-
// connection.sendMessage(message);
|
|
315
|
-
// break;
|
|
316
|
-
// default:
|
|
317
|
-
// const error = new MessageError("Unsupported content type", {
|
|
318
|
-
// context: { stage: "sendSocketStreamMessage", contentType: type },
|
|
319
|
-
// });
|
|
320
|
-
// this.emitError(error);
|
|
321
|
-
// throw error;
|
|
322
|
-
// }
|
|
323
|
-
// }
|
|
324
315
|
/**
|
|
325
316
|
* send audio message
|
|
326
317
|
*/
|
package/dist/messages/types.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Types for message management
|
|
3
3
|
*/
|
|
4
|
-
import { SOCKET_CONTENT_TYPES, type IncomingSocketMessage, type OutgoingSocketMessage
|
|
4
|
+
import { SOCKET_CONTENT_TYPES, type IncomingSocketMessage, type OutgoingSocketMessage } from "../events/Events";
|
|
5
|
+
import { type ToolCallData } from "../events/types";
|
|
5
6
|
import { type AudioMetaData } from "../media/audio/types";
|
|
6
7
|
export declare const SYNAPSE_MESSAGE_TYPES: {
|
|
7
8
|
readonly TEXT: "text";
|
|
8
9
|
readonly AUDIO: "audio";
|
|
9
10
|
readonly FILE: "file";
|
|
10
|
-
readonly
|
|
11
|
-
readonly MULTI: "multi";
|
|
12
|
-
readonly DOCTOR_CARD: "doctor_card";
|
|
11
|
+
readonly TOOL_CALL: "tool";
|
|
13
12
|
readonly TIPS: "tips";
|
|
14
13
|
readonly INLINE_TEXT: "inline_text";
|
|
15
|
-
readonly
|
|
14
|
+
readonly TOOL_START: "tool_start";
|
|
15
|
+
readonly TOOL_END: "tool_end";
|
|
16
16
|
};
|
|
17
17
|
export type ContentType = SOCKET_CONTENT_TYPES;
|
|
18
18
|
export type IncomingMessage = IncomingSocketMessage;
|
|
@@ -23,10 +23,16 @@ export interface SocketChatRequestData {
|
|
|
23
23
|
files?: File[];
|
|
24
24
|
audio?: AudioMetaData;
|
|
25
25
|
url?: string;
|
|
26
|
-
|
|
26
|
+
tool_id?: string;
|
|
27
|
+
tool_declined?: boolean;
|
|
27
28
|
tool_use_params?: Record<string, unknown>;
|
|
28
29
|
hidden?: boolean;
|
|
30
|
+
initial_prompts?: TInitalPrompt[];
|
|
29
31
|
}
|
|
32
|
+
export type TInitalPrompt = {
|
|
33
|
+
role: string;
|
|
34
|
+
text: string;
|
|
35
|
+
};
|
|
30
36
|
export declare const SYNAPSE_REALTIME_EVENTS: {
|
|
31
37
|
readonly CONNECTED: "connected";
|
|
32
38
|
readonly DISCONNECTED: "disconnected";
|
|
@@ -35,8 +41,10 @@ export declare const SYNAPSE_REALTIME_EVENTS: {
|
|
|
35
41
|
readonly TIPS_MESSAGE: "tips_message";
|
|
36
42
|
readonly END_OF_STREAM: "end_of_stream";
|
|
37
43
|
readonly ERROR: "error";
|
|
38
|
-
readonly
|
|
44
|
+
readonly TOOL_CALL: "tool_call";
|
|
39
45
|
readonly INLINE_TEXT: "inline_text";
|
|
46
|
+
readonly TOOL_START: "tool_start";
|
|
47
|
+
readonly TOOL_END: "tool_end";
|
|
40
48
|
};
|
|
41
49
|
export type SYNAPSE_REALTIME_EVENTS = (typeof SYNAPSE_REALTIME_EVENTS)[keyof typeof SYNAPSE_REALTIME_EVENTS];
|
|
42
50
|
export declare const SYNAPSE_REALTIME_ERROR_CODES: {
|
|
@@ -57,18 +65,29 @@ export declare const SYNAPSE_REALTIME_RESERVED_EVENTS: {
|
|
|
57
65
|
export type SYNAPSE_REALTIME_RESERVED_EVENTS = (typeof SYNAPSE_REALTIME_RESERVED_EVENTS)[keyof typeof SYNAPSE_REALTIME_RESERVED_EVENTS];
|
|
58
66
|
export type SOCKET_STREAM_DATA = AudioMetaData;
|
|
59
67
|
export type SynapseRealTimeEventData = {
|
|
60
|
-
data:
|
|
68
|
+
data: {
|
|
69
|
+
text?: string;
|
|
70
|
+
tips?: string[];
|
|
71
|
+
name?: string;
|
|
72
|
+
} & Partial<ToolCallData>;
|
|
61
73
|
messageId?: string;
|
|
62
74
|
timestamp?: number;
|
|
63
75
|
};
|
|
64
|
-
export type
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
76
|
+
export type TAvailability = {
|
|
77
|
+
[hospital_id: string]: {
|
|
78
|
+
selected_date?: string;
|
|
79
|
+
slots_details?: TSlotDetail[];
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
export type TSlotDetail = {
|
|
83
|
+
date: string;
|
|
84
|
+
day?: string;
|
|
85
|
+
slots: string[];
|
|
86
|
+
selected_slot?: string;
|
|
73
87
|
};
|
|
88
|
+
export type TDoctorDetails = {
|
|
89
|
+
doctor_ids?: string[];
|
|
90
|
+
availability?: TAvailability;
|
|
91
|
+
};
|
|
92
|
+
export type SynapseContentTypes = SOCKET_CONTENT_TYPES;
|
|
74
93
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/messages/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/messages/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,eAAO,MAAM,qBAAqB;;;;;;;;;CAAuB,CAAC;AAE1D,MAAM,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAE/C,MAAM,MAAM,eAAe,GAAG,qBAAqB,CAAC;AACpD,MAAM,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAEpD,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,aAAa,EAAE,CAAA;CAClC;AACD,MAAM,MAAM,aAAa,GAAE;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,CAAA;AAGvD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;CAY1B,CAAC;AAEX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,OAAO,uBAAuB,CAAC,CAAC;AAEzE,eAAO,MAAM,4BAA4B;;;;;;;;;;CAU/B,CAAC;AAEX,MAAM,MAAM,4BAA4B,GACtC,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,OAAO,4BAA4B,CAAC,CAAC;AAEnF,eAAO,MAAM,gCAAgC;;CAEnC,CAAC;AAEX,MAAM,MAAM,gCAAgC,GAC1C,CAAC,OAAO,gCAAgC,CAAC,CAAC,MAAM,OAAO,gCAAgC,CAAC,CAAC;AAG3F,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAAC;AAE/C,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,WAAW,EAAE,MAAM,GAAG;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;KAC/B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,CAAC"}
|
package/dist/messages/types.js
CHANGED
|
@@ -15,8 +15,10 @@ exports.SYNAPSE_REALTIME_EVENTS = {
|
|
|
15
15
|
TIPS_MESSAGE: "tips_message",
|
|
16
16
|
END_OF_STREAM: "end_of_stream",
|
|
17
17
|
ERROR: "error",
|
|
18
|
-
|
|
18
|
+
TOOL_CALL: "tool_call",
|
|
19
19
|
INLINE_TEXT: "inline_text",
|
|
20
|
+
TOOL_START: "tool_start",
|
|
21
|
+
TOOL_END: "tool_end"
|
|
20
22
|
};
|
|
21
23
|
exports.SYNAPSE_REALTIME_ERROR_CODES = {
|
|
22
24
|
SESSION_INACTIVE: "session_not_found",
|
|
@@ -32,3 +34,14 @@ exports.SYNAPSE_REALTIME_ERROR_CODES = {
|
|
|
32
34
|
exports.SYNAPSE_REALTIME_RESERVED_EVENTS = {
|
|
33
35
|
SESSION_EXPIRED: "session_expired", //to be used for session expiry
|
|
34
36
|
};
|
|
37
|
+
// export type ToolEscalationData = {
|
|
38
|
+
// type?: ContentType;
|
|
39
|
+
// choices?: string[];
|
|
40
|
+
// callbacks?: Record<string, boolean>;
|
|
41
|
+
// doctor_details?: TDoctorDetails;
|
|
42
|
+
// additional_option?: typeof MULTI_SELECT_ADDITIONAL_OPTION;
|
|
43
|
+
// text?: string;
|
|
44
|
+
// tips?: string[];
|
|
45
|
+
// [key: string]: unknown;
|
|
46
|
+
// };
|
|
47
|
+
//TODO: tips will never come in tool escalation
|
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { type ResourceConfig } from "./types";
|
|
5
5
|
import { type SessionResponse, type USER_FEEDBACK } from "./session/types";
|
|
6
|
+
import type { ToolCallResponse } from "./toolCall/types";
|
|
6
7
|
export declare class ResourceManager {
|
|
7
8
|
private resourceConfig;
|
|
8
9
|
private httpClient;
|
|
9
10
|
private session;
|
|
11
|
+
private toolCall;
|
|
10
12
|
constructor(config: ResourceConfig);
|
|
11
13
|
/**
|
|
12
14
|
* Fetch agent configuration and create session
|
|
@@ -30,5 +32,10 @@ export declare class ResourceManager {
|
|
|
30
32
|
* PATCH /med-assist/session/:sessionId/:messageId
|
|
31
33
|
*/
|
|
32
34
|
sendFeedback(sessionId: string, messageId: string, feedback: USER_FEEDBACK, feedbackReason?: string): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Call a tool
|
|
37
|
+
* POST /med-assist/api-call-tool
|
|
38
|
+
*/
|
|
39
|
+
callTool<R extends ToolCallResponse = ToolCallResponse>(sessionId: string, toolName: string, toolParams?: Record<string, unknown>): Promise<R>;
|
|
33
40
|
}
|
|
34
41
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG3E,qBAAa,eAAe;IAC1B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,OAAO,CAAU;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,qBAAa,eAAe;IAC1B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,QAAQ,CAAyB;gBAE7B,MAAM,EAAE,cAAc;IAgBlC;;OAEG;IACU,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAwBpE;;;OAGG;IACU,eAAe,CAC1B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAgDjD;;;OAGG;IACU,cAAc,CACzB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,eAAe,CAAC;IAI3B;;;OAGG;IACU,YAAY,CACvB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,aAAa,EACvB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;IAShB;;;OAGG;IACU,QAAQ,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,EACjE,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,OAAO,CAAC,CAAC,CAAC;CAMd"}
|
package/dist/resources/index.js
CHANGED
|
@@ -7,10 +7,12 @@ exports.ResourceManager = void 0;
|
|
|
7
7
|
const HttpClient_1 = require("../internal/Api/HttpClient");
|
|
8
8
|
const Session_1 = require("./session/Session");
|
|
9
9
|
const Error_1 = require("../internal/Error/Error");
|
|
10
|
+
const ToolCall_1 = require("./toolCall/ToolCall");
|
|
10
11
|
class ResourceManager {
|
|
11
12
|
resourceConfig;
|
|
12
13
|
httpClient;
|
|
13
14
|
session;
|
|
15
|
+
toolCall = null;
|
|
14
16
|
constructor(config) {
|
|
15
17
|
this.resourceConfig = config;
|
|
16
18
|
// Set up HTTP client with agentId header for all requests
|
|
@@ -104,5 +106,15 @@ class ResourceManager {
|
|
|
104
106
|
async sendFeedback(sessionId, messageId, feedback, feedbackReason) {
|
|
105
107
|
return await this.session.feedback(sessionId, messageId, feedback, feedbackReason);
|
|
106
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* Call a tool
|
|
111
|
+
* POST /med-assist/api-call-tool
|
|
112
|
+
*/
|
|
113
|
+
async callTool(sessionId, toolName, toolParams) {
|
|
114
|
+
if (!this.toolCall) {
|
|
115
|
+
this.toolCall = new ToolCall_1.ToolCall(this.httpClient);
|
|
116
|
+
}
|
|
117
|
+
return await this.toolCall.callTool(sessionId, toolName, toolParams);
|
|
118
|
+
}
|
|
107
119
|
}
|
|
108
120
|
exports.ResourceManager = ResourceManager;
|
|
@@ -1,17 +1,23 @@
|
|
|
1
|
+
import type { ResourceResponse } from "../types";
|
|
1
2
|
export declare const USER_FEEDBACK: {
|
|
2
3
|
readonly LIKE: "LIKE";
|
|
3
4
|
readonly DISLIKE: "DISLIKE";
|
|
4
5
|
readonly NONE: "NONE";
|
|
5
6
|
};
|
|
6
7
|
export type USER_FEEDBACK = (typeof USER_FEEDBACK)[keyof typeof USER_FEEDBACK];
|
|
7
|
-
export
|
|
8
|
+
export type TInitialMessage = {
|
|
9
|
+
text?: string;
|
|
10
|
+
suggestions: {
|
|
11
|
+
label?: string;
|
|
12
|
+
value?: string;
|
|
13
|
+
response?: string;
|
|
14
|
+
}[];
|
|
15
|
+
};
|
|
16
|
+
export interface SessionResponse extends ResourceResponse {
|
|
8
17
|
session_id: string;
|
|
9
18
|
session_token?: string;
|
|
10
19
|
session_validity_s?: string;
|
|
11
20
|
msg?: string;
|
|
12
|
-
|
|
13
|
-
code: string;
|
|
14
|
-
msg: string;
|
|
15
|
-
};
|
|
21
|
+
initial_message?: TInitialMessage;
|
|
16
22
|
}
|
|
17
23
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/resources/session/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE/E,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/resources/session/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE/E,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACtE,CAAC;AAEF,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BaseResource } from "../../internal/Api/BaseResource";
|
|
2
|
+
import { type ToolCallResponse } from "./types";
|
|
3
|
+
export declare class ToolCall extends BaseResource {
|
|
4
|
+
private basePath;
|
|
5
|
+
callTool<R extends ToolCallResponse>(sessionId: string, toolName: string, toolParams?: Record<string, unknown>): Promise<R>;
|
|
6
|
+
private requestLocation;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=ToolCall.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolCall.d.ts","sourceRoot":"","sources":["../../../src/resources/toolCall/ToolCall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,SAAS,CAAC;AAEjB,qBAAa,QAAS,SAAQ,YAAY;IACxC,OAAO,CAAC,QAAQ,CAA+B;IAElC,QAAQ,CAAC,CAAC,SAAS,gBAAgB,EAC9C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,OAAO,CAAC,CAAC,CAAC;YAYC,eAAe;CA0C9B"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ToolCall = void 0;
|
|
4
|
+
const BaseResource_1 = require("../../internal/Api/BaseResource");
|
|
5
|
+
const types_1 = require("./types");
|
|
6
|
+
class ToolCall extends BaseResource_1.BaseResource {
|
|
7
|
+
basePath = "/med-assist/api-call-tool";
|
|
8
|
+
async callTool(sessionId, toolName, toolParams) {
|
|
9
|
+
if (toolName === types_1.SYNAPSE_TOOL_NAME.GET_LOCATION) {
|
|
10
|
+
return this.requestLocation();
|
|
11
|
+
}
|
|
12
|
+
return this.post(`${this.basePath}?session_id=${sessionId}&tool_name=${toolName}`, {
|
|
13
|
+
tool_params: toolParams,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
async requestLocation() {
|
|
17
|
+
return new Promise((resolve, reject) => {
|
|
18
|
+
if (typeof navigator === "undefined" || !navigator.geolocation) {
|
|
19
|
+
reject({
|
|
20
|
+
code: 500,
|
|
21
|
+
message: "Geolocation is not supported by this browser",
|
|
22
|
+
status: 500,
|
|
23
|
+
type: "GEOLOCATION_ERROR",
|
|
24
|
+
originalError: new Error("Geolocation is not supported by this browser"),
|
|
25
|
+
});
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
navigator.geolocation.getCurrentPosition((pos) => {
|
|
29
|
+
resolve({
|
|
30
|
+
latitude: pos.coords.latitude,
|
|
31
|
+
longitude: pos.coords.longitude,
|
|
32
|
+
accuracy: pos.coords?.accuracy ?? undefined,
|
|
33
|
+
});
|
|
34
|
+
}, (error) => {
|
|
35
|
+
//err.code: 1 permission denied, 2 position unavailable, 3 timeout
|
|
36
|
+
// reject(new Error(`Geolocation error: ${error.code}`));
|
|
37
|
+
reject({
|
|
38
|
+
code: error.code,
|
|
39
|
+
message: error.message,
|
|
40
|
+
status: 500,
|
|
41
|
+
type: "GEOLOCATION_ERROR",
|
|
42
|
+
originalError: error,
|
|
43
|
+
});
|
|
44
|
+
return;
|
|
45
|
+
}, {
|
|
46
|
+
timeout: 10000,
|
|
47
|
+
maximumAge: 0,
|
|
48
|
+
enableHighAccuracy: true,
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.ToolCall = ToolCall;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { MULTI_SELECT_ADDITIONAL_OPTION } from "../../events/Events";
|
|
2
|
+
import { type TDoctorDetails } from "../../messages/types";
|
|
3
|
+
import type { ResourceResponse } from "../types";
|
|
4
|
+
export type TDoctorToolResponse = ResourceResponse & {
|
|
5
|
+
name: string;
|
|
6
|
+
specialty: string;
|
|
7
|
+
hospitals: THospital[];
|
|
8
|
+
timings?: string;
|
|
9
|
+
experience?: string;
|
|
10
|
+
profile_link?: string;
|
|
11
|
+
profile_pic?: string;
|
|
12
|
+
languages?: string;
|
|
13
|
+
doctor_id: string;
|
|
14
|
+
};
|
|
15
|
+
export type THospital = {
|
|
16
|
+
name: string;
|
|
17
|
+
city?: string;
|
|
18
|
+
state?: string;
|
|
19
|
+
hospital_id: string;
|
|
20
|
+
region_id?: string;
|
|
21
|
+
};
|
|
22
|
+
export type TAvailableSlotsToolResponse = ResourceResponse & {
|
|
23
|
+
slots: string[];
|
|
24
|
+
};
|
|
25
|
+
export type TAvailabilityDatesToolResponse = ResourceResponse & {
|
|
26
|
+
available_dates: string[];
|
|
27
|
+
};
|
|
28
|
+
export declare enum SYNAPSE_TOOL_NAME {
|
|
29
|
+
MOBILE_VERIFICATION = "mobile_verification",
|
|
30
|
+
AVAILABILITY_DATES = "availability_dates",
|
|
31
|
+
AVAILABILITY_SLOTS = "availability_slots",
|
|
32
|
+
DOCTOR_DETAILS = "doctor_details",
|
|
33
|
+
GET_LOCATION = "get_location"
|
|
34
|
+
}
|
|
35
|
+
export declare const SYNAPSE_COMPONENTS: {
|
|
36
|
+
readonly MOBILE_VERIFICATION: "mobile_verification";
|
|
37
|
+
readonly PILL: "pills";
|
|
38
|
+
readonly MULTI: "multi";
|
|
39
|
+
readonly DOCTOR_CARD: "doctor_card";
|
|
40
|
+
};
|
|
41
|
+
export type SYNAPSE_COMPONENT_TYPES = (typeof SYNAPSE_COMPONENTS)[keyof typeof SYNAPSE_COMPONENTS];
|
|
42
|
+
export type SYNAPSE_TOOL_TYPES = {
|
|
43
|
+
ELICITATION: "elicitation";
|
|
44
|
+
};
|
|
45
|
+
export type ToolDetails = {
|
|
46
|
+
input: {
|
|
47
|
+
options: {
|
|
48
|
+
id: string;
|
|
49
|
+
label: string;
|
|
50
|
+
value: string;
|
|
51
|
+
}[];
|
|
52
|
+
mobile_number?: string;
|
|
53
|
+
doctor_details?: TDoctorDetails;
|
|
54
|
+
additional_option?: typeof MULTI_SELECT_ADDITIONAL_OPTION;
|
|
55
|
+
text: string;
|
|
56
|
+
};
|
|
57
|
+
component: SYNAPSE_COMPONENT_TYPES;
|
|
58
|
+
_meta: Record<string, unknown> & {
|
|
59
|
+
callbacks?: ToolCallbacks;
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
export type ToolCallbacks = {
|
|
63
|
+
[key in SYNAPSE_TOOL_CALLBACK_NAME]: {
|
|
64
|
+
tool_name: SYNAPSE_TOOL_NAME;
|
|
65
|
+
input_schema: Record<string, unknown>;
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
export declare enum SYNAPSE_TOOL_CALLBACK_NAME {
|
|
69
|
+
AVAILABILITY_DATES = "tool_callback_availability_dates",
|
|
70
|
+
AVAILABILITY_SLOTS = "tool_callback_availability_slots",
|
|
71
|
+
MOBILE_VERIFICATION = "tool_callback_mobile_verification",
|
|
72
|
+
DOCTOR_DETAILS = "tool_callback_doctor_details"
|
|
73
|
+
}
|
|
74
|
+
export type TGetLocationToolResponse = ResourceResponse & {
|
|
75
|
+
latitude: number;
|
|
76
|
+
longitude: number;
|
|
77
|
+
accuracy?: number;
|
|
78
|
+
};
|
|
79
|
+
export type ToolCallResponse = TDoctorToolResponse | TAvailableSlotsToolResponse | TAvailabilityDatesToolResponse | TGetLocationToolResponse;
|
|
80
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/resources/toolCall/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,gBAAgB,GAAG;IAC3D,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG,gBAAgB,GAAG;IAC9D,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,oBAAY,iBAAiB;IAC3B,mBAAmB,wBAAwB;IAC3C,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IACzC,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;CAC9B;AAED,eAAO,MAAM,kBAAkB;;;;;CAKrB,CAAC;AAEX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAE/D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,aAAa,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE;QACL,OAAO,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QACxD,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,iBAAiB,CAAC,EAAE,OAAO,8BAA8B,CAAC;QAC1D,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,SAAS,EAAE,uBAAuB,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAE/B,SAAS,CAAC,EAAE,aAAa,CAAC;KAC3B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;KACzB,GAAG,IAAI,0BAA0B,GAAG;QACnC,SAAS,EAAE,iBAAiB,CAAC;QAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvC;CACF,CAAC;AAEF,oBAAY,0BAA0B;IACpC,kBAAkB,qCAAqC;IACvD,kBAAkB,qCAAqC;IACvD,mBAAmB,sCAAsC;IACzD,cAAc,iCAAiC;CAChD;AAED,MAAM,MAAM,wBAAwB,GAAG,gBAAgB,GAAG;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,2BAA2B,GAAG,8BAA8B,GAAG,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SYNAPSE_TOOL_CALLBACK_NAME = exports.SYNAPSE_COMPONENTS = exports.SYNAPSE_TOOL_NAME = void 0;
|
|
4
|
+
var SYNAPSE_TOOL_NAME;
|
|
5
|
+
(function (SYNAPSE_TOOL_NAME) {
|
|
6
|
+
SYNAPSE_TOOL_NAME["MOBILE_VERIFICATION"] = "mobile_verification";
|
|
7
|
+
SYNAPSE_TOOL_NAME["AVAILABILITY_DATES"] = "availability_dates";
|
|
8
|
+
SYNAPSE_TOOL_NAME["AVAILABILITY_SLOTS"] = "availability_slots";
|
|
9
|
+
SYNAPSE_TOOL_NAME["DOCTOR_DETAILS"] = "doctor_details";
|
|
10
|
+
SYNAPSE_TOOL_NAME["GET_LOCATION"] = "get_location";
|
|
11
|
+
})(SYNAPSE_TOOL_NAME || (exports.SYNAPSE_TOOL_NAME = SYNAPSE_TOOL_NAME = {}));
|
|
12
|
+
exports.SYNAPSE_COMPONENTS = {
|
|
13
|
+
MOBILE_VERIFICATION: "mobile_verification",
|
|
14
|
+
PILL: "pills",
|
|
15
|
+
MULTI: "multi",
|
|
16
|
+
DOCTOR_CARD: "doctor_card",
|
|
17
|
+
};
|
|
18
|
+
var SYNAPSE_TOOL_CALLBACK_NAME;
|
|
19
|
+
(function (SYNAPSE_TOOL_CALLBACK_NAME) {
|
|
20
|
+
SYNAPSE_TOOL_CALLBACK_NAME["AVAILABILITY_DATES"] = "tool_callback_availability_dates";
|
|
21
|
+
SYNAPSE_TOOL_CALLBACK_NAME["AVAILABILITY_SLOTS"] = "tool_callback_availability_slots";
|
|
22
|
+
SYNAPSE_TOOL_CALLBACK_NAME["MOBILE_VERIFICATION"] = "tool_callback_mobile_verification";
|
|
23
|
+
SYNAPSE_TOOL_CALLBACK_NAME["DOCTOR_DETAILS"] = "tool_callback_doctor_details";
|
|
24
|
+
})(SYNAPSE_TOOL_CALLBACK_NAME || (exports.SYNAPSE_TOOL_CALLBACK_NAME = SYNAPSE_TOOL_CALLBACK_NAME = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/resources/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/resources/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;KACb,CAAA;CACF,CAAA"}
|
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.7",
|
|
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",
|