"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isSlackPrompt = exports.AI_CLONED_THREAD_CREATED_FROM = exports.AI_SLACK_THREAD_CREATED_FROM = exports.AI_WEB_APP_THREAD_CREATED_FROM = exports.AI_THREAD_CREATED_FROM = void 0;
/**
 * Every origin an ai_thread can be created from. Canonical source for the
 * DB column type and the admin/list filters — add new origins here.
 */
exports.AI_THREAD_CREATED_FROM = [
    'slack',
    'web_app',
    'evals',
    'scheduler',
];
// Subsets use indexed access over const arrays (not Exclude<>, which tsoa
// can't resolve at API boundaries); `satisfies` keeps each subset inside the
// canonical union.
/** Origins for threads created through the web app path — everything but Slack. */
exports.AI_WEB_APP_THREAD_CREATED_FROM = [
    'web_app',
    'evals',
    'scheduler',
];
/** Origins handled through the Slack path. */
exports.AI_SLACK_THREAD_CREATED_FROM = [
    'slack',
    'web_app',
];
/** Origins a thread can be cloned into — Slack and scheduler threads are never clone targets. */
exports.AI_CLONED_THREAD_CREATED_FROM = [
    'web_app',
    'evals',
];
const isSlackPrompt = (prompt) => 'slackUserId' in prompt;
exports.isSlackPrompt = isSlackPrompt;
//# sourceMappingURL=requestTypes.js.map