import { cpus } from "node:os"; import type { ExtensionAPI, ExtensionContext, Theme, } from "@earendil-works/pi-coding-agent"; import footerExtension from "../index.ts"; const ROUNDS = 12; const MINIMUM_ROUND_NS = 200_000_000; const WIDE_COLUMNS = 160; const NARROW_COLUMNS = 72; const handlers = new Map void>>(); let footer: { render(width: number): string[]; dispose?(): void } | undefined; let sink = 0; const theme = { fg: (_color: string, text: string) => `\x1b[38;5;245m${text}\x1b[39m`, getFgAnsi: () => "\x1b[38;5;245m", } as Theme; const statuses = new Map([ ["mode", "review"], ["queue", "2 queued"], ]); const footerData = { getExtensionStatuses: () => statuses, onBranchChange: () => () => {}, }; const tui = { requestRender: () => { sink ^= 1; }, }; const ui = { setFooter: (factory: unknown) => { footer?.dispose?.(); footer = ( factory as ( tui: typeof tui, theme: Theme, data: typeof footerData, ) => typeof footer )(tui, theme, footerData); }, notify: () => {}, }; const pi = { events: { on: (name: string, handler: (data: unknown) => void) => { handlers.set(name, [...(handlers.get(name) ?? []), handler]); }, emit: (name: string, data: unknown) => { for (const handler of handlers.get(name) ?? []) handler(data); }, }, on: ( name: string, handler: (event: unknown, ctx: ExtensionContext) => void, ) => { handlers.set(name, [ ...(handlers.get(name) ?? []), (data) => handler(data, context), ]); }, registerCommand: () => {}, registerShortcut: () => {}, } as unknown as ExtensionAPI; const context = { hasUI: true, mode: "tui", ui, sessionManager: { getSessionName: () => "footer performance" }, } as unknown as ExtensionContext; function emit(name: string, data: unknown): void { for (const handler of handlers.get(name) ?? []) handler(data); } function segment(data: Record): void { emit("footer:segment", data); } function consume(lines: string[]): void { sink ^= lines.length; for (const line of lines) sink ^= line.length; } function render(width: number): void { if (!footer) throw new Error("footer did not mount"); consume(footer.render(width)); } function benchmark(name: string, operation: () => void): void { for (let index = 0; index < 3; index++) operation(); let iterations = 1; while (true) { const started = process.hrtime.bigint(); for (let index = 0; index < iterations; index++) operation(); if (Number(process.hrtime.bigint() - started) >= MINIMUM_ROUND_NS) break; iterations *= 2; } for (let warmup = 0; warmup < 3; warmup++) { for (let index = 0; index < iterations; index++) operation(); } for (let round = 0; round < ROUNDS; round++) { (globalThis as { gc?: () => void }).gc?.(); const started = process.hrtime.bigint(); for (let index = 0; index < iterations; index++) operation(); const elapsed = Number(process.hrtime.bigint() - started); console.log( `Benchmark${name}-${cpus().length}\t${iterations}\t${(elapsed / iterations).toFixed(0)} ns/op`, ); } } footerExtension(pi); segment({ id: "cwd", text: "~/Workspace/dotfiles/pi-ext", zone: "workspace", order: 0, }); segment({ id: "vcs", text: "trunk +3 !2", zone: "workspace", order: 1 }); segment({ id: "runtime", text: "node 26.8.2", zone: "workspace", order: 3 }); segment({ id: "provider", text: "", icon: "", zone: "llm", group: "model-route", order: -0.5, }); segment({ id: "subscription", text: "", icon: "󱏐", color: "success", zone: "llm", group: "model-route", gap: 2, order: -0.25, }); segment({ id: "model", text: "sol:medium", color: "syntaxKeyword", zone: "llm", group: "model-route", gap: 2, order: 0, }); segment({ id: "fast", text: "", icon: "󱐋", color: "warning", zone: "llm", group: "model-route", order: 0.5, }); segment({ id: "angel", text: "astra:max", icon: "󰧑", color: "accent", zone: "llm", group: "model-route", separator: "→", order: 0.75, }); segment({ id: "context-size", text: "112k/200k", variants: ["56%", "112k"], bar: 56, suffix: "56%", zone: "llm", order: 1, }); segment({ id: "tokens", text: "↑18.2k ↓4.1k  82%", zone: "llm", order: 2, }); segment({ id: "cost", text: "$0.42 · Σ$9.71 ·  $2624.8", color: "success", zone: "llm", order: 3, }); segment({ id: "quota:openai-codex", text: "2h 74% · week 61%", icon: "●", zone: "llm", order: 4, }); segment({ id: "tps", text: "󰓅 78.4/s", zone: "llm", order: 4 }); emit("session_start", { type: "session_start", reason: "startup" }); console.log(`goos: ${process.platform}`); console.log(`goarch: ${process.arch}`); console.log("pkg: pi-ext/footer"); benchmark("RenderWide", () => render(WIDE_COLUMNS)); benchmark("RenderNarrow", () => render(NARROW_COLUMNS)); let update = 0; benchmark("UpdateAndRender", () => { segment({ id: "tps", text: `󰓅 ${(70 + (update++ % 100) / 10).toFixed(1)}/s`, zone: "llm", order: 4, }); render(WIDE_COLUMNS); }); emit("session_shutdown", { type: "session_shutdown", reason: "quit" }); if (sink === 42) console.error(sink);