@wayai/cli 0.3.179 → 0.3.181

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
@@ -6046,7 +6046,7 @@ function refineScopedTarget(data, ctx) {
6046
6046
  }
6047
6047
  }
6048
6048
  }
6049
- var uuidSchema, paginationSchema, timestampSchema, idParamSchema, clientOptionalString, clientOptionalBoolean, clientOptionalNumber, messageAttachment, MAX_MESSAGE_BODY_BYTES, MAX_ATTACHMENTS_PER_MESSAGE, MESSAGE_ENVELOPE_HEADROOM_BYTES, MAX_AUDIO_FILE_BASE64_BYTES, primaryRegionSchema, placementSourceSchema, orgIdParam, orgAdminIdParam, createOrganizationBody, updateOrganizationBody, addOrgAdminBody, AUTH_TYPE, ORG_CREDENTIAL_AUTH_TYPES, AUTH_TYPE_DISPLAY, LEGACY_AUTH_TYPE_MAP, VALID_AUTH_TYPES, AGENT_ROLES, SAFE_USER_ID_REGEX, SUPPORTED_LOCALES, SUMMARIZATION_THRESHOLD_MIN, SUMMARIZATION_THRESHOLD_MAX, PREVIOUS_CONVERSATIONS_MAX, FLAG_CONDITION_OPERATORS, CONFIDENCE_VARIABLE_SUFFIX, DECISION_SCORE_MIN_LEVELS, DECISION_SCORE_MAX_LEVELS, DECISIONS_MODEL_PREFIXES, DECISION_CAPABLE_AGENT_ROLES, NATIVE_TOOL_SCHEMAS, WAYAI_CONNECTOR, BASE_NATIVE_TOOLS, NATIVE_TOOLS, CATALOG_SIDE_EFFECTS, NATIVE_TOOL_NAMES, previousConversationsCountField, summarizationThresholdField, flagConditionSchema, MONITOR_TRIGGERS, monitorTriggerSchema, MONITOR_FIRING_TRIGGERS, MONITOR_DELAY_SECONDS_MIN, MONITOR_IDLE_DELAY_REQUIRED_MESSAGE, MONITOR_HISTORY_MESSAGES_MAX, monitorHistoryMessagesSchema, monitorIncludeToolResultsSchema, MONITOR_INPUT_SHAPING_KEYS, MONITOR_INPUT_SHAPING_SCHEMAS, MONITOR_INPUT_SHAPING_IDLE_MESSAGE, monitorArgumentSourceSchema, MONITOR_NOTE_TEMPLATE_MAX, MONITOR_STEER_NOTE_MAX, monitorActionSchema, monitorRuleSchema, MONITOR_RULE_KEYS, MONITOR_RULE_SCHEMAS, MONITOR_RULE_TRIGGERS, MONITOR_RULE_TRIGGER_MESSAGE, CALL_UTTERANCE_SPEAKERS, callUtteranceSpeakerSchema, MONITOR_CALL_KEYS, MONITOR_CALL_SCHEMAS, MONITOR_CALL_KEY_MESSAGE, CALL_STEERING_MIN_CONFIDENCE, CALL_UTTERANCE_RULE_NOT_CONFIDENT_MESSAGE, CALL_UTTERANCE_FALLBACK_MESSAGE, CALL_UTTERANCE_FLAG_CONDITIONS_MESSAGE, CALL_STEER_NOTE_BLANK_MESSAGE, MONITOR_USER_MESSAGE_ACTION_KINDS, MONITOR_ASSISTANT_REPLY_ACTION_KINDS, MONITOR_CALL_UTTERANCE_ACTION_KINDS, INSERT_NOTE_TOOL_NAME, RUN_MONITOR_TOOL_NAME, MONITOR_RULE_ALLOWED_NATIVE_TOOLS, MONITOR_RULE_REENTRY_TOOLS, MONITOR_RULE_REENTRY_TRACKS, monitorConfigField, flagConditionsField, agentIdParam, listAgentsQuery, agentConnectionsQuery, createAgentBody, updateAgentBody, AGENT_PARAMETER_TYPES, AGENT_PARAMETER_NAME_REGEX, agentParameterCreateSchema, MAX_AGENT_PARAMETERS_PER_REQUEST, createAgentParametersBody, SLUG_REGEX, slugSchema, INVISIBLE_NAME_CHARS, MAX_KANBAN_STATUSES, MAX_FOLLOWUPS_PER_STATUS, MAX_LANES, MAX_ADDITIONAL_CONTEXT_SCHEMA_BYTES, RESERVED_TEMPLATE_DUMP_NAME, kanbanStatusSlugSchema, followupTypeSchema, EVENT_RELATIVE_FOLLOWUP_TYPES, followupTimeUnitSchema, followupIdSchema, SELECTABLE_FOLLOWUP_TYPES, MAX_LINKED_FOLLOWUP_TARGETS_PER_STATUS, followupSchema, MAX_OUTCOMES_PER_STATUS, kanbanOutcomeSchema, EXCLUSIVE_FLAG_PAIRS, kanbanStatusSchema, kanbanStatusesArraySchema, laneSchema, lanesArraySchema, hubIdParam, hubAdminIdParam, hubUserIdParam, hubIdentityIdParam, hubTeamIdParam, hubTeamUserDeleteParam, hubSchemaQuery, PREVIEW_LABEL_MAX_LENGTH, MAX_ENDED_INDEX_RETENTION_DAYS, MAX_EVAL_RETENTION_DAYS, previewLabelField, createHubBody, updateHubBody, addHubAdminBody, addHubIdentityAuthorizationBody, contactDecisionBody, approveContactBody, listContactAccessQuery, createHubTeamBody, updateHubTeamBody, addHubTeamUserBody, reassignHubUserBody, replicatePreviewBody, updateChannelTestIdentitiesBody, claimCodeChannelParam, claimCodeDeleteParam, connectionIdParam, connectorIdParam, listConnectionsQuery, deleteConnectionQuery, addConnectionBody, editConnectionBody, PRODUCTION_DIRECT_FIELDS, setProductionCredentialBody, registerWhatsappQuery, registerWhatsappBody, retryProvisioningQuery, resendDomainStatusQuery, PLACEHOLDER_TOKENS, ALLOWED_TYPES, SUBSCHEMA_OBJECT_KEYWORDS, SUBSCHEMA_LIST_KEYWORDS, SUBSCHEMA_MAP_KEYWORDS, MAX_SCHEMA_DEPTH, toolIdParam, listToolsQuery, toolAgentQuery, deleteToolQuery, toolConnectionsQuery, nativeToolIdSchema, CONTEXT_BOUNDARIES, contextBoundarySchema, addNativeToolBody, addMcpToolBody, createCustomToolBody, updateCustomToolBody, updateToolExecutionConfigBody, 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, EVAL_PACING_PRESET_NAMES, PACING_INTERVAL_MIN_MS, PACING_INTERVAL_MAX_MS, EVAL_MAX_RUNS_PER_SCENARIO, EVAL_RUN_DEADLINE_MIN_MS, EVAL_RUN_DEADLINE_MAX_MS, ISO_UTC_RE, paginationSchema2, evalIdParam, sessionIdParam, scenarioSetIdParam, hubIdQuery, evalDateContextSchema, EVAL_FIXTURE_NAME_MAX_LENGTH, evalFixtureOverrideSchema, runSessionQuery, runJourneyQuery, EVAL_INPUT_ROLES, EVAL_INPUT_ROLE_LIST, ROLE_ECHO_MAX, EVAL_INITIAL_STATE_SCOPES, MAX_INITIAL_STATE_ENTRIES, evalInitialStateEntry, evalBody, EVAL_LIST_MAX_LIMIT, evalListLimit, getEvalsQuery, toggleEvalBody, bulkToggleEvalsBody, pacingConfigSchema, EVAL_MAX_SELECTED_SCENARIOS, evalScenarioSelectionEntrySchema, evalScenarioSelectionSchema, sessionConfigSchema, createSessionBody, getSessionsQuery, getSessionResultsQuery, getSessionRunsQuery, evalAnalyticsQuery, getSessionCostQuery, compareSessionsQuery, evalsSqlBody, evalsSqlSchemaQuery, exportResultsQuery, validateEvalBody, hubAgentsQuery, createScenarioSetBody, updateScenarioSetBody, scenarioSetsHubQuery, createScenarioFromConversationBody, createJourneyFromConversationBody, EVAL_ATTACHMENT_HASH_REGEX, evalAttachmentRef, turnMayCarryAttachments, ATTACHMENTS_USER_ONLY_MESSAGE, journeyIdParam, journeyToolCallSchema, journeyTurnSchema, journeyStepOverrideSchema, fixtureField, createJourneyBody, updateJourneyBody, evalSessionConfigResponseSchema, evalSessionResponseSchema, evalSessionListConfigSchema, evalSessionListItemSchema, seedReleaseStatusSchema, EVAL_SESSION_NOT_QUIESCENT, 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, CALL_OPENING_LANGUAGES, callOpeningLanguage, CALL_OPENING_MAX_DURATION_MS, CALL_OPENING_MAX_BYTES, CALL_OPENING_CAPTION_MAX_CHARS, CALL_OPENING_CONTENT_TYPES, callOpeningContentType, CALL_OPENING_HASH_REGEX, callOpeningHash, callOpeningCaption, storedCallOpening, MAX_CALL_OPENING_ENCODED_BYTES, MAX_CALL_OPENING_BODY_BYTES, agentCallOpeningParams, putAgentCallOpeningBody, deleteAgentCallOpeningQuery, callOpeningParam, callOpeningQuery, TTS_VOICE_REPLY_ENABLED_FIELD, COPILOT_TRIGGER_FIELD, AUDIO_LANGUAGE_OPTIONS, whatsapp, instagram, resend, telegram, API_CHANNEL_DELIVERY_EVENTS, apiChannel, OPENAI_REASONING_MODELS, openai, anthropic, googleAiStudio, openRouter, xai, groqStt, openaiStt, elevenLabsStt, openaiTts, groqTts, elevenLabsTts, GEMINI_TTS_VOICES, googleTts, wayai, externalResources, restApiTool, mcpServer, e2b, CLAUDE_HARNESS_MODELS, CLAUDE_HARNESS_MODEL_OPTIONS, HARNESS_MCP_SERVERS_FIELD, HARNESS_EGRESS_FIELDS, claudeAgentSdk, claudeManagedAgents, rekorMemory, SPOKEN_LINE_MAX_CHARS, gptLive, CONNECTORS, 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, activityQuery, deletionModeSchema, deletionRequestBody, archiveHubIdParam, archiveConversationParams, archiveListQuery, archiveMessageObservabilityParams, conversationIdParam, 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, signUrlBody, outboundSchemaQuery, templateIdParam, listTemplatesQuery, deleteTemplateQuery, templateStatusQuery, createTemplateBody, updateTemplateBody, submitTemplateBody, testTemplateBody, contactIdParam, listContactsQuery, createContactBody, updateContactBody, listIdParam, listListsQuery, listListContactsQuery, createListBody, updateListBody, addListContactsBody, removeListContactsBody, scheduleIdParam, listSchedulesQuery, listExecutionsQuery, createScheduleBody, updateScheduleBody, MAX_RESOURCE_FILE_SIZE, MAX_10MB_BASE64_ENCODED_BYTES, MAX_EVAL_ATTACHMENT_ENCODED_BYTES, MAX_EVAL_ATTACHMENT_CARRIERS, MAX_EVAL_ATTACHMENT_AGGREGATE_ENCODED_BYTES, MAX_RESOURCE_ENCODED_BYTES, MAX_HUB_AS_CODE_RESOURCES, MAX_HUB_AS_CODE_RESOURCE_FILES, MAX_RESOURCE_AGGREGATE_ENCODED_BYTES, MAX_CI_CONFIG_BODY_BYTES, MAX_CALL_OPENING_CARRIERS, MAX_CALL_OPENING_AGGREGATE_ENCODED_BYTES, hubAsCodeStateSchema, hubAsCodeResourceFileSchema, hubAsCodeResourceSchema, uuidPattern, ciUuidSchema, boundedHubAsCodeResourcesSchema, hubAsCodeConfigSchema, ciPullHubIdParam, ciBranchParam, ciPullQuery, ciHubsQuery, ciLookupQuery, ciBranchesQuery, ciSyncBody, ciPushBody, ciDiffBody, ciPublishBody, ciPublishPreviewBody, ciSyncMcpBody, ciOrgResourcesParam, orgResourcesConfigSchema, ciOrgResourcesPushBody, ciOrgResourcesDiffBody, CI_APPLY_ENTITY_KINDS, CI_APPLY_OPERATIONS, ciApplyErrorBaseSchema, ciApplyErrorSchema, ciSyncCountSchema, ciSyncChangesSchema, ciSyncWarningSchema, ciSyncResponseSchema, VERSION_PART, MOBILE_APP_VERSION_RE, mobileAppVersionSchema, MOBILE_PLATFORMS, mobilePlatformSchema, mobileVersionPolicyQuery, mobileVersionPolicySchema, mobileVersionPolicyResponse, adminOrgIdParam, adminOrgAdminIdParam, adminUserIdParam, PRICING_PLAN_ID_RE, adminPlanIdParam, adminOrganizationsQuery, adminUserSearchQuery, kanbanSlugMigrationQuery, adjustQuotaBody, updatePlanBody, addAdminUserBody, MAX_VOICE_CALL_MINUTE_OPS, voiceCallMinuteOps, updatePlatformConfigBody, updateFreeOrgLimitBody, adminScopedTargetShape, adminScopedTargetBody, BRANCHING_ORPHAN_ENTITY_TYPES, BRANCHING_ORPHAN_MAX_TARGETS, adminRepairBranchingOrphansBody, adminRepairLegacyOrgGrantsBody, adminRepairCompedPlansBody, updatePricingPlanBody, dataExplorerSearchQuery, dataExplorerOrgIdParam, dataExplorerHubIdParam, dataExplorerConvIdParam, dataExplorerDoInstancesQuery, dataExplorerNsIdParam, dataExplorerKvKeysBody, dataExplorerKvKeyBody, uuidOrHexId, dataExplorerDeleteOrgParam, dataExplorerDeleteHubParam, dataExplorerDeleteConvParam, dataExplorerDeleteUserParam, dataExplorerDeleteQuery, dataExplorerKvDeleteBody, pitrDoNamespace, pitrBookmarkParam, pitrRestoreBody, healthSamplingTriggerBody, dataExplorerDebugDoType, DEBUG_READ_MAX_LIMIT, DEBUG_READ_DEFAULT_LIMIT, DEBUG_DO_HEX_PREFIX, debugDoEntityId, debugTableName, dataExplorerDebugTablesParam, dataExplorerDebugRowsParam, dataExplorerDebugRowsQuery, dataExplorerDebugAnalyticsTable, debugUuid, dataExplorerDebugAnalyticsRowsParam, dataExplorerDebugAnalyticsRowsQuery, debugHubConvParam, debugMessageIdQuery, sandboxEgressPolicy, SANDBOX_EXEC_MAX_CMD_LENGTH, SANDBOX_EXEC_MAX_ALLOWLIST, SANDBOX_EXEC_MAX_TIMEOUT_MS, adminSandboxExecBody, META_ENTITY_ID_PATTERN, metaEntityId, whatsappCallbackBody, authMeResponse, wsTicketResponse, sessionCheckResponse, logoutResponse, magicCodeSendBody, magicCodeSendResponse, magicCodeVerifyBody, magicCodeVerifyResponse, passwordLoginBody, browserParams, browserFoldersQuery, browserFilesQuery, 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, requestSnapshotChunkMessage, MAX_NAME_LENGTH, MAX_VALUE_LENGTH, MAX_TAGS, MAX_TAG_LENGTH, MAX_SCOPE_HUBS, MAX_SCOPE_TAGS, vaultSecretScopeSchema, vaultCreateBody, vaultUpdateBody, PERMISSIONS, MAX_NAME_LENGTH2, MAX_HUBS_PER_GRANT, MAX_HUB_TAGS_PER_GRANT, MAX_GRANTS, permissionEnum, grantScopeSchema, grantSchema, createTokenBody, tokenOrgIdParam, tokenGrantScopeSchema, tokenGrantSchema, tokenMetadataSchema, listTokensResponse, createTokenResponse, orgTokenSummarySchema, listOrgTokensResponse, invitePreviewQuery, invitePreviewResponse, 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;
6049
+ var uuidSchema, USER_ID_REGEX, paginationSchema, timestampSchema, idParamSchema, clientOptionalString, clientOptionalBoolean, clientOptionalNumber, messageAttachment, MAX_MESSAGE_BODY_BYTES, MAX_ATTACHMENTS_PER_MESSAGE, MESSAGE_ENVELOPE_HEADROOM_BYTES, MAX_AUDIO_FILE_BASE64_BYTES, primaryRegionSchema, placementSourceSchema, orgIdParam, orgAdminIdParam, createOrganizationBody, updateOrganizationBody, addOrgAdminBody, AUTH_TYPE, ORG_CREDENTIAL_AUTH_TYPES, AUTH_TYPE_DISPLAY, LEGACY_AUTH_TYPE_MAP, VALID_AUTH_TYPES, AGENT_ROLES, SAFE_USER_ID_REGEX, SUPPORTED_LOCALES, SUMMARIZATION_THRESHOLD_MIN, SUMMARIZATION_THRESHOLD_MAX, PREVIOUS_CONVERSATIONS_MAX, FLAG_CONDITION_OPERATORS, CONFIDENCE_VARIABLE_SUFFIX, DECISION_SCORE_MIN_LEVELS, DECISION_SCORE_MAX_LEVELS, DECISIONS_MODEL_PREFIXES, DECISION_CAPABLE_AGENT_ROLES, NATIVE_TOOL_SCHEMAS, WAYAI_CONNECTOR, BASE_NATIVE_TOOLS, NATIVE_TOOLS, CATALOG_SIDE_EFFECTS, NATIVE_TOOL_NAMES, previousConversationsCountField, summarizationThresholdField, flagConditionSchema, MONITOR_TRIGGERS, monitorTriggerSchema, MONITOR_FIRING_TRIGGERS, MONITOR_DELAY_SECONDS_MIN, MONITOR_IDLE_DELAY_REQUIRED_MESSAGE, MONITOR_HISTORY_MESSAGES_MAX, monitorHistoryMessagesSchema, monitorIncludeToolResultsSchema, MONITOR_INPUT_SHAPING_KEYS, MONITOR_INPUT_SHAPING_SCHEMAS, MONITOR_INPUT_SHAPING_IDLE_MESSAGE, monitorArgumentSourceSchema, MONITOR_NOTE_TEMPLATE_MAX, MONITOR_STEER_NOTE_MAX, monitorActionSchema, monitorRuleSchema, MONITOR_RULE_KEYS, MONITOR_RULE_SCHEMAS, MONITOR_RULE_TRIGGERS, MONITOR_RULE_TRIGGER_MESSAGE, CALL_UTTERANCE_SPEAKERS, callUtteranceSpeakerSchema, MONITOR_CALL_KEYS, MONITOR_CALL_SCHEMAS, MONITOR_CALL_KEY_MESSAGE, CALL_STEERING_MIN_CONFIDENCE, CALL_UTTERANCE_RULE_NOT_CONFIDENT_MESSAGE, CALL_UTTERANCE_FALLBACK_MESSAGE, CALL_UTTERANCE_FLAG_CONDITIONS_MESSAGE, CALL_STEER_NOTE_BLANK_MESSAGE, MONITOR_USER_MESSAGE_ACTION_KINDS, MONITOR_ASSISTANT_REPLY_ACTION_KINDS, MONITOR_CALL_UTTERANCE_ACTION_KINDS, INSERT_NOTE_TOOL_NAME, RUN_MONITOR_TOOL_NAME, MONITOR_RULE_ALLOWED_NATIVE_TOOLS, MONITOR_RULE_REENTRY_TOOLS, MONITOR_RULE_REENTRY_TRACKS, monitorConfigField, flagConditionsField, agentIdParam, listAgentsQuery, agentConnectionsQuery, createAgentBody, updateAgentBody, AGENT_PARAMETER_TYPES, AGENT_PARAMETER_NAME_REGEX, agentParameterCreateSchema, MAX_AGENT_PARAMETERS_PER_REQUEST, createAgentParametersBody, SLUG_REGEX, slugSchema, INVISIBLE_NAME_CHARS, MAX_KANBAN_STATUSES, MAX_FOLLOWUPS_PER_STATUS, MAX_LANES, MAX_ADDITIONAL_CONTEXT_SCHEMA_BYTES, RESERVED_TEMPLATE_DUMP_NAME, kanbanStatusSlugSchema, followupTypeSchema, EVENT_RELATIVE_FOLLOWUP_TYPES, followupTimeUnitSchema, followupIdSchema, SELECTABLE_FOLLOWUP_TYPES, MAX_LINKED_FOLLOWUP_TARGETS_PER_STATUS, followupSchema, MAX_OUTCOMES_PER_STATUS, kanbanOutcomeSchema, EXCLUSIVE_FLAG_PAIRS, kanbanStatusSchema, kanbanStatusesArraySchema, laneSchema, lanesArraySchema, hubIdParam, hubAdminIdParam, hubUserIdParam, hubIdentityIdParam, hubTeamIdParam, hubTeamUserDeleteParam, hubSchemaQuery, PREVIEW_LABEL_MAX_LENGTH, MAX_ENDED_INDEX_RETENTION_DAYS, MAX_EVAL_RETENTION_DAYS, previewLabelField, createHubBody, updateHubBody, addHubAdminBody, addHubIdentityAuthorizationBody, contactDecisionBody, approveContactBody, listContactAccessQuery, createHubTeamBody, updateHubTeamBody, addHubTeamUserBody, reassignHubUserBody, replicatePreviewBody, updateChannelTestIdentitiesBody, claimCodeChannelParam, claimCodeDeleteParam, connectionIdParam, connectorIdParam, listConnectionsQuery, deleteConnectionQuery, addConnectionBody, editConnectionBody, PRODUCTION_DIRECT_FIELDS, setProductionCredentialBody, registerWhatsappQuery, registerWhatsappBody, retryProvisioningQuery, resendDomainStatusQuery, PLACEHOLDER_TOKENS, ALLOWED_TYPES, SUBSCHEMA_OBJECT_KEYWORDS, SUBSCHEMA_LIST_KEYWORDS, SUBSCHEMA_MAP_KEYWORDS, MAX_SCHEMA_DEPTH, toolIdParam, listToolsQuery, toolAgentQuery, deleteToolQuery, toolConnectionsQuery, nativeToolIdSchema, CONTEXT_BOUNDARIES, contextBoundarySchema, addNativeToolBody, addMcpToolBody, createCustomToolBody, updateCustomToolBody, updateToolExecutionConfigBody, 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, EVAL_PACING_PRESET_NAMES, PACING_INTERVAL_MIN_MS, PACING_INTERVAL_MAX_MS, EVAL_MAX_RUNS_PER_SCENARIO, EVAL_RUN_DEADLINE_MIN_MS, EVAL_RUN_DEADLINE_MAX_MS, ISO_UTC_RE, paginationSchema2, evalIdParam, sessionIdParam, scenarioSetIdParam, hubIdQuery, evalDateContextSchema, EVAL_FIXTURE_NAME_MAX_LENGTH, evalFixtureOverrideSchema, runSessionQuery, runJourneyQuery, EVAL_INPUT_ROLES, EVAL_INPUT_ROLE_LIST, ROLE_ECHO_MAX, EVAL_INITIAL_STATE_SCOPES, MAX_INITIAL_STATE_ENTRIES, evalInitialStateEntry, evalBody, EVAL_LIST_MAX_LIMIT, evalListLimit, getEvalsQuery, toggleEvalBody, bulkToggleEvalsBody, pacingConfigSchema, EVAL_MAX_SELECTED_SCENARIOS, evalScenarioSelectionEntrySchema, evalScenarioSelectionSchema, sessionConfigSchema, createSessionBody, getSessionsQuery, getSessionResultsQuery, getSessionRunsQuery, evalAnalyticsQuery, getSessionCostQuery, compareSessionsQuery, evalsSqlBody, evalsSqlSchemaQuery, exportResultsQuery, validateEvalBody, hubAgentsQuery, createScenarioSetBody, updateScenarioSetBody, scenarioSetsHubQuery, createScenarioFromConversationBody, createJourneyFromConversationBody, EVAL_ATTACHMENT_HASH_REGEX, evalAttachmentRef, turnMayCarryAttachments, ATTACHMENTS_USER_ONLY_MESSAGE, journeyIdParam, journeyToolCallSchema, journeyTurnSchema, journeyStepOverrideSchema, fixtureField, createJourneyBody, updateJourneyBody, evalSessionConfigResponseSchema, evalSessionResponseSchema, evalSessionListConfigSchema, evalSessionListItemSchema, seedReleaseStatusSchema, EVAL_SESSION_NOT_QUIESCENT, 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, CALL_OPENING_LANGUAGES, callOpeningLanguage, CALL_OPENING_MAX_DURATION_MS, CALL_OPENING_MAX_BYTES, CALL_OPENING_CAPTION_MAX_CHARS, CALL_OPENING_CONTENT_TYPES, callOpeningContentType, CALL_OPENING_HASH_REGEX, callOpeningHash, callOpeningCaption, storedCallOpening, MAX_CALL_OPENING_ENCODED_BYTES, MAX_CALL_OPENING_BODY_BYTES, agentCallOpeningParams, putAgentCallOpeningBody, deleteAgentCallOpeningQuery, callOpeningParam, callOpeningQuery, TTS_VOICE_REPLY_ENABLED_FIELD, COPILOT_TRIGGER_FIELD, AUDIO_LANGUAGE_OPTIONS, whatsapp, instagram, resend, telegram, API_CHANNEL_DELIVERY_EVENTS, apiChannel, OPENAI_REASONING_MODELS, openai, anthropic, googleAiStudio, openRouter, xai, groqStt, openaiStt, elevenLabsStt, openaiTts, groqTts, elevenLabsTts, GEMINI_TTS_VOICES, googleTts, wayai, externalResources, restApiTool, mcpServer, e2b, CLAUDE_HARNESS_MODELS, CLAUDE_HARNESS_MODEL_OPTIONS, HARNESS_MCP_SERVERS_FIELD, HARNESS_EGRESS_FIELDS, claudeAgentSdk, claudeManagedAgents, rekorMemory, SPOKEN_LINE_MAX_CHARS, gptLive, CONNECTORS, 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, archiveHubIdParam, archiveConversationParams, archiveListQuery, archiveMessageObservabilityParams, conversationIdParam, 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, signUrlBody, outboundSchemaQuery, templateIdParam, listTemplatesQuery, deleteTemplateQuery, templateStatusQuery, createTemplateBody, updateTemplateBody, submitTemplateBody, testTemplateBody, contactIdParam, listContactsQuery, createContactBody, updateContactBody, listIdParam, listListsQuery, listListContactsQuery, createListBody, updateListBody, addListContactsBody, removeListContactsBody, scheduleIdParam, listSchedulesQuery, listExecutionsQuery, createScheduleBody, updateScheduleBody, MAX_RESOURCE_FILE_SIZE, MAX_10MB_BASE64_ENCODED_BYTES, MAX_EVAL_ATTACHMENT_ENCODED_BYTES, MAX_EVAL_ATTACHMENT_CARRIERS, MAX_EVAL_ATTACHMENT_AGGREGATE_ENCODED_BYTES, MAX_RESOURCE_ENCODED_BYTES, MAX_HUB_AS_CODE_RESOURCES, MAX_HUB_AS_CODE_RESOURCE_FILES, MAX_RESOURCE_AGGREGATE_ENCODED_BYTES, MAX_CI_CONFIG_BODY_BYTES, MAX_CALL_OPENING_CARRIERS, MAX_CALL_OPENING_AGGREGATE_ENCODED_BYTES, hubAsCodeStateSchema, hubAsCodeResourceFileSchema, hubAsCodeResourceSchema, uuidPattern, ciUuidSchema, boundedHubAsCodeResourcesSchema, hubAsCodeConfigSchema, ciPullHubIdParam, ciBranchParam, ciPullQuery, ciHubsQuery, ciLookupQuery, ciBranchesQuery, ciSyncBody, ciPushBody, ciDiffBody, ciPublishBody, ciPublishPreviewBody, ciSyncMcpBody, ciOrgResourcesParam, orgResourcesConfigSchema, ciOrgResourcesPushBody, ciOrgResourcesDiffBody, CI_APPLY_ENTITY_KINDS, CI_APPLY_OPERATIONS, ciApplyErrorBaseSchema, ciApplyErrorSchema, ciSyncCountSchema, ciSyncChangesSchema, ciSyncWarningSchema, ciSyncResponseSchema, VERSION_PART, MOBILE_APP_VERSION_RE, mobileAppVersionSchema, MOBILE_PLATFORMS, mobilePlatformSchema, mobileVersionPolicyQuery, mobileVersionPolicySchema, mobileVersionPolicyResponse, adminOrgIdParam, adminOrgAdminIdParam, adminUserIdParam, PRICING_PLAN_ID_RE, adminPlanIdParam, adminOrganizationsQuery, adminUserSearchQuery, kanbanSlugMigrationQuery, adjustQuotaBody, updatePlanBody, addAdminUserBody, MAX_VOICE_CALL_MINUTE_OPS, voiceCallMinuteOps, updatePlatformConfigBody, updateFreeOrgLimitBody, adminScopedTargetShape, adminScopedTargetBody, BRANCHING_ORPHAN_ENTITY_TYPES, BRANCHING_ORPHAN_MAX_TARGETS, adminRepairBranchingOrphansBody, adminRepairLegacyOrgGrantsBody, adminRepairCompedPlansBody, updatePricingPlanBody, dataExplorerSearchQuery, dataExplorerOrgIdParam, dataExplorerHubIdParam, dataExplorerConvIdParam, dataExplorerDoInstancesQuery, dataExplorerNsIdParam, dataExplorerKvKeysBody, dataExplorerKvKeyBody, uuidOrHexId, dataExplorerDeleteOrgParam, dataExplorerDeleteHubParam, dataExplorerDeleteConvParam, dataExplorerDeleteUserParam, dataExplorerDeleteQuery, dataExplorerKvDeleteBody, pitrDoNamespace, pitrBookmarkParam, pitrRestoreBody, healthSamplingTriggerBody, dataExplorerDebugDoType, DEBUG_READ_MAX_LIMIT, DEBUG_READ_DEFAULT_LIMIT, DEBUG_DO_HEX_PREFIX, debugDoEntityId, debugTableName, dataExplorerDebugTablesParam, dataExplorerDebugRowsParam, dataExplorerDebugRowsQuery, dataExplorerDebugAnalyticsTable, debugUuid, dataExplorerDebugAnalyticsRowsParam, dataExplorerDebugAnalyticsRowsQuery, debugHubConvParam, debugMessageIdQuery, sandboxEgressPolicy, SANDBOX_EXEC_MAX_CMD_LENGTH, SANDBOX_EXEC_MAX_ALLOWLIST, SANDBOX_EXEC_MAX_TIMEOUT_MS, adminSandboxExecBody, META_ENTITY_ID_PATTERN, metaEntityId, whatsappCallbackBody, authMeResponse, wsTicketResponse, sessionCheckResponse, logoutResponse, magicCodeSendBody, magicCodeSendResponse, magicCodeVerifyBody, magicCodeVerifyResponse, passwordLoginBody, stateOperationBody, conversationListResourcesQuery, conversationReadResourceQuery, listPendingSchedulesQuery, listHubAggregateSchedulesQuery, reportSourceSchema, intakeReportSourceSchema, reportClassificationSchema, reportStatusSchema, reportLocaleSchema, reportMessageAuthorRoleSchema, reportMessageSchema, sentryRefStatusSchema, createReportBody, editReportBody, reporterReportSummarySchema, reporterListResponseSchema, getReportResponseSchema, reporterTransitionResponseSchema, contestReportBody, reporterListQuery, listReportsQuery, GITHUB_ISSUE_URL_REGEX, githubIssueUrlSchema, transitionReportBody, groupReportsBody, holdReportBody, clickhouseReadyResponse, bootstrapQuery, requestSnapshotChunkMessage, MAX_NAME_LENGTH, MAX_VALUE_LENGTH, MAX_TAGS, MAX_TAG_LENGTH, MAX_SCOPE_HUBS, MAX_SCOPE_TAGS, vaultSecretScopeSchema, vaultCreateBody, vaultUpdateBody, PERMISSIONS, MAX_NAME_LENGTH2, MAX_HUBS_PER_GRANT, MAX_HUB_TAGS_PER_GRANT, MAX_GRANTS, permissionEnum, grantScopeSchema, grantSchema, createTokenBody, tokenOrgIdParam, tokenGrantScopeSchema, tokenGrantSchema, tokenMetadataSchema, listTokensResponse, createTokenResponse, orgTokenSummarySchema, listOrgTokensResponse, invitePreviewQuery, invitePreviewResponse, 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, DESKTOP_SHELL_VERSION_RE, DESKTOP_PLATFORMS, DESKTOP_FLAVORS, desktopShellInfoSchema, DESKTOP_PRESENCE_STATES, desktopPresenceSchema, desktopUpdateSchema, DESKTOP_SIGN_IN_URL_MAX_LENGTH, DESKTOP_APP_PATH_MAX_LENGTH, desktopAppPathSchema, DESKTOP_NOTIFICATION_KINDS, DESKTOP_NOTIFICATION_TITLE_MAX_LENGTH, DESKTOP_NOTIFICATION_BODY_MAX_LENGTH, notificationTitleSchema, notificationBodySchema, desktopNotificationSchema, DESKTOP_BADGE_MAX_COUNT, DESKTOP_BADGE_LABEL_MAX_LENGTH, desktopBadgeSchema, desktopNavigateSchema, desktopSettingsSchema, desktopSettingsChangeSchema, desktopBridgeArgsSchemas, PEOPLE_CONTACT_PAGE_MAX, PEOPLE_CONTACT_PAGE_DEFAULT, PEOPLE_CONTACT_EMAIL_MAX_LENGTH, peopleUserIdSchema, peopleContactInviteBody, peopleContactInviteIdParam, peopleContactUserIdParam, peopleContactBlockBody, peopleContactPageQuery, peopleOutgoingInviteSchema, peopleContactPersonSchema, peopleContactSchema, peopleIncomingInviteSchema, peopleBlockedUserSchema;
6050
6050
  var init_contracts = __esm({
6051
6051
  "../../packages/core/dist/contracts/index.js"() {
6052
6052
  "use strict";
@@ -6106,7 +6106,9 @@ var init_contracts = __esm({
6106
6106
  init_zod();
6107
6107
  init_zod();
6108
6108
  init_zod();
6109
+ init_zod();
6109
6110
  uuidSchema = external_exports.string().uuid();
6111
+ USER_ID_REGEX = /^([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|user_[A-Za-z0-9]+)$/i;
6110
6112
  paginationSchema = external_exports.object({
6111
6113
  limit: external_exports.coerce.number().int().min(1).max(100).default(50),
6112
6114
  offset: external_exports.coerce.number().int().min(0).default(0)
@@ -10241,6 +10243,10 @@ var init_contracts = __esm({
10241
10243
  deletePushTokenQuery = external_exports.object({
10242
10244
  token: external_exports.string().min(1).max(512)
10243
10245
  });
10246
+ recordAiDisclosureAcceptanceBody = external_exports.object({
10247
+ version: external_exports.number().int().positive(),
10248
+ withdrawn_at_seen: external_exports.string().datetime().nullable().optional()
10249
+ });
10244
10250
  activityQuery = external_exports.object({
10245
10251
  limit: external_exports.coerce.number().int().min(1).max(100).optional()
10246
10252
  });
@@ -11211,6 +11217,12 @@ var init_contracts = __esm({
11211
11217
  voice_calls_enabled: external_exports.number().int().min(0).max(1).optional(),
11212
11218
  /** The voice-call meter's price (`voiceCallMinuteOps`). `wayai admin voice-calls price` sets it. */
11213
11219
  voice_call_minute_ops: voiceCallMinuteOps.optional(),
11220
+ /**
11221
+ * The person-to-person threads kill switch (contacts, direct messages and groups; gh #4661).
11222
+ * 0 = off (the default: every `/api/contacts` route answers 404), 1 = on.
11223
+ * `wayai admin threads enable|disable` flips this.
11224
+ */
11225
+ threads_enabled: external_exports.number().int().min(0).max(1).optional(),
11214
11226
  /**
11215
11227
  * The mobile app version policy (`MOBILE_VERSION_POLICY_COLUMNS`), per platform: an install
11216
11228
  * below the minimum is blocked until it updates from the store; one below the recommended
@@ -11363,7 +11375,7 @@ var init_contracts = __esm({
11363
11375
  /** Filter to specific DO types (default: all) */
11364
11376
  do_types: external_exports.array(pitrDoNamespace).optional()
11365
11377
  });
11366
- dataExplorerDebugDoType = external_exports.enum(["hub", "org", "conversation", "user", "platform"]);
11378
+ dataExplorerDebugDoType = external_exports.enum(["hub", "org", "conversation", "user", "platform", "thread"]);
11367
11379
  DEBUG_READ_MAX_LIMIT = 100;
11368
11380
  DEBUG_READ_DEFAULT_LIMIT = 20;
11369
11381
  DEBUG_DO_HEX_PREFIX = "hex:";
@@ -11500,20 +11512,6 @@ var init_contracts = __esm({
11500
11512
  password: external_exports.string().min(1, "Password is required").max(128)
11501
11513
  // bound the payload; WorkOS validates
11502
11514
  });
11503
- browserParams = external_exports.object({
11504
- hubId: uuidSchema,
11505
- resourceId: uuidSchema
11506
- });
11507
- browserFoldersQuery = external_exports.object({
11508
- parent_folder_id: uuidSchema.optional(),
11509
- search: external_exports.string().max(100).optional()
11510
- });
11511
- browserFilesQuery = external_exports.object({
11512
- folder_id: uuidSchema.optional(),
11513
- search: external_exports.string().max(100).optional(),
11514
- limit: external_exports.coerce.number().int().min(1).max(100).default(50),
11515
- offset: external_exports.coerce.number().int().min(0).max(1e4).default(0)
11516
- });
11517
11515
  stateOperationBody = external_exports.object({
11518
11516
  hub_id: external_exports.string().uuid(),
11519
11517
  operation: external_exports.enum(["get", "update", "set_path", "reset"]),
@@ -12032,6 +12030,126 @@ var init_contracts = __esm({
12032
12030
  /** Which pane refetches. `base` covers create/delete/promote/config changes. */
12033
12031
  scope: external_exports.enum(["records", "record_types", "files", "base"])
12034
12032
  });
12033
+ DESKTOP_SHELL_VERSION_RE = /^(0|[1-9]\d{0,5})\.(0|[1-9]\d{0,5})\.(0|[1-9]\d{0,5})(-[0-9A-Za-z.-]{1,32})?$/;
12034
+ DESKTOP_PLATFORMS = ["darwin", "win32"];
12035
+ DESKTOP_FLAVORS = ["production", "development"];
12036
+ desktopShellInfoSchema = external_exports.object({
12037
+ /** The shell's own release version, independent of the web deploy. */
12038
+ shellVersion: external_exports.string().regex(DESKTOP_SHELL_VERSION_RE),
12039
+ /** The Electron runtime the shell was built with. */
12040
+ electronVersion: external_exports.string().regex(/^\d{1,4}\.\d{1,4}\.\d{1,4}(-[0-9A-Za-z.-]{1,32})?$/),
12041
+ platform: external_exports.enum(DESKTOP_PLATFORMS),
12042
+ /** CPU architecture as Node reports it (`arm64`, `x64`). */
12043
+ arch: external_exports.string().regex(/^[a-z0-9_]{1,16}$/),
12044
+ flavor: external_exports.enum(DESKTOP_FLAVORS),
12045
+ /**
12046
+ * Present, and true, when the shell runs from the Microsoft Store's package: the Store updates it,
12047
+ * and Windows alone opens it at login (the package's startup task, which the person turns on in
12048
+ * Windows' settings). An optional field, so no new `bridgeVersion`: an older page ignores it, and
12049
+ * its absence is every other shell.
12050
+ */
12051
+ store: external_exports.literal(true).optional()
12052
+ });
12053
+ DESKTOP_PRESENCE_STATES = ["present", "away"];
12054
+ desktopPresenceSchema = external_exports.object({
12055
+ presence: external_exports.enum(DESKTOP_PRESENCE_STATES),
12056
+ mainWindow: external_exports.object({
12057
+ shown: external_exports.boolean(),
12058
+ focused: external_exports.boolean()
12059
+ })
12060
+ });
12061
+ desktopUpdateSchema = external_exports.object({
12062
+ ready: external_exports.object({
12063
+ version: external_exports.string().regex(DESKTOP_SHELL_VERSION_RE),
12064
+ offerRestart: external_exports.boolean()
12065
+ }).nullable()
12066
+ });
12067
+ DESKTOP_SIGN_IN_URL_MAX_LENGTH = 4096;
12068
+ DESKTOP_APP_PATH_MAX_LENGTH = 512;
12069
+ desktopAppPathSchema = external_exports.string().max(DESKTOP_APP_PATH_MAX_LENGTH).regex(/^\/(?![/\\])[^\s\\]*$/);
12070
+ DESKTOP_NOTIFICATION_KINDS = ["handoff", "message", "summary"];
12071
+ DESKTOP_NOTIFICATION_TITLE_MAX_LENGTH = 200;
12072
+ DESKTOP_NOTIFICATION_BODY_MAX_LENGTH = 500;
12073
+ notificationTitleSchema = external_exports.string().min(1).max(DESKTOP_NOTIFICATION_TITLE_MAX_LENGTH);
12074
+ notificationBodySchema = external_exports.string().max(DESKTOP_NOTIFICATION_BODY_MAX_LENGTH);
12075
+ desktopNotificationSchema = external_exports.object({
12076
+ kind: external_exports.enum(DESKTOP_NOTIFICATION_KINDS),
12077
+ title: notificationTitleSchema,
12078
+ body: notificationBodySchema,
12079
+ path: desktopAppPathSchema,
12080
+ withoutPreview: external_exports.object({ title: notificationTitleSchema, body: notificationBodySchema }).optional()
12081
+ });
12082
+ DESKTOP_BADGE_MAX_COUNT = 1e6;
12083
+ DESKTOP_BADGE_LABEL_MAX_LENGTH = 200;
12084
+ desktopBadgeSchema = external_exports.object({
12085
+ count: external_exports.number().int().min(0).max(DESKTOP_BADGE_MAX_COUNT),
12086
+ label: external_exports.string().max(DESKTOP_BADGE_LABEL_MAX_LENGTH)
12087
+ });
12088
+ desktopNavigateSchema = external_exports.object({
12089
+ path: desktopAppPathSchema
12090
+ });
12091
+ desktopSettingsSchema = external_exports.object({
12092
+ /** The app opens when the person logs in to the computer: the operating system's own login item. */
12093
+ openAtLogin: external_exports.boolean(),
12094
+ /** Closing the window keeps the app running in the tray (true), or quits it (false). */
12095
+ closeToTray: external_exports.boolean(),
12096
+ /** The shell shows notifications (true), or none (false). The badge is not a notification. */
12097
+ notifications: external_exports.boolean(),
12098
+ /**
12099
+ * A customer message's notification shows the customer's name and words, where the platform
12100
+ * allows them at all (`desktopShowsCustomerWords`: macOS); elsewhere the shell never shows them.
12101
+ */
12102
+ messagePreview: external_exports.boolean()
12103
+ });
12104
+ desktopSettingsChangeSchema = desktopSettingsSchema.partial().strict().refine((change) => Object.values(change).every((value) => typeof value === "boolean"), {
12105
+ message: "each setting changed is true or false"
12106
+ });
12107
+ desktopBridgeArgsSchemas = {
12108
+ getShellInfo: external_exports.tuple([]),
12109
+ getPresence: external_exports.tuple([]),
12110
+ openSignIn: external_exports.tuple([external_exports.string().max(DESKTOP_SIGN_IN_URL_MAX_LENGTH)]),
12111
+ getUpdate: external_exports.tuple([]),
12112
+ restartToUpdate: external_exports.tuple([]),
12113
+ notify: external_exports.tuple([desktopNotificationSchema]),
12114
+ setBadge: external_exports.tuple([desktopBadgeSchema]),
12115
+ clearAll: external_exports.tuple([]),
12116
+ getSettings: external_exports.tuple([]),
12117
+ setSettings: external_exports.tuple([desktopSettingsChangeSchema])
12118
+ };
12119
+ PEOPLE_CONTACT_PAGE_MAX = 100;
12120
+ PEOPLE_CONTACT_PAGE_DEFAULT = 50;
12121
+ PEOPLE_CONTACT_EMAIL_MAX_LENGTH = 254;
12122
+ peopleUserIdSchema = external_exports.string().max(64).regex(USER_ID_REGEX, "must be a user id");
12123
+ peopleContactInviteBody = external_exports.object({
12124
+ email: external_exports.string().trim().max(PEOPLE_CONTACT_EMAIL_MAX_LENGTH).email()
12125
+ }).strict();
12126
+ peopleContactInviteIdParam = external_exports.object({ inviteId: uuidSchema });
12127
+ peopleContactUserIdParam = external_exports.object({ userId: peopleUserIdSchema });
12128
+ peopleContactBlockBody = external_exports.object({ user_id: peopleUserIdSchema }).strict();
12129
+ peopleContactPageQuery = external_exports.object({
12130
+ cursor: external_exports.string().min(1).max(256).optional(),
12131
+ limit: external_exports.coerce.number().int().min(1).max(PEOPLE_CONTACT_PAGE_MAX).default(PEOPLE_CONTACT_PAGE_DEFAULT)
12132
+ });
12133
+ peopleOutgoingInviteSchema = external_exports.object({
12134
+ invite_id: uuidSchema,
12135
+ email: external_exports.string(),
12136
+ status: external_exports.literal("sent"),
12137
+ created_at: timestampSchema,
12138
+ expires_at: timestampSchema
12139
+ }).strict();
12140
+ peopleContactPersonSchema = external_exports.object({
12141
+ user_id: peopleUserIdSchema,
12142
+ display_name: external_exports.string().nullable(),
12143
+ email: external_exports.string().nullable()
12144
+ }).strict();
12145
+ peopleContactSchema = peopleContactPersonSchema.extend({ contact_since: timestampSchema }).strict();
12146
+ peopleIncomingInviteSchema = external_exports.object({
12147
+ invite_id: uuidSchema,
12148
+ inviter: peopleContactPersonSchema,
12149
+ created_at: timestampSchema,
12150
+ expires_at: timestampSchema
12151
+ }).strict();
12152
+ peopleBlockedUserSchema = peopleContactPersonSchema.extend({ blocked_at: timestampSchema, deleted_user: external_exports.boolean() }).strict();
12035
12153
  }
12036
12154
  });
12037
12155
 
@@ -12191,8 +12309,8 @@ var init_api_client = __esm({
12191
12309
  return this.request("GET", "/api/admin/config");
12192
12310
  }
12193
12311
  // Patch the platform config (platform-admin gated). Used by every `wayai admin
12194
- // <gate> disable|enable` — `harness` flips `harness_enabled`, `voice-calls` flips
12195
- // `voice_calls_enabled`.
12312
+ // <gate> disable|enable` — grep `PlatformGate` in `commands/admin.ts` for the column each
12313
+ // gate flips.
12196
12314
  async adminUpdateConfig(body) {
12197
12315
  return this.request("PATCH", "/api/admin/config", body);
12198
12316
  }
@@ -14492,7 +14610,7 @@ function findStepBoundaries(transcript) {
14492
14610
  }
14493
14611
  return out;
14494
14612
  }
14495
- var UUID_RE, HEX_RE, WORKOS_ID_RE, OPAQUE_SECRET_RE, BASE64_SECRET_RE, BASE64_MARKER_RE, TOKEN_RE, SENSITIVE_FIELDS, SENSITIVE_KEY_ALTERNATION, SENSITIVE_KEY_PATTERN, JSON_CREDENTIAL_RE, QUERY_CREDENTIAL_RE, REDACTED, PROVIDER_TOKEN_RE, APP_ERROR_BRAND, AppError, LLM_RATE_LIMIT_BRAND, LlmRateLimitError, LLM_PROVIDER_HTTP_BRAND, LlmProviderHttpError, LLM_PROVIDER_CONTENT_BRAND, LlmProviderContentError, LLM_PROVIDER_TIMEOUT_BRAND, LlmProviderTimeoutError, ExternalServiceError, CHANNEL_PROVIDER_HTTP_BRAND, ChannelProviderHttpError, MEDIA_PROVIDER_HTTP_BRAND, MediaProviderHttpError, REKOR_ACTOR_TYPE_HEADER2, REKOR_ACTOR_ID_HEADER2, REKOR_ACTOR_LABEL_HEADER2, REKOR_ACTOR_ORG_HEADER2, REKOR_ACTOR_ADMIN_HEADER2, REKOR_CLIENT_HEADER2, REKOR_TOOL_ID_HEADER2, REKOR_CLIENTS2, rekorClientSchema2, MAX_REKOR_TOOL_ID_LENGTH2, rekorToolIdSchema2, DATA_PROXY_MOUNT2, DATA_PROXY_PREFIX2, DATA_PROXY_ORG_QUERY_PARAM2, MAX_PROVISIONING_BODY_BYTES2, dataProxyQuery2, rekorAttestation2, REQUIRED_REKOR_ATTESTATION_HEADERS2, BASE_DESTRUCTION_MOUNT2, BASE_DESTRUCTION_PREFIX2, BASE_DESTRUCTION_CONFIRM_PATH2, baseDestructionConfirmBody2, BASE_DESTRUCTION_GRACE_MS2, BASE_DESTRUCTION_CONFIRM_TTL_MS2, BASE_DESTRUCTION_ORG_QUERY_PARAM2, baseDestructionQuery2, baseDestructionParam2, baseDestructionInitiateBody2, baseDestructionStatus2, baseDestructionRequest2, baseDestructionListResponse2, baseDestructionInitiateResponse2, baseDestructionConfirmResponse2, baseDestructionCancelResponse2, ENDPOINT_CONFIGS, AUTH_TYPE2, ORG_CREDENTIAL_AUTH_TYPES2, AUTH_TYPE_DISPLAY2, LEGACY_AUTH_TYPE_MAP2, VALID_AUTH_TYPES2, AGENT_ROLES2, SAFE_USER_ID_REGEX2, SUPPORTED_LOCALES2, uuidSchema2, paginationSchema3, timestampSchema2, idParamSchema2, clientOptionalString2, clientOptionalBoolean2, clientOptionalNumber2, messageAttachment2, MAX_MESSAGE_BODY_BYTES2, MAX_ATTACHMENTS_PER_MESSAGE2, MESSAGE_ENVELOPE_HEADROOM_BYTES2, MAX_AUDIO_FILE_BASE64_BYTES2, primaryRegionSchema2, placementSourceSchema2, orgIdParam2, orgAdminIdParam2, createOrganizationBody2, updateOrganizationBody2, addOrgAdminBody2, SUMMARIZATION_THRESHOLD_MIN2, SUMMARIZATION_THRESHOLD_MAX2, PREVIOUS_CONVERSATIONS_MAX2, FLAG_CONDITION_OPERATORS2, CONFIDENCE_VARIABLE_SUFFIX2, DECISION_SCORE_MIN_LEVELS2, DECISION_SCORE_MAX_LEVELS2, DECISIONS_MODEL_PREFIXES2, DECISION_CAPABLE_AGENT_ROLES2, NATIVE_TOOL_SCHEMAS2, WAYAI_CONNECTOR2, BASE_NATIVE_TOOLS2, NATIVE_TOOLS2, CATALOG_SIDE_EFFECTS2, NATIVE_TOOL_NAMES2, previousConversationsCountField2, summarizationThresholdField2, flagConditionSchema2, MONITOR_TRIGGERS2, monitorTriggerSchema2, MONITOR_FIRING_TRIGGERS2, MONITOR_DELAY_SECONDS_MIN2, MONITOR_IDLE_DELAY_REQUIRED_MESSAGE2, MONITOR_HISTORY_MESSAGES_MAX2, monitorHistoryMessagesSchema2, monitorIncludeToolResultsSchema2, MONITOR_INPUT_SHAPING_KEYS2, MONITOR_INPUT_SHAPING_SCHEMAS2, MONITOR_INPUT_SHAPING_IDLE_MESSAGE2, monitorArgumentSourceSchema2, MONITOR_NOTE_TEMPLATE_MAX2, MONITOR_STEER_NOTE_MAX2, monitorActionSchema2, monitorRuleSchema2, MONITOR_RULE_KEYS2, MONITOR_RULE_SCHEMAS2, MONITOR_RULE_TRIGGERS2, MONITOR_RULE_TRIGGER_MESSAGE2, CALL_UTTERANCE_SPEAKERS2, callUtteranceSpeakerSchema2, MONITOR_CALL_KEYS2, MONITOR_CALL_SCHEMAS2, MONITOR_CALL_KEY_MESSAGE2, CALL_STEERING_MIN_CONFIDENCE2, CALL_UTTERANCE_RULE_NOT_CONFIDENT_MESSAGE2, CALL_UTTERANCE_FALLBACK_MESSAGE2, CALL_UTTERANCE_FLAG_CONDITIONS_MESSAGE2, CALL_STEER_NOTE_BLANK_MESSAGE2, MONITOR_USER_MESSAGE_ACTION_KINDS2, MONITOR_ASSISTANT_REPLY_ACTION_KINDS2, MONITOR_CALL_UTTERANCE_ACTION_KINDS2, INSERT_NOTE_TOOL_NAME2, RUN_MONITOR_TOOL_NAME2, MONITOR_RULE_ALLOWED_NATIVE_TOOLS2, MONITOR_RULE_REENTRY_TOOLS2, MONITOR_RULE_REENTRY_TRACKS2, monitorConfigField2, flagConditionsField2, agentIdParam2, listAgentsQuery2, agentConnectionsQuery2, createAgentBody2, updateAgentBody2, AGENT_PARAMETER_TYPES2, AGENT_PARAMETER_NAME_REGEX2, agentParameterCreateSchema2, MAX_AGENT_PARAMETERS_PER_REQUEST2, createAgentParametersBody2, SLUG_REGEX2, slugSchema2, INVISIBLE_NAME_CHARS2, MAX_KANBAN_STATUSES2, MAX_FOLLOWUPS_PER_STATUS2, MAX_LANES2, MAX_ADDITIONAL_CONTEXT_SCHEMA_BYTES2, RESERVED_TEMPLATE_DUMP_NAME2, kanbanStatusSlugSchema2, followupTypeSchema2, EVENT_RELATIVE_FOLLOWUP_TYPES2, followupTimeUnitSchema2, followupIdSchema2, SELECTABLE_FOLLOWUP_TYPES2, MAX_LINKED_FOLLOWUP_TARGETS_PER_STATUS2, followupSchema2, MAX_OUTCOMES_PER_STATUS2, kanbanOutcomeSchema2, EXCLUSIVE_FLAG_PAIRS2, kanbanStatusSchema2, kanbanStatusesArraySchema2, laneSchema2, lanesArraySchema2, hubIdParam2, hubAdminIdParam2, hubUserIdParam2, hubIdentityIdParam2, hubTeamIdParam2, hubTeamUserDeleteParam2, hubSchemaQuery2, PREVIEW_LABEL_MAX_LENGTH2, MAX_ENDED_INDEX_RETENTION_DAYS2, MAX_EVAL_RETENTION_DAYS2, previewLabelField2, createHubBody2, updateHubBody2, addHubAdminBody2, addHubIdentityAuthorizationBody2, contactDecisionBody2, approveContactBody2, listContactAccessQuery2, createHubTeamBody2, updateHubTeamBody2, addHubTeamUserBody2, reassignHubUserBody2, replicatePreviewBody2, updateChannelTestIdentitiesBody2, claimCodeChannelParam2, claimCodeDeleteParam2, connectionIdParam2, connectorIdParam2, listConnectionsQuery2, deleteConnectionQuery2, addConnectionBody2, editConnectionBody2, PRODUCTION_DIRECT_FIELDS2, setProductionCredentialBody2, registerWhatsappQuery2, registerWhatsappBody2, retryProvisioningQuery2, resendDomainStatusQuery2, PLACEHOLDER_TOKENS2, ALLOWED_TYPES2, SUBSCHEMA_OBJECT_KEYWORDS2, SUBSCHEMA_LIST_KEYWORDS2, SUBSCHEMA_MAP_KEYWORDS2, MAX_SCHEMA_DEPTH2, toolIdParam2, listToolsQuery2, toolAgentQuery2, deleteToolQuery2, toolConnectionsQuery2, nativeToolIdSchema2, CONTEXT_BOUNDARIES2, contextBoundarySchema2, addNativeToolBody2, addMcpToolBody2, createCustomToolBody2, updateCustomToolBody2, updateToolExecutionConfigBody2, initialValueCreateSchema2, initialValueUpdateSchema2, stateIdParam2, listStatesQuery2, stateNameSchema2, createStateBody2, updateStateBody2, reorderStatesBody2, variantAiModeSchema2, experimentStatusSchema2, overlayUpdateSchema2, experimentIdParam2, variantIdParam2, listExperimentsQuery2, listVariantsQuery2, listOverridesQuery2, deleteOverrideQuery2, createExperimentBody2, updateExperimentBody2, setExperimentStatusBody2, createVariantBody2, updateVariantBody2, upsertOverrideBody2, orgTagIdParam2, listOrgTagsQuery2, ORG_TAG_NAME_REGEX2, ORG_TAG_NAME_MAX_LENGTH2, createOrgTagBody2, updateOrgTagBody2, orgCredentialIdParam2, listOrgCredentialsQuery2, createOrgCredentialBody2, updateOrgCredentialBody2, BASE_CREDENTIAL_NAME_MAX2, baseCredentialNameSchema2, createBaseCredentialLinkBody2, baseCredentialLinkParams2, baseCredentialLinkQuery2, orgResourceIdParam2, orgResourceFileIdParam2, orgResourceFolderIdParam2, hubOrgResourceParam2, listOrgResourcesQuery2, orgIdQuery2, createOrgResourceBody2, updateOrgResourceBody2, createOrgResourceFolderBody2, updateOrgResourceFolderBody2, uploadOrgResourceFileBody2, updateOrgResourceFileBody2, uploadOrgSkillZipBody2, linkOrgResourceBody2, resourceIdParam2, listResourcesQuery2, createResourceBody2, updateResourceBody2, syncSkillsBody2, resourceFileIdParam2, listResourceFilesQuery2, createResourceFileBody2, updateResourceFileBody2, uploadResourceFileBody2, uploadSkillZipBody2, resourceFolderIdParam2, listResourceFoldersQuery2, createResourceFolderBody2, updateResourceFolderBody2, agentResourceQuery2, hubResourceQuery2, linkAgentResourceBody2, updateAgentResourceBody2, unlinkAgentResourceQuery2, navItemSchema2, hubCountResetBody2, navItemCountResetBody2, typingBody2, analyticsHubIdParam2, analyticsVariableIdParam2, updateVariablePinBody2, updateAnalyticsViewBody2, NUMERIC_FILTER_OPS2, TEXT_FILTER_OPS2, CATEGORICAL_FILTER_OPS2, VARIABLE_FILTER_OPS2, STRUCTURED_QUERY_OPS2, STRUCTURED_QUERY_AGGREGATIONS2, filterValueSchema2, conversationsBody2, analyticsConversationIdParam2, messagesQuery2, conversationDetailDataQuery2, analyticsDataBody2, structuredQueryBody2, analyticsSqlBody2, analyticsSqlTable2, analyticsSqlSchemaQuery2, EVAL_PACING_PRESET_NAMES2, PACING_INTERVAL_MIN_MS2, PACING_INTERVAL_MAX_MS2, EVAL_MAX_RUNS_PER_SCENARIO2, EVAL_RUN_DEADLINE_MIN_MS2, EVAL_RUN_DEADLINE_MAX_MS2, ISO_UTC_RE2, paginationSchema22, evalIdParam2, sessionIdParam2, scenarioSetIdParam2, hubIdQuery2, evalDateContextSchema2, EVAL_FIXTURE_NAME_MAX_LENGTH2, evalFixtureOverrideSchema2, runSessionQuery2, runJourneyQuery2, EVAL_INPUT_ROLES2, EVAL_INPUT_ROLE_LIST2, ROLE_ECHO_MAX2, EVAL_INITIAL_STATE_SCOPES2, MAX_INITIAL_STATE_ENTRIES2, evalInitialStateEntry2, evalBody2, EVAL_LIST_MAX_LIMIT2, evalListLimit2, getEvalsQuery2, toggleEvalBody2, bulkToggleEvalsBody2, pacingConfigSchema2, EVAL_MAX_SELECTED_SCENARIOS2, evalScenarioSelectionEntrySchema2, evalScenarioSelectionSchema2, sessionConfigSchema2, createSessionBody2, getSessionsQuery2, getSessionResultsQuery2, getSessionRunsQuery2, evalAnalyticsQuery2, getSessionCostQuery2, compareSessionsQuery2, evalsSqlBody2, evalsSqlSchemaQuery2, exportResultsQuery2, validateEvalBody2, hubAgentsQuery2, createScenarioSetBody2, updateScenarioSetBody2, scenarioSetsHubQuery2, createScenarioFromConversationBody2, createJourneyFromConversationBody2, EVAL_ATTACHMENT_HASH_REGEX2, evalAttachmentRef2, turnMayCarryAttachments2, ATTACHMENTS_USER_ONLY_MESSAGE2, journeyIdParam2, journeyToolCallSchema2, journeyTurnSchema2, journeyStepOverrideSchema2, fixtureField2, createJourneyBody2, updateJourneyBody2, evalSessionConfigResponseSchema2, evalSessionResponseSchema2, evalSessionListConfigSchema2, evalSessionListItemSchema2, seedReleaseStatusSchema2, getConversationsQuery2, getMessagesQuery2, appMessageSenderType2, appMessageReceiverType2, apiChannelMessage2, apiChannelMessageBody2, appMessageBody2, appMessageResponse2, CALL_STATUSES2, callStatus2, CALL_END_REASONS2, callEndReason2, CALL_TRANSPORTS2, callTransport2, CALL_PARTICIPANT_TYPES2, callParticipantType2, callInstant2, MAX_SDP_OFFER_LENGTH2, sdpDescription2, sdpOffer2, MAX_CALL_REQUEST_BODY_BYTES2, hubScoped3, callSummaryFields2, callSummary2, callIdParam2, createCallBody2, createCallResponse2, callReadyBody2, callHangupBody2, callStatusQuery2, MAX_REPORTED_DELEGATION_IDS2, callDelegationId2, callDelegationsBody2, callResponse2, MAX_CALL_RECORDING_GAPS2, callRecordingGap2, callRecordingNoteMetadata2, CALL_OPENING_LANGUAGES2, callOpeningLanguage2, CALL_OPENING_MAX_DURATION_MS2, CALL_OPENING_MAX_BYTES2, CALL_OPENING_CAPTION_MAX_CHARS2, CALL_OPENING_CONTENT_TYPES2, callOpeningContentType2, CALL_OPENING_HASH_REGEX2, callOpeningHash2, callOpeningCaption2, storedCallOpening2, MAX_CALL_OPENING_ENCODED_BYTES2, MAX_CALL_OPENING_BODY_BYTES2, agentCallOpeningParams2, putAgentCallOpeningBody2, deleteAgentCallOpeningQuery2, callOpeningParam2, callOpeningQuery2, TTS_VOICE_REPLY_ENABLED_FIELD2, COPILOT_TRIGGER_FIELD2, AUDIO_LANGUAGE_OPTIONS2, whatsapp2, instagram2, resend2, telegram2, API_CHANNEL_DELIVERY_EVENTS2, apiChannel2, OPENAI_REASONING_MODELS2, openai2, anthropic2, googleAiStudio2, openRouter2, xai2, groqStt2, openaiStt2, elevenLabsStt2, openaiTts2, groqTts2, elevenLabsTts2, GEMINI_TTS_VOICES2, googleTts2, wayai2, externalResources2, restApiTool2, mcpServer2, e2b2, CLAUDE_HARNESS_MODELS2, CLAUDE_HARNESS_MODEL_OPTIONS2, HARNESS_MCP_SERVERS_FIELD2, HARNESS_EGRESS_FIELDS2, claudeAgentSdk2, claudeManagedAgents2, rekorMemory2, SPOKEN_LINE_MAX_CHARS2, gptLive2, CONNECTORS2, evalCallInstant2, EVAL_CALL_MIN_SECONDS2, EVAL_CALL_MAX_SECONDS2, EVAL_CALL_SPOKEN_LINE_MAX_CHARS2, hubScoped22, createEvalCallBody2, createEvalCallResponse2, evalCallConversationQuery2, evalCallRecordQuery2, evalCallSpeaker2, evalCallUtterance2, evalCallTurn2, evalCallRecording2, evalCallRecordResponse2, evalCallFinishResponse2, updateUserBody2, updateProfileBody2, pathnameRegex2, updatePreferencesBody2, registerPushTokenBody2, deletePushTokenQuery2, activityQuery2, deletionModeSchema2, deletionRequestBody2, archiveHubIdParam2, archiveConversationParams2, archiveListQuery2, archiveMessageObservabilityParams2, conversationIdParam2, claimBody2, releaseBody2, transferBody2, closeBody2, additionalContextPayloadSchema2, kanbanUpdateBody2, annotateConversationBody2, observabilityParams2, observabilityListParams2, deleteUserConversationsBody2, deleteUserConversationsResponse2, sendMessageBody2, listConversationsQuery2, flagSourceSchema2, getConversationsResponse2, getConversationDetailParams2, getConversationDetailQuery2, getConversationDetailResponse2, listWhatsAppTemplatesQuery2, sendWhatsAppTemplateBody2, copilotSuggestBody2, copilotSuggestResponse2, CONSULT_THREAD_STATUSES2, consultThreadStatus2, CONSULT_THREAD_TITLE_MAX2, consultThreadTitle2, consultThreadSummary2, listConsultThreadsQuery2, listConsultThreadsResponse2, createConsultThreadBody2, createConsultThreadResponse2, consultThreadIdParam2, updateConsultThreadBody2, updateConsultThreadResponse2, CONSULT_AWAIT_TIMEOUT_MS2, billingOrgIdParam2, subscriptionItemParams2, spendCapBody2, growthPacksBody2, portalSessionBody2, checkoutSessionBody2, updateBillingCurrencyBody2, invoicesQuery2, planKeySchema2, billingStatusSchema2, billingPlanTypeSchema2, dataUsageCountersSchema2, REKOR_ENTITLEMENT_CONTRACT_VERSION2, entitlementProjectionSchema2, rekorEntitlementRefreshMessageSchema2, downloadBody2, uploadQuery2, signUrlBody2, outboundSchemaQuery2, templateIdParam2, listTemplatesQuery2, deleteTemplateQuery2, templateStatusQuery2, createTemplateBody2, updateTemplateBody2, submitTemplateBody2, testTemplateBody2, contactIdParam2, listContactsQuery2, createContactBody2, updateContactBody2, listIdParam2, listListsQuery2, listListContactsQuery2, createListBody2, updateListBody2, addListContactsBody2, removeListContactsBody2, scheduleIdParam2, listSchedulesQuery2, listExecutionsQuery2, createScheduleBody2, updateScheduleBody2, MAX_RESOURCE_FILE_SIZE2, MAX_10MB_BASE64_ENCODED_BYTES2, MAX_EVAL_ATTACHMENT_ENCODED_BYTES2, MAX_EVAL_ATTACHMENT_CARRIERS2, MAX_EVAL_ATTACHMENT_AGGREGATE_ENCODED_BYTES2, MAX_RESOURCE_ENCODED_BYTES2, MAX_HUB_AS_CODE_RESOURCES2, MAX_HUB_AS_CODE_RESOURCE_FILES2, MAX_RESOURCE_AGGREGATE_ENCODED_BYTES2, MAX_CI_CONFIG_BODY_BYTES2, MAX_CALL_OPENING_CARRIERS2, MAX_CALL_OPENING_AGGREGATE_ENCODED_BYTES2, hubAsCodeStateSchema2, hubAsCodeResourceFileSchema2, hubAsCodeResourceSchema2, uuidPattern2, ciUuidSchema2, boundedHubAsCodeResourcesSchema2, hubAsCodeConfigSchema2, ciPullHubIdParam2, ciBranchParam2, ciPullQuery2, ciHubsQuery2, ciLookupQuery2, ciBranchesQuery2, ciSyncBody2, ciPushBody2, ciDiffBody2, ciPublishBody2, ciPublishPreviewBody2, ciSyncMcpBody2, ciOrgResourcesParam2, orgResourcesConfigSchema2, ciOrgResourcesPushBody2, ciOrgResourcesDiffBody2, CI_APPLY_ENTITY_KINDS2, CI_APPLY_OPERATIONS2, ciApplyErrorBaseSchema2, ciApplyErrorSchema2, ciSyncCountSchema2, ciSyncChangesSchema2, ciSyncWarningSchema2, ciSyncResponseSchema2, VERSION_PART2, MOBILE_APP_VERSION_RE2, mobileAppVersionSchema2, MOBILE_PLATFORMS2, mobilePlatformSchema2, mobileVersionPolicyQuery2, mobileVersionPolicySchema2, mobileVersionPolicyResponse2, adminOrgIdParam2, adminOrgAdminIdParam2, adminUserIdParam2, PRICING_PLAN_ID_RE2, adminPlanIdParam2, adminOrganizationsQuery2, adminUserSearchQuery2, kanbanSlugMigrationQuery2, adjustQuotaBody2, updatePlanBody2, addAdminUserBody2, MAX_VOICE_CALL_MINUTE_OPS2, voiceCallMinuteOps2, updatePlatformConfigBody2, updateFreeOrgLimitBody2, adminScopedTargetShape2, adminScopedTargetBody2, BRANCHING_ORPHAN_ENTITY_TYPES2, BRANCHING_ORPHAN_MAX_TARGETS2, adminRepairBranchingOrphansBody2, adminRepairLegacyOrgGrantsBody2, adminRepairCompedPlansBody2, updatePricingPlanBody2, dataExplorerSearchQuery2, dataExplorerOrgIdParam2, dataExplorerHubIdParam2, dataExplorerConvIdParam2, dataExplorerDoInstancesQuery2, dataExplorerNsIdParam2, dataExplorerKvKeysBody2, dataExplorerKvKeyBody2, uuidOrHexId2, dataExplorerDeleteOrgParam2, dataExplorerDeleteHubParam2, dataExplorerDeleteConvParam2, dataExplorerDeleteUserParam2, dataExplorerDeleteQuery2, dataExplorerKvDeleteBody2, pitrDoNamespace2, pitrBookmarkParam2, pitrRestoreBody2, healthSamplingTriggerBody2, dataExplorerDebugDoType2, DEBUG_READ_MAX_LIMIT2, DEBUG_READ_DEFAULT_LIMIT2, DEBUG_DO_HEX_PREFIX2, debugDoEntityId2, debugTableName2, dataExplorerDebugTablesParam2, dataExplorerDebugRowsParam2, dataExplorerDebugRowsQuery2, dataExplorerDebugAnalyticsTable2, debugUuid2, dataExplorerDebugAnalyticsRowsParam2, dataExplorerDebugAnalyticsRowsQuery2, debugHubConvParam2, debugMessageIdQuery2, sandboxEgressPolicy2, SANDBOX_EXEC_MAX_CMD_LENGTH2, SANDBOX_EXEC_MAX_ALLOWLIST2, SANDBOX_EXEC_MAX_TIMEOUT_MS2, adminSandboxExecBody2, META_ENTITY_ID_PATTERN2, metaEntityId2, whatsappCallbackBody2, authMeResponse2, wsTicketResponse2, sessionCheckResponse2, logoutResponse2, magicCodeSendBody2, magicCodeSendResponse2, magicCodeVerifyBody2, magicCodeVerifyResponse2, passwordLoginBody2, browserParams2, browserFoldersQuery2, browserFilesQuery2, stateOperationBody2, conversationListResourcesQuery2, conversationReadResourceQuery2, listPendingSchedulesQuery2, listHubAggregateSchedulesQuery2, reportSourceSchema2, intakeReportSourceSchema2, reportClassificationSchema2, reportStatusSchema2, reportLocaleSchema2, reportMessageAuthorRoleSchema2, reportMessageSchema2, sentryRefStatusSchema2, createReportBody2, editReportBody2, reporterReportSummarySchema2, reporterListResponseSchema2, getReportResponseSchema2, reporterTransitionResponseSchema2, contestReportBody2, reporterListQuery2, listReportsQuery2, GITHUB_ISSUE_URL_REGEX2, githubIssueUrlSchema2, transitionReportBody2, groupReportsBody2, holdReportBody2, clickhouseReadyResponse2, bootstrapQuery2, requestSnapshotChunkMessage2, MAX_NAME_LENGTH3, MAX_VALUE_LENGTH2, MAX_TAGS2, MAX_TAG_LENGTH2, MAX_SCOPE_HUBS2, MAX_SCOPE_TAGS2, vaultSecretScopeSchema2, vaultCreateBody2, vaultUpdateBody2, PERMISSIONS2, MAX_NAME_LENGTH22, MAX_HUBS_PER_GRANT2, MAX_HUB_TAGS_PER_GRANT2, MAX_GRANTS2, permissionEnum2, grantScopeSchema2, grantSchema2, createTokenBody2, tokenOrgIdParam2, tokenGrantScopeSchema2, tokenGrantSchema2, tokenMetadataSchema2, listTokensResponse2, createTokenResponse2, orgTokenSummarySchema2, listOrgTokensResponse2, invitePreviewQuery2, invitePreviewResponse2, jsonSchemaSchema2, hubUserIdentity2, stateValueEntry2, getHubUserContextResponse2, updateHubUserBody2, updateHubUserResponse2, unlockHubUserNameResponse2, stateResetParams2, stateResetResponse2, hubAlertsParam2, hubAlertSeverity2, hubAlert2, hubAlertsListResponse2, noticeSeveritySchema2, noticeStatusSchema2, NOTICE_SCOPE_REGEX2, noticeScopeSchema2, noticeLinkSchema2, createNoticeBody2, updateNoticeBody2, listNoticesQuery2, noticeIdParamSchema2, ADMIN_SKILL_NAME_REGEX2, adminSkillNameParam2, rekorBaseChangeMessageSchema2, WAYAI_WORKSPACE_LAYOUT, decisionAnswerSchema, decisionsResponseSchema;
14613
+ var UUID_RE, HEX_RE, WORKOS_ID_RE, OPAQUE_SECRET_RE, BASE64_SECRET_RE, BASE64_MARKER_RE, TOKEN_RE, SENSITIVE_FIELDS, SENSITIVE_KEY_ALTERNATION, SENSITIVE_KEY_PATTERN, JSON_CREDENTIAL_RE, QUERY_CREDENTIAL_RE, REDACTED, PROVIDER_TOKEN_RE, APP_ERROR_BRAND, AppError, LLM_RATE_LIMIT_BRAND, LlmRateLimitError, LLM_PROVIDER_HTTP_BRAND, LlmProviderHttpError, LLM_PROVIDER_CONTENT_BRAND, LlmProviderContentError, LLM_PROVIDER_TIMEOUT_BRAND, LlmProviderTimeoutError, ExternalServiceError, CHANNEL_PROVIDER_HTTP_BRAND, ChannelProviderHttpError, MEDIA_PROVIDER_HTTP_BRAND, MediaProviderHttpError, REKOR_ACTOR_TYPE_HEADER2, REKOR_ACTOR_ID_HEADER2, REKOR_ACTOR_LABEL_HEADER2, REKOR_ACTOR_ORG_HEADER2, REKOR_ACTOR_ADMIN_HEADER2, REKOR_CLIENT_HEADER2, REKOR_TOOL_ID_HEADER2, REKOR_CLIENTS2, rekorClientSchema2, MAX_REKOR_TOOL_ID_LENGTH2, rekorToolIdSchema2, DATA_PROXY_MOUNT2, DATA_PROXY_PREFIX2, DATA_PROXY_ORG_QUERY_PARAM2, MAX_PROVISIONING_BODY_BYTES2, dataProxyQuery2, rekorAttestation2, REQUIRED_REKOR_ATTESTATION_HEADERS2, BASE_DESTRUCTION_MOUNT2, BASE_DESTRUCTION_PREFIX2, BASE_DESTRUCTION_CONFIRM_PATH2, baseDestructionConfirmBody2, BASE_DESTRUCTION_GRACE_MS2, BASE_DESTRUCTION_CONFIRM_TTL_MS2, BASE_DESTRUCTION_ORG_QUERY_PARAM2, baseDestructionQuery2, baseDestructionParam2, baseDestructionInitiateBody2, baseDestructionStatus2, baseDestructionRequest2, baseDestructionListResponse2, baseDestructionInitiateResponse2, baseDestructionConfirmResponse2, baseDestructionCancelResponse2, ENDPOINT_CONFIGS, AUTH_TYPE2, ORG_CREDENTIAL_AUTH_TYPES2, AUTH_TYPE_DISPLAY2, LEGACY_AUTH_TYPE_MAP2, VALID_AUTH_TYPES2, AGENT_ROLES2, SAFE_USER_ID_REGEX2, SUPPORTED_LOCALES2, uuidSchema2, USER_ID_REGEX2, paginationSchema3, timestampSchema2, idParamSchema2, clientOptionalString2, clientOptionalBoolean2, clientOptionalNumber2, messageAttachment2, MAX_MESSAGE_BODY_BYTES2, MAX_ATTACHMENTS_PER_MESSAGE2, MESSAGE_ENVELOPE_HEADROOM_BYTES2, MAX_AUDIO_FILE_BASE64_BYTES2, primaryRegionSchema2, placementSourceSchema2, orgIdParam2, orgAdminIdParam2, createOrganizationBody2, updateOrganizationBody2, addOrgAdminBody2, SUMMARIZATION_THRESHOLD_MIN2, SUMMARIZATION_THRESHOLD_MAX2, PREVIOUS_CONVERSATIONS_MAX2, FLAG_CONDITION_OPERATORS2, CONFIDENCE_VARIABLE_SUFFIX2, DECISION_SCORE_MIN_LEVELS2, DECISION_SCORE_MAX_LEVELS2, DECISIONS_MODEL_PREFIXES2, DECISION_CAPABLE_AGENT_ROLES2, NATIVE_TOOL_SCHEMAS2, WAYAI_CONNECTOR2, BASE_NATIVE_TOOLS2, NATIVE_TOOLS2, CATALOG_SIDE_EFFECTS2, NATIVE_TOOL_NAMES2, previousConversationsCountField2, summarizationThresholdField2, flagConditionSchema2, MONITOR_TRIGGERS2, monitorTriggerSchema2, MONITOR_FIRING_TRIGGERS2, MONITOR_DELAY_SECONDS_MIN2, MONITOR_IDLE_DELAY_REQUIRED_MESSAGE2, MONITOR_HISTORY_MESSAGES_MAX2, monitorHistoryMessagesSchema2, monitorIncludeToolResultsSchema2, MONITOR_INPUT_SHAPING_KEYS2, MONITOR_INPUT_SHAPING_SCHEMAS2, MONITOR_INPUT_SHAPING_IDLE_MESSAGE2, monitorArgumentSourceSchema2, MONITOR_NOTE_TEMPLATE_MAX2, MONITOR_STEER_NOTE_MAX2, monitorActionSchema2, monitorRuleSchema2, MONITOR_RULE_KEYS2, MONITOR_RULE_SCHEMAS2, MONITOR_RULE_TRIGGERS2, MONITOR_RULE_TRIGGER_MESSAGE2, CALL_UTTERANCE_SPEAKERS2, callUtteranceSpeakerSchema2, MONITOR_CALL_KEYS2, MONITOR_CALL_SCHEMAS2, MONITOR_CALL_KEY_MESSAGE2, CALL_STEERING_MIN_CONFIDENCE2, CALL_UTTERANCE_RULE_NOT_CONFIDENT_MESSAGE2, CALL_UTTERANCE_FALLBACK_MESSAGE2, CALL_UTTERANCE_FLAG_CONDITIONS_MESSAGE2, CALL_STEER_NOTE_BLANK_MESSAGE2, MONITOR_USER_MESSAGE_ACTION_KINDS2, MONITOR_ASSISTANT_REPLY_ACTION_KINDS2, MONITOR_CALL_UTTERANCE_ACTION_KINDS2, INSERT_NOTE_TOOL_NAME2, RUN_MONITOR_TOOL_NAME2, MONITOR_RULE_ALLOWED_NATIVE_TOOLS2, MONITOR_RULE_REENTRY_TOOLS2, MONITOR_RULE_REENTRY_TRACKS2, monitorConfigField2, flagConditionsField2, agentIdParam2, listAgentsQuery2, agentConnectionsQuery2, createAgentBody2, updateAgentBody2, AGENT_PARAMETER_TYPES2, AGENT_PARAMETER_NAME_REGEX2, agentParameterCreateSchema2, MAX_AGENT_PARAMETERS_PER_REQUEST2, createAgentParametersBody2, SLUG_REGEX2, slugSchema2, INVISIBLE_NAME_CHARS2, MAX_KANBAN_STATUSES2, MAX_FOLLOWUPS_PER_STATUS2, MAX_LANES2, MAX_ADDITIONAL_CONTEXT_SCHEMA_BYTES2, RESERVED_TEMPLATE_DUMP_NAME2, kanbanStatusSlugSchema2, followupTypeSchema2, EVENT_RELATIVE_FOLLOWUP_TYPES2, followupTimeUnitSchema2, followupIdSchema2, SELECTABLE_FOLLOWUP_TYPES2, MAX_LINKED_FOLLOWUP_TARGETS_PER_STATUS2, followupSchema2, MAX_OUTCOMES_PER_STATUS2, kanbanOutcomeSchema2, EXCLUSIVE_FLAG_PAIRS2, kanbanStatusSchema2, kanbanStatusesArraySchema2, laneSchema2, lanesArraySchema2, hubIdParam2, hubAdminIdParam2, hubUserIdParam2, hubIdentityIdParam2, hubTeamIdParam2, hubTeamUserDeleteParam2, hubSchemaQuery2, PREVIEW_LABEL_MAX_LENGTH2, MAX_ENDED_INDEX_RETENTION_DAYS2, MAX_EVAL_RETENTION_DAYS2, previewLabelField2, createHubBody2, updateHubBody2, addHubAdminBody2, addHubIdentityAuthorizationBody2, contactDecisionBody2, approveContactBody2, listContactAccessQuery2, createHubTeamBody2, updateHubTeamBody2, addHubTeamUserBody2, reassignHubUserBody2, replicatePreviewBody2, updateChannelTestIdentitiesBody2, claimCodeChannelParam2, claimCodeDeleteParam2, connectionIdParam2, connectorIdParam2, listConnectionsQuery2, deleteConnectionQuery2, addConnectionBody2, editConnectionBody2, PRODUCTION_DIRECT_FIELDS2, setProductionCredentialBody2, registerWhatsappQuery2, registerWhatsappBody2, retryProvisioningQuery2, resendDomainStatusQuery2, PLACEHOLDER_TOKENS2, ALLOWED_TYPES2, SUBSCHEMA_OBJECT_KEYWORDS2, SUBSCHEMA_LIST_KEYWORDS2, SUBSCHEMA_MAP_KEYWORDS2, MAX_SCHEMA_DEPTH2, toolIdParam2, listToolsQuery2, toolAgentQuery2, deleteToolQuery2, toolConnectionsQuery2, nativeToolIdSchema2, CONTEXT_BOUNDARIES2, contextBoundarySchema2, addNativeToolBody2, addMcpToolBody2, createCustomToolBody2, updateCustomToolBody2, updateToolExecutionConfigBody2, initialValueCreateSchema2, initialValueUpdateSchema2, stateIdParam2, listStatesQuery2, stateNameSchema2, createStateBody2, updateStateBody2, reorderStatesBody2, variantAiModeSchema2, experimentStatusSchema2, overlayUpdateSchema2, experimentIdParam2, variantIdParam2, listExperimentsQuery2, listVariantsQuery2, listOverridesQuery2, deleteOverrideQuery2, createExperimentBody2, updateExperimentBody2, setExperimentStatusBody2, createVariantBody2, updateVariantBody2, upsertOverrideBody2, orgTagIdParam2, listOrgTagsQuery2, ORG_TAG_NAME_REGEX2, ORG_TAG_NAME_MAX_LENGTH2, createOrgTagBody2, updateOrgTagBody2, orgCredentialIdParam2, listOrgCredentialsQuery2, createOrgCredentialBody2, updateOrgCredentialBody2, BASE_CREDENTIAL_NAME_MAX2, baseCredentialNameSchema2, createBaseCredentialLinkBody2, baseCredentialLinkParams2, baseCredentialLinkQuery2, orgResourceIdParam2, orgResourceFileIdParam2, orgResourceFolderIdParam2, hubOrgResourceParam2, listOrgResourcesQuery2, orgIdQuery2, createOrgResourceBody2, updateOrgResourceBody2, createOrgResourceFolderBody2, updateOrgResourceFolderBody2, uploadOrgResourceFileBody2, updateOrgResourceFileBody2, uploadOrgSkillZipBody2, linkOrgResourceBody2, resourceIdParam2, listResourcesQuery2, createResourceBody2, updateResourceBody2, syncSkillsBody2, resourceFileIdParam2, listResourceFilesQuery2, createResourceFileBody2, updateResourceFileBody2, uploadResourceFileBody2, uploadSkillZipBody2, resourceFolderIdParam2, listResourceFoldersQuery2, createResourceFolderBody2, updateResourceFolderBody2, agentResourceQuery2, hubResourceQuery2, linkAgentResourceBody2, updateAgentResourceBody2, unlinkAgentResourceQuery2, navItemSchema2, hubCountResetBody2, navItemCountResetBody2, typingBody2, analyticsHubIdParam2, analyticsVariableIdParam2, updateVariablePinBody2, updateAnalyticsViewBody2, NUMERIC_FILTER_OPS2, TEXT_FILTER_OPS2, CATEGORICAL_FILTER_OPS2, VARIABLE_FILTER_OPS2, STRUCTURED_QUERY_OPS2, STRUCTURED_QUERY_AGGREGATIONS2, filterValueSchema2, conversationsBody2, analyticsConversationIdParam2, messagesQuery2, conversationDetailDataQuery2, analyticsDataBody2, structuredQueryBody2, analyticsSqlBody2, analyticsSqlTable2, analyticsSqlSchemaQuery2, EVAL_PACING_PRESET_NAMES2, PACING_INTERVAL_MIN_MS2, PACING_INTERVAL_MAX_MS2, EVAL_MAX_RUNS_PER_SCENARIO2, EVAL_RUN_DEADLINE_MIN_MS2, EVAL_RUN_DEADLINE_MAX_MS2, ISO_UTC_RE2, paginationSchema22, evalIdParam2, sessionIdParam2, scenarioSetIdParam2, hubIdQuery2, evalDateContextSchema2, EVAL_FIXTURE_NAME_MAX_LENGTH2, evalFixtureOverrideSchema2, runSessionQuery2, runJourneyQuery2, EVAL_INPUT_ROLES2, EVAL_INPUT_ROLE_LIST2, ROLE_ECHO_MAX2, EVAL_INITIAL_STATE_SCOPES2, MAX_INITIAL_STATE_ENTRIES2, evalInitialStateEntry2, evalBody2, EVAL_LIST_MAX_LIMIT2, evalListLimit2, getEvalsQuery2, toggleEvalBody2, bulkToggleEvalsBody2, pacingConfigSchema2, EVAL_MAX_SELECTED_SCENARIOS2, evalScenarioSelectionEntrySchema2, evalScenarioSelectionSchema2, sessionConfigSchema2, createSessionBody2, getSessionsQuery2, getSessionResultsQuery2, getSessionRunsQuery2, evalAnalyticsQuery2, getSessionCostQuery2, compareSessionsQuery2, evalsSqlBody2, evalsSqlSchemaQuery2, exportResultsQuery2, validateEvalBody2, hubAgentsQuery2, createScenarioSetBody2, updateScenarioSetBody2, scenarioSetsHubQuery2, createScenarioFromConversationBody2, createJourneyFromConversationBody2, EVAL_ATTACHMENT_HASH_REGEX2, evalAttachmentRef2, turnMayCarryAttachments2, ATTACHMENTS_USER_ONLY_MESSAGE2, journeyIdParam2, journeyToolCallSchema2, journeyTurnSchema2, journeyStepOverrideSchema2, fixtureField2, createJourneyBody2, updateJourneyBody2, evalSessionConfigResponseSchema2, evalSessionResponseSchema2, evalSessionListConfigSchema2, evalSessionListItemSchema2, seedReleaseStatusSchema2, getConversationsQuery2, getMessagesQuery2, appMessageSenderType2, appMessageReceiverType2, apiChannelMessage2, apiChannelMessageBody2, appMessageBody2, appMessageResponse2, CALL_STATUSES2, callStatus2, CALL_END_REASONS2, callEndReason2, CALL_TRANSPORTS2, callTransport2, CALL_PARTICIPANT_TYPES2, callParticipantType2, callInstant2, MAX_SDP_OFFER_LENGTH2, sdpDescription2, sdpOffer2, MAX_CALL_REQUEST_BODY_BYTES2, hubScoped3, callSummaryFields2, callSummary2, callIdParam2, createCallBody2, createCallResponse2, callReadyBody2, callHangupBody2, callStatusQuery2, MAX_REPORTED_DELEGATION_IDS2, callDelegationId2, callDelegationsBody2, callResponse2, MAX_CALL_RECORDING_GAPS2, callRecordingGap2, callRecordingNoteMetadata2, CALL_OPENING_LANGUAGES2, callOpeningLanguage2, CALL_OPENING_MAX_DURATION_MS2, CALL_OPENING_MAX_BYTES2, CALL_OPENING_CAPTION_MAX_CHARS2, CALL_OPENING_CONTENT_TYPES2, callOpeningContentType2, CALL_OPENING_HASH_REGEX2, callOpeningHash2, callOpeningCaption2, storedCallOpening2, MAX_CALL_OPENING_ENCODED_BYTES2, MAX_CALL_OPENING_BODY_BYTES2, agentCallOpeningParams2, putAgentCallOpeningBody2, deleteAgentCallOpeningQuery2, callOpeningParam2, callOpeningQuery2, TTS_VOICE_REPLY_ENABLED_FIELD2, COPILOT_TRIGGER_FIELD2, AUDIO_LANGUAGE_OPTIONS2, whatsapp2, instagram2, resend2, telegram2, API_CHANNEL_DELIVERY_EVENTS2, apiChannel2, OPENAI_REASONING_MODELS2, openai2, anthropic2, googleAiStudio2, openRouter2, xai2, groqStt2, openaiStt2, elevenLabsStt2, openaiTts2, groqTts2, elevenLabsTts2, GEMINI_TTS_VOICES2, googleTts2, wayai2, externalResources2, restApiTool2, mcpServer2, e2b2, CLAUDE_HARNESS_MODELS2, CLAUDE_HARNESS_MODEL_OPTIONS2, HARNESS_MCP_SERVERS_FIELD2, HARNESS_EGRESS_FIELDS2, claudeAgentSdk2, claudeManagedAgents2, rekorMemory2, SPOKEN_LINE_MAX_CHARS2, gptLive2, CONNECTORS2, evalCallInstant2, EVAL_CALL_MIN_SECONDS2, EVAL_CALL_MAX_SECONDS2, EVAL_CALL_SPOKEN_LINE_MAX_CHARS2, hubScoped22, createEvalCallBody2, createEvalCallResponse2, evalCallConversationQuery2, evalCallRecordQuery2, evalCallSpeaker2, evalCallUtterance2, evalCallTurn2, evalCallRecording2, evalCallRecordResponse2, evalCallFinishResponse2, updateUserBody2, updateProfileBody2, pathnameRegex2, updatePreferencesBody2, registerPushTokenBody2, deletePushTokenQuery2, recordAiDisclosureAcceptanceBody2, activityQuery2, deletionModeSchema2, deletionRequestBody2, archiveHubIdParam2, archiveConversationParams2, archiveListQuery2, archiveMessageObservabilityParams2, conversationIdParam2, claimBody2, releaseBody2, transferBody2, closeBody2, additionalContextPayloadSchema2, kanbanUpdateBody2, annotateConversationBody2, observabilityParams2, observabilityListParams2, deleteUserConversationsBody2, deleteUserConversationsResponse2, sendMessageBody2, listConversationsQuery2, flagSourceSchema2, getConversationsResponse2, getConversationDetailParams2, getConversationDetailQuery2, getConversationDetailResponse2, listWhatsAppTemplatesQuery2, sendWhatsAppTemplateBody2, copilotSuggestBody2, copilotSuggestResponse2, CONSULT_THREAD_STATUSES2, consultThreadStatus2, CONSULT_THREAD_TITLE_MAX2, consultThreadTitle2, consultThreadSummary2, listConsultThreadsQuery2, listConsultThreadsResponse2, createConsultThreadBody2, createConsultThreadResponse2, consultThreadIdParam2, updateConsultThreadBody2, updateConsultThreadResponse2, CONSULT_AWAIT_TIMEOUT_MS2, billingOrgIdParam2, subscriptionItemParams2, spendCapBody2, growthPacksBody2, portalSessionBody2, checkoutSessionBody2, updateBillingCurrencyBody2, invoicesQuery2, planKeySchema2, billingStatusSchema2, billingPlanTypeSchema2, dataUsageCountersSchema2, REKOR_ENTITLEMENT_CONTRACT_VERSION2, entitlementProjectionSchema2, rekorEntitlementRefreshMessageSchema2, downloadBody2, uploadQuery2, signUrlBody2, outboundSchemaQuery2, templateIdParam2, listTemplatesQuery2, deleteTemplateQuery2, templateStatusQuery2, createTemplateBody2, updateTemplateBody2, submitTemplateBody2, testTemplateBody2, contactIdParam2, listContactsQuery2, createContactBody2, updateContactBody2, listIdParam2, listListsQuery2, listListContactsQuery2, createListBody2, updateListBody2, addListContactsBody2, removeListContactsBody2, scheduleIdParam2, listSchedulesQuery2, listExecutionsQuery2, createScheduleBody2, updateScheduleBody2, MAX_RESOURCE_FILE_SIZE2, MAX_10MB_BASE64_ENCODED_BYTES2, MAX_EVAL_ATTACHMENT_ENCODED_BYTES2, MAX_EVAL_ATTACHMENT_CARRIERS2, MAX_EVAL_ATTACHMENT_AGGREGATE_ENCODED_BYTES2, MAX_RESOURCE_ENCODED_BYTES2, MAX_HUB_AS_CODE_RESOURCES2, MAX_HUB_AS_CODE_RESOURCE_FILES2, MAX_RESOURCE_AGGREGATE_ENCODED_BYTES2, MAX_CI_CONFIG_BODY_BYTES2, MAX_CALL_OPENING_CARRIERS2, MAX_CALL_OPENING_AGGREGATE_ENCODED_BYTES2, hubAsCodeStateSchema2, hubAsCodeResourceFileSchema2, hubAsCodeResourceSchema2, uuidPattern2, ciUuidSchema2, boundedHubAsCodeResourcesSchema2, hubAsCodeConfigSchema2, ciPullHubIdParam2, ciBranchParam2, ciPullQuery2, ciHubsQuery2, ciLookupQuery2, ciBranchesQuery2, ciSyncBody2, ciPushBody2, ciDiffBody2, ciPublishBody2, ciPublishPreviewBody2, ciSyncMcpBody2, ciOrgResourcesParam2, orgResourcesConfigSchema2, ciOrgResourcesPushBody2, ciOrgResourcesDiffBody2, CI_APPLY_ENTITY_KINDS2, CI_APPLY_OPERATIONS2, ciApplyErrorBaseSchema2, ciApplyErrorSchema2, ciSyncCountSchema2, ciSyncChangesSchema2, ciSyncWarningSchema2, ciSyncResponseSchema2, VERSION_PART2, MOBILE_APP_VERSION_RE2, mobileAppVersionSchema2, MOBILE_PLATFORMS2, mobilePlatformSchema2, mobileVersionPolicyQuery2, mobileVersionPolicySchema2, mobileVersionPolicyResponse2, adminOrgIdParam2, adminOrgAdminIdParam2, adminUserIdParam2, PRICING_PLAN_ID_RE2, adminPlanIdParam2, adminOrganizationsQuery2, adminUserSearchQuery2, kanbanSlugMigrationQuery2, adjustQuotaBody2, updatePlanBody2, addAdminUserBody2, MAX_VOICE_CALL_MINUTE_OPS2, voiceCallMinuteOps2, updatePlatformConfigBody2, updateFreeOrgLimitBody2, adminScopedTargetShape2, adminScopedTargetBody2, BRANCHING_ORPHAN_ENTITY_TYPES2, BRANCHING_ORPHAN_MAX_TARGETS2, adminRepairBranchingOrphansBody2, adminRepairLegacyOrgGrantsBody2, adminRepairCompedPlansBody2, updatePricingPlanBody2, dataExplorerSearchQuery2, dataExplorerOrgIdParam2, dataExplorerHubIdParam2, dataExplorerConvIdParam2, dataExplorerDoInstancesQuery2, dataExplorerNsIdParam2, dataExplorerKvKeysBody2, dataExplorerKvKeyBody2, uuidOrHexId2, dataExplorerDeleteOrgParam2, dataExplorerDeleteHubParam2, dataExplorerDeleteConvParam2, dataExplorerDeleteUserParam2, dataExplorerDeleteQuery2, dataExplorerKvDeleteBody2, pitrDoNamespace2, pitrBookmarkParam2, pitrRestoreBody2, healthSamplingTriggerBody2, dataExplorerDebugDoType2, DEBUG_READ_MAX_LIMIT2, DEBUG_READ_DEFAULT_LIMIT2, DEBUG_DO_HEX_PREFIX2, debugDoEntityId2, debugTableName2, dataExplorerDebugTablesParam2, dataExplorerDebugRowsParam2, dataExplorerDebugRowsQuery2, dataExplorerDebugAnalyticsTable2, debugUuid2, dataExplorerDebugAnalyticsRowsParam2, dataExplorerDebugAnalyticsRowsQuery2, debugHubConvParam2, debugMessageIdQuery2, sandboxEgressPolicy2, SANDBOX_EXEC_MAX_CMD_LENGTH2, SANDBOX_EXEC_MAX_ALLOWLIST2, SANDBOX_EXEC_MAX_TIMEOUT_MS2, adminSandboxExecBody2, META_ENTITY_ID_PATTERN2, metaEntityId2, whatsappCallbackBody2, authMeResponse2, wsTicketResponse2, sessionCheckResponse2, logoutResponse2, magicCodeSendBody2, magicCodeSendResponse2, magicCodeVerifyBody2, magicCodeVerifyResponse2, passwordLoginBody2, stateOperationBody2, conversationListResourcesQuery2, conversationReadResourceQuery2, listPendingSchedulesQuery2, listHubAggregateSchedulesQuery2, reportSourceSchema2, intakeReportSourceSchema2, reportClassificationSchema2, reportStatusSchema2, reportLocaleSchema2, reportMessageAuthorRoleSchema2, reportMessageSchema2, sentryRefStatusSchema2, createReportBody2, editReportBody2, reporterReportSummarySchema2, reporterListResponseSchema2, getReportResponseSchema2, reporterTransitionResponseSchema2, contestReportBody2, reporterListQuery2, listReportsQuery2, GITHUB_ISSUE_URL_REGEX2, githubIssueUrlSchema2, transitionReportBody2, groupReportsBody2, holdReportBody2, clickhouseReadyResponse2, bootstrapQuery2, requestSnapshotChunkMessage2, MAX_NAME_LENGTH3, MAX_VALUE_LENGTH2, MAX_TAGS2, MAX_TAG_LENGTH2, MAX_SCOPE_HUBS2, MAX_SCOPE_TAGS2, vaultSecretScopeSchema2, vaultCreateBody2, vaultUpdateBody2, PERMISSIONS2, MAX_NAME_LENGTH22, MAX_HUBS_PER_GRANT2, MAX_HUB_TAGS_PER_GRANT2, MAX_GRANTS2, permissionEnum2, grantScopeSchema2, grantSchema2, createTokenBody2, tokenOrgIdParam2, tokenGrantScopeSchema2, tokenGrantSchema2, tokenMetadataSchema2, listTokensResponse2, createTokenResponse2, orgTokenSummarySchema2, listOrgTokensResponse2, invitePreviewQuery2, invitePreviewResponse2, jsonSchemaSchema2, hubUserIdentity2, stateValueEntry2, getHubUserContextResponse2, updateHubUserBody2, updateHubUserResponse2, unlockHubUserNameResponse2, stateResetParams2, stateResetResponse2, hubAlertsParam2, hubAlertSeverity2, hubAlert2, hubAlertsListResponse2, noticeSeveritySchema2, noticeStatusSchema2, NOTICE_SCOPE_REGEX2, noticeScopeSchema2, noticeLinkSchema2, createNoticeBody2, updateNoticeBody2, listNoticesQuery2, noticeIdParamSchema2, ADMIN_SKILL_NAME_REGEX2, adminSkillNameParam2, rekorBaseChangeMessageSchema2, DESKTOP_SHELL_VERSION_RE2, DESKTOP_PLATFORMS2, DESKTOP_FLAVORS2, desktopShellInfoSchema2, DESKTOP_PRESENCE_STATES2, desktopPresenceSchema2, desktopUpdateSchema2, DESKTOP_SIGN_IN_URL_MAX_LENGTH2, DESKTOP_APP_PATH_MAX_LENGTH2, desktopAppPathSchema2, DESKTOP_NOTIFICATION_KINDS2, DESKTOP_NOTIFICATION_TITLE_MAX_LENGTH2, DESKTOP_NOTIFICATION_BODY_MAX_LENGTH2, notificationTitleSchema2, notificationBodySchema2, desktopNotificationSchema2, DESKTOP_BADGE_MAX_COUNT2, DESKTOP_BADGE_LABEL_MAX_LENGTH2, desktopBadgeSchema2, desktopNavigateSchema2, desktopSettingsSchema2, desktopSettingsChangeSchema2, desktopBridgeArgsSchemas2, PEOPLE_CONTACT_PAGE_MAX2, PEOPLE_CONTACT_PAGE_DEFAULT2, PEOPLE_CONTACT_EMAIL_MAX_LENGTH2, peopleUserIdSchema2, peopleContactInviteBody2, peopleContactInviteIdParam2, peopleContactUserIdParam2, peopleContactBlockBody2, peopleContactPageQuery2, peopleOutgoingInviteSchema2, peopleContactPersonSchema2, peopleContactSchema2, peopleIncomingInviteSchema2, peopleBlockedUserSchema2, WAYAI_WORKSPACE_LAYOUT, decisionAnswerSchema, decisionsResponseSchema;
14496
14614
  var init_dist = __esm({
14497
14615
  "../../packages/core/dist/index.js"() {
14498
14616
  "use strict";
@@ -14553,6 +14671,7 @@ var init_dist = __esm({
14553
14671
  init_zod();
14554
14672
  init_zod();
14555
14673
  init_zod();
14674
+ init_zod();
14556
14675
  UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
14557
14676
  HEX_RE = /^[0-9a-f]{16,}$/;
14558
14677
  WORKOS_ID_RE = /^(?:user|org)_[0-9A-HJKMNP-TV-Z]{26}$/;
@@ -15023,6 +15142,23 @@ var init_dist = __esm({
15023
15142
  skipAuthenticatedUsers: true,
15024
15143
  userLimitKey: "/api/calls/*"
15025
15144
  },
15145
+ // Contacts between accounts (gh #4661, `routes/api/contacts`). Every caller is signed in, so
15146
+ // the per-IP tier is skipped. The keys are pinned because the paths carry user and invite
15147
+ // ids, which would otherwise give each id a fresh budget. Blocks take their own, lower
15148
+ // budget (#4661 Limits: blocks are rate-limited). The invites-per-day cap and every list
15149
+ // cap are counted in the caller's UserDO, in the same write they bound, not here.
15150
+ "/api/contacts/*": {
15151
+ tier: "STANDARD",
15152
+ userLimit: 60,
15153
+ skipAuthenticatedUsers: true,
15154
+ userLimitKey: "/api/contacts/*"
15155
+ },
15156
+ "/api/contacts/blocks/*": {
15157
+ tier: "STANDARD",
15158
+ userLimit: 30,
15159
+ skipAuthenticatedUsers: true,
15160
+ userLimitKey: "/api/contacts/blocks/*"
15161
+ },
15026
15162
  // App channel - high throughput with user limits
15027
15163
  "/channels/app/*": { tier: "HIGH", userLimit: 500, skipAuthenticatedUsers: true },
15028
15164
  // API channel (api-channel-connector) - machine-to-machine, high throughput
@@ -15085,6 +15221,7 @@ var init_dist = __esm({
15085
15221
  SAFE_USER_ID_REGEX2 = /^[A-Za-z0-9_-]{1,64}$/;
15086
15222
  SUPPORTED_LOCALES2 = ["en", "pt", "es"];
15087
15223
  uuidSchema2 = external_exports.string().uuid();
15224
+ USER_ID_REGEX2 = /^([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|user_[A-Za-z0-9]+)$/i;
15088
15225
  paginationSchema3 = external_exports.object({
15089
15226
  limit: external_exports.coerce.number().int().min(1).max(100).default(50),
15090
15227
  offset: external_exports.coerce.number().int().min(0).default(0)
@@ -19169,6 +19306,10 @@ var init_dist = __esm({
19169
19306
  deletePushTokenQuery2 = external_exports.object({
19170
19307
  token: external_exports.string().min(1).max(512)
19171
19308
  });
19309
+ recordAiDisclosureAcceptanceBody2 = external_exports.object({
19310
+ version: external_exports.number().int().positive(),
19311
+ withdrawn_at_seen: external_exports.string().datetime().nullable().optional()
19312
+ });
19172
19313
  activityQuery2 = external_exports.object({
19173
19314
  limit: external_exports.coerce.number().int().min(1).max(100).optional()
19174
19315
  });
@@ -20139,6 +20280,12 @@ var init_dist = __esm({
20139
20280
  voice_calls_enabled: external_exports.number().int().min(0).max(1).optional(),
20140
20281
  /** The voice-call meter's price (`voiceCallMinuteOps`). `wayai admin voice-calls price` sets it. */
20141
20282
  voice_call_minute_ops: voiceCallMinuteOps2.optional(),
20283
+ /**
20284
+ * The person-to-person threads kill switch (contacts, direct messages and groups; gh #4661).
20285
+ * 0 = off (the default: every `/api/contacts` route answers 404), 1 = on.
20286
+ * `wayai admin threads enable|disable` flips this.
20287
+ */
20288
+ threads_enabled: external_exports.number().int().min(0).max(1).optional(),
20142
20289
  /**
20143
20290
  * The mobile app version policy (`MOBILE_VERSION_POLICY_COLUMNS`), per platform: an install
20144
20291
  * below the minimum is blocked until it updates from the store; one below the recommended
@@ -20291,7 +20438,7 @@ var init_dist = __esm({
20291
20438
  /** Filter to specific DO types (default: all) */
20292
20439
  do_types: external_exports.array(pitrDoNamespace2).optional()
20293
20440
  });
20294
- dataExplorerDebugDoType2 = external_exports.enum(["hub", "org", "conversation", "user", "platform"]);
20441
+ dataExplorerDebugDoType2 = external_exports.enum(["hub", "org", "conversation", "user", "platform", "thread"]);
20295
20442
  DEBUG_READ_MAX_LIMIT2 = 100;
20296
20443
  DEBUG_READ_DEFAULT_LIMIT2 = 20;
20297
20444
  DEBUG_DO_HEX_PREFIX2 = "hex:";
@@ -20428,20 +20575,6 @@ var init_dist = __esm({
20428
20575
  password: external_exports.string().min(1, "Password is required").max(128)
20429
20576
  // bound the payload; WorkOS validates
20430
20577
  });
20431
- browserParams2 = external_exports.object({
20432
- hubId: uuidSchema2,
20433
- resourceId: uuidSchema2
20434
- });
20435
- browserFoldersQuery2 = external_exports.object({
20436
- parent_folder_id: uuidSchema2.optional(),
20437
- search: external_exports.string().max(100).optional()
20438
- });
20439
- browserFilesQuery2 = external_exports.object({
20440
- folder_id: uuidSchema2.optional(),
20441
- search: external_exports.string().max(100).optional(),
20442
- limit: external_exports.coerce.number().int().min(1).max(100).default(50),
20443
- offset: external_exports.coerce.number().int().min(0).max(1e4).default(0)
20444
- });
20445
20578
  stateOperationBody2 = external_exports.object({
20446
20579
  hub_id: external_exports.string().uuid(),
20447
20580
  operation: external_exports.enum(["get", "update", "set_path", "reset"]),
@@ -20868,6 +21001,126 @@ var init_dist = __esm({
20868
21001
  /** Which pane refetches. `base` covers create/delete/promote/config changes. */
20869
21002
  scope: external_exports.enum(["records", "record_types", "files", "base"])
20870
21003
  });
21004
+ DESKTOP_SHELL_VERSION_RE2 = /^(0|[1-9]\d{0,5})\.(0|[1-9]\d{0,5})\.(0|[1-9]\d{0,5})(-[0-9A-Za-z.-]{1,32})?$/;
21005
+ DESKTOP_PLATFORMS2 = ["darwin", "win32"];
21006
+ DESKTOP_FLAVORS2 = ["production", "development"];
21007
+ desktopShellInfoSchema2 = external_exports.object({
21008
+ /** The shell's own release version, independent of the web deploy. */
21009
+ shellVersion: external_exports.string().regex(DESKTOP_SHELL_VERSION_RE2),
21010
+ /** The Electron runtime the shell was built with. */
21011
+ electronVersion: external_exports.string().regex(/^\d{1,4}\.\d{1,4}\.\d{1,4}(-[0-9A-Za-z.-]{1,32})?$/),
21012
+ platform: external_exports.enum(DESKTOP_PLATFORMS2),
21013
+ /** CPU architecture as Node reports it (`arm64`, `x64`). */
21014
+ arch: external_exports.string().regex(/^[a-z0-9_]{1,16}$/),
21015
+ flavor: external_exports.enum(DESKTOP_FLAVORS2),
21016
+ /**
21017
+ * Present, and true, when the shell runs from the Microsoft Store's package: the Store updates it,
21018
+ * and Windows alone opens it at login (the package's startup task, which the person turns on in
21019
+ * Windows' settings). An optional field, so no new `bridgeVersion`: an older page ignores it, and
21020
+ * its absence is every other shell.
21021
+ */
21022
+ store: external_exports.literal(true).optional()
21023
+ });
21024
+ DESKTOP_PRESENCE_STATES2 = ["present", "away"];
21025
+ desktopPresenceSchema2 = external_exports.object({
21026
+ presence: external_exports.enum(DESKTOP_PRESENCE_STATES2),
21027
+ mainWindow: external_exports.object({
21028
+ shown: external_exports.boolean(),
21029
+ focused: external_exports.boolean()
21030
+ })
21031
+ });
21032
+ desktopUpdateSchema2 = external_exports.object({
21033
+ ready: external_exports.object({
21034
+ version: external_exports.string().regex(DESKTOP_SHELL_VERSION_RE2),
21035
+ offerRestart: external_exports.boolean()
21036
+ }).nullable()
21037
+ });
21038
+ DESKTOP_SIGN_IN_URL_MAX_LENGTH2 = 4096;
21039
+ DESKTOP_APP_PATH_MAX_LENGTH2 = 512;
21040
+ desktopAppPathSchema2 = external_exports.string().max(DESKTOP_APP_PATH_MAX_LENGTH2).regex(/^\/(?![/\\])[^\s\\]*$/);
21041
+ DESKTOP_NOTIFICATION_KINDS2 = ["handoff", "message", "summary"];
21042
+ DESKTOP_NOTIFICATION_TITLE_MAX_LENGTH2 = 200;
21043
+ DESKTOP_NOTIFICATION_BODY_MAX_LENGTH2 = 500;
21044
+ notificationTitleSchema2 = external_exports.string().min(1).max(DESKTOP_NOTIFICATION_TITLE_MAX_LENGTH2);
21045
+ notificationBodySchema2 = external_exports.string().max(DESKTOP_NOTIFICATION_BODY_MAX_LENGTH2);
21046
+ desktopNotificationSchema2 = external_exports.object({
21047
+ kind: external_exports.enum(DESKTOP_NOTIFICATION_KINDS2),
21048
+ title: notificationTitleSchema2,
21049
+ body: notificationBodySchema2,
21050
+ path: desktopAppPathSchema2,
21051
+ withoutPreview: external_exports.object({ title: notificationTitleSchema2, body: notificationBodySchema2 }).optional()
21052
+ });
21053
+ DESKTOP_BADGE_MAX_COUNT2 = 1e6;
21054
+ DESKTOP_BADGE_LABEL_MAX_LENGTH2 = 200;
21055
+ desktopBadgeSchema2 = external_exports.object({
21056
+ count: external_exports.number().int().min(0).max(DESKTOP_BADGE_MAX_COUNT2),
21057
+ label: external_exports.string().max(DESKTOP_BADGE_LABEL_MAX_LENGTH2)
21058
+ });
21059
+ desktopNavigateSchema2 = external_exports.object({
21060
+ path: desktopAppPathSchema2
21061
+ });
21062
+ desktopSettingsSchema2 = external_exports.object({
21063
+ /** The app opens when the person logs in to the computer: the operating system's own login item. */
21064
+ openAtLogin: external_exports.boolean(),
21065
+ /** Closing the window keeps the app running in the tray (true), or quits it (false). */
21066
+ closeToTray: external_exports.boolean(),
21067
+ /** The shell shows notifications (true), or none (false). The badge is not a notification. */
21068
+ notifications: external_exports.boolean(),
21069
+ /**
21070
+ * A customer message's notification shows the customer's name and words, where the platform
21071
+ * allows them at all (`desktopShowsCustomerWords`: macOS); elsewhere the shell never shows them.
21072
+ */
21073
+ messagePreview: external_exports.boolean()
21074
+ });
21075
+ desktopSettingsChangeSchema2 = desktopSettingsSchema2.partial().strict().refine((change) => Object.values(change).every((value) => typeof value === "boolean"), {
21076
+ message: "each setting changed is true or false"
21077
+ });
21078
+ desktopBridgeArgsSchemas2 = {
21079
+ getShellInfo: external_exports.tuple([]),
21080
+ getPresence: external_exports.tuple([]),
21081
+ openSignIn: external_exports.tuple([external_exports.string().max(DESKTOP_SIGN_IN_URL_MAX_LENGTH2)]),
21082
+ getUpdate: external_exports.tuple([]),
21083
+ restartToUpdate: external_exports.tuple([]),
21084
+ notify: external_exports.tuple([desktopNotificationSchema2]),
21085
+ setBadge: external_exports.tuple([desktopBadgeSchema2]),
21086
+ clearAll: external_exports.tuple([]),
21087
+ getSettings: external_exports.tuple([]),
21088
+ setSettings: external_exports.tuple([desktopSettingsChangeSchema2])
21089
+ };
21090
+ PEOPLE_CONTACT_PAGE_MAX2 = 100;
21091
+ PEOPLE_CONTACT_PAGE_DEFAULT2 = 50;
21092
+ PEOPLE_CONTACT_EMAIL_MAX_LENGTH2 = 254;
21093
+ peopleUserIdSchema2 = external_exports.string().max(64).regex(USER_ID_REGEX2, "must be a user id");
21094
+ peopleContactInviteBody2 = external_exports.object({
21095
+ email: external_exports.string().trim().max(PEOPLE_CONTACT_EMAIL_MAX_LENGTH2).email()
21096
+ }).strict();
21097
+ peopleContactInviteIdParam2 = external_exports.object({ inviteId: uuidSchema2 });
21098
+ peopleContactUserIdParam2 = external_exports.object({ userId: peopleUserIdSchema2 });
21099
+ peopleContactBlockBody2 = external_exports.object({ user_id: peopleUserIdSchema2 }).strict();
21100
+ peopleContactPageQuery2 = external_exports.object({
21101
+ cursor: external_exports.string().min(1).max(256).optional(),
21102
+ limit: external_exports.coerce.number().int().min(1).max(PEOPLE_CONTACT_PAGE_MAX2).default(PEOPLE_CONTACT_PAGE_DEFAULT2)
21103
+ });
21104
+ peopleOutgoingInviteSchema2 = external_exports.object({
21105
+ invite_id: uuidSchema2,
21106
+ email: external_exports.string(),
21107
+ status: external_exports.literal("sent"),
21108
+ created_at: timestampSchema2,
21109
+ expires_at: timestampSchema2
21110
+ }).strict();
21111
+ peopleContactPersonSchema2 = external_exports.object({
21112
+ user_id: peopleUserIdSchema2,
21113
+ display_name: external_exports.string().nullable(),
21114
+ email: external_exports.string().nullable()
21115
+ }).strict();
21116
+ peopleContactSchema2 = peopleContactPersonSchema2.extend({ contact_since: timestampSchema2 }).strict();
21117
+ peopleIncomingInviteSchema2 = external_exports.object({
21118
+ invite_id: uuidSchema2,
21119
+ inviter: peopleContactPersonSchema2,
21120
+ created_at: timestampSchema2,
21121
+ expires_at: timestampSchema2
21122
+ }).strict();
21123
+ peopleBlockedUserSchema2 = peopleContactPersonSchema2.extend({ blocked_at: timestampSchema2, deleted_user: external_exports.boolean() }).strict();
20871
21124
  WAYAI_WORKSPACE_LAYOUT = {
20872
21125
  /** Product-namespaced root dir at the git root. */
20873
21126
  wsDir: "wayai-ws",
@@ -21190,12 +21443,10 @@ __export(workspace_exports, {
21190
21443
  findHubByFolderName: () => findHubByFolderName,
21191
21444
  findLocalHubFolder: () => findLocalHubFolder,
21192
21445
  findRepoRootSync: () => findRepoRootSync,
21193
- getChangedHubs: () => getChangedHubs,
21194
21446
  getHubFolderSlug: () => getHubFolderSlug,
21195
21447
  isPreviewHub: () => isPreviewHub,
21196
21448
  localHubEnvironment: () => localHubEnvironment,
21197
21449
  resolveActiveHubId: () => resolveActiveHubId,
21198
- resolveExplicitHubPath: () => resolveExplicitHubPath,
21199
21450
  resolveHubFolder: () => resolveHubFolder,
21200
21451
  resolveNewHubForCreate: () => resolveNewHubForCreate,
21201
21452
  resolvePushTarget: () => resolvePushTarget,
@@ -21319,80 +21570,6 @@ function findLocalHubFolder(hubId) {
21319
21570
  const match = scanWorkspaceHubs(workspaceDir).find((h) => h.hubId === hubId);
21320
21571
  return match ? match.hubFolder : null;
21321
21572
  }
21322
- function getChangedHubs(workspaceDir) {
21323
- const gitRoot = findGitRoot();
21324
- if (!gitRoot) return [];
21325
- const relWorkspace = path3.relative(gitRoot, workspaceDir);
21326
- const normalizedRel = path3.normalize(relWorkspace);
21327
- if (normalizedRel.startsWith("..") || path3.isAbsolute(normalizedRel)) {
21328
- return [];
21329
- }
21330
- let statusOutput;
21331
- try {
21332
- statusOutput = execFileSync("git", ["status", "--porcelain", "-u", "--", `${relWorkspace}/`], {
21333
- encoding: "utf-8",
21334
- cwd: gitRoot,
21335
- stdio: ["pipe", "pipe", "pipe"]
21336
- });
21337
- } catch {
21338
- return [];
21339
- }
21340
- const lines = statusOutput.split("\n").filter((l) => l.length > 0);
21341
- const changedFiles = lines.map((line) => {
21342
- const filePart = line.slice(3);
21343
- const arrowIdx = filePart.indexOf(" -> ");
21344
- return arrowIdx >= 0 ? filePart.slice(arrowIdx + 4) : filePart;
21345
- });
21346
- const hubFiles = changedFiles.filter((file) => {
21347
- return file.endsWith("/hub.yaml") || file.endsWith("hub.yaml") || file.endsWith("/wayai.yaml") || file.endsWith("wayai.yaml") || /\/agents\/[^/]+\.(md|yaml)$/.test(file);
21348
- });
21349
- if (hubFiles.length === 0) return [];
21350
- const hubFolders = /* @__PURE__ */ new Set();
21351
- for (const file of hubFiles) {
21352
- const absFile = path3.resolve(gitRoot, file);
21353
- if (file.endsWith("hub.yaml") || file.endsWith("wayai.yaml")) {
21354
- hubFolders.add(path3.dirname(absFile));
21355
- } else if (file.includes("/agents/")) {
21356
- const agentsIndex = absFile.lastIndexOf("/agents/");
21357
- hubFolders.add(absFile.substring(0, agentsIndex));
21358
- }
21359
- }
21360
- const hubs = [];
21361
- for (const hubFolder of hubFolders) {
21362
- if (!isRealDirectory(hubFolder)) continue;
21363
- const meta = readHubYaml(path3.join(hubFolder, "hub.yaml")) || readHubYaml(path3.join(hubFolder, "wayai.yaml"));
21364
- if (meta) {
21365
- hubs.push({ hubFolder, hubId: meta.hubId, hubEnvironment: meta.hubEnvironment });
21366
- }
21367
- }
21368
- return filterPreviewHubs(hubs);
21369
- }
21370
- function resolveExplicitHubPath(hubPath) {
21371
- const parts = hubPath.split("/");
21372
- let hubSegment;
21373
- let orgPrefix;
21374
- if (parts.length === 1) {
21375
- hubSegment = parts[0];
21376
- } else if (parts.length === 2) {
21377
- [orgPrefix, hubSegment] = parts;
21378
- } else {
21379
- throw new Error("Hub path must be hub or org/hub");
21380
- }
21381
- const workspace = detectWorkspace();
21382
- if (workspace) {
21383
- const local = findHubByFolderName(workspace.workspaceDir, hubSegment);
21384
- if (local) {
21385
- return {
21386
- resolved: {
21387
- hubId: local.hubId,
21388
- hubFolder: local.hubFolder,
21389
- hubEnvironment: local.hubEnvironment
21390
- }
21391
- };
21392
- }
21393
- }
21394
- return { segments: { orgPrefix, hub: hubSegment } };
21395
- }
21396
21573
  function findHubByFolderName(workspaceDir, hubFolderName) {
21397
21574
  const all = scanWorkspaceHubs(workspaceDir);
21398
21575
  return all.find((h) => path3.basename(h.hubFolder) === hubFolderName) ?? null;
@@ -22385,7 +22562,7 @@ var init_registry = __esm({
22385
22562
  });
22386
22563
 
22387
22564
  // src/lib/version-cache.ts
22388
- import { existsSync as existsSync3, readFileSync as readFileSync6, writeFileSync as writeFileSync2, mkdirSync as mkdirSync2 } from "fs";
22565
+ import { existsSync as existsSync3, readFileSync as readFileSync5, writeFileSync as writeFileSync2, mkdirSync as mkdirSync2 } from "fs";
22389
22566
  import { dirname as dirname6, join as join7 } from "path";
22390
22567
  import { homedir as homedir2 } from "os";
22391
22568
  function getVersionCachePath(filename = CLI_CACHE_FILE) {
@@ -22395,7 +22572,7 @@ function readVersionCache(filename = CLI_CACHE_FILE) {
22395
22572
  try {
22396
22573
  const path36 = getVersionCachePath(filename);
22397
22574
  if (!existsSync3(path36)) return null;
22398
- const parsed = JSON.parse(readFileSync6(path36, "utf-8"));
22575
+ const parsed = JSON.parse(readFileSync5(path36, "utf-8"));
22399
22576
  if (typeof parsed.lastCheck !== "number") return null;
22400
22577
  if (parsed.latest !== null && typeof parsed.latest !== "string") return null;
22401
22578
  return parsed;
@@ -22435,7 +22612,7 @@ var init_version_cache = __esm({
22435
22612
  });
22436
22613
 
22437
22614
  // src/lib/skill-version.ts
22438
- import { existsSync as existsSync4, readFileSync as readFileSync7 } from "fs";
22615
+ import { existsSync as existsSync4, readFileSync as readFileSync6 } from "fs";
22439
22616
  import { join as join8 } from "path";
22440
22617
  import * as yaml4 from "js-yaml";
22441
22618
  function skillInstallPaths(skillName) {
@@ -22461,7 +22638,7 @@ function findInstalledSkills(projectRoot, paths = SKILL_INSTALL_PATHS) {
22461
22638
  if (!existsSync4(path36)) continue;
22462
22639
  let version = null;
22463
22640
  try {
22464
- version = parseFrontmatterVersion(readFileSync7(path36, "utf-8"));
22641
+ version = parseFrontmatterVersion(readFileSync6(path36, "utf-8"));
22465
22642
  } catch {
22466
22643
  }
22467
22644
  found.push({ path: path36, version });
@@ -22490,8 +22667,6 @@ var init_skill_version = __esm({
22490
22667
  // src/lib/config.ts
22491
22668
  var config_exports = {};
22492
22669
  __export(config_exports, {
22493
- deleteConfig: () => deleteConfig,
22494
- getConfigPath: () => getConfigPath,
22495
22670
  readConfig: () => readConfig,
22496
22671
  writeConfig: () => writeConfig
22497
22672
  });
@@ -22504,9 +22679,6 @@ function configDir() {
22504
22679
  function configPath() {
22505
22680
  return path7.join(configDir(), "config.json");
22506
22681
  }
22507
- function getConfigPath() {
22508
- return configPath();
22509
- }
22510
22682
  function readConfig() {
22511
22683
  if (!fs6.existsSync(configPath())) return null;
22512
22684
  try {
@@ -22542,11 +22714,6 @@ function writeConfig(config) {
22542
22714
  // owner-only read/write
22543
22715
  });
22544
22716
  }
22545
- function deleteConfig() {
22546
- if (fs6.existsSync(configPath())) {
22547
- fs6.unlinkSync(configPath());
22548
- }
22549
- }
22550
22717
  var init_config = __esm({
22551
22718
  "src/lib/config.ts"() {
22552
22719
  "use strict";
@@ -25851,7 +26018,7 @@ var init_client = __esm({
25851
26018
  });
25852
26019
 
25853
26020
  // src/data/helpers.ts
25854
- import { readFileSync as readFileSync15 } from "fs";
26021
+ import { readFileSync as readFileSync14 } from "fs";
25855
26022
  function pathSegment(id, label = "id") {
25856
26023
  if (!isPathSafeId(id)) {
25857
26024
  throw expected(`Invalid ${label}: ${JSON.stringify(id)}. An id may use ${PATH_SAFE_ID_RULE}.`);
@@ -25879,7 +26046,7 @@ function parseData(data, flag) {
25879
26046
  let text = data;
25880
26047
  if (source !== void 0) {
25881
26048
  try {
25882
- text = readFileSync15(source, "utf-8");
26049
+ text = readFileSync14(source, "utf-8");
25883
26050
  } catch (e) {
25884
26051
  throw expected(`${prefix}${source}: ${e instanceof Error ? e.message : "could not be read"}`);
25885
26052
  }
@@ -30369,9 +30536,9 @@ var init_eval_results = __esm({
30369
30536
 
30370
30537
  // src/lib/call-eval/caller-audio.ts
30371
30538
  import { createHash as createHash3 } from "crypto";
30372
- import { mkdirSync as mkdirSync12, readFileSync as readFileSync18, renameSync as renameSync5, writeFileSync as writeFileSync7 } from "fs";
30539
+ import { mkdirSync as mkdirSync12, readFileSync as readFileSync17, renameSync as renameSync5, writeFileSync as writeFileSync7 } from "fs";
30373
30540
  import { homedir as homedir5 } from "os";
30374
- import { dirname as dirname12, isAbsolute as isAbsolute3, join as join27, resolve as resolve9 } from "path";
30541
+ import { dirname as dirname12, isAbsolute as isAbsolute2, join as join27, resolve as resolve9 } from "path";
30375
30542
  function parseWav(buf, name = "clip") {
30376
30543
  if (buf.length < 12 || buf.toString("ascii", 0, 4) !== "RIFF" || buf.toString("ascii", 8, 12) !== "WAVE") {
30377
30544
  throw new Error(`${name} is not a WAV file.`);
@@ -30459,11 +30626,11 @@ var init_caller_audio = __esm({
30459
30626
  }
30460
30627
  describe;
30461
30628
  async clipFor(line) {
30462
- const path36 = line.clip ? isAbsolute3(line.clip) ? line.clip : resolve9(this.planDir, line.clip) : this.dir ? join27(this.dir, `${line.n}.wav`) : null;
30629
+ const path36 = line.clip ? isAbsolute2(line.clip) ? line.clip : resolve9(this.planDir, line.clip) : this.dir ? join27(this.dir, `${line.n}.wav`) : null;
30463
30630
  if (!path36) throw new Error(`Line ${line.n} has no clip: give --clips <dir>, or a "clip" for it in the plan.`);
30464
30631
  let buf;
30465
30632
  try {
30466
- buf = readFileSync18(path36);
30633
+ buf = readFileSync17(path36);
30467
30634
  } catch {
30468
30635
  throw new Error(`Line ${line.n}'s clip ${path36} cannot be read.`);
30469
30636
  }
@@ -30507,7 +30674,7 @@ ${text}`).digest("hex");
30507
30674
  }
30508
30675
  async readOrSynthesize(line, path36) {
30509
30676
  try {
30510
- return pcmClip(readFileSync18(path36));
30677
+ return pcmClip(readFileSync17(path36));
30511
30678
  } catch {
30512
30679
  }
30513
30680
  const res = await this.doFetch("https://api.openai.com/v1/audio/speech", {
@@ -32013,7 +32180,7 @@ __export(eval_call_exports, {
32013
32180
  printEvalCallHelp: () => printEvalCallHelp,
32014
32181
  suiteExitCode: () => suiteExitCode
32015
32182
  });
32016
- import { accessSync, constants as fsConstants, existsSync as existsSync16, readFileSync as readFileSync19, statSync as statSync8, writeFileSync as writeFileSync8 } from "fs";
32183
+ import { accessSync, constants as fsConstants, existsSync as existsSync16, readFileSync as readFileSync18, statSync as statSync8, writeFileSync as writeFileSync8 } from "fs";
32017
32184
  import { dirname as dirname13, resolve as resolve10 } from "path";
32018
32185
  function fail(message) {
32019
32186
  throw new Error(message);
@@ -32171,7 +32338,7 @@ async function evalCallCommand(argv) {
32171
32338
  let plan;
32172
32339
  try {
32173
32340
  options = parseEvalCallArgs(args2);
32174
- plan = options.planPath ? parseCallPlan(JSON.parse(readFileSync19(options.planPath, "utf8"))) : { lines: {} };
32341
+ plan = options.planPath ? parseCallPlan(JSON.parse(readFileSync18(options.planPath, "utf8"))) : { lines: {} };
32175
32342
  } catch (err) {
32176
32343
  console.error(extractApiMessage(err));
32177
32344
  process.exit(1);
@@ -34408,6 +34575,26 @@ async function adminCommand(args2) {
34408
34575
  process.exit(1);
34409
34576
  }
34410
34577
  }
34578
+ if (group === "threads") {
34579
+ if (!sub) {
34580
+ printHelp2();
34581
+ process.exit(1);
34582
+ }
34583
+ switch (sub) {
34584
+ case "enable":
34585
+ await runThreadsToggle(true, flagArgs);
34586
+ return;
34587
+ case "disable":
34588
+ await runThreadsToggle(false, flagArgs);
34589
+ return;
34590
+ case "status":
34591
+ await runPlatformGateStatus(THREADS_GATE, flagArgs);
34592
+ return;
34593
+ default:
34594
+ printHelp2();
34595
+ process.exit(1);
34596
+ }
34597
+ }
34411
34598
  if (group === "voice-calls") {
34412
34599
  if (!sub) {
34413
34600
  printHelp2();
@@ -35155,7 +35342,7 @@ async function runVoiceCallsToggle(enable, flagArgs) {
35155
35342
  } else {
35156
35343
  console.log("Every voice-call surface is dark for every org.");
35157
35344
  }
35158
- console.log(VOICE_CALLS_PROPAGATION_NOTE);
35345
+ console.log(PLATFORM_CONFIG_PROPAGATION_NOTE);
35159
35346
  }
35160
35347
  async function runVoiceCallsStatus(flagArgs) {
35161
35348
  const data = await runPlatformGateStatus(VOICE_CALLS_GATE, flagArgs);
@@ -35195,9 +35382,18 @@ async function runVoiceCallsPrice(flagArgs) {
35195
35382
  console.log(voiceCallPriceLine(data));
35196
35383
  if (raw !== void 0) {
35197
35384
  console.log("Calls that end from now on are billed at this price.");
35198
- console.log(VOICE_CALLS_PROPAGATION_NOTE);
35385
+ console.log(PLATFORM_CONFIG_PROPAGATION_NOTE);
35199
35386
  }
35200
35387
  }
35388
+ async function runThreadsToggle(enable, flagArgs) {
35389
+ await runPlatformGateToggle(THREADS_GATE, enable, flagArgs);
35390
+ if (enable) {
35391
+ console.log("Contacts and threads are open to every signed-in user.");
35392
+ } else {
35393
+ console.log("Every contacts and threads route answers 404.");
35394
+ }
35395
+ console.log(PLATFORM_CONFIG_PROPAGATION_NOTE);
35396
+ }
35201
35397
  function requireFlagValue(flagArgs, index, flag) {
35202
35398
  const v = flagArgs[index];
35203
35399
  if (v === void 0 || v === "" || v.startsWith("--")) {
@@ -35647,6 +35843,10 @@ Usage:
35647
35843
  wayai admin voice-calls price [--ops-per-minute <n>]
35648
35844
  Print, or set, the operations a call bills per connected minute (default 0)
35649
35845
 
35846
+ wayai admin threads enable Flip the platform threads_enabled kill switch ON (contacts, direct messages, groups)
35847
+ wayai admin threads disable Flip it OFF: every /api/contacts route answers 404
35848
+ wayai admin threads status Print the kill switch
35849
+
35650
35850
  Sources:
35651
35851
  do Live DO SQLite (existing conversation, hub config, etc.).
35652
35852
  analytics ClickHouse projections (conversation, message, schedule_event).
@@ -35713,12 +35913,16 @@ Sources:
35713
35913
  voice-call surfaces once configured for them; \`disable\` darkens every
35714
35914
  org. \`price\` is the call meter's price in operations per connected
35715
35915
  call-minute (0 until set). Changes land within about 60 s.
35916
+ threads The threads gate, default-deny: the PLATFORM-wide threads_enabled switch
35917
+ (\`enable\`/\`disable\`) for contacts, direct messages and groups between
35918
+ people. Off, every /api/contacts route answers 404. Changes land within
35919
+ about 60 s.
35716
35920
 
35717
35921
  Types (do): ${VALID_TYPES.join(" | ")}
35718
35922
  Tables (analytics): ${VALID_ANALYTICS_TABLES.join(" | ")}
35719
35923
 
35720
35924
  Entity id forms (do):
35721
- <uuid> Domain entity id (hub_id, org_id, conversation_id, user_id) \u2014
35925
+ <uuid> Domain entity id (hub_id, org_id, conversation_id, user_id, thread_id) \u2014
35722
35926
  hashed via idFromName, same path as every other route.
35723
35927
  hex:<64-hex> Raw CF DO hex id \u2014 resolved via idFromString. Use when you
35724
35928
  only have the CF-level id (e.g. from orphan-audit logs, CF
@@ -35751,7 +35955,7 @@ Audit + rate limit:
35751
35955
  across all sources. Platform-admin grant required.
35752
35956
  `.trim());
35753
35957
  }
35754
- var VALID_TYPES, VALID_ANALYTICS_TABLES, HARNESS_GATE, VOICE_CALLS_GATE, VOICE_CALLS_PROPAGATION_NOTE, VALID_NOTICE_SEVERITIES;
35958
+ var VALID_TYPES, VALID_ANALYTICS_TABLES, HARNESS_GATE, VOICE_CALLS_GATE, THREADS_GATE, PLATFORM_CONFIG_PROPAGATION_NOTE, VALID_NOTICE_SEVERITIES;
35755
35959
  var init_admin = __esm({
35756
35960
  "src/commands/admin.ts"() {
35757
35961
  "use strict";
@@ -35778,7 +35982,13 @@ var init_admin = __esm({
35778
35982
  label: "voice-calls kill switch",
35779
35983
  displayName: "Voice calls"
35780
35984
  };
35781
- VOICE_CALLS_PROPAGATION_NOTE = "Takes effect within about 60 s (the platform-config cache is dropped; KV deletes propagate eventually).";
35985
+ THREADS_GATE = {
35986
+ group: "threads",
35987
+ key: "threads_enabled",
35988
+ label: "threads kill switch",
35989
+ displayName: "Threads"
35990
+ };
35991
+ PLATFORM_CONFIG_PROPAGATION_NOTE = "Takes effect within about 60 s (the platform-config cache is dropped; KV deletes propagate eventually).";
35782
35992
  VALID_NOTICE_SEVERITIES = ["critical", "warn", "info"];
35783
35993
  }
35784
35994
  });
@@ -36418,7 +36628,7 @@ var init_actions = __esm({
36418
36628
 
36419
36629
  // src/data/commands/attachments.ts
36420
36630
  import { Command as Command2 } from "commander";
36421
- import { readFileSync as readFileSync20 } from "fs";
36631
+ import { readFileSync as readFileSync19 } from "fs";
36422
36632
  function findAttachmentByFilename(attachments, filename) {
36423
36633
  return attachments.find((a) => a.key.endsWith(`/${filename}`)) ?? null;
36424
36634
  }
@@ -36459,7 +36669,7 @@ function buildAttachmentsCommand() {
36459
36669
  printOutput(data, outputFormat(this));
36460
36670
  return;
36461
36671
  }
36462
- const body = readFileSync20(opts.file);
36672
+ const body = readFileSync19(opts.file);
36463
36673
  await client.upload(uploadPathFrom(data?.upload_url), body, opts.contentType);
36464
36674
  printOutput({ ...data, uploaded: true }, outputFormat(this));
36465
36675
  });
@@ -36939,7 +37149,7 @@ var init_providers = __esm({
36939
37149
 
36940
37150
  // src/data/commands/report.ts
36941
37151
  import { Command as Command6 } from "commander";
36942
- import { readFileSync as readFileSync21 } from "fs";
37152
+ import { readFileSync as readFileSync20 } from "fs";
36943
37153
  import { dirname as dirname15, join as join32 } from "path";
36944
37154
  import { fileURLToPath as fileURLToPath2 } from "url";
36945
37155
  function resolveCliVersion() {
@@ -36948,7 +37158,7 @@ function resolveCliVersion() {
36948
37158
  join32(here, "..", "..", "..", "package.json")
36949
37159
  ]) {
36950
37160
  try {
36951
- const version = JSON.parse(readFileSync21(candidate, "utf-8")).version;
37161
+ const version = JSON.parse(readFileSync20(candidate, "utf-8")).version;
36952
37162
  if (typeof version === "string" && version) return version;
36953
37163
  } catch {
36954
37164
  }
@@ -37150,7 +37360,7 @@ var init_report3 = __esm({
37150
37360
 
37151
37361
  // src/data/commands/credentials.ts
37152
37362
  import { Command as Command7 } from "commander";
37153
- import { readFileSync as readFileSync22 } from "fs";
37363
+ import { readFileSync as readFileSync21 } from "fs";
37154
37364
  function withValueSourceOptions(cmd, what) {
37155
37365
  return cmd.option(
37156
37366
  "--file <path>",
@@ -37163,7 +37373,7 @@ async function resolveValue(opts, label) {
37163
37373
  throw expected("--file cannot be combined with --value-stdin or --value-prompt \u2014 pass one.");
37164
37374
  }
37165
37375
  try {
37166
- return readFileSync22(opts.file).toString("base64");
37376
+ return readFileSync21(opts.file).toString("base64");
37167
37377
  } catch (e) {
37168
37378
  throw expected(`--file ${opts.file}: ${e instanceof Error ? e.message : "could not be read"}`);
37169
37379
  }
@@ -37312,7 +37522,7 @@ var init_credentials = __esm({
37312
37522
 
37313
37523
  // src/data/commands/sql.ts
37314
37524
  import { Command as Command8 } from "commander";
37315
- import { readFileSync as readFileSync23 } from "fs";
37525
+ import { readFileSync as readFileSync22 } from "fs";
37316
37526
  function buildBasesSqlCommand() {
37317
37527
  return withBaseOption(new Command8("sql")).description("Execute a read-only SQL query against base data").argument("[query]", "SQL query (SELECT only)").option("--file <path>", "Read SQL from a file instead of the argument").option(
37318
37528
  "--param <kv...>",
@@ -37322,7 +37532,7 @@ function buildBasesSqlCommand() {
37322
37532
  let query;
37323
37533
  if (opts.file) {
37324
37534
  try {
37325
- query = readFileSync23(opts.file, "utf-8").trim();
37535
+ query = readFileSync22(opts.file, "utf-8").trim();
37326
37536
  } catch (e) {
37327
37537
  throw expected(`--file ${opts.file}: ${e instanceof Error ? e.message : "could not be read"}`);
37328
37538
  }
@@ -37977,7 +38187,7 @@ var init_file_types = __esm({
37977
38187
 
37978
38188
  // src/data/commands/files.ts
37979
38189
  import { Command as Command12 } from "commander";
37980
- import { readFileSync as readFileSync24, writeFileSync as writeFileSync12 } from "fs";
38190
+ import { readFileSync as readFileSync23, writeFileSync as writeFileSync12 } from "fs";
37981
38191
  import { basename as basename20 } from "path";
37982
38192
  function renderFileDiff(fileType, filePath, from, to, d) {
37983
38193
  console.log(sanitizeTerminalText(`${fileType}/${filePath}: v${from} \u2192 v${to}`));
@@ -38026,7 +38236,7 @@ function buildFilesCommand() {
38026
38236
  "Upload a local file to a path (e.g. wayai files put reports q3/summary.pdf --file ./summary.pdf)"
38027
38237
  ).requiredOption("--file <local>", "Local file to upload").option("--content-type <type>", "MIME type", "application/octet-stream").action(async function(fileType, filePath, opts) {
38028
38238
  const base = pathSegment(requireBase(this), "--base");
38029
- const body = readFileSync24(opts.file);
38239
+ const body = readFileSync23(opts.file);
38030
38240
  const client = await createDataClient();
38031
38241
  printOutput(
38032
38242
  await client.upload(
@@ -39075,7 +39285,7 @@ init_errors2();
39075
39285
  init_mask_secrets();
39076
39286
  init_utils();
39077
39287
  init_registry();
39078
- import { readFileSync as readFileSync25 } from "fs";
39288
+ import { readFileSync as readFileSync24 } from "fs";
39079
39289
  import { fileURLToPath as fileURLToPath3 } from "url";
39080
39290
  import { dirname as dirname16, join as join33 } from "path";
39081
39291
 
@@ -39233,7 +39443,7 @@ Run \`wayai admin skill install\` to update.`);
39233
39443
 
39234
39444
  // src/index.ts
39235
39445
  var __dirname = dirname16(fileURLToPath3(import.meta.url));
39236
- var pkg = JSON.parse(readFileSync25(join33(__dirname, "..", "package.json"), "utf-8"));
39446
+ var pkg = JSON.parse(readFileSync24(join33(__dirname, "..", "package.json"), "utf-8"));
39237
39447
  var [, , command, ...args] = process.argv;
39238
39448
  var isBackgroundRefresh = command === REFRESH_COMMAND;
39239
39449
  if (!isBackgroundRefresh) initSentry(command, pkg.version);