@tellescope/sdk 1.256.0 → 1.256.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/lib/cjs/tests/api_tests/beluga_trigger_refill.test.d.ts +6 -0
  2. package/lib/cjs/tests/api_tests/beluga_trigger_refill.test.d.ts.map +1 -0
  3. package/lib/cjs/tests/api_tests/beluga_trigger_refill.test.js +224 -0
  4. package/lib/cjs/tests/api_tests/beluga_trigger_refill.test.js.map +1 -0
  5. package/lib/cjs/tests/api_tests/start_ai_conversation.test.d.ts +6 -0
  6. package/lib/cjs/tests/api_tests/start_ai_conversation.test.d.ts.map +1 -0
  7. package/lib/cjs/tests/api_tests/start_ai_conversation.test.js +351 -0
  8. package/lib/cjs/tests/api_tests/start_ai_conversation.test.js.map +1 -0
  9. package/lib/cjs/tests/tests.d.ts.map +1 -1
  10. package/lib/cjs/tests/tests.js +201 -185
  11. package/lib/cjs/tests/tests.js.map +1 -1
  12. package/lib/esm/enduser.d.ts +1 -0
  13. package/lib/esm/enduser.d.ts.map +1 -1
  14. package/lib/esm/sdk.d.ts +3 -2
  15. package/lib/esm/sdk.d.ts.map +1 -1
  16. package/lib/esm/session.d.ts +1 -0
  17. package/lib/esm/session.d.ts.map +1 -1
  18. package/lib/esm/tests/api_tests/beluga_trigger_refill.test.d.ts +6 -0
  19. package/lib/esm/tests/api_tests/beluga_trigger_refill.test.d.ts.map +1 -0
  20. package/lib/esm/tests/api_tests/beluga_trigger_refill.test.js +220 -0
  21. package/lib/esm/tests/api_tests/beluga_trigger_refill.test.js.map +1 -0
  22. package/lib/esm/tests/api_tests/start_ai_conversation.test.d.ts +6 -0
  23. package/lib/esm/tests/api_tests/start_ai_conversation.test.d.ts.map +1 -0
  24. package/lib/esm/tests/api_tests/start_ai_conversation.test.js +347 -0
  25. package/lib/esm/tests/api_tests/start_ai_conversation.test.js.map +1 -0
  26. package/lib/esm/tests/tests.d.ts.map +1 -1
  27. package/lib/esm/tests/tests.js +201 -185
  28. package/lib/esm/tests/tests.js.map +1 -1
  29. package/lib/tsconfig.tsbuildinfo +1 -1
  30. package/package.json +8 -8
  31. package/src/tests/api_tests/beluga_trigger_refill.test.ts +152 -0
  32. package/src/tests/api_tests/security/F-0015-webhook-outbound-ssrf.test.ts +292 -0
  33. package/src/tests/api_tests/security/F-0025-proxy-image-unauth-ssrf.test.ts +179 -0
  34. package/src/tests/api_tests/start_ai_conversation.test.ts +256 -0
  35. package/src/tests/tests.ts +8 -0
  36. package/test_generated.pdf +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beluga_trigger_refill.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/beluga_trigger_refill.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Session } from "../../sdk";
2
+ export declare const start_ai_conversation_tests: ({ sdk, sdkNonAdmin }: {
3
+ sdk: Session;
4
+ sdkNonAdmin: Session;
5
+ }) => Promise<void>;
6
+ //# sourceMappingURL=start_ai_conversation.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start_ai_conversation.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/start_ai_conversation.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAanC,eAAO,MAAM,2BAA2B;SAAwC,OAAO;iBAAe,OAAO;mBA2N5G,CAAA"}
@@ -0,0 +1,347 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
49
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
50
+ if (ar || !(i in from)) {
51
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
52
+ ar[i] = from[i];
53
+ }
54
+ }
55
+ return to.concat(ar || Array.prototype.slice.call(from));
56
+ };
57
+ require('source-map-support').install();
58
+ import { Session } from "../../sdk";
59
+ import { log_header, wait, async_test, assert } from "@tellescope/testing";
60
+ import { setup_tests } from "../setup";
61
+ var host = process.env.API_URL || "http://localhost:8080";
62
+ var TEST_MARKER = '__TELLESCOPE_TEST_INCOMING_SMS_AUTOMATION__';
63
+ var TEST_PHONE = '+15555555555'; // send_sms short-circuits real sends for this number
64
+ // SMS AI conversations (startAIConversation journey action).
65
+ // Runtime flows (start/supersede/takeover/inbound absorption) require the organization to have an
66
+ // SMS number configured — when it doesn't (typical dev org), those sections assert the
67
+ // configuration error path and are otherwise skipped; config validation runs everywhere.
68
+ export var start_ai_conversation_tests = function (_a) {
69
+ var sdk = _a.sdk, sdkNonAdmin = _a.sdkNonAdmin;
70
+ return __awaiter(void 0, void 0, void 0, function () {
71
+ var users, senderId, journey, createdEnduserIds, validInfo_1, step_1, outcomeChild, processFor, phonelessEnduser, noPhoneResult, session, resolvedOrgId_1, organization, orgHasNumber, enduser_1, result, enduser, startResult, refreshed, entry, conversation, initialMessages, outbound, secondStart, activeEntries_1, stopped, takeoverStart, _b, _c, takenOver, baselineEnduser, baselineRefreshed, baselineMessages, _i, createdEnduserIds_1, id;
72
+ var _d;
73
+ var _e, _f, _g, _h, _j, _k, _l, _m, _o;
74
+ return __generator(this, function (_p) {
75
+ switch (_p.label) {
76
+ case 0:
77
+ log_header("Start AI Conversation (SMS Agent) Tests");
78
+ return [4 /*yield*/, sdk.api.users.getSome({})];
79
+ case 1:
80
+ users = _p.sent();
81
+ senderId = users[0].id;
82
+ return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'SMS Agent Test Journey' })];
83
+ case 2:
84
+ journey = _p.sent();
85
+ createdEnduserIds = [];
86
+ _p.label = 3;
87
+ case 3:
88
+ _p.trys.push([3, , 39, 45]);
89
+ validInfo_1 = {
90
+ channel: 'SMS',
91
+ senderId: senderId,
92
+ initialMessage: 'Hello {{enduser.fname}}! Quick question for you.',
93
+ prompt: 'You are texting on behalf of Test Clinic. Answer briefly.',
94
+ outcomes: [{ value: 'resolved', description: 'The question was answered' }],
95
+ };
96
+ return [4 /*yield*/, sdk.api.automation_steps.createOne({
97
+ journeyId: journey.id,
98
+ events: [{ type: 'onJourneyStart', info: {} }],
99
+ action: { type: 'startAIConversation', info: validInfo_1 },
100
+ })];
101
+ case 4:
102
+ step_1 = _p.sent();
103
+ assert(step_1.action.type === 'startAIConversation' && step_1.action.info.initialMessage === validInfo_1.initialMessage, 'startAIConversation step round-trip failed', 'startAIConversation step round-trips');
104
+ return [4 /*yield*/, sdk.api.automation_steps.createOne({
105
+ journeyId: journey.id,
106
+ events: [{ type: 'onAIConversationOutcome', info: { automationStepId: step_1.id, outcome: 'resolved' } }],
107
+ action: { type: 'addEnduserTags', info: { tags: ['sms-agent-resolved'] } },
108
+ })];
109
+ case 5:
110
+ outcomeChild = _p.sent();
111
+ assert(outcomeChild.events[0].type === 'onAIConversationOutcome', 'onAIConversationOutcome event round-trip failed', 'onAIConversationOutcome event round-trips');
112
+ return [4 /*yield*/, async_test('startAIConversation without prompt is rejected', function () { return sdk.api.automation_steps.createOne({
113
+ journeyId: journey.id,
114
+ events: [{ type: 'onJourneyStart', info: {} }],
115
+ action: { type: 'startAIConversation', info: __assign(__assign({}, validInfo_1), { prompt: undefined }) },
116
+ }); }, { shouldError: true, onError: function () { return true; } })];
117
+ case 6:
118
+ _p.sent();
119
+ return [4 /*yield*/, async_test('startAIConversation without senderId is rejected', function () { return sdk.api.automation_steps.createOne({
120
+ journeyId: journey.id,
121
+ events: [{ type: 'onJourneyStart', info: {} }],
122
+ action: { type: 'startAIConversation', info: __assign(__assign({}, validInfo_1), { senderId: undefined }) },
123
+ }); }, { shouldError: true, onError: function () { return true; } })];
124
+ case 7:
125
+ _p.sent();
126
+ return [4 /*yield*/, async_test('startAIConversation without initialMessage is rejected', function () { return sdk.api.automation_steps.createOne({
127
+ journeyId: journey.id,
128
+ events: [{ type: 'onJourneyStart', info: {} }],
129
+ action: { type: 'startAIConversation', info: __assign(__assign({}, validInfo_1), { initialMessage: undefined }) },
130
+ }); }, { shouldError: true, onError: function () { return true; } })];
131
+ case 8:
132
+ _p.sent();
133
+ return [4 /*yield*/, async_test('startAIConversation with invalid tool is rejected', function () { return sdk.api.automation_steps.createOne({
134
+ journeyId: journey.id,
135
+ events: [{ type: 'onJourneyStart', info: {} }],
136
+ action: { type: 'startAIConversation', info: __assign(__assign({}, validInfo_1), { tools: [{ type: 'Submit Form', info: { formId: 'not-an-id' } }] }) },
137
+ }); }, { shouldError: true, onError: function () { return true; } })
138
+ /*************** Runtime: the process endpoint ***************/
139
+ ];
140
+ case 9:
141
+ _p.sent();
142
+ processFor = function (enduserId) { return __awaiter(void 0, void 0, void 0, function () {
143
+ var automatedAction;
144
+ return __generator(this, function (_a) {
145
+ switch (_a.label) {
146
+ case 0: return [4 /*yield*/, sdk.api.automated_actions.createOne({
147
+ enduserId: enduserId,
148
+ journeyId: journey.id,
149
+ automationStepId: step_1.id,
150
+ event: { type: 'onJourneyStart', info: {} },
151
+ action: { type: 'startAIConversation', info: validInfo_1 },
152
+ status: 'active',
153
+ processAfter: Date.now(),
154
+ })];
155
+ case 1:
156
+ automatedAction = _a.sent();
157
+ return [2 /*return*/, sdk.api.automated_actions.process({ automatedActionId: automatedAction.id })];
158
+ }
159
+ });
160
+ }); };
161
+ return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'sms-agent-nophone' })];
162
+ case 10:
163
+ phonelessEnduser = _p.sent();
164
+ createdEnduserIds.push(phonelessEnduser.id);
165
+ return [4 /*yield*/, processFor(phonelessEnduser.id)];
166
+ case 11:
167
+ noPhoneResult = _p.sent();
168
+ assert(!noPhoneResult.success && !!noPhoneResult.error, 'phoneless start should fail with an error', 'start action errors for a contact without a phone');
169
+ session = sdk.userInfo;
170
+ resolvedOrgId_1 = __spreadArray([], ((_e = session.organizationIds) !== null && _e !== void 0 ? _e : []), true).pop() || session.businessId;
171
+ return [4 /*yield*/, sdk.api.organizations.getSome({})];
172
+ case 12:
173
+ organization = (_p.sent()).find(function (o) { return o.id === resolvedOrgId_1; });
174
+ orgHasNumber = !!(organization === null || organization === void 0 ? void 0 : organization.twilioNumber) || !!((_f = organization === null || organization === void 0 ? void 0 : organization.twilioNumbers) === null || _f === void 0 ? void 0 : _f.length);
175
+ if (!!orgHasNumber) return [3 /*break*/, 15];
176
+ return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'sms-agent-nonumber', phone: TEST_PHONE })];
177
+ case 13:
178
+ enduser_1 = _p.sent();
179
+ createdEnduserIds.push(enduser_1.id);
180
+ return [4 /*yield*/, processFor(enduser_1.id)];
181
+ case 14:
182
+ result = _p.sent();
183
+ assert(!result.success && /no sms number configured|ai is not enabled/i.test(result.error || ''), "expected a configuration error, got: ".concat(result.error), 'start action reports a configuration error (org has no SMS number — runtime flows skipped)');
184
+ return [2 /*return*/];
185
+ case 15: return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'sms-agent-runtime', phone: TEST_PHONE })];
186
+ case 16:
187
+ enduser = _p.sent();
188
+ createdEnduserIds.push(enduser.id);
189
+ return [4 /*yield*/, processFor(enduser.id)];
190
+ case 17:
191
+ startResult = _p.sent();
192
+ assert(startResult.success === true, "start failed: ".concat(startResult.error), 'start action succeeds');
193
+ return [4 /*yield*/, wait(undefined, 1000)];
194
+ case 18:
195
+ _p.sent();
196
+ return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
197
+ case 19:
198
+ refreshed = _p.sent();
199
+ entry = ((_g = refreshed.aiConversations) !== null && _g !== void 0 ? _g : []).find(function (c) { return c.active; });
200
+ assert(!!entry, 'no active aiConversations entry on enduser', 'enduser has an active conversation entry');
201
+ assert((entry === null || entry === void 0 ? void 0 : entry.destination) === TEST_PHONE, 'wrong destination on entry', 'conversation entry pairs the contact number');
202
+ return [4 /*yield*/, sdk.api.ai_conversations.getOne(entry.aiConversationId)];
203
+ case 20:
204
+ conversation = _p.sent();
205
+ assert(conversation.type === 'sms_agent', 'wrong ai_conversations type', 'ai_conversations doc has type sms_agent');
206
+ return [4 /*yield*/, sdk.api.sms_messages.getSome({ filter: { enduserId: enduser.id } })];
207
+ case 21:
208
+ initialMessages = _p.sent();
209
+ outbound = initialMessages.find(function (m) { return !m.inbound && m.automationStepId === step_1.id; });
210
+ // exact equality on a merge-field-containing opener guards two regressions: templating must
211
+ // happen in send_sms (raw text on the record), and the agent-reply {{ escaping must NOT be
212
+ // applied to the org-authored initial message (preserveMergeFields)
213
+ assert(!!outbound && outbound.message === validInfo_1.initialMessage, 'initial SMS record missing or not raw text', 'initial SMS logged with raw (untemplated) text + automationStepId');
214
+ return [4 /*yield*/, processFor(enduser.id)];
215
+ case 22:
216
+ secondStart = _p.sent();
217
+ assert(secondStart.success === true, "second start failed: ".concat(secondStart.error), 'duplicate start succeeds (replace)');
218
+ return [4 /*yield*/, wait(undefined, 1000)];
219
+ case 23:
220
+ _p.sent();
221
+ return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
222
+ case 24:
223
+ refreshed = _p.sent();
224
+ activeEntries_1 = ((_h = refreshed.aiConversations) !== null && _h !== void 0 ? _h : []).filter(function (c) { return c.active; });
225
+ assert(activeEntries_1.length === 1, 'expected exactly one active conversation', 'supersede leaves exactly one active conversation');
226
+ assert(activeEntries_1[0].aiConversationId !== entry.aiConversationId, 'active conversation was not replaced', 'supersede started a fresh conversation');
227
+ // inbound absorption via the testing hook: STOP ends the conversation
228
+ return [4 /*yield*/, sdk.api.sms_messages.createOne({
229
+ enduserId: enduser.id,
230
+ message: "stop".concat(TEST_MARKER),
231
+ inbound: true,
232
+ logOnly: true,
233
+ phoneNumber: activeEntries_1[0].source,
234
+ enduserPhoneNumber: TEST_PHONE,
235
+ })];
236
+ case 25:
237
+ // inbound absorption via the testing hook: STOP ends the conversation
238
+ _p.sent();
239
+ return [4 /*yield*/, wait(undefined, 2000)];
240
+ case 26:
241
+ _p.sent();
242
+ return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
243
+ case 27:
244
+ refreshed = _p.sent();
245
+ stopped = ((_j = refreshed.aiConversations) !== null && _j !== void 0 ? _j : []).find(function (c) { return c.aiConversationId === activeEntries_1[0].aiConversationId; });
246
+ assert((stopped === null || stopped === void 0 ? void 0 : stopped.active) === false && (stopped === null || stopped === void 0 ? void 0 : stopped.endedReason) === 'unsubscribed', "STOP did not end the conversation (".concat(JSON.stringify(stopped), ")"), 'STOP reply ends the conversation');
247
+ return [4 /*yield*/, processFor(enduser.id)];
248
+ case 28:
249
+ takeoverStart = _p.sent();
250
+ assert(takeoverStart.success === true, "takeover-start failed: ".concat(takeoverStart.error), 'start (for takeover test) succeeds');
251
+ return [4 /*yield*/, wait(undefined, 1000)];
252
+ case 29:
253
+ _p.sent();
254
+ _c = (_b = sdk.api.sms_messages).createOne;
255
+ _d = {
256
+ enduserId: enduser.id,
257
+ message: 'Hi, this is a real person taking over.',
258
+ inbound: false
259
+ };
260
+ return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
261
+ case 30: return [4 /*yield*/, _c.apply(_b, [(_d.phoneNumber = (_l = (_k = (_p.sent()).aiConversations) === null || _k === void 0 ? void 0 : _k.find(function (c) { return c.active; })) === null || _l === void 0 ? void 0 : _l.source,
262
+ _d.enduserPhoneNumber = TEST_PHONE,
263
+ _d)])];
264
+ case 31:
265
+ _p.sent();
266
+ return [4 /*yield*/, wait(undefined, 2000)];
267
+ case 32:
268
+ _p.sent();
269
+ return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
270
+ case 33:
271
+ refreshed = _p.sent();
272
+ takenOver = ((_m = refreshed.aiConversations) !== null && _m !== void 0 ? _m : []).find(function (c) { return c.endedReason === 'staff-takeover'; });
273
+ assert(!!takenOver, 'no staff-takeover ended entry found', 'manual staff SMS ends the conversation (takeover)');
274
+ return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'sms-agent-baseline', phone: '+15555555554' })];
275
+ case 34:
276
+ baselineEnduser = _p.sent();
277
+ createdEnduserIds.push(baselineEnduser.id);
278
+ return [4 /*yield*/, sdk.api.sms_messages.createOne({
279
+ enduserId: baselineEnduser.id,
280
+ message: "hello there".concat(TEST_MARKER),
281
+ inbound: true,
282
+ logOnly: true,
283
+ phoneNumber: activeEntries_1[0].source,
284
+ enduserPhoneNumber: '+15555555554',
285
+ })];
286
+ case 35:
287
+ _p.sent();
288
+ return [4 /*yield*/, wait(undefined, 2000)];
289
+ case 36:
290
+ _p.sent();
291
+ return [4 /*yield*/, sdk.api.endusers.getOne(baselineEnduser.id)];
292
+ case 37:
293
+ baselineRefreshed = _p.sent();
294
+ return [4 /*yield*/, sdk.api.sms_messages.getSome({ filter: { enduserId: baselineEnduser.id } })];
295
+ case 38:
296
+ baselineMessages = _p.sent();
297
+ assert(!((_o = baselineRefreshed.aiConversations) !== null && _o !== void 0 ? _o : []).length && !baselineMessages.find(function (m) { return !m.inbound; }), 'AI artifacts appeared for an enduser with no conversation', 'no-conversation inbound produces zero AI artifacts (regression baseline)');
298
+ return [3 /*break*/, 45];
299
+ case 39: return [4 /*yield*/, sdk.api.journeys.deleteOne(journey.id).catch(function () { })];
300
+ case 40:
301
+ _p.sent();
302
+ _i = 0, createdEnduserIds_1 = createdEnduserIds;
303
+ _p.label = 41;
304
+ case 41:
305
+ if (!(_i < createdEnduserIds_1.length)) return [3 /*break*/, 44];
306
+ id = createdEnduserIds_1[_i];
307
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(id).catch(function () { })];
308
+ case 42:
309
+ _p.sent();
310
+ _p.label = 43;
311
+ case 43:
312
+ _i++;
313
+ return [3 /*break*/, 41];
314
+ case 44: return [7 /*endfinally*/];
315
+ case 45: return [2 /*return*/];
316
+ }
317
+ });
318
+ });
319
+ };
320
+ // Allow running this test file independently
321
+ if (require.main === module) {
322
+ var sdk_1 = new Session({ host: host });
323
+ var sdkNonAdmin_1 = new Session({ host: host });
324
+ var runTests = function () { return __awaiter(void 0, void 0, void 0, function () {
325
+ return __generator(this, function (_a) {
326
+ switch (_a.label) {
327
+ case 0: return [4 /*yield*/, setup_tests(sdk_1, sdkNonAdmin_1)];
328
+ case 1:
329
+ _a.sent();
330
+ return [4 /*yield*/, start_ai_conversation_tests({ sdk: sdk_1, sdkNonAdmin: sdkNonAdmin_1 })];
331
+ case 2:
332
+ _a.sent();
333
+ return [2 /*return*/];
334
+ }
335
+ });
336
+ }); };
337
+ runTests()
338
+ .then(function () {
339
+ console.log("✅ Start AI Conversation test suite completed successfully");
340
+ process.exit(0);
341
+ })
342
+ .catch(function (error) {
343
+ console.error("❌ Start AI Conversation test suite failed:", error);
344
+ process.exit(1);
345
+ });
346
+ }
347
+ //# sourceMappingURL=start_ai_conversation.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start_ai_conversation.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/start_ai_conversation.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"AAu1EA,eAAO,MAAM,kCAAkC,qBAgJ9C,CAAA;AAED,eAAO,MAAM,mCAAmC,qBA2K/C,CAAA;AAGD,eAAO,MAAM,oBAAoB,qBAoHhC,CAAA;AAED,eAAO,MAAM,+BAA+B,qBAsF3C,CAAA;AAID,eAAO,MAAM,0BAA0B,qBAqCtC,CAAA;AAu1FD,eAAO,MAAM,cAAc,qBAqC1B,CAAA;AAotBD,eAAO,MAAM,0BAA0B,qBAmFtC,CAAA;AAqED,eAAO,MAAM,eAAe,qBAmD3B,CAAA;AAED,eAAO,MAAM,oBAAoB,6BAsBhC,CAAA;AAED,eAAO,MAAM,oCAAoC,qBA4pBhD,CAAA;AAED,eAAO,MAAM,mCAAmC,qBAkE/C,CAAA;AAqlDD,eAAO,MAAM,yBAAyB,qBA0DrC,CAAA;AAED,eAAO,MAAM,kBAAkB,qBAmK9B,CAAA;AAED,eAAO,MAAM,sBAAsB,qBA0BlC,CAAA;AAGD,eAAO,MAAM,mBAAmB,qBAmC/B,CAAA;AAED,eAAO,MAAM,gCAAgC,mCA8C5C,CAAA;AAED,eAAO,MAAM,cAAc,qBA+b1B,CAAA;AAGD,eAAO,MAAM,oBAAoB,uBAuBhC,CAAA;AA4wBD,eAAO,MAAM,4BAA4B,qBAoExC,CAAA;AAED,eAAO,MAAM,+BAA+B,qBA4U3C,CAAA;AAED,eAAO,MAAM,gDAAgD,qBAwC5D,CAAA;AAED,eAAO,MAAM,qBAAqB,qBAwIjC,CAAA"}
1
+ {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"AA21EA,eAAO,MAAM,kCAAkC,qBAgJ9C,CAAA;AAED,eAAO,MAAM,mCAAmC,qBA2K/C,CAAA;AAGD,eAAO,MAAM,oBAAoB,qBAoHhC,CAAA;AAED,eAAO,MAAM,+BAA+B,qBAsF3C,CAAA;AAID,eAAO,MAAM,0BAA0B,qBAqCtC,CAAA;AAu1FD,eAAO,MAAM,cAAc,qBAqC1B,CAAA;AAotBD,eAAO,MAAM,0BAA0B,qBAmFtC,CAAA;AAqED,eAAO,MAAM,eAAe,qBAmD3B,CAAA;AAED,eAAO,MAAM,oBAAoB,6BAsBhC,CAAA;AAED,eAAO,MAAM,oCAAoC,qBA4pBhD,CAAA;AAED,eAAO,MAAM,mCAAmC,qBAkE/C,CAAA;AAqlDD,eAAO,MAAM,yBAAyB,qBA0DrC,CAAA;AAED,eAAO,MAAM,kBAAkB,qBAmK9B,CAAA;AAED,eAAO,MAAM,sBAAsB,qBA0BlC,CAAA;AAGD,eAAO,MAAM,mBAAmB,qBAmC/B,CAAA;AAED,eAAO,MAAM,gCAAgC,mCA8C5C,CAAA;AAED,eAAO,MAAM,cAAc,qBA+b1B,CAAA;AAGD,eAAO,MAAM,oBAAoB,uBAuBhC,CAAA;AA4wBD,eAAO,MAAM,4BAA4B,qBAoExC,CAAA;AAED,eAAO,MAAM,+BAA+B,qBA4U3C,CAAA;AAED,eAAO,MAAM,gDAAgD,qBAwC5D,CAAA;AAED,eAAO,MAAM,qBAAqB,qBAwIjC,CAAA"}