// The insights panel: what the last turn sent, and what it cost. import { useEffect, useState } from 'react' import { api } from '../../../api' import { SECTION_LABELS, pctLabel, sectionColor } from '../format' import { CacheReport, TokenBreakdown, WorldStateReport } from '../reports' function InsightsPanel({ advId, inspectActionId, onClearInspect, refreshKey }) { const [report, setReport] = useState(null) const [error, setError] = useState(null) useEffect(() => { let stale = false // a slow earlier request must not clobber a newer one setError(null) const load = inspectActionId ? api.getActionContext(advId, inspectActionId) : api.getAdventureContext(advId) load .then((r) => { if (!stale) setReport(r) }) .catch((err) => { if (!stale) { setReport(null); setError(err.message) } }) return () => { stale = true } }, [advId, inspectActionId, refreshKey]) if (error) return
{s.text}
{report.raw_output}