@gravity-rail/sdk 0.10.1 → 0.11.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 (44) hide show
  1. package/README.md +7 -8
  2. package/dist/{chunk-TJT7A4CO.js → chunk-V7ZKEH4V.js} +1 -1
  3. package/dist/chunk-V7ZKEH4V.js.map +1 -0
  4. package/dist/{chunk-2BJG4GYM.js → chunk-YESHLUL7.js} +812 -180
  5. package/dist/chunk-YESHLUL7.js.map +1 -0
  6. package/dist/{client-BffM3KcA.d.cts → client-BCgXtr8p.d.cts} +2630 -1114
  7. package/dist/{client-DfjAYbt8.d.ts → client-Dh1l20Ue.d.ts} +2630 -1114
  8. package/dist/helpers.cjs +6 -18
  9. package/dist/helpers.cjs.map +1 -1
  10. package/dist/helpers.d.cts +2 -2
  11. package/dist/helpers.d.ts +2 -2
  12. package/dist/helpers.js +6 -18
  13. package/dist/helpers.js.map +1 -1
  14. package/dist/index.cjs +842 -268
  15. package/dist/index.cjs.map +1 -1
  16. package/dist/index.d.cts +23 -21
  17. package/dist/index.d.ts +23 -21
  18. package/dist/index.js +51 -95
  19. package/dist/index.js.map +1 -1
  20. package/dist/internal.cjs +956 -258
  21. package/dist/internal.cjs.map +1 -1
  22. package/dist/internal.d.cts +443 -74
  23. package/dist/internal.d.ts +443 -74
  24. package/dist/internal.js +71 -2
  25. package/dist/internal.js.map +1 -1
  26. package/dist/realtime.cjs +42 -0
  27. package/dist/realtime.cjs.map +1 -1
  28. package/dist/realtime.d.cts +26 -0
  29. package/dist/realtime.d.ts +26 -0
  30. package/dist/realtime.js +42 -0
  31. package/dist/realtime.js.map +1 -1
  32. package/dist/{scopes-CmNKWrzb.d.ts → revision-state-BTF-MnbW.d.cts} +220 -18
  33. package/dist/{scopes-CjSvITpL.d.cts → revision-state-DOH1NMGb.d.ts} +220 -18
  34. package/dist/schemas.cjs +27 -110
  35. package/dist/schemas.cjs.map +1 -1
  36. package/dist/schemas.d.cts +48 -466
  37. package/dist/schemas.d.ts +48 -466
  38. package/dist/schemas.js +27 -107
  39. package/dist/schemas.js.map +1 -1
  40. package/dist/{inquiries-UcWNYo-Q.d.cts → tasks-C4aYbWVv.d.cts} +452 -141
  41. package/dist/{inquiries-UcWNYo-Q.d.ts → tasks-C4aYbWVv.d.ts} +452 -141
  42. package/package.json +1 -1
  43. package/dist/chunk-2BJG4GYM.js.map +0 -1
  44. package/dist/chunk-TJT7A4CO.js.map +0 -1
package/dist/index.cjs CHANGED
@@ -46,6 +46,7 @@ __export(src_exports, {
46
46
  CalendarScheduleAvailabilityType: () => CalendarScheduleAvailabilityType,
47
47
  CalendarScheduleRecurrence: () => CalendarScheduleRecurrence,
48
48
  CalendarSource: () => CalendarSource,
49
+ CapabilityClass: () => CapabilityClass,
49
50
  ConsentMethod: () => ConsentMethod,
50
51
  CriterionType: () => CriterionType,
51
52
  DEFAULT_CHAT_MODEL: () => DEFAULT_CHAT_MODEL,
@@ -105,6 +106,7 @@ __export(src_exports, {
105
106
  PERMISSION_VERIFY: () => PERMISSION_VERIFY,
106
107
  PIDS_DISPOSITIONS: () => PIDS_DISPOSITIONS,
107
108
  PIDS_SOURCES: () => PIDS_SOURCES,
109
+ POSITIVE_RATING_THRESHOLD: () => POSITIVE_RATING_THRESHOLD,
108
110
  ProductType: () => ProductType,
109
111
  QUERY_VALUELESS_OPS: () => QUERY_VALUELESS_OPS,
110
112
  QueriesApi: () => QueriesApi,
@@ -141,6 +143,7 @@ __export(src_exports, {
141
143
  TaskBuilder: () => TaskBuilder,
142
144
  TemplatesApi: () => TemplatesApi,
143
145
  ToolkitState: () => ToolkitState,
146
+ WIDGET_SLUGS: () => WIDGET_SLUGS,
144
147
  WorkflowAccessWarningResourceType: () => WorkflowAccessWarningResourceType,
145
148
  WorkflowBuilder: () => WorkflowBuilder,
146
149
  WorkflowResourceType: () => WorkflowAccessWarningResourceType,
@@ -166,12 +169,14 @@ __export(src_exports, {
166
169
  getFeaturesByVisibility: () => getFeaturesByVisibility,
167
170
  getMissingDependencies: () => getMissingDependencies,
168
171
  getResourceMetadata: () => getResourceMetadata,
172
+ getRevisionState: () => getRevisionState,
169
173
  getScopeFromProductType: () => getScopeFromProductType,
170
174
  getTTSProvider: () => getTTSProvider,
171
175
  getVoiceModelId: () => getVoiceModelId,
172
176
  initializeFeatures: () => initializeFeatures,
173
177
  isChatType: () => isChatType,
174
178
  isFeatureAvailable: () => isFeatureAvailable,
179
+ isPositiveRating: () => isPositiveRating,
175
180
  isRegistryInitialized: () => isRegistryInitialized,
176
181
  isSMSDeliveryFailureStatus: () => isSMSDeliveryFailureStatus,
177
182
  requiresAssistantParticipant: () => requiresAssistantParticipant,
@@ -660,20 +665,22 @@ var AbilitiesApi = class extends BaseApiClient {
660
665
  }
661
666
  /** Get the full spec for a single ability type by slug. */
662
667
  async getAbilityType(wid, slug) {
663
- return this.fetch(
664
- `w/${wid}/abilities/types/${encodeURIComponent(slug)}`
665
- );
668
+ return this.fetch(`w/${wid}/abilities/types/${encodeURIComponent(slug)}`);
666
669
  }
667
670
  /**
668
671
  * List configured ability instances for a workflow or task scope.
669
- * Exactly one of workflowId / taskId must be provided.
672
+ * Provide exactly one of:
673
+ * - workflow scope: workflowId (stable root → draft revision) and/or
674
+ * workflowRevisionId (explicit pin)
675
+ * - taskId for task-scoped abilities
670
676
  */
671
677
  async listAbilities(wid, options) {
672
678
  const params = new URLSearchParams();
673
679
  if (options.workflowId !== void 0)
674
680
  params.append("workflowId", options.workflowId.toString());
675
- if (options.taskId !== void 0)
676
- params.append("taskId", options.taskId.toString());
681
+ if (options.workflowRevisionId !== void 0)
682
+ params.append("workflowRevisionId", options.workflowRevisionId.toString());
683
+ if (options.taskId !== void 0) params.append("taskId", options.taskId.toString());
677
684
  return this.fetch(`w/${wid}/abilities?${params}`);
678
685
  }
679
686
  /** Create (enable) a configured ability on a workflow or task scope. */
@@ -696,6 +703,20 @@ var AbilitiesApi = class extends BaseApiClient {
696
703
  method: "DELETE"
697
704
  });
698
705
  }
706
+ /**
707
+ * List recipient-directory rows approved for Charleston PMD test delivery
708
+ * (CS-150). Returns only {recipientKey, displayLabel} for active,
709
+ * test-delivery-allowed rows with a device id — never the PatientSync
710
+ * recipient_id. Scoped to agents:write + the charleston_nephrology_pmd_paging
711
+ * feature; used by the ability-config test-delivery dropdown. Kept on the
712
+ * ability-configuration API (not generic DataRecords) because the actual
713
+ * ability-editor scopes do not guarantee generic record access.
714
+ */
715
+ async getCharlestonTestDeliveryRecipients(wid) {
716
+ return this.fetch(
717
+ `w/${wid}/app-connections/charleston_nephrology/test-delivery/eligible-recipients`
718
+ );
719
+ }
699
720
  };
700
721
 
701
722
  // src/api/access-grants.ts
@@ -767,6 +788,24 @@ var AccessGrantsApi = class extends BaseApiClient {
767
788
  );
768
789
  return resp.items;
769
790
  }
791
+ /**
792
+ * List access grants *received* by a member (grantee view) — the
793
+ * "what can this agent do without asking?" list. Filter with
794
+ * status=active and/or a capabilityClass (e.g. 'tool.always_allow').
795
+ */
796
+ async getGranteeGrants(wid, memberId, params) {
797
+ const searchParams = new URLSearchParams();
798
+ if (params?.status) searchParams.set("status", params.status);
799
+ if (params?.capabilityClass) {
800
+ searchParams.set("capability_class", params.capabilityClass);
801
+ }
802
+ if (params?.page) searchParams.set("page", params.page.toString());
803
+ if (params?.pageSize) searchParams.set("page_size", params.pageSize.toString());
804
+ const qs = searchParams.toString();
805
+ return this.fetch(
806
+ `w/${wid}/access-grants/grantee/${memberId}${qs ? `?${qs}` : ""}`
807
+ );
808
+ }
770
809
  };
771
810
 
772
811
  // src/api/agent-tasks.ts
@@ -853,25 +892,6 @@ var AgentsApi = class extends BaseApiClient {
853
892
  method: "POST"
854
893
  });
855
894
  }
856
- /** Resolve runtime tools for an agent on a simulated channel. */
857
- async resolveAgentTools(wid, id, options) {
858
- const params = new URLSearchParams();
859
- params.append("channel", options.channel);
860
- if (options.taskId !== void 0) params.append("taskId", options.taskId.toString());
861
- if (options.taskUuid !== void 0) params.append("taskUuid", options.taskUuid);
862
- return this.fetch(`w/${wid}/agents/${id}/resolve-tools?${params}`);
863
- }
864
- /**
865
- * List the configured abilities effective for an agent via a task's workflow.
866
- * Requires taskId because abilities are scoped to workflows/tasks, not agents.
867
- */
868
- async listAgentAbilities(wid, id, options) {
869
- const params = new URLSearchParams();
870
- params.append("taskId", options.taskId.toString());
871
- return this.fetch(
872
- `w/${wid}/agents/${id}/abilities?${params}`
873
- );
874
- }
875
895
  };
876
896
 
877
897
  // src/api/ai-models.ts
@@ -1068,8 +1088,7 @@ var AssignmentsApi = class extends BaseApiClient {
1068
1088
  if (options.sortOrder) params.append("sortOrder", options.sortOrder);
1069
1089
  if (options.mine) params.append("mine", options.mine.toString());
1070
1090
  if (options.taskId) params.append("taskId", options.taskId.toString());
1071
- if (options.memberId !== void 0)
1072
- params.append("memberId", options.memberId.toString());
1091
+ if (options.memberId !== void 0) params.append("memberId", options.memberId.toString());
1073
1092
  if (options.status) params.append("status", options.status);
1074
1093
  return this.fetch(
1075
1094
  `w/${wid}/assignments${params.toString() ? `?${params.toString()}` : ""}`
@@ -1198,6 +1217,20 @@ var AuthApi = class extends BaseApiClient {
1198
1217
  body: JSON.stringify(info)
1199
1218
  });
1200
1219
  }
1220
+ /**
1221
+ * Persist the account's FIRST-touch marketing attribution (write-once).
1222
+ *
1223
+ * Called by the browser at signup completion with its resolved UTM /
1224
+ * referrer / landing-page capture. The server keeps the first write and
1225
+ * ignores later posts (`recorded: false`), so calling this again is
1226
+ * harmless. Marketing context only — never emails, phones, or free text.
1227
+ */
1228
+ async recordAcquisition(request) {
1229
+ return this.fetch("account/acquisition", {
1230
+ method: "POST",
1231
+ body: JSON.stringify(request)
1232
+ });
1233
+ }
1201
1234
  /** Initiate SMS login by sending a verification code to the given phone number. */
1202
1235
  async login(phoneNumber, wid, organizationUuid) {
1203
1236
  const params = new URLSearchParams();
@@ -1421,23 +1454,29 @@ var AuthApi = class extends BaseApiClient {
1421
1454
  // ===== TWO-FACTOR AUTHENTICATION LOGIN METHODS =====
1422
1455
  /** Verify a TOTP code during login to complete two-factor authentication. */
1423
1456
  async verifyTOTPAuth(tempToken, code) {
1424
- return this.fetch("auth/2fa/auth/totp", {
1425
- method: "POST",
1426
- body: JSON.stringify({
1427
- temp_token: tempToken,
1428
- code
1429
- })
1430
- });
1457
+ return this.fetch(
1458
+ "auth/2fa/auth/totp",
1459
+ {
1460
+ method: "POST",
1461
+ body: JSON.stringify({
1462
+ temp_token: tempToken,
1463
+ code
1464
+ })
1465
+ }
1466
+ );
1431
1467
  }
1432
1468
  /** Verify a recovery code during login to complete two-factor authentication. */
1433
1469
  async verifyRecoveryCodeAuth(tempToken, code) {
1434
- return this.fetch("auth/2fa/auth/recovery", {
1435
- method: "POST",
1436
- body: JSON.stringify({
1437
- temp_token: tempToken,
1438
- code
1439
- })
1440
- });
1470
+ return this.fetch(
1471
+ "auth/2fa/auth/recovery",
1472
+ {
1473
+ method: "POST",
1474
+ body: JSON.stringify({
1475
+ temp_token: tempToken,
1476
+ code
1477
+ })
1478
+ }
1479
+ );
1441
1480
  }
1442
1481
  /** Get WebAuthn credential request options for two-factor login verification. */
1443
1482
  async getWebAuthnAuthOptions(tempToken) {
@@ -1450,13 +1489,16 @@ var AuthApi = class extends BaseApiClient {
1450
1489
  }
1451
1490
  /** Verify a WebAuthn assertion during login to complete two-factor authentication. */
1452
1491
  async verifyWebAuthnAuth(tempToken, assertionResponse) {
1453
- return this.fetch("auth/2fa/webauthn", {
1454
- method: "POST",
1455
- body: JSON.stringify({
1456
- temp_token: tempToken,
1457
- assertion_response: assertionResponse
1458
- })
1459
- });
1492
+ return this.fetch(
1493
+ "auth/2fa/webauthn",
1494
+ {
1495
+ method: "POST",
1496
+ body: JSON.stringify({
1497
+ temp_token: tempToken,
1498
+ assertion_response: assertionResponse
1499
+ })
1500
+ }
1501
+ );
1460
1502
  }
1461
1503
  // ===== ORGANIZATION MEMBERSHIP METHODS =====
1462
1504
  /** List all organizations the current account belongs to. */
@@ -1838,6 +1880,15 @@ var CallsApi = class extends BaseApiClient {
1838
1880
  async getMessageTiming(wid, chatId) {
1839
1881
  return this.fetch(`w/${wid}/recordings/chat/${chatId}/message-timing`);
1840
1882
  }
1883
+ /**
1884
+ * Get PHI-safe provenance metadata for the recording served by
1885
+ * `/audio.wav` — source, encryption, channels, duration, status, etc.
1886
+ * Staff-only Twilio SIDs are present only for superusers. Returns 404
1887
+ * when the chat has no native recording row (legacy chunk-only playback).
1888
+ */
1889
+ async getRecordingInfo(wid, chatId) {
1890
+ return this.fetch(`w/${wid}/recordings/chat/${chatId}/info`);
1891
+ }
1841
1892
  /** List the recorded audio chunks for a chat (metadata only). */
1842
1893
  async listChatRecordings(wid, chatId, options = {}) {
1843
1894
  const params = new URLSearchParams();
@@ -1896,8 +1947,7 @@ var ChatsApi = class extends BaseApiClient {
1896
1947
  if (options.paused !== void 0) params.append("paused", options.paused.toString());
1897
1948
  if (options.archived !== void 0) params.append("archived", options.archived.toString());
1898
1949
  if (options.channel) params.append("channel", options.channel);
1899
- const chatType = options.chatType ?? "assignment";
1900
- params.append("chatType", chatType);
1950
+ if (options.chatType) params.append("chatType", options.chatType);
1901
1951
  if (options.memberId !== void 0) params.append("memberId", options.memberId.toString());
1902
1952
  if (options.assistantMemberId !== void 0)
1903
1953
  params.append("assistantMemberId", options.assistantMemberId.toString());
@@ -1908,6 +1958,11 @@ var ChatsApi = class extends BaseApiClient {
1908
1958
  if (options.filters && options.filters.length > 0) {
1909
1959
  params.append("filters", JSON.stringify(options.filters));
1910
1960
  }
1961
+ if (options.query) params.append("query", JSON.stringify(options.query));
1962
+ if (options.workflowId !== void 0)
1963
+ params.append("workflowId", options.workflowId.toString());
1964
+ if (options.workflowRevisionId !== void 0)
1965
+ params.append("workflowRevisionId", options.workflowRevisionId.toString());
1911
1966
  if (options.createdAfter) params.append("createdAfter", options.createdAfter);
1912
1967
  if (options.createdBefore) params.append("createdBefore", options.createdBefore);
1913
1968
  return params;
@@ -2028,6 +2083,25 @@ var ChatsApi = class extends BaseApiClient {
2028
2083
  body: JSON.stringify(chat)
2029
2084
  });
2030
2085
  }
2086
+ /**
2087
+ * Get per-chat model provenance for the Chat sidebar's model summary area:
2088
+ * the effective chat + realtime models, the agent's current default (the
2089
+ * reset/inherit target), and pinned/matches flags.
2090
+ */
2091
+ async getChatModelOverride(wid, id) {
2092
+ return this.fetch(`w/${wid}/chats/${id}/model-override`);
2093
+ }
2094
+ /**
2095
+ * Pin or reset the per-chat chat/realtime model snapshot. A concrete model id
2096
+ * pins that model; an empty/null id resets it to the agent's current default.
2097
+ * Only fields present in the payload are touched.
2098
+ */
2099
+ async updateChatModelOverride(wid, id, override) {
2100
+ return this.fetch(`w/${wid}/chats/${id}/model-override`, {
2101
+ method: "PUT",
2102
+ body: JSON.stringify(override)
2103
+ });
2104
+ }
2031
2105
  /** Update the mute status of a chat. */
2032
2106
  async updateChatMute(wid, id, muted) {
2033
2107
  return this.fetch(`w/${wid}/chats/${id}/mute`, {
@@ -2098,13 +2172,35 @@ var ChatsApi = class extends BaseApiClient {
2098
2172
  })
2099
2173
  });
2100
2174
  }
2101
- /** Rate a chat message by its UUID. */
2102
- async rateMessage(wid, chatId, messageUuid, rating) {
2175
+ /**
2176
+ * List durable feedback rows for a chat (thumbs, explicit, supervisor, extracted).
2177
+ */
2178
+ async getChatFeedback(wid, chatId, options = {}) {
2179
+ const params = new URLSearchParams();
2180
+ if (options.page != null) params.set("page", String(options.page));
2181
+ if (options.pageSize != null) params.set("pageSize", String(options.pageSize));
2182
+ if (options.source) params.set("source", options.source);
2183
+ if (options.rating) params.set("rating", options.rating);
2184
+ if (options.authorKind) params.set("authorKind", options.authorKind);
2185
+ const qs = params.toString();
2186
+ return this.fetch(
2187
+ `w/${wid}/chats/${chatId}/feedback${qs ? `?${qs}` : ""}`
2188
+ );
2189
+ }
2190
+ /**
2191
+ * Rate a chat message by its UUID.
2192
+ * Optional ``comment`` updates free-text details on the same durable rating row.
2193
+ */
2194
+ async rateMessage(wid, chatId, messageUuid, rating, comment) {
2195
+ const body = { rating };
2196
+ if (comment !== void 0) {
2197
+ body.comment = comment;
2198
+ }
2103
2199
  return this.fetch(
2104
2200
  `w/${wid}/chats/${chatId}/messages/${messageUuid}/rate`,
2105
2201
  {
2106
2202
  method: "POST",
2107
- body: JSON.stringify({ rating })
2203
+ body: JSON.stringify(body)
2108
2204
  }
2109
2205
  );
2110
2206
  }
@@ -2370,6 +2466,51 @@ var CustomToolkitsApi = class extends BaseApiClient {
2370
2466
  }
2371
2467
  };
2372
2468
 
2469
+ // src/api/dashboards.ts
2470
+ var DashboardsApi = class extends BaseApiClient {
2471
+ /** List all dashboards for the workspace, in tab order. */
2472
+ async getDashboards(wid) {
2473
+ return this.fetch(`w/${wid}/dashboards`);
2474
+ }
2475
+ /** Get a dashboard by ID. */
2476
+ async getDashboard(wid, id) {
2477
+ return this.fetch(`w/${wid}/dashboards/${id}`);
2478
+ }
2479
+ /** Create a named dashboard, optionally with an initial widget list. */
2480
+ async createDashboard(wid, body) {
2481
+ return this.fetch(`w/${wid}/dashboards`, {
2482
+ method: "POST",
2483
+ body: JSON.stringify(body)
2484
+ });
2485
+ }
2486
+ /** Update a dashboard's name, position, or widget list (full replace). */
2487
+ async updateDashboard(wid, id, body) {
2488
+ return this.fetch(`w/${wid}/dashboards/${id}`, {
2489
+ method: "PATCH",
2490
+ body: JSON.stringify(body)
2491
+ });
2492
+ }
2493
+ /** Delete a dashboard. */
2494
+ async deleteDashboard(wid, id) {
2495
+ await this.fetch(`w/${wid}/dashboards/${id}`, { method: "DELETE" });
2496
+ }
2497
+ /** Per-channel chat volume in the window + live needs-response backlog. */
2498
+ async getDashboardChannelStats(wid, options) {
2499
+ const params = new URLSearchParams();
2500
+ if (options?.hours !== void 0) params.append("hours", options.hours.toString());
2501
+ const query = params.toString();
2502
+ return this.fetch(
2503
+ `w/${wid}/dashboards/stats/channels${query ? `?${query}` : ""}`
2504
+ );
2505
+ }
2506
+ /** Assignment status rollup per root workflow. */
2507
+ async getDashboardWorkflowAssignmentStats(wid) {
2508
+ return this.fetch(
2509
+ `w/${wid}/dashboards/stats/workflow-assignments`
2510
+ );
2511
+ }
2512
+ };
2513
+
2373
2514
  // src/api/data-types.ts
2374
2515
  var DataTypesApi = class extends BaseApiClient {
2375
2516
  /** List all data types for a workspace, optionally filtering by archived status. */
@@ -2442,12 +2583,58 @@ var DataTypesApi = class extends BaseApiClient {
2442
2583
  if (options?.memberIds?.length) params.append("member_ids", options.memberIds.join(","));
2443
2584
  if (options?.search) params.append("search", options.search);
2444
2585
  if (options?.searchField) params.append("search_field", options.searchField);
2586
+ if (options?.dataRecordFilterId != null) {
2587
+ params.append("dataRecordFilterId", options.dataRecordFilterId.toString());
2588
+ }
2589
+ if (options?.query != null) params.append("query", JSON.stringify(options.query));
2445
2590
  if (options?.page) params.append("page", options.page.toString());
2446
2591
  if (options?.pageSize) params.append("page_size", options.pageSize.toString());
2447
2592
  return this.fetch(
2448
2593
  `w/${wid}/data-types/${dataTypeId}/records${params?.toString() ? `?${params.toString()}` : ""}`
2449
2594
  );
2450
2595
  }
2596
+ // Data-record filter APIs (saved Query IR predicates per form)
2597
+ /** List saved data-record filters, optionally scoped to one DataType. */
2598
+ async getDataRecordFilters(wid, options) {
2599
+ const params = new URLSearchParams();
2600
+ if (options?.dataTypeId != null) {
2601
+ params.append("dataTypeId", options.dataTypeId.toString());
2602
+ }
2603
+ const qs = params.toString();
2604
+ return this.fetch(
2605
+ `w/${wid}/data-record-filters${qs ? `?${qs}` : ""}`
2606
+ );
2607
+ }
2608
+ /** Get a single data-record filter by ID. */
2609
+ async getDataRecordFilter(wid, filterId) {
2610
+ return this.fetch(`w/${wid}/data-record-filters/${filterId}`);
2611
+ }
2612
+ /** Create a new saved data-record filter. */
2613
+ async createDataRecordFilter(wid, data) {
2614
+ return this.fetch(`w/${wid}/data-record-filters`, {
2615
+ method: "POST",
2616
+ body: JSON.stringify(data)
2617
+ });
2618
+ }
2619
+ /** Update a saved data-record filter. */
2620
+ async updateDataRecordFilter(wid, filterId, data) {
2621
+ return this.fetch(`w/${wid}/data-record-filters/${filterId}`, {
2622
+ method: "PUT",
2623
+ body: JSON.stringify(data)
2624
+ });
2625
+ }
2626
+ /** Delete a saved data-record filter. */
2627
+ async deleteDataRecordFilter(wid, filterId) {
2628
+ return this.fetch(`w/${wid}/data-record-filters/${filterId}`, {
2629
+ method: "DELETE"
2630
+ });
2631
+ }
2632
+ /** Get the count of records matching a saved filter. */
2633
+ async getDataRecordFilterCount(wid, filterId) {
2634
+ return this.fetch(
2635
+ `w/${wid}/data-record-filters/${filterId}/count`
2636
+ );
2637
+ }
2451
2638
  /** Get a single data record by ID. */
2452
2639
  async getDataRecord(wid, recordId) {
2453
2640
  return this.fetch(`w/${wid}/data-types/records/${recordId}`);
@@ -2560,6 +2747,38 @@ var DiscordBotsApi = class extends BaseApiClient {
2560
2747
  body: JSON.stringify(data)
2561
2748
  });
2562
2749
  }
2750
+ /**
2751
+ * Step-up preflight for the Discord account-link flow (GH #20196).
2752
+ *
2753
+ * A no-side-effect GET enforcing the same authenticated, stepped-up
2754
+ * `apps:write` session as authorize/complete-link. Call this through the
2755
+ * client *before* the full-page navigation to `/oauth/authorize`: a 401
2756
+ * `insufficient_user_authentication` triggers the SDK's enhanced-auth
2757
+ * (step-up) modal + retry, so a below-assurance session is prompted here
2758
+ * rather than hitting a raw 401 on a top-level browser navigation.
2759
+ * Resolves (204) once the session is sufficiently assured.
2760
+ */
2761
+ async discordLinkPreflight(wid) {
2762
+ return this.fetch(`w/${wid}/app-connections/discord/oauth/link/preflight`);
2763
+ }
2764
+ /**
2765
+ * Complete an authenticated Discord account link (GH #20196).
2766
+ *
2767
+ * POST-only. Exchanges the one-time opaque handle (issued by the OAuth
2768
+ * callback and carried in the `?discord_link_handle=` return param) for a
2769
+ * persisted MemberCredential. Requires an authenticated, step-up-protected
2770
+ * session with `apps:write`; a 401 `insufficient_user_authentication`
2771
+ * triggers the SDK's enhanced-auth (step-up) retry automatically.
2772
+ */
2773
+ async completeDiscordLink(wid, data) {
2774
+ return this.fetch(
2775
+ `w/${wid}/app-connections/discord/oauth/complete-link`,
2776
+ {
2777
+ method: "POST",
2778
+ body: JSON.stringify(data)
2779
+ }
2780
+ );
2781
+ }
2563
2782
  /**
2564
2783
  * Update an existing Discord bot configuration.
2565
2784
  */
@@ -2814,7 +3033,8 @@ var EventsApi = class extends BaseApiClient {
2814
3033
  if (params.taskId) searchParams.append("taskId", params.taskId.toString());
2815
3034
  if (params.dataTypeId) searchParams.append("dataTypeId", params.dataTypeId.toString());
2816
3035
  if (params.routineId) searchParams.append("routineId", params.routineId.toString());
2817
- if (params.workflowId) searchParams.append("workflowId", params.workflowId.toString());
3036
+ if (params.workflowRevisionId)
3037
+ searchParams.append("workflowRevisionId", params.workflowRevisionId.toString());
2818
3038
  if (params.journeyStepId)
2819
3039
  searchParams.append("journeyStepId", params.journeyStepId.toString());
2820
3040
  if (params.includeDisabled) searchParams.append("includeDisabled", "true");
@@ -2885,7 +3105,8 @@ var EventsApi = class extends BaseApiClient {
2885
3105
  if (options.objectType) params.append("objectType", options.objectType);
2886
3106
  if (options.eventType) params.append("eventType", options.eventType);
2887
3107
  if (options.actionType) params.append("actionType", options.actionType);
2888
- if (options.workflowId) params.append("workflowId", options.workflowId.toString());
3108
+ if (options.workflowRevisionId)
3109
+ params.append("workflowRevisionId", options.workflowRevisionId.toString());
2889
3110
  return this.fetch(
2890
3111
  `w/${wid}/event-rules/executions${params.toString() ? `?${params.toString()}` : ""}`
2891
3112
  );
@@ -2897,6 +3118,20 @@ var EventsApi = class extends BaseApiClient {
2897
3118
  body: JSON.stringify(request)
2898
3119
  });
2899
3120
  }
3121
+ /**
3122
+ * Preview which target-audience roles lack Workflow USE for the Workflows a
3123
+ * draft Routine would start. Non-persisting, non-blocking authoring assist —
3124
+ * returns warnings only (role/Workflow names + IDs; no Member data).
3125
+ */
3126
+ async previewRoutineWorkflowAccess(wid, request) {
3127
+ return this.fetch(
3128
+ `w/${wid}/routines/preview-workflow-access`,
3129
+ {
3130
+ method: "POST",
3131
+ body: JSON.stringify(request)
3132
+ }
3133
+ );
3134
+ }
2900
3135
  /** List routines with optional pagination and active status filtering. */
2901
3136
  async getRoutines(wid, options = {}) {
2902
3137
  const params = new URLSearchParams();
@@ -3467,6 +3702,17 @@ var FilesApi = class extends BaseApiClient {
3467
3702
  async getFile(wid, id) {
3468
3703
  return this.fetch(`w/${wid}/files/${id}`);
3469
3704
  }
3705
+ /**
3706
+ * Resolve a wiki-style relative path (as authored in a markdown link or
3707
+ * image) to a file. `folderId` is the linking document's folder; omit it
3708
+ * to resolve from the workspace root. Handles `.`/`..` segments and an
3709
+ * omitted `.md` extension server-side.
3710
+ */
3711
+ async resolveFilePath(wid, path, folderId) {
3712
+ const params = new URLSearchParams({ path });
3713
+ if (folderId != null) params.append("folderId", String(folderId));
3714
+ return this.fetch(`w/${wid}/files/resolve-path?${params.toString()}`);
3715
+ }
3470
3716
  /**
3471
3717
  * Download the given files + folders (folders recursively) as a single ZIP.
3472
3718
  * Returns the raw archive bytes for the caller to save.
@@ -3520,6 +3766,36 @@ var FilesApi = class extends BaseApiClient {
3520
3766
  method: "DELETE"
3521
3767
  });
3522
3768
  }
3769
+ /** List a file's version history (newest first). */
3770
+ async listFileVersions(wid, fileId) {
3771
+ return this.fetch(`w/${wid}/files/${fileId}/versions`);
3772
+ }
3773
+ /** Compare two versions of a file. For text files both raw contents are returned. */
3774
+ async getFileVersionDiff(wid, fileId, fromVersion, toVersion) {
3775
+ return this.fetch(
3776
+ `w/${wid}/files/${fileId}/versions/diff?fromVersion=${fromVersion}&toVersion=${toVersion}`
3777
+ );
3778
+ }
3779
+ /** Restore an earlier version as the file's current contents. */
3780
+ async restoreFileVersion(wid, fileId, versionNumber, changeNote) {
3781
+ return this.fetch(
3782
+ `w/${wid}/files/${fileId}/versions/${versionNumber}/restore`,
3783
+ {
3784
+ method: "POST",
3785
+ // Required JSON body: keeps this cookie-auth POST non-forgeable
3786
+ // by cross-site HTML forms (backend rejects bodyless requests).
3787
+ body: JSON.stringify(changeNote ? { changeNote } : {})
3788
+ }
3789
+ );
3790
+ }
3791
+ /**
3792
+ * Same-origin proxy URL for a version's raw contents. Mirrors the shape of
3793
+ * `FileResponse.cdnUrl`: an app-relative Next.js route that authenticates
3794
+ * via session cookies and forwards to the versioned contents endpoint.
3795
+ */
3796
+ getFileVersionContentsUrl(wid, fileId, versionNumber) {
3797
+ return `/api/w/${wid}/files/${fileId}/versions/${versionNumber}/contents`;
3798
+ }
3523
3799
  /** Convert a file to the specified format (text, markdown, or PDF). */
3524
3800
  async convertFile(wid, fileId, format = "pdf") {
3525
3801
  return this.fetch(
@@ -4160,7 +4436,7 @@ var MembersApi = class extends BaseApiClient {
4160
4436
  });
4161
4437
  }
4162
4438
  /** List workspace members with pagination, filtering, and sorting. */
4163
- async getWorkspaceMembers(wid, page = 1, pageSize = 10, filters, search, role, sortBy, sortOrder, memberType, isArchived = false, isManager, memberTypes, hasAccount, excludeIds, memberFilterId, query) {
4439
+ async getWorkspaceMembers(wid, page = 1, pageSize = 10, search, role, sortBy, sortOrder, memberType, isArchived = false, isManager, memberTypes, hasAccount, excludeIds, memberFilterId, query) {
4164
4440
  const params = new URLSearchParams();
4165
4441
  if (memberFilterId != null) params.append("memberFilterId", memberFilterId.toString());
4166
4442
  if (query != null) params.append("query", JSON.stringify(query));
@@ -4168,13 +4444,6 @@ var MembersApi = class extends BaseApiClient {
4168
4444
  if (pageSize) params.append("pageSize", pageSize.toString());
4169
4445
  if (sortBy) params.append("sortBy", sortBy);
4170
4446
  if (sortOrder) params.append("sortOrder", sortOrder);
4171
- if (filters) {
4172
- if (Array.isArray(filters)) {
4173
- params.append("filters", JSON.stringify(filters));
4174
- } else {
4175
- params.append("filters", JSON.stringify(filters));
4176
- }
4177
- }
4178
4447
  if (search) params.append("search", search);
4179
4448
  if (role) params.append("role", role);
4180
4449
  if (memberTypes && memberTypes.length > 0) {
@@ -4270,22 +4539,6 @@ var MembersApi = class extends BaseApiClient {
4270
4539
  body: JSON.stringify(data)
4271
4540
  });
4272
4541
  }
4273
- /**
4274
- * Convert a legacy rules filter to a query-engine predicate. One-way and
4275
- * transactional: on success the filter's legacy rules are gone and
4276
- * `query` holds the equivalent IR predicate. 409 if already query-format;
4277
- * 422 when rules have no engine equivalent.
4278
- *
4279
- * With `dryRun: true` the same validation runs but nothing persists: the
4280
- * response previews the normalized predicate in `query` while `rules`
4281
- * stay intact on the filter.
4282
- */
4283
- async convertMemberFilterToQuery(wid, filterId, opts) {
4284
- const suffix = opts?.dryRun ? "?dryRun=true" : "";
4285
- return this.fetch(`w/${wid}/member-filters/${filterId}/convert${suffix}`, {
4286
- method: "PUT"
4287
- });
4288
- }
4289
4542
  /** Delete a saved member filter. */
4290
4543
  async deleteMemberFilter(wid, filterId) {
4291
4544
  return this.fetch(`w/${wid}/member-filters/${filterId}`, {
@@ -4631,6 +4884,11 @@ var MembersApi = class extends BaseApiClient {
4631
4884
  `w/${wid}/members/${memberId}/memories${qs ? `?${qs}` : ""}`
4632
4885
  );
4633
4886
  }
4887
+ async getMemberMemory(wid, memberId, key) {
4888
+ return this.fetch(
4889
+ `w/${wid}/members/${memberId}/memories/${encodeURIComponent(key)}`
4890
+ );
4891
+ }
4634
4892
  async createMemberMemory(wid, memberId, body) {
4635
4893
  return this.fetch(`w/${wid}/members/${memberId}/memories`, {
4636
4894
  method: "POST",
@@ -4699,6 +4957,25 @@ var MilestonesApi = class extends BaseApiClient {
4699
4957
  }
4700
4958
  };
4701
4959
 
4960
+ // src/api/motd.ts
4961
+ var MotdApi = class extends BaseApiClient {
4962
+ /**
4963
+ * The Message-of-the-Day tip for the workspace on a given date.
4964
+ *
4965
+ * `date` is an ISO `YYYY-MM-DD` string (defaults to today, UTC, when
4966
+ * omitted); `offset` advances the rotation ("show another"). Selection is
4967
+ * deterministic — same date + workspace + offset always returns the same
4968
+ * tip — and cycles through the tip list.
4969
+ */
4970
+ async getMotd(wid, options) {
4971
+ const params = new URLSearchParams();
4972
+ if (options?.date !== void 0) params.append("date", options.date);
4973
+ if (options?.offset !== void 0) params.append("offset", options.offset.toString());
4974
+ const query = params.toString();
4975
+ return this.fetch(`w/${wid}/motd${query ? `?${query}` : ""}`);
4976
+ }
4977
+ };
4978
+
4702
4979
  // src/api/monday.ts
4703
4980
  var MondayIntegrationApi = class extends BaseApiClient {
4704
4981
  /**
@@ -4735,6 +5012,20 @@ var MondayIntegrationApi = class extends BaseApiClient {
4735
5012
  // -----------------------------------------------------------------------
4736
5013
  // Monday.com Connection management (OAuth, status, sync, reconciliation)
4737
5014
  // -----------------------------------------------------------------------
5015
+ /**
5016
+ * Create the Monday.com connection shell (no credentials yet).
5017
+ *
5018
+ * First step of the guided setup flow: provisions the connection row so
5019
+ * the admin lands on the detail page where the OAuth callback URL is
5020
+ * shown — which they need to register their Monday.com app before they
5021
+ * have a Client ID / Secret to enter. Idempotent.
5022
+ */
5023
+ async installMondayConnection(wid) {
5024
+ return this.fetch(`w/${wid}/app-connections/monday/install`, {
5025
+ method: "POST",
5026
+ body: JSON.stringify({})
5027
+ });
5028
+ }
4738
5029
  async configureMondayConnection(wid, data) {
4739
5030
  return this.fetch(`w/${wid}/app-connections/monday/configure`, {
4740
5031
  method: "POST",
@@ -5561,6 +5852,14 @@ var OAuthApi = class extends BaseApiClient {
5561
5852
  };
5562
5853
 
5563
5854
  // src/api/phone-numbers.ts
5855
+ function appendAnalyticsFilters(params, filters) {
5856
+ if (!filters) return;
5857
+ if (filters.dateFrom) params.set("dateFrom", filters.dateFrom);
5858
+ if (filters.dateTo) params.set("dateTo", filters.dateTo);
5859
+ filters.terminationReason?.forEach((v) => params.append("terminationReason", v));
5860
+ filters.answeredBy?.forEach((v) => params.append("answeredBy", v));
5861
+ filters.memberLabel?.forEach((v) => params.append("memberLabel", v));
5862
+ }
5564
5863
  var PhoneNumbersApi = class extends BaseApiClient {
5565
5864
  /** List phone numbers in a workspace, optionally including archived. */
5566
5865
  async getPhoneNumbers(wid, options) {
@@ -5684,6 +5983,62 @@ var PhoneNumbersApi = class extends BaseApiClient {
5684
5983
  method: "POST"
5685
5984
  });
5686
5985
  }
5986
+ /**
5987
+ * Always-anonymized outbound-call analytics summary for one phone number.
5988
+ * No `analyticsSessionId` is sent — the summary carries no row-level PHI.
5989
+ */
5990
+ async getPhoneNumberOutboundAnalyticsSummary(wid, id, filters) {
5991
+ const params = new URLSearchParams();
5992
+ appendAnalyticsFilters(params, filters);
5993
+ const query = params.toString();
5994
+ return this.fetch(
5995
+ `w/${wid}/phone-numbers/${id}/analytics/summary${query ? `?${query}` : ""}`
5996
+ );
5997
+ }
5998
+ /**
5999
+ * One paginated page of outbound-call analytics detail rows. Anonymized by
6000
+ * default; `raw: true` requires the `export:admin` scope server-side and is
6001
+ * audited per response. `analyticsSessionId` keeps the callee pseudonyms
6002
+ * stable across pagination/sort within one browser session.
6003
+ */
6004
+ async getPhoneNumberOutboundAnalyticsCalls(wid, id, options) {
6005
+ const params = new URLSearchParams({
6006
+ analyticsSessionId: options.analyticsSessionId,
6007
+ page: String(options.page ?? 1),
6008
+ pageSize: String(options.pageSize ?? 50)
6009
+ });
6010
+ if (options.sort) params.set("sort", options.sort);
6011
+ if (options.sortDirection) params.set("sortDirection", options.sortDirection);
6012
+ if (options.raw) params.set("raw", "true");
6013
+ appendAnalyticsFilters(params, options.filters);
6014
+ return this.fetch(
6015
+ `w/${wid}/phone-numbers/${id}/analytics/calls?${params}`
6016
+ );
6017
+ }
6018
+ /**
6019
+ * Export outbound-call analytics as a CSV blob (respecting the current
6020
+ * filters + raw state). The server returns HTTP 400 when the result set
6021
+ * exceeds its export cap; that message is surfaced to the caller via
6022
+ * `ApiError` so the UI can toast it.
6023
+ */
6024
+ async exportPhoneNumberOutboundAnalyticsCsv(wid, id, options) {
6025
+ const params = new URLSearchParams({ analyticsSessionId: options.analyticsSessionId });
6026
+ if (options.sort) params.set("sort", options.sort);
6027
+ if (options.sortDirection) params.set("sortDirection", options.sortDirection);
6028
+ if (options.raw) params.set("raw", "true");
6029
+ appendAnalyticsFilters(params, options.filters);
6030
+ const response = await this.fetchRaw(
6031
+ `w/${wid}/phone-numbers/${id}/analytics/export?${params}`,
6032
+ {},
6033
+ [400]
6034
+ );
6035
+ if (!response.ok) {
6036
+ const data = await response.json().catch(() => ({}));
6037
+ const message = typeof data?.detail === "string" ? data.detail : "Failed to export analytics";
6038
+ throw new ApiError(message, response.status);
6039
+ }
6040
+ return response.blob();
6041
+ }
5687
6042
  };
5688
6043
 
5689
6044
  // src/api/pronunciations.ts
@@ -6022,6 +6377,20 @@ var ReportsApi = class extends BaseApiClient {
6022
6377
 
6023
6378
  // src/api/salesforce.ts
6024
6379
  var SalesforceApi = class extends BaseApiClient {
6380
+ /**
6381
+ * Create the Salesforce connection shell (no credentials yet).
6382
+ *
6383
+ * First step of the guided setup flow: provisions the connection row so
6384
+ * the admin lands on the detail page where the OAuth callback URL is
6385
+ * shown — which they need to register their Salesforce Connected App
6386
+ * before they have a Client ID / Secret to enter. Idempotent.
6387
+ */
6388
+ async installSalesforce(wid, data) {
6389
+ return this.fetch(`w/${wid}/app-connections/salesforce/install`, {
6390
+ method: "POST",
6391
+ body: JSON.stringify(data ?? {})
6392
+ });
6393
+ }
6025
6394
  async configureSalesforce(wid, data) {
6026
6395
  return this.fetch(
6027
6396
  `w/${wid}/app-connections/salesforce/configure`,
@@ -6223,6 +6592,20 @@ var ConnectionSyncApi = class extends BaseApiClient {
6223
6592
 
6224
6593
  // src/api/hubspot.ts
6225
6594
  var HubspotApi = class extends BaseApiClient {
6595
+ /**
6596
+ * Create the HubSpot connection shell (no credentials yet).
6597
+ *
6598
+ * First step of the guided setup flow: provisions the connection row so
6599
+ * the admin lands on the detail page where the OAuth callback URL is
6600
+ * shown — which they need to register their HubSpot app before they have
6601
+ * a Client ID / Secret to enter. Idempotent.
6602
+ */
6603
+ async installHubspot(wid) {
6604
+ return this.fetch(`w/${wid}/app-connections/hubspot/install`, {
6605
+ method: "POST",
6606
+ body: JSON.stringify({})
6607
+ });
6608
+ }
6226
6609
  async configureHubspot(wid, data) {
6227
6610
  return this.fetch(`w/${wid}/app-connections/hubspot/configure`, {
6228
6611
  method: "POST",
@@ -6497,19 +6880,28 @@ var SitesApi = class extends BaseApiClient {
6497
6880
  }
6498
6881
  );
6499
6882
  }
6500
- /** Verify a phone or email code and complete site authentication. */
6883
+ /**
6884
+ * Verify a phone or email code and complete site authentication.
6885
+ *
6886
+ * When the account has 2FA enrolled, the backend returns a temporary token
6887
+ * with ``requiresTwoFactor: true`` and this method does **not** mint full
6888
+ * session cookies — the caller must complete the 2FA challenge (same handoff
6889
+ * as public-site Google OAuth).
6890
+ */
6501
6891
  async siteVerifyCode(wid, siteUuid, code, phoneNumber, email) {
6502
6892
  const verifyResponse = await this.fetch(`s/${wid}/${siteUuid}/auth/verify`, {
6503
6893
  method: "POST",
6504
6894
  body: JSON.stringify({ code, phoneNumber, email })
6505
6895
  });
6506
- const completeResponse = await fetch(`/api/auth/complete`, {
6507
- method: "POST",
6508
- headers: { "Content-Type": "application/json" },
6509
- body: JSON.stringify({ token: verifyResponse.token })
6510
- });
6511
- if (!completeResponse.ok) {
6512
- throw new Error("Failed to complete authentication");
6896
+ if (!verifyResponse.requiresTwoFactor && verifyResponse.token) {
6897
+ const completeResponse = await fetch(`/api/auth/complete`, {
6898
+ method: "POST",
6899
+ headers: { "Content-Type": "application/json" },
6900
+ body: JSON.stringify({ token: verifyResponse.token })
6901
+ });
6902
+ if (!completeResponse.ok) {
6903
+ throw new Error("Failed to complete authentication");
6904
+ }
6513
6905
  }
6514
6906
  return verifyResponse;
6515
6907
  }
@@ -6969,7 +7361,15 @@ var SupervisorsApi = class extends BaseApiClient {
6969
7361
 
6970
7362
  // src/api/tasks.ts
6971
7363
  var TasksApi = class extends BaseApiClient {
6972
- /** List all tasks in a workspace, optionally filtering by workflow or including archived. */
7364
+ /**
7365
+ * List all tasks in a workspace, optionally filtering by workflow or
7366
+ * including archived.
7367
+ *
7368
+ * `workflowId` is the STABLE workflow root id — the server resolves it to
7369
+ * that workflow's draft revision's tasks. `workflowRevisionId` filters an
7370
+ * explicit revision (the read-only published-revision view). Pass at most
7371
+ * one; passing both that disagree is a 400.
7372
+ */
6973
7373
  async getTasks(wid, options = {}) {
6974
7374
  const params = new URLSearchParams();
6975
7375
  if (options.includeArchived) {
@@ -6978,6 +7378,9 @@ var TasksApi = class extends BaseApiClient {
6978
7378
  if (options.workflowId) {
6979
7379
  params.append("workflow_id", options.workflowId.toString());
6980
7380
  }
7381
+ if (options.workflowRevisionId) {
7382
+ params.append("workflow_revision_id", options.workflowRevisionId.toString());
7383
+ }
6981
7384
  if (options.sortBy) {
6982
7385
  params.append("sortBy", options.sortBy);
6983
7386
  }
@@ -7332,11 +7735,18 @@ var JourneysApi = class extends BaseApiClient {
7332
7735
  // src/api/workflows.ts
7333
7736
  var WorkflowsApi = class extends BaseApiClient {
7334
7737
  /** List all workflows in a workspace, optionally including archived ones. */
7335
- async getWorkflows(wid, archived = false) {
7336
- const url = archived ? `w/${wid}/workflows?archived=true` : `w/${wid}/workflows`;
7337
- return this.fetch(url);
7738
+ async getWorkflows(wid, options = {}) {
7739
+ const params = new URLSearchParams();
7740
+ if (options.archived) params.set("archived", "true");
7741
+ if (options.page) params.set("page", String(options.page));
7742
+ if (options.pageSize) params.set("pageSize", String(options.pageSize));
7743
+ if (options.sortBy) params.set("sortBy", options.sortBy);
7744
+ if (options.sortOrder) params.set("sortOrder", options.sortOrder);
7745
+ if (options.search) params.set("search", options.search);
7746
+ const qs = params.toString();
7747
+ return this.fetch(`w/${wid}/workflows${qs ? `?${qs}` : ""}`);
7338
7748
  }
7339
- /** Get a single workflow by ID. */
7749
+ /** Get a single workflow by ID (root + draft + active-revision summary). */
7340
7750
  async getWorkflow(wid, id) {
7341
7751
  return this.fetch(`w/${wid}/workflows/${id}`);
7342
7752
  }
@@ -7384,7 +7794,7 @@ var WorkflowsApi = class extends BaseApiClient {
7384
7794
  body: JSON.stringify(workflow)
7385
7795
  });
7386
7796
  }
7387
- /** Update an existing workflow. */
7797
+ /** Update an existing workflow's draft revision. */
7388
7798
  async updateWorkflow(wid, id, workflow) {
7389
7799
  return this.fetch(`w/${wid}/workflows/${id}`, {
7390
7800
  method: "PUT",
@@ -7405,13 +7815,15 @@ var WorkflowsApi = class extends BaseApiClient {
7405
7815
  /** Archive a workflow. */
7406
7816
  async archiveWorkflow(wid, id) {
7407
7817
  return this.fetch(`w/${wid}/workflows/${id}/archive`, {
7408
- method: "POST"
7818
+ method: "POST",
7819
+ body: JSON.stringify({})
7409
7820
  });
7410
7821
  }
7411
7822
  /** Unarchive a previously archived workflow. */
7412
7823
  async unarchiveWorkflow(wid, id) {
7413
7824
  return this.fetch(`w/${wid}/workflows/${id}/unarchive`, {
7414
- method: "POST"
7825
+ method: "POST",
7826
+ body: JSON.stringify({})
7415
7827
  });
7416
7828
  }
7417
7829
  /** Clone a workflow with a new name. */
@@ -7427,16 +7839,20 @@ var WorkflowsApi = class extends BaseApiClient {
7427
7839
  }
7428
7840
  /** Create a new workflow from a template. */
7429
7841
  async createWorkflowFromTemplate(wid, templateUuid, data) {
7430
- return this.fetch(`w/${wid}/workflows/templates/${templateUuid}/create-workflow`, {
7431
- method: "POST",
7432
- body: JSON.stringify(data)
7433
- });
7842
+ return this.fetch(
7843
+ `w/${wid}/workflows/templates/${templateUuid}/create-workflow`,
7844
+ {
7845
+ method: "POST",
7846
+ body: JSON.stringify(data)
7847
+ }
7848
+ );
7434
7849
  }
7435
7850
  /** Get task assignment statistics for a workflow within an optional date range. */
7436
- async getWorkflowTaskAssignmentStats(wid, id, fromDate, toDate) {
7851
+ async getWorkflowTaskAssignmentStats(wid, id, fromDate, toDate, workflowRevisionId) {
7437
7852
  const params = new URLSearchParams();
7438
7853
  if (fromDate) params.append("from_date", fromDate);
7439
7854
  if (toDate) params.append("to_date", toDate);
7855
+ if (workflowRevisionId) params.append("workflowRevisionId", String(workflowRevisionId));
7440
7856
  return this.fetch(
7441
7857
  `w/${wid}/workflows/${id}/task-assignment-stats?${params.toString()}`
7442
7858
  );
@@ -7486,6 +7902,24 @@ var WorkflowsApi = class extends BaseApiClient {
7486
7902
  `w/${wid}/workflows/${workflowId}/route-dry-run?${params.toString()}`
7487
7903
  );
7488
7904
  }
7905
+ // Workflow Feedback API
7906
+ /**
7907
+ * List chat feedback for a workflow (thumbs ratings + explicit/extracted rows).
7908
+ * First consumer of the workspace-plane chat_feedback table.
7909
+ */
7910
+ async getWorkflowFeedback(wid, workflowId, options = {}) {
7911
+ const params = new URLSearchParams();
7912
+ if (options.page != null) params.set("page", String(options.page));
7913
+ if (options.pageSize != null) params.set("pageSize", String(options.pageSize));
7914
+ if (options.source) params.set("source", options.source);
7915
+ if (options.rating) params.set("rating", options.rating);
7916
+ if (options.authorKind) params.set("authorKind", options.authorKind);
7917
+ if (options.includeTest != null) params.set("includeTest", String(options.includeTest));
7918
+ const qs = params.toString();
7919
+ return this.fetch(
7920
+ `w/${wid}/workflows/${workflowId}/feedback${qs ? `?${qs}` : ""}`
7921
+ );
7922
+ }
7489
7923
  // Workflow Contributors API
7490
7924
  /** List all contributors for a workflow. */
7491
7925
  async getWorkflowContributors(wid, workflowId) {
@@ -7551,58 +7985,80 @@ var WorkflowsApi = class extends BaseApiClient {
7551
7985
  body: JSON.stringify({ name })
7552
7986
  });
7553
7987
  }
7554
- // Workflow Versions API
7555
- /** List all versions of a workflow. */
7556
- async getWorkflowVersions(wid, workflowUuid) {
7557
- return this.fetch(`w/${wid}/workflows/${workflowUuid}/versions`);
7558
- }
7559
- /** Get the active version of a workflow. */
7560
- async getWorkflowVersionActive(wid, workflowUuid) {
7561
- return this.fetch(
7562
- `w/${wid}/workflows/${workflowUuid}/versions/active`
7563
- );
7988
+ /** List relational revisions for a workflow. */
7989
+ async getWorkflowRevisions(wid, workflowId) {
7990
+ return this.fetch(`w/${wid}/workflows/${workflowId}/revisions`);
7564
7991
  }
7565
- /** Get a specific version of a workflow by version number. */
7566
- async getWorkflowVersion(wid, workflowUuid, versionNumber) {
7992
+ /** Get full workflow details for one relational workflow revision. */
7993
+ async getWorkflowRevision(wid, workflowId, revisionId) {
7567
7994
  return this.fetch(
7568
- `w/${wid}/workflows/${workflowUuid}/versions/${versionNumber}`
7995
+ `w/${wid}/workflows/${workflowId}/revisions/${revisionId}`
7569
7996
  );
7570
7997
  }
7571
- /** Publish the live workflow as a new immutable version. */
7572
- async publishWorkflowVersion(wid, workflowUuid, data) {
7573
- return this.fetch(`w/${wid}/workflows/${workflowUuid}/versions`, {
7998
+ /** Freeze the workflow's draft as a published revision and clone a fresh draft.
7999
+ *
8000
+ * By default the just-published revision becomes the active revision —
8001
+ * live traffic flips to it immediately. Pass `setActive: false` to
8002
+ * publish without flipping live traffic (advanced flow).
8003
+ */
8004
+ async publishWorkflowRevision(wid, workflowId, data = {}) {
8005
+ return this.fetch(`w/${wid}/workflows/${workflowId}/publish`, {
7574
8006
  method: "POST",
7575
8007
  body: JSON.stringify(data)
7576
8008
  });
7577
8009
  }
7578
- async updateWorkflowVersion(wid, workflowUuid, versionNumber, data) {
8010
+ /** Point the workflow's active pointer at a chosen revision (pointer flip only).
8011
+ *
8012
+ * The target may be any of the workflow's published revisions.
8013
+ * Activating the draft requires `allowDraft: true` and a UI warning
8014
+ * confirmation.
8015
+ */
8016
+ async activateWorkflowRevision(wid, workflowId, revisionId, data = {}) {
7579
8017
  return this.fetch(
7580
- `w/${wid}/workflows/${workflowUuid}/versions/${versionNumber}`,
7581
- { method: "PATCH", body: JSON.stringify(data) }
8018
+ `w/${wid}/workflows/${workflowId}/revisions/${revisionId}/activate`,
8019
+ {
8020
+ method: "POST",
8021
+ body: JSON.stringify(data)
8022
+ }
7582
8023
  );
7583
8024
  }
7584
- /** Activate a published version. */
7585
- async activateWorkflowVersion(wid, workflowUuid, versionNumber) {
8025
+ /** Update a revision's curation metadata (label + publish notes).
8026
+ *
8027
+ * Applies to both the draft and published revisions; it is not a graph
8028
+ * change, so it never marks the draft dirty.
8029
+ */
8030
+ async updateWorkflowRevisionMetadata(wid, workflowId, revisionId, data) {
7586
8031
  return this.fetch(
7587
- `w/${wid}/workflows/${workflowUuid}/versions/${versionNumber}/activate`,
8032
+ `w/${wid}/workflows/${workflowId}/revisions/${revisionId}`,
7588
8033
  {
7589
- method: "POST"
8034
+ method: "PATCH",
8035
+ body: JSON.stringify(data)
7590
8036
  }
7591
8037
  );
7592
8038
  }
7593
- /** Deactivate a published version. */
7594
- async deactivateWorkflowVersion(wid, workflowUuid, versionNumber) {
8039
+ /** Compare two revisions of the same workflow.
8040
+ *
8041
+ * `against` is a revision id or UUID; when omitted the diff compares the
8042
+ * named revision against the workflow's draft. Tasks are matched by
8043
+ * stable lineage, so a rename reads as a changed `name` field.
8044
+ */
8045
+ async diffWorkflowRevisions(wid, workflowId, revisionId, against) {
8046
+ const qs = against !== void 0 ? `?against=${encodeURIComponent(String(against))}` : "";
7595
8047
  return this.fetch(
7596
- `w/${wid}/workflows/${workflowUuid}/versions/${versionNumber}/deactivate`,
7597
- {
7598
- method: "POST"
7599
- }
8048
+ `w/${wid}/workflows/${workflowId}/revisions/${revisionId}/diff${qs}`
7600
8049
  );
7601
8050
  }
7602
- /** Compare two workflow versions (0 = draft). */
7603
- async diffWorkflowVersions(wid, workflowUuid, fromVersion, toVersion) {
8051
+ /** Branch a published revision into the workflow's draft ("edit this
8052
+ * revision"): the draft becomes a fresh clone of the named published
8053
+ * revision. Pass `discardDraftChanges` to replace a dirty draft.
8054
+ */
8055
+ async editWorkflowRevisionAsDraft(wid, workflowId, revisionId, data = {}) {
7604
8056
  return this.fetch(
7605
- `w/${wid}/workflows/${workflowUuid}/versions/diff?from=${fromVersion}&to=${toVersion}`
8057
+ `w/${wid}/workflows/${workflowId}/revisions/${revisionId}/edit`,
8058
+ {
8059
+ method: "POST",
8060
+ body: JSON.stringify(data)
8061
+ }
7606
8062
  );
7607
8063
  }
7608
8064
  };
@@ -7743,11 +8199,14 @@ var Scope = /* @__PURE__ */ ((Scope2) => {
7743
8199
  Scope2["ANALYTICS_READ"] = "analytics:read";
7744
8200
  Scope2["OPERATOR_READ"] = "operator:read";
7745
8201
  Scope2["OPERATOR_WRITE"] = "operator:write";
8202
+ Scope2["EXPORT_READ"] = "export:read";
8203
+ Scope2["EXPORT_WRITE"] = "export:write";
8204
+ Scope2["EXPORT_ADMIN"] = "export:admin";
7746
8205
  Scope2["ORG_INFO"] = "org:info";
7747
8206
  Scope2["ORG_READ"] = "org:read";
7748
8207
  Scope2["ORG_WRITE"] = "org:write";
7749
8208
  Scope2["ORG_ADMIN"] = "org:admin";
7750
- Scope2["ORG_BILLING"] = "org:billing";
8209
+ Scope2["ORG_MANAGE_ADMINS"] = "org:manage_admins";
7751
8210
  Scope2["ORG_DELETE"] = "org:delete";
7752
8211
  return Scope2;
7753
8212
  })(Scope || {});
@@ -7822,6 +8281,7 @@ var EventRuleEventType = /* @__PURE__ */ ((EventRuleEventType2) => {
7822
8281
  EventRuleEventType2["MEMBER_LEFT"] = "workspace:member_left";
7823
8282
  EventRuleEventType2["DATA_RECORD_CREATED"] = "data_record:created";
7824
8283
  EventRuleEventType2["DATA_RECORD_UPDATED"] = "data_record:updated";
8284
+ EventRuleEventType2["DATA_RECORD_CHANGED"] = "data_record:changed";
7825
8285
  EventRuleEventType2["CHAT_CREATED"] = "chat:created";
7826
8286
  EventRuleEventType2["CHAT_CALLBACK"] = "chat:callback";
7827
8287
  EventRuleEventType2["MEMBER_UPDATED"] = "member:updated";
@@ -7900,7 +8360,6 @@ var WorkspaceFeature = /* @__PURE__ */ ((WorkspaceFeature2) => {
7900
8360
  WorkspaceFeature2["GCALENDAR"] = "gcalendar";
7901
8361
  WorkspaceFeature2["MONDAY"] = "monday";
7902
8362
  WorkspaceFeature2["RESELL_PRODUCTS"] = "resell_products";
7903
- WorkspaceFeature2["HIPAA_COMPLIANCE"] = "hipaa_compliance";
7904
8363
  WorkspaceFeature2["SOC2_COMPLIANCE"] = "soc2_compliance";
7905
8364
  WorkspaceFeature2["EHR_FHIR"] = "ehr_fhir";
7906
8365
  WorkspaceFeature2["EHR_ECLINICALWORKS"] = "ehr_eclinicalworks";
@@ -7910,7 +8369,6 @@ var WorkspaceFeature = /* @__PURE__ */ ((WorkspaceFeature2) => {
7910
8369
  WorkspaceFeature2["CONFLUENCE"] = "confluence";
7911
8370
  WorkspaceFeature2["AGENT_MEMORY"] = "agent_memory";
7912
8371
  WorkspaceFeature2["IMAGE_GENERATION"] = "image_generation";
7913
- WorkspaceFeature2["WORKFLOW_VERSIONING"] = "workflow_versioning";
7914
8372
  return WorkspaceFeature2;
7915
8373
  })(WorkspaceFeature || {});
7916
8374
  var MemberFeature = /* @__PURE__ */ ((MemberFeature2) => {
@@ -7924,7 +8382,6 @@ var MemberFeature = /* @__PURE__ */ ((MemberFeature2) => {
7924
8382
  var OrgFeature = /* @__PURE__ */ ((OrgFeature2) => {
7925
8383
  OrgFeature2["SSO"] = "sso";
7926
8384
  OrgFeature2["AUDIT_LOGS"] = "audit_logs";
7927
- OrgFeature2["HIPAA_COMPLIANCE"] = "hipaa_compliance";
7928
8385
  OrgFeature2["SOC2_COMPLIANCE"] = "soc2_compliance";
7929
8386
  OrgFeature2["CUSTOM_BRANDING"] = "custom_branding";
7930
8387
  OrgFeature2["PRIORITY_SUPPORT"] = "priority_support";
@@ -8177,8 +8634,15 @@ var AccessGrantResourceType = /* @__PURE__ */ ((AccessGrantResourceType2) => {
8177
8634
  AccessGrantResourceType2["SITE"] = "site";
8178
8635
  AccessGrantResourceType2["ASSIGNMENT"] = "assignment";
8179
8636
  AccessGrantResourceType2["APP_CONNECTION"] = "app_connection";
8637
+ AccessGrantResourceType2["CAPABILITY"] = "capability";
8180
8638
  return AccessGrantResourceType2;
8181
8639
  })(AccessGrantResourceType || {});
8640
+ var CapabilityClass = /* @__PURE__ */ ((CapabilityClass2) => {
8641
+ CapabilityClass2["TOOL_ALWAYS_ALLOW"] = "tool.always_allow";
8642
+ CapabilityClass2["SELF_MODIFICATION_SCHEDULE"] = "self_modification.schedule";
8643
+ CapabilityClass2["ATTENTION_INTERRUPT_RUNG"] = "attention.interrupt_rung";
8644
+ return CapabilityClass2;
8645
+ })(CapabilityClass || {});
8182
8646
  var AccessGrantStatus = /* @__PURE__ */ ((AccessGrantStatus2) => {
8183
8647
  AccessGrantStatus2["PENDING"] = "pending";
8184
8648
  AccessGrantStatus2["ACTIVE"] = "active";
@@ -8489,6 +8953,35 @@ var WorkspacesApi = class extends BaseApiClient {
8489
8953
  async getWorkspaceSiteDomains(wid) {
8490
8954
  return this.fetch(`w/${wid}/domains/for-site`);
8491
8955
  }
8956
+ /**
8957
+ * List org domains available for enabling embeddable widgets. Widgets ride
8958
+ * on domain-ownership verification only, so the consumer gates selection on
8959
+ * `ownershipStatus === 'verified'`.
8960
+ */
8961
+ async getWorkspaceWidgetDomains(wid) {
8962
+ return this.fetch(`w/${wid}/domains/for-widget`);
8963
+ }
8964
+ /** List this workspace's widget-domain enablement entries. */
8965
+ async listWidgetDomains(wid) {
8966
+ return this.fetch(`w/${wid}/widget-domains`);
8967
+ }
8968
+ /**
8969
+ * Enable/replace the set of widgets on one verified org domain. Idempotent
8970
+ * upsert keyed by `orgDomainUuid`; the server rejects unverified domains
8971
+ * (400) and cross-org domains (404).
8972
+ */
8973
+ async upsertWidgetDomain(wid, orgDomainUuid, body) {
8974
+ return this.fetch(`w/${wid}/widget-domains/${orgDomainUuid}`, {
8975
+ method: "PUT",
8976
+ body: JSON.stringify(body)
8977
+ });
8978
+ }
8979
+ /** Remove this workspace's widget entry for a domain (disables all widgets). */
8980
+ async deleteWidgetDomain(wid, orgDomainUuid) {
8981
+ await this.fetch(`w/${wid}/widget-domains/${orgDomainUuid}`, {
8982
+ method: "DELETE"
8983
+ });
8984
+ }
8492
8985
  /** List client workspaces managed by this reseller workspace, paginated. */
8493
8986
  async getResellerWorkspaces(wid, params) {
8494
8987
  const query = new URLSearchParams();
@@ -8648,7 +9141,7 @@ var WorkspacesApi = class extends BaseApiClient {
8648
9141
  /**
8649
9142
  * Get billing dashboard data for a workspace.
8650
9143
  *
8651
- * This endpoint is available to organization owners (with org:billing scope).
9144
+ * This endpoint is available to organization owners (with org:info scope).
8652
9145
  * Superusers should use the admin endpoint via getWorkspaceUsageDashboard.
8653
9146
  *
8654
9147
  * Returns comprehensive billing information including:
@@ -8745,6 +9238,7 @@ function createApiModules(apiKey, baseUrl, customFetch) {
8745
9238
  customers: new CustomersApi(apiKey, baseUrl, customFetch),
8746
9239
  resellers: new ResellersApi(apiKey, baseUrl, customFetch),
8747
9240
  customToolkits: new CustomToolkitsApi(apiKey, baseUrl, customFetch),
9241
+ dashboards: new DashboardsApi(apiKey, baseUrl, customFetch),
8748
9242
  dataTypes: new DataTypesApi(apiKey, baseUrl, customFetch),
8749
9243
  discordBots: new DiscordBotsApi(apiKey, baseUrl, customFetch),
8750
9244
  slackApps: new SlackAppsApi(apiKey, baseUrl, customFetch),
@@ -8765,6 +9259,7 @@ function createApiModules(apiKey, baseUrl, customFetch) {
8765
9259
  mcpServers: new McpServersApi(apiKey, baseUrl, customFetch),
8766
9260
  members: new MembersApi(apiKey, baseUrl, customFetch),
8767
9261
  milestones: new MilestonesApi(apiKey, baseUrl, customFetch),
9262
+ motd: new MotdApi(apiKey, baseUrl, customFetch),
8768
9263
  confluence: new ConfluenceApi(apiKey, baseUrl, customFetch),
8769
9264
  mondayIntegration: new MondayIntegrationApi(apiKey, baseUrl, customFetch),
8770
9265
  notificationRules: new NotificationRulesApi(apiKey, baseUrl, customFetch),
@@ -8797,7 +9292,7 @@ function createApiModules(apiKey, baseUrl, customFetch) {
8797
9292
 
8798
9293
  // src/client/workspace-client.ts
8799
9294
  var WORKSPACE_METHOD_NAMES = [
8800
- "activateWorkflowVersion",
9295
+ "activateWorkflowRevision",
8801
9296
  "addGroupMember",
8802
9297
  "advanceStep",
8803
9298
  "approveWorkspaceInvitation",
@@ -8860,6 +9355,7 @@ var WORKSPACE_METHOD_NAMES = [
8860
9355
  "createCustomTool",
8861
9356
  "createCustomToolkit",
8862
9357
  "createDataRecord",
9358
+ "createDataRecordFilter",
8863
9359
  "createDataType",
8864
9360
  "createDiscordBot",
8865
9361
  "createEventRule",
@@ -8867,7 +9363,6 @@ var WORKSPACE_METHOD_NAMES = [
8867
9363
  "createExperiment",
8868
9364
  "createExperimentAssignment",
8869
9365
  "createExperimentGroup",
8870
- "convertMemberFilterToQuery",
8871
9366
  "createFhirConnection",
8872
9367
  "createFile",
8873
9368
  "createFileLabel",
@@ -8907,7 +9402,6 @@ var WORKSPACE_METHOD_NAMES = [
8907
9402
  "createWorkflowOutboundVoiceChat",
8908
9403
  "createWorkspaceMember",
8909
9404
  "createWorkspaceSupportRequest",
8910
- "deactivateWorkflowVersion",
8911
9405
  "deleteAbility",
8912
9406
  "deleteAgent",
8913
9407
  "deleteAssignment",
@@ -8923,6 +9417,7 @@ var WORKSPACE_METHOD_NAMES = [
8923
9417
  "deleteCustomTool",
8924
9418
  "deleteCustomToolkit",
8925
9419
  "deleteDataRecord",
9420
+ "deleteDataRecordFilter",
8926
9421
  "deleteDataType",
8927
9422
  "deleteDiscordBot",
8928
9423
  "deleteEnrollment",
@@ -8965,6 +9460,7 @@ var WORKSPACE_METHOD_NAMES = [
8965
9460
  "deleteSupervisor",
8966
9461
  "deleteTask",
8967
9462
  "deleteTeamsApp",
9463
+ "deleteWidgetDomain",
8968
9464
  "deleteWorkflow",
8969
9465
  "deleteWorkflowContributor",
8970
9466
  "deleteWorkflowNote",
@@ -8972,7 +9468,7 @@ var WORKSPACE_METHOD_NAMES = [
8972
9468
  "deleteWorkspaceInvitationAdmin",
8973
9469
  "denyWorkspaceInvitation",
8974
9470
  "describeSalesforceObject",
8975
- "diffWorkflowVersions",
9471
+ "diffWorkflowRevisions",
8976
9472
  "disableConfluence",
8977
9473
  "disableCustomToolkit",
8978
9474
  "disableHubspot",
@@ -8988,6 +9484,7 @@ var WORKSPACE_METHOD_NAMES = [
8988
9484
  "dismissAllNotifications",
8989
9485
  "dismissNotification",
8990
9486
  "downloadEmailAttachment",
9487
+ "editWorkflowRevisionAsDraft",
8991
9488
  "enableConfluence",
8992
9489
  "enableCustomToolkit",
8993
9490
  "enableHubspot",
@@ -9066,6 +9563,7 @@ var WORKSPACE_METHOD_NAMES = [
9066
9563
  "getCalendarSchedules",
9067
9564
  "getCalendars",
9068
9565
  "getCelContext",
9566
+ "getCharlestonTestDeliveryRecipients",
9069
9567
  "getChat",
9070
9568
  "getChatAssignmentTasks",
9071
9569
  "getChatCallbacks",
@@ -9099,6 +9597,9 @@ var WORKSPACE_METHOD_NAMES = [
9099
9597
  "getCustomToolkits",
9100
9598
  "getDataRecord",
9101
9599
  "getDataRecordChanges",
9600
+ "getDataRecordFilter",
9601
+ "getDataRecordFilterCount",
9602
+ "getDataRecordFilters",
9102
9603
  "getDataRecords",
9103
9604
  "getDataType",
9104
9605
  "getDataTypeByUuid",
@@ -9122,16 +9623,20 @@ var WORKSPACE_METHOD_NAMES = [
9122
9623
  "getFhirConnections",
9123
9624
  "getFieldIndexStatus",
9124
9625
  "getFile",
9626
+ "resolveFilePath",
9125
9627
  "getFileLabel",
9126
9628
  "getFileLabelByUuid",
9127
9629
  "getFileLabels",
9128
9630
  "getFileSharing",
9631
+ "getFileVersionContentsUrl",
9632
+ "getFileVersionDiff",
9129
9633
  "getFiles",
9130
9634
  "getFirstRunState",
9131
9635
  "getFolder",
9132
9636
  "getFolderSharing",
9133
9637
  "getFolders",
9134
9638
  "getGoogleCalendarStatus",
9639
+ "getGranteeGrants",
9135
9640
  "getHealthieAvailableSlots",
9136
9641
  "getHealthieReconciliationMatches",
9137
9642
  "getHealthieStatus",
@@ -9177,6 +9682,7 @@ var WORKSPACE_METHOD_NAMES = [
9177
9682
  "getMemberLabelByUuid",
9178
9683
  "getMemberLabels",
9179
9684
  "getMemberMemories",
9685
+ "getMemberMemory",
9180
9686
  "getMemberRecordCounts",
9181
9687
  "getMemberRole",
9182
9688
  "getMemberRoleByUuid",
@@ -9225,6 +9731,7 @@ var WORKSPACE_METHOD_NAMES = [
9225
9731
  "getPublicProducts",
9226
9732
  "getQualification",
9227
9733
  "getQualifications",
9734
+ "getRecordingInfo",
9228
9735
  "getResellerWorkspaces",
9229
9736
  "getRoutine",
9230
9737
  "getRoutineRuns",
@@ -9279,17 +9786,17 @@ var WORKSPACE_METHOD_NAMES = [
9279
9786
  "getWorkflowAccessValidation",
9280
9787
  "getWorkflowActivity",
9281
9788
  "getWorkflowConfigValidation",
9789
+ "getWorkflowFeedback",
9282
9790
  "getWorkflowContributors",
9283
9791
  "getWorkflowDeletionPreview",
9284
9792
  "getWorkflowDiagram",
9285
9793
  "getWorkflowNotes",
9794
+ "getWorkflowRevision",
9795
+ "getWorkflowRevisions",
9286
9796
  "getWorkflowRouteDryRun",
9287
9797
  "getWorkflowTaskAssignmentStats",
9288
9798
  "getWorkflowTemplates",
9289
9799
  "getWorkflowThumbnailUrl",
9290
- "getWorkflowVersion",
9291
- "getWorkflowVersionActive",
9292
- "getWorkflowVersions",
9293
9800
  "getWorkflows",
9294
9801
  "getWorkflowsActivityBatch",
9295
9802
  "getWorkspace",
@@ -9303,6 +9810,7 @@ var WORKSPACE_METHOD_NAMES = [
9303
9810
  "getWorkspaceNotices",
9304
9811
  "getWorkspaceProduct",
9305
9812
  "getWorkspaceSiteDomains",
9813
+ "getWorkspaceWidgetDomains",
9306
9814
  "getWorkspaceSubscriptions",
9307
9815
  "getWorkspaceSupportRequest",
9308
9816
  "getWorkspaceThemes",
@@ -9314,6 +9822,9 @@ var WORKSPACE_METHOD_NAMES = [
9314
9822
  "initiateCall",
9315
9823
  "initiateOutboundCall",
9316
9824
  "inspectPrompt",
9825
+ "installHubspot",
9826
+ "installMondayConnection",
9827
+ "installSalesforce",
9317
9828
  "inviteMemberCredentialUpdate",
9318
9829
  "inviteToWorkspace",
9319
9830
  "leaveWorkspace",
@@ -9325,13 +9836,13 @@ var WORKSPACE_METHOD_NAMES = [
9325
9836
  "linkMemberToSalesforce",
9326
9837
  "linkPhoneNumber",
9327
9838
  "listAbilities",
9328
- "listAgentAbilities",
9329
9839
  "listAppConnections",
9330
9840
  "listAvailableAppConnections",
9331
9841
  "listConfluencePages",
9332
9842
  "listConfluenceSpaces",
9333
9843
  "listConnectionMemberFieldKeys",
9334
9844
  "setDefaultGooglePlatformAccount",
9845
+ "listFileVersions",
9335
9846
  "listGoogleCalendars",
9336
9847
  "listHealthieAppointmentTypes",
9337
9848
  "listHealthiePatients",
@@ -9341,6 +9852,7 @@ var WORKSPACE_METHOD_NAMES = [
9341
9852
  "listScenarios",
9342
9853
  "listSnippets",
9343
9854
  "listTestChatRuns",
9855
+ "listWidgetDomains",
9344
9856
  "listWorkspaceInvitationsAdmin",
9345
9857
  "listWorkspaceSupportRequests",
9346
9858
  "markEmailAsRead",
@@ -9348,14 +9860,16 @@ var WORKSPACE_METHOD_NAMES = [
9348
9860
  "markNotificationAsRead",
9349
9861
  "previewImportMembers",
9350
9862
  "previewImportWorkspace",
9863
+ "previewRoutineWorkflowAccess",
9351
9864
  "previewSchedule",
9352
9865
  "previewTTS",
9353
9866
  "previewTemplate",
9354
9867
  "previewThinkingSound",
9355
9868
  "previewWorkspaceImport",
9356
9869
  "provisionClientWorkspace",
9357
- "publishWorkflowVersion",
9870
+ "publishWorkflowRevision",
9358
9871
  "rateMessage",
9872
+ "getChatFeedback",
9359
9873
  "reenrollMember",
9360
9874
  "registerLinkedRolesMetadata",
9361
9875
  "registerPushSubscription",
@@ -9372,8 +9886,8 @@ var WORKSPACE_METHOD_NAMES = [
9372
9886
  "requestWorkspaceMembership",
9373
9887
  "resetRoutineRuns",
9374
9888
  "resolveAccessGrant",
9375
- "resolveAgentTools",
9376
9889
  "resolveAnonymousMember",
9890
+ "restoreFileVersion",
9377
9891
  "revokeAccessGrant",
9378
9892
  "revokeApiKey",
9379
9893
  "revokeICalToken",
@@ -9439,6 +9953,7 @@ var WORKSPACE_METHOD_NAMES = [
9439
9953
  "updateCustomTool",
9440
9954
  "updateCustomToolkit",
9441
9955
  "updateDataRecord",
9956
+ "updateDataRecordFilter",
9442
9957
  "updateDataType",
9443
9958
  "updateDiscordBot",
9444
9959
  "updateEventAttendee",
@@ -9491,12 +10006,13 @@ var WORKSPACE_METHOD_NAMES = [
9491
10006
  "updateWorkflow",
9492
10007
  "updateWorkflowContributor",
9493
10008
  "updateWorkflowNote",
9494
- "updateWorkflowVersion",
10009
+ "updateWorkflowRevisionMetadata",
9495
10010
  "updateWorkspace",
9496
10011
  "updateWorkspaceDefaults",
9497
10012
  "updateWorkspaceInvitationAdmin",
9498
10013
  "updateWorkspaceThemes",
9499
10014
  "upsertDataRecord",
10015
+ "upsertWidgetDomain",
9500
10016
  "validateDataTypeSlug",
9501
10017
  "validateWorkflowName"
9502
10018
  ];
@@ -9528,6 +10044,7 @@ function bindAccessGrantsMethods(target, accessGrants) {
9528
10044
  target.revokeAccessGrant = accessGrants.revokeAccessGrant.bind(accessGrants);
9529
10045
  target.getAccessGrants = accessGrants.getAccessGrants.bind(accessGrants);
9530
10046
  target.getMemberGrants = accessGrants.getMemberGrants.bind(accessGrants);
10047
+ target.getGranteeGrants = accessGrants.getGranteeGrants.bind(accessGrants);
9531
10048
  }
9532
10049
 
9533
10050
  // src/client/bindings/agent-tasks.ts
@@ -9547,8 +10064,6 @@ function bindAgentsMethods(target, agents) {
9547
10064
  target.deleteAgent = agents.deleteAgent.bind(agents);
9548
10065
  target.archiveAgent = agents.archiveAgent.bind(agents);
9549
10066
  target.unarchiveAgent = agents.unarchiveAgent.bind(agents);
9550
- target.resolveAgentTools = agents.resolveAgentTools.bind(agents);
9551
- target.listAgentAbilities = agents.listAgentAbilities.bind(agents);
9552
10067
  }
9553
10068
 
9554
10069
  // src/client/bindings/tasks.ts
@@ -9567,6 +10082,7 @@ function bindTasksMethods(target, tasks, abilities) {
9567
10082
  target.createAbility = abilities.createAbility.bind(abilities);
9568
10083
  target.updateAbility = abilities.updateAbility.bind(abilities);
9569
10084
  target.deleteAbility = abilities.deleteAbility.bind(abilities);
10085
+ target.getCharlestonTestDeliveryRecipients = abilities.getCharlestonTestDeliveryRecipients.bind(abilities);
9570
10086
  }
9571
10087
 
9572
10088
  // src/client/bindings/chats.ts
@@ -9587,6 +10103,8 @@ function bindChatsMethods(target, chats) {
9587
10103
  target.createWorkflowOutboundVoiceChat = chats.createWorkflowOutboundVoiceChat.bind(chats);
9588
10104
  target.deleteChat = chats.deleteChat.bind(chats);
9589
10105
  target.updateChat = chats.updateChat.bind(chats);
10106
+ target.getChatModelOverride = chats.getChatModelOverride.bind(chats);
10107
+ target.updateChatModelOverride = chats.updateChatModelOverride.bind(chats);
9590
10108
  target.updateChatMute = chats.updateChatMute.bind(chats);
9591
10109
  target.updateChatNeedsResponse = chats.updateChatNeedsResponse.bind(chats);
9592
10110
  target.summarizeChat = chats.summarizeChat.bind(chats);
@@ -9596,6 +10114,7 @@ function bindChatsMethods(target, chats) {
9596
10114
  target.initiateOutboundCall = chats.initiateOutboundCall.bind(chats);
9597
10115
  target.sendAssistantMessage = chats.sendAssistantMessage.bind(chats);
9598
10116
  target.rateMessage = chats.rateMessage.bind(chats);
10117
+ target.getChatFeedback = chats.getChatFeedback.bind(chats);
9599
10118
  target.getChatAssignmentTasks = chats.getChatAssignmentTasks.bind(chats);
9600
10119
  target.createChatCompletion = chats.createChatCompletion.bind(chats);
9601
10120
  target.exportChats = chats.exportChats.bind(chats);
@@ -9624,11 +10143,28 @@ function bindCallsMethods(target, calls, cel) {
9624
10143
  target.initiateCall = calls.initiateCall.bind(calls);
9625
10144
  target.getVoiceToken = calls.getVoiceToken.bind(calls);
9626
10145
  target.getMessageTiming = calls.getMessageTiming.bind(calls);
10146
+ target.getRecordingInfo = calls.getRecordingInfo.bind(calls);
9627
10147
  target.listChatRecordings = calls.listChatRecordings.bind(calls);
9628
10148
  target.getCallRecordingDownloadUrl = calls.getCallRecordingDownloadUrl.bind(calls);
9629
10149
  target.getCelContext = cel.getCelContext.bind(cel);
9630
10150
  }
9631
10151
 
10152
+ // src/client/bindings/dashboards.ts
10153
+ function bindDashboardsMethods(target, dashboards) {
10154
+ target.getDashboards = dashboards.getDashboards.bind(dashboards);
10155
+ target.getDashboard = dashboards.getDashboard.bind(dashboards);
10156
+ target.createDashboard = dashboards.createDashboard.bind(dashboards);
10157
+ target.updateDashboard = dashboards.updateDashboard.bind(dashboards);
10158
+ target.deleteDashboard = dashboards.deleteDashboard.bind(dashboards);
10159
+ target.getDashboardChannelStats = dashboards.getDashboardChannelStats.bind(dashboards);
10160
+ target.getDashboardWorkflowAssignmentStats = dashboards.getDashboardWorkflowAssignmentStats.bind(dashboards);
10161
+ }
10162
+
10163
+ // src/client/bindings/motd.ts
10164
+ function bindMotdMethods(target, motd) {
10165
+ target.getMotd = motd.getMotd.bind(motd);
10166
+ }
10167
+
9632
10168
  // src/client/bindings/data-types.ts
9633
10169
  function bindDataTypesMethods(target, dataTypes) {
9634
10170
  target.getDataTypes = dataTypes.getDataTypes.bind(dataTypes);
@@ -9652,6 +10188,12 @@ function bindDataTypesMethods(target, dataTypes) {
9652
10188
  target.getFieldIndexStatus = dataTypes.getFieldIndexStatus.bind(dataTypes);
9653
10189
  target.validateDataTypeSlug = dataTypes.validateDataTypeSlug.bind(dataTypes);
9654
10190
  target.getMemberRecordCounts = dataTypes.getMemberRecordCounts.bind(dataTypes);
10191
+ target.getDataRecordFilters = dataTypes.getDataRecordFilters.bind(dataTypes);
10192
+ target.getDataRecordFilter = dataTypes.getDataRecordFilter.bind(dataTypes);
10193
+ target.createDataRecordFilter = dataTypes.createDataRecordFilter.bind(dataTypes);
10194
+ target.updateDataRecordFilter = dataTypes.updateDataRecordFilter.bind(dataTypes);
10195
+ target.deleteDataRecordFilter = dataTypes.deleteDataRecordFilter.bind(dataTypes);
10196
+ target.getDataRecordFilterCount = dataTypes.getDataRecordFilterCount.bind(dataTypes);
9655
10197
  }
9656
10198
 
9657
10199
  // src/client/bindings/members.ts
@@ -9678,7 +10220,6 @@ function bindMembersMethods(target, members) {
9678
10220
  target.getMemberFilter = members.getMemberFilter.bind(members);
9679
10221
  target.createMemberFilter = members.createMemberFilter.bind(members);
9680
10222
  target.updateMemberFilter = members.updateMemberFilter.bind(members);
9681
- target.convertMemberFilterToQuery = members.convertMemberFilterToQuery.bind(members);
9682
10223
  target.deleteMemberFilter = members.deleteMemberFilter.bind(members);
9683
10224
  target.getMemberFilterCount = members.getMemberFilterCount.bind(members);
9684
10225
  target.getMemberLabels = members.getMemberLabels.bind(members);
@@ -9706,6 +10247,7 @@ function bindMembersMethods(target, members) {
9706
10247
  target.resolveAnonymousMember = members.resolveAnonymousMember.bind(members);
9707
10248
  target.expireAnonymousMember = members.expireAnonymousMember.bind(members);
9708
10249
  target.getMemberMemories = members.getMemberMemories.bind(members);
10250
+ target.getMemberMemory = members.getMemberMemory.bind(members);
9709
10251
  target.createMemberMemory = members.createMemberMemory.bind(members);
9710
10252
  target.deleteMemberMemory = members.deleteMemberMemory.bind(members);
9711
10253
  target.getMemberSyncLinks = members.getMemberSyncLinks.bind(members);
@@ -9763,6 +10305,10 @@ function bindWorkspacesMethods(target, workspaces, signupRequests) {
9763
10305
  target.listPushSubscriptions = workspaces.listPushSubscriptions.bind(workspaces);
9764
10306
  target.getWorkspaceEmailDomains = workspaces.getWorkspaceEmailDomains.bind(workspaces);
9765
10307
  target.getWorkspaceSiteDomains = workspaces.getWorkspaceSiteDomains.bind(workspaces);
10308
+ target.getWorkspaceWidgetDomains = workspaces.getWorkspaceWidgetDomains.bind(workspaces);
10309
+ target.listWidgetDomains = workspaces.listWidgetDomains.bind(workspaces);
10310
+ target.upsertWidgetDomain = workspaces.upsertWidgetDomain.bind(workspaces);
10311
+ target.deleteWidgetDomain = workspaces.deleteWidgetDomain.bind(workspaces);
9766
10312
  target.listWorkspaceInvitations = signupRequests.listWorkspaceInvitations.bind(signupRequests);
9767
10313
  target.listWorkspaceInvitationsAdmin = signupRequests.listWorkspaceInvitationsAdmin.bind(signupRequests);
9768
10314
  target.getWorkspaceInvitation = signupRequests.getWorkspaceInvitation.bind(signupRequests);
@@ -9782,6 +10328,7 @@ function bindWorkspacesMethods(target, workspaces, signupRequests) {
9782
10328
  function bindAuthMethods(target, auth, assignments) {
9783
10329
  target.getUserAccount = auth.getUserAccount.bind(auth);
9784
10330
  target.updateUserAccount = auth.updateUserAccount.bind(auth);
10331
+ target.recordAcquisition = auth.recordAcquisition.bind(auth);
9785
10332
  target.login = auth.login.bind(auth);
9786
10333
  target.resendCode = auth.resendCode.bind(auth);
9787
10334
  target.verifyCodeWith2FA = auth.verifyCodeWith2FA.bind(auth);
@@ -9892,6 +10439,11 @@ function bindFilesMethods(target, files) {
9892
10439
  target.uploadFile = files.uploadFile.bind(files);
9893
10440
  target.updateFile = files.updateFile.bind(files);
9894
10441
  target.deleteFile = files.deleteFile.bind(files);
10442
+ target.resolveFilePath = files.resolveFilePath.bind(files);
10443
+ target.listFileVersions = files.listFileVersions.bind(files);
10444
+ target.getFileVersionDiff = files.getFileVersionDiff.bind(files);
10445
+ target.restoreFileVersion = files.restoreFileVersion.bind(files);
10446
+ target.getFileVersionContentsUrl = files.getFileVersionContentsUrl.bind(files);
9895
10447
  target.convertFile = files.convertFile.bind(files);
9896
10448
  target.generateFileUploadUrl = files.generateFileUploadUrl.bind(files);
9897
10449
  target.getFolders = files.getFolders.bind(files);
@@ -9942,6 +10494,7 @@ function bindEventsMethods(target, events) {
9942
10494
  target.getRoutineRuns = events.getRoutineRuns.bind(events);
9943
10495
  target.resetRoutineRuns = events.resetRoutineRuns.bind(events);
9944
10496
  target.previewSchedule = events.previewSchedule.bind(events);
10497
+ target.previewRoutineWorkflowAccess = events.previewRoutineWorkflowAccess.bind(events);
9945
10498
  }
9946
10499
 
9947
10500
  // src/client/bindings/experiments.ts
@@ -9986,18 +10539,18 @@ function bindWorkflowsMethods(target, workflows, workflowNotes, voice, superviso
9986
10539
  target.createWorkflowNote = workflowNotes.createWorkflowNote.bind(workflowNotes);
9987
10540
  target.updateWorkflowNote = workflowNotes.updateWorkflowNote.bind(workflowNotes);
9988
10541
  target.deleteWorkflowNote = workflowNotes.deleteWorkflowNote.bind(workflowNotes);
10542
+ target.getWorkflowFeedback = workflows.getWorkflowFeedback.bind(workflows);
9989
10543
  target.getWorkflowContributors = workflows.getWorkflowContributors.bind(workflows);
9990
10544
  target.createWorkflowContributor = workflows.createWorkflowContributor.bind(workflows);
9991
10545
  target.updateWorkflowContributor = workflows.updateWorkflowContributor.bind(workflows);
9992
10546
  target.deleteWorkflowContributor = workflows.deleteWorkflowContributor.bind(workflows);
9993
- target.getWorkflowVersions = workflows.getWorkflowVersions.bind(workflows);
9994
- target.getWorkflowVersionActive = workflows.getWorkflowVersionActive.bind(workflows);
9995
- target.getWorkflowVersion = workflows.getWorkflowVersion.bind(workflows);
9996
- target.publishWorkflowVersion = workflows.publishWorkflowVersion.bind(workflows);
9997
- target.updateWorkflowVersion = workflows.updateWorkflowVersion.bind(workflows);
9998
- target.activateWorkflowVersion = workflows.activateWorkflowVersion.bind(workflows);
9999
- target.deactivateWorkflowVersion = workflows.deactivateWorkflowVersion.bind(workflows);
10000
- target.diffWorkflowVersions = workflows.diffWorkflowVersions.bind(workflows);
10547
+ target.getWorkflowRevisions = workflows.getWorkflowRevisions.bind(workflows);
10548
+ target.getWorkflowRevision = workflows.getWorkflowRevision.bind(workflows);
10549
+ target.publishWorkflowRevision = workflows.publishWorkflowRevision.bind(workflows);
10550
+ target.activateWorkflowRevision = workflows.activateWorkflowRevision.bind(workflows);
10551
+ target.updateWorkflowRevisionMetadata = workflows.updateWorkflowRevisionMetadata.bind(workflows);
10552
+ target.diffWorkflowRevisions = workflows.diffWorkflowRevisions.bind(workflows);
10553
+ target.editWorkflowRevisionAsDraft = workflows.editWorkflowRevisionAsDraft.bind(workflows);
10001
10554
  target.getWorkspaceBuilders = workflows.getWorkspaceBuilders.bind(workflows);
10002
10555
  target.getWorkspaceBuilder = workflows.getWorkspaceBuilder.bind(workflows);
10003
10556
  target.buildWorkspace = workflows.buildWorkspace.bind(workflows);
@@ -10062,6 +10615,9 @@ function bindCommunicationsMethods(target, phoneNumbers, inboxes, notificationRu
10062
10615
  target.getArchiveBlockers = phoneNumbers.getArchiveBlockers.bind(phoneNumbers);
10063
10616
  target.archivePhoneNumber = phoneNumbers.archivePhoneNumber.bind(phoneNumbers);
10064
10617
  target.getPhoneNumberCalls = phoneNumbers.getPhoneNumberCalls.bind(phoneNumbers);
10618
+ target.getPhoneNumberOutboundAnalyticsSummary = phoneNumbers.getPhoneNumberOutboundAnalyticsSummary.bind(phoneNumbers);
10619
+ target.getPhoneNumberOutboundAnalyticsCalls = phoneNumbers.getPhoneNumberOutboundAnalyticsCalls.bind(phoneNumbers);
10620
+ target.exportPhoneNumberOutboundAnalyticsCsv = phoneNumbers.exportPhoneNumberOutboundAnalyticsCsv.bind(phoneNumbers);
10065
10621
  target.getPhoneNumberMessages = phoneNumbers.getPhoneNumberMessages.bind(phoneNumbers);
10066
10622
  target.getPhoneNumberVoicemails = phoneNumbers.getPhoneNumberVoicemails.bind(phoneNumbers);
10067
10623
  target.fetchVoicemailAudio = phoneNumbers.fetchVoicemailAudio.bind(phoneNumbers);
@@ -10191,6 +10747,7 @@ function bindIntegrationsMethods(target, mondayIntegration, discordBots, slackAp
10191
10747
  target.getMondayBoardColumns = mondayIntegration.getBoardColumns.bind(mondayIntegration);
10192
10748
  target.getMondayBoardGroups = mondayIntegration.getBoardGroups.bind(mondayIntegration);
10193
10749
  target.getMondayCurrentUserInfo = mondayIntegration.getCurrentUserInfo.bind(mondayIntegration);
10750
+ target.installMondayConnection = mondayIntegration.installMondayConnection.bind(mondayIntegration);
10194
10751
  target.configureMondayConnection = mondayIntegration.configureMondayConnection.bind(mondayIntegration);
10195
10752
  target.getMondayConnectionStatus = mondayIntegration.getMondayConnectionStatus.bind(mondayIntegration);
10196
10753
  target.authorizeMondayConnection = mondayIntegration.authorizeMondayConnection.bind(mondayIntegration);
@@ -10225,6 +10782,8 @@ function bindIntegrationsMethods(target, mondayIntegration, discordBots, slackAp
10225
10782
  target.getDiscordBotAccounts = discordBots.getDiscordBotAccounts.bind(discordBots);
10226
10783
  target.getMyCredentials = discordBots.getMyCredentials.bind(discordBots);
10227
10784
  target.unlinkCredential = discordBots.unlinkCredential.bind(discordBots);
10785
+ target.completeDiscordLink = discordBots.completeDiscordLink.bind(discordBots);
10786
+ target.discordLinkPreflight = discordBots.discordLinkPreflight.bind(discordBots);
10228
10787
  target.getSlackApps = slackApps.getSlackApps.bind(slackApps);
10229
10788
  target.getSlackApp = slackApps.getSlackApp.bind(slackApps);
10230
10789
  target.createSlackApp = slackApps.createSlackApp.bind(slackApps);
@@ -10297,6 +10856,7 @@ function bindIntegrationsMethods(target, mondayIntegration, discordBots, slackAp
10297
10856
  target.deleteConfluence = confluence.deleteConfluence.bind(confluence);
10298
10857
  target.listConfluenceSpaces = confluence.listConfluenceSpaces.bind(confluence);
10299
10858
  target.listConfluencePages = confluence.listConfluencePages.bind(confluence);
10859
+ target.installSalesforce = salesforce.installSalesforce.bind(salesforce);
10300
10860
  target.configureSalesforce = salesforce.configureSalesforce.bind(salesforce);
10301
10861
  target.startSalesforceOAuth = salesforce.startSalesforceOAuth.bind(salesforce);
10302
10862
  target.getSalesforceStatus = salesforce.getSalesforceStatus.bind(salesforce);
@@ -10314,6 +10874,7 @@ function bindIntegrationsMethods(target, mondayIntegration, discordBots, slackAp
10314
10874
  target.describeSalesforceObject = salesforce.describeSalesforceObject.bind(salesforce);
10315
10875
  target.searchSalesforceRecords = salesforce.searchSalesforceRecords.bind(salesforce);
10316
10876
  target.importSalesforceMembers = salesforce.importSalesforceMembers.bind(salesforce);
10877
+ target.installHubspot = hubspot.installHubspot.bind(hubspot);
10317
10878
  target.configureHubspot = hubspot.configureHubspot.bind(hubspot);
10318
10879
  target.startHubspotOAuth = hubspot.startHubspotOAuth.bind(hubspot);
10319
10880
  target.getHubspotStatus = hubspot.getHubspotStatus.bind(hubspot);
@@ -10546,6 +11107,7 @@ var GravityRailClient = class {
10546
11107
  createAbility;
10547
11108
  updateAbility;
10548
11109
  deleteAbility;
11110
+ getCharlestonTestDeliveryRecipients;
10549
11111
  // Chats API
10550
11112
  getChats;
10551
11113
  getChat;
@@ -10563,6 +11125,8 @@ var GravityRailClient = class {
10563
11125
  createWorkflowOutboundVoiceChat;
10564
11126
  deleteChat;
10565
11127
  updateChat;
11128
+ getChatModelOverride;
11129
+ updateChatModelOverride;
10566
11130
  updateChatMute;
10567
11131
  updateChatNeedsResponse;
10568
11132
  summarizeChat;
@@ -10572,6 +11136,7 @@ var GravityRailClient = class {
10572
11136
  initiateOutboundCall;
10573
11137
  sendAssistantMessage;
10574
11138
  rateMessage;
11139
+ getChatFeedback;
10575
11140
  getChatAssignmentTasks;
10576
11141
  createChatCompletion;
10577
11142
  exportChats;
@@ -10597,6 +11162,7 @@ var GravityRailClient = class {
10597
11162
  initiateCall;
10598
11163
  getVoiceToken;
10599
11164
  getMessageTiming;
11165
+ getRecordingInfo;
10600
11166
  listChatRecordings;
10601
11167
  getCallRecordingDownloadUrl;
10602
11168
  getCelContext;
@@ -10622,6 +11188,12 @@ var GravityRailClient = class {
10622
11188
  getFieldIndexStatus;
10623
11189
  validateDataTypeSlug;
10624
11190
  getMemberRecordCounts;
11191
+ getDataRecordFilters;
11192
+ getDataRecordFilter;
11193
+ createDataRecordFilter;
11194
+ updateDataRecordFilter;
11195
+ deleteDataRecordFilter;
11196
+ getDataRecordFilterCount;
10625
11197
  // Members API
10626
11198
  getCurrentMember;
10627
11199
  getOwnedMembers;
@@ -10645,7 +11217,6 @@ var GravityRailClient = class {
10645
11217
  getMemberFilter;
10646
11218
  createMemberFilter;
10647
11219
  updateMemberFilter;
10648
- convertMemberFilterToQuery;
10649
11220
  deleteMemberFilter;
10650
11221
  getMemberFilterCount;
10651
11222
  getMemberLabels;
@@ -10677,6 +11248,7 @@ var GravityRailClient = class {
10677
11248
  expireAnonymousMember;
10678
11249
  // Member Memories
10679
11250
  getMemberMemories;
11251
+ getMemberMemory;
10680
11252
  createMemberMemory;
10681
11253
  deleteMemberMemory;
10682
11254
  // Member Sync Links
@@ -10694,8 +11266,6 @@ var GravityRailClient = class {
10694
11266
  deleteAgent;
10695
11267
  archiveAgent;
10696
11268
  unarchiveAgent;
10697
- resolveAgentTools;
10698
- listAgentAbilities;
10699
11269
  // Qualifications API
10700
11270
  getQualifications;
10701
11271
  getQualification;
@@ -10721,6 +11291,16 @@ var GravityRailClient = class {
10721
11291
  createPersona;
10722
11292
  updatePersona;
10723
11293
  deletePersona;
11294
+ // Dashboards API
11295
+ getDashboards;
11296
+ getDashboard;
11297
+ createDashboard;
11298
+ updateDashboard;
11299
+ deleteDashboard;
11300
+ getDashboardChannelStats;
11301
+ getDashboardWorkflowAssignmentStats;
11302
+ // MOTD API
11303
+ getMotd;
10724
11304
  // Journeys API
10725
11305
  getJourneys;
10726
11306
  getJourney;
@@ -10788,6 +11368,7 @@ var GravityRailClient = class {
10788
11368
  revokeAccessGrant;
10789
11369
  getAccessGrants;
10790
11370
  getMemberGrants;
11371
+ getGranteeGrants;
10791
11372
  // Prompts API
10792
11373
  inspectPrompt;
10793
11374
  // Workspaces API
@@ -10837,6 +11418,10 @@ var GravityRailClient = class {
10837
11418
  getUsageDashboard;
10838
11419
  getWorkspaceEmailDomains;
10839
11420
  getWorkspaceSiteDomains;
11421
+ getWorkspaceWidgetDomains;
11422
+ listWidgetDomains;
11423
+ upsertWidgetDomain;
11424
+ deleteWidgetDomain;
10840
11425
  // Org API
10841
11426
  listOrgDomains;
10842
11427
  registerOrgDomain;
@@ -10877,6 +11462,7 @@ var GravityRailClient = class {
10877
11462
  // Auth API
10878
11463
  getUserAccount;
10879
11464
  updateUserAccount;
11465
+ recordAcquisition;
10880
11466
  login;
10881
11467
  resendCode;
10882
11468
  verifyCodeWith2FA;
@@ -10976,11 +11562,16 @@ var GravityRailClient = class {
10976
11562
  // Files API
10977
11563
  getFiles;
10978
11564
  getFile;
11565
+ resolveFilePath;
10979
11566
  downloadFilesZip;
10980
11567
  createFile;
10981
11568
  uploadFile;
10982
11569
  updateFile;
10983
11570
  deleteFile;
11571
+ listFileVersions;
11572
+ getFileVersionDiff;
11573
+ restoreFileVersion;
11574
+ getFileVersionContentsUrl;
10984
11575
  convertFile;
10985
11576
  generateFileUploadUrl;
10986
11577
  getFolders;
@@ -11029,6 +11620,7 @@ var GravityRailClient = class {
11029
11620
  getRoutineRuns;
11030
11621
  resetRoutineRuns;
11031
11622
  previewSchedule;
11623
+ previewRoutineWorkflowAccess;
11032
11624
  // Workflows API
11033
11625
  getWorkflows;
11034
11626
  getWorkflow;
@@ -11053,18 +11645,18 @@ var GravityRailClient = class {
11053
11645
  createWorkflowNote;
11054
11646
  updateWorkflowNote;
11055
11647
  deleteWorkflowNote;
11648
+ getWorkflowFeedback;
11056
11649
  getWorkflowContributors;
11057
11650
  createWorkflowContributor;
11058
11651
  updateWorkflowContributor;
11059
11652
  deleteWorkflowContributor;
11060
- getWorkflowVersions;
11061
- getWorkflowVersionActive;
11062
- getWorkflowVersion;
11063
- publishWorkflowVersion;
11064
- updateWorkflowVersion;
11065
- activateWorkflowVersion;
11066
- deactivateWorkflowVersion;
11067
- diffWorkflowVersions;
11653
+ getWorkflowRevisions;
11654
+ getWorkflowRevision;
11655
+ publishWorkflowRevision;
11656
+ activateWorkflowRevision;
11657
+ updateWorkflowRevisionMetadata;
11658
+ diffWorkflowRevisions;
11659
+ editWorkflowRevisionAsDraft;
11068
11660
  getWorkspaceBuilders;
11069
11661
  getWorkspaceBuilder;
11070
11662
  buildWorkspace;
@@ -11123,6 +11715,9 @@ var GravityRailClient = class {
11123
11715
  getArchiveBlockers;
11124
11716
  archivePhoneNumber;
11125
11717
  getPhoneNumberCalls;
11718
+ getPhoneNumberOutboundAnalyticsSummary;
11719
+ getPhoneNumberOutboundAnalyticsCalls;
11720
+ exportPhoneNumberOutboundAnalyticsCsv;
11126
11721
  getPhoneNumberMessages;
11127
11722
  getPhoneNumberVoicemails;
11128
11723
  fetchVoicemailAudio;
@@ -11241,6 +11836,7 @@ var GravityRailClient = class {
11241
11836
  getMondayBoardGroups;
11242
11837
  getMondayCurrentUserInfo;
11243
11838
  // Monday.com Connection API
11839
+ installMondayConnection;
11244
11840
  configureMondayConnection;
11245
11841
  getMondayConnectionStatus;
11246
11842
  authorizeMondayConnection;
@@ -11276,6 +11872,8 @@ var GravityRailClient = class {
11276
11872
  getDiscordBotAccounts;
11277
11873
  getMyCredentials;
11278
11874
  unlinkCredential;
11875
+ completeDiscordLink;
11876
+ discordLinkPreflight;
11279
11877
  // Slack Apps API
11280
11878
  getSlackApps;
11281
11879
  getSlackApp;
@@ -11354,6 +11952,7 @@ var GravityRailClient = class {
11354
11952
  listConfluenceSpaces;
11355
11953
  listConfluencePages;
11356
11954
  // Salesforce API
11955
+ installSalesforce;
11357
11956
  configureSalesforce;
11358
11957
  startSalesforceOAuth;
11359
11958
  getSalesforceStatus;
@@ -11372,6 +11971,7 @@ var GravityRailClient = class {
11372
11971
  searchSalesforceRecords;
11373
11972
  importSalesforceMembers;
11374
11973
  // HubSpot API
11974
+ installHubspot;
11375
11975
  configureHubspot;
11376
11976
  startHubspotOAuth;
11377
11977
  getHubspotStatus;
@@ -11473,6 +12073,8 @@ var GravityRailClient = class {
11473
12073
  bindQualificationsMethods(this, apis.qualifications);
11474
12074
  bindPersonasMethods(this, apis.personas);
11475
12075
  bindQueriesMethods(this, apis.queries);
12076
+ bindDashboardsMethods(this, apis.dashboards);
12077
+ bindMotdMethods(this, apis.motd);
11476
12078
  bindJourneysMethods(this, apis.journeys);
11477
12079
  bindExperimentsMethods(this, apis.experiments);
11478
12080
  bindOperatorMethods(this, apis.operatorGroups);
@@ -11693,27 +12295,25 @@ var MemberFilterBuilder = class extends WorkspaceBuilderResource {
11693
12295
  super();
11694
12296
  this.name = name;
11695
12297
  this.description = options.description ?? "";
12298
+ this.query = options.query ?? null;
11696
12299
  }
11697
12300
  name;
11698
12301
  description;
11699
- rules = [];
11700
- addRule(objectType, filterType, options = {}) {
11701
- this.rules.push({
11702
- objectType,
11703
- filterType,
11704
- ...options.objectIds ? { objectIds: options.objectIds } : {},
11705
- ...options.query ? { query: options.query } : {}
11706
- });
12302
+ /** Query-engine predicate (JSON IR) authored on MemberFilter.query. */
12303
+ query = null;
12304
+ /** Set the filter's query-engine predicate (JSON IR). */
12305
+ setQuery(query) {
12306
+ this.query = query;
11707
12307
  return this;
11708
12308
  }
11709
12309
  planLine() {
11710
- return `MemberFilter: ${this.name}${this.rules.length ? ` (${this.rules.length} rules)` : ""}`;
12310
+ return `MemberFilter: ${this.name}${this.query ? " (query)" : ""}`;
11711
12311
  }
11712
12312
  async apply(client) {
11713
12313
  const payload = {
11714
12314
  name: this.name,
11715
12315
  description: this.description,
11716
- rules: this.rules
12316
+ query: this.query
11717
12317
  };
11718
12318
  const result = await client.createMemberFilter(payload);
11719
12319
  this._id = result.id;
@@ -12140,11 +12740,6 @@ var RoleUpdate = class extends WorkspaceBuilderResource {
12140
12740
  }
12141
12741
  };
12142
12742
 
12143
- // src/constants/models.ts
12144
- var DEFAULT_CHAT_MODEL = "aws:bedrock:claude-4-5-haiku";
12145
- var DEFAULT_VOICE_INFERENCE_MODEL = "google:vertex:gemini-3-flash";
12146
- var DEFAULT_CUSTOM_VOICE_MODEL = "elevenlabs:voice:river";
12147
-
12148
12743
  // src/workspace-builder/workflows.ts
12149
12744
  var PERM_KEYS = {
12150
12745
  canRead: "canRead",
@@ -12242,8 +12837,13 @@ var TaskBuilder = class extends WorkspaceBuilderResource {
12242
12837
  }
12243
12838
  async apply(client) {
12244
12839
  if (this._existed || this.workflow._id === void 0) return;
12840
+ if (this.workflow._draftRevisionId === void 0) {
12841
+ throw new Error(
12842
+ `Workflow '${this.workflow.name}' has no draft revision id; cannot create tasks. Tasks attach to a WorkflowRevision, not the stable workflow root.`
12843
+ );
12844
+ }
12245
12845
  const result = await client.createTask({
12246
- workflowId: this.workflow._id,
12846
+ workflowRevisionId: this.workflow._draftRevisionId,
12247
12847
  name: this.name,
12248
12848
  prompt: this.prompt,
12249
12849
  description: this.description
@@ -12259,14 +12859,18 @@ var WorkflowBuilder = class extends WorkspaceBuilderResource {
12259
12859
  this.name = name;
12260
12860
  this.description = options.description ?? "";
12261
12861
  this.prompt = options.prompt;
12262
- this.agentId = options.agentId ?? options.agent_id;
12862
+ this.copyFromAgentId = options.copyFromAgentId;
12263
12863
  }
12264
12864
  name;
12265
12865
  description;
12266
12866
  prompt;
12267
- agentId;
12867
+ copyFromAgentId;
12268
12868
  tasks = [];
12269
12869
  abilities = [];
12870
+ /** The DRAFT revision's id — where tasks and graph edits attach.
12871
+ * `_id` is the STABLE workflow root id; the two are different entities
12872
+ * and (after any publish) different numbers. */
12873
+ _draftRevisionId;
12270
12874
  task(name, options = {}) {
12271
12875
  const task = new TaskBuilder(
12272
12876
  name,
@@ -12289,10 +12893,14 @@ var WorkflowBuilder = class extends WorkspaceBuilderResource {
12289
12893
  return this.name;
12290
12894
  }
12291
12895
  adopt(existing) {
12292
- super.adopt(existing);
12896
+ const root = existing.workflow ?? existing;
12897
+ super.adopt(root);
12898
+ const draft = existing.draftRevision;
12899
+ this._draftRevisionId = draft?.id ?? root.draftRevisionId;
12293
12900
  const start = this.startTask;
12294
- if (start && existing.startTaskId) {
12295
- start._id = existing.startTaskId;
12901
+ const startTaskId = draft?.startTaskId;
12902
+ if (start && startTaskId) {
12903
+ start._id = startTaskId;
12296
12904
  start._existed = true;
12297
12905
  }
12298
12906
  }
@@ -12302,12 +12910,6 @@ var WorkflowBuilder = class extends WorkspaceBuilderResource {
12302
12910
  if (this.abilities.length) details.push(`${this.abilities.length} abilities`);
12303
12911
  return `Workflow: ${this.name}${details.length ? ` (${details.join(", ")})` : ""}`;
12304
12912
  }
12305
- needsDefaultAgent() {
12306
- return !this._existed && this.agentId === void 0;
12307
- }
12308
- setAgentId(agentId) {
12309
- this.agentId = agentId;
12310
- }
12311
12913
  async apply(client) {
12312
12914
  if (this._existed) return;
12313
12915
  const payload = {
@@ -12315,63 +12917,16 @@ var WorkflowBuilder = class extends WorkspaceBuilderResource {
12315
12917
  description: this.description,
12316
12918
  createMode: "taskless",
12317
12919
  ...this.prompt ? { prompt: this.prompt } : {},
12318
- ...this.agentId ? { agentId: this.agentId } : {},
12920
+ ...this.copyFromAgentId ? { copyFromAgentId: this.copyFromAgentId } : {},
12319
12921
  ...this.abilities.length ? { abilities: this.abilities.map((ability) => ability.toAbility()) } : {}
12320
12922
  };
12321
12923
  const result = await client.createWorkflow(payload);
12322
- this._id = result.id;
12323
- this._uuid = result.uuid;
12924
+ this._id = result.workflow.id;
12925
+ this._uuid = result.workflow.uuid;
12926
+ this._draftRevisionId = result.draftRevision.id;
12324
12927
  this._created = true;
12325
12928
  }
12326
12929
  };
12327
- var WORKSPACE_BUILDER_DEFAULT_AGENT_NAME = "Workspace Setup Agent";
12328
- var WORKSPACE_BUILDER_DEFAULT_AGENT_PROMPT = "You help workspace members complete the workflow you are assigned to. Follow the task prompts, collect requested information accurately, and escalate when the workflow asks you to.";
12329
- async function getOrCreateDefaultWorkflowAgent(client) {
12330
- const existingAgents = recordsFromResponse(
12331
- await client.getAgents({ pageSize: 100, includeArchived: false })
12332
- );
12333
- const existing = existingAgents.find((agent) => !agent.isArchived) ?? existingAgents[0];
12334
- if (existing) {
12335
- return {
12336
- id: numberField(existing, "id"),
12337
- name: stringField(existing, "name"),
12338
- created: false
12339
- };
12340
- }
12341
- const roles = recordsFromResponse(await client.getMemberRoles());
12342
- const role = roles.find((candidate) => stringField(candidate, "name").toLowerCase() === "agent") ?? roles[0];
12343
- if (!role) {
12344
- throw new Error("Cannot create default workflow agent: workspace has no member roles");
12345
- }
12346
- const payload = {
12347
- name: WORKSPACE_BUILDER_DEFAULT_AGENT_NAME,
12348
- memberRoleId: numberField(role, "id"),
12349
- chatModelId: DEFAULT_CHAT_MODEL,
12350
- systemPrompt: WORKSPACE_BUILDER_DEFAULT_AGENT_PROMPT
12351
- };
12352
- const created = await client.createAgent(payload);
12353
- return {
12354
- id: created.id,
12355
- name: created.name ?? WORKSPACE_BUILDER_DEFAULT_AGENT_NAME,
12356
- created: true
12357
- };
12358
- }
12359
- function recordsFromResponse(value) {
12360
- if (Array.isArray(value)) return value;
12361
- if (value && typeof value === "object" && Array.isArray(value.items)) {
12362
- return value.items;
12363
- }
12364
- return [];
12365
- }
12366
- function numberField(record, key) {
12367
- const value = record[key];
12368
- if (typeof value !== "number") throw new Error(`Expected numeric ${key}`);
12369
- return value;
12370
- }
12371
- function stringField(record, key) {
12372
- const value = record[key];
12373
- return typeof value === "string" ? value : "";
12374
- }
12375
12930
  var AgentBuilder = class extends WorkspaceBuilderResource {
12376
12931
  constructor(name, options = {}) {
12377
12932
  super();
@@ -12538,7 +13093,6 @@ ${"=".repeat(50)}`);
12538
13093
  await this.resolveExisting(resources);
12539
13094
  const summary = {};
12540
13095
  writeLine("Applying...");
12541
- await this.ensureWorkflowAgents(resources, summary);
12542
13096
  for (const resource of resources) {
12543
13097
  try {
12544
13098
  if (resource._existed) {
@@ -12599,9 +13153,11 @@ Done! Created ${count} resources.`);
12599
13153
  }
12600
13154
  }
12601
13155
  if (!workflowNames.size) return;
12602
- for (const existing of await this.client.getWorkflows()) {
13156
+ const existingWorkflows = await this.client.getWorkflows();
13157
+ for (const { workflow: existing } of existingWorkflows.items) {
12603
13158
  if (existing.name && workflowNames.has(existing.name)) {
12604
- workflowNames.get(existing.name).adopt(existing);
13159
+ const detail = await this.client.getWorkflow(existing.id);
13160
+ workflowNames.get(existing.name).adopt(detail);
12605
13161
  }
12606
13162
  }
12607
13163
  const adoptedWorkflows = resources.filter(
@@ -12610,7 +13166,9 @@ Done! Created ${count} resources.`);
12610
13166
  if (!adoptedWorkflows.length) return;
12611
13167
  const existingTasks = await this.client.getTasks();
12612
13168
  for (const workflow of adoptedWorkflows) {
12613
- const workflowTasks = existingTasks.filter((task) => task.workflowId === workflow._id);
13169
+ const workflowTasks = existingTasks.filter(
13170
+ (task) => (task.workflowRevisionId ?? task.workflowId) === workflow._draftRevisionId
13171
+ );
12614
13172
  const taskByName = new Map(workflowTasks.map((task) => [task.name, task]));
12615
13173
  for (const taskBuilder of workflow.tasks) {
12616
13174
  const match = taskByName.get(taskBuilder.name);
@@ -12632,21 +13190,6 @@ Done! Created ${count} resources.`);
12632
13190
  }
12633
13191
  }
12634
13192
  }
12635
- async ensureWorkflowAgents(resources, summary) {
12636
- const workflows = resources.filter(
12637
- (resource) => resource instanceof WorkflowBuilder && resource.needsDefaultAgent()
12638
- );
12639
- if (!workflows.length) return;
12640
- const agent = await getOrCreateDefaultWorkflowAgent(this.client);
12641
- for (const workflow of workflows) workflow.setAgentId(agent.id);
12642
- if (agent.created) {
12643
- summary.agents ??= [];
12644
- summary.agents.push(agent.id);
12645
- writeLine(` Created Agent: ${agent.name} -> id=${agent.id}`);
12646
- } else {
12647
- writeLine(` Using Agent: ${agent.name || agent.id} -> id=${agent.id}`);
12648
- }
12649
- }
12650
13193
  sortedResources() {
12651
13194
  const all = [];
12652
13195
  for (const resource of this.resources) {
@@ -12851,7 +13394,7 @@ var SEARCHABLE_EVENT_RULE_SOURCE_FIELDS = [
12851
13394
  "taskId",
12852
13395
  "dataTypeId",
12853
13396
  "routineId",
12854
- "workflowId",
13397
+ "workflowRevisionId",
12855
13398
  "journeyStepId"
12856
13399
  ];
12857
13400
  var EVENT_RULE_SOURCE_FIELDS = [
@@ -13102,6 +13645,10 @@ var SMS_DELIVERY_FAILURE_STATUSES = /* @__PURE__ */ new Set([
13102
13645
  function isSMSDeliveryFailureStatus(status) {
13103
13646
  return status != null && SMS_DELIVERY_FAILURE_STATUSES.has(status);
13104
13647
  }
13648
+ var POSITIVE_RATING_THRESHOLD = 0.5;
13649
+ function isPositiveRating(rating) {
13650
+ return rating != null && rating >= POSITIVE_RATING_THRESHOLD;
13651
+ }
13105
13652
 
13106
13653
  // src/types/generated/organization.ts
13107
13654
  var BusinessIndustry = {
@@ -13204,6 +13751,7 @@ var AbilityConfigIssueCode = {
13204
13751
  missing_resource: "missing_resource",
13205
13752
  invalid_state: "invalid_state",
13206
13753
  feature_disabled: "feature_disabled",
13754
+ missing_connection: "missing_connection",
13207
13755
  external_drift: "external_drift"
13208
13756
  };
13209
13757
  var AbilityConfigIssueSeverity = {
@@ -13217,6 +13765,9 @@ var WorkflowAccessWarningResourceType = {
13217
13765
  calendar: "calendar"
13218
13766
  };
13219
13767
 
13768
+ // src/types/widget-domain-types.ts
13769
+ var WIDGET_SLUGS = ["chat", "operator", "operator-tools", "chat-app"];
13770
+
13220
13771
  // src/features/registry.ts
13221
13772
  var FeatureCategory = /* @__PURE__ */ ((FeatureCategory2) => {
13222
13773
  FeatureCategory2["COMMUNICATION"] = "communication";
@@ -13340,6 +13891,11 @@ function isChatType(value) {
13340
13891
  return Object.values(CHAT_TYPES).includes(value);
13341
13892
  }
13342
13893
 
13894
+ // src/constants/models.ts
13895
+ var DEFAULT_CHAT_MODEL = "aws:bedrock:claude-4-5-haiku";
13896
+ var DEFAULT_VOICE_INFERENCE_MODEL = "google:vertex:gemini-3-flash";
13897
+ var DEFAULT_CUSTOM_VOICE_MODEL = "elevenlabs:voice:river";
13898
+
13343
13899
  // src/types/resource-metadata.ts
13344
13900
  var RESOURCE_METADATA = {
13345
13901
  ["credit" /* CREDIT */]: {
@@ -14119,6 +14675,19 @@ var SCOPE_PRESETS = {
14119
14675
  /** Full access - all available scopes */
14120
14676
  ALL: Object.keys(SCOPES)
14121
14677
  };
14678
+
14679
+ // src/utils/revision-state.ts
14680
+ function getRevisionState(workflow, revision) {
14681
+ const draftIsLive = workflow.activeRevisionId === workflow.draftRevisionId;
14682
+ const hasUnpublishedChanges = workflow.draftModifiedAt != null;
14683
+ return {
14684
+ isActive: revision != null && revision.id === workflow.activeRevisionId,
14685
+ isDraft: revision != null && revision.id === workflow.draftRevisionId,
14686
+ draftIsLive,
14687
+ hasUnpublishedChanges,
14688
+ state: revision?.publishedAt != null ? "published" : "draft"
14689
+ };
14690
+ }
14122
14691
  // Annotate the CommonJS export names for ESM import in node:
14123
14692
  0 && (module.exports = {
14124
14693
  AbilityConfigIssueCode,
@@ -14147,6 +14716,7 @@ var SCOPE_PRESETS = {
14147
14716
  CalendarScheduleAvailabilityType,
14148
14717
  CalendarScheduleRecurrence,
14149
14718
  CalendarSource,
14719
+ CapabilityClass,
14150
14720
  ConsentMethod,
14151
14721
  CriterionType,
14152
14722
  DEFAULT_CHAT_MODEL,
@@ -14206,6 +14776,7 @@ var SCOPE_PRESETS = {
14206
14776
  PERMISSION_VERIFY,
14207
14777
  PIDS_DISPOSITIONS,
14208
14778
  PIDS_SOURCES,
14779
+ POSITIVE_RATING_THRESHOLD,
14209
14780
  ProductType,
14210
14781
  QUERY_VALUELESS_OPS,
14211
14782
  QueriesApi,
@@ -14242,6 +14813,7 @@ var SCOPE_PRESETS = {
14242
14813
  TaskBuilder,
14243
14814
  TemplatesApi,
14244
14815
  ToolkitState,
14816
+ WIDGET_SLUGS,
14245
14817
  WorkflowAccessWarningResourceType,
14246
14818
  WorkflowBuilder,
14247
14819
  WorkflowResourceType,
@@ -14267,12 +14839,14 @@ var SCOPE_PRESETS = {
14267
14839
  getFeaturesByVisibility,
14268
14840
  getMissingDependencies,
14269
14841
  getResourceMetadata,
14842
+ getRevisionState,
14270
14843
  getScopeFromProductType,
14271
14844
  getTTSProvider,
14272
14845
  getVoiceModelId,
14273
14846
  initializeFeatures,
14274
14847
  isChatType,
14275
14848
  isFeatureAvailable,
14849
+ isPositiveRating,
14276
14850
  isRegistryInitialized,
14277
14851
  isSMSDeliveryFailureStatus,
14278
14852
  requiresAssistantParticipant,