Skip to content
Français

NativeConversationStore

import type { NativeConversationStore } from "@elie-laloum/outpost";
  • formatRequired
    string
    Persisted format name written in conversation records, transport keys and session bundles. Keep it stable once conversations have been captured.
  • directoryRequired
    (repository: string, home?: string) => string
    Host directory that holds this format’s captured conversations for a repository, below home when given.
  • destinationRequired
    (id: string, sandbox: SandboxLease, original: string) => string
    Sandbox path that restoring the conversation id writes, given its captured host file.
  • nameRequired
    string
    Store name, such as claude or transport:<namespace>:<format>. Outpost pairs it with the conversation id to skip restoring a conversation the sandbox already holds.
  • locateRequired
    (id: string, repository: string, home?: string) => Promise<ConversationRecord>
    Finds a captured conversation on the host from its id, the repository and an optional home, before it is restored. Rejects when the conversation is missing.
  • captureRequired
    (id: string, context: ConversationContext) => Promise<ConversationRecord>
    Saves conversation id from the context’s sandbox to the host after a turn and returns its record.
  • restoreRequired
    (record: ConversationRecord, context: ConversationContext) => Promise<void>
    Writes a located record into the context’s sandbox before a continued turn, relocating recorded paths to the sandbox workspace.
export interface NativeConversationStore extends ConversationStore {
  /** Persisted format name, used in transport keys, bundles and records. */
  readonly format: string;
  /** Host directory that holds this format's captured conversations. */
  directory(repository: string, home?: string): string;
  /** Sandbox path that restoration writes for a captured conversation. */
  destination(id: string, sandbox: SandboxLease, original: string): string;
}