@botonic/plugin-hubtype-sdk 2.23.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.
Files changed (51) hide show
  1. package/CHANGELOG.md +201 -0
  2. package/README.md +11 -0
  3. package/package.json +21 -0
  4. package/src/http-client.d.ts +11 -0
  5. package/src/http-client.js +63 -0
  6. package/src/http-client.js.map +1 -0
  7. package/src/hubtype-sdk.d.ts +43 -0
  8. package/src/hubtype-sdk.js +128 -0
  9. package/src/hubtype-sdk.js.map +1 -0
  10. package/src/index.d.ts +56 -0
  11. package/src/index.js +117 -0
  12. package/src/index.js.map +1 -0
  13. package/src/shared.d.ts +1 -0
  14. package/src/shared.js +2 -0
  15. package/src/shared.js.map +1 -0
  16. package/src/types/agents.d.ts +8 -0
  17. package/src/types/agents.js +2 -0
  18. package/src/types/agents.js.map +1 -0
  19. package/src/types/ai.d.ts +17 -0
  20. package/src/types/ai.js +2 -0
  21. package/src/types/ai.js.map +1 -0
  22. package/src/types/cases.d.ts +103 -0
  23. package/src/types/cases.js +8 -0
  24. package/src/types/cases.js.map +1 -0
  25. package/src/types/chats.d.ts +35 -0
  26. package/src/types/chats.js +2 -0
  27. package/src/types/chats.js.map +1 -0
  28. package/src/types/config.d.ts +11 -0
  29. package/src/types/config.js +2 -0
  30. package/src/types/config.js.map +1 -0
  31. package/src/types/contact-info.d.ts +3 -0
  32. package/src/types/contact-info.js +2 -0
  33. package/src/types/contact-info.js.map +1 -0
  34. package/src/types/http-client.d.ts +8 -0
  35. package/src/types/http-client.js +8 -0
  36. package/src/types/http-client.js.map +1 -0
  37. package/src/types/messages.d.ts +53 -0
  38. package/src/types/messages.js +2 -0
  39. package/src/types/messages.js.map +1 -0
  40. package/src/types/queues.d.ts +95 -0
  41. package/src/types/queues.js +6 -0
  42. package/src/types/queues.js.map +1 -0
  43. package/src/types/shared.d.ts +46 -0
  44. package/src/types/shared.js +2 -0
  45. package/src/types/shared.js.map +1 -0
  46. package/src/types/users.d.ts +27 -0
  47. package/src/types/users.js +14 -0
  48. package/src/types/users.js.map +1 -0
  49. package/src/types/whatsapp.d.ts +78 -0
  50. package/src/types/whatsapp.js +2 -0
  51. package/src/types/whatsapp.js.map +1 -0
package/src/index.js ADDED
@@ -0,0 +1,117 @@
1
+ import { __awaiter } from "tslib";
2
+ import { HubtypeSdk } from './hubtype-sdk';
3
+ export class BotonicPluginHubtypeSdk {
4
+ constructor() {
5
+ this.pre = (botContext) => {
6
+ if (!this.hubtypeSdk) {
7
+ this.hubtypeSdk = new HubtypeSdk({
8
+ accessToken: botContext.session.accessToken,
9
+ baseUrl: botContext.session.hubtypeApi,
10
+ });
11
+ }
12
+ else {
13
+ this.setAccessToken(botContext.session.accessToken);
14
+ }
15
+ };
16
+ this.setAccessToken = (accessToken) => {
17
+ this.hubtypeSdk.setAccessToken(accessToken);
18
+ };
19
+ this.knowledgeBaseInference = (request, config) => __awaiter(this, void 0, void 0, function* () {
20
+ return this.hubtypeSdk.knowledgeBaseInference(request, config);
21
+ });
22
+ this.searchCases = (params, config) => __awaiter(this, void 0, void 0, function* () {
23
+ return this.hubtypeSdk.searchCases(params, config);
24
+ });
25
+ this.searchAllCases = (params, config) => __awaiter(this, void 0, void 0, function* () {
26
+ return this.hubtypeSdk.searchAllCases(params, config);
27
+ });
28
+ this.getCases = (params, config) => __awaiter(this, void 0, void 0, function* () {
29
+ return this.hubtypeSdk.getCases(params, config);
30
+ });
31
+ this.getAllCases = (params, config) => __awaiter(this, void 0, void 0, function* () {
32
+ return this.hubtypeSdk.getAllCases(params, config);
33
+ });
34
+ this.getCaseById = (id, config) => __awaiter(this, void 0, void 0, function* () {
35
+ return this.hubtypeSdk.getCaseById(id, config);
36
+ });
37
+ this.getChats = (params, config) => __awaiter(this, void 0, void 0, function* () {
38
+ return this.hubtypeSdk.getChats(params, config);
39
+ });
40
+ this.getAllChats = (params, config) => __awaiter(this, void 0, void 0, function* () {
41
+ return this.hubtypeSdk.getAllChats(params, config);
42
+ });
43
+ this.getChatById = (id, config) => __awaiter(this, void 0, void 0, function* () {
44
+ return this.hubtypeSdk.getChatById(id, config);
45
+ });
46
+ this.getChatTranscript = (chatId, config) => __awaiter(this, void 0, void 0, function* () {
47
+ return this.hubtypeSdk.getChatTranscript(chatId, config);
48
+ });
49
+ this.getChatTranscriptByProvider = (params, config) => __awaiter(this, void 0, void 0, function* () {
50
+ return this.hubtypeSdk.getChatTranscriptByProvider(params, config);
51
+ });
52
+ this.getMessages = (params, config) => __awaiter(this, void 0, void 0, function* () {
53
+ return this.hubtypeSdk.getMessages(params, config);
54
+ });
55
+ this.getAllMessages = (params, config) => __awaiter(this, void 0, void 0, function* () {
56
+ return this.hubtypeSdk.getAllMessages(params, config);
57
+ });
58
+ this.getMessageById = (id, config) => __awaiter(this, void 0, void 0, function* () {
59
+ return this.hubtypeSdk.getMessageById(id, config);
60
+ });
61
+ this.getQueues = (params, config) => __awaiter(this, void 0, void 0, function* () {
62
+ return this.hubtypeSdk.getQueues(params, config);
63
+ });
64
+ this.getAllQueues = (params, config) => __awaiter(this, void 0, void 0, function* () {
65
+ return this.hubtypeSdk.getAllQueues(params, config);
66
+ });
67
+ this.getQueueById = (id, config) => __awaiter(this, void 0, void 0, function* () {
68
+ return this.hubtypeSdk.getQueueById(id, config);
69
+ });
70
+ this.getQueueAvailableAgents = (queueId, config) => __awaiter(this, void 0, void 0, function* () {
71
+ return this.hubtypeSdk.getQueueAvailableAgents(queueId, config);
72
+ });
73
+ this.getQueueAvailabilityById = (queueId, flags, config) => __awaiter(this, void 0, void 0, function* () {
74
+ return this.hubtypeSdk.getQueueAvailabilityById(queueId, flags, config);
75
+ });
76
+ this.getProjectAvailabilityById = (projectId, flags, config) => __awaiter(this, void 0, void 0, function* () {
77
+ return this.hubtypeSdk.getProjectAvailabilityById(projectId, flags, config);
78
+ });
79
+ this.getUsers = (params, config) => __awaiter(this, void 0, void 0, function* () {
80
+ return this.hubtypeSdk.getUsers(params, config);
81
+ });
82
+ this.getAllUsers = (params, config) => __awaiter(this, void 0, void 0, function* () {
83
+ return this.hubtypeSdk.getAllUsers(params, config);
84
+ });
85
+ this.getUserById = (id, config) => __awaiter(this, void 0, void 0, function* () {
86
+ return this.hubtypeSdk.getUserById(id, config);
87
+ });
88
+ this.sendWhatsappTemplate = (providerAccountId, request, config) => __awaiter(this, void 0, void 0, function* () {
89
+ return this.hubtypeSdk.sendWhatsappTemplate(providerAccountId, request, config);
90
+ });
91
+ this.addOrUpdateContactInfoField = (chatId, fieldName, value, config) => __awaiter(this, void 0, void 0, function* () {
92
+ return this.hubtypeSdk.addOrUpdateContactInfoField(chatId, fieldName, value, config);
93
+ });
94
+ this.getContactInfoFields = (chatId, config) => __awaiter(this, void 0, void 0, function* () {
95
+ return this.hubtypeSdk.getContactInfoFields(chatId, config);
96
+ });
97
+ this.banChat = (chatId, config) => __awaiter(this, void 0, void 0, function* () {
98
+ return this.hubtypeSdk.banChat(chatId, config);
99
+ });
100
+ }
101
+ }
102
+ // Re-export everything
103
+ export * from './http-client';
104
+ export * from './hubtype-sdk';
105
+ export * from './types/agents';
106
+ export * from './types/ai';
107
+ export * from './types/cases';
108
+ export * from './types/chats';
109
+ export * from './types/config';
110
+ export * from './types/contact-info';
111
+ export * from './types/http-client';
112
+ export * from './types/messages';
113
+ export * from './types/queues';
114
+ export * from './types/shared';
115
+ export * from './types/users';
116
+ export * from './types/whatsapp';
117
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/botonic/plugin-hubtype-sdk/src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const DEFAULT_BASE_URL = "https://api.hubtype.com";
package/src/shared.js ADDED
@@ -0,0 +1,2 @@
1
+ export const DEFAULT_BASE_URL = 'https://api.hubtype.com';
2
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../libs/botonic/plugin-hubtype-sdk/src/shared.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,yBAAyB,CAAA"}
@@ -0,0 +1,8 @@
1
+ export interface Agent {
2
+ id: string;
3
+ email: string;
4
+ username: string;
5
+ first_name: string;
6
+ last_name: string;
7
+ status: string;
8
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../../../../libs/botonic/plugin-hubtype-sdk/src/types/agents.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ export interface InferenceRequest {
2
+ question: string;
3
+ sources: string[];
4
+ }
5
+ export interface InferenceResponse {
6
+ inference_id: string;
7
+ question: string;
8
+ answer: string;
9
+ has_knowledge: boolean;
10
+ is_faithful: boolean;
11
+ chunk_ids: string[];
12
+ chunks: Chunk[];
13
+ }
14
+ export interface Chunk {
15
+ id: string;
16
+ text: string;
17
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../../../../../libs/botonic/plugin-hubtype-sdk/src/types/ai.ts"],"names":[],"mappings":""}
@@ -0,0 +1,103 @@
1
+ import { Agent } from './agents';
2
+ import { Chat } from './chats';
3
+ import { Queue } from './queues';
4
+ export type CaseChat = Pick<Chat, 'id' | 'provider' | 'provider_account_id' | 'provider_id' | 'username' | 'name'>;
5
+ export interface CaseQueue extends Pick<Queue, 'id' | 'name'> {
6
+ project: {
7
+ id: string;
8
+ name: string;
9
+ };
10
+ }
11
+ export interface CaseAgent extends Pick<Agent, 'id' | 'email'> {
12
+ name: string;
13
+ }
14
+ export interface ContactReason {
15
+ id: string;
16
+ name: string;
17
+ category_name: string;
18
+ project_id: string;
19
+ created_by_system: boolean;
20
+ }
21
+ export interface Case {
22
+ id: string;
23
+ chat: CaseChat;
24
+ queue: CaseQueue;
25
+ description: string | null;
26
+ status: CaseStatus;
27
+ created_at: string;
28
+ assigned_to: CaseAgent | null;
29
+ resolved_by: CaseAgent | null;
30
+ resolved_at: string | null;
31
+ contact_reasons: ContactReason[];
32
+ resolution: string | null;
33
+ typification: string | null;
34
+ rating: number | null;
35
+ has_agent_message: boolean;
36
+ interactions: number | null;
37
+ initial_response_time: number | null;
38
+ agent_time_on_task: number | null;
39
+ }
40
+ export declare enum CaseStatus {
41
+ ATTENDING = "status_attending",
42
+ IDLE = "status_idle",
43
+ RESOLVED = "status_resolved",
44
+ WAITING = "status_waiting"
45
+ }
46
+ export interface CaseListParams {
47
+ created_after?: string;
48
+ created_before?: string;
49
+ status?: CaseStatus[];
50
+ resolved_after?: string;
51
+ resolved_before?: string;
52
+ order?: string;
53
+ cursor?: string;
54
+ page_size?: number;
55
+ }
56
+ export interface CaseSearchParams {
57
+ start_date?: string;
58
+ end_date?: string;
59
+ q?: string;
60
+ status?: 'status_attending' | 'status_idle' | 'status_resolved' | 'status_waiting';
61
+ provider?: 'apple' | 'facebook' | 'instagram' | 'telegram' | 'twitter' | 'webchat' | 'whatsapp';
62
+ queue_id?: string;
63
+ project_id?: string;
64
+ agent_id?: string;
65
+ cursor?: string;
66
+ page_size?: number;
67
+ }
68
+ export interface AgentSearchResult {
69
+ id: string;
70
+ email: string;
71
+ username: string;
72
+ first_name: string;
73
+ last_name: string;
74
+ }
75
+ export interface ChatSearchResult {
76
+ id: string;
77
+ created_at: string;
78
+ provider: string;
79
+ provider_account_id: string;
80
+ provider_id: string;
81
+ name: string;
82
+ username: string;
83
+ is_blocked: boolean;
84
+ is_banned: boolean;
85
+ is_online: boolean;
86
+ last_message_received: string;
87
+ last_online_status_changed_at?: string;
88
+ }
89
+ export interface CaseSearchResult {
90
+ id: string;
91
+ created_at: string;
92
+ status: string;
93
+ project_id: string;
94
+ queue_id: string;
95
+ chat: ChatSearchResult;
96
+ provider: string;
97
+ description?: string;
98
+ assigned_to?: AgentSearchResult;
99
+ resolved_by?: AgentSearchResult;
100
+ resolved_at?: string;
101
+ resolution_status?: string;
102
+ has_agent_message: boolean;
103
+ }
@@ -0,0 +1,8 @@
1
+ export var CaseStatus;
2
+ (function (CaseStatus) {
3
+ CaseStatus["ATTENDING"] = "status_attending";
4
+ CaseStatus["IDLE"] = "status_idle";
5
+ CaseStatus["RESOLVED"] = "status_resolved";
6
+ CaseStatus["WAITING"] = "status_waiting";
7
+ })(CaseStatus || (CaseStatus = {}));
8
+ //# sourceMappingURL=cases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cases.js","sourceRoot":"","sources":["../../../../../../libs/botonic/plugin-hubtype-sdk/src/types/cases.ts"],"names":[],"mappings":"AAoDA,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,4CAA8B,CAAA;IAC9B,kCAAoB,CAAA;IACpB,0CAA4B,CAAA;IAC5B,wCAA0B,CAAA;AAC5B,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB"}
@@ -0,0 +1,35 @@
1
+ export interface Chat {
2
+ id: string;
3
+ provider: string;
4
+ provider_account_id: string;
5
+ provider_id: string;
6
+ username: string | null;
7
+ name: string;
8
+ is_blocked: boolean;
9
+ is_banned: boolean;
10
+ last_message_received: string;
11
+ chat_tags: ChatTag[];
12
+ }
13
+ export interface ChatTag {
14
+ id: string;
15
+ tag_id?: string;
16
+ created_at: string;
17
+ tag_value: string;
18
+ }
19
+ export interface ChatTranscriptParams {
20
+ provider_account_id: string;
21
+ provider_id: string;
22
+ }
23
+ export interface ChatListParams {
24
+ provider_account_id?: string;
25
+ provider_id?: string;
26
+ order?: string;
27
+ cursor?: string;
28
+ page_size?: number;
29
+ }
30
+ export interface ContactInfoField {
31
+ id: string;
32
+ name: string;
33
+ value: string;
34
+ is_active: boolean;
35
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chats.js","sourceRoot":"","sources":["../../../../../../libs/botonic/plugin-hubtype-sdk/src/types/chats.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { AxiosRequestConfig, RawAxiosRequestHeaders } from 'axios';
2
+ export interface HttpClientConfig {
3
+ baseUrl?: string;
4
+ accessToken?: string;
5
+ timeout?: number;
6
+ retries?: number;
7
+ headers?: RawAxiosRequestHeaders;
8
+ }
9
+ export interface RequestConfig extends AxiosRequestConfig {
10
+ retries?: number;
11
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../../libs/botonic/plugin-hubtype-sdk/src/types/config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export interface ContactInfoFieldRequest {
2
+ value: any;
3
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=contact-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contact-info.js","sourceRoot":"","sources":["../../../../../../libs/botonic/plugin-hubtype-sdk/src/types/contact-info.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ export declare const HTTP_METHODS: {
2
+ readonly get: "GET";
3
+ readonly post: "POST";
4
+ readonly put: "PUT";
5
+ readonly delete: "DELETE";
6
+ readonly patch: "PATCH";
7
+ };
8
+ export type HttpMethod = (typeof HTTP_METHODS)[keyof typeof HTTP_METHODS];
@@ -0,0 +1,8 @@
1
+ export const HTTP_METHODS = {
2
+ get: 'GET',
3
+ post: 'POST',
4
+ put: 'PUT',
5
+ delete: 'DELETE',
6
+ patch: 'PATCH',
7
+ };
8
+ //# sourceMappingURL=http-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../../../../libs/botonic/plugin-hubtype-sdk/src/types/http-client.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;CACN,CAAA"}
@@ -0,0 +1,53 @@
1
+ import { User } from './users';
2
+ export interface MessageListParams {
3
+ created_after?: string;
4
+ created_before?: string;
5
+ chat_id?: string;
6
+ case_id?: string;
7
+ chat_provider_id?: string;
8
+ bot_id?: string;
9
+ type?: MessageType[];
10
+ action?: MessageAction;
11
+ whatsapp_template_name?: string;
12
+ order?: string;
13
+ cursor?: string;
14
+ page_size?: number;
15
+ }
16
+ export type MessageType = 'audio' | 'botevent' | 'button_message' | 'carousel' | 'chatevent' | 'contact' | 'custom' | 'deleted' | 'document' | 'form' | 'image' | 'list' | 'location' | 'missed' | 'other' | 'postback' | 'raw' | 'receipt' | 'text' | 'video' | 'webchat_client_settings' | 'webevent' | 'whatsapp_button_list' | 'whatsapp_cta_url_button' | 'whatsapp_template';
17
+ export type MessageAction = 'message_sent_by_enduser' | 'message_sent_by_agent' | 'message_sent_by_bot' | 'message_sent_by_campaign' | 'missed_enduser_msg' | 'case_created' | 'case_assigned_to' | 'case_reopened' | 'case_transferred_to' | 'case_status_changed' | 'case_contact_reasons_changed' | 'queue_closed' | 'queue_opened' | 'chat_closed_by_enduser' | 'chat_online' | 'chat_offline' | 'note' | 'bot_agent_rating' | 'bot_channel_rating' | 'bot_faq_useful' | 'bot_rating' | 'bot_faq' | 'bot_start' | 'bot_open' | 'bot_ai_model' | 'bot_ai_knowledge_base' | 'bot_keywords_model' | 'fallback' | 'handoff_option' | 'handoff_success' | 'handoff_fail' | 'flow_node' | 'nlu_intent' | 'nlu_intent_smart' | 'nlu_keyword' | 'knowledgebase' | 'custom' | 'feedback_message' | 'feedback_conversation' | 'feedback_knowledgebase' | 'feedback_webview' | 'feedback_case' | 'webview_step' | 'webview_end';
18
+ export type MessageAck = 'sent_attempt' | 'sent' | 'delivered' | 'read' | 'error';
19
+ export type MessageProvider = 'apple' | 'facebook' | 'generic' | 'instagram' | 'telegram' | 'twitter' | 'webchat' | 'whatsapp';
20
+ export interface Message {
21
+ id: string;
22
+ created_at: string;
23
+ deleted_at: string | null;
24
+ chat_id: string;
25
+ provider: MessageProvider;
26
+ chat_provider_id: string;
27
+ type: MessageType;
28
+ action: MessageAction;
29
+ bot_id: string | null;
30
+ queue_id: string | null;
31
+ case_id: string | null;
32
+ agent_id: string | null;
33
+ agent: User;
34
+ text: string | null;
35
+ attachment_url: string | null;
36
+ location: Record<string, any> | null;
37
+ contact: Record<string, any> | null;
38
+ extra_data: Record<string, any> | null;
39
+ whatsapp_template_message: Record<string, any> | null;
40
+ ack: MessageAck | null;
41
+ error_message: string | null;
42
+ carousel: Record<string, any> | null;
43
+ buttons: Record<string, any> | null;
44
+ list: Record<string, any> | null;
45
+ raw: Record<string, any> | null;
46
+ payload: string | null;
47
+ event_data: Record<string, any>;
48
+ translations: {
49
+ written_language: string | null;
50
+ swapped_language: string | null;
51
+ messages: Record<string, any>;
52
+ };
53
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../../../libs/botonic/plugin-hubtype-sdk/src/types/messages.ts"],"names":[],"mappings":""}
@@ -0,0 +1,95 @@
1
+ import { Agent } from './agents';
2
+ export interface Queue {
3
+ id: string;
4
+ status: QueueStatus;
5
+ name: string;
6
+ created_by_id: string;
7
+ agents: any[];
8
+ project_id: string;
9
+ project_name: string;
10
+ provider_accounts: any[];
11
+ model_config: ModelConfig;
12
+ waiting_cases_count: number;
13
+ automatic_open: string;
14
+ automatic_close: string;
15
+ max_waiting_time: string | null;
16
+ schedule_settings: ScheduleSettings;
17
+ opening_mode: string;
18
+ attending_cases_count: number;
19
+ idle_cases_count: number;
20
+ }
21
+ export type QueueSummary = Pick<Queue, 'id' | 'name' | 'project_id' | 'status'>;
22
+ export interface ModelConfig {
23
+ initial_message: string;
24
+ closed_message: string;
25
+ num_cases_for_busy: number;
26
+ time_idle: string;
27
+ time_case_resolved: string;
28
+ time_case_closed: string | null;
29
+ time_waiting_sla_1: string;
30
+ time_waiting_sla_2: string;
31
+ availability_threshold_waiting_cases: number;
32
+ prioritisation: string;
33
+ target_sla: number;
34
+ typifications: string;
35
+ }
36
+ export interface ScheduleSettings {
37
+ timezone: string;
38
+ weekly_schedule: DaySchedule[];
39
+ exceptions: ScheduleException[];
40
+ }
41
+ export interface DaySchedule {
42
+ day: string;
43
+ time_shifts: TimeShift[];
44
+ }
45
+ export interface TimeShift {
46
+ start_time: Time;
47
+ end_time: Time;
48
+ }
49
+ export interface Time {
50
+ hour: number;
51
+ minute: number;
52
+ }
53
+ export interface ScheduleException {
54
+ name: string;
55
+ status: string;
56
+ day_of_month: number;
57
+ month: number;
58
+ year: number;
59
+ time_shifts: TimeShift[];
60
+ }
61
+ export declare enum QueueStatus {
62
+ OPEN = "status_open",
63
+ CLOSED = "status_closed"
64
+ }
65
+ export interface QueueAvailableAgent extends Pick<Agent, 'id' | 'email' | 'first_name' | 'last_name'> {
66
+ busy_rank: number;
67
+ attending_count: number;
68
+ idle_count: number;
69
+ }
70
+ export interface QueueListParams {
71
+ project_id?: string;
72
+ order?: string;
73
+ cursor?: string;
74
+ page_size?: number;
75
+ }
76
+ export interface QueueAvailabilityInfo {
77
+ available: boolean;
78
+ waiting_cases: number;
79
+ availability_threshold_waiting_cases: number;
80
+ open: boolean;
81
+ name: string;
82
+ available_agents: number;
83
+ }
84
+ export interface ProjectAvailabilityInfo {
85
+ queues: QueueAvailabilityInfo[];
86
+ available: boolean;
87
+ waiting_cases: number;
88
+ availability_threshold_waiting_cases: number;
89
+ available_agents: number;
90
+ }
91
+ export type AvailabilityFlags = {
92
+ check_queue_schedule?: boolean;
93
+ check_available_agents?: boolean;
94
+ check_waiting_cases?: boolean;
95
+ };
@@ -0,0 +1,6 @@
1
+ export var QueueStatus;
2
+ (function (QueueStatus) {
3
+ QueueStatus["OPEN"] = "status_open";
4
+ QueueStatus["CLOSED"] = "status_closed";
5
+ })(QueueStatus || (QueueStatus = {}));
6
+ //# sourceMappingURL=queues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queues.js","sourceRoot":"","sources":["../../../../../../libs/botonic/plugin-hubtype-sdk/src/types/queues.ts"],"names":[],"mappings":"AAqEA,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,mCAAoB,CAAA;IACpB,uCAAwB,CAAA;AAC1B,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB"}
@@ -0,0 +1,46 @@
1
+ import { Plugin } from '@botonic/shared';
2
+ import { InferenceRequest, InferenceResponse } from './ai';
3
+ import { Case, CaseListParams, CaseSearchParams, CaseSearchResult } from './cases';
4
+ import { Chat, ChatListParams, ChatTranscriptParams } from './chats';
5
+ import { RequestConfig } from './config';
6
+ import { Message, MessageListParams } from './messages';
7
+ import { AvailabilityFlags, ProjectAvailabilityInfo, QueueAvailabilityInfo, QueueAvailableAgent, QueueListParams, QueueSummary } from './queues';
8
+ import { User, UserListParams } from './users';
9
+ import { SendWhatsappTemplateRequest, SendWhatsappTemplateResponse } from './whatsapp';
10
+ export interface BotonicPluginHubtypeSdkInterface {
11
+ setAccessToken(accessToken: string): void;
12
+ knowledgeBaseInference(request: InferenceRequest, config?: RequestConfig): Promise<InferenceResponse>;
13
+ searchCases(params: CaseSearchParams, config?: RequestConfig): Promise<PaginatedResponse<CaseSearchResult>>;
14
+ searchAllCases(params: CaseSearchParams, config?: RequestConfig): Promise<CaseSearchResult[]>;
15
+ getCases(params?: CaseListParams, config?: RequestConfig): Promise<PaginatedResponse<Case>>;
16
+ getAllCases(params?: CaseListParams, config?: RequestConfig): Promise<Case[]>;
17
+ getCaseById(id: string, config?: RequestConfig): Promise<Case>;
18
+ getChats(params?: ChatListParams, config?: RequestConfig): Promise<PaginatedResponse<Chat>>;
19
+ getAllChats(params?: ChatListParams, config?: RequestConfig): Promise<Chat[]>;
20
+ getChatById(id: string, config?: RequestConfig): Promise<Chat>;
21
+ getChatTranscript(chatId: string, config?: RequestConfig): Promise<ArrayBuffer>;
22
+ getChatTranscriptByProvider(params: ChatTranscriptParams, config?: RequestConfig): Promise<ArrayBuffer>;
23
+ getMessages(params?: MessageListParams, config?: RequestConfig): Promise<PaginatedResponse<Message>>;
24
+ getAllMessages(params?: MessageListParams, config?: RequestConfig): Promise<Message[]>;
25
+ getMessageById(id: string, config?: RequestConfig): Promise<Message>;
26
+ getQueues(params?: QueueListParams, config?: RequestConfig): Promise<PaginatedResponse<QueueSummary>>;
27
+ getAllQueues(params?: QueueListParams, config?: RequestConfig): Promise<QueueSummary[]>;
28
+ getQueueById(id: string, config?: RequestConfig): Promise<QueueSummary>;
29
+ getQueueAvailableAgents(queueId: string, config?: RequestConfig): Promise<QueueAvailableAgent[]>;
30
+ getQueueAvailabilityById(queueId: string, flags?: AvailabilityFlags, config?: RequestConfig): Promise<QueueAvailabilityInfo>;
31
+ getProjectAvailabilityById(projectId: string, flags?: AvailabilityFlags, config?: RequestConfig): Promise<ProjectAvailabilityInfo>;
32
+ getUsers(params?: UserListParams, config?: RequestConfig): Promise<PaginatedResponse<User>>;
33
+ getAllUsers(params?: UserListParams, config?: RequestConfig): Promise<User[]>;
34
+ getUserById(id: string, config?: RequestConfig): Promise<User>;
35
+ sendWhatsappTemplate(providerAccountId: string, request: SendWhatsappTemplateRequest, config?: RequestConfig): Promise<SendWhatsappTemplateResponse>;
36
+ addOrUpdateContactInfoField(chatId: string, fieldName: string, value: any, config?: RequestConfig): Promise<void>;
37
+ }
38
+ export interface HubtypeSdkPluginInterface extends Plugin, BotonicPluginHubtypeSdkInterface {
39
+ setAccessToken(accessToken: string): void;
40
+ }
41
+ export interface PaginatedResponse<T> {
42
+ count?: number;
43
+ next: string | null;
44
+ previous: string | null;
45
+ results: T[];
46
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../../libs/botonic/plugin-hubtype-sdk/src/types/shared.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ export interface User {
2
+ id: string;
3
+ email: string;
4
+ first_name: string | null;
5
+ last_name: string | null;
6
+ role: RoleEnum;
7
+ status: UserStatusEnum;
8
+ has_translation_service: boolean;
9
+ num_cases_for_busy: number | null;
10
+ }
11
+ export declare enum RoleEnum {
12
+ ADMIN = "role_admin",
13
+ MANAGER = "role_manager",
14
+ AGENT = "role_agent"
15
+ }
16
+ export declare enum UserStatusEnum {
17
+ OFFLINE = "status_offline",
18
+ AVAILABLE = "status_available",
19
+ AWAY = "status_away",
20
+ BUSY = "status_busy"
21
+ }
22
+ export interface UserListParams {
23
+ email?: string;
24
+ order?: string;
25
+ cursor?: string;
26
+ page_size?: number;
27
+ }