fix: enable runtime fallback for delegated child sessions (#2357)
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
import type { OhMyOpenCodeConfig } from "../../config"
|
||||
import { HOOK_NAME } from "./constants"
|
||||
import { log } from "../../shared/logger"
|
||||
import { SessionCategoryRegistry } from "../../shared/session-category-registry"
|
||||
|
||||
type ResolveFallbackBootstrapModelOptions = {
|
||||
sessionID: string
|
||||
source: string
|
||||
eventModel?: string
|
||||
resolvedAgent?: string
|
||||
pluginConfig?: OhMyOpenCodeConfig
|
||||
}
|
||||
|
||||
export function resolveFallbackBootstrapModel(
|
||||
options: ResolveFallbackBootstrapModelOptions,
|
||||
): string | undefined {
|
||||
if (options.eventModel) {
|
||||
return options.eventModel
|
||||
}
|
||||
|
||||
const agentConfigs = options.pluginConfig?.agents
|
||||
const agentConfig = options.resolvedAgent && agentConfigs
|
||||
? agentConfigs[options.resolvedAgent as keyof typeof agentConfigs]
|
||||
: undefined
|
||||
const agentModel = typeof agentConfig?.model === "string" ? agentConfig.model : undefined
|
||||
if (agentModel) {
|
||||
log(`[${HOOK_NAME}] Derived model from agent config for ${options.source}`, {
|
||||
sessionID: options.sessionID,
|
||||
agent: options.resolvedAgent,
|
||||
model: agentModel,
|
||||
})
|
||||
return agentModel
|
||||
}
|
||||
|
||||
const sessionCategory = SessionCategoryRegistry.get(options.sessionID)
|
||||
const categoryModel = sessionCategory
|
||||
? options.pluginConfig?.categories?.[sessionCategory]?.model
|
||||
: undefined
|
||||
if (typeof categoryModel === "string" && categoryModel.length > 0) {
|
||||
log(`[${HOOK_NAME}] Derived model from session category config for ${options.source}`, {
|
||||
sessionID: options.sessionID,
|
||||
category: sessionCategory,
|
||||
model: categoryModel,
|
||||
})
|
||||
return categoryModel
|
||||
}
|
||||
|
||||
return undefined
|
||||
}
|
||||
Reference in New Issue
Block a user