@wayai/cli 0.3.204 → 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 +218 -38
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -9723,7 +9723,7 @@ var init_chunk_46WU2TD4 = __esm({
|
|
|
9723
9723
|
}
|
|
9724
9724
|
});
|
|
9725
9725
|
|
|
9726
|
-
// ../../packages/core/dist/chunk-
|
|
9726
|
+
// ../../packages/core/dist/chunk-T3VB6VFG.js
|
|
9727
9727
|
function cacheReconcileIdCount(body) {
|
|
9728
9728
|
return body.conversations.length + body.histories.reduce((n, history) => n + history.conversation_ids.length, 0) + body.threads.length;
|
|
9729
9729
|
}
|
|
@@ -9789,9 +9789,9 @@ 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;
|
|
9793
|
-
var
|
|
9794
|
-
"../../packages/core/dist/chunk-
|
|
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
|
+
var init_chunk_T3VB6VFG = __esm({
|
|
9794
|
+
"../../packages/core/dist/chunk-T3VB6VFG.js"() {
|
|
9795
9795
|
"use strict";
|
|
9796
9796
|
init_chunk_VORPHGDT();
|
|
9797
9797
|
init_chunk_POL7B3EM();
|
|
@@ -12803,6 +12803,7 @@ var init_chunk_5RGL5RXH = __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_5RGL5RXH = __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;
|
|
@@ -13287,7 +13291,7 @@ var init_chunk_BPDC67ML = __esm({
|
|
|
13287
13291
|
var init_contracts = __esm({
|
|
13288
13292
|
"../../packages/core/dist/contracts/index.js"() {
|
|
13289
13293
|
"use strict";
|
|
13290
|
-
|
|
13294
|
+
init_chunk_T3VB6VFG();
|
|
13291
13295
|
init_chunk_VORPHGDT();
|
|
13292
13296
|
init_chunk_POL7B3EM();
|
|
13293
13297
|
init_chunk_46WU2TD4();
|
|
@@ -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
|
}
|
|
@@ -14494,7 +14513,7 @@ var init_dist = __esm({
|
|
|
14494
14513
|
"../../packages/core/dist/index.js"() {
|
|
14495
14514
|
"use strict";
|
|
14496
14515
|
init_chunk_WSROLRJN();
|
|
14497
|
-
|
|
14516
|
+
init_chunk_T3VB6VFG();
|
|
14498
14517
|
init_chunk_VORPHGDT();
|
|
14499
14518
|
init_chunk_POL7B3EM();
|
|
14500
14519
|
init_chunk_46WU2TD4();
|
|
@@ -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
|
-
|
|
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 } : {},
|
|
@@ -21697,15 +21728,24 @@ function renderRules(rules) {
|
|
|
21697
21728
|
return text === "" ? "" : `${text}
|
|
21698
21729
|
`;
|
|
21699
21730
|
}
|
|
21700
|
-
function
|
|
21701
|
-
|
|
21702
|
-
for (const [name, content] of [
|
|
21731
|
+
function renderCommunityFiles(files) {
|
|
21732
|
+
return [
|
|
21703
21733
|
[COMMUNITY_FILE, renderCommunityYaml(files)],
|
|
21704
21734
|
[RULES_FILE, renderRules(files.rules)]
|
|
21705
|
-
]
|
|
21706
|
-
|
|
21707
|
-
|
|
21708
|
-
return
|
|
21735
|
+
];
|
|
21736
|
+
}
|
|
21737
|
+
function writeCommunityFiles(root, folder, files) {
|
|
21738
|
+
return renderCommunityFiles(files).flatMap(([name, content]) => writeFileIfChangedNoFollow(root, path25.join(folder, name), content) ? [name] : []);
|
|
21739
|
+
}
|
|
21740
|
+
function communityFilesSaver(root, folder, files) {
|
|
21741
|
+
const saved = new Map(renderCommunityFiles(files));
|
|
21742
|
+
return () => {
|
|
21743
|
+
for (const [name, content] of renderCommunityFiles(files)) {
|
|
21744
|
+
if (saved.get(name) === content) continue;
|
|
21745
|
+
writeFileIfChangedNoFollow(root, path25.join(folder, name), content);
|
|
21746
|
+
saved.set(name, content);
|
|
21747
|
+
}
|
|
21748
|
+
};
|
|
21709
21749
|
}
|
|
21710
21750
|
function writeCommunityFolder(root, folder, files) {
|
|
21711
21751
|
return [...writeCommunityFiles(root, folder, files), ...files.courses.flatMap((course) => writeCourseFolder(root, folder, course))];
|
|
@@ -21724,7 +21764,7 @@ var init_files = __esm({
|
|
|
21724
21764
|
init_model();
|
|
21725
21765
|
init_course_files();
|
|
21726
21766
|
TOP_KEYS = ["community_id", "name", "settings", "join_link_enabled", "join_link_rev", "rooms", "courses", "synced"];
|
|
21727
|
-
SETTINGS_KEYS = ["rev", "slow_mode_seconds", "courses_label"];
|
|
21767
|
+
SETTINGS_KEYS = ["rev", "slow_mode_seconds", "courses_label", "admission"];
|
|
21728
21768
|
ROOM_KEYS = ["key", "id", "rev", "name", "kind", "archived"];
|
|
21729
21769
|
}
|
|
21730
21770
|
});
|
|
@@ -23162,9 +23202,13 @@ function settingsChanges(from, to) {
|
|
|
23162
23202
|
const out = [];
|
|
23163
23203
|
if (from.slow_mode_seconds !== to.slow_mode_seconds) out.push(`slow_mode_seconds ${from.slow_mode_seconds} \u2192 ${to.slow_mode_seconds}`);
|
|
23164
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}`);
|
|
23165
23206
|
if (from.rules !== to.rules) out.push("rules (rules.md)");
|
|
23166
23207
|
return out;
|
|
23167
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
|
+
}
|
|
23168
23212
|
function roomChanges(from, to) {
|
|
23169
23213
|
const out = [];
|
|
23170
23214
|
if (from.name !== to.name) out.push(`name ${show(from.name)} \u2192 ${show(to.name)}`);
|
|
@@ -23200,7 +23244,8 @@ function settingsPatch(files, server) {
|
|
|
23200
23244
|
// Raw: the text as the file holds it; the server trims it and reads '' as none.
|
|
23201
23245
|
...file.rules !== server.rules ? { rules: files.rules } : {},
|
|
23202
23246
|
...file.slow_mode_seconds !== server.slow_mode_seconds ? { slow_mode_seconds: files.settings.slow_mode_seconds } : {},
|
|
23203
|
-
...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 } : {}
|
|
23204
23249
|
};
|
|
23205
23250
|
}
|
|
23206
23251
|
function roomPatch(entry, room) {
|
|
@@ -23220,10 +23265,12 @@ function takeRoom(entry, room) {
|
|
|
23220
23265
|
entry.kind = room.kind;
|
|
23221
23266
|
}
|
|
23222
23267
|
function takeSettings(files, settings) {
|
|
23268
|
+
const { content, rev: rev2 } = serverSettings(files.community_id, settings);
|
|
23223
23269
|
files.settings = {
|
|
23224
|
-
rev:
|
|
23270
|
+
rev: rev2,
|
|
23225
23271
|
slow_mode_seconds: settings.slow_mode_seconds,
|
|
23226
|
-
courses_label: settings.courses_label ?? ""
|
|
23272
|
+
courses_label: settings.courses_label ?? "",
|
|
23273
|
+
admission: content.admission
|
|
23227
23274
|
};
|
|
23228
23275
|
files.rules = settings.rules ?? "";
|
|
23229
23276
|
}
|
|
@@ -23337,6 +23384,7 @@ function pushListing(plan, courses) {
|
|
|
23337
23384
|
const { settings, joinLink } = plan;
|
|
23338
23385
|
if (settings.state === "local") {
|
|
23339
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)}`);
|
|
23340
23388
|
if (settings.server.rules !== settings.file.rules) {
|
|
23341
23389
|
listing.changes.push(...lineDiff(settings.server.rules, settings.file.rules).map((line) => ` ${line}`));
|
|
23342
23390
|
}
|
|
@@ -23390,9 +23438,7 @@ async function pushCommunity(gitRootOrNull, selector, args2) {
|
|
|
23390
23438
|
${problems2.map((p) => ` - ${p}`).join("\n")}`);
|
|
23391
23439
|
}
|
|
23392
23440
|
const { communitiesDir } = resolveLayout(gitRoot);
|
|
23393
|
-
const save = (
|
|
23394
|
-
writeCommunityFiles(communitiesDir, folder, files);
|
|
23395
|
-
};
|
|
23441
|
+
const save = communityFilesSaver(communitiesDir, folder, files);
|
|
23396
23442
|
const courses = new CoursePush(files, plan.courses, remote, courseSaver(communitiesDir, folder, save));
|
|
23397
23443
|
const listing = pushListing(plan, courses);
|
|
23398
23444
|
printListing(listing);
|
|
@@ -23524,7 +23570,7 @@ function filesFromServer(server) {
|
|
|
23524
23570
|
const files = {
|
|
23525
23571
|
community_id: server.community.community_id,
|
|
23526
23572
|
name: server.community.name,
|
|
23527
|
-
settings: { slow_mode_seconds: 0, courses_label: "" },
|
|
23573
|
+
settings: { slow_mode_seconds: 0, courses_label: "", admission: DEFAULT_ADMISSION },
|
|
23528
23574
|
rules: "",
|
|
23529
23575
|
join_link_enabled: false,
|
|
23530
23576
|
rooms: [],
|
|
@@ -23597,7 +23643,7 @@ async function pullCommunity(gitRootOrNull, selector, args2) {
|
|
|
23597
23643
|
const remote = await openRemote(communityId);
|
|
23598
23644
|
const server = await remote.read(orgId);
|
|
23599
23645
|
if (!existing) {
|
|
23600
|
-
const taken = new Set(safeReaddir2(communitiesDir));
|
|
23646
|
+
const taken = new Set(safeReaddir2(communitiesDir).map((name) => name.toLowerCase()));
|
|
23601
23647
|
const folder2 = path27.join(communitiesDir, localName(server.community.name, communityId, taken, "community"));
|
|
23602
23648
|
const files = filesFromServer(server);
|
|
23603
23649
|
const where = `${path27.relative(gitRoot, folder2)}/`;
|
|
@@ -31367,8 +31413,12 @@ async function communitiesCommand(args2) {
|
|
|
31367
31413
|
if (sub === "join-link" && !JOIN_LINK_ACTIONS.includes(action)) {
|
|
31368
31414
|
throw usageError("join-link takes get, rotate or off.");
|
|
31369
31415
|
}
|
|
31416
|
+
if (sub === "access" && !ACCESS_ACTIONS.includes(action)) {
|
|
31417
|
+
throw usageError("access takes list, add or remove.");
|
|
31418
|
+
}
|
|
31370
31419
|
const changesLink = sub === "join-link" && action !== "get";
|
|
31371
|
-
|
|
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`.");
|
|
31372
31422
|
switch (sub) {
|
|
31373
31423
|
case "list":
|
|
31374
31424
|
if (rest.length > 0) throw usageError(`Unexpected argument ${JSON.stringify(rest[0])}.`);
|
|
@@ -31386,6 +31436,21 @@ async function communitiesCommand(args2) {
|
|
|
31386
31436
|
if (selector === void 0 || extra.length > 0) throw usageError("stats takes one <community>.");
|
|
31387
31437
|
return runStats(targetOf(selector, org), json);
|
|
31388
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
|
+
}
|
|
31389
31454
|
}
|
|
31390
31455
|
}
|
|
31391
31456
|
async function runList(orgId, json) {
|
|
@@ -31412,17 +31477,24 @@ async function runJoinLink(action, target, { json, yes }) {
|
|
|
31412
31477
|
printLink(data2, label, json);
|
|
31413
31478
|
return;
|
|
31414
31479
|
}
|
|
31415
|
-
|
|
31416
|
-
|
|
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."
|
|
31417
31487
|
);
|
|
31418
|
-
console.error("Every link shared before stops working.");
|
|
31419
|
-
if (!yes && !await confirm("Proceed?")) throw expected("Aborted: the join link is unchanged.");
|
|
31420
31488
|
const { data } = await callCommunities(
|
|
31421
31489
|
action === "rotate" ? api.replaceCommunityJoinLink(id) : api.disableCommunityJoinLink(id),
|
|
31422
31490
|
notFound
|
|
31423
31491
|
);
|
|
31424
31492
|
printLink(data, label, json);
|
|
31425
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
|
+
}
|
|
31426
31498
|
function printLink(link, label, json) {
|
|
31427
31499
|
if (json) {
|
|
31428
31500
|
console.log(JSON.stringify(link, null, 2));
|
|
@@ -31479,11 +31551,107 @@ function printStats(stats, label) {
|
|
|
31479
31551
|
}
|
|
31480
31552
|
}
|
|
31481
31553
|
}
|
|
31482
|
-
|
|
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;
|
|
31483
31649
|
var init_communities = __esm({
|
|
31484
31650
|
"src/commands/communities.ts"() {
|
|
31485
31651
|
"use strict";
|
|
31486
31652
|
init_contracts();
|
|
31653
|
+
init_api_client();
|
|
31654
|
+
init_errors2();
|
|
31487
31655
|
init_expected();
|
|
31488
31656
|
init_repo_config();
|
|
31489
31657
|
init_terminal_output();
|
|
@@ -31500,6 +31668,9 @@ Usage:
|
|
|
31500
31668
|
wayai communities join-link rotate <community> [--org <org_id>] [-y] [--json]
|
|
31501
31669
|
wayai communities join-link off <community> [--org <org_id>] [-y] [--json]
|
|
31502
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]
|
|
31503
31674
|
|
|
31504
31675
|
<community> is a community id, or its exact name within the organization.
|
|
31505
31676
|
The organization is --org, else this repo's (wayai-ws/wayai.yaml).
|
|
@@ -31508,15 +31679,24 @@ join-link get Print the join link, or that it is off
|
|
|
31508
31679
|
join-link rotate Replace the link with a new one and turn it on
|
|
31509
31680
|
join-link off Turn the link off
|
|
31510
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.
|
|
31511
31689
|
|
|
31512
|
-
rotate and off make every link shared before stop working
|
|
31513
|
-
-y skips the question, and is required
|
|
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.
|
|
31514
31693
|
|
|
31515
31694
|
These commands need a browser sign-in (\`wayai login\`). An API token
|
|
31516
31695
|
(\`wayai login --token\`, or WAYAI_TOKEN) is refused.
|
|
31517
31696
|
`.trim();
|
|
31518
|
-
SUBCOMMANDS = ["list", "join-link", "stats"];
|
|
31697
|
+
SUBCOMMANDS = ["list", "join-link", "stats", "access"];
|
|
31519
31698
|
JOIN_LINK_ACTIONS = ["get", "rotate", "off"];
|
|
31699
|
+
ACCESS_ACTIONS = ["list", "add", "remove"];
|
|
31520
31700
|
}
|
|
31521
31701
|
});
|
|
31522
31702
|
|
|
@@ -37341,7 +37521,7 @@ Commands:
|
|
|
37341
37521
|
sync-skills Sync skills to Anthropic/OpenAI provider connections
|
|
37342
37522
|
sync-mcp Re-discover an MCP connection's tools (refresh stale schemas)
|
|
37343
37523
|
list List organizations and hubs
|
|
37344
|
-
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\`
|
|
37345
37525
|
report create Report a platform bug (submits to the triage queue)
|
|
37346
37526
|
report edit Amend your own pending report (title/description/error/steps/context)
|
|
37347
37527
|
update Update CLI to the latest version
|