mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-09-09 22:31:08 +00:00
Sync evals types (#3069)
This commit is contained in:
parent
f39dcf40aa
commit
d6e86a9eed
5 changed files with 540 additions and 220 deletions
|
|
@ -13,14 +13,14 @@
|
|||
"drizzle:studio": "pnpm --filter @evals/db db:studio"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@dotenvx/dotenvx": "^1.39.1",
|
||||
"@eslint/js": "^9.24.0",
|
||||
"eslint": "^9.24.0",
|
||||
"@dotenvx/dotenvx": "^1.41.0",
|
||||
"@eslint/js": "^9.25.1",
|
||||
"eslint": "^9.25.1",
|
||||
"globals": "^16.0.0",
|
||||
"prettier": "^3.5.3",
|
||||
"tsx": "^4.19.3",
|
||||
"turbo": "^2.5.0",
|
||||
"tsx": "^4.19.4",
|
||||
"turbo": "^2.5.2",
|
||||
"typescript": "^5.8.3",
|
||||
"typescript-eslint": "^8.29.1"
|
||||
"typescript-eslint": "^8.31.1"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,12 +4,7 @@ export const rooCodeDefaults: RooCodeSettings = {
|
|||
apiProvider: "openrouter",
|
||||
openRouterUseMiddleOutTransform: false,
|
||||
|
||||
// modelTemperature: null,
|
||||
// reasoningEffort: "high",
|
||||
rateLimitSeconds: 0,
|
||||
|
||||
pinnedApiConfigs: {},
|
||||
lastShownAnnouncementId: "apr-18-2025-3-13",
|
||||
lastShownAnnouncementId: "apr-30-2025-3-15",
|
||||
|
||||
autoApprovalEnabled: true,
|
||||
alwaysAllowReadOnly: true,
|
||||
|
|
@ -27,43 +22,17 @@ export const rooCodeDefaults: RooCodeSettings = {
|
|||
allowedCommands: ["*"],
|
||||
|
||||
browserToolEnabled: false,
|
||||
browserViewportSize: "900x600",
|
||||
screenshotQuality: 75,
|
||||
remoteBrowserEnabled: false,
|
||||
|
||||
enableCheckpoints: false,
|
||||
checkpointStorage: "task",
|
||||
|
||||
ttsEnabled: false,
|
||||
ttsSpeed: 1,
|
||||
soundEnabled: false,
|
||||
soundVolume: 0.5,
|
||||
|
||||
maxOpenTabsContext: 20,
|
||||
maxWorkspaceFiles: 200,
|
||||
showRooIgnoredFiles: true,
|
||||
maxReadFileLine: 500,
|
||||
|
||||
terminalOutputLineLimit: 500,
|
||||
terminalShellIntegrationTimeout: 30000,
|
||||
terminalCommandDelay: 0,
|
||||
terminalPowershellCounter: false,
|
||||
terminalZshClearEolMark: true,
|
||||
terminalZshOhMy: true,
|
||||
terminalZshP10k: false,
|
||||
terminalZdotdir: true,
|
||||
|
||||
diffEnabled: true,
|
||||
fuzzyMatchThreshold: 1.0,
|
||||
experiments: {
|
||||
powerSteering: false,
|
||||
},
|
||||
|
||||
language: "en",
|
||||
|
||||
telemetrySetting: "enabled",
|
||||
terminalShellIntegrationDisabled: true,
|
||||
|
||||
mcpEnabled: false,
|
||||
|
||||
mode: "code",
|
||||
customModes: [],
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,13 +18,13 @@ export const providerNames = [
|
|||
"lmstudio",
|
||||
"gemini",
|
||||
"openai-native",
|
||||
"xai",
|
||||
"mistral",
|
||||
"deepseek",
|
||||
"unbound",
|
||||
"requesty",
|
||||
"human-relay",
|
||||
"fake-ai",
|
||||
"xai",
|
||||
] as const
|
||||
|
||||
export const providerNamesSchema = z.enum(providerNames)
|
||||
|
|
@ -41,19 +41,6 @@ export const toolGroupsSchema = z.enum(toolGroups)
|
|||
|
||||
export type ToolGroup = z.infer<typeof toolGroupsSchema>
|
||||
|
||||
/**
|
||||
* CheckpointStorage
|
||||
*/
|
||||
|
||||
export const checkpointStorages = ["task", "workspace"] as const
|
||||
|
||||
export const checkpointStoragesSchema = z.enum(checkpointStorages)
|
||||
|
||||
export type CheckpointStorage = z.infer<typeof checkpointStoragesSchema>
|
||||
|
||||
export const isCheckpointStorage = (value: string): value is CheckpointStorage =>
|
||||
checkpointStorages.includes(value as CheckpointStorage)
|
||||
|
||||
/**
|
||||
* Language
|
||||
*/
|
||||
|
|
@ -93,23 +80,49 @@ export const telemetrySettingsSchema = z.enum(telemetrySettings)
|
|||
|
||||
export type TelemetrySetting = z.infer<typeof telemetrySettingsSchema>
|
||||
|
||||
/**
|
||||
* ReasoningEffort
|
||||
*/
|
||||
|
||||
export const reasoningEfforts = ["low", "medium", "high"] as const
|
||||
|
||||
export const reasoningEffortsSchema = z.enum(reasoningEfforts)
|
||||
|
||||
export type ReasoningEffort = z.infer<typeof reasoningEffortsSchema>
|
||||
|
||||
/**
|
||||
* ModelInfo
|
||||
*/
|
||||
|
||||
export const modelInfoSchema = z.object({
|
||||
maxTokens: z.number().nullish(),
|
||||
maxThinkingTokens: z.number().nullish(),
|
||||
contextWindow: z.number(),
|
||||
supportsImages: z.boolean().optional(),
|
||||
supportsComputerUse: z.boolean().optional(),
|
||||
supportsPromptCache: z.boolean(),
|
||||
isPromptCacheOptional: z.boolean().optional(),
|
||||
inputPrice: z.number().optional(),
|
||||
outputPrice: z.number().optional(),
|
||||
cacheWritesPrice: z.number().optional(),
|
||||
cacheReadsPrice: z.number().optional(),
|
||||
description: z.string().optional(),
|
||||
reasoningEffort: z.enum(["low", "medium", "high"]).optional(),
|
||||
reasoningEffort: reasoningEffortsSchema.optional(),
|
||||
thinking: z.boolean().optional(),
|
||||
minTokensPerCachePoint: z.number().optional(),
|
||||
maxCachePoints: z.number().optional(),
|
||||
cachableFields: z.array(z.string()).optional(),
|
||||
tiers: z
|
||||
.array(
|
||||
z.object({
|
||||
contextWindow: z.number(),
|
||||
inputPrice: z.number().optional(),
|
||||
outputPrice: z.number().optional(),
|
||||
cacheWritesPrice: z.number().optional(),
|
||||
cacheReadsPrice: z.number().optional(),
|
||||
}),
|
||||
)
|
||||
.optional(),
|
||||
})
|
||||
|
||||
export type ModelInfo = z.infer<typeof modelInfoSchema>
|
||||
|
|
@ -141,6 +154,7 @@ export const historyItemSchema = z.object({
|
|||
cacheReads: z.number().optional(),
|
||||
totalCost: z.number(),
|
||||
size: z.number().optional(),
|
||||
workspace: z.string().optional(),
|
||||
})
|
||||
|
||||
export type HistoryItem = z.infer<typeof historyItemSchema>
|
||||
|
|
@ -268,6 +282,29 @@ export const customSupportPromptsSchema = z.record(z.string(), z.string().option
|
|||
|
||||
export type CustomSupportPrompts = z.infer<typeof customSupportPromptsSchema>
|
||||
|
||||
/**
|
||||
* CommandExecutionStatus
|
||||
*/
|
||||
|
||||
export const commandExecutionStatusSchema = z.discriminatedUnion("status", [
|
||||
z.object({
|
||||
executionId: z.string(),
|
||||
status: z.literal("running"),
|
||||
pid: z.number().optional(),
|
||||
}),
|
||||
z.object({
|
||||
executionId: z.string(),
|
||||
status: z.literal("exited"),
|
||||
exitCode: z.number().optional(),
|
||||
}),
|
||||
z.object({
|
||||
executionId: z.string(),
|
||||
status: z.literal("fallback"),
|
||||
}),
|
||||
])
|
||||
|
||||
export type CommandExecutionStatus = z.infer<typeof commandExecutionStatusSchema>
|
||||
|
||||
/**
|
||||
* ExperimentId
|
||||
*/
|
||||
|
|
@ -330,12 +367,15 @@ export const providerSettingsSchema = z.object({
|
|||
// OpenAI
|
||||
openAiBaseUrl: z.string().optional(),
|
||||
openAiApiKey: z.string().optional(),
|
||||
openAiHostHeader: z.string().optional(),
|
||||
openAiLegacyFormat: z.boolean().optional(),
|
||||
openAiR1FormatEnabled: z.boolean().optional(),
|
||||
openAiModelId: z.string().optional(),
|
||||
openAiCustomModelInfo: modelInfoSchema.optional(),
|
||||
openAiCustomModelInfo: modelInfoSchema.nullish(),
|
||||
openAiUseAzure: z.boolean().optional(),
|
||||
azureApiVersion: z.string().optional(),
|
||||
openAiStreamingEnabled: z.boolean().optional(),
|
||||
enableReasoningEffort: z.boolean().optional(),
|
||||
// Ollama
|
||||
ollamaModelId: z.string().optional(),
|
||||
ollamaBaseUrl: z.string().optional(),
|
||||
|
|
@ -373,13 +413,18 @@ export const providerSettingsSchema = z.object({
|
|||
// Requesty
|
||||
requestyApiKey: z.string().optional(),
|
||||
requestyModelId: z.string().optional(),
|
||||
// X.AI (Grok)
|
||||
xaiApiKey: z.string().optional(),
|
||||
// Claude 3.7 Sonnet Thinking
|
||||
modelMaxTokens: z.number().optional(), // Currently only used by Anthropic hybrid thinking models.
|
||||
modelMaxThinkingTokens: z.number().optional(), // Currently only used by Anthropic hybrid thinking models.
|
||||
modelMaxTokens: z.number().optional(),
|
||||
modelMaxThinkingTokens: z.number().optional(),
|
||||
// Generic
|
||||
includeMaxTokens: z.boolean().optional(),
|
||||
reasoningEffort: reasoningEffortsSchema.optional(),
|
||||
promptCachingEnabled: z.boolean().optional(),
|
||||
diffEnabled: z.boolean().optional(),
|
||||
fuzzyMatchThreshold: z.number().optional(),
|
||||
modelTemperature: z.number().nullish(),
|
||||
reasoningEffort: z.enum(["low", "medium", "high"]).optional(),
|
||||
rateLimitSeconds: z.number().optional(),
|
||||
// Fake AI
|
||||
fakeAi: z.unknown().optional(),
|
||||
|
|
@ -424,14 +469,15 @@ const providerSettingsRecord: ProviderSettingsRecord = {
|
|||
// OpenAI
|
||||
openAiBaseUrl: undefined,
|
||||
openAiApiKey: undefined,
|
||||
openAiHostHeader: undefined,
|
||||
openAiLegacyFormat: undefined,
|
||||
openAiR1FormatEnabled: undefined,
|
||||
openAiModelId: undefined,
|
||||
openAiCustomModelInfo: undefined,
|
||||
openAiUseAzure: undefined,
|
||||
azureApiVersion: undefined,
|
||||
openAiStreamingEnabled: undefined,
|
||||
// xAI
|
||||
xaiApiKey: undefined,
|
||||
enableReasoningEffort: undefined,
|
||||
// Ollama
|
||||
ollamaModelId: undefined,
|
||||
ollamaBaseUrl: undefined,
|
||||
|
|
@ -464,11 +510,16 @@ const providerSettingsRecord: ProviderSettingsRecord = {
|
|||
modelMaxThinkingTokens: undefined,
|
||||
// Generic
|
||||
includeMaxTokens: undefined,
|
||||
modelTemperature: undefined,
|
||||
reasoningEffort: undefined,
|
||||
promptCachingEnabled: undefined,
|
||||
diffEnabled: undefined,
|
||||
fuzzyMatchThreshold: undefined,
|
||||
modelTemperature: undefined,
|
||||
rateLimitSeconds: undefined,
|
||||
// Fake AI
|
||||
fakeAi: undefined,
|
||||
// X.AI (Grok)
|
||||
xaiApiKey: undefined,
|
||||
}
|
||||
|
||||
export const PROVIDER_SETTINGS_KEYS = Object.keys(providerSettingsRecord) as Keys<ProviderSettings>[]
|
||||
|
|
@ -506,9 +557,9 @@ export const globalSettingsSchema = z.object({
|
|||
screenshotQuality: z.number().optional(),
|
||||
remoteBrowserEnabled: z.boolean().optional(),
|
||||
remoteBrowserHost: z.string().optional(),
|
||||
cachedChromeHostUrl: z.string().optional(),
|
||||
|
||||
enableCheckpoints: z.boolean().optional(),
|
||||
checkpointStorage: checkpointStoragesSchema.optional(),
|
||||
|
||||
ttsEnabled: z.boolean().optional(),
|
||||
ttsSpeed: z.number().optional(),
|
||||
|
|
@ -522,13 +573,16 @@ export const globalSettingsSchema = z.object({
|
|||
|
||||
terminalOutputLineLimit: z.number().optional(),
|
||||
terminalShellIntegrationTimeout: z.number().optional(),
|
||||
terminalShellIntegrationDisabled: z.boolean().optional(),
|
||||
terminalCommandDelay: z.number().optional(),
|
||||
terminalPowershellCounter: z.boolean().optional(),
|
||||
terminalZshClearEolMark: z.boolean().optional(),
|
||||
terminalZshOhMy: z.boolean().optional(),
|
||||
terminalZshP10k: z.boolean().optional(),
|
||||
terminalZdotdir: z.boolean().optional(),
|
||||
terminalCompressProgressBar: z.boolean().optional(),
|
||||
|
||||
rateLimitSeconds: z.number().optional(),
|
||||
diffEnabled: z.boolean().optional(),
|
||||
fuzzyMatchThreshold: z.number().optional(),
|
||||
experiments: experimentsSchema.optional(),
|
||||
|
|
@ -546,6 +600,7 @@ export const globalSettingsSchema = z.object({
|
|||
customModePrompts: customModePromptsSchema.optional(),
|
||||
customSupportPrompts: customSupportPromptsSchema.optional(),
|
||||
enhancementApiConfigId: z.string().optional(),
|
||||
historyPreviewCollapsed: z.boolean().optional(),
|
||||
})
|
||||
|
||||
export type GlobalSettings = z.infer<typeof globalSettingsSchema>
|
||||
|
|
@ -583,7 +638,6 @@ const globalSettingsRecord: GlobalSettingsRecord = {
|
|||
remoteBrowserHost: undefined,
|
||||
|
||||
enableCheckpoints: undefined,
|
||||
checkpointStorage: undefined,
|
||||
|
||||
ttsEnabled: undefined,
|
||||
ttsSpeed: undefined,
|
||||
|
|
@ -597,13 +651,16 @@ const globalSettingsRecord: GlobalSettingsRecord = {
|
|||
|
||||
terminalOutputLineLimit: undefined,
|
||||
terminalShellIntegrationTimeout: undefined,
|
||||
terminalShellIntegrationDisabled: undefined,
|
||||
terminalCommandDelay: undefined,
|
||||
terminalPowershellCounter: undefined,
|
||||
terminalZshClearEolMark: undefined,
|
||||
terminalZshOhMy: undefined,
|
||||
terminalZshP10k: undefined,
|
||||
terminalZdotdir: undefined,
|
||||
terminalCompressProgressBar: undefined,
|
||||
|
||||
rateLimitSeconds: undefined,
|
||||
diffEnabled: undefined,
|
||||
fuzzyMatchThreshold: undefined,
|
||||
experiments: undefined,
|
||||
|
|
@ -621,6 +678,8 @@ const globalSettingsRecord: GlobalSettingsRecord = {
|
|||
customModePrompts: undefined,
|
||||
customSupportPrompts: undefined,
|
||||
enhancementApiConfigId: undefined,
|
||||
cachedChromeHostUrl: undefined,
|
||||
historyPreviewCollapsed: undefined,
|
||||
}
|
||||
|
||||
export const GLOBAL_SETTINGS_KEYS = Object.keys(globalSettingsRecord) as Keys<GlobalSettings>[]
|
||||
|
|
@ -654,6 +713,7 @@ export type SecretState = Pick<
|
|||
| "mistralApiKey"
|
||||
| "unboundApiKey"
|
||||
| "requestyApiKey"
|
||||
| "xaiApiKey"
|
||||
>
|
||||
|
||||
type SecretStateRecord = Record<Keys<SecretState>, undefined>
|
||||
|
|
@ -672,6 +732,7 @@ const secretStateRecord: SecretStateRecord = {
|
|||
mistralApiKey: undefined,
|
||||
unboundApiKey: undefined,
|
||||
requestyApiKey: undefined,
|
||||
xaiApiKey: undefined,
|
||||
}
|
||||
|
||||
export const SECRET_STATE_KEYS = Object.keys(secretStateRecord) as Keys<SecretState>[]
|
||||
|
|
@ -749,6 +810,7 @@ export type ClineSay = z.infer<typeof clineSaySchema>
|
|||
*/
|
||||
|
||||
export const toolProgressStatusSchema = z.object({
|
||||
id: z.string().optional(),
|
||||
icon: z.string().optional(),
|
||||
text: z.string().optional(),
|
||||
})
|
||||
|
|
@ -798,7 +860,6 @@ export const toolNames = [
|
|||
"execute_command",
|
||||
"read_file",
|
||||
"write_to_file",
|
||||
"append_to_file",
|
||||
"apply_diff",
|
||||
"insert_content",
|
||||
"search_and_replace",
|
||||
|
|
|
|||
596
evals/pnpm-lock.yaml
generated
596
evals/pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load diff
|
|
@ -851,6 +851,10 @@ export const tokenUsageSchema = z.object({
|
|||
|
||||
export type TokenUsage = z.infer<typeof tokenUsageSchema>
|
||||
|
||||
/**
|
||||
* ToolName
|
||||
*/
|
||||
|
||||
export const toolNames = [
|
||||
"execute_command",
|
||||
"read_file",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue