agenttwo-tools/web/src/types.ts
Jeuner 9bce768f95 feat: Gedächtnis mit Append-Only-Log, Traumphase und Ankerpunkten
- memory_events als append-only Log (nur INSERT), daraus Zustand
  deterministisch rekonstruierbar (fold/rebuild)
- Traumphase konsolidiert Log in Ankerpunkte: LLM-Extraktion mit
  Heuristik-Fallback, Dedupe über Wort-Ähnlichkeit, Decay auf
  ungepinnten Ankern
- einstellbares Gedächtnis-Fenster (Default 10 Schritte) statt
  hartkodiertem slice(-24)
- wichtigste Ankerpunkte werden als System-Kontext eingespielt
- neue Werkzeuge remember (schreibend, gepinnt) und recall
- Gedächtnis-Panel im Frontend: Ankerliste, Pinnen, Traumphase
  manuell auslösen, Rekonstruktion
- Eval-Skript: npm run memory:eval --workspace server
2026-08-27 21:41:35 +02:00

87 lines
1.6 KiB
TypeScript

export interface Session {
id: string;
title: string;
created_at: number;
}
export interface Message {
id: string;
session_id: string;
role: "user" | "assistant" | "system";
content: string;
thinking: string | null;
/** JSON-Array mit base64-Bilddaten, wie es der Server speichert. */
images: string | null;
created_at: number;
}
/** Werkzeugaufruf während einer Antwort. Nur zur Laufzeit, nicht gespeichert. */
export interface ToolEvent {
name: string;
args: string;
ok?: boolean;
durationMs?: number;
}
export interface ChatOptions {
think: boolean;
tools: boolean;
temperature: number;
numPredict: number;
provider: "ollama" | "openrouter";
openrouterModel: string;
memorySteps: number;
memoryAnchors: boolean;
dreamAuto: boolean;
}
export interface Anchor {
id: number;
session_id: string;
text: string;
kind: string;
importance: number;
hits: number;
pinned: number;
origin: string;
last_seq: number;
created_at: number;
updated_at: number;
}
export interface MemoryState {
last_seq: number;
last_dream_seq: number;
dream_count: number;
}
export interface DreamResult {
ok: boolean;
events: number;
inserted: number;
merged: number;
pruned: number;
source: string;
error?: string;
}
export interface MemoryInfo {
state: MemoryState;
anchors: Anchor[];
}
export interface OpenRouterModel {
id: string;
name: string;
contextLength: number;
promptPrice: number;
}
export interface ModelInfo {
ok: boolean;
model?: string;
parameterSize?: string;
quantization?: string;
capabilities?: string[];
error?: string;
}