Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
61 lines
1.8 KiB
TypeScript
61 lines
1.8 KiB
TypeScript
/**
|
|
* @deprecated LEGACY MIGRATION ONLY
|
|
*
|
|
* This map exists solely for migrating old configs that used hardcoded model strings.
|
|
* It maps legacy model strings to semantic category names, allowing users to migrate
|
|
* from explicit model configs to category-based configs.
|
|
*
|
|
* DO NOT add new entries here. New agents should use:
|
|
* - Category-based config (preferred): { category: "unspecified-high" }
|
|
* - Or inherit from OpenCode's config.model
|
|
*
|
|
* This map will be removed in a future major version once migration period ends.
|
|
*/
|
|
export const MODEL_TO_CATEGORY_MAP: Record<string, string> = {
|
|
"google/gemini-3-pro": "visual-engineering",
|
|
"google/gemini-3-flash": "writing",
|
|
"openai/gpt-5.2": "ultrabrain",
|
|
"anthropic/claude-haiku-4-5": "quick",
|
|
"anthropic/claude-opus-4-6": "unspecified-high",
|
|
"anthropic/claude-sonnet-4-5": "unspecified-low",
|
|
}
|
|
|
|
export function migrateAgentConfigToCategory(config: Record<string, unknown>): {
|
|
migrated: Record<string, unknown>
|
|
changed: boolean
|
|
} {
|
|
const { model, ...rest } = config
|
|
if (typeof model !== "string") {
|
|
return { migrated: config, changed: false }
|
|
}
|
|
|
|
const category = MODEL_TO_CATEGORY_MAP[model]
|
|
if (!category) {
|
|
return { migrated: config, changed: false }
|
|
}
|
|
|
|
return {
|
|
migrated: { category, ...rest },
|
|
changed: true,
|
|
}
|
|
}
|
|
|
|
export function shouldDeleteAgentConfig(
|
|
config: Record<string, unknown>,
|
|
category: string
|
|
): boolean {
|
|
const { DEFAULT_CATEGORIES } = require("../../tools/delegate-task/constants")
|
|
const defaults = DEFAULT_CATEGORIES[category]
|
|
if (!defaults) return false
|
|
|
|
const keys = Object.keys(config).filter((k) => k !== "category")
|
|
if (keys.length === 0) return true
|
|
|
|
for (const key of keys) {
|
|
if (config[key] !== (defaults as Record<string, unknown>)[key]) {
|
|
return false
|
|
}
|
|
}
|
|
return true
|
|
}
|