diff --git a/injected/chat-logger.js b/injected/chat-logger.js index 2878ed8..db68537 100644 --- a/injected/chat-logger.js +++ b/injected/chat-logger.js @@ -110,7 +110,7 @@ function extractAssistant(sse) { if (!sse) return '' var out = [] - var blocks = sse.split(SEP) + var blocks = sse.split(SEP); evTotal = blocks.length for (var i = 0; i !== blocks.length; i++) { var block = blocks[i] var idx = block.indexOf('data: ') @@ -120,10 +120,10 @@ var o = null try { o = JSON.parse(json) } catch (e) { continue } if (!o || typeof o !== 'object') continue - if (o.p) continue + if (o.p) { evP = evP + 1; continue } if (typeof o.v !== 'string') continue if (Object.keys(o).length !== 1) continue - out.push(o.v) + evV = evV + 1; out.push(o.v) } return out.join('') } @@ -168,7 +168,7 @@ if (req && Array.isArray(req.messages)) messages = req.messages else if (req && typeof req.prompt === 'string' && req.prompt) messages = [{ role: 'user', content: req.prompt }] } catch (e) { return } - var assistant = ''; var sseCalls = 0 + var assistant = ''; var sseCalls = 0; var evTotal = 0; var evV = 0; var evP = 0; var evOther = 0 try { assistant = extractAssistant(entry.resp || '') } catch (e) { }; try { var LB1 = String.fromCharCode(10214); var RB1 = String.fromCharCode(10215); var marker = LB1 + 'DSH' + RB1; var pos = 0; while (true) { var hit = assistant.indexOf(marker, pos); if (hit === -1) break; sseCalls = sseCalls + 1; pos = hit + marker.length } } catch (e) { } var all = messages.slice() if (assistant) all.push({ role: 'assistant', content: assistant }) var file = today() + '.jsonl' @@ -206,7 +206,7 @@ accum: accum, delta: delta, chars: ctxChars, - chat_id: chatId, parent_id: pid, sse_calls: sseCalls, sse_len: assistant.length, sse_len: assistant.length, req_keys: reqKeys, est_tok: Math.round(ctxChars / K_RATIO), ctx_chars: charsAccum, ctx_tok: Math.round(charsAccum / K_RATIO), ctx_pct: Math.round(charsAccum / K_RATIO * 1000 / CONTEXT_LIMIT) / 10 + chat_id: chatId, parent_id: pid, sse_calls: sseCalls, sse_len: assistant.length, ev_total: evTotal, ev_v: evV, ev_p: evP, sse_len: assistant.length, req_keys: reqKeys, est_tok: Math.round(ctxChars / K_RATIO), ctx_chars: charsAccum, ctx_tok: Math.round(charsAccum / K_RATIO), ctx_pct: Math.round(charsAccum / K_RATIO * 1000 / CONTEXT_LIMIT) / 10 } lines.push(JSON.stringify(meta)); try { window.dispatchEvent(new CustomEvent('dshmem:metrics', { detail: JSON.stringify({ accum: accum, delta: delta, chars: ctxChars, est_tok: Math.round(ctxChars / K_RATIO), ctx_chars: charsAccum, ctx_tok: Math.round(charsAccum / K_RATIO), ctx_pct: Math.round(charsAccum / K_RATIO * 1000 / CONTEXT_LIMIT) / 10 }) })) } catch (e) { } }