6a4a3322c1
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
39 lines
892 B
TypeScript
39 lines
892 B
TypeScript
export type SessionMessagePart = {
|
|
type?: string
|
|
text?: string
|
|
}
|
|
|
|
export type SessionMessage = {
|
|
info?: Record<string, unknown>
|
|
parts?: SessionMessagePart[]
|
|
}
|
|
|
|
function isRecord(value: unknown): value is Record<string, unknown> {
|
|
return typeof value === "object" && value !== null
|
|
}
|
|
|
|
function isSessionMessage(value: unknown): value is SessionMessage {
|
|
return isRecord(value)
|
|
}
|
|
|
|
function isSessionMessageArray(value: unknown): value is SessionMessage[] {
|
|
return Array.isArray(value) && value.every(isSessionMessage)
|
|
}
|
|
|
|
export function extractSessionMessages(messagesResponse: unknown): SessionMessage[] | undefined {
|
|
if (isSessionMessageArray(messagesResponse)) {
|
|
return messagesResponse
|
|
}
|
|
|
|
if (!isRecord(messagesResponse)) {
|
|
return undefined
|
|
}
|
|
|
|
const data = messagesResponse.data
|
|
if (isSessionMessageArray(data)) {
|
|
return data
|
|
}
|
|
|
|
return undefined
|
|
}
|