// ImportScreen — recent import runs and status function ImportBar({ run }) { const total = run.rows; const pct = (n) => (n / total) * 100; return (
); } function ImportScreen({ entity, onOpenImport }) { const runs = window.AKEFIN_DATA.importRuns.filter(r => entity === "all" || r.entity === entity); const total = runs.reduce((acc, r) => ({ rows: acc.rows + r.rows, auto: acc.auto + r.auto, high: acc.high + r.high, review: acc.review + r.review, failed: acc.failed + r.failed, }), { rows: 0, auto: 0, high: 0, review: 0, failed: 0 }); return (

Import status

{runs.length} recent runs · {total.rows} rows · {total.failed} failed
POLL TOSS IMPORT FILE…
{total.rows}TOTAL ROWS
{total.auto}AUTO · TIER 1
{total.high}HIGH · TIER 2
{total.review}REVIEW · TIER 3
{total.failed}FAILED
$ akefin import --watch{"\n"} polling 4 sources · last poll 4 min ago · next in 11 min{"\n"} tier 1 rules: 47 active · tier 2 llm: gpt-4o-mini · tier 3 agent: claude-haiku
RUN AT SOURCE ENTITY ROWS BREAKDOWN
{runs.map(r => (
{r.at} {r.source} {r.rows} {r.auto} · {r.high} · {r.review} · {r.failed} OPEN
))}
); } Object.assign(window, { ImportScreen });