@ctchealth/plato-sdk 0.0.23 → 0.0.24
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/README.md +1 -0
- package/package.json +1 -1
- package/src/lib/call-helpers.d.ts +23 -0
- package/src/lib/call-helpers.js +94 -0
- package/src/lib/call-helpers.js.map +1 -0
- package/src/lib/plato-intefaces.d.ts +37 -1
- package/src/lib/plato-intefaces.js +1 -0
- package/src/lib/plato-intefaces.js.map +1 -1
- package/src/lib/plato-sdk.d.ts +7 -46
- package/src/lib/plato-sdk.js +41 -427
- package/src/lib/plato-sdk.js.map +1 -1
- package/src/lib/utils.d.ts +1 -0
- package/src/lib/utils.js +22 -0
- package/src/lib/utils.js.map +1 -1
package/README.md
CHANGED
package/package.json
CHANGED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 ctcHealth. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* This file is part of the ctcHealth Plato Platform, a proprietary software system developed by ctcHealth.
|
|
5
|
+
*
|
|
6
|
+
* This source code and all related materials are confidential and proprietary to ctcHealth.
|
|
7
|
+
* Unauthorized access, use, copying, modification, distribution, or disclosure is strictly prohibited
|
|
8
|
+
* and may result in disciplinary action and civil and/or criminal penalties.
|
|
9
|
+
*
|
|
10
|
+
* This software is intended solely for authorized use within ctcHealth and its designated partners.
|
|
11
|
+
*
|
|
12
|
+
* For internal use only.
|
|
13
|
+
*/
|
|
14
|
+
import { AxiosInstance } from 'axios';
|
|
15
|
+
import { CallCreateDto, CallDTO, CallEventMap, CallEventNames } from './plato-intefaces';
|
|
16
|
+
export type EmitFn = <K extends CallEventNames>(event: K, payload: CallEventMap[K]) => void;
|
|
17
|
+
export declare function createCall(http: AxiosInstance, payload: CallCreateDto): Promise<CallDTO>;
|
|
18
|
+
export declare function setPostCallEligibility(http: AxiosInstance, callId: string, eligible: boolean): Promise<void>;
|
|
19
|
+
export declare function triggerPostcallFallback(http: AxiosInstance, callId: string, emit: EmitFn, removeAllEventListeners: () => void): Promise<void>;
|
|
20
|
+
export declare function fetchAndEmitCallDetails(http: AxiosInstance, callId: string, emit: EmitFn, removeAllEventListeners: () => void): Promise<void>;
|
|
21
|
+
export declare function startPolling(http: AxiosInstance, callId: string, emit: EmitFn, removeAllEventListeners: () => void): {
|
|
22
|
+
stopPolling: () => void;
|
|
23
|
+
};
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createCall = createCall;
|
|
4
|
+
exports.setPostCallEligibility = setPostCallEligibility;
|
|
5
|
+
exports.triggerPostcallFallback = triggerPostcallFallback;
|
|
6
|
+
exports.fetchAndEmitCallDetails = fetchAndEmitCallDetails;
|
|
7
|
+
exports.startPolling = startPolling;
|
|
8
|
+
async function createCall(http, payload) {
|
|
9
|
+
const response = await http.post('/api/v1/simulation/call', { ...payload });
|
|
10
|
+
return response.data;
|
|
11
|
+
}
|
|
12
|
+
async function setPostCallEligibility(http, callId, eligible) {
|
|
13
|
+
try {
|
|
14
|
+
await http.patch(`/api/v1/simulation/call/${callId}/eligibility`, {
|
|
15
|
+
postCallEligibility: eligible,
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
// ignore — eligibility flag is best-effort
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
async function triggerPostcallFallback(http, callId, emit, removeAllEventListeners) {
|
|
23
|
+
const maxAttempts = 2;
|
|
24
|
+
const retryDelayMs = 4000;
|
|
25
|
+
let lastError;
|
|
26
|
+
try {
|
|
27
|
+
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
28
|
+
try {
|
|
29
|
+
await http.post('/api/v1/postcall/call-ended', { callId });
|
|
30
|
+
const { data } = await http.get(`/api/v1/simulation/call/${callId}`);
|
|
31
|
+
emit('call-details-ready', data);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
catch (e) {
|
|
35
|
+
lastError = e;
|
|
36
|
+
if (attempt < maxAttempts) {
|
|
37
|
+
await new Promise(resolve => setTimeout(resolve, retryDelayMs));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
emit('error', lastError instanceof Error ? lastError : new Error('Failed to process call details'));
|
|
42
|
+
}
|
|
43
|
+
finally {
|
|
44
|
+
removeAllEventListeners();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async function fetchAndEmitCallDetails(http, callId, emit, removeAllEventListeners) {
|
|
48
|
+
try {
|
|
49
|
+
const { data } = await http.get(`/api/v1/simulation/call/${callId}`);
|
|
50
|
+
emit('call-details-ready', data);
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
emit('error', e instanceof Error ? e : new Error('Failed to fetch call details'));
|
|
54
|
+
}
|
|
55
|
+
finally {
|
|
56
|
+
removeAllEventListeners();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function startPolling(http, callId, emit, removeAllEventListeners) {
|
|
60
|
+
let stopped = false;
|
|
61
|
+
let nextPollTimer;
|
|
62
|
+
const poll = async () => {
|
|
63
|
+
if (stopped)
|
|
64
|
+
return;
|
|
65
|
+
try {
|
|
66
|
+
const { data } = await http.get(`/api/v1/simulation/call/${callId}`);
|
|
67
|
+
if (data.transcript) {
|
|
68
|
+
stopped = true;
|
|
69
|
+
clearTimeout(globalTimer);
|
|
70
|
+
emit('call-details-ready', data);
|
|
71
|
+
removeAllEventListeners();
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// ignore transient errors, keep polling
|
|
77
|
+
}
|
|
78
|
+
nextPollTimer = setTimeout(() => void poll(), 3000);
|
|
79
|
+
};
|
|
80
|
+
nextPollTimer = setTimeout(() => void poll(), 3000);
|
|
81
|
+
const globalTimer = setTimeout(() => {
|
|
82
|
+
stopped = true;
|
|
83
|
+
clearTimeout(nextPollTimer);
|
|
84
|
+
void triggerPostcallFallback(http, callId, emit, removeAllEventListeners);
|
|
85
|
+
}, 60000);
|
|
86
|
+
return {
|
|
87
|
+
stopPolling: () => {
|
|
88
|
+
stopped = true;
|
|
89
|
+
clearTimeout(nextPollTimer);
|
|
90
|
+
clearTimeout(globalTimer);
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=call-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call-helpers.js","sourceRoot":"","sources":["../../../../../libs/plato-sdk/src/lib/call-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,8 @@ export declare enum AvatarLanguage {
|
|
|
42
42
|
Italian = "it",
|
|
43
43
|
French = "fr",
|
|
44
44
|
Arabic = "ar",
|
|
45
|
-
Russian = "ru"
|
|
45
|
+
Russian = "ru",
|
|
46
|
+
Ukrainian = "uk"
|
|
46
47
|
}
|
|
47
48
|
export declare class PersonalityAndBehaviourDto {
|
|
48
49
|
riskTolerance: number;
|
|
@@ -353,6 +354,41 @@ export interface AssistantImageDto {
|
|
|
353
354
|
_id: string;
|
|
354
355
|
imageUrl: string;
|
|
355
356
|
}
|
|
357
|
+
export interface ToolCall {
|
|
358
|
+
function: {
|
|
359
|
+
name: string;
|
|
360
|
+
arguments: {
|
|
361
|
+
slideNumber?: number;
|
|
362
|
+
progressObjectiveNumber?: number;
|
|
363
|
+
[key: string]: unknown;
|
|
364
|
+
};
|
|
365
|
+
};
|
|
366
|
+
id: string;
|
|
367
|
+
}
|
|
368
|
+
export interface CallEventMap {
|
|
369
|
+
'call-start': undefined;
|
|
370
|
+
'call-end': undefined;
|
|
371
|
+
'speech-start': undefined;
|
|
372
|
+
'speech-end': undefined;
|
|
373
|
+
error: Error;
|
|
374
|
+
message: {
|
|
375
|
+
type: string;
|
|
376
|
+
role: string;
|
|
377
|
+
transcript?: string;
|
|
378
|
+
transcriptType: 'final' | 'partial';
|
|
379
|
+
toolCallList?: ToolCall[];
|
|
380
|
+
toolCalls?: ToolCall[];
|
|
381
|
+
[key: string]: unknown;
|
|
382
|
+
};
|
|
383
|
+
'volume-level': number;
|
|
384
|
+
'call-details-ready': CallDTO;
|
|
385
|
+
'call-ended-reason': {
|
|
386
|
+
reason: string;
|
|
387
|
+
isInactivity: boolean;
|
|
388
|
+
};
|
|
389
|
+
}
|
|
390
|
+
export type CallEventNames = keyof CallEventMap;
|
|
391
|
+
export type CallEventListener<K extends CallEventNames> = (payload: CallEventMap[K]) => void;
|
|
356
392
|
/**
|
|
357
393
|
* Represents the state of an active call stored in localStorage for recovery purposes.
|
|
358
394
|
* Used to detect and recover abandoned calls after page refresh.
|
|
@@ -51,6 +51,7 @@ var AvatarLanguage;
|
|
|
51
51
|
AvatarLanguage["French"] = "fr";
|
|
52
52
|
AvatarLanguage["Arabic"] = "ar";
|
|
53
53
|
AvatarLanguage["Russian"] = "ru";
|
|
54
|
+
AvatarLanguage["Ukrainian"] = "uk";
|
|
54
55
|
})(AvatarLanguage || (exports.AvatarLanguage = AvatarLanguage = {}));
|
|
55
56
|
class PersonalityAndBehaviourDto {
|
|
56
57
|
riskTolerance;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plato-intefaces.js","sourceRoot":"","sources":["../../../../../libs/plato-sdk/src/lib/plato-intefaces.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;GAYG;AACH,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,qCAAmB,CAAA;IACnB,uCAAqB,CAAA;IACrB,yCAAuB,CAAA;IACvB,qCAAmB,CAAA;AACrB,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B;AAED,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,4CAA4B,CAAA;IAC5B,qCAAqB,CAAA;IACrB,iEAAiD,CAAA;IACjD,iCAAiB,CAAA;AACnB,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AACD,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,oDAAqC,CAAA;IACrC,0CAA2B,CAAA;IAC3B,0EAA2D,CAAA;IAC3D,gFAAiE,CAAA;IACjE,qDAAsC,CAAA;IACtC,wEAAyD,CAAA;AAC3D,CAAC,EAPW,WAAW,2BAAX,WAAW,QAOtB;AAED,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,qCAAa,CAAA;IACb,yCAAiB,CAAA;AACnB,CAAC,EAHW,oBAAoB,oCAApB,oBAAoB,QAG/B;AAED,IAAY,
|
|
1
|
+
{"version":3,"file":"plato-intefaces.js","sourceRoot":"","sources":["../../../../../libs/plato-sdk/src/lib/plato-intefaces.ts"],"names":[],"mappings":"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"}
|
package/src/lib/plato-sdk.d.ts
CHANGED
|
@@ -1,48 +1,11 @@
|
|
|
1
|
-
import { CallDTO, CreateSimulationDto, CreationPhase, SimulationRecordingsDto, SimulationRecordingsQueryDto, SimulationDetailsDto, RecommendationsResponseDto, PdfSlideDto, CheckPdfStatusResponse, AssistantImageDto } from './plato-intefaces';
|
|
1
|
+
import { CallDTO, CreateSimulationDto, CreationPhase, SimulationRecordingsDto, SimulationRecordingsQueryDto, SimulationDetailsDto, RecommendationsResponseDto, PdfSlideDto, CheckPdfStatusResponse, AssistantImageDto, CallEventMap, CallEventNames, CallEventListener } from './plato-intefaces';
|
|
2
|
+
export type { CallEventMap, CallEventNames, CallEventListener };
|
|
3
|
+
export type { ToolCall } from './plato-intefaces';
|
|
2
4
|
export interface ApiClientConfig {
|
|
3
5
|
baseUrl: string;
|
|
4
6
|
jwtToken: string;
|
|
5
7
|
publicKey: string;
|
|
6
8
|
}
|
|
7
|
-
export interface ToolCall {
|
|
8
|
-
function: {
|
|
9
|
-
name: string;
|
|
10
|
-
arguments: {
|
|
11
|
-
slideNumber?: number;
|
|
12
|
-
progressObjectiveNumber?: number;
|
|
13
|
-
[key: string]: unknown;
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
id: string;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Event map for call events, providing strict typing for each event's payload.
|
|
20
|
-
* There are no inputs for the events and all of them return void.
|
|
21
|
-
*/
|
|
22
|
-
export interface CallEventMap {
|
|
23
|
-
'call-start': undefined;
|
|
24
|
-
'call-end': undefined;
|
|
25
|
-
'speech-start': undefined;
|
|
26
|
-
'speech-end': undefined;
|
|
27
|
-
error: Error;
|
|
28
|
-
message: {
|
|
29
|
-
type: string;
|
|
30
|
-
role: string;
|
|
31
|
-
transcript?: string;
|
|
32
|
-
transcriptType: 'final' | 'partial';
|
|
33
|
-
toolCallList?: ToolCall[];
|
|
34
|
-
toolCalls?: ToolCall[];
|
|
35
|
-
[key: string]: unknown;
|
|
36
|
-
};
|
|
37
|
-
'volume-level': number;
|
|
38
|
-
'call-details-ready': CallDTO;
|
|
39
|
-
'call-ended-reason': {
|
|
40
|
-
reason: string;
|
|
41
|
-
isInactivity: boolean;
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
export type CallEventNames = keyof CallEventMap;
|
|
45
|
-
export type CallEventListener<K extends CallEventNames> = (payload: CallEventMap[K]) => void;
|
|
46
9
|
export declare class PlatoApiClient {
|
|
47
10
|
private config;
|
|
48
11
|
private http;
|
|
@@ -81,6 +44,10 @@ export declare class PlatoApiClient {
|
|
|
81
44
|
* Internal: Emit SDK-specific events that are not part of Vapi.
|
|
82
45
|
*/
|
|
83
46
|
private emit;
|
|
47
|
+
/**
|
|
48
|
+
* Remove all listeners for all call events.
|
|
49
|
+
*/
|
|
50
|
+
private removeAllEventListeners;
|
|
84
51
|
createSimulation(createSimulationParams: CreateSimulationDto): Promise<{
|
|
85
52
|
simulationId: string;
|
|
86
53
|
phase: CreationPhase;
|
|
@@ -102,10 +69,6 @@ export declare class PlatoApiClient {
|
|
|
102
69
|
getCallDetails(callId: string): Promise<CallDTO>;
|
|
103
70
|
getCallRecordings(queryParams: SimulationRecordingsQueryDto): Promise<SimulationRecordingsDto[]>;
|
|
104
71
|
getCallRecording(callId: string): Promise<string>;
|
|
105
|
-
/**
|
|
106
|
-
* Remove all listeners for all call events.
|
|
107
|
-
*/
|
|
108
|
-
private removeAllEventListeners;
|
|
109
72
|
/**
|
|
110
73
|
* Starts a call for the given simulation.
|
|
111
74
|
* Polls the backend after call-end until the call is finalized, then emits 'call-details-ready'.
|
|
@@ -117,8 +80,6 @@ export declare class PlatoApiClient {
|
|
|
117
80
|
on: <K extends CallEventNames>(event: K, listener: CallEventListener<K>) => void;
|
|
118
81
|
off: <K extends CallEventNames>(event: K, listener: CallEventListener<K>) => void;
|
|
119
82
|
}>;
|
|
120
|
-
private setPostCallEligibility;
|
|
121
|
-
private createCall;
|
|
122
83
|
uploadPdfSlides(file: File | Blob): Promise<string>;
|
|
123
84
|
getRecommendations(): Promise<RecommendationsResponseDto>;
|
|
124
85
|
getSlideAnalysis(id: string): Promise<PdfSlideDto>;
|
package/src/lib/plato-sdk.js
CHANGED
|
@@ -19,16 +19,14 @@ const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
|
19
19
|
const web_1 = tslib_1.__importDefault(require("@vapi-ai/web"));
|
|
20
20
|
const utils_1 = require("./utils");
|
|
21
21
|
const constants_1 = require("./constants");
|
|
22
|
+
const call_helpers_1 = require("./call-helpers");
|
|
22
23
|
class PlatoApiClient {
|
|
23
24
|
config;
|
|
24
|
-
// private static readonly ACTIVE_CALL_STORAGE_KEY = 'plato_active_call';
|
|
25
25
|
http;
|
|
26
26
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
27
27
|
eventListeners = {};
|
|
28
28
|
callControllerInstance;
|
|
29
29
|
eventsAttached = false;
|
|
30
|
-
// private currentCallId?: string;
|
|
31
|
-
// private receivedAnyTranscript = false;
|
|
32
30
|
// Vapi-native events (events that Vapi SDK supports)
|
|
33
31
|
// Exclude our custom SDK events from this list
|
|
34
32
|
vapiEventNames = [
|
|
@@ -132,125 +130,22 @@ class PlatoApiClient {
|
|
|
132
130
|
listeners.forEach(listener => listener(payload));
|
|
133
131
|
}
|
|
134
132
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
// */
|
|
152
|
-
// private getStoredCallState(): ActiveCallState | null {
|
|
153
|
-
// try {
|
|
154
|
-
// const stored = localStorage.getItem(PlatoApiClient.ACTIVE_CALL_STORAGE_KEY);
|
|
155
|
-
// if (!stored) {
|
|
156
|
-
// return null;
|
|
157
|
-
// }
|
|
158
|
-
// const parsed = JSON.parse(stored) as ActiveCallState;
|
|
159
|
-
// // Validate required fields
|
|
160
|
-
// if (!parsed.callId || !parsed.externalCallId || !parsed.simulationId || !parsed.startedAt) {
|
|
161
|
-
// this.clearCallState();
|
|
162
|
-
// return null;
|
|
163
|
-
// }
|
|
164
|
-
// return parsed;
|
|
165
|
-
// } catch {
|
|
166
|
-
// return null;
|
|
167
|
-
// }
|
|
168
|
-
// }
|
|
169
|
-
// /**
|
|
170
|
-
// * Clear active call state from localStorage.
|
|
171
|
-
// * @private
|
|
172
|
-
// */
|
|
173
|
-
// private clearCallState(): void {
|
|
174
|
-
// try {
|
|
175
|
-
// localStorage.removeItem(PlatoApiClient.ACTIVE_CALL_STORAGE_KEY);
|
|
176
|
-
// } catch {
|
|
177
|
-
// // ignore
|
|
178
|
-
// }
|
|
179
|
-
// }
|
|
180
|
-
// /**
|
|
181
|
-
// * Check if a stored call is considered abandoned based on age.
|
|
182
|
-
// * Calls older than 5 minutes are considered abandoned.
|
|
183
|
-
// * @private
|
|
184
|
-
// * @param state The call state to check
|
|
185
|
-
// * @returns true if the call is abandoned, false otherwise
|
|
186
|
-
// */
|
|
187
|
-
// private isCallAbandoned(state: ActiveCallState): boolean {
|
|
188
|
-
// const ABANDONMENT_THRESHOLD_MS = 5 * 60 * 1000; // 5 minutes
|
|
189
|
-
// const startedAt = new Date(state.startedAt).getTime();
|
|
190
|
-
// const now = Date.now();
|
|
191
|
-
// const age = now - startedAt;
|
|
192
|
-
// return age > ABANDONMENT_THRESHOLD_MS;
|
|
193
|
-
// }
|
|
194
|
-
// /**
|
|
195
|
-
// * Recover and clean up any abandoned calls from previous sessions.
|
|
196
|
-
// *
|
|
197
|
-
// * This method should be called during application initialization,
|
|
198
|
-
// * typically in ngOnInit() or useEffect(). It detects calls that were
|
|
199
|
-
// * active when the page was last refreshed and notifies the backend
|
|
200
|
-
// * to process them if they're older than 5 minutes.
|
|
201
|
-
// *
|
|
202
|
-
// * The backend endpoint is idempotent, so calling this method multiple
|
|
203
|
-
// * times for the same call is safe.
|
|
204
|
-
// *
|
|
205
|
-
// * @returns Promise<boolean> - true if an abandoned call was recovered and processed
|
|
206
|
-
// *
|
|
207
|
-
// * @example
|
|
208
|
-
// * // In Angular component
|
|
209
|
-
// * async ngOnInit(): Promise<void> {
|
|
210
|
-
// * const recovered = await this.platoClient.recoverAbandonedCall();
|
|
211
|
-
// * if (recovered) {
|
|
212
|
-
// * console.log('Recovered abandoned call from previous session');
|
|
213
|
-
// * }
|
|
214
|
-
// * }
|
|
215
|
-
// *
|
|
216
|
-
// * @example
|
|
217
|
-
// * // In React component
|
|
218
|
-
// * useEffect(() => {
|
|
219
|
-
// * platoClient.recoverAbandonedCall()
|
|
220
|
-
// * .then(recovered => {
|
|
221
|
-
// * if (recovered) {
|
|
222
|
-
// * console.log('Recovered abandoned call');
|
|
223
|
-
// * }
|
|
224
|
-
// * })
|
|
225
|
-
// * .catch(console.error);
|
|
226
|
-
// * }, []);
|
|
227
|
-
// */
|
|
228
|
-
// async recoverAbandonedCall(): Promise<boolean> {
|
|
229
|
-
// try {
|
|
230
|
-
// const storedState = this.getStoredCallState();
|
|
231
|
-
// if (!storedState) {
|
|
232
|
-
// return false;
|
|
233
|
-
// }
|
|
234
|
-
// if (!this.isCallAbandoned(storedState)) {
|
|
235
|
-
// return false;
|
|
236
|
-
// }
|
|
237
|
-
// console.log('Detected abandoned call, notifying backend:', storedState.callId);
|
|
238
|
-
// try {
|
|
239
|
-
// const response = await this.http.post('/api/v1/postcall/call-ended', {
|
|
240
|
-
// callId: storedState.callId,
|
|
241
|
-
// });
|
|
242
|
-
// console.log('Backend notified of abandoned call:', response.data);
|
|
243
|
-
// } catch (error) {
|
|
244
|
-
// console.error('Failed to notify backend of abandoned call:', error);
|
|
245
|
-
// }
|
|
246
|
-
// this.clearCallState();
|
|
247
|
-
// return true;
|
|
248
|
-
// } catch (error) {
|
|
249
|
-
// console.error('Error during call recovery:', error);
|
|
250
|
-
// this.clearCallState();
|
|
251
|
-
// return false;
|
|
252
|
-
// }
|
|
253
|
-
// }
|
|
133
|
+
/**
|
|
134
|
+
* Remove all listeners for all call events.
|
|
135
|
+
*/
|
|
136
|
+
removeAllEventListeners() {
|
|
137
|
+
if (!this.callControllerInstance)
|
|
138
|
+
return;
|
|
139
|
+
this.eventNames.forEach(event => {
|
|
140
|
+
(this.eventListeners[event] || []).forEach(listener => {
|
|
141
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
142
|
+
// @ts-expect-error
|
|
143
|
+
this.callControllerInstance?.off(event, listener);
|
|
144
|
+
});
|
|
145
|
+
this.eventListeners[event] = [];
|
|
146
|
+
});
|
|
147
|
+
this.eventsAttached = false;
|
|
148
|
+
}
|
|
254
149
|
async createSimulation(createSimulationParams) {
|
|
255
150
|
try {
|
|
256
151
|
const res = await this.http.post('/api/v1/simulation', {
|
|
@@ -262,10 +157,7 @@ class PlatoApiClient {
|
|
|
262
157
|
};
|
|
263
158
|
}
|
|
264
159
|
catch (e) {
|
|
265
|
-
|
|
266
|
-
// console.error('Error creating simulation:', e.response?.data.message);
|
|
267
|
-
// }
|
|
268
|
-
throw e;
|
|
160
|
+
(0, utils_1.wrapApiError)(e, 'Failed to create simulation');
|
|
269
161
|
}
|
|
270
162
|
}
|
|
271
163
|
async checkSimulationStatus(simulationId) {
|
|
@@ -278,10 +170,7 @@ class PlatoApiClient {
|
|
|
278
170
|
return res.data;
|
|
279
171
|
}
|
|
280
172
|
catch (e) {
|
|
281
|
-
|
|
282
|
-
// console.error('Error getting user simulations:', e.response?.data.message);
|
|
283
|
-
// }
|
|
284
|
-
throw e;
|
|
173
|
+
(0, utils_1.wrapApiError)(e, 'Failed to fetch simulations');
|
|
285
174
|
}
|
|
286
175
|
}
|
|
287
176
|
async getSimulationDetails(simulationId) {
|
|
@@ -290,10 +179,7 @@ class PlatoApiClient {
|
|
|
290
179
|
return res.data;
|
|
291
180
|
}
|
|
292
181
|
catch (e) {
|
|
293
|
-
|
|
294
|
-
// console.error('Error getting simulation details:', e.response?.data.message);
|
|
295
|
-
// }
|
|
296
|
-
throw e;
|
|
182
|
+
(0, utils_1.wrapApiError)(e, 'Failed to fetch simulation details');
|
|
297
183
|
}
|
|
298
184
|
}
|
|
299
185
|
/**
|
|
@@ -306,10 +192,7 @@ class PlatoApiClient {
|
|
|
306
192
|
await this.http.delete(`/api/v1/simulation/${simulationId}`);
|
|
307
193
|
}
|
|
308
194
|
catch (e) {
|
|
309
|
-
|
|
310
|
-
// console.error('Error deleting simulation:', e.response?.data.message);
|
|
311
|
-
// }
|
|
312
|
-
throw e;
|
|
195
|
+
(0, utils_1.wrapApiError)(e, 'Failed to delete simulation');
|
|
313
196
|
}
|
|
314
197
|
}
|
|
315
198
|
async getCallDetails(callId) {
|
|
@@ -318,10 +201,7 @@ class PlatoApiClient {
|
|
|
318
201
|
return res.data;
|
|
319
202
|
}
|
|
320
203
|
catch (e) {
|
|
321
|
-
|
|
322
|
-
// console.error('Error getting call details:', e.response?.data.message);
|
|
323
|
-
// }
|
|
324
|
-
throw e;
|
|
204
|
+
(0, utils_1.wrapApiError)(e, 'Failed to fetch call details');
|
|
325
205
|
}
|
|
326
206
|
}
|
|
327
207
|
async getCallRecordings(queryParams) {
|
|
@@ -332,10 +212,7 @@ class PlatoApiClient {
|
|
|
332
212
|
return res.data;
|
|
333
213
|
}
|
|
334
214
|
catch (e) {
|
|
335
|
-
|
|
336
|
-
// console.error('Error getting call recordings:', e.response?.data.message);
|
|
337
|
-
// }
|
|
338
|
-
throw e;
|
|
215
|
+
(0, utils_1.wrapApiError)(e, 'Failed to fetch call recordings');
|
|
339
216
|
}
|
|
340
217
|
}
|
|
341
218
|
async getCallRecording(callId) {
|
|
@@ -344,139 +221,9 @@ class PlatoApiClient {
|
|
|
344
221
|
return res.data;
|
|
345
222
|
}
|
|
346
223
|
catch (e) {
|
|
347
|
-
|
|
348
|
-
// console.error('Error getting call recording:', e.response?.data.message);
|
|
349
|
-
// }
|
|
350
|
-
throw e;
|
|
224
|
+
(0, utils_1.wrapApiError)(e, 'Failed to fetch call recording');
|
|
351
225
|
}
|
|
352
226
|
}
|
|
353
|
-
/**
|
|
354
|
-
* Remove all listeners for all call events.
|
|
355
|
-
*/
|
|
356
|
-
removeAllEventListeners() {
|
|
357
|
-
if (!this.callControllerInstance)
|
|
358
|
-
return;
|
|
359
|
-
this.eventNames.forEach(event => {
|
|
360
|
-
(this.eventListeners[event] || []).forEach(listener => {
|
|
361
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
362
|
-
// @ts-expect-error
|
|
363
|
-
this.callControllerInstance?.off(event, listener);
|
|
364
|
-
});
|
|
365
|
-
this.eventListeners[event] = [];
|
|
366
|
-
});
|
|
367
|
-
this.eventsAttached = false;
|
|
368
|
-
}
|
|
369
|
-
// async startCall(simulationId: string) {
|
|
370
|
-
// // Check for any previous call state before starting new call
|
|
371
|
-
// // If found, notify backend to ensure it gets processed
|
|
372
|
-
// const storedState = this.getStoredCallState();
|
|
373
|
-
// if (storedState) {
|
|
374
|
-
// try {
|
|
375
|
-
// await this.http.post('/api/v1/postcall/call-ended', {
|
|
376
|
-
// callId: storedState.callId,
|
|
377
|
-
// });
|
|
378
|
-
// } catch {
|
|
379
|
-
// // ignore
|
|
380
|
-
// }
|
|
381
|
-
// }
|
|
382
|
-
//
|
|
383
|
-
// // Now clear the state before starting new call
|
|
384
|
-
// this.clearCallState();
|
|
385
|
-
//
|
|
386
|
-
// this.callControllerInstance = new Vapi(
|
|
387
|
-
// this.config.publicKey,
|
|
388
|
-
// 'https://db41aykk1gw9e.cloudfront.net' // base url
|
|
389
|
-
// );
|
|
390
|
-
// if (!this.eventsAttached) {
|
|
391
|
-
// this.attachEvents();
|
|
392
|
-
// }
|
|
393
|
-
//
|
|
394
|
-
// this.receivedAnyTranscript = false;
|
|
395
|
-
// this.callControllerInstance.on(
|
|
396
|
-
// 'message',
|
|
397
|
-
// (msg: { transcript?: string; type?: string; status?: string; endedReason?: string }) => {
|
|
398
|
-
// if (msg.transcript && msg.transcript.trim().length > 0) {
|
|
399
|
-
// this.receivedAnyTranscript = true;
|
|
400
|
-
// }
|
|
401
|
-
// if (msg.type === 'status-update' && msg.status === 'ended' && msg.endedReason) {
|
|
402
|
-
// const reason = msg.endedReason;
|
|
403
|
-
// const isInactivity = /silence|inactivity/i.test(reason);
|
|
404
|
-
// this.emit('call-ended-reason', { reason, isInactivity });
|
|
405
|
-
// }
|
|
406
|
-
// }
|
|
407
|
-
// );
|
|
408
|
-
//
|
|
409
|
-
// // Internal call-end listener
|
|
410
|
-
// this.callControllerInstance.on('call-end', () => {
|
|
411
|
-
// this.onCallEnded().catch(() => {
|
|
412
|
-
// // ignore
|
|
413
|
-
// });
|
|
414
|
-
// });
|
|
415
|
-
//
|
|
416
|
-
// const { data } = await this.http.get(`/api/v1/simulation/${simulationId}`);
|
|
417
|
-
// const assistantId = data as string;
|
|
418
|
-
//
|
|
419
|
-
// let capturedVapiError: unknown;
|
|
420
|
-
// const vapiErrorCapture = (error: unknown) => {
|
|
421
|
-
// capturedVapiError = error;
|
|
422
|
-
// };
|
|
423
|
-
// this.callControllerInstance.on('error', vapiErrorCapture);
|
|
424
|
-
//
|
|
425
|
-
// let call: Call | null;
|
|
426
|
-
// try {
|
|
427
|
-
// call = await this.callControllerInstance.start(assistantId);
|
|
428
|
-
// } catch (e) {
|
|
429
|
-
// this.callControllerInstance.off('error', vapiErrorCapture);
|
|
430
|
-
// this.callControllerInstance?.stop();
|
|
431
|
-
// this.removeAllEventListeners();
|
|
432
|
-
// this.clearCallState();
|
|
433
|
-
// throw e;
|
|
434
|
-
// }
|
|
435
|
-
//
|
|
436
|
-
// this.callControllerInstance.off('error', vapiErrorCapture);
|
|
437
|
-
//
|
|
438
|
-
// if (!call || !call.assistantId) {
|
|
439
|
-
// this.callControllerInstance?.stop();
|
|
440
|
-
// this.removeAllEventListeners();
|
|
441
|
-
// this.clearCallState();
|
|
442
|
-
// if (isCallConcurrencyError(capturedVapiError)) {
|
|
443
|
-
// throw new CallConcurrencyLimitError();
|
|
444
|
-
// }
|
|
445
|
-
// throw new Error('Cannot start a call, please try again later');
|
|
446
|
-
// }
|
|
447
|
-
// try {
|
|
448
|
-
// const apiCall = await this.createCall({
|
|
449
|
-
// callId: call.id,
|
|
450
|
-
// assistantId: call.assistantId,
|
|
451
|
-
// });
|
|
452
|
-
//
|
|
453
|
-
// this.currentCallId = apiCall._id;
|
|
454
|
-
//
|
|
455
|
-
// this.storeCallState({
|
|
456
|
-
// callId: apiCall._id,
|
|
457
|
-
// externalCallId: call.id,
|
|
458
|
-
// simulationId: simulationId,
|
|
459
|
-
// startedAt: new Date().toISOString(),
|
|
460
|
-
// version: 1,
|
|
461
|
-
// });
|
|
462
|
-
//
|
|
463
|
-
// return {
|
|
464
|
-
// stopCall: () => {
|
|
465
|
-
// this.callControllerInstance?.stop();
|
|
466
|
-
// },
|
|
467
|
-
// callId: apiCall._id,
|
|
468
|
-
// on: <K extends CallEventNames>(event: K, listener: CallEventListener<K>) =>
|
|
469
|
-
// this.on(event, listener),
|
|
470
|
-
// off: <K extends CallEventNames>(event: K, listener: CallEventListener<K>) =>
|
|
471
|
-
// this.off(event, listener),
|
|
472
|
-
// };
|
|
473
|
-
// } catch (e) {
|
|
474
|
-
// this.callControllerInstance?.stop();
|
|
475
|
-
// this.removeAllEventListeners();
|
|
476
|
-
// this.clearCallState();
|
|
477
|
-
// throw e;
|
|
478
|
-
// }
|
|
479
|
-
// }
|
|
480
227
|
/**
|
|
481
228
|
* Starts a call for the given simulation.
|
|
482
229
|
* Polls the backend after call-end until the call is finalized, then emits 'call-details-ready'.
|
|
@@ -499,62 +246,17 @@ class PlatoApiClient {
|
|
|
499
246
|
if (!callId)
|
|
500
247
|
return;
|
|
501
248
|
const callAge = Date.now() - callStartedAt;
|
|
502
|
-
|
|
249
|
+
const resolvedCallId = callId;
|
|
250
|
+
const emit = (event, payload) => this.emit(event, payload);
|
|
251
|
+
const removeAll = () => this.removeAllEventListeners();
|
|
503
252
|
if (callAge < 20000) {
|
|
504
253
|
// Call ended within 20s — return whatever is in the DB without requiring a transcript
|
|
505
|
-
|
|
506
|
-
void this.
|
|
507
|
-
const fetchAndEmit = async () => {
|
|
508
|
-
try {
|
|
509
|
-
// console.log('[PlatoSDK] Early end (<20s) — fetching call details immediately (no transcript check)');
|
|
510
|
-
const { data } = await this.http.get(`/api/v1/simulation/call/${resolvedCallId}`);
|
|
511
|
-
this.emit('call-details-ready', data);
|
|
512
|
-
}
|
|
513
|
-
catch (e) {
|
|
514
|
-
this.emit('error', e instanceof Error ? e : new Error('Failed to fetch call details'));
|
|
515
|
-
}
|
|
516
|
-
finally {
|
|
517
|
-
this.removeAllEventListeners();
|
|
518
|
-
}
|
|
519
|
-
};
|
|
520
|
-
void fetchAndEmit();
|
|
254
|
+
void (0, call_helpers_1.setPostCallEligibility)(this.http, resolvedCallId, false);
|
|
255
|
+
void (0, call_helpers_1.fetchAndEmitCallDetails)(this.http, resolvedCallId, emit, removeAll);
|
|
521
256
|
return;
|
|
522
257
|
}
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
let stopped = false;
|
|
526
|
-
let nextPollTimer;
|
|
527
|
-
const poll = async () => {
|
|
528
|
-
if (stopped)
|
|
529
|
-
return;
|
|
530
|
-
try {
|
|
531
|
-
// console.log('[PlatoSDK] Polling for call details (waiting for transcript)...');
|
|
532
|
-
const { data } = await this.http.get(`/api/v1/simulation/call/${resolvedCallId}`);
|
|
533
|
-
if (data.transcript) {
|
|
534
|
-
stopped = true;
|
|
535
|
-
clearTimeout(globalTimer);
|
|
536
|
-
// console.log('[PlatoSDK] Transcript ready — emitting call-details-ready');
|
|
537
|
-
this.emit('call-details-ready', data);
|
|
538
|
-
this.removeAllEventListeners();
|
|
539
|
-
return;
|
|
540
|
-
}
|
|
541
|
-
}
|
|
542
|
-
catch {
|
|
543
|
-
// ignore transient errors, keep polling
|
|
544
|
-
}
|
|
545
|
-
nextPollTimer = setTimeout(() => void poll(), 3000);
|
|
546
|
-
};
|
|
547
|
-
nextPollTimer = setTimeout(() => void poll(), 3000);
|
|
548
|
-
const globalTimer = setTimeout(() => {
|
|
549
|
-
stopped = true;
|
|
550
|
-
clearTimeout(nextPollTimer);
|
|
551
|
-
this.removeAllEventListeners();
|
|
552
|
-
}, 60000);
|
|
553
|
-
stopPolling = () => {
|
|
554
|
-
stopped = true;
|
|
555
|
-
clearTimeout(nextPollTimer);
|
|
556
|
-
clearTimeout(globalTimer);
|
|
557
|
-
};
|
|
258
|
+
void (0, call_helpers_1.setPostCallEligibility)(this.http, resolvedCallId, true);
|
|
259
|
+
({ stopPolling } = (0, call_helpers_1.startPolling)(this.http, resolvedCallId, emit, removeAll));
|
|
558
260
|
});
|
|
559
261
|
const { data } = await this.http.get(`/api/v1/simulation/${simulationId}`);
|
|
560
262
|
const assistantId = data;
|
|
@@ -564,7 +266,6 @@ class PlatoApiClient {
|
|
|
564
266
|
};
|
|
565
267
|
this.callControllerInstance.on('error', vapiErrorCapture);
|
|
566
268
|
const callStartedAt = Date.now();
|
|
567
|
-
// console.log('[PlatoSDK] Call start initiated at:', new Date(callStartedAt).toISOString());
|
|
568
269
|
let call;
|
|
569
270
|
try {
|
|
570
271
|
call = await this.callControllerInstance.start(assistantId);
|
|
@@ -585,7 +286,7 @@ class PlatoApiClient {
|
|
|
585
286
|
throw new Error('Cannot start a call, please try again later');
|
|
586
287
|
}
|
|
587
288
|
try {
|
|
588
|
-
const apiCall = await
|
|
289
|
+
const apiCall = await (0, call_helpers_1.createCall)(this.http, {
|
|
589
290
|
callId: call.id,
|
|
590
291
|
assistantId: call.assistantId,
|
|
591
292
|
});
|
|
@@ -627,62 +328,6 @@ class PlatoApiClient {
|
|
|
627
328
|
throw e;
|
|
628
329
|
}
|
|
629
330
|
}
|
|
630
|
-
// private async onCallEnded(): Promise<void> {
|
|
631
|
-
// let callIdForRetry: string | undefined;
|
|
632
|
-
// try {
|
|
633
|
-
// if (!this.currentCallId) {
|
|
634
|
-
// return;
|
|
635
|
-
// }
|
|
636
|
-
//
|
|
637
|
-
// if (!this.receivedAnyTranscript) {
|
|
638
|
-
// return;
|
|
639
|
-
// }
|
|
640
|
-
//
|
|
641
|
-
// callIdForRetry = this.currentCallId;
|
|
642
|
-
//
|
|
643
|
-
// // First attempt
|
|
644
|
-
// let response = await this.http.post('/api/v1/postcall/call-ended', {
|
|
645
|
-
// callId: callIdForRetry,
|
|
646
|
-
// });
|
|
647
|
-
//
|
|
648
|
-
// // If status is "processing", retry once immediately
|
|
649
|
-
// if (response.data?.status === 'processing') {
|
|
650
|
-
// response = await this.http.post('/api/v1/postcall/call-ended', {
|
|
651
|
-
// callId: callIdForRetry,
|
|
652
|
-
// });
|
|
653
|
-
// }
|
|
654
|
-
//
|
|
655
|
-
// try {
|
|
656
|
-
// const callDetails = await this.getCallDetails(callIdForRetry);
|
|
657
|
-
// this.emit('call-details-ready', callDetails);
|
|
658
|
-
// } catch {
|
|
659
|
-
// // ignore
|
|
660
|
-
// }
|
|
661
|
-
// } catch {
|
|
662
|
-
// // ignore
|
|
663
|
-
// } finally {
|
|
664
|
-
// this.currentCallId = undefined;
|
|
665
|
-
// this.clearCallState();
|
|
666
|
-
// this.removeAllEventListeners();
|
|
667
|
-
// }
|
|
668
|
-
// }
|
|
669
|
-
async setPostCallEligibility(callId, eligible) {
|
|
670
|
-
try {
|
|
671
|
-
await this.http.patch(`/api/v1/simulation/call/${callId}/eligibility`, {
|
|
672
|
-
postCallEligibility: eligible,
|
|
673
|
-
});
|
|
674
|
-
}
|
|
675
|
-
catch {
|
|
676
|
-
// ignore — eligibility flag is best-effort
|
|
677
|
-
//console.warn('[PlatoSDK] Failed to set postCallEligibility:', e);
|
|
678
|
-
}
|
|
679
|
-
}
|
|
680
|
-
async createCall(payload) {
|
|
681
|
-
const response = await this.http.post('/api/v1/simulation/call', {
|
|
682
|
-
...payload,
|
|
683
|
-
});
|
|
684
|
-
return response.data;
|
|
685
|
-
}
|
|
686
331
|
async uploadPdfSlides(file) {
|
|
687
332
|
try {
|
|
688
333
|
const checkResult = (0, utils_1.checkFile)(file, constants_1.MAX_PDF_FILE_SIZE, constants_1.ALLOWED_PDF_MIME_TYPES);
|
|
@@ -726,13 +371,8 @@ class PlatoApiClient {
|
|
|
726
371
|
}
|
|
727
372
|
catch (uploadError) {
|
|
728
373
|
// S3 upload failed - clean up the MongoDB record created during request-upload
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
}
|
|
732
|
-
catch {
|
|
733
|
-
// console.error('Failed to clean up PDF record after upload failure:', deleteError);
|
|
734
|
-
}
|
|
735
|
-
throw uploadError;
|
|
374
|
+
await this.deleteSlideAnalysis(pdfId).catch(() => undefined);
|
|
375
|
+
(0, utils_1.wrapApiError)(uploadError, 'Failed to upload PDF to storage');
|
|
736
376
|
}
|
|
737
377
|
/*
|
|
738
378
|
// replace const { presignedPost, pdfId } with const { presignedPost, objectKey, pdfId }
|
|
@@ -744,15 +384,7 @@ class PlatoApiClient {
|
|
|
744
384
|
return pdfId;
|
|
745
385
|
}
|
|
746
386
|
catch (e) {
|
|
747
|
-
|
|
748
|
-
// console.error('Error uploading PDF slides:', e.response?.data?.message || e.message);
|
|
749
|
-
// } else {
|
|
750
|
-
// console.error(
|
|
751
|
-
// 'Error uploading PDF slides:',
|
|
752
|
-
// e instanceof Error ? e.message : 'Unknown error'
|
|
753
|
-
// );
|
|
754
|
-
// }
|
|
755
|
-
throw e;
|
|
387
|
+
(0, utils_1.wrapApiError)(e, 'Failed to upload PDF');
|
|
756
388
|
}
|
|
757
389
|
}
|
|
758
390
|
async getRecommendations() {
|
|
@@ -761,10 +393,7 @@ class PlatoApiClient {
|
|
|
761
393
|
return res.data;
|
|
762
394
|
}
|
|
763
395
|
catch (e) {
|
|
764
|
-
|
|
765
|
-
// console.error('Error getting recommendations:', e.response?.data.message);
|
|
766
|
-
// }
|
|
767
|
-
throw e;
|
|
396
|
+
(0, utils_1.wrapApiError)(e, 'Failed to fetch recommendations');
|
|
768
397
|
}
|
|
769
398
|
}
|
|
770
399
|
async getSlideAnalysis(id) {
|
|
@@ -773,10 +402,7 @@ class PlatoApiClient {
|
|
|
773
402
|
return res.data;
|
|
774
403
|
}
|
|
775
404
|
catch (e) {
|
|
776
|
-
|
|
777
|
-
// console.error('Error getting PDF slide analysis by ID:', e.response?.data.message);
|
|
778
|
-
// }
|
|
779
|
-
throw e;
|
|
405
|
+
(0, utils_1.wrapApiError)(e, 'Failed to fetch slide analysis');
|
|
780
406
|
}
|
|
781
407
|
}
|
|
782
408
|
async deleteSlideAnalysis(id) {
|
|
@@ -784,10 +410,7 @@ class PlatoApiClient {
|
|
|
784
410
|
await this.http.delete(`/api/v1/pdfSlides/${id}`);
|
|
785
411
|
}
|
|
786
412
|
catch (e) {
|
|
787
|
-
|
|
788
|
-
// console.error('Error deleting PDF slide analysis:', e.response?.data.message);
|
|
789
|
-
// }
|
|
790
|
-
throw e;
|
|
413
|
+
(0, utils_1.wrapApiError)(e, 'Failed to delete slide analysis');
|
|
791
414
|
}
|
|
792
415
|
}
|
|
793
416
|
async checkPdfStatus(id) {
|
|
@@ -796,10 +419,7 @@ class PlatoApiClient {
|
|
|
796
419
|
return res.data;
|
|
797
420
|
}
|
|
798
421
|
catch (e) {
|
|
799
|
-
|
|
800
|
-
// console.error('Error checking PDF status:', e.response?.data.message);
|
|
801
|
-
// }
|
|
802
|
-
throw e;
|
|
422
|
+
(0, utils_1.wrapApiError)(e, 'Failed to check PDF status');
|
|
803
423
|
}
|
|
804
424
|
}
|
|
805
425
|
async getAssistantImages() {
|
|
@@ -808,10 +428,7 @@ class PlatoApiClient {
|
|
|
808
428
|
return res.data;
|
|
809
429
|
}
|
|
810
430
|
catch (e) {
|
|
811
|
-
|
|
812
|
-
// console.error('Error getting assistant images:', e.response?.data.message);
|
|
813
|
-
// }
|
|
814
|
-
throw e;
|
|
431
|
+
(0, utils_1.wrapApiError)(e, 'Failed to fetch assistant images');
|
|
815
432
|
}
|
|
816
433
|
}
|
|
817
434
|
/**
|
|
@@ -826,10 +443,7 @@ class PlatoApiClient {
|
|
|
826
443
|
await this.http.delete(`/api/v1/simulation/call/${callId}`);
|
|
827
444
|
}
|
|
828
445
|
catch (e) {
|
|
829
|
-
|
|
830
|
-
// console.error('Error deleting call:', e.response?.data.message);
|
|
831
|
-
// }
|
|
832
|
-
throw e;
|
|
446
|
+
(0, utils_1.wrapApiError)(e, 'Failed to delete call');
|
|
833
447
|
}
|
|
834
448
|
}
|
|
835
449
|
}
|
package/src/lib/plato-sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plato-sdk.js","sourceRoot":"","sources":["../../../../../libs/plato-sdk/src/lib/plato-sdk.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plato-sdk.js","sourceRoot":"","sources":["../../../../../libs/plato-sdk/src/lib/plato-sdk.ts"],"names":[],"mappings":"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"}
|
package/src/lib/utils.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export declare class PdfAlreadyExistsError extends Error {
|
|
|
5
5
|
readonly pdfId: string;
|
|
6
6
|
constructor(pdfId: string);
|
|
7
7
|
}
|
|
8
|
+
export declare function wrapApiError(e: unknown, operation: string): never;
|
|
8
9
|
export declare function isCallConcurrencyError(err: unknown): boolean;
|
|
9
10
|
/**
|
|
10
11
|
* Validates a file against size and type constraints.
|
package/src/lib/utils.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PdfAlreadyExistsError = exports.CallConcurrencyLimitError = void 0;
|
|
4
|
+
exports.wrapApiError = wrapApiError;
|
|
4
5
|
exports.isCallConcurrencyError = isCallConcurrencyError;
|
|
5
6
|
exports.checkFile = checkFile;
|
|
6
7
|
exports.calculateHash = calculateHash;
|
|
7
8
|
exports.getPdfPageCount = getPdfPageCount;
|
|
9
|
+
const tslib_1 = require("tslib");
|
|
8
10
|
/**
|
|
9
11
|
* Copyright (c) 2025 ctcHealth. All rights reserved.
|
|
10
12
|
*
|
|
@@ -18,6 +20,7 @@ exports.getPdfPageCount = getPdfPageCount;
|
|
|
18
20
|
*
|
|
19
21
|
* For internal use only.
|
|
20
22
|
*/
|
|
23
|
+
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
21
24
|
const pdf_lib_1 = require("pdf-lib");
|
|
22
25
|
class CallConcurrencyLimitError extends Error {
|
|
23
26
|
constructor() {
|
|
@@ -35,6 +38,25 @@ class PdfAlreadyExistsError extends Error {
|
|
|
35
38
|
}
|
|
36
39
|
}
|
|
37
40
|
exports.PdfAlreadyExistsError = PdfAlreadyExistsError;
|
|
41
|
+
const HTTP_STATUS_REASONS = {
|
|
42
|
+
401: 'authentication required',
|
|
43
|
+
403: 'permission denied',
|
|
44
|
+
404: 'not found',
|
|
45
|
+
409: 'conflict',
|
|
46
|
+
};
|
|
47
|
+
function wrapApiError(e, operation) {
|
|
48
|
+
if (axios_1.default.isAxiosError(e)) {
|
|
49
|
+
const status = e.response?.status;
|
|
50
|
+
const reason = !e.response
|
|
51
|
+
? 'network error, please check your connection'
|
|
52
|
+
: (status && HTTP_STATUS_REASONS[status]) ??
|
|
53
|
+
(status && status >= 500 ? 'server error, please try again' : 'request failed');
|
|
54
|
+
throw new Error(`${operation}: ${reason}.`, { cause: e });
|
|
55
|
+
}
|
|
56
|
+
if (e instanceof Error)
|
|
57
|
+
throw e;
|
|
58
|
+
throw new Error(`${operation}: unexpected error.`);
|
|
59
|
+
}
|
|
38
60
|
function isCallConcurrencyError(err) {
|
|
39
61
|
if (!err || typeof err !== 'object')
|
|
40
62
|
return false;
|
package/src/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../libs/plato-sdk/src/lib/utils.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../libs/plato-sdk/src/lib/utils.ts"],"names":[],"mappings":"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"}
|