@wayai/cli 0.3.95 → 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 +236 -37
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
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(),
|
|
@@ -6815,8 +6822,17 @@ var init_dist = __esm({
|
|
|
6815
6822
|
hub_user_id: external_exports.string().optional(),
|
|
6816
6823
|
conversation_id: external_exports.string().uuid().optional(),
|
|
6817
6824
|
message_id: external_exports.string().uuid().optional(),
|
|
6825
|
+
// `page` = LEGACY oldest-first offset paging (deployed page-based clients).
|
|
6826
|
+
// Its PRESENCE selects the legacy read path server-side; a new client omits it
|
|
6827
|
+
// and instead sends `page_size` + (for older pages) the keyset cursor below.
|
|
6818
6828
|
page: external_exports.string().regex(/^\d+$/).optional(),
|
|
6819
6829
|
page_size: external_exports.string().regex(/^\d+$/).optional(),
|
|
6830
|
+
// Keyset cursor for the newest-first scroll (`page` absent): return only
|
|
6831
|
+
// messages strictly older than (before_created_at, before_message_id) — the
|
|
6832
|
+
// oldest currently-loaded VISIBLE message. UTC ISO-8601 (Timestamps standard);
|
|
6833
|
+
// `datetime()` hardens it before the parameterized DO predicate.
|
|
6834
|
+
before_created_at: external_exports.string().datetime().optional(),
|
|
6835
|
+
before_message_id: external_exports.string().uuid().optional(),
|
|
6820
6836
|
/**
|
|
6821
6837
|
* When true AND the caller has support access (hub admin or hub team member),
|
|
6822
6838
|
* internal messages (tool calls, tool results) are included in the response.
|
|
@@ -6824,6 +6840,58 @@ var init_dist = __esm({
|
|
|
6824
6840
|
* authorization boundary.
|
|
6825
6841
|
*/
|
|
6826
6842
|
include_internal: external_exports.union([external_exports.literal("true"), external_exports.literal("false"), external_exports.boolean()]).optional().transform((v) => v === true || v === "true")
|
|
6843
|
+
}).superRefine((q, ctx) => {
|
|
6844
|
+
if (q.before_created_at == null !== (q.before_message_id == null)) {
|
|
6845
|
+
ctx.addIssue({
|
|
6846
|
+
code: external_exports.ZodIssueCode.custom,
|
|
6847
|
+
message: "before_created_at and before_message_id must be provided together",
|
|
6848
|
+
path: [q.before_created_at == null ? "before_created_at" : "before_message_id"]
|
|
6849
|
+
});
|
|
6850
|
+
}
|
|
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
|
|
6827
6895
|
});
|
|
6828
6896
|
updateUserBody = external_exports.object({
|
|
6829
6897
|
user_language: external_exports.string().optional(),
|
|
@@ -7334,7 +7402,7 @@ var init_dist = __esm({
|
|
|
7334
7402
|
adminSetHubHarnessBody = external_exports.object({
|
|
7335
7403
|
harness_enabled: external_exports.number().int().min(0).max(1)
|
|
7336
7404
|
}).strict();
|
|
7337
|
-
|
|
7405
|
+
adminScopedTargetBody = external_exports.object({
|
|
7338
7406
|
scope: external_exports.enum(["all", "org", "hub"]),
|
|
7339
7407
|
org_id: external_exports.string().uuid().optional(),
|
|
7340
7408
|
hub_id: external_exports.string().optional(),
|
|
@@ -12374,7 +12442,7 @@ function isSanitizableSliceFile(path27) {
|
|
|
12374
12442
|
function distinctUsesBackends(uses) {
|
|
12375
12443
|
return [...new Set((uses ?? []).map((u) => u.backend))];
|
|
12376
12444
|
}
|
|
12377
|
-
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;
|
|
12378
12446
|
var init_contracts = __esm({
|
|
12379
12447
|
"../../packages/core/dist/contracts/index.js"() {
|
|
12380
12448
|
"use strict";
|
|
@@ -12425,6 +12493,7 @@ var init_contracts = __esm({
|
|
|
12425
12493
|
init_zod();
|
|
12426
12494
|
init_zod();
|
|
12427
12495
|
init_zod();
|
|
12496
|
+
init_zod();
|
|
12428
12497
|
uuidSchema2 = external_exports.string().uuid();
|
|
12429
12498
|
paginationSchema3 = external_exports.object({
|
|
12430
12499
|
limit: external_exports.coerce.number().int().min(1).max(100).default(50),
|
|
@@ -12772,6 +12841,7 @@ var init_contracts = __esm({
|
|
|
12772
12841
|
hubTeamUserDeleteParam2 = external_exports.object({ id: uuidSchema2, teamUserId: uuidSchema2 });
|
|
12773
12842
|
hubSchemaQuery2 = external_exports.object({ hub_id: uuidSchema2 });
|
|
12774
12843
|
PREVIEW_LABEL_MAX_LENGTH2 = 60;
|
|
12844
|
+
MAX_ENDED_INDEX_RETENTION_DAYS2 = 730;
|
|
12775
12845
|
previewLabelField2 = external_exports.string().max(PREVIEW_LABEL_MAX_LENGTH2).optional().nullable().transform((v) => {
|
|
12776
12846
|
if (v == null) return null;
|
|
12777
12847
|
const trimmed = v.trim();
|
|
@@ -12799,8 +12869,14 @@ var init_contracts = __esm({
|
|
|
12799
12869
|
// persisted via the agent path (.passthrough() agent body → HubDO column), not here.
|
|
12800
12870
|
auto_close_inactive_days: external_exports.number().int().min(1).max(180).optional(),
|
|
12801
12871
|
// Per-hub ConversationDO retention window (days) — keeps an ended conversation's DO
|
|
12802
|
-
// 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).
|
|
12803
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(),
|
|
12804
12880
|
// Channel contact access control. Enum-validated explicitly (not via passthrough)
|
|
12805
12881
|
// so `language`/`access_approval_role` can't reach the DB with an invalid value.
|
|
12806
12882
|
language: external_exports.enum(["en", "pt", "es"]).optional(),
|
|
@@ -13688,13 +13764,7 @@ var init_contracts = __esm({
|
|
|
13688
13764
|
// window). 'archived' = the full closed-conversation history from ClickHouse.
|
|
13689
13765
|
status: external_exports.enum(["active", "agent", "team", "ended", "archived"]).optional(),
|
|
13690
13766
|
page: external_exports.string().regex(/^\d+$/).optional(),
|
|
13691
|
-
page_size: external_exports.string().regex(/^\d+$/).optional()
|
|
13692
|
-
// Cursor for the continuous-history scroll (chat hubs): with status='archived',
|
|
13693
|
-
// return only conversations that ended strictly before this instant. The caller
|
|
13694
|
-
// passes the oldest warm-index `ended_at` so the CH superset excludes the
|
|
13695
|
-
// already-loaded warm slice. UTC ISO-8601 (Timestamps standard) — datetime()
|
|
13696
|
-
// hardens it before it reaches the parameterized CH predicate.
|
|
13697
|
-
before_ended_at: external_exports.string().datetime().optional()
|
|
13767
|
+
page_size: external_exports.string().regex(/^\d+$/).optional()
|
|
13698
13768
|
});
|
|
13699
13769
|
getMessagesQuery2 = external_exports.object({
|
|
13700
13770
|
hub_id: external_exports.string().uuid(),
|
|
@@ -13702,8 +13772,17 @@ var init_contracts = __esm({
|
|
|
13702
13772
|
hub_user_id: external_exports.string().optional(),
|
|
13703
13773
|
conversation_id: external_exports.string().uuid().optional(),
|
|
13704
13774
|
message_id: external_exports.string().uuid().optional(),
|
|
13775
|
+
// `page` = LEGACY oldest-first offset paging (deployed page-based clients).
|
|
13776
|
+
// Its PRESENCE selects the legacy read path server-side; a new client omits it
|
|
13777
|
+
// and instead sends `page_size` + (for older pages) the keyset cursor below.
|
|
13705
13778
|
page: external_exports.string().regex(/^\d+$/).optional(),
|
|
13706
13779
|
page_size: external_exports.string().regex(/^\d+$/).optional(),
|
|
13780
|
+
// Keyset cursor for the newest-first scroll (`page` absent): return only
|
|
13781
|
+
// messages strictly older than (before_created_at, before_message_id) — the
|
|
13782
|
+
// oldest currently-loaded VISIBLE message. UTC ISO-8601 (Timestamps standard);
|
|
13783
|
+
// `datetime()` hardens it before the parameterized DO predicate.
|
|
13784
|
+
before_created_at: external_exports.string().datetime().optional(),
|
|
13785
|
+
before_message_id: external_exports.string().uuid().optional(),
|
|
13707
13786
|
/**
|
|
13708
13787
|
* When true AND the caller has support access (hub admin or hub team member),
|
|
13709
13788
|
* internal messages (tool calls, tool results) are included in the response.
|
|
@@ -13711,6 +13790,58 @@ var init_contracts = __esm({
|
|
|
13711
13790
|
* authorization boundary.
|
|
13712
13791
|
*/
|
|
13713
13792
|
include_internal: external_exports.union([external_exports.literal("true"), external_exports.literal("false"), external_exports.boolean()]).optional().transform((v) => v === true || v === "true")
|
|
13793
|
+
}).superRefine((q, ctx) => {
|
|
13794
|
+
if (q.before_created_at == null !== (q.before_message_id == null)) {
|
|
13795
|
+
ctx.addIssue({
|
|
13796
|
+
code: external_exports.ZodIssueCode.custom,
|
|
13797
|
+
message: "before_created_at and before_message_id must be provided together",
|
|
13798
|
+
path: [q.before_created_at == null ? "before_created_at" : "before_message_id"]
|
|
13799
|
+
});
|
|
13800
|
+
}
|
|
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
|
|
13714
13845
|
});
|
|
13715
13846
|
updateUserBody2 = external_exports.object({
|
|
13716
13847
|
user_language: external_exports.string().optional(),
|
|
@@ -14221,7 +14352,7 @@ var init_contracts = __esm({
|
|
|
14221
14352
|
adminSetHubHarnessBody2 = external_exports.object({
|
|
14222
14353
|
harness_enabled: external_exports.number().int().min(0).max(1)
|
|
14223
14354
|
}).strict();
|
|
14224
|
-
|
|
14355
|
+
adminScopedTargetBody2 = external_exports.object({
|
|
14225
14356
|
scope: external_exports.enum(["all", "org", "hub"]),
|
|
14226
14357
|
org_id: external_exports.string().uuid().optional(),
|
|
14227
14358
|
hub_id: external_exports.string().optional(),
|
|
@@ -19125,6 +19256,20 @@ async function adminCommand(args2) {
|
|
|
19125
19256
|
process.exit(1);
|
|
19126
19257
|
}
|
|
19127
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
|
+
}
|
|
19128
19273
|
if (group === "harness") {
|
|
19129
19274
|
if (!sub) {
|
|
19130
19275
|
printHelp2();
|
|
@@ -19784,8 +19929,7 @@ async function runSandboxExec(positional, flagArgs) {
|
|
|
19784
19929
|
process.exit(data.exit_code);
|
|
19785
19930
|
}
|
|
19786
19931
|
}
|
|
19787
|
-
|
|
19788
|
-
const USAGE = "wayai admin harness mass-destroy --all | --org <org_id> | --hub <hub_id> [--dry-run] [--yes] [--json]";
|
|
19932
|
+
function parseScopedTargetFlags(flagArgs, usage2) {
|
|
19789
19933
|
let all = false;
|
|
19790
19934
|
let orgId;
|
|
19791
19935
|
let hubId;
|
|
@@ -19818,24 +19962,69 @@ async function runHarnessMassDestroy(flagArgs) {
|
|
|
19818
19962
|
process.exit(1);
|
|
19819
19963
|
}
|
|
19820
19964
|
}
|
|
19821
|
-
|
|
19822
|
-
if (selectorCount !== 1) {
|
|
19965
|
+
if ((all ? 1 : 0) + (orgId ? 1 : 0) + (hubId ? 1 : 0) !== 1) {
|
|
19823
19966
|
console.error("Provide exactly ONE of --all, --org <org_id>, or --hub <hub_id>.");
|
|
19824
|
-
console.error(
|
|
19967
|
+
console.error(usage2);
|
|
19825
19968
|
process.exit(1);
|
|
19826
19969
|
}
|
|
19827
|
-
let body;
|
|
19828
|
-
let targetLabel;
|
|
19829
19970
|
if (all) {
|
|
19830
|
-
body
|
|
19831
|
-
|
|
19832
|
-
|
|
19833
|
-
body
|
|
19834
|
-
|
|
19835
|
-
}
|
|
19836
|
-
|
|
19837
|
-
|
|
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;
|
|
19838
19999
|
}
|
|
20000
|
+
const data = response.data;
|
|
20001
|
+
if (jsonOutput) {
|
|
20002
|
+
console.log(JSON.stringify(data, null, 2));
|
|
20003
|
+
return;
|
|
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);
|
|
19839
20028
|
if (!dryRun && !yes && !jsonOutput) {
|
|
19840
20029
|
console.log(`About to REAP every live harness sandbox / token / slot in: ${targetLabel}.`);
|
|
19841
20030
|
console.log("This destroys running sandboxes and revokes their tokens. Run with --dry-run first to see the blast radius.");
|
|
@@ -19863,9 +20052,9 @@ async function runHarnessMassDestroy(flagArgs) {
|
|
|
19863
20052
|
console.log(
|
|
19864
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}`
|
|
19865
20054
|
);
|
|
19866
|
-
if (data.hubs_errored > 0 || data.sessions_errored > 0) {
|
|
20055
|
+
if (data.orgs_errored > 0 || data.hubs_errored > 0 || data.sessions_errored > 0) {
|
|
19867
20056
|
console.log(
|
|
19868
|
-
`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.`
|
|
19869
20058
|
);
|
|
19870
20059
|
}
|
|
19871
20060
|
if (data.details.length === 0) {
|
|
@@ -20402,6 +20591,9 @@ Usage:
|
|
|
20402
20591
|
wayai admin sandbox exec [--cmd "<c>" | <c>] --hub <id> --connection <id> [--egress open|allowlist|isolated] [--allow <host> ...] [--timeout <ms>] [--json]
|
|
20403
20592
|
Run one shell command in a fresh E2B sandbox (create \u2192 run \u2192 destroy) to test the sandbox driver + egress gate
|
|
20404
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
|
+
|
|
20405
20597
|
wayai admin harness disable [--org <org_id> | --hub <hub_id>]
|
|
20406
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
|
|
20407
20599
|
wayai admin harness enable [--org <org_id> | --hub <hub_id>]
|
|
@@ -20432,6 +20624,13 @@ Sources:
|
|
|
20432
20624
|
"Gemini degraded" / "Analytics delayed" notices. \`create\` authors one
|
|
20433
20625
|
(severity defaults to info, scope to global); \`list\` reads them
|
|
20434
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.
|
|
20435
20634
|
sandbox Run arbitrary code in a fresh E2B sandbox (harness-agents isolation surface).
|
|
20436
20635
|
\`exec\` provisions a sandbox from a named Sandbox connection, runs one
|
|
20437
20636
|
command, and destroys it. Egress omitted \u21D2 deny-all (fail-closed); opt up
|