fix: include provider-models cache for Hephaestus availability

This commit is contained in:
YeonGyu-Kim
2026-02-17 01:51:31 +09:00
parent e0ec44bea9
commit bba157f51e
2 changed files with 42 additions and 4 deletions
+13 -3
View File
@@ -13,7 +13,11 @@ import { createAtlasAgent, atlasPromptMetadata } from "./atlas"
import { createMomusAgent, momusPromptMetadata } from "./momus"
import { createHephaestusAgent } from "./hephaestus"
import type { AvailableCategory } from "./dynamic-agent-prompt-builder"
import { fetchAvailableModels, readConnectedProvidersCache } from "../shared"
import {
fetchAvailableModels,
readConnectedProvidersCache,
readProviderModelsCache,
} from "../shared"
import { CATEGORY_DESCRIPTIONS } from "../tools/delegate-task/constants"
import { mergeCategories } from "../shared/merge-categories"
import { buildAvailableSkills } from "./builtin-agents/available-skills"
@@ -68,14 +72,20 @@ export async function createBuiltinAgents(
useTaskSystem = false
): Promise<Record<string, AgentConfig>> {
const connectedProviders = readConnectedProvidersCache()
const providerModelsConnected = connectedProviders
? (readProviderModelsCache()?.connected ?? [])
: []
const mergedConnectedProviders = Array.from(
new Set([...(connectedProviders ?? []), ...providerModelsConnected])
)
// IMPORTANT: Do NOT call OpenCode client APIs during plugin initialization.
// This function is called from config handler, and calling client API causes deadlock.
// See: https://github.com/code-yeongyu/oh-my-opencode/issues/1301
const availableModels = await fetchAvailableModels(undefined, {
connectedProviders: connectedProviders ?? undefined,
connectedProviders: mergedConnectedProviders.length > 0 ? mergedConnectedProviders : undefined,
})
const isFirstRunNoCache =
availableModels.size === 0 && (!connectedProviders || connectedProviders.length === 0)
availableModels.size === 0 && mergedConnectedProviders.length === 0
const result: Record<string, AgentConfig> = {}