@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
@@ -1,4 +1,5 @@
1
1
  import {
2
+ ApiError,
2
3
  BaseApiClient
3
4
  } from "./chunk-FSSXKQR5.js";
4
5
 
@@ -16,20 +17,22 @@ var AbilitiesApi = class extends BaseApiClient {
16
17
  }
17
18
  /** Get the full spec for a single ability type by slug. */
18
19
  async getAbilityType(wid, slug) {
19
- return this.fetch(
20
- `w/${wid}/abilities/types/${encodeURIComponent(slug)}`
21
- );
20
+ return this.fetch(`w/${wid}/abilities/types/${encodeURIComponent(slug)}`);
22
21
  }
23
22
  /**
24
23
  * List configured ability instances for a workflow or task scope.
25
- * Exactly one of workflowId / taskId must be provided.
24
+ * Provide exactly one of:
25
+ * - workflow scope: workflowId (stable root → draft revision) and/or
26
+ * workflowRevisionId (explicit pin)
27
+ * - taskId for task-scoped abilities
26
28
  */
27
29
  async listAbilities(wid, options) {
28
30
  const params = new URLSearchParams();
29
31
  if (options.workflowId !== void 0)
30
32
  params.append("workflowId", options.workflowId.toString());
31
- if (options.taskId !== void 0)
32
- params.append("taskId", options.taskId.toString());
33
+ if (options.workflowRevisionId !== void 0)
34
+ params.append("workflowRevisionId", options.workflowRevisionId.toString());
35
+ if (options.taskId !== void 0) params.append("taskId", options.taskId.toString());
33
36
  return this.fetch(`w/${wid}/abilities?${params}`);
34
37
  }
35
38
  /** Create (enable) a configured ability on a workflow or task scope. */
@@ -52,6 +55,20 @@ var AbilitiesApi = class extends BaseApiClient {
52
55
  method: "DELETE"
53
56
  });
54
57
  }
58
+ /**
59
+ * List recipient-directory rows approved for Charleston PMD test delivery
60
+ * (CS-150). Returns only {recipientKey, displayLabel} for active,
61
+ * test-delivery-allowed rows with a device id — never the PatientSync
62
+ * recipient_id. Scoped to agents:write + the charleston_nephrology_pmd_paging
63
+ * feature; used by the ability-config test-delivery dropdown. Kept on the
64
+ * ability-configuration API (not generic DataRecords) because the actual
65
+ * ability-editor scopes do not guarantee generic record access.
66
+ */
67
+ async getCharlestonTestDeliveryRecipients(wid) {
68
+ return this.fetch(
69
+ `w/${wid}/app-connections/charleston_nephrology/test-delivery/eligible-recipients`
70
+ );
71
+ }
55
72
  };
56
73
 
57
74
  // src/api/access-grants.ts
@@ -123,6 +140,24 @@ var AccessGrantsApi = class extends BaseApiClient {
123
140
  );
124
141
  return resp.items;
125
142
  }
143
+ /**
144
+ * List access grants *received* by a member (grantee view) — the
145
+ * "what can this agent do without asking?" list. Filter with
146
+ * status=active and/or a capabilityClass (e.g. 'tool.always_allow').
147
+ */
148
+ async getGranteeGrants(wid, memberId, params) {
149
+ const searchParams = new URLSearchParams();
150
+ if (params?.status) searchParams.set("status", params.status);
151
+ if (params?.capabilityClass) {
152
+ searchParams.set("capability_class", params.capabilityClass);
153
+ }
154
+ if (params?.page) searchParams.set("page", params.page.toString());
155
+ if (params?.pageSize) searchParams.set("page_size", params.pageSize.toString());
156
+ const qs = searchParams.toString();
157
+ return this.fetch(
158
+ `w/${wid}/access-grants/grantee/${memberId}${qs ? `?${qs}` : ""}`
159
+ );
160
+ }
126
161
  };
127
162
 
128
163
  // src/api/agent-tasks.ts
@@ -209,25 +244,6 @@ var AgentsApi = class extends BaseApiClient {
209
244
  method: "POST"
210
245
  });
211
246
  }
212
- /** Resolve runtime tools for an agent on a simulated channel. */
213
- async resolveAgentTools(wid, id, options) {
214
- const params = new URLSearchParams();
215
- params.append("channel", options.channel);
216
- if (options.taskId !== void 0) params.append("taskId", options.taskId.toString());
217
- if (options.taskUuid !== void 0) params.append("taskUuid", options.taskUuid);
218
- return this.fetch(`w/${wid}/agents/${id}/resolve-tools?${params}`);
219
- }
220
- /**
221
- * List the configured abilities effective for an agent via a task's workflow.
222
- * Requires taskId because abilities are scoped to workflows/tasks, not agents.
223
- */
224
- async listAgentAbilities(wid, id, options) {
225
- const params = new URLSearchParams();
226
- params.append("taskId", options.taskId.toString());
227
- return this.fetch(
228
- `w/${wid}/agents/${id}/abilities?${params}`
229
- );
230
- }
231
247
  };
232
248
 
233
249
  // src/api/ai-models.ts
@@ -424,8 +440,7 @@ var AssignmentsApi = class extends BaseApiClient {
424
440
  if (options.sortOrder) params.append("sortOrder", options.sortOrder);
425
441
  if (options.mine) params.append("mine", options.mine.toString());
426
442
  if (options.taskId) params.append("taskId", options.taskId.toString());
427
- if (options.memberId !== void 0)
428
- params.append("memberId", options.memberId.toString());
443
+ if (options.memberId !== void 0) params.append("memberId", options.memberId.toString());
429
444
  if (options.status) params.append("status", options.status);
430
445
  return this.fetch(
431
446
  `w/${wid}/assignments${params.toString() ? `?${params.toString()}` : ""}`
@@ -554,6 +569,20 @@ var AuthApi = class extends BaseApiClient {
554
569
  body: JSON.stringify(info)
555
570
  });
556
571
  }
572
+ /**
573
+ * Persist the account's FIRST-touch marketing attribution (write-once).
574
+ *
575
+ * Called by the browser at signup completion with its resolved UTM /
576
+ * referrer / landing-page capture. The server keeps the first write and
577
+ * ignores later posts (`recorded: false`), so calling this again is
578
+ * harmless. Marketing context only — never emails, phones, or free text.
579
+ */
580
+ async recordAcquisition(request) {
581
+ return this.fetch("account/acquisition", {
582
+ method: "POST",
583
+ body: JSON.stringify(request)
584
+ });
585
+ }
557
586
  /** Initiate SMS login by sending a verification code to the given phone number. */
558
587
  async login(phoneNumber, wid, organizationUuid) {
559
588
  const params = new URLSearchParams();
@@ -777,23 +806,29 @@ var AuthApi = class extends BaseApiClient {
777
806
  // ===== TWO-FACTOR AUTHENTICATION LOGIN METHODS =====
778
807
  /** Verify a TOTP code during login to complete two-factor authentication. */
779
808
  async verifyTOTPAuth(tempToken, code) {
780
- return this.fetch("auth/2fa/auth/totp", {
781
- method: "POST",
782
- body: JSON.stringify({
783
- temp_token: tempToken,
784
- code
785
- })
786
- });
809
+ return this.fetch(
810
+ "auth/2fa/auth/totp",
811
+ {
812
+ method: "POST",
813
+ body: JSON.stringify({
814
+ temp_token: tempToken,
815
+ code
816
+ })
817
+ }
818
+ );
787
819
  }
788
820
  /** Verify a recovery code during login to complete two-factor authentication. */
789
821
  async verifyRecoveryCodeAuth(tempToken, code) {
790
- return this.fetch("auth/2fa/auth/recovery", {
791
- method: "POST",
792
- body: JSON.stringify({
793
- temp_token: tempToken,
794
- code
795
- })
796
- });
822
+ return this.fetch(
823
+ "auth/2fa/auth/recovery",
824
+ {
825
+ method: "POST",
826
+ body: JSON.stringify({
827
+ temp_token: tempToken,
828
+ code
829
+ })
830
+ }
831
+ );
797
832
  }
798
833
  /** Get WebAuthn credential request options for two-factor login verification. */
799
834
  async getWebAuthnAuthOptions(tempToken) {
@@ -806,13 +841,16 @@ var AuthApi = class extends BaseApiClient {
806
841
  }
807
842
  /** Verify a WebAuthn assertion during login to complete two-factor authentication. */
808
843
  async verifyWebAuthnAuth(tempToken, assertionResponse) {
809
- return this.fetch("auth/2fa/webauthn", {
810
- method: "POST",
811
- body: JSON.stringify({
812
- temp_token: tempToken,
813
- assertion_response: assertionResponse
814
- })
815
- });
844
+ return this.fetch(
845
+ "auth/2fa/webauthn",
846
+ {
847
+ method: "POST",
848
+ body: JSON.stringify({
849
+ temp_token: tempToken,
850
+ assertion_response: assertionResponse
851
+ })
852
+ }
853
+ );
816
854
  }
817
855
  // ===== ORGANIZATION MEMBERSHIP METHODS =====
818
856
  /** List all organizations the current account belongs to. */
@@ -1194,6 +1232,15 @@ var CallsApi = class extends BaseApiClient {
1194
1232
  async getMessageTiming(wid, chatId) {
1195
1233
  return this.fetch(`w/${wid}/recordings/chat/${chatId}/message-timing`);
1196
1234
  }
1235
+ /**
1236
+ * Get PHI-safe provenance metadata for the recording served by
1237
+ * `/audio.wav` — source, encryption, channels, duration, status, etc.
1238
+ * Staff-only Twilio SIDs are present only for superusers. Returns 404
1239
+ * when the chat has no native recording row (legacy chunk-only playback).
1240
+ */
1241
+ async getRecordingInfo(wid, chatId) {
1242
+ return this.fetch(`w/${wid}/recordings/chat/${chatId}/info`);
1243
+ }
1197
1244
  /** List the recorded audio chunks for a chat (metadata only). */
1198
1245
  async listChatRecordings(wid, chatId, options = {}) {
1199
1246
  const params = new URLSearchParams();
@@ -1252,8 +1299,7 @@ var ChatsApi = class extends BaseApiClient {
1252
1299
  if (options.paused !== void 0) params.append("paused", options.paused.toString());
1253
1300
  if (options.archived !== void 0) params.append("archived", options.archived.toString());
1254
1301
  if (options.channel) params.append("channel", options.channel);
1255
- const chatType = options.chatType ?? "assignment";
1256
- params.append("chatType", chatType);
1302
+ if (options.chatType) params.append("chatType", options.chatType);
1257
1303
  if (options.memberId !== void 0) params.append("memberId", options.memberId.toString());
1258
1304
  if (options.assistantMemberId !== void 0)
1259
1305
  params.append("assistantMemberId", options.assistantMemberId.toString());
@@ -1264,6 +1310,11 @@ var ChatsApi = class extends BaseApiClient {
1264
1310
  if (options.filters && options.filters.length > 0) {
1265
1311
  params.append("filters", JSON.stringify(options.filters));
1266
1312
  }
1313
+ if (options.query) params.append("query", JSON.stringify(options.query));
1314
+ if (options.workflowId !== void 0)
1315
+ params.append("workflowId", options.workflowId.toString());
1316
+ if (options.workflowRevisionId !== void 0)
1317
+ params.append("workflowRevisionId", options.workflowRevisionId.toString());
1267
1318
  if (options.createdAfter) params.append("createdAfter", options.createdAfter);
1268
1319
  if (options.createdBefore) params.append("createdBefore", options.createdBefore);
1269
1320
  return params;
@@ -1384,6 +1435,25 @@ var ChatsApi = class extends BaseApiClient {
1384
1435
  body: JSON.stringify(chat)
1385
1436
  });
1386
1437
  }
1438
+ /**
1439
+ * Get per-chat model provenance for the Chat sidebar's model summary area:
1440
+ * the effective chat + realtime models, the agent's current default (the
1441
+ * reset/inherit target), and pinned/matches flags.
1442
+ */
1443
+ async getChatModelOverride(wid, id) {
1444
+ return this.fetch(`w/${wid}/chats/${id}/model-override`);
1445
+ }
1446
+ /**
1447
+ * Pin or reset the per-chat chat/realtime model snapshot. A concrete model id
1448
+ * pins that model; an empty/null id resets it to the agent's current default.
1449
+ * Only fields present in the payload are touched.
1450
+ */
1451
+ async updateChatModelOverride(wid, id, override) {
1452
+ return this.fetch(`w/${wid}/chats/${id}/model-override`, {
1453
+ method: "PUT",
1454
+ body: JSON.stringify(override)
1455
+ });
1456
+ }
1387
1457
  /** Update the mute status of a chat. */
1388
1458
  async updateChatMute(wid, id, muted) {
1389
1459
  return this.fetch(`w/${wid}/chats/${id}/mute`, {
@@ -1454,13 +1524,35 @@ var ChatsApi = class extends BaseApiClient {
1454
1524
  })
1455
1525
  });
1456
1526
  }
1457
- /** Rate a chat message by its UUID. */
1458
- async rateMessage(wid, chatId, messageUuid, rating) {
1527
+ /**
1528
+ * List durable feedback rows for a chat (thumbs, explicit, supervisor, extracted).
1529
+ */
1530
+ async getChatFeedback(wid, chatId, options = {}) {
1531
+ const params = new URLSearchParams();
1532
+ if (options.page != null) params.set("page", String(options.page));
1533
+ if (options.pageSize != null) params.set("pageSize", String(options.pageSize));
1534
+ if (options.source) params.set("source", options.source);
1535
+ if (options.rating) params.set("rating", options.rating);
1536
+ if (options.authorKind) params.set("authorKind", options.authorKind);
1537
+ const qs = params.toString();
1538
+ return this.fetch(
1539
+ `w/${wid}/chats/${chatId}/feedback${qs ? `?${qs}` : ""}`
1540
+ );
1541
+ }
1542
+ /**
1543
+ * Rate a chat message by its UUID.
1544
+ * Optional ``comment`` updates free-text details on the same durable rating row.
1545
+ */
1546
+ async rateMessage(wid, chatId, messageUuid, rating, comment) {
1547
+ const body = { rating };
1548
+ if (comment !== void 0) {
1549
+ body.comment = comment;
1550
+ }
1459
1551
  return this.fetch(
1460
1552
  `w/${wid}/chats/${chatId}/messages/${messageUuid}/rate`,
1461
1553
  {
1462
1554
  method: "POST",
1463
- body: JSON.stringify({ rating })
1555
+ body: JSON.stringify(body)
1464
1556
  }
1465
1557
  );
1466
1558
  }
@@ -1798,12 +1890,58 @@ var DataTypesApi = class extends BaseApiClient {
1798
1890
  if (options?.memberIds?.length) params.append("member_ids", options.memberIds.join(","));
1799
1891
  if (options?.search) params.append("search", options.search);
1800
1892
  if (options?.searchField) params.append("search_field", options.searchField);
1893
+ if (options?.dataRecordFilterId != null) {
1894
+ params.append("dataRecordFilterId", options.dataRecordFilterId.toString());
1895
+ }
1896
+ if (options?.query != null) params.append("query", JSON.stringify(options.query));
1801
1897
  if (options?.page) params.append("page", options.page.toString());
1802
1898
  if (options?.pageSize) params.append("page_size", options.pageSize.toString());
1803
1899
  return this.fetch(
1804
1900
  `w/${wid}/data-types/${dataTypeId}/records${params?.toString() ? `?${params.toString()}` : ""}`
1805
1901
  );
1806
1902
  }
1903
+ // Data-record filter APIs (saved Query IR predicates per form)
1904
+ /** List saved data-record filters, optionally scoped to one DataType. */
1905
+ async getDataRecordFilters(wid, options) {
1906
+ const params = new URLSearchParams();
1907
+ if (options?.dataTypeId != null) {
1908
+ params.append("dataTypeId", options.dataTypeId.toString());
1909
+ }
1910
+ const qs = params.toString();
1911
+ return this.fetch(
1912
+ `w/${wid}/data-record-filters${qs ? `?${qs}` : ""}`
1913
+ );
1914
+ }
1915
+ /** Get a single data-record filter by ID. */
1916
+ async getDataRecordFilter(wid, filterId) {
1917
+ return this.fetch(`w/${wid}/data-record-filters/${filterId}`);
1918
+ }
1919
+ /** Create a new saved data-record filter. */
1920
+ async createDataRecordFilter(wid, data) {
1921
+ return this.fetch(`w/${wid}/data-record-filters`, {
1922
+ method: "POST",
1923
+ body: JSON.stringify(data)
1924
+ });
1925
+ }
1926
+ /** Update a saved data-record filter. */
1927
+ async updateDataRecordFilter(wid, filterId, data) {
1928
+ return this.fetch(`w/${wid}/data-record-filters/${filterId}`, {
1929
+ method: "PUT",
1930
+ body: JSON.stringify(data)
1931
+ });
1932
+ }
1933
+ /** Delete a saved data-record filter. */
1934
+ async deleteDataRecordFilter(wid, filterId) {
1935
+ return this.fetch(`w/${wid}/data-record-filters/${filterId}`, {
1936
+ method: "DELETE"
1937
+ });
1938
+ }
1939
+ /** Get the count of records matching a saved filter. */
1940
+ async getDataRecordFilterCount(wid, filterId) {
1941
+ return this.fetch(
1942
+ `w/${wid}/data-record-filters/${filterId}/count`
1943
+ );
1944
+ }
1807
1945
  /** Get a single data record by ID. */
1808
1946
  async getDataRecord(wid, recordId) {
1809
1947
  return this.fetch(`w/${wid}/data-types/records/${recordId}`);
@@ -1916,6 +2054,38 @@ var DiscordBotsApi = class extends BaseApiClient {
1916
2054
  body: JSON.stringify(data)
1917
2055
  });
1918
2056
  }
2057
+ /**
2058
+ * Step-up preflight for the Discord account-link flow (GH #20196).
2059
+ *
2060
+ * A no-side-effect GET enforcing the same authenticated, stepped-up
2061
+ * `apps:write` session as authorize/complete-link. Call this through the
2062
+ * client *before* the full-page navigation to `/oauth/authorize`: a 401
2063
+ * `insufficient_user_authentication` triggers the SDK's enhanced-auth
2064
+ * (step-up) modal + retry, so a below-assurance session is prompted here
2065
+ * rather than hitting a raw 401 on a top-level browser navigation.
2066
+ * Resolves (204) once the session is sufficiently assured.
2067
+ */
2068
+ async discordLinkPreflight(wid) {
2069
+ return this.fetch(`w/${wid}/app-connections/discord/oauth/link/preflight`);
2070
+ }
2071
+ /**
2072
+ * Complete an authenticated Discord account link (GH #20196).
2073
+ *
2074
+ * POST-only. Exchanges the one-time opaque handle (issued by the OAuth
2075
+ * callback and carried in the `?discord_link_handle=` return param) for a
2076
+ * persisted MemberCredential. Requires an authenticated, step-up-protected
2077
+ * session with `apps:write`; a 401 `insufficient_user_authentication`
2078
+ * triggers the SDK's enhanced-auth (step-up) retry automatically.
2079
+ */
2080
+ async completeDiscordLink(wid, data) {
2081
+ return this.fetch(
2082
+ `w/${wid}/app-connections/discord/oauth/complete-link`,
2083
+ {
2084
+ method: "POST",
2085
+ body: JSON.stringify(data)
2086
+ }
2087
+ );
2088
+ }
1919
2089
  /**
1920
2090
  * Update an existing Discord bot configuration.
1921
2091
  */
@@ -2108,7 +2278,8 @@ var EventsApi = class extends BaseApiClient {
2108
2278
  if (params.taskId) searchParams.append("taskId", params.taskId.toString());
2109
2279
  if (params.dataTypeId) searchParams.append("dataTypeId", params.dataTypeId.toString());
2110
2280
  if (params.routineId) searchParams.append("routineId", params.routineId.toString());
2111
- if (params.workflowId) searchParams.append("workflowId", params.workflowId.toString());
2281
+ if (params.workflowRevisionId)
2282
+ searchParams.append("workflowRevisionId", params.workflowRevisionId.toString());
2112
2283
  if (params.journeyStepId)
2113
2284
  searchParams.append("journeyStepId", params.journeyStepId.toString());
2114
2285
  if (params.includeDisabled) searchParams.append("includeDisabled", "true");
@@ -2179,7 +2350,8 @@ var EventsApi = class extends BaseApiClient {
2179
2350
  if (options.objectType) params.append("objectType", options.objectType);
2180
2351
  if (options.eventType) params.append("eventType", options.eventType);
2181
2352
  if (options.actionType) params.append("actionType", options.actionType);
2182
- if (options.workflowId) params.append("workflowId", options.workflowId.toString());
2353
+ if (options.workflowRevisionId)
2354
+ params.append("workflowRevisionId", options.workflowRevisionId.toString());
2183
2355
  return this.fetch(
2184
2356
  `w/${wid}/event-rules/executions${params.toString() ? `?${params.toString()}` : ""}`
2185
2357
  );
@@ -2191,6 +2363,20 @@ var EventsApi = class extends BaseApiClient {
2191
2363
  body: JSON.stringify(request)
2192
2364
  });
2193
2365
  }
2366
+ /**
2367
+ * Preview which target-audience roles lack Workflow USE for the Workflows a
2368
+ * draft Routine would start. Non-persisting, non-blocking authoring assist —
2369
+ * returns warnings only (role/Workflow names + IDs; no Member data).
2370
+ */
2371
+ async previewRoutineWorkflowAccess(wid, request) {
2372
+ return this.fetch(
2373
+ `w/${wid}/routines/preview-workflow-access`,
2374
+ {
2375
+ method: "POST",
2376
+ body: JSON.stringify(request)
2377
+ }
2378
+ );
2379
+ }
2194
2380
  /** List routines with optional pagination and active status filtering. */
2195
2381
  async getRoutines(wid, options = {}) {
2196
2382
  const params = new URLSearchParams();
@@ -2649,6 +2835,17 @@ var FilesApi = class extends BaseApiClient {
2649
2835
  async getFile(wid, id) {
2650
2836
  return this.fetch(`w/${wid}/files/${id}`);
2651
2837
  }
2838
+ /**
2839
+ * Resolve a wiki-style relative path (as authored in a markdown link or
2840
+ * image) to a file. `folderId` is the linking document's folder; omit it
2841
+ * to resolve from the workspace root. Handles `.`/`..` segments and an
2842
+ * omitted `.md` extension server-side.
2843
+ */
2844
+ async resolveFilePath(wid, path, folderId) {
2845
+ const params = new URLSearchParams({ path });
2846
+ if (folderId != null) params.append("folderId", String(folderId));
2847
+ return this.fetch(`w/${wid}/files/resolve-path?${params.toString()}`);
2848
+ }
2652
2849
  /**
2653
2850
  * Download the given files + folders (folders recursively) as a single ZIP.
2654
2851
  * Returns the raw archive bytes for the caller to save.
@@ -2702,6 +2899,36 @@ var FilesApi = class extends BaseApiClient {
2702
2899
  method: "DELETE"
2703
2900
  });
2704
2901
  }
2902
+ /** List a file's version history (newest first). */
2903
+ async listFileVersions(wid, fileId) {
2904
+ return this.fetch(`w/${wid}/files/${fileId}/versions`);
2905
+ }
2906
+ /** Compare two versions of a file. For text files both raw contents are returned. */
2907
+ async getFileVersionDiff(wid, fileId, fromVersion, toVersion) {
2908
+ return this.fetch(
2909
+ `w/${wid}/files/${fileId}/versions/diff?fromVersion=${fromVersion}&toVersion=${toVersion}`
2910
+ );
2911
+ }
2912
+ /** Restore an earlier version as the file's current contents. */
2913
+ async restoreFileVersion(wid, fileId, versionNumber, changeNote) {
2914
+ return this.fetch(
2915
+ `w/${wid}/files/${fileId}/versions/${versionNumber}/restore`,
2916
+ {
2917
+ method: "POST",
2918
+ // Required JSON body: keeps this cookie-auth POST non-forgeable
2919
+ // by cross-site HTML forms (backend rejects bodyless requests).
2920
+ body: JSON.stringify(changeNote ? { changeNote } : {})
2921
+ }
2922
+ );
2923
+ }
2924
+ /**
2925
+ * Same-origin proxy URL for a version's raw contents. Mirrors the shape of
2926
+ * `FileResponse.cdnUrl`: an app-relative Next.js route that authenticates
2927
+ * via session cookies and forwards to the versioned contents endpoint.
2928
+ */
2929
+ getFileVersionContentsUrl(wid, fileId, versionNumber) {
2930
+ return `/api/w/${wid}/files/${fileId}/versions/${versionNumber}/contents`;
2931
+ }
2705
2932
  /** Convert a file to the specified format (text, markdown, or PDF). */
2706
2933
  async convertFile(wid, fileId, format = "pdf") {
2707
2934
  return this.fetch(
@@ -3342,7 +3569,7 @@ var MembersApi = class extends BaseApiClient {
3342
3569
  });
3343
3570
  }
3344
3571
  /** List workspace members with pagination, filtering, and sorting. */
3345
- async getWorkspaceMembers(wid, page = 1, pageSize = 10, filters, search, role, sortBy, sortOrder, memberType, isArchived = false, isManager, memberTypes, hasAccount, excludeIds, memberFilterId, query) {
3572
+ async getWorkspaceMembers(wid, page = 1, pageSize = 10, search, role, sortBy, sortOrder, memberType, isArchived = false, isManager, memberTypes, hasAccount, excludeIds, memberFilterId, query) {
3346
3573
  const params = new URLSearchParams();
3347
3574
  if (memberFilterId != null) params.append("memberFilterId", memberFilterId.toString());
3348
3575
  if (query != null) params.append("query", JSON.stringify(query));
@@ -3350,13 +3577,6 @@ var MembersApi = class extends BaseApiClient {
3350
3577
  if (pageSize) params.append("pageSize", pageSize.toString());
3351
3578
  if (sortBy) params.append("sortBy", sortBy);
3352
3579
  if (sortOrder) params.append("sortOrder", sortOrder);
3353
- if (filters) {
3354
- if (Array.isArray(filters)) {
3355
- params.append("filters", JSON.stringify(filters));
3356
- } else {
3357
- params.append("filters", JSON.stringify(filters));
3358
- }
3359
- }
3360
3580
  if (search) params.append("search", search);
3361
3581
  if (role) params.append("role", role);
3362
3582
  if (memberTypes && memberTypes.length > 0) {
@@ -3452,22 +3672,6 @@ var MembersApi = class extends BaseApiClient {
3452
3672
  body: JSON.stringify(data)
3453
3673
  });
3454
3674
  }
3455
- /**
3456
- * Convert a legacy rules filter to a query-engine predicate. One-way and
3457
- * transactional: on success the filter's legacy rules are gone and
3458
- * `query` holds the equivalent IR predicate. 409 if already query-format;
3459
- * 422 when rules have no engine equivalent.
3460
- *
3461
- * With `dryRun: true` the same validation runs but nothing persists: the
3462
- * response previews the normalized predicate in `query` while `rules`
3463
- * stay intact on the filter.
3464
- */
3465
- async convertMemberFilterToQuery(wid, filterId, opts) {
3466
- const suffix = opts?.dryRun ? "?dryRun=true" : "";
3467
- return this.fetch(`w/${wid}/member-filters/${filterId}/convert${suffix}`, {
3468
- method: "PUT"
3469
- });
3470
- }
3471
3675
  /** Delete a saved member filter. */
3472
3676
  async deleteMemberFilter(wid, filterId) {
3473
3677
  return this.fetch(`w/${wid}/member-filters/${filterId}`, {
@@ -3813,6 +4017,11 @@ var MembersApi = class extends BaseApiClient {
3813
4017
  `w/${wid}/members/${memberId}/memories${qs ? `?${qs}` : ""}`
3814
4018
  );
3815
4019
  }
4020
+ async getMemberMemory(wid, memberId, key) {
4021
+ return this.fetch(
4022
+ `w/${wid}/members/${memberId}/memories/${encodeURIComponent(key)}`
4023
+ );
4024
+ }
3816
4025
  async createMemberMemory(wid, memberId, body) {
3817
4026
  return this.fetch(`w/${wid}/members/${memberId}/memories`, {
3818
4027
  method: "POST",
@@ -3917,6 +4126,20 @@ var MondayIntegrationApi = class extends BaseApiClient {
3917
4126
  // -----------------------------------------------------------------------
3918
4127
  // Monday.com Connection management (OAuth, status, sync, reconciliation)
3919
4128
  // -----------------------------------------------------------------------
4129
+ /**
4130
+ * Create the Monday.com connection shell (no credentials yet).
4131
+ *
4132
+ * First step of the guided setup flow: provisions the connection row so
4133
+ * the admin lands on the detail page where the OAuth callback URL is
4134
+ * shown — which they need to register their Monday.com app before they
4135
+ * have a Client ID / Secret to enter. Idempotent.
4136
+ */
4137
+ async installMondayConnection(wid) {
4138
+ return this.fetch(`w/${wid}/app-connections/monday/install`, {
4139
+ method: "POST",
4140
+ body: JSON.stringify({})
4141
+ });
4142
+ }
3920
4143
  async configureMondayConnection(wid, data) {
3921
4144
  return this.fetch(`w/${wid}/app-connections/monday/configure`, {
3922
4145
  method: "POST",
@@ -4743,6 +4966,14 @@ var OAuthApi = class extends BaseApiClient {
4743
4966
  };
4744
4967
 
4745
4968
  // src/api/phone-numbers.ts
4969
+ function appendAnalyticsFilters(params, filters) {
4970
+ if (!filters) return;
4971
+ if (filters.dateFrom) params.set("dateFrom", filters.dateFrom);
4972
+ if (filters.dateTo) params.set("dateTo", filters.dateTo);
4973
+ filters.terminationReason?.forEach((v) => params.append("terminationReason", v));
4974
+ filters.answeredBy?.forEach((v) => params.append("answeredBy", v));
4975
+ filters.memberLabel?.forEach((v) => params.append("memberLabel", v));
4976
+ }
4746
4977
  var PhoneNumbersApi = class extends BaseApiClient {
4747
4978
  /** List phone numbers in a workspace, optionally including archived. */
4748
4979
  async getPhoneNumbers(wid, options) {
@@ -4866,6 +5097,62 @@ var PhoneNumbersApi = class extends BaseApiClient {
4866
5097
  method: "POST"
4867
5098
  });
4868
5099
  }
5100
+ /**
5101
+ * Always-anonymized outbound-call analytics summary for one phone number.
5102
+ * No `analyticsSessionId` is sent — the summary carries no row-level PHI.
5103
+ */
5104
+ async getPhoneNumberOutboundAnalyticsSummary(wid, id, filters) {
5105
+ const params = new URLSearchParams();
5106
+ appendAnalyticsFilters(params, filters);
5107
+ const query = params.toString();
5108
+ return this.fetch(
5109
+ `w/${wid}/phone-numbers/${id}/analytics/summary${query ? `?${query}` : ""}`
5110
+ );
5111
+ }
5112
+ /**
5113
+ * One paginated page of outbound-call analytics detail rows. Anonymized by
5114
+ * default; `raw: true` requires the `export:admin` scope server-side and is
5115
+ * audited per response. `analyticsSessionId` keeps the callee pseudonyms
5116
+ * stable across pagination/sort within one browser session.
5117
+ */
5118
+ async getPhoneNumberOutboundAnalyticsCalls(wid, id, options) {
5119
+ const params = new URLSearchParams({
5120
+ analyticsSessionId: options.analyticsSessionId,
5121
+ page: String(options.page ?? 1),
5122
+ pageSize: String(options.pageSize ?? 50)
5123
+ });
5124
+ if (options.sort) params.set("sort", options.sort);
5125
+ if (options.sortDirection) params.set("sortDirection", options.sortDirection);
5126
+ if (options.raw) params.set("raw", "true");
5127
+ appendAnalyticsFilters(params, options.filters);
5128
+ return this.fetch(
5129
+ `w/${wid}/phone-numbers/${id}/analytics/calls?${params}`
5130
+ );
5131
+ }
5132
+ /**
5133
+ * Export outbound-call analytics as a CSV blob (respecting the current
5134
+ * filters + raw state). The server returns HTTP 400 when the result set
5135
+ * exceeds its export cap; that message is surfaced to the caller via
5136
+ * `ApiError` so the UI can toast it.
5137
+ */
5138
+ async exportPhoneNumberOutboundAnalyticsCsv(wid, id, options) {
5139
+ const params = new URLSearchParams({ analyticsSessionId: options.analyticsSessionId });
5140
+ if (options.sort) params.set("sort", options.sort);
5141
+ if (options.sortDirection) params.set("sortDirection", options.sortDirection);
5142
+ if (options.raw) params.set("raw", "true");
5143
+ appendAnalyticsFilters(params, options.filters);
5144
+ const response = await this.fetchRaw(
5145
+ `w/${wid}/phone-numbers/${id}/analytics/export?${params}`,
5146
+ {},
5147
+ [400]
5148
+ );
5149
+ if (!response.ok) {
5150
+ const data = await response.json().catch(() => ({}));
5151
+ const message = typeof data?.detail === "string" ? data.detail : "Failed to export analytics";
5152
+ throw new ApiError(message, response.status);
5153
+ }
5154
+ return response.blob();
5155
+ }
4869
5156
  };
4870
5157
 
4871
5158
  // src/api/pronunciations.ts
@@ -5204,6 +5491,20 @@ var ReportsApi = class extends BaseApiClient {
5204
5491
 
5205
5492
  // src/api/salesforce.ts
5206
5493
  var SalesforceApi = class extends BaseApiClient {
5494
+ /**
5495
+ * Create the Salesforce connection shell (no credentials yet).
5496
+ *
5497
+ * First step of the guided setup flow: provisions the connection row so
5498
+ * the admin lands on the detail page where the OAuth callback URL is
5499
+ * shown — which they need to register their Salesforce Connected App
5500
+ * before they have a Client ID / Secret to enter. Idempotent.
5501
+ */
5502
+ async installSalesforce(wid, data) {
5503
+ return this.fetch(`w/${wid}/app-connections/salesforce/install`, {
5504
+ method: "POST",
5505
+ body: JSON.stringify(data ?? {})
5506
+ });
5507
+ }
5207
5508
  async configureSalesforce(wid, data) {
5208
5509
  return this.fetch(
5209
5510
  `w/${wid}/app-connections/salesforce/configure`,
@@ -5405,6 +5706,20 @@ var ConnectionSyncApi = class extends BaseApiClient {
5405
5706
 
5406
5707
  // src/api/hubspot.ts
5407
5708
  var HubspotApi = class extends BaseApiClient {
5709
+ /**
5710
+ * Create the HubSpot connection shell (no credentials yet).
5711
+ *
5712
+ * First step of the guided setup flow: provisions the connection row so
5713
+ * the admin lands on the detail page where the OAuth callback URL is
5714
+ * shown — which they need to register their HubSpot app before they have
5715
+ * a Client ID / Secret to enter. Idempotent.
5716
+ */
5717
+ async installHubspot(wid) {
5718
+ return this.fetch(`w/${wid}/app-connections/hubspot/install`, {
5719
+ method: "POST",
5720
+ body: JSON.stringify({})
5721
+ });
5722
+ }
5408
5723
  async configureHubspot(wid, data) {
5409
5724
  return this.fetch(`w/${wid}/app-connections/hubspot/configure`, {
5410
5725
  method: "POST",
@@ -5679,19 +5994,28 @@ var SitesApi = class extends BaseApiClient {
5679
5994
  }
5680
5995
  );
5681
5996
  }
5682
- /** Verify a phone or email code and complete site authentication. */
5997
+ /**
5998
+ * Verify a phone or email code and complete site authentication.
5999
+ *
6000
+ * When the account has 2FA enrolled, the backend returns a temporary token
6001
+ * with ``requiresTwoFactor: true`` and this method does **not** mint full
6002
+ * session cookies — the caller must complete the 2FA challenge (same handoff
6003
+ * as public-site Google OAuth).
6004
+ */
5683
6005
  async siteVerifyCode(wid, siteUuid, code, phoneNumber, email) {
5684
6006
  const verifyResponse = await this.fetch(`s/${wid}/${siteUuid}/auth/verify`, {
5685
6007
  method: "POST",
5686
6008
  body: JSON.stringify({ code, phoneNumber, email })
5687
6009
  });
5688
- const completeResponse = await fetch(`/api/auth/complete`, {
5689
- method: "POST",
5690
- headers: { "Content-Type": "application/json" },
5691
- body: JSON.stringify({ token: verifyResponse.token })
5692
- });
5693
- if (!completeResponse.ok) {
5694
- throw new Error("Failed to complete authentication");
6010
+ if (!verifyResponse.requiresTwoFactor && verifyResponse.token) {
6011
+ const completeResponse = await fetch(`/api/auth/complete`, {
6012
+ method: "POST",
6013
+ headers: { "Content-Type": "application/json" },
6014
+ body: JSON.stringify({ token: verifyResponse.token })
6015
+ });
6016
+ if (!completeResponse.ok) {
6017
+ throw new Error("Failed to complete authentication");
6018
+ }
5695
6019
  }
5696
6020
  return verifyResponse;
5697
6021
  }
@@ -6178,7 +6502,15 @@ var SupervisorsApi = class extends BaseApiClient {
6178
6502
 
6179
6503
  // src/api/tasks.ts
6180
6504
  var TasksApi = class extends BaseApiClient {
6181
- /** List all tasks in a workspace, optionally filtering by workflow or including archived. */
6505
+ /**
6506
+ * List all tasks in a workspace, optionally filtering by workflow or
6507
+ * including archived.
6508
+ *
6509
+ * `workflowId` is the STABLE workflow root id — the server resolves it to
6510
+ * that workflow's draft revision's tasks. `workflowRevisionId` filters an
6511
+ * explicit revision (the read-only published-revision view). Pass at most
6512
+ * one; passing both that disagree is a 400.
6513
+ */
6182
6514
  async getTasks(wid, options = {}) {
6183
6515
  const params = new URLSearchParams();
6184
6516
  if (options.includeArchived) {
@@ -6187,6 +6519,9 @@ var TasksApi = class extends BaseApiClient {
6187
6519
  if (options.workflowId) {
6188
6520
  params.append("workflow_id", options.workflowId.toString());
6189
6521
  }
6522
+ if (options.workflowRevisionId) {
6523
+ params.append("workflow_revision_id", options.workflowRevisionId.toString());
6524
+ }
6190
6525
  if (options.sortBy) {
6191
6526
  params.append("sortBy", options.sortBy);
6192
6527
  }
@@ -6541,11 +6876,18 @@ var JourneysApi = class extends BaseApiClient {
6541
6876
  // src/api/workflows.ts
6542
6877
  var WorkflowsApi = class extends BaseApiClient {
6543
6878
  /** List all workflows in a workspace, optionally including archived ones. */
6544
- async getWorkflows(wid, archived = false) {
6545
- const url = archived ? `w/${wid}/workflows?archived=true` : `w/${wid}/workflows`;
6546
- return this.fetch(url);
6879
+ async getWorkflows(wid, options = {}) {
6880
+ const params = new URLSearchParams();
6881
+ if (options.archived) params.set("archived", "true");
6882
+ if (options.page) params.set("page", String(options.page));
6883
+ if (options.pageSize) params.set("pageSize", String(options.pageSize));
6884
+ if (options.sortBy) params.set("sortBy", options.sortBy);
6885
+ if (options.sortOrder) params.set("sortOrder", options.sortOrder);
6886
+ if (options.search) params.set("search", options.search);
6887
+ const qs = params.toString();
6888
+ return this.fetch(`w/${wid}/workflows${qs ? `?${qs}` : ""}`);
6547
6889
  }
6548
- /** Get a single workflow by ID. */
6890
+ /** Get a single workflow by ID (root + draft + active-revision summary). */
6549
6891
  async getWorkflow(wid, id) {
6550
6892
  return this.fetch(`w/${wid}/workflows/${id}`);
6551
6893
  }
@@ -6593,7 +6935,7 @@ var WorkflowsApi = class extends BaseApiClient {
6593
6935
  body: JSON.stringify(workflow)
6594
6936
  });
6595
6937
  }
6596
- /** Update an existing workflow. */
6938
+ /** Update an existing workflow's draft revision. */
6597
6939
  async updateWorkflow(wid, id, workflow) {
6598
6940
  return this.fetch(`w/${wid}/workflows/${id}`, {
6599
6941
  method: "PUT",
@@ -6614,13 +6956,15 @@ var WorkflowsApi = class extends BaseApiClient {
6614
6956
  /** Archive a workflow. */
6615
6957
  async archiveWorkflow(wid, id) {
6616
6958
  return this.fetch(`w/${wid}/workflows/${id}/archive`, {
6617
- method: "POST"
6959
+ method: "POST",
6960
+ body: JSON.stringify({})
6618
6961
  });
6619
6962
  }
6620
6963
  /** Unarchive a previously archived workflow. */
6621
6964
  async unarchiveWorkflow(wid, id) {
6622
6965
  return this.fetch(`w/${wid}/workflows/${id}/unarchive`, {
6623
- method: "POST"
6966
+ method: "POST",
6967
+ body: JSON.stringify({})
6624
6968
  });
6625
6969
  }
6626
6970
  /** Clone a workflow with a new name. */
@@ -6636,16 +6980,20 @@ var WorkflowsApi = class extends BaseApiClient {
6636
6980
  }
6637
6981
  /** Create a new workflow from a template. */
6638
6982
  async createWorkflowFromTemplate(wid, templateUuid, data) {
6639
- return this.fetch(`w/${wid}/workflows/templates/${templateUuid}/create-workflow`, {
6640
- method: "POST",
6641
- body: JSON.stringify(data)
6642
- });
6983
+ return this.fetch(
6984
+ `w/${wid}/workflows/templates/${templateUuid}/create-workflow`,
6985
+ {
6986
+ method: "POST",
6987
+ body: JSON.stringify(data)
6988
+ }
6989
+ );
6643
6990
  }
6644
6991
  /** Get task assignment statistics for a workflow within an optional date range. */
6645
- async getWorkflowTaskAssignmentStats(wid, id, fromDate, toDate) {
6992
+ async getWorkflowTaskAssignmentStats(wid, id, fromDate, toDate, workflowRevisionId) {
6646
6993
  const params = new URLSearchParams();
6647
6994
  if (fromDate) params.append("from_date", fromDate);
6648
6995
  if (toDate) params.append("to_date", toDate);
6996
+ if (workflowRevisionId) params.append("workflowRevisionId", String(workflowRevisionId));
6649
6997
  return this.fetch(
6650
6998
  `w/${wid}/workflows/${id}/task-assignment-stats?${params.toString()}`
6651
6999
  );
@@ -6695,6 +7043,24 @@ var WorkflowsApi = class extends BaseApiClient {
6695
7043
  `w/${wid}/workflows/${workflowId}/route-dry-run?${params.toString()}`
6696
7044
  );
6697
7045
  }
7046
+ // Workflow Feedback API
7047
+ /**
7048
+ * List chat feedback for a workflow (thumbs ratings + explicit/extracted rows).
7049
+ * First consumer of the workspace-plane chat_feedback table.
7050
+ */
7051
+ async getWorkflowFeedback(wid, workflowId, options = {}) {
7052
+ const params = new URLSearchParams();
7053
+ if (options.page != null) params.set("page", String(options.page));
7054
+ if (options.pageSize != null) params.set("pageSize", String(options.pageSize));
7055
+ if (options.source) params.set("source", options.source);
7056
+ if (options.rating) params.set("rating", options.rating);
7057
+ if (options.authorKind) params.set("authorKind", options.authorKind);
7058
+ if (options.includeTest != null) params.set("includeTest", String(options.includeTest));
7059
+ const qs = params.toString();
7060
+ return this.fetch(
7061
+ `w/${wid}/workflows/${workflowId}/feedback${qs ? `?${qs}` : ""}`
7062
+ );
7063
+ }
6698
7064
  // Workflow Contributors API
6699
7065
  /** List all contributors for a workflow. */
6700
7066
  async getWorkflowContributors(wid, workflowId) {
@@ -6760,58 +7126,80 @@ var WorkflowsApi = class extends BaseApiClient {
6760
7126
  body: JSON.stringify({ name })
6761
7127
  });
6762
7128
  }
6763
- // Workflow Versions API
6764
- /** List all versions of a workflow. */
6765
- async getWorkflowVersions(wid, workflowUuid) {
6766
- return this.fetch(`w/${wid}/workflows/${workflowUuid}/versions`);
7129
+ /** List relational revisions for a workflow. */
7130
+ async getWorkflowRevisions(wid, workflowId) {
7131
+ return this.fetch(`w/${wid}/workflows/${workflowId}/revisions`);
6767
7132
  }
6768
- /** Get the active version of a workflow. */
6769
- async getWorkflowVersionActive(wid, workflowUuid) {
7133
+ /** Get full workflow details for one relational workflow revision. */
7134
+ async getWorkflowRevision(wid, workflowId, revisionId) {
6770
7135
  return this.fetch(
6771
- `w/${wid}/workflows/${workflowUuid}/versions/active`
7136
+ `w/${wid}/workflows/${workflowId}/revisions/${revisionId}`
6772
7137
  );
6773
7138
  }
6774
- /** Get a specific version of a workflow by version number. */
6775
- async getWorkflowVersion(wid, workflowUuid, versionNumber) {
6776
- return this.fetch(
6777
- `w/${wid}/workflows/${workflowUuid}/versions/${versionNumber}`
6778
- );
6779
- }
6780
- /** Publish the live workflow as a new immutable version. */
6781
- async publishWorkflowVersion(wid, workflowUuid, data) {
6782
- return this.fetch(`w/${wid}/workflows/${workflowUuid}/versions`, {
7139
+ /** Freeze the workflow's draft as a published revision and clone a fresh draft.
7140
+ *
7141
+ * By default the just-published revision becomes the active revision —
7142
+ * live traffic flips to it immediately. Pass `setActive: false` to
7143
+ * publish without flipping live traffic (advanced flow).
7144
+ */
7145
+ async publishWorkflowRevision(wid, workflowId, data = {}) {
7146
+ return this.fetch(`w/${wid}/workflows/${workflowId}/publish`, {
6783
7147
  method: "POST",
6784
7148
  body: JSON.stringify(data)
6785
7149
  });
6786
7150
  }
6787
- async updateWorkflowVersion(wid, workflowUuid, versionNumber, data) {
7151
+ /** Point the workflow's active pointer at a chosen revision (pointer flip only).
7152
+ *
7153
+ * The target may be any of the workflow's published revisions.
7154
+ * Activating the draft requires `allowDraft: true` and a UI warning
7155
+ * confirmation.
7156
+ */
7157
+ async activateWorkflowRevision(wid, workflowId, revisionId, data = {}) {
6788
7158
  return this.fetch(
6789
- `w/${wid}/workflows/${workflowUuid}/versions/${versionNumber}`,
6790
- { method: "PATCH", body: JSON.stringify(data) }
7159
+ `w/${wid}/workflows/${workflowId}/revisions/${revisionId}/activate`,
7160
+ {
7161
+ method: "POST",
7162
+ body: JSON.stringify(data)
7163
+ }
6791
7164
  );
6792
7165
  }
6793
- /** Activate a published version. */
6794
- async activateWorkflowVersion(wid, workflowUuid, versionNumber) {
7166
+ /** Update a revision's curation metadata (label + publish notes).
7167
+ *
7168
+ * Applies to both the draft and published revisions; it is not a graph
7169
+ * change, so it never marks the draft dirty.
7170
+ */
7171
+ async updateWorkflowRevisionMetadata(wid, workflowId, revisionId, data) {
6795
7172
  return this.fetch(
6796
- `w/${wid}/workflows/${workflowUuid}/versions/${versionNumber}/activate`,
7173
+ `w/${wid}/workflows/${workflowId}/revisions/${revisionId}`,
6797
7174
  {
6798
- method: "POST"
7175
+ method: "PATCH",
7176
+ body: JSON.stringify(data)
6799
7177
  }
6800
7178
  );
6801
7179
  }
6802
- /** Deactivate a published version. */
6803
- async deactivateWorkflowVersion(wid, workflowUuid, versionNumber) {
7180
+ /** Compare two revisions of the same workflow.
7181
+ *
7182
+ * `against` is a revision id or UUID; when omitted the diff compares the
7183
+ * named revision against the workflow's draft. Tasks are matched by
7184
+ * stable lineage, so a rename reads as a changed `name` field.
7185
+ */
7186
+ async diffWorkflowRevisions(wid, workflowId, revisionId, against) {
7187
+ const qs = against !== void 0 ? `?against=${encodeURIComponent(String(against))}` : "";
6804
7188
  return this.fetch(
6805
- `w/${wid}/workflows/${workflowUuid}/versions/${versionNumber}/deactivate`,
6806
- {
6807
- method: "POST"
6808
- }
7189
+ `w/${wid}/workflows/${workflowId}/revisions/${revisionId}/diff${qs}`
6809
7190
  );
6810
7191
  }
6811
- /** Compare two workflow versions (0 = draft). */
6812
- async diffWorkflowVersions(wid, workflowUuid, fromVersion, toVersion) {
7192
+ /** Branch a published revision into the workflow's draft ("edit this
7193
+ * revision"): the draft becomes a fresh clone of the named published
7194
+ * revision. Pass `discardDraftChanges` to replace a dirty draft.
7195
+ */
7196
+ async editWorkflowRevisionAsDraft(wid, workflowId, revisionId, data = {}) {
6813
7197
  return this.fetch(
6814
- `w/${wid}/workflows/${workflowUuid}/versions/diff?from=${fromVersion}&to=${toVersion}`
7198
+ `w/${wid}/workflows/${workflowId}/revisions/${revisionId}/edit`,
7199
+ {
7200
+ method: "POST",
7201
+ body: JSON.stringify(data)
7202
+ }
6815
7203
  );
6816
7204
  }
6817
7205
  };
@@ -6952,11 +7340,14 @@ var Scope = /* @__PURE__ */ ((Scope2) => {
6952
7340
  Scope2["ANALYTICS_READ"] = "analytics:read";
6953
7341
  Scope2["OPERATOR_READ"] = "operator:read";
6954
7342
  Scope2["OPERATOR_WRITE"] = "operator:write";
7343
+ Scope2["EXPORT_READ"] = "export:read";
7344
+ Scope2["EXPORT_WRITE"] = "export:write";
7345
+ Scope2["EXPORT_ADMIN"] = "export:admin";
6955
7346
  Scope2["ORG_INFO"] = "org:info";
6956
7347
  Scope2["ORG_READ"] = "org:read";
6957
7348
  Scope2["ORG_WRITE"] = "org:write";
6958
7349
  Scope2["ORG_ADMIN"] = "org:admin";
6959
- Scope2["ORG_BILLING"] = "org:billing";
7350
+ Scope2["ORG_MANAGE_ADMINS"] = "org:manage_admins";
6960
7351
  Scope2["ORG_DELETE"] = "org:delete";
6961
7352
  return Scope2;
6962
7353
  })(Scope || {});
@@ -7031,6 +7422,7 @@ var EventRuleEventType = /* @__PURE__ */ ((EventRuleEventType2) => {
7031
7422
  EventRuleEventType2["MEMBER_LEFT"] = "workspace:member_left";
7032
7423
  EventRuleEventType2["DATA_RECORD_CREATED"] = "data_record:created";
7033
7424
  EventRuleEventType2["DATA_RECORD_UPDATED"] = "data_record:updated";
7425
+ EventRuleEventType2["DATA_RECORD_CHANGED"] = "data_record:changed";
7034
7426
  EventRuleEventType2["CHAT_CREATED"] = "chat:created";
7035
7427
  EventRuleEventType2["CHAT_CALLBACK"] = "chat:callback";
7036
7428
  EventRuleEventType2["MEMBER_UPDATED"] = "member:updated";
@@ -7109,7 +7501,6 @@ var WorkspaceFeature = /* @__PURE__ */ ((WorkspaceFeature2) => {
7109
7501
  WorkspaceFeature2["GCALENDAR"] = "gcalendar";
7110
7502
  WorkspaceFeature2["MONDAY"] = "monday";
7111
7503
  WorkspaceFeature2["RESELL_PRODUCTS"] = "resell_products";
7112
- WorkspaceFeature2["HIPAA_COMPLIANCE"] = "hipaa_compliance";
7113
7504
  WorkspaceFeature2["SOC2_COMPLIANCE"] = "soc2_compliance";
7114
7505
  WorkspaceFeature2["EHR_FHIR"] = "ehr_fhir";
7115
7506
  WorkspaceFeature2["EHR_ECLINICALWORKS"] = "ehr_eclinicalworks";
@@ -7119,7 +7510,6 @@ var WorkspaceFeature = /* @__PURE__ */ ((WorkspaceFeature2) => {
7119
7510
  WorkspaceFeature2["CONFLUENCE"] = "confluence";
7120
7511
  WorkspaceFeature2["AGENT_MEMORY"] = "agent_memory";
7121
7512
  WorkspaceFeature2["IMAGE_GENERATION"] = "image_generation";
7122
- WorkspaceFeature2["WORKFLOW_VERSIONING"] = "workflow_versioning";
7123
7513
  return WorkspaceFeature2;
7124
7514
  })(WorkspaceFeature || {});
7125
7515
  var MemberFeature = /* @__PURE__ */ ((MemberFeature2) => {
@@ -7133,7 +7523,6 @@ var MemberFeature = /* @__PURE__ */ ((MemberFeature2) => {
7133
7523
  var OrgFeature = /* @__PURE__ */ ((OrgFeature2) => {
7134
7524
  OrgFeature2["SSO"] = "sso";
7135
7525
  OrgFeature2["AUDIT_LOGS"] = "audit_logs";
7136
- OrgFeature2["HIPAA_COMPLIANCE"] = "hipaa_compliance";
7137
7526
  OrgFeature2["SOC2_COMPLIANCE"] = "soc2_compliance";
7138
7527
  OrgFeature2["CUSTOM_BRANDING"] = "custom_branding";
7139
7528
  OrgFeature2["PRIORITY_SUPPORT"] = "priority_support";
@@ -7288,8 +7677,15 @@ var AccessGrantResourceType = /* @__PURE__ */ ((AccessGrantResourceType2) => {
7288
7677
  AccessGrantResourceType2["SITE"] = "site";
7289
7678
  AccessGrantResourceType2["ASSIGNMENT"] = "assignment";
7290
7679
  AccessGrantResourceType2["APP_CONNECTION"] = "app_connection";
7680
+ AccessGrantResourceType2["CAPABILITY"] = "capability";
7291
7681
  return AccessGrantResourceType2;
7292
7682
  })(AccessGrantResourceType || {});
7683
+ var CapabilityClass = /* @__PURE__ */ ((CapabilityClass2) => {
7684
+ CapabilityClass2["TOOL_ALWAYS_ALLOW"] = "tool.always_allow";
7685
+ CapabilityClass2["SELF_MODIFICATION_SCHEDULE"] = "self_modification.schedule";
7686
+ CapabilityClass2["ATTENTION_INTERRUPT_RUNG"] = "attention.interrupt_rung";
7687
+ return CapabilityClass2;
7688
+ })(CapabilityClass || {});
7293
7689
  var AccessGrantStatus = /* @__PURE__ */ ((AccessGrantStatus2) => {
7294
7690
  AccessGrantStatus2["PENDING"] = "pending";
7295
7691
  AccessGrantStatus2["ACTIVE"] = "active";
@@ -7613,6 +8009,35 @@ var WorkspacesApi = class extends BaseApiClient {
7613
8009
  async getWorkspaceSiteDomains(wid) {
7614
8010
  return this.fetch(`w/${wid}/domains/for-site`);
7615
8011
  }
8012
+ /**
8013
+ * List org domains available for enabling embeddable widgets. Widgets ride
8014
+ * on domain-ownership verification only, so the consumer gates selection on
8015
+ * `ownershipStatus === 'verified'`.
8016
+ */
8017
+ async getWorkspaceWidgetDomains(wid) {
8018
+ return this.fetch(`w/${wid}/domains/for-widget`);
8019
+ }
8020
+ /** List this workspace's widget-domain enablement entries. */
8021
+ async listWidgetDomains(wid) {
8022
+ return this.fetch(`w/${wid}/widget-domains`);
8023
+ }
8024
+ /**
8025
+ * Enable/replace the set of widgets on one verified org domain. Idempotent
8026
+ * upsert keyed by `orgDomainUuid`; the server rejects unverified domains
8027
+ * (400) and cross-org domains (404).
8028
+ */
8029
+ async upsertWidgetDomain(wid, orgDomainUuid, body) {
8030
+ return this.fetch(`w/${wid}/widget-domains/${orgDomainUuid}`, {
8031
+ method: "PUT",
8032
+ body: JSON.stringify(body)
8033
+ });
8034
+ }
8035
+ /** Remove this workspace's widget entry for a domain (disables all widgets). */
8036
+ async deleteWidgetDomain(wid, orgDomainUuid) {
8037
+ await this.fetch(`w/${wid}/widget-domains/${orgDomainUuid}`, {
8038
+ method: "DELETE"
8039
+ });
8040
+ }
7616
8041
  /** List client workspaces managed by this reseller workspace, paginated. */
7617
8042
  async getResellerWorkspaces(wid, params) {
7618
8043
  const query = new URLSearchParams();
@@ -7772,7 +8197,7 @@ var WorkspacesApi = class extends BaseApiClient {
7772
8197
  /**
7773
8198
  * Get billing dashboard data for a workspace.
7774
8199
  *
7775
- * This endpoint is available to organization owners (with org:billing scope).
8200
+ * This endpoint is available to organization owners (with org:info scope).
7776
8201
  * Superusers should use the admin endpoint via getWorkspaceUsageDashboard.
7777
8202
  *
7778
8203
  * Returns comprehensive billing information including:
@@ -7786,6 +8211,51 @@ var WorkspacesApi = class extends BaseApiClient {
7786
8211
  }
7787
8212
  };
7788
8213
 
8214
+ // src/api/dashboards.ts
8215
+ var DashboardsApi = class extends BaseApiClient {
8216
+ /** List all dashboards for the workspace, in tab order. */
8217
+ async getDashboards(wid) {
8218
+ return this.fetch(`w/${wid}/dashboards`);
8219
+ }
8220
+ /** Get a dashboard by ID. */
8221
+ async getDashboard(wid, id) {
8222
+ return this.fetch(`w/${wid}/dashboards/${id}`);
8223
+ }
8224
+ /** Create a named dashboard, optionally with an initial widget list. */
8225
+ async createDashboard(wid, body) {
8226
+ return this.fetch(`w/${wid}/dashboards`, {
8227
+ method: "POST",
8228
+ body: JSON.stringify(body)
8229
+ });
8230
+ }
8231
+ /** Update a dashboard's name, position, or widget list (full replace). */
8232
+ async updateDashboard(wid, id, body) {
8233
+ return this.fetch(`w/${wid}/dashboards/${id}`, {
8234
+ method: "PATCH",
8235
+ body: JSON.stringify(body)
8236
+ });
8237
+ }
8238
+ /** Delete a dashboard. */
8239
+ async deleteDashboard(wid, id) {
8240
+ await this.fetch(`w/${wid}/dashboards/${id}`, { method: "DELETE" });
8241
+ }
8242
+ /** Per-channel chat volume in the window + live needs-response backlog. */
8243
+ async getDashboardChannelStats(wid, options) {
8244
+ const params = new URLSearchParams();
8245
+ if (options?.hours !== void 0) params.append("hours", options.hours.toString());
8246
+ const query = params.toString();
8247
+ return this.fetch(
8248
+ `w/${wid}/dashboards/stats/channels${query ? `?${query}` : ""}`
8249
+ );
8250
+ }
8251
+ /** Assignment status rollup per root workflow. */
8252
+ async getDashboardWorkflowAssignmentStats(wid) {
8253
+ return this.fetch(
8254
+ `w/${wid}/dashboards/stats/workflow-assignments`
8255
+ );
8256
+ }
8257
+ };
8258
+
7789
8259
  // src/api/teams-apps.ts
7790
8260
  var TeamsAppsApi = class extends BaseApiClient {
7791
8261
  /**
@@ -7960,6 +8430,25 @@ var PatientSyncConnectionsApi = class extends BaseApiClient {
7960
8430
  }
7961
8431
  };
7962
8432
 
8433
+ // src/api/motd.ts
8434
+ var MotdApi = class extends BaseApiClient {
8435
+ /**
8436
+ * The Message-of-the-Day tip for the workspace on a given date.
8437
+ *
8438
+ * `date` is an ISO `YYYY-MM-DD` string (defaults to today, UTC, when
8439
+ * omitted); `offset` advances the rotation ("show another"). Selection is
8440
+ * deterministic — same date + workspace + offset always returns the same
8441
+ * tip — and cycles through the tip list.
8442
+ */
8443
+ async getMotd(wid, options) {
8444
+ const params = new URLSearchParams();
8445
+ if (options?.date !== void 0) params.append("date", options.date);
8446
+ if (options?.offset !== void 0) params.append("offset", options.offset.toString());
8447
+ const query = params.toString();
8448
+ return this.fetch(`w/${wid}/motd${query ? `?${query}` : ""}`);
8449
+ }
8450
+ };
8451
+
7963
8452
  // src/app-context.ts
7964
8453
  function formatAppContextAsMarkdown(context) {
7965
8454
  if (!context) {
@@ -8043,6 +8532,7 @@ function createApiModules(apiKey, baseUrl, customFetch) {
8043
8532
  customers: new CustomersApi(apiKey, baseUrl, customFetch),
8044
8533
  resellers: new ResellersApi(apiKey, baseUrl, customFetch),
8045
8534
  customToolkits: new CustomToolkitsApi(apiKey, baseUrl, customFetch),
8535
+ dashboards: new DashboardsApi(apiKey, baseUrl, customFetch),
8046
8536
  dataTypes: new DataTypesApi(apiKey, baseUrl, customFetch),
8047
8537
  discordBots: new DiscordBotsApi(apiKey, baseUrl, customFetch),
8048
8538
  slackApps: new SlackAppsApi(apiKey, baseUrl, customFetch),
@@ -8063,6 +8553,7 @@ function createApiModules(apiKey, baseUrl, customFetch) {
8063
8553
  mcpServers: new McpServersApi(apiKey, baseUrl, customFetch),
8064
8554
  members: new MembersApi(apiKey, baseUrl, customFetch),
8065
8555
  milestones: new MilestonesApi(apiKey, baseUrl, customFetch),
8556
+ motd: new MotdApi(apiKey, baseUrl, customFetch),
8066
8557
  confluence: new ConfluenceApi(apiKey, baseUrl, customFetch),
8067
8558
  mondayIntegration: new MondayIntegrationApi(apiKey, baseUrl, customFetch),
8068
8559
  notificationRules: new NotificationRulesApi(apiKey, baseUrl, customFetch),
@@ -8095,7 +8586,7 @@ function createApiModules(apiKey, baseUrl, customFetch) {
8095
8586
 
8096
8587
  // src/client/workspace-client.ts
8097
8588
  var WORKSPACE_METHOD_NAMES = [
8098
- "activateWorkflowVersion",
8589
+ "activateWorkflowRevision",
8099
8590
  "addGroupMember",
8100
8591
  "advanceStep",
8101
8592
  "approveWorkspaceInvitation",
@@ -8158,6 +8649,7 @@ var WORKSPACE_METHOD_NAMES = [
8158
8649
  "createCustomTool",
8159
8650
  "createCustomToolkit",
8160
8651
  "createDataRecord",
8652
+ "createDataRecordFilter",
8161
8653
  "createDataType",
8162
8654
  "createDiscordBot",
8163
8655
  "createEventRule",
@@ -8165,7 +8657,6 @@ var WORKSPACE_METHOD_NAMES = [
8165
8657
  "createExperiment",
8166
8658
  "createExperimentAssignment",
8167
8659
  "createExperimentGroup",
8168
- "convertMemberFilterToQuery",
8169
8660
  "createFhirConnection",
8170
8661
  "createFile",
8171
8662
  "createFileLabel",
@@ -8205,7 +8696,6 @@ var WORKSPACE_METHOD_NAMES = [
8205
8696
  "createWorkflowOutboundVoiceChat",
8206
8697
  "createWorkspaceMember",
8207
8698
  "createWorkspaceSupportRequest",
8208
- "deactivateWorkflowVersion",
8209
8699
  "deleteAbility",
8210
8700
  "deleteAgent",
8211
8701
  "deleteAssignment",
@@ -8221,6 +8711,7 @@ var WORKSPACE_METHOD_NAMES = [
8221
8711
  "deleteCustomTool",
8222
8712
  "deleteCustomToolkit",
8223
8713
  "deleteDataRecord",
8714
+ "deleteDataRecordFilter",
8224
8715
  "deleteDataType",
8225
8716
  "deleteDiscordBot",
8226
8717
  "deleteEnrollment",
@@ -8263,6 +8754,7 @@ var WORKSPACE_METHOD_NAMES = [
8263
8754
  "deleteSupervisor",
8264
8755
  "deleteTask",
8265
8756
  "deleteTeamsApp",
8757
+ "deleteWidgetDomain",
8266
8758
  "deleteWorkflow",
8267
8759
  "deleteWorkflowContributor",
8268
8760
  "deleteWorkflowNote",
@@ -8270,7 +8762,7 @@ var WORKSPACE_METHOD_NAMES = [
8270
8762
  "deleteWorkspaceInvitationAdmin",
8271
8763
  "denyWorkspaceInvitation",
8272
8764
  "describeSalesforceObject",
8273
- "diffWorkflowVersions",
8765
+ "diffWorkflowRevisions",
8274
8766
  "disableConfluence",
8275
8767
  "disableCustomToolkit",
8276
8768
  "disableHubspot",
@@ -8286,6 +8778,7 @@ var WORKSPACE_METHOD_NAMES = [
8286
8778
  "dismissAllNotifications",
8287
8779
  "dismissNotification",
8288
8780
  "downloadEmailAttachment",
8781
+ "editWorkflowRevisionAsDraft",
8289
8782
  "enableConfluence",
8290
8783
  "enableCustomToolkit",
8291
8784
  "enableHubspot",
@@ -8364,6 +8857,7 @@ var WORKSPACE_METHOD_NAMES = [
8364
8857
  "getCalendarSchedules",
8365
8858
  "getCalendars",
8366
8859
  "getCelContext",
8860
+ "getCharlestonTestDeliveryRecipients",
8367
8861
  "getChat",
8368
8862
  "getChatAssignmentTasks",
8369
8863
  "getChatCallbacks",
@@ -8397,6 +8891,9 @@ var WORKSPACE_METHOD_NAMES = [
8397
8891
  "getCustomToolkits",
8398
8892
  "getDataRecord",
8399
8893
  "getDataRecordChanges",
8894
+ "getDataRecordFilter",
8895
+ "getDataRecordFilterCount",
8896
+ "getDataRecordFilters",
8400
8897
  "getDataRecords",
8401
8898
  "getDataType",
8402
8899
  "getDataTypeByUuid",
@@ -8420,16 +8917,20 @@ var WORKSPACE_METHOD_NAMES = [
8420
8917
  "getFhirConnections",
8421
8918
  "getFieldIndexStatus",
8422
8919
  "getFile",
8920
+ "resolveFilePath",
8423
8921
  "getFileLabel",
8424
8922
  "getFileLabelByUuid",
8425
8923
  "getFileLabels",
8426
8924
  "getFileSharing",
8925
+ "getFileVersionContentsUrl",
8926
+ "getFileVersionDiff",
8427
8927
  "getFiles",
8428
8928
  "getFirstRunState",
8429
8929
  "getFolder",
8430
8930
  "getFolderSharing",
8431
8931
  "getFolders",
8432
8932
  "getGoogleCalendarStatus",
8933
+ "getGranteeGrants",
8433
8934
  "getHealthieAvailableSlots",
8434
8935
  "getHealthieReconciliationMatches",
8435
8936
  "getHealthieStatus",
@@ -8475,6 +8976,7 @@ var WORKSPACE_METHOD_NAMES = [
8475
8976
  "getMemberLabelByUuid",
8476
8977
  "getMemberLabels",
8477
8978
  "getMemberMemories",
8979
+ "getMemberMemory",
8478
8980
  "getMemberRecordCounts",
8479
8981
  "getMemberRole",
8480
8982
  "getMemberRoleByUuid",
@@ -8523,6 +9025,7 @@ var WORKSPACE_METHOD_NAMES = [
8523
9025
  "getPublicProducts",
8524
9026
  "getQualification",
8525
9027
  "getQualifications",
9028
+ "getRecordingInfo",
8526
9029
  "getResellerWorkspaces",
8527
9030
  "getRoutine",
8528
9031
  "getRoutineRuns",
@@ -8577,17 +9080,17 @@ var WORKSPACE_METHOD_NAMES = [
8577
9080
  "getWorkflowAccessValidation",
8578
9081
  "getWorkflowActivity",
8579
9082
  "getWorkflowConfigValidation",
9083
+ "getWorkflowFeedback",
8580
9084
  "getWorkflowContributors",
8581
9085
  "getWorkflowDeletionPreview",
8582
9086
  "getWorkflowDiagram",
8583
9087
  "getWorkflowNotes",
9088
+ "getWorkflowRevision",
9089
+ "getWorkflowRevisions",
8584
9090
  "getWorkflowRouteDryRun",
8585
9091
  "getWorkflowTaskAssignmentStats",
8586
9092
  "getWorkflowTemplates",
8587
9093
  "getWorkflowThumbnailUrl",
8588
- "getWorkflowVersion",
8589
- "getWorkflowVersionActive",
8590
- "getWorkflowVersions",
8591
9094
  "getWorkflows",
8592
9095
  "getWorkflowsActivityBatch",
8593
9096
  "getWorkspace",
@@ -8601,6 +9104,7 @@ var WORKSPACE_METHOD_NAMES = [
8601
9104
  "getWorkspaceNotices",
8602
9105
  "getWorkspaceProduct",
8603
9106
  "getWorkspaceSiteDomains",
9107
+ "getWorkspaceWidgetDomains",
8604
9108
  "getWorkspaceSubscriptions",
8605
9109
  "getWorkspaceSupportRequest",
8606
9110
  "getWorkspaceThemes",
@@ -8612,6 +9116,9 @@ var WORKSPACE_METHOD_NAMES = [
8612
9116
  "initiateCall",
8613
9117
  "initiateOutboundCall",
8614
9118
  "inspectPrompt",
9119
+ "installHubspot",
9120
+ "installMondayConnection",
9121
+ "installSalesforce",
8615
9122
  "inviteMemberCredentialUpdate",
8616
9123
  "inviteToWorkspace",
8617
9124
  "leaveWorkspace",
@@ -8623,13 +9130,13 @@ var WORKSPACE_METHOD_NAMES = [
8623
9130
  "linkMemberToSalesforce",
8624
9131
  "linkPhoneNumber",
8625
9132
  "listAbilities",
8626
- "listAgentAbilities",
8627
9133
  "listAppConnections",
8628
9134
  "listAvailableAppConnections",
8629
9135
  "listConfluencePages",
8630
9136
  "listConfluenceSpaces",
8631
9137
  "listConnectionMemberFieldKeys",
8632
9138
  "setDefaultGooglePlatformAccount",
9139
+ "listFileVersions",
8633
9140
  "listGoogleCalendars",
8634
9141
  "listHealthieAppointmentTypes",
8635
9142
  "listHealthiePatients",
@@ -8639,6 +9146,7 @@ var WORKSPACE_METHOD_NAMES = [
8639
9146
  "listScenarios",
8640
9147
  "listSnippets",
8641
9148
  "listTestChatRuns",
9149
+ "listWidgetDomains",
8642
9150
  "listWorkspaceInvitationsAdmin",
8643
9151
  "listWorkspaceSupportRequests",
8644
9152
  "markEmailAsRead",
@@ -8646,14 +9154,16 @@ var WORKSPACE_METHOD_NAMES = [
8646
9154
  "markNotificationAsRead",
8647
9155
  "previewImportMembers",
8648
9156
  "previewImportWorkspace",
9157
+ "previewRoutineWorkflowAccess",
8649
9158
  "previewSchedule",
8650
9159
  "previewTTS",
8651
9160
  "previewTemplate",
8652
9161
  "previewThinkingSound",
8653
9162
  "previewWorkspaceImport",
8654
9163
  "provisionClientWorkspace",
8655
- "publishWorkflowVersion",
9164
+ "publishWorkflowRevision",
8656
9165
  "rateMessage",
9166
+ "getChatFeedback",
8657
9167
  "reenrollMember",
8658
9168
  "registerLinkedRolesMetadata",
8659
9169
  "registerPushSubscription",
@@ -8670,8 +9180,8 @@ var WORKSPACE_METHOD_NAMES = [
8670
9180
  "requestWorkspaceMembership",
8671
9181
  "resetRoutineRuns",
8672
9182
  "resolveAccessGrant",
8673
- "resolveAgentTools",
8674
9183
  "resolveAnonymousMember",
9184
+ "restoreFileVersion",
8675
9185
  "revokeAccessGrant",
8676
9186
  "revokeApiKey",
8677
9187
  "revokeICalToken",
@@ -8737,6 +9247,7 @@ var WORKSPACE_METHOD_NAMES = [
8737
9247
  "updateCustomTool",
8738
9248
  "updateCustomToolkit",
8739
9249
  "updateDataRecord",
9250
+ "updateDataRecordFilter",
8740
9251
  "updateDataType",
8741
9252
  "updateDiscordBot",
8742
9253
  "updateEventAttendee",
@@ -8789,12 +9300,13 @@ var WORKSPACE_METHOD_NAMES = [
8789
9300
  "updateWorkflow",
8790
9301
  "updateWorkflowContributor",
8791
9302
  "updateWorkflowNote",
8792
- "updateWorkflowVersion",
9303
+ "updateWorkflowRevisionMetadata",
8793
9304
  "updateWorkspace",
8794
9305
  "updateWorkspaceDefaults",
8795
9306
  "updateWorkspaceInvitationAdmin",
8796
9307
  "updateWorkspaceThemes",
8797
9308
  "upsertDataRecord",
9309
+ "upsertWidgetDomain",
8798
9310
  "validateDataTypeSlug",
8799
9311
  "validateWorkflowName"
8800
9312
  ];
@@ -8826,6 +9338,7 @@ function bindAccessGrantsMethods(target, accessGrants) {
8826
9338
  target.revokeAccessGrant = accessGrants.revokeAccessGrant.bind(accessGrants);
8827
9339
  target.getAccessGrants = accessGrants.getAccessGrants.bind(accessGrants);
8828
9340
  target.getMemberGrants = accessGrants.getMemberGrants.bind(accessGrants);
9341
+ target.getGranteeGrants = accessGrants.getGranteeGrants.bind(accessGrants);
8829
9342
  }
8830
9343
 
8831
9344
  // src/client/bindings/agent-tasks.ts
@@ -8845,8 +9358,6 @@ function bindAgentsMethods(target, agents) {
8845
9358
  target.deleteAgent = agents.deleteAgent.bind(agents);
8846
9359
  target.archiveAgent = agents.archiveAgent.bind(agents);
8847
9360
  target.unarchiveAgent = agents.unarchiveAgent.bind(agents);
8848
- target.resolveAgentTools = agents.resolveAgentTools.bind(agents);
8849
- target.listAgentAbilities = agents.listAgentAbilities.bind(agents);
8850
9361
  }
8851
9362
 
8852
9363
  // src/client/bindings/tasks.ts
@@ -8865,6 +9376,7 @@ function bindTasksMethods(target, tasks, abilities) {
8865
9376
  target.createAbility = abilities.createAbility.bind(abilities);
8866
9377
  target.updateAbility = abilities.updateAbility.bind(abilities);
8867
9378
  target.deleteAbility = abilities.deleteAbility.bind(abilities);
9379
+ target.getCharlestonTestDeliveryRecipients = abilities.getCharlestonTestDeliveryRecipients.bind(abilities);
8868
9380
  }
8869
9381
 
8870
9382
  // src/client/bindings/chats.ts
@@ -8885,6 +9397,8 @@ function bindChatsMethods(target, chats) {
8885
9397
  target.createWorkflowOutboundVoiceChat = chats.createWorkflowOutboundVoiceChat.bind(chats);
8886
9398
  target.deleteChat = chats.deleteChat.bind(chats);
8887
9399
  target.updateChat = chats.updateChat.bind(chats);
9400
+ target.getChatModelOverride = chats.getChatModelOverride.bind(chats);
9401
+ target.updateChatModelOverride = chats.updateChatModelOverride.bind(chats);
8888
9402
  target.updateChatMute = chats.updateChatMute.bind(chats);
8889
9403
  target.updateChatNeedsResponse = chats.updateChatNeedsResponse.bind(chats);
8890
9404
  target.summarizeChat = chats.summarizeChat.bind(chats);
@@ -8894,6 +9408,7 @@ function bindChatsMethods(target, chats) {
8894
9408
  target.initiateOutboundCall = chats.initiateOutboundCall.bind(chats);
8895
9409
  target.sendAssistantMessage = chats.sendAssistantMessage.bind(chats);
8896
9410
  target.rateMessage = chats.rateMessage.bind(chats);
9411
+ target.getChatFeedback = chats.getChatFeedback.bind(chats);
8897
9412
  target.getChatAssignmentTasks = chats.getChatAssignmentTasks.bind(chats);
8898
9413
  target.createChatCompletion = chats.createChatCompletion.bind(chats);
8899
9414
  target.exportChats = chats.exportChats.bind(chats);
@@ -8922,11 +9437,28 @@ function bindCallsMethods(target, calls, cel) {
8922
9437
  target.initiateCall = calls.initiateCall.bind(calls);
8923
9438
  target.getVoiceToken = calls.getVoiceToken.bind(calls);
8924
9439
  target.getMessageTiming = calls.getMessageTiming.bind(calls);
9440
+ target.getRecordingInfo = calls.getRecordingInfo.bind(calls);
8925
9441
  target.listChatRecordings = calls.listChatRecordings.bind(calls);
8926
9442
  target.getCallRecordingDownloadUrl = calls.getCallRecordingDownloadUrl.bind(calls);
8927
9443
  target.getCelContext = cel.getCelContext.bind(cel);
8928
9444
  }
8929
9445
 
9446
+ // src/client/bindings/dashboards.ts
9447
+ function bindDashboardsMethods(target, dashboards) {
9448
+ target.getDashboards = dashboards.getDashboards.bind(dashboards);
9449
+ target.getDashboard = dashboards.getDashboard.bind(dashboards);
9450
+ target.createDashboard = dashboards.createDashboard.bind(dashboards);
9451
+ target.updateDashboard = dashboards.updateDashboard.bind(dashboards);
9452
+ target.deleteDashboard = dashboards.deleteDashboard.bind(dashboards);
9453
+ target.getDashboardChannelStats = dashboards.getDashboardChannelStats.bind(dashboards);
9454
+ target.getDashboardWorkflowAssignmentStats = dashboards.getDashboardWorkflowAssignmentStats.bind(dashboards);
9455
+ }
9456
+
9457
+ // src/client/bindings/motd.ts
9458
+ function bindMotdMethods(target, motd) {
9459
+ target.getMotd = motd.getMotd.bind(motd);
9460
+ }
9461
+
8930
9462
  // src/client/bindings/data-types.ts
8931
9463
  function bindDataTypesMethods(target, dataTypes) {
8932
9464
  target.getDataTypes = dataTypes.getDataTypes.bind(dataTypes);
@@ -8950,6 +9482,12 @@ function bindDataTypesMethods(target, dataTypes) {
8950
9482
  target.getFieldIndexStatus = dataTypes.getFieldIndexStatus.bind(dataTypes);
8951
9483
  target.validateDataTypeSlug = dataTypes.validateDataTypeSlug.bind(dataTypes);
8952
9484
  target.getMemberRecordCounts = dataTypes.getMemberRecordCounts.bind(dataTypes);
9485
+ target.getDataRecordFilters = dataTypes.getDataRecordFilters.bind(dataTypes);
9486
+ target.getDataRecordFilter = dataTypes.getDataRecordFilter.bind(dataTypes);
9487
+ target.createDataRecordFilter = dataTypes.createDataRecordFilter.bind(dataTypes);
9488
+ target.updateDataRecordFilter = dataTypes.updateDataRecordFilter.bind(dataTypes);
9489
+ target.deleteDataRecordFilter = dataTypes.deleteDataRecordFilter.bind(dataTypes);
9490
+ target.getDataRecordFilterCount = dataTypes.getDataRecordFilterCount.bind(dataTypes);
8953
9491
  }
8954
9492
 
8955
9493
  // src/client/bindings/members.ts
@@ -8976,7 +9514,6 @@ function bindMembersMethods(target, members) {
8976
9514
  target.getMemberFilter = members.getMemberFilter.bind(members);
8977
9515
  target.createMemberFilter = members.createMemberFilter.bind(members);
8978
9516
  target.updateMemberFilter = members.updateMemberFilter.bind(members);
8979
- target.convertMemberFilterToQuery = members.convertMemberFilterToQuery.bind(members);
8980
9517
  target.deleteMemberFilter = members.deleteMemberFilter.bind(members);
8981
9518
  target.getMemberFilterCount = members.getMemberFilterCount.bind(members);
8982
9519
  target.getMemberLabels = members.getMemberLabels.bind(members);
@@ -9004,6 +9541,7 @@ function bindMembersMethods(target, members) {
9004
9541
  target.resolveAnonymousMember = members.resolveAnonymousMember.bind(members);
9005
9542
  target.expireAnonymousMember = members.expireAnonymousMember.bind(members);
9006
9543
  target.getMemberMemories = members.getMemberMemories.bind(members);
9544
+ target.getMemberMemory = members.getMemberMemory.bind(members);
9007
9545
  target.createMemberMemory = members.createMemberMemory.bind(members);
9008
9546
  target.deleteMemberMemory = members.deleteMemberMemory.bind(members);
9009
9547
  target.getMemberSyncLinks = members.getMemberSyncLinks.bind(members);
@@ -9061,6 +9599,10 @@ function bindWorkspacesMethods(target, workspaces, signupRequests) {
9061
9599
  target.listPushSubscriptions = workspaces.listPushSubscriptions.bind(workspaces);
9062
9600
  target.getWorkspaceEmailDomains = workspaces.getWorkspaceEmailDomains.bind(workspaces);
9063
9601
  target.getWorkspaceSiteDomains = workspaces.getWorkspaceSiteDomains.bind(workspaces);
9602
+ target.getWorkspaceWidgetDomains = workspaces.getWorkspaceWidgetDomains.bind(workspaces);
9603
+ target.listWidgetDomains = workspaces.listWidgetDomains.bind(workspaces);
9604
+ target.upsertWidgetDomain = workspaces.upsertWidgetDomain.bind(workspaces);
9605
+ target.deleteWidgetDomain = workspaces.deleteWidgetDomain.bind(workspaces);
9064
9606
  target.listWorkspaceInvitations = signupRequests.listWorkspaceInvitations.bind(signupRequests);
9065
9607
  target.listWorkspaceInvitationsAdmin = signupRequests.listWorkspaceInvitationsAdmin.bind(signupRequests);
9066
9608
  target.getWorkspaceInvitation = signupRequests.getWorkspaceInvitation.bind(signupRequests);
@@ -9080,6 +9622,7 @@ function bindWorkspacesMethods(target, workspaces, signupRequests) {
9080
9622
  function bindAuthMethods(target, auth, assignments) {
9081
9623
  target.getUserAccount = auth.getUserAccount.bind(auth);
9082
9624
  target.updateUserAccount = auth.updateUserAccount.bind(auth);
9625
+ target.recordAcquisition = auth.recordAcquisition.bind(auth);
9083
9626
  target.login = auth.login.bind(auth);
9084
9627
  target.resendCode = auth.resendCode.bind(auth);
9085
9628
  target.verifyCodeWith2FA = auth.verifyCodeWith2FA.bind(auth);
@@ -9190,6 +9733,11 @@ function bindFilesMethods(target, files) {
9190
9733
  target.uploadFile = files.uploadFile.bind(files);
9191
9734
  target.updateFile = files.updateFile.bind(files);
9192
9735
  target.deleteFile = files.deleteFile.bind(files);
9736
+ target.resolveFilePath = files.resolveFilePath.bind(files);
9737
+ target.listFileVersions = files.listFileVersions.bind(files);
9738
+ target.getFileVersionDiff = files.getFileVersionDiff.bind(files);
9739
+ target.restoreFileVersion = files.restoreFileVersion.bind(files);
9740
+ target.getFileVersionContentsUrl = files.getFileVersionContentsUrl.bind(files);
9193
9741
  target.convertFile = files.convertFile.bind(files);
9194
9742
  target.generateFileUploadUrl = files.generateFileUploadUrl.bind(files);
9195
9743
  target.getFolders = files.getFolders.bind(files);
@@ -9240,6 +9788,7 @@ function bindEventsMethods(target, events) {
9240
9788
  target.getRoutineRuns = events.getRoutineRuns.bind(events);
9241
9789
  target.resetRoutineRuns = events.resetRoutineRuns.bind(events);
9242
9790
  target.previewSchedule = events.previewSchedule.bind(events);
9791
+ target.previewRoutineWorkflowAccess = events.previewRoutineWorkflowAccess.bind(events);
9243
9792
  }
9244
9793
 
9245
9794
  // src/client/bindings/experiments.ts
@@ -9284,18 +9833,18 @@ function bindWorkflowsMethods(target, workflows, workflowNotes, voice, superviso
9284
9833
  target.createWorkflowNote = workflowNotes.createWorkflowNote.bind(workflowNotes);
9285
9834
  target.updateWorkflowNote = workflowNotes.updateWorkflowNote.bind(workflowNotes);
9286
9835
  target.deleteWorkflowNote = workflowNotes.deleteWorkflowNote.bind(workflowNotes);
9836
+ target.getWorkflowFeedback = workflows.getWorkflowFeedback.bind(workflows);
9287
9837
  target.getWorkflowContributors = workflows.getWorkflowContributors.bind(workflows);
9288
9838
  target.createWorkflowContributor = workflows.createWorkflowContributor.bind(workflows);
9289
9839
  target.updateWorkflowContributor = workflows.updateWorkflowContributor.bind(workflows);
9290
9840
  target.deleteWorkflowContributor = workflows.deleteWorkflowContributor.bind(workflows);
9291
- target.getWorkflowVersions = workflows.getWorkflowVersions.bind(workflows);
9292
- target.getWorkflowVersionActive = workflows.getWorkflowVersionActive.bind(workflows);
9293
- target.getWorkflowVersion = workflows.getWorkflowVersion.bind(workflows);
9294
- target.publishWorkflowVersion = workflows.publishWorkflowVersion.bind(workflows);
9295
- target.updateWorkflowVersion = workflows.updateWorkflowVersion.bind(workflows);
9296
- target.activateWorkflowVersion = workflows.activateWorkflowVersion.bind(workflows);
9297
- target.deactivateWorkflowVersion = workflows.deactivateWorkflowVersion.bind(workflows);
9298
- target.diffWorkflowVersions = workflows.diffWorkflowVersions.bind(workflows);
9841
+ target.getWorkflowRevisions = workflows.getWorkflowRevisions.bind(workflows);
9842
+ target.getWorkflowRevision = workflows.getWorkflowRevision.bind(workflows);
9843
+ target.publishWorkflowRevision = workflows.publishWorkflowRevision.bind(workflows);
9844
+ target.activateWorkflowRevision = workflows.activateWorkflowRevision.bind(workflows);
9845
+ target.updateWorkflowRevisionMetadata = workflows.updateWorkflowRevisionMetadata.bind(workflows);
9846
+ target.diffWorkflowRevisions = workflows.diffWorkflowRevisions.bind(workflows);
9847
+ target.editWorkflowRevisionAsDraft = workflows.editWorkflowRevisionAsDraft.bind(workflows);
9299
9848
  target.getWorkspaceBuilders = workflows.getWorkspaceBuilders.bind(workflows);
9300
9849
  target.getWorkspaceBuilder = workflows.getWorkspaceBuilder.bind(workflows);
9301
9850
  target.buildWorkspace = workflows.buildWorkspace.bind(workflows);
@@ -9360,6 +9909,9 @@ function bindCommunicationsMethods(target, phoneNumbers, inboxes, notificationRu
9360
9909
  target.getArchiveBlockers = phoneNumbers.getArchiveBlockers.bind(phoneNumbers);
9361
9910
  target.archivePhoneNumber = phoneNumbers.archivePhoneNumber.bind(phoneNumbers);
9362
9911
  target.getPhoneNumberCalls = phoneNumbers.getPhoneNumberCalls.bind(phoneNumbers);
9912
+ target.getPhoneNumberOutboundAnalyticsSummary = phoneNumbers.getPhoneNumberOutboundAnalyticsSummary.bind(phoneNumbers);
9913
+ target.getPhoneNumberOutboundAnalyticsCalls = phoneNumbers.getPhoneNumberOutboundAnalyticsCalls.bind(phoneNumbers);
9914
+ target.exportPhoneNumberOutboundAnalyticsCsv = phoneNumbers.exportPhoneNumberOutboundAnalyticsCsv.bind(phoneNumbers);
9363
9915
  target.getPhoneNumberMessages = phoneNumbers.getPhoneNumberMessages.bind(phoneNumbers);
9364
9916
  target.getPhoneNumberVoicemails = phoneNumbers.getPhoneNumberVoicemails.bind(phoneNumbers);
9365
9917
  target.fetchVoicemailAudio = phoneNumbers.fetchVoicemailAudio.bind(phoneNumbers);
@@ -9489,6 +10041,7 @@ function bindIntegrationsMethods(target, mondayIntegration, discordBots, slackAp
9489
10041
  target.getMondayBoardColumns = mondayIntegration.getBoardColumns.bind(mondayIntegration);
9490
10042
  target.getMondayBoardGroups = mondayIntegration.getBoardGroups.bind(mondayIntegration);
9491
10043
  target.getMondayCurrentUserInfo = mondayIntegration.getCurrentUserInfo.bind(mondayIntegration);
10044
+ target.installMondayConnection = mondayIntegration.installMondayConnection.bind(mondayIntegration);
9492
10045
  target.configureMondayConnection = mondayIntegration.configureMondayConnection.bind(mondayIntegration);
9493
10046
  target.getMondayConnectionStatus = mondayIntegration.getMondayConnectionStatus.bind(mondayIntegration);
9494
10047
  target.authorizeMondayConnection = mondayIntegration.authorizeMondayConnection.bind(mondayIntegration);
@@ -9523,6 +10076,8 @@ function bindIntegrationsMethods(target, mondayIntegration, discordBots, slackAp
9523
10076
  target.getDiscordBotAccounts = discordBots.getDiscordBotAccounts.bind(discordBots);
9524
10077
  target.getMyCredentials = discordBots.getMyCredentials.bind(discordBots);
9525
10078
  target.unlinkCredential = discordBots.unlinkCredential.bind(discordBots);
10079
+ target.completeDiscordLink = discordBots.completeDiscordLink.bind(discordBots);
10080
+ target.discordLinkPreflight = discordBots.discordLinkPreflight.bind(discordBots);
9526
10081
  target.getSlackApps = slackApps.getSlackApps.bind(slackApps);
9527
10082
  target.getSlackApp = slackApps.getSlackApp.bind(slackApps);
9528
10083
  target.createSlackApp = slackApps.createSlackApp.bind(slackApps);
@@ -9595,6 +10150,7 @@ function bindIntegrationsMethods(target, mondayIntegration, discordBots, slackAp
9595
10150
  target.deleteConfluence = confluence.deleteConfluence.bind(confluence);
9596
10151
  target.listConfluenceSpaces = confluence.listConfluenceSpaces.bind(confluence);
9597
10152
  target.listConfluencePages = confluence.listConfluencePages.bind(confluence);
10153
+ target.installSalesforce = salesforce.installSalesforce.bind(salesforce);
9598
10154
  target.configureSalesforce = salesforce.configureSalesforce.bind(salesforce);
9599
10155
  target.startSalesforceOAuth = salesforce.startSalesforceOAuth.bind(salesforce);
9600
10156
  target.getSalesforceStatus = salesforce.getSalesforceStatus.bind(salesforce);
@@ -9612,6 +10168,7 @@ function bindIntegrationsMethods(target, mondayIntegration, discordBots, slackAp
9612
10168
  target.describeSalesforceObject = salesforce.describeSalesforceObject.bind(salesforce);
9613
10169
  target.searchSalesforceRecords = salesforce.searchSalesforceRecords.bind(salesforce);
9614
10170
  target.importSalesforceMembers = salesforce.importSalesforceMembers.bind(salesforce);
10171
+ target.installHubspot = hubspot.installHubspot.bind(hubspot);
9615
10172
  target.configureHubspot = hubspot.configureHubspot.bind(hubspot);
9616
10173
  target.startHubspotOAuth = hubspot.startHubspotOAuth.bind(hubspot);
9617
10174
  target.getHubspotStatus = hubspot.getHubspotStatus.bind(hubspot);
@@ -9844,6 +10401,7 @@ var GravityRailClient = class {
9844
10401
  createAbility;
9845
10402
  updateAbility;
9846
10403
  deleteAbility;
10404
+ getCharlestonTestDeliveryRecipients;
9847
10405
  // Chats API
9848
10406
  getChats;
9849
10407
  getChat;
@@ -9861,6 +10419,8 @@ var GravityRailClient = class {
9861
10419
  createWorkflowOutboundVoiceChat;
9862
10420
  deleteChat;
9863
10421
  updateChat;
10422
+ getChatModelOverride;
10423
+ updateChatModelOverride;
9864
10424
  updateChatMute;
9865
10425
  updateChatNeedsResponse;
9866
10426
  summarizeChat;
@@ -9870,6 +10430,7 @@ var GravityRailClient = class {
9870
10430
  initiateOutboundCall;
9871
10431
  sendAssistantMessage;
9872
10432
  rateMessage;
10433
+ getChatFeedback;
9873
10434
  getChatAssignmentTasks;
9874
10435
  createChatCompletion;
9875
10436
  exportChats;
@@ -9895,6 +10456,7 @@ var GravityRailClient = class {
9895
10456
  initiateCall;
9896
10457
  getVoiceToken;
9897
10458
  getMessageTiming;
10459
+ getRecordingInfo;
9898
10460
  listChatRecordings;
9899
10461
  getCallRecordingDownloadUrl;
9900
10462
  getCelContext;
@@ -9920,6 +10482,12 @@ var GravityRailClient = class {
9920
10482
  getFieldIndexStatus;
9921
10483
  validateDataTypeSlug;
9922
10484
  getMemberRecordCounts;
10485
+ getDataRecordFilters;
10486
+ getDataRecordFilter;
10487
+ createDataRecordFilter;
10488
+ updateDataRecordFilter;
10489
+ deleteDataRecordFilter;
10490
+ getDataRecordFilterCount;
9923
10491
  // Members API
9924
10492
  getCurrentMember;
9925
10493
  getOwnedMembers;
@@ -9943,7 +10511,6 @@ var GravityRailClient = class {
9943
10511
  getMemberFilter;
9944
10512
  createMemberFilter;
9945
10513
  updateMemberFilter;
9946
- convertMemberFilterToQuery;
9947
10514
  deleteMemberFilter;
9948
10515
  getMemberFilterCount;
9949
10516
  getMemberLabels;
@@ -9975,6 +10542,7 @@ var GravityRailClient = class {
9975
10542
  expireAnonymousMember;
9976
10543
  // Member Memories
9977
10544
  getMemberMemories;
10545
+ getMemberMemory;
9978
10546
  createMemberMemory;
9979
10547
  deleteMemberMemory;
9980
10548
  // Member Sync Links
@@ -9992,8 +10560,6 @@ var GravityRailClient = class {
9992
10560
  deleteAgent;
9993
10561
  archiveAgent;
9994
10562
  unarchiveAgent;
9995
- resolveAgentTools;
9996
- listAgentAbilities;
9997
10563
  // Qualifications API
9998
10564
  getQualifications;
9999
10565
  getQualification;
@@ -10019,6 +10585,16 @@ var GravityRailClient = class {
10019
10585
  createPersona;
10020
10586
  updatePersona;
10021
10587
  deletePersona;
10588
+ // Dashboards API
10589
+ getDashboards;
10590
+ getDashboard;
10591
+ createDashboard;
10592
+ updateDashboard;
10593
+ deleteDashboard;
10594
+ getDashboardChannelStats;
10595
+ getDashboardWorkflowAssignmentStats;
10596
+ // MOTD API
10597
+ getMotd;
10022
10598
  // Journeys API
10023
10599
  getJourneys;
10024
10600
  getJourney;
@@ -10086,6 +10662,7 @@ var GravityRailClient = class {
10086
10662
  revokeAccessGrant;
10087
10663
  getAccessGrants;
10088
10664
  getMemberGrants;
10665
+ getGranteeGrants;
10089
10666
  // Prompts API
10090
10667
  inspectPrompt;
10091
10668
  // Workspaces API
@@ -10135,6 +10712,10 @@ var GravityRailClient = class {
10135
10712
  getUsageDashboard;
10136
10713
  getWorkspaceEmailDomains;
10137
10714
  getWorkspaceSiteDomains;
10715
+ getWorkspaceWidgetDomains;
10716
+ listWidgetDomains;
10717
+ upsertWidgetDomain;
10718
+ deleteWidgetDomain;
10138
10719
  // Org API
10139
10720
  listOrgDomains;
10140
10721
  registerOrgDomain;
@@ -10175,6 +10756,7 @@ var GravityRailClient = class {
10175
10756
  // Auth API
10176
10757
  getUserAccount;
10177
10758
  updateUserAccount;
10759
+ recordAcquisition;
10178
10760
  login;
10179
10761
  resendCode;
10180
10762
  verifyCodeWith2FA;
@@ -10274,11 +10856,16 @@ var GravityRailClient = class {
10274
10856
  // Files API
10275
10857
  getFiles;
10276
10858
  getFile;
10859
+ resolveFilePath;
10277
10860
  downloadFilesZip;
10278
10861
  createFile;
10279
10862
  uploadFile;
10280
10863
  updateFile;
10281
10864
  deleteFile;
10865
+ listFileVersions;
10866
+ getFileVersionDiff;
10867
+ restoreFileVersion;
10868
+ getFileVersionContentsUrl;
10282
10869
  convertFile;
10283
10870
  generateFileUploadUrl;
10284
10871
  getFolders;
@@ -10327,6 +10914,7 @@ var GravityRailClient = class {
10327
10914
  getRoutineRuns;
10328
10915
  resetRoutineRuns;
10329
10916
  previewSchedule;
10917
+ previewRoutineWorkflowAccess;
10330
10918
  // Workflows API
10331
10919
  getWorkflows;
10332
10920
  getWorkflow;
@@ -10351,18 +10939,18 @@ var GravityRailClient = class {
10351
10939
  createWorkflowNote;
10352
10940
  updateWorkflowNote;
10353
10941
  deleteWorkflowNote;
10942
+ getWorkflowFeedback;
10354
10943
  getWorkflowContributors;
10355
10944
  createWorkflowContributor;
10356
10945
  updateWorkflowContributor;
10357
10946
  deleteWorkflowContributor;
10358
- getWorkflowVersions;
10359
- getWorkflowVersionActive;
10360
- getWorkflowVersion;
10361
- publishWorkflowVersion;
10362
- updateWorkflowVersion;
10363
- activateWorkflowVersion;
10364
- deactivateWorkflowVersion;
10365
- diffWorkflowVersions;
10947
+ getWorkflowRevisions;
10948
+ getWorkflowRevision;
10949
+ publishWorkflowRevision;
10950
+ activateWorkflowRevision;
10951
+ updateWorkflowRevisionMetadata;
10952
+ diffWorkflowRevisions;
10953
+ editWorkflowRevisionAsDraft;
10366
10954
  getWorkspaceBuilders;
10367
10955
  getWorkspaceBuilder;
10368
10956
  buildWorkspace;
@@ -10421,6 +11009,9 @@ var GravityRailClient = class {
10421
11009
  getArchiveBlockers;
10422
11010
  archivePhoneNumber;
10423
11011
  getPhoneNumberCalls;
11012
+ getPhoneNumberOutboundAnalyticsSummary;
11013
+ getPhoneNumberOutboundAnalyticsCalls;
11014
+ exportPhoneNumberOutboundAnalyticsCsv;
10424
11015
  getPhoneNumberMessages;
10425
11016
  getPhoneNumberVoicemails;
10426
11017
  fetchVoicemailAudio;
@@ -10539,6 +11130,7 @@ var GravityRailClient = class {
10539
11130
  getMondayBoardGroups;
10540
11131
  getMondayCurrentUserInfo;
10541
11132
  // Monday.com Connection API
11133
+ installMondayConnection;
10542
11134
  configureMondayConnection;
10543
11135
  getMondayConnectionStatus;
10544
11136
  authorizeMondayConnection;
@@ -10574,6 +11166,8 @@ var GravityRailClient = class {
10574
11166
  getDiscordBotAccounts;
10575
11167
  getMyCredentials;
10576
11168
  unlinkCredential;
11169
+ completeDiscordLink;
11170
+ discordLinkPreflight;
10577
11171
  // Slack Apps API
10578
11172
  getSlackApps;
10579
11173
  getSlackApp;
@@ -10652,6 +11246,7 @@ var GravityRailClient = class {
10652
11246
  listConfluenceSpaces;
10653
11247
  listConfluencePages;
10654
11248
  // Salesforce API
11249
+ installSalesforce;
10655
11250
  configureSalesforce;
10656
11251
  startSalesforceOAuth;
10657
11252
  getSalesforceStatus;
@@ -10670,6 +11265,7 @@ var GravityRailClient = class {
10670
11265
  searchSalesforceRecords;
10671
11266
  importSalesforceMembers;
10672
11267
  // HubSpot API
11268
+ installHubspot;
10673
11269
  configureHubspot;
10674
11270
  startHubspotOAuth;
10675
11271
  getHubspotStatus;
@@ -10771,6 +11367,8 @@ var GravityRailClient = class {
10771
11367
  bindQualificationsMethods(this, apis.qualifications);
10772
11368
  bindPersonasMethods(this, apis.personas);
10773
11369
  bindQueriesMethods(this, apis.queries);
11370
+ bindDashboardsMethods(this, apis.dashboards);
11371
+ bindMotdMethods(this, apis.motd);
10774
11372
  bindJourneysMethods(this, apis.journeys);
10775
11373
  bindExperimentsMethods(this, apis.experiments);
10776
11374
  bindOperatorMethods(this, apis.operatorGroups);
@@ -10927,11 +11525,6 @@ var GravityRailClient = class {
10927
11525
  }
10928
11526
  };
10929
11527
 
10930
- // src/constants/models.ts
10931
- var DEFAULT_CHAT_MODEL = "aws:bedrock:claude-4-5-haiku";
10932
- var DEFAULT_VOICE_INFERENCE_MODEL = "google:vertex:gemini-3-flash";
10933
- var DEFAULT_CUSTOM_VOICE_MODEL = "elevenlabs:voice:river";
10934
-
10935
11528
  // src/types/ability-types.ts
10936
11529
  var AbilityTypeSlugs = {
10937
11530
  // Tools
@@ -11016,6 +11609,10 @@ var SMS_DELIVERY_FAILURE_STATUSES = /* @__PURE__ */ new Set([
11016
11609
  function isSMSDeliveryFailureStatus(status) {
11017
11610
  return status != null && SMS_DELIVERY_FAILURE_STATUSES.has(status);
11018
11611
  }
11612
+ var POSITIVE_RATING_THRESHOLD = 0.5;
11613
+ function isPositiveRating(rating) {
11614
+ return rating != null && rating >= POSITIVE_RATING_THRESHOLD;
11615
+ }
11019
11616
 
11020
11617
  // src/types/generated/organization.ts
11021
11618
  var BusinessIndustry = {
@@ -11059,6 +11656,11 @@ var BusinessType = {
11059
11656
  "Non-profit_Corporation": "Non-profit Corporation",
11060
11657
  Corporation: "Corporation"
11061
11658
  };
11659
+ var DeclaredDataUse = {
11660
+ unclassified: "unclassified",
11661
+ non_phi_only: "non_phi_only",
11662
+ phi_expected: "phi_expected"
11663
+ };
11062
11664
  var EmailDnsRecordType = {
11063
11665
  TXT: "TXT",
11064
11666
  CNAME: "CNAME",
@@ -11118,6 +11720,7 @@ var AbilityConfigIssueCode = {
11118
11720
  missing_resource: "missing_resource",
11119
11721
  invalid_state: "invalid_state",
11120
11722
  feature_disabled: "feature_disabled",
11723
+ missing_connection: "missing_connection",
11121
11724
  external_drift: "external_drift"
11122
11725
  };
11123
11726
  var AbilityConfigIssueSeverity = {
@@ -11131,6 +11734,9 @@ var WorkflowAccessWarningResourceType = {
11131
11734
  calendar: "calendar"
11132
11735
  };
11133
11736
 
11737
+ // src/types/widget-domain-types.ts
11738
+ var WIDGET_SLUGS = ["chat", "operator", "operator-tools", "chat-app"];
11739
+
11134
11740
  // src/features/registry.ts
11135
11741
  var FeatureCategory = /* @__PURE__ */ ((FeatureCategory2) => {
11136
11742
  FeatureCategory2["COMMUNICATION"] = "communication";
@@ -11254,6 +11860,11 @@ function isChatType(value) {
11254
11860
  return Object.values(CHAT_TYPES).includes(value);
11255
11861
  }
11256
11862
 
11863
+ // src/constants/models.ts
11864
+ var DEFAULT_CHAT_MODEL = "aws:bedrock:claude-4-5-haiku";
11865
+ var DEFAULT_VOICE_INFERENCE_MODEL = "google:vertex:gemini-3-flash";
11866
+ var DEFAULT_CUSTOM_VOICE_MODEL = "elevenlabs:voice:river";
11867
+
11257
11868
  // src/types/resource-metadata.ts
11258
11869
  var RESOURCE_METADATA = {
11259
11870
  ["credit" /* CREDIT */]: {
@@ -12034,6 +12645,19 @@ var SCOPE_PRESETS = {
12034
12645
  ALL: Object.keys(SCOPES)
12035
12646
  };
12036
12647
 
12648
+ // src/utils/revision-state.ts
12649
+ function getRevisionState(workflow, revision) {
12650
+ const draftIsLive = workflow.activeRevisionId === workflow.draftRevisionId;
12651
+ const hasUnpublishedChanges = workflow.draftModifiedAt != null;
12652
+ return {
12653
+ isActive: revision != null && revision.id === workflow.activeRevisionId,
12654
+ isDraft: revision != null && revision.id === workflow.draftRevisionId,
12655
+ draftIsLive,
12656
+ hasUnpublishedChanges,
12657
+ state: revision?.publishedAt != null ? "published" : "draft"
12658
+ };
12659
+ }
12660
+
12037
12661
  export {
12038
12662
  AbilitiesApi,
12039
12663
  AccessGrantsApi,
@@ -12156,6 +12780,7 @@ export {
12156
12780
  CriterionType,
12157
12781
  DriverMode,
12158
12782
  AccessGrantResourceType,
12783
+ CapabilityClass,
12159
12784
  AccessGrantStatus,
12160
12785
  AccessGrantTrigger,
12161
12786
  ConsentMethod,
@@ -12172,6 +12797,8 @@ export {
12172
12797
  bindTasksMethods,
12173
12798
  bindChatsMethods,
12174
12799
  bindCallsMethods,
12800
+ bindDashboardsMethods,
12801
+ bindMotdMethods,
12175
12802
  bindDataTypesMethods,
12176
12803
  bindMembersMethods,
12177
12804
  bindWorkspacesMethods,
@@ -12199,9 +12826,6 @@ export {
12199
12826
  bindPromptsMethods,
12200
12827
  bindSupportRequestMethods,
12201
12828
  GravityRailClient,
12202
- DEFAULT_CHAT_MODEL,
12203
- DEFAULT_VOICE_INFERENCE_MODEL,
12204
- DEFAULT_CUSTOM_VOICE_MODEL,
12205
12829
  AbilityTypeSlugs,
12206
12830
  DEFAULT_THINKING_SPEECH_PHRASES,
12207
12831
  getTTSProvider,
@@ -12211,8 +12835,11 @@ export {
12211
12835
  QUERY_VALUELESS_OPS,
12212
12836
  SMS_DELIVERY_FAILURE_STATUSES,
12213
12837
  isSMSDeliveryFailureStatus,
12838
+ POSITIVE_RATING_THRESHOLD,
12839
+ isPositiveRating,
12214
12840
  BusinessIndustry,
12215
12841
  BusinessType,
12842
+ DeclaredDataUse,
12216
12843
  EmailDnsRecordType,
12217
12844
  JobPosition,
12218
12845
  OIDCAdminConfigViewProviderType,
@@ -12223,6 +12850,7 @@ export {
12223
12850
  AbilityConfigIssueCode,
12224
12851
  AbilityConfigIssueSeverity,
12225
12852
  WorkflowAccessWarningResourceType,
12853
+ WIDGET_SLUGS,
12226
12854
  FeatureCategory,
12227
12855
  FeatureVisibility,
12228
12856
  initializeFeatures,
@@ -12243,6 +12871,9 @@ export {
12243
12871
  usesBuiltinAssistant,
12244
12872
  requiresAssistantParticipant,
12245
12873
  isChatType,
12874
+ DEFAULT_CHAT_MODEL,
12875
+ DEFAULT_VOICE_INFERENCE_MODEL,
12876
+ DEFAULT_CUSTOM_VOICE_MODEL,
12246
12877
  getResourceMetadata,
12247
12878
  getAllResourceSlugs,
12248
12879
  getScopeFromProductType,
@@ -12251,6 +12882,7 @@ export {
12251
12882
  ScopeCategory,
12252
12883
  SCOPES,
12253
12884
  ScopeManager,
12254
- SCOPE_PRESETS
12885
+ SCOPE_PRESETS,
12886
+ getRevisionState
12255
12887
  };
12256
- //# sourceMappingURL=chunk-2BJG4GYM.js.map
12888
+ //# sourceMappingURL=chunk-YESHLUL7.js.map