@gravity-rail/sdk 0.6.0 → 0.7.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.
package/dist/helpers.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { G as GravityRailClient } from './client-dP29995A.js';
2
- import { W as WorkspaceMemberResponse } from './inquiries-BH6I8-SF.js';
1
+ import { G as GravityRailClient } from './client-Dft3Kmkn.js';
2
+ import { W as WorkspaceMemberResponse } from './inquiries-BIlL6Obb.js';
3
3
  import 'zod';
4
4
 
5
5
  interface OutboundPhoneNumberOption {
@@ -1,5 +1,5 @@
1
- import { pb as WorkspaceFeature, kc as Resource$1, ju as ProductType } from './client-dP29995A.js';
2
- import { dR as SortOrder } from './inquiries-BH6I8-SF.js';
1
+ import { pA as WorkspaceFeature, kx as Resource$1, jO as ProductType } from './client-CLxHFOeB.cjs';
2
+ import { dR as SortOrder } from './inquiries-BIlL6Obb.cjs';
3
3
 
4
4
  interface MemberNotificationPreferences {
5
5
  notifySms?: boolean;
@@ -1074,6 +1074,7 @@ declare enum ScopeCategory {
1074
1074
  RECORDS = "records",
1075
1075
  FILES = "files",
1076
1076
  JOURNEYS = "journeys",
1077
+ EXPERIMENTS = "experiments",
1077
1078
  SITES = "sites",
1078
1079
  AGENTS = "agents",
1079
1080
  CALENDARS = "calendars",
@@ -1314,6 +1315,23 @@ declare const SCOPES: {
1314
1315
  readonly description: "Delete journeys";
1315
1316
  readonly implies: readonly ["journeys:write"];
1316
1317
  };
1318
+ readonly 'experiments:read': {
1319
+ readonly name: "experiments:read";
1320
+ readonly category: ScopeCategory.EXPERIMENTS;
1321
+ readonly description: "View experiments and assignments";
1322
+ };
1323
+ readonly 'experiments:write': {
1324
+ readonly name: "experiments:write";
1325
+ readonly category: ScopeCategory.EXPERIMENTS;
1326
+ readonly description: "Create and edit experiments";
1327
+ readonly implies: readonly ["experiments:read"];
1328
+ };
1329
+ readonly 'experiments:admin': {
1330
+ readonly name: "experiments:admin";
1331
+ readonly category: ScopeCategory.EXPERIMENTS;
1332
+ readonly description: "Delete draft experiments and archive experiments";
1333
+ readonly implies: readonly ["experiments:write"];
1334
+ };
1317
1335
  readonly 'sites:read': {
1318
1336
  readonly name: "sites:read";
1319
1337
  readonly category: ScopeCategory.SITES;
@@ -1,5 +1,5 @@
1
- import { pb as WorkspaceFeature, kc as Resource$1, ju as ProductType } from './client-BKGhDv14.cjs';
2
- import { dR as SortOrder } from './inquiries-BH6I8-SF.cjs';
1
+ import { pA as WorkspaceFeature, kx as Resource$1, jO as ProductType } from './client-Dft3Kmkn.js';
2
+ import { dR as SortOrder } from './inquiries-BIlL6Obb.js';
3
3
 
4
4
  interface MemberNotificationPreferences {
5
5
  notifySms?: boolean;
@@ -1074,6 +1074,7 @@ declare enum ScopeCategory {
1074
1074
  RECORDS = "records",
1075
1075
  FILES = "files",
1076
1076
  JOURNEYS = "journeys",
1077
+ EXPERIMENTS = "experiments",
1077
1078
  SITES = "sites",
1078
1079
  AGENTS = "agents",
1079
1080
  CALENDARS = "calendars",
@@ -1314,6 +1315,23 @@ declare const SCOPES: {
1314
1315
  readonly description: "Delete journeys";
1315
1316
  readonly implies: readonly ["journeys:write"];
1316
1317
  };
1318
+ readonly 'experiments:read': {
1319
+ readonly name: "experiments:read";
1320
+ readonly category: ScopeCategory.EXPERIMENTS;
1321
+ readonly description: "View experiments and assignments";
1322
+ };
1323
+ readonly 'experiments:write': {
1324
+ readonly name: "experiments:write";
1325
+ readonly category: ScopeCategory.EXPERIMENTS;
1326
+ readonly description: "Create and edit experiments";
1327
+ readonly implies: readonly ["experiments:read"];
1328
+ };
1329
+ readonly 'experiments:admin': {
1330
+ readonly name: "experiments:admin";
1331
+ readonly category: ScopeCategory.EXPERIMENTS;
1332
+ readonly description: "Delete draft experiments and archive experiments";
1333
+ readonly implies: readonly ["experiments:write"];
1334
+ };
1317
1335
  readonly 'sites:read': {
1318
1336
  readonly name: "sites:read";
1319
1337
  readonly category: ScopeCategory.SITES;
package/dist/index.cjs CHANGED
@@ -1854,6 +1854,22 @@ var ChatsApi = class extends BaseApiClient {
1854
1854
  body: JSON.stringify(chat)
1855
1855
  });
1856
1856
  }
1857
+ /**
1858
+ * Create a workflow assignment chat on `phone-voice` and initiate an outbound call
1859
+ * to the member (same as POST /chats with channel phone-voice + send_initial_message).
1860
+ */
1861
+ async createWorkflowOutboundVoiceChat(wid, input) {
1862
+ const { memberId, workflowId, phoneNumberId, title, chatType } = input;
1863
+ return this.createChat(wid, {
1864
+ channel: "phone-voice",
1865
+ chatType: chatType ?? "assignment",
1866
+ workflowId,
1867
+ phoneNumberId,
1868
+ memberId,
1869
+ title: title ?? `Outbound voice \u2192 member ${memberId}`,
1870
+ participants: [{ memberId, role: "user" }]
1871
+ });
1872
+ }
1857
1873
  /** Delete a chat, optionally providing a reason. */
1858
1874
  async deleteChat(wid, id, reason) {
1859
1875
  return this.fetch(`w/${wid}/chats/${id}`, {
@@ -2785,6 +2801,99 @@ var EventsApi = class extends BaseApiClient {
2785
2801
  }
2786
2802
  };
2787
2803
 
2804
+ // src/api/experiments.ts
2805
+ var ExperimentsApi = class extends BaseApiClient {
2806
+ /** List experiments with group summaries and assignment counts. */
2807
+ async getExperiments(wid, params) {
2808
+ const query = new URLSearchParams();
2809
+ if (params?.page !== void 0) query.set("page", String(params.page));
2810
+ if (params?.pageSize !== void 0) query.set("pageSize", String(params.pageSize));
2811
+ if (params?.includeArchived) query.set("includeArchived", "true");
2812
+ const qs = query.toString() ? `?${query.toString()}` : "";
2813
+ return this.fetch(`w/${wid}/experiments${qs}`);
2814
+ }
2815
+ /** Get a single experiment by ID (includes groups). */
2816
+ async getExperiment(wid, experimentId) {
2817
+ return this.fetch(`w/${wid}/experiments/${experimentId}`);
2818
+ }
2819
+ /** Create a draft experiment. */
2820
+ async createExperiment(wid, data) {
2821
+ return this.fetch(`w/${wid}/experiments`, {
2822
+ method: "POST",
2823
+ body: JSON.stringify(data)
2824
+ });
2825
+ }
2826
+ /** Update experiment metadata or lifecycle status. */
2827
+ async updateExperiment(wid, experimentId, data) {
2828
+ return this.fetch(`w/${wid}/experiments/${experimentId}`, {
2829
+ method: "PATCH",
2830
+ body: JSON.stringify(data)
2831
+ });
2832
+ }
2833
+ /** Hard-delete a draft experiment, or archive otherwise. */
2834
+ async deleteExperiment(wid, experimentId) {
2835
+ return this.fetch(`w/${wid}/experiments/${experimentId}`, {
2836
+ method: "DELETE"
2837
+ });
2838
+ }
2839
+ /** Create a group within an experiment. */
2840
+ async createExperimentGroup(wid, experimentId, data) {
2841
+ return this.fetch(`w/${wid}/experiments/${experimentId}/groups`, {
2842
+ method: "POST",
2843
+ body: JSON.stringify(data)
2844
+ });
2845
+ }
2846
+ /** Update a group within an experiment. */
2847
+ async updateExperimentGroup(wid, experimentId, groupId, data) {
2848
+ return this.fetch(`w/${wid}/experiments/${experimentId}/groups/${groupId}`, {
2849
+ method: "PATCH",
2850
+ body: JSON.stringify(data)
2851
+ });
2852
+ }
2853
+ /** Delete a group that has no member assignments. */
2854
+ async deleteExperimentGroup(wid, experimentId, groupId) {
2855
+ return this.fetch(
2856
+ `w/${wid}/experiments/${experimentId}/groups/${groupId}`,
2857
+ { method: "DELETE" }
2858
+ );
2859
+ }
2860
+ /** Aggregate assignment and exposure counts by group. */
2861
+ async getExperimentStats(wid, experimentId) {
2862
+ return this.fetch(`w/${wid}/experiments/${experimentId}/stats`);
2863
+ }
2864
+ /** List experiment assignments for a member (member profile panel). */
2865
+ async getMemberExperiments(wid, memberId) {
2866
+ return this.fetch(`w/${wid}/members/${memberId}/experiments`);
2867
+ }
2868
+ /** Manually assign a member to an experiment (optional group, or weighted random). */
2869
+ async createExperimentAssignment(wid, experimentId, data) {
2870
+ return this.fetch(
2871
+ `w/${wid}/experiments/${experimentId}/assignments`,
2872
+ {
2873
+ method: "POST",
2874
+ body: JSON.stringify(data)
2875
+ }
2876
+ );
2877
+ }
2878
+ /** Move an assigned member to a different experiment group. */
2879
+ async updateExperimentAssignment(wid, experimentId, memberId, data) {
2880
+ return this.fetch(
2881
+ `w/${wid}/experiments/${experimentId}/assignments/${memberId}`,
2882
+ {
2883
+ method: "PATCH",
2884
+ body: JSON.stringify(data)
2885
+ }
2886
+ );
2887
+ }
2888
+ /** Remove a member's assignment from an experiment. */
2889
+ async deleteExperimentAssignment(wid, experimentId, memberId) {
2890
+ return this.fetch(
2891
+ `w/${wid}/experiments/${experimentId}/assignments/${memberId}`,
2892
+ { method: "DELETE" }
2893
+ );
2894
+ }
2895
+ };
2896
+
2788
2897
  // src/api/features.ts
2789
2898
  var FeaturesApi = class extends BaseApiClient {
2790
2899
  /**
@@ -6084,6 +6193,20 @@ var SupportRequestsApi = class extends BaseApiClient {
6084
6193
  body: JSON.stringify(data)
6085
6194
  });
6086
6195
  }
6196
+ /**
6197
+ * Record a click on a pushed resource (Proactive Support). For a
6198
+ * manager_prompt, pass the Manager Chat UUID it opened so the
6199
+ * resource→chat linkage is preserved.
6200
+ */
6201
+ async clickWorkspaceSupportRequestResource(workspaceUuid, uuid, resourceUuid, data = {}) {
6202
+ return this.fetch(
6203
+ `w/${workspaceUuid}/support-requests/${uuid}/resources/${resourceUuid}/click`,
6204
+ {
6205
+ method: "POST",
6206
+ body: JSON.stringify(data)
6207
+ }
6208
+ );
6209
+ }
6087
6210
  };
6088
6211
 
6089
6212
  // src/api/customers.ts
@@ -6897,6 +7020,9 @@ var Scope = /* @__PURE__ */ ((Scope2) => {
6897
7020
  Scope2["JOURNEYS_READ"] = "journeys:read";
6898
7021
  Scope2["JOURNEYS_WRITE"] = "journeys:write";
6899
7022
  Scope2["JOURNEYS_ADMIN"] = "journeys:admin";
7023
+ Scope2["EXPERIMENTS_READ"] = "experiments:read";
7024
+ Scope2["EXPERIMENTS_WRITE"] = "experiments:write";
7025
+ Scope2["EXPERIMENTS_ADMIN"] = "experiments:admin";
6900
7026
  Scope2["WORKFLOWS_READ"] = "workflows:read";
6901
7027
  Scope2["WORKFLOWS_WRITE"] = "workflows:write";
6902
7028
  Scope2["WORKFLOWS_ADMIN"] = "workflows:admin";
@@ -7074,6 +7200,7 @@ var WorkspaceFeature = /* @__PURE__ */ ((WorkspaceFeature2) => {
7074
7200
  WorkspaceFeature2["CALENDAR"] = "calendar";
7075
7201
  WorkspaceFeature2["DIRECT_MESSAGES"] = "direct_messages";
7076
7202
  WorkspaceFeature2["JOURNEYS"] = "journeys";
7203
+ WorkspaceFeature2["EXPERIMENTS"] = "experiments";
7077
7204
  WorkspaceFeature2["OPERATOR"] = "operator";
7078
7205
  WorkspaceFeature2["PRESENCE"] = "presence";
7079
7206
  WorkspaceFeature2["GMAIL"] = "gmail";
@@ -7922,6 +8049,7 @@ function createApiModules(apiKey, baseUrl, customFetch) {
7922
8049
  slackApps: new SlackAppsApi(apiKey, baseUrl, customFetch),
7923
8050
  teamsApps: new TeamsAppsApi(apiKey, baseUrl, customFetch),
7924
8051
  events: new EventsApi(apiKey, baseUrl, customFetch),
8052
+ experiments: new ExperimentsApi(apiKey, baseUrl, customFetch),
7925
8053
  fhirConnections: new FhirConnectionsApi(apiKey, baseUrl, customFetch),
7926
8054
  healthie: new HealthieApi(apiKey, baseUrl, customFetch),
7927
8055
  hubspot: new HubspotApi(apiKey, baseUrl, customFetch),
@@ -8021,6 +8149,7 @@ function bindChatsMethods(target, chats) {
8021
8149
  target.archiveChat = chats.archiveChat.bind(chats);
8022
8150
  target.unarchiveChat = chats.unarchiveChat.bind(chats);
8023
8151
  target.createChat = chats.createChat.bind(chats);
8152
+ target.createWorkflowOutboundVoiceChat = chats.createWorkflowOutboundVoiceChat.bind(chats);
8024
8153
  target.deleteChat = chats.deleteChat.bind(chats);
8025
8154
  target.updateChat = chats.updateChat.bind(chats);
8026
8155
  target.updateChatMute = chats.updateChatMute.bind(chats);
@@ -8355,6 +8484,23 @@ function bindEventsMethods(target, events) {
8355
8484
  target.previewSchedule = events.previewSchedule.bind(events);
8356
8485
  }
8357
8486
 
8487
+ // src/client/bindings/experiments.ts
8488
+ function bindExperimentsMethods(target, experiments) {
8489
+ target.getExperiments = experiments.getExperiments.bind(experiments);
8490
+ target.getExperiment = experiments.getExperiment.bind(experiments);
8491
+ target.createExperiment = experiments.createExperiment.bind(experiments);
8492
+ target.updateExperiment = experiments.updateExperiment.bind(experiments);
8493
+ target.deleteExperiment = experiments.deleteExperiment.bind(experiments);
8494
+ target.createExperimentGroup = experiments.createExperimentGroup.bind(experiments);
8495
+ target.updateExperimentGroup = experiments.updateExperimentGroup.bind(experiments);
8496
+ target.deleteExperimentGroup = experiments.deleteExperimentGroup.bind(experiments);
8497
+ target.getExperimentStats = experiments.getExperimentStats.bind(experiments);
8498
+ target.getMemberExperiments = experiments.getMemberExperiments.bind(experiments);
8499
+ target.createExperimentAssignment = experiments.createExperimentAssignment.bind(experiments);
8500
+ target.updateExperimentAssignment = experiments.updateExperimentAssignment.bind(experiments);
8501
+ target.deleteExperimentAssignment = experiments.deleteExperimentAssignment.bind(experiments);
8502
+ }
8503
+
8358
8504
  // src/client/bindings/workflows.ts
8359
8505
  function bindWorkflowsMethods(target, workflows, workflowNotes, voice, supervisors) {
8360
8506
  target.getWorkflows = workflows.getWorkflows.bind(workflows);
@@ -8894,6 +9040,7 @@ function bindSupportRequestMethods(target, supportRequests) {
8894
9040
  target.createWorkspaceSupportRequest = supportRequests.createWorkspaceSupportRequest.bind(supportRequests);
8895
9041
  target.commentOnWorkspaceSupportRequest = supportRequests.commentOnWorkspaceSupportRequest.bind(supportRequests);
8896
9042
  target.closeWorkspaceSupportRequest = supportRequests.closeWorkspaceSupportRequest.bind(supportRequests);
9043
+ target.clickWorkspaceSupportRequestResource = supportRequests.clickWorkspaceSupportRequestResource.bind(supportRequests);
8897
9044
  }
8898
9045
 
8899
9046
  // src/client/client.ts
@@ -8924,6 +9071,7 @@ var GravityRailClient = class {
8924
9071
  archiveChat;
8925
9072
  unarchiveChat;
8926
9073
  createChat;
9074
+ createWorkflowOutboundVoiceChat;
8927
9075
  deleteChat;
8928
9076
  updateChat;
8929
9077
  updateChatMute;
@@ -9094,6 +9242,20 @@ var GravityRailClient = class {
9094
9242
  createJourneyNote;
9095
9243
  updateJourneyNote;
9096
9244
  deleteJourneyNote;
9245
+ // Experiments API
9246
+ getExperiments;
9247
+ getExperiment;
9248
+ createExperiment;
9249
+ updateExperiment;
9250
+ deleteExperiment;
9251
+ createExperimentGroup;
9252
+ updateExperimentGroup;
9253
+ deleteExperimentGroup;
9254
+ getExperimentStats;
9255
+ getMemberExperiments;
9256
+ createExperimentAssignment;
9257
+ updateExperimentAssignment;
9258
+ deleteExperimentAssignment;
9097
9259
  // Operator Groups API
9098
9260
  getOperatorGroups;
9099
9261
  getOperatorGroup;
@@ -9760,6 +9922,7 @@ var GravityRailClient = class {
9760
9922
  createWorkspaceSupportRequest;
9761
9923
  commentOnWorkspaceSupportRequest;
9762
9924
  closeWorkspaceSupportRequest;
9925
+ clickWorkspaceSupportRequestResource;
9763
9926
  constructor(apiKey, baseUrl, customFetch) {
9764
9927
  const apis = createApiModules(apiKey, baseUrl, customFetch);
9765
9928
  this.apis = apis;
@@ -9774,6 +9937,7 @@ var GravityRailClient = class {
9774
9937
  bindQualificationsMethods(this, apis.qualifications);
9775
9938
  bindPersonasMethods(this, apis.personas);
9776
9939
  bindJourneysMethods(this, apis.journeys);
9940
+ bindExperimentsMethods(this, apis.experiments);
9777
9941
  bindOperatorMethods(this, apis.operatorGroups);
9778
9942
  bindOrgMethods(this, apis.org);
9779
9943
  bindAccessGrantsMethods(this, apis.accessGrants);
@@ -10378,6 +10542,7 @@ var ScopeCategory = /* @__PURE__ */ ((ScopeCategory2) => {
10378
10542
  ScopeCategory2["RECORDS"] = "records";
10379
10543
  ScopeCategory2["FILES"] = "files";
10380
10544
  ScopeCategory2["JOURNEYS"] = "journeys";
10545
+ ScopeCategory2["EXPERIMENTS"] = "experiments";
10381
10546
  ScopeCategory2["SITES"] = "sites";
10382
10547
  ScopeCategory2["AGENTS"] = "agents";
10383
10548
  ScopeCategory2["CALENDARS"] = "calendars";
@@ -10637,6 +10802,26 @@ var SCOPES = {
10637
10802
  implies: ["journeys:write"]
10638
10803
  },
10639
10804
  // =========================================================================
10805
+ // EXPERIMENTS
10806
+ // =========================================================================
10807
+ "experiments:read": {
10808
+ name: "experiments:read",
10809
+ category: "experiments" /* EXPERIMENTS */,
10810
+ description: "View experiments and assignments"
10811
+ },
10812
+ "experiments:write": {
10813
+ name: "experiments:write",
10814
+ category: "experiments" /* EXPERIMENTS */,
10815
+ description: "Create and edit experiments",
10816
+ implies: ["experiments:read"]
10817
+ },
10818
+ "experiments:admin": {
10819
+ name: "experiments:admin",
10820
+ category: "experiments" /* EXPERIMENTS */,
10821
+ description: "Delete draft experiments and archive experiments",
10822
+ implies: ["experiments:write"]
10823
+ },
10824
+ // =========================================================================
10640
10825
  // SITES
10641
10826
  // =========================================================================
10642
10827
  "sites:read": {