/** * Standup — cross-cwd, time-windowed compression of recent activity. * * Where `whisper` is "what's happening here," `standup` is "what have I been * doing across all my work." Crawls every Claude Code session JSONL whose * last message falls inside the time window, groups by working directory, * and runs a single streaming LLM pass to produce a project-by-project * narrative. No persistence. */ export interface StandupOptions { apiKey: string; baseUrl?: string; model?: string; temperature?: number; /** Time window expressed as e.g. "4h", "30m", "1d", "2h30m". Default "4h". */ since?: string; /** Last N messages per session that lands in the window. Default 6. */ turnsPerSession?: number; /** Per-session byte cap on the rendered tail. Default 1500. */ bytesPerSession?: number; /** Total byte cap on the assembled LLM input. Default 24000. */ totalBytes?: number; /** Per-project byte cap on the injected git commit block. Default 800. */ bytesPerCommitBlock?: number; /** Max commits per project surfaced in the commit block. Default 30. */ commitsPerProject?: number; /** Max sessions across all projects. Default 30. */ maxSessions?: number; /** Skip sessions whose last message is within this many ms (live session). Default 60_000. */ liveSessionWindowMs?: number; /** Include the actively-written session. Default false. */ includeCurrent?: boolean; /** * Include `entrypoint: 'sdk-cli'` Claude Code sessions. These are one-shot * SDK invocations (commit-message generation, summaries, subagents) — noise * for orientation. Default false. */ includeSdkCli?: boolean; /** Stream destination. Defaults to process.stdout. */ out?: NodeJS.WritableStream; } export interface StandupProjectMeta { cwd: string; sessionCount: number; messageCount: number; commitCount: number; } export interface StandupResult { windowMs: number; sessionsIncluded: number; projects: StandupProjectMeta[]; promptBytes: number; text: string; emitted: boolean; } export declare function parseDuration(input: string): number; /** * Scan the first chunk of a session JSONL file for a line carrying a cwd field * (user/assistant messages have it; meta lines like `queue-operation` don't). * Falls back to deriving a path from the project dir name if no line yields one, * which is lossy when basenames contain dashes — the JSONL cwd is authoritative. */ export declare function readSessionCwd(filePath: string, projectDirName: string): string; declare function basenameOf(path: string): string; export declare function standup(opts: StandupOptions): Promise; export declare const __internal: { basenameOf: typeof basenameOf; }; export {}; //# sourceMappingURL=standup.d.ts.map