@roo-code/types 1.91.0 → 1.92.0
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.cjs +48 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +69 -47
- package/dist/index.d.ts +69 -47
- package/dist/index.js +46 -5
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cloud.ts","../../src/events.ts","../../src/message.ts","../../src/tool.ts","../../src/task.ts","../../src/global-settings.ts","../../src/provider-settings.ts","../../src/model.ts","../../src/codebase-index.ts","../../src/providers/anthropic.ts","../../src/providers/baseten.ts","../../src/providers/bedrock.ts","../../src/providers/cerebras.ts","../../src/providers/chutes.ts","../../src/providers/claude-code.ts","../../src/providers/deepseek.ts","../../src/providers/doubao.ts","../../src/providers/featherless.ts","../../src/providers/fireworks.ts","../../src/providers/gemini.ts","../../src/providers/groq.ts","../../src/providers/huggingface.ts","../../src/providers/io-intelligence.ts","../../src/providers/lite-llm.ts","../../src/providers/lm-studio.ts","../../src/providers/mistral.ts","../../src/providers/moonshot.ts","../../src/providers/ollama.ts","../../src/providers/openai.ts","../../src/providers/openrouter.ts","../../src/providers/qwen-code.ts","../../src/providers/requesty.ts","../../src/providers/roo.ts","../../src/providers/sambanova.ts","../../src/providers/unbound.ts","../../src/providers/vertex.ts","../../src/providers/vscode-llm.ts","../../src/providers/xai.ts","../../src/providers/vercel-ai-gateway.ts","../../src/providers/zai.ts","../../src/providers/deepinfra.ts","../../src/providers/minimax.ts","../../src/providers/index.ts","../../src/history.ts","../../src/experiment.ts","../../src/telemetry.ts","../../src/mode.ts","../../src/vscode.ts","../../src/marketplace.ts","../../src/context-management.ts","../../src/cookie-consent.ts","../../src/followup.ts","../../src/image-generation.ts","../../src/ipc.ts","../../src/mcp.ts","../../src/single-file-read-models.ts","../../src/todo.ts","../../src/terminal.ts"],"sourcesContent":["import EventEmitter from \"events\"\n\nimport { z } from \"zod\"\n\nimport { RooCodeEventName } from \"./events.js\"\nimport { TaskStatus, taskMetadataSchema } from \"./task.js\"\nimport { globalSettingsSchema } from \"./global-settings.js\"\nimport { providerSettingsWithIdSchema } from \"./provider-settings.js\"\nimport { mcpMarketplaceItemSchema } from \"./marketplace.js\"\nimport { clineMessageSchema, queuedMessageSchema, tokenUsageSchema } from \"./message.js\"\nimport { staticAppPropertiesSchema, gitPropertiesSchema } from \"./telemetry.js\"\n\n/**\n * JWTPayload\n */\n\nexport interface JWTPayload {\n\tiss?: string // Issuer (should be 'rcc')\n\tsub?: string // Subject - CloudJob ID for job tokens (t:'cj'), User ID for auth tokens (t:'auth')\n\texp?: number // Expiration time\n\tiat?: number // Issued at time\n\tnbf?: number // Not before time\n\tv?: number // Version (should be 1)\n\tr?: {\n\t\tu?: string // User ID (always present in valid tokens)\n\t\to?: string // Organization ID (optional - undefined when orgId is null)\n\t\tt?: string // Token type: 'cj' for job tokens, 'auth' for auth tokens\n\t}\n}\n\n/**\n * CloudUserInfo\n */\n\nexport interface CloudUserInfo {\n\tid?: string\n\tname?: string\n\temail?: string\n\tpicture?: string\n\torganizationId?: string\n\torganizationName?: string\n\torganizationRole?: string\n\torganizationImageUrl?: string\n\textensionBridgeEnabled?: boolean\n}\n\n/**\n * CloudOrganization\n */\n\nexport interface CloudOrganization {\n\tid: string\n\tname: string\n\tslug?: string\n\timage_url?: string\n\thas_image?: boolean\n\tcreated_at?: number\n\tupdated_at?: number\n}\n\n/**\n * CloudOrganizationMembership\n */\n\nexport interface CloudOrganizationMembership {\n\tid: string\n\torganization: CloudOrganization\n\trole: string\n\tpermissions?: string[]\n\tcreated_at?: number\n\tupdated_at?: number\n}\n\n/**\n * OrganizationAllowList\n */\n\nexport const organizationAllowListSchema = z.object({\n\tallowAll: z.boolean(),\n\tproviders: z.record(\n\t\tz.object({\n\t\t\tallowAll: z.boolean(),\n\t\t\tmodels: z.array(z.string()).optional(),\n\t\t}),\n\t),\n})\n\nexport type OrganizationAllowList = z.infer<typeof organizationAllowListSchema>\n\n/**\n * OrganizationDefaultSettings\n */\n\nexport const organizationDefaultSettingsSchema = globalSettingsSchema\n\t.pick({\n\t\tenableCheckpoints: true,\n\t\tfuzzyMatchThreshold: true,\n\t\tmaxOpenTabsContext: true,\n\t\tmaxReadFileLine: true,\n\t\tmaxWorkspaceFiles: true,\n\t\tshowRooIgnoredFiles: true,\n\t\tterminalCommandDelay: true,\n\t\tterminalCompressProgressBar: true,\n\t\tterminalOutputLineLimit: true,\n\t\tterminalShellIntegrationDisabled: true,\n\t\tterminalShellIntegrationTimeout: true,\n\t\tterminalZshClearEolMark: true,\n\t})\n\t// Add stronger validations for some fields.\n\t.merge(\n\t\tz.object({\n\t\t\tmaxOpenTabsContext: z.number().int().nonnegative().optional(),\n\t\t\tmaxReadFileLine: z.number().int().gte(-1).optional(),\n\t\t\tmaxWorkspaceFiles: z.number().int().nonnegative().optional(),\n\t\t\tterminalCommandDelay: z.number().int().nonnegative().optional(),\n\t\t\tterminalOutputLineLimit: z.number().int().nonnegative().optional(),\n\t\t\tterminalShellIntegrationTimeout: z.number().int().nonnegative().optional(),\n\t\t}),\n\t)\n\nexport type OrganizationDefaultSettings = z.infer<typeof organizationDefaultSettingsSchema>\n\n/**\n * WorkspaceTaskVisibility\n */\n\nconst workspaceTaskVisibilitySchema = z.enum([\"all\", \"list-only\", \"full-lockdown\"])\n\nexport type WorkspaceTaskVisibility = z.infer<typeof workspaceTaskVisibilitySchema>\n\n/**\n * OrganizationCloudSettings\n */\n\nexport const organizationCloudSettingsSchema = z.object({\n\trecordTaskMessages: z.boolean().optional(),\n\tenableTaskSharing: z.boolean().optional(),\n\ttaskShareExpirationDays: z.number().int().positive().optional(),\n\tallowMembersViewAllTasks: z.boolean().optional(),\n\tworkspaceTaskVisibility: workspaceTaskVisibilitySchema.optional(),\n})\n\nexport type OrganizationCloudSettings = z.infer<typeof organizationCloudSettingsSchema>\n\n/**\n * OrganizationFeatures\n */\n\nexport const organizationFeaturesSchema = z.object({\n\troomoteControlEnabled: z.boolean().optional(),\n})\n\nexport type OrganizationFeatures = z.infer<typeof organizationFeaturesSchema>\n\n/**\n * OrganizationSettings\n */\n\nexport const organizationSettingsSchema = z.object({\n\tversion: z.number(),\n\tcloudSettings: organizationCloudSettingsSchema.optional(),\n\tdefaultSettings: organizationDefaultSettingsSchema,\n\tallowList: organizationAllowListSchema,\n\tfeatures: organizationFeaturesSchema.optional(),\n\thiddenMcps: z.array(z.string()).optional(),\n\thideMarketplaceMcps: z.boolean().optional(),\n\tmcps: z.array(mcpMarketplaceItemSchema).optional(),\n\tproviderProfiles: z.record(z.string(), providerSettingsWithIdSchema).optional(),\n})\n\nexport type OrganizationSettings = z.infer<typeof organizationSettingsSchema>\n\n/**\n * User Settings Schemas\n */\n\nexport const userFeaturesSchema = z.object({\n\troomoteControlEnabled: z.boolean().optional(),\n})\n\nexport type UserFeatures = z.infer<typeof userFeaturesSchema>\n\nexport const userSettingsConfigSchema = z.object({\n\textensionBridgeEnabled: z.boolean().optional(),\n\ttaskSyncEnabled: z.boolean().optional(),\n})\n\nexport type UserSettingsConfig = z.infer<typeof userSettingsConfigSchema>\n\nexport const userSettingsDataSchema = z.object({\n\tfeatures: userFeaturesSchema,\n\tsettings: userSettingsConfigSchema,\n\tversion: z.number(),\n})\n\nexport type UserSettingsData = z.infer<typeof userSettingsDataSchema>\n\n/**\n * Constants\n */\n\nexport const ORGANIZATION_ALLOW_ALL: OrganizationAllowList = {\n\tallowAll: true,\n\tproviders: {},\n} as const\n\nexport const ORGANIZATION_DEFAULT: OrganizationSettings = {\n\tversion: 0,\n\tcloudSettings: {\n\t\trecordTaskMessages: true,\n\t\tenableTaskSharing: true,\n\t\ttaskShareExpirationDays: 30,\n\t\tallowMembersViewAllTasks: true,\n\t},\n\tdefaultSettings: {},\n\tallowList: ORGANIZATION_ALLOW_ALL,\n} as const\n\n/**\n * ShareVisibility\n */\n\nexport type ShareVisibility = \"organization\" | \"public\"\n\n/**\n * ShareResponse\n */\n\nexport const shareResponseSchema = z.object({\n\tsuccess: z.boolean(),\n\tshareUrl: z.string().optional(),\n\terror: z.string().optional(),\n\tisNewShare: z.boolean().optional(),\n\tmanageUrl: z.string().optional(),\n})\n\nexport type ShareResponse = z.infer<typeof shareResponseSchema>\n\n/**\n * AuthService\n */\n\nexport type AuthState = \"initializing\" | \"logged-out\" | \"active-session\" | \"attempting-session\" | \"inactive-session\"\n\nexport interface AuthService extends EventEmitter<AuthServiceEvents> {\n\t// Lifecycle\n\tinitialize(): Promise<void>\n\tbroadcast(): void\n\n\t// Authentication methods\n\tlogin(landingPageSlug?: string, useProviderSignup?: boolean): Promise<void>\n\tlogout(): Promise<void>\n\thandleCallback(\n\t\tcode: string | null,\n\t\tstate: string | null,\n\t\torganizationId?: string | null,\n\t\tproviderModel?: string | null,\n\t): Promise<void>\n\tswitchOrganization(organizationId: string | null): Promise<void>\n\n\t// State methods\n\tgetState(): AuthState\n\tisAuthenticated(): boolean\n\thasActiveSession(): boolean\n\thasOrIsAcquiringActiveSession(): boolean\n\n\t// Token and user info\n\tgetSessionToken(): string | undefined\n\tgetUserInfo(): CloudUserInfo | null\n\tgetStoredOrganizationId(): string | null\n\n\t// Organization management\n\tgetOrganizationMemberships(): Promise<CloudOrganizationMembership[]>\n}\n\n/**\n * AuthServiceEvents\n */\n\nexport interface AuthServiceEvents {\n\t\"auth-state-changed\": [\n\t\tdata: {\n\t\t\tstate: AuthState\n\t\t\tpreviousState: AuthState\n\t\t},\n\t]\n\t\"user-info\": [data: { userInfo: CloudUserInfo }]\n}\n\n/**\n * SettingsService\n */\n\n/**\n * Interface for settings services that provide organization settings\n */\nexport interface SettingsService {\n\t/**\n\t * Get the organization allow list\n\t * @returns The organization allow list or default if none available\n\t */\n\tgetAllowList(): OrganizationAllowList\n\n\t/**\n\t * Get the current organization settings\n\t * @returns The organization settings or undefined if none available\n\t */\n\tgetSettings(): OrganizationSettings | undefined\n\n\t/**\n\t * Get the current user settings\n\t * @returns The user settings data or undefined if none available\n\t */\n\tgetUserSettings(): UserSettingsData | undefined\n\n\t/**\n\t * Get the current user features\n\t * @returns The user features or empty object if none available\n\t */\n\tgetUserFeatures(): UserFeatures\n\n\t/**\n\t * Get the current user settings configuration\n\t * @returns The user settings configuration or empty object if none available\n\t */\n\tgetUserSettingsConfig(): UserSettingsConfig\n\n\t/**\n\t * Update user settings with partial configuration\n\t * @param settings Partial user settings configuration to update\n\t * @returns Promise that resolves to true if successful, false otherwise\n\t */\n\tupdateUserSettings(settings: Partial<UserSettingsConfig>): Promise<boolean>\n\n\t/**\n\t * Determines if task sync/recording is enabled based on organization and user settings\n\t * Organization settings take precedence over user settings.\n\t * User settings default to true if unspecified.\n\t * @returns true if task sync is enabled, false otherwise\n\t */\n\tisTaskSyncEnabled(): boolean\n\n\t/**\n\t * Dispose of the settings service and clean up resources\n\t */\n\tdispose(): void\n}\n\n/**\n * SettingsServiceEvents\n */\n\nexport interface SettingsServiceEvents {\n\t\"settings-updated\": [data: Record<string, never>]\n}\n\n/**\n * CloudServiceEvents\n */\n\nexport type CloudServiceEvents = AuthServiceEvents & SettingsServiceEvents\n\n/**\n * ConnectionState\n */\n\nexport enum ConnectionState {\n\tDISCONNECTED = \"disconnected\",\n\tCONNECTING = \"connecting\",\n\tCONNECTED = \"connected\",\n\tRETRYING = \"retrying\",\n\tFAILED = \"failed\",\n}\n\n/**\n * RetryConfig\n */\n\nexport interface RetryConfig {\n\tmaxInitialAttempts: number\n\tinitialDelay: number\n\tmaxDelay: number\n\tbackoffMultiplier: number\n}\n\n/**\n * Constants\n */\n\nexport const HEARTBEAT_INTERVAL_MS = 20_000\nexport const INSTANCE_TTL_SECONDS = 60\n\n/**\n * ExtensionTask\n */\n\nconst extensionTaskSchema = z.object({\n\ttaskId: z.string(),\n\ttaskStatus: z.nativeEnum(TaskStatus),\n\ttaskAsk: clineMessageSchema.optional(),\n\tqueuedMessages: z.array(queuedMessageSchema).optional(),\n\tparentTaskId: z.string().optional(),\n\tchildTaskId: z.string().optional(),\n\ttokenUsage: tokenUsageSchema.optional(),\n\t...taskMetadataSchema.shape,\n})\n\nexport type ExtensionTask = z.infer<typeof extensionTaskSchema>\n\n/**\n * ExtensionInstance\n */\n\nexport const extensionInstanceSchema = z.object({\n\tinstanceId: z.string(),\n\tuserId: z.string(),\n\tworkspacePath: z.string(),\n\tappProperties: staticAppPropertiesSchema,\n\tgitProperties: gitPropertiesSchema.optional(),\n\tlastHeartbeat: z.coerce.number(),\n\ttask: extensionTaskSchema,\n\ttaskAsk: clineMessageSchema.optional(),\n\ttaskHistory: z.array(z.string()),\n\tmode: z.string().optional(),\n\tmodes: z.array(z.object({ slug: z.string(), name: z.string() })).optional(),\n\tproviderProfile: z.string().optional(),\n\tproviderProfiles: z.array(z.object({ name: z.string(), provider: z.string().optional() })).optional(),\n\tisCloudAgent: z.boolean().optional(),\n})\n\nexport type ExtensionInstance = z.infer<typeof extensionInstanceSchema>\n\n/**\n * ExtensionBridgeEvent\n */\n\nexport enum ExtensionBridgeEventName {\n\tTaskCreated = RooCodeEventName.TaskCreated,\n\tTaskStarted = RooCodeEventName.TaskStarted,\n\tTaskCompleted = RooCodeEventName.TaskCompleted,\n\tTaskAborted = RooCodeEventName.TaskAborted,\n\tTaskFocused = RooCodeEventName.TaskFocused,\n\tTaskUnfocused = RooCodeEventName.TaskUnfocused,\n\tTaskActive = RooCodeEventName.TaskActive,\n\tTaskInteractive = RooCodeEventName.TaskInteractive,\n\tTaskResumable = RooCodeEventName.TaskResumable,\n\tTaskIdle = RooCodeEventName.TaskIdle,\n\n\tTaskPaused = RooCodeEventName.TaskPaused,\n\tTaskUnpaused = RooCodeEventName.TaskUnpaused,\n\tTaskSpawned = RooCodeEventName.TaskSpawned,\n\tTaskDelegated = RooCodeEventName.TaskDelegated,\n\tTaskDelegationCompleted = RooCodeEventName.TaskDelegationCompleted,\n\tTaskDelegationResumed = RooCodeEventName.TaskDelegationResumed,\n\n\tTaskUserMessage = RooCodeEventName.TaskUserMessage,\n\n\tTaskTokenUsageUpdated = RooCodeEventName.TaskTokenUsageUpdated,\n\n\tModeChanged = RooCodeEventName.ModeChanged,\n\tProviderProfileChanged = RooCodeEventName.ProviderProfileChanged,\n\n\tInstanceRegistered = \"instance_registered\",\n\tInstanceUnregistered = \"instance_unregistered\",\n\tHeartbeatUpdated = \"heartbeat_updated\",\n}\n\nexport const extensionBridgeEventSchema = z.discriminatedUnion(\"type\", [\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskCreated),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskStarted),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskCompleted),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskAborted),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskFocused),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskUnfocused),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskActive),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskInteractive),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskResumable),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskIdle),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskPaused),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskUnpaused),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskSpawned),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskDelegated),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskDelegationCompleted),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskDelegationResumed),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskUserMessage),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskTokenUsageUpdated),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.ModeChanged),\n\t\tinstance: extensionInstanceSchema,\n\t\tmode: z.string(),\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.ProviderProfileChanged),\n\t\tinstance: extensionInstanceSchema,\n\t\tproviderProfile: z.object({ name: z.string(), provider: z.string().optional() }),\n\t\ttimestamp: z.number(),\n\t}),\n\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.InstanceRegistered),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.InstanceUnregistered),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.HeartbeatUpdated),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n])\n\nexport type ExtensionBridgeEvent = z.infer<typeof extensionBridgeEventSchema>\n\n/**\n * ExtensionBridgeCommand\n */\n\nexport enum ExtensionBridgeCommandName {\n\tStartTask = \"start_task\",\n\tStopTask = \"stop_task\",\n\tResumeTask = \"resume_task\",\n}\n\nexport const extensionBridgeCommandSchema = z.discriminatedUnion(\"type\", [\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeCommandName.StartTask),\n\t\tinstanceId: z.string(),\n\t\tpayload: z.object({\n\t\t\ttext: z.string(),\n\t\t\timages: z.array(z.string()).optional(),\n\t\t\tmode: z.string().optional(),\n\t\t\tproviderProfile: z.string().optional(),\n\t\t}),\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeCommandName.StopTask),\n\t\tinstanceId: z.string(),\n\t\tpayload: z.object({ taskId: z.string() }),\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeCommandName.ResumeTask),\n\t\tinstanceId: z.string(),\n\t\tpayload: z.object({ taskId: z.string() }),\n\t\ttimestamp: z.number(),\n\t}),\n])\n\nexport type ExtensionBridgeCommand = z.infer<typeof extensionBridgeCommandSchema>\n\n/**\n * TaskBridgeEvent\n */\n\nexport enum TaskBridgeEventName {\n\tMessage = RooCodeEventName.Message,\n\tTaskModeSwitched = RooCodeEventName.TaskModeSwitched,\n\tTaskInteractive = RooCodeEventName.TaskInteractive,\n}\n\nexport const taskBridgeEventSchema = z.discriminatedUnion(\"type\", [\n\tz.object({\n\t\ttype: z.literal(TaskBridgeEventName.Message),\n\t\ttaskId: z.string(),\n\t\taction: z.string(),\n\t\tmessage: clineMessageSchema,\n\t}),\n\tz.object({\n\t\ttype: z.literal(TaskBridgeEventName.TaskModeSwitched),\n\t\ttaskId: z.string(),\n\t\tmode: z.string(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(TaskBridgeEventName.TaskInteractive),\n\t\ttaskId: z.string(),\n\t}),\n])\n\nexport type TaskBridgeEvent = z.infer<typeof taskBridgeEventSchema>\n\n/**\n * TaskBridgeCommand\n */\n\nexport enum TaskBridgeCommandName {\n\tMessage = \"message\",\n\tApproveAsk = \"approve_ask\",\n\tDenyAsk = \"deny_ask\",\n}\n\nexport const taskBridgeCommandSchema = z.discriminatedUnion(\"type\", [\n\tz.object({\n\t\ttype: z.literal(TaskBridgeCommandName.Message),\n\t\ttaskId: z.string(),\n\t\tpayload: z.object({\n\t\t\ttext: z.string(),\n\t\t\timages: z.array(z.string()).optional(),\n\t\t\tmode: z.string().optional(),\n\t\t\tproviderProfile: z.string().optional(),\n\t\t}),\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(TaskBridgeCommandName.ApproveAsk),\n\t\ttaskId: z.string(),\n\t\tpayload: z.object({\n\t\t\ttext: z.string().optional(),\n\t\t\timages: z.array(z.string()).optional(),\n\t\t}),\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(TaskBridgeCommandName.DenyAsk),\n\t\ttaskId: z.string(),\n\t\tpayload: z.object({\n\t\t\ttext: z.string().optional(),\n\t\t\timages: z.array(z.string()).optional(),\n\t\t}),\n\t\ttimestamp: z.number(),\n\t}),\n])\n\nexport type TaskBridgeCommand = z.infer<typeof taskBridgeCommandSchema>\n\n/**\n * ExtensionSocketEvents\n */\n\nexport enum ExtensionSocketEvents {\n\tCONNECTED = \"extension:connected\",\n\n\tREGISTER = \"extension:register\",\n\tUNREGISTER = \"extension:unregister\",\n\n\tHEARTBEAT = \"extension:heartbeat\",\n\n\tEVENT = \"extension:event\", // event from extension instance\n\tRELAYED_EVENT = \"extension:relayed_event\", // relay from server\n\n\tCOMMAND = \"extension:command\", // command from user\n\tRELAYED_COMMAND = \"extension:relayed_command\", // relay from server\n}\n\n/**\n * TaskSocketEvents\n */\n\nexport enum TaskSocketEvents {\n\tJOIN = \"task:join\",\n\tLEAVE = \"task:leave\",\n\n\tEVENT = \"task:event\", // event from extension task\n\tRELAYED_EVENT = \"task:relayed_event\", // relay from server\n\n\tCOMMAND = \"task:command\", // command from user\n\tRELAYED_COMMAND = \"task:relayed_command\", // relay from server\n}\n\n/**\n * `emit()` Response Types\n */\n\nexport type JoinResponse = {\n\tsuccess: boolean\n\terror?: string\n\ttaskId?: string\n\ttimestamp?: string\n}\n\nexport type LeaveResponse = {\n\tsuccess: boolean\n\ttaskId?: string\n\ttimestamp?: string\n}\n\n/**\n * UsageStats\n */\n\nexport const usageStatsSchema = z.object({\n\tsuccess: z.boolean(),\n\tdata: z.object({\n\t\tdates: z.array(z.string()), // Array of date strings\n\t\ttasks: z.array(z.number()), // Array of task counts\n\t\ttokens: z.array(z.number()), // Array of token counts\n\t\tcosts: z.array(z.number()), // Array of costs in USD\n\t\ttotals: z.object({\n\t\t\ttasks: z.number(),\n\t\t\ttokens: z.number(),\n\t\t\tcost: z.number(), // Total cost in USD\n\t\t}),\n\t}),\n\tperiod: z.number(), // Period in days (e.g., 30)\n})\n\nexport type UsageStats = z.infer<typeof usageStatsSchema>\n","import { z } from \"zod\"\n\nimport { clineMessageSchema, tokenUsageSchema } from \"./message.js\"\nimport { toolNamesSchema, toolUsageSchema } from \"./tool.js\"\n\n/**\n * RooCodeEventName\n */\n\nexport enum RooCodeEventName {\n\t// Task Provider Lifecycle\n\tTaskCreated = \"taskCreated\",\n\n\t// Task Lifecycle\n\tTaskStarted = \"taskStarted\",\n\tTaskCompleted = \"taskCompleted\",\n\tTaskAborted = \"taskAborted\",\n\tTaskFocused = \"taskFocused\",\n\tTaskUnfocused = \"taskUnfocused\",\n\tTaskActive = \"taskActive\",\n\tTaskInteractive = \"taskInteractive\",\n\tTaskResumable = \"taskResumable\",\n\tTaskIdle = \"taskIdle\",\n\n\t// Subtask Lifecycle\n\tTaskPaused = \"taskPaused\",\n\tTaskUnpaused = \"taskUnpaused\",\n\tTaskSpawned = \"taskSpawned\",\n\tTaskDelegated = \"taskDelegated\",\n\tTaskDelegationCompleted = \"taskDelegationCompleted\",\n\tTaskDelegationResumed = \"taskDelegationResumed\",\n\n\t// Task Execution\n\tMessage = \"message\",\n\tTaskModeSwitched = \"taskModeSwitched\",\n\tTaskAskResponded = \"taskAskResponded\",\n\tTaskUserMessage = \"taskUserMessage\",\n\n\t// Task Analytics\n\tTaskTokenUsageUpdated = \"taskTokenUsageUpdated\",\n\tTaskToolFailed = \"taskToolFailed\",\n\n\t// Configuration Changes\n\tModeChanged = \"modeChanged\",\n\tProviderProfileChanged = \"providerProfileChanged\",\n\n\t// Evals\n\tEvalPass = \"evalPass\",\n\tEvalFail = \"evalFail\",\n}\n\n/**\n * RooCodeEvents\n */\n\nexport const rooCodeEventsSchema = z.object({\n\t[RooCodeEventName.TaskCreated]: z.tuple([z.string()]),\n\n\t[RooCodeEventName.TaskStarted]: z.tuple([z.string()]),\n\t[RooCodeEventName.TaskCompleted]: z.tuple([\n\t\tz.string(),\n\t\ttokenUsageSchema,\n\t\ttoolUsageSchema,\n\t\tz.object({\n\t\t\tisSubtask: z.boolean(),\n\t\t}),\n\t]),\n\t[RooCodeEventName.TaskAborted]: z.tuple([z.string()]),\n\t[RooCodeEventName.TaskFocused]: z.tuple([z.string()]),\n\t[RooCodeEventName.TaskUnfocused]: z.tuple([z.string()]),\n\t[RooCodeEventName.TaskActive]: z.tuple([z.string()]),\n\t[RooCodeEventName.TaskInteractive]: z.tuple([z.string()]),\n\t[RooCodeEventName.TaskResumable]: z.tuple([z.string()]),\n\t[RooCodeEventName.TaskIdle]: z.tuple([z.string()]),\n\n\t[RooCodeEventName.TaskPaused]: z.tuple([z.string()]),\n\t[RooCodeEventName.TaskUnpaused]: z.tuple([z.string()]),\n\t[RooCodeEventName.TaskSpawned]: z.tuple([z.string(), z.string()]),\n\t[RooCodeEventName.TaskDelegated]: z.tuple([\n\t\tz.string(), // parentTaskId\n\t\tz.string(), // childTaskId\n\t]),\n\t[RooCodeEventName.TaskDelegationCompleted]: z.tuple([\n\t\tz.string(), // parentTaskId\n\t\tz.string(), // childTaskId\n\t\tz.string(), // completionResultSummary\n\t]),\n\t[RooCodeEventName.TaskDelegationResumed]: z.tuple([\n\t\tz.string(), // parentTaskId\n\t\tz.string(), // childTaskId\n\t]),\n\n\t[RooCodeEventName.Message]: z.tuple([\n\t\tz.object({\n\t\t\ttaskId: z.string(),\n\t\t\taction: z.union([z.literal(\"created\"), z.literal(\"updated\")]),\n\t\t\tmessage: clineMessageSchema,\n\t\t}),\n\t]),\n\t[RooCodeEventName.TaskModeSwitched]: z.tuple([z.string(), z.string()]),\n\t[RooCodeEventName.TaskAskResponded]: z.tuple([z.string()]),\n\t[RooCodeEventName.TaskUserMessage]: z.tuple([z.string()]),\n\n\t[RooCodeEventName.TaskToolFailed]: z.tuple([z.string(), toolNamesSchema, z.string()]),\n\t[RooCodeEventName.TaskTokenUsageUpdated]: z.tuple([z.string(), tokenUsageSchema, toolUsageSchema]),\n\n\t[RooCodeEventName.ModeChanged]: z.tuple([z.string()]),\n\t[RooCodeEventName.ProviderProfileChanged]: z.tuple([z.object({ name: z.string(), provider: z.string() })]),\n})\n\nexport type RooCodeEvents = z.infer<typeof rooCodeEventsSchema>\n\n/**\n * TaskEvent\n */\n\nexport const taskEventSchema = z.discriminatedUnion(\"eventName\", [\n\t// Task Provider Lifecycle\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskCreated),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskCreated],\n\t\ttaskId: z.number().optional(),\n\t}),\n\n\t// Task Lifecycle\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskStarted),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskStarted],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskCompleted),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskCompleted],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskAborted),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskAborted],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskFocused),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskFocused],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskUnfocused),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskUnfocused],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskActive),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskActive],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskInteractive),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskInteractive],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskResumable),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskResumable],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskIdle),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskIdle],\n\t\ttaskId: z.number().optional(),\n\t}),\n\n\t// Subtask Lifecycle\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskPaused),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskPaused],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskUnpaused),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskUnpaused],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskSpawned),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskSpawned],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskDelegated),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskDelegated],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskDelegationCompleted),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskDelegationCompleted],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskDelegationResumed),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskDelegationResumed],\n\t\ttaskId: z.number().optional(),\n\t}),\n\n\t// Task Execution\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.Message),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.Message],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskModeSwitched),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskModeSwitched],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskAskResponded),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskAskResponded],\n\t\ttaskId: z.number().optional(),\n\t}),\n\n\t// Task Analytics\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskToolFailed),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskToolFailed],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskTokenUsageUpdated),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskTokenUsageUpdated],\n\t\ttaskId: z.number().optional(),\n\t}),\n\n\t// Evals\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.EvalPass),\n\t\tpayload: z.undefined(),\n\t\ttaskId: z.number(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.EvalFail),\n\t\tpayload: z.undefined(),\n\t\ttaskId: z.number(),\n\t}),\n])\n\nexport type TaskEvent = z.infer<typeof taskEventSchema>\n","import { z } from \"zod\"\n\n/**\n * ClineAsk\n */\n\n/**\n * Array of possible ask types that the LLM can use to request user interaction or approval.\n * These represent different scenarios where the assistant needs user input to proceed.\n *\n * @constant\n * @readonly\n *\n * Ask type descriptions:\n * - `followup`: LLM asks a clarifying question to gather more information needed to complete the task\n * - `command`: Permission to execute a terminal/shell command\n * - `command_output`: Permission to read the output from a previously executed command\n * - `completion_result`: Task has been completed, awaiting user feedback or a new task\n * - `tool`: Permission to use a tool for file operations (read, write, search, etc.)\n * - `api_req_failed`: API request failed, asking user whether to retry\n * - `resume_task`: Confirmation needed to resume a previously paused task\n * - `resume_completed_task`: Confirmation needed to resume a task that was already marked as completed\n * - `mistake_limit_reached`: Too many errors encountered, needs user guidance on how to proceed\n * - `browser_action_launch`: Permission to open or interact with a browser\n * - `use_mcp_server`: Permission to use Model Context Protocol (MCP) server functionality\n * - `auto_approval_max_req_reached`: Auto-approval limit has been reached, manual approval required\n */\nexport const clineAsks = [\n\t\"followup\",\n\t\"command\",\n\t\"command_output\",\n\t\"completion_result\",\n\t\"tool\",\n\t\"api_req_failed\",\n\t\"resume_task\",\n\t\"resume_completed_task\",\n\t\"mistake_limit_reached\",\n\t\"browser_action_launch\",\n\t\"use_mcp_server\",\n\t\"auto_approval_max_req_reached\",\n] as const\n\nexport const clineAskSchema = z.enum(clineAsks)\n\nexport type ClineAsk = z.infer<typeof clineAskSchema>\n/**\n * IdleAsk\n *\n * Asks that put the task into an \"idle\" state.\n */\n\nexport const idleAsks = [\n\t\"completion_result\",\n\t\"api_req_failed\",\n\t\"resume_completed_task\",\n\t\"mistake_limit_reached\",\n\t\"auto_approval_max_req_reached\",\n] as const satisfies readonly ClineAsk[]\n\nexport type IdleAsk = (typeof idleAsks)[number]\n\nexport function isIdleAsk(ask: ClineAsk): ask is IdleAsk {\n\treturn (idleAsks as readonly ClineAsk[]).includes(ask)\n}\n\n/**\n * ResumableAsk\n *\n * Asks that put the task into an \"resumable\" state.\n */\n\nexport const resumableAsks = [\"resume_task\"] as const satisfies readonly ClineAsk[]\n\nexport type ResumableAsk = (typeof resumableAsks)[number]\n\nexport function isResumableAsk(ask: ClineAsk): ask is ResumableAsk {\n\treturn (resumableAsks as readonly ClineAsk[]).includes(ask)\n}\n\n/**\n * InteractiveAsk\n *\n * Asks that put the task into an \"user interaction required\" state.\n */\n\nexport const interactiveAsks = [\n\t\"followup\",\n\t\"command\",\n\t\"tool\",\n\t\"browser_action_launch\",\n\t\"use_mcp_server\",\n] as const satisfies readonly ClineAsk[]\n\nexport type InteractiveAsk = (typeof interactiveAsks)[number]\n\nexport function isInteractiveAsk(ask: ClineAsk): ask is InteractiveAsk {\n\treturn (interactiveAsks as readonly ClineAsk[]).includes(ask)\n}\n\n/**\n * NonBlockingAsk\n *\n * Asks that are not associated with an actual approval, and are only used\n * to update chat messages.\n */\n\nexport const nonBlockingAsks = [\"command_output\"] as const satisfies readonly ClineAsk[]\n\nexport type NonBlockingAsk = (typeof nonBlockingAsks)[number]\n\nexport function isNonBlockingAsk(ask: ClineAsk): ask is NonBlockingAsk {\n\treturn (nonBlockingAsks as readonly ClineAsk[]).includes(ask)\n}\n\n/**\n * ClineSay\n */\n\n/**\n * Array of possible say types that represent different kinds of messages the assistant can send.\n * These are used to categorize and handle various types of communication from the LLM to the user.\n *\n * @constant\n * @readonly\n *\n * Say type descriptions:\n * - `error`: General error message\n * - `api_req_started`: Indicates an API request has been initiated\n * - `api_req_finished`: Indicates an API request has completed successfully\n * - `api_req_retried`: Indicates an API request is being retried after a failure\n * - `api_req_retry_delayed`: Indicates an API request retry has been delayed\n * - `api_req_deleted`: Indicates an API request has been deleted/cancelled\n * - `text`: General text message or assistant response\n * - `reasoning`: Assistant's reasoning or thought process (often hidden from user)\n * - `completion_result`: Final result of task completion\n * - `user_feedback`: Message containing user feedback\n * - `user_feedback_diff`: Diff-formatted feedback from user showing requested changes\n * - `command_output`: Output from an executed command\n * - `shell_integration_warning`: Warning about shell integration issues or limitations\n * - `browser_action`: Action performed in the browser\n * - `browser_action_result`: Result of a browser action\n * - `mcp_server_request_started`: MCP server request has been initiated\n * - `mcp_server_response`: Response received from MCP server\n * - `subtask_result`: Result of a completed subtask\n * - `checkpoint_saved`: Indicates a checkpoint has been saved\n * - `rooignore_error`: Error related to .rooignore file processing\n * - `diff_error`: Error occurred while applying a diff/patch\n * - `condense_context`: Context condensation/summarization has started\n * - `condense_context_error`: Error occurred during context condensation\n * - `codebase_search_result`: Results from searching the codebase\n */\nexport const clineSays = [\n\t\"error\",\n\t\"api_req_started\",\n\t\"api_req_finished\",\n\t\"api_req_retried\",\n\t\"api_req_retry_delayed\",\n\t\"api_req_deleted\",\n\t\"text\",\n\t\"image\",\n\t\"reasoning\",\n\t\"completion_result\",\n\t\"user_feedback\",\n\t\"user_feedback_diff\",\n\t\"command_output\",\n\t\"shell_integration_warning\",\n\t\"browser_action\",\n\t\"browser_action_result\",\n\t\"browser_session_status\",\n\t\"mcp_server_request_started\",\n\t\"mcp_server_response\",\n\t\"subtask_result\",\n\t\"checkpoint_saved\",\n\t\"rooignore_error\",\n\t\"diff_error\",\n\t\"condense_context\",\n\t\"condense_context_error\",\n\t\"sliding_window_truncation\",\n\t\"codebase_search_result\",\n\t\"user_edit_todos\",\n] as const\n\nexport const clineSaySchema = z.enum(clineSays)\n\nexport type ClineSay = z.infer<typeof clineSaySchema>\n\n/**\n * ToolProgressStatus\n */\n\nexport const toolProgressStatusSchema = z.object({\n\ticon: z.string().optional(),\n\ttext: z.string().optional(),\n})\n\nexport type ToolProgressStatus = z.infer<typeof toolProgressStatusSchema>\n\n/**\n * ContextCondense\n *\n * Data associated with a successful context condensation event.\n * This is attached to messages with `say: \"condense_context\"` when\n * the condensation operation completes successfully.\n *\n * @property cost - The API cost incurred for the condensation operation\n * @property prevContextTokens - Token count before condensation\n * @property newContextTokens - Token count after condensation\n * @property summary - The condensed summary that replaced the original context\n * @property condenseId - Optional unique identifier for this condensation operation\n */\nexport const contextCondenseSchema = z.object({\n\tcost: z.number(),\n\tprevContextTokens: z.number(),\n\tnewContextTokens: z.number(),\n\tsummary: z.string(),\n\tcondenseId: z.string().optional(),\n})\n\nexport type ContextCondense = z.infer<typeof contextCondenseSchema>\n\n/**\n * ContextTruncation\n *\n * Data associated with a sliding window truncation event.\n * This is attached to messages with `say: \"sliding_window_truncation\"` when\n * messages are removed from the conversation history to stay within token limits.\n *\n * Unlike condensation, truncation simply removes older messages without\n * summarizing them. This is a faster but less context-preserving approach.\n *\n * @property truncationId - Unique identifier for this truncation operation\n * @property messagesRemoved - Number of conversation messages that were removed\n * @property prevContextTokens - Token count before truncation occurred\n * @property newContextTokens - Token count after truncation occurred\n */\nexport const contextTruncationSchema = z.object({\n\ttruncationId: z.string(),\n\tmessagesRemoved: z.number(),\n\tprevContextTokens: z.number(),\n\tnewContextTokens: z.number(),\n})\n\nexport type ContextTruncation = z.infer<typeof contextTruncationSchema>\n\n/**\n * ClineMessage\n *\n * The main message type used for communication between the extension and webview.\n * Messages can either be \"ask\" (requiring user response) or \"say\" (informational).\n *\n * Context Management Fields:\n * - `contextCondense`: Present when `say: \"condense_context\"` and condensation succeeded\n * - `contextTruncation`: Present when `say: \"sliding_window_truncation\"` and truncation occurred\n *\n * Note: These fields are mutually exclusive - a message will have at most one of them.\n */\nexport const clineMessageSchema = z.object({\n\tts: z.number(),\n\ttype: z.union([z.literal(\"ask\"), z.literal(\"say\")]),\n\task: clineAskSchema.optional(),\n\tsay: clineSaySchema.optional(),\n\ttext: z.string().optional(),\n\timages: z.array(z.string()).optional(),\n\tpartial: z.boolean().optional(),\n\treasoning: z.string().optional(),\n\tconversationHistoryIndex: z.number().optional(),\n\tcheckpoint: z.record(z.string(), z.unknown()).optional(),\n\tprogressStatus: toolProgressStatusSchema.optional(),\n\t/**\n\t * Data for successful context condensation.\n\t * Present when `say: \"condense_context\"` and `partial: false`.\n\t */\n\tcontextCondense: contextCondenseSchema.optional(),\n\t/**\n\t * Data for sliding window truncation.\n\t * Present when `say: \"sliding_window_truncation\"`.\n\t */\n\tcontextTruncation: contextTruncationSchema.optional(),\n\tisProtected: z.boolean().optional(),\n\tapiProtocol: z.union([z.literal(\"openai\"), z.literal(\"anthropic\")]).optional(),\n\tisAnswered: z.boolean().optional(),\n})\n\nexport type ClineMessage = z.infer<typeof clineMessageSchema>\n\n/**\n * TokenUsage\n */\n\nexport const tokenUsageSchema = z.object({\n\ttotalTokensIn: z.number(),\n\ttotalTokensOut: z.number(),\n\ttotalCacheWrites: z.number().optional(),\n\ttotalCacheReads: z.number().optional(),\n\ttotalCost: z.number(),\n\tcontextTokens: z.number(),\n})\n\nexport type TokenUsage = z.infer<typeof tokenUsageSchema>\n\n/**\n * QueuedMessage\n */\n\nexport const queuedMessageSchema = z.object({\n\ttimestamp: z.number(),\n\tid: z.string(),\n\ttext: z.string(),\n\timages: z.array(z.string()).optional(),\n})\n\nexport type QueuedMessage = z.infer<typeof queuedMessageSchema>\n","import { z } from \"zod\"\n\n/**\n * ToolGroup\n */\n\nexport const toolGroups = [\"read\", \"edit\", \"browser\", \"command\", \"mcp\", \"modes\"] as const\n\nexport const toolGroupsSchema = z.enum(toolGroups)\n\nexport type ToolGroup = z.infer<typeof toolGroupsSchema>\n\n/**\n * ToolName\n */\n\nexport const toolNames = [\n\t\"execute_command\",\n\t\"read_file\",\n\t\"write_to_file\",\n\t\"apply_diff\",\n\t\"search_and_replace\",\n\t\"search_replace\",\n\t\"apply_patch\",\n\t\"search_files\",\n\t\"list_files\",\n\t\"browser_action\",\n\t\"use_mcp_tool\",\n\t\"access_mcp_resource\",\n\t\"ask_followup_question\",\n\t\"attempt_completion\",\n\t\"switch_mode\",\n\t\"new_task\",\n\t\"fetch_instructions\",\n\t\"codebase_search\",\n\t\"update_todo_list\",\n\t\"run_slash_command\",\n\t\"generate_image\",\n] as const\n\nexport const toolNamesSchema = z.enum(toolNames)\n\nexport type ToolName = z.infer<typeof toolNamesSchema>\n\n/**\n * ToolUsage\n */\n\nexport const toolUsageSchema = z.record(\n\ttoolNamesSchema,\n\tz.object({\n\t\tattempts: z.number(),\n\t\tfailures: z.number(),\n\t}),\n)\n\nexport type ToolUsage = z.infer<typeof toolUsageSchema>\n\n/**\n * Tool protocol constants\n */\nexport const TOOL_PROTOCOL = {\n\tXML: \"xml\",\n\tNATIVE: \"native\",\n} as const\n\n/**\n * Tool protocol type for system prompt generation\n * Derived from TOOL_PROTOCOL constants to ensure type safety\n */\nexport type ToolProtocol = (typeof TOOL_PROTOCOL)[keyof typeof TOOL_PROTOCOL]\n\n/**\n * Checks if the protocol is native (non-XML).\n *\n * @param protocol - The tool protocol to check\n * @returns True if protocol is native\n */\nexport function isNativeProtocol(protocol: ToolProtocol): boolean {\n\treturn protocol === TOOL_PROTOCOL.NATIVE\n}\n\n/**\n * Gets the effective protocol from settings or falls back to the default XML.\n * This function is safe to use in webview-accessible code as it doesn't depend on vscode module.\n *\n * @param toolProtocol - Optional tool protocol from settings\n * @returns The effective tool protocol (defaults to \"xml\")\n */\nexport function getEffectiveProtocol(toolProtocol?: ToolProtocol): ToolProtocol {\n\treturn toolProtocol || TOOL_PROTOCOL.XML\n}\n","import { z } from \"zod\"\n\nimport { RooCodeEventName } from \"./events.js\"\nimport type { RooCodeSettings } from \"./global-settings.js\"\nimport type { ClineMessage, QueuedMessage, TokenUsage } from \"./message.js\"\nimport type { ToolUsage, ToolName } from \"./tool.js\"\nimport type { StaticAppProperties, GitProperties, TelemetryProperties } from \"./telemetry.js\"\nimport type { TodoItem } from \"./todo.js\"\n\n/**\n * TaskProviderLike\n */\n\nexport interface TaskProviderLike {\n\t// Tasks\n\tgetCurrentTask(): TaskLike | undefined\n\tgetRecentTasks(): string[]\n\tcreateTask(\n\t\ttext?: string,\n\t\timages?: string[],\n\t\tparentTask?: TaskLike,\n\t\toptions?: CreateTaskOptions,\n\t\tconfiguration?: RooCodeSettings,\n\t): Promise<TaskLike>\n\tcancelTask(): Promise<void>\n\tclearTask(): Promise<void>\n\tresumeTask(taskId: string): void\n\n\t// Modes\n\tgetModes(): Promise<{ slug: string; name: string }[]>\n\tgetMode(): Promise<string>\n\tsetMode(mode: string): Promise<void>\n\n\t// Provider Profiles\n\tgetProviderProfiles(): Promise<{ name: string; provider?: string }[]>\n\tgetProviderProfile(): Promise<string>\n\tsetProviderProfile(providerProfile: string): Promise<void>\n\n\t// Telemetry\n\treadonly appProperties: StaticAppProperties\n\treadonly gitProperties: GitProperties | undefined\n\tgetTelemetryProperties(): Promise<TelemetryProperties>\n\treadonly cwd: string\n\n\t// Event Emitter\n\ton<K extends keyof TaskProviderEvents>(\n\t\tevent: K,\n\t\tlistener: (...args: TaskProviderEvents[K]) => void | Promise<void>,\n\t): this\n\n\toff<K extends keyof TaskProviderEvents>(\n\t\tevent: K,\n\t\tlistener: (...args: TaskProviderEvents[K]) => void | Promise<void>,\n\t): this\n\n\t// @TODO: Find a better way to do this.\n\tpostStateToWebview(): Promise<void>\n}\n\nexport type TaskProviderEvents = {\n\t[RooCodeEventName.TaskCreated]: [task: TaskLike]\n\t[RooCodeEventName.TaskStarted]: [taskId: string]\n\t[RooCodeEventName.TaskCompleted]: [taskId: string, tokenUsage: TokenUsage, toolUsage: ToolUsage]\n\t[RooCodeEventName.TaskAborted]: [taskId: string]\n\t[RooCodeEventName.TaskFocused]: [taskId: string]\n\t[RooCodeEventName.TaskUnfocused]: [taskId: string]\n\t[RooCodeEventName.TaskActive]: [taskId: string]\n\t[RooCodeEventName.TaskInteractive]: [taskId: string]\n\t[RooCodeEventName.TaskResumable]: [taskId: string]\n\t[RooCodeEventName.TaskIdle]: [taskId: string]\n\n\t[RooCodeEventName.TaskPaused]: [taskId: string]\n\t[RooCodeEventName.TaskUnpaused]: [taskId: string]\n\t[RooCodeEventName.TaskSpawned]: [taskId: string]\n\t[RooCodeEventName.TaskDelegated]: [parentTaskId: string, childTaskId: string]\n\t[RooCodeEventName.TaskDelegationCompleted]: [parentTaskId: string, childTaskId: string, summary: string]\n\t[RooCodeEventName.TaskDelegationResumed]: [parentTaskId: string, childTaskId: string]\n\n\t[RooCodeEventName.TaskUserMessage]: [taskId: string]\n\n\t[RooCodeEventName.TaskTokenUsageUpdated]: [taskId: string, tokenUsage: TokenUsage, toolUsage: ToolUsage]\n\n\t[RooCodeEventName.ModeChanged]: [mode: string]\n\t[RooCodeEventName.ProviderProfileChanged]: [config: { name: string; provider?: string }]\n}\n\n/**\n * TaskLike\n */\n\nexport interface CreateTaskOptions {\n\tenableDiff?: boolean\n\tenableCheckpoints?: boolean\n\tfuzzyMatchThreshold?: number\n\tconsecutiveMistakeLimit?: number\n\texperiments?: Record<string, boolean>\n\tinitialTodos?: TodoItem[]\n\t/** Initial status for the task's history item (e.g., \"active\" for child tasks) */\n\tinitialStatus?: \"active\" | \"delegated\" | \"completed\"\n}\n\nexport enum TaskStatus {\n\tRunning = \"running\",\n\tInteractive = \"interactive\",\n\tResumable = \"resumable\",\n\tIdle = \"idle\",\n\tNone = \"none\",\n}\n\nexport const taskMetadataSchema = z.object({\n\ttask: z.string().optional(),\n\timages: z.array(z.string()).optional(),\n})\n\nexport type TaskMetadata = z.infer<typeof taskMetadataSchema>\n\nexport interface TaskLike {\n\treadonly taskId: string\n\treadonly rootTaskId?: string\n\treadonly parentTaskId?: string\n\treadonly childTaskId?: string\n\treadonly metadata: TaskMetadata\n\treadonly taskStatus: TaskStatus\n\treadonly taskAsk: ClineMessage | undefined\n\treadonly queuedMessages: QueuedMessage[]\n\treadonly tokenUsage: TokenUsage | undefined\n\n\ton<K extends keyof TaskEvents>(event: K, listener: (...args: TaskEvents[K]) => void | Promise<void>): this\n\toff<K extends keyof TaskEvents>(event: K, listener: (...args: TaskEvents[K]) => void | Promise<void>): this\n\n\tapproveAsk(options?: { text?: string; images?: string[] }): void\n\tdenyAsk(options?: { text?: string; images?: string[] }): void\n\tsubmitUserMessage(text: string, images?: string[], mode?: string, providerProfile?: string): Promise<void>\n\tabortTask(): void\n}\n\nexport type TaskEvents = {\n\t// Task Lifecycle\n\t[RooCodeEventName.TaskStarted]: []\n\t[RooCodeEventName.TaskCompleted]: [taskId: string, tokenUsage: TokenUsage, toolUsage: ToolUsage]\n\t[RooCodeEventName.TaskAborted]: []\n\t[RooCodeEventName.TaskFocused]: []\n\t[RooCodeEventName.TaskUnfocused]: []\n\t[RooCodeEventName.TaskActive]: [taskId: string]\n\t[RooCodeEventName.TaskInteractive]: [taskId: string]\n\t[RooCodeEventName.TaskResumable]: [taskId: string]\n\t[RooCodeEventName.TaskIdle]: [taskId: string]\n\n\t// Subtask Lifecycle\n\t[RooCodeEventName.TaskPaused]: [taskId: string]\n\t[RooCodeEventName.TaskUnpaused]: [taskId: string]\n\t[RooCodeEventName.TaskSpawned]: [taskId: string]\n\n\t// Task Execution\n\t[RooCodeEventName.Message]: [{ action: \"created\" | \"updated\"; message: ClineMessage }]\n\t[RooCodeEventName.TaskModeSwitched]: [taskId: string, mode: string]\n\t[RooCodeEventName.TaskAskResponded]: []\n\t[RooCodeEventName.TaskUserMessage]: [taskId: string]\n\n\t// Task Analytics\n\t[RooCodeEventName.TaskToolFailed]: [taskId: string, tool: ToolName, error: string]\n\t[RooCodeEventName.TaskTokenUsageUpdated]: [taskId: string, tokenUsage: TokenUsage, toolUsage: ToolUsage]\n}\n","import { z } from \"zod\"\n\nimport { type Keys } from \"./type-fu.js\"\nimport {\n\ttype ProviderSettings,\n\tPROVIDER_SETTINGS_KEYS,\n\tproviderSettingsEntrySchema,\n\tproviderSettingsSchema,\n} from \"./provider-settings.js\"\nimport { historyItemSchema } from \"./history.js\"\nimport { codebaseIndexModelsSchema, codebaseIndexConfigSchema } from \"./codebase-index.js\"\nimport { experimentsSchema } from \"./experiment.js\"\nimport { telemetrySettingsSchema } from \"./telemetry.js\"\nimport { modeConfigSchema } from \"./mode.js\"\nimport { customModePromptsSchema, customSupportPromptsSchema } from \"./mode.js\"\nimport { languagesSchema } from \"./vscode.js\"\n\n/**\n * Default delay in milliseconds after writes to allow diagnostics to detect potential problems.\n * This delay is particularly important for Go and other languages where tools like goimports\n * need time to automatically clean up unused imports.\n */\nexport const DEFAULT_WRITE_DELAY_MS = 1000\n\n/**\n * Default terminal output character limit constant.\n * This provides a reasonable default that aligns with typical terminal usage\n * while preventing context window explosions from extremely long lines.\n */\nexport const DEFAULT_TERMINAL_OUTPUT_CHARACTER_LIMIT = 50_000\n\n/**\n * Minimum checkpoint timeout in seconds.\n */\nexport const MIN_CHECKPOINT_TIMEOUT_SECONDS = 10\n\n/**\n * Maximum checkpoint timeout in seconds.\n */\nexport const MAX_CHECKPOINT_TIMEOUT_SECONDS = 60\n\n/**\n * Default checkpoint timeout in seconds.\n */\nexport const DEFAULT_CHECKPOINT_TIMEOUT_SECONDS = 15\n\n/**\n * GlobalSettings\n */\n\nexport const globalSettingsSchema = z.object({\n\tcurrentApiConfigName: z.string().optional(),\n\tlistApiConfigMeta: z.array(providerSettingsEntrySchema).optional(),\n\tpinnedApiConfigs: z.record(z.string(), z.boolean()).optional(),\n\n\tlastShownAnnouncementId: z.string().optional(),\n\tcustomInstructions: z.string().optional(),\n\ttaskHistory: z.array(historyItemSchema).optional(),\n\tdismissedUpsells: z.array(z.string()).optional(),\n\n\t// Image generation settings (experimental) - flattened for simplicity\n\timageGenerationProvider: z.enum([\"openrouter\", \"roo\"]).optional(),\n\topenRouterImageApiKey: z.string().optional(),\n\topenRouterImageGenerationSelectedModel: z.string().optional(),\n\n\tcondensingApiConfigId: z.string().optional(),\n\tcustomCondensingPrompt: z.string().optional(),\n\n\tautoApprovalEnabled: z.boolean().optional(),\n\talwaysAllowReadOnly: z.boolean().optional(),\n\talwaysAllowReadOnlyOutsideWorkspace: z.boolean().optional(),\n\talwaysAllowWrite: z.boolean().optional(),\n\talwaysAllowWriteOutsideWorkspace: z.boolean().optional(),\n\talwaysAllowWriteProtected: z.boolean().optional(),\n\twriteDelayMs: z.number().min(0).optional(),\n\talwaysAllowBrowser: z.boolean().optional(),\n\talwaysApproveResubmit: z.boolean().optional(),\n\trequestDelaySeconds: z.number().optional(),\n\talwaysAllowMcp: z.boolean().optional(),\n\talwaysAllowModeSwitch: z.boolean().optional(),\n\talwaysAllowSubtasks: z.boolean().optional(),\n\talwaysAllowExecute: z.boolean().optional(),\n\talwaysAllowFollowupQuestions: z.boolean().optional(),\n\tfollowupAutoApproveTimeoutMs: z.number().optional(),\n\talwaysAllowUpdateTodoList: z.boolean().optional(),\n\tallowedCommands: z.array(z.string()).optional(),\n\tdeniedCommands: z.array(z.string()).optional(),\n\tcommandExecutionTimeout: z.number().optional(),\n\tcommandTimeoutAllowlist: z.array(z.string()).optional(),\n\tpreventCompletionWithOpenTodos: z.boolean().optional(),\n\tallowedMaxRequests: z.number().nullish(),\n\tallowedMaxCost: z.number().nullish(),\n\tautoCondenseContext: z.boolean().optional(),\n\tautoCondenseContextPercent: z.number().optional(),\n\tmaxConcurrentFileReads: z.number().optional(),\n\n\t/**\n\t * Whether to include current time in the environment details\n\t * @default true\n\t */\n\tincludeCurrentTime: z.boolean().optional(),\n\t/**\n\t * Whether to include current cost in the environment details\n\t * @default true\n\t */\n\tincludeCurrentCost: z.boolean().optional(),\n\t/**\n\t * Maximum number of git status file entries to include in the environment details.\n\t * Set to 0 to disable git status. The header (branch, commits) is always included when > 0.\n\t * @default 0\n\t */\n\tmaxGitStatusFiles: z.number().optional(),\n\n\t/**\n\t * Whether to include diagnostic messages (errors, warnings) in tool outputs\n\t * @default true\n\t */\n\tincludeDiagnosticMessages: z.boolean().optional(),\n\t/**\n\t * Maximum number of diagnostic messages to include in tool outputs\n\t * @default 50\n\t */\n\tmaxDiagnosticMessages: z.number().optional(),\n\n\tbrowserToolEnabled: z.boolean().optional(),\n\tbrowserViewportSize: z.string().optional(),\n\tscreenshotQuality: z.number().optional(),\n\tremoteBrowserEnabled: z.boolean().optional(),\n\tremoteBrowserHost: z.string().optional(),\n\tcachedChromeHostUrl: z.string().optional(),\n\n\tenableCheckpoints: z.boolean().optional(),\n\tcheckpointTimeout: z\n\t\t.number()\n\t\t.int()\n\t\t.min(MIN_CHECKPOINT_TIMEOUT_SECONDS)\n\t\t.max(MAX_CHECKPOINT_TIMEOUT_SECONDS)\n\t\t.optional(),\n\n\tttsEnabled: z.boolean().optional(),\n\tttsSpeed: z.number().optional(),\n\tsoundEnabled: z.boolean().optional(),\n\tsoundVolume: z.number().optional(),\n\n\tmaxOpenTabsContext: z.number().optional(),\n\tmaxWorkspaceFiles: z.number().optional(),\n\tshowRooIgnoredFiles: z.boolean().optional(),\n\tmaxReadFileLine: z.number().optional(),\n\tmaxImageFileSize: z.number().optional(),\n\tmaxTotalImageSize: z.number().optional(),\n\n\tterminalOutputLineLimit: z.number().optional(),\n\tterminalOutputCharacterLimit: z.number().optional(),\n\tterminalShellIntegrationTimeout: z.number().optional(),\n\tterminalShellIntegrationDisabled: z.boolean().optional(),\n\tterminalCommandDelay: z.number().optional(),\n\tterminalPowershellCounter: z.boolean().optional(),\n\tterminalZshClearEolMark: z.boolean().optional(),\n\tterminalZshOhMy: z.boolean().optional(),\n\tterminalZshP10k: z.boolean().optional(),\n\tterminalZdotdir: z.boolean().optional(),\n\tterminalCompressProgressBar: z.boolean().optional(),\n\n\tdiagnosticsEnabled: z.boolean().optional(),\n\n\trateLimitSeconds: z.number().optional(),\n\tdiffEnabled: z.boolean().optional(),\n\tfuzzyMatchThreshold: z.number().optional(),\n\texperiments: experimentsSchema.optional(),\n\n\tcodebaseIndexModels: codebaseIndexModelsSchema.optional(),\n\tcodebaseIndexConfig: codebaseIndexConfigSchema.optional(),\n\n\tlanguage: languagesSchema.optional(),\n\n\ttelemetrySetting: telemetrySettingsSchema.optional(),\n\n\tmcpEnabled: z.boolean().optional(),\n\tenableMcpServerCreation: z.boolean().optional(),\n\n\tmode: z.string().optional(),\n\tmodeApiConfigs: z.record(z.string(), z.string()).optional(),\n\tcustomModes: z.array(modeConfigSchema).optional(),\n\tcustomModePrompts: customModePromptsSchema.optional(),\n\tcustomSupportPrompts: customSupportPromptsSchema.optional(),\n\tenhancementApiConfigId: z.string().optional(),\n\tincludeTaskHistoryInEnhance: z.boolean().optional(),\n\thistoryPreviewCollapsed: z.boolean().optional(),\n\treasoningBlockCollapsed: z.boolean().optional(),\n\t/**\n\t * Controls the keyboard behavior for sending messages in the chat input.\n\t * - \"send\": Enter sends message, Shift+Enter creates newline (default)\n\t * - \"newline\": Enter creates newline, Shift+Enter/Ctrl+Enter sends message\n\t * @default \"send\"\n\t */\n\tenterBehavior: z.enum([\"send\", \"newline\"]).optional(),\n\tprofileThresholds: z.record(z.string(), z.number()).optional(),\n\thasOpenedModeSelector: z.boolean().optional(),\n\tlastModeExportPath: z.string().optional(),\n\tlastModeImportPath: z.string().optional(),\n})\n\nexport type GlobalSettings = z.infer<typeof globalSettingsSchema>\n\nexport const GLOBAL_SETTINGS_KEYS = globalSettingsSchema.keyof().options\n\n/**\n * RooCodeSettings\n */\n\nexport const rooCodeSettingsSchema = providerSettingsSchema.merge(globalSettingsSchema)\n\nexport type RooCodeSettings = GlobalSettings & ProviderSettings\n\n/**\n * SecretState\n */\nexport const SECRET_STATE_KEYS = [\n\t\"apiKey\",\n\t\"openRouterApiKey\",\n\t\"awsAccessKey\",\n\t\"awsApiKey\",\n\t\"awsSecretKey\",\n\t\"awsSessionToken\",\n\t\"openAiApiKey\",\n\t\"ollamaApiKey\",\n\t\"geminiApiKey\",\n\t\"openAiNativeApiKey\",\n\t\"cerebrasApiKey\",\n\t\"deepSeekApiKey\",\n\t\"doubaoApiKey\",\n\t\"moonshotApiKey\",\n\t\"mistralApiKey\",\n\t\"minimaxApiKey\",\n\t\"unboundApiKey\",\n\t\"requestyApiKey\",\n\t\"xaiApiKey\",\n\t\"groqApiKey\",\n\t\"chutesApiKey\",\n\t\"litellmApiKey\",\n\t\"deepInfraApiKey\",\n\t\"codeIndexOpenAiKey\",\n\t\"codeIndexQdrantApiKey\",\n\t\"codebaseIndexOpenAiCompatibleApiKey\",\n\t\"codebaseIndexGeminiApiKey\",\n\t\"codebaseIndexMistralApiKey\",\n\t\"codebaseIndexVercelAiGatewayApiKey\",\n\t\"codebaseIndexOpenRouterApiKey\",\n\t\"huggingFaceApiKey\",\n\t\"sambaNovaApiKey\",\n\t\"zaiApiKey\",\n\t\"fireworksApiKey\",\n\t\"featherlessApiKey\",\n\t\"ioIntelligenceApiKey\",\n\t\"vercelAiGatewayApiKey\",\n\t\"basetenApiKey\",\n] as const\n\n// Global secrets that are part of GlobalSettings (not ProviderSettings)\nexport const GLOBAL_SECRET_KEYS = [\n\t\"openRouterImageApiKey\", // For image generation\n] as const\n\n// Type for the actual secret storage keys\ntype ProviderSecretKey = (typeof SECRET_STATE_KEYS)[number]\ntype GlobalSecretKey = (typeof GLOBAL_SECRET_KEYS)[number]\n\n// Type representing all secrets that can be stored\nexport type SecretState = Pick<ProviderSettings, Extract<ProviderSecretKey, keyof ProviderSettings>> & {\n\t[K in GlobalSecretKey]?: string\n}\n\nexport const isSecretStateKey = (key: string): key is Keys<SecretState> =>\n\tSECRET_STATE_KEYS.includes(key as ProviderSecretKey) || GLOBAL_SECRET_KEYS.includes(key as GlobalSecretKey)\n\n/**\n * GlobalState\n */\n\nexport type GlobalState = Omit<RooCodeSettings, Keys<SecretState>>\n\nexport const GLOBAL_STATE_KEYS = [...GLOBAL_SETTINGS_KEYS, ...PROVIDER_SETTINGS_KEYS].filter(\n\t(key: Keys<RooCodeSettings>) => !isSecretStateKey(key),\n) as Keys<GlobalState>[]\n\nexport const isGlobalStateKey = (key: string): key is Keys<GlobalState> =>\n\tGLOBAL_STATE_KEYS.includes(key as Keys<GlobalState>)\n\n/**\n * Evals\n */\n\n// Default settings when running evals (unless overridden).\nexport const EVALS_SETTINGS: RooCodeSettings = {\n\tapiProvider: \"openrouter\",\n\topenRouterUseMiddleOutTransform: false,\n\n\tlastShownAnnouncementId: \"jul-09-2025-3-23-0\",\n\n\tpinnedApiConfigs: {},\n\n\tautoApprovalEnabled: true,\n\talwaysAllowReadOnly: true,\n\talwaysAllowReadOnlyOutsideWorkspace: false,\n\talwaysAllowWrite: true,\n\talwaysAllowWriteOutsideWorkspace: false,\n\talwaysAllowWriteProtected: false,\n\twriteDelayMs: 1000,\n\talwaysAllowBrowser: true,\n\talwaysApproveResubmit: true,\n\trequestDelaySeconds: 10,\n\talwaysAllowMcp: true,\n\talwaysAllowModeSwitch: true,\n\talwaysAllowSubtasks: true,\n\talwaysAllowExecute: true,\n\talwaysAllowFollowupQuestions: true,\n\talwaysAllowUpdateTodoList: true,\n\tfollowupAutoApproveTimeoutMs: 0,\n\tallowedCommands: [\"*\"],\n\tcommandExecutionTimeout: 20,\n\tcommandTimeoutAllowlist: [],\n\tpreventCompletionWithOpenTodos: false,\n\n\tbrowserToolEnabled: false,\n\tbrowserViewportSize: \"900x600\",\n\tscreenshotQuality: 75,\n\tremoteBrowserEnabled: false,\n\n\tttsEnabled: false,\n\tttsSpeed: 1,\n\tsoundEnabled: false,\n\tsoundVolume: 0.5,\n\n\tterminalOutputLineLimit: 500,\n\tterminalOutputCharacterLimit: DEFAULT_TERMINAL_OUTPUT_CHARACTER_LIMIT,\n\tterminalShellIntegrationTimeout: 30000,\n\tterminalCommandDelay: 0,\n\tterminalPowershellCounter: false,\n\tterminalZshOhMy: true,\n\tterminalZshClearEolMark: true,\n\tterminalZshP10k: false,\n\tterminalZdotdir: true,\n\tterminalCompressProgressBar: true,\n\tterminalShellIntegrationDisabled: true,\n\n\tdiagnosticsEnabled: true,\n\n\tdiffEnabled: true,\n\tfuzzyMatchThreshold: 1,\n\n\tenableCheckpoints: false,\n\n\trateLimitSeconds: 0,\n\tmaxOpenTabsContext: 20,\n\tmaxWorkspaceFiles: 200,\n\tmaxGitStatusFiles: 20,\n\tshowRooIgnoredFiles: true,\n\tmaxReadFileLine: -1, // -1 to enable full file reading.\n\n\tincludeDiagnosticMessages: true,\n\tmaxDiagnosticMessages: 50,\n\n\tlanguage: \"en\",\n\ttelemetrySetting: \"enabled\",\n\n\tmcpEnabled: false,\n\n\tmode: \"code\", // \"architect\",\n\n\tcustomModes: [],\n}\n\nexport const EVALS_TIMEOUT = 5 * 60 * 1_000\n","import { z } from \"zod\"\n\nimport { modelInfoSchema, reasoningEffortSettingSchema, verbosityLevelsSchema, serviceTierSchema } from \"./model.js\"\nimport { codebaseIndexProviderSchema } from \"./codebase-index.js\"\nimport {\n\tanthropicModels,\n\tbasetenModels,\n\tbedrockModels,\n\tcerebrasModels,\n\tclaudeCodeModels,\n\tdeepSeekModels,\n\tdoubaoModels,\n\tfeatherlessModels,\n\tfireworksModels,\n\tgeminiModels,\n\tgroqModels,\n\tioIntelligenceModels,\n\tmistralModels,\n\tmoonshotModels,\n\topenAiNativeModels,\n\tqwenCodeModels,\n\tsambaNovaModels,\n\tvertexModels,\n\tvscodeLlmModels,\n\txaiModels,\n\tinternationalZAiModels,\n\tminimaxModels,\n} from \"./providers/index.js\"\n\n/**\n * constants\n */\n\nexport const DEFAULT_CONSECUTIVE_MISTAKE_LIMIT = 3\n\n/**\n * DynamicProvider\n *\n * Dynamic provider requires external API calls in order to get the model list.\n */\n\nexport const dynamicProviders = [\n\t\"openrouter\",\n\t\"vercel-ai-gateway\",\n\t\"huggingface\",\n\t\"litellm\",\n\t\"deepinfra\",\n\t\"io-intelligence\",\n\t\"requesty\",\n\t\"unbound\",\n\t\"roo\",\n\t\"chutes\",\n] as const\n\nexport type DynamicProvider = (typeof dynamicProviders)[number]\n\nexport const isDynamicProvider = (key: string): key is DynamicProvider =>\n\tdynamicProviders.includes(key as DynamicProvider)\n\n/**\n * LocalProvider\n *\n * Local providers require localhost API calls in order to get the model list.\n */\n\nexport const localProviders = [\"ollama\", \"lmstudio\"] as const\n\nexport type LocalProvider = (typeof localProviders)[number]\n\nexport const isLocalProvider = (key: string): key is LocalProvider => localProviders.includes(key as LocalProvider)\n\n/**\n * InternalProvider\n *\n * Internal providers require internal VSCode API calls in order to get the\n * model list.\n */\n\nexport const internalProviders = [\"vscode-lm\"] as const\n\nexport type InternalProvider = (typeof internalProviders)[number]\n\nexport const isInternalProvider = (key: string): key is InternalProvider =>\n\tinternalProviders.includes(key as InternalProvider)\n\n/**\n * CustomProvider\n *\n * Custom providers are completely configurable within Roo Code settings.\n */\n\nexport const customProviders = [\"openai\"] as const\n\nexport type CustomProvider = (typeof customProviders)[number]\n\nexport const isCustomProvider = (key: string): key is CustomProvider => customProviders.includes(key as CustomProvider)\n\n/**\n * FauxProvider\n *\n * Faux providers do not make external inference calls and therefore do not have\n * model lists.\n */\n\nexport const fauxProviders = [\"fake-ai\", \"human-relay\"] as const\n\nexport type FauxProvider = (typeof fauxProviders)[number]\n\nexport const isFauxProvider = (key: string): key is FauxProvider => fauxProviders.includes(key as FauxProvider)\n\n/**\n * ProviderName\n */\n\nexport const providerNames = [\n\t...dynamicProviders,\n\t...localProviders,\n\t...internalProviders,\n\t...customProviders,\n\t...fauxProviders,\n\t\"anthropic\",\n\t\"bedrock\",\n\t\"baseten\",\n\t\"cerebras\",\n\t\"claude-code\",\n\t\"doubao\",\n\t\"deepseek\",\n\t\"featherless\",\n\t\"fireworks\",\n\t\"gemini\",\n\t\"gemini-cli\",\n\t\"groq\",\n\t\"mistral\",\n\t\"moonshot\",\n\t\"minimax\",\n\t\"openai-native\",\n\t\"qwen-code\",\n\t\"roo\",\n\t\"sambanova\",\n\t\"vertex\",\n\t\"xai\",\n\t\"zai\",\n] as const\n\nexport const providerNamesSchema = z.enum(providerNames)\n\nexport type ProviderName = z.infer<typeof providerNamesSchema>\n\nexport const isProviderName = (key: unknown): key is ProviderName =>\n\ttypeof key === \"string\" && providerNames.includes(key as ProviderName)\n\n/**\n * ProviderSettingsEntry\n */\n\nexport const providerSettingsEntrySchema = z.object({\n\tid: z.string(),\n\tname: z.string(),\n\tapiProvider: providerNamesSchema.optional(),\n\tmodelId: z.string().optional(),\n})\n\nexport type ProviderSettingsEntry = z.infer<typeof providerSettingsEntrySchema>\n\n/**\n * ProviderSettings\n */\n\nconst baseProviderSettingsSchema = z.object({\n\tincludeMaxTokens: z.boolean().optional(),\n\tdiffEnabled: z.boolean().optional(),\n\ttodoListEnabled: z.boolean().optional(),\n\tfuzzyMatchThreshold: z.number().optional(),\n\tmodelTemperature: z.number().nullish(),\n\trateLimitSeconds: z.number().optional(),\n\tconsecutiveMistakeLimit: z.number().min(0).optional(),\n\n\t// Model reasoning.\n\tenableReasoningEffort: z.boolean().optional(),\n\treasoningEffort: reasoningEffortSettingSchema.optional(),\n\tmodelMaxTokens: z.number().optional(),\n\tmodelMaxThinkingTokens: z.number().optional(),\n\n\t// Model verbosity.\n\tverbosity: verbosityLevelsSchema.optional(),\n\n\t// Tool protocol override for this profile.\n\ttoolProtocol: z.enum([\"xml\", \"native\"]).optional(),\n})\n\n// Several of the providers share common model config properties.\nconst apiModelIdProviderModelSchema = baseProviderSettingsSchema.extend({\n\tapiModelId: z.string().optional(),\n})\n\nconst anthropicSchema = apiModelIdProviderModelSchema.extend({\n\tapiKey: z.string().optional(),\n\tanthropicBaseUrl: z.string().optional(),\n\tanthropicUseAuthToken: z.boolean().optional(),\n\tanthropicBeta1MContext: z.boolean().optional(), // Enable 'context-1m-2025-08-07' beta for 1M context window.\n})\n\nconst claudeCodeSchema = apiModelIdProviderModelSchema.extend({\n\tclaudeCodePath: z.string().optional(),\n\tclaudeCodeMaxOutputTokens: z.number().int().min(1).max(200000).optional(),\n})\n\nconst openRouterSchema = baseProviderSettingsSchema.extend({\n\topenRouterApiKey: z.string().optional(),\n\topenRouterModelId: z.string().optional(),\n\topenRouterBaseUrl: z.string().optional(),\n\topenRouterSpecificProvider: z.string().optional(),\n\topenRouterUseMiddleOutTransform: z.boolean().optional(),\n})\n\nconst bedrockSchema = apiModelIdProviderModelSchema.extend({\n\tawsAccessKey: z.string().optional(),\n\tawsSecretKey: z.string().optional(),\n\tawsSessionToken: z.string().optional(),\n\tawsRegion: z.string().optional(),\n\tawsUseCrossRegionInference: z.boolean().optional(),\n\tawsUseGlobalInference: z.boolean().optional(), // Enable Global Inference profile routing when supported\n\tawsUsePromptCache: z.boolean().optional(),\n\tawsProfile: z.string().optional(),\n\tawsUseProfile: z.boolean().optional(),\n\tawsApiKey: z.string().optional(),\n\tawsUseApiKey: z.boolean().optional(),\n\tawsCustomArn: z.string().optional(),\n\tawsModelContextWindow: z.number().optional(),\n\tawsBedrockEndpointEnabled: z.boolean().optional(),\n\tawsBedrockEndpoint: z.string().optional(),\n\tawsBedrock1MContext: z.boolean().optional(), // Enable 'context-1m-2025-08-07' beta for 1M context window.\n})\n\nconst vertexSchema = apiModelIdProviderModelSchema.extend({\n\tvertexKeyFile: z.string().optional(),\n\tvertexJsonCredentials: z.string().optional(),\n\tvertexProjectId: z.string().optional(),\n\tvertexRegion: z.string().optional(),\n\tenableUrlContext: z.boolean().optional(),\n\tenableGrounding: z.boolean().optional(),\n})\n\nconst openAiSchema = baseProviderSettingsSchema.extend({\n\topenAiBaseUrl: z.string().optional(),\n\topenAiApiKey: z.string().optional(),\n\topenAiLegacyFormat: z.boolean().optional(),\n\topenAiR1FormatEnabled: z.boolean().optional(),\n\topenAiModelId: z.string().optional(),\n\topenAiCustomModelInfo: modelInfoSchema.nullish(),\n\topenAiUseAzure: z.boolean().optional(),\n\tazureApiVersion: z.string().optional(),\n\topenAiStreamingEnabled: z.boolean().optional(),\n\topenAiHostHeader: z.string().optional(), // Keep temporarily for backward compatibility during migration.\n\topenAiHeaders: z.record(z.string(), z.string()).optional(),\n})\n\nconst ollamaSchema = baseProviderSettingsSchema.extend({\n\tollamaModelId: z.string().optional(),\n\tollamaBaseUrl: z.string().optional(),\n\tollamaApiKey: z.string().optional(),\n\tollamaNumCtx: z.number().int().min(128).optional(),\n})\n\nconst vsCodeLmSchema = baseProviderSettingsSchema.extend({\n\tvsCodeLmModelSelector: z\n\t\t.object({\n\t\t\tvendor: z.string().optional(),\n\t\t\tfamily: z.string().optional(),\n\t\t\tversion: z.string().optional(),\n\t\t\tid: z.string().optional(),\n\t\t})\n\t\t.optional(),\n})\n\nconst lmStudioSchema = baseProviderSettingsSchema.extend({\n\tlmStudioModelId: z.string().optional(),\n\tlmStudioBaseUrl: z.string().optional(),\n\tlmStudioDraftModelId: z.string().optional(),\n\tlmStudioSpeculativeDecodingEnabled: z.boolean().optional(),\n})\n\nconst geminiSchema = apiModelIdProviderModelSchema.extend({\n\tgeminiApiKey: z.string().optional(),\n\tgoogleGeminiBaseUrl: z.string().optional(),\n\tenableUrlContext: z.boolean().optional(),\n\tenableGrounding: z.boolean().optional(),\n})\n\nconst geminiCliSchema = apiModelIdProviderModelSchema.extend({\n\tgeminiCliOAuthPath: z.string().optional(),\n\tgeminiCliProjectId: z.string().optional(),\n})\n\nconst openAiNativeSchema = apiModelIdProviderModelSchema.extend({\n\topenAiNativeApiKey: z.string().optional(),\n\topenAiNativeBaseUrl: z.string().optional(),\n\t// OpenAI Responses API service tier for openai-native provider only.\n\t// UI should only expose this when the selected model supports flex/priority.\n\topenAiNativeServiceTier: serviceTierSchema.optional(),\n})\n\nconst mistralSchema = apiModelIdProviderModelSchema.extend({\n\tmistralApiKey: z.string().optional(),\n\tmistralCodestralUrl: z.string().optional(),\n})\n\nconst deepSeekSchema = apiModelIdProviderModelSchema.extend({\n\tdeepSeekBaseUrl: z.string().optional(),\n\tdeepSeekApiKey: z.string().optional(),\n})\n\nconst deepInfraSchema = apiModelIdProviderModelSchema.extend({\n\tdeepInfraBaseUrl: z.string().optional(),\n\tdeepInfraApiKey: z.string().optional(),\n\tdeepInfraModelId: z.string().optional(),\n})\n\nconst doubaoSchema = apiModelIdProviderModelSchema.extend({\n\tdoubaoBaseUrl: z.string().optional(),\n\tdoubaoApiKey: z.string().optional(),\n})\n\nconst moonshotSchema = apiModelIdProviderModelSchema.extend({\n\tmoonshotBaseUrl: z\n\t\t.union([z.literal(\"https://api.moonshot.ai/v1\"), z.literal(\"https://api.moonshot.cn/v1\")])\n\t\t.optional(),\n\tmoonshotApiKey: z.string().optional(),\n})\n\nconst minimaxSchema = apiModelIdProviderModelSchema.extend({\n\tminimaxBaseUrl: z\n\t\t.union([z.literal(\"https://api.minimax.io/v1\"), z.literal(\"https://api.minimaxi.com/v1\")])\n\t\t.optional(),\n\tminimaxApiKey: z.string().optional(),\n})\n\nconst unboundSchema = baseProviderSettingsSchema.extend({\n\tunboundApiKey: z.string().optional(),\n\tunboundModelId: z.string().optional(),\n})\n\nconst requestySchema = baseProviderSettingsSchema.extend({\n\trequestyBaseUrl: z.string().optional(),\n\trequestyApiKey: z.string().optional(),\n\trequestyModelId: z.string().optional(),\n})\n\nconst humanRelaySchema = baseProviderSettingsSchema\n\nconst fakeAiSchema = baseProviderSettingsSchema.extend({\n\tfakeAi: z.unknown().optional(),\n})\n\nconst xaiSchema = apiModelIdProviderModelSchema.extend({\n\txaiApiKey: z.string().optional(),\n})\n\nconst groqSchema = apiModelIdProviderModelSchema.extend({\n\tgroqApiKey: z.string().optional(),\n})\n\nconst huggingFaceSchema = baseProviderSettingsSchema.extend({\n\thuggingFaceApiKey: z.string().optional(),\n\thuggingFaceModelId: z.string().optional(),\n\thuggingFaceInferenceProvider: z.string().optional(),\n})\n\nconst chutesSchema = apiModelIdProviderModelSchema.extend({\n\tchutesApiKey: z.string().optional(),\n})\n\nconst litellmSchema = baseProviderSettingsSchema.extend({\n\tlitellmBaseUrl: z.string().optional(),\n\tlitellmApiKey: z.string().optional(),\n\tlitellmModelId: z.string().optional(),\n\tlitellmUsePromptCache: z.boolean().optional(),\n})\n\nconst cerebrasSchema = apiModelIdProviderModelSchema.extend({\n\tcerebrasApiKey: z.string().optional(),\n})\n\nconst sambaNovaSchema = apiModelIdProviderModelSchema.extend({\n\tsambaNovaApiKey: z.string().optional(),\n})\n\nexport const zaiApiLineSchema = z.enum([\"international_coding\", \"china_coding\", \"international_api\", \"china_api\"])\n\nexport type ZaiApiLine = z.infer<typeof zaiApiLineSchema>\n\nconst zaiSchema = apiModelIdProviderModelSchema.extend({\n\tzaiApiKey: z.string().optional(),\n\tzaiApiLine: zaiApiLineSchema.optional(),\n})\n\nconst fireworksSchema = apiModelIdProviderModelSchema.extend({\n\tfireworksApiKey: z.string().optional(),\n})\n\nconst featherlessSchema = apiModelIdProviderModelSchema.extend({\n\tfeatherlessApiKey: z.string().optional(),\n})\n\nconst ioIntelligenceSchema = apiModelIdProviderModelSchema.extend({\n\tioIntelligenceModelId: z.string().optional(),\n\tioIntelligenceApiKey: z.string().optional(),\n})\n\nconst qwenCodeSchema = apiModelIdProviderModelSchema.extend({\n\tqwenCodeOauthPath: z.string().optional(),\n})\n\nconst rooSchema = apiModelIdProviderModelSchema.extend({\n\t// No additional fields needed - uses cloud authentication.\n})\n\nconst vercelAiGatewaySchema = baseProviderSettingsSchema.extend({\n\tvercelAiGatewayApiKey: z.string().optional(),\n\tvercelAiGatewayModelId: z.string().optional(),\n})\n\nconst basetenSchema = apiModelIdProviderModelSchema.extend({\n\tbasetenApiKey: z.string().optional(),\n})\n\nconst defaultSchema = z.object({\n\tapiProvider: z.undefined(),\n})\n\nexport const providerSettingsSchemaDiscriminated = z.discriminatedUnion(\"apiProvider\", [\n\tanthropicSchema.merge(z.object({ apiProvider: z.literal(\"anthropic\") })),\n\tclaudeCodeSchema.merge(z.object({ apiProvider: z.literal(\"claude-code\") })),\n\topenRouterSchema.merge(z.object({ apiProvider: z.literal(\"openrouter\") })),\n\tbedrockSchema.merge(z.object({ apiProvider: z.literal(\"bedrock\") })),\n\tvertexSchema.merge(z.object({ apiProvider: z.literal(\"vertex\") })),\n\topenAiSchema.merge(z.object({ apiProvider: z.literal(\"openai\") })),\n\tollamaSchema.merge(z.object({ apiProvider: z.literal(\"ollama\") })),\n\tvsCodeLmSchema.merge(z.object({ apiProvider: z.literal(\"vscode-lm\") })),\n\tlmStudioSchema.merge(z.object({ apiProvider: z.literal(\"lmstudio\") })),\n\tgeminiSchema.merge(z.object({ apiProvider: z.literal(\"gemini\") })),\n\tgeminiCliSchema.merge(z.object({ apiProvider: z.literal(\"gemini-cli\") })),\n\topenAiNativeSchema.merge(z.object({ apiProvider: z.literal(\"openai-native\") })),\n\tmistralSchema.merge(z.object({ apiProvider: z.literal(\"mistral\") })),\n\tdeepSeekSchema.merge(z.object({ apiProvider: z.literal(\"deepseek\") })),\n\tdeepInfraSchema.merge(z.object({ apiProvider: z.literal(\"deepinfra\") })),\n\tdoubaoSchema.merge(z.object({ apiProvider: z.literal(\"doubao\") })),\n\tmoonshotSchema.merge(z.object({ apiProvider: z.literal(\"moonshot\") })),\n\tminimaxSchema.merge(z.object({ apiProvider: z.literal(\"minimax\") })),\n\tunboundSchema.merge(z.object({ apiProvider: z.literal(\"unbound\") })),\n\trequestySchema.merge(z.object({ apiProvider: z.literal(\"requesty\") })),\n\thumanRelaySchema.merge(z.object({ apiProvider: z.literal(\"human-relay\") })),\n\tfakeAiSchema.merge(z.object({ apiProvider: z.literal(\"fake-ai\") })),\n\txaiSchema.merge(z.object({ apiProvider: z.literal(\"xai\") })),\n\tgroqSchema.merge(z.object({ apiProvider: z.literal(\"groq\") })),\n\tbasetenSchema.merge(z.object({ apiProvider: z.literal(\"baseten\") })),\n\thuggingFaceSchema.merge(z.object({ apiProvider: z.literal(\"huggingface\") })),\n\tchutesSchema.merge(z.object({ apiProvider: z.literal(\"chutes\") })),\n\tlitellmSchema.merge(z.object({ apiProvider: z.literal(\"litellm\") })),\n\tcerebrasSchema.merge(z.object({ apiProvider: z.literal(\"cerebras\") })),\n\tsambaNovaSchema.merge(z.object({ apiProvider: z.literal(\"sambanova\") })),\n\tzaiSchema.merge(z.object({ apiProvider: z.literal(\"zai\") })),\n\tfireworksSchema.merge(z.object({ apiProvider: z.literal(\"fireworks\") })),\n\tfeatherlessSchema.merge(z.object({ apiProvider: z.literal(\"featherless\") })),\n\tioIntelligenceSchema.merge(z.object({ apiProvider: z.literal(\"io-intelligence\") })),\n\tqwenCodeSchema.merge(z.object({ apiProvider: z.literal(\"qwen-code\") })),\n\trooSchema.merge(z.object({ apiProvider: z.literal(\"roo\") })),\n\tvercelAiGatewaySchema.merge(z.object({ apiProvider: z.literal(\"vercel-ai-gateway\") })),\n\tdefaultSchema,\n])\n\nexport const providerSettingsSchema = z.object({\n\tapiProvider: providerNamesSchema.optional(),\n\t...anthropicSchema.shape,\n\t...claudeCodeSchema.shape,\n\t...openRouterSchema.shape,\n\t...bedrockSchema.shape,\n\t...vertexSchema.shape,\n\t...openAiSchema.shape,\n\t...ollamaSchema.shape,\n\t...vsCodeLmSchema.shape,\n\t...lmStudioSchema.shape,\n\t...geminiSchema.shape,\n\t...geminiCliSchema.shape,\n\t...openAiNativeSchema.shape,\n\t...mistralSchema.shape,\n\t...deepSeekSchema.shape,\n\t...deepInfraSchema.shape,\n\t...doubaoSchema.shape,\n\t...moonshotSchema.shape,\n\t...minimaxSchema.shape,\n\t...unboundSchema.shape,\n\t...requestySchema.shape,\n\t...humanRelaySchema.shape,\n\t...fakeAiSchema.shape,\n\t...xaiSchema.shape,\n\t...groqSchema.shape,\n\t...basetenSchema.shape,\n\t...huggingFaceSchema.shape,\n\t...chutesSchema.shape,\n\t...litellmSchema.shape,\n\t...cerebrasSchema.shape,\n\t...sambaNovaSchema.shape,\n\t...zaiSchema.shape,\n\t...fireworksSchema.shape,\n\t...featherlessSchema.shape,\n\t...ioIntelligenceSchema.shape,\n\t...qwenCodeSchema.shape,\n\t...rooSchema.shape,\n\t...vercelAiGatewaySchema.shape,\n\t...codebaseIndexProviderSchema.shape,\n})\n\nexport type ProviderSettings = z.infer<typeof providerSettingsSchema>\n\nexport const providerSettingsWithIdSchema = providerSettingsSchema.extend({ id: z.string().optional() })\n\nexport const discriminatedProviderSettingsWithIdSchema = providerSettingsSchemaDiscriminated.and(\n\tz.object({ id: z.string().optional() }),\n)\n\nexport type ProviderSettingsWithId = z.infer<typeof providerSettingsWithIdSchema>\n\nexport const PROVIDER_SETTINGS_KEYS = providerSettingsSchema.keyof().options\n\n/**\n * ModelIdKey\n */\n\nexport const modelIdKeys = [\n\t\"apiModelId\",\n\t\"openRouterModelId\",\n\t\"openAiModelId\",\n\t\"ollamaModelId\",\n\t\"lmStudioModelId\",\n\t\"lmStudioDraftModelId\",\n\t\"unboundModelId\",\n\t\"requestyModelId\",\n\t\"litellmModelId\",\n\t\"huggingFaceModelId\",\n\t\"ioIntelligenceModelId\",\n\t\"vercelAiGatewayModelId\",\n\t\"deepInfraModelId\",\n] as const satisfies readonly (keyof ProviderSettings)[]\n\nexport type ModelIdKey = (typeof modelIdKeys)[number]\n\nexport const getModelId = (settings: ProviderSettings): string | undefined => {\n\tconst modelIdKey = modelIdKeys.find((key) => settings[key])\n\treturn modelIdKey ? settings[modelIdKey] : undefined\n}\n\n/**\n * TypicalProvider\n */\n\nexport type TypicalProvider = Exclude<ProviderName, InternalProvider | CustomProvider | FauxProvider>\n\nexport const isTypicalProvider = (key: unknown): key is TypicalProvider =>\n\tisProviderName(key) && !isInternalProvider(key) && !isCustomProvider(key) && !isFauxProvider(key)\n\nexport const modelIdKeysByProvider: Record<TypicalProvider, ModelIdKey> = {\n\tanthropic: \"apiModelId\",\n\t\"claude-code\": \"apiModelId\",\n\topenrouter: \"openRouterModelId\",\n\tbedrock: \"apiModelId\",\n\tvertex: \"apiModelId\",\n\t\"openai-native\": \"openAiModelId\",\n\tollama: \"ollamaModelId\",\n\tlmstudio: \"lmStudioModelId\",\n\tgemini: \"apiModelId\",\n\t\"gemini-cli\": \"apiModelId\",\n\tmistral: \"apiModelId\",\n\tmoonshot: \"apiModelId\",\n\tminimax: \"apiModelId\",\n\tdeepseek: \"apiModelId\",\n\tdeepinfra: \"deepInfraModelId\",\n\tdoubao: \"apiModelId\",\n\t\"qwen-code\": \"apiModelId\",\n\tunbound: \"unboundModelId\",\n\trequesty: \"requestyModelId\",\n\txai: \"apiModelId\",\n\tgroq: \"apiModelId\",\n\tbaseten: \"apiModelId\",\n\tchutes: \"apiModelId\",\n\tlitellm: \"litellmModelId\",\n\thuggingface: \"huggingFaceModelId\",\n\tcerebras: \"apiModelId\",\n\tsambanova: \"apiModelId\",\n\tzai: \"apiModelId\",\n\tfireworks: \"apiModelId\",\n\tfeatherless: \"apiModelId\",\n\t\"io-intelligence\": \"ioIntelligenceModelId\",\n\troo: \"apiModelId\",\n\t\"vercel-ai-gateway\": \"vercelAiGatewayModelId\",\n}\n\n/**\n * ANTHROPIC_STYLE_PROVIDERS\n */\n\n// Providers that use Anthropic-style API protocol.\nexport const ANTHROPIC_STYLE_PROVIDERS: ProviderName[] = [\"anthropic\", \"claude-code\", \"bedrock\", \"minimax\"]\n\nexport const getApiProtocol = (provider: ProviderName | undefined, modelId?: string): \"anthropic\" | \"openai\" => {\n\tif (provider && ANTHROPIC_STYLE_PROVIDERS.includes(provider)) {\n\t\treturn \"anthropic\"\n\t}\n\n\tif (provider && provider === \"vertex\" && modelId && modelId.toLowerCase().includes(\"claude\")) {\n\t\treturn \"anthropic\"\n\t}\n\n\t// Vercel AI Gateway uses anthropic protocol for anthropic models.\n\tif (\n\t\tprovider &&\n\t\t[\"vercel-ai-gateway\", \"roo\"].includes(provider) &&\n\t\tmodelId &&\n\t\tmodelId.toLowerCase().startsWith(\"anthropic/\")\n\t) {\n\t\treturn \"anthropic\"\n\t}\n\n\treturn \"openai\"\n}\n\n/**\n * MODELS_BY_PROVIDER\n */\n\nexport const MODELS_BY_PROVIDER: Record<\n\tExclude<ProviderName, \"fake-ai\" | \"human-relay\" | \"gemini-cli\" | \"openai\">,\n\t{ id: ProviderName; label: string; models: string[] }\n> = {\n\tanthropic: {\n\t\tid: \"anthropic\",\n\t\tlabel: \"Anthropic\",\n\t\tmodels: Object.keys(anthropicModels),\n\t},\n\tbedrock: {\n\t\tid: \"bedrock\",\n\t\tlabel: \"Amazon Bedrock\",\n\t\tmodels: Object.keys(bedrockModels),\n\t},\n\tcerebras: {\n\t\tid: \"cerebras\",\n\t\tlabel: \"Cerebras\",\n\t\tmodels: Object.keys(cerebrasModels),\n\t},\n\t\"claude-code\": { id: \"claude-code\", label: \"Claude Code\", models: Object.keys(claudeCodeModels) },\n\tdeepseek: {\n\t\tid: \"deepseek\",\n\t\tlabel: \"DeepSeek\",\n\t\tmodels: Object.keys(deepSeekModels),\n\t},\n\tdoubao: { id: \"doubao\", label: \"Doubao\", models: Object.keys(doubaoModels) },\n\tfeatherless: {\n\t\tid: \"featherless\",\n\t\tlabel: \"Featherless\",\n\t\tmodels: Object.keys(featherlessModels),\n\t},\n\tfireworks: {\n\t\tid: \"fireworks\",\n\t\tlabel: \"Fireworks\",\n\t\tmodels: Object.keys(fireworksModels),\n\t},\n\tgemini: {\n\t\tid: \"gemini\",\n\t\tlabel: \"Google Gemini\",\n\t\tmodels: Object.keys(geminiModels),\n\t},\n\tgroq: { id: \"groq\", label: \"Groq\", models: Object.keys(groqModels) },\n\t\"io-intelligence\": {\n\t\tid: \"io-intelligence\",\n\t\tlabel: \"IO Intelligence\",\n\t\tmodels: Object.keys(ioIntelligenceModels),\n\t},\n\tmistral: {\n\t\tid: \"mistral\",\n\t\tlabel: \"Mistral\",\n\t\tmodels: Object.keys(mistralModels),\n\t},\n\tmoonshot: {\n\t\tid: \"moonshot\",\n\t\tlabel: \"Moonshot\",\n\t\tmodels: Object.keys(moonshotModels),\n\t},\n\tminimax: {\n\t\tid: \"minimax\",\n\t\tlabel: \"MiniMax\",\n\t\tmodels: Object.keys(minimaxModels),\n\t},\n\t\"openai-native\": {\n\t\tid: \"openai-native\",\n\t\tlabel: \"OpenAI\",\n\t\tmodels: Object.keys(openAiNativeModels),\n\t},\n\t\"qwen-code\": { id: \"qwen-code\", label: \"Qwen Code\", models: Object.keys(qwenCodeModels) },\n\troo: { id: \"roo\", label: \"Roo Code Cloud\", models: [] },\n\tsambanova: {\n\t\tid: \"sambanova\",\n\t\tlabel: \"SambaNova\",\n\t\tmodels: Object.keys(sambaNovaModels),\n\t},\n\tvertex: {\n\t\tid: \"vertex\",\n\t\tlabel: \"GCP Vertex AI\",\n\t\tmodels: Object.keys(vertexModels),\n\t},\n\t\"vscode-lm\": {\n\t\tid: \"vscode-lm\",\n\t\tlabel: \"VS Code LM API\",\n\t\tmodels: Object.keys(vscodeLlmModels),\n\t},\n\txai: { id: \"xai\", label: \"xAI (Grok)\", models: Object.keys(xaiModels) },\n\tzai: { id: \"zai\", label: \"Z.ai\", models: Object.keys(internationalZAiModels) },\n\tbaseten: { id: \"baseten\", label: \"Baseten\", models: Object.keys(basetenModels) },\n\n\t// Dynamic providers; models pulled from remote APIs.\n\thuggingface: { id: \"huggingface\", label: \"Hugging Face\", models: [] },\n\tlitellm: { id: \"litellm\", label: \"LiteLLM\", models: [] },\n\topenrouter: { id: \"openrouter\", label: \"OpenRouter\", models: [] },\n\trequesty: { id: \"requesty\", label: \"Requesty\", models: [] },\n\tunbound: { id: \"unbound\", label: \"Unbound\", models: [] },\n\tdeepinfra: { id: \"deepinfra\", label: \"DeepInfra\", models: [] },\n\t\"vercel-ai-gateway\": { id: \"vercel-ai-gateway\", label: \"Vercel AI Gateway\", models: [] },\n\tchutes: { id: \"chutes\", label: \"Chutes AI\", models: [] },\n\n\t// Local providers; models discovered from localhost endpoints.\n\tlmstudio: { id: \"lmstudio\", label: \"LM Studio\", models: [] },\n\tollama: { id: \"ollama\", label: \"Ollama\", models: [] },\n}\n","import { z } from \"zod\"\n\n/**\n * ReasoningEffort\n */\n\nexport const reasoningEfforts = [\"low\", \"medium\", \"high\"] as const\n\nexport const reasoningEffortsSchema = z.enum(reasoningEfforts)\n\nexport type ReasoningEffort = z.infer<typeof reasoningEffortsSchema>\n\n/**\n * ReasoningEffortWithMinimal\n */\n\nexport const reasoningEffortWithMinimalSchema = z.union([reasoningEffortsSchema, z.literal(\"minimal\")])\n\nexport type ReasoningEffortWithMinimal = z.infer<typeof reasoningEffortWithMinimalSchema>\n\n/**\n * Extended Reasoning Effort (includes \"none\" and \"minimal\")\n * Note: \"disable\" is a UI/control value, not a value sent as effort\n */\nexport const reasoningEffortsExtended = [\"none\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\"] as const\n\nexport const reasoningEffortExtendedSchema = z.enum(reasoningEffortsExtended)\n\nexport type ReasoningEffortExtended = z.infer<typeof reasoningEffortExtendedSchema>\n\n/**\n * Reasoning Effort user setting (includes \"disable\")\n */\nexport const reasoningEffortSettingValues = [\"disable\", \"none\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\"] as const\nexport const reasoningEffortSettingSchema = z.enum(reasoningEffortSettingValues)\n\n/**\n * Verbosity\n */\n\nexport const verbosityLevels = [\"low\", \"medium\", \"high\"] as const\n\nexport const verbosityLevelsSchema = z.enum(verbosityLevels)\n\nexport type VerbosityLevel = z.infer<typeof verbosityLevelsSchema>\n\n/**\n * Service tiers (OpenAI Responses API)\n */\nexport const serviceTiers = [\"default\", \"flex\", \"priority\"] as const\nexport const serviceTierSchema = z.enum(serviceTiers)\nexport type ServiceTier = z.infer<typeof serviceTierSchema>\n\n/**\n * ModelParameter\n */\n\nexport const modelParameters = [\"max_tokens\", \"temperature\", \"reasoning\", \"include_reasoning\"] as const\n\nexport const modelParametersSchema = z.enum(modelParameters)\n\nexport type ModelParameter = z.infer<typeof modelParametersSchema>\n\nexport const isModelParameter = (value: string): value is ModelParameter =>\n\tmodelParameters.includes(value as ModelParameter)\n\n/**\n * ModelInfo\n */\n\nexport const modelInfoSchema = z.object({\n\tmaxTokens: z.number().nullish(),\n\tmaxThinkingTokens: z.number().nullish(),\n\tcontextWindow: z.number(),\n\tsupportsImages: z.boolean().optional(),\n\tsupportsPromptCache: z.boolean(),\n\t// Optional default prompt cache retention policy for providers that support it.\n\t// When set to \"24h\", extended prompt caching will be requested; when omitted\n\t// or set to \"in_memory\", the default in‑memory cache is used.\n\tpromptCacheRetention: z.enum([\"in_memory\", \"24h\"]).optional(),\n\t// Capability flag to indicate whether the model supports an output verbosity parameter\n\tsupportsVerbosity: z.boolean().optional(),\n\tsupportsReasoningBudget: z.boolean().optional(),\n\t// Capability flag to indicate whether the model supports simple on/off binary reasoning\n\tsupportsReasoningBinary: z.boolean().optional(),\n\t// Capability flag to indicate whether the model supports temperature parameter\n\tsupportsTemperature: z.boolean().optional(),\n\tdefaultTemperature: z.number().optional(),\n\trequiredReasoningBudget: z.boolean().optional(),\n\tsupportsReasoningEffort: z\n\t\t.union([z.boolean(), z.array(z.enum([\"disable\", \"none\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\"]))])\n\t\t.optional(),\n\trequiredReasoningEffort: z.boolean().optional(),\n\tpreserveReasoning: z.boolean().optional(),\n\tsupportedParameters: z.array(modelParametersSchema).optional(),\n\tinputPrice: z.number().optional(),\n\toutputPrice: z.number().optional(),\n\tcacheWritesPrice: z.number().optional(),\n\tcacheReadsPrice: z.number().optional(),\n\tdescription: z.string().optional(),\n\t// Default effort value for models that support reasoning effort\n\treasoningEffort: reasoningEffortExtendedSchema.optional(),\n\tminTokensPerCachePoint: z.number().optional(),\n\tmaxCachePoints: z.number().optional(),\n\tcachableFields: z.array(z.string()).optional(),\n\t// Flag to indicate if the model is deprecated and should not be used\n\tdeprecated: z.boolean().optional(),\n\t// Flag to indicate if the model should hide vendor/company identity in responses\n\tisStealthModel: z.boolean().optional(),\n\t// Flag to indicate if the model is free (no cost)\n\tisFree: z.boolean().optional(),\n\t// Flag to indicate if the model supports native tool calling (OpenAI-style function calling)\n\tsupportsNativeTools: z.boolean().optional(),\n\t// Default tool protocol preferred by this model (if not specified, falls back to capability/provider defaults)\n\tdefaultToolProtocol: z.enum([\"xml\", \"native\"]).optional(),\n\t// Exclude specific native tools from being available (only applies to native protocol)\n\t// These tools will be removed from the set of tools available to the model\n\texcludedTools: z.array(z.string()).optional(),\n\t// Include specific native tools (only applies to native protocol)\n\t// These tools will be added if they belong to an allowed group in the current mode\n\t// Cannot force-add tools from groups the mode doesn't allow\n\tincludedTools: z.array(z.string()).optional(),\n\t/**\n\t * Service tiers with pricing information.\n\t * Each tier can have a name (for OpenAI service tiers) and pricing overrides.\n\t * The top-level input/output/cache* fields represent the default/standard tier.\n\t */\n\ttiers: z\n\t\t.array(\n\t\t\tz.object({\n\t\t\t\tname: serviceTierSchema.optional(), // Service tier name (flex, priority, etc.)\n\t\t\t\tcontextWindow: z.number(),\n\t\t\t\tinputPrice: z.number().optional(),\n\t\t\t\toutputPrice: z.number().optional(),\n\t\t\t\tcacheWritesPrice: z.number().optional(),\n\t\t\t\tcacheReadsPrice: z.number().optional(),\n\t\t\t}),\n\t\t)\n\t\t.optional(),\n})\n\nexport type ModelInfo = z.infer<typeof modelInfoSchema>\n","import { z } from \"zod\"\n\n/**\n * Codebase Index Constants\n */\nexport const CODEBASE_INDEX_DEFAULTS = {\n\tMIN_SEARCH_RESULTS: 10,\n\tMAX_SEARCH_RESULTS: 200,\n\tDEFAULT_SEARCH_RESULTS: 50,\n\tSEARCH_RESULTS_STEP: 10,\n\tMIN_SEARCH_SCORE: 0,\n\tMAX_SEARCH_SCORE: 1,\n\tDEFAULT_SEARCH_MIN_SCORE: 0.4,\n\tSEARCH_SCORE_STEP: 0.05,\n} as const\n\n/**\n * CodebaseIndexConfig\n */\n\nexport const codebaseIndexConfigSchema = z.object({\n\tcodebaseIndexEnabled: z.boolean().optional(),\n\tcodebaseIndexQdrantUrl: z.string().optional(),\n\tcodebaseIndexEmbedderProvider: z\n\t\t.enum([\n\t\t\t\"openai\",\n\t\t\t\"ollama\",\n\t\t\t\"openai-compatible\",\n\t\t\t\"gemini\",\n\t\t\t\"mistral\",\n\t\t\t\"vercel-ai-gateway\",\n\t\t\t\"bedrock\",\n\t\t\t\"openrouter\",\n\t\t])\n\t\t.optional(),\n\tcodebaseIndexEmbedderBaseUrl: z.string().optional(),\n\tcodebaseIndexEmbedderModelId: z.string().optional(),\n\tcodebaseIndexEmbedderModelDimension: z.number().optional(),\n\tcodebaseIndexSearchMinScore: z.number().min(0).max(1).optional(),\n\tcodebaseIndexSearchMaxResults: z\n\t\t.number()\n\t\t.min(CODEBASE_INDEX_DEFAULTS.MIN_SEARCH_RESULTS)\n\t\t.max(CODEBASE_INDEX_DEFAULTS.MAX_SEARCH_RESULTS)\n\t\t.optional(),\n\t// OpenAI Compatible specific fields\n\tcodebaseIndexOpenAiCompatibleBaseUrl: z.string().optional(),\n\tcodebaseIndexOpenAiCompatibleModelDimension: z.number().optional(),\n\t// Bedrock specific fields\n\tcodebaseIndexBedrockRegion: z.string().optional(),\n\tcodebaseIndexBedrockProfile: z.string().optional(),\n\t// OpenRouter specific fields\n\tcodebaseIndexOpenRouterSpecificProvider: z.string().optional(),\n})\n\nexport type CodebaseIndexConfig = z.infer<typeof codebaseIndexConfigSchema>\n\n/**\n * CodebaseIndexModels\n */\n\nexport const codebaseIndexModelsSchema = z.object({\n\topenai: z.record(z.string(), z.object({ dimension: z.number() })).optional(),\n\tollama: z.record(z.string(), z.object({ dimension: z.number() })).optional(),\n\t\"openai-compatible\": z.record(z.string(), z.object({ dimension: z.number() })).optional(),\n\tgemini: z.record(z.string(), z.object({ dimension: z.number() })).optional(),\n\tmistral: z.record(z.string(), z.object({ dimension: z.number() })).optional(),\n\t\"vercel-ai-gateway\": z.record(z.string(), z.object({ dimension: z.number() })).optional(),\n\topenrouter: z.record(z.string(), z.object({ dimension: z.number() })).optional(),\n\tbedrock: z.record(z.string(), z.object({ dimension: z.number() })).optional(),\n})\n\nexport type CodebaseIndexModels = z.infer<typeof codebaseIndexModelsSchema>\n\n/**\n * CdebaseIndexProvider\n */\n\nexport const codebaseIndexProviderSchema = z.object({\n\tcodeIndexOpenAiKey: z.string().optional(),\n\tcodeIndexQdrantApiKey: z.string().optional(),\n\tcodebaseIndexOpenAiCompatibleBaseUrl: z.string().optional(),\n\tcodebaseIndexOpenAiCompatibleApiKey: z.string().optional(),\n\tcodebaseIndexOpenAiCompatibleModelDimension: z.number().optional(),\n\tcodebaseIndexGeminiApiKey: z.string().optional(),\n\tcodebaseIndexMistralApiKey: z.string().optional(),\n\tcodebaseIndexVercelAiGatewayApiKey: z.string().optional(),\n\tcodebaseIndexOpenRouterApiKey: z.string().optional(),\n})\n\nexport type CodebaseIndexProvider = z.infer<typeof codebaseIndexProviderSchema>\n","import type { ModelInfo } from \"../model.js\"\n\n// https://docs.anthropic.com/en/docs/about-claude/models\n\nexport type AnthropicModelId = keyof typeof anthropicModels\nexport const anthropicDefaultModelId: AnthropicModelId = \"claude-sonnet-4-5\"\n\nexport const anthropicModels = {\n\t\"claude-sonnet-4-5\": {\n\t\tmaxTokens: 64_000, // Overridden to 8k if `enableReasoningEffort` is false.\n\t\tcontextWindow: 200_000, // Default 200K, extendable to 1M with beta flag 'context-1m-2025-08-07'\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0, // $3 per million input tokens (≤200K context)\n\t\toutputPrice: 15.0, // $15 per million output tokens (≤200K context)\n\t\tcacheWritesPrice: 3.75, // $3.75 per million tokens\n\t\tcacheReadsPrice: 0.3, // $0.30 per million tokens\n\t\tsupportsReasoningBudget: true,\n\t\t// Tiered pricing for extended context (requires beta flag 'context-1m-2025-08-07')\n\t\ttiers: [\n\t\t\t{\n\t\t\t\tcontextWindow: 1_000_000, // 1M tokens with beta flag\n\t\t\t\tinputPrice: 6.0, // $6 per million input tokens (>200K context)\n\t\t\t\toutputPrice: 22.5, // $22.50 per million output tokens (>200K context)\n\t\t\t\tcacheWritesPrice: 7.5, // $7.50 per million tokens (>200K context)\n\t\t\t\tcacheReadsPrice: 0.6, // $0.60 per million tokens (>200K context)\n\t\t\t},\n\t\t],\n\t},\n\t\"claude-sonnet-4-20250514\": {\n\t\tmaxTokens: 64_000, // Overridden to 8k if `enableReasoningEffort` is false.\n\t\tcontextWindow: 200_000, // Default 200K, extendable to 1M with beta flag 'context-1m-2025-08-07'\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0, // $3 per million input tokens (≤200K context)\n\t\toutputPrice: 15.0, // $15 per million output tokens (≤200K context)\n\t\tcacheWritesPrice: 3.75, // $3.75 per million tokens\n\t\tcacheReadsPrice: 0.3, // $0.30 per million tokens\n\t\tsupportsReasoningBudget: true,\n\t\t// Tiered pricing for extended context (requires beta flag 'context-1m-2025-08-07')\n\t\ttiers: [\n\t\t\t{\n\t\t\t\tcontextWindow: 1_000_000, // 1M tokens with beta flag\n\t\t\t\tinputPrice: 6.0, // $6 per million input tokens (>200K context)\n\t\t\t\toutputPrice: 22.5, // $22.50 per million output tokens (>200K context)\n\t\t\t\tcacheWritesPrice: 7.5, // $7.50 per million tokens (>200K context)\n\t\t\t\tcacheReadsPrice: 0.6, // $0.60 per million tokens (>200K context)\n\t\t\t},\n\t\t],\n\t},\n\t\"claude-opus-4-5-20251101\": {\n\t\tmaxTokens: 32_000, // Overridden to 8k if `enableReasoningEffort` is false.\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 5.0, // $5 per million input tokens\n\t\toutputPrice: 25.0, // $25 per million output tokens\n\t\tcacheWritesPrice: 6.25, // $6.25 per million tokens\n\t\tcacheReadsPrice: 0.5, // $0.50 per million tokens\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"claude-opus-4-1-20250805\": {\n\t\tmaxTokens: 32_000, // Overridden to 8k if `enableReasoningEffort` is false.\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 15.0, // $15 per million input tokens\n\t\toutputPrice: 75.0, // $75 per million output tokens\n\t\tcacheWritesPrice: 18.75, // $18.75 per million tokens\n\t\tcacheReadsPrice: 1.5, // $1.50 per million tokens\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"claude-opus-4-20250514\": {\n\t\tmaxTokens: 32_000, // Overridden to 8k if `enableReasoningEffort` is false.\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 15.0, // $15 per million input tokens\n\t\toutputPrice: 75.0, // $75 per million output tokens\n\t\tcacheWritesPrice: 18.75, // $18.75 per million tokens\n\t\tcacheReadsPrice: 1.5, // $1.50 per million tokens\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"claude-3-7-sonnet-20250219:thinking\": {\n\t\tmaxTokens: 128_000, // Unlocked by passing `beta` flag to the model. Otherwise, it's 64k.\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0, // $3 per million input tokens\n\t\toutputPrice: 15.0, // $15 per million output tokens\n\t\tcacheWritesPrice: 3.75, // $3.75 per million tokens\n\t\tcacheReadsPrice: 0.3, // $0.30 per million tokens\n\t\tsupportsReasoningBudget: true,\n\t\trequiredReasoningBudget: true,\n\t},\n\t\"claude-3-7-sonnet-20250219\": {\n\t\tmaxTokens: 8192, // Since we already have a `:thinking` virtual model we aren't setting `supportsReasoningBudget: true` here.\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0, // $3 per million input tokens\n\t\toutputPrice: 15.0, // $15 per million output tokens\n\t\tcacheWritesPrice: 3.75, // $3.75 per million tokens\n\t\tcacheReadsPrice: 0.3, // $0.30 per million tokens\n\t},\n\t\"claude-3-5-sonnet-20241022\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0, // $3 per million input tokens\n\t\toutputPrice: 15.0, // $15 per million output tokens\n\t\tcacheWritesPrice: 3.75, // $3.75 per million tokens\n\t\tcacheReadsPrice: 0.3, // $0.30 per million tokens\n\t},\n\t\"claude-3-5-haiku-20241022\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 1.0,\n\t\toutputPrice: 5.0,\n\t\tcacheWritesPrice: 1.25,\n\t\tcacheReadsPrice: 0.1,\n\t},\n\t\"claude-3-opus-20240229\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 15.0,\n\t\toutputPrice: 75.0,\n\t\tcacheWritesPrice: 18.75,\n\t\tcacheReadsPrice: 1.5,\n\t},\n\t\"claude-3-haiku-20240307\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.25,\n\t\toutputPrice: 1.25,\n\t\tcacheWritesPrice: 0.3,\n\t\tcacheReadsPrice: 0.03,\n\t},\n\t\"claude-haiku-4-5-20251001\": {\n\t\tmaxTokens: 64_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 1.0,\n\t\toutputPrice: 5.0,\n\t\tcacheWritesPrice: 1.25,\n\t\tcacheReadsPrice: 0.1,\n\t\tsupportsReasoningBudget: true,\n\t\tdescription:\n\t\t\t\"Claude Haiku 4.5 delivers near-frontier intelligence at lightning speeds with extended thinking, vision, and multilingual support.\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const ANTHROPIC_DEFAULT_MAX_TOKENS = 8192\n","import type { ModelInfo } from \"../model.js\"\n\n// Baseten\n// https://baseten.co/products/model-apis/\n\nexport const basetenModels = {\n\t\"moonshotai/Kimi-K2-Thinking\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 262_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 2.5,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"Kimi K2 Thinking - A model with enhanced reasoning capabilities from Kimi K2\",\n\t},\n\t\"zai-org/GLM-4.6\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 2.2,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"Frontier open model with advanced agentic, reasoning and coding capabilities\",\n\t},\n\t\"deepseek-ai/DeepSeek-R1\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 163_840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 2.55,\n\t\toutputPrice: 5.95,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"DeepSeek's first-generation reasoning model\",\n\t},\n\t\"deepseek-ai/DeepSeek-R1-0528\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 163_840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 2.55,\n\t\toutputPrice: 5.95,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"The latest revision of DeepSeek's first-generation reasoning model\",\n\t},\n\t\"deepseek-ai/DeepSeek-V3-0324\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 163_840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.77,\n\t\toutputPrice: 0.77,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"Fast general-purpose LLM with enhanced reasoning capabilities\",\n\t},\n\t\"deepseek-ai/DeepSeek-V3.1\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 163_840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.5,\n\t\toutputPrice: 1.5,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription:\n\t\t\t\"Extremely capable general-purpose LLM with hybrid reasoning capabilities and advanced tool calling\",\n\t},\n\t\"deepseek-ai/DeepSeek-V3.2\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 163_840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 0.45,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription:\n\t\t\t\"DeepSeek's hybrid reasoning model with efficient long context scaling with GPT-5 level performance\",\n\t},\n\t\"Qwen/Qwen3-235B-A22B-Instruct-2507\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 262_144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.22,\n\t\toutputPrice: 0.8,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"Mixture-of-experts LLM with math and reasoning capabilities\",\n\t},\n\t\"Qwen/Qwen3-Coder-480B-A35B-Instruct\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 262_144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.38,\n\t\toutputPrice: 1.53,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"Mixture-of-experts LLM with advanced coding and reasoning capabilities\",\n\t},\n\t\"openai/gpt-oss-120b\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 128_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.5,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"Extremely capable general-purpose LLM with strong, controllable reasoning capabilities\",\n\t},\n\t\"moonshotai/Kimi-K2-Instruct-0905\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 262_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 2.5,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"State of the art language model for agentic and coding tasks. September Update.\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport type BasetenModelId = keyof typeof basetenModels\n\nexport const basetenDefaultModelId = \"zai-org/GLM-4.6\" satisfies BasetenModelId\n","import type { ModelInfo } from \"../model.js\"\n\n// https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference.html\n\nexport type BedrockModelId = keyof typeof bedrockModels\n\nexport const bedrockDefaultModelId: BedrockModelId = \"anthropic.claude-sonnet-4-5-20250929-v1:0\"\n\nexport const bedrockDefaultPromptRouterModelId: BedrockModelId = \"anthropic.claude-3-sonnet-20240229-v1:0\"\n\n// March, 12 2025 - updated prices to match US-West-2 list price shown at\n// https://aws.amazon.com/bedrock/pricing, including older models that are part\n// of the default prompt routers AWS enabled for GA of the promot router\n// feature.\nexport const bedrockModels = {\n\t\"anthropic.claude-sonnet-4-5-20250929-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningBudget: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 3.75,\n\t\tcacheReadsPrice: 0.3,\n\t\tminTokensPerCachePoint: 1024,\n\t\tmaxCachePoints: 4,\n\t\tcachableFields: [\"system\", \"messages\", \"tools\"],\n\t},\n\t\"amazon.nova-pro-v1:0\": {\n\t\tmaxTokens: 5000,\n\t\tcontextWindow: 300_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.8,\n\t\toutputPrice: 3.2,\n\t\tcacheWritesPrice: 0.8, // per million tokens\n\t\tcacheReadsPrice: 0.2, // per million tokens\n\t\tminTokensPerCachePoint: 1,\n\t\tmaxCachePoints: 1,\n\t\tcachableFields: [\"system\"],\n\t},\n\t\"amazon.nova-pro-latency-optimized-v1:0\": {\n\t\tmaxTokens: 5000,\n\t\tcontextWindow: 300_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 1.0,\n\t\toutputPrice: 4.0,\n\t\tcacheWritesPrice: 1.0, // per million tokens\n\t\tcacheReadsPrice: 0.25, // per million tokens\n\t\tdescription: \"Amazon Nova Pro with latency optimized inference\",\n\t},\n\t\"amazon.nova-lite-v1:0\": {\n\t\tmaxTokens: 5000,\n\t\tcontextWindow: 300_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.06,\n\t\toutputPrice: 0.24,\n\t\tcacheWritesPrice: 0.06, // per million tokens\n\t\tcacheReadsPrice: 0.015, // per million tokens\n\t\tminTokensPerCachePoint: 1,\n\t\tmaxCachePoints: 1,\n\t\tcachableFields: [\"system\"],\n\t},\n\t\"amazon.nova-micro-v1:0\": {\n\t\tmaxTokens: 5000,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.035,\n\t\toutputPrice: 0.14,\n\t\tcacheWritesPrice: 0.035, // per million tokens\n\t\tcacheReadsPrice: 0.00875, // per million tokens\n\t\tminTokensPerCachePoint: 1,\n\t\tmaxCachePoints: 1,\n\t\tcachableFields: [\"system\"],\n\t},\n\t\"anthropic.claude-sonnet-4-20250514-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningBudget: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 3.75,\n\t\tcacheReadsPrice: 0.3,\n\t\tminTokensPerCachePoint: 1024,\n\t\tmaxCachePoints: 4,\n\t\tcachableFields: [\"system\", \"messages\", \"tools\"],\n\t},\n\t\"anthropic.claude-opus-4-1-20250805-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningBudget: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 15.0,\n\t\toutputPrice: 75.0,\n\t\tcacheWritesPrice: 18.75,\n\t\tcacheReadsPrice: 1.5,\n\t\tminTokensPerCachePoint: 1024,\n\t\tmaxCachePoints: 4,\n\t\tcachableFields: [\"system\", \"messages\", \"tools\"],\n\t},\n\t\"anthropic.claude-opus-4-5-20251101-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningBudget: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 5.0,\n\t\toutputPrice: 25.0,\n\t\tcacheWritesPrice: 6.25,\n\t\tcacheReadsPrice: 0.5,\n\t\tminTokensPerCachePoint: 1024,\n\t\tmaxCachePoints: 4,\n\t\tcachableFields: [\"system\", \"messages\", \"tools\"],\n\t},\n\t\"anthropic.claude-opus-4-20250514-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningBudget: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 15.0,\n\t\toutputPrice: 75.0,\n\t\tcacheWritesPrice: 18.75,\n\t\tcacheReadsPrice: 1.5,\n\t\tminTokensPerCachePoint: 1024,\n\t\tmaxCachePoints: 4,\n\t\tcachableFields: [\"system\", \"messages\", \"tools\"],\n\t},\n\t\"anthropic.claude-3-7-sonnet-20250219-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningBudget: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 3.75,\n\t\tcacheReadsPrice: 0.3,\n\t\tminTokensPerCachePoint: 1024,\n\t\tmaxCachePoints: 4,\n\t\tcachableFields: [\"system\", \"messages\", \"tools\"],\n\t},\n\t\"anthropic.claude-3-5-sonnet-20241022-v2:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 3.75,\n\t\tcacheReadsPrice: 0.3,\n\t\tminTokensPerCachePoint: 1024,\n\t\tmaxCachePoints: 4,\n\t\tcachableFields: [\"system\", \"messages\", \"tools\"],\n\t},\n\t\"anthropic.claude-3-5-haiku-20241022-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.8,\n\t\toutputPrice: 4.0,\n\t\tcacheWritesPrice: 1.0,\n\t\tcacheReadsPrice: 0.08,\n\t\tminTokensPerCachePoint: 2048,\n\t\tmaxCachePoints: 4,\n\t\tcachableFields: [\"system\", \"messages\", \"tools\"],\n\t},\n\t\"anthropic.claude-haiku-4-5-20251001-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningBudget: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 1.0,\n\t\toutputPrice: 5.0,\n\t\tcacheWritesPrice: 1.25, // 5m cache writes\n\t\tcacheReadsPrice: 0.1, // cache hits / refreshes\n\t\tminTokensPerCachePoint: 2048,\n\t\tmaxCachePoints: 4,\n\t\tcachableFields: [\"system\", \"messages\", \"tools\"],\n\t},\n\t\"anthropic.claude-3-5-sonnet-20240620-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t},\n\t\"anthropic.claude-3-opus-20240229-v1:0\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 15.0,\n\t\toutputPrice: 75.0,\n\t},\n\t\"anthropic.claude-3-sonnet-20240229-v1:0\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t},\n\t\"anthropic.claude-3-haiku-20240307-v1:0\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.25,\n\t\toutputPrice: 1.25,\n\t},\n\t\"anthropic.claude-2-1-v1:0\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 100_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 8.0,\n\t\toutputPrice: 24.0,\n\t\tdescription: \"Claude 2.1\",\n\t},\n\t\"anthropic.claude-2-0-v1:0\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 100_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 8.0,\n\t\toutputPrice: 24.0,\n\t\tdescription: \"Claude 2.0\",\n\t},\n\t\"anthropic.claude-instant-v1:0\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 100_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.8,\n\t\toutputPrice: 2.4,\n\t\tdescription: \"Claude Instant\",\n\t},\n\t\"deepseek.r1-v1:0\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 1.35,\n\t\toutputPrice: 5.4,\n\t},\n\t\"openai.gpt-oss-20b-1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.5,\n\t\toutputPrice: 1.5,\n\t\tdescription: \"GPT-OSS 20B - Optimized for low latency and local/specialized use cases\",\n\t},\n\t\"openai.gpt-oss-120b-1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 2.0,\n\t\toutputPrice: 6.0,\n\t\tdescription: \"GPT-OSS 120B - Production-ready, general-purpose, high-reasoning model\",\n\t},\n\t\"meta.llama3-3-70b-instruct-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.72,\n\t\toutputPrice: 0.72,\n\t\tdescription: \"Llama 3.3 Instruct (70B)\",\n\t},\n\t\"meta.llama3-2-90b-instruct-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.72,\n\t\toutputPrice: 0.72,\n\t\tdescription: \"Llama 3.2 Instruct (90B)\",\n\t},\n\t\"meta.llama3-2-11b-instruct-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.16,\n\t\toutputPrice: 0.16,\n\t\tdescription: \"Llama 3.2 Instruct (11B)\",\n\t},\n\t\"meta.llama3-2-3b-instruct-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 0.15,\n\t\tdescription: \"Llama 3.2 Instruct (3B)\",\n\t},\n\t\"meta.llama3-2-1b-instruct-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.1,\n\t\tdescription: \"Llama 3.2 Instruct (1B)\",\n\t},\n\t\"meta.llama3-1-405b-instruct-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 2.4,\n\t\toutputPrice: 2.4,\n\t\tdescription: \"Llama 3.1 Instruct (405B)\",\n\t},\n\t\"meta.llama3-1-70b-instruct-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.72,\n\t\toutputPrice: 0.72,\n\t\tdescription: \"Llama 3.1 Instruct (70B)\",\n\t},\n\t\"meta.llama3-1-70b-instruct-latency-optimized-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.9,\n\t\toutputPrice: 0.9,\n\t\tdescription: \"Llama 3.1 Instruct (70B) (w/ latency optimized inference)\",\n\t},\n\t\"meta.llama3-1-8b-instruct-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 8_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.22,\n\t\toutputPrice: 0.22,\n\t\tdescription: \"Llama 3.1 Instruct (8B)\",\n\t},\n\t\"meta.llama3-70b-instruct-v1:0\": {\n\t\tmaxTokens: 2048,\n\t\tcontextWindow: 8_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 2.65,\n\t\toutputPrice: 3.5,\n\t},\n\t\"meta.llama3-8b-instruct-v1:0\": {\n\t\tmaxTokens: 2048,\n\t\tcontextWindow: 4_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 0.6,\n\t},\n\t\"amazon.titan-text-lite-v1:0\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 8_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 0.2,\n\t\tdescription: \"Amazon Titan Text Lite\",\n\t},\n\t\"amazon.titan-text-express-v1:0\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 8_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.2,\n\t\toutputPrice: 0.6,\n\t\tdescription: \"Amazon Titan Text Express\",\n\t},\n\t\"amazon.titan-text-embeddings-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 8_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.1,\n\t\tdescription: \"Amazon Titan Text Embeddings\",\n\t},\n\t\"amazon.titan-text-embeddings-v2:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 8_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.02,\n\t\tdescription: \"Amazon Titan Text Embeddings V2\",\n\t},\n\t\"moonshot.kimi-k2-thinking\": {\n\t\tmaxTokens: 32_000,\n\t\tcontextWindow: 262_144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tdefaultToolProtocol: \"native\",\n\t\tpreserveReasoning: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 2.5,\n\t\tdescription: \"Kimi K2 Thinking (1T parameter MoE model with 32B active parameters)\",\n\t},\n\t\"minimax.minimax-m2\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 196_608,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tdefaultToolProtocol: \"native\",\n\t\tpreserveReasoning: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 1.2,\n\t\tdescription: \"MiniMax M2 (230B parameter MoE model with 10B active parameters)\",\n\t},\n\t\"qwen.qwen3-next-80b-a3b\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 262_144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tdefaultToolProtocol: \"native\",\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 1.2,\n\t\tdescription: \"Qwen3 Next 80B (MoE model with 3B active parameters)\",\n\t},\n\t\"qwen.qwen3-coder-480b-a35b-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 262_144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tdefaultToolProtocol: \"native\",\n\t\tinputPrice: 0.45,\n\t\toutputPrice: 1.8,\n\t\tdescription: \"Qwen3 Coder 480B (MoE model with 35B active parameters)\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const BEDROCK_DEFAULT_TEMPERATURE = 0.3\n\nexport const BEDROCK_MAX_TOKENS = 4096\n\nexport const BEDROCK_DEFAULT_CONTEXT = 128_000\n\n// Amazon Bedrock Inference Profile mapping based on official documentation\n// https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-support.html\n// This mapping is pre-ordered by pattern length (descending) to ensure more specific patterns match first\nexport const AWS_INFERENCE_PROFILE_MAPPING: Array<[string, string]> = [\n\t// Australia regions (Sydney and Melbourne) → au. inference profile (most specific - 14 chars)\n\t[\"ap-southeast-2\", \"au.\"],\n\t[\"ap-southeast-4\", \"au.\"],\n\t// Japan regions (Tokyo and Osaka) → jp. inference profile (13 chars)\n\t[\"ap-northeast-\", \"jp.\"],\n\t// US Government Cloud → ug. inference profile (7 chars)\n\t[\"us-gov-\", \"ug.\"],\n\t// Americas regions → us. inference profile (3 chars)\n\t[\"us-\", \"us.\"],\n\t// Europe regions → eu. inference profile (3 chars)\n\t[\"eu-\", \"eu.\"],\n\t// Asia Pacific regions → apac. inference profile (3 chars)\n\t[\"ap-\", \"apac.\"],\n\t// Canada regions → ca. inference profile (3 chars)\n\t[\"ca-\", \"ca.\"],\n\t// South America regions → sa. inference profile (3 chars)\n\t[\"sa-\", \"sa.\"],\n]\n\n// Amazon Bedrock supported regions for the regions dropdown\n// Based on official AWS documentation\nexport const BEDROCK_REGIONS = [\n\t{ value: \"us-east-1\", label: \"us-east-1\" },\n\t{ value: \"us-east-2\", label: \"us-east-2\" },\n\t{ value: \"us-west-1\", label: \"us-west-1\" },\n\t{ value: \"us-west-2\", label: \"us-west-2\" },\n\t{ value: \"ap-northeast-1\", label: \"ap-northeast-1\" },\n\t{ value: \"ap-northeast-2\", label: \"ap-northeast-2\" },\n\t{ value: \"ap-northeast-3\", label: \"ap-northeast-3\" },\n\t{ value: \"ap-south-1\", label: \"ap-south-1\" },\n\t{ value: \"ap-south-2\", label: \"ap-south-2\" },\n\t{ value: \"ap-southeast-1\", label: \"ap-southeast-1\" },\n\t{ value: \"ap-southeast-2\", label: \"ap-southeast-2\" },\n\t{ value: \"ap-east-1\", label: \"ap-east-1\" },\n\t{ value: \"eu-central-1\", label: \"eu-central-1\" },\n\t{ value: \"eu-central-2\", label: \"eu-central-2\" },\n\t{ value: \"eu-west-1\", label: \"eu-west-1\" },\n\t{ value: \"eu-west-2\", label: \"eu-west-2\" },\n\t{ value: \"eu-west-3\", label: \"eu-west-3\" },\n\t{ value: \"eu-north-1\", label: \"eu-north-1\" },\n\t{ value: \"eu-south-1\", label: \"eu-south-1\" },\n\t{ value: \"eu-south-2\", label: \"eu-south-2\" },\n\t{ value: \"ca-central-1\", label: \"ca-central-1\" },\n\t{ value: \"sa-east-1\", label: \"sa-east-1\" },\n\t{ value: \"us-gov-east-1\", label: \"us-gov-east-1\" },\n\t{ value: \"us-gov-west-1\", label: \"us-gov-west-1\" },\n].sort((a, b) => a.value.localeCompare(b.value))\n\nexport const BEDROCK_1M_CONTEXT_MODEL_IDS = [\n\t\"anthropic.claude-sonnet-4-20250514-v1:0\",\n\t\"anthropic.claude-sonnet-4-5-20250929-v1:0\",\n] as const\n\n// Amazon Bedrock models that support Global Inference profiles\n// As of Nov 2025, AWS supports Global Inference for:\n// - Claude Sonnet 4\n// - Claude Sonnet 4.5\n// - Claude Haiku 4.5\n// - Claude Opus 4.5\nexport const BEDROCK_GLOBAL_INFERENCE_MODEL_IDS = [\n\t\"anthropic.claude-sonnet-4-20250514-v1:0\",\n\t\"anthropic.claude-sonnet-4-5-20250929-v1:0\",\n\t\"anthropic.claude-haiku-4-5-20251001-v1:0\",\n\t\"anthropic.claude-opus-4-5-20251101-v1:0\",\n] as const\n","import type { ModelInfo } from \"../model.js\"\n\n// https://inference-docs.cerebras.ai/api-reference/chat-completions\nexport type CerebrasModelId = keyof typeof cerebrasModels\n\nexport const cerebrasDefaultModelId: CerebrasModelId = \"gpt-oss-120b\"\n\nexport const cerebrasModels = {\n\t\"zai-glm-4.6\": {\n\t\tmaxTokens: 8192, // Conservative default to avoid premature rate limiting (Cerebras reserves quota upfront)\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Highly intelligent general purpose model with up to 1,000 tokens/s\",\n\t},\n\t\"qwen-3-235b-a22b-instruct-2507\": {\n\t\tmaxTokens: 8192, // Conservative default to avoid premature rate limiting\n\t\tcontextWindow: 64000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Intelligent model with ~1400 tokens/s\",\n\t},\n\t\"llama-3.3-70b\": {\n\t\tmaxTokens: 8192, // Conservative default to avoid premature rate limiting\n\t\tcontextWindow: 64000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Powerful model with ~2600 tokens/s\",\n\t},\n\t\"qwen-3-32b\": {\n\t\tmaxTokens: 8192, // Conservative default to avoid premature rate limiting\n\t\tcontextWindow: 64000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"SOTA coding performance with ~2500 tokens/s\",\n\t},\n\t\"gpt-oss-120b\": {\n\t\tmaxTokens: 8192, // Conservative default to avoid premature rate limiting\n\t\tcontextWindow: 64000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription:\n\t\t\t\"OpenAI GPT OSS model with ~2800 tokens/s\\n\\n• 64K context window\\n• Excels at efficient reasoning across science, math, and coding\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n","import type { ModelInfo } from \"../model.js\"\n\n// https://llm.chutes.ai/v1 (OpenAI compatible)\nexport type ChutesModelId =\n\t| \"deepseek-ai/DeepSeek-R1-0528\"\n\t| \"deepseek-ai/DeepSeek-R1\"\n\t| \"deepseek-ai/DeepSeek-V3\"\n\t| \"deepseek-ai/DeepSeek-V3.1\"\n\t| \"deepseek-ai/DeepSeek-V3.1-Terminus\"\n\t| \"deepseek-ai/DeepSeek-V3.1-turbo\"\n\t| \"deepseek-ai/DeepSeek-V3.2-Exp\"\n\t| \"unsloth/Llama-3.3-70B-Instruct\"\n\t| \"chutesai/Llama-4-Scout-17B-16E-Instruct\"\n\t| \"unsloth/Mistral-Nemo-Instruct-2407\"\n\t| \"unsloth/gemma-3-12b-it\"\n\t| \"NousResearch/DeepHermes-3-Llama-3-8B-Preview\"\n\t| \"unsloth/gemma-3-4b-it\"\n\t| \"nvidia/Llama-3_3-Nemotron-Super-49B-v1\"\n\t| \"nvidia/Llama-3_1-Nemotron-Ultra-253B-v1\"\n\t| \"chutesai/Llama-4-Maverick-17B-128E-Instruct-FP8\"\n\t| \"deepseek-ai/DeepSeek-V3-Base\"\n\t| \"deepseek-ai/DeepSeek-R1-Zero\"\n\t| \"deepseek-ai/DeepSeek-V3-0324\"\n\t| \"Qwen/Qwen3-235B-A22B\"\n\t| \"Qwen/Qwen3-235B-A22B-Instruct-2507\"\n\t| \"Qwen/Qwen3-32B\"\n\t| \"Qwen/Qwen3-30B-A3B\"\n\t| \"Qwen/Qwen3-14B\"\n\t| \"Qwen/Qwen3-8B\"\n\t| \"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8\"\n\t| \"microsoft/MAI-DS-R1-FP8\"\n\t| \"tngtech/DeepSeek-R1T-Chimera\"\n\t| \"zai-org/GLM-4.5-Air\"\n\t| \"zai-org/GLM-4.5-FP8\"\n\t| \"zai-org/GLM-4.5-turbo\"\n\t| \"zai-org/GLM-4.6-FP8\"\n\t| \"zai-org/GLM-4.6-turbo\"\n\t| \"meituan-longcat/LongCat-Flash-Thinking-FP8\"\n\t| \"moonshotai/Kimi-K2-Instruct-75k\"\n\t| \"moonshotai/Kimi-K2-Instruct-0905\"\n\t| \"Qwen/Qwen3-235B-A22B-Thinking-2507\"\n\t| \"Qwen/Qwen3-Next-80B-A3B-Instruct\"\n\t| \"Qwen/Qwen3-Next-80B-A3B-Thinking\"\n\t| \"Qwen/Qwen3-VL-235B-A22B-Thinking\"\n\nexport const chutesDefaultModelId: ChutesModelId = \"deepseek-ai/DeepSeek-R1-0528\"\n\nexport const chutesModels = {\n\t\"deepseek-ai/DeepSeek-R1-0528\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"DeepSeek R1 0528 model.\",\n\t},\n\t\"deepseek-ai/DeepSeek-R1\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"DeepSeek R1 model.\",\n\t},\n\t\"deepseek-ai/DeepSeek-V3\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"DeepSeek V3 model.\",\n\t},\n\t\"deepseek-ai/DeepSeek-V3.1\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"DeepSeek V3.1 model.\",\n\t},\n\t\"deepseek-ai/DeepSeek-V3.1-Terminus\": {\n\t\tmaxTokens: 163840,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.23,\n\t\toutputPrice: 0.9,\n\t\tdescription:\n\t\t\t\"DeepSeek‑V3.1‑Terminus is an update to V3.1 that improves language consistency by reducing CN/EN mix‑ups and eliminating random characters, while strengthening agent capabilities with notably better Code Agent and Search Agent performance.\",\n\t},\n\t\"deepseek-ai/DeepSeek-V3.1-turbo\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 1.0,\n\t\toutputPrice: 3.0,\n\t\tdescription:\n\t\t\t\"DeepSeek-V3.1-turbo is an FP8, speculative-decoding turbo variant optimized for ultra-fast single-shot queries (~200 TPS), with outputs close to the originals and solid function calling/reasoning/structured output, priced at $1/M input and $3/M output tokens, using 2× quota per request and not intended for bulk workloads.\",\n\t},\n\t\"deepseek-ai/DeepSeek-V3.2-Exp\": {\n\t\tmaxTokens: 163840,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.25,\n\t\toutputPrice: 0.35,\n\t\tdescription:\n\t\t\t\"DeepSeek-V3.2-Exp is an experimental LLM that introduces DeepSeek Sparse Attention to improve long‑context training and inference efficiency while maintaining performance comparable to V3.1‑Terminus.\",\n\t},\n\t\"unsloth/Llama-3.3-70B-Instruct\": {\n\t\tmaxTokens: 32768, // From Groq\n\t\tcontextWindow: 131072, // From Groq\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Unsloth Llama 3.3 70B Instruct model.\",\n\t},\n\t\"chutesai/Llama-4-Scout-17B-16E-Instruct\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 512000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"ChutesAI Llama 4 Scout 17B Instruct model, 512K context.\",\n\t},\n\t\"unsloth/Mistral-Nemo-Instruct-2407\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Unsloth Mistral Nemo Instruct model.\",\n\t},\n\t\"unsloth/gemma-3-12b-it\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Unsloth Gemma 3 12B IT model.\",\n\t},\n\t\"NousResearch/DeepHermes-3-Llama-3-8B-Preview\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Nous DeepHermes 3 Llama 3 8B Preview model.\",\n\t},\n\t\"unsloth/gemma-3-4b-it\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Unsloth Gemma 3 4B IT model.\",\n\t},\n\t\"nvidia/Llama-3_3-Nemotron-Super-49B-v1\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Nvidia Llama 3.3 Nemotron Super 49B model.\",\n\t},\n\t\"nvidia/Llama-3_1-Nemotron-Ultra-253B-v1\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Nvidia Llama 3.1 Nemotron Ultra 253B model.\",\n\t},\n\t\"chutesai/Llama-4-Maverick-17B-128E-Instruct-FP8\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 256000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"ChutesAI Llama 4 Maverick 17B Instruct FP8 model.\",\n\t},\n\t\"deepseek-ai/DeepSeek-V3-Base\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"DeepSeek V3 Base model.\",\n\t},\n\t\"deepseek-ai/DeepSeek-R1-Zero\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"DeepSeek R1 Zero model.\",\n\t},\n\t\"deepseek-ai/DeepSeek-V3-0324\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"DeepSeek V3 (0324) model.\",\n\t},\n\t\"Qwen/Qwen3-235B-A22B-Instruct-2507\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 262144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Qwen3 235B A22B Instruct 2507 model with 262K context window.\",\n\t},\n\t\"Qwen/Qwen3-235B-A22B\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 40960,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Qwen3 235B A22B model.\",\n\t},\n\t\"Qwen/Qwen3-32B\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 40960,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Qwen3 32B model.\",\n\t},\n\t\"Qwen/Qwen3-30B-A3B\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 40960,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Qwen3 30B A3B model.\",\n\t},\n\t\"Qwen/Qwen3-14B\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 40960,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Qwen3 14B model.\",\n\t},\n\t\"Qwen/Qwen3-8B\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 40960,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Qwen3 8B model.\",\n\t},\n\t\"microsoft/MAI-DS-R1-FP8\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Microsoft MAI-DS-R1 FP8 model.\",\n\t},\n\t\"tngtech/DeepSeek-R1T-Chimera\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"TNGTech DeepSeek R1T Chimera model.\",\n\t},\n\t\"zai-org/GLM-4.5-Air\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 151329,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription:\n\t\t\t\"GLM-4.5-Air model with 151,329 token context window and 106B total parameters with 12B activated.\",\n\t},\n\t\"zai-org/GLM-4.5-FP8\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription:\n\t\t\t\"GLM-4.5-FP8 model with 128k token context window, optimized for agent-based applications with MoE architecture.\",\n\t},\n\t\"zai-org/GLM-4.5-turbo\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 1,\n\t\toutputPrice: 3,\n\t\tdescription: \"GLM-4.5-turbo model with 128K token context window, optimized for fast inference.\",\n\t},\n\t\"zai-org/GLM-4.6-FP8\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 202752,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription:\n\t\t\t\"GLM-4.6 introduces major upgrades over GLM-4.5, including a longer 200K-token context window for complex tasks, stronger coding performance in benchmarks and real-world tools (such as Claude Code, Cline, Roo Code, and Kilo Code), improved reasoning with tool use during inference, more capable and efficient agent integration, and refined writing that better matches human style, readability, and natural role-play scenarios.\",\n\t},\n\t\"zai-org/GLM-4.6-turbo\": {\n\t\tmaxTokens: 202752, // From Chutes /v1/models: max_output_length\n\t\tcontextWindow: 202752,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 1.15,\n\t\toutputPrice: 3.25,\n\t\tdescription: \"GLM-4.6-turbo model with 200K-token context window, optimized for fast inference.\",\n\t},\n\t\"meituan-longcat/LongCat-Flash-Thinking-FP8\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription:\n\t\t\t\"LongCat Flash Thinking FP8 model with 128K context window, optimized for complex reasoning and coding tasks.\",\n\t},\n\t\"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 262144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Qwen3 Coder 480B A35B Instruct FP8 model, optimized for coding tasks.\",\n\t},\n\t\"moonshotai/Kimi-K2-Instruct-75k\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 75000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.1481,\n\t\toutputPrice: 0.5926,\n\t\tdescription: \"Moonshot AI Kimi K2 Instruct model with 75k context window.\",\n\t},\n\t\"moonshotai/Kimi-K2-Instruct-0905\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 262144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.1999,\n\t\toutputPrice: 0.8001,\n\t\tdescription: \"Moonshot AI Kimi K2 Instruct 0905 model with 256k context window.\",\n\t},\n\t\"Qwen/Qwen3-235B-A22B-Thinking-2507\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 262144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.077968332,\n\t\toutputPrice: 0.31202496,\n\t\tdescription: \"Qwen3 235B A22B Thinking 2507 model with 262K context window.\",\n\t},\n\t\"Qwen/Qwen3-Next-80B-A3B-Instruct\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription:\n\t\t\t\"Fast, stable instruction-tuned model optimized for complex tasks, RAG, and tool use without thinking traces.\",\n\t},\n\t\"Qwen/Qwen3-Next-80B-A3B-Thinking\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription:\n\t\t\t\"Reasoning-first model with structured thinking traces for multi-step problems, math proofs, and code synthesis.\",\n\t},\n\t\"Qwen/Qwen3-VL-235B-A22B-Thinking\": {\n\t\tmaxTokens: 262144,\n\t\tcontextWindow: 262144,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.16,\n\t\toutputPrice: 0.65,\n\t\tdescription:\n\t\t\t\"Qwen3‑VL‑235B‑A22B‑Thinking is an open‑weight MoE vision‑language model (235B total, ~22B activated) optimized for deliberate multi‑step reasoning with strong text‑image‑video understanding and long‑context capabilities.\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const chutesDefaultModelInfo: ModelInfo = chutesModels[chutesDefaultModelId]\n","import type { ModelInfo } from \"../model.js\"\nimport { anthropicModels } from \"./anthropic.js\"\n\n// Regex pattern to match 8-digit date at the end of model names\nconst VERTEX_DATE_PATTERN = /-(\\d{8})$/\n\n/**\n * Converts Claude model names from hyphen-date format to Vertex AI's @-date format.\n *\n * @param modelName - The original model name (e.g., \"claude-sonnet-4-20250514\")\n * @returns The converted model name for Vertex AI (e.g., \"claude-sonnet-4@20250514\")\n *\n * @example\n * convertModelNameForVertex(\"claude-sonnet-4-20250514\") // returns \"claude-sonnet-4@20250514\"\n * convertModelNameForVertex(\"claude-model\") // returns \"claude-model\" (no change)\n */\nexport function convertModelNameForVertex(modelName: string): string {\n\t// Convert hyphen-date format to @date format for Vertex AI\n\treturn modelName.replace(VERTEX_DATE_PATTERN, \"@$1\")\n}\n\n// Claude Code\nexport type ClaudeCodeModelId = keyof typeof claudeCodeModels\nexport const claudeCodeDefaultModelId: ClaudeCodeModelId = \"claude-sonnet-4-5\"\nexport const CLAUDE_CODE_DEFAULT_MAX_OUTPUT_TOKENS = 16000\n\n/**\n * Gets the appropriate model ID based on whether Vertex AI is being used.\n *\n * @param baseModelId - The base Claude Code model ID\n * @param useVertex - Whether to format the model ID for Vertex AI (default: false)\n * @returns The model ID, potentially formatted for Vertex AI\n *\n * @example\n * getClaudeCodeModelId(\"claude-sonnet-4-20250514\", true) // returns \"claude-sonnet-4@20250514\"\n * getClaudeCodeModelId(\"claude-sonnet-4-20250514\", false) // returns \"claude-sonnet-4-20250514\"\n */\nexport function getClaudeCodeModelId(baseModelId: ClaudeCodeModelId, useVertex = false): string {\n\treturn useVertex ? convertModelNameForVertex(baseModelId) : baseModelId\n}\n\nexport const claudeCodeModels = {\n\t\"claude-sonnet-4-5\": {\n\t\t...anthropicModels[\"claude-sonnet-4-5\"],\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true, // Claude Code does report cache tokens\n\t\tsupportsReasoningEffort: false,\n\t\tsupportsReasoningBudget: false,\n\t\trequiredReasoningBudget: false,\n\t\t// Claude Code manages its own tools and temperature via the CLI\n\t\tsupportsNativeTools: false,\n\t\tsupportsTemperature: false,\n\t},\n\t\"claude-sonnet-4-5-20250929[1m]\": {\n\t\t...anthropicModels[\"claude-sonnet-4-5\"],\n\t\tcontextWindow: 1_000_000, // 1M token context window (requires [1m] suffix)\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true, // Claude Code does report cache tokens\n\t\tsupportsReasoningEffort: false,\n\t\tsupportsReasoningBudget: false,\n\t\trequiredReasoningBudget: false,\n\t\t// Claude Code manages its own tools and temperature via the CLI\n\t\tsupportsNativeTools: false,\n\t\tsupportsTemperature: false,\n\t},\n\t\"claude-sonnet-4-20250514\": {\n\t\t...anthropicModels[\"claude-sonnet-4-20250514\"],\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true, // Claude Code does report cache tokens\n\t\tsupportsReasoningEffort: false,\n\t\tsupportsReasoningBudget: false,\n\t\trequiredReasoningBudget: false,\n\t\t// Claude Code manages its own tools and temperature via the CLI\n\t\tsupportsNativeTools: false,\n\t\tsupportsTemperature: false,\n\t},\n\t\"claude-opus-4-5-20251101\": {\n\t\t...anthropicModels[\"claude-opus-4-5-20251101\"],\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true, // Claude Code does report cache tokens\n\t\tsupportsReasoningEffort: false,\n\t\tsupportsReasoningBudget: false,\n\t\trequiredReasoningBudget: false,\n\t\t// Claude Code manages its own tools and temperature via the CLI\n\t\tsupportsNativeTools: false,\n\t\tsupportsTemperature: false,\n\t},\n\t\"claude-opus-4-1-20250805\": {\n\t\t...anthropicModels[\"claude-opus-4-1-20250805\"],\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true, // Claude Code does report cache tokens\n\t\tsupportsReasoningEffort: false,\n\t\tsupportsReasoningBudget: false,\n\t\trequiredReasoningBudget: false,\n\t\t// Claude Code manages its own tools and temperature via the CLI\n\t\tsupportsNativeTools: false,\n\t\tsupportsTemperature: false,\n\t},\n\t\"claude-opus-4-20250514\": {\n\t\t...anthropicModels[\"claude-opus-4-20250514\"],\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true, // Claude Code does report cache tokens\n\t\tsupportsReasoningEffort: false,\n\t\tsupportsReasoningBudget: false,\n\t\trequiredReasoningBudget: false,\n\t\t// Claude Code manages its own tools and temperature via the CLI\n\t\tsupportsNativeTools: false,\n\t\tsupportsTemperature: false,\n\t},\n\t\"claude-3-7-sonnet-20250219\": {\n\t\t...anthropicModels[\"claude-3-7-sonnet-20250219\"],\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true, // Claude Code does report cache tokens\n\t\tsupportsReasoningEffort: false,\n\t\tsupportsReasoningBudget: false,\n\t\trequiredReasoningBudget: false,\n\t\t// Claude Code manages its own tools and temperature via the CLI\n\t\tsupportsNativeTools: false,\n\t\tsupportsTemperature: false,\n\t},\n\t\"claude-3-5-sonnet-20241022\": {\n\t\t...anthropicModels[\"claude-3-5-sonnet-20241022\"],\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true, // Claude Code does report cache tokens\n\t\tsupportsReasoningEffort: false,\n\t\tsupportsReasoningBudget: false,\n\t\trequiredReasoningBudget: false,\n\t\t// Claude Code manages its own tools and temperature via the CLI\n\t\tsupportsNativeTools: false,\n\t\tsupportsTemperature: false,\n\t},\n\t\"claude-3-5-haiku-20241022\": {\n\t\t...anthropicModels[\"claude-3-5-haiku-20241022\"],\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true, // Claude Code does report cache tokens\n\t\tsupportsReasoningEffort: false,\n\t\tsupportsReasoningBudget: false,\n\t\trequiredReasoningBudget: false,\n\t\t// Claude Code manages its own tools and temperature via the CLI\n\t\tsupportsNativeTools: false,\n\t\tsupportsTemperature: false,\n\t},\n\t\"claude-haiku-4-5-20251001\": {\n\t\t...anthropicModels[\"claude-haiku-4-5-20251001\"],\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true, // Claude Code does report cache tokens\n\t\tsupportsReasoningEffort: false,\n\t\tsupportsReasoningBudget: false,\n\t\trequiredReasoningBudget: false,\n\t\t// Claude Code manages its own tools and temperature via the CLI\n\t\tsupportsNativeTools: false,\n\t\tsupportsTemperature: false,\n\t},\n} as const satisfies Record<string, ModelInfo>\n","import type { ModelInfo } from \"../model.js\"\n\n// https://platform.deepseek.com/docs/api\nexport type DeepSeekModelId = keyof typeof deepSeekModels\n\nexport const deepSeekDefaultModelId: DeepSeekModelId = \"deepseek-chat\"\n\nexport const deepSeekModels = {\n\t\"deepseek-chat\": {\n\t\tmaxTokens: 8192, // 8K max output\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tdefaultToolProtocol: \"native\",\n\t\tinputPrice: 0.28, // $0.28 per million tokens (cache miss) - Updated Dec 9, 2025\n\t\toutputPrice: 0.42, // $0.42 per million tokens - Updated Dec 9, 2025\n\t\tcacheWritesPrice: 0.28, // $0.28 per million tokens (cache miss) - Updated Dec 9, 2025\n\t\tcacheReadsPrice: 0.028, // $0.028 per million tokens (cache hit) - Updated Dec 9, 2025\n\t\tdescription: `DeepSeek-V3.2 (Non-thinking Mode) achieves a significant breakthrough in inference speed over previous models. It tops the leaderboard among open-source models and rivals the most advanced closed-source models globally. Supports JSON output, tool calls, chat prefix completion (beta), and FIM completion (beta).`,\n\t},\n\t\"deepseek-reasoner\": {\n\t\tmaxTokens: 8192, // 8K max output\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tdefaultToolProtocol: \"native\",\n\t\tinputPrice: 0.28, // $0.28 per million tokens (cache miss) - Updated Dec 9, 2025\n\t\toutputPrice: 0.42, // $0.42 per million tokens - Updated Dec 9, 2025\n\t\tcacheWritesPrice: 0.28, // $0.28 per million tokens (cache miss) - Updated Dec 9, 2025\n\t\tcacheReadsPrice: 0.028, // $0.028 per million tokens (cache hit) - Updated Dec 9, 2025\n\t\tdescription: `DeepSeek-V3.2 (Thinking Mode) achieves performance comparable to OpenAI-o1 across math, code, and reasoning tasks. Supports Chain of Thought reasoning with up to 8K output tokens. Supports JSON output, tool calls, and chat prefix completion (beta).`,\n\t},\n} as const satisfies Record<string, ModelInfo>\n\n// https://api-docs.deepseek.com/quick_start/parameter_settings\nexport const DEEP_SEEK_DEFAULT_TEMPERATURE = 0\n","import type { ModelInfo } from \"../model.js\"\n\nexport const doubaoDefaultModelId = \"doubao-seed-1-6-250615\"\n\nexport const doubaoModels = {\n\t\"doubao-seed-1-6-250615\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.0001, // $0.0001 per million tokens (cache miss)\n\t\toutputPrice: 0.0004, // $0.0004 per million tokens\n\t\tcacheWritesPrice: 0.0001, // $0.0001 per million tokens (cache miss)\n\t\tcacheReadsPrice: 0.00002, // $0.00002 per million tokens (cache hit)\n\t\tdescription: `Doubao Seed 1.6 is a powerful model designed for high-performance tasks with extensive context handling.`,\n\t},\n\t\"doubao-seed-1-6-thinking-250715\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.0002, // $0.0002 per million tokens\n\t\toutputPrice: 0.0008, // $0.0008 per million tokens\n\t\tcacheWritesPrice: 0.0002, // $0.0002 per million\n\t\tcacheReadsPrice: 0.00004, // $0.00004 per million tokens (cache hit)\n\t\tdescription: `Doubao Seed 1.6 Thinking is optimized for reasoning tasks, providing enhanced performance in complex problem-solving scenarios.`,\n\t},\n\t\"doubao-seed-1-6-flash-250715\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.00015, // $0.00015 per million tokens\n\t\toutputPrice: 0.0006, // $0.0006 per million tokens\n\t\tcacheWritesPrice: 0.00015, // $0.00015 per million\n\t\tcacheReadsPrice: 0.00003, // $0.00003 per million tokens (cache hit)\n\t\tdescription: `Doubao Seed 1.6 Flash is tailored for speed and efficiency, making it ideal for applications requiring rapid responses.`,\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const doubaoDefaultModelInfo: ModelInfo = doubaoModels[doubaoDefaultModelId]\n\nexport const DOUBAO_API_BASE_URL = \"https://ark.cn-beijing.volces.com/api/v3\"\nexport const DOUBAO_API_CHAT_PATH = \"/chat/completions\"\n","import type { ModelInfo } from \"../model.js\"\n\nexport type FeatherlessModelId =\n\t| \"deepseek-ai/DeepSeek-V3-0324\"\n\t| \"deepseek-ai/DeepSeek-R1-0528\"\n\t| \"moonshotai/Kimi-K2-Instruct\"\n\t| \"openai/gpt-oss-120b\"\n\t| \"Qwen/Qwen3-Coder-480B-A35B-Instruct\"\n\nexport const featherlessModels = {\n\t\"deepseek-ai/DeepSeek-V3-0324\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 32678,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"DeepSeek V3 0324 model.\",\n\t},\n\t\"deepseek-ai/DeepSeek-R1-0528\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 32678,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"DeepSeek R1 0528 model.\",\n\t},\n\t\"moonshotai/Kimi-K2-Instruct\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 32678,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Kimi K2 Instruct model.\",\n\t},\n\t\"openai/gpt-oss-120b\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 32678,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"GPT-OSS 120B model.\",\n\t},\n\t\"Qwen/Qwen3-Coder-480B-A35B-Instruct\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 32678,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Qwen3 Coder 480B A35B Instruct model.\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const featherlessDefaultModelId: FeatherlessModelId = \"deepseek-ai/DeepSeek-R1-0528\"\n","import type { ModelInfo } from \"../model.js\"\n\nexport type FireworksModelId =\n\t| \"accounts/fireworks/models/kimi-k2-instruct\"\n\t| \"accounts/fireworks/models/kimi-k2-instruct-0905\"\n\t| \"accounts/fireworks/models/minimax-m2\"\n\t| \"accounts/fireworks/models/qwen3-235b-a22b-instruct-2507\"\n\t| \"accounts/fireworks/models/qwen3-coder-480b-a35b-instruct\"\n\t| \"accounts/fireworks/models/deepseek-r1-0528\"\n\t| \"accounts/fireworks/models/deepseek-v3\"\n\t| \"accounts/fireworks/models/deepseek-v3p1\"\n\t| \"accounts/fireworks/models/glm-4p5\"\n\t| \"accounts/fireworks/models/glm-4p5-air\"\n\t| \"accounts/fireworks/models/glm-4p6\"\n\t| \"accounts/fireworks/models/gpt-oss-20b\"\n\t| \"accounts/fireworks/models/gpt-oss-120b\"\n\nexport const fireworksDefaultModelId: FireworksModelId = \"accounts/fireworks/models/kimi-k2-instruct-0905\"\n\nexport const fireworksModels = {\n\t\"accounts/fireworks/models/kimi-k2-instruct-0905\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 262144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 2.5,\n\t\tcacheReadsPrice: 0.15,\n\t\tdescription:\n\t\t\t\"Kimi K2 model gets a new version update: Agentic coding: more accurate, better generalization across scaffolds. Frontend coding: improved aesthetics and functionalities on web, 3d, and other tasks. Context length: extended from 128k to 256k, providing better long-horizon support.\",\n\t},\n\t\"accounts/fireworks/models/kimi-k2-instruct\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 2.5,\n\t\tdescription:\n\t\t\t\"Kimi K2 is a state-of-the-art mixture-of-experts (MoE) language model with 32 billion activated parameters and 1 trillion total parameters. Trained with the Muon optimizer, Kimi K2 achieves exceptional performance across frontier knowledge, reasoning, and coding tasks while being meticulously optimized for agentic capabilities.\",\n\t},\n\t\"accounts/fireworks/models/minimax-m2\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 204800,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 1.2,\n\t\tdescription:\n\t\t\t\"MiniMax M2 is a high-performance language model with 204.8K context window, optimized for long-context understanding and generation tasks.\",\n\t},\n\t\"accounts/fireworks/models/qwen3-235b-a22b-instruct-2507\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 256000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.22,\n\t\toutputPrice: 0.88,\n\t\tdescription: \"Latest Qwen3 thinking model, competitive against the best closed source models in Jul 2025.\",\n\t},\n\t\"accounts/fireworks/models/qwen3-coder-480b-a35b-instruct\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 256000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.45,\n\t\toutputPrice: 1.8,\n\t\tdescription: \"Qwen3's most agentic code model to date.\",\n\t},\n\t\"accounts/fireworks/models/deepseek-r1-0528\": {\n\t\tmaxTokens: 20480,\n\t\tcontextWindow: 160000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3,\n\t\toutputPrice: 8,\n\t\tdescription:\n\t\t\t\"05/28 updated checkpoint of Deepseek R1. Its overall performance is now approaching that of leading models, such as O3 and Gemini 2.5 Pro. Compared to the previous version, the upgraded model shows significant improvements in handling complex reasoning tasks, and this version also offers a reduced hallucination rate, enhanced support for function calling, and better experience for vibe coding. Note that fine-tuning for this model is only available through contacting fireworks at https://fireworks.ai/company/contact-us.\",\n\t},\n\t\"accounts/fireworks/models/deepseek-v3\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.9,\n\t\toutputPrice: 0.9,\n\t\tdescription:\n\t\t\t\"A strong Mixture-of-Experts (MoE) language model with 671B total parameters with 37B activated for each token from Deepseek. Note that fine-tuning for this model is only available through contacting fireworks at https://fireworks.ai/company/contact-us.\",\n\t},\n\t\"accounts/fireworks/models/deepseek-v3p1\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.56,\n\t\toutputPrice: 1.68,\n\t\tdescription:\n\t\t\t\"DeepSeek v3.1 is an improved version of the v3 model with enhanced performance, better reasoning capabilities, and improved code generation. This Mixture-of-Experts (MoE) model maintains the same 671B total parameters with 37B activated per token.\",\n\t},\n\t\"accounts/fireworks/models/glm-4p5\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.55,\n\t\toutputPrice: 2.19,\n\t\tdescription:\n\t\t\t\"Z.ai GLM-4.5 with 355B total parameters and 32B active parameters. Features unified reasoning, coding, and intelligent agent capabilities.\",\n\t},\n\t\"accounts/fireworks/models/glm-4p5-air\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.55,\n\t\toutputPrice: 2.19,\n\t\tdescription:\n\t\t\t\"Z.ai GLM-4.5-Air with 106B total parameters and 12B active parameters. Features unified reasoning, coding, and intelligent agent capabilities.\",\n\t},\n\t\"accounts/fireworks/models/glm-4p6\": {\n\t\tmaxTokens: 25344,\n\t\tcontextWindow: 198000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.55,\n\t\toutputPrice: 2.19,\n\t\tdescription:\n\t\t\t\"Z.ai GLM-4.6 is an advanced coding model with exceptional performance on complex programming tasks. Features improved reasoning capabilities and enhanced code generation quality, making it ideal for software development workflows.\",\n\t},\n\t\"accounts/fireworks/models/gpt-oss-20b\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.07,\n\t\toutputPrice: 0.3,\n\t\tdescription:\n\t\t\t\"OpenAI gpt-oss-20b: Compact model for local/edge deployments. Optimized for low-latency and resource-constrained environments with chain-of-thought output, adjustable reasoning, and agentic workflows.\",\n\t},\n\t\"accounts/fireworks/models/gpt-oss-120b\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 0.6,\n\t\tdescription:\n\t\t\t\"OpenAI gpt-oss-120b: Production-grade, general-purpose model that fits on a single H100 GPU. Features complex reasoning, configurable effort, full chain-of-thought transparency, and supports function calling, tool use, and structured outputs.\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n","import type { ModelInfo } from \"../model.js\"\n\n// https://ai.google.dev/gemini-api/docs/models/gemini\nexport type GeminiModelId = keyof typeof geminiModels\n\nexport const geminiDefaultModelId: GeminiModelId = \"gemini-2.5-pro\"\n\nexport const geminiModels = {\n\t\"gemini-3-pro-preview\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningEffort: [\"low\", \"high\"],\n\t\treasoningEffort: \"low\",\n\t\tsupportsTemperature: true,\n\t\tdefaultTemperature: 1,\n\t\tinputPrice: 4.0,\n\t\toutputPrice: 18.0,\n\t\ttiers: [\n\t\t\t{\n\t\t\t\tcontextWindow: 200_000,\n\t\t\t\tinputPrice: 2.0,\n\t\t\t\toutputPrice: 12.0,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcontextWindow: Infinity,\n\t\t\t\tinputPrice: 4.0,\n\t\t\t\toutputPrice: 18.0,\n\t\t\t},\n\t\t],\n\t},\n\t// 2.5 Pro models\n\t\"gemini-2.5-pro\": {\n\t\tmaxTokens: 64_000,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.5, // This is the pricing for prompts above 200k tokens.\n\t\toutputPrice: 15,\n\t\tcacheReadsPrice: 0.625,\n\t\tcacheWritesPrice: 4.5,\n\t\tmaxThinkingTokens: 32_768,\n\t\tsupportsReasoningBudget: true,\n\t\trequiredReasoningBudget: true,\n\t\ttiers: [\n\t\t\t{\n\t\t\t\tcontextWindow: 200_000,\n\t\t\t\tinputPrice: 1.25,\n\t\t\t\toutputPrice: 10,\n\t\t\t\tcacheReadsPrice: 0.31,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcontextWindow: Infinity,\n\t\t\t\tinputPrice: 2.5,\n\t\t\t\toutputPrice: 15,\n\t\t\t\tcacheReadsPrice: 0.625,\n\t\t\t},\n\t\t],\n\t},\n\t\"gemini-2.5-pro-preview-06-05\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.5, // This is the pricing for prompts above 200k tokens.\n\t\toutputPrice: 15,\n\t\tcacheReadsPrice: 0.625,\n\t\tcacheWritesPrice: 4.5,\n\t\tmaxThinkingTokens: 32_768,\n\t\tsupportsReasoningBudget: true,\n\t\ttiers: [\n\t\t\t{\n\t\t\t\tcontextWindow: 200_000,\n\t\t\t\tinputPrice: 1.25,\n\t\t\t\toutputPrice: 10,\n\t\t\t\tcacheReadsPrice: 0.31,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcontextWindow: Infinity,\n\t\t\t\tinputPrice: 2.5,\n\t\t\t\toutputPrice: 15,\n\t\t\t\tcacheReadsPrice: 0.625,\n\t\t\t},\n\t\t],\n\t},\n\t\"gemini-2.5-pro-preview-05-06\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.5, // This is the pricing for prompts above 200k tokens.\n\t\toutputPrice: 15,\n\t\tcacheReadsPrice: 0.625,\n\t\tcacheWritesPrice: 4.5,\n\t\ttiers: [\n\t\t\t{\n\t\t\t\tcontextWindow: 200_000,\n\t\t\t\tinputPrice: 1.25,\n\t\t\t\toutputPrice: 10,\n\t\t\t\tcacheReadsPrice: 0.31,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcontextWindow: Infinity,\n\t\t\t\tinputPrice: 2.5,\n\t\t\t\toutputPrice: 15,\n\t\t\t\tcacheReadsPrice: 0.625,\n\t\t\t},\n\t\t],\n\t},\n\t\"gemini-2.5-pro-preview-03-25\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.5, // This is the pricing for prompts above 200k tokens.\n\t\toutputPrice: 15,\n\t\tcacheReadsPrice: 0.625,\n\t\tcacheWritesPrice: 4.5,\n\t\tmaxThinkingTokens: 32_768,\n\t\tsupportsReasoningBudget: true,\n\t\ttiers: [\n\t\t\t{\n\t\t\t\tcontextWindow: 200_000,\n\t\t\t\tinputPrice: 1.25,\n\t\t\t\toutputPrice: 10,\n\t\t\t\tcacheReadsPrice: 0.31,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcontextWindow: Infinity,\n\t\t\t\tinputPrice: 2.5,\n\t\t\t\toutputPrice: 15,\n\t\t\t\tcacheReadsPrice: 0.625,\n\t\t\t},\n\t\t],\n\t},\n\n\t// 2.5 Flash models\n\t\"gemini-flash-latest\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 2.5,\n\t\tcacheReadsPrice: 0.075,\n\t\tcacheWritesPrice: 1.0,\n\t\tmaxThinkingTokens: 24_576,\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"gemini-2.5-flash-preview-09-2025\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 2.5,\n\t\tcacheReadsPrice: 0.075,\n\t\tcacheWritesPrice: 1.0,\n\t\tmaxThinkingTokens: 24_576,\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"gemini-2.5-flash\": {\n\t\tmaxTokens: 64_000,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 2.5,\n\t\tcacheReadsPrice: 0.075,\n\t\tcacheWritesPrice: 1.0,\n\t\tmaxThinkingTokens: 24_576,\n\t\tsupportsReasoningBudget: true,\n\t},\n\n\t// 2.5 Flash Lite models\n\t\"gemini-flash-lite-latest\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.4,\n\t\tcacheReadsPrice: 0.025,\n\t\tcacheWritesPrice: 1.0,\n\t\tsupportsReasoningBudget: true,\n\t\tmaxThinkingTokens: 24_576,\n\t},\n\t\"gemini-2.5-flash-lite-preview-09-2025\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.4,\n\t\tcacheReadsPrice: 0.025,\n\t\tcacheWritesPrice: 1.0,\n\t\tsupportsReasoningBudget: true,\n\t\tmaxThinkingTokens: 24_576,\n\t},\n} as const satisfies Record<string, ModelInfo>\n","import type { ModelInfo } from \"../model.js\"\n\n// https://console.groq.com/docs/models\nexport type GroqModelId =\n\t| \"llama-3.1-8b-instant\"\n\t| \"llama-3.3-70b-versatile\"\n\t| \"meta-llama/llama-4-scout-17b-16e-instruct\"\n\t| \"meta-llama/llama-4-maverick-17b-128e-instruct\"\n\t| \"mistral-saba-24b\"\n\t| \"qwen-qwq-32b\"\n\t| \"qwen/qwen3-32b\"\n\t| \"deepseek-r1-distill-llama-70b\"\n\t| \"moonshotai/kimi-k2-instruct\"\n\t| \"moonshotai/kimi-k2-instruct-0905\"\n\t| \"openai/gpt-oss-120b\"\n\t| \"openai/gpt-oss-20b\"\n\nexport const groqDefaultModelId: GroqModelId = \"moonshotai/kimi-k2-instruct-0905\"\n\nexport const groqModels = {\n\t// Models based on API response: https://api.groq.com/openai/v1/models\n\t\"llama-3.1-8b-instant\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.05,\n\t\toutputPrice: 0.08,\n\t\tdescription: \"Meta Llama 3.1 8B Instant model, 128K context.\",\n\t},\n\t\"llama-3.3-70b-versatile\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.59,\n\t\toutputPrice: 0.79,\n\t\tdescription: \"Meta Llama 3.3 70B Versatile model, 128K context.\",\n\t},\n\t\"meta-llama/llama-4-scout-17b-16e-instruct\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.11,\n\t\toutputPrice: 0.34,\n\t\tdescription: \"Meta Llama 4 Scout 17B Instruct model, 128K context.\",\n\t},\n\t\"meta-llama/llama-4-maverick-17b-128e-instruct\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.2,\n\t\toutputPrice: 0.6,\n\t\tdescription: \"Meta Llama 4 Maverick 17B Instruct model, 128K context.\",\n\t},\n\t\"mistral-saba-24b\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 32768,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.79,\n\t\toutputPrice: 0.79,\n\t\tdescription: \"Mistral Saba 24B model, 32K context.\",\n\t},\n\t\"qwen-qwq-32b\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.29,\n\t\toutputPrice: 0.39,\n\t\tdescription: \"Alibaba Qwen QwQ 32B model, 128K context.\",\n\t},\n\t\"qwen/qwen3-32b\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.29,\n\t\toutputPrice: 0.59,\n\t\tdescription: \"Alibaba Qwen 3 32B model, 128K context.\",\n\t},\n\t\"deepseek-r1-distill-llama-70b\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.75,\n\t\toutputPrice: 0.99,\n\t\tdescription: \"DeepSeek R1 Distill Llama 70B model, 128K context.\",\n\t},\n\t\"moonshotai/kimi-k2-instruct\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.0,\n\t\toutputPrice: 3.0,\n\t\tcacheReadsPrice: 0.5, // 50% discount for cached input tokens\n\t\tdescription: \"Moonshot AI Kimi K2 Instruct 1T model, 128K context.\",\n\t},\n\t\"moonshotai/kimi-k2-instruct-0905\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 262144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 2.5,\n\t\tcacheReadsPrice: 0.15,\n\t\tdescription:\n\t\t\t\"Kimi K2 model gets a new version update: Agentic coding: more accurate, better generalization across scaffolds. Frontend coding: improved aesthetics and functionalities on web, 3d, and other tasks. Context length: extended from 128k to 256k, providing better long-horizon support.\",\n\t},\n\t\"openai/gpt-oss-120b\": {\n\t\tmaxTokens: 32766,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 0.75,\n\t\tdescription:\n\t\t\t\"GPT-OSS 120B is OpenAI's flagship open source model, built on a Mixture-of-Experts (MoE) architecture with 20 billion parameters and 128 experts.\",\n\t},\n\t\"openai/gpt-oss-20b\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.5,\n\t\tdescription:\n\t\t\t\"GPT-OSS 20B is OpenAI's flagship open source model, built on a Mixture-of-Experts (MoE) architecture with 20 billion parameters and 32 experts.\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n","/**\n * HuggingFace provider constants\n */\n\n// Default values for HuggingFace models\nexport const HUGGINGFACE_DEFAULT_MAX_TOKENS = 2048\nexport const HUGGINGFACE_MAX_TOKENS_FALLBACK = 8192\nexport const HUGGINGFACE_DEFAULT_CONTEXT_WINDOW = 128_000\n\n// UI constants\nexport const HUGGINGFACE_SLIDER_STEP = 256\nexport const HUGGINGFACE_SLIDER_MIN = 1\nexport const HUGGINGFACE_TEMPERATURE_MAX_VALUE = 2\n\n// API constants\nexport const HUGGINGFACE_API_URL = \"https://router.huggingface.co/v1/models?collection=roocode\"\nexport const HUGGINGFACE_CACHE_DURATION = 1000 * 60 * 60 // 1 hour\n","import type { ModelInfo } from \"../model.js\"\n\nexport type IOIntelligenceModelId =\n\t| \"deepseek-ai/DeepSeek-R1-0528\"\n\t| \"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8\"\n\t| \"Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar\"\n\t| \"openai/gpt-oss-120b\"\n\nexport const ioIntelligenceDefaultModelId: IOIntelligenceModelId = \"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8\"\n\nexport const ioIntelligenceDefaultBaseUrl = \"https://api.intelligence.io.solutions/api/v1\"\n\nexport const IO_INTELLIGENCE_CACHE_DURATION = 1000 * 60 * 60 // 1 hour\n\nexport const ioIntelligenceModels = {\n\t\"deepseek-ai/DeepSeek-R1-0528\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tdescription: \"DeepSeek R1 reasoning model\",\n\t},\n\t\"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 430000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tdescription: \"Llama 4 Maverick 17B model\",\n\t},\n\t\"Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 106000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tdescription: \"Qwen3 Coder 480B specialized for coding\",\n\t},\n\t\"openai/gpt-oss-120b\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tdescription: \"OpenAI GPT-OSS 120B model\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n","import type { ModelInfo } from \"../model.js\"\n\n// https://docs.litellm.ai/\nexport const litellmDefaultModelId = \"claude-3-7-sonnet-20250219\"\n\nexport const litellmDefaultModelInfo: ModelInfo = {\n\tmaxTokens: 8192,\n\tcontextWindow: 200_000,\n\tsupportsImages: true,\n\tsupportsPromptCache: true,\n\tsupportsNativeTools: true,\n\tinputPrice: 3.0,\n\toutputPrice: 15.0,\n\tcacheWritesPrice: 3.75,\n\tcacheReadsPrice: 0.3,\n}\n","import type { ModelInfo } from \"../model.js\"\n\nexport const LMSTUDIO_DEFAULT_TEMPERATURE = 0\n\n// LM Studio\n// https://lmstudio.ai/docs/cli/ls\nexport const lMStudioDefaultModelId = \"mistralai/devstral-small-2505\"\nexport const lMStudioDefaultModelInfo: ModelInfo = {\n\tmaxTokens: 8192,\n\tcontextWindow: 200_000,\n\tsupportsImages: true,\n\tsupportsPromptCache: true,\n\tinputPrice: 0,\n\toutputPrice: 0,\n\tcacheWritesPrice: 0,\n\tcacheReadsPrice: 0,\n\tdescription: \"LM Studio hosted models\",\n}\n","import type { ModelInfo } from \"../model.js\"\n\n// https://docs.mistral.ai/getting-started/models/models_overview/\nexport type MistralModelId = keyof typeof mistralModels\n\nexport const mistralDefaultModelId: MistralModelId = \"codestral-latest\"\n\nexport const mistralModels = {\n\t\"magistral-medium-latest\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 2.0,\n\t\toutputPrice: 5.0,\n\t},\n\t\"devstral-medium-latest\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.4,\n\t\toutputPrice: 2.0,\n\t},\n\t\"mistral-medium-latest\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.4,\n\t\toutputPrice: 2.0,\n\t},\n\t\"codestral-latest\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 256_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 0.9,\n\t},\n\t\"mistral-large-latest\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 2.0,\n\t\toutputPrice: 6.0,\n\t},\n\t\"ministral-8b-latest\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.1,\n\t},\n\t\"ministral-3b-latest\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.04,\n\t\toutputPrice: 0.04,\n\t},\n\t\"mistral-small-latest\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 32_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.2,\n\t\toutputPrice: 0.6,\n\t},\n\t\"pixtral-large-latest\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 2.0,\n\t\toutputPrice: 6.0,\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const MISTRAL_DEFAULT_TEMPERATURE = 1\n","import type { ModelInfo } from \"../model.js\"\n\n// https://platform.moonshot.ai/\nexport type MoonshotModelId = keyof typeof moonshotModels\n\nexport const moonshotDefaultModelId: MoonshotModelId = \"kimi-k2-0905-preview\"\n\nexport const moonshotModels = {\n\t\"kimi-k2-0711-preview\": {\n\t\tmaxTokens: 32_000,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6, // $0.60 per million tokens (cache miss)\n\t\toutputPrice: 2.5, // $2.50 per million tokens\n\t\tcacheWritesPrice: 0, // $0 per million tokens (cache miss)\n\t\tcacheReadsPrice: 0.15, // $0.15 per million tokens (cache hit)\n\t\tdescription: `Kimi K2 is a state-of-the-art mixture-of-experts (MoE) language model with 32 billion activated parameters and 1 trillion total parameters.`,\n\t},\n\t\"kimi-k2-0905-preview\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 262144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 2.5,\n\t\tcacheReadsPrice: 0.15,\n\t\tdescription:\n\t\t\t\"Kimi K2 model gets a new version update: Agentic coding: more accurate, better generalization across scaffolds. Frontend coding: improved aesthetics and functionalities on web, 3d, and other tasks. Context length: extended from 128k to 256k, providing better long-horizon support.\",\n\t},\n\t\"kimi-k2-turbo-preview\": {\n\t\tmaxTokens: 32_000,\n\t\tcontextWindow: 262_144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 2.4, // $2.40 per million tokens (cache miss)\n\t\toutputPrice: 10, // $10.00 per million tokens\n\t\tcacheWritesPrice: 0, // $0 per million tokens (cache miss)\n\t\tcacheReadsPrice: 0.6, // $0.60 per million tokens (cache hit)\n\t\tdescription: `Kimi K2 Turbo is a high-speed version of the state-of-the-art Kimi K2 mixture-of-experts (MoE) language model, with the same 32 billion activated parameters and 1 trillion total parameters, optimized for output speeds of up to 60 tokens per second, peaking at 100 tokens per second.`,\n\t},\n\t\"kimi-k2-thinking\": {\n\t\tmaxTokens: 16_000, // Recommended ≥ 16,000\n\t\tcontextWindow: 262_144, // 262,144 tokens\n\t\tsupportsImages: false, // Text-only (no image/vision support)\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6, // $0.60 per million tokens (cache miss)\n\t\toutputPrice: 2.5, // $2.50 per million tokens\n\t\tcacheWritesPrice: 0, // $0 per million tokens (cache miss)\n\t\tcacheReadsPrice: 0.15, // $0.15 per million tokens (cache hit)\n\t\tsupportsTemperature: true, // Default temperature: 1.0\n\t\tpreserveReasoning: true,\n\t\tdefaultTemperature: 1.0,\n\t\tdescription: `The kimi-k2-thinking model is a general-purpose agentic reasoning model developed by Moonshot AI. Thanks to its strength in deep reasoning and multi-turn tool use, it can solve even the hardest problems.`,\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const MOONSHOT_DEFAULT_TEMPERATURE = 0.6\n","import type { ModelInfo } from \"../model.js\"\n\n// Ollama\n// https://ollama.com/models\nexport const ollamaDefaultModelId = \"devstral:24b\"\nexport const ollamaDefaultModelInfo: ModelInfo = {\n\tmaxTokens: 4096,\n\tcontextWindow: 200_000,\n\tsupportsImages: true,\n\tsupportsPromptCache: true,\n\tsupportsNativeTools: true,\n\tinputPrice: 0,\n\toutputPrice: 0,\n\tcacheWritesPrice: 0,\n\tcacheReadsPrice: 0,\n\tdescription: \"Ollama hosted models\",\n}\n","import type { ModelInfo } from \"../model.js\"\n\n// https://openai.com/api/pricing/\nexport type OpenAiNativeModelId = keyof typeof openAiNativeModels\n\nexport const openAiNativeDefaultModelId: OpenAiNativeModelId = \"gpt-5.1-codex-max\"\n\nexport const openAiNativeModels = {\n\t\"gpt-5.1-codex-max\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tpromptCacheRetention: \"24h\",\n\t\tsupportsReasoningEffort: [\"low\", \"medium\", \"high\", \"xhigh\"],\n\t\treasoningEffort: \"xhigh\",\n\t\tinputPrice: 1.25,\n\t\toutputPrice: 10.0,\n\t\tcacheReadsPrice: 0.125,\n\t\tsupportsTemperature: false,\n\t\ttiers: [{ name: \"priority\", contextWindow: 400000, inputPrice: 2.5, outputPrice: 20.0, cacheReadsPrice: 0.25 }],\n\t\tdescription:\n\t\t\t\"GPT-5.1 Codex Max: Our most intelligent coding model optimized for long-horizon, agentic coding tasks\",\n\t},\n\t\"gpt-5.2\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tpromptCacheRetention: \"24h\",\n\t\tsupportsReasoningEffort: [\"none\", \"low\", \"medium\", \"high\", \"xhigh\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 1.75,\n\t\toutputPrice: 14.0,\n\t\tcacheReadsPrice: 0.175,\n\t\tsupportsVerbosity: true,\n\t\tsupportsTemperature: false,\n\t\ttiers: [\n\t\t\t{ name: \"flex\", contextWindow: 400000, inputPrice: 0.875, outputPrice: 7.0, cacheReadsPrice: 0.0875 },\n\t\t\t{ name: \"priority\", contextWindow: 400000, inputPrice: 3.5, outputPrice: 28.0, cacheReadsPrice: 0.35 },\n\t\t],\n\t\tdescription: \"GPT-5.2: Our flagship model for coding and agentic tasks across industries\",\n\t},\n\t\"gpt-5.2-chat-latest\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 128_000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.75,\n\t\toutputPrice: 14.0,\n\t\tcacheReadsPrice: 0.175,\n\t\tdescription: \"GPT-5.2 Chat: Optimized for conversational AI and chat use cases\",\n\t},\n\t\"gpt-5.1\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tpromptCacheRetention: \"24h\",\n\t\tsupportsReasoningEffort: [\"none\", \"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 1.25,\n\t\toutputPrice: 10.0,\n\t\tcacheReadsPrice: 0.125,\n\t\tsupportsVerbosity: true,\n\t\tsupportsTemperature: false,\n\t\ttiers: [\n\t\t\t{ name: \"flex\", contextWindow: 400000, inputPrice: 0.625, outputPrice: 5.0, cacheReadsPrice: 0.0625 },\n\t\t\t{ name: \"priority\", contextWindow: 400000, inputPrice: 2.5, outputPrice: 20.0, cacheReadsPrice: 0.25 },\n\t\t],\n\t\tdescription: \"GPT-5.1: The best model for coding and agentic tasks across domains\",\n\t},\n\t\"gpt-5.1-codex\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tpromptCacheRetention: \"24h\",\n\t\tsupportsReasoningEffort: [\"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 1.25,\n\t\toutputPrice: 10.0,\n\t\tcacheReadsPrice: 0.125,\n\t\tsupportsTemperature: false,\n\t\ttiers: [{ name: \"priority\", contextWindow: 400000, inputPrice: 2.5, outputPrice: 20.0, cacheReadsPrice: 0.25 }],\n\t\tdescription: \"GPT-5.1 Codex: A version of GPT-5.1 optimized for agentic coding in Codex\",\n\t},\n\t\"gpt-5.1-codex-mini\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tpromptCacheRetention: \"24h\",\n\t\tsupportsReasoningEffort: [\"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 0.25,\n\t\toutputPrice: 2.0,\n\t\tcacheReadsPrice: 0.025,\n\t\tsupportsTemperature: false,\n\t\tdescription: \"GPT-5.1 Codex mini: A version of GPT-5.1 optimized for agentic coding in Codex\",\n\t},\n\t\"gpt-5\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningEffort: [\"minimal\", \"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 1.25,\n\t\toutputPrice: 10.0,\n\t\tcacheReadsPrice: 0.125,\n\t\tsupportsVerbosity: true,\n\t\tsupportsTemperature: false,\n\t\ttiers: [\n\t\t\t{ name: \"flex\", contextWindow: 400000, inputPrice: 0.625, outputPrice: 5.0, cacheReadsPrice: 0.0625 },\n\t\t\t{ name: \"priority\", contextWindow: 400000, inputPrice: 2.5, outputPrice: 20.0, cacheReadsPrice: 0.25 },\n\t\t],\n\t\tdescription: \"GPT-5: The best model for coding and agentic tasks across domains\",\n\t},\n\t\"gpt-5-mini\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningEffort: [\"minimal\", \"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 0.25,\n\t\toutputPrice: 2.0,\n\t\tcacheReadsPrice: 0.025,\n\t\tsupportsVerbosity: true,\n\t\tsupportsTemperature: false,\n\t\ttiers: [\n\t\t\t{ name: \"flex\", contextWindow: 400000, inputPrice: 0.125, outputPrice: 1.0, cacheReadsPrice: 0.0125 },\n\t\t\t{ name: \"priority\", contextWindow: 400000, inputPrice: 0.45, outputPrice: 3.6, cacheReadsPrice: 0.045 },\n\t\t],\n\t\tdescription: \"GPT-5 Mini: A faster, more cost-efficient version of GPT-5 for well-defined tasks\",\n\t},\n\t\"gpt-5-codex\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningEffort: [\"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 1.25,\n\t\toutputPrice: 10.0,\n\t\tcacheReadsPrice: 0.125,\n\t\tsupportsTemperature: false,\n\t\ttiers: [{ name: \"priority\", contextWindow: 400000, inputPrice: 2.5, outputPrice: 20.0, cacheReadsPrice: 0.25 }],\n\t\tdescription: \"GPT-5-Codex: A version of GPT-5 optimized for agentic coding in Codex\",\n\t},\n\t\"gpt-5-nano\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningEffort: [\"minimal\", \"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 0.05,\n\t\toutputPrice: 0.4,\n\t\tcacheReadsPrice: 0.005,\n\t\tsupportsVerbosity: true,\n\t\tsupportsTemperature: false,\n\t\ttiers: [{ name: \"flex\", contextWindow: 400000, inputPrice: 0.025, outputPrice: 0.2, cacheReadsPrice: 0.0025 }],\n\t\tdescription: \"GPT-5 Nano: Fastest, most cost-efficient version of GPT-5\",\n\t},\n\t\"gpt-5-chat-latest\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.25,\n\t\toutputPrice: 10.0,\n\t\tcacheReadsPrice: 0.125,\n\t\tdescription: \"GPT-5 Chat: Optimized for conversational AI and non-reasoning tasks\",\n\t},\n\t\"gpt-4.1\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 1_047_576,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2,\n\t\toutputPrice: 8,\n\t\tcacheReadsPrice: 0.5,\n\t\tsupportsTemperature: true,\n\t\ttiers: [\n\t\t\t{ name: \"priority\", contextWindow: 1_047_576, inputPrice: 3.5, outputPrice: 14.0, cacheReadsPrice: 0.875 },\n\t\t],\n\t},\n\t\"gpt-4.1-mini\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 1_047_576,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.4,\n\t\toutputPrice: 1.6,\n\t\tcacheReadsPrice: 0.1,\n\t\tsupportsTemperature: true,\n\t\ttiers: [\n\t\t\t{ name: \"priority\", contextWindow: 1_047_576, inputPrice: 0.7, outputPrice: 2.8, cacheReadsPrice: 0.175 },\n\t\t],\n\t},\n\t\"gpt-4.1-nano\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 1_047_576,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.4,\n\t\tcacheReadsPrice: 0.025,\n\t\tsupportsTemperature: true,\n\t\ttiers: [\n\t\t\t{ name: \"priority\", contextWindow: 1_047_576, inputPrice: 0.2, outputPrice: 0.8, cacheReadsPrice: 0.05 },\n\t\t],\n\t},\n\to3: {\n\t\tmaxTokens: 100_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.0,\n\t\toutputPrice: 8.0,\n\t\tcacheReadsPrice: 0.5,\n\t\tsupportsReasoningEffort: [\"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tsupportsTemperature: false,\n\t\ttiers: [\n\t\t\t{ name: \"flex\", contextWindow: 200_000, inputPrice: 1.0, outputPrice: 4.0, cacheReadsPrice: 0.25 },\n\t\t\t{ name: \"priority\", contextWindow: 200_000, inputPrice: 3.5, outputPrice: 14.0, cacheReadsPrice: 0.875 },\n\t\t],\n\t},\n\t\"o3-high\": {\n\t\tmaxTokens: 100_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.0,\n\t\toutputPrice: 8.0,\n\t\tcacheReadsPrice: 0.5,\n\t\treasoningEffort: \"high\",\n\t\tsupportsTemperature: false,\n\t},\n\t\"o3-low\": {\n\t\tmaxTokens: 100_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.0,\n\t\toutputPrice: 8.0,\n\t\tcacheReadsPrice: 0.5,\n\t\treasoningEffort: \"low\",\n\t\tsupportsTemperature: false,\n\t},\n\t\"o4-mini\": {\n\t\tmaxTokens: 100_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.1,\n\t\toutputPrice: 4.4,\n\t\tcacheReadsPrice: 0.275,\n\t\tsupportsReasoningEffort: [\"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tsupportsTemperature: false,\n\t\ttiers: [\n\t\t\t{ name: \"flex\", contextWindow: 200_000, inputPrice: 0.55, outputPrice: 2.2, cacheReadsPrice: 0.138 },\n\t\t\t{ name: \"priority\", contextWindow: 200_000, inputPrice: 2.0, outputPrice: 8.0, cacheReadsPrice: 0.5 },\n\t\t],\n\t},\n\t\"o4-mini-high\": {\n\t\tmaxTokens: 100_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.1,\n\t\toutputPrice: 4.4,\n\t\tcacheReadsPrice: 0.275,\n\t\treasoningEffort: \"high\",\n\t\tsupportsTemperature: false,\n\t},\n\t\"o4-mini-low\": {\n\t\tmaxTokens: 100_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.1,\n\t\toutputPrice: 4.4,\n\t\tcacheReadsPrice: 0.275,\n\t\treasoningEffort: \"low\",\n\t\tsupportsTemperature: false,\n\t},\n\t\"o3-mini\": {\n\t\tmaxTokens: 100_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.1,\n\t\toutputPrice: 4.4,\n\t\tcacheReadsPrice: 0.55,\n\t\tsupportsReasoningEffort: [\"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tsupportsTemperature: false,\n\t},\n\t\"o3-mini-high\": {\n\t\tmaxTokens: 100_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.1,\n\t\toutputPrice: 4.4,\n\t\tcacheReadsPrice: 0.55,\n\t\treasoningEffort: \"high\",\n\t\tsupportsTemperature: false,\n\t},\n\t\"o3-mini-low\": {\n\t\tmaxTokens: 100_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.1,\n\t\toutputPrice: 4.4,\n\t\tcacheReadsPrice: 0.55,\n\t\treasoningEffort: \"low\",\n\t\tsupportsTemperature: false,\n\t},\n\to1: {\n\t\tmaxTokens: 100_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 15,\n\t\toutputPrice: 60,\n\t\tcacheReadsPrice: 7.5,\n\t\tsupportsTemperature: false,\n\t},\n\t\"o1-preview\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 128_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 15,\n\t\toutputPrice: 60,\n\t\tcacheReadsPrice: 7.5,\n\t\tsupportsTemperature: false,\n\t},\n\t\"o1-mini\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 128_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.1,\n\t\toutputPrice: 4.4,\n\t\tcacheReadsPrice: 0.55,\n\t\tsupportsTemperature: false,\n\t},\n\t\"gpt-4o\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 128_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.5,\n\t\toutputPrice: 10,\n\t\tcacheReadsPrice: 1.25,\n\t\tsupportsTemperature: true,\n\t\ttiers: [\n\t\t\t{ name: \"priority\", contextWindow: 128_000, inputPrice: 4.25, outputPrice: 17.0, cacheReadsPrice: 2.125 },\n\t\t],\n\t},\n\t\"gpt-4o-mini\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 128_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 0.6,\n\t\tcacheReadsPrice: 0.075,\n\t\tsupportsTemperature: true,\n\t\ttiers: [\n\t\t\t{ name: \"priority\", contextWindow: 128_000, inputPrice: 0.25, outputPrice: 1.0, cacheReadsPrice: 0.125 },\n\t\t],\n\t},\n\t\"codex-mini-latest\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 1.5,\n\t\toutputPrice: 6,\n\t\tcacheReadsPrice: 0.375,\n\t\tsupportsTemperature: false,\n\t\tdescription:\n\t\t\t\"Codex Mini: Cloud-based software engineering agent powered by codex-1, a version of o3 optimized for coding tasks. Trained with reinforcement learning to generate human-style code, adhere to instructions, and iteratively run tests.\",\n\t},\n\t// Dated clones (snapshots) preserved for backward compatibility\n\t\"gpt-5-2025-08-07\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningEffort: [\"minimal\", \"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 1.25,\n\t\toutputPrice: 10.0,\n\t\tcacheReadsPrice: 0.125,\n\t\tsupportsVerbosity: true,\n\t\tsupportsTemperature: false,\n\t\ttiers: [\n\t\t\t{ name: \"flex\", contextWindow: 400000, inputPrice: 0.625, outputPrice: 5.0, cacheReadsPrice: 0.0625 },\n\t\t\t{ name: \"priority\", contextWindow: 400000, inputPrice: 2.5, outputPrice: 20.0, cacheReadsPrice: 0.25 },\n\t\t],\n\t\tdescription: \"GPT-5: The best model for coding and agentic tasks across domains\",\n\t},\n\t\"gpt-5-mini-2025-08-07\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningEffort: [\"minimal\", \"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 0.25,\n\t\toutputPrice: 2.0,\n\t\tcacheReadsPrice: 0.025,\n\t\tsupportsVerbosity: true,\n\t\tsupportsTemperature: false,\n\t\ttiers: [\n\t\t\t{ name: \"flex\", contextWindow: 400000, inputPrice: 0.125, outputPrice: 1.0, cacheReadsPrice: 0.0125 },\n\t\t\t{ name: \"priority\", contextWindow: 400000, inputPrice: 0.45, outputPrice: 3.6, cacheReadsPrice: 0.045 },\n\t\t],\n\t\tdescription: \"GPT-5 Mini: A faster, more cost-efficient version of GPT-5 for well-defined tasks\",\n\t},\n\t\"gpt-5-nano-2025-08-07\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningEffort: [\"minimal\", \"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 0.05,\n\t\toutputPrice: 0.4,\n\t\tcacheReadsPrice: 0.005,\n\t\tsupportsVerbosity: true,\n\t\tsupportsTemperature: false,\n\t\ttiers: [{ name: \"flex\", contextWindow: 400000, inputPrice: 0.025, outputPrice: 0.2, cacheReadsPrice: 0.0025 }],\n\t\tdescription: \"GPT-5 Nano: Fastest, most cost-efficient version of GPT-5\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const openAiModelInfoSaneDefaults: ModelInfo = {\n\tmaxTokens: -1,\n\tcontextWindow: 128_000,\n\tsupportsImages: true,\n\tsupportsPromptCache: false,\n\tinputPrice: 0,\n\toutputPrice: 0,\n\tsupportsNativeTools: true,\n}\n\n// https://learn.microsoft.com/en-us/azure/ai-services/openai/api-version-deprecation\n// https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#api-specs\nexport const azureOpenAiDefaultApiVersion = \"2024-08-01-preview\"\n\nexport const OPENAI_NATIVE_DEFAULT_TEMPERATURE = 0\n\nexport const OPENAI_AZURE_AI_INFERENCE_PATH = \"/models/chat/completions\"\n","import type { ModelInfo } from \"../model.js\"\n\n// https://openrouter.ai/models?order=newest&supported_parameters=tools\nexport const openRouterDefaultModelId = \"anthropic/claude-sonnet-4.5\"\n\nexport const openRouterDefaultModelInfo: ModelInfo = {\n\tmaxTokens: 8192,\n\tcontextWindow: 200_000,\n\tsupportsImages: true,\n\tsupportsPromptCache: true,\n\tsupportsNativeTools: true,\n\tinputPrice: 3.0,\n\toutputPrice: 15.0,\n\tcacheWritesPrice: 3.75,\n\tcacheReadsPrice: 0.3,\n\tdescription:\n\t\t\"Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and extended, step-by-step processing for complex tasks. The model demonstrates notable improvements in coding, particularly in front-end development and full-stack updates, and excels in agentic workflows, where it can autonomously navigate multi-step processes. Claude 3.7 Sonnet maintains performance parity with its predecessor in standard mode while offering an extended reasoning mode for enhanced accuracy in math, coding, and instruction-following tasks. Read more at the [blog post here](https://www.anthropic.com/news/claude-3-7-sonnet)\",\n}\n\nexport const OPENROUTER_DEFAULT_PROVIDER_NAME = \"[default]\"\n\nexport const OPEN_ROUTER_PROMPT_CACHING_MODELS = new Set([\n\t\"anthropic/claude-3-haiku\",\n\t\"anthropic/claude-3-haiku:beta\",\n\t\"anthropic/claude-3-opus\",\n\t\"anthropic/claude-3-opus:beta\",\n\t\"anthropic/claude-3-sonnet\",\n\t\"anthropic/claude-3-sonnet:beta\",\n\t\"anthropic/claude-3.5-haiku\",\n\t\"anthropic/claude-3.5-haiku-20241022\",\n\t\"anthropic/claude-3.5-haiku-20241022:beta\",\n\t\"anthropic/claude-3.5-haiku:beta\",\n\t\"anthropic/claude-3.5-sonnet\",\n\t\"anthropic/claude-3.5-sonnet-20240620\",\n\t\"anthropic/claude-3.5-sonnet-20240620:beta\",\n\t\"anthropic/claude-3.5-sonnet:beta\",\n\t\"anthropic/claude-3.7-sonnet\",\n\t\"anthropic/claude-3.7-sonnet:beta\",\n\t\"anthropic/claude-3.7-sonnet:thinking\",\n\t\"anthropic/claude-sonnet-4\",\n\t\"anthropic/claude-sonnet-4.5\",\n\t\"anthropic/claude-opus-4\",\n\t\"anthropic/claude-opus-4.1\",\n\t\"anthropic/claude-haiku-4.5\",\n\t\"anthropic/claude-opus-4.5\",\n\t\"google/gemini-2.5-flash-preview\",\n\t\"google/gemini-2.5-flash-preview:thinking\",\n\t\"google/gemini-2.5-flash-preview-05-20\",\n\t\"google/gemini-2.5-flash-preview-05-20:thinking\",\n\t\"google/gemini-2.5-flash\",\n\t\"google/gemini-2.5-flash-lite-preview-06-17\",\n\t\"google/gemini-2.0-flash-001\",\n\t\"google/gemini-flash-1.5\",\n\t\"google/gemini-flash-1.5-8b\",\n])\n\n// When we first launched these models we didn't have support for\n// enabling/disabling the reasoning budget for hybrid models. Now that we\n// do support this we should give users the option to enable/disable it\n// whenever possible. However these particular (virtual) model ids with the\n// `:thinking` suffix always require the reasoning budget to be enabled, so\n// for backwards compatibility we should still require it.\n// We should *not* be adding new models to this set.\nexport const OPEN_ROUTER_REQUIRED_REASONING_BUDGET_MODELS = new Set([\n\t\"anthropic/claude-3.7-sonnet:thinking\",\n\t\"google/gemini-2.5-pro\",\n\t\"google/gemini-2.5-flash-preview-05-20:thinking\",\n])\n\nexport const OPEN_ROUTER_REASONING_BUDGET_MODELS = new Set([\n\t\"anthropic/claude-3.7-sonnet:beta\",\n\t\"anthropic/claude-opus-4\",\n\t\"anthropic/claude-opus-4.1\",\n\t\"anthropic/claude-sonnet-4\",\n\t\"anthropic/claude-sonnet-4.5\",\n\t\"anthropic/claude-opus-4.5\",\n\t\"anthropic/claude-haiku-4.5\",\n\t\"google/gemini-2.5-pro-preview\",\n\t\"google/gemini-2.5-pro\",\n\t\"google/gemini-2.5-flash-preview-05-20\",\n\t\"google/gemini-2.5-flash\",\n\t\"google/gemini-2.5-flash-lite-preview-06-17\",\n\t// Also include the models that require the reasoning budget to be enabled\n\t// even though `OPEN_ROUTER_REQUIRED_REASONING_BUDGET_MODELS` takes precedence.\n\t\"anthropic/claude-3.7-sonnet:thinking\",\n\t\"google/gemini-2.5-flash-preview-05-20:thinking\",\n])\n","import type { ModelInfo } from \"../model.js\"\n\nexport type QwenCodeModelId = \"qwen3-coder-plus\" | \"qwen3-coder-flash\"\n\nexport const qwenCodeDefaultModelId: QwenCodeModelId = \"qwen3-coder-plus\"\n\nexport const qwenCodeModels = {\n\t\"qwen3-coder-plus\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 1_000_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"Qwen3 Coder Plus - High-performance coding model with 1M context window for large codebases\",\n\t},\n\t\"qwen3-coder-flash\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 1_000_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"Qwen3 Coder Flash - Fast coding model with 1M context window optimized for speed\",\n\t},\n} as const satisfies Record<QwenCodeModelId, ModelInfo>\n","import type { ModelInfo } from \"../model.js\"\n\n// Requesty\n// https://requesty.ai/router-2\nexport const requestyDefaultModelId = \"coding/claude-4-sonnet\"\n\nexport const requestyDefaultModelInfo: ModelInfo = {\n\tmaxTokens: 8192,\n\tcontextWindow: 200_000,\n\tsupportsImages: true,\n\tsupportsPromptCache: true,\n\tinputPrice: 3.0,\n\toutputPrice: 15.0,\n\tcacheWritesPrice: 3.75,\n\tcacheReadsPrice: 0.3,\n\tdescription:\n\t\t\"The best coding model, optimized by Requesty, and automatically routed to the fastest provider. Claude 4 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities.\",\n}\n","import { z } from \"zod\"\n\nimport type { ModelInfo } from \"../model.js\"\n\n/**\n * Roo Code Cloud is a dynamic provider - models are loaded from the /v1/models API endpoint.\n * Default model ID used as fallback when no model is specified.\n */\nexport const rooDefaultModelId = \"xai/grok-code-fast-1\"\n\n/**\n * Empty models object maintained for type compatibility.\n * All model data comes dynamically from the API.\n */\nexport const rooModels = {} as const satisfies Record<string, ModelInfo>\n\n/**\n * Roo Code Cloud API response schemas\n */\n\nexport const RooPricingSchema = z.object({\n\tinput: z.string(),\n\toutput: z.string(),\n\tinput_cache_read: z.string().optional(),\n\tinput_cache_write: z.string().optional(),\n})\n\nexport const RooModelSchema = z.object({\n\tid: z.string(),\n\tobject: z.literal(\"model\"),\n\tcreated: z.number(),\n\towned_by: z.string(),\n\tname: z.string(),\n\tdescription: z.string(),\n\tcontext_window: z.number(),\n\tmax_tokens: z.number(),\n\ttype: z.literal(\"language\"),\n\ttags: z.array(z.string()).optional(),\n\tpricing: RooPricingSchema,\n\tdeprecated: z.boolean().optional(),\n\tdefault_temperature: z.number().optional(),\n\t// Dynamic settings that map directly to ModelInfo properties\n\t// Allows the API to configure model-specific defaults like includedTools, excludedTools, reasoningEffort, etc.\n\t// These are always direct values (e.g., includedTools: ['search_replace']) for backward compatibility with old clients.\n\tsettings: z.record(z.string(), z.unknown()).optional(),\n\t// Versioned settings keyed by version number (e.g., '3.36.4').\n\t// Each version key maps to a settings object that is used when plugin version >= that version.\n\t// New clients find the highest version key <= current version and use those settings.\n\t// Old clients ignore this field and use plain values from `settings`.\n\t// Example: { '3.36.4': { includedTools: ['search_replace'] }, '3.35.0': { ... } }\n\tversionedSettings: z.record(z.string(), z.record(z.string(), z.unknown())).optional(),\n})\n\nexport const RooModelsResponseSchema = z.object({\n\tobject: z.literal(\"list\"),\n\tdata: z.array(RooModelSchema),\n})\n\nexport type RooModel = z.infer<typeof RooModelSchema>\nexport type RooModelsResponse = z.infer<typeof RooModelsResponseSchema>\n","import type { ModelInfo } from \"../model.js\"\n\n// https://docs.sambanova.ai/cloud/docs/get-started/supported-models\nexport type SambaNovaModelId =\n\t| \"Meta-Llama-3.1-8B-Instruct\"\n\t| \"Meta-Llama-3.3-70B-Instruct\"\n\t| \"DeepSeek-R1\"\n\t| \"DeepSeek-V3-0324\"\n\t| \"DeepSeek-V3.1\"\n\t| \"DeepSeek-R1-Distill-Llama-70B\"\n\t| \"Llama-4-Maverick-17B-128E-Instruct\"\n\t| \"Llama-3.3-Swallow-70B-Instruct-v0.4\"\n\t| \"Qwen3-32B\"\n\t| \"gpt-oss-120b\"\n\nexport const sambaNovaDefaultModelId: SambaNovaModelId = \"Meta-Llama-3.3-70B-Instruct\"\n\nexport const sambaNovaModels = {\n\t\"Meta-Llama-3.1-8B-Instruct\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 16384,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.2,\n\t\tdescription: \"Meta Llama 3.1 8B Instruct model with 16K context window.\",\n\t},\n\t\"Meta-Llama-3.3-70B-Instruct\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 1.2,\n\t\tdescription: \"Meta Llama 3.3 70B Instruct model with 128K context window.\",\n\t},\n\t\"DeepSeek-R1\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 32768,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsReasoningBudget: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 5.0,\n\t\toutputPrice: 7.0,\n\t\tdescription: \"DeepSeek R1 reasoning model with 32K context window.\",\n\t},\n\t\"DeepSeek-V3-0324\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 32768,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 4.5,\n\t\tdescription: \"DeepSeek V3 model with 32K context window.\",\n\t},\n\t\"DeepSeek-V3.1\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 32768,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 4.5,\n\t\tdescription: \"DeepSeek V3.1 model with 32K context window.\",\n\t},\n\t\"DeepSeek-R1-Distill-Llama-70B\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.7,\n\t\toutputPrice: 1.4,\n\t\tdescription: \"DeepSeek R1 distilled Llama 70B model with 128K context window.\",\n\t},\n\t\"Llama-4-Maverick-17B-128E-Instruct\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.63,\n\t\toutputPrice: 1.8,\n\t\tdescription: \"Meta Llama 4 Maverick 17B 128E Instruct model with 128K context window.\",\n\t},\n\t\"Llama-3.3-Swallow-70B-Instruct-v0.4\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 16384,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 1.2,\n\t\tdescription: \"Tokyotech Llama 3.3 Swallow 70B Instruct v0.4 model with 16K context window.\",\n\t},\n\t\"Qwen3-32B\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 8192,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.4,\n\t\toutputPrice: 0.8,\n\t\tdescription: \"Alibaba Qwen 3 32B model with 8K context window.\",\n\t},\n\t\"gpt-oss-120b\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.22,\n\t\toutputPrice: 0.59,\n\t\tdescription: \"OpenAI gpt oss 120b model with 128k context window.\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n","import type { ModelInfo } from \"../model.js\"\n\nexport const unboundDefaultModelId = \"anthropic/claude-sonnet-4-5\"\n\nexport const unboundDefaultModelInfo: ModelInfo = {\n\tmaxTokens: 8192,\n\tcontextWindow: 200_000,\n\tsupportsImages: true,\n\tsupportsPromptCache: true,\n\tsupportsNativeTools: true,\n\tinputPrice: 3.0,\n\toutputPrice: 15.0,\n\tcacheWritesPrice: 3.75,\n\tcacheReadsPrice: 0.3,\n}\n","import type { ModelInfo } from \"../model.js\"\n\n// https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-claude\nexport type VertexModelId = keyof typeof vertexModels\n\nexport const vertexDefaultModelId: VertexModelId = \"claude-sonnet-4-5@20250929\"\n\nexport const vertexModels = {\n\t\"gemini-3-pro-preview\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningEffort: [\"low\", \"high\"],\n\t\treasoningEffort: \"low\",\n\t\tsupportsTemperature: true,\n\t\tdefaultTemperature: 1,\n\t\tinputPrice: 4.0,\n\t\toutputPrice: 18.0,\n\t\ttiers: [\n\t\t\t{\n\t\t\t\tcontextWindow: 200_000,\n\t\t\t\tinputPrice: 2.0,\n\t\t\t\toutputPrice: 12.0,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcontextWindow: Infinity,\n\t\t\t\tinputPrice: 4.0,\n\t\t\t\toutputPrice: 18.0,\n\t\t\t},\n\t\t],\n\t},\n\t\"gemini-2.5-flash-preview-05-20:thinking\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 3.5,\n\t\tmaxThinkingTokens: 24_576,\n\t\tsupportsReasoningBudget: true,\n\t\trequiredReasoningBudget: true,\n\t},\n\t\"gemini-2.5-flash-preview-05-20\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 0.6,\n\t},\n\t\"gemini-2.5-flash\": {\n\t\tmaxTokens: 64_000,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 2.5,\n\t\tcacheReadsPrice: 0.075,\n\t\tcacheWritesPrice: 1.0,\n\t\tmaxThinkingTokens: 24_576,\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"gemini-2.5-flash-preview-04-17:thinking\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 3.5,\n\t\tmaxThinkingTokens: 24_576,\n\t\tsupportsReasoningBudget: true,\n\t\trequiredReasoningBudget: true,\n\t},\n\t\"gemini-2.5-flash-preview-04-17\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 0.6,\n\t},\n\t\"gemini-2.5-pro-preview-03-25\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.5,\n\t\toutputPrice: 15,\n\t},\n\t\"gemini-2.5-pro-preview-05-06\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.5,\n\t\toutputPrice: 15,\n\t},\n\t\"gemini-2.5-pro-preview-06-05\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.5,\n\t\toutputPrice: 15,\n\t\tmaxThinkingTokens: 32_768,\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"gemini-2.5-pro\": {\n\t\tmaxTokens: 64_000,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.5,\n\t\toutputPrice: 15,\n\t\tmaxThinkingTokens: 32_768,\n\t\tsupportsReasoningBudget: true,\n\t\trequiredReasoningBudget: true,\n\t\ttiers: [\n\t\t\t{\n\t\t\t\tcontextWindow: 200_000,\n\t\t\t\tinputPrice: 1.25,\n\t\t\t\toutputPrice: 10,\n\t\t\t\tcacheReadsPrice: 0.31,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcontextWindow: Infinity,\n\t\t\t\tinputPrice: 2.5,\n\t\t\t\toutputPrice: 15,\n\t\t\t\tcacheReadsPrice: 0.625,\n\t\t\t},\n\t\t],\n\t},\n\t\"gemini-2.5-pro-exp-03-25\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t},\n\t\"gemini-2.0-pro-exp-02-05\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 2_097_152,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t},\n\t\"gemini-2.0-flash-001\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 0.6,\n\t},\n\t\"gemini-2.0-flash-lite-001\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.075,\n\t\toutputPrice: 0.3,\n\t},\n\t\"gemini-2.0-flash-thinking-exp-01-21\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 32_768,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t},\n\t\"gemini-1.5-flash-002\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.075,\n\t\toutputPrice: 0.3,\n\t},\n\t\"gemini-1.5-pro-002\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 2_097_152,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 1.25,\n\t\toutputPrice: 5,\n\t},\n\t\"claude-sonnet-4@20250514\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 3.75,\n\t\tcacheReadsPrice: 0.3,\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"claude-sonnet-4-5@20250929\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 3.75,\n\t\tcacheReadsPrice: 0.3,\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"claude-haiku-4-5@20251001\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.0,\n\t\toutputPrice: 5.0,\n\t\tcacheWritesPrice: 1.25,\n\t\tcacheReadsPrice: 0.1,\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"claude-opus-4-5@20251101\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 5.0,\n\t\toutputPrice: 25.0,\n\t\tcacheWritesPrice: 6.25,\n\t\tcacheReadsPrice: 0.5,\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"claude-opus-4-1@20250805\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 15.0,\n\t\toutputPrice: 75.0,\n\t\tcacheWritesPrice: 18.75,\n\t\tcacheReadsPrice: 1.5,\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"claude-opus-4@20250514\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 15.0,\n\t\toutputPrice: 75.0,\n\t\tcacheWritesPrice: 18.75,\n\t\tcacheReadsPrice: 1.5,\n\t},\n\t\"claude-3-7-sonnet@20250219:thinking\": {\n\t\tmaxTokens: 64_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 3.75,\n\t\tcacheReadsPrice: 0.3,\n\t\tsupportsReasoningBudget: true,\n\t\trequiredReasoningBudget: true,\n\t},\n\t\"claude-3-7-sonnet@20250219\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 3.75,\n\t\tcacheReadsPrice: 0.3,\n\t},\n\t\"claude-3-5-sonnet-v2@20241022\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 3.75,\n\t\tcacheReadsPrice: 0.3,\n\t},\n\t\"claude-3-5-sonnet@20240620\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 3.75,\n\t\tcacheReadsPrice: 0.3,\n\t},\n\t\"claude-3-5-haiku@20241022\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.0,\n\t\toutputPrice: 5.0,\n\t\tcacheWritesPrice: 1.25,\n\t\tcacheReadsPrice: 0.1,\n\t},\n\t\"claude-3-opus@20240229\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 15.0,\n\t\toutputPrice: 75.0,\n\t\tcacheWritesPrice: 18.75,\n\t\tcacheReadsPrice: 1.5,\n\t},\n\t\"claude-3-haiku@20240307\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.25,\n\t\toutputPrice: 1.25,\n\t\tcacheWritesPrice: 0.3,\n\t\tcacheReadsPrice: 0.03,\n\t},\n\t\"gemini-2.5-flash-lite-preview-06-17\": {\n\t\tmaxTokens: 64_000,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.4,\n\t\tcacheReadsPrice: 0.025,\n\t\tcacheWritesPrice: 1.0,\n\t\tmaxThinkingTokens: 24_576,\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"llama-4-maverick-17b-128e-instruct-maas\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.35,\n\t\toutputPrice: 1.15,\n\t\tdescription: \"Meta Llama 4 Maverick 17B Instruct model, 128K context.\",\n\t},\n\t\"deepseek-r1-0528-maas\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 163_840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 1.35,\n\t\toutputPrice: 5.4,\n\t\tdescription: \"DeepSeek R1 (0528). Available in us-central1\",\n\t},\n\t\"deepseek-v3.1-maas\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 163_840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 1.7,\n\t\tdescription: \"DeepSeek V3.1. Available in us-west2\",\n\t},\n\t\"gpt-oss-120b-maas\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 0.6,\n\t\tdescription: \"OpenAI gpt-oss 120B. Available in us-central1\",\n\t},\n\t\"gpt-oss-20b-maas\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.075,\n\t\toutputPrice: 0.3,\n\t\tdescription: \"OpenAI gpt-oss 20B. Available in us-central1\",\n\t},\n\t\"qwen3-coder-480b-a35b-instruct-maas\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 262_144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 1.0,\n\t\toutputPrice: 4.0,\n\t\tdescription: \"Qwen3 Coder 480B A35B Instruct. Available in us-south1\",\n\t},\n\t\"qwen3-235b-a22b-instruct-2507-maas\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 262_144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.25,\n\t\toutputPrice: 1.0,\n\t\tdescription: \"Qwen3 235B A22B Instruct. Available in us-south1\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const VERTEX_REGIONS = [\n\t{ value: \"global\", label: \"global\" },\n\t{ value: \"us-central1\", label: \"us-central1\" },\n\t{ value: \"us-east1\", label: \"us-east1\" },\n\t{ value: \"us-east4\", label: \"us-east4\" },\n\t{ value: \"us-east5\", label: \"us-east5\" },\n\t{ value: \"us-south1\", label: \"us-south1\" },\n\t{ value: \"us-west1\", label: \"us-west1\" },\n\t{ value: \"us-west2\", label: \"us-west2\" },\n\t{ value: \"us-west3\", label: \"us-west3\" },\n\t{ value: \"us-west4\", label: \"us-west4\" },\n\t{ value: \"northamerica-northeast1\", label: \"northamerica-northeast1\" },\n\t{ value: \"northamerica-northeast2\", label: \"northamerica-northeast2\" },\n\t{ value: \"southamerica-east1\", label: \"southamerica-east1\" },\n\t{ value: \"europe-west1\", label: \"europe-west1\" },\n\t{ value: \"europe-west2\", label: \"europe-west2\" },\n\t{ value: \"europe-west3\", label: \"europe-west3\" },\n\t{ value: \"europe-west4\", label: \"europe-west4\" },\n\t{ value: \"europe-west6\", label: \"europe-west6\" },\n\t{ value: \"europe-central2\", label: \"europe-central2\" },\n\t{ value: \"asia-east1\", label: \"asia-east1\" },\n\t{ value: \"asia-east2\", label: \"asia-east2\" },\n\t{ value: \"asia-northeast1\", label: \"asia-northeast1\" },\n\t{ value: \"asia-northeast2\", label: \"asia-northeast2\" },\n\t{ value: \"asia-northeast3\", label: \"asia-northeast3\" },\n\t{ value: \"asia-south1\", label: \"asia-south1\" },\n\t{ value: \"asia-south2\", label: \"asia-south2\" },\n\t{ value: \"asia-southeast1\", label: \"asia-southeast1\" },\n\t{ value: \"asia-southeast2\", label: \"asia-southeast2\" },\n\t{ value: \"australia-southeast1\", label: \"australia-southeast1\" },\n\t{ value: \"australia-southeast2\", label: \"australia-southeast2\" },\n\t{ value: \"me-west1\", label: \"me-west1\" },\n\t{ value: \"me-central1\", label: \"me-central1\" },\n\t{ value: \"africa-south1\", label: \"africa-south1\" },\n]\n","import type { ModelInfo } from \"../model.js\"\n\nexport type VscodeLlmModelId = keyof typeof vscodeLlmModels\n\nexport const vscodeLlmDefaultModelId: VscodeLlmModelId = \"claude-3.5-sonnet\"\n\n// https://docs.cline.bot/provider-config/vscode-language-model-api\nexport const vscodeLlmModels = {\n\t\"gpt-3.5-turbo\": {\n\t\tcontextWindow: 12114,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"gpt-3.5-turbo\",\n\t\tversion: \"gpt-3.5-turbo-0613\",\n\t\tname: \"GPT 3.5 Turbo\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 12114,\n\t},\n\t\"gpt-4o-mini\": {\n\t\tcontextWindow: 12115,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"gpt-4o-mini\",\n\t\tversion: \"gpt-4o-mini-2024-07-18\",\n\t\tname: \"GPT-4o mini\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 12115,\n\t},\n\t\"gpt-4\": {\n\t\tcontextWindow: 28501,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"gpt-4\",\n\t\tversion: \"gpt-4-0613\",\n\t\tname: \"GPT 4\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 28501,\n\t},\n\t\"gpt-4-0125-preview\": {\n\t\tcontextWindow: 63826,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"gpt-4-turbo\",\n\t\tversion: \"gpt-4-0125-preview\",\n\t\tname: \"GPT 4 Turbo\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 63826,\n\t},\n\t\"gpt-4o\": {\n\t\tcontextWindow: 63827,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"gpt-4o\",\n\t\tversion: \"gpt-4o-2024-11-20\",\n\t\tname: \"GPT-4o\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 63827,\n\t},\n\to1: {\n\t\tcontextWindow: 19827,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"o1-ga\",\n\t\tversion: \"o1-2024-12-17\",\n\t\tname: \"o1 (Preview)\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 19827,\n\t},\n\t\"o3-mini\": {\n\t\tcontextWindow: 63827,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"o3-mini\",\n\t\tversion: \"o3-mini-2025-01-31\",\n\t\tname: \"o3-mini\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 63827,\n\t},\n\t\"claude-3.5-sonnet\": {\n\t\tcontextWindow: 81638,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"claude-3.5-sonnet\",\n\t\tversion: \"claude-3.5-sonnet\",\n\t\tname: \"Claude 3.5 Sonnet\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 81638,\n\t},\n\t\"claude-4-sonnet\": {\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"claude-sonnet-4\",\n\t\tversion: \"claude-sonnet-4\",\n\t\tname: \"Claude Sonnet 4\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 111836,\n\t},\n\t\"gemini-2.0-flash-001\": {\n\t\tcontextWindow: 127827,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"gemini-2.0-flash\",\n\t\tversion: \"gemini-2.0-flash-001\",\n\t\tname: \"Gemini 2.0 Flash\",\n\t\tsupportsToolCalling: false,\n\t\tmaxInputTokens: 127827,\n\t},\n\t\"gemini-2.5-pro\": {\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"gemini-2.5-pro\",\n\t\tversion: \"gemini-2.5-pro-preview-03-25\",\n\t\tname: \"Gemini 2.5 Pro (Preview)\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 108637,\n\t},\n\t\"o4-mini\": {\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"o4-mini\",\n\t\tversion: \"o4-mini-2025-04-16\",\n\t\tname: \"o4-mini (Preview)\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 111452,\n\t},\n\t\"gpt-4.1\": {\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"gpt-4.1\",\n\t\tversion: \"gpt-4.1-2025-04-14\",\n\t\tname: \"GPT-4.1 (Preview)\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 111452,\n\t},\n\t\"gpt-5-mini\": {\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"gpt-5-mini\",\n\t\tversion: \"gpt-5-mini\",\n\t\tname: \"GPT-5 mini (Preview)\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 108637,\n\t},\n\t\"gpt-5\": {\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"gpt-5\",\n\t\tversion: \"gpt-5\",\n\t\tname: \"GPT-5 (Preview)\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 108637,\n\t},\n} as const satisfies Record<\n\tstring,\n\tModelInfo & {\n\t\tfamily: string\n\t\tversion: string\n\t\tname: string\n\t\tsupportsToolCalling: boolean\n\t\tmaxInputTokens: number\n\t}\n>\n","import type { ModelInfo } from \"../model.js\"\n\n// https://docs.x.ai/docs/api-reference\nexport type XAIModelId = keyof typeof xaiModels\n\nexport const xaiDefaultModelId: XAIModelId = \"grok-code-fast-1\"\n\nexport const xaiModels = {\n\t\"grok-code-fast-1\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 256_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.2,\n\t\toutputPrice: 1.5,\n\t\tcacheWritesPrice: 0.02,\n\t\tcacheReadsPrice: 0.02,\n\t\tdescription: \"xAI's Grok Code Fast model with 256K context window\",\n\t\tincludedTools: [\"search_replace\"],\n\t\texcludedTools: [\"apply_diff\"],\n\t},\n\t\"grok-4-1-fast-reasoning\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 2_000_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.2,\n\t\toutputPrice: 0.5,\n\t\tcacheWritesPrice: 0.05,\n\t\tcacheReadsPrice: 0.05,\n\t\tdescription:\n\t\t\t\"xAI's Grok 4.1 Fast model with 2M context window, optimized for high-performance agentic tool calling with reasoning\",\n\t\tincludedTools: [\"search_replace\"],\n\t\texcludedTools: [\"apply_diff\"],\n\t},\n\t\"grok-4-1-fast-non-reasoning\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 2_000_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.2,\n\t\toutputPrice: 0.5,\n\t\tcacheWritesPrice: 0.05,\n\t\tcacheReadsPrice: 0.05,\n\t\tdescription:\n\t\t\t\"xAI's Grok 4.1 Fast model with 2M context window, optimized for high-performance agentic tool calling\",\n\t\tincludedTools: [\"search_replace\"],\n\t\texcludedTools: [\"apply_diff\"],\n\t},\n\t\"grok-4-fast-reasoning\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 2_000_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.2,\n\t\toutputPrice: 0.5,\n\t\tcacheWritesPrice: 0.05,\n\t\tcacheReadsPrice: 0.05,\n\t\tdescription:\n\t\t\t\"xAI's Grok 4 Fast model with 2M context window, optimized for high-performance agentic tool calling with reasoning\",\n\t\tincludedTools: [\"search_replace\"],\n\t\texcludedTools: [\"apply_diff\"],\n\t},\n\t\"grok-4-fast-non-reasoning\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 2_000_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.2,\n\t\toutputPrice: 0.5,\n\t\tcacheWritesPrice: 0.05,\n\t\tcacheReadsPrice: 0.05,\n\t\tdescription:\n\t\t\t\"xAI's Grok 4 Fast model with 2M context window, optimized for high-performance agentic tool calling\",\n\t\tincludedTools: [\"search_replace\"],\n\t\texcludedTools: [\"apply_diff\"],\n\t},\n\t\"grok-4-0709\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 256_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 0.75,\n\t\tcacheReadsPrice: 0.75,\n\t\tdescription: \"xAI's Grok-4 model with 256K context window\",\n\t\tincludedTools: [\"search_replace\"],\n\t\texcludedTools: [\"apply_diff\"],\n\t},\n\t\"grok-3-mini\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 0.5,\n\t\tcacheWritesPrice: 0.07,\n\t\tcacheReadsPrice: 0.07,\n\t\tdescription: \"xAI's Grok-3 mini model with 128K context window\",\n\t\tsupportsReasoningEffort: [\"low\", \"high\"],\n\t\treasoningEffort: \"low\",\n\t\tincludedTools: [\"search_replace\"],\n\t\texcludedTools: [\"apply_diff\"],\n\t},\n\t\"grok-3\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 0.75,\n\t\tcacheReadsPrice: 0.75,\n\t\tdescription: \"xAI's Grok-3 model with 128K context window\",\n\t\tincludedTools: [\"search_replace\"],\n\t\texcludedTools: [\"apply_diff\"],\n\t},\n} as const satisfies Record<string, ModelInfo>\n","import type { ModelInfo } from \"../model.js\"\n\n// https://ai-gateway.vercel.sh/v1/\nexport const vercelAiGatewayDefaultModelId = \"anthropic/claude-sonnet-4\"\n\nexport const VERCEL_AI_GATEWAY_PROMPT_CACHING_MODELS = new Set([\n\t\"anthropic/claude-3-haiku\",\n\t\"anthropic/claude-3-opus\",\n\t\"anthropic/claude-3.5-haiku\",\n\t\"anthropic/claude-3.5-sonnet\",\n\t\"anthropic/claude-3.7-sonnet\",\n\t\"anthropic/claude-opus-4\",\n\t\"anthropic/claude-opus-4.1\",\n\t\"anthropic/claude-sonnet-4\",\n\t\"openai/gpt-4.1\",\n\t\"openai/gpt-4.1-mini\",\n\t\"openai/gpt-4.1-nano\",\n\t\"openai/gpt-4o\",\n\t\"openai/gpt-4o-mini\",\n\t\"openai/gpt-5\",\n\t\"openai/gpt-5-mini\",\n\t\"openai/gpt-5-nano\",\n\t\"openai/o1\",\n\t\"openai/o3\",\n\t\"openai/o3-mini\",\n\t\"openai/o4-mini\",\n])\n\nexport const VERCEL_AI_GATEWAY_VISION_ONLY_MODELS = new Set([\n\t\"alibaba/qwen-3-14b\",\n\t\"alibaba/qwen-3-235b\",\n\t\"alibaba/qwen-3-30b\",\n\t\"alibaba/qwen-3-32b\",\n\t\"alibaba/qwen3-coder\",\n\t\"amazon/nova-pro\",\n\t\"anthropic/claude-3.5-haiku\",\n\t\"google/gemini-1.5-flash-8b\",\n\t\"google/gemini-2.0-flash-thinking\",\n\t\"google/gemma-3-27b\",\n\t\"mistral/devstral-small\",\n\t\"xai/grok-vision-beta\",\n])\n\nexport const VERCEL_AI_GATEWAY_VISION_AND_TOOLS_MODELS = new Set([\n\t\"amazon/nova-lite\",\n\t\"anthropic/claude-3-haiku\",\n\t\"anthropic/claude-3-opus\",\n\t\"anthropic/claude-3-sonnet\",\n\t\"anthropic/claude-3.5-sonnet\",\n\t\"anthropic/claude-3.7-sonnet\",\n\t\"anthropic/claude-opus-4\",\n\t\"anthropic/claude-opus-4.1\",\n\t\"anthropic/claude-sonnet-4\",\n\t\"google/gemini-1.5-flash\",\n\t\"google/gemini-1.5-pro\",\n\t\"google/gemini-2.0-flash\",\n\t\"google/gemini-2.0-flash-lite\",\n\t\"google/gemini-2.0-pro\",\n\t\"google/gemini-2.5-flash\",\n\t\"google/gemini-2.5-flash-lite\",\n\t\"google/gemini-2.5-pro\",\n\t\"google/gemini-exp\",\n\t\"meta/llama-3.2-11b\",\n\t\"meta/llama-3.2-90b\",\n\t\"meta/llama-3.3\",\n\t\"meta/llama-4-maverick\",\n\t\"meta/llama-4-scout\",\n\t\"mistral/pixtral-12b\",\n\t\"mistral/pixtral-large\",\n\t\"moonshotai/kimi-k2\",\n\t\"openai/gpt-4-turbo\",\n\t\"openai/gpt-4.1\",\n\t\"openai/gpt-4.1-mini\",\n\t\"openai/gpt-4.1-nano\",\n\t\"openai/gpt-4.5-preview\",\n\t\"openai/gpt-4o\",\n\t\"openai/gpt-4o-mini\",\n\t\"openai/gpt-oss-120b\",\n\t\"openai/gpt-oss-20b\",\n\t\"openai/o3\",\n\t\"openai/o3-pro\",\n\t\"openai/o4-mini\",\n\t\"vercel/v0-1.0-md\",\n\t\"xai/grok-2-vision\",\n\t\"zai/glm-4.5v\",\n])\n\nexport const vercelAiGatewayDefaultModelInfo: ModelInfo = {\n\tmaxTokens: 64000,\n\tcontextWindow: 200000,\n\tsupportsImages: true,\n\tsupportsPromptCache: true,\n\tinputPrice: 3,\n\toutputPrice: 15,\n\tcacheWritesPrice: 3.75,\n\tcacheReadsPrice: 0.3,\n\tdescription:\n\t\t\"Claude Sonnet 4 significantly improves on Sonnet 3.7's industry-leading capabilities, excelling in coding with a state-of-the-art 72.7% on SWE-bench. The model balances performance and efficiency for internal and external use cases, with enhanced steerability for greater control over implementations. While not matching Opus 4 in most domains, it delivers an optimal mix of capability and practicality.\",\n}\n\nexport const VERCEL_AI_GATEWAY_DEFAULT_TEMPERATURE = 0.7\n","import type { ModelInfo } from \"../model.js\"\nimport { ZaiApiLine } from \"../provider-settings.js\"\n\n// Z AI\n// https://docs.z.ai/guides/llm/glm-4-32b-0414-128k\n// https://docs.z.ai/guides/llm/glm-4.5\n// https://docs.z.ai/guides/llm/glm-4.6\n// https://docs.z.ai/guides/overview/pricing\n// https://bigmodel.cn/pricing\n\nexport type InternationalZAiModelId = keyof typeof internationalZAiModels\nexport const internationalZAiDefaultModelId: InternationalZAiModelId = \"glm-4.6\"\nexport const internationalZAiModels = {\n\t\"glm-4.5\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 2.2,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.11,\n\t\tdescription:\n\t\t\t\"GLM-4.5 is Zhipu's latest featured model. Its comprehensive capabilities in reasoning, coding, and agent reach the state-of-the-art (SOTA) level among open-source models, with a context length of up to 128k.\",\n\t},\n\t\"glm-4.5-air\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.2,\n\t\toutputPrice: 1.1,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.03,\n\t\tdescription:\n\t\t\t\"GLM-4.5-Air is the lightweight version of GLM-4.5. It balances performance and cost-effectiveness, and can flexibly switch to hybrid thinking models.\",\n\t},\n\t\"glm-4.5-x\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 2.2,\n\t\toutputPrice: 8.9,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.45,\n\t\tdescription:\n\t\t\t\"GLM-4.5-X is a high-performance variant optimized for strong reasoning with ultra-fast responses.\",\n\t},\n\t\"glm-4.5-airx\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 1.1,\n\t\toutputPrice: 4.5,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.22,\n\t\tdescription: \"GLM-4.5-AirX is a lightweight, ultra-fast variant delivering strong performance with lower cost.\",\n\t},\n\t\"glm-4.5-flash\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"GLM-4.5-Flash is a free, high-speed model excellent for reasoning, coding, and agentic tasks.\",\n\t},\n\t\"glm-4.5v\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 1.8,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.11,\n\t\tdescription:\n\t\t\t\"GLM-4.5V is Z.AI's multimodal visual reasoning model (image/video/text/file input), optimized for GUI tasks, grounding, and document/video understanding.\",\n\t},\n\t\"glm-4.6\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 2.2,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.11,\n\t\tdescription:\n\t\t\t\"GLM-4.6 is Zhipu's newest model with an extended context window of up to 200k tokens, providing enhanced capabilities for processing longer documents and conversations.\",\n\t},\n\t\"glm-4-32b-0414-128k\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.1,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"GLM-4-32B is a 32 billion parameter model with 128k context length, optimized for efficiency.\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport type MainlandZAiModelId = keyof typeof mainlandZAiModels\nexport const mainlandZAiDefaultModelId: MainlandZAiModelId = \"glm-4.6\"\nexport const mainlandZAiModels = {\n\t\"glm-4.5\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.29,\n\t\toutputPrice: 1.14,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.057,\n\t\tdescription:\n\t\t\t\"GLM-4.5 is Zhipu's latest featured model. Its comprehensive capabilities in reasoning, coding, and agent reach the state-of-the-art (SOTA) level among open-source models, with a context length of up to 128k.\",\n\t},\n\t\"glm-4.5-air\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.6,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.02,\n\t\tdescription:\n\t\t\t\"GLM-4.5-Air is the lightweight version of GLM-4.5. It balances performance and cost-effectiveness, and can flexibly switch to hybrid thinking models.\",\n\t},\n\t\"glm-4.5-x\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.29,\n\t\toutputPrice: 1.14,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.057,\n\t\tdescription:\n\t\t\t\"GLM-4.5-X is a high-performance variant optimized for strong reasoning with ultra-fast responses.\",\n\t},\n\t\"glm-4.5-airx\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.6,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.02,\n\t\tdescription: \"GLM-4.5-AirX is a lightweight, ultra-fast variant delivering strong performance with lower cost.\",\n\t},\n\t\"glm-4.5-flash\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"GLM-4.5-Flash is a free, high-speed model excellent for reasoning, coding, and agentic tasks.\",\n\t},\n\t\"glm-4.5v\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.29,\n\t\toutputPrice: 0.93,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.057,\n\t\tdescription:\n\t\t\t\"GLM-4.5V is Z.AI's multimodal visual reasoning model (image/video/text/file input), optimized for GUI tasks, grounding, and document/video understanding.\",\n\t},\n\t\"glm-4.6\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 204_800,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.29,\n\t\toutputPrice: 1.14,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.057,\n\t\tdescription:\n\t\t\t\"GLM-4.6 is Zhipu's newest model with an extended context window of up to 200k tokens, providing enhanced capabilities for processing longer documents and conversations.\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const ZAI_DEFAULT_TEMPERATURE = 0.6\n\nexport const zaiApiLineConfigs = {\n\tinternational_coding: {\n\t\tname: \"International Coding\",\n\t\tbaseUrl: \"https://api.z.ai/api/coding/paas/v4\",\n\t\tisChina: false,\n\t},\n\tchina_coding: {\n\t\tname: \"China Coding\",\n\t\tbaseUrl: \"https://open.bigmodel.cn/api/coding/paas/v4\",\n\t\tisChina: true,\n\t},\n\tinternational_api: {\n\t\tname: \"International API\",\n\t\tbaseUrl: \"https://api.z.ai/api/paas/v4\",\n\t\tisChina: false,\n\t},\n\tchina_api: {\n\t\tname: \"China API\",\n\t\tbaseUrl: \"https://open.bigmodel.cn/api/paas/v4\",\n\t\tisChina: true,\n\t},\n} satisfies Record<ZaiApiLine, { name: string; baseUrl: string; isChina: boolean }>\n","import type { ModelInfo } from \"../model.js\"\n\n// Default fallback values for DeepInfra when model metadata is not yet loaded.\nexport const deepInfraDefaultModelId = \"Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo\"\n\nexport const deepInfraDefaultModelInfo: ModelInfo = {\n\tmaxTokens: 16384,\n\tcontextWindow: 262144,\n\tsupportsImages: false,\n\tsupportsPromptCache: false,\n\tsupportsNativeTools: true,\n\tinputPrice: 0.3,\n\toutputPrice: 1.2,\n\tdescription: \"Qwen 3 Coder 480B A35B Instruct Turbo model, 256K context.\",\n}\n","import type { ModelInfo } from \"../model.js\"\n\n// Minimax\n// https://platform.minimax.io/docs/guides/pricing\n// https://platform.minimax.io/docs/api-reference/text-openai-api\n// https://platform.minimax.io/docs/api-reference/text-anthropic-api\nexport type MinimaxModelId = keyof typeof minimaxModels\nexport const minimaxDefaultModelId: MinimaxModelId = \"MiniMax-M2\"\n\nexport const minimaxModels = {\n\t\"MiniMax-M2\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 192_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tpreserveReasoning: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 1.2,\n\t\tcacheWritesPrice: 0.375,\n\t\tcacheReadsPrice: 0.03,\n\t\tdescription:\n\t\t\t\"MiniMax M2, a model born for Agents and code, featuring Top-tier Coding Capabilities, Powerful Agentic Performance, and Ultimate Cost-Effectiveness & Speed.\",\n\t},\n\t\"MiniMax-M2-Stable\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 192_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tpreserveReasoning: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 1.2,\n\t\tcacheWritesPrice: 0.375,\n\t\tcacheReadsPrice: 0.03,\n\t\tdescription:\n\t\t\t\"MiniMax M2 Stable (High Concurrency, Commercial Use), a model born for Agents and code, featuring Top-tier Coding Capabilities, Powerful Agentic Performance, and Ultimate Cost-Effectiveness & Speed.\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const minimaxDefaultModelInfo: ModelInfo = minimaxModels[minimaxDefaultModelId]\n\nexport const MINIMAX_DEFAULT_MAX_TOKENS = 16_384\nexport const MINIMAX_DEFAULT_TEMPERATURE = 1.0\n","export * from \"./anthropic.js\"\nexport * from \"./baseten.js\"\nexport * from \"./bedrock.js\"\nexport * from \"./cerebras.js\"\nexport * from \"./chutes.js\"\nexport * from \"./claude-code.js\"\nexport * from \"./deepseek.js\"\nexport * from \"./doubao.js\"\nexport * from \"./featherless.js\"\nexport * from \"./fireworks.js\"\nexport * from \"./gemini.js\"\nexport * from \"./groq.js\"\nexport * from \"./huggingface.js\"\nexport * from \"./io-intelligence.js\"\nexport * from \"./lite-llm.js\"\nexport * from \"./lm-studio.js\"\nexport * from \"./mistral.js\"\nexport * from \"./moonshot.js\"\nexport * from \"./ollama.js\"\nexport * from \"./openai.js\"\nexport * from \"./openrouter.js\"\nexport * from \"./qwen-code.js\"\nexport * from \"./requesty.js\"\nexport * from \"./roo.js\"\nexport * from \"./sambanova.js\"\nexport * from \"./unbound.js\"\nexport * from \"./vertex.js\"\nexport * from \"./vscode-llm.js\"\nexport * from \"./xai.js\"\nexport * from \"./vercel-ai-gateway.js\"\nexport * from \"./zai.js\"\nexport * from \"./deepinfra.js\"\nexport * from \"./minimax.js\"\n\nimport { anthropicDefaultModelId } from \"./anthropic.js\"\nimport { basetenDefaultModelId } from \"./baseten.js\"\nimport { bedrockDefaultModelId } from \"./bedrock.js\"\nimport { cerebrasDefaultModelId } from \"./cerebras.js\"\nimport { chutesDefaultModelId } from \"./chutes.js\"\nimport { claudeCodeDefaultModelId } from \"./claude-code.js\"\nimport { deepSeekDefaultModelId } from \"./deepseek.js\"\nimport { doubaoDefaultModelId } from \"./doubao.js\"\nimport { featherlessDefaultModelId } from \"./featherless.js\"\nimport { fireworksDefaultModelId } from \"./fireworks.js\"\nimport { geminiDefaultModelId } from \"./gemini.js\"\nimport { groqDefaultModelId } from \"./groq.js\"\nimport { ioIntelligenceDefaultModelId } from \"./io-intelligence.js\"\nimport { litellmDefaultModelId } from \"./lite-llm.js\"\nimport { mistralDefaultModelId } from \"./mistral.js\"\nimport { moonshotDefaultModelId } from \"./moonshot.js\"\nimport { openRouterDefaultModelId } from \"./openrouter.js\"\nimport { qwenCodeDefaultModelId } from \"./qwen-code.js\"\nimport { requestyDefaultModelId } from \"./requesty.js\"\nimport { rooDefaultModelId } from \"./roo.js\"\nimport { sambaNovaDefaultModelId } from \"./sambanova.js\"\nimport { unboundDefaultModelId } from \"./unbound.js\"\nimport { vertexDefaultModelId } from \"./vertex.js\"\nimport { vscodeLlmDefaultModelId } from \"./vscode-llm.js\"\nimport { xaiDefaultModelId } from \"./xai.js\"\nimport { vercelAiGatewayDefaultModelId } from \"./vercel-ai-gateway.js\"\nimport { internationalZAiDefaultModelId, mainlandZAiDefaultModelId } from \"./zai.js\"\nimport { deepInfraDefaultModelId } from \"./deepinfra.js\"\nimport { minimaxDefaultModelId } from \"./minimax.js\"\n\n// Import the ProviderName type from provider-settings to avoid duplication\nimport type { ProviderName } from \"../provider-settings.js\"\n\n/**\n * Get the default model ID for a given provider.\n * This function returns only the provider's default model ID, without considering user configuration.\n * Used as a fallback when provider models are still loading.\n */\nexport function getProviderDefaultModelId(\n\tprovider: ProviderName,\n\toptions: { isChina?: boolean } = { isChina: false },\n): string {\n\tswitch (provider) {\n\t\tcase \"openrouter\":\n\t\t\treturn openRouterDefaultModelId\n\t\tcase \"requesty\":\n\t\t\treturn requestyDefaultModelId\n\t\tcase \"unbound\":\n\t\t\treturn unboundDefaultModelId\n\t\tcase \"litellm\":\n\t\t\treturn litellmDefaultModelId\n\t\tcase \"xai\":\n\t\t\treturn xaiDefaultModelId\n\t\tcase \"groq\":\n\t\t\treturn groqDefaultModelId\n\t\tcase \"huggingface\":\n\t\t\treturn \"meta-llama/Llama-3.3-70B-Instruct\"\n\t\tcase \"chutes\":\n\t\t\treturn chutesDefaultModelId\n\t\tcase \"baseten\":\n\t\t\treturn basetenDefaultModelId\n\t\tcase \"bedrock\":\n\t\t\treturn bedrockDefaultModelId\n\t\tcase \"vertex\":\n\t\t\treturn vertexDefaultModelId\n\t\tcase \"gemini\":\n\t\t\treturn geminiDefaultModelId\n\t\tcase \"deepseek\":\n\t\t\treturn deepSeekDefaultModelId\n\t\tcase \"doubao\":\n\t\t\treturn doubaoDefaultModelId\n\t\tcase \"moonshot\":\n\t\t\treturn moonshotDefaultModelId\n\t\tcase \"minimax\":\n\t\t\treturn minimaxDefaultModelId\n\t\tcase \"zai\":\n\t\t\treturn options?.isChina ? mainlandZAiDefaultModelId : internationalZAiDefaultModelId\n\t\tcase \"openai-native\":\n\t\t\treturn \"gpt-4o\" // Based on openai-native patterns\n\t\tcase \"mistral\":\n\t\t\treturn mistralDefaultModelId\n\t\tcase \"openai\":\n\t\t\treturn \"\" // OpenAI provider uses custom model configuration\n\t\tcase \"ollama\":\n\t\t\treturn \"\" // Ollama uses dynamic model selection\n\t\tcase \"lmstudio\":\n\t\t\treturn \"\" // LMStudio uses dynamic model selection\n\t\tcase \"deepinfra\":\n\t\t\treturn deepInfraDefaultModelId\n\t\tcase \"vscode-lm\":\n\t\t\treturn vscodeLlmDefaultModelId\n\t\tcase \"claude-code\":\n\t\t\treturn claudeCodeDefaultModelId\n\t\tcase \"cerebras\":\n\t\t\treturn cerebrasDefaultModelId\n\t\tcase \"sambanova\":\n\t\t\treturn sambaNovaDefaultModelId\n\t\tcase \"fireworks\":\n\t\t\treturn fireworksDefaultModelId\n\t\tcase \"featherless\":\n\t\t\treturn featherlessDefaultModelId\n\t\tcase \"io-intelligence\":\n\t\t\treturn ioIntelligenceDefaultModelId\n\t\tcase \"roo\":\n\t\t\treturn rooDefaultModelId\n\t\tcase \"qwen-code\":\n\t\t\treturn qwenCodeDefaultModelId\n\t\tcase \"vercel-ai-gateway\":\n\t\t\treturn vercelAiGatewayDefaultModelId\n\t\tcase \"anthropic\":\n\t\tcase \"gemini-cli\":\n\t\tcase \"human-relay\":\n\t\tcase \"fake-ai\":\n\t\tdefault:\n\t\t\treturn anthropicDefaultModelId\n\t}\n}\n","import { z } from \"zod\"\n\n/**\n * HistoryItem\n */\n\nexport const historyItemSchema = z.object({\n\tid: z.string(),\n\trootTaskId: z.string().optional(),\n\tparentTaskId: z.string().optional(),\n\tnumber: z.number(),\n\tts: z.number(),\n\ttask: z.string(),\n\ttokensIn: z.number(),\n\ttokensOut: z.number(),\n\tcacheWrites: z.number().optional(),\n\tcacheReads: z.number().optional(),\n\ttotalCost: z.number(),\n\tsize: z.number().optional(),\n\tworkspace: z.string().optional(),\n\tmode: z.string().optional(),\n\tstatus: z.enum([\"active\", \"completed\", \"delegated\"]).optional(),\n\tdelegatedToId: z.string().optional(), // Last child this parent delegated to\n\tchildIds: z.array(z.string()).optional(), // All children spawned by this task\n\tawaitingChildId: z.string().optional(), // Child currently awaited (set when delegated)\n\tcompletedByChildId: z.string().optional(), // Child that completed and resumed this parent\n\tcompletionResultSummary: z.string().optional(), // Summary from completed child\n})\n\nexport type HistoryItem = z.infer<typeof historyItemSchema>\n","import { z } from \"zod\"\n\nimport type { Keys, Equals, AssertEqual } from \"./type-fu.js\"\n\n/**\n * ExperimentId\n */\n\nexport const experimentIds = [\n\t\"powerSteering\",\n\t\"multiFileApplyDiff\",\n\t\"preventFocusDisruption\",\n\t\"imageGeneration\",\n\t\"runSlashCommand\",\n\t\"multipleNativeToolCalls\",\n] as const\n\nexport const experimentIdsSchema = z.enum(experimentIds)\n\nexport type ExperimentId = z.infer<typeof experimentIdsSchema>\n\n/**\n * Experiments\n */\n\nexport const experimentsSchema = z.object({\n\tpowerSteering: z.boolean().optional(),\n\tmultiFileApplyDiff: z.boolean().optional(),\n\tpreventFocusDisruption: z.boolean().optional(),\n\timageGeneration: z.boolean().optional(),\n\trunSlashCommand: z.boolean().optional(),\n\tmultipleNativeToolCalls: z.boolean().optional(),\n})\n\nexport type Experiments = z.infer<typeof experimentsSchema>\n\ntype _AssertExperiments = AssertEqual<Equals<ExperimentId, Keys<Experiments>>>\n","import { z } from \"zod\"\n\nimport { providerNames } from \"./provider-settings.js\"\nimport { clineMessageSchema } from \"./message.js\"\n\n/**\n * TelemetrySetting\n */\n\nexport const telemetrySettings = [\"unset\", \"enabled\", \"disabled\"] as const\n\nexport const telemetrySettingsSchema = z.enum(telemetrySettings)\n\nexport type TelemetrySetting = z.infer<typeof telemetrySettingsSchema>\n\n/**\n * TelemetryEventName\n */\n\nexport enum TelemetryEventName {\n\tTASK_CREATED = \"Task Created\",\n\tTASK_RESTARTED = \"Task Reopened\",\n\tTASK_COMPLETED = \"Task Completed\",\n\tTASK_MESSAGE = \"Task Message\",\n\tTASK_CONVERSATION_MESSAGE = \"Conversation Message\",\n\tLLM_COMPLETION = \"LLM Completion\",\n\tMODE_SWITCH = \"Mode Switched\",\n\tMODE_SELECTOR_OPENED = \"Mode Selector Opened\",\n\tTOOL_USED = \"Tool Used\",\n\n\tCHECKPOINT_CREATED = \"Checkpoint Created\",\n\tCHECKPOINT_RESTORED = \"Checkpoint Restored\",\n\tCHECKPOINT_DIFFED = \"Checkpoint Diffed\",\n\n\tTAB_SHOWN = \"Tab Shown\",\n\tMODE_SETTINGS_CHANGED = \"Mode Setting Changed\",\n\tCUSTOM_MODE_CREATED = \"Custom Mode Created\",\n\n\tCONTEXT_CONDENSED = \"Context Condensed\",\n\tSLIDING_WINDOW_TRUNCATION = \"Sliding Window Truncation\",\n\n\tCODE_ACTION_USED = \"Code Action Used\",\n\tPROMPT_ENHANCED = \"Prompt Enhanced\",\n\n\tTITLE_BUTTON_CLICKED = \"Title Button Clicked\",\n\n\tAUTHENTICATION_INITIATED = \"Authentication Initiated\",\n\n\tMARKETPLACE_ITEM_INSTALLED = \"Marketplace Item Installed\",\n\tMARKETPLACE_ITEM_REMOVED = \"Marketplace Item Removed\",\n\tMARKETPLACE_TAB_VIEWED = \"Marketplace Tab Viewed\",\n\tMARKETPLACE_INSTALL_BUTTON_CLICKED = \"Marketplace Install Button Clicked\",\n\n\tSHARE_BUTTON_CLICKED = \"Share Button Clicked\",\n\tSHARE_ORGANIZATION_CLICKED = \"Share Organization Clicked\",\n\tSHARE_PUBLIC_CLICKED = \"Share Public Clicked\",\n\tSHARE_CONNECT_TO_CLOUD_CLICKED = \"Share Connect To Cloud Clicked\",\n\n\tACCOUNT_CONNECT_CLICKED = \"Account Connect Clicked\",\n\tACCOUNT_CONNECT_SUCCESS = \"Account Connect Success\",\n\tACCOUNT_LOGOUT_CLICKED = \"Account Logout Clicked\",\n\tACCOUNT_LOGOUT_SUCCESS = \"Account Logout Success\",\n\n\tFEATURED_PROVIDER_CLICKED = \"Featured Provider Clicked\",\n\n\tUPSELL_DISMISSED = \"Upsell Dismissed\",\n\tUPSELL_CLICKED = \"Upsell Clicked\",\n\n\tSCHEMA_VALIDATION_ERROR = \"Schema Validation Error\",\n\tDIFF_APPLICATION_ERROR = \"Diff Application Error\",\n\tSHELL_INTEGRATION_ERROR = \"Shell Integration Error\",\n\tCONSECUTIVE_MISTAKE_ERROR = \"Consecutive Mistake Error\",\n\tCODE_INDEX_ERROR = \"Code Index Error\",\n\tTELEMETRY_SETTINGS_CHANGED = \"Telemetry Settings Changed\",\n\tMODEL_CACHE_EMPTY_RESPONSE = \"Model Cache Empty Response\",\n}\n\n/**\n * TelemetryProperties\n */\n\nexport const staticAppPropertiesSchema = z.object({\n\tappName: z.string(),\n\tappVersion: z.string(),\n\tvscodeVersion: z.string(),\n\tplatform: z.string(),\n\teditorName: z.string(),\n\thostname: z.string().optional(),\n})\n\nexport type StaticAppProperties = z.infer<typeof staticAppPropertiesSchema>\n\nexport const dynamicAppPropertiesSchema = z.object({\n\tlanguage: z.string(),\n\tmode: z.string(),\n})\n\nexport type DynamicAppProperties = z.infer<typeof dynamicAppPropertiesSchema>\n\nexport const cloudAppPropertiesSchema = z.object({\n\tcloudIsAuthenticated: z.boolean().optional(),\n})\n\nexport type CloudAppProperties = z.infer<typeof cloudAppPropertiesSchema>\n\nexport const appPropertiesSchema = z.object({\n\t...staticAppPropertiesSchema.shape,\n\t...dynamicAppPropertiesSchema.shape,\n\t...cloudAppPropertiesSchema.shape,\n})\n\nexport type AppProperties = z.infer<typeof appPropertiesSchema>\n\nexport const taskPropertiesSchema = z.object({\n\ttaskId: z.string().optional(),\n\tparentTaskId: z.string().optional(),\n\tapiProvider: z.enum(providerNames).optional(),\n\tmodelId: z.string().optional(),\n\tdiffStrategy: z.string().optional(),\n\tisSubtask: z.boolean().optional(),\n\ttodos: z\n\t\t.object({\n\t\t\ttotal: z.number(),\n\t\t\tcompleted: z.number(),\n\t\t\tinProgress: z.number(),\n\t\t\tpending: z.number(),\n\t\t})\n\t\t.optional(),\n})\n\nexport type TaskProperties = z.infer<typeof taskPropertiesSchema>\n\nexport const gitPropertiesSchema = z.object({\n\trepositoryUrl: z.string().optional(),\n\trepositoryName: z.string().optional(),\n\tdefaultBranch: z.string().optional(),\n})\n\nexport type GitProperties = z.infer<typeof gitPropertiesSchema>\n\nexport const telemetryPropertiesSchema = z.object({\n\t...appPropertiesSchema.shape,\n\t...taskPropertiesSchema.shape,\n\t...gitPropertiesSchema.shape,\n})\n\nexport type TelemetryProperties = z.infer<typeof telemetryPropertiesSchema>\n\n/**\n * TelemetryEvent\n */\n\nexport type TelemetryEvent = {\n\tevent: TelemetryEventName\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tproperties?: Record<string, any>\n}\n\n/**\n * RooCodeTelemetryEvent\n */\n\nexport const rooCodeTelemetryEventSchema = z.discriminatedUnion(\"type\", [\n\tz.object({\n\t\ttype: z.enum([\n\t\t\tTelemetryEventName.TASK_CREATED,\n\t\t\tTelemetryEventName.TASK_RESTARTED,\n\t\t\tTelemetryEventName.TASK_COMPLETED,\n\t\t\tTelemetryEventName.TASK_CONVERSATION_MESSAGE,\n\t\t\tTelemetryEventName.MODE_SWITCH,\n\t\t\tTelemetryEventName.MODE_SELECTOR_OPENED,\n\t\t\tTelemetryEventName.TOOL_USED,\n\t\t\tTelemetryEventName.CHECKPOINT_CREATED,\n\t\t\tTelemetryEventName.CHECKPOINT_RESTORED,\n\t\t\tTelemetryEventName.CHECKPOINT_DIFFED,\n\t\t\tTelemetryEventName.CODE_ACTION_USED,\n\t\t\tTelemetryEventName.PROMPT_ENHANCED,\n\t\t\tTelemetryEventName.TITLE_BUTTON_CLICKED,\n\t\t\tTelemetryEventName.AUTHENTICATION_INITIATED,\n\t\t\tTelemetryEventName.MARKETPLACE_ITEM_INSTALLED,\n\t\t\tTelemetryEventName.MARKETPLACE_ITEM_REMOVED,\n\t\t\tTelemetryEventName.MARKETPLACE_TAB_VIEWED,\n\t\t\tTelemetryEventName.MARKETPLACE_INSTALL_BUTTON_CLICKED,\n\t\t\tTelemetryEventName.SHARE_BUTTON_CLICKED,\n\t\t\tTelemetryEventName.SHARE_ORGANIZATION_CLICKED,\n\t\t\tTelemetryEventName.SHARE_PUBLIC_CLICKED,\n\t\t\tTelemetryEventName.SHARE_CONNECT_TO_CLOUD_CLICKED,\n\t\t\tTelemetryEventName.ACCOUNT_CONNECT_CLICKED,\n\t\t\tTelemetryEventName.ACCOUNT_CONNECT_SUCCESS,\n\t\t\tTelemetryEventName.ACCOUNT_LOGOUT_CLICKED,\n\t\t\tTelemetryEventName.ACCOUNT_LOGOUT_SUCCESS,\n\t\t\tTelemetryEventName.FEATURED_PROVIDER_CLICKED,\n\t\t\tTelemetryEventName.UPSELL_DISMISSED,\n\t\t\tTelemetryEventName.UPSELL_CLICKED,\n\t\t\tTelemetryEventName.SCHEMA_VALIDATION_ERROR,\n\t\t\tTelemetryEventName.DIFF_APPLICATION_ERROR,\n\t\t\tTelemetryEventName.SHELL_INTEGRATION_ERROR,\n\t\t\tTelemetryEventName.CONSECUTIVE_MISTAKE_ERROR,\n\t\t\tTelemetryEventName.CODE_INDEX_ERROR,\n\t\t\tTelemetryEventName.MODEL_CACHE_EMPTY_RESPONSE,\n\t\t\tTelemetryEventName.CONTEXT_CONDENSED,\n\t\t\tTelemetryEventName.SLIDING_WINDOW_TRUNCATION,\n\t\t\tTelemetryEventName.TAB_SHOWN,\n\t\t\tTelemetryEventName.MODE_SETTINGS_CHANGED,\n\t\t\tTelemetryEventName.CUSTOM_MODE_CREATED,\n\t\t]),\n\t\tproperties: telemetryPropertiesSchema,\n\t}),\n\tz.object({\n\t\ttype: z.literal(TelemetryEventName.TELEMETRY_SETTINGS_CHANGED),\n\t\tproperties: z.object({\n\t\t\t...telemetryPropertiesSchema.shape,\n\t\t\tpreviousSetting: telemetrySettingsSchema,\n\t\t\tnewSetting: telemetrySettingsSchema,\n\t\t}),\n\t}),\n\tz.object({\n\t\ttype: z.literal(TelemetryEventName.TASK_MESSAGE),\n\t\tproperties: z.object({\n\t\t\t...telemetryPropertiesSchema.shape,\n\t\t\ttaskId: z.string(),\n\t\t\tmessage: clineMessageSchema,\n\t\t}),\n\t}),\n\tz.object({\n\t\ttype: z.literal(TelemetryEventName.LLM_COMPLETION),\n\t\tproperties: z.object({\n\t\t\t...telemetryPropertiesSchema.shape,\n\t\t\tinputTokens: z.number(),\n\t\t\toutputTokens: z.number(),\n\t\t\tcacheReadTokens: z.number().optional(),\n\t\t\tcacheWriteTokens: z.number().optional(),\n\t\t\tcost: z.number().optional(),\n\t\t}),\n\t}),\n])\n\nexport type RooCodeTelemetryEvent = z.infer<typeof rooCodeTelemetryEventSchema>\n\n/**\n * TelemetryEventSubscription\n */\n\nexport type TelemetryEventSubscription =\n\t| { type: \"include\"; events: TelemetryEventName[] }\n\t| { type: \"exclude\"; events: TelemetryEventName[] }\n\n/**\n * TelemetryPropertiesProvider\n */\n\nexport interface TelemetryPropertiesProvider {\n\tgetTelemetryProperties(): Promise<TelemetryProperties>\n}\n\n/**\n * TelemetryClient\n */\n\nexport interface TelemetryClient {\n\tsubscription?: TelemetryEventSubscription\n\n\tsetProvider(provider: TelemetryPropertiesProvider): void\n\tcapture(options: TelemetryEvent): Promise<void>\n\tcaptureException(error: Error, additionalProperties?: Record<string, unknown>): Promise<void>\n\tupdateTelemetryState(isOptedIn: boolean): void\n\tisTelemetryEnabled(): boolean\n\tshutdown(): Promise<void>\n}\n\n/**\n * Expected API error codes that should not be reported to telemetry.\n * These are normal/expected errors that users can't do much about.\n */\nexport const EXPECTED_API_ERROR_CODES = new Set([\n\t402, // Payment required - billing issues\n\t429, // Rate limit - expected when hitting API limits\n])\n\n/**\n * Patterns in error messages that indicate expected errors (rate limits, etc.)\n * These are checked when no numeric error code is available.\n */\nconst EXPECTED_ERROR_MESSAGE_PATTERNS = [\n\t/^429\\b/, // Message starts with \"429\"\n\t/rate limit/i, // Contains \"rate limit\" (case insensitive)\n]\n\n/**\n * Interface representing the error structure from OpenAI SDK.\n * OpenAI SDK errors (APIError, AuthenticationError, RateLimitError, etc.)\n * have a numeric `status` property and may contain nested error metadata.\n *\n * @see https://github.com/openai/openai-node/blob/master/src/error.ts\n */\ninterface OpenAISdkError {\n\t/** HTTP status code of the error response */\n\tstatus: number\n\t/** Optional error code (may be numeric or string) */\n\tcode?: number | string\n\t/** Primary error message */\n\tmessage: string\n\t/** Nested error object containing additional details from the API response */\n\terror?: {\n\t\tmessage?: string\n\t\tmetadata?: {\n\t\t\t/** Raw error message from upstream provider (e.g., OpenRouter upstream errors) */\n\t\t\traw?: string\n\t\t}\n\t}\n}\n\n/**\n * Type guard to check if an error object is an OpenAI SDK error.\n * OpenAI SDK errors (APIError and subclasses) have: status, code, message properties.\n */\nfunction isOpenAISdkError(error: unknown): error is OpenAISdkError {\n\treturn (\n\t\ttypeof error === \"object\" &&\n\t\terror !== null &&\n\t\t\"status\" in error &&\n\t\ttypeof (error as OpenAISdkError).status === \"number\"\n\t)\n}\n\n/**\n * Extracts the HTTP status code from an error object.\n * Supports OpenAI SDK errors that have a status property.\n * @param error - The error to extract status from\n * @returns The status code if available, undefined otherwise\n */\nexport function getErrorStatusCode(error: unknown): number | undefined {\n\tif (isOpenAISdkError(error)) {\n\t\treturn error.status\n\t}\n\treturn undefined\n}\n\n/**\n * Extracts the most descriptive error message from an OpenAI SDK error.\n * Prioritizes nested metadata (upstream provider errors) over the standard message.\n * @param error - The error to extract message from\n * @returns The best available error message, or undefined if not an OpenAI SDK error\n */\nexport function getErrorMessage(error: unknown): string | undefined {\n\tif (isOpenAISdkError(error)) {\n\t\t// Prioritize nested metadata which may contain upstream provider details\n\t\treturn error.error?.metadata?.raw || error.error?.message || error.message\n\t}\n\treturn undefined\n}\n\n/**\n * Helper to check if an API error should be reported to telemetry.\n * Filters out expected errors like rate limits by checking both error codes and messages.\n * @param errorCode - The HTTP error code (if available)\n * @param errorMessage - The error message (if available)\n * @returns true if the error should be reported, false if it should be filtered out\n */\nexport function shouldReportApiErrorToTelemetry(errorCode?: number, errorMessage?: string): boolean {\n\t// Check numeric error code\n\tif (errorCode !== undefined && EXPECTED_API_ERROR_CODES.has(errorCode)) {\n\t\treturn false\n\t}\n\n\t// Check error message for expected patterns (e.g., \"429 Rate limit exceeded\")\n\tif (errorMessage) {\n\t\tfor (const pattern of EXPECTED_ERROR_MESSAGE_PATTERNS) {\n\t\t\tif (pattern.test(errorMessage)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\treturn true\n}\n\n/**\n * Generic API provider error class for structured error tracking via PostHog.\n * Can be reused by any API provider.\n */\nexport class ApiProviderError extends Error {\n\tconstructor(\n\t\tmessage: string,\n\t\tpublic readonly provider: string,\n\t\tpublic readonly modelId: string,\n\t\tpublic readonly operation: string,\n\t\tpublic readonly errorCode?: number,\n\t) {\n\t\tsuper(message)\n\t\tthis.name = \"ApiProviderError\"\n\t}\n}\n\n/**\n * Type guard to check if an error is an ApiProviderError.\n * Used by telemetry to automatically extract structured properties.\n */\nexport function isApiProviderError(error: unknown): error is ApiProviderError {\n\treturn (\n\t\terror instanceof Error &&\n\t\terror.name === \"ApiProviderError\" &&\n\t\t\"provider\" in error &&\n\t\t\"modelId\" in error &&\n\t\t\"operation\" in error\n\t)\n}\n\n/**\n * Extracts properties from an ApiProviderError for telemetry.\n * Returns the structured properties that can be merged with additionalProperties.\n */\nexport function extractApiProviderErrorProperties(error: ApiProviderError): Record<string, unknown> {\n\treturn {\n\t\tprovider: error.provider,\n\t\tmodelId: error.modelId,\n\t\toperation: error.operation,\n\t\t...(error.errorCode !== undefined && { errorCode: error.errorCode }),\n\t}\n}\n","import { z } from \"zod\"\n\nimport { toolGroupsSchema } from \"./tool.js\"\n\n/**\n * GroupOptions\n */\n\nexport const groupOptionsSchema = z.object({\n\tfileRegex: z\n\t\t.string()\n\t\t.optional()\n\t\t.refine(\n\t\t\t(pattern) => {\n\t\t\t\tif (!pattern) {\n\t\t\t\t\treturn true // Optional, so empty is valid.\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tnew RegExp(pattern)\n\t\t\t\t\treturn true\n\t\t\t\t} catch {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ message: \"Invalid regular expression pattern\" },\n\t\t),\n\tdescription: z.string().optional(),\n})\n\nexport type GroupOptions = z.infer<typeof groupOptionsSchema>\n\n/**\n * GroupEntry\n */\n\nexport const groupEntrySchema = z.union([toolGroupsSchema, z.tuple([toolGroupsSchema, groupOptionsSchema])])\n\nexport type GroupEntry = z.infer<typeof groupEntrySchema>\n\n/**\n * ModeConfig\n */\n\nconst groupEntryArraySchema = z.array(groupEntrySchema).refine(\n\t(groups) => {\n\t\tconst seen = new Set()\n\n\t\treturn groups.every((group) => {\n\t\t\t// For tuples, check the group name (first element).\n\t\t\tconst groupName = Array.isArray(group) ? group[0] : group\n\n\t\t\tif (seen.has(groupName)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tseen.add(groupName)\n\t\t\treturn true\n\t\t})\n\t},\n\t{ message: \"Duplicate groups are not allowed\" },\n)\n\nexport const modeConfigSchema = z.object({\n\tslug: z.string().regex(/^[a-zA-Z0-9-]+$/, \"Slug must contain only letters numbers and dashes\"),\n\tname: z.string().min(1, \"Name is required\"),\n\troleDefinition: z.string().min(1, \"Role definition is required\"),\n\twhenToUse: z.string().optional(),\n\tdescription: z.string().optional(),\n\tcustomInstructions: z.string().optional(),\n\tgroups: groupEntryArraySchema,\n\tsource: z.enum([\"global\", \"project\"]).optional(),\n})\n\nexport type ModeConfig = z.infer<typeof modeConfigSchema>\n\n/**\n * CustomModesSettings\n */\n\nexport const customModesSettingsSchema = z.object({\n\tcustomModes: z.array(modeConfigSchema).refine(\n\t\t(modes) => {\n\t\t\tconst slugs = new Set()\n\n\t\t\treturn modes.every((mode) => {\n\t\t\t\tif (slugs.has(mode.slug)) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tslugs.add(mode.slug)\n\t\t\t\treturn true\n\t\t\t})\n\t\t},\n\t\t{\n\t\t\tmessage: \"Duplicate mode slugs are not allowed\",\n\t\t},\n\t),\n})\n\nexport type CustomModesSettings = z.infer<typeof customModesSettingsSchema>\n\n/**\n * PromptComponent\n */\n\nexport const promptComponentSchema = z.object({\n\troleDefinition: z.string().optional(),\n\twhenToUse: z.string().optional(),\n\tdescription: z.string().optional(),\n\tcustomInstructions: z.string().optional(),\n})\n\nexport type PromptComponent = z.infer<typeof promptComponentSchema>\n\n/**\n * CustomModePrompts\n */\n\nexport const customModePromptsSchema = z.record(z.string(), promptComponentSchema.optional())\n\nexport type CustomModePrompts = z.infer<typeof customModePromptsSchema>\n\n/**\n * CustomSupportPrompts\n */\n\nexport const customSupportPromptsSchema = z.record(z.string(), z.string().optional())\n\nexport type CustomSupportPrompts = z.infer<typeof customSupportPromptsSchema>\n\n/**\n * DEFAULT_MODES\n */\n\nexport const DEFAULT_MODES: readonly ModeConfig[] = [\n\t{\n\t\tslug: \"architect\",\n\t\tname: \"🏗️ Architect\",\n\t\troleDefinition:\n\t\t\t\"You are Roo, an experienced technical leader who is inquisitive and an excellent planner. Your goal is to gather information and get context to create a detailed plan for accomplishing the user's task, which the user will review and approve before they switch into another mode to implement the solution.\",\n\t\twhenToUse:\n\t\t\t\"Use this mode when you need to plan, design, or strategize before implementation. Perfect for breaking down complex problems, creating technical specifications, designing system architecture, or brainstorming solutions before coding.\",\n\t\tdescription: \"Plan and design before implementation\",\n\t\tgroups: [\"read\", [\"edit\", { fileRegex: \"\\\\.md$\", description: \"Markdown files only\" }], \"browser\", \"mcp\"],\n\t\tcustomInstructions:\n\t\t\t\"1. Do some information gathering (using provided tools) to get more context about the task.\\n\\n2. You should also ask the user clarifying questions to get a better understanding of the task.\\n\\n3. Once you've gained more context about the user's request, break down the task into clear, actionable steps and create a todo list using the `update_todo_list` tool. Each todo item should be:\\n - Specific and actionable\\n - Listed in logical execution order\\n - Focused on a single, well-defined outcome\\n - Clear enough that another mode could execute it independently\\n\\n **Note:** If the `update_todo_list` tool is not available, write the plan to a markdown file (e.g., `plan.md` or `todo.md`) instead.\\n\\n4. As you gather more information or discover new requirements, update the todo list to reflect the current understanding of what needs to be accomplished.\\n\\n5. Ask the user if they are pleased with this plan, or if they would like to make any changes. Think of this as a brainstorming session where you can discuss the task and refine the todo list.\\n\\n6. Include Mermaid diagrams if they help clarify complex workflows or system architecture. Please avoid using double quotes (\\\"\\\") and parentheses () inside square brackets ([]) in Mermaid diagrams, as this can cause parsing errors.\\n\\n7. Use the switch_mode tool to request that the user switch to another mode to implement the solution.\\n\\n**IMPORTANT: Focus on creating clear, actionable todo lists rather than lengthy markdown documents. Use the todo list as your primary planning tool to track and organize the work that needs to be done.**\\n\\n**CRITICAL: Never provide level of effort time estimates (e.g., hours, days, weeks) for tasks. Focus solely on breaking down the work into clear, actionable steps without estimating how long they will take.**\\n\\nUnless told otherwise, if you want to save a plan file, put it in the /plans directory\",\n\t},\n\t{\n\t\tslug: \"code\",\n\t\tname: \"💻 Code\",\n\t\troleDefinition:\n\t\t\t\"You are Roo, a highly skilled software engineer with extensive knowledge in many programming languages, frameworks, design patterns, and best practices.\",\n\t\twhenToUse:\n\t\t\t\"Use this mode when you need to write, modify, or refactor code. Ideal for implementing features, fixing bugs, creating new files, or making code improvements across any programming language or framework.\",\n\t\tdescription: \"Write, modify, and refactor code\",\n\t\tgroups: [\"read\", \"edit\", \"browser\", \"command\", \"mcp\"],\n\t},\n\t{\n\t\tslug: \"ask\",\n\t\tname: \"❓ Ask\",\n\t\troleDefinition:\n\t\t\t\"You are Roo, a knowledgeable technical assistant focused on answering questions and providing information about software development, technology, and related topics.\",\n\t\twhenToUse:\n\t\t\t\"Use this mode when you need explanations, documentation, or answers to technical questions. Best for understanding concepts, analyzing existing code, getting recommendations, or learning about technologies without making changes.\",\n\t\tdescription: \"Get answers and explanations\",\n\t\tgroups: [\"read\", \"browser\", \"mcp\"],\n\t\tcustomInstructions:\n\t\t\t\"You can analyze code, explain concepts, and access external resources. Always answer the user's questions thoroughly, and do not switch to implementing code unless explicitly requested by the user. Include Mermaid diagrams when they clarify your response.\",\n\t},\n\t{\n\t\tslug: \"debug\",\n\t\tname: \"🪲 Debug\",\n\t\troleDefinition:\n\t\t\t\"You are Roo, an expert software debugger specializing in systematic problem diagnosis and resolution.\",\n\t\twhenToUse:\n\t\t\t\"Use this mode when you're troubleshooting issues, investigating errors, or diagnosing problems. Specialized in systematic debugging, adding logging, analyzing stack traces, and identifying root causes before applying fixes.\",\n\t\tdescription: \"Diagnose and fix software issues\",\n\t\tgroups: [\"read\", \"edit\", \"browser\", \"command\", \"mcp\"],\n\t\tcustomInstructions:\n\t\t\t\"Reflect on 5-7 different possible sources of the problem, distill those down to 1-2 most likely sources, and then add logs to validate your assumptions. Explicitly ask the user to confirm the diagnosis before fixing the problem.\",\n\t},\n\t{\n\t\tslug: \"orchestrator\",\n\t\tname: \"🪃 Orchestrator\",\n\t\troleDefinition:\n\t\t\t\"You are Roo, a strategic workflow orchestrator who coordinates complex tasks by delegating them to appropriate specialized modes. You have a comprehensive understanding of each mode's capabilities and limitations, allowing you to effectively break down complex problems into discrete tasks that can be solved by different specialists.\",\n\t\twhenToUse:\n\t\t\t\"Use this mode for complex, multi-step projects that require coordination across different specialties. Ideal when you need to break down large tasks into subtasks, manage workflows, or coordinate work that spans multiple domains or expertise areas.\",\n\t\tdescription: \"Coordinate tasks across multiple modes\",\n\t\tgroups: [],\n\t\tcustomInstructions:\n\t\t\t\"Your role is to coordinate complex workflows by delegating tasks to specialized modes. As an orchestrator, you should:\\n\\n1. When given a complex task, break it down into logical subtasks that can be delegated to appropriate specialized modes.\\n\\n2. For each subtask, use the `new_task` tool to delegate. Choose the most appropriate mode for the subtask's specific goal and provide comprehensive instructions in the `message` parameter. These instructions must include:\\n * All necessary context from the parent task or previous subtasks required to complete the work.\\n * A clearly defined scope, specifying exactly what the subtask should accomplish.\\n * An explicit statement that the subtask should *only* perform the work outlined in these instructions and not deviate.\\n * An instruction for the subtask to signal completion by using the `attempt_completion` tool, providing a concise yet thorough summary of the outcome in the `result` parameter, keeping in mind that this summary will be the source of truth used to keep track of what was completed on this project.\\n * A statement that these specific instructions supersede any conflicting general instructions the subtask's mode might have.\\n\\n3. Track and manage the progress of all subtasks. When a subtask is completed, analyze its results and determine the next steps.\\n\\n4. Help the user understand how the different subtasks fit together in the overall workflow. Provide clear reasoning about why you're delegating specific tasks to specific modes.\\n\\n5. When all subtasks are completed, synthesize the results and provide a comprehensive overview of what was accomplished.\\n\\n6. Ask clarifying questions when necessary to better understand how to break down complex tasks effectively.\\n\\n7. Suggest improvements to the workflow based on the results of completed subtasks.\\n\\nUse subtasks to maintain clarity. If a request significantly shifts focus or requires a different expertise (mode), consider creating a subtask rather than overloading the current one.\",\n\t},\n] as const\n","import { z } from \"zod\"\n\n/**\n * CodeAction\n */\n\nexport const codeActionIds = [\"explainCode\", \"fixCode\", \"improveCode\", \"addToContext\", \"newTask\"] as const\n\nexport type CodeActionId = (typeof codeActionIds)[number]\n\nexport type CodeActionName = \"EXPLAIN\" | \"FIX\" | \"IMPROVE\" | \"ADD_TO_CONTEXT\" | \"NEW_TASK\"\n\n/**\n * TerminalAction\n */\n\nexport const terminalActionIds = [\"terminalAddToContext\", \"terminalFixCommand\", \"terminalExplainCommand\"] as const\n\nexport type TerminalActionId = (typeof terminalActionIds)[number]\n\nexport type TerminalActionName = \"ADD_TO_CONTEXT\" | \"FIX\" | \"EXPLAIN\"\n\nexport type TerminalActionPromptType = `TERMINAL_${TerminalActionName}`\n\n/**\n * Command\n */\n\nexport const commandIds = [\n\t\"activationCompleted\",\n\n\t\"plusButtonClicked\",\n\t\"historyButtonClicked\",\n\t\"marketplaceButtonClicked\",\n\t\"popoutButtonClicked\",\n\t\"cloudButtonClicked\",\n\t\"settingsButtonClicked\",\n\n\t\"openInNewTab\",\n\n\t\"showHumanRelayDialog\",\n\t\"registerHumanRelayCallback\",\n\t\"unregisterHumanRelayCallback\",\n\t\"handleHumanRelayResponse\",\n\n\t\"newTask\",\n\n\t\"setCustomStoragePath\",\n\t\"importSettings\",\n\n\t\"focusInput\",\n\t\"acceptInput\",\n\t\"focusPanel\",\n\t\"toggleAutoApprove\",\n] as const\n\nexport type CommandId = (typeof commandIds)[number]\n\n/**\n * Language\n */\n\nexport const languages = [\n\t\"ca\",\n\t\"de\",\n\t\"en\",\n\t\"es\",\n\t\"fr\",\n\t\"hi\",\n\t\"id\",\n\t\"it\",\n\t\"ja\",\n\t\"ko\",\n\t\"nl\",\n\t\"pl\",\n\t\"pt-BR\",\n\t\"ru\",\n\t\"tr\",\n\t\"vi\",\n\t\"zh-CN\",\n\t\"zh-TW\",\n] as const\n\nexport const languagesSchema = z.enum(languages)\n\nexport type Language = z.infer<typeof languagesSchema>\n\nexport const isLanguage = (value: string): value is Language => languages.includes(value as Language)\n","import { z } from \"zod\"\n\n/**\n * Schema for MCP parameter definitions\n */\nexport const mcpParameterSchema = z.object({\n\tname: z.string().min(1),\n\tkey: z.string().min(1),\n\tplaceholder: z.string().optional(),\n\toptional: z.boolean().optional().default(false),\n})\n\nexport type McpParameter = z.infer<typeof mcpParameterSchema>\n\n/**\n * Schema for MCP installation method with name\n */\nexport const mcpInstallationMethodSchema = z.object({\n\tname: z.string().min(1),\n\tcontent: z.string().min(1),\n\tparameters: z.array(mcpParameterSchema).optional(),\n\tprerequisites: z.array(z.string()).optional(),\n})\n\nexport type McpInstallationMethod = z.infer<typeof mcpInstallationMethodSchema>\n\n/**\n * Component type validation\n */\nexport const marketplaceItemTypeSchema = z.enum([\"mode\", \"mcp\"] as const)\n\nexport type MarketplaceItemType = z.infer<typeof marketplaceItemTypeSchema>\n\n/**\n * Base schema for common marketplace item fields\n */\nconst baseMarketplaceItemSchema = z.object({\n\tid: z.string().min(1),\n\tname: z.string().min(1, \"Name is required\"),\n\tdescription: z.string(),\n\tauthor: z.string().optional(),\n\tauthorUrl: z.string().url(\"Author URL must be a valid URL\").optional(),\n\ttags: z.array(z.string()).optional(),\n\tprerequisites: z.array(z.string()).optional(),\n})\n\n/**\n * Type-specific schemas for YAML parsing (without type field, added programmatically)\n */\nexport const modeMarketplaceItemSchema = baseMarketplaceItemSchema.extend({\n\tcontent: z.string().min(1), // YAML content for modes\n})\n\nexport type ModeMarketplaceItem = z.infer<typeof modeMarketplaceItemSchema>\n\nexport const mcpMarketplaceItemSchema = baseMarketplaceItemSchema.extend({\n\turl: z.string().url(), // Required url field\n\tcontent: z.union([z.string().min(1), z.array(mcpInstallationMethodSchema)]), // Single config or array of methods\n\tparameters: z.array(mcpParameterSchema).optional(),\n})\n\nexport type McpMarketplaceItem = z.infer<typeof mcpMarketplaceItemSchema>\n\n/**\n * Unified marketplace item schema using discriminated union\n */\nexport const marketplaceItemSchema = z.discriminatedUnion(\"type\", [\n\t// Mode marketplace item\n\tmodeMarketplaceItemSchema.extend({\n\t\ttype: z.literal(\"mode\"),\n\t}),\n\t// MCP marketplace item\n\tmcpMarketplaceItemSchema.extend({\n\t\ttype: z.literal(\"mcp\"),\n\t}),\n])\n\nexport type MarketplaceItem = z.infer<typeof marketplaceItemSchema>\n\n/**\n * Installation options for marketplace items\n */\nexport const installMarketplaceItemOptionsSchema = z.object({\n\ttarget: z.enum([\"global\", \"project\"]).optional().default(\"project\"),\n\tparameters: z.record(z.string(), z.any()).optional(),\n})\n\nexport type InstallMarketplaceItemOptions = z.infer<typeof installMarketplaceItemOptionsSchema>\n","/**\n * Context Management Types\n *\n * This module provides type definitions for context management events.\n * These events are used to handle different strategies for managing conversation context\n * when approaching token limits.\n *\n * Event Types:\n * - `condense_context`: Context was condensed using AI summarization\n * - `condense_context_error`: An error occurred during context condensation\n * - `sliding_window_truncation`: Context was truncated using sliding window strategy\n */\n\n/**\n * Array of all context management event types.\n * Used for runtime type checking.\n */\nexport const CONTEXT_MANAGEMENT_EVENTS = [\n\t\"condense_context\",\n\t\"condense_context_error\",\n\t\"sliding_window_truncation\",\n] as const\n\n/**\n * Union type representing all possible context management event types.\n */\nexport type ContextManagementEvent = (typeof CONTEXT_MANAGEMENT_EVENTS)[number]\n\n/**\n * Type guard function to check if a value is a valid context management event.\n */\nexport function isContextManagementEvent(value: unknown): value is ContextManagementEvent {\n\treturn typeof value === \"string\" && (CONTEXT_MANAGEMENT_EVENTS as readonly string[]).includes(value)\n}\n","/**\n * Cookie consent constants and types\n * Shared across all Roo Code repositories\n */\n\n/**\n * The name of the cookie that stores user's consent preference\n * Used by react-cookie-consent library\n */\nexport const CONSENT_COOKIE_NAME = \"roo-code-cookie-consent\"\n\n/**\n * Possible values for the consent cookie\n */\nexport type ConsentCookieValue = \"true\" | \"false\"\n\n/**\n * Cookie consent event names for communication between components\n */\nexport const COOKIE_CONSENT_EVENTS = {\n\tCHANGED: \"cookieConsentChanged\",\n} as const\n","import { z } from \"zod\"\n\n/**\n * Interface for follow-up data structure used in follow-up questions\n * This represents the data structure for follow-up questions that the LLM can ask\n * to gather more information needed to complete a task.\n */\nexport interface FollowUpData {\n\t/** The question being asked by the LLM */\n\tquestion?: string\n\t/** Array of suggested answers that the user can select */\n\tsuggest?: Array<SuggestionItem>\n}\n\n/**\n * Interface for a suggestion item with optional mode switching\n */\nexport interface SuggestionItem {\n\t/** The text of the suggestion */\n\tanswer: string\n\t/** Optional mode to switch to when selecting this suggestion */\n\tmode?: string\n}\n\n/**\n * Zod schema for SuggestionItem\n */\nexport const suggestionItemSchema = z.object({\n\tanswer: z.string(),\n\tmode: z.string().optional(),\n})\n\n/**\n * Zod schema for FollowUpData\n */\nexport const followUpDataSchema = z.object({\n\tquestion: z.string().optional(),\n\tsuggest: z.array(suggestionItemSchema).optional(),\n})\n\nexport type FollowUpDataType = z.infer<typeof followUpDataSchema>\n","/**\n * Image generation model constants\n */\n\n/**\n * API method used for image generation\n */\nexport type ImageGenerationApiMethod = \"chat_completions\" | \"images_api\"\n\nexport interface ImageGenerationModel {\n\tvalue: string\n\tlabel: string\n\tprovider: ImageGenerationProvider\n\tapiMethod?: ImageGenerationApiMethod\n}\n\nexport const IMAGE_GENERATION_MODELS: ImageGenerationModel[] = [\n\t// OpenRouter models\n\t{ value: \"google/gemini-2.5-flash-image\", label: \"Gemini 2.5 Flash Image\", provider: \"openrouter\" },\n\t{ value: \"google/gemini-3-pro-image-preview\", label: \"Gemini 3 Pro Image Preview\", provider: \"openrouter\" },\n\t{ value: \"openai/gpt-5-image\", label: \"GPT-5 Image\", provider: \"openrouter\" },\n\t{ value: \"openai/gpt-5-image-mini\", label: \"GPT-5 Image Mini\", provider: \"openrouter\" },\n\t{ value: \"black-forest-labs/flux.2-flex\", label: \"Black Forest Labs FLUX.2 Flex\", provider: \"openrouter\" },\n\t{ value: \"black-forest-labs/flux.2-pro\", label: \"Black Forest Labs FLUX.2 Pro\", provider: \"openrouter\" },\n\t// Roo Code Cloud models\n\t{ value: \"google/gemini-2.5-flash-image\", label: \"Gemini 2.5 Flash Image\", provider: \"roo\" },\n\t{ value: \"google/gemini-3-pro-image\", label: \"Gemini 3 Pro Image\", provider: \"roo\" },\n\t{\n\t\tvalue: \"bfl/flux-2-pro:free\",\n\t\tlabel: \"Black Forest Labs FLUX.2 Pro (Free)\",\n\t\tprovider: \"roo\",\n\t\tapiMethod: \"images_api\",\n\t},\n]\n\n/**\n * Get array of model values only (for backend validation)\n */\nexport const IMAGE_GENERATION_MODEL_IDS = IMAGE_GENERATION_MODELS.map((m) => m.value)\n\n/**\n * Image generation provider type\n */\nexport type ImageGenerationProvider = \"openrouter\" | \"roo\"\n\n/**\n * Get the image generation provider with backwards compatibility\n * - If provider is explicitly set, use it\n * - If a model is already configured (existing users), default to \"openrouter\"\n * - Otherwise default to \"roo\" (new users)\n */\nexport function getImageGenerationProvider(\n\texplicitProvider: ImageGenerationProvider | undefined,\n\thasExistingModel: boolean,\n): ImageGenerationProvider {\n\treturn explicitProvider !== undefined ? explicitProvider : hasExistingModel ? \"openrouter\" : \"roo\"\n}\n","import { z } from \"zod\"\n\nimport { type TaskEvent, taskEventSchema } from \"./events.js\"\nimport { rooCodeSettingsSchema } from \"./global-settings.js\"\n\n/**\n * IpcMessageType\n */\n\nexport enum IpcMessageType {\n\tConnect = \"Connect\",\n\tDisconnect = \"Disconnect\",\n\tAck = \"Ack\",\n\tTaskCommand = \"TaskCommand\",\n\tTaskEvent = \"TaskEvent\",\n}\n\n/**\n * IpcOrigin\n */\n\nexport enum IpcOrigin {\n\tClient = \"client\",\n\tServer = \"server\",\n}\n\n/**\n * Ack\n */\n\nexport const ackSchema = z.object({\n\tclientId: z.string(),\n\tpid: z.number(),\n\tppid: z.number(),\n})\n\nexport type Ack = z.infer<typeof ackSchema>\n\n/**\n * TaskCommandName\n */\n\nexport enum TaskCommandName {\n\tStartNewTask = \"StartNewTask\",\n\tCancelTask = \"CancelTask\",\n\tCloseTask = \"CloseTask\",\n\tResumeTask = \"ResumeTask\",\n\tSendMessage = \"SendMessage\",\n}\n\n/**\n * TaskCommand\n */\n\nexport const taskCommandSchema = z.discriminatedUnion(\"commandName\", [\n\tz.object({\n\t\tcommandName: z.literal(TaskCommandName.StartNewTask),\n\t\tdata: z.object({\n\t\t\tconfiguration: rooCodeSettingsSchema,\n\t\t\ttext: z.string(),\n\t\t\timages: z.array(z.string()).optional(),\n\t\t\tnewTab: z.boolean().optional(),\n\t\t}),\n\t}),\n\tz.object({\n\t\tcommandName: z.literal(TaskCommandName.CancelTask),\n\t\tdata: z.string(),\n\t}),\n\tz.object({\n\t\tcommandName: z.literal(TaskCommandName.CloseTask),\n\t\tdata: z.string(),\n\t}),\n\tz.object({\n\t\tcommandName: z.literal(TaskCommandName.ResumeTask),\n\t\tdata: z.string(),\n\t}),\n\tz.object({\n\t\tcommandName: z.literal(TaskCommandName.SendMessage),\n\t\tdata: z.object({\n\t\t\ttext: z.string().optional(),\n\t\t\timages: z.array(z.string()).optional(),\n\t\t}),\n\t}),\n])\n\nexport type TaskCommand = z.infer<typeof taskCommandSchema>\n\n/**\n * IpcMessage\n */\n\nexport const ipcMessageSchema = z.discriminatedUnion(\"type\", [\n\tz.object({\n\t\ttype: z.literal(IpcMessageType.Ack),\n\t\torigin: z.literal(IpcOrigin.Server),\n\t\tdata: ackSchema,\n\t}),\n\tz.object({\n\t\ttype: z.literal(IpcMessageType.TaskCommand),\n\t\torigin: z.literal(IpcOrigin.Client),\n\t\tclientId: z.string(),\n\t\tdata: taskCommandSchema,\n\t}),\n\tz.object({\n\t\ttype: z.literal(IpcMessageType.TaskEvent),\n\t\torigin: z.literal(IpcOrigin.Server),\n\t\trelayClientId: z.string().optional(),\n\t\tdata: taskEventSchema,\n\t}),\n])\n\nexport type IpcMessage = z.infer<typeof ipcMessageSchema>\n\n/**\n * IpcClientEvents\n */\n\nexport type IpcClientEvents = {\n\t[IpcMessageType.Connect]: []\n\t[IpcMessageType.Disconnect]: []\n\t[IpcMessageType.Ack]: [data: Ack]\n\t[IpcMessageType.TaskCommand]: [data: TaskCommand]\n\t[IpcMessageType.TaskEvent]: [data: TaskEvent]\n}\n\n/**\n * IpcServerEvents\n */\n\nexport type IpcServerEvents = {\n\t[IpcMessageType.Connect]: [clientId: string]\n\t[IpcMessageType.Disconnect]: [clientId: string]\n\t[IpcMessageType.TaskCommand]: [clientId: string, data: TaskCommand]\n\t[IpcMessageType.TaskEvent]: [relayClientId: string | undefined, data: TaskEvent]\n}\n","import { z } from \"zod\"\n\n/**\n * MCP Server Use Types\n */\nexport interface McpServerUse {\n\ttype: string\n\tserverName: string\n\ttoolName?: string\n\turi?: string\n}\n\n/**\n * McpExecutionStatus\n */\n\nexport const mcpExecutionStatusSchema = z.discriminatedUnion(\"status\", [\n\tz.object({\n\t\texecutionId: z.string(),\n\t\tstatus: z.literal(\"started\"),\n\t\tserverName: z.string(),\n\t\ttoolName: z.string(),\n\t}),\n\tz.object({\n\t\texecutionId: z.string(),\n\t\tstatus: z.literal(\"output\"),\n\t\tresponse: z.string(),\n\t}),\n\tz.object({\n\t\texecutionId: z.string(),\n\t\tstatus: z.literal(\"completed\"),\n\t\tresponse: z.string().optional(),\n\t}),\n\tz.object({\n\t\texecutionId: z.string(),\n\t\tstatus: z.literal(\"error\"),\n\t\terror: z.string().optional(),\n\t}),\n])\n\nexport type McpExecutionStatus = z.infer<typeof mcpExecutionStatusSchema>\n","/**\n * Configuration for models that should use simplified single-file read_file tool\n * These models will use the simpler <read_file><path>...</path></read_file> format\n * instead of the more complex multi-file args format\n */\n\n/**\n * Check if a model should use single file read format\n * @param modelId The model ID to check\n * @returns true if the model should use single file reads\n */\nexport function shouldUseSingleFileRead(modelId: string): boolean {\n\treturn modelId.includes(\"grok-code-fast-1\") || modelId.includes(\"code-supernova\")\n}\n","import { z } from \"zod\"\n\n/**\n * TodoStatus\n */\nexport const todoStatusSchema = z.enum([\"pending\", \"in_progress\", \"completed\"] as const)\n\nexport type TodoStatus = z.infer<typeof todoStatusSchema>\n\n/**\n * TodoItem\n */\nexport const todoItemSchema = z.object({\n\tid: z.string(),\n\tcontent: z.string(),\n\tstatus: todoStatusSchema,\n})\n\nexport type TodoItem = z.infer<typeof todoItemSchema>\n","import { z } from \"zod\"\n\n/**\n * CommandExecutionStatus\n */\n\nexport const commandExecutionStatusSchema = z.discriminatedUnion(\"status\", [\n\tz.object({\n\t\texecutionId: z.string(),\n\t\tstatus: z.literal(\"started\"),\n\t\tpid: z.number().optional(),\n\t\tcommand: z.string(),\n\t}),\n\tz.object({\n\t\texecutionId: z.string(),\n\t\tstatus: z.literal(\"output\"),\n\t\toutput: z.string(),\n\t}),\n\tz.object({\n\t\texecutionId: z.string(),\n\t\tstatus: z.literal(\"exited\"),\n\t\texitCode: z.number().optional(),\n\t}),\n\tz.object({\n\t\texecutionId: z.string(),\n\t\tstatus: z.literal(\"fallback\"),\n\t}),\n\tz.object({\n\t\texecutionId: z.string(),\n\t\tstatus: z.literal(\"timeout\"),\n\t}),\n])\n\nexport type CommandExecutionStatus = z.infer<typeof commandExecutionStatusSchema>\n"],"mappings":";AAEA,SAAS,KAAAA,WAAS;;;ACFlB,SAAS,KAAAC,UAAS;;;ACAlB,SAAS,SAAS;AA2BX,IAAM,YAAY;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAEO,IAAM,iBAAiB,EAAE,KAAK,SAAS;AASvC,IAAM,WAAW;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAIO,SAAS,UAAU,KAA+B;AACxD,SAAQ,SAAiC,SAAS,GAAG;AACtD;AAQO,IAAM,gBAAgB,CAAC,aAAa;AAIpC,SAAS,eAAe,KAAoC;AAClE,SAAQ,cAAsC,SAAS,GAAG;AAC3D;AAQO,IAAM,kBAAkB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAIO,SAAS,iBAAiB,KAAsC;AACtE,SAAQ,gBAAwC,SAAS,GAAG;AAC7D;AASO,IAAM,kBAAkB,CAAC,gBAAgB;AAIzC,SAAS,iBAAiB,KAAsC;AACtE,SAAQ,gBAAwC,SAAS,GAAG;AAC7D;AAuCO,IAAM,YAAY;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAEO,IAAM,iBAAiB,EAAE,KAAK,SAAS;AAQvC,IAAM,2BAA2B,EAAE,OAAO;AAAA,EAChD,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,MAAM,EAAE,OAAO,EAAE,SAAS;AAC3B,CAAC;AAiBM,IAAM,wBAAwB,EAAE,OAAO;AAAA,EAC7C,MAAM,EAAE,OAAO;AAAA,EACf,mBAAmB,EAAE,OAAO;AAAA,EAC5B,kBAAkB,EAAE,OAAO;AAAA,EAC3B,SAAS,EAAE,OAAO;AAAA,EAClB,YAAY,EAAE,OAAO,EAAE,SAAS;AACjC,CAAC;AAmBM,IAAM,0BAA0B,EAAE,OAAO;AAAA,EAC/C,cAAc,EAAE,OAAO;AAAA,EACvB,iBAAiB,EAAE,OAAO;AAAA,EAC1B,mBAAmB,EAAE,OAAO;AAAA,EAC5B,kBAAkB,EAAE,OAAO;AAC5B,CAAC;AAgBM,IAAM,qBAAqB,EAAE,OAAO;AAAA,EAC1C,IAAI,EAAE,OAAO;AAAA,EACb,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,CAAC,CAAC;AAAA,EAClD,KAAK,eAAe,SAAS;AAAA,EAC7B,KAAK,eAAe,SAAS;AAAA,EAC7B,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACrC,SAAS,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC9B,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,0BAA0B,EAAE,OAAO,EAAE,SAAS;AAAA,EAC9C,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,EAAE,SAAS;AAAA,EACvD,gBAAgB,yBAAyB,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAKlD,iBAAiB,sBAAsB,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAKhD,mBAAmB,wBAAwB,SAAS;AAAA,EACpD,aAAa,EAAE,QAAQ,EAAE,SAAS;AAAA,EAClC,aAAa,EAAE,MAAM,CAAC,EAAE,QAAQ,QAAQ,GAAG,EAAE,QAAQ,WAAW,CAAC,CAAC,EAAE,SAAS;AAAA,EAC7E,YAAY,EAAE,QAAQ,EAAE,SAAS;AAClC,CAAC;AAQM,IAAM,mBAAmB,EAAE,OAAO;AAAA,EACxC,eAAe,EAAE,OAAO;AAAA,EACxB,gBAAgB,EAAE,OAAO;AAAA,EACzB,kBAAkB,EAAE,OAAO,EAAE,SAAS;AAAA,EACtC,iBAAiB,EAAE,OAAO,EAAE,SAAS;AAAA,EACrC,WAAW,EAAE,OAAO;AAAA,EACpB,eAAe,EAAE,OAAO;AACzB,CAAC;AAQM,IAAM,sBAAsB,EAAE,OAAO;AAAA,EAC3C,WAAW,EAAE,OAAO;AAAA,EACpB,IAAI,EAAE,OAAO;AAAA,EACb,MAAM,EAAE,OAAO;AAAA,EACf,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AACtC,CAAC;;;ACrTD,SAAS,KAAAC,UAAS;AAMX,IAAM,aAAa,CAAC,QAAQ,QAAQ,WAAW,WAAW,OAAO,OAAO;AAExE,IAAM,mBAAmBA,GAAE,KAAK,UAAU;AAQ1C,IAAM,YAAY;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAEO,IAAM,kBAAkBA,GAAE,KAAK,SAAS;AAQxC,IAAM,kBAAkBA,GAAE;AAAA,EAChC;AAAA,EACAA,GAAE,OAAO;AAAA,IACR,UAAUA,GAAE,OAAO;AAAA,IACnB,UAAUA,GAAE,OAAO;AAAA,EACpB,CAAC;AACF;AAOO,IAAM,gBAAgB;AAAA,EAC5B,KAAK;AAAA,EACL,QAAQ;AACT;AAcO,SAAS,iBAAiB,UAAiC;AACjE,SAAO,aAAa,cAAc;AACnC;AASO,SAAS,qBAAqB,cAA2C;AAC/E,SAAO,gBAAgB,cAAc;AACtC;;;AFlFO,IAAK,mBAAL,kBAAKC,sBAAL;AAEN,EAAAA,kBAAA,iBAAc;AAGd,EAAAA,kBAAA,iBAAc;AACd,EAAAA,kBAAA,mBAAgB;AAChB,EAAAA,kBAAA,iBAAc;AACd,EAAAA,kBAAA,iBAAc;AACd,EAAAA,kBAAA,mBAAgB;AAChB,EAAAA,kBAAA,gBAAa;AACb,EAAAA,kBAAA,qBAAkB;AAClB,EAAAA,kBAAA,mBAAgB;AAChB,EAAAA,kBAAA,cAAW;AAGX,EAAAA,kBAAA,gBAAa;AACb,EAAAA,kBAAA,kBAAe;AACf,EAAAA,kBAAA,iBAAc;AACd,EAAAA,kBAAA,mBAAgB;AAChB,EAAAA,kBAAA,6BAA0B;AAC1B,EAAAA,kBAAA,2BAAwB;AAGxB,EAAAA,kBAAA,aAAU;AACV,EAAAA,kBAAA,sBAAmB;AACnB,EAAAA,kBAAA,sBAAmB;AACnB,EAAAA,kBAAA,qBAAkB;AAGlB,EAAAA,kBAAA,2BAAwB;AACxB,EAAAA,kBAAA,oBAAiB;AAGjB,EAAAA,kBAAA,iBAAc;AACd,EAAAA,kBAAA,4BAAyB;AAGzB,EAAAA,kBAAA,cAAW;AACX,EAAAA,kBAAA,cAAW;AAvCA,SAAAA;AAAA,GAAA;AA8CL,IAAM,sBAAsBC,GAAE,OAAO;AAAA,EAC3C,CAAC,+BAA4B,GAAGA,GAAE,MAAM,CAACA,GAAE,OAAO,CAAC,CAAC;AAAA,EAEpD,CAAC,+BAA4B,GAAGA,GAAE,MAAM,CAACA,GAAE,OAAO,CAAC,CAAC;AAAA,EACpD,CAAC,mCAA8B,GAAGA,GAAE,MAAM;AAAA,IACzCA,GAAE,OAAO;AAAA,IACT;AAAA,IACA;AAAA,IACAA,GAAE,OAAO;AAAA,MACR,WAAWA,GAAE,QAAQ;AAAA,IACtB,CAAC;AAAA,EACF,CAAC;AAAA,EACD,CAAC,+BAA4B,GAAGA,GAAE,MAAM,CAACA,GAAE,OAAO,CAAC,CAAC;AAAA,EACpD,CAAC,+BAA4B,GAAGA,GAAE,MAAM,CAACA,GAAE,OAAO,CAAC,CAAC;AAAA,EACpD,CAAC,mCAA8B,GAAGA,GAAE,MAAM,CAACA,GAAE,OAAO,CAAC,CAAC;AAAA,EACtD,CAAC,6BAA2B,GAAGA,GAAE,MAAM,CAACA,GAAE,OAAO,CAAC,CAAC;AAAA,EACnD,CAAC,uCAAgC,GAAGA,GAAE,MAAM,CAACA,GAAE,OAAO,CAAC,CAAC;AAAA,EACxD,CAAC,mCAA8B,GAAGA,GAAE,MAAM,CAACA,GAAE,OAAO,CAAC,CAAC;AAAA,EACtD,CAAC,yBAAyB,GAAGA,GAAE,MAAM,CAACA,GAAE,OAAO,CAAC,CAAC;AAAA,EAEjD,CAAC,6BAA2B,GAAGA,GAAE,MAAM,CAACA,GAAE,OAAO,CAAC,CAAC;AAAA,EACnD,CAAC,iCAA6B,GAAGA,GAAE,MAAM,CAACA,GAAE,OAAO,CAAC,CAAC;AAAA,EACrD,CAAC,+BAA4B,GAAGA,GAAE,MAAM,CAACA,GAAE,OAAO,GAAGA,GAAE,OAAO,CAAC,CAAC;AAAA,EAChE,CAAC,mCAA8B,GAAGA,GAAE,MAAM;AAAA,IACzCA,GAAE,OAAO;AAAA;AAAA,IACTA,GAAE,OAAO;AAAA;AAAA,EACV,CAAC;AAAA,EACD,CAAC,uDAAwC,GAAGA,GAAE,MAAM;AAAA,IACnDA,GAAE,OAAO;AAAA;AAAA,IACTA,GAAE,OAAO;AAAA;AAAA,IACTA,GAAE,OAAO;AAAA;AAAA,EACV,CAAC;AAAA,EACD,CAAC,mDAAsC,GAAGA,GAAE,MAAM;AAAA,IACjDA,GAAE,OAAO;AAAA;AAAA,IACTA,GAAE,OAAO;AAAA;AAAA,EACV,CAAC;AAAA,EAED,CAAC,uBAAwB,GAAGA,GAAE,MAAM;AAAA,IACnCA,GAAE,OAAO;AAAA,MACR,QAAQA,GAAE,OAAO;AAAA,MACjB,QAAQA,GAAE,MAAM,CAACA,GAAE,QAAQ,SAAS,GAAGA,GAAE,QAAQ,SAAS,CAAC,CAAC;AAAA,MAC5D,SAAS;AAAA,IACV,CAAC;AAAA,EACF,CAAC;AAAA,EACD,CAAC,yCAAiC,GAAGA,GAAE,MAAM,CAACA,GAAE,OAAO,GAAGA,GAAE,OAAO,CAAC,CAAC;AAAA,EACrE,CAAC,yCAAiC,GAAGA,GAAE,MAAM,CAACA,GAAE,OAAO,CAAC,CAAC;AAAA,EACzD,CAAC,uCAAgC,GAAGA,GAAE,MAAM,CAACA,GAAE,OAAO,CAAC,CAAC;AAAA,EAExD,CAAC,qCAA+B,GAAGA,GAAE,MAAM,CAACA,GAAE,OAAO,GAAG,iBAAiBA,GAAE,OAAO,CAAC,CAAC;AAAA,EACpF,CAAC,mDAAsC,GAAGA,GAAE,MAAM,CAACA,GAAE,OAAO,GAAG,kBAAkB,eAAe,CAAC;AAAA,EAEjG,CAAC,+BAA4B,GAAGA,GAAE,MAAM,CAACA,GAAE,OAAO,CAAC,CAAC;AAAA,EACpD,CAAC,qDAAuC,GAAGA,GAAE,MAAM,CAACA,GAAE,OAAO,EAAE,MAAMA,GAAE,OAAO,GAAG,UAAUA,GAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AAC1G,CAAC;AAQM,IAAM,kBAAkBA,GAAE,mBAAmB,aAAa;AAAA;AAAA,EAEhEA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,+BAA4B;AAAA,IACjD,SAAS,oBAAoB,MAAM,+BAA4B;AAAA,IAC/D,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA;AAAA,EAGDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,+BAA4B;AAAA,IACjD,SAAS,oBAAoB,MAAM,+BAA4B;AAAA,IAC/D,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA,EACDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,mCAA8B;AAAA,IACnD,SAAS,oBAAoB,MAAM,mCAA8B;AAAA,IACjE,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA,EACDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,+BAA4B;AAAA,IACjD,SAAS,oBAAoB,MAAM,+BAA4B;AAAA,IAC/D,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA,EACDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,+BAA4B;AAAA,IACjD,SAAS,oBAAoB,MAAM,+BAA4B;AAAA,IAC/D,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA,EACDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,mCAA8B;AAAA,IACnD,SAAS,oBAAoB,MAAM,mCAA8B;AAAA,IACjE,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA,EACDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,6BAA2B;AAAA,IAChD,SAAS,oBAAoB,MAAM,6BAA2B;AAAA,IAC9D,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA,EACDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,uCAAgC;AAAA,IACrD,SAAS,oBAAoB,MAAM,uCAAgC;AAAA,IACnE,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA,EACDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,mCAA8B;AAAA,IACnD,SAAS,oBAAoB,MAAM,mCAA8B;AAAA,IACjE,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA,EACDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,yBAAyB;AAAA,IAC9C,SAAS,oBAAoB,MAAM,yBAAyB;AAAA,IAC5D,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA;AAAA,EAGDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,6BAA2B;AAAA,IAChD,SAAS,oBAAoB,MAAM,6BAA2B;AAAA,IAC9D,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA,EACDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,iCAA6B;AAAA,IAClD,SAAS,oBAAoB,MAAM,iCAA6B;AAAA,IAChE,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA,EACDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,+BAA4B;AAAA,IACjD,SAAS,oBAAoB,MAAM,+BAA4B;AAAA,IAC/D,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA,EACDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,mCAA8B;AAAA,IACnD,SAAS,oBAAoB,MAAM,mCAA8B;AAAA,IACjE,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA,EACDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,uDAAwC;AAAA,IAC7D,SAAS,oBAAoB,MAAM,uDAAwC;AAAA,IAC3E,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA,EACDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,mDAAsC;AAAA,IAC3D,SAAS,oBAAoB,MAAM,mDAAsC;AAAA,IACzE,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA;AAAA,EAGDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,uBAAwB;AAAA,IAC7C,SAAS,oBAAoB,MAAM,uBAAwB;AAAA,IAC3D,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA,EACDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,yCAAiC;AAAA,IACtD,SAAS,oBAAoB,MAAM,yCAAiC;AAAA,IACpE,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA,EACDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,yCAAiC;AAAA,IACtD,SAAS,oBAAoB,MAAM,yCAAiC;AAAA,IACpE,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA;AAAA,EAGDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,qCAA+B;AAAA,IACpD,SAAS,oBAAoB,MAAM,qCAA+B;AAAA,IAClE,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA,EACDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,mDAAsC;AAAA,IAC3D,SAAS,oBAAoB,MAAM,mDAAsC;AAAA,IACzE,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA;AAAA,EAGDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,yBAAyB;AAAA,IAC9C,SAASA,GAAE,UAAU;AAAA,IACrB,QAAQA,GAAE,OAAO;AAAA,EAClB,CAAC;AAAA,EACDA,GAAE,OAAO;AAAA,IACR,WAAWA,GAAE,QAAQ,yBAAyB;AAAA,IAC9C,SAASA,GAAE,UAAU;AAAA,IACrB,QAAQA,GAAE,OAAO;AAAA,EAClB,CAAC;AACF,CAAC;;;AGnPD,SAAS,KAAAC,UAAS;AAqGX,IAAK,aAAL,kBAAKC,gBAAL;AACN,EAAAA,YAAA,aAAU;AACV,EAAAA,YAAA,iBAAc;AACd,EAAAA,YAAA,eAAY;AACZ,EAAAA,YAAA,UAAO;AACP,EAAAA,YAAA,UAAO;AALI,SAAAA;AAAA,GAAA;AAQL,IAAM,qBAAqBD,GAAE,OAAO;AAAA,EAC1C,MAAMA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,QAAQA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS;AACtC,CAAC;;;AChHD,SAAS,KAAAE,WAAS;;;ACAlB,SAAS,KAAAC,UAAS;;;ACAlB,SAAS,KAAAC,UAAS;AAMX,IAAM,mBAAmB,CAAC,OAAO,UAAU,MAAM;AAEjD,IAAM,yBAAyBA,GAAE,KAAK,gBAAgB;AAQtD,IAAM,mCAAmCA,GAAE,MAAM,CAAC,wBAAwBA,GAAE,QAAQ,SAAS,CAAC,CAAC;AAQ/F,IAAM,2BAA2B,CAAC,QAAQ,WAAW,OAAO,UAAU,QAAQ,OAAO;AAErF,IAAM,gCAAgCA,GAAE,KAAK,wBAAwB;AAOrE,IAAM,+BAA+B,CAAC,WAAW,QAAQ,WAAW,OAAO,UAAU,QAAQ,OAAO;AACpG,IAAM,+BAA+BA,GAAE,KAAK,4BAA4B;AAMxE,IAAM,kBAAkB,CAAC,OAAO,UAAU,MAAM;AAEhD,IAAM,wBAAwBA,GAAE,KAAK,eAAe;AAOpD,IAAM,eAAe,CAAC,WAAW,QAAQ,UAAU;AACnD,IAAM,oBAAoBA,GAAE,KAAK,YAAY;AAO7C,IAAM,kBAAkB,CAAC,cAAc,eAAe,aAAa,mBAAmB;AAEtF,IAAM,wBAAwBA,GAAE,KAAK,eAAe;AAIpD,IAAM,mBAAmB,CAAC,UAChC,gBAAgB,SAAS,KAAuB;AAM1C,IAAM,kBAAkBA,GAAE,OAAO;AAAA,EACvC,WAAWA,GAAE,OAAO,EAAE,QAAQ;AAAA,EAC9B,mBAAmBA,GAAE,OAAO,EAAE,QAAQ;AAAA,EACtC,eAAeA,GAAE,OAAO;AAAA,EACxB,gBAAgBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EACrC,qBAAqBA,GAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,EAI/B,sBAAsBA,GAAE,KAAK,CAAC,aAAa,KAAK,CAAC,EAAE,SAAS;AAAA;AAAA,EAE5D,mBAAmBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EACxC,yBAAyBA,GAAE,QAAQ,EAAE,SAAS;AAAA;AAAA,EAE9C,yBAAyBA,GAAE,QAAQ,EAAE,SAAS;AAAA;AAAA,EAE9C,qBAAqBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EAC1C,oBAAoBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACxC,yBAAyBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EAC9C,yBAAyBA,GACvB,MAAM,CAACA,GAAE,QAAQ,GAAGA,GAAE,MAAMA,GAAE,KAAK,CAAC,WAAW,QAAQ,WAAW,OAAO,UAAU,QAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,EACtG,SAAS;AAAA,EACX,yBAAyBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EAC9C,mBAAmBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EACxC,qBAAqBA,GAAE,MAAM,qBAAqB,EAAE,SAAS;AAAA,EAC7D,YAAYA,GAAE,OAAO,EAAE,SAAS;AAAA,EAChC,aAAaA,GAAE,OAAO,EAAE,SAAS;AAAA,EACjC,kBAAkBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACtC,iBAAiBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACrC,aAAaA,GAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAEjC,iBAAiB,8BAA8B,SAAS;AAAA,EACxD,wBAAwBA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC5C,gBAAgBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACpC,gBAAgBA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS;AAAA;AAAA,EAE7C,YAAYA,GAAE,QAAQ,EAAE,SAAS;AAAA;AAAA,EAEjC,gBAAgBA,GAAE,QAAQ,EAAE,SAAS;AAAA;AAAA,EAErC,QAAQA,GAAE,QAAQ,EAAE,SAAS;AAAA;AAAA,EAE7B,qBAAqBA,GAAE,QAAQ,EAAE,SAAS;AAAA;AAAA,EAE1C,qBAAqBA,GAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA,EAGxD,eAAeA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAI5C,eAAeA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM5C,OAAOA,GACL;AAAA,IACAA,GAAE,OAAO;AAAA,MACR,MAAM,kBAAkB,SAAS;AAAA;AAAA,MACjC,eAAeA,GAAE,OAAO;AAAA,MACxB,YAAYA,GAAE,OAAO,EAAE,SAAS;AAAA,MAChC,aAAaA,GAAE,OAAO,EAAE,SAAS;AAAA,MACjC,kBAAkBA,GAAE,OAAO,EAAE,SAAS;AAAA,MACtC,iBAAiBA,GAAE,OAAO,EAAE,SAAS;AAAA,IACtC,CAAC;AAAA,EACF,EACC,SAAS;AACZ,CAAC;;;AC3ID,SAAS,KAAAC,UAAS;AAKX,IAAM,0BAA0B;AAAA,EACtC,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,wBAAwB;AAAA,EACxB,qBAAqB;AAAA,EACrB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,0BAA0B;AAAA,EAC1B,mBAAmB;AACpB;AAMO,IAAM,4BAA4BA,GAAE,OAAO;AAAA,EACjD,sBAAsBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EAC3C,wBAAwBA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC5C,+BAA+BA,GAC7B,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC,EACA,SAAS;AAAA,EACX,8BAA8BA,GAAE,OAAO,EAAE,SAAS;AAAA,EAClD,8BAA8BA,GAAE,OAAO,EAAE,SAAS;AAAA,EAClD,qCAAqCA,GAAE,OAAO,EAAE,SAAS;AAAA,EACzD,6BAA6BA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC/D,+BAA+BA,GAC7B,OAAO,EACP,IAAI,wBAAwB,kBAAkB,EAC9C,IAAI,wBAAwB,kBAAkB,EAC9C,SAAS;AAAA;AAAA,EAEX,sCAAsCA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC1D,6CAA6CA,GAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAEjE,4BAA4BA,GAAE,OAAO,EAAE,SAAS;AAAA,EAChD,6BAA6BA,GAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAEjD,yCAAyCA,GAAE,OAAO,EAAE,SAAS;AAC9D,CAAC;AAQM,IAAM,4BAA4BA,GAAE,OAAO;AAAA,EACjD,QAAQA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,OAAO,EAAE,WAAWA,GAAE,OAAO,EAAE,CAAC,CAAC,EAAE,SAAS;AAAA,EAC3E,QAAQA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,OAAO,EAAE,WAAWA,GAAE,OAAO,EAAE,CAAC,CAAC,EAAE,SAAS;AAAA,EAC3E,qBAAqBA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,OAAO,EAAE,WAAWA,GAAE,OAAO,EAAE,CAAC,CAAC,EAAE,SAAS;AAAA,EACxF,QAAQA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,OAAO,EAAE,WAAWA,GAAE,OAAO,EAAE,CAAC,CAAC,EAAE,SAAS;AAAA,EAC3E,SAASA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,OAAO,EAAE,WAAWA,GAAE,OAAO,EAAE,CAAC,CAAC,EAAE,SAAS;AAAA,EAC5E,qBAAqBA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,OAAO,EAAE,WAAWA,GAAE,OAAO,EAAE,CAAC,CAAC,EAAE,SAAS;AAAA,EACxF,YAAYA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,OAAO,EAAE,WAAWA,GAAE,OAAO,EAAE,CAAC,CAAC,EAAE,SAAS;AAAA,EAC/E,SAASA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,OAAO,EAAE,WAAWA,GAAE,OAAO,EAAE,CAAC,CAAC,EAAE,SAAS;AAC7E,CAAC;AAQM,IAAM,8BAA8BA,GAAE,OAAO;AAAA,EACnD,oBAAoBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACxC,uBAAuBA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC3C,sCAAsCA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC1D,qCAAqCA,GAAE,OAAO,EAAE,SAAS;AAAA,EACzD,6CAA6CA,GAAE,OAAO,EAAE,SAAS;AAAA,EACjE,2BAA2BA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC/C,4BAA4BA,GAAE,OAAO,EAAE,SAAS;AAAA,EAChD,oCAAoCA,GAAE,OAAO,EAAE,SAAS;AAAA,EACxD,+BAA+BA,GAAE,OAAO,EAAE,SAAS;AACpD,CAAC;;;AClFM,IAAM,0BAA4C;AAElD,IAAM,kBAAkB;AAAA,EAC9B,qBAAqB;AAAA,IACpB,WAAW;AAAA;AAAA,IACX,eAAe;AAAA;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA;AAAA,IACb,kBAAkB;AAAA;AAAA,IAClB,iBAAiB;AAAA;AAAA,IACjB,yBAAyB;AAAA;AAAA,IAEzB,OAAO;AAAA,MACN;AAAA,QACC,eAAe;AAAA;AAAA,QACf,YAAY;AAAA;AAAA,QACZ,aAAa;AAAA;AAAA,QACb,kBAAkB;AAAA;AAAA,QAClB,iBAAiB;AAAA;AAAA,MAClB;AAAA,IACD;AAAA,EACD;AAAA,EACA,4BAA4B;AAAA,IAC3B,WAAW;AAAA;AAAA,IACX,eAAe;AAAA;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA;AAAA,IACb,kBAAkB;AAAA;AAAA,IAClB,iBAAiB;AAAA;AAAA,IACjB,yBAAyB;AAAA;AAAA,IAEzB,OAAO;AAAA,MACN;AAAA,QACC,eAAe;AAAA;AAAA,QACf,YAAY;AAAA;AAAA,QACZ,aAAa;AAAA;AAAA,QACb,kBAAkB;AAAA;AAAA,QAClB,iBAAiB;AAAA;AAAA,MAClB;AAAA,IACD;AAAA,EACD;AAAA,EACA,4BAA4B;AAAA,IAC3B,WAAW;AAAA;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA;AAAA,IACb,kBAAkB;AAAA;AAAA,IAClB,iBAAiB;AAAA;AAAA,IACjB,yBAAyB;AAAA,EAC1B;AAAA,EACA,4BAA4B;AAAA,IAC3B,WAAW;AAAA;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA;AAAA,IACb,kBAAkB;AAAA;AAAA,IAClB,iBAAiB;AAAA;AAAA,IACjB,yBAAyB;AAAA,EAC1B;AAAA,EACA,0BAA0B;AAAA,IACzB,WAAW;AAAA;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA;AAAA,IACb,kBAAkB;AAAA;AAAA,IAClB,iBAAiB;AAAA;AAAA,IACjB,yBAAyB;AAAA,EAC1B;AAAA,EACA,uCAAuC;AAAA,IACtC,WAAW;AAAA;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA;AAAA,IACb,kBAAkB;AAAA;AAAA,IAClB,iBAAiB;AAAA;AAAA,IACjB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,EAC1B;AAAA,EACA,8BAA8B;AAAA,IAC7B,WAAW;AAAA;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA;AAAA,IACb,kBAAkB;AAAA;AAAA,IAClB,iBAAiB;AAAA;AAAA,EAClB;AAAA,EACA,8BAA8B;AAAA,IAC7B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA;AAAA,IACb,kBAAkB;AAAA;AAAA,IAClB,iBAAiB;AAAA;AAAA,EAClB;AAAA,EACA,6BAA6B;AAAA,IAC5B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,EAClB;AAAA,EACA,0BAA0B;AAAA,IACzB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,EAClB;AAAA,EACA,2BAA2B;AAAA,IAC1B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,EAClB;AAAA,EACA,6BAA6B;AAAA,IAC5B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,yBAAyB;AAAA,IACzB,aACC;AAAA,EACF;AACD;AAEO,IAAM,+BAA+B;;;ACvKrC,IAAM,gBAAgB;AAAA,EAC5B,+BAA+B;AAAA,IAC9B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,mBAAmB;AAAA,IAClB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,2BAA2B;AAAA,IAC1B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,gCAAgC;AAAA,IAC/B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,gCAAgC;AAAA,IAC/B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,6BAA6B;AAAA,IAC5B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aACC;AAAA,EACF;AAAA,EACA,6BAA6B;AAAA,IAC5B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aACC;AAAA,EACF;AAAA,EACA,sCAAsC;AAAA,IACrC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,uCAAuC;AAAA,IACtC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,uBAAuB;AAAA,IACtB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,oCAAoC;AAAA,IACnC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACd;AACD;AAIO,IAAM,wBAAwB;;;ACpI9B,IAAM,wBAAwC;AAE9C,IAAM,oCAAoD;AAM1D,IAAM,gBAAgB;AAAA,EAC5B,6CAA6C;AAAA,IAC5C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,yBAAyB;AAAA,IACzB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,wBAAwB;AAAA,IACxB,gBAAgB;AAAA,IAChB,gBAAgB,CAAC,UAAU,YAAY,OAAO;AAAA,EAC/C;AAAA,EACA,wBAAwB;AAAA,IACvB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA;AAAA,IAClB,iBAAiB;AAAA;AAAA,IACjB,wBAAwB;AAAA,IACxB,gBAAgB;AAAA,IAChB,gBAAgB,CAAC,QAAQ;AAAA,EAC1B;AAAA,EACA,0CAA0C;AAAA,IACzC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA;AAAA,IAClB,iBAAiB;AAAA;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,yBAAyB;AAAA,IACxB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA;AAAA,IAClB,iBAAiB;AAAA;AAAA,IACjB,wBAAwB;AAAA,IACxB,gBAAgB;AAAA,IAChB,gBAAgB,CAAC,QAAQ;AAAA,EAC1B;AAAA,EACA,0BAA0B;AAAA,IACzB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA;AAAA,IAClB,iBAAiB;AAAA;AAAA,IACjB,wBAAwB;AAAA,IACxB,gBAAgB;AAAA,IAChB,gBAAgB,CAAC,QAAQ;AAAA,EAC1B;AAAA,EACA,2CAA2C;AAAA,IAC1C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,yBAAyB;AAAA,IACzB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,wBAAwB;AAAA,IACxB,gBAAgB;AAAA,IAChB,gBAAgB,CAAC,UAAU,YAAY,OAAO;AAAA,EAC/C;AAAA,EACA,2CAA2C;AAAA,IAC1C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,yBAAyB;AAAA,IACzB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,wBAAwB;AAAA,IACxB,gBAAgB;AAAA,IAChB,gBAAgB,CAAC,UAAU,YAAY,OAAO;AAAA,EAC/C;AAAA,EACA,2CAA2C;AAAA,IAC1C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,yBAAyB;AAAA,IACzB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,wBAAwB;AAAA,IACxB,gBAAgB;AAAA,IAChB,gBAAgB,CAAC,UAAU,YAAY,OAAO;AAAA,EAC/C;AAAA,EACA,yCAAyC;AAAA,IACxC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,yBAAyB;AAAA,IACzB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,wBAAwB;AAAA,IACxB,gBAAgB;AAAA,IAChB,gBAAgB,CAAC,UAAU,YAAY,OAAO;AAAA,EAC/C;AAAA,EACA,6CAA6C;AAAA,IAC5C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,yBAAyB;AAAA,IACzB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,wBAAwB;AAAA,IACxB,gBAAgB;AAAA,IAChB,gBAAgB,CAAC,UAAU,YAAY,OAAO;AAAA,EAC/C;AAAA,EACA,6CAA6C;AAAA,IAC5C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,wBAAwB;AAAA,IACxB,gBAAgB;AAAA,IAChB,gBAAgB,CAAC,UAAU,YAAY,OAAO;AAAA,EAC/C;AAAA,EACA,4CAA4C;AAAA,IAC3C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,wBAAwB;AAAA,IACxB,gBAAgB;AAAA,IAChB,gBAAgB,CAAC,UAAU,YAAY,OAAO;AAAA,EAC/C;AAAA,EACA,4CAA4C;AAAA,IAC3C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,yBAAyB;AAAA,IACzB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA;AAAA,IAClB,iBAAiB;AAAA;AAAA,IACjB,wBAAwB;AAAA,IACxB,gBAAgB;AAAA,IAChB,gBAAgB,CAAC,UAAU,YAAY,OAAO;AAAA,EAC/C;AAAA,EACA,6CAA6C;AAAA,IAC5C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,yCAAyC;AAAA,IACxC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,2CAA2C;AAAA,IAC1C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,0CAA0C;AAAA,IACzC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,6BAA6B;AAAA,IAC5B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,6BAA6B;AAAA,IAC5B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,iCAAiC;AAAA,IAChC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,oBAAoB;AAAA,IACnB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,0BAA0B;AAAA,IACzB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,2BAA2B;AAAA,IAC1B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,mCAAmC;AAAA,IAClC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,mCAAmC;AAAA,IAClC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,mCAAmC;AAAA,IAClC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,kCAAkC;AAAA,IACjC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,kCAAkC;AAAA,IACjC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,oCAAoC;AAAA,IACnC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,mCAAmC;AAAA,IAClC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,qDAAqD;AAAA,IACpD,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,kCAAkC;AAAA,IACjC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,iCAAiC;AAAA,IAChC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,gCAAgC;AAAA,IAC/B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,+BAA+B;AAAA,IAC9B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,kCAAkC;AAAA,IACjC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,qCAAqC;AAAA,IACpC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,qCAAqC;AAAA,IACpC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,6BAA6B;AAAA,IAC5B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,mBAAmB;AAAA,IACnB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,sBAAsB;AAAA,IACrB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,mBAAmB;AAAA,IACnB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,2BAA2B;AAAA,IAC1B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,mCAAmC;AAAA,IAClC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AACD;AAEO,IAAM,8BAA8B;AAEpC,IAAM,qBAAqB;AAE3B,IAAM,0BAA0B;AAKhC,IAAM,gCAAyD;AAAA;AAAA,EAErE,CAAC,kBAAkB,KAAK;AAAA,EACxB,CAAC,kBAAkB,KAAK;AAAA;AAAA,EAExB,CAAC,iBAAiB,KAAK;AAAA;AAAA,EAEvB,CAAC,WAAW,KAAK;AAAA;AAAA,EAEjB,CAAC,OAAO,KAAK;AAAA;AAAA,EAEb,CAAC,OAAO,KAAK;AAAA;AAAA,EAEb,CAAC,OAAO,OAAO;AAAA;AAAA,EAEf,CAAC,OAAO,KAAK;AAAA;AAAA,EAEb,CAAC,OAAO,KAAK;AACd;AAIO,IAAM,kBAAkB;AAAA,EAC9B,EAAE,OAAO,aAAa,OAAO,YAAY;AAAA,EACzC,EAAE,OAAO,aAAa,OAAO,YAAY;AAAA,EACzC,EAAE,OAAO,aAAa,OAAO,YAAY;AAAA,EACzC,EAAE,OAAO,aAAa,OAAO,YAAY;AAAA,EACzC,EAAE,OAAO,kBAAkB,OAAO,iBAAiB;AAAA,EACnD,EAAE,OAAO,kBAAkB,OAAO,iBAAiB;AAAA,EACnD,EAAE,OAAO,kBAAkB,OAAO,iBAAiB;AAAA,EACnD,EAAE,OAAO,cAAc,OAAO,aAAa;AAAA,EAC3C,EAAE,OAAO,cAAc,OAAO,aAAa;AAAA,EAC3C,EAAE,OAAO,kBAAkB,OAAO,iBAAiB;AAAA,EACnD,EAAE,OAAO,kBAAkB,OAAO,iBAAiB;AAAA,EACnD,EAAE,OAAO,aAAa,OAAO,YAAY;AAAA,EACzC,EAAE,OAAO,gBAAgB,OAAO,eAAe;AAAA,EAC/C,EAAE,OAAO,gBAAgB,OAAO,eAAe;AAAA,EAC/C,EAAE,OAAO,aAAa,OAAO,YAAY;AAAA,EACzC,EAAE,OAAO,aAAa,OAAO,YAAY;AAAA,EACzC,EAAE,OAAO,aAAa,OAAO,YAAY;AAAA,EACzC,EAAE,OAAO,cAAc,OAAO,aAAa;AAAA,EAC3C,EAAE,OAAO,cAAc,OAAO,aAAa;AAAA,EAC3C,EAAE,OAAO,cAAc,OAAO,aAAa;AAAA,EAC3C,EAAE,OAAO,gBAAgB,OAAO,eAAe;AAAA,EAC/C,EAAE,OAAO,aAAa,OAAO,YAAY;AAAA,EACzC,EAAE,OAAO,iBAAiB,OAAO,gBAAgB;AAAA,EACjD,EAAE,OAAO,iBAAiB,OAAO,gBAAgB;AAClD,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,MAAM,cAAc,EAAE,KAAK,CAAC;AAExC,IAAM,+BAA+B;AAAA,EAC3C;AAAA,EACA;AACD;AAQO,IAAM,qCAAqC;AAAA,EACjD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;;;AC9iBO,IAAM,yBAA0C;AAEhD,IAAM,iBAAiB;AAAA,EAC7B,eAAe;AAAA,IACd,WAAW;AAAA;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,kCAAkC;AAAA,IACjC,WAAW;AAAA;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,iBAAiB;AAAA,IAChB,WAAW;AAAA;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,cAAc;AAAA,IACb,WAAW;AAAA;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,gBAAgB;AAAA,IACf,WAAW;AAAA;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AACD;;;ACdO,IAAM,uBAAsC;AAE5C,IAAM,eAAe;AAAA,EAC3B,gCAAgC;AAAA,IAC/B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,2BAA2B;AAAA,IAC1B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,2BAA2B;AAAA,IAC1B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,6BAA6B;AAAA,IAC5B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,sCAAsC;AAAA,IACrC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AAAA,EACA,mCAAmC;AAAA,IAClC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AAAA,EACA,iCAAiC;AAAA,IAChC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AAAA,EACA,kCAAkC;AAAA,IACjC,WAAW;AAAA;AAAA,IACX,eAAe;AAAA;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,2CAA2C;AAAA,IAC1C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,sCAAsC;AAAA,IACrC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,0BAA0B;AAAA,IACzB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,gDAAgD;AAAA,IAC/C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,yBAAyB;AAAA,IACxB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,0CAA0C;AAAA,IACzC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,2CAA2C;AAAA,IAC1C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,mDAAmD;AAAA,IAClD,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,gCAAgC;AAAA,IAC/B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,gCAAgC;AAAA,IAC/B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,gCAAgC;AAAA,IAC/B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,sCAAsC;AAAA,IACrC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,wBAAwB;AAAA,IACvB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,kBAAkB;AAAA,IACjB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,sBAAsB;AAAA,IACrB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,kBAAkB;AAAA,IACjB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,iBAAiB;AAAA,IAChB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,2BAA2B;AAAA,IAC1B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,gCAAgC;AAAA,IAC/B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,uBAAuB;AAAA,IACtB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AAAA,EACA,uBAAuB;AAAA,IACtB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AAAA,EACA,yBAAyB;AAAA,IACxB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,uBAAuB;AAAA,IACtB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AAAA,EACA,yBAAyB;AAAA,IACxB,WAAW;AAAA;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,8CAA8C;AAAA,IAC7C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AAAA,EACA,2CAA2C;AAAA,IAC1C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,mCAAmC;AAAA,IAClC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,oCAAoC;AAAA,IACnC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,sCAAsC;AAAA,IACrC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,oCAAoC;AAAA,IACnC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AAAA,EACA,oCAAoC;AAAA,IACnC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AAAA,EACA,oCAAoC;AAAA,IACnC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AACD;AAEO,IAAM,yBAAoC,aAAa,oBAAoB;;;AChalF,IAAM,sBAAsB;AAYrB,SAAS,0BAA0B,WAA2B;AAEpE,SAAO,UAAU,QAAQ,qBAAqB,KAAK;AACpD;AAIO,IAAM,2BAA8C;AACpD,IAAM,wCAAwC;AAa9C,SAAS,qBAAqB,aAAgC,YAAY,OAAe;AAC/F,SAAO,YAAY,0BAA0B,WAAW,IAAI;AAC7D;AAEO,IAAM,mBAAmB;AAAA,EAC/B,qBAAqB;AAAA,IACpB,GAAG,gBAAgB,mBAAmB;AAAA,IACtC,gBAAgB;AAAA,IAChB,qBAAqB;AAAA;AAAA,IACrB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA;AAAA,IAEzB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EACtB;AAAA,EACA,kCAAkC;AAAA,IACjC,GAAG,gBAAgB,mBAAmB;AAAA,IACtC,eAAe;AAAA;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA;AAAA,IACrB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA;AAAA,IAEzB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EACtB;AAAA,EACA,4BAA4B;AAAA,IAC3B,GAAG,gBAAgB,0BAA0B;AAAA,IAC7C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA;AAAA,IACrB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA;AAAA,IAEzB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EACtB;AAAA,EACA,4BAA4B;AAAA,IAC3B,GAAG,gBAAgB,0BAA0B;AAAA,IAC7C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA;AAAA,IACrB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA;AAAA,IAEzB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EACtB;AAAA,EACA,4BAA4B;AAAA,IAC3B,GAAG,gBAAgB,0BAA0B;AAAA,IAC7C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA;AAAA,IACrB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA;AAAA,IAEzB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EACtB;AAAA,EACA,0BAA0B;AAAA,IACzB,GAAG,gBAAgB,wBAAwB;AAAA,IAC3C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA;AAAA,IACrB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA;AAAA,IAEzB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EACtB;AAAA,EACA,8BAA8B;AAAA,IAC7B,GAAG,gBAAgB,4BAA4B;AAAA,IAC/C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA;AAAA,IACrB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA;AAAA,IAEzB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EACtB;AAAA,EACA,8BAA8B;AAAA,IAC7B,GAAG,gBAAgB,4BAA4B;AAAA,IAC/C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA;AAAA,IACrB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA;AAAA,IAEzB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EACtB;AAAA,EACA,6BAA6B;AAAA,IAC5B,GAAG,gBAAgB,2BAA2B;AAAA,IAC9C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA;AAAA,IACrB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA;AAAA,IAEzB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EACtB;AAAA,EACA,6BAA6B;AAAA,IAC5B,GAAG,gBAAgB,2BAA2B;AAAA,IAC9C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA;AAAA,IACrB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA;AAAA,IAEzB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EACtB;AACD;;;ACpJO,IAAM,yBAA0C;AAEhD,IAAM,iBAAiB;AAAA,EAC7B,iBAAiB;AAAA,IAChB,WAAW;AAAA;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA;AAAA,IACb,kBAAkB;AAAA;AAAA,IAClB,iBAAiB;AAAA;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,qBAAqB;AAAA,IACpB,WAAW;AAAA;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA;AAAA,IACb,kBAAkB;AAAA;AAAA,IAClB,iBAAiB;AAAA;AAAA,IACjB,aAAa;AAAA,EACd;AACD;AAGO,IAAM,gCAAgC;;;ACnCtC,IAAM,uBAAuB;AAE7B,IAAM,eAAe;AAAA,EAC3B,0BAA0B;AAAA,IACzB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA;AAAA,IACb,kBAAkB;AAAA;AAAA,IAClB,iBAAiB;AAAA;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,mCAAmC;AAAA,IAClC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA;AAAA,IACb,kBAAkB;AAAA;AAAA,IAClB,iBAAiB;AAAA;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,gCAAgC;AAAA,IAC/B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA;AAAA,IACb,kBAAkB;AAAA;AAAA,IAClB,iBAAiB;AAAA;AAAA,IACjB,aAAa;AAAA,EACd;AACD;AAEO,IAAM,yBAAoC,aAAa,oBAAoB;AAE3E,IAAM,sBAAsB;AAC5B,IAAM,uBAAuB;;;ACrC7B,IAAM,oBAAoB;AAAA,EAChC,gCAAgC;AAAA,IAC/B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,gCAAgC;AAAA,IAC/B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,+BAA+B;AAAA,IAC9B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,uBAAuB;AAAA,IACtB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,uCAAuC;AAAA,IACtC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AACD;AAEO,IAAM,4BAAgD;;;AC1CtD,IAAM,0BAA4C;AAElD,IAAM,kBAAkB;AAAA,EAC9B,mDAAmD;AAAA,IAClD,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,aACC;AAAA,EACF;AAAA,EACA,8CAA8C;AAAA,IAC7C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AAAA,EACA,wCAAwC;AAAA,IACvC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AAAA,EACA,2DAA2D;AAAA,IAC1D,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,4DAA4D;AAAA,IAC3D,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,8CAA8C;AAAA,IAC7C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AAAA,EACA,yCAAyC;AAAA,IACxC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AAAA,EACA,2CAA2C;AAAA,IAC1C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AAAA,EACA,qCAAqC;AAAA,IACpC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AAAA,EACA,yCAAyC;AAAA,IACxC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AAAA,EACA,qCAAqC;AAAA,IACpC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AAAA,EACA,yCAAyC;AAAA,IACxC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AAAA,EACA,0CAA0C;AAAA,IACzC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AACD;;;AC7JO,IAAM,uBAAsC;AAE5C,IAAM,eAAe;AAAA,EAC3B,wBAAwB;AAAA,IACvB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,yBAAyB,CAAC,OAAO,MAAM;AAAA,IACvC,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,oBAAoB;AAAA,IACpB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,MACN;AAAA,QACC,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,aAAa;AAAA,MACd;AAAA,MACA;AAAA,QACC,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,aAAa;AAAA,MACd;AAAA,IACD;AAAA,EACD;AAAA;AAAA,EAEA,kBAAkB;AAAA,IACjB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,IACzB,OAAO;AAAA,MACN;AAAA,QACC,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,iBAAiB;AAAA,MAClB;AAAA,MACA;AAAA,QACC,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,iBAAiB;AAAA,MAClB;AAAA,IACD;AAAA,EACD;AAAA,EACA,gCAAgC;AAAA,IAC/B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,yBAAyB;AAAA,IACzB,OAAO;AAAA,MACN;AAAA,QACC,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,iBAAiB;AAAA,MAClB;AAAA,MACA;AAAA,QACC,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,iBAAiB;AAAA,MAClB;AAAA,IACD;AAAA,EACD;AAAA,EACA,gCAAgC;AAAA,IAC/B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,OAAO;AAAA,MACN;AAAA,QACC,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,iBAAiB;AAAA,MAClB;AAAA,MACA;AAAA,QACC,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,iBAAiB;AAAA,MAClB;AAAA,IACD;AAAA,EACD;AAAA,EACA,gCAAgC;AAAA,IAC/B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,yBAAyB;AAAA,IACzB,OAAO;AAAA,MACN;AAAA,QACC,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,iBAAiB;AAAA,MAClB;AAAA,MACA;AAAA,QACC,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,iBAAiB;AAAA,MAClB;AAAA,IACD;AAAA,EACD;AAAA;AAAA,EAGA,uBAAuB;AAAA,IACtB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,yBAAyB;AAAA,EAC1B;AAAA,EACA,oCAAoC;AAAA,IACnC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,yBAAyB;AAAA,EAC1B;AAAA,EACA,oBAAoB;AAAA,IACnB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,yBAAyB;AAAA,EAC1B;AAAA;AAAA,EAGA,4BAA4B;AAAA,IAC3B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,yBAAyB;AAAA,IACzB,mBAAmB;AAAA,EACpB;AAAA,EACA,yCAAyC;AAAA,IACxC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,yBAAyB;AAAA,IACzB,mBAAmB;AAAA,EACpB;AACD;;;ACjMO,IAAM,qBAAkC;AAExC,IAAM,aAAa;AAAA;AAAA,EAEzB,wBAAwB;AAAA,IACvB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,2BAA2B;AAAA,IAC1B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,6CAA6C;AAAA,IAC5C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,iDAAiD;AAAA,IAChD,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,oBAAoB;AAAA,IACnB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,gBAAgB;AAAA,IACf,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,kBAAkB;AAAA,IACjB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,iCAAiC;AAAA,IAChC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,+BAA+B;AAAA,IAC9B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,oCAAoC;AAAA,IACnC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,aACC;AAAA,EACF;AAAA,EACA,uBAAuB;AAAA,IACtB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AAAA,EACA,sBAAsB;AAAA,IACrB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aACC;AAAA,EACF;AACD;;;ACxIO,IAAM,iCAAiC;AACvC,IAAM,kCAAkC;AACxC,IAAM,qCAAqC;AAG3C,IAAM,0BAA0B;AAChC,IAAM,yBAAyB;AAC/B,IAAM,oCAAoC;AAG1C,IAAM,sBAAsB;AAC5B,IAAM,6BAA6B,MAAO,KAAK;;;ACR/C,IAAM,+BAAsD;AAE5D,IAAM,+BAA+B;AAErC,IAAM,iCAAiC,MAAO,KAAK;AAEnD,IAAM,uBAAuB;AAAA,EACnC,gCAAgC;AAAA,IAC/B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,aAAa;AAAA,EACd;AAAA,EACA,qDAAqD;AAAA,IACpD,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,aAAa;AAAA,EACd;AAAA,EACA,sDAAsD;AAAA,IACrD,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,aAAa;AAAA,EACd;AAAA,EACA,uBAAuB;AAAA,IACtB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,aAAa;AAAA,EACd;AACD;;;AC5CO,IAAM,wBAAwB;AAE9B,IAAM,0BAAqC;AAAA,EACjD,WAAW;AAAA,EACX,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,iBAAiB;AAClB;;;ACbO,IAAM,+BAA+B;AAIrC,IAAM,yBAAyB;AAC/B,IAAM,2BAAsC;AAAA,EAClD,WAAW;AAAA,EACX,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,qBAAqB;AAAA,EACrB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,aAAa;AACd;;;ACZO,IAAM,wBAAwC;AAE9C,IAAM,gBAAgB;AAAA,EAC5B,2BAA2B;AAAA,IAC1B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,0BAA0B;AAAA,IACzB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,yBAAyB;AAAA,IACxB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,oBAAoB;AAAA,IACnB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,wBAAwB;AAAA,IACvB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,uBAAuB;AAAA,IACtB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,uBAAuB;AAAA,IACtB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,wBAAwB;AAAA,IACvB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,wBAAwB;AAAA,IACvB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AACD;AAEO,IAAM,8BAA8B;;;ACtFpC,IAAM,yBAA0C;AAEhD,IAAM,iBAAiB;AAAA,EAC7B,wBAAwB;AAAA,IACvB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA;AAAA,IACb,kBAAkB;AAAA;AAAA,IAClB,iBAAiB;AAAA;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,wBAAwB;AAAA,IACvB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,aACC;AAAA,EACF;AAAA,EACA,yBAAyB;AAAA,IACxB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA;AAAA,IACb,kBAAkB;AAAA;AAAA,IAClB,iBAAiB;AAAA;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,oBAAoB;AAAA,IACnB,WAAW;AAAA;AAAA,IACX,eAAe;AAAA;AAAA,IACf,gBAAgB;AAAA;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA;AAAA,IACb,kBAAkB;AAAA;AAAA,IAClB,iBAAiB;AAAA;AAAA,IACjB,qBAAqB;AAAA;AAAA,IACrB,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,aAAa;AAAA,EACd;AACD;AAEO,IAAM,+BAA+B;;;ACzDrC,IAAM,uBAAuB;AAC7B,IAAM,yBAAoC;AAAA,EAChD,WAAW;AAAA,EACX,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,aAAa;AACd;;;ACXO,IAAM,6BAAkD;AAExD,IAAM,qBAAqB;AAAA,EACjC,qBAAqB;AAAA,IACpB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,eAAe,CAAC,aAAa;AAAA,IAC7B,eAAe,CAAC,cAAc,eAAe;AAAA,IAC7C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,sBAAsB;AAAA,IACtB,yBAAyB,CAAC,OAAO,UAAU,QAAQ,OAAO;AAAA,IAC1D,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,OAAO,CAAC,EAAE,MAAM,YAAY,eAAe,KAAQ,YAAY,KAAK,aAAa,IAAM,iBAAiB,KAAK,CAAC;AAAA,IAC9G,aACC;AAAA,EACF;AAAA,EACA,WAAW;AAAA,IACV,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,eAAe,CAAC,aAAa;AAAA,IAC7B,eAAe,CAAC,cAAc,eAAe;AAAA,IAC7C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,sBAAsB;AAAA,IACtB,yBAAyB,CAAC,QAAQ,OAAO,UAAU,QAAQ,OAAO;AAAA,IAClE,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,qBAAqB;AAAA,IACrB,OAAO;AAAA,MACN,EAAE,MAAM,QAAQ,eAAe,KAAQ,YAAY,OAAO,aAAa,GAAK,iBAAiB,OAAO;AAAA,MACpG,EAAE,MAAM,YAAY,eAAe,KAAQ,YAAY,KAAK,aAAa,IAAM,iBAAiB,KAAK;AAAA,IACtG;AAAA,IACA,aAAa;AAAA,EACd;AAAA,EACA,uBAAuB;AAAA,IACtB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,eAAe,CAAC,aAAa;AAAA,IAC7B,eAAe,CAAC,cAAc,eAAe;AAAA,IAC7C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,WAAW;AAAA,IACV,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,eAAe,CAAC,aAAa;AAAA,IAC7B,eAAe,CAAC,cAAc,eAAe;AAAA,IAC7C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,sBAAsB;AAAA,IACtB,yBAAyB,CAAC,QAAQ,OAAO,UAAU,MAAM;AAAA,IACzD,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,qBAAqB;AAAA,IACrB,OAAO;AAAA,MACN,EAAE,MAAM,QAAQ,eAAe,KAAQ,YAAY,OAAO,aAAa,GAAK,iBAAiB,OAAO;AAAA,MACpG,EAAE,MAAM,YAAY,eAAe,KAAQ,YAAY,KAAK,aAAa,IAAM,iBAAiB,KAAK;AAAA,IACtG;AAAA,IACA,aAAa;AAAA,EACd;AAAA,EACA,iBAAiB;AAAA,IAChB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,eAAe,CAAC,aAAa;AAAA,IAC7B,eAAe,CAAC,cAAc,eAAe;AAAA,IAC7C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,sBAAsB;AAAA,IACtB,yBAAyB,CAAC,OAAO,UAAU,MAAM;AAAA,IACjD,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,OAAO,CAAC,EAAE,MAAM,YAAY,eAAe,KAAQ,YAAY,KAAK,aAAa,IAAM,iBAAiB,KAAK,CAAC;AAAA,IAC9G,aAAa;AAAA,EACd;AAAA,EACA,sBAAsB;AAAA,IACrB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,eAAe,CAAC,aAAa;AAAA,IAC7B,eAAe,CAAC,cAAc,eAAe;AAAA,IAC7C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,sBAAsB;AAAA,IACtB,yBAAyB,CAAC,OAAO,UAAU,MAAM;AAAA,IACjD,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,aAAa;AAAA,EACd;AAAA,EACA,SAAS;AAAA,IACR,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,eAAe,CAAC,aAAa;AAAA,IAC7B,eAAe,CAAC,cAAc,eAAe;AAAA,IAC7C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,yBAAyB,CAAC,WAAW,OAAO,UAAU,MAAM;AAAA,IAC5D,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,qBAAqB;AAAA,IACrB,OAAO;AAAA,MACN,EAAE,MAAM,QAAQ,eAAe,KAAQ,YAAY,OAAO,aAAa,GAAK,iBAAiB,OAAO;AAAA,MACpG,EAAE,MAAM,YAAY,eAAe,KAAQ,YAAY,KAAK,aAAa,IAAM,iBAAiB,KAAK;AAAA,IACtG;AAAA,IACA,aAAa;AAAA,EACd;AAAA,EACA,cAAc;AAAA,IACb,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,eAAe,CAAC,aAAa;AAAA,IAC7B,eAAe,CAAC,cAAc,eAAe;AAAA,IAC7C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,yBAAyB,CAAC,WAAW,OAAO,UAAU,MAAM;AAAA,IAC5D,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,qBAAqB;AAAA,IACrB,OAAO;AAAA,MACN,EAAE,MAAM,QAAQ,eAAe,KAAQ,YAAY,OAAO,aAAa,GAAK,iBAAiB,OAAO;AAAA,MACpG,EAAE,MAAM,YAAY,eAAe,KAAQ,YAAY,MAAM,aAAa,KAAK,iBAAiB,MAAM;AAAA,IACvG;AAAA,IACA,aAAa;AAAA,EACd;AAAA,EACA,eAAe;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,eAAe,CAAC,aAAa;AAAA,IAC7B,eAAe,CAAC,cAAc,eAAe;AAAA,IAC7C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,yBAAyB,CAAC,OAAO,UAAU,MAAM;AAAA,IACjD,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,OAAO,CAAC,EAAE,MAAM,YAAY,eAAe,KAAQ,YAAY,KAAK,aAAa,IAAM,iBAAiB,KAAK,CAAC;AAAA,IAC9G,aAAa;AAAA,EACd;AAAA,EACA,cAAc;AAAA,IACb,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,eAAe,CAAC,aAAa;AAAA,IAC7B,eAAe,CAAC,cAAc,eAAe;AAAA,IAC7C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,yBAAyB,CAAC,WAAW,OAAO,UAAU,MAAM;AAAA,IAC5D,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,qBAAqB;AAAA,IACrB,OAAO,CAAC,EAAE,MAAM,QAAQ,eAAe,KAAQ,YAAY,OAAO,aAAa,KAAK,iBAAiB,MAAO,CAAC;AAAA,IAC7G,aAAa;AAAA,EACd;AAAA,EACA,qBAAqB;AAAA,IACpB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,eAAe,CAAC,aAAa;AAAA,IAC7B,eAAe,CAAC,cAAc,eAAe;AAAA,IAC7C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,WAAW;AAAA,IACV,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,eAAe,CAAC,aAAa;AAAA,IAC7B,eAAe,CAAC,cAAc,eAAe;AAAA,IAC7C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,OAAO;AAAA,MACN,EAAE,MAAM,YAAY,eAAe,SAAW,YAAY,KAAK,aAAa,IAAM,iBAAiB,MAAM;AAAA,IAC1G;AAAA,EACD;AAAA,EACA,gBAAgB;AAAA,IACf,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,eAAe,CAAC,aAAa;AAAA,IAC7B,eAAe,CAAC,cAAc,eAAe;AAAA,IAC7C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,OAAO;AAAA,MACN,EAAE,MAAM,YAAY,eAAe,SAAW,YAAY,KAAK,aAAa,KAAK,iBAAiB,MAAM;AAAA,IACzG;AAAA,EACD;AAAA,EACA,gBAAgB;AAAA,IACf,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,eAAe,CAAC,aAAa;AAAA,IAC7B,eAAe,CAAC,cAAc,eAAe;AAAA,IAC7C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,OAAO;AAAA,MACN,EAAE,MAAM,YAAY,eAAe,SAAW,YAAY,KAAK,aAAa,KAAK,iBAAiB,KAAK;AAAA,IACxG;AAAA,EACD;AAAA,EACA,IAAI;AAAA,IACH,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,yBAAyB,CAAC,OAAO,UAAU,MAAM;AAAA,IACjD,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,OAAO;AAAA,MACN,EAAE,MAAM,QAAQ,eAAe,KAAS,YAAY,GAAK,aAAa,GAAK,iBAAiB,KAAK;AAAA,MACjG,EAAE,MAAM,YAAY,eAAe,KAAS,YAAY,KAAK,aAAa,IAAM,iBAAiB,MAAM;AAAA,IACxG;AAAA,EACD;AAAA,EACA,WAAW;AAAA,IACV,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,EACtB;AAAA,EACA,UAAU;AAAA,IACT,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,EACtB;AAAA,EACA,WAAW;AAAA,IACV,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,yBAAyB,CAAC,OAAO,UAAU,MAAM;AAAA,IACjD,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,OAAO;AAAA,MACN,EAAE,MAAM,QAAQ,eAAe,KAAS,YAAY,MAAM,aAAa,KAAK,iBAAiB,MAAM;AAAA,MACnG,EAAE,MAAM,YAAY,eAAe,KAAS,YAAY,GAAK,aAAa,GAAK,iBAAiB,IAAI;AAAA,IACrG;AAAA,EACD;AAAA,EACA,gBAAgB;AAAA,IACf,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,EACtB;AAAA,EACA,eAAe;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,EACtB;AAAA,EACA,WAAW;AAAA,IACV,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,yBAAyB,CAAC,OAAO,UAAU,MAAM;AAAA,IACjD,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,EACtB;AAAA,EACA,gBAAgB;AAAA,IACf,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,EACtB;AAAA,EACA,eAAe;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,EACtB;AAAA,EACA,IAAI;AAAA,IACH,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,EACtB;AAAA,EACA,cAAc;AAAA,IACb,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,EACtB;AAAA,EACA,WAAW;AAAA,IACV,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,EACtB;AAAA,EACA,UAAU;AAAA,IACT,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,OAAO;AAAA,MACN,EAAE,MAAM,YAAY,eAAe,OAAS,YAAY,MAAM,aAAa,IAAM,iBAAiB,MAAM;AAAA,IACzG;AAAA,EACD;AAAA,EACA,eAAe;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,OAAO;AAAA,MACN,EAAE,MAAM,YAAY,eAAe,OAAS,YAAY,MAAM,aAAa,GAAK,iBAAiB,MAAM;AAAA,IACxG;AAAA,EACD;AAAA,EACA,qBAAqB;AAAA,IACpB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,aACC;AAAA,EACF;AAAA;AAAA,EAEA,oBAAoB;AAAA,IACnB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,eAAe,CAAC,aAAa;AAAA,IAC7B,eAAe,CAAC,cAAc,eAAe;AAAA,IAC7C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,yBAAyB,CAAC,WAAW,OAAO,UAAU,MAAM;AAAA,IAC5D,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,qBAAqB;AAAA,IACrB,OAAO;AAAA,MACN,EAAE,MAAM,QAAQ,eAAe,KAAQ,YAAY,OAAO,aAAa,GAAK,iBAAiB,OAAO;AAAA,MACpG,EAAE,MAAM,YAAY,eAAe,KAAQ,YAAY,KAAK,aAAa,IAAM,iBAAiB,KAAK;AAAA,IACtG;AAAA,IACA,aAAa;AAAA,EACd;AAAA,EACA,yBAAyB;AAAA,IACxB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,eAAe,CAAC,aAAa;AAAA,IAC7B,eAAe,CAAC,cAAc,eAAe;AAAA,IAC7C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,yBAAyB,CAAC,WAAW,OAAO,UAAU,MAAM;AAAA,IAC5D,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,qBAAqB;AAAA,IACrB,OAAO;AAAA,MACN,EAAE,MAAM,QAAQ,eAAe,KAAQ,YAAY,OAAO,aAAa,GAAK,iBAAiB,OAAO;AAAA,MACpG,EAAE,MAAM,YAAY,eAAe,KAAQ,YAAY,MAAM,aAAa,KAAK,iBAAiB,MAAM;AAAA,IACvG;AAAA,IACA,aAAa;AAAA,EACd;AAAA,EACA,yBAAyB;AAAA,IACxB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,eAAe,CAAC,aAAa;AAAA,IAC7B,eAAe,CAAC,cAAc,eAAe;AAAA,IAC7C,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,yBAAyB,CAAC,WAAW,OAAO,UAAU,MAAM;AAAA,IAC5D,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,qBAAqB;AAAA,IACrB,OAAO,CAAC,EAAE,MAAM,QAAQ,eAAe,KAAQ,YAAY,OAAO,aAAa,KAAK,iBAAiB,MAAO,CAAC;AAAA,IAC7G,aAAa;AAAA,EACd;AACD;AAEO,IAAM,8BAAyC;AAAA,EACrD,WAAW;AAAA,EACX,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,qBAAqB;AAAA,EACrB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,qBAAqB;AACtB;AAIO,IAAM,+BAA+B;AAErC,IAAM,oCAAoC;AAE1C,IAAM,iCAAiC;;;AC9gBvC,IAAM,2BAA2B;AAEjC,IAAM,6BAAwC;AAAA,EACpD,WAAW;AAAA,EACX,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,aACC;AACF;AAEO,IAAM,mCAAmC;AAEzC,IAAM,oCAAoC,oBAAI,IAAI;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC;AASM,IAAM,+CAA+C,oBAAI,IAAI;AAAA,EACnE;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAEM,IAAM,sCAAsC,oBAAI,IAAI;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA,EAGA;AAAA,EACA;AACD,CAAC;;;AClFM,IAAM,yBAA0C;AAEhD,IAAM,iBAAiB;AAAA,EAC7B,oBAAoB;AAAA,IACnB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,qBAAqB;AAAA,IACpB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACd;AACD;;;ACzBO,IAAM,yBAAyB;AAE/B,IAAM,2BAAsC;AAAA,EAClD,WAAW;AAAA,EACX,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,qBAAqB;AAAA,EACrB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,aACC;AACF;;;ACjBA,SAAS,KAAAC,UAAS;AAQX,IAAM,oBAAoB;AAM1B,IAAM,YAAY,CAAC;AAMnB,IAAM,mBAAmBA,GAAE,OAAO;AAAA,EACxC,OAAOA,GAAE,OAAO;AAAA,EAChB,QAAQA,GAAE,OAAO;AAAA,EACjB,kBAAkBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACtC,mBAAmBA,GAAE,OAAO,EAAE,SAAS;AACxC,CAAC;AAEM,IAAM,iBAAiBA,GAAE,OAAO;AAAA,EACtC,IAAIA,GAAE,OAAO;AAAA,EACb,QAAQA,GAAE,QAAQ,OAAO;AAAA,EACzB,SAASA,GAAE,OAAO;AAAA,EAClB,UAAUA,GAAE,OAAO;AAAA,EACnB,MAAMA,GAAE,OAAO;AAAA,EACf,aAAaA,GAAE,OAAO;AAAA,EACtB,gBAAgBA,GAAE,OAAO;AAAA,EACzB,YAAYA,GAAE,OAAO;AAAA,EACrB,MAAMA,GAAE,QAAQ,UAAU;AAAA,EAC1B,MAAMA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACnC,SAAS;AAAA,EACT,YAAYA,GAAE,QAAQ,EAAE,SAAS;AAAA,EACjC,qBAAqBA,GAAE,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAIzC,UAAUA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,QAAQ,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMrD,mBAAmBA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,QAAQ,CAAC,CAAC,EAAE,SAAS;AACrF,CAAC;AAEM,IAAM,0BAA0BA,GAAE,OAAO;AAAA,EAC/C,QAAQA,GAAE,QAAQ,MAAM;AAAA,EACxB,MAAMA,GAAE,MAAM,cAAc;AAC7B,CAAC;;;ACzCM,IAAM,0BAA4C;AAElD,IAAM,kBAAkB;AAAA,EAC9B,8BAA8B;AAAA,IAC7B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,+BAA+B;AAAA,IAC9B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,eAAe;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,yBAAyB;AAAA,IACzB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,oBAAoB;AAAA,IACnB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,iBAAiB;AAAA,IAChB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,iCAAiC;AAAA,IAChC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,sCAAsC;AAAA,IACrC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,uCAAuC;AAAA,IACtC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,aAAa;AAAA,IACZ,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,gBAAgB;AAAA,IACf,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AACD;;;ACnHO,IAAM,wBAAwB;AAE9B,IAAM,0BAAqC;AAAA,EACjD,WAAW;AAAA,EACX,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,iBAAiB;AAClB;;;ACTO,IAAM,uBAAsC;AAE5C,IAAM,eAAe;AAAA,EAC3B,wBAAwB;AAAA,IACvB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,yBAAyB,CAAC,OAAO,MAAM;AAAA,IACvC,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,oBAAoB;AAAA,IACpB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,MACN;AAAA,QACC,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,aAAa;AAAA,MACd;AAAA,MACA;AAAA,QACC,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,aAAa;AAAA,MACd;AAAA,IACD;AAAA,EACD;AAAA,EACA,2CAA2C;AAAA,IAC1C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,mBAAmB;AAAA,IACnB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,EAC1B;AAAA,EACA,kCAAkC;AAAA,IACjC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,oBAAoB;AAAA,IACnB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,yBAAyB;AAAA,EAC1B;AAAA,EACA,2CAA2C;AAAA,IAC1C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,mBAAmB;AAAA,IACnB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,EAC1B;AAAA,EACA,kCAAkC;AAAA,IACjC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,gCAAgC;AAAA,IAC/B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,gCAAgC;AAAA,IAC/B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,gCAAgC;AAAA,IAC/B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,mBAAmB;AAAA,IACnB,yBAAyB;AAAA,EAC1B;AAAA,EACA,kBAAkB;AAAA,IACjB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,mBAAmB;AAAA,IACnB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,IACzB,OAAO;AAAA,MACN;AAAA,QACC,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,iBAAiB;AAAA,MAClB;AAAA,MACA;AAAA,QACC,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,iBAAiB;AAAA,MAClB;AAAA,IACD;AAAA,EACD;AAAA,EACA,4BAA4B;AAAA,IAC3B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,4BAA4B;AAAA,IAC3B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,wBAAwB;AAAA,IACvB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,6BAA6B;AAAA,IAC5B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,uCAAuC;AAAA,IACtC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,wBAAwB;AAAA,IACvB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,sBAAsB;AAAA,IACrB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACA,4BAA4B;AAAA,IAC3B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,yBAAyB;AAAA,EAC1B;AAAA,EACA,8BAA8B;AAAA,IAC7B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,yBAAyB;AAAA,EAC1B;AAAA,EACA,6BAA6B;AAAA,IAC5B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,yBAAyB;AAAA,EAC1B;AAAA,EACA,4BAA4B;AAAA,IAC3B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,yBAAyB;AAAA,EAC1B;AAAA,EACA,4BAA4B;AAAA,IAC3B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,yBAAyB;AAAA,EAC1B;AAAA,EACA,0BAA0B;AAAA,IACzB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,EAClB;AAAA,EACA,uCAAuC;AAAA,IACtC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,EAC1B;AAAA,EACA,8BAA8B;AAAA,IAC7B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,EAClB;AAAA,EACA,iCAAiC;AAAA,IAChC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,EAClB;AAAA,EACA,8BAA8B;AAAA,IAC7B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,EAClB;AAAA,EACA,6BAA6B;AAAA,IAC5B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,EAClB;AAAA,EACA,0BAA0B;AAAA,IACzB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,EAClB;AAAA,EACA,2BAA2B;AAAA,IAC1B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,EAClB;AAAA,EACA,uCAAuC;AAAA,IACtC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,yBAAyB;AAAA,EAC1B;AAAA,EACA,2CAA2C;AAAA,IAC1C,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,yBAAyB;AAAA,IACxB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,sBAAsB;AAAA,IACrB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,qBAAqB;AAAA,IACpB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,oBAAoB;AAAA,IACnB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,uCAAuC;AAAA,IACtC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACA,sCAAsC;AAAA,IACrC,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AACD;AAEO,IAAM,iBAAiB;AAAA,EAC7B,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,EACnC,EAAE,OAAO,eAAe,OAAO,cAAc;AAAA,EAC7C,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,EACvC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,EACvC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,EACvC,EAAE,OAAO,aAAa,OAAO,YAAY;AAAA,EACzC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,EACvC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,EACvC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,EACvC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,EACvC,EAAE,OAAO,2BAA2B,OAAO,0BAA0B;AAAA,EACrE,EAAE,OAAO,2BAA2B,OAAO,0BAA0B;AAAA,EACrE,EAAE,OAAO,sBAAsB,OAAO,qBAAqB;AAAA,EAC3D,EAAE,OAAO,gBAAgB,OAAO,eAAe;AAAA,EAC/C,EAAE,OAAO,gBAAgB,OAAO,eAAe;AAAA,EAC/C,EAAE,OAAO,gBAAgB,OAAO,eAAe;AAAA,EAC/C,EAAE,OAAO,gBAAgB,OAAO,eAAe;AAAA,EAC/C,EAAE,OAAO,gBAAgB,OAAO,eAAe;AAAA,EAC/C,EAAE,OAAO,mBAAmB,OAAO,kBAAkB;AAAA,EACrD,EAAE,OAAO,cAAc,OAAO,aAAa;AAAA,EAC3C,EAAE,OAAO,cAAc,OAAO,aAAa;AAAA,EAC3C,EAAE,OAAO,mBAAmB,OAAO,kBAAkB;AAAA,EACrD,EAAE,OAAO,mBAAmB,OAAO,kBAAkB;AAAA,EACrD,EAAE,OAAO,mBAAmB,OAAO,kBAAkB;AAAA,EACrD,EAAE,OAAO,eAAe,OAAO,cAAc;AAAA,EAC7C,EAAE,OAAO,eAAe,OAAO,cAAc;AAAA,EAC7C,EAAE,OAAO,mBAAmB,OAAO,kBAAkB;AAAA,EACrD,EAAE,OAAO,mBAAmB,OAAO,kBAAkB;AAAA,EACrD,EAAE,OAAO,wBAAwB,OAAO,uBAAuB;AAAA,EAC/D,EAAE,OAAO,wBAAwB,OAAO,uBAAuB;AAAA,EAC/D,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,EACvC,EAAE,OAAO,eAAe,OAAO,cAAc;AAAA,EAC7C,EAAE,OAAO,iBAAiB,OAAO,gBAAgB;AAClD;;;ACncO,IAAM,0BAA4C;AAGlD,IAAM,kBAAkB;AAAA,EAC9B,iBAAiB;AAAA,IAChB,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,EACjB;AAAA,EACA,eAAe;AAAA,IACd,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,EACjB;AAAA,EACA,SAAS;AAAA,IACR,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,EACjB;AAAA,EACA,sBAAsB;AAAA,IACrB,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,EACjB;AAAA,EACA,UAAU;AAAA,IACT,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,EACjB;AAAA,EACA,IAAI;AAAA,IACH,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,EACjB;AAAA,EACA,WAAW;AAAA,IACV,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,EACjB;AAAA,EACA,qBAAqB;AAAA,IACpB,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,EACjB;AAAA,EACA,mBAAmB;AAAA,IAClB,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,EACjB;AAAA,EACA,wBAAwB;AAAA,IACvB,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,EACjB;AAAA,EACA,kBAAkB;AAAA,IACjB,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,EACjB;AAAA,EACA,WAAW;AAAA,IACV,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,EACjB;AAAA,EACA,WAAW;AAAA,IACV,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,EACjB;AAAA,EACA,cAAc;AAAA,IACb,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,EACjB;AAAA,EACA,SAAS;AAAA,IACR,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,EACjB;AACD;;;ACvLO,IAAM,oBAAgC;AAEtC,IAAM,YAAY;AAAA,EACxB,oBAAoB;AAAA,IACnB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAa;AAAA,IACb,eAAe,CAAC,gBAAgB;AAAA,IAChC,eAAe,CAAC,YAAY;AAAA,EAC7B;AAAA,EACA,2BAA2B;AAAA,IAC1B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aACC;AAAA,IACD,eAAe,CAAC,gBAAgB;AAAA,IAChC,eAAe,CAAC,YAAY;AAAA,EAC7B;AAAA,EACA,+BAA+B;AAAA,IAC9B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aACC;AAAA,IACD,eAAe,CAAC,gBAAgB;AAAA,IAChC,eAAe,CAAC,YAAY;AAAA,EAC7B;AAAA,EACA,yBAAyB;AAAA,IACxB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aACC;AAAA,IACD,eAAe,CAAC,gBAAgB;AAAA,IAChC,eAAe,CAAC,YAAY;AAAA,EAC7B;AAAA,EACA,6BAA6B;AAAA,IAC5B,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aACC;AAAA,IACD,eAAe,CAAC,gBAAgB;AAAA,IAChC,eAAe,CAAC,YAAY;AAAA,EAC7B;AAAA,EACA,eAAe;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAa;AAAA,IACb,eAAe,CAAC,gBAAgB;AAAA,IAChC,eAAe,CAAC,YAAY;AAAA,EAC7B;AAAA,EACA,eAAe;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAa;AAAA,IACb,yBAAyB,CAAC,OAAO,MAAM;AAAA,IACvC,iBAAiB;AAAA,IACjB,eAAe,CAAC,gBAAgB;AAAA,IAChC,eAAe,CAAC,YAAY;AAAA,EAC7B;AAAA,EACA,UAAU;AAAA,IACT,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAa;AAAA,IACb,eAAe,CAAC,gBAAgB;AAAA,IAChC,eAAe,CAAC,YAAY;AAAA,EAC7B;AACD;;;AC3HO,IAAM,gCAAgC;AAEtC,IAAM,0CAA0C,oBAAI,IAAI;AAAA,EAC9D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAEM,IAAM,uCAAuC,oBAAI,IAAI;AAAA,EAC3D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAEM,IAAM,4CAA4C,oBAAI,IAAI;AAAA,EAChE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAEM,IAAM,kCAA6C;AAAA,EACzD,WAAW;AAAA,EACX,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,qBAAqB;AAAA,EACrB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,aACC;AACF;AAEO,IAAM,wCAAwC;;;ACzF9C,IAAM,iCAA0D;AAChE,IAAM,yBAAyB;AAAA,EACrC,WAAW;AAAA,IACV,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aACC;AAAA,EACF;AAAA,EACA,eAAe;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aACC;AAAA,EACF;AAAA,EACA,aAAa;AAAA,IACZ,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aACC;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACf,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,iBAAiB;AAAA,IAChB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,YAAY;AAAA,IACX,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aACC;AAAA,EACF;AAAA,EACA,WAAW;AAAA,IACV,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aACC;AAAA,EACF;AAAA,EACA,uBAAuB;AAAA,IACtB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACd;AACD;AAGO,IAAM,4BAAgD;AACtD,IAAM,oBAAoB;AAAA,EAChC,WAAW;AAAA,IACV,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aACC;AAAA,EACF;AAAA,EACA,eAAe;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aACC;AAAA,EACF;AAAA,EACA,aAAa;AAAA,IACZ,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aACC;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACf,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,iBAAiB;AAAA,IAChB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACd;AAAA,EACA,YAAY;AAAA,IACX,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aACC;AAAA,EACF;AAAA,EACA,WAAW;AAAA,IACV,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aACC;AAAA,EACF;AACD;AAEO,IAAM,0BAA0B;AAEhC,IAAM,oBAAoB;AAAA,EAChC,sBAAsB;AAAA,IACrB,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,EACV;AAAA,EACA,cAAc;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,EACV;AAAA,EACA,mBAAmB;AAAA,IAClB,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,EACV;AAAA,EACA,WAAW;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,EACV;AACD;;;ACtOO,IAAM,0BAA0B;AAEhC,IAAM,4BAAuC;AAAA,EACnD,WAAW;AAAA,EACX,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,aAAa;AACd;;;ACPO,IAAM,wBAAwC;AAE9C,IAAM,gBAAgB;AAAA,EAC5B,cAAc;AAAA,IACb,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,mBAAmB;AAAA,IACnB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aACC;AAAA,EACF;AAAA,EACA,qBAAqB;AAAA,IACpB,WAAW;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,mBAAmB;AAAA,IACnB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aACC;AAAA,EACF;AACD;AAEO,IAAM,0BAAqC,cAAc,qBAAqB;AAE9E,IAAM,6BAA6B;AACnC,IAAM,8BAA8B;;;AC6BpC,SAAS,0BACf,UACA,UAAiC,EAAE,SAAS,MAAM,GACzC;AACT,UAAQ,UAAU;AAAA,IACjB,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO,SAAS,UAAU,4BAA4B;AAAA,IACvD,KAAK;AACJ,aAAO;AAAA;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA;AAAA,IACR,KAAK;AACJ,aAAO;AAAA;AAAA,IACR,KAAK;AACJ,aAAO;AAAA;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL;AACC,aAAO;AAAA,EACT;AACD;;;ApCrHO,IAAM,oCAAoC;AAQ1C,IAAM,mBAAmB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAIO,IAAM,oBAAoB,CAAC,QACjC,iBAAiB,SAAS,GAAsB;AAQ1C,IAAM,iBAAiB,CAAC,UAAU,UAAU;AAI5C,IAAM,kBAAkB,CAAC,QAAsC,eAAe,SAAS,GAAoB;AAS3G,IAAM,oBAAoB,CAAC,WAAW;AAItC,IAAM,qBAAqB,CAAC,QAClC,kBAAkB,SAAS,GAAuB;AAQ5C,IAAM,kBAAkB,CAAC,QAAQ;AAIjC,IAAM,mBAAmB,CAAC,QAAuC,gBAAgB,SAAS,GAAqB;AAS/G,IAAM,gBAAgB,CAAC,WAAW,aAAa;AAI/C,IAAM,iBAAiB,CAAC,QAAqC,cAAc,SAAS,GAAmB;AAMvG,IAAM,gBAAgB;AAAA,EAC5B,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAEO,IAAM,sBAAsBC,GAAE,KAAK,aAAa;AAIhD,IAAM,iBAAiB,CAAC,QAC9B,OAAO,QAAQ,YAAY,cAAc,SAAS,GAAmB;AAM/D,IAAM,8BAA8BA,GAAE,OAAO;AAAA,EACnD,IAAIA,GAAE,OAAO;AAAA,EACb,MAAMA,GAAE,OAAO;AAAA,EACf,aAAa,oBAAoB,SAAS;AAAA,EAC1C,SAASA,GAAE,OAAO,EAAE,SAAS;AAC9B,CAAC;AAQD,IAAM,6BAA6BA,GAAE,OAAO;AAAA,EAC3C,kBAAkBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EACvC,aAAaA,GAAE,QAAQ,EAAE,SAAS;AAAA,EAClC,iBAAiBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EACtC,qBAAqBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACzC,kBAAkBA,GAAE,OAAO,EAAE,QAAQ;AAAA,EACrC,kBAAkBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACtC,yBAAyBA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA;AAAA,EAGpD,uBAAuBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EAC5C,iBAAiB,6BAA6B,SAAS;AAAA,EACvD,gBAAgBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACpC,wBAAwBA,GAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAG5C,WAAW,sBAAsB,SAAS;AAAA;AAAA,EAG1C,cAAcA,GAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,EAAE,SAAS;AAClD,CAAC;AAGD,IAAM,gCAAgC,2BAA2B,OAAO;AAAA,EACvE,YAAYA,GAAE,OAAO,EAAE,SAAS;AACjC,CAAC;AAED,IAAM,kBAAkB,8BAA8B,OAAO;AAAA,EAC5D,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,kBAAkBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACtC,uBAAuBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EAC5C,wBAAwBA,GAAE,QAAQ,EAAE,SAAS;AAAA;AAC9C,CAAC;AAED,IAAM,mBAAmB,8BAA8B,OAAO;AAAA,EAC7D,gBAAgBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACpC,2BAA2BA,GAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAM,EAAE,SAAS;AACzE,CAAC;AAED,IAAM,mBAAmB,2BAA2B,OAAO;AAAA,EAC1D,kBAAkBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACtC,mBAAmBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACvC,mBAAmBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACvC,4BAA4BA,GAAE,OAAO,EAAE,SAAS;AAAA,EAChD,iCAAiCA,GAAE,QAAQ,EAAE,SAAS;AACvD,CAAC;AAED,IAAM,gBAAgB,8BAA8B,OAAO;AAAA,EAC1D,cAAcA,GAAE,OAAO,EAAE,SAAS;AAAA,EAClC,cAAcA,GAAE,OAAO,EAAE,SAAS;AAAA,EAClC,iBAAiBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACrC,WAAWA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,4BAA4BA,GAAE,QAAQ,EAAE,SAAS;AAAA,EACjD,uBAAuBA,GAAE,QAAQ,EAAE,SAAS;AAAA;AAAA,EAC5C,mBAAmBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EACxC,YAAYA,GAAE,OAAO,EAAE,SAAS;AAAA,EAChC,eAAeA,GAAE,QAAQ,EAAE,SAAS;AAAA,EACpC,WAAWA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,cAAcA,GAAE,QAAQ,EAAE,SAAS;AAAA,EACnC,cAAcA,GAAE,OAAO,EAAE,SAAS;AAAA,EAClC,uBAAuBA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC3C,2BAA2BA,GAAE,QAAQ,EAAE,SAAS;AAAA,EAChD,oBAAoBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACxC,qBAAqBA,GAAE,QAAQ,EAAE,SAAS;AAAA;AAC3C,CAAC;AAED,IAAM,eAAe,8BAA8B,OAAO;AAAA,EACzD,eAAeA,GAAE,OAAO,EAAE,SAAS;AAAA,EACnC,uBAAuBA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC3C,iBAAiBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACrC,cAAcA,GAAE,OAAO,EAAE,SAAS;AAAA,EAClC,kBAAkBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EACvC,iBAAiBA,GAAE,QAAQ,EAAE,SAAS;AACvC,CAAC;AAED,IAAM,eAAe,2BAA2B,OAAO;AAAA,EACtD,eAAeA,GAAE,OAAO,EAAE,SAAS;AAAA,EACnC,cAAcA,GAAE,OAAO,EAAE,SAAS;AAAA,EAClC,oBAAoBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EACzC,uBAAuBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EAC5C,eAAeA,GAAE,OAAO,EAAE,SAAS;AAAA,EACnC,uBAAuB,gBAAgB,QAAQ;AAAA,EAC/C,gBAAgBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EACrC,iBAAiBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACrC,wBAAwBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EAC7C,kBAAkBA,GAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EACtC,eAAeA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,OAAO,CAAC,EAAE,SAAS;AAC1D,CAAC;AAED,IAAM,eAAe,2BAA2B,OAAO;AAAA,EACtD,eAAeA,GAAE,OAAO,EAAE,SAAS;AAAA,EACnC,eAAeA,GAAE,OAAO,EAAE,SAAS;AAAA,EACnC,cAAcA,GAAE,OAAO,EAAE,SAAS;AAAA,EAClC,cAAcA,GAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,SAAS;AAClD,CAAC;AAED,IAAM,iBAAiB,2BAA2B,OAAO;AAAA,EACxD,uBAAuBA,GACrB,OAAO;AAAA,IACP,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC5B,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC5B,SAASA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC7B,IAAIA,GAAE,OAAO,EAAE,SAAS;AAAA,EACzB,CAAC,EACA,SAAS;AACZ,CAAC;AAED,IAAM,iBAAiB,2BAA2B,OAAO;AAAA,EACxD,iBAAiBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACrC,iBAAiBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACrC,sBAAsBA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC1C,oCAAoCA,GAAE,QAAQ,EAAE,SAAS;AAC1D,CAAC;AAED,IAAM,eAAe,8BAA8B,OAAO;AAAA,EACzD,cAAcA,GAAE,OAAO,EAAE,SAAS;AAAA,EAClC,qBAAqBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACzC,kBAAkBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EACvC,iBAAiBA,GAAE,QAAQ,EAAE,SAAS;AACvC,CAAC;AAED,IAAM,kBAAkB,8BAA8B,OAAO;AAAA,EAC5D,oBAAoBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACxC,oBAAoBA,GAAE,OAAO,EAAE,SAAS;AACzC,CAAC;AAED,IAAM,qBAAqB,8BAA8B,OAAO;AAAA,EAC/D,oBAAoBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACxC,qBAAqBA,GAAE,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA,EAGzC,yBAAyB,kBAAkB,SAAS;AACrD,CAAC;AAED,IAAM,gBAAgB,8BAA8B,OAAO;AAAA,EAC1D,eAAeA,GAAE,OAAO,EAAE,SAAS;AAAA,EACnC,qBAAqBA,GAAE,OAAO,EAAE,SAAS;AAC1C,CAAC;AAED,IAAM,iBAAiB,8BAA8B,OAAO;AAAA,EAC3D,iBAAiBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACrC,gBAAgBA,GAAE,OAAO,EAAE,SAAS;AACrC,CAAC;AAED,IAAM,kBAAkB,8BAA8B,OAAO;AAAA,EAC5D,kBAAkBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACtC,iBAAiBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACrC,kBAAkBA,GAAE,OAAO,EAAE,SAAS;AACvC,CAAC;AAED,IAAM,eAAe,8BAA8B,OAAO;AAAA,EACzD,eAAeA,GAAE,OAAO,EAAE,SAAS;AAAA,EACnC,cAAcA,GAAE,OAAO,EAAE,SAAS;AACnC,CAAC;AAED,IAAM,iBAAiB,8BAA8B,OAAO;AAAA,EAC3D,iBAAiBA,GACf,MAAM,CAACA,GAAE,QAAQ,4BAA4B,GAAGA,GAAE,QAAQ,4BAA4B,CAAC,CAAC,EACxF,SAAS;AAAA,EACX,gBAAgBA,GAAE,OAAO,EAAE,SAAS;AACrC,CAAC;AAED,IAAM,gBAAgB,8BAA8B,OAAO;AAAA,EAC1D,gBAAgBA,GACd,MAAM,CAACA,GAAE,QAAQ,2BAA2B,GAAGA,GAAE,QAAQ,6BAA6B,CAAC,CAAC,EACxF,SAAS;AAAA,EACX,eAAeA,GAAE,OAAO,EAAE,SAAS;AACpC,CAAC;AAED,IAAM,gBAAgB,2BAA2B,OAAO;AAAA,EACvD,eAAeA,GAAE,OAAO,EAAE,SAAS;AAAA,EACnC,gBAAgBA,GAAE,OAAO,EAAE,SAAS;AACrC,CAAC;AAED,IAAM,iBAAiB,2BAA2B,OAAO;AAAA,EACxD,iBAAiBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACrC,gBAAgBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACpC,iBAAiBA,GAAE,OAAO,EAAE,SAAS;AACtC,CAAC;AAED,IAAM,mBAAmB;AAEzB,IAAM,eAAe,2BAA2B,OAAO;AAAA,EACtD,QAAQA,GAAE,QAAQ,EAAE,SAAS;AAC9B,CAAC;AAED,IAAM,YAAY,8BAA8B,OAAO;AAAA,EACtD,WAAWA,GAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAED,IAAM,aAAa,8BAA8B,OAAO;AAAA,EACvD,YAAYA,GAAE,OAAO,EAAE,SAAS;AACjC,CAAC;AAED,IAAM,oBAAoB,2BAA2B,OAAO;AAAA,EAC3D,mBAAmBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACvC,oBAAoBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACxC,8BAA8BA,GAAE,OAAO,EAAE,SAAS;AACnD,CAAC;AAED,IAAM,eAAe,8BAA8B,OAAO;AAAA,EACzD,cAAcA,GAAE,OAAO,EAAE,SAAS;AACnC,CAAC;AAED,IAAM,gBAAgB,2BAA2B,OAAO;AAAA,EACvD,gBAAgBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACpC,eAAeA,GAAE,OAAO,EAAE,SAAS;AAAA,EACnC,gBAAgBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACpC,uBAAuBA,GAAE,QAAQ,EAAE,SAAS;AAC7C,CAAC;AAED,IAAM,iBAAiB,8BAA8B,OAAO;AAAA,EAC3D,gBAAgBA,GAAE,OAAO,EAAE,SAAS;AACrC,CAAC;AAED,IAAM,kBAAkB,8BAA8B,OAAO;AAAA,EAC5D,iBAAiBA,GAAE,OAAO,EAAE,SAAS;AACtC,CAAC;AAEM,IAAM,mBAAmBA,GAAE,KAAK,CAAC,wBAAwB,gBAAgB,qBAAqB,WAAW,CAAC;AAIjH,IAAM,YAAY,8BAA8B,OAAO;AAAA,EACtD,WAAWA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,YAAY,iBAAiB,SAAS;AACvC,CAAC;AAED,IAAM,kBAAkB,8BAA8B,OAAO;AAAA,EAC5D,iBAAiBA,GAAE,OAAO,EAAE,SAAS;AACtC,CAAC;AAED,IAAM,oBAAoB,8BAA8B,OAAO;AAAA,EAC9D,mBAAmBA,GAAE,OAAO,EAAE,SAAS;AACxC,CAAC;AAED,IAAM,uBAAuB,8BAA8B,OAAO;AAAA,EACjE,uBAAuBA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC3C,sBAAsBA,GAAE,OAAO,EAAE,SAAS;AAC3C,CAAC;AAED,IAAM,iBAAiB,8BAA8B,OAAO;AAAA,EAC3D,mBAAmBA,GAAE,OAAO,EAAE,SAAS;AACxC,CAAC;AAED,IAAM,YAAY,8BAA8B,OAAO;AAAA;AAEvD,CAAC;AAED,IAAM,wBAAwB,2BAA2B,OAAO;AAAA,EAC/D,uBAAuBA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC3C,wBAAwBA,GAAE,OAAO,EAAE,SAAS;AAC7C,CAAC;AAED,IAAM,gBAAgB,8BAA8B,OAAO;AAAA,EAC1D,eAAeA,GAAE,OAAO,EAAE,SAAS;AACpC,CAAC;AAED,IAAM,gBAAgBA,GAAE,OAAO;AAAA,EAC9B,aAAaA,GAAE,UAAU;AAC1B,CAAC;AAEM,IAAM,sCAAsCA,GAAE,mBAAmB,eAAe;AAAA,EACtF,gBAAgB,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,WAAW,EAAE,CAAC,CAAC;AAAA,EACvE,iBAAiB,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,aAAa,EAAE,CAAC,CAAC;AAAA,EAC1E,iBAAiB,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,YAAY,EAAE,CAAC,CAAC;AAAA,EACzE,cAAc,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,SAAS,EAAE,CAAC,CAAC;AAAA,EACnE,aAAa,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,QAAQ,EAAE,CAAC,CAAC;AAAA,EACjE,aAAa,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,QAAQ,EAAE,CAAC,CAAC;AAAA,EACjE,aAAa,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,QAAQ,EAAE,CAAC,CAAC;AAAA,EACjE,eAAe,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,WAAW,EAAE,CAAC,CAAC;AAAA,EACtE,eAAe,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,UAAU,EAAE,CAAC,CAAC;AAAA,EACrE,aAAa,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,QAAQ,EAAE,CAAC,CAAC;AAAA,EACjE,gBAAgB,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,YAAY,EAAE,CAAC,CAAC;AAAA,EACxE,mBAAmB,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,eAAe,EAAE,CAAC,CAAC;AAAA,EAC9E,cAAc,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,SAAS,EAAE,CAAC,CAAC;AAAA,EACnE,eAAe,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,UAAU,EAAE,CAAC,CAAC;AAAA,EACrE,gBAAgB,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,WAAW,EAAE,CAAC,CAAC;AAAA,EACvE,aAAa,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,QAAQ,EAAE,CAAC,CAAC;AAAA,EACjE,eAAe,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,UAAU,EAAE,CAAC,CAAC;AAAA,EACrE,cAAc,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,SAAS,EAAE,CAAC,CAAC;AAAA,EACnE,cAAc,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,SAAS,EAAE,CAAC,CAAC;AAAA,EACnE,eAAe,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,UAAU,EAAE,CAAC,CAAC;AAAA,EACrE,iBAAiB,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,aAAa,EAAE,CAAC,CAAC;AAAA,EAC1E,aAAa,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,SAAS,EAAE,CAAC,CAAC;AAAA,EAClE,UAAU,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,KAAK,EAAE,CAAC,CAAC;AAAA,EAC3D,WAAW,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,MAAM,EAAE,CAAC,CAAC;AAAA,EAC7D,cAAc,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,SAAS,EAAE,CAAC,CAAC;AAAA,EACnE,kBAAkB,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,aAAa,EAAE,CAAC,CAAC;AAAA,EAC3E,aAAa,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,QAAQ,EAAE,CAAC,CAAC;AAAA,EACjE,cAAc,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,SAAS,EAAE,CAAC,CAAC;AAAA,EACnE,eAAe,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,UAAU,EAAE,CAAC,CAAC;AAAA,EACrE,gBAAgB,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,WAAW,EAAE,CAAC,CAAC;AAAA,EACvE,UAAU,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,KAAK,EAAE,CAAC,CAAC;AAAA,EAC3D,gBAAgB,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,WAAW,EAAE,CAAC,CAAC;AAAA,EACvE,kBAAkB,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,aAAa,EAAE,CAAC,CAAC;AAAA,EAC3E,qBAAqB,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,iBAAiB,EAAE,CAAC,CAAC;AAAA,EAClF,eAAe,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,WAAW,EAAE,CAAC,CAAC;AAAA,EACtE,UAAU,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,KAAK,EAAE,CAAC,CAAC;AAAA,EAC3D,sBAAsB,MAAMA,GAAE,OAAO,EAAE,aAAaA,GAAE,QAAQ,mBAAmB,EAAE,CAAC,CAAC;AAAA,EACrF;AACD,CAAC;AAEM,IAAM,yBAAyBA,GAAE,OAAO;AAAA,EAC9C,aAAa,oBAAoB,SAAS;AAAA,EAC1C,GAAG,gBAAgB;AAAA,EACnB,GAAG,iBAAiB;AAAA,EACpB,GAAG,iBAAiB;AAAA,EACpB,GAAG,cAAc;AAAA,EACjB,GAAG,aAAa;AAAA,EAChB,GAAG,aAAa;AAAA,EAChB,GAAG,aAAa;AAAA,EAChB,GAAG,eAAe;AAAA,EAClB,GAAG,eAAe;AAAA,EAClB,GAAG,aAAa;AAAA,EAChB,GAAG,gBAAgB;AAAA,EACnB,GAAG,mBAAmB;AAAA,EACtB,GAAG,cAAc;AAAA,EACjB,GAAG,eAAe;AAAA,EAClB,GAAG,gBAAgB;AAAA,EACnB,GAAG,aAAa;AAAA,EAChB,GAAG,eAAe;AAAA,EAClB,GAAG,cAAc;AAAA,EACjB,GAAG,cAAc;AAAA,EACjB,GAAG,eAAe;AAAA,EAClB,GAAG,iBAAiB;AAAA,EACpB,GAAG,aAAa;AAAA,EAChB,GAAG,UAAU;AAAA,EACb,GAAG,WAAW;AAAA,EACd,GAAG,cAAc;AAAA,EACjB,GAAG,kBAAkB;AAAA,EACrB,GAAG,aAAa;AAAA,EAChB,GAAG,cAAc;AAAA,EACjB,GAAG,eAAe;AAAA,EAClB,GAAG,gBAAgB;AAAA,EACnB,GAAG,UAAU;AAAA,EACb,GAAG,gBAAgB;AAAA,EACnB,GAAG,kBAAkB;AAAA,EACrB,GAAG,qBAAqB;AAAA,EACxB,GAAG,eAAe;AAAA,EAClB,GAAG,UAAU;AAAA,EACb,GAAG,sBAAsB;AAAA,EACzB,GAAG,4BAA4B;AAChC,CAAC;AAIM,IAAM,+BAA+B,uBAAuB,OAAO,EAAE,IAAIA,GAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAEhG,IAAM,4CAA4C,oCAAoC;AAAA,EAC5FA,GAAE,OAAO,EAAE,IAAIA,GAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AACvC;AAIO,IAAM,yBAAyB,uBAAuB,MAAM,EAAE;AAM9D,IAAM,cAAc;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAIO,IAAM,aAAa,CAAC,aAAmD;AAC7E,QAAM,aAAa,YAAY,KAAK,CAAC,QAAQ,SAAS,GAAG,CAAC;AAC1D,SAAO,aAAa,SAAS,UAAU,IAAI;AAC5C;AAQO,IAAM,oBAAoB,CAAC,QACjC,eAAe,GAAG,KAAK,CAAC,mBAAmB,GAAG,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,eAAe,GAAG;AAE1F,IAAM,wBAA6D;AAAA,EACzE,WAAW;AAAA,EACX,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AAAA,EACT,UAAU;AAAA,EACV,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,SAAS;AAAA,EACT,UAAU;AAAA,EACV,KAAK;AAAA,EACL,MAAM;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,aAAa;AAAA,EACb,UAAU;AAAA,EACV,WAAW;AAAA,EACX,KAAK;AAAA,EACL,WAAW;AAAA,EACX,aAAa;AAAA,EACb,mBAAmB;AAAA,EACnB,KAAK;AAAA,EACL,qBAAqB;AACtB;AAOO,IAAM,4BAA4C,CAAC,aAAa,eAAe,WAAW,SAAS;AAEnG,IAAM,iBAAiB,CAAC,UAAoC,YAA6C;AAC/G,MAAI,YAAY,0BAA0B,SAAS,QAAQ,GAAG;AAC7D,WAAO;AAAA,EACR;AAEA,MAAI,YAAY,aAAa,YAAY,WAAW,QAAQ,YAAY,EAAE,SAAS,QAAQ,GAAG;AAC7F,WAAO;AAAA,EACR;AAGA,MACC,YACA,CAAC,qBAAqB,KAAK,EAAE,SAAS,QAAQ,KAC9C,WACA,QAAQ,YAAY,EAAE,WAAW,YAAY,GAC5C;AACD,WAAO;AAAA,EACR;AAEA,SAAO;AACR;AAMO,IAAM,qBAGT;AAAA,EACH,WAAW;AAAA,IACV,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ,OAAO,KAAK,eAAe;AAAA,EACpC;AAAA,EACA,SAAS;AAAA,IACR,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ,OAAO,KAAK,aAAa;AAAA,EAClC;AAAA,EACA,UAAU;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ,OAAO,KAAK,cAAc;AAAA,EACnC;AAAA,EACA,eAAe,EAAE,IAAI,eAAe,OAAO,eAAe,QAAQ,OAAO,KAAK,gBAAgB,EAAE;AAAA,EAChG,UAAU;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ,OAAO,KAAK,cAAc;AAAA,EACnC;AAAA,EACA,QAAQ,EAAE,IAAI,UAAU,OAAO,UAAU,QAAQ,OAAO,KAAK,YAAY,EAAE;AAAA,EAC3E,aAAa;AAAA,IACZ,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ,OAAO,KAAK,iBAAiB;AAAA,EACtC;AAAA,EACA,WAAW;AAAA,IACV,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ,OAAO,KAAK,eAAe;AAAA,EACpC;AAAA,EACA,QAAQ;AAAA,IACP,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ,OAAO,KAAK,YAAY;AAAA,EACjC;AAAA,EACA,MAAM,EAAE,IAAI,QAAQ,OAAO,QAAQ,QAAQ,OAAO,KAAK,UAAU,EAAE;AAAA,EACnE,mBAAmB;AAAA,IAClB,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ,OAAO,KAAK,oBAAoB;AAAA,EACzC;AAAA,EACA,SAAS;AAAA,IACR,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ,OAAO,KAAK,aAAa;AAAA,EAClC;AAAA,EACA,UAAU;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ,OAAO,KAAK,cAAc;AAAA,EACnC;AAAA,EACA,SAAS;AAAA,IACR,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ,OAAO,KAAK,aAAa;AAAA,EAClC;AAAA,EACA,iBAAiB;AAAA,IAChB,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ,OAAO,KAAK,kBAAkB;AAAA,EACvC;AAAA,EACA,aAAa,EAAE,IAAI,aAAa,OAAO,aAAa,QAAQ,OAAO,KAAK,cAAc,EAAE;AAAA,EACxF,KAAK,EAAE,IAAI,OAAO,OAAO,kBAAkB,QAAQ,CAAC,EAAE;AAAA,EACtD,WAAW;AAAA,IACV,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ,OAAO,KAAK,eAAe;AAAA,EACpC;AAAA,EACA,QAAQ;AAAA,IACP,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ,OAAO,KAAK,YAAY;AAAA,EACjC;AAAA,EACA,aAAa;AAAA,IACZ,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ,OAAO,KAAK,eAAe;AAAA,EACpC;AAAA,EACA,KAAK,EAAE,IAAI,OAAO,OAAO,cAAc,QAAQ,OAAO,KAAK,SAAS,EAAE;AAAA,EACtE,KAAK,EAAE,IAAI,OAAO,OAAO,QAAQ,QAAQ,OAAO,KAAK,sBAAsB,EAAE;AAAA,EAC7E,SAAS,EAAE,IAAI,WAAW,OAAO,WAAW,QAAQ,OAAO,KAAK,aAAa,EAAE;AAAA;AAAA,EAG/E,aAAa,EAAE,IAAI,eAAe,OAAO,gBAAgB,QAAQ,CAAC,EAAE;AAAA,EACpE,SAAS,EAAE,IAAI,WAAW,OAAO,WAAW,QAAQ,CAAC,EAAE;AAAA,EACvD,YAAY,EAAE,IAAI,cAAc,OAAO,cAAc,QAAQ,CAAC,EAAE;AAAA,EAChE,UAAU,EAAE,IAAI,YAAY,OAAO,YAAY,QAAQ,CAAC,EAAE;AAAA,EAC1D,SAAS,EAAE,IAAI,WAAW,OAAO,WAAW,QAAQ,CAAC,EAAE;AAAA,EACvD,WAAW,EAAE,IAAI,aAAa,OAAO,aAAa,QAAQ,CAAC,EAAE;AAAA,EAC7D,qBAAqB,EAAE,IAAI,qBAAqB,OAAO,qBAAqB,QAAQ,CAAC,EAAE;AAAA,EACvF,QAAQ,EAAE,IAAI,UAAU,OAAO,aAAa,QAAQ,CAAC,EAAE;AAAA;AAAA,EAGvD,UAAU,EAAE,IAAI,YAAY,OAAO,aAAa,QAAQ,CAAC,EAAE;AAAA,EAC3D,QAAQ,EAAE,IAAI,UAAU,OAAO,UAAU,QAAQ,CAAC,EAAE;AACrD;;;AqC3tBA,SAAS,KAAAC,UAAS;AAMX,IAAM,oBAAoBA,GAAE,OAAO;AAAA,EACzC,IAAIA,GAAE,OAAO;AAAA,EACb,YAAYA,GAAE,OAAO,EAAE,SAAS;AAAA,EAChC,cAAcA,GAAE,OAAO,EAAE,SAAS;AAAA,EAClC,QAAQA,GAAE,OAAO;AAAA,EACjB,IAAIA,GAAE,OAAO;AAAA,EACb,MAAMA,GAAE,OAAO;AAAA,EACf,UAAUA,GAAE,OAAO;AAAA,EACnB,WAAWA,GAAE,OAAO;AAAA,EACpB,aAAaA,GAAE,OAAO,EAAE,SAAS;AAAA,EACjC,YAAYA,GAAE,OAAO,EAAE,SAAS;AAAA,EAChC,WAAWA,GAAE,OAAO;AAAA,EACpB,MAAMA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,WAAWA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,MAAMA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,QAAQA,GAAE,KAAK,CAAC,UAAU,aAAa,WAAW,CAAC,EAAE,SAAS;AAAA,EAC9D,eAAeA,GAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EACnC,UAAUA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS;AAAA;AAAA,EACvC,iBAAiBA,GAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EACrC,oBAAoBA,GAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EACxC,yBAAyBA,GAAE,OAAO,EAAE,SAAS;AAAA;AAC9C,CAAC;;;AC3BD,SAAS,KAAAC,WAAS;AAQX,IAAM,gBAAgB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAEO,IAAM,sBAAsBA,IAAE,KAAK,aAAa;AAQhD,IAAM,oBAAoBA,IAAE,OAAO;AAAA,EACzC,eAAeA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACpC,oBAAoBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACzC,wBAAwBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC7C,iBAAiBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACtC,iBAAiBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACtC,yBAAyBA,IAAE,QAAQ,EAAE,SAAS;AAC/C,CAAC;;;AChCD,SAAS,KAAAC,WAAS;AASX,IAAM,oBAAoB,CAAC,SAAS,WAAW,UAAU;AAEzD,IAAM,0BAA0BC,IAAE,KAAK,iBAAiB;AAQxD,IAAK,qBAAL,kBAAKC,wBAAL;AACN,EAAAA,oBAAA,kBAAe;AACf,EAAAA,oBAAA,oBAAiB;AACjB,EAAAA,oBAAA,oBAAiB;AACjB,EAAAA,oBAAA,kBAAe;AACf,EAAAA,oBAAA,+BAA4B;AAC5B,EAAAA,oBAAA,oBAAiB;AACjB,EAAAA,oBAAA,iBAAc;AACd,EAAAA,oBAAA,0BAAuB;AACvB,EAAAA,oBAAA,eAAY;AAEZ,EAAAA,oBAAA,wBAAqB;AACrB,EAAAA,oBAAA,yBAAsB;AACtB,EAAAA,oBAAA,uBAAoB;AAEpB,EAAAA,oBAAA,eAAY;AACZ,EAAAA,oBAAA,2BAAwB;AACxB,EAAAA,oBAAA,yBAAsB;AAEtB,EAAAA,oBAAA,uBAAoB;AACpB,EAAAA,oBAAA,+BAA4B;AAE5B,EAAAA,oBAAA,sBAAmB;AACnB,EAAAA,oBAAA,qBAAkB;AAElB,EAAAA,oBAAA,0BAAuB;AAEvB,EAAAA,oBAAA,8BAA2B;AAE3B,EAAAA,oBAAA,gCAA6B;AAC7B,EAAAA,oBAAA,8BAA2B;AAC3B,EAAAA,oBAAA,4BAAyB;AACzB,EAAAA,oBAAA,wCAAqC;AAErC,EAAAA,oBAAA,0BAAuB;AACvB,EAAAA,oBAAA,gCAA6B;AAC7B,EAAAA,oBAAA,0BAAuB;AACvB,EAAAA,oBAAA,oCAAiC;AAEjC,EAAAA,oBAAA,6BAA0B;AAC1B,EAAAA,oBAAA,6BAA0B;AAC1B,EAAAA,oBAAA,4BAAyB;AACzB,EAAAA,oBAAA,4BAAyB;AAEzB,EAAAA,oBAAA,+BAA4B;AAE5B,EAAAA,oBAAA,sBAAmB;AACnB,EAAAA,oBAAA,oBAAiB;AAEjB,EAAAA,oBAAA,6BAA0B;AAC1B,EAAAA,oBAAA,4BAAyB;AACzB,EAAAA,oBAAA,6BAA0B;AAC1B,EAAAA,oBAAA,+BAA4B;AAC5B,EAAAA,oBAAA,sBAAmB;AACnB,EAAAA,oBAAA,gCAA6B;AAC7B,EAAAA,oBAAA,gCAA6B;AAvDlB,SAAAA;AAAA,GAAA;AA8DL,IAAM,4BAA4BD,IAAE,OAAO;AAAA,EACjD,SAASA,IAAE,OAAO;AAAA,EAClB,YAAYA,IAAE,OAAO;AAAA,EACrB,eAAeA,IAAE,OAAO;AAAA,EACxB,UAAUA,IAAE,OAAO;AAAA,EACnB,YAAYA,IAAE,OAAO;AAAA,EACrB,UAAUA,IAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;AAIM,IAAM,6BAA6BA,IAAE,OAAO;AAAA,EAClD,UAAUA,IAAE,OAAO;AAAA,EACnB,MAAMA,IAAE,OAAO;AAChB,CAAC;AAIM,IAAM,2BAA2BA,IAAE,OAAO;AAAA,EAChD,sBAAsBA,IAAE,QAAQ,EAAE,SAAS;AAC5C,CAAC;AAIM,IAAM,sBAAsBA,IAAE,OAAO;AAAA,EAC3C,GAAG,0BAA0B;AAAA,EAC7B,GAAG,2BAA2B;AAAA,EAC9B,GAAG,yBAAyB;AAC7B,CAAC;AAIM,IAAM,uBAAuBA,IAAE,OAAO;AAAA,EAC5C,QAAQA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,cAAcA,IAAE,OAAO,EAAE,SAAS;AAAA,EAClC,aAAaA,IAAE,KAAK,aAAa,EAAE,SAAS;AAAA,EAC5C,SAASA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,cAAcA,IAAE,OAAO,EAAE,SAAS;AAAA,EAClC,WAAWA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAChC,OAAOA,IACL,OAAO;AAAA,IACP,OAAOA,IAAE,OAAO;AAAA,IAChB,WAAWA,IAAE,OAAO;AAAA,IACpB,YAAYA,IAAE,OAAO;AAAA,IACrB,SAASA,IAAE,OAAO;AAAA,EACnB,CAAC,EACA,SAAS;AACZ,CAAC;AAIM,IAAM,sBAAsBA,IAAE,OAAO;AAAA,EAC3C,eAAeA,IAAE,OAAO,EAAE,SAAS;AAAA,EACnC,gBAAgBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACpC,eAAeA,IAAE,OAAO,EAAE,SAAS;AACpC,CAAC;AAIM,IAAM,4BAA4BA,IAAE,OAAO;AAAA,EACjD,GAAG,oBAAoB;AAAA,EACvB,GAAG,qBAAqB;AAAA,EACxB,GAAG,oBAAoB;AACxB,CAAC;AAkBM,IAAM,8BAA8BA,IAAE,mBAAmB,QAAQ;AAAA,EACvEA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,KAAK;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD,CAAC;AAAA,IACD,YAAY;AAAA,EACb,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,6DAA6C;AAAA,IAC7D,YAAYA,IAAE,OAAO;AAAA,MACpB,GAAG,0BAA0B;AAAA,MAC7B,iBAAiB;AAAA,MACjB,YAAY;AAAA,IACb,CAAC;AAAA,EACF,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,iCAA+B;AAAA,IAC/C,YAAYA,IAAE,OAAO;AAAA,MACpB,GAAG,0BAA0B;AAAA,MAC7B,QAAQA,IAAE,OAAO;AAAA,MACjB,SAAS;AAAA,IACV,CAAC;AAAA,EACF,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,qCAAiC;AAAA,IACjD,YAAYA,IAAE,OAAO;AAAA,MACpB,GAAG,0BAA0B;AAAA,MAC7B,aAAaA,IAAE,OAAO;AAAA,MACtB,cAAcA,IAAE,OAAO;AAAA,MACvB,iBAAiBA,IAAE,OAAO,EAAE,SAAS;AAAA,MACrC,kBAAkBA,IAAE,OAAO,EAAE,SAAS;AAAA,MACtC,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,IAC3B,CAAC;AAAA,EACF,CAAC;AACF,CAAC;AAuCM,IAAM,2BAA2B,oBAAI,IAAI;AAAA,EAC/C;AAAA;AAAA,EACA;AAAA;AACD,CAAC;AAMD,IAAM,kCAAkC;AAAA,EACvC;AAAA;AAAA,EACA;AAAA;AACD;AA8BA,SAAS,iBAAiB,OAAyC;AAClE,SACC,OAAO,UAAU,YACjB,UAAU,QACV,YAAY,SACZ,OAAQ,MAAyB,WAAW;AAE9C;AAQO,SAAS,mBAAmB,OAAoC;AACtE,MAAI,iBAAiB,KAAK,GAAG;AAC5B,WAAO,MAAM;AAAA,EACd;AACA,SAAO;AACR;AAQO,SAAS,gBAAgB,OAAoC;AACnE,MAAI,iBAAiB,KAAK,GAAG;AAE5B,WAAO,MAAM,OAAO,UAAU,OAAO,MAAM,OAAO,WAAW,MAAM;AAAA,EACpE;AACA,SAAO;AACR;AASO,SAAS,gCAAgC,WAAoB,cAAgC;AAEnG,MAAI,cAAc,UAAa,yBAAyB,IAAI,SAAS,GAAG;AACvE,WAAO;AAAA,EACR;AAGA,MAAI,cAAc;AACjB,eAAW,WAAW,iCAAiC;AACtD,UAAI,QAAQ,KAAK,YAAY,GAAG;AAC/B,eAAO;AAAA,MACR;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;AAMO,IAAM,mBAAN,cAA+B,MAAM;AAAA,EAC3C,YACC,SACgB,UACA,SACA,WACA,WACf;AACD,UAAM,OAAO;AALG;AACA;AACA;AACA;AAGhB,SAAK,OAAO;AAAA,EACb;AACD;AAMO,SAAS,mBAAmB,OAA2C;AAC7E,SACC,iBAAiB,SACjB,MAAM,SAAS,sBACf,cAAc,SACd,aAAa,SACb,eAAe;AAEjB;AAMO,SAAS,kCAAkC,OAAkD;AACnG,SAAO;AAAA,IACN,UAAU,MAAM;AAAA,IAChB,SAAS,MAAM;AAAA,IACf,WAAW,MAAM;AAAA,IACjB,GAAI,MAAM,cAAc,UAAa,EAAE,WAAW,MAAM,UAAU;AAAA,EACnE;AACD;;;ACnaA,SAAS,KAAAE,WAAS;AAQX,IAAM,qBAAqBC,IAAE,OAAO;AAAA,EAC1C,WAAWA,IACT,OAAO,EACP,SAAS,EACT;AAAA,IACA,CAAC,YAAY;AACZ,UAAI,CAAC,SAAS;AACb,eAAO;AAAA,MACR;AAEA,UAAI;AACH,YAAI,OAAO,OAAO;AAClB,eAAO;AAAA,MACR,QAAQ;AACP,eAAO;AAAA,MACR;AAAA,IACD;AAAA,IACA,EAAE,SAAS,qCAAqC;AAAA,EACjD;AAAA,EACD,aAAaA,IAAE,OAAO,EAAE,SAAS;AAClC,CAAC;AAQM,IAAM,mBAAmBA,IAAE,MAAM,CAAC,kBAAkBA,IAAE,MAAM,CAAC,kBAAkB,kBAAkB,CAAC,CAAC,CAAC;AAQ3G,IAAM,wBAAwBA,IAAE,MAAM,gBAAgB,EAAE;AAAA,EACvD,CAAC,WAAW;AACX,UAAM,OAAO,oBAAI,IAAI;AAErB,WAAO,OAAO,MAAM,CAAC,UAAU;AAE9B,YAAM,YAAY,MAAM,QAAQ,KAAK,IAAI,MAAM,CAAC,IAAI;AAEpD,UAAI,KAAK,IAAI,SAAS,GAAG;AACxB,eAAO;AAAA,MACR;AAEA,WAAK,IAAI,SAAS;AAClB,aAAO;AAAA,IACR,CAAC;AAAA,EACF;AAAA,EACA,EAAE,SAAS,mCAAmC;AAC/C;AAEO,IAAM,mBAAmBA,IAAE,OAAO;AAAA,EACxC,MAAMA,IAAE,OAAO,EAAE,MAAM,mBAAmB,mDAAmD;AAAA,EAC7F,MAAMA,IAAE,OAAO,EAAE,IAAI,GAAG,kBAAkB;AAAA,EAC1C,gBAAgBA,IAAE,OAAO,EAAE,IAAI,GAAG,6BAA6B;AAAA,EAC/D,WAAWA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,aAAaA,IAAE,OAAO,EAAE,SAAS;AAAA,EACjC,oBAAoBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACxC,QAAQ;AAAA,EACR,QAAQA,IAAE,KAAK,CAAC,UAAU,SAAS,CAAC,EAAE,SAAS;AAChD,CAAC;AAQM,IAAM,4BAA4BA,IAAE,OAAO;AAAA,EACjD,aAAaA,IAAE,MAAM,gBAAgB,EAAE;AAAA,IACtC,CAAC,UAAU;AACV,YAAM,QAAQ,oBAAI,IAAI;AAEtB,aAAO,MAAM,MAAM,CAAC,SAAS;AAC5B,YAAI,MAAM,IAAI,KAAK,IAAI,GAAG;AACzB,iBAAO;AAAA,QACR;AAEA,cAAM,IAAI,KAAK,IAAI;AACnB,eAAO;AAAA,MACR,CAAC;AAAA,IACF;AAAA,IACA;AAAA,MACC,SAAS;AAAA,IACV;AAAA,EACD;AACD,CAAC;AAQM,IAAM,wBAAwBA,IAAE,OAAO;AAAA,EAC7C,gBAAgBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACpC,WAAWA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,aAAaA,IAAE,OAAO,EAAE,SAAS;AAAA,EACjC,oBAAoBA,IAAE,OAAO,EAAE,SAAS;AACzC,CAAC;AAQM,IAAM,0BAA0BA,IAAE,OAAOA,IAAE,OAAO,GAAG,sBAAsB,SAAS,CAAC;AAQrF,IAAM,6BAA6BA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,EAAE,SAAS,CAAC;AAQ7E,IAAM,gBAAuC;AAAA,EACnD;AAAA,IACC,MAAM;AAAA,IACN,MAAM;AAAA,IACN,gBACC;AAAA,IACD,WACC;AAAA,IACD,aAAa;AAAA,IACb,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,UAAU,aAAa,sBAAsB,CAAC,GAAG,WAAW,KAAK;AAAA,IACxG,oBACC;AAAA,EACF;AAAA,EACA;AAAA,IACC,MAAM;AAAA,IACN,MAAM;AAAA,IACN,gBACC;AAAA,IACD,WACC;AAAA,IACD,aAAa;AAAA,IACb,QAAQ,CAAC,QAAQ,QAAQ,WAAW,WAAW,KAAK;AAAA,EACrD;AAAA,EACA;AAAA,IACC,MAAM;AAAA,IACN,MAAM;AAAA,IACN,gBACC;AAAA,IACD,WACC;AAAA,IACD,aAAa;AAAA,IACb,QAAQ,CAAC,QAAQ,WAAW,KAAK;AAAA,IACjC,oBACC;AAAA,EACF;AAAA,EACA;AAAA,IACC,MAAM;AAAA,IACN,MAAM;AAAA,IACN,gBACC;AAAA,IACD,WACC;AAAA,IACD,aAAa;AAAA,IACb,QAAQ,CAAC,QAAQ,QAAQ,WAAW,WAAW,KAAK;AAAA,IACpD,oBACC;AAAA,EACF;AAAA,EACA;AAAA,IACC,MAAM;AAAA,IACN,MAAM;AAAA,IACN,gBACC;AAAA,IACD,WACC;AAAA,IACD,aAAa;AAAA,IACb,QAAQ,CAAC;AAAA,IACT,oBACC;AAAA,EACF;AACD;;;AClMA,SAAS,KAAAC,WAAS;AAMX,IAAM,gBAAgB,CAAC,eAAe,WAAW,eAAe,gBAAgB,SAAS;AAUzF,IAAM,oBAAoB,CAAC,wBAAwB,sBAAsB,wBAAwB;AAYjG,IAAM,aAAa;AAAA,EACzB;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EAEA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAQO,IAAM,YAAY;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAEO,IAAM,kBAAkBA,IAAE,KAAK,SAAS;AAIxC,IAAM,aAAa,CAAC,UAAqC,UAAU,SAAS,KAAiB;;;A1CjE7F,IAAM,yBAAyB;AAO/B,IAAM,0CAA0C;AAKhD,IAAM,iCAAiC;AAKvC,IAAM,iCAAiC;AAKvC,IAAM,qCAAqC;AAM3C,IAAM,uBAAuBC,IAAE,OAAO;AAAA,EAC5C,sBAAsBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1C,mBAAmBA,IAAE,MAAM,2BAA2B,EAAE,SAAS;AAAA,EACjE,kBAAkBA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,QAAQ,CAAC,EAAE,SAAS;AAAA,EAE7D,yBAAyBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC7C,oBAAoBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACxC,aAAaA,IAAE,MAAM,iBAAiB,EAAE,SAAS;AAAA,EACjD,kBAAkBA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA;AAAA,EAG/C,yBAAyBA,IAAE,KAAK,CAAC,cAAc,KAAK,CAAC,EAAE,SAAS;AAAA,EAChE,uBAAuBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC3C,wCAAwCA,IAAE,OAAO,EAAE,SAAS;AAAA,EAE5D,uBAAuBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC3C,wBAAwBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAE5C,qBAAqBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC1C,qBAAqBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC1C,qCAAqCA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC1D,kBAAkBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACvC,kCAAkCA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACvD,2BAA2BA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAChD,cAAcA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACzC,oBAAoBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACzC,uBAAuBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC5C,qBAAqBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACzC,gBAAgBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACrC,uBAAuBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC5C,qBAAqBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC1C,oBAAoBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACzC,8BAA8BA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACnD,8BAA8BA,IAAE,OAAO,EAAE,SAAS;AAAA,EAClD,2BAA2BA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAChD,iBAAiBA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EAC9C,gBAAgBA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EAC7C,yBAAyBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC7C,yBAAyBA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACtD,gCAAgCA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACrD,oBAAoBA,IAAE,OAAO,EAAE,QAAQ;AAAA,EACvC,gBAAgBA,IAAE,OAAO,EAAE,QAAQ;AAAA,EACnC,qBAAqBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC1C,4BAA4BA,IAAE,OAAO,EAAE,SAAS;AAAA,EAChD,wBAAwBA,IAAE,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAM5C,oBAAoBA,IAAE,QAAQ,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAKzC,oBAAoBA,IAAE,QAAQ,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMzC,mBAAmBA,IAAE,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAMvC,2BAA2BA,IAAE,QAAQ,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAKhD,uBAAuBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAE3C,oBAAoBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACzC,qBAAqBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACzC,mBAAmBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACvC,sBAAsBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC3C,mBAAmBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACvC,qBAAqBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAEzC,mBAAmBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACxC,mBAAmBA,IACjB,OAAO,EACP,IAAI,EACJ,IAAI,8BAA8B,EAClC,IAAI,8BAA8B,EAClC,SAAS;AAAA,EAEX,YAAYA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACjC,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,cAAcA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACnC,aAAaA,IAAE,OAAO,EAAE,SAAS;AAAA,EAEjC,oBAAoBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACxC,mBAAmBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACvC,qBAAqBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC1C,iBAAiBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACrC,kBAAkBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACtC,mBAAmBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAEvC,yBAAyBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC7C,8BAA8BA,IAAE,OAAO,EAAE,SAAS;AAAA,EAClD,iCAAiCA,IAAE,OAAO,EAAE,SAAS;AAAA,EACrD,kCAAkCA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACvD,sBAAsBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1C,2BAA2BA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAChD,yBAAyBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC9C,iBAAiBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACtC,iBAAiBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACtC,iBAAiBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACtC,6BAA6BA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAElD,oBAAoBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAEzC,kBAAkBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACtC,aAAaA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAClC,qBAAqBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACzC,aAAa,kBAAkB,SAAS;AAAA,EAExC,qBAAqB,0BAA0B,SAAS;AAAA,EACxD,qBAAqB,0BAA0B,SAAS;AAAA,EAExD,UAAU,gBAAgB,SAAS;AAAA,EAEnC,kBAAkB,wBAAwB,SAAS;AAAA,EAEnD,YAAYA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACjC,yBAAyBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAE9C,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,gBAAgBA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EAC1D,aAAaA,IAAE,MAAM,gBAAgB,EAAE,SAAS;AAAA,EAChD,mBAAmB,wBAAwB,SAAS;AAAA,EACpD,sBAAsB,2BAA2B,SAAS;AAAA,EAC1D,wBAAwBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC5C,6BAA6BA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAClD,yBAAyBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC9C,yBAAyBA,IAAE,QAAQ,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO9C,eAAeA,IAAE,KAAK,CAAC,QAAQ,SAAS,CAAC,EAAE,SAAS;AAAA,EACpD,mBAAmBA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EAC7D,uBAAuBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC5C,oBAAoBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACxC,oBAAoBA,IAAE,OAAO,EAAE,SAAS;AACzC,CAAC;AAIM,IAAM,uBAAuB,qBAAqB,MAAM,EAAE;AAM1D,IAAM,wBAAwB,uBAAuB,MAAM,oBAAoB;AAO/E,IAAM,oBAAoB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAGO,IAAM,qBAAqB;AAAA,EACjC;AAAA;AACD;AAWO,IAAM,mBAAmB,CAAC,QAChC,kBAAkB,SAAS,GAAwB,KAAK,mBAAmB,SAAS,GAAsB;AAQpG,IAAM,oBAAoB,CAAC,GAAG,sBAAsB,GAAG,sBAAsB,EAAE;AAAA,EACrF,CAAC,QAA+B,CAAC,iBAAiB,GAAG;AACtD;AAEO,IAAM,mBAAmB,CAAC,QAChC,kBAAkB,SAAS,GAAwB;AAO7C,IAAM,iBAAkC;AAAA,EAC9C,aAAa;AAAA,EACb,iCAAiC;AAAA,EAEjC,yBAAyB;AAAA,EAEzB,kBAAkB,CAAC;AAAA,EAEnB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qCAAqC;AAAA,EACrC,kBAAkB;AAAA,EAClB,kCAAkC;AAAA,EAClC,2BAA2B;AAAA,EAC3B,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,EACvB,qBAAqB;AAAA,EACrB,gBAAgB;AAAA,EAChB,uBAAuB;AAAA,EACvB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,8BAA8B;AAAA,EAC9B,2BAA2B;AAAA,EAC3B,8BAA8B;AAAA,EAC9B,iBAAiB,CAAC,GAAG;AAAA,EACrB,yBAAyB;AAAA,EACzB,yBAAyB,CAAC;AAAA,EAC1B,gCAAgC;AAAA,EAEhC,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,sBAAsB;AAAA,EAEtB,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,cAAc;AAAA,EACd,aAAa;AAAA,EAEb,yBAAyB;AAAA,EACzB,8BAA8B;AAAA,EAC9B,iCAAiC;AAAA,EACjC,sBAAsB;AAAA,EACtB,2BAA2B;AAAA,EAC3B,iBAAiB;AAAA,EACjB,yBAAyB;AAAA,EACzB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,6BAA6B;AAAA,EAC7B,kCAAkC;AAAA,EAElC,oBAAoB;AAAA,EAEpB,aAAa;AAAA,EACb,qBAAqB;AAAA,EAErB,mBAAmB;AAAA,EAEnB,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,iBAAiB;AAAA;AAAA,EAEjB,2BAA2B;AAAA,EAC3B,uBAAuB;AAAA,EAEvB,UAAU;AAAA,EACV,kBAAkB;AAAA,EAElB,YAAY;AAAA,EAEZ,MAAM;AAAA;AAAA,EAEN,aAAa,CAAC;AACf;AAEO,IAAM,gBAAgB,IAAI,KAAK;;;A2CpXtC,SAAS,KAAAC,WAAS;AAKX,IAAM,qBAAqBA,IAAE,OAAO;AAAA,EAC1C,MAAMA,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACtB,KAAKA,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACrB,aAAaA,IAAE,OAAO,EAAE,SAAS;AAAA,EACjC,UAAUA,IAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,KAAK;AAC/C,CAAC;AAOM,IAAM,8BAA8BA,IAAE,OAAO;AAAA,EACnD,MAAMA,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACtB,SAASA,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACzB,YAAYA,IAAE,MAAM,kBAAkB,EAAE,SAAS;AAAA,EACjD,eAAeA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAC7C,CAAC;AAOM,IAAM,4BAA4BA,IAAE,KAAK,CAAC,QAAQ,KAAK,CAAU;AAOxE,IAAM,4BAA4BA,IAAE,OAAO;AAAA,EAC1C,IAAIA,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACpB,MAAMA,IAAE,OAAO,EAAE,IAAI,GAAG,kBAAkB;AAAA,EAC1C,aAAaA,IAAE,OAAO;AAAA,EACtB,QAAQA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,WAAWA,IAAE,OAAO,EAAE,IAAI,gCAAgC,EAAE,SAAS;AAAA,EACrE,MAAMA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACnC,eAAeA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAC7C,CAAC;AAKM,IAAM,4BAA4B,0BAA0B,OAAO;AAAA,EACzE,SAASA,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA;AAC1B,CAAC;AAIM,IAAM,2BAA2B,0BAA0B,OAAO;AAAA,EACxE,KAAKA,IAAE,OAAO,EAAE,IAAI;AAAA;AAAA,EACpB,SAASA,IAAE,MAAM,CAACA,IAAE,OAAO,EAAE,IAAI,CAAC,GAAGA,IAAE,MAAM,2BAA2B,CAAC,CAAC;AAAA;AAAA,EAC1E,YAAYA,IAAE,MAAM,kBAAkB,EAAE,SAAS;AAClD,CAAC;AAOM,IAAM,wBAAwBA,IAAE,mBAAmB,QAAQ;AAAA;AAAA,EAEjE,0BAA0B,OAAO;AAAA,IAChC,MAAMA,IAAE,QAAQ,MAAM;AAAA,EACvB,CAAC;AAAA;AAAA,EAED,yBAAyB,OAAO;AAAA,IAC/B,MAAMA,IAAE,QAAQ,KAAK;AAAA,EACtB,CAAC;AACF,CAAC;AAOM,IAAM,sCAAsCA,IAAE,OAAO;AAAA,EAC3D,QAAQA,IAAE,KAAK,CAAC,UAAU,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,SAAS;AAAA,EAClE,YAAYA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,IAAI,CAAC,EAAE,SAAS;AACpD,CAAC;;;AhDRM,IAAM,8BAA8BC,IAAE,OAAO;AAAA,EACnD,UAAUA,IAAE,QAAQ;AAAA,EACpB,WAAWA,IAAE;AAAA,IACZA,IAAE,OAAO;AAAA,MACR,UAAUA,IAAE,QAAQ;AAAA,MACpB,QAAQA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,IACtC,CAAC;AAAA,EACF;AACD,CAAC;AAQM,IAAM,oCAAoC,qBAC/C,KAAK;AAAA,EACL,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,sBAAsB;AAAA,EACtB,6BAA6B;AAAA,EAC7B,yBAAyB;AAAA,EACzB,kCAAkC;AAAA,EAClC,iCAAiC;AAAA,EACjC,yBAAyB;AAC1B,CAAC,EAEA;AAAA,EACAA,IAAE,OAAO;AAAA,IACR,oBAAoBA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,IAC5D,iBAAiBA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IACnD,mBAAmBA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,IAC3D,sBAAsBA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,IAC9D,yBAAyBA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,IACjE,iCAAiCA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EAC1E,CAAC;AACF;AAQD,IAAM,gCAAgCA,IAAE,KAAK,CAAC,OAAO,aAAa,eAAe,CAAC;AAQ3E,IAAM,kCAAkCA,IAAE,OAAO;AAAA,EACvD,oBAAoBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACzC,mBAAmBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACxC,yBAAyBA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAC9D,0BAA0BA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC/C,yBAAyB,8BAA8B,SAAS;AACjE,CAAC;AAQM,IAAM,6BAA6BA,IAAE,OAAO;AAAA,EAClD,uBAAuBA,IAAE,QAAQ,EAAE,SAAS;AAC7C,CAAC;AAQM,IAAM,6BAA6BA,IAAE,OAAO;AAAA,EAClD,SAASA,IAAE,OAAO;AAAA,EAClB,eAAe,gCAAgC,SAAS;AAAA,EACxD,iBAAiB;AAAA,EACjB,WAAW;AAAA,EACX,UAAU,2BAA2B,SAAS;AAAA,EAC9C,YAAYA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACzC,qBAAqBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC1C,MAAMA,IAAE,MAAM,wBAAwB,EAAE,SAAS;AAAA,EACjD,kBAAkBA,IAAE,OAAOA,IAAE,OAAO,GAAG,4BAA4B,EAAE,SAAS;AAC/E,CAAC;AAQM,IAAM,qBAAqBA,IAAE,OAAO;AAAA,EAC1C,uBAAuBA,IAAE,QAAQ,EAAE,SAAS;AAC7C,CAAC;AAIM,IAAM,2BAA2BA,IAAE,OAAO;AAAA,EAChD,wBAAwBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC7C,iBAAiBA,IAAE,QAAQ,EAAE,SAAS;AACvC,CAAC;AAIM,IAAM,yBAAyBA,IAAE,OAAO;AAAA,EAC9C,UAAU;AAAA,EACV,UAAU;AAAA,EACV,SAASA,IAAE,OAAO;AACnB,CAAC;AAQM,IAAM,yBAAgD;AAAA,EAC5D,UAAU;AAAA,EACV,WAAW,CAAC;AACb;AAEO,IAAM,uBAA6C;AAAA,EACzD,SAAS;AAAA,EACT,eAAe;AAAA,IACd,oBAAoB;AAAA,IACpB,mBAAmB;AAAA,IACnB,yBAAyB;AAAA,IACzB,0BAA0B;AAAA,EAC3B;AAAA,EACA,iBAAiB,CAAC;AAAA,EAClB,WAAW;AACZ;AAYO,IAAM,sBAAsBA,IAAE,OAAO;AAAA,EAC3C,SAASA,IAAE,QAAQ;AAAA,EACnB,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,OAAOA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,YAAYA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACjC,WAAWA,IAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAoIM,IAAK,kBAAL,kBAAKC,qBAAL;AACN,EAAAA,iBAAA,kBAAe;AACf,EAAAA,iBAAA,gBAAa;AACb,EAAAA,iBAAA,eAAY;AACZ,EAAAA,iBAAA,cAAW;AACX,EAAAA,iBAAA,YAAS;AALE,SAAAA;AAAA,GAAA;AAuBL,IAAM,wBAAwB;AAC9B,IAAM,uBAAuB;AAMpC,IAAM,sBAAsBD,IAAE,OAAO;AAAA,EACpC,QAAQA,IAAE,OAAO;AAAA,EACjB,YAAYA,IAAE,WAAW,UAAU;AAAA,EACnC,SAAS,mBAAmB,SAAS;AAAA,EACrC,gBAAgBA,IAAE,MAAM,mBAAmB,EAAE,SAAS;AAAA,EACtD,cAAcA,IAAE,OAAO,EAAE,SAAS;AAAA,EAClC,aAAaA,IAAE,OAAO,EAAE,SAAS;AAAA,EACjC,YAAY,iBAAiB,SAAS;AAAA,EACtC,GAAG,mBAAmB;AACvB,CAAC;AAQM,IAAM,0BAA0BA,IAAE,OAAO;AAAA,EAC/C,YAAYA,IAAE,OAAO;AAAA,EACrB,QAAQA,IAAE,OAAO;AAAA,EACjB,eAAeA,IAAE,OAAO;AAAA,EACxB,eAAe;AAAA,EACf,eAAe,oBAAoB,SAAS;AAAA,EAC5C,eAAeA,IAAE,OAAO,OAAO;AAAA,EAC/B,MAAM;AAAA,EACN,SAAS,mBAAmB,SAAS;AAAA,EACrC,aAAaA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA,EAC/B,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,OAAOA,IAAE,MAAMA,IAAE,OAAO,EAAE,MAAMA,IAAE,OAAO,GAAG,MAAMA,IAAE,OAAO,EAAE,CAAC,CAAC,EAAE,SAAS;AAAA,EAC1E,iBAAiBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACrC,kBAAkBA,IAAE,MAAMA,IAAE,OAAO,EAAE,MAAMA,IAAE,OAAO,GAAG,UAAUA,IAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,SAAS;AAAA,EACpG,cAAcA,IAAE,QAAQ,EAAE,SAAS;AACpC,CAAC;AAQM,IAAK,4BAAL,CAAKE,8BAAL;AACN,EAAAA,oDAAA;AACA,EAAAA,oDAAA;AACA,EAAAA,oDAAA;AACA,EAAAA,oDAAA;AACA,EAAAA,oDAAA;AACA,EAAAA,oDAAA;AACA,EAAAA,oDAAA;AACA,EAAAA,oDAAA;AACA,EAAAA,oDAAA;AACA,EAAAA,oDAAA;AAEA,EAAAA,oDAAA;AACA,EAAAA,oDAAA;AACA,EAAAA,oDAAA;AACA,EAAAA,oDAAA;AACA,EAAAA,oDAAA;AACA,EAAAA,oDAAA;AAEA,EAAAA,oDAAA;AAEA,EAAAA,oDAAA;AAEA,EAAAA,oDAAA;AACA,EAAAA,oDAAA;AAEA,EAAAA,0BAAA,wBAAqB;AACrB,EAAAA,0BAAA,0BAAuB;AACvB,EAAAA,0BAAA,sBAAmB;AA5BR,SAAAA;AAAA,GAAA;AA+BL,IAAM,6BAA6BF,IAAE,mBAAmB,QAAQ;AAAA,EACtEA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,yBAAyB,WAAW;AAAA,IACpD,UAAU;AAAA,IACV,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,yBAAyB,WAAW;AAAA,IACpD,UAAU;AAAA,IACV,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,yBAAyB,aAAa;AAAA,IACtD,UAAU;AAAA,IACV,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,yBAAyB,WAAW;AAAA,IACpD,UAAU;AAAA,IACV,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,yBAAyB,WAAW;AAAA,IACpD,UAAU;AAAA,IACV,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,yBAAyB,aAAa;AAAA,IACtD,UAAU;AAAA,IACV,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,yBAAyB,UAAU;AAAA,IACnD,UAAU;AAAA,IACV,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,yBAAyB,eAAe;AAAA,IACxD,UAAU;AAAA,IACV,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,yBAAyB,aAAa;AAAA,IACtD,UAAU;AAAA,IACV,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,yBAAyB,QAAQ;AAAA,IACjD,UAAU;AAAA,IACV,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EAEDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,yBAAyB,UAAU;AAAA,IACnD,UAAU;AAAA,IACV,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,yBAAyB,YAAY;AAAA,IACrD,UAAU;AAAA,IACV,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,yBAAyB,WAAW;AAAA,IACpD,UAAU;AAAA,IACV,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,yBAAyB,aAAa;AAAA,IACtD,UAAU;AAAA,IACV,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,yBAAyB,uBAAuB;AAAA,IAChE,UAAU;AAAA,IACV,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,yBAAyB,qBAAqB;AAAA,IAC9D,UAAU;AAAA,IACV,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EAEDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,yBAAyB,eAAe;AAAA,IACxD,UAAU;AAAA,IACV,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EAEDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,yBAAyB,qBAAqB;AAAA,IAC9D,UAAU;AAAA,IACV,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EAEDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,yBAAyB,WAAW;AAAA,IACpD,UAAU;AAAA,IACV,MAAMA,IAAE,OAAO;AAAA,IACf,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,yBAAyB,sBAAsB;AAAA,IAC/D,UAAU;AAAA,IACV,iBAAiBA,IAAE,OAAO,EAAE,MAAMA,IAAE,OAAO,GAAG,UAAUA,IAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAAA,IAC/E,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EAEDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,8CAA2C;AAAA,IAC3D,UAAU;AAAA,IACV,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,kDAA6C;AAAA,IAC7D,UAAU;AAAA,IACV,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,0CAAyC;AAAA,IACzD,UAAU;AAAA,IACV,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AACF,CAAC;AAQM,IAAK,6BAAL,kBAAKG,gCAAL;AACN,EAAAA,4BAAA,eAAY;AACZ,EAAAA,4BAAA,cAAW;AACX,EAAAA,4BAAA,gBAAa;AAHF,SAAAA;AAAA,GAAA;AAML,IAAM,+BAA+BH,IAAE,mBAAmB,QAAQ;AAAA,EACxEA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,4BAAoC;AAAA,IACpD,YAAYA,IAAE,OAAO;AAAA,IACrB,SAASA,IAAE,OAAO;AAAA,MACjB,MAAMA,IAAE,OAAO;AAAA,MACf,QAAQA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,MACrC,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,MAC1B,iBAAiBA,IAAE,OAAO,EAAE,SAAS;AAAA,IACtC,CAAC;AAAA,IACD,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,0BAAmC;AAAA,IACnD,YAAYA,IAAE,OAAO;AAAA,IACrB,SAASA,IAAE,OAAO,EAAE,QAAQA,IAAE,OAAO,EAAE,CAAC;AAAA,IACxC,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,8BAAqC;AAAA,IACrD,YAAYA,IAAE,OAAO;AAAA,IACrB,SAASA,IAAE,OAAO,EAAE,QAAQA,IAAE,OAAO,EAAE,CAAC;AAAA,IACxC,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AACF,CAAC;AAQM,IAAK,uBAAL,CAAKI,yBAAL;AACN,EAAAA,0CAAA;AACA,EAAAA,0CAAA;AACA,EAAAA,0CAAA;AAHW,SAAAA;AAAA,GAAA;AAML,IAAM,wBAAwBJ,IAAE,mBAAmB,QAAQ;AAAA,EACjEA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,oBAAoB,OAAO;AAAA,IAC3C,QAAQA,IAAE,OAAO;AAAA,IACjB,QAAQA,IAAE,OAAO;AAAA,IACjB,SAAS;AAAA,EACV,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,oBAAoB,gBAAgB;AAAA,IACpD,QAAQA,IAAE,OAAO;AAAA,IACjB,MAAMA,IAAE,OAAO;AAAA,EAChB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,oBAAoB,eAAe;AAAA,IACnD,QAAQA,IAAE,OAAO;AAAA,EAClB,CAAC;AACF,CAAC;AAQM,IAAK,wBAAL,kBAAKK,2BAAL;AACN,EAAAA,uBAAA,aAAU;AACV,EAAAA,uBAAA,gBAAa;AACb,EAAAA,uBAAA,aAAU;AAHC,SAAAA;AAAA,GAAA;AAML,IAAM,0BAA0BL,IAAE,mBAAmB,QAAQ;AAAA,EACnEA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,uBAA6B;AAAA,IAC7C,QAAQA,IAAE,OAAO;AAAA,IACjB,SAASA,IAAE,OAAO;AAAA,MACjB,MAAMA,IAAE,OAAO;AAAA,MACf,QAAQA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,MACrC,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,MAC1B,iBAAiBA,IAAE,OAAO,EAAE,SAAS;AAAA,IACtC,CAAC;AAAA,IACD,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,8BAAgC;AAAA,IAChD,QAAQA,IAAE,OAAO;AAAA,IACjB,SAASA,IAAE,OAAO;AAAA,MACjB,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,MAC1B,QAAQA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,IACtC,CAAC;AAAA,IACD,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,wBAA6B;AAAA,IAC7C,QAAQA,IAAE,OAAO;AAAA,IACjB,SAASA,IAAE,OAAO;AAAA,MACjB,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,MAC1B,QAAQA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,IACtC,CAAC;AAAA,IACD,WAAWA,IAAE,OAAO;AAAA,EACrB,CAAC;AACF,CAAC;AAQM,IAAK,wBAAL,kBAAKM,2BAAL;AACN,EAAAA,uBAAA,eAAY;AAEZ,EAAAA,uBAAA,cAAW;AACX,EAAAA,uBAAA,gBAAa;AAEb,EAAAA,uBAAA,eAAY;AAEZ,EAAAA,uBAAA,WAAQ;AACR,EAAAA,uBAAA,mBAAgB;AAEhB,EAAAA,uBAAA,aAAU;AACV,EAAAA,uBAAA,qBAAkB;AAZP,SAAAA;AAAA,GAAA;AAmBL,IAAK,mBAAL,kBAAKC,sBAAL;AACN,EAAAA,kBAAA,UAAO;AACP,EAAAA,kBAAA,WAAQ;AAER,EAAAA,kBAAA,WAAQ;AACR,EAAAA,kBAAA,mBAAgB;AAEhB,EAAAA,kBAAA,aAAU;AACV,EAAAA,kBAAA,qBAAkB;AARP,SAAAA;AAAA,GAAA;AAgCL,IAAM,mBAAmBP,IAAE,OAAO;AAAA,EACxC,SAASA,IAAE,QAAQ;AAAA,EACnB,MAAMA,IAAE,OAAO;AAAA,IACd,OAAOA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA;AAAA,IACzB,OAAOA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA;AAAA,IACzB,QAAQA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA;AAAA,IAC1B,OAAOA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA;AAAA,IACzB,QAAQA,IAAE,OAAO;AAAA,MAChB,OAAOA,IAAE,OAAO;AAAA,MAChB,QAAQA,IAAE,OAAO;AAAA,MACjB,MAAMA,IAAE,OAAO;AAAA;AAAA,IAChB,CAAC;AAAA,EACF,CAAC;AAAA,EACD,QAAQA,IAAE,OAAO;AAAA;AAClB,CAAC;;;AiDtvBM,IAAM,4BAA4B;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AACD;AAUO,SAAS,yBAAyB,OAAiD;AACzF,SAAO,OAAO,UAAU,YAAa,0BAAgD,SAAS,KAAK;AACpG;;;ACxBO,IAAM,sBAAsB;AAU5B,IAAM,wBAAwB;AAAA,EACpC,SAAS;AACV;;;ACrBA,SAAS,KAAAQ,WAAS;AA2BX,IAAM,uBAAuBA,IAAE,OAAO;AAAA,EAC5C,QAAQA,IAAE,OAAO;AAAA,EACjB,MAAMA,IAAE,OAAO,EAAE,SAAS;AAC3B,CAAC;AAKM,IAAM,qBAAqBA,IAAE,OAAO;AAAA,EAC1C,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,SAASA,IAAE,MAAM,oBAAoB,EAAE,SAAS;AACjD,CAAC;;;ACtBM,IAAM,0BAAkD;AAAA;AAAA,EAE9D,EAAE,OAAO,iCAAiC,OAAO,0BAA0B,UAAU,aAAa;AAAA,EAClG,EAAE,OAAO,qCAAqC,OAAO,8BAA8B,UAAU,aAAa;AAAA,EAC1G,EAAE,OAAO,sBAAsB,OAAO,eAAe,UAAU,aAAa;AAAA,EAC5E,EAAE,OAAO,2BAA2B,OAAO,oBAAoB,UAAU,aAAa;AAAA,EACtF,EAAE,OAAO,iCAAiC,OAAO,iCAAiC,UAAU,aAAa;AAAA,EACzG,EAAE,OAAO,gCAAgC,OAAO,gCAAgC,UAAU,aAAa;AAAA;AAAA,EAEvG,EAAE,OAAO,iCAAiC,OAAO,0BAA0B,UAAU,MAAM;AAAA,EAC3F,EAAE,OAAO,6BAA6B,OAAO,sBAAsB,UAAU,MAAM;AAAA,EACnF;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,WAAW;AAAA,EACZ;AACD;AAKO,IAAM,6BAA6B,wBAAwB,IAAI,CAAC,MAAM,EAAE,KAAK;AAa7E,SAAS,2BACf,kBACA,kBAC0B;AAC1B,SAAO,qBAAqB,SAAY,mBAAmB,mBAAmB,eAAe;AAC9F;;;ACxDA,SAAS,KAAAC,WAAS;AASX,IAAK,iBAAL,kBAAKC,oBAAL;AACN,EAAAA,gBAAA,aAAU;AACV,EAAAA,gBAAA,gBAAa;AACb,EAAAA,gBAAA,SAAM;AACN,EAAAA,gBAAA,iBAAc;AACd,EAAAA,gBAAA,eAAY;AALD,SAAAA;AAAA,GAAA;AAYL,IAAK,YAAL,kBAAKC,eAAL;AACN,EAAAA,WAAA,YAAS;AACT,EAAAA,WAAA,YAAS;AAFE,SAAAA;AAAA,GAAA;AASL,IAAM,YAAYC,IAAE,OAAO;AAAA,EACjC,UAAUA,IAAE,OAAO;AAAA,EACnB,KAAKA,IAAE,OAAO;AAAA,EACd,MAAMA,IAAE,OAAO;AAChB,CAAC;AAQM,IAAK,kBAAL,kBAAKC,qBAAL;AACN,EAAAA,iBAAA,kBAAe;AACf,EAAAA,iBAAA,gBAAa;AACb,EAAAA,iBAAA,eAAY;AACZ,EAAAA,iBAAA,gBAAa;AACb,EAAAA,iBAAA,iBAAc;AALH,SAAAA;AAAA,GAAA;AAYL,IAAM,oBAAoBD,IAAE,mBAAmB,eAAe;AAAA,EACpEA,IAAE,OAAO;AAAA,IACR,aAAaA,IAAE,QAAQ,iCAA4B;AAAA,IACnD,MAAMA,IAAE,OAAO;AAAA,MACd,eAAe;AAAA,MACf,MAAMA,IAAE,OAAO;AAAA,MACf,QAAQA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,MACrC,QAAQA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAC9B,CAAC;AAAA,EACF,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,aAAaA,IAAE,QAAQ,6BAA0B;AAAA,IACjD,MAAMA,IAAE,OAAO;AAAA,EAChB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,aAAaA,IAAE,QAAQ,2BAAyB;AAAA,IAChD,MAAMA,IAAE,OAAO;AAAA,EAChB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,aAAaA,IAAE,QAAQ,6BAA0B;AAAA,IACjD,MAAMA,IAAE,OAAO;AAAA,EAChB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,aAAaA,IAAE,QAAQ,+BAA2B;AAAA,IAClD,MAAMA,IAAE,OAAO;AAAA,MACd,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,MAC1B,QAAQA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,IACtC,CAAC;AAAA,EACF,CAAC;AACF,CAAC;AAQM,IAAM,mBAAmBA,IAAE,mBAAmB,QAAQ;AAAA,EAC5DA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,eAAkB;AAAA,IAClC,QAAQA,IAAE,QAAQ,qBAAgB;AAAA,IAClC,MAAM;AAAA,EACP,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,+BAA0B;AAAA,IAC1C,QAAQA,IAAE,QAAQ,qBAAgB;AAAA,IAClC,UAAUA,IAAE,OAAO;AAAA,IACnB,MAAM;AAAA,EACP,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,MAAMA,IAAE,QAAQ,2BAAwB;AAAA,IACxC,QAAQA,IAAE,QAAQ,qBAAgB;AAAA,IAClC,eAAeA,IAAE,OAAO,EAAE,SAAS;AAAA,IACnC,MAAM;AAAA,EACP,CAAC;AACF,CAAC;;;AC7GD,SAAS,KAAAE,WAAS;AAgBX,IAAM,2BAA2BA,IAAE,mBAAmB,UAAU;AAAA,EACtEA,IAAE,OAAO;AAAA,IACR,aAAaA,IAAE,OAAO;AAAA,IACtB,QAAQA,IAAE,QAAQ,SAAS;AAAA,IAC3B,YAAYA,IAAE,OAAO;AAAA,IACrB,UAAUA,IAAE,OAAO;AAAA,EACpB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,aAAaA,IAAE,OAAO;AAAA,IACtB,QAAQA,IAAE,QAAQ,QAAQ;AAAA,IAC1B,UAAUA,IAAE,OAAO;AAAA,EACpB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,aAAaA,IAAE,OAAO;AAAA,IACtB,QAAQA,IAAE,QAAQ,WAAW;AAAA,IAC7B,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,aAAaA,IAAE,OAAO;AAAA,IACtB,QAAQA,IAAE,QAAQ,OAAO;AAAA,IACzB,OAAOA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,CAAC;AACF,CAAC;;;AC3BM,SAAS,wBAAwB,SAA0B;AACjE,SAAO,QAAQ,SAAS,kBAAkB,KAAK,QAAQ,SAAS,gBAAgB;AACjF;;;ACbA,SAAS,KAAAC,WAAS;AAKX,IAAM,mBAAmBA,IAAE,KAAK,CAAC,WAAW,eAAe,WAAW,CAAU;AAOhF,IAAM,iBAAiBA,IAAE,OAAO;AAAA,EACtC,IAAIA,IAAE,OAAO;AAAA,EACb,SAASA,IAAE,OAAO;AAAA,EAClB,QAAQ;AACT,CAAC;;;AChBD,SAAS,KAAAC,WAAS;AAMX,IAAM,+BAA+BA,IAAE,mBAAmB,UAAU;AAAA,EAC1EA,IAAE,OAAO;AAAA,IACR,aAAaA,IAAE,OAAO;AAAA,IACtB,QAAQA,IAAE,QAAQ,SAAS;AAAA,IAC3B,KAAKA,IAAE,OAAO,EAAE,SAAS;AAAA,IACzB,SAASA,IAAE,OAAO;AAAA,EACnB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,aAAaA,IAAE,OAAO;AAAA,IACtB,QAAQA,IAAE,QAAQ,QAAQ;AAAA,IAC1B,QAAQA,IAAE,OAAO;AAAA,EAClB,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,aAAaA,IAAE,OAAO;AAAA,IACtB,QAAQA,IAAE,QAAQ,QAAQ;AAAA,IAC1B,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,aAAaA,IAAE,OAAO;AAAA,IACtB,QAAQA,IAAE,QAAQ,UAAU;AAAA,EAC7B,CAAC;AAAA,EACDA,IAAE,OAAO;AAAA,IACR,aAAaA,IAAE,OAAO;AAAA,IACtB,QAAQA,IAAE,QAAQ,SAAS;AAAA,EAC5B,CAAC;AACF,CAAC;","names":["z","z","z","RooCodeEventName","z","z","TaskStatus","z","z","z","z","z","z","z","z","z","z","TelemetryEventName","z","z","z","z","z","z","ConnectionState","ExtensionBridgeEventName","ExtensionBridgeCommandName","TaskBridgeEventName","TaskBridgeCommandName","ExtensionSocketEvents","TaskSocketEvents","z","z","IpcMessageType","IpcOrigin","z","TaskCommandName","z","z","z"]}
|
|
1
|
+
{"version":3,"sources":["../../src/cloud.ts","../../src/events.ts","../../src/message.ts","../../src/tool.ts","../../src/task.ts","../../src/global-settings.ts","../../src/provider-settings.ts","../../src/model.ts","../../src/codebase-index.ts","../../src/providers/anthropic.ts","../../src/providers/baseten.ts","../../src/providers/bedrock.ts","../../src/providers/cerebras.ts","../../src/providers/chutes.ts","../../src/providers/claude-code.ts","../../src/providers/deepseek.ts","../../src/providers/doubao.ts","../../src/providers/featherless.ts","../../src/providers/fireworks.ts","../../src/providers/gemini.ts","../../src/providers/groq.ts","../../src/providers/huggingface.ts","../../src/providers/io-intelligence.ts","../../src/providers/lite-llm.ts","../../src/providers/lm-studio.ts","../../src/providers/mistral.ts","../../src/providers/moonshot.ts","../../src/providers/ollama.ts","../../src/providers/openai.ts","../../src/providers/openrouter.ts","../../src/providers/qwen-code.ts","../../src/providers/requesty.ts","../../src/providers/roo.ts","../../src/providers/sambanova.ts","../../src/providers/unbound.ts","../../src/providers/vertex.ts","../../src/providers/vscode-llm.ts","../../src/providers/xai.ts","../../src/providers/vercel-ai-gateway.ts","../../src/providers/zai.ts","../../src/providers/deepinfra.ts","../../src/providers/minimax.ts","../../src/providers/index.ts","../../src/history.ts","../../src/experiment.ts","../../src/telemetry.ts","../../src/mode.ts","../../src/vscode.ts","../../src/marketplace.ts","../../src/context-management.ts","../../src/cookie-consent.ts","../../src/followup.ts","../../src/image-generation.ts","../../src/ipc.ts","../../src/mcp.ts","../../src/single-file-read-models.ts","../../src/todo.ts","../../src/terminal.ts"],"sourcesContent":["import EventEmitter from \"events\"\n\nimport { z } from \"zod\"\n\nimport { RooCodeEventName } from \"./events.js\"\nimport { TaskStatus, taskMetadataSchema } from \"./task.js\"\nimport { globalSettingsSchema } from \"./global-settings.js\"\nimport { providerSettingsWithIdSchema } from \"./provider-settings.js\"\nimport { mcpMarketplaceItemSchema } from \"./marketplace.js\"\nimport { clineMessageSchema, queuedMessageSchema, tokenUsageSchema } from \"./message.js\"\nimport { staticAppPropertiesSchema, gitPropertiesSchema } from \"./telemetry.js\"\n\n/**\n * JWTPayload\n */\n\nexport interface JWTPayload {\n\tiss?: string // Issuer (should be 'rcc')\n\tsub?: string // Subject - CloudJob ID for job tokens (t:'cj'), User ID for auth tokens (t:'auth')\n\texp?: number // Expiration time\n\tiat?: number // Issued at time\n\tnbf?: number // Not before time\n\tv?: number // Version (should be 1)\n\tr?: {\n\t\tu?: string // User ID (always present in valid tokens)\n\t\to?: string // Organization ID (optional - undefined when orgId is null)\n\t\tt?: string // Token type: 'cj' for job tokens, 'auth' for auth tokens\n\t}\n}\n\n/**\n * CloudUserInfo\n */\n\nexport interface CloudUserInfo {\n\tid?: string\n\tname?: string\n\temail?: string\n\tpicture?: string\n\torganizationId?: string\n\torganizationName?: string\n\torganizationRole?: string\n\torganizationImageUrl?: string\n\textensionBridgeEnabled?: boolean\n}\n\n/**\n * CloudOrganization\n */\n\nexport interface CloudOrganization {\n\tid: string\n\tname: string\n\tslug?: string\n\timage_url?: string\n\thas_image?: boolean\n\tcreated_at?: number\n\tupdated_at?: number\n}\n\n/**\n * CloudOrganizationMembership\n */\n\nexport interface CloudOrganizationMembership {\n\tid: string\n\torganization: CloudOrganization\n\trole: string\n\tpermissions?: string[]\n\tcreated_at?: number\n\tupdated_at?: number\n}\n\n/**\n * OrganizationAllowList\n */\n\nexport const organizationAllowListSchema = z.object({\n\tallowAll: z.boolean(),\n\tproviders: z.record(\n\t\tz.object({\n\t\t\tallowAll: z.boolean(),\n\t\t\tmodels: z.array(z.string()).optional(),\n\t\t}),\n\t),\n})\n\nexport type OrganizationAllowList = z.infer<typeof organizationAllowListSchema>\n\n/**\n * OrganizationDefaultSettings\n */\n\nexport const organizationDefaultSettingsSchema = globalSettingsSchema\n\t.pick({\n\t\tenableCheckpoints: true,\n\t\tfuzzyMatchThreshold: true,\n\t\tmaxOpenTabsContext: true,\n\t\tmaxReadFileLine: true,\n\t\tmaxWorkspaceFiles: true,\n\t\tshowRooIgnoredFiles: true,\n\t\tterminalCommandDelay: true,\n\t\tterminalCompressProgressBar: true,\n\t\tterminalOutputLineLimit: true,\n\t\tterminalShellIntegrationDisabled: true,\n\t\tterminalShellIntegrationTimeout: true,\n\t\tterminalZshClearEolMark: true,\n\t})\n\t// Add stronger validations for some fields.\n\t.merge(\n\t\tz.object({\n\t\t\tmaxOpenTabsContext: z.number().int().nonnegative().optional(),\n\t\t\tmaxReadFileLine: z.number().int().gte(-1).optional(),\n\t\t\tmaxWorkspaceFiles: z.number().int().nonnegative().optional(),\n\t\t\tterminalCommandDelay: z.number().int().nonnegative().optional(),\n\t\t\tterminalOutputLineLimit: z.number().int().nonnegative().optional(),\n\t\t\tterminalShellIntegrationTimeout: z.number().int().nonnegative().optional(),\n\t\t}),\n\t)\n\nexport type OrganizationDefaultSettings = z.infer<typeof organizationDefaultSettingsSchema>\n\n/**\n * WorkspaceTaskVisibility\n */\n\nconst workspaceTaskVisibilitySchema = z.enum([\"all\", \"list-only\", \"full-lockdown\"])\n\nexport type WorkspaceTaskVisibility = z.infer<typeof workspaceTaskVisibilitySchema>\n\n/**\n * OrganizationCloudSettings\n */\n\nexport const organizationCloudSettingsSchema = z.object({\n\trecordTaskMessages: z.boolean().optional(),\n\tenableTaskSharing: z.boolean().optional(),\n\tallowPublicTaskSharing: z.boolean().optional(),\n\ttaskShareExpirationDays: z.number().int().positive().optional(),\n\tallowMembersViewAllTasks: z.boolean().optional(),\n\tworkspaceTaskVisibility: workspaceTaskVisibilitySchema.optional(),\n})\n\nexport type OrganizationCloudSettings = z.infer<typeof organizationCloudSettingsSchema>\n\n/**\n * OrganizationFeatures\n */\n\nexport const organizationFeaturesSchema = z.object({\n\troomoteControlEnabled: z.boolean().optional(),\n})\n\nexport type OrganizationFeatures = z.infer<typeof organizationFeaturesSchema>\n\n/**\n * OrganizationSettings\n */\n\nexport const organizationSettingsSchema = z.object({\n\tversion: z.number(),\n\tcloudSettings: organizationCloudSettingsSchema.optional(),\n\tdefaultSettings: organizationDefaultSettingsSchema,\n\tallowList: organizationAllowListSchema,\n\tfeatures: organizationFeaturesSchema.optional(),\n\thiddenMcps: z.array(z.string()).optional(),\n\thideMarketplaceMcps: z.boolean().optional(),\n\tmcps: z.array(mcpMarketplaceItemSchema).optional(),\n\tproviderProfiles: z.record(z.string(), providerSettingsWithIdSchema).optional(),\n})\n\nexport type OrganizationSettings = z.infer<typeof organizationSettingsSchema>\n\n/**\n * User Settings Schemas\n */\n\nexport const userFeaturesSchema = z.object({\n\troomoteControlEnabled: z.boolean().optional(),\n})\n\nexport type UserFeatures = z.infer<typeof userFeaturesSchema>\n\nexport const userSettingsConfigSchema = z.object({\n\textensionBridgeEnabled: z.boolean().optional(),\n\ttaskSyncEnabled: z.boolean().optional(),\n})\n\nexport type UserSettingsConfig = z.infer<typeof userSettingsConfigSchema>\n\nexport const userSettingsDataSchema = z.object({\n\tfeatures: userFeaturesSchema,\n\tsettings: userSettingsConfigSchema,\n\tversion: z.number(),\n})\n\nexport type UserSettingsData = z.infer<typeof userSettingsDataSchema>\n\n/**\n * Constants\n */\n\nexport const ORGANIZATION_ALLOW_ALL: OrganizationAllowList = {\n\tallowAll: true,\n\tproviders: {},\n} as const\n\nexport const ORGANIZATION_DEFAULT: OrganizationSettings = {\n\tversion: 0,\n\tcloudSettings: {\n\t\trecordTaskMessages: true,\n\t\tenableTaskSharing: true,\n\t\tallowPublicTaskSharing: true,\n\t\ttaskShareExpirationDays: 30,\n\t\tallowMembersViewAllTasks: true,\n\t},\n\tdefaultSettings: {},\n\tallowList: ORGANIZATION_ALLOW_ALL,\n} as const\n\n/**\n * ShareVisibility\n */\n\nexport type ShareVisibility = \"organization\" | \"public\"\n\n/**\n * ShareResponse\n */\n\nexport const shareResponseSchema = z.object({\n\tsuccess: z.boolean(),\n\tshareUrl: z.string().optional(),\n\terror: z.string().optional(),\n\tisNewShare: z.boolean().optional(),\n\tmanageUrl: z.string().optional(),\n})\n\nexport type ShareResponse = z.infer<typeof shareResponseSchema>\n\n/**\n * AuthService\n */\n\nexport type AuthState = \"initializing\" | \"logged-out\" | \"active-session\" | \"attempting-session\" | \"inactive-session\"\n\nexport interface AuthService extends EventEmitter<AuthServiceEvents> {\n\t// Lifecycle\n\tinitialize(): Promise<void>\n\tbroadcast(): void\n\n\t// Authentication methods\n\tlogin(landingPageSlug?: string, useProviderSignup?: boolean): Promise<void>\n\tlogout(): Promise<void>\n\thandleCallback(\n\t\tcode: string | null,\n\t\tstate: string | null,\n\t\torganizationId?: string | null,\n\t\tproviderModel?: string | null,\n\t): Promise<void>\n\tswitchOrganization(organizationId: string | null): Promise<void>\n\n\t// State methods\n\tgetState(): AuthState\n\tisAuthenticated(): boolean\n\thasActiveSession(): boolean\n\thasOrIsAcquiringActiveSession(): boolean\n\n\t// Token and user info\n\tgetSessionToken(): string | undefined\n\tgetUserInfo(): CloudUserInfo | null\n\tgetStoredOrganizationId(): string | null\n\n\t// Organization management\n\tgetOrganizationMemberships(): Promise<CloudOrganizationMembership[]>\n}\n\n/**\n * AuthServiceEvents\n */\n\nexport interface AuthServiceEvents {\n\t\"auth-state-changed\": [\n\t\tdata: {\n\t\t\tstate: AuthState\n\t\t\tpreviousState: AuthState\n\t\t},\n\t]\n\t\"user-info\": [data: { userInfo: CloudUserInfo }]\n}\n\n/**\n * SettingsService\n */\n\n/**\n * Interface for settings services that provide organization settings\n */\nexport interface SettingsService {\n\t/**\n\t * Get the organization allow list\n\t * @returns The organization allow list or default if none available\n\t */\n\tgetAllowList(): OrganizationAllowList\n\n\t/**\n\t * Get the current organization settings\n\t * @returns The organization settings or undefined if none available\n\t */\n\tgetSettings(): OrganizationSettings | undefined\n\n\t/**\n\t * Get the current user settings\n\t * @returns The user settings data or undefined if none available\n\t */\n\tgetUserSettings(): UserSettingsData | undefined\n\n\t/**\n\t * Get the current user features\n\t * @returns The user features or empty object if none available\n\t */\n\tgetUserFeatures(): UserFeatures\n\n\t/**\n\t * Get the current user settings configuration\n\t * @returns The user settings configuration or empty object if none available\n\t */\n\tgetUserSettingsConfig(): UserSettingsConfig\n\n\t/**\n\t * Update user settings with partial configuration\n\t * @param settings Partial user settings configuration to update\n\t * @returns Promise that resolves to true if successful, false otherwise\n\t */\n\tupdateUserSettings(settings: Partial<UserSettingsConfig>): Promise<boolean>\n\n\t/**\n\t * Determines if task sync/recording is enabled based on organization and user settings\n\t * Organization settings take precedence over user settings.\n\t * User settings default to true if unspecified.\n\t * @returns true if task sync is enabled, false otherwise\n\t */\n\tisTaskSyncEnabled(): boolean\n\n\t/**\n\t * Dispose of the settings service and clean up resources\n\t */\n\tdispose(): void\n}\n\n/**\n * SettingsServiceEvents\n */\n\nexport interface SettingsServiceEvents {\n\t\"settings-updated\": [data: Record<string, never>]\n}\n\n/**\n * CloudServiceEvents\n */\n\nexport type CloudServiceEvents = AuthServiceEvents & SettingsServiceEvents\n\n/**\n * ConnectionState\n */\n\nexport enum ConnectionState {\n\tDISCONNECTED = \"disconnected\",\n\tCONNECTING = \"connecting\",\n\tCONNECTED = \"connected\",\n\tRETRYING = \"retrying\",\n\tFAILED = \"failed\",\n}\n\n/**\n * RetryConfig\n */\n\nexport interface RetryConfig {\n\tmaxInitialAttempts: number\n\tinitialDelay: number\n\tmaxDelay: number\n\tbackoffMultiplier: number\n}\n\n/**\n * Constants\n */\n\nexport const HEARTBEAT_INTERVAL_MS = 20_000\nexport const INSTANCE_TTL_SECONDS = 60\n\n/**\n * ExtensionTask\n */\n\nconst extensionTaskSchema = z.object({\n\ttaskId: z.string(),\n\ttaskStatus: z.nativeEnum(TaskStatus),\n\ttaskAsk: clineMessageSchema.optional(),\n\tqueuedMessages: z.array(queuedMessageSchema).optional(),\n\tparentTaskId: z.string().optional(),\n\tchildTaskId: z.string().optional(),\n\ttokenUsage: tokenUsageSchema.optional(),\n\t...taskMetadataSchema.shape,\n})\n\nexport type ExtensionTask = z.infer<typeof extensionTaskSchema>\n\n/**\n * ExtensionInstance\n */\n\nexport const extensionInstanceSchema = z.object({\n\tinstanceId: z.string(),\n\tuserId: z.string(),\n\tworkspacePath: z.string(),\n\tappProperties: staticAppPropertiesSchema,\n\tgitProperties: gitPropertiesSchema.optional(),\n\tlastHeartbeat: z.coerce.number(),\n\ttask: extensionTaskSchema,\n\ttaskAsk: clineMessageSchema.optional(),\n\ttaskHistory: z.array(z.string()),\n\tmode: z.string().optional(),\n\tmodes: z.array(z.object({ slug: z.string(), name: z.string() })).optional(),\n\tproviderProfile: z.string().optional(),\n\tproviderProfiles: z.array(z.object({ name: z.string(), provider: z.string().optional() })).optional(),\n\tisCloudAgent: z.boolean().optional(),\n})\n\nexport type ExtensionInstance = z.infer<typeof extensionInstanceSchema>\n\n/**\n * ExtensionBridgeEvent\n */\n\nexport enum ExtensionBridgeEventName {\n\tTaskCreated = RooCodeEventName.TaskCreated,\n\tTaskStarted = RooCodeEventName.TaskStarted,\n\tTaskCompleted = RooCodeEventName.TaskCompleted,\n\tTaskAborted = RooCodeEventName.TaskAborted,\n\tTaskFocused = RooCodeEventName.TaskFocused,\n\tTaskUnfocused = RooCodeEventName.TaskUnfocused,\n\tTaskActive = RooCodeEventName.TaskActive,\n\tTaskInteractive = RooCodeEventName.TaskInteractive,\n\tTaskResumable = RooCodeEventName.TaskResumable,\n\tTaskIdle = RooCodeEventName.TaskIdle,\n\n\tTaskPaused = RooCodeEventName.TaskPaused,\n\tTaskUnpaused = RooCodeEventName.TaskUnpaused,\n\tTaskSpawned = RooCodeEventName.TaskSpawned,\n\tTaskDelegated = RooCodeEventName.TaskDelegated,\n\tTaskDelegationCompleted = RooCodeEventName.TaskDelegationCompleted,\n\tTaskDelegationResumed = RooCodeEventName.TaskDelegationResumed,\n\n\tTaskUserMessage = RooCodeEventName.TaskUserMessage,\n\n\tTaskTokenUsageUpdated = RooCodeEventName.TaskTokenUsageUpdated,\n\n\tModeChanged = RooCodeEventName.ModeChanged,\n\tProviderProfileChanged = RooCodeEventName.ProviderProfileChanged,\n\n\tInstanceRegistered = \"instance_registered\",\n\tInstanceUnregistered = \"instance_unregistered\",\n\tHeartbeatUpdated = \"heartbeat_updated\",\n}\n\nexport const extensionBridgeEventSchema = z.discriminatedUnion(\"type\", [\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskCreated),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskStarted),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskCompleted),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskAborted),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskFocused),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskUnfocused),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskActive),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskInteractive),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskResumable),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskIdle),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskPaused),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskUnpaused),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskSpawned),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskDelegated),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskDelegationCompleted),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskDelegationResumed),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskUserMessage),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.TaskTokenUsageUpdated),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.ModeChanged),\n\t\tinstance: extensionInstanceSchema,\n\t\tmode: z.string(),\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.ProviderProfileChanged),\n\t\tinstance: extensionInstanceSchema,\n\t\tproviderProfile: z.object({ name: z.string(), provider: z.string().optional() }),\n\t\ttimestamp: z.number(),\n\t}),\n\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.InstanceRegistered),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.InstanceUnregistered),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeEventName.HeartbeatUpdated),\n\t\tinstance: extensionInstanceSchema,\n\t\ttimestamp: z.number(),\n\t}),\n])\n\nexport type ExtensionBridgeEvent = z.infer<typeof extensionBridgeEventSchema>\n\n/**\n * ExtensionBridgeCommand\n */\n\nexport enum ExtensionBridgeCommandName {\n\tStartTask = \"start_task\",\n\tStopTask = \"stop_task\",\n\tResumeTask = \"resume_task\",\n}\n\nexport const extensionBridgeCommandSchema = z.discriminatedUnion(\"type\", [\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeCommandName.StartTask),\n\t\tinstanceId: z.string(),\n\t\tpayload: z.object({\n\t\t\ttext: z.string(),\n\t\t\timages: z.array(z.string()).optional(),\n\t\t\tmode: z.string().optional(),\n\t\t\tproviderProfile: z.string().optional(),\n\t\t}),\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeCommandName.StopTask),\n\t\tinstanceId: z.string(),\n\t\tpayload: z.object({ taskId: z.string() }),\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(ExtensionBridgeCommandName.ResumeTask),\n\t\tinstanceId: z.string(),\n\t\tpayload: z.object({ taskId: z.string() }),\n\t\ttimestamp: z.number(),\n\t}),\n])\n\nexport type ExtensionBridgeCommand = z.infer<typeof extensionBridgeCommandSchema>\n\n/**\n * TaskBridgeEvent\n */\n\nexport enum TaskBridgeEventName {\n\tMessage = RooCodeEventName.Message,\n\tTaskModeSwitched = RooCodeEventName.TaskModeSwitched,\n\tTaskInteractive = RooCodeEventName.TaskInteractive,\n}\n\nexport const taskBridgeEventSchema = z.discriminatedUnion(\"type\", [\n\tz.object({\n\t\ttype: z.literal(TaskBridgeEventName.Message),\n\t\ttaskId: z.string(),\n\t\taction: z.string(),\n\t\tmessage: clineMessageSchema,\n\t}),\n\tz.object({\n\t\ttype: z.literal(TaskBridgeEventName.TaskModeSwitched),\n\t\ttaskId: z.string(),\n\t\tmode: z.string(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(TaskBridgeEventName.TaskInteractive),\n\t\ttaskId: z.string(),\n\t}),\n])\n\nexport type TaskBridgeEvent = z.infer<typeof taskBridgeEventSchema>\n\n/**\n * TaskBridgeCommand\n */\n\nexport enum TaskBridgeCommandName {\n\tMessage = \"message\",\n\tApproveAsk = \"approve_ask\",\n\tDenyAsk = \"deny_ask\",\n}\n\nexport const taskBridgeCommandSchema = z.discriminatedUnion(\"type\", [\n\tz.object({\n\t\ttype: z.literal(TaskBridgeCommandName.Message),\n\t\ttaskId: z.string(),\n\t\tpayload: z.object({\n\t\t\ttext: z.string(),\n\t\t\timages: z.array(z.string()).optional(),\n\t\t\tmode: z.string().optional(),\n\t\t\tproviderProfile: z.string().optional(),\n\t\t}),\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(TaskBridgeCommandName.ApproveAsk),\n\t\ttaskId: z.string(),\n\t\tpayload: z.object({\n\t\t\ttext: z.string().optional(),\n\t\t\timages: z.array(z.string()).optional(),\n\t\t}),\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal(TaskBridgeCommandName.DenyAsk),\n\t\ttaskId: z.string(),\n\t\tpayload: z.object({\n\t\t\ttext: z.string().optional(),\n\t\t\timages: z.array(z.string()).optional(),\n\t\t}),\n\t\ttimestamp: z.number(),\n\t}),\n])\n\nexport type TaskBridgeCommand = z.infer<typeof taskBridgeCommandSchema>\n\n/**\n * ExtensionSocketEvents\n */\n\nexport enum ExtensionSocketEvents {\n\tCONNECTED = \"extension:connected\",\n\n\tREGISTER = \"extension:register\",\n\tUNREGISTER = \"extension:unregister\",\n\n\tHEARTBEAT = \"extension:heartbeat\",\n\n\tEVENT = \"extension:event\", // event from extension instance\n\tRELAYED_EVENT = \"extension:relayed_event\", // relay from server\n\n\tCOMMAND = \"extension:command\", // command from user\n\tRELAYED_COMMAND = \"extension:relayed_command\", // relay from server\n}\n\n/**\n * TaskSocketEvents\n */\n\nexport enum TaskSocketEvents {\n\tJOIN = \"task:join\",\n\tLEAVE = \"task:leave\",\n\n\tEVENT = \"task:event\", // event from extension task\n\tRELAYED_EVENT = \"task:relayed_event\", // relay from server\n\n\tCOMMAND = \"task:command\", // command from user\n\tRELAYED_COMMAND = \"task:relayed_command\", // relay from server\n}\n\n/**\n * `emit()` Response Types\n */\n\nexport type JoinResponse = {\n\tsuccess: boolean\n\terror?: string\n\ttaskId?: string\n\ttimestamp?: string\n}\n\nexport type LeaveResponse = {\n\tsuccess: boolean\n\ttaskId?: string\n\ttimestamp?: string\n}\n\n/**\n * UsageStats\n */\n\nexport const usageStatsSchema = z.object({\n\tsuccess: z.boolean(),\n\tdata: z.object({\n\t\tdates: z.array(z.string()), // Array of date strings\n\t\ttasks: z.array(z.number()), // Array of task counts\n\t\ttokens: z.array(z.number()), // Array of token counts\n\t\tcosts: z.array(z.number()), // Array of costs in USD\n\t\ttotals: z.object({\n\t\t\ttasks: z.number(),\n\t\t\ttokens: z.number(),\n\t\t\tcost: z.number(), // Total cost in USD\n\t\t}),\n\t}),\n\tperiod: z.number(), // Period in days (e.g., 30)\n})\n\nexport type UsageStats = z.infer<typeof usageStatsSchema>\n","import { z } from \"zod\"\n\nimport { clineMessageSchema, tokenUsageSchema } from \"./message.js\"\nimport { toolNamesSchema, toolUsageSchema } from \"./tool.js\"\n\n/**\n * RooCodeEventName\n */\n\nexport enum RooCodeEventName {\n\t// Task Provider Lifecycle\n\tTaskCreated = \"taskCreated\",\n\n\t// Task Lifecycle\n\tTaskStarted = \"taskStarted\",\n\tTaskCompleted = \"taskCompleted\",\n\tTaskAborted = \"taskAborted\",\n\tTaskFocused = \"taskFocused\",\n\tTaskUnfocused = \"taskUnfocused\",\n\tTaskActive = \"taskActive\",\n\tTaskInteractive = \"taskInteractive\",\n\tTaskResumable = \"taskResumable\",\n\tTaskIdle = \"taskIdle\",\n\n\t// Subtask Lifecycle\n\tTaskPaused = \"taskPaused\",\n\tTaskUnpaused = \"taskUnpaused\",\n\tTaskSpawned = \"taskSpawned\",\n\tTaskDelegated = \"taskDelegated\",\n\tTaskDelegationCompleted = \"taskDelegationCompleted\",\n\tTaskDelegationResumed = \"taskDelegationResumed\",\n\n\t// Task Execution\n\tMessage = \"message\",\n\tTaskModeSwitched = \"taskModeSwitched\",\n\tTaskAskResponded = \"taskAskResponded\",\n\tTaskUserMessage = \"taskUserMessage\",\n\n\t// Task Analytics\n\tTaskTokenUsageUpdated = \"taskTokenUsageUpdated\",\n\tTaskToolFailed = \"taskToolFailed\",\n\n\t// Configuration Changes\n\tModeChanged = \"modeChanged\",\n\tProviderProfileChanged = \"providerProfileChanged\",\n\n\t// Evals\n\tEvalPass = \"evalPass\",\n\tEvalFail = \"evalFail\",\n}\n\n/**\n * RooCodeEvents\n */\n\nexport const rooCodeEventsSchema = z.object({\n\t[RooCodeEventName.TaskCreated]: z.tuple([z.string()]),\n\n\t[RooCodeEventName.TaskStarted]: z.tuple([z.string()]),\n\t[RooCodeEventName.TaskCompleted]: z.tuple([\n\t\tz.string(),\n\t\ttokenUsageSchema,\n\t\ttoolUsageSchema,\n\t\tz.object({\n\t\t\tisSubtask: z.boolean(),\n\t\t}),\n\t]),\n\t[RooCodeEventName.TaskAborted]: z.tuple([z.string()]),\n\t[RooCodeEventName.TaskFocused]: z.tuple([z.string()]),\n\t[RooCodeEventName.TaskUnfocused]: z.tuple([z.string()]),\n\t[RooCodeEventName.TaskActive]: z.tuple([z.string()]),\n\t[RooCodeEventName.TaskInteractive]: z.tuple([z.string()]),\n\t[RooCodeEventName.TaskResumable]: z.tuple([z.string()]),\n\t[RooCodeEventName.TaskIdle]: z.tuple([z.string()]),\n\n\t[RooCodeEventName.TaskPaused]: z.tuple([z.string()]),\n\t[RooCodeEventName.TaskUnpaused]: z.tuple([z.string()]),\n\t[RooCodeEventName.TaskSpawned]: z.tuple([z.string(), z.string()]),\n\t[RooCodeEventName.TaskDelegated]: z.tuple([\n\t\tz.string(), // parentTaskId\n\t\tz.string(), // childTaskId\n\t]),\n\t[RooCodeEventName.TaskDelegationCompleted]: z.tuple([\n\t\tz.string(), // parentTaskId\n\t\tz.string(), // childTaskId\n\t\tz.string(), // completionResultSummary\n\t]),\n\t[RooCodeEventName.TaskDelegationResumed]: z.tuple([\n\t\tz.string(), // parentTaskId\n\t\tz.string(), // childTaskId\n\t]),\n\n\t[RooCodeEventName.Message]: z.tuple([\n\t\tz.object({\n\t\t\ttaskId: z.string(),\n\t\t\taction: z.union([z.literal(\"created\"), z.literal(\"updated\")]),\n\t\t\tmessage: clineMessageSchema,\n\t\t}),\n\t]),\n\t[RooCodeEventName.TaskModeSwitched]: z.tuple([z.string(), z.string()]),\n\t[RooCodeEventName.TaskAskResponded]: z.tuple([z.string()]),\n\t[RooCodeEventName.TaskUserMessage]: z.tuple([z.string()]),\n\n\t[RooCodeEventName.TaskToolFailed]: z.tuple([z.string(), toolNamesSchema, z.string()]),\n\t[RooCodeEventName.TaskTokenUsageUpdated]: z.tuple([z.string(), tokenUsageSchema, toolUsageSchema]),\n\n\t[RooCodeEventName.ModeChanged]: z.tuple([z.string()]),\n\t[RooCodeEventName.ProviderProfileChanged]: z.tuple([z.object({ name: z.string(), provider: z.string() })]),\n})\n\nexport type RooCodeEvents = z.infer<typeof rooCodeEventsSchema>\n\n/**\n * TaskEvent\n */\n\nexport const taskEventSchema = z.discriminatedUnion(\"eventName\", [\n\t// Task Provider Lifecycle\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskCreated),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskCreated],\n\t\ttaskId: z.number().optional(),\n\t}),\n\n\t// Task Lifecycle\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskStarted),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskStarted],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskCompleted),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskCompleted],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskAborted),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskAborted],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskFocused),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskFocused],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskUnfocused),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskUnfocused],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskActive),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskActive],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskInteractive),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskInteractive],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskResumable),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskResumable],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskIdle),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskIdle],\n\t\ttaskId: z.number().optional(),\n\t}),\n\n\t// Subtask Lifecycle\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskPaused),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskPaused],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskUnpaused),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskUnpaused],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskSpawned),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskSpawned],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskDelegated),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskDelegated],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskDelegationCompleted),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskDelegationCompleted],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskDelegationResumed),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskDelegationResumed],\n\t\ttaskId: z.number().optional(),\n\t}),\n\n\t// Task Execution\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.Message),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.Message],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskModeSwitched),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskModeSwitched],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskAskResponded),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskAskResponded],\n\t\ttaskId: z.number().optional(),\n\t}),\n\n\t// Task Analytics\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskToolFailed),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskToolFailed],\n\t\ttaskId: z.number().optional(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.TaskTokenUsageUpdated),\n\t\tpayload: rooCodeEventsSchema.shape[RooCodeEventName.TaskTokenUsageUpdated],\n\t\ttaskId: z.number().optional(),\n\t}),\n\n\t// Evals\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.EvalPass),\n\t\tpayload: z.undefined(),\n\t\ttaskId: z.number(),\n\t}),\n\tz.object({\n\t\teventName: z.literal(RooCodeEventName.EvalFail),\n\t\tpayload: z.undefined(),\n\t\ttaskId: z.number(),\n\t}),\n])\n\nexport type TaskEvent = z.infer<typeof taskEventSchema>\n","import { z } from \"zod\"\n\n/**\n * ClineAsk\n */\n\n/**\n * Array of possible ask types that the LLM can use to request user interaction or approval.\n * These represent different scenarios where the assistant needs user input to proceed.\n *\n * @constant\n * @readonly\n *\n * Ask type descriptions:\n * - `followup`: LLM asks a clarifying question to gather more information needed to complete the task\n * - `command`: Permission to execute a terminal/shell command\n * - `command_output`: Permission to read the output from a previously executed command\n * - `completion_result`: Task has been completed, awaiting user feedback or a new task\n * - `tool`: Permission to use a tool for file operations (read, write, search, etc.)\n * - `api_req_failed`: API request failed, asking user whether to retry\n * - `resume_task`: Confirmation needed to resume a previously paused task\n * - `resume_completed_task`: Confirmation needed to resume a task that was already marked as completed\n * - `mistake_limit_reached`: Too many errors encountered, needs user guidance on how to proceed\n * - `browser_action_launch`: Permission to open or interact with a browser\n * - `use_mcp_server`: Permission to use Model Context Protocol (MCP) server functionality\n * - `auto_approval_max_req_reached`: Auto-approval limit has been reached, manual approval required\n */\nexport const clineAsks = [\n\t\"followup\",\n\t\"command\",\n\t\"command_output\",\n\t\"completion_result\",\n\t\"tool\",\n\t\"api_req_failed\",\n\t\"resume_task\",\n\t\"resume_completed_task\",\n\t\"mistake_limit_reached\",\n\t\"browser_action_launch\",\n\t\"use_mcp_server\",\n\t\"auto_approval_max_req_reached\",\n] as const\n\nexport const clineAskSchema = z.enum(clineAsks)\n\nexport type ClineAsk = z.infer<typeof clineAskSchema>\n/**\n * IdleAsk\n *\n * Asks that put the task into an \"idle\" state.\n */\n\nexport const idleAsks = [\n\t\"completion_result\",\n\t\"api_req_failed\",\n\t\"resume_completed_task\",\n\t\"mistake_limit_reached\",\n\t\"auto_approval_max_req_reached\",\n] as const satisfies readonly ClineAsk[]\n\nexport type IdleAsk = (typeof idleAsks)[number]\n\nexport function isIdleAsk(ask: ClineAsk): ask is IdleAsk {\n\treturn (idleAsks as readonly ClineAsk[]).includes(ask)\n}\n\n/**\n * ResumableAsk\n *\n * Asks that put the task into an \"resumable\" state.\n */\n\nexport const resumableAsks = [\"resume_task\"] as const satisfies readonly ClineAsk[]\n\nexport type ResumableAsk = (typeof resumableAsks)[number]\n\nexport function isResumableAsk(ask: ClineAsk): ask is ResumableAsk {\n\treturn (resumableAsks as readonly ClineAsk[]).includes(ask)\n}\n\n/**\n * InteractiveAsk\n *\n * Asks that put the task into an \"user interaction required\" state.\n */\n\nexport const interactiveAsks = [\n\t\"followup\",\n\t\"command\",\n\t\"tool\",\n\t\"browser_action_launch\",\n\t\"use_mcp_server\",\n] as const satisfies readonly ClineAsk[]\n\nexport type InteractiveAsk = (typeof interactiveAsks)[number]\n\nexport function isInteractiveAsk(ask: ClineAsk): ask is InteractiveAsk {\n\treturn (interactiveAsks as readonly ClineAsk[]).includes(ask)\n}\n\n/**\n * NonBlockingAsk\n *\n * Asks that are not associated with an actual approval, and are only used\n * to update chat messages.\n */\n\nexport const nonBlockingAsks = [\"command_output\"] as const satisfies readonly ClineAsk[]\n\nexport type NonBlockingAsk = (typeof nonBlockingAsks)[number]\n\nexport function isNonBlockingAsk(ask: ClineAsk): ask is NonBlockingAsk {\n\treturn (nonBlockingAsks as readonly ClineAsk[]).includes(ask)\n}\n\n/**\n * ClineSay\n */\n\n/**\n * Array of possible say types that represent different kinds of messages the assistant can send.\n * These are used to categorize and handle various types of communication from the LLM to the user.\n *\n * @constant\n * @readonly\n *\n * Say type descriptions:\n * - `error`: General error message\n * - `api_req_started`: Indicates an API request has been initiated\n * - `api_req_finished`: Indicates an API request has completed successfully\n * - `api_req_retried`: Indicates an API request is being retried after a failure\n * - `api_req_retry_delayed`: Indicates an API request retry has been delayed\n * - `api_req_deleted`: Indicates an API request has been deleted/cancelled\n * - `text`: General text message or assistant response\n * - `reasoning`: Assistant's reasoning or thought process (often hidden from user)\n * - `completion_result`: Final result of task completion\n * - `user_feedback`: Message containing user feedback\n * - `user_feedback_diff`: Diff-formatted feedback from user showing requested changes\n * - `command_output`: Output from an executed command\n * - `shell_integration_warning`: Warning about shell integration issues or limitations\n * - `browser_action`: Action performed in the browser\n * - `browser_action_result`: Result of a browser action\n * - `mcp_server_request_started`: MCP server request has been initiated\n * - `mcp_server_response`: Response received from MCP server\n * - `subtask_result`: Result of a completed subtask\n * - `checkpoint_saved`: Indicates a checkpoint has been saved\n * - `rooignore_error`: Error related to .rooignore file processing\n * - `diff_error`: Error occurred while applying a diff/patch\n * - `condense_context`: Context condensation/summarization has started\n * - `condense_context_error`: Error occurred during context condensation\n * - `codebase_search_result`: Results from searching the codebase\n */\nexport const clineSays = [\n\t\"error\",\n\t\"api_req_started\",\n\t\"api_req_finished\",\n\t\"api_req_retried\",\n\t\"api_req_retry_delayed\",\n\t\"api_req_deleted\",\n\t\"text\",\n\t\"image\",\n\t\"reasoning\",\n\t\"completion_result\",\n\t\"user_feedback\",\n\t\"user_feedback_diff\",\n\t\"command_output\",\n\t\"shell_integration_warning\",\n\t\"browser_action\",\n\t\"browser_action_result\",\n\t\"browser_session_status\",\n\t\"mcp_server_request_started\",\n\t\"mcp_server_response\",\n\t\"subtask_result\",\n\t\"checkpoint_saved\",\n\t\"rooignore_error\",\n\t\"diff_error\",\n\t\"condense_context\",\n\t\"condense_context_error\",\n\t\"sliding_window_truncation\",\n\t\"codebase_search_result\",\n\t\"user_edit_todos\",\n] as const\n\nexport const clineSaySchema = z.enum(clineSays)\n\nexport type ClineSay = z.infer<typeof clineSaySchema>\n\n/**\n * ToolProgressStatus\n */\n\nexport const toolProgressStatusSchema = z.object({\n\ticon: z.string().optional(),\n\ttext: z.string().optional(),\n})\n\nexport type ToolProgressStatus = z.infer<typeof toolProgressStatusSchema>\n\n/**\n * ContextCondense\n *\n * Data associated with a successful context condensation event.\n * This is attached to messages with `say: \"condense_context\"` when\n * the condensation operation completes successfully.\n *\n * @property cost - The API cost incurred for the condensation operation\n * @property prevContextTokens - Token count before condensation\n * @property newContextTokens - Token count after condensation\n * @property summary - The condensed summary that replaced the original context\n * @property condenseId - Optional unique identifier for this condensation operation\n */\nexport const contextCondenseSchema = z.object({\n\tcost: z.number(),\n\tprevContextTokens: z.number(),\n\tnewContextTokens: z.number(),\n\tsummary: z.string(),\n\tcondenseId: z.string().optional(),\n})\n\nexport type ContextCondense = z.infer<typeof contextCondenseSchema>\n\n/**\n * ContextTruncation\n *\n * Data associated with a sliding window truncation event.\n * This is attached to messages with `say: \"sliding_window_truncation\"` when\n * messages are removed from the conversation history to stay within token limits.\n *\n * Unlike condensation, truncation simply removes older messages without\n * summarizing them. This is a faster but less context-preserving approach.\n *\n * @property truncationId - Unique identifier for this truncation operation\n * @property messagesRemoved - Number of conversation messages that were removed\n * @property prevContextTokens - Token count before truncation occurred\n * @property newContextTokens - Token count after truncation occurred\n */\nexport const contextTruncationSchema = z.object({\n\ttruncationId: z.string(),\n\tmessagesRemoved: z.number(),\n\tprevContextTokens: z.number(),\n\tnewContextTokens: z.number(),\n})\n\nexport type ContextTruncation = z.infer<typeof contextTruncationSchema>\n\n/**\n * ClineMessage\n *\n * The main message type used for communication between the extension and webview.\n * Messages can either be \"ask\" (requiring user response) or \"say\" (informational).\n *\n * Context Management Fields:\n * - `contextCondense`: Present when `say: \"condense_context\"` and condensation succeeded\n * - `contextTruncation`: Present when `say: \"sliding_window_truncation\"` and truncation occurred\n *\n * Note: These fields are mutually exclusive - a message will have at most one of them.\n */\nexport const clineMessageSchema = z.object({\n\tts: z.number(),\n\ttype: z.union([z.literal(\"ask\"), z.literal(\"say\")]),\n\task: clineAskSchema.optional(),\n\tsay: clineSaySchema.optional(),\n\ttext: z.string().optional(),\n\timages: z.array(z.string()).optional(),\n\tpartial: z.boolean().optional(),\n\treasoning: z.string().optional(),\n\tconversationHistoryIndex: z.number().optional(),\n\tcheckpoint: z.record(z.string(), z.unknown()).optional(),\n\tprogressStatus: toolProgressStatusSchema.optional(),\n\t/**\n\t * Data for successful context condensation.\n\t * Present when `say: \"condense_context\"` and `partial: false`.\n\t */\n\tcontextCondense: contextCondenseSchema.optional(),\n\t/**\n\t * Data for sliding window truncation.\n\t * Present when `say: \"sliding_window_truncation\"`.\n\t */\n\tcontextTruncation: contextTruncationSchema.optional(),\n\tisProtected: z.boolean().optional(),\n\tapiProtocol: z.union([z.literal(\"openai\"), z.literal(\"anthropic\")]).optional(),\n\tisAnswered: z.boolean().optional(),\n})\n\nexport type ClineMessage = z.infer<typeof clineMessageSchema>\n\n/**\n * TokenUsage\n */\n\nexport const tokenUsageSchema = z.object({\n\ttotalTokensIn: z.number(),\n\ttotalTokensOut: z.number(),\n\ttotalCacheWrites: z.number().optional(),\n\ttotalCacheReads: z.number().optional(),\n\ttotalCost: z.number(),\n\tcontextTokens: z.number(),\n})\n\nexport type TokenUsage = z.infer<typeof tokenUsageSchema>\n\n/**\n * QueuedMessage\n */\n\nexport const queuedMessageSchema = z.object({\n\ttimestamp: z.number(),\n\tid: z.string(),\n\ttext: z.string(),\n\timages: z.array(z.string()).optional(),\n})\n\nexport type QueuedMessage = z.infer<typeof queuedMessageSchema>\n","import { z } from \"zod\"\n\n/**\n * ToolGroup\n */\n\nexport const toolGroups = [\"read\", \"edit\", \"browser\", \"command\", \"mcp\", \"modes\"] as const\n\nexport const toolGroupsSchema = z.enum(toolGroups)\n\nexport type ToolGroup = z.infer<typeof toolGroupsSchema>\n\n/**\n * ToolName\n */\n\nexport const toolNames = [\n\t\"execute_command\",\n\t\"read_file\",\n\t\"write_to_file\",\n\t\"apply_diff\",\n\t\"search_and_replace\",\n\t\"search_replace\",\n\t\"apply_patch\",\n\t\"search_files\",\n\t\"list_files\",\n\t\"browser_action\",\n\t\"use_mcp_tool\",\n\t\"access_mcp_resource\",\n\t\"ask_followup_question\",\n\t\"attempt_completion\",\n\t\"switch_mode\",\n\t\"new_task\",\n\t\"fetch_instructions\",\n\t\"codebase_search\",\n\t\"update_todo_list\",\n\t\"run_slash_command\",\n\t\"generate_image\",\n] as const\n\nexport const toolNamesSchema = z.enum(toolNames)\n\nexport type ToolName = z.infer<typeof toolNamesSchema>\n\n/**\n * ToolUsage\n */\n\nexport const toolUsageSchema = z.record(\n\ttoolNamesSchema,\n\tz.object({\n\t\tattempts: z.number(),\n\t\tfailures: z.number(),\n\t}),\n)\n\nexport type ToolUsage = z.infer<typeof toolUsageSchema>\n\n/**\n * Tool protocol constants\n */\nexport const TOOL_PROTOCOL = {\n\tXML: \"xml\",\n\tNATIVE: \"native\",\n} as const\n\n/**\n * Tool protocol type for system prompt generation\n * Derived from TOOL_PROTOCOL constants to ensure type safety\n */\nexport type ToolProtocol = (typeof TOOL_PROTOCOL)[keyof typeof TOOL_PROTOCOL]\n\n/**\n * Checks if the protocol is native (non-XML).\n *\n * @param protocol - The tool protocol to check\n * @returns True if protocol is native\n */\nexport function isNativeProtocol(protocol: ToolProtocol): boolean {\n\treturn protocol === TOOL_PROTOCOL.NATIVE\n}\n\n/**\n * Gets the effective protocol from settings or falls back to the default XML.\n * This function is safe to use in webview-accessible code as it doesn't depend on vscode module.\n *\n * @param toolProtocol - Optional tool protocol from settings\n * @returns The effective tool protocol (defaults to \"xml\")\n */\nexport function getEffectiveProtocol(toolProtocol?: ToolProtocol): ToolProtocol {\n\treturn toolProtocol || TOOL_PROTOCOL.XML\n}\n","import { z } from \"zod\"\n\nimport { RooCodeEventName } from \"./events.js\"\nimport type { RooCodeSettings } from \"./global-settings.js\"\nimport type { ClineMessage, QueuedMessage, TokenUsage } from \"./message.js\"\nimport type { ToolUsage, ToolName } from \"./tool.js\"\nimport type { StaticAppProperties, GitProperties, TelemetryProperties } from \"./telemetry.js\"\nimport type { TodoItem } from \"./todo.js\"\n\n/**\n * TaskProviderLike\n */\n\nexport interface TaskProviderLike {\n\t// Tasks\n\tgetCurrentTask(): TaskLike | undefined\n\tgetRecentTasks(): string[]\n\tcreateTask(\n\t\ttext?: string,\n\t\timages?: string[],\n\t\tparentTask?: TaskLike,\n\t\toptions?: CreateTaskOptions,\n\t\tconfiguration?: RooCodeSettings,\n\t): Promise<TaskLike>\n\tcancelTask(): Promise<void>\n\tclearTask(): Promise<void>\n\tresumeTask(taskId: string): void\n\n\t// Modes\n\tgetModes(): Promise<{ slug: string; name: string }[]>\n\tgetMode(): Promise<string>\n\tsetMode(mode: string): Promise<void>\n\n\t// Provider Profiles\n\tgetProviderProfiles(): Promise<{ name: string; provider?: string }[]>\n\tgetProviderProfile(): Promise<string>\n\tsetProviderProfile(providerProfile: string): Promise<void>\n\n\t// Telemetry\n\treadonly appProperties: StaticAppProperties\n\treadonly gitProperties: GitProperties | undefined\n\tgetTelemetryProperties(): Promise<TelemetryProperties>\n\treadonly cwd: string\n\n\t// Event Emitter\n\ton<K extends keyof TaskProviderEvents>(\n\t\tevent: K,\n\t\tlistener: (...args: TaskProviderEvents[K]) => void | Promise<void>,\n\t): this\n\n\toff<K extends keyof TaskProviderEvents>(\n\t\tevent: K,\n\t\tlistener: (...args: TaskProviderEvents[K]) => void | Promise<void>,\n\t): this\n\n\t// @TODO: Find a better way to do this.\n\tpostStateToWebview(): Promise<void>\n}\n\nexport type TaskProviderEvents = {\n\t[RooCodeEventName.TaskCreated]: [task: TaskLike]\n\t[RooCodeEventName.TaskStarted]: [taskId: string]\n\t[RooCodeEventName.TaskCompleted]: [taskId: string, tokenUsage: TokenUsage, toolUsage: ToolUsage]\n\t[RooCodeEventName.TaskAborted]: [taskId: string]\n\t[RooCodeEventName.TaskFocused]: [taskId: string]\n\t[RooCodeEventName.TaskUnfocused]: [taskId: string]\n\t[RooCodeEventName.TaskActive]: [taskId: string]\n\t[RooCodeEventName.TaskInteractive]: [taskId: string]\n\t[RooCodeEventName.TaskResumable]: [taskId: string]\n\t[RooCodeEventName.TaskIdle]: [taskId: string]\n\n\t[RooCodeEventName.TaskPaused]: [taskId: string]\n\t[RooCodeEventName.TaskUnpaused]: [taskId: string]\n\t[RooCodeEventName.TaskSpawned]: [taskId: string]\n\t[RooCodeEventName.TaskDelegated]: [parentTaskId: string, childTaskId: string]\n\t[RooCodeEventName.TaskDelegationCompleted]: [parentTaskId: string, childTaskId: string, summary: string]\n\t[RooCodeEventName.TaskDelegationResumed]: [parentTaskId: string, childTaskId: string]\n\n\t[RooCodeEventName.TaskUserMessage]: [taskId: string]\n\n\t[RooCodeEventName.TaskTokenUsageUpdated]: [taskId: string, tokenUsage: TokenUsage, toolUsage: ToolUsage]\n\n\t[RooCodeEventName.ModeChanged]: [mode: string]\n\t[RooCodeEventName.ProviderProfileChanged]: [config: { name: string; provider?: string }]\n}\n\n/**\n * TaskLike\n */\n\nexport interface CreateTaskOptions {\n\tenableDiff?: boolean\n\tenableCheckpoints?: boolean\n\tfuzzyMatchThreshold?: number\n\tconsecutiveMistakeLimit?: number\n\texperiments?: Record<string, boolean>\n\tinitialTodos?: TodoItem[]\n\t/** Initial status for the task's history item (e.g., \"active\" for child tasks) */\n\tinitialStatus?: \"active\" | \"delegated\" | \"completed\"\n}\n\nexport enum TaskStatus {\n\tRunning = \"running\",\n\tInteractive = \"interactive\",\n\tResumable = \"resumable\",\n\tIdle = \"idle\",\n\tNone = \"none\",\n}\n\nexport const taskMetadataSchema = z.object({\n\ttask: z.string().optional(),\n\timages: z.array(z.string()).optional(),\n})\n\nexport type TaskMetadata = z.infer<typeof taskMetadataSchema>\n\nexport interface TaskLike {\n\treadonly taskId: string\n\treadonly rootTaskId?: string\n\treadonly parentTaskId?: string\n\treadonly childTaskId?: string\n\treadonly metadata: TaskMetadata\n\treadonly taskStatus: TaskStatus\n\treadonly taskAsk: ClineMessage | undefined\n\treadonly queuedMessages: QueuedMessage[]\n\treadonly tokenUsage: TokenUsage | undefined\n\n\ton<K extends keyof TaskEvents>(event: K, listener: (...args: TaskEvents[K]) => void | Promise<void>): this\n\toff<K extends keyof TaskEvents>(event: K, listener: (...args: TaskEvents[K]) => void | Promise<void>): this\n\n\tapproveAsk(options?: { text?: string; images?: string[] }): void\n\tdenyAsk(options?: { text?: string; images?: string[] }): void\n\tsubmitUserMessage(text: string, images?: string[], mode?: string, providerProfile?: string): Promise<void>\n\tabortTask(): void\n}\n\nexport type TaskEvents = {\n\t// Task Lifecycle\n\t[RooCodeEventName.TaskStarted]: []\n\t[RooCodeEventName.TaskCompleted]: [taskId: string, tokenUsage: TokenUsage, toolUsage: ToolUsage]\n\t[RooCodeEventName.TaskAborted]: []\n\t[RooCodeEventName.TaskFocused]: []\n\t[RooCodeEventName.TaskUnfocused]: []\n\t[RooCodeEventName.TaskActive]: [taskId: string]\n\t[RooCodeEventName.TaskInteractive]: [taskId: string]\n\t[RooCodeEventName.TaskResumable]: [taskId: string]\n\t[RooCodeEventName.TaskIdle]: [taskId: string]\n\n\t// Subtask Lifecycle\n\t[RooCodeEventName.TaskPaused]: [taskId: string]\n\t[RooCodeEventName.TaskUnpaused]: [taskId: string]\n\t[RooCodeEventName.TaskSpawned]: [taskId: string]\n\n\t// Task Execution\n\t[RooCodeEventName.Message]: [{ action: \"created\" | \"updated\"; message: ClineMessage }]\n\t[RooCodeEventName.TaskModeSwitched]: [taskId: string, mode: string]\n\t[RooCodeEventName.TaskAskResponded]: []\n\t[RooCodeEventName.TaskUserMessage]: [taskId: string]\n\n\t// Task Analytics\n\t[RooCodeEventName.TaskToolFailed]: [taskId: string, tool: ToolName, error: string]\n\t[RooCodeEventName.TaskTokenUsageUpdated]: [taskId: string, tokenUsage: TokenUsage, toolUsage: ToolUsage]\n}\n","import { z } from \"zod\"\n\nimport { type Keys } from \"./type-fu.js\"\nimport {\n\ttype ProviderSettings,\n\tPROVIDER_SETTINGS_KEYS,\n\tproviderSettingsEntrySchema,\n\tproviderSettingsSchema,\n} from \"./provider-settings.js\"\nimport { historyItemSchema } from \"./history.js\"\nimport { codebaseIndexModelsSchema, codebaseIndexConfigSchema } from \"./codebase-index.js\"\nimport { experimentsSchema } from \"./experiment.js\"\nimport { telemetrySettingsSchema } from \"./telemetry.js\"\nimport { modeConfigSchema } from \"./mode.js\"\nimport { customModePromptsSchema, customSupportPromptsSchema } from \"./mode.js\"\nimport { languagesSchema } from \"./vscode.js\"\n\n/**\n * Default delay in milliseconds after writes to allow diagnostics to detect potential problems.\n * This delay is particularly important for Go and other languages where tools like goimports\n * need time to automatically clean up unused imports.\n */\nexport const DEFAULT_WRITE_DELAY_MS = 1000\n\n/**\n * Default terminal output character limit constant.\n * This provides a reasonable default that aligns with typical terminal usage\n * while preventing context window explosions from extremely long lines.\n */\nexport const DEFAULT_TERMINAL_OUTPUT_CHARACTER_LIMIT = 50_000\n\n/**\n * Minimum checkpoint timeout in seconds.\n */\nexport const MIN_CHECKPOINT_TIMEOUT_SECONDS = 10\n\n/**\n * Maximum checkpoint timeout in seconds.\n */\nexport const MAX_CHECKPOINT_TIMEOUT_SECONDS = 60\n\n/**\n * Default checkpoint timeout in seconds.\n */\nexport const DEFAULT_CHECKPOINT_TIMEOUT_SECONDS = 15\n\n/**\n * GlobalSettings\n */\n\nexport const globalSettingsSchema = z.object({\n\tcurrentApiConfigName: z.string().optional(),\n\tlistApiConfigMeta: z.array(providerSettingsEntrySchema).optional(),\n\tpinnedApiConfigs: z.record(z.string(), z.boolean()).optional(),\n\n\tlastShownAnnouncementId: z.string().optional(),\n\tcustomInstructions: z.string().optional(),\n\ttaskHistory: z.array(historyItemSchema).optional(),\n\tdismissedUpsells: z.array(z.string()).optional(),\n\n\t// Image generation settings (experimental) - flattened for simplicity\n\timageGenerationProvider: z.enum([\"openrouter\", \"roo\"]).optional(),\n\topenRouterImageApiKey: z.string().optional(),\n\topenRouterImageGenerationSelectedModel: z.string().optional(),\n\n\tcondensingApiConfigId: z.string().optional(),\n\tcustomCondensingPrompt: z.string().optional(),\n\n\tautoApprovalEnabled: z.boolean().optional(),\n\talwaysAllowReadOnly: z.boolean().optional(),\n\talwaysAllowReadOnlyOutsideWorkspace: z.boolean().optional(),\n\talwaysAllowWrite: z.boolean().optional(),\n\talwaysAllowWriteOutsideWorkspace: z.boolean().optional(),\n\talwaysAllowWriteProtected: z.boolean().optional(),\n\twriteDelayMs: z.number().min(0).optional(),\n\talwaysAllowBrowser: z.boolean().optional(),\n\trequestDelaySeconds: z.number().optional(),\n\talwaysAllowMcp: z.boolean().optional(),\n\talwaysAllowModeSwitch: z.boolean().optional(),\n\talwaysAllowSubtasks: z.boolean().optional(),\n\talwaysAllowExecute: z.boolean().optional(),\n\talwaysAllowFollowupQuestions: z.boolean().optional(),\n\tfollowupAutoApproveTimeoutMs: z.number().optional(),\n\tallowedCommands: z.array(z.string()).optional(),\n\tdeniedCommands: z.array(z.string()).optional(),\n\tcommandExecutionTimeout: z.number().optional(),\n\tcommandTimeoutAllowlist: z.array(z.string()).optional(),\n\tpreventCompletionWithOpenTodos: z.boolean().optional(),\n\tallowedMaxRequests: z.number().nullish(),\n\tallowedMaxCost: z.number().nullish(),\n\tautoCondenseContext: z.boolean().optional(),\n\tautoCondenseContextPercent: z.number().optional(),\n\tmaxConcurrentFileReads: z.number().optional(),\n\n\t/**\n\t * Whether to include current time in the environment details\n\t * @default true\n\t */\n\tincludeCurrentTime: z.boolean().optional(),\n\t/**\n\t * Whether to include current cost in the environment details\n\t * @default true\n\t */\n\tincludeCurrentCost: z.boolean().optional(),\n\t/**\n\t * Maximum number of git status file entries to include in the environment details.\n\t * Set to 0 to disable git status. The header (branch, commits) is always included when > 0.\n\t * @default 0\n\t */\n\tmaxGitStatusFiles: z.number().optional(),\n\n\t/**\n\t * Whether to include diagnostic messages (errors, warnings) in tool outputs\n\t * @default true\n\t */\n\tincludeDiagnosticMessages: z.boolean().optional(),\n\t/**\n\t * Maximum number of diagnostic messages to include in tool outputs\n\t * @default 50\n\t */\n\tmaxDiagnosticMessages: z.number().optional(),\n\n\tbrowserToolEnabled: z.boolean().optional(),\n\tbrowserViewportSize: z.string().optional(),\n\tscreenshotQuality: z.number().optional(),\n\tremoteBrowserEnabled: z.boolean().optional(),\n\tremoteBrowserHost: z.string().optional(),\n\tcachedChromeHostUrl: z.string().optional(),\n\n\tenableCheckpoints: z.boolean().optional(),\n\tcheckpointTimeout: z\n\t\t.number()\n\t\t.int()\n\t\t.min(MIN_CHECKPOINT_TIMEOUT_SECONDS)\n\t\t.max(MAX_CHECKPOINT_TIMEOUT_SECONDS)\n\t\t.optional(),\n\n\tttsEnabled: z.boolean().optional(),\n\tttsSpeed: z.number().optional(),\n\tsoundEnabled: z.boolean().optional(),\n\tsoundVolume: z.number().optional(),\n\n\tmaxOpenTabsContext: z.number().optional(),\n\tmaxWorkspaceFiles: z.number().optional(),\n\tshowRooIgnoredFiles: z.boolean().optional(),\n\tmaxReadFileLine: z.number().optional(),\n\tmaxImageFileSize: z.number().optional(),\n\tmaxTotalImageSize: z.number().optional(),\n\n\tterminalOutputLineLimit: z.number().optional(),\n\tterminalOutputCharacterLimit: z.number().optional(),\n\tterminalShellIntegrationTimeout: z.number().optional(),\n\tterminalShellIntegrationDisabled: z.boolean().optional(),\n\tterminalCommandDelay: z.number().optional(),\n\tterminalPowershellCounter: z.boolean().optional(),\n\tterminalZshClearEolMark: z.boolean().optional(),\n\tterminalZshOhMy: z.boolean().optional(),\n\tterminalZshP10k: z.boolean().optional(),\n\tterminalZdotdir: z.boolean().optional(),\n\tterminalCompressProgressBar: z.boolean().optional(),\n\n\tdiagnosticsEnabled: z.boolean().optional(),\n\n\trateLimitSeconds: z.number().optional(),\n\tdiffEnabled: z.boolean().optional(),\n\tfuzzyMatchThreshold: z.number().optional(),\n\texperiments: experimentsSchema.optional(),\n\n\tcodebaseIndexModels: codebaseIndexModelsSchema.optional(),\n\tcodebaseIndexConfig: codebaseIndexConfigSchema.optional(),\n\n\tlanguage: languagesSchema.optional(),\n\n\ttelemetrySetting: telemetrySettingsSchema.optional(),\n\n\tmcpEnabled: z.boolean().optional(),\n\tenableMcpServerCreation: z.boolean().optional(),\n\n\tmode: z.string().optional(),\n\tmodeApiConfigs: z.record(z.string(), z.string()).optional(),\n\tcustomModes: z.array(modeConfigSchema).optional(),\n\tcustomModePrompts: customModePromptsSchema.optional(),\n\tcustomSupportPrompts: customSupportPromptsSchema.optional(),\n\tenhancementApiConfigId: z.string().optional(),\n\tincludeTaskHistoryInEnhance: z.boolean().optional(),\n\thistoryPreviewCollapsed: z.boolean().optional(),\n\treasoningBlockCollapsed: z.boolean().optional(),\n\t/**\n\t * Controls the keyboard behavior for sending messages in the chat input.\n\t * - \"send\": Enter sends message, Shift+Enter creates newline (default)\n\t * - \"newline\": Enter creates newline, Shift+Enter/Ctrl+Enter sends message\n\t * @default \"send\"\n\t */\n\tenterBehavior: z.enum([\"send\", \"newline\"]).optional(),\n\tprofileThresholds: z.record(z.string(), z.number()).optional(),\n\thasOpenedModeSelector: z.boolean().optional(),\n\tlastModeExportPath: z.string().optional(),\n\tlastModeImportPath: z.string().optional(),\n})\n\nexport type GlobalSettings = z.infer<typeof globalSettingsSchema>\n\nexport const GLOBAL_SETTINGS_KEYS = globalSettingsSchema.keyof().options\n\n/**\n * RooCodeSettings\n */\n\nexport const rooCodeSettingsSchema = providerSettingsSchema.merge(globalSettingsSchema)\n\nexport type RooCodeSettings = GlobalSettings & ProviderSettings\n\n/**\n * SecretState\n */\nexport const SECRET_STATE_KEYS = [\n\t\"apiKey\",\n\t\"openRouterApiKey\",\n\t\"awsAccessKey\",\n\t\"awsApiKey\",\n\t\"awsSecretKey\",\n\t\"awsSessionToken\",\n\t\"openAiApiKey\",\n\t\"ollamaApiKey\",\n\t\"geminiApiKey\",\n\t\"openAiNativeApiKey\",\n\t\"cerebrasApiKey\",\n\t\"deepSeekApiKey\",\n\t\"doubaoApiKey\",\n\t\"moonshotApiKey\",\n\t\"mistralApiKey\",\n\t\"minimaxApiKey\",\n\t\"unboundApiKey\",\n\t\"requestyApiKey\",\n\t\"xaiApiKey\",\n\t\"groqApiKey\",\n\t\"chutesApiKey\",\n\t\"litellmApiKey\",\n\t\"deepInfraApiKey\",\n\t\"codeIndexOpenAiKey\",\n\t\"codeIndexQdrantApiKey\",\n\t\"codebaseIndexOpenAiCompatibleApiKey\",\n\t\"codebaseIndexGeminiApiKey\",\n\t\"codebaseIndexMistralApiKey\",\n\t\"codebaseIndexVercelAiGatewayApiKey\",\n\t\"codebaseIndexOpenRouterApiKey\",\n\t\"huggingFaceApiKey\",\n\t\"sambaNovaApiKey\",\n\t\"zaiApiKey\",\n\t\"fireworksApiKey\",\n\t\"featherlessApiKey\",\n\t\"ioIntelligenceApiKey\",\n\t\"vercelAiGatewayApiKey\",\n\t\"basetenApiKey\",\n] as const\n\n// Global secrets that are part of GlobalSettings (not ProviderSettings)\nexport const GLOBAL_SECRET_KEYS = [\n\t\"openRouterImageApiKey\", // For image generation\n] as const\n\n// Type for the actual secret storage keys\ntype ProviderSecretKey = (typeof SECRET_STATE_KEYS)[number]\ntype GlobalSecretKey = (typeof GLOBAL_SECRET_KEYS)[number]\n\n// Type representing all secrets that can be stored\nexport type SecretState = Pick<ProviderSettings, Extract<ProviderSecretKey, keyof ProviderSettings>> & {\n\t[K in GlobalSecretKey]?: string\n}\n\nexport const isSecretStateKey = (key: string): key is Keys<SecretState> =>\n\tSECRET_STATE_KEYS.includes(key as ProviderSecretKey) || GLOBAL_SECRET_KEYS.includes(key as GlobalSecretKey)\n\n/**\n * GlobalState\n */\n\nexport type GlobalState = Omit<RooCodeSettings, Keys<SecretState>>\n\nexport const GLOBAL_STATE_KEYS = [...GLOBAL_SETTINGS_KEYS, ...PROVIDER_SETTINGS_KEYS].filter(\n\t(key: Keys<RooCodeSettings>) => !isSecretStateKey(key),\n) as Keys<GlobalState>[]\n\nexport const isGlobalStateKey = (key: string): key is Keys<GlobalState> =>\n\tGLOBAL_STATE_KEYS.includes(key as Keys<GlobalState>)\n\n/**\n * Evals\n */\n\n// Default settings when running evals (unless overridden).\nexport const EVALS_SETTINGS: RooCodeSettings = {\n\tapiProvider: \"openrouter\",\n\topenRouterUseMiddleOutTransform: false,\n\n\tlastShownAnnouncementId: \"jul-09-2025-3-23-0\",\n\n\tpinnedApiConfigs: {},\n\n\tautoApprovalEnabled: true,\n\talwaysAllowReadOnly: true,\n\talwaysAllowReadOnlyOutsideWorkspace: false,\n\talwaysAllowWrite: true,\n\talwaysAllowWriteOutsideWorkspace: false,\n\talwaysAllowWriteProtected: false,\n\twriteDelayMs: 1000,\n\talwaysAllowBrowser: true,\n\trequestDelaySeconds: 10,\n\talwaysAllowMcp: true,\n\talwaysAllowModeSwitch: true,\n\talwaysAllowSubtasks: true,\n\talwaysAllowExecute: true,\n\talwaysAllowFollowupQuestions: true,\n\tfollowupAutoApproveTimeoutMs: 0,\n\tallowedCommands: [\"*\"],\n\tcommandExecutionTimeout: 20,\n\tcommandTimeoutAllowlist: [],\n\tpreventCompletionWithOpenTodos: false,\n\n\tbrowserToolEnabled: false,\n\tbrowserViewportSize: \"900x600\",\n\tscreenshotQuality: 75,\n\tremoteBrowserEnabled: false,\n\n\tttsEnabled: false,\n\tttsSpeed: 1,\n\tsoundEnabled: false,\n\tsoundVolume: 0.5,\n\n\tterminalOutputLineLimit: 500,\n\tterminalOutputCharacterLimit: DEFAULT_TERMINAL_OUTPUT_CHARACTER_LIMIT,\n\tterminalShellIntegrationTimeout: 30000,\n\tterminalCommandDelay: 0,\n\tterminalPowershellCounter: false,\n\tterminalZshOhMy: true,\n\tterminalZshClearEolMark: true,\n\tterminalZshP10k: false,\n\tterminalZdotdir: true,\n\tterminalCompressProgressBar: true,\n\tterminalShellIntegrationDisabled: true,\n\n\tdiagnosticsEnabled: true,\n\n\tdiffEnabled: true,\n\tfuzzyMatchThreshold: 1,\n\n\tenableCheckpoints: false,\n\n\trateLimitSeconds: 0,\n\tmaxOpenTabsContext: 20,\n\tmaxWorkspaceFiles: 200,\n\tmaxGitStatusFiles: 20,\n\tshowRooIgnoredFiles: true,\n\tmaxReadFileLine: -1, // -1 to enable full file reading.\n\n\tincludeDiagnosticMessages: true,\n\tmaxDiagnosticMessages: 50,\n\n\tlanguage: \"en\",\n\ttelemetrySetting: \"enabled\",\n\n\tmcpEnabled: false,\n\n\tmode: \"code\", // \"architect\",\n\n\tcustomModes: [],\n}\n\nexport const EVALS_TIMEOUT = 5 * 60 * 1_000\n","import { z } from \"zod\"\n\nimport { modelInfoSchema, reasoningEffortSettingSchema, verbosityLevelsSchema, serviceTierSchema } from \"./model.js\"\nimport { codebaseIndexProviderSchema } from \"./codebase-index.js\"\nimport {\n\tanthropicModels,\n\tbasetenModels,\n\tbedrockModels,\n\tcerebrasModels,\n\tclaudeCodeModels,\n\tdeepSeekModels,\n\tdoubaoModels,\n\tfeatherlessModels,\n\tfireworksModels,\n\tgeminiModels,\n\tgroqModels,\n\tioIntelligenceModels,\n\tmistralModels,\n\tmoonshotModels,\n\topenAiNativeModels,\n\tqwenCodeModels,\n\tsambaNovaModels,\n\tvertexModels,\n\tvscodeLlmModels,\n\txaiModels,\n\tinternationalZAiModels,\n\tminimaxModels,\n} from \"./providers/index.js\"\n\n/**\n * constants\n */\n\nexport const DEFAULT_CONSECUTIVE_MISTAKE_LIMIT = 3\n\n/**\n * DynamicProvider\n *\n * Dynamic provider requires external API calls in order to get the model list.\n */\n\nexport const dynamicProviders = [\n\t\"openrouter\",\n\t\"vercel-ai-gateway\",\n\t\"huggingface\",\n\t\"litellm\",\n\t\"deepinfra\",\n\t\"io-intelligence\",\n\t\"requesty\",\n\t\"unbound\",\n\t\"roo\",\n\t\"chutes\",\n] as const\n\nexport type DynamicProvider = (typeof dynamicProviders)[number]\n\nexport const isDynamicProvider = (key: string): key is DynamicProvider =>\n\tdynamicProviders.includes(key as DynamicProvider)\n\n/**\n * LocalProvider\n *\n * Local providers require localhost API calls in order to get the model list.\n */\n\nexport const localProviders = [\"ollama\", \"lmstudio\"] as const\n\nexport type LocalProvider = (typeof localProviders)[number]\n\nexport const isLocalProvider = (key: string): key is LocalProvider => localProviders.includes(key as LocalProvider)\n\n/**\n * InternalProvider\n *\n * Internal providers require internal VSCode API calls in order to get the\n * model list.\n */\n\nexport const internalProviders = [\"vscode-lm\"] as const\n\nexport type InternalProvider = (typeof internalProviders)[number]\n\nexport const isInternalProvider = (key: string): key is InternalProvider =>\n\tinternalProviders.includes(key as InternalProvider)\n\n/**\n * CustomProvider\n *\n * Custom providers are completely configurable within Roo Code settings.\n */\n\nexport const customProviders = [\"openai\"] as const\n\nexport type CustomProvider = (typeof customProviders)[number]\n\nexport const isCustomProvider = (key: string): key is CustomProvider => customProviders.includes(key as CustomProvider)\n\n/**\n * FauxProvider\n *\n * Faux providers do not make external inference calls and therefore do not have\n * model lists.\n */\n\nexport const fauxProviders = [\"fake-ai\", \"human-relay\"] as const\n\nexport type FauxProvider = (typeof fauxProviders)[number]\n\nexport const isFauxProvider = (key: string): key is FauxProvider => fauxProviders.includes(key as FauxProvider)\n\n/**\n * ProviderName\n */\n\nexport const providerNames = [\n\t...dynamicProviders,\n\t...localProviders,\n\t...internalProviders,\n\t...customProviders,\n\t...fauxProviders,\n\t\"anthropic\",\n\t\"bedrock\",\n\t\"baseten\",\n\t\"cerebras\",\n\t\"claude-code\",\n\t\"doubao\",\n\t\"deepseek\",\n\t\"featherless\",\n\t\"fireworks\",\n\t\"gemini\",\n\t\"gemini-cli\",\n\t\"groq\",\n\t\"mistral\",\n\t\"moonshot\",\n\t\"minimax\",\n\t\"openai-native\",\n\t\"qwen-code\",\n\t\"roo\",\n\t\"sambanova\",\n\t\"vertex\",\n\t\"xai\",\n\t\"zai\",\n] as const\n\nexport const providerNamesSchema = z.enum(providerNames)\n\nexport type ProviderName = z.infer<typeof providerNamesSchema>\n\nexport const isProviderName = (key: unknown): key is ProviderName =>\n\ttypeof key === \"string\" && providerNames.includes(key as ProviderName)\n\n/**\n * ProviderSettingsEntry\n */\n\nexport const providerSettingsEntrySchema = z.object({\n\tid: z.string(),\n\tname: z.string(),\n\tapiProvider: providerNamesSchema.optional(),\n\tmodelId: z.string().optional(),\n})\n\nexport type ProviderSettingsEntry = z.infer<typeof providerSettingsEntrySchema>\n\n/**\n * ProviderSettings\n */\n\nconst baseProviderSettingsSchema = z.object({\n\tincludeMaxTokens: z.boolean().optional(),\n\tdiffEnabled: z.boolean().optional(),\n\ttodoListEnabled: z.boolean().optional(),\n\tfuzzyMatchThreshold: z.number().optional(),\n\tmodelTemperature: z.number().nullish(),\n\trateLimitSeconds: z.number().optional(),\n\tconsecutiveMistakeLimit: z.number().min(0).optional(),\n\n\t// Model reasoning.\n\tenableReasoningEffort: z.boolean().optional(),\n\treasoningEffort: reasoningEffortSettingSchema.optional(),\n\tmodelMaxTokens: z.number().optional(),\n\tmodelMaxThinkingTokens: z.number().optional(),\n\n\t// Model verbosity.\n\tverbosity: verbosityLevelsSchema.optional(),\n\n\t// Tool protocol override for this profile.\n\ttoolProtocol: z.enum([\"xml\", \"native\"]).optional(),\n})\n\n// Several of the providers share common model config properties.\nconst apiModelIdProviderModelSchema = baseProviderSettingsSchema.extend({\n\tapiModelId: z.string().optional(),\n})\n\nconst anthropicSchema = apiModelIdProviderModelSchema.extend({\n\tapiKey: z.string().optional(),\n\tanthropicBaseUrl: z.string().optional(),\n\tanthropicUseAuthToken: z.boolean().optional(),\n\tanthropicBeta1MContext: z.boolean().optional(), // Enable 'context-1m-2025-08-07' beta for 1M context window.\n})\n\nconst claudeCodeSchema = apiModelIdProviderModelSchema.extend({\n\tclaudeCodePath: z.string().optional(),\n\tclaudeCodeMaxOutputTokens: z.number().int().min(1).max(200000).optional(),\n})\n\nconst openRouterSchema = baseProviderSettingsSchema.extend({\n\topenRouterApiKey: z.string().optional(),\n\topenRouterModelId: z.string().optional(),\n\topenRouterBaseUrl: z.string().optional(),\n\topenRouterSpecificProvider: z.string().optional(),\n\topenRouterUseMiddleOutTransform: z.boolean().optional(),\n})\n\nconst bedrockSchema = apiModelIdProviderModelSchema.extend({\n\tawsAccessKey: z.string().optional(),\n\tawsSecretKey: z.string().optional(),\n\tawsSessionToken: z.string().optional(),\n\tawsRegion: z.string().optional(),\n\tawsUseCrossRegionInference: z.boolean().optional(),\n\tawsUseGlobalInference: z.boolean().optional(), // Enable Global Inference profile routing when supported\n\tawsUsePromptCache: z.boolean().optional(),\n\tawsProfile: z.string().optional(),\n\tawsUseProfile: z.boolean().optional(),\n\tawsApiKey: z.string().optional(),\n\tawsUseApiKey: z.boolean().optional(),\n\tawsCustomArn: z.string().optional(),\n\tawsModelContextWindow: z.number().optional(),\n\tawsBedrockEndpointEnabled: z.boolean().optional(),\n\tawsBedrockEndpoint: z.string().optional(),\n\tawsBedrock1MContext: z.boolean().optional(), // Enable 'context-1m-2025-08-07' beta for 1M context window.\n\tawsBedrockServiceTier: z.enum([\"STANDARD\", \"FLEX\", \"PRIORITY\"]).optional(), // AWS Bedrock service tier selection\n})\n\nconst vertexSchema = apiModelIdProviderModelSchema.extend({\n\tvertexKeyFile: z.string().optional(),\n\tvertexJsonCredentials: z.string().optional(),\n\tvertexProjectId: z.string().optional(),\n\tvertexRegion: z.string().optional(),\n\tenableUrlContext: z.boolean().optional(),\n\tenableGrounding: z.boolean().optional(),\n})\n\nconst openAiSchema = baseProviderSettingsSchema.extend({\n\topenAiBaseUrl: z.string().optional(),\n\topenAiApiKey: z.string().optional(),\n\topenAiLegacyFormat: z.boolean().optional(),\n\topenAiR1FormatEnabled: z.boolean().optional(),\n\topenAiModelId: z.string().optional(),\n\topenAiCustomModelInfo: modelInfoSchema.nullish(),\n\topenAiUseAzure: z.boolean().optional(),\n\tazureApiVersion: z.string().optional(),\n\topenAiStreamingEnabled: z.boolean().optional(),\n\topenAiHostHeader: z.string().optional(), // Keep temporarily for backward compatibility during migration.\n\topenAiHeaders: z.record(z.string(), z.string()).optional(),\n})\n\nconst ollamaSchema = baseProviderSettingsSchema.extend({\n\tollamaModelId: z.string().optional(),\n\tollamaBaseUrl: z.string().optional(),\n\tollamaApiKey: z.string().optional(),\n\tollamaNumCtx: z.number().int().min(128).optional(),\n})\n\nconst vsCodeLmSchema = baseProviderSettingsSchema.extend({\n\tvsCodeLmModelSelector: z\n\t\t.object({\n\t\t\tvendor: z.string().optional(),\n\t\t\tfamily: z.string().optional(),\n\t\t\tversion: z.string().optional(),\n\t\t\tid: z.string().optional(),\n\t\t})\n\t\t.optional(),\n})\n\nconst lmStudioSchema = baseProviderSettingsSchema.extend({\n\tlmStudioModelId: z.string().optional(),\n\tlmStudioBaseUrl: z.string().optional(),\n\tlmStudioDraftModelId: z.string().optional(),\n\tlmStudioSpeculativeDecodingEnabled: z.boolean().optional(),\n})\n\nconst geminiSchema = apiModelIdProviderModelSchema.extend({\n\tgeminiApiKey: z.string().optional(),\n\tgoogleGeminiBaseUrl: z.string().optional(),\n\tenableUrlContext: z.boolean().optional(),\n\tenableGrounding: z.boolean().optional(),\n})\n\nconst geminiCliSchema = apiModelIdProviderModelSchema.extend({\n\tgeminiCliOAuthPath: z.string().optional(),\n\tgeminiCliProjectId: z.string().optional(),\n})\n\nconst openAiNativeSchema = apiModelIdProviderModelSchema.extend({\n\topenAiNativeApiKey: z.string().optional(),\n\topenAiNativeBaseUrl: z.string().optional(),\n\t// OpenAI Responses API service tier for openai-native provider only.\n\t// UI should only expose this when the selected model supports flex/priority.\n\topenAiNativeServiceTier: serviceTierSchema.optional(),\n})\n\nconst mistralSchema = apiModelIdProviderModelSchema.extend({\n\tmistralApiKey: z.string().optional(),\n\tmistralCodestralUrl: z.string().optional(),\n})\n\nconst deepSeekSchema = apiModelIdProviderModelSchema.extend({\n\tdeepSeekBaseUrl: z.string().optional(),\n\tdeepSeekApiKey: z.string().optional(),\n})\n\nconst deepInfraSchema = apiModelIdProviderModelSchema.extend({\n\tdeepInfraBaseUrl: z.string().optional(),\n\tdeepInfraApiKey: z.string().optional(),\n\tdeepInfraModelId: z.string().optional(),\n})\n\nconst doubaoSchema = apiModelIdProviderModelSchema.extend({\n\tdoubaoBaseUrl: z.string().optional(),\n\tdoubaoApiKey: z.string().optional(),\n})\n\nconst moonshotSchema = apiModelIdProviderModelSchema.extend({\n\tmoonshotBaseUrl: z\n\t\t.union([z.literal(\"https://api.moonshot.ai/v1\"), z.literal(\"https://api.moonshot.cn/v1\")])\n\t\t.optional(),\n\tmoonshotApiKey: z.string().optional(),\n})\n\nconst minimaxSchema = apiModelIdProviderModelSchema.extend({\n\tminimaxBaseUrl: z\n\t\t.union([z.literal(\"https://api.minimax.io/v1\"), z.literal(\"https://api.minimaxi.com/v1\")])\n\t\t.optional(),\n\tminimaxApiKey: z.string().optional(),\n})\n\nconst unboundSchema = baseProviderSettingsSchema.extend({\n\tunboundApiKey: z.string().optional(),\n\tunboundModelId: z.string().optional(),\n})\n\nconst requestySchema = baseProviderSettingsSchema.extend({\n\trequestyBaseUrl: z.string().optional(),\n\trequestyApiKey: z.string().optional(),\n\trequestyModelId: z.string().optional(),\n})\n\nconst humanRelaySchema = baseProviderSettingsSchema\n\nconst fakeAiSchema = baseProviderSettingsSchema.extend({\n\tfakeAi: z.unknown().optional(),\n})\n\nconst xaiSchema = apiModelIdProviderModelSchema.extend({\n\txaiApiKey: z.string().optional(),\n})\n\nconst groqSchema = apiModelIdProviderModelSchema.extend({\n\tgroqApiKey: z.string().optional(),\n})\n\nconst huggingFaceSchema = baseProviderSettingsSchema.extend({\n\thuggingFaceApiKey: z.string().optional(),\n\thuggingFaceModelId: z.string().optional(),\n\thuggingFaceInferenceProvider: z.string().optional(),\n})\n\nconst chutesSchema = apiModelIdProviderModelSchema.extend({\n\tchutesApiKey: z.string().optional(),\n})\n\nconst litellmSchema = baseProviderSettingsSchema.extend({\n\tlitellmBaseUrl: z.string().optional(),\n\tlitellmApiKey: z.string().optional(),\n\tlitellmModelId: z.string().optional(),\n\tlitellmUsePromptCache: z.boolean().optional(),\n})\n\nconst cerebrasSchema = apiModelIdProviderModelSchema.extend({\n\tcerebrasApiKey: z.string().optional(),\n})\n\nconst sambaNovaSchema = apiModelIdProviderModelSchema.extend({\n\tsambaNovaApiKey: z.string().optional(),\n})\n\nexport const zaiApiLineSchema = z.enum([\"international_coding\", \"china_coding\", \"international_api\", \"china_api\"])\n\nexport type ZaiApiLine = z.infer<typeof zaiApiLineSchema>\n\nconst zaiSchema = apiModelIdProviderModelSchema.extend({\n\tzaiApiKey: z.string().optional(),\n\tzaiApiLine: zaiApiLineSchema.optional(),\n})\n\nconst fireworksSchema = apiModelIdProviderModelSchema.extend({\n\tfireworksApiKey: z.string().optional(),\n})\n\nconst featherlessSchema = apiModelIdProviderModelSchema.extend({\n\tfeatherlessApiKey: z.string().optional(),\n})\n\nconst ioIntelligenceSchema = apiModelIdProviderModelSchema.extend({\n\tioIntelligenceModelId: z.string().optional(),\n\tioIntelligenceApiKey: z.string().optional(),\n})\n\nconst qwenCodeSchema = apiModelIdProviderModelSchema.extend({\n\tqwenCodeOauthPath: z.string().optional(),\n})\n\nconst rooSchema = apiModelIdProviderModelSchema.extend({\n\t// No additional fields needed - uses cloud authentication.\n})\n\nconst vercelAiGatewaySchema = baseProviderSettingsSchema.extend({\n\tvercelAiGatewayApiKey: z.string().optional(),\n\tvercelAiGatewayModelId: z.string().optional(),\n})\n\nconst basetenSchema = apiModelIdProviderModelSchema.extend({\n\tbasetenApiKey: z.string().optional(),\n})\n\nconst defaultSchema = z.object({\n\tapiProvider: z.undefined(),\n})\n\nexport const providerSettingsSchemaDiscriminated = z.discriminatedUnion(\"apiProvider\", [\n\tanthropicSchema.merge(z.object({ apiProvider: z.literal(\"anthropic\") })),\n\tclaudeCodeSchema.merge(z.object({ apiProvider: z.literal(\"claude-code\") })),\n\topenRouterSchema.merge(z.object({ apiProvider: z.literal(\"openrouter\") })),\n\tbedrockSchema.merge(z.object({ apiProvider: z.literal(\"bedrock\") })),\n\tvertexSchema.merge(z.object({ apiProvider: z.literal(\"vertex\") })),\n\topenAiSchema.merge(z.object({ apiProvider: z.literal(\"openai\") })),\n\tollamaSchema.merge(z.object({ apiProvider: z.literal(\"ollama\") })),\n\tvsCodeLmSchema.merge(z.object({ apiProvider: z.literal(\"vscode-lm\") })),\n\tlmStudioSchema.merge(z.object({ apiProvider: z.literal(\"lmstudio\") })),\n\tgeminiSchema.merge(z.object({ apiProvider: z.literal(\"gemini\") })),\n\tgeminiCliSchema.merge(z.object({ apiProvider: z.literal(\"gemini-cli\") })),\n\topenAiNativeSchema.merge(z.object({ apiProvider: z.literal(\"openai-native\") })),\n\tmistralSchema.merge(z.object({ apiProvider: z.literal(\"mistral\") })),\n\tdeepSeekSchema.merge(z.object({ apiProvider: z.literal(\"deepseek\") })),\n\tdeepInfraSchema.merge(z.object({ apiProvider: z.literal(\"deepinfra\") })),\n\tdoubaoSchema.merge(z.object({ apiProvider: z.literal(\"doubao\") })),\n\tmoonshotSchema.merge(z.object({ apiProvider: z.literal(\"moonshot\") })),\n\tminimaxSchema.merge(z.object({ apiProvider: z.literal(\"minimax\") })),\n\tunboundSchema.merge(z.object({ apiProvider: z.literal(\"unbound\") })),\n\trequestySchema.merge(z.object({ apiProvider: z.literal(\"requesty\") })),\n\thumanRelaySchema.merge(z.object({ apiProvider: z.literal(\"human-relay\") })),\n\tfakeAiSchema.merge(z.object({ apiProvider: z.literal(\"fake-ai\") })),\n\txaiSchema.merge(z.object({ apiProvider: z.literal(\"xai\") })),\n\tgroqSchema.merge(z.object({ apiProvider: z.literal(\"groq\") })),\n\tbasetenSchema.merge(z.object({ apiProvider: z.literal(\"baseten\") })),\n\thuggingFaceSchema.merge(z.object({ apiProvider: z.literal(\"huggingface\") })),\n\tchutesSchema.merge(z.object({ apiProvider: z.literal(\"chutes\") })),\n\tlitellmSchema.merge(z.object({ apiProvider: z.literal(\"litellm\") })),\n\tcerebrasSchema.merge(z.object({ apiProvider: z.literal(\"cerebras\") })),\n\tsambaNovaSchema.merge(z.object({ apiProvider: z.literal(\"sambanova\") })),\n\tzaiSchema.merge(z.object({ apiProvider: z.literal(\"zai\") })),\n\tfireworksSchema.merge(z.object({ apiProvider: z.literal(\"fireworks\") })),\n\tfeatherlessSchema.merge(z.object({ apiProvider: z.literal(\"featherless\") })),\n\tioIntelligenceSchema.merge(z.object({ apiProvider: z.literal(\"io-intelligence\") })),\n\tqwenCodeSchema.merge(z.object({ apiProvider: z.literal(\"qwen-code\") })),\n\trooSchema.merge(z.object({ apiProvider: z.literal(\"roo\") })),\n\tvercelAiGatewaySchema.merge(z.object({ apiProvider: z.literal(\"vercel-ai-gateway\") })),\n\tdefaultSchema,\n])\n\nexport const providerSettingsSchema = z.object({\n\tapiProvider: providerNamesSchema.optional(),\n\t...anthropicSchema.shape,\n\t...claudeCodeSchema.shape,\n\t...openRouterSchema.shape,\n\t...bedrockSchema.shape,\n\t...vertexSchema.shape,\n\t...openAiSchema.shape,\n\t...ollamaSchema.shape,\n\t...vsCodeLmSchema.shape,\n\t...lmStudioSchema.shape,\n\t...geminiSchema.shape,\n\t...geminiCliSchema.shape,\n\t...openAiNativeSchema.shape,\n\t...mistralSchema.shape,\n\t...deepSeekSchema.shape,\n\t...deepInfraSchema.shape,\n\t...doubaoSchema.shape,\n\t...moonshotSchema.shape,\n\t...minimaxSchema.shape,\n\t...unboundSchema.shape,\n\t...requestySchema.shape,\n\t...humanRelaySchema.shape,\n\t...fakeAiSchema.shape,\n\t...xaiSchema.shape,\n\t...groqSchema.shape,\n\t...basetenSchema.shape,\n\t...huggingFaceSchema.shape,\n\t...chutesSchema.shape,\n\t...litellmSchema.shape,\n\t...cerebrasSchema.shape,\n\t...sambaNovaSchema.shape,\n\t...zaiSchema.shape,\n\t...fireworksSchema.shape,\n\t...featherlessSchema.shape,\n\t...ioIntelligenceSchema.shape,\n\t...qwenCodeSchema.shape,\n\t...rooSchema.shape,\n\t...vercelAiGatewaySchema.shape,\n\t...codebaseIndexProviderSchema.shape,\n})\n\nexport type ProviderSettings = z.infer<typeof providerSettingsSchema>\n\nexport const providerSettingsWithIdSchema = providerSettingsSchema.extend({ id: z.string().optional() })\n\nexport const discriminatedProviderSettingsWithIdSchema = providerSettingsSchemaDiscriminated.and(\n\tz.object({ id: z.string().optional() }),\n)\n\nexport type ProviderSettingsWithId = z.infer<typeof providerSettingsWithIdSchema>\n\nexport const PROVIDER_SETTINGS_KEYS = providerSettingsSchema.keyof().options\n\n/**\n * ModelIdKey\n */\n\nexport const modelIdKeys = [\n\t\"apiModelId\",\n\t\"openRouterModelId\",\n\t\"openAiModelId\",\n\t\"ollamaModelId\",\n\t\"lmStudioModelId\",\n\t\"lmStudioDraftModelId\",\n\t\"unboundModelId\",\n\t\"requestyModelId\",\n\t\"litellmModelId\",\n\t\"huggingFaceModelId\",\n\t\"ioIntelligenceModelId\",\n\t\"vercelAiGatewayModelId\",\n\t\"deepInfraModelId\",\n] as const satisfies readonly (keyof ProviderSettings)[]\n\nexport type ModelIdKey = (typeof modelIdKeys)[number]\n\nexport const getModelId = (settings: ProviderSettings): string | undefined => {\n\tconst modelIdKey = modelIdKeys.find((key) => settings[key])\n\treturn modelIdKey ? settings[modelIdKey] : undefined\n}\n\n/**\n * TypicalProvider\n */\n\nexport type TypicalProvider = Exclude<ProviderName, InternalProvider | CustomProvider | FauxProvider>\n\nexport const isTypicalProvider = (key: unknown): key is TypicalProvider =>\n\tisProviderName(key) && !isInternalProvider(key) && !isCustomProvider(key) && !isFauxProvider(key)\n\nexport const modelIdKeysByProvider: Record<TypicalProvider, ModelIdKey> = {\n\tanthropic: \"apiModelId\",\n\t\"claude-code\": \"apiModelId\",\n\topenrouter: \"openRouterModelId\",\n\tbedrock: \"apiModelId\",\n\tvertex: \"apiModelId\",\n\t\"openai-native\": \"openAiModelId\",\n\tollama: \"ollamaModelId\",\n\tlmstudio: \"lmStudioModelId\",\n\tgemini: \"apiModelId\",\n\t\"gemini-cli\": \"apiModelId\",\n\tmistral: \"apiModelId\",\n\tmoonshot: \"apiModelId\",\n\tminimax: \"apiModelId\",\n\tdeepseek: \"apiModelId\",\n\tdeepinfra: \"deepInfraModelId\",\n\tdoubao: \"apiModelId\",\n\t\"qwen-code\": \"apiModelId\",\n\tunbound: \"unboundModelId\",\n\trequesty: \"requestyModelId\",\n\txai: \"apiModelId\",\n\tgroq: \"apiModelId\",\n\tbaseten: \"apiModelId\",\n\tchutes: \"apiModelId\",\n\tlitellm: \"litellmModelId\",\n\thuggingface: \"huggingFaceModelId\",\n\tcerebras: \"apiModelId\",\n\tsambanova: \"apiModelId\",\n\tzai: \"apiModelId\",\n\tfireworks: \"apiModelId\",\n\tfeatherless: \"apiModelId\",\n\t\"io-intelligence\": \"ioIntelligenceModelId\",\n\troo: \"apiModelId\",\n\t\"vercel-ai-gateway\": \"vercelAiGatewayModelId\",\n}\n\n/**\n * ANTHROPIC_STYLE_PROVIDERS\n */\n\n// Providers that use Anthropic-style API protocol.\nexport const ANTHROPIC_STYLE_PROVIDERS: ProviderName[] = [\"anthropic\", \"claude-code\", \"bedrock\", \"minimax\"]\n\nexport const getApiProtocol = (provider: ProviderName | undefined, modelId?: string): \"anthropic\" | \"openai\" => {\n\tif (provider && ANTHROPIC_STYLE_PROVIDERS.includes(provider)) {\n\t\treturn \"anthropic\"\n\t}\n\n\tif (provider && provider === \"vertex\" && modelId && modelId.toLowerCase().includes(\"claude\")) {\n\t\treturn \"anthropic\"\n\t}\n\n\t// Vercel AI Gateway uses anthropic protocol for anthropic models.\n\tif (\n\t\tprovider &&\n\t\t[\"vercel-ai-gateway\", \"roo\"].includes(provider) &&\n\t\tmodelId &&\n\t\tmodelId.toLowerCase().startsWith(\"anthropic/\")\n\t) {\n\t\treturn \"anthropic\"\n\t}\n\n\treturn \"openai\"\n}\n\n/**\n * MODELS_BY_PROVIDER\n */\n\nexport const MODELS_BY_PROVIDER: Record<\n\tExclude<ProviderName, \"fake-ai\" | \"human-relay\" | \"gemini-cli\" | \"openai\">,\n\t{ id: ProviderName; label: string; models: string[] }\n> = {\n\tanthropic: {\n\t\tid: \"anthropic\",\n\t\tlabel: \"Anthropic\",\n\t\tmodels: Object.keys(anthropicModels),\n\t},\n\tbedrock: {\n\t\tid: \"bedrock\",\n\t\tlabel: \"Amazon Bedrock\",\n\t\tmodels: Object.keys(bedrockModels),\n\t},\n\tcerebras: {\n\t\tid: \"cerebras\",\n\t\tlabel: \"Cerebras\",\n\t\tmodels: Object.keys(cerebrasModels),\n\t},\n\t\"claude-code\": { id: \"claude-code\", label: \"Claude Code\", models: Object.keys(claudeCodeModels) },\n\tdeepseek: {\n\t\tid: \"deepseek\",\n\t\tlabel: \"DeepSeek\",\n\t\tmodels: Object.keys(deepSeekModels),\n\t},\n\tdoubao: { id: \"doubao\", label: \"Doubao\", models: Object.keys(doubaoModels) },\n\tfeatherless: {\n\t\tid: \"featherless\",\n\t\tlabel: \"Featherless\",\n\t\tmodels: Object.keys(featherlessModels),\n\t},\n\tfireworks: {\n\t\tid: \"fireworks\",\n\t\tlabel: \"Fireworks\",\n\t\tmodels: Object.keys(fireworksModels),\n\t},\n\tgemini: {\n\t\tid: \"gemini\",\n\t\tlabel: \"Google Gemini\",\n\t\tmodels: Object.keys(geminiModels),\n\t},\n\tgroq: { id: \"groq\", label: \"Groq\", models: Object.keys(groqModels) },\n\t\"io-intelligence\": {\n\t\tid: \"io-intelligence\",\n\t\tlabel: \"IO Intelligence\",\n\t\tmodels: Object.keys(ioIntelligenceModels),\n\t},\n\tmistral: {\n\t\tid: \"mistral\",\n\t\tlabel: \"Mistral\",\n\t\tmodels: Object.keys(mistralModels),\n\t},\n\tmoonshot: {\n\t\tid: \"moonshot\",\n\t\tlabel: \"Moonshot\",\n\t\tmodels: Object.keys(moonshotModels),\n\t},\n\tminimax: {\n\t\tid: \"minimax\",\n\t\tlabel: \"MiniMax\",\n\t\tmodels: Object.keys(minimaxModels),\n\t},\n\t\"openai-native\": {\n\t\tid: \"openai-native\",\n\t\tlabel: \"OpenAI\",\n\t\tmodels: Object.keys(openAiNativeModels),\n\t},\n\t\"qwen-code\": { id: \"qwen-code\", label: \"Qwen Code\", models: Object.keys(qwenCodeModels) },\n\troo: { id: \"roo\", label: \"Roo Code Cloud\", models: [] },\n\tsambanova: {\n\t\tid: \"sambanova\",\n\t\tlabel: \"SambaNova\",\n\t\tmodels: Object.keys(sambaNovaModels),\n\t},\n\tvertex: {\n\t\tid: \"vertex\",\n\t\tlabel: \"GCP Vertex AI\",\n\t\tmodels: Object.keys(vertexModels),\n\t},\n\t\"vscode-lm\": {\n\t\tid: \"vscode-lm\",\n\t\tlabel: \"VS Code LM API\",\n\t\tmodels: Object.keys(vscodeLlmModels),\n\t},\n\txai: { id: \"xai\", label: \"xAI (Grok)\", models: Object.keys(xaiModels) },\n\tzai: { id: \"zai\", label: \"Z.ai\", models: Object.keys(internationalZAiModels) },\n\tbaseten: { id: \"baseten\", label: \"Baseten\", models: Object.keys(basetenModels) },\n\n\t// Dynamic providers; models pulled from remote APIs.\n\thuggingface: { id: \"huggingface\", label: \"Hugging Face\", models: [] },\n\tlitellm: { id: \"litellm\", label: \"LiteLLM\", models: [] },\n\topenrouter: { id: \"openrouter\", label: \"OpenRouter\", models: [] },\n\trequesty: { id: \"requesty\", label: \"Requesty\", models: [] },\n\tunbound: { id: \"unbound\", label: \"Unbound\", models: [] },\n\tdeepinfra: { id: \"deepinfra\", label: \"DeepInfra\", models: [] },\n\t\"vercel-ai-gateway\": { id: \"vercel-ai-gateway\", label: \"Vercel AI Gateway\", models: [] },\n\tchutes: { id: \"chutes\", label: \"Chutes AI\", models: [] },\n\n\t// Local providers; models discovered from localhost endpoints.\n\tlmstudio: { id: \"lmstudio\", label: \"LM Studio\", models: [] },\n\tollama: { id: \"ollama\", label: \"Ollama\", models: [] },\n}\n","import { z } from \"zod\"\n\n/**\n * ReasoningEffort\n */\n\nexport const reasoningEfforts = [\"low\", \"medium\", \"high\"] as const\n\nexport const reasoningEffortsSchema = z.enum(reasoningEfforts)\n\nexport type ReasoningEffort = z.infer<typeof reasoningEffortsSchema>\n\n/**\n * ReasoningEffortWithMinimal\n */\n\nexport const reasoningEffortWithMinimalSchema = z.union([reasoningEffortsSchema, z.literal(\"minimal\")])\n\nexport type ReasoningEffortWithMinimal = z.infer<typeof reasoningEffortWithMinimalSchema>\n\n/**\n * Extended Reasoning Effort (includes \"none\" and \"minimal\")\n * Note: \"disable\" is a UI/control value, not a value sent as effort\n */\nexport const reasoningEffortsExtended = [\"none\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\"] as const\n\nexport const reasoningEffortExtendedSchema = z.enum(reasoningEffortsExtended)\n\nexport type ReasoningEffortExtended = z.infer<typeof reasoningEffortExtendedSchema>\n\n/**\n * Reasoning Effort user setting (includes \"disable\")\n */\nexport const reasoningEffortSettingValues = [\"disable\", \"none\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\"] as const\nexport const reasoningEffortSettingSchema = z.enum(reasoningEffortSettingValues)\n\n/**\n * Verbosity\n */\n\nexport const verbosityLevels = [\"low\", \"medium\", \"high\"] as const\n\nexport const verbosityLevelsSchema = z.enum(verbosityLevels)\n\nexport type VerbosityLevel = z.infer<typeof verbosityLevelsSchema>\n\n/**\n * Service tiers (OpenAI Responses API)\n */\nexport const serviceTiers = [\"default\", \"flex\", \"priority\"] as const\nexport const serviceTierSchema = z.enum(serviceTiers)\nexport type ServiceTier = z.infer<typeof serviceTierSchema>\n\n/**\n * ModelParameter\n */\n\nexport const modelParameters = [\"max_tokens\", \"temperature\", \"reasoning\", \"include_reasoning\"] as const\n\nexport const modelParametersSchema = z.enum(modelParameters)\n\nexport type ModelParameter = z.infer<typeof modelParametersSchema>\n\nexport const isModelParameter = (value: string): value is ModelParameter =>\n\tmodelParameters.includes(value as ModelParameter)\n\n/**\n * ModelInfo\n */\n\nexport const modelInfoSchema = z.object({\n\tmaxTokens: z.number().nullish(),\n\tmaxThinkingTokens: z.number().nullish(),\n\tcontextWindow: z.number(),\n\tsupportsImages: z.boolean().optional(),\n\tsupportsPromptCache: z.boolean(),\n\t// Optional default prompt cache retention policy for providers that support it.\n\t// When set to \"24h\", extended prompt caching will be requested; when omitted\n\t// or set to \"in_memory\", the default in‑memory cache is used.\n\tpromptCacheRetention: z.enum([\"in_memory\", \"24h\"]).optional(),\n\t// Capability flag to indicate whether the model supports an output verbosity parameter\n\tsupportsVerbosity: z.boolean().optional(),\n\tsupportsReasoningBudget: z.boolean().optional(),\n\t// Capability flag to indicate whether the model supports simple on/off binary reasoning\n\tsupportsReasoningBinary: z.boolean().optional(),\n\t// Capability flag to indicate whether the model supports temperature parameter\n\tsupportsTemperature: z.boolean().optional(),\n\tdefaultTemperature: z.number().optional(),\n\trequiredReasoningBudget: z.boolean().optional(),\n\tsupportsReasoningEffort: z\n\t\t.union([z.boolean(), z.array(z.enum([\"disable\", \"none\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\"]))])\n\t\t.optional(),\n\trequiredReasoningEffort: z.boolean().optional(),\n\tpreserveReasoning: z.boolean().optional(),\n\tsupportedParameters: z.array(modelParametersSchema).optional(),\n\tinputPrice: z.number().optional(),\n\toutputPrice: z.number().optional(),\n\tcacheWritesPrice: z.number().optional(),\n\tcacheReadsPrice: z.number().optional(),\n\tdescription: z.string().optional(),\n\t// Default effort value for models that support reasoning effort\n\treasoningEffort: reasoningEffortExtendedSchema.optional(),\n\tminTokensPerCachePoint: z.number().optional(),\n\tmaxCachePoints: z.number().optional(),\n\tcachableFields: z.array(z.string()).optional(),\n\t// Flag to indicate if the model is deprecated and should not be used\n\tdeprecated: z.boolean().optional(),\n\t// Flag to indicate if the model should hide vendor/company identity in responses\n\tisStealthModel: z.boolean().optional(),\n\t// Flag to indicate if the model is free (no cost)\n\tisFree: z.boolean().optional(),\n\t// Flag to indicate if the model supports native tool calling (OpenAI-style function calling)\n\tsupportsNativeTools: z.boolean().optional(),\n\t// Default tool protocol preferred by this model (if not specified, falls back to capability/provider defaults)\n\tdefaultToolProtocol: z.enum([\"xml\", \"native\"]).optional(),\n\t// Exclude specific native tools from being available (only applies to native protocol)\n\t// These tools will be removed from the set of tools available to the model\n\texcludedTools: z.array(z.string()).optional(),\n\t// Include specific native tools (only applies to native protocol)\n\t// These tools will be added if they belong to an allowed group in the current mode\n\t// Cannot force-add tools from groups the mode doesn't allow\n\tincludedTools: z.array(z.string()).optional(),\n\t/**\n\t * Service tiers with pricing information.\n\t * Each tier can have a name (for OpenAI service tiers) and pricing overrides.\n\t * The top-level input/output/cache* fields represent the default/standard tier.\n\t */\n\ttiers: z\n\t\t.array(\n\t\t\tz.object({\n\t\t\t\tname: serviceTierSchema.optional(), // Service tier name (flex, priority, etc.)\n\t\t\t\tcontextWindow: z.number(),\n\t\t\t\tinputPrice: z.number().optional(),\n\t\t\t\toutputPrice: z.number().optional(),\n\t\t\t\tcacheWritesPrice: z.number().optional(),\n\t\t\t\tcacheReadsPrice: z.number().optional(),\n\t\t\t}),\n\t\t)\n\t\t.optional(),\n})\n\nexport type ModelInfo = z.infer<typeof modelInfoSchema>\n","import { z } from \"zod\"\n\n/**\n * Codebase Index Constants\n */\nexport const CODEBASE_INDEX_DEFAULTS = {\n\tMIN_SEARCH_RESULTS: 10,\n\tMAX_SEARCH_RESULTS: 200,\n\tDEFAULT_SEARCH_RESULTS: 50,\n\tSEARCH_RESULTS_STEP: 10,\n\tMIN_SEARCH_SCORE: 0,\n\tMAX_SEARCH_SCORE: 1,\n\tDEFAULT_SEARCH_MIN_SCORE: 0.4,\n\tSEARCH_SCORE_STEP: 0.05,\n} as const\n\n/**\n * CodebaseIndexConfig\n */\n\nexport const codebaseIndexConfigSchema = z.object({\n\tcodebaseIndexEnabled: z.boolean().optional(),\n\tcodebaseIndexQdrantUrl: z.string().optional(),\n\tcodebaseIndexEmbedderProvider: z\n\t\t.enum([\n\t\t\t\"openai\",\n\t\t\t\"ollama\",\n\t\t\t\"openai-compatible\",\n\t\t\t\"gemini\",\n\t\t\t\"mistral\",\n\t\t\t\"vercel-ai-gateway\",\n\t\t\t\"bedrock\",\n\t\t\t\"openrouter\",\n\t\t])\n\t\t.optional(),\n\tcodebaseIndexEmbedderBaseUrl: z.string().optional(),\n\tcodebaseIndexEmbedderModelId: z.string().optional(),\n\tcodebaseIndexEmbedderModelDimension: z.number().optional(),\n\tcodebaseIndexSearchMinScore: z.number().min(0).max(1).optional(),\n\tcodebaseIndexSearchMaxResults: z\n\t\t.number()\n\t\t.min(CODEBASE_INDEX_DEFAULTS.MIN_SEARCH_RESULTS)\n\t\t.max(CODEBASE_INDEX_DEFAULTS.MAX_SEARCH_RESULTS)\n\t\t.optional(),\n\t// OpenAI Compatible specific fields\n\tcodebaseIndexOpenAiCompatibleBaseUrl: z.string().optional(),\n\tcodebaseIndexOpenAiCompatibleModelDimension: z.number().optional(),\n\t// Bedrock specific fields\n\tcodebaseIndexBedrockRegion: z.string().optional(),\n\tcodebaseIndexBedrockProfile: z.string().optional(),\n\t// OpenRouter specific fields\n\tcodebaseIndexOpenRouterSpecificProvider: z.string().optional(),\n})\n\nexport type CodebaseIndexConfig = z.infer<typeof codebaseIndexConfigSchema>\n\n/**\n * CodebaseIndexModels\n */\n\nexport const codebaseIndexModelsSchema = z.object({\n\topenai: z.record(z.string(), z.object({ dimension: z.number() })).optional(),\n\tollama: z.record(z.string(), z.object({ dimension: z.number() })).optional(),\n\t\"openai-compatible\": z.record(z.string(), z.object({ dimension: z.number() })).optional(),\n\tgemini: z.record(z.string(), z.object({ dimension: z.number() })).optional(),\n\tmistral: z.record(z.string(), z.object({ dimension: z.number() })).optional(),\n\t\"vercel-ai-gateway\": z.record(z.string(), z.object({ dimension: z.number() })).optional(),\n\topenrouter: z.record(z.string(), z.object({ dimension: z.number() })).optional(),\n\tbedrock: z.record(z.string(), z.object({ dimension: z.number() })).optional(),\n})\n\nexport type CodebaseIndexModels = z.infer<typeof codebaseIndexModelsSchema>\n\n/**\n * CdebaseIndexProvider\n */\n\nexport const codebaseIndexProviderSchema = z.object({\n\tcodeIndexOpenAiKey: z.string().optional(),\n\tcodeIndexQdrantApiKey: z.string().optional(),\n\tcodebaseIndexOpenAiCompatibleBaseUrl: z.string().optional(),\n\tcodebaseIndexOpenAiCompatibleApiKey: z.string().optional(),\n\tcodebaseIndexOpenAiCompatibleModelDimension: z.number().optional(),\n\tcodebaseIndexGeminiApiKey: z.string().optional(),\n\tcodebaseIndexMistralApiKey: z.string().optional(),\n\tcodebaseIndexVercelAiGatewayApiKey: z.string().optional(),\n\tcodebaseIndexOpenRouterApiKey: z.string().optional(),\n})\n\nexport type CodebaseIndexProvider = z.infer<typeof codebaseIndexProviderSchema>\n","import type { ModelInfo } from \"../model.js\"\n\n// https://docs.anthropic.com/en/docs/about-claude/models\n\nexport type AnthropicModelId = keyof typeof anthropicModels\nexport const anthropicDefaultModelId: AnthropicModelId = \"claude-sonnet-4-5\"\n\nexport const anthropicModels = {\n\t\"claude-sonnet-4-5\": {\n\t\tmaxTokens: 64_000, // Overridden to 8k if `enableReasoningEffort` is false.\n\t\tcontextWindow: 200_000, // Default 200K, extendable to 1M with beta flag 'context-1m-2025-08-07'\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0, // $3 per million input tokens (≤200K context)\n\t\toutputPrice: 15.0, // $15 per million output tokens (≤200K context)\n\t\tcacheWritesPrice: 3.75, // $3.75 per million tokens\n\t\tcacheReadsPrice: 0.3, // $0.30 per million tokens\n\t\tsupportsReasoningBudget: true,\n\t\t// Tiered pricing for extended context (requires beta flag 'context-1m-2025-08-07')\n\t\ttiers: [\n\t\t\t{\n\t\t\t\tcontextWindow: 1_000_000, // 1M tokens with beta flag\n\t\t\t\tinputPrice: 6.0, // $6 per million input tokens (>200K context)\n\t\t\t\toutputPrice: 22.5, // $22.50 per million output tokens (>200K context)\n\t\t\t\tcacheWritesPrice: 7.5, // $7.50 per million tokens (>200K context)\n\t\t\t\tcacheReadsPrice: 0.6, // $0.60 per million tokens (>200K context)\n\t\t\t},\n\t\t],\n\t},\n\t\"claude-sonnet-4-20250514\": {\n\t\tmaxTokens: 64_000, // Overridden to 8k if `enableReasoningEffort` is false.\n\t\tcontextWindow: 200_000, // Default 200K, extendable to 1M with beta flag 'context-1m-2025-08-07'\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0, // $3 per million input tokens (≤200K context)\n\t\toutputPrice: 15.0, // $15 per million output tokens (≤200K context)\n\t\tcacheWritesPrice: 3.75, // $3.75 per million tokens\n\t\tcacheReadsPrice: 0.3, // $0.30 per million tokens\n\t\tsupportsReasoningBudget: true,\n\t\t// Tiered pricing for extended context (requires beta flag 'context-1m-2025-08-07')\n\t\ttiers: [\n\t\t\t{\n\t\t\t\tcontextWindow: 1_000_000, // 1M tokens with beta flag\n\t\t\t\tinputPrice: 6.0, // $6 per million input tokens (>200K context)\n\t\t\t\toutputPrice: 22.5, // $22.50 per million output tokens (>200K context)\n\t\t\t\tcacheWritesPrice: 7.5, // $7.50 per million tokens (>200K context)\n\t\t\t\tcacheReadsPrice: 0.6, // $0.60 per million tokens (>200K context)\n\t\t\t},\n\t\t],\n\t},\n\t\"claude-opus-4-5-20251101\": {\n\t\tmaxTokens: 32_000, // Overridden to 8k if `enableReasoningEffort` is false.\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 5.0, // $5 per million input tokens\n\t\toutputPrice: 25.0, // $25 per million output tokens\n\t\tcacheWritesPrice: 6.25, // $6.25 per million tokens\n\t\tcacheReadsPrice: 0.5, // $0.50 per million tokens\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"claude-opus-4-1-20250805\": {\n\t\tmaxTokens: 32_000, // Overridden to 8k if `enableReasoningEffort` is false.\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 15.0, // $15 per million input tokens\n\t\toutputPrice: 75.0, // $75 per million output tokens\n\t\tcacheWritesPrice: 18.75, // $18.75 per million tokens\n\t\tcacheReadsPrice: 1.5, // $1.50 per million tokens\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"claude-opus-4-20250514\": {\n\t\tmaxTokens: 32_000, // Overridden to 8k if `enableReasoningEffort` is false.\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 15.0, // $15 per million input tokens\n\t\toutputPrice: 75.0, // $75 per million output tokens\n\t\tcacheWritesPrice: 18.75, // $18.75 per million tokens\n\t\tcacheReadsPrice: 1.5, // $1.50 per million tokens\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"claude-3-7-sonnet-20250219:thinking\": {\n\t\tmaxTokens: 128_000, // Unlocked by passing `beta` flag to the model. Otherwise, it's 64k.\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0, // $3 per million input tokens\n\t\toutputPrice: 15.0, // $15 per million output tokens\n\t\tcacheWritesPrice: 3.75, // $3.75 per million tokens\n\t\tcacheReadsPrice: 0.3, // $0.30 per million tokens\n\t\tsupportsReasoningBudget: true,\n\t\trequiredReasoningBudget: true,\n\t},\n\t\"claude-3-7-sonnet-20250219\": {\n\t\tmaxTokens: 8192, // Since we already have a `:thinking` virtual model we aren't setting `supportsReasoningBudget: true` here.\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0, // $3 per million input tokens\n\t\toutputPrice: 15.0, // $15 per million output tokens\n\t\tcacheWritesPrice: 3.75, // $3.75 per million tokens\n\t\tcacheReadsPrice: 0.3, // $0.30 per million tokens\n\t},\n\t\"claude-3-5-sonnet-20241022\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0, // $3 per million input tokens\n\t\toutputPrice: 15.0, // $15 per million output tokens\n\t\tcacheWritesPrice: 3.75, // $3.75 per million tokens\n\t\tcacheReadsPrice: 0.3, // $0.30 per million tokens\n\t},\n\t\"claude-3-5-haiku-20241022\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 1.0,\n\t\toutputPrice: 5.0,\n\t\tcacheWritesPrice: 1.25,\n\t\tcacheReadsPrice: 0.1,\n\t},\n\t\"claude-3-opus-20240229\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 15.0,\n\t\toutputPrice: 75.0,\n\t\tcacheWritesPrice: 18.75,\n\t\tcacheReadsPrice: 1.5,\n\t},\n\t\"claude-3-haiku-20240307\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.25,\n\t\toutputPrice: 1.25,\n\t\tcacheWritesPrice: 0.3,\n\t\tcacheReadsPrice: 0.03,\n\t},\n\t\"claude-haiku-4-5-20251001\": {\n\t\tmaxTokens: 64_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 1.0,\n\t\toutputPrice: 5.0,\n\t\tcacheWritesPrice: 1.25,\n\t\tcacheReadsPrice: 0.1,\n\t\tsupportsReasoningBudget: true,\n\t\tdescription:\n\t\t\t\"Claude Haiku 4.5 delivers near-frontier intelligence at lightning speeds with extended thinking, vision, and multilingual support.\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const ANTHROPIC_DEFAULT_MAX_TOKENS = 8192\n","import type { ModelInfo } from \"../model.js\"\n\n// Baseten\n// https://baseten.co/products/model-apis/\n\nexport const basetenModels = {\n\t\"moonshotai/Kimi-K2-Thinking\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 262_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 2.5,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"Kimi K2 Thinking - A model with enhanced reasoning capabilities from Kimi K2\",\n\t},\n\t\"zai-org/GLM-4.6\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 2.2,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"Frontier open model with advanced agentic, reasoning and coding capabilities\",\n\t},\n\t\"deepseek-ai/DeepSeek-R1\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 163_840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 2.55,\n\t\toutputPrice: 5.95,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"DeepSeek's first-generation reasoning model\",\n\t},\n\t\"deepseek-ai/DeepSeek-R1-0528\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 163_840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 2.55,\n\t\toutputPrice: 5.95,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"The latest revision of DeepSeek's first-generation reasoning model\",\n\t},\n\t\"deepseek-ai/DeepSeek-V3-0324\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 163_840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.77,\n\t\toutputPrice: 0.77,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"Fast general-purpose LLM with enhanced reasoning capabilities\",\n\t},\n\t\"deepseek-ai/DeepSeek-V3.1\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 163_840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.5,\n\t\toutputPrice: 1.5,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription:\n\t\t\t\"Extremely capable general-purpose LLM with hybrid reasoning capabilities and advanced tool calling\",\n\t},\n\t\"deepseek-ai/DeepSeek-V3.2\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 163_840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 0.45,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription:\n\t\t\t\"DeepSeek's hybrid reasoning model with efficient long context scaling with GPT-5 level performance\",\n\t},\n\t\"Qwen/Qwen3-235B-A22B-Instruct-2507\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 262_144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.22,\n\t\toutputPrice: 0.8,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"Mixture-of-experts LLM with math and reasoning capabilities\",\n\t},\n\t\"Qwen/Qwen3-Coder-480B-A35B-Instruct\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 262_144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.38,\n\t\toutputPrice: 1.53,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"Mixture-of-experts LLM with advanced coding and reasoning capabilities\",\n\t},\n\t\"openai/gpt-oss-120b\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 128_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.5,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"Extremely capable general-purpose LLM with strong, controllable reasoning capabilities\",\n\t},\n\t\"moonshotai/Kimi-K2-Instruct-0905\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 262_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 2.5,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"State of the art language model for agentic and coding tasks. September Update.\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport type BasetenModelId = keyof typeof basetenModels\n\nexport const basetenDefaultModelId = \"zai-org/GLM-4.6\" satisfies BasetenModelId\n","import type { ModelInfo } from \"../model.js\"\n\n// https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference.html\n\nexport type BedrockModelId = keyof typeof bedrockModels\n\nexport const bedrockDefaultModelId: BedrockModelId = \"anthropic.claude-sonnet-4-5-20250929-v1:0\"\n\nexport const bedrockDefaultPromptRouterModelId: BedrockModelId = \"anthropic.claude-3-sonnet-20240229-v1:0\"\n\n// March, 12 2025 - updated prices to match US-West-2 list price shown at\n// https://aws.amazon.com/bedrock/pricing, including older models that are part\n// of the default prompt routers AWS enabled for GA of the promot router\n// feature.\nexport const bedrockModels = {\n\t\"anthropic.claude-sonnet-4-5-20250929-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningBudget: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 3.75,\n\t\tcacheReadsPrice: 0.3,\n\t\tminTokensPerCachePoint: 1024,\n\t\tmaxCachePoints: 4,\n\t\tcachableFields: [\"system\", \"messages\", \"tools\"],\n\t},\n\t\"amazon.nova-pro-v1:0\": {\n\t\tmaxTokens: 5000,\n\t\tcontextWindow: 300_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.8,\n\t\toutputPrice: 3.2,\n\t\tcacheWritesPrice: 0.8, // per million tokens\n\t\tcacheReadsPrice: 0.2, // per million tokens\n\t\tminTokensPerCachePoint: 1,\n\t\tmaxCachePoints: 1,\n\t\tcachableFields: [\"system\"],\n\t},\n\t\"amazon.nova-pro-latency-optimized-v1:0\": {\n\t\tmaxTokens: 5000,\n\t\tcontextWindow: 300_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 1.0,\n\t\toutputPrice: 4.0,\n\t\tcacheWritesPrice: 1.0, // per million tokens\n\t\tcacheReadsPrice: 0.25, // per million tokens\n\t\tdescription: \"Amazon Nova Pro with latency optimized inference\",\n\t},\n\t\"amazon.nova-lite-v1:0\": {\n\t\tmaxTokens: 5000,\n\t\tcontextWindow: 300_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.06,\n\t\toutputPrice: 0.24,\n\t\tcacheWritesPrice: 0.06, // per million tokens\n\t\tcacheReadsPrice: 0.015, // per million tokens\n\t\tminTokensPerCachePoint: 1,\n\t\tmaxCachePoints: 1,\n\t\tcachableFields: [\"system\"],\n\t},\n\t\"amazon.nova-2-lite-v1:0\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_000_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.33,\n\t\toutputPrice: 2.75,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.0825, // 75% less than input price\n\t\tminTokensPerCachePoint: 1,\n\t\tmaxCachePoints: 1,\n\t\tcachableFields: [\"system\"],\n\t\tdescription: \"Amazon Nova 2 Lite - Comparable to Claude Haiku 4.5\",\n\t},\n\t\"amazon.nova-micro-v1:0\": {\n\t\tmaxTokens: 5000,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.035,\n\t\toutputPrice: 0.14,\n\t\tcacheWritesPrice: 0.035, // per million tokens\n\t\tcacheReadsPrice: 0.00875, // per million tokens\n\t\tminTokensPerCachePoint: 1,\n\t\tmaxCachePoints: 1,\n\t\tcachableFields: [\"system\"],\n\t},\n\t\"anthropic.claude-sonnet-4-20250514-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningBudget: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 3.75,\n\t\tcacheReadsPrice: 0.3,\n\t\tminTokensPerCachePoint: 1024,\n\t\tmaxCachePoints: 4,\n\t\tcachableFields: [\"system\", \"messages\", \"tools\"],\n\t},\n\t\"anthropic.claude-opus-4-1-20250805-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningBudget: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 15.0,\n\t\toutputPrice: 75.0,\n\t\tcacheWritesPrice: 18.75,\n\t\tcacheReadsPrice: 1.5,\n\t\tminTokensPerCachePoint: 1024,\n\t\tmaxCachePoints: 4,\n\t\tcachableFields: [\"system\", \"messages\", \"tools\"],\n\t},\n\t\"anthropic.claude-opus-4-5-20251101-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningBudget: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 5.0,\n\t\toutputPrice: 25.0,\n\t\tcacheWritesPrice: 6.25,\n\t\tcacheReadsPrice: 0.5,\n\t\tminTokensPerCachePoint: 1024,\n\t\tmaxCachePoints: 4,\n\t\tcachableFields: [\"system\", \"messages\", \"tools\"],\n\t},\n\t\"anthropic.claude-opus-4-20250514-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningBudget: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 15.0,\n\t\toutputPrice: 75.0,\n\t\tcacheWritesPrice: 18.75,\n\t\tcacheReadsPrice: 1.5,\n\t\tminTokensPerCachePoint: 1024,\n\t\tmaxCachePoints: 4,\n\t\tcachableFields: [\"system\", \"messages\", \"tools\"],\n\t},\n\t\"anthropic.claude-3-7-sonnet-20250219-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningBudget: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 3.75,\n\t\tcacheReadsPrice: 0.3,\n\t\tminTokensPerCachePoint: 1024,\n\t\tmaxCachePoints: 4,\n\t\tcachableFields: [\"system\", \"messages\", \"tools\"],\n\t},\n\t\"anthropic.claude-3-5-sonnet-20241022-v2:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 3.75,\n\t\tcacheReadsPrice: 0.3,\n\t\tminTokensPerCachePoint: 1024,\n\t\tmaxCachePoints: 4,\n\t\tcachableFields: [\"system\", \"messages\", \"tools\"],\n\t},\n\t\"anthropic.claude-3-5-haiku-20241022-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.8,\n\t\toutputPrice: 4.0,\n\t\tcacheWritesPrice: 1.0,\n\t\tcacheReadsPrice: 0.08,\n\t\tminTokensPerCachePoint: 2048,\n\t\tmaxCachePoints: 4,\n\t\tcachableFields: [\"system\", \"messages\", \"tools\"],\n\t},\n\t\"anthropic.claude-haiku-4-5-20251001-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningBudget: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 1.0,\n\t\toutputPrice: 5.0,\n\t\tcacheWritesPrice: 1.25, // 5m cache writes\n\t\tcacheReadsPrice: 0.1, // cache hits / refreshes\n\t\tminTokensPerCachePoint: 2048,\n\t\tmaxCachePoints: 4,\n\t\tcachableFields: [\"system\", \"messages\", \"tools\"],\n\t},\n\t\"anthropic.claude-3-5-sonnet-20240620-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t},\n\t\"anthropic.claude-3-opus-20240229-v1:0\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 15.0,\n\t\toutputPrice: 75.0,\n\t},\n\t\"anthropic.claude-3-sonnet-20240229-v1:0\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t},\n\t\"anthropic.claude-3-haiku-20240307-v1:0\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.25,\n\t\toutputPrice: 1.25,\n\t},\n\t\"anthropic.claude-2-1-v1:0\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 100_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 8.0,\n\t\toutputPrice: 24.0,\n\t\tdescription: \"Claude 2.1\",\n\t},\n\t\"anthropic.claude-2-0-v1:0\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 100_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 8.0,\n\t\toutputPrice: 24.0,\n\t\tdescription: \"Claude 2.0\",\n\t},\n\t\"anthropic.claude-instant-v1:0\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 100_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.8,\n\t\toutputPrice: 2.4,\n\t\tdescription: \"Claude Instant\",\n\t},\n\t\"deepseek.r1-v1:0\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 1.35,\n\t\toutputPrice: 5.4,\n\t},\n\t\"openai.gpt-oss-20b-1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.5,\n\t\toutputPrice: 1.5,\n\t\tdescription: \"GPT-OSS 20B - Optimized for low latency and local/specialized use cases\",\n\t},\n\t\"openai.gpt-oss-120b-1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 2.0,\n\t\toutputPrice: 6.0,\n\t\tdescription: \"GPT-OSS 120B - Production-ready, general-purpose, high-reasoning model\",\n\t},\n\t\"meta.llama3-3-70b-instruct-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.72,\n\t\toutputPrice: 0.72,\n\t\tdescription: \"Llama 3.3 Instruct (70B)\",\n\t},\n\t\"meta.llama3-2-90b-instruct-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.72,\n\t\toutputPrice: 0.72,\n\t\tdescription: \"Llama 3.2 Instruct (90B)\",\n\t},\n\t\"meta.llama3-2-11b-instruct-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.16,\n\t\toutputPrice: 0.16,\n\t\tdescription: \"Llama 3.2 Instruct (11B)\",\n\t},\n\t\"meta.llama3-2-3b-instruct-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 0.15,\n\t\tdescription: \"Llama 3.2 Instruct (3B)\",\n\t},\n\t\"meta.llama3-2-1b-instruct-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.1,\n\t\tdescription: \"Llama 3.2 Instruct (1B)\",\n\t},\n\t\"meta.llama3-1-405b-instruct-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 2.4,\n\t\toutputPrice: 2.4,\n\t\tdescription: \"Llama 3.1 Instruct (405B)\",\n\t},\n\t\"meta.llama3-1-70b-instruct-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.72,\n\t\toutputPrice: 0.72,\n\t\tdescription: \"Llama 3.1 Instruct (70B)\",\n\t},\n\t\"meta.llama3-1-70b-instruct-latency-optimized-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.9,\n\t\toutputPrice: 0.9,\n\t\tdescription: \"Llama 3.1 Instruct (70B) (w/ latency optimized inference)\",\n\t},\n\t\"meta.llama3-1-8b-instruct-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 8_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.22,\n\t\toutputPrice: 0.22,\n\t\tdescription: \"Llama 3.1 Instruct (8B)\",\n\t},\n\t\"meta.llama3-70b-instruct-v1:0\": {\n\t\tmaxTokens: 2048,\n\t\tcontextWindow: 8_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 2.65,\n\t\toutputPrice: 3.5,\n\t},\n\t\"meta.llama3-8b-instruct-v1:0\": {\n\t\tmaxTokens: 2048,\n\t\tcontextWindow: 4_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 0.6,\n\t},\n\t\"amazon.titan-text-lite-v1:0\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 8_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 0.2,\n\t\tdescription: \"Amazon Titan Text Lite\",\n\t},\n\t\"amazon.titan-text-express-v1:0\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 8_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.2,\n\t\toutputPrice: 0.6,\n\t\tdescription: \"Amazon Titan Text Express\",\n\t},\n\t\"amazon.titan-text-embeddings-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 8_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.1,\n\t\tdescription: \"Amazon Titan Text Embeddings\",\n\t},\n\t\"amazon.titan-text-embeddings-v2:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 8_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.02,\n\t\tdescription: \"Amazon Titan Text Embeddings V2\",\n\t},\n\t\"moonshot.kimi-k2-thinking\": {\n\t\tmaxTokens: 32_000,\n\t\tcontextWindow: 262_144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tdefaultToolProtocol: \"native\",\n\t\tpreserveReasoning: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 2.5,\n\t\tdescription: \"Kimi K2 Thinking (1T parameter MoE model with 32B active parameters)\",\n\t},\n\t\"minimax.minimax-m2\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 196_608,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tdefaultToolProtocol: \"native\",\n\t\tpreserveReasoning: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 1.2,\n\t\tdescription: \"MiniMax M2 (230B parameter MoE model with 10B active parameters)\",\n\t},\n\t\"qwen.qwen3-next-80b-a3b\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 262_144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tdefaultToolProtocol: \"native\",\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 1.2,\n\t\tdescription: \"Qwen3 Next 80B (MoE model with 3B active parameters)\",\n\t},\n\t\"qwen.qwen3-coder-480b-a35b-v1:0\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 262_144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tdefaultToolProtocol: \"native\",\n\t\tinputPrice: 0.45,\n\t\toutputPrice: 1.8,\n\t\tdescription: \"Qwen3 Coder 480B (MoE model with 35B active parameters)\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const BEDROCK_DEFAULT_TEMPERATURE = 0.3\n\nexport const BEDROCK_MAX_TOKENS = 4096\n\nexport const BEDROCK_DEFAULT_CONTEXT = 128_000\n\n// Amazon Bedrock Inference Profile mapping based on official documentation\n// https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-support.html\n// This mapping is pre-ordered by pattern length (descending) to ensure more specific patterns match first\nexport const AWS_INFERENCE_PROFILE_MAPPING: Array<[string, string]> = [\n\t// Australia regions (Sydney and Melbourne) → au. inference profile (most specific - 14 chars)\n\t[\"ap-southeast-2\", \"au.\"],\n\t[\"ap-southeast-4\", \"au.\"],\n\t// Japan regions (Tokyo and Osaka) → jp. inference profile (13 chars)\n\t[\"ap-northeast-\", \"jp.\"],\n\t// US Government Cloud → ug. inference profile (7 chars)\n\t[\"us-gov-\", \"ug.\"],\n\t// Americas regions → us. inference profile (3 chars)\n\t[\"us-\", \"us.\"],\n\t// Europe regions → eu. inference profile (3 chars)\n\t[\"eu-\", \"eu.\"],\n\t// Asia Pacific regions → apac. inference profile (3 chars)\n\t[\"ap-\", \"apac.\"],\n\t// Canada regions → ca. inference profile (3 chars)\n\t[\"ca-\", \"ca.\"],\n\t// South America regions → sa. inference profile (3 chars)\n\t[\"sa-\", \"sa.\"],\n]\n\n// Amazon Bedrock supported regions for the regions dropdown\n// Based on official AWS documentation\nexport const BEDROCK_REGIONS = [\n\t{ value: \"us-east-1\", label: \"us-east-1\" },\n\t{ value: \"us-east-2\", label: \"us-east-2\" },\n\t{ value: \"us-west-1\", label: \"us-west-1\" },\n\t{ value: \"us-west-2\", label: \"us-west-2\" },\n\t{ value: \"ap-northeast-1\", label: \"ap-northeast-1\" },\n\t{ value: \"ap-northeast-2\", label: \"ap-northeast-2\" },\n\t{ value: \"ap-northeast-3\", label: \"ap-northeast-3\" },\n\t{ value: \"ap-south-1\", label: \"ap-south-1\" },\n\t{ value: \"ap-south-2\", label: \"ap-south-2\" },\n\t{ value: \"ap-southeast-1\", label: \"ap-southeast-1\" },\n\t{ value: \"ap-southeast-2\", label: \"ap-southeast-2\" },\n\t{ value: \"ap-east-1\", label: \"ap-east-1\" },\n\t{ value: \"eu-central-1\", label: \"eu-central-1\" },\n\t{ value: \"eu-central-2\", label: \"eu-central-2\" },\n\t{ value: \"eu-west-1\", label: \"eu-west-1\" },\n\t{ value: \"eu-west-2\", label: \"eu-west-2\" },\n\t{ value: \"eu-west-3\", label: \"eu-west-3\" },\n\t{ value: \"eu-north-1\", label: \"eu-north-1\" },\n\t{ value: \"eu-south-1\", label: \"eu-south-1\" },\n\t{ value: \"eu-south-2\", label: \"eu-south-2\" },\n\t{ value: \"ca-central-1\", label: \"ca-central-1\" },\n\t{ value: \"sa-east-1\", label: \"sa-east-1\" },\n\t{ value: \"us-gov-east-1\", label: \"us-gov-east-1\" },\n\t{ value: \"us-gov-west-1\", label: \"us-gov-west-1\" },\n].sort((a, b) => a.value.localeCompare(b.value))\n\nexport const BEDROCK_1M_CONTEXT_MODEL_IDS = [\n\t\"anthropic.claude-sonnet-4-20250514-v1:0\",\n\t\"anthropic.claude-sonnet-4-5-20250929-v1:0\",\n] as const\n\n// Amazon Bedrock models that support Global Inference profiles\n// As of Nov 2025, AWS supports Global Inference for:\n// - Claude Sonnet 4\n// - Claude Sonnet 4.5\n// - Claude Haiku 4.5\n// - Claude Opus 4.5\nexport const BEDROCK_GLOBAL_INFERENCE_MODEL_IDS = [\n\t\"anthropic.claude-sonnet-4-20250514-v1:0\",\n\t\"anthropic.claude-sonnet-4-5-20250929-v1:0\",\n\t\"anthropic.claude-haiku-4-5-20251001-v1:0\",\n\t\"anthropic.claude-opus-4-5-20251101-v1:0\",\n] as const\n\n// Amazon Bedrock Service Tier types\nexport type BedrockServiceTier = \"STANDARD\" | \"FLEX\" | \"PRIORITY\"\n\n// Models that support service tiers based on AWS documentation\n// https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html\nexport const BEDROCK_SERVICE_TIER_MODEL_IDS = [\n\t// Amazon Nova models\n\t\"amazon.nova-lite-v1:0\",\n\t\"amazon.nova-2-lite-v1:0\",\n\t\"amazon.nova-pro-v1:0\",\n\t\"amazon.nova-pro-latency-optimized-v1:0\",\n\t// DeepSeek models\n\t\"deepseek.r1-v1:0\",\n\t// Qwen models\n\t\"qwen.qwen3-next-80b-a3b\",\n\t\"qwen.qwen3-coder-480b-a35b-v1:0\",\n\t// OpenAI GPT-OSS models\n\t\"openai.gpt-oss-20b-1:0\",\n\t\"openai.gpt-oss-120b-1:0\",\n] as const\n\n// Service tier pricing multipliers\nexport const BEDROCK_SERVICE_TIER_PRICING = {\n\tSTANDARD: 1.0, // Base price\n\tFLEX: 0.5, // 50% discount from standard\n\tPRIORITY: 1.75, // 75% premium over standard\n} as const\n","import type { ModelInfo } from \"../model.js\"\n\n// https://inference-docs.cerebras.ai/api-reference/chat-completions\nexport type CerebrasModelId = keyof typeof cerebrasModels\n\nexport const cerebrasDefaultModelId: CerebrasModelId = \"gpt-oss-120b\"\n\nexport const cerebrasModels = {\n\t\"zai-glm-4.6\": {\n\t\tmaxTokens: 8192, // Conservative default to avoid premature rate limiting (Cerebras reserves quota upfront)\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Highly intelligent general purpose model with up to 1,000 tokens/s\",\n\t},\n\t\"qwen-3-235b-a22b-instruct-2507\": {\n\t\tmaxTokens: 8192, // Conservative default to avoid premature rate limiting\n\t\tcontextWindow: 64000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Intelligent model with ~1400 tokens/s\",\n\t},\n\t\"llama-3.3-70b\": {\n\t\tmaxTokens: 8192, // Conservative default to avoid premature rate limiting\n\t\tcontextWindow: 64000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Powerful model with ~2600 tokens/s\",\n\t},\n\t\"qwen-3-32b\": {\n\t\tmaxTokens: 8192, // Conservative default to avoid premature rate limiting\n\t\tcontextWindow: 64000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"SOTA coding performance with ~2500 tokens/s\",\n\t},\n\t\"gpt-oss-120b\": {\n\t\tmaxTokens: 8192, // Conservative default to avoid premature rate limiting\n\t\tcontextWindow: 64000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription:\n\t\t\t\"OpenAI GPT OSS model with ~2800 tokens/s\\n\\n• 64K context window\\n• Excels at efficient reasoning across science, math, and coding\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n","import type { ModelInfo } from \"../model.js\"\n\n// https://llm.chutes.ai/v1 (OpenAI compatible)\nexport type ChutesModelId =\n\t| \"deepseek-ai/DeepSeek-R1-0528\"\n\t| \"deepseek-ai/DeepSeek-R1\"\n\t| \"deepseek-ai/DeepSeek-V3\"\n\t| \"deepseek-ai/DeepSeek-V3.1\"\n\t| \"deepseek-ai/DeepSeek-V3.1-Terminus\"\n\t| \"deepseek-ai/DeepSeek-V3.1-turbo\"\n\t| \"deepseek-ai/DeepSeek-V3.2-Exp\"\n\t| \"unsloth/Llama-3.3-70B-Instruct\"\n\t| \"chutesai/Llama-4-Scout-17B-16E-Instruct\"\n\t| \"unsloth/Mistral-Nemo-Instruct-2407\"\n\t| \"unsloth/gemma-3-12b-it\"\n\t| \"NousResearch/DeepHermes-3-Llama-3-8B-Preview\"\n\t| \"unsloth/gemma-3-4b-it\"\n\t| \"nvidia/Llama-3_3-Nemotron-Super-49B-v1\"\n\t| \"nvidia/Llama-3_1-Nemotron-Ultra-253B-v1\"\n\t| \"chutesai/Llama-4-Maverick-17B-128E-Instruct-FP8\"\n\t| \"deepseek-ai/DeepSeek-V3-Base\"\n\t| \"deepseek-ai/DeepSeek-R1-Zero\"\n\t| \"deepseek-ai/DeepSeek-V3-0324\"\n\t| \"Qwen/Qwen3-235B-A22B\"\n\t| \"Qwen/Qwen3-235B-A22B-Instruct-2507\"\n\t| \"Qwen/Qwen3-32B\"\n\t| \"Qwen/Qwen3-30B-A3B\"\n\t| \"Qwen/Qwen3-14B\"\n\t| \"Qwen/Qwen3-8B\"\n\t| \"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8\"\n\t| \"microsoft/MAI-DS-R1-FP8\"\n\t| \"tngtech/DeepSeek-R1T-Chimera\"\n\t| \"zai-org/GLM-4.5-Air\"\n\t| \"zai-org/GLM-4.5-FP8\"\n\t| \"zai-org/GLM-4.5-turbo\"\n\t| \"zai-org/GLM-4.6-FP8\"\n\t| \"zai-org/GLM-4.6-turbo\"\n\t| \"meituan-longcat/LongCat-Flash-Thinking-FP8\"\n\t| \"moonshotai/Kimi-K2-Instruct-75k\"\n\t| \"moonshotai/Kimi-K2-Instruct-0905\"\n\t| \"Qwen/Qwen3-235B-A22B-Thinking-2507\"\n\t| \"Qwen/Qwen3-Next-80B-A3B-Instruct\"\n\t| \"Qwen/Qwen3-Next-80B-A3B-Thinking\"\n\t| \"Qwen/Qwen3-VL-235B-A22B-Thinking\"\n\nexport const chutesDefaultModelId: ChutesModelId = \"deepseek-ai/DeepSeek-R1-0528\"\n\nexport const chutesModels = {\n\t\"deepseek-ai/DeepSeek-R1-0528\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"DeepSeek R1 0528 model.\",\n\t},\n\t\"deepseek-ai/DeepSeek-R1\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"DeepSeek R1 model.\",\n\t},\n\t\"deepseek-ai/DeepSeek-V3\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"DeepSeek V3 model.\",\n\t},\n\t\"deepseek-ai/DeepSeek-V3.1\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"DeepSeek V3.1 model.\",\n\t},\n\t\"deepseek-ai/DeepSeek-V3.1-Terminus\": {\n\t\tmaxTokens: 163840,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.23,\n\t\toutputPrice: 0.9,\n\t\tdescription:\n\t\t\t\"DeepSeek‑V3.1‑Terminus is an update to V3.1 that improves language consistency by reducing CN/EN mix‑ups and eliminating random characters, while strengthening agent capabilities with notably better Code Agent and Search Agent performance.\",\n\t},\n\t\"deepseek-ai/DeepSeek-V3.1-turbo\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 1.0,\n\t\toutputPrice: 3.0,\n\t\tdescription:\n\t\t\t\"DeepSeek-V3.1-turbo is an FP8, speculative-decoding turbo variant optimized for ultra-fast single-shot queries (~200 TPS), with outputs close to the originals and solid function calling/reasoning/structured output, priced at $1/M input and $3/M output tokens, using 2× quota per request and not intended for bulk workloads.\",\n\t},\n\t\"deepseek-ai/DeepSeek-V3.2-Exp\": {\n\t\tmaxTokens: 163840,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.25,\n\t\toutputPrice: 0.35,\n\t\tdescription:\n\t\t\t\"DeepSeek-V3.2-Exp is an experimental LLM that introduces DeepSeek Sparse Attention to improve long‑context training and inference efficiency while maintaining performance comparable to V3.1‑Terminus.\",\n\t},\n\t\"unsloth/Llama-3.3-70B-Instruct\": {\n\t\tmaxTokens: 32768, // From Groq\n\t\tcontextWindow: 131072, // From Groq\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Unsloth Llama 3.3 70B Instruct model.\",\n\t},\n\t\"chutesai/Llama-4-Scout-17B-16E-Instruct\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 512000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"ChutesAI Llama 4 Scout 17B Instruct model, 512K context.\",\n\t},\n\t\"unsloth/Mistral-Nemo-Instruct-2407\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Unsloth Mistral Nemo Instruct model.\",\n\t},\n\t\"unsloth/gemma-3-12b-it\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Unsloth Gemma 3 12B IT model.\",\n\t},\n\t\"NousResearch/DeepHermes-3-Llama-3-8B-Preview\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Nous DeepHermes 3 Llama 3 8B Preview model.\",\n\t},\n\t\"unsloth/gemma-3-4b-it\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Unsloth Gemma 3 4B IT model.\",\n\t},\n\t\"nvidia/Llama-3_3-Nemotron-Super-49B-v1\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Nvidia Llama 3.3 Nemotron Super 49B model.\",\n\t},\n\t\"nvidia/Llama-3_1-Nemotron-Ultra-253B-v1\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Nvidia Llama 3.1 Nemotron Ultra 253B model.\",\n\t},\n\t\"chutesai/Llama-4-Maverick-17B-128E-Instruct-FP8\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 256000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"ChutesAI Llama 4 Maverick 17B Instruct FP8 model.\",\n\t},\n\t\"deepseek-ai/DeepSeek-V3-Base\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"DeepSeek V3 Base model.\",\n\t},\n\t\"deepseek-ai/DeepSeek-R1-Zero\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"DeepSeek R1 Zero model.\",\n\t},\n\t\"deepseek-ai/DeepSeek-V3-0324\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"DeepSeek V3 (0324) model.\",\n\t},\n\t\"Qwen/Qwen3-235B-A22B-Instruct-2507\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 262144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Qwen3 235B A22B Instruct 2507 model with 262K context window.\",\n\t},\n\t\"Qwen/Qwen3-235B-A22B\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 40960,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Qwen3 235B A22B model.\",\n\t},\n\t\"Qwen/Qwen3-32B\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 40960,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Qwen3 32B model.\",\n\t},\n\t\"Qwen/Qwen3-30B-A3B\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 40960,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Qwen3 30B A3B model.\",\n\t},\n\t\"Qwen/Qwen3-14B\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 40960,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Qwen3 14B model.\",\n\t},\n\t\"Qwen/Qwen3-8B\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 40960,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Qwen3 8B model.\",\n\t},\n\t\"microsoft/MAI-DS-R1-FP8\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Microsoft MAI-DS-R1 FP8 model.\",\n\t},\n\t\"tngtech/DeepSeek-R1T-Chimera\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"TNGTech DeepSeek R1T Chimera model.\",\n\t},\n\t\"zai-org/GLM-4.5-Air\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 151329,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription:\n\t\t\t\"GLM-4.5-Air model with 151,329 token context window and 106B total parameters with 12B activated.\",\n\t},\n\t\"zai-org/GLM-4.5-FP8\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription:\n\t\t\t\"GLM-4.5-FP8 model with 128k token context window, optimized for agent-based applications with MoE architecture.\",\n\t},\n\t\"zai-org/GLM-4.5-turbo\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 1,\n\t\toutputPrice: 3,\n\t\tdescription: \"GLM-4.5-turbo model with 128K token context window, optimized for fast inference.\",\n\t},\n\t\"zai-org/GLM-4.6-FP8\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 202752,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription:\n\t\t\t\"GLM-4.6 introduces major upgrades over GLM-4.5, including a longer 200K-token context window for complex tasks, stronger coding performance in benchmarks and real-world tools (such as Claude Code, Cline, Roo Code, and Kilo Code), improved reasoning with tool use during inference, more capable and efficient agent integration, and refined writing that better matches human style, readability, and natural role-play scenarios.\",\n\t},\n\t\"zai-org/GLM-4.6-turbo\": {\n\t\tmaxTokens: 202752, // From Chutes /v1/models: max_output_length\n\t\tcontextWindow: 202752,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 1.15,\n\t\toutputPrice: 3.25,\n\t\tdescription: \"GLM-4.6-turbo model with 200K-token context window, optimized for fast inference.\",\n\t},\n\t\"meituan-longcat/LongCat-Flash-Thinking-FP8\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription:\n\t\t\t\"LongCat Flash Thinking FP8 model with 128K context window, optimized for complex reasoning and coding tasks.\",\n\t},\n\t\"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 262144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Qwen3 Coder 480B A35B Instruct FP8 model, optimized for coding tasks.\",\n\t},\n\t\"moonshotai/Kimi-K2-Instruct-75k\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 75000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.1481,\n\t\toutputPrice: 0.5926,\n\t\tdescription: \"Moonshot AI Kimi K2 Instruct model with 75k context window.\",\n\t},\n\t\"moonshotai/Kimi-K2-Instruct-0905\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 262144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.1999,\n\t\toutputPrice: 0.8001,\n\t\tdescription: \"Moonshot AI Kimi K2 Instruct 0905 model with 256k context window.\",\n\t},\n\t\"Qwen/Qwen3-235B-A22B-Thinking-2507\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 262144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.077968332,\n\t\toutputPrice: 0.31202496,\n\t\tdescription: \"Qwen3 235B A22B Thinking 2507 model with 262K context window.\",\n\t},\n\t\"Qwen/Qwen3-Next-80B-A3B-Instruct\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription:\n\t\t\t\"Fast, stable instruction-tuned model optimized for complex tasks, RAG, and tool use without thinking traces.\",\n\t},\n\t\"Qwen/Qwen3-Next-80B-A3B-Thinking\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription:\n\t\t\t\"Reasoning-first model with structured thinking traces for multi-step problems, math proofs, and code synthesis.\",\n\t},\n\t\"Qwen/Qwen3-VL-235B-A22B-Thinking\": {\n\t\tmaxTokens: 262144,\n\t\tcontextWindow: 262144,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.16,\n\t\toutputPrice: 0.65,\n\t\tdescription:\n\t\t\t\"Qwen3‑VL‑235B‑A22B‑Thinking is an open‑weight MoE vision‑language model (235B total, ~22B activated) optimized for deliberate multi‑step reasoning with strong text‑image‑video understanding and long‑context capabilities.\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const chutesDefaultModelInfo: ModelInfo = chutesModels[chutesDefaultModelId]\n","import type { ModelInfo } from \"../model.js\"\nimport { anthropicModels } from \"./anthropic.js\"\n\n// Regex pattern to match 8-digit date at the end of model names\nconst VERTEX_DATE_PATTERN = /-(\\d{8})$/\n\n/**\n * Converts Claude model names from hyphen-date format to Vertex AI's @-date format.\n *\n * @param modelName - The original model name (e.g., \"claude-sonnet-4-20250514\")\n * @returns The converted model name for Vertex AI (e.g., \"claude-sonnet-4@20250514\")\n *\n * @example\n * convertModelNameForVertex(\"claude-sonnet-4-20250514\") // returns \"claude-sonnet-4@20250514\"\n * convertModelNameForVertex(\"claude-model\") // returns \"claude-model\" (no change)\n */\nexport function convertModelNameForVertex(modelName: string): string {\n\t// Convert hyphen-date format to @date format for Vertex AI\n\treturn modelName.replace(VERTEX_DATE_PATTERN, \"@$1\")\n}\n\n// Claude Code\nexport type ClaudeCodeModelId = keyof typeof claudeCodeModels\nexport const claudeCodeDefaultModelId: ClaudeCodeModelId = \"claude-sonnet-4-5\"\nexport const CLAUDE_CODE_DEFAULT_MAX_OUTPUT_TOKENS = 16000\n\n/**\n * Gets the appropriate model ID based on whether Vertex AI is being used.\n *\n * @param baseModelId - The base Claude Code model ID\n * @param useVertex - Whether to format the model ID for Vertex AI (default: false)\n * @returns The model ID, potentially formatted for Vertex AI\n *\n * @example\n * getClaudeCodeModelId(\"claude-sonnet-4-20250514\", true) // returns \"claude-sonnet-4@20250514\"\n * getClaudeCodeModelId(\"claude-sonnet-4-20250514\", false) // returns \"claude-sonnet-4-20250514\"\n */\nexport function getClaudeCodeModelId(baseModelId: ClaudeCodeModelId, useVertex = false): string {\n\treturn useVertex ? convertModelNameForVertex(baseModelId) : baseModelId\n}\n\nexport const claudeCodeModels = {\n\t\"claude-sonnet-4-5\": {\n\t\t...anthropicModels[\"claude-sonnet-4-5\"],\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true, // Claude Code does report cache tokens\n\t\tsupportsReasoningEffort: false,\n\t\tsupportsReasoningBudget: false,\n\t\trequiredReasoningBudget: false,\n\t\t// Claude Code manages its own tools and temperature via the CLI\n\t\tsupportsNativeTools: false,\n\t\tsupportsTemperature: false,\n\t},\n\t\"claude-sonnet-4-5-20250929[1m]\": {\n\t\t...anthropicModels[\"claude-sonnet-4-5\"],\n\t\tcontextWindow: 1_000_000, // 1M token context window (requires [1m] suffix)\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true, // Claude Code does report cache tokens\n\t\tsupportsReasoningEffort: false,\n\t\tsupportsReasoningBudget: false,\n\t\trequiredReasoningBudget: false,\n\t\t// Claude Code manages its own tools and temperature via the CLI\n\t\tsupportsNativeTools: false,\n\t\tsupportsTemperature: false,\n\t},\n\t\"claude-sonnet-4-20250514\": {\n\t\t...anthropicModels[\"claude-sonnet-4-20250514\"],\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true, // Claude Code does report cache tokens\n\t\tsupportsReasoningEffort: false,\n\t\tsupportsReasoningBudget: false,\n\t\trequiredReasoningBudget: false,\n\t\t// Claude Code manages its own tools and temperature via the CLI\n\t\tsupportsNativeTools: false,\n\t\tsupportsTemperature: false,\n\t},\n\t\"claude-opus-4-5-20251101\": {\n\t\t...anthropicModels[\"claude-opus-4-5-20251101\"],\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true, // Claude Code does report cache tokens\n\t\tsupportsReasoningEffort: false,\n\t\tsupportsReasoningBudget: false,\n\t\trequiredReasoningBudget: false,\n\t\t// Claude Code manages its own tools and temperature via the CLI\n\t\tsupportsNativeTools: false,\n\t\tsupportsTemperature: false,\n\t},\n\t\"claude-opus-4-1-20250805\": {\n\t\t...anthropicModels[\"claude-opus-4-1-20250805\"],\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true, // Claude Code does report cache tokens\n\t\tsupportsReasoningEffort: false,\n\t\tsupportsReasoningBudget: false,\n\t\trequiredReasoningBudget: false,\n\t\t// Claude Code manages its own tools and temperature via the CLI\n\t\tsupportsNativeTools: false,\n\t\tsupportsTemperature: false,\n\t},\n\t\"claude-opus-4-20250514\": {\n\t\t...anthropicModels[\"claude-opus-4-20250514\"],\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true, // Claude Code does report cache tokens\n\t\tsupportsReasoningEffort: false,\n\t\tsupportsReasoningBudget: false,\n\t\trequiredReasoningBudget: false,\n\t\t// Claude Code manages its own tools and temperature via the CLI\n\t\tsupportsNativeTools: false,\n\t\tsupportsTemperature: false,\n\t},\n\t\"claude-3-7-sonnet-20250219\": {\n\t\t...anthropicModels[\"claude-3-7-sonnet-20250219\"],\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true, // Claude Code does report cache tokens\n\t\tsupportsReasoningEffort: false,\n\t\tsupportsReasoningBudget: false,\n\t\trequiredReasoningBudget: false,\n\t\t// Claude Code manages its own tools and temperature via the CLI\n\t\tsupportsNativeTools: false,\n\t\tsupportsTemperature: false,\n\t},\n\t\"claude-3-5-sonnet-20241022\": {\n\t\t...anthropicModels[\"claude-3-5-sonnet-20241022\"],\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true, // Claude Code does report cache tokens\n\t\tsupportsReasoningEffort: false,\n\t\tsupportsReasoningBudget: false,\n\t\trequiredReasoningBudget: false,\n\t\t// Claude Code manages its own tools and temperature via the CLI\n\t\tsupportsNativeTools: false,\n\t\tsupportsTemperature: false,\n\t},\n\t\"claude-3-5-haiku-20241022\": {\n\t\t...anthropicModels[\"claude-3-5-haiku-20241022\"],\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true, // Claude Code does report cache tokens\n\t\tsupportsReasoningEffort: false,\n\t\tsupportsReasoningBudget: false,\n\t\trequiredReasoningBudget: false,\n\t\t// Claude Code manages its own tools and temperature via the CLI\n\t\tsupportsNativeTools: false,\n\t\tsupportsTemperature: false,\n\t},\n\t\"claude-haiku-4-5-20251001\": {\n\t\t...anthropicModels[\"claude-haiku-4-5-20251001\"],\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true, // Claude Code does report cache tokens\n\t\tsupportsReasoningEffort: false,\n\t\tsupportsReasoningBudget: false,\n\t\trequiredReasoningBudget: false,\n\t\t// Claude Code manages its own tools and temperature via the CLI\n\t\tsupportsNativeTools: false,\n\t\tsupportsTemperature: false,\n\t},\n} as const satisfies Record<string, ModelInfo>\n","import type { ModelInfo } from \"../model.js\"\n\n// https://platform.deepseek.com/docs/api\nexport type DeepSeekModelId = keyof typeof deepSeekModels\n\nexport const deepSeekDefaultModelId: DeepSeekModelId = \"deepseek-chat\"\n\nexport const deepSeekModels = {\n\t\"deepseek-chat\": {\n\t\tmaxTokens: 8192, // 8K max output\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tdefaultToolProtocol: \"native\",\n\t\tinputPrice: 0.28, // $0.28 per million tokens (cache miss) - Updated Dec 9, 2025\n\t\toutputPrice: 0.42, // $0.42 per million tokens - Updated Dec 9, 2025\n\t\tcacheWritesPrice: 0.28, // $0.28 per million tokens (cache miss) - Updated Dec 9, 2025\n\t\tcacheReadsPrice: 0.028, // $0.028 per million tokens (cache hit) - Updated Dec 9, 2025\n\t\tdescription: `DeepSeek-V3.2 (Non-thinking Mode) achieves a significant breakthrough in inference speed over previous models. It tops the leaderboard among open-source models and rivals the most advanced closed-source models globally. Supports JSON output, tool calls, chat prefix completion (beta), and FIM completion (beta).`,\n\t},\n\t\"deepseek-reasoner\": {\n\t\tmaxTokens: 8192, // 8K max output\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tdefaultToolProtocol: \"native\",\n\t\tinputPrice: 0.28, // $0.28 per million tokens (cache miss) - Updated Dec 9, 2025\n\t\toutputPrice: 0.42, // $0.42 per million tokens - Updated Dec 9, 2025\n\t\tcacheWritesPrice: 0.28, // $0.28 per million tokens (cache miss) - Updated Dec 9, 2025\n\t\tcacheReadsPrice: 0.028, // $0.028 per million tokens (cache hit) - Updated Dec 9, 2025\n\t\tdescription: `DeepSeek-V3.2 (Thinking Mode) achieves performance comparable to OpenAI-o1 across math, code, and reasoning tasks. Supports Chain of Thought reasoning with up to 8K output tokens. Supports JSON output, tool calls, and chat prefix completion (beta).`,\n\t},\n} as const satisfies Record<string, ModelInfo>\n\n// https://api-docs.deepseek.com/quick_start/parameter_settings\nexport const DEEP_SEEK_DEFAULT_TEMPERATURE = 0\n","import type { ModelInfo } from \"../model.js\"\n\nexport const doubaoDefaultModelId = \"doubao-seed-1-6-250615\"\n\nexport const doubaoModels = {\n\t\"doubao-seed-1-6-250615\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.0001, // $0.0001 per million tokens (cache miss)\n\t\toutputPrice: 0.0004, // $0.0004 per million tokens\n\t\tcacheWritesPrice: 0.0001, // $0.0001 per million tokens (cache miss)\n\t\tcacheReadsPrice: 0.00002, // $0.00002 per million tokens (cache hit)\n\t\tdescription: `Doubao Seed 1.6 is a powerful model designed for high-performance tasks with extensive context handling.`,\n\t},\n\t\"doubao-seed-1-6-thinking-250715\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.0002, // $0.0002 per million tokens\n\t\toutputPrice: 0.0008, // $0.0008 per million tokens\n\t\tcacheWritesPrice: 0.0002, // $0.0002 per million\n\t\tcacheReadsPrice: 0.00004, // $0.00004 per million tokens (cache hit)\n\t\tdescription: `Doubao Seed 1.6 Thinking is optimized for reasoning tasks, providing enhanced performance in complex problem-solving scenarios.`,\n\t},\n\t\"doubao-seed-1-6-flash-250715\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.00015, // $0.00015 per million tokens\n\t\toutputPrice: 0.0006, // $0.0006 per million tokens\n\t\tcacheWritesPrice: 0.00015, // $0.00015 per million\n\t\tcacheReadsPrice: 0.00003, // $0.00003 per million tokens (cache hit)\n\t\tdescription: `Doubao Seed 1.6 Flash is tailored for speed and efficiency, making it ideal for applications requiring rapid responses.`,\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const doubaoDefaultModelInfo: ModelInfo = doubaoModels[doubaoDefaultModelId]\n\nexport const DOUBAO_API_BASE_URL = \"https://ark.cn-beijing.volces.com/api/v3\"\nexport const DOUBAO_API_CHAT_PATH = \"/chat/completions\"\n","import type { ModelInfo } from \"../model.js\"\n\nexport type FeatherlessModelId =\n\t| \"deepseek-ai/DeepSeek-V3-0324\"\n\t| \"deepseek-ai/DeepSeek-R1-0528\"\n\t| \"moonshotai/Kimi-K2-Instruct\"\n\t| \"openai/gpt-oss-120b\"\n\t| \"Qwen/Qwen3-Coder-480B-A35B-Instruct\"\n\nexport const featherlessModels = {\n\t\"deepseek-ai/DeepSeek-V3-0324\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 32678,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"DeepSeek V3 0324 model.\",\n\t},\n\t\"deepseek-ai/DeepSeek-R1-0528\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 32678,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"DeepSeek R1 0528 model.\",\n\t},\n\t\"moonshotai/Kimi-K2-Instruct\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 32678,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Kimi K2 Instruct model.\",\n\t},\n\t\"openai/gpt-oss-120b\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 32678,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"GPT-OSS 120B model.\",\n\t},\n\t\"Qwen/Qwen3-Coder-480B-A35B-Instruct\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 32678,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tdescription: \"Qwen3 Coder 480B A35B Instruct model.\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const featherlessDefaultModelId: FeatherlessModelId = \"deepseek-ai/DeepSeek-R1-0528\"\n","import type { ModelInfo } from \"../model.js\"\n\nexport type FireworksModelId =\n\t| \"accounts/fireworks/models/kimi-k2-instruct\"\n\t| \"accounts/fireworks/models/kimi-k2-instruct-0905\"\n\t| \"accounts/fireworks/models/minimax-m2\"\n\t| \"accounts/fireworks/models/qwen3-235b-a22b-instruct-2507\"\n\t| \"accounts/fireworks/models/qwen3-coder-480b-a35b-instruct\"\n\t| \"accounts/fireworks/models/deepseek-r1-0528\"\n\t| \"accounts/fireworks/models/deepseek-v3\"\n\t| \"accounts/fireworks/models/deepseek-v3p1\"\n\t| \"accounts/fireworks/models/glm-4p5\"\n\t| \"accounts/fireworks/models/glm-4p5-air\"\n\t| \"accounts/fireworks/models/glm-4p6\"\n\t| \"accounts/fireworks/models/gpt-oss-20b\"\n\t| \"accounts/fireworks/models/gpt-oss-120b\"\n\nexport const fireworksDefaultModelId: FireworksModelId = \"accounts/fireworks/models/kimi-k2-instruct-0905\"\n\nexport const fireworksModels = {\n\t\"accounts/fireworks/models/kimi-k2-instruct-0905\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 262144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 2.5,\n\t\tcacheReadsPrice: 0.15,\n\t\tdescription:\n\t\t\t\"Kimi K2 model gets a new version update: Agentic coding: more accurate, better generalization across scaffolds. Frontend coding: improved aesthetics and functionalities on web, 3d, and other tasks. Context length: extended from 128k to 256k, providing better long-horizon support.\",\n\t},\n\t\"accounts/fireworks/models/kimi-k2-instruct\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 2.5,\n\t\tdescription:\n\t\t\t\"Kimi K2 is a state-of-the-art mixture-of-experts (MoE) language model with 32 billion activated parameters and 1 trillion total parameters. Trained with the Muon optimizer, Kimi K2 achieves exceptional performance across frontier knowledge, reasoning, and coding tasks while being meticulously optimized for agentic capabilities.\",\n\t},\n\t\"accounts/fireworks/models/minimax-m2\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 204800,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 1.2,\n\t\tdescription:\n\t\t\t\"MiniMax M2 is a high-performance language model with 204.8K context window, optimized for long-context understanding and generation tasks.\",\n\t},\n\t\"accounts/fireworks/models/qwen3-235b-a22b-instruct-2507\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 256000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.22,\n\t\toutputPrice: 0.88,\n\t\tdescription: \"Latest Qwen3 thinking model, competitive against the best closed source models in Jul 2025.\",\n\t},\n\t\"accounts/fireworks/models/qwen3-coder-480b-a35b-instruct\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 256000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.45,\n\t\toutputPrice: 1.8,\n\t\tdescription: \"Qwen3's most agentic code model to date.\",\n\t},\n\t\"accounts/fireworks/models/deepseek-r1-0528\": {\n\t\tmaxTokens: 20480,\n\t\tcontextWindow: 160000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3,\n\t\toutputPrice: 8,\n\t\tdescription:\n\t\t\t\"05/28 updated checkpoint of Deepseek R1. Its overall performance is now approaching that of leading models, such as O3 and Gemini 2.5 Pro. Compared to the previous version, the upgraded model shows significant improvements in handling complex reasoning tasks, and this version also offers a reduced hallucination rate, enhanced support for function calling, and better experience for vibe coding. Note that fine-tuning for this model is only available through contacting fireworks at https://fireworks.ai/company/contact-us.\",\n\t},\n\t\"accounts/fireworks/models/deepseek-v3\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.9,\n\t\toutputPrice: 0.9,\n\t\tdescription:\n\t\t\t\"A strong Mixture-of-Experts (MoE) language model with 671B total parameters with 37B activated for each token from Deepseek. Note that fine-tuning for this model is only available through contacting fireworks at https://fireworks.ai/company/contact-us.\",\n\t},\n\t\"accounts/fireworks/models/deepseek-v3p1\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 163840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.56,\n\t\toutputPrice: 1.68,\n\t\tdescription:\n\t\t\t\"DeepSeek v3.1 is an improved version of the v3 model with enhanced performance, better reasoning capabilities, and improved code generation. This Mixture-of-Experts (MoE) model maintains the same 671B total parameters with 37B activated per token.\",\n\t},\n\t\"accounts/fireworks/models/glm-4p5\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.55,\n\t\toutputPrice: 2.19,\n\t\tdescription:\n\t\t\t\"Z.ai GLM-4.5 with 355B total parameters and 32B active parameters. Features unified reasoning, coding, and intelligent agent capabilities.\",\n\t},\n\t\"accounts/fireworks/models/glm-4p5-air\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.55,\n\t\toutputPrice: 2.19,\n\t\tdescription:\n\t\t\t\"Z.ai GLM-4.5-Air with 106B total parameters and 12B active parameters. Features unified reasoning, coding, and intelligent agent capabilities.\",\n\t},\n\t\"accounts/fireworks/models/glm-4p6\": {\n\t\tmaxTokens: 25344,\n\t\tcontextWindow: 198000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.55,\n\t\toutputPrice: 2.19,\n\t\tdescription:\n\t\t\t\"Z.ai GLM-4.6 is an advanced coding model with exceptional performance on complex programming tasks. Features improved reasoning capabilities and enhanced code generation quality, making it ideal for software development workflows.\",\n\t},\n\t\"accounts/fireworks/models/gpt-oss-20b\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.07,\n\t\toutputPrice: 0.3,\n\t\tdescription:\n\t\t\t\"OpenAI gpt-oss-20b: Compact model for local/edge deployments. Optimized for low-latency and resource-constrained environments with chain-of-thought output, adjustable reasoning, and agentic workflows.\",\n\t},\n\t\"accounts/fireworks/models/gpt-oss-120b\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 0.6,\n\t\tdescription:\n\t\t\t\"OpenAI gpt-oss-120b: Production-grade, general-purpose model that fits on a single H100 GPU. Features complex reasoning, configurable effort, full chain-of-thought transparency, and supports function calling, tool use, and structured outputs.\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n","import type { ModelInfo } from \"../model.js\"\n\n// https://ai.google.dev/gemini-api/docs/models/gemini\nexport type GeminiModelId = keyof typeof geminiModels\n\nexport const geminiDefaultModelId: GeminiModelId = \"gemini-2.5-pro\"\n\nexport const geminiModels = {\n\t\"gemini-3-pro-preview\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningEffort: [\"low\", \"high\"],\n\t\treasoningEffort: \"low\",\n\t\tsupportsTemperature: true,\n\t\tdefaultTemperature: 1,\n\t\tinputPrice: 4.0,\n\t\toutputPrice: 18.0,\n\t\ttiers: [\n\t\t\t{\n\t\t\t\tcontextWindow: 200_000,\n\t\t\t\tinputPrice: 2.0,\n\t\t\t\toutputPrice: 12.0,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcontextWindow: Infinity,\n\t\t\t\tinputPrice: 4.0,\n\t\t\t\toutputPrice: 18.0,\n\t\t\t},\n\t\t],\n\t},\n\t// 2.5 Pro models\n\t\"gemini-2.5-pro\": {\n\t\tmaxTokens: 64_000,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.5, // This is the pricing for prompts above 200k tokens.\n\t\toutputPrice: 15,\n\t\tcacheReadsPrice: 0.625,\n\t\tcacheWritesPrice: 4.5,\n\t\tmaxThinkingTokens: 32_768,\n\t\tsupportsReasoningBudget: true,\n\t\trequiredReasoningBudget: true,\n\t\ttiers: [\n\t\t\t{\n\t\t\t\tcontextWindow: 200_000,\n\t\t\t\tinputPrice: 1.25,\n\t\t\t\toutputPrice: 10,\n\t\t\t\tcacheReadsPrice: 0.31,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcontextWindow: Infinity,\n\t\t\t\tinputPrice: 2.5,\n\t\t\t\toutputPrice: 15,\n\t\t\t\tcacheReadsPrice: 0.625,\n\t\t\t},\n\t\t],\n\t},\n\t\"gemini-2.5-pro-preview-06-05\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.5, // This is the pricing for prompts above 200k tokens.\n\t\toutputPrice: 15,\n\t\tcacheReadsPrice: 0.625,\n\t\tcacheWritesPrice: 4.5,\n\t\tmaxThinkingTokens: 32_768,\n\t\tsupportsReasoningBudget: true,\n\t\ttiers: [\n\t\t\t{\n\t\t\t\tcontextWindow: 200_000,\n\t\t\t\tinputPrice: 1.25,\n\t\t\t\toutputPrice: 10,\n\t\t\t\tcacheReadsPrice: 0.31,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcontextWindow: Infinity,\n\t\t\t\tinputPrice: 2.5,\n\t\t\t\toutputPrice: 15,\n\t\t\t\tcacheReadsPrice: 0.625,\n\t\t\t},\n\t\t],\n\t},\n\t\"gemini-2.5-pro-preview-05-06\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.5, // This is the pricing for prompts above 200k tokens.\n\t\toutputPrice: 15,\n\t\tcacheReadsPrice: 0.625,\n\t\tcacheWritesPrice: 4.5,\n\t\ttiers: [\n\t\t\t{\n\t\t\t\tcontextWindow: 200_000,\n\t\t\t\tinputPrice: 1.25,\n\t\t\t\toutputPrice: 10,\n\t\t\t\tcacheReadsPrice: 0.31,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcontextWindow: Infinity,\n\t\t\t\tinputPrice: 2.5,\n\t\t\t\toutputPrice: 15,\n\t\t\t\tcacheReadsPrice: 0.625,\n\t\t\t},\n\t\t],\n\t},\n\t\"gemini-2.5-pro-preview-03-25\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.5, // This is the pricing for prompts above 200k tokens.\n\t\toutputPrice: 15,\n\t\tcacheReadsPrice: 0.625,\n\t\tcacheWritesPrice: 4.5,\n\t\tmaxThinkingTokens: 32_768,\n\t\tsupportsReasoningBudget: true,\n\t\ttiers: [\n\t\t\t{\n\t\t\t\tcontextWindow: 200_000,\n\t\t\t\tinputPrice: 1.25,\n\t\t\t\toutputPrice: 10,\n\t\t\t\tcacheReadsPrice: 0.31,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcontextWindow: Infinity,\n\t\t\t\tinputPrice: 2.5,\n\t\t\t\toutputPrice: 15,\n\t\t\t\tcacheReadsPrice: 0.625,\n\t\t\t},\n\t\t],\n\t},\n\n\t// 2.5 Flash models\n\t\"gemini-flash-latest\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 2.5,\n\t\tcacheReadsPrice: 0.075,\n\t\tcacheWritesPrice: 1.0,\n\t\tmaxThinkingTokens: 24_576,\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"gemini-2.5-flash-preview-09-2025\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 2.5,\n\t\tcacheReadsPrice: 0.075,\n\t\tcacheWritesPrice: 1.0,\n\t\tmaxThinkingTokens: 24_576,\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"gemini-2.5-flash\": {\n\t\tmaxTokens: 64_000,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 2.5,\n\t\tcacheReadsPrice: 0.075,\n\t\tcacheWritesPrice: 1.0,\n\t\tmaxThinkingTokens: 24_576,\n\t\tsupportsReasoningBudget: true,\n\t},\n\n\t// 2.5 Flash Lite models\n\t\"gemini-flash-lite-latest\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.4,\n\t\tcacheReadsPrice: 0.025,\n\t\tcacheWritesPrice: 1.0,\n\t\tsupportsReasoningBudget: true,\n\t\tmaxThinkingTokens: 24_576,\n\t},\n\t\"gemini-2.5-flash-lite-preview-09-2025\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.4,\n\t\tcacheReadsPrice: 0.025,\n\t\tcacheWritesPrice: 1.0,\n\t\tsupportsReasoningBudget: true,\n\t\tmaxThinkingTokens: 24_576,\n\t},\n} as const satisfies Record<string, ModelInfo>\n","import type { ModelInfo } from \"../model.js\"\n\n// https://console.groq.com/docs/models\nexport type GroqModelId =\n\t| \"llama-3.1-8b-instant\"\n\t| \"llama-3.3-70b-versatile\"\n\t| \"meta-llama/llama-4-scout-17b-16e-instruct\"\n\t| \"meta-llama/llama-4-maverick-17b-128e-instruct\"\n\t| \"mistral-saba-24b\"\n\t| \"qwen-qwq-32b\"\n\t| \"qwen/qwen3-32b\"\n\t| \"deepseek-r1-distill-llama-70b\"\n\t| \"moonshotai/kimi-k2-instruct\"\n\t| \"moonshotai/kimi-k2-instruct-0905\"\n\t| \"openai/gpt-oss-120b\"\n\t| \"openai/gpt-oss-20b\"\n\nexport const groqDefaultModelId: GroqModelId = \"moonshotai/kimi-k2-instruct-0905\"\n\nexport const groqModels = {\n\t// Models based on API response: https://api.groq.com/openai/v1/models\n\t\"llama-3.1-8b-instant\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.05,\n\t\toutputPrice: 0.08,\n\t\tdescription: \"Meta Llama 3.1 8B Instant model, 128K context.\",\n\t},\n\t\"llama-3.3-70b-versatile\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.59,\n\t\toutputPrice: 0.79,\n\t\tdescription: \"Meta Llama 3.3 70B Versatile model, 128K context.\",\n\t},\n\t\"meta-llama/llama-4-scout-17b-16e-instruct\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.11,\n\t\toutputPrice: 0.34,\n\t\tdescription: \"Meta Llama 4 Scout 17B Instruct model, 128K context.\",\n\t},\n\t\"meta-llama/llama-4-maverick-17b-128e-instruct\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.2,\n\t\toutputPrice: 0.6,\n\t\tdescription: \"Meta Llama 4 Maverick 17B Instruct model, 128K context.\",\n\t},\n\t\"mistral-saba-24b\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 32768,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.79,\n\t\toutputPrice: 0.79,\n\t\tdescription: \"Mistral Saba 24B model, 32K context.\",\n\t},\n\t\"qwen-qwq-32b\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.29,\n\t\toutputPrice: 0.39,\n\t\tdescription: \"Alibaba Qwen QwQ 32B model, 128K context.\",\n\t},\n\t\"qwen/qwen3-32b\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.29,\n\t\toutputPrice: 0.59,\n\t\tdescription: \"Alibaba Qwen 3 32B model, 128K context.\",\n\t},\n\t\"deepseek-r1-distill-llama-70b\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.75,\n\t\toutputPrice: 0.99,\n\t\tdescription: \"DeepSeek R1 Distill Llama 70B model, 128K context.\",\n\t},\n\t\"moonshotai/kimi-k2-instruct\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.0,\n\t\toutputPrice: 3.0,\n\t\tcacheReadsPrice: 0.5, // 50% discount for cached input tokens\n\t\tdescription: \"Moonshot AI Kimi K2 Instruct 1T model, 128K context.\",\n\t},\n\t\"moonshotai/kimi-k2-instruct-0905\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 262144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 2.5,\n\t\tcacheReadsPrice: 0.15,\n\t\tdescription:\n\t\t\t\"Kimi K2 model gets a new version update: Agentic coding: more accurate, better generalization across scaffolds. Frontend coding: improved aesthetics and functionalities on web, 3d, and other tasks. Context length: extended from 128k to 256k, providing better long-horizon support.\",\n\t},\n\t\"openai/gpt-oss-120b\": {\n\t\tmaxTokens: 32766,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 0.75,\n\t\tdescription:\n\t\t\t\"GPT-OSS 120B is OpenAI's flagship open source model, built on a Mixture-of-Experts (MoE) architecture with 20 billion parameters and 128 experts.\",\n\t},\n\t\"openai/gpt-oss-20b\": {\n\t\tmaxTokens: 32768,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.5,\n\t\tdescription:\n\t\t\t\"GPT-OSS 20B is OpenAI's flagship open source model, built on a Mixture-of-Experts (MoE) architecture with 20 billion parameters and 32 experts.\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n","/**\n * HuggingFace provider constants\n */\n\n// Default values for HuggingFace models\nexport const HUGGINGFACE_DEFAULT_MAX_TOKENS = 2048\nexport const HUGGINGFACE_MAX_TOKENS_FALLBACK = 8192\nexport const HUGGINGFACE_DEFAULT_CONTEXT_WINDOW = 128_000\n\n// UI constants\nexport const HUGGINGFACE_SLIDER_STEP = 256\nexport const HUGGINGFACE_SLIDER_MIN = 1\nexport const HUGGINGFACE_TEMPERATURE_MAX_VALUE = 2\n\n// API constants\nexport const HUGGINGFACE_API_URL = \"https://router.huggingface.co/v1/models?collection=roocode\"\nexport const HUGGINGFACE_CACHE_DURATION = 1000 * 60 * 60 // 1 hour\n","import type { ModelInfo } from \"../model.js\"\n\nexport type IOIntelligenceModelId =\n\t| \"deepseek-ai/DeepSeek-R1-0528\"\n\t| \"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8\"\n\t| \"Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar\"\n\t| \"openai/gpt-oss-120b\"\n\nexport const ioIntelligenceDefaultModelId: IOIntelligenceModelId = \"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8\"\n\nexport const ioIntelligenceDefaultBaseUrl = \"https://api.intelligence.io.solutions/api/v1\"\n\nexport const IO_INTELLIGENCE_CACHE_DURATION = 1000 * 60 * 60 // 1 hour\n\nexport const ioIntelligenceModels = {\n\t\"deepseek-ai/DeepSeek-R1-0528\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tdescription: \"DeepSeek R1 reasoning model\",\n\t},\n\t\"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 430000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tdescription: \"Llama 4 Maverick 17B model\",\n\t},\n\t\"Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 106000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tdescription: \"Qwen3 Coder 480B specialized for coding\",\n\t},\n\t\"openai/gpt-oss-120b\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tdescription: \"OpenAI GPT-OSS 120B model\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n","import type { ModelInfo } from \"../model.js\"\n\n// https://docs.litellm.ai/\nexport const litellmDefaultModelId = \"claude-3-7-sonnet-20250219\"\n\nexport const litellmDefaultModelInfo: ModelInfo = {\n\tmaxTokens: 8192,\n\tcontextWindow: 200_000,\n\tsupportsImages: true,\n\tsupportsPromptCache: true,\n\tsupportsNativeTools: true,\n\tinputPrice: 3.0,\n\toutputPrice: 15.0,\n\tcacheWritesPrice: 3.75,\n\tcacheReadsPrice: 0.3,\n}\n","import type { ModelInfo } from \"../model.js\"\n\nexport const LMSTUDIO_DEFAULT_TEMPERATURE = 0\n\n// LM Studio\n// https://lmstudio.ai/docs/cli/ls\nexport const lMStudioDefaultModelId = \"mistralai/devstral-small-2505\"\nexport const lMStudioDefaultModelInfo: ModelInfo = {\n\tmaxTokens: 8192,\n\tcontextWindow: 200_000,\n\tsupportsImages: true,\n\tsupportsPromptCache: true,\n\tinputPrice: 0,\n\toutputPrice: 0,\n\tcacheWritesPrice: 0,\n\tcacheReadsPrice: 0,\n\tdescription: \"LM Studio hosted models\",\n}\n","import type { ModelInfo } from \"../model.js\"\n\n// https://docs.mistral.ai/getting-started/models/models_overview/\nexport type MistralModelId = keyof typeof mistralModels\n\nexport const mistralDefaultModelId: MistralModelId = \"codestral-latest\"\n\nexport const mistralModels = {\n\t\"magistral-medium-latest\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 128_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 2.0,\n\t\toutputPrice: 5.0,\n\t},\n\t\"devstral-medium-latest\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.4,\n\t\toutputPrice: 2.0,\n\t},\n\t\"mistral-medium-latest\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.4,\n\t\toutputPrice: 2.0,\n\t},\n\t\"codestral-latest\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 256_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 0.9,\n\t},\n\t\"mistral-large-latest\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 2.0,\n\t\toutputPrice: 6.0,\n\t},\n\t\"ministral-8b-latest\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.1,\n\t},\n\t\"ministral-3b-latest\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.04,\n\t\toutputPrice: 0.04,\n\t},\n\t\"mistral-small-latest\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 32_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.2,\n\t\toutputPrice: 0.6,\n\t},\n\t\"pixtral-large-latest\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 2.0,\n\t\toutputPrice: 6.0,\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const MISTRAL_DEFAULT_TEMPERATURE = 1\n","import type { ModelInfo } from \"../model.js\"\n\n// https://platform.moonshot.ai/\nexport type MoonshotModelId = keyof typeof moonshotModels\n\nexport const moonshotDefaultModelId: MoonshotModelId = \"kimi-k2-0905-preview\"\n\nexport const moonshotModels = {\n\t\"kimi-k2-0711-preview\": {\n\t\tmaxTokens: 32_000,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6, // $0.60 per million tokens (cache miss)\n\t\toutputPrice: 2.5, // $2.50 per million tokens\n\t\tcacheWritesPrice: 0, // $0 per million tokens (cache miss)\n\t\tcacheReadsPrice: 0.15, // $0.15 per million tokens (cache hit)\n\t\tdescription: `Kimi K2 is a state-of-the-art mixture-of-experts (MoE) language model with 32 billion activated parameters and 1 trillion total parameters.`,\n\t},\n\t\"kimi-k2-0905-preview\": {\n\t\tmaxTokens: 16384,\n\t\tcontextWindow: 262144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 2.5,\n\t\tcacheReadsPrice: 0.15,\n\t\tdescription:\n\t\t\t\"Kimi K2 model gets a new version update: Agentic coding: more accurate, better generalization across scaffolds. Frontend coding: improved aesthetics and functionalities on web, 3d, and other tasks. Context length: extended from 128k to 256k, providing better long-horizon support.\",\n\t},\n\t\"kimi-k2-turbo-preview\": {\n\t\tmaxTokens: 32_000,\n\t\tcontextWindow: 262_144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 2.4, // $2.40 per million tokens (cache miss)\n\t\toutputPrice: 10, // $10.00 per million tokens\n\t\tcacheWritesPrice: 0, // $0 per million tokens (cache miss)\n\t\tcacheReadsPrice: 0.6, // $0.60 per million tokens (cache hit)\n\t\tdescription: `Kimi K2 Turbo is a high-speed version of the state-of-the-art Kimi K2 mixture-of-experts (MoE) language model, with the same 32 billion activated parameters and 1 trillion total parameters, optimized for output speeds of up to 60 tokens per second, peaking at 100 tokens per second.`,\n\t},\n\t\"kimi-k2-thinking\": {\n\t\tmaxTokens: 16_000, // Recommended ≥ 16,000\n\t\tcontextWindow: 262_144, // 262,144 tokens\n\t\tsupportsImages: false, // Text-only (no image/vision support)\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6, // $0.60 per million tokens (cache miss)\n\t\toutputPrice: 2.5, // $2.50 per million tokens\n\t\tcacheWritesPrice: 0, // $0 per million tokens (cache miss)\n\t\tcacheReadsPrice: 0.15, // $0.15 per million tokens (cache hit)\n\t\tsupportsTemperature: true, // Default temperature: 1.0\n\t\tpreserveReasoning: true,\n\t\tdefaultTemperature: 1.0,\n\t\tdescription: `The kimi-k2-thinking model is a general-purpose agentic reasoning model developed by Moonshot AI. Thanks to its strength in deep reasoning and multi-turn tool use, it can solve even the hardest problems.`,\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const MOONSHOT_DEFAULT_TEMPERATURE = 0.6\n","import type { ModelInfo } from \"../model.js\"\n\n// Ollama\n// https://ollama.com/models\nexport const ollamaDefaultModelId = \"devstral:24b\"\nexport const ollamaDefaultModelInfo: ModelInfo = {\n\tmaxTokens: 4096,\n\tcontextWindow: 200_000,\n\tsupportsImages: true,\n\tsupportsPromptCache: true,\n\tsupportsNativeTools: true,\n\tinputPrice: 0,\n\toutputPrice: 0,\n\tcacheWritesPrice: 0,\n\tcacheReadsPrice: 0,\n\tdescription: \"Ollama hosted models\",\n}\n","import type { ModelInfo } from \"../model.js\"\n\n// https://openai.com/api/pricing/\nexport type OpenAiNativeModelId = keyof typeof openAiNativeModels\n\nexport const openAiNativeDefaultModelId: OpenAiNativeModelId = \"gpt-5.1-codex-max\"\n\nexport const openAiNativeModels = {\n\t\"gpt-5.1-codex-max\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tpromptCacheRetention: \"24h\",\n\t\tsupportsReasoningEffort: [\"low\", \"medium\", \"high\", \"xhigh\"],\n\t\treasoningEffort: \"xhigh\",\n\t\tinputPrice: 1.25,\n\t\toutputPrice: 10.0,\n\t\tcacheReadsPrice: 0.125,\n\t\tsupportsTemperature: false,\n\t\ttiers: [{ name: \"priority\", contextWindow: 400000, inputPrice: 2.5, outputPrice: 20.0, cacheReadsPrice: 0.25 }],\n\t\tdescription:\n\t\t\t\"GPT-5.1 Codex Max: Our most intelligent coding model optimized for long-horizon, agentic coding tasks\",\n\t},\n\t\"gpt-5.2\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tpromptCacheRetention: \"24h\",\n\t\tsupportsReasoningEffort: [\"none\", \"low\", \"medium\", \"high\", \"xhigh\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 1.75,\n\t\toutputPrice: 14.0,\n\t\tcacheReadsPrice: 0.175,\n\t\tsupportsVerbosity: true,\n\t\tsupportsTemperature: false,\n\t\ttiers: [\n\t\t\t{ name: \"flex\", contextWindow: 400000, inputPrice: 0.875, outputPrice: 7.0, cacheReadsPrice: 0.0875 },\n\t\t\t{ name: \"priority\", contextWindow: 400000, inputPrice: 3.5, outputPrice: 28.0, cacheReadsPrice: 0.35 },\n\t\t],\n\t\tdescription: \"GPT-5.2: Our flagship model for coding and agentic tasks across industries\",\n\t},\n\t\"gpt-5.2-chat-latest\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 128_000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.75,\n\t\toutputPrice: 14.0,\n\t\tcacheReadsPrice: 0.175,\n\t\tdescription: \"GPT-5.2 Chat: Optimized for conversational AI and chat use cases\",\n\t},\n\t\"gpt-5.1\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tpromptCacheRetention: \"24h\",\n\t\tsupportsReasoningEffort: [\"none\", \"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 1.25,\n\t\toutputPrice: 10.0,\n\t\tcacheReadsPrice: 0.125,\n\t\tsupportsVerbosity: true,\n\t\tsupportsTemperature: false,\n\t\ttiers: [\n\t\t\t{ name: \"flex\", contextWindow: 400000, inputPrice: 0.625, outputPrice: 5.0, cacheReadsPrice: 0.0625 },\n\t\t\t{ name: \"priority\", contextWindow: 400000, inputPrice: 2.5, outputPrice: 20.0, cacheReadsPrice: 0.25 },\n\t\t],\n\t\tdescription: \"GPT-5.1: The best model for coding and agentic tasks across domains\",\n\t},\n\t\"gpt-5.1-codex\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tpromptCacheRetention: \"24h\",\n\t\tsupportsReasoningEffort: [\"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 1.25,\n\t\toutputPrice: 10.0,\n\t\tcacheReadsPrice: 0.125,\n\t\tsupportsTemperature: false,\n\t\ttiers: [{ name: \"priority\", contextWindow: 400000, inputPrice: 2.5, outputPrice: 20.0, cacheReadsPrice: 0.25 }],\n\t\tdescription: \"GPT-5.1 Codex: A version of GPT-5.1 optimized for agentic coding in Codex\",\n\t},\n\t\"gpt-5.1-codex-mini\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tpromptCacheRetention: \"24h\",\n\t\tsupportsReasoningEffort: [\"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 0.25,\n\t\toutputPrice: 2.0,\n\t\tcacheReadsPrice: 0.025,\n\t\tsupportsTemperature: false,\n\t\tdescription: \"GPT-5.1 Codex mini: A version of GPT-5.1 optimized for agentic coding in Codex\",\n\t},\n\t\"gpt-5\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningEffort: [\"minimal\", \"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 1.25,\n\t\toutputPrice: 10.0,\n\t\tcacheReadsPrice: 0.125,\n\t\tsupportsVerbosity: true,\n\t\tsupportsTemperature: false,\n\t\ttiers: [\n\t\t\t{ name: \"flex\", contextWindow: 400000, inputPrice: 0.625, outputPrice: 5.0, cacheReadsPrice: 0.0625 },\n\t\t\t{ name: \"priority\", contextWindow: 400000, inputPrice: 2.5, outputPrice: 20.0, cacheReadsPrice: 0.25 },\n\t\t],\n\t\tdescription: \"GPT-5: The best model for coding and agentic tasks across domains\",\n\t},\n\t\"gpt-5-mini\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningEffort: [\"minimal\", \"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 0.25,\n\t\toutputPrice: 2.0,\n\t\tcacheReadsPrice: 0.025,\n\t\tsupportsVerbosity: true,\n\t\tsupportsTemperature: false,\n\t\ttiers: [\n\t\t\t{ name: \"flex\", contextWindow: 400000, inputPrice: 0.125, outputPrice: 1.0, cacheReadsPrice: 0.0125 },\n\t\t\t{ name: \"priority\", contextWindow: 400000, inputPrice: 0.45, outputPrice: 3.6, cacheReadsPrice: 0.045 },\n\t\t],\n\t\tdescription: \"GPT-5 Mini: A faster, more cost-efficient version of GPT-5 for well-defined tasks\",\n\t},\n\t\"gpt-5-codex\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningEffort: [\"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 1.25,\n\t\toutputPrice: 10.0,\n\t\tcacheReadsPrice: 0.125,\n\t\tsupportsTemperature: false,\n\t\ttiers: [{ name: \"priority\", contextWindow: 400000, inputPrice: 2.5, outputPrice: 20.0, cacheReadsPrice: 0.25 }],\n\t\tdescription: \"GPT-5-Codex: A version of GPT-5 optimized for agentic coding in Codex\",\n\t},\n\t\"gpt-5-nano\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningEffort: [\"minimal\", \"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 0.05,\n\t\toutputPrice: 0.4,\n\t\tcacheReadsPrice: 0.005,\n\t\tsupportsVerbosity: true,\n\t\tsupportsTemperature: false,\n\t\ttiers: [{ name: \"flex\", contextWindow: 400000, inputPrice: 0.025, outputPrice: 0.2, cacheReadsPrice: 0.0025 }],\n\t\tdescription: \"GPT-5 Nano: Fastest, most cost-efficient version of GPT-5\",\n\t},\n\t\"gpt-5-chat-latest\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.25,\n\t\toutputPrice: 10.0,\n\t\tcacheReadsPrice: 0.125,\n\t\tdescription: \"GPT-5 Chat: Optimized for conversational AI and non-reasoning tasks\",\n\t},\n\t\"gpt-4.1\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 1_047_576,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2,\n\t\toutputPrice: 8,\n\t\tcacheReadsPrice: 0.5,\n\t\tsupportsTemperature: true,\n\t\ttiers: [\n\t\t\t{ name: \"priority\", contextWindow: 1_047_576, inputPrice: 3.5, outputPrice: 14.0, cacheReadsPrice: 0.875 },\n\t\t],\n\t},\n\t\"gpt-4.1-mini\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 1_047_576,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.4,\n\t\toutputPrice: 1.6,\n\t\tcacheReadsPrice: 0.1,\n\t\tsupportsTemperature: true,\n\t\ttiers: [\n\t\t\t{ name: \"priority\", contextWindow: 1_047_576, inputPrice: 0.7, outputPrice: 2.8, cacheReadsPrice: 0.175 },\n\t\t],\n\t},\n\t\"gpt-4.1-nano\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 1_047_576,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.4,\n\t\tcacheReadsPrice: 0.025,\n\t\tsupportsTemperature: true,\n\t\ttiers: [\n\t\t\t{ name: \"priority\", contextWindow: 1_047_576, inputPrice: 0.2, outputPrice: 0.8, cacheReadsPrice: 0.05 },\n\t\t],\n\t},\n\to3: {\n\t\tmaxTokens: 100_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.0,\n\t\toutputPrice: 8.0,\n\t\tcacheReadsPrice: 0.5,\n\t\tsupportsReasoningEffort: [\"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tsupportsTemperature: false,\n\t\ttiers: [\n\t\t\t{ name: \"flex\", contextWindow: 200_000, inputPrice: 1.0, outputPrice: 4.0, cacheReadsPrice: 0.25 },\n\t\t\t{ name: \"priority\", contextWindow: 200_000, inputPrice: 3.5, outputPrice: 14.0, cacheReadsPrice: 0.875 },\n\t\t],\n\t},\n\t\"o3-high\": {\n\t\tmaxTokens: 100_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.0,\n\t\toutputPrice: 8.0,\n\t\tcacheReadsPrice: 0.5,\n\t\treasoningEffort: \"high\",\n\t\tsupportsTemperature: false,\n\t},\n\t\"o3-low\": {\n\t\tmaxTokens: 100_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.0,\n\t\toutputPrice: 8.0,\n\t\tcacheReadsPrice: 0.5,\n\t\treasoningEffort: \"low\",\n\t\tsupportsTemperature: false,\n\t},\n\t\"o4-mini\": {\n\t\tmaxTokens: 100_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.1,\n\t\toutputPrice: 4.4,\n\t\tcacheReadsPrice: 0.275,\n\t\tsupportsReasoningEffort: [\"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tsupportsTemperature: false,\n\t\ttiers: [\n\t\t\t{ name: \"flex\", contextWindow: 200_000, inputPrice: 0.55, outputPrice: 2.2, cacheReadsPrice: 0.138 },\n\t\t\t{ name: \"priority\", contextWindow: 200_000, inputPrice: 2.0, outputPrice: 8.0, cacheReadsPrice: 0.5 },\n\t\t],\n\t},\n\t\"o4-mini-high\": {\n\t\tmaxTokens: 100_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.1,\n\t\toutputPrice: 4.4,\n\t\tcacheReadsPrice: 0.275,\n\t\treasoningEffort: \"high\",\n\t\tsupportsTemperature: false,\n\t},\n\t\"o4-mini-low\": {\n\t\tmaxTokens: 100_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.1,\n\t\toutputPrice: 4.4,\n\t\tcacheReadsPrice: 0.275,\n\t\treasoningEffort: \"low\",\n\t\tsupportsTemperature: false,\n\t},\n\t\"o3-mini\": {\n\t\tmaxTokens: 100_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.1,\n\t\toutputPrice: 4.4,\n\t\tcacheReadsPrice: 0.55,\n\t\tsupportsReasoningEffort: [\"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tsupportsTemperature: false,\n\t},\n\t\"o3-mini-high\": {\n\t\tmaxTokens: 100_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.1,\n\t\toutputPrice: 4.4,\n\t\tcacheReadsPrice: 0.55,\n\t\treasoningEffort: \"high\",\n\t\tsupportsTemperature: false,\n\t},\n\t\"o3-mini-low\": {\n\t\tmaxTokens: 100_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.1,\n\t\toutputPrice: 4.4,\n\t\tcacheReadsPrice: 0.55,\n\t\treasoningEffort: \"low\",\n\t\tsupportsTemperature: false,\n\t},\n\to1: {\n\t\tmaxTokens: 100_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 15,\n\t\toutputPrice: 60,\n\t\tcacheReadsPrice: 7.5,\n\t\tsupportsTemperature: false,\n\t},\n\t\"o1-preview\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 128_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 15,\n\t\toutputPrice: 60,\n\t\tcacheReadsPrice: 7.5,\n\t\tsupportsTemperature: false,\n\t},\n\t\"o1-mini\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 128_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.1,\n\t\toutputPrice: 4.4,\n\t\tcacheReadsPrice: 0.55,\n\t\tsupportsTemperature: false,\n\t},\n\t\"gpt-4o\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 128_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.5,\n\t\toutputPrice: 10,\n\t\tcacheReadsPrice: 1.25,\n\t\tsupportsTemperature: true,\n\t\ttiers: [\n\t\t\t{ name: \"priority\", contextWindow: 128_000, inputPrice: 4.25, outputPrice: 17.0, cacheReadsPrice: 2.125 },\n\t\t],\n\t},\n\t\"gpt-4o-mini\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 128_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 0.6,\n\t\tcacheReadsPrice: 0.075,\n\t\tsupportsTemperature: true,\n\t\ttiers: [\n\t\t\t{ name: \"priority\", contextWindow: 128_000, inputPrice: 0.25, outputPrice: 1.0, cacheReadsPrice: 0.125 },\n\t\t],\n\t},\n\t\"codex-mini-latest\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 200_000,\n\t\tsupportsNativeTools: true,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 1.5,\n\t\toutputPrice: 6,\n\t\tcacheReadsPrice: 0.375,\n\t\tsupportsTemperature: false,\n\t\tdescription:\n\t\t\t\"Codex Mini: Cloud-based software engineering agent powered by codex-1, a version of o3 optimized for coding tasks. Trained with reinforcement learning to generate human-style code, adhere to instructions, and iteratively run tests.\",\n\t},\n\t// Dated clones (snapshots) preserved for backward compatibility\n\t\"gpt-5-2025-08-07\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningEffort: [\"minimal\", \"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 1.25,\n\t\toutputPrice: 10.0,\n\t\tcacheReadsPrice: 0.125,\n\t\tsupportsVerbosity: true,\n\t\tsupportsTemperature: false,\n\t\ttiers: [\n\t\t\t{ name: \"flex\", contextWindow: 400000, inputPrice: 0.625, outputPrice: 5.0, cacheReadsPrice: 0.0625 },\n\t\t\t{ name: \"priority\", contextWindow: 400000, inputPrice: 2.5, outputPrice: 20.0, cacheReadsPrice: 0.25 },\n\t\t],\n\t\tdescription: \"GPT-5: The best model for coding and agentic tasks across domains\",\n\t},\n\t\"gpt-5-mini-2025-08-07\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningEffort: [\"minimal\", \"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 0.25,\n\t\toutputPrice: 2.0,\n\t\tcacheReadsPrice: 0.025,\n\t\tsupportsVerbosity: true,\n\t\tsupportsTemperature: false,\n\t\ttiers: [\n\t\t\t{ name: \"flex\", contextWindow: 400000, inputPrice: 0.125, outputPrice: 1.0, cacheReadsPrice: 0.0125 },\n\t\t\t{ name: \"priority\", contextWindow: 400000, inputPrice: 0.45, outputPrice: 3.6, cacheReadsPrice: 0.045 },\n\t\t],\n\t\tdescription: \"GPT-5 Mini: A faster, more cost-efficient version of GPT-5 for well-defined tasks\",\n\t},\n\t\"gpt-5-nano-2025-08-07\": {\n\t\tmaxTokens: 128000,\n\t\tcontextWindow: 400000,\n\t\tsupportsNativeTools: true,\n\t\tincludedTools: [\"apply_patch\"],\n\t\texcludedTools: [\"apply_diff\", \"write_to_file\"],\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningEffort: [\"minimal\", \"low\", \"medium\", \"high\"],\n\t\treasoningEffort: \"medium\",\n\t\tinputPrice: 0.05,\n\t\toutputPrice: 0.4,\n\t\tcacheReadsPrice: 0.005,\n\t\tsupportsVerbosity: true,\n\t\tsupportsTemperature: false,\n\t\ttiers: [{ name: \"flex\", contextWindow: 400000, inputPrice: 0.025, outputPrice: 0.2, cacheReadsPrice: 0.0025 }],\n\t\tdescription: \"GPT-5 Nano: Fastest, most cost-efficient version of GPT-5\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const openAiModelInfoSaneDefaults: ModelInfo = {\n\tmaxTokens: -1,\n\tcontextWindow: 128_000,\n\tsupportsImages: true,\n\tsupportsPromptCache: false,\n\tinputPrice: 0,\n\toutputPrice: 0,\n\tsupportsNativeTools: true,\n}\n\n// https://learn.microsoft.com/en-us/azure/ai-services/openai/api-version-deprecation\n// https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#api-specs\nexport const azureOpenAiDefaultApiVersion = \"2024-08-01-preview\"\n\nexport const OPENAI_NATIVE_DEFAULT_TEMPERATURE = 0\n\nexport const OPENAI_AZURE_AI_INFERENCE_PATH = \"/models/chat/completions\"\n","import type { ModelInfo } from \"../model.js\"\n\n// https://openrouter.ai/models?order=newest&supported_parameters=tools\nexport const openRouterDefaultModelId = \"anthropic/claude-sonnet-4.5\"\n\nexport const openRouterDefaultModelInfo: ModelInfo = {\n\tmaxTokens: 8192,\n\tcontextWindow: 200_000,\n\tsupportsImages: true,\n\tsupportsPromptCache: true,\n\tsupportsNativeTools: true,\n\tinputPrice: 3.0,\n\toutputPrice: 15.0,\n\tcacheWritesPrice: 3.75,\n\tcacheReadsPrice: 0.3,\n\tdescription:\n\t\t\"Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and extended, step-by-step processing for complex tasks. The model demonstrates notable improvements in coding, particularly in front-end development and full-stack updates, and excels in agentic workflows, where it can autonomously navigate multi-step processes. Claude 3.7 Sonnet maintains performance parity with its predecessor in standard mode while offering an extended reasoning mode for enhanced accuracy in math, coding, and instruction-following tasks. Read more at the [blog post here](https://www.anthropic.com/news/claude-3-7-sonnet)\",\n}\n\nexport const OPENROUTER_DEFAULT_PROVIDER_NAME = \"[default]\"\n\nexport const OPEN_ROUTER_PROMPT_CACHING_MODELS = new Set([\n\t\"anthropic/claude-3-haiku\",\n\t\"anthropic/claude-3-haiku:beta\",\n\t\"anthropic/claude-3-opus\",\n\t\"anthropic/claude-3-opus:beta\",\n\t\"anthropic/claude-3-sonnet\",\n\t\"anthropic/claude-3-sonnet:beta\",\n\t\"anthropic/claude-3.5-haiku\",\n\t\"anthropic/claude-3.5-haiku-20241022\",\n\t\"anthropic/claude-3.5-haiku-20241022:beta\",\n\t\"anthropic/claude-3.5-haiku:beta\",\n\t\"anthropic/claude-3.5-sonnet\",\n\t\"anthropic/claude-3.5-sonnet-20240620\",\n\t\"anthropic/claude-3.5-sonnet-20240620:beta\",\n\t\"anthropic/claude-3.5-sonnet:beta\",\n\t\"anthropic/claude-3.7-sonnet\",\n\t\"anthropic/claude-3.7-sonnet:beta\",\n\t\"anthropic/claude-3.7-sonnet:thinking\",\n\t\"anthropic/claude-sonnet-4\",\n\t\"anthropic/claude-sonnet-4.5\",\n\t\"anthropic/claude-opus-4\",\n\t\"anthropic/claude-opus-4.1\",\n\t\"anthropic/claude-haiku-4.5\",\n\t\"anthropic/claude-opus-4.5\",\n\t\"google/gemini-2.5-flash-preview\",\n\t\"google/gemini-2.5-flash-preview:thinking\",\n\t\"google/gemini-2.5-flash-preview-05-20\",\n\t\"google/gemini-2.5-flash-preview-05-20:thinking\",\n\t\"google/gemini-2.5-flash\",\n\t\"google/gemini-2.5-flash-lite-preview-06-17\",\n\t\"google/gemini-2.0-flash-001\",\n\t\"google/gemini-flash-1.5\",\n\t\"google/gemini-flash-1.5-8b\",\n])\n\n// When we first launched these models we didn't have support for\n// enabling/disabling the reasoning budget for hybrid models. Now that we\n// do support this we should give users the option to enable/disable it\n// whenever possible. However these particular (virtual) model ids with the\n// `:thinking` suffix always require the reasoning budget to be enabled, so\n// for backwards compatibility we should still require it.\n// We should *not* be adding new models to this set.\nexport const OPEN_ROUTER_REQUIRED_REASONING_BUDGET_MODELS = new Set([\n\t\"anthropic/claude-3.7-sonnet:thinking\",\n\t\"google/gemini-2.5-pro\",\n\t\"google/gemini-2.5-flash-preview-05-20:thinking\",\n])\n\nexport const OPEN_ROUTER_REASONING_BUDGET_MODELS = new Set([\n\t\"anthropic/claude-3.7-sonnet:beta\",\n\t\"anthropic/claude-opus-4\",\n\t\"anthropic/claude-opus-4.1\",\n\t\"anthropic/claude-sonnet-4\",\n\t\"anthropic/claude-sonnet-4.5\",\n\t\"anthropic/claude-opus-4.5\",\n\t\"anthropic/claude-haiku-4.5\",\n\t\"google/gemini-2.5-pro-preview\",\n\t\"google/gemini-2.5-pro\",\n\t\"google/gemini-2.5-flash-preview-05-20\",\n\t\"google/gemini-2.5-flash\",\n\t\"google/gemini-2.5-flash-lite-preview-06-17\",\n\t// Also include the models that require the reasoning budget to be enabled\n\t// even though `OPEN_ROUTER_REQUIRED_REASONING_BUDGET_MODELS` takes precedence.\n\t\"anthropic/claude-3.7-sonnet:thinking\",\n\t\"google/gemini-2.5-flash-preview-05-20:thinking\",\n])\n","import type { ModelInfo } from \"../model.js\"\n\nexport type QwenCodeModelId = \"qwen3-coder-plus\" | \"qwen3-coder-flash\"\n\nexport const qwenCodeDefaultModelId: QwenCodeModelId = \"qwen3-coder-plus\"\n\nexport const qwenCodeModels = {\n\t\"qwen3-coder-plus\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 1_000_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"Qwen3 Coder Plus - High-performance coding model with 1M context window for large codebases\",\n\t},\n\t\"qwen3-coder-flash\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 1_000_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"Qwen3 Coder Flash - Fast coding model with 1M context window optimized for speed\",\n\t},\n} as const satisfies Record<QwenCodeModelId, ModelInfo>\n","import type { ModelInfo } from \"../model.js\"\n\n// Requesty\n// https://requesty.ai/router-2\nexport const requestyDefaultModelId = \"coding/claude-4-sonnet\"\n\nexport const requestyDefaultModelInfo: ModelInfo = {\n\tmaxTokens: 8192,\n\tcontextWindow: 200_000,\n\tsupportsImages: true,\n\tsupportsPromptCache: true,\n\tinputPrice: 3.0,\n\toutputPrice: 15.0,\n\tcacheWritesPrice: 3.75,\n\tcacheReadsPrice: 0.3,\n\tdescription:\n\t\t\"The best coding model, optimized by Requesty, and automatically routed to the fastest provider. Claude 4 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities.\",\n}\n","import { z } from \"zod\"\n\nimport type { ModelInfo } from \"../model.js\"\n\n/**\n * Roo Code Cloud is a dynamic provider - models are loaded from the /v1/models API endpoint.\n * Default model ID used as fallback when no model is specified.\n */\nexport const rooDefaultModelId = \"xai/grok-code-fast-1\"\n\n/**\n * Empty models object maintained for type compatibility.\n * All model data comes dynamically from the API.\n */\nexport const rooModels = {} as const satisfies Record<string, ModelInfo>\n\n/**\n * Roo Code Cloud API response schemas\n */\n\nexport const RooPricingSchema = z.object({\n\tinput: z.string(),\n\toutput: z.string(),\n\tinput_cache_read: z.string().optional(),\n\tinput_cache_write: z.string().optional(),\n})\n\nexport const RooModelSchema = z.object({\n\tid: z.string(),\n\tobject: z.literal(\"model\"),\n\tcreated: z.number(),\n\towned_by: z.string(),\n\tname: z.string(),\n\tdescription: z.string(),\n\tcontext_window: z.number(),\n\tmax_tokens: z.number(),\n\ttype: z.literal(\"language\"),\n\ttags: z.array(z.string()).optional(),\n\tpricing: RooPricingSchema,\n\tdeprecated: z.boolean().optional(),\n\tdefault_temperature: z.number().optional(),\n\t// Dynamic settings that map directly to ModelInfo properties\n\t// Allows the API to configure model-specific defaults like includedTools, excludedTools, reasoningEffort, etc.\n\t// These are always direct values (e.g., includedTools: ['search_replace']) for backward compatibility with old clients.\n\tsettings: z.record(z.string(), z.unknown()).optional(),\n\t// Versioned settings keyed by version number (e.g., '3.36.4').\n\t// Each version key maps to a settings object that is used when plugin version >= that version.\n\t// New clients find the highest version key <= current version and use those settings.\n\t// Old clients ignore this field and use plain values from `settings`.\n\t// Example: { '3.36.4': { includedTools: ['search_replace'] }, '3.35.0': { ... } }\n\tversionedSettings: z.record(z.string(), z.record(z.string(), z.unknown())).optional(),\n})\n\nexport const RooModelsResponseSchema = z.object({\n\tobject: z.literal(\"list\"),\n\tdata: z.array(RooModelSchema),\n})\n\nexport type RooModel = z.infer<typeof RooModelSchema>\nexport type RooModelsResponse = z.infer<typeof RooModelsResponseSchema>\n","import type { ModelInfo } from \"../model.js\"\n\n// https://docs.sambanova.ai/cloud/docs/get-started/supported-models\nexport type SambaNovaModelId =\n\t| \"Meta-Llama-3.1-8B-Instruct\"\n\t| \"Meta-Llama-3.3-70B-Instruct\"\n\t| \"DeepSeek-R1\"\n\t| \"DeepSeek-V3-0324\"\n\t| \"DeepSeek-V3.1\"\n\t| \"DeepSeek-R1-Distill-Llama-70B\"\n\t| \"Llama-4-Maverick-17B-128E-Instruct\"\n\t| \"Llama-3.3-Swallow-70B-Instruct-v0.4\"\n\t| \"Qwen3-32B\"\n\t| \"gpt-oss-120b\"\n\nexport const sambaNovaDefaultModelId: SambaNovaModelId = \"Meta-Llama-3.3-70B-Instruct\"\n\nexport const sambaNovaModels = {\n\t\"Meta-Llama-3.1-8B-Instruct\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 16384,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.2,\n\t\tdescription: \"Meta Llama 3.1 8B Instruct model with 16K context window.\",\n\t},\n\t\"Meta-Llama-3.3-70B-Instruct\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 1.2,\n\t\tdescription: \"Meta Llama 3.3 70B Instruct model with 128K context window.\",\n\t},\n\t\"DeepSeek-R1\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 32768,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsReasoningBudget: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 5.0,\n\t\toutputPrice: 7.0,\n\t\tdescription: \"DeepSeek R1 reasoning model with 32K context window.\",\n\t},\n\t\"DeepSeek-V3-0324\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 32768,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 4.5,\n\t\tdescription: \"DeepSeek V3 model with 32K context window.\",\n\t},\n\t\"DeepSeek-V3.1\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 32768,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 4.5,\n\t\tdescription: \"DeepSeek V3.1 model with 32K context window.\",\n\t},\n\t\"DeepSeek-R1-Distill-Llama-70B\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.7,\n\t\toutputPrice: 1.4,\n\t\tdescription: \"DeepSeek R1 distilled Llama 70B model with 128K context window.\",\n\t},\n\t\"Llama-4-Maverick-17B-128E-Instruct\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.63,\n\t\toutputPrice: 1.8,\n\t\tdescription: \"Meta Llama 4 Maverick 17B 128E Instruct model with 128K context window.\",\n\t},\n\t\"Llama-3.3-Swallow-70B-Instruct-v0.4\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 16384,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 1.2,\n\t\tdescription: \"Tokyotech Llama 3.3 Swallow 70B Instruct v0.4 model with 16K context window.\",\n\t},\n\t\"Qwen3-32B\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 8192,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.4,\n\t\toutputPrice: 0.8,\n\t\tdescription: \"Alibaba Qwen 3 32B model with 8K context window.\",\n\t},\n\t\"gpt-oss-120b\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.22,\n\t\toutputPrice: 0.59,\n\t\tdescription: \"OpenAI gpt oss 120b model with 128k context window.\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n","import type { ModelInfo } from \"../model.js\"\n\nexport const unboundDefaultModelId = \"anthropic/claude-sonnet-4-5\"\n\nexport const unboundDefaultModelInfo: ModelInfo = {\n\tmaxTokens: 8192,\n\tcontextWindow: 200_000,\n\tsupportsImages: true,\n\tsupportsPromptCache: true,\n\tsupportsNativeTools: true,\n\tinputPrice: 3.0,\n\toutputPrice: 15.0,\n\tcacheWritesPrice: 3.75,\n\tcacheReadsPrice: 0.3,\n}\n","import type { ModelInfo } from \"../model.js\"\n\n// https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-claude\nexport type VertexModelId = keyof typeof vertexModels\n\nexport const vertexDefaultModelId: VertexModelId = \"claude-sonnet-4-5@20250929\"\n\nexport const vertexModels = {\n\t\"gemini-3-pro-preview\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsReasoningEffort: [\"low\", \"high\"],\n\t\treasoningEffort: \"low\",\n\t\tsupportsTemperature: true,\n\t\tdefaultTemperature: 1,\n\t\tinputPrice: 4.0,\n\t\toutputPrice: 18.0,\n\t\ttiers: [\n\t\t\t{\n\t\t\t\tcontextWindow: 200_000,\n\t\t\t\tinputPrice: 2.0,\n\t\t\t\toutputPrice: 12.0,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcontextWindow: Infinity,\n\t\t\t\tinputPrice: 4.0,\n\t\t\t\toutputPrice: 18.0,\n\t\t\t},\n\t\t],\n\t},\n\t\"gemini-2.5-flash-preview-05-20:thinking\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 3.5,\n\t\tmaxThinkingTokens: 24_576,\n\t\tsupportsReasoningBudget: true,\n\t\trequiredReasoningBudget: true,\n\t},\n\t\"gemini-2.5-flash-preview-05-20\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 0.6,\n\t},\n\t\"gemini-2.5-flash\": {\n\t\tmaxTokens: 64_000,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 2.5,\n\t\tcacheReadsPrice: 0.075,\n\t\tcacheWritesPrice: 1.0,\n\t\tmaxThinkingTokens: 24_576,\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"gemini-2.5-flash-preview-04-17:thinking\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 3.5,\n\t\tmaxThinkingTokens: 24_576,\n\t\tsupportsReasoningBudget: true,\n\t\trequiredReasoningBudget: true,\n\t},\n\t\"gemini-2.5-flash-preview-04-17\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 0.6,\n\t},\n\t\"gemini-2.5-pro-preview-03-25\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.5,\n\t\toutputPrice: 15,\n\t},\n\t\"gemini-2.5-pro-preview-05-06\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.5,\n\t\toutputPrice: 15,\n\t},\n\t\"gemini-2.5-pro-preview-06-05\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.5,\n\t\toutputPrice: 15,\n\t\tmaxThinkingTokens: 32_768,\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"gemini-2.5-pro\": {\n\t\tmaxTokens: 64_000,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 2.5,\n\t\toutputPrice: 15,\n\t\tmaxThinkingTokens: 32_768,\n\t\tsupportsReasoningBudget: true,\n\t\trequiredReasoningBudget: true,\n\t\ttiers: [\n\t\t\t{\n\t\t\t\tcontextWindow: 200_000,\n\t\t\t\tinputPrice: 1.25,\n\t\t\t\toutputPrice: 10,\n\t\t\t\tcacheReadsPrice: 0.31,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcontextWindow: Infinity,\n\t\t\t\tinputPrice: 2.5,\n\t\t\t\toutputPrice: 15,\n\t\t\t\tcacheReadsPrice: 0.625,\n\t\t\t},\n\t\t],\n\t},\n\t\"gemini-2.5-pro-exp-03-25\": {\n\t\tmaxTokens: 65_535,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t},\n\t\"gemini-2.0-pro-exp-02-05\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 2_097_152,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t},\n\t\"gemini-2.0-flash-001\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 0.6,\n\t},\n\t\"gemini-2.0-flash-lite-001\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.075,\n\t\toutputPrice: 0.3,\n\t},\n\t\"gemini-2.0-flash-thinking-exp-01-21\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 32_768,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t},\n\t\"gemini-1.5-flash-002\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.075,\n\t\toutputPrice: 0.3,\n\t},\n\t\"gemini-1.5-pro-002\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 2_097_152,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 1.25,\n\t\toutputPrice: 5,\n\t},\n\t\"claude-sonnet-4@20250514\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 3.75,\n\t\tcacheReadsPrice: 0.3,\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"claude-sonnet-4-5@20250929\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 3.75,\n\t\tcacheReadsPrice: 0.3,\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"claude-haiku-4-5@20251001\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.0,\n\t\toutputPrice: 5.0,\n\t\tcacheWritesPrice: 1.25,\n\t\tcacheReadsPrice: 0.1,\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"claude-opus-4-5@20251101\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 5.0,\n\t\toutputPrice: 25.0,\n\t\tcacheWritesPrice: 6.25,\n\t\tcacheReadsPrice: 0.5,\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"claude-opus-4-1@20250805\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 15.0,\n\t\toutputPrice: 75.0,\n\t\tcacheWritesPrice: 18.75,\n\t\tcacheReadsPrice: 1.5,\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"claude-opus-4@20250514\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 15.0,\n\t\toutputPrice: 75.0,\n\t\tcacheWritesPrice: 18.75,\n\t\tcacheReadsPrice: 1.5,\n\t},\n\t\"claude-3-7-sonnet@20250219:thinking\": {\n\t\tmaxTokens: 64_000,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 3.75,\n\t\tcacheReadsPrice: 0.3,\n\t\tsupportsReasoningBudget: true,\n\t\trequiredReasoningBudget: true,\n\t},\n\t\"claude-3-7-sonnet@20250219\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 3.75,\n\t\tcacheReadsPrice: 0.3,\n\t},\n\t\"claude-3-5-sonnet-v2@20241022\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 3.75,\n\t\tcacheReadsPrice: 0.3,\n\t},\n\t\"claude-3-5-sonnet@20240620\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 3.75,\n\t\tcacheReadsPrice: 0.3,\n\t},\n\t\"claude-3-5-haiku@20241022\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 1.0,\n\t\toutputPrice: 5.0,\n\t\tcacheWritesPrice: 1.25,\n\t\tcacheReadsPrice: 0.1,\n\t},\n\t\"claude-3-opus@20240229\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 15.0,\n\t\toutputPrice: 75.0,\n\t\tcacheWritesPrice: 18.75,\n\t\tcacheReadsPrice: 1.5,\n\t},\n\t\"claude-3-haiku@20240307\": {\n\t\tmaxTokens: 4096,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.25,\n\t\toutputPrice: 1.25,\n\t\tcacheWritesPrice: 0.3,\n\t\tcacheReadsPrice: 0.03,\n\t},\n\t\"gemini-2.5-flash-lite-preview-06-17\": {\n\t\tmaxTokens: 64_000,\n\t\tcontextWindow: 1_048_576,\n\t\tsupportsImages: true,\n\t\tsupportsNativeTools: true,\n\t\tsupportsPromptCache: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.4,\n\t\tcacheReadsPrice: 0.025,\n\t\tcacheWritesPrice: 1.0,\n\t\tmaxThinkingTokens: 24_576,\n\t\tsupportsReasoningBudget: true,\n\t},\n\t\"llama-4-maverick-17b-128e-instruct-maas\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.35,\n\t\toutputPrice: 1.15,\n\t\tdescription: \"Meta Llama 4 Maverick 17B Instruct model, 128K context.\",\n\t},\n\t\"deepseek-r1-0528-maas\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 163_840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 1.35,\n\t\toutputPrice: 5.4,\n\t\tdescription: \"DeepSeek R1 (0528). Available in us-central1\",\n\t},\n\t\"deepseek-v3.1-maas\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 163_840,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 1.7,\n\t\tdescription: \"DeepSeek V3.1. Available in us-west2\",\n\t},\n\t\"gpt-oss-120b-maas\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.15,\n\t\toutputPrice: 0.6,\n\t\tdescription: \"OpenAI gpt-oss 120B. Available in us-central1\",\n\t},\n\t\"gpt-oss-20b-maas\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.075,\n\t\toutputPrice: 0.3,\n\t\tdescription: \"OpenAI gpt-oss 20B. Available in us-central1\",\n\t},\n\t\"qwen3-coder-480b-a35b-instruct-maas\": {\n\t\tmaxTokens: 32_768,\n\t\tcontextWindow: 262_144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 1.0,\n\t\toutputPrice: 4.0,\n\t\tdescription: \"Qwen3 Coder 480B A35B Instruct. Available in us-south1\",\n\t},\n\t\"qwen3-235b-a22b-instruct-2507-maas\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 262_144,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0.25,\n\t\toutputPrice: 1.0,\n\t\tdescription: \"Qwen3 235B A22B Instruct. Available in us-south1\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const VERTEX_REGIONS = [\n\t{ value: \"global\", label: \"global\" },\n\t{ value: \"us-central1\", label: \"us-central1\" },\n\t{ value: \"us-east1\", label: \"us-east1\" },\n\t{ value: \"us-east4\", label: \"us-east4\" },\n\t{ value: \"us-east5\", label: \"us-east5\" },\n\t{ value: \"us-south1\", label: \"us-south1\" },\n\t{ value: \"us-west1\", label: \"us-west1\" },\n\t{ value: \"us-west2\", label: \"us-west2\" },\n\t{ value: \"us-west3\", label: \"us-west3\" },\n\t{ value: \"us-west4\", label: \"us-west4\" },\n\t{ value: \"northamerica-northeast1\", label: \"northamerica-northeast1\" },\n\t{ value: \"northamerica-northeast2\", label: \"northamerica-northeast2\" },\n\t{ value: \"southamerica-east1\", label: \"southamerica-east1\" },\n\t{ value: \"europe-west1\", label: \"europe-west1\" },\n\t{ value: \"europe-west2\", label: \"europe-west2\" },\n\t{ value: \"europe-west3\", label: \"europe-west3\" },\n\t{ value: \"europe-west4\", label: \"europe-west4\" },\n\t{ value: \"europe-west6\", label: \"europe-west6\" },\n\t{ value: \"europe-central2\", label: \"europe-central2\" },\n\t{ value: \"asia-east1\", label: \"asia-east1\" },\n\t{ value: \"asia-east2\", label: \"asia-east2\" },\n\t{ value: \"asia-northeast1\", label: \"asia-northeast1\" },\n\t{ value: \"asia-northeast2\", label: \"asia-northeast2\" },\n\t{ value: \"asia-northeast3\", label: \"asia-northeast3\" },\n\t{ value: \"asia-south1\", label: \"asia-south1\" },\n\t{ value: \"asia-south2\", label: \"asia-south2\" },\n\t{ value: \"asia-southeast1\", label: \"asia-southeast1\" },\n\t{ value: \"asia-southeast2\", label: \"asia-southeast2\" },\n\t{ value: \"australia-southeast1\", label: \"australia-southeast1\" },\n\t{ value: \"australia-southeast2\", label: \"australia-southeast2\" },\n\t{ value: \"me-west1\", label: \"me-west1\" },\n\t{ value: \"me-central1\", label: \"me-central1\" },\n\t{ value: \"africa-south1\", label: \"africa-south1\" },\n]\n","import type { ModelInfo } from \"../model.js\"\n\nexport type VscodeLlmModelId = keyof typeof vscodeLlmModels\n\nexport const vscodeLlmDefaultModelId: VscodeLlmModelId = \"claude-3.5-sonnet\"\n\n// https://docs.cline.bot/provider-config/vscode-language-model-api\nexport const vscodeLlmModels = {\n\t\"gpt-3.5-turbo\": {\n\t\tcontextWindow: 12114,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"gpt-3.5-turbo\",\n\t\tversion: \"gpt-3.5-turbo-0613\",\n\t\tname: \"GPT 3.5 Turbo\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 12114,\n\t},\n\t\"gpt-4o-mini\": {\n\t\tcontextWindow: 12115,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"gpt-4o-mini\",\n\t\tversion: \"gpt-4o-mini-2024-07-18\",\n\t\tname: \"GPT-4o mini\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 12115,\n\t},\n\t\"gpt-4\": {\n\t\tcontextWindow: 28501,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"gpt-4\",\n\t\tversion: \"gpt-4-0613\",\n\t\tname: \"GPT 4\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 28501,\n\t},\n\t\"gpt-4-0125-preview\": {\n\t\tcontextWindow: 63826,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"gpt-4-turbo\",\n\t\tversion: \"gpt-4-0125-preview\",\n\t\tname: \"GPT 4 Turbo\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 63826,\n\t},\n\t\"gpt-4o\": {\n\t\tcontextWindow: 63827,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"gpt-4o\",\n\t\tversion: \"gpt-4o-2024-11-20\",\n\t\tname: \"GPT-4o\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 63827,\n\t},\n\to1: {\n\t\tcontextWindow: 19827,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"o1-ga\",\n\t\tversion: \"o1-2024-12-17\",\n\t\tname: \"o1 (Preview)\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 19827,\n\t},\n\t\"o3-mini\": {\n\t\tcontextWindow: 63827,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"o3-mini\",\n\t\tversion: \"o3-mini-2025-01-31\",\n\t\tname: \"o3-mini\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 63827,\n\t},\n\t\"claude-3.5-sonnet\": {\n\t\tcontextWindow: 81638,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"claude-3.5-sonnet\",\n\t\tversion: \"claude-3.5-sonnet\",\n\t\tname: \"Claude 3.5 Sonnet\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 81638,\n\t},\n\t\"claude-4-sonnet\": {\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"claude-sonnet-4\",\n\t\tversion: \"claude-sonnet-4\",\n\t\tname: \"Claude Sonnet 4\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 111836,\n\t},\n\t\"gemini-2.0-flash-001\": {\n\t\tcontextWindow: 127827,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"gemini-2.0-flash\",\n\t\tversion: \"gemini-2.0-flash-001\",\n\t\tname: \"Gemini 2.0 Flash\",\n\t\tsupportsToolCalling: false,\n\t\tmaxInputTokens: 127827,\n\t},\n\t\"gemini-2.5-pro\": {\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"gemini-2.5-pro\",\n\t\tversion: \"gemini-2.5-pro-preview-03-25\",\n\t\tname: \"Gemini 2.5 Pro (Preview)\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 108637,\n\t},\n\t\"o4-mini\": {\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"o4-mini\",\n\t\tversion: \"o4-mini-2025-04-16\",\n\t\tname: \"o4-mini (Preview)\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 111452,\n\t},\n\t\"gpt-4.1\": {\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"gpt-4.1\",\n\t\tversion: \"gpt-4.1-2025-04-14\",\n\t\tname: \"GPT-4.1 (Preview)\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 111452,\n\t},\n\t\"gpt-5-mini\": {\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"gpt-5-mini\",\n\t\tversion: \"gpt-5-mini\",\n\t\tname: \"GPT-5 mini (Preview)\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 108637,\n\t},\n\t\"gpt-5\": {\n\t\tcontextWindow: 128000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: false,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tfamily: \"gpt-5\",\n\t\tversion: \"gpt-5\",\n\t\tname: \"GPT-5 (Preview)\",\n\t\tsupportsToolCalling: true,\n\t\tmaxInputTokens: 108637,\n\t},\n} as const satisfies Record<\n\tstring,\n\tModelInfo & {\n\t\tfamily: string\n\t\tversion: string\n\t\tname: string\n\t\tsupportsToolCalling: boolean\n\t\tmaxInputTokens: number\n\t}\n>\n","import type { ModelInfo } from \"../model.js\"\n\n// https://docs.x.ai/docs/api-reference\nexport type XAIModelId = keyof typeof xaiModels\n\nexport const xaiDefaultModelId: XAIModelId = \"grok-code-fast-1\"\n\nexport const xaiModels = {\n\t\"grok-code-fast-1\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 256_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.2,\n\t\toutputPrice: 1.5,\n\t\tcacheWritesPrice: 0.02,\n\t\tcacheReadsPrice: 0.02,\n\t\tdescription: \"xAI's Grok Code Fast model with 256K context window\",\n\t\tincludedTools: [\"search_replace\"],\n\t\texcludedTools: [\"apply_diff\"],\n\t},\n\t\"grok-4-1-fast-reasoning\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 2_000_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.2,\n\t\toutputPrice: 0.5,\n\t\tcacheWritesPrice: 0.05,\n\t\tcacheReadsPrice: 0.05,\n\t\tdescription:\n\t\t\t\"xAI's Grok 4.1 Fast model with 2M context window, optimized for high-performance agentic tool calling with reasoning\",\n\t\tincludedTools: [\"search_replace\"],\n\t\texcludedTools: [\"apply_diff\"],\n\t},\n\t\"grok-4-1-fast-non-reasoning\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 2_000_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.2,\n\t\toutputPrice: 0.5,\n\t\tcacheWritesPrice: 0.05,\n\t\tcacheReadsPrice: 0.05,\n\t\tdescription:\n\t\t\t\"xAI's Grok 4.1 Fast model with 2M context window, optimized for high-performance agentic tool calling\",\n\t\tincludedTools: [\"search_replace\"],\n\t\texcludedTools: [\"apply_diff\"],\n\t},\n\t\"grok-4-fast-reasoning\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 2_000_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.2,\n\t\toutputPrice: 0.5,\n\t\tcacheWritesPrice: 0.05,\n\t\tcacheReadsPrice: 0.05,\n\t\tdescription:\n\t\t\t\"xAI's Grok 4 Fast model with 2M context window, optimized for high-performance agentic tool calling with reasoning\",\n\t\tincludedTools: [\"search_replace\"],\n\t\texcludedTools: [\"apply_diff\"],\n\t},\n\t\"grok-4-fast-non-reasoning\": {\n\t\tmaxTokens: 65_536,\n\t\tcontextWindow: 2_000_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.2,\n\t\toutputPrice: 0.5,\n\t\tcacheWritesPrice: 0.05,\n\t\tcacheReadsPrice: 0.05,\n\t\tdescription:\n\t\t\t\"xAI's Grok 4 Fast model with 2M context window, optimized for high-performance agentic tool calling\",\n\t\tincludedTools: [\"search_replace\"],\n\t\texcludedTools: [\"apply_diff\"],\n\t},\n\t\"grok-4-0709\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 256_000,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 0.75,\n\t\tcacheReadsPrice: 0.75,\n\t\tdescription: \"xAI's Grok-4 model with 256K context window\",\n\t\tincludedTools: [\"search_replace\"],\n\t\texcludedTools: [\"apply_diff\"],\n\t},\n\t\"grok-3-mini\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 0.5,\n\t\tcacheWritesPrice: 0.07,\n\t\tcacheReadsPrice: 0.07,\n\t\tdescription: \"xAI's Grok-3 mini model with 128K context window\",\n\t\tsupportsReasoningEffort: [\"low\", \"high\"],\n\t\treasoningEffort: \"low\",\n\t\tincludedTools: [\"search_replace\"],\n\t\texcludedTools: [\"apply_diff\"],\n\t},\n\t\"grok-3\": {\n\t\tmaxTokens: 8192,\n\t\tcontextWindow: 131072,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 3.0,\n\t\toutputPrice: 15.0,\n\t\tcacheWritesPrice: 0.75,\n\t\tcacheReadsPrice: 0.75,\n\t\tdescription: \"xAI's Grok-3 model with 128K context window\",\n\t\tincludedTools: [\"search_replace\"],\n\t\texcludedTools: [\"apply_diff\"],\n\t},\n} as const satisfies Record<string, ModelInfo>\n","import type { ModelInfo } from \"../model.js\"\n\n// https://ai-gateway.vercel.sh/v1/\nexport const vercelAiGatewayDefaultModelId = \"anthropic/claude-sonnet-4\"\n\nexport const VERCEL_AI_GATEWAY_PROMPT_CACHING_MODELS = new Set([\n\t\"anthropic/claude-3-haiku\",\n\t\"anthropic/claude-3-opus\",\n\t\"anthropic/claude-3.5-haiku\",\n\t\"anthropic/claude-3.5-sonnet\",\n\t\"anthropic/claude-3.7-sonnet\",\n\t\"anthropic/claude-opus-4\",\n\t\"anthropic/claude-opus-4.1\",\n\t\"anthropic/claude-sonnet-4\",\n\t\"openai/gpt-4.1\",\n\t\"openai/gpt-4.1-mini\",\n\t\"openai/gpt-4.1-nano\",\n\t\"openai/gpt-4o\",\n\t\"openai/gpt-4o-mini\",\n\t\"openai/gpt-5\",\n\t\"openai/gpt-5-mini\",\n\t\"openai/gpt-5-nano\",\n\t\"openai/o1\",\n\t\"openai/o3\",\n\t\"openai/o3-mini\",\n\t\"openai/o4-mini\",\n])\n\nexport const VERCEL_AI_GATEWAY_VISION_ONLY_MODELS = new Set([\n\t\"alibaba/qwen-3-14b\",\n\t\"alibaba/qwen-3-235b\",\n\t\"alibaba/qwen-3-30b\",\n\t\"alibaba/qwen-3-32b\",\n\t\"alibaba/qwen3-coder\",\n\t\"amazon/nova-pro\",\n\t\"anthropic/claude-3.5-haiku\",\n\t\"google/gemini-1.5-flash-8b\",\n\t\"google/gemini-2.0-flash-thinking\",\n\t\"google/gemma-3-27b\",\n\t\"mistral/devstral-small\",\n\t\"xai/grok-vision-beta\",\n])\n\nexport const VERCEL_AI_GATEWAY_VISION_AND_TOOLS_MODELS = new Set([\n\t\"amazon/nova-lite\",\n\t\"anthropic/claude-3-haiku\",\n\t\"anthropic/claude-3-opus\",\n\t\"anthropic/claude-3-sonnet\",\n\t\"anthropic/claude-3.5-sonnet\",\n\t\"anthropic/claude-3.7-sonnet\",\n\t\"anthropic/claude-opus-4\",\n\t\"anthropic/claude-opus-4.1\",\n\t\"anthropic/claude-sonnet-4\",\n\t\"google/gemini-1.5-flash\",\n\t\"google/gemini-1.5-pro\",\n\t\"google/gemini-2.0-flash\",\n\t\"google/gemini-2.0-flash-lite\",\n\t\"google/gemini-2.0-pro\",\n\t\"google/gemini-2.5-flash\",\n\t\"google/gemini-2.5-flash-lite\",\n\t\"google/gemini-2.5-pro\",\n\t\"google/gemini-exp\",\n\t\"meta/llama-3.2-11b\",\n\t\"meta/llama-3.2-90b\",\n\t\"meta/llama-3.3\",\n\t\"meta/llama-4-maverick\",\n\t\"meta/llama-4-scout\",\n\t\"mistral/pixtral-12b\",\n\t\"mistral/pixtral-large\",\n\t\"moonshotai/kimi-k2\",\n\t\"openai/gpt-4-turbo\",\n\t\"openai/gpt-4.1\",\n\t\"openai/gpt-4.1-mini\",\n\t\"openai/gpt-4.1-nano\",\n\t\"openai/gpt-4.5-preview\",\n\t\"openai/gpt-4o\",\n\t\"openai/gpt-4o-mini\",\n\t\"openai/gpt-oss-120b\",\n\t\"openai/gpt-oss-20b\",\n\t\"openai/o3\",\n\t\"openai/o3-pro\",\n\t\"openai/o4-mini\",\n\t\"vercel/v0-1.0-md\",\n\t\"xai/grok-2-vision\",\n\t\"zai/glm-4.5v\",\n])\n\nexport const vercelAiGatewayDefaultModelInfo: ModelInfo = {\n\tmaxTokens: 64000,\n\tcontextWindow: 200000,\n\tsupportsImages: true,\n\tsupportsPromptCache: true,\n\tinputPrice: 3,\n\toutputPrice: 15,\n\tcacheWritesPrice: 3.75,\n\tcacheReadsPrice: 0.3,\n\tdescription:\n\t\t\"Claude Sonnet 4 significantly improves on Sonnet 3.7's industry-leading capabilities, excelling in coding with a state-of-the-art 72.7% on SWE-bench. The model balances performance and efficiency for internal and external use cases, with enhanced steerability for greater control over implementations. While not matching Opus 4 in most domains, it delivers an optimal mix of capability and practicality.\",\n}\n\nexport const VERCEL_AI_GATEWAY_DEFAULT_TEMPERATURE = 0.7\n","import type { ModelInfo } from \"../model.js\"\nimport { ZaiApiLine } from \"../provider-settings.js\"\n\n// Z AI\n// https://docs.z.ai/guides/llm/glm-4-32b-0414-128k\n// https://docs.z.ai/guides/llm/glm-4.5\n// https://docs.z.ai/guides/llm/glm-4.6\n// https://docs.z.ai/guides/overview/pricing\n// https://bigmodel.cn/pricing\n\nexport type InternationalZAiModelId = keyof typeof internationalZAiModels\nexport const internationalZAiDefaultModelId: InternationalZAiModelId = \"glm-4.6\"\nexport const internationalZAiModels = {\n\t\"glm-4.5\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 2.2,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.11,\n\t\tdescription:\n\t\t\t\"GLM-4.5 is Zhipu's latest featured model. Its comprehensive capabilities in reasoning, coding, and agent reach the state-of-the-art (SOTA) level among open-source models, with a context length of up to 128k.\",\n\t},\n\t\"glm-4.5-air\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.2,\n\t\toutputPrice: 1.1,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.03,\n\t\tdescription:\n\t\t\t\"GLM-4.5-Air is the lightweight version of GLM-4.5. It balances performance and cost-effectiveness, and can flexibly switch to hybrid thinking models.\",\n\t},\n\t\"glm-4.5-x\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 2.2,\n\t\toutputPrice: 8.9,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.45,\n\t\tdescription:\n\t\t\t\"GLM-4.5-X is a high-performance variant optimized for strong reasoning with ultra-fast responses.\",\n\t},\n\t\"glm-4.5-airx\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 1.1,\n\t\toutputPrice: 4.5,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.22,\n\t\tdescription: \"GLM-4.5-AirX is a lightweight, ultra-fast variant delivering strong performance with lower cost.\",\n\t},\n\t\"glm-4.5-flash\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"GLM-4.5-Flash is a free, high-speed model excellent for reasoning, coding, and agentic tasks.\",\n\t},\n\t\"glm-4.5v\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 1.8,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.11,\n\t\tdescription:\n\t\t\t\"GLM-4.5V is Z.AI's multimodal visual reasoning model (image/video/text/file input), optimized for GUI tasks, grounding, and document/video understanding.\",\n\t},\n\t\"glm-4.6\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 200_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.6,\n\t\toutputPrice: 2.2,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.11,\n\t\tdescription:\n\t\t\t\"GLM-4.6 is Zhipu's newest model with an extended context window of up to 200k tokens, providing enhanced capabilities for processing longer documents and conversations.\",\n\t},\n\t\"glm-4-32b-0414-128k\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: false,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.1,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"GLM-4-32B is a 32 billion parameter model with 128k context length, optimized for efficiency.\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport type MainlandZAiModelId = keyof typeof mainlandZAiModels\nexport const mainlandZAiDefaultModelId: MainlandZAiModelId = \"glm-4.6\"\nexport const mainlandZAiModels = {\n\t\"glm-4.5\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.29,\n\t\toutputPrice: 1.14,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.057,\n\t\tdescription:\n\t\t\t\"GLM-4.5 is Zhipu's latest featured model. Its comprehensive capabilities in reasoning, coding, and agent reach the state-of-the-art (SOTA) level among open-source models, with a context length of up to 128k.\",\n\t},\n\t\"glm-4.5-air\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.6,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.02,\n\t\tdescription:\n\t\t\t\"GLM-4.5-Air is the lightweight version of GLM-4.5. It balances performance and cost-effectiveness, and can flexibly switch to hybrid thinking models.\",\n\t},\n\t\"glm-4.5-x\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.29,\n\t\toutputPrice: 1.14,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.057,\n\t\tdescription:\n\t\t\t\"GLM-4.5-X is a high-performance variant optimized for strong reasoning with ultra-fast responses.\",\n\t},\n\t\"glm-4.5-airx\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.1,\n\t\toutputPrice: 0.6,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.02,\n\t\tdescription: \"GLM-4.5-AirX is a lightweight, ultra-fast variant delivering strong performance with lower cost.\",\n\t},\n\t\"glm-4.5-flash\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0,\n\t\toutputPrice: 0,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0,\n\t\tdescription: \"GLM-4.5-Flash is a free, high-speed model excellent for reasoning, coding, and agentic tasks.\",\n\t},\n\t\"glm-4.5v\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 131_072,\n\t\tsupportsImages: true,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.29,\n\t\toutputPrice: 0.93,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.057,\n\t\tdescription:\n\t\t\t\"GLM-4.5V is Z.AI's multimodal visual reasoning model (image/video/text/file input), optimized for GUI tasks, grounding, and document/video understanding.\",\n\t},\n\t\"glm-4.6\": {\n\t\tmaxTokens: 98_304,\n\t\tcontextWindow: 204_800,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tinputPrice: 0.29,\n\t\toutputPrice: 1.14,\n\t\tcacheWritesPrice: 0,\n\t\tcacheReadsPrice: 0.057,\n\t\tdescription:\n\t\t\t\"GLM-4.6 is Zhipu's newest model with an extended context window of up to 200k tokens, providing enhanced capabilities for processing longer documents and conversations.\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const ZAI_DEFAULT_TEMPERATURE = 0.6\n\nexport const zaiApiLineConfigs = {\n\tinternational_coding: {\n\t\tname: \"International Coding\",\n\t\tbaseUrl: \"https://api.z.ai/api/coding/paas/v4\",\n\t\tisChina: false,\n\t},\n\tchina_coding: {\n\t\tname: \"China Coding\",\n\t\tbaseUrl: \"https://open.bigmodel.cn/api/coding/paas/v4\",\n\t\tisChina: true,\n\t},\n\tinternational_api: {\n\t\tname: \"International API\",\n\t\tbaseUrl: \"https://api.z.ai/api/paas/v4\",\n\t\tisChina: false,\n\t},\n\tchina_api: {\n\t\tname: \"China API\",\n\t\tbaseUrl: \"https://open.bigmodel.cn/api/paas/v4\",\n\t\tisChina: true,\n\t},\n} satisfies Record<ZaiApiLine, { name: string; baseUrl: string; isChina: boolean }>\n","import type { ModelInfo } from \"../model.js\"\n\n// Default fallback values for DeepInfra when model metadata is not yet loaded.\nexport const deepInfraDefaultModelId = \"Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo\"\n\nexport const deepInfraDefaultModelInfo: ModelInfo = {\n\tmaxTokens: 16384,\n\tcontextWindow: 262144,\n\tsupportsImages: false,\n\tsupportsPromptCache: false,\n\tsupportsNativeTools: true,\n\tinputPrice: 0.3,\n\toutputPrice: 1.2,\n\tdescription: \"Qwen 3 Coder 480B A35B Instruct Turbo model, 256K context.\",\n}\n","import type { ModelInfo } from \"../model.js\"\n\n// Minimax\n// https://platform.minimax.io/docs/guides/pricing\n// https://platform.minimax.io/docs/api-reference/text-openai-api\n// https://platform.minimax.io/docs/api-reference/text-anthropic-api\nexport type MinimaxModelId = keyof typeof minimaxModels\nexport const minimaxDefaultModelId: MinimaxModelId = \"MiniMax-M2\"\n\nexport const minimaxModels = {\n\t\"MiniMax-M2\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 192_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tpreserveReasoning: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 1.2,\n\t\tcacheWritesPrice: 0.375,\n\t\tcacheReadsPrice: 0.03,\n\t\tdescription:\n\t\t\t\"MiniMax M2, a model born for Agents and code, featuring Top-tier Coding Capabilities, Powerful Agentic Performance, and Ultimate Cost-Effectiveness & Speed.\",\n\t},\n\t\"MiniMax-M2-Stable\": {\n\t\tmaxTokens: 16_384,\n\t\tcontextWindow: 192_000,\n\t\tsupportsImages: false,\n\t\tsupportsPromptCache: true,\n\t\tsupportsNativeTools: true,\n\t\tpreserveReasoning: true,\n\t\tinputPrice: 0.3,\n\t\toutputPrice: 1.2,\n\t\tcacheWritesPrice: 0.375,\n\t\tcacheReadsPrice: 0.03,\n\t\tdescription:\n\t\t\t\"MiniMax M2 Stable (High Concurrency, Commercial Use), a model born for Agents and code, featuring Top-tier Coding Capabilities, Powerful Agentic Performance, and Ultimate Cost-Effectiveness & Speed.\",\n\t},\n} as const satisfies Record<string, ModelInfo>\n\nexport const minimaxDefaultModelInfo: ModelInfo = minimaxModels[minimaxDefaultModelId]\n\nexport const MINIMAX_DEFAULT_MAX_TOKENS = 16_384\nexport const MINIMAX_DEFAULT_TEMPERATURE = 1.0\n","export * from \"./anthropic.js\"\nexport * from \"./baseten.js\"\nexport * from \"./bedrock.js\"\nexport * from \"./cerebras.js\"\nexport * from \"./chutes.js\"\nexport * from \"./claude-code.js\"\nexport * from \"./deepseek.js\"\nexport * from \"./doubao.js\"\nexport * from \"./featherless.js\"\nexport * from \"./fireworks.js\"\nexport * from \"./gemini.js\"\nexport * from \"./groq.js\"\nexport * from \"./huggingface.js\"\nexport * from \"./io-intelligence.js\"\nexport * from \"./lite-llm.js\"\nexport * from \"./lm-studio.js\"\nexport * from \"./mistral.js\"\nexport * from \"./moonshot.js\"\nexport * from \"./ollama.js\"\nexport * from \"./openai.js\"\nexport * from \"./openrouter.js\"\nexport * from \"./qwen-code.js\"\nexport * from \"./requesty.js\"\nexport * from \"./roo.js\"\nexport * from \"./sambanova.js\"\nexport * from \"./unbound.js\"\nexport * from \"./vertex.js\"\nexport * from \"./vscode-llm.js\"\nexport * from \"./xai.js\"\nexport * from \"./vercel-ai-gateway.js\"\nexport * from \"./zai.js\"\nexport * from \"./deepinfra.js\"\nexport * from \"./minimax.js\"\n\nimport { anthropicDefaultModelId } from \"./anthropic.js\"\nimport { basetenDefaultModelId } from \"./baseten.js\"\nimport { bedrockDefaultModelId } from \"./bedrock.js\"\nimport { cerebrasDefaultModelId } from \"./cerebras.js\"\nimport { chutesDefaultModelId } from \"./chutes.js\"\nimport { claudeCodeDefaultModelId } from \"./claude-code.js\"\nimport { deepSeekDefaultModelId } from \"./deepseek.js\"\nimport { doubaoDefaultModelId } from \"./doubao.js\"\nimport { featherlessDefaultModelId } from \"./featherless.js\"\nimport { fireworksDefaultModelId } from \"./fireworks.js\"\nimport { geminiDefaultModelId } from \"./gemini.js\"\nimport { groqDefaultModelId } from \"./groq.js\"\nimport { ioIntelligenceDefaultModelId } from \"./io-intelligence.js\"\nimport { litellmDefaultModelId } from \"./lite-llm.js\"\nimport { mistralDefaultModelId } from \"./mistral.js\"\nimport { moonshotDefaultModelId } from \"./moonshot.js\"\nimport { openRouterDefaultModelId } from \"./openrouter.js\"\nimport { qwenCodeDefaultModelId } from \"./qwen-code.js\"\nimport { requestyDefaultModelId } from \"./requesty.js\"\nimport { rooDefaultModelId } from \"./roo.js\"\nimport { sambaNovaDefaultModelId } from \"./sambanova.js\"\nimport { unboundDefaultModelId } from \"./unbound.js\"\nimport { vertexDefaultModelId } from \"./vertex.js\"\nimport { vscodeLlmDefaultModelId } from \"./vscode-llm.js\"\nimport { xaiDefaultModelId } from \"./xai.js\"\nimport { vercelAiGatewayDefaultModelId } from \"./vercel-ai-gateway.js\"\nimport { internationalZAiDefaultModelId, mainlandZAiDefaultModelId } from \"./zai.js\"\nimport { deepInfraDefaultModelId } from \"./deepinfra.js\"\nimport { minimaxDefaultModelId } from \"./minimax.js\"\n\n// Import the ProviderName type from provider-settings to avoid duplication\nimport type { ProviderName } from \"../provider-settings.js\"\n\n/**\n * Get the default model ID for a given provider.\n * This function returns only the provider's default model ID, without considering user configuration.\n * Used as a fallback when provider models are still loading.\n */\nexport function getProviderDefaultModelId(\n\tprovider: ProviderName,\n\toptions: { isChina?: boolean } = { isChina: false },\n): string {\n\tswitch (provider) {\n\t\tcase \"openrouter\":\n\t\t\treturn openRouterDefaultModelId\n\t\tcase \"requesty\":\n\t\t\treturn requestyDefaultModelId\n\t\tcase \"unbound\":\n\t\t\treturn unboundDefaultModelId\n\t\tcase \"litellm\":\n\t\t\treturn litellmDefaultModelId\n\t\tcase \"xai\":\n\t\t\treturn xaiDefaultModelId\n\t\tcase \"groq\":\n\t\t\treturn groqDefaultModelId\n\t\tcase \"huggingface\":\n\t\t\treturn \"meta-llama/Llama-3.3-70B-Instruct\"\n\t\tcase \"chutes\":\n\t\t\treturn chutesDefaultModelId\n\t\tcase \"baseten\":\n\t\t\treturn basetenDefaultModelId\n\t\tcase \"bedrock\":\n\t\t\treturn bedrockDefaultModelId\n\t\tcase \"vertex\":\n\t\t\treturn vertexDefaultModelId\n\t\tcase \"gemini\":\n\t\t\treturn geminiDefaultModelId\n\t\tcase \"deepseek\":\n\t\t\treturn deepSeekDefaultModelId\n\t\tcase \"doubao\":\n\t\t\treturn doubaoDefaultModelId\n\t\tcase \"moonshot\":\n\t\t\treturn moonshotDefaultModelId\n\t\tcase \"minimax\":\n\t\t\treturn minimaxDefaultModelId\n\t\tcase \"zai\":\n\t\t\treturn options?.isChina ? mainlandZAiDefaultModelId : internationalZAiDefaultModelId\n\t\tcase \"openai-native\":\n\t\t\treturn \"gpt-4o\" // Based on openai-native patterns\n\t\tcase \"mistral\":\n\t\t\treturn mistralDefaultModelId\n\t\tcase \"openai\":\n\t\t\treturn \"\" // OpenAI provider uses custom model configuration\n\t\tcase \"ollama\":\n\t\t\treturn \"\" // Ollama uses dynamic model selection\n\t\tcase \"lmstudio\":\n\t\t\treturn \"\" // LMStudio uses dynamic model selection\n\t\tcase \"deepinfra\":\n\t\t\treturn deepInfraDefaultModelId\n\t\tcase \"vscode-lm\":\n\t\t\treturn vscodeLlmDefaultModelId\n\t\tcase \"claude-code\":\n\t\t\treturn claudeCodeDefaultModelId\n\t\tcase \"cerebras\":\n\t\t\treturn cerebrasDefaultModelId\n\t\tcase \"sambanova\":\n\t\t\treturn sambaNovaDefaultModelId\n\t\tcase \"fireworks\":\n\t\t\treturn fireworksDefaultModelId\n\t\tcase \"featherless\":\n\t\t\treturn featherlessDefaultModelId\n\t\tcase \"io-intelligence\":\n\t\t\treturn ioIntelligenceDefaultModelId\n\t\tcase \"roo\":\n\t\t\treturn rooDefaultModelId\n\t\tcase \"qwen-code\":\n\t\t\treturn qwenCodeDefaultModelId\n\t\tcase \"vercel-ai-gateway\":\n\t\t\treturn vercelAiGatewayDefaultModelId\n\t\tcase \"anthropic\":\n\t\tcase \"gemini-cli\":\n\t\tcase \"human-relay\":\n\t\tcase \"fake-ai\":\n\t\tdefault:\n\t\t\treturn anthropicDefaultModelId\n\t}\n}\n","import { z } from \"zod\"\n\n/**\n * HistoryItem\n */\n\nexport const historyItemSchema = z.object({\n\tid: z.string(),\n\trootTaskId: z.string().optional(),\n\tparentTaskId: z.string().optional(),\n\tnumber: z.number(),\n\tts: z.number(),\n\ttask: z.string(),\n\ttokensIn: z.number(),\n\ttokensOut: z.number(),\n\tcacheWrites: z.number().optional(),\n\tcacheReads: z.number().optional(),\n\ttotalCost: z.number(),\n\tsize: z.number().optional(),\n\tworkspace: z.string().optional(),\n\tmode: z.string().optional(),\n\tstatus: z.enum([\"active\", \"completed\", \"delegated\"]).optional(),\n\tdelegatedToId: z.string().optional(), // Last child this parent delegated to\n\tchildIds: z.array(z.string()).optional(), // All children spawned by this task\n\tawaitingChildId: z.string().optional(), // Child currently awaited (set when delegated)\n\tcompletedByChildId: z.string().optional(), // Child that completed and resumed this parent\n\tcompletionResultSummary: z.string().optional(), // Summary from completed child\n})\n\nexport type HistoryItem = z.infer<typeof historyItemSchema>\n","import { z } from \"zod\"\n\nimport type { Keys, Equals, AssertEqual } from \"./type-fu.js\"\n\n/**\n * ExperimentId\n */\n\nexport const experimentIds = [\n\t\"powerSteering\",\n\t\"multiFileApplyDiff\",\n\t\"preventFocusDisruption\",\n\t\"imageGeneration\",\n\t\"runSlashCommand\",\n\t\"multipleNativeToolCalls\",\n] as const\n\nexport const experimentIdsSchema = z.enum(experimentIds)\n\nexport type ExperimentId = z.infer<typeof experimentIdsSchema>\n\n/**\n * Experiments\n */\n\nexport const experimentsSchema = z.object({\n\tpowerSteering: z.boolean().optional(),\n\tmultiFileApplyDiff: z.boolean().optional(),\n\tpreventFocusDisruption: z.boolean().optional(),\n\timageGeneration: z.boolean().optional(),\n\trunSlashCommand: z.boolean().optional(),\n\tmultipleNativeToolCalls: z.boolean().optional(),\n})\n\nexport type Experiments = z.infer<typeof experimentsSchema>\n\ntype _AssertExperiments = AssertEqual<Equals<ExperimentId, Keys<Experiments>>>\n","import { z } from \"zod\"\n\nimport { providerNames } from \"./provider-settings.js\"\nimport { clineMessageSchema } from \"./message.js\"\n\n/**\n * TelemetrySetting\n */\n\nexport const telemetrySettings = [\"unset\", \"enabled\", \"disabled\"] as const\n\nexport const telemetrySettingsSchema = z.enum(telemetrySettings)\n\nexport type TelemetrySetting = z.infer<typeof telemetrySettingsSchema>\n\n/**\n * TelemetryEventName\n */\n\nexport enum TelemetryEventName {\n\tTASK_CREATED = \"Task Created\",\n\tTASK_RESTARTED = \"Task Reopened\",\n\tTASK_COMPLETED = \"Task Completed\",\n\tTASK_MESSAGE = \"Task Message\",\n\tTASK_CONVERSATION_MESSAGE = \"Conversation Message\",\n\tLLM_COMPLETION = \"LLM Completion\",\n\tMODE_SWITCH = \"Mode Switched\",\n\tMODE_SELECTOR_OPENED = \"Mode Selector Opened\",\n\tTOOL_USED = \"Tool Used\",\n\n\tCHECKPOINT_CREATED = \"Checkpoint Created\",\n\tCHECKPOINT_RESTORED = \"Checkpoint Restored\",\n\tCHECKPOINT_DIFFED = \"Checkpoint Diffed\",\n\n\tTAB_SHOWN = \"Tab Shown\",\n\tMODE_SETTINGS_CHANGED = \"Mode Setting Changed\",\n\tCUSTOM_MODE_CREATED = \"Custom Mode Created\",\n\n\tCONTEXT_CONDENSED = \"Context Condensed\",\n\tSLIDING_WINDOW_TRUNCATION = \"Sliding Window Truncation\",\n\n\tCODE_ACTION_USED = \"Code Action Used\",\n\tPROMPT_ENHANCED = \"Prompt Enhanced\",\n\n\tTITLE_BUTTON_CLICKED = \"Title Button Clicked\",\n\n\tAUTHENTICATION_INITIATED = \"Authentication Initiated\",\n\n\tMARKETPLACE_ITEM_INSTALLED = \"Marketplace Item Installed\",\n\tMARKETPLACE_ITEM_REMOVED = \"Marketplace Item Removed\",\n\tMARKETPLACE_TAB_VIEWED = \"Marketplace Tab Viewed\",\n\tMARKETPLACE_INSTALL_BUTTON_CLICKED = \"Marketplace Install Button Clicked\",\n\n\tSHARE_BUTTON_CLICKED = \"Share Button Clicked\",\n\tSHARE_ORGANIZATION_CLICKED = \"Share Organization Clicked\",\n\tSHARE_PUBLIC_CLICKED = \"Share Public Clicked\",\n\tSHARE_CONNECT_TO_CLOUD_CLICKED = \"Share Connect To Cloud Clicked\",\n\n\tACCOUNT_CONNECT_CLICKED = \"Account Connect Clicked\",\n\tACCOUNT_CONNECT_SUCCESS = \"Account Connect Success\",\n\tACCOUNT_LOGOUT_CLICKED = \"Account Logout Clicked\",\n\tACCOUNT_LOGOUT_SUCCESS = \"Account Logout Success\",\n\n\tFEATURED_PROVIDER_CLICKED = \"Featured Provider Clicked\",\n\n\tUPSELL_DISMISSED = \"Upsell Dismissed\",\n\tUPSELL_CLICKED = \"Upsell Clicked\",\n\n\tSCHEMA_VALIDATION_ERROR = \"Schema Validation Error\",\n\tDIFF_APPLICATION_ERROR = \"Diff Application Error\",\n\tSHELL_INTEGRATION_ERROR = \"Shell Integration Error\",\n\tCONSECUTIVE_MISTAKE_ERROR = \"Consecutive Mistake Error\",\n\tCODE_INDEX_ERROR = \"Code Index Error\",\n\tTELEMETRY_SETTINGS_CHANGED = \"Telemetry Settings Changed\",\n\tMODEL_CACHE_EMPTY_RESPONSE = \"Model Cache Empty Response\",\n}\n\n/**\n * TelemetryProperties\n */\n\nexport const staticAppPropertiesSchema = z.object({\n\tappName: z.string(),\n\tappVersion: z.string(),\n\tvscodeVersion: z.string(),\n\tplatform: z.string(),\n\teditorName: z.string(),\n\thostname: z.string().optional(),\n})\n\nexport type StaticAppProperties = z.infer<typeof staticAppPropertiesSchema>\n\nexport const dynamicAppPropertiesSchema = z.object({\n\tlanguage: z.string(),\n\tmode: z.string(),\n})\n\nexport type DynamicAppProperties = z.infer<typeof dynamicAppPropertiesSchema>\n\nexport const cloudAppPropertiesSchema = z.object({\n\tcloudIsAuthenticated: z.boolean().optional(),\n})\n\nexport type CloudAppProperties = z.infer<typeof cloudAppPropertiesSchema>\n\nexport const appPropertiesSchema = z.object({\n\t...staticAppPropertiesSchema.shape,\n\t...dynamicAppPropertiesSchema.shape,\n\t...cloudAppPropertiesSchema.shape,\n})\n\nexport type AppProperties = z.infer<typeof appPropertiesSchema>\n\nexport const taskPropertiesSchema = z.object({\n\ttaskId: z.string().optional(),\n\tparentTaskId: z.string().optional(),\n\tapiProvider: z.enum(providerNames).optional(),\n\tmodelId: z.string().optional(),\n\tdiffStrategy: z.string().optional(),\n\tisSubtask: z.boolean().optional(),\n\ttodos: z\n\t\t.object({\n\t\t\ttotal: z.number(),\n\t\t\tcompleted: z.number(),\n\t\t\tinProgress: z.number(),\n\t\t\tpending: z.number(),\n\t\t})\n\t\t.optional(),\n})\n\nexport type TaskProperties = z.infer<typeof taskPropertiesSchema>\n\nexport const gitPropertiesSchema = z.object({\n\trepositoryUrl: z.string().optional(),\n\trepositoryName: z.string().optional(),\n\tdefaultBranch: z.string().optional(),\n})\n\nexport type GitProperties = z.infer<typeof gitPropertiesSchema>\n\nexport const telemetryPropertiesSchema = z.object({\n\t...appPropertiesSchema.shape,\n\t...taskPropertiesSchema.shape,\n\t...gitPropertiesSchema.shape,\n})\n\nexport type TelemetryProperties = z.infer<typeof telemetryPropertiesSchema>\n\n/**\n * TelemetryEvent\n */\n\nexport type TelemetryEvent = {\n\tevent: TelemetryEventName\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tproperties?: Record<string, any>\n}\n\n/**\n * RooCodeTelemetryEvent\n */\n\nexport const rooCodeTelemetryEventSchema = z.discriminatedUnion(\"type\", [\n\tz.object({\n\t\ttype: z.enum([\n\t\t\tTelemetryEventName.TASK_CREATED,\n\t\t\tTelemetryEventName.TASK_RESTARTED,\n\t\t\tTelemetryEventName.TASK_COMPLETED,\n\t\t\tTelemetryEventName.TASK_CONVERSATION_MESSAGE,\n\t\t\tTelemetryEventName.MODE_SWITCH,\n\t\t\tTelemetryEventName.MODE_SELECTOR_OPENED,\n\t\t\tTelemetryEventName.TOOL_USED,\n\t\t\tTelemetryEventName.CHECKPOINT_CREATED,\n\t\t\tTelemetryEventName.CHECKPOINT_RESTORED,\n\t\t\tTelemetryEventName.CHECKPOINT_DIFFED,\n\t\t\tTelemetryEventName.CODE_ACTION_USED,\n\t\t\tTelemetryEventName.PROMPT_ENHANCED,\n\t\t\tTelemetryEventName.TITLE_BUTTON_CLICKED,\n\t\t\tTelemetryEventName.AUTHENTICATION_INITIATED,\n\t\t\tTelemetryEventName.MARKETPLACE_ITEM_INSTALLED,\n\t\t\tTelemetryEventName.MARKETPLACE_ITEM_REMOVED,\n\t\t\tTelemetryEventName.MARKETPLACE_TAB_VIEWED,\n\t\t\tTelemetryEventName.MARKETPLACE_INSTALL_BUTTON_CLICKED,\n\t\t\tTelemetryEventName.SHARE_BUTTON_CLICKED,\n\t\t\tTelemetryEventName.SHARE_ORGANIZATION_CLICKED,\n\t\t\tTelemetryEventName.SHARE_PUBLIC_CLICKED,\n\t\t\tTelemetryEventName.SHARE_CONNECT_TO_CLOUD_CLICKED,\n\t\t\tTelemetryEventName.ACCOUNT_CONNECT_CLICKED,\n\t\t\tTelemetryEventName.ACCOUNT_CONNECT_SUCCESS,\n\t\t\tTelemetryEventName.ACCOUNT_LOGOUT_CLICKED,\n\t\t\tTelemetryEventName.ACCOUNT_LOGOUT_SUCCESS,\n\t\t\tTelemetryEventName.FEATURED_PROVIDER_CLICKED,\n\t\t\tTelemetryEventName.UPSELL_DISMISSED,\n\t\t\tTelemetryEventName.UPSELL_CLICKED,\n\t\t\tTelemetryEventName.SCHEMA_VALIDATION_ERROR,\n\t\t\tTelemetryEventName.DIFF_APPLICATION_ERROR,\n\t\t\tTelemetryEventName.SHELL_INTEGRATION_ERROR,\n\t\t\tTelemetryEventName.CONSECUTIVE_MISTAKE_ERROR,\n\t\t\tTelemetryEventName.CODE_INDEX_ERROR,\n\t\t\tTelemetryEventName.MODEL_CACHE_EMPTY_RESPONSE,\n\t\t\tTelemetryEventName.CONTEXT_CONDENSED,\n\t\t\tTelemetryEventName.SLIDING_WINDOW_TRUNCATION,\n\t\t\tTelemetryEventName.TAB_SHOWN,\n\t\t\tTelemetryEventName.MODE_SETTINGS_CHANGED,\n\t\t\tTelemetryEventName.CUSTOM_MODE_CREATED,\n\t\t]),\n\t\tproperties: telemetryPropertiesSchema,\n\t}),\n\tz.object({\n\t\ttype: z.literal(TelemetryEventName.TELEMETRY_SETTINGS_CHANGED),\n\t\tproperties: z.object({\n\t\t\t...telemetryPropertiesSchema.shape,\n\t\t\tpreviousSetting: telemetrySettingsSchema,\n\t\t\tnewSetting: telemetrySettingsSchema,\n\t\t}),\n\t}),\n\tz.object({\n\t\ttype: z.literal(TelemetryEventName.TASK_MESSAGE),\n\t\tproperties: z.object({\n\t\t\t...telemetryPropertiesSchema.shape,\n\t\t\ttaskId: z.string(),\n\t\t\tmessage: clineMessageSchema,\n\t\t}),\n\t}),\n\tz.object({\n\t\ttype: z.literal(TelemetryEventName.LLM_COMPLETION),\n\t\tproperties: z.object({\n\t\t\t...telemetryPropertiesSchema.shape,\n\t\t\tinputTokens: z.number(),\n\t\t\toutputTokens: z.number(),\n\t\t\tcacheReadTokens: z.number().optional(),\n\t\t\tcacheWriteTokens: z.number().optional(),\n\t\t\tcost: z.number().optional(),\n\t\t}),\n\t}),\n])\n\nexport type RooCodeTelemetryEvent = z.infer<typeof rooCodeTelemetryEventSchema>\n\n/**\n * TelemetryEventSubscription\n */\n\nexport type TelemetryEventSubscription =\n\t| { type: \"include\"; events: TelemetryEventName[] }\n\t| { type: \"exclude\"; events: TelemetryEventName[] }\n\n/**\n * TelemetryPropertiesProvider\n */\n\nexport interface TelemetryPropertiesProvider {\n\tgetTelemetryProperties(): Promise<TelemetryProperties>\n}\n\n/**\n * TelemetryClient\n */\n\nexport interface TelemetryClient {\n\tsubscription?: TelemetryEventSubscription\n\n\tsetProvider(provider: TelemetryPropertiesProvider): void\n\tcapture(options: TelemetryEvent): Promise<void>\n\tcaptureException(error: Error, additionalProperties?: Record<string, unknown>): Promise<void>\n\tupdateTelemetryState(isOptedIn: boolean): void\n\tisTelemetryEnabled(): boolean\n\tshutdown(): Promise<void>\n}\n\n/**\n * Expected API error codes that should not be reported to telemetry.\n * These are normal/expected errors that users can't do much about.\n */\nexport const EXPECTED_API_ERROR_CODES = new Set([\n\t402, // Payment required - billing issues\n\t429, // Rate limit - expected when hitting API limits\n])\n\n/**\n * Patterns in error messages that indicate expected errors (rate limits, etc.)\n * These are checked when no numeric error code is available.\n */\nconst EXPECTED_ERROR_MESSAGE_PATTERNS = [\n\t/^429\\b/, // Message starts with \"429\"\n\t/rate limit/i, // Contains \"rate limit\" (case insensitive)\n]\n\n/**\n * Interface representing the error structure from OpenAI SDK.\n * OpenAI SDK errors (APIError, AuthenticationError, RateLimitError, etc.)\n * have a numeric `status` property and may contain nested error metadata.\n *\n * @see https://github.com/openai/openai-node/blob/master/src/error.ts\n */\ninterface OpenAISdkError {\n\t/** HTTP status code of the error response */\n\tstatus: number\n\t/** Optional error code (may be numeric or string) */\n\tcode?: number | string\n\t/** Primary error message */\n\tmessage: string\n\t/** Nested error object containing additional details from the API response */\n\terror?: {\n\t\tmessage?: string\n\t\tmetadata?: {\n\t\t\t/** Raw error message from upstream provider (e.g., OpenRouter upstream errors) */\n\t\t\traw?: string\n\t\t}\n\t}\n}\n\n/**\n * Type guard to check if an error object is an OpenAI SDK error.\n * OpenAI SDK errors (APIError and subclasses) have: status, code, message properties.\n */\nfunction isOpenAISdkError(error: unknown): error is OpenAISdkError {\n\treturn (\n\t\ttypeof error === \"object\" &&\n\t\terror !== null &&\n\t\t\"status\" in error &&\n\t\ttypeof (error as OpenAISdkError).status === \"number\"\n\t)\n}\n\n/**\n * Extracts the HTTP status code from an error object.\n * Supports OpenAI SDK errors that have a status property.\n * @param error - The error to extract status from\n * @returns The status code if available, undefined otherwise\n */\nexport function getErrorStatusCode(error: unknown): number | undefined {\n\tif (isOpenAISdkError(error)) {\n\t\treturn error.status\n\t}\n\treturn undefined\n}\n\n/**\n * Extracts the most descriptive error message from an OpenAI SDK error.\n * Prioritizes nested metadata (upstream provider errors) over the standard message.\n * @param error - The error to extract message from\n * @returns The best available error message, or undefined if not an OpenAI SDK error\n */\nexport function getErrorMessage(error: unknown): string | undefined {\n\tif (isOpenAISdkError(error)) {\n\t\t// Prioritize nested metadata which may contain upstream provider details\n\t\treturn error.error?.metadata?.raw || error.error?.message || error.message\n\t}\n\treturn undefined\n}\n\n/**\n * Helper to check if an API error should be reported to telemetry.\n * Filters out expected errors like rate limits by checking both error codes and messages.\n * @param errorCode - The HTTP error code (if available)\n * @param errorMessage - The error message (if available)\n * @returns true if the error should be reported, false if it should be filtered out\n */\nexport function shouldReportApiErrorToTelemetry(errorCode?: number, errorMessage?: string): boolean {\n\t// Check numeric error code\n\tif (errorCode !== undefined && EXPECTED_API_ERROR_CODES.has(errorCode)) {\n\t\treturn false\n\t}\n\n\t// Check error message for expected patterns (e.g., \"429 Rate limit exceeded\")\n\tif (errorMessage) {\n\t\tfor (const pattern of EXPECTED_ERROR_MESSAGE_PATTERNS) {\n\t\t\tif (pattern.test(errorMessage)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\treturn true\n}\n\n/**\n * Generic API provider error class for structured error tracking via PostHog.\n * Can be reused by any API provider.\n */\nexport class ApiProviderError extends Error {\n\tconstructor(\n\t\tmessage: string,\n\t\tpublic readonly provider: string,\n\t\tpublic readonly modelId: string,\n\t\tpublic readonly operation: string,\n\t\tpublic readonly errorCode?: number,\n\t) {\n\t\tsuper(message)\n\t\tthis.name = \"ApiProviderError\"\n\t}\n}\n\n/**\n * Type guard to check if an error is an ApiProviderError.\n * Used by telemetry to automatically extract structured properties.\n */\nexport function isApiProviderError(error: unknown): error is ApiProviderError {\n\treturn (\n\t\terror instanceof Error &&\n\t\terror.name === \"ApiProviderError\" &&\n\t\t\"provider\" in error &&\n\t\t\"modelId\" in error &&\n\t\t\"operation\" in error\n\t)\n}\n\n/**\n * Extracts properties from an ApiProviderError for telemetry.\n * Returns the structured properties that can be merged with additionalProperties.\n */\nexport function extractApiProviderErrorProperties(error: ApiProviderError): Record<string, unknown> {\n\treturn {\n\t\tprovider: error.provider,\n\t\tmodelId: error.modelId,\n\t\toperation: error.operation,\n\t\t...(error.errorCode !== undefined && { errorCode: error.errorCode }),\n\t}\n}\n","import { z } from \"zod\"\n\nimport { toolGroupsSchema } from \"./tool.js\"\n\n/**\n * GroupOptions\n */\n\nexport const groupOptionsSchema = z.object({\n\tfileRegex: z\n\t\t.string()\n\t\t.optional()\n\t\t.refine(\n\t\t\t(pattern) => {\n\t\t\t\tif (!pattern) {\n\t\t\t\t\treturn true // Optional, so empty is valid.\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tnew RegExp(pattern)\n\t\t\t\t\treturn true\n\t\t\t\t} catch {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ message: \"Invalid regular expression pattern\" },\n\t\t),\n\tdescription: z.string().optional(),\n})\n\nexport type GroupOptions = z.infer<typeof groupOptionsSchema>\n\n/**\n * GroupEntry\n */\n\nexport const groupEntrySchema = z.union([toolGroupsSchema, z.tuple([toolGroupsSchema, groupOptionsSchema])])\n\nexport type GroupEntry = z.infer<typeof groupEntrySchema>\n\n/**\n * ModeConfig\n */\n\nconst groupEntryArraySchema = z.array(groupEntrySchema).refine(\n\t(groups) => {\n\t\tconst seen = new Set()\n\n\t\treturn groups.every((group) => {\n\t\t\t// For tuples, check the group name (first element).\n\t\t\tconst groupName = Array.isArray(group) ? group[0] : group\n\n\t\t\tif (seen.has(groupName)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tseen.add(groupName)\n\t\t\treturn true\n\t\t})\n\t},\n\t{ message: \"Duplicate groups are not allowed\" },\n)\n\nexport const modeConfigSchema = z.object({\n\tslug: z.string().regex(/^[a-zA-Z0-9-]+$/, \"Slug must contain only letters numbers and dashes\"),\n\tname: z.string().min(1, \"Name is required\"),\n\troleDefinition: z.string().min(1, \"Role definition is required\"),\n\twhenToUse: z.string().optional(),\n\tdescription: z.string().optional(),\n\tcustomInstructions: z.string().optional(),\n\tgroups: groupEntryArraySchema,\n\tsource: z.enum([\"global\", \"project\"]).optional(),\n})\n\nexport type ModeConfig = z.infer<typeof modeConfigSchema>\n\n/**\n * CustomModesSettings\n */\n\nexport const customModesSettingsSchema = z.object({\n\tcustomModes: z.array(modeConfigSchema).refine(\n\t\t(modes) => {\n\t\t\tconst slugs = new Set()\n\n\t\t\treturn modes.every((mode) => {\n\t\t\t\tif (slugs.has(mode.slug)) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tslugs.add(mode.slug)\n\t\t\t\treturn true\n\t\t\t})\n\t\t},\n\t\t{\n\t\t\tmessage: \"Duplicate mode slugs are not allowed\",\n\t\t},\n\t),\n})\n\nexport type CustomModesSettings = z.infer<typeof customModesSettingsSchema>\n\n/**\n * PromptComponent\n */\n\nexport const promptComponentSchema = z.object({\n\troleDefinition: z.string().optional(),\n\twhenToUse: z.string().optional(),\n\tdescription: z.string().optional(),\n\tcustomInstructions: z.string().optional(),\n})\n\nexport type PromptComponent = z.infer<typeof promptComponentSchema>\n\n/**\n * CustomModePrompts\n */\n\nexport const customModePromptsSchema = z.record(z.string(), promptComponentSchema.optional())\n\nexport type CustomModePrompts = z.infer<typeof customModePromptsSchema>\n\n/**\n * CustomSupportPrompts\n */\n\nexport const customSupportPromptsSchema = z.record(z.string(), z.string().optional())\n\nexport type CustomSupportPrompts = z.infer<typeof customSupportPromptsSchema>\n\n/**\n * DEFAULT_MODES\n */\n\nexport const DEFAULT_MODES: readonly ModeConfig[] = [\n\t{\n\t\tslug: \"architect\",\n\t\tname: \"🏗️ Architect\",\n\t\troleDefinition:\n\t\t\t\"You are Roo, an experienced technical leader who is inquisitive and an excellent planner. Your goal is to gather information and get context to create a detailed plan for accomplishing the user's task, which the user will review and approve before they switch into another mode to implement the solution.\",\n\t\twhenToUse:\n\t\t\t\"Use this mode when you need to plan, design, or strategize before implementation. Perfect for breaking down complex problems, creating technical specifications, designing system architecture, or brainstorming solutions before coding.\",\n\t\tdescription: \"Plan and design before implementation\",\n\t\tgroups: [\"read\", [\"edit\", { fileRegex: \"\\\\.md$\", description: \"Markdown files only\" }], \"browser\", \"mcp\"],\n\t\tcustomInstructions:\n\t\t\t\"1. Do some information gathering (using provided tools) to get more context about the task.\\n\\n2. You should also ask the user clarifying questions to get a better understanding of the task.\\n\\n3. Once you've gained more context about the user's request, break down the task into clear, actionable steps and create a todo list using the `update_todo_list` tool. Each todo item should be:\\n - Specific and actionable\\n - Listed in logical execution order\\n - Focused on a single, well-defined outcome\\n - Clear enough that another mode could execute it independently\\n\\n **Note:** If the `update_todo_list` tool is not available, write the plan to a markdown file (e.g., `plan.md` or `todo.md`) instead.\\n\\n4. As you gather more information or discover new requirements, update the todo list to reflect the current understanding of what needs to be accomplished.\\n\\n5. Ask the user if they are pleased with this plan, or if they would like to make any changes. Think of this as a brainstorming session where you can discuss the task and refine the todo list.\\n\\n6. Include Mermaid diagrams if they help clarify complex workflows or system architecture. Please avoid using double quotes (\\\"\\\") and parentheses () inside square brackets ([]) in Mermaid diagrams, as this can cause parsing errors.\\n\\n7. Use the switch_mode tool to request that the user switch to another mode to implement the solution.\\n\\n**IMPORTANT: Focus on creating clear, actionable todo lists rather than lengthy markdown documents. Use the todo list as your primary planning tool to track and organize the work that needs to be done.**\\n\\n**CRITICAL: Never provide level of effort time estimates (e.g., hours, days, weeks) for tasks. Focus solely on breaking down the work into clear, actionable steps without estimating how long they will take.**\\n\\nUnless told otherwise, if you want to save a plan file, put it in the /plans directory\",\n\t},\n\t{\n\t\tslug: \"code\",\n\t\tname: \"💻 Code\",\n\t\troleDefinition:\n\t\t\t\"You are Roo, a highly skilled software engineer with extensive knowledge in many programming languages, frameworks, design patterns, and best practices.\",\n\t\twhenToUse:\n\t\t\t\"Use this mode when you need to write, modify, or refactor code. Ideal for implementing features, fixing bugs, creating new files, or making code improvements across any programming language or framework.\",\n\t\tdescription: \"Write, modify, and refactor code\",\n\t\tgroups: [\"read\", \"edit\", \"browser\", \"command\", \"mcp\"],\n\t},\n\t{\n\t\tslug: \"ask\",\n\t\tname: \"❓ Ask\",\n\t\troleDefinition:\n\t\t\t\"You are Roo, a knowledgeable technical assistant focused on answering questions and providing information about software development, technology, and related topics.\",\n\t\twhenToUse:\n\t\t\t\"Use this mode when you need explanations, documentation, or answers to technical questions. Best for understanding concepts, analyzing existing code, getting recommendations, or learning about technologies without making changes.\",\n\t\tdescription: \"Get answers and explanations\",\n\t\tgroups: [\"read\", \"browser\", \"mcp\"],\n\t\tcustomInstructions:\n\t\t\t\"You can analyze code, explain concepts, and access external resources. Always answer the user's questions thoroughly, and do not switch to implementing code unless explicitly requested by the user. Include Mermaid diagrams when they clarify your response.\",\n\t},\n\t{\n\t\tslug: \"debug\",\n\t\tname: \"🪲 Debug\",\n\t\troleDefinition:\n\t\t\t\"You are Roo, an expert software debugger specializing in systematic problem diagnosis and resolution.\",\n\t\twhenToUse:\n\t\t\t\"Use this mode when you're troubleshooting issues, investigating errors, or diagnosing problems. Specialized in systematic debugging, adding logging, analyzing stack traces, and identifying root causes before applying fixes.\",\n\t\tdescription: \"Diagnose and fix software issues\",\n\t\tgroups: [\"read\", \"edit\", \"browser\", \"command\", \"mcp\"],\n\t\tcustomInstructions:\n\t\t\t\"Reflect on 5-7 different possible sources of the problem, distill those down to 1-2 most likely sources, and then add logs to validate your assumptions. Explicitly ask the user to confirm the diagnosis before fixing the problem.\",\n\t},\n\t{\n\t\tslug: \"orchestrator\",\n\t\tname: \"🪃 Orchestrator\",\n\t\troleDefinition:\n\t\t\t\"You are Roo, a strategic workflow orchestrator who coordinates complex tasks by delegating them to appropriate specialized modes. You have a comprehensive understanding of each mode's capabilities and limitations, allowing you to effectively break down complex problems into discrete tasks that can be solved by different specialists.\",\n\t\twhenToUse:\n\t\t\t\"Use this mode for complex, multi-step projects that require coordination across different specialties. Ideal when you need to break down large tasks into subtasks, manage workflows, or coordinate work that spans multiple domains or expertise areas.\",\n\t\tdescription: \"Coordinate tasks across multiple modes\",\n\t\tgroups: [],\n\t\tcustomInstructions:\n\t\t\t\"Your role is to coordinate complex workflows by delegating tasks to specialized modes. As an orchestrator, you should:\\n\\n1. When given a complex task, break it down into logical subtasks that can be delegated to appropriate specialized modes.\\n\\n2. For each subtask, use the `new_task` tool to delegate. Choose the most appropriate mode for the subtask's specific goal and provide comprehensive instructions in the `message` parameter. These instructions must include:\\n * All necessary context from the parent task or previous subtasks required to complete the work.\\n * A clearly defined scope, specifying exactly what the subtask should accomplish.\\n * An explicit statement that the subtask should *only* perform the work outlined in these instructions and not deviate.\\n * An instruction for the subtask to signal completion by using the `attempt_completion` tool, providing a concise yet thorough summary of the outcome in the `result` parameter, keeping in mind that this summary will be the source of truth used to keep track of what was completed on this project.\\n * A statement that these specific instructions supersede any conflicting general instructions the subtask's mode might have.\\n\\n3. Track and manage the progress of all subtasks. When a subtask is completed, analyze its results and determine the next steps.\\n\\n4. Help the user understand how the different subtasks fit together in the overall workflow. Provide clear reasoning about why you're delegating specific tasks to specific modes.\\n\\n5. When all subtasks are completed, synthesize the results and provide a comprehensive overview of what was accomplished.\\n\\n6. Ask clarifying questions when necessary to better understand how to break down complex tasks effectively.\\n\\n7. Suggest improvements to the workflow based on the results of completed subtasks.\\n\\nUse subtasks to maintain clarity. If a request significantly shifts focus or requires a different expertise (mode), consider creating a subtask rather than overloading the current one.\",\n\t},\n] as const\n","import { z } from \"zod\"\n\n/**\n * CodeAction\n */\n\nexport const codeActionIds = [\"explainCode\", \"fixCode\", \"improveCode\", \"addToContext\", \"newTask\"] as const\n\nexport type CodeActionId = (typeof codeActionIds)[number]\n\nexport type CodeActionName = \"EXPLAIN\" | \"FIX\" | \"IMPROVE\" | \"ADD_TO_CONTEXT\" | \"NEW_TASK\"\n\n/**\n * TerminalAction\n */\n\nexport const terminalActionIds = [\"terminalAddToContext\", \"terminalFixCommand\", \"terminalExplainCommand\"] as const\n\nexport type TerminalActionId = (typeof terminalActionIds)[number]\n\nexport type TerminalActionName = \"ADD_TO_CONTEXT\" | \"FIX\" | \"EXPLAIN\"\n\nexport type TerminalActionPromptType = `TERMINAL_${TerminalActionName}`\n\n/**\n * Command\n */\n\nexport const commandIds = [\n\t\"activationCompleted\",\n\n\t\"plusButtonClicked\",\n\t\"historyButtonClicked\",\n\t\"marketplaceButtonClicked\",\n\t\"popoutButtonClicked\",\n\t\"cloudButtonClicked\",\n\t\"settingsButtonClicked\",\n\n\t\"openInNewTab\",\n\n\t\"showHumanRelayDialog\",\n\t\"registerHumanRelayCallback\",\n\t\"unregisterHumanRelayCallback\",\n\t\"handleHumanRelayResponse\",\n\n\t\"newTask\",\n\n\t\"setCustomStoragePath\",\n\t\"importSettings\",\n\n\t\"focusInput\",\n\t\"acceptInput\",\n\t\"focusPanel\",\n\t\"toggleAutoApprove\",\n] as const\n\nexport type CommandId = (typeof commandIds)[number]\n\n/**\n * Language\n */\n\nexport const languages = [\n\t\"ca\",\n\t\"de\",\n\t\"en\",\n\t\"es\",\n\t\"fr\",\n\t\"hi\",\n\t\"id\",\n\t\"it\",\n\t\"ja\",\n\t\"ko\",\n\t\"nl\",\n\t\"pl\",\n\t\"pt-BR\",\n\t\"ru\",\n\t\"tr\",\n\t\"vi\",\n\t\"zh-CN\",\n\t\"zh-TW\",\n] as const\n\nexport const languagesSchema = z.enum(languages)\n\nexport type Language = z.infer<typeof languagesSchema>\n\nexport const isLanguage = (value: string): value is Language => languages.includes(value as Language)\n","import { z } from \"zod\"\n\n/**\n * Schema for MCP parameter definitions\n */\nexport const mcpParameterSchema = z.object({\n\tname: z.string().min(1),\n\tkey: z.string().min(1),\n\tplaceholder: z.string().optional(),\n\toptional: z.boolean().optional().default(false),\n})\n\nexport type McpParameter = z.infer<typeof mcpParameterSchema>\n\n/**\n * Schema for MCP installation method with name\n */\nexport const mcpInstallationMethodSchema = z.object({\n\tname: z.string().min(1),\n\tcontent: z.string().min(1),\n\tparameters: z.array(mcpParameterSchema).optional(),\n\tprerequisites: z.array(z.string()).optional(),\n})\n\nexport type McpInstallationMethod = z.infer<typeof mcpInstallationMethodSchema>\n\n/**\n * Component type validation\n */\nexport const marketplaceItemTypeSchema = z.enum([\"mode\", \"mcp\"] as const)\n\nexport type MarketplaceItemType = z.infer<typeof marketplaceItemTypeSchema>\n\n/**\n * Base schema for common marketplace item fields\n */\nconst baseMarketplaceItemSchema = z.object({\n\tid: z.string().min(1),\n\tname: z.string().min(1, \"Name is required\"),\n\tdescription: z.string(),\n\tauthor: z.string().optional(),\n\tauthorUrl: z.string().url(\"Author URL must be a valid URL\").optional(),\n\ttags: z.array(z.string()).optional(),\n\tprerequisites: z.array(z.string()).optional(),\n})\n\n/**\n * Type-specific schemas for YAML parsing (without type field, added programmatically)\n */\nexport const modeMarketplaceItemSchema = baseMarketplaceItemSchema.extend({\n\tcontent: z.string().min(1), // YAML content for modes\n})\n\nexport type ModeMarketplaceItem = z.infer<typeof modeMarketplaceItemSchema>\n\nexport const mcpMarketplaceItemSchema = baseMarketplaceItemSchema.extend({\n\turl: z.string().url(), // Required url field\n\tcontent: z.union([z.string().min(1), z.array(mcpInstallationMethodSchema)]), // Single config or array of methods\n\tparameters: z.array(mcpParameterSchema).optional(),\n})\n\nexport type McpMarketplaceItem = z.infer<typeof mcpMarketplaceItemSchema>\n\n/**\n * Unified marketplace item schema using discriminated union\n */\nexport const marketplaceItemSchema = z.discriminatedUnion(\"type\", [\n\t// Mode marketplace item\n\tmodeMarketplaceItemSchema.extend({\n\t\ttype: z.literal(\"mode\"),\n\t}),\n\t// MCP marketplace item\n\tmcpMarketplaceItemSchema.extend({\n\t\ttype: z.literal(\"mcp\"),\n\t}),\n])\n\nexport type MarketplaceItem = z.infer<typeof marketplaceItemSchema>\n\n/**\n * Installation options for marketplace items\n */\nexport const installMarketplaceItemOptionsSchema = z.object({\n\ttarget: z.enum([\"global\", \"project\"]).optional().default(\"project\"),\n\tparameters: z.record(z.string(), z.any()).optional(),\n})\n\nexport type InstallMarketplaceItemOptions = z.infer<typeof installMarketplaceItemOptionsSchema>\n","/**\n * Context Management Types\n *\n * This module provides type definitions for context management events.\n * These events are used to handle different strategies for managing conversation context\n * when approaching token limits.\n *\n * Event Types:\n * - `condense_context`: Context was condensed using AI summarization\n * - `condense_context_error`: An error occurred during context condensation\n * - `sliding_window_truncation`: Context was truncated using sliding window strategy\n */\n\n/**\n * Array of all context management event types.\n * Used for runtime type checking.\n */\nexport const CONTEXT_MANAGEMENT_EVENTS = [\n\t\"condense_context\",\n\t\"condense_context_error\",\n\t\"sliding_window_truncation\",\n] as const\n\n/**\n * Union type representing all possible context management event types.\n */\nexport type ContextManagementEvent = (typeof CONTEXT_MANAGEMENT_EVENTS)[number]\n\n/**\n * Type guard function to check if a value is a valid context management event.\n */\nexport function isContextManagementEvent(value: unknown): value is ContextManagementEvent {\n\treturn typeof value === \"string\" && (CONTEXT_MANAGEMENT_EVENTS as readonly string[]).includes(value)\n}\n","/**\n * Cookie consent constants and types\n * Shared across all Roo Code repositories\n */\n\n/**\n * The name of the cookie that stores user's consent preference\n * Used by react-cookie-consent library\n */\nexport const CONSENT_COOKIE_NAME = \"roo-code-cookie-consent\"\n\n/**\n * Possible values for the consent cookie\n */\nexport type ConsentCookieValue = \"true\" | \"false\"\n\n/**\n * Cookie consent event names for communication between components\n */\nexport const COOKIE_CONSENT_EVENTS = {\n\tCHANGED: \"cookieConsentChanged\",\n} as const\n","import { z } from \"zod\"\n\n/**\n * Interface for follow-up data structure used in follow-up questions\n * This represents the data structure for follow-up questions that the LLM can ask\n * to gather more information needed to complete a task.\n */\nexport interface FollowUpData {\n\t/** The question being asked by the LLM */\n\tquestion?: string\n\t/** Array of suggested answers that the user can select */\n\tsuggest?: Array<SuggestionItem>\n}\n\n/**\n * Interface for a suggestion item with optional mode switching\n */\nexport interface SuggestionItem {\n\t/** The text of the suggestion */\n\tanswer: string\n\t/** Optional mode to switch to when selecting this suggestion */\n\tmode?: string\n}\n\n/**\n * Zod schema for SuggestionItem\n */\nexport const suggestionItemSchema = z.object({\n\tanswer: z.string(),\n\tmode: z.string().optional(),\n})\n\n/**\n * Zod schema for FollowUpData\n */\nexport const followUpDataSchema = z.object({\n\tquestion: z.string().optional(),\n\tsuggest: z.array(suggestionItemSchema).optional(),\n})\n\nexport type FollowUpDataType = z.infer<typeof followUpDataSchema>\n","/**\n * Image generation model constants\n */\n\n/**\n * API method used for image generation\n */\nexport type ImageGenerationApiMethod = \"chat_completions\" | \"images_api\"\n\nexport interface ImageGenerationModel {\n\tvalue: string\n\tlabel: string\n\tprovider: ImageGenerationProvider\n\tapiMethod?: ImageGenerationApiMethod\n}\n\nexport const IMAGE_GENERATION_MODELS: ImageGenerationModel[] = [\n\t// OpenRouter models\n\t{ value: \"google/gemini-2.5-flash-image\", label: \"Gemini 2.5 Flash Image\", provider: \"openrouter\" },\n\t{ value: \"google/gemini-3-pro-image-preview\", label: \"Gemini 3 Pro Image Preview\", provider: \"openrouter\" },\n\t{ value: \"openai/gpt-5-image\", label: \"GPT-5 Image\", provider: \"openrouter\" },\n\t{ value: \"openai/gpt-5-image-mini\", label: \"GPT-5 Image Mini\", provider: \"openrouter\" },\n\t{ value: \"black-forest-labs/flux.2-flex\", label: \"Black Forest Labs FLUX.2 Flex\", provider: \"openrouter\" },\n\t{ value: \"black-forest-labs/flux.2-pro\", label: \"Black Forest Labs FLUX.2 Pro\", provider: \"openrouter\" },\n\t// Roo Code Cloud models\n\t{ value: \"google/gemini-2.5-flash-image\", label: \"Gemini 2.5 Flash Image\", provider: \"roo\" },\n\t{ value: \"google/gemini-3-pro-image\", label: \"Gemini 3 Pro Image\", provider: \"roo\" },\n\t{\n\t\tvalue: \"bfl/flux-2-pro:free\",\n\t\tlabel: \"Black Forest Labs FLUX.2 Pro (Free)\",\n\t\tprovider: \"roo\",\n\t\tapiMethod: \"images_api\",\n\t},\n]\n\n/**\n * Get array of model values only (for backend validation)\n */\nexport const IMAGE_GENERATION_MODEL_IDS = IMAGE_GENERATION_MODELS.map((m) => m.value)\n\n/**\n * Image generation provider type\n */\nexport type ImageGenerationProvider = \"openrouter\" | \"roo\"\n\n/**\n * Get the image generation provider with backwards compatibility\n * - If provider is explicitly set, use it\n * - If a model is already configured (existing users), default to \"openrouter\"\n * - Otherwise default to \"roo\" (new users)\n */\nexport function getImageGenerationProvider(\n\texplicitProvider: ImageGenerationProvider | undefined,\n\thasExistingModel: boolean,\n): ImageGenerationProvider {\n\treturn explicitProvider !== undefined ? explicitProvider : hasExistingModel ? \"openrouter\" : \"roo\"\n}\n","import { z } from \"zod\"\n\nimport { type TaskEvent, taskEventSchema } from \"./events.js\"\nimport { rooCodeSettingsSchema } from \"./global-settings.js\"\n\n/**\n * IpcMessageType\n */\n\nexport enum IpcMessageType {\n\tConnect = \"Connect\",\n\tDisconnect = \"Disconnect\",\n\tAck = \"Ack\",\n\tTaskCommand = \"TaskCommand\",\n\tTaskEvent = \"TaskEvent\",\n}\n\n/**\n * IpcOrigin\n */\n\nexport enum IpcOrigin {\n\tClient = \"client\",\n\tServer = \"server\",\n}\n\n/**\n * Ack\n */\n\nexport const ackSchema = z.object({\n\tclientId: z.string(),\n\tpid: z.number(),\n\tppid: z.number(),\n})\n\nexport type Ack = z.infer<typeof ackSchema>\n\n/**\n * TaskCommandName\n */\n\nexport enum TaskCommandName {\n\tStartNewTask = \"StartNewTask\",\n\tCancelTask = \"CancelTask\",\n\tCloseTask = \"CloseTask\",\n\tResumeTask = \"ResumeTask\",\n\tSendMessage = \"SendMessage\",\n}\n\n/**\n * TaskCommand\n */\n\nexport const taskCommandSchema = z.discriminatedUnion(\"commandName\", [\n\tz.object({\n\t\tcommandName: z.literal(TaskCommandName.StartNewTask),\n\t\tdata: z.object({\n\t\t\tconfiguration: rooCodeSettingsSchema,\n\t\t\ttext: z.string(),\n\t\t\timages: z.array(z.string()).optional(),\n\t\t\tnewTab: z.boolean().optional(),\n\t\t}),\n\t}),\n\tz.object({\n\t\tcommandName: z.literal(TaskCommandName.CancelTask),\n\t\tdata: z.string(),\n\t}),\n\tz.object({\n\t\tcommandName: z.literal(TaskCommandName.CloseTask),\n\t\tdata: z.string(),\n\t}),\n\tz.object({\n\t\tcommandName: z.literal(TaskCommandName.ResumeTask),\n\t\tdata: z.string(),\n\t}),\n\tz.object({\n\t\tcommandName: z.literal(TaskCommandName.SendMessage),\n\t\tdata: z.object({\n\t\t\ttext: z.string().optional(),\n\t\t\timages: z.array(z.string()).optional(),\n\t\t}),\n\t}),\n])\n\nexport type TaskCommand = z.infer<typeof taskCommandSchema>\n\n/**\n * IpcMessage\n */\n\nexport const ipcMessageSchema = z.discriminatedUnion(\"type\", [\n\tz.object({\n\t\ttype: z.literal(IpcMessageType.Ack),\n\t\torigin: z.literal(IpcOrigin.Server),\n\t\tdata: ackSchema,\n\t}),\n\tz.object({\n\t\ttype: z.literal(IpcMessageType.TaskCommand),\n\t\torigin: z.literal(IpcOrigin.Client),\n\t\tclientId: z.string(),\n\t\tdata: taskCommandSchema,\n\t}),\n\tz.object({\n\t\ttype: z.literal(IpcMessageType.TaskEvent),\n\t\torigin: z.literal(IpcOrigin.Server),\n\t\trelayClientId: z.string().optional(),\n\t\tdata: taskEventSchema,\n\t}),\n])\n\nexport type IpcMessage = z.infer<typeof ipcMessageSchema>\n\n/**\n * IpcClientEvents\n */\n\nexport type IpcClientEvents = {\n\t[IpcMessageType.Connect]: []\n\t[IpcMessageType.Disconnect]: []\n\t[IpcMessageType.Ack]: [data: Ack]\n\t[IpcMessageType.TaskCommand]: [data: TaskCommand]\n\t[IpcMessageType.TaskEvent]: [data: TaskEvent]\n}\n\n/**\n * IpcServerEvents\n */\n\nexport type IpcServerEvents = {\n\t[IpcMessageType.Connect]: [clientId: string]\n\t[IpcMessageType.Disconnect]: [clientId: string]\n\t[IpcMessageType.TaskCommand]: [clientId: string, data: TaskCommand]\n\t[IpcMessageType.TaskEvent]: [relayClientId: string | undefined, data: TaskEvent]\n}\n","import { z } from \"zod\"\n\n/**\n * MCP Server Use Types\n */\nexport interface McpServerUse {\n\ttype: string\n\tserverName: string\n\ttoolName?: string\n\turi?: string\n}\n\n/**\n * McpExecutionStatus\n */\n\nexport const mcpExecutionStatusSchema = z.discriminatedUnion(\"status\", [\n\tz.object({\n\t\texecutionId: z.string(),\n\t\tstatus: z.literal(\"started\"),\n\t\tserverName: z.string(),\n\t\ttoolName: z.string(),\n\t}),\n\tz.object({\n\t\texecutionId: z.string(),\n\t\tstatus: z.literal(\"output\"),\n\t\tresponse: z.string(),\n\t}),\n\tz.object({\n\t\texecutionId: z.string(),\n\t\tstatus: z.literal(\"completed\"),\n\t\tresponse: z.string().optional(),\n\t}),\n\tz.object({\n\t\texecutionId: z.string(),\n\t\tstatus: z.literal(\"error\"),\n\t\terror: z.string().optional(),\n\t}),\n])\n\nexport type McpExecutionStatus = z.infer<typeof mcpExecutionStatusSchema>\n","/**\n * Configuration for models that should use simplified single-file read_file tool\n * These models will use the simpler <read_file><path>...</path></read_file> format\n * instead of the more complex multi-file args format\n */\n\n/**\n * Check if a model should use single file read format\n * @param modelId The model ID to check\n * @returns true if the model should use single file reads\n */\nexport function shouldUseSingleFileRead(modelId: string): boolean {\n\treturn modelId.includes(\"grok-code-fast-1\") || modelId.includes(\"code-supernova\")\n}\n","import { z } from \"zod\"\n\n/**\n * TodoStatus\n */\nexport const todoStatusSchema = z.enum([\"pending\", \"in_progress\", \"completed\"] as const)\n\nexport type TodoStatus = z.infer<typeof todoStatusSchema>\n\n/**\n * TodoItem\n */\nexport const todoItemSchema = z.object({\n\tid: z.string(),\n\tcontent: z.string(),\n\tstatus: todoStatusSchema,\n})\n\nexport type TodoItem = z.infer<typeof todoItemSchema>\n","import { z } from \"zod\"\n\n/**\n * CommandExecutionStatus\n */\n\nexport const commandExecutionStatusSchema = z.discriminatedUnion(\"status\", [\n\tz.object({\n\t\texecutionId: z.string(),\n\t\tstatus: z.literal(\"started\"),\n\t\tpid: z.number().optional(),\n\t\tcommand: z.string(),\n\t}),\n\tz.object({\n\t\texecutionId: z.string(),\n\t\tstatus: z.literal(\"output\"),\n\t\toutput: z.string(),\n\t}),\n\tz.object({\n\t\texecutionId: z.string(),\n\t\tstatus: z.literal(\"exited\"),\n\t\texitCode: z.number().optional(),\n\t}),\n\tz.object({\n\t\texecutionId: z.string(),\n\t\tstatus: z.literal(\"fallback\"),\n\t}),\n\tz.object({\n\t\texecutionId: z.string(),\n\t\tstatus: z.literal(\"timeout\"),\n\t}),\n])\n\nexport type CommandExecutionStatus = z.infer<typeof commandExecutionStatusSchema>\n"],"mappings":"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","names":["z","z","z","RooCodeEventName","z","z","TaskStatus","z","z","z","z","z","z","z","z","z","z","TelemetryEventName","z","z","z","z","z","z","ConnectionState","ExtensionBridgeEventName","ExtensionBridgeCommandName","TaskBridgeEventName","TaskBridgeCommandName","ExtensionSocketEvents","TaskSocketEvents","z","z","IpcMessageType","IpcOrigin","z","TaskCommandName","z","z","z"]}
|