summaryrefslogtreecommitdiffhomepage
path: root/src/chat-history.ts
blob: ac7c6a87fd4ae29bc7dcbcfb71c4e70eae1cb19b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import type { ChatMessage } from "./ollama-client";
import type { PersistedMessage } from "./settings";

export type { PersistedMessage } from "./settings";

/**
 * Filter ChatMessage[] down to only persistable user/assistant messages.
 */
export function toPersistableMessages(messages: readonly ChatMessage[]): PersistedMessage[] {
	const result: PersistedMessage[] = [];
	for (const msg of messages) {
		if (msg.role === "user" || msg.role === "assistant") {
			result.push({ role: msg.role, content: msg.content });
		}
	}
	return result;
}

/**
 * Convert persisted messages back to ChatMessage[] for the LLM context.
 */
export function toRuntimeMessages(messages: readonly PersistedMessage[]): ChatMessage[] {
	return messages.map((m) => ({ role: m.role, content: m.content }));
}