Skip to content
Français

TranscriptConversationLayout

import type { TranscriptConversationLayout } from "@elie-laloum/outpost";
  • formatRequired
    string
    Persisted format name written in conversation records and transport keys.
  • sidecarsRequired
    boolean
    Whether child transcripts under <transcript directory>/<id>/subagents are captured and restored with the main transcript; a failed child capture only warns.
  • searchRootRequired
    (home: string) => string
    Host directory searched recursively for a transcript when locating a conversation.
  • remoteSearchRootRequired
    (home: string) => string
    Sandbox directory searched with find when capturing a conversation.
  • patternRequired
    (id: string) => string
    find -name pattern that matches the transcript file of a conversation in the sandbox.
  • matchesRequired
    (file: string, id: string) => boolean
    Whether a host file found under searchRoot is the transcript of the conversation.
  • directoryRequired
    (repository: string, home: string) => string
    Host directory that holds the captured transcripts of a repository.
  • preferredPathOptional
    ((id: string, repository: string, home: string) => string) | undefined
    Host path checked first when locating a conversation, before searching searchRoot.
  • capturePathRequired
    (id: string, repository: string, home: string, original: string) => string
    Host path where capture writes the transcript found at original in the sandbox.
  • remotePathRequired
    (id: string, lease: SandboxLease, original: string) => string
    Sandbox path where restoration writes a captured transcript for the lease workspace.
export interface TranscriptConversationLayout {
  /** Persisted format name, used in transport keys and conversation records. */
  readonly format: string;
  /** Whether child transcripts live under `<directory>/<id>/subagents/`. */
  readonly sidecars: boolean;
  searchRoot(home: string): string;
  remoteSearchRoot(home: string): string;
  /** `find -name` pattern matching the transcript file in the sandbox. */
  pattern(id: string): string;
  matches(file: string, id: string): boolean;
  directory(repository: string, home: string): string;
  preferredPath?(id: string, repository: string, home: string): string;
  capturePath(
    id: string,
    repository: string,
    home: string,
    original: string,
  ): string;
  remotePath(id: string, lease: SandboxLease, original: string): string;
}