@elqnt/chat 3.0.2 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -0
- package/dist/api/index.d.mts +53 -2
- package/dist/api/index.d.ts +53 -2
- package/dist/api/index.js +79 -9
- package/dist/api/index.js.map +1 -1
- package/dist/api/index.mjs +65 -9
- package/dist/api/index.mjs.map +1 -1
- package/dist/hooks/index.d.mts +134 -2
- package/dist/hooks/index.d.ts +134 -2
- package/dist/hooks/index.js +713 -8
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +706 -7
- package/dist/hooks/index.mjs.map +1 -1
- package/dist/index.d.mts +6 -3
- package/dist/index.d.ts +6 -3
- package/dist/index.js +722 -8
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +712 -7
- package/dist/index.mjs.map +1 -1
- package/dist/models/index.d.mts +78 -3
- package/dist/models/index.d.ts +78 -3
- package/dist/models/index.js +9 -0
- package/dist/models/index.js.map +1 -1
- package/dist/models/index.mjs +6 -0
- package/dist/models/index.mjs.map +1 -1
- package/dist/transport/index.js +2 -1
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/index.mjs +2 -1
- package/dist/transport/index.mjs.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -14,6 +14,33 @@ Platform-agnostic chat SDK for React and React Native. Uses HTTP + SSE for relia
|
|
|
14
14
|
pnpm add @elqnt/chat
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
+
## TypeScript Configuration
|
|
18
|
+
|
|
19
|
+
This package uses [subpath exports](https://nodejs.org/api/packages.html#subpath-exports). Ensure your `tsconfig.json` includes a compatible `moduleResolution` setting:
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"compilerOptions": {
|
|
24
|
+
"moduleResolution": "bundler"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Supported values: `"bundler"`, `"node16"`, or `"nodenext"`.
|
|
30
|
+
|
|
31
|
+
### Expo / React Native
|
|
32
|
+
|
|
33
|
+
For Expo projects, add to your `tsconfig.json`:
|
|
34
|
+
|
|
35
|
+
```json
|
|
36
|
+
{
|
|
37
|
+
"extends": "expo/tsconfig.base",
|
|
38
|
+
"compilerOptions": {
|
|
39
|
+
"moduleResolution": "bundler"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
17
44
|
## Quick Start
|
|
18
45
|
|
|
19
46
|
```tsx
|
package/dist/api/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ApiClientOptions, ApiResponse } from '@elqnt/api-client';
|
|
2
2
|
import { ResponseMetadata } from '@elqnt/types';
|
|
3
|
-
import { Chat, ChatSummary } from '../models/index.mjs';
|
|
3
|
+
import { Chat, MemoryProfile, ChatSummary } from '../models/index.mjs';
|
|
4
4
|
import '@elqnt/kg';
|
|
5
5
|
import '@elqnt/docs';
|
|
6
6
|
|
|
@@ -234,6 +234,21 @@ declare function sendTypingIndicator(options: TypingApiOptions): Promise<void>;
|
|
|
234
234
|
*/
|
|
235
235
|
declare function sendEvent(options: SendEventApiOptions): Promise<void>;
|
|
236
236
|
|
|
237
|
+
interface SummaryView {
|
|
238
|
+
chatKey: string;
|
|
239
|
+
text: string;
|
|
240
|
+
updatedAt: string;
|
|
241
|
+
}
|
|
242
|
+
declare const getProfileApi: (o: ApiClientOptions) => Promise<ApiResponse<MemoryProfile>>;
|
|
243
|
+
declare const patchProfileApi: (patch: Partial<MemoryProfile>, o: ApiClientOptions) => Promise<ApiResponse<MemoryProfile>>;
|
|
244
|
+
declare const replaceProfileApi: (p: MemoryProfile, o: ApiClientOptions) => Promise<ApiResponse<MemoryProfile>>;
|
|
245
|
+
declare const clearProfileApi: (o: ApiClientOptions) => Promise<ApiResponse<MemoryProfile>>;
|
|
246
|
+
declare const deleteContactApi: (name: string, o: ApiClientOptions) => Promise<ApiResponse<MemoryProfile>>;
|
|
247
|
+
declare const deleteNoteApi: (index: number, o: ApiClientOptions) => Promise<ApiResponse<MemoryProfile>>;
|
|
248
|
+
declare const getSummaryApi: (chatKey: string, o: ApiClientOptions) => Promise<ApiResponse<SummaryView>>;
|
|
249
|
+
declare const clearSummaryApi: (chatKey: string, o: ApiClientOptions) => Promise<ApiResponse<void>>;
|
|
250
|
+
declare const regenerateSummaryApi: (chatKey: string, o: ApiClientOptions) => Promise<ApiResponse<SummaryView>>;
|
|
251
|
+
|
|
237
252
|
/**
|
|
238
253
|
* Chat API
|
|
239
254
|
*
|
|
@@ -280,6 +295,37 @@ interface ActiveChatsCountResponse {
|
|
|
280
295
|
count: number;
|
|
281
296
|
metadata: ResponseMetadata;
|
|
282
297
|
}
|
|
298
|
+
interface WaitingChatsCountResponse {
|
|
299
|
+
count: number;
|
|
300
|
+
metadata: ResponseMetadata;
|
|
301
|
+
}
|
|
302
|
+
interface QueueResponse {
|
|
303
|
+
queues: Queue[];
|
|
304
|
+
metadata: ResponseMetadata;
|
|
305
|
+
}
|
|
306
|
+
interface Queue {
|
|
307
|
+
id: string;
|
|
308
|
+
name: string;
|
|
309
|
+
agentId: string;
|
|
310
|
+
waitingCount: number;
|
|
311
|
+
activeCount: number;
|
|
312
|
+
}
|
|
313
|
+
interface AgentSession {
|
|
314
|
+
agentId: string;
|
|
315
|
+
userId: string;
|
|
316
|
+
userEmail: string;
|
|
317
|
+
status: string;
|
|
318
|
+
connectedAt: string;
|
|
319
|
+
lastActivityAt: string;
|
|
320
|
+
}
|
|
321
|
+
interface OnlineSessionsResponse {
|
|
322
|
+
sessions: AgentSession[];
|
|
323
|
+
metadata: ResponseMetadata;
|
|
324
|
+
}
|
|
325
|
+
interface AgentSessionResponse {
|
|
326
|
+
session: AgentSession;
|
|
327
|
+
metadata: ResponseMetadata;
|
|
328
|
+
}
|
|
283
329
|
declare function getChatHistoryApi(options: ApiClientOptions & {
|
|
284
330
|
limit?: number;
|
|
285
331
|
offset?: number;
|
|
@@ -306,5 +352,10 @@ declare function addChatToProjectApi(projectId: string, chatKey: string, options
|
|
|
306
352
|
success: boolean;
|
|
307
353
|
metadata: ResponseMetadata;
|
|
308
354
|
}>>;
|
|
355
|
+
declare function getWaitingChatsCountApi(options: ApiClientOptions): Promise<ApiResponse<WaitingChatsCountResponse>>;
|
|
356
|
+
declare function getChatsByUserApi(userEmail: string, options: ApiClientOptions): Promise<ApiResponse<ChatHistoryResponse>>;
|
|
357
|
+
declare function listQueuesApi(options: ApiClientOptions): Promise<ApiResponse<QueueResponse>>;
|
|
358
|
+
declare function getOnlineSessionsApi(options: ApiClientOptions): Promise<ApiResponse<OnlineSessionsResponse>>;
|
|
359
|
+
declare function getAgentSessionApi(agentId: string, options: ApiClientOptions): Promise<ApiResponse<AgentSessionResponse>>;
|
|
309
360
|
|
|
310
|
-
export { type ActiveChatsCountResponse, type ActiveChatsResponse, Chat, type ChatHistoryResponse, type ChatResponse, ChatSummary, type CreateChatApiOptions, type CreateChatResponseData, type EndChatApiOptions, type LoadChatApiOptions, type LoadChatResponseData, type SendEventApiOptions, type SendMessageApiOptions, type StreamApiOptions, type StreamApiResponse, type TypingApiOptions, type UpdateChatResponse, addChatToProjectApi, createChat, deleteChatApi, endChat, getActiveChatsApi, getActiveChatsCountApi, getChatApi, getChatHistoryApi, loadChat, sendChatMessage, sendEvent, sendTypingIndicator, updateChatApi, updateProjectChatTitleApi };
|
|
361
|
+
export { type ActiveChatsCountResponse, type ActiveChatsResponse, type AgentSession, type AgentSessionResponse, Chat, type ChatHistoryResponse, type ChatResponse, ChatSummary, type CreateChatApiOptions, type CreateChatResponseData, type EndChatApiOptions, type LoadChatApiOptions, type LoadChatResponseData, type OnlineSessionsResponse, type Queue, type QueueResponse, type SendEventApiOptions, type SendMessageApiOptions, type StreamApiOptions, type StreamApiResponse, type SummaryView, type TypingApiOptions, type UpdateChatResponse, type WaitingChatsCountResponse, addChatToProjectApi, clearProfileApi, clearSummaryApi, createChat, deleteChatApi, deleteContactApi, deleteNoteApi, endChat, getActiveChatsApi, getActiveChatsCountApi, getAgentSessionApi, getChatApi, getChatHistoryApi, getChatsByUserApi, getOnlineSessionsApi, getProfileApi, getSummaryApi, getWaitingChatsCountApi, listQueuesApi, loadChat, patchProfileApi, regenerateSummaryApi, replaceProfileApi, sendChatMessage, sendEvent, sendTypingIndicator, updateChatApi, updateProjectChatTitleApi };
|
package/dist/api/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ApiClientOptions, ApiResponse } from '@elqnt/api-client';
|
|
2
2
|
import { ResponseMetadata } from '@elqnt/types';
|
|
3
|
-
import { Chat, ChatSummary } from '../models/index.js';
|
|
3
|
+
import { Chat, MemoryProfile, ChatSummary } from '../models/index.js';
|
|
4
4
|
import '@elqnt/kg';
|
|
5
5
|
import '@elqnt/docs';
|
|
6
6
|
|
|
@@ -234,6 +234,21 @@ declare function sendTypingIndicator(options: TypingApiOptions): Promise<void>;
|
|
|
234
234
|
*/
|
|
235
235
|
declare function sendEvent(options: SendEventApiOptions): Promise<void>;
|
|
236
236
|
|
|
237
|
+
interface SummaryView {
|
|
238
|
+
chatKey: string;
|
|
239
|
+
text: string;
|
|
240
|
+
updatedAt: string;
|
|
241
|
+
}
|
|
242
|
+
declare const getProfileApi: (o: ApiClientOptions) => Promise<ApiResponse<MemoryProfile>>;
|
|
243
|
+
declare const patchProfileApi: (patch: Partial<MemoryProfile>, o: ApiClientOptions) => Promise<ApiResponse<MemoryProfile>>;
|
|
244
|
+
declare const replaceProfileApi: (p: MemoryProfile, o: ApiClientOptions) => Promise<ApiResponse<MemoryProfile>>;
|
|
245
|
+
declare const clearProfileApi: (o: ApiClientOptions) => Promise<ApiResponse<MemoryProfile>>;
|
|
246
|
+
declare const deleteContactApi: (name: string, o: ApiClientOptions) => Promise<ApiResponse<MemoryProfile>>;
|
|
247
|
+
declare const deleteNoteApi: (index: number, o: ApiClientOptions) => Promise<ApiResponse<MemoryProfile>>;
|
|
248
|
+
declare const getSummaryApi: (chatKey: string, o: ApiClientOptions) => Promise<ApiResponse<SummaryView>>;
|
|
249
|
+
declare const clearSummaryApi: (chatKey: string, o: ApiClientOptions) => Promise<ApiResponse<void>>;
|
|
250
|
+
declare const regenerateSummaryApi: (chatKey: string, o: ApiClientOptions) => Promise<ApiResponse<SummaryView>>;
|
|
251
|
+
|
|
237
252
|
/**
|
|
238
253
|
* Chat API
|
|
239
254
|
*
|
|
@@ -280,6 +295,37 @@ interface ActiveChatsCountResponse {
|
|
|
280
295
|
count: number;
|
|
281
296
|
metadata: ResponseMetadata;
|
|
282
297
|
}
|
|
298
|
+
interface WaitingChatsCountResponse {
|
|
299
|
+
count: number;
|
|
300
|
+
metadata: ResponseMetadata;
|
|
301
|
+
}
|
|
302
|
+
interface QueueResponse {
|
|
303
|
+
queues: Queue[];
|
|
304
|
+
metadata: ResponseMetadata;
|
|
305
|
+
}
|
|
306
|
+
interface Queue {
|
|
307
|
+
id: string;
|
|
308
|
+
name: string;
|
|
309
|
+
agentId: string;
|
|
310
|
+
waitingCount: number;
|
|
311
|
+
activeCount: number;
|
|
312
|
+
}
|
|
313
|
+
interface AgentSession {
|
|
314
|
+
agentId: string;
|
|
315
|
+
userId: string;
|
|
316
|
+
userEmail: string;
|
|
317
|
+
status: string;
|
|
318
|
+
connectedAt: string;
|
|
319
|
+
lastActivityAt: string;
|
|
320
|
+
}
|
|
321
|
+
interface OnlineSessionsResponse {
|
|
322
|
+
sessions: AgentSession[];
|
|
323
|
+
metadata: ResponseMetadata;
|
|
324
|
+
}
|
|
325
|
+
interface AgentSessionResponse {
|
|
326
|
+
session: AgentSession;
|
|
327
|
+
metadata: ResponseMetadata;
|
|
328
|
+
}
|
|
283
329
|
declare function getChatHistoryApi(options: ApiClientOptions & {
|
|
284
330
|
limit?: number;
|
|
285
331
|
offset?: number;
|
|
@@ -306,5 +352,10 @@ declare function addChatToProjectApi(projectId: string, chatKey: string, options
|
|
|
306
352
|
success: boolean;
|
|
307
353
|
metadata: ResponseMetadata;
|
|
308
354
|
}>>;
|
|
355
|
+
declare function getWaitingChatsCountApi(options: ApiClientOptions): Promise<ApiResponse<WaitingChatsCountResponse>>;
|
|
356
|
+
declare function getChatsByUserApi(userEmail: string, options: ApiClientOptions): Promise<ApiResponse<ChatHistoryResponse>>;
|
|
357
|
+
declare function listQueuesApi(options: ApiClientOptions): Promise<ApiResponse<QueueResponse>>;
|
|
358
|
+
declare function getOnlineSessionsApi(options: ApiClientOptions): Promise<ApiResponse<OnlineSessionsResponse>>;
|
|
359
|
+
declare function getAgentSessionApi(agentId: string, options: ApiClientOptions): Promise<ApiResponse<AgentSessionResponse>>;
|
|
309
360
|
|
|
310
|
-
export { type ActiveChatsCountResponse, type ActiveChatsResponse, Chat, type ChatHistoryResponse, type ChatResponse, ChatSummary, type CreateChatApiOptions, type CreateChatResponseData, type EndChatApiOptions, type LoadChatApiOptions, type LoadChatResponseData, type SendEventApiOptions, type SendMessageApiOptions, type StreamApiOptions, type StreamApiResponse, type TypingApiOptions, type UpdateChatResponse, addChatToProjectApi, createChat, deleteChatApi, endChat, getActiveChatsApi, getActiveChatsCountApi, getChatApi, getChatHistoryApi, loadChat, sendChatMessage, sendEvent, sendTypingIndicator, updateChatApi, updateProjectChatTitleApi };
|
|
361
|
+
export { type ActiveChatsCountResponse, type ActiveChatsResponse, type AgentSession, type AgentSessionResponse, Chat, type ChatHistoryResponse, type ChatResponse, ChatSummary, type CreateChatApiOptions, type CreateChatResponseData, type EndChatApiOptions, type LoadChatApiOptions, type LoadChatResponseData, type OnlineSessionsResponse, type Queue, type QueueResponse, type SendEventApiOptions, type SendMessageApiOptions, type StreamApiOptions, type StreamApiResponse, type SummaryView, type TypingApiOptions, type UpdateChatResponse, type WaitingChatsCountResponse, addChatToProjectApi, clearProfileApi, clearSummaryApi, createChat, deleteChatApi, deleteContactApi, deleteNoteApi, endChat, getActiveChatsApi, getActiveChatsCountApi, getAgentSessionApi, getChatApi, getChatHistoryApi, getChatsByUserApi, getOnlineSessionsApi, getProfileApi, getSummaryApi, getWaitingChatsCountApi, listQueuesApi, loadChat, patchProfileApi, regenerateSummaryApi, replaceProfileApi, sendChatMessage, sendEvent, sendTypingIndicator, updateChatApi, updateProjectChatTitleApi };
|
package/dist/api/index.js
CHANGED
|
@@ -22,14 +22,28 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
22
22
|
var api_exports = {};
|
|
23
23
|
__export(api_exports, {
|
|
24
24
|
addChatToProjectApi: () => addChatToProjectApi,
|
|
25
|
+
clearProfileApi: () => clearProfileApi,
|
|
26
|
+
clearSummaryApi: () => clearSummaryApi,
|
|
25
27
|
createChat: () => createChat,
|
|
26
28
|
deleteChatApi: () => deleteChatApi,
|
|
29
|
+
deleteContactApi: () => deleteContactApi,
|
|
30
|
+
deleteNoteApi: () => deleteNoteApi,
|
|
27
31
|
endChat: () => endChat,
|
|
28
32
|
getActiveChatsApi: () => getActiveChatsApi,
|
|
29
33
|
getActiveChatsCountApi: () => getActiveChatsCountApi,
|
|
34
|
+
getAgentSessionApi: () => getAgentSessionApi,
|
|
30
35
|
getChatApi: () => getChatApi,
|
|
31
36
|
getChatHistoryApi: () => getChatHistoryApi,
|
|
37
|
+
getChatsByUserApi: () => getChatsByUserApi,
|
|
38
|
+
getOnlineSessionsApi: () => getOnlineSessionsApi,
|
|
39
|
+
getProfileApi: () => getProfileApi,
|
|
40
|
+
getSummaryApi: () => getSummaryApi,
|
|
41
|
+
getWaitingChatsCountApi: () => getWaitingChatsCountApi,
|
|
42
|
+
listQueuesApi: () => listQueuesApi,
|
|
32
43
|
loadChat: () => loadChat,
|
|
44
|
+
patchProfileApi: () => patchProfileApi,
|
|
45
|
+
regenerateSummaryApi: () => regenerateSummaryApi,
|
|
46
|
+
replaceProfileApi: () => replaceProfileApi,
|
|
33
47
|
sendChatMessage: () => sendChatMessage,
|
|
34
48
|
sendEvent: () => sendEvent,
|
|
35
49
|
sendTypingIndicator: () => sendTypingIndicator,
|
|
@@ -37,7 +51,7 @@ __export(api_exports, {
|
|
|
37
51
|
updateProjectChatTitleApi: () => updateProjectChatTitleApi
|
|
38
52
|
});
|
|
39
53
|
module.exports = __toCommonJS(api_exports);
|
|
40
|
-
var
|
|
54
|
+
var import_browser2 = require("@elqnt/api-client/browser");
|
|
41
55
|
|
|
42
56
|
// api/stream-api.ts
|
|
43
57
|
async function streamFetch(url, body) {
|
|
@@ -140,9 +154,21 @@ async function sendEvent(options) {
|
|
|
140
154
|
}
|
|
141
155
|
}
|
|
142
156
|
|
|
157
|
+
// api/memory.ts
|
|
158
|
+
var import_browser = require("@elqnt/api-client/browser");
|
|
159
|
+
var getProfileApi = (o) => (0, import_browser.browserApiRequest)("/api/v1/memory/profile", { method: "GET", ...o });
|
|
160
|
+
var patchProfileApi = (patch, o) => (0, import_browser.browserApiRequest)("/api/v1/memory/profile", { method: "PATCH", body: patch, ...o });
|
|
161
|
+
var replaceProfileApi = (p, o) => (0, import_browser.browserApiRequest)("/api/v1/memory/profile", { method: "PUT", body: p, ...o });
|
|
162
|
+
var clearProfileApi = (o) => (0, import_browser.browserApiRequest)("/api/v1/memory/profile", { method: "DELETE", ...o });
|
|
163
|
+
var deleteContactApi = (name, o) => (0, import_browser.browserApiRequest)(`/api/v1/memory/profile/contacts/${encodeURIComponent(name)}`, { method: "DELETE", ...o });
|
|
164
|
+
var deleteNoteApi = (index, o) => (0, import_browser.browserApiRequest)(`/api/v1/memory/profile/notes/${index}`, { method: "DELETE", ...o });
|
|
165
|
+
var getSummaryApi = (chatKey, o) => (0, import_browser.browserApiRequest)(`/api/v1/chats/${chatKey}/summary`, { method: "GET", ...o });
|
|
166
|
+
var clearSummaryApi = (chatKey, o) => (0, import_browser.browserApiRequest)(`/api/v1/chats/${chatKey}/summary`, { method: "DELETE", ...o });
|
|
167
|
+
var regenerateSummaryApi = (chatKey, o) => (0, import_browser.browserApiRequest)(`/api/v1/chats/${chatKey}/summary/regenerate`, { method: "POST", ...o });
|
|
168
|
+
|
|
143
169
|
// api/index.ts
|
|
144
170
|
async function getChatHistoryApi(options) {
|
|
145
|
-
return (0,
|
|
171
|
+
return (0, import_browser2.browserApiRequest)("/api/v1/chats", {
|
|
146
172
|
method: "POST",
|
|
147
173
|
body: {
|
|
148
174
|
limit: options.limit || 15,
|
|
@@ -153,26 +179,26 @@ async function getChatHistoryApi(options) {
|
|
|
153
179
|
});
|
|
154
180
|
}
|
|
155
181
|
async function getChatApi(chatKey, options) {
|
|
156
|
-
return (0,
|
|
182
|
+
return (0, import_browser2.browserApiRequest)(`/api/v1/chats/${chatKey}`, {
|
|
157
183
|
method: "GET",
|
|
158
184
|
...options
|
|
159
185
|
});
|
|
160
186
|
}
|
|
161
187
|
async function updateChatApi(chatKey, updates, options) {
|
|
162
|
-
return (0,
|
|
188
|
+
return (0, import_browser2.browserApiRequest)(`/api/v1/chats/${chatKey}`, {
|
|
163
189
|
method: "PATCH",
|
|
164
190
|
body: updates,
|
|
165
191
|
...options
|
|
166
192
|
});
|
|
167
193
|
}
|
|
168
194
|
async function deleteChatApi(chatKey, options) {
|
|
169
|
-
return (0,
|
|
195
|
+
return (0, import_browser2.browserApiRequest)(`/api/v1/chats/${chatKey}`, {
|
|
170
196
|
method: "DELETE",
|
|
171
197
|
...options
|
|
172
198
|
});
|
|
173
199
|
}
|
|
174
200
|
async function getActiveChatsCountApi(options) {
|
|
175
|
-
return (0,
|
|
201
|
+
return (0, import_browser2.browserApiRequest)("/api/v1/chats/active/count", {
|
|
176
202
|
method: "GET",
|
|
177
203
|
...options
|
|
178
204
|
});
|
|
@@ -181,36 +207,80 @@ async function getActiveChatsApi(options) {
|
|
|
181
207
|
const params = new URLSearchParams();
|
|
182
208
|
if (options.pastHours) params.set("pastHours", String(options.pastHours));
|
|
183
209
|
const queryString = params.toString();
|
|
184
|
-
return (0,
|
|
210
|
+
return (0, import_browser2.browserApiRequest)(`/api/v1/chats/active${queryString ? `?${queryString}` : ""}`, {
|
|
185
211
|
method: "GET",
|
|
186
212
|
...options
|
|
187
213
|
});
|
|
188
214
|
}
|
|
189
215
|
async function updateProjectChatTitleApi(projectId, chatKey, title, options) {
|
|
190
|
-
return (0,
|
|
216
|
+
return (0, import_browser2.browserApiRequest)(`/api/v1/projects/${projectId}/chats/${chatKey}/title`, {
|
|
191
217
|
method: "PUT",
|
|
192
218
|
body: { title },
|
|
193
219
|
...options
|
|
194
220
|
});
|
|
195
221
|
}
|
|
196
222
|
async function addChatToProjectApi(projectId, chatKey, options) {
|
|
197
|
-
return (0,
|
|
223
|
+
return (0, import_browser2.browserApiRequest)(`/api/v1/projects/${projectId}/chats`, {
|
|
198
224
|
method: "POST",
|
|
199
225
|
body: { chatKey },
|
|
200
226
|
...options
|
|
201
227
|
});
|
|
202
228
|
}
|
|
229
|
+
async function getWaitingChatsCountApi(options) {
|
|
230
|
+
return (0, import_browser2.browserApiRequest)("/api/v1/chats/waiting/count", {
|
|
231
|
+
method: "GET",
|
|
232
|
+
...options
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
async function getChatsByUserApi(userEmail, options) {
|
|
236
|
+
return (0, import_browser2.browserApiRequest)(`/api/v1/chats/user/${encodeURIComponent(userEmail)}`, {
|
|
237
|
+
method: "GET",
|
|
238
|
+
...options
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
async function listQueuesApi(options) {
|
|
242
|
+
return (0, import_browser2.browserApiRequest)("/api/v1/queues", {
|
|
243
|
+
method: "GET",
|
|
244
|
+
...options
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
async function getOnlineSessionsApi(options) {
|
|
248
|
+
return (0, import_browser2.browserApiRequest)("/api/v1/agents/sessions/online", {
|
|
249
|
+
method: "GET",
|
|
250
|
+
...options
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
async function getAgentSessionApi(agentId, options) {
|
|
254
|
+
return (0, import_browser2.browserApiRequest)(`/api/v1/agents/sessions/${agentId}`, {
|
|
255
|
+
method: "GET",
|
|
256
|
+
...options
|
|
257
|
+
});
|
|
258
|
+
}
|
|
203
259
|
// Annotate the CommonJS export names for ESM import in node:
|
|
204
260
|
0 && (module.exports = {
|
|
205
261
|
addChatToProjectApi,
|
|
262
|
+
clearProfileApi,
|
|
263
|
+
clearSummaryApi,
|
|
206
264
|
createChat,
|
|
207
265
|
deleteChatApi,
|
|
266
|
+
deleteContactApi,
|
|
267
|
+
deleteNoteApi,
|
|
208
268
|
endChat,
|
|
209
269
|
getActiveChatsApi,
|
|
210
270
|
getActiveChatsCountApi,
|
|
271
|
+
getAgentSessionApi,
|
|
211
272
|
getChatApi,
|
|
212
273
|
getChatHistoryApi,
|
|
274
|
+
getChatsByUserApi,
|
|
275
|
+
getOnlineSessionsApi,
|
|
276
|
+
getProfileApi,
|
|
277
|
+
getSummaryApi,
|
|
278
|
+
getWaitingChatsCountApi,
|
|
279
|
+
listQueuesApi,
|
|
213
280
|
loadChat,
|
|
281
|
+
patchProfileApi,
|
|
282
|
+
regenerateSummaryApi,
|
|
283
|
+
replaceProfileApi,
|
|
214
284
|
sendChatMessage,
|
|
215
285
|
sendEvent,
|
|
216
286
|
sendTypingIndicator,
|
package/dist/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../api/index.ts","../../api/stream-api.ts"],"sourcesContent":["/**\n * Chat API\n *\n * API functions for chat operations.\n *\n * ## Browser API (uses @elqnt/api-client)\n * ```typescript\n * import { getChatHistoryApi, getChatApi } from \"@elqnt/chat/api\";\n *\n * const history = await getChatHistoryApi({ baseUrl, orgId, limit: 10 });\n * const chat = await getChatApi(chatKey, { baseUrl, orgId });\n * ```\n *\n * ## Stream API (direct HTTP calls)\n * ```typescript\n * import { createChat, sendChatMessage, loadChat } from \"@elqnt/chat/api\";\n *\n * const chatKey = await createChat({ baseUrl, orgId, userId });\n * await sendChatMessage({ baseUrl, orgId, chatKey, userId, content: \"Hello!\" });\n * ```\n */\n\nimport { browserApiRequest } from \"@elqnt/api-client/browser\";\nimport type { ApiResponse, ApiClientOptions } from \"@elqnt/api-client\";\nimport type { ResponseMetadata } from \"@elqnt/types\";\nimport type { ChatSummary, Chat } from \"../models\";\n\n// Re-export types from models\nexport type { ChatSummary, Chat } from \"../models\";\n\n// Re-export stream API functions\nexport {\n createChat,\n sendChatMessage,\n loadChat,\n endChat,\n sendTypingIndicator,\n sendEvent,\n} from \"./stream-api\";\n\nexport type {\n StreamApiOptions,\n StreamApiResponse,\n CreateChatApiOptions,\n CreateChatResponseData,\n SendMessageApiOptions,\n LoadChatApiOptions,\n LoadChatResponseData,\n EndChatApiOptions,\n TypingApiOptions,\n SendEventApiOptions,\n} from \"./stream-api\";\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\nexport interface ChatHistoryResponse {\n chats: ChatSummary[];\n total: number;\n hasMore: boolean;\n metadata: ResponseMetadata;\n}\n\nexport interface ChatResponse {\n chat: ChatSummary;\n metadata: ResponseMetadata;\n}\n\nexport interface UpdateChatResponse {\n chatKey: string;\n title: string;\n pinned: boolean;\n metadata: ResponseMetadata;\n}\n\nexport interface ActiveChatsResponse {\n chats: ChatSummary[];\n metadata: ResponseMetadata;\n}\n\nexport interface ActiveChatsCountResponse {\n count: number;\n metadata: ResponseMetadata;\n}\n\n// =============================================================================\n// CHAT HISTORY\n// =============================================================================\n\nexport async function getChatHistoryApi(\n options: ApiClientOptions & { limit?: number; offset?: number; skipCache?: boolean }\n): Promise<ApiResponse<ChatHistoryResponse>> {\n return browserApiRequest(\"/api/v1/chats\", {\n method: \"POST\",\n body: {\n limit: options.limit || 15,\n offset: options.offset || 0,\n ...(options.skipCache ? { skipCache: true } : {}),\n },\n ...options,\n });\n}\n\nexport async function getChatApi(\n chatKey: string,\n options: ApiClientOptions\n): Promise<ApiResponse<ChatResponse>> {\n return browserApiRequest(`/api/v1/chats/${chatKey}`, {\n method: \"GET\",\n ...options,\n });\n}\n\nexport async function updateChatApi(\n chatKey: string,\n updates: { title?: string; pinned?: boolean },\n options: ApiClientOptions\n): Promise<ApiResponse<UpdateChatResponse>> {\n return browserApiRequest(`/api/v1/chats/${chatKey}`, {\n method: \"PATCH\",\n body: updates,\n ...options,\n });\n}\n\nexport async function deleteChatApi(\n chatKey: string,\n options: ApiClientOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/chats/${chatKey}`, {\n method: \"DELETE\",\n ...options,\n });\n}\n\n// =============================================================================\n// ACTIVE CHATS\n// =============================================================================\n\nexport async function getActiveChatsCountApi(\n options: ApiClientOptions\n): Promise<ApiResponse<ActiveChatsCountResponse>> {\n return browserApiRequest(\"/api/v1/chats/active/count\", {\n method: \"GET\",\n ...options,\n });\n}\n\nexport async function getActiveChatsApi(\n options: ApiClientOptions & { pastHours?: number }\n): Promise<ApiResponse<ActiveChatsResponse>> {\n const params = new URLSearchParams();\n if (options.pastHours) params.set(\"pastHours\", String(options.pastHours));\n const queryString = params.toString();\n return browserApiRequest(`/api/v1/chats/active${queryString ? `?${queryString}` : \"\"}`, {\n method: \"GET\",\n ...options,\n });\n}\n\n// =============================================================================\n// PROJECT CHATS\n// =============================================================================\n\nexport async function updateProjectChatTitleApi(\n projectId: string,\n chatKey: string,\n title: string,\n options: ApiClientOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/projects/${projectId}/chats/${chatKey}/title`, {\n method: \"PUT\",\n body: { title },\n ...options,\n });\n}\n\nexport async function addChatToProjectApi(\n projectId: string,\n chatKey: string,\n options: ApiClientOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/projects/${projectId}/chats`, {\n method: \"POST\",\n body: { chatKey },\n ...options,\n });\n}\n","/**\n * Stream API\n *\n * Low-level functions for chat streaming operations.\n * These are used internally by the transport layer but can also\n * be used directly for custom implementations.\n *\n * @example\n * ```typescript\n * import { createChat, sendChatMessage, loadChat } from \"@elqnt/chat/api\";\n *\n * // Create a new chat\n * const chatKey = await createChat({\n * baseUrl: \"https://api.example.com/chat\",\n * orgId: \"org-123\",\n * userId: \"user-456\",\n * });\n *\n * // Send a message\n * await sendChatMessage({\n * baseUrl: \"https://api.example.com/chat\",\n * orgId: \"org-123\",\n * chatKey,\n * userId: \"user-456\",\n * content: \"Hello!\",\n * });\n * ```\n */\n\nimport type { Chat, ChatMessage } from \"../models\";\n\n/**\n * Base options for all stream API calls\n */\nexport interface StreamApiOptions {\n /** Base URL for the chat server */\n baseUrl: string;\n /** Organization ID */\n orgId: string;\n /** User ID */\n userId: string;\n}\n\n/**\n * Response from stream API calls\n */\nexport interface StreamApiResponse<T = unknown> {\n success: boolean;\n data?: T;\n error?: string;\n}\n\n/**\n * Create chat options\n */\nexport interface CreateChatApiOptions extends StreamApiOptions {\n /** Optional metadata for the new chat */\n metadata?: Record<string, unknown>;\n}\n\n/**\n * Create chat response data\n */\nexport interface CreateChatResponseData {\n chatKey: string;\n}\n\n/**\n * Send message options\n */\nexport interface SendMessageApiOptions extends StreamApiOptions {\n /** Chat key */\n chatKey: string;\n /** Message content */\n content: string;\n /** Optional attachments */\n attachments?: unknown[];\n /** Optional message metadata */\n metadata?: Record<string, unknown>;\n}\n\n/**\n * Load chat options\n */\nexport interface LoadChatApiOptions extends StreamApiOptions {\n /** Chat key to load */\n chatKey: string;\n}\n\n/**\n * Load chat response data\n */\nexport interface LoadChatResponseData {\n chat: Chat;\n}\n\n/**\n * End chat options\n */\nexport interface EndChatApiOptions extends StreamApiOptions {\n /** Chat key to end */\n chatKey: string;\n /** Optional end reason */\n reason?: string;\n}\n\n/**\n * Typing indicator options\n */\nexport interface TypingApiOptions extends StreamApiOptions {\n /** Chat key */\n chatKey: string;\n /** Whether user is typing */\n typing: boolean;\n}\n\n/**\n * Generic event options\n */\nexport interface SendEventApiOptions extends StreamApiOptions {\n /** Chat key */\n chatKey: string;\n /** Event type */\n type: string;\n /** Event data */\n data?: Record<string, unknown>;\n}\n\n/**\n * Internal fetch helper\n */\nasync function streamFetch<T>(\n url: string,\n body: Record<string, unknown>\n): Promise<StreamApiResponse<T>> {\n const response = await fetch(url, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(body),\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n return {\n success: false,\n error: `API error: ${response.status} - ${errorText}`,\n };\n }\n\n const data = await response.json();\n return { success: true, data };\n}\n\n/**\n * Create a new chat session\n *\n * @param options - Create chat options\n * @returns Chat key of the created chat\n *\n * @example\n * ```typescript\n * const chatKey = await createChat({\n * baseUrl: \"https://api.example.com/chat\",\n * orgId: \"org-123\",\n * userId: \"user-456\",\n * metadata: { source: \"website\" },\n * });\n * ```\n */\nexport async function createChat(\n options: CreateChatApiOptions\n): Promise<string> {\n const { baseUrl, orgId, userId, metadata } = options;\n\n const result = await streamFetch<CreateChatResponseData>(\n `${baseUrl}/create`,\n { orgId, userId, metadata }\n );\n\n if (!result.success || !result.data?.chatKey) {\n throw new Error(result.error || \"Failed to create chat\");\n }\n\n return result.data.chatKey;\n}\n\n/**\n * Send a message in a chat\n *\n * @param options - Send message options\n *\n * @example\n * ```typescript\n * await sendChatMessage({\n * baseUrl: \"https://api.example.com/chat\",\n * orgId: \"org-123\",\n * chatKey: \"chat-789\",\n * userId: \"user-456\",\n * content: \"Hello!\",\n * });\n * ```\n */\nexport async function sendChatMessage(\n options: SendMessageApiOptions\n): Promise<void> {\n const { baseUrl, orgId, chatKey, userId, content, attachments, metadata } =\n options;\n\n const message: Partial<ChatMessage> = {\n id: `msg_${Date.now()}_${Math.random().toString(36).slice(2)}`,\n role: \"user\",\n content,\n time: Date.now(),\n status: \"sending\",\n senderId: userId,\n createdAt: Date.now(),\n attachments: attachments as ChatMessage[\"attachments\"],\n };\n\n const result = await streamFetch(`${baseUrl}/send`, {\n orgId,\n chatKey,\n userId,\n message,\n metadata,\n });\n\n if (!result.success) {\n throw new Error(result.error || \"Failed to send message\");\n }\n}\n\n/**\n * Load an existing chat\n *\n * @param options - Load chat options\n * @returns The loaded chat object\n *\n * @example\n * ```typescript\n * const chat = await loadChat({\n * baseUrl: \"https://api.example.com/chat\",\n * orgId: \"org-123\",\n * chatKey: \"chat-789\",\n * userId: \"user-456\",\n * });\n * ```\n */\nexport async function loadChat(options: LoadChatApiOptions): Promise<Chat> {\n const { baseUrl, orgId, chatKey, userId } = options;\n\n const result = await streamFetch<LoadChatResponseData>(`${baseUrl}/load`, {\n orgId,\n chatKey,\n userId,\n });\n\n if (!result.success || !result.data?.chat) {\n throw new Error(result.error || \"Failed to load chat\");\n }\n\n return result.data.chat;\n}\n\n/**\n * End a chat session\n *\n * @param options - End chat options\n *\n * @example\n * ```typescript\n * await endChat({\n * baseUrl: \"https://api.example.com/chat\",\n * orgId: \"org-123\",\n * chatKey: \"chat-789\",\n * userId: \"user-456\",\n * reason: \"User closed chat\",\n * });\n * ```\n */\nexport async function endChat(options: EndChatApiOptions): Promise<void> {\n const { baseUrl, orgId, chatKey, userId, reason } = options;\n\n const result = await streamFetch(`${baseUrl}/end`, {\n orgId,\n chatKey,\n userId,\n data: reason ? { reason } : undefined,\n });\n\n if (!result.success) {\n throw new Error(result.error || \"Failed to end chat\");\n }\n}\n\n/**\n * Send typing indicator\n *\n * @param options - Typing indicator options\n *\n * @example\n * ```typescript\n * // User started typing\n * await sendTypingIndicator({\n * baseUrl: \"https://api.example.com/chat\",\n * orgId: \"org-123\",\n * chatKey: \"chat-789\",\n * userId: \"user-456\",\n * typing: true,\n * });\n *\n * // User stopped typing\n * await sendTypingIndicator({\n * baseUrl: \"https://api.example.com/chat\",\n * orgId: \"org-123\",\n * chatKey: \"chat-789\",\n * userId: \"user-456\",\n * typing: false,\n * });\n * ```\n */\nexport async function sendTypingIndicator(\n options: TypingApiOptions\n): Promise<void> {\n const { baseUrl, orgId, chatKey, userId, typing } = options;\n\n const result = await streamFetch(`${baseUrl}/typing`, {\n orgId,\n chatKey,\n userId,\n typing,\n });\n\n if (!result.success) {\n throw new Error(result.error || \"Failed to send typing indicator\");\n }\n}\n\n/**\n * Send a generic event\n *\n * @param options - Event options\n *\n * @example\n * ```typescript\n * await sendEvent({\n * baseUrl: \"https://api.example.com/chat\",\n * orgId: \"org-123\",\n * chatKey: \"chat-789\",\n * userId: \"user-456\",\n * type: \"skill_activate\",\n * data: { skillId: \"research\" },\n * });\n * ```\n */\nexport async function sendEvent(options: SendEventApiOptions): Promise<void> {\n const { baseUrl, orgId, chatKey, userId, type, data } = options;\n\n const result = await streamFetch(`${baseUrl}/event`, {\n type,\n orgId,\n chatKey,\n userId,\n data,\n });\n\n if (!result.success) {\n throw new Error(result.error || \"Failed to send event\");\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBA,qBAAkC;;;AC6GlC,eAAe,YACb,KACA,MAC+B;AAC/B,QAAM,WAAW,MAAM,MAAM,KAAK;AAAA,IAChC,QAAQ;AAAA,IACR,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAC9C,MAAM,KAAK,UAAU,IAAI;AAAA,EAC3B,CAAC;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,YAAY,MAAM,SAAS,KAAK;AACtC,WAAO;AAAA,MACL,SAAS;AAAA,MACT,OAAO,cAAc,SAAS,MAAM,MAAM,SAAS;AAAA,IACrD;AAAA,EACF;AAEA,QAAM,OAAO,MAAM,SAAS,KAAK;AACjC,SAAO,EAAE,SAAS,MAAM,KAAK;AAC/B;AAkBA,eAAsB,WACpB,SACiB;AACjB,QAAM,EAAE,SAAS,OAAO,QAAQ,SAAS,IAAI;AAE7C,QAAM,SAAS,MAAM;AAAA,IACnB,GAAG,OAAO;AAAA,IACV,EAAE,OAAO,QAAQ,SAAS;AAAA,EAC5B;AAEA,MAAI,CAAC,OAAO,WAAW,CAAC,OAAO,MAAM,SAAS;AAC5C,UAAM,IAAI,MAAM,OAAO,SAAS,uBAAuB;AAAA,EACzD;AAEA,SAAO,OAAO,KAAK;AACrB;AAkBA,eAAsB,gBACpB,SACe;AACf,QAAM,EAAE,SAAS,OAAO,SAAS,QAAQ,SAAS,aAAa,SAAS,IACtE;AAEF,QAAM,UAAgC;AAAA,IACpC,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;AAAA,IAC5D,MAAM;AAAA,IACN;AAAA,IACA,MAAM,KAAK,IAAI;AAAA,IACf,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW,KAAK,IAAI;AAAA,IACpB;AAAA,EACF;AAEA,QAAM,SAAS,MAAM,YAAY,GAAG,OAAO,SAAS;AAAA,IAClD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,MAAI,CAAC,OAAO,SAAS;AACnB,UAAM,IAAI,MAAM,OAAO,SAAS,wBAAwB;AAAA,EAC1D;AACF;AAkBA,eAAsB,SAAS,SAA4C;AACzE,QAAM,EAAE,SAAS,OAAO,SAAS,OAAO,IAAI;AAE5C,QAAM,SAAS,MAAM,YAAkC,GAAG,OAAO,SAAS;AAAA,IACxE;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,MAAI,CAAC,OAAO,WAAW,CAAC,OAAO,MAAM,MAAM;AACzC,UAAM,IAAI,MAAM,OAAO,SAAS,qBAAqB;AAAA,EACvD;AAEA,SAAO,OAAO,KAAK;AACrB;AAkBA,eAAsB,QAAQ,SAA2C;AACvE,QAAM,EAAE,SAAS,OAAO,SAAS,QAAQ,OAAO,IAAI;AAEpD,QAAM,SAAS,MAAM,YAAY,GAAG,OAAO,QAAQ;AAAA,IACjD;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM,SAAS,EAAE,OAAO,IAAI;AAAA,EAC9B,CAAC;AAED,MAAI,CAAC,OAAO,SAAS;AACnB,UAAM,IAAI,MAAM,OAAO,SAAS,oBAAoB;AAAA,EACtD;AACF;AA4BA,eAAsB,oBACpB,SACe;AACf,QAAM,EAAE,SAAS,OAAO,SAAS,QAAQ,OAAO,IAAI;AAEpD,QAAM,SAAS,MAAM,YAAY,GAAG,OAAO,WAAW;AAAA,IACpD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,MAAI,CAAC,OAAO,SAAS;AACnB,UAAM,IAAI,MAAM,OAAO,SAAS,iCAAiC;AAAA,EACnE;AACF;AAmBA,eAAsB,UAAU,SAA6C;AAC3E,QAAM,EAAE,SAAS,OAAO,SAAS,QAAQ,MAAM,KAAK,IAAI;AAExD,QAAM,SAAS,MAAM,YAAY,GAAG,OAAO,UAAU;AAAA,IACnD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,MAAI,CAAC,OAAO,SAAS;AACnB,UAAM,IAAI,MAAM,OAAO,SAAS,sBAAsB;AAAA,EACxD;AACF;;;ADvRA,eAAsB,kBACpB,SAC2C;AAC3C,aAAO,kCAAkB,iBAAiB;AAAA,IACxC,QAAQ;AAAA,IACR,MAAM;AAAA,MACJ,OAAO,QAAQ,SAAS;AAAA,MACxB,QAAQ,QAAQ,UAAU;AAAA,MAC1B,GAAI,QAAQ,YAAY,EAAE,WAAW,KAAK,IAAI,CAAC;AAAA,IACjD;AAAA,IACA,GAAG;AAAA,EACL,CAAC;AACH;AAEA,eAAsB,WACpB,SACA,SACoC;AACpC,aAAO,kCAAkB,iBAAiB,OAAO,IAAI;AAAA,IACnD,QAAQ;AAAA,IACR,GAAG;AAAA,EACL,CAAC;AACH;AAEA,eAAsB,cACpB,SACA,SACA,SAC0C;AAC1C,aAAO,kCAAkB,iBAAiB,OAAO,IAAI;AAAA,IACnD,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,GAAG;AAAA,EACL,CAAC;AACH;AAEA,eAAsB,cACpB,SACA,SACwE;AACxE,aAAO,kCAAkB,iBAAiB,OAAO,IAAI;AAAA,IACnD,QAAQ;AAAA,IACR,GAAG;AAAA,EACL,CAAC;AACH;AAMA,eAAsB,uBACpB,SACgD;AAChD,aAAO,kCAAkB,8BAA8B;AAAA,IACrD,QAAQ;AAAA,IACR,GAAG;AAAA,EACL,CAAC;AACH;AAEA,eAAsB,kBACpB,SAC2C;AAC3C,QAAM,SAAS,IAAI,gBAAgB;AACnC,MAAI,QAAQ,UAAW,QAAO,IAAI,aAAa,OAAO,QAAQ,SAAS,CAAC;AACxE,QAAM,cAAc,OAAO,SAAS;AACpC,aAAO,kCAAkB,uBAAuB,cAAc,IAAI,WAAW,KAAK,EAAE,IAAI;AAAA,IACtF,QAAQ;AAAA,IACR,GAAG;AAAA,EACL,CAAC;AACH;AAMA,eAAsB,0BACpB,WACA,SACA,OACA,SACwE;AACxE,aAAO,kCAAkB,oBAAoB,SAAS,UAAU,OAAO,UAAU;AAAA,IAC/E,QAAQ;AAAA,IACR,MAAM,EAAE,MAAM;AAAA,IACd,GAAG;AAAA,EACL,CAAC;AACH;AAEA,eAAsB,oBACpB,WACA,SACA,SACwE;AACxE,aAAO,kCAAkB,oBAAoB,SAAS,UAAU;AAAA,IAC9D,QAAQ;AAAA,IACR,MAAM,EAAE,QAAQ;AAAA,IAChB,GAAG;AAAA,EACL,CAAC;AACH;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../api/index.ts","../../api/stream-api.ts","../../api/memory.ts"],"sourcesContent":["/**\n * Chat API\n *\n * API functions for chat operations.\n *\n * ## Browser API (uses @elqnt/api-client)\n * ```typescript\n * import { getChatHistoryApi, getChatApi } from \"@elqnt/chat/api\";\n *\n * const history = await getChatHistoryApi({ baseUrl, orgId, limit: 10 });\n * const chat = await getChatApi(chatKey, { baseUrl, orgId });\n * ```\n *\n * ## Stream API (direct HTTP calls)\n * ```typescript\n * import { createChat, sendChatMessage, loadChat } from \"@elqnt/chat/api\";\n *\n * const chatKey = await createChat({ baseUrl, orgId, userId });\n * await sendChatMessage({ baseUrl, orgId, chatKey, userId, content: \"Hello!\" });\n * ```\n */\n\nimport { browserApiRequest } from \"@elqnt/api-client/browser\";\nimport type { ApiResponse, ApiClientOptions } from \"@elqnt/api-client\";\nimport type { ResponseMetadata } from \"@elqnt/types\";\nimport type { ChatSummary, Chat } from \"../models\";\n\n// Re-export types from models\nexport type { ChatSummary, Chat } from \"../models\";\n\n// Re-export stream API functions\nexport {\n createChat,\n sendChatMessage,\n loadChat,\n endChat,\n sendTypingIndicator,\n sendEvent,\n} from \"./stream-api\";\n\nexport type {\n StreamApiOptions,\n StreamApiResponse,\n CreateChatApiOptions,\n CreateChatResponseData,\n SendMessageApiOptions,\n LoadChatApiOptions,\n LoadChatResponseData,\n EndChatApiOptions,\n TypingApiOptions,\n SendEventApiOptions,\n} from \"./stream-api\";\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\nexport interface ChatHistoryResponse {\n chats: ChatSummary[];\n total: number;\n hasMore: boolean;\n metadata: ResponseMetadata;\n}\n\nexport interface ChatResponse {\n chat: ChatSummary;\n metadata: ResponseMetadata;\n}\n\nexport interface UpdateChatResponse {\n chatKey: string;\n title: string;\n pinned: boolean;\n metadata: ResponseMetadata;\n}\n\nexport interface ActiveChatsResponse {\n chats: ChatSummary[];\n metadata: ResponseMetadata;\n}\n\nexport interface ActiveChatsCountResponse {\n count: number;\n metadata: ResponseMetadata;\n}\n\nexport interface WaitingChatsCountResponse {\n count: number;\n metadata: ResponseMetadata;\n}\n\nexport interface QueueResponse {\n queues: Queue[];\n metadata: ResponseMetadata;\n}\n\nexport interface Queue {\n id: string;\n name: string;\n agentId: string;\n waitingCount: number;\n activeCount: number;\n}\n\nexport interface AgentSession {\n agentId: string;\n userId: string;\n userEmail: string;\n status: string;\n connectedAt: string;\n lastActivityAt: string;\n}\n\nexport interface OnlineSessionsResponse {\n sessions: AgentSession[];\n metadata: ResponseMetadata;\n}\n\nexport interface AgentSessionResponse {\n session: AgentSession;\n metadata: ResponseMetadata;\n}\n\n// =============================================================================\n// CHAT HISTORY\n// =============================================================================\n\nexport async function getChatHistoryApi(\n options: ApiClientOptions & { limit?: number; offset?: number; skipCache?: boolean }\n): Promise<ApiResponse<ChatHistoryResponse>> {\n return browserApiRequest(\"/api/v1/chats\", {\n method: \"POST\",\n body: {\n limit: options.limit || 15,\n offset: options.offset || 0,\n ...(options.skipCache ? { skipCache: true } : {}),\n },\n ...options,\n });\n}\n\nexport async function getChatApi(\n chatKey: string,\n options: ApiClientOptions\n): Promise<ApiResponse<ChatResponse>> {\n return browserApiRequest(`/api/v1/chats/${chatKey}`, {\n method: \"GET\",\n ...options,\n });\n}\n\nexport async function updateChatApi(\n chatKey: string,\n updates: { title?: string; pinned?: boolean },\n options: ApiClientOptions\n): Promise<ApiResponse<UpdateChatResponse>> {\n return browserApiRequest(`/api/v1/chats/${chatKey}`, {\n method: \"PATCH\",\n body: updates,\n ...options,\n });\n}\n\nexport async function deleteChatApi(\n chatKey: string,\n options: ApiClientOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/chats/${chatKey}`, {\n method: \"DELETE\",\n ...options,\n });\n}\n\n// =============================================================================\n// ACTIVE CHATS\n// =============================================================================\n\nexport async function getActiveChatsCountApi(\n options: ApiClientOptions\n): Promise<ApiResponse<ActiveChatsCountResponse>> {\n return browserApiRequest(\"/api/v1/chats/active/count\", {\n method: \"GET\",\n ...options,\n });\n}\n\nexport async function getActiveChatsApi(\n options: ApiClientOptions & { pastHours?: number }\n): Promise<ApiResponse<ActiveChatsResponse>> {\n const params = new URLSearchParams();\n if (options.pastHours) params.set(\"pastHours\", String(options.pastHours));\n const queryString = params.toString();\n return browserApiRequest(`/api/v1/chats/active${queryString ? `?${queryString}` : \"\"}`, {\n method: \"GET\",\n ...options,\n });\n}\n\n// =============================================================================\n// PROJECT CHATS\n// =============================================================================\n\nexport async function updateProjectChatTitleApi(\n projectId: string,\n chatKey: string,\n title: string,\n options: ApiClientOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/projects/${projectId}/chats/${chatKey}/title`, {\n method: \"PUT\",\n body: { title },\n ...options,\n });\n}\n\nexport async function addChatToProjectApi(\n projectId: string,\n chatKey: string,\n options: ApiClientOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/projects/${projectId}/chats`, {\n method: \"POST\",\n body: { chatKey },\n ...options,\n });\n}\n\n// =============================================================================\n// WAITING CHATS\n// =============================================================================\n\nexport async function getWaitingChatsCountApi(\n options: ApiClientOptions\n): Promise<ApiResponse<WaitingChatsCountResponse>> {\n return browserApiRequest(\"/api/v1/chats/waiting/count\", {\n method: \"GET\",\n ...options,\n });\n}\n\nexport async function getChatsByUserApi(\n userEmail: string,\n options: ApiClientOptions\n): Promise<ApiResponse<ChatHistoryResponse>> {\n return browserApiRequest(`/api/v1/chats/user/${encodeURIComponent(userEmail)}`, {\n method: \"GET\",\n ...options,\n });\n}\n\n// =============================================================================\n// QUEUES\n// =============================================================================\n\nexport async function listQueuesApi(\n options: ApiClientOptions\n): Promise<ApiResponse<QueueResponse>> {\n return browserApiRequest(\"/api/v1/queues\", {\n method: \"GET\",\n ...options,\n });\n}\n\n// =============================================================================\n// AGENT SESSIONS\n// =============================================================================\n\nexport async function getOnlineSessionsApi(\n options: ApiClientOptions\n): Promise<ApiResponse<OnlineSessionsResponse>> {\n return browserApiRequest(\"/api/v1/agents/sessions/online\", {\n method: \"GET\",\n ...options,\n });\n}\n\nexport async function getAgentSessionApi(\n agentId: string,\n options: ApiClientOptions\n): Promise<ApiResponse<AgentSessionResponse>> {\n return browserApiRequest(`/api/v1/agents/sessions/${agentId}`, {\n method: \"GET\",\n ...options,\n });\n}\n\n// =============================================================================\n// MEMORY\n// =============================================================================\n\nexport {\n getProfileApi,\n patchProfileApi,\n replaceProfileApi,\n clearProfileApi,\n deleteContactApi,\n deleteNoteApi,\n getSummaryApi,\n clearSummaryApi,\n regenerateSummaryApi,\n} from \"./memory\";\n\nexport type { SummaryView } from \"./memory\";\n","/**\n * Stream API\n *\n * Low-level functions for chat streaming operations.\n * These are used internally by the transport layer but can also\n * be used directly for custom implementations.\n *\n * @example\n * ```typescript\n * import { createChat, sendChatMessage, loadChat } from \"@elqnt/chat/api\";\n *\n * // Create a new chat\n * const chatKey = await createChat({\n * baseUrl: \"https://api.example.com/chat\",\n * orgId: \"org-123\",\n * userId: \"user-456\",\n * });\n *\n * // Send a message\n * await sendChatMessage({\n * baseUrl: \"https://api.example.com/chat\",\n * orgId: \"org-123\",\n * chatKey,\n * userId: \"user-456\",\n * content: \"Hello!\",\n * });\n * ```\n */\n\nimport type { Chat, ChatMessage } from \"../models\";\n\n/**\n * Base options for all stream API calls\n */\nexport interface StreamApiOptions {\n /** Base URL for the chat server */\n baseUrl: string;\n /** Organization ID */\n orgId: string;\n /** User ID */\n userId: string;\n}\n\n/**\n * Response from stream API calls\n */\nexport interface StreamApiResponse<T = unknown> {\n success: boolean;\n data?: T;\n error?: string;\n}\n\n/**\n * Create chat options\n */\nexport interface CreateChatApiOptions extends StreamApiOptions {\n /** Optional metadata for the new chat */\n metadata?: Record<string, unknown>;\n}\n\n/**\n * Create chat response data\n */\nexport interface CreateChatResponseData {\n chatKey: string;\n}\n\n/**\n * Send message options\n */\nexport interface SendMessageApiOptions extends StreamApiOptions {\n /** Chat key */\n chatKey: string;\n /** Message content */\n content: string;\n /** Optional attachments */\n attachments?: unknown[];\n /** Optional message metadata */\n metadata?: Record<string, unknown>;\n}\n\n/**\n * Load chat options\n */\nexport interface LoadChatApiOptions extends StreamApiOptions {\n /** Chat key to load */\n chatKey: string;\n}\n\n/**\n * Load chat response data\n */\nexport interface LoadChatResponseData {\n chat: Chat;\n}\n\n/**\n * End chat options\n */\nexport interface EndChatApiOptions extends StreamApiOptions {\n /** Chat key to end */\n chatKey: string;\n /** Optional end reason */\n reason?: string;\n}\n\n/**\n * Typing indicator options\n */\nexport interface TypingApiOptions extends StreamApiOptions {\n /** Chat key */\n chatKey: string;\n /** Whether user is typing */\n typing: boolean;\n}\n\n/**\n * Generic event options\n */\nexport interface SendEventApiOptions extends StreamApiOptions {\n /** Chat key */\n chatKey: string;\n /** Event type */\n type: string;\n /** Event data */\n data?: Record<string, unknown>;\n}\n\n/**\n * Internal fetch helper\n */\nasync function streamFetch<T>(\n url: string,\n body: Record<string, unknown>\n): Promise<StreamApiResponse<T>> {\n const response = await fetch(url, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(body),\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n return {\n success: false,\n error: `API error: ${response.status} - ${errorText}`,\n };\n }\n\n const data = await response.json();\n return { success: true, data };\n}\n\n/**\n * Create a new chat session\n *\n * @param options - Create chat options\n * @returns Chat key of the created chat\n *\n * @example\n * ```typescript\n * const chatKey = await createChat({\n * baseUrl: \"https://api.example.com/chat\",\n * orgId: \"org-123\",\n * userId: \"user-456\",\n * metadata: { source: \"website\" },\n * });\n * ```\n */\nexport async function createChat(\n options: CreateChatApiOptions\n): Promise<string> {\n const { baseUrl, orgId, userId, metadata } = options;\n\n const result = await streamFetch<CreateChatResponseData>(\n `${baseUrl}/create`,\n { orgId, userId, metadata }\n );\n\n if (!result.success || !result.data?.chatKey) {\n throw new Error(result.error || \"Failed to create chat\");\n }\n\n return result.data.chatKey;\n}\n\n/**\n * Send a message in a chat\n *\n * @param options - Send message options\n *\n * @example\n * ```typescript\n * await sendChatMessage({\n * baseUrl: \"https://api.example.com/chat\",\n * orgId: \"org-123\",\n * chatKey: \"chat-789\",\n * userId: \"user-456\",\n * content: \"Hello!\",\n * });\n * ```\n */\nexport async function sendChatMessage(\n options: SendMessageApiOptions\n): Promise<void> {\n const { baseUrl, orgId, chatKey, userId, content, attachments, metadata } =\n options;\n\n const message: Partial<ChatMessage> = {\n id: `msg_${Date.now()}_${Math.random().toString(36).slice(2)}`,\n role: \"user\",\n content,\n time: Date.now(),\n status: \"sending\",\n senderId: userId,\n createdAt: Date.now(),\n attachments: attachments as ChatMessage[\"attachments\"],\n };\n\n const result = await streamFetch(`${baseUrl}/send`, {\n orgId,\n chatKey,\n userId,\n message,\n metadata,\n });\n\n if (!result.success) {\n throw new Error(result.error || \"Failed to send message\");\n }\n}\n\n/**\n * Load an existing chat\n *\n * @param options - Load chat options\n * @returns The loaded chat object\n *\n * @example\n * ```typescript\n * const chat = await loadChat({\n * baseUrl: \"https://api.example.com/chat\",\n * orgId: \"org-123\",\n * chatKey: \"chat-789\",\n * userId: \"user-456\",\n * });\n * ```\n */\nexport async function loadChat(options: LoadChatApiOptions): Promise<Chat> {\n const { baseUrl, orgId, chatKey, userId } = options;\n\n const result = await streamFetch<LoadChatResponseData>(`${baseUrl}/load`, {\n orgId,\n chatKey,\n userId,\n });\n\n if (!result.success || !result.data?.chat) {\n throw new Error(result.error || \"Failed to load chat\");\n }\n\n return result.data.chat;\n}\n\n/**\n * End a chat session\n *\n * @param options - End chat options\n *\n * @example\n * ```typescript\n * await endChat({\n * baseUrl: \"https://api.example.com/chat\",\n * orgId: \"org-123\",\n * chatKey: \"chat-789\",\n * userId: \"user-456\",\n * reason: \"User closed chat\",\n * });\n * ```\n */\nexport async function endChat(options: EndChatApiOptions): Promise<void> {\n const { baseUrl, orgId, chatKey, userId, reason } = options;\n\n const result = await streamFetch(`${baseUrl}/end`, {\n orgId,\n chatKey,\n userId,\n data: reason ? { reason } : undefined,\n });\n\n if (!result.success) {\n throw new Error(result.error || \"Failed to end chat\");\n }\n}\n\n/**\n * Send typing indicator\n *\n * @param options - Typing indicator options\n *\n * @example\n * ```typescript\n * // User started typing\n * await sendTypingIndicator({\n * baseUrl: \"https://api.example.com/chat\",\n * orgId: \"org-123\",\n * chatKey: \"chat-789\",\n * userId: \"user-456\",\n * typing: true,\n * });\n *\n * // User stopped typing\n * await sendTypingIndicator({\n * baseUrl: \"https://api.example.com/chat\",\n * orgId: \"org-123\",\n * chatKey: \"chat-789\",\n * userId: \"user-456\",\n * typing: false,\n * });\n * ```\n */\nexport async function sendTypingIndicator(\n options: TypingApiOptions\n): Promise<void> {\n const { baseUrl, orgId, chatKey, userId, typing } = options;\n\n const result = await streamFetch(`${baseUrl}/typing`, {\n orgId,\n chatKey,\n userId,\n typing,\n });\n\n if (!result.success) {\n throw new Error(result.error || \"Failed to send typing indicator\");\n }\n}\n\n/**\n * Send a generic event\n *\n * @param options - Event options\n *\n * @example\n * ```typescript\n * await sendEvent({\n * baseUrl: \"https://api.example.com/chat\",\n * orgId: \"org-123\",\n * chatKey: \"chat-789\",\n * userId: \"user-456\",\n * type: \"skill_activate\",\n * data: { skillId: \"research\" },\n * });\n * ```\n */\nexport async function sendEvent(options: SendEventApiOptions): Promise<void> {\n const { baseUrl, orgId, chatKey, userId, type, data } = options;\n\n const result = await streamFetch(`${baseUrl}/event`, {\n type,\n orgId,\n chatKey,\n userId,\n data,\n });\n\n if (!result.success) {\n throw new Error(result.error || \"Failed to send event\");\n }\n}\n","import { browserApiRequest } from \"@elqnt/api-client/browser\";\nimport type { ApiClientOptions, ApiResponse } from \"@elqnt/api-client\";\nimport type { MemoryProfile } from \"../models\";\n\nexport interface SummaryView {\n chatKey: string;\n text: string;\n updatedAt: string;\n}\n\nexport const getProfileApi = (o: ApiClientOptions): Promise<ApiResponse<MemoryProfile>> =>\n browserApiRequest(\"/api/v1/memory/profile\", { method: \"GET\", ...o });\n\nexport const patchProfileApi = (patch: Partial<MemoryProfile>, o: ApiClientOptions): Promise<ApiResponse<MemoryProfile>> =>\n browserApiRequest(\"/api/v1/memory/profile\", { method: \"PATCH\", body: patch, ...o });\n\nexport const replaceProfileApi = (p: MemoryProfile, o: ApiClientOptions): Promise<ApiResponse<MemoryProfile>> =>\n browserApiRequest(\"/api/v1/memory/profile\", { method: \"PUT\", body: p, ...o });\n\nexport const clearProfileApi = (o: ApiClientOptions): Promise<ApiResponse<MemoryProfile>> =>\n browserApiRequest(\"/api/v1/memory/profile\", { method: \"DELETE\", ...o });\n\nexport const deleteContactApi = (name: string, o: ApiClientOptions): Promise<ApiResponse<MemoryProfile>> =>\n browserApiRequest(`/api/v1/memory/profile/contacts/${encodeURIComponent(name)}`, { method: \"DELETE\", ...o });\n\nexport const deleteNoteApi = (index: number, o: ApiClientOptions): Promise<ApiResponse<MemoryProfile>> =>\n browserApiRequest(`/api/v1/memory/profile/notes/${index}`, { method: \"DELETE\", ...o });\n\nexport const getSummaryApi = (chatKey: string, o: ApiClientOptions): Promise<ApiResponse<SummaryView>> =>\n browserApiRequest(`/api/v1/chats/${chatKey}/summary`, { method: \"GET\", ...o });\n\nexport const clearSummaryApi = (chatKey: string, o: ApiClientOptions): Promise<ApiResponse<void>> =>\n browserApiRequest(`/api/v1/chats/${chatKey}/summary`, { method: \"DELETE\", ...o });\n\nexport const regenerateSummaryApi = (chatKey: string, o: ApiClientOptions): Promise<ApiResponse<SummaryView>> =>\n browserApiRequest(`/api/v1/chats/${chatKey}/summary/regenerate`, { method: \"POST\", ...o });\n"],"mappings":"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","names":["import_browser"]}
|
package/dist/api/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
// api/index.ts
|
|
4
|
-
import { browserApiRequest } from "@elqnt/api-client/browser";
|
|
4
|
+
import { browserApiRequest as browserApiRequest2 } from "@elqnt/api-client/browser";
|
|
5
5
|
|
|
6
6
|
// api/stream-api.ts
|
|
7
7
|
async function streamFetch(url, body) {
|
|
@@ -104,9 +104,21 @@ async function sendEvent(options) {
|
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
+
// api/memory.ts
|
|
108
|
+
import { browserApiRequest } from "@elqnt/api-client/browser";
|
|
109
|
+
var getProfileApi = (o) => browserApiRequest("/api/v1/memory/profile", { method: "GET", ...o });
|
|
110
|
+
var patchProfileApi = (patch, o) => browserApiRequest("/api/v1/memory/profile", { method: "PATCH", body: patch, ...o });
|
|
111
|
+
var replaceProfileApi = (p, o) => browserApiRequest("/api/v1/memory/profile", { method: "PUT", body: p, ...o });
|
|
112
|
+
var clearProfileApi = (o) => browserApiRequest("/api/v1/memory/profile", { method: "DELETE", ...o });
|
|
113
|
+
var deleteContactApi = (name, o) => browserApiRequest(`/api/v1/memory/profile/contacts/${encodeURIComponent(name)}`, { method: "DELETE", ...o });
|
|
114
|
+
var deleteNoteApi = (index, o) => browserApiRequest(`/api/v1/memory/profile/notes/${index}`, { method: "DELETE", ...o });
|
|
115
|
+
var getSummaryApi = (chatKey, o) => browserApiRequest(`/api/v1/chats/${chatKey}/summary`, { method: "GET", ...o });
|
|
116
|
+
var clearSummaryApi = (chatKey, o) => browserApiRequest(`/api/v1/chats/${chatKey}/summary`, { method: "DELETE", ...o });
|
|
117
|
+
var regenerateSummaryApi = (chatKey, o) => browserApiRequest(`/api/v1/chats/${chatKey}/summary/regenerate`, { method: "POST", ...o });
|
|
118
|
+
|
|
107
119
|
// api/index.ts
|
|
108
120
|
async function getChatHistoryApi(options) {
|
|
109
|
-
return
|
|
121
|
+
return browserApiRequest2("/api/v1/chats", {
|
|
110
122
|
method: "POST",
|
|
111
123
|
body: {
|
|
112
124
|
limit: options.limit || 15,
|
|
@@ -117,26 +129,26 @@ async function getChatHistoryApi(options) {
|
|
|
117
129
|
});
|
|
118
130
|
}
|
|
119
131
|
async function getChatApi(chatKey, options) {
|
|
120
|
-
return
|
|
132
|
+
return browserApiRequest2(`/api/v1/chats/${chatKey}`, {
|
|
121
133
|
method: "GET",
|
|
122
134
|
...options
|
|
123
135
|
});
|
|
124
136
|
}
|
|
125
137
|
async function updateChatApi(chatKey, updates, options) {
|
|
126
|
-
return
|
|
138
|
+
return browserApiRequest2(`/api/v1/chats/${chatKey}`, {
|
|
127
139
|
method: "PATCH",
|
|
128
140
|
body: updates,
|
|
129
141
|
...options
|
|
130
142
|
});
|
|
131
143
|
}
|
|
132
144
|
async function deleteChatApi(chatKey, options) {
|
|
133
|
-
return
|
|
145
|
+
return browserApiRequest2(`/api/v1/chats/${chatKey}`, {
|
|
134
146
|
method: "DELETE",
|
|
135
147
|
...options
|
|
136
148
|
});
|
|
137
149
|
}
|
|
138
150
|
async function getActiveChatsCountApi(options) {
|
|
139
|
-
return
|
|
151
|
+
return browserApiRequest2("/api/v1/chats/active/count", {
|
|
140
152
|
method: "GET",
|
|
141
153
|
...options
|
|
142
154
|
});
|
|
@@ -145,35 +157,79 @@ async function getActiveChatsApi(options) {
|
|
|
145
157
|
const params = new URLSearchParams();
|
|
146
158
|
if (options.pastHours) params.set("pastHours", String(options.pastHours));
|
|
147
159
|
const queryString = params.toString();
|
|
148
|
-
return
|
|
160
|
+
return browserApiRequest2(`/api/v1/chats/active${queryString ? `?${queryString}` : ""}`, {
|
|
149
161
|
method: "GET",
|
|
150
162
|
...options
|
|
151
163
|
});
|
|
152
164
|
}
|
|
153
165
|
async function updateProjectChatTitleApi(projectId, chatKey, title, options) {
|
|
154
|
-
return
|
|
166
|
+
return browserApiRequest2(`/api/v1/projects/${projectId}/chats/${chatKey}/title`, {
|
|
155
167
|
method: "PUT",
|
|
156
168
|
body: { title },
|
|
157
169
|
...options
|
|
158
170
|
});
|
|
159
171
|
}
|
|
160
172
|
async function addChatToProjectApi(projectId, chatKey, options) {
|
|
161
|
-
return
|
|
173
|
+
return browserApiRequest2(`/api/v1/projects/${projectId}/chats`, {
|
|
162
174
|
method: "POST",
|
|
163
175
|
body: { chatKey },
|
|
164
176
|
...options
|
|
165
177
|
});
|
|
166
178
|
}
|
|
179
|
+
async function getWaitingChatsCountApi(options) {
|
|
180
|
+
return browserApiRequest2("/api/v1/chats/waiting/count", {
|
|
181
|
+
method: "GET",
|
|
182
|
+
...options
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
async function getChatsByUserApi(userEmail, options) {
|
|
186
|
+
return browserApiRequest2(`/api/v1/chats/user/${encodeURIComponent(userEmail)}`, {
|
|
187
|
+
method: "GET",
|
|
188
|
+
...options
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
async function listQueuesApi(options) {
|
|
192
|
+
return browserApiRequest2("/api/v1/queues", {
|
|
193
|
+
method: "GET",
|
|
194
|
+
...options
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
async function getOnlineSessionsApi(options) {
|
|
198
|
+
return browserApiRequest2("/api/v1/agents/sessions/online", {
|
|
199
|
+
method: "GET",
|
|
200
|
+
...options
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
async function getAgentSessionApi(agentId, options) {
|
|
204
|
+
return browserApiRequest2(`/api/v1/agents/sessions/${agentId}`, {
|
|
205
|
+
method: "GET",
|
|
206
|
+
...options
|
|
207
|
+
});
|
|
208
|
+
}
|
|
167
209
|
export {
|
|
168
210
|
addChatToProjectApi,
|
|
211
|
+
clearProfileApi,
|
|
212
|
+
clearSummaryApi,
|
|
169
213
|
createChat,
|
|
170
214
|
deleteChatApi,
|
|
215
|
+
deleteContactApi,
|
|
216
|
+
deleteNoteApi,
|
|
171
217
|
endChat,
|
|
172
218
|
getActiveChatsApi,
|
|
173
219
|
getActiveChatsCountApi,
|
|
220
|
+
getAgentSessionApi,
|
|
174
221
|
getChatApi,
|
|
175
222
|
getChatHistoryApi,
|
|
223
|
+
getChatsByUserApi,
|
|
224
|
+
getOnlineSessionsApi,
|
|
225
|
+
getProfileApi,
|
|
226
|
+
getSummaryApi,
|
|
227
|
+
getWaitingChatsCountApi,
|
|
228
|
+
listQueuesApi,
|
|
176
229
|
loadChat,
|
|
230
|
+
patchProfileApi,
|
|
231
|
+
regenerateSummaryApi,
|
|
232
|
+
replaceProfileApi,
|
|
177
233
|
sendChatMessage,
|
|
178
234
|
sendEvent,
|
|
179
235
|
sendTypingIndicator,
|