@gravity-rail/sdk 0.36.0 → 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-Ck1oMOr5.d.ts → chat-interaction-BB3ap8_u.d.ts} +8920 -6212
  7. package/dist/{chat-interaction-DqQu8Ad1.d.cts → chat-interaction-Bj1pciwo.d.cts} +8920 -6212
  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-R3C63RZJ.js → chunk-ZTUOB4V2.js} +1278 -218
  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 +1389 -350
  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 +112 -122
  27. package/dist/index.js.map +1 -1
  28. package/dist/internal.cjs +1303 -252
  29. package/dist/internal.cjs.map +1 -1
  30. package/dist/internal.d.cts +338 -55
  31. package/dist/internal.d.ts +338 -55
  32. package/dist/internal.js +68 -21
  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-Tn2V0-zt.d.cts → revision-state-BaJTq3Or.d.ts} +271 -55
  43. package/dist/{revision-state-V5RIhte0.d.ts → revision-state-CL11FA-T.d.cts} +271 -55
  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-BH_i_pVb.d.cts → tasks-ByJCQ5BI.d.cts} +3003 -2508
  51. package/dist/{tasks-BH_i_pVb.d.ts → tasks-ByJCQ5BI.d.ts} +3003 -2508
  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-R3C63RZJ.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,
@@ -230,9 +250,7 @@ __export(internal_exports, {
230
250
  TTS_MODEL_AWS_POLLY_GENERATIVE: () => TTS_MODEL_AWS_POLLY_GENERATIVE,
231
251
  TTS_MODEL_AWS_POLLY_NEURAL: () => TTS_MODEL_AWS_POLLY_NEURAL,
232
252
  TTS_MODEL_DEEPGRAM_AURA_2: () => TTS_MODEL_DEEPGRAM_AURA_2,
233
- TTS_MODEL_ELEVENLABS_FLASH: () => TTS_MODEL_ELEVENLABS_FLASH,
234
- TTS_MODEL_ELEVENLABS_MULTILINGUAL: () => TTS_MODEL_ELEVENLABS_MULTILINGUAL,
235
- TTS_MODEL_ELEVENLABS_TURBO: () => TTS_MODEL_ELEVENLABS_TURBO,
253
+ TTS_MODEL_XAI_V1: () => TTS_MODEL_XAI_V1,
236
254
  TTS_PREVIEW_PROVIDERS: () => TTS_PREVIEW_PROVIDERS,
237
255
  TasksApi: () => TasksApi,
238
256
  TemplatesApi: () => TemplatesApi,
@@ -243,12 +261,12 @@ __export(internal_exports, {
243
261
  UiPromptPresentedKindValues: () => UiPromptPresentedKind,
244
262
  UiPromptResponseKindValues: () => UiPromptResponseKind,
245
263
  UiPromptResponseStatusValues: () => UiPromptResponseStatus,
264
+ UpdateMemberContactPointRequestContactType: () => UpdateMemberContactPointRequestContactType,
265
+ UpdateMemberContactPointRequestPurpose: () => UpdateMemberContactPointRequestPurpose,
266
+ UpdateMemberContactPointRequestSharing: () => UpdateMemberContactPointRequestSharing,
246
267
  VoiceApi: () => VoiceApi,
247
268
  WIDGET_SLUGS: () => WIDGET_SLUGS,
248
- WORKFLOW_IMPLICIT_USE_SCOPE: () => WORKFLOW_IMPLICIT_USE_SCOPE,
249
- WorkflowAccessWarningResourceType: () => WorkflowAccessWarningResourceType,
250
269
  WorkflowNotesApi: () => WorkflowNotesApi,
251
- WorkflowResourceType: () => WorkflowAccessWarningResourceType,
252
270
  WorkflowRoutingMode: () => WorkflowRoutingMode,
253
271
  WorkflowsApi: () => WorkflowsApi,
254
272
  WorkspaceFeature: () => WorkspaceFeature,
@@ -265,6 +283,7 @@ __export(internal_exports, {
265
283
  bindAppsMethods: () => bindAppsMethods,
266
284
  bindAuthMethods: () => bindAuthMethods,
267
285
  bindBillingMethods: () => bindBillingMethods,
286
+ bindBundlesMethods: () => bindBundlesMethods,
268
287
  bindCalendarsMethods: () => bindCalendarsMethods,
269
288
  bindCallsMethods: () => bindCallsMethods,
270
289
  bindChatsMethods: () => bindChatsMethods,
@@ -276,6 +295,7 @@ __export(internal_exports, {
276
295
  bindEventsMethods: () => bindEventsMethods,
277
296
  bindExperimentsMethods: () => bindExperimentsMethods,
278
297
  bindFilesMethods: () => bindFilesMethods,
298
+ bindInstallationsMethods: () => bindInstallationsMethods,
279
299
  bindIntegrationsMethods: () => bindIntegrationsMethods,
280
300
  bindInterventionRequestsMethods: () => bindInterventionRequestsMethods,
281
301
  bindJourneysMethods: () => bindJourneysMethods,
@@ -291,6 +311,7 @@ __export(internal_exports, {
291
311
  bindQualificationsMethods: () => bindQualificationsMethods,
292
312
  bindQueriesMethods: () => bindQueriesMethods,
293
313
  bindResellersMethods: () => bindResellersMethods,
314
+ bindRoutingRulesMethods: () => bindRoutingRulesMethods,
294
315
  bindSitesMethods: () => bindSitesMethods,
295
316
  bindSupportRequestMethods: () => bindSupportRequestMethods,
296
317
  bindTasksMethods: () => bindTasksMethods,
@@ -332,9 +353,6 @@ __export(internal_exports, {
332
353
  parseExperimentStatCount: () => parseExperimentStatCount,
333
354
  parseOrgAuthChallenge: () => parseOrgAuthChallenge,
334
355
  requiresAssistantParticipant: () => requiresAssistantParticipant,
335
- roleCanUseWorkflow: () => roleCanUseWorkflow,
336
- roleImplicitWorkflowUseScope: () => roleImplicitWorkflowUseScope,
337
- roleWorkflowAccess: () => roleWorkflowAccess,
338
356
  usesBuiltinAssistant: () => usesBuiltinAssistant,
339
357
  validateFeatureDependencies: () => validateFeatureDependencies
340
358
  });
@@ -381,21 +399,6 @@ function encodePermissions(permissions) {
381
399
  if (permissions.delete) accessMode |= PERMISSION_DELETE;
382
400
  return accessMode;
383
401
  }
384
- var WORKFLOW_IMPLICIT_USE_SCOPE = "workflows:admin";
385
- function roleImplicitWorkflowUseScope(role) {
386
- return (role.grantedScopes ?? []).includes(WORKFLOW_IMPLICIT_USE_SCOPE) ? WORKFLOW_IMPLICIT_USE_SCOPE : null;
387
- }
388
- function roleWorkflowAccess(role, workflowId) {
389
- const viaScope = roleImplicitWorkflowUseScope(role);
390
- if (viaScope) {
391
- return { accessMode: PERMISSION_USE | PERMISSION_EDIT, viaScope };
392
- }
393
- const entry = (role.workflowAccess ?? []).find((wa) => wa.workflowId === workflowId);
394
- return { accessMode: entry?.accessMode ?? PERMISSION_NONE, viaScope: null };
395
- }
396
- function roleCanUseWorkflow(role, workflowId) {
397
- return (roleWorkflowAccess(role, workflowId).accessMode & PERMISSION_USE) !== 0;
398
- }
399
402
  var Scope = /* @__PURE__ */ ((Scope2) => {
400
403
  Scope2["WORKSPACE_READ"] = "workspace:read";
401
404
  Scope2["WORKSPACE_WRITE"] = "workspace:write";
@@ -464,6 +467,7 @@ var Scope = /* @__PURE__ */ ((Scope2) => {
464
467
  Scope2["LABELS_READ"] = "labels:read";
465
468
  Scope2["LABELS_WRITE"] = "labels:write";
466
469
  Scope2["ANALYTICS_READ"] = "analytics:read";
470
+ Scope2["ANONYMOUS_SUBMISSIONS_READ"] = "anonymous_submissions:read";
467
471
  Scope2["OPERATOR_READ"] = "operator:read";
468
472
  Scope2["OPERATOR_WRITE"] = "operator:write";
469
473
  Scope2["EXPORT_READ"] = "export:read";
@@ -487,6 +491,8 @@ var BulkMemberResultStatus = {
487
491
  skipped: "skipped"
488
492
  };
489
493
  var MemberImportMatchInfoMatchType = {
494
+ id: "id",
495
+ uuid: "uuid",
490
496
  external_id: "external_id",
491
497
  email: "email",
492
498
  phone: "phone",
@@ -508,6 +514,36 @@ var MergeMemberRolesRequestAccessStrategy = {
508
514
  target_only: "target_only"
509
515
  };
510
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
+
511
547
  // src/types/member-types.ts
512
548
  var MemberType = /* @__PURE__ */ ((MemberType2) => {
513
549
  MemberType2["ANONYMOUS"] = "anonymous";
@@ -593,6 +629,8 @@ var EventRuleEventType = /* @__PURE__ */ ((EventRuleEventType2) => {
593
629
  EventRuleEventType2["DATA_RECORD_CHANGED"] = "data_record:changed";
594
630
  EventRuleEventType2["CHAT_CREATED"] = "chat:created";
595
631
  EventRuleEventType2["CHAT_SUMMARY"] = "chat:summary";
632
+ EventRuleEventType2["MESSAGE_CREATED"] = "message:created";
633
+ EventRuleEventType2["LINK_CLICKED"] = "link:clicked";
596
634
  EventRuleEventType2["CHAT_CALLBACK"] = "chat:callback";
597
635
  EventRuleEventType2["MEMBER_UPDATED"] = "member:updated";
598
636
  EventRuleEventType2["ROUTINE_TRIGGERED"] = "routine:triggered";
@@ -656,6 +694,20 @@ function eventRuleActionParams(params) {
656
694
  }
657
695
  var MASKED_SECRET_SENTINEL = "__SECRET_SET__";
658
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
+
659
711
  // src/types/billing-types.ts
660
712
  var WorkspaceFeature = /* @__PURE__ */ ((WorkspaceFeature2) => {
661
713
  WorkspaceFeature2["PHONE"] = "phone";
@@ -671,7 +723,6 @@ var WorkspaceFeature = /* @__PURE__ */ ((WorkspaceFeature2) => {
671
723
  WorkspaceFeature2["WEB_SEARCH"] = "web_search";
672
724
  WorkspaceFeature2["CALENDAR"] = "calendar";
673
725
  WorkspaceFeature2["JOURNEY_V2_EDITOR"] = "journey_v2_editor";
674
- WorkspaceFeature2["EXPERIMENTS"] = "experiments";
675
726
  WorkspaceFeature2["MAILBOX_USER_INPUT"] = "mailbox_user_input";
676
727
  WorkspaceFeature2["FORKED_TRAJECTORIES"] = "forked_trajectories";
677
728
  WorkspaceFeature2["GMAIL"] = "gmail";
@@ -692,6 +743,7 @@ var WorkspaceFeature = /* @__PURE__ */ ((WorkspaceFeature2) => {
692
743
  WorkspaceFeature2["IMAGE_GENERATION"] = "image_generation";
693
744
  WorkspaceFeature2["CHARLESTON_NEPHROLOGY_PMD_PAGING"] = "charleston_nephrology_pmd_paging";
694
745
  WorkspaceFeature2["PATIENTSYNC_TRANSFER"] = "patientsync_transfer";
746
+ WorkspaceFeature2["COSAN_PATHWAYS_SCHEDULING"] = "cosan_pathways_scheduling";
695
747
  return WorkspaceFeature2;
696
748
  })(WorkspaceFeature || {});
697
749
  var MemberFeature = /* @__PURE__ */ ((MemberFeature2) => {
@@ -823,6 +875,7 @@ var IndexStatus = /* @__PURE__ */ ((IndexStatus2) => {
823
875
  var DataTypeRecordScope = /* @__PURE__ */ ((DataTypeRecordScope2) => {
824
876
  DataTypeRecordScope2["WORKSPACE"] = "workspace";
825
877
  DataTypeRecordScope2["MEMBER"] = "member";
878
+ DataTypeRecordScope2["ANONYMOUS"] = "anonymous";
826
879
  return DataTypeRecordScope2;
827
880
  })(DataTypeRecordScope || {});
828
881
  var DataSensitivity = /* @__PURE__ */ ((DataSensitivity2) => {
@@ -851,10 +904,10 @@ var ModelProvider = {
851
904
  google: "google",
852
905
  anthropic: "anthropic",
853
906
  aws: "aws",
854
- elevenlabs: "elevenlabs",
855
907
  deepgram: "deepgram",
856
908
  xai: "xai",
857
909
  fireworks: "fireworks",
910
+ vercel: "vercel",
858
911
  custom: "custom"
859
912
  };
860
913
  var ModelType = {
@@ -877,9 +930,7 @@ var STT_MODEL_DEEPGRAM_FLUX = "deepgram:stt:flux-general-en";
877
930
  var STT_MODEL_DEEPGRAM_FLUX_SELFHOST = "deepgram:stt:flux-general-en:selfhost";
878
931
  var STT_MODEL_DEEPGRAM_FLUX_MULTI = "deepgram:stt:flux-general-multi";
879
932
  var STT_MODEL_DEEPGRAM_FLUX_MULTI_SELFHOST = "deepgram:stt:flux-general-multi:selfhost";
880
- var TTS_MODEL_ELEVENLABS_FLASH = "elevenlabs:tts:eleven_flash_v2_5";
881
- var TTS_MODEL_ELEVENLABS_TURBO = "elevenlabs:tts:eleven_turbo_v2_5";
882
- var TTS_MODEL_ELEVENLABS_MULTILINGUAL = "elevenlabs:tts:eleven_multilingual_v2";
933
+ var TTS_MODEL_XAI_V1 = "xai:tts:v1";
883
934
  var TTS_MODEL_DEEPGRAM_AURA_2 = "deepgram:tts:aura-2";
884
935
  var TTS_MODEL_AWS_POLLY_GENERATIVE = "aws:tts:polly-generative";
885
936
  var TTS_MODEL_AWS_POLLY_NEURAL = "aws:tts:polly-neural";
@@ -957,7 +1008,26 @@ var FhirClientType = /* @__PURE__ */ ((FhirClientType2) => {
957
1008
  return FhirClientType2;
958
1009
  })(FhirClientType || {});
959
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
+
960
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
+ };
961
1031
  var TestChatRunLane = {
962
1032
  text: "text",
963
1033
  web_realtime: "web_realtime",
@@ -975,6 +1045,44 @@ var TestChatRunOutcome = {
975
1045
  instrument_failure: "instrument_failure"
976
1046
  };
977
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
+
978
1086
  // src/types/qualification-types.ts
979
1087
  var CriterionType = /* @__PURE__ */ ((CriterionType2) => {
980
1088
  CriterionType2["EXPRESSION"] = "expression";
@@ -1269,8 +1377,6 @@ var CONFIG_HEALTH_FACADE_CHECK_SLUGS = [
1269
1377
  "workflow.config",
1270
1378
  "journey.authoring",
1271
1379
  "journey.v2_validation",
1272
- "workflow.access",
1273
- "routine.workflow_access",
1274
1380
  "workspace.validation"
1275
1381
  ];
1276
1382
  function isConfigHealthFacadeCheckSlug(value) {
@@ -1323,13 +1429,14 @@ var AbilityTypeSlugs = {
1323
1429
  GOOGLE_DRIVE: "integration:google_drive",
1324
1430
  GOOGLE_SHEETS: "integration:google_sheets",
1325
1431
  CHARLESTON_PMD_PAGING: "integration:charleston_pmd_paging",
1432
+ COSAN_PATHWAYS_SCHEDULING: "integration:cosan_pathways_scheduling",
1326
1433
  // Communication
1327
1434
  PHONE_CALL_TOOLS: "communication:phone_call_tools",
1328
1435
  SEND_SMS: "communication:send_sms",
1436
+ SEND_EMAIL: "communication:send_email",
1329
1437
  SEND_WHATSAPP: "communication:send_whatsapp",
1330
1438
  MEMBER_ACCESS: "communication:member_access",
1331
1439
  AUDIO_PLAYBACK: "communication:audio_playback",
1332
- IMAGE_DISPLAY: "communication:image_display",
1333
1440
  // Oversight
1334
1441
  SUPERVISOR: "oversight:supervisor",
1335
1442
  SUPERVISOR_ACTIONS: "oversight:supervisor_actions",
@@ -1341,6 +1448,8 @@ var AbilityTypeSlugs = {
1341
1448
  MANAGE_WORKSPACE: "delegation:manage_workspace",
1342
1449
  // Workflow
1343
1450
  WORKFLOW_RUN: "workflow:run",
1451
+ // Access
1452
+ MEMBER_ROLE_GATE: "access:member_role_gate",
1344
1453
  // Commerce
1345
1454
  RESELLER: "commerce:reseller",
1346
1455
  // System (auto-injected, hidden from users)
@@ -1368,6 +1477,12 @@ var PromoCodeStatus = {
1368
1477
  exhausted: "exhausted"
1369
1478
  };
1370
1479
 
1480
+ // src/types/generated/session.ts
1481
+ var SessionKind = {
1482
+ account: "account",
1483
+ site: "site"
1484
+ };
1485
+
1371
1486
  // src/types/query-engine-types.ts
1372
1487
  var QUERY_VALUELESS_OPS = /* @__PURE__ */ new Set([
1373
1488
  "isEmpty",
@@ -1416,6 +1531,14 @@ var ActivityWindowBasis = {
1416
1531
  absolute: "absolute",
1417
1532
  workspace_local: "workspace_local"
1418
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
+ };
1419
1542
 
1420
1543
  // src/types/generated/family.ts
1421
1544
  var ActivityEventFamily = {
@@ -1458,7 +1581,12 @@ var CustomerActivityClassifierLabel = {
1458
1581
  repetitive_loop: "repetitive_loop",
1459
1582
  manager_no_response: "manager_no_response",
1460
1583
  docs_or_skill_gap: "docs_or_skill_gap",
1461
- 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"
1462
1590
  };
1463
1591
  var CustomerActivityEventSource = {
1464
1592
  system: "system",
@@ -1645,14 +1773,7 @@ function getTTSProvider(ttsModel) {
1645
1773
  if (!ttsModel || ttsModel === "native") return ttsModel ?? null;
1646
1774
  return ttsModel.split(":")[0] ?? null;
1647
1775
  }
1648
- var TTS_PREVIEW_PROVIDERS = [
1649
- "openai",
1650
- "elevenlabs",
1651
- "google",
1652
- "aws",
1653
- "deepgram",
1654
- "xai"
1655
- ];
1776
+ var TTS_PREVIEW_PROVIDERS = ["openai", "google", "aws", "deepgram", "xai"];
1656
1777
  function getVoiceModelId(entity) {
1657
1778
  const config = entity.realtimeModelConfig;
1658
1779
  return config?.voiceModel ?? null;
@@ -1858,12 +1979,6 @@ var AbilityConfigIssueSeverity = {
1858
1979
  warning: "warning",
1859
1980
  error: "error"
1860
1981
  };
1861
- var WorkflowAccessWarningResourceType = {
1862
- form: "form",
1863
- file: "file",
1864
- folder: "folder",
1865
- calendar: "calendar"
1866
- };
1867
1982
 
1868
1983
  // src/types/generated/workflow.ts
1869
1984
  var WorkflowRoutingMode = {
@@ -1890,12 +2005,21 @@ var ImportReadinessIssueCode = {
1890
2005
  phone_not_provisioned: "phone_not_provisioned",
1891
2006
  phone_missing_default_workflow: "phone_missing_default_workflow",
1892
2007
  inbox_missing_default_workflow: "inbox_missing_default_workflow",
1893
- 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"
1894
2015
  };
1895
2016
  var ImportReadinessIssueResourceType = {
1896
2017
  phone: "phone",
1897
2018
  inbox: "inbox",
1898
- workflow: "workflow"
2019
+ workflow: "workflow",
2020
+ routine: "routine",
2021
+ app_connection: "app_connection",
2022
+ site: "site"
1899
2023
  };
1900
2024
  var ImportSkippedRuleResourceGroupResourceType = {
1901
2025
  phone: "phone",
@@ -1917,7 +2041,8 @@ var ImportSkippedRuleResponseParentKind = {
1917
2041
  var ImportSkippedRuleResponseReasonCode = {
1918
2042
  missing_binding: "missing_binding",
1919
2043
  invalid_event_rule_cel: "invalid_event_rule_cel",
1920
- unresolved_journey_scope: "unresolved_journey_scope"
2044
+ unresolved_journey_scope: "unresolved_journey_scope",
2045
+ missing_source_workflow: "missing_source_workflow"
1921
2046
  };
1922
2047
  var ImportSkippedRuleResponseStatus = {
1923
2048
  outstanding: "outstanding",
@@ -1925,6 +2050,33 @@ var ImportSkippedRuleResponseStatus = {
1925
2050
  dismissed: "dismissed"
1926
2051
  };
1927
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
+
1928
2080
  // src/app-context.ts
1929
2081
  function formatAppContextAsMarkdown(context) {
1930
2082
  if (!context) {
@@ -2112,15 +2264,15 @@ function isChatType(value) {
2112
2264
  }
2113
2265
 
2114
2266
  // src/constants/models.ts
2115
- var DEFAULT_CHAT_MODEL = "aws:bedrock:claude-4-5-haiku";
2116
- 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";
2117
2269
  var DEFAULT_AGENT_REALTIME_MODEL = "xai:realtime:voice-agent-2";
2118
2270
  var DEFAULT_AGENT_REALTIME_MODEL_CONFIG = {
2119
2271
  ttsModel: "native",
2120
2272
  voiceModel: "xai:voice:cosmo"
2121
2273
  };
2122
- var DEFAULT_VOICE_INFERENCE_MODEL = "openai:chat:gpt-5.6-luna";
2123
- var DEFAULT_CUSTOM_VOICE_MODEL = "elevenlabs:voice:river";
2274
+ var DEFAULT_VOICE_INFERENCE_MODEL = "openai:chat:gpt-6-luna";
2275
+ var DEFAULT_CUSTOM_VOICE_MODEL = "xai:voice:lux";
2124
2276
 
2125
2277
  // src/scopes.ts
2126
2278
  var ScopeCategory = /* @__PURE__ */ ((ScopeCategory2) => {
@@ -2147,6 +2299,7 @@ var ScopeCategory = /* @__PURE__ */ ((ScopeCategory2) => {
2147
2299
  ScopeCategory2["APPS"] = "apps";
2148
2300
  ScopeCategory2["LABELS"] = "labels";
2149
2301
  ScopeCategory2["ANALYTICS"] = "analytics";
2302
+ ScopeCategory2["ANONYMOUS_SUBMISSIONS"] = "anonymous_submissions";
2150
2303
  ScopeCategory2["OPERATOR"] = "operator";
2151
2304
  ScopeCategory2["EXPORT"] = "export";
2152
2305
  ScopeCategory2["ORG"] = "org";
@@ -2609,6 +2762,14 @@ var SCOPES = {
2609
2762
  description: "View analytics and reports"
2610
2763
  },
2611
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
+ // =========================================================================
2612
2773
  // EXPORT
2613
2774
  // =========================================================================
2614
2775
  "export:read": {
@@ -2891,7 +3052,6 @@ var BaseApiClient = class {
2891
3052
  enhancedAuthInProgress = null;
2892
3053
  orgAuthHandler;
2893
3054
  orgAuthInProgress = null;
2894
- actingMemberUuid;
2895
3055
  orgSession;
2896
3056
  /**
2897
3057
  * The org_uuid that issued the current org auth credential. Tracked so we can detect
@@ -2931,21 +3091,6 @@ var BaseApiClient = class {
2931
3091
  updateApiKey(newApiKey) {
2932
3092
  this.apiKey = newApiKey;
2933
3093
  }
2934
- /**
2935
- * Set the acting member UUID for member identity switching.
2936
- * When set, all API requests will include the X-Acting-Member header.
2937
- * The backend will validate that the authenticated account owns this member
2938
- * and use it as the effective identity for the request.
2939
- */
2940
- setActingMember(memberUuid) {
2941
- this.actingMemberUuid = memberUuid;
2942
- }
2943
- /**
2944
- * Get the current acting member UUID.
2945
- */
2946
- getActingMember() {
2947
- return this.actingMemberUuid;
2948
- }
2949
3094
  /**
2950
3095
  * Set the opaque org session credential for cross-domain requests.
2951
3096
  * Opaque gr_sess_ values use X-Org-Session. Legacy orgToken JWE values still
@@ -2983,9 +3128,6 @@ var BaseApiClient = class {
2983
3128
  headers.set("Authorization", `Bearer ${requestToken}`);
2984
3129
  }
2985
3130
  }
2986
- if (this.actingMemberUuid) {
2987
- headers.set("X-Acting-Member", this.actingMemberUuid);
2988
- }
2989
3131
  setOrgAuthHeader(headers, this.orgSession);
2990
3132
  const fullUrl = `${this.baseUrl}/api/v2/${endpoint}`;
2991
3133
  const response = await this.fetchFunction(fullUrl, {
@@ -3137,9 +3279,6 @@ ${formattedErrors}`, response.status);
3137
3279
  headers.set("Authorization", `Bearer ${requestToken}`);
3138
3280
  }
3139
3281
  }
3140
- if (this.actingMemberUuid) {
3141
- headers.set("X-Acting-Member", this.actingMemberUuid);
3142
- }
3143
3282
  setOrgAuthHeader(headers, this.orgSession);
3144
3283
  const response = await this.fetchFunction(`${this.baseUrl}/api/v2/${endpoint}`, {
3145
3284
  ...options,
@@ -3249,9 +3388,6 @@ ${formattedErrors}`, response.status);
3249
3388
  headers.set("Authorization", `Bearer ${requestToken}`);
3250
3389
  }
3251
3390
  }
3252
- if (this.actingMemberUuid) {
3253
- headers.set("X-Acting-Member", this.actingMemberUuid);
3254
- }
3255
3391
  setOrgAuthHeader(headers, this.orgSession);
3256
3392
  const fullUrl = `${this.baseUrl}/${path}`;
3257
3393
  const response = await this.fetchFunction(fullUrl, {
@@ -3347,6 +3483,299 @@ var AbilitiesApi = class extends BaseApiClient {
3347
3483
  }
3348
3484
  };
3349
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
+
3350
3779
  // src/api/access-grants.ts
3351
3780
  var AccessGrantsApi = class extends BaseApiClient {
3352
3781
  /** List access grants received by the current member. */
@@ -3479,7 +3908,6 @@ var AgentsApi = class extends BaseApiClient {
3479
3908
  if (options.search) params.append("search", options.search);
3480
3909
  if (options.includeArchived)
3481
3910
  params.append("includeArchived", options.includeArchived.toString());
3482
- if (options.owner) params.append("owner", options.owner);
3483
3911
  return this.fetch(
3484
3912
  `w/${wid}/agents${params.toString() ? `?${params.toString()}` : ""}`
3485
3913
  );
@@ -3535,6 +3963,18 @@ var AIModelsApi = class extends BaseApiClient {
3535
3963
  const url = queryString ? `ai-models/chat?${queryString}` : "ai-models/chat";
3536
3964
  return this.fetch(url);
3537
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
+ }
3538
3978
  /**
3539
3979
  * Get available realtime AI models
3540
3980
  */
@@ -3986,6 +4426,19 @@ var AuthApi = class extends BaseApiClient {
3986
4426
  body: JSON.stringify(request)
3987
4427
  });
3988
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
+ }
3989
4442
  /** Get the organization and workspace mapping for a custom domain. */
3990
4443
  async getDomainMapping(customDomain) {
3991
4444
  return this.fetch(`s/mapping/${customDomain}`);
@@ -4645,6 +5098,26 @@ var ChatsApi = class extends BaseApiClient {
4645
5098
  async getChat(wid, id) {
4646
5099
  return this.fetch(`w/${wid}/chats/${id}`);
4647
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
+ }
4648
5121
  /**
4649
5122
  * Get a short-lived, interactive AgentCore browser view for this Chat.
4650
5123
  *
@@ -5251,10 +5724,18 @@ var DashboardsApi = class extends BaseApiClient {
5251
5724
  `w/${wid}/dashboards/stats/channels${query ? `?${query}` : ""}`
5252
5725
  );
5253
5726
  }
5254
- /** Assignment status rollup per root workflow. */
5255
- 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();
5256
5737
  return this.fetch(
5257
- `w/${wid}/dashboards/stats/workflow-assignments`
5738
+ `w/${wid}/dashboards/stats/workflow-assignments${query ? `?${query}` : ""}`
5258
5739
  );
5259
5740
  }
5260
5741
  /**
@@ -5396,6 +5877,26 @@ var DataTypesApi = class extends BaseApiClient {
5396
5877
  `w/${wid}/data-types/${dataTypeId}/records${params?.toString() ? `?${params.toString()}` : ""}`
5397
5878
  );
5398
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
+ }
5399
5900
  // Data-record filter APIs (saved Query IR predicates per form)
5400
5901
  /** List saved data-record filters, optionally scoped to one DataType. */
5401
5902
  async getDataRecordFilters(wid, options) {
@@ -5438,6 +5939,15 @@ var DataTypesApi = class extends BaseApiClient {
5438
5939
  async getDataRecord(wid, recordId) {
5439
5940
  return this.fetch(`w/${wid}/data-types/records/${recordId}`);
5440
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
+ }
5441
5951
  /** Create a new data record under the specified data type. */
5442
5952
  async createDataRecord(wid, dataTypeId, record) {
5443
5953
  return this.fetch(`w/${wid}/data-types/${dataTypeId}/records`, {
@@ -5982,20 +6492,6 @@ var EventsApi = class extends BaseApiClient {
5982
6492
  body: JSON.stringify(request)
5983
6493
  });
5984
6494
  }
5985
- /**
5986
- * Preview which target-audience roles lack Workflow USE for the Workflows a
5987
- * draft Routine would start. Non-persisting, non-blocking authoring assist —
5988
- * returns warnings only (role/Workflow names + IDs; no Member data).
5989
- */
5990
- async previewRoutineWorkflowAccess(wid, request) {
5991
- return this.fetch(
5992
- `w/${wid}/routines/preview-workflow-access`,
5993
- {
5994
- method: "POST",
5995
- body: JSON.stringify(request)
5996
- }
5997
- );
5998
- }
5999
6495
  /**
6000
6496
  * Preview what would stop a draft Routine placing its scheduled outbound
6001
6497
  * calls — the Member voice opt-out, a missing member phone, or a
@@ -6694,6 +7190,19 @@ var FilesApi = class extends BaseApiClient {
6694
7190
  if (folderId != null) params.append("folderId", String(folderId));
6695
7191
  return this.fetch(`w/${wid}/files/resolve-path?${params.toString()}`);
6696
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
+ }
6697
7206
  /**
6698
7207
  * Download the given files + folders (folders recursively) as a single ZIP.
6699
7208
  * Returns the raw archive bytes for the caller to save.
@@ -7445,7 +7954,21 @@ function throwMemberImportError(errorBody, fallback) {
7445
7954
  }
7446
7955
  throw new Error(typeof detail === "string" ? detail : fallback);
7447
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
+ }
7448
7970
  var MembersApi = class extends BaseApiClient {
7971
+ memberImportPlans = /* @__PURE__ */ new WeakMap();
7449
7972
  /** Get the currently authenticated member for a workspace. */
7450
7973
  async getCurrentMember(wid) {
7451
7974
  return this.fetch(`w/${wid}/me`);
@@ -7498,33 +8021,6 @@ var MembersApi = class extends BaseApiClient {
7498
8021
  `w/${wid}/me/records?${params.toString()}`
7499
8022
  );
7500
8023
  }
7501
- /**
7502
- * Get all members owned by the current member in this workspace.
7503
- * Returns the authenticated member plus any members they own (via owner_id).
7504
- * Used by the member switcher to show available identities.
7505
- */
7506
- async getOwnedMembers(wid) {
7507
- return this.fetch(`w/${wid}/members/owned`);
7508
- }
7509
- /**
7510
- * Switch to a different member identity owned by the current member.
7511
- * Sets the actingAsMemberUuid cookie for subsequent requests.
7512
- * Uses UUID (not ID) to prevent cross-workspace identity confusion.
7513
- */
7514
- async switchMember(wid, memberUuid) {
7515
- return this.fetch(`w/${wid}/members/switch`, {
7516
- method: "POST",
7517
- body: JSON.stringify({ memberUuid })
7518
- });
7519
- }
7520
- /**
7521
- * Clear the member switch and return to the authenticated member.
7522
- */
7523
- async clearMemberSwitch(wid) {
7524
- return this.fetch(`w/${wid}/members/switch`, {
7525
- method: "DELETE"
7526
- });
7527
- }
7528
8024
  /** Update the currently authenticated member's profile. */
7529
8025
  async updateCurrentMember(wid, member) {
7530
8026
  return this.fetch(`w/${wid}/me`, {
@@ -7564,6 +8060,16 @@ var MembersApi = class extends BaseApiClient {
7564
8060
  async getWorkspaceMember(wid, memberId) {
7565
8061
  return this.fetch(`w/${wid}/members/${memberId}`);
7566
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
+ }
7567
8073
  /**
7568
8074
  * Get one member of an org's workspace, under `org:read`.
7569
8075
  *
@@ -7615,6 +8121,53 @@ var MembersApi = class extends BaseApiClient {
7615
8121
  method: "POST"
7616
8122
  });
7617
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
+ }
7618
8171
  /**
7619
8172
  * Send the member an SMS asking them to confirm their phone number. When they
7620
8173
  * reply, a trusted phone auth binding is created so they can use SMS as
@@ -7756,16 +8309,13 @@ var MembersApi = class extends BaseApiClient {
7756
8309
  * operator can decide whether to skip or explicitly overwrite before
7757
8310
  * committing. Requires MEMBERS_ADMIN and is bulk-PHI audited server-side.
7758
8311
  */
7759
- async previewImportMembers(wid, file, newMemberRoleId) {
7760
- const formData = new FormData();
7761
- formData.append("file", file);
7762
- const params = new URLSearchParams();
7763
- params.append("new_member_role_id", newMemberRoleId.toString());
8312
+ async previewImportMembers(wid, file, newMemberRoleId, options) {
8313
+ const { body, params } = memberImportUpload(file, newMemberRoleId, options);
7764
8314
  const response = await this.fetchRaw(
7765
8315
  `w/${wid}/members/import/preview?${params.toString()}`,
7766
8316
  {
7767
8317
  method: "POST",
7768
- body: formData
8318
+ body
7769
8319
  },
7770
8320
  [400, 413]
7771
8321
  );
@@ -7773,7 +8323,19 @@ var MembersApi = class extends BaseApiClient {
7773
8323
  const error = await response.json().catch(() => ({}));
7774
8324
  throwMemberImportError(error, "Import preview failed");
7775
8325
  }
7776
- 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;
7777
8339
  }
7778
8340
  /**
7779
8341
  * Import members from a CSV file, streaming progress updates via callback.
@@ -7783,10 +8345,11 @@ var MembersApi = class extends BaseApiClient {
7783
8345
  * Send 'overwrite_identity_fields' only after the operator confirms a preview.
7784
8346
  */
7785
8347
  async importMembers(wid, file, newMemberRoleId, onProgress, options) {
7786
- const formData = new FormData();
7787
- formData.append("file", file);
7788
- const params = new URLSearchParams();
7789
- 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);
7790
8353
  if (options?.identityConflictPolicy) {
7791
8354
  params.append("identity_conflict_policy", options.identityConflictPolicy);
7792
8355
  }
@@ -7794,7 +8357,7 @@ var MembersApi = class extends BaseApiClient {
7794
8357
  `w/${wid}/members/import?${params.toString()}`,
7795
8358
  {
7796
8359
  method: "POST",
7797
- body: formData
8360
+ body
7798
8361
  },
7799
8362
  [400, 413]
7800
8363
  );
@@ -7802,34 +8365,48 @@ var MembersApi = class extends BaseApiClient {
7802
8365
  const error = await response.json().catch(() => ({}));
7803
8366
  throwMemberImportError(error, "Import failed");
7804
8367
  }
7805
- if (onProgress && response.body) {
7806
- const reader = response.body.getReader();
7807
- const decoder = new TextDecoder();
7808
- 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 {
7809
8387
  while (true) {
7810
8388
  const { done, value } = await reader.read();
7811
8389
  if (done) break;
7812
8390
  buffer += decoder.decode(value, { stream: true });
7813
8391
  const lines = buffer.split("\n");
7814
8392
  buffer = lines.pop() ?? "";
7815
- for (const line of lines) {
7816
- const trimmed = line.trim();
7817
- if (!trimmed) continue;
7818
- try {
7819
- onProgress(JSON.parse(trimmed));
7820
- } catch {
7821
- }
7822
- }
7823
- }
7824
- const tail = buffer.trim();
7825
- if (tail) {
7826
- try {
7827
- onProgress(JSON.parse(tail));
7828
- } catch {
7829
- }
8393
+ for (const line of lines) consume(line);
7830
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");
7831
8405
  }
7832
- return { success: true };
8406
+ return {
8407
+ success: !hadError && (result.failed ?? 0) === 0 && (result.conflicted ?? 0) === 0,
8408
+ result
8409
+ };
7833
8410
  }
7834
8411
  /** Export members as a downloadable file with selected fields and data types. */
7835
8412
  async exportMembers(wid, selectedFields, selectedDataTypes, memberType) {
@@ -8057,6 +8634,18 @@ var MembersApi = class extends BaseApiClient {
8057
8634
  { method: "DELETE" }
8058
8635
  );
8059
8636
  }
8637
+ async listContactPermissions(wid, params) {
8638
+ return this.fetch(`w/${wid}/contact-permissions/history`, {
8639
+ method: "POST",
8640
+ body: JSON.stringify(params)
8641
+ });
8642
+ }
8643
+ async createContactPermission(wid, body) {
8644
+ return this.fetch(`w/${wid}/contact-permissions`, {
8645
+ method: "POST",
8646
+ body: JSON.stringify(body)
8647
+ });
8648
+ }
8060
8649
  };
8061
8650
 
8062
8651
  // src/api/activity.ts
@@ -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",
@@ -13150,6 +14014,7 @@ var WORKSPACE_METHOD_NAMES = [
13150
14014
  "createChatLabel",
13151
14015
  "createClientWorkspace",
13152
14016
  "createConnection",
14017
+ "createContactPermission",
13153
14018
  "createCustomTool",
13154
14019
  "createCustomToolkit",
13155
14020
  "createDashboard",
@@ -13185,6 +14050,7 @@ var WORKSPACE_METHOD_NAMES = [
13185
14050
  "createPhoneNumber",
13186
14051
  "createProduct",
13187
14052
  "createRoutine",
14053
+ "createRoutingRule",
13188
14054
  "createScenario",
13189
14055
  "createSignup",
13190
14056
  "createSite",
@@ -13235,6 +14101,7 @@ var WORKSPACE_METHOD_NAMES = [
13235
14101
  "deleteGoal",
13236
14102
  "deleteHubspot",
13237
14103
  "deleteInbox",
14104
+ "deleteJourneyDraft",
13238
14105
  "deleteJourneyNote",
13239
14106
  "deleteMcpServer",
13240
14107
  "deleteMember",
@@ -13252,6 +14119,7 @@ var WORKSPACE_METHOD_NAMES = [
13252
14119
  "deletePlatformApp",
13253
14120
  "deleteProduct",
13254
14121
  "deleteRoutine",
14122
+ "deleteRoutingRule",
13255
14123
  "deleteSalesforce",
13256
14124
  "deleteScenario",
13257
14125
  "deleteSite",
@@ -13284,6 +14152,7 @@ var WORKSPACE_METHOD_NAMES = [
13284
14152
  "dismissAllNotifications",
13285
14153
  "dismissNotification",
13286
14154
  "downloadEmailAttachment",
14155
+ "downloadFileContents",
13287
14156
  "downloadFilesZip",
13288
14157
  "downloadSiteSourceZip",
13289
14158
  "editWorkflowRevisionAsDraft",
@@ -13346,6 +14215,7 @@ var WORKSPACE_METHOD_NAMES = [
13346
14215
  "getAgentTasks",
13347
14216
  "getAgents",
13348
14217
  "getAnonymousResolution",
14218
+ "getAnonymousFormSubmission",
13349
14219
  "getAnonymousResolutions",
13350
14220
  "getApiKeys",
13351
14221
  "getArchiveBlockers",
@@ -13359,6 +14229,12 @@ var WORKSPACE_METHOD_NAMES = [
13359
14229
  "getAvailableActions",
13360
14230
  "getAvailablePhoneNumbers",
13361
14231
  "getAvailableSlots",
14232
+ "getInstallation",
14233
+ "getInstallationReadiness",
14234
+ "getThemeSettingsSchema",
14235
+ "getBundleDraft",
14236
+ "getBundle",
14237
+ "getBundleVersion",
13362
14238
  "getBusinessHoursStatus",
13363
14239
  "getCalendar",
13364
14240
  "getCalendarEvent",
@@ -13371,8 +14247,11 @@ var WORKSPACE_METHOD_NAMES = [
13371
14247
  "getCelContext",
13372
14248
  "getCharlestonTestDeliveryRecipients",
13373
14249
  "getChat",
14250
+ "getChatByUuid",
13374
14251
  "getChatAssignmentTasks",
13375
14252
  "getChatBrowserLiveView",
14253
+ "saveChatBrowserStorage",
14254
+ "clearChatBrowserStorage",
13376
14255
  "getChatCallbacks",
13377
14256
  "getChatEhrWritebackOutcomes",
13378
14257
  "getChatEmails",
@@ -13418,6 +14297,7 @@ var WORKSPACE_METHOD_NAMES = [
13418
14297
  "getDashboardWorkflowAssignmentStats",
13419
14298
  "getDashboards",
13420
14299
  "getDataRecord",
14300
+ "getDataRecordByUuid",
13421
14301
  "getDataRecordChanges",
13422
14302
  "getDataRecordFilter",
13423
14303
  "getDataRecordFilterCount",
@@ -13535,6 +14415,7 @@ var WORKSPACE_METHOD_NAMES = [
13535
14415
  "getMcpServerResources",
13536
14416
  "getMcpServerTools",
13537
14417
  "getMcpServers",
14418
+ "getMemberByUuid",
13538
14419
  "getMemberExperiments",
13539
14420
  "getMemberFieldDefinitions",
13540
14421
  "getMemberFields",
@@ -13566,6 +14447,7 @@ var WORKSPACE_METHOD_NAMES = [
13566
14447
  "getMondayConnectionStatus",
13567
14448
  "getMondayReconciliationMatches",
13568
14449
  "getMondaySyncConfig",
14450
+ "getMondaySyncLogs",
13569
14451
  "getMyCredentials",
13570
14452
  "getMyGivenGrants",
13571
14453
  "getMyReceivedGrants",
@@ -13576,7 +14458,6 @@ var WORKSPACE_METHOD_NAMES = [
13576
14458
  "getOperatorGroup",
13577
14459
  "getOperatorGroups",
13578
14460
  "getOrCreateQualificationForWorkflow",
13579
- "getOwnedMembers",
13580
14461
  "getPage",
13581
14462
  "getPageBySlug",
13582
14463
  "getPersona",
@@ -13606,11 +14487,14 @@ var WORKSPACE_METHOD_NAMES = [
13606
14487
  "getRoutineConfigEvents",
13607
14488
  "getRoutineRuns",
13608
14489
  "getRoutines",
14490
+ "getRoutingRule",
14491
+ "getRoutingRules",
13609
14492
  "getRuleExecutions",
13610
14493
  "getSMSUsageReport",
13611
14494
  "getSalesforceReconciliationMatches",
13612
14495
  "getSalesforceStatus",
13613
14496
  "getSalesforceSyncConfig",
14497
+ "getSalesforceSyncLogs",
13614
14498
  "getScenario",
13615
14499
  "getSite",
13616
14500
  "getSiteByUuid",
@@ -13656,7 +14540,6 @@ var WORKSPACE_METHOD_NAMES = [
13656
14540
  "getWebhookLogs",
13657
14541
  "getWorkflow",
13658
14542
  "getWorkflowOpeningTurnConversionReport",
13659
- "getWorkflowAccessValidation",
13660
14543
  "getWorkflowActivity",
13661
14544
  "getWorkflowConfigValidation",
13662
14545
  "getWorkflowFeedback",
@@ -13687,6 +14570,8 @@ var WORKSPACE_METHOD_NAMES = [
13687
14570
  "getWorkspaceSubscriptions",
13688
14571
  "getWorkspaceSupportRequest",
13689
14572
  "getWorkspaceThemes",
14573
+ "installBundle",
14574
+ "grantBundle",
13690
14575
  "importFromBoard",
13691
14576
  "importHubspotMembers",
13692
14577
  "importMembers",
@@ -13709,12 +14594,23 @@ var WORKSPACE_METHOD_NAMES = [
13709
14594
  "linkMemberToMonday",
13710
14595
  "linkMemberToSalesforce",
13711
14596
  "linkPhoneNumber",
14597
+ "linkUnlinkedSalesforceMembersByIdentity",
13712
14598
  "listAbilities",
14599
+ "listAnonymousFormSubmissions",
13713
14600
  "listAppConnections",
13714
14601
  "listAvailableAppConnections",
14602
+ "listInstallations",
14603
+ "listBundleGrants",
14604
+ "listBundleVersions",
14605
+ "listBundles",
14606
+ "listBundleWorkflowCandidates",
14607
+ "updateBundle",
14608
+ "listBundleInstallations",
13715
14609
  "listConfluencePages",
13716
14610
  "listConfluenceSpaces",
13717
14611
  "listConnectionMemberFieldKeys",
14612
+ "listContactPermissions",
14613
+ "revokeBundleGrant",
13718
14614
  "rollbackSiteSource",
13719
14615
  "rotateDocumoFaxCredentials",
13720
14616
  "runQuery",
@@ -13735,7 +14631,11 @@ var WORKSPACE_METHOD_NAMES = [
13735
14631
  "getMetricSeries",
13736
14632
  "computeChatMetrics",
13737
14633
  "listPushSubscriptions",
14634
+ "listResourceWorkflows",
14635
+ "getResourceWorkflow",
14636
+ "getResourceWorkflowRevision",
13738
14637
  "listSalesforceObjects",
14638
+ "listScenarioHealthSummaries",
13739
14639
  "listScenarios",
13740
14640
  "listTestChatRuns",
13741
14641
  "listWidgetDomains",
@@ -13751,15 +14651,18 @@ var WORKSPACE_METHOD_NAMES = [
13751
14651
  "previewRenameFieldSlug",
13752
14652
  "previewImportWorkspace",
13753
14653
  "previewInboxEmail",
14654
+ "preflightBundleInstallation",
13754
14655
  "previewRoutineVoiceReadiness",
13755
- "previewRoutineWorkflowAccess",
13756
14656
  "previewSchedule",
14657
+ "previewRoutingRule",
13757
14658
  "previewTTS",
13758
14659
  "previewTemplate",
13759
14660
  "previewThinkingSound",
13760
14661
  "previewWorkspaceImport",
13761
14662
  "previewWorkspaceImportZip",
13762
14663
  "provisionClientWorkspace",
14664
+ "previewInstallationUpgrade",
14665
+ "publishBundle",
13763
14666
  "publishWorkflowRevision",
13764
14667
  "putJourneyDraft",
13765
14668
  "putJourneyV2Definition",
@@ -13771,11 +14674,16 @@ var WORKSPACE_METHOD_NAMES = [
13771
14674
  "registerPushSubscription",
13772
14675
  "reindexFolder",
13773
14676
  "releasePhoneNumber",
14677
+ "reorderRoutingRules",
13774
14678
  "removeFileRole",
13775
14679
  "removeFolderRole",
13776
14680
  "removeGroupMember",
13777
14681
  "reorderEventRules",
13778
14682
  "reorderMenuItems",
14683
+ "reconcileInstallation",
14684
+ "setInstallationPolicy",
14685
+ "upgradeInstallation",
14686
+ "replaceBundleDraft",
13779
14687
  "replyToEmail",
13780
14688
  "rotateDocumoFaxCredentials",
13781
14689
  "requestPhoneNumber",
@@ -13811,7 +14719,6 @@ var WORKSPACE_METHOD_NAMES = [
13811
14719
  "startSyncRun",
13812
14720
  "startTestChatRun",
13813
14721
  "summarizeChat",
13814
- "switchMember",
13815
14722
  "syncCalendarWithGoogle",
13816
14723
  "syncCalendarWithHealthie",
13817
14724
  "testFhirConnection",
@@ -13824,6 +14731,7 @@ var WORKSPACE_METHOD_NAMES = [
13824
14731
  "unarchiveChat",
13825
14732
  "unarchiveDataType",
13826
14733
  "unarchiveMember",
14734
+ "unarchiveMemberByExternalId",
13827
14735
  "unarchivePersona",
13828
14736
  "unarchiveStep",
13829
14737
  "unarchiveTask",
@@ -13881,6 +14789,7 @@ var WORKSPACE_METHOD_NAMES = [
13881
14789
  "updateJourneyNote",
13882
14790
  "updateMcpServer",
13883
14791
  "updateMember",
14792
+ "updateMemberByExternalId",
13884
14793
  "updateMemberField",
13885
14794
  "updateMemberFilter",
13886
14795
  "updateMemberLabel",
@@ -13897,6 +14806,7 @@ var WORKSPACE_METHOD_NAMES = [
13897
14806
  "updateProduct",
13898
14807
  "updateProject",
13899
14808
  "updateRoutine",
14809
+ "updateRoutingRule",
13900
14810
  "updateSalesforceSyncConfig",
13901
14811
  "resyncSalesforceLinkedMembers",
13902
14812
  "updateScenario",
@@ -13919,7 +14829,6 @@ var WORKSPACE_METHOD_NAMES = [
13919
14829
  "updateWorkspace",
13920
14830
  "updateWorkspaceDefaults",
13921
14831
  "updateWorkspaceInvitationAdmin",
13922
- "updateWorkspaceThemes",
13923
14832
  "upsertDataRecord",
13924
14833
  "upsertWidgetDomain",
13925
14834
  "validateCelExpression",
@@ -14010,6 +14919,9 @@ function bindChatsMethods(target, chats) {
14010
14919
  target.transitionChatInteractionSession = chats.transitionChatInteractionSession.bind(chats);
14011
14920
  target.getChats = chats.getChats.bind(chats);
14012
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);
14013
14925
  target.getChatBrowserLiveView = chats.getChatBrowserLiveView.bind(chats);
14014
14926
  target.getChatMachineResources = chats.getChatMachineResources.bind(chats);
14015
14927
  target.getCurrentSmsChat = chats.getCurrentSmsChat.bind(chats);
@@ -14146,7 +15058,10 @@ function bindDataTypesMethods(target, dataTypes) {
14146
15058
  target.unarchiveDataType = dataTypes.unarchiveDataType.bind(dataTypes);
14147
15059
  target.cloneDataType = dataTypes.cloneDataType.bind(dataTypes);
14148
15060
  target.getDataRecords = dataTypes.getDataRecords.bind(dataTypes);
15061
+ target.listAnonymousFormSubmissions = dataTypes.listAnonymousFormSubmissions.bind(dataTypes);
15062
+ target.getAnonymousFormSubmission = dataTypes.getAnonymousFormSubmission.bind(dataTypes);
14149
15063
  target.getDataRecord = dataTypes.getDataRecord.bind(dataTypes);
15064
+ target.getDataRecordByUuid = dataTypes.getDataRecordByUuid.bind(dataTypes);
14150
15065
  target.createDataRecord = dataTypes.createDataRecord.bind(dataTypes);
14151
15066
  target.updateDataRecord = dataTypes.updateDataRecord.bind(dataTypes);
14152
15067
  target.deleteDataRecord = dataTypes.deleteDataRecord.bind(dataTypes);
@@ -14185,18 +15100,19 @@ function bindMembersMethods(target, members) {
14185
15100
  target.previewMemberWorkflowVoice = members.previewMemberWorkflowVoice.bind(members);
14186
15101
  target.setMemberWorkflowVoice = members.setMemberWorkflowVoice.bind(members);
14187
15102
  target.clearMemberWorkflowVoice = members.clearMemberWorkflowVoice.bind(members);
14188
- target.getOwnedMembers = members.getOwnedMembers.bind(members);
14189
- target.switchMember = members.switchMember.bind(members);
14190
- target.clearMemberSwitch = members.clearMemberSwitch.bind(members);
14191
15103
  target.updateCurrentMember = members.updateCurrentMember.bind(members);
14192
15104
  target.getWorkspaceMembers = members.getWorkspaceMembers.bind(members);
14193
15105
  target.getWorkspaceMember = members.getWorkspaceMember.bind(members);
15106
+ target.getMemberByUuid = members.getMemberByUuid.bind(members);
14194
15107
  target.getOrgWorkspaceMember = members.getOrgWorkspaceMember.bind(members);
14195
15108
  target.createWorkspaceMember = members.createWorkspaceMember.bind(members);
14196
15109
  target.updateMember = members.updateMember.bind(members);
14197
15110
  target.deleteMember = members.deleteMember.bind(members);
14198
15111
  target.archiveMember = members.archiveMember.bind(members);
14199
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);
14200
15116
  target.sendMemberPhoneConfirmation = members.sendMemberPhoneConfirmation.bind(members);
14201
15117
  target.bulkCreateMembers = members.bulkCreateMembers.bind(members);
14202
15118
  target.previewImportMembers = members.previewImportMembers.bind(members);
@@ -14243,6 +15159,8 @@ function bindMembersMethods(target, members) {
14243
15159
  target.getMemberRelationships = members.getMemberRelationships.bind(members);
14244
15160
  target.createMemberRelationship = members.createMemberRelationship.bind(members);
14245
15161
  target.archiveMemberRelationship = members.archiveMemberRelationship.bind(members);
15162
+ target.listContactPermissions = members.listContactPermissions.bind(members);
15163
+ target.createContactPermission = members.createContactPermission.bind(members);
14246
15164
  }
14247
15165
 
14248
15166
  // src/client/bindings/workspaces.ts
@@ -14296,7 +15214,6 @@ function bindWorkspacesMethods(target, workspaces, signupRequests) {
14296
15214
  target.rebuildImportSkippedRules = workspaces.rebuildImportSkippedRules.bind(workspaces);
14297
15215
  target.previewImportWorkspace = workspaces.previewImportWorkspace.bind(workspaces);
14298
15216
  target.getWorkspaceThemes = workspaces.getWorkspaceThemes.bind(workspaces);
14299
- target.updateWorkspaceThemes = workspaces.updateWorkspaceThemes.bind(workspaces);
14300
15217
  target.getWorkspaceBySlug = workspaces.getWorkspace.bind(workspaces);
14301
15218
  target.getWorkspaceScopes = workspaces.getWorkspaceScopes.bind(workspaces);
14302
15219
  target.getUsageDashboard = workspaces.getUsageDashboard.bind(workspaces);
@@ -14345,6 +15262,7 @@ function bindAuthMethods(target, auth, assignments) {
14345
15262
  target.logout = auth.logout.bind(auth);
14346
15263
  target.requestCrossDomainToken = auth.requestCrossDomainToken.bind(auth);
14347
15264
  target.exchangeToken = auth.exchangeToken.bind(auth);
15265
+ target.createRealtimeLoginToken = auth.createRealtimeLoginToken.bind(auth);
14348
15266
  target.getDomainMapping = auth.getDomainMapping.bind(auth);
14349
15267
  target.createSignup = auth.createSignup.bind(auth);
14350
15268
  target.createAccount = auth.emailPasswordSignup.bind(auth);
@@ -14434,6 +15352,7 @@ function bindSitesMethods(target, sites) {
14434
15352
  function bindFilesMethods(target, files) {
14435
15353
  target.getFiles = files.getFiles.bind(files);
14436
15354
  target.getFile = files.getFile.bind(files);
15355
+ target.downloadFileContents = files.downloadFileContents.bind(files);
14437
15356
  target.downloadFilesZip = files.downloadFilesZip.bind(files);
14438
15357
  target.createFile = files.createFile.bind(files);
14439
15358
  target.uploadFile = files.uploadFile.bind(files);
@@ -14506,7 +15425,6 @@ function bindEventsMethods(target, events) {
14506
15425
  target.resetRoutineRuns = events.resetRoutineRuns.bind(events);
14507
15426
  target.previewSchedule = events.previewSchedule.bind(events);
14508
15427
  target.previewRoutineVoiceReadiness = events.previewRoutineVoiceReadiness.bind(events);
14509
- target.previewRoutineWorkflowAccess = events.previewRoutineWorkflowAccess.bind(events);
14510
15428
  }
14511
15429
 
14512
15430
  // src/client/bindings/experiments.ts
@@ -14547,7 +15465,6 @@ function bindWorkflowsMethods(target, workflows, workflowNotes, voice, superviso
14547
15465
  target.createWorkflowFromTemplate = workflows.createWorkflowFromTemplate.bind(workflows);
14548
15466
  target.getWorkflowTaskAssignmentStats = workflows.getWorkflowTaskAssignmentStats.bind(workflows);
14549
15467
  target.getTaskChats = workflows.getTaskChats.bind(workflows);
14550
- target.getWorkflowAccessValidation = workflows.getWorkflowAccessValidation.bind(workflows);
14551
15468
  target.getWorkflowConfigValidation = workflows.getWorkflowConfigValidation.bind(workflows);
14552
15469
  target.getWorkflowNotes = workflowNotes.getWorkflowNotes.bind(workflowNotes);
14553
15470
  target.createWorkflowNote = workflowNotes.createWorkflowNote.bind(workflowNotes);
@@ -14668,6 +15585,7 @@ function bindToolkitsMethods(target, toolkits, templates, aiModels, customToolki
14668
15585
  target.previewTemplate = templates.previewTemplate.bind(templates);
14669
15586
  target.getVariableRegistry = templates.getVariableRegistry.bind(templates);
14670
15587
  target.getChatModels = aiModels.getChatModels.bind(aiModels);
15588
+ target.getManagerModels = aiModels.getManagerModels.bind(aiModels);
14671
15589
  target.getRealtimeModels = aiModels.getRealtimeModels.bind(aiModels);
14672
15590
  target.getSTTModels = aiModels.getSTTModels.bind(aiModels);
14673
15591
  target.getTTSModels = aiModels.getTTSModels.bind(aiModels);
@@ -14781,6 +15699,7 @@ function bindIntegrationsMethods(target, mondayIntegration, discordBots, slackAp
14781
15699
  target.getMondayConnectionBoardColumns = mondayIntegration.getMondayConnectionBoardColumns.bind(mondayIntegration);
14782
15700
  target.getMondayConnectionBoardGroups = mondayIntegration.getMondayConnectionBoardGroups.bind(mondayIntegration);
14783
15701
  target.getMondaySyncConfig = mondayIntegration.getMondaySyncConfig.bind(mondayIntegration);
15702
+ target.getMondaySyncLogs = mondayIntegration.getMondaySyncLogs.bind(mondayIntegration);
14784
15703
  target.updateMondaySyncConfig = mondayIntegration.updateMondaySyncConfig.bind(mondayIntegration);
14785
15704
  target.getLinkedMondayMembers = mondayIntegration.getLinkedMondayMembers.bind(mondayIntegration);
14786
15705
  target.getMondayReconciliationMatches = mondayIntegration.getMondayReconciliationMatches.bind(mondayIntegration);
@@ -14895,10 +15814,12 @@ function bindIntegrationsMethods(target, mondayIntegration, discordBots, slackAp
14895
15814
  target.deleteSalesforce = salesforce.deleteSalesforce.bind(salesforce);
14896
15815
  target.getSalesforceReconciliationMatches = salesforce.getSalesforceReconciliationMatches.bind(salesforce);
14897
15816
  target.linkMemberToSalesforce = salesforce.linkMemberToSalesforce.bind(salesforce);
15817
+ target.linkUnlinkedSalesforceMembersByIdentity = salesforce.linkUnlinkedSalesforceMembersByIdentity.bind(salesforce);
14898
15818
  target.bulkLinkMembersToSalesforce = salesforce.bulkLinkMembersToSalesforce.bind(salesforce);
14899
15819
  target.unlinkMemberFromSalesforce = salesforce.unlinkMemberFromSalesforce.bind(salesforce);
14900
15820
  target.getLinkedSalesforceMembers = salesforce.getLinkedSalesforceMembers.bind(salesforce);
14901
15821
  target.getSalesforceSyncConfig = salesforce.getSalesforceSyncConfig.bind(salesforce);
15822
+ target.getSalesforceSyncLogs = salesforce.getSalesforceSyncLogs.bind(salesforce);
14902
15823
  target.updateSalesforceSyncConfig = salesforce.updateSalesforceSyncConfig.bind(salesforce);
14903
15824
  target.resyncSalesforceLinkedMembers = salesforce.resyncSalesforceLinkedMembers.bind(salesforce);
14904
15825
  target.listSalesforceObjects = salesforce.listSalesforceObjects.bind(salesforce);
@@ -14988,10 +15909,15 @@ function bindOrgMethods(target, org) {
14988
15909
  target.getVoiceTrustProducts = org.getVoiceTrustProducts.bind(org);
14989
15910
  target.syncVoiceTrustProducts = org.syncVoiceTrustProducts.bind(org);
14990
15911
  target.createOrganizationWorkspace = org.createOrganizationWorkspace.bind(org);
15912
+ target.getOrganizationWorkspace = org.getOrganizationWorkspace.bind(org);
15913
+ target.updateOrganizationWorkspace = org.updateOrganizationWorkspace.bind(org);
14991
15914
  target.getOrgBillingCustomer = org.getOrgBillingCustomer.bind(org);
14992
15915
  target.getA2PCampaignConfig = org.getA2PCampaignConfig.bind(org);
14993
15916
  target.updateA2PCampaignConfig = org.updateA2PCampaignConfig.bind(org);
14994
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);
14995
15921
  }
14996
15922
 
14997
15923
  // src/client/bindings/pronunciations.ts
@@ -15011,12 +15937,58 @@ function bindPronunciationsMethods(target, pronunciations) {
15011
15937
  target.previewPronunciation = pronunciations.previewPronunciation.bind(pronunciations);
15012
15938
  }
15013
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
+
15014
15985
  // src/client/bindings/journeys.ts
15015
15986
  function bindJourneysMethods(target, journeys) {
15016
15987
  target.getJourneys = journeys.getJourneys.bind(journeys);
15017
15988
  target.getJourney = journeys.getJourney.bind(journeys);
15018
15989
  target.getJourneyAuthoring = journeys.getJourneyAuthoring.bind(journeys);
15019
15990
  target.putJourneyDraft = journeys.putJourneyDraft.bind(journeys);
15991
+ target.deleteJourneyDraft = journeys.deleteJourneyDraft.bind(journeys);
15020
15992
  target.putJourneyV2Definition = journeys.putJourneyV2Definition.bind(journeys);
15021
15993
  target.getJourneyV2Validation = journeys.getJourneyV2Validation.bind(journeys);
15022
15994
  target.getJourneyFilterOptions = journeys.getJourneyFilterOptions.bind(journeys);
@@ -15064,6 +16036,7 @@ function bindQualificationsMethods(target, qualifications) {
15064
16036
  target.updateScenario = qualifications.updateScenario.bind(qualifications);
15065
16037
  target.deleteScenario = qualifications.deleteScenario.bind(qualifications);
15066
16038
  target.listTestChatRuns = qualifications.listTestChatRuns.bind(qualifications);
16039
+ target.listScenarioHealthSummaries = qualifications.listScenarioHealthSummaries.bind(qualifications);
15067
16040
  target.getTestChatRun = qualifications.getTestChatRun.bind(qualifications);
15068
16041
  target.startTestChatRun = qualifications.startTestChatRun.bind(qualifications);
15069
16042
  target.evaluateTestChatRun = qualifications.evaluateTestChatRun.bind(qualifications);
@@ -15152,6 +16125,17 @@ function bindSupportRequestMethods(target, supportRequests) {
15152
16125
  target.clickWorkspaceSupportRequestResource = supportRequests.clickWorkspaceSupportRequestResource.bind(supportRequests);
15153
16126
  }
15154
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
+
15155
16139
  // src/client/client.ts
15156
16140
  var GravityRailClient = class {
15157
16141
  // WorkspaceInvitations is exposed publicly for backward compatibility
@@ -15177,6 +16161,9 @@ var GravityRailClient = class {
15177
16161
  // Chats API
15178
16162
  getChats;
15179
16163
  getChat;
16164
+ getChatByUuid;
16165
+ saveChatBrowserStorage;
16166
+ clearChatBrowserStorage;
15180
16167
  getChatBrowserLiveView;
15181
16168
  getChatMachineResources;
15182
16169
  getCurrentSmsChat;
@@ -15254,7 +16241,10 @@ var GravityRailClient = class {
15254
16241
  unarchiveDataType;
15255
16242
  cloneDataType;
15256
16243
  getDataRecords;
16244
+ listAnonymousFormSubmissions;
16245
+ getAnonymousFormSubmission;
15257
16246
  getDataRecord;
16247
+ getDataRecordByUuid;
15258
16248
  createDataRecord;
15259
16249
  updateDataRecord;
15260
16250
  deleteDataRecord;
@@ -15280,12 +16270,10 @@ var GravityRailClient = class {
15280
16270
  previewMemberWorkflowVoice;
15281
16271
  setMemberWorkflowVoice;
15282
16272
  clearMemberWorkflowVoice;
15283
- getOwnedMembers;
15284
- switchMember;
15285
- clearMemberSwitch;
15286
16273
  updateCurrentMember;
15287
16274
  getWorkspaceMembers;
15288
16275
  getWorkspaceMember;
16276
+ getMemberByUuid;
15289
16277
  // Org-scoped, so deliberately absent from WORKSPACE_METHOD_NAMES: that proxy
15290
16278
  // passes a workspace uuid as the first argument.
15291
16279
  getOrgWorkspaceMember;
@@ -15294,6 +16282,9 @@ var GravityRailClient = class {
15294
16282
  deleteMember;
15295
16283
  archiveMember;
15296
16284
  unarchiveMember;
16285
+ updateMemberByExternalId;
16286
+ archiveMemberByExternalId;
16287
+ unarchiveMemberByExternalId;
15297
16288
  sendMemberPhoneConfirmation;
15298
16289
  bulkCreateMembers;
15299
16290
  previewImportMembers;
@@ -15346,6 +16337,8 @@ var GravityRailClient = class {
15346
16337
  getMemberRelationships;
15347
16338
  createMemberRelationship;
15348
16339
  archiveMemberRelationship;
16340
+ listContactPermissions;
16341
+ createContactPermission;
15349
16342
  // Agent Tasks API (operator-facing async sub-agent inspection/cancel)
15350
16343
  getAgentTasks;
15351
16344
  getAgentTask;
@@ -15369,6 +16362,7 @@ var GravityRailClient = class {
15369
16362
  updateScenario;
15370
16363
  deleteScenario;
15371
16364
  listTestChatRuns;
16365
+ listScenarioHealthSummaries;
15372
16366
  getTestChatRun;
15373
16367
  startTestChatRun;
15374
16368
  evaluateTestChatRun;
@@ -15446,6 +16440,7 @@ var GravityRailClient = class {
15446
16440
  getJourney;
15447
16441
  getJourneyAuthoring;
15448
16442
  putJourneyDraft;
16443
+ deleteJourneyDraft;
15449
16444
  putJourneyV2Definition;
15450
16445
  getJourneyV2Validation;
15451
16446
  getJourneyFilterOptions;
@@ -15480,6 +16475,41 @@ var GravityRailClient = class {
15480
16475
  createJourneyNote;
15481
16476
  updateJourneyNote;
15482
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;
15483
16513
  // Experiments API
15484
16514
  getExperiments;
15485
16515
  getExperiment;
@@ -15572,7 +16602,6 @@ var GravityRailClient = class {
15572
16602
  rebuildImportSkippedRules;
15573
16603
  previewImportWorkspace;
15574
16604
  getWorkspaceThemes;
15575
- updateWorkspaceThemes;
15576
16605
  getWorkspaceBySlug;
15577
16606
  getWorkspaceScopes;
15578
16607
  getUsageDashboard;
@@ -15611,10 +16640,15 @@ var GravityRailClient = class {
15611
16640
  getVoiceTrustProducts;
15612
16641
  syncVoiceTrustProducts;
15613
16642
  createOrganizationWorkspace;
16643
+ getOrganizationWorkspace;
16644
+ updateOrganizationWorkspace;
15614
16645
  getOrgBillingCustomer;
15615
16646
  getA2PCampaignConfig;
15616
16647
  updateA2PCampaignConfig;
15617
16648
  getOrgWorkspaceUsage;
16649
+ updateOrganizationMember;
16650
+ listOrgWebhookEndpoints;
16651
+ getOrgWebhookEndpoint;
15618
16652
  getVapidPublicKey;
15619
16653
  registerPushSubscription;
15620
16654
  unregisterPushSubscription;
@@ -15651,6 +16685,7 @@ var GravityRailClient = class {
15651
16685
  logout;
15652
16686
  requestCrossDomainToken;
15653
16687
  exchangeToken;
16688
+ createRealtimeLoginToken;
15654
16689
  getDomainMapping;
15655
16690
  createSignup;
15656
16691
  createAccount;
@@ -15740,6 +16775,7 @@ var GravityRailClient = class {
15740
16775
  updateProject;
15741
16776
  updatePlan;
15742
16777
  resolveFilePath;
16778
+ downloadFileContents;
15743
16779
  downloadFilesZip;
15744
16780
  createFile;
15745
16781
  uploadFile;
@@ -15800,7 +16836,6 @@ var GravityRailClient = class {
15800
16836
  resetRoutineRuns;
15801
16837
  previewSchedule;
15802
16838
  previewRoutineVoiceReadiness;
15803
- previewRoutineWorkflowAccess;
15804
16839
  // Workflows API
15805
16840
  getWorkflows;
15806
16841
  getWorkflow;
@@ -15821,7 +16856,6 @@ var GravityRailClient = class {
15821
16856
  createWorkflowFromTemplate;
15822
16857
  getWorkflowTaskAssignmentStats;
15823
16858
  getTaskChats;
15824
- getWorkflowAccessValidation;
15825
16859
  getWorkflowConfigValidation;
15826
16860
  getWorkflowNotes;
15827
16861
  createWorkflowNote;
@@ -15933,6 +16967,7 @@ var GravityRailClient = class {
15933
16967
  previewTemplate;
15934
16968
  getVariableRegistry;
15935
16969
  getChatModels;
16970
+ getManagerModels;
15936
16971
  getRealtimeModels;
15937
16972
  getSTTModels;
15938
16973
  getTTSModels;
@@ -16045,6 +17080,7 @@ var GravityRailClient = class {
16045
17080
  getMondayConnectionBoardColumns;
16046
17081
  getMondayConnectionBoardGroups;
16047
17082
  getMondaySyncConfig;
17083
+ getMondaySyncLogs;
16048
17084
  updateMondaySyncConfig;
16049
17085
  getLinkedMondayMembers;
16050
17086
  getMondayReconciliationMatches;
@@ -16166,10 +17202,12 @@ var GravityRailClient = class {
16166
17202
  deleteSalesforce;
16167
17203
  getSalesforceReconciliationMatches;
16168
17204
  linkMemberToSalesforce;
17205
+ linkUnlinkedSalesforceMembersByIdentity;
16169
17206
  bulkLinkMembersToSalesforce;
16170
17207
  unlinkMemberFromSalesforce;
16171
17208
  getLinkedSalesforceMembers;
16172
17209
  getSalesforceSyncConfig;
17210
+ getSalesforceSyncLogs;
16173
17211
  updateSalesforceSyncConfig;
16174
17212
  resyncSalesforceLinkedMembers;
16175
17213
  listSalesforceObjects;
@@ -16266,6 +17304,14 @@ var GravityRailClient = class {
16266
17304
  closeWorkspaceSupportRequest;
16267
17305
  reopenWorkspaceSupportRequest;
16268
17306
  clickWorkspaceSupportRequestResource;
17307
+ // Routing Rules API
17308
+ getRoutingRules;
17309
+ getRoutingRule;
17310
+ createRoutingRule;
17311
+ updateRoutingRule;
17312
+ deleteRoutingRule;
17313
+ reorderRoutingRules;
17314
+ previewRoutingRule;
16269
17315
  constructor(apiKey, baseUrl, customFetch) {
16270
17316
  const apis = createApiModules(apiKey, baseUrl, customFetch);
16271
17317
  this.apis = apis;
@@ -16287,6 +17333,8 @@ var GravityRailClient = class {
16287
17333
  bindMotdMethods(this, apis.motd);
16288
17334
  bindTrackedLinksMethods(this, apis.trackedLinks);
16289
17335
  bindJourneysMethods(this, apis.journeys);
17336
+ bindBundlesMethods(this, apis.bundles, apis.resourceWorkflows);
17337
+ bindInstallationsMethods(this, apis.installations);
16290
17338
  bindExperimentsMethods(this, apis.experiments);
16291
17339
  bindOperatorMethods(this, apis.operatorGroups);
16292
17340
  bindOrgMethods(this, apis.org);
@@ -16340,6 +17388,7 @@ var GravityRailClient = class {
16340
17388
  bindCustomersMethods(this, apis.customers);
16341
17389
  bindResellersMethods(this, apis.resellers);
16342
17390
  bindSupportRequestMethods(this, apis.supportRequests);
17391
+ bindRoutingRulesMethods(this, apis.routingRules);
16343
17392
  }
16344
17393
  /**
16345
17394
  * Return a workspace-scoped client facade.
@@ -16417,32 +17466,6 @@ var GravityRailClient = class {
16417
17466
  }
16418
17467
  });
16419
17468
  }
16420
- /**
16421
- * Set the acting member UUID for member identity switching.
16422
- * When set, all API requests will include the X-Acting-Member header.
16423
- * The backend will validate that the authenticated account owns this member
16424
- * and use it as the effective identity for the request.
16425
- * Propagates to all API modules.
16426
- */
16427
- setActingMember(memberUuid) {
16428
- Object.values(this.apis).forEach((api) => {
16429
- if (typeof api.setActingMember === "function") {
16430
- api.setActingMember(memberUuid);
16431
- }
16432
- });
16433
- }
16434
- /**
16435
- * Get the current acting member UUID.
16436
- * Returns undefined if no member switch is active.
16437
- */
16438
- getActingMember() {
16439
- for (const api of Object.values(this.apis)) {
16440
- if (typeof api.getActingMember === "function") {
16441
- return api.getActingMember();
16442
- }
16443
- }
16444
- return void 0;
16445
- }
16446
17469
  };
16447
17470
 
16448
17471
  // src/helpers/chat-interaction.ts
@@ -16488,6 +17511,16 @@ var ChatInteractionController = class {
16488
17511
  this.pending = void 0;
16489
17512
  }
16490
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
+ };
16491
17524
  // Annotate the CommonJS export names for ESM import in node:
16492
17525
  0 && (module.exports = {
16493
17526
  AGENT_NOTE_ORIGINS,
@@ -16544,7 +17577,11 @@ var ChatInteractionController = class {
16544
17577
  ConfluenceApi,
16545
17578
  ConnectionSyncApi,
16546
17579
  ConsentMethod,
17580
+ CreateMemberContactPointRequestContactType,
17581
+ CreateMemberContactPointRequestPurpose,
17582
+ CreateMemberContactPointRequestSharing,
16547
17583
  CriterionType,
17584
+ CrmActivityKind,
16548
17585
  CustomToolkitsApi,
16549
17586
  CustomerActivityClassifierDetectorName,
16550
17587
  CustomerActivityClassifierLabel,
@@ -16580,6 +17617,7 @@ var ChatInteractionController = class {
16580
17617
  FeatureCategory,
16581
17618
  FeatureVisibility,
16582
17619
  FeaturesApi,
17620
+ FeedCursorRejection,
16583
17621
  FhirClientType,
16584
17622
  FhirConnectionState,
16585
17623
  FhirConnectionsApi,
@@ -16678,6 +17716,12 @@ var ChatInteractionController = class {
16678
17716
  ReportsApi,
16679
17717
  ResellersApi,
16680
17718
  Resource,
17719
+ RevisionHistorySegment,
17720
+ RoutingActionType,
17721
+ RoutingAudience,
17722
+ RoutingChannel,
17723
+ RoutingTimeWindow,
17724
+ RunHealthCategory,
16681
17725
  SCOPES,
16682
17726
  SCOPE_PRESETS,
16683
17727
  SMS_DELIVERY_FAILURE_STATUSES,
@@ -16686,13 +17730,22 @@ var ChatInteractionController = class {
16686
17730
  STT_MODEL_DEEPGRAM_FLUX_MULTI_SELFHOST,
16687
17731
  STT_MODEL_DEEPGRAM_FLUX_SELFHOST,
16688
17732
  SalesforceApi,
17733
+ ScenarioHealthCaption,
17734
+ ScenarioHealthHeadline,
17735
+ ScenarioHealthSampleNote,
17736
+ ScenarioHealthState,
17737
+ ScenarioRunBlocker,
16689
17738
  Scope,
16690
17739
  ScopeCategory,
16691
17740
  ScopeManager,
17741
+ SendingNextStep,
17742
+ SendingStopState,
17743
+ SessionKind,
16692
17744
  SiteDnsRecordType,
16693
17745
  SitesApi,
16694
17746
  SlackAppsApi,
16695
17747
  SnippetsApi,
17748
+ SolutionReleaseResponseSlug,
16696
17749
  SubscriptionsApi,
16697
17750
  SupervisorsApi,
16698
17751
  SupportRequestsApi,
@@ -16700,9 +17753,7 @@ var ChatInteractionController = class {
16700
17753
  TTS_MODEL_AWS_POLLY_GENERATIVE,
16701
17754
  TTS_MODEL_AWS_POLLY_NEURAL,
16702
17755
  TTS_MODEL_DEEPGRAM_AURA_2,
16703
- TTS_MODEL_ELEVENLABS_FLASH,
16704
- TTS_MODEL_ELEVENLABS_MULTILINGUAL,
16705
- TTS_MODEL_ELEVENLABS_TURBO,
17756
+ TTS_MODEL_XAI_V1,
16706
17757
  TTS_PREVIEW_PROVIDERS,
16707
17758
  TasksApi,
16708
17759
  TemplatesApi,
@@ -16713,12 +17764,12 @@ var ChatInteractionController = class {
16713
17764
  UiPromptPresentedKindValues,
16714
17765
  UiPromptResponseKindValues,
16715
17766
  UiPromptResponseStatusValues,
17767
+ UpdateMemberContactPointRequestContactType,
17768
+ UpdateMemberContactPointRequestPurpose,
17769
+ UpdateMemberContactPointRequestSharing,
16716
17770
  VoiceApi,
16717
17771
  WIDGET_SLUGS,
16718
- WORKFLOW_IMPLICIT_USE_SCOPE,
16719
- WorkflowAccessWarningResourceType,
16720
17772
  WorkflowNotesApi,
16721
- WorkflowResourceType,
16722
17773
  WorkflowRoutingMode,
16723
17774
  WorkflowsApi,
16724
17775
  WorkspaceFeature,
@@ -16735,6 +17786,7 @@ var ChatInteractionController = class {
16735
17786
  bindAppsMethods,
16736
17787
  bindAuthMethods,
16737
17788
  bindBillingMethods,
17789
+ bindBundlesMethods,
16738
17790
  bindCalendarsMethods,
16739
17791
  bindCallsMethods,
16740
17792
  bindChatsMethods,
@@ -16746,6 +17798,7 @@ var ChatInteractionController = class {
16746
17798
  bindEventsMethods,
16747
17799
  bindExperimentsMethods,
16748
17800
  bindFilesMethods,
17801
+ bindInstallationsMethods,
16749
17802
  bindIntegrationsMethods,
16750
17803
  bindInterventionRequestsMethods,
16751
17804
  bindJourneysMethods,
@@ -16761,6 +17814,7 @@ var ChatInteractionController = class {
16761
17814
  bindQualificationsMethods,
16762
17815
  bindQueriesMethods,
16763
17816
  bindResellersMethods,
17817
+ bindRoutingRulesMethods,
16764
17818
  bindSitesMethods,
16765
17819
  bindSupportRequestMethods,
16766
17820
  bindTasksMethods,
@@ -16802,9 +17856,6 @@ var ChatInteractionController = class {
16802
17856
  parseExperimentStatCount,
16803
17857
  parseOrgAuthChallenge,
16804
17858
  requiresAssistantParticipant,
16805
- roleCanUseWorkflow,
16806
- roleImplicitWorkflowUseScope,
16807
- roleWorkflowAccess,
16808
17859
  usesBuiltinAssistant,
16809
17860
  validateFeatureDependencies
16810
17861
  });