Aller au contenu
English

ConversationStore

import type { ConversationStore } from "@elie-laloum/outpost";
  • nameRequis
    string
    Nom du store, par exemple claude ou transport:<namespace>:<format>. Outpost l’associe à l’identifiant de conversation pour ne pas restaurer une conversation déjà présente dans la sandbox.
  • formatOptionnel
    string | undefined
    Format persisté que ce store lit et écrit, par exemple claude, codex, copilot, kimi ou harness. Un harness refuse à sa création un store d’un autre format avec le code configuration, et createTransportConversations() exige un store de base qui en déclare un.
  • locateRequis
    (id: string, repository: string, home?: string) => Promise<ConversationRecord>
    Retrouve une conversation capturée sur l’hôte à partir de son identifiant, du dépôt et d’un home optionnel, avant sa restauration. Échoue quand la conversation est absente.
  • captureRequis
    (id: string, context: ConversationContext) => Promise<ConversationRecord>
    Enregistre la conversation id depuis la sandbox du contexte vers l’hôte après un tour et renvoie son enregistrement.
  • restoreRequis
    (record: ConversationRecord, context: ConversationContext) => Promise<void>
    Écrit un enregistrement localisé dans la sandbox du contexte avant un tour de continuation, en relocalisant les chemins enregistrés vers le workspace de la sandbox.
export interface ConversationStore {
  readonly name: string;
  readonly format?: string;
  locate(
    id: string,
    repository: string,
    home?: string,
  ): Promise<ConversationRecord>;
  capture(
    id: string,
    context: ConversationContext,
  ): Promise<ConversationRecord>;
  restore(
    record: ConversationRecord,
    context: ConversationContext,
  ): Promise<void>;
}