@gravity-rail/sdk 0.5.1 → 0.7.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/agui.cjs +78 -0
- package/dist/agui.cjs.map +1 -0
- package/dist/agui.d.cts +13 -0
- package/dist/agui.d.ts +13 -0
- package/dist/agui.js +48 -0
- package/dist/agui.js.map +1 -0
- package/dist/audio.cjs +223 -0
- package/dist/audio.cjs.map +1 -0
- package/dist/audio.d.cts +25 -0
- package/dist/audio.d.ts +25 -0
- package/dist/audio.js +147 -0
- package/dist/audio.js.map +1 -0
- package/dist/chunk-BSOOMHW6.js +62 -0
- package/dist/chunk-BSOOMHW6.js.map +1 -0
- package/dist/{chunk-XRKRVY46.js → chunk-PEWFZXNK.js} +194 -31
- package/dist/chunk-PEWFZXNK.js.map +1 -0
- package/dist/{index-BhUZfOAG.d.cts → client-CLxHFOeB.d.cts} +310 -1632
- package/dist/{index-fPswHAIF.d.ts → client-Dft3Kmkn.d.ts} +310 -1632
- package/dist/helpers.cjs +123 -0
- package/dist/helpers.cjs.map +1 -0
- package/dist/helpers.d.cts +28 -0
- package/dist/helpers.d.ts +28 -0
- package/dist/helpers.js +92 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index-CeVDRf6l.d.cts +1607 -0
- package/dist/index-D1G8EKz2.d.ts +1607 -0
- package/dist/index.cjs +186 -30
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +1 -1
- package/dist/{inquiries-DiTDrTG2.d.cts → inquiries-BIlL6Obb.d.cts} +28 -3
- package/dist/{inquiries-DiTDrTG2.d.ts → inquiries-BIlL6Obb.d.ts} +28 -3
- package/dist/internal.cjs +195 -30
- package/dist/internal.cjs.map +1 -1
- package/dist/internal.d.cts +4 -3
- package/dist/internal.d.ts +4 -3
- package/dist/internal.js +5 -1
- package/dist/oauth-client.cjs +78 -0
- package/dist/oauth-client.cjs.map +1 -0
- package/dist/oauth-client.d.cts +15 -0
- package/dist/oauth-client.d.ts +15 -0
- package/dist/oauth-client.js +48 -0
- package/dist/oauth-client.js.map +1 -0
- package/dist/realtime.cjs +637 -0
- package/dist/realtime.cjs.map +1 -0
- package/dist/realtime.d.cts +94 -0
- package/dist/realtime.d.ts +94 -0
- package/dist/realtime.js +580 -0
- package/dist/realtime.js.map +1 -0
- package/dist/schemas.cjs +7 -3
- package/dist/schemas.cjs.map +1 -1
- package/dist/schemas.d.cts +28 -6
- package/dist/schemas.d.ts +28 -6
- package/dist/schemas.js +6 -3
- package/dist/schemas.js.map +1 -1
- package/dist/types-DkYyrvoC.d.cts +19 -0
- package/dist/types-DkYyrvoC.d.ts +19 -0
- package/package.json +26 -1
- package/dist/chunk-XRKRVY46.js.map +0 -1
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// src/audio/pcm.ts
|
|
2
|
+
var SERVER_SAMPLE_RATE = 24e3;
|
|
3
|
+
var TARGET_SAMPLE_RATE = 24e3;
|
|
4
|
+
var MONITOR_SAMPLE_RATE = 16e3;
|
|
5
|
+
function float32ArrayToBase64(float32Array) {
|
|
6
|
+
const int16Array = new Int16Array(float32Array.length);
|
|
7
|
+
for (let i = 0; i < float32Array.length; i += 1) {
|
|
8
|
+
const sample = Math.max(-1, Math.min(1, float32Array[i]));
|
|
9
|
+
int16Array[i] = Math.round(sample * 32767);
|
|
10
|
+
}
|
|
11
|
+
const uint8Array = new Uint8Array(int16Array.buffer);
|
|
12
|
+
let binaryString = "";
|
|
13
|
+
for (let i = 0; i < uint8Array.length; i += 1) {
|
|
14
|
+
binaryString += String.fromCharCode(uint8Array[i]);
|
|
15
|
+
}
|
|
16
|
+
return btoa(binaryString);
|
|
17
|
+
}
|
|
18
|
+
function base64ToFloat32Array(base64) {
|
|
19
|
+
const binaryString = atob(base64);
|
|
20
|
+
const len = binaryString.length / 2;
|
|
21
|
+
const float32Array = new Float32Array(len);
|
|
22
|
+
for (let i = 0; i < len; i += 1) {
|
|
23
|
+
const lo = binaryString.charCodeAt(i * 2);
|
|
24
|
+
const hi = binaryString.charCodeAt(i * 2 + 1);
|
|
25
|
+
let int16 = hi << 8 | lo;
|
|
26
|
+
if (int16 >= 32768) int16 -= 65536;
|
|
27
|
+
float32Array[i] = int16 / 32768;
|
|
28
|
+
}
|
|
29
|
+
return float32Array;
|
|
30
|
+
}
|
|
31
|
+
function concatFloat32Arrays(arrays) {
|
|
32
|
+
const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);
|
|
33
|
+
const result = new Float32Array(totalLength);
|
|
34
|
+
let offset = 0;
|
|
35
|
+
for (const arr of arrays) {
|
|
36
|
+
result.set(arr, offset);
|
|
37
|
+
offset += arr.length;
|
|
38
|
+
}
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
function downsampleAudio(audioData, originalSampleRate, targetSampleRate) {
|
|
42
|
+
if (originalSampleRate === targetSampleRate) return audioData;
|
|
43
|
+
const ratio = originalSampleRate / targetSampleRate;
|
|
44
|
+
const newLength = Math.round(audioData.length / ratio);
|
|
45
|
+
const result = new Float32Array(newLength);
|
|
46
|
+
for (let i = 0; i < newLength; i += 1) {
|
|
47
|
+
const srcIndex = Math.floor(i * ratio);
|
|
48
|
+
result[i] = audioData[srcIndex];
|
|
49
|
+
}
|
|
50
|
+
return result;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export {
|
|
54
|
+
SERVER_SAMPLE_RATE,
|
|
55
|
+
TARGET_SAMPLE_RATE,
|
|
56
|
+
MONITOR_SAMPLE_RATE,
|
|
57
|
+
float32ArrayToBase64,
|
|
58
|
+
base64ToFloat32Array,
|
|
59
|
+
concatFloat32Arrays,
|
|
60
|
+
downsampleAudio
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=chunk-BSOOMHW6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/audio/pcm.ts"],"sourcesContent":["/** PCM16 helpers aligned with main-app web voice (24 kHz). */\n\nexport const SERVER_SAMPLE_RATE = 24000;\nexport const TARGET_SAMPLE_RATE = 24000;\nexport const MONITOR_SAMPLE_RATE = 16000;\n\nexport function float32ArrayToBase64(float32Array: Float32Array): string {\n const int16Array = new Int16Array(float32Array.length);\n for (let i = 0; i < float32Array.length; i += 1) {\n const sample = Math.max(-1, Math.min(1, float32Array[i]));\n int16Array[i] = Math.round(sample * 32767);\n }\n const uint8Array = new Uint8Array(int16Array.buffer);\n let binaryString = '';\n for (let i = 0; i < uint8Array.length; i += 1) {\n binaryString += String.fromCharCode(uint8Array[i]);\n }\n return btoa(binaryString);\n}\n\nexport function base64ToFloat32Array(base64: string): Float32Array {\n const binaryString = atob(base64);\n const len = binaryString.length / 2;\n const float32Array = new Float32Array(len);\n for (let i = 0; i < len; i += 1) {\n const lo = binaryString.charCodeAt(i * 2);\n const hi = binaryString.charCodeAt(i * 2 + 1);\n let int16 = (hi << 8) | lo;\n if (int16 >= 0x8000) int16 -= 0x10000;\n float32Array[i] = int16 / 32768;\n }\n return float32Array;\n}\n\nexport function concatFloat32Arrays(arrays: Float32Array[]): Float32Array {\n const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);\n const result = new Float32Array(totalLength);\n let offset = 0;\n for (const arr of arrays) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n}\n\nexport function downsampleAudio(\n audioData: Float32Array,\n originalSampleRate: number,\n targetSampleRate: number\n): Float32Array {\n if (originalSampleRate === targetSampleRate) return audioData;\n const ratio = originalSampleRate / targetSampleRate;\n const newLength = Math.round(audioData.length / ratio);\n const result = new Float32Array(newLength);\n for (let i = 0; i < newLength; i += 1) {\n const srcIndex = Math.floor(i * ratio);\n result[i] = audioData[srcIndex];\n }\n return result;\n}\n"],"mappings":";AAEO,IAAM,qBAAqB;AAC3B,IAAM,qBAAqB;AAC3B,IAAM,sBAAsB;AAE5B,SAAS,qBAAqB,cAAoC;AACtE,QAAM,aAAa,IAAI,WAAW,aAAa,MAAM;AACrD,WAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK,GAAG;AAC9C,UAAM,SAAS,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC;AACxD,eAAW,CAAC,IAAI,KAAK,MAAM,SAAS,KAAK;AAAA,EAC5C;AACA,QAAM,aAAa,IAAI,WAAW,WAAW,MAAM;AACnD,MAAI,eAAe;AACnB,WAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK,GAAG;AAC5C,oBAAgB,OAAO,aAAa,WAAW,CAAC,CAAC;AAAA,EACpD;AACA,SAAO,KAAK,YAAY;AAC3B;AAEO,SAAS,qBAAqB,QAA8B;AAChE,QAAM,eAAe,KAAK,MAAM;AAChC,QAAM,MAAM,aAAa,SAAS;AAClC,QAAM,eAAe,IAAI,aAAa,GAAG;AACzC,WAAS,IAAI,GAAG,IAAI,KAAK,KAAK,GAAG;AAC9B,UAAM,KAAK,aAAa,WAAW,IAAI,CAAC;AACxC,UAAM,KAAK,aAAa,WAAW,IAAI,IAAI,CAAC;AAC5C,QAAI,QAAS,MAAM,IAAK;AACxB,QAAI,SAAS,MAAQ,UAAS;AAC9B,iBAAa,CAAC,IAAI,QAAQ;AAAA,EAC7B;AACA,SAAO;AACV;AAEO,SAAS,oBAAoB,QAAsC;AACvE,QAAM,cAAc,OAAO,OAAO,CAAC,KAAK,QAAQ,MAAM,IAAI,QAAQ,CAAC;AACnE,QAAM,SAAS,IAAI,aAAa,WAAW;AAC3C,MAAI,SAAS;AACb,aAAW,OAAO,QAAQ;AACvB,WAAO,IAAI,KAAK,MAAM;AACtB,cAAU,IAAI;AAAA,EACjB;AACA,SAAO;AACV;AAEO,SAAS,gBACb,WACA,oBACA,kBACa;AACb,MAAI,uBAAuB,iBAAkB,QAAO;AACpD,QAAM,QAAQ,qBAAqB;AACnC,QAAM,YAAY,KAAK,MAAM,UAAU,SAAS,KAAK;AACrD,QAAM,SAAS,IAAI,aAAa,SAAS;AACzC,WAAS,IAAI,GAAG,IAAI,WAAW,KAAK,GAAG;AACpC,UAAM,WAAW,KAAK,MAAM,IAAI,KAAK;AACrC,WAAO,CAAC,IAAI,UAAU,QAAQ;AAAA,EACjC;AACA,SAAO;AACV;","names":[]}
|
|
@@ -1693,6 +1693,22 @@ var ChatsApi = class extends BaseApiClient {
|
|
|
1693
1693
|
body: JSON.stringify(chat)
|
|
1694
1694
|
});
|
|
1695
1695
|
}
|
|
1696
|
+
/**
|
|
1697
|
+
* Create a workflow assignment chat on `phone-voice` and initiate an outbound call
|
|
1698
|
+
* to the member (same as POST /chats with channel phone-voice + send_initial_message).
|
|
1699
|
+
*/
|
|
1700
|
+
async createWorkflowOutboundVoiceChat(wid, input) {
|
|
1701
|
+
const { memberId, workflowId, phoneNumberId, title, chatType } = input;
|
|
1702
|
+
return this.createChat(wid, {
|
|
1703
|
+
channel: "phone-voice",
|
|
1704
|
+
chatType: chatType ?? "assignment",
|
|
1705
|
+
workflowId,
|
|
1706
|
+
phoneNumberId,
|
|
1707
|
+
memberId,
|
|
1708
|
+
title: title ?? `Outbound voice \u2192 member ${memberId}`,
|
|
1709
|
+
participants: [{ memberId, role: "user" }]
|
|
1710
|
+
});
|
|
1711
|
+
}
|
|
1696
1712
|
/** Delete a chat, optionally providing a reason. */
|
|
1697
1713
|
async deleteChat(wid, id, reason) {
|
|
1698
1714
|
return this.fetch(`w/${wid}/chats/${id}`, {
|
|
@@ -4465,7 +4481,7 @@ var OrgApi = class extends BaseApiClient {
|
|
|
4465
4481
|
);
|
|
4466
4482
|
}
|
|
4467
4483
|
/**
|
|
4468
|
-
* Purchase a phone number from Twilio for this org.
|
|
4484
|
+
* Purchase a phone number from Twilio for this org inventory (org admin only).
|
|
4469
4485
|
*/
|
|
4470
4486
|
async purchasePhoneNumber(orgUuid, phoneNumber, numberType) {
|
|
4471
4487
|
return this.fetch(`o/${orgUuid}/phone-numbers/purchase`, {
|
|
@@ -4892,31 +4908,6 @@ var PhoneNumbersApi = class extends BaseApiClient {
|
|
|
4892
4908
|
body: JSON.stringify({ providerPhoneUuid })
|
|
4893
4909
|
});
|
|
4894
4910
|
}
|
|
4895
|
-
async searchAvailablePhoneNumbers(wid, params) {
|
|
4896
|
-
const searchParams = new URLSearchParams();
|
|
4897
|
-
if (params.country) searchParams.set("country", params.country);
|
|
4898
|
-
if (params.numberType) searchParams.set("number_type", params.numberType);
|
|
4899
|
-
if (params.areaCode) searchParams.set("area_code", params.areaCode);
|
|
4900
|
-
if (params.contains) searchParams.set("contains", params.contains);
|
|
4901
|
-
if (params.city) searchParams.set("city", params.city);
|
|
4902
|
-
if (params.state) searchParams.set("state", params.state);
|
|
4903
|
-
if (params.limit) searchParams.set("limit", String(params.limit));
|
|
4904
|
-
const qs = searchParams.toString();
|
|
4905
|
-
return this.fetch(
|
|
4906
|
-
`w/${wid}/phone-numbers/search${qs ? `?${qs}` : ""}`
|
|
4907
|
-
);
|
|
4908
|
-
}
|
|
4909
|
-
async purchasePhoneNumber(wid, request, idempotencyKey) {
|
|
4910
|
-
const headers = {};
|
|
4911
|
-
if (idempotencyKey) {
|
|
4912
|
-
headers["Idempotency-Key"] = idempotencyKey;
|
|
4913
|
-
}
|
|
4914
|
-
return this.fetch(`w/${wid}/phone-numbers/purchase`, {
|
|
4915
|
-
method: "POST",
|
|
4916
|
-
body: JSON.stringify(request),
|
|
4917
|
-
headers
|
|
4918
|
-
});
|
|
4919
|
-
}
|
|
4920
4911
|
async releasePhoneNumber(wid, id) {
|
|
4921
4912
|
return this.fetch(`w/${wid}/phone-numbers/${id}/release`, {
|
|
4922
4913
|
method: "POST"
|
|
@@ -5913,6 +5904,20 @@ var SupportRequestsApi = class extends BaseApiClient {
|
|
|
5913
5904
|
body: JSON.stringify(data)
|
|
5914
5905
|
});
|
|
5915
5906
|
}
|
|
5907
|
+
/**
|
|
5908
|
+
* Record a click on a pushed resource (Proactive Support). For a
|
|
5909
|
+
* manager_prompt, pass the Manager Chat UUID it opened so the
|
|
5910
|
+
* resource→chat linkage is preserved.
|
|
5911
|
+
*/
|
|
5912
|
+
async clickWorkspaceSupportRequestResource(workspaceUuid, uuid, resourceUuid, data = {}) {
|
|
5913
|
+
return this.fetch(
|
|
5914
|
+
`w/${workspaceUuid}/support-requests/${uuid}/resources/${resourceUuid}/click`,
|
|
5915
|
+
{
|
|
5916
|
+
method: "POST",
|
|
5917
|
+
body: JSON.stringify(data)
|
|
5918
|
+
}
|
|
5919
|
+
);
|
|
5920
|
+
}
|
|
5916
5921
|
};
|
|
5917
5922
|
|
|
5918
5923
|
// src/api/customers.ts
|
|
@@ -6726,6 +6731,9 @@ var Scope = /* @__PURE__ */ ((Scope2) => {
|
|
|
6726
6731
|
Scope2["JOURNEYS_READ"] = "journeys:read";
|
|
6727
6732
|
Scope2["JOURNEYS_WRITE"] = "journeys:write";
|
|
6728
6733
|
Scope2["JOURNEYS_ADMIN"] = "journeys:admin";
|
|
6734
|
+
Scope2["EXPERIMENTS_READ"] = "experiments:read";
|
|
6735
|
+
Scope2["EXPERIMENTS_WRITE"] = "experiments:write";
|
|
6736
|
+
Scope2["EXPERIMENTS_ADMIN"] = "experiments:admin";
|
|
6729
6737
|
Scope2["WORKFLOWS_READ"] = "workflows:read";
|
|
6730
6738
|
Scope2["WORKFLOWS_WRITE"] = "workflows:write";
|
|
6731
6739
|
Scope2["WORKFLOWS_ADMIN"] = "workflows:admin";
|
|
@@ -6903,6 +6911,7 @@ var WorkspaceFeature = /* @__PURE__ */ ((WorkspaceFeature2) => {
|
|
|
6903
6911
|
WorkspaceFeature2["CALENDAR"] = "calendar";
|
|
6904
6912
|
WorkspaceFeature2["DIRECT_MESSAGES"] = "direct_messages";
|
|
6905
6913
|
WorkspaceFeature2["JOURNEYS"] = "journeys";
|
|
6914
|
+
WorkspaceFeature2["EXPERIMENTS"] = "experiments";
|
|
6906
6915
|
WorkspaceFeature2["OPERATOR"] = "operator";
|
|
6907
6916
|
WorkspaceFeature2["PRESENCE"] = "presence";
|
|
6908
6917
|
WorkspaceFeature2["GMAIL"] = "gmail";
|
|
@@ -7113,6 +7122,11 @@ var ConsentMethod = /* @__PURE__ */ ((ConsentMethod2) => {
|
|
|
7113
7122
|
return ConsentMethod2;
|
|
7114
7123
|
})(ConsentMethod || {});
|
|
7115
7124
|
|
|
7125
|
+
// src/types/experiment-types.ts
|
|
7126
|
+
function parseExperimentStatCount(value) {
|
|
7127
|
+
return typeof value === "number" ? value : null;
|
|
7128
|
+
}
|
|
7129
|
+
|
|
7116
7130
|
// src/types/agent-task-types.ts
|
|
7117
7131
|
var TERMINAL_TASK_STATES = [
|
|
7118
7132
|
"TASK_STATE_COMPLETED",
|
|
@@ -7641,6 +7655,99 @@ var TeamsAppsApi = class extends BaseApiClient {
|
|
|
7641
7655
|
}
|
|
7642
7656
|
};
|
|
7643
7657
|
|
|
7658
|
+
// src/api/experiments.ts
|
|
7659
|
+
var ExperimentsApi = class extends BaseApiClient {
|
|
7660
|
+
/** List experiments with group summaries and assignment counts. */
|
|
7661
|
+
async getExperiments(wid, params) {
|
|
7662
|
+
const query = new URLSearchParams();
|
|
7663
|
+
if (params?.page !== void 0) query.set("page", String(params.page));
|
|
7664
|
+
if (params?.pageSize !== void 0) query.set("pageSize", String(params.pageSize));
|
|
7665
|
+
if (params?.includeArchived) query.set("includeArchived", "true");
|
|
7666
|
+
const qs = query.toString() ? `?${query.toString()}` : "";
|
|
7667
|
+
return this.fetch(`w/${wid}/experiments${qs}`);
|
|
7668
|
+
}
|
|
7669
|
+
/** Get a single experiment by ID (includes groups). */
|
|
7670
|
+
async getExperiment(wid, experimentId) {
|
|
7671
|
+
return this.fetch(`w/${wid}/experiments/${experimentId}`);
|
|
7672
|
+
}
|
|
7673
|
+
/** Create a draft experiment. */
|
|
7674
|
+
async createExperiment(wid, data) {
|
|
7675
|
+
return this.fetch(`w/${wid}/experiments`, {
|
|
7676
|
+
method: "POST",
|
|
7677
|
+
body: JSON.stringify(data)
|
|
7678
|
+
});
|
|
7679
|
+
}
|
|
7680
|
+
/** Update experiment metadata or lifecycle status. */
|
|
7681
|
+
async updateExperiment(wid, experimentId, data) {
|
|
7682
|
+
return this.fetch(`w/${wid}/experiments/${experimentId}`, {
|
|
7683
|
+
method: "PATCH",
|
|
7684
|
+
body: JSON.stringify(data)
|
|
7685
|
+
});
|
|
7686
|
+
}
|
|
7687
|
+
/** Hard-delete a draft experiment, or archive otherwise. */
|
|
7688
|
+
async deleteExperiment(wid, experimentId) {
|
|
7689
|
+
return this.fetch(`w/${wid}/experiments/${experimentId}`, {
|
|
7690
|
+
method: "DELETE"
|
|
7691
|
+
});
|
|
7692
|
+
}
|
|
7693
|
+
/** Create a group within an experiment. */
|
|
7694
|
+
async createExperimentGroup(wid, experimentId, data) {
|
|
7695
|
+
return this.fetch(`w/${wid}/experiments/${experimentId}/groups`, {
|
|
7696
|
+
method: "POST",
|
|
7697
|
+
body: JSON.stringify(data)
|
|
7698
|
+
});
|
|
7699
|
+
}
|
|
7700
|
+
/** Update a group within an experiment. */
|
|
7701
|
+
async updateExperimentGroup(wid, experimentId, groupId, data) {
|
|
7702
|
+
return this.fetch(`w/${wid}/experiments/${experimentId}/groups/${groupId}`, {
|
|
7703
|
+
method: "PATCH",
|
|
7704
|
+
body: JSON.stringify(data)
|
|
7705
|
+
});
|
|
7706
|
+
}
|
|
7707
|
+
/** Delete a group that has no member assignments. */
|
|
7708
|
+
async deleteExperimentGroup(wid, experimentId, groupId) {
|
|
7709
|
+
return this.fetch(
|
|
7710
|
+
`w/${wid}/experiments/${experimentId}/groups/${groupId}`,
|
|
7711
|
+
{ method: "DELETE" }
|
|
7712
|
+
);
|
|
7713
|
+
}
|
|
7714
|
+
/** Aggregate assignment and exposure counts by group. */
|
|
7715
|
+
async getExperimentStats(wid, experimentId) {
|
|
7716
|
+
return this.fetch(`w/${wid}/experiments/${experimentId}/stats`);
|
|
7717
|
+
}
|
|
7718
|
+
/** List experiment assignments for a member (member profile panel). */
|
|
7719
|
+
async getMemberExperiments(wid, memberId) {
|
|
7720
|
+
return this.fetch(`w/${wid}/members/${memberId}/experiments`);
|
|
7721
|
+
}
|
|
7722
|
+
/** Manually assign a member to an experiment (optional group, or weighted random). */
|
|
7723
|
+
async createExperimentAssignment(wid, experimentId, data) {
|
|
7724
|
+
return this.fetch(
|
|
7725
|
+
`w/${wid}/experiments/${experimentId}/assignments`,
|
|
7726
|
+
{
|
|
7727
|
+
method: "POST",
|
|
7728
|
+
body: JSON.stringify(data)
|
|
7729
|
+
}
|
|
7730
|
+
);
|
|
7731
|
+
}
|
|
7732
|
+
/** Move an assigned member to a different experiment group. */
|
|
7733
|
+
async updateExperimentAssignment(wid, experimentId, memberId, data) {
|
|
7734
|
+
return this.fetch(
|
|
7735
|
+
`w/${wid}/experiments/${experimentId}/assignments/${memberId}`,
|
|
7736
|
+
{
|
|
7737
|
+
method: "PATCH",
|
|
7738
|
+
body: JSON.stringify(data)
|
|
7739
|
+
}
|
|
7740
|
+
);
|
|
7741
|
+
}
|
|
7742
|
+
/** Remove a member's assignment from an experiment. */
|
|
7743
|
+
async deleteExperimentAssignment(wid, experimentId, memberId) {
|
|
7744
|
+
return this.fetch(
|
|
7745
|
+
`w/${wid}/experiments/${experimentId}/assignments/${memberId}`,
|
|
7746
|
+
{ method: "DELETE" }
|
|
7747
|
+
);
|
|
7748
|
+
}
|
|
7749
|
+
};
|
|
7750
|
+
|
|
7644
7751
|
// src/app-context.ts
|
|
7645
7752
|
function formatAppContextAsMarkdown(context) {
|
|
7646
7753
|
if (!context) {
|
|
@@ -7729,6 +7836,7 @@ function createApiModules(apiKey, baseUrl, customFetch) {
|
|
|
7729
7836
|
slackApps: new SlackAppsApi(apiKey, baseUrl, customFetch),
|
|
7730
7837
|
teamsApps: new TeamsAppsApi(apiKey, baseUrl, customFetch),
|
|
7731
7838
|
events: new EventsApi(apiKey, baseUrl, customFetch),
|
|
7839
|
+
experiments: new ExperimentsApi(apiKey, baseUrl, customFetch),
|
|
7732
7840
|
fhirConnections: new FhirConnectionsApi(apiKey, baseUrl, customFetch),
|
|
7733
7841
|
healthie: new HealthieApi(apiKey, baseUrl, customFetch),
|
|
7734
7842
|
hubspot: new HubspotApi(apiKey, baseUrl, customFetch),
|
|
@@ -7828,6 +7936,7 @@ function bindChatsMethods(target, chats) {
|
|
|
7828
7936
|
target.archiveChat = chats.archiveChat.bind(chats);
|
|
7829
7937
|
target.unarchiveChat = chats.unarchiveChat.bind(chats);
|
|
7830
7938
|
target.createChat = chats.createChat.bind(chats);
|
|
7939
|
+
target.createWorkflowOutboundVoiceChat = chats.createWorkflowOutboundVoiceChat.bind(chats);
|
|
7831
7940
|
target.deleteChat = chats.deleteChat.bind(chats);
|
|
7832
7941
|
target.updateChat = chats.updateChat.bind(chats);
|
|
7833
7942
|
target.updateChatMute = chats.updateChatMute.bind(chats);
|
|
@@ -8162,6 +8271,23 @@ function bindEventsMethods(target, events) {
|
|
|
8162
8271
|
target.previewSchedule = events.previewSchedule.bind(events);
|
|
8163
8272
|
}
|
|
8164
8273
|
|
|
8274
|
+
// src/client/bindings/experiments.ts
|
|
8275
|
+
function bindExperimentsMethods(target, experiments) {
|
|
8276
|
+
target.getExperiments = experiments.getExperiments.bind(experiments);
|
|
8277
|
+
target.getExperiment = experiments.getExperiment.bind(experiments);
|
|
8278
|
+
target.createExperiment = experiments.createExperiment.bind(experiments);
|
|
8279
|
+
target.updateExperiment = experiments.updateExperiment.bind(experiments);
|
|
8280
|
+
target.deleteExperiment = experiments.deleteExperiment.bind(experiments);
|
|
8281
|
+
target.createExperimentGroup = experiments.createExperimentGroup.bind(experiments);
|
|
8282
|
+
target.updateExperimentGroup = experiments.updateExperimentGroup.bind(experiments);
|
|
8283
|
+
target.deleteExperimentGroup = experiments.deleteExperimentGroup.bind(experiments);
|
|
8284
|
+
target.getExperimentStats = experiments.getExperimentStats.bind(experiments);
|
|
8285
|
+
target.getMemberExperiments = experiments.getMemberExperiments.bind(experiments);
|
|
8286
|
+
target.createExperimentAssignment = experiments.createExperimentAssignment.bind(experiments);
|
|
8287
|
+
target.updateExperimentAssignment = experiments.updateExperimentAssignment.bind(experiments);
|
|
8288
|
+
target.deleteExperimentAssignment = experiments.deleteExperimentAssignment.bind(experiments);
|
|
8289
|
+
}
|
|
8290
|
+
|
|
8165
8291
|
// src/client/bindings/workflows.ts
|
|
8166
8292
|
function bindWorkflowsMethods(target, workflows, workflowNotes, voice, supervisors) {
|
|
8167
8293
|
target.getWorkflows = workflows.getWorkflows.bind(workflows);
|
|
@@ -8267,8 +8393,6 @@ function bindCommunicationsMethods(target, phoneNumbers, inboxes, notificationRu
|
|
|
8267
8393
|
target.getPhoneNumberVoicemails = phoneNumbers.getPhoneNumberVoicemails.bind(phoneNumbers);
|
|
8268
8394
|
target.fetchVoicemailAudio = phoneNumbers.fetchVoicemailAudio.bind(phoneNumbers);
|
|
8269
8395
|
target.updateVoicemailStatus = phoneNumbers.updateVoicemailStatus.bind(phoneNumbers);
|
|
8270
|
-
target.searchAvailablePhoneNumbers = phoneNumbers.searchAvailablePhoneNumbers.bind(phoneNumbers);
|
|
8271
|
-
target.purchasePhoneNumber = phoneNumbers.purchasePhoneNumber.bind(phoneNumbers);
|
|
8272
8396
|
target.releasePhoneNumber = phoneNumbers.releasePhoneNumber.bind(phoneNumbers);
|
|
8273
8397
|
target.getLinkablePhones = phoneNumbers.getLinkablePhones.bind(phoneNumbers);
|
|
8274
8398
|
target.linkPhoneNumber = phoneNumbers.linkPhoneNumber.bind(phoneNumbers);
|
|
@@ -8703,6 +8827,7 @@ function bindSupportRequestMethods(target, supportRequests) {
|
|
|
8703
8827
|
target.createWorkspaceSupportRequest = supportRequests.createWorkspaceSupportRequest.bind(supportRequests);
|
|
8704
8828
|
target.commentOnWorkspaceSupportRequest = supportRequests.commentOnWorkspaceSupportRequest.bind(supportRequests);
|
|
8705
8829
|
target.closeWorkspaceSupportRequest = supportRequests.closeWorkspaceSupportRequest.bind(supportRequests);
|
|
8830
|
+
target.clickWorkspaceSupportRequestResource = supportRequests.clickWorkspaceSupportRequestResource.bind(supportRequests);
|
|
8706
8831
|
}
|
|
8707
8832
|
|
|
8708
8833
|
// src/client/client.ts
|
|
@@ -8733,6 +8858,7 @@ var GravityRailClient = class {
|
|
|
8733
8858
|
archiveChat;
|
|
8734
8859
|
unarchiveChat;
|
|
8735
8860
|
createChat;
|
|
8861
|
+
createWorkflowOutboundVoiceChat;
|
|
8736
8862
|
deleteChat;
|
|
8737
8863
|
updateChat;
|
|
8738
8864
|
updateChatMute;
|
|
@@ -8903,6 +9029,20 @@ var GravityRailClient = class {
|
|
|
8903
9029
|
createJourneyNote;
|
|
8904
9030
|
updateJourneyNote;
|
|
8905
9031
|
deleteJourneyNote;
|
|
9032
|
+
// Experiments API
|
|
9033
|
+
getExperiments;
|
|
9034
|
+
getExperiment;
|
|
9035
|
+
createExperiment;
|
|
9036
|
+
updateExperiment;
|
|
9037
|
+
deleteExperiment;
|
|
9038
|
+
createExperimentGroup;
|
|
9039
|
+
updateExperimentGroup;
|
|
9040
|
+
deleteExperimentGroup;
|
|
9041
|
+
getExperimentStats;
|
|
9042
|
+
getMemberExperiments;
|
|
9043
|
+
createExperimentAssignment;
|
|
9044
|
+
updateExperimentAssignment;
|
|
9045
|
+
deleteExperimentAssignment;
|
|
8906
9046
|
// Operator Groups API
|
|
8907
9047
|
getOperatorGroups;
|
|
8908
9048
|
getOperatorGroup;
|
|
@@ -9246,8 +9386,6 @@ var GravityRailClient = class {
|
|
|
9246
9386
|
getPhoneNumberVoicemails;
|
|
9247
9387
|
fetchVoicemailAudio;
|
|
9248
9388
|
updateVoicemailStatus;
|
|
9249
|
-
searchAvailablePhoneNumbers;
|
|
9250
|
-
purchasePhoneNumber;
|
|
9251
9389
|
releasePhoneNumber;
|
|
9252
9390
|
getLinkablePhones;
|
|
9253
9391
|
linkPhoneNumber;
|
|
@@ -9571,6 +9709,7 @@ var GravityRailClient = class {
|
|
|
9571
9709
|
createWorkspaceSupportRequest;
|
|
9572
9710
|
commentOnWorkspaceSupportRequest;
|
|
9573
9711
|
closeWorkspaceSupportRequest;
|
|
9712
|
+
clickWorkspaceSupportRequestResource;
|
|
9574
9713
|
constructor(apiKey, baseUrl, customFetch) {
|
|
9575
9714
|
const apis = createApiModules(apiKey, baseUrl, customFetch);
|
|
9576
9715
|
this.apis = apis;
|
|
@@ -9585,6 +9724,7 @@ var GravityRailClient = class {
|
|
|
9585
9724
|
bindQualificationsMethods(this, apis.qualifications);
|
|
9586
9725
|
bindPersonasMethods(this, apis.personas);
|
|
9587
9726
|
bindJourneysMethods(this, apis.journeys);
|
|
9727
|
+
bindExperimentsMethods(this, apis.experiments);
|
|
9588
9728
|
bindOperatorMethods(this, apis.operatorGroups);
|
|
9589
9729
|
bindOrgMethods(this, apis.org);
|
|
9590
9730
|
bindAccessGrantsMethods(this, apis.accessGrants);
|
|
@@ -10189,6 +10329,7 @@ var ScopeCategory = /* @__PURE__ */ ((ScopeCategory2) => {
|
|
|
10189
10329
|
ScopeCategory2["RECORDS"] = "records";
|
|
10190
10330
|
ScopeCategory2["FILES"] = "files";
|
|
10191
10331
|
ScopeCategory2["JOURNEYS"] = "journeys";
|
|
10332
|
+
ScopeCategory2["EXPERIMENTS"] = "experiments";
|
|
10192
10333
|
ScopeCategory2["SITES"] = "sites";
|
|
10193
10334
|
ScopeCategory2["AGENTS"] = "agents";
|
|
10194
10335
|
ScopeCategory2["CALENDARS"] = "calendars";
|
|
@@ -10448,6 +10589,26 @@ var SCOPES = {
|
|
|
10448
10589
|
implies: ["journeys:write"]
|
|
10449
10590
|
},
|
|
10450
10591
|
// =========================================================================
|
|
10592
|
+
// EXPERIMENTS
|
|
10593
|
+
// =========================================================================
|
|
10594
|
+
"experiments:read": {
|
|
10595
|
+
name: "experiments:read",
|
|
10596
|
+
category: "experiments" /* EXPERIMENTS */,
|
|
10597
|
+
description: "View experiments and assignments"
|
|
10598
|
+
},
|
|
10599
|
+
"experiments:write": {
|
|
10600
|
+
name: "experiments:write",
|
|
10601
|
+
category: "experiments" /* EXPERIMENTS */,
|
|
10602
|
+
description: "Create and edit experiments",
|
|
10603
|
+
implies: ["experiments:read"]
|
|
10604
|
+
},
|
|
10605
|
+
"experiments:admin": {
|
|
10606
|
+
name: "experiments:admin",
|
|
10607
|
+
category: "experiments" /* EXPERIMENTS */,
|
|
10608
|
+
description: "Delete draft experiments and archive experiments",
|
|
10609
|
+
implies: ["experiments:write"]
|
|
10610
|
+
},
|
|
10611
|
+
// =========================================================================
|
|
10451
10612
|
// SITES
|
|
10452
10613
|
// =========================================================================
|
|
10453
10614
|
"sites:read": {
|
|
@@ -10914,6 +11075,7 @@ export {
|
|
|
10914
11075
|
AccessGrantStatus,
|
|
10915
11076
|
AccessGrantTrigger,
|
|
10916
11077
|
ConsentMethod,
|
|
11078
|
+
parseExperimentStatCount,
|
|
10917
11079
|
TERMINAL_TASK_STATES,
|
|
10918
11080
|
WorkspaceInvitationsApi,
|
|
10919
11081
|
WorkspacesApi,
|
|
@@ -10932,6 +11094,7 @@ export {
|
|
|
10932
11094
|
bindSitesMethods,
|
|
10933
11095
|
bindFilesMethods,
|
|
10934
11096
|
bindEventsMethods,
|
|
11097
|
+
bindExperimentsMethods,
|
|
10935
11098
|
bindWorkflowsMethods,
|
|
10936
11099
|
bindCalendarsMethods,
|
|
10937
11100
|
bindCommunicationsMethods,
|
|
@@ -11003,4 +11166,4 @@ export {
|
|
|
11003
11166
|
ScopeManager,
|
|
11004
11167
|
SCOPE_PRESETS
|
|
11005
11168
|
};
|
|
11006
|
-
//# sourceMappingURL=chunk-
|
|
11169
|
+
//# sourceMappingURL=chunk-PEWFZXNK.js.map
|