MCPcopy Create free account
hub / github.com/MoonshotAI/kimi-code / createHarness

Function createHarness

packages/pi-tui/e2e/harness.ts:40–66  ·  view source on GitHub ↗
(
	initialLines: string[],
	options?: { columns?: number; rows?: number; capture?: boolean },
)

Source from the content-addressed store, hash-verified

38
39/** Build a TUI driven by a single Lines component on a virtual terminal. */
40export async function createHarness(
41 initialLines: string[],
42 options?: { columns?: number; rows?: number; capture?: boolean },
43): Promise<Harness<VirtualTerminal | WriteCapturingTerminal>> {
44 const columns = options?.columns ?? 60;
45 const rows = options?.rows ?? 10;
46 const terminal = options?.capture ? new WriteCapturingTerminal(columns, rows) : new VirtualTerminal(columns, rows);
47 const tui = new TUI(terminal);
48 const content = new Lines();
49 tui.addChild(content);
50 content.setLines(initialLines);
51 tui.start();
52 await terminal.waitForRender();
53 return {
54 terminal,
55 tui,
56 content,
57 async frame(lines: string[], force = false): Promise<void> {
58 content.setLines(lines);
59 tui.requestRender(force);
60 await terminal.waitForRender();
61 },
62 stop(): void {
63 tui.stop();
64 },
65 };
66}
67
68/** Count buffer lines (scrollback + screen) containing the marker. */
69export function countInBuffer(buffer: string[], marker: string): number {

Calls 4

setLinesMethod · 0.95
startMethod · 0.95
waitForRenderMethod · 0.80
addChildMethod · 0.45

Tested by

no test coverage detected