mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-08-28 05:27:24 +00:00
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com> Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
33 lines
1.2 KiB
TypeScript
33 lines
1.2 KiB
TypeScript
import type { AssertEqual, Equals, Keys, Values, ExperimentId, Experiments } from "@roo-code/types"
|
|
|
|
export const EXPERIMENT_IDS = {
|
|
MULTI_FILE_APPLY_DIFF: "multiFileApplyDiff",
|
|
POWER_STEERING: "powerSteering",
|
|
PREVENT_FOCUS_DISRUPTION: "preventFocusDisruption",
|
|
} 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> = {
|
|
MULTI_FILE_APPLY_DIFF: { enabled: false },
|
|
POWER_STEERING: { enabled: false },
|
|
PREVENT_FOCUS_DISRUPTION: { 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: Experiments, id: ExperimentId) => experimentsConfig[id] ?? experimentDefault[id],
|
|
} as const
|