@gravity-rail/sdk 0.42.0 → 0.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chat-interaction-BBBeSKGl.d.cts → chat-interaction-DKt3ggnZ.d.cts} +904 -17
- package/dist/{chat-interaction-C9dD0qbD.d.ts → chat-interaction-DMd-Wtcg.d.ts} +904 -17
- package/dist/{chunk-JTOMGNUO.js → chunk-G32MQGJD.js} +374 -6
- package/dist/chunk-G32MQGJD.js.map +1 -0
- package/dist/helpers.d.cts +4 -4
- package/dist/helpers.d.ts +4 -4
- package/dist/index.cjs +384 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -6
- package/dist/index.d.ts +6 -6
- package/dist/index.js +25 -1
- package/dist/index.js.map +1 -1
- package/dist/internal.cjs +366 -5
- package/dist/internal.cjs.map +1 -1
- package/dist/internal.d.cts +5 -5
- package/dist/internal.d.ts +5 -5
- package/dist/internal.js +17 -1
- package/dist/internal.js.map +1 -1
- package/dist/{member-import-BXReoljG.d.cts → member-import-D6KvS3Zg.d.cts} +1 -1
- package/dist/{member-import-jjfQHlWl.d.ts → member-import-mE0BhGIw.d.ts} +1 -1
- package/dist/{revision-state-Bp7WKk6z.d.cts → revision-state-BrRxp9qZ.d.ts} +30 -3
- package/dist/{revision-state-QkNQXWJC.d.ts → revision-state-Ci5a5NLH.d.cts} +30 -3
- package/dist/schemas.cjs +12 -3
- package/dist/schemas.cjs.map +1 -1
- package/dist/schemas.d.cts +10 -2
- package/dist/schemas.d.ts +10 -2
- package/dist/schemas.js +12 -3
- package/dist/schemas.js.map +1 -1
- package/dist/{tasks-BsLI-h11.d.cts → tasks-DAPby6cw.d.cts} +60 -1
- package/dist/{tasks-BsLI-h11.d.ts → tasks-DAPby6cw.d.ts} +60 -1
- package/package.json +1 -1
- package/dist/chunk-JTOMGNUO.js.map +0 -1
package/dist/helpers.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
3
|
-
import { c7 as WorkspaceMemberResponse, aT as DataRecordResponse } from './tasks-
|
|
4
|
-
export { t as toSafeMemberImportPreview, a as toSafeMemberImportSummary } from './member-import-
|
|
1
|
+
import { gq as GravityRailClient } from './chat-interaction-DKt3ggnZ.cjs';
|
|
2
|
+
export { ce as ChatInteractionController } from './chat-interaction-DKt3ggnZ.cjs';
|
|
3
|
+
import { c7 as WorkspaceMemberResponse, aT as DataRecordResponse } from './tasks-DAPby6cw.cjs';
|
|
4
|
+
export { t as toSafeMemberImportPreview, a as toSafeMemberImportSummary } from './member-import-D6KvS3Zg.cjs';
|
|
5
5
|
import 'zod';
|
|
6
6
|
|
|
7
7
|
interface OutboundPhoneNumberOption {
|
package/dist/helpers.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
3
|
-
import { c7 as WorkspaceMemberResponse, aT as DataRecordResponse } from './tasks-
|
|
4
|
-
export { t as toSafeMemberImportPreview, a as toSafeMemberImportSummary } from './member-import-
|
|
1
|
+
import { gq as GravityRailClient } from './chat-interaction-DMd-Wtcg.js';
|
|
2
|
+
export { ce as ChatInteractionController } from './chat-interaction-DMd-Wtcg.js';
|
|
3
|
+
import { c7 as WorkspaceMemberResponse, aT as DataRecordResponse } from './tasks-DAPby6cw.js';
|
|
4
|
+
export { t as toSafeMemberImportPreview, a as toSafeMemberImportSummary } from './member-import-mE0BhGIw.js';
|
|
5
5
|
import 'zod';
|
|
6
6
|
|
|
7
7
|
interface OutboundPhoneNumberOption {
|
package/dist/index.cjs
CHANGED
|
@@ -59,7 +59,10 @@ __export(src_exports, {
|
|
|
59
59
|
CalendarScheduleAvailabilityType: () => CalendarScheduleAvailabilityType,
|
|
60
60
|
CalendarScheduleRecurrence: () => CalendarScheduleRecurrence,
|
|
61
61
|
CalendarSource: () => CalendarSource,
|
|
62
|
+
CallNotAnsweredBranch: () => CallNotAnsweredBranch,
|
|
62
63
|
CapabilityClass: () => CapabilityClass,
|
|
64
|
+
CapturedEffectDirection: () => CapturedEffectDirection,
|
|
65
|
+
CapturedEffectKind: () => CapturedEffectKind,
|
|
63
66
|
ChannelMessageDirection: () => ChannelMessageDirection,
|
|
64
67
|
ChannelMessageSource: () => ChannelMessageSource,
|
|
65
68
|
ChannelMessagesUnavailableReason: () => ChannelMessagesUnavailableReason,
|
|
@@ -83,6 +86,11 @@ __export(src_exports, {
|
|
|
83
86
|
DataRecordRetirementResponseReason: () => DataRecordRetirementResponseReason,
|
|
84
87
|
DataSensitivity: () => DataSensitivity,
|
|
85
88
|
DataTypeRecordScope: () => DataTypeRecordScope,
|
|
89
|
+
DemoCallOutcome: () => DemoCallOutcome,
|
|
90
|
+
DemoRefusalCode: () => DemoRefusalCode,
|
|
91
|
+
DemoRequestError: () => DemoRequestError,
|
|
92
|
+
DemoSessionState: () => DemoSessionState,
|
|
93
|
+
DemosApi: () => DemosApi,
|
|
86
94
|
DigestSlotRole: () => DigestSlotRole,
|
|
87
95
|
DriverMode: () => DriverMode,
|
|
88
96
|
EhrWritebackOutcomeResponseStatus: () => EhrWritebackOutcomeResponseStatus,
|
|
@@ -106,6 +114,7 @@ __export(src_exports, {
|
|
|
106
114
|
ImportSkippedRuleResponseReasonCode: () => ImportSkippedRuleResponseReasonCode,
|
|
107
115
|
ImportSkippedRuleResponseStatus: () => ImportSkippedRuleResponseStatus,
|
|
108
116
|
InboundFaxStatusValues: () => InboundFaxStatus,
|
|
117
|
+
InboundRefusal: () => InboundRefusal,
|
|
109
118
|
IndexStatus: () => IndexStatus,
|
|
110
119
|
InstallationItemChangeChange: () => InstallationItemChangeChange,
|
|
111
120
|
InstallationsApi: () => InstallationsApi,
|
|
@@ -118,6 +127,7 @@ __export(src_exports, {
|
|
|
118
127
|
McpServerState: () => McpServerState,
|
|
119
128
|
MemberFeature: () => MemberFeature,
|
|
120
129
|
MemberFilterBuilder: () => MemberFilterBuilder,
|
|
130
|
+
MemberImportIssueCode: () => MemberImportIssueCode,
|
|
121
131
|
MemberImportMatchInfoMatchType: () => MemberImportMatchInfoMatchType,
|
|
122
132
|
MemberImportPreviewRowAction: () => MemberImportPreviewRowAction,
|
|
123
133
|
MemberImportValidationError: () => MemberImportValidationError,
|
|
@@ -148,6 +158,7 @@ __export(src_exports, {
|
|
|
148
158
|
PIDS_DISPOSITIONS: () => PIDS_DISPOSITIONS,
|
|
149
159
|
PIDS_SOURCES: () => PIDS_SOURCES,
|
|
150
160
|
POSITIVE_RATING_THRESHOLD: () => POSITIVE_RATING_THRESHOLD,
|
|
161
|
+
PhoneRunRefusal: () => PhoneRunRefusal,
|
|
151
162
|
ProductType: () => ProductType,
|
|
152
163
|
PromoCodeStatus: () => PromoCodeStatus,
|
|
153
164
|
QUERY_VALUELESS_OPS: () => QUERY_VALUELESS_OPS,
|
|
@@ -200,6 +211,7 @@ __export(src_exports, {
|
|
|
200
211
|
TTS_MODEL_XAI_V1: () => TTS_MODEL_XAI_V1,
|
|
201
212
|
TTS_PREVIEW_PROVIDERS: () => TTS_PREVIEW_PROVIDERS,
|
|
202
213
|
TaskBuilder: () => TaskBuilder,
|
|
214
|
+
TaskTransitionInitiator: () => TaskTransitionInitiator,
|
|
203
215
|
TemplatesApi: () => TemplatesApi,
|
|
204
216
|
TestChatRunLane: () => TestChatRunLane,
|
|
205
217
|
TestChatRunOutcome: () => TestChatRunOutcome,
|
|
@@ -886,6 +898,27 @@ var BundlesApi = class extends BaseApiClient {
|
|
|
886
898
|
async listBundleWorkflowCandidates(wid) {
|
|
887
899
|
return this.fetch(bundlesPath(wid, "workflow-candidates"));
|
|
888
900
|
}
|
|
901
|
+
/**
|
|
902
|
+
* This workspace's Journeys for the Bundle picker, by name. Nothing is built
|
|
903
|
+
* for the list. `available` is false while the server refuses Journey items.
|
|
904
|
+
* Requires `workflows:admin` and `journeys:write`.
|
|
905
|
+
*/
|
|
906
|
+
async listBundleJourneyCandidates(wid) {
|
|
907
|
+
return this.fetch(bundlesPath(wid, "journey-candidates"));
|
|
908
|
+
}
|
|
909
|
+
/**
|
|
910
|
+
* One Journey as the Bundle item that adds it: the whole Journey item the
|
|
911
|
+
* server built (`item`), the Forms its conditions read and the Workflows its
|
|
912
|
+
* actions start, or the `problems` that name what the Journey must change
|
|
913
|
+
* first. The item never carries enrollment; `enrollmentOmitted` says the
|
|
914
|
+
* Journey has automatic enrollment that was left out. Requires
|
|
915
|
+
* `workflows:admin` and `journeys:write`.
|
|
916
|
+
*/
|
|
917
|
+
async getBundleJourneyCandidate(wid, journeyUuid) {
|
|
918
|
+
return this.fetch(
|
|
919
|
+
bundlesPath(wid, "journey-candidates", journeyUuid)
|
|
920
|
+
);
|
|
921
|
+
}
|
|
889
922
|
/** Create an empty Bundle owned by this workspace. */
|
|
890
923
|
async createBundle(wid, data) {
|
|
891
924
|
return this.fetch(bundlesPath(wid), {
|
|
@@ -953,6 +986,126 @@ var BundlesApi = class extends BaseApiClient {
|
|
|
953
986
|
}
|
|
954
987
|
};
|
|
955
988
|
|
|
989
|
+
// src/types/generated/demo.ts
|
|
990
|
+
var DemoCallOutcome = {
|
|
991
|
+
answered: "answered",
|
|
992
|
+
not_answered: "not_answered"
|
|
993
|
+
};
|
|
994
|
+
var DemoRefusalCode = {
|
|
995
|
+
session_expired: "session_expired",
|
|
996
|
+
session_capped: "session_capped",
|
|
997
|
+
calls_capped: "calls_capped",
|
|
998
|
+
session_ended: "session_ended",
|
|
999
|
+
destination_not_allowed: "destination_not_allowed",
|
|
1000
|
+
sender_cannot_send: "sender_cannot_send",
|
|
1001
|
+
demo_not_available: "demo_not_available"
|
|
1002
|
+
};
|
|
1003
|
+
var DemoSessionState = {
|
|
1004
|
+
active: "active",
|
|
1005
|
+
capped: "capped",
|
|
1006
|
+
expired: "expired",
|
|
1007
|
+
ended: "ended"
|
|
1008
|
+
};
|
|
1009
|
+
|
|
1010
|
+
// src/api/demos.ts
|
|
1011
|
+
var REFUSAL_CODES = Object.values(DemoRefusalCode);
|
|
1012
|
+
var DemoRequestError = class extends ApiError {
|
|
1013
|
+
code;
|
|
1014
|
+
constructor(message, statusCode, code) {
|
|
1015
|
+
super(message, statusCode);
|
|
1016
|
+
this.name = "DemoRequestError";
|
|
1017
|
+
this.code = code;
|
|
1018
|
+
}
|
|
1019
|
+
};
|
|
1020
|
+
function refusalCode(value) {
|
|
1021
|
+
return typeof value === "string" && REFUSAL_CODES.includes(value) ? value : void 0;
|
|
1022
|
+
}
|
|
1023
|
+
var DemosApi = class extends BaseApiClient {
|
|
1024
|
+
/** Whether a Bundle has a Demo, and what a visitor may contact in it. Needs no session. */
|
|
1025
|
+
async getDemo(bundleUuid) {
|
|
1026
|
+
return this.anonymous(`demos/${encodeURIComponent(bundleUuid)}`, {
|
|
1027
|
+
method: "GET"
|
|
1028
|
+
});
|
|
1029
|
+
}
|
|
1030
|
+
/** Start a Demo session. Needs no session; `recaptchaToken` is required where reCAPTCHA is enforced. */
|
|
1031
|
+
async startDemoSession(bundleUuid, data = {}) {
|
|
1032
|
+
return this.anonymous(
|
|
1033
|
+
`demos/${encodeURIComponent(bundleUuid)}/sessions`,
|
|
1034
|
+
{ method: "POST", body: JSON.stringify(data) }
|
|
1035
|
+
);
|
|
1036
|
+
}
|
|
1037
|
+
/** Text one of the Demo's numbers as the session's Persona. */
|
|
1038
|
+
async sendDemoSessionSms(sessionToken, data) {
|
|
1039
|
+
return this.anonymous(
|
|
1040
|
+
"demos/sessions/sms",
|
|
1041
|
+
{ method: "POST", body: JSON.stringify(data) },
|
|
1042
|
+
sessionToken
|
|
1043
|
+
);
|
|
1044
|
+
}
|
|
1045
|
+
/** Email one of the Demo's inboxes as the session's Persona. Returns after the Agent's turn. */
|
|
1046
|
+
async sendDemoSessionEmail(sessionToken, data) {
|
|
1047
|
+
return this.anonymous(
|
|
1048
|
+
"demos/sessions/email",
|
|
1049
|
+
{ method: "POST", body: JSON.stringify(data) },
|
|
1050
|
+
sessionToken
|
|
1051
|
+
);
|
|
1052
|
+
}
|
|
1053
|
+
/**
|
|
1054
|
+
* Call one of the Demo's numbers as the session's Persona.
|
|
1055
|
+
*
|
|
1056
|
+
* For an `answered` call, `join` holds what a browser opens the call with:
|
|
1057
|
+
* the web voice socket `url`, a single-use login `token` for this call's
|
|
1058
|
+
* Chat, and `chatId`. Send them in `voice.login`. For a `not_answered`
|
|
1059
|
+
* call, `notAnsweredBranch` says what the number does and nothing connects.
|
|
1060
|
+
*/
|
|
1061
|
+
async placeDemoSessionCall(sessionToken, data) {
|
|
1062
|
+
return this.anonymous(
|
|
1063
|
+
"demos/sessions/call",
|
|
1064
|
+
{ method: "POST", body: JSON.stringify(data) },
|
|
1065
|
+
sessionToken
|
|
1066
|
+
);
|
|
1067
|
+
}
|
|
1068
|
+
/**
|
|
1069
|
+
* The session's own messages, oldest first, and its state. `after` returns
|
|
1070
|
+
* only the rows after that row id, so a poll reads what is new.
|
|
1071
|
+
*/
|
|
1072
|
+
async getDemoSessionTimeline(sessionToken, params) {
|
|
1073
|
+
const query = params?.after !== void 0 ? `?after=${encodeURIComponent(params.after)}` : "";
|
|
1074
|
+
return this.anonymous(
|
|
1075
|
+
`demos/sessions/timeline${query}`,
|
|
1076
|
+
{ method: "GET" },
|
|
1077
|
+
sessionToken
|
|
1078
|
+
);
|
|
1079
|
+
}
|
|
1080
|
+
/** End the session. Nothing further is captured on it. */
|
|
1081
|
+
async endDemoSession(sessionToken) {
|
|
1082
|
+
return this.anonymous(
|
|
1083
|
+
"demos/sessions/end",
|
|
1084
|
+
{ method: "POST" },
|
|
1085
|
+
sessionToken
|
|
1086
|
+
);
|
|
1087
|
+
}
|
|
1088
|
+
/**
|
|
1089
|
+
* A request that carries the Demo session token, or no credential at all.
|
|
1090
|
+
* It never sends this client's API key or the browser's cookies.
|
|
1091
|
+
*/
|
|
1092
|
+
async anonymous(endpoint, init, sessionToken) {
|
|
1093
|
+
const headers = new Headers({ "Content-Type": "application/json" });
|
|
1094
|
+
if (sessionToken) headers.set("Authorization", `Bearer ${sessionToken}`);
|
|
1095
|
+
const response = await this.fetchFunction(`${this.baseUrl}/api/v2/${endpoint}`, {
|
|
1096
|
+
...init,
|
|
1097
|
+
headers,
|
|
1098
|
+
credentials: "omit"
|
|
1099
|
+
});
|
|
1100
|
+
if (!response.ok) {
|
|
1101
|
+
const body = await response.json().catch(() => ({}));
|
|
1102
|
+
const detail = typeof body.detail === "string" ? body.detail : `Request failed (${response.status})`;
|
|
1103
|
+
throw new DemoRequestError(detail, response.status, refusalCode(body.code));
|
|
1104
|
+
}
|
|
1105
|
+
return await response.json();
|
|
1106
|
+
}
|
|
1107
|
+
};
|
|
1108
|
+
|
|
956
1109
|
// src/api/installations.ts
|
|
957
1110
|
function installationsPath(wid, ...segments) {
|
|
958
1111
|
const tail = segments.map((segment) => encodeURIComponent(String(segment))).join("/");
|
|
@@ -2277,9 +2430,25 @@ var CallsApi = class extends BaseApiClient {
|
|
|
2277
2430
|
`w/${wid}/calls${params.toString() ? `?${params.toString()}` : ""}`
|
|
2278
2431
|
);
|
|
2279
2432
|
}
|
|
2280
|
-
/**
|
|
2281
|
-
|
|
2282
|
-
|
|
2433
|
+
/**
|
|
2434
|
+
* Get message timing data for a chat recording. `source` selects whose
|
|
2435
|
+
* timeline the offsets are measured against; omitted means `standard`.
|
|
2436
|
+
*/
|
|
2437
|
+
async getMessageTiming(wid, chatId, options = {}) {
|
|
2438
|
+
const params = new URLSearchParams();
|
|
2439
|
+
if (options.source) params.set("source", options.source);
|
|
2440
|
+
return this.fetch(
|
|
2441
|
+
`w/${wid}/recordings/chat/${chatId}/message-timing${params.toString() ? `?${params.toString()}` : ""}`
|
|
2442
|
+
);
|
|
2443
|
+
}
|
|
2444
|
+
/**
|
|
2445
|
+
* Staff-only discovery of retained edge-stream capture for a chat:
|
|
2446
|
+
* whether any is retained, its aggregate coverage status, the interval it
|
|
2447
|
+
* covers, and closed reason codes. `available: false` when nothing is
|
|
2448
|
+
* retained; 403 for anyone who is not Gravity Rail staff.
|
|
2449
|
+
*/
|
|
2450
|
+
async getEdgeCaptureInfo(wid, chatId) {
|
|
2451
|
+
return this.fetch(`w/${wid}/recordings/chat/${chatId}/edge-capture`);
|
|
2283
2452
|
}
|
|
2284
2453
|
/**
|
|
2285
2454
|
* Get PHI-safe provenance metadata for the recording served by
|
|
@@ -2649,6 +2818,19 @@ var ChatsApi = class extends BaseApiClient {
|
|
|
2649
2818
|
`w/${wid}/chats/${id}/messages${params.toString() ? `?${params.toString()}` : ""}`
|
|
2650
2819
|
);
|
|
2651
2820
|
}
|
|
2821
|
+
/** Who moved the chat's Assignment between Tasks, for a time window.
|
|
2822
|
+
* Pair it with `getChatMessages`: pass the window the message page covers as
|
|
2823
|
+
* `after` / `before` (ISO-8601, inclusive). The newest `limit` moves in the
|
|
2824
|
+
* window come back, oldest first. */
|
|
2825
|
+
async getChatTaskTransitions(wid, id, options) {
|
|
2826
|
+
const params = new URLSearchParams();
|
|
2827
|
+
if (options?.after) params.append("after", options.after);
|
|
2828
|
+
if (options?.before) params.append("before", options.before);
|
|
2829
|
+
if (options?.limit) params.append("limit", options.limit.toString());
|
|
2830
|
+
return this.fetch(
|
|
2831
|
+
`w/${wid}/chats/${id}/task-transitions${params.toString() ? `?${params.toString()}` : ""}`
|
|
2832
|
+
);
|
|
2833
|
+
}
|
|
2652
2834
|
/** List the background-work thread hanging off a message.
|
|
2653
2835
|
*
|
|
2654
2836
|
* When a tool trajectory outgrows its turn it detaches and runs in the
|
|
@@ -6550,7 +6732,8 @@ var OrgApi = class extends BaseApiClient {
|
|
|
6550
6732
|
return this.fetch(`o/${orgIdOrUuid}/bundles`);
|
|
6551
6733
|
}
|
|
6552
6734
|
/**
|
|
6553
|
-
* Update the settings an org admin owns: name, slug
|
|
6735
|
+
* Update the settings an org admin owns: name, slug, contact details and
|
|
6736
|
+
* the security contact.
|
|
6554
6737
|
*
|
|
6555
6738
|
* Deliberately NOT the admin organization update — `enforceCreditLimit`
|
|
6556
6739
|
* is superuser-only and is not a field on this endpoint's request model
|
|
@@ -8149,6 +8332,18 @@ var QualificationsApi = class extends BaseApiClient {
|
|
|
8149
8332
|
async getTestChatRun(wid, runId) {
|
|
8150
8333
|
return this.fetch(`w/${wid}/qualifications/test-chat-runs/${runId}`);
|
|
8151
8334
|
}
|
|
8335
|
+
/**
|
|
8336
|
+
* What a test run would have sent: the SMS, WhatsApp, email, call,
|
|
8337
|
+
* notification and escalation it prepared, with content, oldest first.
|
|
8338
|
+
* One entry per Member reached, naming the Member and the workspace phone
|
|
8339
|
+
* number or inbox used. Nothing in the list was delivered. `truncated` means the list is
|
|
8340
|
+
* incomplete.
|
|
8341
|
+
*/
|
|
8342
|
+
async listTestChatRunCapturedEffects(wid, runId) {
|
|
8343
|
+
return this.fetch(
|
|
8344
|
+
`w/${wid}/qualifications/test-chat-runs/${runId}/captured-effects`
|
|
8345
|
+
);
|
|
8346
|
+
}
|
|
8152
8347
|
async startTestChatRun(wid, workflowId, data = {}) {
|
|
8153
8348
|
return this.fetch(
|
|
8154
8349
|
`w/${wid}/qualifications/workflows/${workflowId}/test-chat-runs`,
|
|
@@ -8158,6 +8353,50 @@ var QualificationsApi = class extends BaseApiClient {
|
|
|
8158
8353
|
}
|
|
8159
8354
|
);
|
|
8160
8355
|
}
|
|
8356
|
+
/**
|
|
8357
|
+
* Text a workspace phone number as the run's Persona. The text enters the
|
|
8358
|
+
* inbound SMS pipeline; the Agent's reply is captured on the run and never
|
|
8359
|
+
* sent. `chatId` is the Chat the text landed in.
|
|
8360
|
+
*/
|
|
8361
|
+
async deliverTestChatRunSms(wid, runId, data) {
|
|
8362
|
+
return this.fetch(
|
|
8363
|
+
`w/${wid}/qualifications/test-chat-runs/${runId}/inbound/sms`,
|
|
8364
|
+
{
|
|
8365
|
+
method: "POST",
|
|
8366
|
+
body: JSON.stringify(data)
|
|
8367
|
+
}
|
|
8368
|
+
);
|
|
8369
|
+
}
|
|
8370
|
+
/**
|
|
8371
|
+
* Email a workspace inbox as the run's Persona. The email enters the
|
|
8372
|
+
* inbound email pipeline; the call returns after the Agent's turn, and the
|
|
8373
|
+
* reply is captured on the run and never sent.
|
|
8374
|
+
*/
|
|
8375
|
+
async deliverTestChatRunEmail(wid, runId, data) {
|
|
8376
|
+
return this.fetch(
|
|
8377
|
+
`w/${wid}/qualifications/test-chat-runs/${runId}/inbound/email`,
|
|
8378
|
+
{
|
|
8379
|
+
method: "POST",
|
|
8380
|
+
body: JSON.stringify(data)
|
|
8381
|
+
}
|
|
8382
|
+
);
|
|
8383
|
+
}
|
|
8384
|
+
/**
|
|
8385
|
+
* Call a workspace phone number as the run's Persona. When the Agent
|
|
8386
|
+
* answers (`answered: true`), `chatId` is the test Chat a browser joins
|
|
8387
|
+
* over the web voice socket (`voice.login` with that Chat id). Otherwise
|
|
8388
|
+
* `notAnsweredBranch` names what the number does with the call, and
|
|
8389
|
+
* nothing is run. No carrier is dialed.
|
|
8390
|
+
*/
|
|
8391
|
+
async placeTestChatRunCall(wid, runId, data) {
|
|
8392
|
+
return this.fetch(
|
|
8393
|
+
`w/${wid}/qualifications/test-chat-runs/${runId}/inbound/call`,
|
|
8394
|
+
{
|
|
8395
|
+
method: "POST",
|
|
8396
|
+
body: JSON.stringify(data)
|
|
8397
|
+
}
|
|
8398
|
+
);
|
|
8399
|
+
}
|
|
8161
8400
|
async evaluateTestChatRun(wid, runId) {
|
|
8162
8401
|
await this.fetch(`w/${wid}/qualifications/test-chat-runs/${runId}/evaluate`, {
|
|
8163
8402
|
method: "POST"
|
|
@@ -10600,6 +10839,34 @@ var BulkMemberResultStatus = {
|
|
|
10600
10839
|
conflict: "conflict",
|
|
10601
10840
|
skipped: "skipped"
|
|
10602
10841
|
};
|
|
10842
|
+
var MemberImportIssueCode = {
|
|
10843
|
+
csv_unreadable: "csv_unreadable",
|
|
10844
|
+
too_many_rows: "too_many_rows",
|
|
10845
|
+
duplicate_column: "duplicate_column",
|
|
10846
|
+
form_column_format: "form_column_format",
|
|
10847
|
+
form_data_type_unknown: "form_data_type_unknown",
|
|
10848
|
+
form_field_unknown: "form_field_unknown",
|
|
10849
|
+
member_field_column_format: "member_field_column_format",
|
|
10850
|
+
salesforce_not_connected: "salesforce_not_connected",
|
|
10851
|
+
member_keys_unknown: "member_keys_unknown",
|
|
10852
|
+
member_keys_uncorroborated: "member_keys_uncorroborated",
|
|
10853
|
+
notify_value_invalid: "notify_value_invalid",
|
|
10854
|
+
consent_date_invalid: "consent_date_invalid",
|
|
10855
|
+
date_of_birth_invalid: "date_of_birth_invalid",
|
|
10856
|
+
conflict_resolution_invalid: "conflict_resolution_invalid",
|
|
10857
|
+
salesforce_id_invalid: "salesforce_id_invalid",
|
|
10858
|
+
member_id_invalid: "member_id_invalid",
|
|
10859
|
+
member_uuid_invalid: "member_uuid_invalid",
|
|
10860
|
+
member_id_not_found: "member_id_not_found",
|
|
10861
|
+
member_uuid_not_found: "member_uuid_not_found",
|
|
10862
|
+
member_key_conflict: "member_key_conflict",
|
|
10863
|
+
phone_invalid: "phone_invalid",
|
|
10864
|
+
email_ambiguous: "email_ambiguous",
|
|
10865
|
+
member_archived: "member_archived",
|
|
10866
|
+
role_requires_account: "role_requires_account",
|
|
10867
|
+
contact_required: "contact_required",
|
|
10868
|
+
row_invalid: "row_invalid"
|
|
10869
|
+
};
|
|
10603
10870
|
var MemberImportMatchInfoMatchType = {
|
|
10604
10871
|
id: "id",
|
|
10605
10872
|
uuid: "uuid",
|
|
@@ -11121,6 +11388,7 @@ var TestChatRunLane = {
|
|
|
11121
11388
|
text: "text",
|
|
11122
11389
|
web_realtime: "web_realtime",
|
|
11123
11390
|
core_agent_only: "core_agent_only",
|
|
11391
|
+
phone_call: "phone_call",
|
|
11124
11392
|
unsupported: "unsupported",
|
|
11125
11393
|
unknown: "unknown"
|
|
11126
11394
|
};
|
|
@@ -11134,6 +11402,52 @@ var TestChatRunOutcome = {
|
|
|
11134
11402
|
instrument_failure: "instrument_failure"
|
|
11135
11403
|
};
|
|
11136
11404
|
|
|
11405
|
+
// src/types/generated/captured_effect.ts
|
|
11406
|
+
var CapturedEffectDirection = {
|
|
11407
|
+
outbound: "outbound",
|
|
11408
|
+
inbound: "inbound"
|
|
11409
|
+
};
|
|
11410
|
+
var CapturedEffectKind = {
|
|
11411
|
+
sms: "sms",
|
|
11412
|
+
whatsapp: "whatsapp",
|
|
11413
|
+
email: "email",
|
|
11414
|
+
phone_call: "phone_call",
|
|
11415
|
+
notification: "notification",
|
|
11416
|
+
escalation: "escalation"
|
|
11417
|
+
};
|
|
11418
|
+
|
|
11419
|
+
// src/types/generated/test_call_routing.ts
|
|
11420
|
+
var CallNotAnsweredBranch = {
|
|
11421
|
+
voice_disabled: "voice_disabled",
|
|
11422
|
+
fax_line: "fax_line",
|
|
11423
|
+
rings_operators: "rings_operators",
|
|
11424
|
+
forwards: "forwards",
|
|
11425
|
+
voicemail: "voicemail",
|
|
11426
|
+
plays_message: "plays_message",
|
|
11427
|
+
no_route: "no_route",
|
|
11428
|
+
voice_unavailable: "voice_unavailable",
|
|
11429
|
+
entry_denied: "entry_denied"
|
|
11430
|
+
};
|
|
11431
|
+
|
|
11432
|
+
// src/types/generated/test_chat_run_inbound.ts
|
|
11433
|
+
var InboundRefusal = {
|
|
11434
|
+
run_not_found: "run_not_found",
|
|
11435
|
+
run_ended: "run_ended",
|
|
11436
|
+
sender_not_synthetic: "sender_not_synthetic",
|
|
11437
|
+
sender_is_anonymous: "sender_is_anonymous",
|
|
11438
|
+
sender_has_no_phone: "sender_has_no_phone",
|
|
11439
|
+
sender_has_no_email: "sender_has_no_email",
|
|
11440
|
+
destination_not_in_workspace: "destination_not_in_workspace",
|
|
11441
|
+
reply_target_not_test: "reply_target_not_test"
|
|
11442
|
+
};
|
|
11443
|
+
var PhoneRunRefusal = {
|
|
11444
|
+
call_not_answered: "call_not_answered",
|
|
11445
|
+
number_routes_to_other_workflow: "number_routes_to_other_workflow",
|
|
11446
|
+
phone_run_needs_a_person: "phone_run_needs_a_person",
|
|
11447
|
+
phone_run_needs_a_number: "phone_run_needs_a_number",
|
|
11448
|
+
number_needs_the_phone_channel: "number_needs_the_phone_channel"
|
|
11449
|
+
};
|
|
11450
|
+
|
|
11137
11451
|
// src/types/generated/qualification_health_service.ts
|
|
11138
11452
|
var ScenarioHealthCaption = {
|
|
11139
11453
|
recent_passes: "recent_passes",
|
|
@@ -11168,7 +11482,6 @@ var RevisionHistorySegment = {
|
|
|
11168
11482
|
|
|
11169
11483
|
// src/types/generated/qualification_run_identity.ts
|
|
11170
11484
|
var ScenarioRunBlocker = {
|
|
11171
|
-
missing_persona: "missing_persona",
|
|
11172
11485
|
archived_persona: "archived_persona"
|
|
11173
11486
|
};
|
|
11174
11487
|
|
|
@@ -12290,6 +12603,7 @@ function createApiModules(apiKey, baseUrl, customFetch) {
|
|
|
12290
12603
|
auth: new AuthApi(apiKey, baseUrl, customFetch),
|
|
12291
12604
|
builders: new BuildersApi(apiKey, baseUrl, customFetch),
|
|
12292
12605
|
bundles: new BundlesApi(apiKey, baseUrl, customFetch),
|
|
12606
|
+
demos: new DemosApi(apiKey, baseUrl, customFetch),
|
|
12293
12607
|
installations: new InstallationsApi(apiKey, baseUrl, customFetch),
|
|
12294
12608
|
calendars: new CalendarsApi(apiKey, baseUrl, customFetch),
|
|
12295
12609
|
calls: new CallsApi(apiKey, baseUrl, customFetch),
|
|
@@ -12653,6 +12967,7 @@ var WORKSPACE_METHOD_NAMES = [
|
|
|
12653
12967
|
"getInstallationReadiness",
|
|
12654
12968
|
"getThemeSettingsSchema",
|
|
12655
12969
|
"getBundleDraft",
|
|
12970
|
+
"getBundleJourneyCandidate",
|
|
12656
12971
|
"getBundle",
|
|
12657
12972
|
"getBundleVersion",
|
|
12658
12973
|
"getBusinessHoursStatus",
|
|
@@ -12684,6 +12999,7 @@ var WORKSPACE_METHOD_NAMES = [
|
|
|
12684
12999
|
"getChatLabels",
|
|
12685
13000
|
"getChatMachineResources",
|
|
12686
13001
|
"getChatMessages",
|
|
13002
|
+
"getChatTaskTransitions",
|
|
12687
13003
|
"getChatModelOverride",
|
|
12688
13004
|
"getChatPhoneCalls",
|
|
12689
13005
|
"getChatSkills",
|
|
@@ -12741,6 +13057,7 @@ var WORKSPACE_METHOD_NAMES = [
|
|
|
12741
13057
|
"getDocumoFaxSetup",
|
|
12742
13058
|
"listDocumoFaxes",
|
|
12743
13059
|
"getDocumoFaxStatus",
|
|
13060
|
+
"getEdgeCaptureInfo",
|
|
12744
13061
|
"getEnrollmentStatusLog",
|
|
12745
13062
|
"getEventRule",
|
|
12746
13063
|
"getEventRules",
|
|
@@ -13021,6 +13338,7 @@ var WORKSPACE_METHOD_NAMES = [
|
|
|
13021
13338
|
"listAvailableAppConnections",
|
|
13022
13339
|
"listInstallations",
|
|
13023
13340
|
"listBundleGrants",
|
|
13341
|
+
"listBundleJourneyCandidates",
|
|
13024
13342
|
"listBundleVersions",
|
|
13025
13343
|
"listBundles",
|
|
13026
13344
|
"listBundleWorkflowCandidates",
|
|
@@ -13057,6 +13375,10 @@ var WORKSPACE_METHOD_NAMES = [
|
|
|
13057
13375
|
"listSalesforceObjects",
|
|
13058
13376
|
"listScenarioHealthSummaries",
|
|
13059
13377
|
"listScenarios",
|
|
13378
|
+
"listTestChatRunCapturedEffects",
|
|
13379
|
+
"deliverTestChatRunSms",
|
|
13380
|
+
"deliverTestChatRunEmail",
|
|
13381
|
+
"placeTestChatRunCall",
|
|
13060
13382
|
"listTestChatRuns",
|
|
13061
13383
|
"listWidgetDomains",
|
|
13062
13384
|
"listWorkspaceInvitationsAdmin",
|
|
@@ -13366,6 +13688,7 @@ function bindChatsMethods(target, chats) {
|
|
|
13366
13688
|
target.updateChatMute = chats.updateChatMute.bind(chats);
|
|
13367
13689
|
target.summarizeChat = chats.summarizeChat.bind(chats);
|
|
13368
13690
|
target.getChatMessages = chats.getChatMessages.bind(chats);
|
|
13691
|
+
target.getChatTaskTransitions = chats.getChatTaskTransitions.bind(chats);
|
|
13369
13692
|
target.getChildThreadMessages = chats.getChildThreadMessages.bind(chats);
|
|
13370
13693
|
target.getChatToolCallMessages = chats.getChatToolCallMessages.bind(chats);
|
|
13371
13694
|
target.getChatTools = chats.getChatTools.bind(chats);
|
|
@@ -13400,6 +13723,7 @@ function bindCallsMethods(target, calls, cel) {
|
|
|
13400
13723
|
target.getPhoneCalls = calls.getPhoneCalls.bind(calls);
|
|
13401
13724
|
target.getMessageTiming = calls.getMessageTiming.bind(calls);
|
|
13402
13725
|
target.getRecordingInfo = calls.getRecordingInfo.bind(calls);
|
|
13726
|
+
target.getEdgeCaptureInfo = calls.getEdgeCaptureInfo.bind(calls);
|
|
13403
13727
|
target.listChatRecordings = calls.listChatRecordings.bind(calls);
|
|
13404
13728
|
target.getCallRecordingDownloadUrl = calls.getCallRecordingDownloadUrl.bind(calls);
|
|
13405
13729
|
target.getCelContext = cel.getCelContext.bind(cel);
|
|
@@ -14372,6 +14696,8 @@ function bindBundlesMethods(target, bundles, resourceWorkflows) {
|
|
|
14372
14696
|
target.listBundleInstallations = bundles.listBundleInstallations.bind(bundles);
|
|
14373
14697
|
target.listBundles = bundles.listBundles.bind(bundles);
|
|
14374
14698
|
target.listBundleWorkflowCandidates = bundles.listBundleWorkflowCandidates.bind(bundles);
|
|
14699
|
+
target.listBundleJourneyCandidates = bundles.listBundleJourneyCandidates.bind(bundles);
|
|
14700
|
+
target.getBundleJourneyCandidate = bundles.getBundleJourneyCandidate.bind(bundles);
|
|
14375
14701
|
target.createBundle = bundles.createBundle.bind(bundles);
|
|
14376
14702
|
target.getBundleDraft = bundles.getBundleDraft.bind(bundles);
|
|
14377
14703
|
target.replaceBundleDraft = bundles.replaceBundleDraft.bind(bundles);
|
|
@@ -14385,6 +14711,17 @@ function bindBundlesMethods(target, bundles, resourceWorkflows) {
|
|
|
14385
14711
|
target.listResourceWorkflows = resourceWorkflows.listResourceWorkflows.bind(resourceWorkflows);
|
|
14386
14712
|
}
|
|
14387
14713
|
|
|
14714
|
+
// src/client/bindings/demos.ts
|
|
14715
|
+
function bindDemosMethods(target, demos) {
|
|
14716
|
+
target.getDemo = demos.getDemo.bind(demos);
|
|
14717
|
+
target.startDemoSession = demos.startDemoSession.bind(demos);
|
|
14718
|
+
target.sendDemoSessionSms = demos.sendDemoSessionSms.bind(demos);
|
|
14719
|
+
target.sendDemoSessionEmail = demos.sendDemoSessionEmail.bind(demos);
|
|
14720
|
+
target.placeDemoSessionCall = demos.placeDemoSessionCall.bind(demos);
|
|
14721
|
+
target.getDemoSessionTimeline = demos.getDemoSessionTimeline.bind(demos);
|
|
14722
|
+
target.endDemoSession = demos.endDemoSession.bind(demos);
|
|
14723
|
+
}
|
|
14724
|
+
|
|
14388
14725
|
// src/client/bindings/installations.ts
|
|
14389
14726
|
function bindInstallationsMethods(target, installations) {
|
|
14390
14727
|
target.preflightBundleInstallation = installations.preflightBundleInstallation.bind(installations);
|
|
@@ -14459,6 +14796,10 @@ function bindQualificationsMethods(target, qualifications) {
|
|
|
14459
14796
|
target.listTestChatRuns = qualifications.listTestChatRuns.bind(qualifications);
|
|
14460
14797
|
target.listScenarioHealthSummaries = qualifications.listScenarioHealthSummaries.bind(qualifications);
|
|
14461
14798
|
target.getTestChatRun = qualifications.getTestChatRun.bind(qualifications);
|
|
14799
|
+
target.listTestChatRunCapturedEffects = qualifications.listTestChatRunCapturedEffects.bind(qualifications);
|
|
14800
|
+
target.deliverTestChatRunSms = qualifications.deliverTestChatRunSms.bind(qualifications);
|
|
14801
|
+
target.deliverTestChatRunEmail = qualifications.deliverTestChatRunEmail.bind(qualifications);
|
|
14802
|
+
target.placeTestChatRunCall = qualifications.placeTestChatRunCall.bind(qualifications);
|
|
14462
14803
|
target.startTestChatRun = qualifications.startTestChatRun.bind(qualifications);
|
|
14463
14804
|
target.evaluateTestChatRun = qualifications.evaluateTestChatRun.bind(qualifications);
|
|
14464
14805
|
target.endTestChatRun = qualifications.endTestChatRun.bind(qualifications);
|
|
@@ -14611,6 +14952,7 @@ var GravityRailClient = class {
|
|
|
14611
14952
|
updateChatMute;
|
|
14612
14953
|
summarizeChat;
|
|
14613
14954
|
getChatMessages;
|
|
14955
|
+
getChatTaskTransitions;
|
|
14614
14956
|
getChildThreadMessages;
|
|
14615
14957
|
getChatToolCallMessages;
|
|
14616
14958
|
getChatTools;
|
|
@@ -14642,6 +14984,7 @@ var GravityRailClient = class {
|
|
|
14642
14984
|
getPhoneCalls;
|
|
14643
14985
|
getMessageTiming;
|
|
14644
14986
|
getRecordingInfo;
|
|
14987
|
+
getEdgeCaptureInfo;
|
|
14645
14988
|
listChatRecordings;
|
|
14646
14989
|
getCallRecordingDownloadUrl;
|
|
14647
14990
|
getCelContext;
|
|
@@ -14785,6 +15128,10 @@ var GravityRailClient = class {
|
|
|
14785
15128
|
listTestChatRuns;
|
|
14786
15129
|
listScenarioHealthSummaries;
|
|
14787
15130
|
getTestChatRun;
|
|
15131
|
+
listTestChatRunCapturedEffects;
|
|
15132
|
+
deliverTestChatRunSms;
|
|
15133
|
+
deliverTestChatRunEmail;
|
|
15134
|
+
placeTestChatRunCall;
|
|
14788
15135
|
startTestChatRun;
|
|
14789
15136
|
evaluateTestChatRun;
|
|
14790
15137
|
endTestChatRun;
|
|
@@ -14896,6 +15243,14 @@ var GravityRailClient = class {
|
|
|
14896
15243
|
createJourneyNote;
|
|
14897
15244
|
updateJourneyNote;
|
|
14898
15245
|
deleteJourneyNote;
|
|
15246
|
+
// Demos API
|
|
15247
|
+
getDemo;
|
|
15248
|
+
startDemoSession;
|
|
15249
|
+
sendDemoSessionSms;
|
|
15250
|
+
sendDemoSessionEmail;
|
|
15251
|
+
placeDemoSessionCall;
|
|
15252
|
+
getDemoSessionTimeline;
|
|
15253
|
+
endDemoSession;
|
|
14899
15254
|
updateBundle;
|
|
14900
15255
|
listBundleInstallations;
|
|
14901
15256
|
// Bundles API
|
|
@@ -14903,6 +15258,8 @@ var GravityRailClient = class {
|
|
|
14903
15258
|
getPublicBundle;
|
|
14904
15259
|
listBundles;
|
|
14905
15260
|
listBundleWorkflowCandidates;
|
|
15261
|
+
listBundleJourneyCandidates;
|
|
15262
|
+
getBundleJourneyCandidate;
|
|
14906
15263
|
createBundle;
|
|
14907
15264
|
getBundleDraft;
|
|
14908
15265
|
replaceBundleDraft;
|
|
@@ -15756,6 +16113,7 @@ var GravityRailClient = class {
|
|
|
15756
16113
|
bindTrackedLinksMethods(this, apis.trackedLinks);
|
|
15757
16114
|
bindJourneysMethods(this, apis.journeys);
|
|
15758
16115
|
bindBundlesMethods(this, apis.bundles, apis.resourceWorkflows);
|
|
16116
|
+
bindDemosMethods(this, apis.demos);
|
|
15759
16117
|
bindInstallationsMethods(this, apis.installations);
|
|
15760
16118
|
bindExperimentsMethods(this, apis.experiments);
|
|
15761
16119
|
bindOperatorMethods(this, apis.operatorGroups);
|
|
@@ -18539,6 +18897,15 @@ var ChatMuteReason = {
|
|
|
18539
18897
|
not_mine: "not_mine"
|
|
18540
18898
|
};
|
|
18541
18899
|
|
|
18900
|
+
// src/types/generated/assignment_task_transition.ts
|
|
18901
|
+
var TaskTransitionInitiator = {
|
|
18902
|
+
member: "member",
|
|
18903
|
+
agent: "agent",
|
|
18904
|
+
event_rule: "event_rule",
|
|
18905
|
+
auto_next: "auto_next",
|
|
18906
|
+
system: "system"
|
|
18907
|
+
};
|
|
18908
|
+
|
|
18542
18909
|
// src/types/generated/ehr_writeback.ts
|
|
18543
18910
|
var EhrWritebackOutcomeResponseStatus = {
|
|
18544
18911
|
accepted: "accepted",
|
|
@@ -19946,7 +20313,10 @@ function toSafeMemberImportSummary(event) {
|
|
|
19946
20313
|
CalendarScheduleAvailabilityType,
|
|
19947
20314
|
CalendarScheduleRecurrence,
|
|
19948
20315
|
CalendarSource,
|
|
20316
|
+
CallNotAnsweredBranch,
|
|
19949
20317
|
CapabilityClass,
|
|
20318
|
+
CapturedEffectDirection,
|
|
20319
|
+
CapturedEffectKind,
|
|
19950
20320
|
ChannelMessageDirection,
|
|
19951
20321
|
ChannelMessageSource,
|
|
19952
20322
|
ChannelMessagesUnavailableReason,
|
|
@@ -19970,6 +20340,11 @@ function toSafeMemberImportSummary(event) {
|
|
|
19970
20340
|
DataRecordRetirementResponseReason,
|
|
19971
20341
|
DataSensitivity,
|
|
19972
20342
|
DataTypeRecordScope,
|
|
20343
|
+
DemoCallOutcome,
|
|
20344
|
+
DemoRefusalCode,
|
|
20345
|
+
DemoRequestError,
|
|
20346
|
+
DemoSessionState,
|
|
20347
|
+
DemosApi,
|
|
19973
20348
|
DigestSlotRole,
|
|
19974
20349
|
DriverMode,
|
|
19975
20350
|
EhrWritebackOutcomeResponseStatus,
|
|
@@ -19993,6 +20368,7 @@ function toSafeMemberImportSummary(event) {
|
|
|
19993
20368
|
ImportSkippedRuleResponseReasonCode,
|
|
19994
20369
|
ImportSkippedRuleResponseStatus,
|
|
19995
20370
|
InboundFaxStatusValues,
|
|
20371
|
+
InboundRefusal,
|
|
19996
20372
|
IndexStatus,
|
|
19997
20373
|
InstallationItemChangeChange,
|
|
19998
20374
|
InstallationsApi,
|
|
@@ -20005,6 +20381,7 @@ function toSafeMemberImportSummary(event) {
|
|
|
20005
20381
|
McpServerState,
|
|
20006
20382
|
MemberFeature,
|
|
20007
20383
|
MemberFilterBuilder,
|
|
20384
|
+
MemberImportIssueCode,
|
|
20008
20385
|
MemberImportMatchInfoMatchType,
|
|
20009
20386
|
MemberImportPreviewRowAction,
|
|
20010
20387
|
MemberImportValidationError,
|
|
@@ -20035,6 +20412,7 @@ function toSafeMemberImportSummary(event) {
|
|
|
20035
20412
|
PIDS_DISPOSITIONS,
|
|
20036
20413
|
PIDS_SOURCES,
|
|
20037
20414
|
POSITIVE_RATING_THRESHOLD,
|
|
20415
|
+
PhoneRunRefusal,
|
|
20038
20416
|
ProductType,
|
|
20039
20417
|
PromoCodeStatus,
|
|
20040
20418
|
QUERY_VALUELESS_OPS,
|
|
@@ -20087,6 +20465,7 @@ function toSafeMemberImportSummary(event) {
|
|
|
20087
20465
|
TTS_MODEL_XAI_V1,
|
|
20088
20466
|
TTS_PREVIEW_PROVIDERS,
|
|
20089
20467
|
TaskBuilder,
|
|
20468
|
+
TaskTransitionInitiator,
|
|
20090
20469
|
TemplatesApi,
|
|
20091
20470
|
TestChatRunLane,
|
|
20092
20471
|
TestChatRunOutcome,
|