import type { SlopeEvent, SprintClaim } from './types.js'; /** Structured standup report — platform-agnostic agent status format */ export interface StandupReport { sessionId: string; agent_role?: string; ticketKey?: string; status: 'working' | 'blocked' | 'complete'; progress: string; blockers: string[]; decisions: string[]; handoffs: HandoffEntry[]; timestamp: string; context?: StandupContext; } /** Repo-derived context that makes a standup usable as an actual wrap: * sprint + scorecard state, branch + commits, and transcript volume. (#619) */ export interface StandupContext { sprint?: number; scorecard?: 'present' | 'missing'; branch?: string; commits?: { count: number; latest?: string; }; transcript?: { turns: number; toolCalls: number; durationMin: number; }; } /** A handoff — files or areas another agent needs to know about */ export interface HandoffEntry { target: string; description: string; for_role?: string; } /** * Generate a standup report from a session's events and claims. * Extracts progress, blockers, decisions, and handoffs from recent events. */ export declare function generateStandup(opts: { sessionId: string; agent_role?: string; events: SlopeEvent[]; claims: SprintClaim[]; context?: StandupContext; }): StandupReport; /** * Format a standup report as human-readable markdown. */ export declare function formatStandup(report: StandupReport): string; /** * Parse a standup report from its JSON event data. * Used when ingesting another agent's standup. */ export declare function parseStandup(data: Record): StandupReport | null; /** * Extract handoffs from a standup that are relevant to a given role. * Returns handoffs that either have no for_role or match the target role. */ export declare function extractRelevantHandoffs(standup: StandupReport, roleId?: string): HandoffEntry[]; /** Aggregated team standup from multiple agent standups */ export interface TeamStandup { timestamp: string; agents: StandupReport[]; status: 'working' | 'blocked' | 'complete'; summary: { working: number; blocked: number; complete: number; }; blockers: Array<{ agent: string; blocker: string; }>; decisions: Array<{ agent: string; decision: string; }>; handoffs: HandoffEntry[]; conflicts: Array<{ agents: string[]; description: string; }>; } /** * Aggregate multiple standup reports into a team-level summary. * Sorts by timestamp, deduplicates, detects conflicts between agents. */ export declare function aggregateStandups(standups: StandupReport[]): TeamStandup; /** * Format a team standup as human-readable markdown. */ export declare function formatTeamStandup(standup: TeamStandup): string; //# sourceMappingURL=standup.d.ts.map