@gravity-rail/sdk 0.15.0 → 0.16.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/internal.cjs CHANGED
@@ -69,6 +69,7 @@ __export(internal_exports, {
69
69
  CustomerActivityEventStatus: () => CustomerActivityEventStatus,
70
70
  CustomerActivityReviewOutcome: () => CustomerActivityReviewOutcome,
71
71
  CustomerActivitySeverity: () => CustomerActivitySeverity,
72
+ CustomerActivitySlaThresholdSource: () => CustomerActivitySlaThresholdSource,
72
73
  CustomersApi: () => CustomersApi,
73
74
  DEFAULT_CHAT_MODEL: () => DEFAULT_CHAT_MODEL,
74
75
  DEFAULT_CUSTOM_VOICE_MODEL: () => DEFAULT_CUSTOM_VOICE_MODEL,
@@ -150,7 +151,10 @@ __export(internal_exports, {
150
151
  PhiPostureReasonCode: () => PhiPostureReasonCode,
151
152
  PhiPostureTransitionResponseTargetType: () => PhiPostureTransitionResponseTargetType,
152
153
  PhoneNumbersApi: () => PhoneNumbersApi,
154
+ PilotRelationshipType: () => PilotRelationshipType,
155
+ PilotStage: () => PilotStage,
153
156
  ProductType: () => ProductType,
157
+ PromoCodeStatus: () => PromoCodeStatus,
154
158
  PromptsApi: () => PromptsApi,
155
159
  PronunciationsApi: () => PronunciationsApi,
156
160
  QUERY_VALUELESS_OPS: () => QUERY_VALUELESS_OPS,
@@ -240,6 +244,7 @@ __export(internal_exports, {
240
244
  bindSupportRequestMethods: () => bindSupportRequestMethods,
241
245
  bindTasksMethods: () => bindTasksMethods,
242
246
  bindToolkitsMethods: () => bindToolkitsMethods,
247
+ bindTrackedLinksMethods: () => bindTrackedLinksMethods,
243
248
  bindWorkflowsMethods: () => bindWorkflowsMethods,
244
249
  bindWorkspacesMethods: () => bindWorkspacesMethods,
245
250
  canPreviewVoice: () => canPreviewVoice,
@@ -492,6 +497,7 @@ var EventRuleEventType = /* @__PURE__ */ ((EventRuleEventType2) => {
492
497
  EventRuleEventType2["DATA_RECORD_UPDATED"] = "data_record:updated";
493
498
  EventRuleEventType2["DATA_RECORD_CHANGED"] = "data_record:changed";
494
499
  EventRuleEventType2["CHAT_CREATED"] = "chat:created";
500
+ EventRuleEventType2["CHAT_SUMMARY"] = "chat:summary";
495
501
  EventRuleEventType2["CHAT_CALLBACK"] = "chat:callback";
496
502
  EventRuleEventType2["MEMBER_UPDATED"] = "member:updated";
497
503
  EventRuleEventType2["ROUTINE_TRIGGERED"] = "routine:triggered";
@@ -946,6 +952,15 @@ var AbilityTypeSlugs = {
946
952
  CEL_ROUTING: "system:cel_routing"
947
953
  };
948
954
 
955
+ // src/types/generated/promo_code_service.ts
956
+ var PromoCodeStatus = {
957
+ active: "active",
958
+ scheduled: "scheduled",
959
+ expired: "expired",
960
+ inactive: "inactive",
961
+ exhausted: "exhausted"
962
+ };
963
+
949
964
  // src/types/query-engine-types.ts
950
965
  var QUERY_VALUELESS_OPS = /* @__PURE__ */ new Set([
951
966
  "isEmpty",
@@ -999,6 +1014,10 @@ var CustomerActivitySeverity = {
999
1014
  high: "high",
1000
1015
  critical: "critical"
1001
1016
  };
1017
+ var CustomerActivitySlaThresholdSource = {
1018
+ default: "default",
1019
+ request: "request"
1020
+ };
1002
1021
 
1003
1022
  // src/types/generated/phi_posture.ts
1004
1023
  var PhiPolicyReason = {
@@ -1363,6 +1382,20 @@ var WorkflowAccessWarningResourceType = {
1363
1382
  calendar: "calendar"
1364
1383
  };
1365
1384
 
1385
+ // src/types/generated/pilot_program.ts
1386
+ var PilotRelationshipType = {
1387
+ direct_pilot: "direct_pilot",
1388
+ partner_channel: "partner_channel"
1389
+ };
1390
+ var PilotStage = {
1391
+ signed: "signed",
1392
+ live: "live",
1393
+ value_evidenced: "value_evidenced",
1394
+ converted: "converted",
1395
+ on_hold: "on_hold",
1396
+ churned: "churned"
1397
+ };
1398
+
1366
1399
  // src/app-context.ts
1367
1400
  function formatAppContextAsMarkdown(context) {
1368
1401
  if (!context) {
@@ -2934,6 +2967,18 @@ var AIModelsApi = class extends BaseApiClient {
2934
2967
  const url = queryString ? `ai-models/realtime?${queryString}` : "ai-models/realtime";
2935
2968
  return this.fetch(url);
2936
2969
  }
2970
+ /**
2971
+ * Get the voice presets offered by the simplified voice picker.
2972
+ *
2973
+ * A preset bundles a realtime speech-to-speech model with one of its native
2974
+ * voices and the settings recommended alongside it, so choosing a voice is
2975
+ * a single decision. Apply one by assigning its `config` wholesale; compare
2976
+ * against it to tell a preset selection from a customised ("Custom") one.
2977
+ * The full engine/voice/settings matrix lives on `getRealtimeModels`.
2978
+ */
2979
+ async getVoicePresets() {
2980
+ return this.fetch("ai-models/voice-presets");
2981
+ }
2937
2982
  /**
2938
2983
  * Get available voice models with metadata
2939
2984
  */
@@ -4063,6 +4108,10 @@ var ChatsApi = class extends BaseApiClient {
4063
4108
  `w/${wid}/chats/${chatId}/skills`
4064
4109
  );
4065
4110
  }
4111
+ /** List built-in skills that can be selected before starting a Manager Chat. */
4112
+ async getManagerSkills(wid) {
4113
+ return this.fetch(`w/${wid}/chats/manager/skills`);
4114
+ }
4066
4115
  /** List chat IDs that need a response. */
4067
4116
  async getChatsNeedsResponse(wid) {
4068
4117
  return this.fetch(`w/${wid}/chats/needs-response`);
@@ -5683,9 +5732,9 @@ var DocumoFaxApi = class extends BaseApiClient {
5683
5732
  params?.status?.forEach((value) => query.append("status", value));
5684
5733
  if (params?.receivedAfter) query.set("receivedAfter", params.receivedAfter);
5685
5734
  if (params?.receivedBefore) query.set("receivedBefore", params.receivedBefore);
5686
- const suffix = query.toString() === "" ? "" : `?${query.toString()}`;
5735
+ const suffix2 = query.toString() === "" ? "" : `?${query.toString()}`;
5687
5736
  return this.fetch(
5688
- `w/${wid}/app-connections/documo-fax/faxes${suffix}`
5737
+ `w/${wid}/app-connections/documo-fax/faxes${suffix2}`
5689
5738
  );
5690
5739
  }
5691
5740
  /**
@@ -7759,15 +7808,19 @@ var OrgApi = class extends BaseApiClient {
7759
7808
  async getA2PStatus(orgUuid) {
7760
7809
  return this.fetch(`o/${orgUuid}/phone-numbers/a2p/status`);
7761
7810
  }
7811
+ /** Return fixed phone-number and outbound-messaging prices. */
7812
+ async getPhoneBillingPricing(orgUuid) {
7813
+ return this.fetch(`o/${orgUuid}/phone-numbers/pricing`);
7814
+ }
7762
7815
  /**
7763
7816
  * Start A2P brand registration under a legal entity. `legalEntityUuid`
7764
7817
  * is required — brands register per legal entity (Customer Profile);
7765
7818
  * there is no primary-entity fallback.
7766
7819
  */
7767
- async startA2PRegistration(orgUuid, legalEntityUuid, brandName, brandDescription) {
7820
+ async startA2PRegistration(orgUuid, legalEntityUuid, brandName, brandDescription, brandUuid = null) {
7768
7821
  return this.fetch(`o/${orgUuid}/phone-numbers/a2p/start`, {
7769
7822
  method: "POST",
7770
- body: JSON.stringify({ legalEntityUuid, brandName, brandDescription })
7823
+ body: JSON.stringify({ legalEntityUuid, brandName, brandDescription, brandUuid })
7771
7824
  });
7772
7825
  }
7773
7826
  /**
@@ -7973,14 +8026,34 @@ var OrgApi = class extends BaseApiClient {
7973
8026
  );
7974
8027
  }
7975
8028
  /**
7976
- * The brand-addressable enrollment form URL (carries `?brand=…`). Outreach
7977
- * appends each patient's `external_id`. `url` is null until a Site is linked.
8029
+ * The brand's enrollment-form template URL (carries `?brand=…`, no
8030
+ * credential). `url` is null until a Site is linked. Do not append a
8031
+ * patient identifier to this URL — use {@link mintA2PBrandEnrollmentLink}
8032
+ * to get a patient-ready link instead.
7978
8033
  */
7979
8034
  async getA2PBrandEnrollmentUrl(orgUuid, brandUuid) {
7980
8035
  return this.fetch(
7981
8036
  `o/${orgUuid}/a2p-brands/${brandUuid}/enrollment-url`
7982
8037
  );
7983
8038
  }
8039
+ /**
8040
+ * Mint a patient-ready enrollment link for one patient.
8041
+ *
8042
+ * The returned URL carries a fresh, expiring, single-use `?grant=…` bound to
8043
+ * the member that `externalId` resolves to. `externalId` (the patient's
8044
+ * CRM/EHR identifier) travels in the request body, never the query string,
8045
+ * so it stays out of access logs. When it matches no member, the
8046
+ * credential-free template URL is returned rather than an error.
8047
+ */
8048
+ async mintA2PBrandEnrollmentLink(orgUuid, brandUuid, externalId) {
8049
+ return this.fetch(
8050
+ `o/${orgUuid}/a2p-brands/${brandUuid}/enrollment-url`,
8051
+ {
8052
+ method: "POST",
8053
+ body: JSON.stringify({ externalId })
8054
+ }
8055
+ );
8056
+ }
7984
8057
  /**
7985
8058
  * List available member roles for a workspace in the organization.
7986
8059
  */
@@ -9810,6 +9883,118 @@ var ToolkitsApi = class extends BaseApiClient {
9810
9883
  }
9811
9884
  };
9812
9885
 
9886
+ // src/api/tracked-links.ts
9887
+ function withFilters(params, options) {
9888
+ if (options.dateFrom) params.append("dateFrom", options.dateFrom);
9889
+ if (options.dateTo) params.append("dateTo", options.dateTo);
9890
+ if (options.workflowId !== void 0) params.append("workflowId", String(options.workflowId));
9891
+ return params;
9892
+ }
9893
+ function suffix(params) {
9894
+ const query = params.toString();
9895
+ return query ? `?${query}` : "";
9896
+ }
9897
+ var TrackedLinksApi = class extends BaseApiClient {
9898
+ /** Header counters plus whether shortening is configured and enabled. */
9899
+ async getTrackedLinkSummary(wid, options = {}) {
9900
+ const params = withFilters(new URLSearchParams(), options);
9901
+ return this.fetch(
9902
+ `w/${wid}/tracked-links/summary${suffix(params)}`
9903
+ );
9904
+ }
9905
+ /**
9906
+ * Known destination URLs, most recent first. Powers the "Clicked link"
9907
+ * member-filter autocomplete, so it stays unaggregated and cheap.
9908
+ */
9909
+ async getTrackedLinkDestinations(wid, options = {}) {
9910
+ const params = new URLSearchParams();
9911
+ if (options.q) params.append("q", options.q);
9912
+ if (options.limit !== void 0) params.append("limit", String(options.limit));
9913
+ return this.fetch(
9914
+ `w/${wid}/tracked-links/destinations${suffix(params)}`
9915
+ );
9916
+ }
9917
+ /**
9918
+ * Register a destination an author can reference as `{{links.<key>}}`.
9919
+ *
9920
+ * The URL is deduplicated server-side, so registering one the workspace
9921
+ * already knows adopts that destination — including a row the retired
9922
+ * auto-harvest left unnamed, whose click history then carries forward
9923
+ * under the new key. Registering a URL that already has a *different* key
9924
+ * is a 409: renaming is what `updateTrackedLinkDestination` is for.
9925
+ *
9926
+ * Keys use the same grammar as snippet keys: lowercase letters, digits,
9927
+ * underscores and dots, starting with a letter (`intake_form`,
9928
+ * `docs.privacy`). No hyphens — Jinja2 reads `links.spring-2026` as
9929
+ * subtraction.
9930
+ */
9931
+ async createTrackedLinkDestination(wid, data) {
9932
+ return this.fetch(`w/${wid}/tracked-links/destinations`, {
9933
+ method: "POST",
9934
+ body: JSON.stringify(data)
9935
+ });
9936
+ }
9937
+ /**
9938
+ * Re-key or relabel a destination.
9939
+ *
9940
+ * Changing `key` breaks templates: `{{links.old}}` stops resolving and the
9941
+ * message ships without its link. Relabelling (`name`) is always safe.
9942
+ * Passing `key: null` releases the handle so another destination can take
9943
+ * it — the non-destructive alternative to deleting, which would take the
9944
+ * click history with it. The URL is not editable.
9945
+ */
9946
+ async updateTrackedLinkDestination(wid, destinationId, data) {
9947
+ return this.fetch(
9948
+ `w/${wid}/tracked-links/destinations/${destinationId}`,
9949
+ { method: "PUT", body: JSON.stringify(data) }
9950
+ );
9951
+ }
9952
+ /** Per-destination sent / clicks / unique clickers / CTR for the window. */
9953
+ async getTrackedLinkStats(wid, options = {}) {
9954
+ const params = withFilters(new URLSearchParams(), options);
9955
+ if (options.page !== void 0) params.append("page", String(options.page));
9956
+ if (options.pageSize !== void 0) params.append("pageSize", String(options.pageSize));
9957
+ if (options.q) params.append("q", options.q);
9958
+ if (options.sortBy) params.append("sortBy", options.sortBy);
9959
+ if (options.sortOrder) params.append("sortOrder", options.sortOrder);
9960
+ return this.fetch(
9961
+ `w/${wid}/tracked-links${suffix(params)}`
9962
+ );
9963
+ }
9964
+ /** Clicks over time for the current filter selection. */
9965
+ async getTrackedLinkTimeseries(wid, options = {}) {
9966
+ const params = withFilters(new URLSearchParams(), options);
9967
+ if (options.destinationId !== void 0) {
9968
+ params.append("destinationId", String(options.destinationId));
9969
+ }
9970
+ if (options.granularity) params.append("granularity", options.granularity);
9971
+ if (options.tz) params.append("tz", options.tz);
9972
+ return this.fetch(
9973
+ `w/${wid}/tracked-links/timeseries${suffix(params)}`
9974
+ );
9975
+ }
9976
+ /**
9977
+ * Delete one destination: its short links stop resolving and its recorded
9978
+ * clicks are removed.
9979
+ *
9980
+ * Turning the workspace setting off only stops NEW links being minted —
9981
+ * links already delivered to members keep working. This is the deliberate
9982
+ * way to break them.
9983
+ */
9984
+ async deleteTrackedLinkDestination(wid, destinationId) {
9985
+ return this.fetch(
9986
+ `w/${wid}/tracked-links/destinations/${destinationId}`,
9987
+ { method: "DELETE" }
9988
+ );
9989
+ }
9990
+ /** Delete every destination, its links, and its clicks. Irreversible. */
9991
+ async clearTrackedLinkDestinations(wid) {
9992
+ return this.fetch(`w/${wid}/tracked-links/destinations`, {
9993
+ method: "DELETE"
9994
+ });
9995
+ }
9996
+ };
9997
+
9813
9998
  // src/api/journeys.ts
9814
9999
  var JourneysApi = class extends BaseApiClient {
9815
10000
  /**
@@ -10800,6 +10985,20 @@ var WorkspacesApi = class extends BaseApiClient {
10800
10985
  if (featured !== void 0) params.set("featured", String(featured));
10801
10986
  return this.fetch(`products?${params.toString()}`);
10802
10987
  }
10988
+ /**
10989
+ * Check whether a promo code is usable, without redeeming it.
10990
+ *
10991
+ * Reserves nothing, so it is safe to call as a form field settles. Redemption
10992
+ * happens server-side after checkout completes, when the organization and its
10993
+ * subscription exist.
10994
+ */
10995
+ async previewPromoCode(code, options) {
10996
+ return this.fetch("promo-codes/preview", {
10997
+ method: "POST",
10998
+ body: JSON.stringify({ code }),
10999
+ signal: options?.signal
11000
+ });
11001
+ }
10803
11002
  /** Get a publicly accessible product by ID. */
10804
11003
  async getPublicProduct(id) {
10805
11004
  return this.fetch(`products/${id}`);
@@ -10956,6 +11155,7 @@ function createApiModules(apiKey, baseUrl, customFetch) {
10956
11155
  members: new MembersApi(apiKey, baseUrl, customFetch),
10957
11156
  milestones: new MilestonesApi(apiKey, baseUrl, customFetch),
10958
11157
  motd: new MotdApi(apiKey, baseUrl, customFetch),
11158
+ trackedLinks: new TrackedLinksApi(apiKey, baseUrl, customFetch),
10959
11159
  confluence: new ConfluenceApi(apiKey, baseUrl, customFetch),
10960
11160
  mondayIntegration: new MondayIntegrationApi(apiKey, baseUrl, customFetch),
10961
11161
  notificationRules: new NotificationRulesApi(apiKey, baseUrl, customFetch),
@@ -11021,6 +11221,7 @@ var WORKSPACE_METHOD_NAMES = [
11021
11221
  "checkSiteSlugAvailability",
11022
11222
  "clearConnectionMemberExclusion",
11023
11223
  "clearMemberSwitch",
11224
+ "clearTrackedLinkDestinations",
11024
11225
  "clickWorkspaceSupportRequestResource",
11025
11226
  "cloneDataType",
11026
11227
  "cloneTask",
@@ -11096,6 +11297,7 @@ var WORKSPACE_METHOD_NAMES = [
11096
11297
  "createSupervisor",
11097
11298
  "createTask",
11098
11299
  "createTeamsApp",
11300
+ "createTrackedLinkDestination",
11099
11301
  "createWorkflow",
11100
11302
  "createWorkflowContributor",
11101
11303
  "createWorkflowFromTemplate",
@@ -11161,6 +11363,7 @@ var WORKSPACE_METHOD_NAMES = [
11161
11363
  "deleteSupervisor",
11162
11364
  "deleteTask",
11163
11365
  "deleteTeamsApp",
11366
+ "deleteTrackedLinkDestination",
11164
11367
  "deleteWidgetDomain",
11165
11368
  "deleteWorkflow",
11166
11369
  "deleteWorkflowContributor",
@@ -11285,6 +11488,7 @@ var WORKSPACE_METHOD_NAMES = [
11285
11488
  "getChatModelOverride",
11286
11489
  "getChatPhoneCalls",
11287
11490
  "getChatSkills",
11491
+ "getManagerSkills",
11288
11492
  "getChatTodos",
11289
11493
  "getChatTokenUsage",
11290
11494
  "getChatToolCallMessages",
@@ -11465,6 +11669,7 @@ var WORKSPACE_METHOD_NAMES = [
11465
11669
  "getPublicFolder",
11466
11670
  "getPublicFolderFiles",
11467
11671
  "getPublicProducts",
11672
+ "previewPromoCode",
11468
11673
  "getQualification",
11469
11674
  "getQualifications",
11470
11675
  "getRecordingInfo",
@@ -11511,6 +11716,10 @@ var WORKSPACE_METHOD_NAMES = [
11511
11716
  "getTool",
11512
11717
  "getToolCallNames",
11513
11718
  "getToolkits",
11719
+ "getTrackedLinkDestinations",
11720
+ "getTrackedLinkStats",
11721
+ "getTrackedLinkSummary",
11722
+ "getTrackedLinkTimeseries",
11514
11723
  "getUnreadNotificationCount",
11515
11724
  "getUsageDashboard",
11516
11725
  "getVariableRegistry",
@@ -11745,6 +11954,7 @@ var WORKSPACE_METHOD_NAMES = [
11745
11954
  "updateTask",
11746
11955
  "updateTeamsApp",
11747
11956
  "updateThemeSettings",
11957
+ "updateTrackedLinkDestination",
11748
11958
  "uploadFile",
11749
11959
  "updateVoicemailStatus",
11750
11960
  "updateWorkflow",
@@ -11842,6 +12052,7 @@ function bindChatsMethods(target, chats) {
11842
12052
  target.getChatTokenUsage = chats.getChatTokenUsage.bind(chats);
11843
12053
  target.getChatTodos = chats.getChatTodos.bind(chats);
11844
12054
  target.getChatSkills = chats.getChatSkills.bind(chats);
12055
+ target.getManagerSkills = chats.getManagerSkills.bind(chats);
11845
12056
  target.getChatsNeedsResponse = chats.getChatsNeedsResponse.bind(chats);
11846
12057
  target.getChatsDailyCreationStats = chats.getChatsDailyCreationStats.bind(chats);
11847
12058
  target.getToolCallNames = chats.getToolCallNames.bind(chats);
@@ -11915,6 +12126,18 @@ function bindMotdMethods(target, motd) {
11915
12126
  target.getMotd = motd.getMotd.bind(motd);
11916
12127
  }
11917
12128
 
12129
+ // src/client/bindings/tracked-links.ts
12130
+ function bindTrackedLinksMethods(target, trackedLinks) {
12131
+ target.getTrackedLinkSummary = trackedLinks.getTrackedLinkSummary.bind(trackedLinks);
12132
+ target.getTrackedLinkDestinations = trackedLinks.getTrackedLinkDestinations.bind(trackedLinks);
12133
+ target.getTrackedLinkStats = trackedLinks.getTrackedLinkStats.bind(trackedLinks);
12134
+ target.getTrackedLinkTimeseries = trackedLinks.getTrackedLinkTimeseries.bind(trackedLinks);
12135
+ target.createTrackedLinkDestination = trackedLinks.createTrackedLinkDestination.bind(trackedLinks);
12136
+ target.updateTrackedLinkDestination = trackedLinks.updateTrackedLinkDestination.bind(trackedLinks);
12137
+ target.deleteTrackedLinkDestination = trackedLinks.deleteTrackedLinkDestination.bind(trackedLinks);
12138
+ target.clearTrackedLinkDestinations = trackedLinks.clearTrackedLinkDestinations.bind(trackedLinks);
12139
+ }
12140
+
11918
12141
  // src/client/bindings/data-types.ts
11919
12142
  function bindDataTypesMethods(target, dataTypes) {
11920
12143
  target.getDataTypes = dataTypes.getDataTypes.bind(dataTypes);
@@ -12410,6 +12633,7 @@ function bindToolkitsMethods(target, toolkits, templates, aiModels, customToolki
12410
12633
  target.getSTTModels = aiModels.getSTTModels.bind(aiModels);
12411
12634
  target.getTTSModels = aiModels.getTTSModels.bind(aiModels);
12412
12635
  target.getVoiceModels = aiModels.getVoiceModels.bind(aiModels);
12636
+ target.getVoicePresets = aiModels.getVoicePresets.bind(aiModels);
12413
12637
  target.getAllModels = aiModels.getAllModels.bind(aiModels);
12414
12638
  target.getCustomToolkits = customToolkits.getCustomToolkits.bind(customToolkits);
12415
12639
  target.getCustomToolkit = customToolkits.getCustomToolkit.bind(customToolkits);
@@ -12881,6 +13105,7 @@ var GravityRailClient = class {
12881
13105
  getChatTokenUsage;
12882
13106
  getChatTodos;
12883
13107
  getChatSkills;
13108
+ getManagerSkills;
12884
13109
  getChatsNeedsResponse;
12885
13110
  getChatsDailyCreationStats;
12886
13111
  getToolCallNames;
@@ -13068,6 +13293,15 @@ var GravityRailClient = class {
13068
13293
  getDashboardWorkflowAssignmentStats;
13069
13294
  // MOTD API
13070
13295
  getMotd;
13296
+ // Tracked Links analytics (#10934)
13297
+ getTrackedLinkSummary;
13298
+ getTrackedLinkDestinations;
13299
+ getTrackedLinkStats;
13300
+ getTrackedLinkTimeseries;
13301
+ createTrackedLinkDestination;
13302
+ updateTrackedLinkDestination;
13303
+ deleteTrackedLinkDestination;
13304
+ clearTrackedLinkDestinations;
13071
13305
  // Journeys API
13072
13306
  getJourneys;
13073
13307
  getJourney;
@@ -13172,6 +13406,7 @@ var GravityRailClient = class {
13172
13406
  getProduct;
13173
13407
  getWorkspaceProduct;
13174
13408
  getPublicProducts;
13409
+ previewPromoCode;
13175
13410
  getPublicProduct;
13176
13411
  createProduct;
13177
13412
  updateProduct;
@@ -13526,6 +13761,7 @@ var GravityRailClient = class {
13526
13761
  getSTTModels;
13527
13762
  getTTSModels;
13528
13763
  getVoiceModels;
13764
+ getVoicePresets;
13529
13765
  getAllModels;
13530
13766
  getCustomToolkits;
13531
13767
  getCustomToolkit;
@@ -13856,6 +14092,7 @@ var GravityRailClient = class {
13856
14092
  bindQueriesMethods(this, apis.queries);
13857
14093
  bindDashboardsMethods(this, apis.dashboards);
13858
14094
  bindMotdMethods(this, apis.motd);
14095
+ bindTrackedLinksMethods(this, apis.trackedLinks);
13859
14096
  bindJourneysMethods(this, apis.journeys);
13860
14097
  bindExperimentsMethods(this, apis.experiments);
13861
14098
  bindOperatorMethods(this, apis.operatorGroups);
@@ -14063,6 +14300,7 @@ var GravityRailClient = class {
14063
14300
  CustomerActivityEventStatus,
14064
14301
  CustomerActivityReviewOutcome,
14065
14302
  CustomerActivitySeverity,
14303
+ CustomerActivitySlaThresholdSource,
14066
14304
  CustomersApi,
14067
14305
  DEFAULT_CHAT_MODEL,
14068
14306
  DEFAULT_CUSTOM_VOICE_MODEL,
@@ -14144,7 +14382,10 @@ var GravityRailClient = class {
14144
14382
  PhiPostureReasonCode,
14145
14383
  PhiPostureTransitionResponseTargetType,
14146
14384
  PhoneNumbersApi,
14385
+ PilotRelationshipType,
14386
+ PilotStage,
14147
14387
  ProductType,
14388
+ PromoCodeStatus,
14148
14389
  PromptsApi,
14149
14390
  PronunciationsApi,
14150
14391
  QUERY_VALUELESS_OPS,
@@ -14234,6 +14475,7 @@ var GravityRailClient = class {
14234
14475
  bindSupportRequestMethods,
14235
14476
  bindTasksMethods,
14236
14477
  bindToolkitsMethods,
14478
+ bindTrackedLinksMethods,
14237
14479
  bindWorkflowsMethods,
14238
14480
  bindWorkspacesMethods,
14239
14481
  canPreviewVoice,