<!-- Generated by scripts/gen-docs.ts from the TSDoc in src/. Do not edit by hand. -->

# `flow/render/live-text`

Source: [`src/flow/render/live-text.ts`](https://github.com/AI-for-dev/combo/blob/main/src/flow/render/live-text.ts)

The live view as text: the summary line, then one line per live line,
indented under the line that holds it, each cut to the width the caller
draws in.

The glyphs are the plan's `○` for what is not visited yet and the TUI's for
the rest, from `statusIcon`, so a flow's visit and a subagent's row read
alike; `–` marks a node its sequence never reached.

## `LiveRow`

*type*

```typescript
export type LiveRow = {
	/** How many lines hold it. */
	readonly depth: number;
	/** How its visit stands, which a caller colours it by. */
	readonly state: LiveState;
	/** `●`, `✓`, `✗`, `○` or `–`. */
	readonly glyph: string;
	/** What it says after its glyph, facts joined by ` · `, without who works on it. */
	readonly text: string;
	/** The subagents of a visit running now, which {@link showLive} names after its text; none once it ended. */
	readonly subagents: readonly string[];
};
```

One line of the live view as text, before any cut.

## `liveRows`

*function*

```typescript
export function liveRows(live: LivePlan): LiveRow[] { /* … */ }
```

`live`'s lines under its summary, one row each, for a caller that draws
them its own way: in colour, with what each subagent is doing under its
visit. `subagents` are those of a visit running now.

## `showLive`

*function*

```typescript
export function showLive(live: LivePlan, width: number): string { /* … */ }
```

`live` as lines of text, none longer than `width`, pure.

## `showSummary`

*function*

```typescript
export function showSummary(live: LivePlan, width: number): string { /* … */ }
```

The one line `live` collapses to, no longer than `width`: `✓ build · 14 visits · 1 failed · deliver not converged · 12m · ↑310k ↓12k`.
