feat: add session search modal (#128)
This commit is contained in:
@@ -5,6 +5,7 @@ export interface SessionSummary {
|
||||
source: string
|
||||
model: string
|
||||
title: string | null
|
||||
preview?: string
|
||||
started_at: number
|
||||
ended_at: number | null
|
||||
last_active?: number
|
||||
@@ -25,6 +26,12 @@ export interface SessionDetail extends SessionSummary {
|
||||
messages: HermesMessage[]
|
||||
}
|
||||
|
||||
export interface SessionSearchResult extends SessionSummary {
|
||||
matched_message_id: number | null
|
||||
snippet: string
|
||||
rank: number
|
||||
}
|
||||
|
||||
export interface HermesMessage {
|
||||
id: number
|
||||
session_id: string
|
||||
@@ -48,6 +55,16 @@ export async function fetchSessions(source?: string, limit?: number): Promise<Se
|
||||
return res.sessions
|
||||
}
|
||||
|
||||
export async function searchSessions(q: string, source?: string, limit?: number): Promise<SessionSearchResult[]> {
|
||||
const params = new URLSearchParams()
|
||||
params.set('q', q)
|
||||
if (source) params.set('source', source)
|
||||
if (limit) params.set('limit', String(limit))
|
||||
const query = params.toString()
|
||||
const res = await request<{ results: SessionSearchResult[] }>(`/api/hermes/search/sessions?${query}`)
|
||||
return res.results
|
||||
}
|
||||
|
||||
export async function fetchSession(id: string): Promise<SessionDetail | null> {
|
||||
try {
|
||||
const res = await request<{ session: SessionDetail }>(`/api/hermes/sessions/${id}`)
|
||||
|
||||
Reference in New Issue
Block a user