@gravity-rail/sdk 0.15.0 → 0.17.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.
Files changed (42) hide show
  1. package/dist/agui.cjs +13 -1
  2. package/dist/agui.cjs.map +1 -1
  3. package/dist/agui.d.cts +5 -1
  4. package/dist/agui.d.ts +5 -1
  5. package/dist/agui.js +12 -1
  6. package/dist/agui.js.map +1 -1
  7. package/dist/{chunk-QTJQTTIR.js → chunk-CEFOCGYO.js} +521 -69
  8. package/dist/chunk-CEFOCGYO.js.map +1 -0
  9. package/dist/{chunk-GP6ICMWF.js → chunk-PJFEGUHM.js} +8 -1
  10. package/dist/chunk-PJFEGUHM.js.map +1 -0
  11. package/dist/{client-BLuz00Qr.d.cts → client-8xakCsVs.d.cts} +2245 -232
  12. package/dist/{client-CefA5Mxe.d.ts → client-ASnNEN1U.d.ts} +2245 -232
  13. package/dist/helpers.cjs +7 -0
  14. package/dist/helpers.cjs.map +1 -1
  15. package/dist/helpers.d.cts +2 -2
  16. package/dist/helpers.d.ts +2 -2
  17. package/dist/helpers.js +1 -1
  18. package/dist/index.cjs +898 -87
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.d.cts +182 -9
  21. package/dist/index.d.ts +182 -9
  22. package/dist/index.js +397 -23
  23. package/dist/index.js.map +1 -1
  24. package/dist/internal.cjs +607 -68
  25. package/dist/internal.cjs.map +1 -1
  26. package/dist/internal.d.cts +328 -7
  27. package/dist/internal.d.ts +328 -7
  28. package/dist/internal.js +86 -4
  29. package/dist/internal.js.map +1 -1
  30. package/dist/{revision-state-axZ62kJk.d.cts → revision-state-BDsQo_xD.d.cts} +4 -2
  31. package/dist/{revision-state-DL1ViZ57.d.ts → revision-state-Cz3mcUHc.d.ts} +4 -2
  32. package/dist/schemas.cjs +179 -217
  33. package/dist/schemas.cjs.map +1 -1
  34. package/dist/schemas.d.cts +2 -2
  35. package/dist/schemas.d.ts +2 -2
  36. package/dist/schemas.js +179 -210
  37. package/dist/schemas.js.map +1 -1
  38. package/dist/{tasks-Boi6AxGp.d.cts → tasks-Z4GcIqgO.d.cts} +200 -81
  39. package/dist/{tasks-Boi6AxGp.d.ts → tasks-Z4GcIqgO.d.ts} +200 -81
  40. package/package.json +3 -3
  41. package/dist/chunk-GP6ICMWF.js.map +0 -1
  42. package/dist/chunk-QTJQTTIR.js.map +0 -1
package/dist/internal.cjs CHANGED
@@ -49,6 +49,7 @@ __export(internal_exports, {
49
49
  BusinessType: () => BusinessType,
50
50
  CELApi: () => CELApi,
51
51
  CHAT_TYPES: () => CHAT_TYPES,
52
+ CONFIG_HEALTH_FACADE_CHECK_SLUGS: () => CONFIG_HEALTH_FACADE_CHECK_SLUGS,
52
53
  CalendarEventStatus: () => CalendarEventStatus,
53
54
  CalendarPermissionType: () => CalendarPermissionType,
54
55
  CalendarScheduleAvailabilityType: () => CalendarScheduleAvailabilityType,
@@ -69,6 +70,7 @@ __export(internal_exports, {
69
70
  CustomerActivityEventStatus: () => CustomerActivityEventStatus,
70
71
  CustomerActivityReviewOutcome: () => CustomerActivityReviewOutcome,
71
72
  CustomerActivitySeverity: () => CustomerActivitySeverity,
73
+ CustomerActivitySlaThresholdSource: () => CustomerActivitySlaThresholdSource,
72
74
  CustomersApi: () => CustomersApi,
73
75
  DEFAULT_CHAT_MODEL: () => DEFAULT_CHAT_MODEL,
74
76
  DEFAULT_CUSTOM_VOICE_MODEL: () => DEFAULT_CUSTOM_VOICE_MODEL,
@@ -116,7 +118,13 @@ __export(internal_exports, {
116
118
  MembersApi: () => MembersApi,
117
119
  MenuItemResponseItemType: () => MenuItemResponseItemType,
118
120
  MenuItemType: () => MenuItemResponseItemType,
119
- MilestonesApi: () => MilestonesApi,
121
+ MergeMemberRolesRequestAccessStrategy: () => MergeMemberRolesRequestAccessStrategy,
122
+ MetricChatTypeEnum: () => MetricChatType,
123
+ MetricDenominatorEnum: () => MetricDenominator,
124
+ MetricKindEnum: () => MetricKind,
125
+ MetricSourceEnum: () => MetricSource,
126
+ MetricTypeEnum: () => MetricType,
127
+ MetricUnitEnum: () => MetricUnit,
120
128
  ModelProvider: () => ModelProvider,
121
129
  ModelType: () => ModelType,
122
130
  MondayIntegrationApi: () => MondayIntegrationApi,
@@ -150,7 +158,10 @@ __export(internal_exports, {
150
158
  PhiPostureReasonCode: () => PhiPostureReasonCode,
151
159
  PhiPostureTransitionResponseTargetType: () => PhiPostureTransitionResponseTargetType,
152
160
  PhoneNumbersApi: () => PhoneNumbersApi,
161
+ PilotRelationshipType: () => PilotRelationshipType,
162
+ PilotStage: () => PilotStage,
153
163
  ProductType: () => ProductType,
164
+ PromoCodeStatus: () => PromoCodeStatus,
154
165
  PromptsApi: () => PromptsApi,
155
166
  PronunciationsApi: () => PronunciationsApi,
156
167
  QUERY_VALUELESS_OPS: () => QUERY_VALUELESS_OPS,
@@ -202,12 +213,15 @@ __export(internal_exports, {
202
213
  WorkflowAccessWarningResourceType: () => WorkflowAccessWarningResourceType,
203
214
  WorkflowNotesApi: () => WorkflowNotesApi,
204
215
  WorkflowResourceType: () => WorkflowAccessWarningResourceType,
216
+ WorkflowRoutingMode: () => WorkflowRoutingMode,
205
217
  WorkflowsApi: () => WorkflowsApi,
206
218
  WorkspaceFeature: () => WorkspaceFeature,
207
219
  WorkspaceInvitationsApi: () => WorkspaceInvitationsApi,
208
220
  WorkspaceProvisionStatus: () => WorkspaceProvisionStatus,
209
221
  WorkspacesApi: () => WorkspacesApi,
222
+ archivedMemberConflictId: () => archivedMemberConflictId,
210
223
  areDependenciesSatisfied: () => areDependenciesSatisfied,
224
+ asIdentifiedMemberContactConflict: () => asIdentifiedMemberContactConflict,
211
225
  bindAccessGrantsMethods: () => bindAccessGrantsMethods,
212
226
  bindAgentTasksMethods: () => bindAgentTasksMethods,
213
227
  bindAgentsMethods: () => bindAgentsMethods,
@@ -227,6 +241,7 @@ __export(internal_exports, {
227
241
  bindIntegrationsMethods: () => bindIntegrationsMethods,
228
242
  bindJourneysMethods: () => bindJourneysMethods,
229
243
  bindMembersMethods: () => bindMembersMethods,
244
+ bindMetricsMethods: () => bindMetricsMethods,
230
245
  bindMotdMethods: () => bindMotdMethods,
231
246
  bindOperatorMethods: () => bindOperatorMethods,
232
247
  bindOrgMethods: () => bindOrgMethods,
@@ -240,6 +255,7 @@ __export(internal_exports, {
240
255
  bindSupportRequestMethods: () => bindSupportRequestMethods,
241
256
  bindTasksMethods: () => bindTasksMethods,
242
257
  bindToolkitsMethods: () => bindToolkitsMethods,
258
+ bindTrackedLinksMethods: () => bindTrackedLinksMethods,
243
259
  bindWorkflowsMethods: () => bindWorkflowsMethods,
244
260
  bindWorkspacesMethods: () => bindWorkspacesMethods,
245
261
  canPreviewVoice: () => canPreviewVoice,
@@ -266,9 +282,13 @@ __export(internal_exports, {
266
282
  getTTSProvider: () => getTTSProvider,
267
283
  getVoiceModelId: () => getVoiceModelId,
268
284
  initializeFeatures: () => initializeFeatures,
285
+ isAccountContactConflict: () => isAccountContactConflict,
269
286
  isAgentNoteOrigin: () => isAgentNoteOrigin,
270
287
  isChatType: () => isChatType,
288
+ isConfigHealthFacadeCheckSlug: () => isConfigHealthFacadeCheckSlug,
271
289
  isFeatureAvailable: () => isFeatureAvailable,
290
+ isIdentifiedMemberContactConflict: () => isIdentifiedMemberContactConflict,
291
+ isMemberContactConflict: () => isMemberContactConflict,
272
292
  isPositiveRating: () => isPositiveRating,
273
293
  isRegistryInitialized: () => isRegistryInitialized,
274
294
  isSMSDeliveryFailureStatus: () => isSMSDeliveryFailureStatus,
@@ -439,6 +459,12 @@ var MemberImportPreviewRowAction = {
439
459
  error: "error"
440
460
  };
441
461
 
462
+ // src/types/generated/member_role.ts
463
+ var MergeMemberRolesRequestAccessStrategy = {
464
+ union: "union",
465
+ target_only: "target_only"
466
+ };
467
+
442
468
  // src/types/member-types.ts
443
469
  var MemberType = /* @__PURE__ */ ((MemberType2) => {
444
470
  MemberType2["ANONYMOUS"] = "anonymous";
@@ -447,6 +473,37 @@ var MemberType = /* @__PURE__ */ ((MemberType2) => {
447
473
  MemberType2["AGENT"] = "agent";
448
474
  return MemberType2;
449
475
  })(MemberType || {});
476
+ function structuredErrorDetail(error) {
477
+ if (!error || typeof error !== "object") return null;
478
+ const detail = error.errorData;
479
+ if (!detail || typeof detail !== "object") return null;
480
+ return detail;
481
+ }
482
+ function isMemberContactConflict(error) {
483
+ const d = structuredErrorDetail(error);
484
+ if (!d || d.code !== "MEMBER_CONTACT_CONFLICT") return null;
485
+ if (d.conflictingMemberId !== null && typeof d.conflictingMemberId !== "number") {
486
+ return null;
487
+ }
488
+ return d;
489
+ }
490
+ function isAccountContactConflict(error) {
491
+ const d = structuredErrorDetail(error);
492
+ if (!d || d.code !== "ACCOUNT_CONTACT_CONFLICT") return null;
493
+ return d;
494
+ }
495
+ function archivedMemberConflictId(error) {
496
+ const d = structuredErrorDetail(error);
497
+ if (!d || d.code !== "ARCHIVED_MEMBER_CONFLICT") return null;
498
+ return typeof d.archivedMemberId === "number" ? d.archivedMemberId : null;
499
+ }
500
+ function isIdentifiedMemberContactConflict(conflict) {
501
+ return !!conflict && conflict.conflictingMemberId !== null;
502
+ }
503
+ function asIdentifiedMemberContactConflict(error) {
504
+ const conflict = isMemberContactConflict(error);
505
+ return isIdentifiedMemberContactConflict(conflict) ? conflict : null;
506
+ }
450
507
 
451
508
  // src/types/mcp-server-types.ts
452
509
  var McpServerState = /* @__PURE__ */ ((McpServerState2) => {
@@ -492,6 +549,7 @@ var EventRuleEventType = /* @__PURE__ */ ((EventRuleEventType2) => {
492
549
  EventRuleEventType2["DATA_RECORD_UPDATED"] = "data_record:updated";
493
550
  EventRuleEventType2["DATA_RECORD_CHANGED"] = "data_record:changed";
494
551
  EventRuleEventType2["CHAT_CREATED"] = "chat:created";
552
+ EventRuleEventType2["CHAT_SUMMARY"] = "chat:summary";
495
553
  EventRuleEventType2["CHAT_CALLBACK"] = "chat:callback";
496
554
  EventRuleEventType2["MEMBER_UPDATED"] = "member:updated";
497
555
  EventRuleEventType2["ROUTINE_TRIGGERED"] = "routine:triggered";
@@ -892,6 +950,18 @@ var ConsentMethod = /* @__PURE__ */ ((ConsentMethod2) => {
892
950
  return ConsentMethod2;
893
951
  })(ConsentMethod || {});
894
952
 
953
+ // src/types/config-health-types.ts
954
+ var CONFIG_HEALTH_FACADE_CHECK_SLUGS = [
955
+ "workflow.config",
956
+ "journey.authoring",
957
+ "workflow.access",
958
+ "routine.workflow_access",
959
+ "workspace.validation"
960
+ ];
961
+ function isConfigHealthFacadeCheckSlug(value) {
962
+ return CONFIG_HEALTH_FACADE_CHECK_SLUGS.includes(value);
963
+ }
964
+
895
965
  // src/types/experiment-types.ts
896
966
  function parseExperimentStatCount(value) {
897
967
  return typeof value === "number" ? value : null;
@@ -946,6 +1016,15 @@ var AbilityTypeSlugs = {
946
1016
  CEL_ROUTING: "system:cel_routing"
947
1017
  };
948
1018
 
1019
+ // src/types/generated/promo_code_service.ts
1020
+ var PromoCodeStatus = {
1021
+ active: "active",
1022
+ scheduled: "scheduled",
1023
+ expired: "expired",
1024
+ inactive: "inactive",
1025
+ exhausted: "exhausted"
1026
+ };
1027
+
949
1028
  // src/types/query-engine-types.ts
950
1029
  var QUERY_VALUELESS_OPS = /* @__PURE__ */ new Set([
951
1030
  "isEmpty",
@@ -999,6 +1078,10 @@ var CustomerActivitySeverity = {
999
1078
  high: "high",
1000
1079
  critical: "critical"
1001
1080
  };
1081
+ var CustomerActivitySlaThresholdSource = {
1082
+ default: "default",
1083
+ request: "request"
1084
+ };
1002
1085
 
1003
1086
  // src/types/generated/phi_posture.ts
1004
1087
  var PhiPolicyReason = {
@@ -1133,6 +1216,9 @@ var PhiPostureReasonCode = {
1133
1216
  non_phi_policy_aligned: "non_phi_policy_aligned",
1134
1217
  phi_expected_workspace_prohibited: "phi_expected_workspace_prohibited",
1135
1218
  phi_authorization_not_evaluated: "phi_authorization_not_evaluated",
1219
+ phi_coverage_satisfied: "phi_coverage_satisfied",
1220
+ phi_coverage_missing: "phi_coverage_missing",
1221
+ phi_coverage_expired: "phi_coverage_expired",
1136
1222
  non_phi_org_workspace_permitted: "non_phi_org_workspace_permitted",
1137
1223
  phi_permitted_org_not_expected: "phi_permitted_org_not_expected",
1138
1224
  organization_review_expired: "organization_review_expired",
@@ -1333,6 +1419,36 @@ function isPositiveRating(rating) {
1333
1419
  return rating != null && rating >= POSITIVE_RATING_THRESHOLD;
1334
1420
  }
1335
1421
 
1422
+ // src/types/generated/metric.ts
1423
+ var MetricChatType = {
1424
+ assignment: "assignment",
1425
+ dm: "dm",
1426
+ contributor: "contributor"
1427
+ };
1428
+ var MetricDenominator = {
1429
+ observations: "observations",
1430
+ unique_members: "unique_members"
1431
+ };
1432
+ var MetricKind = {
1433
+ observation: "observation",
1434
+ gauge: "gauge"
1435
+ };
1436
+ var MetricSource = {
1437
+ chat: "chat",
1438
+ member_filter: "member_filter"
1439
+ };
1440
+ var MetricType = {
1441
+ expression: "expression",
1442
+ rubric: "rubric",
1443
+ filter_count: "filter_count"
1444
+ };
1445
+ var MetricUnit = {
1446
+ rate: "rate",
1447
+ score: "score",
1448
+ count: "count",
1449
+ custom: "custom"
1450
+ };
1451
+
1336
1452
  // src/types/generated/site.ts
1337
1453
  var MenuItemResponseItemType = {
1338
1454
  page: "page",
@@ -1350,7 +1466,9 @@ var AbilityConfigIssueCode = {
1350
1466
  invalid_state: "invalid_state",
1351
1467
  feature_disabled: "feature_disabled",
1352
1468
  missing_connection: "missing_connection",
1353
- external_drift: "external_drift"
1469
+ external_drift: "external_drift",
1470
+ missing_task_instructions: "missing_task_instructions",
1471
+ no_qualification_scenarios: "no_qualification_scenarios"
1354
1472
  };
1355
1473
  var AbilityConfigIssueSeverity = {
1356
1474
  warning: "warning",
@@ -1363,6 +1481,26 @@ var WorkflowAccessWarningResourceType = {
1363
1481
  calendar: "calendar"
1364
1482
  };
1365
1483
 
1484
+ // src/types/generated/workflow.ts
1485
+ var WorkflowRoutingMode = {
1486
+ open_world: "open_world",
1487
+ strict: "strict"
1488
+ };
1489
+
1490
+ // src/types/generated/pilot_program.ts
1491
+ var PilotRelationshipType = {
1492
+ direct_pilot: "direct_pilot",
1493
+ partner_channel: "partner_channel"
1494
+ };
1495
+ var PilotStage = {
1496
+ signed: "signed",
1497
+ live: "live",
1498
+ value_evidenced: "value_evidenced",
1499
+ converted: "converted",
1500
+ on_hold: "on_hold",
1501
+ churned: "churned"
1502
+ };
1503
+
1366
1504
  // src/app-context.ts
1367
1505
  function formatAppContextAsMarkdown(context) {
1368
1506
  if (!context) {
@@ -2234,6 +2372,13 @@ var ApiError = class extends Error {
2234
2372
  * Populated when the backend returns a WorkflowValidationErrorResponse.
2235
2373
  */
2236
2374
  validationErrors;
2375
+ /**
2376
+ * The raw structured `detail` object when the backend returned one (a body
2377
+ * with `error: true` or a `code`). Declared here rather than bolted on with
2378
+ * `as any` at the throw site so consumers can narrow it with a type guard —
2379
+ * see `isMemberContactConflict` in `types/member-types`.
2380
+ */
2381
+ errorData;
2237
2382
  constructor(message, statusCode, errors, validationErrors) {
2238
2383
  super(message);
2239
2384
  this.statusCode = statusCode;
@@ -2934,6 +3079,18 @@ var AIModelsApi = class extends BaseApiClient {
2934
3079
  const url = queryString ? `ai-models/realtime?${queryString}` : "ai-models/realtime";
2935
3080
  return this.fetch(url);
2936
3081
  }
3082
+ /**
3083
+ * Get the voice presets offered by the simplified voice picker.
3084
+ *
3085
+ * A preset bundles a realtime speech-to-speech model with one of its native
3086
+ * voices and the settings recommended alongside it, so choosing a voice is
3087
+ * a single decision. Apply one by assigning its `config` wholesale; compare
3088
+ * against it to tell a preset selection from a customised ("Custom") one.
3089
+ * The full engine/voice/settings matrix lives on `getRealtimeModels`.
3090
+ */
3091
+ async getVoicePresets() {
3092
+ return this.fetch("ai-models/voice-presets");
3093
+ }
2937
3094
  /**
2938
3095
  * Get available voice models with metadata
2939
3096
  */
@@ -4063,6 +4220,10 @@ var ChatsApi = class extends BaseApiClient {
4063
4220
  `w/${wid}/chats/${chatId}/skills`
4064
4221
  );
4065
4222
  }
4223
+ /** List built-in skills selectable before a Manager Chat (and on Routine manager tasks). */
4224
+ async getManagerSkills(wid) {
4225
+ return this.fetch(`w/${wid}/chats/manager/skills`);
4226
+ }
4066
4227
  /** List chat IDs that need a response. */
4067
4228
  async getChatsNeedsResponse(wid) {
4068
4229
  return this.fetch(`w/${wid}/chats/needs-response`);
@@ -4572,6 +4733,32 @@ var DashboardsApi = class extends BaseApiClient {
4572
4733
  `w/${wid}/dashboards/stats/workflow-assignments`
4573
4734
  );
4574
4735
  }
4736
+ /**
4737
+ * Current saved-configuration health across every family (Workflow
4738
+ * configuration, Journey authoring, Workflow access, Routine → Workflow
4739
+ * access, and the workspace lint).
4740
+ *
4741
+ * Requires ALL of `workflows:read`, `journeys:read`, `automations:read`,
4742
+ * `datatypes:read`, `members:read`, and `member_roles:read` — a pruned
4743
+ * subset would render as "all configuration is healthy".
4744
+ *
4745
+ * `page`/`pageSize` bound the response only; every family is evaluated in
4746
+ * full before the issue list is sliced. `check`/`severity` narrow the issue
4747
+ * list server-side, before pagination — filtering a single page in the
4748
+ * client cannot find a match that lives on a later one. `summary` and
4749
+ * `checks` are always workspace-global.
4750
+ */
4751
+ async getConfigurationHealth(wid, options) {
4752
+ const params = new URLSearchParams();
4753
+ if (options?.page !== void 0) params.append("page", options.page.toString());
4754
+ if (options?.pageSize !== void 0) params.append("pageSize", options.pageSize.toString());
4755
+ if (options?.check !== void 0) params.append("check", options.check);
4756
+ if (options?.severity !== void 0) params.append("severity", options.severity);
4757
+ const query = params.toString();
4758
+ return this.fetch(
4759
+ `w/${wid}/configuration-health${query ? `?${query}` : ""}`
4760
+ );
4761
+ }
4575
4762
  };
4576
4763
 
4577
4764
  // src/api/data-types.ts
@@ -5683,9 +5870,9 @@ var DocumoFaxApi = class extends BaseApiClient {
5683
5870
  params?.status?.forEach((value) => query.append("status", value));
5684
5871
  if (params?.receivedAfter) query.set("receivedAfter", params.receivedAfter);
5685
5872
  if (params?.receivedBefore) query.set("receivedBefore", params.receivedBefore);
5686
- const suffix = query.toString() === "" ? "" : `?${query.toString()}`;
5873
+ const suffix2 = query.toString() === "" ? "" : `?${query.toString()}`;
5687
5874
  return this.fetch(
5688
- `w/${wid}/app-connections/documo-fax/faxes${suffix}`
5875
+ `w/${wid}/app-connections/documo-fax/faxes${suffix2}`
5689
5876
  );
5690
5877
  }
5691
5878
  /**
@@ -6759,12 +6946,34 @@ var MembersApi = class extends BaseApiClient {
6759
6946
  body: JSON.stringify(memberRole)
6760
6947
  });
6761
6948
  }
6762
- /** Delete a member role. */
6949
+ /** Delete a member role. Default roles (``systemKey`` set) return 403. */
6763
6950
  async deleteMemberRole(wid, id) {
6764
6951
  return this.fetch(`w/${wid}/member-roles/${id}`, {
6765
6952
  method: "DELETE"
6766
6953
  });
6767
6954
  }
6955
+ /**
6956
+ * Describe legacy duplicate default roles in this workspace. Read-only.
6957
+ *
6958
+ * Workspaces seeded by older versions of the product can carry the same
6959
+ * default role under several spellings ("manager" next to "Manager"). This
6960
+ * reports which ones should be merged and exactly how many members and
6961
+ * references each merge would move.
6962
+ */
6963
+ async getMemberRoleCleanupPlan(wid) {
6964
+ return this.fetch(`w/${wid}/member-roles/cleanup-plan`);
6965
+ }
6966
+ /**
6967
+ * Move every member and reference from one role to another, then delete the
6968
+ * source role. Requires `member_roles:admin`. The source cannot be a default
6969
+ * role.
6970
+ */
6971
+ async mergeMemberRoles(wid, request) {
6972
+ return this.fetch(`w/${wid}/member-roles/cleanup/merge`, {
6973
+ method: "POST",
6974
+ body: JSON.stringify(request)
6975
+ });
6976
+ }
6768
6977
  // Import/Export Members API
6769
6978
  /**
6770
6979
  * Read-only preview classifying each CSV row before any write (GRA-5545).
@@ -7067,46 +7276,6 @@ var MembersApi = class extends BaseApiClient {
7067
7276
  }
7068
7277
  };
7069
7278
 
7070
- // src/api/milestones.ts
7071
- var MilestonesApi = class extends BaseApiClient {
7072
- /** List milestones in a workspace with optional pagination and sorting. */
7073
- async getMilestones(wid, options = {}) {
7074
- const params = new URLSearchParams();
7075
- if (options.page) params.append("page", options.page.toString());
7076
- if (options.pageSize) params.append("pageSize", options.pageSize.toString());
7077
- if (options.sortBy) params.append("sortBy", options.sortBy);
7078
- if (options.sortOrder) params.append("sortOrder", options.sortOrder);
7079
- if (options.search) params.append("search", options.search);
7080
- return this.fetch(
7081
- `w/${wid}/milestones${params.toString() ? `?${params.toString()}` : ""}`
7082
- );
7083
- }
7084
- /** Get a single milestone by ID. */
7085
- async getMilestone(wid, id) {
7086
- return this.fetch(`w/${wid}/milestones/${id}`);
7087
- }
7088
- /** Create a new milestone in a workspace. */
7089
- async createMilestone(wid, milestone) {
7090
- return this.fetch(`w/${wid}/milestones`, {
7091
- method: "POST",
7092
- body: JSON.stringify(milestone)
7093
- });
7094
- }
7095
- /** Update an existing milestone with partial data. */
7096
- async updateMilestone(wid, id, milestone) {
7097
- return this.fetch(`w/${wid}/milestones/${id}`, {
7098
- method: "PUT",
7099
- body: JSON.stringify(milestone)
7100
- });
7101
- }
7102
- /** Delete a milestone by ID. */
7103
- async deleteMilestone(wid, id) {
7104
- return this.fetch(`w/${wid}/milestones/${id}`, {
7105
- method: "DELETE"
7106
- });
7107
- }
7108
- };
7109
-
7110
7279
  // src/api/motd.ts
7111
7280
  var MotdApi = class extends BaseApiClient {
7112
7281
  /**
@@ -7292,6 +7461,23 @@ var MondayIntegrationApi = class extends BaseApiClient {
7292
7461
  }
7293
7462
  };
7294
7463
 
7464
+ // src/api/intervention-requests.ts
7465
+ var InterventionRequestsApi = class extends BaseApiClient {
7466
+ /** List intervention requests in a workspace, newest first. */
7467
+ async getInterventionRequests(wid, params = {}) {
7468
+ const query = new URLSearchParams();
7469
+ if (params.kind) query.set("kind", params.kind);
7470
+ if (params.openOnly) query.set("openOnly", "true");
7471
+ if (params.chatId !== void 0) query.set("chatId", String(params.chatId));
7472
+ if (params.unroutedOnly) query.set("unroutedOnly", "true");
7473
+ if (params.limit !== void 0) query.set("limit", String(params.limit));
7474
+ const qs = query.toString();
7475
+ return this.fetch(
7476
+ `w/${wid}/intervention-requests${qs ? `?${qs}` : ""}`
7477
+ );
7478
+ }
7479
+ };
7480
+
7295
7481
  // src/api/notification-rules.ts
7296
7482
  var NotificationRulesApi = class extends BaseApiClient {
7297
7483
  /** List all notification rules in a workspace. */
@@ -7415,6 +7601,41 @@ var OrgApi = class extends BaseApiClient {
7415
7601
  async getCurrentOrgMember(orgIdOrUuid) {
7416
7602
  return this.fetch(`o/${orgIdOrUuid}/me`);
7417
7603
  }
7604
+ /**
7605
+ * Update the settings an org admin owns: name, slug and contact details.
7606
+ *
7607
+ * Deliberately NOT the admin organization update — `primary` and
7608
+ * `enforceCreditLimit` are superuser-only and are not fields on this
7609
+ * endpoint's request model at all.
7610
+ */
7611
+ async updateOrganizationSettings(orgIdOrUuid, data) {
7612
+ return this.fetch(`o/${orgIdOrUuid}`, {
7613
+ method: "PATCH",
7614
+ body: JSON.stringify(data)
7615
+ });
7616
+ }
7617
+ /**
7618
+ * Read this organization's SSO configuration.
7619
+ *
7620
+ * Org-scoped (`org:admin`), unlike the SSO fields on the superuser admin
7621
+ * organization update — an org admin owns their own identity provider.
7622
+ */
7623
+ async getOrgSsoConfig(orgIdOrUuid) {
7624
+ return this.fetch(`o/${orgIdOrUuid}/sso`);
7625
+ }
7626
+ /** Configure this organization's SSO. Requires `org:admin`. */
7627
+ async updateOrgSsoConfig(orgIdOrUuid, data) {
7628
+ return this.fetch(`o/${orgIdOrUuid}/sso`, {
7629
+ method: "PUT",
7630
+ body: JSON.stringify(data)
7631
+ });
7632
+ }
7633
+ /** Remove this organization's SSO configuration. Requires `org:admin`. */
7634
+ async deleteOrgSsoConfig(orgIdOrUuid) {
7635
+ return this.fetch(`o/${orgIdOrUuid}/sso`, {
7636
+ method: "DELETE"
7637
+ });
7638
+ }
7418
7639
  /**
7419
7640
  * Get the billing customer UUID for an organization.
7420
7641
  */
@@ -7535,6 +7756,22 @@ var OrgApi = class extends BaseApiClient {
7535
7756
  async getOrganizationWorkspace(orgIdOrUuid, workspaceUuid) {
7536
7757
  return this.fetch(`o/${orgIdOrUuid}/workspaces/${workspaceUuid}`);
7537
7758
  }
7759
+ /**
7760
+ * Workspace cards for the organization page: identity plus the GLB-side
7761
+ * counts. Any org member may call it — members get the workspaces they
7762
+ * belong to, org:read holders get all of them.
7763
+ */
7764
+ async getOrganizationWorkspaceSummaries(orgIdOrUuid) {
7765
+ return this.fetch(`o/${orgIdOrUuid}/workspaces/summary`);
7766
+ }
7767
+ /**
7768
+ * Workspace-schema aggregates for one card, plus the caller's own member
7769
+ * role. Separate from the list because it opens a session against the
7770
+ * workspace's own schema — each card fetches its own.
7771
+ */
7772
+ async getOrganizationWorkspaceStats(orgIdOrUuid, workspaceUuid) {
7773
+ return this.fetch(`o/${orgIdOrUuid}/workspaces/${workspaceUuid}/stats`);
7774
+ }
7538
7775
  /**
7539
7776
  * Create a workspace in an organization.
7540
7777
  */
@@ -7759,15 +7996,19 @@ var OrgApi = class extends BaseApiClient {
7759
7996
  async getA2PStatus(orgUuid) {
7760
7997
  return this.fetch(`o/${orgUuid}/phone-numbers/a2p/status`);
7761
7998
  }
7999
+ /** Return fixed phone-number and outbound-messaging prices. */
8000
+ async getPhoneBillingPricing(orgUuid) {
8001
+ return this.fetch(`o/${orgUuid}/phone-numbers/pricing`);
8002
+ }
7762
8003
  /**
7763
8004
  * Start A2P brand registration under a legal entity. `legalEntityUuid`
7764
8005
  * is required — brands register per legal entity (Customer Profile);
7765
8006
  * there is no primary-entity fallback.
7766
8007
  */
7767
- async startA2PRegistration(orgUuid, legalEntityUuid, brandName, brandDescription) {
8008
+ async startA2PRegistration(orgUuid, legalEntityUuid, brandName, brandDescription, brandUuid = null) {
7768
8009
  return this.fetch(`o/${orgUuid}/phone-numbers/a2p/start`, {
7769
8010
  method: "POST",
7770
- body: JSON.stringify({ legalEntityUuid, brandName, brandDescription })
8011
+ body: JSON.stringify({ legalEntityUuid, brandName, brandDescription, brandUuid })
7771
8012
  });
7772
8013
  }
7773
8014
  /**
@@ -7973,14 +8214,34 @@ var OrgApi = class extends BaseApiClient {
7973
8214
  );
7974
8215
  }
7975
8216
  /**
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.
8217
+ * The brand's enrollment-form template URL (carries `?brand=…`, no
8218
+ * credential). `url` is null until a Site is linked. Do not append a
8219
+ * patient identifier to this URL — use {@link mintA2PBrandEnrollmentLink}
8220
+ * to get a patient-ready link instead.
7978
8221
  */
7979
8222
  async getA2PBrandEnrollmentUrl(orgUuid, brandUuid) {
7980
8223
  return this.fetch(
7981
8224
  `o/${orgUuid}/a2p-brands/${brandUuid}/enrollment-url`
7982
8225
  );
7983
8226
  }
8227
+ /**
8228
+ * Mint a patient-ready enrollment link for one patient.
8229
+ *
8230
+ * The returned URL carries a fresh, expiring, single-use `?grant=…` bound to
8231
+ * the member that `externalId` resolves to. `externalId` (the patient's
8232
+ * CRM/EHR identifier) travels in the request body, never the query string,
8233
+ * so it stays out of access logs. When it matches no member, the
8234
+ * credential-free template URL is returned rather than an error.
8235
+ */
8236
+ async mintA2PBrandEnrollmentLink(orgUuid, brandUuid, externalId) {
8237
+ return this.fetch(
8238
+ `o/${orgUuid}/a2p-brands/${brandUuid}/enrollment-url`,
8239
+ {
8240
+ method: "POST",
8241
+ body: JSON.stringify({ externalId })
8242
+ }
8243
+ );
8244
+ }
7984
8245
  /**
7985
8246
  * List available member roles for a workspace in the organization.
7986
8247
  */
@@ -8441,6 +8702,67 @@ var PersonasApi = class extends BaseApiClient {
8441
8702
  }
8442
8703
  };
8443
8704
 
8705
+ // src/api/metrics.ts
8706
+ var MetricsApi = class extends BaseApiClient {
8707
+ /** List metric definitions in the workspace, paginated. */
8708
+ async listMetrics(wid, params) {
8709
+ const q = new URLSearchParams();
8710
+ if (params?.page !== void 0) q.set("page", String(params.page));
8711
+ if (params?.pageSize !== void 0) q.set("pageSize", String(params.pageSize));
8712
+ if (params?.includeArchived !== void 0)
8713
+ q.set("includeArchived", String(params.includeArchived));
8714
+ if (params?.source) q.set("source", params.source);
8715
+ const qs = q.toString() ? `?${q.toString()}` : "";
8716
+ return this.fetch(`w/${wid}/metrics${qs}`);
8717
+ }
8718
+ async getMetric(wid, id) {
8719
+ return this.fetch(`w/${wid}/metrics/${id}`);
8720
+ }
8721
+ async createMetric(wid, data) {
8722
+ return this.fetch(`w/${wid}/metrics`, {
8723
+ method: "POST",
8724
+ body: JSON.stringify(data)
8725
+ });
8726
+ }
8727
+ async updateMetric(wid, id, data) {
8728
+ return this.fetch(`w/${wid}/metrics/${id}`, {
8729
+ method: "PUT",
8730
+ body: JSON.stringify(data)
8731
+ });
8732
+ }
8733
+ /** Soft-archive a metric (observations retained). */
8734
+ async deleteMetric(wid, id) {
8735
+ return this.fetch(`w/${wid}/metrics/${id}`, { method: "DELETE" });
8736
+ }
8737
+ async listMetricObservations(wid, metricId, params) {
8738
+ const q = new URLSearchParams();
8739
+ q.set("start", params.start);
8740
+ q.set("end", params.end);
8741
+ if (params.page !== void 0) q.set("page", String(params.page));
8742
+ if (params.pageSize !== void 0) q.set("pageSize", String(params.pageSize));
8743
+ return this.fetch(
8744
+ `w/${wid}/metrics/${metricId}/observations?${q.toString()}`
8745
+ );
8746
+ }
8747
+ async getMetricSeries(wid, metricId, params) {
8748
+ const q = new URLSearchParams();
8749
+ q.set("start", params.start);
8750
+ q.set("end", params.end);
8751
+ if (params.bucket) q.set("bucket", params.bucket);
8752
+ if (params.aggregation) q.set("aggregation", params.aggregation);
8753
+ return this.fetch(
8754
+ `w/${wid}/metrics/${metricId}/series?${q.toString()}`
8755
+ );
8756
+ }
8757
+ /** On-demand compute of enabled chat-source metrics for one chat. */
8758
+ async computeChatMetrics(wid, data) {
8759
+ return this.fetch(`w/${wid}/metrics/compute-for-chat`, {
8760
+ method: "POST",
8761
+ body: JSON.stringify(data)
8762
+ });
8763
+ }
8764
+ };
8765
+
8444
8766
  // src/api/queries.ts
8445
8767
  var QueriesApi = class extends BaseApiClient {
8446
8768
  /** Queryable namespace: native fields, operators per type, DataType record fields. */
@@ -9810,6 +10132,118 @@ var ToolkitsApi = class extends BaseApiClient {
9810
10132
  }
9811
10133
  };
9812
10134
 
10135
+ // src/api/tracked-links.ts
10136
+ function withFilters(params, options) {
10137
+ if (options.dateFrom) params.append("dateFrom", options.dateFrom);
10138
+ if (options.dateTo) params.append("dateTo", options.dateTo);
10139
+ if (options.workflowId !== void 0) params.append("workflowId", String(options.workflowId));
10140
+ return params;
10141
+ }
10142
+ function suffix(params) {
10143
+ const query = params.toString();
10144
+ return query ? `?${query}` : "";
10145
+ }
10146
+ var TrackedLinksApi = class extends BaseApiClient {
10147
+ /** Header counters plus whether shortening is configured and enabled. */
10148
+ async getTrackedLinkSummary(wid, options = {}) {
10149
+ const params = withFilters(new URLSearchParams(), options);
10150
+ return this.fetch(
10151
+ `w/${wid}/tracked-links/summary${suffix(params)}`
10152
+ );
10153
+ }
10154
+ /**
10155
+ * Known destination URLs, most recent first. Powers the "Clicked link"
10156
+ * member-filter autocomplete, so it stays unaggregated and cheap.
10157
+ */
10158
+ async getTrackedLinkDestinations(wid, options = {}) {
10159
+ const params = new URLSearchParams();
10160
+ if (options.q) params.append("q", options.q);
10161
+ if (options.limit !== void 0) params.append("limit", String(options.limit));
10162
+ return this.fetch(
10163
+ `w/${wid}/tracked-links/destinations${suffix(params)}`
10164
+ );
10165
+ }
10166
+ /**
10167
+ * Register a destination an author can reference as `{{links.<key>}}`.
10168
+ *
10169
+ * The URL is deduplicated server-side, so registering one the workspace
10170
+ * already knows adopts that destination — including a row the retired
10171
+ * auto-harvest left unnamed, whose click history then carries forward
10172
+ * under the new key. Registering a URL that already has a *different* key
10173
+ * is a 409: renaming is what `updateTrackedLinkDestination` is for.
10174
+ *
10175
+ * Keys use the same grammar as snippet keys: lowercase letters, digits,
10176
+ * underscores and dots, starting with a letter (`intake_form`,
10177
+ * `docs.privacy`). No hyphens — Jinja2 reads `links.spring-2026` as
10178
+ * subtraction.
10179
+ */
10180
+ async createTrackedLinkDestination(wid, data) {
10181
+ return this.fetch(`w/${wid}/tracked-links/destinations`, {
10182
+ method: "POST",
10183
+ body: JSON.stringify(data)
10184
+ });
10185
+ }
10186
+ /**
10187
+ * Re-key or relabel a destination.
10188
+ *
10189
+ * Changing `key` breaks templates: `{{links.old}}` stops resolving and the
10190
+ * message ships without its link. Relabelling (`name`) is always safe.
10191
+ * Passing `key: null` releases the handle so another destination can take
10192
+ * it — the non-destructive alternative to deleting, which would take the
10193
+ * click history with it. The URL is not editable.
10194
+ */
10195
+ async updateTrackedLinkDestination(wid, destinationId, data) {
10196
+ return this.fetch(
10197
+ `w/${wid}/tracked-links/destinations/${destinationId}`,
10198
+ { method: "PUT", body: JSON.stringify(data) }
10199
+ );
10200
+ }
10201
+ /** Per-destination sent / clicks / unique clickers / CTR for the window. */
10202
+ async getTrackedLinkStats(wid, options = {}) {
10203
+ const params = withFilters(new URLSearchParams(), options);
10204
+ if (options.page !== void 0) params.append("page", String(options.page));
10205
+ if (options.pageSize !== void 0) params.append("pageSize", String(options.pageSize));
10206
+ if (options.q) params.append("q", options.q);
10207
+ if (options.sortBy) params.append("sortBy", options.sortBy);
10208
+ if (options.sortOrder) params.append("sortOrder", options.sortOrder);
10209
+ return this.fetch(
10210
+ `w/${wid}/tracked-links${suffix(params)}`
10211
+ );
10212
+ }
10213
+ /** Clicks over time for the current filter selection. */
10214
+ async getTrackedLinkTimeseries(wid, options = {}) {
10215
+ const params = withFilters(new URLSearchParams(), options);
10216
+ if (options.destinationId !== void 0) {
10217
+ params.append("destinationId", String(options.destinationId));
10218
+ }
10219
+ if (options.granularity) params.append("granularity", options.granularity);
10220
+ if (options.tz) params.append("tz", options.tz);
10221
+ return this.fetch(
10222
+ `w/${wid}/tracked-links/timeseries${suffix(params)}`
10223
+ );
10224
+ }
10225
+ /**
10226
+ * Delete one destination: its short links stop resolving and its recorded
10227
+ * clicks are removed.
10228
+ *
10229
+ * Turning the workspace setting off only stops NEW links being minted —
10230
+ * links already delivered to members keep working. This is the deliberate
10231
+ * way to break them.
10232
+ */
10233
+ async deleteTrackedLinkDestination(wid, destinationId) {
10234
+ return this.fetch(
10235
+ `w/${wid}/tracked-links/destinations/${destinationId}`,
10236
+ { method: "DELETE" }
10237
+ );
10238
+ }
10239
+ /** Delete every destination, its links, and its clicks. Irreversible. */
10240
+ async clearTrackedLinkDestinations(wid) {
10241
+ return this.fetch(`w/${wid}/tracked-links/destinations`, {
10242
+ method: "DELETE"
10243
+ });
10244
+ }
10245
+ };
10246
+
9813
10247
  // src/api/journeys.ts
9814
10248
  var JourneysApi = class extends BaseApiClient {
9815
10249
  /**
@@ -10800,6 +11234,20 @@ var WorkspacesApi = class extends BaseApiClient {
10800
11234
  if (featured !== void 0) params.set("featured", String(featured));
10801
11235
  return this.fetch(`products?${params.toString()}`);
10802
11236
  }
11237
+ /**
11238
+ * Check whether a promo code is usable, without redeeming it.
11239
+ *
11240
+ * Reserves nothing, so it is safe to call as a form field settles. Redemption
11241
+ * happens server-side after checkout completes, when the organization and its
11242
+ * subscription exist.
11243
+ */
11244
+ async previewPromoCode(code, options) {
11245
+ return this.fetch("promo-codes/preview", {
11246
+ method: "POST",
11247
+ body: JSON.stringify({ code }),
11248
+ signal: options?.signal
11249
+ });
11250
+ }
10803
11251
  /** Get a publicly accessible product by ID. */
10804
11252
  async getPublicProduct(id) {
10805
11253
  return this.fetch(`products/${id}`);
@@ -10954,10 +11402,11 @@ function createApiModules(apiKey, baseUrl, customFetch) {
10954
11402
  connectionSync: new ConnectionSyncApi(apiKey, baseUrl, customFetch),
10955
11403
  mcpServers: new McpServersApi(apiKey, baseUrl, customFetch),
10956
11404
  members: new MembersApi(apiKey, baseUrl, customFetch),
10957
- milestones: new MilestonesApi(apiKey, baseUrl, customFetch),
10958
11405
  motd: new MotdApi(apiKey, baseUrl, customFetch),
11406
+ trackedLinks: new TrackedLinksApi(apiKey, baseUrl, customFetch),
10959
11407
  confluence: new ConfluenceApi(apiKey, baseUrl, customFetch),
10960
11408
  mondayIntegration: new MondayIntegrationApi(apiKey, baseUrl, customFetch),
11409
+ interventionRequests: new InterventionRequestsApi(apiKey, baseUrl, customFetch),
10961
11410
  notificationRules: new NotificationRulesApi(apiKey, baseUrl, customFetch),
10962
11411
  oauth: new OAuthApi(apiKey, baseUrl, customFetch),
10963
11412
  operatorGroups: new OperatorApi(apiKey, baseUrl, customFetch),
@@ -10967,6 +11416,7 @@ function createApiModules(apiKey, baseUrl, customFetch) {
10967
11416
  pronunciations: new PronunciationsApi(apiKey, baseUrl, customFetch),
10968
11417
  qualifications: new QualificationsApi(apiKey, baseUrl, customFetch),
10969
11418
  personas: new PersonasApi(apiKey, baseUrl, customFetch),
11419
+ metrics: new MetricsApi(apiKey, baseUrl, customFetch),
10970
11420
  queries: new QueriesApi(apiKey, baseUrl, customFetch),
10971
11421
  reports: new ReportsApi(apiKey, baseUrl, customFetch),
10972
11422
  salesforce: new SalesforceApi(apiKey, baseUrl, customFetch),
@@ -11021,6 +11471,7 @@ var WORKSPACE_METHOD_NAMES = [
11021
11471
  "checkSiteSlugAvailability",
11022
11472
  "clearConnectionMemberExclusion",
11023
11473
  "clearMemberSwitch",
11474
+ "clearTrackedLinkDestinations",
11024
11475
  "clickWorkspaceSupportRequestResource",
11025
11476
  "cloneDataType",
11026
11477
  "cloneTask",
@@ -11079,7 +11530,6 @@ var WORKSPACE_METHOD_NAMES = [
11079
11530
  "createMemberMemory",
11080
11531
  "createMemberRole",
11081
11532
  "createMenuItem",
11082
- "createMilestone",
11083
11533
  "createNotificationRule",
11084
11534
  "createOperatorGroup",
11085
11535
  "createPage",
@@ -11096,6 +11546,7 @@ var WORKSPACE_METHOD_NAMES = [
11096
11546
  "createSupervisor",
11097
11547
  "createTask",
11098
11548
  "createTeamsApp",
11549
+ "createTrackedLinkDestination",
11099
11550
  "createWorkflow",
11100
11551
  "createWorkflowContributor",
11101
11552
  "createWorkflowFromTemplate",
@@ -11145,7 +11596,6 @@ var WORKSPACE_METHOD_NAMES = [
11145
11596
  "deleteMemberMemory",
11146
11597
  "deleteMemberRole",
11147
11598
  "deleteMenuItem",
11148
- "deleteMilestone",
11149
11599
  "deleteMondayConnection",
11150
11600
  "deleteNotificationRule",
11151
11601
  "deleteOperatorGroup",
@@ -11161,6 +11611,7 @@ var WORKSPACE_METHOD_NAMES = [
11161
11611
  "deleteSupervisor",
11162
11612
  "deleteTask",
11163
11613
  "deleteTeamsApp",
11614
+ "deleteTrackedLinkDestination",
11164
11615
  "deleteWidgetDomain",
11165
11616
  "deleteWorkflow",
11166
11617
  "deleteWorkflowContributor",
@@ -11285,6 +11736,7 @@ var WORKSPACE_METHOD_NAMES = [
11285
11736
  "getChatModelOverride",
11286
11737
  "getChatPhoneCalls",
11287
11738
  "getChatSkills",
11739
+ "getManagerSkills",
11288
11740
  "getChatTodos",
11289
11741
  "getChatTokenUsage",
11290
11742
  "getChatToolCallMessages",
@@ -11294,6 +11746,7 @@ var WORKSPACE_METHOD_NAMES = [
11294
11746
  "getChatsNeedsResponse",
11295
11747
  "getChildThreadMessages",
11296
11748
  "getClientWorkspace",
11749
+ "getConfigurationHealth",
11297
11750
  "getConfluenceStatus",
11298
11751
  "getConnectionSyncCapabilities",
11299
11752
  "getConnectionSyncCheckpoint",
@@ -11420,6 +11873,7 @@ var WORKSPACE_METHOD_NAMES = [
11420
11873
  "getMemberMemory",
11421
11874
  "getMemberRecordCounts",
11422
11875
  "getMemberRole",
11876
+ "getMemberRoleCleanupPlan",
11423
11877
  "getMemberRoleByUuid",
11424
11878
  "getMemberRoles",
11425
11879
  "getMemberSyncLinks",
@@ -11428,8 +11882,6 @@ var WORKSPACE_METHOD_NAMES = [
11428
11882
  "getMembersMessageActivity",
11429
11883
  "getMenuItems",
11430
11884
  "getMessageTiming",
11431
- "getMilestone",
11432
- "getMilestones",
11433
11885
  "getMondayConnectionBoardColumns",
11434
11886
  "getMondayConnectionBoardGroups",
11435
11887
  "getMondayConnectionBoards",
@@ -11465,6 +11917,7 @@ var WORKSPACE_METHOD_NAMES = [
11465
11917
  "getPublicFolder",
11466
11918
  "getPublicFolderFiles",
11467
11919
  "getPublicProducts",
11920
+ "previewPromoCode",
11468
11921
  "getQualification",
11469
11922
  "getQualifications",
11470
11923
  "getRecordingInfo",
@@ -11511,6 +11964,10 @@ var WORKSPACE_METHOD_NAMES = [
11511
11964
  "getTool",
11512
11965
  "getToolCallNames",
11513
11966
  "getToolkits",
11967
+ "getTrackedLinkDestinations",
11968
+ "getTrackedLinkStats",
11969
+ "getTrackedLinkSummary",
11970
+ "getTrackedLinkTimeseries",
11514
11971
  "getUnreadNotificationCount",
11515
11972
  "getUsageDashboard",
11516
11973
  "getVariableRegistry",
@@ -11587,6 +12044,14 @@ var WORKSPACE_METHOD_NAMES = [
11587
12044
  "listHealthiePatients",
11588
12045
  "listHealthieProviders",
11589
12046
  "listPersonas",
12047
+ "listMetrics",
12048
+ "getMetric",
12049
+ "createMetric",
12050
+ "updateMetric",
12051
+ "deleteMetric",
12052
+ "listMetricObservations",
12053
+ "getMetricSeries",
12054
+ "computeChatMetrics",
11590
12055
  "listPushSubscriptions",
11591
12056
  "listSalesforceObjects",
11592
12057
  "listScenarios",
@@ -11597,6 +12062,7 @@ var WORKSPACE_METHOD_NAMES = [
11597
12062
  "markEmailAsRead",
11598
12063
  "markEmailAsUnread",
11599
12064
  "markNotificationAsRead",
12065
+ "mergeMemberRoles",
11600
12066
  "previewImportMembers",
11601
12067
  "previewImportWorkspace",
11602
12068
  "previewRoutineWorkflowAccess",
@@ -11725,7 +12191,6 @@ var WORKSPACE_METHOD_NAMES = [
11725
12191
  "updateMemberLabel",
11726
12192
  "updateMemberRole",
11727
12193
  "updateMenuItem",
11728
- "updateMilestone",
11729
12194
  "updateMondaySyncConfig",
11730
12195
  "updateNotificationRule",
11731
12196
  "updateOperatorGroup",
@@ -11745,6 +12210,7 @@ var WORKSPACE_METHOD_NAMES = [
11745
12210
  "updateTask",
11746
12211
  "updateTeamsApp",
11747
12212
  "updateThemeSettings",
12213
+ "updateTrackedLinkDestination",
11748
12214
  "uploadFile",
11749
12215
  "updateVoicemailStatus",
11750
12216
  "updateWorkflow",
@@ -11842,6 +12308,7 @@ function bindChatsMethods(target, chats) {
11842
12308
  target.getChatTokenUsage = chats.getChatTokenUsage.bind(chats);
11843
12309
  target.getChatTodos = chats.getChatTodos.bind(chats);
11844
12310
  target.getChatSkills = chats.getChatSkills.bind(chats);
12311
+ target.getManagerSkills = chats.getManagerSkills.bind(chats);
11845
12312
  target.getChatsNeedsResponse = chats.getChatsNeedsResponse.bind(chats);
11846
12313
  target.getChatsDailyCreationStats = chats.getChatsDailyCreationStats.bind(chats);
11847
12314
  target.getToolCallNames = chats.getToolCallNames.bind(chats);
@@ -11908,6 +12375,7 @@ function bindDashboardsMethods(target, dashboards) {
11908
12375
  target.deleteDashboard = dashboards.deleteDashboard.bind(dashboards);
11909
12376
  target.getDashboardChannelStats = dashboards.getDashboardChannelStats.bind(dashboards);
11910
12377
  target.getDashboardWorkflowAssignmentStats = dashboards.getDashboardWorkflowAssignmentStats.bind(dashboards);
12378
+ target.getConfigurationHealth = dashboards.getConfigurationHealth.bind(dashboards);
11911
12379
  }
11912
12380
 
11913
12381
  // src/client/bindings/motd.ts
@@ -11915,6 +12383,18 @@ function bindMotdMethods(target, motd) {
11915
12383
  target.getMotd = motd.getMotd.bind(motd);
11916
12384
  }
11917
12385
 
12386
+ // src/client/bindings/tracked-links.ts
12387
+ function bindTrackedLinksMethods(target, trackedLinks) {
12388
+ target.getTrackedLinkSummary = trackedLinks.getTrackedLinkSummary.bind(trackedLinks);
12389
+ target.getTrackedLinkDestinations = trackedLinks.getTrackedLinkDestinations.bind(trackedLinks);
12390
+ target.getTrackedLinkStats = trackedLinks.getTrackedLinkStats.bind(trackedLinks);
12391
+ target.getTrackedLinkTimeseries = trackedLinks.getTrackedLinkTimeseries.bind(trackedLinks);
12392
+ target.createTrackedLinkDestination = trackedLinks.createTrackedLinkDestination.bind(trackedLinks);
12393
+ target.updateTrackedLinkDestination = trackedLinks.updateTrackedLinkDestination.bind(trackedLinks);
12394
+ target.deleteTrackedLinkDestination = trackedLinks.deleteTrackedLinkDestination.bind(trackedLinks);
12395
+ target.clearTrackedLinkDestinations = trackedLinks.clearTrackedLinkDestinations.bind(trackedLinks);
12396
+ }
12397
+
11918
12398
  // src/client/bindings/data-types.ts
11919
12399
  function bindDataTypesMethods(target, dataTypes) {
11920
12400
  target.getDataTypes = dataTypes.getDataTypes.bind(dataTypes);
@@ -12316,7 +12796,7 @@ function bindWorkflowsMethods(target, workflows, workflowNotes, voice, superviso
12316
12796
  }
12317
12797
 
12318
12798
  // src/client/bindings/calendars.ts
12319
- function bindCalendarsMethods(target, calendars, milestones) {
12799
+ function bindCalendarsMethods(target, calendars) {
12320
12800
  target.getCalendars = calendars.getCalendars.bind(calendars);
12321
12801
  target.getCalendar = calendars.getCalendar.bind(calendars);
12322
12802
  target.createCalendar = calendars.createCalendar.bind(calendars);
@@ -12348,11 +12828,6 @@ function bindCalendarsMethods(target, calendars, milestones) {
12348
12828
  target.linkCalendarToGoogle = calendars.linkCalendarToGoogle.bind(calendars);
12349
12829
  target.unlinkCalendarFromGoogle = calendars.unlinkCalendarFromGoogle.bind(calendars);
12350
12830
  target.syncCalendarWithGoogle = calendars.syncCalendarWithGoogle.bind(calendars);
12351
- target.getMilestones = milestones.getMilestones.bind(milestones);
12352
- target.getMilestone = milestones.getMilestone.bind(milestones);
12353
- target.createMilestone = milestones.createMilestone.bind(milestones);
12354
- target.updateMilestone = milestones.updateMilestone.bind(milestones);
12355
- target.deleteMilestone = milestones.deleteMilestone.bind(milestones);
12356
12831
  }
12357
12832
 
12358
12833
  // src/client/bindings/communications.ts
@@ -12410,6 +12885,7 @@ function bindToolkitsMethods(target, toolkits, templates, aiModels, customToolki
12410
12885
  target.getSTTModels = aiModels.getSTTModels.bind(aiModels);
12411
12886
  target.getTTSModels = aiModels.getTTSModels.bind(aiModels);
12412
12887
  target.getVoiceModels = aiModels.getVoiceModels.bind(aiModels);
12888
+ target.getVoicePresets = aiModels.getVoicePresets.bind(aiModels);
12413
12889
  target.getAllModels = aiModels.getAllModels.bind(aiModels);
12414
12890
  target.getCustomToolkits = customToolkits.getCustomToolkits.bind(customToolkits);
12415
12891
  target.getCustomToolkit = customToolkits.getCustomToolkit.bind(customToolkits);
@@ -12708,6 +13184,11 @@ function bindOrgMethods(target, org) {
12708
13184
  target.updateBusinessProfile = org.updateBusinessProfile.bind(org);
12709
13185
  target.submitBusinessProfile = org.submitBusinessProfile.bind(org);
12710
13186
  target.cancelBusinessProfile = org.cancelBusinessProfile.bind(org);
13187
+ target.listLegalEntities = org.listLegalEntities.bind(org);
13188
+ target.getLegalEntity = org.getLegalEntity.bind(org);
13189
+ target.createLegalEntity = org.createLegalEntity.bind(org);
13190
+ target.getVoiceTrustProducts = org.getVoiceTrustProducts.bind(org);
13191
+ target.syncVoiceTrustProducts = org.syncVoiceTrustProducts.bind(org);
12711
13192
  target.createOrganizationWorkspace = org.createOrganizationWorkspace.bind(org);
12712
13193
  target.getOrgBillingCustomer = org.getOrgBillingCustomer.bind(org);
12713
13194
  }
@@ -12791,6 +13272,18 @@ function bindPersonasMethods(target, personas) {
12791
13272
  target.deletePersona = personas.deletePersona.bind(personas);
12792
13273
  }
12793
13274
 
13275
+ // src/client/bindings/metrics.ts
13276
+ function bindMetricsMethods(target, metrics) {
13277
+ target.listMetrics = metrics.listMetrics.bind(metrics);
13278
+ target.getMetric = metrics.getMetric.bind(metrics);
13279
+ target.createMetric = metrics.createMetric.bind(metrics);
13280
+ target.updateMetric = metrics.updateMetric.bind(metrics);
13281
+ target.deleteMetric = metrics.deleteMetric.bind(metrics);
13282
+ target.listMetricObservations = metrics.listMetricObservations.bind(metrics);
13283
+ target.getMetricSeries = metrics.getMetricSeries.bind(metrics);
13284
+ target.computeChatMetrics = metrics.computeChatMetrics.bind(metrics);
13285
+ }
13286
+
12794
13287
  // src/client/bindings/queries.ts
12795
13288
  function bindQueriesMethods(target, queries) {
12796
13289
  target.getQueryFields = queries.getQueryFields.bind(queries);
@@ -12881,6 +13374,7 @@ var GravityRailClient = class {
12881
13374
  getChatTokenUsage;
12882
13375
  getChatTodos;
12883
13376
  getChatSkills;
13377
+ getManagerSkills;
12884
13378
  getChatsNeedsResponse;
12885
13379
  getChatsDailyCreationStats;
12886
13380
  getToolCallNames;
@@ -12998,6 +13492,8 @@ var GravityRailClient = class {
12998
13492
  createMemberRole;
12999
13493
  updateMemberRole;
13000
13494
  deleteMemberRole;
13495
+ getMemberRoleCleanupPlan;
13496
+ mergeMemberRoles;
13001
13497
  // Member Fields
13002
13498
  getMemberFields;
13003
13499
  getMemberFieldDefinitions;
@@ -13058,6 +13554,15 @@ var GravityRailClient = class {
13058
13554
  createPersona;
13059
13555
  updatePersona;
13060
13556
  deletePersona;
13557
+ // Metrics API (customer-defined outcome metrics)
13558
+ listMetrics;
13559
+ getMetric;
13560
+ createMetric;
13561
+ updateMetric;
13562
+ deleteMetric;
13563
+ listMetricObservations;
13564
+ getMetricSeries;
13565
+ computeChatMetrics;
13061
13566
  // Dashboards API
13062
13567
  getDashboards;
13063
13568
  getDashboard;
@@ -13066,8 +13571,18 @@ var GravityRailClient = class {
13066
13571
  deleteDashboard;
13067
13572
  getDashboardChannelStats;
13068
13573
  getDashboardWorkflowAssignmentStats;
13574
+ getConfigurationHealth;
13069
13575
  // MOTD API
13070
13576
  getMotd;
13577
+ // Tracked Links analytics (#10934)
13578
+ getTrackedLinkSummary;
13579
+ getTrackedLinkDestinations;
13580
+ getTrackedLinkStats;
13581
+ getTrackedLinkTimeseries;
13582
+ createTrackedLinkDestination;
13583
+ updateTrackedLinkDestination;
13584
+ deleteTrackedLinkDestination;
13585
+ clearTrackedLinkDestinations;
13071
13586
  // Journeys API
13072
13587
  getJourneys;
13073
13588
  getJourney;
@@ -13172,6 +13687,7 @@ var GravityRailClient = class {
13172
13687
  getProduct;
13173
13688
  getWorkspaceProduct;
13174
13689
  getPublicProducts;
13690
+ previewPromoCode;
13175
13691
  getPublicProduct;
13176
13692
  createProduct;
13177
13693
  updateProduct;
@@ -13209,6 +13725,11 @@ var GravityRailClient = class {
13209
13725
  updateBusinessProfile;
13210
13726
  submitBusinessProfile;
13211
13727
  cancelBusinessProfile;
13728
+ listLegalEntities;
13729
+ getLegalEntity;
13730
+ createLegalEntity;
13731
+ getVoiceTrustProducts;
13732
+ syncVoiceTrustProducts;
13212
13733
  createOrganizationWorkspace;
13213
13734
  getOrgBillingCustomer;
13214
13735
  getVapidPublicKey;
@@ -13470,11 +13991,6 @@ var GravityRailClient = class {
13470
13991
  linkCalendarToGoogle;
13471
13992
  unlinkCalendarFromGoogle;
13472
13993
  syncCalendarWithGoogle;
13473
- getMilestones;
13474
- getMilestone;
13475
- createMilestone;
13476
- updateMilestone;
13477
- deleteMilestone;
13478
13994
  // Communications API
13479
13995
  getPhoneNumbers;
13480
13996
  getAvailablePhoneNumbers;
@@ -13526,6 +14042,7 @@ var GravityRailClient = class {
13526
14042
  getSTTModels;
13527
14043
  getTTSModels;
13528
14044
  getVoiceModels;
14045
+ getVoicePresets;
13529
14046
  getAllModels;
13530
14047
  getCustomToolkits;
13531
14048
  getCustomToolkit;
@@ -13853,9 +14370,11 @@ var GravityRailClient = class {
13853
14370
  bindAgentsMethods(this, apis.agents);
13854
14371
  bindQualificationsMethods(this, apis.qualifications);
13855
14372
  bindPersonasMethods(this, apis.personas);
14373
+ bindMetricsMethods(this, apis.metrics);
13856
14374
  bindQueriesMethods(this, apis.queries);
13857
14375
  bindDashboardsMethods(this, apis.dashboards);
13858
14376
  bindMotdMethods(this, apis.motd);
14377
+ bindTrackedLinksMethods(this, apis.trackedLinks);
13859
14378
  bindJourneysMethods(this, apis.journeys);
13860
14379
  bindExperimentsMethods(this, apis.experiments);
13861
14380
  bindOperatorMethods(this, apis.operatorGroups);
@@ -13868,7 +14387,7 @@ var GravityRailClient = class {
13868
14387
  bindFilesMethods(this, apis.files);
13869
14388
  bindEventsMethods(this, apis.events);
13870
14389
  bindWorkflowsMethods(this, apis.workflows, apis.workflowNotes, apis.voice, apis.supervisors);
13871
- bindCalendarsMethods(this, apis.calendars, apis.milestones);
14390
+ bindCalendarsMethods(this, apis.calendars);
13872
14391
  bindCommunicationsMethods(this, apis.phoneNumbers, apis.inboxes, apis.notificationRules);
13873
14392
  bindToolkitsMethods(
13874
14393
  this,
@@ -14043,6 +14562,7 @@ var GravityRailClient = class {
14043
14562
  BusinessType,
14044
14563
  CELApi,
14045
14564
  CHAT_TYPES,
14565
+ CONFIG_HEALTH_FACADE_CHECK_SLUGS,
14046
14566
  CalendarEventStatus,
14047
14567
  CalendarPermissionType,
14048
14568
  CalendarScheduleAvailabilityType,
@@ -14063,6 +14583,7 @@ var GravityRailClient = class {
14063
14583
  CustomerActivityEventStatus,
14064
14584
  CustomerActivityReviewOutcome,
14065
14585
  CustomerActivitySeverity,
14586
+ CustomerActivitySlaThresholdSource,
14066
14587
  CustomersApi,
14067
14588
  DEFAULT_CHAT_MODEL,
14068
14589
  DEFAULT_CUSTOM_VOICE_MODEL,
@@ -14110,7 +14631,13 @@ var GravityRailClient = class {
14110
14631
  MembersApi,
14111
14632
  MenuItemResponseItemType,
14112
14633
  MenuItemType,
14113
- MilestonesApi,
14634
+ MergeMemberRolesRequestAccessStrategy,
14635
+ MetricChatTypeEnum,
14636
+ MetricDenominatorEnum,
14637
+ MetricKindEnum,
14638
+ MetricSourceEnum,
14639
+ MetricTypeEnum,
14640
+ MetricUnitEnum,
14114
14641
  ModelProvider,
14115
14642
  ModelType,
14116
14643
  MondayIntegrationApi,
@@ -14144,7 +14671,10 @@ var GravityRailClient = class {
14144
14671
  PhiPostureReasonCode,
14145
14672
  PhiPostureTransitionResponseTargetType,
14146
14673
  PhoneNumbersApi,
14674
+ PilotRelationshipType,
14675
+ PilotStage,
14147
14676
  ProductType,
14677
+ PromoCodeStatus,
14148
14678
  PromptsApi,
14149
14679
  PronunciationsApi,
14150
14680
  QUERY_VALUELESS_OPS,
@@ -14196,12 +14726,15 @@ var GravityRailClient = class {
14196
14726
  WorkflowAccessWarningResourceType,
14197
14727
  WorkflowNotesApi,
14198
14728
  WorkflowResourceType,
14729
+ WorkflowRoutingMode,
14199
14730
  WorkflowsApi,
14200
14731
  WorkspaceFeature,
14201
14732
  WorkspaceInvitationsApi,
14202
14733
  WorkspaceProvisionStatus,
14203
14734
  WorkspacesApi,
14735
+ archivedMemberConflictId,
14204
14736
  areDependenciesSatisfied,
14737
+ asIdentifiedMemberContactConflict,
14205
14738
  bindAccessGrantsMethods,
14206
14739
  bindAgentTasksMethods,
14207
14740
  bindAgentsMethods,
@@ -14221,6 +14754,7 @@ var GravityRailClient = class {
14221
14754
  bindIntegrationsMethods,
14222
14755
  bindJourneysMethods,
14223
14756
  bindMembersMethods,
14757
+ bindMetricsMethods,
14224
14758
  bindMotdMethods,
14225
14759
  bindOperatorMethods,
14226
14760
  bindOrgMethods,
@@ -14234,6 +14768,7 @@ var GravityRailClient = class {
14234
14768
  bindSupportRequestMethods,
14235
14769
  bindTasksMethods,
14236
14770
  bindToolkitsMethods,
14771
+ bindTrackedLinksMethods,
14237
14772
  bindWorkflowsMethods,
14238
14773
  bindWorkspacesMethods,
14239
14774
  canPreviewVoice,
@@ -14260,9 +14795,13 @@ var GravityRailClient = class {
14260
14795
  getTTSProvider,
14261
14796
  getVoiceModelId,
14262
14797
  initializeFeatures,
14798
+ isAccountContactConflict,
14263
14799
  isAgentNoteOrigin,
14264
14800
  isChatType,
14801
+ isConfigHealthFacadeCheckSlug,
14265
14802
  isFeatureAvailable,
14803
+ isIdentifiedMemberContactConflict,
14804
+ isMemberContactConflict,
14266
14805
  isPositiveRating,
14267
14806
  isRegistryInitialized,
14268
14807
  isSMSDeliveryFailureStatus,