Files
property-match/archive/livia/src/provider/MockupExposeProvider.ts
T
Benjamin SutterandClaude Opus 5 2037e5a463 docs(agenten): Fallakte Livia und Agenten-Briefing sichern
`LIVIA_PROFIL_UND_PROMPT.md` hält Livia als Exposé Master fest, wie sie vor
Runde 8 war: Personalblatt, Aufgabenkatalog, Kanäle und Systeme, das
Exposé-Dossier mit elf Bereichen und neun Pflichtfeldern, die
`missingFacts`-Regel der Textmaschine — dazu ein System-Prompt, mit dem sich
diese Fassung ausserhalb des Repositories rekonstruieren lässt.

`archive/livia/` ergänzt die Beschreibung um die Wiederherstellung: die 23
Dateien der Exposé-Funktion als wörtliche Kopie im Original-Pfadlayout sowie
ein Manifest jeder Stelle, an der Livia in geteilten Dateien verdrahtet war.

Beides ist mit Runde 8 nicht überholt, sondern der Referenzstand: die
Exposé-Funktion wurde nicht entfernt, sondern nachgeordnet. Das Manifest
beschreibt allerdings den Rückbau eines vollständigen Entfernens und damit ein
Szenario, das so nicht eingetreten ist.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-22 00:35:57 +02:00

38 lines
1.1 KiB
TypeScript

import type { ExposeDraft } from '../domain/expose'
import type { IExposeProvider } from './IExposeProvider'
/**
* Entwurfsablage der Demo — in-memory, wie alle Mockup-Provider.
*
* Der Schlüssel ist das Paar aus Lead und Objekt: derselbe Lead kann mehrere
* Objekte empfehlen, und jedes bekommt sein eigenes Exposé.
*/
const store = new Map<string, ExposeDraft>()
function key(leadId: string, propertyId: string): string {
return `${leadId}::${propertyId}`
}
export const MockupExposeProvider: IExposeProvider = {
async getDraft(leadId, propertyId) {
return store.get(key(leadId, propertyId)) ?? null
},
async save(draft) {
const saved: ExposeDraft = { ...draft, updatedAt: new Date().toISOString() }
store.set(key(draft.leadId, draft.propertyId), saved)
return saved
},
async markGenerated(draftId) {
for (const [k, d] of store) {
if (d.id === draftId) {
const updated: ExposeDraft = { ...d, generatedAt: new Date().toISOString() }
store.set(k, updated)
return updated
}
}
throw new Error(`Exposé-Entwurf ${draftId} nicht gefunden`)
},
}