@wayai/cli 0.3.126 → 0.3.128

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -5328,7 +5328,7 @@ function refineHubAsCodeDelegation(config, ctx) {
5328
5328
  });
5329
5329
  });
5330
5330
  }
5331
- var uuidSchema, paginationSchema, timestampSchema, idParamSchema, clientOptionalString, clientOptionalBoolean, clientOptionalNumber, messageAttachment, MAX_MESSAGE_BODY_BYTES, MAX_ATTACHMENTS_PER_MESSAGE, MAX_AUDIO_FILE_BASE64_BYTES, primaryRegionSchema, placementSourceSchema, orgIdParam, orgAdminIdParam, createOrganizationBody, updateOrganizationBody, addOrgAdminBody, AUTH_TYPE, ORG_CREDENTIAL_AUTH_TYPES, AUTH_TYPE_DISPLAY, LEGACY_AUTH_TYPE_MAP, VALID_AUTH_TYPES, AGENT_ROLES, SAFE_USER_ID_REGEX, SUPPORTED_LOCALES, SUMMARIZATION_THRESHOLD_MIN, SUMMARIZATION_THRESHOLD_MAX, 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, MAX_OUTCOMES_PER_STATUS, kanbanOutcomeSchema, EXCLUSIVE_FLAG_PAIRS, kanbanStatusSchema, kanbanStatusesArraySchema, laneSchema, lanesArraySchema, hubIdParam, hubAdminIdParam, hubUserIdParam, hubIdentityIdParam, hubTeamIdParam, hubTeamUserDeleteParam, hubSchemaQuery, PREVIEW_LABEL_MAX_LENGTH, MAX_ENDED_INDEX_RETENTION_DAYS, previewLabelField, createHubBody, updateHubBody, addHubAdminBody, addHubIdentityAuthorizationBody, contactDecisionBody, approveContactBody, listContactAccessQuery, createHubTeamBody, updateHubTeamBody, addHubTeamUserBody, reassignHubUserBody, replicatePreviewBody, updateChannelTestIdentitiesBody, claimCodeChannelParam, claimCodeDeleteParam, connectionIdParam, connectorIdParam, listConnectionsQuery, deleteConnectionQuery, addConnectionBody, editConnectionBody, PRODUCTION_DIRECT_FIELDS, setProductionCredentialBody, registerWhatsappQuery, registerWhatsappBody, retryProvisioningQuery, resendDomainStatusQuery, PLACEHOLDER_TOKENS, ALLOWED_TYPES, SUBSCHEMA_OBJECT_KEYWORDS, SUBSCHEMA_LIST_KEYWORDS, SUBSCHEMA_MAP_KEYWORDS, MAX_SCHEMA_DEPTH, toolIdParam, listToolsQuery, toolAgentQuery, deleteToolQuery, toolConnectionsQuery, nativeToolIdSchema, CONTEXT_BOUNDARIES, contextBoundarySchema, addNativeToolBody, addMcpToolBody, createCustomToolBody, updateCustomToolBody, updateToolExecutionConfigBody, initialValueCreateSchema, initialValueUpdateSchema, stateIdParam, listStatesQuery, stateNameSchema, createStateBody, updateStateBody, reorderStatesBody, variantAiModeSchema, experimentStatusSchema, overlayUpdateSchema, experimentIdParam, variantIdParam, listExperimentsQuery, listVariantsQuery, listOverridesQuery, deleteOverrideQuery, createExperimentBody, updateExperimentBody, setExperimentStatusBody, createVariantBody, updateVariantBody, upsertOverrideBody, orgTagIdParam, listOrgTagsQuery, 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, analyticsSqlTable, analyticsSqlSchemaQuery, EVAL_PACING_PRESET_NAMES, PACING_INTERVAL_MIN_MS, PACING_INTERVAL_MAX_MS, EVAL_RUN_DEADLINE_MIN_MS, EVAL_RUN_DEADLINE_MAX_MS, ISO_UTC_RE, paginationSchema2, evalIdParam, sessionIdParam, scenarioSetIdParam, hubIdQuery, evalDateContextSchema, EVAL_FIXTURE_NAME_MAX_LENGTH, evalFixtureOverrideSchema, runSessionQuery, EVAL_INPUT_ROLES, EVAL_INPUT_ROLE_LIST, ROLE_ECHO_MAX, EVAL_INITIAL_STATE_SCOPES, MAX_INITIAL_STATE_ENTRIES, evalInitialStateEntry, createEvalBody, updateEvalBody, getEvalsQuery, toggleEvalBody, bulkToggleEvalsBody, pacingConfigSchema, sessionConfigSchema, createSessionBody, getSessionsQuery, getSessionResultsQuery, getSessionRunsQuery, evalAnalyticsQuery, getSessionCostQuery, compareSessionsQuery, evalsSqlBody, evalsSqlSchemaQuery, exportResultsQuery, validateEvalBody, hubAgentsQuery, createScenarioSetBody, updateScenarioSetBody, scenarioSetsHubQuery, createScenarioFromConversationBody, createJourneyFromConversationBody, EVAL_ATTACHMENT_HASH_REGEX, evalAttachmentRef, turnMayCarryAttachments, ATTACHMENTS_USER_ONLY_MESSAGE, journeyIdParam, journeyToolCallSchema, journeyTurnSchema, journeyStepOverrideSchema, fixtureField, createJourneyBody, updateJourneyBody, evalSessionConfigResponseSchema, evalSessionResponseSchema, getConversationsQuery, getMessagesQuery, appMessageSenderType, appMessageReceiverType, apiChannelMessage, apiChannelMessageBody, appMessageBody, appMessageResponse, updateUserBody, updateProfileBody, pathnameRegex, updatePreferencesBody, registerPushTokenBody, deletePushTokenQuery, activityQuery, deletionModeSchema, deletionRequestBody, templateLocaleSchema, TEMPLATE_SLUG_REGEX, templateSlugSchema, templateStatusSchema, templateFileMapSchema, TEMPLATE_INSTANCE_ID_KEYS, TEMPLATE_OPAQUE_BLOB_KEYS, TEMPLATE_AUTHOR_DATA_KEYS, templateTextSchema, templateUsesEntrySchema, templateUsesSchema, templateYamlLocaleEntry, templateYamlWayaiBlock, templateTagsSchema, templateYamlSchema, templateHeroSchema, templatePushLocaleSchema, templatePushBody, templateListQuery, templateSlugParam, templateDetailQuery, courseQuizScoreSchema, upsertCourseLessonBody, linkCourseCapstoneBody, archiveHubIdParam, archiveConversationParams, archiveListQuery, archiveMessageObservabilityParams, conversationIdParam, claimBody, releaseBody, transferBody, closeBody, additionalContextPayloadSchema, kanbanUpdateBody, annotateConversationBody, observabilityParams, observabilityListParams, deleteUserConversationsBody, deleteUserConversationsResponse, sendMessageBody, listConversationsQuery, flagSourceSchema, getConversationsResponse, getConversationDetailParams, getConversationDetailQuery, getConversationDetailResponse, listWhatsAppTemplatesQuery, sendWhatsAppTemplateBody, copilotSuggestBody, copilotSuggestResponse, CONSULT_THREAD_STATUSES, consultThreadStatus, CONSULT_THREAD_TITLE_MAX, consultThreadTitle, consultThreadSummary, listConsultThreadsQuery, listConsultThreadsResponse, createConsultThreadBody, createConsultThreadResponse, consultThreadIdParam, updateConsultThreadBody, updateConsultThreadResponse, CONSULT_AWAIT_TIMEOUT_MS, billingOrgIdParam, subscriptionItemParams, spendCapBody, growthPacksBody, portalSessionBody, checkoutSessionBody, updateBillingCurrencyBody, invoicesQuery, downloadBody, uploadQuery, signUrlBody, outboundSchemaQuery, templateIdParam, listTemplatesQuery, deleteTemplateQuery, templateStatusQuery, createTemplateBody, updateTemplateBody, submitTemplateBody, testTemplateBody, contactIdParam, listContactsQuery, createContactBody, updateContactBody, listIdParam, listListsQuery, listListContactsQuery, createListBody, updateListBody, addListContactsBody, removeListContactsBody, scheduleIdParam, listSchedulesQuery, listExecutionsQuery, createScheduleBody, updateScheduleBody, MAX_RESOURCE_FILE_SIZE, MAX_10MB_BASE64_ENCODED_BYTES, MAX_EVAL_ATTACHMENT_ENCODED_BYTES, MAX_EVAL_ATTACHMENT_CARRIERS, MAX_EVAL_ATTACHMENT_AGGREGATE_ENCODED_BYTES, MAX_RESOURCE_ENCODED_BYTES, MAX_HUB_AS_CODE_RESOURCES, MAX_HUB_AS_CODE_RESOURCE_FILES, MAX_RESOURCE_AGGREGATE_ENCODED_BYTES, MAX_CI_CONFIG_BODY_BYTES, hubAsCodeStateSchema, hubAsCodeResourceFileSchema, hubAsCodeResourceSchema, uuidPattern, ciUuidSchema, boundedHubAsCodeResourcesSchema, hubAsCodeConfigSchema, ciPullHubIdParam, ciBranchParam, ciPullQuery, ciHubsQuery, ciLookupQuery, ciBranchesQuery, ciSyncBody, ciPushBody, ciDiffBody, ciPublishBody, ciPublishPreviewBody, ciSyncMcpBody, ciOrgResourcesParam, orgResourcesConfigSchema, ciOrgResourcesPushBody, ciOrgResourcesDiffBody, CI_APPLY_ENTITY_KINDS, CI_APPLY_OPERATIONS, ciApplyErrorBaseSchema, ciApplyErrorSchema, ciSyncCountSchema, ciSyncChangesSchema, ciSyncWarningSchema, ciSyncResponseSchema, adminOrgIdParam, adminOrgAdminIdParam, adminUserIdParam, adminPlanIdParam, adminOrganizationsQuery, adminUserSearchQuery, kanbanSlugMigrationQuery, adjustQuotaBody, updatePlanBody, addAdminUserBody, updatePlatformConfigBody, updateFreeOrgLimitBody, adminScopedTargetBody, updatePricingPlanBody, dataExplorerSearchQuery, dataExplorerOrgIdParam, dataExplorerHubIdParam, dataExplorerConvIdParam, dataExplorerDoInstancesQuery, dataExplorerNsIdParam, dataExplorerKvKeysBody, dataExplorerKvKeyBody, uuidOrHexId, dataExplorerDeleteOrgParam, dataExplorerDeleteHubParam, dataExplorerDeleteConvParam, dataExplorerDeleteUserParam, dataExplorerDeleteQuery, dataExplorerKvDeleteBody, pitrDoNamespace, pitrBookmarkParam, pitrRestoreBody, healthSamplingTriggerBody, dataExplorerDebugDoType, DEBUG_READ_MAX_LIMIT, DEBUG_READ_DEFAULT_LIMIT, DEBUG_DO_HEX_PREFIX, debugDoEntityId, debugTableName, dataExplorerDebugTablesParam, dataExplorerDebugRowsParam, dataExplorerDebugRowsQuery, dataExplorerDebugAnalyticsTable, debugUuid, dataExplorerDebugAnalyticsRowsParam, dataExplorerDebugAnalyticsRowsQuery, debugHubConvParam, debugMessageIdQuery, sandboxEgressPolicy, SANDBOX_EXEC_MAX_CMD_LENGTH, SANDBOX_EXEC_MAX_ALLOWLIST, SANDBOX_EXEC_MAX_TIMEOUT_MS, adminSandboxExecBody, whatsappCallbackBody, authMeResponse, wsTicketResponse, sessionCheckResponse, logoutResponse, magicCodeSendBody, magicCodeSendResponse, magicCodeVerifyBody, magicCodeVerifyResponse, passwordLoginBody, browserParams, browserFoldersQuery, browserFilesQuery, stateOperationBody, conversationListResourcesQuery, conversationReadResourceQuery, listPendingSchedulesQuery, listHubAggregateSchedulesQuery, reportSourceSchema, intakeReportSourceSchema, reportClassificationSchema, reportStatusSchema, reportLocaleSchema, reportMessageAuthorRoleSchema, reportMessageSchema, sentryRefStatusSchema, createReportBody, editReportBody, reporterReportSummarySchema, reporterListResponseSchema, getReportResponseSchema, reporterTransitionResponseSchema, contestReportBody, reporterListQuery, listReportsQuery, GITHUB_ISSUE_URL_REGEX, githubIssueUrlSchema, transitionReportBody, groupReportsBody, holdReportBody, clickhouseReadyResponse, bootstrapQuery, requestSnapshotChunkMessage, MAX_NAME_LENGTH, MAX_VALUE_LENGTH, MAX_TAGS, MAX_TAG_LENGTH, MAX_SCOPE_HUBS, MAX_SCOPE_TAGS, vaultSecretScopeSchema, vaultCreateBody, vaultUpdateBody, PERMISSIONS, MAX_NAME_LENGTH2, MAX_HUBS_PER_GRANT, MAX_HUB_TAGS_PER_GRANT, MAX_GRANTS, permissionEnum, grantScopeSchema, grantSchema, createTokenBody, tokenOrgIdParam, tokenGrantScopeSchema, tokenGrantSchema, tokenMetadataSchema, listTokensResponse, createTokenResponse, orgTokenSummarySchema, listOrgTokensResponse, invitePreviewQuery, invitePreviewResponse, 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, ADMIN_SKILL_NAME_REGEX, adminSkillNameParam;
5331
+ var uuidSchema, paginationSchema, timestampSchema, idParamSchema, clientOptionalString, clientOptionalBoolean, clientOptionalNumber, messageAttachment, MAX_MESSAGE_BODY_BYTES, MAX_ATTACHMENTS_PER_MESSAGE, MAX_AUDIO_FILE_BASE64_BYTES, primaryRegionSchema, placementSourceSchema, orgIdParam, orgAdminIdParam, createOrganizationBody, updateOrganizationBody, addOrgAdminBody, AUTH_TYPE, ORG_CREDENTIAL_AUTH_TYPES, AUTH_TYPE_DISPLAY, LEGACY_AUTH_TYPE_MAP, VALID_AUTH_TYPES, AGENT_ROLES, SAFE_USER_ID_REGEX, SUPPORTED_LOCALES, SUMMARIZATION_THRESHOLD_MIN, SUMMARIZATION_THRESHOLD_MAX, 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, MAX_OUTCOMES_PER_STATUS, kanbanOutcomeSchema, EXCLUSIVE_FLAG_PAIRS, kanbanStatusSchema, kanbanStatusesArraySchema, laneSchema, lanesArraySchema, hubIdParam, hubAdminIdParam, hubUserIdParam, hubIdentityIdParam, hubTeamIdParam, hubTeamUserDeleteParam, hubSchemaQuery, PREVIEW_LABEL_MAX_LENGTH, MAX_ENDED_INDEX_RETENTION_DAYS, previewLabelField, createHubBody, updateHubBody, addHubAdminBody, addHubIdentityAuthorizationBody, contactDecisionBody, approveContactBody, listContactAccessQuery, createHubTeamBody, updateHubTeamBody, addHubTeamUserBody, reassignHubUserBody, replicatePreviewBody, updateChannelTestIdentitiesBody, claimCodeChannelParam, claimCodeDeleteParam, connectionIdParam, connectorIdParam, listConnectionsQuery, deleteConnectionQuery, addConnectionBody, editConnectionBody, PRODUCTION_DIRECT_FIELDS, setProductionCredentialBody, registerWhatsappQuery, registerWhatsappBody, retryProvisioningQuery, resendDomainStatusQuery, PLACEHOLDER_TOKENS, ALLOWED_TYPES, SUBSCHEMA_OBJECT_KEYWORDS, SUBSCHEMA_LIST_KEYWORDS, SUBSCHEMA_MAP_KEYWORDS, MAX_SCHEMA_DEPTH, toolIdParam, listToolsQuery, toolAgentQuery, deleteToolQuery, toolConnectionsQuery, nativeToolIdSchema, CONTEXT_BOUNDARIES, contextBoundarySchema, addNativeToolBody, addMcpToolBody, createCustomToolBody, updateCustomToolBody, updateToolExecutionConfigBody, initialValueCreateSchema, initialValueUpdateSchema, stateIdParam, listStatesQuery, stateNameSchema, createStateBody, updateStateBody, reorderStatesBody, variantAiModeSchema, experimentStatusSchema, overlayUpdateSchema, experimentIdParam, variantIdParam, listExperimentsQuery, listVariantsQuery, listOverridesQuery, deleteOverrideQuery, createExperimentBody, updateExperimentBody, setExperimentStatusBody, createVariantBody, updateVariantBody, upsertOverrideBody, orgTagIdParam, listOrgTagsQuery, 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, analyticsSqlTable, analyticsSqlSchemaQuery, EVAL_PACING_PRESET_NAMES, PACING_INTERVAL_MIN_MS, PACING_INTERVAL_MAX_MS, EVAL_MAX_RUNS_PER_SCENARIO, EVAL_RUN_DEADLINE_MIN_MS, EVAL_RUN_DEADLINE_MAX_MS, ISO_UTC_RE, paginationSchema2, evalIdParam, sessionIdParam, scenarioSetIdParam, hubIdQuery, evalDateContextSchema, EVAL_FIXTURE_NAME_MAX_LENGTH, evalFixtureOverrideSchema, runSessionQuery, EVAL_INPUT_ROLES, EVAL_INPUT_ROLE_LIST, ROLE_ECHO_MAX, EVAL_INITIAL_STATE_SCOPES, MAX_INITIAL_STATE_ENTRIES, evalInitialStateEntry, createEvalBody, updateEvalBody, getEvalsQuery, toggleEvalBody, bulkToggleEvalsBody, pacingConfigSchema, EVAL_MAX_SELECTED_SCENARIOS, evalScenarioSelectionEntrySchema, evalScenarioSelectionSchema, sessionConfigSchema, createSessionBody, getSessionsQuery, getSessionResultsQuery, getSessionRunsQuery, evalAnalyticsQuery, getSessionCostQuery, compareSessionsQuery, evalsSqlBody, evalsSqlSchemaQuery, exportResultsQuery, validateEvalBody, hubAgentsQuery, createScenarioSetBody, updateScenarioSetBody, scenarioSetsHubQuery, createScenarioFromConversationBody, createJourneyFromConversationBody, EVAL_ATTACHMENT_HASH_REGEX, evalAttachmentRef, turnMayCarryAttachments, ATTACHMENTS_USER_ONLY_MESSAGE, journeyIdParam, journeyToolCallSchema, journeyTurnSchema, journeyStepOverrideSchema, fixtureField, createJourneyBody, updateJourneyBody, evalSessionConfigResponseSchema, evalSessionResponseSchema, seedReleaseStatusSchema, EVAL_SESSION_NOT_QUIESCENT, getConversationsQuery, getMessagesQuery, appMessageSenderType, appMessageReceiverType, apiChannelMessage, apiChannelMessageBody, appMessageBody, appMessageResponse, updateUserBody, updateProfileBody, pathnameRegex, updatePreferencesBody, registerPushTokenBody, deletePushTokenQuery, activityQuery, deletionModeSchema, deletionRequestBody, templateLocaleSchema, TEMPLATE_SLUG_REGEX, templateSlugSchema, templateStatusSchema, templateFileMapSchema, TEMPLATE_INSTANCE_ID_KEYS, TEMPLATE_OPAQUE_BLOB_KEYS, TEMPLATE_AUTHOR_DATA_KEYS, templateTextSchema, templateUsesEntrySchema, templateUsesSchema, templateYamlLocaleEntry, templateYamlWayaiBlock, templateTagsSchema, templateYamlSchema, templateHeroSchema, templatePushLocaleSchema, templatePushBody, templateListQuery, templateSlugParam, templateDetailQuery, courseQuizScoreSchema, upsertCourseLessonBody, linkCourseCapstoneBody, archiveHubIdParam, archiveConversationParams, archiveListQuery, archiveMessageObservabilityParams, conversationIdParam, claimBody, releaseBody, transferBody, closeBody, additionalContextPayloadSchema, kanbanUpdateBody, annotateConversationBody, observabilityParams, observabilityListParams, deleteUserConversationsBody, deleteUserConversationsResponse, sendMessageBody, listConversationsQuery, flagSourceSchema, getConversationsResponse, getConversationDetailParams, getConversationDetailQuery, getConversationDetailResponse, listWhatsAppTemplatesQuery, sendWhatsAppTemplateBody, copilotSuggestBody, copilotSuggestResponse, CONSULT_THREAD_STATUSES, consultThreadStatus, CONSULT_THREAD_TITLE_MAX, consultThreadTitle, consultThreadSummary, listConsultThreadsQuery, listConsultThreadsResponse, createConsultThreadBody, createConsultThreadResponse, consultThreadIdParam, updateConsultThreadBody, updateConsultThreadResponse, CONSULT_AWAIT_TIMEOUT_MS, billingOrgIdParam, subscriptionItemParams, spendCapBody, growthPacksBody, portalSessionBody, checkoutSessionBody, updateBillingCurrencyBody, invoicesQuery, downloadBody, uploadQuery, signUrlBody, outboundSchemaQuery, templateIdParam, listTemplatesQuery, deleteTemplateQuery, templateStatusQuery, createTemplateBody, updateTemplateBody, submitTemplateBody, testTemplateBody, contactIdParam, listContactsQuery, createContactBody, updateContactBody, listIdParam, listListsQuery, listListContactsQuery, createListBody, updateListBody, addListContactsBody, removeListContactsBody, scheduleIdParam, listSchedulesQuery, listExecutionsQuery, createScheduleBody, updateScheduleBody, MAX_RESOURCE_FILE_SIZE, MAX_10MB_BASE64_ENCODED_BYTES, MAX_EVAL_ATTACHMENT_ENCODED_BYTES, MAX_EVAL_ATTACHMENT_CARRIERS, MAX_EVAL_ATTACHMENT_AGGREGATE_ENCODED_BYTES, MAX_RESOURCE_ENCODED_BYTES, MAX_HUB_AS_CODE_RESOURCES, MAX_HUB_AS_CODE_RESOURCE_FILES, MAX_RESOURCE_AGGREGATE_ENCODED_BYTES, MAX_CI_CONFIG_BODY_BYTES, hubAsCodeStateSchema, hubAsCodeResourceFileSchema, hubAsCodeResourceSchema, uuidPattern, ciUuidSchema, boundedHubAsCodeResourcesSchema, hubAsCodeConfigSchema, ciPullHubIdParam, ciBranchParam, ciPullQuery, ciHubsQuery, ciLookupQuery, ciBranchesQuery, ciSyncBody, ciPushBody, ciDiffBody, ciPublishBody, ciPublishPreviewBody, ciSyncMcpBody, ciOrgResourcesParam, orgResourcesConfigSchema, ciOrgResourcesPushBody, ciOrgResourcesDiffBody, CI_APPLY_ENTITY_KINDS, CI_APPLY_OPERATIONS, ciApplyErrorBaseSchema, ciApplyErrorSchema, ciSyncCountSchema, ciSyncChangesSchema, ciSyncWarningSchema, ciSyncResponseSchema, adminOrgIdParam, adminOrgAdminIdParam, adminUserIdParam, adminPlanIdParam, adminOrganizationsQuery, adminUserSearchQuery, kanbanSlugMigrationQuery, adjustQuotaBody, updatePlanBody, addAdminUserBody, updatePlatformConfigBody, updateFreeOrgLimitBody, adminScopedTargetBody, updatePricingPlanBody, dataExplorerSearchQuery, dataExplorerOrgIdParam, dataExplorerHubIdParam, dataExplorerConvIdParam, dataExplorerDoInstancesQuery, dataExplorerNsIdParam, dataExplorerKvKeysBody, dataExplorerKvKeyBody, uuidOrHexId, dataExplorerDeleteOrgParam, dataExplorerDeleteHubParam, dataExplorerDeleteConvParam, dataExplorerDeleteUserParam, dataExplorerDeleteQuery, dataExplorerKvDeleteBody, pitrDoNamespace, pitrBookmarkParam, pitrRestoreBody, healthSamplingTriggerBody, dataExplorerDebugDoType, DEBUG_READ_MAX_LIMIT, DEBUG_READ_DEFAULT_LIMIT, DEBUG_DO_HEX_PREFIX, debugDoEntityId, debugTableName, dataExplorerDebugTablesParam, dataExplorerDebugRowsParam, dataExplorerDebugRowsQuery, dataExplorerDebugAnalyticsTable, debugUuid, dataExplorerDebugAnalyticsRowsParam, dataExplorerDebugAnalyticsRowsQuery, debugHubConvParam, debugMessageIdQuery, sandboxEgressPolicy, SANDBOX_EXEC_MAX_CMD_LENGTH, SANDBOX_EXEC_MAX_ALLOWLIST, SANDBOX_EXEC_MAX_TIMEOUT_MS, adminSandboxExecBody, whatsappCallbackBody, authMeResponse, wsTicketResponse, sessionCheckResponse, logoutResponse, magicCodeSendBody, magicCodeSendResponse, magicCodeVerifyBody, magicCodeVerifyResponse, passwordLoginBody, browserParams, browserFoldersQuery, browserFilesQuery, stateOperationBody, conversationListResourcesQuery, conversationReadResourceQuery, listPendingSchedulesQuery, listHubAggregateSchedulesQuery, reportSourceSchema, intakeReportSourceSchema, reportClassificationSchema, reportStatusSchema, reportLocaleSchema, reportMessageAuthorRoleSchema, reportMessageSchema, sentryRefStatusSchema, createReportBody, editReportBody, reporterReportSummarySchema, reporterListResponseSchema, getReportResponseSchema, reporterTransitionResponseSchema, contestReportBody, reporterListQuery, listReportsQuery, GITHUB_ISSUE_URL_REGEX, githubIssueUrlSchema, transitionReportBody, groupReportsBody, holdReportBody, clickhouseReadyResponse, bootstrapQuery, requestSnapshotChunkMessage, MAX_NAME_LENGTH, MAX_VALUE_LENGTH, MAX_TAGS, MAX_TAG_LENGTH, MAX_SCOPE_HUBS, MAX_SCOPE_TAGS, vaultSecretScopeSchema, vaultCreateBody, vaultUpdateBody, PERMISSIONS, MAX_NAME_LENGTH2, MAX_HUBS_PER_GRANT, MAX_HUB_TAGS_PER_GRANT, MAX_GRANTS, permissionEnum, grantScopeSchema, grantSchema, createTokenBody, tokenOrgIdParam, tokenGrantScopeSchema, tokenGrantSchema, tokenMetadataSchema, listTokensResponse, createTokenResponse, orgTokenSummarySchema, listOrgTokensResponse, invitePreviewQuery, invitePreviewResponse, 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, ADMIN_SKILL_NAME_REGEX, adminSkillNameParam;
5332
5332
  var init_contracts = __esm({
5333
5333
  "../../packages/core/dist/contracts/index.js"() {
5334
5334
  "use strict";
@@ -6594,6 +6594,7 @@ var init_contracts = __esm({
6594
6594
  EVAL_PACING_PRESET_NAMES = ["conservative", "balanced", "fast", "custom"];
6595
6595
  PACING_INTERVAL_MIN_MS = 50;
6596
6596
  PACING_INTERVAL_MAX_MS = 6e4;
6597
+ EVAL_MAX_RUNS_PER_SCENARIO = 100;
6597
6598
  EVAL_RUN_DEADLINE_MIN_MS = 1e3;
6598
6599
  EVAL_RUN_DEADLINE_MAX_MS = 18e5;
6599
6600
  ISO_UTC_RE = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/;
@@ -6672,8 +6673,20 @@ var init_contracts = __esm({
6672
6673
  (v) => v.preset !== "custom" || typeof v.custom_interval_ms === "number",
6673
6674
  { message: 'custom_interval_ms required when preset is "custom"' }
6674
6675
  );
6676
+ EVAL_MAX_SELECTED_SCENARIOS = 200;
6677
+ evalScenarioSelectionEntrySchema = external_exports.object({
6678
+ eval_id: external_exports.string().uuid(),
6679
+ run_numbers: external_exports.array(external_exports.number().int().min(1).max(EVAL_MAX_RUNS_PER_SCENARIO)).min(1).max(EVAL_MAX_RUNS_PER_SCENARIO).refine((runs) => new Set(runs).size === runs.length, {
6680
+ message: "run_numbers must not repeat a run"
6681
+ }).optional()
6682
+ }).strict();
6683
+ evalScenarioSelectionSchema = external_exports.array(evalScenarioSelectionEntrySchema).min(1).max(EVAL_MAX_SELECTED_SCENARIOS).refine(
6684
+ (entries) => new Set(entries.map((e) => e.eval_id)).size === entries.length,
6685
+ { message: "scenario_selection must not name the same scenario twice" }
6686
+ );
6675
6687
  sessionConfigSchema = external_exports.object({
6676
6688
  pacing: pacingConfigSchema.optional(),
6689
+ scenario_selection: evalScenarioSelectionSchema.optional(),
6677
6690
  // Server-owned immutable clock.
6678
6691
  date_context: external_exports.never().optional(),
6679
6692
  date_context_claimed: external_exports.never().optional(),
@@ -6795,7 +6808,7 @@ var init_contracts = __esm({
6795
6808
  message: ATTACHMENTS_USER_ONLY_MESSAGE
6796
6809
  });
6797
6810
  journeyStepOverrideSchema = external_exports.object({
6798
- number_of_runs: external_exports.number().int().positive().max(100).optional(),
6811
+ number_of_runs: external_exports.number().int().positive().max(EVAL_MAX_RUNS_PER_SCENARIO).optional(),
6799
6812
  evaluator_instructions: external_exports.string().max(4e3).nullable().optional()
6800
6813
  });
6801
6814
  fixtureField = external_exports.string().max(EVAL_FIXTURE_NAME_MAX_LENGTH);
@@ -6833,7 +6846,15 @@ var init_contracts = __esm({
6833
6846
  // Internal lifecycle fields: never expose them as response data.
6834
6847
  date_context_claimed: external_exports.unknown().optional().transform(() => void 0),
6835
6848
  seed_cleanup: external_exports.unknown().optional().transform(() => void 0),
6836
- pacing: pacingConfigSchema.optional().catch(void 0)
6849
+ pacing: pacingConfigSchema.optional().catch(void 0),
6850
+ /**
6851
+ * The exact scenarios and repetitions this session ran (gh #3748), or absent
6852
+ * for a whole-set session. Declared — not merely carried by `passthrough()` —
6853
+ * because it is the session's audit record: a reader must be able to tell what
6854
+ * was scored, and reproduce it. `.catch` only omits an unreadable legacy value
6855
+ * from the RESPONSE; the run path refuses such a session outright.
6856
+ */
6857
+ scenario_selection: evalScenarioSelectionSchema.optional().catch(void 0)
6837
6858
  }).passthrough();
6838
6859
  evalSessionResponseSchema = external_exports.object({
6839
6860
  eval_session_id: external_exports.string(),
@@ -6855,6 +6876,8 @@ var init_contracts = __esm({
6855
6876
  /** Launch-time snapshot. */
6856
6877
  session_config: evalSessionConfigResponseSchema.optional()
6857
6878
  }).passthrough();
6879
+ seedReleaseStatusSchema = external_exports.enum(["not_applicable", "pending", "releasing"]);
6880
+ EVAL_SESSION_NOT_QUIESCENT = "session_not_quiescent";
6858
6881
  getConversationsQuery = external_exports.object({
6859
6882
  nav_item: external_exports.enum(["chat", "task", "support", "chat_task"]),
6860
6883
  hub_team_user_id: external_exports.string().optional(),
@@ -8909,16 +8932,22 @@ var init_api_client = __esm({
8909
8932
  if (opts?.status) params.set("status", opts.status);
8910
8933
  return this.request("GET", `/api/evals/sessions?${params.toString()}`);
8911
8934
  }
8912
- async createEvalSession(hubId, sessionName, scenarioSetId, pacing) {
8935
+ async createEvalSession(hubId, sessionName, opts) {
8936
+ const sessionConfig = {
8937
+ ...opts?.pacing ? { pacing: opts.pacing } : {},
8938
+ ...opts?.scenarioSelection ? { scenario_selection: opts.scenarioSelection } : {}
8939
+ };
8913
8940
  return this.request("POST", "/api/evals/sessions", {
8914
8941
  session: {
8915
8942
  hub_id: hubId,
8916
8943
  session_name: sessionName,
8917
8944
  // Binding the set at create time targets a specific set (multi-set hubs);
8918
8945
  // when omitted, the run endpoint resolves the hub's sole enabled set.
8919
- ...scenarioSetId ? { scenario_set_id: scenarioSetId } : {},
8946
+ ...opts?.scenarioSetId ? { scenario_set_id: opts.scenarioSetId } : {},
8920
8947
  // Run pacing — omitted lets the backend apply its default (balanced).
8921
- ...pacing ? { session_config: { pacing } } : {}
8948
+ // The selection rides here too, so the session row IS the audit record
8949
+ // of which scenarios and repetitions it scored.
8950
+ ...Object.keys(sessionConfig).length > 0 ? { session_config: sessionConfig } : {}
8922
8951
  }
8923
8952
  });
8924
8953
  }
@@ -9350,6 +9379,15 @@ function extractApiMessage(err) {
9350
9379
  }
9351
9380
  return err instanceof Error ? err.message : String(err);
9352
9381
  }
9382
+ function extractApiErrorCode(err) {
9383
+ if (!(err instanceof ApiError)) return null;
9384
+ try {
9385
+ const parsed = JSON.parse(err.body);
9386
+ return typeof parsed.error === "string" ? parsed.error : null;
9387
+ } catch {
9388
+ return null;
9389
+ }
9390
+ }
9353
9391
  function friendlyHint(err) {
9354
9392
  if (isNetworkError(err)) {
9355
9393
  return "Couldn't reach WayAI \u2014 check your network connection and try again.";
@@ -10154,7 +10192,7 @@ function findStepBoundaries(transcript) {
10154
10192
  }
10155
10193
  return out;
10156
10194
  }
10157
- var UUID_RE, HEX_RE, WORKOS_ID_RE, OPAQUE_SECRET_RE, BASE64_SECRET_RE, BASE64_MARKER_RE, TOKEN_RE, SENSITIVE_FIELDS, SENSITIVE_KEY_ALTERNATION, SENSITIVE_KEY_PATTERN, JSON_CREDENTIAL_RE, QUERY_CREDENTIAL_RE, REDACTED, PROVIDER_TOKEN_RE, APP_ERROR_BRAND, AppError, LLM_RATE_LIMIT_BRAND, LlmRateLimitError, LLM_PROVIDER_HTTP_BRAND, LlmProviderHttpError, LLM_PROVIDER_CONTENT_BRAND, LlmProviderContentError, LLM_PROVIDER_TIMEOUT_BRAND, LlmProviderTimeoutError, ExternalServiceError, CHANNEL_PROVIDER_HTTP_BRAND, ChannelProviderHttpError, MEDIA_PROVIDER_HTTP_BRAND, MediaProviderHttpError, AUTH_TYPE2, ORG_CREDENTIAL_AUTH_TYPES2, AUTH_TYPE_DISPLAY2, LEGACY_AUTH_TYPE_MAP2, VALID_AUTH_TYPES2, AGENT_ROLES2, SAFE_USER_ID_REGEX2, SUPPORTED_LOCALES2, uuidSchema2, paginationSchema3, timestampSchema2, idParamSchema2, clientOptionalString2, clientOptionalBoolean2, clientOptionalNumber2, messageAttachment2, MAX_MESSAGE_BODY_BYTES2, MAX_ATTACHMENTS_PER_MESSAGE2, MAX_AUDIO_FILE_BASE64_BYTES2, primaryRegionSchema2, placementSourceSchema2, orgIdParam2, orgAdminIdParam2, createOrganizationBody2, updateOrganizationBody2, addOrgAdminBody2, 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, MAX_OUTCOMES_PER_STATUS2, kanbanOutcomeSchema2, EXCLUSIVE_FLAG_PAIRS2, kanbanStatusSchema2, kanbanStatusesArraySchema2, laneSchema2, lanesArraySchema2, hubIdParam2, hubAdminIdParam2, hubUserIdParam2, hubIdentityIdParam2, hubTeamIdParam2, hubTeamUserDeleteParam2, hubSchemaQuery2, PREVIEW_LABEL_MAX_LENGTH2, MAX_ENDED_INDEX_RETENTION_DAYS2, previewLabelField2, createHubBody2, updateHubBody2, addHubAdminBody2, addHubIdentityAuthorizationBody2, contactDecisionBody2, approveContactBody2, listContactAccessQuery2, createHubTeamBody2, updateHubTeamBody2, addHubTeamUserBody2, reassignHubUserBody2, replicatePreviewBody2, updateChannelTestIdentitiesBody2, claimCodeChannelParam2, claimCodeDeleteParam2, connectionIdParam2, connectorIdParam2, listConnectionsQuery2, deleteConnectionQuery2, addConnectionBody2, editConnectionBody2, PRODUCTION_DIRECT_FIELDS2, setProductionCredentialBody2, registerWhatsappQuery2, registerWhatsappBody2, retryProvisioningQuery2, resendDomainStatusQuery2, PLACEHOLDER_TOKENS2, ALLOWED_TYPES2, SUBSCHEMA_OBJECT_KEYWORDS2, SUBSCHEMA_LIST_KEYWORDS2, SUBSCHEMA_MAP_KEYWORDS2, MAX_SCHEMA_DEPTH2, toolIdParam2, listToolsQuery2, toolAgentQuery2, deleteToolQuery2, toolConnectionsQuery2, nativeToolIdSchema2, CONTEXT_BOUNDARIES2, contextBoundarySchema2, addNativeToolBody2, addMcpToolBody2, createCustomToolBody2, updateCustomToolBody2, updateToolExecutionConfigBody2, initialValueCreateSchema2, initialValueUpdateSchema2, stateIdParam2, listStatesQuery2, stateNameSchema2, createStateBody2, updateStateBody2, reorderStatesBody2, variantAiModeSchema2, experimentStatusSchema2, overlayUpdateSchema2, experimentIdParam2, variantIdParam2, listExperimentsQuery2, listVariantsQuery2, listOverridesQuery2, deleteOverrideQuery2, createExperimentBody2, updateExperimentBody2, setExperimentStatusBody2, createVariantBody2, updateVariantBody2, upsertOverrideBody2, orgTagIdParam2, listOrgTagsQuery2, 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, analyticsSqlTable2, analyticsSqlSchemaQuery2, EVAL_PACING_PRESET_NAMES2, PACING_INTERVAL_MIN_MS2, PACING_INTERVAL_MAX_MS2, EVAL_RUN_DEADLINE_MIN_MS2, EVAL_RUN_DEADLINE_MAX_MS2, ISO_UTC_RE2, paginationSchema22, evalIdParam2, sessionIdParam2, scenarioSetIdParam2, hubIdQuery2, evalDateContextSchema2, EVAL_FIXTURE_NAME_MAX_LENGTH2, evalFixtureOverrideSchema2, runSessionQuery2, EVAL_INPUT_ROLES2, EVAL_INPUT_ROLE_LIST2, ROLE_ECHO_MAX2, EVAL_INITIAL_STATE_SCOPES2, MAX_INITIAL_STATE_ENTRIES2, evalInitialStateEntry2, createEvalBody2, updateEvalBody2, getEvalsQuery2, toggleEvalBody2, bulkToggleEvalsBody2, pacingConfigSchema2, sessionConfigSchema2, createSessionBody2, getSessionsQuery2, getSessionResultsQuery2, getSessionRunsQuery2, evalAnalyticsQuery2, getSessionCostQuery2, compareSessionsQuery2, evalsSqlBody2, evalsSqlSchemaQuery2, exportResultsQuery2, validateEvalBody2, hubAgentsQuery2, createScenarioSetBody2, updateScenarioSetBody2, scenarioSetsHubQuery2, createScenarioFromConversationBody2, createJourneyFromConversationBody2, EVAL_ATTACHMENT_HASH_REGEX2, evalAttachmentRef2, turnMayCarryAttachments2, ATTACHMENTS_USER_ONLY_MESSAGE2, journeyIdParam2, journeyToolCallSchema2, journeyTurnSchema2, journeyStepOverrideSchema2, fixtureField2, createJourneyBody2, updateJourneyBody2, evalSessionConfigResponseSchema2, evalSessionResponseSchema2, getConversationsQuery2, getMessagesQuery2, appMessageSenderType2, appMessageReceiverType2, apiChannelMessage2, apiChannelMessageBody2, appMessageBody2, appMessageResponse2, updateUserBody2, updateProfileBody2, pathnameRegex2, updatePreferencesBody2, registerPushTokenBody2, deletePushTokenQuery2, activityQuery2, deletionModeSchema2, deletionRequestBody2, templateLocaleSchema2, TEMPLATE_SLUG_REGEX2, templateSlugSchema2, templateStatusSchema2, templateFileMapSchema2, templateTextSchema2, templateUsesEntrySchema2, templateUsesSchema2, templateYamlLocaleEntry2, templateYamlWayaiBlock2, templateTagsSchema2, templateYamlSchema2, templateHeroSchema2, templatePushLocaleSchema2, templatePushBody2, templateListQuery2, templateSlugParam2, templateDetailQuery2, courseQuizScoreSchema2, upsertCourseLessonBody2, linkCourseCapstoneBody2, archiveHubIdParam2, archiveConversationParams2, archiveListQuery2, archiveMessageObservabilityParams2, conversationIdParam2, claimBody2, releaseBody2, transferBody2, closeBody2, additionalContextPayloadSchema2, kanbanUpdateBody2, annotateConversationBody2, observabilityParams2, observabilityListParams2, deleteUserConversationsBody2, deleteUserConversationsResponse2, sendMessageBody2, listConversationsQuery2, flagSourceSchema2, getConversationsResponse2, getConversationDetailParams2, getConversationDetailQuery2, getConversationDetailResponse2, listWhatsAppTemplatesQuery2, sendWhatsAppTemplateBody2, copilotSuggestBody2, copilotSuggestResponse2, CONSULT_THREAD_STATUSES2, consultThreadStatus2, CONSULT_THREAD_TITLE_MAX2, consultThreadTitle2, consultThreadSummary2, listConsultThreadsQuery2, listConsultThreadsResponse2, createConsultThreadBody2, createConsultThreadResponse2, consultThreadIdParam2, updateConsultThreadBody2, updateConsultThreadResponse2, CONSULT_AWAIT_TIMEOUT_MS2, billingOrgIdParam2, subscriptionItemParams2, spendCapBody2, growthPacksBody2, portalSessionBody2, checkoutSessionBody2, updateBillingCurrencyBody2, invoicesQuery2, downloadBody2, uploadQuery2, signUrlBody2, outboundSchemaQuery2, templateIdParam2, listTemplatesQuery2, deleteTemplateQuery2, templateStatusQuery2, createTemplateBody2, updateTemplateBody2, submitTemplateBody2, testTemplateBody2, contactIdParam2, listContactsQuery2, createContactBody2, updateContactBody2, listIdParam2, listListsQuery2, listListContactsQuery2, createListBody2, updateListBody2, addListContactsBody2, removeListContactsBody2, scheduleIdParam2, listSchedulesQuery2, listExecutionsQuery2, createScheduleBody2, updateScheduleBody2, MAX_RESOURCE_FILE_SIZE2, MAX_10MB_BASE64_ENCODED_BYTES2, MAX_EVAL_ATTACHMENT_ENCODED_BYTES2, MAX_EVAL_ATTACHMENT_CARRIERS2, MAX_EVAL_ATTACHMENT_AGGREGATE_ENCODED_BYTES2, MAX_RESOURCE_ENCODED_BYTES2, MAX_HUB_AS_CODE_RESOURCES2, MAX_HUB_AS_CODE_RESOURCE_FILES2, MAX_RESOURCE_AGGREGATE_ENCODED_BYTES2, MAX_CI_CONFIG_BODY_BYTES2, hubAsCodeStateSchema2, hubAsCodeResourceFileSchema2, hubAsCodeResourceSchema2, uuidPattern2, ciUuidSchema2, boundedHubAsCodeResourcesSchema2, hubAsCodeConfigSchema2, ciPullHubIdParam2, ciBranchParam2, ciPullQuery2, ciHubsQuery2, ciLookupQuery2, ciBranchesQuery2, ciSyncBody2, ciPushBody2, ciDiffBody2, ciPublishBody2, ciPublishPreviewBody2, ciSyncMcpBody2, ciOrgResourcesParam2, orgResourcesConfigSchema2, ciOrgResourcesPushBody2, ciOrgResourcesDiffBody2, CI_APPLY_ENTITY_KINDS2, CI_APPLY_OPERATIONS2, ciApplyErrorBaseSchema2, ciApplyErrorSchema2, ciSyncCountSchema2, ciSyncChangesSchema2, ciSyncWarningSchema2, ciSyncResponseSchema2, adminOrgIdParam2, adminOrgAdminIdParam2, adminUserIdParam2, adminPlanIdParam2, adminOrganizationsQuery2, adminUserSearchQuery2, kanbanSlugMigrationQuery2, adjustQuotaBody2, updatePlanBody2, addAdminUserBody2, updatePlatformConfigBody2, updateFreeOrgLimitBody2, adminScopedTargetBody2, updatePricingPlanBody2, dataExplorerSearchQuery2, dataExplorerOrgIdParam2, dataExplorerHubIdParam2, dataExplorerConvIdParam2, dataExplorerDoInstancesQuery2, dataExplorerNsIdParam2, dataExplorerKvKeysBody2, dataExplorerKvKeyBody2, uuidOrHexId2, dataExplorerDeleteOrgParam2, dataExplorerDeleteHubParam2, dataExplorerDeleteConvParam2, dataExplorerDeleteUserParam2, dataExplorerDeleteQuery2, dataExplorerKvDeleteBody2, pitrDoNamespace2, pitrBookmarkParam2, pitrRestoreBody2, healthSamplingTriggerBody2, dataExplorerDebugDoType2, DEBUG_READ_MAX_LIMIT2, DEBUG_READ_DEFAULT_LIMIT2, DEBUG_DO_HEX_PREFIX2, debugDoEntityId2, debugTableName2, dataExplorerDebugTablesParam2, dataExplorerDebugRowsParam2, dataExplorerDebugRowsQuery2, dataExplorerDebugAnalyticsTable2, debugUuid2, dataExplorerDebugAnalyticsRowsParam2, dataExplorerDebugAnalyticsRowsQuery2, debugHubConvParam2, debugMessageIdQuery2, sandboxEgressPolicy2, SANDBOX_EXEC_MAX_CMD_LENGTH2, SANDBOX_EXEC_MAX_ALLOWLIST2, SANDBOX_EXEC_MAX_TIMEOUT_MS2, adminSandboxExecBody2, whatsappCallbackBody2, authMeResponse2, wsTicketResponse2, sessionCheckResponse2, logoutResponse2, magicCodeSendBody2, magicCodeSendResponse2, magicCodeVerifyBody2, magicCodeVerifyResponse2, passwordLoginBody2, browserParams2, browserFoldersQuery2, browserFilesQuery2, stateOperationBody2, conversationListResourcesQuery2, conversationReadResourceQuery2, listPendingSchedulesQuery2, listHubAggregateSchedulesQuery2, reportSourceSchema2, intakeReportSourceSchema2, reportClassificationSchema2, reportStatusSchema2, reportLocaleSchema2, reportMessageAuthorRoleSchema2, reportMessageSchema2, sentryRefStatusSchema2, createReportBody2, editReportBody2, reporterReportSummarySchema2, reporterListResponseSchema2, getReportResponseSchema2, reporterTransitionResponseSchema2, contestReportBody2, reporterListQuery2, listReportsQuery2, GITHUB_ISSUE_URL_REGEX2, githubIssueUrlSchema2, transitionReportBody2, groupReportsBody2, holdReportBody2, clickhouseReadyResponse2, bootstrapQuery2, requestSnapshotChunkMessage2, MAX_NAME_LENGTH3, MAX_VALUE_LENGTH2, MAX_TAGS2, MAX_TAG_LENGTH2, MAX_SCOPE_HUBS2, MAX_SCOPE_TAGS2, vaultSecretScopeSchema2, vaultCreateBody2, vaultUpdateBody2, PERMISSIONS2, MAX_NAME_LENGTH22, MAX_HUBS_PER_GRANT2, MAX_HUB_TAGS_PER_GRANT2, MAX_GRANTS2, permissionEnum2, grantScopeSchema2, grantSchema2, createTokenBody2, tokenOrgIdParam2, tokenGrantScopeSchema2, tokenGrantSchema2, tokenMetadataSchema2, listTokensResponse2, createTokenResponse2, orgTokenSummarySchema2, listOrgTokensResponse2, invitePreviewQuery2, invitePreviewResponse2, 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, ADMIN_SKILL_NAME_REGEX2, adminSkillNameParam2, WAYAI_WORKSPACE_LAYOUT;
10195
+ var UUID_RE, HEX_RE, WORKOS_ID_RE, OPAQUE_SECRET_RE, BASE64_SECRET_RE, BASE64_MARKER_RE, TOKEN_RE, SENSITIVE_FIELDS, SENSITIVE_KEY_ALTERNATION, SENSITIVE_KEY_PATTERN, JSON_CREDENTIAL_RE, QUERY_CREDENTIAL_RE, REDACTED, PROVIDER_TOKEN_RE, APP_ERROR_BRAND, AppError, LLM_RATE_LIMIT_BRAND, LlmRateLimitError, LLM_PROVIDER_HTTP_BRAND, LlmProviderHttpError, LLM_PROVIDER_CONTENT_BRAND, LlmProviderContentError, LLM_PROVIDER_TIMEOUT_BRAND, LlmProviderTimeoutError, ExternalServiceError, CHANNEL_PROVIDER_HTTP_BRAND, ChannelProviderHttpError, MEDIA_PROVIDER_HTTP_BRAND, MediaProviderHttpError, AUTH_TYPE2, ORG_CREDENTIAL_AUTH_TYPES2, AUTH_TYPE_DISPLAY2, LEGACY_AUTH_TYPE_MAP2, VALID_AUTH_TYPES2, AGENT_ROLES2, SAFE_USER_ID_REGEX2, SUPPORTED_LOCALES2, uuidSchema2, paginationSchema3, timestampSchema2, idParamSchema2, clientOptionalString2, clientOptionalBoolean2, clientOptionalNumber2, messageAttachment2, MAX_MESSAGE_BODY_BYTES2, MAX_ATTACHMENTS_PER_MESSAGE2, MAX_AUDIO_FILE_BASE64_BYTES2, primaryRegionSchema2, placementSourceSchema2, orgIdParam2, orgAdminIdParam2, createOrganizationBody2, updateOrganizationBody2, addOrgAdminBody2, 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, MAX_OUTCOMES_PER_STATUS2, kanbanOutcomeSchema2, EXCLUSIVE_FLAG_PAIRS2, kanbanStatusSchema2, kanbanStatusesArraySchema2, laneSchema2, lanesArraySchema2, hubIdParam2, hubAdminIdParam2, hubUserIdParam2, hubIdentityIdParam2, hubTeamIdParam2, hubTeamUserDeleteParam2, hubSchemaQuery2, PREVIEW_LABEL_MAX_LENGTH2, MAX_ENDED_INDEX_RETENTION_DAYS2, previewLabelField2, createHubBody2, updateHubBody2, addHubAdminBody2, addHubIdentityAuthorizationBody2, contactDecisionBody2, approveContactBody2, listContactAccessQuery2, createHubTeamBody2, updateHubTeamBody2, addHubTeamUserBody2, reassignHubUserBody2, replicatePreviewBody2, updateChannelTestIdentitiesBody2, claimCodeChannelParam2, claimCodeDeleteParam2, connectionIdParam2, connectorIdParam2, listConnectionsQuery2, deleteConnectionQuery2, addConnectionBody2, editConnectionBody2, PRODUCTION_DIRECT_FIELDS2, setProductionCredentialBody2, registerWhatsappQuery2, registerWhatsappBody2, retryProvisioningQuery2, resendDomainStatusQuery2, PLACEHOLDER_TOKENS2, ALLOWED_TYPES2, SUBSCHEMA_OBJECT_KEYWORDS2, SUBSCHEMA_LIST_KEYWORDS2, SUBSCHEMA_MAP_KEYWORDS2, MAX_SCHEMA_DEPTH2, toolIdParam2, listToolsQuery2, toolAgentQuery2, deleteToolQuery2, toolConnectionsQuery2, nativeToolIdSchema2, CONTEXT_BOUNDARIES2, contextBoundarySchema2, addNativeToolBody2, addMcpToolBody2, createCustomToolBody2, updateCustomToolBody2, updateToolExecutionConfigBody2, initialValueCreateSchema2, initialValueUpdateSchema2, stateIdParam2, listStatesQuery2, stateNameSchema2, createStateBody2, updateStateBody2, reorderStatesBody2, variantAiModeSchema2, experimentStatusSchema2, overlayUpdateSchema2, experimentIdParam2, variantIdParam2, listExperimentsQuery2, listVariantsQuery2, listOverridesQuery2, deleteOverrideQuery2, createExperimentBody2, updateExperimentBody2, setExperimentStatusBody2, createVariantBody2, updateVariantBody2, upsertOverrideBody2, orgTagIdParam2, listOrgTagsQuery2, 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, analyticsSqlTable2, analyticsSqlSchemaQuery2, EVAL_PACING_PRESET_NAMES2, PACING_INTERVAL_MIN_MS2, PACING_INTERVAL_MAX_MS2, EVAL_MAX_RUNS_PER_SCENARIO2, EVAL_RUN_DEADLINE_MIN_MS2, EVAL_RUN_DEADLINE_MAX_MS2, ISO_UTC_RE2, paginationSchema22, evalIdParam2, sessionIdParam2, scenarioSetIdParam2, hubIdQuery2, evalDateContextSchema2, EVAL_FIXTURE_NAME_MAX_LENGTH2, evalFixtureOverrideSchema2, runSessionQuery2, EVAL_INPUT_ROLES2, EVAL_INPUT_ROLE_LIST2, ROLE_ECHO_MAX2, EVAL_INITIAL_STATE_SCOPES2, MAX_INITIAL_STATE_ENTRIES2, evalInitialStateEntry2, createEvalBody2, updateEvalBody2, getEvalsQuery2, toggleEvalBody2, bulkToggleEvalsBody2, pacingConfigSchema2, EVAL_MAX_SELECTED_SCENARIOS2, evalScenarioSelectionEntrySchema2, evalScenarioSelectionSchema2, sessionConfigSchema2, createSessionBody2, getSessionsQuery2, getSessionResultsQuery2, getSessionRunsQuery2, evalAnalyticsQuery2, getSessionCostQuery2, compareSessionsQuery2, evalsSqlBody2, evalsSqlSchemaQuery2, exportResultsQuery2, validateEvalBody2, hubAgentsQuery2, createScenarioSetBody2, updateScenarioSetBody2, scenarioSetsHubQuery2, createScenarioFromConversationBody2, createJourneyFromConversationBody2, EVAL_ATTACHMENT_HASH_REGEX2, evalAttachmentRef2, turnMayCarryAttachments2, ATTACHMENTS_USER_ONLY_MESSAGE2, journeyIdParam2, journeyToolCallSchema2, journeyTurnSchema2, journeyStepOverrideSchema2, fixtureField2, createJourneyBody2, updateJourneyBody2, evalSessionConfigResponseSchema2, evalSessionResponseSchema2, seedReleaseStatusSchema2, getConversationsQuery2, getMessagesQuery2, appMessageSenderType2, appMessageReceiverType2, apiChannelMessage2, apiChannelMessageBody2, appMessageBody2, appMessageResponse2, updateUserBody2, updateProfileBody2, pathnameRegex2, updatePreferencesBody2, registerPushTokenBody2, deletePushTokenQuery2, activityQuery2, deletionModeSchema2, deletionRequestBody2, templateLocaleSchema2, TEMPLATE_SLUG_REGEX2, templateSlugSchema2, templateStatusSchema2, templateFileMapSchema2, templateTextSchema2, templateUsesEntrySchema2, templateUsesSchema2, templateYamlLocaleEntry2, templateYamlWayaiBlock2, templateTagsSchema2, templateYamlSchema2, templateHeroSchema2, templatePushLocaleSchema2, templatePushBody2, templateListQuery2, templateSlugParam2, templateDetailQuery2, courseQuizScoreSchema2, upsertCourseLessonBody2, linkCourseCapstoneBody2, archiveHubIdParam2, archiveConversationParams2, archiveListQuery2, archiveMessageObservabilityParams2, conversationIdParam2, claimBody2, releaseBody2, transferBody2, closeBody2, additionalContextPayloadSchema2, kanbanUpdateBody2, annotateConversationBody2, observabilityParams2, observabilityListParams2, deleteUserConversationsBody2, deleteUserConversationsResponse2, sendMessageBody2, listConversationsQuery2, flagSourceSchema2, getConversationsResponse2, getConversationDetailParams2, getConversationDetailQuery2, getConversationDetailResponse2, listWhatsAppTemplatesQuery2, sendWhatsAppTemplateBody2, copilotSuggestBody2, copilotSuggestResponse2, CONSULT_THREAD_STATUSES2, consultThreadStatus2, CONSULT_THREAD_TITLE_MAX2, consultThreadTitle2, consultThreadSummary2, listConsultThreadsQuery2, listConsultThreadsResponse2, createConsultThreadBody2, createConsultThreadResponse2, consultThreadIdParam2, updateConsultThreadBody2, updateConsultThreadResponse2, CONSULT_AWAIT_TIMEOUT_MS2, billingOrgIdParam2, subscriptionItemParams2, spendCapBody2, growthPacksBody2, portalSessionBody2, checkoutSessionBody2, updateBillingCurrencyBody2, invoicesQuery2, downloadBody2, uploadQuery2, signUrlBody2, outboundSchemaQuery2, templateIdParam2, listTemplatesQuery2, deleteTemplateQuery2, templateStatusQuery2, createTemplateBody2, updateTemplateBody2, submitTemplateBody2, testTemplateBody2, contactIdParam2, listContactsQuery2, createContactBody2, updateContactBody2, listIdParam2, listListsQuery2, listListContactsQuery2, createListBody2, updateListBody2, addListContactsBody2, removeListContactsBody2, scheduleIdParam2, listSchedulesQuery2, listExecutionsQuery2, createScheduleBody2, updateScheduleBody2, MAX_RESOURCE_FILE_SIZE2, MAX_10MB_BASE64_ENCODED_BYTES2, MAX_EVAL_ATTACHMENT_ENCODED_BYTES2, MAX_EVAL_ATTACHMENT_CARRIERS2, MAX_EVAL_ATTACHMENT_AGGREGATE_ENCODED_BYTES2, MAX_RESOURCE_ENCODED_BYTES2, MAX_HUB_AS_CODE_RESOURCES2, MAX_HUB_AS_CODE_RESOURCE_FILES2, MAX_RESOURCE_AGGREGATE_ENCODED_BYTES2, MAX_CI_CONFIG_BODY_BYTES2, hubAsCodeStateSchema2, hubAsCodeResourceFileSchema2, hubAsCodeResourceSchema2, uuidPattern2, ciUuidSchema2, boundedHubAsCodeResourcesSchema2, hubAsCodeConfigSchema2, ciPullHubIdParam2, ciBranchParam2, ciPullQuery2, ciHubsQuery2, ciLookupQuery2, ciBranchesQuery2, ciSyncBody2, ciPushBody2, ciDiffBody2, ciPublishBody2, ciPublishPreviewBody2, ciSyncMcpBody2, ciOrgResourcesParam2, orgResourcesConfigSchema2, ciOrgResourcesPushBody2, ciOrgResourcesDiffBody2, CI_APPLY_ENTITY_KINDS2, CI_APPLY_OPERATIONS2, ciApplyErrorBaseSchema2, ciApplyErrorSchema2, ciSyncCountSchema2, ciSyncChangesSchema2, ciSyncWarningSchema2, ciSyncResponseSchema2, adminOrgIdParam2, adminOrgAdminIdParam2, adminUserIdParam2, adminPlanIdParam2, adminOrganizationsQuery2, adminUserSearchQuery2, kanbanSlugMigrationQuery2, adjustQuotaBody2, updatePlanBody2, addAdminUserBody2, updatePlatformConfigBody2, updateFreeOrgLimitBody2, adminScopedTargetBody2, updatePricingPlanBody2, dataExplorerSearchQuery2, dataExplorerOrgIdParam2, dataExplorerHubIdParam2, dataExplorerConvIdParam2, dataExplorerDoInstancesQuery2, dataExplorerNsIdParam2, dataExplorerKvKeysBody2, dataExplorerKvKeyBody2, uuidOrHexId2, dataExplorerDeleteOrgParam2, dataExplorerDeleteHubParam2, dataExplorerDeleteConvParam2, dataExplorerDeleteUserParam2, dataExplorerDeleteQuery2, dataExplorerKvDeleteBody2, pitrDoNamespace2, pitrBookmarkParam2, pitrRestoreBody2, healthSamplingTriggerBody2, dataExplorerDebugDoType2, DEBUG_READ_MAX_LIMIT2, DEBUG_READ_DEFAULT_LIMIT2, DEBUG_DO_HEX_PREFIX2, debugDoEntityId2, debugTableName2, dataExplorerDebugTablesParam2, dataExplorerDebugRowsParam2, dataExplorerDebugRowsQuery2, dataExplorerDebugAnalyticsTable2, debugUuid2, dataExplorerDebugAnalyticsRowsParam2, dataExplorerDebugAnalyticsRowsQuery2, debugHubConvParam2, debugMessageIdQuery2, sandboxEgressPolicy2, SANDBOX_EXEC_MAX_CMD_LENGTH2, SANDBOX_EXEC_MAX_ALLOWLIST2, SANDBOX_EXEC_MAX_TIMEOUT_MS2, adminSandboxExecBody2, whatsappCallbackBody2, authMeResponse2, wsTicketResponse2, sessionCheckResponse2, logoutResponse2, magicCodeSendBody2, magicCodeSendResponse2, magicCodeVerifyBody2, magicCodeVerifyResponse2, passwordLoginBody2, browserParams2, browserFoldersQuery2, browserFilesQuery2, stateOperationBody2, conversationListResourcesQuery2, conversationReadResourceQuery2, listPendingSchedulesQuery2, listHubAggregateSchedulesQuery2, reportSourceSchema2, intakeReportSourceSchema2, reportClassificationSchema2, reportStatusSchema2, reportLocaleSchema2, reportMessageAuthorRoleSchema2, reportMessageSchema2, sentryRefStatusSchema2, createReportBody2, editReportBody2, reporterReportSummarySchema2, reporterListResponseSchema2, getReportResponseSchema2, reporterTransitionResponseSchema2, contestReportBody2, reporterListQuery2, listReportsQuery2, GITHUB_ISSUE_URL_REGEX2, githubIssueUrlSchema2, transitionReportBody2, groupReportsBody2, holdReportBody2, clickhouseReadyResponse2, bootstrapQuery2, requestSnapshotChunkMessage2, MAX_NAME_LENGTH3, MAX_VALUE_LENGTH2, MAX_TAGS2, MAX_TAG_LENGTH2, MAX_SCOPE_HUBS2, MAX_SCOPE_TAGS2, vaultSecretScopeSchema2, vaultCreateBody2, vaultUpdateBody2, PERMISSIONS2, MAX_NAME_LENGTH22, MAX_HUBS_PER_GRANT2, MAX_HUB_TAGS_PER_GRANT2, MAX_GRANTS2, permissionEnum2, grantScopeSchema2, grantSchema2, createTokenBody2, tokenOrgIdParam2, tokenGrantScopeSchema2, tokenGrantSchema2, tokenMetadataSchema2, listTokensResponse2, createTokenResponse2, orgTokenSummarySchema2, listOrgTokensResponse2, invitePreviewQuery2, invitePreviewResponse2, 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, ADMIN_SKILL_NAME_REGEX2, adminSkillNameParam2, WAYAI_WORKSPACE_LAYOUT;
10158
10196
  var init_dist = __esm({
10159
10197
  "../../packages/core/dist/index.js"() {
10160
10198
  "use strict";
@@ -11577,6 +11615,7 @@ var init_dist = __esm({
11577
11615
  EVAL_PACING_PRESET_NAMES2 = ["conservative", "balanced", "fast", "custom"];
11578
11616
  PACING_INTERVAL_MIN_MS2 = 50;
11579
11617
  PACING_INTERVAL_MAX_MS2 = 6e4;
11618
+ EVAL_MAX_RUNS_PER_SCENARIO2 = 100;
11580
11619
  EVAL_RUN_DEADLINE_MIN_MS2 = 1e3;
11581
11620
  EVAL_RUN_DEADLINE_MAX_MS2 = 18e5;
11582
11621
  ISO_UTC_RE2 = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/;
@@ -11655,8 +11694,20 @@ var init_dist = __esm({
11655
11694
  (v) => v.preset !== "custom" || typeof v.custom_interval_ms === "number",
11656
11695
  { message: 'custom_interval_ms required when preset is "custom"' }
11657
11696
  );
11697
+ EVAL_MAX_SELECTED_SCENARIOS2 = 200;
11698
+ evalScenarioSelectionEntrySchema2 = external_exports.object({
11699
+ eval_id: external_exports.string().uuid(),
11700
+ run_numbers: external_exports.array(external_exports.number().int().min(1).max(EVAL_MAX_RUNS_PER_SCENARIO2)).min(1).max(EVAL_MAX_RUNS_PER_SCENARIO2).refine((runs) => new Set(runs).size === runs.length, {
11701
+ message: "run_numbers must not repeat a run"
11702
+ }).optional()
11703
+ }).strict();
11704
+ evalScenarioSelectionSchema2 = external_exports.array(evalScenarioSelectionEntrySchema2).min(1).max(EVAL_MAX_SELECTED_SCENARIOS2).refine(
11705
+ (entries) => new Set(entries.map((e) => e.eval_id)).size === entries.length,
11706
+ { message: "scenario_selection must not name the same scenario twice" }
11707
+ );
11658
11708
  sessionConfigSchema2 = external_exports.object({
11659
11709
  pacing: pacingConfigSchema2.optional(),
11710
+ scenario_selection: evalScenarioSelectionSchema2.optional(),
11660
11711
  // Server-owned immutable clock.
11661
11712
  date_context: external_exports.never().optional(),
11662
11713
  date_context_claimed: external_exports.never().optional(),
@@ -11778,7 +11829,7 @@ var init_dist = __esm({
11778
11829
  message: ATTACHMENTS_USER_ONLY_MESSAGE2
11779
11830
  });
11780
11831
  journeyStepOverrideSchema2 = external_exports.object({
11781
- number_of_runs: external_exports.number().int().positive().max(100).optional(),
11832
+ number_of_runs: external_exports.number().int().positive().max(EVAL_MAX_RUNS_PER_SCENARIO2).optional(),
11782
11833
  evaluator_instructions: external_exports.string().max(4e3).nullable().optional()
11783
11834
  });
11784
11835
  fixtureField2 = external_exports.string().max(EVAL_FIXTURE_NAME_MAX_LENGTH2);
@@ -11816,7 +11867,15 @@ var init_dist = __esm({
11816
11867
  // Internal lifecycle fields: never expose them as response data.
11817
11868
  date_context_claimed: external_exports.unknown().optional().transform(() => void 0),
11818
11869
  seed_cleanup: external_exports.unknown().optional().transform(() => void 0),
11819
- pacing: pacingConfigSchema2.optional().catch(void 0)
11870
+ pacing: pacingConfigSchema2.optional().catch(void 0),
11871
+ /**
11872
+ * The exact scenarios and repetitions this session ran (gh #3748), or absent
11873
+ * for a whole-set session. Declared — not merely carried by `passthrough()` —
11874
+ * because it is the session's audit record: a reader must be able to tell what
11875
+ * was scored, and reproduce it. `.catch` only omits an unreadable legacy value
11876
+ * from the RESPONSE; the run path refuses such a session outright.
11877
+ */
11878
+ scenario_selection: evalScenarioSelectionSchema2.optional().catch(void 0)
11820
11879
  }).passthrough();
11821
11880
  evalSessionResponseSchema2 = external_exports.object({
11822
11881
  eval_session_id: external_exports.string(),
@@ -11838,6 +11897,7 @@ var init_dist = __esm({
11838
11897
  /** Launch-time snapshot. */
11839
11898
  session_config: evalSessionConfigResponseSchema2.optional()
11840
11899
  }).passthrough();
11900
+ seedReleaseStatusSchema2 = external_exports.enum(["not_applicable", "pending", "releasing"]);
11841
11901
  getConversationsQuery2 = external_exports.object({
11842
11902
  nav_item: external_exports.enum(["chat", "task", "support", "chat_task"]),
11843
11903
  hub_team_user_id: external_exports.string().optional(),
@@ -19821,8 +19881,15 @@ function formatEvalSessionStopCommand(sessionId, hubId) {
19821
19881
  function formatEvalResultsCommand(sessionId, hubId) {
19822
19882
  return `wayai eval-results --session ${sessionId} --hub ${hubId}`;
19823
19883
  }
19884
+ function describeSeedRelease(status) {
19885
+ if (status === "pending") {
19886
+ return "A turn that started before the stop is still finishing \u2014 its fixture stays reserved until that turn settles.";
19887
+ }
19888
+ if (status === "releasing") return "Its fixture is being released.";
19889
+ return "A turn already in progress may still be finishing \u2014 wait for it before starting another run.";
19890
+ }
19824
19891
  function classifyStopOutcome(response) {
19825
- return response.data.stopped ? { kind: "cancelled" } : { kind: "already_finished", status: response.data.session.session_status };
19892
+ return response.data.stopped ? { kind: "cancelled", seedRelease: response.data.seed_release_status } : { kind: "already_finished", status: response.data.session.session_status };
19826
19893
  }
19827
19894
  function isTerminalStopFailure(err) {
19828
19895
  return err instanceof ApiError && err.status >= 400 && err.status < 500 && err.status !== 408 && err.status !== 429;
@@ -19895,7 +19962,7 @@ ${signal} received; stopping remote eval session ${input.sessionId}...`);
19895
19962
  console.error(`See its results: ${formatEvalResultsCommand(input.sessionId, input.hubId)}`);
19896
19963
  } else {
19897
19964
  console.error("Remote session cancellation requested.");
19898
- console.error("A turn already in progress may still be finishing \u2014 wait for it before starting another run.");
19965
+ console.error(describeSeedRelease(outcome.seedRelease));
19899
19966
  }
19900
19967
  finish(signalExitCode);
19901
19968
  }).catch((err) => {
@@ -19934,6 +20001,37 @@ var init_eval_session_control = __esm({
19934
20001
  }
19935
20002
  });
19936
20003
 
20004
+ // src/lib/eval-fixture-queue.ts
20005
+ async function runWithFixtureQueue(opts) {
20006
+ let delay2 = FIXTURE_QUEUE_INITIAL_DELAY_MS;
20007
+ for (; ; ) {
20008
+ try {
20009
+ return await opts.attempt();
20010
+ } catch (err) {
20011
+ if (extractApiErrorCode(err) !== QUEUEABLE_CONFLICT) throw err;
20012
+ if (opts.noQueue) throw err;
20013
+ const remaining = opts.deadlineMs - opts.now();
20014
+ if (remaining <= 0) throw err;
20015
+ const waitMs = Math.min(delay2, remaining);
20016
+ opts.onWait({ message: extractApiMessage(err), waitMs });
20017
+ await opts.sleep(waitMs);
20018
+ if (await opts.interrupted?.()) throw err;
20019
+ if (opts.now() >= opts.deadlineMs) throw err;
20020
+ delay2 = Math.min(delay2 * 2, FIXTURE_QUEUE_MAX_DELAY_MS);
20021
+ }
20022
+ }
20023
+ }
20024
+ var FIXTURE_QUEUE_INITIAL_DELAY_MS, FIXTURE_QUEUE_MAX_DELAY_MS, QUEUEABLE_CONFLICT;
20025
+ var init_eval_fixture_queue = __esm({
20026
+ "src/lib/eval-fixture-queue.ts"() {
20027
+ "use strict";
20028
+ init_errors2();
20029
+ FIXTURE_QUEUE_INITIAL_DELAY_MS = 5e3;
20030
+ FIXTURE_QUEUE_MAX_DELAY_MS = 3e4;
20031
+ QUEUEABLE_CONFLICT = "fixture_target_in_use";
20032
+ }
20033
+ });
20034
+
19937
20035
  // src/commands/run-eval.ts
19938
20036
  var run_eval_exports = {};
19939
20037
  __export(run_eval_exports, {
@@ -19944,15 +20042,19 @@ async function runEvalCommand(args2) {
19944
20042
  const { config, accessToken } = await requireAuth();
19945
20043
  requireRepoConfig();
19946
20044
  let noWait = false;
20045
+ let noQueue = false;
19947
20046
  let timeoutSeconds = DEFAULT_TIMEOUT_S;
19948
20047
  let setName;
19949
- let evalName;
20048
+ const evalNames = [];
20049
+ let runNumbers;
19950
20050
  let pacing;
19951
20051
  let fixtureOverride;
19952
20052
  for (let i = 0; i < args2.length; i++) {
19953
20053
  const arg = args2[i];
19954
20054
  if (arg === "--no-wait") {
19955
20055
  noWait = true;
20056
+ } else if (arg === "--no-queue") {
20057
+ noQueue = true;
19956
20058
  } else if (arg === "--timeout") {
19957
20059
  timeoutSeconds = parseInt(args2[++i], 10);
19958
20060
  if (isNaN(timeoutSeconds) || timeoutSeconds <= 0) {
@@ -19961,16 +20063,19 @@ async function runEvalCommand(args2) {
19961
20063
  }
19962
20064
  } else if (arg === "--set") {
19963
20065
  setName = args2[++i];
19964
- if (!setName) {
20066
+ if (!setName || setName.startsWith("--")) {
19965
20067
  console.error("--set requires a scenario set name");
19966
20068
  process.exit(1);
19967
20069
  }
19968
20070
  } else if (arg === "--eval") {
19969
- evalName = args2[++i];
19970
- if (!evalName) {
20071
+ const name = args2[++i];
20072
+ if (!name || name.startsWith("--")) {
19971
20073
  console.error("--eval requires an eval name");
19972
20074
  process.exit(1);
19973
20075
  }
20076
+ evalNames.push(name);
20077
+ } else if (arg === "--runs") {
20078
+ runNumbers = parseRunNumbers(args2[++i]);
19974
20079
  } else if (arg === "--pacing") {
19975
20080
  pacing = parsePacing(args2[++i]);
19976
20081
  } else if (arg === "--fixture") {
@@ -19982,8 +20087,10 @@ async function runEvalCommand(args2) {
19982
20087
  }
19983
20088
  }
19984
20089
  }
19985
- if (setName && evalName) {
19986
- console.error("Specify only one of --set or --eval.");
20090
+ if (runNumbers && evalNames.length !== 1) {
20091
+ console.error(
20092
+ evalNames.length === 0 ? "--runs selects repetitions of a single scenario \u2014 name it with --eval <name>." : "--runs applies to a single scenario, but several --eval flags were given. Run them one at a time."
20093
+ );
19987
20094
  process.exit(1);
19988
20095
  }
19989
20096
  const client = new ApiClient({
@@ -20008,17 +20115,34 @@ async function runEvalCommand(args2) {
20008
20115
  process.exit(1);
20009
20116
  }
20010
20117
  scenarioSetId = match.scenario_set_id;
20011
- } else if (evalName) {
20012
- const match = evalsResult.data.evals.find((e) => e.eval_name === evalName);
20013
- if (!match) {
20014
- console.error(`No enabled eval named "${evalName}". Run \`wayai evals\` to list (it may be disabled).`);
20015
- process.exit(1);
20118
+ }
20119
+ let scenarioSelection;
20120
+ if (evalNames.length > 0) {
20121
+ const selected = resolveSelectedEvals(evalNames, evalsResult.data.evals, setName, scenarioSetId);
20122
+ scenarioSetId = selected.scenarioSetId;
20123
+ if (runNumbers) {
20124
+ const target = selected.evals[0];
20125
+ const configuredRuns = target.number_of_runs || 1;
20126
+ const outOfRange = runNumbers.filter((n) => n > configuredRuns);
20127
+ if (outOfRange.length > 0) {
20128
+ console.error(
20129
+ `Scenario "${target.eval_name}" is configured for ${configuredRuns} run${configuredRuns === 1 ? "" : "s"}, so --runs ${outOfRange.join(",")} cannot be selected (valid: 1${configuredRuns > 1 ? `-${configuredRuns}` : ""}).`
20130
+ );
20131
+ process.exit(1);
20132
+ }
20016
20133
  }
20017
- scenarioSetId = match.scenario_set_id;
20134
+ scenarioSelection = selected.evals.map((e) => ({
20135
+ eval_id: e.eval_id,
20136
+ ...runNumbers ? { run_numbers: runNumbers } : {}
20137
+ }));
20138
+ const runCount = runNumbers ? runNumbers.length : selected.evals.reduce((sum, e) => sum + (e.number_of_runs || 1), 0);
20139
+ console.log(
20140
+ `Selected ${selected.evals.length} scenario${selected.evals.length === 1 ? "" : "s"} (${runCount} run${runCount === 1 ? "" : "s"})${runNumbers ? `: run${runNumbers.length === 1 ? "" : "s"} ${runNumbers.join(", ")}` : ""}`
20141
+ );
20018
20142
  }
20019
20143
  const now = /* @__PURE__ */ new Date();
20020
20144
  const sessionName = `CLI run ${now.toISOString().slice(0, 16).replace("T", " ")}`;
20021
- const createResult = await client.createEvalSession(hubId, sessionName, scenarioSetId, pacing);
20145
+ const createResult = await client.createEvalSession(hubId, sessionName, { scenarioSetId, pacing, scenarioSelection });
20022
20146
  const sessionId = createResult.data.session.eval_session_id;
20023
20147
  const signalController = installEvalSignalHandlers({
20024
20148
  hubId,
@@ -20034,6 +20158,7 @@ async function runEvalCommand(args2) {
20034
20158
  pacing,
20035
20159
  fixtureOverride,
20036
20160
  noWait,
20161
+ noQueue,
20037
20162
  timeoutSeconds,
20038
20163
  signal: signalController
20039
20164
  });
@@ -20043,6 +20168,9 @@ async function runEvalCommand(args2) {
20043
20168
  }
20044
20169
  async function pollEvalSession(input) {
20045
20170
  const { client, hubId, sessionId, sessionName, pacing, fixtureOverride, noWait, timeoutSeconds } = input;
20171
+ const noQueue = input.noQueue || noWait;
20172
+ let queuedSeconds = 0;
20173
+ const runDeadlineMs = Date.now() + timeoutSeconds * 1e3;
20046
20174
  const signalController = input.signal;
20047
20175
  const manualStopCommand = signalController.manualStopCommand;
20048
20176
  console.log(`Created session: ${sessionName} (${sessionId})`);
@@ -20051,15 +20179,34 @@ async function pollEvalSession(input) {
20051
20179
  console.log(`Pacing: ${desc}`);
20052
20180
  }
20053
20181
  try {
20054
- const runResult = fixtureOverride ? await client.runEvalSession(hubId, sessionId, fixtureOverride) : await client.runEvalSession(hubId, sessionId);
20182
+ const queueStartedMs = Date.now();
20183
+ const runResult = await runWithFixtureQueue({
20184
+ attempt: () => fixtureOverride ? client.runEvalSession(hubId, sessionId, fixtureOverride) : client.runEvalSession(hubId, sessionId),
20185
+ deadlineMs: runDeadlineMs,
20186
+ noQueue,
20187
+ now: () => Date.now(),
20188
+ sleep,
20189
+ // Ctrl-C during the wait exits through the already-installed stop path.
20190
+ interrupted: () => signalController.interrupted(),
20191
+ onWait: ({ message, waitMs }) => {
20192
+ console.log(`${message} Waiting ${Math.round(waitMs / 1e3)}s\u2026`);
20193
+ }
20194
+ });
20195
+ queuedSeconds = Math.round((Date.now() - queueStartedMs) / 1e3);
20055
20196
  const seed = runResult.data.session.session_config?.seed;
20056
20197
  if (seed?.fixture) {
20057
20198
  console.log(`Fixture: ${seed.fixture}${seed.target_base ? ` (base: ${seed.target_base})` : ""}`);
20058
20199
  }
20200
+ for (const warning of runResult.data.seed_lease_warnings ?? []) {
20201
+ console.warn(`Warning: ${warning === "SEED_LEASE_CAPACITY_95_PERCENT" ? "95%" : "80%"} of this preview base's seed-lease ledger is used. Replace the preview before it fills.`);
20202
+ }
20059
20203
  } catch (err) {
20060
20204
  if (await signalController.interrupted()) return;
20061
20205
  console.error(`
20062
20206
  Failed to start session: ${extractApiMessage(err)}`);
20207
+ if (extractApiErrorCode(err) === "fixture_target_in_use" && !noQueue) {
20208
+ console.error(`Waited ${timeoutSeconds}s for the fixture. Raise --timeout, or use --no-queue to fail immediately.`);
20209
+ }
20063
20210
  console.error(`Session ID: ${sessionId}`);
20064
20211
  console.error(`Stop it if it started anyway: ${manualStopCommand}`);
20065
20212
  process.exit(1);
@@ -20073,11 +20220,11 @@ Session ID: ${sessionId}`);
20073
20220
  console.log(`Stop it early with: ${manualStopCommand}`);
20074
20221
  return;
20075
20222
  }
20076
- const deadline = Date.now() + timeoutSeconds * 1e3;
20077
20223
  let consecutivePollErrors = 0;
20078
- while (Date.now() < deadline) {
20079
- await sleep(POLL_INTERVAL_MS);
20224
+ while (Date.now() < runDeadlineMs) {
20225
+ await sleep(Math.min(POLL_INTERVAL_MS, Math.max(0, runDeadlineMs - Date.now())));
20080
20226
  if (await signalController.interrupted()) return;
20227
+ if (Date.now() >= runDeadlineMs) break;
20081
20228
  let details;
20082
20229
  try {
20083
20230
  details = await client.getEvalSessionDetails(hubId, sessionId);
@@ -20117,15 +20264,69 @@ Could not load failure details (${extractApiMessage(err)}).`);
20117
20264
  }
20118
20265
  process.stdout.write(`\rRunning... ${completedRuns}/${totalRuns} completed`);
20119
20266
  }
20120
- console.log(`
20267
+ console.error(`
20121
20268
 
20122
- Timeout after ${timeoutSeconds}s. Session is still running.`);
20123
- console.log(`Stop it with: ${manualStopCommand}`);
20124
- console.log(`Check results: wayai eval-results --session ${sessionId}`);
20269
+ Timeout after ${timeoutSeconds}s${queuedSeconds > 0 ? ` (${queuedSeconds}s of it waiting for the fixture)` : ""}. Session is still running.`);
20270
+ console.error(`Stop it with: ${manualStopCommand}`);
20271
+ console.error(`Check results: wayai eval-results --session ${sessionId}`);
20272
+ process.exit(1);
20125
20273
  }
20126
20274
  function sleep(ms) {
20127
20275
  return new Promise((resolve6) => setTimeout(resolve6, ms));
20128
20276
  }
20277
+ function parseRunNumbers(raw) {
20278
+ if (!raw || raw.startsWith("--")) {
20279
+ console.error("--runs requires a comma-separated list of run numbers, e.g. --runs 2,6");
20280
+ process.exit(1);
20281
+ }
20282
+ const parts = raw.split(",").map((p) => p.trim()).filter((p) => p.length > 0);
20283
+ if (parts.length === 0) {
20284
+ console.error("--runs requires at least one run number, e.g. --runs 2,6");
20285
+ process.exit(1);
20286
+ }
20287
+ const runs = [];
20288
+ for (const part of parts) {
20289
+ const n = Number(part);
20290
+ if (!Number.isInteger(n) || String(n) !== part || n < 1 || n > EVAL_MAX_RUNS_PER_SCENARIO2) {
20291
+ console.error(`--runs values must be whole numbers between 1 and ${EVAL_MAX_RUNS_PER_SCENARIO2} (got "${part}")`);
20292
+ process.exit(1);
20293
+ }
20294
+ if (runs.includes(n)) {
20295
+ console.error(`--runs lists run ${n} more than once`);
20296
+ process.exit(1);
20297
+ }
20298
+ runs.push(n);
20299
+ }
20300
+ return runs.sort((a, b) => a - b);
20301
+ }
20302
+ function resolveSelectedEvals(names, enabledEvals, setName, boundSetId) {
20303
+ const candidates = boundSetId ? enabledEvals.filter((e) => e.scenario_set_id === boundSetId) : enabledEvals;
20304
+ const resolved = [];
20305
+ for (const name of names) {
20306
+ const matches = candidates.filter((e) => e.eval_name === name);
20307
+ if (matches.length === 0) {
20308
+ console.error(
20309
+ `No enabled eval named "${name}"${setName ? ` in scenario set "${setName}"` : ""}. Run \`wayai evals\` to list (it may be disabled).`
20310
+ );
20311
+ process.exit(1);
20312
+ }
20313
+ if (matches.length > 1) {
20314
+ console.error(`Several enabled evals are named "${name}". Disambiguate with --set <name>.`);
20315
+ process.exit(1);
20316
+ }
20317
+ if (resolved.some((e) => e.eval_id === matches[0].eval_id)) {
20318
+ console.error(`--eval "${name}" was given more than once.`);
20319
+ process.exit(1);
20320
+ }
20321
+ resolved.push(matches[0]);
20322
+ }
20323
+ const setIds = [...new Set(resolved.map((e) => e.scenario_set_id))];
20324
+ if (setIds.length > 1) {
20325
+ console.error("The selected evals span multiple scenario sets. A session runs one set \u2014 select scenarios from a single set.");
20326
+ process.exit(1);
20327
+ }
20328
+ return { evals: resolved, scenarioSetId: setIds[0] };
20329
+ }
20129
20330
  function parsePacing(raw) {
20130
20331
  const NAMED = EVAL_PACING_PRESET_NAMES2.filter((p) => p !== "custom");
20131
20332
  if (!raw) {
@@ -20160,6 +20361,7 @@ var init_run_eval = __esm({
20160
20361
  init_dist();
20161
20362
  init_contracts();
20162
20363
  init_eval_session_control();
20364
+ init_eval_fixture_queue();
20163
20365
  TERMINAL_STATUSES = /* @__PURE__ */ new Set(["completed", "failed", "cancelled", "awaiting_review"]);
20164
20366
  POLL_INTERVAL_MS = 3e3;
20165
20367
  DEFAULT_TIMEOUT_S = 600;
@@ -20564,7 +20766,7 @@ async function evalSessionStopCommand(args2) {
20564
20766
  console.log(`See its results: ${formatEvalResultsCommand(sessionId, hubId)}`);
20565
20767
  } else {
20566
20768
  console.log(`Cancellation requested for eval session ${sessionId}.`);
20567
- console.log("A turn already in progress may still be finishing \u2014 wait for it before starting another run.");
20769
+ console.log(describeSeedRelease(outcome.seedRelease));
20568
20770
  }
20569
20771
  } catch (err) {
20570
20772
  if (err instanceof ApiError && err.status === 404) {
@@ -20622,10 +20824,19 @@ async function evalSessionDeleteCommand(args2) {
20622
20824
  return;
20623
20825
  }
20624
20826
  }
20625
- const result = await client.deleteAllEvalSessions(hubId);
20626
- console.log(
20627
- `Deleted ${result.data.deleted_sessions} session(s) and ${result.data.deleted_conversations} eval conversation(s).`
20628
- );
20827
+ try {
20828
+ const result = await client.deleteAllEvalSessions(hubId);
20829
+ console.log(
20830
+ `Deleted ${result.data.deleted_sessions} session(s) and ${result.data.deleted_conversations} eval conversation(s).`
20831
+ );
20832
+ } catch (err) {
20833
+ if (extractApiErrorCode(err) === EVAL_SESSION_NOT_QUIESCENT) {
20834
+ console.error(extractApiMessage(err));
20835
+ console.error("No sessions were deleted.");
20836
+ process.exit(1);
20837
+ }
20838
+ throw err;
20839
+ }
20629
20840
  return;
20630
20841
  }
20631
20842
  if (!skipConfirm) {
@@ -20646,6 +20857,10 @@ async function evalSessionDeleteCommand(args2) {
20646
20857
  console.error(`Eval session not found: ${sessionId}`);
20647
20858
  process.exit(1);
20648
20859
  }
20860
+ if (extractApiErrorCode(err) === EVAL_SESSION_NOT_QUIESCENT) {
20861
+ console.error(extractApiMessage(err));
20862
+ process.exit(1);
20863
+ }
20649
20864
  throw err;
20650
20865
  }
20651
20866
  }
@@ -20656,6 +20871,8 @@ var init_eval_session_delete = __esm({
20656
20871
  init_repo_config();
20657
20872
  init_workspace();
20658
20873
  init_api_client();
20874
+ init_errors2();
20875
+ init_contracts();
20659
20876
  init_utils();
20660
20877
  }
20661
20878
  });
@@ -24936,7 +25153,7 @@ Commands:
24936
25153
  analytics Show analytics summary and metrics (use \`analytics query\` for structured ClickHouse queries, \`analytics sql\` for read-only SQL over conversation + per-message cost)
24937
25154
  delete-history Delete your conversations on a hub; full history also clears your user-scoped state (--conversation-id <id> deletes just one, keeps state)
24938
25155
  evals List evaluation scenarios for the current hub (use \`evals sql\` for read-only SQL on eval results)
24939
- run-eval Run all enabled evals and show results
25156
+ run-eval Run a scenario set's enabled evals and show results (--eval to run only named scenarios)
24940
25157
  eval-results View results from a completed eval session
24941
25158
  eval capture Capture a real conversation as a scenario YAML
24942
25159
  eval session stop Cancel a running eval session (recovery for an interrupted run-eval)
@@ -24969,12 +25186,14 @@ Flags:
24969
25186
  --connection <name> MCP connection to re-sync \u2014 display name or UUID (sync-mcp)
24970
25187
  --enabled/--disabled Filter evals by status (evals)
24971
25188
  --no-wait Don't wait for eval session to complete (run-eval)
25189
+ --no-queue Fail immediately if another session holds the fixture (run-eval; implied by --no-wait)
24972
25190
  --timeout <seconds> Max wait time for eval session (default: 600)
24973
25191
  --pacing <preset|ms> Run pacing: conservative | balanced | fast | <milliseconds> (run-eval; default balanced)
24974
25192
  --fixture <name> Override the suite's declared seed fixture for this run (run-eval)
25193
+ --set <name> Run a specific scenario set (run-eval)
24975
25194
  --session <uuid> Specify eval session ID (eval-results)
24976
- --eval <name> Filter by eval name (eval-results)
24977
- --runs Show individual run details (eval-results)
25195
+ --eval <name> Run only the named scenario \u2014 repeatable (run-eval); filter by eval name (eval-results)
25196
+ --runs <list> Run only these repetitions of one --eval scenario, e.g. 2,6 (run-eval); show individual run details (eval-results)
24978
25197
  --json Output raw JSON (status, whoami, list, org create, eval-results, analytics, conversations)
24979
25198
  --period <period> Time period: 24h, 7d, 30d, 3m, 1y (analytics, conversations)
24980
25199
  --from <date> Start date ISO (2026-01-01) (analytics, conversations)