From 68c26a5bf7aacc28d4185f3775293ec6baf2679c Mon Sep 17 00:00:00 2001 From: ismeth Date: Thu, 12 Feb 2026 14:13:04 +0100 Subject: [PATCH] feat(04-01): register Athena in builtin agent resolution maps - add Athena factory and prompt metadata to builtin agent sources - define Athena fallback chain in AGENT_MODEL_REQUIREMENTS for primary resolution --- src/agents/builtin-agents.ts | 3 +++ src/shared/model-requirements.ts | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/agents/builtin-agents.ts b/src/agents/builtin-agents.ts index 7bcac2223..3abdf308e 100644 --- a/src/agents/builtin-agents.ts +++ b/src/agents/builtin-agents.ts @@ -13,6 +13,7 @@ import { createAtlasAgent, atlasPromptMetadata } from "./atlas" import { createMomusAgent, momusPromptMetadata } from "./momus" import { createHephaestusAgent } from "./hephaestus" import { createSisyphusJuniorAgentWithOverrides } from "./sisyphus-junior" +import { createAthenaAgent, ATHENA_PROMPT_METADATA } from "./athena/agent" import type { AvailableCategory } from "./dynamic-agent-prompt-builder" import { fetchAvailableModels, @@ -38,6 +39,7 @@ const agentSources: Partial> = { "multimodal-looker": createMultimodalLookerAgent, metis: createMetisAgent, momus: createMomusAgent, + athena: createAthenaAgent, // Note: Atlas is handled specially in createBuiltinAgents() // because it needs OrchestratorContext, not just a model string atlas: createAtlasAgent as AgentFactory, @@ -55,6 +57,7 @@ const agentMetadata: Partial> = { "multimodal-looker": MULTIMODAL_LOOKER_PROMPT_METADATA, metis: metisPromptMetadata, momus: momusPromptMetadata, + athena: ATHENA_PROMPT_METADATA, atlas: atlasPromptMetadata, } diff --git a/src/shared/model-requirements.ts b/src/shared/model-requirements.ts index b9ac989ab..4806ce89a 100644 --- a/src/shared/model-requirements.ts +++ b/src/shared/model-requirements.ts @@ -180,6 +180,17 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { { providers: ["opencode"], model: "big-pickle" }, ], }, + athena: { + fallbackChain: [ + { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-4-6", variant: "max" }, + { providers: ["kimi-for-coding"], model: "k2p5" }, + { providers: ["opencode"], model: "kimi-k2.5-free" }, + { providers: ["zai-coding-plan"], model: "glm-4.7" }, + { providers: ["opencode"], model: "glm-4.7-free" }, + { providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2", variant: "high" }, + { providers: ["google", "github-copilot", "opencode"], model: "gemini-3-pro", variant: "high" }, + ], + }, }; export const CATEGORY_MODEL_REQUIREMENTS: Record = {