17 lines
785 B
TypeScript
17 lines
785 B
TypeScript
import type { SessionMessage, SessionMessageAssistant } from "@opencode-ai/sdk/v2"
|
|
|
|
export function isDefaultTitle(title: string) {
|
|
return /^(New session - |Child session - )\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(title)
|
|
}
|
|
|
|
export function lastAssistantWithUsage(messages: ReadonlyArray<SessionMessage>, boundary?: string) {
|
|
const boundaryIndex = boundary ? messages.findIndex((message) => message.id === boundary) : -1
|
|
if (boundary && boundaryIndex === -1) return undefined
|
|
return messages.findLast(
|
|
(
|
|
message,
|
|
index,
|
|
): message is SessionMessageAssistant & { tokens: NonNullable<SessionMessageAssistant["tokens"]> } =>
|
|
message.type === "assistant" && message.tokens !== undefined && (boundaryIndex === -1 || index < boundaryIndex),
|
|
)
|
|
}
|