@gravity-rail/sdk 0.22.0 → 0.33.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 (55) hide show
  1. package/README.md +57 -8
  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/{client-C10qSd6b.d.ts → chat-interaction-DJ9-Qtg2.d.cts} +8016 -3571
  7. package/dist/{client-Ct0soeip.d.cts → chat-interaction-dd6F3uT4.d.ts} +8016 -3571
  8. package/dist/{chunk-3HAV5XUJ.js → chunk-HRUMZ46V.js} +1 -1
  9. package/dist/chunk-HRUMZ46V.js.map +1 -0
  10. package/dist/{chunk-7OLBLLV7.js → chunk-P2E6LU7I.js} +57 -7
  11. package/dist/chunk-P2E6LU7I.js.map +1 -0
  12. package/dist/{chunk-WMA6YCAS.js → chunk-WDYHAQDY.js} +1364 -216
  13. package/dist/chunk-WDYHAQDY.js.map +1 -0
  14. package/dist/helpers.cjs +54 -1
  15. package/dist/helpers.cjs.map +1 -1
  16. package/dist/helpers.d.cts +3 -2
  17. package/dist/helpers.d.ts +3 -2
  18. package/dist/helpers.js +11 -3
  19. package/dist/helpers.js.map +1 -1
  20. package/dist/index.cjs +2414 -149
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.d.cts +550 -6
  23. package/dist/index.d.ts +550 -6
  24. package/dist/index.js +1037 -23
  25. package/dist/index.js.map +1 -1
  26. package/dist/internal.cjs +1456 -235
  27. package/dist/internal.cjs.map +1 -1
  28. package/dist/internal.d.cts +33 -49
  29. package/dist/internal.d.ts +33 -49
  30. package/dist/internal.js +77 -33
  31. package/dist/internal.js.map +1 -1
  32. package/dist/realtime.cjs +279 -14
  33. package/dist/realtime.cjs.map +1 -1
  34. package/dist/realtime.d.cts +169 -17
  35. package/dist/realtime.d.ts +169 -17
  36. package/dist/realtime.js +264 -13
  37. package/dist/realtime.js.map +1 -1
  38. package/dist/{revision-state-C6aM-PHu.d.ts → revision-state-BD39fW5X.d.ts} +236 -5
  39. package/dist/{revision-state-CCPTiW-i.d.cts → revision-state-Cgmy_Cds.d.cts} +236 -5
  40. package/dist/schemas.cjs +35 -10
  41. package/dist/schemas.cjs.map +1 -1
  42. package/dist/schemas.d.cts +54 -33
  43. package/dist/schemas.d.ts +54 -33
  44. package/dist/schemas.js +35 -10
  45. package/dist/schemas.js.map +1 -1
  46. package/dist/{tasks-WH_VfzMv.d.cts → tasks-B-31JPuq.d.cts} +298 -114
  47. package/dist/{tasks-WH_VfzMv.d.ts → tasks-B-31JPuq.d.ts} +298 -114
  48. package/dist/types-0c6_NGU4.d.cts +90 -0
  49. package/dist/types-0c6_NGU4.d.ts +90 -0
  50. package/package.json +3 -3
  51. package/dist/chunk-3HAV5XUJ.js.map +0 -1
  52. package/dist/chunk-7OLBLLV7.js.map +0 -1
  53. package/dist/chunk-WMA6YCAS.js.map +0 -1
  54. package/dist/types-DkYyrvoC.d.cts +0 -19
  55. package/dist/types-DkYyrvoC.d.ts +0 -19
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ApiError,
3
3
  BaseApiClient
4
- } from "./chunk-7OLBLLV7.js";
4
+ } from "./chunk-P2E6LU7I.js";
5
5
 
6
6
  // src/api/abilities.ts
7
7
  var AbilitiesApi = class extends BaseApiClient {
@@ -1238,17 +1238,6 @@ var CallsApi = class extends BaseApiClient {
1238
1238
  `w/${wid}/calls${params.toString() ? `?${params.toString()}` : ""}`
1239
1239
  );
1240
1240
  }
1241
- /** Initiate a new outbound call. */
1242
- async initiateCall(wid, request) {
1243
- return this.fetch(`w/${wid}/call`, {
1244
- method: "POST",
1245
- body: JSON.stringify(request)
1246
- });
1247
- }
1248
- /** Get a voice authentication token for real-time audio. */
1249
- async getVoiceToken(wid) {
1250
- return this.fetch(`w/${wid}/voice/token`);
1251
- }
1252
1241
  /** Get message timing data for a chat recording. */
1253
1242
  async getMessageTiming(wid, chatId) {
1254
1243
  return this.fetch(`w/${wid}/recordings/chat/${chatId}/message-timing`);
@@ -1374,6 +1363,26 @@ var ChatsApi = class extends BaseApiClient {
1374
1363
  async getChat(wid, id) {
1375
1364
  return this.fetch(`w/${wid}/chats/${id}`);
1376
1365
  }
1366
+ /**
1367
+ * Get a short-lived, interactive AgentCore browser view for this Chat.
1368
+ *
1369
+ * The signed URL is deliberately response-local. Callers must keep it in
1370
+ * memory only and request a fresh value when reopening the view.
1371
+ */
1372
+ async getChatBrowserLiveView(wid, chatId) {
1373
+ const response = await this.fetchRaw(`w/${wid}/chats/${chatId}/browser/live-view`);
1374
+ if (response.status === 204) return null;
1375
+ return response.json();
1376
+ }
1377
+ /**
1378
+ * Which machine resources this Chat is running right now.
1379
+ *
1380
+ * Infrastructure state only — no Chat content — so it is safe to poll while
1381
+ * a Chat is open.
1382
+ */
1383
+ async getChatMachineResources(wid, chatId) {
1384
+ return this.fetch(`w/${wid}/chats/${chatId}/machine-resources`);
1385
+ }
1377
1386
  /**
1378
1387
  * Create-chat preflight for SMS: is a conversation already live between this
1379
1388
  * workspace number and this member?
@@ -1401,6 +1410,23 @@ var ChatsApi = class extends BaseApiClient {
1401
1410
  async getChatCallbacks(wid, chatId) {
1402
1411
  return this.fetch(`w/${wid}/chats/${chatId}/callbacks`);
1403
1412
  }
1413
+ /**
1414
+ * List EHR write-back outcomes for a chat (newest first).
1415
+ *
1416
+ * Operator surface: the endpoint requires `chats:read` in addition to the
1417
+ * chat's own object authorization, so a chat owner reading their own chat
1418
+ * does not reach it. The response carries IDs and closed-vocabulary codes
1419
+ * only — no note body, summary, member fields, or provider messages.
1420
+ */
1421
+ async getChatEhrWritebackOutcomes(wid, chatId, options = {}) {
1422
+ const params = new URLSearchParams();
1423
+ if (options.limit !== void 0) params.append("limit", options.limit.toString());
1424
+ if (options.cursor) params.append("cursor", options.cursor);
1425
+ const queryString = params.toString();
1426
+ return this.fetch(
1427
+ `w/${wid}/chats/${chatId}/ehr-writeback-outcomes${queryString ? `?${queryString}` : ""}`
1428
+ );
1429
+ }
1404
1430
  /** Cancel a pending scheduled callback on a chat. */
1405
1431
  async cancelChatCallback(wid, chatId, callbackId) {
1406
1432
  return this.fetch(
@@ -1412,6 +1438,18 @@ var ChatsApi = class extends BaseApiClient {
1412
1438
  async getChatTodos(wid, chatId) {
1413
1439
  return this.fetch(`w/${wid}/chats/${chatId}/todos`);
1414
1440
  }
1441
+ /**
1442
+ * The caller's own live inline-connect link for a chat.
1443
+ *
1444
+ * An `inline_connect` prompt (`UiPromptPresented.connect`) names the
1445
+ * connection but carries no URL; fetch it here when the member chooses to
1446
+ * connect. 404 when nothing is live for the caller in this chat.
1447
+ */
1448
+ async getInlineConnectLink(wid, chatId, appSlug) {
1449
+ return this.fetch(
1450
+ `w/${wid}/chats/${chatId}/inline-connect/${encodeURIComponent(appSlug)}/link`
1451
+ );
1452
+ }
1415
1453
  /** Get loaded and revealed skills for a chat. */
1416
1454
  async getChatSkills(wid, chatId) {
1417
1455
  return this.fetch(`w/${wid}/chats/${chatId}/skills`);
@@ -1446,6 +1484,23 @@ var ChatsApi = class extends BaseApiClient {
1446
1484
  method: "PUT"
1447
1485
  });
1448
1486
  }
1487
+ /** Start an interaction within an existing Chat without changing its channel. */
1488
+ async createChatInteractionSession(wid, chatId, request) {
1489
+ return this.fetch(
1490
+ `w/${wid}/chats/${chatId}/interaction-sessions`,
1491
+ {
1492
+ method: "POST",
1493
+ body: JSON.stringify(request)
1494
+ }
1495
+ );
1496
+ }
1497
+ /** End one mode session and append its replacement in the same Chat. */
1498
+ async transitionChatInteractionSession(wid, chatId, sessionId, request) {
1499
+ return this.fetch(
1500
+ `w/${wid}/chats/${chatId}/interaction-sessions/${encodeURIComponent(sessionId)}/transition`,
1501
+ { method: "POST", body: JSON.stringify(request) }
1502
+ );
1503
+ }
1449
1504
  /** Create a new chat. */
1450
1505
  async createChat(wid, chat) {
1451
1506
  const { agentMemberId, ...rest } = chat;
@@ -1505,22 +1560,12 @@ var ChatsApi = class extends BaseApiClient {
1505
1560
  });
1506
1561
  }
1507
1562
  /** Update the mute status of a chat. */
1508
- async updateChatMute(wid, id, muted) {
1563
+ async updateChatMute(wid, id, muted, muteReason, muteExpiresOnInbound) {
1509
1564
  return this.fetch(`w/${wid}/chats/${id}/mute`, {
1510
1565
  method: "PUT",
1511
- body: JSON.stringify({ muted })
1566
+ body: JSON.stringify({ muted, muteReason, muteExpiresOnInbound })
1512
1567
  });
1513
1568
  }
1514
- /** Update the needs-response flag on a chat. */
1515
- async updateChatNeedsResponse(wid, id, needsResponse) {
1516
- return this.fetch(
1517
- `w/${wid}/chats/${id}/needs-response`,
1518
- {
1519
- method: "PUT",
1520
- body: JSON.stringify({ needsResponse })
1521
- }
1522
- );
1523
- }
1524
1569
  /** Generate an AI summary for a chat, optionally updating its labels. */
1525
1570
  async summarizeChat(wid, id, updateLabels) {
1526
1571
  const params = new URLSearchParams();
@@ -1536,10 +1581,11 @@ var ChatsApi = class extends BaseApiClient {
1536
1581
  }
1537
1582
  /** List messages in a chat with optional pagination.
1538
1583
  * ``id`` is the numeric chat id (documented) or the chat uuid (accepted). */
1539
- async getChatMessages(wid, id, limit, offset) {
1584
+ async getChatMessages(wid, id, limit, offset, before) {
1540
1585
  const params = new URLSearchParams();
1541
1586
  if (limit) params.append("limit", limit.toString());
1542
1587
  if (offset) params.append("offset", offset.toString());
1588
+ if (before) params.append("before", before);
1543
1589
  return this.fetch(
1544
1590
  `w/${wid}/chats/${id}/messages${params.toString() ? `?${params.toString()}` : ""}`
1545
1591
  );
@@ -1888,6 +1934,35 @@ var CustomToolkitsApi = class extends BaseApiClient {
1888
1934
 
1889
1935
  // src/api/data-types.ts
1890
1936
  var DataTypesApi = class extends BaseApiClient {
1937
+ /** Read the local Form's draft and optimistic publication counters. */
1938
+ async getDataTypeDraft(wid, id) {
1939
+ return this.fetch(`w/${wid}/data-types/${id}/schema-draft`);
1940
+ }
1941
+ /** Save a draft without changing the schema used to validate live records. */
1942
+ async saveDataTypeDraft(wid, id, request) {
1943
+ return this.fetch(`w/${wid}/data-types/${id}/schema-draft`, {
1944
+ method: "PUT",
1945
+ body: JSON.stringify(request)
1946
+ });
1947
+ }
1948
+ /** Publish the expected draft as the next immutable local schema version. */
1949
+ async publishDataTypeDraft(wid, id, request) {
1950
+ return this.fetch(`w/${wid}/data-types/${id}/schema-publish`, {
1951
+ method: "POST",
1952
+ body: JSON.stringify(request)
1953
+ });
1954
+ }
1955
+ /** List schema history newest first; use the last version as the next cursor. */
1956
+ async getDataTypeVersions(wid, id, options) {
1957
+ const params = new URLSearchParams();
1958
+ if (options?.beforeVersion !== void 0)
1959
+ params.set("beforeVersion", String(options.beforeVersion));
1960
+ if (options?.limit !== void 0) params.set("limit", String(options.limit));
1961
+ const query = params.toString();
1962
+ return this.fetch(
1963
+ `w/${wid}/data-types/${id}/schema-versions${query ? `?${query}` : ""}`
1964
+ );
1965
+ }
1891
1966
  /** List all data types for a workspace, optionally filtering by archived status. */
1892
1967
  async getDataTypes(wid, options) {
1893
1968
  const params = new URLSearchParams();
@@ -1956,7 +2031,6 @@ var DataTypesApi = class extends BaseApiClient {
1956
2031
  const params = new URLSearchParams();
1957
2032
  if (options?.memberId !== void 0) params.append("member_id", options.memberId.toString());
1958
2033
  if (options?.memberIds?.length) params.append("member_ids", options.memberIds.join(","));
1959
- if (options?.recordId !== void 0) params.append("record_id", options.recordId.toString());
1960
2034
  if (options?.search) params.append("search", options.search);
1961
2035
  if (options?.searchField) params.append("search_field", options.searchField);
1962
2036
  if (options?.dataRecordFilterId != null) {
@@ -2470,6 +2544,22 @@ var EventsApi = class extends BaseApiClient {
2470
2544
  }
2471
2545
  );
2472
2546
  }
2547
+ /**
2548
+ * Preview what would stop a draft Routine placing its scheduled outbound
2549
+ * calls — the Member voice opt-out, a missing member phone, or a
2550
+ * workspace number that is stale, archived, or not voice-enabled.
2551
+ * Non-persisting and advisory. The audience is reported as counts only,
2552
+ * never as Member rows.
2553
+ */
2554
+ async previewRoutineVoiceReadiness(wid, request) {
2555
+ return this.fetch(
2556
+ `w/${wid}/routines/preview-voice-readiness`,
2557
+ {
2558
+ method: "POST",
2559
+ body: JSON.stringify(request)
2560
+ }
2561
+ );
2562
+ }
2473
2563
  /** List routines with optional pagination and active status filtering. */
2474
2564
  async getRoutines(wid, options = {}) {
2475
2565
  const params = new URLSearchParams();
@@ -2479,6 +2569,8 @@ var EventsApi = class extends BaseApiClient {
2479
2569
  if (options.sortOrder) params.append("sortOrder", options.sortOrder);
2480
2570
  if (options.owner) params.append("owner", options.owner);
2481
2571
  if (options.ownerId) params.append("ownerId", options.ownerId.toString());
2572
+ if (options.agentId) params.append("agentId", options.agentId.toString());
2573
+ if (options.agentOnly) params.append("agentOnly", "true");
2482
2574
  return this.fetch(
2483
2575
  `w/${wid}/routines${params.toString() ? `?${params.toString()}` : ""}`
2484
2576
  );
@@ -3343,7 +3435,14 @@ var InboxesApi = class extends BaseApiClient {
3343
3435
  async getInboxes(wid) {
3344
3436
  return this.fetch(`w/${wid}/inboxes`);
3345
3437
  }
3346
- /** Get an inbox by ID. */
3438
+ /**
3439
+ * Get an inbox by ID or UUID.
3440
+ *
3441
+ * The route has always taken either (`inbox_id: str = Path(..., description=
3442
+ * "Inbox ID or UUID")`); the signature said `number`, which put the UUID path
3443
+ * out of reach for a caller holding an inbox ref from the activity feed —
3444
+ * where refs are UUID-only by design.
3445
+ */
3347
3446
  async getInbox(wid, id) {
3348
3447
  return this.fetch(`w/${wid}/inboxes/${id}`);
3349
3448
  }
@@ -3882,6 +3981,19 @@ var MembersApi = class extends BaseApiClient {
3882
3981
  async getWorkspaceMember(wid, memberId) {
3883
3982
  return this.fetch(`w/${wid}/members/${memberId}`);
3884
3983
  }
3984
+ /**
3985
+ * Get one member of an org's workspace, under `org:read`.
3986
+ *
3987
+ * The same record and the same shape as `getWorkspaceMember`, for a reader
3988
+ * whose authority is the org rather than a member row in that workspace —
3989
+ * an org Activity pane opening a member it just listed. A workspace outside
3990
+ * the org is a 404, indistinguishable from a member id that does not exist.
3991
+ */
3992
+ async getOrgWorkspaceMember(orgUuid, workspaceUuid, memberId) {
3993
+ return this.fetch(
3994
+ `o/${orgUuid}/activity/workspaces/${workspaceUuid}/members/${memberId}`
3995
+ );
3996
+ }
3885
3997
  /** Create a new workspace member. */
3886
3998
  async createWorkspaceMember(wid, data) {
3887
3999
  return this.fetch(`w/${wid}/members`, {
@@ -4061,17 +4173,11 @@ var MembersApi = class extends BaseApiClient {
4061
4173
  * operator can decide whether to skip or explicitly overwrite before
4062
4174
  * committing. Requires MEMBERS_ADMIN and is bulk-PHI audited server-side.
4063
4175
  */
4064
- async previewImportMembers(wid, file, newMemberRoleId, options) {
4176
+ async previewImportMembers(wid, file, newMemberRoleId) {
4065
4177
  const formData = new FormData();
4066
4178
  formData.append("file", file);
4067
4179
  const params = new URLSearchParams();
4068
4180
  params.append("new_member_role_id", newMemberRoleId.toString());
4069
- if (options?.trustEmailAddresses) {
4070
- params.append("trust_email_addresses", "true");
4071
- }
4072
- if (options?.trustPhoneNumbers) {
4073
- params.append("trust_phone_numbers", "true");
4074
- }
4075
4181
  const response = await this.fetchRaw(
4076
4182
  `w/${wid}/members/import/preview?${params.toString()}`,
4077
4183
  {
@@ -4098,12 +4204,6 @@ var MembersApi = class extends BaseApiClient {
4098
4204
  formData.append("file", file);
4099
4205
  const params = new URLSearchParams();
4100
4206
  params.append("new_member_role_id", newMemberRoleId.toString());
4101
- if (options?.trustEmailAddresses) {
4102
- params.append("trust_email_addresses", "true");
4103
- }
4104
- if (options?.trustPhoneNumbers) {
4105
- params.append("trust_phone_numbers", "true");
4106
- }
4107
4207
  if (options?.identityConflictPolicy) {
4108
4208
  params.append("identity_conflict_policy", options.identityConflictPolicy);
4109
4209
  }
@@ -4352,6 +4452,28 @@ var MembersApi = class extends BaseApiClient {
4352
4452
  async getMemberSyncLinks(wid, memberId) {
4353
4453
  return this.fetch(`w/${wid}/members/${memberId}/sync-links`);
4354
4454
  }
4455
+ async getMemberRelationships(wid, memberId, params) {
4456
+ const search = new URLSearchParams();
4457
+ if (params?.page) search.set("page", String(params.page));
4458
+ if (params?.pageSize) search.set("pageSize", String(params.pageSize));
4459
+ if (params?.kind) search.set("kind", params.kind);
4460
+ const qs = search.toString();
4461
+ return this.fetch(
4462
+ `w/${wid}/members/${memberId}/relationships${qs ? `?${qs}` : ""}`
4463
+ );
4464
+ }
4465
+ async createMemberRelationship(wid, memberId, body) {
4466
+ return this.fetch(`w/${wid}/members/${memberId}/relationships`, {
4467
+ method: "POST",
4468
+ body: JSON.stringify(body)
4469
+ });
4470
+ }
4471
+ async archiveMemberRelationship(wid, memberId, relationshipId) {
4472
+ return this.fetch(
4473
+ `w/${wid}/members/${memberId}/relationships/${relationshipId}`,
4474
+ { method: "DELETE" }
4475
+ );
4476
+ }
4355
4477
  };
4356
4478
 
4357
4479
  // src/api/monday.ts
@@ -4599,12 +4721,6 @@ var OperatorApi = class extends BaseApiClient {
4599
4721
  async getPresenceStatus(wid) {
4600
4722
  return this.fetch(`w/${wid}/presence/me`);
4601
4723
  }
4602
- /** Disconnect the current member's presence session. */
4603
- async disconnectPresence(wid) {
4604
- return this.fetch(`w/${wid}/presence/disconnect-self`, {
4605
- method: "POST"
4606
- });
4607
- }
4608
4724
  // Operator chat message methods
4609
4725
  /** Get paginated chat messages for an operator chat. */
4610
4726
  async getOperatorChatMessages(wid, chatId, limit = 50, offset = 0) {
@@ -5174,6 +5290,28 @@ var OrgApi = class extends BaseApiClient {
5174
5290
  async getLegalEntity(orgUuid, legalEntityUuid) {
5175
5291
  return this.fetch(`o/${orgUuid}/legal-entities/${legalEntityUuid}`);
5176
5292
  }
5293
+ /**
5294
+ * Read one registration draft for a legal entity.
5295
+ *
5296
+ * A draft is what the operator has typed but not submitted. It exists so
5297
+ * data entry is never gated on a prerequisite: someone can write down the
5298
+ * caller-ID name today and submit it the day the business is verified.
5299
+ */
5300
+ async getRegistrationDraft(orgUuid, legalEntityUuid, kind) {
5301
+ return this.fetch(
5302
+ `o/${orgUuid}/legal-entities/${legalEntityUuid}/registration-drafts/${kind}`
5303
+ );
5304
+ }
5305
+ /**
5306
+ * Save one registration draft. Always accepted — the server refuses only
5307
+ * an oversized body, never an unfinished one.
5308
+ */
5309
+ async saveRegistrationDraft(orgUuid, legalEntityUuid, kind, data) {
5310
+ return this.fetch(
5311
+ `o/${orgUuid}/legal-entities/${legalEntityUuid}/registration-drafts/${kind}`,
5312
+ { method: "PUT", body: JSON.stringify({ data }) }
5313
+ );
5314
+ }
5177
5315
  /** Cached voice trust product state (CNAM / SHAKEN-STIR / Voice Integrity) for one legal entity. */
5178
5316
  async getVoiceTrustProducts(orgUuid, legalEntityUuid) {
5179
5317
  return this.fetch(
@@ -5347,6 +5485,42 @@ var OrgApi = class extends BaseApiClient {
5347
5485
  }
5348
5486
  );
5349
5487
  }
5488
+ // =========================================================================
5489
+ // Organization webhook endpoints (GRA-8314)
5490
+ // =========================================================================
5491
+ async listOrgWebhookEndpoints(orgIdOrUuid) {
5492
+ return this.fetch(`o/${orgIdOrUuid}/webhooks`);
5493
+ }
5494
+ /**
5495
+ * The subscribable event-type vocabulary for the org UI's event-type
5496
+ * picker — exactly what the create/update validators accept, so the UI
5497
+ * never offers a type the API would reject.
5498
+ */
5499
+ async listOrgWebhookEventTypes(orgIdOrUuid) {
5500
+ return this.fetch(`o/${orgIdOrUuid}/webhooks/event-types`);
5501
+ }
5502
+ async createOrgWebhookEndpoint(orgIdOrUuid, data) {
5503
+ return this.fetch(`o/${orgIdOrUuid}/webhooks`, {
5504
+ method: "POST",
5505
+ body: JSON.stringify(data)
5506
+ });
5507
+ }
5508
+ async updateOrgWebhookEndpoint(orgIdOrUuid, endpointUuid, data) {
5509
+ return this.fetch(`o/${orgIdOrUuid}/webhooks/${endpointUuid}`, {
5510
+ method: "PATCH",
5511
+ body: JSON.stringify(data)
5512
+ });
5513
+ }
5514
+ async deleteOrgWebhookEndpoint(orgIdOrUuid, endpointUuid) {
5515
+ return this.fetch(`o/${orgIdOrUuid}/webhooks/${endpointUuid}`, {
5516
+ method: "DELETE"
5517
+ });
5518
+ }
5519
+ async listOrgWebhookEndpointDeliveries(orgIdOrUuid, endpointUuid, limit = 50) {
5520
+ return this.fetch(
5521
+ `o/${orgIdOrUuid}/webhooks/${endpointUuid}/deliveries?limit=${limit}`
5522
+ );
5523
+ }
5350
5524
  };
5351
5525
  function businessProfilePath(orgUuid, legalEntityUuid) {
5352
5526
  return legalEntityUuid ? `o/${orgUuid}/legal-entities/${legalEntityUuid}/business-profile` : `o/${orgUuid}/business-profile`;
@@ -5767,6 +5941,8 @@ var PersonasApi = class extends BaseApiClient {
5767
5941
  const q = new URLSearchParams();
5768
5942
  if (params?.page !== void 0) q.set("page", String(params.page));
5769
5943
  if (params?.pageSize !== void 0) q.set("pageSize", String(params.pageSize));
5944
+ if (params?.includeArchived !== void 0)
5945
+ q.set("includeArchived", String(params.includeArchived));
5770
5946
  const qs = q.toString() ? `?${q.toString()}` : "";
5771
5947
  return this.fetch(`w/${wid}/personas${qs}`);
5772
5948
  }
@@ -5785,6 +5961,18 @@ var PersonasApi = class extends BaseApiClient {
5785
5961
  body: JSON.stringify(data)
5786
5962
  });
5787
5963
  }
5964
+ async archivePersona(wid, id) {
5965
+ return this.fetch(`w/${wid}/personas/${id}/archive`, {
5966
+ method: "POST",
5967
+ body: JSON.stringify({})
5968
+ });
5969
+ }
5970
+ async unarchivePersona(wid, id) {
5971
+ return this.fetch(`w/${wid}/personas/${id}/unarchive`, {
5972
+ method: "POST",
5973
+ body: JSON.stringify({})
5974
+ });
5975
+ }
5788
5976
  async deletePersona(wid, id) {
5789
5977
  return this.fetch(`w/${wid}/personas/${id}`, { method: "DELETE" });
5790
5978
  }
@@ -7276,6 +7464,59 @@ var JourneysApi = class extends BaseApiClient {
7276
7464
  async getJourneyAuthoring(wid, journeyId) {
7277
7465
  return this.fetch(`w/${wid}/journeys/${journeyId}/authoring`);
7278
7466
  }
7467
+ /**
7468
+ * Atomically replace a v2 Journey's whole definition (Journey v2 plan §3.8).
7469
+ *
7470
+ * ONE request carries the ordered touches, the wait into each touch, the
7471
+ * ordered Endings, action associations, goals, and
7472
+ * `expectedUpdatedAt` for optimistic concurrency. It is a full replacement,
7473
+ * not a patch — omitting `goals` is the one exception and leaves them alone.
7474
+ *
7475
+ * Returns the AUTHORING projection (`Journey`): the caller just wrote the
7476
+ * CEL and holds the `journeys:write` scope that authorizes reading it back.
7477
+ *
7478
+ * Refusals are HTTP 409 with a stable `code`:
7479
+ * * `journey_v2_execution_model_mismatch` — the Journey is legacy; use the
7480
+ * step/connection/goal endpoints.
7481
+ * * `journey_v2_structural_edit_not_allowed` — it is live; pause it first.
7482
+ * * `journey_v2_definition_conflict` — someone saved first; reload.
7483
+ * * `journey_v2_invalid_topology` — the resulting graph is not executable;
7484
+ * the body carries `issues` (codes and resource uuids, never CEL).
7485
+ */
7486
+ async putJourneyV2Definition(wid, journeyId, data) {
7487
+ return this.fetch(`w/${wid}/journeys/${journeyId}/v2-definition`, {
7488
+ method: "PUT",
7489
+ body: JSON.stringify(data)
7490
+ });
7491
+ }
7492
+ /**
7493
+ * Dry-run the v2 publish validator against the STORED definition.
7494
+ *
7495
+ * Answers "could I activate this right now?" without attempting the
7496
+ * transition. Issues carry closed codes and resource uuids only — never CEL
7497
+ * and never member data — so they are safe to render or log.
7498
+ */
7499
+ async getJourneyV2Validation(wid, journeyId) {
7500
+ return this.fetch(
7501
+ `w/${wid}/journeys/${journeyId}/v2-definition/validation`
7502
+ );
7503
+ }
7504
+ /**
7505
+ * MemberFilter ids and names, for the Journey authoring picker.
7506
+ *
7507
+ * A v2 wait, route or Ending may carry a structured MemberFilter predicate
7508
+ * and the author selects it by NAME (rule-filters plan §3.10). This is the
7509
+ * catalogue for that control and the whole of what it needs: two scalars per
7510
+ * filter, no `query` predicate, no rules, no counts.
7511
+ *
7512
+ * Authorized on `journeys:write` alone — deliberately NOT the Members
7513
+ * surface's `MembersApi.getMemberFilters`, which is `members:read`
7514
+ * because it returns each filter's predicate. Journey authoring should not
7515
+ * require Member-read access to name a cohort.
7516
+ */
7517
+ async getJourneyFilterOptions(wid) {
7518
+ return this.fetch(`w/${wid}/journeys/filter-options`);
7519
+ }
7279
7520
  /** Create a new journey. Returns the READ projection (`JourneyRead`). */
7280
7521
  async createJourney(wid, data) {
7281
7522
  return this.fetch(`w/${wid}/journeys`, {
@@ -7283,7 +7524,14 @@ var JourneysApi = class extends BaseApiClient {
7283
7524
  body: JSON.stringify(data)
7284
7525
  });
7285
7526
  }
7286
- /** Update an existing journey. Returns the READ projection (`JourneyRead`). */
7527
+ /**
7528
+ * Update an existing journey. Returns the READ projection (`JourneyRead`).
7529
+ *
7530
+ * `executionModel` is excluded: it is a CREATE-only field. Flipping a live
7531
+ * Journey's engine is a guarded, audited migration operation (Journey v2
7532
+ * plan §3.11), so the server has no update counterpart and sending one here
7533
+ * would silently do nothing.
7534
+ */
7287
7535
  async updateJourney(wid, journeyId, data) {
7288
7536
  return this.fetch(`w/${wid}/journeys/${journeyId}`, {
7289
7537
  method: "PUT",
@@ -7390,8 +7638,6 @@ var JourneysApi = class extends BaseApiClient {
7390
7638
  qs.set("currentTaskId", String(params.currentTaskId));
7391
7639
  if (params?.runtimeFailureEdgeId !== void 0)
7392
7640
  qs.set("runtimeFailureEdgeId", String(params.runtimeFailureEdgeId));
7393
- if (params?.memberJourneyId !== void 0)
7394
- qs.set("memberJourneyId", String(params.memberJourneyId));
7395
7641
  const query = qs.toString();
7396
7642
  return this.fetch(
7397
7643
  `w/${wid}/journeys/${journeyId}/members${query ? `?${query}` : ""}`
@@ -7545,6 +7791,15 @@ var WorkflowsApi = class extends BaseApiClient {
7545
7791
  async getWorkflow(wid, id) {
7546
7792
  return this.fetch(`w/${wid}/workflows/${id}`);
7547
7793
  }
7794
+ async getWorkflowOpeningTurnConversionReport(wid, id) {
7795
+ return this.fetch(`w/${wid}/workflows/${id}/opening-turn/conversion-report`);
7796
+ }
7797
+ async convertWorkflowStartTaskOpeningMessage(wid, id, expectedRuleId) {
7798
+ return this.fetch(`w/${wid}/workflows/${id}/opening-turn/convert-start-task-message`, {
7799
+ method: "POST",
7800
+ body: JSON.stringify({ expectedRuleId })
7801
+ });
7802
+ }
7548
7803
  /** Get activity metrics for a single workflow. */
7549
7804
  async getWorkflowActivity(wid, id, options) {
7550
7805
  const params = options?.days ? `?days=${options.days}` : "";
@@ -8036,7 +8291,9 @@ var Scope = /* @__PURE__ */ ((Scope2) => {
8036
8291
  var BulkMemberResultStatus = {
8037
8292
  created: "created",
8038
8293
  updated: "updated",
8039
- failed: "failed"
8294
+ failed: "failed",
8295
+ conflict: "conflict",
8296
+ skipped: "skipped"
8040
8297
  };
8041
8298
  var MemberImportMatchInfoMatchType = {
8042
8299
  external_id: "external_id",
@@ -8050,6 +8307,7 @@ var MemberImportPreviewRowAction = {
8050
8307
  update: "update",
8051
8308
  unchanged: "unchanged",
8052
8309
  conflict: "conflict",
8310
+ skipped: "skipped",
8053
8311
  error: "error"
8054
8312
  };
8055
8313
 
@@ -8198,6 +8456,8 @@ var EventRuleActionType = /* @__PURE__ */ ((EventRuleActionType2) => {
8198
8456
  EventRuleActionType2["CONNECTOR_OPERATION"] = "connector:operation";
8199
8457
  EventRuleActionType2["ECW_REFRESH_MEMBER_ENCOUNTERS"] = "ecw:refresh_member_encounters";
8200
8458
  EventRuleActionType2["PLAY_AUDIO"] = "audio:play";
8459
+ EventRuleActionType2["CHARLESTON_SEND_PMD_PAGE"] = "charleston:send_pmd_page";
8460
+ EventRuleActionType2["PATIENTSYNC_TRANSFER"] = "patientsync:transfer";
8201
8461
  return EventRuleActionType2;
8202
8462
  })(EventRuleActionType || {});
8203
8463
  function eventRuleActionParams(params) {
@@ -8219,6 +8479,7 @@ var WorkspaceFeature = /* @__PURE__ */ ((WorkspaceFeature2) => {
8219
8479
  WorkspaceFeature2["BROWSER"] = "browser";
8220
8480
  WorkspaceFeature2["WEB_SEARCH"] = "web_search";
8221
8481
  WorkspaceFeature2["CALENDAR"] = "calendar";
8482
+ WorkspaceFeature2["JOURNEY_V2_EDITOR"] = "journey_v2_editor";
8222
8483
  WorkspaceFeature2["EXPERIMENTS"] = "experiments";
8223
8484
  WorkspaceFeature2["MAILBOX_USER_INPUT"] = "mailbox_user_input";
8224
8485
  WorkspaceFeature2["FORKED_TRAJECTORIES"] = "forked_trajectories";
@@ -8344,6 +8605,7 @@ var ModelProvider = {
8344
8605
  elevenlabs: "elevenlabs",
8345
8606
  deepgram: "deepgram",
8346
8607
  xai: "xai",
8608
+ fireworks: "fireworks",
8347
8609
  custom: "custom"
8348
8610
  };
8349
8611
  var ModelType = {
@@ -8397,6 +8659,24 @@ var FhirClientType = /* @__PURE__ */ ((FhirClientType2) => {
8397
8659
  return FhirClientType2;
8398
8660
  })(FhirClientType || {});
8399
8661
 
8662
+ // src/types/generated/qualification.ts
8663
+ var TestChatRunLane = {
8664
+ text: "text",
8665
+ web_realtime: "web_realtime",
8666
+ core_agent_only: "core_agent_only",
8667
+ unsupported: "unsupported",
8668
+ unknown: "unknown"
8669
+ };
8670
+ var TestChatRunOutcome = {
8671
+ simulator_end: "simulator_end",
8672
+ terminal_tool: "terminal_tool",
8673
+ agent_silent: "agent_silent",
8674
+ max_turns: "max_turns",
8675
+ human_end: "human_end",
8676
+ configuration_failure: "configuration_failure",
8677
+ instrument_failure: "instrument_failure"
8678
+ };
8679
+
8400
8680
  // src/types/qualification-types.ts
8401
8681
  var CriterionType = /* @__PURE__ */ ((CriterionType2) => {
8402
8682
  CriterionType2["EXPRESSION"] = "expression";
@@ -8455,10 +8735,242 @@ var ConsentMethod = /* @__PURE__ */ ((ConsentMethod2) => {
8455
8735
  return ConsentMethod2;
8456
8736
  })(ConsentMethod || {});
8457
8737
 
8738
+ // src/types/generated/member_relationship.ts
8739
+ var MemberRelationshipKind = {
8740
+ parent_of: "parent_of",
8741
+ sibling_of: "sibling_of",
8742
+ spouse_of: "spouse_of",
8743
+ caregiver_of: "caregiver_of",
8744
+ emergency_contact_of: "emergency_contact_of",
8745
+ next_of_kin_of: "next_of_kin_of",
8746
+ legal_guardian_of: "legal_guardian_of",
8747
+ healthcare_agent_of: "healthcare_agent_of",
8748
+ doctor_of: "doctor_of",
8749
+ primary_contact_of: "primary_contact_of"
8750
+ };
8751
+ var RelatedMemberRole = {
8752
+ parent: "parent",
8753
+ child: "child",
8754
+ sibling: "sibling",
8755
+ spouse: "spouse",
8756
+ caregiver: "caregiver",
8757
+ care_recipient: "care_recipient",
8758
+ emergency_contact: "emergency_contact",
8759
+ emergency_contact_for: "emergency_contact_for",
8760
+ next_of_kin: "next_of_kin",
8761
+ next_of_kin_for: "next_of_kin_for",
8762
+ legal_guardian: "legal_guardian",
8763
+ legal_guardian_for: "legal_guardian_for",
8764
+ healthcare_agent: "healthcare_agent",
8765
+ healthcare_agent_for: "healthcare_agent_for",
8766
+ doctor: "doctor",
8767
+ patient: "patient",
8768
+ primary_contact: "primary_contact",
8769
+ primary_contact_for: "primary_contact_for"
8770
+ };
8771
+ var RelationshipCardinality = {
8772
+ many_to_many: "many_to_many",
8773
+ one_to_one: "one_to_one",
8774
+ one_per_target: "one_per_target"
8775
+ };
8776
+
8777
+ // src/types/generated/member_relationship_catalog.ts
8778
+ var MEMBER_RELATIONSHIP_KINDS = [
8779
+ {
8780
+ "kind": "parent_of",
8781
+ "cardinality": "many_to_many",
8782
+ "symmetric": false,
8783
+ "grantsChartAccess": false,
8784
+ "roles": [
8785
+ {
8786
+ "role": "parent",
8787
+ "label": "Parent",
8788
+ "inverseLabel": "Child",
8789
+ "description": "This person is a parent of the member. For a minor, also add Legal guardian if they should read the chart."
8790
+ },
8791
+ {
8792
+ "role": "child",
8793
+ "label": "Child",
8794
+ "inverseLabel": "Parent",
8795
+ "description": "This person is a child of the member."
8796
+ }
8797
+ ]
8798
+ },
8799
+ {
8800
+ "kind": "sibling_of",
8801
+ "cardinality": "many_to_many",
8802
+ "symmetric": true,
8803
+ "grantsChartAccess": false,
8804
+ "roles": [
8805
+ {
8806
+ "role": "sibling",
8807
+ "label": "Sibling",
8808
+ "inverseLabel": "Sibling",
8809
+ "description": "These members are siblings."
8810
+ }
8811
+ ]
8812
+ },
8813
+ {
8814
+ "kind": "spouse_of",
8815
+ "cardinality": "one_to_one",
8816
+ "symmetric": true,
8817
+ "grantsChartAccess": false,
8818
+ "roles": [
8819
+ {
8820
+ "role": "spouse",
8821
+ "label": "Spouse",
8822
+ "inverseLabel": "Spouse",
8823
+ "description": "These members are spouses or partners."
8824
+ }
8825
+ ]
8826
+ },
8827
+ {
8828
+ "kind": "caregiver_of",
8829
+ "cardinality": "many_to_many",
8830
+ "symmetric": false,
8831
+ "grantsChartAccess": false,
8832
+ "roles": [
8833
+ {
8834
+ "role": "caregiver",
8835
+ "label": "Caregiver",
8836
+ "inverseLabel": "Care recipient",
8837
+ "description": "This person provides care for the member at home."
8838
+ },
8839
+ {
8840
+ "role": "care_recipient",
8841
+ "label": "Care recipient",
8842
+ "inverseLabel": "Caregiver",
8843
+ "description": "This person receives care from the member."
8844
+ }
8845
+ ]
8846
+ },
8847
+ {
8848
+ "kind": "emergency_contact_of",
8849
+ "cardinality": "many_to_many",
8850
+ "symmetric": false,
8851
+ "grantsChartAccess": false,
8852
+ "roles": [
8853
+ {
8854
+ "role": "emergency_contact",
8855
+ "label": "Emergency contact",
8856
+ "inverseLabel": "Emergency contact for",
8857
+ "description": "This person is the member's emergency contact."
8858
+ },
8859
+ {
8860
+ "role": "emergency_contact_for",
8861
+ "label": "Emergency contact for",
8862
+ "inverseLabel": "Emergency contact",
8863
+ "description": "The member is listed as this person's emergency contact."
8864
+ }
8865
+ ]
8866
+ },
8867
+ {
8868
+ "kind": "next_of_kin_of",
8869
+ "cardinality": "one_per_target",
8870
+ "symmetric": false,
8871
+ "grantsChartAccess": false,
8872
+ "roles": [
8873
+ {
8874
+ "role": "next_of_kin",
8875
+ "label": "Next of kin",
8876
+ "inverseLabel": "Next of kin for",
8877
+ "description": "This person is the member's designated next of kin. A member has at most one."
8878
+ },
8879
+ {
8880
+ "role": "next_of_kin_for",
8881
+ "label": "Next of kin for",
8882
+ "inverseLabel": "Next of kin",
8883
+ "description": "The member is this person's designated next of kin."
8884
+ }
8885
+ ]
8886
+ },
8887
+ {
8888
+ "kind": "legal_guardian_of",
8889
+ "cardinality": "many_to_many",
8890
+ "symmetric": false,
8891
+ "grantsChartAccess": true,
8892
+ "roles": [
8893
+ {
8894
+ "role": "legal_guardian",
8895
+ "label": "Legal guardian",
8896
+ "inverseLabel": "Legal guardian for",
8897
+ "description": "Court-appointed guardian, or parent/person with parental responsibility for a minor."
8898
+ },
8899
+ {
8900
+ "role": "legal_guardian_for",
8901
+ "label": "Legal guardian for",
8902
+ "inverseLabel": "Legal guardian",
8903
+ "description": "The member is this person's legal guardian."
8904
+ }
8905
+ ]
8906
+ },
8907
+ {
8908
+ "kind": "healthcare_agent_of",
8909
+ "cardinality": "many_to_many",
8910
+ "symmetric": false,
8911
+ "grantsChartAccess": true,
8912
+ "roles": [
8913
+ {
8914
+ "role": "healthcare_agent",
8915
+ "label": "Healthcare agent",
8916
+ "inverseLabel": "Healthcare agent for",
8917
+ "description": "Healthcare power of attorney or health proxy."
8918
+ },
8919
+ {
8920
+ "role": "healthcare_agent_for",
8921
+ "label": "Healthcare agent for",
8922
+ "inverseLabel": "Healthcare agent",
8923
+ "description": "The member is this person's healthcare agent (healthcare power of attorney or health proxy)."
8924
+ }
8925
+ ]
8926
+ },
8927
+ {
8928
+ "kind": "doctor_of",
8929
+ "cardinality": "many_to_many",
8930
+ "symmetric": false,
8931
+ "grantsChartAccess": true,
8932
+ "roles": [
8933
+ {
8934
+ "role": "doctor",
8935
+ "label": "Doctor",
8936
+ "inverseLabel": "Patient",
8937
+ "description": "This person is a treating clinician for the member."
8938
+ },
8939
+ {
8940
+ "role": "patient",
8941
+ "label": "Patient",
8942
+ "inverseLabel": "Doctor",
8943
+ "description": "This person is a patient of the member."
8944
+ }
8945
+ ]
8946
+ },
8947
+ {
8948
+ "kind": "primary_contact_of",
8949
+ "cardinality": "one_per_target",
8950
+ "symmetric": false,
8951
+ "grantsChartAccess": true,
8952
+ "roles": [
8953
+ {
8954
+ "role": "primary_contact",
8955
+ "label": "Primary contact",
8956
+ "inverseLabel": "Primary contact for",
8957
+ "description": "This person is the organization's primary contact for the member. A member has at most one."
8958
+ },
8959
+ {
8960
+ "role": "primary_contact_for",
8961
+ "label": "Primary contact for",
8962
+ "inverseLabel": "Primary contact",
8963
+ "description": "The member is this person's assigned primary contact inside the organization."
8964
+ }
8965
+ ]
8966
+ }
8967
+ ];
8968
+
8458
8969
  // src/types/config-health-types.ts
8459
8970
  var CONFIG_HEALTH_FACADE_CHECK_SLUGS = [
8460
8971
  "workflow.config",
8461
8972
  "journey.authoring",
8973
+ "journey.v2_validation",
8462
8974
  "workflow.access",
8463
8975
  "routine.workflow_access",
8464
8976
  "workspace.validation"
@@ -8467,85 +8979,20 @@ function isConfigHealthFacadeCheckSlug(value) {
8467
8979
  return CONFIG_HEALTH_FACADE_CHECK_SLUGS.includes(value);
8468
8980
  }
8469
8981
 
8470
- // src/types/generated/activity_timeline.ts
8471
- var ActivityActorKind = {
8472
- member: "member",
8473
- agent: "agent",
8474
- operator: "operator",
8475
- event_rule: "event_rule",
8476
- api_key: "api_key",
8477
- system: "system"
8478
- };
8479
- var ActivityAggregationKind = {
8480
- burst: "burst",
8481
- conversation_session: "conversation_session",
8482
- operation: "operation"
8483
- };
8484
- var ActivityCaptureState = {
8485
- active: "active",
8486
- not_started: "not_started"
8982
+ // src/types/generated/ui_prompt.ts
8983
+ var UiPromptPresentedKind = {
8984
+ render_ui: "render_ui",
8985
+ present_choice_list: "present_choice_list",
8986
+ inline_connect: "inline_connect"
8487
8987
  };
8488
- var ActivityConfigAction = {
8489
- created: "created",
8490
- updated: "updated",
8491
- deleted: "deleted"
8492
- };
8493
- var ActivityConfigArea = {
8494
- inbox: "inbox",
8495
- phone_number: "phone_number",
8496
- business_hours: "business_hours",
8497
- escalation_settings: "escalation_settings",
8498
- workspace_settings: "workspace_settings"
8499
- };
8500
- var ActivityCoverageLimitation = {
8501
- none: "none",
8502
- capture_started_at_cutover: "capture_started_at_cutover",
8503
- legacy_baseline_incomplete: "legacy_baseline_incomplete",
8504
- deletion_may_remove_history: "deletion_may_remove_history",
8505
- config_capture_started: "config_capture_started"
8506
- };
8507
- var ActivityDirection = {
8508
- inbound: "inbound",
8509
- outbound: "outbound"
8988
+ var UiPromptResponseKind = {
8989
+ render_ui: "render_ui",
8990
+ present_choice_list: "present_choice_list",
8991
+ inline_connect: "inline_connect"
8510
8992
  };
8511
- var ActivityEmptyReason = {
8512
- collection: "collection",
8513
- period: "period",
8514
- filtered: "filtered"
8515
- };
8516
- var ActivityEventType = {
8517
- workflow_started: "workflow_started",
8518
- assignment_task_transition: "assignment_task_transition",
8519
- journey_status_changed: "journey_status_changed",
8520
- journey_step_status_changed: "journey_step_status_changed",
8521
- journey_goal_status_changed: "journey_goal_status_changed",
8522
- chat_started: "chat_started",
8523
- message: "message",
8524
- call: "call",
8525
- form_field_changed: "form_field_changed",
8526
- config_changed: "config_changed"
8527
- };
8528
- var ActivityEventTypePreset = {
8529
- communications: "communications",
8530
- formUpdates: "formUpdates",
8531
- workflowTask: "workflowTask",
8532
- journey: "journey",
8533
- configuration: "configuration"
8534
- };
8535
- var ActivityGoalImpact = {
8536
- neutral: "neutral",
8537
- success: "success",
8538
- attention: "attention",
8539
- failure: "failure"
8540
- };
8541
- var ActivityTimelineProjection = {
8542
- timeline: "timeline"
8543
- };
8544
- var FormValueDisposition = {
8545
- shown: "shown",
8546
- omitted_long: "omitted_long",
8547
- omitted_structured: "omitted_structured",
8548
- omitted_burst: "omitted_burst"
8993
+ var UiPromptResponseStatus = {
8994
+ submitted: "submitted",
8995
+ declined: "declined"
8549
8996
  };
8550
8997
 
8551
8998
  // src/types/experiment-types.ts
@@ -8696,11 +9143,31 @@ var WorkspaceInvitationsApi = class extends BaseApiClient {
8696
9143
  };
8697
9144
 
8698
9145
  // src/api/workspaces.ts
9146
+ function planFields(options) {
9147
+ if (!options) return {};
9148
+ const fields = {};
9149
+ if (options.intent !== void 0) fields.intent = options.intent;
9150
+ if (options.expectedPlanFingerprint !== void 0) {
9151
+ fields.expectedPlanFingerprint = options.expectedPlanFingerprint;
9152
+ }
9153
+ if (options.bindings !== void 0 && options.bindings.length > 0) {
9154
+ fields.bindings = options.bindings;
9155
+ }
9156
+ return fields;
9157
+ }
8699
9158
  var WorkspacesApi = class extends BaseApiClient {
8700
9159
  /** List all workspaces accessible to the current user. */
8701
9160
  async getWorkspaces() {
8702
9161
  return this.fetch("w/");
8703
9162
  }
9163
+ /**
9164
+ * Compact rows for the workspaces a companion device could enter — the
9165
+ * Lantern picker. Filtered by the same admission policy a device
9166
+ * credential is gated by, without needing the device credential.
9167
+ */
9168
+ async getDeviceAdmissibleWorkspaces() {
9169
+ return this.fetch("w/?can_use_device=1");
9170
+ }
8704
9171
  /** List all publicly visible workspaces. */
8705
9172
  async getPublicWorkspaces() {
8706
9173
  return this.fetch("w/public");
@@ -8994,18 +9461,62 @@ var WorkspacesApi = class extends BaseApiClient {
8994
9461
  const qs = searchParams.toString();
8995
9462
  return this.fetch(`w/${wid}/export${qs ? `?${qs}` : ""}`);
8996
9463
  }
8997
- /** Preview the result of importing workspace configuration without applying changes. */
8998
- async previewWorkspaceImport(wid, exportData, importMappings, createNew, autoMap) {
9464
+ /** Preview the result of importing workspace configuration without applying changes.
9465
+ *
9466
+ * Pass `options.intent = 'template_reapply'` to get the deterministic
9467
+ * re-apply plan: `planRows`, `sourceFingerprint` and `planFingerprint` come
9468
+ * back beside the legacy preview items, and the fingerprint is what
9469
+ * `importWorkspace` must be given to apply exactly that projection.
9470
+ */
9471
+ async previewWorkspaceImport(wid, exportData, importMappings, createNew, autoMap, options) {
8999
9472
  return this.fetch(`w/${wid}/preview-import`, {
9000
9473
  method: "POST",
9001
9474
  body: JSON.stringify({
9002
9475
  exportData,
9003
9476
  importMappings,
9004
9477
  createNew,
9005
- autoMap
9478
+ autoMap,
9479
+ ...planFields(options)
9006
9480
  })
9007
9481
  });
9008
9482
  }
9483
+ /**
9484
+ * Plan a workspace export ZIP against this workspace without importing it.
9485
+ *
9486
+ * The sibling of `previewWorkspaceImport`, and it exists for one reason: a
9487
+ * JSON preview has no archive, so it cannot decide whether File BYTES would
9488
+ * be replaced — that decision compares the archive's blob digest against the
9489
+ * destination's current content digest.
9490
+ */
9491
+ async previewWorkspaceImportZip(wid, archive, options) {
9492
+ const { exportData, importMappings, createNew, autoMap, ...planOptions } = options ?? {};
9493
+ const payload = {
9494
+ importMappings: importMappings ?? {},
9495
+ createNew: createNew ?? {},
9496
+ ...planFields(planOptions)
9497
+ };
9498
+ if (exportData) payload.exportData = exportData;
9499
+ if (autoMap) payload.autoMap = autoMap;
9500
+ const form = new FormData();
9501
+ form.append(
9502
+ "request",
9503
+ new Blob([JSON.stringify(payload)], { type: "application/json" }),
9504
+ "import.json"
9505
+ );
9506
+ form.append("archive", archive, "workspace-export.zip");
9507
+ return this.fetch(`w/${wid}/preview-import.zip`, {
9508
+ method: "POST",
9509
+ body: form
9510
+ });
9511
+ }
9512
+ /**
9513
+ * Everything a template re-apply adds to an import or a preview.
9514
+ *
9515
+ * `bindings` values are sent in the request body only. They are never
9516
+ * projected from a response and must never be logged: the point of a
9517
+ * binding is that a webhook endpoint and a signing secret belong to ONE
9518
+ * target workspace.
9519
+ */
9009
9520
  /** Download a workspace export ZIP (``export.json`` + file blobs). */
9010
9521
  async exportWorkspaceZip(wid, workflowId, scope, exclude) {
9011
9522
  const searchParams = new URLSearchParams();
@@ -9019,46 +9530,138 @@ var WorkspacesApi = class extends BaseApiClient {
9019
9530
  /** Import workspace configuration from exported JSON, or from a ZIP archive.
9020
9531
  * Pass ``archive`` (the ZIP from ``exportWorkspaceZip``) to restore file
9021
9532
  * contents. ``exportData`` may be omitted when the ZIP contains it.
9022
- */
9023
- async importWorkspace(wid, exportData, importMappings, createNew, archive) {
9024
- const payload = {
9025
- importMappings,
9026
- createNew
9027
- };
9028
- if (exportData) {
9029
- payload.exportData = exportData;
9030
- }
9533
+ *
9534
+ * ``activateWebhookRules`` is safety-default false: imported
9535
+ * ``webhook:send`` EventRules are force-disabled unless the operator
9536
+ * opts in. An exported-inactive rule stays inactive either way.
9537
+ *
9538
+ * With ``options.intent = 'template_reapply'`` this is the GUARDED apply.
9539
+ * It requires ``options.expectedPlanFingerprint`` — the digest a preview
9540
+ * returned — and answers 200 ``success``, 200 ``noop`` (the target already
9541
+ * matched the template, so nothing at all was recorded), 409
9542
+ * ``stale_import_plan`` or 409 ``import_plan_refused``. Both 409s commit
9543
+ * nothing and carry the complete values-free ``planRows``.
9544
+ */
9545
+ async importWorkspace(wid, exportData, importMappings, createNew, archive, activateWebhookRules, autoMap, options) {
9031
9546
  if (archive) {
9032
- const form = new FormData();
9033
- form.append(
9034
- "request",
9035
- new Blob([JSON.stringify(payload)], { type: "application/json" }),
9036
- "import.json"
9037
- );
9038
- form.append("archive", archive, "workspace-export.zip");
9039
- return this.fetch(`w/${wid}/import.zip`, {
9040
- method: "POST",
9041
- body: form
9547
+ return this.importWorkspaceZip(wid, archive, {
9548
+ ...options,
9549
+ exportData,
9550
+ importMappings,
9551
+ createNew,
9552
+ autoMap,
9553
+ activateWebhookRules
9042
9554
  });
9043
9555
  }
9044
9556
  if (!exportData) {
9045
9557
  throw new Error("exportData is required for JSON import");
9046
9558
  }
9559
+ const payload = {
9560
+ exportData,
9561
+ importMappings,
9562
+ createNew,
9563
+ ...planFields(options)
9564
+ };
9565
+ if (activateWebhookRules) {
9566
+ payload.activateWebhookRules = activateWebhookRules;
9567
+ }
9568
+ if (autoMap) {
9569
+ payload.autoMap = autoMap;
9570
+ }
9047
9571
  return this.fetch(`w/${wid}/import`, {
9048
9572
  method: "POST",
9049
9573
  body: JSON.stringify(payload)
9050
9574
  });
9051
9575
  }
9576
+ /**
9577
+ * Apply a workspace export ZIP to this workspace.
9578
+ *
9579
+ * The apply sibling of `previewWorkspaceImportZip`, and the same multipart
9580
+ * shape: the archive travels as `archive`, everything else as one JSON
9581
+ * `request` part. `exportData` defaults to `export.json` inside the ZIP, so
9582
+ * it is sent only to override it.
9583
+ *
9584
+ * With `options.intent = 'template_reapply'` this is the GUARDED apply. It
9585
+ * requires `options.expectedPlanFingerprint` — the digest a preview
9586
+ * returned — and answers 200 `success`, 200 `noop` (the target already
9587
+ * matched the template, so nothing at all was recorded), 409
9588
+ * `stale_import_plan` or 409 `import_plan_refused`. Both 409s commit
9589
+ * nothing and carry the complete values-free `planRows`.
9590
+ *
9591
+ * `options.bindings` values are sent in the request body only. They are
9592
+ * never projected from a response and must never be logged: the point of a
9593
+ * binding is that a webhook endpoint and a signing secret belong to ONE
9594
+ * target workspace.
9595
+ */
9596
+ async importWorkspaceZip(wid, archive, options) {
9597
+ const {
9598
+ exportData,
9599
+ importMappings,
9600
+ createNew,
9601
+ autoMap,
9602
+ activateWebhookRules,
9603
+ ...planOptions
9604
+ } = options ?? {};
9605
+ const payload = {
9606
+ importMappings: importMappings ?? {},
9607
+ createNew: createNew ?? {},
9608
+ ...planFields(planOptions)
9609
+ };
9610
+ if (exportData) payload.exportData = exportData;
9611
+ if (activateWebhookRules) payload.activateWebhookRules = activateWebhookRules;
9612
+ if (autoMap) payload.autoMap = autoMap;
9613
+ const form = new FormData();
9614
+ form.append(
9615
+ "request",
9616
+ new Blob([JSON.stringify(payload)], { type: "application/json" }),
9617
+ "import.json"
9618
+ );
9619
+ form.append("archive", archive, "workspace-export.zip");
9620
+ return this.fetch(`w/${wid}/import.zip`, {
9621
+ method: "POST",
9622
+ body: form
9623
+ });
9624
+ }
9625
+ /**
9626
+ * Reconnectable EventRules skipped by the latest workspace import, grouped
9627
+ * by the missing phone / inbox / member. Templates and action params are
9628
+ * not returned.
9629
+ */
9630
+ async getImportSkippedRules(wid, status) {
9631
+ const params = new URLSearchParams();
9632
+ if (status !== void 0) {
9633
+ params.set("status", status);
9634
+ }
9635
+ const qs = params.toString();
9636
+ return this.fetch(
9637
+ `w/${wid}/import/skipped-rules${qs ? `?${qs}` : ""}`
9638
+ );
9639
+ }
9640
+ /** Current bounded phone, inbox, and phone-chat binding gaps after an import. */
9641
+ async getImportReadiness(wid) {
9642
+ return this.fetch(`w/${wid}/import/readiness`);
9643
+ }
9644
+ /**
9645
+ * Re-point every outstanding skipped EventRule that needed the same source
9646
+ * resource onto a re-provisioned one, recreating each rule from its
9647
+ * preserved definition. Repeat calls no-op on already-reconnected rows.
9648
+ */
9649
+ async rebuildImportSkippedRules(wid, body) {
9650
+ return this.fetch(
9651
+ `w/${wid}/import/skipped-rules/rebuild`,
9652
+ { method: "POST", body: JSON.stringify(body) }
9653
+ );
9654
+ }
9052
9655
  /** Preview a workspace import using the legacy untyped interface. */
9053
9656
  // Legacy method for backward compatibility
9054
- async previewImportWorkspace(wid, exportData, importMappings = {}, createNew = {}) {
9657
+ async previewImportWorkspace(wid, exportData, importMappings = {}, createNew = {}, autoMap) {
9658
+ const payload = { exportData, importMappings, createNew };
9659
+ if (autoMap) {
9660
+ payload.autoMap = autoMap;
9661
+ }
9055
9662
  return this.fetch(`w/${wid}/preview-import`, {
9056
9663
  method: "POST",
9057
- body: JSON.stringify({
9058
- exportData,
9059
- importMappings,
9060
- createNew
9061
- })
9664
+ body: JSON.stringify(payload)
9062
9665
  });
9063
9666
  }
9064
9667
  /** List available themes for a workspace. */
@@ -9173,36 +9776,35 @@ var DashboardsApi = class extends BaseApiClient {
9173
9776
 
9174
9777
  // src/api/devices.ts
9175
9778
  var DevicesApi = class extends BaseApiClient {
9176
- /** List devices visible to the caller (own devices, or all with devices:admin). */
9177
- async getDevices(wid, options = {}) {
9178
- const qs = options.mine ? "?mine=true" : "";
9179
- return this.fetch(`w/${wid}/devices${qs}`);
9779
+ /** List devices owned by the current Account. */
9780
+ async getDevices() {
9781
+ return this.fetch("account/devices");
9180
9782
  }
9181
- /** Fetch one device by UUID. Non-owners without devices:admin receive 404. */
9182
- async getDevice(wid, deviceUuid) {
9183
- return this.fetch(`w/${wid}/devices/${deviceUuid}`);
9783
+ /** Fetch one device owned by the current Account. Other devices return 404. */
9784
+ async getDevice(deviceUuid) {
9785
+ return this.fetch(`account/devices/${deviceUuid}`);
9184
9786
  }
9185
9787
  /** List shippable companion-device products (Lantern, later SKUs). */
9186
- async getDeviceKinds(wid) {
9187
- return this.fetch(`w/${wid}/devices/kinds`);
9788
+ async getDeviceKinds() {
9789
+ return this.fetch("account/devices/kinds");
9188
9790
  }
9189
- /** Claim a pairing code shown on a companion device. Requires devices:write. */
9190
- async claimDevicePairing(wid, body) {
9191
- return this.fetch(`w/${wid}/devices/pairing/claim`, {
9791
+ /** Claim a pairing code shown on a companion device for the current Account. */
9792
+ async claimDevicePairing(body) {
9793
+ return this.fetch("account/devices/pairing/claim", {
9192
9794
  method: "POST",
9193
9795
  body: JSON.stringify(body)
9194
9796
  });
9195
9797
  }
9196
- /** Update display name and/or LAN capability flags. Requires devices:write. */
9197
- async updateDevice(wid, deviceUuid, body) {
9198
- return this.fetch(`w/${wid}/devices/${deviceUuid}`, {
9798
+ /** Update display name and/or LAN capability flags on an owned device. */
9799
+ async updateDevice(deviceUuid, body) {
9800
+ return this.fetch(`account/devices/${deviceUuid}`, {
9199
9801
  method: "PATCH",
9200
9802
  body: JSON.stringify(body)
9201
9803
  });
9202
9804
  }
9203
- /** Revoke a device credential. The device must pair again. Requires devices:write. */
9204
- async revokeDevice(wid, deviceUuid) {
9205
- return this.fetch(`w/${wid}/devices/${deviceUuid}/revoke`, {
9805
+ /** Revoke an owned device credential. The device must pair again. */
9806
+ async revokeDevice(deviceUuid) {
9807
+ return this.fetch(`account/devices/${deviceUuid}/revoke`, {
9206
9808
  method: "POST",
9207
9809
  body: JSON.stringify({})
9208
9810
  });
@@ -9383,11 +9985,231 @@ var PatientSyncConnectionsApi = class extends BaseApiClient {
9383
9985
  }
9384
9986
  };
9385
9987
 
9386
- // src/api/activity-timeline.ts
9387
- var ActivityTimelineApi = class extends BaseApiClient {
9388
- /** One page of activity. Omit `cursor` for a fresh snapshot. */
9389
- async queryActivityTimeline(wid, request = {}) {
9390
- return this.fetch(`w/${wid}/activity-timeline/query`, {
9988
+ // src/api/activity.ts
9989
+ var ActivityApi = class extends BaseApiClient {
9990
+ /** The account mount: this caller's whole estate, at any grain. */
9991
+ async queryActivity(request) {
9992
+ return this.fetch("activity/query", {
9993
+ method: "POST",
9994
+ body: JSON.stringify(request)
9995
+ });
9996
+ }
9997
+ /**
9998
+ * Latest admitted event for each workspace-qualified Activity subject.
9999
+ * Scope authorization and any event-type leaf authorization are both
10000
+ * applied before a subject is returned.
10001
+ */
10002
+ async queryActivityLatestSubjects(request) {
10003
+ return this.fetch("activity/latest-subjects", {
10004
+ method: "POST",
10005
+ body: JSON.stringify(request)
10006
+ });
10007
+ }
10008
+ /**
10009
+ * The account mount's priority lane — one queue per human. `openedAfter`
10010
+ * may bound the active backlog without changing the priority policy.
10011
+ */
10012
+ async queryActivityOpenItems(request = {}) {
10013
+ return this.fetch("activity/open-items", {
10014
+ method: "POST",
10015
+ body: JSON.stringify(request)
10016
+ });
10017
+ }
10018
+ /**
10019
+ * The account mount's one view: one stream of occurrences, some carrying
10020
+ * open state. The window bounds the event axis; open items older than it
10021
+ * arrive as `olderOpenCount`, never hidden.
10022
+ */
10023
+ async queryActivityOneView(request) {
10024
+ return this.fetch("activity/one-view", {
10025
+ method: "POST",
10026
+ body: JSON.stringify(request)
10027
+ });
10028
+ }
10029
+ /** The account mount's badge numbers. */
10030
+ async getActivityCounts(request = {}) {
10031
+ return this.fetch("activity/counts", {
10032
+ method: "POST",
10033
+ body: JSON.stringify(request)
10034
+ });
10035
+ }
10036
+ /**
10037
+ * What this caller's estate admits, so a client renders honest controls.
10038
+ *
10039
+ * Account mount only, and deliberately so: the org and workspace mounts
10040
+ * answer the same question through the surfaces that already serve their
10041
+ * membership. Not an authorization decision — every read re-derives that.
10042
+ */
10043
+ async getActivityCapabilities() {
10044
+ return this.fetch("activity/capabilities", { method: "GET" });
10045
+ }
10046
+ /** The org mount. `org:info` is the entry gate; `org:read` widens the rows. */
10047
+ async queryOrgActivity(orgUuid, request) {
10048
+ return this.fetch(`o/${orgUuid}/activity/query`, {
10049
+ method: "POST",
10050
+ body: JSON.stringify(request)
10051
+ });
10052
+ }
10053
+ async queryOrgActivityLatestSubjects(orgUuid, request) {
10054
+ return this.fetch(`o/${orgUuid}/activity/latest-subjects`, {
10055
+ method: "POST",
10056
+ body: JSON.stringify(request)
10057
+ });
10058
+ }
10059
+ /** The org mount's priority lane. */
10060
+ async queryOrgActivityOpenItems(orgUuid, request = {}) {
10061
+ return this.fetch(`o/${orgUuid}/activity/open-items`, {
10062
+ method: "POST",
10063
+ body: JSON.stringify(request)
10064
+ });
10065
+ }
10066
+ /** The org mount's one view. */
10067
+ async queryOrgActivityOneView(orgUuid, request) {
10068
+ return this.fetch(`o/${orgUuid}/activity/one-view`, {
10069
+ method: "POST",
10070
+ body: JSON.stringify(request)
10071
+ });
10072
+ }
10073
+ /** The org mount's badge numbers. */
10074
+ async getOrgActivityCounts(orgUuid, request = {}) {
10075
+ return this.fetch(`o/${orgUuid}/activity/counts`, {
10076
+ method: "POST",
10077
+ body: JSON.stringify(request)
10078
+ });
10079
+ }
10080
+ /**
10081
+ * The specifics behind a page of aggregate lines, in one round trip.
10082
+ *
10083
+ * Each entry of `request.lines` is an aggregate line's **own server-issued
10084
+ * drill**, POSTed back verbatim, and the response is positional with it — so
10085
+ * a caller maps groups back to rows without inventing a key and without a
10086
+ * second expression of the slice that could drift from the count above it.
10087
+ *
10088
+ * Aggregate-shaped, never row-level: counts per PHI-silent key. A digest the
10089
+ * server could not finish comes back with `complete: false` and no groups,
10090
+ * which a client renders as the plain count phrase rather than as a slice
10091
+ * presented as the whole.
10092
+ */
10093
+ async queryActivityDigest(request) {
10094
+ return this.fetch("activity/digest", {
10095
+ method: "POST",
10096
+ body: JSON.stringify(request)
10097
+ });
10098
+ }
10099
+ /** The org mount's digest. */
10100
+ async queryOrgActivityDigest(orgUuid, request) {
10101
+ return this.fetch(`o/${orgUuid}/activity/digest`, {
10102
+ method: "POST",
10103
+ body: JSON.stringify(request)
10104
+ });
10105
+ }
10106
+ /** The workspace mount's digest. */
10107
+ async queryWorkspaceActivityDigest(workspaceUuid, request) {
10108
+ return this.fetch(`w/${workspaceUuid}/activity/digest`, {
10109
+ method: "POST",
10110
+ body: JSON.stringify(request)
10111
+ });
10112
+ }
10113
+ /** The workspace mount. The request's own member session carries its scopes. */
10114
+ async queryWorkspaceActivity(workspaceUuid, request) {
10115
+ return this.fetch(`w/${workspaceUuid}/activity/query`, {
10116
+ method: "POST",
10117
+ body: JSON.stringify(request)
10118
+ });
10119
+ }
10120
+ async queryWorkspaceActivityLatestSubjects(workspaceUuid, request) {
10121
+ return this.fetch(`w/${workspaceUuid}/activity/latest-subjects`, {
10122
+ method: "POST",
10123
+ body: JSON.stringify(request)
10124
+ });
10125
+ }
10126
+ /** The workspace mount's priority lane. */
10127
+ async queryWorkspaceActivityOpenItems(workspaceUuid, request = {}) {
10128
+ return this.fetch(`w/${workspaceUuid}/activity/open-items`, {
10129
+ method: "POST",
10130
+ body: JSON.stringify(request)
10131
+ });
10132
+ }
10133
+ /** The workspace mount's one view. */
10134
+ async queryWorkspaceActivityOneView(workspaceUuid, request) {
10135
+ return this.fetch(`w/${workspaceUuid}/activity/one-view`, {
10136
+ method: "POST",
10137
+ body: JSON.stringify(request)
10138
+ });
10139
+ }
10140
+ /** The workspace mount's badge numbers. */
10141
+ async getWorkspaceActivityCounts(workspaceUuid, request = {}) {
10142
+ return this.fetch(`w/${workspaceUuid}/activity/counts`, {
10143
+ method: "POST",
10144
+ body: JSON.stringify(request)
10145
+ });
10146
+ }
10147
+ /**
10148
+ * Hydrate a page of typed refs in one round trip.
10149
+ *
10150
+ * The relief valve the design names for chatty hydration, and the by-UUID
10151
+ * read path most entity kinds otherwise lack: nineteen kinds resolve here,
10152
+ * each through the workspace's own live authorizers under the caller's
10153
+ * session. One request per workspace per listing, instead of one per ref.
10154
+ *
10155
+ * **Every requested ref comes back**, in the order it was sent and
10156
+ * deduplicated on `(kind, uuid)`. A ref the caller may not see is an entry
10157
+ * with `status: 'unresolved'` — never a 404, and never an omission, so a
10158
+ * page's ability to render never depends on what it happens to name.
10159
+ * `status: 'unsupported'` means this build has no by-UUID path for that
10160
+ * kind at all (account, org, workspace, domain, subscription and the
10161
+ * commerce kinds; see the resolve registry for each one's reason) — those
10162
+ * resolve through the mount that owns them, and retrying here will not
10163
+ * help.
10164
+ *
10165
+ * PHI: resolved labels are member-identifying data. They belong in the UI
10166
+ * and nowhere else — never a log line, never an error message.
10167
+ */
10168
+ async resolveEntityRefs(workspaceUuid, request) {
10169
+ return this.fetch(`w/${workspaceUuid}/entity-refs/resolve`, {
10170
+ method: "POST",
10171
+ body: JSON.stringify(request)
10172
+ });
10173
+ }
10174
+ /**
10175
+ * Hydrate a page of typed refs spanning an org's workspaces, in one round
10176
+ * trip. `org:info` is the gate; what it buys differs per workspace, and the
10177
+ * server decides — an `org:read` holder reads every workspace in the org,
10178
+ * an `org:info` holder the ones they belong to.
10179
+ *
10180
+ * The request groups refs by workspace because the same UUID under two
10181
+ * workspaces is two entities. A group naming a workspace this caller cannot
10182
+ * reach comes back entirely `unresolved` — the same answer a denied ref
10183
+ * gets, never an error.
10184
+ *
10185
+ * Caps: at most 500 refs and 25 workspaces across the whole request, and a
10186
+ * workspace may be named at most once in it. Each answered group carries the
10187
+ * same per-entry contract as the workspace mount: every requested ref comes
10188
+ * back, with a marker status rather than an omission.
10189
+ *
10190
+ * PHI: resolved labels are member-identifying data. They belong in the UI
10191
+ * and nowhere else — never a log line, never an error message.
10192
+ */
10193
+ async resolveOrgEntityRefs(orgUuid, request) {
10194
+ return this.fetch(`o/${orgUuid}/activity/entity-refs/resolve`, {
10195
+ method: "POST",
10196
+ body: JSON.stringify(request)
10197
+ });
10198
+ }
10199
+ /**
10200
+ * Hydrate a page of typed refs spanning the caller's whole estate.
10201
+ *
10202
+ * The same grouped body as the org mount, and the same rule that the server
10203
+ * chooses each group's authority: a workspace the caller belongs to resolves
10204
+ * under their own member row, and a workspace they reach by holding
10205
+ * `org:read` on its org resolves under that. A client never states which,
10206
+ * because stating it would mean carrying a copy of the policy.
10207
+ *
10208
+ * PHI: resolved labels are member-identifying data. They belong in the UI
10209
+ * and nowhere else — never a log line, never an error message.
10210
+ */
10211
+ async resolveAccountEntityRefs(request) {
10212
+ return this.fetch(`activity/entity-refs/resolve`, {
9391
10213
  method: "POST",
9392
10214
  body: JSON.stringify(request)
9393
10215
  });
@@ -9415,6 +10237,10 @@ var MotdApi = class extends BaseApiClient {
9415
10237
 
9416
10238
  // src/api/intervention-requests.ts
9417
10239
  var InterventionRequestsApi = class extends BaseApiClient {
10240
+ /** List every visible Chat that currently needs attention in Agent Mode. */
10241
+ async getAgentModeAttention(wid) {
10242
+ return this.fetch(`w/${wid}/agent-mode/attention`);
10243
+ }
9418
10244
  /** List intervention requests in a workspace, newest first. */
9419
10245
  async getInterventionRequests(wid, params = {}) {
9420
10246
  const query = new URLSearchParams();
@@ -9428,6 +10254,23 @@ var InterventionRequestsApi = class extends BaseApiClient {
9428
10254
  `w/${wid}/intervention-requests${qs ? `?${qs}` : ""}`
9429
10255
  );
9430
10256
  }
10257
+ /**
10258
+ * Resolve one intervention request. One row, one resolution — whoever takes
10259
+ * it closes it for everyone who was notified. Resolving an already-resolved
10260
+ * request is a 409 conflict; a non-escalation request is a 409 too.
10261
+ *
10262
+ * The JSON body (empty when no note is supplied) is required as a CSRF
10263
+ * barrier (GRA-6284), so a cross-site form POST cannot reach it.
10264
+ */
10265
+ async resolveInterventionRequest(wid, requestId, params = {}) {
10266
+ return this.fetch(
10267
+ `w/${wid}/intervention-requests/${requestId}/resolve`,
10268
+ {
10269
+ method: "POST",
10270
+ body: JSON.stringify(params)
10271
+ }
10272
+ );
10273
+ }
9431
10274
  };
9432
10275
 
9433
10276
  // src/api/metrics.ts
@@ -9746,7 +10589,7 @@ function createApiModules(apiKey, baseUrl, customFetch) {
9746
10589
  connectionSync: new ConnectionSyncApi(apiKey, baseUrl, customFetch),
9747
10590
  mcpServers: new McpServersApi(apiKey, baseUrl, customFetch),
9748
10591
  members: new MembersApi(apiKey, baseUrl, customFetch),
9749
- activityTimeline: new ActivityTimelineApi(apiKey, baseUrl, customFetch),
10592
+ activity: new ActivityApi(apiKey, baseUrl, customFetch),
9750
10593
  motd: new MotdApi(apiKey, baseUrl, customFetch),
9751
10594
  trackedLinks: new TrackedLinksApi(apiKey, baseUrl, customFetch),
9752
10595
  confluence: new ConfluenceApi(apiKey, baseUrl, customFetch),
@@ -9793,6 +10636,8 @@ var WORKSPACE_METHOD_NAMES = [
9793
10636
  "archiveDataType",
9794
10637
  "archiveJourney",
9795
10638
  "archiveMember",
10639
+ "archiveMemberRelationship",
10640
+ "archivePersona",
9796
10641
  "archivePhoneNumber",
9797
10642
  "archiveStep",
9798
10643
  "archiveTask",
@@ -9845,6 +10690,8 @@ var WORKSPACE_METHOD_NAMES = [
9845
10690
  "createCalendarEventType",
9846
10691
  "createCalendarSchedule",
9847
10692
  "createChat",
10693
+ "createChatInteractionSession",
10694
+ "transitionChatInteractionSession",
9848
10695
  "createChatCompletion",
9849
10696
  "createChatFilter",
9850
10697
  "createChatLabel",
@@ -9874,6 +10721,7 @@ var WORKSPACE_METHOD_NAMES = [
9874
10721
  "createMemberFilter",
9875
10722
  "createMemberLabel",
9876
10723
  "createMemberMemory",
10724
+ "createMemberRelationship",
9877
10725
  "createMemberRole",
9878
10726
  "createMenuItem",
9879
10727
  "createNotificationRule",
@@ -9976,7 +10824,6 @@ var WORKSPACE_METHOD_NAMES = [
9976
10824
  "disconnectConfluence",
9977
10825
  "disconnectHubspot",
9978
10826
  "disconnectMondayConnection",
9979
- "disconnectPresence",
9980
10827
  "disconnectSalesforce",
9981
10828
  "discordLinkPreflight",
9982
10829
  "discoverOAuthMetadata",
@@ -10039,6 +10886,7 @@ var WORKSPACE_METHOD_NAMES = [
10039
10886
  "getAccessGrant",
10040
10887
  "getAccessGrants",
10041
10888
  "getAgent",
10889
+ "getAgentModeAttention",
10042
10890
  "getAgentTask",
10043
10891
  "getAgentTaskMessages",
10044
10892
  "getAgentTasks",
@@ -10070,7 +10918,9 @@ var WORKSPACE_METHOD_NAMES = [
10070
10918
  "getCharlestonTestDeliveryRecipients",
10071
10919
  "getChat",
10072
10920
  "getChatAssignmentTasks",
10921
+ "getChatBrowserLiveView",
10073
10922
  "getChatCallbacks",
10923
+ "getChatEhrWritebackOutcomes",
10074
10924
  "getChatEmails",
10075
10925
  "getChatFilter",
10076
10926
  "getChatFilterByUuid",
@@ -10079,6 +10929,7 @@ var WORKSPACE_METHOD_NAMES = [
10079
10929
  "getChatLabel",
10080
10930
  "getChatLabelByUuid",
10081
10931
  "getChatLabels",
10932
+ "getChatMachineResources",
10082
10933
  "getChatMessages",
10083
10934
  "getChatModelOverride",
10084
10935
  "getChatPhoneCalls",
@@ -10119,6 +10970,8 @@ var WORKSPACE_METHOD_NAMES = [
10119
10970
  "getDataRecordFilters",
10120
10971
  "getDataRecords",
10121
10972
  "getDataType",
10973
+ "getDataTypeDraft",
10974
+ "getDataTypeVersions",
10122
10975
  "getDataTypeByUuid",
10123
10976
  "getDataTypeBySlug",
10124
10977
  "getDataTypes",
@@ -10162,9 +11015,16 @@ var WORKSPACE_METHOD_NAMES = [
10162
11015
  "listChatRecordings",
10163
11016
  "previewQuery",
10164
11017
  "publishSiteSource",
10165
- "queryActivityTimeline",
11018
+ "publishDataTypeDraft",
11019
+ "saveDataTypeDraft",
11020
+ "queryWorkspaceActivity",
11021
+ "queryWorkspaceActivityLatestSubjects",
11022
+ "queryWorkspaceActivityOpenItems",
11023
+ "queryWorkspaceActivityOneView",
11024
+ "queryWorkspaceActivityDigest",
10166
11025
  "registerDiscordSlashCommands",
10167
11026
  "reopenWorkspaceSupportRequest",
11027
+ "resolveEntityRefs",
10168
11028
  "resetSiteSource",
10169
11029
  "resolveFilePath",
10170
11030
  "getFileLabel",
@@ -10192,16 +11052,22 @@ var WORKSPACE_METHOD_NAMES = [
10192
11052
  "getHubspotSyncLogs",
10193
11053
  "getHubspotTransformPresets",
10194
11054
  "getICalFeedUrl",
11055
+ "getImportSkippedRules",
11056
+ "getImportReadiness",
11057
+ "rebuildImportSkippedRules",
10195
11058
  "getInbox",
10196
11059
  "getInboxEmail",
10197
11060
  "getInboxEmails",
10198
11061
  "getInboxThreads",
10199
11062
  "getInboxes",
11063
+ "getInterventionRequests",
10200
11064
  "getJourney",
10201
11065
  "getJourneyAuthoring",
11066
+ "getJourneyFilterOptions",
10202
11067
  "getJourneyHealth",
10203
11068
  "getJourneyMembers",
10204
11069
  "getJourneyNotes",
11070
+ "getJourneyV2Validation",
10205
11071
  "getJourneys",
10206
11072
  "getLinkablePhones",
10207
11073
  "getLinkedHealthieMembers",
@@ -10229,6 +11095,7 @@ var WORKSPACE_METHOD_NAMES = [
10229
11095
  "getMemberMemories",
10230
11096
  "getMemberMemory",
10231
11097
  "getMemberRecordCounts",
11098
+ "getMemberRelationships",
10232
11099
  "getMemberRole",
10233
11100
  "getMemberRoleCleanupPlan",
10234
11101
  "getMemberRoleByUuid",
@@ -10277,8 +11144,6 @@ var WORKSPACE_METHOD_NAMES = [
10277
11144
  "getPublicFolder",
10278
11145
  "getPublicFolderFiles",
10279
11146
  "getPublicProducts",
10280
- "previewPromoCode",
10281
- "startPromoPlanTrial",
10282
11147
  "getQualification",
10283
11148
  "getQualifications",
10284
11149
  "getRecordingInfo",
@@ -10333,10 +11198,10 @@ var WORKSPACE_METHOD_NAMES = [
10333
11198
  "getUnreadNotificationCount",
10334
11199
  "getUsageDashboard",
10335
11200
  "getVariableRegistry",
10336
- "getVoiceToken",
10337
11201
  "getVoiceUsageReport",
10338
11202
  "getWebhookLogs",
10339
11203
  "getWorkflow",
11204
+ "getWorkflowOpeningTurnConversionReport",
10340
11205
  "getWorkflowAccessValidation",
10341
11206
  "getWorkflowActivity",
10342
11207
  "getWorkflowConfigValidation",
@@ -10353,6 +11218,7 @@ var WORKSPACE_METHOD_NAMES = [
10353
11218
  "getWorkflows",
10354
11219
  "getWorkflowsActivityBatch",
10355
11220
  "getWorkspace",
11221
+ "getWorkspaceActivityCounts",
10356
11222
  "getWorkspaceBuilder",
10357
11223
  "getWorkspaceBuilders",
10358
11224
  "getWorkspaceCounts",
@@ -10372,7 +11238,7 @@ var WORKSPACE_METHOD_NAMES = [
10372
11238
  "importMembers",
10373
11239
  "importSalesforceMembers",
10374
11240
  "importWorkspace",
10375
- "initiateCall",
11241
+ "importWorkspaceZip",
10376
11242
  "initiateOutboundCall",
10377
11243
  "inspectPrompt",
10378
11244
  "installHubspot",
@@ -10429,14 +11295,17 @@ var WORKSPACE_METHOD_NAMES = [
10429
11295
  "previewMemberWorkflowVoice",
10430
11296
  "previewRenameFieldSlug",
10431
11297
  "previewImportWorkspace",
11298
+ "previewRoutineVoiceReadiness",
10432
11299
  "previewRoutineWorkflowAccess",
10433
11300
  "previewSchedule",
10434
11301
  "previewTTS",
10435
11302
  "previewTemplate",
10436
11303
  "previewThinkingSound",
10437
11304
  "previewWorkspaceImport",
11305
+ "previewWorkspaceImportZip",
10438
11306
  "provisionClientWorkspace",
10439
11307
  "publishWorkflowRevision",
11308
+ "putJourneyV2Definition",
10440
11309
  "rateMessage",
10441
11310
  "getChatFeedback",
10442
11311
  "reenrollMember",
@@ -10457,6 +11326,7 @@ var WORKSPACE_METHOD_NAMES = [
10457
11326
  "resetRoutineRuns",
10458
11327
  "resolveAccessGrant",
10459
11328
  "resolveAnonymousMember",
11329
+ "resolveInterventionRequest",
10460
11330
  "restoreFileVersion",
10461
11331
  "revokeAccessGrant",
10462
11332
  "revokeApiKey",
@@ -10497,6 +11367,7 @@ var WORKSPACE_METHOD_NAMES = [
10497
11367
  "unarchiveChat",
10498
11368
  "unarchiveDataType",
10499
11369
  "unarchiveMember",
11370
+ "unarchivePersona",
10500
11371
  "unarchiveStep",
10501
11372
  "unarchiveTask",
10502
11373
  "unarchiveWorkflow",
@@ -10521,7 +11392,6 @@ var WORKSPACE_METHOD_NAMES = [
10521
11392
  "updateChatLabel",
10522
11393
  "updateChatModelOverride",
10523
11394
  "updateChatMute",
10524
- "updateChatNeedsResponse",
10525
11395
  "updateClientWorkspace",
10526
11396
  "updateConnection",
10527
11397
  "updateConnectionSyncConfig",
@@ -10585,6 +11455,7 @@ var WORKSPACE_METHOD_NAMES = [
10585
11455
  "uploadFile",
10586
11456
  "updateVoicemailStatus",
10587
11457
  "updateWorkflow",
11458
+ "convertWorkflowStartTaskOpeningMessage",
10588
11459
  "updateWorkflowContributor",
10589
11460
  "updateWorkflowNote",
10590
11461
  "updateWorkflowRevisionMetadata",
@@ -10631,6 +11502,13 @@ function bindAccessGrantsMethods(target, accessGrants) {
10631
11502
  target.getGranteeGrants = accessGrants.getGranteeGrants.bind(accessGrants);
10632
11503
  }
10633
11504
 
11505
+ // src/client/bindings/intervention-requests.ts
11506
+ function bindInterventionRequestsMethods(target, interventionRequests) {
11507
+ target.getAgentModeAttention = interventionRequests.getAgentModeAttention.bind(interventionRequests);
11508
+ target.getInterventionRequests = interventionRequests.getInterventionRequests.bind(interventionRequests);
11509
+ target.resolveInterventionRequest = interventionRequests.resolveInterventionRequest.bind(interventionRequests);
11510
+ }
11511
+
10634
11512
  // src/client/bindings/agent-tasks.ts
10635
11513
  function bindAgentTasksMethods(target, api) {
10636
11514
  target.getAgentTasks = api.getAgentTasks.bind(api);
@@ -10671,10 +11549,15 @@ function bindTasksMethods(target, tasks, abilities) {
10671
11549
 
10672
11550
  // src/client/bindings/chats.ts
10673
11551
  function bindChatsMethods(target, chats) {
11552
+ target.createChatInteractionSession = chats.createChatInteractionSession.bind(chats);
11553
+ target.transitionChatInteractionSession = chats.transitionChatInteractionSession.bind(chats);
10674
11554
  target.getChats = chats.getChats.bind(chats);
10675
11555
  target.getChat = chats.getChat.bind(chats);
11556
+ target.getChatBrowserLiveView = chats.getChatBrowserLiveView.bind(chats);
11557
+ target.getChatMachineResources = chats.getChatMachineResources.bind(chats);
10676
11558
  target.getCurrentSmsChat = chats.getCurrentSmsChat.bind(chats);
10677
11559
  target.getChatCallbacks = chats.getChatCallbacks.bind(chats);
11560
+ target.getChatEhrWritebackOutcomes = chats.getChatEhrWritebackOutcomes.bind(chats);
10678
11561
  target.cancelChatCallback = chats.cancelChatCallback.bind(chats);
10679
11562
  target.getChatTokenUsage = chats.getChatTokenUsage.bind(chats);
10680
11563
  target.getChatTodos = chats.getChatTodos.bind(chats);
@@ -10692,7 +11575,6 @@ function bindChatsMethods(target, chats) {
10692
11575
  target.getChatModelOverride = chats.getChatModelOverride.bind(chats);
10693
11576
  target.updateChatModelOverride = chats.updateChatModelOverride.bind(chats);
10694
11577
  target.updateChatMute = chats.updateChatMute.bind(chats);
10695
- target.updateChatNeedsResponse = chats.updateChatNeedsResponse.bind(chats);
10696
11578
  target.summarizeChat = chats.summarizeChat.bind(chats);
10697
11579
  target.getChatMessages = chats.getChatMessages.bind(chats);
10698
11580
  target.getChildThreadMessages = chats.getChildThreadMessages.bind(chats);
@@ -10727,8 +11609,6 @@ function bindChatsMethods(target, chats) {
10727
11609
  // src/client/bindings/calls.ts
10728
11610
  function bindCallsMethods(target, calls, cel) {
10729
11611
  target.getPhoneCalls = calls.getPhoneCalls.bind(calls);
10730
- target.initiateCall = calls.initiateCall.bind(calls);
10731
- target.getVoiceToken = calls.getVoiceToken.bind(calls);
10732
11612
  target.getMessageTiming = calls.getMessageTiming.bind(calls);
10733
11613
  target.getRecordingInfo = calls.getRecordingInfo.bind(calls);
10734
11614
  target.listChatRecordings = calls.listChatRecordings.bind(calls);
@@ -10749,9 +11629,30 @@ function bindDashboardsMethods(target, dashboards) {
10749
11629
  target.getConfigurationHealth = dashboards.getConfigurationHealth.bind(dashboards);
10750
11630
  }
10751
11631
 
10752
- // src/client/bindings/activity-timeline.ts
10753
- function bindActivityTimelineMethods(target, activityTimeline) {
10754
- target.queryActivityTimeline = activityTimeline.queryActivityTimeline.bind(activityTimeline);
11632
+ // src/client/bindings/activity.ts
11633
+ function bindActivityMethods(target, activity) {
11634
+ target.queryActivity = activity.queryActivity.bind(activity);
11635
+ target.queryActivityLatestSubjects = activity.queryActivityLatestSubjects.bind(activity);
11636
+ target.queryActivityOpenItems = activity.queryActivityOpenItems.bind(activity);
11637
+ target.queryActivityOneView = activity.queryActivityOneView.bind(activity);
11638
+ target.queryActivityDigest = activity.queryActivityDigest.bind(activity);
11639
+ target.getActivityCounts = activity.getActivityCounts.bind(activity);
11640
+ target.getActivityCapabilities = activity.getActivityCapabilities.bind(activity);
11641
+ target.queryOrgActivity = activity.queryOrgActivity.bind(activity);
11642
+ target.queryOrgActivityLatestSubjects = activity.queryOrgActivityLatestSubjects.bind(activity);
11643
+ target.queryOrgActivityOpenItems = activity.queryOrgActivityOpenItems.bind(activity);
11644
+ target.queryOrgActivityOneView = activity.queryOrgActivityOneView.bind(activity);
11645
+ target.queryOrgActivityDigest = activity.queryOrgActivityDigest.bind(activity);
11646
+ target.getOrgActivityCounts = activity.getOrgActivityCounts.bind(activity);
11647
+ target.queryWorkspaceActivity = activity.queryWorkspaceActivity.bind(activity);
11648
+ target.queryWorkspaceActivityLatestSubjects = activity.queryWorkspaceActivityLatestSubjects.bind(activity);
11649
+ target.queryWorkspaceActivityOpenItems = activity.queryWorkspaceActivityOpenItems.bind(activity);
11650
+ target.queryWorkspaceActivityOneView = activity.queryWorkspaceActivityOneView.bind(activity);
11651
+ target.queryWorkspaceActivityDigest = activity.queryWorkspaceActivityDigest.bind(activity);
11652
+ target.getWorkspaceActivityCounts = activity.getWorkspaceActivityCounts.bind(activity);
11653
+ target.resolveEntityRefs = activity.resolveEntityRefs.bind(activity);
11654
+ target.resolveOrgEntityRefs = activity.resolveOrgEntityRefs.bind(activity);
11655
+ target.resolveAccountEntityRefs = activity.resolveAccountEntityRefs.bind(activity);
10755
11656
  }
10756
11657
 
10757
11658
  // src/client/bindings/motd.ts
@@ -10773,6 +11674,10 @@ function bindTrackedLinksMethods(target, trackedLinks) {
10773
11674
 
10774
11675
  // src/client/bindings/data-types.ts
10775
11676
  function bindDataTypesMethods(target, dataTypes) {
11677
+ target.getDataTypeDraft = dataTypes.getDataTypeDraft.bind(dataTypes);
11678
+ target.saveDataTypeDraft = dataTypes.saveDataTypeDraft.bind(dataTypes);
11679
+ target.publishDataTypeDraft = dataTypes.publishDataTypeDraft.bind(dataTypes);
11680
+ target.getDataTypeVersions = dataTypes.getDataTypeVersions.bind(dataTypes);
10776
11681
  target.getDataTypes = dataTypes.getDataTypes.bind(dataTypes);
10777
11682
  target.getDataType = dataTypes.getDataType.bind(dataTypes);
10778
11683
  target.getDataTypeByUuid = dataTypes.getDataTypeByUuid.bind(dataTypes);
@@ -10829,6 +11734,7 @@ function bindMembersMethods(target, members) {
10829
11734
  target.updateCurrentMember = members.updateCurrentMember.bind(members);
10830
11735
  target.getWorkspaceMembers = members.getWorkspaceMembers.bind(members);
10831
11736
  target.getWorkspaceMember = members.getWorkspaceMember.bind(members);
11737
+ target.getOrgWorkspaceMember = members.getOrgWorkspaceMember.bind(members);
10832
11738
  target.createWorkspaceMember = members.createWorkspaceMember.bind(members);
10833
11739
  target.updateMember = members.updateMember.bind(members);
10834
11740
  target.deleteMember = members.deleteMember.bind(members);
@@ -10858,6 +11764,8 @@ function bindMembersMethods(target, members) {
10858
11764
  target.createMemberRole = members.createMemberRole.bind(members);
10859
11765
  target.updateMemberRole = members.updateMemberRole.bind(members);
10860
11766
  target.deleteMemberRole = members.deleteMemberRole.bind(members);
11767
+ target.getMemberRoleCleanupPlan = members.getMemberRoleCleanupPlan.bind(members);
11768
+ target.mergeMemberRoles = members.mergeMemberRoles.bind(members);
10861
11769
  target.getMemberFields = members.getMemberFields.bind(members);
10862
11770
  target.getMemberFieldDefinitions = members.getMemberFieldDefinitions.bind(members);
10863
11771
  target.createMemberField = members.createMemberField.bind(members);
@@ -10875,11 +11783,15 @@ function bindMembersMethods(target, members) {
10875
11783
  target.createMemberMemory = members.createMemberMemory.bind(members);
10876
11784
  target.deleteMemberMemory = members.deleteMemberMemory.bind(members);
10877
11785
  target.getMemberSyncLinks = members.getMemberSyncLinks.bind(members);
11786
+ target.getMemberRelationships = members.getMemberRelationships.bind(members);
11787
+ target.createMemberRelationship = members.createMemberRelationship.bind(members);
11788
+ target.archiveMemberRelationship = members.archiveMemberRelationship.bind(members);
10878
11789
  }
10879
11790
 
10880
11791
  // src/client/bindings/workspaces.ts
10881
11792
  function bindWorkspacesMethods(target, workspaces, signupRequests) {
10882
11793
  target.getWorkspaces = workspaces.getWorkspaces.bind(workspaces);
11794
+ target.getDeviceAdmissibleWorkspaces = workspaces.getDeviceAdmissibleWorkspaces.bind(workspaces);
10883
11795
  target.getPublicWorkspaces = workspaces.getPublicWorkspaces.bind(workspaces);
10884
11796
  target.getWorkspace = workspaces.getWorkspace.bind(workspaces);
10885
11797
  target.createWorkspace = workspaces.createWorkspace.bind(workspaces);
@@ -10910,6 +11822,8 @@ function bindWorkspacesMethods(target, workspaces, signupRequests) {
10910
11822
  target.getProduct = workspaces.getProduct.bind(workspaces);
10911
11823
  target.getWorkspaceProduct = workspaces.getWorkspaceProduct.bind(workspaces);
10912
11824
  target.getPublicProducts = workspaces.getPublicProducts.bind(workspaces);
11825
+ target.previewPromoCode = workspaces.previewPromoCode.bind(workspaces);
11826
+ target.startPromoPlanTrial = workspaces.startPromoPlanTrial.bind(workspaces);
10913
11827
  target.getPublicProduct = workspaces.getPublicProduct.bind(workspaces);
10914
11828
  target.createProduct = workspaces.createProduct.bind(workspaces);
10915
11829
  target.updateProduct = workspaces.updateProduct.bind(workspaces);
@@ -10917,7 +11831,12 @@ function bindWorkspacesMethods(target, workspaces, signupRequests) {
10917
11831
  target.exportWorkspace = workspaces.exportWorkspace.bind(workspaces);
10918
11832
  target.exportWorkspaceZip = workspaces.exportWorkspaceZip.bind(workspaces);
10919
11833
  target.previewWorkspaceImport = workspaces.previewWorkspaceImport.bind(workspaces);
11834
+ target.previewWorkspaceImportZip = workspaces.previewWorkspaceImportZip.bind(workspaces);
10920
11835
  target.importWorkspace = workspaces.importWorkspace.bind(workspaces);
11836
+ target.importWorkspaceZip = workspaces.importWorkspaceZip.bind(workspaces);
11837
+ target.getImportSkippedRules = workspaces.getImportSkippedRules.bind(workspaces);
11838
+ target.getImportReadiness = workspaces.getImportReadiness.bind(workspaces);
11839
+ target.rebuildImportSkippedRules = workspaces.rebuildImportSkippedRules.bind(workspaces);
10921
11840
  target.previewImportWorkspace = workspaces.previewImportWorkspace.bind(workspaces);
10922
11841
  target.getWorkspaceThemes = workspaces.getWorkspaceThemes.bind(workspaces);
10923
11842
  target.updateWorkspaceThemes = workspaces.updateWorkspaceThemes.bind(workspaces);
@@ -11125,9 +12044,11 @@ function bindEventsMethods(target, events) {
11125
12044
  target.updateRoutine = events.updateRoutine.bind(events);
11126
12045
  target.deleteRoutine = events.deleteRoutine.bind(events);
11127
12046
  target.runRoutine = events.runRoutine.bind(events);
12047
+ target.getRoutineConfigEvents = events.getRoutineConfigEvents.bind(events);
11128
12048
  target.getRoutineRuns = events.getRoutineRuns.bind(events);
11129
12049
  target.resetRoutineRuns = events.resetRoutineRuns.bind(events);
11130
12050
  target.previewSchedule = events.previewSchedule.bind(events);
12051
+ target.previewRoutineVoiceReadiness = events.previewRoutineVoiceReadiness.bind(events);
11131
12052
  target.previewRoutineWorkflowAccess = events.previewRoutineWorkflowAccess.bind(events);
11132
12053
  }
11133
12054
 
@@ -11152,6 +12073,8 @@ function bindExperimentsMethods(target, experiments) {
11152
12073
  function bindWorkflowsMethods(target, workflows, workflowNotes, voice, supervisors) {
11153
12074
  target.getWorkflows = workflows.getWorkflows.bind(workflows);
11154
12075
  target.getWorkflow = workflows.getWorkflow.bind(workflows);
12076
+ target.getWorkflowOpeningTurnConversionReport = workflows.getWorkflowOpeningTurnConversionReport.bind(workflows);
12077
+ target.convertWorkflowStartTaskOpeningMessage = workflows.convertWorkflowStartTaskOpeningMessage.bind(workflows);
11155
12078
  target.getWorkflowActivity = workflows.getWorkflowActivity.bind(workflows);
11156
12079
  target.getWorkflowsActivityBatch = workflows.getWorkflowsActivityBatch.bind(workflows);
11157
12080
  target.getWorkflowDiagram = workflows.getWorkflowDiagram.bind(workflows);
@@ -11572,7 +12495,6 @@ function bindOperatorMethods(target, operatorGroups) {
11572
12495
  target.removeGroupMember = operatorGroups.removeGroupMember.bind(operatorGroups);
11573
12496
  target.getLiveOperators = operatorGroups.getLiveOperators.bind(operatorGroups);
11574
12497
  target.getPresenceStatus = operatorGroups.getPresenceStatus.bind(operatorGroups);
11575
- target.disconnectPresence = operatorGroups.disconnectPresence.bind(operatorGroups);
11576
12498
  target.getOperatorChatMessages = operatorGroups.getOperatorChatMessages.bind(operatorGroups);
11577
12499
  target.sendOperatorMessage = operatorGroups.sendOperatorMessage.bind(operatorGroups);
11578
12500
  }
@@ -11600,6 +12522,8 @@ function bindOrgMethods(target, org) {
11600
12522
  target.listLegalEntities = org.listLegalEntities.bind(org);
11601
12523
  target.getLegalEntity = org.getLegalEntity.bind(org);
11602
12524
  target.createLegalEntity = org.createLegalEntity.bind(org);
12525
+ target.getRegistrationDraft = org.getRegistrationDraft.bind(org);
12526
+ target.saveRegistrationDraft = org.saveRegistrationDraft.bind(org);
11603
12527
  target.getVoiceTrustProducts = org.getVoiceTrustProducts.bind(org);
11604
12528
  target.syncVoiceTrustProducts = org.syncVoiceTrustProducts.bind(org);
11605
12529
  target.createOrganizationWorkspace = org.createOrganizationWorkspace.bind(org);
@@ -11631,6 +12555,9 @@ function bindJourneysMethods(target, journeys) {
11631
12555
  target.getJourneys = journeys.getJourneys.bind(journeys);
11632
12556
  target.getJourney = journeys.getJourney.bind(journeys);
11633
12557
  target.getJourneyAuthoring = journeys.getJourneyAuthoring.bind(journeys);
12558
+ target.putJourneyV2Definition = journeys.putJourneyV2Definition.bind(journeys);
12559
+ target.getJourneyV2Validation = journeys.getJourneyV2Validation.bind(journeys);
12560
+ target.getJourneyFilterOptions = journeys.getJourneyFilterOptions.bind(journeys);
11634
12561
  target.getJourneyHealth = journeys.getJourneyHealth.bind(journeys);
11635
12562
  target.createJourney = journeys.createJourney.bind(journeys);
11636
12563
  target.updateJourney = journeys.updateJourney.bind(journeys);
@@ -11686,6 +12613,8 @@ function bindPersonasMethods(target, personas) {
11686
12613
  target.getPersona = personas.getPersona.bind(personas);
11687
12614
  target.createPersona = personas.createPersona.bind(personas);
11688
12615
  target.updatePersona = personas.updatePersona.bind(personas);
12616
+ target.archivePersona = personas.archivePersona.bind(personas);
12617
+ target.unarchivePersona = personas.unarchivePersona.bind(personas);
11689
12618
  target.deletePersona = personas.deletePersona.bind(personas);
11690
12619
  }
11691
12620
 
@@ -11785,8 +12714,11 @@ var GravityRailClient = class {
11785
12714
  // Chats API
11786
12715
  getChats;
11787
12716
  getChat;
12717
+ getChatBrowserLiveView;
12718
+ getChatMachineResources;
11788
12719
  getCurrentSmsChat;
11789
12720
  getChatCallbacks;
12721
+ getChatEhrWritebackOutcomes;
11790
12722
  cancelChatCallback;
11791
12723
  getChatTokenUsage;
11792
12724
  getChatTodos;
@@ -11798,13 +12730,14 @@ var GravityRailClient = class {
11798
12730
  archiveChat;
11799
12731
  unarchiveChat;
11800
12732
  createChat;
12733
+ createChatInteractionSession;
12734
+ transitionChatInteractionSession;
11801
12735
  createWorkflowOutboundVoiceChat;
11802
12736
  deleteChat;
11803
12737
  updateChat;
11804
12738
  getChatModelOverride;
11805
12739
  updateChatModelOverride;
11806
12740
  updateChatMute;
11807
- updateChatNeedsResponse;
11808
12741
  summarizeChat;
11809
12742
  getChatMessages;
11810
12743
  getChildThreadMessages;
@@ -11836,8 +12769,6 @@ var GravityRailClient = class {
11836
12769
  getChatFilterCount;
11837
12770
  // Calls API
11838
12771
  getPhoneCalls;
11839
- initiateCall;
11840
- getVoiceToken;
11841
12772
  getMessageTiming;
11842
12773
  getRecordingInfo;
11843
12774
  listChatRecordings;
@@ -11846,6 +12777,10 @@ var GravityRailClient = class {
11846
12777
  validateCelExpression;
11847
12778
  // Data Types API
11848
12779
  getDataTypes;
12780
+ getDataTypeDraft;
12781
+ saveDataTypeDraft;
12782
+ publishDataTypeDraft;
12783
+ getDataTypeVersions;
11849
12784
  getDataType;
11850
12785
  getDataTypeByUuid;
11851
12786
  getDataTypeBySlug;
@@ -11888,6 +12823,9 @@ var GravityRailClient = class {
11888
12823
  updateCurrentMember;
11889
12824
  getWorkspaceMembers;
11890
12825
  getWorkspaceMember;
12826
+ // Org-scoped, so deliberately absent from WORKSPACE_METHOD_NAMES: that proxy
12827
+ // passes a workspace uuid as the first argument.
12828
+ getOrgWorkspaceMember;
11891
12829
  createWorkspaceMember;
11892
12830
  updateMember;
11893
12831
  deleteMember;
@@ -11941,6 +12879,10 @@ var GravityRailClient = class {
11941
12879
  deleteMemberMemory;
11942
12880
  // Member Sync Links
11943
12881
  getMemberSyncLinks;
12882
+ // Member Relationships
12883
+ getMemberRelationships;
12884
+ createMemberRelationship;
12885
+ archiveMemberRelationship;
11944
12886
  // Agent Tasks API (operator-facing async sub-agent inspection/cancel)
11945
12887
  getAgentTasks;
11946
12888
  getAgentTask;
@@ -11978,6 +12920,8 @@ var GravityRailClient = class {
11978
12920
  getPersona;
11979
12921
  createPersona;
11980
12922
  updatePersona;
12923
+ archivePersona;
12924
+ unarchivePersona;
11981
12925
  deletePersona;
11982
12926
  // Metrics API (customer-defined outcome metrics)
11983
12927
  listMetrics;
@@ -11997,8 +12941,32 @@ var GravityRailClient = class {
11997
12941
  getDashboardChannelStats;
11998
12942
  getDashboardWorkflowAssignmentStats;
11999
12943
  getConfigurationHealth;
12000
- // Activity Timeline API
12001
- queryActivityTimeline;
12944
+ // Activity Spine serving API — one query shape, three mounts
12945
+ // (docs/projects/active/activity-spine.md).
12946
+ queryActivity;
12947
+ queryActivityLatestSubjects;
12948
+ queryActivityOpenItems;
12949
+ queryActivityOneView;
12950
+ queryActivityDigest;
12951
+ getActivityCounts;
12952
+ getActivityCapabilities;
12953
+ queryOrgActivity;
12954
+ queryOrgActivityLatestSubjects;
12955
+ queryOrgActivityOpenItems;
12956
+ queryOrgActivityOneView;
12957
+ queryOrgActivityDigest;
12958
+ getOrgActivityCounts;
12959
+ queryWorkspaceActivity;
12960
+ queryWorkspaceActivityLatestSubjects;
12961
+ queryWorkspaceActivityOpenItems;
12962
+ queryWorkspaceActivityOneView;
12963
+ queryWorkspaceActivityDigest;
12964
+ getWorkspaceActivityCounts;
12965
+ // Hydration: typed refs in, display summaries out, one round trip. The org
12966
+ // variant carries several workspaces' groups in that one trip.
12967
+ resolveEntityRefs;
12968
+ resolveOrgEntityRefs;
12969
+ resolveAccountEntityRefs;
12002
12970
  // MOTD API
12003
12971
  getMotd;
12004
12972
  // Tracked Links analytics (#10934)
@@ -12014,6 +12982,9 @@ var GravityRailClient = class {
12014
12982
  getJourneys;
12015
12983
  getJourney;
12016
12984
  getJourneyAuthoring;
12985
+ putJourneyV2Definition;
12986
+ getJourneyV2Validation;
12987
+ getJourneyFilterOptions;
12017
12988
  getJourneyHealth;
12018
12989
  createJourney;
12019
12990
  updateJourney;
@@ -12068,7 +13039,6 @@ var GravityRailClient = class {
12068
13039
  removeGroupMember;
12069
13040
  getLiveOperators;
12070
13041
  getPresenceStatus;
12071
- disconnectPresence;
12072
13042
  getOperatorChatMessages;
12073
13043
  sendOperatorMessage;
12074
13044
  // Access Grants API
@@ -12081,10 +13051,15 @@ var GravityRailClient = class {
12081
13051
  getAccessGrants;
12082
13052
  getMemberGrants;
12083
13053
  getGranteeGrants;
13054
+ // Intervention Requests API
13055
+ getAgentModeAttention;
13056
+ getInterventionRequests;
13057
+ resolveInterventionRequest;
12084
13058
  // Prompts API
12085
13059
  inspectPrompt;
12086
13060
  // Workspaces API
12087
13061
  getWorkspaces;
13062
+ getDeviceAdmissibleWorkspaces;
12088
13063
  getPublicWorkspaces;
12089
13064
  getWorkspace;
12090
13065
  createWorkspace;
@@ -12124,7 +13099,12 @@ var GravityRailClient = class {
12124
13099
  exportWorkspace;
12125
13100
  exportWorkspaceZip;
12126
13101
  previewWorkspaceImport;
13102
+ previewWorkspaceImportZip;
12127
13103
  importWorkspace;
13104
+ importWorkspaceZip;
13105
+ getImportSkippedRules;
13106
+ getImportReadiness;
13107
+ rebuildImportSkippedRules;
12128
13108
  previewImportWorkspace;
12129
13109
  getWorkspaceThemes;
12130
13110
  updateWorkspaceThemes;
@@ -12159,6 +13139,8 @@ var GravityRailClient = class {
12159
13139
  listLegalEntities;
12160
13140
  getLegalEntity;
12161
13141
  createLegalEntity;
13142
+ getRegistrationDraft;
13143
+ saveRegistrationDraft;
12162
13144
  getVoiceTrustProducts;
12163
13145
  syncVoiceTrustProducts;
12164
13146
  createOrganizationWorkspace;
@@ -12350,10 +13332,13 @@ var GravityRailClient = class {
12350
13332
  getRoutineRuns;
12351
13333
  resetRoutineRuns;
12352
13334
  previewSchedule;
13335
+ previewRoutineVoiceReadiness;
12353
13336
  previewRoutineWorkflowAccess;
12354
13337
  // Workflows API
12355
13338
  getWorkflows;
12356
13339
  getWorkflow;
13340
+ getWorkflowOpeningTurnConversionReport;
13341
+ convertWorkflowStartTaskOpeningMessage;
12357
13342
  getWorkflowActivity;
12358
13343
  getWorkflowsActivityBatch;
12359
13344
  getWorkflowDiagram;
@@ -12829,7 +13814,7 @@ var GravityRailClient = class {
12829
13814
  bindMetricsMethods(this, apis.metrics);
12830
13815
  bindQueriesMethods(this, apis.queries);
12831
13816
  bindDashboardsMethods(this, apis.dashboards);
12832
- bindActivityTimelineMethods(this, apis.activityTimeline);
13817
+ bindActivityMethods(this, apis.activity);
12833
13818
  bindMotdMethods(this, apis.motd);
12834
13819
  bindTrackedLinksMethods(this, apis.trackedLinks);
12835
13820
  bindJourneysMethods(this, apis.journeys);
@@ -12837,6 +13822,7 @@ var GravityRailClient = class {
12837
13822
  bindOperatorMethods(this, apis.operatorGroups);
12838
13823
  bindOrgMethods(this, apis.org);
12839
13824
  bindAccessGrantsMethods(this, apis.accessGrants);
13825
+ bindInterventionRequestsMethods(this, apis.interventionRequests);
12840
13826
  bindPromptsMethods(this, apis.prompts);
12841
13827
  bindWorkspacesMethods(this, apis.workspaces, apis.workspaceInvitations);
12842
13828
  bindAuthMethods(this, apis.auth, apis.assignments);
@@ -13069,6 +14055,36 @@ var QUERY_VALUELESS_OPS = /* @__PURE__ */ new Set([
13069
14055
  "exists"
13070
14056
  ]);
13071
14057
 
14058
+ // src/types/generated/channel_message.ts
14059
+ var ChannelMessageDirection = {
14060
+ inbound: "inbound",
14061
+ outbound: "outbound"
14062
+ };
14063
+ var ChannelMessageSource = {
14064
+ sms_record: "sms_record",
14065
+ other_chat: "other_chat"
14066
+ };
14067
+
14068
+ // src/types/generated/chat.ts
14069
+ var ChannelMessagesUnavailableReason = {
14070
+ not_single_channel: "not_single_channel",
14071
+ no_phone_number: "no_phone_number",
14072
+ no_counterpart_phone: "no_counterpart_phone"
14073
+ };
14074
+ var ChatMuteReason = {
14075
+ working: "working",
14076
+ waiting_on_person: "waiting_on_person",
14077
+ resolved_elsewhere: "resolved_elsewhere",
14078
+ not_mine: "not_mine"
14079
+ };
14080
+
14081
+ // src/types/generated/ehr_writeback.ts
14082
+ var EhrWritebackOutcomeResponseStatus = {
14083
+ accepted: "accepted",
14084
+ skipped: "skipped",
14085
+ failed: "failed"
14086
+ };
14087
+
13072
14088
  // src/types/chat-types.ts
13073
14089
  var SMS_DELIVERY_FAILURE_STATUSES = /* @__PURE__ */ new Set([
13074
14090
  "failed",
@@ -13230,6 +14246,46 @@ var PromoCodeStatus = {
13230
14246
  exhausted: "exhausted"
13231
14247
  };
13232
14248
 
14249
+ // src/types/generated/import_skipped_rule.ts
14250
+ var ImportReadinessIssueCode = {
14251
+ phone_not_provisioned: "phone_not_provisioned",
14252
+ phone_missing_default_workflow: "phone_missing_default_workflow",
14253
+ inbox_missing_default_workflow: "inbox_missing_default_workflow",
14254
+ workflow_missing_default_phone: "workflow_missing_default_phone"
14255
+ };
14256
+ var ImportReadinessIssueResourceType = {
14257
+ phone: "phone",
14258
+ inbox: "inbox",
14259
+ workflow: "workflow"
14260
+ };
14261
+ var ImportSkippedRuleResourceGroupResourceType = {
14262
+ phone: "phone",
14263
+ inbox: "inbox",
14264
+ member: "member"
14265
+ };
14266
+ var ImportSkippedRuleResponseNeededResourceTypesItem = {
14267
+ phone: "phone",
14268
+ inbox: "inbox",
14269
+ member: "member"
14270
+ };
14271
+ var ImportSkippedRuleResponseParentKind = {
14272
+ routine: "routine",
14273
+ journey_step: "journey_step",
14274
+ task: "task",
14275
+ workflow: "workflow",
14276
+ other: "other"
14277
+ };
14278
+ var ImportSkippedRuleResponseReasonCode = {
14279
+ missing_binding: "missing_binding",
14280
+ invalid_event_rule_cel: "invalid_event_rule_cel",
14281
+ unresolved_journey_scope: "unresolved_journey_scope"
14282
+ };
14283
+ var ImportSkippedRuleResponseStatus = {
14284
+ outstanding: "outstanding",
14285
+ reconnected: "reconnected",
14286
+ dismissed: "dismissed"
14287
+ };
14288
+
13233
14289
  // src/features/registry.ts
13234
14290
  var FeatureCategory = /* @__PURE__ */ ((FeatureCategory2) => {
13235
14291
  FeatureCategory2["COMMUNICATION"] = "communication";
@@ -13355,6 +14411,12 @@ function isChatType(value) {
13355
14411
 
13356
14412
  // src/constants/models.ts
13357
14413
  var DEFAULT_CHAT_MODEL = "aws:bedrock:claude-4-5-haiku";
14414
+ var DEFAULT_AGENT_CHAT_MODEL = "openai:chat:gpt-5.6-luna";
14415
+ var DEFAULT_AGENT_REALTIME_MODEL = "xai:realtime:voice-agent-2";
14416
+ var DEFAULT_AGENT_REALTIME_MODEL_CONFIG = {
14417
+ ttsModel: "native",
14418
+ voiceModel: "xai:voice:cosmo"
14419
+ };
13358
14420
  var DEFAULT_VOICE_INFERENCE_MODEL = "openai:chat:gpt-5.6-luna";
13359
14421
  var DEFAULT_CUSTOM_VOICE_MODEL = "elevenlabs:voice:river";
13360
14422
 
@@ -13446,6 +14508,70 @@ function getAllResourceSlugs() {
13446
14508
  return Object.keys(RESOURCE_METADATA);
13447
14509
  }
13448
14510
 
14511
+ // src/types/generated/digest.ts
14512
+ var DigestSlotRole = {
14513
+ people: "people",
14514
+ subject: "subject",
14515
+ actor: "actor",
14516
+ workflow: "workflow",
14517
+ journey: "journey",
14518
+ phone_number: "phone_number",
14519
+ data_type: "data_type",
14520
+ operator_group: "operator_group",
14521
+ channel: "channel",
14522
+ origin: "origin",
14523
+ source: "source",
14524
+ reason: "reason",
14525
+ direction: "direction",
14526
+ area: "area",
14527
+ conclusion: "conclusion"
14528
+ };
14529
+
14530
+ // src/types/generated/activity_feed.ts
14531
+ var ActivityGrain = {
14532
+ month: "month",
14533
+ week: "week",
14534
+ day: "day",
14535
+ hour: "hour",
14536
+ event: "event"
14537
+ };
14538
+ var ActivityGroupBy = {
14539
+ workspace: "workspace",
14540
+ event_type: "event_type",
14541
+ family: "family",
14542
+ workspace_family: "workspace_family"
14543
+ };
14544
+ var ActivityOpenItemOrder = {
14545
+ priority: "priority",
14546
+ recency: "recency"
14547
+ };
14548
+ var ActivityWindowBasis = {
14549
+ absolute: "absolute",
14550
+ workspace_local: "workspace_local"
14551
+ };
14552
+
14553
+ // src/types/generated/family.ts
14554
+ var ActivityEventFamily = {
14555
+ people: "people",
14556
+ conversations: "conversations",
14557
+ journeys: "journeys",
14558
+ automation: "automation",
14559
+ operators: "operators",
14560
+ administration: "administration"
14561
+ };
14562
+ var ActivityOutcome = {
14563
+ ok: "ok",
14564
+ attention: "attention",
14565
+ failed: "failed"
14566
+ };
14567
+
14568
+ // src/types/generated/entity_ref.ts
14569
+ var RefResolutionStatus = {
14570
+ resolved: "resolved",
14571
+ unresolved: "unresolved",
14572
+ unsupported: "unsupported"
14573
+ };
14574
+
13449
14575
  // src/scopes.ts
13450
14576
  var ScopeCategory = /* @__PURE__ */ ((ScopeCategory2) => {
13451
14577
  ScopeCategory2["WORKSPACE"] = "workspace";
@@ -13551,7 +14677,9 @@ var SCOPES = {
13551
14677
  "chats:write": {
13552
14678
  name: "chats:write",
13553
14679
  category: "chats" /* CHATS */,
13554
- description: "Send messages in conversations",
14680
+ // Cross-member: acting in a conversation that is not yours. Sending in
14681
+ // your own needs no scope (see the chats:read note on "all").
14682
+ description: "Modify other members' conversations",
13555
14683
  implies: ["chats:read"]
13556
14684
  },
13557
14685
  "chats:admin": {
@@ -14250,6 +15378,8 @@ export {
14250
15378
  FhirVendor,
14251
15379
  FhirConnectionState,
14252
15380
  FhirClientType,
15381
+ TestChatRunLane,
15382
+ TestChatRunOutcome,
14253
15383
  CriterionType,
14254
15384
  DriverMode,
14255
15385
  AccessGrantResourceType,
@@ -14257,21 +15387,15 @@ export {
14257
15387
  AccessGrantStatus,
14258
15388
  AccessGrantTrigger,
14259
15389
  ConsentMethod,
15390
+ MemberRelationshipKind,
15391
+ RelatedMemberRole,
15392
+ RelationshipCardinality,
15393
+ MEMBER_RELATIONSHIP_KINDS,
14260
15394
  CONFIG_HEALTH_FACADE_CHECK_SLUGS,
14261
15395
  isConfigHealthFacadeCheckSlug,
14262
- ActivityActorKind,
14263
- ActivityAggregationKind,
14264
- ActivityCaptureState,
14265
- ActivityConfigAction,
14266
- ActivityConfigArea,
14267
- ActivityCoverageLimitation,
14268
- ActivityDirection,
14269
- ActivityEmptyReason,
14270
- ActivityEventType,
14271
- ActivityEventTypePreset,
14272
- ActivityGoalImpact,
14273
- ActivityTimelineProjection,
14274
- FormValueDisposition,
15396
+ UiPromptPresentedKind,
15397
+ UiPromptResponseKind,
15398
+ UiPromptResponseStatus,
14275
15399
  parseExperimentStatCount,
14276
15400
  TERMINAL_TASK_STATES,
14277
15401
  WorkspaceInvitationsApi,
@@ -14280,13 +15404,14 @@ export {
14280
15404
  createApiModules,
14281
15405
  createWorkspaceClient,
14282
15406
  bindAccessGrantsMethods,
15407
+ bindInterventionRequestsMethods,
14283
15408
  bindAgentTasksMethods,
14284
15409
  bindAgentsMethods,
14285
15410
  bindTasksMethods,
14286
15411
  bindChatsMethods,
14287
15412
  bindCallsMethods,
14288
15413
  bindDashboardsMethods,
14289
- bindActivityTimelineMethods,
15414
+ bindActivityMethods,
14290
15415
  bindMotdMethods,
14291
15416
  bindTrackedLinksMethods,
14292
15417
  bindDataTypesMethods,
@@ -14326,6 +15451,11 @@ export {
14326
15451
  getVoiceModelId,
14327
15452
  canPreviewVoice,
14328
15453
  QUERY_VALUELESS_OPS,
15454
+ ChannelMessageDirection,
15455
+ ChannelMessageSource,
15456
+ ChannelMessagesUnavailableReason,
15457
+ ChatMuteReason,
15458
+ EhrWritebackOutcomeResponseStatus,
14329
15459
  SMS_DELIVERY_FAILURE_STATUSES,
14330
15460
  isSMSDeliveryFailureStatus,
14331
15461
  AGENT_NOTE_ORIGINS,
@@ -14348,6 +15478,13 @@ export {
14348
15478
  WorkflowRoutingMode,
14349
15479
  WIDGET_SLUGS,
14350
15480
  PromoCodeStatus,
15481
+ ImportReadinessIssueCode,
15482
+ ImportReadinessIssueResourceType,
15483
+ ImportSkippedRuleResourceGroupResourceType,
15484
+ ImportSkippedRuleResponseNeededResourceTypesItem,
15485
+ ImportSkippedRuleResponseParentKind,
15486
+ ImportSkippedRuleResponseReasonCode,
15487
+ ImportSkippedRuleResponseStatus,
14351
15488
  FeatureCategory,
14352
15489
  FeatureVisibility,
14353
15490
  initializeFeatures,
@@ -14369,14 +15506,25 @@ export {
14369
15506
  requiresAssistantParticipant,
14370
15507
  isChatType,
14371
15508
  DEFAULT_CHAT_MODEL,
15509
+ DEFAULT_AGENT_CHAT_MODEL,
15510
+ DEFAULT_AGENT_REALTIME_MODEL,
15511
+ DEFAULT_AGENT_REALTIME_MODEL_CONFIG,
14372
15512
  DEFAULT_VOICE_INFERENCE_MODEL,
14373
15513
  DEFAULT_CUSTOM_VOICE_MODEL,
14374
15514
  getResourceMetadata,
14375
15515
  getAllResourceSlugs,
15516
+ DigestSlotRole,
15517
+ ActivityGrain,
15518
+ ActivityGroupBy,
15519
+ ActivityOpenItemOrder,
15520
+ ActivityWindowBasis,
15521
+ ActivityEventFamily,
15522
+ ActivityOutcome,
15523
+ RefResolutionStatus,
14376
15524
  ScopeCategory,
14377
15525
  SCOPES,
14378
15526
  ScopeManager,
14379
15527
  SCOPE_PRESETS,
14380
15528
  getRevisionState
14381
15529
  };
14382
- //# sourceMappingURL=chunk-WMA6YCAS.js.map
15530
+ //# sourceMappingURL=chunk-WDYHAQDY.js.map