import type { CategoryConfig } from "../../config/schema" import { ANTHROPIC_CATEGORIES } from "./anthropic-categories" import type { BuiltinCategoryDefinition } from "./builtin-category-definition" import { GOOGLE_CATEGORIES } from "./google-categories" import { KIMI_CATEGORIES } from "./kimi-categories" import { OPENAI_CATEGORIES } from "./openai-categories" const BUILTIN_CATEGORIES: BuiltinCategoryDefinition[] = [ ...GOOGLE_CATEGORIES, ...OPENAI_CATEGORIES, ...ANTHROPIC_CATEGORIES, ...KIMI_CATEGORIES, ] function buildCategoryRecord( selector: (definition: BuiltinCategoryDefinition) => TValue ): Record { return Object.fromEntries( BUILTIN_CATEGORIES.map((definition) => [definition.name, selector(definition)]) ) } export const DEFAULT_CATEGORIES: Record = buildCategoryRecord( (definition) => definition.config ) export const CATEGORY_PROMPT_APPENDS: Record = buildCategoryRecord( (definition) => definition.promptAppend ) export const CATEGORY_DESCRIPTIONS: Record = buildCategoryRecord( (definition) => definition.description ) export const CATEGORY_PROMPT_APPEND_RESOLVERS: Record string> = Object.fromEntries( BUILTIN_CATEGORIES .filter((definition) => definition.resolvePromptAppend !== undefined) .map((definition) => [definition.name, definition.resolvePromptAppend!]), )