UNPKG

@follow-app/client-sdk

Version:

TypeScript client SDK for Follow RSS Server API

85 lines (68 loc) 2.15 kB
import type { UIMessageParts } from "@folo-services/drizzle" import type { StructuredSuccessResponse } from "../../types" import type { DateISOString } from "../../types/date-serialization" // Base request types export interface ChatIdRequest { chatId: string } // Base types from Drizzle schema export interface AIChatSession { chatId: string userId: string title: string createdAt: DateISOString updatedAt: DateISOString lastSeenAt: DateISOString } export interface AIChatMessage { id: string chatId: string role: "user" | "assistant" | "system" messageParts: UIMessageParts metadata?: unknown status: "pending" | "completed" | "error" createdAt: DateISOString finishedAt: DateISOString | null } export interface ChatMetadata { tokenUsage?: { promptTokens: number completionTokens: number totalTokens: number } finishReason?: string model?: string [key: string]: any } // Request types export interface GetSessionRequest extends ChatIdRequest {} export interface ListSessionsQuery { limit?: number // 1-100, default 20 before?: DateISOString // Optional cursor for pagination } export interface UpdateSessionRequest extends ChatIdRequest { title: string // 1-100 chars, required } export interface DeleteSessionRequest extends ChatIdRequest {} export interface GetMessagesQuery extends ChatIdRequest { limit?: number before?: DateISOString // Optional cursor for pagination } export interface MarkSeenRequest extends ChatIdRequest { lastSeenAt?: DateISOString // Optional timestamp (defaults to now) } export interface GetUnreadQuery { limit?: number } // Response types export type SessionResponse = StructuredSuccessResponse<AIChatSession> export type ListSessionsResponse = StructuredSuccessResponse<AIChatSession[]> & { total: number nextBefore?: DateISOString // Cursor for next page } export type GetMessagesResponse = StructuredSuccessResponse<{ chatSession: AIChatSession | null messages: AIChatMessage[] nextBefore?: DateISOString // Cursor for next page }> export type GetUnreadResponse = StructuredSuccessResponse<string[]> // Array of chatIds