@gravity-rail/sdk 0.36.1 → 0.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +44 -21
  2. package/dist/agui.d.cts +1 -1
  3. package/dist/agui.d.ts +1 -1
  4. package/dist/audio.d.cts +1 -1
  5. package/dist/audio.d.ts +1 -1
  6. package/dist/{chat-interaction-CbkSPz3m.d.cts → chat-interaction-BB3ap8_u.d.ts} +8866 -6155
  7. package/dist/{chat-interaction-DqjEfj7G.d.ts → chat-interaction-Bj1pciwo.d.cts} +8866 -6155
  8. package/dist/{chunk-P2E6LU7I.js → chunk-67QXTQVL.js} +1 -26
  9. package/dist/chunk-67QXTQVL.js.map +1 -0
  10. package/dist/chunk-6KPGCPGW.js +48 -0
  11. package/dist/chunk-6KPGCPGW.js.map +1 -0
  12. package/dist/{chunk-HRUMZ46V.js → chunk-72SWNLVD.js} +2 -1
  13. package/dist/chunk-72SWNLVD.js.map +1 -0
  14. package/dist/{chunk-R6S5RXW5.js → chunk-ZTUOB4V2.js} +1255 -201
  15. package/dist/chunk-ZTUOB4V2.js.map +1 -0
  16. package/dist/helpers.cjs +47 -0
  17. package/dist/helpers.cjs.map +1 -1
  18. package/dist/helpers.d.cts +4 -3
  19. package/dist/helpers.d.ts +4 -3
  20. package/dist/helpers.js +7 -1
  21. package/dist/helpers.js.map +1 -1
  22. package/dist/index.cjs +1365 -330
  23. package/dist/index.cjs.map +1 -1
  24. package/dist/index.d.cts +13 -35
  25. package/dist/index.d.ts +13 -35
  26. package/dist/index.js +110 -116
  27. package/dist/index.js.map +1 -1
  28. package/dist/internal.cjs +1279 -232
  29. package/dist/internal.cjs.map +1 -1
  30. package/dist/internal.d.cts +338 -79
  31. package/dist/internal.d.ts +338 -79
  32. package/dist/internal.js +66 -15
  33. package/dist/internal.js.map +1 -1
  34. package/dist/member-import-D8fZr2Pd.d.cts +46 -0
  35. package/dist/member-import-YNk9MlEl.d.ts +46 -0
  36. package/dist/realtime.cjs +91 -20
  37. package/dist/realtime.cjs.map +1 -1
  38. package/dist/realtime.d.cts +34 -9
  39. package/dist/realtime.d.ts +34 -9
  40. package/dist/realtime.js +90 -20
  41. package/dist/realtime.js.map +1 -1
  42. package/dist/{revision-state-92LHz1jQ.d.ts → revision-state-BaJTq3Or.d.ts} +270 -54
  43. package/dist/{revision-state-CSQ7J3ZU.d.cts → revision-state-CL11FA-T.d.cts} +270 -54
  44. package/dist/schemas.cjs +58 -81
  45. package/dist/schemas.cjs.map +1 -1
  46. package/dist/schemas.d.cts +88 -225
  47. package/dist/schemas.d.ts +88 -225
  48. package/dist/schemas.js +58 -76
  49. package/dist/schemas.js.map +1 -1
  50. package/dist/{tasks-CrF1qC4G.d.cts → tasks-ByJCQ5BI.d.cts} +2995 -2507
  51. package/dist/{tasks-CrF1qC4G.d.ts → tasks-ByJCQ5BI.d.ts} +2995 -2507
  52. package/dist/{types-0c6_NGU4.d.cts → types-DlfADjPR.d.cts} +17 -2
  53. package/dist/{types-0c6_NGU4.d.ts → types-DlfADjPR.d.ts} +17 -2
  54. package/package.json +9 -7
  55. package/dist/chunk-HRUMZ46V.js.map +0 -1
  56. package/dist/chunk-P2E6LU7I.js.map +0 -1
  57. package/dist/chunk-R6S5RXW5.js.map +0 -1
package/dist/internal.cjs CHANGED
@@ -74,7 +74,11 @@ __export(internal_exports, {
74
74
  ConfluenceApi: () => ConfluenceApi,
75
75
  ConnectionSyncApi: () => ConnectionSyncApi,
76
76
  ConsentMethod: () => ConsentMethod,
77
+ CreateMemberContactPointRequestContactType: () => CreateMemberContactPointRequestContactType,
78
+ CreateMemberContactPointRequestPurpose: () => CreateMemberContactPointRequestPurpose,
79
+ CreateMemberContactPointRequestSharing: () => CreateMemberContactPointRequestSharing,
77
80
  CriterionType: () => CriterionType,
81
+ CrmActivityKind: () => CrmActivityKind,
78
82
  CustomToolkitsApi: () => CustomToolkitsApi,
79
83
  CustomerActivityClassifierDetectorName: () => CustomerActivityClassifierDetectorName,
80
84
  CustomerActivityClassifierLabel: () => CustomerActivityClassifierLabel,
@@ -110,6 +114,7 @@ __export(internal_exports, {
110
114
  FeatureCategory: () => FeatureCategory,
111
115
  FeatureVisibility: () => FeatureVisibility,
112
116
  FeaturesApi: () => FeaturesApi,
117
+ FeedCursorRejection: () => FeedCursorRejection,
113
118
  FhirClientType: () => FhirClientType,
114
119
  FhirConnectionState: () => FhirConnectionState,
115
120
  FhirConnectionsApi: () => FhirConnectionsApi,
@@ -208,6 +213,12 @@ __export(internal_exports, {
208
213
  ReportsApi: () => ReportsApi,
209
214
  ResellersApi: () => ResellersApi,
210
215
  Resource: () => Resource,
216
+ RevisionHistorySegment: () => RevisionHistorySegment,
217
+ RoutingActionType: () => RoutingActionType,
218
+ RoutingAudience: () => RoutingAudience,
219
+ RoutingChannel: () => RoutingChannel,
220
+ RoutingTimeWindow: () => RoutingTimeWindow,
221
+ RunHealthCategory: () => RunHealthCategory,
211
222
  SCOPES: () => SCOPES,
212
223
  SCOPE_PRESETS: () => SCOPE_PRESETS,
213
224
  SMS_DELIVERY_FAILURE_STATUSES: () => SMS_DELIVERY_FAILURE_STATUSES,
@@ -216,13 +227,22 @@ __export(internal_exports, {
216
227
  STT_MODEL_DEEPGRAM_FLUX_MULTI_SELFHOST: () => STT_MODEL_DEEPGRAM_FLUX_MULTI_SELFHOST,
217
228
  STT_MODEL_DEEPGRAM_FLUX_SELFHOST: () => STT_MODEL_DEEPGRAM_FLUX_SELFHOST,
218
229
  SalesforceApi: () => SalesforceApi,
230
+ ScenarioHealthCaption: () => ScenarioHealthCaption,
231
+ ScenarioHealthHeadline: () => ScenarioHealthHeadline,
232
+ ScenarioHealthSampleNote: () => ScenarioHealthSampleNote,
233
+ ScenarioHealthState: () => ScenarioHealthState,
234
+ ScenarioRunBlocker: () => ScenarioRunBlocker,
219
235
  Scope: () => Scope,
220
236
  ScopeCategory: () => ScopeCategory,
221
237
  ScopeManager: () => ScopeManager,
238
+ SendingNextStep: () => SendingNextStep,
239
+ SendingStopState: () => SendingStopState,
240
+ SessionKind: () => SessionKind,
222
241
  SiteDnsRecordType: () => SiteDnsRecordType,
223
242
  SitesApi: () => SitesApi,
224
243
  SlackAppsApi: () => SlackAppsApi,
225
244
  SnippetsApi: () => SnippetsApi,
245
+ SolutionReleaseResponseSlug: () => SolutionReleaseResponseSlug,
226
246
  SubscriptionsApi: () => SubscriptionsApi,
227
247
  SupervisorsApi: () => SupervisorsApi,
228
248
  SupportRequestsApi: () => SupportRequestsApi,
@@ -241,12 +261,12 @@ __export(internal_exports, {
241
261
  UiPromptPresentedKindValues: () => UiPromptPresentedKind,
242
262
  UiPromptResponseKindValues: () => UiPromptResponseKind,
243
263
  UiPromptResponseStatusValues: () => UiPromptResponseStatus,
264
+ UpdateMemberContactPointRequestContactType: () => UpdateMemberContactPointRequestContactType,
265
+ UpdateMemberContactPointRequestPurpose: () => UpdateMemberContactPointRequestPurpose,
266
+ UpdateMemberContactPointRequestSharing: () => UpdateMemberContactPointRequestSharing,
244
267
  VoiceApi: () => VoiceApi,
245
268
  WIDGET_SLUGS: () => WIDGET_SLUGS,
246
- WORKFLOW_IMPLICIT_USE_SCOPE: () => WORKFLOW_IMPLICIT_USE_SCOPE,
247
- WorkflowAccessWarningResourceType: () => WorkflowAccessWarningResourceType,
248
269
  WorkflowNotesApi: () => WorkflowNotesApi,
249
- WorkflowResourceType: () => WorkflowAccessWarningResourceType,
250
270
  WorkflowRoutingMode: () => WorkflowRoutingMode,
251
271
  WorkflowsApi: () => WorkflowsApi,
252
272
  WorkspaceFeature: () => WorkspaceFeature,
@@ -263,6 +283,7 @@ __export(internal_exports, {
263
283
  bindAppsMethods: () => bindAppsMethods,
264
284
  bindAuthMethods: () => bindAuthMethods,
265
285
  bindBillingMethods: () => bindBillingMethods,
286
+ bindBundlesMethods: () => bindBundlesMethods,
266
287
  bindCalendarsMethods: () => bindCalendarsMethods,
267
288
  bindCallsMethods: () => bindCallsMethods,
268
289
  bindChatsMethods: () => bindChatsMethods,
@@ -274,6 +295,7 @@ __export(internal_exports, {
274
295
  bindEventsMethods: () => bindEventsMethods,
275
296
  bindExperimentsMethods: () => bindExperimentsMethods,
276
297
  bindFilesMethods: () => bindFilesMethods,
298
+ bindInstallationsMethods: () => bindInstallationsMethods,
277
299
  bindIntegrationsMethods: () => bindIntegrationsMethods,
278
300
  bindInterventionRequestsMethods: () => bindInterventionRequestsMethods,
279
301
  bindJourneysMethods: () => bindJourneysMethods,
@@ -289,6 +311,7 @@ __export(internal_exports, {
289
311
  bindQualificationsMethods: () => bindQualificationsMethods,
290
312
  bindQueriesMethods: () => bindQueriesMethods,
291
313
  bindResellersMethods: () => bindResellersMethods,
314
+ bindRoutingRulesMethods: () => bindRoutingRulesMethods,
292
315
  bindSitesMethods: () => bindSitesMethods,
293
316
  bindSupportRequestMethods: () => bindSupportRequestMethods,
294
317
  bindTasksMethods: () => bindTasksMethods,
@@ -330,9 +353,6 @@ __export(internal_exports, {
330
353
  parseExperimentStatCount: () => parseExperimentStatCount,
331
354
  parseOrgAuthChallenge: () => parseOrgAuthChallenge,
332
355
  requiresAssistantParticipant: () => requiresAssistantParticipant,
333
- roleCanUseWorkflow: () => roleCanUseWorkflow,
334
- roleImplicitWorkflowUseScope: () => roleImplicitWorkflowUseScope,
335
- roleWorkflowAccess: () => roleWorkflowAccess,
336
356
  usesBuiltinAssistant: () => usesBuiltinAssistant,
337
357
  validateFeatureDependencies: () => validateFeatureDependencies
338
358
  });
@@ -379,21 +399,6 @@ function encodePermissions(permissions) {
379
399
  if (permissions.delete) accessMode |= PERMISSION_DELETE;
380
400
  return accessMode;
381
401
  }
382
- var WORKFLOW_IMPLICIT_USE_SCOPE = "workflows:admin";
383
- function roleImplicitWorkflowUseScope(role) {
384
- return (role.grantedScopes ?? []).includes(WORKFLOW_IMPLICIT_USE_SCOPE) ? WORKFLOW_IMPLICIT_USE_SCOPE : null;
385
- }
386
- function roleWorkflowAccess(role, workflowId) {
387
- const viaScope = roleImplicitWorkflowUseScope(role);
388
- if (viaScope) {
389
- return { accessMode: PERMISSION_USE | PERMISSION_EDIT, viaScope };
390
- }
391
- const entry = (role.workflowAccess ?? []).find((wa) => wa.workflowId === workflowId);
392
- return { accessMode: entry?.accessMode ?? PERMISSION_NONE, viaScope: null };
393
- }
394
- function roleCanUseWorkflow(role, workflowId) {
395
- return (roleWorkflowAccess(role, workflowId).accessMode & PERMISSION_USE) !== 0;
396
- }
397
402
  var Scope = /* @__PURE__ */ ((Scope2) => {
398
403
  Scope2["WORKSPACE_READ"] = "workspace:read";
399
404
  Scope2["WORKSPACE_WRITE"] = "workspace:write";
@@ -462,6 +467,7 @@ var Scope = /* @__PURE__ */ ((Scope2) => {
462
467
  Scope2["LABELS_READ"] = "labels:read";
463
468
  Scope2["LABELS_WRITE"] = "labels:write";
464
469
  Scope2["ANALYTICS_READ"] = "analytics:read";
470
+ Scope2["ANONYMOUS_SUBMISSIONS_READ"] = "anonymous_submissions:read";
465
471
  Scope2["OPERATOR_READ"] = "operator:read";
466
472
  Scope2["OPERATOR_WRITE"] = "operator:write";
467
473
  Scope2["EXPORT_READ"] = "export:read";
@@ -485,6 +491,8 @@ var BulkMemberResultStatus = {
485
491
  skipped: "skipped"
486
492
  };
487
493
  var MemberImportMatchInfoMatchType = {
494
+ id: "id",
495
+ uuid: "uuid",
488
496
  external_id: "external_id",
489
497
  email: "email",
490
498
  phone: "phone",
@@ -506,6 +514,36 @@ var MergeMemberRolesRequestAccessStrategy = {
506
514
  target_only: "target_only"
507
515
  };
508
516
 
517
+ // src/types/generated/member_contact_point.ts
518
+ var CreateMemberContactPointRequestContactType = {
519
+ phone: "phone",
520
+ email: "email"
521
+ };
522
+ var CreateMemberContactPointRequestPurpose = {
523
+ general: "general",
524
+ notification: "notification",
525
+ billing: "billing"
526
+ };
527
+ var CreateMemberContactPointRequestSharing = {
528
+ shared: "shared",
529
+ individual: "individual",
530
+ unknown: "unknown"
531
+ };
532
+ var UpdateMemberContactPointRequestContactType = {
533
+ phone: "phone",
534
+ email: "email"
535
+ };
536
+ var UpdateMemberContactPointRequestPurpose = {
537
+ general: "general",
538
+ notification: "notification",
539
+ billing: "billing"
540
+ };
541
+ var UpdateMemberContactPointRequestSharing = {
542
+ shared: "shared",
543
+ individual: "individual",
544
+ unknown: "unknown"
545
+ };
546
+
509
547
  // src/types/member-types.ts
510
548
  var MemberType = /* @__PURE__ */ ((MemberType2) => {
511
549
  MemberType2["ANONYMOUS"] = "anonymous";
@@ -592,6 +630,7 @@ var EventRuleEventType = /* @__PURE__ */ ((EventRuleEventType2) => {
592
630
  EventRuleEventType2["CHAT_CREATED"] = "chat:created";
593
631
  EventRuleEventType2["CHAT_SUMMARY"] = "chat:summary";
594
632
  EventRuleEventType2["MESSAGE_CREATED"] = "message:created";
633
+ EventRuleEventType2["LINK_CLICKED"] = "link:clicked";
595
634
  EventRuleEventType2["CHAT_CALLBACK"] = "chat:callback";
596
635
  EventRuleEventType2["MEMBER_UPDATED"] = "member:updated";
597
636
  EventRuleEventType2["ROUTINE_TRIGGERED"] = "routine:triggered";
@@ -655,6 +694,20 @@ function eventRuleActionParams(params) {
655
694
  }
656
695
  var MASKED_SECRET_SENTINEL = "__SECRET_SET__";
657
696
 
697
+ // src/types/generated/credit_stop_service.ts
698
+ var SendingNextStep = {
699
+ add_credits: "add_credits",
700
+ subscribe: "subscribe",
701
+ contact_billing_owner: "contact_billing_owner"
702
+ };
703
+ var SendingStopState = {
704
+ ok: "ok",
705
+ credits_suspended: "credits_suspended",
706
+ out_of_credits: "out_of_credits",
707
+ operator_suspension: "operator_suspension",
708
+ billing_unresolved: "billing_unresolved"
709
+ };
710
+
658
711
  // src/types/billing-types.ts
659
712
  var WorkspaceFeature = /* @__PURE__ */ ((WorkspaceFeature2) => {
660
713
  WorkspaceFeature2["PHONE"] = "phone";
@@ -670,7 +723,6 @@ var WorkspaceFeature = /* @__PURE__ */ ((WorkspaceFeature2) => {
670
723
  WorkspaceFeature2["WEB_SEARCH"] = "web_search";
671
724
  WorkspaceFeature2["CALENDAR"] = "calendar";
672
725
  WorkspaceFeature2["JOURNEY_V2_EDITOR"] = "journey_v2_editor";
673
- WorkspaceFeature2["EXPERIMENTS"] = "experiments";
674
726
  WorkspaceFeature2["MAILBOX_USER_INPUT"] = "mailbox_user_input";
675
727
  WorkspaceFeature2["FORKED_TRAJECTORIES"] = "forked_trajectories";
676
728
  WorkspaceFeature2["GMAIL"] = "gmail";
@@ -691,6 +743,7 @@ var WorkspaceFeature = /* @__PURE__ */ ((WorkspaceFeature2) => {
691
743
  WorkspaceFeature2["IMAGE_GENERATION"] = "image_generation";
692
744
  WorkspaceFeature2["CHARLESTON_NEPHROLOGY_PMD_PAGING"] = "charleston_nephrology_pmd_paging";
693
745
  WorkspaceFeature2["PATIENTSYNC_TRANSFER"] = "patientsync_transfer";
746
+ WorkspaceFeature2["COSAN_PATHWAYS_SCHEDULING"] = "cosan_pathways_scheduling";
694
747
  return WorkspaceFeature2;
695
748
  })(WorkspaceFeature || {});
696
749
  var MemberFeature = /* @__PURE__ */ ((MemberFeature2) => {
@@ -822,6 +875,7 @@ var IndexStatus = /* @__PURE__ */ ((IndexStatus2) => {
822
875
  var DataTypeRecordScope = /* @__PURE__ */ ((DataTypeRecordScope2) => {
823
876
  DataTypeRecordScope2["WORKSPACE"] = "workspace";
824
877
  DataTypeRecordScope2["MEMBER"] = "member";
878
+ DataTypeRecordScope2["ANONYMOUS"] = "anonymous";
825
879
  return DataTypeRecordScope2;
826
880
  })(DataTypeRecordScope || {});
827
881
  var DataSensitivity = /* @__PURE__ */ ((DataSensitivity2) => {
@@ -853,6 +907,7 @@ var ModelProvider = {
853
907
  deepgram: "deepgram",
854
908
  xai: "xai",
855
909
  fireworks: "fireworks",
910
+ vercel: "vercel",
856
911
  custom: "custom"
857
912
  };
858
913
  var ModelType = {
@@ -953,7 +1008,26 @@ var FhirClientType = /* @__PURE__ */ ((FhirClientType2) => {
953
1008
  return FhirClientType2;
954
1009
  })(FhirClientType || {});
955
1010
 
1011
+ // src/types/app-connection-types.ts
1012
+ var CrmActivityKind = /* @__PURE__ */ ((CrmActivityKind2) => {
1013
+ CrmActivityKind2["MESSAGE"] = "message";
1014
+ CrmActivityKind2["SUMMARY"] = "summary";
1015
+ CrmActivityKind2["CHAT_STARTED"] = "chat_started";
1016
+ CrmActivityKind2["CALL_STARTED"] = "call_started";
1017
+ CrmActivityKind2["CALL_ENDED"] = "call_ended";
1018
+ return CrmActivityKind2;
1019
+ })(CrmActivityKind || {});
1020
+
956
1021
  // src/types/generated/qualification.ts
1022
+ var RunHealthCategory = {
1023
+ passed: "passed",
1024
+ failed: "failed",
1025
+ running: "running",
1026
+ not_applicable: "not_applicable",
1027
+ awaiting_evaluation: "awaiting_evaluation",
1028
+ ungradeable: "ungradeable",
1029
+ incomplete: "incomplete"
1030
+ };
957
1031
  var TestChatRunLane = {
958
1032
  text: "text",
959
1033
  web_realtime: "web_realtime",
@@ -971,6 +1045,44 @@ var TestChatRunOutcome = {
971
1045
  instrument_failure: "instrument_failure"
972
1046
  };
973
1047
 
1048
+ // src/types/generated/qualification_health_service.ts
1049
+ var ScenarioHealthCaption = {
1050
+ recent_passes: "recent_passes",
1051
+ pass_ratio: "pass_ratio",
1052
+ could_not_grade: "could_not_grade",
1053
+ awaiting_evaluation: "awaiting_evaluation",
1054
+ running: "running",
1055
+ not_run_since_test_change: "not_run_since_test_change",
1056
+ not_run_on_revision: "not_run_on_revision",
1057
+ never_run: "never_run"
1058
+ };
1059
+ var ScenarioHealthHeadline = {
1060
+ needs_attention: "needs_attention",
1061
+ no_results: "no_results",
1062
+ all_passing: "all_passing",
1063
+ no_scenarios: "no_scenarios"
1064
+ };
1065
+ var ScenarioHealthSampleNote = {
1066
+ low_sample: "low_sample"
1067
+ };
1068
+ var ScenarioHealthState = {
1069
+ failing: "failing",
1070
+ flaky: "flaky",
1071
+ no_results: "no_results",
1072
+ passing: "passing"
1073
+ };
1074
+
1075
+ // src/types/generated/qualification_health_summary.ts
1076
+ var RevisionHistorySegment = {
1077
+ before_test_change: "before_test_change"
1078
+ };
1079
+
1080
+ // src/types/generated/qualification_run_identity.ts
1081
+ var ScenarioRunBlocker = {
1082
+ missing_persona: "missing_persona",
1083
+ archived_persona: "archived_persona"
1084
+ };
1085
+
974
1086
  // src/types/qualification-types.ts
975
1087
  var CriterionType = /* @__PURE__ */ ((CriterionType2) => {
976
1088
  CriterionType2["EXPRESSION"] = "expression";
@@ -1265,8 +1377,6 @@ var CONFIG_HEALTH_FACADE_CHECK_SLUGS = [
1265
1377
  "workflow.config",
1266
1378
  "journey.authoring",
1267
1379
  "journey.v2_validation",
1268
- "workflow.access",
1269
- "routine.workflow_access",
1270
1380
  "workspace.validation"
1271
1381
  ];
1272
1382
  function isConfigHealthFacadeCheckSlug(value) {
@@ -1319,9 +1429,11 @@ var AbilityTypeSlugs = {
1319
1429
  GOOGLE_DRIVE: "integration:google_drive",
1320
1430
  GOOGLE_SHEETS: "integration:google_sheets",
1321
1431
  CHARLESTON_PMD_PAGING: "integration:charleston_pmd_paging",
1432
+ COSAN_PATHWAYS_SCHEDULING: "integration:cosan_pathways_scheduling",
1322
1433
  // Communication
1323
1434
  PHONE_CALL_TOOLS: "communication:phone_call_tools",
1324
1435
  SEND_SMS: "communication:send_sms",
1436
+ SEND_EMAIL: "communication:send_email",
1325
1437
  SEND_WHATSAPP: "communication:send_whatsapp",
1326
1438
  MEMBER_ACCESS: "communication:member_access",
1327
1439
  AUDIO_PLAYBACK: "communication:audio_playback",
@@ -1336,6 +1448,8 @@ var AbilityTypeSlugs = {
1336
1448
  MANAGE_WORKSPACE: "delegation:manage_workspace",
1337
1449
  // Workflow
1338
1450
  WORKFLOW_RUN: "workflow:run",
1451
+ // Access
1452
+ MEMBER_ROLE_GATE: "access:member_role_gate",
1339
1453
  // Commerce
1340
1454
  RESELLER: "commerce:reseller",
1341
1455
  // System (auto-injected, hidden from users)
@@ -1363,6 +1477,12 @@ var PromoCodeStatus = {
1363
1477
  exhausted: "exhausted"
1364
1478
  };
1365
1479
 
1480
+ // src/types/generated/session.ts
1481
+ var SessionKind = {
1482
+ account: "account",
1483
+ site: "site"
1484
+ };
1485
+
1366
1486
  // src/types/query-engine-types.ts
1367
1487
  var QUERY_VALUELESS_OPS = /* @__PURE__ */ new Set([
1368
1488
  "isEmpty",
@@ -1411,6 +1531,14 @@ var ActivityWindowBasis = {
1411
1531
  absolute: "absolute",
1412
1532
  workspace_local: "workspace_local"
1413
1533
  };
1534
+ var FeedCursorRejection = {
1535
+ malformed: "malformed",
1536
+ signature: "signature",
1537
+ version: "version",
1538
+ expired: "expired",
1539
+ scope_mismatch: "scope_mismatch",
1540
+ query_mismatch: "query_mismatch"
1541
+ };
1414
1542
 
1415
1543
  // src/types/generated/family.ts
1416
1544
  var ActivityEventFamily = {
@@ -1453,7 +1581,12 @@ var CustomerActivityClassifierLabel = {
1453
1581
  repetitive_loop: "repetitive_loop",
1454
1582
  manager_no_response: "manager_no_response",
1455
1583
  docs_or_skill_gap: "docs_or_skill_gap",
1456
- discovery_thrash: "discovery_thrash"
1584
+ discovery_thrash: "discovery_thrash",
1585
+ manager_incomplete_task: "manager_incomplete_task",
1586
+ manager_language_mismatch: "manager_language_mismatch",
1587
+ sandbox_failure: "sandbox_failure",
1588
+ cli_contract_error: "cli_contract_error",
1589
+ unverified_completion: "unverified_completion"
1457
1590
  };
1458
1591
  var CustomerActivityEventSource = {
1459
1592
  system: "system",
@@ -1846,12 +1979,6 @@ var AbilityConfigIssueSeverity = {
1846
1979
  warning: "warning",
1847
1980
  error: "error"
1848
1981
  };
1849
- var WorkflowAccessWarningResourceType = {
1850
- form: "form",
1851
- file: "file",
1852
- folder: "folder",
1853
- calendar: "calendar"
1854
- };
1855
1982
 
1856
1983
  // src/types/generated/workflow.ts
1857
1984
  var WorkflowRoutingMode = {
@@ -1878,12 +2005,21 @@ var ImportReadinessIssueCode = {
1878
2005
  phone_not_provisioned: "phone_not_provisioned",
1879
2006
  phone_missing_default_workflow: "phone_missing_default_workflow",
1880
2007
  inbox_missing_default_workflow: "inbox_missing_default_workflow",
1881
- workflow_missing_default_phone: "workflow_missing_default_phone"
2008
+ workflow_missing_default_phone: "workflow_missing_default_phone",
2009
+ workflow_missing_default_inbox: "workflow_missing_default_inbox",
2010
+ routine_webhook_handoff_unverified: "routine_webhook_handoff_unverified",
2011
+ app_connection_not_connected: "app_connection_not_connected",
2012
+ site_form_migration_pending: "site_form_migration_pending",
2013
+ site_form_binding_invalid: "site_form_binding_invalid",
2014
+ site_theme_setting_inherited: "site_theme_setting_inherited"
1882
2015
  };
1883
2016
  var ImportReadinessIssueResourceType = {
1884
2017
  phone: "phone",
1885
2018
  inbox: "inbox",
1886
- workflow: "workflow"
2019
+ workflow: "workflow",
2020
+ routine: "routine",
2021
+ app_connection: "app_connection",
2022
+ site: "site"
1887
2023
  };
1888
2024
  var ImportSkippedRuleResourceGroupResourceType = {
1889
2025
  phone: "phone",
@@ -1905,7 +2041,8 @@ var ImportSkippedRuleResponseParentKind = {
1905
2041
  var ImportSkippedRuleResponseReasonCode = {
1906
2042
  missing_binding: "missing_binding",
1907
2043
  invalid_event_rule_cel: "invalid_event_rule_cel",
1908
- unresolved_journey_scope: "unresolved_journey_scope"
2044
+ unresolved_journey_scope: "unresolved_journey_scope",
2045
+ missing_source_workflow: "missing_source_workflow"
1909
2046
  };
1910
2047
  var ImportSkippedRuleResponseStatus = {
1911
2048
  outstanding: "outstanding",
@@ -1913,6 +2050,33 @@ var ImportSkippedRuleResponseStatus = {
1913
2050
  dismissed: "dismissed"
1914
2051
  };
1915
2052
 
2053
+ // src/types/generated/communication.ts
2054
+ var RoutingActionType = {
2055
+ answer_ai: "answer_ai",
2056
+ answer_human: "answer_human",
2057
+ answer_owner: "answer_owner",
2058
+ voicemail: "voicemail",
2059
+ play_message: "play_message",
2060
+ ignore: "ignore",
2061
+ signup: "signup"
2062
+ };
2063
+ var RoutingAudience = {
2064
+ anyone: "anyone",
2065
+ anonymous: "anonymous",
2066
+ members: "members"
2067
+ };
2068
+ var RoutingChannel = {
2069
+ pstn: "pstn",
2070
+ messaging: "messaging",
2071
+ email: "email"
2072
+ };
2073
+ var RoutingTimeWindow = {
2074
+ always: "always",
2075
+ business_hours: "business_hours",
2076
+ non_business_hours: "non_business_hours",
2077
+ custom: "custom"
2078
+ };
2079
+
1916
2080
  // src/app-context.ts
1917
2081
  function formatAppContextAsMarkdown(context) {
1918
2082
  if (!context) {
@@ -2100,14 +2264,14 @@ function isChatType(value) {
2100
2264
  }
2101
2265
 
2102
2266
  // src/constants/models.ts
2103
- var DEFAULT_CHAT_MODEL = "aws:bedrock:claude-4-5-haiku";
2104
- var DEFAULT_AGENT_CHAT_MODEL = "openai:chat:gpt-5.6-luna";
2267
+ var DEFAULT_CHAT_MODEL = "openai:chat:gpt-6-luna";
2268
+ var DEFAULT_AGENT_CHAT_MODEL = "openai:chat:gpt-6-luna";
2105
2269
  var DEFAULT_AGENT_REALTIME_MODEL = "xai:realtime:voice-agent-2";
2106
2270
  var DEFAULT_AGENT_REALTIME_MODEL_CONFIG = {
2107
2271
  ttsModel: "native",
2108
2272
  voiceModel: "xai:voice:cosmo"
2109
2273
  };
2110
- var DEFAULT_VOICE_INFERENCE_MODEL = "openai:chat:gpt-5.6-luna";
2274
+ var DEFAULT_VOICE_INFERENCE_MODEL = "openai:chat:gpt-6-luna";
2111
2275
  var DEFAULT_CUSTOM_VOICE_MODEL = "xai:voice:lux";
2112
2276
 
2113
2277
  // src/scopes.ts
@@ -2135,6 +2299,7 @@ var ScopeCategory = /* @__PURE__ */ ((ScopeCategory2) => {
2135
2299
  ScopeCategory2["APPS"] = "apps";
2136
2300
  ScopeCategory2["LABELS"] = "labels";
2137
2301
  ScopeCategory2["ANALYTICS"] = "analytics";
2302
+ ScopeCategory2["ANONYMOUS_SUBMISSIONS"] = "anonymous_submissions";
2138
2303
  ScopeCategory2["OPERATOR"] = "operator";
2139
2304
  ScopeCategory2["EXPORT"] = "export";
2140
2305
  ScopeCategory2["ORG"] = "org";
@@ -2597,6 +2762,14 @@ var SCOPES = {
2597
2762
  description: "View analytics and reports"
2598
2763
  },
2599
2764
  // =========================================================================
2765
+ // ANONYMOUS FORM SUBMISSIONS (read-only: submissions are immutable)
2766
+ // =========================================================================
2767
+ "anonymous_submissions:read": {
2768
+ name: "anonymous_submissions:read",
2769
+ category: "anonymous_submissions" /* ANONYMOUS_SUBMISSIONS */,
2770
+ description: "View what anonymous visitors submitted on anonymous Forms"
2771
+ },
2772
+ // =========================================================================
2600
2773
  // EXPORT
2601
2774
  // =========================================================================
2602
2775
  "export:read": {
@@ -2879,7 +3052,6 @@ var BaseApiClient = class {
2879
3052
  enhancedAuthInProgress = null;
2880
3053
  orgAuthHandler;
2881
3054
  orgAuthInProgress = null;
2882
- actingMemberUuid;
2883
3055
  orgSession;
2884
3056
  /**
2885
3057
  * The org_uuid that issued the current org auth credential. Tracked so we can detect
@@ -2919,21 +3091,6 @@ var BaseApiClient = class {
2919
3091
  updateApiKey(newApiKey) {
2920
3092
  this.apiKey = newApiKey;
2921
3093
  }
2922
- /**
2923
- * Set the acting member UUID for member identity switching.
2924
- * When set, all API requests will include the X-Acting-Member header.
2925
- * The backend will validate that the authenticated account owns this member
2926
- * and use it as the effective identity for the request.
2927
- */
2928
- setActingMember(memberUuid) {
2929
- this.actingMemberUuid = memberUuid;
2930
- }
2931
- /**
2932
- * Get the current acting member UUID.
2933
- */
2934
- getActingMember() {
2935
- return this.actingMemberUuid;
2936
- }
2937
3094
  /**
2938
3095
  * Set the opaque org session credential for cross-domain requests.
2939
3096
  * Opaque gr_sess_ values use X-Org-Session. Legacy orgToken JWE values still
@@ -2971,9 +3128,6 @@ var BaseApiClient = class {
2971
3128
  headers.set("Authorization", `Bearer ${requestToken}`);
2972
3129
  }
2973
3130
  }
2974
- if (this.actingMemberUuid) {
2975
- headers.set("X-Acting-Member", this.actingMemberUuid);
2976
- }
2977
3131
  setOrgAuthHeader(headers, this.orgSession);
2978
3132
  const fullUrl = `${this.baseUrl}/api/v2/${endpoint}`;
2979
3133
  const response = await this.fetchFunction(fullUrl, {
@@ -3125,9 +3279,6 @@ ${formattedErrors}`, response.status);
3125
3279
  headers.set("Authorization", `Bearer ${requestToken}`);
3126
3280
  }
3127
3281
  }
3128
- if (this.actingMemberUuid) {
3129
- headers.set("X-Acting-Member", this.actingMemberUuid);
3130
- }
3131
3282
  setOrgAuthHeader(headers, this.orgSession);
3132
3283
  const response = await this.fetchFunction(`${this.baseUrl}/api/v2/${endpoint}`, {
3133
3284
  ...options,
@@ -3237,9 +3388,6 @@ ${formattedErrors}`, response.status);
3237
3388
  headers.set("Authorization", `Bearer ${requestToken}`);
3238
3389
  }
3239
3390
  }
3240
- if (this.actingMemberUuid) {
3241
- headers.set("X-Acting-Member", this.actingMemberUuid);
3242
- }
3243
3391
  setOrgAuthHeader(headers, this.orgSession);
3244
3392
  const fullUrl = `${this.baseUrl}/${path}`;
3245
3393
  const response = await this.fetchFunction(fullUrl, {
@@ -3335,6 +3483,299 @@ var AbilitiesApi = class extends BaseApiClient {
3335
3483
  }
3336
3484
  };
3337
3485
 
3486
+ // src/api/resource-workflows.ts
3487
+ function resourceWorkflowsPath(wid, ...segments) {
3488
+ const tail = segments.map((segment) => encodeURIComponent(String(segment))).join("/");
3489
+ const base = `w/${encodeURIComponent(wid)}/resource-workflows`;
3490
+ return tail ? `${base}/${tail}` : base;
3491
+ }
3492
+ var ResourceWorkflowsApi = class extends BaseApiClient {
3493
+ /** One Workflow's summary, for a viewer that can see it. */
3494
+ async getResourceWorkflow(wid, workflowUuid) {
3495
+ return this.fetch(resourceWorkflowsPath(wid, workflowUuid));
3496
+ }
3497
+ /**
3498
+ * One published revision.
3499
+ *
3500
+ * The response is a union: the owner (or a `full` grantee) receives the
3501
+ * complete `ResourceWorkflowGraphResponse`, while a bounded grantee receives
3502
+ * the `ResourceWorkflowDisclosureResponse` envelope. Branch on `publishedAt`
3503
+ * being present — never assume the full shape. A retained revision stays
3504
+ * readable here after a `stop_updates` revocation.
3505
+ */
3506
+ async getResourceWorkflowRevision(wid, workflowUuid, revisionUuid) {
3507
+ return this.fetch(
3508
+ resourceWorkflowsPath(wid, workflowUuid, "revisions", revisionUuid)
3509
+ );
3510
+ }
3511
+ /**
3512
+ * List published Workflows owned by or shared with this workspace.
3513
+ *
3514
+ * The Bundle draft editor reads `publishedRevisionUuid` from each summary to
3515
+ * pin a Workflow item; archived Workflows are excluded unless asked for.
3516
+ */
3517
+ async listResourceWorkflows(wid, params) {
3518
+ const query = new URLSearchParams();
3519
+ if (params?.page !== void 0) query.set("page", String(params.page));
3520
+ if (params?.pageSize !== void 0) query.set("pageSize", String(params.pageSize));
3521
+ if (params?.includeArchived !== void 0) {
3522
+ query.set("includeArchived", String(params.includeArchived));
3523
+ }
3524
+ const qs = query.toString();
3525
+ return this.fetch(
3526
+ `w/${encodeURIComponent(wid)}/resource-workflows${qs ? `?${qs}` : ""}`
3527
+ );
3528
+ }
3529
+ };
3530
+
3531
+ // src/api/bundles.ts
3532
+ function bundlesPath(wid, ...segments) {
3533
+ const tail = segments.map((segment) => encodeURIComponent(String(segment))).join("/");
3534
+ const base = `w/${encodeURIComponent(wid)}/bundles`;
3535
+ return tail ? `${base}/${tail}` : base;
3536
+ }
3537
+ function pageQuery(params) {
3538
+ const query = new URLSearchParams();
3539
+ if (params?.page !== void 0) query.set("page", String(params.page));
3540
+ if (params?.pageSize !== void 0) query.set("pageSize", String(params.pageSize));
3541
+ const qs = query.toString();
3542
+ return qs ? `?${qs}` : "";
3543
+ }
3544
+ var BundlesApi = class extends BaseApiClient {
3545
+ /** Official solution metadata, independent of the default workspace Library. */
3546
+ async getSolutionRelease(slug) {
3547
+ return this.fetch(`solutions/${encodeURIComponent(slug)}`);
3548
+ }
3549
+ /** Read an authorized Bundle by UUID, including official solutions hidden from discovery. */
3550
+ async getBundle(wid, bundleUuid) {
3551
+ return this.fetch(bundlesPath(wid, bundleUuid));
3552
+ }
3553
+ async updateBundle(wid, bundleUuid, data) {
3554
+ return this.fetch(
3555
+ `w/${encodeURIComponent(wid)}/bundles/${encodeURIComponent(bundleUuid)}`,
3556
+ {
3557
+ method: "PATCH",
3558
+ body: JSON.stringify(data)
3559
+ }
3560
+ );
3561
+ }
3562
+ async listBundleInstallations(wid, bundleUuid) {
3563
+ return this.fetch(
3564
+ `w/${encodeURIComponent(wid)}/bundles/${encodeURIComponent(bundleUuid)}/installations`
3565
+ );
3566
+ }
3567
+ /**
3568
+ * Bundles visible to this workspace through ownership, a live grant, or
3569
+ * an administrator of the owning organization.
3570
+ */
3571
+ async listBundles(wid, params) {
3572
+ return this.fetch(`${bundlesPath(wid)}${pageQuery(params)}`);
3573
+ }
3574
+ /**
3575
+ * This workspace's Workflows for the Bundle picker. `eligible` pins
3576
+ * `revisionUuid` (the active revision when published, else the newest
3577
+ * published one); `unpublished` has nothing to pin. `dependenciesChecked` is
3578
+ * false until a Bundle add has stored the revision's dependencies; that add
3579
+ * surfaces any refusal as a 409 `workflow_not_shareable`. Requires
3580
+ * `workflows:admin`.
3581
+ */
3582
+ async listBundleWorkflowCandidates(wid) {
3583
+ return this.fetch(bundlesPath(wid, "workflow-candidates"));
3584
+ }
3585
+ /** Create an empty Bundle owned by this workspace. */
3586
+ async createBundle(wid, data) {
3587
+ return this.fetch(bundlesPath(wid), {
3588
+ method: "POST",
3589
+ body: JSON.stringify(data)
3590
+ });
3591
+ }
3592
+ /**
3593
+ * The unpublished draft for the owning workspace. A grantee is refused with
3594
+ * 404: `version_detail` checks
3595
+ * `root.workspace_uuid != viewer.workspace_uuid` for the null version
3596
+ * (`lib/db/resources/bundles.py`), after the grantee-inclusive predicate has
3597
+ * already admitted them to the Bundle itself.
3598
+ *
3599
+ * After publication, the next draft contains a copy of the published items.
3600
+ * The owner receives it with 200; a grantee receives 404.
3601
+ */
3602
+ async getBundleDraft(wid, bundleUuid) {
3603
+ return this.fetch(bundlesPath(wid, bundleUuid, "draft"));
3604
+ }
3605
+ /** Replace the whole draft item list. 409 when `expectedGeneration` is stale. */
3606
+ async replaceBundleDraft(wid, bundleUuid, data) {
3607
+ return this.fetch(bundlesPath(wid, bundleUuid, "draft"), {
3608
+ method: "PUT",
3609
+ body: JSON.stringify(data)
3610
+ });
3611
+ }
3612
+ /** Cut a new immutable version from the draft. 409 when `expectedGeneration` is stale. */
3613
+ async publishBundle(wid, bundleUuid, data) {
3614
+ return this.fetch(bundlesPath(wid, bundleUuid, "publish"), {
3615
+ method: "POST",
3616
+ body: JSON.stringify(data)
3617
+ });
3618
+ }
3619
+ /** Published versions, newest first. */
3620
+ async listBundleVersions(wid, bundleUuid, params) {
3621
+ return this.fetch(
3622
+ `${bundlesPath(wid, bundleUuid, "versions")}${pageQuery(params)}`
3623
+ );
3624
+ }
3625
+ /** One published version, with its items, declared settings and open slots. */
3626
+ async getBundleVersion(wid, bundleUuid, version) {
3627
+ return this.fetch(bundlesPath(wid, bundleUuid, "versions", version));
3628
+ }
3629
+ /** Who this Bundle is currently granted to. */
3630
+ async listBundleGrants(wid, bundleUuid) {
3631
+ return this.fetch(bundlesPath(wid, bundleUuid, "grants"));
3632
+ }
3633
+ /**
3634
+ * Share throughout the publisher's organization with organization-admin authority.
3635
+ * Workspace-specific and global author grants are refused. Official public
3636
+ * solutions use the separate staff approval API.
3637
+ */
3638
+ async grantBundle(wid, bundleUuid, data) {
3639
+ return this.fetch(bundlesPath(wid, bundleUuid, "grants"), {
3640
+ method: "POST",
3641
+ body: JSON.stringify(data)
3642
+ });
3643
+ }
3644
+ /** Revoke one grant by id. */
3645
+ async revokeBundleGrant(wid, bundleUuid, grantId) {
3646
+ return this.fetch(bundlesPath(wid, bundleUuid, "grants", grantId), {
3647
+ method: "DELETE"
3648
+ });
3649
+ }
3650
+ };
3651
+
3652
+ // src/api/installations.ts
3653
+ function installationsPath(wid, ...segments) {
3654
+ const tail = segments.map((segment) => encodeURIComponent(String(segment))).join("/");
3655
+ const base = `w/${encodeURIComponent(wid)}/installations`;
3656
+ return tail ? `${base}/${tail}` : base;
3657
+ }
3658
+ var InstallationsApi = class extends BaseApiClient {
3659
+ /** Inspect one published release and its selected example dependencies. */
3660
+ async preflightBundleInstallation(wid, bundleUuid, data) {
3661
+ return this.fetch(
3662
+ `w/${encodeURIComponent(wid)}/bundles/${encodeURIComponent(bundleUuid)}/installation-preflight`,
3663
+ { method: "POST", body: JSON.stringify(data) }
3664
+ );
3665
+ }
3666
+ /**
3667
+ * Install a published Bundle version into this workspace.
3668
+ *
3669
+ * A key in `bindings` that this version has no slot or Form item for is
3670
+ * refused; a **missing** required slot is not.
3671
+ */
3672
+ async installBundle(wid, bundleUuid, data) {
3673
+ return this.fetch(
3674
+ `w/${encodeURIComponent(wid)}/bundles/${encodeURIComponent(bundleUuid)}/installations`,
3675
+ { method: "POST", body: JSON.stringify(data) }
3676
+ );
3677
+ }
3678
+ /** Every installation this workspace holds, oldest first. */
3679
+ async listInstallations(wid) {
3680
+ return this.fetch(installationsPath(wid));
3681
+ }
3682
+ async getInstallation(wid, installationUuid) {
3683
+ return this.fetch(installationsPath(wid, installationUuid));
3684
+ }
3685
+ /**
3686
+ * Open slots, bindings whose target no longer resolves, Forms that drifted
3687
+ * from their recipe, missing or changed Workflow dependencies, and archived
3688
+ * items. Computed on read, never stored.
3689
+ */
3690
+ async getInstallationReadiness(wid, installationUuid) {
3691
+ return this.fetch(
3692
+ installationsPath(wid, installationUuid, "readiness")
3693
+ );
3694
+ }
3695
+ /**
3696
+ * What moving to version `to` would change: per-item differences, the slots
3697
+ * that would still be unbound, and the release notes of every version in
3698
+ * between. `to` must be newer than the version the installation holds.
3699
+ */
3700
+ async previewInstallationUpgrade(wid, installationUuid, to) {
3701
+ const query = new URLSearchParams({ to: String(to) });
3702
+ return this.fetch(
3703
+ `${installationsPath(wid, installationUuid, "upgrade-preview")}?${query.toString()}`
3704
+ );
3705
+ }
3706
+ /**
3707
+ * Move the installation onto a newer published version. The version it
3708
+ * already holds, and any earlier one, are refused with 409.
3709
+ */
3710
+ async upgradeInstallation(wid, installationUuid, data) {
3711
+ return this.fetch(installationsPath(wid, installationUuid, "upgrade"), {
3712
+ method: "POST",
3713
+ body: JSON.stringify(data)
3714
+ });
3715
+ }
3716
+ /** Recreate one deleted Form from the version already installed. */
3717
+ async restoreInstallationForm(wid, installationUuid, data) {
3718
+ return this.fetch(
3719
+ installationsPath(wid, installationUuid, "restore-form"),
3720
+ {
3721
+ method: "POST",
3722
+ body: JSON.stringify(data)
3723
+ }
3724
+ );
3725
+ }
3726
+ /** Recreate missing dependency resources for an installed Workflow. */
3727
+ async restoreInstallationWorkflowResources(wid, installationUuid, data) {
3728
+ return this.fetch(
3729
+ installationsPath(wid, installationUuid, "restore-workflow-resources"),
3730
+ { method: "POST", body: JSON.stringify(data) }
3731
+ );
3732
+ }
3733
+ /** `pinned` holds the installed version; `auto` follows each publication. */
3734
+ async setInstallationPolicy(wid, installationUuid, data) {
3735
+ return this.fetch(installationsPath(wid, installationUuid), {
3736
+ method: "PATCH",
3737
+ body: JSON.stringify(data)
3738
+ });
3739
+ }
3740
+ /** Stop future Bundle updates while keeping the workspace's installed content. */
3741
+ async unsubscribeInstallation(wid, installationUuid) {
3742
+ return this.fetch(
3743
+ installationsPath(wid, installationUuid, "unsubscribe"),
3744
+ { method: "POST", body: JSON.stringify({}) }
3745
+ );
3746
+ }
3747
+ /** Fill open slots. A slot that already carries a target is refused with 409. */
3748
+ async bindInstallationSlots(wid, installationUuid, data) {
3749
+ return this.fetch(
3750
+ installationsPath(wid, installationUuid, "bindings"),
3751
+ { method: "POST", body: JSON.stringify(data) }
3752
+ );
3753
+ }
3754
+ /**
3755
+ * Settle an installation left `pending` by an interrupted operation.
3756
+ *
3757
+ * The body is empty and required: a bodyless cookie-auth POST is forgeable
3758
+ * by a cross-site form, so the route demands JSON.
3759
+ */
3760
+ async reconcileInstallation(wid, installationUuid) {
3761
+ return this.fetch(
3762
+ installationsPath(wid, installationUuid, "reconcile"),
3763
+ { method: "POST", body: JSON.stringify({}) }
3764
+ );
3765
+ }
3766
+ /**
3767
+ * The settings a compiled theme declares, for labelling a Site item's slots
3768
+ * before any Site exists. 404 for an unknown slug and for `source-site`,
3769
+ * whose schema is a per-workspace build artifact rather than a catalog one.
3770
+ * Requires `sites:read`; no Bundle installation authority is needed.
3771
+ */
3772
+ async getThemeSettingsSchema(wid, slug) {
3773
+ return this.fetch(
3774
+ `w/${encodeURIComponent(wid)}/themes/${encodeURIComponent(slug)}/settings-schema`
3775
+ );
3776
+ }
3777
+ };
3778
+
3338
3779
  // src/api/access-grants.ts
3339
3780
  var AccessGrantsApi = class extends BaseApiClient {
3340
3781
  /** List access grants received by the current member. */
@@ -3467,7 +3908,6 @@ var AgentsApi = class extends BaseApiClient {
3467
3908
  if (options.search) params.append("search", options.search);
3468
3909
  if (options.includeArchived)
3469
3910
  params.append("includeArchived", options.includeArchived.toString());
3470
- if (options.owner) params.append("owner", options.owner);
3471
3911
  return this.fetch(
3472
3912
  `w/${wid}/agents${params.toString() ? `?${params.toString()}` : ""}`
3473
3913
  );
@@ -3523,6 +3963,18 @@ var AIModelsApi = class extends BaseApiClient {
3523
3963
  const url = queryString ? `ai-models/chat?${queryString}` : "ai-models/chat";
3524
3964
  return this.fetch(url);
3525
3965
  }
3966
+ /**
3967
+ * Get the models a member may pick for the Workspace Manager, in display
3968
+ * order. Only models this deployment can serve are listed.
3969
+ *
3970
+ * `tokenMultiplier` is each model's input + output price per token relative
3971
+ * to `baselineModelId`; `defaultModelId` is what the Manager runs with no
3972
+ * pick. Send a pick on a Manager chat as `AppContext.managerModel` /
3973
+ * `managerReasoningEffort`.
3974
+ */
3975
+ async getManagerModels() {
3976
+ return this.fetch("ai-models/manager");
3977
+ }
3526
3978
  /**
3527
3979
  * Get available realtime AI models
3528
3980
  */
@@ -3974,6 +4426,19 @@ var AuthApi = class extends BaseApiClient {
3974
4426
  body: JSON.stringify(request)
3975
4427
  });
3976
4428
  }
4429
+ /**
4430
+ * Mint a single-use, account-bound realtime login token (`gr_wst_`) with
4431
+ * this client's credential. Call once per realtime connect attempt; the
4432
+ * token is spent on first use and expires in seconds. Only the full browser
4433
+ * session may mint one — an API key is refused.
4434
+ */
4435
+ async createRealtimeLoginToken() {
4436
+ return this.fetch("auth/realtime/ws-token", {
4437
+ method: "POST",
4438
+ // The route requires a JSON body (its CSRF barrier); it reads nothing from it.
4439
+ body: JSON.stringify({})
4440
+ });
4441
+ }
3977
4442
  /** Get the organization and workspace mapping for a custom domain. */
3978
4443
  async getDomainMapping(customDomain) {
3979
4444
  return this.fetch(`s/mapping/${customDomain}`);
@@ -4633,6 +5098,26 @@ var ChatsApi = class extends BaseApiClient {
4633
5098
  async getChat(wid, id) {
4634
5099
  return this.fetch(`w/${wid}/chats/${id}`);
4635
5100
  }
5101
+ /**
5102
+ * Get a single chat by UUID.
5103
+ *
5104
+ * The uuid-addressed twin of `getChat`: same access check (own chat,
5105
+ * otherwise `chats:read`), same body; a chat the caller may not read is a
5106
+ * 404. Activity events and org webhooks name a chat by `uuid` only.
5107
+ */
5108
+ async getChatByUuid(wid, uuid) {
5109
+ return this.fetch(`w/${wid}/chats/by-uuid/${uuid}`);
5110
+ }
5111
+ async saveChatBrowserStorage(wid, chatId) {
5112
+ await this.fetchRaw(`w/${wid}/chats/${chatId}/browser/storage/save`, {
5113
+ method: "POST",
5114
+ keepalive: true,
5115
+ body: JSON.stringify({})
5116
+ });
5117
+ }
5118
+ async clearChatBrowserStorage(wid, chatId) {
5119
+ await this.fetchRaw(`w/${wid}/chats/${chatId}/browser/storage`, { method: "DELETE" });
5120
+ }
4636
5121
  /**
4637
5122
  * Get a short-lived, interactive AgentCore browser view for this Chat.
4638
5123
  *
@@ -5239,10 +5724,18 @@ var DashboardsApi = class extends BaseApiClient {
5239
5724
  `w/${wid}/dashboards/stats/channels${query ? `?${query}` : ""}`
5240
5725
  );
5241
5726
  }
5242
- /** Assignment status rollup per root workflow. */
5243
- async getDashboardWorkflowAssignmentStats(wid) {
5727
+ /**
5728
+ * Assignment status rollup per root workflow.
5729
+ *
5730
+ * `hours` windows the rollup to runs STARTED within the last N hours.
5731
+ * Omit it (or pass null) for the all-time rollup.
5732
+ */
5733
+ async getDashboardWorkflowAssignmentStats(wid, options) {
5734
+ const params = new URLSearchParams();
5735
+ if (options?.hours != null) params.append("hours", options.hours.toString());
5736
+ const query = params.toString();
5244
5737
  return this.fetch(
5245
- `w/${wid}/dashboards/stats/workflow-assignments`
5738
+ `w/${wid}/dashboards/stats/workflow-assignments${query ? `?${query}` : ""}`
5246
5739
  );
5247
5740
  }
5248
5741
  /**
@@ -5384,6 +5877,26 @@ var DataTypesApi = class extends BaseApiClient {
5384
5877
  `w/${wid}/data-types/${dataTypeId}/records${params?.toString() ? `?${params.toString()}` : ""}`
5385
5878
  );
5386
5879
  }
5880
+ /**
5881
+ * List an anonymous Form's submissions, newest first. Requires
5882
+ * `anonymous_submissions:read`. Submissions are immutable: there is no
5883
+ * update or delete method.
5884
+ */
5885
+ async listAnonymousFormSubmissions(wid, dataTypeId, options) {
5886
+ const params = new URLSearchParams();
5887
+ if (options?.page) params.append("page", options.page.toString());
5888
+ if (options?.pageSize) params.append("page_size", options.pageSize.toString());
5889
+ const qs = params.toString();
5890
+ return this.fetch(
5891
+ `w/${wid}/data-types/${dataTypeId}/anonymous-submissions${qs ? `?${qs}` : ""}`
5892
+ );
5893
+ }
5894
+ /** Get one anonymous Form submission by its uuid. Requires `anonymous_submissions:read`. */
5895
+ async getAnonymousFormSubmission(wid, dataTypeId, submissionUuid) {
5896
+ return this.fetch(
5897
+ `w/${wid}/data-types/${dataTypeId}/anonymous-submissions/${encodeURIComponent(submissionUuid)}`
5898
+ );
5899
+ }
5387
5900
  // Data-record filter APIs (saved Query IR predicates per form)
5388
5901
  /** List saved data-record filters, optionally scoped to one DataType. */
5389
5902
  async getDataRecordFilters(wid, options) {
@@ -5426,6 +5939,15 @@ var DataTypesApi = class extends BaseApiClient {
5426
5939
  async getDataRecord(wid, recordId) {
5427
5940
  return this.fetch(`w/${wid}/data-types/records/${recordId}`);
5428
5941
  }
5942
+ /**
5943
+ * Get a single data record by UUID.
5944
+ *
5945
+ * The uuid-addressed twin of `getDataRecord`: same access check, same body.
5946
+ * Activity events and org webhooks name a record by `uuid` only.
5947
+ */
5948
+ async getDataRecordByUuid(wid, uuid) {
5949
+ return this.fetch(`w/${wid}/data-types/records/by-uuid/${uuid}`);
5950
+ }
5429
5951
  /** Create a new data record under the specified data type. */
5430
5952
  async createDataRecord(wid, dataTypeId, record) {
5431
5953
  return this.fetch(`w/${wid}/data-types/${dataTypeId}/records`, {
@@ -5970,20 +6492,6 @@ var EventsApi = class extends BaseApiClient {
5970
6492
  body: JSON.stringify(request)
5971
6493
  });
5972
6494
  }
5973
- /**
5974
- * Preview which target-audience roles lack Workflow USE for the Workflows a
5975
- * draft Routine would start. Non-persisting, non-blocking authoring assist —
5976
- * returns warnings only (role/Workflow names + IDs; no Member data).
5977
- */
5978
- async previewRoutineWorkflowAccess(wid, request) {
5979
- return this.fetch(
5980
- `w/${wid}/routines/preview-workflow-access`,
5981
- {
5982
- method: "POST",
5983
- body: JSON.stringify(request)
5984
- }
5985
- );
5986
- }
5987
6495
  /**
5988
6496
  * Preview what would stop a draft Routine placing its scheduled outbound
5989
6497
  * calls — the Member voice opt-out, a missing member phone, or a
@@ -6682,6 +7190,19 @@ var FilesApi = class extends BaseApiClient {
6682
7190
  if (folderId != null) params.append("folderId", String(folderId));
6683
7191
  return this.fetch(`w/${wid}/files/resolve-path?${params.toString()}`);
6684
7192
  }
7193
+ /**
7194
+ * Download one file's bytes via GET ``.../files/{id}/contents/{filename}``.
7195
+ *
7196
+ * Uses this client's base URL (FastAPI on the app, same-origin ``/api/v2``
7197
+ * on scoped site sessions) so the payload does not transit the Next.js
7198
+ * ``/api/w/.../files/...`` Lambda proxy, which 500s above the 6MB sync cap.
7199
+ */
7200
+ async downloadFileContents(wid, id, filename) {
7201
+ const response = await this.fetchRaw(
7202
+ `w/${wid}/files/${id}/contents/${encodeURIComponent(filename)}`
7203
+ );
7204
+ return response.blob();
7205
+ }
6685
7206
  /**
6686
7207
  * Download the given files + folders (folders recursively) as a single ZIP.
6687
7208
  * Returns the raw archive bytes for the caller to save.
@@ -7433,7 +7954,21 @@ function throwMemberImportError(errorBody, fallback) {
7433
7954
  }
7434
7955
  throw new Error(typeof detail === "string" ? detail : fallback);
7435
7956
  }
7957
+ function memberImportUpload(file, roleId, options) {
7958
+ const body = new FormData();
7959
+ const filename = "name" in file && typeof file.name === "string" ? file.name : "members.csv";
7960
+ body.append("file", file, filename);
7961
+ if (options?.resolutions !== void 0) {
7962
+ body.append("resolutions", JSON.stringify(options.resolutions));
7963
+ }
7964
+ const params = new URLSearchParams({ new_member_role_id: String(roleId) });
7965
+ if (options?.autoPromoteUniqueContacts !== void 0) {
7966
+ params.set("auto_promote_unique_contacts", String(options.autoPromoteUniqueContacts));
7967
+ }
7968
+ return { body, params };
7969
+ }
7436
7970
  var MembersApi = class extends BaseApiClient {
7971
+ memberImportPlans = /* @__PURE__ */ new WeakMap();
7437
7972
  /** Get the currently authenticated member for a workspace. */
7438
7973
  async getCurrentMember(wid) {
7439
7974
  return this.fetch(`w/${wid}/me`);
@@ -7486,33 +8021,6 @@ var MembersApi = class extends BaseApiClient {
7486
8021
  `w/${wid}/me/records?${params.toString()}`
7487
8022
  );
7488
8023
  }
7489
- /**
7490
- * Get all members owned by the current member in this workspace.
7491
- * Returns the authenticated member plus any members they own (via owner_id).
7492
- * Used by the member switcher to show available identities.
7493
- */
7494
- async getOwnedMembers(wid) {
7495
- return this.fetch(`w/${wid}/members/owned`);
7496
- }
7497
- /**
7498
- * Switch to a different member identity owned by the current member.
7499
- * Sets the actingAsMemberUuid cookie for subsequent requests.
7500
- * Uses UUID (not ID) to prevent cross-workspace identity confusion.
7501
- */
7502
- async switchMember(wid, memberUuid) {
7503
- return this.fetch(`w/${wid}/members/switch`, {
7504
- method: "POST",
7505
- body: JSON.stringify({ memberUuid })
7506
- });
7507
- }
7508
- /**
7509
- * Clear the member switch and return to the authenticated member.
7510
- */
7511
- async clearMemberSwitch(wid) {
7512
- return this.fetch(`w/${wid}/members/switch`, {
7513
- method: "DELETE"
7514
- });
7515
- }
7516
8024
  /** Update the currently authenticated member's profile. */
7517
8025
  async updateCurrentMember(wid, member) {
7518
8026
  return this.fetch(`w/${wid}/me`, {
@@ -7552,6 +8060,16 @@ var MembersApi = class extends BaseApiClient {
7552
8060
  async getWorkspaceMember(wid, memberId) {
7553
8061
  return this.fetch(`w/${wid}/members/${memberId}`);
7554
8062
  }
8063
+ /**
8064
+ * Get a single workspace member by UUID.
8065
+ *
8066
+ * The uuid-addressed twin of `getWorkspaceMember`: same access check (self,
8067
+ * otherwise `members:read`), same body. Activity events and org webhooks
8068
+ * name a member by `uuid` only.
8069
+ */
8070
+ async getMemberByUuid(wid, uuid) {
8071
+ return this.fetch(`w/${wid}/members/by-uuid/${uuid}`);
8072
+ }
7555
8073
  /**
7556
8074
  * Get one member of an org's workspace, under `org:read`.
7557
8075
  *
@@ -7603,6 +8121,53 @@ var MembersApi = class extends BaseApiClient {
7603
8121
  method: "POST"
7604
8122
  });
7605
8123
  }
8124
+ /**
8125
+ * Update a workspace member addressed by its external id.
8126
+ *
8127
+ * The external-id twin of `updateMember`: for an integrator that keys on its
8128
+ * own `externalId` and never stores our numeric member id. Same authorization
8129
+ * (`members:write`) and same body as `updateMember`.
8130
+ */
8131
+ async updateMemberByExternalId(wid, externalId, data) {
8132
+ return this.fetch(
8133
+ `w/${wid}/members/by-external-id/${encodeURIComponent(externalId)}`,
8134
+ {
8135
+ method: "PUT",
8136
+ body: JSON.stringify(data)
8137
+ }
8138
+ );
8139
+ }
8140
+ /**
8141
+ * Archive a workspace member addressed by its external id.
8142
+ *
8143
+ * The external-id twin of `archiveMember`; same authorization
8144
+ * (`members:write` + `members:admin`) and same body.
8145
+ */
8146
+ async archiveMemberByExternalId(wid, externalId) {
8147
+ return this.fetch(
8148
+ `w/${wid}/members/by-external-id/${encodeURIComponent(externalId)}/archive`,
8149
+ {
8150
+ method: "POST",
8151
+ // Required empty JSON body is the route's CSRF barrier (GRA-6284).
8152
+ body: JSON.stringify({})
8153
+ }
8154
+ );
8155
+ }
8156
+ /**
8157
+ * Unarchive a workspace member addressed by its external id.
8158
+ *
8159
+ * The external-id twin of `unarchiveMember`; same authorization and body.
8160
+ */
8161
+ async unarchiveMemberByExternalId(wid, externalId) {
8162
+ return this.fetch(
8163
+ `w/${wid}/members/by-external-id/${encodeURIComponent(externalId)}/unarchive`,
8164
+ {
8165
+ method: "POST",
8166
+ // Required empty JSON body is the route's CSRF barrier (GRA-6284).
8167
+ body: JSON.stringify({})
8168
+ }
8169
+ );
8170
+ }
7606
8171
  /**
7607
8172
  * Send the member an SMS asking them to confirm their phone number. When they
7608
8173
  * reply, a trusted phone auth binding is created so they can use SMS as
@@ -7744,16 +8309,13 @@ var MembersApi = class extends BaseApiClient {
7744
8309
  * operator can decide whether to skip or explicitly overwrite before
7745
8310
  * committing. Requires MEMBERS_ADMIN and is bulk-PHI audited server-side.
7746
8311
  */
7747
- async previewImportMembers(wid, file, newMemberRoleId) {
7748
- const formData = new FormData();
7749
- formData.append("file", file);
7750
- const params = new URLSearchParams();
7751
- params.append("new_member_role_id", newMemberRoleId.toString());
8312
+ async previewImportMembers(wid, file, newMemberRoleId, options) {
8313
+ const { body, params } = memberImportUpload(file, newMemberRoleId, options);
7752
8314
  const response = await this.fetchRaw(
7753
8315
  `w/${wid}/members/import/preview?${params.toString()}`,
7754
8316
  {
7755
8317
  method: "POST",
7756
- body: formData
8318
+ body
7757
8319
  },
7758
8320
  [400, 413]
7759
8321
  );
@@ -7761,7 +8323,19 @@ var MembersApi = class extends BaseApiClient {
7761
8323
  const error = await response.json().catch(() => ({}));
7762
8324
  throwMemberImportError(error, "Import preview failed");
7763
8325
  }
7764
- return response.json();
8326
+ const preview = await response.json();
8327
+ if (preview.previewPlanToken) {
8328
+ this.memberImportPlans.set(file, {
8329
+ wid,
8330
+ role: newMemberRoleId,
8331
+ autoPromote: options?.autoPromoteUniqueContacts ?? true,
8332
+ token: preview.previewPlanToken,
8333
+ cachedAt: Date.now()
8334
+ });
8335
+ } else {
8336
+ this.memberImportPlans.delete(file);
8337
+ }
8338
+ return preview;
7765
8339
  }
7766
8340
  /**
7767
8341
  * Import members from a CSV file, streaming progress updates via callback.
@@ -7771,10 +8345,11 @@ var MembersApi = class extends BaseApiClient {
7771
8345
  * Send 'overwrite_identity_fields' only after the operator confirms a preview.
7772
8346
  */
7773
8347
  async importMembers(wid, file, newMemberRoleId, onProgress, options) {
7774
- const formData = new FormData();
7775
- formData.append("file", file);
7776
- const params = new URLSearchParams();
7777
- params.append("new_member_role_id", newMemberRoleId.toString());
8348
+ const { body, params } = memberImportUpload(file, newMemberRoleId, options);
8349
+ const cachedPlan = this.memberImportPlans.get(file);
8350
+ const autoPromote = options?.autoPromoteUniqueContacts ?? true;
8351
+ const previewPlanToken = options?.previewPlanToken ?? (cachedPlan?.wid === wid && cachedPlan.role === newMemberRoleId && cachedPlan.autoPromote === autoPromote && Date.now() - cachedPlan.cachedAt < 55 * 60 * 1e3 ? cachedPlan.token : (await this.previewImportMembers(wid, file, newMemberRoleId, options)).previewPlanToken);
8352
+ if (previewPlanToken) body.append("previewPlanToken", previewPlanToken);
7778
8353
  if (options?.identityConflictPolicy) {
7779
8354
  params.append("identity_conflict_policy", options.identityConflictPolicy);
7780
8355
  }
@@ -7782,7 +8357,7 @@ var MembersApi = class extends BaseApiClient {
7782
8357
  `w/${wid}/members/import?${params.toString()}`,
7783
8358
  {
7784
8359
  method: "POST",
7785
- body: formData
8360
+ body
7786
8361
  },
7787
8362
  [400, 413]
7788
8363
  );
@@ -7790,34 +8365,48 @@ var MembersApi = class extends BaseApiClient {
7790
8365
  const error = await response.json().catch(() => ({}));
7791
8366
  throwMemberImportError(error, "Import failed");
7792
8367
  }
7793
- if (onProgress && response.body) {
7794
- const reader = response.body.getReader();
7795
- const decoder = new TextDecoder();
7796
- let buffer = "";
8368
+ if (!response.body) throw new Error("Member import response has no progress stream");
8369
+ const reader = response.body.getReader();
8370
+ const decoder = new TextDecoder();
8371
+ let buffer = "";
8372
+ let result;
8373
+ let hadError = false;
8374
+ const consume = (line) => {
8375
+ if (!line.trim()) return;
8376
+ let event;
8377
+ try {
8378
+ event = JSON.parse(line);
8379
+ } catch {
8380
+ throw new Error("Invalid member import progress event");
8381
+ }
8382
+ if (event.type === "complete") result = event;
8383
+ if (event.type === "error") hadError = true;
8384
+ onProgress?.(event);
8385
+ };
8386
+ try {
7797
8387
  while (true) {
7798
8388
  const { done, value } = await reader.read();
7799
8389
  if (done) break;
7800
8390
  buffer += decoder.decode(value, { stream: true });
7801
8391
  const lines = buffer.split("\n");
7802
8392
  buffer = lines.pop() ?? "";
7803
- for (const line of lines) {
7804
- const trimmed = line.trim();
7805
- if (!trimmed) continue;
7806
- try {
7807
- onProgress(JSON.parse(trimmed));
7808
- } catch {
7809
- }
7810
- }
7811
- }
7812
- const tail = buffer.trim();
7813
- if (tail) {
7814
- try {
7815
- onProgress(JSON.parse(tail));
7816
- } catch {
7817
- }
8393
+ for (const line of lines) consume(line);
7818
8394
  }
8395
+ buffer += decoder.decode();
8396
+ consume(buffer);
8397
+ } catch (error) {
8398
+ await reader.cancel().catch(() => void 0);
8399
+ throw error;
8400
+ } finally {
8401
+ reader.releaseLock();
8402
+ }
8403
+ if (!result) {
8404
+ throw new Error("Member import ended before completion; inspect members before retrying");
7819
8405
  }
7820
- return { success: true };
8406
+ return {
8407
+ success: !hadError && (result.failed ?? 0) === 0 && (result.conflicted ?? 0) === 0,
8408
+ result
8409
+ };
7821
8410
  }
7822
8411
  /** Export members as a downloadable file with selected fields and data types. */
7823
8412
  async exportMembers(wid, selectedFields, selectedDataTypes, memberType) {
@@ -8473,6 +9062,21 @@ var MondayIntegrationApi = class extends BaseApiClient {
8473
9062
  method: "POST"
8474
9063
  });
8475
9064
  }
9065
+ /**
9066
+ * Managed-rule execution history for this connection (`GET /sync/logs`):
9067
+ * the connection's managed EventRule executions, newest first, with the
9068
+ * shared cursor pagination. Requires `apps:read`; works while the
9069
+ * connection is parked for re-authorization.
9070
+ */
9071
+ async getMondaySyncLogs(wid, params) {
9072
+ const query = new URLSearchParams();
9073
+ if (params?.pageSize) query.set("pageSize", String(params.pageSize));
9074
+ if (params?.cursor) query.set("cursor", params.cursor);
9075
+ const qs = query.toString() ? `?${query.toString()}` : "";
9076
+ return this.fetch(
9077
+ `w/${wid}/app-connections/monday/sync/logs${qs}`
9078
+ );
9079
+ }
8476
9080
  };
8477
9081
 
8478
9082
  // src/api/intervention-requests.ts
@@ -8630,6 +9234,10 @@ var OrgApi = class extends BaseApiClient {
8630
9234
  async getCurrentOrgMember(orgIdOrUuid) {
8631
9235
  return this.fetch(`o/${orgIdOrUuid}/me`);
8632
9236
  }
9237
+ /** Bundles this organization owns — read-only catalog for `/o/{uuid}/library`. */
9238
+ async listOrgBundles(orgIdOrUuid) {
9239
+ return this.fetch(`o/${orgIdOrUuid}/bundles`);
9240
+ }
8633
9241
  /**
8634
9242
  * Update the settings an org admin owns: name, slug and contact details.
8635
9243
  *
@@ -8671,6 +9279,12 @@ var OrgApi = class extends BaseApiClient {
8671
9279
  * `subscriptionId` is the org-scoped row — never pick the customer's
8672
9280
  * newest subscription from the list endpoint. One customer can bill many
8673
9281
  * organizations.
9282
+ *
9283
+ * Returns the generated `OrgBillingCustomerResponse` — the contract the
9284
+ * route actually emits, `audiences` included. The hand-written mirror that
9285
+ * used to live here listed four fields and silently dropped `audiences`,
9286
+ * so callers could not see the commercial roles they hold (GRA-8792).
9287
+ * Regenerate the shape (`yarn generate:types`) rather than re-declaring it.
8674
9288
  */
8675
9289
  async getOrgBillingCustomer(orgIdOrUuid) {
8676
9290
  return this.fetch(`o/${orgIdOrUuid}/billing-customer`);
@@ -8707,7 +9321,10 @@ var OrgApi = class extends BaseApiClient {
8707
9321
  return this.fetch(`o/${orgUuid}/members/check/${accountUuid}`);
8708
9322
  }
8709
9323
  /**
8710
- * Update an organization member's role.
9324
+ * Update an organization member's role and/or org-level display name.
9325
+ *
9326
+ * `name` is the org's own label for the member (the OrgMember row and the
9327
+ * linked OrgAccount); it does not change the person's global Account name.
8711
9328
  */
8712
9329
  async updateOrganizationMember(orgIdOrUuid, memberId, data) {
8713
9330
  return this.fetch(`o/${orgIdOrUuid}/members/${memberId}`, {
@@ -9082,12 +9699,6 @@ var OrgApi = class extends BaseApiClient {
9082
9699
  // ============================================================================
9083
9700
  // Organization A2P Brand Registration API
9084
9701
  // ============================================================================
9085
- /**
9086
- * Get the org's A2P brand registration status.
9087
- */
9088
- async getA2PStatus(orgUuid) {
9089
- return this.fetch(`o/${orgUuid}/phone-numbers/a2p/status`);
9090
- }
9091
9702
  /** Return fixed phone-number and outbound-messaging prices. */
9092
9703
  async getPhoneBillingPricing(orgUuid) {
9093
9704
  return this.fetch(`o/${orgUuid}/phone-numbers/pricing`);
@@ -9096,11 +9707,30 @@ var OrgApi = class extends BaseApiClient {
9096
9707
  * Start A2P brand registration under a legal entity. `legalEntityUuid`
9097
9708
  * is required — brands register per legal entity (Customer Profile);
9098
9709
  * there is no primary-entity fallback.
9710
+ *
9711
+ * `soleProprietorMobile` is the proprietor's own mobile number, the one the
9712
+ * carrier sends the A2P one-time-password verification to. Required when the
9713
+ * entity's registration shape is a sole proprietorship (see
9714
+ * `LegalEntitySummaryResponse.requiredBrandType`); ignored otherwise.
9715
+ *
9716
+ * Three constraints belong to the customer, so the caller must state them:
9717
+ * it has to be a US or Canadian **mobile**, it cannot be a number acquired
9718
+ * from a CPaaS provider (so never one we provisioned — the carrier rejects
9719
+ * it), and the carrier allows it a lifetime maximum of three uses across all
9720
+ * A2P brand registrations, counting those made through other vendors.
9721
+ *
9722
+ * It is forwarded to the registration workflow to reach the carrier as an
9723
+ * EndUser attribute and is never stored on our side.
9099
9724
  */
9100
- async startA2PRegistration(orgUuid, legalEntityUuid, brandName, brandUuid = null) {
9725
+ async startA2PRegistration(orgUuid, legalEntityUuid, brandName, brandUuid = null, soleProprietorMobile = null) {
9101
9726
  return this.fetch(`o/${orgUuid}/phone-numbers/a2p/start`, {
9102
9727
  method: "POST",
9103
- body: JSON.stringify({ legalEntityUuid, brandName, brandUuid })
9728
+ body: JSON.stringify({
9729
+ legalEntityUuid,
9730
+ brandName,
9731
+ brandUuid,
9732
+ soleProprietorMobile
9733
+ })
9104
9734
  });
9105
9735
  }
9106
9736
  /**
@@ -9128,6 +9758,25 @@ var OrgApi = class extends BaseApiClient {
9128
9758
  }
9129
9759
  );
9130
9760
  }
9761
+ /**
9762
+ * Which legal entity's voice trust products (CNAM, SHAKEN/STIR, Voice
9763
+ * Integrity) each of the org's numbers carries, read live from Twilio.
9764
+ */
9765
+ async getPhoneVoiceTrust(orgUuid) {
9766
+ return this.fetch(`o/${orgUuid}/phone-numbers/voice-trust`);
9767
+ }
9768
+ /**
9769
+ * Put a number on a legal entity's Customer Profile and approved voice
9770
+ * trust products, taking it off any other legal entity's first. The
9771
+ * entity's business profile must be approved (400 otherwise).
9772
+ */
9773
+ async attachPhoneVoiceTrust(orgUuid, providerPhoneUuid, legalEntityUuid) {
9774
+ const body = { providerPhoneUuid, legalEntityUuid };
9775
+ return this.fetch(`o/${orgUuid}/phone-numbers/voice-trust/attach`, {
9776
+ method: "POST",
9777
+ body: JSON.stringify(body)
9778
+ });
9779
+ }
9131
9780
  // ============================================================================
9132
9781
  // Organization Business Profile API (Twilio Trust Hub Secondary CP)
9133
9782
  // ============================================================================
@@ -9297,6 +9946,16 @@ var OrgApi = class extends BaseApiClient {
9297
9946
  }
9298
9947
  );
9299
9948
  }
9949
+ /**
9950
+ * Resubmit a campaign the carrier rejected, with the brand's current
9951
+ * campaign copy. Edits the campaign in place, so no second vetting fee.
9952
+ */
9953
+ async resubmitA2PCampaign(orgUuid, brandUuid) {
9954
+ return this.fetch(
9955
+ `o/${orgUuid}/a2p-brands/${brandUuid}/resubmit-campaign`,
9956
+ { method: "POST" }
9957
+ );
9958
+ }
9300
9959
  /**
9301
9960
  * Published Sites across the org's workspaces that can be linked as this
9302
9961
  * brand's enrollment (opt-in) surface. Org-authorized, so it works even when
@@ -9309,7 +9968,7 @@ var OrgApi = class extends BaseApiClient {
9309
9968
  }
9310
9969
  /**
9311
9970
  * Link the brand to a published enrollment Site (sets `site_uuid`). Returns
9312
- * the refreshed campaign config so the editor's link state updates inline.
9971
+ * the refreshed campaign config.
9313
9972
  */
9314
9973
  async linkA2PEnrollmentSite(orgUuid, brandUuid, data) {
9315
9974
  return this.fetch(
@@ -9322,9 +9981,9 @@ var OrgApi = class extends BaseApiClient {
9322
9981
  }
9323
9982
  /**
9324
9983
  * Provision (or reuse) a patient-enrollment Site for the brand and link it —
9325
- * the one-click path behind the SMS Consent tab. `workspaceUuid` is required
9326
- * only when the org has multiple workspaces. Returns the refreshed campaign
9327
- * config so the editor's link state updates inline. Idempotent.
9984
+ * the explicit counterpart to the automatic provisioning at brand
9985
+ * registration. `workspaceUuid` is required only when the org has multiple
9986
+ * workspaces. Returns the refreshed campaign config. Idempotent.
9328
9987
  */
9329
9988
  async provisionA2PEnrollmentSite(orgUuid, brandUuid, data = {}) {
9330
9989
  return this.fetch(
@@ -9343,34 +10002,42 @@ var OrgApi = class extends BaseApiClient {
9343
10002
  );
9344
10003
  }
9345
10004
  /**
9346
- * The brand's enrollment-form template URL (carries `?brand=…`, no
9347
- * credential). `url` is null until a Site is linked. Do not append a
9348
- * patient identifier to this URL — use {@link mintA2PBrandEnrollmentLink}
9349
- * to get a patient-ready link instead.
10005
+ * Stage one A2P opt-in evidence file: get a presigned POST to send the bytes
10006
+ * straight to storage. Nothing is recorded on the brand until
10007
+ * {@link registerA2PEvidenceUpload} reads the object back and normalizes it.
9350
10008
  */
9351
- async getA2PBrandEnrollmentUrl(orgUuid, brandUuid) {
10009
+ async createA2PEvidenceUploadUrl(orgUuid, brandUuid, data) {
9352
10010
  return this.fetch(
9353
- `o/${orgUuid}/a2p-brands/${brandUuid}/enrollment-url`
10011
+ `o/${orgUuid}/a2p-brands/${brandUuid}/evidence-attachments/upload-url`,
10012
+ {
10013
+ method: "POST",
10014
+ body: JSON.stringify(data)
10015
+ }
9354
10016
  );
9355
10017
  }
9356
10018
  /**
9357
- * Mint a patient-ready enrollment link for one patient.
9358
- *
9359
- * The returned URL carries a fresh, expiring, single-use `?grant=…` bound to
9360
- * the member that `externalId` resolves to. `externalId` (the patient's
9361
- * CRM/EHR identifier) travels in the request body, never the query string,
9362
- * so it stays out of access logs. When it matches no member, the
9363
- * credential-free template URL is returned rather than an error.
10019
+ * Normalize a staged evidence upload and record it on the brand. Returns the
10020
+ * refreshed campaign config, so the editor's evidence list updates without a
10021
+ * second round trip.
9364
10022
  */
9365
- async mintA2PBrandEnrollmentLink(orgUuid, brandUuid, externalId) {
10023
+ async registerA2PEvidenceUpload(orgUuid, brandUuid, data) {
9366
10024
  return this.fetch(
9367
- `o/${orgUuid}/a2p-brands/${brandUuid}/enrollment-url`,
10025
+ `o/${orgUuid}/a2p-brands/${brandUuid}/evidence-attachments`,
9368
10026
  {
9369
10027
  method: "POST",
9370
- body: JSON.stringify({ externalId })
10028
+ body: JSON.stringify(data)
9371
10029
  }
9372
10030
  );
9373
10031
  }
10032
+ /** Remove one uploaded evidence artifact. */
10033
+ async deleteA2PEvidenceUpload(orgUuid, brandUuid, attachmentUuid) {
10034
+ return this.fetch(
10035
+ `o/${orgUuid}/a2p-brands/${brandUuid}/evidence-attachments/${encodeURIComponent(
10036
+ attachmentUuid
10037
+ )}`,
10038
+ { method: "DELETE" }
10039
+ );
10040
+ }
9374
10041
  /**
9375
10042
  * List available member roles for a workspace in the organization.
9376
10043
  */
@@ -9395,6 +10062,9 @@ var OrgApi = class extends BaseApiClient {
9395
10062
  async listOrgWebhookEndpoints(orgIdOrUuid) {
9396
10063
  return this.fetch(`o/${orgIdOrUuid}/webhooks`);
9397
10064
  }
10065
+ async getOrgWebhookEndpoint(orgIdOrUuid, endpointUuid) {
10066
+ return this.fetch(`o/${orgIdOrUuid}/webhooks/${endpointUuid}`);
10067
+ }
9398
10068
  /**
9399
10069
  * The subscribable event-type vocabulary for the org UI's event-type
9400
10070
  * picker — exactly what the create/update validators accept, so the UI
@@ -9453,6 +10123,39 @@ var OrgApi = class extends BaseApiClient {
9453
10123
  }
9454
10124
  );
9455
10125
  }
10126
+ // =========================================================================
10127
+ // Organization API keys (GRA-9043)
10128
+ // =========================================================================
10129
+ /**
10130
+ * List every API key bound to this organization. Never carries the secret.
10131
+ *
10132
+ * Org-bound keys authenticate as an org-local principal, so one key reaches
10133
+ * every current workspace of the organization and every workspace created
10134
+ * later. Gated by `org:api_keys`, which `org:admin` holds transitively.
10135
+ */
10136
+ async listOrgApiKeys(orgIdOrUuid) {
10137
+ return this.fetch(`o/${orgIdOrUuid}/api-keys`);
10138
+ }
10139
+ /**
10140
+ * Mint an org-bound API key.
10141
+ *
10142
+ * The payload is the same client-only {@link ApiKeyFormData} the workspace
10143
+ * and account routes take — `{name, expiresInDays, scopes}`, no workspace
10144
+ * id: the mint location is what binds the key. The response carries `key`,
10145
+ * the plaintext secret, which is readable exactly once.
10146
+ */
10147
+ async createOrgApiKey(orgIdOrUuid, apiKey) {
10148
+ return this.fetch(`o/${orgIdOrUuid}/api-keys`, {
10149
+ method: "POST",
10150
+ body: JSON.stringify(apiKey)
10151
+ });
10152
+ }
10153
+ /** Revoke an org-bound API key by its id. */
10154
+ async revokeOrgApiKey(orgIdOrUuid, keyId) {
10155
+ return this.fetch(`o/${orgIdOrUuid}/api-keys/${keyId}`, {
10156
+ method: "DELETE"
10157
+ });
10158
+ }
9456
10159
  };
9457
10160
  function businessProfilePath(orgUuid, legalEntityUuid) {
9458
10161
  return legalEntityUuid ? `o/${orgUuid}/legal-entities/${legalEntityUuid}/business-profile` : `o/${orgUuid}/business-profile`;
@@ -10087,6 +10790,14 @@ var QualificationsApi = class extends BaseApiClient {
10087
10790
  });
10088
10791
  }
10089
10792
  // ===== Test chat runs =====
10793
+ /**
10794
+ * List a Workflow's test chat runs, newest first (default 50, max 500).
10795
+ *
10796
+ * `workflowRevisionId` narrows to that revision before the limit applies.
10797
+ * `includeEarlierRevisions` widens the window to earlier published
10798
+ * revisions and runs whose revision was deleted, and requires
10799
+ * `workflowRevisionId`. Omitting both keeps the unfiltered list.
10800
+ */
10090
10801
  async listTestChatRuns(wid, workflowId, params) {
10091
10802
  const query = new URLSearchParams();
10092
10803
  if (params?.scenarioId !== void 0) query.set("scenarioId", String(params.scenarioId));
@@ -10094,11 +10805,36 @@ var QualificationsApi = class extends BaseApiClient {
10094
10805
  query.set("assistantChatModelId", params.assistantChatModelId);
10095
10806
  }
10096
10807
  if (params?.limit !== void 0) query.set("limit", String(params.limit));
10808
+ if (params?.workflowRevisionId !== void 0) {
10809
+ query.set("workflow_revision_id", String(params.workflowRevisionId));
10810
+ }
10811
+ if (params?.includeEarlierRevisions !== void 0) {
10812
+ query.set("include_earlier_revisions", String(params.includeEarlierRevisions));
10813
+ }
10097
10814
  const qs = query.toString() ? `?${query.toString()}` : "";
10098
10815
  return this.fetch(
10099
10816
  `w/${wid}/qualifications/workflows/${workflowId}/test-chat-runs${qs}`
10100
10817
  );
10101
10818
  }
10819
+ /**
10820
+ * Exact scenario health for one revision of a Workflow: every active
10821
+ * scenario's server-decided state, caption, counts and per-revision pass
10822
+ * rates, plus the board headline. Scenarios arrive in board order.
10823
+ *
10824
+ * Omit `workflowRevisionId` for the server's current revision (the newest
10825
+ * with runs, the Draft counting as newest); the response names the
10826
+ * revision it describes and whether it is the current one.
10827
+ */
10828
+ async listScenarioHealthSummaries(wid, workflowId, params) {
10829
+ const query = new URLSearchParams();
10830
+ if (params?.workflowRevisionId !== void 0) {
10831
+ query.set("workflow_revision_id", String(params.workflowRevisionId));
10832
+ }
10833
+ const qs = query.toString() ? `?${query.toString()}` : "";
10834
+ return this.fetch(
10835
+ `w/${wid}/qualifications/workflows/${workflowId}/scenario-health-summaries${qs}`
10836
+ );
10837
+ }
10102
10838
  async getTestChatRun(wid, runId) {
10103
10839
  return this.fetch(`w/${wid}/qualifications/test-chat-runs/${runId}`);
10104
10840
  }
@@ -10194,6 +10930,69 @@ var ReportsApi = class extends BaseApiClient {
10194
10930
  }
10195
10931
  };
10196
10932
 
10933
+ // src/api/routing-rules.ts
10934
+ function appendFilters(params, filters) {
10935
+ if (!filters) return;
10936
+ if (filters.channel !== void 0) params.set("channel", filters.channel);
10937
+ if (filters.phoneNumberId !== void 0)
10938
+ params.set("phoneNumberId", String(filters.phoneNumberId));
10939
+ if (filters.inboxId !== void 0) params.set("inboxId", String(filters.inboxId));
10940
+ if (filters.page !== void 0) params.set("page", String(filters.page));
10941
+ if (filters.pageSize !== void 0) params.set("pageSize", String(filters.pageSize));
10942
+ }
10943
+ var RoutingRulesApi = class extends BaseApiClient {
10944
+ /** List one endpoint's rules. Requires the rule's endpoint read permission (`phones:read`, or `inboxes:read`). */
10945
+ async getRoutingRules(wid, filters) {
10946
+ const params = new URLSearchParams();
10947
+ appendFilters(params, filters);
10948
+ const query = params.toString();
10949
+ return this.fetch(
10950
+ `w/${wid}/routing${query ? `?${query}` : ""}`
10951
+ );
10952
+ }
10953
+ /** Read one rule. Requires the rule's endpoint read permission (`phones:read`, or `inboxes:read`). */
10954
+ async getRoutingRule(wid, ruleUuid) {
10955
+ return this.fetch(`w/${wid}/routing/${ruleUuid}`);
10956
+ }
10957
+ /** Create a rule. Requires the rule's endpoint write permission (`phones:write`, or `inboxes:write`). */
10958
+ async createRoutingRule(wid, data) {
10959
+ return this.fetch(`w/${wid}/routing`, {
10960
+ method: "POST",
10961
+ body: JSON.stringify(data)
10962
+ });
10963
+ }
10964
+ /** Update a rule. Requires the rule's endpoint write permission (`phones:write`, or `inboxes:write`). */
10965
+ async updateRoutingRule(wid, ruleUuid, data) {
10966
+ return this.fetch(`w/${wid}/routing/${ruleUuid}`, {
10967
+ method: "PATCH",
10968
+ body: JSON.stringify(data)
10969
+ });
10970
+ }
10971
+ /** Hard-delete a rule. Requires the rule's endpoint write permission (`phones:write`, or `inboxes:write`); the server audits deletion. */
10972
+ async deleteRoutingRule(wid, ruleUuid) {
10973
+ return this.fetch(`w/${wid}/routing/${ruleUuid}`, {
10974
+ method: "DELETE"
10975
+ });
10976
+ }
10977
+ /** Atomically reorder one endpoint/channel scope. Requires the rule's endpoint write permission (`phones:write`, or `inboxes:write`). */
10978
+ async reorderRoutingRules(wid, ruleUuids) {
10979
+ return this.fetch(`w/${wid}/routing/reorder`, {
10980
+ method: "POST",
10981
+ body: JSON.stringify({ ruleUuids })
10982
+ });
10983
+ }
10984
+ /**
10985
+ * Dry-run rule evaluation without placing or sending anything. Requires
10986
+ * the rule's endpoint read permission (`phones:read`, or `inboxes:read`); previewing a named Member also requires `members:read`.
10987
+ */
10988
+ async previewRoutingRule(wid, data) {
10989
+ return this.fetch(`w/${wid}/routing/preview`, {
10990
+ method: "POST",
10991
+ body: JSON.stringify(data)
10992
+ });
10993
+ }
10994
+ };
10995
+
10197
10996
  // src/api/salesforce.ts
10198
10997
  var SalesforceApi = class extends BaseApiClient {
10199
10998
  /**
@@ -10274,6 +11073,20 @@ var SalesforceApi = class extends BaseApiClient {
10274
11073
  body: JSON.stringify(data)
10275
11074
  });
10276
11075
  }
11076
+ /**
11077
+ * Start a durable run that links unlinked members by Salesforce Id / email
11078
+ * and hydrates them. One run per connection; a second start while one is
11079
+ * in flight is 409.
11080
+ */
11081
+ async linkUnlinkedSalesforceMembersByIdentity(wid) {
11082
+ return this.fetch(
11083
+ `w/${wid}/app-connections/salesforce/reconciliation/link-unlinked-by-identity`,
11084
+ {
11085
+ method: "POST",
11086
+ body: JSON.stringify({})
11087
+ }
11088
+ );
11089
+ }
10277
11090
  async unlinkMemberFromSalesforce(wid, memberId) {
10278
11091
  return this.fetch(`w/${wid}/app-connections/salesforce/reconciliation/unlink/${memberId}`, {
10279
11092
  method: "DELETE"
@@ -10355,6 +11168,21 @@ var SalesforceApi = class extends BaseApiClient {
10355
11168
  }
10356
11169
  );
10357
11170
  }
11171
+ /**
11172
+ * Managed-rule execution history for this connection (`GET /sync/logs`):
11173
+ * the connection's managed EventRule executions, newest first, with the
11174
+ * shared cursor pagination. Requires `apps:read`; works while the
11175
+ * connection is parked for re-authorization.
11176
+ */
11177
+ async getSalesforceSyncLogs(wid, params) {
11178
+ const query = new URLSearchParams();
11179
+ if (params?.pageSize) query.set("pageSize", String(params.pageSize));
11180
+ if (params?.cursor) query.set("cursor", params.cursor);
11181
+ const qs = query.toString() ? `?${query.toString()}` : "";
11182
+ return this.fetch(
11183
+ `w/${wid}/app-connections/salesforce/sync/logs${qs}`
11184
+ );
11185
+ }
10358
11186
  };
10359
11187
 
10360
11188
  // src/api/connection-sync.ts
@@ -10545,12 +11373,19 @@ var HubspotApi = class extends BaseApiClient {
10545
11373
  async getHubspotManagedRules(wid) {
10546
11374
  return this.fetch(`w/${wid}/app-connections/hubspot/managed-rules`);
10547
11375
  }
11376
+ /**
11377
+ * Managed-rule execution history for this connection (`GET /sync/logs`).
11378
+ * Rows are the shared rule-execution response (the same shape the Salesforce
11379
+ * and Monday twins return), with cursor pagination.
11380
+ */
10548
11381
  async getHubspotSyncLogs(wid, params) {
10549
11382
  const query = new URLSearchParams();
10550
11383
  if (params?.pageSize) query.set("pageSize", String(params.pageSize));
10551
11384
  if (params?.cursor) query.set("cursor", params.cursor);
10552
11385
  const qs = query.toString() ? `?${query.toString()}` : "";
10553
- return this.fetch(`w/${wid}/app-connections/hubspot/sync/logs${qs}`);
11386
+ return this.fetch(
11387
+ `w/${wid}/app-connections/hubspot/sync/logs${qs}`
11388
+ );
10554
11389
  }
10555
11390
  async getHubspotTransformPresets(wid) {
10556
11391
  return this.fetch(
@@ -11576,6 +12411,33 @@ var JourneysApi = class extends BaseApiClient {
11576
12411
  body: JSON.stringify(data)
11577
12412
  });
11578
12413
  }
12414
+ /**
12415
+ * Discard a saved editor draft, keeping the runnable definition.
12416
+ *
12417
+ * Body-less: a DELETE carries no document, only the resource to remove and
12418
+ * `expectedUpdatedAt` — the Journey's `updatedAt` as the caller loaded it —
12419
+ * proving they are removing the draft they were looking at. Encoded through
12420
+ * `URLSearchParams` because an ISO timestamp with a positive UTC offset
12421
+ * contains a `+`, which a raw template string would deliver to the server as
12422
+ * a space and turn into a revision conflict nobody can explain.
12423
+ *
12424
+ * Returns the AUTHORING projection (`Journey`) with `authoringDraft: null`
12425
+ * and the advanced `updatedAt`, so the caller can re-derive from the stored
12426
+ * definition without a second read.
12427
+ *
12428
+ * Refusals match the PUT's vocabulary: `journey_v2_definition_conflict`
12429
+ * (someone saved first — nothing was removed),
12430
+ * `journey_v2_structural_edit_not_allowed` (the Journey is live or archived)
12431
+ * and `journey_v2_execution_model_mismatch` (it is legacy). A Journey that
12432
+ * has no saved draft is a success, not an error — the state the caller asked
12433
+ * for is the state it is in.
12434
+ */
12435
+ async deleteJourneyDraft(wid, journeyId, expectedUpdatedAt) {
12436
+ const query = new URLSearchParams({ expectedUpdatedAt });
12437
+ return this.fetch(`w/${wid}/journeys/${journeyId}/draft?${query.toString()}`, {
12438
+ method: "DELETE"
12439
+ });
12440
+ }
11579
12441
  /**
11580
12442
  * List journeys, optionally including archived, paginated.
11581
12443
  *
@@ -12073,11 +12935,6 @@ var WorkflowsApi = class extends BaseApiClient {
12073
12935
  `w/${wid}/workflows/${workflowId}/tasks/${taskId}/chats?${params.toString()}`
12074
12936
  );
12075
12937
  }
12076
- async getWorkflowAccessValidation(wid, workflowId) {
12077
- return this.fetch(
12078
- `w/${wid}/workflows/${workflowId}/validate-access`
12079
- );
12080
- }
12081
12938
  async getWorkflowConfigValidation(wid, workflowId) {
12082
12939
  return this.fetch(
12083
12940
  `w/${wid}/workflows/${workflowId}/validate-config`
@@ -12960,17 +13817,17 @@ var WorkspacesApi = class extends BaseApiClient {
12960
13817
  body: JSON.stringify(payload)
12961
13818
  });
12962
13819
  }
12963
- /** List available themes for a workspace. */
13820
+ /**
13821
+ * List available themes for a workspace.
13822
+ *
13823
+ * Read-only: `…/themes` serves GET and nothing else. `Workspace.themes` is
13824
+ * an entitlement allowlist — which non-global themes this workspace may
13825
+ * select. There was never a `PUT …/themes` route; the
13826
+ * `updateWorkspaceThemes` method that targeted one always 405'd (GRA-8892).
13827
+ */
12964
13828
  async getWorkspaceThemes(wid) {
12965
13829
  return this.fetch(`w/${wid}/themes`);
12966
13830
  }
12967
- /** Update the active themes for a workspace. */
12968
- async updateWorkspaceThemes(wid, themes) {
12969
- return this.fetch(`w/${wid}/themes`, {
12970
- method: "PUT",
12971
- body: JSON.stringify({ themes })
12972
- });
12973
- }
12974
13831
  /**
12975
13832
  * Get all workspace-grantable scopes that can be assigned to member roles.
12976
13833
  *
@@ -13012,6 +13869,8 @@ function createApiModules(apiKey, baseUrl, customFetch) {
13012
13869
  assignments: new AssignmentsApi(apiKey, baseUrl, customFetch),
13013
13870
  auth: new AuthApi(apiKey, baseUrl, customFetch),
13014
13871
  builders: new BuildersApi(apiKey, baseUrl, customFetch),
13872
+ bundles: new BundlesApi(apiKey, baseUrl, customFetch),
13873
+ installations: new InstallationsApi(apiKey, baseUrl, customFetch),
13015
13874
  calendars: new CalendarsApi(apiKey, baseUrl, customFetch),
13016
13875
  calls: new CallsApi(apiKey, baseUrl, customFetch),
13017
13876
  cel: new CELApi(apiKey, baseUrl, customFetch),
@@ -13060,6 +13919,8 @@ function createApiModules(apiKey, baseUrl, customFetch) {
13060
13919
  metrics: new MetricsApi(apiKey, baseUrl, customFetch),
13061
13920
  queries: new QueriesApi(apiKey, baseUrl, customFetch),
13062
13921
  reports: new ReportsApi(apiKey, baseUrl, customFetch),
13922
+ resourceWorkflows: new ResourceWorkflowsApi(apiKey, baseUrl, customFetch),
13923
+ routingRules: new RoutingRulesApi(apiKey, baseUrl, customFetch),
13063
13924
  salesforce: new SalesforceApi(apiKey, baseUrl, customFetch),
13064
13925
  sites: new SitesApi(apiKey, baseUrl, customFetch),
13065
13926
  subscriptions: new SubscriptionsApi(apiKey, baseUrl, customFetch),
@@ -13089,6 +13950,7 @@ var WORKSPACE_METHOD_NAMES = [
13089
13950
  "archiveDataType",
13090
13951
  "archiveJourney",
13091
13952
  "archiveMember",
13953
+ "archiveMemberByExternalId",
13092
13954
  "archiveMemberRelationship",
13093
13955
  "archivePersona",
13094
13956
  "archivePhoneNumber",
@@ -13115,7 +13977,6 @@ var WORKSPACE_METHOD_NAMES = [
13115
13977
  "checkSiteSlugAvailability",
13116
13978
  "claimDevicePairing",
13117
13979
  "clearConnectionMemberExclusion",
13118
- "clearMemberSwitch",
13119
13980
  "clearTrackedLinkDestinations",
13120
13981
  "clickWorkspaceSupportRequestResource",
13121
13982
  "cloneDataType",
@@ -13138,6 +13999,9 @@ var WORKSPACE_METHOD_NAMES = [
13138
13999
  "createAgent",
13139
14000
  "createApiKey",
13140
14001
  "createAssignment",
14002
+ "bindInstallationSlots",
14003
+ "restoreInstallationForm",
14004
+ "createBundle",
13141
14005
  "createCalendar",
13142
14006
  "createCalendarEvent",
13143
14007
  "createCalendarEventType",
@@ -13186,6 +14050,7 @@ var WORKSPACE_METHOD_NAMES = [
13186
14050
  "createPhoneNumber",
13187
14051
  "createProduct",
13188
14052
  "createRoutine",
14053
+ "createRoutingRule",
13189
14054
  "createScenario",
13190
14055
  "createSignup",
13191
14056
  "createSite",
@@ -13236,6 +14101,7 @@ var WORKSPACE_METHOD_NAMES = [
13236
14101
  "deleteGoal",
13237
14102
  "deleteHubspot",
13238
14103
  "deleteInbox",
14104
+ "deleteJourneyDraft",
13239
14105
  "deleteJourneyNote",
13240
14106
  "deleteMcpServer",
13241
14107
  "deleteMember",
@@ -13253,6 +14119,7 @@ var WORKSPACE_METHOD_NAMES = [
13253
14119
  "deletePlatformApp",
13254
14120
  "deleteProduct",
13255
14121
  "deleteRoutine",
14122
+ "deleteRoutingRule",
13256
14123
  "deleteSalesforce",
13257
14124
  "deleteScenario",
13258
14125
  "deleteSite",
@@ -13285,6 +14152,7 @@ var WORKSPACE_METHOD_NAMES = [
13285
14152
  "dismissAllNotifications",
13286
14153
  "dismissNotification",
13287
14154
  "downloadEmailAttachment",
14155
+ "downloadFileContents",
13288
14156
  "downloadFilesZip",
13289
14157
  "downloadSiteSourceZip",
13290
14158
  "editWorkflowRevisionAsDraft",
@@ -13347,6 +14215,7 @@ var WORKSPACE_METHOD_NAMES = [
13347
14215
  "getAgentTasks",
13348
14216
  "getAgents",
13349
14217
  "getAnonymousResolution",
14218
+ "getAnonymousFormSubmission",
13350
14219
  "getAnonymousResolutions",
13351
14220
  "getApiKeys",
13352
14221
  "getArchiveBlockers",
@@ -13360,6 +14229,12 @@ var WORKSPACE_METHOD_NAMES = [
13360
14229
  "getAvailableActions",
13361
14230
  "getAvailablePhoneNumbers",
13362
14231
  "getAvailableSlots",
14232
+ "getInstallation",
14233
+ "getInstallationReadiness",
14234
+ "getThemeSettingsSchema",
14235
+ "getBundleDraft",
14236
+ "getBundle",
14237
+ "getBundleVersion",
13363
14238
  "getBusinessHoursStatus",
13364
14239
  "getCalendar",
13365
14240
  "getCalendarEvent",
@@ -13372,8 +14247,11 @@ var WORKSPACE_METHOD_NAMES = [
13372
14247
  "getCelContext",
13373
14248
  "getCharlestonTestDeliveryRecipients",
13374
14249
  "getChat",
14250
+ "getChatByUuid",
13375
14251
  "getChatAssignmentTasks",
13376
14252
  "getChatBrowserLiveView",
14253
+ "saveChatBrowserStorage",
14254
+ "clearChatBrowserStorage",
13377
14255
  "getChatCallbacks",
13378
14256
  "getChatEhrWritebackOutcomes",
13379
14257
  "getChatEmails",
@@ -13419,6 +14297,7 @@ var WORKSPACE_METHOD_NAMES = [
13419
14297
  "getDashboardWorkflowAssignmentStats",
13420
14298
  "getDashboards",
13421
14299
  "getDataRecord",
14300
+ "getDataRecordByUuid",
13422
14301
  "getDataRecordChanges",
13423
14302
  "getDataRecordFilter",
13424
14303
  "getDataRecordFilterCount",
@@ -13536,6 +14415,7 @@ var WORKSPACE_METHOD_NAMES = [
13536
14415
  "getMcpServerResources",
13537
14416
  "getMcpServerTools",
13538
14417
  "getMcpServers",
14418
+ "getMemberByUuid",
13539
14419
  "getMemberExperiments",
13540
14420
  "getMemberFieldDefinitions",
13541
14421
  "getMemberFields",
@@ -13567,6 +14447,7 @@ var WORKSPACE_METHOD_NAMES = [
13567
14447
  "getMondayConnectionStatus",
13568
14448
  "getMondayReconciliationMatches",
13569
14449
  "getMondaySyncConfig",
14450
+ "getMondaySyncLogs",
13570
14451
  "getMyCredentials",
13571
14452
  "getMyGivenGrants",
13572
14453
  "getMyReceivedGrants",
@@ -13577,7 +14458,6 @@ var WORKSPACE_METHOD_NAMES = [
13577
14458
  "getOperatorGroup",
13578
14459
  "getOperatorGroups",
13579
14460
  "getOrCreateQualificationForWorkflow",
13580
- "getOwnedMembers",
13581
14461
  "getPage",
13582
14462
  "getPageBySlug",
13583
14463
  "getPersona",
@@ -13607,11 +14487,14 @@ var WORKSPACE_METHOD_NAMES = [
13607
14487
  "getRoutineConfigEvents",
13608
14488
  "getRoutineRuns",
13609
14489
  "getRoutines",
14490
+ "getRoutingRule",
14491
+ "getRoutingRules",
13610
14492
  "getRuleExecutions",
13611
14493
  "getSMSUsageReport",
13612
14494
  "getSalesforceReconciliationMatches",
13613
14495
  "getSalesforceStatus",
13614
14496
  "getSalesforceSyncConfig",
14497
+ "getSalesforceSyncLogs",
13615
14498
  "getScenario",
13616
14499
  "getSite",
13617
14500
  "getSiteByUuid",
@@ -13657,7 +14540,6 @@ var WORKSPACE_METHOD_NAMES = [
13657
14540
  "getWebhookLogs",
13658
14541
  "getWorkflow",
13659
14542
  "getWorkflowOpeningTurnConversionReport",
13660
- "getWorkflowAccessValidation",
13661
14543
  "getWorkflowActivity",
13662
14544
  "getWorkflowConfigValidation",
13663
14545
  "getWorkflowFeedback",
@@ -13688,6 +14570,8 @@ var WORKSPACE_METHOD_NAMES = [
13688
14570
  "getWorkspaceSubscriptions",
13689
14571
  "getWorkspaceSupportRequest",
13690
14572
  "getWorkspaceThemes",
14573
+ "installBundle",
14574
+ "grantBundle",
13691
14575
  "importFromBoard",
13692
14576
  "importHubspotMembers",
13693
14577
  "importMembers",
@@ -13710,13 +14594,23 @@ var WORKSPACE_METHOD_NAMES = [
13710
14594
  "linkMemberToMonday",
13711
14595
  "linkMemberToSalesforce",
13712
14596
  "linkPhoneNumber",
14597
+ "linkUnlinkedSalesforceMembersByIdentity",
13713
14598
  "listAbilities",
14599
+ "listAnonymousFormSubmissions",
13714
14600
  "listAppConnections",
13715
14601
  "listAvailableAppConnections",
14602
+ "listInstallations",
14603
+ "listBundleGrants",
14604
+ "listBundleVersions",
14605
+ "listBundles",
14606
+ "listBundleWorkflowCandidates",
14607
+ "updateBundle",
14608
+ "listBundleInstallations",
13716
14609
  "listConfluencePages",
13717
14610
  "listConfluenceSpaces",
13718
14611
  "listConnectionMemberFieldKeys",
13719
14612
  "listContactPermissions",
14613
+ "revokeBundleGrant",
13720
14614
  "rollbackSiteSource",
13721
14615
  "rotateDocumoFaxCredentials",
13722
14616
  "runQuery",
@@ -13737,7 +14631,11 @@ var WORKSPACE_METHOD_NAMES = [
13737
14631
  "getMetricSeries",
13738
14632
  "computeChatMetrics",
13739
14633
  "listPushSubscriptions",
14634
+ "listResourceWorkflows",
14635
+ "getResourceWorkflow",
14636
+ "getResourceWorkflowRevision",
13740
14637
  "listSalesforceObjects",
14638
+ "listScenarioHealthSummaries",
13741
14639
  "listScenarios",
13742
14640
  "listTestChatRuns",
13743
14641
  "listWidgetDomains",
@@ -13753,15 +14651,18 @@ var WORKSPACE_METHOD_NAMES = [
13753
14651
  "previewRenameFieldSlug",
13754
14652
  "previewImportWorkspace",
13755
14653
  "previewInboxEmail",
14654
+ "preflightBundleInstallation",
13756
14655
  "previewRoutineVoiceReadiness",
13757
- "previewRoutineWorkflowAccess",
13758
14656
  "previewSchedule",
14657
+ "previewRoutingRule",
13759
14658
  "previewTTS",
13760
14659
  "previewTemplate",
13761
14660
  "previewThinkingSound",
13762
14661
  "previewWorkspaceImport",
13763
14662
  "previewWorkspaceImportZip",
13764
14663
  "provisionClientWorkspace",
14664
+ "previewInstallationUpgrade",
14665
+ "publishBundle",
13765
14666
  "publishWorkflowRevision",
13766
14667
  "putJourneyDraft",
13767
14668
  "putJourneyV2Definition",
@@ -13773,11 +14674,16 @@ var WORKSPACE_METHOD_NAMES = [
13773
14674
  "registerPushSubscription",
13774
14675
  "reindexFolder",
13775
14676
  "releasePhoneNumber",
14677
+ "reorderRoutingRules",
13776
14678
  "removeFileRole",
13777
14679
  "removeFolderRole",
13778
14680
  "removeGroupMember",
13779
14681
  "reorderEventRules",
13780
14682
  "reorderMenuItems",
14683
+ "reconcileInstallation",
14684
+ "setInstallationPolicy",
14685
+ "upgradeInstallation",
14686
+ "replaceBundleDraft",
13781
14687
  "replyToEmail",
13782
14688
  "rotateDocumoFaxCredentials",
13783
14689
  "requestPhoneNumber",
@@ -13813,7 +14719,6 @@ var WORKSPACE_METHOD_NAMES = [
13813
14719
  "startSyncRun",
13814
14720
  "startTestChatRun",
13815
14721
  "summarizeChat",
13816
- "switchMember",
13817
14722
  "syncCalendarWithGoogle",
13818
14723
  "syncCalendarWithHealthie",
13819
14724
  "testFhirConnection",
@@ -13826,6 +14731,7 @@ var WORKSPACE_METHOD_NAMES = [
13826
14731
  "unarchiveChat",
13827
14732
  "unarchiveDataType",
13828
14733
  "unarchiveMember",
14734
+ "unarchiveMemberByExternalId",
13829
14735
  "unarchivePersona",
13830
14736
  "unarchiveStep",
13831
14737
  "unarchiveTask",
@@ -13883,6 +14789,7 @@ var WORKSPACE_METHOD_NAMES = [
13883
14789
  "updateJourneyNote",
13884
14790
  "updateMcpServer",
13885
14791
  "updateMember",
14792
+ "updateMemberByExternalId",
13886
14793
  "updateMemberField",
13887
14794
  "updateMemberFilter",
13888
14795
  "updateMemberLabel",
@@ -13899,6 +14806,7 @@ var WORKSPACE_METHOD_NAMES = [
13899
14806
  "updateProduct",
13900
14807
  "updateProject",
13901
14808
  "updateRoutine",
14809
+ "updateRoutingRule",
13902
14810
  "updateSalesforceSyncConfig",
13903
14811
  "resyncSalesforceLinkedMembers",
13904
14812
  "updateScenario",
@@ -13921,7 +14829,6 @@ var WORKSPACE_METHOD_NAMES = [
13921
14829
  "updateWorkspace",
13922
14830
  "updateWorkspaceDefaults",
13923
14831
  "updateWorkspaceInvitationAdmin",
13924
- "updateWorkspaceThemes",
13925
14832
  "upsertDataRecord",
13926
14833
  "upsertWidgetDomain",
13927
14834
  "validateCelExpression",
@@ -14012,6 +14919,9 @@ function bindChatsMethods(target, chats) {
14012
14919
  target.transitionChatInteractionSession = chats.transitionChatInteractionSession.bind(chats);
14013
14920
  target.getChats = chats.getChats.bind(chats);
14014
14921
  target.getChat = chats.getChat.bind(chats);
14922
+ target.getChatByUuid = chats.getChatByUuid.bind(chats);
14923
+ target.saveChatBrowserStorage = chats.saveChatBrowserStorage.bind(chats);
14924
+ target.clearChatBrowserStorage = chats.clearChatBrowserStorage.bind(chats);
14015
14925
  target.getChatBrowserLiveView = chats.getChatBrowserLiveView.bind(chats);
14016
14926
  target.getChatMachineResources = chats.getChatMachineResources.bind(chats);
14017
14927
  target.getCurrentSmsChat = chats.getCurrentSmsChat.bind(chats);
@@ -14148,7 +15058,10 @@ function bindDataTypesMethods(target, dataTypes) {
14148
15058
  target.unarchiveDataType = dataTypes.unarchiveDataType.bind(dataTypes);
14149
15059
  target.cloneDataType = dataTypes.cloneDataType.bind(dataTypes);
14150
15060
  target.getDataRecords = dataTypes.getDataRecords.bind(dataTypes);
15061
+ target.listAnonymousFormSubmissions = dataTypes.listAnonymousFormSubmissions.bind(dataTypes);
15062
+ target.getAnonymousFormSubmission = dataTypes.getAnonymousFormSubmission.bind(dataTypes);
14151
15063
  target.getDataRecord = dataTypes.getDataRecord.bind(dataTypes);
15064
+ target.getDataRecordByUuid = dataTypes.getDataRecordByUuid.bind(dataTypes);
14152
15065
  target.createDataRecord = dataTypes.createDataRecord.bind(dataTypes);
14153
15066
  target.updateDataRecord = dataTypes.updateDataRecord.bind(dataTypes);
14154
15067
  target.deleteDataRecord = dataTypes.deleteDataRecord.bind(dataTypes);
@@ -14187,18 +15100,19 @@ function bindMembersMethods(target, members) {
14187
15100
  target.previewMemberWorkflowVoice = members.previewMemberWorkflowVoice.bind(members);
14188
15101
  target.setMemberWorkflowVoice = members.setMemberWorkflowVoice.bind(members);
14189
15102
  target.clearMemberWorkflowVoice = members.clearMemberWorkflowVoice.bind(members);
14190
- target.getOwnedMembers = members.getOwnedMembers.bind(members);
14191
- target.switchMember = members.switchMember.bind(members);
14192
- target.clearMemberSwitch = members.clearMemberSwitch.bind(members);
14193
15103
  target.updateCurrentMember = members.updateCurrentMember.bind(members);
14194
15104
  target.getWorkspaceMembers = members.getWorkspaceMembers.bind(members);
14195
15105
  target.getWorkspaceMember = members.getWorkspaceMember.bind(members);
15106
+ target.getMemberByUuid = members.getMemberByUuid.bind(members);
14196
15107
  target.getOrgWorkspaceMember = members.getOrgWorkspaceMember.bind(members);
14197
15108
  target.createWorkspaceMember = members.createWorkspaceMember.bind(members);
14198
15109
  target.updateMember = members.updateMember.bind(members);
14199
15110
  target.deleteMember = members.deleteMember.bind(members);
14200
15111
  target.archiveMember = members.archiveMember.bind(members);
14201
15112
  target.unarchiveMember = members.unarchiveMember.bind(members);
15113
+ target.updateMemberByExternalId = members.updateMemberByExternalId.bind(members);
15114
+ target.archiveMemberByExternalId = members.archiveMemberByExternalId.bind(members);
15115
+ target.unarchiveMemberByExternalId = members.unarchiveMemberByExternalId.bind(members);
14202
15116
  target.sendMemberPhoneConfirmation = members.sendMemberPhoneConfirmation.bind(members);
14203
15117
  target.bulkCreateMembers = members.bulkCreateMembers.bind(members);
14204
15118
  target.previewImportMembers = members.previewImportMembers.bind(members);
@@ -14300,7 +15214,6 @@ function bindWorkspacesMethods(target, workspaces, signupRequests) {
14300
15214
  target.rebuildImportSkippedRules = workspaces.rebuildImportSkippedRules.bind(workspaces);
14301
15215
  target.previewImportWorkspace = workspaces.previewImportWorkspace.bind(workspaces);
14302
15216
  target.getWorkspaceThemes = workspaces.getWorkspaceThemes.bind(workspaces);
14303
- target.updateWorkspaceThemes = workspaces.updateWorkspaceThemes.bind(workspaces);
14304
15217
  target.getWorkspaceBySlug = workspaces.getWorkspace.bind(workspaces);
14305
15218
  target.getWorkspaceScopes = workspaces.getWorkspaceScopes.bind(workspaces);
14306
15219
  target.getUsageDashboard = workspaces.getUsageDashboard.bind(workspaces);
@@ -14349,6 +15262,7 @@ function bindAuthMethods(target, auth, assignments) {
14349
15262
  target.logout = auth.logout.bind(auth);
14350
15263
  target.requestCrossDomainToken = auth.requestCrossDomainToken.bind(auth);
14351
15264
  target.exchangeToken = auth.exchangeToken.bind(auth);
15265
+ target.createRealtimeLoginToken = auth.createRealtimeLoginToken.bind(auth);
14352
15266
  target.getDomainMapping = auth.getDomainMapping.bind(auth);
14353
15267
  target.createSignup = auth.createSignup.bind(auth);
14354
15268
  target.createAccount = auth.emailPasswordSignup.bind(auth);
@@ -14438,6 +15352,7 @@ function bindSitesMethods(target, sites) {
14438
15352
  function bindFilesMethods(target, files) {
14439
15353
  target.getFiles = files.getFiles.bind(files);
14440
15354
  target.getFile = files.getFile.bind(files);
15355
+ target.downloadFileContents = files.downloadFileContents.bind(files);
14441
15356
  target.downloadFilesZip = files.downloadFilesZip.bind(files);
14442
15357
  target.createFile = files.createFile.bind(files);
14443
15358
  target.uploadFile = files.uploadFile.bind(files);
@@ -14510,7 +15425,6 @@ function bindEventsMethods(target, events) {
14510
15425
  target.resetRoutineRuns = events.resetRoutineRuns.bind(events);
14511
15426
  target.previewSchedule = events.previewSchedule.bind(events);
14512
15427
  target.previewRoutineVoiceReadiness = events.previewRoutineVoiceReadiness.bind(events);
14513
- target.previewRoutineWorkflowAccess = events.previewRoutineWorkflowAccess.bind(events);
14514
15428
  }
14515
15429
 
14516
15430
  // src/client/bindings/experiments.ts
@@ -14551,7 +15465,6 @@ function bindWorkflowsMethods(target, workflows, workflowNotes, voice, superviso
14551
15465
  target.createWorkflowFromTemplate = workflows.createWorkflowFromTemplate.bind(workflows);
14552
15466
  target.getWorkflowTaskAssignmentStats = workflows.getWorkflowTaskAssignmentStats.bind(workflows);
14553
15467
  target.getTaskChats = workflows.getTaskChats.bind(workflows);
14554
- target.getWorkflowAccessValidation = workflows.getWorkflowAccessValidation.bind(workflows);
14555
15468
  target.getWorkflowConfigValidation = workflows.getWorkflowConfigValidation.bind(workflows);
14556
15469
  target.getWorkflowNotes = workflowNotes.getWorkflowNotes.bind(workflowNotes);
14557
15470
  target.createWorkflowNote = workflowNotes.createWorkflowNote.bind(workflowNotes);
@@ -14672,6 +15585,7 @@ function bindToolkitsMethods(target, toolkits, templates, aiModels, customToolki
14672
15585
  target.previewTemplate = templates.previewTemplate.bind(templates);
14673
15586
  target.getVariableRegistry = templates.getVariableRegistry.bind(templates);
14674
15587
  target.getChatModels = aiModels.getChatModels.bind(aiModels);
15588
+ target.getManagerModels = aiModels.getManagerModels.bind(aiModels);
14675
15589
  target.getRealtimeModels = aiModels.getRealtimeModels.bind(aiModels);
14676
15590
  target.getSTTModels = aiModels.getSTTModels.bind(aiModels);
14677
15591
  target.getTTSModels = aiModels.getTTSModels.bind(aiModels);
@@ -14785,6 +15699,7 @@ function bindIntegrationsMethods(target, mondayIntegration, discordBots, slackAp
14785
15699
  target.getMondayConnectionBoardColumns = mondayIntegration.getMondayConnectionBoardColumns.bind(mondayIntegration);
14786
15700
  target.getMondayConnectionBoardGroups = mondayIntegration.getMondayConnectionBoardGroups.bind(mondayIntegration);
14787
15701
  target.getMondaySyncConfig = mondayIntegration.getMondaySyncConfig.bind(mondayIntegration);
15702
+ target.getMondaySyncLogs = mondayIntegration.getMondaySyncLogs.bind(mondayIntegration);
14788
15703
  target.updateMondaySyncConfig = mondayIntegration.updateMondaySyncConfig.bind(mondayIntegration);
14789
15704
  target.getLinkedMondayMembers = mondayIntegration.getLinkedMondayMembers.bind(mondayIntegration);
14790
15705
  target.getMondayReconciliationMatches = mondayIntegration.getMondayReconciliationMatches.bind(mondayIntegration);
@@ -14899,10 +15814,12 @@ function bindIntegrationsMethods(target, mondayIntegration, discordBots, slackAp
14899
15814
  target.deleteSalesforce = salesforce.deleteSalesforce.bind(salesforce);
14900
15815
  target.getSalesforceReconciliationMatches = salesforce.getSalesforceReconciliationMatches.bind(salesforce);
14901
15816
  target.linkMemberToSalesforce = salesforce.linkMemberToSalesforce.bind(salesforce);
15817
+ target.linkUnlinkedSalesforceMembersByIdentity = salesforce.linkUnlinkedSalesforceMembersByIdentity.bind(salesforce);
14902
15818
  target.bulkLinkMembersToSalesforce = salesforce.bulkLinkMembersToSalesforce.bind(salesforce);
14903
15819
  target.unlinkMemberFromSalesforce = salesforce.unlinkMemberFromSalesforce.bind(salesforce);
14904
15820
  target.getLinkedSalesforceMembers = salesforce.getLinkedSalesforceMembers.bind(salesforce);
14905
15821
  target.getSalesforceSyncConfig = salesforce.getSalesforceSyncConfig.bind(salesforce);
15822
+ target.getSalesforceSyncLogs = salesforce.getSalesforceSyncLogs.bind(salesforce);
14906
15823
  target.updateSalesforceSyncConfig = salesforce.updateSalesforceSyncConfig.bind(salesforce);
14907
15824
  target.resyncSalesforceLinkedMembers = salesforce.resyncSalesforceLinkedMembers.bind(salesforce);
14908
15825
  target.listSalesforceObjects = salesforce.listSalesforceObjects.bind(salesforce);
@@ -14992,10 +15909,15 @@ function bindOrgMethods(target, org) {
14992
15909
  target.getVoiceTrustProducts = org.getVoiceTrustProducts.bind(org);
14993
15910
  target.syncVoiceTrustProducts = org.syncVoiceTrustProducts.bind(org);
14994
15911
  target.createOrganizationWorkspace = org.createOrganizationWorkspace.bind(org);
15912
+ target.getOrganizationWorkspace = org.getOrganizationWorkspace.bind(org);
15913
+ target.updateOrganizationWorkspace = org.updateOrganizationWorkspace.bind(org);
14995
15914
  target.getOrgBillingCustomer = org.getOrgBillingCustomer.bind(org);
14996
15915
  target.getA2PCampaignConfig = org.getA2PCampaignConfig.bind(org);
14997
15916
  target.updateA2PCampaignConfig = org.updateA2PCampaignConfig.bind(org);
14998
15917
  target.getOrgWorkspaceUsage = org.getOrgWorkspaceUsage.bind(org);
15918
+ target.updateOrganizationMember = org.updateOrganizationMember.bind(org);
15919
+ target.listOrgWebhookEndpoints = org.listOrgWebhookEndpoints.bind(org);
15920
+ target.getOrgWebhookEndpoint = org.getOrgWebhookEndpoint.bind(org);
14999
15921
  }
15000
15922
 
15001
15923
  // src/client/bindings/pronunciations.ts
@@ -15015,12 +15937,58 @@ function bindPronunciationsMethods(target, pronunciations) {
15015
15937
  target.previewPronunciation = pronunciations.previewPronunciation.bind(pronunciations);
15016
15938
  }
15017
15939
 
15940
+ // src/client/bindings/resource-workflows.ts
15941
+ function bindResourceWorkflowsMethods(target, resourceWorkflows) {
15942
+ target.getResourceWorkflow = resourceWorkflows.getResourceWorkflow.bind(resourceWorkflows);
15943
+ target.getResourceWorkflowRevision = resourceWorkflows.getResourceWorkflowRevision.bind(resourceWorkflows);
15944
+ }
15945
+
15946
+ // src/client/bindings/bundles.ts
15947
+ function bindBundlesMethods(target, bundles, resourceWorkflows) {
15948
+ bindResourceWorkflowsMethods(target, resourceWorkflows);
15949
+ target.getSolutionRelease = bundles.getSolutionRelease.bind(bundles);
15950
+ target.updateBundle = bundles.updateBundle.bind(bundles);
15951
+ target.listBundleInstallations = bundles.listBundleInstallations.bind(bundles);
15952
+ target.listBundles = bundles.listBundles.bind(bundles);
15953
+ target.listBundleWorkflowCandidates = bundles.listBundleWorkflowCandidates.bind(bundles);
15954
+ target.createBundle = bundles.createBundle.bind(bundles);
15955
+ target.getBundleDraft = bundles.getBundleDraft.bind(bundles);
15956
+ target.replaceBundleDraft = bundles.replaceBundleDraft.bind(bundles);
15957
+ target.publishBundle = bundles.publishBundle.bind(bundles);
15958
+ target.listBundleVersions = bundles.listBundleVersions.bind(bundles);
15959
+ target.getBundle = bundles.getBundle.bind(bundles);
15960
+ target.getBundleVersion = bundles.getBundleVersion.bind(bundles);
15961
+ target.listBundleGrants = bundles.listBundleGrants.bind(bundles);
15962
+ target.grantBundle = bundles.grantBundle.bind(bundles);
15963
+ target.revokeBundleGrant = bundles.revokeBundleGrant.bind(bundles);
15964
+ target.listResourceWorkflows = resourceWorkflows.listResourceWorkflows.bind(resourceWorkflows);
15965
+ }
15966
+
15967
+ // src/client/bindings/installations.ts
15968
+ function bindInstallationsMethods(target, installations) {
15969
+ target.preflightBundleInstallation = installations.preflightBundleInstallation.bind(installations);
15970
+ target.installBundle = installations.installBundle.bind(installations);
15971
+ target.listInstallations = installations.listInstallations.bind(installations);
15972
+ target.getInstallation = installations.getInstallation.bind(installations);
15973
+ target.getInstallationReadiness = installations.getInstallationReadiness.bind(installations);
15974
+ target.previewInstallationUpgrade = installations.previewInstallationUpgrade.bind(installations);
15975
+ target.upgradeInstallation = installations.upgradeInstallation.bind(installations);
15976
+ target.setInstallationPolicy = installations.setInstallationPolicy.bind(installations);
15977
+ target.unsubscribeInstallation = installations.unsubscribeInstallation.bind(installations);
15978
+ target.restoreInstallationForm = installations.restoreInstallationForm.bind(installations);
15979
+ target.restoreInstallationWorkflowResources = installations.restoreInstallationWorkflowResources.bind(installations);
15980
+ target.bindInstallationSlots = installations.bindInstallationSlots.bind(installations);
15981
+ target.reconcileInstallation = installations.reconcileInstallation.bind(installations);
15982
+ target.getThemeSettingsSchema = installations.getThemeSettingsSchema.bind(installations);
15983
+ }
15984
+
15018
15985
  // src/client/bindings/journeys.ts
15019
15986
  function bindJourneysMethods(target, journeys) {
15020
15987
  target.getJourneys = journeys.getJourneys.bind(journeys);
15021
15988
  target.getJourney = journeys.getJourney.bind(journeys);
15022
15989
  target.getJourneyAuthoring = journeys.getJourneyAuthoring.bind(journeys);
15023
15990
  target.putJourneyDraft = journeys.putJourneyDraft.bind(journeys);
15991
+ target.deleteJourneyDraft = journeys.deleteJourneyDraft.bind(journeys);
15024
15992
  target.putJourneyV2Definition = journeys.putJourneyV2Definition.bind(journeys);
15025
15993
  target.getJourneyV2Validation = journeys.getJourneyV2Validation.bind(journeys);
15026
15994
  target.getJourneyFilterOptions = journeys.getJourneyFilterOptions.bind(journeys);
@@ -15068,6 +16036,7 @@ function bindQualificationsMethods(target, qualifications) {
15068
16036
  target.updateScenario = qualifications.updateScenario.bind(qualifications);
15069
16037
  target.deleteScenario = qualifications.deleteScenario.bind(qualifications);
15070
16038
  target.listTestChatRuns = qualifications.listTestChatRuns.bind(qualifications);
16039
+ target.listScenarioHealthSummaries = qualifications.listScenarioHealthSummaries.bind(qualifications);
15071
16040
  target.getTestChatRun = qualifications.getTestChatRun.bind(qualifications);
15072
16041
  target.startTestChatRun = qualifications.startTestChatRun.bind(qualifications);
15073
16042
  target.evaluateTestChatRun = qualifications.evaluateTestChatRun.bind(qualifications);
@@ -15156,6 +16125,17 @@ function bindSupportRequestMethods(target, supportRequests) {
15156
16125
  target.clickWorkspaceSupportRequestResource = supportRequests.clickWorkspaceSupportRequestResource.bind(supportRequests);
15157
16126
  }
15158
16127
 
16128
+ // src/client/bindings/routing-rules.ts
16129
+ function bindRoutingRulesMethods(target, routingRules) {
16130
+ target.getRoutingRules = routingRules.getRoutingRules.bind(routingRules);
16131
+ target.getRoutingRule = routingRules.getRoutingRule.bind(routingRules);
16132
+ target.createRoutingRule = routingRules.createRoutingRule.bind(routingRules);
16133
+ target.updateRoutingRule = routingRules.updateRoutingRule.bind(routingRules);
16134
+ target.deleteRoutingRule = routingRules.deleteRoutingRule.bind(routingRules);
16135
+ target.reorderRoutingRules = routingRules.reorderRoutingRules.bind(routingRules);
16136
+ target.previewRoutingRule = routingRules.previewRoutingRule.bind(routingRules);
16137
+ }
16138
+
15159
16139
  // src/client/client.ts
15160
16140
  var GravityRailClient = class {
15161
16141
  // WorkspaceInvitations is exposed publicly for backward compatibility
@@ -15181,6 +16161,9 @@ var GravityRailClient = class {
15181
16161
  // Chats API
15182
16162
  getChats;
15183
16163
  getChat;
16164
+ getChatByUuid;
16165
+ saveChatBrowserStorage;
16166
+ clearChatBrowserStorage;
15184
16167
  getChatBrowserLiveView;
15185
16168
  getChatMachineResources;
15186
16169
  getCurrentSmsChat;
@@ -15258,7 +16241,10 @@ var GravityRailClient = class {
15258
16241
  unarchiveDataType;
15259
16242
  cloneDataType;
15260
16243
  getDataRecords;
16244
+ listAnonymousFormSubmissions;
16245
+ getAnonymousFormSubmission;
15261
16246
  getDataRecord;
16247
+ getDataRecordByUuid;
15262
16248
  createDataRecord;
15263
16249
  updateDataRecord;
15264
16250
  deleteDataRecord;
@@ -15284,12 +16270,10 @@ var GravityRailClient = class {
15284
16270
  previewMemberWorkflowVoice;
15285
16271
  setMemberWorkflowVoice;
15286
16272
  clearMemberWorkflowVoice;
15287
- getOwnedMembers;
15288
- switchMember;
15289
- clearMemberSwitch;
15290
16273
  updateCurrentMember;
15291
16274
  getWorkspaceMembers;
15292
16275
  getWorkspaceMember;
16276
+ getMemberByUuid;
15293
16277
  // Org-scoped, so deliberately absent from WORKSPACE_METHOD_NAMES: that proxy
15294
16278
  // passes a workspace uuid as the first argument.
15295
16279
  getOrgWorkspaceMember;
@@ -15298,6 +16282,9 @@ var GravityRailClient = class {
15298
16282
  deleteMember;
15299
16283
  archiveMember;
15300
16284
  unarchiveMember;
16285
+ updateMemberByExternalId;
16286
+ archiveMemberByExternalId;
16287
+ unarchiveMemberByExternalId;
15301
16288
  sendMemberPhoneConfirmation;
15302
16289
  bulkCreateMembers;
15303
16290
  previewImportMembers;
@@ -15375,6 +16362,7 @@ var GravityRailClient = class {
15375
16362
  updateScenario;
15376
16363
  deleteScenario;
15377
16364
  listTestChatRuns;
16365
+ listScenarioHealthSummaries;
15378
16366
  getTestChatRun;
15379
16367
  startTestChatRun;
15380
16368
  evaluateTestChatRun;
@@ -15452,6 +16440,7 @@ var GravityRailClient = class {
15452
16440
  getJourney;
15453
16441
  getJourneyAuthoring;
15454
16442
  putJourneyDraft;
16443
+ deleteJourneyDraft;
15455
16444
  putJourneyV2Definition;
15456
16445
  getJourneyV2Validation;
15457
16446
  getJourneyFilterOptions;
@@ -15486,6 +16475,41 @@ var GravityRailClient = class {
15486
16475
  createJourneyNote;
15487
16476
  updateJourneyNote;
15488
16477
  deleteJourneyNote;
16478
+ updateBundle;
16479
+ listBundleInstallations;
16480
+ // Bundles API
16481
+ getSolutionRelease;
16482
+ listBundles;
16483
+ listBundleWorkflowCandidates;
16484
+ createBundle;
16485
+ getBundleDraft;
16486
+ replaceBundleDraft;
16487
+ publishBundle;
16488
+ listBundleVersions;
16489
+ getBundle;
16490
+ getBundleVersion;
16491
+ listBundleGrants;
16492
+ grantBundle;
16493
+ revokeBundleGrant;
16494
+ listResourceWorkflows;
16495
+ // Resource Workflows API — published Workflow catalog reads
16496
+ getResourceWorkflow;
16497
+ getResourceWorkflowRevision;
16498
+ // Installations API
16499
+ preflightBundleInstallation;
16500
+ installBundle;
16501
+ listInstallations;
16502
+ getInstallation;
16503
+ getInstallationReadiness;
16504
+ previewInstallationUpgrade;
16505
+ upgradeInstallation;
16506
+ setInstallationPolicy;
16507
+ unsubscribeInstallation;
16508
+ bindInstallationSlots;
16509
+ restoreInstallationForm;
16510
+ restoreInstallationWorkflowResources;
16511
+ reconcileInstallation;
16512
+ getThemeSettingsSchema;
15489
16513
  // Experiments API
15490
16514
  getExperiments;
15491
16515
  getExperiment;
@@ -15578,7 +16602,6 @@ var GravityRailClient = class {
15578
16602
  rebuildImportSkippedRules;
15579
16603
  previewImportWorkspace;
15580
16604
  getWorkspaceThemes;
15581
- updateWorkspaceThemes;
15582
16605
  getWorkspaceBySlug;
15583
16606
  getWorkspaceScopes;
15584
16607
  getUsageDashboard;
@@ -15617,10 +16640,15 @@ var GravityRailClient = class {
15617
16640
  getVoiceTrustProducts;
15618
16641
  syncVoiceTrustProducts;
15619
16642
  createOrganizationWorkspace;
16643
+ getOrganizationWorkspace;
16644
+ updateOrganizationWorkspace;
15620
16645
  getOrgBillingCustomer;
15621
16646
  getA2PCampaignConfig;
15622
16647
  updateA2PCampaignConfig;
15623
16648
  getOrgWorkspaceUsage;
16649
+ updateOrganizationMember;
16650
+ listOrgWebhookEndpoints;
16651
+ getOrgWebhookEndpoint;
15624
16652
  getVapidPublicKey;
15625
16653
  registerPushSubscription;
15626
16654
  unregisterPushSubscription;
@@ -15657,6 +16685,7 @@ var GravityRailClient = class {
15657
16685
  logout;
15658
16686
  requestCrossDomainToken;
15659
16687
  exchangeToken;
16688
+ createRealtimeLoginToken;
15660
16689
  getDomainMapping;
15661
16690
  createSignup;
15662
16691
  createAccount;
@@ -15746,6 +16775,7 @@ var GravityRailClient = class {
15746
16775
  updateProject;
15747
16776
  updatePlan;
15748
16777
  resolveFilePath;
16778
+ downloadFileContents;
15749
16779
  downloadFilesZip;
15750
16780
  createFile;
15751
16781
  uploadFile;
@@ -15806,7 +16836,6 @@ var GravityRailClient = class {
15806
16836
  resetRoutineRuns;
15807
16837
  previewSchedule;
15808
16838
  previewRoutineVoiceReadiness;
15809
- previewRoutineWorkflowAccess;
15810
16839
  // Workflows API
15811
16840
  getWorkflows;
15812
16841
  getWorkflow;
@@ -15827,7 +16856,6 @@ var GravityRailClient = class {
15827
16856
  createWorkflowFromTemplate;
15828
16857
  getWorkflowTaskAssignmentStats;
15829
16858
  getTaskChats;
15830
- getWorkflowAccessValidation;
15831
16859
  getWorkflowConfigValidation;
15832
16860
  getWorkflowNotes;
15833
16861
  createWorkflowNote;
@@ -15939,6 +16967,7 @@ var GravityRailClient = class {
15939
16967
  previewTemplate;
15940
16968
  getVariableRegistry;
15941
16969
  getChatModels;
16970
+ getManagerModels;
15942
16971
  getRealtimeModels;
15943
16972
  getSTTModels;
15944
16973
  getTTSModels;
@@ -16051,6 +17080,7 @@ var GravityRailClient = class {
16051
17080
  getMondayConnectionBoardColumns;
16052
17081
  getMondayConnectionBoardGroups;
16053
17082
  getMondaySyncConfig;
17083
+ getMondaySyncLogs;
16054
17084
  updateMondaySyncConfig;
16055
17085
  getLinkedMondayMembers;
16056
17086
  getMondayReconciliationMatches;
@@ -16172,10 +17202,12 @@ var GravityRailClient = class {
16172
17202
  deleteSalesforce;
16173
17203
  getSalesforceReconciliationMatches;
16174
17204
  linkMemberToSalesforce;
17205
+ linkUnlinkedSalesforceMembersByIdentity;
16175
17206
  bulkLinkMembersToSalesforce;
16176
17207
  unlinkMemberFromSalesforce;
16177
17208
  getLinkedSalesforceMembers;
16178
17209
  getSalesforceSyncConfig;
17210
+ getSalesforceSyncLogs;
16179
17211
  updateSalesforceSyncConfig;
16180
17212
  resyncSalesforceLinkedMembers;
16181
17213
  listSalesforceObjects;
@@ -16272,6 +17304,14 @@ var GravityRailClient = class {
16272
17304
  closeWorkspaceSupportRequest;
16273
17305
  reopenWorkspaceSupportRequest;
16274
17306
  clickWorkspaceSupportRequestResource;
17307
+ // Routing Rules API
17308
+ getRoutingRules;
17309
+ getRoutingRule;
17310
+ createRoutingRule;
17311
+ updateRoutingRule;
17312
+ deleteRoutingRule;
17313
+ reorderRoutingRules;
17314
+ previewRoutingRule;
16275
17315
  constructor(apiKey, baseUrl, customFetch) {
16276
17316
  const apis = createApiModules(apiKey, baseUrl, customFetch);
16277
17317
  this.apis = apis;
@@ -16293,6 +17333,8 @@ var GravityRailClient = class {
16293
17333
  bindMotdMethods(this, apis.motd);
16294
17334
  bindTrackedLinksMethods(this, apis.trackedLinks);
16295
17335
  bindJourneysMethods(this, apis.journeys);
17336
+ bindBundlesMethods(this, apis.bundles, apis.resourceWorkflows);
17337
+ bindInstallationsMethods(this, apis.installations);
16296
17338
  bindExperimentsMethods(this, apis.experiments);
16297
17339
  bindOperatorMethods(this, apis.operatorGroups);
16298
17340
  bindOrgMethods(this, apis.org);
@@ -16346,6 +17388,7 @@ var GravityRailClient = class {
16346
17388
  bindCustomersMethods(this, apis.customers);
16347
17389
  bindResellersMethods(this, apis.resellers);
16348
17390
  bindSupportRequestMethods(this, apis.supportRequests);
17391
+ bindRoutingRulesMethods(this, apis.routingRules);
16349
17392
  }
16350
17393
  /**
16351
17394
  * Return a workspace-scoped client facade.
@@ -16423,32 +17466,6 @@ var GravityRailClient = class {
16423
17466
  }
16424
17467
  });
16425
17468
  }
16426
- /**
16427
- * Set the acting member UUID for member identity switching.
16428
- * When set, all API requests will include the X-Acting-Member header.
16429
- * The backend will validate that the authenticated account owns this member
16430
- * and use it as the effective identity for the request.
16431
- * Propagates to all API modules.
16432
- */
16433
- setActingMember(memberUuid) {
16434
- Object.values(this.apis).forEach((api) => {
16435
- if (typeof api.setActingMember === "function") {
16436
- api.setActingMember(memberUuid);
16437
- }
16438
- });
16439
- }
16440
- /**
16441
- * Get the current acting member UUID.
16442
- * Returns undefined if no member switch is active.
16443
- */
16444
- getActingMember() {
16445
- for (const api of Object.values(this.apis)) {
16446
- if (typeof api.getActingMember === "function") {
16447
- return api.getActingMember();
16448
- }
16449
- }
16450
- return void 0;
16451
- }
16452
17469
  };
16453
17470
 
16454
17471
  // src/helpers/chat-interaction.ts
@@ -16494,6 +17511,16 @@ var ChatInteractionController = class {
16494
17511
  this.pending = void 0;
16495
17512
  }
16496
17513
  };
17514
+
17515
+ // src/types/generated/bundle_contract.ts
17516
+ var SolutionReleaseResponseSlug = {
17517
+ "member-enrollment": "member-enrollment",
17518
+ "member-reengagement": "member-reengagement",
17519
+ "treatment-adherence": "treatment-adherence",
17520
+ "heart-health": "heart-health",
17521
+ "recovery-checkins": "recovery-checkins",
17522
+ "care-coordination": "care-coordination"
17523
+ };
16497
17524
  // Annotate the CommonJS export names for ESM import in node:
16498
17525
  0 && (module.exports = {
16499
17526
  AGENT_NOTE_ORIGINS,
@@ -16550,7 +17577,11 @@ var ChatInteractionController = class {
16550
17577
  ConfluenceApi,
16551
17578
  ConnectionSyncApi,
16552
17579
  ConsentMethod,
17580
+ CreateMemberContactPointRequestContactType,
17581
+ CreateMemberContactPointRequestPurpose,
17582
+ CreateMemberContactPointRequestSharing,
16553
17583
  CriterionType,
17584
+ CrmActivityKind,
16554
17585
  CustomToolkitsApi,
16555
17586
  CustomerActivityClassifierDetectorName,
16556
17587
  CustomerActivityClassifierLabel,
@@ -16586,6 +17617,7 @@ var ChatInteractionController = class {
16586
17617
  FeatureCategory,
16587
17618
  FeatureVisibility,
16588
17619
  FeaturesApi,
17620
+ FeedCursorRejection,
16589
17621
  FhirClientType,
16590
17622
  FhirConnectionState,
16591
17623
  FhirConnectionsApi,
@@ -16684,6 +17716,12 @@ var ChatInteractionController = class {
16684
17716
  ReportsApi,
16685
17717
  ResellersApi,
16686
17718
  Resource,
17719
+ RevisionHistorySegment,
17720
+ RoutingActionType,
17721
+ RoutingAudience,
17722
+ RoutingChannel,
17723
+ RoutingTimeWindow,
17724
+ RunHealthCategory,
16687
17725
  SCOPES,
16688
17726
  SCOPE_PRESETS,
16689
17727
  SMS_DELIVERY_FAILURE_STATUSES,
@@ -16692,13 +17730,22 @@ var ChatInteractionController = class {
16692
17730
  STT_MODEL_DEEPGRAM_FLUX_MULTI_SELFHOST,
16693
17731
  STT_MODEL_DEEPGRAM_FLUX_SELFHOST,
16694
17732
  SalesforceApi,
17733
+ ScenarioHealthCaption,
17734
+ ScenarioHealthHeadline,
17735
+ ScenarioHealthSampleNote,
17736
+ ScenarioHealthState,
17737
+ ScenarioRunBlocker,
16695
17738
  Scope,
16696
17739
  ScopeCategory,
16697
17740
  ScopeManager,
17741
+ SendingNextStep,
17742
+ SendingStopState,
17743
+ SessionKind,
16698
17744
  SiteDnsRecordType,
16699
17745
  SitesApi,
16700
17746
  SlackAppsApi,
16701
17747
  SnippetsApi,
17748
+ SolutionReleaseResponseSlug,
16702
17749
  SubscriptionsApi,
16703
17750
  SupervisorsApi,
16704
17751
  SupportRequestsApi,
@@ -16717,12 +17764,12 @@ var ChatInteractionController = class {
16717
17764
  UiPromptPresentedKindValues,
16718
17765
  UiPromptResponseKindValues,
16719
17766
  UiPromptResponseStatusValues,
17767
+ UpdateMemberContactPointRequestContactType,
17768
+ UpdateMemberContactPointRequestPurpose,
17769
+ UpdateMemberContactPointRequestSharing,
16720
17770
  VoiceApi,
16721
17771
  WIDGET_SLUGS,
16722
- WORKFLOW_IMPLICIT_USE_SCOPE,
16723
- WorkflowAccessWarningResourceType,
16724
17772
  WorkflowNotesApi,
16725
- WorkflowResourceType,
16726
17773
  WorkflowRoutingMode,
16727
17774
  WorkflowsApi,
16728
17775
  WorkspaceFeature,
@@ -16739,6 +17786,7 @@ var ChatInteractionController = class {
16739
17786
  bindAppsMethods,
16740
17787
  bindAuthMethods,
16741
17788
  bindBillingMethods,
17789
+ bindBundlesMethods,
16742
17790
  bindCalendarsMethods,
16743
17791
  bindCallsMethods,
16744
17792
  bindChatsMethods,
@@ -16750,6 +17798,7 @@ var ChatInteractionController = class {
16750
17798
  bindEventsMethods,
16751
17799
  bindExperimentsMethods,
16752
17800
  bindFilesMethods,
17801
+ bindInstallationsMethods,
16753
17802
  bindIntegrationsMethods,
16754
17803
  bindInterventionRequestsMethods,
16755
17804
  bindJourneysMethods,
@@ -16765,6 +17814,7 @@ var ChatInteractionController = class {
16765
17814
  bindQualificationsMethods,
16766
17815
  bindQueriesMethods,
16767
17816
  bindResellersMethods,
17817
+ bindRoutingRulesMethods,
16768
17818
  bindSitesMethods,
16769
17819
  bindSupportRequestMethods,
16770
17820
  bindTasksMethods,
@@ -16806,9 +17856,6 @@ var ChatInteractionController = class {
16806
17856
  parseExperimentStatCount,
16807
17857
  parseOrgAuthChallenge,
16808
17858
  requiresAssistantParticipant,
16809
- roleCanUseWorkflow,
16810
- roleImplicitWorkflowUseScope,
16811
- roleWorkflowAccess,
16812
17859
  usesBuiltinAssistant,
16813
17860
  validateFeatureDependencies
16814
17861
  });