/** * Whisper — neighborhood-aware verbatim readout. * * Sits between `snap` (single cwd, verbatim) and `gossip` (LLM compaction over * whisper). Resolves the cwd into its conceptual sibling family and snaps each * member with a per-member byte budget. Output is the combined verbatim text, * grouped by repo. No LLM in the path — pure read. */ import { type SnapOptions, type SnapResult } from './snap.js'; import { type NeighborhoodEntry } from './neighborhood.js'; export interface WhisperOptions extends SnapOptions { /** * If true, skip neighborhood expansion and only collect the cwd itself. * Default false — whisper resolves cwd into its conceptual sibling family * (e.g. `6digit-studio` brings the full `6digit-*` cluster) and treats the * neighborhood as one project family. */ cwdOnly?: boolean; } export interface WhisperBlock { member: NeighborhoodEntry; source: SnapResult; } export interface WhisperResult { /** The cwd whisper was anchored on. */ cwd: string; /** Combined verbatim text, grouped by repo with `## ` headers. */ text: string; /** Total bytes of the combined text. */ bytes: number; /** Sum of sessionsIncluded across contributing members. */ sessionsIncluded: number; /** Sum of turnsIncluded across contributing members. */ turnsIncluded: number; /** True if any member's snap was budget-truncated, or the total budget was exhausted. */ truncated: boolean; /** Neighborhood resolved for the cwd (self first). */ neighborhood: NeighborhoodEntry[]; /** Per-member snap results in the order they were collected. */ blocks: WhisperBlock[]; /** True if at least one member contributed sessions. */ emitted: boolean; } export declare function whisper(opts?: WhisperOptions): WhisperResult; //# sourceMappingURL=whisper.d.ts.map