/** * hoocode team focus (--team): focus role rows, nudge, attach. * * Wires a hooteams connection into the TUI: team focus (app.team.focus), * nudging (n), the attach side panel (a) on the task panel's teams view, and * approval gates. task_paused events (and gates already pending on the server) * surface inline in the attach panel when it shows the paused role, otherwise * in the options pane; the answer goes back over POST /tasks/:id/resume. */ import type { Component, Container, TUI } from "@kolisachint/hoocode-tui"; import type { AskQuestion, ExtensionUIDialogOptions } from "../../core/extensions/index.js"; import type { TeamViewConnection } from "../../core/team-view.js"; import type { TaskPanelComponent } from "./components/task-panel.js"; /** The slice of the interactive mode the team feature needs. */ export interface TeamFocusDeps { ui: TUI; taskPanel: TaskPanelComponent; editorContainer: Container; /** The prompt editor (read at call time; the editor can be swapped). */ getEditor(): Component; showStatus(message: string): void; showWarning(message: string): void; showAskOptions(questions: AskQuestion[], opts?: ExtensionUIDialogOptions): Promise; /** True while another ask-options pane is on screen. */ isAskOptionsOpen(): boolean; } export declare class TeamFocusController { private readonly deps; private client; private attachPanel; private attachHandle; constructor(deps: TeamFocusDeps); /** True once a team client has been attached (--team). */ get connected(): boolean; /** * Wire a hooteams connection into the TUI. Called by main.ts when `--team` * is set, before run(). */ attachClient(client: TeamViewConnection): void; private presentApproval; /** Move keyboard focus to the task panel's team roster. */ enterFocus(): void; /** Leave team focus: detach any side panel and return focus to the editor. */ exitFocus(): void; /** * Inline nudge editor for a role (n in team focus or while attached). * Swaps the prompt editor for a one-line input; submit fires POST /steer in * the background (the REPL and team focus are never blocked on the network). */ showNudgeInput(role: string): void; /** Open the attach side panel for a role (a in team focus). */ showAttach(role: string): void; /** Detach the side panel; the role keeps running. Safe to call when closed. */ closeAttach(): void; } //# sourceMappingURL=team-focus.d.ts.map