@botonic/core 0.47.0 → 0.48.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/lib/cjs/core-bot.js +10 -2
- package/lib/cjs/core-bot.js.map +1 -1
- package/lib/cjs/models/legacy-types.d.ts +19 -0
- package/lib/cjs/models/legacy-types.js.map +1 -1
- package/lib/cjs/testing/index.d.ts +91 -0
- package/lib/cjs/testing/index.js +196 -0
- package/lib/cjs/testing/index.js.map +1 -0
- package/lib/esm/core-bot.js +10 -2
- package/lib/esm/core-bot.js.map +1 -1
- package/lib/esm/models/legacy-types.d.ts +19 -0
- package/lib/esm/models/legacy-types.js.map +1 -1
- package/lib/esm/testing/index.d.ts +91 -0
- package/lib/esm/testing/index.js +196 -0
- package/lib/esm/testing/index.js.map +1 -0
- package/package.json +18 -1
- package/src/core-bot.ts +11 -3
- package/src/models/legacy-types.ts +21 -0
- package/src/testing/index.ts +311 -0
package/lib/cjs/core-bot.js
CHANGED
|
@@ -40,7 +40,7 @@ class CoreBot {
|
|
|
40
40
|
return output;
|
|
41
41
|
}
|
|
42
42
|
getBotContext(request) {
|
|
43
|
-
const { input, session, lastRoutePath } = request;
|
|
43
|
+
const { input, session, lastRoutePath, settings, secrets } = request;
|
|
44
44
|
return {
|
|
45
45
|
input,
|
|
46
46
|
session,
|
|
@@ -55,6 +55,8 @@ class CoreBot {
|
|
|
55
55
|
setUserCountry: (country) => this.setUserCountry(country, session),
|
|
56
56
|
setUserLocale: (locale) => this.setUserLocale(locale, session),
|
|
57
57
|
setSystemLocale: (locale) => this.setSystemLocale(locale, session),
|
|
58
|
+
settings,
|
|
59
|
+
secrets,
|
|
58
60
|
};
|
|
59
61
|
}
|
|
60
62
|
async runInput(botContext) {
|
|
@@ -65,6 +67,8 @@ class CoreBot {
|
|
|
65
67
|
input: botContext.input,
|
|
66
68
|
session: botContext.session,
|
|
67
69
|
lastRoutePath: botContext.lastRoutePath,
|
|
70
|
+
settings: botContext.settings,
|
|
71
|
+
secrets: botContext.secrets,
|
|
68
72
|
response: [],
|
|
69
73
|
};
|
|
70
74
|
}
|
|
@@ -79,9 +83,11 @@ class CoreBot {
|
|
|
79
83
|
botContext.session.is_first_interaction = false;
|
|
80
84
|
return {
|
|
81
85
|
input: botContext.input,
|
|
82
|
-
response,
|
|
83
86
|
session: botContext.session,
|
|
84
87
|
lastRoutePath: botContext.lastRoutePath,
|
|
88
|
+
settings: botContext.settings,
|
|
89
|
+
secrets: botContext.secrets,
|
|
90
|
+
response,
|
|
85
91
|
};
|
|
86
92
|
}
|
|
87
93
|
updateSession(session) {
|
|
@@ -155,6 +161,8 @@ class CoreBot {
|
|
|
155
161
|
response: previousResponse.response.concat(followUp.response),
|
|
156
162
|
session: botContext.session,
|
|
157
163
|
lastRoutePath: followUp.lastRoutePath,
|
|
164
|
+
settings: followUp.settings,
|
|
165
|
+
secrets: followUp.secrets,
|
|
158
166
|
};
|
|
159
167
|
// Recursive call to handle multiple bot actions in a row
|
|
160
168
|
if (response.session._botonic_action?.startsWith(models_1.BotonicAction.Redirect)) {
|
package/lib/cjs/core-bot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-bot.js","sourceRoot":"","sources":["../../src/core-bot.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,qCAYiB;AACjB,uCAAsC;AACtC,uCAAqD;AAcrD,MAAa,OAAO;IAalB,YAAY,EACV,QAAQ,EACR,MAAM,EACN,KAAK,EACL,OAAO,EACP,KAAK,EACL,aAAa,GAAG,GAAG,EACnB,YAAY,GAAG,GAAG,EAClB,aAAa,EACb,SAAS,GACK;QACd,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAA;QACxB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,SAAS,CAAA;QAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,IAAI,iBAAS,EAAE,CAAA;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,EAAE,CAAA;QACxC,IAAI,CAAC,MAAM;YACT,IAAI,CAAC,MAAM,YAAY,QAAQ;gBAC7B,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,IAAI,gBAAM,CACR,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,EACvC,IAAI,CAAC,SAAS,CAAC,cAAc,CAC9B,CAAA;IACT,CAAC;IAED,eAAe,CAAC,MAAc,EAAE,OAAgB;QAC9C,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAA;IACrC,CAAC;IAED,aAAa,CAAC,MAAc,EAAE,OAAgB;QAC5C,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IAC9B,CAAC;IAED,cAAc,CAAC,OAAe,EAAE,OAAgB;QAC9C,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAmB;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAE9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QAE9C,IACE,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE,UAAU,CAAC,sBAAa,CAAC,QAAQ,CAAC,EACtE,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QACzD,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,aAAa,CAAC,OAAmB;QACvC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"core-bot.js","sourceRoot":"","sources":["../../src/core-bot.ts"],"names":[],"mappings":"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"}
|
|
@@ -171,6 +171,7 @@ export interface SessionUser<TExtraData = any> {
|
|
|
171
171
|
locale: string;
|
|
172
172
|
country: string;
|
|
173
173
|
system_locale: string;
|
|
174
|
+
system_locale_updated?: boolean;
|
|
174
175
|
}
|
|
175
176
|
export interface HubtypeCaseContactReason {
|
|
176
177
|
id: string;
|
|
@@ -242,6 +243,24 @@ export interface BotRequest<TExtraData = any> {
|
|
|
242
243
|
input: Input;
|
|
243
244
|
lastRoutePath: RoutePath;
|
|
244
245
|
session: Session<TExtraData>;
|
|
246
|
+
settings: BotSettings;
|
|
247
|
+
secrets: BotSecrets;
|
|
248
|
+
}
|
|
249
|
+
export interface BotSettings {
|
|
250
|
+
HUBTYPE_API_URL: string;
|
|
251
|
+
STATIC_URL: string;
|
|
252
|
+
LITELLM_API_URL: string;
|
|
253
|
+
AZURE_OPENAI_API_BASE: string;
|
|
254
|
+
AZURE_OPENAI_API_VERSION: string;
|
|
255
|
+
LANGUAGE_DETECTION_ENABLED?: boolean;
|
|
256
|
+
CUSTOM_SHORT_URL_HOST: string | null;
|
|
257
|
+
custom: Record<string, any>;
|
|
258
|
+
}
|
|
259
|
+
export interface BotSecrets {
|
|
260
|
+
HUBTYPE_ACCESS_TOKEN: string;
|
|
261
|
+
LITELLM_API_KEY: string;
|
|
262
|
+
AZURE_OPENAI_API_KEY: string;
|
|
263
|
+
custom: Record<string, any>;
|
|
245
264
|
}
|
|
246
265
|
export interface BotContext<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> extends BotRequest<TExtraData> {
|
|
247
266
|
getUserCountry: () => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacy-types.js","sourceRoot":"","sources":["../../../src/models/legacy-types.ts"],"names":[],"mappings":";AAAA,wIAAwI;;;AAExI,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,yCAA0B,CAAA;IAC1B,6CAA8B,CAAA;IAC9B,mCAAoB,CAAA;IACpB,2CAA4B,CAAA;AAC9B,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAQD,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,mCAAgB,CAAA;IAChB,qCAAkB,CAAA;IAClB,mDAAgC,CAAA;IAChC,2CAAwB,CAAA;AAC1B,CAAC,EALW,eAAe,+BAAf,eAAe,QAK1B;AAQD,IAAY,QAaX;AAbD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,uBAAW,CAAA;IACX,iCAAqB,CAAA;IACrB,+BAAmB,CAAA;IACnB,mCAAuB,CAAA;IACvB,iCAAqB,CAAA;IACrB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,+BAAmB,CAAA;IACnB,+BAAmB,CAAA;IACnB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;AACvB,CAAC,EAbW,QAAQ,wBAAR,QAAQ,QAanB;AAeD,IAAY,KA4BX;AA5BD,WAAY,KAAK;IACf,sBAAa,CAAA;IACb,8BAAqB,CAAA;IACrB,wBAAe,CAAA;IACf,wBAAe,CAAA;IACf,wBAAe,CAAA;IACf,8BAAqB,CAAA;IACrB,8BAAqB,CAAA;IACrB,4BAAmB,CAAA;IACnB,yCAAgC,CAAA;IAChC,8BAAqB,CAAA;IACrB,0BAAiB,CAAA;IACjB,6CAAoC,CAAA;IACpC,+CAAsC,CAAA;IACtC,oBAAW,CAAA;IACX,iCAAwB,CAAA;IACxB,sDAA6C,CAAA;IAC7C,4DAAmD,CAAA;IACnD,8CAAqC,CAAA;IACrC,8CAAqC,CAAA;IACrC,wDAA+C,CAAA;IAC/C,gEAAuD,CAAA;IACvD,4DAAmD,CAAA;IACnD,0CAAiC,CAAA;IACjC,yEAAgE,CAAA;IAChE,2EAAkE,CAAA;IAClE,gEAAuD,CAAA;IACvD,kDAAyC,CAAA;AAC3C,CAAC,EA5BW,KAAK,qBAAL,KAAK,QA4BhB;AA8CD,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,8BAAmB,CAAA;IACnB,uCAA4B,CAAA;AAC9B,CAAC,EAHW,OAAO,uBAAP,OAAO,QAGlB;AAuCD,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,wCAA0B,CAAA;IAC1B,4CAA8B,CAAA;IAC9B,kCAAoB,CAAA;IACpB,0CAA4B,CAAA;AAC9B,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB;
|
|
1
|
+
{"version":3,"file":"legacy-types.js","sourceRoot":"","sources":["../../../src/models/legacy-types.ts"],"names":[],"mappings":";AAAA,wIAAwI;;;AAExI,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,yCAA0B,CAAA;IAC1B,6CAA8B,CAAA;IAC9B,mCAAoB,CAAA;IACpB,2CAA4B,CAAA;AAC9B,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAQD,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,mCAAgB,CAAA;IAChB,qCAAkB,CAAA;IAClB,mDAAgC,CAAA;IAChC,2CAAwB,CAAA;AAC1B,CAAC,EALW,eAAe,+BAAf,eAAe,QAK1B;AAQD,IAAY,QAaX;AAbD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,uBAAW,CAAA;IACX,iCAAqB,CAAA;IACrB,+BAAmB,CAAA;IACnB,mCAAuB,CAAA;IACvB,iCAAqB,CAAA;IACrB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,+BAAmB,CAAA;IACnB,+BAAmB,CAAA;IACnB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;AACvB,CAAC,EAbW,QAAQ,wBAAR,QAAQ,QAanB;AAeD,IAAY,KA4BX;AA5BD,WAAY,KAAK;IACf,sBAAa,CAAA;IACb,8BAAqB,CAAA;IACrB,wBAAe,CAAA;IACf,wBAAe,CAAA;IACf,wBAAe,CAAA;IACf,8BAAqB,CAAA;IACrB,8BAAqB,CAAA;IACrB,4BAAmB,CAAA;IACnB,yCAAgC,CAAA;IAChC,8BAAqB,CAAA;IACrB,0BAAiB,CAAA;IACjB,6CAAoC,CAAA;IACpC,+CAAsC,CAAA;IACtC,oBAAW,CAAA;IACX,iCAAwB,CAAA;IACxB,sDAA6C,CAAA;IAC7C,4DAAmD,CAAA;IACnD,8CAAqC,CAAA;IACrC,8CAAqC,CAAA;IACrC,wDAA+C,CAAA;IAC/C,gEAAuD,CAAA;IACvD,4DAAmD,CAAA;IACnD,0CAAiC,CAAA;IACjC,yEAAgE,CAAA;IAChE,2EAAkE,CAAA;IAClE,gEAAuD,CAAA;IACvD,kDAAyC,CAAA;AAC3C,CAAC,EA5BW,KAAK,qBAAL,KAAK,QA4BhB;AA8CD,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,8BAAmB,CAAA;IACnB,uCAA4B,CAAA;AAC9B,CAAC,EAHW,OAAO,uBAAP,OAAO,QAGlB;AAuCD,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,wCAA0B,CAAA;IAC1B,4CAA8B,CAAA;IAC9B,kCAAoB,CAAA;IACpB,0CAA4B,CAAA;AAC9B,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB;AAqRD,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,6CAA4B,CAAA;IAC5B,2CAA0B,CAAA;IAC1B,2CAA0B,CAAA;IAC1B,6CAA4B,CAAA;AAC9B,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { type BotContext, type BotRequest, type BotSecrets, type BotSettings, type ContactInfo, type Input, type ProviderType, type ResolvedPlugins, type Session, type SessionUser } from '../models';
|
|
2
|
+
export declare const TEST_DEFAULTS: {
|
|
3
|
+
HUBTYPE_API_URL: string;
|
|
4
|
+
STATIC_URL: string;
|
|
5
|
+
LITELLM_API_URL: string;
|
|
6
|
+
AZURE_OPENAI_API_BASE: string;
|
|
7
|
+
AZURE_OPENAI_API_VERSION: string;
|
|
8
|
+
LANGUAGE_DETECTION_ENABLED: boolean;
|
|
9
|
+
HUBTYPE_ACCESS_TOKEN: string;
|
|
10
|
+
LITELLM_API_KEY: string;
|
|
11
|
+
AZURE_OPENAI_API_KEY: string;
|
|
12
|
+
ACCESS_TOKEN: string;
|
|
13
|
+
HUBTYPE_API_HOST: string;
|
|
14
|
+
FLOW_THREAD_ID: string;
|
|
15
|
+
BOT_ID: string;
|
|
16
|
+
USER_ID: string;
|
|
17
|
+
ORG_ID: string;
|
|
18
|
+
ORG_NAME: string;
|
|
19
|
+
PROVIDER: ProviderType;
|
|
20
|
+
LOCALE: string;
|
|
21
|
+
COUNTRY: string;
|
|
22
|
+
BOT_INTERACTION_ID: string;
|
|
23
|
+
MESSAGE_ID: string;
|
|
24
|
+
LAST_ROUTE_PATH: string;
|
|
25
|
+
};
|
|
26
|
+
export declare function createTestSettings(overrides?: Partial<BotSettings>): BotSettings;
|
|
27
|
+
export declare function createTestSecrets(overrides?: Partial<BotSecrets>): BotSecrets;
|
|
28
|
+
export interface TestUserOptions {
|
|
29
|
+
id?: string;
|
|
30
|
+
provider?: ProviderType;
|
|
31
|
+
locale?: string;
|
|
32
|
+
country?: string;
|
|
33
|
+
systemLocale?: string;
|
|
34
|
+
contactInfo?: ContactInfo[];
|
|
35
|
+
extraData?: Record<string, any>;
|
|
36
|
+
}
|
|
37
|
+
export declare function createTestSessionUser(options?: TestUserOptions): SessionUser<Record<string, any>>;
|
|
38
|
+
export interface TestSessionOptions {
|
|
39
|
+
user?: TestUserOptions;
|
|
40
|
+
botId?: string;
|
|
41
|
+
organization?: string;
|
|
42
|
+
organizationId?: string;
|
|
43
|
+
isFirstInteraction?: boolean;
|
|
44
|
+
isTestIntegration?: boolean;
|
|
45
|
+
accessToken?: string;
|
|
46
|
+
hubtypeApi?: string;
|
|
47
|
+
flowThreadId?: string;
|
|
48
|
+
retries?: number;
|
|
49
|
+
shadowing?: boolean;
|
|
50
|
+
hubtypeCaseId?: string;
|
|
51
|
+
captureUserInputNodeId?: string;
|
|
52
|
+
}
|
|
53
|
+
export declare function createTestSession(options?: TestSessionOptions): Session<Record<string, any>>;
|
|
54
|
+
export interface TestInputOptions {
|
|
55
|
+
type?: Input['type'];
|
|
56
|
+
data?: string;
|
|
57
|
+
text?: string;
|
|
58
|
+
payload?: string;
|
|
59
|
+
src?: string;
|
|
60
|
+
botInteractionId?: string;
|
|
61
|
+
messageId?: string;
|
|
62
|
+
context?: Input['context'];
|
|
63
|
+
transcript?: string;
|
|
64
|
+
}
|
|
65
|
+
export declare function createTestInput(options?: TestInputOptions): Input;
|
|
66
|
+
export interface TestBotRequestOptions {
|
|
67
|
+
input?: TestInputOptions | Input;
|
|
68
|
+
session?: TestSessionOptions | Session;
|
|
69
|
+
lastRoutePath?: string;
|
|
70
|
+
settings?: Partial<BotSettings> | BotSettings;
|
|
71
|
+
secrets?: Partial<BotSecrets> | BotSecrets;
|
|
72
|
+
}
|
|
73
|
+
export declare function createTestBotRequest(options?: TestBotRequestOptions): BotRequest;
|
|
74
|
+
export interface TestBotContextOptions<TPlugins extends ResolvedPlugins = ResolvedPlugins> extends TestBotRequestOptions {
|
|
75
|
+
plugins?: TPlugins;
|
|
76
|
+
params?: Record<string, string>;
|
|
77
|
+
defaultDelay?: number;
|
|
78
|
+
defaultTyping?: number;
|
|
79
|
+
}
|
|
80
|
+
export declare function createTestBotContext<TPlugins extends ResolvedPlugins = ResolvedPlugins>(options?: TestBotContextOptions<TPlugins>): BotContext<TPlugins>;
|
|
81
|
+
/**
|
|
82
|
+
* Alias for `createTestBotContext` typed as `PluginPreRequest`.
|
|
83
|
+
* PluginPreRequest === BotContext in @botonic/core.
|
|
84
|
+
*/
|
|
85
|
+
export declare const createTestPluginPreRequest: typeof createTestBotContext;
|
|
86
|
+
export interface TestPluginPostRequestOptions<TPlugins extends ResolvedPlugins = ResolvedPlugins> extends TestBotContextOptions<TPlugins> {
|
|
87
|
+
response?: string | null;
|
|
88
|
+
}
|
|
89
|
+
export declare function createTestPluginPostRequest<TPlugins extends ResolvedPlugins = ResolvedPlugins>(options?: TestPluginPostRequestOptions<TPlugins>): BotContext<TPlugins> & {
|
|
90
|
+
response: string | null;
|
|
91
|
+
};
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTestPluginPreRequest = exports.TEST_DEFAULTS = void 0;
|
|
4
|
+
exports.createTestSettings = createTestSettings;
|
|
5
|
+
exports.createTestSecrets = createTestSecrets;
|
|
6
|
+
exports.createTestSessionUser = createTestSessionUser;
|
|
7
|
+
exports.createTestSession = createTestSession;
|
|
8
|
+
exports.createTestInput = createTestInput;
|
|
9
|
+
exports.createTestBotRequest = createTestBotRequest;
|
|
10
|
+
exports.createTestBotContext = createTestBotContext;
|
|
11
|
+
exports.createTestPluginPostRequest = createTestPluginPostRequest;
|
|
12
|
+
const models_1 = require("../models");
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
// Default values
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
exports.TEST_DEFAULTS = {
|
|
17
|
+
HUBTYPE_API_URL: 'https://api.hubtype.com',
|
|
18
|
+
STATIC_URL: 'https://static.hubtype.com',
|
|
19
|
+
LITELLM_API_URL: 'https://api.litellm.com',
|
|
20
|
+
AZURE_OPENAI_API_BASE: 'https://api.openai.com',
|
|
21
|
+
AZURE_OPENAI_API_VERSION: '2026-02-01',
|
|
22
|
+
LANGUAGE_DETECTION_ENABLED: true,
|
|
23
|
+
HUBTYPE_ACCESS_TOKEN: 'testAccessToken', // pragma: allowlist secret
|
|
24
|
+
LITELLM_API_KEY: 'testLiteLLMAPIKey', // pragma: allowlist secret
|
|
25
|
+
AZURE_OPENAI_API_KEY: 'testAzureOpenAIAPIKey', // pragma: allowlist secret
|
|
26
|
+
ACCESS_TOKEN: 'fake_access_token',
|
|
27
|
+
HUBTYPE_API_HOST: 'https://api.hubtype.com',
|
|
28
|
+
FLOW_THREAD_ID: 'testFlowThreadId',
|
|
29
|
+
BOT_ID: 'testBotId',
|
|
30
|
+
USER_ID: 'testUserId',
|
|
31
|
+
ORG_ID: 'testOrgId',
|
|
32
|
+
ORG_NAME: 'testOrg',
|
|
33
|
+
PROVIDER: models_1.PROVIDER.WEBCHAT,
|
|
34
|
+
LOCALE: 'en',
|
|
35
|
+
COUNTRY: 'US',
|
|
36
|
+
BOT_INTERACTION_ID: 'testInteractionId',
|
|
37
|
+
MESSAGE_ID: 'testMessageId',
|
|
38
|
+
LAST_ROUTE_PATH: '',
|
|
39
|
+
};
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
// Leaf factories
|
|
42
|
+
// ---------------------------------------------------------------------------
|
|
43
|
+
function createTestSettings(overrides) {
|
|
44
|
+
return {
|
|
45
|
+
HUBTYPE_API_URL: exports.TEST_DEFAULTS.HUBTYPE_API_URL,
|
|
46
|
+
STATIC_URL: exports.TEST_DEFAULTS.STATIC_URL,
|
|
47
|
+
LITELLM_API_URL: exports.TEST_DEFAULTS.LITELLM_API_URL,
|
|
48
|
+
AZURE_OPENAI_API_BASE: exports.TEST_DEFAULTS.AZURE_OPENAI_API_BASE,
|
|
49
|
+
AZURE_OPENAI_API_VERSION: exports.TEST_DEFAULTS.AZURE_OPENAI_API_VERSION,
|
|
50
|
+
LANGUAGE_DETECTION_ENABLED: exports.TEST_DEFAULTS.LANGUAGE_DETECTION_ENABLED,
|
|
51
|
+
CUSTOM_SHORT_URL_HOST: null,
|
|
52
|
+
custom: {},
|
|
53
|
+
...overrides,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function createTestSecrets(overrides) {
|
|
57
|
+
return {
|
|
58
|
+
HUBTYPE_ACCESS_TOKEN: exports.TEST_DEFAULTS.HUBTYPE_ACCESS_TOKEN,
|
|
59
|
+
LITELLM_API_KEY: exports.TEST_DEFAULTS.LITELLM_API_KEY,
|
|
60
|
+
AZURE_OPENAI_API_KEY: exports.TEST_DEFAULTS.AZURE_OPENAI_API_KEY,
|
|
61
|
+
custom: {},
|
|
62
|
+
...overrides,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function createTestSessionUser(options) {
|
|
66
|
+
const locale = options?.locale ?? exports.TEST_DEFAULTS.LOCALE;
|
|
67
|
+
const country = options?.country ?? exports.TEST_DEFAULTS.COUNTRY;
|
|
68
|
+
return {
|
|
69
|
+
id: options?.id ?? exports.TEST_DEFAULTS.USER_ID,
|
|
70
|
+
provider: options?.provider ?? exports.TEST_DEFAULTS.PROVIDER,
|
|
71
|
+
locale,
|
|
72
|
+
country,
|
|
73
|
+
system_locale: options?.systemLocale ?? locale,
|
|
74
|
+
contact_info: options?.contactInfo ?? [],
|
|
75
|
+
extra_data: options?.extraData ?? {},
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function createTestSession(options) {
|
|
79
|
+
return {
|
|
80
|
+
bot: { id: options?.botId ?? exports.TEST_DEFAULTS.BOT_ID },
|
|
81
|
+
user: createTestSessionUser(options?.user),
|
|
82
|
+
organization: options?.organization ?? exports.TEST_DEFAULTS.ORG_NAME,
|
|
83
|
+
organization_id: options?.organizationId ?? exports.TEST_DEFAULTS.ORG_ID,
|
|
84
|
+
is_first_interaction: options?.isFirstInteraction ?? false,
|
|
85
|
+
is_test_integration: options?.isTestIntegration ?? false,
|
|
86
|
+
_access_token: options?.accessToken ?? exports.TEST_DEFAULTS.ACCESS_TOKEN,
|
|
87
|
+
_hubtype_api: options?.hubtypeApi ?? exports.TEST_DEFAULTS.HUBTYPE_API_HOST,
|
|
88
|
+
flow_thread_id: options?.flowThreadId ?? exports.TEST_DEFAULTS.FLOW_THREAD_ID,
|
|
89
|
+
__retries: options?.retries ?? 0,
|
|
90
|
+
_shadowing: options?.shadowing,
|
|
91
|
+
_hubtype_case_id: options?.hubtypeCaseId,
|
|
92
|
+
capture_user_input: options?.captureUserInputNodeId
|
|
93
|
+
? { node_id: options.captureUserInputNodeId }
|
|
94
|
+
: undefined,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function createTestInput(options) {
|
|
98
|
+
return {
|
|
99
|
+
type: options?.type ?? models_1.INPUT.TEXT,
|
|
100
|
+
data: options?.data,
|
|
101
|
+
text: options?.text,
|
|
102
|
+
payload: options?.payload,
|
|
103
|
+
src: options?.src,
|
|
104
|
+
transcript: options?.transcript,
|
|
105
|
+
context: options?.context,
|
|
106
|
+
bot_interaction_id: options?.botInteractionId ?? exports.TEST_DEFAULTS.BOT_INTERACTION_ID,
|
|
107
|
+
message_id: options?.messageId ?? exports.TEST_DEFAULTS.MESSAGE_ID,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
function isFullInput(v) {
|
|
111
|
+
return 'bot_interaction_id' in v && 'message_id' in v;
|
|
112
|
+
}
|
|
113
|
+
function isFullSession(v) {
|
|
114
|
+
return 'bot' in v && '__retries' in v;
|
|
115
|
+
}
|
|
116
|
+
function isFullSettings(v) {
|
|
117
|
+
return ('HUBTYPE_API_URL' in v &&
|
|
118
|
+
'STATIC_URL' in v &&
|
|
119
|
+
'LITELLM_API_URL' in v &&
|
|
120
|
+
'AZURE_OPENAI_API_BASE' in v &&
|
|
121
|
+
'AZURE_OPENAI_API_VERSION' in v &&
|
|
122
|
+
'LANGUAGE_DETECTION_ENABLED' in v &&
|
|
123
|
+
'CUSTOM_SHORT_URL_HOST' in v &&
|
|
124
|
+
'custom' in v);
|
|
125
|
+
}
|
|
126
|
+
function isFullSecrets(v) {
|
|
127
|
+
return ('HUBTYPE_ACCESS_TOKEN' in v &&
|
|
128
|
+
'LITELLM_API_KEY' in v &&
|
|
129
|
+
'AZURE_OPENAI_API_KEY' in v &&
|
|
130
|
+
'custom' in v);
|
|
131
|
+
}
|
|
132
|
+
function createTestBotRequest(options) {
|
|
133
|
+
const input = options?.input == null
|
|
134
|
+
? createTestInput()
|
|
135
|
+
: isFullInput(options.input)
|
|
136
|
+
? options.input
|
|
137
|
+
: createTestInput(options.input);
|
|
138
|
+
const session = options?.session == null
|
|
139
|
+
? createTestSession()
|
|
140
|
+
: isFullSession(options.session)
|
|
141
|
+
? options.session
|
|
142
|
+
: createTestSession(options.session);
|
|
143
|
+
const settings = options?.settings == null
|
|
144
|
+
? createTestSettings()
|
|
145
|
+
: isFullSettings(options.settings)
|
|
146
|
+
? options.settings
|
|
147
|
+
: createTestSettings(options.settings);
|
|
148
|
+
const secrets = options?.secrets == null
|
|
149
|
+
? createTestSecrets()
|
|
150
|
+
: isFullSecrets(options.secrets)
|
|
151
|
+
? options.secrets
|
|
152
|
+
: createTestSecrets(options.secrets);
|
|
153
|
+
return {
|
|
154
|
+
input,
|
|
155
|
+
session,
|
|
156
|
+
lastRoutePath: options?.lastRoutePath ?? exports.TEST_DEFAULTS.LAST_ROUTE_PATH,
|
|
157
|
+
settings,
|
|
158
|
+
secrets,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
function createTestBotContext(options) {
|
|
162
|
+
const request = createTestBotRequest(options);
|
|
163
|
+
const sessionForLocale = options?.session == null
|
|
164
|
+
? createTestSession()
|
|
165
|
+
: isFullSession(options.session)
|
|
166
|
+
? options.session
|
|
167
|
+
: createTestSession(options.session);
|
|
168
|
+
const locale = sessionForLocale.user.locale;
|
|
169
|
+
const country = sessionForLocale.user.country;
|
|
170
|
+
const systemLocale = sessionForLocale.user.system_locale;
|
|
171
|
+
return {
|
|
172
|
+
...request,
|
|
173
|
+
plugins: options?.plugins ?? {},
|
|
174
|
+
params: options?.params ?? {},
|
|
175
|
+
defaultDelay: options?.defaultDelay ?? 0,
|
|
176
|
+
defaultTyping: options?.defaultTyping ?? 0,
|
|
177
|
+
getUserLocale: () => locale,
|
|
178
|
+
getUserCountry: () => country,
|
|
179
|
+
getSystemLocale: () => systemLocale,
|
|
180
|
+
setUserLocale: () => undefined,
|
|
181
|
+
setUserCountry: () => undefined,
|
|
182
|
+
setSystemLocale: () => undefined,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Alias for `createTestBotContext` typed as `PluginPreRequest`.
|
|
187
|
+
* PluginPreRequest === BotContext in @botonic/core.
|
|
188
|
+
*/
|
|
189
|
+
exports.createTestPluginPreRequest = createTestBotContext;
|
|
190
|
+
function createTestPluginPostRequest(options) {
|
|
191
|
+
return {
|
|
192
|
+
...createTestBotContext(options),
|
|
193
|
+
response: options?.response ?? null,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":";;;AAgDA,gDAcC;AAED,8CAQC;AAYD,sDAcC;AAkBD,8CAoBC;AAcD,0CAaC;AA8CD,oDAsCC;AAWD,oDA6BC;AAcD,kEASC;AAtTD,sCAakB;AAElB,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAEjE,QAAA,aAAa,GAAG;IAC3B,eAAe,EAAE,yBAAyB;IAC1C,UAAU,EAAE,4BAA4B;IACxC,eAAe,EAAE,yBAAyB;IAC1C,qBAAqB,EAAE,wBAAwB;IAC/C,wBAAwB,EAAE,YAAY;IACtC,0BAA0B,EAAE,IAAI;IAChC,oBAAoB,EAAE,iBAAiB,EAAE,2BAA2B;IACpE,eAAe,EAAE,mBAAmB,EAAE,2BAA2B;IACjE,oBAAoB,EAAE,uBAAuB,EAAE,2BAA2B;IAC1E,YAAY,EAAE,mBAAmB;IACjC,gBAAgB,EAAE,yBAAyB;IAC3C,cAAc,EAAE,kBAAkB;IAClC,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,iBAAQ,CAAC,OAAuB;IAC1C,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,kBAAkB,EAAE,mBAAmB;IACvC,UAAU,EAAE,eAAe;IAC3B,eAAe,EAAE,EAAE;CACpB,CAAA;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,SAAgB,kBAAkB,CAChC,SAAgC;IAEhC,OAAO;QACL,eAAe,EAAE,qBAAa,CAAC,eAAe;QAC9C,UAAU,EAAE,qBAAa,CAAC,UAAU;QACpC,eAAe,EAAE,qBAAa,CAAC,eAAe;QAC9C,qBAAqB,EAAE,qBAAa,CAAC,qBAAqB;QAC1D,wBAAwB,EAAE,qBAAa,CAAC,wBAAwB;QAChE,0BAA0B,EAAE,qBAAa,CAAC,0BAA0B;QACpE,qBAAqB,EAAE,IAAI;QAC3B,MAAM,EAAE,EAAE;QACV,GAAG,SAAS;KACb,CAAA;AACH,CAAC;AAED,SAAgB,iBAAiB,CAAC,SAA+B;IAC/D,OAAO;QACL,oBAAoB,EAAE,qBAAa,CAAC,oBAAoB;QACxD,eAAe,EAAE,qBAAa,CAAC,eAAe;QAC9C,oBAAoB,EAAE,qBAAa,CAAC,oBAAoB;QACxD,MAAM,EAAE,EAAE;QACV,GAAG,SAAS;KACb,CAAA;AACH,CAAC;AAYD,SAAgB,qBAAqB,CACnC,OAAyB;IAEzB,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,qBAAa,CAAC,MAAM,CAAA;IACtD,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,qBAAa,CAAC,OAAO,CAAA;IACzD,OAAO;QACL,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,qBAAa,CAAC,OAAO;QACxC,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,qBAAa,CAAC,QAAQ;QACrD,MAAM;QACN,OAAO;QACP,aAAa,EAAE,OAAO,EAAE,YAAY,IAAI,MAAM;QAC9C,YAAY,EAAE,OAAO,EAAE,WAAW,IAAI,EAAE;QACxC,UAAU,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE;KACrC,CAAA;AACH,CAAC;AAkBD,SAAgB,iBAAiB,CAC/B,OAA4B;IAE5B,OAAO;QACL,GAAG,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,IAAI,qBAAa,CAAC,MAAM,EAAE;QACnD,IAAI,EAAE,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC;QAC1C,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,qBAAa,CAAC,QAAQ;QAC7D,eAAe,EAAE,OAAO,EAAE,cAAc,IAAI,qBAAa,CAAC,MAAM;QAChE,oBAAoB,EAAE,OAAO,EAAE,kBAAkB,IAAI,KAAK;QAC1D,mBAAmB,EAAE,OAAO,EAAE,iBAAiB,IAAI,KAAK;QACxD,aAAa,EAAE,OAAO,EAAE,WAAW,IAAI,qBAAa,CAAC,YAAY;QACjE,YAAY,EAAE,OAAO,EAAE,UAAU,IAAI,qBAAa,CAAC,gBAAgB;QACnE,cAAc,EAAE,OAAO,EAAE,YAAY,IAAI,qBAAa,CAAC,cAAc;QACrE,SAAS,EAAE,OAAO,EAAE,OAAO,IAAI,CAAC;QAChC,UAAU,EAAE,OAAO,EAAE,SAAS;QAC9B,gBAAgB,EAAE,OAAO,EAAE,aAAa;QACxC,kBAAkB,EAAE,OAAO,EAAE,sBAAsB;YACjD,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,sBAAsB,EAAE;YAC7C,CAAC,CAAC,SAAS;KACd,CAAA;AACH,CAAC;AAcD,SAAgB,eAAe,CAAC,OAA0B;IACxD,OAAO;QACL,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,cAAK,CAAC,IAAI;QACjC,IAAI,EAAE,OAAO,EAAE,IAAI;QACnB,IAAI,EAAE,OAAO,EAAE,IAAI;QACnB,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,GAAG,EAAE,OAAO,EAAE,GAAG;QACjB,UAAU,EAAE,OAAO,EAAE,UAAU;QAC/B,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,kBAAkB,EAChB,OAAO,EAAE,gBAAgB,IAAI,qBAAa,CAAC,kBAAkB;QAC/D,UAAU,EAAE,OAAO,EAAE,SAAS,IAAI,qBAAa,CAAC,UAAU;KAC3D,CAAA;AACH,CAAC;AAcD,SAAS,WAAW,CAAC,CAA2B;IAC9C,OAAO,oBAAoB,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,CAAA;AACvD,CAAC;AAED,SAAS,aAAa,CAAC,CAA+B;IACpD,OAAO,KAAK,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,CAAA;AACvC,CAAC;AAED,SAAS,cAAc,CACrB,CAAqC;IAErC,OAAO,CACL,iBAAiB,IAAI,CAAC;QACtB,YAAY,IAAI,CAAC;QACjB,iBAAiB,IAAI,CAAC;QACtB,uBAAuB,IAAI,CAAC;QAC5B,0BAA0B,IAAI,CAAC;QAC/B,4BAA4B,IAAI,CAAC;QACjC,uBAAuB,IAAI,CAAC;QAC5B,QAAQ,IAAI,CAAC,CACd,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,CAAmC;IACxD,OAAO,CACL,sBAAsB,IAAI,CAAC;QAC3B,iBAAiB,IAAI,CAAC;QACtB,sBAAsB,IAAI,CAAC;QAC3B,QAAQ,IAAI,CAAC,CACd,CAAA;AACH,CAAC;AAED,SAAgB,oBAAoB,CAClC,OAA+B;IAE/B,MAAM,KAAK,GACT,OAAO,EAAE,KAAK,IAAI,IAAI;QACpB,CAAC,CAAC,eAAe,EAAE;QACnB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;YAC1B,CAAC,CAAC,OAAO,CAAC,KAAK;YACf,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAEtC,MAAM,OAAO,GACX,OAAO,EAAE,OAAO,IAAI,IAAI;QACtB,CAAC,CAAC,iBAAiB,EAAE;QACrB,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;YAC9B,CAAC,CAAC,OAAO,CAAC,OAAO;YACjB,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAE1C,MAAM,QAAQ,GACZ,OAAO,EAAE,QAAQ,IAAI,IAAI;QACvB,CAAC,CAAC,kBAAkB,EAAE;QACtB,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC;YAChC,CAAC,CAAC,OAAO,CAAC,QAAQ;YAClB,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAE5C,MAAM,OAAO,GACX,OAAO,EAAE,OAAO,IAAI,IAAI;QACtB,CAAC,CAAC,iBAAiB,EAAE;QACrB,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;YAC9B,CAAC,CAAC,OAAO,CAAC,OAAO;YACjB,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAE1C,OAAO;QACL,KAAK;QACL,OAAO;QACP,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,qBAAa,CAAC,eAAe;QACtE,QAAQ;QACR,OAAO;KACR,CAAA;AACH,CAAC;AAWD,SAAgB,oBAAoB,CAElC,OAAyC;IACzC,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAA;IAE7C,MAAM,gBAAgB,GACpB,OAAO,EAAE,OAAO,IAAI,IAAI;QACtB,CAAC,CAAC,iBAAiB,EAAE;QACrB,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;YAC9B,CAAC,CAAC,OAAO,CAAC,OAAO;YACjB,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAE1C,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAA;IAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAA;IAC7C,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAA;IAExD,OAAO;QACL,GAAG,OAAO;QACV,OAAO,EAAE,OAAO,EAAE,OAAO,IAAK,EAAe;QAC7C,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE;QAC7B,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,CAAC;QACxC,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,CAAC;QAC1C,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM;QAC3B,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO;QAC7B,eAAe,EAAE,GAAG,EAAE,CAAC,YAAY;QACnC,aAAa,EAAE,GAAG,EAAE,CAAC,SAAS;QAC9B,cAAc,EAAE,GAAG,EAAE,CAAC,SAAS;QAC/B,eAAe,EAAE,GAAG,EAAE,CAAC,SAAS;KACjC,CAAA;AACH,CAAC;AAED;;;GAGG;AACU,QAAA,0BAA0B,GAAG,oBAAoB,CAAA;AAQ9D,SAAgB,2BAA2B,CAGzC,OAAgD;IAEhD,OAAO;QACL,GAAG,oBAAoB,CAAC,OAAO,CAAC;QAChC,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI;KACpC,CAAA;AACH,CAAC"}
|
package/lib/esm/core-bot.js
CHANGED
|
@@ -40,7 +40,7 @@ class CoreBot {
|
|
|
40
40
|
return output;
|
|
41
41
|
}
|
|
42
42
|
getBotContext(request) {
|
|
43
|
-
const { input, session, lastRoutePath } = request;
|
|
43
|
+
const { input, session, lastRoutePath, settings, secrets } = request;
|
|
44
44
|
return {
|
|
45
45
|
input,
|
|
46
46
|
session,
|
|
@@ -55,6 +55,8 @@ class CoreBot {
|
|
|
55
55
|
setUserCountry: (country) => this.setUserCountry(country, session),
|
|
56
56
|
setUserLocale: (locale) => this.setUserLocale(locale, session),
|
|
57
57
|
setSystemLocale: (locale) => this.setSystemLocale(locale, session),
|
|
58
|
+
settings,
|
|
59
|
+
secrets,
|
|
58
60
|
};
|
|
59
61
|
}
|
|
60
62
|
async runInput(botContext) {
|
|
@@ -65,6 +67,8 @@ class CoreBot {
|
|
|
65
67
|
input: botContext.input,
|
|
66
68
|
session: botContext.session,
|
|
67
69
|
lastRoutePath: botContext.lastRoutePath,
|
|
70
|
+
settings: botContext.settings,
|
|
71
|
+
secrets: botContext.secrets,
|
|
68
72
|
response: [],
|
|
69
73
|
};
|
|
70
74
|
}
|
|
@@ -79,9 +83,11 @@ class CoreBot {
|
|
|
79
83
|
botContext.session.is_first_interaction = false;
|
|
80
84
|
return {
|
|
81
85
|
input: botContext.input,
|
|
82
|
-
response,
|
|
83
86
|
session: botContext.session,
|
|
84
87
|
lastRoutePath: botContext.lastRoutePath,
|
|
88
|
+
settings: botContext.settings,
|
|
89
|
+
secrets: botContext.secrets,
|
|
90
|
+
response,
|
|
85
91
|
};
|
|
86
92
|
}
|
|
87
93
|
updateSession(session) {
|
|
@@ -155,6 +161,8 @@ class CoreBot {
|
|
|
155
161
|
response: previousResponse.response.concat(followUp.response),
|
|
156
162
|
session: botContext.session,
|
|
157
163
|
lastRoutePath: followUp.lastRoutePath,
|
|
164
|
+
settings: followUp.settings,
|
|
165
|
+
secrets: followUp.secrets,
|
|
158
166
|
};
|
|
159
167
|
// Recursive call to handle multiple bot actions in a row
|
|
160
168
|
if (response.session._botonic_action?.startsWith(models_1.BotonicAction.Redirect)) {
|
package/lib/esm/core-bot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-bot.js","sourceRoot":"","sources":["../../src/core-bot.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,qCAYiB;AACjB,uCAAsC;AACtC,uCAAqD;AAcrD,MAAa,OAAO;IAalB,YAAY,EACV,QAAQ,EACR,MAAM,EACN,KAAK,EACL,OAAO,EACP,KAAK,EACL,aAAa,GAAG,GAAG,EACnB,YAAY,GAAG,GAAG,EAClB,aAAa,EACb,SAAS,GACK;QACd,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAA;QACxB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,SAAS,CAAA;QAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,IAAI,iBAAS,EAAE,CAAA;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,EAAE,CAAA;QACxC,IAAI,CAAC,MAAM;YACT,IAAI,CAAC,MAAM,YAAY,QAAQ;gBAC7B,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,IAAI,gBAAM,CACR,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,EACvC,IAAI,CAAC,SAAS,CAAC,cAAc,CAC9B,CAAA;IACT,CAAC;IAED,eAAe,CAAC,MAAc,EAAE,OAAgB;QAC9C,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAA;IACrC,CAAC;IAED,aAAa,CAAC,MAAc,EAAE,OAAgB;QAC5C,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IAC9B,CAAC;IAED,cAAc,CAAC,OAAe,EAAE,OAAgB;QAC9C,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAmB;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAE9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QAE9C,IACE,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE,UAAU,CAAC,sBAAa,CAAC,QAAQ,CAAC,EACtE,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QACzD,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,aAAa,CAAC,OAAmB;QACvC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"core-bot.js","sourceRoot":"","sources":["../../src/core-bot.ts"],"names":[],"mappings":"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"}
|
|
@@ -171,6 +171,7 @@ export interface SessionUser<TExtraData = any> {
|
|
|
171
171
|
locale: string;
|
|
172
172
|
country: string;
|
|
173
173
|
system_locale: string;
|
|
174
|
+
system_locale_updated?: boolean;
|
|
174
175
|
}
|
|
175
176
|
export interface HubtypeCaseContactReason {
|
|
176
177
|
id: string;
|
|
@@ -242,6 +243,24 @@ export interface BotRequest<TExtraData = any> {
|
|
|
242
243
|
input: Input;
|
|
243
244
|
lastRoutePath: RoutePath;
|
|
244
245
|
session: Session<TExtraData>;
|
|
246
|
+
settings: BotSettings;
|
|
247
|
+
secrets: BotSecrets;
|
|
248
|
+
}
|
|
249
|
+
export interface BotSettings {
|
|
250
|
+
HUBTYPE_API_URL: string;
|
|
251
|
+
STATIC_URL: string;
|
|
252
|
+
LITELLM_API_URL: string;
|
|
253
|
+
AZURE_OPENAI_API_BASE: string;
|
|
254
|
+
AZURE_OPENAI_API_VERSION: string;
|
|
255
|
+
LANGUAGE_DETECTION_ENABLED?: boolean;
|
|
256
|
+
CUSTOM_SHORT_URL_HOST: string | null;
|
|
257
|
+
custom: Record<string, any>;
|
|
258
|
+
}
|
|
259
|
+
export interface BotSecrets {
|
|
260
|
+
HUBTYPE_ACCESS_TOKEN: string;
|
|
261
|
+
LITELLM_API_KEY: string;
|
|
262
|
+
AZURE_OPENAI_API_KEY: string;
|
|
263
|
+
custom: Record<string, any>;
|
|
245
264
|
}
|
|
246
265
|
export interface BotContext<TPlugins extends ResolvedPlugins = ResolvedPlugins, TExtraData = any> extends BotRequest<TExtraData> {
|
|
247
266
|
getUserCountry: () => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacy-types.js","sourceRoot":"","sources":["../../../src/models/legacy-types.ts"],"names":[],"mappings":";AAAA,wIAAwI;;;AAExI,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,yCAA0B,CAAA;IAC1B,6CAA8B,CAAA;IAC9B,mCAAoB,CAAA;IACpB,2CAA4B,CAAA;AAC9B,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAQD,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,mCAAgB,CAAA;IAChB,qCAAkB,CAAA;IAClB,mDAAgC,CAAA;IAChC,2CAAwB,CAAA;AAC1B,CAAC,EALW,eAAe,+BAAf,eAAe,QAK1B;AAQD,IAAY,QAaX;AAbD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,uBAAW,CAAA;IACX,iCAAqB,CAAA;IACrB,+BAAmB,CAAA;IACnB,mCAAuB,CAAA;IACvB,iCAAqB,CAAA;IACrB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,+BAAmB,CAAA;IACnB,+BAAmB,CAAA;IACnB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;AACvB,CAAC,EAbW,QAAQ,wBAAR,QAAQ,QAanB;AAeD,IAAY,KA4BX;AA5BD,WAAY,KAAK;IACf,sBAAa,CAAA;IACb,8BAAqB,CAAA;IACrB,wBAAe,CAAA;IACf,wBAAe,CAAA;IACf,wBAAe,CAAA;IACf,8BAAqB,CAAA;IACrB,8BAAqB,CAAA;IACrB,4BAAmB,CAAA;IACnB,yCAAgC,CAAA;IAChC,8BAAqB,CAAA;IACrB,0BAAiB,CAAA;IACjB,6CAAoC,CAAA;IACpC,+CAAsC,CAAA;IACtC,oBAAW,CAAA;IACX,iCAAwB,CAAA;IACxB,sDAA6C,CAAA;IAC7C,4DAAmD,CAAA;IACnD,8CAAqC,CAAA;IACrC,8CAAqC,CAAA;IACrC,wDAA+C,CAAA;IAC/C,gEAAuD,CAAA;IACvD,4DAAmD,CAAA;IACnD,0CAAiC,CAAA;IACjC,yEAAgE,CAAA;IAChE,2EAAkE,CAAA;IAClE,gEAAuD,CAAA;IACvD,kDAAyC,CAAA;AAC3C,CAAC,EA5BW,KAAK,qBAAL,KAAK,QA4BhB;AA8CD,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,8BAAmB,CAAA;IACnB,uCAA4B,CAAA;AAC9B,CAAC,EAHW,OAAO,uBAAP,OAAO,QAGlB;AAuCD,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,wCAA0B,CAAA;IAC1B,4CAA8B,CAAA;IAC9B,kCAAoB,CAAA;IACpB,0CAA4B,CAAA;AAC9B,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB;
|
|
1
|
+
{"version":3,"file":"legacy-types.js","sourceRoot":"","sources":["../../../src/models/legacy-types.ts"],"names":[],"mappings":";AAAA,wIAAwI;;;AAExI,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,yCAA0B,CAAA;IAC1B,6CAA8B,CAAA;IAC9B,mCAAoB,CAAA;IACpB,2CAA4B,CAAA;AAC9B,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAQD,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,mCAAgB,CAAA;IAChB,qCAAkB,CAAA;IAClB,mDAAgC,CAAA;IAChC,2CAAwB,CAAA;AAC1B,CAAC,EALW,eAAe,+BAAf,eAAe,QAK1B;AAQD,IAAY,QAaX;AAbD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,uBAAW,CAAA;IACX,iCAAqB,CAAA;IACrB,+BAAmB,CAAA;IACnB,mCAAuB,CAAA;IACvB,iCAAqB,CAAA;IACrB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,+BAAmB,CAAA;IACnB,+BAAmB,CAAA;IACnB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;AACvB,CAAC,EAbW,QAAQ,wBAAR,QAAQ,QAanB;AAeD,IAAY,KA4BX;AA5BD,WAAY,KAAK;IACf,sBAAa,CAAA;IACb,8BAAqB,CAAA;IACrB,wBAAe,CAAA;IACf,wBAAe,CAAA;IACf,wBAAe,CAAA;IACf,8BAAqB,CAAA;IACrB,8BAAqB,CAAA;IACrB,4BAAmB,CAAA;IACnB,yCAAgC,CAAA;IAChC,8BAAqB,CAAA;IACrB,0BAAiB,CAAA;IACjB,6CAAoC,CAAA;IACpC,+CAAsC,CAAA;IACtC,oBAAW,CAAA;IACX,iCAAwB,CAAA;IACxB,sDAA6C,CAAA;IAC7C,4DAAmD,CAAA;IACnD,8CAAqC,CAAA;IACrC,8CAAqC,CAAA;IACrC,wDAA+C,CAAA;IAC/C,gEAAuD,CAAA;IACvD,4DAAmD,CAAA;IACnD,0CAAiC,CAAA;IACjC,yEAAgE,CAAA;IAChE,2EAAkE,CAAA;IAClE,gEAAuD,CAAA;IACvD,kDAAyC,CAAA;AAC3C,CAAC,EA5BW,KAAK,qBAAL,KAAK,QA4BhB;AA8CD,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,8BAAmB,CAAA;IACnB,uCAA4B,CAAA;AAC9B,CAAC,EAHW,OAAO,uBAAP,OAAO,QAGlB;AAuCD,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,wCAA0B,CAAA;IAC1B,4CAA8B,CAAA;IAC9B,kCAAoB,CAAA;IACpB,0CAA4B,CAAA;AAC9B,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB;AAqRD,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,6CAA4B,CAAA;IAC5B,2CAA0B,CAAA;IAC1B,2CAA0B,CAAA;IAC1B,6CAA4B,CAAA;AAC9B,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { type BotContext, type BotRequest, type BotSecrets, type BotSettings, type ContactInfo, type Input, type ProviderType, type ResolvedPlugins, type Session, type SessionUser } from '../models';
|
|
2
|
+
export declare const TEST_DEFAULTS: {
|
|
3
|
+
HUBTYPE_API_URL: string;
|
|
4
|
+
STATIC_URL: string;
|
|
5
|
+
LITELLM_API_URL: string;
|
|
6
|
+
AZURE_OPENAI_API_BASE: string;
|
|
7
|
+
AZURE_OPENAI_API_VERSION: string;
|
|
8
|
+
LANGUAGE_DETECTION_ENABLED: boolean;
|
|
9
|
+
HUBTYPE_ACCESS_TOKEN: string;
|
|
10
|
+
LITELLM_API_KEY: string;
|
|
11
|
+
AZURE_OPENAI_API_KEY: string;
|
|
12
|
+
ACCESS_TOKEN: string;
|
|
13
|
+
HUBTYPE_API_HOST: string;
|
|
14
|
+
FLOW_THREAD_ID: string;
|
|
15
|
+
BOT_ID: string;
|
|
16
|
+
USER_ID: string;
|
|
17
|
+
ORG_ID: string;
|
|
18
|
+
ORG_NAME: string;
|
|
19
|
+
PROVIDER: ProviderType;
|
|
20
|
+
LOCALE: string;
|
|
21
|
+
COUNTRY: string;
|
|
22
|
+
BOT_INTERACTION_ID: string;
|
|
23
|
+
MESSAGE_ID: string;
|
|
24
|
+
LAST_ROUTE_PATH: string;
|
|
25
|
+
};
|
|
26
|
+
export declare function createTestSettings(overrides?: Partial<BotSettings>): BotSettings;
|
|
27
|
+
export declare function createTestSecrets(overrides?: Partial<BotSecrets>): BotSecrets;
|
|
28
|
+
export interface TestUserOptions {
|
|
29
|
+
id?: string;
|
|
30
|
+
provider?: ProviderType;
|
|
31
|
+
locale?: string;
|
|
32
|
+
country?: string;
|
|
33
|
+
systemLocale?: string;
|
|
34
|
+
contactInfo?: ContactInfo[];
|
|
35
|
+
extraData?: Record<string, any>;
|
|
36
|
+
}
|
|
37
|
+
export declare function createTestSessionUser(options?: TestUserOptions): SessionUser<Record<string, any>>;
|
|
38
|
+
export interface TestSessionOptions {
|
|
39
|
+
user?: TestUserOptions;
|
|
40
|
+
botId?: string;
|
|
41
|
+
organization?: string;
|
|
42
|
+
organizationId?: string;
|
|
43
|
+
isFirstInteraction?: boolean;
|
|
44
|
+
isTestIntegration?: boolean;
|
|
45
|
+
accessToken?: string;
|
|
46
|
+
hubtypeApi?: string;
|
|
47
|
+
flowThreadId?: string;
|
|
48
|
+
retries?: number;
|
|
49
|
+
shadowing?: boolean;
|
|
50
|
+
hubtypeCaseId?: string;
|
|
51
|
+
captureUserInputNodeId?: string;
|
|
52
|
+
}
|
|
53
|
+
export declare function createTestSession(options?: TestSessionOptions): Session<Record<string, any>>;
|
|
54
|
+
export interface TestInputOptions {
|
|
55
|
+
type?: Input['type'];
|
|
56
|
+
data?: string;
|
|
57
|
+
text?: string;
|
|
58
|
+
payload?: string;
|
|
59
|
+
src?: string;
|
|
60
|
+
botInteractionId?: string;
|
|
61
|
+
messageId?: string;
|
|
62
|
+
context?: Input['context'];
|
|
63
|
+
transcript?: string;
|
|
64
|
+
}
|
|
65
|
+
export declare function createTestInput(options?: TestInputOptions): Input;
|
|
66
|
+
export interface TestBotRequestOptions {
|
|
67
|
+
input?: TestInputOptions | Input;
|
|
68
|
+
session?: TestSessionOptions | Session;
|
|
69
|
+
lastRoutePath?: string;
|
|
70
|
+
settings?: Partial<BotSettings> | BotSettings;
|
|
71
|
+
secrets?: Partial<BotSecrets> | BotSecrets;
|
|
72
|
+
}
|
|
73
|
+
export declare function createTestBotRequest(options?: TestBotRequestOptions): BotRequest;
|
|
74
|
+
export interface TestBotContextOptions<TPlugins extends ResolvedPlugins = ResolvedPlugins> extends TestBotRequestOptions {
|
|
75
|
+
plugins?: TPlugins;
|
|
76
|
+
params?: Record<string, string>;
|
|
77
|
+
defaultDelay?: number;
|
|
78
|
+
defaultTyping?: number;
|
|
79
|
+
}
|
|
80
|
+
export declare function createTestBotContext<TPlugins extends ResolvedPlugins = ResolvedPlugins>(options?: TestBotContextOptions<TPlugins>): BotContext<TPlugins>;
|
|
81
|
+
/**
|
|
82
|
+
* Alias for `createTestBotContext` typed as `PluginPreRequest`.
|
|
83
|
+
* PluginPreRequest === BotContext in @botonic/core.
|
|
84
|
+
*/
|
|
85
|
+
export declare const createTestPluginPreRequest: typeof createTestBotContext;
|
|
86
|
+
export interface TestPluginPostRequestOptions<TPlugins extends ResolvedPlugins = ResolvedPlugins> extends TestBotContextOptions<TPlugins> {
|
|
87
|
+
response?: string | null;
|
|
88
|
+
}
|
|
89
|
+
export declare function createTestPluginPostRequest<TPlugins extends ResolvedPlugins = ResolvedPlugins>(options?: TestPluginPostRequestOptions<TPlugins>): BotContext<TPlugins> & {
|
|
90
|
+
response: string | null;
|
|
91
|
+
};
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTestPluginPreRequest = exports.TEST_DEFAULTS = void 0;
|
|
4
|
+
exports.createTestSettings = createTestSettings;
|
|
5
|
+
exports.createTestSecrets = createTestSecrets;
|
|
6
|
+
exports.createTestSessionUser = createTestSessionUser;
|
|
7
|
+
exports.createTestSession = createTestSession;
|
|
8
|
+
exports.createTestInput = createTestInput;
|
|
9
|
+
exports.createTestBotRequest = createTestBotRequest;
|
|
10
|
+
exports.createTestBotContext = createTestBotContext;
|
|
11
|
+
exports.createTestPluginPostRequest = createTestPluginPostRequest;
|
|
12
|
+
const models_1 = require("../models");
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
// Default values
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
exports.TEST_DEFAULTS = {
|
|
17
|
+
HUBTYPE_API_URL: 'https://api.hubtype.com',
|
|
18
|
+
STATIC_URL: 'https://static.hubtype.com',
|
|
19
|
+
LITELLM_API_URL: 'https://api.litellm.com',
|
|
20
|
+
AZURE_OPENAI_API_BASE: 'https://api.openai.com',
|
|
21
|
+
AZURE_OPENAI_API_VERSION: '2026-02-01',
|
|
22
|
+
LANGUAGE_DETECTION_ENABLED: true,
|
|
23
|
+
HUBTYPE_ACCESS_TOKEN: 'testAccessToken', // pragma: allowlist secret
|
|
24
|
+
LITELLM_API_KEY: 'testLiteLLMAPIKey', // pragma: allowlist secret
|
|
25
|
+
AZURE_OPENAI_API_KEY: 'testAzureOpenAIAPIKey', // pragma: allowlist secret
|
|
26
|
+
ACCESS_TOKEN: 'fake_access_token',
|
|
27
|
+
HUBTYPE_API_HOST: 'https://api.hubtype.com',
|
|
28
|
+
FLOW_THREAD_ID: 'testFlowThreadId',
|
|
29
|
+
BOT_ID: 'testBotId',
|
|
30
|
+
USER_ID: 'testUserId',
|
|
31
|
+
ORG_ID: 'testOrgId',
|
|
32
|
+
ORG_NAME: 'testOrg',
|
|
33
|
+
PROVIDER: models_1.PROVIDER.WEBCHAT,
|
|
34
|
+
LOCALE: 'en',
|
|
35
|
+
COUNTRY: 'US',
|
|
36
|
+
BOT_INTERACTION_ID: 'testInteractionId',
|
|
37
|
+
MESSAGE_ID: 'testMessageId',
|
|
38
|
+
LAST_ROUTE_PATH: '',
|
|
39
|
+
};
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
// Leaf factories
|
|
42
|
+
// ---------------------------------------------------------------------------
|
|
43
|
+
function createTestSettings(overrides) {
|
|
44
|
+
return {
|
|
45
|
+
HUBTYPE_API_URL: exports.TEST_DEFAULTS.HUBTYPE_API_URL,
|
|
46
|
+
STATIC_URL: exports.TEST_DEFAULTS.STATIC_URL,
|
|
47
|
+
LITELLM_API_URL: exports.TEST_DEFAULTS.LITELLM_API_URL,
|
|
48
|
+
AZURE_OPENAI_API_BASE: exports.TEST_DEFAULTS.AZURE_OPENAI_API_BASE,
|
|
49
|
+
AZURE_OPENAI_API_VERSION: exports.TEST_DEFAULTS.AZURE_OPENAI_API_VERSION,
|
|
50
|
+
LANGUAGE_DETECTION_ENABLED: exports.TEST_DEFAULTS.LANGUAGE_DETECTION_ENABLED,
|
|
51
|
+
CUSTOM_SHORT_URL_HOST: null,
|
|
52
|
+
custom: {},
|
|
53
|
+
...overrides,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function createTestSecrets(overrides) {
|
|
57
|
+
return {
|
|
58
|
+
HUBTYPE_ACCESS_TOKEN: exports.TEST_DEFAULTS.HUBTYPE_ACCESS_TOKEN,
|
|
59
|
+
LITELLM_API_KEY: exports.TEST_DEFAULTS.LITELLM_API_KEY,
|
|
60
|
+
AZURE_OPENAI_API_KEY: exports.TEST_DEFAULTS.AZURE_OPENAI_API_KEY,
|
|
61
|
+
custom: {},
|
|
62
|
+
...overrides,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function createTestSessionUser(options) {
|
|
66
|
+
const locale = options?.locale ?? exports.TEST_DEFAULTS.LOCALE;
|
|
67
|
+
const country = options?.country ?? exports.TEST_DEFAULTS.COUNTRY;
|
|
68
|
+
return {
|
|
69
|
+
id: options?.id ?? exports.TEST_DEFAULTS.USER_ID,
|
|
70
|
+
provider: options?.provider ?? exports.TEST_DEFAULTS.PROVIDER,
|
|
71
|
+
locale,
|
|
72
|
+
country,
|
|
73
|
+
system_locale: options?.systemLocale ?? locale,
|
|
74
|
+
contact_info: options?.contactInfo ?? [],
|
|
75
|
+
extra_data: options?.extraData ?? {},
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function createTestSession(options) {
|
|
79
|
+
return {
|
|
80
|
+
bot: { id: options?.botId ?? exports.TEST_DEFAULTS.BOT_ID },
|
|
81
|
+
user: createTestSessionUser(options?.user),
|
|
82
|
+
organization: options?.organization ?? exports.TEST_DEFAULTS.ORG_NAME,
|
|
83
|
+
organization_id: options?.organizationId ?? exports.TEST_DEFAULTS.ORG_ID,
|
|
84
|
+
is_first_interaction: options?.isFirstInteraction ?? false,
|
|
85
|
+
is_test_integration: options?.isTestIntegration ?? false,
|
|
86
|
+
_access_token: options?.accessToken ?? exports.TEST_DEFAULTS.ACCESS_TOKEN,
|
|
87
|
+
_hubtype_api: options?.hubtypeApi ?? exports.TEST_DEFAULTS.HUBTYPE_API_HOST,
|
|
88
|
+
flow_thread_id: options?.flowThreadId ?? exports.TEST_DEFAULTS.FLOW_THREAD_ID,
|
|
89
|
+
__retries: options?.retries ?? 0,
|
|
90
|
+
_shadowing: options?.shadowing,
|
|
91
|
+
_hubtype_case_id: options?.hubtypeCaseId,
|
|
92
|
+
capture_user_input: options?.captureUserInputNodeId
|
|
93
|
+
? { node_id: options.captureUserInputNodeId }
|
|
94
|
+
: undefined,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function createTestInput(options) {
|
|
98
|
+
return {
|
|
99
|
+
type: options?.type ?? models_1.INPUT.TEXT,
|
|
100
|
+
data: options?.data,
|
|
101
|
+
text: options?.text,
|
|
102
|
+
payload: options?.payload,
|
|
103
|
+
src: options?.src,
|
|
104
|
+
transcript: options?.transcript,
|
|
105
|
+
context: options?.context,
|
|
106
|
+
bot_interaction_id: options?.botInteractionId ?? exports.TEST_DEFAULTS.BOT_INTERACTION_ID,
|
|
107
|
+
message_id: options?.messageId ?? exports.TEST_DEFAULTS.MESSAGE_ID,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
function isFullInput(v) {
|
|
111
|
+
return 'bot_interaction_id' in v && 'message_id' in v;
|
|
112
|
+
}
|
|
113
|
+
function isFullSession(v) {
|
|
114
|
+
return 'bot' in v && '__retries' in v;
|
|
115
|
+
}
|
|
116
|
+
function isFullSettings(v) {
|
|
117
|
+
return ('HUBTYPE_API_URL' in v &&
|
|
118
|
+
'STATIC_URL' in v &&
|
|
119
|
+
'LITELLM_API_URL' in v &&
|
|
120
|
+
'AZURE_OPENAI_API_BASE' in v &&
|
|
121
|
+
'AZURE_OPENAI_API_VERSION' in v &&
|
|
122
|
+
'LANGUAGE_DETECTION_ENABLED' in v &&
|
|
123
|
+
'CUSTOM_SHORT_URL_HOST' in v &&
|
|
124
|
+
'custom' in v);
|
|
125
|
+
}
|
|
126
|
+
function isFullSecrets(v) {
|
|
127
|
+
return ('HUBTYPE_ACCESS_TOKEN' in v &&
|
|
128
|
+
'LITELLM_API_KEY' in v &&
|
|
129
|
+
'AZURE_OPENAI_API_KEY' in v &&
|
|
130
|
+
'custom' in v);
|
|
131
|
+
}
|
|
132
|
+
function createTestBotRequest(options) {
|
|
133
|
+
const input = options?.input == null
|
|
134
|
+
? createTestInput()
|
|
135
|
+
: isFullInput(options.input)
|
|
136
|
+
? options.input
|
|
137
|
+
: createTestInput(options.input);
|
|
138
|
+
const session = options?.session == null
|
|
139
|
+
? createTestSession()
|
|
140
|
+
: isFullSession(options.session)
|
|
141
|
+
? options.session
|
|
142
|
+
: createTestSession(options.session);
|
|
143
|
+
const settings = options?.settings == null
|
|
144
|
+
? createTestSettings()
|
|
145
|
+
: isFullSettings(options.settings)
|
|
146
|
+
? options.settings
|
|
147
|
+
: createTestSettings(options.settings);
|
|
148
|
+
const secrets = options?.secrets == null
|
|
149
|
+
? createTestSecrets()
|
|
150
|
+
: isFullSecrets(options.secrets)
|
|
151
|
+
? options.secrets
|
|
152
|
+
: createTestSecrets(options.secrets);
|
|
153
|
+
return {
|
|
154
|
+
input,
|
|
155
|
+
session,
|
|
156
|
+
lastRoutePath: options?.lastRoutePath ?? exports.TEST_DEFAULTS.LAST_ROUTE_PATH,
|
|
157
|
+
settings,
|
|
158
|
+
secrets,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
function createTestBotContext(options) {
|
|
162
|
+
const request = createTestBotRequest(options);
|
|
163
|
+
const sessionForLocale = options?.session == null
|
|
164
|
+
? createTestSession()
|
|
165
|
+
: isFullSession(options.session)
|
|
166
|
+
? options.session
|
|
167
|
+
: createTestSession(options.session);
|
|
168
|
+
const locale = sessionForLocale.user.locale;
|
|
169
|
+
const country = sessionForLocale.user.country;
|
|
170
|
+
const systemLocale = sessionForLocale.user.system_locale;
|
|
171
|
+
return {
|
|
172
|
+
...request,
|
|
173
|
+
plugins: options?.plugins ?? {},
|
|
174
|
+
params: options?.params ?? {},
|
|
175
|
+
defaultDelay: options?.defaultDelay ?? 0,
|
|
176
|
+
defaultTyping: options?.defaultTyping ?? 0,
|
|
177
|
+
getUserLocale: () => locale,
|
|
178
|
+
getUserCountry: () => country,
|
|
179
|
+
getSystemLocale: () => systemLocale,
|
|
180
|
+
setUserLocale: () => undefined,
|
|
181
|
+
setUserCountry: () => undefined,
|
|
182
|
+
setSystemLocale: () => undefined,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Alias for `createTestBotContext` typed as `PluginPreRequest`.
|
|
187
|
+
* PluginPreRequest === BotContext in @botonic/core.
|
|
188
|
+
*/
|
|
189
|
+
exports.createTestPluginPreRequest = createTestBotContext;
|
|
190
|
+
function createTestPluginPostRequest(options) {
|
|
191
|
+
return {
|
|
192
|
+
...createTestBotContext(options),
|
|
193
|
+
response: options?.response ?? null,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botonic/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.48.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Build Chatbots using React",
|
|
6
6
|
"main": "./lib/cjs/index.js",
|
|
7
7
|
"module": "./lib/esm/index.js",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"require": "./lib/cjs/index.js",
|
|
11
|
+
"import": "./lib/esm/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./testing": {
|
|
14
|
+
"require": "./lib/cjs/testing/index.js",
|
|
15
|
+
"import": "./lib/esm/testing/index.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
8
18
|
"scripts": {
|
|
9
19
|
"test": "../../node_modules/.bin/jest --coverage",
|
|
10
20
|
"prepublishOnly": "rm -rf lib && npm i && npm run build",
|
|
@@ -29,6 +39,13 @@
|
|
|
29
39
|
"index.d.ts",
|
|
30
40
|
"README.md"
|
|
31
41
|
],
|
|
42
|
+
"typesVersions": {
|
|
43
|
+
"*": {
|
|
44
|
+
"testing": [
|
|
45
|
+
"./lib/cjs/testing/index.d.ts"
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
},
|
|
32
49
|
"dependencies": {
|
|
33
50
|
"@babel/plugin-transform-runtime": "^7.25.9",
|
|
34
51
|
"axios": "^1.13.6",
|
package/src/core-bot.ts
CHANGED
|
@@ -97,7 +97,7 @@ export class CoreBot {
|
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
private getBotContext(request: BotRequest): BotContext {
|
|
100
|
-
const { input, session, lastRoutePath } = request
|
|
100
|
+
const { input, session, lastRoutePath, settings, secrets } = request
|
|
101
101
|
return {
|
|
102
102
|
input,
|
|
103
103
|
session,
|
|
@@ -114,6 +114,8 @@ export class CoreBot {
|
|
|
114
114
|
setUserLocale: (locale: string) => this.setUserLocale(locale, session),
|
|
115
115
|
setSystemLocale: (locale: string) =>
|
|
116
116
|
this.setSystemLocale(locale, session),
|
|
117
|
+
settings,
|
|
118
|
+
secrets,
|
|
117
119
|
}
|
|
118
120
|
}
|
|
119
121
|
|
|
@@ -126,6 +128,8 @@ export class CoreBot {
|
|
|
126
128
|
input: botContext.input,
|
|
127
129
|
session: botContext.session,
|
|
128
130
|
lastRoutePath: botContext.lastRoutePath,
|
|
131
|
+
settings: botContext.settings,
|
|
132
|
+
secrets: botContext.secrets,
|
|
129
133
|
response: [],
|
|
130
134
|
}
|
|
131
135
|
}
|
|
@@ -145,9 +149,11 @@ export class CoreBot {
|
|
|
145
149
|
|
|
146
150
|
return {
|
|
147
151
|
input: botContext.input,
|
|
148
|
-
response,
|
|
149
152
|
session: botContext.session,
|
|
150
153
|
lastRoutePath: botContext.lastRoutePath,
|
|
154
|
+
settings: botContext.settings,
|
|
155
|
+
secrets: botContext.secrets,
|
|
156
|
+
response,
|
|
151
157
|
}
|
|
152
158
|
}
|
|
153
159
|
|
|
@@ -247,11 +253,13 @@ export class CoreBot {
|
|
|
247
253
|
|
|
248
254
|
const followUp = await this.runInput(botContext)
|
|
249
255
|
|
|
250
|
-
const response = {
|
|
256
|
+
const response: BotResponse = {
|
|
251
257
|
input: followUp.input,
|
|
252
258
|
response: previousResponse.response.concat(followUp.response),
|
|
253
259
|
session: botContext.session,
|
|
254
260
|
lastRoutePath: followUp.lastRoutePath,
|
|
261
|
+
settings: followUp.settings,
|
|
262
|
+
secrets: followUp.secrets,
|
|
255
263
|
}
|
|
256
264
|
|
|
257
265
|
// Recursive call to handle multiple bot actions in a row
|
|
@@ -241,6 +241,7 @@ export interface SessionUser<TExtraData = any> {
|
|
|
241
241
|
locale: string
|
|
242
242
|
country: string
|
|
243
243
|
system_locale: string
|
|
244
|
+
system_locale_updated?: boolean
|
|
244
245
|
}
|
|
245
246
|
|
|
246
247
|
export interface HubtypeCaseContactReason {
|
|
@@ -334,6 +335,26 @@ export interface BotRequest<TExtraData = any> {
|
|
|
334
335
|
input: Input
|
|
335
336
|
lastRoutePath: RoutePath
|
|
336
337
|
session: Session<TExtraData>
|
|
338
|
+
settings: BotSettings
|
|
339
|
+
secrets: BotSecrets
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
export interface BotSettings {
|
|
343
|
+
HUBTYPE_API_URL: string
|
|
344
|
+
STATIC_URL: string
|
|
345
|
+
LITELLM_API_URL: string
|
|
346
|
+
AZURE_OPENAI_API_BASE: string
|
|
347
|
+
AZURE_OPENAI_API_VERSION: string
|
|
348
|
+
LANGUAGE_DETECTION_ENABLED?: boolean
|
|
349
|
+
CUSTOM_SHORT_URL_HOST: string | null
|
|
350
|
+
custom: Record<string, any>
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
export interface BotSecrets {
|
|
354
|
+
HUBTYPE_ACCESS_TOKEN: string
|
|
355
|
+
LITELLM_API_KEY: string
|
|
356
|
+
AZURE_OPENAI_API_KEY: string
|
|
357
|
+
custom: Record<string, any>
|
|
337
358
|
}
|
|
338
359
|
|
|
339
360
|
export interface BotContext<
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type BotContext,
|
|
3
|
+
type BotRequest,
|
|
4
|
+
type BotSecrets,
|
|
5
|
+
type BotSettings,
|
|
6
|
+
type ContactInfo,
|
|
7
|
+
INPUT,
|
|
8
|
+
type Input,
|
|
9
|
+
PROVIDER,
|
|
10
|
+
type ProviderType,
|
|
11
|
+
type ResolvedPlugins,
|
|
12
|
+
type Session,
|
|
13
|
+
type SessionUser,
|
|
14
|
+
} from '../models'
|
|
15
|
+
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
// Default values
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
|
|
20
|
+
export const TEST_DEFAULTS = {
|
|
21
|
+
HUBTYPE_API_URL: 'https://api.hubtype.com',
|
|
22
|
+
STATIC_URL: 'https://static.hubtype.com',
|
|
23
|
+
LITELLM_API_URL: 'https://api.litellm.com',
|
|
24
|
+
AZURE_OPENAI_API_BASE: 'https://api.openai.com',
|
|
25
|
+
AZURE_OPENAI_API_VERSION: '2026-02-01',
|
|
26
|
+
LANGUAGE_DETECTION_ENABLED: true,
|
|
27
|
+
HUBTYPE_ACCESS_TOKEN: 'testAccessToken', // pragma: allowlist secret
|
|
28
|
+
LITELLM_API_KEY: 'testLiteLLMAPIKey', // pragma: allowlist secret
|
|
29
|
+
AZURE_OPENAI_API_KEY: 'testAzureOpenAIAPIKey', // pragma: allowlist secret
|
|
30
|
+
ACCESS_TOKEN: 'fake_access_token',
|
|
31
|
+
HUBTYPE_API_HOST: 'https://api.hubtype.com',
|
|
32
|
+
FLOW_THREAD_ID: 'testFlowThreadId',
|
|
33
|
+
BOT_ID: 'testBotId',
|
|
34
|
+
USER_ID: 'testUserId',
|
|
35
|
+
ORG_ID: 'testOrgId',
|
|
36
|
+
ORG_NAME: 'testOrg',
|
|
37
|
+
PROVIDER: PROVIDER.WEBCHAT as ProviderType,
|
|
38
|
+
LOCALE: 'en',
|
|
39
|
+
COUNTRY: 'US',
|
|
40
|
+
BOT_INTERACTION_ID: 'testInteractionId',
|
|
41
|
+
MESSAGE_ID: 'testMessageId',
|
|
42
|
+
LAST_ROUTE_PATH: '',
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// ---------------------------------------------------------------------------
|
|
46
|
+
// Leaf factories
|
|
47
|
+
// ---------------------------------------------------------------------------
|
|
48
|
+
|
|
49
|
+
export function createTestSettings(
|
|
50
|
+
overrides?: Partial<BotSettings>
|
|
51
|
+
): BotSettings {
|
|
52
|
+
return {
|
|
53
|
+
HUBTYPE_API_URL: TEST_DEFAULTS.HUBTYPE_API_URL,
|
|
54
|
+
STATIC_URL: TEST_DEFAULTS.STATIC_URL,
|
|
55
|
+
LITELLM_API_URL: TEST_DEFAULTS.LITELLM_API_URL,
|
|
56
|
+
AZURE_OPENAI_API_BASE: TEST_DEFAULTS.AZURE_OPENAI_API_BASE,
|
|
57
|
+
AZURE_OPENAI_API_VERSION: TEST_DEFAULTS.AZURE_OPENAI_API_VERSION,
|
|
58
|
+
LANGUAGE_DETECTION_ENABLED: TEST_DEFAULTS.LANGUAGE_DETECTION_ENABLED,
|
|
59
|
+
CUSTOM_SHORT_URL_HOST: null,
|
|
60
|
+
custom: {},
|
|
61
|
+
...overrides,
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export function createTestSecrets(overrides?: Partial<BotSecrets>): BotSecrets {
|
|
66
|
+
return {
|
|
67
|
+
HUBTYPE_ACCESS_TOKEN: TEST_DEFAULTS.HUBTYPE_ACCESS_TOKEN,
|
|
68
|
+
LITELLM_API_KEY: TEST_DEFAULTS.LITELLM_API_KEY,
|
|
69
|
+
AZURE_OPENAI_API_KEY: TEST_DEFAULTS.AZURE_OPENAI_API_KEY,
|
|
70
|
+
custom: {},
|
|
71
|
+
...overrides,
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export interface TestUserOptions {
|
|
76
|
+
id?: string
|
|
77
|
+
provider?: ProviderType
|
|
78
|
+
locale?: string
|
|
79
|
+
country?: string
|
|
80
|
+
systemLocale?: string
|
|
81
|
+
contactInfo?: ContactInfo[]
|
|
82
|
+
extraData?: Record<string, any>
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export function createTestSessionUser(
|
|
86
|
+
options?: TestUserOptions
|
|
87
|
+
): SessionUser<Record<string, any>> {
|
|
88
|
+
const locale = options?.locale ?? TEST_DEFAULTS.LOCALE
|
|
89
|
+
const country = options?.country ?? TEST_DEFAULTS.COUNTRY
|
|
90
|
+
return {
|
|
91
|
+
id: options?.id ?? TEST_DEFAULTS.USER_ID,
|
|
92
|
+
provider: options?.provider ?? TEST_DEFAULTS.PROVIDER,
|
|
93
|
+
locale,
|
|
94
|
+
country,
|
|
95
|
+
system_locale: options?.systemLocale ?? locale,
|
|
96
|
+
contact_info: options?.contactInfo ?? [],
|
|
97
|
+
extra_data: options?.extraData ?? {},
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export interface TestSessionOptions {
|
|
102
|
+
user?: TestUserOptions
|
|
103
|
+
botId?: string
|
|
104
|
+
organization?: string
|
|
105
|
+
organizationId?: string
|
|
106
|
+
isFirstInteraction?: boolean
|
|
107
|
+
isTestIntegration?: boolean
|
|
108
|
+
accessToken?: string
|
|
109
|
+
hubtypeApi?: string
|
|
110
|
+
flowThreadId?: string
|
|
111
|
+
retries?: number
|
|
112
|
+
shadowing?: boolean
|
|
113
|
+
hubtypeCaseId?: string
|
|
114
|
+
captureUserInputNodeId?: string
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export function createTestSession(
|
|
118
|
+
options?: TestSessionOptions
|
|
119
|
+
): Session<Record<string, any>> {
|
|
120
|
+
return {
|
|
121
|
+
bot: { id: options?.botId ?? TEST_DEFAULTS.BOT_ID },
|
|
122
|
+
user: createTestSessionUser(options?.user),
|
|
123
|
+
organization: options?.organization ?? TEST_DEFAULTS.ORG_NAME,
|
|
124
|
+
organization_id: options?.organizationId ?? TEST_DEFAULTS.ORG_ID,
|
|
125
|
+
is_first_interaction: options?.isFirstInteraction ?? false,
|
|
126
|
+
is_test_integration: options?.isTestIntegration ?? false,
|
|
127
|
+
_access_token: options?.accessToken ?? TEST_DEFAULTS.ACCESS_TOKEN,
|
|
128
|
+
_hubtype_api: options?.hubtypeApi ?? TEST_DEFAULTS.HUBTYPE_API_HOST,
|
|
129
|
+
flow_thread_id: options?.flowThreadId ?? TEST_DEFAULTS.FLOW_THREAD_ID,
|
|
130
|
+
__retries: options?.retries ?? 0,
|
|
131
|
+
_shadowing: options?.shadowing,
|
|
132
|
+
_hubtype_case_id: options?.hubtypeCaseId,
|
|
133
|
+
capture_user_input: options?.captureUserInputNodeId
|
|
134
|
+
? { node_id: options.captureUserInputNodeId }
|
|
135
|
+
: undefined,
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export interface TestInputOptions {
|
|
140
|
+
type?: Input['type']
|
|
141
|
+
data?: string
|
|
142
|
+
text?: string
|
|
143
|
+
payload?: string
|
|
144
|
+
src?: string
|
|
145
|
+
botInteractionId?: string
|
|
146
|
+
messageId?: string
|
|
147
|
+
context?: Input['context']
|
|
148
|
+
transcript?: string
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export function createTestInput(options?: TestInputOptions): Input {
|
|
152
|
+
return {
|
|
153
|
+
type: options?.type ?? INPUT.TEXT,
|
|
154
|
+
data: options?.data,
|
|
155
|
+
text: options?.text,
|
|
156
|
+
payload: options?.payload,
|
|
157
|
+
src: options?.src,
|
|
158
|
+
transcript: options?.transcript,
|
|
159
|
+
context: options?.context,
|
|
160
|
+
bot_interaction_id:
|
|
161
|
+
options?.botInteractionId ?? TEST_DEFAULTS.BOT_INTERACTION_ID,
|
|
162
|
+
message_id: options?.messageId ?? TEST_DEFAULTS.MESSAGE_ID,
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// ---------------------------------------------------------------------------
|
|
167
|
+
// Composite factories
|
|
168
|
+
// ---------------------------------------------------------------------------
|
|
169
|
+
|
|
170
|
+
export interface TestBotRequestOptions {
|
|
171
|
+
input?: TestInputOptions | Input
|
|
172
|
+
session?: TestSessionOptions | Session
|
|
173
|
+
lastRoutePath?: string
|
|
174
|
+
settings?: Partial<BotSettings> | BotSettings
|
|
175
|
+
secrets?: Partial<BotSecrets> | BotSecrets
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
function isFullInput(v: TestInputOptions | Input): v is Input {
|
|
179
|
+
return 'bot_interaction_id' in v && 'message_id' in v
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
function isFullSession(v: TestSessionOptions | Session): v is Session {
|
|
183
|
+
return 'bot' in v && '__retries' in v
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
function isFullSettings(
|
|
187
|
+
v: Partial<BotSettings> | BotSettings
|
|
188
|
+
): v is BotSettings {
|
|
189
|
+
return (
|
|
190
|
+
'HUBTYPE_API_URL' in v &&
|
|
191
|
+
'STATIC_URL' in v &&
|
|
192
|
+
'LITELLM_API_URL' in v &&
|
|
193
|
+
'AZURE_OPENAI_API_BASE' in v &&
|
|
194
|
+
'AZURE_OPENAI_API_VERSION' in v &&
|
|
195
|
+
'LANGUAGE_DETECTION_ENABLED' in v &&
|
|
196
|
+
'CUSTOM_SHORT_URL_HOST' in v &&
|
|
197
|
+
'custom' in v
|
|
198
|
+
)
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
function isFullSecrets(v: Partial<BotSecrets> | BotSecrets): v is BotSecrets {
|
|
202
|
+
return (
|
|
203
|
+
'HUBTYPE_ACCESS_TOKEN' in v &&
|
|
204
|
+
'LITELLM_API_KEY' in v &&
|
|
205
|
+
'AZURE_OPENAI_API_KEY' in v &&
|
|
206
|
+
'custom' in v
|
|
207
|
+
)
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
export function createTestBotRequest(
|
|
211
|
+
options?: TestBotRequestOptions
|
|
212
|
+
): BotRequest {
|
|
213
|
+
const input =
|
|
214
|
+
options?.input == null
|
|
215
|
+
? createTestInput()
|
|
216
|
+
: isFullInput(options.input)
|
|
217
|
+
? options.input
|
|
218
|
+
: createTestInput(options.input)
|
|
219
|
+
|
|
220
|
+
const session =
|
|
221
|
+
options?.session == null
|
|
222
|
+
? createTestSession()
|
|
223
|
+
: isFullSession(options.session)
|
|
224
|
+
? options.session
|
|
225
|
+
: createTestSession(options.session)
|
|
226
|
+
|
|
227
|
+
const settings =
|
|
228
|
+
options?.settings == null
|
|
229
|
+
? createTestSettings()
|
|
230
|
+
: isFullSettings(options.settings)
|
|
231
|
+
? options.settings
|
|
232
|
+
: createTestSettings(options.settings)
|
|
233
|
+
|
|
234
|
+
const secrets =
|
|
235
|
+
options?.secrets == null
|
|
236
|
+
? createTestSecrets()
|
|
237
|
+
: isFullSecrets(options.secrets)
|
|
238
|
+
? options.secrets
|
|
239
|
+
: createTestSecrets(options.secrets)
|
|
240
|
+
|
|
241
|
+
return {
|
|
242
|
+
input,
|
|
243
|
+
session,
|
|
244
|
+
lastRoutePath: options?.lastRoutePath ?? TEST_DEFAULTS.LAST_ROUTE_PATH,
|
|
245
|
+
settings,
|
|
246
|
+
secrets,
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
export interface TestBotContextOptions<
|
|
251
|
+
TPlugins extends ResolvedPlugins = ResolvedPlugins,
|
|
252
|
+
> extends TestBotRequestOptions {
|
|
253
|
+
plugins?: TPlugins
|
|
254
|
+
params?: Record<string, string>
|
|
255
|
+
defaultDelay?: number
|
|
256
|
+
defaultTyping?: number
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
export function createTestBotContext<
|
|
260
|
+
TPlugins extends ResolvedPlugins = ResolvedPlugins,
|
|
261
|
+
>(options?: TestBotContextOptions<TPlugins>): BotContext<TPlugins> {
|
|
262
|
+
const request = createTestBotRequest(options)
|
|
263
|
+
|
|
264
|
+
const sessionForLocale =
|
|
265
|
+
options?.session == null
|
|
266
|
+
? createTestSession()
|
|
267
|
+
: isFullSession(options.session)
|
|
268
|
+
? options.session
|
|
269
|
+
: createTestSession(options.session)
|
|
270
|
+
|
|
271
|
+
const locale = sessionForLocale.user.locale
|
|
272
|
+
const country = sessionForLocale.user.country
|
|
273
|
+
const systemLocale = sessionForLocale.user.system_locale
|
|
274
|
+
|
|
275
|
+
return {
|
|
276
|
+
...request,
|
|
277
|
+
plugins: options?.plugins ?? ({} as TPlugins),
|
|
278
|
+
params: options?.params ?? {},
|
|
279
|
+
defaultDelay: options?.defaultDelay ?? 0,
|
|
280
|
+
defaultTyping: options?.defaultTyping ?? 0,
|
|
281
|
+
getUserLocale: () => locale,
|
|
282
|
+
getUserCountry: () => country,
|
|
283
|
+
getSystemLocale: () => systemLocale,
|
|
284
|
+
setUserLocale: () => undefined,
|
|
285
|
+
setUserCountry: () => undefined,
|
|
286
|
+
setSystemLocale: () => undefined,
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* Alias for `createTestBotContext` typed as `PluginPreRequest`.
|
|
292
|
+
* PluginPreRequest === BotContext in @botonic/core.
|
|
293
|
+
*/
|
|
294
|
+
export const createTestPluginPreRequest = createTestBotContext
|
|
295
|
+
|
|
296
|
+
export interface TestPluginPostRequestOptions<
|
|
297
|
+
TPlugins extends ResolvedPlugins = ResolvedPlugins,
|
|
298
|
+
> extends TestBotContextOptions<TPlugins> {
|
|
299
|
+
response?: string | null
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
export function createTestPluginPostRequest<
|
|
303
|
+
TPlugins extends ResolvedPlugins = ResolvedPlugins,
|
|
304
|
+
>(
|
|
305
|
+
options?: TestPluginPostRequestOptions<TPlugins>
|
|
306
|
+
): BotContext<TPlugins> & { response: string | null } {
|
|
307
|
+
return {
|
|
308
|
+
...createTestBotContext(options),
|
|
309
|
+
response: options?.response ?? null,
|
|
310
|
+
}
|
|
311
|
+
}
|