@toothfairyai/sdk 0.1.0-beta.1

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.
Files changed (39) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +395 -0
  3. package/dist/chat/ChatManager.d.ts +22 -0
  4. package/dist/chat/ChatManager.d.ts.map +1 -0
  5. package/dist/chat/ChatManager.js +89 -0
  6. package/dist/chat/ChatManager.js.map +1 -0
  7. package/dist/client.d.ts +38 -0
  8. package/dist/client.d.ts.map +1 -0
  9. package/dist/client.js +126 -0
  10. package/dist/client.js.map +1 -0
  11. package/dist/documents/DocumentManager.d.ts +34 -0
  12. package/dist/documents/DocumentManager.d.ts.map +1 -0
  13. package/dist/documents/DocumentManager.js +268 -0
  14. package/dist/documents/DocumentManager.js.map +1 -0
  15. package/dist/entities/EntityManager.d.ts +24 -0
  16. package/dist/entities/EntityManager.d.ts.map +1 -0
  17. package/dist/entities/EntityManager.js +56 -0
  18. package/dist/entities/EntityManager.js.map +1 -0
  19. package/dist/folders/FolderManager.d.ts +30 -0
  20. package/dist/folders/FolderManager.d.ts.map +1 -0
  21. package/dist/folders/FolderManager.js +86 -0
  22. package/dist/folders/FolderManager.js.map +1 -0
  23. package/dist/index.d.ts +13 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +42 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/prompts/PromptManager.d.ts +23 -0
  28. package/dist/prompts/PromptManager.d.ts.map +1 -0
  29. package/dist/prompts/PromptManager.js +83 -0
  30. package/dist/prompts/PromptManager.js.map +1 -0
  31. package/dist/streaming/StreamingManager.d.ts +53 -0
  32. package/dist/streaming/StreamingManager.d.ts.map +1 -0
  33. package/dist/streaming/StreamingManager.js +217 -0
  34. package/dist/streaming/StreamingManager.js.map +1 -0
  35. package/dist/types/index.d.ts +273 -0
  36. package/dist/types/index.d.ts.map +1 -0
  37. package/dist/types/index.js +17 -0
  38. package/dist/types/index.js.map +1 -0
  39. package/package.json +76 -0
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FolderManager = void 0;
4
+ class FolderManager {
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ async create(userId, name, options = {}) {
9
+ const folderData = {
10
+ workspaceID: this.client.getWorkspaceId(),
11
+ createdBy: userId,
12
+ name,
13
+ ...options
14
+ };
15
+ return this.client.request('POST', 'folder/create', folderData);
16
+ }
17
+ async update(folderId, fields) {
18
+ const updateData = {
19
+ id: folderId,
20
+ ...fields
21
+ };
22
+ return this.client.request('POST', 'folder/update', updateData);
23
+ }
24
+ async get(folderId) {
25
+ return this.client.request('GET', `folder/get/${folderId}`);
26
+ }
27
+ async delete(folderId) {
28
+ return this.client.request('DELETE', `folder/delete/${folderId}`);
29
+ }
30
+ async list(options = {}) {
31
+ const { status, limit, offset } = options;
32
+ const params = { workspaceID: this.client.getWorkspaceId() };
33
+ if (status)
34
+ params.status = status;
35
+ if (limit)
36
+ params.limit = limit;
37
+ if (offset)
38
+ params.offset = offset;
39
+ const response = await this.client.request('GET', 'folder/list', null, { params });
40
+ return {
41
+ items: Array.isArray(response) ? response : [],
42
+ total: Array.isArray(response) ? response.length : 0,
43
+ limit,
44
+ offset
45
+ };
46
+ }
47
+ async getRootFolders() {
48
+ const result = await this.list();
49
+ return result.items.filter(folder => !folder.parent);
50
+ }
51
+ async getSubfolders(parentId) {
52
+ const result = await this.list();
53
+ return result.items.filter(folder => folder.parent === parentId);
54
+ }
55
+ async getTree() {
56
+ const result = await this.list();
57
+ const folders = result.items;
58
+ const folderMap = new Map();
59
+ const rootFolders = [];
60
+ folders.forEach(folder => {
61
+ folderMap.set(folder.id, {
62
+ ...folder,
63
+ children: []
64
+ });
65
+ });
66
+ folders.forEach(folder => {
67
+ const node = folderMap.get(folder.id);
68
+ if (folder.parent) {
69
+ const parent = folderMap.get(folder.parent);
70
+ if (parent) {
71
+ parent.children.push(node);
72
+ }
73
+ }
74
+ else {
75
+ rootFolders.push(node);
76
+ }
77
+ });
78
+ return rootFolders;
79
+ }
80
+ async search(searchTerm) {
81
+ const result = await this.list();
82
+ return result.items.filter(folder => folder.name.toLowerCase().includes(searchTerm.toLowerCase()));
83
+ }
84
+ }
85
+ exports.FolderManager = FolderManager;
86
+ //# sourceMappingURL=FolderManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FolderManager.js","sourceRoot":"","sources":["../../src/folders/FolderManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export { ToothFairyClient } from './client';
2
+ export { ChatManager } from './chat/ChatManager';
3
+ export { DocumentManager } from './documents/DocumentManager';
4
+ export { EntityManager } from './entities/EntityManager';
5
+ export { FolderManager, FolderTreeNode } from './folders/FolderManager';
6
+ export { PromptManager } from './prompts/PromptManager';
7
+ export { StreamingManager, StreamingSession } from './streaming/StreamingManager';
8
+ export * from './types';
9
+ export declare const VERSION = "0.1.0-beta.1";
10
+ export declare function createClient(config: import('./types').ToothFairyClientConfig): any;
11
+ import { ToothFairyClient } from './client';
12
+ export default ToothFairyClient;
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGlF,cAAc,SAAS,CAAC;AAGxB,eAAO,MAAM,OAAO,iBAAiB,CAAC;AAQtC,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,SAAS,EAAE,sBAAsB,OAG5E;AAGD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,eAAe,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.createClient = exports.VERSION = exports.StreamingSession = exports.StreamingManager = exports.PromptManager = exports.FolderManager = exports.EntityManager = exports.DocumentManager = exports.ChatManager = exports.ToothFairyClient = void 0;
18
+ var client_1 = require("./client");
19
+ Object.defineProperty(exports, "ToothFairyClient", { enumerable: true, get: function () { return client_1.ToothFairyClient; } });
20
+ var ChatManager_1 = require("./chat/ChatManager");
21
+ Object.defineProperty(exports, "ChatManager", { enumerable: true, get: function () { return ChatManager_1.ChatManager; } });
22
+ var DocumentManager_1 = require("./documents/DocumentManager");
23
+ Object.defineProperty(exports, "DocumentManager", { enumerable: true, get: function () { return DocumentManager_1.DocumentManager; } });
24
+ var EntityManager_1 = require("./entities/EntityManager");
25
+ Object.defineProperty(exports, "EntityManager", { enumerable: true, get: function () { return EntityManager_1.EntityManager; } });
26
+ var FolderManager_1 = require("./folders/FolderManager");
27
+ Object.defineProperty(exports, "FolderManager", { enumerable: true, get: function () { return FolderManager_1.FolderManager; } });
28
+ var PromptManager_1 = require("./prompts/PromptManager");
29
+ Object.defineProperty(exports, "PromptManager", { enumerable: true, get: function () { return PromptManager_1.PromptManager; } });
30
+ var StreamingManager_1 = require("./streaming/StreamingManager");
31
+ Object.defineProperty(exports, "StreamingManager", { enumerable: true, get: function () { return StreamingManager_1.StreamingManager; } });
32
+ Object.defineProperty(exports, "StreamingSession", { enumerable: true, get: function () { return StreamingManager_1.StreamingSession; } });
33
+ __exportStar(require("./types"), exports);
34
+ exports.VERSION = '0.1.0-beta.1';
35
+ function createClient(config) {
36
+ const { ToothFairyClient } = require('./client');
37
+ return new ToothFairyClient(config);
38
+ }
39
+ exports.createClient = createClient;
40
+ const client_2 = require("./client");
41
+ exports.default = client_2.ToothFairyClient;
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AA+BA,mCAA4C;AAAnC,0GAAA,gBAAgB,OAAA;AAGzB,kDAAiD;AAAxC,0GAAA,WAAW,OAAA;AACpB,+DAA8D;AAArD,kHAAA,eAAe,OAAA;AACxB,0DAAyD;AAAhD,8GAAA,aAAa,OAAA;AACtB,yDAAwE;AAA/D,8GAAA,aAAa,OAAA;AACtB,yDAAwD;AAA/C,8GAAA,aAAa,OAAA;AACtB,iEAAkF;AAAzE,oHAAA,gBAAgB,OAAA;AAAE,oHAAA,gBAAgB,OAAA;AAG3C,0CAAwB;AAGX,QAAA,OAAO,GAAG,cAAc,CAAC;AAQtC,SAAgB,YAAY,CAAC,MAAgD;IAC3E,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAHD,oCAGC;AAGD,qCAA4C;AAC5C,kBAAe,yBAAgB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { Prompt, PromptCreateData, PromptUpdateData, ListResponse } from '../types';
2
+ import { IToothFairyClient } from '../client';
3
+ export declare class PromptManager {
4
+ private client;
5
+ constructor(client: IToothFairyClient);
6
+ create(userId: string, promptData: PromptCreateData): Promise<Prompt>;
7
+ update(promptId: string, fields: PromptUpdateData): Promise<Prompt>;
8
+ get(promptId: string): Promise<Prompt>;
9
+ delete(promptId: string): Promise<{
10
+ success: boolean;
11
+ }>;
12
+ list(options?: {
13
+ type?: string;
14
+ limit?: number;
15
+ offset?: number;
16
+ }): Promise<ListResponse<Prompt>>;
17
+ getByType(type: string, limit?: number): Promise<Prompt[]>;
18
+ getByAgent(agentId: string): Promise<Prompt[]>;
19
+ search(searchTerm: string, type?: string): Promise<Prompt[]>;
20
+ getByScope(scope: string): Promise<Prompt[]>;
21
+ clone(promptId: string, userId: string, modifications?: Partial<PromptCreateData>): Promise<Prompt>;
22
+ }
23
+ //# sourceMappingURL=PromptManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptManager.d.ts","sourceRoot":"","sources":["../../src/prompts/PromptManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAyB9C,qBAAa,aAAa;IACZ,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,iBAAiB;IASvC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBrE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAenE,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUtC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAUvD,IAAI,CAAC,OAAO,GAAE;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACZ,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAyBhC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAW1D,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAe9C,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgB5D,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAa5C,KAAK,CACT,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,aAAa,GAAE,OAAO,CAAC,gBAAgB,CAAM,GAC5C,OAAO,CAAC,MAAM,CAAC;CAkBnB"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PromptManager = void 0;
4
+ class PromptManager {
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ async create(userId, promptData) {
9
+ const data = {
10
+ workspaceID: this.client.getWorkspaceId(),
11
+ createdBy: userId,
12
+ ...promptData
13
+ };
14
+ return this.client.request('POST', 'prompt/create', data);
15
+ }
16
+ async update(promptId, fields) {
17
+ const updateData = {
18
+ id: promptId,
19
+ ...fields
20
+ };
21
+ return this.client.request('POST', 'prompt/update', updateData);
22
+ }
23
+ async get(promptId) {
24
+ return this.client.request('GET', `prompt/get/${promptId}`);
25
+ }
26
+ async delete(promptId) {
27
+ return this.client.request('DELETE', `prompt/delete/${promptId}`);
28
+ }
29
+ async list(options = {}) {
30
+ const { type, limit, offset } = options;
31
+ const params = { workspaceID: this.client.getWorkspaceId() };
32
+ if (type)
33
+ params.type = type;
34
+ if (limit)
35
+ params.limit = limit;
36
+ if (offset)
37
+ params.offset = offset;
38
+ const response = await this.client.request('GET', 'prompt/list', null, { params });
39
+ return {
40
+ items: Array.isArray(response) ? response : [],
41
+ total: Array.isArray(response) ? response.length : 0,
42
+ limit,
43
+ offset
44
+ };
45
+ }
46
+ async getByType(type, limit) {
47
+ const result = await this.list({ type, limit });
48
+ return result.items;
49
+ }
50
+ async getByAgent(agentId) {
51
+ const result = await this.list();
52
+ return result.items.filter(prompt => !prompt.availableToAgents ||
53
+ prompt.availableToAgents.includes(agentId));
54
+ }
55
+ async search(searchTerm, type) {
56
+ const result = await this.list({ type });
57
+ const lowerSearchTerm = searchTerm.toLowerCase();
58
+ return result.items.filter(prompt => prompt.label.toLowerCase().includes(lowerSearchTerm) ||
59
+ prompt.interpolationString.toLowerCase().includes(lowerSearchTerm));
60
+ }
61
+ async getByScope(scope) {
62
+ const result = await this.list();
63
+ return result.items.filter(prompt => prompt.scope === scope);
64
+ }
65
+ async clone(promptId, userId, modifications = {}) {
66
+ const sourcePrompt = await this.get(promptId);
67
+ const clonedData = {
68
+ type: sourcePrompt.type,
69
+ label: `${sourcePrompt.label} (Copy)`,
70
+ promptLength: sourcePrompt.promptLength,
71
+ interpolationString: sourcePrompt.interpolationString,
72
+ scope: sourcePrompt.scope,
73
+ style: sourcePrompt.style,
74
+ domain: sourcePrompt.domain,
75
+ promptPlaceholder: sourcePrompt.promptPlaceholder,
76
+ availableToAgents: sourcePrompt.availableToAgents,
77
+ ...modifications
78
+ };
79
+ return this.create(userId, clonedData);
80
+ }
81
+ }
82
+ exports.PromptManager = PromptManager;
83
+ //# sourceMappingURL=PromptManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptManager.js","sourceRoot":"","sources":["../../src/prompts/PromptManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from 'events';
3
+ import { StreamEventCallback } from '../types';
4
+ import { IToothFairyClient } from '../client';
5
+ export declare class StreamingSession extends EventEmitter {
6
+ readonly chatId: string;
7
+ readonly messageId: string;
8
+ private completed;
9
+ constructor(chatId: string, messageId: string);
10
+ isCompleted(): boolean;
11
+ _setCompleted(): void;
12
+ emit(event: 'status', data: any): boolean;
13
+ emit(event: 'progress', data: any): boolean;
14
+ emit(event: 'data', data: any): boolean;
15
+ emit(event: 'complete', data: any): boolean;
16
+ emit(event: 'metadata', data: any): boolean;
17
+ emit(event: 'callback', data: any): boolean;
18
+ emit(event: 'error', data: any): boolean;
19
+ emit(event: 'unknown', data: any): boolean;
20
+ emit(event: 'end'): boolean;
21
+ on(event: 'status', listener: (data: any) => void): this;
22
+ on(event: 'progress', listener: (data: any) => void): this;
23
+ on(event: 'data', listener: (data: any) => void): this;
24
+ on(event: 'complete', listener: (data: any) => void): this;
25
+ on(event: 'metadata', listener: (data: any) => void): this;
26
+ on(event: 'callback', listener: (data: any) => void): this;
27
+ on(event: 'error', listener: (data: any) => void): this;
28
+ on(event: 'unknown', listener: (data: any) => void): this;
29
+ on(event: 'end', listener: () => void): this;
30
+ }
31
+ export declare class StreamingManager {
32
+ private client;
33
+ constructor(client: IToothFairyClient);
34
+ sendToAgent(message: string, agentId: string, options?: {
35
+ phoneNumber?: string;
36
+ customerId?: string;
37
+ providerId?: string;
38
+ customerInfo?: Record<string, any>;
39
+ }): Promise<StreamingSession>;
40
+ private startStreaming;
41
+ private processStreamEvent;
42
+ sendToAgentWithCallback(message: string, agentId: string, onEvent: StreamEventCallback, options?: {
43
+ phoneNumber?: string;
44
+ customerId?: string;
45
+ providerId?: string;
46
+ customerInfo?: Record<string, any>;
47
+ }): Promise<{
48
+ chatId: string;
49
+ messageId: string;
50
+ }>;
51
+ private generateCustomerId;
52
+ }
53
+ //# sourceMappingURL=StreamingManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StreamingManager.d.ts","sourceRoot":"","sources":["../../src/streaming/StreamingManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.StreamingManager = exports.StreamingSession = void 0;
7
+ const events_1 = require("events");
8
+ const axios_1 = __importDefault(require("axios"));
9
+ class StreamingSession extends events_1.EventEmitter {
10
+ constructor(chatId, messageId) {
11
+ super();
12
+ this.completed = false;
13
+ this.chatId = chatId;
14
+ this.messageId = messageId;
15
+ }
16
+ isCompleted() {
17
+ return this.completed;
18
+ }
19
+ _setCompleted() {
20
+ this.completed = true;
21
+ }
22
+ emit(event, ...args) {
23
+ return super.emit(event, ...args);
24
+ }
25
+ on(event, listener) {
26
+ return super.on(event, listener);
27
+ }
28
+ }
29
+ exports.StreamingSession = StreamingSession;
30
+ class StreamingManager {
31
+ constructor(client) {
32
+ this.client = client;
33
+ }
34
+ async sendToAgent(message, agentId, options = {}) {
35
+ const { phoneNumber = '+1234567890', customerId = this.generateCustomerId(message), providerId = 'default-sms-provider', customerInfo = {} } = options;
36
+ const chatData = {
37
+ name: customerId,
38
+ primaryRole: agentId,
39
+ externalParticipantId: phoneNumber,
40
+ channelSettings: {
41
+ sms: {
42
+ isEnabled: true,
43
+ recipient: phoneNumber,
44
+ providerID: providerId,
45
+ },
46
+ },
47
+ customerId,
48
+ customerInfo,
49
+ isAIReplying: true,
50
+ };
51
+ const createdChat = await this.client.chat.create(chatData);
52
+ const messageData = {
53
+ chatID: createdChat.id,
54
+ text: message,
55
+ role: 'user',
56
+ userID: 'SDK',
57
+ };
58
+ const createdMessage = await this.client.chat.createMessage(messageData);
59
+ const session = new StreamingSession(createdChat.id, createdMessage.id);
60
+ this.startStreaming(session, createdChat.id, createdMessage, agentId);
61
+ return session;
62
+ }
63
+ async startStreaming(session, chatId, message, agentId) {
64
+ try {
65
+ const agentData = {
66
+ chatid: chatId,
67
+ messages: [
68
+ {
69
+ text: message.text,
70
+ role: message.role,
71
+ userID: message.userID || 'System User',
72
+ },
73
+ ],
74
+ agentid: agentId,
75
+ };
76
+ const streamUrl = this.client.getStreamingUrl('agent');
77
+ const config = this.client.getConfig();
78
+ const axiosConfig = {
79
+ method: 'POST',
80
+ url: streamUrl,
81
+ headers: {
82
+ 'Content-Type': 'application/json',
83
+ 'x-api-key': config.apiKey,
84
+ 'Accept': 'text/event-stream',
85
+ 'Cache-Control': 'no-cache',
86
+ },
87
+ data: { workspaceid: config.workspaceId, ...agentData },
88
+ responseType: 'stream',
89
+ timeout: 300000,
90
+ };
91
+ const response = await (0, axios_1.default)(axiosConfig);
92
+ let buffer = '';
93
+ response.data.on('data', (chunk) => {
94
+ buffer += chunk.toString();
95
+ const lines = buffer.split('\\n');
96
+ buffer = lines.pop() || '';
97
+ for (const line of lines) {
98
+ if (line.trim() === '')
99
+ continue;
100
+ if (line.startsWith('data: ')) {
101
+ const dataStr = line.slice(6);
102
+ try {
103
+ const eventData = JSON.parse(dataStr);
104
+ this.processStreamEvent(session, eventData);
105
+ }
106
+ catch (e) {
107
+ session.emit('error', {
108
+ error: 'json_decode_error',
109
+ raw_data: dataStr,
110
+ message: e.message,
111
+ });
112
+ }
113
+ }
114
+ }
115
+ });
116
+ response.data.on('end', () => {
117
+ session._setCompleted();
118
+ session.emit('end');
119
+ });
120
+ response.data.on('error', (error) => {
121
+ session.emit('error', {
122
+ error: 'stream_error',
123
+ message: error.message,
124
+ });
125
+ });
126
+ }
127
+ catch (error) {
128
+ session.emit('error', {
129
+ error: 'request_error',
130
+ message: error.message,
131
+ });
132
+ }
133
+ }
134
+ processStreamEvent(session, eventData) {
135
+ if (eventData.status) {
136
+ if (eventData.status === 'connected') {
137
+ session.emit('status', eventData);
138
+ }
139
+ else if (eventData.status === 'complete') {
140
+ session.emit('status', eventData);
141
+ }
142
+ else if (eventData.status === 'inProgress') {
143
+ let metadata = {};
144
+ if (eventData.metadata) {
145
+ try {
146
+ metadata = JSON.parse(eventData.metadata);
147
+ }
148
+ catch (e) {
149
+ metadata = { raw_metadata: eventData.metadata };
150
+ }
151
+ }
152
+ const progressData = {
153
+ ...eventData,
154
+ metadata_parsed: metadata,
155
+ };
156
+ if (metadata && metadata.agent_processing_status) {
157
+ progressData.processing_status = metadata.agent_processing_status;
158
+ }
159
+ session.emit('progress', progressData);
160
+ }
161
+ else if (eventData.status === 'fulfilled') {
162
+ session.emit('complete', eventData);
163
+ }
164
+ }
165
+ else if (eventData.text && eventData.type === 'message') {
166
+ session.emit('data', eventData);
167
+ }
168
+ else if (eventData.type === 'message' && eventData.images !== undefined) {
169
+ session.emit('metadata', eventData);
170
+ }
171
+ else if (eventData.type === 'message' && eventData.callbackMetadata) {
172
+ session.emit('callback', eventData);
173
+ }
174
+ else {
175
+ session.emit('unknown', eventData);
176
+ }
177
+ }
178
+ async sendToAgentWithCallback(message, agentId, onEvent, options = {}) {
179
+ const session = await this.sendToAgent(message, agentId, options);
180
+ return new Promise((resolve, reject) => {
181
+ session.on('status', (data) => onEvent('status', data));
182
+ session.on('progress', (data) => onEvent('progress', data));
183
+ session.on('data', (data) => onEvent('data', data));
184
+ session.on('complete', (data) => onEvent('complete', data));
185
+ session.on('metadata', (data) => onEvent('metadata', data));
186
+ session.on('callback', (data) => onEvent('callback', data));
187
+ session.on('error', (data) => onEvent('error', data));
188
+ session.on('unknown', (data) => onEvent('unknown', data));
189
+ session.on('complete', () => {
190
+ resolve({
191
+ chatId: session.chatId,
192
+ messageId: session.messageId
193
+ });
194
+ });
195
+ session.on('error', (error) => {
196
+ reject(error);
197
+ });
198
+ session.on('end', () => {
199
+ if (!session.isCompleted()) {
200
+ resolve({
201
+ chatId: session.chatId,
202
+ messageId: session.messageId
203
+ });
204
+ }
205
+ });
206
+ });
207
+ }
208
+ generateCustomerId(message) {
209
+ const hash = Math.abs(message.split('').reduce((a, b) => {
210
+ a = (a << 5) - a + b.charCodeAt(0);
211
+ return a & a;
212
+ }, 0)) % 10000;
213
+ return `sdk-user-${hash}`;
214
+ }
215
+ }
216
+ exports.StreamingManager = StreamingManager;
217
+ //# sourceMappingURL=StreamingManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StreamingManager.js","sourceRoot":"","sources":["../../src/streaming/StreamingManager.ts"],"names":[],"mappings":"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"}