hermes-agent/apps/desktop/src/lib/session-search.ts

24 lines
631 B
TypeScript

import { normalize } from '@/lib/text'
import type { SessionInfo } from '@/types/hermes'
import { sessionTitle } from './chat-runtime'
import { sessionSourceSearchTerms } from './session-source'
export function sessionMatchesSearch(session: SessionInfo, query: string): boolean {
const needle = normalize(query)
if (!needle) {
return true
}
return [
session.id,
session._lineage_root_id ?? '',
sessionTitle(session),
session.preview ?? '',
session.cwd ?? '',
session.git_branch ?? '',
...sessionSourceSearchTerms(session.source)
].some(value => value.toLowerCase().includes(needle))
}