mirror of
https://gitee.com/mateos/mateclaw.git
synced 2026-09-14 11:37:31 +08:00
37 lines
1.0 KiB
TypeScript
37 lines
1.0 KiB
TypeScript
type IdLike = string | number
|
|
|
|
interface RouteHydrationAgent {
|
|
id: IdLike
|
|
}
|
|
|
|
interface RouteHydrationConversation {
|
|
conversationId: string
|
|
}
|
|
|
|
export function resolveRouteHydrationQuery(options: {
|
|
routeAgentId?: string
|
|
routeConversationId?: string
|
|
agents: RouteHydrationAgent[]
|
|
conversations: RouteHydrationConversation[]
|
|
}): { agentId: string; conversationId: string } {
|
|
let agentId = options.routeAgentId || ''
|
|
const conversationId = options.routeConversationId || ''
|
|
|
|
if (agentId && options.agents.length > 0 && !options.agents.some(a => String(a.id) === agentId)) {
|
|
agentId = ''
|
|
}
|
|
|
|
return { agentId, conversationId }
|
|
}
|
|
|
|
export function resolveConversationAgentSelection(options: {
|
|
routeAgentId?: string
|
|
conversationAgentId?: IdLike | null
|
|
currentAgentId?: IdLike | null
|
|
}): string {
|
|
if (options.routeAgentId) return options.routeAgentId
|
|
if (options.conversationAgentId != null) return String(options.conversationAgentId)
|
|
if (options.currentAgentId != null) return String(options.currentAgentId)
|
|
return ''
|
|
}
|