feat(hooks): add compaction-model-resolver utility for session agent model lookup

This commit is contained in:
YeonGyu-Kim 2026-02-22 17:19:31 +09:00
parent edf4d522d1
commit 32a838ad3c

View File

@ -0,0 +1,35 @@
import type { OhMyOpenCodeConfig } from "../../config"
import { getSessionAgent } from "../../features/claude-code-session-state"
import { getAgentConfigKey } from "../../shared/agent-display-names"
export function resolveCompactionModel(
pluginConfig: OhMyOpenCodeConfig,
sessionID: string,
originalProviderID: string,
originalModelID: string
): { providerID: string; modelID: string } {
const sessionAgentName = getSessionAgent(sessionID)
if (!sessionAgentName || !pluginConfig.agents) {
return { providerID: originalProviderID, modelID: originalModelID }
}
const agentConfigKey = getAgentConfigKey(sessionAgentName)
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const agentConfig = (pluginConfig.agents as any)[agentConfigKey]
const compactionConfig = agentConfig?.compaction
if (!compactionConfig?.model) {
return { providerID: originalProviderID, modelID: originalModelID }
}
const modelParts = compactionConfig.model.split("/")
if (modelParts.length < 2) {
return { providerID: originalProviderID, modelID: originalModelID }
}
return {
providerID: modelParts[0],
modelID: modelParts.slice(1).join("/"),
}
}