@elqnt/chat 3.0.3 → 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/dist/api/index.d.mts +17 -2
- package/dist/api/index.d.ts +17 -2
- package/dist/api/index.js +44 -14
- package/dist/api/index.js.map +1 -1
- package/dist/api/index.mjs +35 -14
- package/dist/api/index.mjs.map +1 -1
- package/dist/hooks/index.d.mts +38 -3
- package/dist/hooks/index.d.ts +38 -3
- package/dist/hooks/index.js +106 -12
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +105 -12
- package/dist/hooks/index.mjs.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +109 -12
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +107 -12
- package/dist/index.mjs.map +1 -1
- package/dist/models/index.d.mts +43 -1
- package/dist/models/index.d.ts +43 -1
- package/dist/models/index.js +3 -0
- package/dist/models/index.js.map +1 -1
- package/dist/models/index.mjs +2 -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 +2 -2
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
|
*
|
|
@@ -343,4 +358,4 @@ declare function listQueuesApi(options: ApiClientOptions): Promise<ApiResponse<Q
|
|
|
343
358
|
declare function getOnlineSessionsApi(options: ApiClientOptions): Promise<ApiResponse<OnlineSessionsResponse>>;
|
|
344
359
|
declare function getAgentSessionApi(agentId: string, options: ApiClientOptions): Promise<ApiResponse<AgentSessionResponse>>;
|
|
345
360
|
|
|
346
|
-
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 TypingApiOptions, type UpdateChatResponse, type WaitingChatsCountResponse, addChatToProjectApi, createChat, deleteChatApi, endChat, getActiveChatsApi, getActiveChatsCountApi, getAgentSessionApi, getChatApi, getChatHistoryApi, getChatsByUserApi, getOnlineSessionsApi, getWaitingChatsCountApi, listQueuesApi, 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
|
*
|
|
@@ -343,4 +358,4 @@ declare function listQueuesApi(options: ApiClientOptions): Promise<ApiResponse<Q
|
|
|
343
358
|
declare function getOnlineSessionsApi(options: ApiClientOptions): Promise<ApiResponse<OnlineSessionsResponse>>;
|
|
344
359
|
declare function getAgentSessionApi(agentId: string, options: ApiClientOptions): Promise<ApiResponse<AgentSessionResponse>>;
|
|
345
360
|
|
|
346
|
-
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 TypingApiOptions, type UpdateChatResponse, type WaitingChatsCountResponse, addChatToProjectApi, createChat, deleteChatApi, endChat, getActiveChatsApi, getActiveChatsCountApi, getAgentSessionApi, getChatApi, getChatHistoryApi, getChatsByUserApi, getOnlineSessionsApi, getWaitingChatsCountApi, listQueuesApi, 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,8 +22,12 @@ 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,
|
|
@@ -32,9 +36,14 @@ __export(api_exports, {
|
|
|
32
36
|
getChatHistoryApi: () => getChatHistoryApi,
|
|
33
37
|
getChatsByUserApi: () => getChatsByUserApi,
|
|
34
38
|
getOnlineSessionsApi: () => getOnlineSessionsApi,
|
|
39
|
+
getProfileApi: () => getProfileApi,
|
|
40
|
+
getSummaryApi: () => getSummaryApi,
|
|
35
41
|
getWaitingChatsCountApi: () => getWaitingChatsCountApi,
|
|
36
42
|
listQueuesApi: () => listQueuesApi,
|
|
37
43
|
loadChat: () => loadChat,
|
|
44
|
+
patchProfileApi: () => patchProfileApi,
|
|
45
|
+
regenerateSummaryApi: () => regenerateSummaryApi,
|
|
46
|
+
replaceProfileApi: () => replaceProfileApi,
|
|
38
47
|
sendChatMessage: () => sendChatMessage,
|
|
39
48
|
sendEvent: () => sendEvent,
|
|
40
49
|
sendTypingIndicator: () => sendTypingIndicator,
|
|
@@ -42,7 +51,7 @@ __export(api_exports, {
|
|
|
42
51
|
updateProjectChatTitleApi: () => updateProjectChatTitleApi
|
|
43
52
|
});
|
|
44
53
|
module.exports = __toCommonJS(api_exports);
|
|
45
|
-
var
|
|
54
|
+
var import_browser2 = require("@elqnt/api-client/browser");
|
|
46
55
|
|
|
47
56
|
// api/stream-api.ts
|
|
48
57
|
async function streamFetch(url, body) {
|
|
@@ -145,9 +154,21 @@ async function sendEvent(options) {
|
|
|
145
154
|
}
|
|
146
155
|
}
|
|
147
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
|
+
|
|
148
169
|
// api/index.ts
|
|
149
170
|
async function getChatHistoryApi(options) {
|
|
150
|
-
return (0,
|
|
171
|
+
return (0, import_browser2.browserApiRequest)("/api/v1/chats", {
|
|
151
172
|
method: "POST",
|
|
152
173
|
body: {
|
|
153
174
|
limit: options.limit || 15,
|
|
@@ -158,26 +179,26 @@ async function getChatHistoryApi(options) {
|
|
|
158
179
|
});
|
|
159
180
|
}
|
|
160
181
|
async function getChatApi(chatKey, options) {
|
|
161
|
-
return (0,
|
|
182
|
+
return (0, import_browser2.browserApiRequest)(`/api/v1/chats/${chatKey}`, {
|
|
162
183
|
method: "GET",
|
|
163
184
|
...options
|
|
164
185
|
});
|
|
165
186
|
}
|
|
166
187
|
async function updateChatApi(chatKey, updates, options) {
|
|
167
|
-
return (0,
|
|
188
|
+
return (0, import_browser2.browserApiRequest)(`/api/v1/chats/${chatKey}`, {
|
|
168
189
|
method: "PATCH",
|
|
169
190
|
body: updates,
|
|
170
191
|
...options
|
|
171
192
|
});
|
|
172
193
|
}
|
|
173
194
|
async function deleteChatApi(chatKey, options) {
|
|
174
|
-
return (0,
|
|
195
|
+
return (0, import_browser2.browserApiRequest)(`/api/v1/chats/${chatKey}`, {
|
|
175
196
|
method: "DELETE",
|
|
176
197
|
...options
|
|
177
198
|
});
|
|
178
199
|
}
|
|
179
200
|
async function getActiveChatsCountApi(options) {
|
|
180
|
-
return (0,
|
|
201
|
+
return (0, import_browser2.browserApiRequest)("/api/v1/chats/active/count", {
|
|
181
202
|
method: "GET",
|
|
182
203
|
...options
|
|
183
204
|
});
|
|
@@ -186,51 +207,51 @@ async function getActiveChatsApi(options) {
|
|
|
186
207
|
const params = new URLSearchParams();
|
|
187
208
|
if (options.pastHours) params.set("pastHours", String(options.pastHours));
|
|
188
209
|
const queryString = params.toString();
|
|
189
|
-
return (0,
|
|
210
|
+
return (0, import_browser2.browserApiRequest)(`/api/v1/chats/active${queryString ? `?${queryString}` : ""}`, {
|
|
190
211
|
method: "GET",
|
|
191
212
|
...options
|
|
192
213
|
});
|
|
193
214
|
}
|
|
194
215
|
async function updateProjectChatTitleApi(projectId, chatKey, title, options) {
|
|
195
|
-
return (0,
|
|
216
|
+
return (0, import_browser2.browserApiRequest)(`/api/v1/projects/${projectId}/chats/${chatKey}/title`, {
|
|
196
217
|
method: "PUT",
|
|
197
218
|
body: { title },
|
|
198
219
|
...options
|
|
199
220
|
});
|
|
200
221
|
}
|
|
201
222
|
async function addChatToProjectApi(projectId, chatKey, options) {
|
|
202
|
-
return (0,
|
|
223
|
+
return (0, import_browser2.browserApiRequest)(`/api/v1/projects/${projectId}/chats`, {
|
|
203
224
|
method: "POST",
|
|
204
225
|
body: { chatKey },
|
|
205
226
|
...options
|
|
206
227
|
});
|
|
207
228
|
}
|
|
208
229
|
async function getWaitingChatsCountApi(options) {
|
|
209
|
-
return (0,
|
|
230
|
+
return (0, import_browser2.browserApiRequest)("/api/v1/chats/waiting/count", {
|
|
210
231
|
method: "GET",
|
|
211
232
|
...options
|
|
212
233
|
});
|
|
213
234
|
}
|
|
214
235
|
async function getChatsByUserApi(userEmail, options) {
|
|
215
|
-
return (0,
|
|
236
|
+
return (0, import_browser2.browserApiRequest)(`/api/v1/chats/user/${encodeURIComponent(userEmail)}`, {
|
|
216
237
|
method: "GET",
|
|
217
238
|
...options
|
|
218
239
|
});
|
|
219
240
|
}
|
|
220
241
|
async function listQueuesApi(options) {
|
|
221
|
-
return (0,
|
|
242
|
+
return (0, import_browser2.browserApiRequest)("/api/v1/queues", {
|
|
222
243
|
method: "GET",
|
|
223
244
|
...options
|
|
224
245
|
});
|
|
225
246
|
}
|
|
226
247
|
async function getOnlineSessionsApi(options) {
|
|
227
|
-
return (0,
|
|
248
|
+
return (0, import_browser2.browserApiRequest)("/api/v1/agents/sessions/online", {
|
|
228
249
|
method: "GET",
|
|
229
250
|
...options
|
|
230
251
|
});
|
|
231
252
|
}
|
|
232
253
|
async function getAgentSessionApi(agentId, options) {
|
|
233
|
-
return (0,
|
|
254
|
+
return (0, import_browser2.browserApiRequest)(`/api/v1/agents/sessions/${agentId}`, {
|
|
234
255
|
method: "GET",
|
|
235
256
|
...options
|
|
236
257
|
});
|
|
@@ -238,8 +259,12 @@ async function getAgentSessionApi(agentId, options) {
|
|
|
238
259
|
// Annotate the CommonJS export names for ESM import in node:
|
|
239
260
|
0 && (module.exports = {
|
|
240
261
|
addChatToProjectApi,
|
|
262
|
+
clearProfileApi,
|
|
263
|
+
clearSummaryApi,
|
|
241
264
|
createChat,
|
|
242
265
|
deleteChatApi,
|
|
266
|
+
deleteContactApi,
|
|
267
|
+
deleteNoteApi,
|
|
243
268
|
endChat,
|
|
244
269
|
getActiveChatsApi,
|
|
245
270
|
getActiveChatsCountApi,
|
|
@@ -248,9 +273,14 @@ async function getAgentSessionApi(agentId, options) {
|
|
|
248
273
|
getChatHistoryApi,
|
|
249
274
|
getChatsByUserApi,
|
|
250
275
|
getOnlineSessionsApi,
|
|
276
|
+
getProfileApi,
|
|
277
|
+
getSummaryApi,
|
|
251
278
|
getWaitingChatsCountApi,
|
|
252
279
|
listQueuesApi,
|
|
253
280
|
loadChat,
|
|
281
|
+
patchProfileApi,
|
|
282
|
+
regenerateSummaryApi,
|
|
283
|
+
replaceProfileApi,
|
|
254
284
|
sendChatMessage,
|
|
255
285
|
sendEvent,
|
|
256
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\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 * 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":"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","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,59 +157,63 @@ 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
|
}
|
|
167
179
|
async function getWaitingChatsCountApi(options) {
|
|
168
|
-
return
|
|
180
|
+
return browserApiRequest2("/api/v1/chats/waiting/count", {
|
|
169
181
|
method: "GET",
|
|
170
182
|
...options
|
|
171
183
|
});
|
|
172
184
|
}
|
|
173
185
|
async function getChatsByUserApi(userEmail, options) {
|
|
174
|
-
return
|
|
186
|
+
return browserApiRequest2(`/api/v1/chats/user/${encodeURIComponent(userEmail)}`, {
|
|
175
187
|
method: "GET",
|
|
176
188
|
...options
|
|
177
189
|
});
|
|
178
190
|
}
|
|
179
191
|
async function listQueuesApi(options) {
|
|
180
|
-
return
|
|
192
|
+
return browserApiRequest2("/api/v1/queues", {
|
|
181
193
|
method: "GET",
|
|
182
194
|
...options
|
|
183
195
|
});
|
|
184
196
|
}
|
|
185
197
|
async function getOnlineSessionsApi(options) {
|
|
186
|
-
return
|
|
198
|
+
return browserApiRequest2("/api/v1/agents/sessions/online", {
|
|
187
199
|
method: "GET",
|
|
188
200
|
...options
|
|
189
201
|
});
|
|
190
202
|
}
|
|
191
203
|
async function getAgentSessionApi(agentId, options) {
|
|
192
|
-
return
|
|
204
|
+
return browserApiRequest2(`/api/v1/agents/sessions/${agentId}`, {
|
|
193
205
|
method: "GET",
|
|
194
206
|
...options
|
|
195
207
|
});
|
|
196
208
|
}
|
|
197
209
|
export {
|
|
198
210
|
addChatToProjectApi,
|
|
211
|
+
clearProfileApi,
|
|
212
|
+
clearSummaryApi,
|
|
199
213
|
createChat,
|
|
200
214
|
deleteChatApi,
|
|
215
|
+
deleteContactApi,
|
|
216
|
+
deleteNoteApi,
|
|
201
217
|
endChat,
|
|
202
218
|
getActiveChatsApi,
|
|
203
219
|
getActiveChatsCountApi,
|
|
@@ -206,9 +222,14 @@ export {
|
|
|
206
222
|
getChatHistoryApi,
|
|
207
223
|
getChatsByUserApi,
|
|
208
224
|
getOnlineSessionsApi,
|
|
225
|
+
getProfileApi,
|
|
226
|
+
getSummaryApi,
|
|
209
227
|
getWaitingChatsCountApi,
|
|
210
228
|
listQueuesApi,
|
|
211
229
|
loadChat,
|
|
230
|
+
patchProfileApi,
|
|
231
|
+
regenerateSummaryApi,
|
|
232
|
+
replaceProfileApi,
|
|
212
233
|
sendChatMessage,
|
|
213
234
|
sendEvent,
|
|
214
235
|
sendTypingIndicator,
|