@wayai/cli 0.3.96 → 0.3.97
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 +204 -41
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -323,6 +323,11 @@ var init_api_client = __esm({
|
|
|
323
323
|
async adminHarnessMassDestroy(body) {
|
|
324
324
|
return this.request("POST", "/api/admin/harness/mass-destroy", body);
|
|
325
325
|
}
|
|
326
|
+
// Purge dangling hub_team_id references left by a pre-cascade team deletion.
|
|
327
|
+
// Used by `wayai admin hubs repair-team-orphans` (platform-admin gated).
|
|
328
|
+
async adminRepairTeamOrphans(body) {
|
|
329
|
+
return this.request("POST", "/api/admin/hubs/repair-team-orphans", body);
|
|
330
|
+
}
|
|
326
331
|
// Read the platform config (platform-admin gated). Used by `wayai admin harness status`.
|
|
327
332
|
async adminGetConfig() {
|
|
328
333
|
return this.request("GET", "/api/admin/config");
|
|
@@ -5402,7 +5407,7 @@ function findStepBoundaries(transcript) {
|
|
|
5402
5407
|
}
|
|
5403
5408
|
return out;
|
|
5404
5409
|
}
|
|
5405
|
-
var APP_ERROR_BRAND, AppError, LLM_RATE_LIMIT_BRAND, LlmRateLimitError, LLM_PROVIDER_HTTP_BRAND, LlmProviderHttpError, LLM_PROVIDER_TIMEOUT_BRAND, LlmProviderTimeoutError, ExternalServiceError, CHANNEL_PROVIDER_HTTP_BRAND, ChannelProviderHttpError, MEDIA_PROVIDER_HTTP_BRAND, MediaProviderHttpError, AUTH_TYPE, ORG_CREDENTIAL_AUTH_TYPES, AUTH_TYPE_DISPLAY, LEGACY_AUTH_TYPE_MAP, VALID_AUTH_TYPES, AGENT_ROLES, SAFE_USER_ID_REGEX, SUPPORTED_LOCALES, uuidSchema, paginationSchema, timestampSchema, idParamSchema, primaryRegionSchema, placementSourceSchema, orgIdParam, orgAdminIdParam, createOrganizationBody, updateOrganizationBody, addOrgAdminBody, SUMMARIZATION_THRESHOLD_MIN, SUMMARIZATION_THRESHOLD_MAX, summarizationThresholdField, monitorConfigField, 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, followupSchema, EXCLUSIVE_FLAG_PAIRS, kanbanStatusSchema, kanbanStatusesArraySchema, laneSchema, lanesArraySchema, hubIdParam, hubAdminIdParam, hubUserIdParam, hubIdentityIdParam, hubTeamIdParam, hubTeamUserDeleteParam, hubSchemaQuery, PREVIEW_LABEL_MAX_LENGTH, previewLabelField, createHubBody, updateHubBody, addHubAdminBody, addHubIdentityAuthorizationBody, contactDecisionBody, approveContactBody, listContactAccessQuery, createHubTeamBody, updateHubTeamBody, addHubTeamUserBody, reassignHubUserBody, replicatePreviewBody, 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, 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, createOrgTagBody, updateOrgTagBody, orgCredentialIdParam, listOrgCredentialsQuery, createOrgCredentialBody, updateOrgCredentialBody, 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, analyticsSqlSchemaQuery, EVAL_PACING_PRESET_NAMES, PACING_INTERVAL_MIN_MS, PACING_INTERVAL_MAX_MS, EVAL_RUN_DEADLINE_MIN_MS, EVAL_RUN_DEADLINE_MAX_MS, paginationSchema2, evalIdParam, sessionIdParam, scenarioSetIdParam, hubIdQuery, createEvalBody, updateEvalBody, getEvalsQuery, toggleEvalBody, bulkToggleEvalsBody, pacingConfigSchema, sessionConfigSchema, createSessionBody, getSessionsQuery, getSessionResultsQuery, getSessionRunsQuery, evalAnalyticsQuery, getSessionCostQuery, compareSessionsQuery, evalsSqlBody, evalsSqlSchemaQuery, exportResultsQuery, validateEvalBody, hubAgentsQuery, createScenarioSetBody, updateScenarioSetBody, scenarioSetsHubQuery, createScenarioFromConversationBody, createJourneyFromConversationBody, journeyIdParam, journeyToolCallSchema, journeyTurnSchema, journeyStepOverrideSchema, fixtureField, createJourneyBody, updateJourneyBody, getConversationsQuery, getMessagesQuery, updateUserBody, updateProfileBody, pathnameRegex, updatePreferencesBody, registerPushTokenBody, deletePushTokenQuery, activityQuery, deletionModeSchema, deletionRequestBody, archiveHubIdParam, archiveConversationParams, archiveListQuery, archiveMessageObservabilityParams, conversationIdParam, claimBody, releaseBody, transferBody, closeBody, additionalContextPayloadSchema, kanbanUpdateBody, annotateConversationBody, observabilityParams, observabilityListParams, deleteUserConversationsBody, sendMessageBody, listConversationsQuery, getConversationDetailParams, getConversationDetailQuery, listWhatsAppTemplatesQuery, sendWhatsAppTemplateBody, billingOrgIdParam, subscriptionItemParams, spendCapBody, growthPacksBody, portalSessionBody, checkoutSessionBody, updateBillingCurrencyBody, invoicesQuery, 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, uuidPattern, ciUuidSchema, hubAsCodeConfigSchema, ciPullHubIdParam, ciBranchParam, ciPullQuery, ciHubsQuery, ciLookupQuery, ciBranchesQuery, ciSyncBody, ciPushBody, ciDiffBody, ciPublishBody, ciPublishPreviewBody, ciSyncMcpBody, ciOrgResourcesParam, orgResourcesConfigSchema, ciOrgResourcesPushBody, ciOrgResourcesDiffBody, adminOrgIdParam, adminOrgAdminIdParam, adminUserIdParam, adminPlanIdParam, adminHubIdParam, adminOrganizationsQuery, adminUserSearchQuery, kanbanSlugMigrationQuery, adjustQuotaBody, updatePlanBody, addAdminUserBody, updatePlatformConfigBody, updateFreeOrgLimitBody, adminSetOrgHarnessBody, adminSetHubHarnessBody, adminHarnessMassDestroyBody, updatePricingPlanBody, dataExplorerSearchQuery, dataExplorerOrgIdParam, dataExplorerHubIdParam, dataExplorerConvIdParam, dataExplorerDoInstancesQuery, dataExplorerNsIdParam, dataExplorerKvKeysQuery, dataExplorerKvKeyParam, uuidOrHexId, dataExplorerDeleteOrgParam, dataExplorerDeleteHubParam, dataExplorerDeleteConvParam, dataExplorerDeleteUserParam, dataExplorerDeleteQuery, dataExplorerKvDeleteQuery, 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, whatsappCallbackBody, authMeResponse, wsTicketResponse, sessionCheckResponse, logoutResponse, magicCodeSendBody, magicCodeSendResponse, magicCodeVerifyBody, magicCodeVerifyResponse, browserParams, browserFoldersQuery, browserFilesQuery, stateOperationBody, conversationListResourcesQuery, conversationReadResourceQuery, listPendingSchedulesQuery, listHubAggregateSchedulesQuery, reportSourceSchema, intakeReportSourceSchema, reportClassificationSchema, reportStatusSchema, reportLocaleSchema, reportMessageAuthorRoleSchema, sentryRefStatusSchema, createReportBody, editReportBody, 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, discordTier, discordBillingCycle, discordMetadata, discordOAuthStartResponse, discordOAuthFinalizeBody, discordOAuthFinalizeResponse, discordDisconnectResponse, jsonSchemaSchema, hubUserIdentity, stateValueEntry, getHubUserContextResponse, updateHubUserBody, updateHubUserResponse, unlockHubUserNameResponse, stateResetParams, stateResetResponse, hubAlertsParam, hubAlertSeverity, hubAlert, hubAlertsListResponse, noticeSeveritySchema, noticeStatusSchema, NOTICE_SCOPE_REGEX, noticeScopeSchema, noticeLinkSchema, createNoticeBody, updateNoticeBody, listNoticesQuery, noticeIdParamSchema, templateLocaleSchema, TEMPLATE_SLUG_REGEX, templateSlugSchema, templateStatusSchema, templateFileMapSchema, templateTextSchema, templateUsesEntrySchema, templateUsesSchema, templateYamlLocaleEntry, templateYamlWayaiBlock, templateTagsSchema, templateYamlSchema, templateHeroSchema, templatePushLocaleSchema, templatePushBody, templateListQuery, templateSlugParam, templateDetailQuery, ADMIN_SKILL_NAME_REGEX, adminSkillNameParam, WAYAI_WORKSPACE_LAYOUT, MAX_RESOURCE_FILE_SIZE;
|
|
5410
|
+
var APP_ERROR_BRAND, AppError, LLM_RATE_LIMIT_BRAND, LlmRateLimitError, LLM_PROVIDER_HTTP_BRAND, LlmProviderHttpError, LLM_PROVIDER_TIMEOUT_BRAND, LlmProviderTimeoutError, ExternalServiceError, CHANNEL_PROVIDER_HTTP_BRAND, ChannelProviderHttpError, MEDIA_PROVIDER_HTTP_BRAND, MediaProviderHttpError, AUTH_TYPE, ORG_CREDENTIAL_AUTH_TYPES, AUTH_TYPE_DISPLAY, LEGACY_AUTH_TYPE_MAP, VALID_AUTH_TYPES, AGENT_ROLES, SAFE_USER_ID_REGEX, SUPPORTED_LOCALES, uuidSchema, paginationSchema, timestampSchema, idParamSchema, primaryRegionSchema, placementSourceSchema, orgIdParam, orgAdminIdParam, createOrganizationBody, updateOrganizationBody, addOrgAdminBody, SUMMARIZATION_THRESHOLD_MIN, SUMMARIZATION_THRESHOLD_MAX, summarizationThresholdField, monitorConfigField, 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, followupSchema, EXCLUSIVE_FLAG_PAIRS, kanbanStatusSchema, kanbanStatusesArraySchema, laneSchema, lanesArraySchema, hubIdParam, hubAdminIdParam, hubUserIdParam, hubIdentityIdParam, hubTeamIdParam, hubTeamUserDeleteParam, hubSchemaQuery, PREVIEW_LABEL_MAX_LENGTH, MAX_ENDED_INDEX_RETENTION_DAYS, previewLabelField, createHubBody, updateHubBody, addHubAdminBody, addHubIdentityAuthorizationBody, contactDecisionBody, approveContactBody, listContactAccessQuery, createHubTeamBody, updateHubTeamBody, addHubTeamUserBody, reassignHubUserBody, replicatePreviewBody, 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, 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, createOrgTagBody, updateOrgTagBody, orgCredentialIdParam, listOrgCredentialsQuery, createOrgCredentialBody, updateOrgCredentialBody, 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, analyticsSqlSchemaQuery, EVAL_PACING_PRESET_NAMES, PACING_INTERVAL_MIN_MS, PACING_INTERVAL_MAX_MS, EVAL_RUN_DEADLINE_MIN_MS, EVAL_RUN_DEADLINE_MAX_MS, paginationSchema2, evalIdParam, sessionIdParam, scenarioSetIdParam, hubIdQuery, createEvalBody, updateEvalBody, getEvalsQuery, toggleEvalBody, bulkToggleEvalsBody, pacingConfigSchema, sessionConfigSchema, createSessionBody, getSessionsQuery, getSessionResultsQuery, getSessionRunsQuery, evalAnalyticsQuery, getSessionCostQuery, compareSessionsQuery, evalsSqlBody, evalsSqlSchemaQuery, exportResultsQuery, validateEvalBody, hubAgentsQuery, createScenarioSetBody, updateScenarioSetBody, scenarioSetsHubQuery, createScenarioFromConversationBody, createJourneyFromConversationBody, journeyIdParam, journeyToolCallSchema, journeyTurnSchema, journeyStepOverrideSchema, fixtureField, createJourneyBody, updateJourneyBody, getConversationsQuery, getMessagesQuery, clientOptionalString, clientOptionalBoolean, appMessageSenderType, appMessageReceiverType, appMessageAttachment, MAX_ATTACHMENTS_PER_MESSAGE, appMessageBody, updateUserBody, updateProfileBody, pathnameRegex, updatePreferencesBody, registerPushTokenBody, deletePushTokenQuery, activityQuery, deletionModeSchema, deletionRequestBody, archiveHubIdParam, archiveConversationParams, archiveListQuery, archiveMessageObservabilityParams, conversationIdParam, claimBody, releaseBody, transferBody, closeBody, additionalContextPayloadSchema, kanbanUpdateBody, annotateConversationBody, observabilityParams, observabilityListParams, deleteUserConversationsBody, sendMessageBody, listConversationsQuery, getConversationDetailParams, getConversationDetailQuery, listWhatsAppTemplatesQuery, sendWhatsAppTemplateBody, billingOrgIdParam, subscriptionItemParams, spendCapBody, growthPacksBody, portalSessionBody, checkoutSessionBody, updateBillingCurrencyBody, invoicesQuery, 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, uuidPattern, ciUuidSchema, hubAsCodeConfigSchema, ciPullHubIdParam, ciBranchParam, ciPullQuery, ciHubsQuery, ciLookupQuery, ciBranchesQuery, ciSyncBody, ciPushBody, ciDiffBody, ciPublishBody, ciPublishPreviewBody, ciSyncMcpBody, ciOrgResourcesParam, orgResourcesConfigSchema, ciOrgResourcesPushBody, ciOrgResourcesDiffBody, adminOrgIdParam, adminOrgAdminIdParam, adminUserIdParam, adminPlanIdParam, adminHubIdParam, adminOrganizationsQuery, adminUserSearchQuery, kanbanSlugMigrationQuery, adjustQuotaBody, updatePlanBody, addAdminUserBody, updatePlatformConfigBody, updateFreeOrgLimitBody, adminSetOrgHarnessBody, adminSetHubHarnessBody, adminScopedTargetBody, updatePricingPlanBody, dataExplorerSearchQuery, dataExplorerOrgIdParam, dataExplorerHubIdParam, dataExplorerConvIdParam, dataExplorerDoInstancesQuery, dataExplorerNsIdParam, dataExplorerKvKeysQuery, dataExplorerKvKeyParam, uuidOrHexId, dataExplorerDeleteOrgParam, dataExplorerDeleteHubParam, dataExplorerDeleteConvParam, dataExplorerDeleteUserParam, dataExplorerDeleteQuery, dataExplorerKvDeleteQuery, 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, whatsappCallbackBody, authMeResponse, wsTicketResponse, sessionCheckResponse, logoutResponse, magicCodeSendBody, magicCodeSendResponse, magicCodeVerifyBody, magicCodeVerifyResponse, browserParams, browserFoldersQuery, browserFilesQuery, stateOperationBody, conversationListResourcesQuery, conversationReadResourceQuery, listPendingSchedulesQuery, listHubAggregateSchedulesQuery, reportSourceSchema, intakeReportSourceSchema, reportClassificationSchema, reportStatusSchema, reportLocaleSchema, reportMessageAuthorRoleSchema, sentryRefStatusSchema, createReportBody, editReportBody, 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, discordTier, discordBillingCycle, discordMetadata, discordOAuthStartResponse, discordOAuthFinalizeBody, discordOAuthFinalizeResponse, discordDisconnectResponse, jsonSchemaSchema, hubUserIdentity, stateValueEntry, getHubUserContextResponse, updateHubUserBody, updateHubUserResponse, unlockHubUserNameResponse, stateResetParams, stateResetResponse, hubAlertsParam, hubAlertSeverity, hubAlert, hubAlertsListResponse, noticeSeveritySchema, noticeStatusSchema, NOTICE_SCOPE_REGEX, noticeScopeSchema, noticeLinkSchema, createNoticeBody, updateNoticeBody, listNoticesQuery, noticeIdParamSchema, templateLocaleSchema, TEMPLATE_SLUG_REGEX, templateSlugSchema, templateStatusSchema, templateFileMapSchema, templateTextSchema, templateUsesEntrySchema, templateUsesSchema, templateYamlLocaleEntry, templateYamlWayaiBlock, templateTagsSchema, templateYamlSchema, templateHeroSchema, templatePushLocaleSchema, templatePushBody, templateListQuery, templateSlugParam, templateDetailQuery, ADMIN_SKILL_NAME_REGEX, adminSkillNameParam, WAYAI_WORKSPACE_LAYOUT, MAX_RESOURCE_FILE_SIZE;
|
|
5406
5411
|
var init_dist = __esm({
|
|
5407
5412
|
"../../packages/core/dist/index.js"() {
|
|
5408
5413
|
"use strict";
|
|
@@ -5453,6 +5458,7 @@ var init_dist = __esm({
|
|
|
5453
5458
|
init_zod();
|
|
5454
5459
|
init_zod();
|
|
5455
5460
|
init_zod();
|
|
5461
|
+
init_zod();
|
|
5456
5462
|
APP_ERROR_BRAND = /* @__PURE__ */ Symbol.for("wayai.AppError");
|
|
5457
5463
|
AppError = class extends Error {
|
|
5458
5464
|
constructor(message, code, statusCode = 500, details) {
|
|
@@ -5885,6 +5891,7 @@ var init_dist = __esm({
|
|
|
5885
5891
|
hubTeamUserDeleteParam = external_exports.object({ id: uuidSchema, teamUserId: uuidSchema });
|
|
5886
5892
|
hubSchemaQuery = external_exports.object({ hub_id: uuidSchema });
|
|
5887
5893
|
PREVIEW_LABEL_MAX_LENGTH = 60;
|
|
5894
|
+
MAX_ENDED_INDEX_RETENTION_DAYS = 730;
|
|
5888
5895
|
previewLabelField = external_exports.string().max(PREVIEW_LABEL_MAX_LENGTH).optional().nullable().transform((v) => {
|
|
5889
5896
|
if (v == null) return null;
|
|
5890
5897
|
const trimmed = v.trim();
|
|
@@ -5912,8 +5919,14 @@ var init_dist = __esm({
|
|
|
5912
5919
|
// persisted via the agent path (.passthrough() agent body → HubDO column), not here.
|
|
5913
5920
|
auto_close_inactive_days: external_exports.number().int().min(1).max(180).optional(),
|
|
5914
5921
|
// Per-hub ConversationDO retention window (days) — keeps an ended conversation's DO
|
|
5915
|
-
// alive for post-hoc annotation. Default 7, max 30
|
|
5922
|
+
// alive for post-hoc annotation. Default 7, max 30 — the floor of the retention
|
|
5923
|
+
// chain (≤ ended_index_retention_days ≤ effective storage retention).
|
|
5916
5924
|
conversation_retention_days: external_exports.number().int().min(1).max(30).optional(),
|
|
5925
|
+
// Per-hub ended-conversation index retention window (days) — how long the warm
|
|
5926
|
+
// "Ended" tab + chat-hub continuous history serve a closed conversation before
|
|
5927
|
+
// the cleanup cron reaps its index row. Absent → DEFAULT_ENDED_INDEX_RETENTION_DAYS
|
|
5928
|
+
// (365). Re-clamped to the effective storage retention at reap time.
|
|
5929
|
+
ended_index_retention_days: external_exports.number().int().min(1).max(MAX_ENDED_INDEX_RETENTION_DAYS).optional(),
|
|
5917
5930
|
// Channel contact access control. Enum-validated explicitly (not via passthrough)
|
|
5918
5931
|
// so `language`/`access_approval_role` can't reach the DB with an invalid value.
|
|
5919
5932
|
language: external_exports.enum(["en", "pt", "es"]).optional(),
|
|
@@ -6801,13 +6814,7 @@ var init_dist = __esm({
|
|
|
6801
6814
|
// window). 'archived' = the full closed-conversation history from ClickHouse.
|
|
6802
6815
|
status: external_exports.enum(["active", "agent", "team", "ended", "archived"]).optional(),
|
|
6803
6816
|
page: external_exports.string().regex(/^\d+$/).optional(),
|
|
6804
|
-
page_size: external_exports.string().regex(/^\d+$/).optional()
|
|
6805
|
-
// Cursor for the continuous-history scroll (chat hubs): with status='archived',
|
|
6806
|
-
// return only conversations that ended strictly before this instant. The caller
|
|
6807
|
-
// passes the oldest warm-index `ended_at` so the CH superset excludes the
|
|
6808
|
-
// already-loaded warm slice. UTC ISO-8601 (Timestamps standard) — datetime()
|
|
6809
|
-
// hardens it before it reaches the parameterized CH predicate.
|
|
6810
|
-
before_ended_at: external_exports.string().datetime().optional()
|
|
6817
|
+
page_size: external_exports.string().regex(/^\d+$/).optional()
|
|
6811
6818
|
});
|
|
6812
6819
|
getMessagesQuery = external_exports.object({
|
|
6813
6820
|
hub_id: external_exports.string().uuid(),
|
|
@@ -6823,8 +6830,7 @@ var init_dist = __esm({
|
|
|
6823
6830
|
// Keyset cursor for the newest-first scroll (`page` absent): return only
|
|
6824
6831
|
// messages strictly older than (before_created_at, before_message_id) — the
|
|
6825
6832
|
// oldest currently-loaded VISIBLE message. UTC ISO-8601 (Timestamps standard);
|
|
6826
|
-
// `datetime()` hardens it before the parameterized DO predicate.
|
|
6827
|
-
// `before_ended_at` cursor precedent above.
|
|
6833
|
+
// `datetime()` hardens it before the parameterized DO predicate.
|
|
6828
6834
|
before_created_at: external_exports.string().datetime().optional(),
|
|
6829
6835
|
before_message_id: external_exports.string().uuid().optional(),
|
|
6830
6836
|
/**
|
|
@@ -6843,6 +6849,50 @@ var init_dist = __esm({
|
|
|
6843
6849
|
});
|
|
6844
6850
|
}
|
|
6845
6851
|
});
|
|
6852
|
+
clientOptionalString = external_exports.string().nullish().transform((v) => v ?? void 0);
|
|
6853
|
+
clientOptionalBoolean = external_exports.boolean().nullish().transform((v) => v ?? void 0);
|
|
6854
|
+
appMessageSenderType = external_exports.enum(["user", "team"]);
|
|
6855
|
+
appMessageReceiverType = external_exports.enum(["user", "team", "agent", "assistant"]).transform((v) => v === "assistant" ? "agent" : v);
|
|
6856
|
+
appMessageAttachment = external_exports.object({
|
|
6857
|
+
file_name: external_exports.string(),
|
|
6858
|
+
file_binary: external_exports.string(),
|
|
6859
|
+
file_size: external_exports.number().nullish().transform((v) => v ?? void 0),
|
|
6860
|
+
file_extension: clientOptionalString
|
|
6861
|
+
});
|
|
6862
|
+
MAX_ATTACHMENTS_PER_MESSAGE = 20;
|
|
6863
|
+
appMessageBody = external_exports.object({
|
|
6864
|
+
// Message content — three historical aliases. All optional: an attachment-only
|
|
6865
|
+
// or voice-only message carries no text.
|
|
6866
|
+
content: clientOptionalString,
|
|
6867
|
+
message_text: clientOptionalString,
|
|
6868
|
+
message_body: clientOptionalString,
|
|
6869
|
+
// Conversation context. Ids are plain strings rather than `.uuid()` on purpose:
|
|
6870
|
+
// they are AUTHORIZED downstream, which is the stronger guarantee — a well-formed
|
|
6871
|
+
// uuid belonging to another tenant must fail just as hard as junk. `hub_id` is
|
|
6872
|
+
// gated by `assertHubEndUserAccess` (gh #3286) and `conversation_id` by HubDO's
|
|
6873
|
+
// conversation_index owner check (gh #2781, #3281). The route's own falsy guards
|
|
6874
|
+
// ('hub_id is required') still reject an empty one.
|
|
6875
|
+
hub_id: clientOptionalString,
|
|
6876
|
+
channel_id: clientOptionalString,
|
|
6877
|
+
conversation_id: clientOptionalString,
|
|
6878
|
+
hub_type: external_exports.enum(["chat", "task"]).nullish().transform((v) => v ?? void 0),
|
|
6879
|
+
// Routing.
|
|
6880
|
+
sender_type: appMessageSenderType.nullish().transform((v) => v ?? void 0),
|
|
6881
|
+
receiver_type: appMessageReceiverType.nullish().transform((v) => v ?? void 0),
|
|
6882
|
+
// Only meaningful on a team send, where `validateAppTeamSendContext` proves the
|
|
6883
|
+
// caller may send to this receiver. The end-user branch ignores it — see the
|
|
6884
|
+
// receiver derivation in the route.
|
|
6885
|
+
user_receiver_id: clientOptionalString,
|
|
6886
|
+
is_first_message: clientOptionalBoolean,
|
|
6887
|
+
end_conversation: clientOptionalBoolean,
|
|
6888
|
+
// Pre-generated by the client so the optimistic bubble and the stored row share
|
|
6889
|
+
// a key (transcription live-updates land on the same row instead of duplicating).
|
|
6890
|
+
message_id: clientOptionalString,
|
|
6891
|
+
attachments: external_exports.array(appMessageAttachment).max(MAX_ATTACHMENTS_PER_MESSAGE).nullish().transform((v) => v ?? void 0),
|
|
6892
|
+
// Base64-encoded audio for STT. Size-capped in the route (the cap is a byte
|
|
6893
|
+
// budget tied to the /channels/* bodyLimit, not a shape rule).
|
|
6894
|
+
audio_file: clientOptionalString
|
|
6895
|
+
});
|
|
6846
6896
|
updateUserBody = external_exports.object({
|
|
6847
6897
|
user_language: external_exports.string().optional(),
|
|
6848
6898
|
ui_dark_mode: external_exports.boolean().optional(),
|
|
@@ -7352,7 +7402,7 @@ var init_dist = __esm({
|
|
|
7352
7402
|
adminSetHubHarnessBody = external_exports.object({
|
|
7353
7403
|
harness_enabled: external_exports.number().int().min(0).max(1)
|
|
7354
7404
|
}).strict();
|
|
7355
|
-
|
|
7405
|
+
adminScopedTargetBody = external_exports.object({
|
|
7356
7406
|
scope: external_exports.enum(["all", "org", "hub"]),
|
|
7357
7407
|
org_id: external_exports.string().uuid().optional(),
|
|
7358
7408
|
hub_id: external_exports.string().optional(),
|
|
@@ -12392,7 +12442,7 @@ function isSanitizableSliceFile(path27) {
|
|
|
12392
12442
|
function distinctUsesBackends(uses) {
|
|
12393
12443
|
return [...new Set((uses ?? []).map((u) => u.backend))];
|
|
12394
12444
|
}
|
|
12395
|
-
var uuidSchema2, paginationSchema3, timestampSchema2, idParamSchema2, primaryRegionSchema2, placementSourceSchema2, orgIdParam2, orgAdminIdParam2, createOrganizationBody2, updateOrganizationBody2, addOrgAdminBody2, AUTH_TYPE3, ORG_CREDENTIAL_AUTH_TYPES3, AUTH_TYPE_DISPLAY3, LEGACY_AUTH_TYPE_MAP3, VALID_AUTH_TYPES3, AGENT_ROLES2, SAFE_USER_ID_REGEX2, SUPPORTED_LOCALES2, SUMMARIZATION_THRESHOLD_MIN2, SUMMARIZATION_THRESHOLD_MAX2, summarizationThresholdField2, monitorConfigField2, 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, followupSchema2, EXCLUSIVE_FLAG_PAIRS2, kanbanStatusSchema2, kanbanStatusesArraySchema2, laneSchema2, lanesArraySchema2, hubIdParam2, hubAdminIdParam2, hubUserIdParam2, hubIdentityIdParam2, hubTeamIdParam2, hubTeamUserDeleteParam2, hubSchemaQuery2, PREVIEW_LABEL_MAX_LENGTH2, previewLabelField2, createHubBody2, updateHubBody2, addHubAdminBody2, addHubIdentityAuthorizationBody2, contactDecisionBody2, approveContactBody2, listContactAccessQuery2, createHubTeamBody2, updateHubTeamBody2, addHubTeamUserBody2, reassignHubUserBody2, replicatePreviewBody2, 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, 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, createOrgTagBody2, updateOrgTagBody2, orgCredentialIdParam2, listOrgCredentialsQuery2, createOrgCredentialBody2, updateOrgCredentialBody2, 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, analyticsSqlSchemaQuery2, EVAL_PACING_PRESET_NAMES2, PACING_INTERVAL_MIN_MS2, PACING_INTERVAL_MAX_MS2, EVAL_RUN_DEADLINE_MIN_MS2, EVAL_RUN_DEADLINE_MAX_MS2, paginationSchema22, evalIdParam2, sessionIdParam2, scenarioSetIdParam2, hubIdQuery2, createEvalBody2, updateEvalBody2, getEvalsQuery2, toggleEvalBody2, bulkToggleEvalsBody2, pacingConfigSchema2, sessionConfigSchema2, createSessionBody2, getSessionsQuery2, getSessionResultsQuery2, getSessionRunsQuery2, evalAnalyticsQuery2, getSessionCostQuery2, compareSessionsQuery2, evalsSqlBody2, evalsSqlSchemaQuery2, exportResultsQuery2, validateEvalBody2, hubAgentsQuery2, createScenarioSetBody2, updateScenarioSetBody2, scenarioSetsHubQuery2, createScenarioFromConversationBody2, createJourneyFromConversationBody2, journeyIdParam2, journeyToolCallSchema2, journeyTurnSchema2, journeyStepOverrideSchema2, fixtureField2, createJourneyBody2, updateJourneyBody2, getConversationsQuery2, getMessagesQuery2, updateUserBody2, updateProfileBody2, pathnameRegex2, updatePreferencesBody2, registerPushTokenBody2, deletePushTokenQuery2, activityQuery2, deletionModeSchema2, deletionRequestBody2, archiveHubIdParam2, archiveConversationParams2, archiveListQuery2, archiveMessageObservabilityParams2, conversationIdParam2, claimBody2, releaseBody2, transferBody2, closeBody2, additionalContextPayloadSchema2, kanbanUpdateBody2, annotateConversationBody2, observabilityParams2, observabilityListParams2, deleteUserConversationsBody2, sendMessageBody2, listConversationsQuery2, getConversationDetailParams2, getConversationDetailQuery2, listWhatsAppTemplatesQuery2, sendWhatsAppTemplateBody2, billingOrgIdParam2, subscriptionItemParams2, spendCapBody2, growthPacksBody2, portalSessionBody2, checkoutSessionBody2, updateBillingCurrencyBody2, invoicesQuery2, 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, uuidPattern2, ciUuidSchema2, hubAsCodeConfigSchema2, ciPullHubIdParam2, ciBranchParam2, ciPullQuery2, ciHubsQuery2, ciLookupQuery2, ciBranchesQuery2, ciSyncBody2, ciPushBody2, ciDiffBody2, ciPublishBody2, ciPublishPreviewBody2, ciSyncMcpBody2, ciOrgResourcesParam2, orgResourcesConfigSchema2, ciOrgResourcesPushBody2, ciOrgResourcesDiffBody2, adminOrgIdParam2, adminOrgAdminIdParam2, adminUserIdParam2, adminPlanIdParam2, adminHubIdParam2, adminOrganizationsQuery2, adminUserSearchQuery2, kanbanSlugMigrationQuery2, adjustQuotaBody2, updatePlanBody2, addAdminUserBody2, updatePlatformConfigBody2, updateFreeOrgLimitBody2, adminSetOrgHarnessBody2, adminSetHubHarnessBody2, adminHarnessMassDestroyBody2, updatePricingPlanBody2, dataExplorerSearchQuery2, dataExplorerOrgIdParam2, dataExplorerHubIdParam2, dataExplorerConvIdParam2, dataExplorerDoInstancesQuery2, dataExplorerNsIdParam2, dataExplorerKvKeysQuery2, dataExplorerKvKeyParam2, uuidOrHexId2, dataExplorerDeleteOrgParam2, dataExplorerDeleteHubParam2, dataExplorerDeleteConvParam2, dataExplorerDeleteUserParam2, dataExplorerDeleteQuery2, dataExplorerKvDeleteQuery2, 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, whatsappCallbackBody2, authMeResponse2, wsTicketResponse2, sessionCheckResponse2, logoutResponse2, magicCodeSendBody2, magicCodeSendResponse2, magicCodeVerifyBody2, magicCodeVerifyResponse2, browserParams2, browserFoldersQuery2, browserFilesQuery2, stateOperationBody2, conversationListResourcesQuery2, conversationReadResourceQuery2, listPendingSchedulesQuery2, listHubAggregateSchedulesQuery2, reportSourceSchema2, intakeReportSourceSchema2, reportClassificationSchema2, reportStatusSchema2, reportLocaleSchema2, reportMessageAuthorRoleSchema2, sentryRefStatusSchema2, createReportBody2, editReportBody2, 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, discordTier2, discordBillingCycle2, discordMetadata2, discordOAuthStartResponse2, discordOAuthFinalizeBody2, discordOAuthFinalizeResponse2, discordDisconnectResponse2, jsonSchemaSchema2, hubUserIdentity2, stateValueEntry2, getHubUserContextResponse2, updateHubUserBody2, updateHubUserResponse2, unlockHubUserNameResponse2, stateResetParams2, stateResetResponse2, hubAlertsParam2, hubAlertSeverity2, hubAlert2, hubAlertsListResponse2, noticeSeveritySchema2, noticeStatusSchema2, NOTICE_SCOPE_REGEX2, noticeScopeSchema2, noticeLinkSchema2, createNoticeBody2, updateNoticeBody2, listNoticesQuery2, noticeIdParamSchema2, templateLocaleSchema2, TEMPLATE_SLUG_REGEX2, templateSlugSchema2, templateStatusSchema2, templateFileMapSchema2, TEMPLATE_INSTANCE_ID_KEYS, TEMPLATE_OPAQUE_BLOB_KEYS, TEMPLATE_AUTHOR_DATA_KEYS, templateTextSchema2, templateUsesEntrySchema2, templateUsesSchema2, templateYamlLocaleEntry2, templateYamlWayaiBlock2, templateTagsSchema2, templateYamlSchema2, templateHeroSchema2, templatePushLocaleSchema2, templatePushBody2, templateListQuery2, templateSlugParam2, templateDetailQuery2, ADMIN_SKILL_NAME_REGEX2, adminSkillNameParam2;
|
|
12445
|
+
var uuidSchema2, paginationSchema3, timestampSchema2, idParamSchema2, primaryRegionSchema2, placementSourceSchema2, orgIdParam2, orgAdminIdParam2, createOrganizationBody2, updateOrganizationBody2, addOrgAdminBody2, AUTH_TYPE3, ORG_CREDENTIAL_AUTH_TYPES3, AUTH_TYPE_DISPLAY3, LEGACY_AUTH_TYPE_MAP3, VALID_AUTH_TYPES3, AGENT_ROLES2, SAFE_USER_ID_REGEX2, SUPPORTED_LOCALES2, SUMMARIZATION_THRESHOLD_MIN2, SUMMARIZATION_THRESHOLD_MAX2, summarizationThresholdField2, monitorConfigField2, 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, followupSchema2, EXCLUSIVE_FLAG_PAIRS2, kanbanStatusSchema2, kanbanStatusesArraySchema2, laneSchema2, lanesArraySchema2, hubIdParam2, hubAdminIdParam2, hubUserIdParam2, hubIdentityIdParam2, hubTeamIdParam2, hubTeamUserDeleteParam2, hubSchemaQuery2, PREVIEW_LABEL_MAX_LENGTH2, MAX_ENDED_INDEX_RETENTION_DAYS2, previewLabelField2, createHubBody2, updateHubBody2, addHubAdminBody2, addHubIdentityAuthorizationBody2, contactDecisionBody2, approveContactBody2, listContactAccessQuery2, createHubTeamBody2, updateHubTeamBody2, addHubTeamUserBody2, reassignHubUserBody2, replicatePreviewBody2, 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, 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, createOrgTagBody2, updateOrgTagBody2, orgCredentialIdParam2, listOrgCredentialsQuery2, createOrgCredentialBody2, updateOrgCredentialBody2, 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, analyticsSqlSchemaQuery2, EVAL_PACING_PRESET_NAMES2, PACING_INTERVAL_MIN_MS2, PACING_INTERVAL_MAX_MS2, EVAL_RUN_DEADLINE_MIN_MS2, EVAL_RUN_DEADLINE_MAX_MS2, paginationSchema22, evalIdParam2, sessionIdParam2, scenarioSetIdParam2, hubIdQuery2, createEvalBody2, updateEvalBody2, getEvalsQuery2, toggleEvalBody2, bulkToggleEvalsBody2, pacingConfigSchema2, sessionConfigSchema2, createSessionBody2, getSessionsQuery2, getSessionResultsQuery2, getSessionRunsQuery2, evalAnalyticsQuery2, getSessionCostQuery2, compareSessionsQuery2, evalsSqlBody2, evalsSqlSchemaQuery2, exportResultsQuery2, validateEvalBody2, hubAgentsQuery2, createScenarioSetBody2, updateScenarioSetBody2, scenarioSetsHubQuery2, createScenarioFromConversationBody2, createJourneyFromConversationBody2, journeyIdParam2, journeyToolCallSchema2, journeyTurnSchema2, journeyStepOverrideSchema2, fixtureField2, createJourneyBody2, updateJourneyBody2, getConversationsQuery2, getMessagesQuery2, clientOptionalString2, clientOptionalBoolean2, appMessageSenderType2, appMessageReceiverType2, appMessageAttachment2, MAX_ATTACHMENTS_PER_MESSAGE2, appMessageBody2, updateUserBody2, updateProfileBody2, pathnameRegex2, updatePreferencesBody2, registerPushTokenBody2, deletePushTokenQuery2, activityQuery2, deletionModeSchema2, deletionRequestBody2, archiveHubIdParam2, archiveConversationParams2, archiveListQuery2, archiveMessageObservabilityParams2, conversationIdParam2, claimBody2, releaseBody2, transferBody2, closeBody2, additionalContextPayloadSchema2, kanbanUpdateBody2, annotateConversationBody2, observabilityParams2, observabilityListParams2, deleteUserConversationsBody2, sendMessageBody2, listConversationsQuery2, getConversationDetailParams2, getConversationDetailQuery2, listWhatsAppTemplatesQuery2, sendWhatsAppTemplateBody2, billingOrgIdParam2, subscriptionItemParams2, spendCapBody2, growthPacksBody2, portalSessionBody2, checkoutSessionBody2, updateBillingCurrencyBody2, invoicesQuery2, 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, uuidPattern2, ciUuidSchema2, hubAsCodeConfigSchema2, ciPullHubIdParam2, ciBranchParam2, ciPullQuery2, ciHubsQuery2, ciLookupQuery2, ciBranchesQuery2, ciSyncBody2, ciPushBody2, ciDiffBody2, ciPublishBody2, ciPublishPreviewBody2, ciSyncMcpBody2, ciOrgResourcesParam2, orgResourcesConfigSchema2, ciOrgResourcesPushBody2, ciOrgResourcesDiffBody2, adminOrgIdParam2, adminOrgAdminIdParam2, adminUserIdParam2, adminPlanIdParam2, adminHubIdParam2, adminOrganizationsQuery2, adminUserSearchQuery2, kanbanSlugMigrationQuery2, adjustQuotaBody2, updatePlanBody2, addAdminUserBody2, updatePlatformConfigBody2, updateFreeOrgLimitBody2, adminSetOrgHarnessBody2, adminSetHubHarnessBody2, adminScopedTargetBody2, updatePricingPlanBody2, dataExplorerSearchQuery2, dataExplorerOrgIdParam2, dataExplorerHubIdParam2, dataExplorerConvIdParam2, dataExplorerDoInstancesQuery2, dataExplorerNsIdParam2, dataExplorerKvKeysQuery2, dataExplorerKvKeyParam2, uuidOrHexId2, dataExplorerDeleteOrgParam2, dataExplorerDeleteHubParam2, dataExplorerDeleteConvParam2, dataExplorerDeleteUserParam2, dataExplorerDeleteQuery2, dataExplorerKvDeleteQuery2, 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, whatsappCallbackBody2, authMeResponse2, wsTicketResponse2, sessionCheckResponse2, logoutResponse2, magicCodeSendBody2, magicCodeSendResponse2, magicCodeVerifyBody2, magicCodeVerifyResponse2, browserParams2, browserFoldersQuery2, browserFilesQuery2, stateOperationBody2, conversationListResourcesQuery2, conversationReadResourceQuery2, listPendingSchedulesQuery2, listHubAggregateSchedulesQuery2, reportSourceSchema2, intakeReportSourceSchema2, reportClassificationSchema2, reportStatusSchema2, reportLocaleSchema2, reportMessageAuthorRoleSchema2, sentryRefStatusSchema2, createReportBody2, editReportBody2, 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, discordTier2, discordBillingCycle2, discordMetadata2, discordOAuthStartResponse2, discordOAuthFinalizeBody2, discordOAuthFinalizeResponse2, discordDisconnectResponse2, jsonSchemaSchema2, hubUserIdentity2, stateValueEntry2, getHubUserContextResponse2, updateHubUserBody2, updateHubUserResponse2, unlockHubUserNameResponse2, stateResetParams2, stateResetResponse2, hubAlertsParam2, hubAlertSeverity2, hubAlert2, hubAlertsListResponse2, noticeSeveritySchema2, noticeStatusSchema2, NOTICE_SCOPE_REGEX2, noticeScopeSchema2, noticeLinkSchema2, createNoticeBody2, updateNoticeBody2, listNoticesQuery2, noticeIdParamSchema2, templateLocaleSchema2, TEMPLATE_SLUG_REGEX2, templateSlugSchema2, templateStatusSchema2, templateFileMapSchema2, TEMPLATE_INSTANCE_ID_KEYS, TEMPLATE_OPAQUE_BLOB_KEYS, TEMPLATE_AUTHOR_DATA_KEYS, templateTextSchema2, templateUsesEntrySchema2, templateUsesSchema2, templateYamlLocaleEntry2, templateYamlWayaiBlock2, templateTagsSchema2, templateYamlSchema2, templateHeroSchema2, templatePushLocaleSchema2, templatePushBody2, templateListQuery2, templateSlugParam2, templateDetailQuery2, ADMIN_SKILL_NAME_REGEX2, adminSkillNameParam2;
|
|
12396
12446
|
var init_contracts = __esm({
|
|
12397
12447
|
"../../packages/core/dist/contracts/index.js"() {
|
|
12398
12448
|
"use strict";
|
|
@@ -12443,6 +12493,7 @@ var init_contracts = __esm({
|
|
|
12443
12493
|
init_zod();
|
|
12444
12494
|
init_zod();
|
|
12445
12495
|
init_zod();
|
|
12496
|
+
init_zod();
|
|
12446
12497
|
uuidSchema2 = external_exports.string().uuid();
|
|
12447
12498
|
paginationSchema3 = external_exports.object({
|
|
12448
12499
|
limit: external_exports.coerce.number().int().min(1).max(100).default(50),
|
|
@@ -12790,6 +12841,7 @@ var init_contracts = __esm({
|
|
|
12790
12841
|
hubTeamUserDeleteParam2 = external_exports.object({ id: uuidSchema2, teamUserId: uuidSchema2 });
|
|
12791
12842
|
hubSchemaQuery2 = external_exports.object({ hub_id: uuidSchema2 });
|
|
12792
12843
|
PREVIEW_LABEL_MAX_LENGTH2 = 60;
|
|
12844
|
+
MAX_ENDED_INDEX_RETENTION_DAYS2 = 730;
|
|
12793
12845
|
previewLabelField2 = external_exports.string().max(PREVIEW_LABEL_MAX_LENGTH2).optional().nullable().transform((v) => {
|
|
12794
12846
|
if (v == null) return null;
|
|
12795
12847
|
const trimmed = v.trim();
|
|
@@ -12817,8 +12869,14 @@ var init_contracts = __esm({
|
|
|
12817
12869
|
// persisted via the agent path (.passthrough() agent body → HubDO column), not here.
|
|
12818
12870
|
auto_close_inactive_days: external_exports.number().int().min(1).max(180).optional(),
|
|
12819
12871
|
// Per-hub ConversationDO retention window (days) — keeps an ended conversation's DO
|
|
12820
|
-
// alive for post-hoc annotation. Default 7, max 30
|
|
12872
|
+
// alive for post-hoc annotation. Default 7, max 30 — the floor of the retention
|
|
12873
|
+
// chain (≤ ended_index_retention_days ≤ effective storage retention).
|
|
12821
12874
|
conversation_retention_days: external_exports.number().int().min(1).max(30).optional(),
|
|
12875
|
+
// Per-hub ended-conversation index retention window (days) — how long the warm
|
|
12876
|
+
// "Ended" tab + chat-hub continuous history serve a closed conversation before
|
|
12877
|
+
// the cleanup cron reaps its index row. Absent → DEFAULT_ENDED_INDEX_RETENTION_DAYS
|
|
12878
|
+
// (365). Re-clamped to the effective storage retention at reap time.
|
|
12879
|
+
ended_index_retention_days: external_exports.number().int().min(1).max(MAX_ENDED_INDEX_RETENTION_DAYS2).optional(),
|
|
12822
12880
|
// Channel contact access control. Enum-validated explicitly (not via passthrough)
|
|
12823
12881
|
// so `language`/`access_approval_role` can't reach the DB with an invalid value.
|
|
12824
12882
|
language: external_exports.enum(["en", "pt", "es"]).optional(),
|
|
@@ -13706,13 +13764,7 @@ var init_contracts = __esm({
|
|
|
13706
13764
|
// window). 'archived' = the full closed-conversation history from ClickHouse.
|
|
13707
13765
|
status: external_exports.enum(["active", "agent", "team", "ended", "archived"]).optional(),
|
|
13708
13766
|
page: external_exports.string().regex(/^\d+$/).optional(),
|
|
13709
|
-
page_size: external_exports.string().regex(/^\d+$/).optional()
|
|
13710
|
-
// Cursor for the continuous-history scroll (chat hubs): with status='archived',
|
|
13711
|
-
// return only conversations that ended strictly before this instant. The caller
|
|
13712
|
-
// passes the oldest warm-index `ended_at` so the CH superset excludes the
|
|
13713
|
-
// already-loaded warm slice. UTC ISO-8601 (Timestamps standard) — datetime()
|
|
13714
|
-
// hardens it before it reaches the parameterized CH predicate.
|
|
13715
|
-
before_ended_at: external_exports.string().datetime().optional()
|
|
13767
|
+
page_size: external_exports.string().regex(/^\d+$/).optional()
|
|
13716
13768
|
});
|
|
13717
13769
|
getMessagesQuery2 = external_exports.object({
|
|
13718
13770
|
hub_id: external_exports.string().uuid(),
|
|
@@ -13728,8 +13780,7 @@ var init_contracts = __esm({
|
|
|
13728
13780
|
// Keyset cursor for the newest-first scroll (`page` absent): return only
|
|
13729
13781
|
// messages strictly older than (before_created_at, before_message_id) — the
|
|
13730
13782
|
// oldest currently-loaded VISIBLE message. UTC ISO-8601 (Timestamps standard);
|
|
13731
|
-
// `datetime()` hardens it before the parameterized DO predicate.
|
|
13732
|
-
// `before_ended_at` cursor precedent above.
|
|
13783
|
+
// `datetime()` hardens it before the parameterized DO predicate.
|
|
13733
13784
|
before_created_at: external_exports.string().datetime().optional(),
|
|
13734
13785
|
before_message_id: external_exports.string().uuid().optional(),
|
|
13735
13786
|
/**
|
|
@@ -13748,6 +13799,50 @@ var init_contracts = __esm({
|
|
|
13748
13799
|
});
|
|
13749
13800
|
}
|
|
13750
13801
|
});
|
|
13802
|
+
clientOptionalString2 = external_exports.string().nullish().transform((v) => v ?? void 0);
|
|
13803
|
+
clientOptionalBoolean2 = external_exports.boolean().nullish().transform((v) => v ?? void 0);
|
|
13804
|
+
appMessageSenderType2 = external_exports.enum(["user", "team"]);
|
|
13805
|
+
appMessageReceiverType2 = external_exports.enum(["user", "team", "agent", "assistant"]).transform((v) => v === "assistant" ? "agent" : v);
|
|
13806
|
+
appMessageAttachment2 = external_exports.object({
|
|
13807
|
+
file_name: external_exports.string(),
|
|
13808
|
+
file_binary: external_exports.string(),
|
|
13809
|
+
file_size: external_exports.number().nullish().transform((v) => v ?? void 0),
|
|
13810
|
+
file_extension: clientOptionalString2
|
|
13811
|
+
});
|
|
13812
|
+
MAX_ATTACHMENTS_PER_MESSAGE2 = 20;
|
|
13813
|
+
appMessageBody2 = external_exports.object({
|
|
13814
|
+
// Message content — three historical aliases. All optional: an attachment-only
|
|
13815
|
+
// or voice-only message carries no text.
|
|
13816
|
+
content: clientOptionalString2,
|
|
13817
|
+
message_text: clientOptionalString2,
|
|
13818
|
+
message_body: clientOptionalString2,
|
|
13819
|
+
// Conversation context. Ids are plain strings rather than `.uuid()` on purpose:
|
|
13820
|
+
// they are AUTHORIZED downstream, which is the stronger guarantee — a well-formed
|
|
13821
|
+
// uuid belonging to another tenant must fail just as hard as junk. `hub_id` is
|
|
13822
|
+
// gated by `assertHubEndUserAccess` (gh #3286) and `conversation_id` by HubDO's
|
|
13823
|
+
// conversation_index owner check (gh #2781, #3281). The route's own falsy guards
|
|
13824
|
+
// ('hub_id is required') still reject an empty one.
|
|
13825
|
+
hub_id: clientOptionalString2,
|
|
13826
|
+
channel_id: clientOptionalString2,
|
|
13827
|
+
conversation_id: clientOptionalString2,
|
|
13828
|
+
hub_type: external_exports.enum(["chat", "task"]).nullish().transform((v) => v ?? void 0),
|
|
13829
|
+
// Routing.
|
|
13830
|
+
sender_type: appMessageSenderType2.nullish().transform((v) => v ?? void 0),
|
|
13831
|
+
receiver_type: appMessageReceiverType2.nullish().transform((v) => v ?? void 0),
|
|
13832
|
+
// Only meaningful on a team send, where `validateAppTeamSendContext` proves the
|
|
13833
|
+
// caller may send to this receiver. The end-user branch ignores it — see the
|
|
13834
|
+
// receiver derivation in the route.
|
|
13835
|
+
user_receiver_id: clientOptionalString2,
|
|
13836
|
+
is_first_message: clientOptionalBoolean2,
|
|
13837
|
+
end_conversation: clientOptionalBoolean2,
|
|
13838
|
+
// Pre-generated by the client so the optimistic bubble and the stored row share
|
|
13839
|
+
// a key (transcription live-updates land on the same row instead of duplicating).
|
|
13840
|
+
message_id: clientOptionalString2,
|
|
13841
|
+
attachments: external_exports.array(appMessageAttachment2).max(MAX_ATTACHMENTS_PER_MESSAGE2).nullish().transform((v) => v ?? void 0),
|
|
13842
|
+
// Base64-encoded audio for STT. Size-capped in the route (the cap is a byte
|
|
13843
|
+
// budget tied to the /channels/* bodyLimit, not a shape rule).
|
|
13844
|
+
audio_file: clientOptionalString2
|
|
13845
|
+
});
|
|
13751
13846
|
updateUserBody2 = external_exports.object({
|
|
13752
13847
|
user_language: external_exports.string().optional(),
|
|
13753
13848
|
ui_dark_mode: external_exports.boolean().optional(),
|
|
@@ -14257,7 +14352,7 @@ var init_contracts = __esm({
|
|
|
14257
14352
|
adminSetHubHarnessBody2 = external_exports.object({
|
|
14258
14353
|
harness_enabled: external_exports.number().int().min(0).max(1)
|
|
14259
14354
|
}).strict();
|
|
14260
|
-
|
|
14355
|
+
adminScopedTargetBody2 = external_exports.object({
|
|
14261
14356
|
scope: external_exports.enum(["all", "org", "hub"]),
|
|
14262
14357
|
org_id: external_exports.string().uuid().optional(),
|
|
14263
14358
|
hub_id: external_exports.string().optional(),
|
|
@@ -19161,6 +19256,20 @@ async function adminCommand(args2) {
|
|
|
19161
19256
|
process.exit(1);
|
|
19162
19257
|
}
|
|
19163
19258
|
}
|
|
19259
|
+
if (group === "hubs") {
|
|
19260
|
+
if (!sub) {
|
|
19261
|
+
printHelp2();
|
|
19262
|
+
process.exit(1);
|
|
19263
|
+
}
|
|
19264
|
+
switch (sub) {
|
|
19265
|
+
case "repair-team-orphans":
|
|
19266
|
+
await runRepairTeamOrphans(flagArgs);
|
|
19267
|
+
return;
|
|
19268
|
+
default:
|
|
19269
|
+
printHelp2();
|
|
19270
|
+
process.exit(1);
|
|
19271
|
+
}
|
|
19272
|
+
}
|
|
19164
19273
|
if (group === "harness") {
|
|
19165
19274
|
if (!sub) {
|
|
19166
19275
|
printHelp2();
|
|
@@ -19820,8 +19929,7 @@ async function runSandboxExec(positional, flagArgs) {
|
|
|
19820
19929
|
process.exit(data.exit_code);
|
|
19821
19930
|
}
|
|
19822
19931
|
}
|
|
19823
|
-
|
|
19824
|
-
const USAGE = "wayai admin harness mass-destroy --all | --org <org_id> | --hub <hub_id> [--dry-run] [--yes] [--json]";
|
|
19932
|
+
function parseScopedTargetFlags(flagArgs, usage2) {
|
|
19825
19933
|
let all = false;
|
|
19826
19934
|
let orgId;
|
|
19827
19935
|
let hubId;
|
|
@@ -19854,24 +19962,69 @@ async function runHarnessMassDestroy(flagArgs) {
|
|
|
19854
19962
|
process.exit(1);
|
|
19855
19963
|
}
|
|
19856
19964
|
}
|
|
19857
|
-
|
|
19858
|
-
if (selectorCount !== 1) {
|
|
19965
|
+
if ((all ? 1 : 0) + (orgId ? 1 : 0) + (hubId ? 1 : 0) !== 1) {
|
|
19859
19966
|
console.error("Provide exactly ONE of --all, --org <org_id>, or --hub <hub_id>.");
|
|
19860
|
-
console.error(
|
|
19967
|
+
console.error(usage2);
|
|
19861
19968
|
process.exit(1);
|
|
19862
19969
|
}
|
|
19863
|
-
let body;
|
|
19864
|
-
let targetLabel;
|
|
19865
19970
|
if (all) {
|
|
19866
|
-
body
|
|
19867
|
-
|
|
19868
|
-
|
|
19869
|
-
body
|
|
19870
|
-
|
|
19871
|
-
}
|
|
19872
|
-
|
|
19873
|
-
|
|
19971
|
+
return { body: { scope: "all", dry_run: dryRun }, targetLabel: "ALL hubs (platform-wide)", dryRun, yes, jsonOutput };
|
|
19972
|
+
}
|
|
19973
|
+
if (orgId) {
|
|
19974
|
+
return { body: { scope: "org", org_id: orgId, dry_run: dryRun }, targetLabel: `org ${orgId}`, dryRun, yes, jsonOutput };
|
|
19975
|
+
}
|
|
19976
|
+
return { body: { scope: "hub", hub_id: hubId, dry_run: dryRun }, targetLabel: `hub ${hubId}`, dryRun, yes, jsonOutput };
|
|
19977
|
+
}
|
|
19978
|
+
async function runRepairTeamOrphans(flagArgs) {
|
|
19979
|
+
const USAGE = "wayai admin hubs repair-team-orphans --all | --org <org_id> | --hub <hub_id> [--dry-run] [--yes] [--json]";
|
|
19980
|
+
const { body, targetLabel, dryRun, yes, jsonOutput } = parseScopedTargetFlags(flagArgs, USAGE);
|
|
19981
|
+
if (!dryRun && !yes && !jsonOutput) {
|
|
19982
|
+
console.log(`About to PURGE dangling team references in: ${targetLabel}.`);
|
|
19983
|
+
console.log("Memberships pointing at a deleted team are removed (HubDO + UserDO mirror); conversations pinned to one are unassigned.");
|
|
19984
|
+
console.log("Run with --dry-run first to see what would change.");
|
|
19985
|
+
const ok = await confirm("Proceed?");
|
|
19986
|
+
if (!ok) {
|
|
19987
|
+
console.log("Aborted.");
|
|
19988
|
+
return;
|
|
19989
|
+
}
|
|
19990
|
+
}
|
|
19991
|
+
const { config, accessToken } = await requireAuth();
|
|
19992
|
+
const client = new ApiClient({ apiUrl: config.api_url, accessToken });
|
|
19993
|
+
let response;
|
|
19994
|
+
try {
|
|
19995
|
+
response = await client.adminRepairTeamOrphans(body);
|
|
19996
|
+
} catch (err) {
|
|
19997
|
+
exitOnApiError(err);
|
|
19998
|
+
throw err;
|
|
19999
|
+
}
|
|
20000
|
+
const data = response.data;
|
|
20001
|
+
if (jsonOutput) {
|
|
20002
|
+
console.log(JSON.stringify(data, null, 2));
|
|
20003
|
+
return;
|
|
19874
20004
|
}
|
|
20005
|
+
const mode = data.dry_run ? "DRY RUN \u2014 nothing written" : "repaired";
|
|
20006
|
+
console.log(
|
|
20007
|
+
`repair-team-orphans (${data.scope}) \u2014 ${mode}: hubs_scanned=${data.hubs_scanned} hubs_repaired=${data.hubs_repaired} team_users_removed=${data.team_users_removed}`
|
|
20008
|
+
);
|
|
20009
|
+
if (data.hubs_errored > 0 || data.orgs_errored > 0) {
|
|
20010
|
+
console.log(
|
|
20011
|
+
`WARNING: ${data.orgs_errored} org(s) and ${data.hubs_errored} hub(s) errored and were SKIPPED \u2014 re-run to cover them.`
|
|
20012
|
+
);
|
|
20013
|
+
}
|
|
20014
|
+
if (data.details.length === 0) {
|
|
20015
|
+
console.log("(no dangling team references in scope)");
|
|
20016
|
+
return;
|
|
20017
|
+
}
|
|
20018
|
+
console.log("");
|
|
20019
|
+
console.log("hub_id | dangling_team_ids | team_users_removed");
|
|
20020
|
+
console.log("-------+-------------------+-------------------");
|
|
20021
|
+
for (const d of data.details) {
|
|
20022
|
+
console.log(`${d.hub_id} | ${d.dangling_team_ids.join(",")} | ${d.team_users_removed}`);
|
|
20023
|
+
}
|
|
20024
|
+
}
|
|
20025
|
+
async function runHarnessMassDestroy(flagArgs) {
|
|
20026
|
+
const USAGE = "wayai admin harness mass-destroy --all | --org <org_id> | --hub <hub_id> [--dry-run] [--yes] [--json]";
|
|
20027
|
+
const { body, targetLabel, dryRun, yes, jsonOutput } = parseScopedTargetFlags(flagArgs, USAGE);
|
|
19875
20028
|
if (!dryRun && !yes && !jsonOutput) {
|
|
19876
20029
|
console.log(`About to REAP every live harness sandbox / token / slot in: ${targetLabel}.`);
|
|
19877
20030
|
console.log("This destroys running sandboxes and revokes their tokens. Run with --dry-run first to see the blast radius.");
|
|
@@ -19899,9 +20052,9 @@ async function runHarnessMassDestroy(flagArgs) {
|
|
|
19899
20052
|
console.log(
|
|
19900
20053
|
`harness mass-destroy (${data.scope}) \u2014 ${mode}: hubs_scanned=${data.hubs_scanned} sessions_found=${data.sessions_found} sessions_reaped=${data.sessions_reaped} sandboxes_destroyed=${data.sandboxes_destroyed}`
|
|
19901
20054
|
);
|
|
19902
|
-
if (data.hubs_errored > 0 || data.sessions_errored > 0) {
|
|
20055
|
+
if (data.orgs_errored > 0 || data.hubs_errored > 0 || data.sessions_errored > 0) {
|
|
19903
20056
|
console.log(
|
|
19904
|
-
`WARNING: ${data.hubs_errored} hub(s) and ${data.sessions_errored} session(s) errored and were SKIPPED \u2014 re-run to cover them.`
|
|
20057
|
+
`WARNING: ${data.orgs_errored} org(s), ${data.hubs_errored} hub(s) and ${data.sessions_errored} session(s) errored and were SKIPPED \u2014 re-run to cover them.`
|
|
19905
20058
|
);
|
|
19906
20059
|
}
|
|
19907
20060
|
if (data.details.length === 0) {
|
|
@@ -20438,6 +20591,9 @@ Usage:
|
|
|
20438
20591
|
wayai admin sandbox exec [--cmd "<c>" | <c>] --hub <id> --connection <id> [--egress open|allowlist|isolated] [--allow <host> ...] [--timeout <ms>] [--json]
|
|
20439
20592
|
Run one shell command in a fresh E2B sandbox (create \u2192 run \u2192 destroy) to test the sandbox driver + egress gate
|
|
20440
20593
|
|
|
20594
|
+
wayai admin hubs repair-team-orphans --all | --org <org_id> | --hub <hub_id> [--dry-run] [--yes] [--json]
|
|
20595
|
+
Purge hub_team_id references left dangling by a pre-cascade team deletion (silently empties a support agent's queue). Idempotent \u2014 run --dry-run first
|
|
20596
|
+
|
|
20441
20597
|
wayai admin harness disable [--org <org_id> | --hub <hub_id>]
|
|
20442
20598
|
Flip harness_enabled OFF. No scope = platform (break-glass: per-turn kill switch aborts each harness turn on its next invocation); --org/--hub target that layer of the three-layer rollout gate
|
|
20443
20599
|
wayai admin harness enable [--org <org_id> | --hub <hub_id>]
|
|
@@ -20468,6 +20624,13 @@ Sources:
|
|
|
20468
20624
|
"Gemini degraded" / "Analytics delayed" notices. \`create\` authors one
|
|
20469
20625
|
(severity defaults to info, scope to global); \`list\` reads them
|
|
20470
20626
|
(--status active|resolved); \`resolve\` ends an active notice.
|
|
20627
|
+
hubs Hub data repair. \`repair-team-orphans\` purges hub_team_id references left
|
|
20628
|
+
dangling by a team deletion that predates the deleteHubTeam cascade (a
|
|
20629
|
+
\`wayai push\` / hub-sync that replaced a hub's teams orphaned its
|
|
20630
|
+
memberships). A dangling membership resolves to an EMPTY support scope, so
|
|
20631
|
+
its owner's Support list silently goes blank; a conversation pinned to a
|
|
20632
|
+
deleted team goes invisible to everyone. Idempotent \u2014 a healthy hub writes
|
|
20633
|
+
nothing, so re-running and --all are both safe.
|
|
20471
20634
|
sandbox Run arbitrary code in a fresh E2B sandbox (harness-agents isolation surface).
|
|
20472
20635
|
\`exec\` provisions a sandbox from a named Sandbox connection, runs one
|
|
20473
20636
|
command, and destroys it. Egress omitted \u21D2 deny-all (fail-closed); opt up
|