/
outbreak
/
kilocode
Обзор
Документация
Войти
/
outbreak
/
kilocode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/shared/experiments.ts
44 строки
2 KB
Chris Hasson
Experimental STT Voice Transcription in Chat (#4394)
12 дек 2025, 21:51
Не верифицирован
12 дек 2025, 21:51
01b968b
Код
Авторство
О чём код?
import type { AssertEqual, Equals, Keys, Values, ExperimentId, Experiments } from "@roo-code/types" export const EXPERIMENT_IDS = { MORPH_FAST_APPLY: "morphFastApply", // kilocode_change SPEECH_TO_TEXT: "speechToText", // kilocode_change MULTI_FILE_APPLY_DIFF: "multiFileApplyDiff", POWER_STEERING: "powerSteering", PREVENT_FOCUS_DISRUPTION: "preventFocusDisruption", IMAGE_GENERATION: "imageGeneration", RUN_SLASH_COMMAND: "runSlashCommand", MULTIPLE_NATIVE_TOOL_CALLS: "multipleNativeToolCalls", } as const satisfies Record<string, ExperimentId> type _AssertExperimentIds = AssertEqual<Equals<ExperimentId, Values<typeof EXPERIMENT_IDS>>> type ExperimentKey = Keys<typeof EXPERIMENT_IDS> interface ExperimentConfig { enabled: boolean } export const experimentConfigsMap: Record<ExperimentKey, ExperimentConfig> = { MORPH_FAST_APPLY: { enabled: false }, // kilocode_change SPEECH_TO_TEXT: { enabled: false }, // kilocode_change MULTI_FILE_APPLY_DIFF: { enabled: false }, POWER_STEERING: { enabled: false }, PREVENT_FOCUS_DISRUPTION: { enabled: false }, IMAGE_GENERATION: { enabled: false }, RUN_SLASH_COMMAND: { enabled: false }, MULTIPLE_NATIVE_TOOL_CALLS: { enabled: false }, } export const experimentDefault = Object.fromEntries( Object.entries(experimentConfigsMap).map(([_, config]) => [ EXPERIMENT_IDS[_ as keyof typeof EXPERIMENT_IDS] as ExperimentId, config.enabled, ]), ) as Record<ExperimentId, boolean> export const experiments = { get: (id: ExperimentKey): ExperimentConfig | undefined => experimentConfigsMap[id], isEnabled: (experimentsConfig: Partial<Experiments>, id: ExperimentId) => experimentsConfig[id] ?? experimentDefault[id], } as const