@gravity-rail/sdk 0.36.1 → 0.42.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 (57) hide show
  1. package/README.md +46 -23
  2. package/dist/agui.d.cts +1 -1
  3. package/dist/agui.d.ts +1 -1
  4. package/dist/audio.d.cts +1 -1
  5. package/dist/audio.d.ts +1 -1
  6. package/dist/{chat-interaction-DqjEfj7G.d.ts → chat-interaction-BBBeSKGl.d.cts} +9056 -6127
  7. package/dist/{chat-interaction-CbkSPz3m.d.cts → chat-interaction-C9dD0qbD.d.ts} +9056 -6127
  8. package/dist/{chunk-P2E6LU7I.js → chunk-67QXTQVL.js} +1 -26
  9. package/dist/chunk-67QXTQVL.js.map +1 -0
  10. package/dist/chunk-6KPGCPGW.js +48 -0
  11. package/dist/chunk-6KPGCPGW.js.map +1 -0
  12. package/dist/{chunk-HRUMZ46V.js → chunk-72SWNLVD.js} +2 -1
  13. package/dist/chunk-72SWNLVD.js.map +1 -0
  14. package/dist/{chunk-R6S5RXW5.js → chunk-JTOMGNUO.js} +1246 -212
  15. package/dist/chunk-JTOMGNUO.js.map +1 -0
  16. package/dist/helpers.cjs +47 -0
  17. package/dist/helpers.cjs.map +1 -1
  18. package/dist/helpers.d.cts +4 -3
  19. package/dist/helpers.d.ts +4 -3
  20. package/dist/helpers.js +7 -1
  21. package/dist/helpers.js.map +1 -1
  22. package/dist/index.cjs +1368 -341
  23. package/dist/index.cjs.map +1 -1
  24. package/dist/index.d.cts +13 -35
  25. package/dist/index.d.ts +13 -35
  26. package/dist/index.js +117 -116
  27. package/dist/index.js.map +1 -1
  28. package/dist/internal.cjs +1277 -243
  29. package/dist/internal.cjs.map +1 -1
  30. package/dist/internal.d.cts +324 -79
  31. package/dist/internal.d.ts +324 -79
  32. package/dist/internal.js +61 -15
  33. package/dist/internal.js.map +1 -1
  34. package/dist/member-import-BXReoljG.d.cts +46 -0
  35. package/dist/member-import-jjfQHlWl.d.ts +46 -0
  36. package/dist/realtime.cjs +91 -20
  37. package/dist/realtime.cjs.map +1 -1
  38. package/dist/realtime.d.cts +34 -9
  39. package/dist/realtime.d.ts +34 -9
  40. package/dist/realtime.js +90 -20
  41. package/dist/realtime.js.map +1 -1
  42. package/dist/{revision-state-CSQ7J3ZU.d.cts → revision-state-Bp7WKk6z.d.cts} +270 -54
  43. package/dist/{revision-state-92LHz1jQ.d.ts → revision-state-QkNQXWJC.d.ts} +270 -54
  44. package/dist/schemas.cjs +58 -81
  45. package/dist/schemas.cjs.map +1 -1
  46. package/dist/schemas.d.cts +88 -225
  47. package/dist/schemas.d.ts +88 -225
  48. package/dist/schemas.js +58 -76
  49. package/dist/schemas.js.map +1 -1
  50. package/dist/{tasks-CrF1qC4G.d.cts → tasks-BsLI-h11.d.cts} +3259 -2507
  51. package/dist/{tasks-CrF1qC4G.d.ts → tasks-BsLI-h11.d.ts} +3259 -2507
  52. package/dist/{types-0c6_NGU4.d.cts → types-DlfADjPR.d.cts} +17 -2
  53. package/dist/{types-0c6_NGU4.d.ts → types-DlfADjPR.d.ts} +17 -2
  54. package/package.json +9 -7
  55. package/dist/chunk-HRUMZ46V.js.map +0 -1
  56. package/dist/chunk-P2E6LU7I.js.map +0 -1
  57. package/dist/chunk-R6S5RXW5.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ApiError,
3
3
  BaseApiClient
4
- } from "./chunk-P2E6LU7I.js";
4
+ } from "./chunk-67QXTQVL.js";
5
5
 
6
6
  // src/api/abilities.ts
7
7
  var AbilitiesApi = class extends BaseApiClient {
@@ -71,6 +71,303 @@ var AbilitiesApi = class extends BaseApiClient {
71
71
  }
72
72
  };
73
73
 
74
+ // src/api/resource-workflows.ts
75
+ function resourceWorkflowsPath(wid, ...segments) {
76
+ const tail = segments.map((segment) => encodeURIComponent(String(segment))).join("/");
77
+ const base = `w/${encodeURIComponent(wid)}/resource-workflows`;
78
+ return tail ? `${base}/${tail}` : base;
79
+ }
80
+ var ResourceWorkflowsApi = class extends BaseApiClient {
81
+ /** One Workflow's summary, for a viewer that can see it. */
82
+ async getResourceWorkflow(wid, workflowUuid) {
83
+ return this.fetch(resourceWorkflowsPath(wid, workflowUuid));
84
+ }
85
+ /**
86
+ * One published revision.
87
+ *
88
+ * The response is a union: the owner (or a `full` grantee) receives the
89
+ * complete `ResourceWorkflowGraphResponse`, while a bounded grantee receives
90
+ * the `ResourceWorkflowDisclosureResponse` envelope. Branch on `publishedAt`
91
+ * being present — never assume the full shape. A retained revision stays
92
+ * readable here after a `stop_updates` revocation.
93
+ */
94
+ async getResourceWorkflowRevision(wid, workflowUuid, revisionUuid) {
95
+ return this.fetch(
96
+ resourceWorkflowsPath(wid, workflowUuid, "revisions", revisionUuid)
97
+ );
98
+ }
99
+ /**
100
+ * List published Workflows owned by or shared with this workspace.
101
+ *
102
+ * The Bundle draft editor reads `publishedRevisionUuid` from each summary to
103
+ * pin a Workflow item; archived Workflows are excluded unless asked for.
104
+ */
105
+ async listResourceWorkflows(wid, params) {
106
+ const query = new URLSearchParams();
107
+ if (params?.page !== void 0) query.set("page", String(params.page));
108
+ if (params?.pageSize !== void 0) query.set("pageSize", String(params.pageSize));
109
+ if (params?.includeArchived !== void 0) {
110
+ query.set("includeArchived", String(params.includeArchived));
111
+ }
112
+ const qs = query.toString();
113
+ return this.fetch(
114
+ `w/${encodeURIComponent(wid)}/resource-workflows${qs ? `?${qs}` : ""}`
115
+ );
116
+ }
117
+ };
118
+
119
+ // src/api/bundles.ts
120
+ function bundlesPath(wid, ...segments) {
121
+ const tail = segments.map((segment) => encodeURIComponent(String(segment))).join("/");
122
+ const base = `w/${encodeURIComponent(wid)}/bundles`;
123
+ return tail ? `${base}/${tail}` : base;
124
+ }
125
+ function pageQuery(params) {
126
+ const query = new URLSearchParams();
127
+ if (params?.page !== void 0) query.set("page", String(params.page));
128
+ if (params?.pageSize !== void 0) query.set("pageSize", String(params.pageSize));
129
+ const qs = query.toString();
130
+ return qs ? `?${qs}` : "";
131
+ }
132
+ var BundlesApi = class extends BaseApiClient {
133
+ /** Bundles shared with everyone. Needs no session. */
134
+ async listPublicBundles(params) {
135
+ return this.fetch(`bundles/public${pageQuery(params)}`);
136
+ }
137
+ /** The outline of one Bundle shared with everyone. Needs no session; 404 otherwise. */
138
+ async getPublicBundle(bundleUuid) {
139
+ return this.fetch(`bundles/${encodeURIComponent(bundleUuid)}/public`);
140
+ }
141
+ /** Read an authorized Bundle by UUID. */
142
+ async getBundle(wid, bundleUuid) {
143
+ return this.fetch(bundlesPath(wid, bundleUuid));
144
+ }
145
+ async updateBundle(wid, bundleUuid, data) {
146
+ return this.fetch(
147
+ `w/${encodeURIComponent(wid)}/bundles/${encodeURIComponent(bundleUuid)}`,
148
+ {
149
+ method: "PATCH",
150
+ body: JSON.stringify(data)
151
+ }
152
+ );
153
+ }
154
+ async listBundleInstallations(wid, bundleUuid) {
155
+ return this.fetch(
156
+ `w/${encodeURIComponent(wid)}/bundles/${encodeURIComponent(bundleUuid)}/installations`
157
+ );
158
+ }
159
+ /**
160
+ * Bundles visible to this workspace through ownership, a live grant, or
161
+ * an administrator of the owning organization.
162
+ */
163
+ async listBundles(wid, params) {
164
+ return this.fetch(`${bundlesPath(wid)}${pageQuery(params)}`);
165
+ }
166
+ /**
167
+ * This workspace's Workflows for the Bundle picker. `eligible` pins
168
+ * `revisionUuid` (the active revision when published, else the newest
169
+ * published one); `unpublished` has nothing to pin. `dependenciesChecked` is
170
+ * false until a Bundle add has stored the revision's dependencies; that add
171
+ * surfaces any refusal as a 409 `workflow_not_shareable`. Requires
172
+ * `workflows:admin`.
173
+ */
174
+ async listBundleWorkflowCandidates(wid) {
175
+ return this.fetch(bundlesPath(wid, "workflow-candidates"));
176
+ }
177
+ /** Create an empty Bundle owned by this workspace. */
178
+ async createBundle(wid, data) {
179
+ return this.fetch(bundlesPath(wid), {
180
+ method: "POST",
181
+ body: JSON.stringify(data)
182
+ });
183
+ }
184
+ /**
185
+ * The unpublished draft for the owning workspace. A grantee is refused with
186
+ * 404: `version_detail` checks
187
+ * `root.workspace_uuid != viewer.workspace_uuid` for the null version
188
+ * (`lib/db/resources/bundles.py`), after the grantee-inclusive predicate has
189
+ * already admitted them to the Bundle itself.
190
+ *
191
+ * After publication, the next draft contains a copy of the published items.
192
+ * The owner receives it with 200; a grantee receives 404.
193
+ */
194
+ async getBundleDraft(wid, bundleUuid) {
195
+ return this.fetch(bundlesPath(wid, bundleUuid, "draft"));
196
+ }
197
+ /** Replace the whole draft item list. 409 when `expectedGeneration` is stale. */
198
+ async replaceBundleDraft(wid, bundleUuid, data) {
199
+ return this.fetch(bundlesPath(wid, bundleUuid, "draft"), {
200
+ method: "PUT",
201
+ body: JSON.stringify(data)
202
+ });
203
+ }
204
+ /** Cut a new immutable version from the draft. 409 when `expectedGeneration` is stale. */
205
+ async publishBundle(wid, bundleUuid, data) {
206
+ return this.fetch(bundlesPath(wid, bundleUuid, "publish"), {
207
+ method: "POST",
208
+ body: JSON.stringify(data)
209
+ });
210
+ }
211
+ /** Published versions, newest first. */
212
+ async listBundleVersions(wid, bundleUuid, params) {
213
+ return this.fetch(
214
+ `${bundlesPath(wid, bundleUuid, "versions")}${pageQuery(params)}`
215
+ );
216
+ }
217
+ /** One published version, with its items, declared settings and open slots. */
218
+ async getBundleVersion(wid, bundleUuid, version) {
219
+ return this.fetch(bundlesPath(wid, bundleUuid, "versions", version));
220
+ }
221
+ /** Who this Bundle is currently granted to. */
222
+ async listBundleGrants(wid, bundleUuid) {
223
+ return this.fetch(bundlesPath(wid, bundleUuid, "grants"));
224
+ }
225
+ /**
226
+ * Share throughout the publisher's organization with organization-admin authority,
227
+ * or with everyone (`granteeType: "global"`) as a superuser. Workspace-specific
228
+ * grants are refused.
229
+ */
230
+ async grantBundle(wid, bundleUuid, data) {
231
+ return this.fetch(bundlesPath(wid, bundleUuid, "grants"), {
232
+ method: "POST",
233
+ body: JSON.stringify(data)
234
+ });
235
+ }
236
+ /** Revoke one grant by id. */
237
+ async revokeBundleGrant(wid, bundleUuid, grantId) {
238
+ return this.fetch(bundlesPath(wid, bundleUuid, "grants", grantId), {
239
+ method: "DELETE"
240
+ });
241
+ }
242
+ };
243
+
244
+ // src/api/installations.ts
245
+ function installationsPath(wid, ...segments) {
246
+ const tail = segments.map((segment) => encodeURIComponent(String(segment))).join("/");
247
+ const base = `w/${encodeURIComponent(wid)}/installations`;
248
+ return tail ? `${base}/${tail}` : base;
249
+ }
250
+ var InstallationsApi = class extends BaseApiClient {
251
+ /** Inspect one published release and its selected example dependencies. */
252
+ async preflightBundleInstallation(wid, bundleUuid, data) {
253
+ return this.fetch(
254
+ `w/${encodeURIComponent(wid)}/bundles/${encodeURIComponent(bundleUuid)}/installation-preflight`,
255
+ { method: "POST", body: JSON.stringify(data) }
256
+ );
257
+ }
258
+ /**
259
+ * Install a published Bundle version into this workspace.
260
+ *
261
+ * A key in `bindings` that this version has no slot or Form item for is
262
+ * refused; a **missing** required slot is not.
263
+ */
264
+ async installBundle(wid, bundleUuid, data) {
265
+ return this.fetch(
266
+ `w/${encodeURIComponent(wid)}/bundles/${encodeURIComponent(bundleUuid)}/installations`,
267
+ { method: "POST", body: JSON.stringify(data) }
268
+ );
269
+ }
270
+ /** Every installation this workspace holds, oldest first. */
271
+ async listInstallations(wid) {
272
+ return this.fetch(installationsPath(wid));
273
+ }
274
+ async getInstallation(wid, installationUuid) {
275
+ return this.fetch(installationsPath(wid, installationUuid));
276
+ }
277
+ /**
278
+ * Open slots, bindings whose target no longer resolves, Forms that drifted
279
+ * from their recipe, missing or changed Workflow dependencies, and archived
280
+ * items. Computed on read, never stored.
281
+ */
282
+ async getInstallationReadiness(wid, installationUuid) {
283
+ return this.fetch(
284
+ installationsPath(wid, installationUuid, "readiness")
285
+ );
286
+ }
287
+ /**
288
+ * What moving to version `to` would change: per-item differences, the slots
289
+ * that would still be unbound, and the release notes of every version in
290
+ * between. `to` must be newer than the version the installation holds.
291
+ */
292
+ async previewInstallationUpgrade(wid, installationUuid, to) {
293
+ const query = new URLSearchParams({ to: String(to) });
294
+ return this.fetch(
295
+ `${installationsPath(wid, installationUuid, "upgrade-preview")}?${query.toString()}`
296
+ );
297
+ }
298
+ /**
299
+ * Move the installation onto a newer published version. The version it
300
+ * already holds, and any earlier one, are refused with 409.
301
+ */
302
+ async upgradeInstallation(wid, installationUuid, data) {
303
+ return this.fetch(installationsPath(wid, installationUuid, "upgrade"), {
304
+ method: "POST",
305
+ body: JSON.stringify(data)
306
+ });
307
+ }
308
+ /** Recreate one deleted Form from the version already installed. */
309
+ async restoreInstallationForm(wid, installationUuid, data) {
310
+ return this.fetch(
311
+ installationsPath(wid, installationUuid, "restore-form"),
312
+ {
313
+ method: "POST",
314
+ body: JSON.stringify(data)
315
+ }
316
+ );
317
+ }
318
+ /** Recreate missing dependency resources for an installed Workflow. */
319
+ async restoreInstallationWorkflowResources(wid, installationUuid, data) {
320
+ return this.fetch(
321
+ installationsPath(wid, installationUuid, "restore-workflow-resources"),
322
+ { method: "POST", body: JSON.stringify(data) }
323
+ );
324
+ }
325
+ /** `pinned` holds the installed version; `auto` follows each publication. */
326
+ async setInstallationPolicy(wid, installationUuid, data) {
327
+ return this.fetch(installationsPath(wid, installationUuid), {
328
+ method: "PATCH",
329
+ body: JSON.stringify(data)
330
+ });
331
+ }
332
+ /** Stop future Bundle updates while keeping the workspace's installed content. */
333
+ async unsubscribeInstallation(wid, installationUuid) {
334
+ return this.fetch(
335
+ installationsPath(wid, installationUuid, "unsubscribe"),
336
+ { method: "POST", body: JSON.stringify({}) }
337
+ );
338
+ }
339
+ /** Fill open slots. A slot that already carries a target is refused with 409. */
340
+ async bindInstallationSlots(wid, installationUuid, data) {
341
+ return this.fetch(
342
+ installationsPath(wid, installationUuid, "bindings"),
343
+ { method: "POST", body: JSON.stringify(data) }
344
+ );
345
+ }
346
+ /**
347
+ * Settle an installation left `pending` by an interrupted operation.
348
+ *
349
+ * The body is empty and required: a bodyless cookie-auth POST is forgeable
350
+ * by a cross-site form, so the route demands JSON.
351
+ */
352
+ async reconcileInstallation(wid, installationUuid) {
353
+ return this.fetch(
354
+ installationsPath(wid, installationUuid, "reconcile"),
355
+ { method: "POST", body: JSON.stringify({}) }
356
+ );
357
+ }
358
+ /**
359
+ * The settings a compiled theme declares, for labelling a Site item's slots
360
+ * before any Site exists. 404 for an unknown slug and for `source-site`,
361
+ * whose schema is a per-workspace build artifact rather than a catalog one.
362
+ * Requires `sites:read`; no Bundle installation authority is needed.
363
+ */
364
+ async getThemeSettingsSchema(wid, slug) {
365
+ return this.fetch(
366
+ `w/${encodeURIComponent(wid)}/themes/${encodeURIComponent(slug)}/settings-schema`
367
+ );
368
+ }
369
+ };
370
+
74
371
  // src/api/access-grants.ts
75
372
  var AccessGrantsApi = class extends BaseApiClient {
76
373
  /** List access grants received by the current member. */
@@ -203,7 +500,6 @@ var AgentsApi = class extends BaseApiClient {
203
500
  if (options.search) params.append("search", options.search);
204
501
  if (options.includeArchived)
205
502
  params.append("includeArchived", options.includeArchived.toString());
206
- if (options.owner) params.append("owner", options.owner);
207
503
  return this.fetch(
208
504
  `w/${wid}/agents${params.toString() ? `?${params.toString()}` : ""}`
209
505
  );
@@ -259,6 +555,18 @@ var AIModelsApi = class extends BaseApiClient {
259
555
  const url = queryString ? `ai-models/chat?${queryString}` : "ai-models/chat";
260
556
  return this.fetch(url);
261
557
  }
558
+ /**
559
+ * Get the models a member may pick for the Workspace Manager, in display
560
+ * order. Only models this deployment can serve are listed.
561
+ *
562
+ * `tokenMultiplier` is each model's input + output price per token relative
563
+ * to `baselineModelId`; `defaultModelId` is what the Manager runs with no
564
+ * pick. Send a pick on a Manager chat as `AppContext.managerModel` /
565
+ * `managerReasoningEffort`.
566
+ */
567
+ async getManagerModels() {
568
+ return this.fetch("ai-models/manager");
569
+ }
262
570
  /**
263
571
  * Get available realtime AI models
264
572
  */
@@ -710,6 +1018,19 @@ var AuthApi = class extends BaseApiClient {
710
1018
  body: JSON.stringify(request)
711
1019
  });
712
1020
  }
1021
+ /**
1022
+ * Mint a single-use, account-bound realtime login token (`gr_wst_`) with
1023
+ * this client's credential. Call once per realtime connect attempt; the
1024
+ * token is spent on first use and expires in seconds. Only the full browser
1025
+ * session may mint one — an API key is refused.
1026
+ */
1027
+ async createRealtimeLoginToken() {
1028
+ return this.fetch("auth/realtime/ws-token", {
1029
+ method: "POST",
1030
+ // The route requires a JSON body (its CSRF barrier); it reads nothing from it.
1031
+ body: JSON.stringify({})
1032
+ });
1033
+ }
713
1034
  /** Get the organization and workspace mapping for a custom domain. */
714
1035
  async getDomainMapping(customDomain) {
715
1036
  return this.fetch(`s/mapping/${customDomain}`);
@@ -1369,6 +1690,26 @@ var ChatsApi = class extends BaseApiClient {
1369
1690
  async getChat(wid, id) {
1370
1691
  return this.fetch(`w/${wid}/chats/${id}`);
1371
1692
  }
1693
+ /**
1694
+ * Get a single chat by UUID.
1695
+ *
1696
+ * The uuid-addressed twin of `getChat`: same access check (own chat,
1697
+ * otherwise `chats:read`), same body; a chat the caller may not read is a
1698
+ * 404. Activity events and org webhooks name a chat by `uuid` only.
1699
+ */
1700
+ async getChatByUuid(wid, uuid) {
1701
+ return this.fetch(`w/${wid}/chats/by-uuid/${uuid}`);
1702
+ }
1703
+ async saveChatBrowserStorage(wid, chatId) {
1704
+ await this.fetchRaw(`w/${wid}/chats/${chatId}/browser/storage/save`, {
1705
+ method: "POST",
1706
+ keepalive: true,
1707
+ body: JSON.stringify({})
1708
+ });
1709
+ }
1710
+ async clearChatBrowserStorage(wid, chatId) {
1711
+ await this.fetchRaw(`w/${wid}/chats/${chatId}/browser/storage`, { method: "DELETE" });
1712
+ }
1372
1713
  /**
1373
1714
  * Get a short-lived, interactive AgentCore browser view for this Chat.
1374
1715
  *
@@ -2049,6 +2390,26 @@ var DataTypesApi = class extends BaseApiClient {
2049
2390
  `w/${wid}/data-types/${dataTypeId}/records${params?.toString() ? `?${params.toString()}` : ""}`
2050
2391
  );
2051
2392
  }
2393
+ /**
2394
+ * List an anonymous Form's submissions, newest first. Requires
2395
+ * `anonymous_submissions:read`. Submissions are immutable: there is no
2396
+ * update or delete method.
2397
+ */
2398
+ async listAnonymousFormSubmissions(wid, dataTypeId, options) {
2399
+ const params = new URLSearchParams();
2400
+ if (options?.page) params.append("page", options.page.toString());
2401
+ if (options?.pageSize) params.append("page_size", options.pageSize.toString());
2402
+ const qs = params.toString();
2403
+ return this.fetch(
2404
+ `w/${wid}/data-types/${dataTypeId}/anonymous-submissions${qs ? `?${qs}` : ""}`
2405
+ );
2406
+ }
2407
+ /** Get one anonymous Form submission by its uuid. Requires `anonymous_submissions:read`. */
2408
+ async getAnonymousFormSubmission(wid, dataTypeId, submissionUuid) {
2409
+ return this.fetch(
2410
+ `w/${wid}/data-types/${dataTypeId}/anonymous-submissions/${encodeURIComponent(submissionUuid)}`
2411
+ );
2412
+ }
2052
2413
  // Data-record filter APIs (saved Query IR predicates per form)
2053
2414
  /** List saved data-record filters, optionally scoped to one DataType. */
2054
2415
  async getDataRecordFilters(wid, options) {
@@ -2091,6 +2452,15 @@ var DataTypesApi = class extends BaseApiClient {
2091
2452
  async getDataRecord(wid, recordId) {
2092
2453
  return this.fetch(`w/${wid}/data-types/records/${recordId}`);
2093
2454
  }
2455
+ /**
2456
+ * Get a single data record by UUID.
2457
+ *
2458
+ * The uuid-addressed twin of `getDataRecord`: same access check, same body.
2459
+ * Activity events and org webhooks name a record by `uuid` only.
2460
+ */
2461
+ async getDataRecordByUuid(wid, uuid) {
2462
+ return this.fetch(`w/${wid}/data-types/records/by-uuid/${uuid}`);
2463
+ }
2094
2464
  /** Create a new data record under the specified data type. */
2095
2465
  async createDataRecord(wid, dataTypeId, record) {
2096
2466
  return this.fetch(`w/${wid}/data-types/${dataTypeId}/records`, {
@@ -2536,20 +2906,6 @@ var EventsApi = class extends BaseApiClient {
2536
2906
  body: JSON.stringify(request)
2537
2907
  });
2538
2908
  }
2539
- /**
2540
- * Preview which target-audience roles lack Workflow USE for the Workflows a
2541
- * draft Routine would start. Non-persisting, non-blocking authoring assist —
2542
- * returns warnings only (role/Workflow names + IDs; no Member data).
2543
- */
2544
- async previewRoutineWorkflowAccess(wid, request) {
2545
- return this.fetch(
2546
- `w/${wid}/routines/preview-workflow-access`,
2547
- {
2548
- method: "POST",
2549
- body: JSON.stringify(request)
2550
- }
2551
- );
2552
- }
2553
2909
  /**
2554
2910
  * Preview what would stop a draft Routine placing its scheduled outbound
2555
2911
  * calls — the Member voice opt-out, a missing member phone, or a
@@ -3143,6 +3499,19 @@ var FilesApi = class extends BaseApiClient {
3143
3499
  if (folderId != null) params.append("folderId", String(folderId));
3144
3500
  return this.fetch(`w/${wid}/files/resolve-path?${params.toString()}`);
3145
3501
  }
3502
+ /**
3503
+ * Download one file's bytes via GET ``.../files/{id}/contents/{filename}``.
3504
+ *
3505
+ * Uses this client's base URL (FastAPI on the app, same-origin ``/api/v2``
3506
+ * on scoped site sessions) so the payload does not transit the Next.js
3507
+ * ``/api/w/.../files/...`` Lambda proxy, which 500s above the 6MB sync cap.
3508
+ */
3509
+ async downloadFileContents(wid, id, filename) {
3510
+ const response = await this.fetchRaw(
3511
+ `w/${wid}/files/${id}/contents/${encodeURIComponent(filename)}`
3512
+ );
3513
+ return response.blob();
3514
+ }
3146
3515
  /**
3147
3516
  * Download the given files + folders (folders recursively) as a single ZIP.
3148
3517
  * Returns the raw archive bytes for the caller to save.
@@ -3894,7 +4263,21 @@ function throwMemberImportError(errorBody, fallback) {
3894
4263
  }
3895
4264
  throw new Error(typeof detail === "string" ? detail : fallback);
3896
4265
  }
4266
+ function memberImportUpload(file, roleId, options) {
4267
+ const body = new FormData();
4268
+ const filename = "name" in file && typeof file.name === "string" ? file.name : "members.csv";
4269
+ body.append("file", file, filename);
4270
+ if (options?.resolutions !== void 0) {
4271
+ body.append("resolutions", JSON.stringify(options.resolutions));
4272
+ }
4273
+ const params = new URLSearchParams({ new_member_role_id: String(roleId) });
4274
+ if (options?.autoPromoteUniqueContacts !== void 0) {
4275
+ params.set("auto_promote_unique_contacts", String(options.autoPromoteUniqueContacts));
4276
+ }
4277
+ return { body, params };
4278
+ }
3897
4279
  var MembersApi = class extends BaseApiClient {
4280
+ memberImportPlans = /* @__PURE__ */ new WeakMap();
3898
4281
  /** Get the currently authenticated member for a workspace. */
3899
4282
  async getCurrentMember(wid) {
3900
4283
  return this.fetch(`w/${wid}/me`);
@@ -3947,33 +4330,6 @@ var MembersApi = class extends BaseApiClient {
3947
4330
  `w/${wid}/me/records?${params.toString()}`
3948
4331
  );
3949
4332
  }
3950
- /**
3951
- * Get all members owned by the current member in this workspace.
3952
- * Returns the authenticated member plus any members they own (via owner_id).
3953
- * Used by the member switcher to show available identities.
3954
- */
3955
- async getOwnedMembers(wid) {
3956
- return this.fetch(`w/${wid}/members/owned`);
3957
- }
3958
- /**
3959
- * Switch to a different member identity owned by the current member.
3960
- * Sets the actingAsMemberUuid cookie for subsequent requests.
3961
- * Uses UUID (not ID) to prevent cross-workspace identity confusion.
3962
- */
3963
- async switchMember(wid, memberUuid) {
3964
- return this.fetch(`w/${wid}/members/switch`, {
3965
- method: "POST",
3966
- body: JSON.stringify({ memberUuid })
3967
- });
3968
- }
3969
- /**
3970
- * Clear the member switch and return to the authenticated member.
3971
- */
3972
- async clearMemberSwitch(wid) {
3973
- return this.fetch(`w/${wid}/members/switch`, {
3974
- method: "DELETE"
3975
- });
3976
- }
3977
4333
  /** Update the currently authenticated member's profile. */
3978
4334
  async updateCurrentMember(wid, member) {
3979
4335
  return this.fetch(`w/${wid}/me`, {
@@ -4013,6 +4369,16 @@ var MembersApi = class extends BaseApiClient {
4013
4369
  async getWorkspaceMember(wid, memberId) {
4014
4370
  return this.fetch(`w/${wid}/members/${memberId}`);
4015
4371
  }
4372
+ /**
4373
+ * Get a single workspace member by UUID.
4374
+ *
4375
+ * The uuid-addressed twin of `getWorkspaceMember`: same access check (self,
4376
+ * otherwise `members:read`), same body. Activity events and org webhooks
4377
+ * name a member by `uuid` only.
4378
+ */
4379
+ async getMemberByUuid(wid, uuid) {
4380
+ return this.fetch(`w/${wid}/members/by-uuid/${uuid}`);
4381
+ }
4016
4382
  /**
4017
4383
  * Get one member of an org's workspace, under `org:read`.
4018
4384
  *
@@ -4064,6 +4430,53 @@ var MembersApi = class extends BaseApiClient {
4064
4430
  method: "POST"
4065
4431
  });
4066
4432
  }
4433
+ /**
4434
+ * Update a workspace member addressed by its external id.
4435
+ *
4436
+ * The external-id twin of `updateMember`: for an integrator that keys on its
4437
+ * own `externalId` and never stores our numeric member id. Same authorization
4438
+ * (`members:write`) and same body as `updateMember`.
4439
+ */
4440
+ async updateMemberByExternalId(wid, externalId, data) {
4441
+ return this.fetch(
4442
+ `w/${wid}/members/by-external-id/${encodeURIComponent(externalId)}`,
4443
+ {
4444
+ method: "PUT",
4445
+ body: JSON.stringify(data)
4446
+ }
4447
+ );
4448
+ }
4449
+ /**
4450
+ * Archive a workspace member addressed by its external id.
4451
+ *
4452
+ * The external-id twin of `archiveMember`; same authorization
4453
+ * (`members:write` + `members:admin`) and same body.
4454
+ */
4455
+ async archiveMemberByExternalId(wid, externalId) {
4456
+ return this.fetch(
4457
+ `w/${wid}/members/by-external-id/${encodeURIComponent(externalId)}/archive`,
4458
+ {
4459
+ method: "POST",
4460
+ // Required empty JSON body is the route's CSRF barrier (GRA-6284).
4461
+ body: JSON.stringify({})
4462
+ }
4463
+ );
4464
+ }
4465
+ /**
4466
+ * Unarchive a workspace member addressed by its external id.
4467
+ *
4468
+ * The external-id twin of `unarchiveMember`; same authorization and body.
4469
+ */
4470
+ async unarchiveMemberByExternalId(wid, externalId) {
4471
+ return this.fetch(
4472
+ `w/${wid}/members/by-external-id/${encodeURIComponent(externalId)}/unarchive`,
4473
+ {
4474
+ method: "POST",
4475
+ // Required empty JSON body is the route's CSRF barrier (GRA-6284).
4476
+ body: JSON.stringify({})
4477
+ }
4478
+ );
4479
+ }
4067
4480
  /**
4068
4481
  * Send the member an SMS asking them to confirm their phone number. When they
4069
4482
  * reply, a trusted phone auth binding is created so they can use SMS as
@@ -4205,16 +4618,13 @@ var MembersApi = class extends BaseApiClient {
4205
4618
  * operator can decide whether to skip or explicitly overwrite before
4206
4619
  * committing. Requires MEMBERS_ADMIN and is bulk-PHI audited server-side.
4207
4620
  */
4208
- async previewImportMembers(wid, file, newMemberRoleId) {
4209
- const formData = new FormData();
4210
- formData.append("file", file);
4211
- const params = new URLSearchParams();
4212
- params.append("new_member_role_id", newMemberRoleId.toString());
4621
+ async previewImportMembers(wid, file, newMemberRoleId, options) {
4622
+ const { body, params } = memberImportUpload(file, newMemberRoleId, options);
4213
4623
  const response = await this.fetchRaw(
4214
4624
  `w/${wid}/members/import/preview?${params.toString()}`,
4215
4625
  {
4216
4626
  method: "POST",
4217
- body: formData
4627
+ body
4218
4628
  },
4219
4629
  [400, 413]
4220
4630
  );
@@ -4222,7 +4632,19 @@ var MembersApi = class extends BaseApiClient {
4222
4632
  const error = await response.json().catch(() => ({}));
4223
4633
  throwMemberImportError(error, "Import preview failed");
4224
4634
  }
4225
- return response.json();
4635
+ const preview = await response.json();
4636
+ if (preview.previewPlanToken) {
4637
+ this.memberImportPlans.set(file, {
4638
+ wid,
4639
+ role: newMemberRoleId,
4640
+ autoPromote: options?.autoPromoteUniqueContacts ?? true,
4641
+ token: preview.previewPlanToken,
4642
+ cachedAt: Date.now()
4643
+ });
4644
+ } else {
4645
+ this.memberImportPlans.delete(file);
4646
+ }
4647
+ return preview;
4226
4648
  }
4227
4649
  /**
4228
4650
  * Import members from a CSV file, streaming progress updates via callback.
@@ -4232,10 +4654,11 @@ var MembersApi = class extends BaseApiClient {
4232
4654
  * Send 'overwrite_identity_fields' only after the operator confirms a preview.
4233
4655
  */
4234
4656
  async importMembers(wid, file, newMemberRoleId, onProgress, options) {
4235
- const formData = new FormData();
4236
- formData.append("file", file);
4237
- const params = new URLSearchParams();
4238
- params.append("new_member_role_id", newMemberRoleId.toString());
4657
+ const { body, params } = memberImportUpload(file, newMemberRoleId, options);
4658
+ const cachedPlan = this.memberImportPlans.get(file);
4659
+ const autoPromote = options?.autoPromoteUniqueContacts ?? true;
4660
+ const previewPlanToken = options?.previewPlanToken ?? (cachedPlan?.wid === wid && cachedPlan.role === newMemberRoleId && cachedPlan.autoPromote === autoPromote && Date.now() - cachedPlan.cachedAt < 55 * 60 * 1e3 ? cachedPlan.token : (await this.previewImportMembers(wid, file, newMemberRoleId, options)).previewPlanToken);
4661
+ if (previewPlanToken) body.append("previewPlanToken", previewPlanToken);
4239
4662
  if (options?.identityConflictPolicy) {
4240
4663
  params.append("identity_conflict_policy", options.identityConflictPolicy);
4241
4664
  }
@@ -4243,7 +4666,7 @@ var MembersApi = class extends BaseApiClient {
4243
4666
  `w/${wid}/members/import?${params.toString()}`,
4244
4667
  {
4245
4668
  method: "POST",
4246
- body: formData
4669
+ body
4247
4670
  },
4248
4671
  [400, 413]
4249
4672
  );
@@ -4251,34 +4674,48 @@ var MembersApi = class extends BaseApiClient {
4251
4674
  const error = await response.json().catch(() => ({}));
4252
4675
  throwMemberImportError(error, "Import failed");
4253
4676
  }
4254
- if (onProgress && response.body) {
4255
- const reader = response.body.getReader();
4256
- const decoder = new TextDecoder();
4257
- let buffer = "";
4677
+ if (!response.body) throw new Error("Member import response has no progress stream");
4678
+ const reader = response.body.getReader();
4679
+ const decoder = new TextDecoder();
4680
+ let buffer = "";
4681
+ let result;
4682
+ let hadError = false;
4683
+ const consume = (line) => {
4684
+ if (!line.trim()) return;
4685
+ let event;
4686
+ try {
4687
+ event = JSON.parse(line);
4688
+ } catch {
4689
+ throw new Error("Invalid member import progress event");
4690
+ }
4691
+ if (event.type === "complete") result = event;
4692
+ if (event.type === "error") hadError = true;
4693
+ onProgress?.(event);
4694
+ };
4695
+ try {
4258
4696
  while (true) {
4259
4697
  const { done, value } = await reader.read();
4260
4698
  if (done) break;
4261
4699
  buffer += decoder.decode(value, { stream: true });
4262
4700
  const lines = buffer.split("\n");
4263
4701
  buffer = lines.pop() ?? "";
4264
- for (const line of lines) {
4265
- const trimmed = line.trim();
4266
- if (!trimmed) continue;
4267
- try {
4268
- onProgress(JSON.parse(trimmed));
4269
- } catch {
4270
- }
4271
- }
4272
- }
4273
- const tail = buffer.trim();
4274
- if (tail) {
4275
- try {
4276
- onProgress(JSON.parse(tail));
4277
- } catch {
4278
- }
4702
+ for (const line of lines) consume(line);
4279
4703
  }
4704
+ buffer += decoder.decode();
4705
+ consume(buffer);
4706
+ } catch (error) {
4707
+ await reader.cancel().catch(() => void 0);
4708
+ throw error;
4709
+ } finally {
4710
+ reader.releaseLock();
4711
+ }
4712
+ if (!result) {
4713
+ throw new Error("Member import ended before completion; inspect members before retrying");
4280
4714
  }
4281
- return { success: true };
4715
+ return {
4716
+ success: !hadError && (result.failed ?? 0) === 0 && (result.conflicted ?? 0) === 0,
4717
+ result
4718
+ };
4282
4719
  }
4283
4720
  /** Export members as a downloadable file with selected fields and data types. */
4284
4721
  async exportMembers(wid, selectedFields, selectedDataTypes, memberType) {
@@ -4684,6 +5121,21 @@ var MondayIntegrationApi = class extends BaseApiClient {
4684
5121
  method: "POST"
4685
5122
  });
4686
5123
  }
5124
+ /**
5125
+ * Managed-rule execution history for this connection (`GET /sync/logs`):
5126
+ * the connection's managed EventRule executions, newest first, with the
5127
+ * shared cursor pagination. Requires `apps:read`; works while the
5128
+ * connection is parked for re-authorization.
5129
+ */
5130
+ async getMondaySyncLogs(wid, params) {
5131
+ const query = new URLSearchParams();
5132
+ if (params?.pageSize) query.set("pageSize", String(params.pageSize));
5133
+ if (params?.cursor) query.set("cursor", params.cursor);
5134
+ const qs = query.toString() ? `?${query.toString()}` : "";
5135
+ return this.fetch(
5136
+ `w/${wid}/app-connections/monday/sync/logs${qs}`
5137
+ );
5138
+ }
4687
5139
  };
4688
5140
 
4689
5141
  // src/api/notification-rules.ts
@@ -4803,6 +5255,10 @@ var OrgApi = class extends BaseApiClient {
4803
5255
  async getCurrentOrgMember(orgIdOrUuid) {
4804
5256
  return this.fetch(`o/${orgIdOrUuid}/me`);
4805
5257
  }
5258
+ /** Bundles this organization owns — read-only catalog for `/o/{uuid}/library`. */
5259
+ async listOrgBundles(orgIdOrUuid) {
5260
+ return this.fetch(`o/${orgIdOrUuid}/bundles`);
5261
+ }
4806
5262
  /**
4807
5263
  * Update the settings an org admin owns: name, slug and contact details.
4808
5264
  *
@@ -4844,6 +5300,12 @@ var OrgApi = class extends BaseApiClient {
4844
5300
  * `subscriptionId` is the org-scoped row — never pick the customer's
4845
5301
  * newest subscription from the list endpoint. One customer can bill many
4846
5302
  * organizations.
5303
+ *
5304
+ * Returns the generated `OrgBillingCustomerResponse` — the contract the
5305
+ * route actually emits, `audiences` included. The hand-written mirror that
5306
+ * used to live here listed four fields and silently dropped `audiences`,
5307
+ * so callers could not see the commercial roles they hold (GRA-8792).
5308
+ * Regenerate the shape (`yarn generate:types`) rather than re-declaring it.
4847
5309
  */
4848
5310
  async getOrgBillingCustomer(orgIdOrUuid) {
4849
5311
  return this.fetch(`o/${orgIdOrUuid}/billing-customer`);
@@ -4880,7 +5342,10 @@ var OrgApi = class extends BaseApiClient {
4880
5342
  return this.fetch(`o/${orgUuid}/members/check/${accountUuid}`);
4881
5343
  }
4882
5344
  /**
4883
- * Update an organization member's role.
5345
+ * Update an organization member's role and/or org-level display name.
5346
+ *
5347
+ * `name` is the org's own label for the member (the OrgMember row and the
5348
+ * linked OrgAccount); it does not change the person's global Account name.
4884
5349
  */
4885
5350
  async updateOrganizationMember(orgIdOrUuid, memberId, data) {
4886
5351
  return this.fetch(`o/${orgIdOrUuid}/members/${memberId}`, {
@@ -5255,12 +5720,6 @@ var OrgApi = class extends BaseApiClient {
5255
5720
  // ============================================================================
5256
5721
  // Organization A2P Brand Registration API
5257
5722
  // ============================================================================
5258
- /**
5259
- * Get the org's A2P brand registration status.
5260
- */
5261
- async getA2PStatus(orgUuid) {
5262
- return this.fetch(`o/${orgUuid}/phone-numbers/a2p/status`);
5263
- }
5264
5723
  /** Return fixed phone-number and outbound-messaging prices. */
5265
5724
  async getPhoneBillingPricing(orgUuid) {
5266
5725
  return this.fetch(`o/${orgUuid}/phone-numbers/pricing`);
@@ -5269,11 +5728,30 @@ var OrgApi = class extends BaseApiClient {
5269
5728
  * Start A2P brand registration under a legal entity. `legalEntityUuid`
5270
5729
  * is required — brands register per legal entity (Customer Profile);
5271
5730
  * there is no primary-entity fallback.
5731
+ *
5732
+ * `soleProprietorMobile` is the proprietor's own mobile number, the one the
5733
+ * carrier sends the A2P one-time-password verification to. Required when the
5734
+ * entity's registration shape is a sole proprietorship (see
5735
+ * `LegalEntitySummaryResponse.requiredBrandType`); ignored otherwise.
5736
+ *
5737
+ * Three constraints belong to the customer, so the caller must state them:
5738
+ * it has to be a US or Canadian **mobile**, it cannot be a number acquired
5739
+ * from a CPaaS provider (so never one we provisioned — the carrier rejects
5740
+ * it), and the carrier allows it a lifetime maximum of three uses across all
5741
+ * A2P brand registrations, counting those made through other vendors.
5742
+ *
5743
+ * It is forwarded to the registration workflow to reach the carrier as an
5744
+ * EndUser attribute and is never stored on our side.
5272
5745
  */
5273
- async startA2PRegistration(orgUuid, legalEntityUuid, brandName, brandUuid = null) {
5746
+ async startA2PRegistration(orgUuid, legalEntityUuid, brandName, brandUuid = null, soleProprietorMobile = null) {
5274
5747
  return this.fetch(`o/${orgUuid}/phone-numbers/a2p/start`, {
5275
5748
  method: "POST",
5276
- body: JSON.stringify({ legalEntityUuid, brandName, brandUuid })
5749
+ body: JSON.stringify({
5750
+ legalEntityUuid,
5751
+ brandName,
5752
+ brandUuid,
5753
+ soleProprietorMobile
5754
+ })
5277
5755
  });
5278
5756
  }
5279
5757
  /**
@@ -5301,6 +5779,25 @@ var OrgApi = class extends BaseApiClient {
5301
5779
  }
5302
5780
  );
5303
5781
  }
5782
+ /**
5783
+ * Which legal entity's voice trust products (CNAM, SHAKEN/STIR, Voice
5784
+ * Integrity) each of the org's numbers carries, read live from Twilio.
5785
+ */
5786
+ async getPhoneVoiceTrust(orgUuid) {
5787
+ return this.fetch(`o/${orgUuid}/phone-numbers/voice-trust`);
5788
+ }
5789
+ /**
5790
+ * Put a number on a legal entity's Customer Profile and approved voice
5791
+ * trust products, taking it off any other legal entity's first. The
5792
+ * entity's business profile must be approved (400 otherwise).
5793
+ */
5794
+ async attachPhoneVoiceTrust(orgUuid, providerPhoneUuid, legalEntityUuid) {
5795
+ const body = { providerPhoneUuid, legalEntityUuid };
5796
+ return this.fetch(`o/${orgUuid}/phone-numbers/voice-trust/attach`, {
5797
+ method: "POST",
5798
+ body: JSON.stringify(body)
5799
+ });
5800
+ }
5304
5801
  // ============================================================================
5305
5802
  // Organization Business Profile API (Twilio Trust Hub Secondary CP)
5306
5803
  // ============================================================================
@@ -5470,6 +5967,16 @@ var OrgApi = class extends BaseApiClient {
5470
5967
  }
5471
5968
  );
5472
5969
  }
5970
+ /**
5971
+ * Resubmit a campaign the carrier rejected, with the brand's current
5972
+ * campaign copy. Edits the campaign in place, so no second vetting fee.
5973
+ */
5974
+ async resubmitA2PCampaign(orgUuid, brandUuid) {
5975
+ return this.fetch(
5976
+ `o/${orgUuid}/a2p-brands/${brandUuid}/resubmit-campaign`,
5977
+ { method: "POST" }
5978
+ );
5979
+ }
5473
5980
  /**
5474
5981
  * Published Sites across the org's workspaces that can be linked as this
5475
5982
  * brand's enrollment (opt-in) surface. Org-authorized, so it works even when
@@ -5482,7 +5989,7 @@ var OrgApi = class extends BaseApiClient {
5482
5989
  }
5483
5990
  /**
5484
5991
  * Link the brand to a published enrollment Site (sets `site_uuid`). Returns
5485
- * the refreshed campaign config so the editor's link state updates inline.
5992
+ * the refreshed campaign config.
5486
5993
  */
5487
5994
  async linkA2PEnrollmentSite(orgUuid, brandUuid, data) {
5488
5995
  return this.fetch(
@@ -5495,9 +6002,9 @@ var OrgApi = class extends BaseApiClient {
5495
6002
  }
5496
6003
  /**
5497
6004
  * Provision (or reuse) a patient-enrollment Site for the brand and link it —
5498
- * the one-click path behind the SMS Consent tab. `workspaceUuid` is required
5499
- * only when the org has multiple workspaces. Returns the refreshed campaign
5500
- * config so the editor's link state updates inline. Idempotent.
6005
+ * the explicit counterpart to the automatic provisioning at brand
6006
+ * registration. `workspaceUuid` is required only when the org has multiple
6007
+ * workspaces. Returns the refreshed campaign config. Idempotent.
5501
6008
  */
5502
6009
  async provisionA2PEnrollmentSite(orgUuid, brandUuid, data = {}) {
5503
6010
  return this.fetch(
@@ -5516,34 +6023,42 @@ var OrgApi = class extends BaseApiClient {
5516
6023
  );
5517
6024
  }
5518
6025
  /**
5519
- * The brand's enrollment-form template URL (carries `?brand=…`, no
5520
- * credential). `url` is null until a Site is linked. Do not append a
5521
- * patient identifier to this URL — use {@link mintA2PBrandEnrollmentLink}
5522
- * to get a patient-ready link instead.
6026
+ * Stage one A2P opt-in evidence file: get a presigned POST to send the bytes
6027
+ * straight to storage. Nothing is recorded on the brand until
6028
+ * {@link registerA2PEvidenceUpload} reads the object back and normalizes it.
5523
6029
  */
5524
- async getA2PBrandEnrollmentUrl(orgUuid, brandUuid) {
6030
+ async createA2PEvidenceUploadUrl(orgUuid, brandUuid, data) {
5525
6031
  return this.fetch(
5526
- `o/${orgUuid}/a2p-brands/${brandUuid}/enrollment-url`
6032
+ `o/${orgUuid}/a2p-brands/${brandUuid}/evidence-attachments/upload-url`,
6033
+ {
6034
+ method: "POST",
6035
+ body: JSON.stringify(data)
6036
+ }
5527
6037
  );
5528
6038
  }
5529
6039
  /**
5530
- * Mint a patient-ready enrollment link for one patient.
5531
- *
5532
- * The returned URL carries a fresh, expiring, single-use `?grant=…` bound to
5533
- * the member that `externalId` resolves to. `externalId` (the patient's
5534
- * CRM/EHR identifier) travels in the request body, never the query string,
5535
- * so it stays out of access logs. When it matches no member, the
5536
- * credential-free template URL is returned rather than an error.
6040
+ * Normalize a staged evidence upload and record it on the brand. Returns the
6041
+ * refreshed campaign config, so the editor's evidence list updates without a
6042
+ * second round trip.
5537
6043
  */
5538
- async mintA2PBrandEnrollmentLink(orgUuid, brandUuid, externalId) {
6044
+ async registerA2PEvidenceUpload(orgUuid, brandUuid, data) {
5539
6045
  return this.fetch(
5540
- `o/${orgUuid}/a2p-brands/${brandUuid}/enrollment-url`,
6046
+ `o/${orgUuid}/a2p-brands/${brandUuid}/evidence-attachments`,
5541
6047
  {
5542
6048
  method: "POST",
5543
- body: JSON.stringify({ externalId })
6049
+ body: JSON.stringify(data)
5544
6050
  }
5545
6051
  );
5546
6052
  }
6053
+ /** Remove one uploaded evidence artifact. */
6054
+ async deleteA2PEvidenceUpload(orgUuid, brandUuid, attachmentUuid) {
6055
+ return this.fetch(
6056
+ `o/${orgUuid}/a2p-brands/${brandUuid}/evidence-attachments/${encodeURIComponent(
6057
+ attachmentUuid
6058
+ )}`,
6059
+ { method: "DELETE" }
6060
+ );
6061
+ }
5547
6062
  /**
5548
6063
  * List available member roles for a workspace in the organization.
5549
6064
  */
@@ -5568,6 +6083,9 @@ var OrgApi = class extends BaseApiClient {
5568
6083
  async listOrgWebhookEndpoints(orgIdOrUuid) {
5569
6084
  return this.fetch(`o/${orgIdOrUuid}/webhooks`);
5570
6085
  }
6086
+ async getOrgWebhookEndpoint(orgIdOrUuid, endpointUuid) {
6087
+ return this.fetch(`o/${orgIdOrUuid}/webhooks/${endpointUuid}`);
6088
+ }
5571
6089
  /**
5572
6090
  * The subscribable event-type vocabulary for the org UI's event-type
5573
6091
  * picker — exactly what the create/update validators accept, so the UI
@@ -5626,6 +6144,39 @@ var OrgApi = class extends BaseApiClient {
5626
6144
  }
5627
6145
  );
5628
6146
  }
6147
+ // =========================================================================
6148
+ // Organization API keys (GRA-9043)
6149
+ // =========================================================================
6150
+ /**
6151
+ * List every API key bound to this organization. Never carries the secret.
6152
+ *
6153
+ * Org-bound keys authenticate as an org-local principal, so one key reaches
6154
+ * every current workspace of the organization and every workspace created
6155
+ * later. Gated by `org:api_keys`, which `org:admin` holds transitively.
6156
+ */
6157
+ async listOrgApiKeys(orgIdOrUuid) {
6158
+ return this.fetch(`o/${orgIdOrUuid}/api-keys`);
6159
+ }
6160
+ /**
6161
+ * Mint an org-bound API key.
6162
+ *
6163
+ * The payload is the same client-only {@link ApiKeyFormData} the workspace
6164
+ * and account routes take — `{name, expiresInDays, scopes}`, no workspace
6165
+ * id: the mint location is what binds the key. The response carries `key`,
6166
+ * the plaintext secret, which is readable exactly once.
6167
+ */
6168
+ async createOrgApiKey(orgIdOrUuid, apiKey) {
6169
+ return this.fetch(`o/${orgIdOrUuid}/api-keys`, {
6170
+ method: "POST",
6171
+ body: JSON.stringify(apiKey)
6172
+ });
6173
+ }
6174
+ /** Revoke an org-bound API key by its id. */
6175
+ async revokeOrgApiKey(orgIdOrUuid, keyId) {
6176
+ return this.fetch(`o/${orgIdOrUuid}/api-keys/${keyId}`, {
6177
+ method: "DELETE"
6178
+ });
6179
+ }
5629
6180
  };
5630
6181
  function businessProfilePath(orgUuid, legalEntityUuid) {
5631
6182
  return legalEntityUuid ? `o/${orgUuid}/legal-entities/${legalEntityUuid}/business-profile` : `o/${orgUuid}/business-profile`;
@@ -6162,6 +6713,14 @@ var QualificationsApi = class extends BaseApiClient {
6162
6713
  });
6163
6714
  }
6164
6715
  // ===== Test chat runs =====
6716
+ /**
6717
+ * List a Workflow's test chat runs, newest first (default 50, max 500).
6718
+ *
6719
+ * `workflowRevisionId` narrows to that revision before the limit applies.
6720
+ * `includeEarlierRevisions` widens the window to earlier published
6721
+ * revisions and runs whose revision was deleted, and requires
6722
+ * `workflowRevisionId`. Omitting both keeps the unfiltered list.
6723
+ */
6165
6724
  async listTestChatRuns(wid, workflowId, params) {
6166
6725
  const query = new URLSearchParams();
6167
6726
  if (params?.scenarioId !== void 0) query.set("scenarioId", String(params.scenarioId));
@@ -6169,11 +6728,36 @@ var QualificationsApi = class extends BaseApiClient {
6169
6728
  query.set("assistantChatModelId", params.assistantChatModelId);
6170
6729
  }
6171
6730
  if (params?.limit !== void 0) query.set("limit", String(params.limit));
6731
+ if (params?.workflowRevisionId !== void 0) {
6732
+ query.set("workflow_revision_id", String(params.workflowRevisionId));
6733
+ }
6734
+ if (params?.includeEarlierRevisions !== void 0) {
6735
+ query.set("include_earlier_revisions", String(params.includeEarlierRevisions));
6736
+ }
6172
6737
  const qs = query.toString() ? `?${query.toString()}` : "";
6173
6738
  return this.fetch(
6174
6739
  `w/${wid}/qualifications/workflows/${workflowId}/test-chat-runs${qs}`
6175
6740
  );
6176
6741
  }
6742
+ /**
6743
+ * Exact scenario health for one revision of a Workflow: every active
6744
+ * scenario's server-decided state, caption, counts and per-revision pass
6745
+ * rates, plus the board headline. Scenarios arrive in board order.
6746
+ *
6747
+ * Omit `workflowRevisionId` for the server's current revision (the newest
6748
+ * with runs, the Draft counting as newest); the response names the
6749
+ * revision it describes and whether it is the current one.
6750
+ */
6751
+ async listScenarioHealthSummaries(wid, workflowId, params) {
6752
+ const query = new URLSearchParams();
6753
+ if (params?.workflowRevisionId !== void 0) {
6754
+ query.set("workflow_revision_id", String(params.workflowRevisionId));
6755
+ }
6756
+ const qs = query.toString() ? `?${query.toString()}` : "";
6757
+ return this.fetch(
6758
+ `w/${wid}/qualifications/workflows/${workflowId}/scenario-health-summaries${qs}`
6759
+ );
6760
+ }
6177
6761
  async getTestChatRun(wid, runId) {
6178
6762
  return this.fetch(`w/${wid}/qualifications/test-chat-runs/${runId}`);
6179
6763
  }
@@ -6269,6 +6853,96 @@ var ReportsApi = class extends BaseApiClient {
6269
6853
  }
6270
6854
  };
6271
6855
 
6856
+ // src/types/generated/communication.ts
6857
+ var RoutingActionType = {
6858
+ answer_ai: "answer_ai",
6859
+ answer_human: "answer_human",
6860
+ answer_owner: "answer_owner",
6861
+ voicemail: "voicemail",
6862
+ play_message: "play_message",
6863
+ ignore: "ignore",
6864
+ signup: "signup"
6865
+ };
6866
+ var RoutingAudience = {
6867
+ anyone: "anyone",
6868
+ anonymous: "anonymous",
6869
+ members: "members"
6870
+ };
6871
+ var RoutingChannel = {
6872
+ pstn: "pstn",
6873
+ messaging: "messaging",
6874
+ email: "email"
6875
+ };
6876
+ var RoutingTimeWindow = {
6877
+ always: "always",
6878
+ business_hours: "business_hours",
6879
+ non_business_hours: "non_business_hours",
6880
+ custom: "custom"
6881
+ };
6882
+
6883
+ // src/api/routing-rules.ts
6884
+ function appendFilters(params, filters) {
6885
+ if (!filters) return;
6886
+ if (filters.channel !== void 0) params.set("channel", filters.channel);
6887
+ if (filters.phoneNumberId !== void 0)
6888
+ params.set("phoneNumberId", String(filters.phoneNumberId));
6889
+ if (filters.inboxId !== void 0) params.set("inboxId", String(filters.inboxId));
6890
+ if (filters.page !== void 0) params.set("page", String(filters.page));
6891
+ if (filters.pageSize !== void 0) params.set("pageSize", String(filters.pageSize));
6892
+ }
6893
+ var RoutingRulesApi = class extends BaseApiClient {
6894
+ /** List one endpoint's rules. Requires the rule's endpoint read permission (`phones:read`, or `inboxes:read`). */
6895
+ async getRoutingRules(wid, filters) {
6896
+ const params = new URLSearchParams();
6897
+ appendFilters(params, filters);
6898
+ const query = params.toString();
6899
+ return this.fetch(
6900
+ `w/${wid}/routing${query ? `?${query}` : ""}`
6901
+ );
6902
+ }
6903
+ /** Read one rule. Requires the rule's endpoint read permission (`phones:read`, or `inboxes:read`). */
6904
+ async getRoutingRule(wid, ruleUuid) {
6905
+ return this.fetch(`w/${wid}/routing/${ruleUuid}`);
6906
+ }
6907
+ /** Create a rule. Requires the rule's endpoint write permission (`phones:write`, or `inboxes:write`). */
6908
+ async createRoutingRule(wid, data) {
6909
+ return this.fetch(`w/${wid}/routing`, {
6910
+ method: "POST",
6911
+ body: JSON.stringify(data)
6912
+ });
6913
+ }
6914
+ /** Update a rule. Requires the rule's endpoint write permission (`phones:write`, or `inboxes:write`). */
6915
+ async updateRoutingRule(wid, ruleUuid, data) {
6916
+ return this.fetch(`w/${wid}/routing/${ruleUuid}`, {
6917
+ method: "PATCH",
6918
+ body: JSON.stringify(data)
6919
+ });
6920
+ }
6921
+ /** Hard-delete a rule. Requires the rule's endpoint write permission (`phones:write`, or `inboxes:write`); the server audits deletion. */
6922
+ async deleteRoutingRule(wid, ruleUuid) {
6923
+ return this.fetch(`w/${wid}/routing/${ruleUuid}`, {
6924
+ method: "DELETE"
6925
+ });
6926
+ }
6927
+ /** Atomically reorder one endpoint/channel scope. Requires the rule's endpoint write permission (`phones:write`, or `inboxes:write`). */
6928
+ async reorderRoutingRules(wid, ruleUuids) {
6929
+ return this.fetch(`w/${wid}/routing/reorder`, {
6930
+ method: "POST",
6931
+ body: JSON.stringify({ ruleUuids })
6932
+ });
6933
+ }
6934
+ /**
6935
+ * Dry-run rule evaluation without placing or sending anything. Requires
6936
+ * the rule's endpoint read permission (`phones:read`, or `inboxes:read`); previewing a named Member also requires `members:read`.
6937
+ */
6938
+ async previewRoutingRule(wid, data) {
6939
+ return this.fetch(`w/${wid}/routing/preview`, {
6940
+ method: "POST",
6941
+ body: JSON.stringify(data)
6942
+ });
6943
+ }
6944
+ };
6945
+
6272
6946
  // src/api/salesforce.ts
6273
6947
  var SalesforceApi = class extends BaseApiClient {
6274
6948
  /**
@@ -6349,6 +7023,20 @@ var SalesforceApi = class extends BaseApiClient {
6349
7023
  body: JSON.stringify(data)
6350
7024
  });
6351
7025
  }
7026
+ /**
7027
+ * Start a durable run that links unlinked members by Salesforce Id / email
7028
+ * and hydrates them. One run per connection; a second start while one is
7029
+ * in flight is 409.
7030
+ */
7031
+ async linkUnlinkedSalesforceMembersByIdentity(wid) {
7032
+ return this.fetch(
7033
+ `w/${wid}/app-connections/salesforce/reconciliation/link-unlinked-by-identity`,
7034
+ {
7035
+ method: "POST",
7036
+ body: JSON.stringify({})
7037
+ }
7038
+ );
7039
+ }
6352
7040
  async unlinkMemberFromSalesforce(wid, memberId) {
6353
7041
  return this.fetch(`w/${wid}/app-connections/salesforce/reconciliation/unlink/${memberId}`, {
6354
7042
  method: "DELETE"
@@ -6430,6 +7118,21 @@ var SalesforceApi = class extends BaseApiClient {
6430
7118
  }
6431
7119
  );
6432
7120
  }
7121
+ /**
7122
+ * Managed-rule execution history for this connection (`GET /sync/logs`):
7123
+ * the connection's managed EventRule executions, newest first, with the
7124
+ * shared cursor pagination. Requires `apps:read`; works while the
7125
+ * connection is parked for re-authorization.
7126
+ */
7127
+ async getSalesforceSyncLogs(wid, params) {
7128
+ const query = new URLSearchParams();
7129
+ if (params?.pageSize) query.set("pageSize", String(params.pageSize));
7130
+ if (params?.cursor) query.set("cursor", params.cursor);
7131
+ const qs = query.toString() ? `?${query.toString()}` : "";
7132
+ return this.fetch(
7133
+ `w/${wid}/app-connections/salesforce/sync/logs${qs}`
7134
+ );
7135
+ }
6433
7136
  };
6434
7137
 
6435
7138
  // src/api/connection-sync.ts
@@ -6620,12 +7323,19 @@ var HubspotApi = class extends BaseApiClient {
6620
7323
  async getHubspotManagedRules(wid) {
6621
7324
  return this.fetch(`w/${wid}/app-connections/hubspot/managed-rules`);
6622
7325
  }
7326
+ /**
7327
+ * Managed-rule execution history for this connection (`GET /sync/logs`).
7328
+ * Rows are the shared rule-execution response (the same shape the Salesforce
7329
+ * and Monday twins return), with cursor pagination.
7330
+ */
6623
7331
  async getHubspotSyncLogs(wid, params) {
6624
7332
  const query = new URLSearchParams();
6625
7333
  if (params?.pageSize) query.set("pageSize", String(params.pageSize));
6626
7334
  if (params?.cursor) query.set("cursor", params.cursor);
6627
7335
  const qs = query.toString() ? `?${query.toString()}` : "";
6628
- return this.fetch(`w/${wid}/app-connections/hubspot/sync/logs${qs}`);
7336
+ return this.fetch(
7337
+ `w/${wid}/app-connections/hubspot/sync/logs${qs}`
7338
+ );
6629
7339
  }
6630
7340
  async getHubspotTransformPresets(wid) {
6631
7341
  return this.fetch(
@@ -7539,6 +8249,33 @@ var JourneysApi = class extends BaseApiClient {
7539
8249
  body: JSON.stringify(data)
7540
8250
  });
7541
8251
  }
8252
+ /**
8253
+ * Discard a saved editor draft, keeping the runnable definition.
8254
+ *
8255
+ * Body-less: a DELETE carries no document, only the resource to remove and
8256
+ * `expectedUpdatedAt` — the Journey's `updatedAt` as the caller loaded it —
8257
+ * proving they are removing the draft they were looking at. Encoded through
8258
+ * `URLSearchParams` because an ISO timestamp with a positive UTC offset
8259
+ * contains a `+`, which a raw template string would deliver to the server as
8260
+ * a space and turn into a revision conflict nobody can explain.
8261
+ *
8262
+ * Returns the AUTHORING projection (`Journey`) with `authoringDraft: null`
8263
+ * and the advanced `updatedAt`, so the caller can re-derive from the stored
8264
+ * definition without a second read.
8265
+ *
8266
+ * Refusals match the PUT's vocabulary: `journey_v2_definition_conflict`
8267
+ * (someone saved first — nothing was removed),
8268
+ * `journey_v2_structural_edit_not_allowed` (the Journey is live or archived)
8269
+ * and `journey_v2_execution_model_mismatch` (it is legacy). A Journey that
8270
+ * has no saved draft is a success, not an error — the state the caller asked
8271
+ * for is the state it is in.
8272
+ */
8273
+ async deleteJourneyDraft(wid, journeyId, expectedUpdatedAt) {
8274
+ const query = new URLSearchParams({ expectedUpdatedAt });
8275
+ return this.fetch(`w/${wid}/journeys/${journeyId}/draft?${query.toString()}`, {
8276
+ method: "DELETE"
8277
+ });
8278
+ }
7542
8279
  /**
7543
8280
  * List journeys, optionally including archived, paginated.
7544
8281
  *
@@ -7945,15 +8682,11 @@ var WorkflowsApi = class extends BaseApiClient {
7945
8682
  return this.fetch(`w/${wid}/workflows/${id}/diagram${query}`);
7946
8683
  }
7947
8684
  /**
7948
- * Get workflow thumbnail URL.
7949
- * For cross-domain setups, returns a same-origin proxy URL to ensure cookies are sent.
7950
- * For same-origin setups, returns the direct API URL.
8685
+ * The outline a Workflow's diagram is drawn from: its active Tasks, its
8686
+ * start Task, the moves between Tasks and its Ability types.
7951
8687
  */
7952
- getWorkflowThumbnailUrl(wid, id) {
7953
- if (this.isCrossDomain) {
7954
- return `/api/v2/w/${wid}/workflows/${id}/thumbnail`;
7955
- }
7956
- return `${this.baseUrl}/api/v2/w/${wid}/workflows/${id}/thumbnail`;
8688
+ async getWorkflowOutline(wid, id) {
8689
+ return this.fetch(`w/${wid}/workflows/${id}/outline`);
7957
8690
  }
7958
8691
  /** Create a new workflow in a workspace. */
7959
8692
  async createWorkflow(wid, workflow) {
@@ -8036,11 +8769,6 @@ var WorkflowsApi = class extends BaseApiClient {
8036
8769
  `w/${wid}/workflows/${workflowId}/tasks/${taskId}/chats?${params.toString()}`
8037
8770
  );
8038
8771
  }
8039
- async getWorkflowAccessValidation(wid, workflowId) {
8040
- return this.fetch(
8041
- `w/${wid}/workflows/${workflowId}/validate-access`
8042
- );
8043
- }
8044
8772
  async getWorkflowConfigValidation(wid, workflowId) {
8045
8773
  return this.fetch(
8046
8774
  `w/${wid}/workflows/${workflowId}/validate-config`
@@ -8308,21 +9036,6 @@ function encodePermissions(permissions) {
8308
9036
  if (permissions.delete) accessMode |= PERMISSION_DELETE;
8309
9037
  return accessMode;
8310
9038
  }
8311
- var WORKFLOW_IMPLICIT_USE_SCOPE = "workflows:admin";
8312
- function roleImplicitWorkflowUseScope(role) {
8313
- return (role.grantedScopes ?? []).includes(WORKFLOW_IMPLICIT_USE_SCOPE) ? WORKFLOW_IMPLICIT_USE_SCOPE : null;
8314
- }
8315
- function roleWorkflowAccess(role, workflowId) {
8316
- const viaScope = roleImplicitWorkflowUseScope(role);
8317
- if (viaScope) {
8318
- return { accessMode: PERMISSION_USE | PERMISSION_EDIT, viaScope };
8319
- }
8320
- const entry = (role.workflowAccess ?? []).find((wa) => wa.workflowId === workflowId);
8321
- return { accessMode: entry?.accessMode ?? PERMISSION_NONE, viaScope: null };
8322
- }
8323
- function roleCanUseWorkflow(role, workflowId) {
8324
- return (roleWorkflowAccess(role, workflowId).accessMode & PERMISSION_USE) !== 0;
8325
- }
8326
9039
  var Scope = /* @__PURE__ */ ((Scope2) => {
8327
9040
  Scope2["WORKSPACE_READ"] = "workspace:read";
8328
9041
  Scope2["WORKSPACE_WRITE"] = "workspace:write";
@@ -8391,6 +9104,7 @@ var Scope = /* @__PURE__ */ ((Scope2) => {
8391
9104
  Scope2["LABELS_READ"] = "labels:read";
8392
9105
  Scope2["LABELS_WRITE"] = "labels:write";
8393
9106
  Scope2["ANALYTICS_READ"] = "analytics:read";
9107
+ Scope2["ANONYMOUS_SUBMISSIONS_READ"] = "anonymous_submissions:read";
8394
9108
  Scope2["OPERATOR_READ"] = "operator:read";
8395
9109
  Scope2["OPERATOR_WRITE"] = "operator:write";
8396
9110
  Scope2["EXPORT_READ"] = "export:read";
@@ -8414,6 +9128,8 @@ var BulkMemberResultStatus = {
8414
9128
  skipped: "skipped"
8415
9129
  };
8416
9130
  var MemberImportMatchInfoMatchType = {
9131
+ id: "id",
9132
+ uuid: "uuid",
8417
9133
  external_id: "external_id",
8418
9134
  email: "email",
8419
9135
  phone: "phone",
@@ -8435,6 +9151,36 @@ var MergeMemberRolesRequestAccessStrategy = {
8435
9151
  target_only: "target_only"
8436
9152
  };
8437
9153
 
9154
+ // src/types/generated/member_contact_point.ts
9155
+ var CreateMemberContactPointRequestContactType = {
9156
+ phone: "phone",
9157
+ email: "email"
9158
+ };
9159
+ var CreateMemberContactPointRequestPurpose = {
9160
+ general: "general",
9161
+ notification: "notification",
9162
+ billing: "billing"
9163
+ };
9164
+ var CreateMemberContactPointRequestSharing = {
9165
+ shared: "shared",
9166
+ individual: "individual",
9167
+ unknown: "unknown"
9168
+ };
9169
+ var UpdateMemberContactPointRequestContactType = {
9170
+ phone: "phone",
9171
+ email: "email"
9172
+ };
9173
+ var UpdateMemberContactPointRequestPurpose = {
9174
+ general: "general",
9175
+ notification: "notification",
9176
+ billing: "billing"
9177
+ };
9178
+ var UpdateMemberContactPointRequestSharing = {
9179
+ shared: "shared",
9180
+ individual: "individual",
9181
+ unknown: "unknown"
9182
+ };
9183
+
8438
9184
  // src/types/member-types.ts
8439
9185
  var MemberType = /* @__PURE__ */ ((MemberType2) => {
8440
9186
  MemberType2["ANONYMOUS"] = "anonymous";
@@ -8521,6 +9267,7 @@ var EventRuleEventType = /* @__PURE__ */ ((EventRuleEventType2) => {
8521
9267
  EventRuleEventType2["CHAT_CREATED"] = "chat:created";
8522
9268
  EventRuleEventType2["CHAT_SUMMARY"] = "chat:summary";
8523
9269
  EventRuleEventType2["MESSAGE_CREATED"] = "message:created";
9270
+ EventRuleEventType2["LINK_CLICKED"] = "link:clicked";
8524
9271
  EventRuleEventType2["CHAT_CALLBACK"] = "chat:callback";
8525
9272
  EventRuleEventType2["MEMBER_UPDATED"] = "member:updated";
8526
9273
  EventRuleEventType2["ROUTINE_TRIGGERED"] = "routine:triggered";
@@ -8584,6 +9331,20 @@ function eventRuleActionParams(params) {
8584
9331
  }
8585
9332
  var MASKED_SECRET_SENTINEL = "__SECRET_SET__";
8586
9333
 
9334
+ // src/types/generated/credit_stop_service.ts
9335
+ var SendingNextStep = {
9336
+ add_credits: "add_credits",
9337
+ subscribe: "subscribe",
9338
+ contact_billing_owner: "contact_billing_owner"
9339
+ };
9340
+ var SendingStopState = {
9341
+ ok: "ok",
9342
+ credits_suspended: "credits_suspended",
9343
+ out_of_credits: "out_of_credits",
9344
+ operator_suspension: "operator_suspension",
9345
+ billing_unresolved: "billing_unresolved"
9346
+ };
9347
+
8587
9348
  // src/types/billing-types.ts
8588
9349
  var WorkspaceFeature = /* @__PURE__ */ ((WorkspaceFeature2) => {
8589
9350
  WorkspaceFeature2["PHONE"] = "phone";
@@ -8599,7 +9360,6 @@ var WorkspaceFeature = /* @__PURE__ */ ((WorkspaceFeature2) => {
8599
9360
  WorkspaceFeature2["WEB_SEARCH"] = "web_search";
8600
9361
  WorkspaceFeature2["CALENDAR"] = "calendar";
8601
9362
  WorkspaceFeature2["JOURNEY_V2_EDITOR"] = "journey_v2_editor";
8602
- WorkspaceFeature2["EXPERIMENTS"] = "experiments";
8603
9363
  WorkspaceFeature2["MAILBOX_USER_INPUT"] = "mailbox_user_input";
8604
9364
  WorkspaceFeature2["FORKED_TRAJECTORIES"] = "forked_trajectories";
8605
9365
  WorkspaceFeature2["GMAIL"] = "gmail";
@@ -8620,6 +9380,7 @@ var WorkspaceFeature = /* @__PURE__ */ ((WorkspaceFeature2) => {
8620
9380
  WorkspaceFeature2["IMAGE_GENERATION"] = "image_generation";
8621
9381
  WorkspaceFeature2["CHARLESTON_NEPHROLOGY_PMD_PAGING"] = "charleston_nephrology_pmd_paging";
8622
9382
  WorkspaceFeature2["PATIENTSYNC_TRANSFER"] = "patientsync_transfer";
9383
+ WorkspaceFeature2["COSAN_PATHWAYS_SCHEDULING"] = "cosan_pathways_scheduling";
8623
9384
  return WorkspaceFeature2;
8624
9385
  })(WorkspaceFeature || {});
8625
9386
  var MemberFeature = /* @__PURE__ */ ((MemberFeature2) => {
@@ -8724,6 +9485,7 @@ var ModelProvider = {
8724
9485
  deepgram: "deepgram",
8725
9486
  xai: "xai",
8726
9487
  fireworks: "fireworks",
9488
+ vercel: "vercel",
8727
9489
  custom: "custom"
8728
9490
  };
8729
9491
  var ModelType = {
@@ -8775,7 +9537,26 @@ var FhirClientType = /* @__PURE__ */ ((FhirClientType2) => {
8775
9537
  return FhirClientType2;
8776
9538
  })(FhirClientType || {});
8777
9539
 
9540
+ // src/types/app-connection-types.ts
9541
+ var CrmActivityKind = /* @__PURE__ */ ((CrmActivityKind2) => {
9542
+ CrmActivityKind2["MESSAGE"] = "message";
9543
+ CrmActivityKind2["SUMMARY"] = "summary";
9544
+ CrmActivityKind2["CHAT_STARTED"] = "chat_started";
9545
+ CrmActivityKind2["CALL_STARTED"] = "call_started";
9546
+ CrmActivityKind2["CALL_ENDED"] = "call_ended";
9547
+ return CrmActivityKind2;
9548
+ })(CrmActivityKind || {});
9549
+
8778
9550
  // src/types/generated/qualification.ts
9551
+ var RunHealthCategory = {
9552
+ passed: "passed",
9553
+ failed: "failed",
9554
+ running: "running",
9555
+ not_applicable: "not_applicable",
9556
+ awaiting_evaluation: "awaiting_evaluation",
9557
+ ungradeable: "ungradeable",
9558
+ incomplete: "incomplete"
9559
+ };
8779
9560
  var TestChatRunLane = {
8780
9561
  text: "text",
8781
9562
  web_realtime: "web_realtime",
@@ -8793,6 +9574,44 @@ var TestChatRunOutcome = {
8793
9574
  instrument_failure: "instrument_failure"
8794
9575
  };
8795
9576
 
9577
+ // src/types/generated/qualification_health_service.ts
9578
+ var ScenarioHealthCaption = {
9579
+ recent_passes: "recent_passes",
9580
+ pass_ratio: "pass_ratio",
9581
+ could_not_grade: "could_not_grade",
9582
+ awaiting_evaluation: "awaiting_evaluation",
9583
+ running: "running",
9584
+ not_run_since_test_change: "not_run_since_test_change",
9585
+ not_run_on_revision: "not_run_on_revision",
9586
+ never_run: "never_run"
9587
+ };
9588
+ var ScenarioHealthHeadline = {
9589
+ needs_attention: "needs_attention",
9590
+ no_results: "no_results",
9591
+ all_passing: "all_passing",
9592
+ no_scenarios: "no_scenarios"
9593
+ };
9594
+ var ScenarioHealthSampleNote = {
9595
+ low_sample: "low_sample"
9596
+ };
9597
+ var ScenarioHealthState = {
9598
+ failing: "failing",
9599
+ flaky: "flaky",
9600
+ no_results: "no_results",
9601
+ passing: "passing"
9602
+ };
9603
+
9604
+ // src/types/generated/qualification_health_summary.ts
9605
+ var RevisionHistorySegment = {
9606
+ before_test_change: "before_test_change"
9607
+ };
9608
+
9609
+ // src/types/generated/qualification_run_identity.ts
9610
+ var ScenarioRunBlocker = {
9611
+ missing_persona: "missing_persona",
9612
+ archived_persona: "archived_persona"
9613
+ };
9614
+
8796
9615
  // src/types/qualification-types.ts
8797
9616
  var CriterionType = /* @__PURE__ */ ((CriterionType2) => {
8798
9617
  CriterionType2["EXPRESSION"] = "expression";
@@ -9087,8 +9906,6 @@ var CONFIG_HEALTH_FACADE_CHECK_SLUGS = [
9087
9906
  "workflow.config",
9088
9907
  "journey.authoring",
9089
9908
  "journey.v2_validation",
9090
- "workflow.access",
9091
- "routine.workflow_access",
9092
9909
  "workspace.validation"
9093
9910
  ];
9094
9911
  function isConfigHealthFacadeCheckSlug(value) {
@@ -9780,17 +10597,17 @@ var WorkspacesApi = class extends BaseApiClient {
9780
10597
  body: JSON.stringify(payload)
9781
10598
  });
9782
10599
  }
9783
- /** List available themes for a workspace. */
10600
+ /**
10601
+ * List available themes for a workspace.
10602
+ *
10603
+ * Read-only: `…/themes` serves GET and nothing else. `Workspace.themes` is
10604
+ * an entitlement allowlist — which non-global themes this workspace may
10605
+ * select. There was never a `PUT …/themes` route; the
10606
+ * `updateWorkspaceThemes` method that targeted one always 405'd (GRA-8892).
10607
+ */
9784
10608
  async getWorkspaceThemes(wid) {
9785
10609
  return this.fetch(`w/${wid}/themes`);
9786
10610
  }
9787
- /** Update the active themes for a workspace. */
9788
- async updateWorkspaceThemes(wid, themes) {
9789
- return this.fetch(`w/${wid}/themes`, {
9790
- method: "PUT",
9791
- body: JSON.stringify({ themes })
9792
- });
9793
- }
9794
10611
  /**
9795
10612
  * Get all workspace-grantable scopes that can be assigned to member roles.
9796
10613
  *
@@ -9856,10 +10673,18 @@ var DashboardsApi = class extends BaseApiClient {
9856
10673
  `w/${wid}/dashboards/stats/channels${query ? `?${query}` : ""}`
9857
10674
  );
9858
10675
  }
9859
- /** Assignment status rollup per root workflow. */
9860
- async getDashboardWorkflowAssignmentStats(wid) {
10676
+ /**
10677
+ * Assignment status rollup per root workflow.
10678
+ *
10679
+ * `hours` windows the rollup to runs STARTED within the last N hours.
10680
+ * Omit it (or pass null) for the all-time rollup.
10681
+ */
10682
+ async getDashboardWorkflowAssignmentStats(wid, options) {
10683
+ const params = new URLSearchParams();
10684
+ if (options?.hours != null) params.append("hours", options.hours.toString());
10685
+ const query = params.toString();
9861
10686
  return this.fetch(
9862
- `w/${wid}/dashboards/stats/workflow-assignments`
10687
+ `w/${wid}/dashboards/stats/workflow-assignments${query ? `?${query}` : ""}`
9863
10688
  );
9864
10689
  }
9865
10690
  /**
@@ -10675,6 +11500,8 @@ function createApiModules(apiKey, baseUrl, customFetch) {
10675
11500
  assignments: new AssignmentsApi(apiKey, baseUrl, customFetch),
10676
11501
  auth: new AuthApi(apiKey, baseUrl, customFetch),
10677
11502
  builders: new BuildersApi(apiKey, baseUrl, customFetch),
11503
+ bundles: new BundlesApi(apiKey, baseUrl, customFetch),
11504
+ installations: new InstallationsApi(apiKey, baseUrl, customFetch),
10678
11505
  calendars: new CalendarsApi(apiKey, baseUrl, customFetch),
10679
11506
  calls: new CallsApi(apiKey, baseUrl, customFetch),
10680
11507
  cel: new CELApi(apiKey, baseUrl, customFetch),
@@ -10723,6 +11550,8 @@ function createApiModules(apiKey, baseUrl, customFetch) {
10723
11550
  metrics: new MetricsApi(apiKey, baseUrl, customFetch),
10724
11551
  queries: new QueriesApi(apiKey, baseUrl, customFetch),
10725
11552
  reports: new ReportsApi(apiKey, baseUrl, customFetch),
11553
+ resourceWorkflows: new ResourceWorkflowsApi(apiKey, baseUrl, customFetch),
11554
+ routingRules: new RoutingRulesApi(apiKey, baseUrl, customFetch),
10726
11555
  salesforce: new SalesforceApi(apiKey, baseUrl, customFetch),
10727
11556
  sites: new SitesApi(apiKey, baseUrl, customFetch),
10728
11557
  subscriptions: new SubscriptionsApi(apiKey, baseUrl, customFetch),
@@ -10752,6 +11581,7 @@ var WORKSPACE_METHOD_NAMES = [
10752
11581
  "archiveDataType",
10753
11582
  "archiveJourney",
10754
11583
  "archiveMember",
11584
+ "archiveMemberByExternalId",
10755
11585
  "archiveMemberRelationship",
10756
11586
  "archivePersona",
10757
11587
  "archivePhoneNumber",
@@ -10778,7 +11608,6 @@ var WORKSPACE_METHOD_NAMES = [
10778
11608
  "checkSiteSlugAvailability",
10779
11609
  "claimDevicePairing",
10780
11610
  "clearConnectionMemberExclusion",
10781
- "clearMemberSwitch",
10782
11611
  "clearTrackedLinkDestinations",
10783
11612
  "clickWorkspaceSupportRequestResource",
10784
11613
  "cloneDataType",
@@ -10801,6 +11630,9 @@ var WORKSPACE_METHOD_NAMES = [
10801
11630
  "createAgent",
10802
11631
  "createApiKey",
10803
11632
  "createAssignment",
11633
+ "bindInstallationSlots",
11634
+ "restoreInstallationForm",
11635
+ "createBundle",
10804
11636
  "createCalendar",
10805
11637
  "createCalendarEvent",
10806
11638
  "createCalendarEventType",
@@ -10849,6 +11681,7 @@ var WORKSPACE_METHOD_NAMES = [
10849
11681
  "createPhoneNumber",
10850
11682
  "createProduct",
10851
11683
  "createRoutine",
11684
+ "createRoutingRule",
10852
11685
  "createScenario",
10853
11686
  "createSignup",
10854
11687
  "createSite",
@@ -10899,6 +11732,7 @@ var WORKSPACE_METHOD_NAMES = [
10899
11732
  "deleteGoal",
10900
11733
  "deleteHubspot",
10901
11734
  "deleteInbox",
11735
+ "deleteJourneyDraft",
10902
11736
  "deleteJourneyNote",
10903
11737
  "deleteMcpServer",
10904
11738
  "deleteMember",
@@ -10916,6 +11750,7 @@ var WORKSPACE_METHOD_NAMES = [
10916
11750
  "deletePlatformApp",
10917
11751
  "deleteProduct",
10918
11752
  "deleteRoutine",
11753
+ "deleteRoutingRule",
10919
11754
  "deleteSalesforce",
10920
11755
  "deleteScenario",
10921
11756
  "deleteSite",
@@ -10948,6 +11783,7 @@ var WORKSPACE_METHOD_NAMES = [
10948
11783
  "dismissAllNotifications",
10949
11784
  "dismissNotification",
10950
11785
  "downloadEmailAttachment",
11786
+ "downloadFileContents",
10951
11787
  "downloadFilesZip",
10952
11788
  "downloadSiteSourceZip",
10953
11789
  "editWorkflowRevisionAsDraft",
@@ -11010,6 +11846,7 @@ var WORKSPACE_METHOD_NAMES = [
11010
11846
  "getAgentTasks",
11011
11847
  "getAgents",
11012
11848
  "getAnonymousResolution",
11849
+ "getAnonymousFormSubmission",
11013
11850
  "getAnonymousResolutions",
11014
11851
  "getApiKeys",
11015
11852
  "getArchiveBlockers",
@@ -11023,6 +11860,12 @@ var WORKSPACE_METHOD_NAMES = [
11023
11860
  "getAvailableActions",
11024
11861
  "getAvailablePhoneNumbers",
11025
11862
  "getAvailableSlots",
11863
+ "getInstallation",
11864
+ "getInstallationReadiness",
11865
+ "getThemeSettingsSchema",
11866
+ "getBundleDraft",
11867
+ "getBundle",
11868
+ "getBundleVersion",
11026
11869
  "getBusinessHoursStatus",
11027
11870
  "getCalendar",
11028
11871
  "getCalendarEvent",
@@ -11035,8 +11878,11 @@ var WORKSPACE_METHOD_NAMES = [
11035
11878
  "getCelContext",
11036
11879
  "getCharlestonTestDeliveryRecipients",
11037
11880
  "getChat",
11881
+ "getChatByUuid",
11038
11882
  "getChatAssignmentTasks",
11039
11883
  "getChatBrowserLiveView",
11884
+ "saveChatBrowserStorage",
11885
+ "clearChatBrowserStorage",
11040
11886
  "getChatCallbacks",
11041
11887
  "getChatEhrWritebackOutcomes",
11042
11888
  "getChatEmails",
@@ -11082,6 +11928,7 @@ var WORKSPACE_METHOD_NAMES = [
11082
11928
  "getDashboardWorkflowAssignmentStats",
11083
11929
  "getDashboards",
11084
11930
  "getDataRecord",
11931
+ "getDataRecordByUuid",
11085
11932
  "getDataRecordChanges",
11086
11933
  "getDataRecordFilter",
11087
11934
  "getDataRecordFilterCount",
@@ -11199,6 +12046,7 @@ var WORKSPACE_METHOD_NAMES = [
11199
12046
  "getMcpServerResources",
11200
12047
  "getMcpServerTools",
11201
12048
  "getMcpServers",
12049
+ "getMemberByUuid",
11202
12050
  "getMemberExperiments",
11203
12051
  "getMemberFieldDefinitions",
11204
12052
  "getMemberFields",
@@ -11230,6 +12078,7 @@ var WORKSPACE_METHOD_NAMES = [
11230
12078
  "getMondayConnectionStatus",
11231
12079
  "getMondayReconciliationMatches",
11232
12080
  "getMondaySyncConfig",
12081
+ "getMondaySyncLogs",
11233
12082
  "getMyCredentials",
11234
12083
  "getMyGivenGrants",
11235
12084
  "getMyReceivedGrants",
@@ -11240,7 +12089,6 @@ var WORKSPACE_METHOD_NAMES = [
11240
12089
  "getOperatorGroup",
11241
12090
  "getOperatorGroups",
11242
12091
  "getOrCreateQualificationForWorkflow",
11243
- "getOwnedMembers",
11244
12092
  "getPage",
11245
12093
  "getPageBySlug",
11246
12094
  "getPersona",
@@ -11270,11 +12118,14 @@ var WORKSPACE_METHOD_NAMES = [
11270
12118
  "getRoutineConfigEvents",
11271
12119
  "getRoutineRuns",
11272
12120
  "getRoutines",
12121
+ "getRoutingRule",
12122
+ "getRoutingRules",
11273
12123
  "getRuleExecutions",
11274
12124
  "getSMSUsageReport",
11275
12125
  "getSalesforceReconciliationMatches",
11276
12126
  "getSalesforceStatus",
11277
12127
  "getSalesforceSyncConfig",
12128
+ "getSalesforceSyncLogs",
11278
12129
  "getScenario",
11279
12130
  "getSite",
11280
12131
  "getSiteByUuid",
@@ -11320,7 +12171,6 @@ var WORKSPACE_METHOD_NAMES = [
11320
12171
  "getWebhookLogs",
11321
12172
  "getWorkflow",
11322
12173
  "getWorkflowOpeningTurnConversionReport",
11323
- "getWorkflowAccessValidation",
11324
12174
  "getWorkflowActivity",
11325
12175
  "getWorkflowConfigValidation",
11326
12176
  "getWorkflowFeedback",
@@ -11328,11 +12178,11 @@ var WORKSPACE_METHOD_NAMES = [
11328
12178
  "getWorkflowDeletionPreview",
11329
12179
  "getWorkflowDiagram",
11330
12180
  "getWorkflowNotes",
12181
+ "getWorkflowOutline",
11331
12182
  "getWorkflowRevision",
11332
12183
  "getWorkflowRevisions",
11333
12184
  "getWorkflowTaskAssignmentStats",
11334
12185
  "getWorkflowTemplates",
11335
- "getWorkflowThumbnailUrl",
11336
12186
  "getWorkflows",
11337
12187
  "getWorkflowsActivityBatch",
11338
12188
  "getWorkspace",
@@ -11351,6 +12201,8 @@ var WORKSPACE_METHOD_NAMES = [
11351
12201
  "getWorkspaceSubscriptions",
11352
12202
  "getWorkspaceSupportRequest",
11353
12203
  "getWorkspaceThemes",
12204
+ "installBundle",
12205
+ "grantBundle",
11354
12206
  "importFromBoard",
11355
12207
  "importHubspotMembers",
11356
12208
  "importMembers",
@@ -11373,13 +12225,23 @@ var WORKSPACE_METHOD_NAMES = [
11373
12225
  "linkMemberToMonday",
11374
12226
  "linkMemberToSalesforce",
11375
12227
  "linkPhoneNumber",
12228
+ "linkUnlinkedSalesforceMembersByIdentity",
11376
12229
  "listAbilities",
12230
+ "listAnonymousFormSubmissions",
11377
12231
  "listAppConnections",
11378
12232
  "listAvailableAppConnections",
12233
+ "listInstallations",
12234
+ "listBundleGrants",
12235
+ "listBundleVersions",
12236
+ "listBundles",
12237
+ "listBundleWorkflowCandidates",
12238
+ "updateBundle",
12239
+ "listBundleInstallations",
11379
12240
  "listConfluencePages",
11380
12241
  "listConfluenceSpaces",
11381
12242
  "listConnectionMemberFieldKeys",
11382
12243
  "listContactPermissions",
12244
+ "revokeBundleGrant",
11383
12245
  "rollbackSiteSource",
11384
12246
  "rotateDocumoFaxCredentials",
11385
12247
  "runQuery",
@@ -11400,7 +12262,11 @@ var WORKSPACE_METHOD_NAMES = [
11400
12262
  "getMetricSeries",
11401
12263
  "computeChatMetrics",
11402
12264
  "listPushSubscriptions",
12265
+ "listResourceWorkflows",
12266
+ "getResourceWorkflow",
12267
+ "getResourceWorkflowRevision",
11403
12268
  "listSalesforceObjects",
12269
+ "listScenarioHealthSummaries",
11404
12270
  "listScenarios",
11405
12271
  "listTestChatRuns",
11406
12272
  "listWidgetDomains",
@@ -11416,15 +12282,18 @@ var WORKSPACE_METHOD_NAMES = [
11416
12282
  "previewRenameFieldSlug",
11417
12283
  "previewImportWorkspace",
11418
12284
  "previewInboxEmail",
12285
+ "preflightBundleInstallation",
11419
12286
  "previewRoutineVoiceReadiness",
11420
- "previewRoutineWorkflowAccess",
11421
12287
  "previewSchedule",
12288
+ "previewRoutingRule",
11422
12289
  "previewTTS",
11423
12290
  "previewTemplate",
11424
12291
  "previewThinkingSound",
11425
12292
  "previewWorkspaceImport",
11426
12293
  "previewWorkspaceImportZip",
11427
12294
  "provisionClientWorkspace",
12295
+ "previewInstallationUpgrade",
12296
+ "publishBundle",
11428
12297
  "publishWorkflowRevision",
11429
12298
  "putJourneyDraft",
11430
12299
  "putJourneyV2Definition",
@@ -11436,11 +12305,16 @@ var WORKSPACE_METHOD_NAMES = [
11436
12305
  "registerPushSubscription",
11437
12306
  "reindexFolder",
11438
12307
  "releasePhoneNumber",
12308
+ "reorderRoutingRules",
11439
12309
  "removeFileRole",
11440
12310
  "removeFolderRole",
11441
12311
  "removeGroupMember",
11442
12312
  "reorderEventRules",
11443
12313
  "reorderMenuItems",
12314
+ "reconcileInstallation",
12315
+ "setInstallationPolicy",
12316
+ "upgradeInstallation",
12317
+ "replaceBundleDraft",
11444
12318
  "replyToEmail",
11445
12319
  "rotateDocumoFaxCredentials",
11446
12320
  "requestPhoneNumber",
@@ -11476,7 +12350,6 @@ var WORKSPACE_METHOD_NAMES = [
11476
12350
  "startSyncRun",
11477
12351
  "startTestChatRun",
11478
12352
  "summarizeChat",
11479
- "switchMember",
11480
12353
  "syncCalendarWithGoogle",
11481
12354
  "syncCalendarWithHealthie",
11482
12355
  "testFhirConnection",
@@ -11489,6 +12362,7 @@ var WORKSPACE_METHOD_NAMES = [
11489
12362
  "unarchiveChat",
11490
12363
  "unarchiveDataType",
11491
12364
  "unarchiveMember",
12365
+ "unarchiveMemberByExternalId",
11492
12366
  "unarchivePersona",
11493
12367
  "unarchiveStep",
11494
12368
  "unarchiveTask",
@@ -11546,6 +12420,7 @@ var WORKSPACE_METHOD_NAMES = [
11546
12420
  "updateJourneyNote",
11547
12421
  "updateMcpServer",
11548
12422
  "updateMember",
12423
+ "updateMemberByExternalId",
11549
12424
  "updateMemberField",
11550
12425
  "updateMemberFilter",
11551
12426
  "updateMemberLabel",
@@ -11562,6 +12437,7 @@ var WORKSPACE_METHOD_NAMES = [
11562
12437
  "updateProduct",
11563
12438
  "updateProject",
11564
12439
  "updateRoutine",
12440
+ "updateRoutingRule",
11565
12441
  "updateSalesforceSyncConfig",
11566
12442
  "resyncSalesforceLinkedMembers",
11567
12443
  "updateScenario",
@@ -11584,7 +12460,6 @@ var WORKSPACE_METHOD_NAMES = [
11584
12460
  "updateWorkspace",
11585
12461
  "updateWorkspaceDefaults",
11586
12462
  "updateWorkspaceInvitationAdmin",
11587
- "updateWorkspaceThemes",
11588
12463
  "upsertDataRecord",
11589
12464
  "upsertWidgetDomain",
11590
12465
  "validateCelExpression",
@@ -11675,6 +12550,9 @@ function bindChatsMethods(target, chats) {
11675
12550
  target.transitionChatInteractionSession = chats.transitionChatInteractionSession.bind(chats);
11676
12551
  target.getChats = chats.getChats.bind(chats);
11677
12552
  target.getChat = chats.getChat.bind(chats);
12553
+ target.getChatByUuid = chats.getChatByUuid.bind(chats);
12554
+ target.saveChatBrowserStorage = chats.saveChatBrowserStorage.bind(chats);
12555
+ target.clearChatBrowserStorage = chats.clearChatBrowserStorage.bind(chats);
11678
12556
  target.getChatBrowserLiveView = chats.getChatBrowserLiveView.bind(chats);
11679
12557
  target.getChatMachineResources = chats.getChatMachineResources.bind(chats);
11680
12558
  target.getCurrentSmsChat = chats.getCurrentSmsChat.bind(chats);
@@ -11811,7 +12689,10 @@ function bindDataTypesMethods(target, dataTypes) {
11811
12689
  target.unarchiveDataType = dataTypes.unarchiveDataType.bind(dataTypes);
11812
12690
  target.cloneDataType = dataTypes.cloneDataType.bind(dataTypes);
11813
12691
  target.getDataRecords = dataTypes.getDataRecords.bind(dataTypes);
12692
+ target.listAnonymousFormSubmissions = dataTypes.listAnonymousFormSubmissions.bind(dataTypes);
12693
+ target.getAnonymousFormSubmission = dataTypes.getAnonymousFormSubmission.bind(dataTypes);
11814
12694
  target.getDataRecord = dataTypes.getDataRecord.bind(dataTypes);
12695
+ target.getDataRecordByUuid = dataTypes.getDataRecordByUuid.bind(dataTypes);
11815
12696
  target.createDataRecord = dataTypes.createDataRecord.bind(dataTypes);
11816
12697
  target.updateDataRecord = dataTypes.updateDataRecord.bind(dataTypes);
11817
12698
  target.deleteDataRecord = dataTypes.deleteDataRecord.bind(dataTypes);
@@ -11850,18 +12731,19 @@ function bindMembersMethods(target, members) {
11850
12731
  target.previewMemberWorkflowVoice = members.previewMemberWorkflowVoice.bind(members);
11851
12732
  target.setMemberWorkflowVoice = members.setMemberWorkflowVoice.bind(members);
11852
12733
  target.clearMemberWorkflowVoice = members.clearMemberWorkflowVoice.bind(members);
11853
- target.getOwnedMembers = members.getOwnedMembers.bind(members);
11854
- target.switchMember = members.switchMember.bind(members);
11855
- target.clearMemberSwitch = members.clearMemberSwitch.bind(members);
11856
12734
  target.updateCurrentMember = members.updateCurrentMember.bind(members);
11857
12735
  target.getWorkspaceMembers = members.getWorkspaceMembers.bind(members);
11858
12736
  target.getWorkspaceMember = members.getWorkspaceMember.bind(members);
12737
+ target.getMemberByUuid = members.getMemberByUuid.bind(members);
11859
12738
  target.getOrgWorkspaceMember = members.getOrgWorkspaceMember.bind(members);
11860
12739
  target.createWorkspaceMember = members.createWorkspaceMember.bind(members);
11861
12740
  target.updateMember = members.updateMember.bind(members);
11862
12741
  target.deleteMember = members.deleteMember.bind(members);
11863
12742
  target.archiveMember = members.archiveMember.bind(members);
11864
12743
  target.unarchiveMember = members.unarchiveMember.bind(members);
12744
+ target.updateMemberByExternalId = members.updateMemberByExternalId.bind(members);
12745
+ target.archiveMemberByExternalId = members.archiveMemberByExternalId.bind(members);
12746
+ target.unarchiveMemberByExternalId = members.unarchiveMemberByExternalId.bind(members);
11865
12747
  target.sendMemberPhoneConfirmation = members.sendMemberPhoneConfirmation.bind(members);
11866
12748
  target.bulkCreateMembers = members.bulkCreateMembers.bind(members);
11867
12749
  target.previewImportMembers = members.previewImportMembers.bind(members);
@@ -11963,7 +12845,6 @@ function bindWorkspacesMethods(target, workspaces, signupRequests) {
11963
12845
  target.rebuildImportSkippedRules = workspaces.rebuildImportSkippedRules.bind(workspaces);
11964
12846
  target.previewImportWorkspace = workspaces.previewImportWorkspace.bind(workspaces);
11965
12847
  target.getWorkspaceThemes = workspaces.getWorkspaceThemes.bind(workspaces);
11966
- target.updateWorkspaceThemes = workspaces.updateWorkspaceThemes.bind(workspaces);
11967
12848
  target.getWorkspaceBySlug = workspaces.getWorkspace.bind(workspaces);
11968
12849
  target.getWorkspaceScopes = workspaces.getWorkspaceScopes.bind(workspaces);
11969
12850
  target.getUsageDashboard = workspaces.getUsageDashboard.bind(workspaces);
@@ -12012,6 +12893,7 @@ function bindAuthMethods(target, auth, assignments) {
12012
12893
  target.logout = auth.logout.bind(auth);
12013
12894
  target.requestCrossDomainToken = auth.requestCrossDomainToken.bind(auth);
12014
12895
  target.exchangeToken = auth.exchangeToken.bind(auth);
12896
+ target.createRealtimeLoginToken = auth.createRealtimeLoginToken.bind(auth);
12015
12897
  target.getDomainMapping = auth.getDomainMapping.bind(auth);
12016
12898
  target.createSignup = auth.createSignup.bind(auth);
12017
12899
  target.createAccount = auth.emailPasswordSignup.bind(auth);
@@ -12101,6 +12983,7 @@ function bindSitesMethods(target, sites) {
12101
12983
  function bindFilesMethods(target, files) {
12102
12984
  target.getFiles = files.getFiles.bind(files);
12103
12985
  target.getFile = files.getFile.bind(files);
12986
+ target.downloadFileContents = files.downloadFileContents.bind(files);
12104
12987
  target.downloadFilesZip = files.downloadFilesZip.bind(files);
12105
12988
  target.createFile = files.createFile.bind(files);
12106
12989
  target.uploadFile = files.uploadFile.bind(files);
@@ -12173,7 +13056,6 @@ function bindEventsMethods(target, events) {
12173
13056
  target.resetRoutineRuns = events.resetRoutineRuns.bind(events);
12174
13057
  target.previewSchedule = events.previewSchedule.bind(events);
12175
13058
  target.previewRoutineVoiceReadiness = events.previewRoutineVoiceReadiness.bind(events);
12176
- target.previewRoutineWorkflowAccess = events.previewRoutineWorkflowAccess.bind(events);
12177
13059
  }
12178
13060
 
12179
13061
  // src/client/bindings/experiments.ts
@@ -12202,7 +13084,7 @@ function bindWorkflowsMethods(target, workflows, workflowNotes, voice, superviso
12202
13084
  target.getWorkflowActivity = workflows.getWorkflowActivity.bind(workflows);
12203
13085
  target.getWorkflowsActivityBatch = workflows.getWorkflowsActivityBatch.bind(workflows);
12204
13086
  target.getWorkflowDiagram = workflows.getWorkflowDiagram.bind(workflows);
12205
- target.getWorkflowThumbnailUrl = workflows.getWorkflowThumbnailUrl.bind(workflows);
13087
+ target.getWorkflowOutline = workflows.getWorkflowOutline.bind(workflows);
12206
13088
  target.createWorkflow = workflows.createWorkflow.bind(workflows);
12207
13089
  target.updateWorkflow = workflows.updateWorkflow.bind(workflows);
12208
13090
  target.getWorkflowDeletionPreview = workflows.getWorkflowDeletionPreview.bind(workflows);
@@ -12214,7 +13096,6 @@ function bindWorkflowsMethods(target, workflows, workflowNotes, voice, superviso
12214
13096
  target.createWorkflowFromTemplate = workflows.createWorkflowFromTemplate.bind(workflows);
12215
13097
  target.getWorkflowTaskAssignmentStats = workflows.getWorkflowTaskAssignmentStats.bind(workflows);
12216
13098
  target.getTaskChats = workflows.getTaskChats.bind(workflows);
12217
- target.getWorkflowAccessValidation = workflows.getWorkflowAccessValidation.bind(workflows);
12218
13099
  target.getWorkflowConfigValidation = workflows.getWorkflowConfigValidation.bind(workflows);
12219
13100
  target.getWorkflowNotes = workflowNotes.getWorkflowNotes.bind(workflowNotes);
12220
13101
  target.createWorkflowNote = workflowNotes.createWorkflowNote.bind(workflowNotes);
@@ -12335,6 +13216,7 @@ function bindToolkitsMethods(target, toolkits, templates, aiModels, customToolki
12335
13216
  target.previewTemplate = templates.previewTemplate.bind(templates);
12336
13217
  target.getVariableRegistry = templates.getVariableRegistry.bind(templates);
12337
13218
  target.getChatModels = aiModels.getChatModels.bind(aiModels);
13219
+ target.getManagerModels = aiModels.getManagerModels.bind(aiModels);
12338
13220
  target.getRealtimeModels = aiModels.getRealtimeModels.bind(aiModels);
12339
13221
  target.getSTTModels = aiModels.getSTTModels.bind(aiModels);
12340
13222
  target.getTTSModels = aiModels.getTTSModels.bind(aiModels);
@@ -12448,6 +13330,7 @@ function bindIntegrationsMethods(target, mondayIntegration, discordBots, slackAp
12448
13330
  target.getMondayConnectionBoardColumns = mondayIntegration.getMondayConnectionBoardColumns.bind(mondayIntegration);
12449
13331
  target.getMondayConnectionBoardGroups = mondayIntegration.getMondayConnectionBoardGroups.bind(mondayIntegration);
12450
13332
  target.getMondaySyncConfig = mondayIntegration.getMondaySyncConfig.bind(mondayIntegration);
13333
+ target.getMondaySyncLogs = mondayIntegration.getMondaySyncLogs.bind(mondayIntegration);
12451
13334
  target.updateMondaySyncConfig = mondayIntegration.updateMondaySyncConfig.bind(mondayIntegration);
12452
13335
  target.getLinkedMondayMembers = mondayIntegration.getLinkedMondayMembers.bind(mondayIntegration);
12453
13336
  target.getMondayReconciliationMatches = mondayIntegration.getMondayReconciliationMatches.bind(mondayIntegration);
@@ -12562,10 +13445,12 @@ function bindIntegrationsMethods(target, mondayIntegration, discordBots, slackAp
12562
13445
  target.deleteSalesforce = salesforce.deleteSalesforce.bind(salesforce);
12563
13446
  target.getSalesforceReconciliationMatches = salesforce.getSalesforceReconciliationMatches.bind(salesforce);
12564
13447
  target.linkMemberToSalesforce = salesforce.linkMemberToSalesforce.bind(salesforce);
13448
+ target.linkUnlinkedSalesforceMembersByIdentity = salesforce.linkUnlinkedSalesforceMembersByIdentity.bind(salesforce);
12565
13449
  target.bulkLinkMembersToSalesforce = salesforce.bulkLinkMembersToSalesforce.bind(salesforce);
12566
13450
  target.unlinkMemberFromSalesforce = salesforce.unlinkMemberFromSalesforce.bind(salesforce);
12567
13451
  target.getLinkedSalesforceMembers = salesforce.getLinkedSalesforceMembers.bind(salesforce);
12568
13452
  target.getSalesforceSyncConfig = salesforce.getSalesforceSyncConfig.bind(salesforce);
13453
+ target.getSalesforceSyncLogs = salesforce.getSalesforceSyncLogs.bind(salesforce);
12569
13454
  target.updateSalesforceSyncConfig = salesforce.updateSalesforceSyncConfig.bind(salesforce);
12570
13455
  target.resyncSalesforceLinkedMembers = salesforce.resyncSalesforceLinkedMembers.bind(salesforce);
12571
13456
  target.listSalesforceObjects = salesforce.listSalesforceObjects.bind(salesforce);
@@ -12655,10 +13540,15 @@ function bindOrgMethods(target, org) {
12655
13540
  target.getVoiceTrustProducts = org.getVoiceTrustProducts.bind(org);
12656
13541
  target.syncVoiceTrustProducts = org.syncVoiceTrustProducts.bind(org);
12657
13542
  target.createOrganizationWorkspace = org.createOrganizationWorkspace.bind(org);
13543
+ target.getOrganizationWorkspace = org.getOrganizationWorkspace.bind(org);
13544
+ target.updateOrganizationWorkspace = org.updateOrganizationWorkspace.bind(org);
12658
13545
  target.getOrgBillingCustomer = org.getOrgBillingCustomer.bind(org);
12659
13546
  target.getA2PCampaignConfig = org.getA2PCampaignConfig.bind(org);
12660
13547
  target.updateA2PCampaignConfig = org.updateA2PCampaignConfig.bind(org);
12661
13548
  target.getOrgWorkspaceUsage = org.getOrgWorkspaceUsage.bind(org);
13549
+ target.updateOrganizationMember = org.updateOrganizationMember.bind(org);
13550
+ target.listOrgWebhookEndpoints = org.listOrgWebhookEndpoints.bind(org);
13551
+ target.getOrgWebhookEndpoint = org.getOrgWebhookEndpoint.bind(org);
12662
13552
  }
12663
13553
 
12664
13554
  // src/client/bindings/pronunciations.ts
@@ -12678,12 +13568,59 @@ function bindPronunciationsMethods(target, pronunciations) {
12678
13568
  target.previewPronunciation = pronunciations.previewPronunciation.bind(pronunciations);
12679
13569
  }
12680
13570
 
13571
+ // src/client/bindings/resource-workflows.ts
13572
+ function bindResourceWorkflowsMethods(target, resourceWorkflows) {
13573
+ target.getResourceWorkflow = resourceWorkflows.getResourceWorkflow.bind(resourceWorkflows);
13574
+ target.getResourceWorkflowRevision = resourceWorkflows.getResourceWorkflowRevision.bind(resourceWorkflows);
13575
+ }
13576
+
13577
+ // src/client/bindings/bundles.ts
13578
+ function bindBundlesMethods(target, bundles, resourceWorkflows) {
13579
+ bindResourceWorkflowsMethods(target, resourceWorkflows);
13580
+ target.listPublicBundles = bundles.listPublicBundles.bind(bundles);
13581
+ target.getPublicBundle = bundles.getPublicBundle.bind(bundles);
13582
+ target.updateBundle = bundles.updateBundle.bind(bundles);
13583
+ target.listBundleInstallations = bundles.listBundleInstallations.bind(bundles);
13584
+ target.listBundles = bundles.listBundles.bind(bundles);
13585
+ target.listBundleWorkflowCandidates = bundles.listBundleWorkflowCandidates.bind(bundles);
13586
+ target.createBundle = bundles.createBundle.bind(bundles);
13587
+ target.getBundleDraft = bundles.getBundleDraft.bind(bundles);
13588
+ target.replaceBundleDraft = bundles.replaceBundleDraft.bind(bundles);
13589
+ target.publishBundle = bundles.publishBundle.bind(bundles);
13590
+ target.listBundleVersions = bundles.listBundleVersions.bind(bundles);
13591
+ target.getBundle = bundles.getBundle.bind(bundles);
13592
+ target.getBundleVersion = bundles.getBundleVersion.bind(bundles);
13593
+ target.listBundleGrants = bundles.listBundleGrants.bind(bundles);
13594
+ target.grantBundle = bundles.grantBundle.bind(bundles);
13595
+ target.revokeBundleGrant = bundles.revokeBundleGrant.bind(bundles);
13596
+ target.listResourceWorkflows = resourceWorkflows.listResourceWorkflows.bind(resourceWorkflows);
13597
+ }
13598
+
13599
+ // src/client/bindings/installations.ts
13600
+ function bindInstallationsMethods(target, installations) {
13601
+ target.preflightBundleInstallation = installations.preflightBundleInstallation.bind(installations);
13602
+ target.installBundle = installations.installBundle.bind(installations);
13603
+ target.listInstallations = installations.listInstallations.bind(installations);
13604
+ target.getInstallation = installations.getInstallation.bind(installations);
13605
+ target.getInstallationReadiness = installations.getInstallationReadiness.bind(installations);
13606
+ target.previewInstallationUpgrade = installations.previewInstallationUpgrade.bind(installations);
13607
+ target.upgradeInstallation = installations.upgradeInstallation.bind(installations);
13608
+ target.setInstallationPolicy = installations.setInstallationPolicy.bind(installations);
13609
+ target.unsubscribeInstallation = installations.unsubscribeInstallation.bind(installations);
13610
+ target.restoreInstallationForm = installations.restoreInstallationForm.bind(installations);
13611
+ target.restoreInstallationWorkflowResources = installations.restoreInstallationWorkflowResources.bind(installations);
13612
+ target.bindInstallationSlots = installations.bindInstallationSlots.bind(installations);
13613
+ target.reconcileInstallation = installations.reconcileInstallation.bind(installations);
13614
+ target.getThemeSettingsSchema = installations.getThemeSettingsSchema.bind(installations);
13615
+ }
13616
+
12681
13617
  // src/client/bindings/journeys.ts
12682
13618
  function bindJourneysMethods(target, journeys) {
12683
13619
  target.getJourneys = journeys.getJourneys.bind(journeys);
12684
13620
  target.getJourney = journeys.getJourney.bind(journeys);
12685
13621
  target.getJourneyAuthoring = journeys.getJourneyAuthoring.bind(journeys);
12686
13622
  target.putJourneyDraft = journeys.putJourneyDraft.bind(journeys);
13623
+ target.deleteJourneyDraft = journeys.deleteJourneyDraft.bind(journeys);
12687
13624
  target.putJourneyV2Definition = journeys.putJourneyV2Definition.bind(journeys);
12688
13625
  target.getJourneyV2Validation = journeys.getJourneyV2Validation.bind(journeys);
12689
13626
  target.getJourneyFilterOptions = journeys.getJourneyFilterOptions.bind(journeys);
@@ -12731,6 +13668,7 @@ function bindQualificationsMethods(target, qualifications) {
12731
13668
  target.updateScenario = qualifications.updateScenario.bind(qualifications);
12732
13669
  target.deleteScenario = qualifications.deleteScenario.bind(qualifications);
12733
13670
  target.listTestChatRuns = qualifications.listTestChatRuns.bind(qualifications);
13671
+ target.listScenarioHealthSummaries = qualifications.listScenarioHealthSummaries.bind(qualifications);
12734
13672
  target.getTestChatRun = qualifications.getTestChatRun.bind(qualifications);
12735
13673
  target.startTestChatRun = qualifications.startTestChatRun.bind(qualifications);
12736
13674
  target.evaluateTestChatRun = qualifications.evaluateTestChatRun.bind(qualifications);
@@ -12819,6 +13757,17 @@ function bindSupportRequestMethods(target, supportRequests) {
12819
13757
  target.clickWorkspaceSupportRequestResource = supportRequests.clickWorkspaceSupportRequestResource.bind(supportRequests);
12820
13758
  }
12821
13759
 
13760
+ // src/client/bindings/routing-rules.ts
13761
+ function bindRoutingRulesMethods(target, routingRules) {
13762
+ target.getRoutingRules = routingRules.getRoutingRules.bind(routingRules);
13763
+ target.getRoutingRule = routingRules.getRoutingRule.bind(routingRules);
13764
+ target.createRoutingRule = routingRules.createRoutingRule.bind(routingRules);
13765
+ target.updateRoutingRule = routingRules.updateRoutingRule.bind(routingRules);
13766
+ target.deleteRoutingRule = routingRules.deleteRoutingRule.bind(routingRules);
13767
+ target.reorderRoutingRules = routingRules.reorderRoutingRules.bind(routingRules);
13768
+ target.previewRoutingRule = routingRules.previewRoutingRule.bind(routingRules);
13769
+ }
13770
+
12822
13771
  // src/client/client.ts
12823
13772
  var GravityRailClient = class {
12824
13773
  // WorkspaceInvitations is exposed publicly for backward compatibility
@@ -12844,6 +13793,9 @@ var GravityRailClient = class {
12844
13793
  // Chats API
12845
13794
  getChats;
12846
13795
  getChat;
13796
+ getChatByUuid;
13797
+ saveChatBrowserStorage;
13798
+ clearChatBrowserStorage;
12847
13799
  getChatBrowserLiveView;
12848
13800
  getChatMachineResources;
12849
13801
  getCurrentSmsChat;
@@ -12921,7 +13873,10 @@ var GravityRailClient = class {
12921
13873
  unarchiveDataType;
12922
13874
  cloneDataType;
12923
13875
  getDataRecords;
13876
+ listAnonymousFormSubmissions;
13877
+ getAnonymousFormSubmission;
12924
13878
  getDataRecord;
13879
+ getDataRecordByUuid;
12925
13880
  createDataRecord;
12926
13881
  updateDataRecord;
12927
13882
  deleteDataRecord;
@@ -12947,12 +13902,10 @@ var GravityRailClient = class {
12947
13902
  previewMemberWorkflowVoice;
12948
13903
  setMemberWorkflowVoice;
12949
13904
  clearMemberWorkflowVoice;
12950
- getOwnedMembers;
12951
- switchMember;
12952
- clearMemberSwitch;
12953
13905
  updateCurrentMember;
12954
13906
  getWorkspaceMembers;
12955
13907
  getWorkspaceMember;
13908
+ getMemberByUuid;
12956
13909
  // Org-scoped, so deliberately absent from WORKSPACE_METHOD_NAMES: that proxy
12957
13910
  // passes a workspace uuid as the first argument.
12958
13911
  getOrgWorkspaceMember;
@@ -12961,6 +13914,9 @@ var GravityRailClient = class {
12961
13914
  deleteMember;
12962
13915
  archiveMember;
12963
13916
  unarchiveMember;
13917
+ updateMemberByExternalId;
13918
+ archiveMemberByExternalId;
13919
+ unarchiveMemberByExternalId;
12964
13920
  sendMemberPhoneConfirmation;
12965
13921
  bulkCreateMembers;
12966
13922
  previewImportMembers;
@@ -13038,6 +13994,7 @@ var GravityRailClient = class {
13038
13994
  updateScenario;
13039
13995
  deleteScenario;
13040
13996
  listTestChatRuns;
13997
+ listScenarioHealthSummaries;
13041
13998
  getTestChatRun;
13042
13999
  startTestChatRun;
13043
14000
  evaluateTestChatRun;
@@ -13115,6 +14072,7 @@ var GravityRailClient = class {
13115
14072
  getJourney;
13116
14073
  getJourneyAuthoring;
13117
14074
  putJourneyDraft;
14075
+ deleteJourneyDraft;
13118
14076
  putJourneyV2Definition;
13119
14077
  getJourneyV2Validation;
13120
14078
  getJourneyFilterOptions;
@@ -13149,6 +14107,42 @@ var GravityRailClient = class {
13149
14107
  createJourneyNote;
13150
14108
  updateJourneyNote;
13151
14109
  deleteJourneyNote;
14110
+ updateBundle;
14111
+ listBundleInstallations;
14112
+ // Bundles API
14113
+ listPublicBundles;
14114
+ getPublicBundle;
14115
+ listBundles;
14116
+ listBundleWorkflowCandidates;
14117
+ createBundle;
14118
+ getBundleDraft;
14119
+ replaceBundleDraft;
14120
+ publishBundle;
14121
+ listBundleVersions;
14122
+ getBundle;
14123
+ getBundleVersion;
14124
+ listBundleGrants;
14125
+ grantBundle;
14126
+ revokeBundleGrant;
14127
+ listResourceWorkflows;
14128
+ // Resource Workflows API — published Workflow catalog reads
14129
+ getResourceWorkflow;
14130
+ getResourceWorkflowRevision;
14131
+ // Installations API
14132
+ preflightBundleInstallation;
14133
+ installBundle;
14134
+ listInstallations;
14135
+ getInstallation;
14136
+ getInstallationReadiness;
14137
+ previewInstallationUpgrade;
14138
+ upgradeInstallation;
14139
+ setInstallationPolicy;
14140
+ unsubscribeInstallation;
14141
+ bindInstallationSlots;
14142
+ restoreInstallationForm;
14143
+ restoreInstallationWorkflowResources;
14144
+ reconcileInstallation;
14145
+ getThemeSettingsSchema;
13152
14146
  // Experiments API
13153
14147
  getExperiments;
13154
14148
  getExperiment;
@@ -13241,7 +14235,6 @@ var GravityRailClient = class {
13241
14235
  rebuildImportSkippedRules;
13242
14236
  previewImportWorkspace;
13243
14237
  getWorkspaceThemes;
13244
- updateWorkspaceThemes;
13245
14238
  getWorkspaceBySlug;
13246
14239
  getWorkspaceScopes;
13247
14240
  getUsageDashboard;
@@ -13280,10 +14273,15 @@ var GravityRailClient = class {
13280
14273
  getVoiceTrustProducts;
13281
14274
  syncVoiceTrustProducts;
13282
14275
  createOrganizationWorkspace;
14276
+ getOrganizationWorkspace;
14277
+ updateOrganizationWorkspace;
13283
14278
  getOrgBillingCustomer;
13284
14279
  getA2PCampaignConfig;
13285
14280
  updateA2PCampaignConfig;
13286
14281
  getOrgWorkspaceUsage;
14282
+ updateOrganizationMember;
14283
+ listOrgWebhookEndpoints;
14284
+ getOrgWebhookEndpoint;
13287
14285
  getVapidPublicKey;
13288
14286
  registerPushSubscription;
13289
14287
  unregisterPushSubscription;
@@ -13320,6 +14318,7 @@ var GravityRailClient = class {
13320
14318
  logout;
13321
14319
  requestCrossDomainToken;
13322
14320
  exchangeToken;
14321
+ createRealtimeLoginToken;
13323
14322
  getDomainMapping;
13324
14323
  createSignup;
13325
14324
  createAccount;
@@ -13409,6 +14408,7 @@ var GravityRailClient = class {
13409
14408
  updateProject;
13410
14409
  updatePlan;
13411
14410
  resolveFilePath;
14411
+ downloadFileContents;
13412
14412
  downloadFilesZip;
13413
14413
  createFile;
13414
14414
  uploadFile;
@@ -13469,7 +14469,6 @@ var GravityRailClient = class {
13469
14469
  resetRoutineRuns;
13470
14470
  previewSchedule;
13471
14471
  previewRoutineVoiceReadiness;
13472
- previewRoutineWorkflowAccess;
13473
14472
  // Workflows API
13474
14473
  getWorkflows;
13475
14474
  getWorkflow;
@@ -13478,7 +14477,7 @@ var GravityRailClient = class {
13478
14477
  getWorkflowActivity;
13479
14478
  getWorkflowsActivityBatch;
13480
14479
  getWorkflowDiagram;
13481
- getWorkflowThumbnailUrl;
14480
+ getWorkflowOutline;
13482
14481
  createWorkflow;
13483
14482
  updateWorkflow;
13484
14483
  getWorkflowDeletionPreview;
@@ -13490,7 +14489,6 @@ var GravityRailClient = class {
13490
14489
  createWorkflowFromTemplate;
13491
14490
  getWorkflowTaskAssignmentStats;
13492
14491
  getTaskChats;
13493
- getWorkflowAccessValidation;
13494
14492
  getWorkflowConfigValidation;
13495
14493
  getWorkflowNotes;
13496
14494
  createWorkflowNote;
@@ -13602,6 +14600,7 @@ var GravityRailClient = class {
13602
14600
  previewTemplate;
13603
14601
  getVariableRegistry;
13604
14602
  getChatModels;
14603
+ getManagerModels;
13605
14604
  getRealtimeModels;
13606
14605
  getSTTModels;
13607
14606
  getTTSModels;
@@ -13714,6 +14713,7 @@ var GravityRailClient = class {
13714
14713
  getMondayConnectionBoardColumns;
13715
14714
  getMondayConnectionBoardGroups;
13716
14715
  getMondaySyncConfig;
14716
+ getMondaySyncLogs;
13717
14717
  updateMondaySyncConfig;
13718
14718
  getLinkedMondayMembers;
13719
14719
  getMondayReconciliationMatches;
@@ -13835,10 +14835,12 @@ var GravityRailClient = class {
13835
14835
  deleteSalesforce;
13836
14836
  getSalesforceReconciliationMatches;
13837
14837
  linkMemberToSalesforce;
14838
+ linkUnlinkedSalesforceMembersByIdentity;
13838
14839
  bulkLinkMembersToSalesforce;
13839
14840
  unlinkMemberFromSalesforce;
13840
14841
  getLinkedSalesforceMembers;
13841
14842
  getSalesforceSyncConfig;
14843
+ getSalesforceSyncLogs;
13842
14844
  updateSalesforceSyncConfig;
13843
14845
  resyncSalesforceLinkedMembers;
13844
14846
  listSalesforceObjects;
@@ -13935,6 +14937,14 @@ var GravityRailClient = class {
13935
14937
  closeWorkspaceSupportRequest;
13936
14938
  reopenWorkspaceSupportRequest;
13937
14939
  clickWorkspaceSupportRequestResource;
14940
+ // Routing Rules API
14941
+ getRoutingRules;
14942
+ getRoutingRule;
14943
+ createRoutingRule;
14944
+ updateRoutingRule;
14945
+ deleteRoutingRule;
14946
+ reorderRoutingRules;
14947
+ previewRoutingRule;
13938
14948
  constructor(apiKey, baseUrl, customFetch) {
13939
14949
  const apis = createApiModules(apiKey, baseUrl, customFetch);
13940
14950
  this.apis = apis;
@@ -13956,6 +14966,8 @@ var GravityRailClient = class {
13956
14966
  bindMotdMethods(this, apis.motd);
13957
14967
  bindTrackedLinksMethods(this, apis.trackedLinks);
13958
14968
  bindJourneysMethods(this, apis.journeys);
14969
+ bindBundlesMethods(this, apis.bundles, apis.resourceWorkflows);
14970
+ bindInstallationsMethods(this, apis.installations);
13959
14971
  bindExperimentsMethods(this, apis.experiments);
13960
14972
  bindOperatorMethods(this, apis.operatorGroups);
13961
14973
  bindOrgMethods(this, apis.org);
@@ -14009,6 +15021,7 @@ var GravityRailClient = class {
14009
15021
  bindCustomersMethods(this, apis.customers);
14010
15022
  bindResellersMethods(this, apis.resellers);
14011
15023
  bindSupportRequestMethods(this, apis.supportRequests);
15024
+ bindRoutingRulesMethods(this, apis.routingRules);
14012
15025
  }
14013
15026
  /**
14014
15027
  * Return a workspace-scoped client facade.
@@ -14086,32 +15099,6 @@ var GravityRailClient = class {
14086
15099
  }
14087
15100
  });
14088
15101
  }
14089
- /**
14090
- * Set the acting member UUID for member identity switching.
14091
- * When set, all API requests will include the X-Acting-Member header.
14092
- * The backend will validate that the authenticated account owns this member
14093
- * and use it as the effective identity for the request.
14094
- * Propagates to all API modules.
14095
- */
14096
- setActingMember(memberUuid) {
14097
- Object.values(this.apis).forEach((api) => {
14098
- if (typeof api.setActingMember === "function") {
14099
- api.setActingMember(memberUuid);
14100
- }
14101
- });
14102
- }
14103
- /**
14104
- * Get the current acting member UUID.
14105
- * Returns undefined if no member switch is active.
14106
- */
14107
- getActingMember() {
14108
- for (const api of Object.values(this.apis)) {
14109
- if (typeof api.getActingMember === "function") {
14110
- return api.getActingMember();
14111
- }
14112
- }
14113
- return void 0;
14114
- }
14115
15102
  };
14116
15103
 
14117
15104
  // src/types/ability-types.ts
@@ -14131,9 +15118,11 @@ var AbilityTypeSlugs = {
14131
15118
  GOOGLE_DRIVE: "integration:google_drive",
14132
15119
  GOOGLE_SHEETS: "integration:google_sheets",
14133
15120
  CHARLESTON_PMD_PAGING: "integration:charleston_pmd_paging",
15121
+ COSAN_PATHWAYS_SCHEDULING: "integration:cosan_pathways_scheduling",
14134
15122
  // Communication
14135
15123
  PHONE_CALL_TOOLS: "communication:phone_call_tools",
14136
15124
  SEND_SMS: "communication:send_sms",
15125
+ SEND_EMAIL: "communication:send_email",
14137
15126
  SEND_WHATSAPP: "communication:send_whatsapp",
14138
15127
  MEMBER_ACCESS: "communication:member_access",
14139
15128
  AUDIO_PLAYBACK: "communication:audio_playback",
@@ -14148,6 +15137,8 @@ var AbilityTypeSlugs = {
14148
15137
  MANAGE_WORKSPACE: "delegation:manage_workspace",
14149
15138
  // Workflow
14150
15139
  WORKFLOW_RUN: "workflow:run",
15140
+ // Access
15141
+ MEMBER_ROLE_GATE: "access:member_role_gate",
14151
15142
  // Commerce
14152
15143
  RESELLER: "commerce:reseller",
14153
15144
  // System (auto-injected, hidden from users)
@@ -14351,12 +15342,6 @@ var AbilityConfigIssueSeverity = {
14351
15342
  warning: "warning",
14352
15343
  error: "error"
14353
15344
  };
14354
- var WorkflowAccessWarningResourceType = {
14355
- form: "form",
14356
- file: "file",
14357
- folder: "folder",
14358
- calendar: "calendar"
14359
- };
14360
15345
 
14361
15346
  // src/types/generated/workflow.ts
14362
15347
  var WorkflowRoutingMode = {
@@ -14381,12 +15366,21 @@ var ImportReadinessIssueCode = {
14381
15366
  phone_not_provisioned: "phone_not_provisioned",
14382
15367
  phone_missing_default_workflow: "phone_missing_default_workflow",
14383
15368
  inbox_missing_default_workflow: "inbox_missing_default_workflow",
14384
- workflow_missing_default_phone: "workflow_missing_default_phone"
15369
+ workflow_missing_default_phone: "workflow_missing_default_phone",
15370
+ workflow_missing_default_inbox: "workflow_missing_default_inbox",
15371
+ routine_webhook_handoff_unverified: "routine_webhook_handoff_unverified",
15372
+ app_connection_not_connected: "app_connection_not_connected",
15373
+ site_form_migration_pending: "site_form_migration_pending",
15374
+ site_form_binding_invalid: "site_form_binding_invalid",
15375
+ site_theme_setting_inherited: "site_theme_setting_inherited"
14385
15376
  };
14386
15377
  var ImportReadinessIssueResourceType = {
14387
15378
  phone: "phone",
14388
15379
  inbox: "inbox",
14389
- workflow: "workflow"
15380
+ workflow: "workflow",
15381
+ routine: "routine",
15382
+ app_connection: "app_connection",
15383
+ site: "site"
14390
15384
  };
14391
15385
  var ImportSkippedRuleResourceGroupResourceType = {
14392
15386
  phone: "phone",
@@ -14408,7 +15402,8 @@ var ImportSkippedRuleResponseParentKind = {
14408
15402
  var ImportSkippedRuleResponseReasonCode = {
14409
15403
  missing_binding: "missing_binding",
14410
15404
  invalid_event_rule_cel: "invalid_event_rule_cel",
14411
- unresolved_journey_scope: "unresolved_journey_scope"
15405
+ unresolved_journey_scope: "unresolved_journey_scope",
15406
+ missing_source_workflow: "missing_source_workflow"
14412
15407
  };
14413
15408
  var ImportSkippedRuleResponseStatus = {
14414
15409
  outstanding: "outstanding",
@@ -14540,14 +15535,14 @@ function isChatType(value) {
14540
15535
  }
14541
15536
 
14542
15537
  // src/constants/models.ts
14543
- var DEFAULT_CHAT_MODEL = "aws:bedrock:claude-4-5-haiku";
14544
- var DEFAULT_AGENT_CHAT_MODEL = "openai:chat:gpt-5.6-luna";
15538
+ var DEFAULT_CHAT_MODEL = "openai:chat:gpt-6-luna";
15539
+ var DEFAULT_AGENT_CHAT_MODEL = "openai:chat:gpt-6-luna";
14545
15540
  var DEFAULT_AGENT_REALTIME_MODEL = "xai:realtime:voice-agent-2";
14546
15541
  var DEFAULT_AGENT_REALTIME_MODEL_CONFIG = {
14547
15542
  ttsModel: "native",
14548
15543
  voiceModel: "xai:voice:cosmo"
14549
15544
  };
14550
- var DEFAULT_VOICE_INFERENCE_MODEL = "openai:chat:gpt-5.6-luna";
15545
+ var DEFAULT_VOICE_INFERENCE_MODEL = "openai:chat:gpt-6-luna";
14551
15546
  var DEFAULT_CUSTOM_VOICE_MODEL = "xai:voice:lux";
14552
15547
 
14553
15548
  // src/types/resource-metadata.ts
@@ -14679,6 +15674,14 @@ var ActivityWindowBasis = {
14679
15674
  absolute: "absolute",
14680
15675
  workspace_local: "workspace_local"
14681
15676
  };
15677
+ var FeedCursorRejection = {
15678
+ malformed: "malformed",
15679
+ signature: "signature",
15680
+ version: "version",
15681
+ expired: "expired",
15682
+ scope_mismatch: "scope_mismatch",
15683
+ query_mismatch: "query_mismatch"
15684
+ };
14682
15685
 
14683
15686
  // src/types/generated/family.ts
14684
15687
  var ActivityEventFamily = {
@@ -14727,6 +15730,7 @@ var ScopeCategory = /* @__PURE__ */ ((ScopeCategory2) => {
14727
15730
  ScopeCategory2["APPS"] = "apps";
14728
15731
  ScopeCategory2["LABELS"] = "labels";
14729
15732
  ScopeCategory2["ANALYTICS"] = "analytics";
15733
+ ScopeCategory2["ANONYMOUS_SUBMISSIONS"] = "anonymous_submissions";
14730
15734
  ScopeCategory2["OPERATOR"] = "operator";
14731
15735
  ScopeCategory2["EXPORT"] = "export";
14732
15736
  ScopeCategory2["ORG"] = "org";
@@ -15189,6 +16193,14 @@ var SCOPES = {
15189
16193
  description: "View analytics and reports"
15190
16194
  },
15191
16195
  // =========================================================================
16196
+ // ANONYMOUS FORM SUBMISSIONS (read-only: submissions are immutable)
16197
+ // =========================================================================
16198
+ "anonymous_submissions:read": {
16199
+ name: "anonymous_submissions:read",
16200
+ category: "anonymous_submissions" /* ANONYMOUS_SUBMISSIONS */,
16201
+ description: "View what anonymous visitors submitted on anonymous Forms"
16202
+ },
16203
+ // =========================================================================
15192
16204
  // EXPORT
15193
16205
  // =========================================================================
15194
16206
  "export:read": {
@@ -15380,6 +16392,9 @@ function getRevisionState(workflow, revision) {
15380
16392
 
15381
16393
  export {
15382
16394
  AbilitiesApi,
16395
+ ResourceWorkflowsApi,
16396
+ BundlesApi,
16397
+ InstallationsApi,
15383
16398
  AccessGrantsApi,
15384
16399
  AgentTasksApi,
15385
16400
  AgentsApi,
@@ -15424,6 +16439,10 @@ export {
15424
16439
  QueriesApi,
15425
16440
  QualificationsApi,
15426
16441
  ReportsApi,
16442
+ RoutingActionType,
16443
+ RoutingAudience,
16444
+ RoutingChannel,
16445
+ RoutingTimeWindow,
15427
16446
  SalesforceApi,
15428
16447
  ConnectionSyncApi,
15429
16448
  HubspotApi,
@@ -15453,15 +16472,17 @@ export {
15453
16472
  PERMISSION_DELETE,
15454
16473
  decodePermissions,
15455
16474
  encodePermissions,
15456
- WORKFLOW_IMPLICIT_USE_SCOPE,
15457
- roleImplicitWorkflowUseScope,
15458
- roleWorkflowAccess,
15459
- roleCanUseWorkflow,
15460
16475
  Scope,
15461
16476
  BulkMemberResultStatus,
15462
16477
  MemberImportMatchInfoMatchType,
15463
16478
  MemberImportPreviewRowAction,
15464
16479
  MergeMemberRolesRequestAccessStrategy,
16480
+ CreateMemberContactPointRequestContactType,
16481
+ CreateMemberContactPointRequestPurpose,
16482
+ CreateMemberContactPointRequestSharing,
16483
+ UpdateMemberContactPointRequestContactType,
16484
+ UpdateMemberContactPointRequestPurpose,
16485
+ UpdateMemberContactPointRequestSharing,
15465
16486
  MemberType,
15466
16487
  isMemberContactConflict,
15467
16488
  isAccountContactConflict,
@@ -15475,6 +16496,8 @@ export {
15475
16496
  EventRuleActionType,
15476
16497
  eventRuleActionParams,
15477
16498
  MASKED_SECRET_SENTINEL,
16499
+ SendingNextStep,
16500
+ SendingStopState,
15478
16501
  WorkspaceFeature,
15479
16502
  MemberFeature,
15480
16503
  OrgFeature,
@@ -15506,8 +16529,16 @@ export {
15506
16529
  FhirVendor,
15507
16530
  FhirConnectionState,
15508
16531
  FhirClientType,
16532
+ CrmActivityKind,
16533
+ RunHealthCategory,
15509
16534
  TestChatRunLane,
15510
16535
  TestChatRunOutcome,
16536
+ ScenarioHealthCaption,
16537
+ ScenarioHealthHeadline,
16538
+ ScenarioHealthSampleNote,
16539
+ ScenarioHealthState,
16540
+ RevisionHistorySegment,
16541
+ ScenarioRunBlocker,
15511
16542
  CriterionType,
15512
16543
  DriverMode,
15513
16544
  AccessGrantResourceType,
@@ -15562,6 +16593,8 @@ export {
15562
16593
  bindOperatorMethods,
15563
16594
  bindOrgMethods,
15564
16595
  bindPronunciationsMethods,
16596
+ bindBundlesMethods,
16597
+ bindInstallationsMethods,
15565
16598
  bindJourneysMethods,
15566
16599
  bindQualificationsMethods,
15567
16600
  bindPersonasMethods,
@@ -15571,6 +16604,7 @@ export {
15571
16604
  bindResellersMethods,
15572
16605
  bindPromptsMethods,
15573
16606
  bindSupportRequestMethods,
16607
+ bindRoutingRulesMethods,
15574
16608
  GravityRailClient,
15575
16609
  AbilityTypeSlugs,
15576
16610
  DEFAULT_THINKING_SPEECH_PHRASES,
@@ -15602,7 +16636,6 @@ export {
15602
16636
  MenuItemResponseItemType,
15603
16637
  AbilityConfigIssueCode,
15604
16638
  AbilityConfigIssueSeverity,
15605
- WorkflowAccessWarningResourceType,
15606
16639
  WorkflowRoutingMode,
15607
16640
  WIDGET_SLUGS,
15608
16641
  PromoCodeStatus,
@@ -15646,6 +16679,7 @@ export {
15646
16679
  ActivityGroupBy,
15647
16680
  ActivityOpenItemOrder,
15648
16681
  ActivityWindowBasis,
16682
+ FeedCursorRejection,
15649
16683
  ActivityEventFamily,
15650
16684
  ActivityOutcome,
15651
16685
  RefResolutionStatus,
@@ -15655,4 +16689,4 @@ export {
15655
16689
  SCOPE_PRESETS,
15656
16690
  getRevisionState
15657
16691
  };
15658
- //# sourceMappingURL=chunk-R6S5RXW5.js.map
16692
+ //# sourceMappingURL=chunk-JTOMGNUO.js.map