diff --git a/flexus_client_kit/manifest_schema.json b/flexus_client_kit/manifest_schema.json index 50c18eb2..037ca4e0 100644 --- a/flexus_client_kit/manifest_schema.json +++ b/flexus_client_kit/manifest_schema.json @@ -13,7 +13,6 @@ "integrations", "featured_actions", "intro_message", - "preferred_model_default", "daily_budget_default", "default_inbox_default", "tags" @@ -91,8 +90,18 @@ }, "preferred_model_default": { "type": "string", - "title": "Preferred Model", - "description": "Default LLM model used for this bot's chat completions. Example: 'grok-4-1-fast-non-reasoning', 'grok-4-1-fast-reasoning'." + "title": "Preferred Model (legacy)", + "description": "Legacy single-model field. Use preferred_model_expensive + preferred_model_cheap instead. Example: 'grok-4-1-fast-non-reasoning'." + }, + "preferred_model_expensive": { + "type": "string", + "title": "Preferred Expensive Model", + "description": "LLM model used for expensive (deep reasoning) tasks. Example: 'grok-4-1-fast-reasoning'." + }, + "preferred_model_cheap": { + "type": "string", + "title": "Preferred Cheap Model", + "description": "LLM model used for fast/cheap tasks. Example: 'grok-4-1-fast-non-reasoning'." }, "daily_budget_default": { "type": "integer", diff --git a/flexus_client_kit/no_special_code_bot.py b/flexus_client_kit/no_special_code_bot.py index 11f32883..4c7753b4 100644 --- a/flexus_client_kit/no_special_code_bot.py +++ b/flexus_client_kit/no_special_code_bot.py @@ -74,8 +74,8 @@ async def install_from_manifest(m, setup_schema, bot_dir, client, bot_name, bot_ marketable_setup_default=setup_schema, marketable_featured_actions=featured, marketable_intro_message=m["intro_message"], - marketable_preferred_model_expensive=m["preferred_model_expensive"], - marketable_preferred_model_cheap=m["preferred_model_cheap"], + marketable_preferred_model_expensive=m.get("preferred_model_expensive", m.get("preferred_model_default", "")), + marketable_preferred_model_cheap=m.get("preferred_model_cheap", m.get("preferred_model_default", "")), marketable_daily_budget_default=m["daily_budget_default"], marketable_default_inbox_default=m["default_inbox_default"], marketable_experts=[(name, exp.filter_tools(tools)) for name, exp in experts],