Files
hermes-os/lib/types.ts
T
Hermes 517583d1c4 MVP: Pulse, Memory, History modules
- Mobile-first PWA with dark glassmorphic theme
- Pulse: status card, recent sessions, memory snapshot
- Memory: view/edit agent + user memory with usage bars
- History: session list, platform filter, search, session replay
- TanStack Query hooks for all Hermes WebAPI endpoints
- Bottom tab navigation, safe-area support
2026-04-09 20:41:13 -05:00

108 lines
2.1 KiB
TypeScript

// Hermes WebAPI response types
export interface Session {
id: string;
source: string;
user_id: string | null;
model: string | null;
started_at: number;
ended_at: number | null;
end_reason: string | null;
message_count: number;
tool_call_count: number;
input_tokens: number;
output_tokens: number;
cache_read_tokens: number;
cache_write_tokens: number;
reasoning_tokens: number;
estimated_cost_usd: number | null;
title: string | null;
parent_session_id: string | null;
}
export interface Message {
id: number;
session_id: string;
role: "user" | "assistant" | "tool" | "system";
content: string | null;
tool_call_id: string | null;
tool_calls: string | null;
tool_name: string | null;
timestamp: number;
token_count: number | null;
finish_reason: string | null;
reasoning: string | null;
}
export interface ToolCall {
id: string;
function: { name: string; arguments: string };
}
export interface MemoryTarget {
target: "memory" | "user";
entries: string[];
usage: string;
entry_count: number;
}
export interface MemoryResponse {
targets: MemoryTarget[];
}
export interface SkillSummary {
name: string;
description: string;
category?: string;
}
export interface SkillDetail {
name: string;
content: string;
linked_files?: Record<string, string[]>;
}
export interface CronJob {
id: string;
name?: string;
prompt: string;
schedule: string;
status: string;
deliver: string;
skill?: string;
skills?: string[];
model?: string;
provider?: string;
repeat?: number;
run_count: number;
last_run?: string;
next_run?: string;
created_at: string;
}
export interface GatewayState {
pid: number;
kind: string;
gateway_state: string;
platforms: Record<string, { state: string; updated_at: string }>;
updated_at: string;
}
export interface ConfigResponse {
model: string;
provider: string | null;
api_mode: string | null;
base_url: string | null;
config: Record<string, unknown>;
}
export interface SearchResult {
session_id: string;
message_id: number;
role: string;
content: string;
timestamp: number;
session_title: string | null;
session_source: string;
}