Files
kamidso-front/src/features/assistant/adapters/runToTurn.ts
T

31 lines
968 B
TypeScript

import type { ChatMessage } from '../types/chat'
import type { AgentTurnView } from '../types/viewModels'
export function messagesToTurns(
messages: ChatMessage[],
): Array<{ human: ChatMessage; view?: ChatMessage }> {
const result: Array<{ human: ChatMessage; view?: ChatMessage }> = []
for (let i = 0; i < messages.length; i += 1) {
const msg = messages[i]
if (msg.role === 'human') {
result.push({
human: msg,
view: messages[i + 1]?.role === 'view' ? messages[i + 1] : undefined,
})
}
}
return result
}
export function toAgentTurnView(round: { human: ChatMessage; view?: ChatMessage }): AgentTurnView {
return {
id: round.human.id,
userMessage: round.human.context,
assistantMessage: round.view?.context,
taskPlan: round.view?.taskPlan,
attachedFiles: round.human.attachedFiles,
isWorking: Boolean(round.view?.thinking),
thinkingContent: round.view?.thinking ? '' : undefined,
}
}