`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>
38 lines
1.1 KiB
TypeScript
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`)
|
|
},
|
|
}
|