@wayai/cli 0.3.205 → 0.3.206

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
@@ -9789,7 +9789,7 @@ function communityLessonVideoWatchUrl(video) {
9789
9789
  return `https://www.youtube.com/watch?v=${video.id}`;
9790
9790
  }
9791
9791
  }
9792
- var 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, SUPPRESSION_SCOPES, SUPPRESSION_ID_REGEX, 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, suppressionIdentitySchema, createContactBookSuppressionBody, contactBookSuppressionParam, listContactBookSuppressionsQuery, CONTACT_BOOK_EMAIL_UNSUBSCRIBE_PATH, contactBookEmailUnsubscribeTokenSchema, contactBookEmailUnsubscribeQuery, orgListReferenceSchema, hubListNameSchema, HUB_LIST_FILTER_REQUIRED, hubContactListFilterSchema, hubContactListIdParam, hubContactListHubQuery, description, createHubContactListBody, updateHubContactListBody, AUTOMATION_TRIGGER_TYPES, AUTOMATION_EVENT_TYPES, AUTOMATION_TARGET_TYPES, AUTOMATION_ACTION_TYPES, AUTOMATION_CHANNEL_TYPES, AUTOMATION_PURPOSES, AUTOMATION_NAME_MAX, AUTOMATION_DESCRIPTION_MAX, AUTOMATION_INSTRUCTIONS_MAX, AUTOMATION_TEXT_MAX, AUTOMATION_CRON_MAX, AUTOMATION_WEBHOOK_AUTHS, AUTOMATION_WEBHOOK_HEADERS, AUTOMATION_WEBHOOK_BODY_MAX_BYTES, AUTOMATION_WEBHOOK_HEADER_NAME_MAX, AUTOMATION_WEBHOOK_MOUNT, WEBHOOK_RESERVED_HEADERS, automationTriggerSchema, automationTargetSchema, automationActionSchema, automationGateSchema, automationName, automationDescription, automationIdParam, automationHubQuery, automationWebhookParams, AUTOMATION_RUNS_PAGE_MAX, listAutomationRunsQuery, createAutomationBody, updateAutomationBody, AUTOMATION_ALERT_CATEGORIES, AUTOMATION_BLOCKED_ALERT_CATEGORY, automationEventSubscriberParam, 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_GATE_EVALUATIONS_PER_OPERATION_BOUND, automationGateEvaluationsPerOperation, AUTOMATION_RUN_RETENTION_DAYS_MAX, automationRunRetentionDays, 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_ADMISSIONS, COMMUNITY_ACCESS_ADD_MAX, COMMUNITY_JOIN_SOURCE_MAX_LENGTH, COMMUNITY_JOIN_FLOW_TOKEN_MAX_LENGTH, COMMUNITY_ROOMS_MAX, 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_MEMBER_STATUSES, COMMUNITY_RULES_MAX_LENGTH, COMMUNITY_SLOW_MODE_MAX_SECONDS, COMMUNITY_COURSES_LABEL_MAX_LENGTH, COMMUNITY_LIVE_TICKET_PREFIX, COMMUNITY_STATS_DAYS, 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, communityAdmissionSchema, communitySettingsBody, communityAccessEmailSchema, communityAccessAddBody, communityAccessQuery, communityAccessIdParam, communityBanBody, communityLockBody, communityPinBody, communityModLogQuery, communityReportsQuery, communityReportIdParam, communityLiveTicketSchema, communityLiveQuery, communityMuteBody, communityEmailUnsubscribeTokenSchema, COMMUNITY_EMAIL_UNSUBSCRIBE_PATH, communityEmailUnsubscribeQuery, COMMUNITY_COURSES_MAX, COMMUNITY_COURSE_MODULES_MAX, COMMUNITY_COURSE_LESSONS_MAX, COMMUNITY_LESSONS_MAX, 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, COMMUNITY_LESSON_TREE_TOO_LARGE_REASON, COMMUNITY_LESSON_TREE_TOO_DEEP_REASON, COMMUNITY_LESSON_LINE_PREFIX_TOO_WIDE_REASON, LINK_SCHEME, adminSetGuideHubBody, GUIDE_HUB_INELIGIBLE_REASON;
9792
+ var 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, SUPPRESSION_SCOPES, SUPPRESSION_ID_REGEX, 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, suppressionIdentitySchema, createContactBookSuppressionBody, contactBookSuppressionParam, listContactBookSuppressionsQuery, CONTACT_BOOK_EMAIL_UNSUBSCRIBE_PATH, contactBookEmailUnsubscribeTokenSchema, contactBookEmailUnsubscribeQuery, orgListReferenceSchema, hubListNameSchema, HUB_LIST_FILTER_REQUIRED, hubContactListFilterSchema, hubContactListIdParam, hubContactListHubQuery, description, createHubContactListBody, updateHubContactListBody, AUTOMATION_TRIGGER_TYPES, AUTOMATION_EVENT_TYPES, AUTOMATION_TARGET_TYPES, AUTOMATION_ACTION_TYPES, AUTOMATION_CHANNEL_TYPES, AUTOMATION_PURPOSES, AUTOMATION_NAME_MAX, AUTOMATION_DESCRIPTION_MAX, AUTOMATION_INSTRUCTIONS_MAX, AUTOMATION_TEXT_MAX, AUTOMATION_CRON_MAX, AUTOMATION_WEBHOOK_AUTHS, AUTOMATION_WEBHOOK_HEADERS, AUTOMATION_WEBHOOK_BODY_MAX_BYTES, AUTOMATION_WEBHOOK_HEADER_NAME_MAX, AUTOMATION_WEBHOOK_MOUNT, WEBHOOK_RESERVED_HEADERS, automationTriggerSchema, automationTargetSchema, automationActionSchema, automationGateSchema, automationName, automationDescription, automationIdParam, automationHubQuery, automationWebhookParams, AUTOMATION_RUNS_PAGE_MAX, listAutomationRunsQuery, createAutomationBody, updateAutomationBody, AUTOMATION_ALERT_CATEGORIES, AUTOMATION_BLOCKED_ALERT_CATEGORY, automationEventSubscriberParam, 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_GATE_EVALUATIONS_PER_OPERATION_BOUND, automationGateEvaluationsPerOperation, AUTOMATION_RUN_RETENTION_DAYS_MAX, automationRunRetentionDays, 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, PEOPLE_SUSPENDED_REASON, peopleModerationActionSchema, moderationNoteSchema, adminPeopleReportListQuery, adminPeopleReportIdParam, adminPeopleMessageRemovalBody, adminPeopleSuspendBody, adminPeopleNoteBody, COMMUNITIES_PER_ORG_MAX, COMMUNITY_NAME_MAX_LENGTH, COMMUNITY_REGISTRY_CLOSED_REASON, COMMUNITY_MEMBERS_MAX, COMMUNITY_ADMISSIONS, COMMUNITY_ACCESS_MAX, COMMUNITY_ACCESS_ADD_MAX, COMMUNITY_ACCESS_FULL_REASON, COMMUNITY_JOIN_SOURCE_MAX_LENGTH, COMMUNITY_JOIN_FLOW_TOKEN_MAX_LENGTH, COMMUNITY_ROOMS_MAX, 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_MEMBER_STATUSES, COMMUNITY_RULES_MAX_LENGTH, COMMUNITY_SLOW_MODE_MAX_SECONDS, COMMUNITY_COURSES_LABEL_MAX_LENGTH, COMMUNITY_LIVE_TICKET_PREFIX, COMMUNITY_STATS_DAYS, 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, communityAdmissionSchema, communitySettingsBody, communityAccessEmailSchema, communityAccessAddBody, communityAccessQuery, communityAccessIdParam, communityBanBody, communityLockBody, communityPinBody, communityModLogQuery, communityReportsQuery, communityReportIdParam, communityLiveTicketSchema, communityLiveQuery, communityMuteBody, communityEmailUnsubscribeTokenSchema, COMMUNITY_EMAIL_UNSUBSCRIBE_PATH, communityEmailUnsubscribeQuery, COMMUNITY_COURSES_MAX, COMMUNITY_COURSE_MODULES_MAX, COMMUNITY_COURSE_LESSONS_MAX, COMMUNITY_LESSONS_MAX, 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, COMMUNITY_LESSON_TREE_TOO_LARGE_REASON, COMMUNITY_LESSON_TREE_TOO_DEEP_REASON, COMMUNITY_LESSON_LINE_PREFIX_TOO_WIDE_REASON, LINK_SCHEME, adminSetGuideHubBody, GUIDE_HUB_INELIGIBLE_REASON;
9793
9793
  var init_chunk_T3VB6VFG = __esm({
9794
9794
  "../../packages/core/dist/chunk-T3VB6VFG.js"() {
9795
9795
  "use strict";
@@ -12803,6 +12803,7 @@ var init_chunk_T3VB6VFG = __esm({
12803
12803
  PEOPLE_MODERATION_NOTE_MAX_LENGTH = 500;
12804
12804
  ADMIN_PEOPLE_REPORTS_PAGE_MAX = 100;
12805
12805
  ADMIN_PEOPLE_REPORTS_PAGE_DEFAULT = 50;
12806
+ PEOPLE_SUSPENDED_REASON = "suspended";
12806
12807
  peopleModerationActionSchema = external_exports.enum(["remove_message", "suspend", "unsuspend", "dismiss"]);
12807
12808
  moderationNoteSchema = optionalTrimmedText(PEOPLE_MODERATION_NOTE_MAX_LENGTH);
12808
12809
  adminPeopleReportListQuery = external_exports.object({
@@ -12819,8 +12820,11 @@ var init_chunk_T3VB6VFG = __esm({
12819
12820
  COMMUNITIES_PER_ORG_MAX = 10;
12820
12821
  COMMUNITY_NAME_MAX_LENGTH = 100;
12821
12822
  COMMUNITY_REGISTRY_CLOSED_REASON = "community_registry_closed";
12823
+ COMMUNITY_MEMBERS_MAX = 1e4;
12822
12824
  COMMUNITY_ADMISSIONS = ["link", "invite"];
12825
+ COMMUNITY_ACCESS_MAX = COMMUNITY_MEMBERS_MAX;
12823
12826
  COMMUNITY_ACCESS_ADD_MAX = 500;
12827
+ COMMUNITY_ACCESS_FULL_REASON = "community_access_full";
12824
12828
  COMMUNITY_JOIN_SOURCE_MAX_LENGTH = 32;
12825
12829
  COMMUNITY_JOIN_FLOW_TOKEN_MAX_LENGTH = 128;
12826
12830
  COMMUNITY_ROOMS_MAX = 20;
@@ -13503,6 +13507,21 @@ var init_api_client = __esm({
13503
13507
  async updateCommunitySettings(communityId, body) {
13504
13508
  return this.request("PATCH", `/api/communities/${encodeURIComponent(communityId)}/settings`, body);
13505
13509
  }
13510
+ // A community's access list (gh #5042, `wayai communities access`): one page of it, oldest first;
13511
+ // an add; the removal of one entry, which removes the members that entry admitted.
13512
+ async listCommunityAccess(communityId, cursor) {
13513
+ const qs = cursor === void 0 ? "" : `?${new URLSearchParams({ cursor })}`;
13514
+ return this.request("GET", `/api/communities/${encodeURIComponent(communityId)}/access${qs}`);
13515
+ }
13516
+ async addCommunityAccess(communityId, body) {
13517
+ return this.request("POST", `/api/communities/${encodeURIComponent(communityId)}/access`, body);
13518
+ }
13519
+ async removeCommunityAccess(communityId, accessId) {
13520
+ return this.request(
13521
+ "DELETE",
13522
+ `/api/communities/${encodeURIComponent(communityId)}/access/${encodeURIComponent(accessId)}`
13523
+ );
13524
+ }
13506
13525
  async listCommunityRooms(communityId) {
13507
13526
  return this.request("GET", `/api/communities/${encodeURIComponent(communityId)}/rooms`);
13508
13527
  }
@@ -21067,7 +21086,8 @@ function settingsContent(settings) {
21067
21086
  return {
21068
21087
  rules: normalizeRules(settings.rules),
21069
21088
  slow_mode_seconds: settings.slow_mode_seconds,
21070
- courses_label: (settings.courses_label ?? "").trim()
21089
+ courses_label: (settings.courses_label ?? "").trim(),
21090
+ admission: settings.admission ?? DEFAULT_ADMISSION
21071
21091
  };
21072
21092
  }
21073
21093
  function roomContent(room) {
@@ -21136,13 +21156,21 @@ function localName(name, id, taken, fallback) {
21136
21156
  const withPrefix = `${slug}--${id.slice(0, 8)}`;
21137
21157
  return taken.has(withPrefix) ? `${slug}--${id}` : withPrefix;
21138
21158
  }
21139
- var REV_VERSION, settingsRev, joinLinkRev, roomRev, courseRev, moduleRev, lessonRev;
21159
+ var REV_VERSION, DEFAULT_ADMISSION, settingsRev, joinLinkRev, roomRev, courseRev, moduleRev, lessonRev;
21140
21160
  var init_model = __esm({
21141
21161
  "src/communities/model.ts"() {
21142
21162
  "use strict";
21143
21163
  init_dist();
21144
21164
  REV_VERSION = "v1";
21145
- settingsRev = (communityId, c) => rev(["settings", communityId, c.rules, c.slow_mode_seconds, c.courses_label]);
21165
+ DEFAULT_ADMISSION = "link";
21166
+ settingsRev = (communityId, c) => rev([
21167
+ "settings",
21168
+ communityId,
21169
+ c.rules,
21170
+ c.slow_mode_seconds,
21171
+ c.courses_label,
21172
+ ...c.admission === DEFAULT_ADMISSION ? [] : [c.admission]
21173
+ ]);
21146
21174
  joinLinkRev = (communityId, c) => rev(["join_link", communityId, c.enabled]);
21147
21175
  roomRev = (roomId, c) => rev(["room", roomId, c.name, c.archived]);
21148
21176
  courseRev = (courseId, c) => rev(["course", courseId, c.title, c.description, c.published]);
@@ -21550,10 +21578,11 @@ function readCommunityFolder(folder) {
21550
21578
  const settingsRev2 = settings ? optionalString(settings, "rev", `${COMMUNITY_FILE} settings`, problems2) : void 0;
21551
21579
  const slowMode = settings?.slow_mode_seconds;
21552
21580
  const coursesLabel = settings?.courses_label ?? "";
21581
+ const admission = settings?.admission ?? DEFAULT_ADMISSION;
21553
21582
  if (settings && typeof slowMode !== "number") problems2.push(`${COMMUNITY_FILE} settings: slow_mode_seconds must be a number`);
21554
21583
  if (typeof coursesLabel !== "string") problems2.push(`${COMMUNITY_FILE} settings: courses_label must be text`);
21555
21584
  if (settings && typeof slowMode === "number" && typeof coursesLabel === "string") {
21556
- const parsed = communitySettingsBody.safeParse({ rules, slow_mode_seconds: slowMode, courses_label: coursesLabel });
21585
+ const parsed = communitySettingsBody.safeParse({ rules, slow_mode_seconds: slowMode, courses_label: coursesLabel, admission });
21557
21586
  if (!parsed.success) problems2.push(`settings: ${contractProblem(parsed.error)}`);
21558
21587
  }
21559
21588
  if (typeof doc.join_link_enabled !== "boolean") problems2.push(`${COMMUNITY_FILE}: join_link_enabled must be true or false`);
@@ -21572,7 +21601,8 @@ ${problems2.map((p) => ` - ${p}`).join("\n")}`);
21572
21601
  settings: {
21573
21602
  ...settingsRev2 === void 0 ? {} : { rev: settingsRev2 },
21574
21603
  slow_mode_seconds: slowMode,
21575
- courses_label: coursesLabel
21604
+ courses_label: coursesLabel,
21605
+ admission
21576
21606
  },
21577
21607
  rules,
21578
21608
  join_link_enabled: doc.join_link_enabled,
@@ -21675,7 +21705,8 @@ function renderCommunityYaml(files) {
21675
21705
  settings: {
21676
21706
  ...files.settings.rev ? { rev: files.settings.rev } : {},
21677
21707
  slow_mode_seconds: files.settings.slow_mode_seconds,
21678
- courses_label: files.settings.courses_label
21708
+ courses_label: files.settings.courses_label,
21709
+ admission: files.settings.admission
21679
21710
  },
21680
21711
  join_link_enabled: files.join_link_enabled,
21681
21712
  ...files.join_link_rev ? { join_link_rev: files.join_link_rev } : {},
@@ -21733,7 +21764,7 @@ var init_files = __esm({
21733
21764
  init_model();
21734
21765
  init_course_files();
21735
21766
  TOP_KEYS = ["community_id", "name", "settings", "join_link_enabled", "join_link_rev", "rooms", "courses", "synced"];
21736
- SETTINGS_KEYS = ["rev", "slow_mode_seconds", "courses_label"];
21767
+ SETTINGS_KEYS = ["rev", "slow_mode_seconds", "courses_label", "admission"];
21737
21768
  ROOM_KEYS = ["key", "id", "rev", "name", "kind", "archived"];
21738
21769
  }
21739
21770
  });
@@ -23171,9 +23202,13 @@ function settingsChanges(from, to) {
23171
23202
  const out = [];
23172
23203
  if (from.slow_mode_seconds !== to.slow_mode_seconds) out.push(`slow_mode_seconds ${from.slow_mode_seconds} \u2192 ${to.slow_mode_seconds}`);
23173
23204
  if (from.courses_label !== to.courses_label) out.push(`courses_label ${show(from.courses_label)} \u2192 ${show(to.courses_label)}`);
23205
+ if (from.admission !== to.admission) out.push(`admission ${from.admission} \u2192 ${to.admission}`);
23174
23206
  if (from.rules !== to.rules) out.push("rules (rules.md)");
23175
23207
  return out;
23176
23208
  }
23209
+ function admissionChange(to) {
23210
+ return to === "invite" ? "From now on the link admits only the organization's owners and admins and the emails on the access list (wayai communities access). Current members stay, including anyone who joined with a shared link; any other member who leaves needs their email on the list to join again." : "From now on anyone with the join link can join. The access list is kept.";
23211
+ }
23177
23212
  function roomChanges(from, to) {
23178
23213
  const out = [];
23179
23214
  if (from.name !== to.name) out.push(`name ${show(from.name)} \u2192 ${show(to.name)}`);
@@ -23209,7 +23244,8 @@ function settingsPatch(files, server) {
23209
23244
  // Raw: the text as the file holds it; the server trims it and reads '' as none.
23210
23245
  ...file.rules !== server.rules ? { rules: files.rules } : {},
23211
23246
  ...file.slow_mode_seconds !== server.slow_mode_seconds ? { slow_mode_seconds: files.settings.slow_mode_seconds } : {},
23212
- ...file.courses_label !== server.courses_label ? { courses_label: files.settings.courses_label } : {}
23247
+ ...file.courses_label !== server.courses_label ? { courses_label: files.settings.courses_label } : {},
23248
+ ...file.admission !== server.admission ? { admission: file.admission } : {}
23213
23249
  };
23214
23250
  }
23215
23251
  function roomPatch(entry, room) {
@@ -23229,10 +23265,12 @@ function takeRoom(entry, room) {
23229
23265
  entry.kind = room.kind;
23230
23266
  }
23231
23267
  function takeSettings(files, settings) {
23268
+ const { content, rev: rev2 } = serverSettings(files.community_id, settings);
23232
23269
  files.settings = {
23233
- rev: serverSettings(files.community_id, settings).rev,
23270
+ rev: rev2,
23234
23271
  slow_mode_seconds: settings.slow_mode_seconds,
23235
- courses_label: settings.courses_label ?? ""
23272
+ courses_label: settings.courses_label ?? "",
23273
+ admission: content.admission
23236
23274
  };
23237
23275
  files.rules = settings.rules ?? "";
23238
23276
  }
@@ -23346,6 +23384,7 @@ function pushListing(plan, courses) {
23346
23384
  const { settings, joinLink } = plan;
23347
23385
  if (settings.state === "local") {
23348
23386
  listing.changes.push(`~ settings: ${settingsChanges(settings.server, settings.file).join("; ")}`);
23387
+ if (settings.server.admission !== settings.file.admission) listing.changes.push(` ${admissionChange(settings.file.admission)}`);
23349
23388
  if (settings.server.rules !== settings.file.rules) {
23350
23389
  listing.changes.push(...lineDiff(settings.server.rules, settings.file.rules).map((line) => ` ${line}`));
23351
23390
  }
@@ -23531,7 +23570,7 @@ function filesFromServer(server) {
23531
23570
  const files = {
23532
23571
  community_id: server.community.community_id,
23533
23572
  name: server.community.name,
23534
- settings: { slow_mode_seconds: 0, courses_label: "" },
23573
+ settings: { slow_mode_seconds: 0, courses_label: "", admission: DEFAULT_ADMISSION },
23535
23574
  rules: "",
23536
23575
  join_link_enabled: false,
23537
23576
  rooms: [],
@@ -31374,8 +31413,12 @@ async function communitiesCommand(args2) {
31374
31413
  if (sub === "join-link" && !JOIN_LINK_ACTIONS.includes(action)) {
31375
31414
  throw usageError("join-link takes get, rotate or off.");
31376
31415
  }
31416
+ if (sub === "access" && !ACCESS_ACTIONS.includes(action)) {
31417
+ throw usageError("access takes list, add or remove.");
31418
+ }
31377
31419
  const changesLink = sub === "join-link" && action !== "get";
31378
- if (yes && !changesLink) throw usageError("-y applies only to `join-link rotate` and `join-link off`.");
31420
+ const asks = changesLink || sub === "access" && action === "remove";
31421
+ if (yes && !asks) throw usageError("-y applies only to `join-link rotate`, `join-link off` and `access remove`.");
31379
31422
  switch (sub) {
31380
31423
  case "list":
31381
31424
  if (rest.length > 0) throw usageError(`Unexpected argument ${JSON.stringify(rest[0])}.`);
@@ -31393,6 +31436,21 @@ async function communitiesCommand(args2) {
31393
31436
  if (selector === void 0 || extra.length > 0) throw usageError("stats takes one <community>.");
31394
31437
  return runStats(targetOf(selector, org), json);
31395
31438
  }
31439
+ case "access": {
31440
+ const [, selector, ...emails] = rest;
31441
+ if (selector === void 0) throw usageError(`access ${action} takes a <community>.`);
31442
+ if (action === "list" && emails.length > 0) throw usageError("access list takes one <community>.");
31443
+ if (action === "add" && emails.length === 0) throw usageError("access add takes a <community> and one or more emails.");
31444
+ if (action === "remove" && emails.length !== 1) throw usageError("access remove takes a <community> and one email.");
31445
+ const valid = accessEmails(emails);
31446
+ if (action === "remove" && !yes && !isInteractive()) {
31447
+ throw usageError("access remove asks before it removes anyone; pass -y when not running in a terminal.");
31448
+ }
31449
+ const target = targetOf(selector, org);
31450
+ if (action === "list") return runAccessList(target, json);
31451
+ if (action === "add") return runAccessAdd(target, valid, json);
31452
+ return runAccessRemove(target, valid[0], { json, yes });
31453
+ }
31396
31454
  }
31397
31455
  }
31398
31456
  async function runList(orgId, json) {
@@ -31419,17 +31477,24 @@ async function runJoinLink(action, target, { json, yes }) {
31419
31477
  printLink(data2, label, json);
31420
31478
  return;
31421
31479
  }
31422
- console.error(
31423
- action === "rotate" ? `This replaces the join link of ${label} with a new one and turns it on.` : `This turns off the join link of ${label}.`
31480
+ await warnThenAsk(
31481
+ [
31482
+ action === "rotate" ? `This replaces the join link of ${label} with a new one and turns it on.` : `This turns off the join link of ${label}.`,
31483
+ "Every link shared before stops working."
31484
+ ],
31485
+ yes,
31486
+ "Aborted: the join link is unchanged."
31424
31487
  );
31425
- console.error("Every link shared before stops working.");
31426
- if (!yes && !await confirm("Proceed?")) throw expected("Aborted: the join link is unchanged.");
31427
31488
  const { data } = await callCommunities(
31428
31489
  action === "rotate" ? api.replaceCommunityJoinLink(id) : api.disableCommunityJoinLink(id),
31429
31490
  notFound
31430
31491
  );
31431
31492
  printLink(data, label, json);
31432
31493
  }
31494
+ async function warnThenAsk(warning, yes, aborted) {
31495
+ for (const line of warning) console.error(line);
31496
+ if (!yes && !await confirm("Proceed?")) throw expected(aborted);
31497
+ }
31433
31498
  function printLink(link, label, json) {
31434
31499
  if (json) {
31435
31500
  console.log(JSON.stringify(link, null, 2));
@@ -31486,11 +31551,107 @@ function printStats(stats, label) {
31486
31551
  }
31487
31552
  }
31488
31553
  }
31489
- var USAGE2, SUBCOMMANDS, JOIN_LINK_ACTIONS;
31554
+ function accessEmails(raw) {
31555
+ const emails = /* @__PURE__ */ new Set();
31556
+ const invalid = [];
31557
+ for (const value of raw) {
31558
+ const parsed = communityAccessEmailSchema.safeParse(value);
31559
+ if (parsed.success) emails.add(parsed.data);
31560
+ else invalid.push(JSON.stringify(sanitizeTerminalText(value)));
31561
+ }
31562
+ if (invalid.length > 0) {
31563
+ throw expected(`Not ${invalid.length === 1 ? "an email" : "emails"}: ${invalid.join(", ")}. Nothing was sent.`);
31564
+ }
31565
+ if (emails.size > COMMUNITY_ACCESS_ADD_MAX) {
31566
+ throw expected(`An add takes at most ${COMMUNITY_ACCESS_ADD_MAX} emails, and ${emails.size} were given. Nothing was sent.`);
31567
+ }
31568
+ return [...emails];
31569
+ }
31570
+ async function callAccess(request, notFound, label) {
31571
+ try {
31572
+ return await callCommunities(request, notFound);
31573
+ } catch (err) {
31574
+ if (err instanceof ApiError && err.status === 409) {
31575
+ const reason = extractApiErrorReason(err);
31576
+ if (reason === COMMUNITY_ACCESS_FULL_REASON) {
31577
+ throw expected(`Nothing was added: the access list of ${label} would hold more than ${COMMUNITY_ACCESS_MAX} emails.`);
31578
+ }
31579
+ if (reason === PEOPLE_SUSPENDED_REASON) {
31580
+ throw expected("WayAI has suspended this account, so it cannot change a community's access list.");
31581
+ }
31582
+ }
31583
+ throw err;
31584
+ }
31585
+ }
31586
+ async function* accessPages(api, id, notFound) {
31587
+ let cursor;
31588
+ do {
31589
+ const { data } = await callCommunities(api.listCommunityAccess(id, cursor), notFound);
31590
+ yield data.entries;
31591
+ cursor = data.next_cursor ?? void 0;
31592
+ } while (cursor !== void 0);
31593
+ }
31594
+ async function runAccessList(target, json) {
31595
+ const api = await communitiesClient();
31596
+ const { id, label } = await resolveCommunity(api, target);
31597
+ const entries = [];
31598
+ for await (const page of accessPages(api, id, communityNotFound(label))) entries.push(...page);
31599
+ if (json) {
31600
+ console.log(JSON.stringify(entries, null, 2));
31601
+ return;
31602
+ }
31603
+ if (entries.length === 0) {
31604
+ console.log(`The access list of ${label} is empty.`);
31605
+ return;
31606
+ }
31607
+ console.log(`The access list of ${label}: ${entries.length} email(s), oldest first
31608
+ `);
31609
+ printRows(entries.map((entry) => ({ email: entry.email, added: entry.created_at })));
31610
+ }
31611
+ async function runAccessAdd(target, emails, json) {
31612
+ const api = await communitiesClient();
31613
+ const { id, label } = await resolveCommunity(api, target);
31614
+ const { data } = await callAccess(api.addCommunityAccess(id, { emails }), communityNotFound(label), label);
31615
+ if (json) {
31616
+ console.log(JSON.stringify(data, null, 2));
31617
+ return;
31618
+ }
31619
+ const { added, already_listed: already } = data;
31620
+ const listed2 = already === 0 ? "" : `; ${already} ${already === 1 ? "was" : "were"} already on it`;
31621
+ console.log(`Added ${added.length} email(s) to the access list of ${label}${listed2}.`);
31622
+ }
31623
+ async function runAccessRemove(target, email, { json, yes }) {
31624
+ const api = await communitiesClient();
31625
+ const { id, label } = await resolveCommunity(api, target);
31626
+ let entry;
31627
+ for await (const page of accessPages(api, id, communityNotFound(label))) {
31628
+ entry = page.find((e) => e.email === email);
31629
+ if (entry) break;
31630
+ }
31631
+ if (!entry) throw expected(`${email} is not on the access list of ${label}. Nothing was removed.`);
31632
+ await warnThenAsk(
31633
+ [`This takes ${email} off the access list of ${label}.`, "Anyone this email let in is removed from the community now."],
31634
+ yes,
31635
+ "Aborted: the access list is unchanged."
31636
+ );
31637
+ await callAccess(
31638
+ api.removeCommunityAccess(id, entry.access_id),
31639
+ `${email} is no longer on the access list of ${label}, or you are not an owner or admin of its organization. Nothing was removed.`,
31640
+ label
31641
+ );
31642
+ if (json) {
31643
+ console.log(JSON.stringify(entry, null, 2));
31644
+ return;
31645
+ }
31646
+ console.log(`Removed ${email} from the access list of ${label}, and from the community anyone it let in.`);
31647
+ }
31648
+ var USAGE2, SUBCOMMANDS, JOIN_LINK_ACTIONS, ACCESS_ACTIONS;
31490
31649
  var init_communities = __esm({
31491
31650
  "src/commands/communities.ts"() {
31492
31651
  "use strict";
31493
31652
  init_contracts();
31653
+ init_api_client();
31654
+ init_errors2();
31494
31655
  init_expected();
31495
31656
  init_repo_config();
31496
31657
  init_terminal_output();
@@ -31507,6 +31668,9 @@ Usage:
31507
31668
  wayai communities join-link rotate <community> [--org <org_id>] [-y] [--json]
31508
31669
  wayai communities join-link off <community> [--org <org_id>] [-y] [--json]
31509
31670
  wayai communities stats <community> [--org <org_id>] [--json]
31671
+ wayai communities access list <community> [--org <org_id>] [--json]
31672
+ wayai communities access add <community> <email>... [--org <org_id>] [--json]
31673
+ wayai communities access remove <community> <email> [--org <org_id>] [-y] [--json]
31510
31674
 
31511
31675
  <community> is a community id, or its exact name within the organization.
31512
31676
  The organization is --org, else this repo's (wayai-ws/wayai.yaml).
@@ -31515,15 +31679,24 @@ join-link get Print the join link, or that it is off
31515
31679
  join-link rotate Replace the link with a new one and turn it on
31516
31680
  join-link off Turn the link off
31517
31681
  stats Members, joins by source, messages and course completions
31682
+ access list Print the emails on the access list, oldest first
31683
+ access add Add emails to it, at most ${COMMUNITY_ACCESS_ADD_MAX} at a time
31684
+ access remove Take an email off it, and remove from the community anyone it let in
31685
+
31686
+ The access list is who the join link admits once the community is invite-only
31687
+ (settings.admission: invite in community.yaml, or the web console). Emails
31688
+ match exactly, once trimmed and lowercased.
31518
31689
 
31519
- rotate and off make every link shared before stop working. Both ask first;
31520
- -y skips the question, and is required when not run in a terminal.
31690
+ rotate and off make every link shared before stop working, and access remove
31691
+ removes members. All three ask first; -y skips the question, and is required
31692
+ when not run in a terminal.
31521
31693
 
31522
31694
  These commands need a browser sign-in (\`wayai login\`). An API token
31523
31695
  (\`wayai login --token\`, or WAYAI_TOKEN) is refused.
31524
31696
  `.trim();
31525
- SUBCOMMANDS = ["list", "join-link", "stats"];
31697
+ SUBCOMMANDS = ["list", "join-link", "stats", "access"];
31526
31698
  JOIN_LINK_ACTIONS = ["get", "rotate", "off"];
31699
+ ACCESS_ACTIONS = ["list", "add", "remove"];
31527
31700
  }
31528
31701
  });
31529
31702
 
@@ -37348,7 +37521,7 @@ Commands:
37348
37521
  sync-skills Sync skills to Anthropic/OpenAI provider connections
37349
37522
  sync-mcp Re-discover an MCP connection's tools (refresh stale schemas)
37350
37523
  list List organizations and hubs
37351
- communities An organization's communities: list, join link (get/rotate/off), stats \u2014 \`wayai communities --help\`
37524
+ communities An organization's communities: list, join link (get/rotate/off), stats, access list (list/add/remove) \u2014 \`wayai communities --help\`
37352
37525
  report create Report a platform bug (submits to the triage queue)
37353
37526
  report edit Amend your own pending report (title/description/error/steps/context)
37354
37527
  update Update CLI to the latest version