From 9504231be8cf43b4d3b7da1048a5f1f2bb24d4d2 Mon Sep 17 00:00:00 2001 From: Yuchao Wang Date: Mon, 2 Nov 2026 08:48:46 +0000 Subject: [PATCH] feat(research): inspect per-turn costs with verified counter evidence Signed-off-by: Yuchao Wang --- .../goal-research-analysis.tsx | 15 +- .../goal-research-progress.css | 11 ++ .../goal-research-progress.tsx | 4 +- .../research-turn-costs.tsx | 54 +++++ docs/images/research-turn-costs-desktop.png | Bin 0 -> 94390 bytes docs/images/research-turn-costs-mobile.png | Bin 0 -> 46817 bytes docs/images/research-turn-costs-overview.png | Bin 0 -> 74491 bytes docs/reference/trajectory-assessment.md | 40 ++++ examples/personal-workspace-browser-smoke.mjs | 3 +- .../research-history-backend.py | 3 +- .../research-history.mjs | 2 +- .../research-native-reading.mjs | 2 +- .../research-tool-context.mjs | 2 +- .../research-turn-costs.mjs | 100 ++++++++++ .../trajectory_assessment_store.py | 186 ++++++++++++------ loopx/chat_server.py | 1 + loopx/presentation/research_analysis_api.py | 11 +- loopx/presentation/runtime_workspace.py | 2 +- .../test_trajectory_assessment_store.py | 39 ++++ .../test_research_analysis_api.py | 26 +++ 20 files changed, 421 insertions(+), 80 deletions(-) create mode 100644 apps/presentation/dashboard/src/features/personal-workspace/research-turn-costs.tsx create mode 100644 docs/images/research-turn-costs-desktop.png create mode 100644 docs/images/research-turn-costs-mobile.png create mode 100644 docs/images/research-turn-costs-overview.png create mode 100644 examples/personal-workspace-browser/research-turn-costs.mjs diff --git a/apps/presentation/dashboard/src/features/personal-workspace/goal-research-analysis.tsx b/apps/presentation/dashboard/src/features/personal-workspace/goal-research-analysis.tsx index 7c6c492504..1ba9888b4c 100644 --- a/apps/presentation/dashboard/src/features/personal-workspace/goal-research-analysis.tsx +++ b/apps/presentation/dashboard/src/features/personal-workspace/goal-research-analysis.tsx @@ -23,7 +23,7 @@ type Pack = ResearchProgressPack & {source_count: number; analysis_key: string; continuation_unavailable?: {base_pack_id: string}; continuation?: TrajectoryContinuation & {base_pack_id: string; base_title: string; base_available: boolean; base_episode_count: number}}; type Snapshot = {ok: true; execution_enabled?: boolean; catalog: {availability: string; reason_code: string | null; default_pack_id: string | null; packs: Pack[]; unreadable_pack_ids?: string[]}; pack: Pack | null}; -type Citation = AssessmentCitation & {artifact: string; text: string; applicability: string}; +type Citation = AssessmentCitation & {evidence_kind?: "usage_counters"; artifact: string; text: string; applicability: string}; const errorText = (error: unknown) => error instanceof Error ? error.message : String(error); const locationFor = (goal: string) => { const query = new URLSearchParams(window.location.search); @@ -175,18 +175,20 @@ export function useResearchAnalysis(goalId: string, active: boolean, zh: boolean } catch (e) {if (current === generation.current) setError(errorText(e));} finally {if (current === generation.current) setCancelPending(false);} }; - const readCitation = async (c: AssessmentCitation, origin?: HTMLButtonElement) => { + const readEvidence = async (selection: Record, route: string, origin?: HTMLButtonElement) => { const p = pack; if (!p) return; if (origin) sourceTrigger.current = origin; const current = ++citeGeneration.current; setCitation(null); setCitationBusy(true); setCitationError(""); - const query = new URLSearchParams({goal_id: goalId, pack_id: p.pack_id, analysis_key: p.analysis_key, output_language: outputLanguage, source_id: c.source_id, first_line: String(c.first_line), last_line: String(c.last_line)}); - try {const value = await requestJson(sourceReadApiUrl(readSourceUrl, `${endpoint}/citation?${query}`)); if (current === citeGeneration.current) setCitation(value);} + const query = new URLSearchParams({goal_id: goalId, pack_id: p.pack_id, analysis_key: p.analysis_key, output_language: outputLanguage, ...selection}); + try {const value = await requestJson(sourceReadApiUrl(readSourceUrl, `${endpoint}/${route}?${query}`)); if (current === citeGeneration.current) setCitation(value);} catch (e) {if (current === citeGeneration.current) setCitationError(errorText(e));} finally {if (current === citeGeneration.current) setCitationBusy(false);} }; + const readCitation = (c: AssessmentCitation, origin?: HTMLButtonElement) => readEvidence({source_id: c.source_id, first_line: String(c.first_line), last_line: String(c.last_line)}, "citation", origin); + const readUsageTurn = (turnId: string, origin: HTMLButtonElement) => readEvidence({turn_id: turnId}, "usage-turn", origin); const closeCitation = () => {citeGeneration.current++; setCitation(null); setCitationError(""); setCitationBusy(false); requestAnimationFrame(() => sourceTrigger.current?.focus());}; - return {readOnly: Boolean(readSourceUrl) && currentSnapshot?.execution_enabled !== true, citation, citationBusy, citationError, sourcePanel, readCitation, closeCitation, goalId, zh, location, snapshot: currentSnapshot, pack, readError, error, loading, pending, cancelPending, recordedRunning, panel, trigger, read, show, execute, cancel, + return {readOnly: Boolean(readSourceUrl) && currentSnapshot?.execution_enabled !== true, citation, citationBusy, citationError, sourcePanel, readCitation, readUsageTurn, closeCitation, goalId, zh, location, snapshot: currentSnapshot, pack, readError, error, loading, pending, cancelPending, recordedRunning, panel, trigger, read, show, execute, cancel, close: () => {citeGeneration.current++; setCitation(null); setCitationError(""); setCitationBusy(false); navigate(false); requestAnimationFrame(() => trigger.current?.focus());}, select: (id: string) => navigate(location.open, id, true)}; } type Controller = ReturnType; @@ -279,7 +281,7 @@ export function ResearchAnalysisStatus({analysis: a}: {analysis: Controller}) { export function ResearchProgressSummary({analysis: a, includeReport = true}: {analysis: Controller; includeReport?: boolean}) { const packs = a.snapshot?.catalog.packs ?? []; if (!a.pack && !packs.length) return null; - return ; + return ; } export function ResearchReportSummary({analysis: a}: {analysis: Controller}) { @@ -373,6 +375,7 @@ export function ResearchCitationPanel({analysis: a}: {analysis: Controller}) { {a.citationBusy ?

{zh ? "正在读取引用原文…" : "Reading cited source…"}

: null} {a.citationError ?

{a.citationError}

: null} {a.citation ? <>

{a.citation.artifact} · {zh ? "行" : "lines"} {a.citation.first_line}–{a.citation.last_line}

+ {a.citation.evidence_kind === "usage_counters" ?

{zh ? "计数事件:前一累计观测、本轮开始、末次计数及完成(如有)。仅显示计数字段;提示词、工具内容与账户信息不传入浏览器。" : "Counter events: preceding cumulative observation, Turn start, latest counters and completion if present. Only counter fields are shown; prompts, tool content and account metadata stay outside the browser."}

: null} : null} ; } diff --git a/apps/presentation/dashboard/src/features/personal-workspace/goal-research-progress.css b/apps/presentation/dashboard/src/features/personal-workspace/goal-research-progress.css index b0dff8caf6..8e618a113d 100644 --- a/apps/presentation/dashboard/src/features/personal-workspace/goal-research-progress.css +++ b/apps/presentation/dashboard/src/features/personal-workspace/goal-research-progress.css @@ -147,3 +147,14 @@ .research-usage-basis { grid-template-columns: 1fr; gap: 4px; } .research-progress-basis dd, .research-usage-basis dd { margin-bottom: 8px; } } + +.research-turn-costs { border-top: 1px solid var(--pw-line); padding-top: 12px; margin-top: 12px; } +.research-turn-costs > p { max-width: 72ch; color: var(--pw-muted); font-size: 12px; } +.research-turn-cost-list { list-style: none; padding: 0; margin: 12px 0; } +.research-turn-cost-list > li { padding: 12px 0; border-top: 1px solid var(--pw-line); } +.research-turn-cost-list time { display: block; font-size: 11px; color: var(--pw-muted); overflow-wrap: anywhere; } +.research-turn-cost-list dl { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 8px 0; } +.research-turn-cost-list dt { font-size: 11px; color: var(--pw-muted); } +.research-turn-cost-list dd { margin: 0; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; } +.research-turn-costs nav { display: flex; align-items: center; gap: 12px; } +@media (max-width: 600px) { .research-turn-cost-list dl { grid-template-columns: repeat(2, minmax(0, 1fr)); } } diff --git a/apps/presentation/dashboard/src/features/personal-workspace/goal-research-progress.tsx b/apps/presentation/dashboard/src/features/personal-workspace/goal-research-progress.tsx index 80e117af02..17220c65c9 100644 --- a/apps/presentation/dashboard/src/features/personal-workspace/goal-research-progress.tsx +++ b/apps/presentation/dashboard/src/features/personal-workspace/goal-research-progress.tsx @@ -5,6 +5,7 @@ import type {AssessmentCitation, AssessmentVerdict, TrajectoryAssessment, Trajec import type {TrajectoryNativeOutcomes} from "../../../../../../loopx/control_plane/capabilities/trajectory_native_outcomes.js"; import {ContextHelp} from "./context-help"; import {ResearchSynthesis} from "./goal-research-synthesis"; +import {ResearchTurnCosts} from "./research-turn-costs"; import {ToolContextInventory} from "./goal-tool-context"; import "./goal-research-progress.css"; @@ -253,7 +254,7 @@ function ResearchMetrics({pack: p, zh, onCitation}: {pack: ResearchProgressPack ; } -export function ResearchProgress({pack: p, packs, selectedId, zh, onSelect, onCitation, analysisOpen = false, includeReport = true}: {pack: ResearchProgressPack | null; packs: Pick[]; selectedId: string; zh: boolean; analysisOpen?: boolean; includeReport?: boolean; onSelect: (id: string) => void; onCitation: (citation: AssessmentCitation, origin?: HTMLButtonElement) => void}) { +export function ResearchProgress({pack: p, packs, selectedId, zh, onSelect, onCitation, onUsageTurn, analysisOpen = false, includeReport = true}: {pack: ResearchProgressPack | null; packs: Pick[]; selectedId: string; zh: boolean; analysisOpen?: boolean; includeReport?: boolean; onSelect: (id: string) => void; onUsageTurn?: (turnId: string, origin: HTMLButtonElement) => void; onCitation: (citation: AssessmentCitation, origin?: HTMLButtonElement) => void}) { const measured = p?.solver_usage, usage = measured?.projection, result = p?.result; const historical = p?.applicability === "historical"; const resultHelp = historical ? (result ? (zh ? "历史分析 · 当前判断未核验" : "Historical analysis · Current judgments unverified") @@ -334,6 +335,7 @@ export function ResearchProgress({pack: p, packs, selectedId, zh, onSelect, onCi : null} : null} + {usage && onUsageTurn ? : null} {usage && measured ?
{zh ? "计数明细与来源" : "Counter details and source"}
{zh ? "捕获时间(UTC)" : "Capture window (UTC)"}
—
diff --git a/apps/presentation/dashboard/src/features/personal-workspace/research-turn-costs.tsx b/apps/presentation/dashboard/src/features/personal-workspace/research-turn-costs.tsx new file mode 100644 index 0000000000..f542aa341d --- /dev/null +++ b/apps/presentation/dashboard/src/features/personal-workspace/research-turn-costs.tsx @@ -0,0 +1,54 @@ +import {useId, useState} from "react"; +import type {TrajectorySolverUsage} from "../../../../../../loopx/control_plane/capabilities/trajectory_assessment_types.js"; + +/** Presentation of existing Turn counters; never estimates missing usage or attributes it to control work. */ +export function ResearchTurnCosts({usage, zh, onRead}: {usage: TrajectorySolverUsage; zh: boolean; + onRead: (turnId: string, origin: HTMLButtonElement) => void}) { + const id = useId(); + const [sort, setSort] = useState("input"); + const [page, setPage] = useState(0); + const rows: Array & {usage: TrajectorySolverUsage["turns"][number]["usage"] | null; ordinal: number; incomplete: boolean}> = usage.turns.map((turn, index) => ({...turn, ordinal: index + 1, incomplete: false})); + const tail = usage.incomplete_turn; + if (tail) rows.push({...tail, end: tail.observed_through, + elapsed_seconds: Math.max(0, (Date.parse(tail.observed_through) - Date.parse(tail.start)) / 1000), + ordinal: rows.length + 1, incomplete: true, usage: tail.usage}); + const ordered = [...rows].sort((a, b) => { + const value = (row: typeof a) => sort === "elapsed" ? row.elapsed_seconds + : sort === "time" ? row.ordinal : row.usage?.input_tokens ?? -1; + return (sort === "time" ? value(a) - value(b) : value(b) - value(a)) || a.ordinal - b.ordinal; + }); + const size = 8, pages = Math.max(1, Math.ceil(rows.length / size)), current = Math.min(page, pages - 1); + const number = (n: number | undefined | null) => n == null ? "—" : n.toLocaleString(zh ? "zh-CN" : "en"); + return
+ {zh ? "定位耗时与输入最多的轮次" : "Find time and input hotspots"} +

{zh ? "仅比较当前捕获内的轮次。耗时含工具、等待与编排,不是可节省时间;轮次输入不等于 LoopX 控制输入。金额未采集。" : "Compares Turns within this capture only. Elapsed time includes tools, waiting and orchestration, not avoidable time. Turn input is not LoopX control input. Dollar cost is unmeasured."}

+ {" "} + + {rows.length ?
    + {ordered.slice(current * size, (current + 1) * size).map(turn =>
  1. +
    {zh ? `第 ${turn.ordinal} 轮` : `Turn ${turn.ordinal}`} + {turn.incomplete ? {zh ? " · 未完成(仅已观测)" : " · Incomplete (observed only)"} : null} + +
    +
    +
    {zh ? "耗时" : "Elapsed"}
    {(turn.elapsed_seconds / 60).toLocaleString(zh ? "zh-CN" : "en", {maximumFractionDigits: 1})} {zh ? "分钟" : "min"}
    +
    {zh ? "输入" : "Input"}
    {number(turn.usage?.input_tokens)}
    +
    {zh ? "其中缓存" : "Cached subset"}
    {number(turn.usage?.cached_input_tokens)}
    +
    {zh ? "未缓存" : "Uncached"}
    {number(turn.usage?.uncached_input_tokens)}
    +
    {zh ? "输出" : "Output"}
    {number(turn.usage?.output_tokens)}
    +
    + +
  2. )} +
:

{zh ? "此捕获没有可读轮次。" : "No captured Turns are available."}

} + {pages > 1 ? : null} +
; +} diff --git a/docs/images/research-turn-costs-desktop.png b/docs/images/research-turn-costs-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..960502ad18a5472b7681116c20feb8a1d7f51389 GIT binary patch literal 94390 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 z zH`r#a%%kEUtblfBxUn54{>fXTC8ZbZVr?(n0t+Ub@kv8>cX!KkG1`6?^pyx@X6{$v zYd6l0bTege><7WkPThc}&xqsImCX%h=l9`qPN2B}kAtH=OXzpyS%1p>AKP`re_d3( z0StFL6p?;-x3>Tx(cNc$LFe$AP1J(KV0L97`dogFnz#hkh?H=J5`?)Sdd{~uc4^u~ zC7tjx^1{&70EZRdVv0GM13~D75YZz&aZ$`c?PVo7{kj0FBj#Cg5j9o|r z2=$og9(v7gTqWuf%TdhidTtW^l$ZiVdx(iYq7lT+>P#D9R7 z)Gq(3qkaTmNB>6|sZA1fyA2{pI%f-fdLD=6tRhr8t>^MJ?O&3}?&%4?D@$?be@@yc ze%6qk1gp+?BS&9M5Mnj@2M1jO2?$8r-@WNyxgr||va4;;aQnt!xEP4{EZnh5+FA>ZJ5uO{gx(5Y7xZja z+(bwD?zSu})FbK)iMT~);R{fO@AH*^*@h-$cIpD20~~!{hsDjIX)f64}&`gpYHnlE?;=FgPxJw zTOdeoVV~;dFHzw%xL_{GE@Vf>l=u*N_O~ak&|w#_HZ3x-m1-Cj{n`+9JAX&a5m0fA zNWOphba@?SqPO-v_Nk9R1%mI#5J+P^9@JMtFhgy(9nw3;>J_&W2s5CG3}b%e_qoRd zSMo51#={438?y&(P!A@f&X@q9w7QB=CZmhj{0R*amVA2CvCcBoK0^X;)jR?T*RFXX z=y7k}Lj|^5g*wGvlK_6euD-qMHd}o*@GkZsu$EQgbm}IRIFCYv`Mdg#O#yH|aP&mw zMJ1=&>f=vdEMcWw%eRd%r-P_cdngWp12QhdX2fK%zoau0%`+ zaG?nKHi9A0o2x0~Zvf zl5-pX?I0CXlvH1U^_CcNg7Y-gpuxJ?iX45%`p@*0?D%?p3F-8C*C#UEn`IX@smDFl z#TE{mO)sbnqdz4~)XL2UFvam-#VcOcx8xHWW`XsXirMez*8+Rsx8iH#wMKpCb@K26 z!@64jXsR}6vJa}quTXz%|LTDid+w zPg?#X%w?yVn(%bMY*1$8?@cFJP6odX1VnP9N#Rx|5Q}u{GgVHY(ita2)ub7e2USmZ&6(L zCxTPKd@tN)KhCj^eH>vBAIew7TeN&;-}t#FzbKDnhytjSSPXMU>*00OJ=iYG_(;Ty zaQPZDR^LF+G$W4z`4#bh85Z@;#(Y>#vM?>Sr!|%fkxo-AmJ5}2Zq6KJyBOOZ$8lymI3!eeVn6w#Tem)A zD_e`>8Gya?GkF{TpeiO+5m7ayB(ys902T21X}^Z80<&|Foiedd_=sy@HVNoBu!ZgT zb*L1u0n|A8uqGM9+64JBbSnsb?g+1yiGM+G(u`rPQ6IFGC&A|GGQgRH%vKm?5cs?x z6>-fBAahPNPGrz&A?gfHP98%IfmdHe7{3uzw*`(EXj--c4+CyVj*u=xO^xiP^TMgV znW}R;F^>Q9{s9u!aGe7&Aa|qamXbXf7=XwETe76PR2<(okzCAdcv=M%n*t|BEY7+w_T|DjY zgv(5cL=!Fn)D3Vwm^0|`fBTr-@I3~p0kIFZ#(Y3(a&IkZTU@9>!kG3Rs`#FTZZ zYf(VAFD4Ts;Mm+_2uIlkR?(^6IT)RSUwr`?NnrT3R>jZo8@hiW z9Frh+`ppix_z8;c-6f9UZtXHx?DA@n>*aU#O`{+{P{IXnu_YQj_O+O>E27u3Ve$t4 z%Dca=Y};Ds-2rX_BE~+3GiC@jMpkHtadKSZVj;yPz`+I!VD_c~#0|u7bRX_B!W>{B zp2Pw~KirSoe?XPk6!s^f8ADxS*+?QY#J*qz&BMz9K*~T~+jaMwAfAle?c8%1g(9^+ zy*?l&E`SR9GoDK3vg5YgKUe_PlrNg%u%!Y>^?E{-f`Ivn)q@0=nz{jkr&)M1W08Cv zlV-6!T9dLrZ^7(%t+gyR*sVvZrCyYMl=!7ZG<*BNFtKTT(UM2G5>49OKYuwkg_Hik z9~cUMShXE}*WWYM34p{*9^E>26q;K({fRXR`|1qSc$A)4MiJ}D& zn2uum@w7PLec9**+mWLo?B3OHTL%KX8 zz3~A)|IcX<50c@i0T5uS8o zHRX5S9>Xc0+OztYCYt!S4-Q|`9l~Y6xjww_PFMx|k%9Kw-&sbVTDB7flKSK>1;w*oG{;HsTuQp>kD1N`Po`BB!xYvp$3%m-u`%3TB#2uOSXztgJ*Y zVtraN&Mm|(=nKji-{TKpdg*APcg2aP(iA2fNe!n|r!f}L4lnEict-G8!RekrN1+}( zzr1{?EjT7sevR*nt|BJ|db$e;PEW1B}IboSK-iA158KNn|^N#ivZ#=W)mIil1 z_@Ro9PfKb098Ovfa6f!SB(+q)E@0KV+$9P-!2PR*)^oS7sord7HfDy=mF(WC3V#M6 z%6smd zLB&2cIib@@qizUln0p9@6b^aF3Io;|JIy)(vVFrWNrlccy6||Xbl(+Xr8vq#@P!hW zt^Ga%A=)J-sdv#?*i@L@d>9QUb6zg7YzlzMk7Qfb#&bl6v|R2UJ^hGbd0doQQzn-7 z{y5r_GI8PJ6yac&%Cl=f(;X2NsOQIJw+&fn7%th&R%HfWG?}y0z}!FDvo<8& zqbp48`H5V943`P_`nF1I!f7pn02i}S5ICp4xw4soliUjR6jz(=+k#BzF z*wTE%DaX)IH_MJqyWYcToNB29bfj$BdPVsKVR_Q^k%l!C$N_`}?)m+BPDLPzzAIDb zy&gEa+OILJp5tCloPScoz!Z!0POzxuyT3jet~;)t9kRO?@ko}ccB8dx2Fl^e4RI~l z3p)>W>-_AjcoiCvp;533R!cwjlQ-Cl+IWU1o=Y~OH(^_X<*0$KRI;fvo#1*G9O<;l zBlc}Q>g(g!vn-f{Lk;ganzey_8=Vu$yFTGnjqyx#dDDyj)V@*0hQd=RHNIaPSB&5GdiAVKH=JXlINp0s?vaj^ zH51B$S*@&|RbBc%)Nb(t5z?!OTpwhYVDm)7j{2+xW|Y18%pF+=z0`fuEp;3WJ^Hw9 zi!C#JD1+aV^`ag%ojKr@{l)NAd!tOn2R+3$TL;0-3%mOOZM}iw|44*`;S}#VCXe@K zE06ywtjUuFrXhBNW#CG~t(R0U)aY^$3$xYikAGi&wQb)F!BSB3DKtc9@valIhVBj# z7NCGsw&c^!Kphu#TWTJE77Ny?D4KFTx~cfPnvV^ML(eaQsrunh9PJwvN4(vtMj7SN zIHN0FDCzL*#_f00uW`jlfXoqpL}W`_Srr2p<|B>Tz6+yE#52EN!`H=e@hdOoF_^;w$RxD5eu*eUhp|nbyCnVc~reW22n#~44u%+*jPh+*#k$p0kRb{n~ zK2;f6(lHPgJi7^iLD$pHC;QZemMUlg$v!=BI7@-7&Bbr+x;~D2wAR-x(KMpPjNh5b zKb%Bc;Y6q&CgRQRa*#+hl}NO5ZFfUHG90(EqGR2pbmTs0b^+a+xE55osFxVe)wpOS z$oglQ+N_tJsnm17<@ox{!OeFYjojC;Z`FNog7cc8d8qAhM_%HA7+x>dD=veDM(TBL zelbBtul%0A)S~cSPchx6b|qE+Bh6vv4?%!1UT&Y_V0wcQ1W8%>3gd24(max^eZ~8G zVq~F|pN+#oh1Q}mcKfrN0|vE17Q$chtP#`^IDF#FgB&d;3OZKloVI$F&;^i-`l>67 z*0P6Zn671cRBgP+?`GSHZ_$yX9lnz%8`1`5Nrlu}=V%}IN^I1uh+Wj=kl`6!e5VZq~^Dm*-kRHO~|*P93G}RXh6%=#oXo(r5SS z&xBi0Us(=+-n7N;cw{kiKZ}=2Jm0LQxl`ARK+lk)$9q4X+#ADVhMW>j81XzjY!!d<5wxd5&Cx>A1zSyvzN z&vbh&Mz~%2USje)15VDfYYf?hRAlBE`|fa>=F>~;%Yo_aicIo?`viA;E-sREnYrs$ zerqaT0d$HeVJxm*IO9AbU%^dlO;O!Soi+0+y;rMv_Z4NiwUwW^EuB$K2MGl&Z12p9 zKI=PCD#{_MbUxd-SIde#7Er(+ls~@YcRLSlT?(tsWlpNFbWh=t@*Tz~ss4kMYw!j-bXVEQ z-U#{*uRvKNrf2Iu>@IV&-Cn)kVyT)__2Gcp=F7H%6tOV_Vs6*8`iZ%%fkATWAuYwd z3Nc!}d6Kc0Y|bn45JREyZAIU1VM?^y>Ulvu4b3g)S50Ls$9h(u&cEJb#CtL3 zd(qF7)f)2$b;NcH?YSIazVq(feKZmeE@NK03uLN6hv!>1JS&_7M$gKx5~Ul>xhmfN zlap42L=201eU)Ny`)-wUFD5pfBK5azx+UY!6r)05&;|)Fy4q+=egy>jTDH3Kykzl` zfA7fdG0M8>&e)-%>oSz9;^UQf1V`7xCi*LZGon#-O`g3yQL~b(qI{9z(Uj`lHC)tp zvOfj`NL`_?DaR+F#oT5mOEdiZ<{n)+N-=$#9+!rm>-y@LTd*tWjv1}VE93ASGFdzb zgHN%sAK2Eckiu5+gzM4xHO+LNqsh$aH7Z(7#v5Y#A(oZiF<`=ez%zcou>H1dDM5By zS*qnVl5RG4%;MLgqUuilYRmpjf5A3}`!$7UNa?)^=w&AvI8uCTPLyKTs*N(Y*NtEtg}X9l)}hR^qgmL-}_B>$Dx!n0>XO~;oX(o3~VZ~?E zQ?zZJ=rfggS|vF&gS3Lw7ig@+(w}V4QsY|Cb5Bs4Vm~Q=44c4(SF#Y>O08{;mZrmA z4Lx7JPaVaoA3WVy)uhdo`XbwNeN#(7_1YSaXBp~pZ_L|;eM`zg9FNPJNIQ;3-g2La zSTWn#HE$w9PnHi|l;R*ZfA8=5NPp7cCP(y%(U!@(6Vc3+{FW#onq!UbOe@~eYP){J zJZ8p1n^OX11j8$yivfujbC9?a3~-**M~i zaxE#xxixnRro{HzooZxj`;PMVlX4GpPNGNavRCX&&NXqm zQ8C$#BYC;^{iS_^jQDki2h;dk6s8WKk8V*A>eJJ0@Lq^JnDq))(OTL8hUqm|a(tdU zPsg`TFyCx@OwWV{r(Zz7$7MOHVRK6&3Mlm}JMLZ`Zt;;&y=;6Dd&>9~N9ZplWIi#s zSDv1uX{J!7LMRtm6BInmxoNmFyNB$Td*!auQYE&di<6OAl>=`CfLT}GhDXm$h%V09 zi1{+{-)9PMX>8qX17JU;+p{L9;@!PNBK7NJt-U4)>z4FQ@9cc4l4U{_F5LZ5#UeN+ z&^Gu17+`Wh&?(=Wz=daSmQLJvmr)!k0=h9RcStA0_})&BzF#K#{YUe7v=3+iDF_;8 zOsfv}6+LWf=BmVV+~b zuE)pq4Yr(ExzwM+mviR8YHD}2?D&a%Uq`vjo7;AaUfher%+M@`uQ=_#s9^@&eSa|Qa2(Nzdv zrQxrR$GxRH|hvlwMjh#qUe(^Ug`k$e<`@u%QDd2?ifZs6Zs(b01(Yt!;OmPa@J zKV3<&3USX)Dj_meVH`k+$IE`=HsFbd7TyGkfCW3)40M&|=ca`Ie3rx27n-6sx$uOl zpHnrmlggSAMfY31E#M{pMN5xo^mjbRp6BUZb*Ifb4bKzH1(&_e3qhflvi& z!Lqu|pF^f|Sa*(~Yg;gkwiI2}zWG$@Hu^R6wfFcf(2aga={GdI%CW+YZAK2^_vjHy z0r0p(9?CAy;y2{(IDqMT!@w;c&!_hlF1`kSrF~V7JAGg{`iWpk1{T;i8Ec+c{@Oql zmy>Bur?ju#I8eFyyj>25I)*MaQnWJpGo6IU?OeF`v|qrjV-i@9A|+ix9RpWdX=f%f z-N7tjljbQ(-8$9xx(_!Q>oTV4SH7=1Jz~V{spk>OEN^4&logtF8z`bvU59<#i-7>c zP145ckA>+)@*{oeltpMhajVU}AKy9ja`#GUm9(4w;hxHA`lq|fJa`BXg@v1M=hI7q zu0DNH%}^cub-U}!@K5Er+^6qq^#gbCts}M!quQDE|Ua95Kb4-tYJja zuS;h|eCA0Wo5a2sMfbndlaQ|OiC!T{E>~jsoC|0N9eU=G7Z8Q%4QQRBI*jd?{7ug9 z!H*xBHe3@$ZD}z|Kl2P2A=yv6d+D*n2$iDjKyK0WRg+tz*`KV#!77~bW|b_)^r7a zJ{^SF&ka#aietkdtCPwAXXiPON9{XNsFBTYb0-}4iJIF(-=mr(uBTZ=QnhUeeVDuq z{`(h2E2k2y;fOoSpN~a8F2+xCHTm|q zfWao&c8twCq6x#33h|yjKD69?JBH#DIcu!#^LQ>aw1)n8qjzGfC}jZ)yPw;EjnKc` z@ibiW9#|sgXX}%P-DgD8+5GLe0*w7NBP$~3T{0Q8tIJqq+gd6RTtgaV^ahRF$&C5O zb#hBHN>?mQ1{ChflWNIvekWdD#c^0T`>dDIIn{Tb>|MEgE}cz?Np6_|fbv2>S5waH zn|?Zq#=z%Glti0{>IWoKS*{*A(eM7|S4lyG_Nm%jyE9<|VK3Q*S&}uvPsYAZE}MM+ zPp`3TRG zO%6A9o-=Y?`EAr)FPGi=?tN>8oJY>V=albsXrXQ#UA|U5rOs;INX#R;He?0W4+Un5 ziP^-C3$Ld86t?dL$p8>s;p!gmOkoGMmLnE2YKzuc58^d!H>S1Nsa{znd~F%PFn4sL z6}RiF8x;Ewc2~5_(UZ5b)P{{rrOV~tWzbT6QYI()O^CORc}w*+Wsz2M=>k@}cR^KF z-t#{;)r@T)nQ)(ZW3AzyYA?svg6Y-Tll8sPpQ(<*s5A5DoRP3-3(%Ol8OEbgP3JbV z_U!(ql>q_W(d+e2)#hw%d!|K|7~g(BUQQE#!ZHhyjNygRj^$m}FAc5i0nXoaxN^FI zH>nr(pY`bD@2nhO{1Kc{sRe%|v7R>38$P|!?Q)X+((U~t*Dh@(eGXB|VU?TcORVO% zS4cP=eb#jI(~U(JSd@CmPlVLGR!X% zVfF;Z0<`rufTm1KmCAAENE_bXdbu`=M16hT?)4LUu0O>vK`^AbfPwh~-v-w1j=|=@ zs7&?m_MBK=u;IL71oc#Sc`l7*ztk+J#ntYYHZGiw?s}Jt7es3Mh1ogy=9~LxwR7U6 za-MoTtutGh%X>a2Vbtj4j0~k)i*_xcbD2t7-*Xozz>A-wHslxN_8R>LaQcJ=kJ5#` zVpP-6Iax9O_=(n2BTMm`uvoy|& z?7X|&bZ+EsO)ry4-`hvWD(~xR(WJLwycf4zBe4Br(8yHu>aus+Z6n2JKd%n5o?w&i zp;l#H0udvi1%2{sF0RA-LB*U8seEJ9|E~4kp^BTiXVjTkw~%tq2n+|Lu!-WEKd|*i_ z+?e^=#kC7qR9sxr$VJc1@J4;fIrJDfQ#$?Xg>U)+wwAFJMYHunmlyBfBwSQL-nspq zi|bBOVB8uG#|rxu_VX1wv|0`($JJ?)im$n=oOe4wFnbEf5f`s>G3n8lOb-lBybKHA zjPkzd^Nqy1%tp6S?#*n6rO5q5OqEcfjCOfM?y~Ne*gAW9;M@cBv&1-XMnw$v<)gH( z`_Y+F_A4>~6Q-{ec*U~1B&VPU92cGo|iQMz?}(H7*0t$rFf-q9WF z2!YuAQ$o>BjCfHSCvEny(C>Tu{Fu=8w2Kd_k_JQi66iEkJ}h)sFa%LQC291#zDlrf zh^|g}dO$$gnU*7AgKZK2UQ4ubJ!zL>c75ve4g4`+opTT{dCLikykBR7{N;)k%DlWr zn!bCzc1j~x0e@uT9v_PgnrfM>Zz~*!l0VF}N?gaAw|qjx(QIC)Q0-!D>gIZ_2CO$FIDM82V3&=LSr^d)3ob z#9E&Jd`wXDLrtDIoicxYsA!$*VSGJpn&-yr8t#c*Yvk0^0%o+**@;fBF@Dk*+UqN- z!exWyMsH@Ijsc~h*56py=*oaaaHs^$x>|<>a2x2;NjmQ~?>VrOPgPIM=oszyYSUw? z%`0@HZXe$nxP>a&C^>(mNnEnz&;TD0#IKLzS=v=5J3&XePgdjjW{dQ8sdjUvp21|z zmbnEO6&WtHU~bCtB;mB3o{+1e)+g)Kq!6)9Yq&3fOR7!%4Dg;;m!A`YQ0qgIJh@_U zWV2nN<7-a18S{*AaZHMt>l~eRrIk+JVKcHf^Okca`!$M3luTk`?{fIl2fJ)@`bqDz0Iv8UZ zZ(LFv{09q2C3LKMtEWB2RyQ09kWO%v6*q0k(&qe>GG+YZ3Pr25Lnue&jF4g*bK7d0 z6Cc#8QPNRF_aC2aTD?7gdluh(VceVuQ@LQ~X;%HvLoX~nx_TearvPgE;MR4`zB6ZC z)QSd0c2322rM%;8nxE|YX!`ul5L%rJInyrMym4nHR~%bihw3I_#!FJHdFqyF?ey5G z%VX1~lochJk?9MjU7hzmvZPuLxQaIOIFBXYnMnQ4*9E-VugDIz9o9}hR5q-`M==M5 zCQXz{i+7c1xb`cpGxOgvnnV}YVEkR~omV3v@NFI_2bK}BN{yF(bfr+9y6JIGNgOMY z@mXqUqm(xaE7U^-GtJQQAhJi@%fwOVY}mBOn1qypFqgs@h{hLn?ol@+SC(KM%iY${ zs14iw!=g~+Et{i80ER|dzq28akC{QYTd8G zjy~$%oR5;DjS5SKliwXK&d9P-C`@}5Sa|c9o64LrJSEv~t6mI9KD3A5is7I$zIS6e zPh<9$qDb%bSCk<7$R(XyZW~Of41PK+f!*s5>FCrdoHrTMLgkNz-&d%LwH>h~FUswB zIfRk^tW~F7u7=JB|6y(Y11^Caq7_HRg4@E?y<0T4L^HW`=~Qr&)HvWcQ)C4Cpm!lt z^YOvyr-UGpChJ^N?=obDL7S&lF7b%<`H6N5uUrcRC3eD$vF#aM+rTChGuM_Psz|nx z!_#~2#9AwD3!7*A)je`eK}_eFeA;;Ecg1wt(wi}E?cbyYjb((|8T8)f#<*97rXRI6 zHY5Fb`tUlO+h}jp>kq7WLr6#4XRipbW!+)hEAV`MLW6KtW5sz-GUkiw(5w^Z> zYcmO-v0^sG9lwZnC7%5$HN%yTnx8{qv~$HW2yydjTzA_*%pc!+sZP7_ct%iDkQ*H< z-t%s&lLSe_EQmdAvqOpo_PJo#>|yYUukU5g3P=;@?&Mudq0#3tV2%LycnJ>xlw($hCH70O(|S8^U`*yz1=L#BA`B_CRVP zMW?>3LFqiE`k>VyND+*h*c8A{1gE6mn4%tAlrB=y=rE18)zOu&O-Bo z|G;2(3KZ?v;7@~X1MP(Zyfwkva`*WT(5KZez)Tn`Ji(odt9}Z_2iR?)2*)4{V8j-q ziseYdctDt53=xAQ$P;E^1Ka}`uOn-m4UO#u)N4Qh@sj2dR;rjc&svFra0Yaujz#(kk_I?EaSIk3FmmAS2qNa7FeHxzX3UT2sd zlYYSRi<0&S5SKtykg>SE`gk_5dl1qT_dKYN2Jb~0FOBh<$u_2v+oo!glGdbgveZp0 z|Ac=@qXWaD%(Sdk!=T$-Fuz+z8)~CQ(p$`ZGbmb%U1P^WLuW_Zllj6=wOJrz+cQj; z-oFXb1_ZQO>0=yYT(DSqG7RRx46Ym$%4T=*lPbhSkPTovSY38ryZ-yANy-MwY@E`8 z*Ye~qVEFgdN#y3b%}@3IME!~l7meUG%zTBI8KjDbP$t3Xr6#M;UEfzk` zVpJ-k8<At1Px^!SjGYy>{B6@YM^|9&*1=M305Xx!kDuw!(D9MiA$5ACkOAN z#`%{9wRcCYV?5z|mwv0%Ho`W$IAW2IaskxS+}}xS`v{CS=$RBj7{u2Epdkz2HPEy4 zba0nE?m@Ee&ikEazYC5_&@A2>OwRdhsroTp>cBj%HRi+G5Jt7y^C(#X_JXaK>%1G4 z9!l4spP8DaP91dcKr$29$tl-0(#54r^2 z4UHf-H8FEwY}I~+!xJwT_p;WUE;Z4PJU~Tv2iFpZ#y4HvSXb*e>hwhX`IUG zEwN+z{`M>Dl(aVN$0(nvHxE)bt@lB_o@9jj(&S`YaN!B58bB@~gHXQqP_Pr=l)w`{ zQVa+NM9(-D)s=%#;!sK3+=ehjwBR3umdECgaV>Dnz@=n6*ALzv;k>p8vM`Iz8OW`N zilJ-IErg8`0iThlmU@mka)3Lm)ls3wsg1=-B%?8oSWy|?SW#~en4`z)MGdgCL9UGj z(>FCQ_=aU0{J%enC?(gdiang5X}UX@gMxr2r3#*8W>n>;{~zw&1e)tMTo)EmiIiv% z(j4-tj1^Lbq`^FwA({JUO6F)l#x#&9Wy(CyA<9r0LgpbPBoZ=|`CO0oK4*XH?6voI z&bQZh);fFbwf4Jvd-?x=zvsE{>%Q*mzHZv$UYiLwZ^mu78aC^$xmZ3NDLLPFJXA># zmp-j#07o1J-r;p_>tU4jctQQmOeWV!9e+jX$-?Z~k6-9KVQv1I?;4)jTD=P!my9(?P4eU{&4M62Dgv$dt z`HdSle!M*MIN)N{;w|naD03g7po0=7Su=enIuLSnCw8+=UfRCSSjijOnt<#Xz%tlM zm^3G>-briQh$CO~6XSUB`#XvY6)QWoy1T$0+FJg%?@&HKp4b7Yv~)0-lwD<$7tYrfv!d;*(br3&pYOa}f# zx0MTV68=fVwFjzn<>DKz?0?{3$NV#CQ4!}G?{oqGig-b5zmO*j$5Obcs(t8<35>Vvf%q(CeDV!|= zrW)rRuuKjre7Qa{oy|MD)H*l%XMaM)(o*;xHuKfuCkO9zSwwGEQj~OB#Z7-Vlb?J zYs%5g|NUmwc4=8zGDO?dBy=-({6d(6vor6T`cY9#-;{3};CyuYd&DPyWVXSYke29H z`FXu#9!OhZ2nE!P!T(%LSmLjkfNH~ndOr!8|g$~?77Rv0}@D&{t+(q)Fvo;Q!txhFCLvTSw_aQ?5xAq}q;vD;Kxyv+7 zSh4i3p+TVe`7l(YU%q^SJnZ!Ro|E34yAK@rfh+}y^5oc9TC&@(KJUo&3(pKcOEunb z8^I{%1ax|2Ar5mxtCMe_wDNY9M~1s2F#E;(*~;4bduw{sB7ds{D>HM3>)dtL$;XY) z(}7oJMUFxMh%8140V~b^A8tchR3;6%=4^ z`>7=@Xd2aV7jQYA_(Kx}hnH?7#9WL9&E{g!*7GTw=21E2!kFphBena?X=`sE=Jhoh zf=0MW_qDJGx)=o<)<+GSZHCX+xjCWJzH0H4eaNtllXlQ(S0o14ymdHV+c{*$7_Po_ zLGSjj3t^^oSH(9}1P@fCzwF;Tw~&pw$S8Ly4{2le55d2vCyqIF>&wK1+_? z%S3lWI4EG`NW;pw`3hWm@ljLh6EqGRb&Zs_x1N!hyLfw|fwq4s-QrxChNFI|Rx zt&&f~m0blOexV;*Z#Z0#c{hl}Bnv4>=}*SN6!1 z+z0fmNzKwG85Uy+=6k0xP;wmvf1&rwXOo!+19$)U-GW1%XWZV^)ioq+Svcf96{ z>@M2av_C*KI>Y*_Y~~3-Y$8!0XGPK`h-Jk#&Juxtn6SkA)}_S$`mA@ykx^}nUW36%%2cG&&6TWSke*94$lbQ zS1H-Be!V_b?SuEjDi4xjM;oG7Xs#@FA9_0h`-4qDpJ-IdADV0ggq=LT2a0Tud3l0X-%C8Oi6D<9zDBdmPCRW)xB? z1>jH_*aYQN;_<08;Pxk{4HV|uZnlf)o-SXG)@sfI;we3Lz)!k0)8yXNkb6kTmWAuU zX`$QUOe*$;k#+WtmseOn3dQytdt!liP8A&1eTFBbRRsW4lnn^;LzAEK>F5$*v0rhJ z@sH5pW0Uq}Jc|2)F&ACcrY9$1WbA9Mde_GX=loGGgNTTTc#JUOzWTcY(}=WEwts*X zcK!T4Co3(Dv6#W_DIftpe*6gSB|i2&T_cdK?Y2o37=L(zS{fkq%%lAgo6Xy^;!n!b z?rf$T$mevLf*d^lh4`@B8`Ka@Cc^EC@{w7@`v2p@eYL<`l;VU<CPYUDCVCJStLXI^_%nt+AGXAfIShe@~BoO>6Sn7V~Bl zVtHW}r!VB+HukH?G}XERu^J@v*7o)qZE2kfZ(3S%apgnvg0Z+StyA(1+eTB5dAyID zt10unxH86CZaZm-68GlbL=?t{4v3sklqQZ0w!G&~VTb&Kk}y;Z&Cbm^+Wy218aS}p z>6`^-CFA{i%&fh24_)m?B`H)jg4A3Yy6v63B&hTRtyczamEH{RV%?;T=;hxuP9z6m zqE7vHgGvq`>-CV_Z;CE2p3|?KVv0C>;=`@OtA{n>E?{~ewHm&Vx>x%3Mifi0!BWeQ zll_Y@;9_E8Dt(X#sDHXm8f0y@iIKTy%;Td+j+_e@n;|PPHB!UPSzd&Ea~eEeg~-NG zHKNqCujw&{^;0RBY%zOX3H|^c7HV%#9_pXCLE$5hzx6aTE&JY@c$i-Xy{`y8&TEtw zuC{^S!pGo@&H_yDn!Q4sbi&MnO&Qe%Z8M9C-A_Mx3*J2CTFLy&v&qI##k|5CxPo&B z>Z{|JLdTB}QZcPX#wdd6CJ!a`bv=Vh>J)q}OmBsj9N}mmf_SU`!E0kboDZP`CRT8d zs(W=UHAHI7{Sh6qnkY-Bqd?$pPE)F4oZ^m}8%?rGRR{`x-=b$Gkg|aClFca6(ktyl zT?~e{;9_|8>&W#X-pRL3?h^;&`{k_%>y0P5Gpe9I;=L{YqR;&a}u_3CJ^eHxg39z*vRGBKrc_0+MP z$;@-8rIsrk95hXC;^k1xd!hAkz!|ed+DDr|);!TI6x`ZT?B-TzVo-+2=07V>TPekgzFk*zFzi z34AJu`H5zPw~arNCAckFKGxjt$wNz@(Gf_{J2&q2H*ws4__DJ03d^Vwm-_wt_kDI> zdS~X<~50>}!rtbAk4j;H^J!18aWa zfT3=-`_*^4qXI`Iqbu>`HlEd*na1am&ZuT3QMx{Ib!mvS^xeL73zh=0j~hAy!Xj4E z(G8s&O2w-7qZ6tdJh+?r2Lun~epsJfpOANJO^q4rKafrD78Fz!u2 zWVQq_=eR&Ov}>vb4s#aByA>Xc5Gf!#^c$Q0cq zuM6s@%EQdBrTamQym|Acd01j{2&YEH0MFHlPlnlNTdyu_@6b@f=TH-?xFlonCK*K? zammEr00R?{XIEaDEU@@#UKHi^;4W@ooU$d!X9?V>We{qy_At4d*d2NHt8>f}mnopA z!Bh>QY}mt{a_$K^=E-oyC*QE4aJU7vu5i62$iZPV>8a_mpP$JSwJ){ldoWre-c3w=2^k%iOGo;`z|ev(Txyc2TfG+ZVS z48NxyHLZIAfPmnA*3tpwKVVtr&l~_zdi!dA+vVHNHRCMQ9U0k{G0?~V)H?6gtJ%4^ z?qauYCj*a4<06CnrMU5VK-QOc$yz*>d=$LxA8??8L5$#^S^0H4rz4rp4OleB9YP%q zRK;7|nro?t^ZZD(F-fc8N@v~9W(#id^sd^sLzr)IZFg>P9z@0;*~60qi!9T<67quh zXvni$gD?g0qFY9%?X@kh5vIP@362ie!|1DYfMH#b;j=deua}TPb-#Pk%PV6DD^?`a z@ZCC#u;>|jP4bSYbb~aeh0=ky=r=r4F>Qa^zH_`gQ8`KT5G4->1^GYK|p^5KQ??ZSMKSQhp8* zr9Xv2b`o_Y3Uh+8$alrez3OYb;o!FcK+I;xaU}VaBFn%s=Azoe;e;p%O@Pi$=~3b4 zT*JM(n0veATIFqEOXqc62S%9_Wj>nK`~lgoSIE%K`eQ*UDb$gY;6ZWGIb6UbfZ0d- z#*;Iqrh|xq*&}Feu!szP!Loqh`nN7?Iw}kd3_uVb0LwmAbqZlH_V~*#Swz9FpNmKI zPH*tD*}rfaMTa;>6&D&uO}qM6k}vJPdzy!4UFl&%g?WwRA(+BXarM6)_Hzsp)#jlsVnwmSu^U~^bz0xHc=bo73Yk1Od; zfVT=2*$xa}3#`DR8TZLy6YY99t{=2)F`p|h0v(2~Rhr}HbBGS`&Qp^>a|ojgl+?U< zwZvdFA`0~$L{^}+qr|3$Rzc>=n;!JD7n6=JU%@{*qI(9!d?B-En~pxa8xv>N!=kgPVer&#P4Eqfjkw-j9)&rJr0ND4#EdK#jxW*;O{g?llt4&_DWc;ljKlSddPTb^=qAz>Xi#~mJq@Lyj zM-dD86Xgu)nl+SSD;Bx%!5H!ffe-fZEXO`9+h*X(m!}wzKc!MmC<||Tj<0`Oy=j+Jke{Kd@5Y6pAXVrIgWD0=&SQKNw%5%xj4|G_`Ueav|)QV$}CQ%614_D#Bg$vbQfL>sA)0dyV!%^yW zB>_0nLa;c%i$sN;2oR3H`U)0?sCOBw;@LrV3YYqliA>NV@TWRNegPGKnfIvF37`Ja zQ8FY@8a~NPwveC`{d)da6%NV(2E)6~s4gyyx&gN>;Ceu-k$u$}S5!zR`4J)V$TR)U@=22545Q-T?l9 z5=C{t%1ggb{!5F$i*f%kV72G_U*yfaVwL_WdT!#Gg!GM1By8UJzP!92dHckP6HYwn zfBT448`Gb_+$rWMPfdIQt^sA)fUW@uJn$Oux{&!>#g{Z}u%f!Iip&UY5;E#5%mM@0 zp?J_U{CqhJ{U>y6u_f|4GV9T6gZfv6@YMlL!3;Roy*Och_SN!Bs+BHT(Rx2DEG)aT z`fcHdI8L78gO-P9K~3O^<`)#aYZn$2B+_y+68ZPFZo+H*$zmXSqBgFeZ$RHKER3imLEA4)w%%pzjsemjCvjU`&2z+`0?a_+)KaesJch5->_lB)~#DP zIG!E093JlL1KX4UixZ+4TmEauxO%95{Bz*I*?iA|>CnDo$70JGUZUk5Y4y&}0cUpk zoH#V)NzzEx^30XvNyi zn;(aSgxtNmdif*ja+BjO_)y{DUjG%_W^ae&Gm-zQ@MI@Bf`fyD;10H?MI67ocwqTU z7J@}`=O`~L!-L$K_T|Tqr-zH>$-i;GXzfi;{!=O|T(sqXDEWeyz5G93r%IOJ0u?*w zGD-QL{3Ts;8p&T|$t@yqOG870Hd$wdL(i|B_1-}V*N!v;zPcs=0pU#s=(quDgB-!E zc{V=o^5+y?O}&mQANA!sP~ax64rp@18om=I*s!R9X2+-F2FwU?vEjgDM?Ht0w>i)d zN{j7@H&Ez-k@4=(O`SrZ_w@7>Hv3eT#0}F4lypQwLB5mZVcC)u^9z`ph|xUZf!DVs zIQlEDG+K&?742}M!TCLixnS(XD{F@E8h)DprM_^zex^yLNZP<17&Y_8U$%MQ`cj;b+bzEAa zH|F!+t~H_u+e%h~fyl=8Fw>$rSr~l5PwXjht)`BnqoZ29vJpsas8XzKY<%o%y^q{3 zZD>%rFOMsZ5_A%e7%g6VJh!V?uOi9`hd+#b2nG?xfmPaM;T6#+I2SJ;O9wSXMsAIa zqqn8JW$~}(CcoQ)%yQTUIZiZiY&wtB$&)18oVT?mg!Ti!m=`7q-?8ht%}-$Y+7{ZloI5b~+xPBW zQHL=yKTzX^K4}7+qjq{iu?OPD4ze!@Q^=H5CnIqJIqtTIB{Nsw-dWS`J)(lJRP%f_ zx^4m;yu5ALeucn-GLiJa@H&1ExA1dul{j#ca5Wt-Diu+2ajn2-#l8)ruFB+*_o(gY zp<28lF9_aP9S%r%liXay3K}OFpcxFOLaEJdzxVIoJBU1m9Rku6dO;8I9I|s=6A)F~ zV|{(AgnS{zP`+87ElSXG1qPF~(2mQ_1)oFGA6_CFnd|83KkYSM7g^E|ZA0z64AchM zm{3Eu*x%^Ta*|eDHD*MH7oUl0tkRlkUC*cnOuGO+@q{(t*s2W}q9p1osy zX&A6Nf}@QmtBO_+xrz9bt;3)0#l`KPIHnFu*3Y;tq*NA9U+$Ws>7qu97YG_c+mh?( zQ70UCET;K`6%RFG*Y@iWPP?GM84UzKX+^S@4d$mm@s*t7t{K8MaG;-ud_4W*Pv78z zD#xBrwtAD+NlnZaA|fJkOsvX=5lcuTq@e9xY53LEg#6-zP`Rm zR8<;riYMwz0by~M$KYA=q^6pxmskq6rhUOF>jGh3QX<(ze7+HaR;*Y-Mm+ADrWQ@N zlcI>M(1SS%UZer}MDEY5=~j*XK8A;ZUJ4}F-$zH?@Tp+Fw9kd^9nQYQ>|hiK8lc)H zZH&LXM|Hdi1t&65hI+-(+q>ZLUU>pECb2a}bHwHMXZz-0dClsu+rSoZfJy}%!ObV# z-JK6mPa1!CQ0~Ae zeGrd}fU5>4v^Ss@LdBhPm{*lDd&IrORic;Z{hWXZ0@Q^Doj%H=tW_2ZIDRxVG-yRe z)u0wi2}STBT08{W#!~E#YMp z{yPnDT!xn}os^Q=wQJXNF~>{MaK%L(5Ak_@O4yZ>^Q%SOqXV1YlAlY}y6SP<@;^}hFQSNl`v{hQz<>NO;~A;0Z)9P) zy!=-g$hs&`aROE^k1mxg|Jla>e?G^*3!Yj(qX~r|WHsE(XK@bBL7>bn3NbPAQ4lc( zkfJ%Xr>BS5D}GzPNYMxJb*7^)ko$~QCmFiXY5;V{jlqTuqR?s%&2v13X5;hcdT0`( zg4$xAi?kw+PyjDK^xxT-nU&$TIAVpu)t>K>6V?EAk>}vfQp&w|Zw1b-$2xji24|FX zQ-F)xnE;rs~H$nndyHFhsvuc;LsZfI7oaS z1#JM&W3 zjE)kPY=BY}=w}0LKaOrKEVLUl0JMP!{?>FxR>D-R41b&$0@k3TT`7&~=vOs*(n)QQ{}9^J28S^ywh%}B zU!K(YLx&FGh=JWhJZnl5DDnXtFtt_@Uei%t14lOVk0MCm+fDuYb@=ZG+0`Ri86^0( z{N!3=^-ziY@xLw1cl9j)3DvrL|3UTsKmVn|Mmj2IOjZp*2#KC{@4$e1?0F7;ettF7 z>z`U$G!$SP91ZO(*j@#Tt!!)wl?YDQ@H&Adr99A1B`qLcIU|~ZEvm)Y2ihZsHO)|i zkywEKp2L^v@f_ULHee|nULZ16fL{=`1$lX5woCjuO=#>w_`Z#WrSJQ9vTpSop_+=v zcwNfV($X-~I;eNb|F3vw*S>xG$TfA}B`0*LY&DJC{YM;RIdWPoqBTIfI^r>iVIMxS zE);t%&gH`>4QlCQHLrx+bV)*J&qi+lN?w1qwv&TH+^41{JD@z{A%hsRdAw(ssWn4Q z+M?@BK^H!>`nby1u1r(Wl6 zQUKz>H7E6xgF{}I0j}lOMGw7^xyE9TaLo2P0}wuvj8Ce2N8VV^YC?nTGTI6ivpUL1 zgsThbmt^|6<<;P@t%tu0Q#tH*PXSg$l=?L>;hWo!k0Y3yicUYOY2-hMY1l26Q1xT` z4FyG2<7-IwLesa4IVc`$oEPhw;9%~S=n78IFn=NP1PkKISKu=pvmNj|`PAK=%7b5? zQTK~FQr_dpRWZ!qVic*OS!CUIP88vCeFs^QI`1lhh>WKL;x1ru4a+2&ahgkixr$XM z{<2veU;)V_2(j`cGXKKy9pc-99T#z2YcjA| zN}!`dg4MDr&r%no3CFPqS)(9`dNo)nP=Ty`+N$w)%n`$dP*b?OyOTmUqAt_tj_w!U zy$>3w582)tstaf>g1}|P z6iV5S?p%s`FEufb^LgRbwGU}ee_CUY-ALy&V_sgKW{1g#2mMb*lEa%bP^QZpuxyP( z1$JIW04K2Sn3(;~3un((Hw6WU5`*D^p#UVp_X*#J}aKMU&iYqvp~Vl zxtPsD2VyPbUOd}EJ~#WFha-;dl0Lnoqn0US9kqxt=$le>CZH`D`0$V{q4E*9aPeZ0 z1*Rd@Y^P$gC#R;G=EabjLT!qXy>rIBz5~snCaihH{m}Raz{3?ZVzkKWc_gT!vvUqQ zLmNxM!=Oq|u(z>6B7MH-DQ`fgZvb@A%_x4GjHuE3?OUwL)Uf?v-J4mDy@(SkB?jU} zy{xYz->wrvg`&z5c{Uoz4I~XdchCOSqJcJhPL$lIs)@uHee&r!f!I3aC8xyY5Uk%N zB!EsnBC-(kj`5M_&4*Exf)S|H`%x5hi_SL0iUpikbYM;W5FMnwX~fXs?c28uT=C?x zPa9ZSSwSARVzGlhsdNKo zO_HLDzk?6LLu~dkK63S5)4PmUktz&Kr%s*PE^4KZ zHZGC8OL3h4xNwis2Rr4&oA+1j4njX(T1MuH(YX%nh*K!`1yze1sk6-0nRmfZ`Hi)#aXYXEF+9r%8RVOu?M6KBE zOe#QI+&=(xGtrcwC&)>w=;(NI6e|v4S0-d+2{+;0cjhq$E|gY10Kt)jw%& zGjfUh7~a<&1&+QZ$L zF0gR9i-RSK{t;j?A)M92YEh#vM;%P}N1gDikVGw}5eED#L}|ZV9+5Re9p9orcri2bycv zGL{WP%!^ib<}XNp%mF#jqyTi1Ull7t*dyGKsK~PCb12{d$_T+hF+6)H21{0l`z`GL!N0F<{UquY?;s zT2)y44RX8b?1zg0ygaIL`c$dfIQQoCzpXZ7)ur#X~f0Evc$+{&g9lO-_R+rAfJ>S zlWqpQydS#9yp=Mo#^wF}YyC9Cx{lb+&!2-fC%$kb^H4Pzvl9RXHH_J8N8sej7d^b| zH;8-8MksYAb@l;o%&rtJn8o=;qw+N_`0yI8$cy7Q{mKq*=Bv(_RRe~r$@Dr4`5yS} z7XfoaH$hkCNXXzt>H@=#jal_y3#IV%96Z3GX~Bur1sUT0a;2WgfNUja&h(vFLcpG_ zW>~#i4oGdr(Ns5!dbcfU3~ALq7Oq02o2r@K3rY<9yrDWoEl;Zaj7zMsO%#JK$$Qu& znLp9z?6pM1QMO43x0ieqm%0#jAW~D)fpi><=HLO>_qbs>Mpc^xB4{3jKzi?3>1m+F zpfK;Loz-~iC+ZdS7^7~^VQ3c96DdZv6I!mKiKU5#7Luc8_0gv{mfC#w$=Uf?@=~j= z{v}Q7JcJ!n8&e4=eWHH_z|>lLdnTTP%H3($Hr3TB#&8X|{lw9NB#<2I+I0mLCfjbuun+a+W$GXQ()N&{ z7#u65(PE_I^;D;&PpIaus}yQ%roSvHDG7dup{hn2L!p;6)jwtrnFgyJTs4fa)bijD zXblWGBo)Qyf{y%zwl&@kp@N$a3f+VX&-c>0;m@+Hk2Gs*(7txWP#YuH2BKf*;JAo6 z2*4@;{b6tfBFBL{+DCHiThumoCC2(~g1$~&B3i&+{!~X#HEdk8? z@&?h?^FcunaY1V0w4Jf5w1`FX+3jx!m|xkL*gmrCqNvg?=s|JD-)-qp*1%weI5sP- zrYVfNpEQUbgd8^VSvNkLrFx1(_)5sp2n0krDl|Gi7)Jaw*S*BSWZLX zqv7X2w92)_nk19HFJB_cW&O#hQKlk(zNn5>m@;fP%iUjLv~>iM|W$+{G()4fktxt7{= zilqJ`6P9SuN=Zqnsk2{MVCLm&+lc~Z|Ic#&$|^h2LkexCXhC3x-7sbwB2ImJ+2_v} z&m5%->}wpyH0z7-`1`N!-Mg26-4&@9bZTv3QL!3y3xaZ=?mWCkbGip5(Cn21ppt|X z6U`#Z$B^!MqphxAKkvW4J{uR1K%nU=+krzeptBP{hE8a*qiIgO%oOem zTX3yGvTxi$)JEcJ(6Z2^-E&}?4G#|=@;9dG@bHHaq%8VFNq3d^=-jeI#&Y4$GL<7L zXtGT0QkA^<-&6|#UH8Zly8+~iO!lo?zYh;@%SFYZg6qYe_^G2~4w-2Acg;)TSDgL= zQ7N`o6CIN7M+ok$ezYFSWM^jnh0@F-H-|9=JRzof0Xu&{L)5N}(Mrxun~bUWcN{%R zBqk7~T0eKvW>V1K*h3q4iu)TjO6pQmbYF;owFJm&pwhjMF-p|ML*E+M3MDNYPh9Yt z0#@7R{;ViLiFYiQaALeWcU}U;jG$&o&b+KYi=bGt5nc(lS3fOD0dqlA4WPe5nb5?? znn^)Gm5v>a=-Ok!`+X#{vv?Cgt8{^@!39(=xh>3fF9kFigOWoIBEi4$$tkR3K+7jn z;wI-});aghnFuWew}yc;kH_Ia|Jl2#ht?_T^VOX8cglNAKr#VLM4Kd@N^>g|FRh4ix}7cj?2IoEqCSu%q(kRDh3qg|ne zCF7_Xp<~4u_HT4bJLu?zDnJE876IJ8CvAJo7NqYMrG2QhnkzvC89`)+ro6~@{PPqb z4S|-XP&5pZ&UjQgf;q+uR5D$FaB0#EQZ~*0`Ey|LIdDn4a2_NaFd%4jZhC`~F>+B1 z$Y>%yc4};;@Csdbr$&g-qYwQCY-oH2ECuwujg#|g$AF`A)ZXBPTBv9d+_QA}5{P{P zmF`=d`=h8+ffeI7Vj=7hq#tODWKqVbiBt)&KD34|ni9bCw7Ge0o^S_Ii zn%)~D5ksf2AA2J^7xpW*?DY}uJ-9MqbTL(C<?6Qp1yQ{A?PvfR9GfnPOlWET6tnoVf^{yn z@VCn_snx}~Ct?`ky1@&(t_%}#y!n>s{!?~UI4H4{$Q!0q%WIUHH~LP-la(!-F@Uzv z+|G5gwj*{*R$K>+sI3Gyrj8pgEBmhz9ec}C+9uKHWu6rC=-Y_Dc4Xbj_aMwoK1
$#OOr)%*$X})7Wn$ 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 NnlX3!#c4~n{||y&OPK%w literal 0 HcmV?d00001 diff --git a/docs/images/research-turn-costs-mobile.png b/docs/images/research-turn-costs-mobile.png new file mode 100644 index 0000000000000000000000000000000000000000..d59c0902d3e67f719a4c0cf7512df41fff522166 GIT binary patch literal 46817 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 literal 0 HcmV?d00001 diff --git a/docs/images/research-turn-costs-overview.png b/docs/images/research-turn-costs-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..b94cfcaf853981382d22b45c709cc9c1dd35a8e9 GIT binary patch literal 74491 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 zǹ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 literal 0 HcmV?d00001 diff --git a/docs/reference/trajectory-assessment.md b/docs/reference/trajectory-assessment.md index e4b39714e0..542d31ee87 100644 --- a/docs/reference/trajectory-assessment.md +++ b/docs/reference/trajectory-assessment.md @@ -644,6 +644,46 @@ journey or qualify the model assessor. ## Measured solver session cost (optional) +### Find expensive Turns and inspect their evidence + +In a Goal's **Research** view, select a registered capture with solver usage. +The first screen keeps aggregate cost and coverage together; expand **Sources +and usage**, then **Find time and input hotspots** to inspect individual Turns. +No analysis execution or model call is needed for this path. + +![Research entry with measured totals and unknown attribution](../images/research-turn-costs-overview.png) + +Choose **Most input**, **Longest elapsed** or **Chronological**. Each page shows +at most eight Turns with elapsed time, input, its cached subset, uncached input +and output. Cached input is already included in input. An unfinished Turn is +labelled observed-only; a dash means unavailable, never zero. The following +synthetic example puts the largest input Turn first, even though another Turn +took longest. + +![Turn input hotspot and cached versus uncached counters](../images/research-turn-costs-desktop.png) + +**Counter evidence** opens the existing source reader. It shows the preceding +cumulative counter observation, this Turn's start, its latest counters and its +completion when present, with original line numbers and capture digest. These +are filtered counter/lifecycle fields, not a contiguous transcript: prompts, +tool content and account metadata are excluded. Escape closes the reader and +returns focus to the selected Turn. Sorting, paging and evidence reading also +work in the narrow layout. + +![Narrow Turn cost reader](../images/research-turn-costs-mobile.png) + +The read endpoint accepts only the registered Goal, pack, analysis key and Turn +identifier. It verifies the complete source digest before returning evidence; +a missing or changed source stays unavailable rather than being substituted. + +This inspection compares Turns only within the selected capture. Turn input +is **not** control-layer input; the separate measured LoopX input share retains +its own coverage rules. Elapsed time includes tools, waiting and orchestration. +Different source revisions, capture windows and incomplete runs are not matched +experiments. These counters do not establish waste, monetary cost, avoidable +time or a causal benefit from LoopX. The screenshots use synthetic data from the +retained `research-turn-costs` browser scenario, not a live benchmark. + ### Native outcome readback (optional, separate from analyzer judgments) The trusted provider/Agent may add `--native-outcomes-json native-outcomes.json` diff --git a/examples/personal-workspace-browser-smoke.mjs b/examples/personal-workspace-browser-smoke.mjs index 120acecbca..4978957dbb 100644 --- a/examples/personal-workspace-browser-smoke.mjs +++ b/examples/personal-workspace-browser-smoke.mjs @@ -4,6 +4,7 @@ import {reportDownloadScenario} from "./personal-workspace-browser/report-downlo import { selectScenarioShard } from "./personal-workspace-browser/shard.mjs"; import {completedHistoryIsolationScenario} from "./personal-workspace-browser/completed-history-isolation.mjs"; import {researchWorkerReadbackScenario} from "./personal-workspace-browser/research-worker-readback.mjs"; +import {researchTurnCostsScenario} from "./personal-workspace-browser/research-turn-costs.mjs"; import {researchToolContextScenario} from "./personal-workspace-browser/research-tool-context.mjs"; import { zcodeGoalScenario } from "./personal-workspace-browser/zcode-goal.mjs"; import {goalWorkspaceCreateScenario} from "./personal-workspace-browser/goal-workspace-create.mjs"; @@ -133,7 +134,7 @@ scenarioCatalog.push(attentionUserActionScenario); scenarioCatalog.push(researchResultsScenario); scenarioCatalog.push(researchHistoryScenario); scenarioCatalog.push(researchMeasurementsScenario); -scenarioCatalog.push(researchToolContextScenario); +scenarioCatalog.push(researchToolContextScenario, researchTurnCostsScenario); scenarioCatalog.push(researchNativeReadingScenario); scenarioCatalog.push(researchFindingReaderScenario); scenarioCatalog.push(researchRecordSearchScenario); diff --git a/examples/personal-workspace-browser/research-history-backend.py b/examples/personal-workspace-browser/research-history-backend.py index b4ad045ff1..186c37c2d0 100644 --- a/examples/personal-workspace-browser/research-history-backend.py +++ b/examples/personal-workspace-browser/research-history-backend.py @@ -105,6 +105,7 @@ def main(): config=analysis.get("config", fixture_config), usage_jsonl=analysis.get("usage_jsonl"), usage_session_id=analysis.get("usage_session_id"), + include_incomplete_usage=analysis.get("include_incomplete_usage", False), include_tool_context=analysis.get("include_tool_context", False), native_outcomes_json=analysis.get("native_outcomes_json")) for language, output in analysis["outputs"].items(): @@ -145,7 +146,7 @@ def do_GET(self): metrics["history_reads"] += 1 if path in {"/healthz", "/status.json", "/api/chat/explore-results", "/api/chat/capabilities", "/api/chat/endpoints", "/api/chat/sessions", "/api/chat/goal-configuration", - "/api/chat/research-analysis", "/api/chat/research-analysis/citation", + "/api/chat/research-analysis", "/api/chat/research-analysis/citation", "/api/chat/research-analysis/usage-turn", "/api/actions", "/api/chat/goals/contexts", "/api/chat/goal-results", "/api/chat/sidebar-goal-order", "/api/chat/usage-statistics", "/api/chat/todo/detail", "/api/chat/delivery-review", "/api/chat/goal-acceptance", "/api/chat/projects", diff --git a/examples/personal-workspace-browser/research-history.mjs b/examples/personal-workspace-browser/research-history.mjs index c519a55b42..9e0c47fea1 100644 --- a/examples/personal-workspace-browser/research-history.mjs +++ b/examples/personal-workspace-browser/research-history.mjs @@ -1762,7 +1762,7 @@ print(json.dumps([ await progress.locator(`.research-progress-scope[data-pack-id="${"d".repeat(64)}"]`).waitFor(); comparisonFixture = true; - await progress.locator('select').selectOption('a'.repeat(64)); + await progress.locator(':scope > header select').selectOption('a'.repeat(64)); await progress.locator(`.research-progress-scope[data-pack-id="${"a".repeat(64)}"]`).waitFor(); await page.reload({waitUntil: "networkidle"}); const comparison = progress.locator('[data-metric="goal_alignment"]'); diff --git a/examples/personal-workspace-browser/research-native-reading.mjs b/examples/personal-workspace-browser/research-native-reading.mjs index 302bad1e44..ab0168c969 100644 --- a/examples/personal-workspace-browser/research-native-reading.mjs +++ b/examples/personal-workspace-browser/research-native-reading.mjs @@ -100,7 +100,7 @@ export const researchNativeReadingScenario = { await page.addInitScript(() => {if (!localStorage.getItem("loopx-pw-locale")) localStorage.setItem("loopx-pw-locale", "zh-CN");}); await page.goto(`${owner.base}/chat/?goalId=${fixture.goal_id}&view=research&statusUrl=%2Fstatus.json`, {waitUntil: "domcontentloaded"}); const native = page.getByRole("region", {name: "原生测量", exact: true}); - const selector = page.locator(".research-progress select"); + const selector = page.locator(".research-progress > header select"); await native.waitFor(); const pausedClock = await page.addStyleTag({content: "*, *::before, *::after {animation-play-state: paused !important;}"}); const tabs = page.getByRole("navigation", {name: "Goal 视图", exact: true}); diff --git a/examples/personal-workspace-browser/research-tool-context.mjs b/examples/personal-workspace-browser/research-tool-context.mjs index 22c6b3fd86..7bb9ba2f78 100644 --- a/examples/personal-workspace-browser/research-tool-context.mjs +++ b/examples/personal-workspace-browser/research-tool-context.mjs @@ -56,7 +56,7 @@ Path(sys.argv[1]).write_text(json.dumps(dict(goal_id=goal,display_name='Syntheti page.on("pageerror", error => errors.push(error.message)); await page.goto(`${owner.base}/chat/?goalId=synthetic-context-reading&view=research&research_goal=synthetic-context-reading&statusUrl=%2Fstatus.json`, {waitUntil: "networkidle"}); const progress = page.locator('.research-progress'); - const selector = progress.locator('select'); + const selector = progress.locator(':scope > header select'); await selector.selectOption({label: 'Without tool inventory'}); await progress.locator('.research-usage').waitFor({state: 'attached'}); await page.screenshot({path: resolve(outputDir, 'research-tool-context-before.png'), animations: 'disabled'}); diff --git a/examples/personal-workspace-browser/research-turn-costs.mjs b/examples/personal-workspace-browser/research-turn-costs.mjs new file mode 100644 index 0000000000..aa18f98ac2 --- /dev/null +++ b/examples/personal-workspace-browser/research-turn-costs.mjs @@ -0,0 +1,100 @@ +import assert from 'node:assert/strict'; +import {execFileSync} from 'node:child_process'; +import {mkdtemp, rm} from 'node:fs/promises'; +import {tmpdir} from 'node:os'; +import {resolve} from 'node:path'; +import {resolveTestPython} from '../../scripts/test-python.mjs'; +import {outputDir, repoRoot} from './fixture.mjs'; +import {startHistoryOwner} from './research-history.mjs'; + +export const researchTurnCostsScenario = { + id: 'research-turn-costs', + async run({browser}) { + const temporary = await mkdtemp(resolve(tmpdir(), 'loopx-turn-costs-')); + let owner, page; + try { + const fixture = resolve(temporary, 'capture.json'); + execFileSync(resolveTestPython(), ['-c', ` +import hashlib,json,sys +from datetime import datetime,timedelta,timezone +from pathlib import Path +from loopx.capabilities.explore.result_log import build_explore_node_event +goal='synthetic-cost-study' +text='Compare observed costs; no causal benefit is established.' +pack=dict(schema_version='trajectory_assessment_input_v1',scope=dict(goal_id=goal,case_id='synthetic',run_id='fixed',revision='fixture',window='one captured session'),objective=text, + selection=dict(rule='synthetic fixture',population_episodes=1,exhaustive=True), + sources=[dict(id='facts',artifact='facts.txt',artifact_sha256=hashlib.sha256(text.encode()).hexdigest(),first_line=1,text=text)], + episodes=[dict(id='episode',question=text,source_ids=['facts'],eligible_metrics=['evidence_adoption'])]) +rows=[];seconds=0;totals=dict(input_tokens=0,cached_input_tokens=0,output_tokens=0) +def append(kind,payload): + rows.append(dict(type=kind,timestamp=(datetime(2026,1,1,tzinfo=timezone.utc)+timedelta(seconds=seconds)).isoformat(),payload=payload)) +append('session_meta',dict(id='session')) +for i in range(10): + seconds+=1;append('event_msg',dict(type='task_started',turn_id=f'turn-{i+1}')) + seconds+=1;append('response_item',dict(type='message',role='user',content='SENSITIVE_TEXT_NOT_FOR_BROWSER')) + counts=dict(input_tokens=5000 if i==2 else 100,cached_input_tokens=3000 if i==2 else 60,output_tokens=10) + totals={key:totals[key]+counts[key] for key in totals} + seconds+=120 if i==6 else 1 + append('event_msg',dict(type='token_count',info=dict(total_token_usage=totals.copy(),last_token_usage=counts))) + seconds+=1;append('event_msg',dict(type='task_complete',turn_id=f'turn-{i+1}')) +seconds+=1;append('event_msg',dict(type='task_started',turn_id='unfinished')) +analysis=dict(title='Observed session',input=pack,artifacts={'facts.txt':text,'usage.jsonl':'\\n'.join(map(json.dumps,rows))},outputs={},usage_jsonl='usage.jsonl',usage_session_id='session',include_incomplete_usage=True) +Path(sys.argv[1]).write_text(json.dumps(dict(goal_id=goal,display_name='Synthetic cost study',events=[build_explore_node_event(goal_id=goal,node_id='question',title=text,recorded_at='2026-01-01T00:00:00Z')],analyses=[analysis]))) +`, fixture], {cwd: repoRoot}); + owner = await startHistoryOwner(fixture); + page = await browser.newPage({viewport: {width: 1440, height: 1000}}); + const errors = [], writes = []; + page.on('pageerror', error => errors.push(error.message)); + page.on('request', request => {if (request.method() === 'POST') writes.push(request.url());}); + await page.goto(`${owner.base}/chat/?goalId=synthetic-cost-study&view=research&research_goal=synthetic-cost-study&statusUrl=%2Fstatus.json`, {waitUntil: 'networkidle'}); + const progress = page.locator('.research-progress'); + await progress.locator('.research-usage').waitFor({state: 'attached'}); + await page.screenshot({path: resolve(outputDir, 'research-turn-costs-overview.png'), animations: 'disabled'}); + await progress.locator('.research-progress-basis > summary').click(); + const costs = progress.locator('.research-turn-costs'); + await costs.locator('summary').focus(); await page.keyboard.press('Enter'); + const items = costs.locator('li'); + assert.equal(await items.count(), 8); + assert.match(await items.first().innerText(), /第 3 轮/); + assert.match(await items.first().innerText(), /5,000/); + assert.match(await items.first().innerText(), /3,000/); + assert.match(await items.first().innerText(), /2,000/); + await costs.getByRole('combobox').selectOption('elapsed'); + assert.match(await items.first().innerText(), /第 7 轮/); + await items.first().getByRole('button').click(); + const source = page.getByRole('region', {name: '引用原文', exact: true}); + await source.locator('pre').waitFor(); + assert.match(await source.innerText(), /turn-7/); + assert.match(await source.innerText(), /token_count/); + assert.ok(!(await source.innerText()).includes('SENSITIVE_TEXT_NOT_FOR_BROWSER')); + await source.focus(); await page.keyboard.press('Escape'); + assert.equal(await items.first().getByRole('button').evaluate(element => element === document.activeElement), true); + await costs.getByRole('combobox').selectOption('time'); + await costs.getByRole('button', {name: '下一页', exact: true}).click(); + assert.equal(await items.count(), 3); + assert.match(await items.last().innerText(), /未完成/); + assert.match(await items.last().innerText(), /—/); + await items.last().getByRole('button').click(); + await source.locator('pre').waitFor(); + assert.match(await source.innerText(), /unfinished/); + await source.getByRole('button', {name: '关闭原文', exact: true}).click(); + await costs.getByRole('combobox').selectOption('input'); + for (const width of [1440, 390]) { + await page.setViewportSize({width, height: 1000}); + await costs.locator('summary').evaluate((element, offset) => {element.style.scrollMarginTop = `${offset}px`; element.scrollIntoView({block: 'start'});}, width < 600 ? 190 : 125); + assert(await page.evaluate(() => document.documentElement.scrollWidth <= innerWidth + 1)); + await page.screenshot({path: resolve(outputDir, `research-turn-costs-${width}.png`), animations: 'disabled'}); + } + assert.deepEqual(errors, []); + assert.deepEqual(writes, [], 'Cost inspection never starts analysis or mutates Goal state'); + return {coverageEntries: [], note: 'Real registered capture, typed reduction, HTTP and packaged UI: sort, pagination, incomplete/unknown counters, exact source evidence, keyboard return and mobile. No model or live benchmark.'}; + } catch (error) { + if (page && !page.isClosed()) await page.screenshot({path: resolve(outputDir, 'research-turn-costs-failed.png')}); + throw error; + } finally { + if (page) await page.close(); + if (owner) await owner.close(); + await rm(temporary, {recursive: true, force: true}); + } + }, +}; diff --git a/loopx/capabilities/benchmark_toolkit/trajectory_assessment_store.py b/loopx/capabilities/benchmark_toolkit/trajectory_assessment_store.py index 0ba0b28b63..5fadb9403e 100644 --- a/loopx/capabilities/benchmark_toolkit/trajectory_assessment_store.py +++ b/loopx/capabilities/benchmark_toolkit/trajectory_assessment_store.py @@ -144,6 +144,67 @@ def _source_digest(path: Path) -> str: return hashlib.file_digest(stream, "sha256").hexdigest() +def _usage_event(line_number: int, event: dict) -> dict | None: + payload = event.get("payload") or {} + if not isinstance(payload, dict): + raise ValueError("Usage capture contains a non-object payload") + if event.get("type") == "session_meta": + payload = {k: payload[k] for k in ("id", "forked_from_id") if k in payload} + elif event.get("type") == "token_usage_record": + payload = _request_usage_record(payload) + elif event.get("type") == "loopx_input_token_attribution": + # Optional host measurement, not a tokenizer or prose classifier. + # Preserve only binding/counts; raw prompts and packet text stay private. + payload = { + key: payload[key] if isinstance(payload[key], str) else None + for key in ( + "method", "thread_id", "session_id", "turn_id", + "root_turn_id", "response_id", + ) if key in payload + } | { + key: payload[key] if type(payload[key]) is int else None + for key in ( + "input_tokens", "loopx_input_tokens", "loopx_cached_input_tokens", + ) if key in payload + } + elif event.get("type") == "compacted": + payload = { + "compaction_response_id": payload.get("compaction_response_id") + if isinstance(payload.get("compaction_response_id"), str) + else None, + "latest_token_usage_record": _request_usage_record( + payload.get("latest_token_usage_record") + ), + } + elif event.get("type") == "event_msg" and payload.get("type") in { + "task_started", + "task_complete", + "token_count", + }: + payload = { + k: payload[k] for k in ("type", "turn_id", "info") if k in payload + } + if isinstance(payload.get("info"), dict): + payload["info"] = { + name: { + key: value[key] + for key in ( + "input_tokens", + "cached_input_tokens", + "output_tokens", + ) + if key in value + } + if isinstance(value, dict) + else value + for name in ("total_token_usage", "last_token_usage") + if (value := payload["info"].get(name)) is not None + } + else: + return None + return {"line": line_number, "type": event["type"], "timestamp": event.get("timestamp"), "payload": payload} + + def _usage_capture( source_root: Path, artifact: str, @@ -166,71 +227,9 @@ def _usage_capture( if include_tool_context: from .trajectory_tool_context import project_tool_context tool_context.extend(project_tool_context([event], first_line=line_number)) - payload = event.get("payload") or {} - if not isinstance(payload, dict): - raise ValueError("Usage capture contains a non-object payload") - if event.get("type") == "session_meta": - payload = {k: payload[k] for k in ("id", "forked_from_id") if k in payload} - elif event.get("type") == "token_usage_record": - payload = _request_usage_record(payload) - elif event.get("type") == "loopx_input_token_attribution": - # Optional host measurement, not a tokenizer or prose classifier. - # Preserve only binding/counts; raw prompts and packet text stay private. - payload = { - key: payload[key] if isinstance(payload[key], str) else None - for key in ( - "method", "thread_id", "session_id", "turn_id", - "root_turn_id", "response_id", - ) if key in payload - } | { - key: payload[key] if type(payload[key]) is int else None - for key in ( - "input_tokens", "loopx_input_tokens", "loopx_cached_input_tokens", - ) if key in payload - } - elif event.get("type") == "compacted": - payload = { - "compaction_response_id": payload.get("compaction_response_id") - if isinstance(payload.get("compaction_response_id"), str) - else None, - "latest_token_usage_record": _request_usage_record( - payload.get("latest_token_usage_record") - ), - } - elif event.get("type") == "event_msg" and payload.get("type") in { - "task_started", - "task_complete", - "token_count", - }: - payload = { - k: payload[k] for k in ("type", "turn_id", "info") if k in payload - } - if isinstance(payload.get("info"), dict): - payload["info"] = { - name: { - key: value[key] - for key in ( - "input_tokens", - "cached_input_tokens", - "output_tokens", - ) - if key in value - } - if isinstance(value, dict) - else value - for name in ("total_token_usage", "last_token_usage") - if (value := payload["info"].get(name)) is not None - } - else: - continue - events.append( - { - "line": line_number, - "type": event["type"], - "timestamp": event.get("timestamp"), - "payload": payload, - } - ) + observed = _usage_event(line_number, event) + if observed is not None: + events.append(observed) observation = None input_artifacts = [] if loopx_input_json is not None: @@ -739,3 +738,60 @@ def read_citation( "applicability": "historical" if requested in native_citations and view["native_outcomes"]["applicability"] == "historical" else view["applicability"], } + + +def read_usage_turn(*, runtime_root: Path, owner_goal_id: str, pack_id: str, + analysis_key: str, turn_id: str, output_language: str | None = None) -> dict: + """Read bounded counter evidence for an existing captured Turn, never raw model/tool text.""" + _, record = _resolve(runtime_root, owner_goal_id, pack_id) + identity = _prepared(record, output_language) if output_language is not None else record + if analysis_key != identity["analysis_key"]: + raise PackUnavailable("analysis_key_mismatch") + captured = record.get("solver_usage") + if not captured: + raise PackUnavailable("usage_not_captured") + projection = captured["projection"] + turns = [*projection["turns"]] + if projection.get("incomplete_turn"): + turns.append(projection["incomplete_turn"]) + matches = [turn for turn in turns if turn["turn_id"] == turn_id] + if len(matches) != 1: + raise PackUnavailable("usage_turn_not_captured") + turn = matches[0] + first, last = turn["first_line"], turn["last_line"] + digest = hashlib.sha256() + baseline = start = counter = end = None + try: + path = _source_path(Path(record["source_root"]), captured["artifact"]) + for line, event in _usage_rows(path, digest): + if not isinstance(event, dict): + raise ValueError("invalid usage event") + if line > last: + continue # Still hash the entire source before disclosing any evidence. + observed = _usage_event(line, event) + if not observed or observed["type"] != "event_msg": + continue + kind = observed["payload"].get("type") + if line < first: + if kind == "token_count" and observed["payload"].get("info"): + baseline = observed + elif kind == "task_started": + start = observed + elif kind == "token_count" and observed["payload"].get("info"): + counter = observed + elif kind == "task_complete": + end = observed + if digest.hexdigest() != captured["artifact_sha256"]: + raise PackUnavailable("source_changed") + except PackUnavailable: + raise + except (OSError, ValueError, TypeError, KeyError): + raise PackUnavailable("source_unavailable") from None + events = [event for event in (baseline, start, counter, end) if event is not None] + if not events: + raise PackUnavailable("usage_evidence_unavailable") + return {"source_id": "solver_usage", "artifact": captured["artifact"], + "first_line": events[0]["line"], "last_line": events[-1]["line"], + "applicability": "current", "evidence_kind": "usage_counters", + "text": json.dumps({"turn_id": turn_id, "artifact_sha256": captured["artifact_sha256"], + "events": events}, ensure_ascii=False, indent=2)} diff --git a/loopx/chat_server.py b/loopx/chat_server.py index 9b9f46f571..d6ec5d89c1 100644 --- a/loopx/chat_server.py +++ b/loopx/chat_server.py @@ -1705,6 +1705,7 @@ def do_GET(self) -> None: "/api/chat/explore-results": self._explore_results, RESEARCH_ANALYSIS_PATH: self._research_analysis_read, RESEARCH_ANALYSIS_PATH + "/citation": self._research_analysis_read, + RESEARCH_ANALYSIS_PATH + "/usage-turn": self._research_analysis_read, CHAT_SESSIONS_PATH: self._list_sessions, CHAT_ACTIONS_PATH: self._action_list, CHAT_GOAL_CONTEXTS_PATH: self._goal_contexts, diff --git a/loopx/presentation/research_analysis_api.py b/loopx/presentation/research_analysis_api.py index 64a4d72e0c..f90a51dc6c 100644 --- a/loopx/presentation/research_analysis_api.py +++ b/loopx/presentation/research_analysis_api.py @@ -63,9 +63,12 @@ def _research_analysis_scope(self, goal_id, *, cancel=False): def _research_analysis_read(self): try: query = self._research_analysis_query() + usage_turn = urlparse(self.path).path.endswith("/usage-turn") citation = urlparse(self.path).path.endswith("/citation") required = {"goal_id", "pack_id", "analysis_key", "source_id", "first_line", "last_line"} if citation else {"goal_id"} - allowed = (required if citation else {"goal_id", "pack_id"}) | {"output_language"} + if usage_turn: + required = {"goal_id", "pack_id", "analysis_key", "turn_id"} + allowed = (required if citation or usage_turn else {"goal_id", "pack_id"}) | {"output_language"} if not required <= query.keys() or query.keys() - allowed or any(len(v) != 1 for v in query.values()): raise ValueError("Use the registered Goal and opaque pack identifiers") values = {key: value[0] for key, value in query.items()} @@ -76,7 +79,11 @@ def _research_analysis_read(self): runtime = self._research_analysis_scope(goal_id) if runtime is None: return - if citation: + if usage_turn: + self._research_analysis_verify_source_goal(runtime, goal_id, values["pack_id"]) + result = store.read_usage_turn(runtime_root=runtime, owner_goal_id=goal_id, + output_language=language, **values) + elif citation: self._research_analysis_verify_source_goal(runtime, goal_id, values["pack_id"]) first = int(values.pop("first_line")) last = int(values.pop("last_line")) diff --git a/loopx/presentation/runtime_workspace.py b/loopx/presentation/runtime_workspace.py index 9390ea338f..eaadbb7626 100644 --- a/loopx/presentation/runtime_workspace.py +++ b/loopx/presentation/runtime_workspace.py @@ -181,7 +181,7 @@ def do_GET(self): self._json(self.server.reader.findings(goal_id, cursor, projector=_finding_rows)) else: self._json({"ok": False, "error": "Unknown Explore view."}, 400) - elif parsed.path in {RESEARCH_ANALYSIS_PATH, RESEARCH_ANALYSIS_PATH + "/citation"}: + elif parsed.path in {RESEARCH_ANALYSIS_PATH, RESEARCH_ANALYSIS_PATH + "/citation", RESEARCH_ANALYSIS_PATH + "/usage-turn"}: if self.server.analysis_execution_enabled: self._research_analysis_read() else: diff --git a/tests/capabilities/test_trajectory_assessment_store.py b/tests/capabilities/test_trajectory_assessment_store.py index 24e4b65ea4..10b81eb0c9 100644 --- a/tests/capabilities/test_trajectory_assessment_store.py +++ b/tests/capabilities/test_trajectory_assessment_store.py @@ -1368,3 +1368,42 @@ def observe(command, params, **kwargs): assert path.read_bytes() == original assert view["job"] is None and view["result"] is None assert "loopx_input" not in inspect_pack(**scope, pack_id=old["pack_id"]).get("solver_usage", {}).get("projection", {}) + + +@pytest.mark.parametrize("incomplete", [False, True]) +def test_turn_counter_evidence_preserves_baseline_and_excludes_content(pack, incomplete): + from loopx.capabilities.benchmark_toolkit.trajectory_assessment_store import read_usage_turn + + scope, _, old, input_path, sources, _ = pack + rows = [json.loads(line) for line in _usage_fixture().splitlines()] + for row in rows: + row["payload"]["private_prompt"] = "MUST_NOT_REACH_BROWSER" + if incomplete: + rows.pop() + capture = sources / "usage.jsonl" + capture.write_text("\n".join(map(json.dumps, rows)) + "\n") + registered = register_pack(**scope, input_path=input_path, source_root=sources, + title=old["title"], usage_jsonl="usage.jsonl", usage_session_id="solver-session", + include_incomplete_usage=incomplete) + operation = dict(**scope, pack_id=registered["pack_id"], analysis_key=registered["analysis_key"]) + before = {path: path.read_bytes() for path in scope["runtime_root"].rglob("*") if path.is_file()} + evidence = read_usage_turn(**operation, turn_id="b") + events = json.loads(evidence["text"])["events"] + assert [event["line"] for event in events] == ([3, 5, 6] if incomplete else [3, 5, 6, 7]) + assert events[0]["payload"]["info"]["total_token_usage"]["input_tokens"] == 100 + assert events[2]["payload"]["info"]["total_token_usage"]["input_tokens"] == 140 + assert "MUST_NOT_REACH_BROWSER" not in json.dumps(evidence) + assert evidence["evidence_kind"] == "usage_counters" + assert not list(scope["runtime_root"].rglob("receipt.json")) + assert all(path.read_bytes() == content for path, content in before.items()) + for changes, reason in [({"turn_id": "other"}, "usage_turn_not_captured"), + ({"analysis_key": "0" * 64}, "analysis_key_mismatch"), + ({"owner_goal_id": "other-owner"}, "pack_not_registered")]: + with pytest.raises(PackUnavailable, match=reason): + read_usage_turn(**(operation | {"turn_id": "b"} | changes)) + capture.write_text(capture.read_text() + "{}\n") + with pytest.raises(PackUnavailable, match="source_changed"): + read_usage_turn(**operation, turn_id="b") + capture.unlink() + with pytest.raises(PackUnavailable, match="source_unavailable"): + read_usage_turn(**operation, turn_id="b") diff --git a/tests/presentation/test_research_analysis_api.py b/tests/presentation/test_research_analysis_api.py index d2aedad164..8933315f17 100644 --- a/tests/presentation/test_research_analysis_api.py +++ b/tests/presentation/test_research_analysis_api.py @@ -794,3 +794,29 @@ def test_synthesis_only_citation_uses_existing_reader_and_does_not_execute(works read(suffix="/citation", **query, **{**citation,"last_line":3}) assert w["count"].read_text().splitlines() == ["started"] assert json.loads(path.read_text()) == data + + +def test_usage_turn_http_reads_registered_counter_evidence_without_analysis(workspace): + from tests.capabilities.test_trajectory_assessment_store import _usage_fixture + + w = workspace + capture = w["sources"] / "usage.jsonl" + capture.write_text(_usage_fixture()) + registered = register_pack(runtime_root=w["tmp_path"] / "runtime", owner_goal_id="research-owner", + input_path=w["tmp_path"] / "input.json", source_root=w["sources"], title="Captured Turn costs", + usage_jsonl="usage.jsonl", usage_session_id="solver-session") + query = dict(pack_id=registered["pack_id"], analysis_key=registered["analysis_key"], turn_id="b") + result = w["request"](suffix="/usage-turn", **query) + assert result["evidence_kind"] == "usage_counters" + assert [event["line"] for event in json.loads(result["text"])["events"]] == [3, 5, 6, 7] + assert not w["count"].exists(), "Reading costs must not invoke the analysis provider" + for invalid in [dict(query, turn_id="unknown"), dict(query, first_line="1"), + dict(query, goal="other-owner"), dict(query, analysis_key="0" * 64)]: + with pytest.raises(HTTPError) as error: + w["request"](suffix="/usage-turn", **invalid) + assert error.value.code in {400, 409} + capture.write_text(capture.read_text() + "{}\n") + with pytest.raises(HTTPError) as error: + w["request"](suffix="/usage-turn", **query) + assert error.value.code == 409 + assert not w["count"].exists()