@wayai/cli 0.3.193 → 0.3.195

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.
package/dist/index.js CHANGED
@@ -488,6 +488,30 @@ var init_sentry = __esm({
488
488
  }
489
489
  });
490
490
 
491
+ // ../../packages/core/dist/chunk-VORPHGDT.js
492
+ var PERMISSIONS;
493
+ var init_chunk_VORPHGDT = __esm({
494
+ "../../packages/core/dist/chunk-VORPHGDT.js"() {
495
+ "use strict";
496
+ PERMISSIONS = [
497
+ "hub:read",
498
+ "hub:write",
499
+ "hub:admin",
500
+ "conversation:read",
501
+ "conversation:write",
502
+ "analytics:read",
503
+ "billing:read",
504
+ "billing:write",
505
+ "org:read",
506
+ "org:write",
507
+ "org:admin",
508
+ "contacts:write",
509
+ "platform:admin",
510
+ "*"
511
+ ];
512
+ }
513
+ });
514
+
491
515
  // ../../packages/core/dist/chunk-POL7B3EM.js
492
516
  function spokenLineField(label, description) {
493
517
  return { type: "text", label, maxLength: SPOKEN_LINE_MAX_CHARS, default: "", description };
@@ -6896,7 +6920,7 @@ var init_chunk_2ISUBJG7 = __esm({
6896
6920
  }
6897
6921
  });
6898
6922
 
6899
- // ../../packages/core/dist/chunk-NCJ3EXN7.js
6923
+ // ../../packages/core/dist/chunk-2QR42BQR.js
6900
6924
  function containsKanbanPlaceholders(value) {
6901
6925
  if (value == null) return false;
6902
6926
  const serialized = typeof value === "string" ? value : JSON.stringify(value);
@@ -8143,8 +8167,8 @@ function refineHubAsCodeMonitorRulesOutput(config, ctx) {
8143
8167
  });
8144
8168
  }
8145
8169
  var PLACEHOLDER_TOKENS, ALLOWED_TYPES, SUBSCHEMA_OBJECT_KEYWORDS, SUBSCHEMA_LIST_KEYWORDS, SUBSCHEMA_MAP_KEYWORDS, MAX_SCHEMA_DEPTH, uuidSchema, USER_ID_REGEX, timestampSchema, idParamSchema, clientOptionalString, clientOptionalBoolean, clientOptionalNumber, messageAttachment, MAX_MESSAGE_BODY_BYTES, MAX_ATTACHMENTS_PER_MESSAGE, MESSAGE_ENVELOPE_HEADROOM_BYTES, MAX_AUDIO_FILE_BASE64_BYTES, MAX_KANBAN_STATUSES, MAX_FOLLOWUPS_PER_STATUS, MAX_LANES, MAX_ADDITIONAL_CONTEXT_SCHEMA_BYTES, RESERVED_TEMPLATE_DUMP_NAME, kanbanStatusSlugSchema, followupTypeSchema, EVENT_RELATIVE_FOLLOWUP_TYPES, followupTimeUnitSchema, followupIdSchema, SELECTABLE_FOLLOWUP_TYPES, MAX_LINKED_FOLLOWUP_TARGETS_PER_STATUS, followupSchema, MAX_OUTCOMES_PER_STATUS, kanbanOutcomeSchema, EXCLUSIVE_FLAG_PAIRS, kanbanStatusSchema, kanbanStatusesArraySchema, laneSchema, lanesArraySchema, toolIdParam, listToolsQuery, toolAgentQuery, deleteToolQuery, toolConnectionsQuery, nativeToolIdSchema, CONTEXT_BOUNDARIES, contextBoundarySchema, addNativeToolBody, addMcpToolBody, createCustomToolBody, updateCustomToolBody, updateToolExecutionConfigBody, PREVIOUS_CONVERSATIONS_MAX, NATIVE_TOOL_NAMES, previousConversationsCountField, summarizationThresholdField, flagConditionSchema, MONITOR_TRIGGERS, monitorTriggerSchema, MONITOR_FIRING_TRIGGERS, MONITOR_DELAY_SECONDS_MIN, MONITOR_IDLE_DELAY_REQUIRED_MESSAGE, MONITOR_HISTORY_MESSAGES_MAX, monitorHistoryMessagesSchema, monitorIncludeToolResultsSchema, MONITOR_INPUT_SHAPING_KEYS, MONITOR_INPUT_SHAPING_SCHEMAS, MONITOR_INPUT_SHAPING_IDLE_MESSAGE, monitorArgumentSourceSchema, MONITOR_NOTE_TEMPLATE_MAX, MONITOR_STEER_NOTE_MAX, monitorActionSchema, monitorRuleSchema, MONITOR_RULE_KEYS, MONITOR_RULE_SCHEMAS, MONITOR_RULE_TRIGGERS, MONITOR_RULE_TRIGGER_MESSAGE, CALL_UTTERANCE_SPEAKERS, callUtteranceSpeakerSchema, MONITOR_CALL_KEYS, MONITOR_CALL_SCHEMAS, MONITOR_CALL_KEY_MESSAGE, CALL_STEERING_MIN_CONFIDENCE, CALL_UTTERANCE_RULE_NOT_CONFIDENT_MESSAGE, CALL_UTTERANCE_FALLBACK_MESSAGE, CALL_UTTERANCE_FLAG_CONDITIONS_MESSAGE, CALL_STEER_NOTE_BLANK_MESSAGE, MONITOR_USER_MESSAGE_ACTION_KINDS, MONITOR_ASSISTANT_REPLY_ACTION_KINDS, MONITOR_CALL_UTTERANCE_ACTION_KINDS, INSERT_NOTE_TOOL_NAME, RUN_MONITOR_TOOL_NAME, MONITOR_RULE_ALLOWED_NATIVE_TOOLS, MONITOR_RULE_REENTRY_TOOLS, MONITOR_RULE_REENTRY_TRACKS, monitorConfigField, flagConditionsField, agentIdParam, listAgentsQuery, agentConnectionsQuery, createAgentBody, updateAgentBody, AGENT_PARAMETER_TYPES, AGENT_PARAMETER_NAME_REGEX, agentParameterCreateSchema, MAX_AGENT_PARAMETERS_PER_REQUEST, createAgentParametersBody, evalIdParam, sessionIdParam, scenarioSetIdParam, hubIdQuery, evalDateContextSchema, EVAL_FIXTURE_NAME_MAX_LENGTH, evalFixtureOverrideSchema, runSessionQuery, runJourneyQuery, EVAL_INPUT_ROLES, EVAL_INPUT_ROLE_LIST, ROLE_ECHO_MAX, EVAL_INITIAL_STATE_SCOPES, MAX_INITIAL_STATE_ENTRIES, evalInitialStateEntry, evalBody, EVAL_LIST_MAX_LIMIT, evalListLimit, getEvalsQuery, toggleEvalBody, bulkToggleEvalsBody, pacingConfigSchema, EVAL_MAX_SELECTED_SCENARIOS, evalScenarioSelectionEntrySchema, evalScenarioSelectionSchema, sessionConfigSchema, createSessionBody, getSessionsQuery, getSessionResultsQuery, getSessionRunsQuery, evalAnalyticsQuery, getSessionCostQuery, compareSessionsQuery, evalsSqlBody, evalsSqlSchemaQuery, exportResultsQuery, validateEvalBody, hubAgentsQuery, createScenarioSetBody, updateScenarioSetBody, scenarioSetsHubQuery, createScenarioFromConversationBody, createJourneyFromConversationBody, EVAL_ATTACHMENT_HASH_REGEX, evalAttachmentRef, turnMayCarryAttachments, ATTACHMENTS_USER_ONLY_MESSAGE, journeyIdParam, journeyToolCallSchema, journeyTurnSchema, journeyStepOverrideSchema, fixtureField, createJourneyBody, updateJourneyBody, evalSessionConfigResponseSchema, evalSessionResponseSchema, evalSessionListConfigSchema, evalSessionListItemSchema, seedReleaseStatusSchema, EVAL_SESSION_NOT_QUIESCENT, MAX_RESOURCE_FILE_SIZE, CALL_OPENING_LANGUAGES, callOpeningLanguage, CALL_OPENING_MAX_DURATION_MS, CALL_OPENING_MAX_BYTES, CALL_OPENING_CAPTION_MAX_CHARS, CALL_OPENING_CONTENT_TYPES, callOpeningContentType, CALL_OPENING_HASH_REGEX, callOpeningHash, callOpeningCaption, storedCallOpening, MAX_CALL_OPENING_ENCODED_BYTES, MAX_CALL_OPENING_BODY_BYTES, agentCallOpeningParams, putAgentCallOpeningBody, deleteAgentCallOpeningQuery, callOpeningParam, callOpeningQuery, MAX_10MB_BASE64_ENCODED_BYTES, MAX_EVAL_ATTACHMENT_ENCODED_BYTES, MAX_EVAL_ATTACHMENT_CARRIERS, MAX_EVAL_ATTACHMENT_AGGREGATE_ENCODED_BYTES, MAX_RESOURCE_ENCODED_BYTES, MAX_HUB_AS_CODE_RESOURCES, MAX_HUB_AS_CODE_RESOURCE_FILES, MAX_RESOURCE_AGGREGATE_ENCODED_BYTES, MAX_CI_CONFIG_BODY_BYTES, MAX_CALL_OPENING_CARRIERS, MAX_CALL_OPENING_AGGREGATE_ENCODED_BYTES, hubAsCodeStateSchema, hubAsCodeResourceFileSchema, hubAsCodeResourceSchema, uuidPattern, ciUuidSchema, boundedHubAsCodeResourcesSchema, hubAsCodeConfigSchema, ciPullHubIdParam, ciBranchParam, ciPullQuery, ciHubsQuery, ciLookupQuery, ciBranchesQuery, ciSyncBody, ciPushBody, ciDiffBody, ciPublishBody, ciPublishPreviewBody, ciSyncMcpBody, ciOrgResourcesParam, orgResourcesConfigSchema, ciOrgResourcesPushBody, ciOrgResourcesDiffBody, CI_APPLY_ENTITY_KINDS, CI_APPLY_OPERATIONS, ciApplyErrorBaseSchema, ciApplyErrorSchema, ciSyncCountSchema, ciSyncChangesSchema, ciSyncWarningSchema, ciSyncResponseSchema;
8146
- var init_chunk_NCJ3EXN7 = __esm({
8147
- "../../packages/core/dist/chunk-NCJ3EXN7.js"() {
8170
+ var init_chunk_2QR42BQR = __esm({
8171
+ "../../packages/core/dist/chunk-2QR42BQR.js"() {
8148
8172
  "use strict";
8149
8173
  init_chunk_SNA2DXAC();
8150
8174
  init_chunk_IBL7FANV();
@@ -9263,9 +9287,6 @@ var init_chunk_NCJ3EXN7 = __esm({
9263
9287
  "eval",
9264
9288
  "hub_config",
9265
9289
  "journey",
9266
- "outbound_contact",
9267
- "outbound_list",
9268
- "outbound_list_contact",
9269
9290
  "resource",
9270
9291
  "resource_file",
9271
9292
  "state",
@@ -9326,12 +9347,6 @@ var init_chunk_NCJ3EXN7 = __esm({
9326
9347
  journeys_created: ciSyncCountSchema,
9327
9348
  journeys_updated: ciSyncCountSchema,
9328
9349
  journeys_deleted: ciSyncCountSchema,
9329
- outbound_contacts_created: ciSyncCountSchema,
9330
- outbound_contacts_updated: ciSyncCountSchema,
9331
- outbound_contacts_deleted: ciSyncCountSchema,
9332
- outbound_lists_created: ciSyncCountSchema,
9333
- outbound_lists_updated: ciSyncCountSchema,
9334
- outbound_lists_deleted: ciSyncCountSchema,
9335
9350
  automations_created: ciSyncCountSchema,
9336
9351
  automations_updated: ciSyncCountSchema,
9337
9352
  automations_deleted: ciSyncCountSchema
@@ -9353,30 +9368,7 @@ var init_chunk_NCJ3EXN7 = __esm({
9353
9368
  }
9354
9369
  });
9355
9370
 
9356
- // ../../packages/core/dist/chunk-XJDAH2N7.js
9357
- var PERMISSIONS;
9358
- var init_chunk_XJDAH2N7 = __esm({
9359
- "../../packages/core/dist/chunk-XJDAH2N7.js"() {
9360
- "use strict";
9361
- PERMISSIONS = [
9362
- "hub:read",
9363
- "hub:write",
9364
- "hub:admin",
9365
- "conversation:read",
9366
- "conversation:write",
9367
- "analytics:read",
9368
- "billing:read",
9369
- "billing:write",
9370
- "org:read",
9371
- "org:write",
9372
- "org:admin",
9373
- "platform:admin",
9374
- "*"
9375
- ];
9376
- }
9377
- });
9378
-
9379
- // ../../packages/core/dist/chunk-UBWCEXTH.js
9371
+ // ../../packages/core/dist/chunk-CYH5EXLP.js
9380
9372
  function refineLaneReferences(val, ctx) {
9381
9373
  const lanes = val.lanes;
9382
9374
  const statuses = val.kanban_statuses;
@@ -9388,6 +9380,17 @@ function refineLaneReferences(val, ctx) {
9388
9380
  function cacheReconcileIdCount(body) {
9389
9381
  return body.conversations.length + body.histories.reduce((n, history) => n + history.conversation_ids.length, 0) + body.threads.length;
9390
9382
  }
9383
+ function normalizeContactPhone(raw) {
9384
+ const compact = raw.trim().replace(/[\s\-.()]/g, "");
9385
+ const withPlus = compact.startsWith("00") ? `+${compact.slice(2)}` : compact;
9386
+ return /^\+[1-9]\d{7,14}$/.test(withPlus) ? withPlus : null;
9387
+ }
9388
+ function normalizeContactLabel(raw) {
9389
+ return raw.trim().replace(/\s+/g, " ").toLowerCase();
9390
+ }
9391
+ function importRowLabels(row, batchLabels) {
9392
+ return [.../* @__PURE__ */ new Set([...row.labels ?? [], ...batchLabels ?? []])];
9393
+ }
9391
9394
  function refineScopedTarget(data, ctx) {
9392
9395
  if (data.scope === "org") {
9393
9396
  if (!data.org_id) {
@@ -9430,15 +9433,15 @@ function parseCommunityLessonVideoUrl(url) {
9430
9433
  }
9431
9434
  return id !== void 0 && YOUTUBE_ID.test(id) ? { provider: "youtube", id } : null;
9432
9435
  }
9433
- var primaryRegionSchema, placementSourceSchema, orgIdParam, orgAdminIdParam, createOrganizationBody, updateOrganizationBody, addOrgAdminBody, hubIdParam, hubAdminIdParam, hubUserIdParam, hubIdentityIdParam, hubTeamIdParam, hubTeamUserDeleteParam, hubSchemaQuery, PREVIEW_LABEL_MAX_LENGTH, MAX_ENDED_INDEX_RETENTION_DAYS, MAX_EVAL_RETENTION_DAYS, previewLabelField, hubTagsField, createHubBody, updateHubBody, HUB_TAG_CHANGE_REFUSED, hubTagChangeRefusalSchema, addHubAdminBody, addHubIdentityAuthorizationBody, contactDecisionBody, approveContactBody, listContactAccessQuery, createHubTeamBody, updateHubTeamBody, addHubTeamUserBody, reassignHubUserBody, replicatePreviewBody, updateChannelTestIdentitiesBody, claimCodeChannelParam, claimCodeDeleteParam, connectionIdParam, connectorIdParam, listConnectionsQuery, deleteConnectionQuery, addConnectionBody, editConnectionBody, PRODUCTION_DIRECT_FIELDS, setProductionCredentialBody, registerWhatsappQuery, registerWhatsappBody, retryProvisioningQuery, resendDomainStatusQuery, initialValueCreateSchema, initialValueUpdateSchema, stateIdParam, listStatesQuery, stateNameSchema, createStateBody, updateStateBody, reorderStatesBody, variantAiModeSchema, experimentStatusSchema, overlayUpdateSchema, experimentIdParam, variantIdParam, listExperimentsQuery, listVariantsQuery, listOverridesQuery, deleteOverrideQuery, createExperimentBody, updateExperimentBody, setExperimentStatusBody, createVariantBody, updateVariantBody, upsertOverrideBody, orgTagIdParam, listOrgTagsQuery, ORG_TAG_NAME_REGEX, ORG_TAG_NAME_MAX_LENGTH, createOrgTagBody, updateOrgTagBody, orgCredentialIdParam, listOrgCredentialsQuery, createOrgCredentialBody, updateOrgCredentialBody, BASE_CREDENTIAL_MANAGED_BY, BASE_CREDENTIAL_NAME_MAX, baseCredentialNameSchema, createBaseCredentialLinkBody, baseCredentialLinkParams, baseCredentialLinkQuery, orgResourceIdParam, orgResourceFileIdParam, orgResourceFolderIdParam, hubOrgResourceParam, listOrgResourcesQuery, orgIdQuery, createOrgResourceBody, updateOrgResourceBody, createOrgResourceFolderBody, updateOrgResourceFolderBody, uploadOrgResourceFileBody, updateOrgResourceFileBody, uploadOrgSkillZipBody, linkOrgResourceBody, resourceIdParam, listResourcesQuery, createResourceBody, updateResourceBody, syncSkillsBody, resourceFileIdParam, listResourceFilesQuery, createResourceFileBody, updateResourceFileBody, uploadResourceFileBody, uploadSkillZipBody, resourceFolderIdParam, listResourceFoldersQuery, createResourceFolderBody, updateResourceFolderBody, agentResourceQuery, hubResourceQuery, linkAgentResourceBody, updateAgentResourceBody, unlinkAgentResourceQuery, navItemSchema, hubCountResetBody, navItemCountResetBody, typingBody, analyticsHubIdParam, analyticsVariableIdParam, updateVariablePinBody, updateAnalyticsViewBody, NUMERIC_FILTER_OPS, TEXT_FILTER_OPS, CATEGORICAL_FILTER_OPS, VARIABLE_FILTER_OPS, STRUCTURED_QUERY_OPS, STRUCTURED_QUERY_AGGREGATIONS, filterValueSchema, conversationsBody, analyticsConversationIdParam, messagesQuery, conversationDetailDataQuery, analyticsDataBody, structuredQueryBody, analyticsSqlBody, analyticsSqlTable, analyticsSqlSchemaQuery, getConversationsQuery, getMessagesQuery, appMessageSenderType, appMessageReceiverType, apiChannelMessage, apiChannelMessageBody, appMessageBody, appMessageResponse, CALL_STATUSES, callStatus, CALL_END_REASONS, callEndReason, CALL_TRANSPORTS, callTransport, CALL_PARTICIPANT_TYPES, callParticipantType, callInstant, MAX_SDP_OFFER_LENGTH, sdpDescription, sdpOffer, MAX_CALL_REQUEST_BODY_BYTES, hubScoped, callSummaryFields, callSummary, callIdParam, createCallBody, createCallResponse, callReadyBody, callHangupBody, callStatusQuery, MAX_REPORTED_DELEGATION_IDS, callDelegationId, callDelegationsBody, callResponse, MAX_CALL_RECORDING_GAPS, callRecordingGap, callRecordingNoteMetadata, evalCallInstant, EVAL_CALL_MIN_SECONDS, EVAL_CALL_MAX_SECONDS, EVAL_CALL_SPOKEN_LINE_MAX_CHARS, hubScoped2, createEvalCallBody, createEvalCallResponse, evalCallConversationQuery, evalCallRecordQuery, evalCallSpeaker, evalCallUtterance, evalCallTurn, evalCallRecording, evalCallRecordResponse, evalCallFinishResponse, updateUserBody, updateProfileBody, pathnameRegex, updatePreferencesBody, registerPushTokenBody, deletePushTokenQuery, recordAiDisclosureAcceptanceBody, activityQuery, deletionModeSchema, deletionRequestBody, CACHE_RECONCILE_MAX_IDS, CACHE_RECONCILE_MAX_HUBS, cacheReconcileScopeSchema, cachedConversationPageSchema, cachedHistoryThreadSchema, cachedPeopleThreadSchema, cacheReconcileBody, archiveHubIdParam, archiveConversationParams, archiveListQuery, archiveMessageObservabilityParams, conversationIdParam, conversationHubQuery, claimBody, releaseBody, transferBody, closeBody, additionalContextPayloadSchema, kanbanUpdateBody, annotateConversationBody, observabilityParams, observabilityListParams, deleteUserConversationsBody, deleteUserConversationsResponse, sendMessageBody, listConversationsQuery, flagSourceSchema, getConversationsResponse, getConversationDetailParams, getConversationDetailQuery, getConversationDetailResponse, listWhatsAppTemplatesQuery, sendWhatsAppTemplateBody, copilotSuggestBody, copilotSuggestResponse, CONSULT_THREAD_STATUSES, consultThreadStatus, CONSULT_THREAD_TITLE_MAX, consultThreadTitle, consultThreadSummary, listConsultThreadsQuery, listConsultThreadsResponse, createConsultThreadBody, createConsultThreadResponse, consultThreadIdParam, updateConsultThreadBody, updateConsultThreadResponse, CONSULT_AWAIT_TIMEOUT_MS, billingOrgIdParam, subscriptionItemParams, spendCapBody, growthPacksBody, portalSessionBody, checkoutSessionBody, updateBillingCurrencyBody, invoicesQuery, planKeySchema, billingStatusSchema, billingPlanTypeSchema, dataUsageCountersSchema, REKOR_ENTITLEMENT_CONTRACT_VERSION, entitlementProjectionSchema, rekorEntitlementRefreshMessageSchema, downloadBody, uploadQuery, SIGN_URL_MAX_EXPIRES_IN_SECONDS, signUrlBody, templateIdParam, listTemplatesQuery, deleteTemplateQuery, templateStatusQuery, createTemplateBody, updateTemplateBody, submitTemplateBody, testTemplateBody, contactIdParam, listContactsQuery, createContactBody, updateContactBody, listIdParam, listListsQuery, listListContactsQuery, createListBody, updateListBody, addListContactsBody, removeListContactsBody, AUTOMATION_TRIGGER_TYPES, AUTOMATION_TARGET_TYPES, AUTOMATION_ACTION_TYPES, AUTOMATION_CHANNEL_TYPES, AUTOMATION_NAME_MAX, AUTOMATION_DESCRIPTION_MAX, AUTOMATION_INSTRUCTIONS_MAX, AUTOMATION_TEXT_MAX, AUTOMATION_CRON_MAX, automationTriggerSchema, automationTargetSchema, automationActionSchema, automationName, automationDescription, automationIdParam, automationHubQuery, AUTOMATION_RUNS_PAGE_MAX, listAutomationRunsQuery, createAutomationBody, updateAutomationBody, VERSION_PART, MOBILE_APP_VERSION_RE, mobileAppVersionSchema, MOBILE_PLATFORMS, mobilePlatformSchema, mobileVersionPolicyQuery, mobileVersionPolicySchema, mobileVersionPolicyResponse, adminOrgIdParam, adminOrgAdminIdParam, adminUserIdParam, PRICING_PLAN_ID_RE, adminPlanIdParam, adminOrganizationsQuery, adminUserSearchQuery, kanbanSlugMigrationQuery, adjustQuotaBody, updatePlanBody, addAdminUserBody, MAX_VOICE_CALL_MINUTE_OPS, voiceCallMinuteOps, updatePlatformConfigBody, updateFreeOrgLimitBody, adminScopedTargetShape, adminScopedTargetBody, BRANCHING_ORPHAN_ENTITY_TYPES, BRANCHING_ORPHAN_MAX_TARGETS, adminRepairBranchingOrphansBody, adminRepairLegacyOrgGrantsBody, adminRepairCompedPlansBody, updatePricingPlanBody, dataExplorerSearchQuery, dataExplorerOrgIdParam, dataExplorerHubIdParam, dataExplorerConvIdParam, dataExplorerDoInstancesQuery, dataExplorerNsIdParam, dataExplorerKvKeysBody, dataExplorerKvKeyBody, uuidOrHexId, dataExplorerDeleteOrgParam, dataExplorerDeleteHubParam, dataExplorerDeleteConvParam, dataExplorerDeleteUserParam, dataExplorerDeleteQuery, dataExplorerKvDeleteBody, pitrDoNamespace, pitrBookmarkParam, pitrRestoreBody, healthSamplingTriggerBody, dataExplorerDebugDoType, DEBUG_READ_MAX_LIMIT, DEBUG_READ_DEFAULT_LIMIT, DEBUG_DO_HEX_PREFIX, debugDoEntityId, debugTableName, dataExplorerDebugTablesParam, dataExplorerDebugRowsParam, dataExplorerDebugRowsQuery, dataExplorerDebugAnalyticsTable, debugUuid, dataExplorerDebugAnalyticsRowsParam, dataExplorerDebugAnalyticsRowsQuery, debugHubConvParam, debugMessageIdQuery, sandboxEgressPolicy, SANDBOX_EXEC_MAX_CMD_LENGTH, SANDBOX_EXEC_MAX_ALLOWLIST, SANDBOX_EXEC_MAX_TIMEOUT_MS, adminSandboxExecBody, META_ENTITY_ID_PATTERN, metaEntityId, whatsappCallbackBody, authMeResponse, wsTicketResponse, sessionCheckResponse, logoutResponse, magicCodeSendBody, magicCodeSendResponse, magicCodeVerifyBody, magicCodeVerifyResponse, passwordLoginBody, stateOperationBody, conversationListResourcesQuery, conversationReadResourceQuery, listPendingSchedulesQuery, listHubAggregateSchedulesQuery, reportSourceSchema, intakeReportSourceSchema, reportClassificationSchema, reportStatusSchema, reportLocaleSchema, reportMessageAuthorRoleSchema, reportMessageSchema, sentryRefStatusSchema, createReportBody, editReportBody, reporterReportSummarySchema, reporterListResponseSchema, getReportResponseSchema, reporterTransitionResponseSchema, contestReportBody, reporterListQuery, listReportsQuery, GITHUB_ISSUE_URL_REGEX, githubIssueUrlSchema, transitionReportBody, groupReportsBody, holdReportBody, clickhouseReadyResponse, bootstrapQuery, MAX_NAME_LENGTH, MAX_VALUE_LENGTH, MAX_TAGS, MAX_TAG_LENGTH, MAX_SCOPE_HUBS, MAX_SCOPE_TAGS, vaultSecretScopeSchema, vaultCreateBody, vaultUpdateBody, MAX_NAME_LENGTH2, MAX_HUBS_PER_GRANT, MAX_HUB_TAGS_PER_GRANT, MAX_GRANTS, permissionEnum, grantScopeSchema, grantSchema, createTokenBody, tokenOrgIdParam, invitePreviewQuery, inviteRolePreviewResponse, inviteContactPreviewResponse, invitePreviewResponse, inviteUnsubscribeBody, jsonSchemaSchema, hubUserIdentity, stateValueEntry, getHubUserContextResponse, updateHubUserBody, updateHubUserResponse, unlockHubUserNameResponse, stateResetParams, stateResetResponse, hubAlertsParam, hubAlertSeverity, hubAlert, hubAlertsListResponse, noticeSeveritySchema, noticeStatusSchema, NOTICE_SCOPE_REGEX, noticeScopeSchema, noticeLinkSchema, createNoticeBody, updateNoticeBody, listNoticesQuery, noticeIdParamSchema, ADMIN_SKILL_NAME_REGEX, adminSkillNameParam, REKOR_ACTOR_TYPE_HEADER, REKOR_ACTOR_ID_HEADER, REKOR_ACTOR_LABEL_HEADER, REKOR_ACTOR_ORG_HEADER, REKOR_ACTOR_ADMIN_HEADER, REKOR_CLIENT_HEADER, REKOR_TOOL_ID_HEADER, REKOR_CLIENTS, rekorClientSchema, MAX_REKOR_TOOL_ID_LENGTH, rekorToolIdSchema, DATA_PROXY_MOUNT, DATA_PROXY_PREFIX, REKOR_V1_PREFIX, DATA_PROXY_ORG_QUERY_PARAM, MAX_PROVISIONING_BODY_BYTES, dataProxyQuery, rekorAttestation, REQUIRED_REKOR_ATTESTATION_HEADERS, BASE_DESTRUCTION_MOUNT, BASE_DESTRUCTION_PREFIX, BASE_DESTRUCTION_CONFIRM_PATH, baseDestructionConfirmBody, BASE_DESTRUCTION_GRACE_MS, BASE_DESTRUCTION_CONFIRM_TTL_MS, BASE_DESTRUCTION_ORG_QUERY_PARAM, baseDestructionQuery, baseDestructionParam, baseDestructionInitiateBody, baseDestructionStatus, baseDestructionRequest, baseDestructionListResponse, baseDestructionInitiateResponse, baseDestructionConfirmResponse, baseDestructionCancelResponse, rekorBaseChangeMessageSchema, PEOPLE_CONTACT_PAGE_MAX, PEOPLE_CONTACT_PAGE_DEFAULT, PEOPLE_CONTACT_EMAIL_MAX_LENGTH, peopleUserIdSchema, peopleInviteEmailSchema, peopleContactInviteBody, peopleContactInviteIdParam, peopleContactUserIdParam, peopleContactBlockBody, peopleContactPageQuery, peopleOutgoingInviteSchema, peopleContactPersonSchema, peopleContactSchema, peopleIncomingInviteSchema, peopleBlockedUserSchema, PEOPLE_THREAD_MESSAGE_MAX_LENGTH, PEOPLE_THREAD_MESSAGES_PAGE_MAX, PEOPLE_THREAD_PAGE_MAX, PEOPLE_THREAD_PAGE_DEFAULT, PEOPLE_GROUP_NAME_MAX_LENGTH, PEOPLE_GROUP_AVATAR_URL_MAX_LENGTH, PEOPLE_THREAD_ATTACHMENT_MAX_BYTES, PEOPLE_THREAD_ATTACHMENT_NAME_MAX_LENGTH, PEOPLE_ATTACHMENT_STORAGE_PER_USER_BYTES, PEOPLE_THREAD_ATTACHMENT_MAX_MB, PEOPLE_THREAD_ATTACHMENT_URL_TTL_SECONDS, PEOPLE_THREAD_ATTACHMENT_URLS_MAX, peopleThreadIdParam, peopleThreadMessageIdParam, peopleThreadListQuery, peopleThreadMessagesQuery, peopleThreadAttachmentUploadSchema, peopleThreadSendBody, peopleThreadAttachmentUrlsBody, peopleThreadReadBody, peopleThreadSettingsBody, peopleGroupNameSchema, peopleGroupAvatarUrlSchema, peopleGroupCreateBody, peopleOrgDirectBody, peopleGroupUpdateBody, peopleGroupInviteBody, peopleOrgErasureBody, peopleGroupLeaveBody, peopleGroupInviteIdParam, peopleGroupIncomingInviteIdParam, peopleGroupMemberParam, peopleThreadKindSchema, peopleThreadMemberSchema, peopleThreadLastMessageSchema, peopleGroupRoleSchema, peopleGroupSummarySchema, peopleThreadSummarySchema, peopleThreadAttachmentSchema, peopleThreadMessageSchema, peopleGroupMemberSchema, peopleGroupSentInviteSchema, peopleGroupIncomingInviteSchema, PEOPLE_REPORT_DETAILS_MAX_LENGTH, peopleReportReasonSchema, reportDetailsSchema, reportFields, peopleReportBody, PEOPLE_MODERATION_NOTE_MAX_LENGTH, ADMIN_PEOPLE_REPORTS_PAGE_MAX, ADMIN_PEOPLE_REPORTS_PAGE_DEFAULT, peopleModerationActionSchema, moderationNoteSchema, adminPeopleReportListQuery, adminPeopleReportIdParam, adminPeopleMessageRemovalBody, adminPeopleSuspendBody, adminPeopleNoteBody, COMMUNITIES_PER_ORG_MAX, COMMUNITY_NAME_MAX_LENGTH, COMMUNITY_REGISTRY_CLOSED_REASON, COMMUNITY_JOIN_SOURCE_MAX_LENGTH, COMMUNITY_JOIN_FLOW_TOKEN_MAX_LENGTH, COMMUNITY_ROOM_NAME_MAX_LENGTH, COMMUNITY_MESSAGE_MAX_LENGTH, COMMUNITY_MESSAGES_PAGE_SIZE, COMMUNITY_ATTACHMENT_URLS_MAX, COMMUNITY_POST_TITLE_MAX_LENGTH, COMMUNITY_POST_SEARCH_MAX_LENGTH, COMMUNITY_RULES_MAX_LENGTH, COMMUNITY_SLOW_MODE_MAX_SECONDS, COMMUNITY_COURSES_LABEL_MAX_LENGTH, COMMUNITY_LIVE_TICKET_PREFIX, communityNameSchema, adminCreateCommunityBody, communityIdParam, communityJoinTokenSchema, communityJoinSourceSchema, communityJoinPreviewQuery, communityJoinBody, communityRoomKindSchema, communityRoomNameSchema, communityRoomIdParam, communityMessageIdParam, communityRoomCreateBody, communityRoomUpdateBody, communityMessagesQuery, communityMessageBodySchema, communityPostTitleSchema, communityAttachmentUploadSchema, communitySendBody, communityEditBody, communityPostIdParam, communityPostsQuery, communityAnswerBody, communityReadBody, communityAttachmentUrlsBody, communityPersonParam, communityOrgParam, communityPeopleQuery, communityCoursesLabelSchema, communitySettingsBody, communityBanBody, communityLockBody, communityPinBody, communityModLogQuery, communityReportsQuery, communityReportIdParam, communityLiveTicketSchema, communityLiveQuery, communityMuteBody, communityEmailUnsubscribeTokenSchema, COMMUNITY_EMAIL_UNSUBSCRIBE_PATH, communityEmailUnsubscribeQuery, COMMUNITY_COURSE_TITLE_MAX_LENGTH, COMMUNITY_COURSE_DESCRIPTION_MAX_LENGTH, COMMUNITY_LESSON_BODY_MAX_LENGTH, COMMUNITY_LESSON_LINKS_MAX, COMMUNITY_LESSON_URL_MAX_LENGTH, YOUTUBE_ID, YOUTUBE_HOSTS, YOUTU_BE, YOUTUBE_ID_PATH, communityCourseIdParam, communityCourseModuleIdParam, communityLessonIdParam, communityCourseTitleSchema, communityCourseDescriptionSchema, communityCoursePositionSchema, communityLessonVideoUrlSchema, communityLessonLinkSchema, communityLessonLinksSchema, communityLessonBodySchema, communityCourseCreateBody, communityCourseUpdateBody, communityModuleCreateBody, communityModuleUpdateBody, communityLessonCreateBody, communityLessonUpdateBody, COMMUNITY_LESSON_TREE_MAX_BYTES, COMMUNITY_LESSON_LINK_PROTOCOLS, LINK_SCHEME;
9434
- var init_chunk_UBWCEXTH = __esm({
9435
- "../../packages/core/dist/chunk-UBWCEXTH.js"() {
9436
+ var primaryRegionSchema, placementSourceSchema, orgIdParam, orgAdminIdParam, createOrganizationBody, updateOrganizationBody, addOrgAdminBody, hubIdParam, hubAdminIdParam, hubUserIdParam, hubIdentityIdParam, hubTeamIdParam, hubTeamUserDeleteParam, hubSchemaQuery, PREVIEW_LABEL_MAX_LENGTH, MAX_ENDED_INDEX_RETENTION_DAYS, MAX_EVAL_RETENTION_DAYS, previewLabelField, hubTagsField, createHubBody, updateHubBody, HUB_TAG_CHANGE_REFUSED, hubTagChangeRefusalSchema, addHubAdminBody, addHubIdentityAuthorizationBody, contactDecisionBody, approveContactBody, listContactAccessQuery, createHubTeamBody, updateHubTeamBody, addHubTeamUserBody, reassignHubUserBody, replicatePreviewBody, updateChannelTestIdentitiesBody, claimCodeChannelParam, claimCodeDeleteParam, connectionIdParam, connectorIdParam, listConnectionsQuery, deleteConnectionQuery, addConnectionBody, editConnectionBody, PRODUCTION_DIRECT_FIELDS, setProductionCredentialBody, registerWhatsappQuery, registerWhatsappBody, retryProvisioningQuery, resendDomainStatusQuery, initialValueCreateSchema, initialValueUpdateSchema, stateIdParam, listStatesQuery, stateNameSchema, createStateBody, updateStateBody, reorderStatesBody, variantAiModeSchema, experimentStatusSchema, overlayUpdateSchema, experimentIdParam, variantIdParam, listExperimentsQuery, listVariantsQuery, listOverridesQuery, deleteOverrideQuery, createExperimentBody, updateExperimentBody, setExperimentStatusBody, createVariantBody, updateVariantBody, upsertOverrideBody, orgTagIdParam, listOrgTagsQuery, ORG_TAG_NAME_REGEX, ORG_TAG_NAME_MAX_LENGTH, createOrgTagBody, updateOrgTagBody, orgCredentialIdParam, listOrgCredentialsQuery, createOrgCredentialBody, updateOrgCredentialBody, BASE_CREDENTIAL_MANAGED_BY, BASE_CREDENTIAL_NAME_MAX, baseCredentialNameSchema, createBaseCredentialLinkBody, baseCredentialLinkParams, baseCredentialLinkQuery, orgResourceIdParam, orgResourceFileIdParam, orgResourceFolderIdParam, hubOrgResourceParam, listOrgResourcesQuery, orgIdQuery, createOrgResourceBody, updateOrgResourceBody, createOrgResourceFolderBody, updateOrgResourceFolderBody, uploadOrgResourceFileBody, updateOrgResourceFileBody, uploadOrgSkillZipBody, linkOrgResourceBody, resourceIdParam, listResourcesQuery, createResourceBody, updateResourceBody, syncSkillsBody, resourceFileIdParam, listResourceFilesQuery, createResourceFileBody, updateResourceFileBody, uploadResourceFileBody, uploadSkillZipBody, resourceFolderIdParam, listResourceFoldersQuery, createResourceFolderBody, updateResourceFolderBody, agentResourceQuery, hubResourceQuery, linkAgentResourceBody, updateAgentResourceBody, unlinkAgentResourceQuery, navItemSchema, hubCountResetBody, navItemCountResetBody, typingBody, analyticsHubIdParam, analyticsVariableIdParam, updateVariablePinBody, updateAnalyticsViewBody, NUMERIC_FILTER_OPS, TEXT_FILTER_OPS, CATEGORICAL_FILTER_OPS, VARIABLE_FILTER_OPS, STRUCTURED_QUERY_OPS, STRUCTURED_QUERY_AGGREGATIONS, filterValueSchema, conversationsBody, analyticsConversationIdParam, messagesQuery, conversationDetailDataQuery, analyticsDataBody, structuredQueryBody, analyticsSqlBody, analyticsSqlTable, analyticsSqlSchemaQuery, getConversationsQuery, getMessagesQuery, appMessageSenderType, appMessageReceiverType, apiChannelMessage, apiChannelMessageBody, appMessageBody, appMessageResponse, CALL_STATUSES, callStatus, CALL_END_REASONS, callEndReason, CALL_TRANSPORTS, callTransport, CALL_PARTICIPANT_TYPES, callParticipantType, callInstant, MAX_SDP_OFFER_LENGTH, sdpDescription, sdpOffer, MAX_CALL_REQUEST_BODY_BYTES, hubScoped, callSummaryFields, callSummary, callIdParam, createCallBody, createCallResponse, callReadyBody, callHangupBody, callStatusQuery, MAX_REPORTED_DELEGATION_IDS, callDelegationId, callDelegationsBody, callResponse, MAX_CALL_RECORDING_GAPS, callRecordingGap, callRecordingNoteMetadata, evalCallInstant, EVAL_CALL_MIN_SECONDS, EVAL_CALL_MAX_SECONDS, EVAL_CALL_SPOKEN_LINE_MAX_CHARS, hubScoped2, createEvalCallBody, createEvalCallResponse, evalCallConversationQuery, evalCallRecordQuery, evalCallSpeaker, evalCallUtterance, evalCallTurn, evalCallRecording, evalCallRecordResponse, evalCallFinishResponse, updateUserBody, updateProfileBody, pathnameRegex, updatePreferencesBody, registerPushTokenBody, deletePushTokenQuery, recordAiDisclosureAcceptanceBody, activityQuery, deletionModeSchema, deletionRequestBody, CACHE_RECONCILE_MAX_IDS, CACHE_RECONCILE_MAX_HUBS, cacheReconcileScopeSchema, cachedConversationPageSchema, cachedHistoryThreadSchema, cachedPeopleThreadSchema, cacheReconcileBody, archiveHubIdParam, archiveConversationParams, archiveListQuery, archiveMessageObservabilityParams, conversationIdParam, conversationHubQuery, claimBody, releaseBody, transferBody, closeBody, additionalContextPayloadSchema, kanbanUpdateBody, annotateConversationBody, observabilityParams, observabilityListParams, deleteUserConversationsBody, deleteUserConversationsResponse, sendMessageBody, listConversationsQuery, flagSourceSchema, getConversationsResponse, getConversationDetailParams, getConversationDetailQuery, getConversationDetailResponse, listWhatsAppTemplatesQuery, sendWhatsAppTemplateBody, copilotSuggestBody, copilotSuggestResponse, CONSULT_THREAD_STATUSES, consultThreadStatus, CONSULT_THREAD_TITLE_MAX, consultThreadTitle, consultThreadSummary, listConsultThreadsQuery, listConsultThreadsResponse, createConsultThreadBody, createConsultThreadResponse, consultThreadIdParam, updateConsultThreadBody, updateConsultThreadResponse, CONSULT_AWAIT_TIMEOUT_MS, billingOrgIdParam, subscriptionItemParams, spendCapBody, growthPacksBody, portalSessionBody, checkoutSessionBody, updateBillingCurrencyBody, invoicesQuery, planKeySchema, billingStatusSchema, billingPlanTypeSchema, dataUsageCountersSchema, REKOR_ENTITLEMENT_CONTRACT_VERSION, entitlementProjectionSchema, rekorEntitlementRefreshMessageSchema, downloadBody, uploadQuery, SIGN_URL_MAX_EXPIRES_IN_SECONDS, signUrlBody, templateIdParam, listTemplatesQuery, deleteTemplateQuery, templateStatusQuery, createTemplateBody, updateTemplateBody, submitTemplateBody, testTemplateBody, CONTACT_ENVIRONMENTS, CONTACT_NAME_MAX, CONTACT_EMAIL_MAX, CONTACT_PHONE_INPUT_MAX, CONTACT_INSTAGRAM_SID_MAX, CONTACT_METADATA_MAX_BYTES, CONTACT_LABEL_MAX, CONTACT_LABELS_MAX, CONTACT_SCOPE_TAGS_MAX, CONTACT_PAGE_MAX, CONTACT_IMPORT_BATCH_MAX, CONTACT_SEARCH_MAX, CONTACT_LIST_NAME_MAX, CONTACT_LIST_NAME_REGEX, CONTACT_LIST_DESCRIPTION_MAX, CONTACT_LIST_FILTER_MAX, CONTACT_LIST_PINS_PER_REQUEST_MAX, contactName, contactPhone, contactEmail, contactInstagramSid, contactLabel, contactLabels, contactMetadata, scopeTagIds, contactVisibilitySchema, hasIdentity, IDENTITY_REQUIRED, contactBookOrgQuery, contactBookContactParam, contactBookListParam, contactBookHubParam, contactBookPageQuery, listContactBookContactsQuery, listHubContactBookContactsQuery, contactBookLinkCandidatesQuery, listContactBookListMembersQuery, contactRowFields, createContactBookContactBody, updateContactBookContactBody, contactImportRowSchema, importContactBookContactsBody, linkContactBookContactBody, listName, contactListFilterSchema, createContactBookListBody, updateContactBookListBody, updateContactBookListPinsBody, orgListReferenceSchema, AUTOMATION_TRIGGER_TYPES, AUTOMATION_TARGET_TYPES, AUTOMATION_ACTION_TYPES, AUTOMATION_CHANNEL_TYPES, AUTOMATION_NAME_MAX, AUTOMATION_DESCRIPTION_MAX, AUTOMATION_INSTRUCTIONS_MAX, AUTOMATION_TEXT_MAX, AUTOMATION_CRON_MAX, automationTriggerSchema, automationTargetSchema, automationActionSchema, automationName, automationDescription, automationIdParam, automationHubQuery, AUTOMATION_RUNS_PAGE_MAX, listAutomationRunsQuery, createAutomationBody, updateAutomationBody, AUTOMATION_ALERT_CATEGORIES, AUTOMATION_BLOCKED_ALERT_CATEGORY, VERSION_PART, MOBILE_APP_VERSION_RE, mobileAppVersionSchema, MOBILE_PLATFORMS, mobilePlatformSchema, mobileVersionPolicyQuery, mobileVersionPolicySchema, mobileVersionPolicyResponse, adminOrgIdParam, adminOrgAdminIdParam, adminUserIdParam, PRICING_PLAN_ID_RE, adminPlanIdParam, adminOrganizationsQuery, adminUserSearchQuery, kanbanSlugMigrationQuery, adjustQuotaBody, updatePlanBody, addAdminUserBody, MAX_VOICE_CALL_MINUTE_OPS, voiceCallMinuteOps, AUTOMATION_LIST_MAX_CONTACTS_BOUND, automationListMaxContacts, updatePlatformConfigBody, updateFreeOrgLimitBody, adminScopedTargetShape, adminScopedTargetBody, BRANCHING_ORPHAN_ENTITY_TYPES, BRANCHING_ORPHAN_MAX_TARGETS, adminRepairBranchingOrphansBody, adminRepairLegacyOrgGrantsBody, adminRepairCompedPlansBody, updatePricingPlanBody, dataExplorerSearchQuery, dataExplorerOrgIdParam, dataExplorerHubIdParam, dataExplorerConvIdParam, dataExplorerDoInstancesQuery, dataExplorerNsIdParam, dataExplorerKvKeysBody, dataExplorerKvKeyBody, uuidOrHexId, dataExplorerDeleteOrgParam, dataExplorerDeleteHubParam, dataExplorerDeleteConvParam, dataExplorerDeleteUserParam, dataExplorerDeleteQuery, dataExplorerKvDeleteBody, pitrDoNamespace, pitrBookmarkParam, pitrRestoreBody, healthSamplingTriggerBody, dataExplorerDebugDoType, DEBUG_READ_MAX_LIMIT, DEBUG_READ_DEFAULT_LIMIT, DEBUG_DO_HEX_PREFIX, debugDoEntityId, debugTableName, dataExplorerDebugTablesParam, dataExplorerDebugRowsParam, dataExplorerDebugRowsQuery, dataExplorerDebugAnalyticsTable, debugUuid, dataExplorerDebugAnalyticsRowsParam, dataExplorerDebugAnalyticsRowsQuery, debugHubConvParam, debugMessageIdQuery, sandboxEgressPolicy, SANDBOX_EXEC_MAX_CMD_LENGTH, SANDBOX_EXEC_MAX_ALLOWLIST, SANDBOX_EXEC_MAX_TIMEOUT_MS, adminSandboxExecBody, META_ENTITY_ID_PATTERN, metaEntityId, whatsappCallbackBody, authMeResponse, wsTicketResponse, sessionCheckResponse, logoutResponse, magicCodeSendBody, magicCodeSendResponse, magicCodeVerifyBody, magicCodeVerifyResponse, passwordLoginBody, stateOperationBody, conversationListResourcesQuery, conversationReadResourceQuery, listPendingSchedulesQuery, listHubAggregateSchedulesQuery, reportSourceSchema, intakeReportSourceSchema, reportClassificationSchema, reportStatusSchema, reportLocaleSchema, reportMessageAuthorRoleSchema, reportMessageSchema, sentryRefStatusSchema, createReportBody, editReportBody, reporterReportSummarySchema, reporterListResponseSchema, getReportResponseSchema, reporterTransitionResponseSchema, contestReportBody, reporterListQuery, listReportsQuery, GITHUB_ISSUE_URL_REGEX, githubIssueUrlSchema, transitionReportBody, groupReportsBody, holdReportBody, clickhouseReadyResponse, bootstrapQuery, MAX_NAME_LENGTH, MAX_VALUE_LENGTH, MAX_TAGS, MAX_TAG_LENGTH, MAX_SCOPE_HUBS, MAX_SCOPE_TAGS, vaultSecretScopeSchema, vaultCreateBody, vaultUpdateBody, MAX_NAME_LENGTH2, MAX_HUBS_PER_GRANT, MAX_HUB_TAGS_PER_GRANT, MAX_GRANTS, permissionEnum, grantScopeSchema, grantSchema, createTokenBody, tokenOrgIdParam, invitePreviewQuery, inviteRolePreviewResponse, inviteContactPreviewResponse, invitePreviewResponse, inviteUnsubscribeBody, jsonSchemaSchema, hubUserIdentity, stateValueEntry, getHubUserContextResponse, updateHubUserBody, updateHubUserResponse, unlockHubUserNameResponse, stateResetParams, stateResetResponse, hubAlertsParam, hubAlertSeverity, hubAlert, hubAlertsListResponse, noticeSeveritySchema, noticeStatusSchema, NOTICE_SCOPE_REGEX, noticeScopeSchema, noticeLinkSchema, createNoticeBody, updateNoticeBody, listNoticesQuery, noticeIdParamSchema, ADMIN_SKILL_NAME_REGEX, adminSkillNameParam, REKOR_ACTOR_TYPE_HEADER, REKOR_ACTOR_ID_HEADER, REKOR_ACTOR_LABEL_HEADER, REKOR_ACTOR_ORG_HEADER, REKOR_ACTOR_ADMIN_HEADER, REKOR_CLIENT_HEADER, REKOR_TOOL_ID_HEADER, REKOR_CLIENTS, rekorClientSchema, MAX_REKOR_TOOL_ID_LENGTH, rekorToolIdSchema, DATA_PROXY_MOUNT, DATA_PROXY_PREFIX, REKOR_V1_PREFIX, DATA_PROXY_ORG_QUERY_PARAM, MAX_PROVISIONING_BODY_BYTES, dataProxyQuery, rekorAttestation, REQUIRED_REKOR_ATTESTATION_HEADERS, BASE_DESTRUCTION_MOUNT, BASE_DESTRUCTION_PREFIX, BASE_DESTRUCTION_CONFIRM_PATH, baseDestructionConfirmBody, BASE_DESTRUCTION_GRACE_MS, BASE_DESTRUCTION_CONFIRM_TTL_MS, BASE_DESTRUCTION_ORG_QUERY_PARAM, baseDestructionQuery, baseDestructionParam, baseDestructionInitiateBody, baseDestructionStatus, baseDestructionRequest, baseDestructionListResponse, baseDestructionInitiateResponse, baseDestructionConfirmResponse, baseDestructionCancelResponse, rekorBaseChangeMessageSchema, PEOPLE_CONTACT_PAGE_MAX, PEOPLE_CONTACT_PAGE_DEFAULT, PEOPLE_CONTACT_EMAIL_MAX_LENGTH, peopleUserIdSchema, peopleInviteEmailSchema, peopleContactInviteBody, peopleContactInviteIdParam, peopleContactUserIdParam, peopleContactBlockBody, peopleContactPageQuery, peopleOutgoingInviteSchema, peopleContactPersonSchema, peopleContactSchema, peopleIncomingInviteSchema, peopleBlockedUserSchema, PEOPLE_THREAD_MESSAGE_MAX_LENGTH, PEOPLE_THREAD_MESSAGES_PAGE_MAX, PEOPLE_THREAD_PAGE_MAX, PEOPLE_THREAD_PAGE_DEFAULT, PEOPLE_GROUP_NAME_MAX_LENGTH, PEOPLE_GROUP_AVATAR_URL_MAX_LENGTH, PEOPLE_THREAD_ATTACHMENT_MAX_BYTES, PEOPLE_THREAD_ATTACHMENT_NAME_MAX_LENGTH, PEOPLE_ATTACHMENT_STORAGE_PER_USER_BYTES, PEOPLE_THREAD_ATTACHMENT_MAX_MB, PEOPLE_THREAD_ATTACHMENT_URL_TTL_SECONDS, PEOPLE_THREAD_ATTACHMENT_URLS_MAX, peopleThreadIdParam, peopleThreadMessageIdParam, peopleThreadListQuery, peopleThreadMessagesQuery, peopleThreadAttachmentUploadSchema, peopleThreadSendBody, peopleThreadAttachmentUrlsBody, peopleThreadReadBody, peopleThreadSettingsBody, peopleGroupNameSchema, peopleGroupAvatarUrlSchema, peopleGroupCreateBody, peopleOrgDirectBody, peopleGroupUpdateBody, peopleGroupInviteBody, peopleOrgErasureBody, peopleGroupLeaveBody, peopleGroupInviteIdParam, peopleGroupIncomingInviteIdParam, peopleGroupMemberParam, peopleThreadKindSchema, peopleThreadMemberSchema, peopleThreadLastMessageSchema, peopleGroupRoleSchema, peopleGroupSummarySchema, peopleThreadSummarySchema, peopleThreadAttachmentSchema, peopleThreadMessageSchema, peopleGroupMemberSchema, peopleGroupSentInviteSchema, peopleGroupIncomingInviteSchema, PEOPLE_REPORT_DETAILS_MAX_LENGTH, peopleReportReasonSchema, reportDetailsSchema, reportFields, peopleReportBody, PEOPLE_MODERATION_NOTE_MAX_LENGTH, ADMIN_PEOPLE_REPORTS_PAGE_MAX, ADMIN_PEOPLE_REPORTS_PAGE_DEFAULT, peopleModerationActionSchema, moderationNoteSchema, adminPeopleReportListQuery, adminPeopleReportIdParam, adminPeopleMessageRemovalBody, adminPeopleSuspendBody, adminPeopleNoteBody, COMMUNITIES_PER_ORG_MAX, COMMUNITY_NAME_MAX_LENGTH, COMMUNITY_REGISTRY_CLOSED_REASON, COMMUNITY_JOIN_SOURCE_MAX_LENGTH, COMMUNITY_JOIN_FLOW_TOKEN_MAX_LENGTH, COMMUNITY_ROOM_NAME_MAX_LENGTH, COMMUNITY_MESSAGE_MAX_LENGTH, COMMUNITY_MESSAGES_PAGE_SIZE, COMMUNITY_ATTACHMENT_URLS_MAX, COMMUNITY_POST_TITLE_MAX_LENGTH, COMMUNITY_POST_SEARCH_MAX_LENGTH, COMMUNITY_RULES_MAX_LENGTH, COMMUNITY_SLOW_MODE_MAX_SECONDS, COMMUNITY_COURSES_LABEL_MAX_LENGTH, COMMUNITY_LIVE_TICKET_PREFIX, communityNameSchema, adminCreateCommunityBody, communityIdParam, communityJoinTokenSchema, communityJoinSourceSchema, communityJoinPreviewQuery, communityJoinBody, communityRoomKindSchema, communityRoomNameSchema, communityRoomIdParam, communityMessageIdParam, communityRoomCreateBody, communityRoomUpdateBody, communityMessagesQuery, communityMessageBodySchema, communityPostTitleSchema, communityAttachmentUploadSchema, communitySendBody, communityEditBody, communityPostIdParam, communityPostsQuery, communityAnswerBody, communityReadBody, communityAttachmentUrlsBody, communityPersonParam, communityOrgParam, communityPeopleQuery, communityCoursesLabelSchema, communitySettingsBody, communityBanBody, communityLockBody, communityPinBody, communityModLogQuery, communityReportsQuery, communityReportIdParam, communityLiveTicketSchema, communityLiveQuery, communityMuteBody, communityEmailUnsubscribeTokenSchema, COMMUNITY_EMAIL_UNSUBSCRIBE_PATH, communityEmailUnsubscribeQuery, COMMUNITY_COURSE_TITLE_MAX_LENGTH, COMMUNITY_COURSE_DESCRIPTION_MAX_LENGTH, COMMUNITY_LESSON_BODY_MAX_LENGTH, COMMUNITY_LESSON_LINKS_MAX, COMMUNITY_LESSON_URL_MAX_LENGTH, YOUTUBE_ID, YOUTUBE_HOSTS, YOUTU_BE, YOUTUBE_ID_PATH, communityCourseIdParam, communityCourseModuleIdParam, communityLessonIdParam, communityCourseTitleSchema, communityCourseDescriptionSchema, communityCoursePositionSchema, communityLessonVideoUrlSchema, communityLessonLinkSchema, communityLessonLinksSchema, communityLessonBodySchema, communityCourseCreateBody, communityCourseUpdateBody, communityModuleCreateBody, communityModuleUpdateBody, communityLessonCreateBody, communityLessonUpdateBody, COMMUNITY_LESSON_TREE_MAX_BYTES, COMMUNITY_LESSON_LINK_PROTOCOLS, LINK_SCHEME;
9437
+ var init_chunk_CYH5EXLP = __esm({
9438
+ "../../packages/core/dist/chunk-CYH5EXLP.js"() {
9436
9439
  "use strict";
9440
+ init_chunk_VORPHGDT();
9437
9441
  init_chunk_POL7B3EM();
9438
- init_chunk_NCJ3EXN7();
9442
+ init_chunk_2QR42BQR();
9439
9443
  init_chunk_3NS3HULK();
9440
9444
  init_chunk_MIWZOSPI();
9441
- init_chunk_XJDAH2N7();
9442
9445
  init_chunk_JWPRTSIB();
9443
9446
  init_zod();
9444
9447
  init_zod();
@@ -9493,7 +9496,6 @@ var init_chunk_UBWCEXTH = __esm({
9493
9496
  init_zod();
9494
9497
  init_zod();
9495
9498
  init_zod();
9496
- init_zod();
9497
9499
  primaryRegionSchema = external_exports.enum([
9498
9500
  "wnam",
9499
9501
  "enam",
@@ -10373,16 +10375,17 @@ var init_chunk_UBWCEXTH = __esm({
10373
10375
  sender_type: appMessageSenderType.nullish().transform((v) => v ?? void 0),
10374
10376
  receiver_type: appMessageReceiverType.nullish().transform((v) => v ?? void 0),
10375
10377
  // Only meaningful on a team send, where `validateAppTeamSendContext` proves the
10376
- // caller may send to this receiver. The end-user branch ignores it — see the
10377
- // receiver derivation in the route.
10378
+ // caller may send to this receiver. Absent on a team send to a conversation with no
10379
+ // person, which names its `conversation_id` instead. The end-user branch ignores it —
10380
+ // see the receiver derivation in the route.
10378
10381
  user_receiver_id: clientOptionalString,
10379
10382
  // ── Internal consult (consultant-agents PR 2 — H1.0) ──────────────────────
10380
10383
  // A team member handling a customer conversation can tag a `consultant`-role
10381
10384
  // agent for a PRIVATE, team-only exchange that never reaches the customer. A
10382
10385
  // consult send is a team send with `receiver_type: 'agent'` targeting the
10383
- // consultant; the still-required `user_receiver_id` identifies the customer whose
10384
- // conversation this is (and is authorized by `validateAppTeamSendContext`, exactly
10385
- // as a team→user send is). The consultant is resolved from `agent_receiver_id`
10386
+ // consultant; `user_receiver_id` identifies the customer whose conversation this is
10387
+ // (and is authorized by `validateAppTeamSendContext`, exactly as a team→user send is),
10388
+ // and is absent, as on a team→user send, when the conversation has no person. The consultant is resolved from `agent_receiver_id`
10386
10389
  // when supplied, else from an `@mention` parsed out of the message text against
10387
10390
  // the hub's consultant agents. `consult_thread_id` continues an existing thread;
10388
10391
  // absent, the route creates/reuses the single implicit thread. These fields are
@@ -11235,64 +11238,143 @@ var init_chunk_UBWCEXTH = __esm({
11235
11238
  hub_id: external_exports.string().uuid(),
11236
11239
  connection_id: external_exports.string().uuid()
11237
11240
  }).passthrough();
11238
- contactIdParam = external_exports.object({
11239
- id: external_exports.string().uuid()
11240
- });
11241
- listContactsQuery = external_exports.object({
11242
- hub_id: external_exports.string().uuid(),
11243
- search: external_exports.string().optional(),
11244
- tags: external_exports.string().optional(),
11245
- // comma-separated
11246
- page: external_exports.coerce.number().int().min(1).default(1),
11247
- per_page: external_exports.coerce.number().int().min(1).max(100).default(25)
11248
- });
11249
- createContactBody = external_exports.object({
11250
- hub_id: external_exports.string().uuid(),
11251
- contact_name: external_exports.string().min(1),
11252
- phone: external_exports.string().optional(),
11253
- email: external_exports.string().email().optional(),
11254
- instagram_sid: external_exports.string().optional(),
11255
- tags: external_exports.array(external_exports.string()).default([]),
11256
- metadata: external_exports.record(external_exports.unknown()).default({}),
11257
- enabled: external_exports.boolean().default(true)
11258
- }).refine(
11259
- (data) => data.phone || data.email || data.instagram_sid,
11260
- { message: "At least one channel (phone, email, or instagram_sid) is required" }
11241
+ CONTACT_ENVIRONMENTS = ["production", "preview", "all"];
11242
+ CONTACT_NAME_MAX = 200;
11243
+ CONTACT_EMAIL_MAX = 320;
11244
+ CONTACT_PHONE_INPUT_MAX = 40;
11245
+ CONTACT_INSTAGRAM_SID_MAX = 64;
11246
+ CONTACT_METADATA_MAX_BYTES = 4096;
11247
+ CONTACT_LABEL_MAX = 64;
11248
+ CONTACT_LABELS_MAX = 20;
11249
+ CONTACT_SCOPE_TAGS_MAX = 20;
11250
+ CONTACT_PAGE_MAX = 100;
11251
+ CONTACT_IMPORT_BATCH_MAX = 500;
11252
+ CONTACT_SEARCH_MAX = 100;
11253
+ CONTACT_LIST_NAME_MAX = 64;
11254
+ CONTACT_LIST_NAME_REGEX = /^[a-z0-9]+(-[a-z0-9]+)*$/;
11255
+ CONTACT_LIST_DESCRIPTION_MAX = 1e3;
11256
+ CONTACT_LIST_FILTER_MAX = 20;
11257
+ CONTACT_LIST_PINS_PER_REQUEST_MAX = 100;
11258
+ contactName = external_exports.string().trim().min(1).max(CONTACT_NAME_MAX);
11259
+ contactPhone = external_exports.string().max(CONTACT_PHONE_INPUT_MAX).transform((raw, ctx) => {
11260
+ const phone = normalizeContactPhone(raw);
11261
+ if (phone === null) {
11262
+ ctx.addIssue({ code: external_exports.ZodIssueCode.custom, message: "Phone must be an international number, e.g. +5511999999999" });
11263
+ return external_exports.NEVER;
11264
+ }
11265
+ return phone;
11266
+ });
11267
+ contactEmail = external_exports.string().trim().toLowerCase().max(CONTACT_EMAIL_MAX).email();
11268
+ contactInstagramSid = external_exports.string().trim().min(1).max(CONTACT_INSTAGRAM_SID_MAX);
11269
+ contactLabel = external_exports.string().max(CONTACT_LABEL_MAX).transform(normalizeContactLabel).refine((label) => label.length > 0, "A label cannot be empty").refine((label) => !label.includes(","), "A label cannot contain a comma");
11270
+ contactLabels = external_exports.array(contactLabel).max(CONTACT_LABELS_MAX).transform((labels) => [...new Set(labels)]);
11271
+ contactMetadata = external_exports.record(external_exports.unknown()).refine(
11272
+ (metadata) => new TextEncoder().encode(JSON.stringify(metadata)).length <= CONTACT_METADATA_MAX_BYTES,
11273
+ `Metadata must serialize to at most ${CONTACT_METADATA_MAX_BYTES} bytes`
11261
11274
  );
11262
- updateContactBody = external_exports.object({
11263
- contact_name: external_exports.string().min(1).optional(),
11264
- phone: external_exports.string().nullable().optional(),
11265
- email: external_exports.string().email().nullable().optional(),
11266
- instagram_sid: external_exports.string().nullable().optional(),
11267
- tags: external_exports.array(external_exports.string()).optional(),
11268
- metadata: external_exports.record(external_exports.unknown()).optional(),
11269
- enabled: external_exports.boolean().optional()
11270
- });
11271
- listIdParam = external_exports.object({
11272
- id: external_exports.string().uuid()
11273
- });
11274
- listListsQuery = external_exports.object({
11275
- hub_id: external_exports.string().uuid()
11275
+ scopeTagIds = external_exports.array(external_exports.string().uuid()).min(1).max(CONTACT_SCOPE_TAGS_MAX).transform((ids) => [...new Set(ids)]);
11276
+ contactVisibilitySchema = external_exports.discriminatedUnion("scope", [
11277
+ external_exports.object({ scope: external_exports.literal("all_hubs") }).strict(),
11278
+ external_exports.object({ scope: external_exports.literal("tags"), tag_ids: scopeTagIds }).strict()
11279
+ ]);
11280
+ hasIdentity = (row) => Boolean(row.phone || row.email || row.instagram_sid);
11281
+ IDENTITY_REQUIRED = "A contact needs a phone, an email or an Instagram id";
11282
+ contactBookOrgQuery = external_exports.object({
11283
+ organization_id: external_exports.string().uuid()
11276
11284
  });
11277
- listListContactsQuery = external_exports.object({
11278
- page: external_exports.coerce.number().int().min(1).default(1),
11279
- per_page: external_exports.coerce.number().int().min(1).max(100).default(25)
11285
+ contactBookContactParam = external_exports.object({
11286
+ contactId: external_exports.string().uuid()
11280
11287
  });
11281
- createListBody = external_exports.object({
11282
- hub_id: external_exports.string().uuid(),
11283
- list_name: external_exports.string().min(1),
11284
- description: external_exports.string().nullable().optional()
11288
+ contactBookListParam = external_exports.object({
11289
+ listId: external_exports.string().uuid()
11285
11290
  });
11286
- updateListBody = external_exports.object({
11287
- list_name: external_exports.string().min(1).optional(),
11288
- description: external_exports.string().nullable().optional()
11291
+ contactBookHubParam = external_exports.object({
11292
+ hubId: external_exports.string().uuid()
11289
11293
  });
11290
- addListContactsBody = external_exports.object({
11291
- contact_ids: external_exports.array(external_exports.string().uuid()).min(1)
11294
+ contactBookPageQuery = external_exports.object({
11295
+ cursor: external_exports.string().max(2048).optional(),
11296
+ limit: external_exports.coerce.number().int().min(1).max(CONTACT_PAGE_MAX).default(50)
11297
+ });
11298
+ listContactBookContactsQuery = contactBookOrgQuery.merge(contactBookPageQuery).extend({
11299
+ q: external_exports.string().trim().max(CONTACT_SEARCH_MAX).optional(),
11300
+ label: external_exports.string().max(CONTACT_LABEL_MAX).transform(normalizeContactLabel).optional(),
11301
+ scope_tag_id: external_exports.string().uuid().optional()
11302
+ });
11303
+ listHubContactBookContactsQuery = contactBookPageQuery.extend({
11304
+ q: external_exports.string().trim().max(CONTACT_SEARCH_MAX).optional()
11305
+ });
11306
+ contactBookLinkCandidatesQuery = contactBookOrgQuery.extend({
11307
+ email: contactEmail
11308
+ });
11309
+ listContactBookListMembersQuery = contactBookOrgQuery.merge(contactBookPageQuery);
11310
+ contactRowFields = {
11311
+ name: contactName,
11312
+ phone: contactPhone.nullish(),
11313
+ email: contactEmail.nullish(),
11314
+ instagram_sid: contactInstagramSid.nullish(),
11315
+ labels: contactLabels.optional(),
11316
+ metadata: contactMetadata.optional()
11317
+ };
11318
+ createContactBookContactBody = external_exports.object({
11319
+ organization_id: external_exports.string().uuid(),
11320
+ ...contactRowFields,
11321
+ visibility: contactVisibilitySchema,
11322
+ environment: external_exports.enum(CONTACT_ENVIRONMENTS).optional()
11323
+ }).strict().refine(hasIdentity, IDENTITY_REQUIRED);
11324
+ updateContactBookContactBody = external_exports.object({
11325
+ name: contactName.optional(),
11326
+ phone: contactPhone.nullable().optional(),
11327
+ email: contactEmail.nullable().optional(),
11328
+ instagram_sid: contactInstagramSid.nullable().optional(),
11329
+ labels: contactLabels.optional(),
11330
+ metadata: contactMetadata.optional(),
11331
+ visibility: contactVisibilitySchema.optional(),
11332
+ environment: external_exports.enum(CONTACT_ENVIRONMENTS).optional()
11333
+ }).strict();
11334
+ contactImportRowSchema = external_exports.object(contactRowFields).strict().refine(hasIdentity, IDENTITY_REQUIRED);
11335
+ importContactBookContactsBody = external_exports.object({
11336
+ organization_id: external_exports.string().uuid(),
11337
+ visibility: contactVisibilitySchema,
11338
+ environment: external_exports.enum(CONTACT_ENVIRONMENTS).optional(),
11339
+ labels: contactLabels.optional(),
11340
+ rows: external_exports.array(contactImportRowSchema).min(1).max(CONTACT_IMPORT_BATCH_MAX)
11341
+ }).strict().superRefine((batch, ctx) => {
11342
+ batch.rows.forEach((row, index) => {
11343
+ if (importRowLabels(row, batch.labels).length > CONTACT_LABELS_MAX) {
11344
+ ctx.addIssue({
11345
+ code: external_exports.ZodIssueCode.custom,
11346
+ path: ["rows", index, "labels"],
11347
+ message: `A contact holds at most ${CONTACT_LABELS_MAX} labels, the batch's included`
11348
+ });
11349
+ }
11350
+ });
11292
11351
  });
11293
- removeListContactsBody = external_exports.object({
11294
- contact_ids: external_exports.array(external_exports.string().uuid()).min(1)
11352
+ linkContactBookContactBody = external_exports.object({
11353
+ user_id: external_exports.string().min(1).max(128)
11354
+ }).strict();
11355
+ listName = external_exports.string().trim().min(1).max(CONTACT_LIST_NAME_MAX).regex(CONTACT_LIST_NAME_REGEX, {
11356
+ message: 'Must be lowercase alphanumeric with hyphens (e.g. "vip-customers")'
11295
11357
  });
11358
+ contactListFilterSchema = external_exports.object({
11359
+ labels: external_exports.array(contactLabel).max(CONTACT_LIST_FILTER_MAX).transform((l) => [...new Set(l)]).default([]),
11360
+ scope_tag_ids: external_exports.array(external_exports.string().uuid()).max(CONTACT_LIST_FILTER_MAX).transform((t) => [...new Set(t)]).default([])
11361
+ }).strict();
11362
+ createContactBookListBody = external_exports.object({
11363
+ organization_id: external_exports.string().uuid(),
11364
+ name: listName,
11365
+ description: external_exports.string().max(CONTACT_LIST_DESCRIPTION_MAX).nullish(),
11366
+ filter: contactListFilterSchema.optional()
11367
+ }).strict();
11368
+ updateContactBookListBody = external_exports.object({
11369
+ name: listName.optional(),
11370
+ description: external_exports.string().max(CONTACT_LIST_DESCRIPTION_MAX).nullable().optional(),
11371
+ filter: contactListFilterSchema.optional()
11372
+ }).strict();
11373
+ updateContactBookListPinsBody = external_exports.object({
11374
+ add: external_exports.array(external_exports.string().uuid()).max(CONTACT_LIST_PINS_PER_REQUEST_MAX).default([]),
11375
+ remove: external_exports.array(external_exports.string().uuid()).max(CONTACT_LIST_PINS_PER_REQUEST_MAX).default([])
11376
+ }).strict().refine((b) => b.add.length + b.remove.length > 0, "Add or remove at least one contact");
11377
+ orgListReferenceSchema = listName;
11296
11378
  AUTOMATION_TRIGGER_TYPES = ["schedule", "event", "webhook"];
11297
11379
  AUTOMATION_TARGET_TYPES = ["none", "contact_list"];
11298
11380
  AUTOMATION_ACTION_TYPES = ["run_agent", "send_message"];
@@ -11309,7 +11391,7 @@ var init_chunk_UBWCEXTH = __esm({
11309
11391
  }).strict();
11310
11392
  automationTargetSchema = external_exports.object({
11311
11393
  type: external_exports.enum(AUTOMATION_TARGET_TYPES),
11312
- list_id: external_exports.string().uuid().optional()
11394
+ org_list: orgListReferenceSchema.optional()
11313
11395
  }).strict();
11314
11396
  automationActionSchema = external_exports.object({
11315
11397
  type: external_exports.enum(AUTOMATION_ACTION_TYPES),
@@ -11349,6 +11431,11 @@ var init_chunk_UBWCEXTH = __esm({
11349
11431
  target: automationTargetSchema.optional(),
11350
11432
  action: automationActionSchema.optional()
11351
11433
  }).strict();
11434
+ AUTOMATION_ALERT_CATEGORIES = {
11435
+ list_not_found: "automation_list_not_found",
11436
+ list_over_cap: "automation_list_over_cap"
11437
+ };
11438
+ AUTOMATION_BLOCKED_ALERT_CATEGORY = "automation_blocked";
11352
11439
  VERSION_PART = "(0|[1-9][0-9]{0,5})";
11353
11440
  MOBILE_APP_VERSION_RE = new RegExp(`^${VERSION_PART}\\.${VERSION_PART}\\.${VERSION_PART}$`);
11354
11441
  mobileAppVersionSchema = external_exports.string().regex(MOBILE_APP_VERSION_RE, "must be a MAJOR.MINOR.PATCH version, e.g. 1.0.0");
@@ -11449,6 +11536,8 @@ var init_chunk_UBWCEXTH = __esm({
11449
11536
  });
11450
11537
  MAX_VOICE_CALL_MINUTE_OPS = 60;
11451
11538
  voiceCallMinuteOps = external_exports.number().int().min(0).max(MAX_VOICE_CALL_MINUTE_OPS);
11539
+ AUTOMATION_LIST_MAX_CONTACTS_BOUND = 1e4;
11540
+ automationListMaxContacts = external_exports.number().int().min(1).max(AUTOMATION_LIST_MAX_CONTACTS_BOUND);
11452
11541
  updatePlatformConfigBody = external_exports.object({
11453
11542
  free_plan_max_free_orgs_per_user: external_exports.number().int().min(0).optional(),
11454
11543
  /** Kill switch for admin debug-read endpoints. 0 = off, 1 = on. */
@@ -11488,6 +11577,8 @@ var init_chunk_UBWCEXTH = __esm({
11488
11577
  * `wayai admin communities enable|disable` flips this.
11489
11578
  */
11490
11579
  communities_enabled: external_exports.number().int().min(0).max(1).optional(),
11580
+ /** The most contacts one automation fire reaches (`automationListMaxContacts`). */
11581
+ automation_list_max_contacts: automationListMaxContacts.optional(),
11491
11582
  /**
11492
11583
  * The mobile app version policy (`MOBILE_VERSION_POLICY_COLUMNS`), per platform: an install
11493
11584
  * below the minimum is blocked until it updates from the store; one below the recommended
@@ -11520,7 +11611,6 @@ var init_chunk_UBWCEXTH = __esm({
11520
11611
  "connection",
11521
11612
  "eval",
11522
11613
  "mcp_tool",
11523
- "outbound_contact",
11524
11614
  "resource",
11525
11615
  "resource_folder",
11526
11616
  "tool"
@@ -11639,7 +11729,7 @@ var init_chunk_UBWCEXTH = __esm({
11639
11729
  /** Filter to specific DO types (default: all) */
11640
11730
  do_types: external_exports.array(pitrDoNamespace).optional()
11641
11731
  });
11642
- dataExplorerDebugDoType = external_exports.enum(["hub", "org", "conversation", "user", "platform", "thread", "community"]);
11732
+ dataExplorerDebugDoType = external_exports.enum(["hub", "org", "conversation", "user", "platform", "thread", "community", "contact_book"]);
11643
11733
  DEBUG_READ_MAX_LIMIT = 100;
11644
11734
  DEBUG_READ_DEFAULT_LIMIT = 20;
11645
11735
  DEBUG_DO_HEX_PREFIX = "hex:";
@@ -12698,16 +12788,16 @@ var init_chunk_R5WRRHCL = __esm({
12698
12788
  var init_contracts = __esm({
12699
12789
  "../../packages/core/dist/contracts/index.js"() {
12700
12790
  "use strict";
12701
- init_chunk_UBWCEXTH();
12791
+ init_chunk_CYH5EXLP();
12792
+ init_chunk_VORPHGDT();
12702
12793
  init_chunk_POL7B3EM();
12703
- init_chunk_NCJ3EXN7();
12794
+ init_chunk_2QR42BQR();
12704
12795
  init_chunk_SNA2DXAC();
12705
12796
  init_chunk_R5WRRHCL();
12706
12797
  init_chunk_IBL7FANV();
12707
12798
  init_chunk_C2UEA2KW();
12708
12799
  init_chunk_3NS3HULK();
12709
12800
  init_chunk_MIWZOSPI();
12710
- init_chunk_XJDAH2N7();
12711
12801
  init_chunk_JWPRTSIB();
12712
12802
  init_chunk_T7KQKDET();
12713
12803
  init_chunk_L5F7ZOUJ();
@@ -13683,24 +13773,31 @@ var init_errors2 = __esm({
13683
13773
  }
13684
13774
  });
13685
13775
 
13686
- // ../../packages/core/dist/chunk-IOJOM4DE.js
13687
- var init_chunk_IOJOM4DE = __esm({
13688
- "../../packages/core/dist/chunk-IOJOM4DE.js"() {
13689
- "use strict";
13690
- init_chunk_C2UEA2KW();
13691
- }
13692
- });
13693
-
13694
- // ../../packages/core/dist/chunk-5UOHWWD5.js
13776
+ // ../../packages/core/dist/chunk-WSROLRJN.js
13695
13777
  function identifyTokenType(token) {
13696
13778
  if (token.startsWith("way_")) return "way_token";
13697
13779
  if (token.startsWith("eyJ")) return "jwt";
13698
13780
  return "unknown";
13699
13781
  }
13700
- var init_chunk_5UOHWWD5 = __esm({
13701
- "../../packages/core/dist/chunk-5UOHWWD5.js"() {
13782
+ var init_chunk_WSROLRJN = __esm({
13783
+ "../../packages/core/dist/chunk-WSROLRJN.js"() {
13784
+ "use strict";
13785
+ init_chunk_VORPHGDT();
13786
+ }
13787
+ });
13788
+
13789
+ // ../../packages/core/dist/chunk-FEOO3UPS.js
13790
+ var init_chunk_FEOO3UPS = __esm({
13791
+ "../../packages/core/dist/chunk-FEOO3UPS.js"() {
13792
+ "use strict";
13793
+ }
13794
+ });
13795
+
13796
+ // ../../packages/core/dist/chunk-IOJOM4DE.js
13797
+ var init_chunk_IOJOM4DE = __esm({
13798
+ "../../packages/core/dist/chunk-IOJOM4DE.js"() {
13702
13799
  "use strict";
13703
- init_chunk_XJDAH2N7();
13800
+ init_chunk_C2UEA2KW();
13704
13801
  }
13705
13802
  });
13706
13803
 
@@ -13802,10 +13899,10 @@ var init_chunk_R7VSUKKX = __esm({
13802
13899
  }
13803
13900
  });
13804
13901
 
13805
- // ../../packages/core/dist/chunk-MHWOQS63.js
13902
+ // ../../packages/core/dist/chunk-4MBOLX7Q.js
13806
13903
  var APP_ERROR_BRAND, AppError, LLM_RATE_LIMIT_BRAND, LlmRateLimitError, LLM_PROVIDER_HTTP_BRAND, LlmProviderHttpError, LLM_PROVIDER_CONTENT_BRAND, LlmProviderContentError, LLM_PROVIDER_TIMEOUT_BRAND, LlmProviderTimeoutError, ExternalServiceError, CHANNEL_PROVIDER_HTTP_BRAND, ChannelProviderHttpError, MEDIA_PROVIDER_HTTP_BRAND, MediaProviderHttpError;
13807
- var init_chunk_MHWOQS63 = __esm({
13808
- "../../packages/core/dist/chunk-MHWOQS63.js"() {
13904
+ var init_chunk_4MBOLX7Q = __esm({
13905
+ "../../packages/core/dist/chunk-4MBOLX7Q.js"() {
13809
13906
  "use strict";
13810
13907
  init_chunk_R7VSUKKX();
13811
13908
  APP_ERROR_BRAND = /* @__PURE__ */ Symbol.for("wayai.AppError");
@@ -13956,13 +14053,6 @@ var init_chunk_ERFR7IRY = __esm({
13956
14053
  }
13957
14054
  });
13958
14055
 
13959
- // ../../packages/core/dist/chunk-FEOO3UPS.js
13960
- var init_chunk_FEOO3UPS = __esm({
13961
- "../../packages/core/dist/chunk-FEOO3UPS.js"() {
13962
- "use strict";
13963
- }
13964
- });
13965
-
13966
14056
  // ../../packages/core/dist/index.js
13967
14057
  function markdownToPlainText(text) {
13968
14058
  let result = text;
@@ -13984,27 +14074,27 @@ var ENDPOINT_CONFIGS, WAYAI_WORKSPACE_LAYOUT;
13984
14074
  var init_dist = __esm({
13985
14075
  "../../packages/core/dist/index.js"() {
13986
14076
  "use strict";
13987
- init_chunk_UBWCEXTH();
14077
+ init_chunk_WSROLRJN();
14078
+ init_chunk_CYH5EXLP();
14079
+ init_chunk_VORPHGDT();
13988
14080
  init_chunk_POL7B3EM();
13989
- init_chunk_NCJ3EXN7();
14081
+ init_chunk_2QR42BQR();
13990
14082
  init_chunk_SNA2DXAC();
13991
14083
  init_chunk_R5WRRHCL();
13992
14084
  init_chunk_IBL7FANV();
14085
+ init_chunk_FEOO3UPS();
13993
14086
  init_chunk_IOJOM4DE();
13994
14087
  init_chunk_C2UEA2KW();
13995
14088
  init_chunk_3NS3HULK();
13996
14089
  init_chunk_MIWZOSPI();
13997
- init_chunk_5UOHWWD5();
13998
- init_chunk_XJDAH2N7();
13999
14090
  init_chunk_JWPRTSIB();
14000
14091
  init_chunk_BF4WRSOQ();
14001
14092
  init_chunk_T7KQKDET();
14002
14093
  init_chunk_L5F7ZOUJ();
14003
- init_chunk_MHWOQS63();
14094
+ init_chunk_4MBOLX7Q();
14004
14095
  init_chunk_R7VSUKKX();
14005
14096
  init_chunk_ERFR7IRY();
14006
14097
  init_chunk_2ISUBJG7();
14007
- init_chunk_FEOO3UPS();
14008
14098
  ENDPOINT_CONFIGS = {
14009
14099
  // OAuth callbacks - strict, fail-closed (prevent brute force)
14010
14100
  "/oauth/callback/*": { tier: "STRICT", failClosed: true },
@@ -14084,11 +14174,13 @@ var init_dist = __esm({
14084
14174
  userLimitKey: "/api/evals/calls/*"
14085
14175
  },
14086
14176
  "/api/files/*": { tier: "STANDARD", userLimit: 150, skipAuthenticatedUsers: true },
14087
- "/api/outbound/*": {
14177
+ // The org contact book (wayai#4931 PR 2b). A CSV import sends one request per
14178
+ // `CONTACT_IMPORT_BATCH_MAX` rows, so 150 a minute imports 75,000 rows a minute.
14179
+ "/api/contact-book/*": {
14088
14180
  tier: "STANDARD",
14089
14181
  userLimit: 150,
14090
14182
  skipAuthenticatedUsers: true,
14091
- userLimitKey: "/api/outbound/*"
14183
+ userLimitKey: "/api/contact-book/*"
14092
14184
  },
14093
14185
  "/api/automations/*": {
14094
14186
  tier: "STANDARD",
@@ -15798,7 +15890,7 @@ var init_registry = __esm({
15798
15890
  surviving: "bases import",
15799
15891
  clause: 3,
15800
15892
  shipped: true,
15801
- reason: "WayAI has outbound-contact import."
15893
+ reason: "WayAI has contact import (the organization's contact book)."
15802
15894
  },
15803
15895
  {
15804
15896
  original: "batch",
@@ -18087,18 +18179,17 @@ function parseHubFolder(hubFolder, opts) {
18087
18179
  if (Array.isArray(config.connections)) {
18088
18180
  payload.connections = config.connections;
18089
18181
  }
18090
- if (config.outbound_contacts && config.outbound_contacts.length > 0) {
18091
- payload.outbound_contacts = config.outbound_contacts;
18092
- }
18093
- if (config.outbound_lists && config.outbound_lists.length > 0) {
18094
- payload.outbound_lists = config.outbound_lists;
18095
- }
18096
18182
  if (Array.isArray(config.automations)) {
18097
18183
  payload.automations = config.automations;
18098
18184
  }
18099
18185
  if (config.outbound_schedules !== void 0) {
18100
18186
  console.warn(" Warning: hub.yaml `outbound_schedules:` is no longer read \u2014 schedules are now `automations:` (see the wayai skill). Its entries were not pushed.");
18101
18187
  }
18188
+ for (const key of ["outbound_contacts", "outbound_lists"]) {
18189
+ if (config[key] !== void 0) {
18190
+ console.warn(` Warning: hub.yaml \`${key}:\` is no longer read \u2014 contacts and lists are now the organization's contact book (see the wayai skill). Its entries were not pushed.`);
18191
+ }
18192
+ }
18102
18193
  const bytesByHash = /* @__PURE__ */ new Map();
18103
18194
  const evals = scanEvalYamlFiles(hubFolder, bytesByHash, unreadable);
18104
18195
  if (evals.length > 0) {
@@ -18599,12 +18690,6 @@ function buildYamlPayload(payload) {
18599
18690
  if (payload.connections && payload.connections.length > 0) {
18600
18691
  result.connections = payload.connections;
18601
18692
  }
18602
- if (payload.outbound_contacts && payload.outbound_contacts.length > 0) {
18603
- result.outbound_contacts = payload.outbound_contacts;
18604
- }
18605
- if (payload.outbound_lists && payload.outbound_lists.length > 0) {
18606
- result.outbound_lists = payload.outbound_lists;
18607
- }
18608
18693
  if (payload.automations && payload.automations.length > 0) {
18609
18694
  result.automations = payload.automations;
18610
18695
  }
@@ -20128,12 +20213,6 @@ Sync complete. Preview hub: ${result.preview_hub_id}`);
20128
20213
  if (c.resource_links_created > 0) parts.push(`${c.resource_links_created} resource link(s) created`);
20129
20214
  if (c.resource_links_updated > 0) parts.push(`${c.resource_links_updated} resource link(s) updated`);
20130
20215
  if (c.resource_links_deleted > 0) parts.push(`${c.resource_links_deleted} resource link(s) deleted`);
20131
- if (c.outbound_contacts_created > 0) parts.push(`${c.outbound_contacts_created} outbound contact(s) created`);
20132
- if (c.outbound_contacts_updated > 0) parts.push(`${c.outbound_contacts_updated} outbound contact(s) updated`);
20133
- if (c.outbound_contacts_deleted > 0) parts.push(`${c.outbound_contacts_deleted} outbound contact(s) deleted`);
20134
- if (c.outbound_lists_created > 0) parts.push(`${c.outbound_lists_created} outbound list(s) created`);
20135
- if (c.outbound_lists_updated > 0) parts.push(`${c.outbound_lists_updated} outbound list(s) updated`);
20136
- if (c.outbound_lists_deleted > 0) parts.push(`${c.outbound_lists_deleted} outbound list(s) deleted`);
20137
20216
  if (c.automations_created > 0) parts.push(`${c.automations_created} automation(s) created`);
20138
20217
  if (c.automations_updated > 0) parts.push(`${c.automations_updated} automation(s) updated`);
20139
20218
  if (c.automations_deleted > 0) parts.push(`${c.automations_deleted} automation(s) deleted`);
@@ -22652,6 +22731,24 @@ function describeCategory(category) {
22652
22731
  label: "Production credential missing",
22653
22732
  hint: "A production connection has no credential. Set it with `wayai set-connection-credential`."
22654
22733
  };
22734
+ // wayai#4931 PR 2b: an automation whose fire reached no org list.
22735
+ case AUTOMATION_ALERT_CATEGORIES.list_not_found:
22736
+ return {
22737
+ label: "Automation list not found",
22738
+ hint: "An automation names an org list the organization no longer has. Point it at another list (its `target.org_list`), or create the list in the organization's Contacts settings."
22739
+ };
22740
+ case AUTOMATION_ALERT_CATEGORIES.list_over_cap:
22741
+ return {
22742
+ label: "Automation list over the cap",
22743
+ hint: "An automation's org list holds more contacts this hub sees than one fire may reach. Narrow the list's filter in the organization's Contacts settings."
22744
+ };
22745
+ // wayai#4931 D15: an automation, enabled and not paused, that cannot fire. Its subject is the
22746
+ // automation, never a connection; the reason, naming the automation, is the alert's detail.
22747
+ case AUTOMATION_BLOCKED_ALERT_CATEGORY:
22748
+ return {
22749
+ label: "Automation cannot run",
22750
+ hint: "An automation is enabled but cannot run (its agent, connection or template is gone, or its agent is disabled). Open it in the hub's Automations tab, where the reason is shown; the alert clears once it runs again, or is paused, disabled or fixed."
22751
+ };
22655
22752
  default:
22656
22753
  if (category.startsWith("provider:")) {
22657
22754
  return {
@@ -22681,6 +22778,7 @@ ${lines.join("\n")}`;
22681
22778
  var init_hub_alerts = __esm({
22682
22779
  "src/lib/hub-alerts.ts"() {
22683
22780
  "use strict";
22781
+ init_contracts();
22684
22782
  }
22685
22783
  });
22686
22784